about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.github/CODEOWNERS19
-rw-r--r--.github/workflows/check-by-name.yml10
-rw-r--r--.github/workflows/periodic-merge-24h.yml6
-rw-r--r--.github/workflows/periodic-merge-6h.yml2
-rw-r--r--CONTRIBUTING.md2
-rw-r--r--doc/README.md145
-rw-r--r--doc/build-helpers/images/dockertools.section.md385
-rw-r--r--doc/build-helpers/trivial-build-helpers.chapter.md13
-rw-r--r--doc/default.nix1
-rw-r--r--doc/doc-support/lib-function-docs.nix2
-rw-r--r--doc/hooks/postgresql-test-hook.section.md1
-rw-r--r--doc/hooks/python.section.md2
-rw-r--r--doc/languages-frameworks/beam.section.md2
-rw-r--r--doc/languages-frameworks/dart.section.md20
-rw-r--r--doc/languages-frameworks/dotnet.section.md2
-rw-r--r--doc/languages-frameworks/emscripten.section.md6
-rw-r--r--doc/languages-frameworks/haskell.section.md107
-rw-r--r--doc/languages-frameworks/idris2.section.md6
-rw-r--r--doc/languages-frameworks/rust.section.md2
-rw-r--r--doc/packages/linux.section.md14
-rw-r--r--doc/preface.chapter.md12
-rw-r--r--doc/stdenv/platform-notes.chapter.md2
-rw-r--r--doc/stdenv/stdenv.chapter.md23
-rw-r--r--lib/default.nix2
-rw-r--r--lib/derivations.nix26
-rw-r--r--lib/fileset/internal.nix19
-rwxr-xr-xlib/fileset/tests.sh13
-rw-r--r--lib/licenses.nix5
-rw-r--r--lib/tests/misc.nix20
-rwxr-xr-xlib/tests/modules.sh1
-rw-r--r--lib/tests/modules/error-nonEmptyListOf-submodule.nix7
-rw-r--r--lib/trivial.nix2
-rw-r--r--lib/types.nix1
-rw-r--r--maintainers/maintainer-list.nix266
-rw-r--r--maintainers/scripts/bootstrap-files/README.md85
-rwxr-xr-xmaintainers/scripts/bootstrap-files/refresh-tarballs.bash282
-rw-r--r--maintainers/team-list.nix14
-rw-r--r--nixos/doc/manual/configuration/linux-kernel.chapter.md18
-rw-r--r--nixos/doc/manual/configuration/profiles.chapter.md1
-rw-r--r--nixos/doc/manual/configuration/profiles/perlless.section.md11
-rw-r--r--nixos/doc/manual/configuration/sshfs-file-systems.section.md2
-rw-r--r--nixos/doc/manual/configuration/user-mgmt.chapter.md15
-rw-r--r--nixos/doc/manual/contributing-to-this-manual.chapter.md2
-rw-r--r--nixos/doc/manual/development/etc-overlay.section.md36
-rw-r--r--nixos/doc/manual/development/what-happens-during-a-system-switch.chapter.md1
-rw-r--r--nixos/doc/manual/development/writing-documentation.chapter.md64
-rw-r--r--nixos/doc/manual/release-notes/rl-2405.section.md119
-rw-r--r--nixos/lib/eval-config.nix1
-rw-r--r--nixos/lib/test-driver/test_driver/machine.py26
-rw-r--r--nixos/lib/utils.nix1
-rw-r--r--nixos/modules/config/no-x-libs.nix1
-rw-r--r--nixos/modules/config/shells-environment.nix3
-rw-r--r--nixos/modules/config/users-groups.nix10
-rw-r--r--nixos/modules/hardware/corectrl.nix8
-rw-r--r--nixos/modules/image/repart-image.nix38
-rw-r--r--nixos/modules/image/repart.nix86
-rw-r--r--nixos/modules/misc/version.nix34
-rw-r--r--nixos/modules/module-list.nix19
-rw-r--r--nixos/modules/profiles/hardened.nix9
-rw-r--r--nixos/modules/profiles/installation-device.nix3
-rw-r--r--nixos/modules/profiles/perlless.nix31
-rw-r--r--nixos/modules/programs/alvr.nix35
-rw-r--r--nixos/modules/programs/gamemode.nix2
-rw-r--r--nixos/modules/programs/light.nix50
-rw-r--r--nixos/modules/programs/mouse-actions.nix15
-rw-r--r--nixos/modules/programs/nautilus-open-any-terminal.nix36
-rw-r--r--nixos/modules/programs/regreet.nix16
-rw-r--r--nixos/modules/programs/ssh.nix1
-rw-r--r--nixos/modules/programs/wayland/hyprland.nix (renamed from nixos/modules/programs/hyprland.nix)0
-rw-r--r--nixos/modules/security/acme/default.nix4
-rw-r--r--nixos/modules/security/pam.nix6
-rw-r--r--nixos/modules/security/wrappers/wrapper.c7
-rw-r--r--nixos/modules/services/audio/gmediarender.nix1
-rw-r--r--nixos/modules/services/audio/jmusicbot.nix1
-rw-r--r--nixos/modules/services/audio/mopidy.nix7
-rw-r--r--nixos/modules/services/audio/navidrome.nix1
-rw-r--r--nixos/modules/services/audio/spotifyd.nix1
-rw-r--r--nixos/modules/services/audio/ympd.nix1
-rw-r--r--nixos/modules/services/continuous-integration/buildbot/master.nix2
-rw-r--r--nixos/modules/services/continuous-integration/gitea-actions-runner.nix1
-rw-r--r--nixos/modules/services/continuous-integration/github-runner/options.nix1
-rw-r--r--nixos/modules/services/continuous-integration/hydra/default.nix1
-rw-r--r--nixos/modules/services/databases/firebird.nix2
-rw-r--r--nixos/modules/services/databases/lldap.nix1
-rw-r--r--nixos/modules/services/databases/openldap.nix1
-rw-r--r--nixos/modules/services/databases/tigerbeetle.md33
-rw-r--r--nixos/modules/services/databases/tigerbeetle.nix115
-rw-r--r--nixos/modules/services/desktops/geoclue2.nix2
-rw-r--r--nixos/modules/services/development/livebook.md24
-rw-r--r--nixos/modules/services/development/livebook.nix101
-rw-r--r--nixos/modules/services/editors/emacs.nix21
-rw-r--r--nixos/modules/services/games/archisteamfarm.nix (renamed from nixos/modules/services/games/asf.nix)100
-rw-r--r--nixos/modules/services/hardware/acpid.nix1
-rw-r--r--nixos/modules/services/hardware/fwupd.nix1
-rw-r--r--nixos/modules/services/hardware/handheld-daemon.nix44
-rw-r--r--nixos/modules/services/hardware/ratbagd.nix8
-rw-r--r--nixos/modules/services/home-automation/esphome.nix12
-rw-r--r--nixos/modules/services/home-automation/evcc.nix1
-rw-r--r--nixos/modules/services/home-automation/home-assistant.nix1
-rw-r--r--nixos/modules/services/home-automation/zigbee2mqtt.nix1
-rw-r--r--nixos/modules/services/logging/journaldriver.nix1
-rw-r--r--nixos/modules/services/mail/dovecot.nix158
-rw-r--r--nixos/modules/services/mail/mlmmj.nix12
-rw-r--r--nixos/modules/services/mail/postfixadmin.nix6
-rw-r--r--nixos/modules/services/mail/roundcube.nix1
-rw-r--r--nixos/modules/services/mail/rss2email.nix8
-rw-r--r--nixos/modules/services/mail/sympa.nix2
-rw-r--r--nixos/modules/services/mail/zeyple.nix6
-rw-r--r--nixos/modules/services/matrix/hebbot.nix78
-rw-r--r--nixos/modules/services/matrix/synapse.nix2
-rw-r--r--nixos/modules/services/misc/amazon-ssm-agent.nix1
-rw-r--r--nixos/modules/services/misc/bcg.nix2
-rw-r--r--nixos/modules/services/misc/domoticz.nix1
-rw-r--r--nixos/modules/services/misc/etcd.nix7
-rw-r--r--nixos/modules/services/misc/etesync-dav.nix1
-rw-r--r--nixos/modules/services/misc/lidarr.nix7
-rw-r--r--nixos/modules/services/misc/mediatomb.nix1
-rw-r--r--nixos/modules/services/misc/metabase.nix1
-rw-r--r--nixos/modules/services/misc/moonraker.nix23
-rw-r--r--nixos/modules/services/misc/nix-gc.nix25
-rw-r--r--nixos/modules/services/misc/nix-ssh-serve.nix4
-rw-r--r--nixos/modules/services/misc/ollama.nix8
-rw-r--r--nixos/modules/services/misc/packagekit.nix4
-rw-r--r--nixos/modules/services/misc/paperless.nix27
-rw-r--r--nixos/modules/services/misc/portunus.nix100
-rw-r--r--nixos/modules/services/misc/radarr.nix7
-rw-r--r--nixos/modules/services/misc/readarr.nix7
-rw-r--r--nixos/modules/services/misc/taskserver/helper-tool.py34
-rw-r--r--nixos/modules/services/monitoring/alerta.nix7
-rw-r--r--nixos/modules/services/monitoring/kapacitor.nix6
-rw-r--r--nixos/modules/services/monitoring/mackerel-agent.nix1
-rw-r--r--nixos/modules/services/monitoring/munin.nix24
-rw-r--r--nixos/modules/services/monitoring/osquery.nix8
-rw-r--r--nixos/modules/services/monitoring/prometheus/alertmanager.nix1
-rw-r--r--nixos/modules/services/monitoring/prometheus/exporters.nix2
-rw-r--r--nixos/modules/services/monitoring/prometheus/exporters/openvpn.nix39
-rw-r--r--nixos/modules/services/monitoring/prometheus/exporters/pve.nix42
-rw-r--r--nixos/modules/services/monitoring/prometheus/exporters/restic.nix131
-rw-r--r--nixos/modules/services/monitoring/prometheus/exporters/snmp.nix1
-rw-r--r--nixos/modules/services/monitoring/riemann-dash.nix7
-rw-r--r--nixos/modules/services/monitoring/rustdesk-server.nix95
-rw-r--r--nixos/modules/services/monitoring/teamviewer.nix1
-rw-r--r--nixos/modules/services/monitoring/telegraf.nix1
-rw-r--r--nixos/modules/services/monitoring/watchdogd.nix131
-rw-r--r--nixos/modules/services/monitoring/zabbix-proxy.nix5
-rw-r--r--nixos/modules/services/monitoring/zabbix-server.nix5
-rw-r--r--nixos/modules/services/network-filesystems/cachefilesd.nix8
-rw-r--r--nixos/modules/services/network-filesystems/ceph.nix20
-rw-r--r--nixos/modules/services/network-filesystems/kbfs.nix7
-rw-r--r--nixos/modules/services/network-filesystems/kubo.nix13
-rw-r--r--nixos/modules/services/network-filesystems/openafs/client.nix1
-rw-r--r--nixos/modules/services/network-filesystems/samba.nix2
-rw-r--r--nixos/modules/services/networking/aria2.nix15
-rw-r--r--nixos/modules/services/networking/bird.nix9
-rw-r--r--nixos/modules/services/networking/bitcoind.nix1
-rw-r--r--nixos/modules/services/networking/charybdis.nix6
-rw-r--r--nixos/modules/services/networking/dante.nix1
-rw-r--r--nixos/modules/services/networking/dnsdist.nix143
-rw-r--r--nixos/modules/services/networking/ergo.nix1
-rw-r--r--nixos/modules/services/networking/expressvpn.nix1
-rw-r--r--nixos/modules/services/networking/headscale.nix13
-rw-r--r--nixos/modules/services/networking/ircd-hybrid/default.nix3
-rw-r--r--nixos/modules/services/networking/ivpn.nix2
-rw-r--r--nixos/modules/services/networking/jibri/default.nix10
-rw-r--r--nixos/modules/services/networking/kea.nix7
-rw-r--r--nixos/modules/services/networking/keepalived/default.nix9
-rw-r--r--nixos/modules/services/networking/knot.nix1
-rw-r--r--nixos/modules/services/networking/kresd.nix2
-rw-r--r--nixos/modules/services/networking/mosquitto.nix1
-rw-r--r--nixos/modules/services/networking/mullvad-vpn.nix2
-rw-r--r--nixos/modules/services/networking/nbd.nix1
-rw-r--r--nixos/modules/services/networking/netbird.md56
-rw-r--r--nixos/modules/services/networking/netbird.nix203
-rw-r--r--nixos/modules/services/networking/ocserv.nix1
-rw-r--r--nixos/modules/services/networking/pleroma.nix1
-rw-r--r--nixos/modules/services/networking/pyload.nix147
-rw-r--r--nixos/modules/services/networking/rosenpass.nix1
-rw-r--r--nixos/modules/services/networking/rxe.nix2
-rw-r--r--nixos/modules/services/networking/seafile.nix278
-rw-r--r--nixos/modules/services/networking/soju.nix1
-rw-r--r--nixos/modules/services/networking/strongswan-swanctl/module.nix14
-rw-r--r--nixos/modules/services/networking/strongswan.nix1
-rw-r--r--nixos/modules/services/networking/syncplay.nix1
-rw-r--r--nixos/modules/services/networking/tailscale.nix3
-rw-r--r--nixos/modules/services/networking/wasabibackend.nix1
-rw-r--r--nixos/modules/services/networking/znc/default.nix1
-rw-r--r--nixos/modules/services/security/bitwarden-directory-connector-cli.nix64
-rw-r--r--nixos/modules/services/security/certmgr.nix1
-rw-r--r--nixos/modules/services/security/clamav.nix2
-rw-r--r--nixos/modules/services/security/intune.nix32
-rw-r--r--nixos/modules/services/security/oauth2_proxy.nix1
-rw-r--r--nixos/modules/services/system/cachix-agent/default.nix1
-rw-r--r--nixos/modules/services/system/cachix-watch-store.nix1
-rw-r--r--nixos/modules/services/system/cloud-init.nix5
-rw-r--r--nixos/modules/services/system/dbus.nix1
-rw-r--r--nixos/modules/services/system/systemd-lock-handler.md47
-rw-r--r--nixos/modules/services/system/systemd-lock-handler.nix27
-rw-r--r--nixos/modules/services/torrent/deluge.nix30
-rw-r--r--nixos/modules/services/video/epgstation/default.nix30
-rw-r--r--nixos/modules/services/video/go2rtc/default.nix1
-rw-r--r--nixos/modules/services/video/mirakurun.nix7
-rw-r--r--nixos/modules/services/web-apps/akkoma.nix2
-rw-r--r--nixos/modules/services/web-apps/alps.nix1
-rw-r--r--nixos/modules/services/web-apps/bookstack.nix33
-rw-r--r--nixos/modules/services/web-apps/c2fmzq-server.nix1
-rw-r--r--nixos/modules/services/web-apps/code-server.nix1
-rw-r--r--nixos/modules/services/web-apps/freshrss.nix7
-rw-r--r--nixos/modules/services/web-apps/healthchecks.nix1
-rw-r--r--nixos/modules/services/web-apps/lemmy.nix3
-rw-r--r--nixos/modules/services/web-apps/mastodon.nix1
-rw-r--r--nixos/modules/services/web-apps/mattermost.nix4
-rw-r--r--nixos/modules/services/web-apps/moodle.nix7
-rw-r--r--nixos/modules/services/web-apps/netbox.nix20
-rw-r--r--nixos/modules/services/web-apps/nextcloud-notify_push.nix2
-rw-r--r--nixos/modules/services/web-apps/nextcloud.md2
-rw-r--r--nixos/modules/services/web-apps/nextcloud.nix236
-rw-r--r--nixos/modules/services/web-apps/nifi.nix13
-rw-r--r--nixos/modules/services/web-apps/openvscode-server.nix1
-rw-r--r--nixos/modules/services/web-apps/peering-manager.nix1
-rw-r--r--nixos/modules/services/web-apps/photoprism.nix3
-rw-r--r--nixos/modules/services/web-apps/pretalx.nix415
-rw-r--r--nixos/modules/services/web-apps/suwayomi-server.md108
-rw-r--r--nixos/modules/services/web-apps/suwayomi-server.nix260
-rw-r--r--nixos/modules/services/web-apps/wordpress.nix10
-rw-r--r--nixos/modules/services/web-apps/writefreely.nix6
-rw-r--r--nixos/modules/services/web-apps/youtrack.md30
-rw-r--r--nixos/modules/services/web-apps/youtrack.nix237
-rw-r--r--nixos/modules/services/web-servers/agate.nix1
-rw-r--r--nixos/modules/services/web-servers/mighttpd2.nix1
-rw-r--r--nixos/modules/services/web-servers/minio.nix1
-rw-r--r--nixos/modules/services/web-servers/traefik.nix1
-rw-r--r--nixos/modules/services/web-servers/ttyd.nix3
-rw-r--r--nixos/modules/services/web-servers/zope2.nix2
-rw-r--r--nixos/modules/services/x11/desktop-managers/budgie.nix4
-rw-r--r--nixos/modules/services/x11/desktop-managers/deepin.nix11
-rw-r--r--nixos/modules/services/x11/desktop-managers/plasma5.nix7
-rw-r--r--nixos/modules/services/x11/xserver.nix4
-rw-r--r--nixos/modules/system/boot/clevis.md6
-rw-r--r--nixos/modules/system/boot/loader/grub/install-grub.pl6
-rw-r--r--nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py89
-rw-r--r--nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix17
-rw-r--r--nixos/modules/system/boot/luksroot.nix4
-rw-r--r--nixos/modules/system/boot/networkd.nix6
-rw-r--r--nixos/modules/system/boot/resolved.nix24
-rw-r--r--nixos/modules/system/boot/stage-1-init.sh11
-rw-r--r--nixos/modules/system/boot/systemd.nix18
-rw-r--r--nixos/modules/system/boot/systemd/initrd.nix4
-rw-r--r--nixos/modules/system/boot/systemd/sysusers.nix169
-rw-r--r--nixos/modules/system/boot/uki.nix85
-rw-r--r--nixos/modules/system/etc/build-composefs-dump.py217
-rwxr-xr-xnixos/modules/system/etc/check-build-composefs-dump.sh8
-rw-r--r--nixos/modules/system/etc/etc-activation.nix98
-rw-r--r--nixos/modules/system/etc/etc.nix116
-rw-r--r--nixos/modules/tasks/auto-upgrade.nix12
-rw-r--r--nixos/modules/tasks/filesystems/bcachefs.nix9
-rw-r--r--nixos/modules/tasks/filesystems/sshfs.nix7
-rw-r--r--nixos/modules/testing/test-instrumentation.nix5
-rw-r--r--nixos/modules/virtualisation/amazon-image.nix1
-rw-r--r--nixos/modules/virtualisation/incus.nix5
-rw-r--r--nixos/modules/virtualisation/oci-containers.nix1
-rw-r--r--nixos/modules/virtualisation/podman/default.nix33
-rw-r--r--nixos/tests/3proxy.nix1
-rw-r--r--nixos/tests/acme.nix1
-rw-r--r--nixos/tests/activation/etc-overlay-immutable.nix30
-rw-r--r--nixos/tests/activation/etc-overlay-mutable.nix30
-rw-r--r--nixos/tests/activation/perlless.nix24
-rw-r--r--nixos/tests/adguardhome.nix1
-rw-r--r--nixos/tests/all-tests.nix20
-rw-r--r--nixos/tests/appliance-repart-image.nix35
-rw-r--r--nixos/tests/ayatana-indicators.nix53
-rw-r--r--nixos/tests/babeld.nix4
-rw-r--r--nixos/tests/bittorrent.nix4
-rw-r--r--nixos/tests/budgie.nix7
-rw-r--r--nixos/tests/buildbot.nix2
-rw-r--r--nixos/tests/ceph-multi-node.nix8
-rw-r--r--nixos/tests/ceph-single-node-bluestore.nix8
-rw-r--r--nixos/tests/ceph-single-node.nix29
-rw-r--r--nixos/tests/cinnamon-wayland.nix2
-rw-r--r--nixos/tests/cloud-init.nix1
-rw-r--r--nixos/tests/corerad.nix2
-rw-r--r--nixos/tests/curl-impersonate.nix2
-rw-r--r--nixos/tests/dnsdist.nix137
-rw-r--r--nixos/tests/dolibarr.nix2
-rw-r--r--nixos/tests/elk.nix6
-rw-r--r--nixos/tests/ferm.nix2
-rw-r--r--nixos/tests/gitdaemon.nix3
-rw-r--r--nixos/tests/gnome-extensions.nix2
-rw-r--r--nixos/tests/guix/publish.nix1
-rw-r--r--nixos/tests/haproxy.nix109
-rw-r--r--nixos/tests/hostname.nix1
-rw-r--r--nixos/tests/incus/container.nix10
-rw-r--r--nixos/tests/incus/lxd-to-incus.nix4
-rw-r--r--nixos/tests/incus/virtual-machine.nix2
-rw-r--r--nixos/tests/installer.nix3
-rw-r--r--nixos/tests/intune.nix56
-rw-r--r--nixos/tests/kanidm.nix1
-rw-r--r--nixos/tests/keepalived.nix3
-rw-r--r--nixos/tests/kernel-generic.nix1
-rw-r--r--nixos/tests/kernel-rust.nix43
-rw-r--r--nixos/tests/lemmy.nix2
-rw-r--r--nixos/tests/livebook-service.nix10
-rw-r--r--nixos/tests/miriway.nix2
-rw-r--r--nixos/tests/netbird.nix2
-rw-r--r--nixos/tests/networking.nix3
-rw-r--r--nixos/tests/nextcloud/with-declarative-redis-and-secrets.nix2
-rw-r--r--nixos/tests/nextcloud/with-postgresql-and-redis.nix2
-rw-r--r--nixos/tests/nfs/kerberos.nix1
-rw-r--r--nixos/tests/nginx-moreheaders.nix37
-rw-r--r--nixos/tests/nixops/default.nix6
-rw-r--r--nixos/tests/nixos-rebuild-target-host.nix5
-rw-r--r--nixos/tests/nvmetcfg.nix43
-rw-r--r--nixos/tests/opensmtpd-rspamd.nix1
-rw-r--r--nixos/tests/opensmtpd.nix1
-rw-r--r--nixos/tests/owncast.nix2
-rw-r--r--nixos/tests/podman/default.nix2
-rw-r--r--nixos/tests/pomerium.nix4
-rw-r--r--nixos/tests/postgis.nix1
-rw-r--r--nixos/tests/prometheus-exporters.nix80
-rw-r--r--nixos/tests/pyload.nix33
-rw-r--r--nixos/tests/qemu-vm-restrictnetwork.nix2
-rw-r--r--nixos/tests/rss2email.nix1
-rw-r--r--nixos/tests/sane.nix85
-rw-r--r--nixos/tests/ssh-audit.nix1
-rw-r--r--nixos/tests/suwayomi-server.nix46
-rw-r--r--nixos/tests/systemd-lock-handler.nix56
-rw-r--r--nixos/tests/systemd-networkd-dhcpserver.nix3
-rw-r--r--nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix8
-rw-r--r--nixos/tests/systemd-nspawn.nix1
-rw-r--r--nixos/tests/systemd-sysusers-immutable.nix64
-rw-r--r--nixos/tests/systemd-sysusers-mutable.nix71
-rw-r--r--nixos/tests/tayga.nix2
-rw-r--r--nixos/tests/trafficserver.nix1
-rw-r--r--nixos/tests/ulogd/ulogd.py1
-rw-r--r--nixos/tests/upnp.nix2
-rw-r--r--nixos/tests/uptermd.nix1
-rw-r--r--nixos/tests/watchdogd.nix22
-rw-r--r--nixos/tests/web-apps/netbox-upgrade.nix4
-rw-r--r--nixos/tests/web-apps/pretalx.nix31
-rw-r--r--nixos/tests/web-servers/stargazer.nix108
-rw-r--r--nixos/tests/web-servers/ttyd.nix19
-rw-r--r--nixos/tests/zfs.nix25
-rw-r--r--nixos/tests/zigbee2mqtt.nix13
-rw-r--r--nixos/tests/zrepl.nix1
-rw-r--r--pkgs/README.md2
-rw-r--r--pkgs/applications/audio/bristol/default.nix30
-rw-r--r--pkgs/applications/audio/ensemble-chorus/default.nix2
-rw-r--r--pkgs/applications/audio/faust/faustlive.nix79
-rw-r--r--pkgs/applications/audio/faustPhysicalModeling/default.nix4
-rw-r--r--pkgs/applications/audio/g4music/default.nix4
-rw-r--r--pkgs/applications/audio/gbsplay/default.nix4
-rw-r--r--pkgs/applications/audio/go-musicfox/default.nix4
-rw-r--r--pkgs/applications/audio/grandorgue/default.nix31
-rw-r--r--pkgs/applications/audio/gtkcord4/default.nix6
-rw-r--r--pkgs/applications/audio/hqplayer-desktop/default.nix4
-rw-r--r--pkgs/applications/audio/hydrogen/default.nix4
-rw-r--r--pkgs/applications/audio/ledfx/default.nix23
-rw-r--r--pkgs/applications/audio/lyrebird/default.nix6
-rw-r--r--pkgs/applications/audio/mmlgui/default.nix4
-rw-r--r--pkgs/applications/audio/monkeys-audio/default.nix4
-rw-r--r--pkgs/applications/audio/mopidy/mopidy.nix4
-rw-r--r--pkgs/applications/audio/mopidy/mopify.nix4
-rw-r--r--pkgs/applications/audio/mopidy/notify.nix4
-rw-r--r--pkgs/applications/audio/mopidy/podcast.nix4
-rw-r--r--pkgs/applications/audio/mpg123/default.nix4
-rw-r--r--pkgs/applications/audio/musescore/default.nix4
-rw-r--r--pkgs/applications/audio/mympd/default.nix4
-rw-r--r--pkgs/applications/audio/netease-music-tui/default.nix1
-rw-r--r--pkgs/applications/audio/noisetorch/default.nix1
-rw-r--r--pkgs/applications/audio/picard/default.nix6
-rw-r--r--pkgs/applications/audio/polyphone/default.nix5
-rw-r--r--pkgs/applications/audio/praat/default.nix4
-rw-r--r--pkgs/applications/audio/psst/default.nix6
-rw-r--r--pkgs/applications/audio/psst/make-build-reproducible.patch2
-rw-r--r--pkgs/applications/audio/pt2-clone/default.nix4
-rw-r--r--pkgs/applications/audio/qjackctl/default.nix4
-rw-r--r--pkgs/applications/audio/qpwgraph/default.nix4
-rw-r--r--pkgs/applications/audio/quodlibet/default.nix2
-rw-r--r--pkgs/applications/audio/reaper/default.nix8
-rw-r--r--pkgs/applications/audio/roomeqwizard/default.nix4
-rw-r--r--pkgs/applications/audio/schismtracker/default.nix4
-rw-r--r--pkgs/applications/audio/snapcast/default.nix11
-rw-r--r--pkgs/applications/audio/snd/default.nix4
-rw-r--r--pkgs/applications/audio/songrec/default.nix16
-rw-r--r--pkgs/applications/audio/sonic-pi/default.nix6
-rw-r--r--pkgs/applications/audio/sonobus/default.nix13
-rw-r--r--pkgs/applications/audio/sony-headphones-client/default.nix12
-rw-r--r--pkgs/applications/audio/soundkonverter/default.nix1
-rw-r--r--pkgs/applications/audio/spotify-cli-linux/default.nix4
-rw-r--r--pkgs/applications/audio/strawberry/default.nix16
-rw-r--r--pkgs/applications/audio/string-machine/default.nix12
-rw-r--r--pkgs/applications/audio/sunvox/default.nix49
-rw-r--r--pkgs/applications/audio/tauon/default.nix4
-rw-r--r--pkgs/applications/audio/vgmplay-libvgm/default.nix8
-rw-r--r--pkgs/applications/backup/unifi-protect-backup/default.nix4
-rw-r--r--pkgs/applications/blockchains/besu/default.nix4
-rw-r--r--pkgs/applications/blockchains/ergo/default.nix4
-rw-r--r--pkgs/applications/blockchains/exodus/default.nix4
-rw-r--r--pkgs/applications/blockchains/ledger-live-desktop/default.nix5
-rw-r--r--pkgs/applications/blockchains/optimism/default.nix6
-rw-r--r--pkgs/applications/blockchains/optimism/geth.nix6
-rw-r--r--pkgs/applications/blockchains/polkadot/Cargo.lock3037
-rw-r--r--pkgs/applications/blockchains/polkadot/default.nix16
-rw-r--r--pkgs/applications/blockchains/trezor-suite/default.nix6
-rw-r--r--pkgs/applications/editors/amp/default.nix6
-rw-r--r--pkgs/applications/editors/android-studio/default.nix8
-rw-r--r--pkgs/applications/editors/aseprite/skia.nix4
-rw-r--r--pkgs/applications/editors/codux/default.nix4
-rw-r--r--pkgs/applications/editors/lapce/default.nix1
-rw-r--r--pkgs/applications/editors/neovim/default.nix33
-rw-r--r--pkgs/applications/editors/neovim/neovide/default.nix6
-rw-r--r--pkgs/applications/editors/neovim/wrapper.nix2
-rw-r--r--pkgs/applications/editors/rednotebook/default.nix4
-rw-r--r--pkgs/applications/editors/retext/default.nix6
-rw-r--r--pkgs/applications/editors/thonny/default.nix4
-rw-r--r--pkgs/applications/editors/typora/default.nix4
-rw-r--r--pkgs/applications/editors/vim/common.nix28
-rw-r--r--pkgs/applications/editors/vim/default.nix9
-rw-r--r--pkgs/applications/editors/vim/full.nix4
-rw-r--r--pkgs/applications/editors/vim/plugins/generated.nix1446
-rw-r--r--pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix274
-rw-r--r--pkgs/applications/editors/vim/plugins/overrides.nix27
-rw-r--r--pkgs/applications/editors/vim/plugins/vim-plugin-names6
-rw-r--r--pkgs/applications/editors/vscode/extensions/default.nix241
-rw-r--r--pkgs/applications/editors/vscode/vscode.nix16
-rw-r--r--pkgs/applications/editors/vscode/vscodium.nix12
-rw-r--r--pkgs/applications/emulators/bsnes/ares/002-fix-ruby.diff19
-rw-r--r--pkgs/applications/emulators/bsnes/ares/default.nix4
-rw-r--r--pkgs/applications/emulators/bsnes/bsnes-hd/default.nix10
-rw-r--r--pkgs/applications/emulators/ccemux/default.nix2
-rw-r--r--pkgs/applications/emulators/cemu/default.nix4
-rw-r--r--pkgs/applications/emulators/citra/default.nix8
-rw-r--r--pkgs/applications/emulators/craftos-pc/default.nix17
-rw-r--r--pkgs/applications/emulators/fceux/default.nix19
-rw-r--r--pkgs/applications/emulators/mame/default.nix4
-rw-r--r--pkgs/applications/emulators/melonDS/default.nix58
-rw-r--r--pkgs/applications/emulators/mgba/default.nix47
-rw-r--r--pkgs/applications/emulators/nuked-md/default.nix10
-rw-r--r--pkgs/applications/emulators/pcsx2/default.nix8
-rw-r--r--pkgs/applications/emulators/retroarch/cores.nix14
-rw-r--r--pkgs/applications/emulators/retroarch/hashes.json7
-rw-r--r--pkgs/applications/emulators/retroarch/mkLibretroCore.nix2
-rwxr-xr-xpkgs/applications/emulators/retroarch/update_cores.py1
-rw-r--r--pkgs/applications/emulators/sameboy/default.nix4
-rw-r--r--pkgs/applications/emulators/wine/base.nix3
-rw-r--r--pkgs/applications/emulators/wine/default.nix2
-rw-r--r--pkgs/applications/emulators/wine/packages.nix9
-rw-r--r--pkgs/applications/emulators/wine/sources.nix28
-rw-r--r--pkgs/applications/emulators/yuzu/compat-list.nix6
-rw-r--r--pkgs/applications/emulators/yuzu/default.nix12
-rw-r--r--pkgs/applications/emulators/yuzu/early-access/default.nix1
-rw-r--r--pkgs/applications/emulators/yuzu/early-access/sources.nix8
-rwxr-xr-xpkgs/applications/emulators/yuzu/early-access/update.sh6
-rw-r--r--pkgs/applications/emulators/yuzu/mainline.nix7
-rw-r--r--pkgs/applications/emulators/yuzu/nx_tzdb.nix6
-rwxr-xr-xpkgs/applications/emulators/yuzu/update.sh2
-rw-r--r--pkgs/applications/file-managers/clifm/default.nix6
-rw-r--r--pkgs/applications/file-managers/felix-fm/default.nix6
-rw-r--r--pkgs/applications/file-managers/mc/default.nix4
-rw-r--r--pkgs/applications/file-managers/tuifimanager/default.nix6
-rw-r--r--pkgs/applications/file-managers/xfe/default.nix4
-rw-r--r--pkgs/applications/file-managers/yazi/default.nix6
-rw-r--r--pkgs/applications/gis/qgis/pdal-2_5.nix131
-rw-r--r--pkgs/applications/gis/qgis/unwrapped-ltr.nix11
-rw-r--r--pkgs/applications/gis/qgis/unwrapped.nix4
-rw-r--r--pkgs/applications/gis/saga/default.nix4
-rw-r--r--pkgs/applications/graphics/ImageMagick/default.nix4
-rw-r--r--pkgs/applications/graphics/digikam/default.nix1
-rw-r--r--pkgs/applications/graphics/djv/default.nix5
-rw-r--r--pkgs/applications/graphics/f3d/default.nix36
-rw-r--r--pkgs/applications/graphics/figma-agent/default.nix6
-rw-r--r--pkgs/applications/graphics/foxotron/default.nix16
-rw-r--r--pkgs/applications/graphics/fstl/default.nix24
-rw-r--r--pkgs/applications/graphics/goxel/default.nix4
-rw-r--r--pkgs/applications/graphics/hydrus/default.nix4
-rw-r--r--pkgs/applications/graphics/identity/default.nix2
-rw-r--r--pkgs/applications/graphics/komikku/default.nix4
-rw-r--r--pkgs/applications/graphics/lazpaint/default.nix35
-rw-r--r--pkgs/applications/graphics/oculante/default.nix6
-rw-r--r--pkgs/applications/graphics/paraview/default.nix12
-rw-r--r--pkgs/applications/graphics/photoqt/default.nix4
-rw-r--r--pkgs/applications/graphics/pikopixel/default.nix13
-rw-r--r--pkgs/applications/graphics/rawtherapee/default.nix1
-rw-r--r--pkgs/applications/graphics/sane/backends/default.nix5
-rw-r--r--pkgs/applications/graphics/tev/default.nix2
-rw-r--r--pkgs/applications/graphics/upscayl/default.nix4
-rw-r--r--pkgs/applications/graphics/vengi-tools/default.nix4
-rw-r--r--pkgs/applications/logging/sosreport/default.nix6
-rw-r--r--pkgs/applications/misc/1password-gui/default.nix18
-rw-r--r--pkgs/applications/misc/ablog/default.nix5
-rw-r--r--pkgs/applications/misc/ausweisapp/default.nix4
-rw-r--r--pkgs/applications/misc/avizo/default.nix4
-rw-r--r--pkgs/applications/misc/avrdudess/default.nix6
-rw-r--r--pkgs/applications/misc/bambu-studio/default.nix4
-rw-r--r--pkgs/applications/misc/batsignal/default.nix4
-rw-r--r--pkgs/applications/misc/bemenu/default.nix4
-rw-r--r--pkgs/applications/misc/blender/default.nix6
-rw-r--r--pkgs/applications/misc/calibre/default.nix4
-rw-r--r--pkgs/applications/misc/chatblade/default.nix4
-rw-r--r--pkgs/applications/misc/corectrl/default.nix4
-rw-r--r--pkgs/applications/misc/diff-pdf/default.nix4
-rw-r--r--pkgs/applications/misc/diffuse/default.nix4
-rw-r--r--pkgs/applications/misc/electrum/default.nix3
-rw-r--r--pkgs/applications/misc/ff2mpv/default.nix4
-rw-r--r--pkgs/applications/misc/gallery-dl/default.nix4
-rw-r--r--pkgs/applications/misc/ganttproject-bin/default.nix10
-rw-r--r--pkgs/applications/misc/geoipupdate/default.nix6
-rw-r--r--pkgs/applications/misc/girara/default.nix4
-rw-r--r--pkgs/applications/misc/goldendict-ng/default.nix9
-rw-r--r--pkgs/applications/misc/gpxsee/default.nix4
-rw-r--r--pkgs/applications/misc/gramps/default.nix93
-rw-r--r--pkgs/applications/misc/gsctl/default.nix9
-rw-r--r--pkgs/applications/misc/gsctl/go120-compatibility.patch21
-rw-r--r--pkgs/applications/misc/hamster/default.nix6
-rw-r--r--pkgs/applications/misc/harsh/default.nix6
-rw-r--r--pkgs/applications/misc/hcl2json/default.nix6
-rw-r--r--pkgs/applications/misc/hyprdim/default.nix6
-rw-r--r--pkgs/applications/misc/ipatool/default.nix6
-rw-r--r--pkgs/applications/misc/iptsd/default.nix5
-rw-r--r--pkgs/applications/misc/j4-dmenu-desktop/default.nix21
-rw-r--r--pkgs/applications/misc/josm/default.nix6
-rw-r--r--pkgs/applications/misc/keepass-plugins/keepassrpc/default.nix4
-rw-r--r--pkgs/applications/misc/khal/default.nix32
-rw-r--r--pkgs/applications/misc/logseq/default.nix5
-rw-r--r--pkgs/applications/misc/loxodo/default.nix2
-rw-r--r--pkgs/applications/misc/lscolors/default.nix6
-rw-r--r--pkgs/applications/misc/meerk40t/default.nix44
-rw-r--r--pkgs/applications/misc/mob/default.nix4
-rw-r--r--pkgs/applications/misc/monitorcontrol/default.nix19
-rw-r--r--pkgs/applications/misc/moonlight-embedded/default.nix1
-rw-r--r--pkgs/applications/misc/mozphab/default.nix4
-rw-r--r--pkgs/applications/misc/mupdf/default.nix5
-rw-r--r--pkgs/applications/misc/mysql-workbench/default.nix30
-rw-r--r--pkgs/applications/misc/mysql-workbench/fix-xml2.patch25
-rw-r--r--pkgs/applications/misc/nwg-bar/default.nix6
-rw-r--r--pkgs/applications/misc/nwg-displays/default.nix6
-rw-r--r--pkgs/applications/misc/nwg-look/default.nix6
-rw-r--r--pkgs/applications/misc/nwg-menu/default.nix6
-rw-r--r--pkgs/applications/misc/opencpn/default.nix39
-rw-r--r--pkgs/applications/misc/organicmaps/default.nix4
-rw-r--r--pkgs/applications/misc/orpie/default.nix2
-rw-r--r--pkgs/applications/misc/oversteer/default.nix4
-rw-r--r--pkgs/applications/misc/oxker/default.nix6
-rw-r--r--pkgs/applications/misc/p2pool/default.nix4
-rw-r--r--pkgs/applications/misc/pairdrop/default.nix6
-rw-r--r--pkgs/applications/misc/pe-bear/default.nix4
-rw-r--r--pkgs/applications/misc/pot/Cargo.lock1159
-rw-r--r--pkgs/applications/misc/pot/default.nix9
-rw-r--r--pkgs/applications/misc/printrun/default.nix6
-rw-r--r--pkgs/applications/misc/process-compose/default.nix6
-rw-r--r--pkgs/applications/misc/prusa-slicer/default.nix11
-rw-r--r--pkgs/applications/misc/prusa-slicer/super-slicer.nix4
-rw-r--r--pkgs/applications/misc/pure-maps/default.nix4
-rw-r--r--pkgs/applications/misc/pydf/default.nix1
-rw-r--r--pkgs/applications/misc/qcad/default.nix4
-rw-r--r--pkgs/applications/misc/qdirstat/default.nix4
-rw-r--r--pkgs/applications/misc/remarkable/restream/default.nix6
-rw-r--r--pkgs/applications/misc/remarkable/rmview/default.nix4
-rw-r--r--pkgs/applications/misc/rsclock/default.nix6
-rw-r--r--pkgs/applications/misc/sigal/copytree-permissions.patch16
-rw-r--r--pkgs/applications/misc/sigal/default.nix12
-rw-r--r--pkgs/applications/misc/smpq/default.nix4
-rw-r--r--pkgs/applications/misc/stretchly/default.nix31
-rw-r--r--pkgs/applications/misc/sway-contrib/default.nix21
-rw-r--r--pkgs/applications/misc/sweethome3d/default.nix18
-rw-r--r--pkgs/applications/misc/sweethome3d/editors.nix11
-rw-r--r--pkgs/applications/misc/tandoor-recipes/common.nix6
-rw-r--r--pkgs/applications/misc/tandoor-recipes/default.nix8
-rw-r--r--pkgs/applications/misc/tandoor-recipes/media-root.patch17
-rw-r--r--pkgs/applications/misc/timew-sync-server/default.nix6
-rw-r--r--pkgs/applications/misc/timewarrior/default.nix4
-rw-r--r--pkgs/applications/misc/tippecanoe/default.nix4
-rw-r--r--pkgs/applications/misc/ttyper/default.nix6
-rw-r--r--pkgs/applications/misc/tuba/default.nix4
-rw-r--r--pkgs/applications/misc/tui-journal/default.nix8
-rw-r--r--pkgs/applications/misc/udiskie/default.nix10
-rw-r--r--pkgs/applications/misc/variety/default.nix4
-rw-r--r--pkgs/applications/misc/visidata/default.nix4
-rw-r--r--pkgs/applications/misc/vym/default.nix20
-rw-r--r--pkgs/applications/misc/wallust/default.nix6
-rw-r--r--pkgs/applications/misc/waypaper/default.nix7
-rw-r--r--pkgs/applications/misc/wmenu/default.nix4
-rw-r--r--pkgs/applications/misc/wordnet/default.nix3
-rw-r--r--pkgs/applications/misc/xcruiser/default.nix14
-rw-r--r--pkgs/applications/misc/yubioath-flutter/default.nix17
-rw-r--r--pkgs/applications/misc/yubioath-flutter/helper.nix15
-rw-r--r--pkgs/applications/misc/yubioath-flutter/pubspec.lock.json360
-rw-r--r--pkgs/applications/networking/blocky/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/brave/default.nix9
-rw-r--r--pkgs/applications/networking/browsers/chromium/common.nix22
-rw-r--r--pkgs/applications/networking/browsers/chromium/patches/chromium-121-rust.patch19
-rw-r--r--pkgs/applications/networking/browsers/chromium/upstream-info.nix36
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/release_sources.nix818
-rw-r--r--pkgs/applications/networking/browsers/firefox/122.0-libvpx-mozbz1875201.patch80
-rw-r--r--pkgs/applications/networking/browsers/firefox/common.nix14
-rw-r--r--pkgs/applications/networking/browsers/firefox/packages.nix8
-rw-r--r--pkgs/applications/networking/browsers/floorp/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/google-chrome/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/librewolf/src.json14
-rw-r--r--pkgs/applications/networking/browsers/microsoft-edge/default.nix12
-rw-r--r--pkgs/applications/networking/browsers/mullvad-browser/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/netsurf/buildsystem.nix4
-rw-r--r--pkgs/applications/networking/browsers/opera/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/polypane/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/tor-browser/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/vivaldi/default.nix6
-rw-r--r--pkgs/applications/networking/cloudflared/default.nix4
-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/cilium/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/civo/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/docker-machine/default.nix33
-rw-r--r--pkgs/applications/networking/cluster/docker-machine/kvm-deps.nix21
-rw-r--r--pkgs/applications/networking/cluster/docker-machine/kvm.nix28
-rw-r--r--pkgs/applications/networking/cluster/docker-machine/xhyve.nix41
-rw-r--r--pkgs/applications/networking/cluster/flink/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/fn-cli/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/glooctl/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/helm/default.nix21
-rw-r--r--pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix6
-rw-r--r--pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix6
-rw-r--r--pkgs/applications/networking/cluster/helmfile/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/hubble/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/istioctl/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/k0sctl/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/k8sgpt/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/k9s/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kaniko/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kn/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kops/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/krane/Gemfile.lock32
-rw-r--r--pkgs/applications/networking/cluster/krane/gemset.nix68
-rw-r--r--pkgs/applications/networking/cluster/kubecm/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kubecolor/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kubectl-explore/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kubectl-klock/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kubectl-node-shell/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kubedb-cli/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kubedog/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kubergrunt/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/kubevela/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kyverno/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/linkerd/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/linkerd/edge.nix6
-rw-r--r--pkgs/applications/networking/cluster/nerdctl/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/nomad/default.nix30
-rw-r--r--pkgs/applications/networking/cluster/opentofu/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/popeye/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/roxctl/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/sonobuoy/default.nix21
-rwxr-xr-xpkgs/applications/networking/cluster/sonobuoy/update.sh50
-rw-r--r--pkgs/applications/networking/cluster/temporal-cli/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/temporal/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/terraform-compliance/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/terraform-docs/default.nix12
-rw-r--r--pkgs/applications/networking/cluster/terraform-docs/update-to-go-1.21.patch2698
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/providers.json236
-rw-r--r--pkgs/applications/networking/cluster/terraform/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/terragrunt/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/tftui/default.nix54
-rw-r--r--pkgs/applications/networking/cluster/tfupdate/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/tilt/assets.nix2
-rw-r--r--pkgs/applications/networking/cluster/tilt/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/timoni/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/werf/default.nix6
-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/datovka/default.nix4
-rw-r--r--pkgs/applications/networking/deck/default.nix6
-rw-r--r--pkgs/applications/networking/discordo/default.nix8
-rw-r--r--pkgs/applications/networking/dnscontrol/default.nix6
-rw-r--r--pkgs/applications/networking/feedreaders/goeland/default.nix4
-rw-r--r--pkgs/applications/networking/firewalld/default.nix4
-rw-r--r--pkgs/applications/networking/gnmic/default.nix6
-rw-r--r--pkgs/applications/networking/gnome-network-displays/default.nix10
-rw-r--r--pkgs/applications/networking/gns3/default.nix16
-rw-r--r--pkgs/applications/networking/go-graft/default.nix2
-rw-r--r--pkgs/applications/networking/ids/zeek/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/alfaview/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/armcord/default.nix14
-rw-r--r--pkgs/applications/networking/instant-messengers/baresip/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/beeper/default.nix8
-rw-r--r--pkgs/applications/networking/instant-messengers/chatty/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/discord/default.nix32
-rw-r--r--pkgs/applications/networking/instant-messengers/element/pin.nix10
-rw-r--r--pkgs/applications/networking/instant-messengers/fluffychat/default.nix72
-rw-r--r--pkgs/applications/networking/instant-messengers/fluffychat/pubspec.lock.json736
-rw-r--r--pkgs/applications/networking/instant-messengers/fractal/Cargo.lock964
-rw-r--r--pkgs/applications/networking/instant-messengers/fractal/default.nix8
-rw-r--r--pkgs/applications/networking/instant-messengers/jami/default.nix8
-rw-r--r--pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix110
-rw-r--r--pkgs/applications/networking/instant-messengers/kdeltachat/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/qq/sources.nix10
-rw-r--r--pkgs/applications/networking/instant-messengers/rambox/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-aarch64.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-beta.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/slack/default.nix12
-rw-r--r--pkgs/applications/networking/instant-messengers/teams-for-linux/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/teamspeak/client5.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.patch20
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/webcord/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/zoom-us/default.nix12
-rw-r--r--pkgs/applications/networking/instant-messengers/zulip-term/default.nix35
-rw-r--r--pkgs/applications/networking/instant-messengers/zulip/default.nix4
-rw-r--r--pkgs/applications/networking/ipfs-cluster/default.nix6
-rw-r--r--pkgs/applications/networking/irc/weechat/default.nix4
-rw-r--r--pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix4
-rw-r--r--pkgs/applications/networking/ktailctl/default.nix11
-rw-r--r--pkgs/applications/networking/localproxy/default.nix16
-rw-r--r--pkgs/applications/networking/localsend/default.nix10
-rw-r--r--pkgs/applications/networking/localsend/pubspec.lock.json338
-rwxr-xr-xpkgs/applications/networking/localsend/update.sh7
-rw-r--r--pkgs/applications/networking/mailreaders/aerc/default.nix6
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird/packages.nix4
-rw-r--r--pkgs/applications/networking/mkchromecast/default.nix4
-rw-r--r--pkgs/applications/networking/nextcloud-client/default.nix6
-rw-r--r--pkgs/applications/networking/p2p/deluge/default.nix2
-rw-r--r--pkgs/applications/networking/p2p/flood-for-transmission/default.nix6
-rw-r--r--pkgs/applications/networking/p2p/qbittorrent/default.nix6
-rw-r--r--pkgs/applications/networking/protonmail-bridge/default.nix4
-rw-r--r--pkgs/applications/networking/pyload-ng/declarative-default-user.patch15
-rw-r--r--pkgs/applications/networking/pyload-ng/declarative-env-config.patch18
-rw-r--r--pkgs/applications/networking/pyload-ng/default.nix32
-rw-r--r--pkgs/applications/networking/qv2ray/default.nix4
-rw-r--r--pkgs/applications/networking/remote/freerdp/default.nix4
-rw-r--r--pkgs/applications/networking/remote/vmware-horizon-client/default.nix37
-rw-r--r--pkgs/applications/networking/remote/xrdp/default.nix4
-rw-r--r--pkgs/applications/networking/seahub/default.nix15
-rw-r--r--pkgs/applications/networking/seaweedfs/default.nix6
-rw-r--r--pkgs/applications/networking/shellhub-agent/default.nix6
-rw-r--r--pkgs/applications/networking/sniffers/wireshark/default.nix2
-rw-r--r--pkgs/applications/networking/sync/rclone/default.nix6
-rw-r--r--pkgs/applications/networking/sync/rsync/configure.ac-fix-failing-IPv6-check.patch12
-rw-r--r--pkgs/applications/networking/sync/rsync/default.nix2
-rw-r--r--pkgs/applications/networking/sync/storj-uplink/default.nix6
-rw-r--r--pkgs/applications/networking/syncthing/default.nix6
-rw-r--r--pkgs/applications/networking/twingate/default.nix4
-rw-r--r--pkgs/applications/networking/vnstat/default.nix4
-rw-r--r--pkgs/applications/networking/weather/meteo/default.nix4
-rw-r--r--pkgs/applications/networking/xpipe/default.nix4
-rw-r--r--pkgs/applications/office/activitywatch/default.nix9
-rw-r--r--pkgs/applications/office/fava/default.nix4
-rw-r--r--pkgs/applications/office/jameica/default.nix6
-rw-r--r--pkgs/applications/office/libreoffice/darwin/default.nix1
-rw-r--r--pkgs/applications/office/paperless-ngx/default.nix8
-rw-r--r--pkgs/applications/office/paperwork/paperwork-gtk.nix2
-rw-r--r--pkgs/applications/office/pdfmixtool/default.nix6
-rw-r--r--pkgs/applications/office/portfolio/default.nix4
-rw-r--r--pkgs/applications/office/qownnotes/default.nix6
-rw-r--r--pkgs/applications/office/qpdfview/default.nix3
-rw-r--r--pkgs/applications/office/super-productivity/default.nix4
-rw-r--r--pkgs/applications/office/timeular/default.nix4
-rw-r--r--pkgs/applications/office/treesheets/default.nix6
-rw-r--r--pkgs/applications/office/tryton/default.nix4
-rw-r--r--pkgs/applications/office/zotero/default.nix1
-rw-r--r--pkgs/applications/radio/abracadabra/default.nix4
-rw-r--r--pkgs/applications/radio/cloudlog/default.nix4
-rw-r--r--pkgs/applications/radio/flamp/default.nix4
-rw-r--r--pkgs/applications/radio/fldigi/default.nix4
-rw-r--r--pkgs/applications/radio/fllog/default.nix4
-rw-r--r--pkgs/applications/radio/flrig/default.nix4
-rw-r--r--pkgs/applications/radio/freedv/default.nix4
-rw-r--r--pkgs/applications/radio/gnuradio/3.8.nix2
-rw-r--r--pkgs/applications/radio/gnuradio/3.9.nix6
-rw-r--r--pkgs/applications/radio/gnuradio/shared.nix2
-rw-r--r--pkgs/applications/radio/m17-cxx-demod/default.nix12
-rw-r--r--pkgs/applications/radio/sdrpp/default.nix107
-rw-r--r--pkgs/applications/radio/urh/default.nix4
-rw-r--r--pkgs/applications/science/biology/N3/default.nix11
-rw-r--r--pkgs/applications/science/biology/ants/default.nix4
-rw-r--r--pkgs/applications/science/biology/bowtie2/default.nix4
-rw-r--r--pkgs/applications/science/biology/deeptools/default.nix36
-rw-r--r--pkgs/applications/science/biology/eggnog-mapper/default.nix4
-rw-r--r--pkgs/applications/science/biology/igv/default.nix15
-rw-r--r--pkgs/applications/science/biology/inormalize/default.nix11
-rw-r--r--pkgs/applications/science/biology/obitools/obitools3.nix4
-rw-r--r--pkgs/applications/science/biology/samtools/default.nix4
-rw-r--r--pkgs/applications/science/biology/spades/default.nix5
-rw-r--r--pkgs/applications/science/biology/stacks/default.nix4
-rw-r--r--pkgs/applications/science/biology/whisper/default.nix14
-rw-r--r--pkgs/applications/science/chemistry/gwyddion/default.nix4
-rw-r--r--pkgs/applications/science/chemistry/jmol/default.nix4
-rw-r--r--pkgs/applications/science/chemistry/marvin/default.nix8
-rw-r--r--pkgs/applications/science/chemistry/molden/default.nix2
-rw-r--r--pkgs/applications/science/chemistry/mopac/default.nix4
-rw-r--r--pkgs/applications/science/chemistry/octopus/default.nix49
-rw-r--r--pkgs/applications/science/chemistry/openmolcas/default.nix3
-rw-r--r--pkgs/applications/science/chemistry/openmolcas/pyparsing.patch37
-rw-r--r--pkgs/applications/science/electronics/dsview/default.nix13
-rw-r--r--pkgs/applications/science/electronics/dsview/install.patch2
-rw-r--r--pkgs/applications/science/electronics/fritzing/default.nix57
-rw-r--r--pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix6
-rw-r--r--pkgs/applications/science/electronics/kicad/versions.nix32
-rw-r--r--pkgs/applications/science/electronics/magic-vlsi/default.nix4
-rw-r--r--pkgs/applications/science/electronics/nanovna-saver/default.nix6
-rw-r--r--pkgs/applications/science/electronics/nvc/default.nix7
-rw-r--r--pkgs/applications/science/electronics/simulide/default.nix6
-rw-r--r--pkgs/applications/science/geometry/gama/default.nix6
-rw-r--r--pkgs/applications/science/logic/abella/default.nix8
-rw-r--r--pkgs/applications/science/logic/btor2tools/default.nix10
-rw-r--r--pkgs/applications/science/logic/coq/default.nix2
-rw-r--r--pkgs/applications/science/logic/cvc5/default.nix4
-rw-r--r--pkgs/applications/science/logic/easycrypt/default.nix3
-rw-r--r--pkgs/applications/science/logic/egglog/Cargo.lock383
-rw-r--r--pkgs/applications/science/logic/egglog/default.nix12
-rw-r--r--pkgs/applications/science/logic/lean4/default.nix21
-rw-r--r--pkgs/applications/science/logic/why3/default.nix24
-rw-r--r--pkgs/applications/science/logic/workcraft/default.nix4
-rw-r--r--pkgs/applications/science/logic/z3/default.nix4
-rw-r--r--pkgs/applications/science/math/eigenmath/default.nix6
-rw-r--r--pkgs/applications/science/math/mathematica/generic.nix10
-rw-r--r--pkgs/applications/science/math/sage/default.nix3
-rw-r--r--pkgs/applications/science/math/sage/patches/disable-slow-glpk-test.patch6
-rw-r--r--pkgs/applications/science/math/sage/patches/numpy-1.25-deprecation.patch18
-rw-r--r--pkgs/applications/science/math/sage/python-modules/sage-setup.nix4
-rw-r--r--pkgs/applications/science/math/sage/sage-src.nix115
-rw-r--r--pkgs/applications/science/math/sage/sagedoc.nix25
-rw-r--r--pkgs/applications/science/math/sage/sagelib.nix24
-rw-r--r--pkgs/applications/science/misc/boinc/default.nix4
-rw-r--r--pkgs/applications/science/misc/cwltool/default.nix26
-rw-r--r--pkgs/applications/science/misc/foldingathome/client.nix17
-rw-r--r--pkgs/applications/science/misc/gplates/default.nix28
-rw-r--r--pkgs/applications/science/misc/openrefine/default.nix136
-rwxr-xr-xpkgs/applications/science/misc/openrefine/update.sh20
-rw-r--r--pkgs/applications/science/misc/root/default.nix12
-rw-r--r--pkgs/applications/science/misc/snakemake/default.nix4
-rw-r--r--pkgs/applications/science/molecular-dynamics/gromacs/default.nix7
-rw-r--r--pkgs/applications/science/physics/nnpdf/default.nix4
-rw-r--r--pkgs/applications/science/robotics/mujoco/default.nix9
-rw-r--r--pkgs/applications/terminal-emulators/contour/default.nix4
-rw-r--r--pkgs/applications/terminal-emulators/kitty/default.nix11
-rw-r--r--pkgs/applications/terminal-emulators/kitty/themes.nix6
-rw-r--r--pkgs/applications/terminal-emulators/syncterm/0001-use-sched-yield-53264f2b.patch38
-rw-r--r--pkgs/applications/terminal-emulators/syncterm/default.nix18
-rw-r--r--pkgs/applications/terminal-emulators/wezterm/Cargo.lock2234
-rw-r--r--pkgs/applications/terminal-emulators/wezterm/default.nix8
-rw-r--r--pkgs/applications/version-management/cvs-fast-export/default.nix4
-rw-r--r--pkgs/applications/version-management/forgejo/default.nix8
-rw-r--r--pkgs/applications/version-management/gh/default.nix6
-rw-r--r--pkgs/applications/version-management/git-cinnabar/default.nix6
-rw-r--r--pkgs/applications/version-management/git-cola/default.nix4
-rw-r--r--pkgs/applications/version-management/git-mit/default.nix6
-rw-r--r--pkgs/applications/version-management/git-publish/default.nix4
-rw-r--r--pkgs/applications/version-management/git-quick-stats/default.nix4
-rw-r--r--pkgs/applications/version-management/gitea/default.nix4
-rw-r--r--pkgs/applications/version-management/gitkraken/default.nix48
-rw-r--r--pkgs/applications/version-management/gitlab/data.json18
-rw-r--r--pkgs/applications/version-management/gitlab/default.nix53
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/default.nix6
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-elasticsearch-indexer/default.nix6
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-pages/default.nix6
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-shell/default.nix6
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix4
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/Gemfile51
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock178
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix203
-rw-r--r--pkgs/applications/version-management/gitsign/default.nix2
-rw-r--r--pkgs/applications/version-management/gitstatus/romkatv_libgit2.nix4
-rw-r--r--pkgs/applications/version-management/gut/default.nix2
-rw-r--r--pkgs/applications/version-management/legit/default.nix4
-rw-r--r--pkgs/applications/version-management/mercurial/default.nix8
-rw-r--r--pkgs/applications/version-management/pass-git-helper/default.nix6
-rw-r--r--pkgs/applications/version-management/sapling/Cargo.lock1160
-rw-r--r--pkgs/applications/version-management/sapling/default.nix12
-rw-r--r--pkgs/applications/version-management/sapling/deps.json4
-rw-r--r--pkgs/applications/version-management/silver-platter/default.nix17
-rw-r--r--pkgs/applications/version-management/subversion/default.nix4
-rw-r--r--pkgs/applications/video/anilibria-winmaclinux/default.nix14
-rw-r--r--pkgs/applications/video/bilibili/default.nix4
-rw-r--r--pkgs/applications/video/corrscope/default.nix2
-rw-r--r--pkgs/applications/video/davinci-resolve/default.nix4
-rw-r--r--pkgs/applications/video/flirc/default.nix17
-rw-r--r--pkgs/applications/video/kodi/addons/inputstream-adaptive/default.nix4
-rw-r--r--pkgs/applications/video/kodi/addons/inputstream-ffmpegdirect/default.nix6
-rw-r--r--pkgs/applications/video/kodi/addons/netflix/default.nix4
-rw-r--r--pkgs/applications/video/kodi/unwrapped.nix16
-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/memento/default.nix4
-rw-r--r--pkgs/applications/video/mpc-qt/default.nix43
-rw-r--r--pkgs/applications/video/mpv/scripts/default.nix1
-rw-r--r--pkgs/applications/video/mpv/scripts/mpv-cheatsheet.nix42
-rw-r--r--pkgs/applications/video/mpv/scripts/occivink.nix6
-rw-r--r--pkgs/applications/video/mythtv/default.nix2
-rw-r--r--pkgs/applications/video/obs-studio/default.nix8
-rw-r--r--pkgs/applications/video/obs-studio/plugins/advanced-scene-switcher/default.nix2
-rw-r--r--pkgs/applications/video/obs-studio/plugins/default.nix2
-rw-r--r--pkgs/applications/video/obs-studio/plugins/obs-composite-blur.nix42
-rw-r--r--pkgs/applications/video/obs-studio/plugins/obs-livesplit-one/Cargo.lock3284
-rw-r--r--pkgs/applications/video/obs-studio/plugins/obs-livesplit-one/default.nix15
-rw-r--r--pkgs/applications/video/obs-studio/plugins/obs-pipewire-audio-capture.nix4
-rw-r--r--pkgs/applications/video/obs-studio/plugins/obs-teleport/default.nix2
-rw-r--r--pkgs/applications/video/pipe-viewer/default.nix4
-rw-r--r--pkgs/applications/video/shotcut/default.nix4
-rw-r--r--pkgs/applications/video/streamlink-twitch-gui/bin.nix1
-rw-r--r--pkgs/applications/video/streamlink/default.nix4
-rw-r--r--pkgs/applications/video/stremio/default.nix6
-rw-r--r--pkgs/applications/video/subtitleedit/default.nix2
-rw-r--r--pkgs/applications/video/tartube/default.nix4
-rw-r--r--pkgs/applications/video/ustreamer/default.nix4
-rw-r--r--pkgs/applications/video/vdr/default.nix4
-rw-r--r--pkgs/applications/video/vdr/markad/default.nix4
-rw-r--r--pkgs/applications/video/vlc/default.nix4
-rw-r--r--pkgs/applications/virtualization/colima/default.nix6
-rw-r--r--pkgs/applications/virtualization/containerd/default.nix4
-rw-r--r--pkgs/applications/virtualization/cri-o/default.nix4
-rw-r--r--pkgs/applications/virtualization/crun/default.nix4
-rw-r--r--pkgs/applications/virtualization/distrobox/always-mount-nix.patch137
-rw-r--r--pkgs/applications/virtualization/distrobox/default.nix15
-rw-r--r--pkgs/applications/virtualization/docker-slim/default.nix4
-rw-r--r--pkgs/applications/virtualization/docker/compose.nix6
-rw-r--r--pkgs/applications/virtualization/docker/default.nix11
-rw-r--r--pkgs/applications/virtualization/ecs-agent/default.nix4
-rw-r--r--pkgs/applications/virtualization/kraft/default.nix6
-rw-r--r--pkgs/applications/virtualization/nixpacks/default.nix6
-rw-r--r--pkgs/applications/virtualization/podman-tui/default.nix4
-rw-r--r--pkgs/applications/virtualization/podman/default.nix4
-rw-r--r--pkgs/applications/virtualization/qemu/default.nix9
-rw-r--r--pkgs/applications/virtualization/runc/default.nix4
-rw-r--r--pkgs/applications/virtualization/singularity/packages.nix6
-rw-r--r--pkgs/applications/virtualization/virt-manager/default.nix5
-rw-r--r--pkgs/applications/virtualization/virt-viewer/default.nix3
-rw-r--r--pkgs/applications/virtualization/virtualbox/default.nix6
-rw-r--r--pkgs/applications/virtualization/youki/default.nix10
-rw-r--r--pkgs/applications/virtualization/youki/fix-cargo-lock.patch40
-rw-r--r--pkgs/applications/window-managers/cagebreak/default.nix4
-rw-r--r--pkgs/applications/window-managers/evilwm/default.nix4
-rw-r--r--pkgs/applications/window-managers/fbpanel/default.nix64
-rw-r--r--pkgs/applications/window-managers/miriway/default.nix6
-rw-r--r--pkgs/applications/window-managers/picom/default.nix14
-rw-r--r--pkgs/applications/window-managers/picom/picom-allusive.nix4
-rw-r--r--pkgs/applications/window-managers/picom/picom-jonaburg.nix4
-rw-r--r--pkgs/build-support/bintools-wrapper/default.nix2
-rw-r--r--pkgs/build-support/build-graalvm-native-image/default.nix14
-rw-r--r--pkgs/build-support/cc-wrapper/default.nix30
-rw-r--r--pkgs/build-support/dart/build-dart-application/default.nix2
-rw-r--r--pkgs/build-support/dart/build-dart-application/hooks/dart-install-hook.sh16
-rw-r--r--pkgs/build-support/docker/default.nix2
-rw-r--r--pkgs/build-support/fetchgithub/default.nix6
-rw-r--r--pkgs/build-support/flutter/default.nix281
-rw-r--r--pkgs/build-support/go/module.nix6
-rw-r--r--pkgs/build-support/go/package.nix6
-rw-r--r--pkgs/build-support/kernel/compress-firmware-xz.nix13
-rw-r--r--pkgs/build-support/rust/build-rust-crate/configure-crate.nix16
-rw-r--r--pkgs/build-support/rust/build-rust-crate/default.nix10
-rw-r--r--pkgs/build-support/rust/lib/default.nix33
-rw-r--r--pkgs/build-support/setup-hooks/postgresql-test-hook/postgresql-test-hook.sh2
-rw-r--r--pkgs/build-support/testers/hasPkgConfigModules/tester.nix5
-rw-r--r--pkgs/build-support/trivial-builders/default.nix127
-rw-r--r--pkgs/build-support/trivial-builders/test/writeShellApplication.nix152
-rw-r--r--pkgs/build-support/writers/default.nix1
-rw-r--r--pkgs/build-support/writers/scripts.nix107
-rw-r--r--pkgs/build-support/writers/test.nix119
-rw-r--r--pkgs/by-name/_9/_9base/package.nix9
-rw-r--r--pkgs/by-name/aa/aaaaxy/package.nix6
-rw-r--r--pkgs/by-name/ae/aeacus/package.nix35
-rw-r--r--pkgs/by-name/al/alsa-lib-with-plugins/package.nix52
-rw-r--r--pkgs/by-name/al/alsa-tools/package.nix4
-rw-r--r--pkgs/by-name/al/alvr/package.nix36
-rw-r--r--pkgs/by-name/am/amazon-ssm-agent/package.nix8
-rw-r--r--pkgs/by-name/an/anyk/package.nix145
-rw-r--r--pkgs/by-name/an/anyk/patch_paths.py35
-rw-r--r--pkgs/by-name/an/anytype/package.nix8
-rw-r--r--pkgs/by-name/ap/approxmc/package.nix43
-rw-r--r--pkgs/by-name/ap/apt/package.nix4
-rw-r--r--pkgs/by-name/ar/arjun-cnf/fix-red-clause.patch28
-rw-r--r--pkgs/by-name/ar/arjun-cnf/package.nix48
-rw-r--r--pkgs/by-name/ar/arxiv-latex-cleaner/package.nix6
-rw-r--r--pkgs/by-name/as/ast-grep/package.nix6
-rw-r--r--pkgs/by-name/at/athens/package.nix2
-rw-r--r--pkgs/by-name/at/atlauncher/package.nix15
-rw-r--r--pkgs/by-name/au/audiobookshelf/package.nix (renamed from pkgs/servers/audiobookshelf/default.nix)21
-rw-r--r--pkgs/by-name/au/audiobookshelf/source.json9
-rwxr-xr-xpkgs/by-name/au/audiobookshelf/update.nu30
-rw-r--r--pkgs/by-name/au/audiobookshelf/wrapper.nix (renamed from pkgs/servers/audiobookshelf/wrapper.nix)0
-rw-r--r--pkgs/by-name/au/authentik/ldap.nix18
-rw-r--r--pkgs/by-name/au/authentik/outposts.nix5
-rw-r--r--pkgs/by-name/au/authentik/package.nix254
-rw-r--r--pkgs/by-name/aw/await/package.nix38
-rw-r--r--pkgs/by-name/ay/ayatana-indicator-datetime/package.nix163
-rw-r--r--pkgs/by-name/ba/bankstown-lv2/package.nix34
-rw-r--r--pkgs/by-name/be/beekeeper-studio/package.nix6
-rw-r--r--pkgs/by-name/bi/bitbake-language-server/package.nix4
-rw-r--r--pkgs/by-name/bi/bitmagnet/package.nix6
-rw-r--r--pkgs/by-name/bl/bluetuith/package.nix6
-rw-r--r--pkgs/by-name/bl/bluez/package.nix158
-rw-r--r--pkgs/by-name/bm/bmake/package.nix4
-rw-r--r--pkgs/by-name/bn/bngblaster/package.nix4
-rw-r--r--pkgs/by-name/bo/bobcat/package.nix72
-rw-r--r--pkgs/by-name/bo/bonsai/package.nix54
-rw-r--r--pkgs/by-name/bo/boogie/package.nix4
-rw-r--r--pkgs/by-name/bo/boxed-cpp/package.nix4
-rw-r--r--pkgs/by-name/bs/bsync/package.nix50
-rw-r--r--pkgs/by-name/bu/bufisk/package.nix28
-rw-r--r--pkgs/by-name/bu/bulk_extractor/package.nix62
-rw-r--r--pkgs/by-name/bu/bullshit/package.nix43
-rw-r--r--pkgs/by-name/c-/c-periphery/package.nix35
-rw-r--r--pkgs/by-name/c2/c2fmzq/package.nix6
-rw-r--r--pkgs/by-name/ca/candy-icons/package.nix41
-rw-r--r--pkgs/by-name/ca/cargo-swift/package.nix6
-rw-r--r--pkgs/by-name/ca/cargo-xwin/package.nix6
-rw-r--r--pkgs/by-name/ce/centrifugo/package.nix6
-rw-r--r--pkgs/by-name/ci/circom/package.nix6
-rw-r--r--pkgs/by-name/cl/clamtk/package.nix15
-rw-r--r--pkgs/by-name/cl/clipcat/package.nix (renamed from pkgs/applications/misc/clipcat/default.nix)6
-rw-r--r--pkgs/by-name/cl/clzip/package.nix4
-rw-r--r--pkgs/by-name/co/codeium/package.nix10
-rw-r--r--pkgs/by-name/co/cook-cli/package.nix58
-rw-r--r--pkgs/by-name/co/cosmic-comp/package.nix27
-rw-r--r--pkgs/by-name/co/cosmic-edit/Cargo.lock195
-rw-r--r--pkgs/by-name/co/cosmic-edit/package.nix39
-rw-r--r--pkgs/by-name/co/cosmic-icons/package.nix6
-rw-r--r--pkgs/by-name/co/cosmic-term/Cargo.lock1145
-rw-r--r--pkgs/by-name/co/cosmic-term/package.nix87
-rw-r--r--pkgs/by-name/cr/crawley/package.nix6
-rw-r--r--pkgs/by-name/cr/cro-mag-rally/package.nix51
-rw-r--r--pkgs/by-name/cr/cryptor/package.nix4
-rw-r--r--pkgs/by-name/dc/dc3dd/package.nix41
-rw-r--r--pkgs/by-name/de/debianutils/package.nix4
-rw-r--r--pkgs/by-name/de/deskreen/package.nix44
-rw-r--r--pkgs/by-name/do/docfd/package.nix44
-rw-r--r--pkgs/by-name/do/doge/package.nix17
-rw-r--r--pkgs/by-name/do/dorion/package.nix4
-rw-r--r--pkgs/by-name/do/doublecmd/package.nix4
-rw-r--r--pkgs/by-name/dp/dpp/package.nix49
-rw-r--r--pkgs/by-name/du/dublin-traceroute/package.nix6
-rw-r--r--pkgs/by-name/dy/dynamodb-local/package.nix14
-rw-r--r--pkgs/by-name/ea/easyeasm/package.nix51
-rw-r--r--pkgs/by-name/eb/ebtks/package.nix (renamed from pkgs/development/libraries/science/biology/EBTKS/default.nix)12
-rw-r--r--pkgs/by-name/ei/eigenlayer/package.nix4
-rw-r--r--pkgs/by-name/ei/eiwd/package.nix4
-rw-r--r--pkgs/by-name/ek/eksctl/package.nix4
-rw-r--r--pkgs/by-name/el/elektroid/package.nix4
-rw-r--r--pkgs/by-name/el/elf2nucleus/package.nix39
-rw-r--r--pkgs/by-name/ex/exegol/package.nix44
-rw-r--r--pkgs/by-name/ez/eza/package.nix6
-rw-r--r--pkgs/by-name/fa/fac/package.nix43
-rw-r--r--pkgs/by-name/fa/fanbox-dl/package.nix6
-rw-r--r--pkgs/by-name/fa/fast-float/package.nix29
-rw-r--r--pkgs/by-name/fb/fbset/package.nix42
-rw-r--r--pkgs/by-name/fe/fennel-ls/package.nix29
-rw-r--r--pkgs/by-name/fi/files-cli/package.nix6
-rw-r--r--pkgs/by-name/fi/fira-math/package.nix49
-rw-r--r--pkgs/by-name/fl/flarectl/package.nix4
-rw-r--r--pkgs/by-name/fl/fleng/package.nix4
-rw-r--r--pkgs/by-name/fo/fortune-kind/package.nix6
-rw-r--r--pkgs/by-name/fr/free42/package.nix4
-rw-r--r--pkgs/by-name/fr/freefilesync/package.nix8
-rw-r--r--pkgs/by-name/fu/fuchsia-cursor/package.nix60
-rw-r--r--pkgs/by-name/fw/fwupd/add-option-for-installation-sysconfdir.patch (renamed from pkgs/os-specific/linux/firmware/fwupd/add-option-for-installation-sysconfdir.patch)0
-rw-r--r--pkgs/by-name/fw/fwupd/efi-app-path.patch (renamed from pkgs/os-specific/linux/firmware/fwupd/efi-app-path.patch)0
-rw-r--r--pkgs/by-name/fw/fwupd/install-fwupdplugin-to-out.patch (renamed from pkgs/os-specific/linux/firmware/fwupd/install-fwupdplugin-to-out.patch)0
-rw-r--r--pkgs/by-name/fw/fwupd/installed-tests-path.patch (renamed from pkgs/os-specific/linux/firmware/fwupd/installed-tests-path.patch)0
-rw-r--r--pkgs/by-name/fw/fwupd/package.nix (renamed from pkgs/os-specific/linux/firmware/fwupd/default.nix)7
-rw-r--r--pkgs/by-name/ga/galerio/package.nix23
-rw-r--r--pkgs/by-name/ga/gato/package.nix4
-rw-r--r--pkgs/by-name/gc/gcs/package.nix86
-rw-r--r--pkgs/by-name/ge/geist-font/package.nix43
-rw-r--r--pkgs/by-name/gl/glauth/package.nix2
-rw-r--r--pkgs/by-name/go/goldwarden/package.nix4
-rw-r--r--pkgs/by-name/go/golink/package.nix32
-rw-r--r--pkgs/by-name/go/gomarkdoc/package.nix44
-rw-r--r--pkgs/by-name/gp/gprename/package.nix78
-rw-r--r--pkgs/by-name/gp/gpt4all-chat/package.nix72
-rw-r--r--pkgs/by-name/gr/graphite-cli/package-lock.json237
-rw-r--r--pkgs/by-name/gr/graphite-cli/package.nix44
-rwxr-xr-xpkgs/by-name/gr/graphite-cli/update.sh30
-rw-r--r--pkgs/by-name/gr/gruvbox-gtk-theme/package.nix (renamed from pkgs/data/themes/gruvbox-gtk-theme/default.nix)2
-rw-r--r--pkgs/by-name/gt/gtimelog/package.nix60
-rw-r--r--pkgs/by-name/gt/gtrash/package.nix51
-rw-r--r--pkgs/by-name/gt/gtt/package.nix42
-rw-r--r--pkgs/by-name/gu/guile-chickadee/package.nix80
-rw-r--r--pkgs/by-name/gu/guile-goblins/package.nix7
-rw-r--r--pkgs/by-name/ha/handheld-daemon/package.nix54
-rw-r--r--pkgs/by-name/ha/haredo/package.nix17
-rwxr-xr-xpkgs/by-name/hd/hdrop/package.nix4
-rw-r--r--pkgs/by-name/he/helix-gpt/package.nix63
-rw-r--r--pkgs/by-name/he/helix-gpt/pin.json7
-rw-r--r--pkgs/by-name/ht/htb-toolkit/disable-shell-prompt-change.patch307
-rw-r--r--pkgs/by-name/ht/htb-toolkit/package.nix69
-rw-r--r--pkgs/by-name/ht/http-server/package.nix38
-rw-r--r--pkgs/by-name/hu/hugo/package.nix6
-rw-r--r--pkgs/by-name/ia/ianny/package.nix43
-rw-r--r--pkgs/by-name/ig/igir/package.nix (renamed from pkgs/tools/games/igir/default.nix)13
-rw-r--r--pkgs/by-name/in/incus-unwrapped/package.nix17
-rw-r--r--pkgs/by-name/in/incus/package.nix16
-rw-r--r--pkgs/by-name/in/intune-portal/package.nix113
-rwxr-xr-xpkgs/by-name/in/intune-portal/update.sh26
-rw-r--r--pkgs/by-name/in/invidtui/package.nix6
-rw-r--r--pkgs/by-name/ir/ironbar/package.nix6
-rw-r--r--pkgs/by-name/ja/jasp-desktop/package.nix4
-rw-r--r--pkgs/by-name/ja/jasper/package.nix7
-rw-r--r--pkgs/by-name/ja/jazz2/package.nix4
-rw-r--r--pkgs/by-name/jd/jdt-language-server/package.nix66
-rw-r--r--pkgs/by-name/jd/jdt-language-server/update.sh21
-rw-r--r--pkgs/by-name/jn/jnr-posix/package.nix82
-rw-r--r--pkgs/by-name/ki/kikit/default.nix6
-rw-r--r--pkgs/by-name/kp/kplex/package.nix32
-rw-r--r--pkgs/by-name/kt/ktfmt/package.nix4
-rw-r--r--pkgs/by-name/ku/kubo/package.nix4
-rw-r--r--pkgs/by-name/le/lefthook/package.nix4
-rw-r--r--pkgs/by-name/le/legba/package.nix6
-rw-r--r--pkgs/by-name/le/lemminx/package.nix4
-rw-r--r--pkgs/by-name/li/libbfio/package.nix29
-rw-r--r--pkgs/by-name/li/libbgcode/package.nix1
-rw-r--r--pkgs/by-name/li/libleidenalg/package.nix35
-rw-r--r--pkgs/by-name/li/libmpdclient/package.nix35
-rw-r--r--pkgs/by-name/li/libplacebo_5/package.nix77
-rw-r--r--pkgs/by-name/li/libsignal-ffi/Cargo.lock1155
-rw-r--r--pkgs/by-name/li/libsignal-ffi/package.nix4
-rw-r--r--pkgs/by-name/li/libvibrant/package.nix32
-rw-r--r--pkgs/by-name/li/lint-staged/package.nix6
-rw-r--r--pkgs/by-name/li/littlefs-fuse/package.nix4
-rw-r--r--pkgs/by-name/li/live555/package.nix95
-rw-r--r--pkgs/by-name/ll/llama-cpp/package.nix17
-rw-r--r--pkgs/by-name/lo/louvain-community/package.nix30
-rw-r--r--pkgs/by-name/lu/lunar-client/package.nix35
-rwxr-xr-xpkgs/by-name/lu/lunar-client/update.sh4
-rw-r--r--pkgs/by-name/ma/manticoresearch/package.nix (renamed from pkgs/servers/search/manticoresearch/default.nix)26
-rw-r--r--pkgs/by-name/ma/matrix-authentication-service/Cargo.lock7162
-rw-r--r--pkgs/by-name/ma/matrix-authentication-service/package.nix97
-rw-r--r--pkgs/by-name/mc/mcap-cli/package.nix44
-rw-r--r--pkgs/by-name/md/md4c/0001-fix-pkgconfig.patch (renamed from pkgs/development/libraries/md4c/fix-pkgconfig.patch)0
-rw-r--r--pkgs/by-name/md/md4c/package.nix (renamed from pkgs/development/libraries/md4c/default.nix)39
-rw-r--r--pkgs/by-name/me/mercure/package.nix6
-rw-r--r--pkgs/by-name/me/meson/007-darwin-case-sensitivity.patch27
-rw-r--r--pkgs/by-name/me/meson/package.nix7
-rw-r--r--pkgs/by-name/mg/mgitstatus/package.nix36
-rw-r--r--pkgs/by-name/mi/microsoft-identity-broker/package.nix104
-rwxr-xr-xpkgs/by-name/mi/microsoft-identity-broker/update.sh26
-rw-r--r--pkgs/by-name/mi/minijinja/package.nix29
-rw-r--r--pkgs/by-name/ml/mlx42/package.nix16
-rw-r--r--pkgs/by-name/mo/moe/package.nix (renamed from pkgs/applications/editors/moe/default.nix)6
-rw-r--r--pkgs/by-name/mo/monophony/package.nix4
-rw-r--r--pkgs/by-name/mo/morewaita-icon-theme/package.nix4
-rw-r--r--pkgs/by-name/mo/mountpoint-s3/package.nix6
-rw-r--r--pkgs/by-name/mo/mouse-actions/package.nix49
-rw-r--r--pkgs/by-name/mo/move-mount-beneath/package.nix29
-rw-r--r--pkgs/by-name/mq/mqttx/package.nix57
-rw-r--r--pkgs/by-name/ms/msalsdk-dbusclient/package.nix37
-rwxr-xr-xpkgs/by-name/ms/msalsdk-dbusclient/update.sh26
-rw-r--r--pkgs/by-name/mu/muparser/package.nix40
-rw-r--r--pkgs/by-name/my/mystmd/package.nix6
-rw-r--r--pkgs/by-name/na/namespace-cli/package.nix6
-rw-r--r--pkgs/by-name/na/narsil/package.nix51
-rw-r--r--pkgs/by-name/ne/net-cpp/package.nix25
-rw-r--r--pkgs/by-name/ne/netclient/package.nix6
-rw-r--r--pkgs/by-name/ne/newsraft/package.nix4
-rw-r--r--pkgs/by-name/ne/nextpnr/package.nix (renamed from pkgs/development/compilers/nextpnr/default.nix)6
-rw-r--r--pkgs/by-name/ni/nickel/Cargo.lock745
-rw-r--r--pkgs/by-name/ni/nickel/package.nix13
-rw-r--r--pkgs/by-name/ni/nightfox-gtk-theme/package.nix43
-rw-r--r--pkgs/by-name/ni/nimlsp/package.nix4
-rw-r--r--pkgs/by-name/ni/nixfmt-rfc-style/date.txt1
-rw-r--r--pkgs/by-name/ni/nixfmt-rfc-style/generated-package.nix27
-rw-r--r--pkgs/by-name/ni/nixfmt-rfc-style/package.nix32
-rwxr-xr-xpkgs/by-name/ni/nixfmt-rfc-style/update.sh33
-rw-r--r--pkgs/by-name/no/nomnatong/package.nix4
-rw-r--r--pkgs/by-name/no/noto-fonts/package.nix4
-rw-r--r--pkgs/by-name/nr/nrr/package.nix40
-rw-r--r--pkgs/by-name/nv/nvdtools/package.nix31
-rw-r--r--pkgs/by-name/nv/nvmetcfg/package.nix32
-rw-r--r--pkgs/by-name/oa/oam-tools/package.nix30
-rw-r--r--pkgs/by-name/oe/oelint-adv/package.nix4
-rw-r--r--pkgs/by-name/of/offpunk/package.nix7
-rw-r--r--pkgs/by-name/on/onedrivegui/package.nix2
-rw-r--r--pkgs/by-name/op/openscad-unstable/package.nix159
-rw-r--r--pkgs/by-name/op/openswitcher/package.nix4
-rw-r--r--pkgs/by-name/op/opentelemetry-cpp/0001-Disable-tests-requiring-network-access.patch79
-rw-r--r--pkgs/by-name/op/opentelemetry-cpp/0002-Disable-segfaulting-test-on-Darwin.patch16
-rw-r--r--pkgs/by-name/op/opentelemetry-cpp/package.nix79
-rw-r--r--pkgs/by-name/or/ory/package.nix10
-rw-r--r--pkgs/by-name/ot/oterm/package.nix21
-rw-r--r--pkgs/by-name/pa/paper-age/package.nix6
-rw-r--r--pkgs/by-name/pa/paper-clip/package.nix54
-rw-r--r--pkgs/by-name/pa/parabolic/deps.nix52
-rw-r--r--pkgs/by-name/pa/parabolic/package.nix77
-rwxr-xr-xpkgs/by-name/pa/parabolic/update.sh18
-rw-r--r--pkgs/by-name/pa/paralus-cli/package.nix40
-rw-r--r--pkgs/by-name/pa/parsify/package.nix36
-rw-r--r--pkgs/by-name/pa/passdetective/package.nix35
-rw-r--r--pkgs/by-name/pd/pdfannots2json/package.nix25
-rw-r--r--pkgs/by-name/pe/persistent-cache-cpp/package.nix35
-rw-r--r--pkgs/by-name/pg/pgmoneta/package.nix4
-rw-r--r--pkgs/by-name/pi/pio/package.nix28
-rw-r--r--pkgs/by-name/pi/pixi/package.nix8
-rw-r--r--pkgs/by-name/pl/plumber/package.nix35
-rw-r--r--pkgs/by-name/pm/pm2/package.nix29
-rw-r--r--pkgs/by-name/pm/pmtiles/package.nix6
-rw-r--r--pkgs/by-name/po/polylux2pdfpc/package.nix34
-rw-r--r--pkgs/by-name/po/powersploit/package.nix33
-rw-r--r--pkgs/by-name/pp/ppsspp/package.nix43
-rw-r--r--pkgs/by-name/pr/presenterm/package.nix18
-rw-r--r--pkgs/by-name/pr/pretalx/package.nix201
-rw-r--r--pkgs/by-name/pr/prometheus-restic-exporter/package.nix49
-rw-r--r--pkgs/by-name/pr/protoc-gen-js/package.nix37
-rw-r--r--pkgs/by-name/pr/prowler/package.nix69
-rw-r--r--pkgs/by-name/pu/pupdate/add-runtime-identifier.patch (renamed from pkgs/tools/games/pocket-updater-utility/add-runtime-identifier.patch)16
-rw-r--r--pkgs/by-name/pu/pupdate/deps.nix (renamed from pkgs/tools/games/pocket-updater-utility/deps.nix)0
-rw-r--r--pkgs/by-name/pu/pupdate/package.nix (renamed from pkgs/tools/games/pocket-updater-utility/default.nix)38
-rw-r--r--pkgs/by-name/py/pyprland/package.nix6
-rw-r--r--pkgs/by-name/py/pyspread/package.nix4
-rw-r--r--pkgs/by-name/py/pysqlrecon/package.nix49
-rw-r--r--pkgs/by-name/qa/qadwaitadecorations/package.nix4
-rw-r--r--pkgs/by-name/qr/qrtool/package.nix6
-rw-r--r--pkgs/by-name/qs/qsreplace/package.nix28
-rw-r--r--pkgs/by-name/qt/qtractor/package.nix (renamed from pkgs/applications/audio/qtractor/default.nix)24
-rw-r--r--pkgs/by-name/rc/rcp/package.nix32
-rw-r--r--pkgs/by-name/re/redocly-cli/package.nix5
-rw-r--r--pkgs/by-name/re/regripper/package.nix55
-rw-r--r--pkgs/by-name/re/renode-dts2repl/package.nix6
-rw-r--r--pkgs/by-name/re/renode-unstable/package.nix4
-rw-r--r--pkgs/by-name/ri/ricochet-refresh/package.nix79
-rw-r--r--pkgs/by-name/rm/rmg/package.nix20
-rw-r--r--pkgs/by-name/rq/rqbit/Cargo.lock4
-rw-r--r--pkgs/by-name/rq/rqbit/package.nix4
-rw-r--r--pkgs/by-name/sb/sbcl/bootstrap.nix (renamed from pkgs/development/compilers/sbcl/bootstrap.nix)0
-rw-r--r--pkgs/by-name/sb/sbcl/fix-2.4.0-aarch64-darwin.patch (renamed from pkgs/development/compilers/sbcl/fix-2.4.0-aarch64-darwin.patch)0
-rw-r--r--pkgs/by-name/sb/sbcl/package.nix (renamed from pkgs/development/compilers/sbcl/2.x.nix)6
-rw-r--r--pkgs/by-name/se/sendme/Cargo.lock4505
-rw-r--r--pkgs/by-name/se/sendme/package.nix39
-rw-r--r--pkgs/by-name/sh/shopware-cli/package.nix6
-rw-r--r--pkgs/by-name/sh/show-midi/package.nix83
-rw-r--r--pkgs/by-name/si/signal-export/package.nix4
-rw-r--r--pkgs/by-name/si/silicon/Cargo.lock (renamed from pkgs/tools/misc/silicon/Cargo.lock)641
-rw-r--r--pkgs/by-name/si/silicon/package.nix (renamed from pkgs/tools/misc/silicon/default.nix)25
-rw-r--r--pkgs/by-name/si/simdutf/package.nix4
-rw-r--r--pkgs/by-name/si/sirius/package.nix14
-rw-r--r--pkgs/by-name/sn/snicat/deps.nix12
-rw-r--r--pkgs/by-name/sn/snicat/package.nix45
-rw-r--r--pkgs/by-name/sn/sniffglue/package.nix (renamed from pkgs/tools/networking/sniffglue/default.nix)20
-rw-r--r--pkgs/by-name/sp/spicetify-cli/package.nix4
-rw-r--r--pkgs/by-name/sp/spirit/package.nix8
-rw-r--r--pkgs/by-name/sp/spotube/package.nix109
-rw-r--r--pkgs/by-name/st/starlark/package.nix (renamed from pkgs/development/interpreters/starlark/default.nix)7
-rw-r--r--pkgs/by-name/st/static-server/package.nix4
-rw-r--r--pkgs/by-name/st/stella/package.nix (renamed from pkgs/applications/emulators/stella/default.nix)31
-rw-r--r--pkgs/by-name/st/stormlib/package.nix (renamed from pkgs/development/libraries/StormLib/default.nix)7
-rw-r--r--pkgs/by-name/su/sudachi-rs/package.nix27
-rw-r--r--pkgs/by-name/su/sunvox/package.nix96
-rw-r--r--pkgs/by-name/su/supersonic/package.nix6
-rw-r--r--pkgs/by-name/su/suwayomi-server/package.nix58
-rw-r--r--pkgs/by-name/sv/svp/mpv.nix24
-rw-r--r--pkgs/by-name/sv/svp/package.nix147
-rw-r--r--pkgs/by-name/sw/swaylock-fancy/package.nix6
-rw-r--r--pkgs/by-name/sw/switcheroo/package.nix62
-rw-r--r--pkgs/by-name/sy/symbolicator/package.nix1
-rw-r--r--pkgs/by-name/sy/syslogng/package.nix (renamed from pkgs/tools/system/syslog-ng/default.nix)7
-rw-r--r--pkgs/by-name/sy/systemd-lock-handler/package.nix51
-rw-r--r--pkgs/by-name/ta/tailscale-nginx-auth/package.nix6
-rw-r--r--pkgs/by-name/te/telegraph/package.nix52
-rw-r--r--pkgs/by-name/te/terraform-plugin-docs/package.nix6
-rw-r--r--pkgs/by-name/te/terrapin-scanner/package.nix4
-rw-r--r--pkgs/by-name/ti/tigerbeetle/package.nix15
-rw-r--r--pkgs/by-name/tl/tlmi-auth/package.nix39
-rw-r--r--pkgs/by-name/to/toml-cli/package.nix33
-rw-r--r--pkgs/by-name/tr/trealla/package.nix20
-rw-r--r--pkgs/by-name/ty/typodermic-free-fonts/package.nix33
-rw-r--r--pkgs/by-name/ty/typodermic-public-domain/package.nix30
-rw-r--r--pkgs/by-name/uc/uchecker/package.nix49
-rw-r--r--pkgs/by-name/ud/udebug/package.nix6
-rw-r--r--pkgs/by-name/ue/uemacs/package.nix46
-rw-r--r--pkgs/by-name/ui/uiua/package.nix10
-rw-r--r--pkgs/by-name/um/umpire/package.nix28
-rw-r--r--pkgs/by-name/up/uplosi/package.nix6
-rw-r--r--pkgs/by-name/ux/uxn/package.nix6
-rw-r--r--pkgs/by-name/vc/vcpkg-tool/package.nix4
-rw-r--r--pkgs/by-name/vc/vcpkg/package.nix4
-rw-r--r--pkgs/by-name/ve/ventoy/000-nixos-sanitization.patch (renamed from pkgs/tools/cd-dvd/ventoy/000-nixos-sanitization.patch)0
-rw-r--r--pkgs/by-name/ve/ventoy/package.nix (renamed from pkgs/tools/cd-dvd/ventoy/default.nix)41
-rw-r--r--pkgs/by-name/ve/vesktop/disable_update_checking.patch12
-rw-r--r--pkgs/by-name/ve/vesktop/package.nix7
-rw-r--r--pkgs/by-name/vi/vibrantlinux/package.nix55
-rw-r--r--pkgs/by-name/vi/vinegar/package.nix4
-rw-r--r--pkgs/by-name/vu/vulkan-volk/package.nix26
-rw-r--r--pkgs/by-name/wa/wait4x/package.nix6
-rw-r--r--pkgs/by-name/wa/watchdogd/package.nix32
-rw-r--r--pkgs/by-name/wh/whistle/package.nix6
-rw-r--r--pkgs/by-name/wi/windmill/Cargo.lock1807
-rw-r--r--pkgs/by-name/wi/windmill/package.nix6
-rw-r--r--pkgs/by-name/wi/wireguard-vanity-keygen/package.nix31
-rw-r--r--pkgs/by-name/wo/worker/package.nix4
-rw-r--r--pkgs/by-name/xf/xfs-undelete/package.nix44
-rw-r--r--pkgs/by-name/xs/xscreensaver/package.nix3
-rw-r--r--pkgs/by-name/xs/xsct/package.nix4
-rw-r--r--pkgs/by-name/ya/yanic/package.nix39
-rw-r--r--pkgs/by-name/ye/yeswiki/package.nix28
-rw-r--r--pkgs/by-name/yg/yggdrasil/package.nix6
-rw-r--r--pkgs/by-name/yj/yj/package.nix (renamed from pkgs/development/tools/yj/default.nix)1
-rw-r--r--pkgs/by-name/yo/youplot/Gemfile2
-rw-r--r--pkgs/by-name/yo/youplot/Gemfile.lock18
-rw-r--r--pkgs/by-name/yo/youplot/gemset.nix34
-rw-r--r--pkgs/by-name/yo/youplot/package.nix19
-rw-r--r--pkgs/by-name/yo/youtrack/package.nix43
-rwxr-xr-xpkgs/by-name/yo/youtrack/update.sh9
-rw-r--r--pkgs/by-name/yo/youtrack_2022_3/package.nix (renamed from pkgs/servers/jetbrains/youtrack.nix)14
-rw-r--r--pkgs/by-name/zi/zitadel/console-use-local-protobuf-plugins.patch21
-rw-r--r--pkgs/by-name/zi/zitadel/console.nix13
-rw-r--r--pkgs/by-name/zi/zitadel/package.json17
-rw-r--r--pkgs/by-name/zi/zitadel/package.nix23
-rw-r--r--pkgs/by-name/zp/zpaqfranz/package.nix4
-rw-r--r--pkgs/data/documentation/man-pages/default.nix9
-rw-r--r--pkgs/data/fonts/0xproto/default.nix4
-rw-r--r--pkgs/data/fonts/ibm-plex/default.nix4
-rw-r--r--pkgs/data/fonts/inconsolata/default.nix10
-rw-r--r--pkgs/data/fonts/kode-mono/default.nix4
-rw-r--r--pkgs/data/fonts/lxgw-neoxihei/default.nix4
-rw-r--r--pkgs/data/fonts/sketchybar-app-font/default.nix4
-rw-r--r--pkgs/data/fonts/sudo/default.nix4
-rw-r--r--pkgs/data/icons/kora-icon-theme/default.nix4
-rw-r--r--pkgs/data/icons/papirus-icon-theme/default.nix4
-rw-r--r--pkgs/data/misc/clash-geoip/default.nix4
-rw-r--r--pkgs/data/misc/dbip-country-lite/default.nix4
-rw-r--r--pkgs/data/misc/iana-etc/default.nix4
-rw-r--r--pkgs/data/misc/v2ray-domain-list-community/default.nix4
-rw-r--r--pkgs/data/misc/wireless-regdb/default.nix8
-rw-r--r--pkgs/data/themes/alacritty-theme/default.nix6
-rw-r--r--pkgs/data/themes/dracula-theme/default.nix6
-rw-r--r--pkgs/data/themes/nordic/default.nix40
-rw-r--r--pkgs/data/themes/sweet/default.nix67
-rw-r--r--pkgs/desktops/budgie/budgie-desktop/default.nix9
-rw-r--r--pkgs/desktops/budgie/budgie-session/default.nix101
-rw-r--r--pkgs/desktops/budgie/budgie-session/fix-paths.patch35
-rw-r--r--pkgs/desktops/budgie/default.nix1
-rw-r--r--pkgs/desktops/budgie/plugins/budgie-media-player-applet/default.nix50
-rw-r--r--pkgs/desktops/budgie/plugins/default.nix1
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-session/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/mint-artwork/default.nix6
-rw-r--r--pkgs/desktops/deepin/apps/deepin-compressor/default.nix13
-rw-r--r--pkgs/desktops/deepin/library/dtkcore/default.nix5
-rw-r--r--pkgs/desktops/deepin/misc/deepin-desktop-base/default.nix10
-rw-r--r--pkgs/desktops/gnome/apps/gnome-text-editor/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/gnome-session/default.nix3
-rw-r--r--pkgs/desktops/gnome/core/nautilus/default.nix1
-rw-r--r--pkgs/desktops/gnome/extensions/extensionOverrides.nix4
-rw-r--r--pkgs/desktops/gnome/extensions/extensionOverridesPatches/gtk4-ding_at_smedius.gitlab.com.patch83
-rw-r--r--pkgs/desktops/gnome/extensions/extensions.json410
-rw-r--r--pkgs/desktops/lomiri/data/lomiri-schemas/default.nix11
-rw-r--r--pkgs/desktops/lomiri/data/lomiri-sounds/default.nix47
-rw-r--r--pkgs/desktops/lomiri/data/lomiri-wallpapers/default.nix48
-rw-r--r--pkgs/desktops/lomiri/default.nix7
-rw-r--r--pkgs/desktops/lomiri/development/deviceinfo/default.nix5
-rw-r--r--pkgs/desktops/lomiri/development/geonames/default.nix28
-rw-r--r--pkgs/desktops/lomiri/development/libusermetrics/2001-Remove-custom-check-target.patch37
-rw-r--r--pkgs/desktops/lomiri/development/libusermetrics/default.nix44
-rw-r--r--pkgs/desktops/lomiri/development/lomiri-app-launch/default.nix13
-rw-r--r--pkgs/desktops/lomiri/development/qtmir/default.nix160
-rw-r--r--pkgs/desktops/lomiri/development/trust-store/default.nix20
-rw-r--r--pkgs/desktops/lomiri/qml/lomiri-action-api/default.nix27
-rw-r--r--pkgs/desktops/lomiri/qml/lomiri-settings-components/default.nix5
-rw-r--r--pkgs/desktops/lomiri/qml/lomiri-ui-extras/default.nix50
-rw-r--r--pkgs/desktops/lomiri/qml/lomiri-ui-toolkit/2002-Nixpkgs-versioned-QML-path.patch.in29
-rw-r--r--pkgs/desktops/lomiri/qml/lomiri-ui-toolkit/default.nix29
-rw-r--r--pkgs/desktops/lomiri/qml/qqc2-suru-style/default.nix45
-rw-r--r--pkgs/desktops/lomiri/services/biometryd/default.nix52
-rw-r--r--pkgs/desktops/lomiri/services/content-hub/default.nix12
-rw-r--r--pkgs/desktops/lomiri/services/hfd-service/default.nix7
-rw-r--r--pkgs/desktops/lomiri/services/history-service/default.nix24
-rw-r--r--pkgs/desktops/lomiri/services/lomiri-download-manager/default.nix51
-rw-r--r--pkgs/desktops/lomiri/services/lomiri-indicator-network/default.nix134
-rw-r--r--pkgs/desktops/lomiri/services/lomiri-thumbnailer/default.nix212
-rw-r--r--pkgs/desktops/lomiri/services/telephony-service/default.nix197
-rw-r--r--pkgs/desktops/mate/atril/default.nix10
-rw-r--r--pkgs/desktops/mate/mate-system-monitor/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-code/default.nix4
-rw-r--r--pkgs/desktops/xfce/core/libxfce4windowing/default.nix18
-rw-r--r--pkgs/desktops/xfce/default.nix2
-rw-r--r--pkgs/development/beam-modules/elixir-ls/default.nix6
-rw-r--r--pkgs/development/compilers/assemblyscript/default.nix6
-rw-r--r--pkgs/development/compilers/blueprint/default.nix2
-rw-r--r--pkgs/development/compilers/chicken/5/deps.toml194
-rw-r--r--pkgs/development/compilers/chicken/5/overrides.nix1
-rw-r--r--pkgs/development/compilers/circt/default.nix4
-rw-r--r--pkgs/development/compilers/cmdstan/default.nix4
-rw-r--r--pkgs/development/compilers/codon/default.nix2
-rw-r--r--pkgs/development/compilers/dart/sources.nix12
-rw-r--r--pkgs/development/compilers/erg/default.nix6
-rw-r--r--pkgs/development/compilers/flutter/default.nix7
-rw-r--r--pkgs/development/compilers/fpc/default.nix5
-rw-r--r--pkgs/development/compilers/fstar/default.nix4
-rw-r--r--pkgs/development/compilers/gcc/common/configure-flags.nix2
-rw-r--r--pkgs/development/compilers/gcc/patches/12/mangle-NIX_STORE-in-__FILE__.patch28
-rw-r--r--pkgs/development/compilers/gcc/patches/13/ICE-PR110280.patch60
-rw-r--r--pkgs/development/compilers/gcc/patches/13/mangle-NIX_STORE-in-__FILE__.patch29
-rw-r--r--pkgs/development/compilers/gcc/patches/default.nix1
-rw-r--r--pkgs/development/compilers/ghc/8.10.2-binary.nix457
-rw-r--r--pkgs/development/compilers/ghc/8.10.7-binary.nix2
-rw-r--r--pkgs/development/compilers/ghc/8.6.5-binary.nix2
-rw-r--r--pkgs/development/compilers/ghc/9.6.4.nix4
-rw-r--r--pkgs/development/compilers/ghc/ghc-8.8.4-sphinx-6.0.patch13
-rw-r--r--pkgs/development/compilers/ghc/rename-numa-api-call.patch32
-rw-r--r--pkgs/development/compilers/ghc/sphinx-4-configuration.patch11
-rw-r--r--pkgs/development/compilers/glslang/default.nix4
-rw-r--r--pkgs/development/compilers/go/1.21.nix4
-rw-r--r--pkgs/development/compilers/go/1.22.nix189
-rw-r--r--pkgs/development/compilers/go/go_no_vendor_checks-1.22.patch23
-rw-r--r--pkgs/development/compilers/graalvm/community-edition/graalpy/hashes.nix18
-rw-r--r--pkgs/development/compilers/graalvm/community-edition/graalvm-ce/hashes.nix18
-rw-r--r--pkgs/development/compilers/graalvm/community-edition/truffleruby/hashes.nix18
-rw-r--r--pkgs/development/compilers/idris2/build-idris.nix89
-rw-r--r--pkgs/development/compilers/idris2/default.nix5
-rw-r--r--pkgs/development/compilers/idris2/idris2-lsp.nix44
-rw-r--r--pkgs/development/compilers/inform6/default.nix4
-rw-r--r--pkgs/development/compilers/intel-graphics-compiler/default.nix13
-rw-r--r--pkgs/development/compilers/julia/generic-bin.nix4
-rw-r--r--pkgs/development/compilers/julia/patches/1.10/0001-skip-building-docs-as-it-requires-network-access.patch2
-rw-r--r--pkgs/development/compilers/julia/patches/1.10/0002-skip-failing-and-flaky-tests.patch8
-rw-r--r--pkgs/development/compilers/koka/default.nix63
-rw-r--r--pkgs/development/compilers/ldc/default.nix4
-rw-r--r--pkgs/development/compilers/ldc/generic.nix4
-rw-r--r--pkgs/development/compilers/llvm/10/clang/compiler-rt-baremetal.patch53
-rw-r--r--pkgs/development/compilers/llvm/10/clang/default.nix133
-rw-r--r--pkgs/development/compilers/llvm/10/clang/gnu-install-dirs.patch248
-rw-r--r--pkgs/development/compilers/llvm/10/clang/purity.patch30
-rw-r--r--pkgs/development/compilers/llvm/10/compiler-rt/X86-support-extension.patch23
-rw-r--r--pkgs/development/compilers/llvm/10/compiler-rt/armv7l.patch32
-rw-r--r--pkgs/development/compilers/llvm/10/compiler-rt/default.nix131
-rw-r--r--pkgs/development/compilers/llvm/10/compiler-rt/find-darwin-sdk-version.patch62
-rw-r--r--pkgs/development/compilers/llvm/10/compiler-rt/gnu-install-dirs.patch129
-rw-r--r--pkgs/development/compilers/llvm/10/default.nix269
-rw-r--r--pkgs/development/compilers/llvm/10/libcxx/default.nix88
-rw-r--r--pkgs/development/compilers/llvm/10/libcxx/gnu-install-dirs.patch99
-rw-r--r--pkgs/development/compilers/llvm/10/libcxxabi/default.nix85
-rw-r--r--pkgs/development/compilers/llvm/10/libcxxabi/gnu-install-dirs.patch34
-rw-r--r--pkgs/development/compilers/llvm/10/libunwind/default.nix31
-rw-r--r--pkgs/development/compilers/llvm/10/libunwind/gnu-install-dirs.patch34
-rw-r--r--pkgs/development/compilers/llvm/10/lld/default.nix46
-rw-r--r--pkgs/development/compilers/llvm/10/lld/gnu-install-dirs.patch68
-rw-r--r--pkgs/development/compilers/llvm/10/lldb/gnu-install-dirs.patch91
-rw-r--r--pkgs/development/compilers/llvm/10/lldb/procfs.patch31
-rw-r--r--pkgs/development/compilers/llvm/10/llvm/default.nix355
-rw-r--r--pkgs/development/compilers/llvm/10/llvm/gnu-install-dirs-polly.patch106
-rw-r--r--pkgs/development/compilers/llvm/10/llvm/gnu-install-dirs.patch416
-rw-r--r--pkgs/development/compilers/llvm/10/openmp/default.nix37
-rw-r--r--pkgs/development/compilers/llvm/11/compiler-rt/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/11/default.nix1
-rw-r--r--pkgs/development/compilers/llvm/11/llvm/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/12/compiler-rt/default.nix3
-rw-r--r--pkgs/development/compilers/llvm/12/default.nix1
-rw-r--r--pkgs/development/compilers/llvm/12/llvm/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/13/compiler-rt/default.nix3
-rw-r--r--pkgs/development/compilers/llvm/13/default.nix1
-rw-r--r--pkgs/development/compilers/llvm/13/llvm/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/14/compiler-rt/default.nix3
-rw-r--r--pkgs/development/compilers/llvm/14/default.nix1
-rw-r--r--pkgs/development/compilers/llvm/14/llvm/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/15/compiler-rt/default.nix3
-rw-r--r--pkgs/development/compilers/llvm/15/default.nix1
-rw-r--r--pkgs/development/compilers/llvm/15/libcxx/default.nix8
-rw-r--r--pkgs/development/compilers/llvm/15/llvm/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/16/compiler-rt/default.nix3
-rw-r--r--pkgs/development/compilers/llvm/16/default.nix1
-rw-r--r--pkgs/development/compilers/llvm/16/libcxx/default.nix10
-rw-r--r--pkgs/development/compilers/llvm/16/llvm/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/17/compiler-rt/default.nix3
-rw-r--r--pkgs/development/compilers/llvm/17/libcxx/default.nix13
-rw-r--r--pkgs/development/compilers/llvm/17/llvm/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/8/clang/HIP-use-PATH-8.patch80
-rw-r--r--pkgs/development/compilers/llvm/8/clang/compiler-rt-baremetal.patch53
-rw-r--r--pkgs/development/compilers/llvm/8/clang/default.nix145
-rw-r--r--pkgs/development/compilers/llvm/8/clang/gnu-install-dirs.patch290
-rw-r--r--pkgs/development/compilers/llvm/8/clang/static-pie.patch157
-rw-r--r--pkgs/development/compilers/llvm/8/clang/unwindlib.patch372
-rw-r--r--pkgs/development/compilers/llvm/8/clang/xpc.patch41
-rw-r--r--pkgs/development/compilers/llvm/8/compiler-rt/armv7l.patch38
-rw-r--r--pkgs/development/compilers/llvm/8/compiler-rt/crtbegin-and-end.patch595
-rw-r--r--pkgs/development/compilers/llvm/8/compiler-rt/default.nix117
-rw-r--r--pkgs/development/compilers/llvm/8/compiler-rt/gnu-install-dirs.patch117
-rw-r--r--pkgs/development/compilers/llvm/8/default.nix272
-rw-r--r--pkgs/development/compilers/llvm/8/libcxx/default.nix92
-rw-r--r--pkgs/development/compilers/llvm/8/libcxx/gnu-install-dirs.patch72
-rw-r--r--pkgs/development/compilers/llvm/8/libcxxabi/default.nix85
-rw-r--r--pkgs/development/compilers/llvm/8/libcxxabi/gnu-install-dirs.patch28
-rw-r--r--pkgs/development/compilers/llvm/8/libunwind/default.nix40
-rw-r--r--pkgs/development/compilers/llvm/8/libunwind/gnu-install-dirs.patch28
-rw-r--r--pkgs/development/compilers/llvm/8/lld/default.nix46
-rw-r--r--pkgs/development/compilers/llvm/8/lld/gnu-install-dirs.patch68
-rw-r--r--pkgs/development/compilers/llvm/8/lldb/default.nix109
-rw-r--r--pkgs/development/compilers/llvm/8/lldb/gnu-install-dirs.patch120
-rw-r--r--pkgs/development/compilers/llvm/8/lldb/lldb-gdb-remote-no-libcompress.patch30
-rw-r--r--pkgs/development/compilers/llvm/8/llvm/default.nix329
-rw-r--r--pkgs/development/compilers/llvm/8/llvm/gnu-install-dirs-polly.patch106
-rw-r--r--pkgs/development/compilers/llvm/8/llvm/gnu-install-dirs.patch394
-rw-r--r--pkgs/development/compilers/llvm/8/openmp/default.nix37
-rw-r--r--pkgs/development/compilers/llvm/9/compiler-rt/default.nix5
-rw-r--r--pkgs/development/compilers/llvm/9/default.nix1
-rw-r--r--pkgs/development/compilers/llvm/9/llvm/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/git/compiler-rt/default.nix3
-rw-r--r--pkgs/development/compilers/llvm/git/default.nix1
-rw-r--r--pkgs/development/compilers/llvm/git/libcxx/default.nix13
-rw-r--r--pkgs/development/compilers/llvm/git/llvm/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/llvm-7-musl.patch92
-rw-r--r--pkgs/development/compilers/odin/default.nix4
-rw-r--r--pkgs/development/compilers/osl/default.nix4
-rw-r--r--pkgs/development/compilers/rust/1_75.nix6
-rw-r--r--pkgs/development/compilers/rust/clippy.nix1
-rw-r--r--pkgs/development/compilers/rust/default.nix13
-rw-r--r--pkgs/development/compilers/spirv-llvm-translator/default.nix17
-rw-r--r--pkgs/development/compilers/stanc/default.nix4
-rw-r--r--pkgs/development/compilers/tvm/default.nix4
-rw-r--r--pkgs/development/compilers/unison/default.nix6
-rw-r--r--pkgs/development/compilers/yosys/default.nix4
-rw-r--r--pkgs/development/compilers/yosys/fix-clang-build.patch15
-rw-r--r--pkgs/development/compilers/yosys/plugins/synlig.nix10
-rw-r--r--pkgs/development/compilers/z88dk/default.nix10
-rw-r--r--pkgs/development/compilers/zulu/21.nix30
-rw-r--r--pkgs/development/compilers/zulu/common.nix2
-rw-r--r--pkgs/development/coq-modules/ITree/default.nix2
-rw-r--r--pkgs/development/coq-modules/QuickChick/default.nix2
-rw-r--r--pkgs/development/coq-modules/coqeal/default.nix2
-rw-r--r--pkgs/development/coq-modules/coqprime/default.nix2
-rw-r--r--pkgs/development/coq-modules/coquelicot/default.nix2
-rw-r--r--pkgs/development/coq-modules/deriving/default.nix2
-rw-r--r--pkgs/development/coq-modules/extructures/default.nix2
-rw-r--r--pkgs/development/coq-modules/flocq/default.nix2
-rw-r--r--pkgs/development/coq-modules/mathcomp-algebra-tactics/default.nix4
-rw-r--r--pkgs/development/coq-modules/mathcomp-finmap/default.nix4
-rw-r--r--pkgs/development/coq-modules/mathcomp-real-closed/default.nix2
-rw-r--r--pkgs/development/coq-modules/multinomials/default.nix6
-rw-r--r--pkgs/development/coq-modules/paco/default.nix2
-rw-r--r--pkgs/development/coq-modules/reglang/default.nix6
-rw-r--r--pkgs/development/coq-modules/vscoq-language-server/default.nix32
-rw-r--r--pkgs/development/cuda-modules/backend-stdenv.nix14
-rw-r--r--pkgs/development/cuda-modules/cuda/overrides.nix2
-rw-r--r--pkgs/development/cuda-modules/cudatoolkit/default.nix2
-rw-r--r--pkgs/development/cuda-modules/generic-builders/manifest.nix6
-rw-r--r--pkgs/development/cuda-modules/generic-builders/multiplex.nix26
-rw-r--r--pkgs/development/embedded/arduino/arduino-cli/default.nix8
-rw-r--r--pkgs/development/embedded/platformio/core.nix3
-rw-r--r--pkgs/development/embedded/rshell/default.nix4
-rw-r--r--pkgs/development/embedded/svdtools/default.nix6
-rw-r--r--pkgs/development/gnuradio-modules/ais/default.nix3
-rw-r--r--pkgs/development/gnuradio-modules/grnet/default.nix5
-rw-r--r--pkgs/development/gnuradio-modules/gsm/default.nix3
-rw-r--r--pkgs/development/gnuradio-modules/limesdr/default.nix3
-rw-r--r--pkgs/development/gnuradio-modules/mkDerivation.nix10
-rw-r--r--pkgs/development/gnuradio-modules/nacl/default.nix3
-rw-r--r--pkgs/development/gnuradio-modules/osmosdr/default.nix3
-rw-r--r--pkgs/development/gnuradio-modules/rds/default.nix3
-rw-r--r--pkgs/development/haskell-modules/configuration-darwin.nix2
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix4
-rw-r--r--pkgs/development/haskell-modules/configuration-nix.nix17
-rw-r--r--pkgs/development/interpreters/babashka/clojure-tools.nix4
-rw-r--r--pkgs/development/interpreters/babashka/default.nix5
-rw-r--r--pkgs/development/interpreters/elixir/1.16.nix4
-rw-r--r--pkgs/development/interpreters/expr/default.nix6
-rw-r--r--pkgs/development/interpreters/j/default.nix88
-rw-r--r--pkgs/development/interpreters/janet/default.nix4
-rw-r--r--pkgs/development/interpreters/lfe/2.1.nix6
-rw-r--r--pkgs/development/interpreters/lfe/generic-builder.nix5
-rw-r--r--pkgs/development/interpreters/luau/default.nix5
-rw-r--r--pkgs/development/interpreters/lune/default.nix27
-rw-r--r--pkgs/development/interpreters/nelua/default.nix6
-rw-r--r--pkgs/development/interpreters/nextflow/default.nix2
-rw-r--r--pkgs/development/interpreters/php/8.1.nix12
-rw-r--r--pkgs/development/interpreters/php/8.2.nix4
-rw-r--r--pkgs/development/interpreters/php/8.3.nix4
-rw-r--r--pkgs/development/interpreters/python/default.nix4
-rw-r--r--pkgs/development/interpreters/python/python-packages-base.nix4
-rw-r--r--pkgs/development/interpreters/rakudo/moarvm.nix11
-rw-r--r--pkgs/development/interpreters/risor/default.nix10
-rw-r--r--pkgs/development/interpreters/ruby/rubygems/default.nix4
-rw-r--r--pkgs/development/interpreters/spidermonkey/common.nix1
-rw-r--r--pkgs/development/interpreters/starlark-rust/default.nix6
-rw-r--r--pkgs/development/interpreters/wamr/default.nix4
-rw-r--r--pkgs/development/interpreters/wasmtime/default.nix6
-rw-r--r--pkgs/development/libraries/CoinMP/default.nix4
-rw-r--r--pkgs/development/libraries/abseil-cpp/202401.nix42
-rw-r--r--pkgs/development/libraries/ada/spark2014/default.nix3
-rw-r--r--pkgs/development/libraries/agda/1lab/default.nix6
-rw-r--r--pkgs/development/libraries/alembic/default.nix10
-rw-r--r--pkgs/development/libraries/allegro/5.nix4
-rw-r--r--pkgs/development/libraries/amf-headers/default.nix4
-rw-r--r--pkgs/development/libraries/atkmm/2.36.nix4
-rw-r--r--pkgs/development/libraries/atkmm/default.nix4
-rw-r--r--pkgs/development/libraries/aws-c-auth/default.nix4
-rw-r--r--pkgs/development/libraries/bobcat/default.nix44
-rw-r--r--pkgs/development/libraries/caf/default.nix4
-rw-r--r--pkgs/development/libraries/catch2/3.nix11
-rw-r--r--pkgs/development/libraries/catch2/default.nix2
-rw-r--r--pkgs/development/libraries/cglm/default.nix4
-rw-r--r--pkgs/development/libraries/clap/default.nix14
-rw-r--r--pkgs/development/libraries/cln/default.nix4
-rw-r--r--pkgs/development/libraries/cmark/default.nix4
-rw-r--r--pkgs/development/libraries/crossguid/default.nix12
-rw-r--r--pkgs/development/libraries/dav1d/default.nix23
-rw-r--r--pkgs/development/libraries/dbus-cplusplus/default.nix19
-rw-r--r--pkgs/development/libraries/dbus/default.nix1
-rw-r--r--pkgs/development/libraries/dlib/default.nix60
-rw-r--r--pkgs/development/libraries/draco/default.nix4
-rw-r--r--pkgs/development/libraries/drogon/default.nix4
-rw-r--r--pkgs/development/libraries/editline/default.nix8
-rw-r--r--pkgs/development/libraries/enchant/2.x.nix4
-rw-r--r--pkgs/development/libraries/entt/default.nix4
-rw-r--r--pkgs/development/libraries/example-robot-data/default.nix4
-rw-r--r--pkgs/development/libraries/faudio/default.nix4
-rw-r--r--pkgs/development/libraries/fbjni/default.nix8
-rw-r--r--pkgs/development/libraries/ffmpeg/generic.nix23
-rw-r--r--pkgs/development/libraries/folly/default.nix16
-rw-r--r--pkgs/development/libraries/fontconfig/default.nix15
-rw-r--r--pkgs/development/libraries/fontconfig/make-fonts-conf.nix21
-rw-r--r--pkgs/development/libraries/fontconfig/make-fonts-conf.xsl20
-rw-r--r--pkgs/development/libraries/functionalplus/default.nix4
-rw-r--r--pkgs/development/libraries/gcr/default.nix4
-rw-r--r--pkgs/development/libraries/gd/default.nix4
-rw-r--r--pkgs/development/libraries/gdcm/default.nix4
-rw-r--r--pkgs/development/libraries/glfw/3.x.nix4
-rw-r--r--pkgs/development/libraries/glibmm/2.68.nix4
-rw-r--r--pkgs/development/libraries/gnutls/default.nix4
-rw-r--r--pkgs/development/libraries/gperftools/default.nix4
-rw-r--r--pkgs/development/libraries/highfive/default.nix4
-rw-r--r--pkgs/development/libraries/hpp-fcl/default.nix4
-rw-r--r--pkgs/development/libraries/httplib/default.nix4
-rw-r--r--pkgs/development/libraries/igraph/default.nix13
-rw-r--r--pkgs/development/libraries/imgui/default.nix4
-rw-r--r--pkgs/development/libraries/imtui/default.nix8
-rw-r--r--pkgs/development/libraries/intel-gmmlib/default.nix4
-rw-r--r--pkgs/development/libraries/isa-l/default.nix4
-rw-r--r--pkgs/development/libraries/itk/generic.nix10
-rw-r--r--pkgs/development/libraries/jellyfin-ffmpeg/default.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/fetch.sh2
-rw-r--r--pkgs/development/libraries/kde-frameworks/srcs.nix664
-rw-r--r--pkgs/development/libraries/kdsoap/default.nix10
-rw-r--r--pkgs/development/libraries/khronos-ocl-icd-loader/default.nix14
-rw-r--r--pkgs/development/libraries/khronos-ocl-icd-loader/tracing.patch13
-rw-r--r--pkgs/development/libraries/leptonica/default.nix4
-rw-r--r--pkgs/development/libraries/libaal/default.nix8
-rw-r--r--pkgs/development/libraries/libaal/libaal-1.0.6-glibc-2.26.patch89
-rw-r--r--pkgs/development/libraries/libbacktrace/default.nix6
-rw-r--r--pkgs/development/libraries/libcamera/default.nix4
-rw-r--r--pkgs/development/libraries/libcint/default.nix9
-rw-r--r--pkgs/development/libraries/libdrm/default.nix4
-rw-r--r--pkgs/development/libraries/libetpan/default.nix1
-rw-r--r--pkgs/development/libraries/libewf-legacy/default.nix32
-rw-r--r--pkgs/development/libraries/libfabric/default.nix4
-rw-r--r--pkgs/development/libraries/libgig/default.nix4
-rw-r--r--pkgs/development/libraries/libhdhomerun/default.nix17
-rw-r--r--pkgs/development/libraries/libhdhomerun/nixos-darwin-no-fat-dylib.patch52
-rw-r--r--pkgs/development/libraries/libhwy/default.nix15
-rw-r--r--pkgs/development/libraries/libime/default.nix9
-rw-r--r--pkgs/development/libraries/libjcat/default.nix4
-rw-r--r--pkgs/development/libraries/libjxl/default.nix4
-rw-r--r--pkgs/development/libraries/libmbim/default.nix23
-rw-r--r--pkgs/development/libraries/libmilter/default.nix4
-rw-r--r--pkgs/development/libraries/libmysqlconnectorcpp/default.nix4
-rw-r--r--pkgs/development/libraries/libnbd/default.nix13
-rw-r--r--pkgs/development/libraries/libplacebo/default.nix27
-rw-r--r--pkgs/development/libraries/libqmi/default.nix4
-rw-r--r--pkgs/development/libraries/libraw/default.nix13
-rw-r--r--pkgs/development/libraries/libredwg/default.nix9
-rw-r--r--pkgs/development/libraries/libremidi/default.nix2
-rw-r--r--pkgs/development/libraries/libshumate/default.nix1
-rw-r--r--pkgs/development/libraries/libsolv/default.nix4
-rw-r--r--pkgs/development/libraries/libubox/default.nix6
-rw-r--r--pkgs/development/libraries/libucl/default.nix4
-rw-r--r--pkgs/development/libraries/libunwind/default.nix40
-rw-r--r--pkgs/development/libraries/libvgm/default.nix8
-rw-r--r--pkgs/development/libraries/libvirt/default.nix4
-rw-r--r--pkgs/development/libraries/libxmlb/default.nix4
-rw-r--r--pkgs/development/libraries/libxslt/default.nix2
-rw-r--r--pkgs/development/libraries/libzip/default.nix10
-rw-r--r--pkgs/development/libraries/live555/default.nix75
-rw-r--r--pkgs/development/libraries/mailcore2/default.nix23
-rw-r--r--pkgs/development/libraries/maplibre-gl-native/default.nix6
-rw-r--r--pkgs/development/libraries/mbedtls/2.nix4
-rw-r--r--pkgs/development/libraries/mbedtls/3.nix4
-rw-r--r--pkgs/development/libraries/mbedtls/generic.nix2
-rw-r--r--pkgs/development/libraries/mdk-sdk/default.nix4
-rw-r--r--pkgs/development/libraries/mesa/default.nix8
-rw-r--r--pkgs/development/libraries/mpdecimal/default.nix4
-rw-r--r--pkgs/development/libraries/mpich/default.nix6
-rw-r--r--pkgs/development/libraries/muparser/default.nix22
-rw-r--r--pkgs/development/libraries/nanoflann/default.nix6
-rw-r--r--pkgs/development/libraries/ncnn/cmakelists.patch23
-rw-r--r--pkgs/development/libraries/ncnn/default.nix6
-rw-r--r--pkgs/development/libraries/neatvnc/default.nix4
-rw-r--r--pkgs/development/libraries/ngtcp2/default.nix4
-rw-r--r--pkgs/development/libraries/ngtcp2/gnutls.nix4
-rw-r--r--pkgs/development/libraries/nss/latest.nix4
-rw-r--r--pkgs/development/libraries/ogre/default.nix2
-rw-r--r--pkgs/development/libraries/opencomposite/default.nix6
-rw-r--r--pkgs/development/libraries/openexr/default.nix7
-rw-r--r--pkgs/development/libraries/openexr/gcc-13.patch46
-rw-r--r--pkgs/development/libraries/openimageio/default.nix2
-rw-r--r--pkgs/development/libraries/openturns/default.nix4
-rw-r--r--pkgs/development/libraries/openvdb/default.nix13
-rw-r--r--pkgs/development/libraries/openvino/cmake.patch31
-rw-r--r--pkgs/development/libraries/openvino/default.nix99
-rw-r--r--pkgs/development/libraries/openxr-loader/default.nix4
-rw-r--r--pkgs/development/libraries/p11-kit/default.nix4
-rw-r--r--pkgs/development/libraries/pangolin/default.nix4
-rw-r--r--pkgs/development/libraries/pangomm/2.48.nix4
-rw-r--r--pkgs/development/libraries/pangomm/default.nix4
-rw-r--r--pkgs/development/libraries/pdfhummus/default.nix4
-rw-r--r--pkgs/development/libraries/pinocchio/default.nix6
-rw-r--r--pkgs/development/libraries/pipewire/default.nix4
-rw-r--r--pkgs/development/libraries/pixman/default.nix34
-rw-r--r--pkgs/development/libraries/pmix/default.nix29
-rw-r--r--pkgs/development/libraries/poco/default.nix4
-rw-r--r--pkgs/development/libraries/protobuf/25.nix4
-rw-r--r--pkgs/development/libraries/qrencode/default.nix15
-rw-r--r--pkgs/development/libraries/qt-5/5.15/default.nix2
-rw-r--r--pkgs/development/libraries/qt-5/5.15/qtdeclarative-qml-paths.patch33
-rw-r--r--pkgs/development/libraries/qt-5/hooks/wrap-qt-apps-hook.sh2
-rw-r--r--pkgs/development/libraries/qt-6/default.nix2
-rw-r--r--pkgs/development/libraries/qt-6/hooks/wrap-qt-apps-hook.sh2
-rw-r--r--pkgs/development/libraries/qt-6/modules/qtdeclarative.nix2
-rw-r--r--pkgs/development/libraries/qt-6/modules/qtwebengine.nix15
-rw-r--r--pkgs/development/libraries/qt-6/patches/qtdeclarative-qml-paths.patch12
-rw-r--r--pkgs/development/libraries/qt-6/patches/qtwebengine-libxml-2.12.patch15
-rw-r--r--pkgs/development/libraries/qtkeychain/default.nix4
-rw-r--r--pkgs/development/libraries/qwlroots/default.nix69
-rw-r--r--pkgs/development/libraries/rapidfuzz-cpp/default.nix12
-rw-r--r--pkgs/development/libraries/readline/readline-8.2-patches.nix3
-rw-r--r--pkgs/development/libraries/redis-plus-plus/default.nix4
-rw-r--r--pkgs/development/libraries/rlottie/default.nix8
-rw-r--r--pkgs/development/libraries/rubberband/default.nix14
-rw-r--r--pkgs/development/libraries/rure/Cargo.lock12
-rw-r--r--pkgs/development/libraries/science/astronomy/indilib/default.nix4
-rw-r--r--pkgs/development/libraries/science/biology/htslib/default.nix4
-rw-r--r--pkgs/development/libraries/science/chemistry/simple-dftd3/python.nix42
-rw-r--r--pkgs/development/libraries/science/math/ipopt/default.nix4
-rw-r--r--pkgs/development/libraries/science/math/liblapack/default.nix4
-rw-r--r--pkgs/development/libraries/science/math/magma/generic.nix2
-rw-r--r--pkgs/development/libraries/science/math/mongoose/default.nix6
-rw-r--r--pkgs/development/libraries/science/networking/ns-3/default.nix2
-rw-r--r--pkgs/development/libraries/simdjson/default.nix4
-rw-r--r--pkgs/development/libraries/spglib/default.nix4
-rw-r--r--pkgs/development/libraries/spirv-headers/default.nix4
-rw-r--r--pkgs/development/libraries/sqlite/default.nix5
-rw-r--r--pkgs/development/libraries/srt/default.nix4
-rw-r--r--pkgs/development/libraries/talloc/default.nix4
-rw-r--r--pkgs/development/libraries/tclx/default.nix4
-rw-r--r--pkgs/development/libraries/tdlib/default.nix6
-rw-r--r--pkgs/development/libraries/tiledb/default.nix3
-rw-r--r--pkgs/development/libraries/ubus/default.nix6
-rw-r--r--pkgs/development/libraries/utf8cpp/default.nix4
-rw-r--r--pkgs/development/libraries/vigra/default.nix2
-rw-r--r--pkgs/development/libraries/vulkan-headers/default.nix4
-rwxr-xr-xpkgs/development/libraries/vulkan-headers/update.sh1
-rw-r--r--pkgs/development/libraries/vulkan-loader/default.nix4
-rw-r--r--pkgs/development/libraries/vulkan-utility-libraries/default.nix6
-rw-r--r--pkgs/development/libraries/wasilibc/default.nix4
-rw-r--r--pkgs/development/libraries/waylib/default.nix74
-rw-r--r--pkgs/development/libraries/xapian/default.nix7
-rw-r--r--pkgs/development/libraries/xml-tooling-c/default.nix4
-rw-r--r--pkgs/development/libraries/xsimd/default.nix2
-rw-r--r--pkgs/development/libraries/xxHash/default.nix1
-rw-r--r--pkgs/development/libraries/zxing-cpp/default.nix4
-rw-r--r--pkgs/development/lisp-modules/packages.nix8
-rw-r--r--pkgs/development/misc/umr/default.nix44
-rw-r--r--pkgs/development/mobile/genymotion/default.nix10
-rw-r--r--pkgs/development/node-packages/aliases.nix5
-rw-r--r--pkgs/development/node-packages/main-programs.nix6
-rw-r--r--pkgs/development/node-packages/node-packages.json4
-rw-r--r--pkgs/development/node-packages/node-packages.nix13176
-rw-r--r--pkgs/development/node-packages/overrides.nix22
-rw-r--r--pkgs/development/ocaml-modules/containers/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/lambdapi/default.nix3
-rw-r--r--pkgs/development/ocaml-modules/middleware/default.nix32
-rw-r--r--pkgs/development/ocaml-modules/owl/default.nix9
-rw-r--r--pkgs/development/ocaml-modules/ppx_deriving_yaml/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/riot/default.nix20
-rw-r--r--pkgs/development/ocaml-modules/timedesc/default.nix36
-rw-r--r--pkgs/development/ocaml-modules/timedesc/tzdb.nix15
-rw-r--r--pkgs/development/ocaml-modules/timedesc/tzlocal.nix16
-rw-r--r--pkgs/development/ocaml-modules/tiny_httpd/default.nix7
-rw-r--r--pkgs/development/ocaml-modules/type_eq/default.nix32
-rw-r--r--pkgs/development/ocaml-modules/zipc/default.nix4
-rw-r--r--pkgs/development/perl-modules/ham/default.nix12
-rw-r--r--pkgs/development/php-packages/amqp/default.nix4
-rw-r--r--pkgs/development/php-packages/castor/default.nix6
-rw-r--r--pkgs/development/php-packages/phalcon/default.nix4
-rw-r--r--pkgs/development/php-packages/php-cs-fixer/default.nix4
-rw-r--r--pkgs/development/php-packages/relay/default.nix34
-rw-r--r--pkgs/development/php-packages/spx/default.nix4
-rw-r--r--pkgs/development/php-packages/zstd/default.nix32
-rw-r--r--pkgs/development/python-modules/acme/default.nix4
-rw-r--r--pkgs/development/python-modules/acquire/default.nix4
-rw-r--r--pkgs/development/python-modules/adafruit-platformdetect/default.nix4
-rw-r--r--pkgs/development/python-modules/adjusttext/default.nix16
-rw-r--r--pkgs/development/python-modules/aesedb/default.nix8
-rw-r--r--pkgs/development/python-modules/agate-sql/default.nix4
-rw-r--r--pkgs/development/python-modules/aio-geojson-geonetnz-quakes/default.nix17
-rw-r--r--pkgs/development/python-modules/aio-geojson-geonetnz-volcano/default.nix19
-rw-r--r--pkgs/development/python-modules/aio-geojson-nsw-rfs-incidents/default.nix19
-rw-r--r--pkgs/development/python-modules/aio-geojson-usgs-earthquakes/default.nix17
-rw-r--r--pkgs/development/python-modules/aio-pika/default.nix11
-rw-r--r--pkgs/development/python-modules/aiocomelit/default.nix4
-rw-r--r--pkgs/development/python-modules/aioelectricitymaps/default.nix17
-rw-r--r--pkgs/development/python-modules/aioftp/default.nix28
-rw-r--r--pkgs/development/python-modules/aiogithubapi/default.nix18
-rw-r--r--pkgs/development/python-modules/aiohomekit/default.nix4
-rw-r--r--pkgs/development/python-modules/aiomqtt/default.nix6
-rw-r--r--pkgs/development/python-modules/aioopenexchangerates/default.nix8
-rw-r--r--pkgs/development/python-modules/aiooss2/default.nix4
-rw-r--r--pkgs/development/python-modules/aiopvapi/default.nix26
-rw-r--r--pkgs/development/python-modules/aioquic/default.nix6
-rw-r--r--pkgs/development/python-modules/aiormq/default.nix17
-rw-r--r--pkgs/development/python-modules/aiortm/default.nix6
-rw-r--r--pkgs/development/python-modules/aiorwlock/default.nix4
-rw-r--r--pkgs/development/python-modules/aiosql/default.nix4
-rw-r--r--pkgs/development/python-modules/aioswitcher/default.nix9
-rw-r--r--pkgs/development/python-modules/aiovodafone/default.nix6
-rw-r--r--pkgs/development/python-modules/airthings-ble/default.nix16
-rw-r--r--pkgs/development/python-modules/ale-py/default.nix23
-rw-r--r--pkgs/development/python-modules/ale-py/patch-sha-check-in-setup.patch17
-rw-r--r--pkgs/development/python-modules/alive-progress/default.nix19
-rw-r--r--pkgs/development/python-modules/aliyun-python-sdk-iot/default.nix4
-rw-r--r--pkgs/development/python-modules/anova-wifi/default.nix4
-rw-r--r--pkgs/development/python-modules/ansi/default.nix6
-rw-r--r--pkgs/development/python-modules/ansible/default.nix4
-rw-r--r--pkgs/development/python-modules/anthropic/default.nix14
-rw-r--r--pkgs/development/python-modules/anysqlite/default.nix51
-rw-r--r--pkgs/development/python-modules/anywidget/default.nix4
-rw-r--r--pkgs/development/python-modules/aocd-example-parser/default.nix37
-rw-r--r--pkgs/development/python-modules/aocd/default.nix64
-rw-r--r--pkgs/development/python-modules/apache-beam/default.nix2
-rw-r--r--pkgs/development/python-modules/apispec-webframeworks/default.nix15
-rw-r--r--pkgs/development/python-modules/apprise/default.nix5
-rw-r--r--pkgs/development/python-modules/approvaltests/default.nix6
-rw-r--r--pkgs/development/python-modules/appthreat-vulnerability-db/default.nix10
-rw-r--r--pkgs/development/python-modules/aranet4/default.nix11
-rw-r--r--pkgs/development/python-modules/argilla/default.nix4
-rw-r--r--pkgs/development/python-modules/asterisk-mbox/default.nix24
-rw-r--r--pkgs/development/python-modules/astropy-healpix/default.nix4
-rw-r--r--pkgs/development/python-modules/async-upnp-client/default.nix4
-rw-r--r--pkgs/development/python-modules/asyncclick/default.nix21
-rw-r--r--pkgs/development/python-modules/asyncinotify/default.nix40
-rw-r--r--pkgs/development/python-modules/asyncsleepiq/default.nix4
-rw-r--r--pkgs/development/python-modules/atom/default.nix9
-rw-r--r--pkgs/development/python-modules/auditwheel/default.nix4
-rw-r--r--pkgs/development/python-modules/authheaders/default.nix17
-rw-r--r--pkgs/development/python-modules/autofaiss/default.nix4
-rw-r--r--pkgs/development/python-modules/autopep8/default.nix1
-rw-r--r--pkgs/development/python-modules/awkward-cpp/default.nix5
-rw-r--r--pkgs/development/python-modules/awkward/default.nix4
-rw-r--r--pkgs/development/python-modules/aws-adfs/default.nix4
-rw-r--r--pkgs/development/python-modules/awsipranges/default.nix51
-rw-r--r--pkgs/development/python-modules/awslambdaric/default.nix4
-rw-r--r--pkgs/development/python-modules/awswrangler/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-batch/default.nix21
-rw-r--r--pkgs/development/python-modules/azure-common/default.nix2
-rw-r--r--pkgs/development/python-modules/azure-data-tables/default.nix6
-rw-r--r--pkgs/development/python-modules/azure-mgmt-common/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-compute/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-containerservice/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-security/default.nix28
-rw-r--r--pkgs/development/python-modules/b2sdk/default.nix4
-rw-r--r--pkgs/development/python-modules/backports-zoneinfo/default.nix2
-rw-r--r--pkgs/development/python-modules/bandit/default.nix4
-rw-r--r--pkgs/development/python-modules/base2048/default.nix6
-rw-r--r--pkgs/development/python-modules/betterproto/default.nix37
-rw-r--r--pkgs/development/python-modules/biopython/default.nix32
-rw-r--r--pkgs/development/python-modules/bip-utils/default.nix4
-rw-r--r--pkgs/development/python-modules/birch/default.nix14
-rw-r--r--pkgs/development/python-modules/blebox-uniapi/default.nix4
-rw-r--r--pkgs/development/python-modules/blinkpy/default.nix4
-rw-r--r--pkgs/development/python-modules/blocksat-cli/default.nix44
-rw-r--r--pkgs/development/python-modules/blurhash-python/default.nix50
-rw-r--r--pkgs/development/python-modules/boltztrap2/default.nix4
-rw-r--r--pkgs/development/python-modules/borb/default.nix5
-rw-r--r--pkgs/development/python-modules/boto3-stubs/default.nix4
-rw-r--r--pkgs/development/python-modules/botocore-stubs/default.nix4
-rw-r--r--pkgs/development/python-modules/botorch/default.nix6
-rw-r--r--pkgs/development/python-modules/boxx/default.nix4
-rw-r--r--pkgs/development/python-modules/branca/default.nix4
-rw-r--r--pkgs/development/python-modules/breezy/Cargo.lock103
-rw-r--r--pkgs/development/python-modules/breezy/default.nix27
-rw-r--r--pkgs/development/python-modules/bthome-ble/default.nix4
-rw-r--r--pkgs/development/python-modules/bx-py-utils/default.nix4
-rw-r--r--pkgs/development/python-modules/cantools/default.nix4
-rw-r--r--pkgs/development/python-modules/celery/default.nix6
-rw-r--r--pkgs/development/python-modules/censys/default.nix4
-rw-r--r--pkgs/development/python-modules/certbot/default.nix4
-rw-r--r--pkgs/development/python-modules/certipy-ad/default.nix4
-rw-r--r--pkgs/development/python-modules/cirq-ft/default.nix12
-rw-r--r--pkgs/development/python-modules/cirq-google/default.nix14
-rw-r--r--pkgs/development/python-modules/clarifai-grpc/default.nix4
-rw-r--r--pkgs/development/python-modules/clickhouse-connect/default.nix4
-rw-r--r--pkgs/development/python-modules/cmdstanpy/default.nix10
-rw-r--r--pkgs/development/python-modules/coinmetrics-api-client/default.nix4
-rw-r--r--pkgs/development/python-modules/comm/default.nix4
-rw-r--r--pkgs/development/python-modules/correctionlib/default.nix5
-rw-r--r--pkgs/development/python-modules/cron-descriptor/default.nix4
-rw-r--r--pkgs/development/python-modules/crontab/default.nix45
-rw-r--r--pkgs/development/python-modules/cryptodatahub/default.nix45
-rw-r--r--pkgs/development/python-modules/cryptography/default.nix4
-rw-r--r--pkgs/development/python-modules/cryptolyzer/default.nix35
-rw-r--r--pkgs/development/python-modules/cryptoparser/default.nix11
-rw-r--r--pkgs/development/python-modules/crytic-compile/default.nix4
-rw-r--r--pkgs/development/python-modules/cvelib/default.nix4
-rw-r--r--pkgs/development/python-modules/cvss/default.nix33
-rw-r--r--pkgs/development/python-modules/cvxpy/default.nix4
-rw-r--r--pkgs/development/python-modules/cwl-upgrader/default.nix26
-rw-r--r--pkgs/development/python-modules/cx-freeze/default.nix4
-rw-r--r--pkgs/development/python-modules/cyclonedx-python-lib/default.nix6
-rw-r--r--pkgs/development/python-modules/cypari2/default.nix24
-rw-r--r--pkgs/development/python-modules/daiquiri/default.nix4
-rw-r--r--pkgs/development/python-modules/darkdetect/default.nix2
-rw-r--r--pkgs/development/python-modules/dask-awkward/default.nix4
-rw-r--r--pkgs/development/python-modules/dask-histogram/default.nix7
-rw-r--r--pkgs/development/python-modules/dask/default.nix4
-rw-r--r--pkgs/development/python-modules/databricks-sql-connector/default.nix4
-rw-r--r--pkgs/development/python-modules/datadog/default.nix6
-rw-r--r--pkgs/development/python-modules/dataprep-ml/default.nix31
-rw-r--r--pkgs/development/python-modules/deebot-client/default.nix84
-rw-r--r--pkgs/development/python-modules/demetriek/default.nix15
-rw-r--r--pkgs/development/python-modules/dict2xml/default.nix6
-rw-r--r--pkgs/development/python-modules/diffusers/default.nix4
-rw-r--r--pkgs/development/python-modules/dissect-btrfs/default.nix62
-rw-r--r--pkgs/development/python-modules/dissect-clfs/default.nix4
-rw-r--r--pkgs/development/python-modules/dissect-cstruct/default.nix8
-rw-r--r--pkgs/development/python-modules/dissect-esedb/default.nix4
-rw-r--r--pkgs/development/python-modules/dissect-extfs/default.nix6
-rw-r--r--pkgs/development/python-modules/dissect-hypervisor/default.nix4
-rw-r--r--pkgs/development/python-modules/dissect-jffs/default.nix49
-rw-r--r--pkgs/development/python-modules/dissect-ntfs/default.nix6
-rw-r--r--pkgs/development/python-modules/dissect-target/default.nix16
-rw-r--r--pkgs/development/python-modules/dissect-util/default.nix4
-rw-r--r--pkgs/development/python-modules/dissect-volume/default.nix4
-rw-r--r--pkgs/development/python-modules/dissect-xfs/default.nix4
-rw-r--r--pkgs/development/python-modules/dissect/default.nix16
-rw-r--r--pkgs/development/python-modules/distutils-cfg/default.nix2
-rw-r--r--pkgs/development/python-modules/django-cleanup/default.nix4
-rw-r--r--pkgs/development/python-modules/django-crispy-bootstrap5/default.nix42
-rw-r--r--pkgs/development/python-modules/django-hijack/default.nix6
-rw-r--r--pkgs/development/python-modules/django-import-export/default.nix4
-rw-r--r--pkgs/development/python-modules/django-mailman3/default.nix3
-rw-r--r--pkgs/development/python-modules/django-maintenance-mode/default.nix24
-rw-r--r--pkgs/development/python-modules/django-reversion/default.nix4
-rw-r--r--pkgs/development/python-modules/django-sesame/default.nix9
-rw-r--r--pkgs/development/python-modules/django-silk/default.nix4
-rw-r--r--pkgs/development/python-modules/django-simple-captcha/default.nix4
-rw-r--r--pkgs/development/python-modules/django-two-factor-auth/default.nix6
-rw-r--r--pkgs/development/python-modules/django-versatileimagefield/default.nix4
-rw-r--r--pkgs/development/python-modules/django-vite/default.nix4
-rw-r--r--pkgs/development/python-modules/django-webpack-loader/default.nix4
-rw-r--r--pkgs/development/python-modules/django/4.nix2
-rw-r--r--pkgs/development/python-modules/dlms-cosem/default.nix16
-rw-r--r--pkgs/development/python-modules/dparse/default.nix33
-rw-r--r--pkgs/development/python-modules/dploot/default.nix48
-rw-r--r--pkgs/development/python-modules/dramatiq/default.nix4
-rw-r--r--pkgs/development/python-modules/ducc0/default.nix4
-rw-r--r--pkgs/development/python-modules/dulwich/default.nix2
-rw-r--r--pkgs/development/python-modules/dvc-data/default.nix4
-rw-r--r--pkgs/development/python-modules/dvc-gdrive/default.nix49
-rw-r--r--pkgs/development/python-modules/dvc-hdfs/default.nix49
-rw-r--r--pkgs/development/python-modules/dvc-objects/default.nix4
-rw-r--r--pkgs/development/python-modules/dvc-render/default.nix10
-rw-r--r--pkgs/development/python-modules/dvc/default.nix28
-rw-r--r--pkgs/development/python-modules/dvclive/default.nix90
-rw-r--r--pkgs/development/python-modules/dynalite-devices/default.nix2
-rw-r--r--pkgs/development/python-modules/ed25519-blake2b/default.nix17
-rw-r--r--pkgs/development/python-modules/edk2-pytool-library/default.nix6
-rw-r--r--pkgs/development/python-modules/eigenpy/default.nix4
-rw-r--r--pkgs/development/python-modules/elasticsearch8/default.nix4
-rw-r--r--pkgs/development/python-modules/embedding-reader/default.nix4
-rw-r--r--pkgs/development/python-modules/emoji/default.nix4
-rw-r--r--pkgs/development/python-modules/environs/default.nix4
-rw-r--r--pkgs/development/python-modules/es-client/default.nix12
-rw-r--r--pkgs/development/python-modules/exchangelib/default.nix4
-rw-r--r--pkgs/development/python-modules/extruct/default.nix36
-rw-r--r--pkgs/development/python-modules/ezyrb/default.nix4
-rw-r--r--pkgs/development/python-modules/face-recognition/default.nix11
-rw-r--r--pkgs/development/python-modules/find-libpython/default.nix34
-rw-r--r--pkgs/development/python-modules/fingerprints/default.nix19
-rw-r--r--pkgs/development/python-modules/flake8-bugbear/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-caching/default.nix5
-rw-r--r--pkgs/development/python-modules/flask-marshmallow/default.nix15
-rw-r--r--pkgs/development/python-modules/flet-core/default.nix6
-rw-r--r--pkgs/development/python-modules/flet-runtime/default.nix12
-rw-r--r--pkgs/development/python-modules/flet/default.nix12
-rw-r--r--pkgs/development/python-modules/fontparts/default.nix4
-rw-r--r--pkgs/development/python-modules/fonttools/default.nix2
-rw-r--r--pkgs/development/python-modules/fpylll/default.nix4
-rw-r--r--pkgs/development/python-modules/frigidaire/default.nix15
-rw-r--r--pkgs/development/python-modules/fuse-python/default.nix4
-rw-r--r--pkgs/development/python-modules/galois/default.nix4
-rw-r--r--pkgs/development/python-modules/garminconnect/default.nix4
-rw-r--r--pkgs/development/python-modules/gehomesdk/default.nix11
-rw-r--r--pkgs/development/python-modules/gentools/default.nix4
-rw-r--r--pkgs/development/python-modules/geometric/default.nix6
-rw-r--r--pkgs/development/python-modules/georss-client/default.nix16
-rw-r--r--pkgs/development/python-modules/georss-ingv-centro-nazionale-terremoti-client/default.nix14
-rw-r--r--pkgs/development/python-modules/git-annex-adapter/default.nix51
-rw-r--r--pkgs/development/python-modules/githubkit/default.nix72
-rw-r--r--pkgs/development/python-modules/gitignore-parser/default.nix11
-rw-r--r--pkgs/development/python-modules/gitlike-commands/default.nix4
-rw-r--r--pkgs/development/python-modules/glean-parser/default.nix6
-rw-r--r--pkgs/development/python-modules/glfw/default.nix4
-rw-r--r--pkgs/development/python-modules/google-ai-generativelanguage/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-asset/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-bigquery/default.nix6
-rw-r--r--pkgs/development/python-modules/google-cloud-container/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-datacatalog/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-dataproc/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-monitoring/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-redis/default.nix11
-rw-r--r--pkgs/development/python-modules/google-cloud-resource-manager/default.nix10
-rw-r--r--pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-secret-manager/default.nix8
-rw-r--r--pkgs/development/python-modules/google-cloud-speech/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-tasks/default.nix11
-rw-r--r--pkgs/development/python-modules/google-cloud-texttospeech/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-trace/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-videointelligence/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix4
-rw-r--r--pkgs/development/python-modules/govee-ble/default.nix18
-rw-r--r--pkgs/development/python-modules/gpaw/default.nix4
-rw-r--r--pkgs/development/python-modules/gradio-pdf/default.nix4
-rw-r--r--pkgs/development/python-modules/griffe/default.nix4
-rw-r--r--pkgs/development/python-modules/grpcio-channelz/default.nix4
-rw-r--r--pkgs/development/python-modules/grpcio-health-checking/default.nix4
-rw-r--r--pkgs/development/python-modules/grpcio-reflection/default.nix4
-rw-r--r--pkgs/development/python-modules/gruut-ipa/default.nix2
-rw-r--r--pkgs/development/python-modules/gsd/default.nix4
-rw-r--r--pkgs/development/python-modules/gtimelog/default.nix60
-rw-r--r--pkgs/development/python-modules/gurobipy/linux.nix2
-rw-r--r--pkgs/development/python-modules/gvm-tools/default.nix4
-rw-r--r--pkgs/development/python-modules/hahomematic/default.nix4
-rw-r--r--pkgs/development/python-modules/hatch-requirements-txt/default.nix4
-rw-r--r--pkgs/development/python-modules/heudiconv/default.nix6
-rw-r--r--pkgs/development/python-modules/hg-commitsigs/default.nix4
-rw-r--r--pkgs/development/python-modules/hg-git/default.nix4
-rw-r--r--pkgs/development/python-modules/hishel/default.nix74
-rw-r--r--pkgs/development/python-modules/http-sf/default.nix45
-rw-r--r--pkgs/development/python-modules/http-sfv/default.nix6
-rw-r--r--pkgs/development/python-modules/httpie-ntlm/default.nix4
-rw-r--r--pkgs/development/python-modules/huggingface-hub/default.nix4
-rw-r--r--pkgs/development/python-modules/huum/default.nix6
-rw-r--r--pkgs/development/python-modules/hvac/default.nix4
-rw-r--r--pkgs/development/python-modules/hwi/default.nix4
-rw-r--r--pkgs/development/python-modules/hyperscan/default.nix6
-rw-r--r--pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix4
-rw-r--r--pkgs/development/python-modules/imbalanced-learn/default.nix63
-rw-r--r--pkgs/development/python-modules/img2pdf/default.nix4
-rw-r--r--pkgs/development/python-modules/iminuit/default.nix4
-rw-r--r--pkgs/development/python-modules/immutabledict/default.nix4
-rw-r--r--pkgs/development/python-modules/impacket/default.nix21
-rw-r--r--pkgs/development/python-modules/indexed-gzip/default.nix4
-rw-r--r--pkgs/development/python-modules/influxdb-client/default.nix4
-rw-r--r--pkgs/development/python-modules/insteon-frontend-home-assistant/default.nix19
-rw-r--r--pkgs/development/python-modules/ipwhois/default.nix20
-rw-r--r--pkgs/development/python-modules/ipykernel/default.nix4
-rw-r--r--pkgs/development/python-modules/ipython-sql/default.nix36
-rw-r--r--pkgs/development/python-modules/jinja2/default.nix82
-rw-r--r--pkgs/development/python-modules/jq/jq-py-setup.patch111
-rw-r--r--pkgs/development/python-modules/json-schema-for-humans/default.nix14
-rw-r--r--pkgs/development/python-modules/json-stream-rs-tokenizer/default.nix9
-rw-r--r--pkgs/development/python-modules/jsonargparse/default.nix109
-rw-r--r--pkgs/development/python-modules/jsonrpc-base/default.nix15
-rw-r--r--pkgs/development/python-modules/jsonrpc-websocket/default.nix21
-rw-r--r--pkgs/development/python-modules/jupyter-book/default.nix28
-rw-r--r--pkgs/development/python-modules/jupyter-lsp/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyter-server-terminals/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyter-server/default.nix8
-rw-r--r--pkgs/development/python-modules/jupyterlab-lsp/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyterlab/default.nix4
-rw-r--r--pkgs/development/python-modules/kaa-base/default.nix10
-rw-r--r--pkgs/development/python-modules/kaa-metadata/default.nix10
-rw-r--r--pkgs/development/python-modules/kaggle/default.nix4
-rw-r--r--pkgs/development/python-modules/keyring-pass/default.nix78
-rw-r--r--pkgs/development/python-modules/labgrid/default.nix24
-rw-r--r--pkgs/development/python-modules/langchain-community/default.nix4
-rw-r--r--pkgs/development/python-modules/langchain-core/default.nix4
-rw-r--r--pkgs/development/python-modules/langchain/default.nix4
-rw-r--r--pkgs/development/python-modules/langsmith/default.nix4
-rw-r--r--pkgs/development/python-modules/ldfparser/default.nix4
-rw-r--r--pkgs/development/python-modules/leidenalg/default.nix32
-rw-r--r--pkgs/development/python-modules/levenshtein/default.nix3
-rw-r--r--pkgs/development/python-modules/libknot/default.nix4
-rw-r--r--pkgs/development/python-modules/librosa/default.nix2
-rw-r--r--pkgs/development/python-modules/libvirt/default.nix4
-rw-r--r--pkgs/development/python-modules/linear-operator/default.nix9
-rw-r--r--pkgs/development/python-modules/linien-common/default.nix4
-rw-r--r--pkgs/development/python-modules/litellm/default.nix4
-rw-r--r--pkgs/development/python-modules/lmcloud/default.nix51
-rw-r--r--pkgs/development/python-modules/logilab/constraint.nix4
-rw-r--r--pkgs/development/python-modules/logmatic-python/default.nix44
-rw-r--r--pkgs/development/python-modules/losant-rest/default.nix4
-rw-r--r--pkgs/development/python-modules/lsprotocol/default.nix9
-rw-r--r--pkgs/development/python-modules/lupupy/default.nix11
-rw-r--r--pkgs/development/python-modules/lxmf/default.nix13
-rw-r--r--pkgs/development/python-modules/maestral/default.nix2
-rw-r--r--pkgs/development/python-modules/maison/default.nix13
-rw-r--r--pkgs/development/python-modules/marisa-trie/default.nix4
-rw-r--r--pkgs/development/python-modules/marshmallow-polyfield/default.nix25
-rw-r--r--pkgs/development/python-modules/marshmallow/default.nix13
-rw-r--r--pkgs/development/python-modules/matplotlib/default.nix19
-rw-r--r--pkgs/development/python-modules/meep/default.nix2
-rw-r--r--pkgs/development/python-modules/memory-allocator/default.nix4
-rw-r--r--pkgs/development/python-modules/meraki/default.nix4
-rw-r--r--pkgs/development/python-modules/meshtastic/default.nix6
-rw-r--r--pkgs/development/python-modules/meson-python/default.nix2
-rw-r--r--pkgs/development/python-modules/mf2py/default.nix27
-rw-r--r--pkgs/development/python-modules/mitmproxy/default.nix4
-rw-r--r--pkgs/development/python-modules/mkdocs-material/default.nix4
-rw-r--r--pkgs/development/python-modules/mkdocs-swagger-ui-tag/default.nix4
-rw-r--r--pkgs/development/python-modules/mmengine/default.nix22
-rw-r--r--pkgs/development/python-modules/mmh3/default.nix4
-rw-r--r--pkgs/development/python-modules/mobi/default.nix2
-rw-r--r--pkgs/development/python-modules/moderngl/default.nix4
-rw-r--r--pkgs/development/python-modules/monai-deploy/default.nix29
-rw-r--r--pkgs/development/python-modules/monty/default.nix17
-rw-r--r--pkgs/development/python-modules/mpi4py/default.nix6
-rw-r--r--pkgs/development/python-modules/mplhep/default.nix4
-rw-r--r--pkgs/development/python-modules/msal-extensions/default.nix47
-rw-r--r--pkgs/development/python-modules/msal/default.nix13
-rw-r--r--pkgs/development/python-modules/msgspec/default.nix13
-rw-r--r--pkgs/development/python-modules/msoffcrypto-tool/default.nix4
-rw-r--r--pkgs/development/python-modules/msprime/default.nix37
-rw-r--r--pkgs/development/python-modules/mujoco/default.nix26
-rw-r--r--pkgs/development/python-modules/myjwt/default.nix12
-rw-r--r--pkgs/development/python-modules/mypy-boto3-builder/default.nix10
-rw-r--r--pkgs/development/python-modules/nameko/default.nix71
-rw-r--r--pkgs/development/python-modules/napari-npe2/default.nix2
-rw-r--r--pkgs/development/python-modules/napari-svg/default.nix15
-rw-r--r--pkgs/development/python-modules/nbconvert/default.nix4
-rw-r--r--pkgs/development/python-modules/ndeflib/default.nix11
-rw-r--r--pkgs/development/python-modules/neo/default.nix9
-rw-r--r--pkgs/development/python-modules/neo4j/default.nix4
-rw-r--r--pkgs/development/python-modules/niaaml/default.nix17
-rw-r--r--pkgs/development/python-modules/niaarm/default.nix4
-rw-r--r--pkgs/development/python-modules/niaclass/default.nix19
-rw-r--r--pkgs/development/python-modules/nianet/default.nix14
-rw-r--r--pkgs/development/python-modules/nibabel/default.nix12
-rw-r--r--pkgs/development/python-modules/nipreps-versions/default.nix46
-rw-r--r--pkgs/development/python-modules/niworkflows/default.nix101
-rw-r--r--pkgs/development/python-modules/nomadnet/default.nix15
-rw-r--r--pkgs/development/python-modules/nose2/default.nix11
-rw-r--r--pkgs/development/python-modules/notebook/default.nix4
-rw-r--r--pkgs/development/python-modules/nototools/default.nix6
-rw-r--r--pkgs/development/python-modules/ocrmypdf/default.nix8
-rw-r--r--pkgs/development/python-modules/oelint-parser/default.nix10
-rw-r--r--pkgs/development/python-modules/onnx/default.nix13
-rw-r--r--pkgs/development/python-modules/openai/default.nix24
-rw-r--r--pkgs/development/python-modules/openerz-api/default.nix18
-rw-r--r--pkgs/development/python-modules/openpyxl/default.nix55
-rw-r--r--pkgs/development/python-modules/openstacksdk/default.nix4
-rw-r--r--pkgs/development/python-modules/opentelemetry-api/default.nix4
-rw-r--r--pkgs/development/python-modules/opentelemetry-instrumentation-flask/default.nix45
-rw-r--r--pkgs/development/python-modules/opentelemetry-instrumentation/default.nix4
-rw-r--r--pkgs/development/python-modules/opentelemetry-util-http/default.nix6
-rw-r--r--pkgs/development/python-modules/openusd/default.nix4
-rw-r--r--pkgs/development/python-modules/openwebifpy/default.nix4
-rw-r--r--pkgs/development/python-modules/opower/default.nix4
-rw-r--r--pkgs/development/python-modules/optimum/default.nix4
-rw-r--r--pkgs/development/python-modules/oras/default.nix4
-rw-r--r--pkgs/development/python-modules/oslo-db/default.nix16
-rw-r--r--pkgs/development/python-modules/pamqp/default.nix12
-rw-r--r--pkgs/development/python-modules/param/default.nix4
-rw-r--r--pkgs/development/python-modules/parsedmarc/default.nix15
-rw-r--r--pkgs/development/python-modules/pastescript/default.nix4
-rw-r--r--pkgs/development/python-modules/patool/default.nix4
-rw-r--r--pkgs/development/python-modules/pdfrw2/default.nix38
-rw-r--r--pkgs/development/python-modules/pglast/default.nix4
-rw-r--r--pkgs/development/python-modules/pikepdf/default.nix12
-rw-r--r--pkgs/development/python-modules/pikepdf/paths.patch10
-rw-r--r--pkgs/development/python-modules/pinecone-client/default.nix21
-rw-r--r--pkgs/development/python-modules/pins/default.nix104
-rw-r--r--pkgs/development/python-modules/pip-api/default.nix20
-rw-r--r--pkgs/development/python-modules/pip-tools/default.nix2
-rw-r--r--pkgs/development/python-modules/pipenv-poetry-migrate/default.nix4
-rw-r--r--pkgs/development/python-modules/plaid-python/default.nix4
-rw-r--r--pkgs/development/python-modules/plugwise/default.nix4
-rw-r--r--pkgs/development/python-modules/plyvel/default.nix4
-rw-r--r--pkgs/development/python-modules/pmdarima/default.nix2
-rw-r--r--pkgs/development/python-modules/podman/default.nix4
-rw-r--r--pkgs/development/python-modules/pomegranate/default.nix35
-rw-r--r--pkgs/development/python-modules/pontos/default.nix4
-rw-r--r--pkgs/development/python-modules/posthog/default.nix4
-rw-r--r--pkgs/development/python-modules/pot/default.nix4
-rw-r--r--pkgs/development/python-modules/pplpy/default.nix4
-rw-r--r--pkgs/development/python-modules/preshed/default.nix4
-rw-r--r--pkgs/development/python-modules/primecountpy/default.nix4
-rw-r--r--pkgs/development/python-modules/prophet/default.nix1
-rw-r--r--pkgs/development/python-modules/psd-tools/default.nix6
-rw-r--r--pkgs/development/python-modules/psycopg/default.nix5
-rw-r--r--pkgs/development/python-modules/publicsuffixlist/default.nix4
-rw-r--r--pkgs/development/python-modules/pudb/default.nix4
-rw-r--r--pkgs/development/python-modules/pulp/default.nix4
-rw-r--r--pkgs/development/python-modules/pwlf/default.nix48
-rw-r--r--pkgs/development/python-modules/py-serializable/default.nix8
-rw-r--r--pkgs/development/python-modules/py-sonic/default.nix4
-rw-r--r--pkgs/development/python-modules/py3status/default.nix4
-rw-r--r--pkgs/development/python-modules/pyarrow-hotfix/default.nix37
-rw-r--r--pkgs/development/python-modules/pyasyncore/default.nix6
-rw-r--r--pkgs/development/python-modules/pyatem/default.nix13
-rw-r--r--pkgs/development/python-modules/pyatspi/default.nix4
-rw-r--r--pkgs/development/python-modules/pyaudio/default.nix4
-rw-r--r--pkgs/development/python-modules/pybase64/default.nix4
-rw-r--r--pkgs/development/python-modules/pybids/default.nix8
-rw-r--r--pkgs/development/python-modules/pycaption/default.nix8
-rw-r--r--pkgs/development/python-modules/pycryptodome/default.nix4
-rw-r--r--pkgs/development/python-modules/pyctr/default.nix4
-rw-r--r--pkgs/development/python-modules/pycuda/default.nix4
-rw-r--r--pkgs/development/python-modules/pycurl/default.nix1
-rw-r--r--pkgs/development/python-modules/pydash/default.nix44
-rw-r--r--pkgs/development/python-modules/pydata-sphinx-theme/default.nix4
-rw-r--r--pkgs/development/python-modules/pydeps/default.nix13
-rw-r--r--pkgs/development/python-modules/pydoe/default.nix38
-rw-r--r--pkgs/development/python-modules/pydrive2/default.nix27
-rw-r--r--pkgs/development/python-modules/pyduotecno/default.nix4
-rw-r--r--pkgs/development/python-modules/pyemvue/default.nix48
-rw-r--r--pkgs/development/python-modules/pyenphase/default.nix4
-rw-r--r--pkgs/development/python-modules/pyfaidx/default.nix4
-rw-r--r--pkgs/development/python-modules/pyfireservicerota/default.nix22
-rw-r--r--pkgs/development/python-modules/pyformlang/default.nix4
-rw-r--r--pkgs/development/python-modules/pygit2/default.nix14
-rw-r--r--pkgs/development/python-modules/pygitguardian/default.nix6
-rw-r--r--pkgs/development/python-modules/pygls/default.nix32
-rw-r--r--pkgs/development/python-modules/pygmo/default.nix2
-rw-r--r--pkgs/development/python-modules/pygmt/default.nix4
-rw-r--r--pkgs/development/python-modules/pyhanko-certvalidator/default.nix8
-rw-r--r--pkgs/development/python-modules/pykoplenti/default.nix21
-rw-r--r--pkgs/development/python-modules/pykwalify/default.nix16
-rw-r--r--pkgs/development/python-modules/pylgnetcast/default.nix4
-rw-r--r--pkgs/development/python-modules/pylint-django/default.nix28
-rw-r--r--pkgs/development/python-modules/pylint-plugin-utils/default.nix15
-rw-r--r--pkgs/development/python-modules/pylutron-caseta/default.nix25
-rw-r--r--pkgs/development/python-modules/pylutron/default.nix4
-rw-r--r--pkgs/development/python-modules/pylxd/default.nix6
-rw-r--r--pkgs/development/python-modules/pymatting/01-kdtree-signature.patch13
-rw-r--r--pkgs/development/python-modules/pymatting/default.nix17
-rw-r--r--pkgs/development/python-modules/pymemcache/default.nix7
-rw-r--r--pkgs/development/python-modules/pymilvus/default.nix16
-rw-r--r--pkgs/development/python-modules/pyngo/default.nix4
-rw-r--r--pkgs/development/python-modules/pyngrok/default.nix4
-rw-r--r--pkgs/development/python-modules/pynitrokey/default.nix4
-rw-r--r--pkgs/development/python-modules/pynndescent/default.nix22
-rw-r--r--pkgs/development/python-modules/pyosohotwaterapi/default.nix63
-rw-r--r--pkgs/development/python-modules/pyprusalink/default.nix4
-rw-r--r--pkgs/development/python-modules/pyqtwebengine/default.nix4
-rw-r--r--pkgs/development/python-modules/pyradios/default.nix8
-rw-r--r--pkgs/development/python-modules/pyrdfa3/default.nix30
-rw-r--r--pkgs/development/python-modules/pyrfc3339/default.nix5
-rw-r--r--pkgs/development/python-modules/pysigma-backend-elasticsearch/default.nix6
-rw-r--r--pkgs/development/python-modules/pysnmplib/default.nix4
-rw-r--r--pkgs/development/python-modules/pysolcast/default.nix6
-rw-r--r--pkgs/development/python-modules/pyspellchecker/default.nix4
-rw-r--r--pkgs/development/python-modules/pyswitchbot/default.nix4
-rw-r--r--pkgs/development/python-modules/pytedee-async/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-ansible/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-cases/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-check/default.nix15
-rw-r--r--pkgs/development/python-modules/pytest-django/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-random-order/default.nix35
-rw-r--r--pkgs/development/python-modules/python-benedict/default.nix85
-rw-r--r--pkgs/development/python-modules/python-creole/default.nix4
-rw-r--r--pkgs/development/python-modules/python-docs-theme/default.nix4
-rw-r--r--pkgs/development/python-modules/python-frontmatter/default.nix4
-rw-r--r--pkgs/development/python-modules/python-fsutil/default.nix13
-rw-r--r--pkgs/development/python-modules/python-gitlab/default.nix4
-rw-r--r--pkgs/development/python-modules/python-homewizard-energy/default.nix8
-rw-r--r--pkgs/development/python-modules/python-kasa/default.nix16
-rw-r--r--pkgs/development/python-modules/python-lsp-server/default.nix5
-rw-r--r--pkgs/development/python-modules/python-lzo/default.nix38
-rw-r--r--pkgs/development/python-modules/python-memcached/default.nix12
-rw-r--r--pkgs/development/python-modules/python-openstackclient/default.nix4
-rw-r--r--pkgs/development/python-modules/python-openzwave/cython.patch (renamed from pkgs/development/python-modules/python_openzwave/cython.patch)0
-rw-r--r--pkgs/development/python-modules/python-openzwave/default.nix (renamed from pkgs/development/python-modules/python_openzwave/default.nix)5
-rw-r--r--pkgs/development/python-modules/python-roborock/default.nix4
-rw-r--r--pkgs/development/python-modules/python-songpal/default.nix4
-rw-r--r--pkgs/development/python-modules/python-sql/default.nix4
-rw-r--r--pkgs/development/python-modules/python-tado/default.nix9
-rw-r--r--pkgs/development/python-modules/python-trovo/default.nix3
-rw-r--r--pkgs/development/python-modules/pythran/default.nix14
-rw-r--r--pkgs/development/python-modules/pytoolconfig/default.nix4
-rw-r--r--pkgs/development/python-modules/pytrafikverket/default.nix4
-rw-r--r--pkgs/development/python-modules/pyupgrade/default.nix4
-rw-r--r--pkgs/development/python-modules/pyutil/default.nix52
-rw-r--r--pkgs/development/python-modules/pyvista/default.nix4
-rw-r--r--pkgs/development/python-modules/pywebpush/default.nix4
-rw-r--r--pkgs/development/python-modules/pywfa/default.nix2
-rw-r--r--pkgs/development/python-modules/pywinrm/default.nix4
-rw-r--r--pkgs/development/python-modules/qbittorrent-api/default.nix12
-rw-r--r--pkgs/development/python-modules/qcodes/default.nix4
-rw-r--r--pkgs/development/python-modules/qcs-api-client/default.nix7
-rw-r--r--pkgs/development/python-modules/qdrant-client/default.nix4
-rw-r--r--pkgs/development/python-modules/qingping-ble/default.nix4
-rw-r--r--pkgs/development/python-modules/qiskit-ibmq-provider/default.nix4
-rw-r--r--pkgs/development/python-modules/qrcode/default.nix17
-rw-r--r--pkgs/development/python-modules/qtile-extras/default.nix69
-rw-r--r--pkgs/development/python-modules/qtile/default.nix4
-rw-r--r--pkgs/development/python-modules/quaternion/default.nix4
-rw-r--r--pkgs/development/python-modules/qutip/default.nix4
-rw-r--r--pkgs/development/python-modules/r2pipe/default.nix4
-rw-r--r--pkgs/development/python-modules/rapidfuzz/default.nix6
-rw-r--r--pkgs/development/python-modules/rdkit/default.nix6
-rw-r--r--pkgs/development/python-modules/readmdict/default.nix2
-rw-r--r--pkgs/development/python-modules/readme-renderer/default.nix (renamed from pkgs/development/python-modules/readme_renderer/default.nix)0
-rw-r--r--pkgs/development/python-modules/readme/default.nix6
-rw-r--r--pkgs/development/python-modules/recipe-scrapers/default.nix22
-rw-r--r--pkgs/development/python-modules/reconplogger/default.nix63
-rw-r--r--pkgs/development/python-modules/recursive-pth-loader/default.nix2
-rw-r--r--pkgs/development/python-modules/redshift-connector/default.nix4
-rw-r--r--pkgs/development/python-modules/regenmaschine/default.nix4
-rw-r--r--pkgs/development/python-modules/regress/default.nix4
-rw-r--r--pkgs/development/python-modules/reproject/default.nix9
-rw-r--r--pkgs/development/python-modules/reptor/default.nix16
-rw-r--r--pkgs/development/python-modules/requests-download/default.nix (renamed from pkgs/development/python-modules/requests_download/default.nix)5
-rw-r--r--pkgs/development/python-modules/requests-ntlm/default.nix (renamed from pkgs/development/python-modules/requests_ntlm/default.nix)0
-rw-r--r--pkgs/development/python-modules/requests-pkcs12/default.nix4
-rw-r--r--pkgs/development/python-modules/restview/default.nix4
-rw-r--r--pkgs/development/python-modules/reuse/default.nix4
-rw-r--r--pkgs/development/python-modules/rich-pixels/default.nix9
-rw-r--r--pkgs/development/python-modules/rich-rst/default.nix6
-rw-r--r--pkgs/development/python-modules/ring-doorbell/default.nix4
-rw-r--r--pkgs/development/python-modules/riscv-config/default.nix4
-rw-r--r--pkgs/development/python-modules/rki-covid-parser/default.nix12
-rw-r--r--pkgs/development/python-modules/rmrl/default.nix24
-rw-r--r--pkgs/development/python-modules/rmscene/default.nix47
-rw-r--r--pkgs/development/python-modules/rns/default.nix11
-rw-r--r--pkgs/development/python-modules/robotframework-databaselibrary/default.nix22
-rw-r--r--pkgs/development/python-modules/robotframework-excellib/default.nix39
-rw-r--r--pkgs/development/python-modules/robotframework-seleniumlibrary/default.nix21
-rw-r--r--pkgs/development/python-modules/robotframework/default.nix32
-rw-r--r--pkgs/development/python-modules/robotstatuschecker/default.nix26
-rw-r--r--pkgs/development/python-modules/rokuecp/default.nix4
-rw-r--r--pkgs/development/python-modules/rpyc4/default.nix74
-rw-r--r--pkgs/development/python-modules/rtree/default.nix30
-rw-r--r--pkgs/development/python-modules/ruyaml/default.nix35
-rw-r--r--pkgs/development/python-modules/safe-pysha3/default.nix7
-rw-r--r--pkgs/development/python-modules/safetensors/default.nix14
-rw-r--r--pkgs/development/python-modules/sagemaker/default.nix4
-rw-r--r--pkgs/development/python-modules/schema-salad/default.nix31
-rw-r--r--pkgs/development/python-modules/schemdraw/default.nix9
-rw-r--r--pkgs/development/python-modules/schwifty/default.nix4
-rw-r--r--pkgs/development/python-modules/scikit-hep-testdata/default.nix4
-rw-r--r--pkgs/development/python-modules/scikit-learn/default.nix4
-rw-r--r--pkgs/development/python-modules/scipy/default.nix55
-rw-r--r--pkgs/development/python-modules/scmrepo/default.nix4
-rw-r--r--pkgs/development/python-modules/scs/default.nix13
-rw-r--r--pkgs/development/python-modules/seaborn/default.nix4
-rw-r--r--pkgs/development/python-modules/selenium/default.nix2
-rw-r--r--pkgs/development/python-modules/sense-energy/default.nix13
-rw-r--r--pkgs/development/python-modules/sentence-splitter/default.nix2
-rw-r--r--pkgs/development/python-modules/sentry-sdk/default.nix7
-rw-r--r--pkgs/development/python-modules/sharp-aquos-rc/default.nix36
-rw-r--r--pkgs/development/python-modules/sigstore/default.nix38
-rw-r--r--pkgs/development/python-modules/simplemma/default.nix2
-rw-r--r--pkgs/development/python-modules/simplisafe-python/default.nix4
-rw-r--r--pkgs/development/python-modules/sip/default.nix9
-rw-r--r--pkgs/development/python-modules/slpp/default.nix2
-rw-r--r--pkgs/development/python-modules/snakemake-interface-common/default.nix4
-rw-r--r--pkgs/development/python-modules/snakemake-interface-executor-plugins/default.nix4
-rw-r--r--pkgs/development/python-modules/socialscan/default.nix4
-rw-r--r--pkgs/development/python-modules/spglib/default.nix4
-rw-r--r--pkgs/development/python-modules/sphinx-comments/default.nix5
-rw-r--r--pkgs/development/python-modules/sphinx-markdown-parser/default.nix57
-rw-r--r--pkgs/development/python-modules/sphinx-notfound-page/default.nix27
-rw-r--r--pkgs/development/python-modules/sphinx-version-warning/default.nix29
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-apidoc/default.nix6
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-confluencebuilder/default.nix4
-rw-r--r--pkgs/development/python-modules/spyse-python/default.nix35
-rw-r--r--pkgs/development/python-modules/spython/default.nix59
-rw-r--r--pkgs/development/python-modules/sqlglot/default.nix41
-rw-r--r--pkgs/development/python-modules/stdlibs/default.nix4
-rw-r--r--pkgs/development/python-modules/stravalib/default.nix57
-rw-r--r--pkgs/development/python-modules/strawberry-graphql/default.nix4
-rw-r--r--pkgs/development/python-modules/strct/default.nix14
-rw-r--r--pkgs/development/python-modules/strenum/default.nix19
-rw-r--r--pkgs/development/python-modules/stupidartnet/default.nix42
-rw-r--r--pkgs/development/python-modules/subarulink/default.nix4
-rw-r--r--pkgs/development/python-modules/subunit2sql/default.nix6
-rw-r--r--pkgs/development/python-modules/sudachidict/default.nix5
-rw-r--r--pkgs/development/python-modules/sudachipy/default.nix20
-rw-r--r--pkgs/development/python-modules/svg-py/default.nix49
-rw-r--r--pkgs/development/python-modules/svg2tikz/default.nix4
-rw-r--r--pkgs/development/python-modules/svgutils/default.nix40
-rw-r--r--pkgs/development/python-modules/switchbot-api/default.nix45
-rw-r--r--pkgs/development/python-modules/synologydsm-api/default.nix12
-rw-r--r--pkgs/development/python-modules/tabcmd/default.nix67
-rw-r--r--pkgs/development/python-modules/tableauserverclient/default.nix30
-rw-r--r--pkgs/development/python-modules/tables/default.nix17
-rw-r--r--pkgs/development/python-modules/tcxreader/default.nix5
-rw-r--r--pkgs/development/python-modules/telegram-text/default.nix8
-rw-r--r--pkgs/development/python-modules/templateflow/default.nix45
-rw-r--r--pkgs/development/python-modules/tensordict/default.nix63
-rw-r--r--pkgs/development/python-modules/tesla-fleet-api/default.nix45
-rw-r--r--pkgs/development/python-modules/teslajsonpy/default.nix4
-rw-r--r--pkgs/development/python-modules/thefuzz/default.nix4
-rw-r--r--pkgs/development/python-modules/thermopro-ble/default.nix4
-rw-r--r--pkgs/development/python-modules/tilequant/default.nix9
-rw-r--r--pkgs/development/python-modules/timezonefinder/default.nix15
-rw-r--r--pkgs/development/python-modules/token-bucket/default.nix17
-rw-r--r--pkgs/development/python-modules/torchrl/default.nix140
-rw-r--r--pkgs/development/python-modules/transformers/default.nix4
-rw-r--r--pkgs/development/python-modules/trimesh/default.nix4
-rw-r--r--pkgs/development/python-modules/trytond/default.nix4
-rw-r--r--pkgs/development/python-modules/twilio/default.nix4
-rw-r--r--pkgs/development/python-modules/twine/default.nix4
-rw-r--r--pkgs/development/python-modules/types-aiobotocore-packages/default.nix694
-rw-r--r--pkgs/development/python-modules/types-aiobotocore/default.nix4
-rw-r--r--pkgs/development/python-modules/types-aiobotocore/update.sh2
-rw-r--r--pkgs/development/python-modules/types-awscrt/default.nix4
-rw-r--r--pkgs/development/python-modules/types-docutils/default.nix4
-rw-r--r--pkgs/development/python-modules/types-markdown/default.nix4
-rw-r--r--pkgs/development/python-modules/types-protobuf/default.nix4
-rw-r--r--pkgs/development/python-modules/types-psycopg2/default.nix4
-rw-r--r--pkgs/development/python-modules/types-pyopenssl/default.nix4
-rw-r--r--pkgs/development/python-modules/types-requests/default.nix4
-rw-r--r--pkgs/development/python-modules/types-setuptools/default.nix4
-rw-r--r--pkgs/development/python-modules/typeshed-client/default.nix51
-rw-r--r--pkgs/development/python-modules/uamqp/default.nix4
-rw-r--r--pkgs/development/python-modules/ufo2ft/default.nix39
-rw-r--r--pkgs/development/python-modules/unearth/default.nix8
-rw-r--r--pkgs/development/python-modules/unify/default.nix35
-rw-r--r--pkgs/development/python-modules/uproot/default.nix8
-rw-r--r--pkgs/development/python-modules/urwid/default.nix53
-rw-r--r--pkgs/development/python-modules/vncdo/default.nix4
-rw-r--r--pkgs/development/python-modules/vtjp/default.nix47
-rw-r--r--pkgs/development/python-modules/vulture/default.nix4
-rw-r--r--pkgs/development/python-modules/wagtail/default.nix8
-rw-r--r--pkgs/development/python-modules/watermark/default.nix1
-rw-r--r--pkgs/development/python-modules/weaviate-client/default.nix4
-rw-r--r--pkgs/development/python-modules/webargs/default.nix4
-rw-r--r--pkgs/development/python-modules/wheel-inspect/default.nix4
-rw-r--r--pkgs/development/python-modules/wheezy-captcha/default.nix4
-rw-r--r--pkgs/development/python-modules/whispers/default.nix43
-rw-r--r--pkgs/development/python-modules/willow/default.nix4
-rw-r--r--pkgs/development/python-modules/withings-sync/default.nix6
-rw-r--r--pkgs/development/python-modules/wled/default.nix2
-rw-r--r--pkgs/development/python-modules/xdoctest/default.nix4
-rw-r--r--pkgs/development/python-modules/xformers/0001-fix-allow-building-without-git.patch25
-rw-r--r--pkgs/development/python-modules/xformers/default.nix22
-rw-r--r--pkgs/development/python-modules/xiaomi-ble/default.nix4
-rw-r--r--pkgs/development/python-modules/xstatic/default.nix4
-rw-r--r--pkgs/development/python-modules/yalexs/default.nix4
-rw-r--r--pkgs/development/python-modules/yamlfix/default.nix40
-rw-r--r--pkgs/development/python-modules/yappi/default.nix4
-rw-r--r--pkgs/development/python-modules/yara-python/default.nix18
-rw-r--r--pkgs/development/python-modules/yaramod/default.nix4
-rw-r--r--pkgs/development/python-modules/yfinance/default.nix4
-rw-r--r--pkgs/development/python-modules/yolink-api/default.nix4
-rw-r--r--pkgs/development/python-modules/ytmusicapi/default.nix4
-rw-r--r--pkgs/development/python-modules/zcbor/default.nix4
-rw-r--r--pkgs/development/python-modules/zconfig/default.nix54
-rw-r--r--pkgs/development/python-modules/zfec/default.nix22
-rw-r--r--pkgs/development/python-modules/ziafont/default.nix9
-rw-r--r--pkgs/development/python-modules/ziamath/default.nix9
-rw-r--r--pkgs/development/python-modules/zigpy-deconz/default.nix4
-rw-r--r--pkgs/development/python-modules/zigpy-znp/default.nix2
-rw-r--r--pkgs/development/python2-modules/pygtk/default.nix4
-rw-r--r--pkgs/development/r-modules/cran-packages.nix2
-rw-r--r--pkgs/development/r-modules/default.nix2
-rw-r--r--pkgs/development/ruby-modules/bundler/default.nix4
-rw-r--r--pkgs/development/ruby-modules/gem-config/default.nix10
-rw-r--r--pkgs/development/ruby-modules/gem/default.nix2
-rw-r--r--pkgs/development/tools/allure/default.nix4
-rw-r--r--pkgs/development/tools/analysis/brakeman/Gemfile.lock6
-rw-r--r--pkgs/development/tools/analysis/brakeman/gemset.nix15
-rw-r--r--pkgs/development/tools/analysis/checkov/default.nix4
-rw-r--r--pkgs/development/tools/analysis/checkstyle/default.nix4
-rw-r--r--pkgs/development/tools/analysis/codeql/default.nix4
-rw-r--r--pkgs/development/tools/analysis/cppcheck/default.nix4
-rw-r--r--pkgs/development/tools/analysis/flow/default.nix4
-rw-r--r--pkgs/development/tools/analysis/frama-c/default.nix6
-rw-r--r--pkgs/development/tools/analysis/ikos/default.nix12
-rw-r--r--pkgs/development/tools/analysis/snyk/default.nix6
-rw-r--r--pkgs/development/tools/analysis/tflint/default.nix6
-rw-r--r--pkgs/development/tools/api-linter/default.nix14
-rw-r--r--pkgs/development/tools/apktool/default.nix4
-rw-r--r--pkgs/development/tools/avro-tools/default.nix4
-rw-r--r--pkgs/development/tools/azcopy/default.nix4
-rw-r--r--pkgs/development/tools/b4/default.nix4
-rw-r--r--pkgs/development/tools/backblaze-b2/default.nix20
-rw-r--r--pkgs/development/tools/bazel-watcher/default.nix12
-rw-r--r--pkgs/development/tools/bearer/default.nix6
-rw-r--r--pkgs/development/tools/buf/default.nix11
-rw-r--r--pkgs/development/tools/buf/skip_broken_tests.patch28
-rw-r--r--pkgs/development/tools/buf/skip_test_requiring_network.patch15
-rw-r--r--pkgs/development/tools/build-managers/bear/default.nix41
-rw-r--r--pkgs/development/tools/build-managers/bear/fix-functional-tests.patch32
-rw-r--r--pkgs/development/tools/build-managers/bear/no-double-relative.patch27
-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/corrosion/default.nix6
-rw-r--r--pkgs/development/tools/build-managers/gradle/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/gup/default.nix9
-rw-r--r--pkgs/development/tools/build-managers/moon/default.nix6
-rw-r--r--pkgs/development/tools/build-managers/sbt/default.nix4
-rw-r--r--pkgs/development/tools/buildah/default.nix4
-rw-r--r--pkgs/development/tools/buildkit/default.nix4
-rw-r--r--pkgs/development/tools/buildpack/default.nix6
-rw-r--r--pkgs/development/tools/capnproto-java/default.nix4
-rw-r--r--pkgs/development/tools/castxml/default.nix4
-rw-r--r--pkgs/development/tools/cddl/Gemfile.lock32
-rw-r--r--pkgs/development/tools/cddl/default.nix31
-rw-r--r--pkgs/development/tools/cddl/gemset.nix88
-rw-r--r--pkgs/development/tools/changie/default.nix6
-rw-r--r--pkgs/development/tools/check-jsonschema/default.nix6
-rw-r--r--pkgs/development/tools/cloudsmith-cli/default.nix4
-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.nix42
-rw-r--r--pkgs/development/tools/continuous-integration/buildbot/worker.nix2
-rw-r--r--pkgs/development/tools/continuous-integration/cirrus-cli/default.nix6
-rw-r--r--pkgs/development/tools/continuous-integration/drone-cli/default.nix6
-rw-r--r--pkgs/development/tools/continuous-integration/fly/default.nix6
-rw-r--r--pkgs/development/tools/continuous-integration/github-runner/default.nix9
-rw-r--r--pkgs/development/tools/continuous-integration/github-runner/deps.nix12
-rw-r--r--pkgs/development/tools/continuous-integration/jenkins/default.nix4
-rw-r--r--pkgs/development/tools/continuous-integration/woodpecker-plugin-git/default.nix6
-rw-r--r--pkgs/development/tools/continuous-integration/woodpecker/common.nix21
-rw-r--r--pkgs/development/tools/continuous-integration/woodpecker/frontend.nix57
-rw-r--r--pkgs/development/tools/continuous-integration/woodpecker/server.nix8
-rwxr-xr-xpkgs/development/tools/continuous-integration/woodpecker/update.sh25
-rw-r--r--pkgs/development/tools/continuous-integration/woodpecker/woodpecker-package.json77
-rw-r--r--pkgs/development/tools/continuous-integration/woodpecker/yarn.lock3219
-rw-r--r--pkgs/development/tools/ctlptl/default.nix6
-rw-r--r--pkgs/development/tools/database/atlas/default.nix4
-rw-r--r--pkgs/development/tools/database/clickhouse-backup/default.nix6
-rw-r--r--pkgs/development/tools/database/dbmate/default.nix6
-rw-r--r--pkgs/development/tools/database/ephemeralpg/default.nix10
-rw-r--r--pkgs/development/tools/database/liquibase/default.nix4
-rw-r--r--pkgs/development/tools/database/litefs/default.nix4
-rw-r--r--pkgs/development/tools/database/pg_activity/default.nix4
-rw-r--r--pkgs/development/tools/database/pgweb/default.nix4
-rw-r--r--pkgs/development/tools/database/sqlcl/default.nix4
-rw-r--r--pkgs/development/tools/database/sqlite-web/default.nix4
-rw-r--r--pkgs/development/tools/detekt/default.nix4
-rw-r--r--pkgs/development/tools/devbox/default.nix6
-rw-r--r--pkgs/development/tools/devpi-client/default.nix4
-rw-r--r--pkgs/development/tools/devpi-server/default.nix7
-rw-r--r--pkgs/development/tools/distgen/default.nix4
-rw-r--r--pkgs/development/tools/dive/default.nix16
-rw-r--r--pkgs/development/tools/djhtml/default.nix6
-rw-r--r--pkgs/development/tools/dockle/default.nix6
-rw-r--r--pkgs/development/tools/documentation/antora/default.nix6
-rw-r--r--pkgs/development/tools/documentation/doxygen/default.nix16
-rw-r--r--pkgs/development/tools/earthly/default.nix15
-rw-r--r--pkgs/development/tools/eask/default.nix6
-rw-r--r--pkgs/development/tools/efm-langserver/default.nix4
-rw-r--r--pkgs/development/tools/electron/info.json30
-rw-r--r--pkgs/development/tools/eliot-tree/default.nix4
-rw-r--r--pkgs/development/tools/esbuild/default.nix4
-rw-r--r--pkgs/development/tools/espup/default.nix6
-rw-r--r--pkgs/development/tools/extism-cli/default.nix6
-rw-r--r--pkgs/development/tools/faas-cli/default.nix4
-rw-r--r--pkgs/development/tools/fable/default.nix4
-rw-r--r--pkgs/development/tools/fac/default.nix35
-rw-r--r--pkgs/development/tools/fac/deps.nix66
-rw-r--r--pkgs/development/tools/fermyon-spin/default.nix12
-rw-r--r--pkgs/development/tools/firebase-tools/default.nix6
-rw-r--r--pkgs/development/tools/gauge/default.nix6
-rw-r--r--pkgs/development/tools/ginkgo/default.nix4
-rw-r--r--pkgs/development/tools/glslviewer/default.nix1
-rw-r--r--pkgs/development/tools/go-containerregistry/default.nix4
-rw-r--r--pkgs/development/tools/go-minimock/default.nix6
-rw-r--r--pkgs/development/tools/go-task/default.nix6
-rw-r--r--pkgs/development/tools/goa/default.nix6
-rw-r--r--pkgs/development/tools/gocode/default.nix43
-rw-r--r--pkgs/development/tools/gocode/deps.nix12
-rw-r--r--pkgs/development/tools/gofumpt/default.nix6
-rw-r--r--pkgs/development/tools/goimports-reviser/default.nix4
-rw-r--r--pkgs/development/tools/golines/default.nix6
-rw-r--r--pkgs/development/tools/gomplate/default.nix6
-rw-r--r--pkgs/development/tools/gptcommit/default.nix6
-rw-r--r--pkgs/development/tools/gqlgenc/default.nix4
-rw-r--r--pkgs/development/tools/grpc-gateway/default.nix6
-rw-r--r--pkgs/development/tools/hcloud/default.nix6
-rw-r--r--pkgs/development/tools/hobbes/default.nix20
-rw-r--r--pkgs/development/tools/infisical/default.nix2
-rw-r--r--pkgs/development/tools/infisical/hashes.json8
-rw-r--r--pkgs/development/tools/jaq/default.nix6
-rw-r--r--pkgs/development/tools/jira-cli-go/default.nix4
-rw-r--r--pkgs/development/tools/jql/default.nix6
-rw-r--r--pkgs/development/tools/k6/default.nix4
-rw-r--r--pkgs/development/tools/kdash/default.nix6
-rw-r--r--pkgs/development/tools/kind/default.nix2
-rw-r--r--pkgs/development/tools/kube-linter/default.nix6
-rw-r--r--pkgs/development/tools/kubedock/default.nix4
-rw-r--r--pkgs/development/tools/language-servers/beancount-language-server/default.nix12
-rw-r--r--pkgs/development/tools/language-servers/csharp-ls/default.nix10
-rw-r--r--pkgs/development/tools/language-servers/helm-ls/default.nix4
-rw-r--r--pkgs/development/tools/language-servers/jdt-language-server/default.nix102
-rw-r--r--pkgs/development/tools/language-servers/jq-lsp/default.nix21
-rw-r--r--pkgs/development/tools/language-servers/neocmakelsp/default.nix6
-rw-r--r--pkgs/development/tools/language-servers/nixd/default.nix6
-rw-r--r--pkgs/development/tools/language-servers/ruff-lsp/default.nix4
-rw-r--r--pkgs/development/tools/language-servers/verible/default.nix16
-rw-r--r--pkgs/development/tools/language-servers/verible/remove-unused-deps.patch22
-rw-r--r--pkgs/development/tools/melange/default.nix6
-rw-r--r--pkgs/development/tools/metal-cli/default.nix6
-rw-r--r--pkgs/development/tools/micronaut/default.nix4
-rw-r--r--pkgs/development/tools/minizinc/ide.nix26
-rw-r--r--pkgs/development/tools/misc/act/default.nix6
-rw-r--r--pkgs/development/tools/misc/autoconf/2.71.nix69
-rw-r--r--pkgs/development/tools/misc/autoconf/default.nix9
-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/circleci-cli/default.nix4
-rw-r--r--pkgs/development/tools/misc/d-spy/default.nix1
-rw-r--r--pkgs/development/tools/misc/dart-sass/default.nix64
-rw-r--r--pkgs/development/tools/misc/dart-sass/pubspec.lock.json82
-rwxr-xr-xpkgs/development/tools/misc/dart-sass/update.sh45
-rw-r--r--pkgs/development/tools/misc/devspace/default.nix4
-rw-r--r--pkgs/development/tools/misc/edb/default.nix10
-rw-r--r--pkgs/development/tools/misc/editorconfig-checker/default.nix6
-rw-r--r--pkgs/development/tools/misc/fzf-make/default.nix6
-rw-r--r--pkgs/development/tools/misc/gdbgui/default.nix4
-rw-r--r--pkgs/development/tools/misc/hydra/unstable.nix12
-rw-r--r--pkgs/development/tools/misc/kool/default.nix6
-rw-r--r--pkgs/development/tools/misc/lttng-ust/default.nix4
-rw-r--r--pkgs/development/tools/misc/n98-magerun2/default.nix4
-rw-r--r--pkgs/development/tools/misc/opengrok/default.nix4
-rw-r--r--pkgs/development/tools/misc/patchelf/0.13.nix23
-rw-r--r--pkgs/development/tools/misc/reviewdog/default.nix6
-rw-r--r--pkgs/development/tools/misc/rsass/default.nix6
-rw-r--r--pkgs/development/tools/misc/rsonpath/default.nix6
-rw-r--r--pkgs/development/tools/misc/runme/default.nix6
-rw-r--r--pkgs/development/tools/misc/sccache/default.nix6
-rw-r--r--pkgs/development/tools/misc/scip/default.nix4
-rw-r--r--pkgs/development/tools/misc/slint-lsp/default.nix6
-rw-r--r--pkgs/development/tools/misc/strace/default.nix8
-rw-r--r--pkgs/development/tools/misc/terraform-ls/default.nix6
-rw-r--r--pkgs/development/tools/misc/texlab/default.nix6
-rw-r--r--pkgs/development/tools/misc/usbsdmux/default.nix4
-rw-r--r--pkgs/development/tools/misc/ycmd/default.nix5
-rw-r--r--pkgs/development/tools/mix2nix/default.nix4
-rw-r--r--pkgs/development/tools/mongosh/package-lock.json2625
-rw-r--r--pkgs/development/tools/mongosh/source.json8
-rw-r--r--pkgs/development/tools/mysql-shell/default.nix8
-rw-r--r--pkgs/development/tools/mysql-shell/innovation.nix12
-rw-r--r--pkgs/development/tools/norminette/default.nix6
-rw-r--r--pkgs/development/tools/oh-my-posh/default.nix4
-rw-r--r--pkgs/development/tools/okteto/default.nix6
-rw-r--r--pkgs/development/tools/omniorb/default.nix4
-rw-r--r--pkgs/development/tools/open-policy-agent/default.nix4
-rw-r--r--pkgs/development/tools/package-project-cmake/default.nix4
-rw-r--r--pkgs/development/tools/packer/default.nix6
-rw-r--r--pkgs/development/tools/packet-sd/default.nix23
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/default.nix4
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-just.json12
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-templ.json12
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/update.nix8
-rw-r--r--pkgs/development/tools/patatt/default.nix4
-rw-r--r--pkgs/development/tools/postiats-utilities/default.nix2
-rw-r--r--pkgs/development/tools/protoc-gen-go-vtproto/default.nix6
-rw-r--r--pkgs/development/tools/protoc-gen-validate/default.nix6
-rw-r--r--pkgs/development/tools/protolint/default.nix4
-rw-r--r--pkgs/development/tools/pscale/default.nix6
-rw-r--r--pkgs/development/tools/pur/default.nix18
-rw-r--r--pkgs/development/tools/purescript/spago/default.nix3
-rw-r--r--pkgs/development/tools/pypi-mirror/default.nix4
-rw-r--r--pkgs/development/tools/quick-lint-js/build-tools-install.patch32
-rw-r--r--pkgs/development/tools/quick-lint-js/default.nix6
-rw-r--r--pkgs/development/tools/refinery-cli/default.nix6
-rw-r--r--pkgs/development/tools/refurb/default.nix4
-rw-r--r--pkgs/development/tools/reindeer/default.nix8
-rw-r--r--pkgs/development/tools/reshape/default.nix6
-rw-r--r--pkgs/development/tools/revive/default.nix8
-rw-r--r--pkgs/development/tools/rojo/default.nix12
-rw-r--r--pkgs/development/tools/rover/default.nix17
-rw-r--r--pkgs/development/tools/rover/schema/etag.id1
-rw-r--r--pkgs/development/tools/rover/schema/hash.id1
-rw-r--r--pkgs/development/tools/rover/schema/schema.graphql1980
-rwxr-xr-xpkgs/development/tools/rover/update.sh24
-rw-r--r--pkgs/development/tools/rufo/Gemfile.lock4
-rw-r--r--pkgs/development/tools/rufo/gemset.nix4
-rw-r--r--pkgs/development/tools/rust/cargo-binstall/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-bisect-rustc/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-component/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-crev/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-deb/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-deny/default.nix7
-rw-r--r--pkgs/development/tools/rust/cargo-dist/default.nix11
-rw-r--r--pkgs/development/tools/rust/cargo-fuzz/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-hack/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-license/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-llvm-cov/default.nix8
-rw-r--r--pkgs/development/tools/rust/cargo-make/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-mutants/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-semver-checks/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-show-asm/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-show-asm/test-basic-x86_64.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-tally/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-udeps/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-watch/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-workspaces/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-zigbuild/default.nix6
-rw-r--r--pkgs/development/tools/rust/duckscript/default.nix6
-rw-r--r--pkgs/development/tools/rust/maturin/default.nix6
-rw-r--r--pkgs/development/tools/rust/probe-run/default.nix6
-rw-r--r--pkgs/development/tools/rust/rtthost/default.nix33
-rw-r--r--pkgs/development/tools/rust/rust-analyzer/default.nix6
-rw-r--r--pkgs/development/tools/rye/Cargo.lock1208
-rw-r--r--pkgs/development/tools/rye/default.nix6
-rw-r--r--pkgs/development/tools/schemacrawler/default.nix4
-rw-r--r--pkgs/development/tools/sd-local/default.nix4
-rw-r--r--pkgs/development/tools/sem/default.nix4
-rw-r--r--pkgs/development/tools/semantic-release/default.nix6
-rw-r--r--pkgs/development/tools/sentry-cli/default.nix6
-rw-r--r--pkgs/development/tools/skopeo/default.nix4
-rw-r--r--pkgs/development/tools/snazy/default.nix6
-rw-r--r--pkgs/development/tools/spirv-tools/default.nix4
-rw-r--r--pkgs/development/tools/spring-boot-cli/default.nix4
-rw-r--r--pkgs/development/tools/sqlboiler/default.nix6
-rw-r--r--pkgs/development/tools/stylua/default.nix6
-rw-r--r--pkgs/development/tools/subxt/default.nix6
-rw-r--r--pkgs/development/tools/supabase-cli/default.nix6
-rw-r--r--pkgs/development/tools/symfony-cli/default.nix6
-rw-r--r--pkgs/development/tools/templ/default.nix6
-rw-r--r--pkgs/development/tools/the-way/default.nix6
-rw-r--r--pkgs/development/tools/trunk-io/default.nix4
-rw-r--r--pkgs/development/tools/trunk/default.nix6
-rw-r--r--pkgs/development/tools/ttfb/default.nix25
-rw-r--r--pkgs/development/tools/turso-cli/default.nix8
-rw-r--r--pkgs/development/tools/twilio-cli/default.nix4
-rw-r--r--pkgs/development/tools/uftrace/default.nix4
-rw-r--r--pkgs/development/tools/upbound/default.nix6
-rw-r--r--pkgs/development/tools/vsce/default.nix7
-rw-r--r--pkgs/development/tools/vulkan-validation-layers/default.nix4
-rw-r--r--pkgs/development/tools/vultr-cli/default.nix6
-rw-r--r--pkgs/development/tools/web-ext/default.nix6
-rw-r--r--pkgs/development/tools/xc/default.nix6
-rw-r--r--pkgs/development/tools/ytt/default.nix4
-rw-r--r--pkgs/development/tools/zed/default.nix6
-rw-r--r--pkgs/development/web/bootstrap-studio/default.nix4
-rw-r--r--pkgs/development/web/bun/default.nix10
-rw-r--r--pkgs/development/web/deno/default.nix6
-rw-r--r--pkgs/development/web/deno/librusty_v8.nix10
-rw-r--r--pkgs/development/web/flyctl/default.nix6
-rw-r--r--pkgs/development/web/function-runner/default.nix6
-rw-r--r--pkgs/development/web/grails/default.nix4
-rw-r--r--pkgs/development/web/minify/default.nix6
-rw-r--r--pkgs/development/web/nodejs/v20.nix4
-rw-r--r--pkgs/development/web/nodejs/v21.nix4
-rw-r--r--pkgs/development/web/protege-distribution/default.nix1
-rw-r--r--pkgs/development/web/publii/default.nix4
-rw-r--r--pkgs/games/anki/default.nix2
-rw-r--r--pkgs/games/armagetronad/default.nix6
-rw-r--r--pkgs/games/bugdom/default.nix8
-rw-r--r--pkgs/games/ckan/default.nix4
-rw-r--r--pkgs/games/ddnet/default.nix6
-rw-r--r--pkgs/games/doom-ports/doomretro/default.nix4
-rw-r--r--pkgs/games/factorio/default.nix1
-rw-r--r--pkgs/games/factorio/versions.json24
-rw-r--r--pkgs/games/ferium/default.nix6
-rw-r--r--pkgs/games/gcs/default.nix81
-rw-r--r--pkgs/games/gogdl/default.nix6
-rw-r--r--pkgs/games/heroic/default.nix4
-rw-r--r--pkgs/games/instawow/default.nix6
-rw-r--r--pkgs/games/lgames/lbreakouthd/default.nix4
-rw-r--r--pkgs/games/lzwolf/default.nix11
-rw-r--r--pkgs/games/maptool/default.nix4
-rw-r--r--pkgs/games/minesweep-rs/default.nix6
-rw-r--r--pkgs/games/mudlet/default.nix42
-rw-r--r--pkgs/games/naev/default.nix4
-rw-r--r--pkgs/games/nethack/default.nix18
-rw-r--r--pkgs/games/nile/default.nix6
-rw-r--r--pkgs/games/nxengine-evo/default.nix2
-rw-r--r--pkgs/games/openttd/nml.nix4
-rw-r--r--pkgs/games/osu-lazer/bin.nix8
-rw-r--r--pkgs/games/osu-lazer/default.nix4
-rw-r--r--pkgs/games/osu-lazer/deps.nix53
-rw-r--r--pkgs/games/path-of-building/default.nix4
-rw-r--r--pkgs/games/quakespasm/vulkan.nix4
-rw-r--r--pkgs/games/shattered-pixel-dungeon/default.nix4
-rw-r--r--pkgs/games/steam/runtime.nix4
-rw-r--r--pkgs/games/stuntrally/default.nix7
-rw-r--r--pkgs/games/ultrastardx/default.nix4
-rw-r--r--pkgs/games/unciv/default.nix12
-rw-r--r--pkgs/games/vassal/default.nix4
-rw-r--r--pkgs/games/vcmi/default.nix4
-rw-r--r--pkgs/games/vintagestory/default.nix4
-rw-r--r--pkgs/games/vvvvvv/default.nix26
-rw-r--r--pkgs/games/vvvvvv/utf8cpp.patch13
-rw-r--r--pkgs/misc/drivers/m33-linux/default.nix12
-rw-r--r--pkgs/misc/drivers/sc-controller/default.nix6
-rw-r--r--pkgs/misc/fastly/default.nix6
-rw-r--r--pkgs/misc/jitsi-meet-prosody/default.nix4
-rw-r--r--pkgs/misc/lilypond/unstable.nix4
-rw-r--r--pkgs/misc/logging/beats/7.x.nix4
-rw-r--r--pkgs/misc/rivalcfg/default.nix6
-rw-r--r--pkgs/misc/tmux-plugins/default.nix72
-rw-r--r--pkgs/misc/uboot/default.nix9
-rw-r--r--pkgs/misc/vencord/default.nix8
-rw-r--r--pkgs/misc/vencord/package-lock.json136
-rw-r--r--pkgs/os-specific/darwin/airbuddy/default.nix15
-rw-r--r--pkgs/os-specific/darwin/aldente/default.nix21
-rw-r--r--pkgs/os-specific/darwin/moltenvk/MoltenVK.xcodeproj.patch22
-rw-r--r--pkgs/os-specific/darwin/moltenvk/MoltenVKShaderConverter.xcodeproj.patch2
-rw-r--r--pkgs/os-specific/darwin/moltenvk/default.nix17
-rw-r--r--pkgs/os-specific/darwin/raycast/default.nix4
-rw-r--r--pkgs/os-specific/darwin/sketchybar/default.nix4
-rw-r--r--pkgs/os-specific/darwin/yabai/default.nix6
-rw-r--r--pkgs/os-specific/linux/android-udev-rules/default.nix4
-rw-r--r--pkgs/os-specific/linux/apfs/default.nix4
-rw-r--r--pkgs/os-specific/linux/bluez/default.nix164
-rw-r--r--pkgs/os-specific/linux/bpftrace/default.nix4
-rw-r--r--pkgs/os-specific/linux/evdi/default.nix8
-rw-r--r--pkgs/os-specific/linux/eventstat/default.nix4
-rw-r--r--pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix2
-rw-r--r--pkgs/os-specific/linux/firmware/sof-firmware/default.nix12
-rw-r--r--pkgs/os-specific/linux/fwts/default.nix4
-rw-r--r--pkgs/os-specific/linux/health-check/default.nix4
-rw-r--r--pkgs/os-specific/linux/hwdata/default.nix4
-rw-r--r--pkgs/os-specific/linux/intel-compute-runtime/default.nix4
-rw-r--r--pkgs/os-specific/linux/iotop-c/default.nix1
-rw-r--r--pkgs/os-specific/linux/iotop/default.nix1
-rw-r--r--pkgs/os-specific/linux/kernel/common-config.nix46
-rw-r--r--pkgs/os-specific/linux/kernel/generic.nix17
-rw-r--r--pkgs/os-specific/linux/kernel/hardened/config.nix39
-rw-r--r--pkgs/os-specific/linux/kernel/hardened/patches.json70
-rw-r--r--pkgs/os-specific/linux/kernel/kernels-org.json32
-rw-r--r--pkgs/os-specific/linux/kernel/linux-libre.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rt-6.1.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/manual-config.nix43
-rw-r--r--pkgs/os-specific/linux/kernel/patches.nix14
-rw-r--r--pkgs/os-specific/linux/kernel/rust-1.75.patch373
-rw-r--r--pkgs/os-specific/linux/kernel/xanmod-kernels.nix8
-rw-r--r--pkgs/os-specific/linux/kernel/zen-kernels.nix12
-rw-r--r--pkgs/os-specific/linux/libbpf/default.nix7
-rw-r--r--pkgs/os-specific/linux/libcap-ng/default.nix4
-rw-r--r--pkgs/os-specific/linux/libnl-tiny/default.nix6
-rw-r--r--pkgs/os-specific/linux/linuxptp/default.nix5
-rw-r--r--pkgs/os-specific/linux/lvm2/2_03.nix4
-rw-r--r--pkgs/os-specific/linux/lvm2/common.nix4
-rw-r--r--pkgs/os-specific/linux/lvm2/fix-static.patch28
-rw-r--r--pkgs/os-specific/linux/lvm2/no-shared.patch46
-rw-r--r--pkgs/os-specific/linux/lxc/default.nix10
-rw-r--r--pkgs/os-specific/linux/lxc/docbook-hack.patch21
-rw-r--r--pkgs/os-specific/linux/lxc/support-db2x.patch16
-rw-r--r--pkgs/os-specific/linux/nixos-rebuild/default.nix4
-rwxr-xr-xpkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh9
-rw-r--r--pkgs/os-specific/linux/nixos-rebuild/test/repl.nix146
-rw-r--r--pkgs/os-specific/linux/nsncd/default.nix19
-rwxr-xr-xpkgs/os-specific/linux/nvidia-x11/builder.sh8
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/default.nix62
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/generic.nix6
-rw-r--r--pkgs/os-specific/linux/pam/default.nix17
-rw-r--r--pkgs/os-specific/linux/pcm/default.nix4
-rw-r--r--pkgs/os-specific/linux/power-calibrate/default.nix4
-rw-r--r--pkgs/os-specific/linux/rdma-core/default.nix4
-rw-r--r--pkgs/os-specific/linux/rtl8812au/default.nix6
-rw-r--r--pkgs/os-specific/linux/rtl88x2bu/default.nix6
-rw-r--r--pkgs/os-specific/linux/rust-out-of-tree-module/default.nix28
-rw-r--r--pkgs/os-specific/linux/sasutils/default.nix4
-rw-r--r--pkgs/os-specific/linux/setools/default.nix6
-rw-r--r--pkgs/os-specific/linux/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch4
-rw-r--r--pkgs/os-specific/linux/systemd/0002-Don-t-try-to-unmount-nix-or-nix-store.patch6
-rw-r--r--pkgs/os-specific/linux/systemd/0003-Fix-NixOS-containers.patch6
-rw-r--r--pkgs/os-specific/linux/systemd/0004-Add-some-NixOS-specific-unit-directories.patch27
-rw-r--r--pkgs/os-specific/linux/systemd/0005-Get-rid-of-a-useless-message-in-user-sessions.patch4
-rw-r--r--pkgs/os-specific/linux/systemd/0006-hostnamed-localed-timedated-disable-methods-that-cha.patch12
-rw-r--r--pkgs/os-specific/linux/systemd/0007-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch (renamed from pkgs/os-specific/linux/systemd/0008-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch)26
-rw-r--r--pkgs/os-specific/linux/systemd/0007-Fix-hwdb-paths.patch24
-rw-r--r--pkgs/os-specific/linux/systemd/0008-localectl-use-etc-X11-xkb-for-list-x11.patch (renamed from pkgs/os-specific/linux/systemd/0009-localectl-use-etc-X11-xkb-for-list-x11.patch)2
-rw-r--r--pkgs/os-specific/linux/systemd/0009-add-rootprefix-to-lookup-dir-paths.patch (renamed from pkgs/os-specific/linux/systemd/0011-add-rootprefix-to-lookup-dir-paths.patch)16
-rw-r--r--pkgs/os-specific/linux/systemd/0010-build-don-t-create-statedir-and-don-t-touch-prefixdi.patch23
-rw-r--r--pkgs/os-specific/linux/systemd/0010-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch (renamed from pkgs/os-specific/linux/systemd/0012-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch)4
-rw-r--r--pkgs/os-specific/linux/systemd/0011-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch (renamed from pkgs/os-specific/linux/systemd/0013-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch)4
-rw-r--r--pkgs/os-specific/linux/systemd/0012-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch (renamed from pkgs/os-specific/linux/systemd/0014-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch)20
-rw-r--r--pkgs/os-specific/linux/systemd/0013-inherit-systemd-environment-when-calling-generators.patch (renamed from pkgs/os-specific/linux/systemd/0016-inherit-systemd-environment-when-calling-generators.patch)4
-rw-r--r--pkgs/os-specific/linux/systemd/0014-core-don-t-taint-on-unmerged-usr.patch (renamed from pkgs/os-specific/linux/systemd/0017-core-don-t-taint-on-unmerged-usr.patch)15
-rw-r--r--pkgs/os-specific/linux/systemd/0015-pkg-config-derive-prefix-from-prefix.patch30
-rw-r--r--pkgs/os-specific/linux/systemd/0015-tpm2_context_init-fix-driver-name-checking.patch (renamed from pkgs/os-specific/linux/systemd/0018-tpm2_context_init-fix-driver-name-checking.patch)6
-rw-r--r--pkgs/os-specific/linux/systemd/0016-systemctl-edit-suggest-systemdctl-edit-runtime-on-sy.patch (renamed from pkgs/os-specific/linux/systemd/0019-systemctl-edit-suggest-systemdctl-edit-runtime-on-sy.patch)4
-rw-r--r--pkgs/os-specific/linux/systemd/0017-meson.build-do-not-create-systemdstatedir.patch21
-rw-r--r--pkgs/os-specific/linux/systemd/0018-timesyncd-disable-NSCD-when-DNSSEC-validation-is-dis.patch (renamed from pkgs/os-specific/linux/systemd/0020-timesyncd-disable-NSCD-when-DNSSEC-validation-is-dis.patch)0
-rw-r--r--pkgs/os-specific/linux/systemd/default.nix376
-rw-r--r--pkgs/os-specific/linux/tailor-gui/default.nix4
-rw-r--r--pkgs/os-specific/linux/tuxedo-rs/default.nix28
-rw-r--r--pkgs/os-specific/linux/uhk-agent/default.nix8
-rw-r--r--pkgs/os-specific/linux/zfs/unstable.nix9
-rw-r--r--pkgs/os-specific/windows/default.nix3
-rw-r--r--pkgs/os-specific/windows/mingw-w64/default.nix19
-rw-r--r--pkgs/servers/amqp/rabbitmq-server/default.nix4
-rw-r--r--pkgs/servers/apache-airflow/python-package.nix2
-rw-r--r--pkgs/servers/atlassian/jira.nix4
-rw-r--r--pkgs/servers/baserow/default.nix4
-rw-r--r--pkgs/servers/code-server/playwright.patch10
-rw-r--r--pkgs/servers/computing/slurm/default.nix13
-rw-r--r--pkgs/servers/consul/default.nix6
-rw-r--r--pkgs/servers/db-rest/default.nix15
-rw-r--r--pkgs/servers/dcnnt/default.nix4
-rw-r--r--pkgs/servers/dendrite/default.nix6
-rw-r--r--pkgs/servers/dex/default.nix19
-rw-r--r--pkgs/servers/dns/knot-dns/default.nix8
-rw-r--r--pkgs/servers/dns/knot-resolver/default.nix4
-rw-r--r--pkgs/servers/domoticz/default.nix4
-rw-r--r--pkgs/servers/elasticmq-server-bin/default.nix4
-rw-r--r--pkgs/servers/fastnetmon-advanced/default.nix4
-rw-r--r--pkgs/servers/firebird/default.nix4
-rw-r--r--pkgs/servers/geospatial/fit-trackee/default.nix11
-rw-r--r--pkgs/servers/geospatial/geoserver/default.nix4
-rw-r--r--pkgs/servers/gpsd/default.nix2
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix21
-rw-r--r--pkgs/servers/home-assistant/custom-components/default.nix2
-rw-r--r--pkgs/servers/home-assistant/custom-components/gpio/default.nix28
-rw-r--r--pkgs/servers/home-assistant/custom-lovelace-modules/light-entity-card/default.nix4
-rw-r--r--pkgs/servers/home-assistant/custom-lovelace-modules/mini-graph-card/default.nix6
-rw-r--r--pkgs/servers/home-assistant/custom-lovelace-modules/mini-media-player/default.nix6
-rw-r--r--pkgs/servers/home-assistant/custom-lovelace-modules/mushroom/default.nix6
-rw-r--r--pkgs/servers/home-assistant/default.nix35
-rw-r--r--pkgs/servers/home-assistant/stubs.nix4
-rw-r--r--pkgs/servers/home-automation/evcc/default.nix20
-rw-r--r--pkgs/servers/homepage-dashboard/default.nix4
-rw-r--r--pkgs/servers/honk/default.nix4
-rw-r--r--pkgs/servers/http/apache-modules/mod_auth_mellon/default.nix4
-rw-r--r--pkgs/servers/http/apache-modules/mod_wsgi/default.nix4
-rw-r--r--pkgs/servers/http/darkhttpd/default.nix4
-rw-r--r--pkgs/servers/http/jetty/11.x.nix4
-rw-r--r--pkgs/servers/http/jetty/12.x.nix4
-rw-r--r--pkgs/servers/http/pomerium/default.nix8
-rw-r--r--pkgs/servers/http/router/default.nix8
-rw-r--r--pkgs/servers/http/router/librusty_v8.nix10
-rw-r--r--pkgs/servers/icingaweb2/default.nix4
-rw-r--r--pkgs/servers/icingaweb2/ipl.nix4
-rw-r--r--pkgs/servers/icingaweb2/thirdparty.nix4
-rw-r--r--pkgs/servers/invidious/versions.json6
-rw-r--r--pkgs/servers/jackett/default.nix4
-rw-r--r--pkgs/servers/jicofo/default.nix4
-rw-r--r--pkgs/servers/jitsi-videobridge/default.nix4
-rw-r--r--pkgs/servers/keycloak/all-plugins.nix1
-rw-r--r--pkgs/servers/keycloak/default.nix4
-rw-r--r--pkgs/servers/keycloak/keycloak-restrict-client-auth/default.nix28
-rw-r--r--pkgs/servers/knxd/default.nix4
-rw-r--r--pkgs/servers/komga/default.nix4
-rw-r--r--pkgs/servers/limesurvey/default.nix4
-rw-r--r--pkgs/servers/maddy/default.nix6
-rw-r--r--pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix4
-rw-r--r--pkgs/servers/mail/mailman/0001-Disable-broken-test_help_output-testcase.patch36
-rw-r--r--pkgs/servers/mail/mailman/hyperkitty.nix23
-rw-r--r--pkgs/servers/mail/mailman/mailman-hyperkitty.nix3
-rw-r--r--pkgs/servers/mail/mailman/package.nix15
-rw-r--r--pkgs/servers/mail/mailman/postorius.nix10
-rw-r--r--pkgs/servers/mail/mailman/python.nix13
-rw-r--r--pkgs/servers/mail/mailman/web.nix16
-rw-r--r--pkgs/servers/mail/mailpit/default.nix8
-rw-r--r--pkgs/servers/mail/postfix/default.nix4
-rw-r--r--pkgs/servers/mail/rspamd/default.nix4
-rw-r--r--pkgs/servers/mastodon/default.nix12
-rw-r--r--pkgs/servers/mastodon/gemset.nix8
-rw-r--r--pkgs/servers/mastodon/source.nix4
-rw-r--r--pkgs/servers/matrix-synapse/default.nix6
-rw-r--r--pkgs/servers/matrix-synapse/matrix-hookshot/package.json81
-rw-r--r--pkgs/servers/matrix-synapse/matrix-hookshot/pin.json8
-rw-r--r--pkgs/servers/matrix-synapse/plugins/mjolnir-antispam.nix4
-rw-r--r--pkgs/servers/matrix-synapse/sliding-sync/default.nix4
-rw-r--r--pkgs/servers/matrix-synapse/wrapper.nix3
-rw-r--r--pkgs/servers/mautrix-discord/default.nix6
-rw-r--r--pkgs/servers/mautrix-signal/default.nix8
-rw-r--r--pkgs/servers/mediamtx/default.nix6
-rw-r--r--pkgs/servers/memcached/default.nix4
-rw-r--r--pkgs/servers/metabase/default.nix4
-rw-r--r--pkgs/servers/minio/default.nix6
-rw-r--r--pkgs/servers/misc/gobgpd/default.nix4
-rw-r--r--pkgs/servers/misc/navidrome/default.nix8
-rw-r--r--pkgs/servers/misc/virtiofsd/default.nix6
-rw-r--r--pkgs/servers/monitoring/do-agent/default.nix4
-rw-r--r--pkgs/servers/monitoring/grafana-agent/default.nix6
-rw-r--r--pkgs/servers/monitoring/grafana/default.nix119
-rwxr-xr-xpkgs/servers/monitoring/grafana/update.sh40
-rw-r--r--pkgs/servers/monitoring/icinga2/default.nix4
-rw-r--r--pkgs/servers/monitoring/loki/default.nix4
-rw-r--r--pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/domain-exporter.nix6
-rw-r--r--pkgs/servers/monitoring/prometheus/exportarr/default.nix6
-rw-r--r--pkgs/servers/monitoring/prometheus/ipmi-exporter.nix6
-rw-r--r--pkgs/servers/monitoring/prometheus/knot-exporter.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/openvpn-exporter.nix23
-rw-r--r--pkgs/servers/monitoring/prometheus/pushgateway.nix6
-rw-r--r--pkgs/servers/monitoring/prometheus/pve-exporter.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/redis-exporter.nix6
-rw-r--r--pkgs/servers/monitoring/prometheus/sql-exporter.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/unbound-exporter.nix6
-rw-r--r--pkgs/servers/monitoring/telegraf/default.nix6
-rw-r--r--pkgs/servers/monitoring/thanos/default.nix6
-rw-r--r--pkgs/servers/mpd/libmpdclient.nix30
-rw-r--r--pkgs/servers/mqtt/flashmq/default.nix4
-rw-r--r--pkgs/servers/nats-server/default.nix6
-rw-r--r--pkgs/servers/nextcloud/default.nix14
-rw-r--r--pkgs/servers/nextcloud/notify_push.nix10
-rw-r--r--pkgs/servers/nextcloud/packages/26.json66
-rw-r--r--pkgs/servers/nextcloud/packages/27.json82
-rw-r--r--pkgs/servers/nextcloud/packages/28.json82
-rw-r--r--pkgs/servers/nextcloud/packages/nextcloud-apps.json1
-rw-r--r--pkgs/servers/nominatim/default.nix1
-rw-r--r--pkgs/servers/nosql/aerospike/default.nix19
-rw-r--r--pkgs/servers/nosql/ferretdb/default.nix6
-rw-r--r--pkgs/servers/nosql/mongodb/mongodb.nix4
-rw-r--r--pkgs/servers/nosql/redis/default.nix15
-rw-r--r--pkgs/servers/nosql/victoriametrics/default.nix4
-rw-r--r--pkgs/servers/osmocom/osmo-bsc/default.nix4
-rw-r--r--pkgs/servers/osmocom/osmo-bts/default.nix4
-rw-r--r--pkgs/servers/osmocom/osmo-iuh/default.nix4
-rw-r--r--pkgs/servers/osmocom/osmo-mgw/default.nix4
-rw-r--r--pkgs/servers/osmocom/osmo-msc/default.nix4
-rw-r--r--pkgs/servers/osmocom/osmo-pcu/default.nix4
-rw-r--r--pkgs/servers/pocketbase/default.nix6
-rw-r--r--pkgs/servers/polaris/Cargo.lock1022
-rw-r--r--pkgs/servers/polaris/default.nix7
-rw-r--r--pkgs/servers/polaris/web.nix4
-rw-r--r--pkgs/servers/readarr/default.nix8
-rw-r--r--pkgs/servers/redpanda/default.nix4
-rw-r--r--pkgs/servers/roadrunner/default.nix6
-rw-r--r--pkgs/servers/roundcube/default.nix4
-rw-r--r--pkgs/servers/routinator/default.nix6
-rw-r--r--pkgs/servers/rustdesk-server/Cargo.lock6
-rw-r--r--pkgs/servers/rustdesk-server/default.nix4
-rw-r--r--pkgs/servers/sabnzbd/default.nix4
-rw-r--r--pkgs/servers/seafile-server/default.nix36
-rw-r--r--pkgs/servers/search/elasticsearch/7.x.nix8
-rw-r--r--pkgs/servers/search/elasticsearch/plugins.nix20
-rw-r--r--pkgs/servers/search/meilisearch/Cargo.lock30
-rw-r--r--pkgs/servers/search/meilisearch/default.nix7
-rw-r--r--pkgs/servers/search/qdrant/Cargo.lock4
-rw-r--r--pkgs/servers/search/qdrant/default.nix4
-rw-r--r--pkgs/servers/ser2net/default.nix4
-rw-r--r--pkgs/servers/sip/kamailio/default.nix4
-rw-r--r--pkgs/servers/snac2/default.nix4
-rw-r--r--pkgs/servers/snappymail/default.nix4
-rw-r--r--pkgs/servers/sozu/default.nix6
-rw-r--r--pkgs/servers/spicedb/default.nix6
-rw-r--r--pkgs/servers/spicedb/zed.nix6
-rw-r--r--pkgs/servers/sql/dolt/default.nix6
-rw-r--r--pkgs/servers/sql/mariadb/galera/default.nix4
-rw-r--r--pkgs/servers/sql/materialize/Cargo.lock8421
-rw-r--r--pkgs/servers/sql/materialize/default.nix97
-rw-r--r--pkgs/servers/sql/materialize/npm_deps.nix8
-rw-r--r--pkgs/servers/sql/mysql/8.0.x.nix4
-rw-r--r--pkgs/servers/sql/pgbouncer/default.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/citus.nix52
-rw-r--r--pkgs/servers/sql/postgresql/ext/lantern.nix79
-rw-r--r--pkgs/servers/sql/postgresql/ext/pgsodium.nix73
-rw-r--r--pkgs/servers/sql/postgresql/ext/pgvector.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/postgis.nix6
-rw-r--r--pkgs/servers/sql/postgresql/packages.nix6
-rw-r--r--pkgs/servers/sql/rqlite/default.nix6
-rw-r--r--pkgs/servers/tailscale/default.nix23
-rw-r--r--pkgs/servers/ttyd/default.nix4
-rw-r--r--pkgs/servers/unifi/default.nix4
-rw-r--r--pkgs/servers/unpackerr/default.nix6
-rw-r--r--pkgs/servers/uxplay/default.nix4
-rw-r--r--pkgs/servers/varnish/default.nix8
-rw-r--r--pkgs/servers/web-apps/bookstack/default.nix4
-rw-r--r--pkgs/servers/web-apps/dolibarr/default.nix2
-rw-r--r--pkgs/servers/web-apps/jitsi-meet/default.nix4
-rw-r--r--pkgs/servers/web-apps/livebook/default.nix10
-rw-r--r--pkgs/servers/web-apps/netbox/default.nix19
-rw-r--r--pkgs/servers/web-apps/netbox/fix-doc-link.patch10
-rw-r--r--pkgs/servers/web-apps/netbox/generic.nix1
-rw-r--r--pkgs/servers/web-apps/pict-rs/default.nix6
-rw-r--r--pkgs/servers/web-apps/vikunja/api.nix6
-rw-r--r--pkgs/servers/web-apps/vikunja/frontend.nix4
-rw-r--r--pkgs/servers/xmpp/prosody/default.nix6
-rw-r--r--pkgs/servers/zigbee2mqtt/default.nix11
-rw-r--r--pkgs/shells/carapace/default.nix6
-rw-r--r--pkgs/shells/hilbish/default.nix6
-rw-r--r--pkgs/shells/hishtory/default.nix4
-rw-r--r--pkgs/shells/nushell/nu_scripts/default.nix6
-rw-r--r--pkgs/shells/zsh/grml-zsh-config/default.nix4
-rw-r--r--pkgs/shells/zsh/zinit/default.nix4
-rw-r--r--pkgs/shells/zsh/zsh-forgit/default.nix4
-rw-r--r--pkgs/shells/zsh/zsh-fzf-tab/default.nix14
-rw-r--r--pkgs/shells/zsh/zsh-powerlevel10k/default.nix4
-rw-r--r--pkgs/shells/zsh/zsh-prezto/default.nix6
-rw-r--r--pkgs/stdenv/darwin/bootstrap-files/aarch64-apple-darwin.nix12
-rw-r--r--pkgs/stdenv/darwin/bootstrap-files/x86_64-apple-darwin.nix12
-rw-r--r--pkgs/stdenv/darwin/default.nix28
-rw-r--r--pkgs/stdenv/generic/setup.sh27
-rw-r--r--pkgs/stdenv/linux/bootstrap-files/aarch64-unknown-linux-musl.nix22
-rw-r--r--pkgs/stdenv/linux/bootstrap-files/riscv64-unknown-linux-gnu.nix22
-rw-r--r--pkgs/test/buildFHSEnv/default.nix84
-rw-r--r--pkgs/test/cross/default.nix2
-rw-r--r--pkgs/test/default.nix10
-rw-r--r--pkgs/test/nixpkgs-check-by-name/scripts/pinned-tool.json4
-rw-r--r--pkgs/test/nixpkgs-check-by-name/src/eval.rs49
-rw-r--r--pkgs/test/nixpkgs-check-by-name/src/ratchet.rs99
-rw-r--r--pkgs/test/nixpkgs-check-by-name/tests/manual-definition/all-packages.nix10
-rw-r--r--pkgs/test/nixpkgs-check-by-name/tests/manual-definition/base/all-packages.nix9
-rw-r--r--pkgs/test/nixpkgs-check-by-name/tests/manual-definition/base/default.nix1
-rw-r--r--pkgs/test/nixpkgs-check-by-name/tests/manual-definition/base/pkgs/by-name/README.md0
-rw-r--r--pkgs/test/nixpkgs-check-by-name/tests/manual-definition/base/some-pkg.nix (renamed from pkgs/test/nixpkgs-check-by-name/tests/no-eval/pkgs/by-name/fo/foo/package.nix)0
-rw-r--r--pkgs/test/nixpkgs-check-by-name/tests/manual-definition/default.nix1
-rw-r--r--pkgs/test/nixpkgs-check-by-name/tests/manual-definition/expected2
-rw-r--r--pkgs/test/nixpkgs-check-by-name/tests/manual-definition/pkgs/by-name/no/noEval/package.nix1
-rw-r--r--pkgs/test/nixpkgs-check-by-name/tests/manual-definition/pkgs/by-name/on/onlyMove/package.nix1
-rw-r--r--pkgs/test/nixpkgs-check-by-name/tests/no-eval/all-packages.nix2
-rw-r--r--pkgs/test/nixpkgs-check-by-name/tests/no-eval/base/all-packages.nix3
-rw-r--r--pkgs/test/nixpkgs-check-by-name/tests/no-eval/base/default.nix1
-rw-r--r--pkgs/test/nixpkgs-check-by-name/tests/no-eval/base/pkgs/by-name/README.md0
-rw-r--r--pkgs/test/nixpkgs-check-by-name/tests/no-eval/pkgs/by-name/README.md0
-rw-r--r--pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg/base/pkgs/by-name/README.md1
-rw-r--r--pkgs/test/texlive/default.nix36
-rw-r--r--pkgs/tools/X11/ffcast/default.nix4
-rw-r--r--pkgs/tools/X11/screen-message/default.nix12
-rw-r--r--pkgs/tools/admin/afterburn/default.nix6
-rw-r--r--pkgs/tools/admin/aliyun-cli/default.nix6
-rw-r--r--pkgs/tools/admin/ansible/lint.nix4
-rw-r--r--pkgs/tools/admin/aws-sso-creds/default.nix6
-rw-r--r--pkgs/tools/admin/awscli2/default.nix4
-rw-r--r--pkgs/tools/admin/azure-cli/python-packages.nix2
-rw-r--r--pkgs/tools/admin/balena-cli/default.nix6
-rw-r--r--pkgs/tools/admin/cjdns-tools/default.nix2
-rw-r--r--pkgs/tools/admin/copilot-cli/default.nix6
-rw-r--r--pkgs/tools/admin/credhub-cli/default.nix4
-rw-r--r--pkgs/tools/admin/fits-cloudctl/default.nix4
-rw-r--r--pkgs/tools/admin/gam/default.nix4
-rw-r--r--pkgs/tools/admin/granted/default.nix6
-rw-r--r--pkgs/tools/admin/manta/default.nix7
-rw-r--r--pkgs/tools/admin/meshcentral/default.nix10
-rw-r--r--pkgs/tools/admin/meshcentral/package.json143
-rwxr-xr-xpkgs/tools/admin/meshcentral/update.sh2
-rw-r--r--pkgs/tools/admin/meshcentral/yarn.lock3556
-rw-r--r--pkgs/tools/admin/okta-aws-cli/default.nix6
-rw-r--r--pkgs/tools/admin/qovery-cli/default.nix4
-rw-r--r--pkgs/tools/admin/salt/default.nix4
-rw-r--r--pkgs/tools/admin/simplotask/default.nix4
-rw-r--r--pkgs/tools/admin/stripe-cli/default.nix4
-rw-r--r--pkgs/tools/admin/syft/default.nix6
-rw-r--r--pkgs/tools/admin/trivy/default.nix6
-rw-r--r--pkgs/tools/admin/wander/default.nix4
-rw-r--r--pkgs/tools/archivers/xarchiver/default.nix4
-rw-r--r--pkgs/tools/audio/abcmidi/default.nix4
-rw-r--r--pkgs/tools/audio/asap/default.nix4
-rw-r--r--pkgs/tools/audio/audiowaveform/default.nix4
-rw-r--r--pkgs/tools/audio/beets/builtin-plugins.nix14
-rw-r--r--pkgs/tools/audio/beets/common.nix16
-rw-r--r--pkgs/tools/audio/beets/default.nix2
-rw-r--r--pkgs/tools/audio/kaldi/default.nix6
-rw-r--r--pkgs/tools/audio/patray/default.nix4
-rw-r--r--pkgs/tools/audio/tts/default.nix2
-rw-r--r--pkgs/tools/audio/video2midi/default.nix6
-rw-r--r--pkgs/tools/backup/gphotos-sync/default.nix22
-rw-r--r--pkgs/tools/backup/gyb/default.nix4
-rw-r--r--pkgs/tools/backup/monolith/default.nix9
-rw-r--r--pkgs/tools/backup/pgbackrest/default.nix4
-rw-r--r--pkgs/tools/backup/sigtop/default.nix6
-rw-r--r--pkgs/tools/backup/tarsnapper/default.nix35
-rw-r--r--pkgs/tools/backup/tarsnapper/remove-argparse.patch10
-rw-r--r--pkgs/tools/backup/zfs-autobackup/default.nix4
-rw-r--r--pkgs/tools/backup/zfs-replicate/default.nix4
-rw-r--r--pkgs/tools/compression/lziprecover/default.nix4
-rw-r--r--pkgs/tools/filesystems/apfs-fuse/default.nix10
-rw-r--r--pkgs/tools/filesystems/bashmount/default.nix1
-rw-r--r--pkgs/tools/filesystems/bcachefs-tools/default.nix18
-rw-r--r--pkgs/tools/filesystems/btrfs-progs/default.nix4
-rw-r--r--pkgs/tools/filesystems/ceph/default.nix65
-rw-r--r--pkgs/tools/filesystems/ceph/python-cryptography-Cherry-pick-fix-for-CVE-2023-49083-on-cryptography-40.patch44
-rw-r--r--pkgs/tools/filesystems/convoy/default.nix26
-rw-r--r--pkgs/tools/filesystems/garage/default.nix39
-rw-r--r--pkgs/tools/filesystems/gcsfuse/default.nix4
-rw-r--r--pkgs/tools/filesystems/genimage/default.nix4
-rw-r--r--pkgs/tools/filesystems/mergerfs/default.nix4
-rw-r--r--pkgs/tools/filesystems/rmfuse/default.nix14
-rw-r--r--pkgs/tools/filesystems/snapraid/default.nix4
-rw-r--r--pkgs/tools/filesystems/ssdfs-utils/default.nix6
-rw-r--r--pkgs/tools/filesystems/stratis-cli/default.nix6
-rw-r--r--pkgs/tools/filesystems/stratisd/Cargo.lock65
-rw-r--r--pkgs/tools/filesystems/stratisd/default.nix17
-rw-r--r--pkgs/tools/games/er-patcher/default.nix4
-rw-r--r--pkgs/tools/games/minecraft/mcaselector/default.nix4
-rw-r--r--pkgs/tools/graphics/gfxreconstruct/default.nix4
-rw-r--r--pkgs/tools/graphics/lsix/default.nix12
-rw-r--r--pkgs/tools/graphics/maskromtool/default.nix4
-rw-r--r--pkgs/tools/graphics/resvg/default.nix7
-rw-r--r--pkgs/tools/graphics/spirv-cross/default.nix4
-rw-r--r--pkgs/tools/graphics/textplots/default.nix6
-rw-r--r--pkgs/tools/graphics/timg/default.nix10
-rw-r--r--pkgs/tools/graphics/vips/default.nix4
-rw-r--r--pkgs/tools/graphics/vulkan-caps-viewer/default.nix4
-rw-r--r--pkgs/tools/graphics/vulkan-extension-layer/default.nix4
-rw-r--r--pkgs/tools/graphics/vulkan-tools-lunarg/default.nix4
-rw-r--r--pkgs/tools/graphics/vulkan-tools/default.nix17
-rw-r--r--pkgs/tools/inputmethods/fcitx5/default.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix4
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-libpinyin/default.nix4
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix111
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix4
-rw-r--r--pkgs/tools/inputmethods/interception-tools/dual-function-keys.nix4
-rw-r--r--pkgs/tools/inputmethods/m17n-lib/default.nix4
-rw-r--r--pkgs/tools/inputmethods/remote-touchpad/default.nix6
-rw-r--r--pkgs/tools/misc/asdf-vm/default.nix4
-rw-r--r--pkgs/tools/misc/audible-cli/default.nix4
-rw-r--r--pkgs/tools/misc/barman/default.nix4
-rw-r--r--pkgs/tools/misc/birdfont/xmlbird.nix4
-rw-r--r--pkgs/tools/misc/bkt/default.nix6
-rw-r--r--pkgs/tools/misc/bonk/default.nix6
-rw-r--r--pkgs/tools/misc/bonsai/default.nix66
-rw-r--r--pkgs/tools/misc/btrfs-assistant/default.nix4
-rw-r--r--pkgs/tools/misc/chafa/default.nix4
-rw-r--r--pkgs/tools/misc/chatgpt-cli/default.nix12
-rw-r--r--pkgs/tools/misc/chezmoi/default.nix6
-rw-r--r--pkgs/tools/misc/colord/default.nix4
-rw-r--r--pkgs/tools/misc/copier/default.nix6
-rw-r--r--pkgs/tools/misc/coreutils/default.nix2
-rw-r--r--pkgs/tools/misc/cyberchef/default.nix4
-rw-r--r--pkgs/tools/misc/dateutils/default.nix4
-rw-r--r--pkgs/tools/misc/ddcutil/default.nix4
-rw-r--r--pkgs/tools/misc/debian-devscripts/default.nix2
-rw-r--r--pkgs/tools/misc/diffoscope/default.nix15
-rw-r--r--pkgs/tools/misc/doitlive/default.nix10
-rw-r--r--pkgs/tools/misc/dooit/default.nix4
-rw-r--r--pkgs/tools/misc/edir/default.nix4
-rw-r--r--pkgs/tools/misc/esphome/default.nix19
-rw-r--r--pkgs/tools/misc/esptool/default.nix5
-rw-r--r--pkgs/tools/misc/fastfetch/default.nix4
-rw-r--r--pkgs/tools/misc/fedifetcher/default.nix4
-rw-r--r--pkgs/tools/misc/fluent-bit/default.nix4
-rw-r--r--pkgs/tools/misc/fpart/default.nix4
-rw-r--r--pkgs/tools/misc/fuc/default.nix6
-rw-r--r--pkgs/tools/misc/fzf/default.nix6
-rw-r--r--pkgs/tools/misc/gh-dash/default.nix6
-rw-r--r--pkgs/tools/misc/gigalixir/default.nix4
-rw-r--r--pkgs/tools/misc/github-backup/default.nix4
-rw-r--r--pkgs/tools/misc/github-copilot-cli/default.nix6
-rw-r--r--pkgs/tools/misc/github-copilot-cli/package-lock.json1024
-rw-r--r--pkgs/tools/misc/gotify-desktop/default.nix6
-rw-r--r--pkgs/tools/misc/grizzly/default.nix6
-rw-r--r--pkgs/tools/misc/instaloader/default.nix4
-rw-r--r--pkgs/tools/misc/ipxe/default.nix6
-rw-r--r--pkgs/tools/misc/jfrog-cli/default.nix6
-rw-r--r--pkgs/tools/misc/lavat/default.nix4
-rw-r--r--pkgs/tools/misc/logstash/7.x.nix12
-rw-r--r--pkgs/tools/misc/mbuffer/default.nix4
-rw-r--r--pkgs/tools/misc/miniserve/default.nix9
-rw-r--r--pkgs/tools/misc/mise/default.nix6
-rw-r--r--pkgs/tools/misc/moar/default.nix4
-rw-r--r--pkgs/tools/misc/most/default.nix9
-rw-r--r--pkgs/tools/misc/most/parallel-make.patch18
-rw-r--r--pkgs/tools/misc/mpremote/default.nix6
-rw-r--r--pkgs/tools/misc/mutagen-compose/default.nix6
-rw-r--r--pkgs/tools/misc/nautilus-open-any-terminal/default.nix8
-rw-r--r--pkgs/tools/misc/nautilus-open-any-terminal/hardcode-gsettings.patch22
-rw-r--r--pkgs/tools/misc/nb/default.nix4
-rw-r--r--pkgs/tools/misc/opentelemetry-collector/default.nix6
-rw-r--r--pkgs/tools/misc/panoply/default.nix4
-rw-r--r--pkgs/tools/misc/parallel/default.nix4
-rw-r--r--pkgs/tools/misc/phrase-cli/default.nix6
-rw-r--r--pkgs/tools/misc/plantuml/default.nix4
-rw-r--r--pkgs/tools/misc/plantuml/plantuml-c4.nix8
-rw-r--r--pkgs/tools/misc/plocate/default.nix4
-rw-r--r--pkgs/tools/misc/pre-commit/default.nix1
-rw-r--r--pkgs/tools/misc/pre-commit/pygrep-pythonpath.patch13
-rw-r--r--pkgs/tools/misc/qt5ct/default.nix2
-rw-r--r--pkgs/tools/misc/rauc/default.nix4
-rw-r--r--pkgs/tools/misc/ripdrag/default.nix6
-rw-r--r--pkgs/tools/misc/rpi-imager/default.nix4
-rw-r--r--pkgs/tools/misc/rrdtool/default.nix31
-rw-r--r--pkgs/tools/misc/sacad/default.nix4
-rw-r--r--pkgs/tools/misc/shim/default.nix4
-rw-r--r--pkgs/tools/misc/star-history/default.nix6
-rw-r--r--pkgs/tools/misc/steampipe/default.nix4
-rw-r--r--pkgs/tools/misc/tailspin/default.nix6
-rw-r--r--pkgs/tools/misc/tbls/default.nix6
-rw-r--r--pkgs/tools/misc/topgrade/default.nix6
-rw-r--r--pkgs/tools/misc/trillian/default.nix6
-rw-r--r--pkgs/tools/misc/turbo/default.nix29
-rw-r--r--pkgs/tools/misc/twm/default.nix6
-rw-r--r--pkgs/tools/misc/tz/default.nix4
-rw-r--r--pkgs/tools/misc/vrc-get/Cargo.lock1746
-rw-r--r--pkgs/tools/misc/vrc-get/default.nix15
-rw-r--r--pkgs/tools/misc/vtm/default.nix4
-rw-r--r--pkgs/tools/misc/wakapi/default.nix6
-rw-r--r--pkgs/tools/misc/wasm-tools/default.nix6
-rw-r--r--pkgs/tools/misc/watchexec/default.nix6
-rw-r--r--pkgs/tools/misc/xcp/default.nix6
-rw-r--r--pkgs/tools/misc/xilinx-bootgen/default.nix4
-rw-r--r--pkgs/tools/misc/xq/default.nix6
-rw-r--r--pkgs/tools/misc/ytcast/default.nix4
-rw-r--r--pkgs/tools/misc/yubico-piv-tool/default.nix4
-rw-r--r--pkgs/tools/misc/yubikey-manager/default.nix6
-rw-r--r--pkgs/tools/misc/yutto/default.nix4
-rw-r--r--pkgs/tools/networking/aardvark-dns/default.nix6
-rw-r--r--pkgs/tools/networking/bacnet-stack/default.nix4
-rw-r--r--pkgs/tools/networking/bandwhich/Cargo.lock684
-rw-r--r--pkgs/tools/networking/bandwhich/default.nix4
-rw-r--r--pkgs/tools/networking/curl/default.nix6
-rw-r--r--pkgs/tools/networking/dd-agent/datadog-agent.nix6
-rw-r--r--pkgs/tools/networking/ddns-go/default.nix6
-rw-r--r--pkgs/tools/networking/dnsperf/default.nix4
-rw-r--r--pkgs/tools/networking/fast-ssh/default.nix10
-rw-r--r--pkgs/tools/networking/globalping-cli/default.nix6
-rw-r--r--pkgs/tools/networking/gobgp/default.nix4
-rw-r--r--pkgs/tools/networking/godns/default.nix4
-rw-r--r--pkgs/tools/networking/goflow2/default.nix4
-rw-r--r--pkgs/tools/networking/goimapnotify/default.nix6
-rw-r--r--pkgs/tools/networking/goodhosts/default.nix6
-rw-r--r--pkgs/tools/networking/gost/default.nix15
-rw-r--r--pkgs/tools/networking/grpc_cli/default.nix4
-rw-r--r--pkgs/tools/networking/haproxy/default.nix62
-rw-r--r--pkgs/tools/networking/hblock/default.nix4
-rw-r--r--pkgs/tools/networking/hurl/default.nix6
-rw-r--r--pkgs/tools/networking/hysteria/default.nix6
-rw-r--r--pkgs/tools/networking/i2pd/default.nix4
-rw-r--r--pkgs/tools/networking/inetutils/default.nix21
-rw-r--r--pkgs/tools/networking/innernet/default.nix6
-rw-r--r--pkgs/tools/networking/juicity/default.nix10
-rw-r--r--pkgs/tools/networking/kail/default.nix6
-rw-r--r--pkgs/tools/networking/kapp/default.nix4
-rw-r--r--pkgs/tools/networking/keepalived/default.nix1
-rw-r--r--pkgs/tools/networking/libreswan/default.nix9
-rw-r--r--pkgs/tools/networking/linux-router/default.nix4
-rw-r--r--pkgs/tools/networking/lldpd/default.nix4
-rw-r--r--pkgs/tools/networking/minio-client/default.nix6
-rw-r--r--pkgs/tools/networking/miniupnpd/default.nix4
-rw-r--r--pkgs/tools/networking/mockoon/default.nix4
-rw-r--r--pkgs/tools/networking/modemmanager/default.nix4
-rw-r--r--pkgs/tools/networking/mubeng/default.nix4
-rw-r--r--pkgs/tools/networking/nbd/default.nix13
-rw-r--r--pkgs/tools/networking/netbird/default.nix7
-rw-r--r--pkgs/tools/networking/networkd-dispatcher/default.nix7
-rw-r--r--pkgs/tools/networking/networkmanager/applet/default.nix4
-rw-r--r--pkgs/tools/networking/ofono/default.nix4
-rw-r--r--pkgs/tools/networking/oha/default.nix6
-rw-r--r--pkgs/tools/networking/openapi-generator-cli/default.nix17
-rw-r--r--pkgs/tools/networking/openvpn/default.nix103
-rw-r--r--pkgs/tools/networking/pacparser/default.nix4
-rw-r--r--pkgs/tools/networking/picosnitch/default.nix4
-rw-r--r--pkgs/tools/networking/prettyping/default.nix1
-rw-r--r--pkgs/tools/networking/privoxy/default.nix10
-rw-r--r--pkgs/tools/networking/q/default.nix6
-rw-r--r--pkgs/tools/networking/qrcp/default.nix6
-rw-r--r--pkgs/tools/networking/requestly/default.nix4
-rw-r--r--pkgs/tools/networking/s3cmd/default.nix4
-rw-r--r--pkgs/tools/networking/sing-box/default.nix6
-rw-r--r--pkgs/tools/networking/sish/default.nix6
-rw-r--r--pkgs/tools/networking/ssl-proxy/default.nix4
-rw-r--r--pkgs/tools/networking/ssl-proxy/go120-compatibility.patch18
-rw-r--r--pkgs/tools/networking/swagger-codegen/default.nix4
-rw-r--r--pkgs/tools/networking/swagger-codegen3/default.nix4
-rw-r--r--pkgs/tools/networking/swaks/default.nix4
-rw-r--r--pkgs/tools/networking/telepresence2/default.nix6
-rw-r--r--pkgs/tools/networking/tinyssh/default.nix6
-rw-r--r--pkgs/tools/networking/tun2socks/default.nix2
-rw-r--r--pkgs/tools/networking/uqmi/default.nix6
-rw-r--r--pkgs/tools/networking/v2ray/default.nix2
-rw-r--r--pkgs/tools/networking/vopono/default.nix6
-rw-r--r--pkgs/tools/networking/xdp-tools/default.nix4
-rw-r--r--pkgs/tools/networking/xh/default.nix10
-rw-r--r--pkgs/tools/networking/xray/default.nix2
-rw-r--r--pkgs/tools/networking/ytcc/default.nix15
-rw-r--r--pkgs/tools/networking/zrok/default.nix8
-rw-r--r--pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/manual.py47
-rw-r--r--pkgs/tools/nix/nixos-render-docs/src/tests/test_auto_id_prefix.py92
-rw-r--r--pkgs/tools/package-management/apt-dater/default.nix6
-rw-r--r--pkgs/tools/package-management/apx/default.nix8
-rw-r--r--pkgs/tools/package-management/emplace/default.nix6
-rw-r--r--pkgs/tools/package-management/fortran-fpm/default.nix4
-rw-r--r--pkgs/tools/package-management/home-manager/default.nix6
-rw-r--r--pkgs/tools/package-management/nfpm/default.nix6
-rw-r--r--pkgs/tools/package-management/nix/common.nix2
-rw-r--r--pkgs/tools/package-management/nix/default.nix4
-rw-r--r--pkgs/tools/package-management/npm-check-updates/default.nix6
-rw-r--r--pkgs/tools/package-management/opkg/default.nix4
-rw-r--r--pkgs/tools/package-management/packagekit/default.nix11
-rw-r--r--pkgs/tools/package-management/pdm/default.nix4
-rw-r--r--pkgs/tools/security/argocd-vault-plugin/default.nix21
-rw-r--r--pkgs/tools/security/arubaotp-seed-extractor/default.nix2
-rw-r--r--pkgs/tools/security/aws-iam-authenticator/default.nix4
-rw-r--r--pkgs/tools/security/bkcrack/default.nix6
-rw-r--r--pkgs/tools/security/browserpass/default.nix3
-rw-r--r--pkgs/tools/security/cdxgen/default.nix6
-rw-r--r--pkgs/tools/security/cie-middleware-linux/default.nix10
-rw-r--r--pkgs/tools/security/cloudfox/default.nix11
-rw-r--r--pkgs/tools/security/cloudhunter/default.nix4
-rw-r--r--pkgs/tools/security/cnquery/default.nix6
-rw-r--r--pkgs/tools/security/cnspec/default.nix6
-rw-r--r--pkgs/tools/security/commix/default.nix18
-rw-r--r--pkgs/tools/security/cosign/default.nix6
-rw-r--r--pkgs/tools/security/crackmapexec/default.nix2
-rw-r--r--pkgs/tools/security/creds/default.nix6
-rw-r--r--pkgs/tools/security/crowdsec/default.nix6
-rw-r--r--pkgs/tools/security/cyclonedx-gomod/default.nix6
-rw-r--r--pkgs/tools/security/dalfox/default.nix13
-rw-r--r--pkgs/tools/security/deepsecrets/default.nix10
-rw-r--r--pkgs/tools/security/echidna/default.nix49
-rw-r--r--pkgs/tools/security/eid-mw/default.nix4
-rw-r--r--pkgs/tools/security/exploitdb/default.nix4
-rw-r--r--pkgs/tools/security/faraday-cli/default.nix10
-rw-r--r--pkgs/tools/security/frida-tools/default.nix4
-rw-r--r--pkgs/tools/security/ghauri/default.nix4
-rw-r--r--pkgs/tools/security/gitleaks/default.nix6
-rw-r--r--pkgs/tools/security/gnupg/24-revert-rfc4880bis-defaults.patch200
-rw-r--r--pkgs/tools/security/gnupg/24.nix5
-rw-r--r--pkgs/tools/security/go-dork/default.nix4
-rw-r--r--pkgs/tools/security/gotestwaf/default.nix8
-rw-r--r--pkgs/tools/security/govulncheck/default.nix6
-rw-r--r--pkgs/tools/security/gpg-tui/default.nix4
-rw-r--r--pkgs/tools/security/graphw00f/default.nix4
-rw-r--r--pkgs/tools/security/grype/default.nix6
-rw-r--r--pkgs/tools/security/hash-slinger/default.nix2
-rw-r--r--pkgs/tools/security/hfinger/default.nix6
-rw-r--r--pkgs/tools/security/httpx/default.nix6
-rw-r--r--pkgs/tools/security/isolate/default.nix4
-rw-r--r--pkgs/tools/security/keepwn/default.nix13
-rw-r--r--pkgs/tools/security/kube-bench/default.nix6
-rw-r--r--pkgs/tools/security/metasploit/Gemfile2
-rw-r--r--pkgs/tools/security/metasploit/Gemfile.lock13
-rw-r--r--pkgs/tools/security/metasploit/default.nix4
-rw-r--r--pkgs/tools/security/metasploit/gemset.nix10
-rw-r--r--pkgs/tools/security/mkp224o/default.nix4
-rw-r--r--pkgs/tools/security/naabu/default.nix11
-rw-r--r--pkgs/tools/security/netexec/default.nix164
-rw-r--r--pkgs/tools/security/nitrokey-app2/default.nix43
-rw-r--r--pkgs/tools/security/notation/default.nix7
-rw-r--r--pkgs/tools/security/nsjail/default.nix2
-rw-r--r--pkgs/tools/security/nuclei/default.nix6
-rw-r--r--pkgs/tools/security/oauth2c/default.nix6
-rw-r--r--pkgs/tools/security/osv-scanner/default.nix8
-rw-r--r--pkgs/tools/security/pass/extensions/audit/default.nix2
-rw-r--r--pkgs/tools/security/pass2csv/default.nix4
-rw-r--r--pkgs/tools/security/pgpdump/default.nix4
-rw-r--r--pkgs/tools/security/psudohash/default.nix15
-rw-r--r--pkgs/tools/security/quark-engine/default.nix6
-rw-r--r--pkgs/tools/security/rekor/default.nix6
-rw-r--r--pkgs/tools/security/slsa-verifier/default.nix1
-rw-r--r--pkgs/tools/security/sn0int/default.nix13
-rw-r--r--pkgs/tools/security/sslscan/default.nix4
-rw-r--r--pkgs/tools/security/step-ca/default.nix4
-rw-r--r--pkgs/tools/security/step-cli/default.nix6
-rw-r--r--pkgs/tools/security/step-kms-plugin/default.nix6
-rw-r--r--pkgs/tools/security/sudo/default.nix11
-rw-r--r--pkgs/tools/security/tell-me-your-secrets/default.nix3
-rw-r--r--pkgs/tools/security/tlsx/default.nix15
-rw-r--r--pkgs/tools/security/trueseeing/default.nix4
-rw-r--r--pkgs/tools/security/trufflehog/default.nix6
-rw-r--r--pkgs/tools/security/trustymail/default.nix4
-rw-r--r--pkgs/tools/security/vals/default.nix6
-rw-r--r--pkgs/tools/security/vault/default.nix6
-rw-r--r--pkgs/tools/security/vault/vault-bin.nix12
-rw-r--r--pkgs/tools/security/vaultwarden/webvault.nix7
-rw-r--r--pkgs/tools/security/volatility3/default.nix11
-rw-r--r--pkgs/tools/security/zeekscript/default.nix6
-rw-r--r--pkgs/tools/system/amdgpu_top/Cargo.lock925
-rw-r--r--pkgs/tools/system/amdgpu_top/default.nix6
-rw-r--r--pkgs/tools/system/automatic-timezoned/default.nix6
-rw-r--r--pkgs/tools/system/btop/default.nix7
-rw-r--r--pkgs/tools/system/datefudge/default.nix4
-rw-r--r--pkgs/tools/system/ddrescue/default.nix4
-rw-r--r--pkgs/tools/system/fakechroot/default.nix5
-rw-r--r--pkgs/tools/system/kanata/default.nix15
-rw-r--r--pkgs/tools/system/netdata/go.d.plugin.nix10
-rw-r--r--pkgs/tools/system/thermald/default.nix4
-rw-r--r--pkgs/tools/system/zps/default.nix4
-rw-r--r--pkgs/tools/system/zram-generator/Cargo.lock12
-rw-r--r--pkgs/tools/text/ascii/default.nix4
-rw-r--r--pkgs/tools/text/autocorrect/Cargo.lock733
-rw-r--r--pkgs/tools/text/autocorrect/default.nix8
-rw-r--r--pkgs/tools/text/comrak/default.nix6
-rw-r--r--pkgs/tools/text/crowdin-cli/default.nix4
-rw-r--r--pkgs/tools/text/diffstat/default.nix4
-rw-r--r--pkgs/tools/text/difftastic/Cargo.lock6
-rw-r--r--pkgs/tools/text/difftastic/default.nix4
-rw-r--r--pkgs/tools/text/diffutils/default.nix2
-rw-r--r--pkgs/tools/text/dos2unix/default.nix4
-rw-r--r--pkgs/tools/text/fanficfare/default.nix12
-rw-r--r--pkgs/tools/text/gawk/fix-typos-corrected-in-libharu-2.4.4.patch62
-rw-r--r--pkgs/tools/text/gawk/gawkextlib.nix20
-rw-r--r--pkgs/tools/text/groff/site.tmac21
-rw-r--r--pkgs/tools/text/markdownlint-cli/default.nix6
-rw-r--r--pkgs/tools/text/mawk/default.nix4
-rw-r--r--pkgs/tools/text/mdbook-i18n-helpers/default.nix6
-rw-r--r--pkgs/tools/text/mdbook-pagetoc/default.nix6
-rw-r--r--pkgs/tools/text/mdbook-pdf/default.nix6
-rw-r--r--pkgs/tools/text/mecab/default.nix2
-rw-r--r--pkgs/tools/text/miller/default.nix6
-rw-r--r--pkgs/tools/text/nltk_data/default.nix5
-rw-r--r--pkgs/tools/text/ov/default.nix6
-rw-r--r--pkgs/tools/text/percollate/default.nix8
-rw-r--r--pkgs/tools/text/riffdiff/default.nix6
-rw-r--r--pkgs/tools/text/rsbkb/default.nix6
-rw-r--r--pkgs/tools/text/ugrep/default.nix4
-rw-r--r--pkgs/tools/text/vale/default.nix6
-rw-r--r--pkgs/tools/text/xml/xq/default.nix6
-rw-r--r--pkgs/tools/text/yx/default.nix20
-rw-r--r--pkgs/tools/typesetting/asciidoc/default.nix4
-rw-r--r--pkgs/tools/typesetting/lout/default.nix4
-rw-r--r--pkgs/tools/typesetting/pulldown-cmark/default.nix14
-rw-r--r--pkgs/tools/typesetting/sile/default.nix4
-rw-r--r--pkgs/tools/typesetting/soupault/default.nix4
-rw-r--r--pkgs/tools/typesetting/tex/auctex/default.nix2
-rw-r--r--pkgs/tools/typesetting/tex/blahtexml/default.nix5
-rw-r--r--pkgs/tools/typesetting/tex/texlive/UPGRADING.md7
-rw-r--r--pkgs/tools/typesetting/tex/texlive/bin.nix123
-rw-r--r--pkgs/tools/typesetting/tex/texlive/build-tex-env.nix66
-rw-r--r--pkgs/tools/typesetting/tex/texlive/build-texlive-package.nix23
-rw-r--r--pkgs/tools/typesetting/tex/texlive/default.nix38
-rw-r--r--pkgs/tools/typesetting/tex/texlive/fix-implicit-int.patch22
-rw-r--r--pkgs/tools/typesetting/tex/texlive/fixed-hashes.nix1596
-rw-r--r--pkgs/tools/typesetting/tex/texlive/make-bin-containers.sh8
-rw-r--r--pkgs/tools/typesetting/tex/texlive/tlpdb-overrides.nix47
-rw-r--r--pkgs/tools/typesetting/tex/texlive/tlpdb.nix7820
-rw-r--r--pkgs/tools/video/rav1e/default.nix8
-rw-r--r--pkgs/tools/virtualization/alpine-make-vm-image/default.nix6
-rw-r--r--pkgs/tools/virtualization/cloud-init/0001-add-nixos-support.patch8
-rw-r--r--pkgs/tools/virtualization/cloud-init/default.nix4
-rw-r--r--pkgs/tools/virtualization/govc/default.nix4
-rw-r--r--pkgs/tools/virtualization/guestfs-tools/default.nix4
-rw-r--r--pkgs/tools/virtualization/mkosi/default.nix15
-rw-r--r--pkgs/tools/virtualization/xe-guest-utilities/default.nix4
-rw-r--r--pkgs/tools/wayland/hyprland-per-window-layout/default.nix6
-rw-r--r--pkgs/tools/wayland/swayr/default.nix6
-rw-r--r--pkgs/tools/wayland/way-displays/default.nix4
-rw-r--r--pkgs/tools/wayland/wl-mirror/default.nix4
-rw-r--r--pkgs/top-level/aliases.nix98
-rw-r--r--pkgs/top-level/all-packages.nix468
-rw-r--r--pkgs/top-level/coq-packages.nix2
-rw-r--r--pkgs/top-level/gnuradio-packages.nix1
-rw-r--r--pkgs/top-level/haskell-packages.nix38
-rw-r--r--pkgs/top-level/linux-kernels.nix7
-rw-r--r--pkgs/top-level/ocaml-packages.nix16
-rw-r--r--pkgs/top-level/perl-packages.nix24
-rw-r--r--pkgs/top-level/php-packages.nix5
-rw-r--r--pkgs/top-level/python-aliases.nix11
-rw-r--r--pkgs/top-level/python-packages.nix121
-rw-r--r--pkgs/top-level/qt6-packages.nix6
-rw-r--r--pkgs/top-level/release-haskell.nix6
-rw-r--r--pkgs/top-level/release.nix4
-rw-r--r--pkgs/top-level/unixtools.nix4
3523 files changed, 94237 insertions, 55665 deletions
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index d2d2bbc9ae7f..9adde04e5c76 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -20,7 +20,7 @@
 
 # Libraries
 /lib                        @infinisil
-/lib/systems                @alyssais @ericson2314 @amjoseph-nixpkgs
+/lib/systems                @alyssais @ericson2314
 /lib/generators.nix         @infinisil @Profpatsch
 /lib/cli.nix                @infinisil @Profpatsch
 /lib/debug.nix              @infinisil @Profpatsch
@@ -41,17 +41,17 @@
 /pkgs/top-level/stage.nix                        @Ericson2314
 /pkgs/top-level/splice.nix                       @Ericson2314
 /pkgs/top-level/release-cross.nix                @Ericson2314
-/pkgs/stdenv/generic                             @Ericson2314 @amjoseph-nixpkgs
+/pkgs/stdenv/generic                             @Ericson2314
 /pkgs/stdenv/generic/check-meta.nix              @Ericson2314 @piegamesde
-/pkgs/stdenv/cross                               @Ericson2314 @amjoseph-nixpkgs
-/pkgs/build-support/cc-wrapper                   @Ericson2314 @amjoseph-nixpkgs
+/pkgs/stdenv/cross                               @Ericson2314
+/pkgs/build-support/cc-wrapper                   @Ericson2314
 /pkgs/build-support/bintools-wrapper             @Ericson2314
 /pkgs/build-support/setup-hooks                  @Ericson2314
 /pkgs/build-support/setup-hooks/auto-patchelf.sh @layus
 /pkgs/build-support/setup-hooks/auto-patchelf.py @layus
 /pkgs/pkgs-lib                                   @infinisil
 ## Format generators/serializers
-/pkgs/pkgs-lib/formats/libconfig                 @ckiee
+/pkgs/pkgs-lib/formats/libconfig                 @ckiee @h7x4
 
 # pkgs/by-name
 /pkgs/test/nixpkgs-check-by-name @infinisil
@@ -84,7 +84,6 @@ nixos/modules/installer/tools/nix-fallback-paths.nix  @raitobezarius
 /nixos/README.md @infinisil
 /pkgs/README.md @infinisil
 /maintainers/README.md @infinisil
-/maintainers/* @piegamesde @Janik-Haag
 
 # User-facing development documentation
 /doc/development.md @infinisil
@@ -158,7 +157,7 @@ nixos/modules/installer/tools/nix-fallback-paths.nix  @raitobezarius
 /doc/languages-frameworks/rust.section.md @zowoq @winterqt @figsoda
 
 # C compilers
-/pkgs/development/compilers/gcc @amjoseph-nixpkgs
+/pkgs/development/compilers/gcc
 /pkgs/development/compilers/llvm @RaitoBezarius
 /pkgs/development/compilers/emscripten @raitobezarius
 /doc/languages-frameworks/emscripten.section.md @raitobezarius
@@ -326,6 +325,9 @@ pkgs/applications/version-management/forgejo @bendlas @emilylange
 /pkgs/build-support/node/fetch-npm-deps         @lilyinstarlight @winterqt
 /doc/languages-frameworks/javascript.section.md @lilyinstarlight @winterqt
 
+# environment.noXlibs option aka NoX
+/nixos/modules/config/no-x-libs.nix  @SuperSandro2000
+
 # OCaml
 /pkgs/build-support/ocaml           @ulrikstrid
 /pkgs/development/compilers/ocaml   @ulrikstrid
@@ -341,9 +343,6 @@ nixos/tests/zfs.nix                       @raitobezarius
 /pkgs/development/compilers/zig @figsoda
 /doc/hooks/zig.section.md       @figsoda
 
-# Linux Kernel
-pkgs/os-specific/linux/kernel/manual-config.nix   @amjoseph-nixpkgs
-
 # Buildbot
 nixos/modules/services/continuous-integration/buildbot @Mic92 @zowoq
 nixos/tests/buildbot.nix                               @Mic92 @zowoq
diff --git a/.github/workflows/check-by-name.yml b/.github/workflows/check-by-name.yml
index 4295c6475848..94875e67b649 100644
--- a/.github/workflows/check-by-name.yml
+++ b/.github/workflows/check-by-name.yml
@@ -8,7 +8,15 @@ name: Check pkgs/by-name
 # see pkgs/test/nixpkgs-check-by-name/scripts/README.md
 on:
   # Using pull_request_target instead of pull_request avoids having to approve first time contributors
-  pull_request_target
+  pull_request_target:
+    # This workflow depends on the base branch of the PR,
+    # but changing the base branch is not included in the default trigger events,
+    # which would be `opened`, `synchronize` or `reopened`.
+    # Instead it causes an `edited` event, so we need to add it explicitly here
+    # 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
+    types: [opened, synchronize, reopened, edited]
 
 permissions:
   # We need this permission to cancel the workflow run if there's a merge conflict
diff --git a/.github/workflows/periodic-merge-24h.yml b/.github/workflows/periodic-merge-24h.yml
index 9ce6a7c74cc1..bd7aadfbade1 100644
--- a/.github/workflows/periodic-merge-24h.yml
+++ b/.github/workflows/periodic-merge-24h.yml
@@ -35,10 +35,6 @@ jobs:
         pairs:
           - from: master
             into: haskell-updates
-          - from: release-23.05
-            into: staging-next-23.05
-          - from: staging-next-23.05
-            into: staging-23.05
           - from: release-23.11
             into: staging-next-23.11
           - from: staging-next-23.11
@@ -56,7 +52,7 @@ jobs:
           github_token: ${{ secrets.GITHUB_TOKEN }}
 
       - name: Comment on failure
-        uses: peter-evans/create-or-update-comment@23ff15729ef2fc348714a3bb66d2f655ca9066f2 # v3.1.0
+        uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
         if: ${{ failure() }}
         with:
           issue-number: 105153
diff --git a/.github/workflows/periodic-merge-6h.yml b/.github/workflows/periodic-merge-6h.yml
index f3151ead6a0f..61a489ad7156 100644
--- a/.github/workflows/periodic-merge-6h.yml
+++ b/.github/workflows/periodic-merge-6h.yml
@@ -50,7 +50,7 @@ jobs:
           github_token: ${{ secrets.GITHUB_TOKEN }}
 
       - name: Comment on failure
-        uses: peter-evans/create-or-update-comment@23ff15729ef2fc348714a3bb66d2f655ca9066f2 # v3.1.0
+        uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
         if: ${{ failure() }}
         with:
           issue-number: 105153
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 3cc123be431e..55232e9c3a54 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -378,7 +378,7 @@ The staging workflow exists to batch Hydra builds of many packages together.
 It works by directing commits that cause [mass rebuilds][mass-rebuild] to a separate `staging` branch that isn't directly built by Hydra.
 Regularly, the `staging` branch is _manually_ merged into a `staging-next` branch to be built by Hydra using the [`nixpkgs:staging-next` jobset](https://hydra.nixos.org/jobset/nixpkgs/staging-next).
 The `staging-next` branch should then only receive direct commits in order to fix Hydra builds.
-Once it is verified that there are no major regressions, it is merged into `master` using [a pull requests](https://github.com/NixOS/nixpkgs/pulls?q=head%3Astaging-next).
+Once it is verified that there are no major regressions, it is merged into `master` using [a pull request](https://github.com/NixOS/nixpkgs/pulls?q=head%3Astaging-next).
 This is done manually in order to ensure it's a good use of Hydra's computing resources.
 By keeping the `staging-next` branch separate from `staging`, this batching does not block developers from merging changes into `staging`.
 
diff --git a/doc/README.md b/doc/README.md
index 4ed9c47aee95..1e9305d040ba 100644
--- a/doc/README.md
+++ b/doc/README.md
@@ -71,6 +71,11 @@ If you **omit a link text** for a link pointing to a section, the text will be s
 
 This syntax is taken from [MyST](https://myst-parser.readthedocs.io/en/latest/using/syntax.html#targets-and-cross-referencing).
 
+
+#### HTML
+
+Inlining HTML is not allowed. Parts of the documentation gets rendered to various non-HTML formats, such as man pages in the case of NixOS manual.
+
 #### Roles
 
 If you want to link to a man page, you can use `` {manpage}`nix.conf(5)` ``. The references will turn into links when a mapping exists in [`doc/manpage-urls.json`](./manpage-urls.json).
@@ -157,6 +162,9 @@ watermelon
 
 In an effort to keep the Nixpkgs manual in a consistent style, please follow the conventions below, unless they prevent you from properly documenting something.
 In that case, please open an issue about the particular documentation convention and tag it with a "needs: documentation" label.
+When needed, each convention explain why it exists, so you can make a decision whether to follow it or not based on your particular case.
+Note that these conventions are about the **structure** of the manual (and its source files), not about the content that goes in it.
+You, as the writer of documentation, are still in charge of its content.
 
 - Put each sentence in its own line.
   This makes reviews and suggestions much easier, since GitHub's review system is based on lines.
@@ -188,26 +196,153 @@ In that case, please open an issue about the particular documentation convention
   }
   ```
 
-- Use [definition lists](#definition-lists) to document function arguments, and the attributes of such arguments. For example:
+- When showing inputs/outputs of any [REPL](https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop), such as a shell or the Nix REPL, use a format as you'd see in the REPL, while trying to visually separate inputs from outputs.
+  This means that for a shell, you should use a format like the following:
+  ```shell
+  $ nix-build -A hello '<nixpkgs>' \
+    --option require-sigs false \
+    --option trusted-substituters file:///tmp/hello-cache \
+    --option substituters file:///tmp/hello-cache
+  /nix/store/zhl06z4lrfrkw5rp0hnjjfrgsclzvxpm-hello-2.12.1
+  ```
+  Note how the input is preceded by `$` on the first line and indented on subsequent lines, and how the output is provided as you'd see on the shell.
+
+  For the Nix REPL, you should use a format like the following:
+  ```shell
+  nix-repl> builtins.attrNames { a = 1; b = 2; }
+  [ "a" "b" ]
+  ```
+  Note how the input is preceded by `nix-repl>` and the output is provided as you'd see on the Nix REPL.
+
+- When documenting functions or anything that has inputs/outputs and example usage, use nested headings to clearly separate inputs, outputs, and examples.
+  Keep examples as the last nested heading, and link to the examples wherever applicable in the documentation.
+
+  The purpose of this convention is to provide a familiar structure for navigating the manual, so any reader can expect to find content related to inputs in an "inputs" heading, examples in an "examples" heading, and so on.
+  An example:
+  ```
+  ## buildImage
+
+  Some explanation about the function here.
+  Describe a particular scenario, and point to [](#ex-dockerTools-buildImage), which is an example demonstrating it.
+
+  ### Inputs
+
+  Documentation for the inputs of `buildImage`.
+  Perhaps even point to [](#ex-dockerTools-buildImage) again when talking about something specifically linked to it.
+
+  ### Passthru outputs
+
+  Documentation for any passthru outputs of `buildImage`.
+
+  ### Examples
+
+  Note that this is the last nested heading in the `buildImage` section.
+
+  :::{.example #ex-dockerTools-buildImage}
+
+  # Using `buildImage`
+
+  Example of how to use `buildImage` goes here.
+
+  :::
+  ```
+
+- Use [definition lists](#definition-lists) to document function arguments, and the attributes of such arguments as well as their [types](https://nixos.org/manual/nix/stable/language/values).
+  For example:
 
   ```markdown
   # pkgs.coolFunction
 
   Description of what `coolFunction` does.
+
+  ## Inputs
+
   `coolFunction` expects a single argument which should be an attribute set, with the following possible attributes:
 
-  `name`
+  `name` (String)
 
   : The name of the resulting image.
 
-  `tag` _optional_
+  `tag` (String; _optional_)
 
   : Tag of the generated image.
 
-    _Default value:_ the output path's hash.
-
+    _Default:_ the output path's hash.
   ```
 
+#### Examples
+
+To define a referenceable figure use the following fencing:
+
+```markdown
+:::{.example #an-attribute-set-example}
+# An attribute set example
+
+You can add text before
+
+    ```nix
+    { a = 1; b = 2;}
+    ```
+
+and after code fencing
+:::
+```
+
+Defining examples through the `example` fencing class adds them to a "List of Examples" section after the Table of Contents.
+Though this is not shown in the rendered documentation on nixos.org.
+
+#### Figures
+
+To define a referencable figure use the following fencing:
+
+```markdown
+::: {.figure #nixos-logo}
+# NixOS Logo
+![NixOS logo](./nixos_logo.png)
+:::
+```
+
+Defining figures through the `figure` fencing class adds them to a `List  of Figures` after the `Table of Contents`.
+Though this is not shown in the rendered documentation on nixos.org.
+
+#### Footnotes
+
+To add a foonote explanation, use the following syntax:
+
+```markdown
+Sometimes it's better to add context [^context] in a footnote.
+
+[^context]: This explanation will be rendered at the end of the chapter.
+```
+
+#### Inline comments
+
+Inline comments are supported with following syntax:
+
+```markdown
+<!-- This is an inline comment -->
+```
+
+The comments will not be rendered in the rendered HTML.
+
+#### Link reference definitions
+
+Links can reference a label, for example, to make the link target reusable:
+
+```markdown
+::: {.note}
+Reference links can also be used to [shorten URLs][url-id] and keep the markdown readable.
+:::
+
+[url-id]: https://github.com/NixOS/nixpkgs/blob/19d4f7dc485f74109bd66ef74231285ff797a823/doc/README.md
+```
+
+This syntax is taken from [CommonMark](https://spec.commonmark.org/0.30/#link-reference-definitions).
+
+#### Typographic replacements
+
+Typographic replacements are enabled. Check the [list of possible replacement patterns check](https://github.com/executablebooks/markdown-it-py/blob/3613e8016ecafe21709471ee0032a90a4157c2d1/markdown_it/rules_core/replacements.py#L1-L15).
+
 ## Getting help
 
 If you need documentation-specific help or reviews, ping [@NixOS/documentation-reviewers](https://github.com/orgs/nixos/teams/documentation-reviewers) on your pull request.
diff --git a/doc/build-helpers/images/dockertools.section.md b/doc/build-helpers/images/dockertools.section.md
index e732e0472926..677b429ba3c0 100644
--- a/doc/build-helpers/images/dockertools.section.md
+++ b/doc/build-helpers/images/dockertools.section.md
@@ -676,6 +676,7 @@ If our package sets `includeStorePaths` to `false`, we'll end up with only the f
 dockerTools.streamLayeredImage {
   name = "hello";
   contents = [ hello ];
+  includeStorePaths = false;
 }
 ```
 
@@ -714,78 +715,376 @@ dockerTools.streamLayeredImage {
 ```
 :::
 
-## pullImage {#ssec-pkgs-dockerTools-fetchFromRegistry}
+[]{#ssec-pkgs-dockerTools-fetchFromRegistry}
+## pullImage {#ssec-pkgs-dockerTools-pullImage}
 
-This function is analogous to the `docker pull` command, in that it can be used to pull a Docker image from a Docker registry. By default [Docker Hub](https://hub.docker.com/) is used to pull images.
+This function is similar to the `docker pull` command, which means it can be used to pull a Docker image from a registry that implements the [Docker Registry HTTP API V2](https://distribution.github.io/distribution/spec/api/).
+By default, the `docker.io` registry is used.
 
-Its parameters are described in the example below:
+The image will be downloaded as an uncompressed Docker-compatible repository tarball, which is suitable for use with other `dockerTools` functions such as [`buildImage`](#ssec-pkgs-dockerTools-buildImage), [`buildLayeredImage`](#ssec-pkgs-dockerTools-buildLayeredImage), and [`streamLayeredImage`](#ssec-pkgs-dockerTools-streamLayeredImage).
+
+This function requires two different types of hashes/digests to be specified:
+
+- One of them is used to identify a unique image within the registry (see the documentation for the `imageDigest` attribute).
+- The other is used by Nix to ensure the contents of the output haven't changed (see the documentation for the `sha256` attribute).
+
+Both hashes are required because they must uniquely identify some content in two completely different systems (the Docker registry and the Nix store), but their values will not be the same.
+See [](#ex-dockerTools-pullImage-nixprefetchdocker) for a tool that can help gather these values.
+
+### Inputs {#ssec-pkgs-dockerTools-pullImage-inputs}
+
+`pullImage` expects a single argument with the following attributes:
+
+`imageName` (String)
+
+: Specifies the name of the image to be downloaded, as well as the registry endpoint.
+  By default, the `docker.io` registry is used.
+  To specify a different registry, prepend the endpoint to `imageName`, separated by a slash (`/`).
+  See [](#ex-dockerTools-pullImage-differentregistry) for how to do that.
+
+`imageDigest` (String)
+
+: Specifies the digest of the image to be downloaded.
+
+  :::{.tip}
+  **Why can't I specify a tag to pull from, and have to use a digest instead?**
+
+  Tags are often updated to point to different image contents.
+  The most common example is the `latest` tag, which is usually updated whenever a newer image version is available.
+
+  An image tag isn't enough to guarantee the contents of an image won't change, but a digest guarantees this.
+  Providing a digest helps ensure that you will still be able to build the same Nix code and get the same output even if newer versions of an image are released.
+  :::
+
+`sha256` (String)
+
+: The hash of the image after it is downloaded.
+  Internally, this is passed to the [`outputHash`](https://nixos.org/manual/nix/stable/language/advanced-attributes#adv-attr-outputHash) attribute of the resulting derivation.
+  This is needed to provide a guarantee to Nix that the contents of the image haven't changed, because Nix doesn't support the value in `imageDigest`.
+
+`finalImageName` (String; _optional_)
+
+: Specifies the name that will be used for the image after it has been downloaded.
+  This only applies after the image is downloaded, and is not used to identify the image to be downloaded in the registry.
+  Use `imageName` for that instead.
+
+  _Default value:_ the same value specified in `imageName`.
+
+`finalImageTag` (String; _optional_)
+
+: Specifies the tag that will be used for the image after it has been downloaded.
+  This only applies after the image is downloaded, and is not used to identify the image to be downloaded in the registry.
+
+  _Default value:_ `"latest"`.
+
+`os` (String; _optional_)
+
+: Specifies the operating system of the image to pull.
+  If specified, its value should follow the [OCI Image Configuration Specification](https://github.com/opencontainers/image-spec/blob/main/config.md#properties), which should still be compatible with Docker.
+  According to the linked specification, all possible values for `$GOOS` in [the Go docs](https://go.dev/doc/install/source#environment) should be valid, but will commonly be one of `darwin` or `linux`.
+
+  _Default value:_ `"linux"`.
+
+`arch` (String; _optional_)
+
+: Specifies the architecture of the image to pull.
+  If specified, its value should follow the [OCI Image Configuration Specification](https://github.com/opencontainers/image-spec/blob/main/config.md#properties), which should still be compatible with Docker.
+  According to the linked specification, all possible values for `$GOARCH` in [the Go docs](https://go.dev/doc/install/source#environment) should be valid, but will commonly be one of `386`, `amd64`, `arm`, or `arm64`.
+
+  _Default value:_ the same value from `pkgs.go.GOARCH`.
+
+`tlsVerify` (Boolean; _optional_)
+
+: Used to enable or disable HTTPS and TLS certificate verification when communicating with the chosen Docker registry.
+  Setting this to `false` will make `pullImage` connect to the registry through HTTP.
+
+  _Default value:_ `true`.
+
+`name` (String; _optional_)
+
+: The name used for the output in the Nix store path.
+
+  _Default value:_ a value derived from `finalImageName` and `finalImageTag`, with some symbols replaced.
+  It is recommended to treat the default as an opaque value.
+
+### Examples {#ssec-pkgs-dockerTools-pullImage-examples}
+
+::: {.example #ex-dockerTools-pullImage-niximage}
+# Pulling the nixos/nix Docker image from the default registry
+
+This example pulls the [`nixos/nix` image](https://hub.docker.com/r/nixos/nix) and saves it in the Nix store.
 
 ```nix
-pullImage {
+{ dockerTools }:
+dockerTools.pullImage {
   imageName = "nixos/nix";
-  imageDigest =
-    "sha256:473a2b527958665554806aea24d0131bacec46d23af09fef4598eeab331850fa";
+  imageDigest = "sha256:b8ea88f763f33dfda2317b55eeda3b1a4006692ee29e60ee54ccf6d07348c598";
   finalImageName = "nix";
-  finalImageTag = "2.11.1";
-  sha256 = "sha256-qvhj+Hlmviz+KEBVmsyPIzTB3QlVAFzwAY1zDPIBGxc=";
-  os = "linux";
-  arch = "x86_64";
+  finalImageTag = "2.19.3";
+  sha256 = "zRwlQs1FiKrvHPaf8vWOR/Tlp1C5eLn1d9pE4BZg3oA=";
 }
 ```
+:::
+
+::: {.example #ex-dockerTools-pullImage-differentregistry}
+# Pulling the nixos/nix Docker image from a specific registry
+
+This example pulls the [`coreos/etcd` image](https://quay.io/repository/coreos/etcd) from the `quay.io` registry.
+
+```nix
+{ dockerTools }:
+dockerTools.pullImage {
+  imageName = "quay.io/coreos/etcd";
+  imageDigest = "sha256:24a23053f29266fb2731ebea27f915bb0fb2ae1ea87d42d890fe4e44f2e27c5d";
+  finalImageName = "etcd";
+  finalImageTag = "v3.5.11";
+  sha256 = "Myw+85f2/EVRyMB3axECdmQ5eh9p1q77FWYKy8YpRWU=";
+}
+```
+:::
 
-- `imageName` specifies the name of the image to be downloaded, which can also include the registry namespace (e.g. `nixos`). This argument is required.
+::: {.example #ex-dockerTools-pullImage-nixprefetchdocker}
+# Finding the digest and hash values to use for `dockerTools.pullImage`
 
-- `imageDigest` specifies the digest of the image to be downloaded. This argument is required.
+Since [`dockerTools.pullImage`](#ssec-pkgs-dockerTools-pullImage) requires two different hashes, one can run the `nix-prefetch-docker` tool to find out the values for the hashes.
+The tool outputs some text for an attribute set which you can pass directly to `pullImage`.
 
-- `finalImageName`, if specified, this is the name of the image to be created. Note it is never used to fetch the image since we prefer to rely on the immutable digest ID. By default it's equal to `imageName`.
+```shell
+$ nix run nixpkgs#nix-prefetch-docker -- --image-name nixos/nix --image-tag 2.19.3 --arch amd64 --os linux
+(some output removed for clarity)
+Writing manifest to image destination
+-> ImageName: nixos/nix
+-> ImageDigest: sha256:498fa2d7f2b5cb3891a4edf20f3a8f8496e70865099ba72540494cd3e2942634
+-> FinalImageName: nixos/nix
+-> FinalImageTag: latest
+-> ImagePath: /nix/store/4mxy9mn6978zkvlc670g5703nijsqc95-docker-image-nixos-nix-latest.tar
+-> ImageHash: 1q6cf2pdrasa34zz0jw7pbs6lvv52rq2aibgxccbwcagwkg2qj1q
+{
+  imageName = "nixos/nix";
+  imageDigest = "sha256:498fa2d7f2b5cb3891a4edf20f3a8f8496e70865099ba72540494cd3e2942634";
+  sha256 = "1q6cf2pdrasa34zz0jw7pbs6lvv52rq2aibgxccbwcagwkg2qj1q";
+  finalImageName = "nixos/nix";
+  finalImageTag = "latest";
+}
+```
 
-- `finalImageTag`, if specified, this is the tag of the image to be created. Note it is never used to fetch the image since we prefer to rely on the immutable digest ID. By default it's `latest`.
+It is important to supply the `--arch` and `--os` arguments to `nix-prefetch-docker` to filter to a single image, in case there are multiple architectures and/or operating systems supported by the image name and tags specified.
+By default, `nix-prefetch-docker` will set `os` to `linux` and `arch` to `amd64`.
 
-- `sha256` is the checksum of the whole fetched image. This argument is required.
+Run `nix-prefetch-docker --help` for a list of all supported arguments:
+```shell
+$ nix run nixpkgs#nix-prefetch-docker -- --help
+(output removed for clarity)
+```
+:::
 
-- `os`, if specified, is the operating system of the fetched image. By default it's `linux`.
+## exportImage {#ssec-pkgs-dockerTools-exportImage}
 
-- `arch`, if specified, is the cpu architecture of the fetched image. By default it's `x86_64`.
+This function is similar to the `docker container export` command, which means it can be used to export an image's filesystem as an uncompressed tarball archive.
+The difference is that `docker container export` is applied to containers, but `dockerTools.exportImage` applies to Docker images.
+The resulting archive will not contain any image metadata (such as command to run with `docker container run`), only the filesystem contents.
 
-`nix-prefetch-docker` command can be used to get required image parameters:
+You can use this function to import an archive in Docker with `docker image import`.
+See [](#ex-dockerTools-exportImage-importingDocker) to understand how to do that.
 
-```ShellSession
-$ nix run nixpkgs#nix-prefetch-docker -- --image-name mysql --image-tag 5
+:::{.caution}
+`exportImage` works by unpacking the given image inside a VM.
+Because of this, using this function requires the `kvm` device to be available, see [`system-features`](https://nixos.org/manual/nix/stable/command-ref/conf-file.html#conf-system-features).
+:::
+
+### Inputs {#ssec-pkgs-dockerTools-exportImage-inputs}
+
+`exportImage` expects an argument with the following attributes:
+
+`fromImage` (Attribute Set or String)
+
+: The repository tarball of the image whose filesystem will be exported.
+  It must be a valid Docker image, such as one exported by `docker image save`, or another image built with the `dockerTools` utility functions.
+
+  If `name` is not specified, `fromImage` must be an Attribute Set corresponding to a derivation, i.e. it can't be a path to a tarball.
+  If `name` is specified, `fromImage` can be either an Attribute Set corresponding to a derivation or simply a path to a tarball.
+
+  See [](#ex-dockerTools-exportImage-naming) and [](#ex-dockerTools-exportImage-fromImagePath) to understand the connection between `fromImage`, `name`, and the name used for the output of `exportImage`.
+
+`fromImageName` (String or Null; _optional_)
+
+: Used to specify the image within the repository tarball in case it contains multiple images.
+  A value of `null` means that `exportImage` will use the first image available in the repository.
+
+  :::{.note}
+  This must be used with `fromImageTag`. Using only `fromImageName` without `fromImageTag` will make `exportImage` use the first image available in the repository.
+  :::
+
+  _Default value:_ `null`.
+
+`fromImageTag` (String or Null; _optional_)
+
+: Used to specify the image within the repository tarball in case it contains multiple images.
+  A value of `null` means that `exportImage` will use the first image available in the repository.
+
+  :::{.note}
+  This must be used with `fromImageName`. Using only `fromImageTag` without `fromImageName` will make `exportImage` use the first image available in the repository
+  :::
+
+  _Default value:_ `null`.
+
+`diskSize` (Number; _optional_)
+
+: Controls the disk size (in megabytes) of the VM used to unpack the image.
+
+  _Default value:_ 1024.
+
+`name` (String; _optional_)
+
+: The name used for the output in the Nix store path.
+
+  _Default value:_ the value of `fromImage.name`.
+
+### Examples {#ssec-pkgs-dockerTools-exportImage-examples}
+
+:::{.example #ex-dockerTools-exportImage-hello}
+# Exporting a Docker image with `dockerTools.exportImage`
+
+This example first builds a layered image with [`dockerTools.buildLayeredImage`](#ssec-pkgs-dockerTools-buildLayeredImage), and then exports its filesystem with `dockerTools.exportImage`.
+
+```nix
+{ dockerTools, hello }:
+dockerTools.exportImage {
+  name = "hello";
+  fromImage = dockerTools.buildLayeredImage {
+    name = "hello";
+    contents = [ hello ];
+  };
+}
 ```
 
-Since a given `imageName` may transparently refer to a manifest list of images which support multiple architectures and/or operating systems, you can supply the `--os` and `--arch` arguments to specify exactly which image you want. By default it will match the OS and architecture of the host the command is run on.
+When building the package above, we can see the layers of the Docker image being unpacked to produce the final output:
 
-```ShellSession
-$ nix-prefetch-docker --image-name mysql --image-tag 5 --arch x86_64 --os linux
+```shell
+$ nix-build
+(some output removed for clarity)
+Unpacking base image...
+From-image name or tag wasn't set. Reading the first ID.
+Unpacking layer 5731199219418f175d1580dbca05677e69144425b2d9ecb60f416cd57ca3ca42/layer.tar
+tar: Removing leading `/' from member names
+Unpacking layer e2897bf34bb78c4a65736510204282d9f7ca258ba048c183d665bd0f3d24c5ec/layer.tar
+tar: Removing leading `/' from member names
+Unpacking layer 420aa5876dca4128cd5256da7dea0948e30ef5971712f82601718cdb0a6b4cda/layer.tar
+tar: Removing leading `/' from member names
+Unpacking layer ea5f4e620e7906c8ecbc506b5e6f46420e68d4b842c3303260d5eb621b5942e5/layer.tar
+tar: Removing leading `/' from member names
+Unpacking layer 65807b9abe8ab753fa97da8fb74a21fcd4725cc51e1b679c7973c97acd47ebcf/layer.tar
+tar: Removing leading `/' from member names
+Unpacking layer b7da2076b60ebc0ea6824ef641978332b8ac908d47b2d07ff31b9cc362245605/layer.tar
+Executing post-mount steps...
+Packing raw image...
+[    1.660036] reboot: Power down
+/nix/store/x6a5m7c6zdpqz1d8j7cnzpx9glzzvd2h-hello
 ```
 
-Desired image name and tag can be set using `--final-image-name` and `--final-image-tag` arguments:
+The following command lists some of the contents of the output to verify that the structure of the archive is as expected:
 
-```ShellSession
-$ nix-prefetch-docker --image-name mysql --image-tag 5 --final-image-name eu.gcr.io/my-project/mysql --final-image-tag prod
+```shell
+$ tar --exclude '*/share/*' --exclude 'nix/store/*/*' -tvf /nix/store/x6a5m7c6zdpqz1d8j7cnzpx9glzzvd2h-hello
+drwxr-xr-x root/0            0 1979-12-31 16:00 ./
+drwxr-xr-x root/0            0 1979-12-31 16:00 ./bin/
+lrwxrwxrwx root/0            0 1979-12-31 16:00 ./bin/hello -> /nix/store/h92a9jd0lhhniv2q417hpwszd4jhys7q-hello-2.12.1/bin/hello
+dr-xr-xr-x root/0            0 1979-12-31 16:00 ./nix/
+dr-xr-xr-x root/0            0 1979-12-31 16:00 ./nix/store/
+dr-xr-xr-x root/0            0 1979-12-31 16:00 ./nix/store/05zbwhz8a7i2v79r9j21pl6m6cj0xi8k-libunistring-1.1/
+dr-xr-xr-x root/0            0 1979-12-31 16:00 ./nix/store/ayg5rhjhi9ic73hqw33mjqjxwv59ndym-xgcc-13.2.0-libgcc/
+dr-xr-xr-x root/0            0 1979-12-31 16:00 ./nix/store/h92a9jd0lhhniv2q417hpwszd4jhys7q-hello-2.12.1/
+dr-xr-xr-x root/0            0 1979-12-31 16:00 ./nix/store/m59xdgkgnjbk8kk6k6vbxmqnf82mk9s0-libidn2-2.3.4/
+dr-xr-xr-x root/0            0 1979-12-31 16:00 ./nix/store/p3jshbwxiwifm1py0yq544fmdyy98j8a-glibc-2.38-27/
+drwxr-xr-x root/0            0 1979-12-31 16:00 ./share/
 ```
+:::
 
-## exportImage {#ssec-pkgs-dockerTools-exportImage}
+:::{.example #ex-dockerTools-exportImage-importingDocker}
+# Importing an archive built with `dockerTools.exportImage` in Docker
+
+We will use the same package from [](#ex-dockerTools-exportImage-hello) and import it into Docker.
+
+```nix
+{ dockerTools, hello }:
+dockerTools.exportImage {
+  name = "hello";
+  fromImage = dockerTools.buildLayeredImage {
+    name = "hello";
+    contents = [ hello ];
+  };
+}
+```
+
+Building and importing it into Docker:
 
-This function is analogous to the `docker export` command, in that it can be used to flatten a Docker image that contains multiple layers. It is in fact the result of the merge of all the layers of the image. As such, the result is suitable for being imported in Docker with `docker import`.
+```shell
+$ nix-build
+(output removed for clarity)
+/nix/store/x6a5m7c6zdpqz1d8j7cnzpx9glzzvd2h-hello
+$ docker image import /nix/store/x6a5m7c6zdpqz1d8j7cnzpx9glzzvd2h-hello
+sha256:1d42dba415e9b298ea0decf6497fbce954de9b4fcb2984f91e307c8fedc1f52f
+$ docker image ls
+REPOSITORY                              TAG                IMAGE ID       CREATED         SIZE
+<none>                                  <none>             1d42dba415e9   4 seconds ago   32.6MB
+```
+:::
 
-> **_NOTE:_** Using this function requires the `kvm` device to be available.
+:::{.example #ex-dockerTools-exportImage-naming}
+# Exploring output naming with `dockerTools.exportImage`
 
-The parameters of `exportImage` are the following:
+`exportImage` does not require a `name` attribute if `fromImage` is a derivation, which means that the following works:
 
 ```nix
-exportImage {
-  fromImage = someLayeredImage;
-  fromImageName = null;
-  fromImageTag = null;
+{ dockerTools, hello }:
+dockerTools.exportImage {
+  fromImage = dockerTools.buildLayeredImage {
+    name = "hello";
+    contents = [ hello ];
+  };
+}
+```
+
+However, since [`dockerTools.buildLayeredImage`](#ssec-pkgs-dockerTools-buildLayeredImage)'s output ends with `.tar.gz`, the output of `exportImage` will also end with `.tar.gz`, even though the archive created with `exportImage` is uncompressed:
+
+```shell
+$ nix-build
+(output removed for clarity)
+/nix/store/by3f40xvc4l6bkis74l0fj4zsy0djgkn-hello.tar.gz
+$ file /nix/store/by3f40xvc4l6bkis74l0fj4zsy0djgkn-hello.tar.gz
+/nix/store/by3f40xvc4l6bkis74l0fj4zsy0djgkn-hello.tar.gz: POSIX tar archive (GNU)
+```
 
-  name = someLayeredImage.name;
+If the archive was actually compressed, the output of file would've mentioned that fact.
+Because of this, it may be important to set a proper `name` attribute when using `exportImage` with other functions from `dockerTools`.
+:::
+
+:::{.example #ex-dockerTools-exportImage-fromImagePath}
+# Using `dockerTools.exportImage` with a path as `fromImage`
+
+It is possible to use a path as the value of the `fromImage` attribute when calling `dockerTools.exportImage`.
+However, when doing so, a `name` attribute **MUST** be specified, or you'll encounter an error when evaluating the Nix code.
+
+For this example, we'll assume a Docker tarball image named `image.tar.gz` exists in the same directory where our package is defined:
+
+```nix
+{ dockerTools }:
+dockerTools.exportImage {
+  name = "filesystem.tar";
+  fromImage = ./image.tar.gz;
 }
 ```
 
-The parameters relative to the base image have the same synopsis as described in [buildImage](#ssec-pkgs-dockerTools-buildImage), except that `fromImage` is the only required argument in this case.
+Building this will give us the expected output:
 
-The `name` argument is the name of the derivation output, which defaults to `fromImage.name`.
+```shell
+$ nix-build
+(output removed for clarity)
+/nix/store/w13l8h3nlkg0zv56k7rj0ai0l2zlf7ss-filesystem.tar
+```
+
+If you don't specify a `name` attribute, you'll encounter an evaluation error and the package won't build.
+:::
 
 ## Environment Helpers {#ssec-pkgs-dockerTools-helpers}
 
@@ -845,6 +1144,18 @@ buildImage {
 
 Creating base files like `/etc/passwd` or `/etc/login.defs` is necessary for shadow-utils to manipulate users and groups.
 
+When using `buildLayeredImage`, you can put this in `fakeRootCommands` if you `enableFakechroot`:
+```nix
+buildLayeredImage {
+  name = "shadow-layered";
+
+  fakeRootCommands = ''
+    ${pkgs.dockerTools.shadowSetup}
+  '';
+  enableFakechroot = true;
+}
+```
+
 ## fakeNss {#ssec-pkgs-dockerTools-fakeNss}
 
 If your primary goal is providing a basic skeleton for user lookups to work,
diff --git a/doc/build-helpers/trivial-build-helpers.chapter.md b/doc/build-helpers/trivial-build-helpers.chapter.md
index 4648c7985542..384e25035060 100644
--- a/doc/build-helpers/trivial-build-helpers.chapter.md
+++ b/doc/build-helpers/trivial-build-helpers.chapter.md
@@ -502,9 +502,14 @@ concatScript "my-file" [ file1 file2 ]
 
 ## `writeShellApplication` {#trivial-builder-writeShellApplication}
 
-This can be used to easily produce a shell script that has some dependencies (`runtimeInputs`). It automatically sets the `PATH` of the script to contain all of the listed inputs, sets some sanity shellopts (`errexit`, `nounset`, `pipefail`), and checks the resulting script with [`shellcheck`](https://github.com/koalaman/shellcheck).
+`writeShellApplication` is similar to `writeShellScriptBin` and `writeScriptBin` but supports runtime dependencies with `runtimeInputs`.
+Writes an executable shell script to `/nix/store/<store path>/bin/<name>` and checks its syntax with [`shellcheck`](https://github.com/koalaman/shellcheck) and the `bash`'s `-n` option.
+Some basic Bash options are set by default (`errexit`, `nounset`, and `pipefail`), but can be overridden with `bashOptions`.
 
-For example, look at the following code:
+Extra arguments may be passed to `stdenv.mkDerivation` by setting `derivationArgs`; note that variables set in this manner will be set when the shell script is _built,_ not when it's run.
+Runtime environment variables can be set with the `runtimeEnv` argument.
+
+For example, the following shell application can refer to `curl` directly, rather than needing to write `${curl}/bin/curl`:
 
 ```nix
 writeShellApplication {
@@ -518,10 +523,6 @@ writeShellApplication {
 }
 ```
 
-Unlike with normal `writeShellScriptBin`, there is no need to manually write out `${curl}/bin/curl`, setting the PATH
-was handled by `writeShellApplication`. Moreover, the script is being checked with `shellcheck` for more strict
-validation.
-
 ## `symlinkJoin` {#trivial-builder-symlinkJoin}
 
 This can be used to put many derivations into the same directory structure. It works by creating a new derivation and adding symlinks to each of the paths listed. It expects two arguments, `name`, and `paths`. `name` is the name used in the Nix store path for the created derivation. `paths` is a list of paths that will be symlinked. These paths can be to Nix store derivations or any other subdirectory contained within.
diff --git a/doc/default.nix b/doc/default.nix
index 26aae9efa573..bcbc20b9f983 100644
--- a/doc/default.nix
+++ b/doc/default.nix
@@ -25,6 +25,7 @@ let
       { name = "gvariant"; description = "GVariant formatted string serialization functions"; }
       { name = "customisation"; description = "Functions to customise (derivation-related) functions, derivatons, or attribute sets"; }
       { name = "meta"; description = "functions for derivation metadata"; }
+      { name = "derivations"; description = "miscellaneous derivation-specific functions"; }
     ];
   };
 
diff --git a/doc/doc-support/lib-function-docs.nix b/doc/doc-support/lib-function-docs.nix
index 8592fafbbd15..5faa99b3e89e 100644
--- a/doc/doc-support/lib-function-docs.nix
+++ b/doc/doc-support/lib-function-docs.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation {
     mkdir -p "$out"
 
     cat > "$out/index.md" << 'EOF'
-    ```{=include=} sections
+    ```{=include=} sections auto-id-prefix=auto-generated
     EOF
 
     ${lib.concatMapStrings ({ name, baseName ? name, description }: ''
diff --git a/doc/hooks/postgresql-test-hook.section.md b/doc/hooks/postgresql-test-hook.section.md
index 8b37ca1e4b3e..59d7f7a644c9 100644
--- a/doc/hooks/postgresql-test-hook.section.md
+++ b/doc/hooks/postgresql-test-hook.section.md
@@ -45,6 +45,7 @@ Bash-only variables:
  - `postgresqlTestSetupCommands`: bash commands to run after database start, defaults to running `$postgresqlTestSetupSQL` as database administrator.
  - `postgresqlEnableTCP`: set to `1` to enable TCP listening. Flaky; not recommended.
  - `postgresqlStartCommands`: defaults to `pg_ctl start`.
+ - `postgresqlExtraSettings`: Additional configuration to add to `postgresql.conf`
 
 ## Hooks {#sec-postgresqlTestHook-hooks}
 
diff --git a/doc/hooks/python.section.md b/doc/hooks/python.section.md
index ecaae491e994..b7862650f167 100644
--- a/doc/hooks/python.section.md
+++ b/doc/hooks/python.section.md
@@ -1,3 +1,3 @@
 # Python {#setup-hook-python}
 
-Adds the `lib/${python.libPrefix}/site-packages` subdirectory of each build input to the `PYTHONPATH` environment variable.
+Adds the `python.sitePackages` subdirectory (i.e. `lib/pythonX.Y/site-packages`) of each build input to the `PYTHONPATH` environment variable.
diff --git a/doc/languages-frameworks/beam.section.md b/doc/languages-frameworks/beam.section.md
index 1e83d4b93c7c..992149090c63 100644
--- a/doc/languages-frameworks/beam.section.md
+++ b/doc/languages-frameworks/beam.section.md
@@ -216,7 +216,7 @@ in packages.mixRelease {
 Setup will require the following steps:
 
 - Move your secrets to runtime environment variables. For more information refer to the [runtime.exs docs](https://hexdocs.pm/mix/Mix.Tasks.Release.html#module-runtime-configuration). On a fresh Phoenix build that would mean that both `DATABASE_URL` and `SECRET_KEY` need to be moved to `runtime.exs`.
-- `cd assets` and `nix-shell -p node2nix --run node2nix --development` will generate a Nix expression containing your frontend dependencies
+- `cd assets` and `nix-shell -p node2nix --run "node2nix --development"` will generate a Nix expression containing your frontend dependencies
 - commit and push those changes
 - you can now `nix-build .`
 - To run the release, set the `RELEASE_TMP` environment variable to a directory that your program has write access to. It will be used to store the BEAM settings.
diff --git a/doc/languages-frameworks/dart.section.md b/doc/languages-frameworks/dart.section.md
index fca87fa70e4e..019765f75354 100644
--- a/doc/languages-frameworks/dart.section.md
+++ b/doc/languages-frameworks/dart.section.md
@@ -80,6 +80,8 @@ Do _not_ use `dart run <package_name>`, as this will attempt to download depende
 
 ### Usage with nix-shell {#ssec-dart-applications-nix-shell}
 
+#### Using dependencies from the Nix store {#ssec-dart-applications-nix-shell-deps}
+
 As `buildDartApplication` provides dependencies instead of `pub get`, Dart needs to be explicitly told where to find them.
 
 Run the following commands in the source directory to configure Dart appropriately.
@@ -101,7 +103,10 @@ See the [Dart documentation](#ssec-dart-applications) for more details on requir
 
 flutter.buildFlutterApplication {
   pname = "firmware-updater";
-  version = "unstable-2023-04-30";
+  version = "0-unstable-2023-04-30";
+
+  # To build for the Web, use the targetFlutterPlatform argument.
+  # targetFlutterPlatform = "web";
 
   src = fetchFromGitHub {
     owner = "canonical";
@@ -117,4 +122,15 @@ flutter.buildFlutterApplication {
 
 ### Usage with nix-shell {#ssec-dart-flutter-nix-shell}
 
-See the [Dart documentation](#ssec-dart-applications-nix-shell) for nix-shell instructions.
+Flutter-specific `nix-shell` usage notes are included here. See the [Dart documentation](#ssec-dart-applications-nix-shell) for general `nix-shell` instructions.
+
+#### Entering the shell {#ssec-dart-flutter-nix-shell-enter}
+
+By default, dependencies for only the `targetFlutterPlatform` are available in the
+build environment. This is useful for keeping closures small, but be problematic
+during development. It's common, for example, to build Web apps for Linux during
+development to take advantage of native features such as stateful hot reload.
+
+To enter a shell with all the usual target platforms available, use the `multiShell` attribute.
+
+e.g. `nix-shell '<nixpkgs>' -A fluffychat-web.multiShell`.
diff --git a/doc/languages-frameworks/dotnet.section.md b/doc/languages-frameworks/dotnet.section.md
index 978ec07cb961..ac659a9c6d28 100644
--- a/doc/languages-frameworks/dotnet.section.md
+++ b/doc/languages-frameworks/dotnet.section.md
@@ -144,7 +144,7 @@ in buildDotnetModule rec {
 
   projectReferences = [ referencedProject ]; # `referencedProject` must contain `nupkg` in the folder structure.
 
-  dotnet-sdk = dotnetCorePackages.sdk_6.0;
+  dotnet-sdk = dotnetCorePackages.sdk_6_0;
   dotnet-runtime = dotnetCorePackages.runtime_6_0;
 
   executables = [ "foo" ]; # This wraps "$out/lib/$pname/foo" to `$out/bin/foo`.
diff --git a/doc/languages-frameworks/emscripten.section.md b/doc/languages-frameworks/emscripten.section.md
index 20d358f2e9e3..9ce48db2c2de 100644
--- a/doc/languages-frameworks/emscripten.section.md
+++ b/doc/languages-frameworks/emscripten.section.md
@@ -86,9 +86,9 @@ One advantage is that when `pkgs.zlib` is updated, it will automatically update
 
   postPatch = pkgs.lib.optionalString pkgs.stdenv.isDarwin ''
     substituteInPlace configure \
-      --replace '/usr/bin/libtool' 'ar' \
-      --replace 'AR="libtool"' 'AR="ar"' \
-      --replace 'ARFLAGS="-o"' 'ARFLAGS="-r"'
+      --replace-fail '/usr/bin/libtool' 'ar' \
+      --replace-fail 'AR="libtool"' 'AR="ar"' \
+      --replace-fail 'ARFLAGS="-o"' 'ARFLAGS="-r"'
   '';
 })
 ```
diff --git a/doc/languages-frameworks/haskell.section.md b/doc/languages-frameworks/haskell.section.md
index b0b5f5c3bb2f..bec72cb3c0d3 100644
--- a/doc/languages-frameworks/haskell.section.md
+++ b/doc/languages-frameworks/haskell.section.md
@@ -70,39 +70,42 @@ compilers like this:
 ```console
 $ nix-env -f '<nixpkgs>' -qaP -A haskell.compiler
 haskell.compiler.ghc810                  ghc-8.10.7
-haskell.compiler.ghc88                   ghc-8.8.4
 haskell.compiler.ghc90                   ghc-9.0.2
-haskell.compiler.ghc924                  ghc-9.2.4
 haskell.compiler.ghc925                  ghc-9.2.5
 haskell.compiler.ghc926                  ghc-9.2.6
-haskell.compiler.ghc92                   ghc-9.2.7
-haskell.compiler.ghc942                  ghc-9.4.2
-haskell.compiler.ghc943                  ghc-9.4.3
-haskell.compiler.ghc94                   ghc-9.4.4
-haskell.compiler.ghcHEAD                 ghc-9.7.20221224
-haskell.compiler.ghc8102Binary           ghc-binary-8.10.2
-haskell.compiler.ghc8102BinaryMinimal    ghc-binary-8.10.2
-haskell.compiler.ghc8107BinaryMinimal    ghc-binary-8.10.7
+haskell.compiler.ghc927                  ghc-9.2.7
+haskell.compiler.ghc92                   ghc-9.2.8
+haskell.compiler.ghc945                  ghc-9.4.5
+haskell.compiler.ghc946                  ghc-9.4.6
+haskell.compiler.ghc947                  ghc-9.4.7
+haskell.compiler.ghc94                   ghc-9.4.8
+haskell.compiler.ghc963                  ghc-9.6.3
+haskell.compiler.ghc96                   ghc-9.6.4
+haskell.compiler.ghc98                   ghc-9.8.1
+haskell.compiler.ghcHEAD                 ghc-9.9.20231121
 haskell.compiler.ghc8107Binary           ghc-binary-8.10.7
 haskell.compiler.ghc865Binary            ghc-binary-8.6.5
 haskell.compiler.ghc924Binary            ghc-binary-9.2.4
-haskell.compiler.ghc924BinaryMinimal     ghc-binary-9.2.4
-haskell.compiler.integer-simple.ghc810   ghc-integer-simple-8.10.7
 haskell.compiler.integer-simple.ghc8107  ghc-integer-simple-8.10.7
-haskell.compiler.integer-simple.ghc88    ghc-integer-simple-8.8.4
-haskell.compiler.integer-simple.ghc884   ghc-integer-simple-8.8.4
+haskell.compiler.integer-simple.ghc810   ghc-integer-simple-8.10.7
 haskell.compiler.native-bignum.ghc90     ghc-native-bignum-9.0.2
 haskell.compiler.native-bignum.ghc902    ghc-native-bignum-9.0.2
-haskell.compiler.native-bignum.ghc924    ghc-native-bignum-9.2.4
 haskell.compiler.native-bignum.ghc925    ghc-native-bignum-9.2.5
 haskell.compiler.native-bignum.ghc926    ghc-native-bignum-9.2.6
-haskell.compiler.native-bignum.ghc92     ghc-native-bignum-9.2.7
 haskell.compiler.native-bignum.ghc927    ghc-native-bignum-9.2.7
-haskell.compiler.native-bignum.ghc942    ghc-native-bignum-9.4.2
-haskell.compiler.native-bignum.ghc943    ghc-native-bignum-9.4.3
-haskell.compiler.native-bignum.ghc94     ghc-native-bignum-9.4.4
-haskell.compiler.native-bignum.ghc944    ghc-native-bignum-9.4.4
-haskell.compiler.native-bignum.ghcHEAD   ghc-native-bignum-9.7.20221224
+haskell.compiler.native-bignum.ghc92     ghc-native-bignum-9.2.8
+haskell.compiler.native-bignum.ghc928    ghc-native-bignum-9.2.8
+haskell.compiler.native-bignum.ghc945    ghc-native-bignum-9.4.5
+haskell.compiler.native-bignum.ghc946    ghc-native-bignum-9.4.6
+haskell.compiler.native-bignum.ghc947    ghc-native-bignum-9.4.7
+haskell.compiler.native-bignum.ghc94     ghc-native-bignum-9.4.8
+haskell.compiler.native-bignum.ghc948    ghc-native-bignum-9.4.8
+haskell.compiler.native-bignum.ghc963    ghc-native-bignum-9.6.3
+haskell.compiler.native-bignum.ghc96     ghc-native-bignum-9.6.4
+haskell.compiler.native-bignum.ghc964    ghc-native-bignum-9.6.4
+haskell.compiler.native-bignum.ghc98     ghc-native-bignum-9.8.1
+haskell.compiler.native-bignum.ghc981    ghc-native-bignum-9.8.1
+haskell.compiler.native-bignum.ghcHEAD   ghc-native-bignum-9.9.20231121
 haskell.compiler.ghcjs                   ghcjs-8.10.7
 ```
 
@@ -1226,10 +1229,12 @@ in
   in
 
   {
-    haskell = lib.recursiveUpdate prev.haskell {
-      compiler.${ghcName} = prev.haskell.compiler.${ghcName}.override {
-        # Unfortunately, the GHC setting is named differently for historical reasons
-        enableProfiledLibs = enableProfiling;
+    haskell = prev.haskell // {
+      compiler = prev.haskell.compiler // {
+        ${ghcName} = prev.haskell.compiler.${ghcName}.override {
+          # Unfortunately, the GHC setting is named differently for historical reasons
+          enableProfiledLibs = enableProfiling;
+        };
       };
     };
   })
@@ -1241,31 +1246,33 @@ in
   in
 
   {
-    haskell = lib.recursiveUpdate prev.haskell {
-      packages.${ghcName} = prev.haskell.packages.${ghcName}.override {
-        overrides = hfinal: hprev: {
-          mkDerivation = args: hprev.mkDerivation (args // {
-            # Since we are forcing our ideas upon mkDerivation, this change will
-            # affect every package in the package set.
-            enableLibraryProfiling = enableProfiling;
-
-            # To actually use profiling on an executable, executable profiling
-            # needs to be enabled for the executable you want to profile. You
-            # can either do this globally or…
-            enableExecutableProfiling = enableProfiling;
-          });
-
-          # …only for the package that contains an executable you want to profile.
-          # That saves on unnecessary rebuilds for packages that you only depend
-          # on for their library, but also contain executables (e.g. pandoc).
-          my-executable = haskellLib.enableExecutableProfiling hprev.my-executable;
-
-          # If you are disabling profiling to save on build time, but want to
-          # retain the ability to substitute from the binary cache. Drop the
-          # override for mkDerivation above and instead have an override like
-          # this for the specific packages you are building locally and want
-          # to make cheaper to build.
-          my-library = haskellLib.disableLibraryProfiling hprev.my-library;
+    haskell = prev.haskell // {
+      packages = prev.haskell.packages // {
+        ${ghcName} = prev.haskell.packages.${ghcName}.override {
+          overrides = hfinal: hprev: {
+            mkDerivation = args: hprev.mkDerivation (args // {
+              # Since we are forcing our ideas upon mkDerivation, this change will
+              # affect every package in the package set.
+              enableLibraryProfiling = enableProfiling;
+
+              # To actually use profiling on an executable, executable profiling
+              # needs to be enabled for the executable you want to profile. You
+              # can either do this globally or…
+              enableExecutableProfiling = enableProfiling;
+            });
+
+            # …only for the package that contains an executable you want to profile.
+            # That saves on unnecessary rebuilds for packages that you only depend
+            # on for their library, but also contain executables (e.g. pandoc).
+            my-executable = haskellLib.enableExecutableProfiling hprev.my-executable;
+
+            # If you are disabling profiling to save on build time, but want to
+            # retain the ability to substitute from the binary cache. Drop the
+            # override for mkDerivation above and instead have an override like
+            # this for the specific packages you are building locally and want
+            # to make cheaper to build.
+            my-library = haskellLib.disableLibraryProfiling hprev.my-library;
+          };
         };
       };
     };
diff --git a/doc/languages-frameworks/idris2.section.md b/doc/languages-frameworks/idris2.section.md
index 47bcbf46aee9..f1f0277cc609 100644
--- a/doc/languages-frameworks/idris2.section.md
+++ b/doc/languages-frameworks/idris2.section.md
@@ -2,7 +2,7 @@
 
 In addition to exposing the Idris2 compiler itself, Nixpkgs exposes an `idris2Packages.buildIdris` helper to make it a bit more ergonomic to build Idris2 executables or libraries.
 
-The `buildIdris` function takes a package set that defines at a minimum the `src` and `projectName` of the package to be built and any `idrisLibraries` required to build it. The `src` is the same source you're familiar with but the `projectName` must be the name of the `ipkg` file for the project (omitting the `.ipkg` extension). The `idrisLibraries` is a list of other library derivations created with `buildIdris`. You can optionally specify other derivation properties as needed but sensible defaults for `configurePhase`, `buildPhase`, and `installPhase` are provided.
+The `buildIdris` function takes an attribute set that defines at a minimum the `src` and `ipkgName` of the package to be built and any `idrisLibraries` required to build it. The `src` is the same source you're familiar with and the `ipkgName` must be the name of the `ipkg` file for the project (omitting the `.ipkg` extension). The `idrisLibraries` is a list of other library derivations created with `buildIdris`. You can optionally specify other derivation properties as needed but sensible defaults for `configurePhase`, `buildPhase`, and `installPhase` are provided.
 
 Importantly, `buildIdris` does not create a single derivation but rather an attribute set with two properties: `executable` and `library`. The `executable` property is a derivation and the `library` property is a function that will return a derivation for the library with or without source code included. Source code need not be included unless you are aiming to use IDE or LSP features that are able to jump to definitions within an editor.
 
@@ -10,7 +10,7 @@ A simple example of a fully packaged library would be the [`LSP-lib`](https://gi
 ```nix
 { fetchFromGitHub, idris2Packages }:
 let lspLibPkg = idris2Packages.buildIdris {
-  projectName = "lsp-lib";
+  ipkgName = "lsp-lib";
   src = fetchFromGitHub {
    owner = "idris-community";
    repo = "LSP-lib";
@@ -31,7 +31,7 @@ A slightly more involved example of a fully packaged executable would be the [`i
 # Assuming the previous example lives in `lsp-lib.nix`:
 let lspLib = callPackage ./lsp-lib.nix { };
     lspPkg = idris2Packages.buildIdris {
-      projectName = "idris2-lsp";
+      ipkgName = "idris2-lsp";
       src = fetchFromGitHub {
          owner = "idris-community";
          repo = "idris2-lsp";
diff --git a/doc/languages-frameworks/rust.section.md b/doc/languages-frameworks/rust.section.md
index a81ba1e456e8..72bade25a9fb 100644
--- a/doc/languages-frameworks/rust.section.md
+++ b/doc/languages-frameworks/rust.section.md
@@ -701,7 +701,7 @@ with import <nixpkgs> {};
     hello = attrs: lib.optionalAttrs (lib.versionAtLeast attrs.version "1.0")  {
       postPatch = ''
         substituteInPlace lib/zoneinfo.rs \
-          --replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
+          --replace-fail "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
       '';
     };
   };
diff --git a/doc/packages/linux.section.md b/doc/packages/linux.section.md
index 0edf40043361..4c3b2a3b132a 100644
--- a/doc/packages/linux.section.md
+++ b/doc/packages/linux.section.md
@@ -12,20 +12,6 @@ Both functions have an argument `kernelPatches` which should be a list of `{name
 
 The kernel derivation created with `pkgs.buildLinux` exports an attribute `features` specifying whether optional functionality is or isn’t enabled. This is used in NixOS to implement kernel-specific behaviour.
 
-:::{.example #ex-skip-package-from-kernel-feature}
-
-# Skipping an external package because of a kernel feature
-
-For instance, if the kernel has the `iwlwifi` feature (i.e., has built-in support for Intel wireless chipsets), then NixOS doesn’t have to build the external `iwlwifi` package:
-
-```nix
-modulesTree = [kernel]
-  ++ pkgs.lib.optional (!kernel.features ? iwlwifi) kernelPackages.iwlwifi
-  ++ ...;
-```
-
-:::
-
 If you are using a kernel packaged in Nixpkgs, you can customize it by overriding its arguments. For details on how each argument affects the generated kernel, refer to [the `pkgs.buildLinux` source code](https://github.com/NixOS/nixpkgs/blob/d77bda728d5041c1294a68fb25c79e2d161f62b9/pkgs/os-specific/linux/kernel/generic.nix).
 
 :::{.example #ex-overriding-kernel-derivation}
diff --git a/doc/preface.chapter.md b/doc/preface.chapter.md
index 93cd1a00b4f2..e6a0905c5a95 100644
--- a/doc/preface.chapter.md
+++ b/doc/preface.chapter.md
@@ -27,18 +27,18 @@ With these expressions the Nix package manager can build binary packages.
 Packages, including the Nix packages collection, are distributed through
 [channels](https://nixos.org/nix/manual/#sec-channels). The collection is
 distributed for users of Nix on non-NixOS distributions through the channel
-`nixpkgs`. Users of NixOS generally use one of the `nixos-*` channels, e.g.
-`nixos-22.11`, which includes all packages and modules for the stable NixOS
+`nixpkgs-unstable`. Users of NixOS generally use one of the `nixos-*` channels,
+e.g. `nixos-22.11`, which includes all packages and modules for the stable NixOS
 22.11. Stable NixOS releases are generally only given
 security updates. More up to date packages and modules are available via the
 `nixos-unstable` channel.
 
-Both `nixos-unstable` and `nixpkgs` follow the `master` branch of the Nixpkgs
-repository, although both do lag the `master` branch by generally
+Both `nixos-unstable` and `nixpkgs-unstable` follow the `master` branch of the
+nixpkgs repository, although both do lag the `master` branch by generally
 [a couple of days](https://status.nixos.org/). Updates to a channel are
 distributed as soon as all tests for that channel pass, e.g.
 [this table](https://hydra.nixos.org/job/nixpkgs/trunk/unstable#tabs-constituents)
-shows the status of tests for the `nixpkgs` channel.
+shows the status of tests for the `nixpkgs-unstable` channel.
 
 The tests are conducted by a cluster called [Hydra](https://nixos.org/hydra/),
 which also builds binary packages from the Nix expressions in Nixpkgs for
@@ -46,5 +46,5 @@ which also builds binary packages from the Nix expressions in Nixpkgs for
 The binaries are made available via a [binary cache](https://cache.nixos.org).
 
 The current Nix expressions of the channels are available in the
-[`nixpkgs`](https://github.com/NixOS/nixpkgs) repository in branches
+[nixpkgs repository](https://github.com/NixOS/nixpkgs) in branches
 that correspond to the channel names (e.g. `nixos-22.11-small`).
diff --git a/doc/stdenv/platform-notes.chapter.md b/doc/stdenv/platform-notes.chapter.md
index b47f5af349b8..409c9f2e7b2e 100644
--- a/doc/stdenv/platform-notes.chapter.md
+++ b/doc/stdenv/platform-notes.chapter.md
@@ -54,7 +54,7 @@ Some common issues when packaging software for Darwin:
     # ...
     prePatch = ''
       substituteInPlace Makefile \
-          --replace '/usr/bin/xcrun clang' clang
+          --replace-fail '/usr/bin/xcrun clang' clang
     '';
   }
   ```
diff --git a/doc/stdenv/stdenv.chapter.md b/doc/stdenv/stdenv.chapter.md
index a5981d2efbe8..a948c6757c4a 100644
--- a/doc/stdenv/stdenv.chapter.md
+++ b/doc/stdenv/stdenv.chapter.md
@@ -230,9 +230,9 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     substituteInPlace $out/bin/solo5-virtio-mkimage \
-      --replace "/usr/lib/syslinux" "${syslinux}/share/syslinux" \
-      --replace "/usr/share/syslinux" "${syslinux}/share/syslinux" \
-      --replace "cp " "cp --no-preserve=mode "
+      --replace-fail "/usr/lib/syslinux" "${syslinux}/share/syslinux" \
+      --replace-fail "/usr/share/syslinux" "${syslinux}/share/syslinux" \
+      --replace-fail "cp " "cp --no-preserve=mode "
 
     wrapProgram $out/bin/solo5-virtio-mkimage \
       --prefix PATH : ${lib.makeBinPath [ dosfstools mtools parted syslinux ]}
@@ -1253,9 +1253,20 @@ postInstall = ''
 
 Performs string substitution on the contents of \<infile\>, writing the result to \<outfile\>. The substitutions in \<subs\> are of the following form:
 
-#### `--replace` \<s1\> \<s2\> {#fun-substitute-replace}
+#### `--replace-fail` \<s1\> \<s2\> {#fun-substitute-replace-fail}
 
 Replace every occurrence of the string \<s1\> by \<s2\>.
+Will error if no change is made.
+
+#### `--replace-warn` \<s1\> \<s2\> {#fun-substitute-replace-warn}
+
+Replace every occurrence of the string \<s1\> by \<s2\>.
+Will print a warning if no change is made.
+
+#### `--replace-quiet` \<s1\> \<s2\> {#fun-substitute-replace-quiet}
+
+Replace every occurrence of the string \<s1\> by \<s2\>.
+Will do nothing if no change can be made.
 
 #### `--subst-var` \<varName\> {#fun-substitute-subst-var}
 
@@ -1269,8 +1280,8 @@ Example:
 
 ```shell
 substitute ./foo.in ./foo.out \
-    --replace /usr/bin/bar $bar/bin/bar \
-    --replace "a string containing spaces" "some other text" \
+    --replace-fail /usr/bin/bar $bar/bin/bar \
+    --replace-fail "a string containing spaces" "some other text" \
     --subst-var someVar
 ```
 
diff --git a/lib/default.nix b/lib/default.nix
index f6c94ae91634..a17307be6e07 100644
--- a/lib/default.nix
+++ b/lib/default.nix
@@ -116,7 +116,7 @@ let
     inherit (self.customisation) overrideDerivation makeOverridable
       callPackageWith callPackagesWith extendDerivation hydraJob
       makeScope makeScopeWithSplicing makeScopeWithSplicing';
-    inherit (self.derivations) lazyDerivation;
+    inherit (self.derivations) lazyDerivation optionalDrvAttr;
     inherit (self.meta) addMetaAttrs dontDistribute setName updateName
       appendToName mapDerivationAttrset setPrio lowPrio lowPrioSet hiPrio
       hiPrioSet getLicenseFromSpdxId getExe getExe';
diff --git a/lib/derivations.nix b/lib/derivations.nix
index 5b7ed1868e86..44b727ee31cc 100644
--- a/lib/derivations.nix
+++ b/lib/derivations.nix
@@ -98,4 +98,30 @@ in
       # `lazyDerivation` caller knew a shortcut, be taken from there.
       meta = args.meta or checked.meta;
     } // passthru;
+
+  /* Conditionally set a derivation attribute.
+
+     Because `mkDerivation` sets `__ignoreNulls = true`, a derivation
+     attribute set to `null` will not impact the derivation output hash.
+     Thus, this function passes through its `value` argument if the `cond`
+     is `true`, but returns `null` if not.
+
+     Type: optionalDrvAttr :: Bool -> a -> a | Null
+
+     Example:
+       (stdenv.mkDerivation {
+         name = "foo";
+         x = optionalDrvAttr true 1;
+         y = optionalDrvAttr false 1;
+       }).drvPath == (stdenv.mkDerivation {
+         name = "foo";
+         x = 1;
+       }).drvPath
+       => true
+  */
+  optionalDrvAttr =
+    # Condition
+    cond:
+    # Attribute value
+    value: if cond then value else null;
 }
diff --git a/lib/fileset/internal.nix b/lib/fileset/internal.nix
index 4059d2e24426..f4fcc83e1012 100644
--- a/lib/fileset/internal.nix
+++ b/lib/fileset/internal.nix
@@ -5,6 +5,7 @@ let
     isAttrs
     isPath
     isString
+    nixVersion
     pathExists
     readDir
     split
@@ -17,6 +18,7 @@ let
     attrNames
     attrValues
     mapAttrs
+    optionalAttrs
     zipAttrsWith
     ;
 
@@ -56,6 +58,7 @@ let
     substring
     stringLength
     hasSuffix
+    versionAtLeast
     ;
 
   inherit (lib.trivial)
@@ -840,6 +843,10 @@ rec {
   # https://github.com/NixOS/nix/commit/55cefd41d63368d4286568e2956afd535cb44018
   _fetchGitSubmodulesMinver = "2.4";
 
+  # Support for `builtins.fetchGit` with `shallow = true` was introduced in 2.4
+  # https://github.com/NixOS/nix/commit/d1165d8791f559352ff6aa7348e1293b2873db1c
+  _fetchGitShallowMinver = "2.4";
+
   # Mirrors the contents of a Nix store path relative to a local path as a file set.
   # Some notes:
   # - The store path is read at evaluation time.
@@ -894,7 +901,17 @@ rec {
           # However a simpler alternative still would be [a builtins.gitLsFiles](https://github.com/NixOS/nix/issues/2944).
           fetchResult = fetchGit ({
             url = path;
-          } // extraFetchGitAttrs);
+          }
+          # In older Nix versions, repositories were always assumed to be deep clones, which made `fetchGit` fail for shallow clones
+          # For newer versions this was fixed, but the `shallow` flag is required.
+          # The only behavioral difference is that for shallow clones, `fetchGit` doesn't return a `revCount`,
+          # which we don't need here, so it's fine to always pass it.
+
+          # Unfortunately this means older Nix versions get a poor error message for shallow repositories, and there's no good way to improve that.
+          # Checking for `.git/shallow` doesn't seem worth it, especially since that's more of an implementation detail,
+          # and would also require more code to handle worktrees where `.git` is a file.
+          // optionalAttrs (versionAtLeast nixVersion _fetchGitShallowMinver) { shallow = true; }
+          // extraFetchGitAttrs);
         in
         # We can identify local working directories by checking for .git,
         # see https://git-scm.com/docs/gitrepository-layout#_description.
diff --git a/lib/fileset/tests.sh b/lib/fileset/tests.sh
index e809aef6935a..af8338eb7855 100755
--- a/lib/fileset/tests.sh
+++ b/lib/fileset/tests.sh
@@ -1439,6 +1439,19 @@ if [[ -n "$fetchGitSupportsSubmodules" ]]; then
 fi
 rm -rf -- *
 
+# shallow = true is not supported on all Nix versions
+# and older versions don't support shallow clones at all
+if [[ "$(nix-instantiate --eval --expr "$prefixExpression (versionAtLeast builtins.nixVersion _fetchGitShallowMinver)")" == true ]]; then
+    createGitRepo full
+    # Extra commit such that there's a commit that won't be in the shallow clone
+    git -C full commit --allow-empty -q -m extra
+    git clone -q --depth 1 "file://${PWD}/full" shallow
+    cd shallow
+    checkGitTracked
+    cd ..
+    rm -rf -- *
+fi
+
 # Go through all stages of Git files
 # See https://www.git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository
 
diff --git a/lib/licenses.nix b/lib/licenses.nix
index 8dc01e560746..47b7005c561d 100644
--- a/lib/licenses.nix
+++ b/lib/licenses.nix
@@ -337,6 +337,11 @@ in mkLicense lset) ({
     fullName = "Creative Commons Attribution 1.0";
   };
 
+  cc-by-20 = {
+    spdxId = "CC-BY-2.0";
+    fullName = "Creative Commons Attribution 2.0";
+  };
+
   cc-by-30 = {
     spdxId = "CC-BY-3.0";
     fullName = "Creative Commons Attribution 3.0";
diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix
index 3059878ba069..193e68a96933 100644
--- a/lib/tests/misc.nix
+++ b/lib/tests/misc.nix
@@ -1902,7 +1902,7 @@ runTests {
     expected = true;
   };
 
-  # lazyDerivation
+  # DERIVATIONS
 
   testLazyDerivationIsLazyInDerivationForAttrNames = {
     expr = attrNames (lazyDerivation {
@@ -1955,6 +1955,24 @@ runTests {
     expected = derivation;
   };
 
+  testOptionalDrvAttr = let
+    mkDerivation = args: derivation (args // {
+      builder = "builder";
+      system = "system";
+      __ignoreNulls = true;
+    });
+  in {
+    expr = (mkDerivation {
+      name = "foo";
+      x = optionalDrvAttr true 1;
+      y = optionalDrvAttr false 1;
+    }).drvPath;
+    expected = (mkDerivation {
+      name = "foo";
+      x = 1;
+    }).drvPath;
+  };
+
   testTypeDescriptionInt = {
     expr = (with types; int).description;
     expected = "signed integer";
diff --git a/lib/tests/modules.sh b/lib/tests/modules.sh
index a90ff4ad9a2f..0755670c5987 100755
--- a/lib/tests/modules.sh
+++ b/lib/tests/modules.sh
@@ -101,6 +101,7 @@ checkConfigError 'It seems as if you.re trying to declare an option by placing i
 checkConfigError 'It seems as if you.re trying to declare an option by placing it into .config. rather than .options.' config.nest.wrong2 ./error-mkOption-in-config.nix
 checkConfigError 'The option .sub.wrong2. does not exist. Definition values:' config.sub ./error-mkOption-in-submodule-config.nix
 checkConfigError '.*This can happen if you e.g. declared your options in .types.submodule.' config.sub ./error-mkOption-in-submodule-config.nix
+checkConfigError '.*A definition for option .bad. is not of type .non-empty .list of .submodule...\.' config.bad ./error-nonEmptyListOf-submodule.nix
 
 # types.pathInStore
 checkConfigOutput '".*/store/0lz9p8xhf89kb1c1kk6jxrzskaiygnlh-bash-5.2-p15.drv"' config.pathInStore.ok1 ./types.nix
diff --git a/lib/tests/modules/error-nonEmptyListOf-submodule.nix b/lib/tests/modules/error-nonEmptyListOf-submodule.nix
new file mode 100644
index 000000000000..1189e8891560
--- /dev/null
+++ b/lib/tests/modules/error-nonEmptyListOf-submodule.nix
@@ -0,0 +1,7 @@
+{ lib, ... }:
+{
+  options.bad = lib.mkOption {
+    type = lib.types.nonEmptyListOf (lib.types.submodule { });
+    default = [ ];
+  };
+}
diff --git a/lib/trivial.nix b/lib/trivial.nix
index b2796096e8bc..f27cfb04f074 100644
--- a/lib/trivial.nix
+++ b/lib/trivial.nix
@@ -189,7 +189,7 @@ in {
      they take effect as soon as the oldest release reaches end of life. */
   oldestSupportedRelease =
     # Update on master only. Do not backport.
-    2305;
+    2311;
 
   /* Whether a feature is supported in all supported releases (at the time of
      release branch-off, if applicable). See `oldestSupportedRelease`. */
diff --git a/lib/types.nix b/lib/types.nix
index cea63c598321..7b2062f13059 100644
--- a/lib/types.nix
+++ b/lib/types.nix
@@ -557,6 +557,7 @@ rec {
       in list // {
         description = "non-empty ${optionDescriptionPhrase (class: class == "noun") list}";
         emptyValue = { }; # no .value attr, meaning unset
+        substSubModules = m: nonEmptyListOf (elemType.substSubModules m);
       };
 
     attrsOf = elemType: mkOptionType rec {
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 81c7b6dbc8a3..bfb80bd0e8d2 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -60,6 +60,18 @@
     See `./scripts/check-maintainer-github-handles.sh` for an example on how to work with this data.
 */
 {
+  _0b11stan = {
+    name = "Tristan Auvinet Pinaudeau";
+    email = "tristan@tic.sh";
+    github = "0b11stan";
+    githubId = 27831931;
+  };
+  _0nyr = {
+    email = "onyr.maintainer@gmail.com";
+    github = "0nyr";
+    githubId = 47721040;
+    name = "Florian Rascoussier";
+  };
   _0qq = {
     email = "0qqw0qqw@gmail.com";
     github = "0qq";
@@ -1408,6 +1420,20 @@
       fingerprint = "7083 E268 4BFD 845F 2B84  9E74 B695 8918 ED23 32CE";
     }];
   };
+  applejag = {
+    email = "applejag.luminance905@passmail.com";
+    github = "applejag";
+    githubId = 2477952;
+    name = "Kalle Fagerberg";
+    keys = [
+      {
+        fingerprint = "F68E 6DB3 79FB 1FF0 7C72  6479 9874 DEDD 3592 5ED0";
+      }
+      {
+        fingerprint = "8DDB 3994 0A34 4FE5 4F3B  3E77 F161 001D EE78 1051";
+      }
+    ];
+  };
   applePrincess = {
     email = "appleprincess@appleprincess.io";
     github = "applePrincess";
@@ -1417,6 +1443,11 @@
       fingerprint = "BF8B F725 DA30 E53E 7F11  4ED8 AAA5 0652 F047 9205";
     }];
   };
+  appsforartists = {
+    github = "appsforartists";
+    githubId = 926648;
+    name = "Brenton Simpson";
+  };
   apraga = {
     email = "alexis.praga@proton.me";
     github = "apraga";
@@ -1885,6 +1916,12 @@
     githubId = 1217745;
     name = "Aldwin Vlasblom";
   };
+  averagebit = {
+    email = "averagebit@pm.me";
+    github = "averagebit";
+    githubId = 97070581;
+    name = "averagebit";
+  };
   averelld = {
     email = "averell+nixos@rxd4.com";
     github = "averelld";
@@ -2553,6 +2590,12 @@
     githubId = 52386117;
     name = "Blusk";
   };
+  bmanuel = {
+    name = "Benjamin Manuel";
+    email = "ben@benmanuel.com";
+    github = "bmanuel";
+    githubId = 3662307;
+  };
   bmilanov = {
     name = "Biser Milanov";
     email = "bmilanov11+nixpkgs@gmail.com";
@@ -2770,6 +2813,12 @@
     githubId = 40476330;
     name = "brokenpip3";
   };
+  brpaz = {
+    email = "oss@brunopaz.dev";
+    github = "brpaz";
+    githubId = 184563;
+    name = "Bruno Paz";
+  };
   bryanasdev000 = {
     email = "bryanasdev000@gmail.com";
     matrix = "@bryanasdev000:matrix.org";
@@ -3228,6 +3277,9 @@
     github = "LostAttractor";
     githubId = 46527539;
     name = "ChaosAttractor";
+    keys = [{
+      fingerprint = "A137 4415 DB7C 6439 10EA  5BF1 0FEE 4E47 5940 E125";
+    }];
   };
   charlesbaynham = {
     email = "charlesbaynham@gmail.com";
@@ -3307,6 +3359,13 @@
     githubId = 4526429;
     name = "Philipp Dargel";
   };
+  chito = {
+    email = "iamchito@protonmail.com";
+    github = "chitochi";
+    githubId = 153365419;
+    matrix = "@chito:nichijou.dev";
+    name = "Chito";
+  };
   chivay = {
     email = "hubert.jasudowicz@gmail.com";
     github = "chivay";
@@ -3530,6 +3589,12 @@
     githubId = 46303707;
     name = "Christian Lütke-Stetzkamp";
   };
+  clr-cera = {
+    email = "clrcera05@gmail.com";
+    github = "clr-cera";
+    githubId = 93736542;
+    name = "Clr";
+  };
   cmacrae = {
     email = "hi@cmacr.ae";
     github = "cmacrae";
@@ -4333,6 +4398,15 @@
     githubId = 3179832;
     name = "D. Bohdan";
   };
+  dbrgn = {
+    email = "nix@dbrgn.ch";
+    github = "dbrgn";
+    githubId = 105168;
+    name = "Danilo B.";
+    keys = [{
+      fingerprint = "20EE 002D 778A E197 EF7D  0D2C B993 FF98 A90C 9AB1";
+    }];
+  };
   dbrock = {
     email = "daniel@brockman.se";
     github = "dbrock";
@@ -4681,6 +4755,16 @@
     githubId = 32810399;
     name = "Diffumist";
   };
+  diogotcorreia = {
+    name = "Diogo Correia";
+    email = "me@diogotc.com";
+    matrix = "@dtc:diogotc.com";
+    github = "diogotcorreia";
+    githubId = 7467891;
+    keys = [{
+      fingerprint = "111F 91B7 5F61 99D8 985B  4C70 12CF 31FD FF17 2B77";
+    }];
+  };
   diogox = {
     name = "Diogo Xavier";
     github = "diogox";
@@ -5218,6 +5302,13 @@
     github = "edlimerkaj";
     githubId = 71988351;
   };
+  edmundmiller = {
+    name = "Edmund Miller";
+    email = "git@edmundmiller.dev";
+    matrix = "@emiller:beeper.com";
+    github = "edmundmiller";
+    githubId = 20095261;
+  };
   edrex = {
     email = "ericdrex@gmail.com";
     github = "edrex";
@@ -5441,6 +5532,12 @@
     githubId = 428026;
     name = "embr";
   };
+  emilioziniades = {
+    email = "emilioziniades@protonmail.com";
+    github = "emilioziniades";
+    githubId = 75438244;
+    name = "Emilio Ziniades";
+  };
   emily = {
     email = "nixpkgs@emily.moe";
     github = "emilazy";
@@ -6891,6 +6988,12 @@
     email = "nix@quidecco.pl";
     name = "Isidor Zeuner";
   };
+  gmacon = {
+    name = "George Macon";
+    matrix = "@gmacon:matrix.org";
+    github = "gmacon";
+    githubId = 238853;
+  };
   gmemstr = {
     email = "git@gmem.ca";
     github = "gmemstr";
@@ -7405,6 +7508,12 @@
     githubId = 1401179;
     name = "Guanpeng Xu";
   };
+  herbetom = {
+    email = "nixos@tomherbers.de";
+    github = "herbetom";
+    githubId = 15121114;
+    name = "Tom Herbers";
+  };
   hexa = {
     email = "hexa@darmstadt.ccc.de";
     matrix = "@hexa:lossy.network";
@@ -10013,6 +10122,12 @@
     githubId = 264372;
     name = "Jan van den Berg";
   };
+  koppor = {
+    email = "kopp.dev@gmail.com";
+    github = "koppor";
+    githubId = 1366654;
+    name = "Oliver Kopp";
+  };
   koral = {
     email = "koral@mailoo.org";
     github = "k0ral";
@@ -10103,6 +10218,13 @@
     githubId = 22116767;
     name = "Kritnich";
   };
+  krloer = {
+    email = "kriloneri@gmail.com";
+    github = "krloer";
+    githubId = 45591621;
+    name = "Kristoffer Longva Eriksen";
+    matrix = "@krisleri:pvv.ntnu.no";
+  };
   kroell = {
     email = "nixosmainter@makroell.de";
     github = "rokk4";
@@ -10445,6 +10567,14 @@
     githubId = 31388299;
     name = "Leonardo Eugênio";
   };
+  leo248 = {
+    github ="leo248";
+    githubId = 95365184;
+    keys = [{
+      fingerprint = "81E3 418D C1A2 9687 2C4D  96DC BB1A 818F F295 26D2";
+    }];
+    name = "leo248";
+  };
   leo60228 = {
     email = "leo@60228.dev";
     matrix = "@leo60228:matrix.org";
@@ -10543,6 +10673,15 @@
     githubId = 1769386;
     name = "Liam Diprose";
   };
+  liassica = {
+    email = "git-commit.jingle869@aleeas.com";
+    github = "Liassica";
+    githubId = 115422798;
+    name = "Liassica";
+    keys = [{
+      fingerprint = "83BE 3033 6164 B971 FA82  7036 0D34 0E59 4980 7BDD";
+    }];
+  };
   liberatys = {
     email = "liberatys@hey.com";
     name = "Nick Anthony Flueckiger";
@@ -11176,6 +11315,15 @@
     githubId = 42545625;
     name = "Maas Lalani";
   };
+  mabster314 = {
+    name = "Max Haland";
+    email = "max@haland.org";
+    github = "mabster314";
+    githubId = 5741741;
+    keys = [{
+      fingerprint = "71EF 8F1F 0C24 8B4D 5CDC 1B47 74B3 D790 77EE 37A8";
+    }];
+  };
   macalinao = {
     email = "me@ianm.com";
     name = "Ian Macalinao";
@@ -11319,6 +11467,12 @@
     githubId = 346094;
     name = "Michael Alyn Miller";
   };
+  mandos = {
+    email = "marek.maksimczyk@mandos.net.pl";
+    github = "mandos";
+    githubId = 115060;
+    name = "Marek Maksimczyk";
+  };
   mangoiv = {
     email = "contact@mangoiv.com";
     github = "mangoiv";
@@ -11357,6 +11511,12 @@
     githubId = 1651325;
     name = "maralorn";
   };
+  marble = {
+    email = "nixpkgs@computer-in.love";
+    github = "cyber-murmel";
+    githubId = 30078229;
+    name = "marble";
+  };
   marcovergueira = {
     email = "vergueira.marco@gmail.com";
     github = "marcovergueira";
@@ -11909,6 +12069,12 @@
     githubId = 4641445;
     name = "Carlo Nucera";
   };
+  medv = {
+    email = "mikhail.advent@gmail.com";
+    github = "medv";
+    githubId = 1631737;
+    name = "Mikhail Medvedev";
+  };
   megheaiulian = {
     email = "iulian.meghea@gmail.com";
     github = "megheaiulian";
@@ -12271,6 +12437,12 @@
     githubId = 92937;
     name = "Breland Miley";
   };
+  minersebas = {
+    email = "scherthan_sebastian@web.de";
+    github = "MinerSebas";
+    githubId = 66798382;
+    name = "Sebastian Maximilian Scherthan";
+  };
   minijackson = {
     email = "minijackson@riseup.net";
     github = "minijackson";
@@ -12355,6 +12527,12 @@
       fingerprint = "7088 C742 1873 E0DB 97FF  17C2 245C AB70 B4C2 25E9";
     }];
   };
+  mistydemeo = {
+    email = "misty@axo.dev";
+    github = "mistydemeo";
+    githubId = 780485;
+    name = "Misty De Méo";
+  };
   misuzu = {
     email = "bakalolka@gmail.com";
     github = "misuzu";
@@ -12992,6 +13170,12 @@
     githubId = 1222539;
     name = "Roman Naumann";
   };
+  nanotwerp = {
+    email = "nanotwerp@gmail.com";
+    github = "nanotwerp";
+    githubId = 17240342;
+    name = "Nano Twerpus";
+  };
   naphta = {
     github = "naphta";
     githubId = 6709831;
@@ -14393,6 +14577,12 @@
     github = "pbsds";
     githubId = 140964;
   };
+  pca006132 = {
+    name = "pca006132";
+    email = "john.lck40@gmail.com";
+    github = "pca006132";
+    githubId = 12198657;
+  };
   pcarrier = {
     email = "pc@rrier.ca";
     github = "pcarrier";
@@ -14576,6 +14766,12 @@
     githubId = 5737016;
     name = "Philipp Schuster";
   };
+  phlip9 = {
+    email = "philiphayes9@gmail.com";
+    github = "phlip9";
+    githubId = 918989;
+    name = "Philip Hayes";
+  };
   Phlogistique = {
     email = "noe.rubinstein@gmail.com";
     github = "Phlogistique";
@@ -15004,6 +15200,16 @@
     githubId = 11898437;
     name = "Florian Ströger";
   };
+  presto8 = {
+    name = "Preston Hunt";
+    email = "me@prestonhunt.com";
+    matrix = "@presto8:matrix.org";
+    github = "presto8";
+    githubId = 246631;
+    keys = [{
+      fingerprint = "3E46 7EF1 54AA A1D0 C7DF  A694 E45C B17F 1940 CA52";
+    }];
+  };
   priegger = {
     email = "philipp@riegger.name";
     github = "priegger";
@@ -15306,7 +15512,7 @@
     name = "Jonathan Wright";
   };
   quantenzitrone = {
-    email = "quantenzitrone@protonmail.com";
+    email = "nix@dev.quantenzitrone.eu";
     github = "quantenzitrone";
     githubId = 74491719;
     matrix = "@quantenzitrone:matrix.org";
@@ -15504,6 +15710,16 @@
     githubId = 1891350;
     name = "Michael Raskin";
   };
+  ratcornu = {
+    email = "ratcornu@skaven.org";
+    github = "RatCornu";
+    githubId = 98173832;
+    name = "Balthazar Patiachvili";
+    matrix = "@ratcornu:skweel.skaven.org";
+    keys = [{
+      fingerprint = "1B91 F087 3D06 1319 D3D0  7F91 FA47 BDA2 6048 9ADA";
+    }];
+  };
   ratsclub = {
     email = "victor@freire.dev.br";
     github = "ratsclub";
@@ -15729,6 +15945,11 @@
     githubId = 811827;
     name = "Gabriel Lievano";
   };
+  rgri = {
+    name = "shortcut";
+    github = "rgri";
+    githubId = 45253749;
+  };
   rgrinberg = {
     name = "Rudi Grinberg";
     email = "me@rgrinberg.com";
@@ -15992,7 +16213,7 @@
     name = "Robert Walter";
   };
   roconnor = {
-    email = "roconnor@theorem.ca";
+    email = "roconnor@r6.ca";
     github = "roconnor";
     githubId = 852967;
     name = "Russell O'Connor";
@@ -16662,12 +16883,6 @@
       fingerprint = "E173 237A C782 296D 98F5  ADAC E13D FD4B 4712 7951";
     }];
   };
-  scubed2 = {
-    email = "scubed2@gmail.com";
-    github = "scubed2";
-    githubId = 7401858;
-    name = "Sterling Stein";
-  };
   sdier = {
     email = "scott@dier.name";
     matrix = "@sdier:matrix.org";
@@ -17082,6 +17297,12 @@
     github = "shymega";
     githubId = 1334592;
   };
+  siddharthdhakane = {
+    email = "siddharthdhakane@gmail.com";
+    github = "siddharthdhakane";
+    githubId = 28101092;
+    name = "Siddharth Dhakane";
+  };
   siddharthist = {
     email = "langston.barrett@gmail.com";
     github = "langston-barrett";
@@ -19273,6 +19494,11 @@
     githubId = 1607770;
     name = "Ulrik Strid";
   };
+  umlx5h = {
+    github = "umlx5h";
+    githubId = 20206121;
+    name = "umlx5h";
+  };
   unclamped = {
     name = "Maru";
     email = "clear6860@tutanota.com";
@@ -20310,6 +20536,22 @@
     githubId = 13489144;
     name = "Calle Rosenquist";
   };
+  xbz = {
+    email = "renatochavez7@gmail.com";
+    github = "Xbz-24";
+    githubId = 68678258;
+    name = "Renato German Chavez Chicoma";
+  };
+  xddxdd = {
+    email = "b980120@hotmail.com";
+    github = "xddxdd";
+    githubId = 5778879;
+    keys = [
+      { fingerprint = "2306 7C13 B6AE BDD7 C0BB  5673 27F3 1700 E751 EC22"; }
+      { fingerprint = "B195 E8FB 873E 6020 DCD1  C0C6 B50E C319 385F CB0D"; }
+    ];
+    name = "Yuhui Xu";
+  };
   xdhampus = {
     name = "Hampus";
     github = "xdHampus";
@@ -20330,7 +20572,6 @@
   };
   xfix = {
     email = "kamila@borowska.pw";
-    matrix = "@xfix:matrix.org";
     github = "KamilaBorowska";
     githubId = 1297598;
     name = "Kamila Borowska";
@@ -20504,6 +20745,13 @@
     githubId = 11229748;
     name = "Lin Yinfeng";
   };
+  yisraeldov = {
+    email = "lebow@lebowtech.com";
+    name = "Yisrael Dov Lebow";
+    github = "yisraeldov";
+    githubId = 138219;
+    matrix = "@yisraeldov:matrix.org";
+  };
   yisuidenghua = {
     email = "bileiner@gmail.com";
     name = "Milena Yisui";
diff --git a/maintainers/scripts/bootstrap-files/README.md b/maintainers/scripts/bootstrap-files/README.md
new file mode 100644
index 000000000000..ae385cbd6ce8
--- /dev/null
+++ b/maintainers/scripts/bootstrap-files/README.md
@@ -0,0 +1,85 @@
+# Bootstrap files
+
+Currently `nixpkgs` builds most of it's packages using bootstrap seed
+binaries (without the reliance on external inputs):
+
+- `bootstrap-tools`: an archive with the compiler toolchain and other
+  helper tools enough to build the rest of the `nixpkgs`.
+- initial binaries needed to unpack `bootstrap-tools.*`. On `linux`
+  it's just `busybox`, on `darwin` it's `sh`, `bzip2`, `mkdir` and
+  `cpio`. These binaries can be executed directly from the store.
+
+These are called "bootstrap files".
+
+Bootstrap files should always be fetched from hydra and uploaded to
+`tarballs.nixos.org` to guarantee that all the binaries were built from
+the code committed into `nixpkgs` repository.
+
+The uploads to `tarballs.nixos.org` are done by `@lovesegfault` today.
+
+This document describes the procedure of updating bootstrap files in
+`nixpkgs`.
+
+## How to request the bootstrap seed update
+
+To get the tarballs updated let's use an example `i686-unknown-linux-gnu`
+target:
+
+1. Create a local update:
+
+   ```
+   $ maintainers/scripts/bootstrap-files/refresh-tarballs.bash --commit --targets=i686-unknown-linux-gnu
+   ```
+
+2. Test the update locally. I'll build local `hello` derivation with
+   the result:
+
+   ```
+   $ nix-build -A hello --argstr system i686-linux
+   ```
+
+   To validate cross-targets `binfmt` `NixOS` helper can be useful.
+   For `riscv64-unknown-linux-gnu` the `/etc/nixox/configuraqtion.nix`
+   entry would be `boot.binfmt.emulatedSystems = [ "riscv64-linux" ]`.
+
+3. Propose the commit as a PR to update bootstrap tarballs, tag people
+   who can help you test the updated architecture and once reviewed tag
+  `@lovesegfault` to upload the tarballs.
+
+## Bootstrap files job definitions
+
+There are two types of bootstrap files:
+
+- natively built `stdenvBootstrapTools.build` hydra jobs in
+  [`nixpkgs:trunk`](https://hydra.nixos.org/jobset/nixpkgs/trunk#tabs-jobs)
+  jobset. Incomplete list of examples is:
+
+  * `aarch64-unknown-linux-musl.nix`
+  * `i686-unknown-linux-gnu.nix`
+
+  These are Tier 1 hydra platforms.
+
+- cross-built by `bootstrapTools.build` hydra jobs in
+  [`nixpkgs:cross-trunk`](https://hydra.nixos.org/jobset/nixpkgs/cross-trunk#tabs-jobs)
+  jobset. Incomplete list of examples is:
+
+  * `mips64el-unknown-linux-gnuabi64.nix`
+  * `mips64el-unknown-linux-gnuabin32.nix`
+  * `mipsel-unknown-linux-gnu.nix`
+  * `powerpc64le-unknown-linux-gnu.nix`
+  * `riscv64-unknown-linux-gnu.nix`
+
+  These are usually Tier 2 and lower targets.
+
+The `.build` job contains `/on-server/` subdirectory with binaries to
+be uploaded to `tarballs.nixos.org`.
+The files are uploaded to `tarballs.nixos.org` by writers to `S3` store.
+
+## TODOs
+
+- `pkgs/stdenv/darwin` file layout is slightly different from
+  `pkgs/stdenv/linux`. Once `linux` seed update becomes a routine we can
+  bring `darwin` in sync if it's feasible.
+- `darwin` definition of `.build` `on-server/` directory layout differs
+  and should be updated.
+
diff --git a/maintainers/scripts/bootstrap-files/refresh-tarballs.bash b/maintainers/scripts/bootstrap-files/refresh-tarballs.bash
new file mode 100755
index 000000000000..21c43ade27f1
--- /dev/null
+++ b/maintainers/scripts/bootstrap-files/refresh-tarballs.bash
@@ -0,0 +1,282 @@
+#!/usr/bin/env nix-shell
+#! nix-shell --pure
+#! nix-shell -i bash
+#! nix-shell -p curl cacert
+#! nix-shell -p git
+#! nix-shell -p nix
+#! nix-shell -p jq
+
+# How the refresher works:
+#
+# For a given list of <targets>:
+# 1. fetch latest successful '.build` job
+# 2. fetch oldest evaluation that contained that '.build', extract nixpkgs commit
+# 3. fetch all the `.build` artifacts from '$out/on-server/' directory
+# 4. calculate hashes and craft the commit message with the details on
+#    how to upload the result to 'tarballs.nixos.org'
+
+usage() {
+    cat >&2 <<EOF
+Usage:
+    $0 [ --commit ] --targets=<target>[,<target>,...]
+
+    The tool must be ran from the root directory of 'nixpkgs' repository.
+
+Synopsis:
+    'refresh-tarballs.bash' script fetches latest bootstrapFiles built
+    by hydra, registers them in 'nixpkgs' and provides commands to
+    upload seed files to 'tarballs.nixos.org'.
+
+    This is usually done in the following cases:
+
+    1. Single target fix: current bootstrap files for a single target
+       are problematic for some reason (target-specific bug). In this
+       case we can refresh just that target as:
+
+       \$ $0 --commit --targets=i686-unknown-linux-gnu
+
+    2. Routine refresh: all bootstrap files should be refreshed to avoid
+       debugging problems that only occur on very old binaries.
+
+       \$ $0 --commit --all-targets
+
+To get help on uploading refreshed binaries to 'tarballs.nixos.org'
+please have a look at <maintainers/scripts/bootstrap-files/README.md>.
+EOF
+    exit 1
+}
+
+# log helpers
+
+die() {
+    echo "ERROR: $*" >&2
+    exit 1
+}
+
+info() {
+    echo "INFO: $*" >&2
+}
+
+[[ ${#@} -eq 0 ]] && usage
+
+# known targets
+
+NATIVE_TARGETS=(
+    aarch64-unknown-linux-gnu
+    aarch64-unknown-linux-musl
+    i686-unknown-linux-gnu
+    x86_64-unknown-linux-gnu
+    x86_64-unknown-linux-musl
+
+    # TODO: add darwin here once a few prerequisites are satisfied:
+    #   - bootstrap-files are factored out into a separate file
+    #   - the build artifacts are factored out into an `on-server`
+    #     directory. Right onw if does not match `linux` layout.
+    #
+    #aarch64-apple-darwin
+    #x86_64-apple-darwin
+)
+
+is_native() {
+    local t target=$1
+    for t in "${NATIVE_TARGETS[@]}"; do
+        [[ $t == $target ]] && return 0
+    done
+    return 1
+}
+
+CROSS_TARGETS=(
+    armv5tel-unknown-linux-gnueabi
+    armv6l-unknown-linux-gnueabihf
+    armv6l-unknown-linux-musleabihf
+    armv7l-unknown-linux-gnueabihf
+    mips64el-unknown-linux-gnuabi64
+    mips64el-unknown-linux-gnuabin32
+    mipsel-unknown-linux-gnu
+    powerpc64le-unknown-linux-gnu
+    riscv64-unknown-linux-gnu
+)
+
+is_cross() {
+    local t target=$1
+    for t in "${CROSS_TARGETS[@]}"; do
+        [[ $t == $target ]] && return 0
+    done
+    return 1
+}
+
+# collect passed options
+
+targets=()
+commit=no
+
+for arg in "$@"; do
+    case "$arg" in
+        --all-targets)
+            targets+=(
+                ${CROSS_TARGETS[@]}
+                ${NATIVE_TARGETS[@]}
+            )
+            ;;
+        --targets=*)
+            # Convert "--targets=a,b,c" to targets=(a b c) bash array.
+            comma_targets=${arg#--targets=}
+            targets+=(${comma_targets//,/ })
+            ;;
+        --commit)
+            commit=yes
+            ;;
+        *)
+            usage
+            ;;
+    esac
+done
+
+for target in "${targets[@]}"; do
+    # Native and cross jobsets differ a bit. We'll have to pick the
+    # one based on target name:
+    if is_native $target; then
+        jobset=nixpkgs/trunk
+        job="stdenvBootstrapTools.${target}.build"
+    elif is_cross $target; then
+        jobset=nixpkgs/cross-trunk
+        job="bootstrapTools.${target}.build"
+    else
+        die "'$target' is not present in either of 'NATIVE_TARGETS' or 'CROSS_TARGETS'. Please add one."
+    fi
+
+    # 'nixpkgs' prefix where we will write new tarball hashes
+    case "$target" in
+        *linux*) nixpkgs_prefix="pkgs/stdenv/linux" ;;
+        *darwin*) nixpkgs_prefix="pkgs/stdenv/darwin" ;;
+        *) die "don't know where to put '$target'" ;;
+    esac
+
+    # We enforce s3 prefix for all targets here. This slightly differs
+    # from manual uploads targets where names were chosen inconsistently.
+    s3_prefix="stdenv/$target"
+
+    # resolve 'latest' build to the build 'id', construct the link.
+    latest_build_uri="https://hydra.nixos.org/job/$jobset/$job/latest"
+    latest_build="$target.latest-build"
+    info "Fetching latest successful build from '${latest_build_uri}'"
+    curl -s -H "Content-Type: application/json" -L "$latest_build_uri" > "$latest_build"
+    [[ $? -ne 0 ]] && die "Failed to fetch latest successful build"
+    latest_build_id=$(jq '.id' < "$latest_build")
+    [[ $? -ne 0 ]] && die "Did not find 'id' in latest build"
+    build_uri="https://hydra.nixos.org/build/${latest_build_id}"
+
+    # We pick oldest jobset evaluation and extract the 'nicpkgs' commit.
+    #
+    # We use oldest instead of latest to make the result more stable
+    # across unrelated 'nixpkgs' updates. Ideally two subsequent runs of
+    # this refresher should produce the same output (provided there are
+    # no bootstrapTools updates committed between the two runs).
+    oldest_eval_id=$(jq '.jobsetevals|min' < "$latest_build")
+    [[ $? -ne 0 ]] && die "Did not find 'jobsetevals' in latest build"
+    eval_uri="https://hydra.nixos.org/eval/${oldest_eval_id}"
+    eval_meta="$target.eval-meta"
+    info "Fetching oldest eval details from '${eval_uri}' (can take a minute)"
+    curl -s -H "Content-Type: application/json"  -L "${eval_uri}" > "$eval_meta"
+    [[ $? -ne 0 ]] && die "Failed to fetch eval metadata"
+    nixpkgs_revision=$(jq --raw-output ".jobsetevalinputs.nixpkgs.revision" < "$eval_meta")
+    [[ $? -ne 0 ]] && die "Failed to fetch revision"
+
+    # Extract the build paths out of the build metadata
+    drvpath=$(jq --raw-output '.drvpath' < "${latest_build}")
+    [[ $? -ne 0 ]] && die "Did not find 'drvpath' in latest build"
+    outpath=$(jq --raw-output '.buildoutputs.out.path' < "${latest_build}")
+    [[ $? -ne 0 ]] && die "Did not find 'buildoutputs' in latest build"
+    build_timestamp=$(jq --raw-output '.timestamp' < "${latest_build}")
+    [[ $? -ne 0 ]] && die "Did not find 'timestamp' in latest build"
+    build_time=$(TZ=UTC LANG=C date --date="@${build_timestamp}" --rfc-email)
+    [[ $? -ne 0 ]] && die "Failed to format timestamp"
+
+    info "Fetching bootstrap tools to calculate hashes from '${outpath}'"
+    nix-store --realize "$outpath"
+    [[ $? -ne 0 ]] && die "Failed to fetch '${outpath}' from hydra"
+
+    fnames=()
+
+    target_file="${nixpkgs_prefix}/bootstrap-files/${target}.nix"
+    info "Writing '${target_file}'"
+    {
+        # header
+        cat <<EOF
+# Autogenerated by maintainers/scripts/bootstrap-files/refresh-tarballs.bash as:
+# $ ./refresh-tarballs.bash --targets=${target}
+#
+# Metadata:
+# - nixpkgs revision: ${nixpkgs_revision}
+# - hydra build: ${latest_build_uri}
+# - resolved hydra build: ${build_uri}
+# - instantiated derivation: ${drvpath}
+# - output directory: ${outpath}
+# - build time: ${build_time}
+{
+EOF
+      for p in "${outpath}/on-server"/*; do
+          fname=$(basename "$p")
+          fnames+=("$fname")
+          case "$fname" in
+              bootstrap-tools.tar.xz) attr=bootstrapTools ;;
+              busybox) attr=$fname ;;
+              *) die "Don't know how to map '$fname' to attribute name. Please update me."
+          esac
+
+          executable_arg=
+          executable_nix=
+          if [[ -x "$p" ]]; then
+              executable_arg="--executable"
+              executable_nix="    executable = true;"
+          fi
+          sha256=$(nix-prefetch-url $executable_arg --name "$fname" "file://$p")
+          [[ $? -ne 0 ]] && die "Failed to get the hash for '$p'"
+          sri=$(nix-hash --to-sri "sha256:$sha256")
+          [[ $? -ne 0 ]] && die "Failed to convert '$sha256' hash to an SRI form"
+
+          # individual file entries
+          cat <<EOF
+  $attr = import <nix/fetchurl.nix> {
+    url = "http://tarballs.nixos.org/${s3_prefix}/${nixpkgs_revision}/$fname";
+    hash = "${sri}";$(printf "\n%s" "${executable_nix}")
+  };
+EOF
+      done
+      # footer
+      cat <<EOF
+}
+EOF
+    } > "${target_file}"
+
+        target_file_commit_msg=${target}.commit_message
+        cat > "$target_file_commit_msg" <<EOF
+${nixpkgs_prefix}: update ${target} bootstrap-files
+
+sha256sum of files to be uploaded:
+
+$(
+echo "$ sha256sum ${outpath}/on-server/*"
+sha256sum ${outpath}/on-server/*
+)
+
+Suggested commands to upload files to 'tarballs.nixos.org':
+
+    $ nix-store --realize ${outpath}
+    $ aws s3 cp --recursive --acl public-read ${outpath}/on-server/ s3://nixpkgs-tarballs/${s3_prefix}/${nixpkgs_revision}
+    $ aws s3 cp --recursive s3://nixpkgs-tarballs/${s3_prefix}/${nixpkgs_revision} ./
+    $ sha256sum ${fnames[*]}
+    $ sha256sum ${outpath}/on-server/*
+EOF
+
+    cat "$target_file_commit_msg"
+    if [[ $commit == yes ]]; then
+        git commit "${target_file}" -F "$target_file_commit_msg"
+    else
+        info "DRY RUN: git commit ${target_file} -F $target_file_commit_msg"
+    fi
+    rm -- "$target_file_commit_msg"
+
+    # delete temp files
+    rm -- "$latest_build" "$eval_meta"
+done
diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix
index c5b37437ddb2..0a44b520a4d1 100644
--- a/maintainers/team-list.nix
+++ b/maintainers/team-list.nix
@@ -307,6 +307,20 @@ with lib.maintainers; {
     shortName = "Flying Circus employees";
   };
 
+  formatter = {
+    members = [
+      piegames
+      infinisil
+      das_j
+      tomberek
+      _0x4A6F
+      # Not in the maintainer list
+      # Sereja313
+    ];
+    scope = "Tentative Nix formatter team to be established in https://github.com/NixOS/rfcs/pull/166";
+    shortName = "Nix formatter team";
+  };
+
   freedesktop = {
     members = [ jtojnar ];
     scope = "Maintain Freedesktop.org packages for graphical desktop.";
diff --git a/nixos/doc/manual/configuration/linux-kernel.chapter.md b/nixos/doc/manual/configuration/linux-kernel.chapter.md
index 9d1b2bc2f9b8..31d8d1a7d0cf 100644
--- a/nixos/doc/manual/configuration/linux-kernel.chapter.md
+++ b/nixos/doc/manual/configuration/linux-kernel.chapter.md
@@ -92,6 +92,24 @@ To use your custom kernel package in your NixOS configuration, set
 boot.kernelPackages = pkgs.linuxPackagesFor yourCustomKernel;
 ```
 
+## Rust {#sec-linux-rust}
+
+The Linux kernel does not have Rust language support enabled by
+default. For kernel versions 6.7 or newer, experimental Rust support
+can be enabled. In a NixOS configuration, set:
+
+```nix
+boot.kernelPatches = [
+  {
+    name = "Rust Support";
+    patch = null;
+    features = {
+      rust = true;
+    };
+  }
+];
+```
+
 ## Developing kernel modules {#sec-linux-config-developing-modules}
 
 This section was moved to the [Nixpkgs manual](https://nixos.org/nixpkgs/manual#sec-linux-kernel-developing-modules).
diff --git a/nixos/doc/manual/configuration/profiles.chapter.md b/nixos/doc/manual/configuration/profiles.chapter.md
index 9f1f48f742ac..9f6c11b0d59d 100644
--- a/nixos/doc/manual/configuration/profiles.chapter.md
+++ b/nixos/doc/manual/configuration/profiles.chapter.md
@@ -29,6 +29,7 @@ profiles/graphical.section.md
 profiles/hardened.section.md
 profiles/headless.section.md
 profiles/installation-device.section.md
+profiles/perlless.section.md
 profiles/minimal.section.md
 profiles/qemu-guest.section.md
 ```
diff --git a/nixos/doc/manual/configuration/profiles/perlless.section.md b/nixos/doc/manual/configuration/profiles/perlless.section.md
new file mode 100644
index 000000000000..bf055971cfc4
--- /dev/null
+++ b/nixos/doc/manual/configuration/profiles/perlless.section.md
@@ -0,0 +1,11 @@
+# Perlless {#sec-perlless}
+
+::: {.warning}
+If you enable this profile, you will NOT be able to switch to a new
+configuration and thus you will not be able to rebuild your system with
+nixos-rebuild!
+:::
+
+Render your system completely perlless (i.e. without the perl interpreter). This
+includes a mechanism so that your build fails if it contains a Nix store path
+that references the string "perl".
diff --git a/nixos/doc/manual/configuration/sshfs-file-systems.section.md b/nixos/doc/manual/configuration/sshfs-file-systems.section.md
index d8c9dea6c337..e2e37454b7ea 100644
--- a/nixos/doc/manual/configuration/sshfs-file-systems.section.md
+++ b/nixos/doc/manual/configuration/sshfs-file-systems.section.md
@@ -38,8 +38,6 @@ The file system can be configured in NixOS via the usual [fileSystems](#opt-file
 Here's a typical setup:
 ```nix
 {
-  system.fsPackages = [ pkgs.sshfs ];
-
   fileSystems."/mnt/my-dir" = {
     device = "my-user@example.com:/my-dir/";
     fsType = "sshfs";
diff --git a/nixos/doc/manual/configuration/user-mgmt.chapter.md b/nixos/doc/manual/configuration/user-mgmt.chapter.md
index b35b38f6e964..71d61ce4c641 100644
--- a/nixos/doc/manual/configuration/user-mgmt.chapter.md
+++ b/nixos/doc/manual/configuration/user-mgmt.chapter.md
@@ -89,3 +89,18 @@ A user can be deleted using `userdel`:
 The flag `-r` deletes the user's home directory. Accounts can be
 modified using `usermod`. Unix groups can be managed using `groupadd`,
 `groupmod` and `groupdel`.
+
+## Create users and groups with `systemd-sysusers` {#sec-systemd-sysusers}
+
+::: {.note}
+This is experimental.
+:::
+
+Instead of using a custom perl script to create users and groups, you can use
+systemd-sysusers:
+
+```nix
+systemd.sysusers.enable = true;
+```
+
+The primary benefit of this is to remove a dependency on perl.
diff --git a/nixos/doc/manual/contributing-to-this-manual.chapter.md b/nixos/doc/manual/contributing-to-this-manual.chapter.md
index 6245280e30f0..83e4773e6866 100644
--- a/nixos/doc/manual/contributing-to-this-manual.chapter.md
+++ b/nixos/doc/manual/contributing-to-this-manual.chapter.md
@@ -1,6 +1,6 @@
 # Contributing to this manual {#chap-contributing}
 
-The [DocBook] and CommonMark sources of the NixOS manual are in the [nixos/doc/manual](https://github.com/NixOS/nixpkgs/tree/master/nixos/doc/manual) subdirectory of the [Nixpkgs](https://github.com/NixOS/nixpkgs) repository.
+The sources of the NixOS manual are in the [nixos/doc/manual](https://github.com/NixOS/nixpkgs/tree/master/nixos/doc/manual) subdirectory of the [Nixpkgs](https://github.com/NixOS/nixpkgs) repository.
 This manual uses the [Nixpkgs manual syntax](https://nixos.org/manual/nixpkgs/unstable/#sec-contributing-markup).
 
 You can quickly check your edits with the following:
diff --git a/nixos/doc/manual/development/etc-overlay.section.md b/nixos/doc/manual/development/etc-overlay.section.md
new file mode 100644
index 000000000000..e6f6d8d4ca1e
--- /dev/null
+++ b/nixos/doc/manual/development/etc-overlay.section.md
@@ -0,0 +1,36 @@
+# `/etc` via overlay filesystem {#sec-etc-overlay}
+
+::: {.note}
+This is experimental and requires a kernel version >= 6.6 because it uses
+new overlay features and relies on the new mount API.
+:::
+
+Instead of using a custom perl script to activate `/etc`, you activate it via an
+overlay filesystem:
+
+```nix
+system.etc.overlay.enable = true;
+```
+
+Using an overlay has two benefits:
+
+1. it removes a dependency on perl
+2. it makes activation faster (up to a few seconds)
+
+By default, the `/etc` overlay is mounted writable (i.e. there is a writable
+upper layer). However, you can also mount `/etc` immutably (i.e. read-only) by
+setting:
+
+```nix
+system.etc.overlay.mutable = false;
+```
+
+The overlay is atomically replaced during system switch. However, files that
+have been modified will NOT be overwritten. This is the biggest change compared
+to the perl-based system.
+
+If you manually make changes to `/etc` on your system and then switch to a new
+configuration where `system.etc.overlay.mutable = false;`, you will not be able
+to see the previously made changes in `/etc` anymore. However the changes are
+not completely gone, they are still in the upperdir of the previous overlay in
+`/.rw-etc/upper`.
diff --git a/nixos/doc/manual/development/what-happens-during-a-system-switch.chapter.md b/nixos/doc/manual/development/what-happens-during-a-system-switch.chapter.md
index 5d17a9c98514..28c06f999dac 100644
--- a/nixos/doc/manual/development/what-happens-during-a-system-switch.chapter.md
+++ b/nixos/doc/manual/development/what-happens-during-a-system-switch.chapter.md
@@ -56,4 +56,5 @@ explained in the next sections.
 unit-handling.section.md
 activation-script.section.md
 non-switchable-systems.section.md
+etc-overlay.section.md
 ```
diff --git a/nixos/doc/manual/development/writing-documentation.chapter.md b/nixos/doc/manual/development/writing-documentation.chapter.md
index 3d9bd318cf33..2e9dffd22ba8 100644
--- a/nixos/doc/manual/development/writing-documentation.chapter.md
+++ b/nixos/doc/manual/development/writing-documentation.chapter.md
@@ -7,7 +7,7 @@ worthy contribution to the project.
 
 ## Building the Manual {#sec-writing-docs-building-the-manual}
 
-The DocBook sources of the [](#book-nixos-manual) are in the
+The sources of the [](#book-nixos-manual) are in the
 [`nixos/doc/manual`](https://github.com/NixOS/nixpkgs/tree/master/nixos/doc/manual)
 subdirectory of the Nixpkgs repository.
 
@@ -29,65 +29,3 @@ nix-build nixos/release.nix -A manual.x86_64-linux
 When this command successfully finishes, it will tell you where the
 manual got generated. The HTML will be accessible through the `result`
 symlink at `./result/share/doc/nixos/index.html`.
-
-## Editing DocBook XML {#sec-writing-docs-editing-docbook-xml}
-
-For general information on how to write in DocBook, see [DocBook 5: The
-Definitive Guide](https://tdg.docbook.org/tdg/5.1/).
-
-Emacs nXML Mode is very helpful for editing DocBook XML because it
-validates the document as you write, and precisely locates errors. To
-use it, see [](#sec-emacs-docbook-xml).
-
-[Pandoc](https://pandoc.org/) can generate DocBook XML from a multitude of
-formats, which makes a good starting point. Here is an example of Pandoc
-invocation to convert GitHub-Flavoured MarkDown to DocBook 5 XML:
-
-```ShellSession
-pandoc -f markdown_github -t docbook5 docs.md -o my-section.md
-```
-
-Pandoc can also quickly convert a single `section.xml` to HTML, which is
-helpful when drafting.
-
-Sometimes writing valid DocBook is too difficult. In this case,
-submit your documentation updates in a [GitHub
-Issue](https://github.com/NixOS/nixpkgs/issues/new) and someone will
-handle the conversion to XML for you.
-
-## Creating a Topic {#sec-writing-docs-creating-a-topic}
-
-You can use an existing topic as a basis for the new topic or create a
-topic from scratch.
-
-Keep the following guidelines in mind when you create and add a topic:
-
--   The NixOS [`book`](https://tdg.docbook.org/tdg/5.0/book.html)
-    element is in `nixos/doc/manual/manual.xml`. It includes several
-    [`parts`](https://tdg.docbook.org/tdg/5.0/book.html) which are in
-    subdirectories.
-
--   Store the topic file in the same directory as the `part` to which it
-    belongs. If your topic is about configuring a NixOS module, then the
-    XML file can be stored alongside the module definition `nix` file.
-
--   If you include multiple words in the file name, separate the words
-    with a dash. For example: `ipv6-config.xml`.
-
--   Make sure that the `xml:id` value is unique. You can use abbreviations
-    if the ID is too long. For example: `nixos-config`.
-
--   Determine whether your topic is a chapter or a section. If you are
-    unsure, open an existing topic file and check whether the main
-    element is chapter or section.
-
-## Adding a Topic to the Book {#sec-writing-docs-adding-a-topic}
-
-Open the parent CommonMark file and add a line to the list of
-chapters with the file name of the topic that you created. If you
-created a `section`, you add the file to the `chapter` file. If you created
-a `chapter`, you add the file to the `part` file.
-
-If the topic is about configuring a NixOS module, it can be
-automatically included in the manual by using the `meta.doc` attribute.
-See [](#sec-meta-attributes) for an explanation.
diff --git a/nixos/doc/manual/release-notes/rl-2405.section.md b/nixos/doc/manual/release-notes/rl-2405.section.md
index 9e8ef49783ca..06c3e1949b70 100644
--- a/nixos/doc/manual/release-notes/rl-2405.section.md
+++ b/nixos/doc/manual/release-notes/rl-2405.section.md
@@ -10,7 +10,7 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 - `screen`'s module has been cleaned, and will now require you to set `programs.screen.enable` in order to populate `screenrc` and add the program to the environment.
 
-- `linuxPackages_testing_bcachefs` is now fully deprecated by `linuxPackages_testing`, and is therefore no longer available.
+- `linuxPackages_testing_bcachefs` is now fully deprecated by `linuxPackages_latest`, and is therefore no longer available.
 
 - NixOS now installs a stub ELF loader that prints an informative error message when users attempt to run binaries not made for NixOS.
    - This can be disabled through the `environment.stub-ld.enable` option.
@@ -18,31 +18,65 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 - Julia environments can now be built with arbitrary packages from the ecosystem using the `.withPackages` function. For example: `julia.withPackages ["Plots"]`.
 
+- A new option `systemd.sysusers.enable` was added. If enabled, users and
+  groups are created with systemd-sysusers instead of with a custom perl script.
+
+- A new option `system.etc.overlay.enable` was added. If enabled, `/etc` is
+  mounted via an overlayfs instead of being created by a custom perl script.
+
+- It is now possible to have a completely perlless system (i.e. a system
+  without perl). Previously, the NixOS activation depended on two perl scripts
+  which can now be replaced via an opt-in mechanism. To make your system
+  perlless, you can use the new perlless profile:
+  ```
+  { modulesPath, ... }: {
+    imports = [ "${modulesPath}/profiles/perlless.nix" ];
+  }
+  ```
+
 ## New Services {#sec-release-24.05-new-services}
 
 <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
 
+- [Handheld Daemon](https://github.com/hhd-dev/hhd), support for gaming handhelds like the Legion Go, ROG Ally, and GPD Win. Available as [services.handheld-daemon](#opt-services.handheld-daemon.enable).
+
 - [Guix](https://guix.gnu.org), a functional package manager inspired by Nix. Available as [services.guix](#opt-services.guix.enable).
 
+- [pyLoad](https://pyload.net/), a FOSS download manager written in Python. Available as [services.pyload](#opt-services.pyload.enable)
+
 - [maubot](https://github.com/maubot/maubot), a plugin-based Matrix bot framework. Available as [services.maubot](#opt-services.maubot.enable).
 
 - systemd's gateway, upload, and remote services, which provides ways of sending journals across the network. Enable using [services.journald.gateway](#opt-services.journald.gateway.enable), [services.journald.upload](#opt-services.journald.upload.enable), and [services.journald.remote](#opt-services.journald.remote.enable).
 
 - [GNS3](https://www.gns3.com/), a network software emulator. Available as [services.gns3-server](#opt-services.gns3-server.enable).
 
+- [pretalx](https://github.com/pretalx/pretalx), a conference planning tool. Available as [services.pretalx](#opt-services.pretalx.enable).
+
 - [rspamd-trainer](https://gitlab.com/onlime/rspamd-trainer), script triggered by a helper which reads mails from a specific mail inbox and feeds them into rspamd for spam/ham training.
 
 - [ollama](https://ollama.ai), server for running large language models locally.
 
+- [hebbot](https://github.com/haecker-felix/hebbot), a Matrix bot to generate "This Week in X" like blog posts. Available as [services.hebbot](#opt-services.hebbot.enable).
+
 - [Anki Sync Server](https://docs.ankiweb.net/sync-server.html), the official sync server built into recent versions of Anki. Available as [services.anki-sync-server](#opt-services.anki-sync-server.enable).
 The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been marked deprecated and will be dropped after 24.05 due to lack of maintenance of the anki-sync-server softwares.
 
+- [Suwayomi Server](https://github.com/Suwayomi/Suwayomi-Server), a free and open source manga reader server that runs extensions built for [Tachiyomi](https://tachiyomi.org). Available as [services.suwayomi-server](#opt-services.suwayomi-server.enable).
+
 - [ping_exporter](https://github.com/czerwonk/ping_exporter), a Prometheus exporter for ICMP echo requests. Available as [services.prometheus.exporters.ping](#opt-services.prometheus.exporters.ping.enable).
 
+- [TigerBeetle](https://tigerbeetle.com/), a distributed financial accounting database designed for mission critical safety and performance. Available as [services.tigerbeetle](#opt-services.tigerbeetle.enable).
+
 - [Clevis](https://github.com/latchset/clevis), a pluggable framework for automated decryption, used to unlock encrypted devices in initrd. Available as [boot.initrd.clevis.enable](#opt-boot.initrd.clevis.enable).
 
 - [TuxClocker](https://github.com/Lurkki14/tuxclocker), a hardware control and monitoring program. Available as [programs.tuxclocker](#opt-programs.tuxclocker.enable).
 
+- [ALVR](https://github.com/alvr-org/alvr), a VR desktop streamer. Available as [programs.alvr](#opt-programs.alvr.enable)
+
+- [RustDesk](https://rustdesk.com), a full-featured open source remote control alternative for self-hosting and security with minimal configuration. Alternative to TeamViewer.
+
+- [systemd-lock-handler](https://git.sr.ht/~whynothugo/systemd-lock-handler/), a bridge between logind D-Bus events and systemd targets. Available as [services.systemd-lock-handler.enable](#opt-services.systemd-lock-handler.enable).
+
 ## Backward Incompatibilities {#sec-release-24.05-incompatibilities}
 
 <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
@@ -61,8 +95,17 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - `nitter` requires a `guest_accounts.jsonl` to be provided as a path or loaded into the default location at `/var/lib/nitter/guest_accounts.jsonl`. See [Guest Account Branch Deployment](https://github.com/zedeus/nitter/wiki/Guest-Account-Branch-Deployment) for details.
 
+- `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.
+  To migrate, you will have 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"`
+  where the file `secret_file` contains the string `mysecret`.
+
 - Invidious has changed its default database username from `kemal` to `invidious`. Setups involving an externally provisioned database (i.e. `services.invidious.database.createLocally == false`) should adjust their configuration accordingly. The old `kemal` user will not be removed automatically even when the database is provisioned automatically.(https://github.com/NixOS/nixpkgs/pull/265857)
 
+- `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`.
+
 - `paperless`' `services.paperless.extraConfig` setting has been removed and converted to the freeform type and option named `services.paperless.settings`.
 
 - The legacy and long deprecated systemd target `network-interfaces.target` has been removed. Use `network.target` instead.
@@ -77,6 +120,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
   release notes of [v19](https://github.com/systemd/mkosi/releases/tag/v19) and
   [v20](https://github.com/systemd/mkosi/releases/tag/v20) for a list of changes.
 
+- The `woodpecker-*` packages have been updated to v2 which includes [breaking changes](https://woodpecker-ci.org/docs/next/migrations#200).
+
 - `services.nginx` will no longer advertise HTTP/3 availability automatically. This must now be manually added, preferably to each location block.
   Example:
 
@@ -109,15 +154,32 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - `services.resolved.fallbackDns` 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.
 
+- `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`.
+
 - `services.avahi.nssmdns` got split into `services.avahi.nssmdns4` and `services.avahi.nssmdns6` which enable the mDNS NSS switch for IPv4 and IPv6 respectively.
   Since most mDNS responders only register IPv4 addresses, most users want to keep the IPv6 support disabled to avoid long timeouts.
 
+- A warning has been added for services that are
+  `after = [ "network-online.target" ]` but do not depend on it (e.g. using
+  `wants`), because the dependency that `multi-user.target` has on
+  `network-online.target` is planned for removal.
+
+- `services.archisteamfarm` no longer uses the abbreviation `asf` for its state directory (`/var/lib/asf`), user and group (both `asf`). Instead the long name `archisteamfarm` is used.
+  Configurations with `system.stateVersion` 23.11 or earlier, default to the old stateDirectory until the 24.11 release and must either set the option explicitly or move the data to the new directory.
+
 - `networking.iproute2.enable` now does not set `environment.etc."iproute2/rt_tables".text`.
 
   Setting `environment.etc."iproute2/{CONFIG_FILE_NAME}".text` will override the whole configuration file instead of appending it to the upstream configuration file.
 
   `CONFIG_FILE_NAME` includes `bpf_pinning`, `ematch_map`, `group`, `nl_protos`, `rt_dsfield`, `rt_protos`, `rt_realms`, `rt_scopes`, and `rt_tables`.
 
+- `netbox` was updated to v3.7. `services.netbox.package` still defaults
+  to v3.6 if `stateVersion` is earlier than 24.05. Refer to upstream's breaking
+  changes [for
+  v3.7.0](https://github.com/netbox-community/netbox/releases/tag/v3.7.0) and
+  upgrade NetBox by changing `services.netbox.package`. Database migrations
+  will be run automatically.
+
 - The executable file names for `firefox-devedition`, `firefox-beta`, `firefox-esr` now matches 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.
 
 - switch-to-configuration does not directly call systemd-tmpfiles anymore.
@@ -143,6 +205,29 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
   The module now includes an optional config check, that is enabled by default, to make the change obvious before any deployment.
   More information about the configuration syntax change is available in the [upstream repository](https://github.com/prometheus/snmp_exporter/blob/b75fc6b839ee3f3ccbee68bee55f1ae99555084a/auth-split-migration.md).
 
+- [watchdogd](https://troglobit.com/projects/watchdogd/), a system and process supervisor using watchdog timers. Available as [services.watchdogd](#opt-services.watchdogd.enable).
+
+- The `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:
+
+  - The main binary for the package is now named `jdtls` instead of `jdt-language-server`, equivalent to what most editors expect the binary to be named.
+
+  - JVM arguments should now be provided with the `--jvm-arg` flag instead of setting `JAVA_OPTS`.
+
+  - The `-data` path is no longer required to run the package, and will be set to point to a folder in `$TMP` if missing.
+
+- `nomad` has been updated - note that HashiCorp recommends updating one minor version at a time. Please check [their upgrade guide](https://developer.hashicorp.com/nomad/docs/upgrade) for information on safely updating clusters and potential breaking changes.
+
+  - `nomad` is now Nomad 1.7.x.
+
+  - `nomad_1_4` has been removed, as it is now unsupported upstream.
+
+- The `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:
+
+  - The `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.
+
 ## Other Notable Changes {#sec-release-24.05-notable-changes}
 
 <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
@@ -167,24 +252,31 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - [Lilypond](https://lilypond.org/index.html) and [Denemo](https://www.denemo.org) are now compiled with Guile 3.0.
 
-- The following options of the Nextcloud module were moved into [`services.nextcloud.extraOptions`](#opt-services.nextcloud.extraOptions) and renamed to match the name from Nextcloud's `config.php`:
-  - `logLevel` -> [`loglevel`](#opt-services.nextcloud.extraOptions.loglevel),
-  - `logType` -> [`log_type`](#opt-services.nextcloud.extraOptions.log_type),
-  - `defaultPhoneRegion` -> [`default_phone_region`](#opt-services.nextcloud.extraOptions.default_phone_region),
-  - `overwriteProtocol` -> [`overwriteprotocol`](#opt-services.nextcloud.extraOptions.overwriteprotocol),
-  - `skeletonDirectory` -> [`skeletondirectory`](#opt-services.nextcloud.extraOptions.skeletondirectory),
-  - `globalProfiles` -> [`profile.enabled`](#opt-services.nextcloud.extraOptions._profile.enabled_),
-  - `extraTrustedDomains` -> [`trusted_domains`](#opt-services.nextcloud.extraOptions.trusted_domains) and
-  - `trustedProxies` -> [`trusted_proxies`](#opt-services.nextcloud.extraOptions.trusted_proxies).
+- The following options of the Nextcloud module were moved into [`services.nextcloud.settings`](#opt-services.nextcloud.settings) and renamed to match the name from Nextcloud's `config.php`:
+  - `logLevel` -> [`loglevel`](#opt-services.nextcloud.settings.loglevel),
+  - `logType` -> [`log_type`](#opt-services.nextcloud.settings.log_type),
+  - `defaultPhoneRegion` -> [`default_phone_region`](#opt-services.nextcloud.settings.default_phone_region),
+  - `overwriteProtocol` -> [`overwriteprotocol`](#opt-services.nextcloud.settings.overwriteprotocol),
+  - `skeletonDirectory` -> [`skeletondirectory`](#opt-services.nextcloud.settings.skeletondirectory),
+  - `globalProfiles` -> [`profile.enabled`](#opt-services.nextcloud.settings._profile.enabled_),
+  - `extraTrustedDomains` -> [`trusted_domains`](#opt-services.nextcloud.settings.trusted_domains) and
+  - `trustedProxies` -> [`trusted_proxies`](#opt-services.nextcloud.settings.trusted_proxies).
 
 - The option [`services.nextcloud.config.dbport`] of the Nextcloud module was removed to match upstream.
   The port can be specified in [`services.nextcloud.config.dbhost`](#opt-services.nextcloud.config.dbhost).
 
+- `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`.
+
+- New options were added to the dnsdist module to enable and configure a DNSCrypt endpoint (see `services.dnsdist.dnscrypt.enable`, etc.).
+  The module can generate the DNSCrypt provider key pair, certificates and also performs their rotation automatically with no downtime.
+
 - The Yama LSM is now enabled by default in the kernel, which prevents ptracing
   non-child processes. This means you will not be able to attach gdb to an
   existing process, but will need to start that process from gdb (so it is a
   child). Or you can set `boot.kernel.sysctl."kernel.yama.ptrace_scope"` to 0.
 
+- The netbird module now allows running multiple tunnels in parallel through [`services.netbird.tunnels`](#opt-services.netbird.tunnels).
+
 - [Nginx virtual hosts](#opt-services.nginx.virtualHosts) using `forceSSL` or
   `globalRedirect` can now have redirect codes other than 301 through
   `redirectCode`.
@@ -200,12 +292,16 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 - `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.
 
+- `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.
+
 - The `krb5` module has been rewritten and moved to `security.krb5`, moving all options but `security.krb5.enable` and `security.krb5.package` into `security.krb5.settings`.
 
 - Gitea 1.21 upgrade has several breaking changes, including:
   - Custom themes and other assets that were previously stored in `custom/public/*` now belong in `custom/public/assets/*`
   - New instances of Gitea using MySQL now ignore the `[database].CHARSET` config option and always use the `utf8mb4` charset, existing instances should migrate via the `gitea doctor convert` CLI command.
 
+- The `services.paperless` module no longer uses the previously downloaded NLTK data stored in `/var/cache/paperless/nltk`. This directory can be removed.
+
 - The `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).
 
 - The `btrbk` module now automatically selects and provides required compression
@@ -215,5 +311,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - The `mpich` package expression now requires `withPm` to be a list, e.g. `"hydra:gforker"` becomes `[ "hydra" "gforker" ]`.
 
+- 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.
+
 - QtMultimedia has changed its default backend to `QT_MEDIA_BACKEND=ffmpeg` (previously `gstreamer` on Linux or `darwin` on MacOS).
   The previous native backends remain available but are now minimally maintained. Refer to [upstream documentation](https://doc.qt.io/qt-6/qtmultimedia-index.html#ffmpeg-as-the-default-backend) for further details about each platform.
+
diff --git a/nixos/lib/eval-config.nix b/nixos/lib/eval-config.nix
index da099f86aa2c..8bab3752073f 100644
--- a/nixos/lib/eval-config.nix
+++ b/nixos/lib/eval-config.nix
@@ -110,6 +110,7 @@ let
   withExtraAttrs = configuration: configuration // {
     inherit extraArgs;
     inherit (configuration._module.args) pkgs;
+    inherit lib;
     extendModules = args: withExtraAttrs (configuration.extendModules args);
   };
 in
diff --git a/nixos/lib/test-driver/test_driver/machine.py b/nixos/lib/test-driver/test_driver/machine.py
index da60b669fa27..93411a4a348e 100644
--- a/nixos/lib/test-driver/test_driver/machine.py
+++ b/nixos/lib/test-driver/test_driver/machine.py
@@ -768,6 +768,32 @@ class Machine:
             self.booted = False
             self.connected = False
 
+    def wait_for_qmp_event(
+        self, event_filter: Callable[[dict[str, Any]], bool], timeout: int = 60 * 10
+    ) -> dict[str, Any]:
+        """
+        Wait for a QMP event which you can filter with the `event_filter` function.
+        The function takes as an input a dictionary of the event and if it returns True, we return that event,
+        if it does not, we wait for the next event and retry.
+
+        It will skip all events received in the meantime, if you want to keep them,
+        you have to do the bookkeeping yourself and store them somewhere.
+
+        By default, it will wait up to 10 minutes, `timeout` is in seconds.
+        """
+        if self.qmp_client is None:
+            raise RuntimeError("QMP API is not ready yet, is the VM ready?")
+
+        start = time.time()
+        while True:
+            evt = self.qmp_client.wait_for_event(timeout=timeout)
+            if event_filter(evt):
+                return evt
+
+            elapsed = time.time() - start
+            if elapsed >= timeout:
+                raise TimeoutError
+
     def get_tty_text(self, tty: str) -> str:
         status, output = self.execute(
             f"fold -w$(stty -F /dev/tty{tty} size | "
diff --git a/nixos/lib/utils.nix b/nixos/lib/utils.nix
index e618cf2f861a..49ba2e5c8386 100644
--- a/nixos/lib/utils.nix
+++ b/nixos/lib/utils.nix
@@ -109,6 +109,7 @@ rec {
       recurse = prefix: item:
         if item ? ${attr} then
           nameValuePair prefix item.${attr}
+        else if isDerivation item then []
         else if isAttrs item then
           map (name:
             let
diff --git a/nixos/modules/config/no-x-libs.nix b/nixos/modules/config/no-x-libs.nix
index 4727e5b85ef2..a50a03ce52d4 100644
--- a/nixos/modules/config/no-x-libs.nix
+++ b/nixos/modules/config/no-x-libs.nix
@@ -37,6 +37,7 @@ with lib;
       ghostscript = super.ghostscript.override { cupsSupport = false; x11Support = false; };
       gjs = super.gjs.overrideAttrs { doCheck = false; installTests = false; }; # avoid test dependency on gtk3
       gobject-introspection = super.gobject-introspection.override { x11Support = false; };
+      gpg-tui = super.gpg-tui.override { x11Support = false; };
       gpsd = super.gpsd.override { guiSupport = false; };
       graphviz = super.graphviz-nox;
       gst_all_1 = super.gst_all_1 // {
diff --git a/nixos/modules/config/shells-environment.nix b/nixos/modules/config/shells-environment.nix
index bc6583442edf..a8476bd2aaed 100644
--- a/nixos/modules/config/shells-environment.nix
+++ b/nixos/modules/config/shells-environment.nix
@@ -214,7 +214,8 @@ in
       ''
         # Create the required /bin/sh symlink; otherwise lots of things
         # (notably the system() function) won't work.
-        mkdir -m 0755 -p /bin
+        mkdir -p /bin
+        chmod 0755 /bin
         ln -sfn "${cfg.binsh}" /bin/.sh.tmp
         mv /bin/.sh.tmp /bin/sh # atomically replace /bin/sh
       '';
diff --git a/nixos/modules/config/users-groups.nix b/nixos/modules/config/users-groups.nix
index 2aed620eb154..967ad0846d75 100644
--- a/nixos/modules/config/users-groups.nix
+++ b/nixos/modules/config/users-groups.nix
@@ -685,7 +685,7 @@ in {
       shadow.gid = ids.gids.shadow;
     };
 
-    system.activationScripts.users = {
+    system.activationScripts.users = if !config.systemd.sysusers.enable then {
       supportsDryActivation = true;
       text = ''
         install -m 0700 -d /root
@@ -694,7 +694,7 @@ in {
         ${pkgs.perl.withPackages (p: [ p.FileSlurp p.JSON ])}/bin/perl \
         -w ${./update-users-groups.pl} ${spec}
       '';
-    };
+    } else ""; # keep around for backwards compatibility
 
     system.activationScripts.update-lingering = let
       lingerDir = "/var/lib/systemd/linger";
@@ -711,7 +711,9 @@ in {
     '';
 
     # Warn about user accounts with deprecated password hashing schemes
-    system.activationScripts.hashes = {
+    # This does not work when the users and groups are created by
+    # systemd-sysusers because the users are created too late then.
+    system.activationScripts.hashes = if !config.systemd.sysusers.enable then {
       deps = [ "users" ];
       text = ''
         users=()
@@ -729,7 +731,7 @@ in {
           printf ' - %s\n' "''${users[@]}"
         fi
       '';
-    };
+    } else ""; # keep around for backwards compatibility
 
     # for backwards compatibility
     system.activationScripts.groups = stringAfter [ "users" ] "";
diff --git a/nixos/modules/hardware/corectrl.nix b/nixos/modules/hardware/corectrl.nix
index 8ef61a158d5c..b1d3f2f0ce7e 100644
--- a/nixos/modules/hardware/corectrl.nix
+++ b/nixos/modules/hardware/corectrl.nix
@@ -12,6 +12,10 @@ in
       Add your user to the corectrl group to run corectrl without needing to enter your password
     '');
 
+    package = mkPackageOption pkgs "corectrl" {
+      extraDescription = "Useful for overriding the configuration options used for the package.";
+    };
+
     gpuOverclock = {
       enable = mkEnableOption (lib.mdDoc ''
         GPU overclocking
@@ -32,9 +36,9 @@ in
 
   config = mkIf cfg.enable (lib.mkMerge [
     {
-      environment.systemPackages = [ pkgs.corectrl ];
+      environment.systemPackages = [ cfg.package ];
 
-      services.dbus.packages = [ pkgs.corectrl ];
+      services.dbus.packages = [ cfg.package ];
 
       users.groups.corectrl = { };
 
diff --git a/nixos/modules/image/repart-image.nix b/nixos/modules/image/repart-image.nix
index b4a1dfe51ff3..7ac47ee32ff4 100644
--- a/nixos/modules/image/repart-image.nix
+++ b/nixos/modules/image/repart-image.nix
@@ -10,6 +10,8 @@
 , systemd
 , fakeroot
 , util-linux
+
+  # filesystem tools
 , dosfstools
 , mtools
 , e2fsprogs
@@ -18,13 +20,19 @@
 , btrfs-progs
 , xfsprogs
 
+  # compression tools
+, zstd
+, xz
+
   # arguments
-, name
+, imageFileBasename
+, compression
 , fileSystems
 , partitions
 , split
 , seed
 , definitionsDirectory
+, sectorSize
 }:
 
 let
@@ -52,14 +60,25 @@ let
   };
 
   fileSystemTools = builtins.concatMap (f: fileSystemToolMapping."${f}") fileSystems;
+
+  compressionPkg = {
+    "zstd" = zstd;
+    "xz" = xz;
+  }."${compression.algorithm}";
+
+  compressionCommand = {
+    "zstd" = "zstd --no-progress --threads=0 -${toString compression.level}";
+    "xz" = "xz --keep --verbose --threads=0 -${toString compression.level}";
+  }."${compression.algorithm}";
 in
 
-runCommand name
+runCommand imageFileBasename
 {
   nativeBuildInputs = [
     systemd
     fakeroot
     util-linux
+    compressionPkg
   ] ++ fileSystemTools;
 } ''
   amendedRepartDefinitions=$(${amendRepartDefinitions} ${partitions} ${definitionsDirectory})
@@ -67,6 +86,7 @@ runCommand name
   mkdir -p $out
   cd $out
 
+  echo "Building image with systemd-repart..."
   unshare --map-root-user fakeroot systemd-repart \
     --dry-run=no \
     --empty=create \
@@ -75,6 +95,18 @@ runCommand name
     --definitions="$amendedRepartDefinitions" \
     --split="${lib.boolToString split}" \
     --json=pretty \
-    image.raw \
+    ${lib.optionalString (sectorSize != null) "--sector-size=${toString sectorSize}"} \
+    ${imageFileBasename}.raw \
     | tee repart-output.json
+
+  # Compression is implemented in the same derivation as opposed to in a
+  # separate derivation to allow users to save disk space. Disk images are
+  # already very space intensive so we want to allow users to mitigate this.
+  if ${lib.boolToString compression.enable}; then
+    for f in ${imageFileBasename}*; do
+      echo "Compressing $f with ${compression.algorithm}..."
+      # Keep the original file when compressing and only delete it afterwards
+      ${compressionCommand} $f && rm $f
+    done
+  fi
 ''
diff --git a/nixos/modules/image/repart.nix b/nixos/modules/image/repart.nix
index da4f45d9a639..6a933f0d83cc 100644
--- a/nixos/modules/image/repart.nix
+++ b/nixos/modules/image/repart.nix
@@ -66,7 +66,53 @@ in
 
     name = lib.mkOption {
       type = lib.types.str;
-      description = lib.mdDoc "The name of the image.";
+      description = lib.mdDoc ''
+        Name of the image.
+
+        If this option is unset but config.system.image.id is set,
+        config.system.image.id is used as the default value.
+      '';
+    };
+
+    version = lib.mkOption {
+      type = lib.types.nullOr lib.types.str;
+      default = config.system.image.version;
+      defaultText = lib.literalExpression "config.system.image.version";
+      description = lib.mdDoc "Version of the image";
+    };
+
+    imageFileBasename = lib.mkOption {
+      type = lib.types.str;
+      readOnly = true;
+      description = lib.mdDoc ''
+        Basename of the image filename without any extension (e.g. `image_1`).
+      '';
+    };
+
+    imageFile = lib.mkOption {
+      type = lib.types.str;
+      readOnly = true;
+      description = lib.mdDoc ''
+        Filename of the image including all extensions (e.g `image_1.raw` or
+        `image_1.raw.zst`).
+      '';
+    };
+
+    compression = {
+      enable = lib.mkEnableOption (lib.mdDoc "Image compression");
+
+      algorithm = lib.mkOption {
+        type = lib.types.enum [ "zstd" "xz" ];
+        default = "zstd";
+        description = lib.mdDoc "Compression algorithm";
+      };
+
+      level = lib.mkOption {
+        type = lib.types.int;
+        description = lib.mdDoc ''
+          Compression level. The available range depends on the used algorithm.
+        '';
+      };
     };
 
     seed = lib.mkOption {
@@ -89,6 +135,16 @@ in
       '';
     };
 
+    sectorSize = lib.mkOption {
+      type = with lib.types; nullOr int;
+      default = 512;
+      example = lib.literalExpression "4096";
+      description = lib.mdDoc ''
+        The sector size of the disk image produced by systemd-repart. This
+        value must be a power of 2 between 512 and 4096.
+      '';
+    };
+
     package = lib.mkPackageOption pkgs "systemd-repart" {
       # We use buildPackages so that repart images are built with the build
       # platform's systemd, allowing for cross-compiled systems to work.
@@ -131,6 +187,32 @@ in
 
   config = {
 
+    image.repart =
+      let
+        version = config.image.repart.version;
+        versionInfix = if version != null then "_${version}" else "";
+        compressionSuffix = lib.optionalString cfg.compression.enable
+          {
+            "zstd" = ".zst";
+            "xz" = ".xz";
+          }."${cfg.compression.algorithm}";
+      in
+      {
+        name = lib.mkIf (config.system.image.id != null) (lib.mkOptionDefault config.system.image.id);
+        imageFileBasename = cfg.name + versionInfix;
+        imageFile = cfg.imageFileBasename + ".raw" + compressionSuffix;
+
+        compression = {
+          # Generally default to slightly faster than default compression
+          # levels under the assumption that most of the building will be done
+          # for development and release builds will be customized.
+          level = lib.mkOptionDefault {
+            "zstd" = 3;
+            "xz" = 3;
+          }."${cfg.compression.algorithm}";
+        };
+      };
+
     system.build.image =
       let
         fileSystems = lib.filter
@@ -160,7 +242,7 @@ in
       in
       pkgs.callPackage ./repart-image.nix {
         systemd = cfg.package;
-        inherit (cfg) name split seed;
+        inherit (cfg) imageFileBasename compression split seed sectorSize;
         inherit fileSystems definitionsDirectory partitions;
       };
 
diff --git a/nixos/modules/misc/version.nix b/nixos/modules/misc/version.nix
index 45dbf45b3ae7..c929c3b37285 100644
--- a/nixos/modules/misc/version.nix
+++ b/nixos/modules/misc/version.nix
@@ -28,6 +28,8 @@ let
     DOCUMENTATION_URL = lib.optionalString (cfg.distroId == "nixos") "https://nixos.org/learn.html";
     SUPPORT_URL = lib.optionalString (cfg.distroId == "nixos") "https://nixos.org/community.html";
     BUG_REPORT_URL = lib.optionalString (cfg.distroId == "nixos") "https://github.com/NixOS/nixpkgs/issues";
+    IMAGE_ID = lib.optionalString (config.system.image.id != null) config.system.image.id;
+    IMAGE_VERSION = lib.optionalString (config.system.image.version != null) config.system.image.version;
   } // lib.optionalAttrs (cfg.variant_id != null) {
     VARIANT_ID = cfg.variant_id;
   };
@@ -110,6 +112,38 @@ in
       example = "installer";
     };
 
+    image = {
+
+      id = lib.mkOption {
+        type = types.nullOr (types.strMatching "^[a-z0-9._-]+$");
+        default = null;
+        description = lib.mdDoc ''
+          Image identifier.
+
+          This corresponds to the IMAGE_ID field in os-release. See the
+          upstream docs for more details on valid characters for this field:
+          https://www.freedesktop.org/software/systemd/man/latest/os-release.html#IMAGE_ID=
+
+          You would only want to set this option if you're build NixOS appliance images.
+        '';
+      };
+
+      version = lib.mkOption {
+        type = types.nullOr (types.strMatching "^[a-z0-9._-]+$");
+        default = null;
+        description = lib.mdDoc ''
+          Image version.
+
+          This corresponds to the IMAGE_VERSION field in os-release. See the
+          upstream docs for more details on valid characters for this field:
+          https://www.freedesktop.org/software/systemd/man/latest/os-release.html#IMAGE_VERSION=
+
+          You would only want to set this option if you're build NixOS appliance images.
+        '';
+      };
+
+    };
+
     stateVersion = mkOption {
       type = types.str;
       # TODO Remove this and drop the default of the option so people are forced to set it.
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index e6fffd4716de..e97fb45e769c 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -139,6 +139,7 @@
   ./programs/_1password-gui.nix
   ./programs/_1password.nix
   ./programs/adb.nix
+  ./programs/alvr.nix
   ./programs/appgate-sdp.nix
   ./programs/atop.nix
   ./programs/ausweisapp.nix
@@ -195,7 +196,6 @@
   ./programs/haguichi.nix
   ./programs/hamster.nix
   ./programs/htop.nix
-  ./programs/hyprland.nix
   ./programs/iay.nix
   ./programs/iftop.nix
   ./programs/i3lock.nix
@@ -215,6 +215,7 @@
   ./programs/minipro.nix
   ./programs/miriway.nix
   ./programs/mosh.nix
+  ./programs/mouse-actions.nix
   ./programs/msmtp.nix
   ./programs/mtr.nix
   ./programs/nano.nix
@@ -273,6 +274,7 @@
   ./programs/wavemon.nix
   ./programs/wayland/cardboard.nix
   ./programs/wayland/labwc.nix
+  ./programs/wayland/hyprland.nix
   ./programs/wayland/river.nix
   ./programs/wayland/sway.nix
   ./programs/wayland/waybar.nix
@@ -446,6 +448,7 @@
   ./services/databases/postgresql.nix
   ./services/databases/redis.nix
   ./services/databases/surrealdb.nix
+  ./services/databases/tigerbeetle.nix
   ./services/databases/victoriametrics.nix
   ./services/desktops/accountsservice.nix
   ./services/desktops/ayatana-indicators.nix
@@ -506,7 +509,7 @@
   ./services/editors/haste.nix
   ./services/editors/infinoted.nix
   ./services/finance/odoo.nix
-  ./services/games/asf.nix
+  ./services/games/archisteamfarm.nix
   ./services/games/crossfire-server.nix
   ./services/games/deliantra-server.nix
   ./services/games/factorio.nix
@@ -532,6 +535,7 @@
   ./services/hardware/fancontrol.nix
   ./services/hardware/freefall.nix
   ./services/hardware/fwupd.nix
+  ./services/hardware/handheld-daemon.nix
   ./services/hardware/hddfancontrol.nix
   ./services/hardware/illum.nix
   ./services/hardware/interception-tools.nix
@@ -633,6 +637,7 @@
   ./services/matrix/appservice-irc.nix
   ./services/matrix/conduit.nix
   ./services/matrix/dendrite.nix
+  ./services/matrix/hebbot.nix
   ./services/matrix/maubot.nix
   ./services/matrix/mautrix-facebook.nix
   ./services/matrix/mautrix-telegram.nix
@@ -832,6 +837,7 @@
   ./services/monitoring/riemann-dash.nix
   ./services/monitoring/riemann-tools.nix
   ./services/monitoring/riemann.nix
+  ./services/monitoring/rustdesk-server.nix
   ./services/monitoring/scollector.nix
   ./services/monitoring/smartd.nix
   ./services/monitoring/snmpd.nix
@@ -849,6 +855,7 @@
   ./services/monitoring/vmagent.nix
   ./services/monitoring/vmalert.nix
   ./services/monitoring/vnstat.nix
+  ./services/monitoring/watchdogd.nix
   ./services/monitoring/zabbix-agent.nix
   ./services/monitoring/zabbix-proxy.nix
   ./services/monitoring/zabbix-server.nix
@@ -1056,6 +1063,7 @@
   ./services/networking/openvpn.nix
   ./services/networking/ostinato.nix
   ./services/networking/owamp.nix
+  ./services/networking/pyload.nix
   ./services/networking/pdns-recursor.nix
   ./services/networking/pdnsd.nix
   ./services/networking/peroxide.nix
@@ -1194,6 +1202,7 @@
   ./services/security/hologram-agent.nix
   ./services/security/hologram-server.nix
   ./services/security/infnoise.nix
+  ./services/security/intune.nix
   ./services/security/jitterentropy-rngd.nix
   ./services/security/kanidm.nix
   ./services/security/munge.nix
@@ -1231,6 +1240,7 @@
   ./services/system/saslauthd.nix
   ./services/system/self-deploy.nix
   ./services/system/systembus-notify.nix
+  ./services/system/systemd-lock-handler.nix
   ./services/system/uptimed.nix
   ./services/system/zram-generator.nix
   ./services/torrent/deluge.nix
@@ -1335,10 +1345,12 @@
   ./services/web-apps/plantuml-server.nix
   ./services/web-apps/plausible.nix
   ./services/web-apps/powerdns-admin.nix
+  ./services/web-apps/pretalx.nix
   ./services/web-apps/prosody-filer.nix
   ./services/web-apps/restya-board.nix
   ./services/web-apps/rimgo.nix
   ./services/web-apps/sftpgo.nix
+  ./services/web-apps/suwayomi-server.nix
   ./services/web-apps/rss-bridge.nix
   ./services/web-apps/selfoss.nix
   ./services/web-apps/shiori.nix
@@ -1466,6 +1478,7 @@
   ./system/boot/stratisroot.nix
   ./system/boot/modprobe.nix
   ./system/boot/networkd.nix
+  ./system/boot/uki.nix
   ./system/boot/unl0kr.nix
   ./system/boot/plymouth.nix
   ./system/boot/resolved.nix
@@ -1486,6 +1499,7 @@
   ./system/boot/systemd/repart.nix
   ./system/boot/systemd/shutdown.nix
   ./system/boot/systemd/sysupdate.nix
+  ./system/boot/systemd/sysusers.nix
   ./system/boot/systemd/tmpfiles.nix
   ./system/boot/systemd/user.nix
   ./system/boot/systemd/userdbd.nix
@@ -1513,6 +1527,7 @@
   ./tasks/filesystems/nfs.nix
   ./tasks/filesystems/ntfs.nix
   ./tasks/filesystems/reiserfs.nix
+  ./tasks/filesystems/sshfs.nix
   ./tasks/filesystems/squashfs.nix
   ./tasks/filesystems/unionfs-fuse.nix
   ./tasks/filesystems/vboxsf.nix
diff --git a/nixos/modules/profiles/hardened.nix b/nixos/modules/profiles/hardened.nix
index 74dc2cb1b9aa..b85a2ac7e69d 100644
--- a/nixos/modules/profiles/hardened.nix
+++ b/nixos/modules/profiles/hardened.nix
@@ -39,14 +39,17 @@ with lib;
   security.apparmor.killUnconfinedConfinables = mkDefault true;
 
   boot.kernelParams = [
-    # Slab/slub sanity checks, redzoning, and poisoning
-    "slub_debug=FZP"
+    # Don't merge slabs
+    "slab_nomerge"
 
-    # Overwrite free'd memory
+    # Overwrite free'd pages
     "page_poison=1"
 
     # Enable page allocator randomization
     "page_alloc.shuffle=1"
+
+    # Disable debugfs
+    "debugfs=off"
   ];
 
   boot.blacklistedKernelModules = [
diff --git a/nixos/modules/profiles/installation-device.nix b/nixos/modules/profiles/installation-device.nix
index 58f07b050b5c..0b10c0414147 100644
--- a/nixos/modules/profiles/installation-device.nix
+++ b/nixos/modules/profiles/installation-device.nix
@@ -39,6 +39,9 @@ with lib;
     # Allow the user to log in as root without a password.
     users.users.root.initialHashedPassword = "";
 
+    # Don't require sudo/root to `reboot` or `poweroff`.
+    security.polkit.enable = true;
+
     # Allow passwordless sudo from nixos user
     security.sudo = {
       enable = mkDefault true;
diff --git a/nixos/modules/profiles/perlless.nix b/nixos/modules/profiles/perlless.nix
new file mode 100644
index 000000000000..90abd14f077e
--- /dev/null
+++ b/nixos/modules/profiles/perlless.nix
@@ -0,0 +1,31 @@
+# WARNING: If you enable this profile, you will NOT be able to switch to a new
+# configuration and thus you will not be able to rebuild your system with
+# nixos-rebuild!
+
+{ lib, ... }:
+
+{
+
+  # Disable switching to a new configuration. This is not a necessary
+  # limitation of a perlless system but just a current one. In the future,
+  # perlless switching might be possible.
+  system.switch.enable = lib.mkDefault false;
+
+  # Remove perl from activation
+  boot.initrd.systemd.enable = lib.mkDefault true;
+  system.etc.overlay.enable = lib.mkDefault true;
+  systemd.sysusers.enable = lib.mkDefault true;
+
+  # Random perl remnants
+  system.disableInstallerTools = lib.mkDefault true;
+  programs.less.lessopen = lib.mkDefault null;
+  programs.command-not-found.enable = lib.mkDefault false;
+  boot.enableContainers = lib.mkDefault false;
+  environment.defaultPackages = lib.mkDefault [ ];
+  documentation.info.enable = lib.mkDefault false;
+
+  # Check that the system does not contain a Nix store path that contains the
+  # string "perl".
+  system.forbiddenDependenciesRegex = "perl";
+
+}
diff --git a/nixos/modules/programs/alvr.nix b/nixos/modules/programs/alvr.nix
new file mode 100644
index 000000000000..c01b74ad3a51
--- /dev/null
+++ b/nixos/modules/programs/alvr.nix
@@ -0,0 +1,35 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+let
+  cfg = config.programs.alvr;
+in
+{
+  options = {
+    programs.alvr = {
+      enable = mkEnableOption (lib.mdDoc "ALVR, the VR desktop streamer");
+
+      package = mkPackageOption pkgs "alvr" { };
+
+      openFirewall = mkOption {
+        type = types.bool;
+        default = false;
+        description = lib.mdDoc ''
+          Whether to open the default ports in the firewall for the ALVR server.
+        '';
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    environment.systemPackages = [ cfg.package ];
+
+    networking.firewall = mkIf cfg.openFirewall {
+      allowedTCPPorts = [ 9943 9944 ];
+      allowedUDPPorts = [ 9943 9944 ];
+    };
+  };
+
+  meta.maintainers = with maintainers; [ passivelemon ];
+}
diff --git a/nixos/modules/programs/gamemode.nix b/nixos/modules/programs/gamemode.nix
index 344f392852e2..2bb92ed8e0ef 100644
--- a/nixos/modules/programs/gamemode.nix
+++ b/nixos/modules/programs/gamemode.nix
@@ -90,6 +90,8 @@ in
         ];
       };
     };
+
+    users.groups.gamemode = { };
   };
 
   meta = {
diff --git a/nixos/modules/programs/light.nix b/nixos/modules/programs/light.nix
index 57cc925be465..1cdf22a7699d 100644
--- a/nixos/modules/programs/light.nix
+++ b/nixos/modules/programs/light.nix
@@ -9,6 +9,7 @@ in
 {
   options = {
     programs.light = {
+
       enable = mkOption {
         default = false;
         type = types.bool;
@@ -17,11 +18,60 @@ in
           and udev rules granting access to members of the "video" group.
         '';
       };
+
+      brightnessKeys = {
+        enable = mkOption {
+          type = types.bool;
+          default = false;
+          description = ''
+            Whether to enable brightness control with keyboard keys.
+
+            This is mainly useful for minimalistic (desktop) environments. You
+            may want to leave this disabled if you run a feature-rich desktop
+            environment such as KDE, GNOME or Xfce as those handle the
+            brightness keys themselves. However, enabling brightness control
+            with this setting makes the control independent of X, so the keys
+            work in non-graphical ttys, so you might want to consider using this
+            instead of the default offered by the desktop environment.
+
+            Enabling this will turn on {option}`services.actkbd`.
+          '';
+        };
+
+        step = mkOption {
+          type = types.int;
+          default = 10;
+          description = ''
+            The percentage value by which to increase/decrease brightness.
+          '';
+        };
+
+      };
+
     };
   };
 
   config = mkIf cfg.enable {
     environment.systemPackages = [ pkgs.light ];
     services.udev.packages = [ pkgs.light ];
+    services.actkbd = mkIf cfg.brightnessKeys.enable {
+      enable = true;
+      bindings = let
+        light = "${pkgs.light}/bin/light";
+        step = toString cfg.brightnessKeys.step;
+      in [
+        {
+          keys = [ 224 ];
+          events = [ "key" ];
+          # Use minimum brightness 0.1 so the display won't go totally black.
+          command = "${light} -N 0.1 && ${light} -U ${step}";
+        }
+        {
+          keys = [ 225 ];
+          events = [ "key" ];
+          command = "${light} -A ${step}";
+        }
+      ];
+    };
   };
 }
diff --git a/nixos/modules/programs/mouse-actions.nix b/nixos/modules/programs/mouse-actions.nix
new file mode 100644
index 000000000000..fdf39d56d383
--- /dev/null
+++ b/nixos/modules/programs/mouse-actions.nix
@@ -0,0 +1,15 @@
+{ config, lib, pkgs, ... }:
+
+let
+  cfg = config.programs.mouse-actions;
+in
+  {
+    options.programs.mouse-actions = {
+      enable = lib.mkEnableOption ''
+        mouse-actions udev rules. This is a prerequisite for using mouse-actions without being root.
+      '';
+    };
+    config = lib.mkIf cfg.enable {
+      services.udev.packages = [ pkgs.mouse-actions ];
+    };
+  }
diff --git a/nixos/modules/programs/nautilus-open-any-terminal.nix b/nixos/modules/programs/nautilus-open-any-terminal.nix
new file mode 100644
index 000000000000..d205fb3ec916
--- /dev/null
+++ b/nixos/modules/programs/nautilus-open-any-terminal.nix
@@ -0,0 +1,36 @@
+{ config, lib, pkgs, ... }:
+
+let
+  cfg = config.programs.nautilus-open-any-terminal;
+in
+{
+  options.programs.nautilus-open-any-terminal = {
+    enable = lib.mkEnableOption (lib.mdDoc "nautilus-open-any-terminal");
+
+    terminal = lib.mkOption {
+      type = with lib.types; nullOr str;
+      default = null;
+      description = lib.mdDoc ''
+        The terminal emulator to add to context-entry of nautilus. Supported terminal
+        emulators are listed in https://github.com/Stunkymonkey/nautilus-open-any-terminal#supported-terminal-emulators.
+      '';
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+    environment.systemPackages = with pkgs; [
+      gnome.nautilus-python
+      nautilus-open-any-terminal
+    ];
+    programs.dconf = lib.optionalAttrs (cfg.terminal != null) {
+      enable = true;
+      profiles.user.databases = [{
+        settings."com/github/stunkymonkey/nautilus-open-any-terminal".terminal = cfg.terminal;
+        lockAll = true;
+      }];
+    };
+  };
+  meta = {
+    maintainers = with lib.maintainers; [ stunkymonkey linsui ];
+  };
+}
diff --git a/nixos/modules/programs/regreet.nix b/nixos/modules/programs/regreet.nix
index 0c44d717044e..55d0c11781ab 100644
--- a/nixos/modules/programs/regreet.nix
+++ b/nixos/modules/programs/regreet.nix
@@ -78,11 +78,15 @@ in
         else settingsFormat.generate "regreet.toml" cfg.settings;
     };
 
-    systemd.tmpfiles.rules = let
-      group = config.users.users.${config.services.greetd.settings.default_session.user}.group;
-    in [
-      "d /var/log/regreet 0755 greeter ${group} - -"
-      "d /var/cache/regreet 0755 greeter ${group} - -"
-    ];
+    systemd.tmpfiles.settings."10-regreet" = let
+      defaultConfig = {
+        user = "greeter";
+        group = config.users.users.${config.services.greetd.settings.default_session.user}.group;
+        mode = "0755";
+      };
+    in {
+      "/var/log/regreet".d = defaultConfig;
+      "/var/cache/regreet".d = defaultConfig;
+    };
   };
 }
diff --git a/nixos/modules/programs/ssh.nix b/nixos/modules/programs/ssh.nix
index c39a3c8d509b..0c1461709c22 100644
--- a/nixos/modules/programs/ssh.nix
+++ b/nixos/modules/programs/ssh.nix
@@ -12,6 +12,7 @@ let
     ''
       #! ${pkgs.runtimeShell} -e
       export DISPLAY="$(systemctl --user show-environment | ${pkgs.gnused}/bin/sed 's/^DISPLAY=\(.*\)/\1/; t; d')"
+      export XAUTHORITY="$(systemctl --user show-environment | ${pkgs.gnused}/bin/sed 's/^XAUTHORITY=\(.*\)/\1/; t; d')"
       export WAYLAND_DISPLAY="$(systemctl --user show-environment | ${pkgs.gnused}/bin/sed 's/^WAYLAND_DISPLAY=\(.*\)/\1/; t; d')"
       exec ${cfg.askPassword} "$@"
     '';
diff --git a/nixos/modules/programs/hyprland.nix b/nixos/modules/programs/wayland/hyprland.nix
index 9061ce5da83a..9061ce5da83a 100644
--- a/nixos/modules/programs/hyprland.nix
+++ b/nixos/modules/programs/wayland/hyprland.nix
diff --git a/nixos/modules/security/acme/default.nix b/nixos/modules/security/acme/default.nix
index 7cc302969fb6..40d9c487996b 100644
--- a/nixos/modules/security/acme/default.nix
+++ b/nixos/modules/security/acme/default.nix
@@ -897,10 +897,10 @@ in {
         certs = attrValues cfg.certs;
       in [
         {
-          assertion = cfg.email != null || all (certOpts: certOpts.email != null) certs;
+          assertion = cfg.defaults.email != null || all (certOpts: certOpts.email != null) certs;
           message = ''
             You must define `security.acme.certs.<name>.email` or
-            `security.acme.email` to register with the CA. Note that using
+            `security.acme.defaults.email` to register with the CA. Note that using
             many different addresses for certs may trigger account rate limits.
           '';
         }
diff --git a/nixos/modules/security/pam.nix b/nixos/modules/security/pam.nix
index 111be7057afc..f809848fd428 100644
--- a/nixos/modules/security/pam.nix
+++ b/nixos/modules/security/pam.nix
@@ -700,6 +700,7 @@ let
               || cfg.pamMount
               || cfg.enableKwallet
               || cfg.enableGnomeKeyring
+              || config.services.intune.enable
               || cfg.googleAuthenticator.enable
               || cfg.gnupg.enable
               || cfg.failDelay.enable
@@ -726,6 +727,7 @@ let
                 kwalletd = "${pkgs.plasma5Packages.kwallet.bin}/bin/kwalletd5";
               }; }
               { name = "gnome_keyring"; enable = cfg.enableGnomeKeyring; control = "optional"; modulePath = "${pkgs.gnome.gnome-keyring}/lib/security/pam_gnome_keyring.so"; }
+              { name = "intune"; enable = config.services.intune.enable; control = "optional"; modulePath = "${pkgs.intune-portal}/lib/security/pam_intune.so"; }
               { name = "gnupg"; enable = cfg.gnupg.enable; control = "optional"; modulePath = "${pkgs.pam_gnupg}/lib/security/pam_gnupg.so"; settings = {
                 store-only = cfg.gnupg.storeOnly;
               }; }
@@ -867,9 +869,7 @@ let
           { name = "gnupg"; enable = cfg.gnupg.enable; control = "optional"; modulePath = "${pkgs.pam_gnupg}/lib/security/pam_gnupg.so"; settings = {
             no-autostart = cfg.gnupg.noAutostart;
           }; }
-          { name = "cgfs"; enable = config.virtualisation.lxc.lxcfs.enable; control = "optional"; modulePath = "${pkgs.lxc}/lib/security/pam_cgfs.so"; args = [
-            "-c" "all"
-          ]; }
+          { name = "intune"; enable = config.services.intune.enable; control = "optional"; modulePath = "${pkgs.intune-portal}/lib/security/pam_intune.so"; }
         ];
       };
     };
diff --git a/nixos/modules/security/wrappers/wrapper.c b/nixos/modules/security/wrappers/wrapper.c
index 3277e7ef6f79..3e126875c687 100644
--- a/nixos/modules/security/wrappers/wrapper.c
+++ b/nixos/modules/security/wrappers/wrapper.c
@@ -172,6 +172,13 @@ static int make_caps_ambient(const char *self_path) {
 int main(int argc, char **argv) {
     ASSERT(argc >= 1);
 
+    // argv[0] goes into a lot of places, to a far greater degree than other elements
+    // of argv. glibc has had buffer overflows relating to argv[0], eg CVE-2023-6246.
+    // Since we expect the wrappers to be invoked from either $PATH or /run/wrappers/bin,
+    // there should be no reason to pass any particularly large values here, so we can
+    // be strict for strictness' sake.
+    ASSERT(strlen(argv[0]) < 512);
+
     int debug = getenv(wrapper_debug) != NULL;
 
     // Drop insecure environment variables explicitly
diff --git a/nixos/modules/services/audio/gmediarender.nix b/nixos/modules/services/audio/gmediarender.nix
index 545f2b1a2b60..a4cb89098db7 100644
--- a/nixos/modules/services/audio/gmediarender.nix
+++ b/nixos/modules/services/audio/gmediarender.nix
@@ -64,6 +64,7 @@ in
   config = mkIf cfg.enable {
     systemd = {
       services.gmediarender = {
+        wants = [ "network-online.target" ];
         after = [ "network-online.target" ];
         wantedBy = [ "multi-user.target" ];
         description = "gmediarender server daemon";
diff --git a/nixos/modules/services/audio/jmusicbot.nix b/nixos/modules/services/audio/jmusicbot.nix
index fd1d4da19284..e7803677d0fd 100644
--- a/nixos/modules/services/audio/jmusicbot.nix
+++ b/nixos/modules/services/audio/jmusicbot.nix
@@ -26,6 +26,7 @@ in
   config = mkIf cfg.enable {
     systemd.services.jmusicbot = {
       wantedBy = [ "multi-user.target" ];
+      wants = [ "network-online.target" ];
       after = [ "network-online.target" ];
       description = "Discord music bot that's easy to set up and run yourself!";
       serviceConfig = mkMerge [{
diff --git a/nixos/modules/services/audio/mopidy.nix b/nixos/modules/services/audio/mopidy.nix
index 9d8e67b0ea47..8eebf0f9d1e1 100644
--- a/nixos/modules/services/audio/mopidy.nix
+++ b/nixos/modules/services/audio/mopidy.nix
@@ -70,9 +70,10 @@ in {
 
   config = mkIf cfg.enable {
 
-    systemd.tmpfiles.rules = [
-      "d '${cfg.dataDir}' - mopidy mopidy - -"
-    ];
+    systemd.tmpfiles.settings."10-mopidy".${cfg.dataDir}.d = {
+      user = "mopidy";
+      group = "mopidy";
+    };
 
     systemd.services.mopidy = {
       wantedBy = [ "multi-user.target" ];
diff --git a/nixos/modules/services/audio/navidrome.nix b/nixos/modules/services/audio/navidrome.nix
index e44fc822e4ad..912edb03aa4c 100644
--- a/nixos/modules/services/audio/navidrome.nix
+++ b/nixos/modules/services/audio/navidrome.nix
@@ -53,6 +53,7 @@ in {
         RuntimeDirectory = "navidrome";
         RootDirectory = "/run/navidrome";
         ReadWritePaths = "";
+        BindPaths = lib.optional (cfg.settings ? DataFolder) cfg.settings.DataFolder;
         BindReadOnlyPaths = [
           # navidrome uses online services to download additional album metadata / covers
           "${config.environment.etc."ssl/certs/ca-certificates.crt".source}:/etc/ssl/certs/ca-certificates.crt"
diff --git a/nixos/modules/services/audio/spotifyd.nix b/nixos/modules/services/audio/spotifyd.nix
index 975be5a87cba..1194b6f200d7 100644
--- a/nixos/modules/services/audio/spotifyd.nix
+++ b/nixos/modules/services/audio/spotifyd.nix
@@ -50,6 +50,7 @@ in
 
     systemd.services.spotifyd = {
       wantedBy = [ "multi-user.target" ];
+      wants = [ "network-online.target" ];
       after = [ "network-online.target" "sound.target" ];
       description = "spotifyd, a Spotify playing daemon";
       environment.SHELL = "/bin/sh";
diff --git a/nixos/modules/services/audio/ympd.nix b/nixos/modules/services/audio/ympd.nix
index b74cc3f9c0b4..6e8d22dab3c8 100644
--- a/nixos/modules/services/audio/ympd.nix
+++ b/nixos/modules/services/audio/ympd.nix
@@ -50,6 +50,7 @@ in {
       description = "Standalone MPD Web GUI written in C";
 
       wantedBy = [ "multi-user.target" ];
+      wants = [ "network-online.target" ];
       after = [ "network-online.target" ];
 
       serviceConfig = {
diff --git a/nixos/modules/services/continuous-integration/buildbot/master.nix b/nixos/modules/services/continuous-integration/buildbot/master.nix
index 446d19b8fd5a..9f702b17937c 100644
--- a/nixos/modules/services/continuous-integration/buildbot/master.nix
+++ b/nixos/modules/services/continuous-integration/buildbot/master.nix
@@ -267,7 +267,7 @@ in {
 
     systemd.services.buildbot-master = {
       description = "Buildbot Continuous Integration Server.";
-      after = [ "network-online.target" ];
+      after = [ "network.target" ];
       wantedBy = [ "multi-user.target" ];
       path = cfg.packages ++ cfg.pythonPackages python.pkgs;
       environment.PYTHONPATH = "${python.withPackages (self: cfg.pythonPackages self ++ [ package ])}/${python.sitePackages}";
diff --git a/nixos/modules/services/continuous-integration/gitea-actions-runner.nix b/nixos/modules/services/continuous-integration/gitea-actions-runner.nix
index 3f2be9464849..06f0da3451a6 100644
--- a/nixos/modules/services/continuous-integration/gitea-actions-runner.nix
+++ b/nixos/modules/services/continuous-integration/gitea-actions-runner.nix
@@ -188,6 +188,7 @@ in
         nameValuePair "gitea-runner-${escapeSystemdPath name}" {
           inherit (instance) enable;
           description = "Gitea Actions Runner";
+          wants = [ "network-online.target" ];
           after = [
             "network-online.target"
           ] ++ optionals (wantsDocker) [
diff --git a/nixos/modules/services/continuous-integration/github-runner/options.nix b/nixos/modules/services/continuous-integration/github-runner/options.nix
index 2335826e8b66..b9b1ea05e967 100644
--- a/nixos/modules/services/continuous-integration/github-runner/options.nix
+++ b/nixos/modules/services/continuous-integration/github-runner/options.nix
@@ -153,6 +153,7 @@ with lib;
     type = types.attrs;
     description = lib.mdDoc ''
       Modify the systemd service. Can be used to, e.g., adjust the sandboxing options.
+      See {manpage}`systemd.exec(5)` for more options.
     '';
     example = {
       ProtectHome = false;
diff --git a/nixos/modules/services/continuous-integration/hydra/default.nix b/nixos/modules/services/continuous-integration/hydra/default.nix
index 46b03bba37be..54bbe69703f9 100644
--- a/nixos/modules/services/continuous-integration/hydra/default.nix
+++ b/nixos/modules/services/continuous-integration/hydra/default.nix
@@ -393,6 +393,7 @@ in
     systemd.services.hydra-evaluator =
       { wantedBy = [ "multi-user.target" ];
         requires = [ "hydra-init.service" ];
+        wants = [ "network-online.target" ];
         after = [ "hydra-init.service" "network.target" "network-online.target" ];
         path = with pkgs; [ hydra-package nettools jq ];
         restartTriggers = [ hydraConf ];
diff --git a/nixos/modules/services/databases/firebird.nix b/nixos/modules/services/databases/firebird.nix
index 36c12eaaf5f1..431233ce5ed4 100644
--- a/nixos/modules/services/databases/firebird.nix
+++ b/nixos/modules/services/databases/firebird.nix
@@ -143,7 +143,7 @@ in
       # ConnectionTimeout = 180
 
       #RemoteServiceName = gds_db
-      RemoteServicePort = ${cfg.port}
+      RemoteServicePort = ${toString cfg.port}
 
       # randomly choose port for server Event Notification
       #RemoteAuxPort = 0
diff --git a/nixos/modules/services/databases/lldap.nix b/nixos/modules/services/databases/lldap.nix
index d1574c98fe67..e821da8e58aa 100644
--- a/nixos/modules/services/databases/lldap.nix
+++ b/nixos/modules/services/databases/lldap.nix
@@ -104,6 +104,7 @@ in
   config = lib.mkIf cfg.enable {
     systemd.services.lldap = {
       description = "Lightweight LDAP server (lldap)";
+      wants = [ "network-online.target" ];
       after = [ "network-online.target" ];
       wantedBy = [ "multi-user.target" ];
       serviceConfig = {
diff --git a/nixos/modules/services/databases/openldap.nix b/nixos/modules/services/databases/openldap.nix
index a7a0909f55e1..df36e37976a4 100644
--- a/nixos/modules/services/databases/openldap.nix
+++ b/nixos/modules/services/databases/openldap.nix
@@ -294,6 +294,7 @@ in {
         "man:slapd-mdb"
       ];
       wantedBy = [ "multi-user.target" ];
+      wants = [ "network-online.target" ];
       after = [ "network-online.target" ];
       serviceConfig = {
         User = cfg.user;
diff --git a/nixos/modules/services/databases/tigerbeetle.md b/nixos/modules/services/databases/tigerbeetle.md
new file mode 100644
index 000000000000..47394d443059
--- /dev/null
+++ b/nixos/modules/services/databases/tigerbeetle.md
@@ -0,0 +1,33 @@
+# TigerBeetle {#module-services-tigerbeetle}
+
+*Source:* {file}`modules/services/databases/tigerbeetle.nix`
+
+*Upstream documentation:* <https://docs.tigerbeetle.com/>
+
+TigerBeetle is a distributed financial accounting database designed for mission critical safety and performance.
+
+To enable TigerBeetle, add the following to your {file}`configuration.nix`:
+```
+  services.tigerbeetle.enable = true;
+```
+
+When first started, the TigerBeetle service will create its data file at {file}`/var/lib/tigerbeetle` unless the file already exists, in which case it will just use the existing file.
+If you make changes to the configuration of TigerBeetle after its data file was already created (for example increasing the replica count), you may need to remove the existing file to avoid conflicts.
+
+## Configuring {#module-services-tigerbeetle-configuring}
+
+By default, TigerBeetle will only listen on a local interface.
+To configure it to listen on a different interface (and to configure it to connect to other replicas, if you're creating more than one), you'll have to set the `addresses` option.
+Note that the TigerBeetle module won't open any firewall ports automatically, so if you configure it to listen on an external interface, you'll need to ensure that connections can reach it:
+
+```
+  services.tigerbeetle = {
+    enable = true;
+    addresses = [ "0.0.0.0:3001" ];
+  };
+
+  networking.firewall.allowedTCPPorts = [ 3001 ];
+```
+
+A complete list of options for TigerBeetle can be found [here](#opt-services.tigerbeetle.enable).
+
diff --git a/nixos/modules/services/databases/tigerbeetle.nix b/nixos/modules/services/databases/tigerbeetle.nix
new file mode 100644
index 000000000000..b90a0703175f
--- /dev/null
+++ b/nixos/modules/services/databases/tigerbeetle.nix
@@ -0,0 +1,115 @@
+{ config, lib, pkgs, ... }:
+let
+  cfg = config.services.tigerbeetle;
+in
+{
+  meta = {
+    maintainers = with lib.maintainers; [ danielsidhion ];
+    doc = ./tigerbeetle.md;
+    buildDocsInSandbox = true;
+  };
+
+  options = {
+    services.tigerbeetle = with lib; {
+      enable = mkEnableOption (mdDoc "TigerBeetle server");
+
+      package = mkPackageOption pkgs "tigerbeetle" { };
+
+      clusterId = mkOption {
+        type = types.either types.ints.unsigned (types.strMatching "[0-9]+");
+        default = 0;
+        description = lib.mdDoc ''
+          The 128-bit cluster ID used to create the replica data file (if needed).
+          Since Nix only supports integers up to 64 bits, you need to pass a string to this if the cluster ID can't fit in 64 bits.
+          Otherwise, you can pass the cluster ID as either an integer or a string.
+        '';
+      };
+
+      replicaIndex = mkOption {
+        type = types.ints.unsigned;
+        default = 0;
+        description = lib.mdDoc ''
+          The index (starting at 0) of the replica in the cluster.
+        '';
+      };
+
+      replicaCount = mkOption {
+        type = types.ints.unsigned;
+        default = 1;
+        description = lib.mdDoc ''
+          The number of replicas participating in replication of the cluster.
+        '';
+      };
+
+      cacheGridSize = mkOption {
+        type = types.strMatching "[0-9]+(K|M|G)B";
+        default = "1GB";
+        description = lib.mdDoc ''
+          The grid cache size.
+          The grid cache acts like a page cache for TigerBeetle.
+          It is recommended to set this as large as possible.
+        '';
+      };
+
+      addresses = mkOption {
+        type = types.listOf types.nonEmptyStr;
+        default = [ "3001" ];
+        description = lib.mdDoc ''
+          The addresses of all replicas in the cluster.
+          This should be a list of IPv4/IPv6 addresses with port numbers.
+          Either the address or port number (but not both) may be omitted, in which case a default of 127.0.0.1 or 3001 will be used.
+          The first address in the list corresponds to the address for replica 0, the second address for replica 1, and so on.
+        '';
+      };
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+    assertions =
+      let
+        numAddresses = builtins.length cfg.addresses;
+      in
+      [
+        {
+          assertion = cfg.replicaIndex < cfg.replicaCount;
+          message = "the TigerBeetle replica index must fit the configured replica count";
+        }
+        {
+          assertion = cfg.replicaCount == numAddresses;
+          message = if cfg.replicaCount < numAddresses then "TigerBeetle must not have more addresses than the configured number of replicas" else "TigerBeetle must be configured with the addresses of all replicas";
+        }
+      ];
+
+    systemd.services.tigerbeetle =
+      let
+        replicaDataPath = "/var/lib/tigerbeetle/${builtins.toString cfg.clusterId}_${builtins.toString cfg.replicaIndex}.tigerbeetle";
+      in
+      {
+        description = "TigerBeetle server";
+
+        wantedBy = [ "multi-user.target" ];
+        after = [ "network.target" ];
+
+        preStart = ''
+          if ! test -e "${replicaDataPath}"; then
+            ${lib.getExe cfg.package} format --cluster="${builtins.toString cfg.clusterId}" --replica="${builtins.toString cfg.replicaIndex}" --replica-count="${builtins.toString cfg.replicaCount}" "${replicaDataPath}"
+          fi
+        '';
+
+        serviceConfig = {
+          Type = "exec";
+
+          DynamicUser = true;
+          ProtectHome = true;
+          DevicePolicy = "closed";
+
+          StateDirectory = "tigerbeetle";
+          StateDirectoryMode = 700;
+
+          ExecStart = "${lib.getExe cfg.package} start --cache-grid=${cfg.cacheGridSize} --addresses=${lib.escapeShellArg (builtins.concatStringsSep "," cfg.addresses)} ${replicaDataPath}";
+        };
+      };
+
+    environment.systemPackages = [ cfg.package ];
+  };
+}
diff --git a/nixos/modules/services/desktops/geoclue2.nix b/nixos/modules/services/desktops/geoclue2.nix
index b04f46c26a56..2a68bb0b55f3 100644
--- a/nixos/modules/services/desktops/geoclue2.nix
+++ b/nixos/modules/services/desktops/geoclue2.nix
@@ -200,6 +200,7 @@ in
     };
 
     systemd.services.geoclue = {
+      wants = lib.optionals cfg.enableWifi [ "network-online.target" ];
       after = lib.optionals cfg.enableWifi [ "network-online.target" ];
       # restart geoclue service when the configuration changes
       restartTriggers = [
@@ -217,6 +218,7 @@ in
         # we can't be part of a system service, and the agent should
         # be okay with the main service coming and going
         wantedBy = [ "default.target" ];
+        wants = lib.optionals cfg.enableWifi [ "network-online.target" ];
         after = lib.optionals cfg.enableWifi [ "network-online.target" ];
         unitConfig.ConditionUser = "!@system";
         serviceConfig = {
diff --git a/nixos/modules/services/development/livebook.md b/nixos/modules/services/development/livebook.md
index 5012e977a4f7..5315f2c2755a 100644
--- a/nixos/modules/services/development/livebook.md
+++ b/nixos/modules/services/development/livebook.md
@@ -15,11 +15,12 @@ which runs the server.
 {
   services.livebook = {
     enableUserService = true;
-    port = 20123;
+    environment = {
+      LIVEBOOK_PORT = 20123;
+      LIVEBOOK_PASSWORD = "mypassword";
+    };
     # See note below about security
-    environmentFile = pkgs.writeText "livebook.env" ''
-      LIVEBOOK_PASSWORD = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
-    '';
+    environmentFile = "/var/lib/livebook.env";
   };
 }
 ```
@@ -30,14 +31,19 @@ The Livebook server has the ability to run any command as the user it
 is running under, so securing access to it with a password is highly
 recommended.
 
-Putting the password in the Nix configuration like above is an easy
-way to get started but it is not recommended in the real world because
-the `livebook.env` file will be added to the world-readable Nix store.
-A better approach would be to put the password in some secure
-user-readable location and set `environmentFile = /home/user/secure/livebook.env`.
+Putting the password in the Nix configuration like above is an easy way to get
+started but it is not recommended in the real world because the resulting
+environment variables can be read by unprivileged users.  A better approach
+would be to put the password in some secure user-readable location and set
+`environmentFile = /home/user/secure/livebook.env`.
 
 :::
 
+The [Livebook
+documentation](https://hexdocs.pm/livebook/readme.html#environment-variables)
+lists all the applicable environment variables. It is recommended to at least
+set `LIVEBOOK_PASSWORD` or `LIVEBOOK_TOKEN_ENABLED=false`.
+
 ### Extra dependencies {#module-services-livebook-extra-dependencies}
 
 By default, the Livebook service is run with minimum dependencies, but
diff --git a/nixos/modules/services/development/livebook.nix b/nixos/modules/services/development/livebook.nix
index 75729ff28efa..df0e6e01e97c 100644
--- a/nixos/modules/services/development/livebook.nix
+++ b/nixos/modules/services/development/livebook.nix
@@ -14,58 +14,64 @@ in
 
     package = mkPackageOption pkgs "livebook" { };
 
-    environmentFile = mkOption {
-      type = types.path;
+    environment = mkOption {
+      type = with types; attrsOf (nullOr (oneOf [ bool int str ]));
+      default = { };
       description = lib.mdDoc ''
-        Environment file as defined in {manpage}`systemd.exec(5)` passed to the service.
+        Environment variables to set.
 
-        This must contain at least `LIVEBOOK_PASSWORD` or
-        `LIVEBOOK_TOKEN_ENABLED=false`.  See `livebook server --help`
-        for other options.'';
-    };
+        Livebook is configured through the use of environment variables. The
+        available configuration options can be found in the [Livebook
+        documentation](https://hexdocs.pm/livebook/readme.html#environment-variables).
 
-    erlang_node_short_name = mkOption {
-      type = with types; nullOr str;
-      default = null;
-      example = "livebook";
-      description = "A short name for the distributed node.";
-    };
+        Note that all environment variables set through this configuration
+        parameter will be readable by anyone with access to the host
+        machine. Therefore, sensitive information like {env}`LIVEBOOK_PASSWORD`
+        or {env}`LIVEBOOK_COOKIE` should never be set using this configuration
+        option, but should instead use
+        [](#opt-services.livebook.environmentFile). See the documentation for
+        that option for more information.
 
-    erlang_node_name = mkOption {
-      type = with types; nullOr str;
-      default = null;
-      example = "livebook@127.0.0.1";
-      description = "The name for the app distributed node.";
-    };
-
-    port = mkOption {
-      type = types.port;
-      default = 8080;
-      description = "The port to start the web application on.";
-    };
-
-    address = mkOption {
-      type = types.str;
-      default = "127.0.0.1";
-      description = lib.mdDoc ''
-        The address to start the web application on.  Must be a valid IPv4 or
-        IPv6 address.
+        Any environment variables specified in the
+        [](#opt-services.livebook.environmentFile) will supersede environment
+        variables specified in this option.
       '';
-    };
 
-    options = mkOption {
-      type = with types; attrsOf str;
-      default = { };
-      description = lib.mdDoc ''
-        Additional options to pass as command-line arguments to the server.
-      '';
       example = literalExpression ''
         {
-          cookie = "a value shared by all nodes in this cluster";
+          LIVEBOOK_PORT = 8080;
         }
       '';
     };
 
+    environmentFile = mkOption {
+      type = with types; nullOr types.path;
+      default = null;
+      description = lib.mdDoc ''
+        Additional dnvironment file as defined in {manpage}`systemd.exec(5)`.
+
+        Secrets like {env}`LIVEBOOK_PASSWORD` (which is used to specify the
+        password needed to access the livebook site) or {env}`LIVEBOOK_COOKIE`
+        (which is used to specify the
+        [cookie](https://www.erlang.org/doc/reference_manual/distributed.html#security)
+        used to connect to the running Elixir system) may be passed to the
+        service without making them readable to everyone with access to
+        systemctl by using this configuration parameter.
+
+        Note that this file needs to be available on the host on which
+        `livebook` is running.
+
+        For security purposes, this file should contain at least
+        {env}`LIVEBOOK_PASSWORD` or {env}`LIVEBOOK_TOKEN_ENABLED=false`.
+
+        See the [Livebook
+        documentation](https://hexdocs.pm/livebook/readme.html#environment-variables)
+        and the [](#opt-services.livebook.environment) configuration parameter
+        for further options.
+      '';
+      example = "/var/lib/livebook.env";
+    };
+
     extraPackages = mkOption {
       type = with types; listOf package;
       default = [ ];
@@ -81,17 +87,12 @@ in
       serviceConfig = {
         Restart = "always";
         EnvironmentFile = cfg.environmentFile;
-        ExecStart =
-          let
-            args = lib.cli.toGNUCommandLineShell { } ({
-              inherit (cfg) port;
-              ip = cfg.address;
-              name = cfg.erlang_node_name;
-              sname = cfg.erlang_node_short_name;
-            } // cfg.options);
-          in
-            "${cfg.package}/bin/livebook server ${args}";
+        ExecStart = "${cfg.package}/bin/livebook start";
+        KillMode = "mixed";
       };
+      environment = mapAttrs (name: value:
+        if isBool value then boolToString value else toString value)
+        cfg.environment;
       path = [ pkgs.bash ] ++ cfg.extraPackages;
       wantedBy = [ "default.target" ];
     };
diff --git a/nixos/modules/services/editors/emacs.nix b/nixos/modules/services/editors/emacs.nix
index 6f45be6640bc..ff6fd85d8a9b 100644
--- a/nixos/modules/services/editors/emacs.nix
+++ b/nixos/modules/services/editors/emacs.nix
@@ -15,25 +15,6 @@ let
     fi
   '';
 
-  desktopApplicationFile = pkgs.writeTextFile {
-    name = "emacsclient.desktop";
-    destination = "/share/applications/emacsclient.desktop";
-    text = ''
-      [Desktop Entry]
-      Name=Emacsclient
-      GenericName=Text Editor
-      Comment=Edit text
-      MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
-      Exec=emacseditor %F
-      Icon=emacs
-      Type=Application
-      Terminal=false
-      Categories=Development;TextEditor;
-      StartupWMClass=Emacs
-      Keywords=Text;Editor;
-    '';
-  };
-
 in
 {
 
@@ -102,7 +83,7 @@ in
       wantedBy = if cfg.startWithGraphical then [ "graphical-session.target" ] else [ "default.target" ];
     };
 
-    environment.systemPackages = [ cfg.package editorScript desktopApplicationFile ];
+    environment.systemPackages = [ cfg.package editorScript ];
 
     environment.variables.EDITOR = mkIf cfg.defaultEditor (mkOverride 900 "emacseditor");
   };
diff --git a/nixos/modules/services/games/asf.nix b/nixos/modules/services/games/archisteamfarm.nix
index 27d174d6726b..293e341bef38 100644
--- a/nixos/modules/services/games/asf.nix
+++ b/nixos/modules/services/games/archisteamfarm.nix
@@ -1,13 +1,11 @@
 { config, lib, pkgs, ... }:
 
-with lib;
-
 let
   cfg = config.services.archisteamfarm;
 
   format = pkgs.formats.json { };
 
-  asf-config = format.generate "ASF.json" (cfg.settings // {
+  configFile = format.generate "ASF.json" (cfg.settings // {
     # we disable it because ASF cannot update itself anyways
     # and nixos takes care of restarting the service
     # is in theory not needed as this is already the default for default builds
@@ -30,8 +28,8 @@ let
 in
 {
   options.services.archisteamfarm = {
-    enable = mkOption {
-      type = types.bool;
+    enable = lib.mkOption {
+      type = lib.types.bool;
       description = lib.mdDoc ''
         If enabled, starts the ArchisSteamFarm service.
         For configuring the SteamGuard token you will need to use the web-ui, which is enabled by default over on 127.0.0.1:1242.
@@ -40,14 +38,14 @@ in
       default = false;
     };
 
-    web-ui = mkOption {
-      type = types.submodule {
+    web-ui = lib.mkOption {
+      type = lib.types.submodule {
         options = {
-          enable = mkEnableOption "" // {
+          enable = lib.mkEnableOption "" // {
             description = lib.mdDoc "Whether to start the web-ui. This is the preferred way of configuring things such as the steam guard token.";
           };
 
-          package = mkPackageOption pkgs [ "ArchiSteamFarm" "ui" ] {
+          package = lib.mkPackageOption pkgs [ "ArchiSteamFarm" "ui" ] {
             extraDescription = ''
               ::: {.note}
               Contents must be in lib/dist
@@ -65,7 +63,7 @@ in
       description = lib.mdDoc "The Web-UI hosted on 127.0.0.1:1242.";
     };
 
-    package = mkPackageOption pkgs "ArchiSteamFarm" {
+    package = lib.mkPackageOption pkgs "ArchiSteamFarm" {
       extraDescription = ''
         ::: {.warning}
         Should always be the latest version, for security reasons,
@@ -74,15 +72,15 @@ in
       '';
     };
 
-    dataDir = mkOption {
-      type = types.path;
-      default = "/var/lib/asf";
+    dataDir = lib.mkOption {
+      type = lib.types.path;
+      default = "/var/lib/archisteamfarm";
       description = lib.mdDoc ''
         The ASF home directory used to store all data.
         If left as the default value this directory will automatically be created before the ASF server starts, otherwise the sysadmin is responsible for ensuring the directory exists with appropriate ownership and permissions.'';
     };
 
-    settings = mkOption {
+    settings = lib.mkOption {
       type = format.type;
       description = lib.mdDoc ''
         The ASF.json file, all the options are documented [here](https://github.com/JustArchiNET/ArchiSteamFarm/wiki/Configuration#global-config).
@@ -96,13 +94,13 @@ in
       default = { };
     };
 
-    ipcPasswordFile = mkOption {
-      type = types.nullOr types.path;
+    ipcPasswordFile = lib.mkOption {
+      type = with lib.types; nullOr path;
       default = null;
-      description = lib.mdDoc "Path to a file containing the password. The file must be readable by the `asf` user/group.";
+      description = lib.mdDoc "Path to a file containing the password. The file must be readable by the `archisteamfarm` user/group.";
     };
 
-    ipcSettings = mkOption {
+    ipcSettings = lib.mkOption {
       type = format.type;
       description = lib.mdDoc ''
         Settings to write to IPC.config.
@@ -120,25 +118,25 @@ in
       default = { };
     };
 
-    bots = mkOption {
-      type = types.attrsOf (types.submodule {
+    bots = lib.mkOption {
+      type = lib.types.attrsOf (lib.types.submodule {
         options = {
-          username = mkOption {
-            type = types.str;
+          username = lib.mkOption {
+            type = lib.types.str;
             description = lib.mdDoc "Name of the user to log in. Default is attribute name.";
             default = "";
           };
-          passwordFile = mkOption {
-            type = types.path;
-            description = lib.mdDoc "Path to a file containing the password. The file must be readable by the `asf` user/group.";
+          passwordFile = lib.mkOption {
+            type = lib.types.path;
+            description = lib.mdDoc "Path to a file containing the password. The file must be readable by the `archisteamfarm` user/group.";
           };
-          enabled = mkOption {
-            type = types.bool;
+          enabled = lib.mkOption {
+            type = lib.types.bool;
             default = true;
             description = lib.mdDoc "Whether to enable the bot on startup.";
           };
-          settings = mkOption {
-            type = types.attrs;
+          settings = lib.mkOption {
+            type = lib.types.attrs;
             description = lib.mdDoc ''
               Additional settings that are documented [here](https://github.com/JustArchiNET/ArchiSteamFarm/wiki/Configuration#bot-config).
             '';
@@ -152,7 +150,7 @@ in
       example = {
         exampleBot = {
           username = "alice";
-          passwordFile = "/var/lib/asf/secrets/password";
+          passwordFile = "/var/lib/archisteamfarm/secrets/password";
           settings = { SteamParentalCode = "1234"; };
         };
       };
@@ -160,32 +158,34 @@ in
     };
   };
 
-  config = mkIf cfg.enable {
+  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");
 
     users = {
-      users.asf = {
+      users.archisteamfarm = {
         home = cfg.dataDir;
         isSystemUser = true;
-        group = "asf";
+        group = "archisteamfarm";
         description = "Archis-Steam-Farm service user";
       };
-      groups.asf = { };
+      groups.archisteamfarm = { };
     };
 
     systemd.services = {
-      asf = {
+      archisteamfarm = {
         description = "Archis-Steam-Farm Service";
         after = [ "network.target" ];
         wantedBy = [ "multi-user.target" ];
 
-        serviceConfig = mkMerge [
-          (mkIf (cfg.dataDir == "/var/lib/asf") {
-            StateDirectory = "asf";
+        serviceConfig = lib.mkMerge [
+          (lib.mkIf (lib.hasPrefix "/var/lib/" cfg.dataDir) {
+            StateDirectory = lib.last (lib.splitString "/" cfg.dataDir);
             StateDirectoryMode = "700";
           })
           {
-            User = "asf";
-            Group = "asf";
+            User = "archisteamfarm";
+            Group = "archisteamfarm";
             WorkingDirectory = cfg.dataDir;
             Type = "simple";
             ExecStart = "${lib.getExe cfg.package} --no-restart --process-required --service --system-required --path ${cfg.dataDir}";
@@ -217,12 +217,10 @@ in
             RestrictNamespaces = true;
             RestrictRealtime = true;
             RestrictSUIDSGID = true;
-            SystemCallArchitectures = "native";
-            UMask = "0077";
-
-            # we luckily already have systemd v247+
             SecureBits = "noroot-locked";
+            SystemCallArchitectures = "native";
             SystemCallFilter = [ "@system-service" "~@privileged" ];
+            UMask = "0077";
           }
         ];
 
@@ -232,7 +230,7 @@ in
               mkdir -p $out
               # clean potential removed bots
               rm -rf $out/*.json
-              for i in ${strings.concatStringsSep " " (lists.map (x: "${getName x},${x}") (attrsets.mapAttrsToList mkBot cfg.bots))}; do IFS=",";
+              for i in ${lib.concatStringsSep " " (map (x: "${lib.getName x},${x}") (lib.mapAttrsToList mkBot cfg.bots))}; do IFS=",";
                 set -- $i
                 ln -fs $2 $out/$1
               done
@@ -242,22 +240,22 @@ in
           ''
             mkdir -p config
 
-            cp --no-preserve=mode ${asf-config} config/ASF.json
+            cp --no-preserve=mode ${configFile} config/ASF.json
 
-            ${optionalString (cfg.ipcPasswordFile != null) ''
+            ${lib.optionalString (cfg.ipcPasswordFile != null) ''
               ${replaceSecretBin} '#ipcPassword#' '${cfg.ipcPasswordFile}' config/ASF.json
             ''}
 
-            ${optionalString (cfg.ipcSettings != {}) ''
+            ${lib.optionalString (cfg.ipcSettings != {}) ''
               ln -fs ${ipc-config} config/IPC.config
             ''}
 
-            ${optionalString (cfg.ipcSettings != {}) ''
+            ${lib.optionalString (cfg.ipcSettings != {}) ''
               ln -fs ${createBotsScript}/* config/
             ''}
 
             rm -f www
-            ${optionalString cfg.web-ui.enable ''
+            ${lib.optionalString cfg.web-ui.enable ''
               ln -s ${cfg.web-ui.package}/ www
             ''}
           '';
@@ -267,6 +265,6 @@ in
 
   meta = {
     buildDocsInSandbox = false;
-    maintainers = with maintainers; [ lom SuperSandro2000 ];
+    maintainers = with lib.maintainers; [ lom SuperSandro2000 ];
   };
 }
diff --git a/nixos/modules/services/hardware/acpid.nix b/nixos/modules/services/hardware/acpid.nix
index 6021aad09f45..821f4ef205fc 100644
--- a/nixos/modules/services/hardware/acpid.nix
+++ b/nixos/modules/services/hardware/acpid.nix
@@ -135,7 +135,6 @@ in
       wantedBy = [ "multi-user.target" ];
 
       serviceConfig = {
-        PrivateNetwork = true;
         ExecStart = escapeShellArgs
           ([ "${pkgs.acpid}/bin/acpid"
              "--foreground"
diff --git a/nixos/modules/services/hardware/fwupd.nix b/nixos/modules/services/hardware/fwupd.nix
index 6b3a109ed6f7..6fbcbe676460 100644
--- a/nixos/modules/services/hardware/fwupd.nix
+++ b/nixos/modules/services/hardware/fwupd.nix
@@ -16,6 +16,7 @@ let
     "fwupd/fwupd.conf" = {
       source = format.generate "fwupd.conf" {
         fwupd = cfg.daemonSettings;
+      } // lib.optionalAttrs (lib.length (lib.attrNames cfg.uefiCapsuleSettings) != 0) {
         uefi_capsule = cfg.uefiCapsuleSettings;
       };
       # fwupd tries to chmod the file if it doesn't have the right permissions
diff --git a/nixos/modules/services/hardware/handheld-daemon.nix b/nixos/modules/services/hardware/handheld-daemon.nix
new file mode 100644
index 000000000000..e8a7a39f441d
--- /dev/null
+++ b/nixos/modules/services/hardware/handheld-daemon.nix
@@ -0,0 +1,44 @@
+{ config
+, lib
+, pkgs
+, ...
+}:
+with lib; let
+  cfg = config.services.handheld-daemon;
+in
+{
+  options.services.handheld-daemon = {
+    enable = mkEnableOption "Enable Handheld Daemon";
+    package = mkPackageOption pkgs "handheld-daemon" { };
+
+    user = mkOption {
+      type = types.str;
+      description = lib.mdDoc ''
+        The user to run Handheld Daemon with.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    environment.systemPackages = [ cfg.package ];
+    services.udev.packages = [ cfg.package ];
+    systemd.packages = [ cfg.package ];
+
+    systemd.services.handheld-daemon = {
+      description = "Handheld Daemon";
+
+      wantedBy = [ "multi-user.target" ];
+
+      restartIfChanged = true;
+
+      serviceConfig = {
+        ExecStart = "${ lib.getExe cfg.package } --user ${ cfg.user }";
+        Nice = "-12";
+        Restart = "on-failure";
+        RestartSec = "10";
+      };
+    };
+  };
+
+  meta.maintainers = [ maintainers.appsforartists ];
+}
diff --git a/nixos/modules/services/hardware/ratbagd.nix b/nixos/modules/services/hardware/ratbagd.nix
index c939d5e40a24..5567bcbafd16 100644
--- a/nixos/modules/services/hardware/ratbagd.nix
+++ b/nixos/modules/services/hardware/ratbagd.nix
@@ -11,6 +11,8 @@ in
   options = {
     services.ratbagd = {
       enable = mkEnableOption (lib.mdDoc "ratbagd for configuring gaming mice");
+
+      package = mkPackageOption pkgs "libratbag" { };
     };
   };
 
@@ -18,10 +20,10 @@ in
 
   config = mkIf cfg.enable {
     # Give users access to the "ratbagctl" tool
-    environment.systemPackages = [ pkgs.libratbag ];
+    environment.systemPackages = [ cfg.package ];
 
-    services.dbus.packages = [ pkgs.libratbag ];
+    services.dbus.packages = [ cfg.package ];
 
-    systemd.packages = [ pkgs.libratbag ];
+    systemd.packages = [ cfg.package ];
   };
 }
diff --git a/nixos/modules/services/home-automation/esphome.nix b/nixos/modules/services/home-automation/esphome.nix
index 4fc007a97683..3c0fd8aed08a 100644
--- a/nixos/modules/services/home-automation/esphome.nix
+++ b/nixos/modules/services/home-automation/esphome.nix
@@ -63,6 +63,12 @@ in
       '';
       type = types.listOf types.str;
     };
+
+    usePing = mkOption {
+      default = false;
+      type = types.bool;
+      description = lib.mdDoc "Use ping to check online status of devices instead of mDNS";
+    };
   };
 
   config = mkIf cfg.enable {
@@ -74,8 +80,10 @@ in
       wantedBy = ["multi-user.target"];
       path = [cfg.package];
 
-      # platformio fails to determine the home directory when using DynamicUser
-      environment.PLATFORMIO_CORE_DIR = "${stateDir}/.platformio";
+      environment = {
+        # platformio fails to determine the home directory when using DynamicUser
+        PLATFORMIO_CORE_DIR = "${stateDir}/.platformio";
+      } // lib.optionalAttrs cfg.usePing { ESPHOME_DASHBOARD_USE_PING = "true"; };
 
       serviceConfig = {
         ExecStart = "${cfg.package}/bin/esphome dashboard ${esphomeParams} ${stateDir}";
diff --git a/nixos/modules/services/home-automation/evcc.nix b/nixos/modules/services/home-automation/evcc.nix
index d0ce3fb4a1ce..f360f525b04b 100644
--- a/nixos/modules/services/home-automation/evcc.nix
+++ b/nixos/modules/services/home-automation/evcc.nix
@@ -41,6 +41,7 @@ in
 
   config = mkIf cfg.enable {
     systemd.services.evcc = {
+      wants = [ "network-online.target" ];
       after = [
         "network-online.target"
         "mosquitto.target"
diff --git a/nixos/modules/services/home-automation/home-assistant.nix b/nixos/modules/services/home-automation/home-assistant.nix
index bc470576b759..a01628968966 100644
--- a/nixos/modules/services/home-automation/home-assistant.nix
+++ b/nixos/modules/services/home-automation/home-assistant.nix
@@ -435,6 +435,7 @@ in {
 
     systemd.services.home-assistant = {
       description = "Home Assistant";
+      wants = [ "network-online.target" ];
       after = [
         "network-online.target"
 
diff --git a/nixos/modules/services/home-automation/zigbee2mqtt.nix b/nixos/modules/services/home-automation/zigbee2mqtt.nix
index a653e49a09f6..570ce41aa6d4 100644
--- a/nixos/modules/services/home-automation/zigbee2mqtt.nix
+++ b/nixos/modules/services/home-automation/zigbee2mqtt.nix
@@ -71,6 +71,7 @@ in
       after = [ "network.target" ];
       environment.ZIGBEE2MQTT_DATA = cfg.dataDir;
       serviceConfig = {
+        Type = "notify";
         ExecStart = "${cfg.package}/bin/zigbee2mqtt";
         User = "zigbee2mqtt";
         Group = "zigbee2mqtt";
diff --git a/nixos/modules/services/logging/journaldriver.nix b/nixos/modules/services/logging/journaldriver.nix
index 59eedff90d60..4d21464018aa 100644
--- a/nixos/modules/services/logging/journaldriver.nix
+++ b/nixos/modules/services/logging/journaldriver.nix
@@ -84,6 +84,7 @@ in {
     systemd.services.journaldriver = {
       description = "Stackdriver Logging journal forwarder";
       script      = "${pkgs.journaldriver}/bin/journaldriver";
+      wants       = [ "network-online.target" ];
       after       = [ "network-online.target" ];
       wantedBy    = [ "multi-user.target" ];
 
diff --git a/nixos/modules/services/mail/dovecot.nix b/nixos/modules/services/mail/dovecot.nix
index 25c7017a1d25..71baa2bb1852 100644
--- a/nixos/modules/services/mail/dovecot.nix
+++ b/nixos/modules/services/mail/dovecot.nix
@@ -1,10 +1,12 @@
-{ options, config, lib, pkgs, ... }:
+{ config, lib, pkgs, ... }:
 
 let
-  inherit (lib) any attrValues concatMapStringsSep concatStrings
-    concatStringsSep flatten imap1 isList literalExpression mapAttrsToList
+  inherit (lib) attrValues concatMapStringsSep concatStrings
+    concatStringsSep flatten imap1 literalExpression mapAttrsToList
     mkEnableOption mkIf mkOption mkRemovedOptionModule optional optionalAttrs
-    optionalString singleton types;
+    optionalString singleton types mkRenamedOptionModule nameValuePair
+    mapAttrs' listToAttrs filter;
+  inherit (lib.strings) match;
 
   cfg = config.services.dovecot2;
   dovecotPkg = pkgs.dovecot;
@@ -12,6 +14,58 @@ let
   baseDir = "/run/dovecot2";
   stateDir = "/var/lib/dovecot";
 
+  sieveScriptSettings = mapAttrs' (to: _: nameValuePair "sieve_${to}" "${stateDir}/sieve/${to}") cfg.sieve.scripts;
+  imapSieveMailboxSettings = listToAttrs (flatten (imap1 (idx: el:
+    singleton {
+      name = "imapsieve_mailbox${toString idx}_name";
+      value = el.name;
+    } ++ optional (el.from != null) {
+      name = "imapsieve_mailbox${toString idx}_from";
+      value = el.from;
+    } ++ optional (el.causes != []) {
+      name = "imapsieve_mailbox${toString idx}_causes";
+      value = concatStringsSep "," el.causes;
+    } ++ optional (el.before != null) {
+      name = "imapsieve_mailbox${toString idx}_before";
+      value = "file:${stateDir}/imapsieve/before/${baseNameOf el.before}";
+    } ++ optional (el.after != null) {
+      name = "imapsieve_mailbox${toString idx}_after";
+      value = "file:${stateDir}/imapsieve/after/${baseNameOf el.after}";
+    }
+  ) cfg.imapsieve.mailbox));
+
+  mkExtraConfigCollisionWarning = term: ''
+    You referred to ${term} in `services.dovecot2.extraConfig`.
+
+    Due to gradual transition to structured configuration for plugin configuration, it is possible
+    this will cause your plugin configuration to be ignored.
+
+    Consider setting `services.dovecot2.pluginSettings.${term}` instead.
+  '';
+
+  # Those settings are automatically set based on other parts
+  # of this module.
+  automaticallySetPluginSettings = [
+    "sieve_plugins"
+    "sieve_extensions"
+    "sieve_global_extensions"
+    "sieve_pipe_bin_dir"
+  ]
+  ++ (builtins.attrNames sieveScriptSettings)
+  ++ (builtins.attrNames imapSieveMailboxSettings);
+
+  # The idea is to match everything that looks like `$term =`
+  # but not `# $term something something`
+  # or `# $term = some value` because those are comments.
+  configContainsSetting = lines: term: (match "^[^#]*\b${term}\b.*=" lines) != null;
+
+  warnAboutExtraConfigCollisions = map mkExtraConfigCollisionWarning (filter (configContainsSetting cfg.extraConfig) automaticallySetPluginSettings);
+
+  sievePipeBinScriptDirectory = pkgs.linkFarm "sieve-pipe-bins" (map (el: {
+      name = builtins.unsafeDiscardStringContext (baseNameOf el);
+      path = el;
+  }) cfg.sieve.pipeBins);
+
   dovecotConf = concatStrings [
     ''
       base_dir = ${baseDir}
@@ -78,14 +132,6 @@ let
     )
 
     (
-      optionalString (cfg.sieveScripts != {}) ''
-        plugin {
-          ${concatStringsSep "\n" (mapAttrsToList (to: from: "sieve_${to} = ${stateDir}/sieve/${to}") cfg.sieveScripts)}
-        }
-      ''
-    )
-
-    (
       optionalString (cfg.mailboxes != {}) ''
         namespace inbox {
           inbox=yes
@@ -116,33 +162,12 @@ let
       ''
     )
 
+    # General plugin settings:
+    # - sieve is mostly generated here, refer to `pluginSettings` to follow
+    # the control flow.
     ''
       plugin {
-        sieve_plugins = ${concatStringsSep " " cfg.sieve.plugins}
-        sieve_extensions = ${concatStringsSep " " (map (el: "+${el}") cfg.sieve.extensions)}
-        sieve_global_extensions = ${concatStringsSep " " (map (el: "+${el}") cfg.sieve.globalExtensions)}
-    ''
-    (optionalString (cfg.imapsieve.mailbox != []) ''
-      ${
-        concatStringsSep "\n" (flatten (imap1 (
-            idx: el:
-              singleton "imapsieve_mailbox${toString idx}_name = ${el.name}"
-              ++ optional (el.from != null) "imapsieve_mailbox${toString idx}_from = ${el.from}"
-              ++ optional (el.causes != null) "imapsieve_mailbox${toString idx}_causes = ${el.causes}"
-              ++ optional (el.before != null) "imapsieve_mailbox${toString idx}_before = file:${stateDir}/imapsieve/before/${baseNameOf el.before}"
-              ++ optional (el.after != null) "imapsieve_mailbox${toString idx}_after = file:${stateDir}/imapsieve/after/${baseNameOf el.after}"
-          )
-          cfg.imapsieve.mailbox))
-      }
-    '')
-    (optionalString (cfg.sieve.pipeBins != []) ''
-        sieve_pipe_bin_dir = ${pkgs.linkFarm "sieve-pipe-bins" (map (el: {
-          name = builtins.unsafeDiscardStringContext (baseNameOf el);
-          path = el;
-        })
-        cfg.sieve.pipeBins)}
-    '')
-    ''
+        ${concatStringsSep "\n" (mapAttrsToList (key: value: "  ${key} = ${value}") cfg.pluginSettings)}
       }
     ''
 
@@ -199,6 +224,7 @@ in
 {
   imports = [
     (mkRemovedOptionModule [ "services" "dovecot2" "package" ] "")
+    (mkRenamedOptionModule [ "services" "dovecot2" "sieveScripts" ] [ "services" "dovecot2" "sieve" "scripts" ])
   ];
 
   options.services.dovecot2 = {
@@ -337,12 +363,6 @@ in
 
     enableDHE = mkEnableOption (lib.mdDoc "ssl_dh and generation of primes for the key exchange") // { default = true; };
 
-    sieveScripts = mkOption {
-      type = types.attrsOf types.path;
-      default = {};
-      description = lib.mdDoc "Sieve scripts to be executed. Key is a sequence, e.g. 'before2', 'after' etc.";
-    };
-
     showPAMFailure = mkEnableOption (lib.mdDoc "showing the PAM failure message on authentication error (useful for OTPW)");
 
     mailboxes = mkOption {
@@ -376,6 +396,26 @@ in
       description = lib.mdDoc "Quota limit for the user in bytes. Supports suffixes b, k, M, G, T and %.";
     };
 
+
+    pluginSettings = mkOption {
+      # types.str does not coerce from packages, like `sievePipeBinScriptDirectory`.
+      type = types.attrsOf (types.oneOf [ types.str types.package ]);
+      default = {};
+      example = literalExpression ''
+        {
+          sieve = "file:~/sieve;active=~/.dovecot.sieve";
+        }
+      '';
+      description = ''
+        Plugin settings for dovecot in general, e.g. `sieve`, `sieve_default`, etc.
+
+        Some of the other knobs of this module will influence by default the plugin settings, but you
+        can still override any plugin settings.
+
+        If you override a plugin setting, its value is cleared and you have to copy over the defaults.
+      '';
+    };
+
     imapsieve.mailbox = mkOption {
       default = [];
       description = "Configure Sieve filtering rules on IMAP actions";
@@ -405,14 +445,14 @@ in
           };
 
           causes = mkOption {
-            default = null;
+            default = [ ];
             description = ''
               Only execute the administrator Sieve scripts for the mailbox configured with services.dovecot2.imapsieve.mailbox.<name>.name when one of the listed IMAPSIEVE causes apply.
 
               This has no effect on the user script, which is always executed no matter the cause.
             '';
-            example = "COPY";
-            type = types.nullOr (types.enum [ "APPEND" "COPY" "FLAG" ]);
+            example = [ "COPY" "APPEND" ];
+            type = types.listOf (types.enum [ "APPEND" "COPY" "FLAG" ]);
           };
 
           before = mkOption {
@@ -462,6 +502,12 @@ in
         type = types.listOf types.str;
       };
 
+      scripts = mkOption {
+        type = types.attrsOf types.path;
+        default = {};
+        description = lib.mdDoc "Sieve scripts to be executed. Key is a sequence, e.g. 'before2', 'after' etc.";
+      };
+
       pipeBins = mkOption {
         default = [];
         example = literalExpression ''
@@ -476,7 +522,6 @@ in
     };
   };
 
-
   config = mkIf cfg.enable {
     security.pam.services.dovecot2 = mkIf cfg.enablePAM {};
 
@@ -501,6 +546,13 @@ in
         ++ optional (cfg.sieve.pipeBins != []) "sieve_extprograms";
 
       sieve.globalExtensions = optional (cfg.sieve.pipeBins != []) "vnd.dovecot.pipe";
+
+      pluginSettings = lib.mapAttrs (n: lib.mkDefault) ({
+        sieve_plugins = concatStringsSep " " cfg.sieve.plugins;
+        sieve_extensions = concatStringsSep " " (map (el: "+${el}") cfg.sieve.extensions);
+        sieve_global_extensions = concatStringsSep " " (map (el: "+${el}") cfg.sieve.globalExtensions);
+        sieve_pipe_bin_dir = sievePipeBinScriptDirectory;
+      } // sieveScriptSettings // imapSieveMailboxSettings);
     };
 
     users.users = {
@@ -556,7 +608,7 @@ in
       # the source file and Dovecot won't try to compile it.
       preStart = ''
         rm -rf ${stateDir}/sieve ${stateDir}/imapsieve
-      '' + optionalString (cfg.sieveScripts != {}) ''
+      '' + optionalString (cfg.sieve.scripts != {}) ''
         mkdir -p ${stateDir}/sieve
         ${concatStringsSep "\n" (
         mapAttrsToList (
@@ -569,7 +621,7 @@ in
             fi
             ${pkgs.dovecot_pigeonhole}/bin/sievec '${stateDir}/sieve/${to}'
           ''
-        ) cfg.sieveScripts
+        ) cfg.sieve.scripts
       )}
         chown -R '${cfg.mailUser}:${cfg.mailGroup}' '${stateDir}/sieve'
       ''
@@ -600,9 +652,7 @@ in
 
     environment.systemPackages = [ dovecotPkg ];
 
-    warnings = mkIf (any isList options.services.dovecot2.mailboxes.definitions) [
-      "Declaring `services.dovecot2.mailboxes' as a list is deprecated and will break eval in 21.05! See the release notes for more info for migration."
-    ];
+    warnings = warnAboutExtraConfigCollisions;
 
     assertions = [
       {
@@ -615,8 +665,8 @@ in
         message = "dovecot is configured with showPAMFailure while enablePAM is disabled";
       }
       {
-        assertion = cfg.sieveScripts != {} -> (cfg.mailUser != null && cfg.mailGroup != null);
-        message = "dovecot requires mailUser and mailGroup to be set when sieveScripts is set";
+        assertion = cfg.sieve.scripts != {} -> (cfg.mailUser != null && cfg.mailGroup != null);
+        message = "dovecot requires mailUser and mailGroup to be set when `sieve.scripts` is set";
       }
     ];
 
diff --git a/nixos/modules/services/mail/mlmmj.nix b/nixos/modules/services/mail/mlmmj.nix
index 3f07fabcf177..66106a14499b 100644
--- a/nixos/modules/services/mail/mlmmj.nix
+++ b/nixos/modules/services/mail/mlmmj.nix
@@ -143,11 +143,13 @@ in
 
     environment.systemPackages = [ pkgs.mlmmj ];
 
-    systemd.tmpfiles.rules = [
-      ''d "${stateDir}" -''
-      ''d "${spoolDir}/${cfg.listDomain}" -''
-      ''Z "${spoolDir}" - "${cfg.user}" "${cfg.group}" -''
-    ];
+    systemd.tmpfiles.settings."10-mlmmj" = {
+      ${stateDir}.d = { };
+      "${spoolDir}/${cfg.listDomain}".d = { };
+      ${spoolDir}.Z = {
+        inherit (cfg) user group;
+      };
+    };
 
     systemd.services.mlmmj-maintd = {
       description = "mlmmj maintenance daemon";
diff --git a/nixos/modules/services/mail/postfixadmin.nix b/nixos/modules/services/mail/postfixadmin.nix
index b86428770cb2..e7ebb6fbd648 100644
--- a/nixos/modules/services/mail/postfixadmin.nix
+++ b/nixos/modules/services/mail/postfixadmin.nix
@@ -99,7 +99,11 @@ in
       ${cfg.extraConfig}
     '';
 
-    systemd.tmpfiles.rules = [ "d /var/cache/postfixadmin/templates_c 700 ${user} ${user}" ];
+    systemd.tmpfiles.settings."10-postfixadmin"."/var/cache/postfixadmin/templates_c".d = {
+      inherit user;
+      group = user;
+      mode = "700";
+    };
 
     services.nginx = {
       enable = true;
diff --git a/nixos/modules/services/mail/roundcube.nix b/nixos/modules/services/mail/roundcube.nix
index c883c143e523..3f1a695ab91a 100644
--- a/nixos/modules/services/mail/roundcube.nix
+++ b/nixos/modules/services/mail/roundcube.nix
@@ -250,6 +250,7 @@ in
         path = [ config.services.postgresql.package ];
       })
       {
+        wants = [ "network-online.target" ];
         after = [ "network-online.target" ];
         wantedBy = [ "multi-user.target" ];
         script = let
diff --git a/nixos/modules/services/mail/rss2email.nix b/nixos/modules/services/mail/rss2email.nix
index 54404c5b5f4c..4939f979cafb 100644
--- a/nixos/modules/services/mail/rss2email.nix
+++ b/nixos/modules/services/mail/rss2email.nix
@@ -95,9 +95,11 @@ in {
 
     services.rss2email.config.to = cfg.to;
 
-    systemd.tmpfiles.rules = [
-      "d /var/rss2email 0700 rss2email rss2email - -"
-    ];
+    systemd.tmpfiles.settings."10-rss2email"."/var/rss2email".d = {
+      user = "rss2email";
+      group = "rss2email";
+      mode = "0700";
+    };
 
     systemd.services.rss2email = let
       conf = pkgs.writeText "rss2email.cfg" (lib.generators.toINI {} ({
diff --git a/nixos/modules/services/mail/sympa.nix b/nixos/modules/services/mail/sympa.nix
index 04ae46f66eea..13fc8656a2b5 100644
--- a/nixos/modules/services/mail/sympa.nix
+++ b/nixos/modules/services/mail/sympa.nix
@@ -435,7 +435,7 @@ in
 
       wantedBy = [ "multi-user.target" ];
       after = [ "network-online.target" ];
-      wants = sympaSubServices;
+      wants = sympaSubServices ++ [ "network-online.target" ];
       before = sympaSubServices;
       serviceConfig = sympaServiceConfig "sympa_msg";
 
diff --git a/nixos/modules/services/mail/zeyple.nix b/nixos/modules/services/mail/zeyple.nix
index e7f9ddd92dc2..9d4bc7f712d6 100644
--- a/nixos/modules/services/mail/zeyple.nix
+++ b/nixos/modules/services/mail/zeyple.nix
@@ -93,7 +93,11 @@ in {
 
     environment.etc."zeyple.conf".source = ini.generate "zeyple.conf" cfg.settings;
 
-    systemd.tmpfiles.rules = [ "f '${cfg.settings.zeyple.log_file}' 0600 ${cfg.user} ${cfg.group} - -" ];
+    systemd.tmpfiles.settings."10-zeyple".${cfg.settings.zeyple.log_file}.f = {
+      inherit (cfg) user group;
+      mode = "0600";
+    };
+
     services.logrotate = mkIf cfg.rotateLogs {
       enable = true;
       settings.zeyple = {
diff --git a/nixos/modules/services/matrix/hebbot.nix b/nixos/modules/services/matrix/hebbot.nix
new file mode 100644
index 000000000000..ebf175464ddd
--- /dev/null
+++ b/nixos/modules/services/matrix/hebbot.nix
@@ -0,0 +1,78 @@
+{ lib
+, config
+, pkgs
+, ...
+}:
+
+let
+  inherit (lib) mkEnableOption mkOption mkIf types;
+  format = pkgs.formats.toml { };
+  cfg = config.services.hebbot;
+  settingsFile = format.generate "config.toml" cfg.settings;
+  mkTemplateOption = templateName: mkOption {
+    type = types.path;
+    description = lib.mdDoc ''
+      A path to the Markdown file for the ${templateName}.
+    '';
+  };
+in
+  {
+    meta.maintainers = [ lib.maintainers.raitobezarius ];
+    options.services.hebbot = {
+      enable = mkEnableOption "hebbot";
+      botPasswordFile = mkOption {
+        type = types.path;
+        description = lib.mdDoc ''
+          A path to the password file for your bot.
+
+          Consider using a path that does not end up in your Nix store
+          as it would be world readable.
+        '';
+      };
+      templates = {
+        project = mkTemplateOption "project template";
+        report = mkTemplateOption "report template";
+        section = mkTemplateOption "section template";
+      };
+      settings = mkOption {
+        type = format.type;
+        default = { };
+        description = lib.mdDoc ''
+          Configuration for Hebbot, see, for examples:
+
+          - <https://github.com/matrix-org/twim-config/blob/master/config.toml>
+          - <https://gitlab.gnome.org/Teams/Websites/thisweek.gnome.org/-/blob/main/hebbot/config.toml>
+        '';
+      };
+    };
+
+    config = mkIf cfg.enable {
+      systemd.services.hebbot = {
+        description = "hebbot - a TWIM-style Matrix bot written in Rust";
+        after = [ "network.target" ];
+        wantedBy = [ "multi-user.target" ];
+
+        preStart = ''
+          ln -sf ${cfg.templates.project} ./project_template.md
+          ln -sf ${cfg.templates.report} ./report_template.md
+          ln -sf ${cfg.templates.section} ./section_template.md
+          ln -sf ${settingsFile} ./config.toml
+        '';
+
+        script = ''
+          export BOT_PASSWORD="$(cat $CREDENTIALS_DIRECTORY/bot-password-file)"
+          ${lib.getExe pkgs.hebbot}
+        '';
+
+        serviceConfig = {
+          DynamicUser = true;
+          Restart = "on-failure";
+          LoadCredential = "bot-password-file:${cfg.botPasswordFile}";
+          RestartSec = "10s";
+          StateDirectory = "hebbot";
+          WorkingDirectory = "hebbot";
+      };
+    };
+  };
+}
+
diff --git a/nixos/modules/services/matrix/synapse.nix b/nixos/modules/services/matrix/synapse.nix
index 50019d2a25cb..4c1c396eac05 100644
--- a/nixos/modules/services/matrix/synapse.nix
+++ b/nixos/modules/services/matrix/synapse.nix
@@ -1056,6 +1056,7 @@ in {
 
     systemd.targets.matrix-synapse = lib.mkIf hasWorkers {
       description = "Synapse Matrix parent target";
+      wants = [ "network-online.target" ];
       after = [ "network-online.target" ] ++ optional hasLocalPostgresDB "postgresql.service";
       wantedBy = [ "multi-user.target" ];
     };
@@ -1071,6 +1072,7 @@ in {
             requires = optional hasLocalPostgresDB "postgresql.service";
           }
           else {
+            wants = [ "network-online.target" ];
             after = [ "network-online.target" ] ++ optional hasLocalPostgresDB "postgresql.service";
             requires = optional hasLocalPostgresDB "postgresql.service";
             wantedBy = [ "multi-user.target" ];
diff --git a/nixos/modules/services/misc/amazon-ssm-agent.nix b/nixos/modules/services/misc/amazon-ssm-agent.nix
index 20b836abe164..89a1c0766510 100644
--- a/nixos/modules/services/misc/amazon-ssm-agent.nix
+++ b/nixos/modules/services/misc/amazon-ssm-agent.nix
@@ -41,6 +41,7 @@ in {
     # See https://github.com/aws/amazon-ssm-agent/blob/mainline/packaging/linux/amazon-ssm-agent.service
     systemd.services.amazon-ssm-agent = {
       inherit (cfg.package.meta) description;
+      wants    = [ "network-online.target" ];
       after    = [ "network-online.target" ];
       wantedBy = [ "multi-user.target" ];
 
diff --git a/nixos/modules/services/misc/bcg.nix b/nixos/modules/services/misc/bcg.nix
index 9da4a879cdd0..ad0b9c871342 100644
--- a/nixos/modules/services/misc/bcg.nix
+++ b/nixos/modules/services/misc/bcg.nix
@@ -154,7 +154,7 @@ in
     in {
       description = "BigClown Gateway";
       wantedBy = [ "multi-user.target" ];
-      wants = mkIf config.services.mosquitto.enable [ "mosquitto.service" ];
+      wants = [ "network-online.target" ] ++ lib.optional config.services.mosquitto.enable "mosquitto.service";
       after = [ "network-online.target" ];
       preStart = ''
         umask 077
diff --git a/nixos/modules/services/misc/domoticz.nix b/nixos/modules/services/misc/domoticz.nix
index fd9fcf0b78eb..315092f93351 100644
--- a/nixos/modules/services/misc/domoticz.nix
+++ b/nixos/modules/services/misc/domoticz.nix
@@ -35,6 +35,7 @@ in {
     systemd.services."domoticz" = {
       description = pkgDesc;
       wantedBy = [ "multi-user.target" ];
+      wants = [ "network-online.target" ];
       after = [ "network-online.target" ];
       serviceConfig = {
         DynamicUser = true;
diff --git a/nixos/modules/services/misc/etcd.nix b/nixos/modules/services/misc/etcd.nix
index 73bdeb3b0afd..ee6a56db31d3 100644
--- a/nixos/modules/services/misc/etcd.nix
+++ b/nixos/modules/services/misc/etcd.nix
@@ -152,9 +152,10 @@ in {
   };
 
   config = mkIf cfg.enable {
-    systemd.tmpfiles.rules = [
-      "d '${cfg.dataDir}' 0700 etcd - - -"
-    ];
+    systemd.tmpfiles.settings."10-etcd".${cfg.dataDir}.d = {
+      user = "etcd";
+      mode = "0700";
+    };
 
     systemd.services.etcd = {
       description = "etcd key-value store";
diff --git a/nixos/modules/services/misc/etesync-dav.nix b/nixos/modules/services/misc/etesync-dav.nix
index 9d99d548d95b..ae2b5ad04343 100644
--- a/nixos/modules/services/misc/etesync-dav.nix
+++ b/nixos/modules/services/misc/etesync-dav.nix
@@ -59,6 +59,7 @@ in
 
       systemd.services.etesync-dav = {
         description = "etesync-dav - A CalDAV and CardDAV adapter for EteSync";
+        wants = [ "network-online.target" ];
         after = [ "network-online.target" ];
         wantedBy = [ "multi-user.target" ];
         path = [ pkgs.etesync-dav ];
diff --git a/nixos/modules/services/misc/lidarr.nix b/nixos/modules/services/misc/lidarr.nix
index 4dc0fc63863b..8ceb567e8801 100644
--- a/nixos/modules/services/misc/lidarr.nix
+++ b/nixos/modules/services/misc/lidarr.nix
@@ -45,9 +45,10 @@ in
   };
 
   config = mkIf cfg.enable {
-    systemd.tmpfiles.rules = [
-      "d '${cfg.dataDir}' 0700 ${cfg.user} ${cfg.group} - -"
-    ];
+    systemd.tmpfiles.settings."10-lidarr".${cfg.dataDir}.d = {
+      inherit (cfg) user group;
+      mode = "0700";
+    };
 
     systemd.services.lidarr = {
       description = "Lidarr";
diff --git a/nixos/modules/services/misc/mediatomb.nix b/nixos/modules/services/misc/mediatomb.nix
index d421d74c53ad..03235e9a1265 100644
--- a/nixos/modules/services/misc/mediatomb.nix
+++ b/nixos/modules/services/misc/mediatomb.nix
@@ -357,6 +357,7 @@ in {
       description = "${cfg.serverName} media Server";
       # Gerbera might fail if the network interface is not available on startup
       # https://github.com/gerbera/gerbera/issues/1324
+      wants = [ "network-online.target" ];
       after = [ "network.target" "network-online.target" ];
       wantedBy = [ "multi-user.target" ];
       serviceConfig.ExecStart = "${binaryCommand} --port ${toString cfg.port} ${interfaceFlag} ${configFlag} --home ${cfg.dataDir}";
diff --git a/nixos/modules/services/misc/metabase.nix b/nixos/modules/services/misc/metabase.nix
index 883fa0b95911..5fc18e27eaae 100644
--- a/nixos/modules/services/misc/metabase.nix
+++ b/nixos/modules/services/misc/metabase.nix
@@ -77,6 +77,7 @@ in {
     systemd.services.metabase = {
       description = "Metabase server";
       wantedBy = [ "multi-user.target" ];
+      wants = [ "network-online.target" ];
       after = [ "network-online.target" ];
       environment = {
         MB_PLUGINS_DIR = "${dataDir}/plugins";
diff --git a/nixos/modules/services/misc/moonraker.nix b/nixos/modules/services/misc/moonraker.nix
index 750dca9d0373..f043cc83bf05 100644
--- a/nixos/modules/services/misc/moonraker.nix
+++ b/nixos/modules/services/misc/moonraker.nix
@@ -103,17 +103,18 @@ in {
 
   config = mkIf cfg.enable {
     warnings = []
-      ++ optional (cfg.settings ? update_manager)
-        ''Enabling update_manager is not supported on NixOS and will lead to non-removable warnings in some clients.''
-      ++ optional (cfg.configDir != null)
-        ''
-          services.moonraker.configDir has been deprecated upstream and will be removed.
-
-          Action: ${
-            if cfg.configDir == unifiedConfigDir then "Simply remove services.moonraker.configDir from your config."
-            else "Move files from `${cfg.configDir}` to `${unifiedConfigDir}` then remove services.moonraker.configDir from your config."
-          }
-        '';
+      ++ (optional (head (cfg.settings.update_manager.enable_system_updates or [false])) ''
+        Enabling system updates is not supported on NixOS and will lead to non-removable warnings in some clients.
+      '')
+      ++ (optional (cfg.configDir != null) ''
+        services.moonraker.configDir has been deprecated upstream and will be removed.
+
+        Action: ${
+          if cfg.configDir == unifiedConfigDir
+          then "Simply remove services.moonraker.configDir from your config."
+          else "Move files from `${cfg.configDir}` to `${unifiedConfigDir}` then remove services.moonraker.configDir from your config."
+        }
+        '');
 
     assertions = [
       {
diff --git a/nixos/modules/services/misc/nix-gc.nix b/nixos/modules/services/misc/nix-gc.nix
index 97596d28cd89..de6bd76c7eb9 100644
--- a/nixos/modules/services/misc/nix-gc.nix
+++ b/nixos/modules/services/misc/nix-gc.nix
@@ -1,7 +1,5 @@
 { config, lib, ... }:
 
-with lib;
-
 let
   cfg = config.nix.gc;
 in
@@ -14,14 +12,14 @@ in
 
     nix.gc = {
 
-      automatic = mkOption {
+      automatic = lib.mkOption {
         default = false;
-        type = types.bool;
+        type = lib.types.bool;
         description = lib.mdDoc "Automatically run the garbage collector at a specific time.";
       };
 
-      dates = mkOption {
-        type = types.str;
+      dates = lib.mkOption {
+        type = lib.types.singleLineStr;
         default = "03:15";
         example = "weekly";
         description = lib.mdDoc ''
@@ -33,9 +31,9 @@ in
         '';
       };
 
-      randomizedDelaySec = mkOption {
+      randomizedDelaySec = lib.mkOption {
         default = "0";
-        type = types.str;
+        type = lib.types.singleLineStr;
         example = "45min";
         description = lib.mdDoc ''
           Add a randomized delay before each garbage collection.
@@ -45,9 +43,9 @@ in
         '';
       };
 
-      persistent = mkOption {
+      persistent = lib.mkOption {
         default = true;
-        type = types.bool;
+        type = lib.types.bool;
         example = false;
         description = lib.mdDoc ''
           Takes a boolean argument. If true, the time when the service
@@ -61,10 +59,10 @@ in
         '';
       };
 
-      options = mkOption {
+      options = lib.mkOption {
         default = "";
         example = "--max-freed $((64 * 1024**3))";
-        type = types.str;
+        type = lib.types.singleLineStr;
         description = lib.mdDoc ''
           Options given to {file}`nix-collect-garbage` when the
           garbage collector is run automatically.
@@ -89,7 +87,8 @@ in
     systemd.services.nix-gc = lib.mkIf config.nix.enable {
       description = "Nix Garbage Collector";
       script = "exec ${config.nix.package.out}/bin/nix-collect-garbage ${cfg.options}";
-      startAt = optional cfg.automatic cfg.dates;
+      serviceConfig.Type = "oneshot";
+      startAt = lib.optional cfg.automatic cfg.dates;
     };
 
     systemd.timers.nix-gc = lib.mkIf cfg.automatic {
diff --git a/nixos/modules/services/misc/nix-ssh-serve.nix b/nixos/modules/services/misc/nix-ssh-serve.nix
index b656692ca01c..cf9d6339c69b 100644
--- a/nixos/modules/services/misc/nix-ssh-serve.nix
+++ b/nixos/modules/services/misc/nix-ssh-serve.nix
@@ -1,4 +1,4 @@
-{ config, lib, ... }:
+{ config, lib, pkgs, ... }:
 
 with lib;
 let cfg = config.nix.sshServe;
@@ -46,7 +46,7 @@ in {
       description = "Nix SSH store user";
       isSystemUser = true;
       group = "nix-ssh";
-      useDefaultShell = true;
+      shell = pkgs.bashInteractive;
     };
     users.groups.nix-ssh = {};
 
diff --git a/nixos/modules/services/misc/ollama.nix b/nixos/modules/services/misc/ollama.nix
index 9794bbbec464..d9359d2b5cd4 100644
--- a/nixos/modules/services/misc/ollama.nix
+++ b/nixos/modules/services/misc/ollama.nix
@@ -9,6 +9,13 @@ in {
       enable = lib.mkEnableOption (
         lib.mdDoc "Server for local large language models"
       );
+      listenAddress = lib.mkOption {
+        type = lib.types.str;
+        default = "127.0.0.1:11434";
+        description = lib.mdDoc ''
+          Specifies the bind address on which the ollama server HTTP interface listens.
+        '';
+      };
       package = lib.mkPackageOption pkgs "ollama" { };
     };
   };
@@ -23,6 +30,7 @@ in {
         environment = {
           HOME = "%S/ollama";
           OLLAMA_MODELS = "%S/ollama/models";
+          OLLAMA_HOST = cfg.listenAddress;
         };
         serviceConfig = {
           ExecStart = "${lib.getExe cfg.package} serve";
diff --git a/nixos/modules/services/misc/packagekit.nix b/nixos/modules/services/misc/packagekit.nix
index 5a0d314d25cd..f4191a4453ca 100644
--- a/nixos/modules/services/misc/packagekit.nix
+++ b/nixos/modules/services/misc/packagekit.nix
@@ -13,7 +13,7 @@ let
     (iniFmt.generate "PackageKit.conf" (recursiveUpdate
       {
         Daemon = {
-          DefaultBackend = "nix";
+          DefaultBackend = "test_nop";
           KeepCache = false;
         };
       }
@@ -35,7 +35,7 @@ let
 in
 {
   imports = [
-    (mkRemovedOptionModule [ "services" "packagekit" "backend" ] "Always set to Nix.")
+    (mkRemovedOptionModule [ "services" "packagekit" "backend" ] "Always set to test_nop, Nix backend is broken see #177946.")
   ];
 
   options.services.packagekit = {
diff --git a/nixos/modules/services/misc/paperless.nix b/nixos/modules/services/misc/paperless.nix
index 3c6832958f59..1256d8315c8b 100644
--- a/nixos/modules/services/misc/paperless.nix
+++ b/nixos/modules/services/misc/paperless.nix
@@ -6,7 +6,6 @@ let
   pkg = cfg.package;
 
   defaultUser = "paperless";
-  nltkDir = "/var/cache/paperless/nltk";
   defaultFont = "${pkgs.liberation_ttf}/share/fonts/truetype/LiberationSerif-Regular.ttf";
 
   # Don't start a redis instance if the user sets a custom redis connection
@@ -17,13 +16,17 @@ let
     PAPERLESS_DATA_DIR = cfg.dataDir;
     PAPERLESS_MEDIA_ROOT = cfg.mediaDir;
     PAPERLESS_CONSUMPTION_DIR = cfg.consumptionDir;
-    PAPERLESS_NLTK_DIR = nltkDir;
     PAPERLESS_THUMBNAIL_FONT_NAME = defaultFont;
     GUNICORN_CMD_ARGS = "--bind=${cfg.address}:${toString cfg.port}";
   } // optionalAttrs (config.time.timeZone != null) {
     PAPERLESS_TIME_ZONE = config.time.timeZone;
   } // optionalAttrs enableRedis {
     PAPERLESS_REDIS = "unix://${redisServer.unixSocket}";
+  } // optionalAttrs (cfg.settings.PAPERLESS_ENABLE_NLTK or true) {
+    PAPERLESS_NLTK_DIR = pkgs.symlinkJoin {
+      name = "paperless_ngx_nltk_data";
+      paths = pkg.nltkData;
+    };
   } // (lib.mapAttrs (_: s:
     if (lib.isAttrs s || lib.isList s) then builtins.toJSON s
     else if lib.isBool s then lib.boolToString s
@@ -141,12 +144,12 @@ in
         `''${dataDir}/paperless-manage createsuperuser`.
 
         The default superuser name is `admin`. To change it, set
-        option {option}`extraConfig.PAPERLESS_ADMIN_USER`.
+        option {option}`settings.PAPERLESS_ADMIN_USER`.
         WARNING: When changing the superuser name after the initial setup, the old superuser
         will continue to exist.
 
         To disable login for the web interface, set the following:
-        `extraConfig.PAPERLESS_AUTO_LOGIN_USERNAME = "admin";`.
+        `settings.PAPERLESS_AUTO_LOGIN_USERNAME = "admin";`.
         WARNING: Only use this on a trusted system without internet access to Paperless.
       '';
     };
@@ -292,22 +295,6 @@ in
       };
     };
 
-    # Download NLTK corpus data
-    systemd.services.paperless-download-nltk-data = {
-      wantedBy = [ "paperless-scheduler.service" ];
-      before = [ "paperless-scheduler.service" ];
-      after = [ "network-online.target" ];
-      serviceConfig = defaultServiceConfig // {
-        User = cfg.user;
-        Type = "oneshot";
-        # Enable internet access
-        PrivateNetwork = false;
-        ExecStart = let pythonWithNltk = pkg.python.withPackages (ps: [ ps.nltk ]); in ''
-          ${pythonWithNltk}/bin/python -m nltk.downloader -d '${nltkDir}' punkt snowball_data stopwords
-        '';
-      };
-    };
-
     systemd.services.paperless-consumer = {
       description = "Paperless document consumer";
       # Bind to `paperless-scheduler` so that the consumer never runs
diff --git a/nixos/modules/services/misc/portunus.nix b/nixos/modules/services/misc/portunus.nix
index 7036a372d1ea..ebb3bc8f0851 100644
--- a/nixos/modules/services/misc/portunus.nix
+++ b/nixos/modules/services/misc/portunus.nix
@@ -37,6 +37,15 @@ in
       '';
     };
 
+    seedSettings = lib.mkOption {
+      type = with lib.types; nullOr (attrsOf (listOf (attrsOf anything)));
+      default = null;
+      description = lib.mdDoc ''
+        Seed settings for users and groups.
+        See upstream for format <https://github.com/majewsky/portunus#seeding-users-and-groups-from-static-configuration>
+      '';
+    };
+
     stateDir = mkOption {
       type = types.path;
       default = "/var/lib/portunus";
@@ -172,49 +181,53 @@ in
       "127.0.0.1" = [ cfg.domain ];
     };
 
-    services.dex = mkIf cfg.dex.enable {
-      enable = true;
-      settings = {
-        issuer = "https://${cfg.domain}/dex";
-        web.http = "127.0.0.1:${toString cfg.dex.port}";
-        storage = {
-          type = "sqlite3";
-          config.file = "/var/lib/dex/dex.db";
-        };
-        enablePasswordDB = false;
-        connectors = [{
-          type = "ldap";
-          id = "ldap";
-          name = "LDAP";
-          config = {
-            host = "${cfg.domain}:636";
-            bindDN = "uid=${cfg.ldap.searchUserName},ou=users,${cfg.ldap.suffix}";
-            bindPW = "$DEX_SEARCH_USER_PASSWORD";
-            userSearch = {
-              baseDN = "ou=users,${cfg.ldap.suffix}";
-              filter = "(objectclass=person)";
-              username = "uid";
-              idAttr = "uid";
-              emailAttr = "mail";
-              nameAttr = "cn";
-              preferredUsernameAttr = "uid";
-            };
-            groupSearch = {
-              baseDN = "ou=groups,${cfg.ldap.suffix}";
-              filter = "(objectclass=groupOfNames)";
-              nameAttr = "cn";
-              userMatchers = [{ userAttr = "DN"; groupAttr = "member"; }];
-            };
+    services = {
+      dex = mkIf cfg.dex.enable {
+        enable = true;
+        settings = {
+          issuer = "https://${cfg.domain}/dex";
+          web.http = "127.0.0.1:${toString cfg.dex.port}";
+          storage = {
+            type = "sqlite3";
+            config.file = "/var/lib/dex/dex.db";
           };
-        }];
-
-        staticClients = forEach cfg.dex.oidcClients (client: {
-          inherit (client) id;
-          redirectURIs = [ client.callbackURL ];
-          name = "OIDC for ${client.id}";
-          secretEnv = "DEX_CLIENT_${client.id}";
-        });
+          enablePasswordDB = false;
+          connectors = [{
+            type = "ldap";
+            id = "ldap";
+            name = "LDAP";
+            config = {
+              host = "${cfg.domain}:636";
+              bindDN = "uid=${cfg.ldap.searchUserName},ou=users,${cfg.ldap.suffix}";
+              bindPW = "$DEX_SEARCH_USER_PASSWORD";
+              userSearch = {
+                baseDN = "ou=users,${cfg.ldap.suffix}";
+                filter = "(objectclass=person)";
+                username = "uid";
+                idAttr = "uid";
+                emailAttr = "mail";
+                nameAttr = "cn";
+                preferredUsernameAttr = "uid";
+              };
+              groupSearch = {
+                baseDN = "ou=groups,${cfg.ldap.suffix}";
+                filter = "(objectclass=groupOfNames)";
+                nameAttr = "cn";
+                userMatchers = [{ userAttr = "DN"; groupAttr = "member"; }];
+              };
+            };
+          }];
+
+          staticClients = forEach cfg.dex.oidcClients (client: {
+            inherit (client) id;
+            redirectURIs = [ client.callbackURL ];
+            name = "OIDC for ${client.id}";
+            secretEnv = "DEX_CLIENT_${client.id}";
+          });
+        };
       };
+
+      portunus.seedPath = lib.mkIf (cfg.seedSettings != null) (pkgs.writeText "seed.json" (builtins.toJSON cfg.seedSettings));
     };
 
     systemd.services = {
@@ -230,7 +243,10 @@ in
         description = "Self-contained authentication service";
         wantedBy = [ "multi-user.target" ];
         after = [ "network.target" ];
-        serviceConfig.ExecStart = "${cfg.package.out}/bin/portunus-orchestrator";
+        serviceConfig = {
+          ExecStart = "${cfg.package}/bin/portunus-orchestrator";
+          Restart = "on-failure";
+        };
         environment = {
           PORTUNUS_LDAP_SUFFIX = cfg.ldap.suffix;
           PORTUNUS_SERVER_BINARY = "${cfg.package}/bin/portunus-server";
diff --git a/nixos/modules/services/misc/radarr.nix b/nixos/modules/services/misc/radarr.nix
index 618341cf614f..a5f264331ed3 100644
--- a/nixos/modules/services/misc/radarr.nix
+++ b/nixos/modules/services/misc/radarr.nix
@@ -40,9 +40,10 @@ in
   };
 
   config = mkIf cfg.enable {
-    systemd.tmpfiles.rules = [
-      "d '${cfg.dataDir}' 0700 ${cfg.user} ${cfg.group} - -"
-    ];
+    systemd.tmpfiles.settings."10-radarr".${cfg.dataDir}.d = {
+      inherit (cfg) user group;
+      mode = "0700";
+    };
 
     systemd.services.radarr = {
       description = "Radarr";
diff --git a/nixos/modules/services/misc/readarr.nix b/nixos/modules/services/misc/readarr.nix
index 3c84b13485a4..73868b4baa95 100644
--- a/nixos/modules/services/misc/readarr.nix
+++ b/nixos/modules/services/misc/readarr.nix
@@ -45,9 +45,10 @@ in
   };
 
   config = mkIf cfg.enable {
-    systemd.tmpfiles.rules = [
-      "d '${cfg.dataDir}' 0700 ${cfg.user} ${cfg.group} - -"
-    ];
+    systemd.tmpfiles.settings."10-readarr".${cfg.dataDir}.d = {
+      inherit (cfg) user group;
+      mode = "0700";
+    };
 
     systemd.services.readarr = {
       description = "Readarr";
diff --git a/nixos/modules/services/misc/taskserver/helper-tool.py b/nixos/modules/services/misc/taskserver/helper-tool.py
index fec05728b2b6..b1eebb07686b 100644
--- a/nixos/modules/services/misc/taskserver/helper-tool.py
+++ b/nixos/modules/services/misc/taskserver/helper-tool.py
@@ -61,6 +61,10 @@ def run_as_taskd_user():
     os.setuid(uid)
 
 
+def run_as_taskd_group():
+    gid = grp.getgrnam(TASKD_GROUP).gr_gid
+    os.setgid(gid)
+
 def taskd_cmd(cmd, *args, **kwargs):
     """
     Invoke taskd with the specified command with the privileges of the 'taskd'
@@ -90,7 +94,7 @@ def certtool_cmd(*args, **kwargs):
     """
     return subprocess.check_output(
         [CERTTOOL_COMMAND] + list(args),
-        preexec_fn=lambda: os.umask(0o077),
+        preexec_fn=run_as_taskd_group,
         stderr=subprocess.STDOUT,
         **kwargs
     )
@@ -156,17 +160,33 @@ def generate_key(org, user):
         sys.stderr.write(msg.format(user))
         return
 
-    basedir = os.path.join(TASKD_DATA_DIR, "keys", org, user)
-    if os.path.exists(basedir):
+    keysdir = os.path.join(TASKD_DATA_DIR, "keys" )
+    orgdir  = os.path.join(keysdir       , org    )
+    userdir = os.path.join(orgdir        , user   )
+    if os.path.exists(userdir):
         raise OSError("Keyfile directory for {} already exists.".format(user))
 
-    privkey = os.path.join(basedir, "private.key")
-    pubcert = os.path.join(basedir, "public.cert")
+    privkey = os.path.join(userdir, "private.key")
+    pubcert = os.path.join(userdir, "public.cert")
 
     try:
-        os.makedirs(basedir, mode=0o700)
+        # We change the permissions and the owner ship of the base directories
+        # so that cfg.group and cfg.user could read the directories' contents.
+        # See also: https://bugs.python.org/issue42367
+        for bd in [keysdir, orgdir, userdir]:
+            # Allow cfg.group, but not others to read the contents of this group
+            os.makedirs(bd, exist_ok=True)
+            # not using mode= argument to makedirs intentionally - forcing the
+            # permissions we want
+            os.chmod(bd, mode=0o750)
+            os.chown(
+                bd,
+                uid=pwd.getpwnam(TASKD_USER).pw_uid,
+                gid=grp.getgrnam(TASKD_GROUP).gr_gid,
+            )
 
         certtool_cmd("-p", "--bits", CERT_BITS, "--outfile", privkey)
+        os.chmod(privkey, 0o640)
 
         template_data = [
             "organization = {0}".format(org),
@@ -187,7 +207,7 @@ def generate_key(org, user):
                 "--outfile", pubcert
             )
     except:
-        rmtree(basedir)
+        rmtree(userdir)
         raise
 
 
diff --git a/nixos/modules/services/monitoring/alerta.nix b/nixos/modules/services/monitoring/alerta.nix
index 6c7ebec4191c..0b0ab177e5e1 100644
--- a/nixos/modules/services/monitoring/alerta.nix
+++ b/nixos/modules/services/monitoring/alerta.nix
@@ -79,9 +79,10 @@ in
   };
 
   config = mkIf cfg.enable {
-    systemd.tmpfiles.rules = [
-      "d '${cfg.logDir}' - alerta alerta - -"
-    ];
+    systemd.tmpfiles.settings."10-alerta".${cfg.logDir}.d = {
+      user = "alerta";
+      group = "alerta";
+    };
 
     systemd.services.alerta = {
       description = "Alerta Monitoring System";
diff --git a/nixos/modules/services/monitoring/kapacitor.nix b/nixos/modules/services/monitoring/kapacitor.nix
index 727b694047b4..c90878656899 100644
--- a/nixos/modules/services/monitoring/kapacitor.nix
+++ b/nixos/modules/services/monitoring/kapacitor.nix
@@ -160,9 +160,9 @@ in
   config = mkIf cfg.enable {
     environment.systemPackages = [ pkgs.kapacitor ];
 
-    systemd.tmpfiles.rules = [
-      "d '${cfg.dataDir}' - ${cfg.user} ${cfg.group} - -"
-    ];
+    systemd.tmpfiles.settings."10-kapacitor".${cfg.dataDir}.d = {
+      inherit (cfg) user group;
+    };
 
     systemd.services.kapacitor = {
       description = "Kapacitor Real-Time Stream Processing Engine";
diff --git a/nixos/modules/services/monitoring/mackerel-agent.nix b/nixos/modules/services/monitoring/mackerel-agent.nix
index 62a7858500f2..5915634ed26f 100644
--- a/nixos/modules/services/monitoring/mackerel-agent.nix
+++ b/nixos/modules/services/monitoring/mackerel-agent.nix
@@ -84,6 +84,7 @@ in {
     # upstream service file in https://git.io/JUt4Q
     systemd.services.mackerel-agent = {
       description = "mackerel.io agent";
+      wants = [ "network-online.target" ];
       after = [ "network-online.target" "nss-lookup.target" ];
       wantedBy = [ "multi-user.target" ];
       environment = {
diff --git a/nixos/modules/services/monitoring/munin.nix b/nixos/modules/services/monitoring/munin.nix
index 5ed7cac48ae7..456a14169b95 100644
--- a/nixos/modules/services/monitoring/munin.nix
+++ b/nixos/modules/services/monitoring/munin.nix
@@ -374,7 +374,11 @@ in
     };
 
     # munin_stats plugin breaks as of 2.0.33 when this doesn't exist
-    systemd.tmpfiles.rules = [ "d /run/munin 0755 munin munin -" ];
+    systemd.tmpfiles.settings."10-munin"."/run/munin".d = {
+      mode = "0755";
+      user = "munin";
+      group = "munin";
+    };
 
   }) (mkIf cronCfg.enable {
 
@@ -399,11 +403,17 @@ in
       };
     };
 
-    systemd.tmpfiles.rules = [
-      "d /run/munin 0755 munin munin -"
-      "d /var/log/munin 0755 munin munin -"
-      "d /var/www/munin 0755 munin munin -"
-      "d /var/lib/munin 0755 munin munin -"
-    ];
+    systemd.tmpfiles.settings."20-munin" = let
+      defaultConfig = {
+        mode = "0755";
+        user = "munin";
+        group = "munin";
+      };
+    in {
+      "/run/munin".d = defaultConfig;
+      "/var/log/munin".d = defaultConfig;
+      "/var/www/munin".d = defaultConfig;
+      "/var/lib/munin".d = defaultConfig;
+    };
   })];
 }
diff --git a/nixos/modules/services/monitoring/osquery.nix b/nixos/modules/services/monitoring/osquery.nix
index 4f6c2557a641..86ef3fc73213 100644
--- a/nixos/modules/services/monitoring/osquery.nix
+++ b/nixos/modules/services/monitoring/osquery.nix
@@ -90,8 +90,10 @@ in
       };
       wantedBy = [ "multi-user.target" ];
     };
-    systemd.tmpfiles.rules = [
-      "d ${dirname (cfg.flags.pidfile)} 0755 root root -"
-    ];
+    systemd.tmpfiles.settings."10-osquery".${dirname (cfg.flags.pidfile)}.d = {
+      user = "root";
+      group = "root";
+      mode = "0755";
+    };
   };
 }
diff --git a/nixos/modules/services/monitoring/prometheus/alertmanager.nix b/nixos/modules/services/monitoring/prometheus/alertmanager.nix
index 4fd630015f35..bb426d8b7beb 100644
--- a/nixos/modules/services/monitoring/prometheus/alertmanager.nix
+++ b/nixos/modules/services/monitoring/prometheus/alertmanager.nix
@@ -174,6 +174,7 @@ in {
 
       systemd.services.alertmanager = {
         wantedBy = [ "multi-user.target" ];
+        wants    = [ "network-online.target" ];
         after    = [ "network-online.target" ];
         preStart = ''
            ${lib.getBin pkgs.envsubst}/bin/envsubst -o "/tmp/alert-manager-substituted.yaml" \
diff --git a/nixos/modules/services/monitoring/prometheus/exporters.nix b/nixos/modules/services/monitoring/prometheus/exporters.nix
index 35db8a7376b1..6be6ba7edf72 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters.nix
@@ -60,7 +60,6 @@ let
     "node"
     "nut"
     "openldap"
-    "openvpn"
     "pgbouncer"
     "php-fpm"
     "pihole"
@@ -71,6 +70,7 @@ let
     "pve"
     "py-air-control"
     "redis"
+    "restic"
     "rspamd"
     "rtl_433"
     "sabnzbd"
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/openvpn.nix b/nixos/modules/services/monitoring/prometheus/exporters/openvpn.nix
deleted file mode 100644
index 5b54dad99805..000000000000
--- a/nixos/modules/services/monitoring/prometheus/exporters/openvpn.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ config, pkgs, lib, ... }:
-
-with lib;
-
-let
-  cfg = config.services.prometheus.exporters.openvpn;
-in {
-  port = 9176;
-  extraOpts = {
-    statusPaths = mkOption {
-      type = types.listOf types.str;
-      description = lib.mdDoc ''
-        Paths to OpenVPN status files. Please configure the OpenVPN option
-        `status` accordingly.
-      '';
-    };
-    telemetryPath = mkOption {
-      type = types.str;
-      default = "/metrics";
-      description = lib.mdDoc ''
-        Path under which to expose metrics.
-      '';
-    };
-  };
-
-  serviceOpts = {
-    serviceConfig = {
-      PrivateDevices = true;
-      ProtectKernelModules = true;
-      NoNewPrivileges = true;
-      ExecStart = ''
-        ${pkgs.prometheus-openvpn-exporter}/bin/openvpn_exporter \
-          -openvpn.status_paths "${concatStringsSep "," cfg.statusPaths}" \
-          -web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
-          -web.telemetry-path ${cfg.telemetryPath}
-      '';
-    };
-  };
-}
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/pve.nix b/nixos/modules/services/monitoring/prometheus/exporters/pve.nix
index 20ee2e4b3238..83e740320df2 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/pve.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/pve.nix
@@ -21,7 +21,7 @@ in
       type = with types; nullOr path;
       default = null;
       example = "/etc/prometheus-pve-exporter/pve.env";
-      description = lib.mdDoc ''
+      description = ''
         Path to the service's environment file. This path can either be a computed path in /nix/store or a path in the local filesystem.
 
         The environment file should NOT be stored in /nix/store as it contains passwords and/or keys in plain text.
@@ -34,7 +34,7 @@ in
       type = with types; nullOr path;
       default = null;
       example = "/etc/prometheus-pve-exporter/pve.yml";
-      description = lib.mdDoc ''
+      description = ''
         Path to the service's config file. This path can either be a computed path in /nix/store or a path in the local filesystem.
 
         The config file should NOT be stored in /nix/store as it will contain passwords and/or keys in plain text.
@@ -45,46 +45,66 @@ in
       '';
     };
 
+    server = {
+      keyFile = mkOption {
+        type = with types; nullOr path;
+        default = null;
+        example = "/var/lib/prometheus-pve-exporter/privkey.key";
+        description = ''
+          Path to a SSL private key file for the server
+        '';
+      };
+
+      certFile = mkOption {
+        type = with types; nullOr path;
+        default = null;
+        example = "/var/lib/prometheus-pve-exporter/full-chain.pem";
+        description = ''
+          Path to a SSL certificate file for the server
+        '';
+      };
+    };
+
     collectors = {
       status = mkOption {
         type = types.bool;
         default = true;
-        description = lib.mdDoc ''
+        description = ''
           Collect Node/VM/CT status
         '';
       };
       version = mkOption {
         type = types.bool;
         default = true;
-        description = lib.mdDoc ''
+        description = ''
           Collect PVE version info
         '';
       };
       node = mkOption {
         type = types.bool;
         default = true;
-        description = lib.mdDoc ''
+        description = ''
           Collect PVE node info
         '';
       };
       cluster = mkOption {
         type = types.bool;
         default = true;
-        description = lib.mdDoc ''
+        description = ''
           Collect PVE cluster info
         '';
       };
       resources = mkOption {
         type = types.bool;
         default = true;
-        description = lib.mdDoc ''
+        description = ''
           Collect PVE resources info
         '';
       };
       config = mkOption {
         type = types.bool;
         default = true;
-        description = lib.mdDoc ''
+        description = ''
           Collect PVE onboot status
         '';
       };
@@ -102,8 +122,10 @@ in
           --${optionalString (!cfg.collectors.cluster) "no-"}collector.cluster \
           --${optionalString (!cfg.collectors.resources) "no-"}collector.resources \
           --${optionalString (!cfg.collectors.config) "no-"}collector.config \
-          %d/configFile \
-          ${toString cfg.port} ${cfg.listenAddress}
+          ${optionalString (cfg.server.keyFile != null) "--server.keyfile ${cfg.server.keyFile}"} \
+          ${optionalString (cfg.server.certFile != null) "--server.certfile ${cfg.server.certFile}"} \
+          --config.file %d/configFile \
+          --web.listen-address ${cfg.listenAddress}:${toString cfg.port}
       '';
     } // optionalAttrs (cfg.environmentFile != null) {
       EnvironmentFile = cfg.environmentFile;
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/restic.nix b/nixos/modules/services/monitoring/prometheus/exporters/restic.nix
new file mode 100644
index 000000000000..5b32c93a666d
--- /dev/null
+++ b/nixos/modules/services/monitoring/prometheus/exporters/restic.nix
@@ -0,0 +1,131 @@
+{ config, lib, pkgs, options }:
+
+with lib;
+
+let
+  cfg = config.services.prometheus.exporters.restic;
+in
+{
+  port = 9753;
+  extraOpts = {
+    repository = mkOption {
+      type = types.str;
+      description = lib.mdDoc ''
+        URI pointing to the repository to monitor.
+      '';
+      example = "sftp:backup@192.168.1.100:/backups/example";
+    };
+
+    passwordFile = mkOption {
+      type = types.path;
+      description = lib.mdDoc ''
+        File containing the password to the repository.
+      '';
+      example = "/etc/nixos/restic-password";
+    };
+
+    environmentFile = mkOption {
+      type = with types; nullOr path;
+      default = null;
+      description = lib.mdDoc ''
+        File containing the credentials to access the repository, in the
+        format of an EnvironmentFile as described by systemd.exec(5)
+      '';
+    };
+
+    refreshInterval = mkOption {
+      type = types.ints.unsigned;
+      default = 60;
+      description = lib.mdDoc ''
+        Refresh interval for the metrics in seconds.
+        Computing the metrics is an expensive task, keep this value as high as possible.
+      '';
+    };
+
+    rcloneOptions = mkOption {
+      type = with types; attrsOf (oneOf [ str bool ]);
+      default = { };
+      description = lib.mdDoc ''
+        Options to pass to rclone to control its behavior.
+        See <https://rclone.org/docs/#options> for
+        available options. When specifying option names, strip the
+        leading `--`. To set a flag such as
+        `--drive-use-trash`, which does not take a value,
+        set the value to the Boolean `true`.
+      '';
+    };
+
+    rcloneConfig = mkOption {
+      type = with types; attrsOf (oneOf [ str bool ]);
+      default = { };
+      description = lib.mdDoc ''
+        Configuration for the rclone remote being used for backup.
+        See the remote's specific options under rclone's docs at
+        <https://rclone.org/docs/>. When specifying
+        option names, use the "config" name specified in the docs.
+        For example, to set `--b2-hard-delete` for a B2
+        remote, use `hard_delete = true` in the
+        attribute set.
+
+        ::: {.warning}
+        Secrets set in here will be world-readable in the Nix
+        store! Consider using the {option}`rcloneConfigFile`
+        option instead to specify secret values separately. Note that
+        options set here will override those set in the config file.
+        :::
+      '';
+    };
+
+    rcloneConfigFile = mkOption {
+      type = with types; nullOr path;
+      default = null;
+      description = lib.mdDoc ''
+        Path to the file containing rclone configuration. This file
+        must contain configuration for the remote specified in this backup
+        set and also must be readable by root.
+
+        ::: {.caution}
+        Options set in `rcloneConfig` will override those set in this
+        file.
+        :::
+      '';
+    };
+  };
+
+  serviceOpts = {
+    serviceConfig = {
+      ExecStart = ''
+        ${pkgs.prometheus-restic-exporter}/bin/restic-exporter.py \
+          ${concatStringsSep " \\\n  " cfg.extraFlags}
+      '';
+      EnvironmentFile = mkIf (cfg.environmentFile != null) cfg.environmentFile;
+    };
+    environment =
+      let
+        rcloneRemoteName = builtins.elemAt (splitString ":" cfg.repository) 1;
+        rcloneAttrToOpt = v: "RCLONE_" + toUpper (builtins.replaceStrings [ "-" ] [ "_" ] v);
+        rcloneAttrToConf = v: "RCLONE_CONFIG_" + toUpper (rcloneRemoteName + "_" + v);
+        toRcloneVal = v: if lib.isBool v then lib.boolToString v else v;
+      in
+      {
+        RESTIC_REPO_URL = cfg.repository;
+        RESTIC_REPO_PASSWORD_FILE = cfg.passwordFile;
+        LISTEN_ADDRESS = cfg.listenAddress;
+        LISTEN_PORT = toString cfg.port;
+        REFRESH_INTERVAL = toString cfg.refreshInterval;
+      }
+      // (mapAttrs'
+        (name: value:
+          nameValuePair (rcloneAttrToOpt name) (toRcloneVal value)
+        )
+        cfg.rcloneOptions)
+      // optionalAttrs (cfg.rcloneConfigFile != null) {
+        RCLONE_CONFIG = cfg.rcloneConfigFile;
+      }
+      // (mapAttrs'
+        (name: value:
+          nameValuePair (rcloneAttrToConf name) (toRcloneVal value)
+        )
+        cfg.rcloneConfig);
+  };
+}
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/snmp.nix b/nixos/modules/services/monitoring/prometheus/exporters/snmp.nix
index 840ce493ee81..452cb154bcf6 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/snmp.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/snmp.nix
@@ -3,6 +3,7 @@
 with lib;
 
 let
+  logPrefix = "services.prometheus.exporters.snmp";
   cfg = config.services.prometheus.exporters.snmp;
 
   # This ensures that we can deal with string paths, path types and
diff --git a/nixos/modules/services/monitoring/riemann-dash.nix b/nixos/modules/services/monitoring/riemann-dash.nix
index 1ca8af14e777..1622d7a9b920 100644
--- a/nixos/modules/services/monitoring/riemann-dash.nix
+++ b/nixos/modules/services/monitoring/riemann-dash.nix
@@ -59,9 +59,10 @@ in {
       group = "riemanndash";
     };
 
-    systemd.tmpfiles.rules = [
-      "d '${cfg.dataDir}' - riemanndash riemanndash - -"
-    ];
+    systemd.tmpfiles.settings."10-riemanndash".${cfg.dataDir}.d = {
+      user = "riemanndash";
+      group = "riemanndash";
+    };
 
     systemd.services.riemann-dash = {
       wantedBy = [ "multi-user.target" ];
diff --git a/nixos/modules/services/monitoring/rustdesk-server.nix b/nixos/modules/services/monitoring/rustdesk-server.nix
new file mode 100644
index 000000000000..0a6a8e71672f
--- /dev/null
+++ b/nixos/modules/services/monitoring/rustdesk-server.nix
@@ -0,0 +1,95 @@
+{ lib, pkgs, config, ... }:
+let
+  TCPPorts = [21115 21116 21117 21118 21119];
+  UDPPorts = [21116];
+in {
+  options.services.rustdesk-server = with lib; with types; {
+    enable = mkEnableOption "RustDesk, a remote access and remote control software, allowing maintenance of computers and other devices.";
+
+    package = mkPackageOption pkgs "rustdesk-server" {};
+
+    openFirewall = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Open the connection ports.
+        TCP (${lib.concatStringsSep ", " (map toString TCPPorts)})
+        UDP (${lib.concatStringsSep ", " (map toString UDPPorts)})
+      '';
+    };
+
+    relayIP = mkOption {
+      type = str;
+      description = ''
+        The public facing IP of the RustDesk relay.
+      '';
+    };
+  };
+
+  config = let
+    cfg = config.services.rustdesk-server;
+    serviceDefaults = {
+      enable = true;
+      requiredBy = [ "rustdesk.target" ];
+      serviceConfig = {
+        Slice = "system-rustdesk.slice";
+        User  = "rustdesk";
+        Group = "rustdesk";
+        Environment = [];
+        WorkingDirectory = "/var/lib/rustdesk";
+        StateDirectory   = "rustdesk";
+        StateDirectoryMode = "0750";
+        LockPersonality = true;
+        NoNewPrivileges = true;
+        PrivateDevices = true;
+        PrivateMounts = true;
+        PrivateTmp = true;
+        PrivateUsers = true;
+        ProtectClock = true;
+        ProtectControlGroups = true;
+        ProtectHome = true;
+        ProtectHostname = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectProc = "invisible";
+        ProtectSystem = "strict";
+        RemoveIPC = true;
+        RestrictNamespaces = true;
+        RestrictSUIDSGID = true;
+      };
+    };
+  in lib.mkIf cfg.enable {
+    users.users.rustdesk = {
+      description = "System user for RustDesk";
+      isSystemUser = true;
+      group = "rustdesk";
+    };
+    users.groups.rustdesk = {};
+
+    networking.firewall.allowedTCPPorts = lib.mkIf cfg.openFirewall TCPPorts;
+    networking.firewall.allowedUDPPorts = lib.mkIf cfg.openFirewall UDPPorts;
+
+    systemd.slices.system-rustdesk = {
+      enable = true;
+      description = "Slice designed to contain RustDesk Signal & RustDesk Relay";
+    };
+
+    systemd.targets.rustdesk = {
+      enable = true;
+      description = "Target designed to group RustDesk Signal & RustDesk Relay";
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+    };
+
+    systemd.services.rustdesk-signal = lib.mkMerge [ serviceDefaults {
+      serviceConfig.ExecStart = "${cfg.package}/bin/hbbs -r ${cfg.relayIP}";
+    } ];
+
+    systemd.services.rustdesk-relay = lib.mkMerge [ serviceDefaults {
+      serviceConfig.ExecStart = "${cfg.package}/bin/hbbr";
+    } ];
+  };
+
+  meta.maintainers = with lib.maintainers; [ ppom ];
+}
diff --git a/nixos/modules/services/monitoring/teamviewer.nix b/nixos/modules/services/monitoring/teamviewer.nix
index 9b1278317943..7c45247aa6d5 100644
--- a/nixos/modules/services/monitoring/teamviewer.nix
+++ b/nixos/modules/services/monitoring/teamviewer.nix
@@ -30,6 +30,7 @@ in
       description = "TeamViewer remote control daemon";
 
       wantedBy = [ "multi-user.target" ];
+      wants = [ "network-online.target" ];
       after = [ "network-online.target" "network.target" "dbus.service" ];
       requires = [ "dbus.service" ];
       preStart = "mkdir -pv /var/lib/teamviewer /var/log/teamviewer";
diff --git a/nixos/modules/services/monitoring/telegraf.nix b/nixos/modules/services/monitoring/telegraf.nix
index ee28ee03adf3..3bab8aba7bd6 100644
--- a/nixos/modules/services/monitoring/telegraf.nix
+++ b/nixos/modules/services/monitoring/telegraf.nix
@@ -59,6 +59,7 @@ in {
     in {
       description = "Telegraf Agent";
       wantedBy = [ "multi-user.target" ];
+      wants = [ "network-online.target" ];
       after = [ "network-online.target" ];
       path = lib.optional (config.services.telegraf.extraConfig.inputs ? procstat) pkgs.procps;
       serviceConfig = {
diff --git a/nixos/modules/services/monitoring/watchdogd.nix b/nixos/modules/services/monitoring/watchdogd.nix
new file mode 100644
index 000000000000..e8d104651c6a
--- /dev/null
+++ b/nixos/modules/services/monitoring/watchdogd.nix
@@ -0,0 +1,131 @@
+{ config, lib, pkgs, ... }:
+with lib;
+let
+  cfg = config.services.watchdogd;
+
+  mkPluginOpts = plugin: defWarn: defCrit: {
+    enabled = mkEnableOption "watchdogd plugin ${plugin}";
+    interval = mkOption {
+      type = types.ints.unsigned;
+      default = 300;
+      description = ''
+        Amount of seconds between every poll.
+      '';
+    };
+    logmark = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Whether to log current stats every poll interval.
+      '';
+    };
+    warning = mkOption {
+      type = types.numbers.nonnegative;
+      default = defWarn;
+      description = ''
+        The high watermark level. Alert sent to log.
+      '';
+    };
+    critical = mkOption {
+      type = types.numbers.nonnegative;
+      default = defCrit;
+      description = ''
+        The critical watermark level. Alert sent to log, followed by reboot or script action.
+      '';
+    };
+  };
+in {
+  options.services.watchdogd = {
+    enable = mkEnableOption "watchdogd, an advanced system & process supervisor";
+    package = mkPackageOption pkgs "watchdogd" { };
+
+    settings = mkOption {
+      type = with types; submodule {
+        freeformType = let
+          valueType = oneOf [
+            bool
+            int
+            float
+            str
+          ];
+        in attrsOf (either valueType (attrsOf valueType));
+
+        options = {
+          timeout = mkOption {
+            type = types.ints.unsigned;
+            default = 15;
+            description = ''
+              The WDT timeout before reset.
+            '';
+          };
+          interval = mkOption {
+            type = types.ints.unsigned;
+            default = 5;
+            description = ''
+              The kick interval, i.e. how often {manpage}`watchdogd(8)` should reset the WDT timer.
+            '';
+          };
+
+          safe-exit = mkOption {
+            type = types.bool;
+            default = true;
+            description = ''
+              With {var}`safeExit` enabled, the daemon will ask the driver to disable the WDT before exiting.
+              However, some WDT drivers (or hardware) may not support this.
+            '';
+          };
+
+          filenr = mkPluginOpts "filenr" 0.9 1.0;
+
+          loadavg = mkPluginOpts "loadavg" 1.0 2.0;
+
+          meminfo = mkPluginOpts "meminfo" 0.9 0.95;
+        };
+      };
+      default = { };
+      description = ''
+        Configuration to put in {file}`watchdogd.conf`.
+        See {manpage}`watchdogd.conf(5)` for more details.
+      '';
+    };
+  };
+
+  config = let
+    toConfig = attrs: concatStringsSep "\n" (mapAttrsToList toValue attrs);
+
+    toValue = name: value:
+      if isAttrs value
+        then pipe value [
+          (mapAttrsToList toValue)
+          (map (s: "  ${s}"))
+          (concatStringsSep "\n")
+          (s: "${name} {\n${s}\n}")
+        ]
+      else if isBool value
+        then "${name} = ${boolToString value}"
+      else if any (f: f value) [isString isInt isFloat]
+        then "${name} = ${toString value}"
+      else throw ''
+        Found invalid type in `services.watchdogd.settings`: '${typeOf value}'
+      '';
+
+    watchdogdConf = pkgs.writeText "watchdogd.conf" (toConfig cfg.settings);
+  in mkIf cfg.enable {
+    environment.systemPackages = [ cfg.package ];
+
+    systemd.services.watchdogd = {
+      documentation = [
+        "man:watchdogd(8)"
+        "man:watchdogd.conf(5)"
+      ];
+      wantedBy = [ "multi-user.target" ];
+      description = "Advanced system & process supervisor";
+      serviceConfig = {
+        Type = "simple";
+        ExecStart = "${cfg.package}/bin/watchdogd -n -f ${watchdogdConf}";
+      };
+    };
+  };
+
+  meta.maintainers = with maintainers; [ vifino ];
+}
diff --git a/nixos/modules/services/monitoring/zabbix-proxy.nix b/nixos/modules/services/monitoring/zabbix-proxy.nix
index 503e81b48a58..fea5704af6f6 100644
--- a/nixos/modules/services/monitoring/zabbix-proxy.nix
+++ b/nixos/modules/services/monitoring/zabbix-proxy.nix
@@ -299,10 +299,7 @@ in
         fi
       '' + optionalString (cfg.database.passwordFile != null) ''
         # create a copy of the supplied password file in a format zabbix can consume
-        touch ${passwordFile}
-        chmod 0600 ${passwordFile}
-        echo -n "DBPassword = " > ${passwordFile}
-        cat ${cfg.database.passwordFile} >> ${passwordFile}
+        install -m 0600 <(echo "DBPassword = $(cat ${cfg.database.passwordFile})") ${passwordFile}
       '';
 
       serviceConfig = {
diff --git a/nixos/modules/services/monitoring/zabbix-server.nix b/nixos/modules/services/monitoring/zabbix-server.nix
index 0607188d2131..f2fb5fbe7ac6 100644
--- a/nixos/modules/services/monitoring/zabbix-server.nix
+++ b/nixos/modules/services/monitoring/zabbix-server.nix
@@ -292,10 +292,7 @@ in
         fi
       '' + optionalString (cfg.database.passwordFile != null) ''
         # create a copy of the supplied password file in a format zabbix can consume
-        touch ${passwordFile}
-        chmod 0600 ${passwordFile}
-        echo -n "DBPassword = " > ${passwordFile}
-        cat ${cfg.database.passwordFile} >> ${passwordFile}
+        install -m 0600 <(echo "DBPassword = $(cat ${cfg.database.passwordFile})") ${passwordFile}
       '';
 
       serviceConfig = {
diff --git a/nixos/modules/services/network-filesystems/cachefilesd.nix b/nixos/modules/services/network-filesystems/cachefilesd.nix
index da5a79a062c7..3fb6a19c6fa3 100644
--- a/nixos/modules/services/network-filesystems/cachefilesd.nix
+++ b/nixos/modules/services/network-filesystems/cachefilesd.nix
@@ -56,8 +56,10 @@ in
       };
     };
 
-    systemd.tmpfiles.rules = [
-      "d ${cfg.cacheDir} 0700 root root - -"
-    ];
+    systemd.tmpfiles.settings."10-cachefilesd".${cfg.cacheDir}.d = {
+      user = "root";
+      group = "root";
+      mode = "0700";
+    };
   };
 }
diff --git a/nixos/modules/services/network-filesystems/ceph.nix b/nixos/modules/services/network-filesystems/ceph.nix
index 222905223b59..df9a2f802bb9 100644
--- a/nixos/modules/services/network-filesystems/ceph.nix
+++ b/nixos/modules/services/network-filesystems/ceph.nix
@@ -398,12 +398,18 @@ in
       in
         mkMerge targets;
 
-    systemd.tmpfiles.rules = [
-      "d /etc/ceph - ceph ceph - -"
-      "d /run/ceph 0770 ceph ceph -"
-      "d /var/lib/ceph - ceph ceph - -"]
-    ++ optionals cfg.mgr.enable [ "d /var/lib/ceph/mgr - ceph ceph - -"]
-    ++ optionals cfg.mon.enable [ "d /var/lib/ceph/mon - ceph ceph - -"]
-    ++ optionals cfg.osd.enable [ "d /var/lib/ceph/osd - ceph ceph - -"];
+    systemd.tmpfiles.settings."10-ceph" = let
+      defaultConfig = {
+        user = "ceph";
+        group = "ceph";
+      };
+    in {
+      "/etc/ceph".d = defaultConfig;
+      "/run/ceph".d = defaultConfig // { mode = "0770"; };
+      "/var/lib/ceph".d = defaultConfig;
+      "/var/lib/ceph/mgr".d = mkIf (cfg.mgr.enable) defaultConfig;
+      "/var/lib/ceph/mon".d = mkIf (cfg.mon.enable) defaultConfig;
+      "/var/lib/ceph/osd".d = mkIf (cfg.osd.enable) defaultConfig;
+    };
   };
 }
diff --git a/nixos/modules/services/network-filesystems/kbfs.nix b/nixos/modules/services/network-filesystems/kbfs.nix
index 33ff283d5e81..578675e75dc3 100644
--- a/nixos/modules/services/network-filesystems/kbfs.nix
+++ b/nixos/modules/services/network-filesystems/kbfs.nix
@@ -92,7 +92,12 @@ in {
     (mkIf cfg.enableRedirector {
       security.wrappers."keybase-redirector".source = "${pkgs.kbfs}/bin/redirector";
 
-      systemd.tmpfiles.rules = [ "d /keybase 0755 root root 0" ];
+      systemd.tmpfiles.settings."10-kbfs"."/keybase".d = {
+        user = "root";
+        group = "root";
+        mode = "0755";
+        age = "0";
+      };
 
       # Upstream: https://github.com/keybase/client/blob/master/packaging/linux/systemd/keybase-redirector.service
       systemd.user.services.keybase-redirector = {
diff --git a/nixos/modules/services/network-filesystems/kubo.nix b/nixos/modules/services/network-filesystems/kubo.nix
index 10162c1633e7..9a05a28550d3 100644
--- a/nixos/modules/services/network-filesystems/kubo.nix
+++ b/nixos/modules/services/network-filesystems/kubo.nix
@@ -312,12 +312,13 @@ in
       ipfs.gid = config.ids.gids.ipfs;
     };
 
-    systemd.tmpfiles.rules = [
-      "d '${cfg.dataDir}' - ${cfg.user} ${cfg.group} - -"
-    ] ++ optionals cfg.autoMount [
-      "d '${cfg.settings.Mounts.IPFS}' - ${cfg.user} ${cfg.group} - -"
-      "d '${cfg.settings.Mounts.IPNS}' - ${cfg.user} ${cfg.group} - -"
-    ];
+    systemd.tmpfiles.settings."10-kubo" = let
+      defaultConfig = { inherit (cfg) user group; };
+    in {
+      ${cfg.dataDir}.d = defaultConfig;
+      ${cfg.settings.Mounts.IPFS}.d = mkIf (cfg.autoMount) defaultConfig;
+      ${cfg.settings.Mounts.IPNS}.d = mkIf (cfg.autoMount) defaultConfig;
+    };
 
     # The hardened systemd unit breaks the fuse-mount function according to documentation in the unit file itself
     systemd.packages = if cfg.autoMount
diff --git a/nixos/modules/services/network-filesystems/openafs/client.nix b/nixos/modules/services/network-filesystems/openafs/client.nix
index bb0fee087e62..02c3482ec657 100644
--- a/nixos/modules/services/network-filesystems/openafs/client.nix
+++ b/nixos/modules/services/network-filesystems/openafs/client.nix
@@ -215,6 +215,7 @@ in
     systemd.services.afsd = {
       description = "AFS client";
       wantedBy = [ "multi-user.target" ];
+      wants = lib.optional (!cfg.startDisconnected) "network-online.target";
       after = singleton (if cfg.startDisconnected then  "network.target" else "network-online.target");
       serviceConfig = { RemainAfterExit = true; };
       restartIfChanged = false;
diff --git a/nixos/modules/services/network-filesystems/samba.nix b/nixos/modules/services/network-filesystems/samba.nix
index 5d02eac8e9f1..ef368ddbeefd 100644
--- a/nixos/modules/services/network-filesystems/samba.nix
+++ b/nixos/modules/services/network-filesystems/samba.nix
@@ -154,7 +154,7 @@ in
       };
 
       securityType = mkOption {
-        type = types.str;
+        type = types.enum [ "auto" "user" "domain" "ads" ];
         default = "user";
         description = lib.mdDoc "Samba security type";
       };
diff --git a/nixos/modules/services/networking/aria2.nix b/nixos/modules/services/networking/aria2.nix
index e848869cc0ac..1fb55b836798 100644
--- a/nixos/modules/services/networking/aria2.nix
+++ b/nixos/modules/services/networking/aria2.nix
@@ -18,11 +18,14 @@ let
     dir=${cfg.downloadDir}
     listen-port=${concatStringsSep "," (rangesToStringList cfg.listenPortRange)}
     rpc-listen-port=${toString cfg.rpcListenPort}
-    rpc-secret=${cfg.rpcSecret}
   '';
 
 in
 {
+  imports = [
+    (mkRemovedOptionModule [ "services" "aria2" "rpcSecret" ] "Use services.aria2.rpcSecretFile instead")
+  ];
+
   options = {
     services.aria2 = {
       enable = mkOption {
@@ -65,11 +68,11 @@ in
         default = 6800;
         description = lib.mdDoc "Specify a port number for JSON-RPC/XML-RPC server to listen to. Possible Values: 1024-65535";
       };
-      rpcSecret = mkOption {
-        type = types.str;
-        default = "aria2rpc";
+      rpcSecretFile = mkOption {
+        type = types.path;
+        example = "/run/secrets/aria2-rpc-token.txt";
         description = lib.mdDoc ''
-          Set RPC secret authorization token.
+          A file containing the RPC secret authorization token.
           Read https://aria2.github.io/manual/en/html/aria2c.html#rpc-auth to know how this option value is used.
         '';
       };
@@ -117,6 +120,7 @@ in
           touch "${sessionFile}"
         fi
         cp -f "${settingsFile}" "${settingsDir}/aria2.conf"
+        echo "rpc-secret=$(cat "$CREDENTIALS_DIRECTORY/rpcSecretFile")" >> "${settingsDir}/aria2.conf"
       '';
 
       serviceConfig = {
@@ -125,6 +129,7 @@ in
         ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
         User = "aria2";
         Group = "aria2";
+        LoadCredential="rpcSecretFile:${cfg.rpcSecretFile}";
       };
     };
   };
diff --git a/nixos/modules/services/networking/bird.nix b/nixos/modules/services/networking/bird.nix
index 9deeb7694d2a..e25f5c7b0379 100644
--- a/nixos/modules/services/networking/bird.nix
+++ b/nixos/modules/services/networking/bird.nix
@@ -18,6 +18,13 @@ in
           <http://bird.network.cz/>
         '';
       };
+      autoReload = mkOption {
+        type = types.bool;
+        default = true;
+        description = lib.mdDoc ''
+          Whether bird2 should be automatically reloaded when the configuration changes.
+        '';
+      };
       checkConfig = mkOption {
         type = types.bool;
         default = true;
@@ -68,7 +75,7 @@ in
     systemd.services.bird2 = {
       description = "BIRD Internet Routing Daemon";
       wantedBy = [ "multi-user.target" ];
-      reloadTriggers = [ config.environment.etc."bird/bird2.conf".source ];
+      reloadTriggers = lib.optional cfg.autoReload config.environment.etc."bird/bird2.conf".source;
       serviceConfig = {
         Type = "forking";
         Restart = "on-failure";
diff --git a/nixos/modules/services/networking/bitcoind.nix b/nixos/modules/services/networking/bitcoind.nix
index 4512e666ba5b..59722e31c62a 100644
--- a/nixos/modules/services/networking/bitcoind.nix
+++ b/nixos/modules/services/networking/bitcoind.nix
@@ -198,6 +198,7 @@ in
         '';
       in {
         description = "Bitcoin daemon";
+        wants = [ "network-online.target" ];
         after = [ "network-online.target" ];
         wantedBy = [ "multi-user.target" ];
         serviceConfig = {
diff --git a/nixos/modules/services/networking/charybdis.nix b/nixos/modules/services/networking/charybdis.nix
index 168da243dba1..6eacdde7bb93 100644
--- a/nixos/modules/services/networking/charybdis.nix
+++ b/nixos/modules/services/networking/charybdis.nix
@@ -81,9 +81,9 @@ in
         gid = config.ids.gids.ircd;
       };
 
-      systemd.tmpfiles.rules = [
-        "d ${cfg.statedir} - ${cfg.user} ${cfg.group} - -"
-      ];
+      systemd.tmpfiles.settings."10-charybdis".${cfg.statedir}.d = {
+        inherit (cfg) user group;
+      };
 
       environment.etc."charybdis/ircd.conf".source = configFile;
 
diff --git a/nixos/modules/services/networking/dante.nix b/nixos/modules/services/networking/dante.nix
index 605f2d74f827..f0d1d6305c54 100644
--- a/nixos/modules/services/networking/dante.nix
+++ b/nixos/modules/services/networking/dante.nix
@@ -47,6 +47,7 @@ in
 
     systemd.services.dante = {
       description   = "Dante SOCKS v4 and v5 compatible proxy server";
+      wants         = [ "network-online.target" ];
       after         = [ "network-online.target" ];
       wantedBy      = [ "multi-user.target" ];
 
diff --git a/nixos/modules/services/networking/dnsdist.nix b/nixos/modules/services/networking/dnsdist.nix
index 483300111df9..792185c9fbea 100644
--- a/nixos/modules/services/networking/dnsdist.nix
+++ b/nixos/modules/services/networking/dnsdist.nix
@@ -4,10 +4,79 @@ with lib;
 
 let
   cfg = config.services.dnsdist;
+
+  toLua = lib.generators.toLua {};
+
+  mkBind = cfg: toLua "${cfg.listenAddress}:${toString cfg.listenPort}";
+
   configFile = pkgs.writeText "dnsdist.conf" ''
-    setLocal('${cfg.listenAddress}:${toString cfg.listenPort}')
+    setLocal(${mkBind cfg})
+    ${lib.optionalString cfg.dnscrypt.enable dnscryptSetup}
     ${cfg.extraConfig}
   '';
+
+  dnscryptSetup = ''
+    last_rotation = 0
+    cert_serial = 0
+    provider_key = ${toLua cfg.dnscrypt.providerKey}
+    cert_lifetime = ${toLua cfg.dnscrypt.certLifetime} * 60
+
+    function file_exists(name)
+       local f = io.open(name, "r")
+       return f ~= nil and io.close(f)
+    end
+
+    function dnscrypt_setup()
+      -- generate provider keys on first run
+      if provider_key == nil then
+        provider_key = "/var/lib/dnsdist/private.key"
+        if not file_exists(provider_key) then
+          generateDNSCryptProviderKeys("/var/lib/dnsdist/public.key",
+                                       "/var/lib/dnsdist/private.key")
+          print("DNSCrypt: generated provider keypair")
+        end
+      end
+
+      -- generate resolver certificate
+      local now = os.time()
+      generateDNSCryptCertificate(
+        provider_key, "/run/dnsdist/resolver.cert", "/run/dnsdist/resolver.key",
+        cert_serial, now - 60, now + cert_lifetime)
+      addDNSCryptBind(
+        ${mkBind cfg.dnscrypt}, ${toLua cfg.dnscrypt.providerName},
+        "/run/dnsdist/resolver.cert", "/run/dnsdist/resolver.key")
+    end
+
+    function maintenance()
+      -- certificate rotation
+      local now = os.time()
+      local dnscrypt = getDNSCryptBind(0)
+
+      if ((now - last_rotation) > 0.9 * cert_lifetime) then
+        -- generate and start using a new certificate
+        dnscrypt:generateAndLoadInMemoryCertificate(
+          provider_key, cert_serial + 1,
+          now - 60, now + cert_lifetime)
+
+        -- stop advertising the last certificate
+        dnscrypt:markInactive(cert_serial)
+
+        -- remove the second to last certificate
+        if (cert_serial > 1)  then
+          dnscrypt:removeInactiveCertificate(cert_serial - 1)
+        end
+
+        print("DNSCrypt: rotated certificate")
+
+        -- increment serial number
+        cert_serial = cert_serial + 1
+        last_rotation = now
+      end
+    end
+
+    dnscrypt_setup()
+  '';
+
 in {
   options = {
     services.dnsdist = {
@@ -15,15 +84,69 @@ in {
 
       listenAddress = mkOption {
         type = types.str;
-        description = lib.mdDoc "Listen IP Address";
+        description = lib.mdDoc "Listen IP address";
         default = "0.0.0.0";
       };
       listenPort = mkOption {
-        type = types.int;
+        type = types.port;
         description = lib.mdDoc "Listen port";
         default = 53;
       };
 
+      dnscrypt = {
+        enable = mkEnableOption (lib.mdDoc "a DNSCrypt endpoint to dnsdist");
+
+        listenAddress = mkOption {
+          type = types.str;
+          description = lib.mdDoc "Listen IP address of the endpoint";
+          default = "0.0.0.0";
+        };
+
+        listenPort = mkOption {
+          type = types.port;
+          description = lib.mdDoc "Listen port of the endpoint";
+          default = 443;
+        };
+
+        providerName = mkOption {
+          type = types.str;
+          default = "2.dnscrypt-cert.${config.networking.hostName}";
+          defaultText = literalExpression "2.dnscrypt-cert.\${config.networking.hostName}";
+          example = "2.dnscrypt-cert.myresolver";
+          description = lib.mdDoc ''
+            The name that will be given to this DNSCrypt resolver.
+
+            ::: {.note}
+            The provider name must start with `2.dnscrypt-cert.`.
+            :::
+          '';
+        };
+
+        providerKey = mkOption {
+          type = types.nullOr types.path;
+          default = null;
+          description = lib.mdDoc ''
+            The filepath to the provider secret key.
+            If not given a new provider key pair will be generated in
+            /var/lib/dnsdist on the first run.
+
+            ::: {.note}
+            The file must be readable by the dnsdist user/group.
+            :::
+          '';
+        };
+
+        certLifetime = mkOption {
+          type = types.ints.positive;
+          default = 15;
+          description = lib.mdDoc ''
+            The lifetime (in minutes) of the resolver certificate.
+            This will be automatically rotated before expiration.
+          '';
+        };
+
+      };
+
       extraConfig = mkOption {
         type = types.lines;
         default = "";
@@ -35,6 +158,14 @@ in {
   };
 
   config = mkIf cfg.enable {
+    users.users.dnsdist = {
+      description = "dnsdist daemons user";
+      isSystemUser = true;
+      group = "dnsdist";
+    };
+
+    users.groups.dnsdist = {};
+
     systemd.packages = [ pkgs.dnsdist ];
 
     systemd.services.dnsdist = {
@@ -42,8 +173,10 @@ in {
 
       startLimitIntervalSec = 0;
       serviceConfig = {
-        DynamicUser = true;
-
+        User = "dnsdist";
+        Group = "dnsdist";
+        RuntimeDirectory = "dnsdist";
+        StateDirectory = "dnsdist";
         # upstream overrides for better nixos compatibility
         ExecStartPre = [ "" "${pkgs.dnsdist}/bin/dnsdist --check-config --config ${configFile}" ];
         ExecStart = [ "" "${pkgs.dnsdist}/bin/dnsdist --supervised --disable-syslog --config ${configFile}" ];
diff --git a/nixos/modules/services/networking/ergo.nix b/nixos/modules/services/networking/ergo.nix
index 033d4d9caf8a..1bee0f43f988 100644
--- a/nixos/modules/services/networking/ergo.nix
+++ b/nixos/modules/services/networking/ergo.nix
@@ -114,6 +114,7 @@ in {
     systemd.services.ergo = {
       description = "ergo server";
       wantedBy = [ "multi-user.target" ];
+      wants = [ "network-online.target" ];
       after = [ "network-online.target" ];
       serviceConfig = {
         User = cfg.user;
diff --git a/nixos/modules/services/networking/expressvpn.nix b/nixos/modules/services/networking/expressvpn.nix
index 30de6987d31f..05c24d8bccff 100644
--- a/nixos/modules/services/networking/expressvpn.nix
+++ b/nixos/modules/services/networking/expressvpn.nix
@@ -21,6 +21,7 @@ with lib;
         RestartSec = 5;
       };
       wantedBy = [ "multi-user.target" ];
+      wants = [ "network-online.target" ];
       after = [ "network.target" "network-online.target" ];
     };
   };
diff --git a/nixos/modules/services/networking/headscale.nix b/nixos/modules/services/networking/headscale.nix
index 4224a0578cc3..0159da37de87 100644
--- a/nixos/modules/services/networking/headscale.nix
+++ b/nixos/modules/services/networking/headscale.nix
@@ -444,10 +444,14 @@ in {
       tls_letsencrypt_cache_dir = "${dataDir}/.cache";
     };
 
-    # Setup the headscale configuration in a known path in /etc to
-    # allow both the Server and the Client use it to find the socket
-    # for communication.
-    environment.etc."headscale/config.yaml".source = configFile;
+    environment = {
+      # Setup the headscale configuration in a known path in /etc to
+      # allow both the Server and the Client use it to find the socket
+      # for communication.
+      etc."headscale/config.yaml".source = configFile;
+
+      systemPackages = [ cfg.package ];
+    };
 
     users.groups.headscale = mkIf (cfg.group == "headscale") {};
 
@@ -460,6 +464,7 @@ in {
 
     systemd.services.headscale = {
       description = "headscale coordination server for Tailscale";
+      wants = [ "network-online.target" ];
       after = ["network-online.target"];
       wantedBy = ["multi-user.target"];
       restartTriggers = [configFile];
diff --git a/nixos/modules/services/networking/ircd-hybrid/default.nix b/nixos/modules/services/networking/ircd-hybrid/default.nix
index 554b0f7bb8b4..64a34cc52d25 100644
--- a/nixos/modules/services/networking/ircd-hybrid/default.nix
+++ b/nixos/modules/services/networking/ircd-hybrid/default.nix
@@ -125,7 +125,8 @@ in
 
     systemd.services.ircd-hybrid = {
       description = "IRCD Hybrid server";
-      after = [ "started networking" ];
+      wants = [ "network-online.target" ];
+      after = [ "network-online.target" ];
       wantedBy = [ "multi-user.target" ];
       script = "${ircdService}/bin/control start";
     };
diff --git a/nixos/modules/services/networking/ivpn.nix b/nixos/modules/services/networking/ivpn.nix
index 6df630c1f194..6c9ae599e670 100644
--- a/nixos/modules/services/networking/ivpn.nix
+++ b/nixos/modules/services/networking/ivpn.nix
@@ -27,7 +27,7 @@ with lib;
     systemd.services.ivpn-service = {
       description = "iVPN daemon";
       wantedBy = [ "multi-user.target" ];
-      wants = [ "network.target" ];
+      wants = [ "network.target" "network-online.target" ];
       after = [
         "network-online.target"
         "NetworkManager.service"
diff --git a/nixos/modules/services/networking/jibri/default.nix b/nixos/modules/services/networking/jibri/default.nix
index a931831fc281..73d11bdbee5a 100644
--- a/nixos/modules/services/networking/jibri/default.nix
+++ b/nixos/modules/services/networking/jibri/default.nix
@@ -395,11 +395,11 @@ in
       };
     };
 
-    systemd.tmpfiles.rules = [
-      "d /var/log/jitsi/jibri 755 jibri jibri"
-    ];
-
-
+    systemd.tmpfiles.settings."10-jibri"."/var/log/jitsi/jibri".d = {
+      user = "jibri";
+      group = "jibri";
+      mode = "755";
+    };
 
     # Configure Chromium to not show the "Chrome is being controlled by automatic test software" message.
     environment.etc."chromium/policies/managed/managed_policies.json".text = builtins.toJSON { CommandLineFlagSecurityWarningsEnabled = false; };
diff --git a/nixos/modules/services/networking/kea.nix b/nixos/modules/services/networking/kea.nix
index 5ca705976c41..656ddd41fd12 100644
--- a/nixos/modules/services/networking/kea.nix
+++ b/nixos/modules/services/networking/kea.nix
@@ -325,6 +325,9 @@ in
         "network-online.target"
         "time-sync.target"
       ];
+      wants = [
+        "network-online.target"
+      ];
       wantedBy = [
         "multi-user.target"
       ];
@@ -372,6 +375,9 @@ in
         "network-online.target"
         "time-sync.target"
       ];
+      wants = [
+        "network-online.target"
+      ];
       wantedBy = [
         "multi-user.target"
       ];
@@ -413,6 +419,7 @@ in
         "https://kea.readthedocs.io/en/kea-${package.version}/arm/ddns.html"
       ];
 
+      wants = [ "network-online.target" ];
       after = [
         "network-online.target"
         "time-sync.target"
diff --git a/nixos/modules/services/networking/keepalived/default.nix b/nixos/modules/services/networking/keepalived/default.nix
index 429a47c3962c..599dfd52e271 100644
--- a/nixos/modules/services/networking/keepalived/default.nix
+++ b/nixos/modules/services/networking/keepalived/default.nix
@@ -59,9 +59,11 @@ let
         ${optionalString i.vmacXmitBase "vmac_xmit_base"}
 
         ${optionalString (i.unicastSrcIp != null) "unicast_src_ip ${i.unicastSrcIp}"}
-        unicast_peer {
-          ${concatStringsSep "\n" i.unicastPeers}
-        }
+        ${optionalString (builtins.length i.unicastPeers > 0) ''
+          unicast_peer {
+            ${concatStringsSep "\n" i.unicastPeers}
+          }
+        ''}
 
         virtual_ipaddress {
           ${concatMapStringsSep "\n" virtualIpLine i.virtualIps}
@@ -138,6 +140,7 @@ let
 
 in
 {
+  meta.maintainers = [ lib.maintainers.raitobezarius ];
 
   options = {
     services.keepalived = {
diff --git a/nixos/modules/services/networking/knot.nix b/nixos/modules/services/networking/knot.nix
index d4bd81629c97..94c32586736a 100644
--- a/nixos/modules/services/networking/knot.nix
+++ b/nixos/modules/services/networking/knot.nix
@@ -44,6 +44,7 @@ let
         ++ [ (sec_list_fa "id" nix_def "template") ]
         ++ [ (sec_list_fa "domain" nix_def "zone") ]
         ++ [ (sec_plain nix_def "include") ]
+        ++ [ (sec_plain nix_def "clear") ]
       );
 
     # A plain section contains directly attributes (we don't really check that ATM).
diff --git a/nixos/modules/services/networking/kresd.nix b/nixos/modules/services/networking/kresd.nix
index 0c7363e564dc..307414abf170 100644
--- a/nixos/modules/services/networking/kresd.nix
+++ b/nixos/modules/services/networking/kresd.nix
@@ -11,7 +11,7 @@ let
   mkListen = kind: addr: let
     al_v4 = builtins.match "([0-9.]+):([0-9]+)($)" addr;
     al_v6 = builtins.match "\\[(.+)]:([0-9]+)(%.*|$)" addr;
-    al_portOnly = builtins.match "([0-9]+)" addr;
+    al_portOnly = builtins.match "(^)([0-9]+)" addr;
     al = findFirst (a: a != null)
       (throw "services.kresd.*: incorrect address specification '${addr}'")
       [ al_v4 al_v6 al_portOnly ];
diff --git a/nixos/modules/services/networking/mosquitto.nix b/nixos/modules/services/networking/mosquitto.nix
index f2b158b98942..ad9eefb42252 100644
--- a/nixos/modules/services/networking/mosquitto.nix
+++ b/nixos/modules/services/networking/mosquitto.nix
@@ -596,6 +596,7 @@ in
     systemd.services.mosquitto = {
       description = "Mosquitto MQTT Broker Daemon";
       wantedBy = [ "multi-user.target" ];
+      wants = [ "network-online.target" ];
       after = [ "network-online.target" ];
       serviceConfig = {
         Type = "notify";
diff --git a/nixos/modules/services/networking/mullvad-vpn.nix b/nixos/modules/services/networking/mullvad-vpn.nix
index 446c71f40764..5da4ca1d1d80 100644
--- a/nixos/modules/services/networking/mullvad-vpn.nix
+++ b/nixos/modules/services/networking/mullvad-vpn.nix
@@ -53,7 +53,7 @@ with lib;
     systemd.services.mullvad-daemon = {
       description = "Mullvad VPN daemon";
       wantedBy = [ "multi-user.target" ];
-      wants = [ "network.target" ];
+      wants = [ "network.target" "network-online.target" ];
       after = [
         "network-online.target"
         "NetworkManager.service"
diff --git a/nixos/modules/services/networking/nbd.nix b/nixos/modules/services/networking/nbd.nix
index 454380aa3154..b4bf7ede8463 100644
--- a/nixos/modules/services/networking/nbd.nix
+++ b/nixos/modules/services/networking/nbd.nix
@@ -117,6 +117,7 @@ in
     boot.kernelModules = [ "nbd" ];
 
     systemd.services.nbd-server = {
+      wants = [ "network-online.target" ];
       after = [ "network-online.target" ];
       before = [ "multi-user.target" ];
       wantedBy = [ "multi-user.target" ];
diff --git a/nixos/modules/services/networking/netbird.md b/nixos/modules/services/networking/netbird.md
new file mode 100644
index 000000000000..a326207becc8
--- /dev/null
+++ b/nixos/modules/services/networking/netbird.md
@@ -0,0 +1,56 @@
+# Netbird {#module-services-netbird}
+
+## Quickstart {#module-services-netbird-quickstart}
+
+The absolute minimal configuration for the netbird daemon looks like this:
+
+```nix
+services.netbird.enable = true;
+```
+
+This will set up a netbird service listening on the port `51820` associated to the
+`wt0` interface.
+
+It is strictly equivalent to setting:
+
+```nix
+services.netbird.tunnels.wt0.stateDir = "netbird";
+```
+
+The `enable` option is mainly kept for backward compatibility, as defining netbird
+tunnels through the `tunnels` option is more expressive.
+
+## Multiple connections setup {#module-services-netbird-multiple-connections}
+
+Using the `services.netbird.tunnels` option, it is also possible to define more than
+one netbird service running at the same time.
+
+The following configuration will start a netbird daemon using the interface `wt1` and
+the port 51830. Its configuration file will then be located at `/var/lib/netbird-wt1/config.json`.
+
+```nix
+services.netbird.tunnels = {
+  wt1 = {
+    port = 51830;
+  };
+};
+```
+
+To interact with it, you will need to specify the correct daemon address:
+
+```bash
+netbird --daemon-addr unix:///var/run/netbird-wt1/sock ...
+```
+
+The address will by default be `unix:///var/run/netbird-<name>`.
+
+It is also possible to overwrite default options passed to the service, for
+example:
+
+```nix
+services.netbird.tunnels.wt1.environment = {
+  NB_DAEMON_ADDR = "unix:///var/run/toto.sock"
+};
+```
+
+This will set the socket to interact with the netbird service to `/var/run/toto.sock`.
diff --git a/nixos/modules/services/networking/netbird.nix b/nixos/modules/services/networking/netbird.nix
index 4b0bd63e9dbc..6a1511d4d084 100644
--- a/nixos/modules/services/networking/netbird.nix
+++ b/nixos/modules/services/networking/netbird.nix
@@ -1,60 +1,171 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
+{
+  config,
+  lib,
+  pkgs,
+  ...
+}:
 
 let
-  cfg = config.services.netbird;
+  inherit (lib)
+    attrNames
+    getExe
+    literalExpression
+    maintainers
+    mapAttrs'
+    mkDefault
+    mkEnableOption
+    mkIf
+    mkMerge
+    mkOption
+    mkPackageOption
+    nameValuePair
+    optional
+    versionOlder
+    ;
+
+  inherit (lib.types)
+    attrsOf
+    port
+    str
+    submodule
+    ;
+
   kernel = config.boot.kernelPackages;
-  interfaceName = "wt0";
-in {
-  meta.maintainers = with maintainers; [ misuzu ];
+
+  cfg = config.services.netbird;
+in
+{
+  meta.maintainers = with maintainers; [
+    misuzu
+    thubrecht
+  ];
+  meta.doc = ./netbird.md;
 
   options.services.netbird = {
     enable = mkEnableOption (lib.mdDoc "Netbird daemon");
     package = mkPackageOption pkgs "netbird" { };
-  };
-
-  config = mkIf cfg.enable {
-    boot.extraModulePackages = optional (versionOlder kernel.kernel.version "5.6") kernel.wireguard;
 
-    environment.systemPackages = [ cfg.package ];
+    tunnels = mkOption {
+      type = attrsOf (
+        submodule (
+          { name, config, ... }:
+          {
+            options = {
+              port = mkOption {
+                type = port;
+                default = 51820;
+                description = ''
+                  Port for the ${name} netbird interface.
+                '';
+              };
 
-    networking.dhcpcd.denyInterfaces = [ interfaceName ];
+              environment = mkOption {
+                type = attrsOf str;
+                defaultText = literalExpression ''
+                  {
+                    NB_CONFIG = "/var/lib/''${stateDir}/config.json";
+                    NB_LOG_FILE = "console";
+                    NB_WIREGUARD_PORT = builtins.toString port;
+                    NB_INTERFACE_NAME = name;
+                    NB_DAMEON_ADDR = "/var/run/''${stateDir}"
+                  }
+                '';
+                description = ''
+                  Environment for the netbird service, used to pass configuration options.
+                '';
+              };
 
-    systemd.network.networks."50-netbird" = mkIf config.networking.useNetworkd {
-      matchConfig = {
-        Name = interfaceName;
-      };
-      linkConfig = {
-        Unmanaged = true;
-        ActivationPolicy = "manual";
-      };
-    };
+              stateDir = mkOption {
+                type = str;
+                default = "netbird-${name}";
+                description = ''
+                  Directory storing the netbird configuration.
+                '';
+              };
+            };
 
-    systemd.services.netbird = {
-      description = "A WireGuard-based mesh network that connects your devices into a single private network";
-      documentation = [ "https://netbird.io/docs/" ];
-      after = [ "network.target" ];
-      wantedBy = [ "multi-user.target" ];
-      path = with pkgs; [
-        openresolv
-      ];
-      serviceConfig = {
-        Environment = [
-          "NB_CONFIG=/var/lib/netbird/config.json"
-          "NB_LOG_FILE=console"
-        ];
-        ExecStart = "${cfg.package}/bin/netbird service run";
-        Restart = "always";
-        RuntimeDirectory = "netbird";
-        StateDirectory = "netbird";
-        WorkingDirectory = "/var/lib/netbird";
-      };
-      unitConfig = {
-        StartLimitInterval = 5;
-        StartLimitBurst = 10;
-      };
-      stopIfChanged = false;
+            config.environment = builtins.mapAttrs (_: mkDefault) {
+              NB_CONFIG = "/var/lib/${config.stateDir}/config.json";
+              NB_LOG_FILE = "console";
+              NB_WIREGUARD_PORT = builtins.toString config.port;
+              NB_INTERFACE_NAME = name;
+              NB_DAEMON_ADDR = "unix:///var/run/${config.stateDir}/sock";
+            };
+          }
+        )
+      );
+      default = { };
+      description = ''
+        Attribute set of Netbird tunnels, each one will spawn a daemon listening on ...
+      '';
     };
   };
+
+  config = mkMerge [
+    (mkIf cfg.enable {
+      # For backwards compatibility
+      services.netbird.tunnels.wt0.stateDir = "netbird";
+    })
+
+    (mkIf (cfg.tunnels != { }) {
+      boot.extraModulePackages = optional (versionOlder kernel.kernel.version "5.6") kernel.wireguard;
+
+      environment.systemPackages = [ cfg.package ];
+
+      networking.dhcpcd.denyInterfaces = attrNames cfg.tunnels;
+
+      systemd.network.networks = mkIf config.networking.useNetworkd (
+        mapAttrs'
+          (
+            name: _:
+            nameValuePair "50-netbird-${name}" {
+              matchConfig = {
+                Name = name;
+              };
+              linkConfig = {
+                Unmanaged = true;
+                ActivationPolicy = "manual";
+              };
+            }
+          )
+          cfg.tunnels
+      );
+
+      systemd.services =
+        mapAttrs'
+          (
+            name:
+            { environment, stateDir, ... }:
+            nameValuePair "netbird-${name}" {
+              description = "A WireGuard-based mesh network that connects your devices into a single private network";
+
+              documentation = [ "https://netbird.io/docs/" ];
+
+              after = [ "network.target" ];
+              wantedBy = [ "multi-user.target" ];
+
+              path = with pkgs; [ openresolv ];
+
+              inherit environment;
+
+              serviceConfig = {
+                ExecStart = "${getExe cfg.package} service run";
+                Restart = "always";
+                RuntimeDirectory = stateDir;
+                StateDirectory = stateDir;
+                StateDirectoryMode = "0700";
+                WorkingDirectory = "/var/lib/${stateDir}";
+              };
+
+              unitConfig = {
+                StartLimitInterval = 5;
+                StartLimitBurst = 10;
+              };
+
+              stopIfChanged = false;
+            }
+          )
+          cfg.tunnels;
+    })
+  ];
 }
diff --git a/nixos/modules/services/networking/ocserv.nix b/nixos/modules/services/networking/ocserv.nix
index 9548fd92dbda..3c61d56b893e 100644
--- a/nixos/modules/services/networking/ocserv.nix
+++ b/nixos/modules/services/networking/ocserv.nix
@@ -85,6 +85,7 @@ in
     systemd.services.ocserv = {
       description = "OpenConnect SSL VPN server";
       documentation = [ "man:ocserv(8)" ];
+      wants = [ "network-online.target" ];
       after = [ "dbus.service" "network-online.target" ];
       wantedBy = [ "multi-user.target" ];
 
diff --git a/nixos/modules/services/networking/pleroma.nix b/nixos/modules/services/networking/pleroma.nix
index db0a61b83469..8470f5e9cbc0 100644
--- a/nixos/modules/services/networking/pleroma.nix
+++ b/nixos/modules/services/networking/pleroma.nix
@@ -92,6 +92,7 @@ in {
 
     systemd.services.pleroma = {
       description = "Pleroma social network";
+      wants = [ "network-online.target" ];
       after = [ "network-online.target" "postgresql.service" ];
       wantedBy = [ "multi-user.target" ];
       restartTriggers = [ config.environment.etc."/pleroma/config.exs".source ];
diff --git a/nixos/modules/services/networking/pyload.nix b/nixos/modules/services/networking/pyload.nix
new file mode 100644
index 000000000000..f2b85499d4dd
--- /dev/null
+++ b/nixos/modules/services/networking/pyload.nix
@@ -0,0 +1,147 @@
+{ config, lib, pkgs, utils, ... }:
+let
+  cfg = config.services.pyload;
+
+  stateDir = "/var/lib/pyload";
+in
+{
+  meta.maintainers = with lib.maintainers; [ ambroisie ];
+
+  options = with lib; {
+    services.pyload = {
+      enable = mkEnableOption "pyLoad download manager";
+
+      package = mkPackageOption pkgs "pyLoad" { default = [ "pyload-ng" ]; };
+
+      listenAddress = mkOption {
+        type = types.str;
+        default = "localhost";
+        example = "0.0.0.0";
+        description = "Address to listen on for the web UI.";
+      };
+
+      port = mkOption {
+        type = types.port;
+        default = 8000;
+        example = 9876;
+        description = "Port to listen on for the web UI.";
+      };
+
+      downloadDirectory = mkOption {
+        type = types.path;
+        default = "${stateDir}/downloads";
+        example = "/mnt/downloads";
+        description = "Directory to store downloads.";
+      };
+
+      credentialsFile = mkOption {
+        type = with types; nullOr path;
+        default = null;
+        example = "/run/secrets/pyload-credentials.env";
+        description = ''
+          File containing {env}`PYLOAD_DEFAULT_USERNAME` and
+          {env}`PYLOAD_DEFAULT_PASSWORD` in the format of an `EnvironmentFile=`,
+          as described by {manpage}`systemd.exec(5)`.
+
+          If not given, they default to the username/password combo of
+          pyload/pyload.
+        '';
+      };
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+    systemd.tmpfiles.settings.pyload = {
+      ${cfg.downloadDirectory}.d = { };
+    };
+
+    systemd.services.pyload = {
+      description = "pyLoad download manager";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network.target" ];
+
+      # NOTE: unlike what the documentation says, it looks like `HOME` is not
+      # defined with this service definition...
+      # Since pyload tries to do the equivalent of `cd ~`, it needs to be able
+      # to resolve $HOME, which fails when `RootDirectory` is set.
+      # FIXME: check if `SetLoginEnvironment` fixes this issue in version 255
+      environment = {
+        HOME = stateDir;
+        PYLOAD__WEBUI__HOST = cfg.listenAddress;
+        PYLOAD__WEBUI__PORT = builtins.toString cfg.port;
+      };
+
+      serviceConfig = {
+        ExecStart = utils.escapeSystemdExecArgs [
+          (lib.getExe cfg.package)
+          "--userdir"
+          "${stateDir}/config"
+          "--storagedir"
+          cfg.downloadDirectory
+        ];
+
+        User = "pyload";
+        Group = "pyload";
+        DynamicUser = true;
+
+        EnvironmentFile = lib.optional (cfg.credentialsFile != null) cfg.credentialsFile;
+
+        StateDirectory = "pyload";
+        WorkingDirectory = stateDir;
+        RuntimeDirectory = "pyload";
+        RuntimeDirectoryMode = "0700";
+        RootDirectory = "/run/pyload";
+        BindReadOnlyPaths = [
+          builtins.storeDir # Needed to run the python interpreter
+        ];
+        BindPaths = [
+          cfg.downloadDirectory
+        ];
+
+        # Hardening options
+        LockPersonality = true;
+        NoNewPrivileges = true;
+        PrivateDevices = true;
+        PrivateMounts = true;
+        PrivateTmp = true;
+        PrivateUsers = true;
+        ProcSubset = "pid";
+        ProtectClock = true;
+        ProtectControlGroups = true;
+        ProtectHome = true;
+        ProtectHostname = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectProc = "invisible";
+        ProtectSystem = "strict";
+        RemoveIPC = true;
+        RestrictAddressFamilies = "AF_INET AF_INET6 AF_UNIX";
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+        SystemCallArchitectures = "native";
+        SystemCallFilter = [ "@system-service" "~@resources" "~@privileged" ];
+        UMask = "0002";
+        CapabilityBoundingSet = [
+          "~CAP_BLOCK_SUSPEND"
+          "~CAP_BPF"
+          "~CAP_CHOWN"
+          "~CAP_IPC_LOCK"
+          "~CAP_KILL"
+          "~CAP_LEASE"
+          "~CAP_LINUX_IMMUTABLE"
+          "~CAP_NET_ADMIN"
+          "~CAP_SYS_ADMIN"
+          "~CAP_SYS_BOOT"
+          "~CAP_SYS_CHROOT"
+          "~CAP_SYS_NICE"
+          "~CAP_SYS_PACCT"
+          "~CAP_SYS_PTRACE"
+          "~CAP_SYS_RESOURCE"
+          "~CAP_SYS_TTY_CONFIG"
+        ];
+      };
+    };
+  };
+}
diff --git a/nixos/modules/services/networking/rosenpass.nix b/nixos/modules/services/networking/rosenpass.nix
index d2a264b83d67..487cb6f60142 100644
--- a/nixos/modules/services/networking/rosenpass.nix
+++ b/nixos/modules/services/networking/rosenpass.nix
@@ -208,6 +208,7 @@ in
       in
       rec {
         wantedBy = [ "multi-user.target" ];
+        wants = [ "network-online.target" ];
         after = [ "network-online.target" ];
         path = [ cfg.package pkgs.wireguard-tools ];
 
diff --git a/nixos/modules/services/networking/rxe.nix b/nixos/modules/services/networking/rxe.nix
index 7dbb4823b4bc..07437ed71195 100644
--- a/nixos/modules/services/networking/rxe.nix
+++ b/nixos/modules/services/networking/rxe.nix
@@ -33,7 +33,7 @@ in {
 
       wantedBy = [ "multi-user.target" ];
       after = [ "systemd-modules-load.service" "network-online.target" ];
-      wants = [ "network-pre.target" ];
+      wants = [ "network-pre.target" "network-online.target" ];
 
       serviceConfig = {
         Type = "oneshot";
diff --git a/nixos/modules/services/networking/seafile.nix b/nixos/modules/services/networking/seafile.nix
index 9caabc60c78f..b2d12234900a 100644
--- a/nixos/modules/services/networking/seafile.nix
+++ b/nixos/modules/services/networking/seafile.nix
@@ -32,7 +32,8 @@ let
   dataDir = "${seafRoot}/data";
   seahubDir = "${seafRoot}/seahub";
 
-in {
+in
+{
 
   ###### Interface
 
@@ -147,146 +148,151 @@ in {
       description = "Seafile components";
     };
 
-    systemd.services = let
-      securityOptions = {
-        ProtectHome = true;
-        PrivateUsers = true;
-        PrivateDevices = true;
-        ProtectClock = true;
-        ProtectHostname = true;
-        ProtectProc = "invisible";
-        ProtectKernelModules = true;
-        ProtectKernelTunables = true;
-        ProtectKernelLogs = true;
-        ProtectControlGroups = true;
-        RestrictNamespaces = true;
-        LockPersonality = true;
-        RestrictRealtime = true;
-        RestrictSUIDSGID = true;
-        MemoryDenyWriteExecute = true;
-        SystemCallArchitectures = "native";
-        RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" ];
-      };
-    in {
-      seaf-server = {
-        description = "Seafile server";
-        partOf = [ "seafile.target" ];
-        after = [ "network.target" ];
-        wantedBy = [ "seafile.target" ];
-        restartTriggers = [ ccnetConf seafileConf ];
-        path = [ pkgs.sqlite ];
-        serviceConfig = securityOptions // {
-          User = "seafile";
-          Group = "seafile";
-          DynamicUser = true;
-          StateDirectory = "seafile";
-          RuntimeDirectory = "seafile";
-          LogsDirectory = "seafile";
-          ConfigurationDirectory = "seafile";
-          ExecStart = ''
-            ${cfg.seafilePackage}/bin/seaf-server \
-            --foreground \
-            -F /etc/seafile \
-            -c ${ccnetDir} \
-            -d ${dataDir} \
-            -l /var/log/seafile/server.log \
-            -P /run/seafile/server.pid \
-            -p /run/seafile
-          '';
+    systemd.services =
+      let
+        securityOptions = {
+          ProtectHome = true;
+          PrivateUsers = true;
+          PrivateDevices = true;
+          ProtectClock = true;
+          ProtectHostname = true;
+          ProtectProc = "invisible";
+          ProtectKernelModules = true;
+          ProtectKernelTunables = true;
+          ProtectKernelLogs = true;
+          ProtectControlGroups = true;
+          RestrictNamespaces = true;
+          LockPersonality = true;
+          RestrictRealtime = true;
+          RestrictSUIDSGID = true;
+          MemoryDenyWriteExecute = true;
+          SystemCallArchitectures = "native";
+          RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" ];
         };
-        preStart = ''
-          if [ ! -f "${seafRoot}/server-setup" ]; then
-              mkdir -p ${dataDir}/library-template
-              mkdir -p ${ccnetDir}/{GroupMgr,misc,OrgMgr,PeerMgr}
-              sqlite3 ${ccnetDir}/GroupMgr/groupmgr.db ".read ${cfg.seafilePackage}/share/seafile/sql/sqlite/groupmgr.sql"
-              sqlite3 ${ccnetDir}/misc/config.db ".read ${cfg.seafilePackage}/share/seafile/sql/sqlite/config.sql"
-              sqlite3 ${ccnetDir}/OrgMgr/orgmgr.db ".read ${cfg.seafilePackage}/share/seafile/sql/sqlite/org.sql"
-              sqlite3 ${ccnetDir}/PeerMgr/usermgr.db ".read ${cfg.seafilePackage}/share/seafile/sql/sqlite/user.sql"
-              sqlite3 ${dataDir}/seafile.db ".read ${cfg.seafilePackage}/share/seafile/sql/sqlite/seafile.sql"
-              echo "${cfg.seafilePackage.version}-sqlite" > "${seafRoot}"/server-setup
-          fi
-          # checking for upgrades and handling them
-          # WARNING: needs to be extended to actually handle major version migrations
-          installedMajor=$(cat "${seafRoot}/server-setup" | cut -d"-" -f1 | cut -d"." -f1)
-          installedMinor=$(cat "${seafRoot}/server-setup" | cut -d"-" -f1 | cut -d"." -f2)
-          pkgMajor=$(echo "${cfg.seafilePackage.version}" | cut -d"." -f1)
-          pkgMinor=$(echo "${cfg.seafilePackage.version}" | cut -d"." -f2)
-
-          if [[ $installedMajor == $pkgMajor && $installedMinor == $pkgMinor ]]; then
-             :
-          elif [[ $installedMajor == 8 && $installedMinor == 0 && $pkgMajor == 9 && $pkgMinor == 0 ]]; then
-              # Upgrade from 8.0 to 9.0
-              sqlite3 ${dataDir}/seafile.db ".read ${pkgs.seahub}/scripts/upgrade/sql/9.0.0/sqlite3/seafile.sql"
-              echo "${cfg.seafilePackage.version}-sqlite" > "${seafRoot}"/server-setup
-          else
-              echo "Unsupported upgrade" >&2
-              exit 1
-          fi
-        '';
-      };
+      in
+      {
+        seaf-server = {
+          description = "Seafile server";
+          partOf = [ "seafile.target" ];
+          after = [ "network.target" ];
+          wantedBy = [ "seafile.target" ];
+          restartTriggers = [ ccnetConf seafileConf ];
+          path = [ pkgs.sqlite ];
+          serviceConfig = securityOptions // {
+            User = "seafile";
+            Group = "seafile";
+            DynamicUser = true;
+            StateDirectory = "seafile";
+            RuntimeDirectory = "seafile";
+            LogsDirectory = "seafile";
+            ConfigurationDirectory = "seafile";
+            ExecStart = ''
+              ${cfg.seafilePackage}/bin/seaf-server \
+              --foreground \
+              -F /etc/seafile \
+              -c ${ccnetDir} \
+              -d ${dataDir} \
+              -l /var/log/seafile/server.log \
+              -P /run/seafile/server.pid \
+              -p /run/seafile
+            '';
+          };
+          preStart = ''
+            if [ ! -f "${seafRoot}/server-setup" ]; then
+                mkdir -p ${dataDir}/library-template
+                mkdir -p ${ccnetDir}/{GroupMgr,misc,OrgMgr,PeerMgr}
+                sqlite3 ${ccnetDir}/GroupMgr/groupmgr.db ".read ${cfg.seafilePackage}/share/seafile/sql/sqlite/groupmgr.sql"
+                sqlite3 ${ccnetDir}/misc/config.db ".read ${cfg.seafilePackage}/share/seafile/sql/sqlite/config.sql"
+                sqlite3 ${ccnetDir}/OrgMgr/orgmgr.db ".read ${cfg.seafilePackage}/share/seafile/sql/sqlite/org.sql"
+                sqlite3 ${ccnetDir}/PeerMgr/usermgr.db ".read ${cfg.seafilePackage}/share/seafile/sql/sqlite/user.sql"
+                sqlite3 ${dataDir}/seafile.db ".read ${cfg.seafilePackage}/share/seafile/sql/sqlite/seafile.sql"
+                echo "${cfg.seafilePackage.version}-sqlite" > "${seafRoot}"/server-setup
+            fi
+            # checking for upgrades and handling them
+            installedMajor=$(cat "${seafRoot}/server-setup" | cut -d"-" -f1 | cut -d"." -f1)
+            installedMinor=$(cat "${seafRoot}/server-setup" | cut -d"-" -f1 | cut -d"." -f2)
+            pkgMajor=$(echo "${cfg.seafilePackage.version}" | cut -d"." -f1)
+            pkgMinor=$(echo "${cfg.seafilePackage.version}" | cut -d"." -f2)
 
-      seahub = {
-        description = "Seafile Server Web Frontend";
-        wantedBy = [ "seafile.target" ];
-        partOf = [ "seafile.target" ];
-        after = [ "network.target" "seaf-server.service" ];
-        requires = [ "seaf-server.service" ];
-        restartTriggers = [ seahubSettings ];
-        environment = {
-          PYTHONPATH = "${pkgs.seahub.pythonPath}:${pkgs.seahub}/thirdpart:${pkgs.seahub}";
-          DJANGO_SETTINGS_MODULE = "seahub.settings";
-          CCNET_CONF_DIR = ccnetDir;
-          SEAFILE_CONF_DIR = dataDir;
-          SEAFILE_CENTRAL_CONF_DIR = "/etc/seafile";
-          SEAFILE_RPC_PIPE_PATH = "/run/seafile";
-          SEAHUB_LOG_DIR = "/var/log/seafile";
+            if [[ $installedMajor == $pkgMajor && $installedMinor == $pkgMinor ]]; then
+               :
+            elif [[ $installedMajor == 8 && $installedMinor == 0 && $pkgMajor == 9 && $pkgMinor == 0 ]]; then
+                # Upgrade from 8.0 to 9.0
+                sqlite3 ${dataDir}/seafile.db ".read ${pkgs.seahub}/scripts/upgrade/sql/9.0.0/sqlite3/seafile.sql"
+                echo "${cfg.seafilePackage.version}-sqlite" > "${seafRoot}"/server-setup
+            elif [[ $installedMajor == 9 && $installedMinor == 0 && $pkgMajor == 10 && $pkgMinor == 0 ]]; then
+                # Upgrade from 9.0 to 10.0
+                sqlite3 ${dataDir}/seafile.db ".read ${pkgs.seahub}/scripts/upgrade/sql/10.0.0/sqlite3/seafile.sql"
+                echo "${cfg.seafilePackage.version}-sqlite" > "${seafRoot}"/server-setup
+            else
+                echo "Unsupported upgrade" >&2
+                exit 1
+            fi
+          '';
         };
-        serviceConfig = securityOptions // {
-          User = "seafile";
-          Group = "seafile";
-          DynamicUser = true;
-          RuntimeDirectory = "seahub";
-          StateDirectory = "seafile";
-          LogsDirectory = "seafile";
-          ConfigurationDirectory = "seafile";
-          ExecStart = ''
-            ${pkgs.seahub.python.pkgs.gunicorn}/bin/gunicorn seahub.wsgi:application \
-            --name seahub \
-            --workers ${toString cfg.workers} \
-            --log-level=info \
-            --preload \
-            --timeout=1200 \
-            --limit-request-line=8190 \
-            --bind unix:/run/seahub/gunicorn.sock
+
+        seahub = {
+          description = "Seafile Server Web Frontend";
+          wantedBy = [ "seafile.target" ];
+          partOf = [ "seafile.target" ];
+          after = [ "network.target" "seaf-server.service" ];
+          requires = [ "seaf-server.service" ];
+          restartTriggers = [ seahubSettings ];
+          environment = {
+            PYTHONPATH = "${pkgs.seahub.pythonPath}:${pkgs.seahub}/thirdpart:${pkgs.seahub}";
+            DJANGO_SETTINGS_MODULE = "seahub.settings";
+            CCNET_CONF_DIR = ccnetDir;
+            SEAFILE_CONF_DIR = dataDir;
+            SEAFILE_CENTRAL_CONF_DIR = "/etc/seafile";
+            SEAFILE_RPC_PIPE_PATH = "/run/seafile";
+            SEAHUB_LOG_DIR = "/var/log/seafile";
+          };
+          serviceConfig = securityOptions // {
+            User = "seafile";
+            Group = "seafile";
+            DynamicUser = true;
+            RuntimeDirectory = "seahub";
+            StateDirectory = "seafile";
+            LogsDirectory = "seafile";
+            ConfigurationDirectory = "seafile";
+            ExecStart = ''
+              ${pkgs.seahub.python.pkgs.gunicorn}/bin/gunicorn seahub.wsgi:application \
+              --name seahub \
+              --workers ${toString cfg.workers} \
+              --log-level=info \
+              --preload \
+              --timeout=1200 \
+              --limit-request-line=8190 \
+              --bind unix:/run/seahub/gunicorn.sock
+            '';
+          };
+          preStart = ''
+            mkdir -p ${seahubDir}/media
+            # Link all media except avatars
+            for m in `find ${pkgs.seahub}/media/ -maxdepth 1 -not -name "avatars"`; do
+              ln -sf $m ${seahubDir}/media/
+            done
+            if [ ! -e "${seafRoot}/.seahubSecret" ]; then
+                ${pkgs.seahub.python}/bin/python ${pkgs.seahub}/tools/secret_key_generator.py > ${seafRoot}/.seahubSecret
+                chmod 400 ${seafRoot}/.seahubSecret
+            fi
+            if [ ! -f "${seafRoot}/seahub-setup" ]; then
+                # avatars directory should be writable
+                install -D -t ${seahubDir}/media/avatars/ ${pkgs.seahub}/media/avatars/default.png
+                install -D -t ${seahubDir}/media/avatars/groups ${pkgs.seahub}/media/avatars/groups/default.png
+                # init database
+                ${pkgs.seahub}/manage.py migrate
+                # create admin account
+                ${pkgs.expect}/bin/expect -c 'spawn ${pkgs.seahub}/manage.py createsuperuser --email=${cfg.adminEmail}; expect "Password: "; send "${cfg.initialAdminPassword}\r"; expect "Password (again): "; send "${cfg.initialAdminPassword}\r"; expect "Superuser created successfully."'
+                echo "${pkgs.seahub.version}-sqlite" > "${seafRoot}/seahub-setup"
+            fi
+            if [ $(cat "${seafRoot}/seahub-setup" | cut -d"-" -f1) != "${pkgs.seahub.version}" ]; then
+                # update database
+                ${pkgs.seahub}/manage.py migrate
+                echo "${pkgs.seahub.version}-sqlite" > "${seafRoot}/seahub-setup"
+            fi
           '';
         };
-        preStart = ''
-          mkdir -p ${seahubDir}/media
-          # Link all media except avatars
-          for m in `find ${pkgs.seahub}/media/ -maxdepth 1 -not -name "avatars"`; do
-            ln -sf $m ${seahubDir}/media/
-          done
-          if [ ! -e "${seafRoot}/.seahubSecret" ]; then
-              ${pkgs.seahub.python}/bin/python ${pkgs.seahub}/tools/secret_key_generator.py > ${seafRoot}/.seahubSecret
-              chmod 400 ${seafRoot}/.seahubSecret
-          fi
-          if [ ! -f "${seafRoot}/seahub-setup" ]; then
-              # avatars directory should be writable
-              install -D -t ${seahubDir}/media/avatars/ ${pkgs.seahub}/media/avatars/default.png
-              install -D -t ${seahubDir}/media/avatars/groups ${pkgs.seahub}/media/avatars/groups/default.png
-              # init database
-              ${pkgs.seahub}/manage.py migrate
-              # create admin account
-              ${pkgs.expect}/bin/expect -c 'spawn ${pkgs.seahub}/manage.py createsuperuser --email=${cfg.adminEmail}; expect "Password: "; send "${cfg.initialAdminPassword}\r"; expect "Password (again): "; send "${cfg.initialAdminPassword}\r"; expect "Superuser created successfully."'
-              echo "${pkgs.seahub.version}-sqlite" > "${seafRoot}/seahub-setup"
-          fi
-          if [ $(cat "${seafRoot}/seahub-setup" | cut -d"-" -f1) != "${pkgs.seahub.version}" ]; then
-              # update database
-              ${pkgs.seahub}/manage.py migrate
-              echo "${pkgs.seahub.version}-sqlite" > "${seafRoot}/seahub-setup"
-          fi
-        '';
       };
-    };
   };
 }
diff --git a/nixos/modules/services/networking/soju.nix b/nixos/modules/services/networking/soju.nix
index 7f0ac3e3b8e6..d69ec08ca13a 100644
--- a/nixos/modules/services/networking/soju.nix
+++ b/nixos/modules/services/networking/soju.nix
@@ -110,6 +110,7 @@ in
     systemd.services.soju = {
       description = "soju IRC bouncer";
       wantedBy = [ "multi-user.target" ];
+      wants = [ "network-online.target" ];
       after = [ "network-online.target" ];
       serviceConfig = {
         DynamicUser = true;
diff --git a/nixos/modules/services/networking/strongswan-swanctl/module.nix b/nixos/modules/services/networking/strongswan-swanctl/module.nix
index c8832ed4defb..c1f0aeb64e96 100644
--- a/nixos/modules/services/networking/strongswan-swanctl/module.nix
+++ b/nixos/modules/services/networking/strongswan-swanctl/module.nix
@@ -5,6 +5,9 @@ with (import ./param-lib.nix lib);
 
 let
   cfg = config.services.strongswan-swanctl;
+  configFile = pkgs.writeText "swanctl.conf"
+      ( (paramsToConf cfg.swanctl swanctlParams)
+      + (concatMapStrings (i: "\ninclude ${i}") cfg.includes));
   swanctlParams = import ./swanctl-params.nix lib;
 in  {
   options.services.strongswan-swanctl = {
@@ -21,6 +24,13 @@ in  {
     };
 
     swanctl = paramsToOptions swanctlParams;
+    includes = mkOption {
+      type = types.listOf types.path;
+      default = [];
+      description = ''
+        Extra configuration files to include in the swanctl configuration. This can be used to provide secret values from outside the nix store.
+      '';
+    };
   };
 
   config = mkIf cfg.enable {
@@ -31,8 +41,7 @@ in  {
       }
     ];
 
-    environment.etc."swanctl/swanctl.conf".text =
-      paramsToConf cfg.swanctl swanctlParams;
+    environment.etc."swanctl/swanctl.conf".source = configFile;
 
     # The swanctl command complains when the following directories don't exist:
     # See: https://wiki.strongswan.org/projects/strongswan/wiki/Swanctldirectory
@@ -55,6 +64,7 @@ in  {
     systemd.services.strongswan-swanctl = {
       description = "strongSwan IPsec IKEv1/IKEv2 daemon using swanctl";
       wantedBy = [ "multi-user.target" ];
+      wants    = [ "network-online.target" ];
       after    = [ "network-online.target" ];
       path     = with pkgs; [ kmod iproute2 iptables util-linux ];
       environment = {
diff --git a/nixos/modules/services/networking/strongswan.nix b/nixos/modules/services/networking/strongswan.nix
index e58526814d1a..dcf04d2a1917 100644
--- a/nixos/modules/services/networking/strongswan.nix
+++ b/nixos/modules/services/networking/strongswan.nix
@@ -153,6 +153,7 @@ in
       description = "strongSwan IPSec Service";
       wantedBy = [ "multi-user.target" ];
       path = with pkgs; [ kmod iproute2 iptables util-linux ]; # XXX Linux
+      wants = [ "network-online.target" ];
       after = [ "network-online.target" ];
       environment = {
         STRONGSWAN_CONF = strongswanConf { inherit setup connections ca secretsFile managePlugins enabledPlugins; };
diff --git a/nixos/modules/services/networking/syncplay.nix b/nixos/modules/services/networking/syncplay.nix
index 0a66d93bf153..151259b6d4ad 100644
--- a/nixos/modules/services/networking/syncplay.nix
+++ b/nixos/modules/services/networking/syncplay.nix
@@ -107,6 +107,7 @@ in
     systemd.services.syncplay = {
       description = "Syncplay Service";
       wantedBy = [ "multi-user.target" ];
+      wants = [ "network-online.target" ];
       after = [ "network-online.target" ];
 
       serviceConfig = {
diff --git a/nixos/modules/services/networking/tailscale.nix b/nixos/modules/services/networking/tailscale.nix
index 1070e4e25296..f11fe57d6ce5 100644
--- a/nixos/modules/services/networking/tailscale.nix
+++ b/nixos/modules/services/networking/tailscale.nix
@@ -74,11 +74,10 @@ in {
     systemd.services.tailscaled = {
       wantedBy = [ "multi-user.target" ];
       path = [
-        config.networking.resolvconf.package # for configuring DNS in some configs
         pkgs.procps     # for collecting running services (opt-in feature)
         pkgs.getent     # for `getent` to look up user shells
         pkgs.kmod       # required to pass tailscale's v6nat check
-      ];
+      ] ++ lib.optional config.networking.resolvconf.enable config.networking.resolvconf.package;
       serviceConfig.Environment = [
         "PORT=${toString cfg.port}"
         ''"FLAGS=--tun ${lib.escapeShellArg cfg.interfaceName}"''
diff --git a/nixos/modules/services/networking/wasabibackend.nix b/nixos/modules/services/networking/wasabibackend.nix
index 938145b35ee8..e3a48afd2a2c 100644
--- a/nixos/modules/services/networking/wasabibackend.nix
+++ b/nixos/modules/services/networking/wasabibackend.nix
@@ -119,6 +119,7 @@ in {
     systemd.services.wasabibackend = {
       description = "wasabibackend server";
       wantedBy = [ "multi-user.target" ];
+      wants = [ "network-online.target" ];
       after = [ "network-online.target" ];
       environment = {
         DOTNET_PRINT_TELEMETRY_MESSAGE = "false";
diff --git a/nixos/modules/services/networking/znc/default.nix b/nixos/modules/services/networking/znc/default.nix
index d3ba4a524197..e15233293cf2 100644
--- a/nixos/modules/services/networking/znc/default.nix
+++ b/nixos/modules/services/networking/znc/default.nix
@@ -243,6 +243,7 @@ in
     systemd.services.znc = {
       description = "ZNC Server";
       wantedBy = [ "multi-user.target" ];
+      wants = [ "network-online.target" ];
       after = [ "network-online.target" ];
       serviceConfig = {
         User = cfg.user;
diff --git a/nixos/modules/services/security/bitwarden-directory-connector-cli.nix b/nixos/modules/services/security/bitwarden-directory-connector-cli.nix
index 18c02e22fd7e..a55758322a75 100644
--- a/nixos/modules/services/security/bitwarden-directory-connector-cli.nix
+++ b/nixos/modules/services/security/bitwarden-directory-connector-cli.nix
@@ -277,42 +277,42 @@ in {
           BITWARDENCLI_CONNECTOR_PLAINTEXT_SECRETS = "true";
         };
 
+        preStart = ''
+          set -eo pipefail
+
+          # create the config file
+          ${lib.getExe cfg.package} data-file
+          touch /tmp/data.json.tmp
+          chmod 600 /tmp/data.json{,.tmp}
+
+          ${lib.getExe cfg.package} config server ${cfg.domain}
+
+          # now login to set credentials
+          export BW_CLIENTID="$(< ${escapeShellArg cfg.secrets.bitwarden.client_path_id})"
+          export BW_CLIENTSECRET="$(< ${escapeShellArg cfg.secrets.bitwarden.client_path_secret})"
+          ${lib.getExe cfg.package} login
+
+          jq '.authenticatedAccounts[0] as $account
+            | .[$account].directoryConfigurations.ldap |= $ldap_data
+            | .[$account].directorySettings.organizationId |= $orgID
+            | .[$account].directorySettings.sync |= $sync_data' \
+            --argjson ldap_data ${escapeShellArg cfg.ldap.finalJSON} \
+            --arg orgID "''${BW_CLIENTID//organization.}" \
+            --argjson sync_data ${escapeShellArg cfg.sync.finalJSON} \
+            /tmp/data.json \
+            > /tmp/data.json.tmp
+
+          mv -f /tmp/data.json.tmp /tmp/data.json
+
+          # final config
+          ${lib.getExe cfg.package} config directory 0
+          ${lib.getExe cfg.package} config ldap.password --secretfile ${cfg.secrets.ldap}
+        '';
+
         serviceConfig = {
           Type = "oneshot";
           User = "${cfg.user}";
           PrivateTmp = true;
-          preStart = ''
-            set -eo pipefail
-
-            # create the config file
-            ${lib.getExe cfg.package} data-file
-            touch /tmp/data.json.tmp
-            chmod 600 /tmp/data.json{,.tmp}
-
-            ${lib.getExe cfg.package} config server ${cfg.domain}
-
-            # now login to set credentials
-            export BW_CLIENTID="$(< ${escapeShellArg cfg.secrets.bitwarden.client_path_id})"
-            export BW_CLIENTSECRET="$(< ${escapeShellArg cfg.secrets.bitwarden.client_path_secret})"
-            ${lib.getExe cfg.package} login
-
-            jq '.authenticatedAccounts[0] as $account
-              | .[$account].directoryConfigurations.ldap |= $ldap_data
-              | .[$account].directorySettings.organizationId |= $orgID
-              | .[$account].directorySettings.sync |= $sync_data' \
-              --argjson ldap_data ${escapeShellArg cfg.ldap.finalJSON} \
-              --arg orgID "''${BW_CLIENTID//organization.}" \
-              --argjson sync_data ${escapeShellArg cfg.sync.finalJSON} \
-              /tmp/data.json \
-              > /tmp/data.json.tmp
-
-            mv -f /tmp/data.json.tmp /tmp/data.json
-
-            # final config
-            ${lib.getExe cfg.package} config directory 0
-            ${lib.getExe cfg.package} config ldap.password --secretfile ${cfg.secrets.ldap}
-          '';
-
           ExecStart = "${lib.getExe cfg.package} sync";
         };
       };
diff --git a/nixos/modules/services/security/certmgr.nix b/nixos/modules/services/security/certmgr.nix
index db80e943973d..02cb7afe87ba 100644
--- a/nixos/modules/services/security/certmgr.nix
+++ b/nixos/modules/services/security/certmgr.nix
@@ -182,6 +182,7 @@ in
     systemd.services.certmgr = {
       description = "certmgr";
       path = mkIf (cfg.svcManager == "command") [ pkgs.bash ];
+      wants = [ "network-online.target" ];
       after = [ "network-online.target" ];
       wantedBy = [ "multi-user.target" ];
       inherit preStart;
diff --git a/nixos/modules/services/security/clamav.nix b/nixos/modules/services/security/clamav.nix
index d3164373ec01..4480c0cae60c 100644
--- a/nixos/modules/services/security/clamav.nix
+++ b/nixos/modules/services/security/clamav.nix
@@ -196,6 +196,7 @@ in
     systemd.services.clamav-freshclam = mkIf cfg.updater.enable {
       description = "ClamAV virus database updater (freshclam)";
       restartTriggers = [ freshclamConfigFile ];
+      requires = [ "network-online.target" ];
       after = [ "network-online.target" ];
 
       serviceConfig = {
@@ -243,6 +244,7 @@ in
     systemd.services.clamav-fangfrisch = mkIf cfg.fangfrisch.enable {
       description = "ClamAV virus database updater (fangfrisch)";
       restartTriggers = [ fangfrischConfigFile ];
+      requires = [ "network-online.target" ];
       after = [ "network-online.target" "clamav-fangfrisch-init.service" ];
 
       serviceConfig = {
diff --git a/nixos/modules/services/security/intune.nix b/nixos/modules/services/security/intune.nix
new file mode 100644
index 000000000000..93cecaca5f43
--- /dev/null
+++ b/nixos/modules/services/security/intune.nix
@@ -0,0 +1,32 @@
+{ config
+, pkgs
+, lib
+, ...
+}:
+let
+  cfg = config.services.intune;
+in
+{
+  options.services.intune = {
+    enable = lib.mkEnableOption (lib.mdDoc "Microsoft Intune");
+  };
+
+
+  config = lib.mkIf cfg.enable {
+    users.users.microsoft-identity-broker = {
+      group = "microsoft-identity-broker";
+      isSystemUser = true;
+    };
+
+    users.groups.microsoft-identity-broker = { };
+    environment.systemPackages = [ pkgs.microsoft-identity-broker pkgs.intune-portal ];
+    systemd.packages = [ pkgs.microsoft-identity-broker pkgs.intune-portal ];
+
+    systemd.tmpfiles.packages = [ pkgs.intune-portal ];
+    services.dbus.packages = [ pkgs.microsoft-identity-broker ];
+  };
+
+  meta = {
+    maintainers = with lib.maintainers; [ rhysmdnz ];
+  };
+}
diff --git a/nixos/modules/services/security/oauth2_proxy.nix b/nixos/modules/services/security/oauth2_proxy.nix
index 78916c907279..d1dc37d549d2 100644
--- a/nixos/modules/services/security/oauth2_proxy.nix
+++ b/nixos/modules/services/security/oauth2_proxy.nix
@@ -572,6 +572,7 @@ in
       description = "OAuth2 Proxy";
       path = [ cfg.package ];
       wantedBy = [ "multi-user.target" ];
+      wants = [ "network-online.target" ];
       after = [ "network-online.target" ];
 
       serviceConfig = {
diff --git a/nixos/modules/services/system/cachix-agent/default.nix b/nixos/modules/services/system/cachix-agent/default.nix
index 196d3291d555..f8020fe970f1 100644
--- a/nixos/modules/services/system/cachix-agent/default.nix
+++ b/nixos/modules/services/system/cachix-agent/default.nix
@@ -49,6 +49,7 @@ in {
   config = mkIf cfg.enable {
     systemd.services.cachix-agent = {
       description = "Cachix Deploy Agent";
+      wants = [ "network-online.target" ];
       after = ["network-online.target"];
       path = [ config.nix.package ];
       wantedBy = [ "multi-user.target" ];
diff --git a/nixos/modules/services/system/cachix-watch-store.nix b/nixos/modules/services/system/cachix-watch-store.nix
index 8aa5f0358fa9..d48af29465aa 100644
--- a/nixos/modules/services/system/cachix-watch-store.nix
+++ b/nixos/modules/services/system/cachix-watch-store.nix
@@ -61,6 +61,7 @@ in
   config = mkIf cfg.enable {
     systemd.services.cachix-watch-store-agent = {
       description = "Cachix watch store Agent";
+      wants = [ "network-online.target" ];
       after = [ "network-online.target" ];
       path = [ config.nix.package ];
       wantedBy = [ "multi-user.target" ];
diff --git a/nixos/modules/services/system/cloud-init.nix b/nixos/modules/services/system/cloud-init.nix
index d782bb1a3666..00ae77be4271 100644
--- a/nixos/modules/services/system/cloud-init.nix
+++ b/nixos/modules/services/system/cloud-init.nix
@@ -164,7 +164,10 @@ in
     systemd.services.cloud-init-local = {
       description = "Initial cloud-init job (pre-networking)";
       wantedBy = [ "multi-user.target" ];
-      before = [ "systemd-networkd.service" ];
+      # In certain environments (AWS for example), cloud-init-local will
+      # first configure an IP through DHCP, and later delete it.
+      # This can cause race conditions with anything else trying to set IP through DHCP.
+      before = [ "systemd-networkd.service" "dhcpcd.service" ];
       path = path;
       serviceConfig = {
         Type = "oneshot";
diff --git a/nixos/modules/services/system/dbus.nix b/nixos/modules/services/system/dbus.nix
index b47ebc92f93a..e8f8b48d0337 100644
--- a/nixos/modules/services/system/dbus.nix
+++ b/nixos/modules/services/system/dbus.nix
@@ -95,6 +95,7 @@ in
         uid = config.ids.uids.messagebus;
         description = "D-Bus system message bus daemon user";
         home = homeDir;
+        homeMode = "0755";
         group = "messagebus";
       };
 
diff --git a/nixos/modules/services/system/systemd-lock-handler.md b/nixos/modules/services/system/systemd-lock-handler.md
new file mode 100644
index 000000000000..ac9ee00ae4bc
--- /dev/null
+++ b/nixos/modules/services/system/systemd-lock-handler.md
@@ -0,0 +1,47 @@
+# systemd-lock-handler {#module-services-systemd-lock-handler}
+
+The `systemd-lock-handler` module provides a service that bridges
+D-Bus events from `logind` to user-level systemd targets:
+
+  - `lock.target` started by `loginctl lock-session`,
+  - `unlock.target` started by `loginctl unlock-session` and
+  - `sleep.target` started by `systemctl suspend`.
+
+You can create a user service that starts with any of these targets.
+
+For example, to create a service for `swaylock`:
+
+```nix
+{
+  services.systemd-lock-handler.enable = true;
+
+  systemd.user.services.swaylock = {
+    description = "Screen locker for Wayland";
+    documentation = ["man:swaylock(1)"];
+
+    # If swaylock exits cleanly, unlock the session:
+    onSuccess = ["unlock.target"];
+
+    # When lock.target is stopped, stops this too:
+    partOf = ["lock.target"];
+
+    # Delay lock.target until this service is ready:
+    before = ["lock.target"];
+    wantedBy = ["lock.target"];
+
+    serviceConfig = {
+      # systemd will consider this service started when swaylock forks...
+      Type = "forking";
+
+      # ... and swaylock will fork only after it has locked the screen.
+      ExecStart = "${lib.getExe pkgs.swaylock} -f";
+
+      # If swaylock crashes, always restart it immediately:
+      Restart = "on-failure";
+      RestartSec = 0;
+    };
+  };
+}
+```
+
+See [upstream documentation](https://sr.ht/~whynothugo/systemd-lock-handler) for more information.
diff --git a/nixos/modules/services/system/systemd-lock-handler.nix b/nixos/modules/services/system/systemd-lock-handler.nix
new file mode 100644
index 000000000000..1ecb13b75bb3
--- /dev/null
+++ b/nixos/modules/services/system/systemd-lock-handler.nix
@@ -0,0 +1,27 @@
+{ config
+, pkgs
+, lib
+, ...
+}:
+let
+  cfg = config.services.systemd-lock-handler;
+  inherit (lib) mkIf mkEnableOption mkPackageOption;
+in
+{
+  options.services.systemd-lock-handler = {
+    enable = mkEnableOption (lib.mdDoc "systemd-lock-handler");
+    package = mkPackageOption pkgs "systemd-lock-handler" { };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.packages = [ cfg.package ];
+
+    # https://github.com/NixOS/nixpkgs/issues/81138
+    systemd.user.services.systemd-lock-handler.wantedBy = [ "default.target" ];
+  };
+
+  meta = {
+    maintainers = with lib.maintainers; [ liff ];
+    doc = ./systemd-lock-handler.md;
+  };
+}
diff --git a/nixos/modules/services/torrent/deluge.nix b/nixos/modules/services/torrent/deluge.nix
index 4802e3e1c63a..632d8aa98aa2 100644
--- a/nixos/modules/services/torrent/deluge.nix
+++ b/nixos/modules/services/torrent/deluge.nix
@@ -191,17 +191,25 @@ in {
     # Provide a default set of `extraPackages`.
     services.deluge.extraPackages = with pkgs; [ unzip gnutar xz bzip2 ];
 
-    systemd.tmpfiles.rules = [
-      "d '${cfg.dataDir}' 0770 ${cfg.user} ${cfg.group}"
-      "d '${cfg.dataDir}/.config' 0770 ${cfg.user} ${cfg.group}"
-      "d '${cfg.dataDir}/.config/deluge' 0770 ${cfg.user} ${cfg.group}"
-    ]
-    ++ optional (cfg.config ? download_location)
-      "d '${cfg.config.download_location}' 0770 ${cfg.user} ${cfg.group}"
-    ++ optional (cfg.config ? torrentfiles_location)
-      "d '${cfg.config.torrentfiles_location}' 0770 ${cfg.user} ${cfg.group}"
-    ++ optional (cfg.config ? move_completed_path)
-      "d '${cfg.config.move_completed_path}' 0770 ${cfg.user} ${cfg.group}";
+    systemd.tmpfiles.settings."10-deluged" = let
+      defaultConfig = {
+        inherit (cfg) user group;
+        mode = "0770";
+      };
+    in {
+      "${cfg.dataDir}".d = defaultConfig;
+      "${cfg.dataDir}/.config".d = defaultConfig;
+      "${cfg.dataDir}/.config/deluge".d = defaultConfig;
+    }
+    // optionalAttrs (cfg.config ? download_location) {
+      ${cfg.config.download_location}.d = defaultConfig;
+    }
+    // optionalAttrs (cfg.config ? torrentfiles_location) {
+      ${cfg.config.torrentfiles_location}.d = defaultConfig;
+    }
+    // optionalAttrs (cfg.config ? move_completed_path) {
+      ${cfg.config.move_completed_path}.d = defaultConfig;
+    };
 
     systemd.services.deluged = {
       after = [ "network.target" ];
diff --git a/nixos/modules/services/video/epgstation/default.nix b/nixos/modules/services/video/epgstation/default.nix
index a7468e7cc2b6..1b3258c3df8e 100644
--- a/nixos/modules/services/video/epgstation/default.nix
+++ b/nixos/modules/services/video/epgstation/default.nix
@@ -309,17 +309,25 @@ in
         (lib.mkIf cfg.usePreconfiguredStreaming streamingConfig)
       ];
 
-    systemd.tmpfiles.rules = [
-      "d '/var/lib/epgstation/key' - ${username} ${groupname} - -"
-      "d '/var/lib/epgstation/streamfiles' - ${username} ${groupname} - -"
-      "d '/var/lib/epgstation/drop' - ${username} ${groupname} - -"
-      "d '/var/lib/epgstation/recorded' - ${username} ${groupname} - -"
-      "d '/var/lib/epgstation/thumbnail' - ${username} ${groupname} - -"
-      "d '/var/lib/epgstation/db/subscribers' - ${username} ${groupname} - -"
-      "d '/var/lib/epgstation/db/migrations/mysql' - ${username} ${groupname} - -"
-      "d '/var/lib/epgstation/db/migrations/postgres' - ${username} ${groupname} - -"
-      "d '/var/lib/epgstation/db/migrations/sqlite' - ${username} ${groupname} - -"
-    ];
+    systemd.tmpfiles.settings."10-epgstation" =
+      lib.listToAttrs
+        (map (dir: lib.nameValuePair dir {
+          d = {
+            user = username;
+            group = groupname;
+          };
+        })
+        [
+          "/var/lib/epgstation/key"
+          "/var/lib/epgstation/streamfiles"
+          "/var/lib/epgstation/drop"
+          "/var/lib/epgstation/recorded"
+          "/var/lib/epgstation/thumbnail"
+          "/var/lib/epgstation/db/subscribers"
+          "/var/lib/epgstation/db/migrations/mysql"
+          "/var/lib/epgstation/db/migrations/postgres"
+          "/var/lib/epgstation/db/migrations/sqlite"
+        ]);
 
     systemd.services.epgstation = {
       inherit description;
diff --git a/nixos/modules/services/video/go2rtc/default.nix b/nixos/modules/services/video/go2rtc/default.nix
index 13851fa0306f..9dddbb60baa8 100644
--- a/nixos/modules/services/video/go2rtc/default.nix
+++ b/nixos/modules/services/video/go2rtc/default.nix
@@ -94,6 +94,7 @@ in
 
   config = lib.mkIf cfg.enable {
     systemd.services.go2rtc = {
+      wants = [ "network-online.target" ];
       after = [
         "network-online.target"
       ];
diff --git a/nixos/modules/services/video/mirakurun.nix b/nixos/modules/services/video/mirakurun.nix
index 31f90650ba9a..208b34ab353a 100644
--- a/nixos/modules/services/video/mirakurun.nix
+++ b/nixos/modules/services/video/mirakurun.nix
@@ -165,9 +165,10 @@ in
         port = mkIf (cfg.port != null) cfg.port;
       };
 
-      systemd.tmpfiles.rules = [
-        "d '/etc/mirakurun' - ${username} ${groupname} - -"
-      ];
+      systemd.tmpfiles.settings."10-mirakurun"."/etc/mirakurun".d = {
+        user = username;
+        group = groupname;
+      };
 
       systemd.services.mirakurun = {
         description = mirakurun.meta.description;
diff --git a/nixos/modules/services/web-apps/akkoma.nix b/nixos/modules/services/web-apps/akkoma.nix
index 8980556ab014..4cd9e2664378 100644
--- a/nixos/modules/services/web-apps/akkoma.nix
+++ b/nixos/modules/services/web-apps/akkoma.nix
@@ -974,7 +974,7 @@ in {
       # This service depends on network-online.target and is sequenced after
       # it because it requires access to the Internet to function properly.
       bindsTo = [ "akkoma-config.service" ];
-      wants = [ "network-online.service" ];
+      wants = [ "network-online.target" ];
       wantedBy = [ "multi-user.target" ];
       after = [
         "akkoma-config.target"
diff --git a/nixos/modules/services/web-apps/alps.nix b/nixos/modules/services/web-apps/alps.nix
index 05fb676102df..81c6b8ad30b5 100644
--- a/nixos/modules/services/web-apps/alps.nix
+++ b/nixos/modules/services/web-apps/alps.nix
@@ -94,6 +94,7 @@ in {
       description = "alps is a simple and extensible webmail.";
       documentation = [ "https://git.sr.ht/~migadu/alps" ];
       wantedBy = [ "multi-user.target" ];
+      wants = [ "network-online.target" ];
       after = [ "network.target" "network-online.target" ];
 
       serviceConfig = {
diff --git a/nixos/modules/services/web-apps/bookstack.nix b/nixos/modules/services/web-apps/bookstack.nix
index d846c98577c8..4999eceb2b60 100644
--- a/nixos/modules/services/web-apps/bookstack.nix
+++ b/nixos/modules/services/web-apps/bookstack.nix
@@ -412,20 +412,25 @@ in {
       '';
     };
 
-    systemd.tmpfiles.rules = [
-      "d ${cfg.dataDir}                            0710 ${user} ${group} - -"
-      "d ${cfg.dataDir}/public                     0750 ${user} ${group} - -"
-      "d ${cfg.dataDir}/public/uploads             0750 ${user} ${group} - -"
-      "d ${cfg.dataDir}/storage                    0700 ${user} ${group} - -"
-      "d ${cfg.dataDir}/storage/app                0700 ${user} ${group} - -"
-      "d ${cfg.dataDir}/storage/fonts              0700 ${user} ${group} - -"
-      "d ${cfg.dataDir}/storage/framework          0700 ${user} ${group} - -"
-      "d ${cfg.dataDir}/storage/framework/cache    0700 ${user} ${group} - -"
-      "d ${cfg.dataDir}/storage/framework/sessions 0700 ${user} ${group} - -"
-      "d ${cfg.dataDir}/storage/framework/views    0700 ${user} ${group} - -"
-      "d ${cfg.dataDir}/storage/logs               0700 ${user} ${group} - -"
-      "d ${cfg.dataDir}/storage/uploads            0700 ${user} ${group} - -"
-    ];
+    systemd.tmpfiles.settings."10-bookstack" = let
+      defaultConfig = {
+        inherit user group;
+        mode = "0700";
+      };
+    in {
+      "${cfg.dataDir}".d = defaultConfig // { mode = "0710"; };
+      "${cfg.dataDir}/public".d = defaultConfig // { mode = "0750"; };
+      "${cfg.dataDir}/public/uploads".d = defaultConfig // { mode = "0750"; };
+      "${cfg.dataDir}/storage".d = defaultConfig;
+      "${cfg.dataDir}/storage/app".d = defaultConfig;
+      "${cfg.dataDir}/storage/fonts".d = defaultConfig;
+      "${cfg.dataDir}/storage/framework".d = defaultConfig;
+      "${cfg.dataDir}/storage/framework/cache".d = defaultConfig;
+      "${cfg.dataDir}/storage/framework/sessions".d = defaultConfig;
+      "${cfg.dataDir}/storage/framework/views".d = defaultConfig;
+      "${cfg.dataDir}/storage/logs".d = defaultConfig;
+      "${cfg.dataDir}/storage/uploads".d = defaultConfig;
+    };
 
     users = {
       users = mkIf (user == "bookstack") {
diff --git a/nixos/modules/services/web-apps/c2fmzq-server.nix b/nixos/modules/services/web-apps/c2fmzq-server.nix
index 87938fe160e1..dee131182de1 100644
--- a/nixos/modules/services/web-apps/c2fmzq-server.nix
+++ b/nixos/modules/services/web-apps/c2fmzq-server.nix
@@ -80,6 +80,7 @@ in {
       description = "c2FmZQ-server";
       documentation = [ "https://github.com/c2FmZQ/c2FmZQ/blob/main/README.md" ];
       wantedBy = [ "multi-user.target" ];
+      wants = [ "network-online.target" ];
       after = [ "network.target" "network-online.target" ];
 
       serviceConfig = {
diff --git a/nixos/modules/services/web-apps/code-server.nix b/nixos/modules/services/web-apps/code-server.nix
index 11601f6c3044..d087deb7848d 100644
--- a/nixos/modules/services/web-apps/code-server.nix
+++ b/nixos/modules/services/web-apps/code-server.nix
@@ -205,6 +205,7 @@ in {
     systemd.services.code-server = {
       description = "Code server";
       wantedBy = [ "multi-user.target" ];
+      wants = [ "network-online.target" ];
       after = [ "network-online.target" ];
       path = cfg.extraPackages;
       environment = {
diff --git a/nixos/modules/services/web-apps/freshrss.nix b/nixos/modules/services/web-apps/freshrss.nix
index c8399143c37b..edec9d547a30 100644
--- a/nixos/modules/services/web-apps/freshrss.nix
+++ b/nixos/modules/services/web-apps/freshrss.nix
@@ -228,9 +228,10 @@ in
       };
       users.groups."${cfg.user}" = { };
 
-      systemd.tmpfiles.rules = [
-        "d '${cfg.dataDir}' - ${cfg.user} ${config.users.users.${cfg.user}.group} - -"
-      ];
+      systemd.tmpfiles.settings."10-freshrss".${cfg.dataDir}.d = {
+        inherit (cfg) user;
+        group = config.users.users.${cfg.user}.group;
+      };
 
       systemd.services.freshrss-config =
         let
diff --git a/nixos/modules/services/web-apps/healthchecks.nix b/nixos/modules/services/web-apps/healthchecks.nix
index e5e425a29d54..1d439f162313 100644
--- a/nixos/modules/services/web-apps/healthchecks.nix
+++ b/nixos/modules/services/web-apps/healthchecks.nix
@@ -176,6 +176,7 @@ in
     systemd.targets.healthchecks = {
       description = "Target for all Healthchecks services";
       wantedBy = [ "multi-user.target" ];
+      wants = [ "network-online.target" ];
       after = [ "network.target" "network-online.target" ];
     };
 
diff --git a/nixos/modules/services/web-apps/lemmy.nix b/nixos/modules/services/web-apps/lemmy.nix
index bde9051a7033..968dcac93fab 100644
--- a/nixos/modules/services/web-apps/lemmy.nix
+++ b/nixos/modules/services/web-apps/lemmy.nix
@@ -204,7 +204,6 @@ in
           };
           "/" = {
             # mixed frontend and backend requests, based on the request headers
-            proxyPass = "$proxpass";
             recommendedProxySettings = true;
             extraConfig = ''
               set $proxpass "${ui}";
@@ -220,6 +219,8 @@ in
 
               # Cuts off the trailing slash on URLs to make them valid
               rewrite ^(.+)/+$ $1 permanent;
+
+              proxy_pass $proxpass;
             '';
           };
         };
diff --git a/nixos/modules/services/web-apps/mastodon.nix b/nixos/modules/services/web-apps/mastodon.nix
index 538e728fcc72..8d09d1b97828 100644
--- a/nixos/modules/services/web-apps/mastodon.nix
+++ b/nixos/modules/services/web-apps/mastodon.nix
@@ -133,6 +133,7 @@ let
         RestartSec = 20;
         EnvironmentFile = [ "/var/lib/mastodon/.secrets_env" ] ++ cfg.extraEnvFiles;
         WorkingDirectory = cfg.package;
+        LimitNOFILE = "1024000";
         # System Call Filtering
         SystemCallFilter = [ ("~" + lib.concatStringsSep " " systemCallsList) "@chown" "pipe" "pipe2" ];
       } // cfgService;
diff --git a/nixos/modules/services/web-apps/mattermost.nix b/nixos/modules/services/web-apps/mattermost.nix
index 503559432374..3d03c96d1c19 100644
--- a/nixos/modules/services/web-apps/mattermost.nix
+++ b/nixos/modules/services/web-apps/mattermost.nix
@@ -277,9 +277,7 @@ in
 
       # The systemd service will fail to execute the preStart hook
       # if the WorkingDirectory does not exist
-      systemd.tmpfiles.rules = [
-        ''d "${cfg.statePath}" -''
-      ];
+      systemd.tmpfiles.settings."10-mattermost".${cfg.statePath}.d = { };
 
       systemd.services.mattermost = {
         description = "Mattermost chat service";
diff --git a/nixos/modules/services/web-apps/moodle.nix b/nixos/modules/services/web-apps/moodle.nix
index ce6a80054725..496a0e32436f 100644
--- a/nixos/modules/services/web-apps/moodle.nix
+++ b/nixos/modules/services/web-apps/moodle.nix
@@ -255,9 +255,10 @@ in
       } ];
     };
 
-    systemd.tmpfiles.rules = [
-      "d '${stateDir}' 0750 ${user} ${group} - -"
-    ];
+    systemd.tmpfiles.settings."10-moodle".${stateDir}.d = {
+      inherit user group;
+      mode = "0750";
+    };
 
     systemd.services.moodle-init = {
       wantedBy = [ "multi-user.target" ];
diff --git a/nixos/modules/services/web-apps/netbox.nix b/nixos/modules/services/web-apps/netbox.nix
index 88d40b3abc52..d034f3234a2b 100644
--- a/nixos/modules/services/web-apps/netbox.nix
+++ b/nixos/modules/services/web-apps/netbox.nix
@@ -75,13 +75,17 @@ in {
     package = lib.mkOption {
       type = lib.types.package;
       default =
-        if lib.versionAtLeast config.system.stateVersion "23.11"
+        if lib.versionAtLeast config.system.stateVersion "24.05"
+        then pkgs.netbox_3_7
+        else if lib.versionAtLeast config.system.stateVersion "23.11"
         then pkgs.netbox_3_6
         else if lib.versionAtLeast config.system.stateVersion "23.05"
         then pkgs.netbox_3_5
         else pkgs.netbox_3_3;
       defaultText = lib.literalExpression ''
-        if lib.versionAtLeast config.system.stateVersion "23.11"
+        if lib.versionAtLeast config.system.stateVersion "24.05"
+        then pkgs.netbox_3_7
+        else if lib.versionAtLeast config.system.stateVersion "23.11"
         then pkgs.netbox_3_6
         else if lib.versionAtLeast config.system.stateVersion "23.05"
         then pkgs.netbox_3_5
@@ -267,6 +271,7 @@ in {
     systemd.targets.netbox = {
       description = "Target for all NetBox services";
       wantedBy = [ "multi-user.target" ];
+      wants = [ "network-online.target" ];
       after = [ "network-online.target" "redis-netbox.service" ];
     };
 
@@ -305,12 +310,13 @@ in {
           ${pkg}/bin/netbox trace_paths --no-input
           ${pkg}/bin/netbox collectstatic --no-input
           ${pkg}/bin/netbox remove_stale_contenttypes --no-input
-          # TODO: remove the condition when we remove netbox_3_3
-          ${lib.optionalString
-            (lib.versionAtLeast cfg.package.version "3.5.0")
-            "${pkg}/bin/netbox reindex --lazy"}
+          ${pkg}/bin/netbox reindex --lazy
           ${pkg}/bin/netbox clearsessions
-          ${pkg}/bin/netbox clearcache
+          ${lib.optionalString
+            # The clearcache command was removed in 3.7.0:
+            # https://github.com/netbox-community/netbox/issues/14458
+            (lib.versionOlder cfg.package.version "3.7.0")
+            "${pkg}/bin/netbox clearcache"}
 
           echo "${cfg.package.version}" > "$versionFile"
         '';
diff --git a/nixos/modules/services/web-apps/nextcloud-notify_push.nix b/nixos/modules/services/web-apps/nextcloud-notify_push.nix
index 759daa0c50dc..7b90e0bbaa9b 100644
--- a/nixos/modules/services/web-apps/nextcloud-notify_push.nix
+++ b/nixos/modules/services/web-apps/nextcloud-notify_push.nix
@@ -116,7 +116,7 @@ in
       }
 
       (lib.mkIf cfg.bendDomainToLocalhost {
-        nextcloud.extraOptions.trusted_proxies = [ "127.0.0.1" "::1" ];
+        nextcloud.settings.trusted_proxies = [ "127.0.0.1" "::1" ];
       })
     ];
   };
diff --git a/nixos/modules/services/web-apps/nextcloud.md b/nixos/modules/services/web-apps/nextcloud.md
index ce8f96a6a389..5db83d7e4463 100644
--- a/nixos/modules/services/web-apps/nextcloud.md
+++ b/nixos/modules/services/web-apps/nextcloud.md
@@ -51,7 +51,7 @@ to ensure that changes can be applied by changing the module's options.
 In case the application serves multiple domains (those are checked with
 [`$_SERVER['HTTP_HOST']`](https://www.php.net/manual/en/reserved.variables.server.php))
 it's needed to add them to
-[`services.nextcloud.extraOptions.trusted_domains`](#opt-services.nextcloud.extraOptions.trusted_domains).
+[`services.nextcloud.settings.trusted_domains`](#opt-services.nextcloud.settings.trusted_domains).
 
 Auto updates for Nextcloud apps can be enabled using
 [`services.nextcloud.autoUpdateApps`](#opt-services.nextcloud.autoUpdateApps.enable).
diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix
index 38c51251aac1..8669f84b1cbb 100644
--- a/nixos/modules/services/web-apps/nextcloud.nix
+++ b/nixos/modules/services/web-apps/nextcloud.nix
@@ -99,11 +99,101 @@ let
   mysqlLocal = cfg.database.createLocally && cfg.config.dbtype == "mysql";
   pgsqlLocal = cfg.database.createLocally && cfg.config.dbtype == "pgsql";
 
+  nextcloudGreaterOrEqualThan = versionAtLeast cfg.package.version;
+  nextcloudOlderThan = versionOlder cfg.package.version;
+
   # https://github.com/nextcloud/documentation/pull/11179
-  ocmProviderIsNotAStaticDirAnymore = versionAtLeast cfg.package.version "27.1.2"
-    || (versionOlder cfg.package.version "27.0.0"
-      && versionAtLeast cfg.package.version "26.0.8");
+  ocmProviderIsNotAStaticDirAnymore = nextcloudGreaterOrEqualThan "27.1.2"
+    || (nextcloudOlderThan "27.0.0" && nextcloudGreaterOrEqualThan "26.0.8");
+
+  overrideConfig = let
+    c = cfg.config;
+    requiresReadSecretFunction = c.dbpassFile != null || c.objectstore.s3.enable;
+    objectstoreConfig = let s3 = c.objectstore.s3; in optionalString s3.enable ''
+      'objectstore' => [
+        'class' => '\\OC\\Files\\ObjectStore\\S3',
+        'arguments' => [
+          'bucket' => '${s3.bucket}',
+          'autocreate' => ${boolToString s3.autocreate},
+          'key' => '${s3.key}',
+          'secret' => nix_read_secret('${s3.secretFile}'),
+          ${optionalString (s3.hostname != null) "'hostname' => '${s3.hostname}',"}
+          ${optionalString (s3.port != null) "'port' => ${toString s3.port},"}
+          'use_ssl' => ${boolToString s3.useSsl},
+          ${optionalString (s3.region != null) "'region' => '${s3.region}',"}
+          'use_path_style' => ${boolToString s3.usePathStyle},
+          ${optionalString (s3.sseCKeyFile != null) "'sse_c_key' => nix_read_secret('${s3.sseCKeyFile}'),"}
+        ],
+      ]
+    '';
+    showAppStoreSetting = cfg.appstoreEnable != null || cfg.extraApps != {};
+    renderedAppStoreSetting =
+      let
+        x = cfg.appstoreEnable;
+      in
+        if x == null then "false"
+        else boolToString x;
+    mkAppStoreConfig = name: { enabled, writable, ... }: optionalString enabled ''
+      [ 'path' => '${webroot}/${name}', 'url' => '/${name}', 'writable' => ${boolToString writable} ],
+    '';
+  in pkgs.writeText "nextcloud-config.php" ''
+    <?php
+    ${optionalString requiresReadSecretFunction ''
+      function nix_read_secret($file) {
+        if (!file_exists($file)) {
+          throw new \RuntimeException(sprintf(
+            "Cannot start Nextcloud, secret file %s set by NixOS doesn't seem to "
+            . "exist! Please make sure that the file exists and has appropriate "
+            . "permissions for user & group 'nextcloud'!",
+            $file
+          ));
+        }
+        return trim(file_get_contents($file));
+      }''}
+    function nix_decode_json_file($file, $error) {
+      if (!file_exists($file)) {
+        throw new \RuntimeException(sprintf($error, $file));
+      }
+      $decoded = json_decode(file_get_contents($file), true);
+
+      if (json_last_error() !== JSON_ERROR_NONE) {
+        throw new \RuntimeException(sprintf("Cannot decode %s, because: %s", $file, json_last_error_msg()));
+      }
 
+      return $decoded;
+    }
+    $CONFIG = [
+      'apps_paths' => [
+        ${concatStrings (mapAttrsToList mkAppStoreConfig appStores)}
+      ],
+      ${optionalString (showAppStoreSetting) "'appstoreenabled' => ${renderedAppStoreSetting},"}
+      ${optionalString cfg.caching.apcu "'memcache.local' => '\\OC\\Memcache\\APCu',"}
+      ${optionalString (c.dbname != null) "'dbname' => '${c.dbname}',"}
+      ${optionalString (c.dbhost != null) "'dbhost' => '${c.dbhost}',"}
+      ${optionalString (c.dbuser != null) "'dbuser' => '${c.dbuser}',"}
+      ${optionalString (c.dbtableprefix != null) "'dbtableprefix' => '${toString c.dbtableprefix}',"}
+      ${optionalString (c.dbpassFile != null) ''
+          'dbpassword' => nix_read_secret(
+            "${c.dbpassFile}"
+          ),
+        ''
+      }
+      'dbtype' => '${c.dbtype}',
+      ${objectstoreConfig}
+    ];
+
+    $CONFIG = array_replace_recursive($CONFIG, nix_decode_json_file(
+      "${jsonFormat.generate "nextcloud-settings.json" cfg.settings}",
+      "impossible: this should never happen (decoding generated settings file %s failed)"
+    ));
+
+    ${optionalString (cfg.secretFile != null) ''
+      $CONFIG = array_replace_recursive($CONFIG, nix_decode_json_file(
+        "${cfg.secretFile}",
+        "Cannot start Nextcloud, secrets file %s set by NixOS doesn't exist!"
+      ));
+    ''}
+  '';
 in {
 
   imports = [
@@ -115,21 +205,22 @@ in {
       Add port to services.nextcloud.config.dbhost instead.
     '')
     (mkRenamedOptionModule
-      [ "services" "nextcloud" "logLevel" ] [ "services" "nextcloud" "extraOptions" "loglevel" ])
+      [ "services" "nextcloud" "logLevel" ] [ "services" "nextcloud" "settings" "loglevel" ])
     (mkRenamedOptionModule
-      [ "services" "nextcloud" "logType" ] [ "services" "nextcloud" "extraOptions" "log_type" ])
+      [ "services" "nextcloud" "logType" ] [ "services" "nextcloud" "settings" "log_type" ])
     (mkRenamedOptionModule
-      [ "services" "nextcloud" "config" "defaultPhoneRegion" ] [ "services" "nextcloud" "extraOptions" "default_phone_region" ])
+      [ "services" "nextcloud" "config" "defaultPhoneRegion" ] [ "services" "nextcloud" "settings" "default_phone_region" ])
     (mkRenamedOptionModule
-      [ "services" "nextcloud" "config" "overwriteProtocol" ] [ "services" "nextcloud" "extraOptions" "overwriteprotocol" ])
+      [ "services" "nextcloud" "config" "overwriteProtocol" ] [ "services" "nextcloud" "settings" "overwriteprotocol" ])
     (mkRenamedOptionModule
-      [ "services" "nextcloud" "skeletonDirectory" ] [ "services" "nextcloud" "extraOptions" "skeletondirectory" ])
+      [ "services" "nextcloud" "skeletonDirectory" ] [ "services" "nextcloud" "settings" "skeletondirectory" ])
     (mkRenamedOptionModule
-      [ "services" "nextcloud" "globalProfiles" ] [ "services" "nextcloud" "extraOptions" "profile.enabled" ])
+      [ "services" "nextcloud" "globalProfiles" ] [ "services" "nextcloud" "settings" "profile.enabled" ])
     (mkRenamedOptionModule
-      [ "services" "nextcloud" "config" "extraTrustedDomains" ] [ "services" "nextcloud" "extraOptions" "trusted_domains" ])
+      [ "services" "nextcloud" "config" "extraTrustedDomains" ] [ "services" "nextcloud" "settings" "trusted_domains" ])
     (mkRenamedOptionModule
-      [ "services" "nextcloud" "config" "trustedProxies" ] [ "services" "nextcloud" "extraOptions" "trusted_proxies" ])
+      [ "services" "nextcloud" "config" "trustedProxies" ] [ "services" "nextcloud" "settings" "trusted_proxies" ])
+    (mkRenamedOptionModule ["services" "nextcloud" "extraOptions" ] [ "services" "nextcloud" "settings" ])
   ];
 
   options.services.nextcloud = {
@@ -558,7 +649,7 @@ in {
       '';
     };
 
-    extraOptions = mkOption {
+    settings = mkOption {
       type = types.submodule {
         freeformType = jsonFormat.type;
         options = {
@@ -680,7 +771,7 @@ in {
       default = null;
       description = lib.mdDoc ''
         Secret options which will be appended to Nextcloud's config.php file (written as JSON, in the same
-        form as the [](#opt-services.nextcloud.extraOptions) option), for example
+        form as the [](#opt-services.nextcloud.settings) option), for example
         `{"redis":{"password":"secret"}}`.
       '';
     };
@@ -787,107 +878,23 @@ in {
         timerConfig.Unit = "nextcloud-cron.service";
       };
 
-      systemd.tmpfiles.rules = ["d ${cfg.home} 0750 nextcloud nextcloud"];
+      systemd.tmpfiles.rules = map (dir: "d ${dir} 0750 nextcloud nextcloud - -") [
+        "${cfg.home}"
+        "${datadir}/config"
+        "${datadir}/data"
+        "${cfg.home}/store-apps"
+      ] ++ [
+        "L+ ${datadir}/config/override.config.php - - - - ${overrideConfig}"
+      ];
 
       systemd.services = {
         # When upgrading the Nextcloud package, Nextcloud can report errors such as
         # "The files of the app [all apps in /var/lib/nextcloud/apps] were not replaced correctly"
         # Restarting phpfpm on Nextcloud package update fixes these issues (but this is a workaround).
-        phpfpm-nextcloud.restartTriggers = [ webroot ];
+        phpfpm-nextcloud.restartTriggers = [ webroot overrideConfig ];
 
         nextcloud-setup = let
           c = cfg.config;
-          requiresReadSecretFunction = c.dbpassFile != null || c.objectstore.s3.enable;
-          objectstoreConfig = let s3 = c.objectstore.s3; in optionalString s3.enable ''
-            'objectstore' => [
-              'class' => '\\OC\\Files\\ObjectStore\\S3',
-              'arguments' => [
-                'bucket' => '${s3.bucket}',
-                'autocreate' => ${boolToString s3.autocreate},
-                'key' => '${s3.key}',
-                'secret' => nix_read_secret('${s3.secretFile}'),
-                ${optionalString (s3.hostname != null) "'hostname' => '${s3.hostname}',"}
-                ${optionalString (s3.port != null) "'port' => ${toString s3.port},"}
-                'use_ssl' => ${boolToString s3.useSsl},
-                ${optionalString (s3.region != null) "'region' => '${s3.region}',"}
-                'use_path_style' => ${boolToString s3.usePathStyle},
-                ${optionalString (s3.sseCKeyFile != null) "'sse_c_key' => nix_read_secret('${s3.sseCKeyFile}'),"}
-              ],
-            ]
-          '';
-
-          showAppStoreSetting = cfg.appstoreEnable != null || cfg.extraApps != {};
-          renderedAppStoreSetting =
-            let
-              x = cfg.appstoreEnable;
-            in
-              if x == null then "false"
-              else boolToString x;
-
-          nextcloudGreaterOrEqualThan = req: versionAtLeast cfg.package.version req;
-
-          mkAppStoreConfig = name: { enabled, writable, ... }: optionalString enabled ''
-            [ 'path' => '${webroot}/${name}', 'url' => '/${name}', 'writable' => ${boolToString writable} ],
-          '';
-
-          overrideConfig = pkgs.writeText "nextcloud-config.php" ''
-            <?php
-            ${optionalString requiresReadSecretFunction ''
-              function nix_read_secret($file) {
-                if (!file_exists($file)) {
-                  throw new \RuntimeException(sprintf(
-                    "Cannot start Nextcloud, secret file %s set by NixOS doesn't seem to "
-                    . "exist! Please make sure that the file exists and has appropriate "
-                    . "permissions for user & group 'nextcloud'!",
-                    $file
-                  ));
-                }
-                return trim(file_get_contents($file));
-              }''}
-            function nix_decode_json_file($file, $error) {
-              if (!file_exists($file)) {
-                throw new \RuntimeException(sprintf($error, $file));
-              }
-              $decoded = json_decode(file_get_contents($file), true);
-
-              if (json_last_error() !== JSON_ERROR_NONE) {
-                throw new \RuntimeException(sprintf("Cannot decode %s, because: %s", $file, json_last_error_msg()));
-              }
-
-              return $decoded;
-            }
-            $CONFIG = [
-              'apps_paths' => [
-                ${concatStrings (mapAttrsToList mkAppStoreConfig appStores)}
-              ],
-              ${optionalString (showAppStoreSetting) "'appstoreenabled' => ${renderedAppStoreSetting},"}
-              ${optionalString cfg.caching.apcu "'memcache.local' => '\\OC\\Memcache\\APCu',"}
-              ${optionalString (c.dbname != null) "'dbname' => '${c.dbname}',"}
-              ${optionalString (c.dbhost != null) "'dbhost' => '${c.dbhost}',"}
-              ${optionalString (c.dbuser != null) "'dbuser' => '${c.dbuser}',"}
-              ${optionalString (c.dbtableprefix != null) "'dbtableprefix' => '${toString c.dbtableprefix}',"}
-              ${optionalString (c.dbpassFile != null) ''
-                  'dbpassword' => nix_read_secret(
-                    "${c.dbpassFile}"
-                  ),
-                ''
-              }
-              'dbtype' => '${c.dbtype}',
-              ${objectstoreConfig}
-            ];
-
-            $CONFIG = array_replace_recursive($CONFIG, nix_decode_json_file(
-              "${jsonFormat.generate "nextcloud-extraOptions.json" cfg.extraOptions}",
-              "impossible: this should never happen (decoding generated extraOptions file %s failed)"
-            ));
-
-            ${optionalString (cfg.secretFile != null) ''
-              $CONFIG = array_replace_recursive($CONFIG, nix_decode_json_file(
-                "${cfg.secretFile}",
-                "Cannot start Nextcloud, secrets file %s set by NixOS doesn't exist!"
-              ));
-            ''}
-          '';
           occInstallCmd = let
             mkExport = { arg, value }: "export ${arg}=${value}";
             dbpass = {
@@ -924,7 +931,7 @@ in {
             (i: v: ''
               ${occ}/bin/nextcloud-occ config:system:set trusted_domains \
                 ${toString i} --value="${toString v}"
-            '') ([ cfg.hostName ] ++ cfg.extraOptions.trusted_domains));
+            '') ([ cfg.hostName ] ++ cfg.settings.trusted_domains));
 
         in {
           wantedBy = [ "multi-user.target" ];
@@ -932,6 +939,7 @@ in {
           after = optional mysqlLocal "mysql.service" ++ optional pgsqlLocal "postgresql.service";
           requires = optional mysqlLocal "mysql.service" ++ optional pgsqlLocal "postgresql.service";
           path = [ occ ];
+          restartTriggers = [ overrideConfig ];
           script = ''
             ${optionalString (c.dbpassFile != null) ''
               if [ ! -r "${c.dbpassFile}" ]; then
@@ -959,18 +967,6 @@ in {
               fi
             '') [ "nix-apps" "apps" ]}
 
-            # create nextcloud directories.
-            # if the directories exist already with wrong permissions, we fix that
-            for dir in ${datadir}/config ${datadir}/data ${cfg.home}/store-apps; do
-              if [ ! -e $dir ]; then
-                install -o nextcloud -g nextcloud -d $dir
-              elif [ $(stat -c "%G" $dir) != "nextcloud" ]; then
-                chgrp -R nextcloud $dir
-              fi
-            done
-
-            ln -sf ${overrideConfig} ${datadir}/config/override.config.php
-
             # Do not install if already installed
             if [[ ! -e ${datadir}/config/config.php ]]; then
               ${occInstallCmd}
@@ -1061,7 +1057,7 @@ in {
 
       services.nextcloud = {
         caching.redis = lib.mkIf cfg.configureRedis true;
-        extraOptions = mkMerge [({
+        settings = mkMerge [({
           datadirectory = lib.mkDefault "${datadir}/data";
           trusted_domains = [ cfg.hostName ];
         }) (lib.mkIf cfg.configureRedis {
diff --git a/nixos/modules/services/web-apps/nifi.nix b/nixos/modules/services/web-apps/nifi.nix
index 5ce561077836..c0fc443f0df7 100644
--- a/nixos/modules/services/web-apps/nifi.nix
+++ b/nixos/modules/services/web-apps/nifi.nix
@@ -163,10 +163,15 @@ in {
       Please do not disable HTTPS mode in production. In this mode, access to the nifi is opened without authentication.
     '';
 
-    systemd.tmpfiles.rules = [
-      "d '/var/lib/nifi/conf' 0750 ${cfg.user} ${cfg.group}"
-      "L+ '/var/lib/nifi/lib' - - - - ${cfg.package}/lib"
-    ];
+    systemd.tmpfiles.settings."10-nifi" = {
+      "/var/lib/nifi/conf".d = {
+        inherit (cfg) user group;
+        mode = "0750";
+      };
+      "/var/lib/nifi/lib"."L+" = {
+        argument = "${cfg.package}/lib";
+      };
+    };
 
 
     systemd.services.nifi = {
diff --git a/nixos/modules/services/web-apps/openvscode-server.nix b/nixos/modules/services/web-apps/openvscode-server.nix
index 76a19dccae16..81b9d1f3b4c8 100644
--- a/nixos/modules/services/web-apps/openvscode-server.nix
+++ b/nixos/modules/services/web-apps/openvscode-server.nix
@@ -159,6 +159,7 @@ in
     systemd.services.openvscode-server = {
       description = "OpenVSCode server";
       wantedBy = [ "multi-user.target" ];
+      wants = [ "network-online.target" ];
       after = [ "network-online.target" ];
       path = cfg.extraPackages;
       environment = cfg.extraEnvironment;
diff --git a/nixos/modules/services/web-apps/peering-manager.nix b/nixos/modules/services/web-apps/peering-manager.nix
index d6f6077268d4..0382ce717473 100644
--- a/nixos/modules/services/web-apps/peering-manager.nix
+++ b/nixos/modules/services/web-apps/peering-manager.nix
@@ -196,6 +196,7 @@ in {
     systemd.targets.peering-manager = {
       description = "Target for all Peering Manager services";
       wantedBy = [ "multi-user.target" ];
+      wants = [ "network-online.target" ];
       after = [ "network-online.target" "redis-peering-manager.service" ];
     };
 
diff --git a/nixos/modules/services/web-apps/photoprism.nix b/nixos/modules/services/web-apps/photoprism.nix
index e25b03484424..1716840e84e5 100644
--- a/nixos/modules/services/web-apps/photoprism.nix
+++ b/nixos/modules/services/web-apps/photoprism.nix
@@ -18,6 +18,9 @@ let
     in
     pkgs.writeShellScript "manage" ''
       ${setupEnv}
+      eval "$(${config.systemd.package}/bin/systemctl show -pUID,MainPID photoprism.service | ${pkgs.gnused}/bin/sed "s/UID/ServiceUID/")"
+      exec ${pkgs.util-linux}/bin/nsenter \
+        -t $MainPID -m -S $ServiceUID -G $ServiceUID --wdns=${cfg.storagePath} \
       exec ${cfg.package}/bin/photoprism "$@"
     '';
 in
diff --git a/nixos/modules/services/web-apps/pretalx.nix b/nixos/modules/services/web-apps/pretalx.nix
new file mode 100644
index 000000000000..ff6218112d2f
--- /dev/null
+++ b/nixos/modules/services/web-apps/pretalx.nix
@@ -0,0 +1,415 @@
+{ config
+, lib
+, pkgs
+, utils
+, ...
+}:
+
+let
+  cfg = config.services.pretalx;
+  format = pkgs.formats.ini { };
+
+  configFile = format.generate "pretalx.cfg" cfg.settings;
+
+  extras = cfg.package.optional-dependencies.redis
+    ++ lib.optionals (cfg.settings.database.backend == "mysql") cfg.package.optional-dependencies.mysql
+    ++ lib.optionals (cfg.settings.database.backend == "postgresql") cfg.package.optional-dependencies.postgres;
+
+  pythonEnv = cfg.package.python.buildEnv.override {
+    extraLibs = [ (cfg.package.python.pkgs.toPythonModule cfg.package) ]
+      ++ (with cfg.package.python.pkgs; [ gunicorn ]
+      ++ lib.optional cfg.celery.enable celery) ++ extras;
+  };
+in
+
+{
+  meta = with lib; {
+    maintainers = teams.c3d2.members;
+  };
+
+  options.services.pretalx = {
+    enable = lib.mkEnableOption (lib.mdDoc "pretalx");
+
+    package = lib.mkPackageOptionMD pkgs "pretalx" {};
+
+    group = lib.mkOption {
+      type = lib.types.str;
+      default = "pretalx";
+      description = "Group under which pretalx should run.";
+    };
+
+    user = lib.mkOption {
+      type = lib.types.str;
+      default = "pretalx";
+      description = "User under which pretalx should run.";
+    };
+
+    gunicorn.extraArgs = lib.mkOption {
+      type = with lib.types; listOf str;
+      default = [
+        "--name=pretalx"
+      ];
+      example = [
+        "--name=pretalx"
+        "--workers=4"
+        "--max-requests=1200"
+        "--max-requests-jitter=50"
+        "--log-level=info"
+      ];
+      description = lib.mdDoc ''
+        Extra arguments to pass to gunicorn.
+        See <https://docs.pretalx.org/administrator/installation.html#step-6-starting-pretalx-as-a-service> for details.
+      '';
+      apply = lib.escapeShellArgs;
+    };
+
+    celery = {
+      enable = lib.mkOption {
+        type = lib.types.bool;
+        default = true;
+        example = false;
+        description = lib.mdDoc ''
+          Whether to set up celery as an asynchronous task runner.
+        '';
+      };
+
+      extraArgs = lib.mkOption {
+        type = with lib.types; listOf str;
+        default = [ ];
+        description = lib.mdDoc ''
+          Extra arguments to pass to celery.
+
+          See <https://docs.celeryq.dev/en/stable/reference/cli.html#celery-worker> for more info.
+        '';
+        apply = utils.escapeSystemdExecArgs;
+      };
+    };
+
+    nginx = {
+      enable = lib.mkOption {
+        type = lib.types.bool;
+        default = true;
+        example = false;
+        description = lib.mdDoc ''
+          Whether to set up an nginx virtual host.
+        '';
+      };
+
+      domain = lib.mkOption {
+        type = lib.types.str;
+        example = "talks.example.com";
+        description = lib.mdDoc ''
+          The domain name under which to set up the virtual host.
+        '';
+      };
+    };
+
+    database.createLocally = lib.mkOption {
+      type = lib.types.bool;
+      default = true;
+      example = false;
+      description = lib.mdDoc ''
+        Whether to automatically set up the database on the local DBMS instance.
+
+        Currently only supported for PostgreSQL. Not required for sqlite.
+      '';
+    };
+
+    settings = lib.mkOption {
+      type = lib.types.submodule {
+        freeformType = format.type;
+        options = {
+          database = {
+            backend = lib.mkOption {
+              type = lib.types.enum [
+                "postgresql"
+              ];
+              default = "postgresql";
+              description = lib.mdDoc ''
+                Database backend to use.
+
+                Currently only PostgreSQL gets tested, and as such we don't support any other DBMS.
+              '';
+              readOnly = true; # only postgres supported right now
+            };
+
+            host = lib.mkOption {
+              type = with lib.types; nullOr types.path;
+              default = if cfg.settings.database.backend == "postgresql" then "/run/postgresql"
+                else if cfg.settings.database.backend == "mysql" then "/run/mysqld/mysqld.sock"
+                else null;
+              defaultText = lib.literalExpression ''
+                if config.services.pretalx.settings..database.backend == "postgresql" then "/run/postgresql"
+                else if config.services.pretalx.settings.database.backend == "mysql" then "/run/mysqld/mysqld.sock"
+                else null
+              '';
+              description = lib.mdDoc ''
+                Database host or socket path.
+              '';
+            };
+
+            name = lib.mkOption {
+              type = lib.types.str;
+              default = "pretalx";
+              description = lib.mdDoc ''
+                Database name.
+              '';
+            };
+
+            user = lib.mkOption {
+              type = lib.types.str;
+              default = "pretalx";
+              description = lib.mdDoc ''
+                Database username.
+              '';
+            };
+          };
+
+          filesystem = {
+            data = lib.mkOption {
+              type = lib.types.path;
+              default = "/var/lib/pretalx";
+              description = lib.mdDoc ''
+                Base path for all other storage paths.
+              '';
+            };
+            logs = lib.mkOption {
+              type = lib.types.path;
+              default = "/var/log/pretalx";
+              description = lib.mdDoc ''
+                Path to the log directory, that pretalx logs message to.
+              '';
+            };
+            static = lib.mkOption {
+              type = lib.types.path;
+              default = "${cfg.package.static}/";
+              defaultText = lib.literalExpression "\${config.services.pretalx.package}.static}/";
+              readOnly = true;
+              description = lib.mdDoc ''
+                Path to the directory that contains static files.
+              '';
+            };
+          };
+
+          celery = {
+            backend = lib.mkOption {
+              type = with lib.types; nullOr str;
+              default = lib.optionalString cfg.celery.enable "redis+socket://${config.services.redis.servers.pretalx.unixSocket}?virtual_host=1";
+              defaultText = lib.literalExpression ''
+                optionalString config.services.pretalx.celery.enable "redis+socket://''${config.services.redis.servers.pretalx.unixSocket}?virtual_host=1"
+              '';
+              description = lib.mdDoc ''
+                URI to the celery backend used for the asynchronous job queue.
+              '';
+            };
+
+            broker = lib.mkOption {
+              type = with lib.types; nullOr str;
+              default = lib.optionalString cfg.celery.enable "redis+socket://${config.services.redis.servers.pretalx.unixSocket}?virtual_host=2";
+              defaultText = lib.literalExpression ''
+                optionalString config.services.pretalx.celery.enable "redis+socket://''${config.services.redis.servers.pretalx.unixSocket}?virtual_host=2"
+              '';
+              description = lib.mdDoc ''
+                URI to the celery broker used for the asynchronous job queue.
+              '';
+            };
+          };
+
+          redis = {
+            location = lib.mkOption {
+              type = with lib.types; nullOr str;
+              default = "unix://${config.services.redis.servers.pretalx.unixSocket}?db=0";
+              defaultText = lib.literalExpression ''
+                "unix://''${config.services.redis.servers.pretalx.unixSocket}?db=0"
+              '';
+              description = lib.mdDoc ''
+                URI to the redis server, used to speed up locking, caching and session storage.
+              '';
+            };
+
+            session = lib.mkOption {
+              type = lib.types.bool;
+              default = true;
+              example = false;
+              description = lib.mdDoc ''
+                Whether to use redis as the session storage.
+              '';
+            };
+          };
+
+          site = {
+            url = lib.mkOption {
+              type = lib.types.str;
+              default = "https://${cfg.nginx.domain}";
+              defaultText = lib.literalExpression "https://\${config.services.pretalx.nginx.domain}";
+              example = "https://talks.example.com";
+              description = lib.mdDoc ''
+                The base URI below which your pretalx instance will be reachable.
+              '';
+            };
+          };
+        };
+      };
+      default = { };
+      description = lib.mdDoc ''
+        pretalx configuration as a Nix attribute set. All settings can also be passed
+        from the environment.
+
+        See <https://docs.pretalx.org/administrator/configure.html> for possible options.
+      '';
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+    # https://docs.pretalx.org/administrator/installation.html
+
+    environment.systemPackages = [
+      (pkgs.writeScriptBin "pretalx-manage" ''
+        cd ${cfg.settings.filesystem.data}
+        sudo=exec
+        if [[ "$USER" != ${cfg.user} ]]; then
+          sudo='exec /run/wrappers/bin/sudo -u ${cfg.user} --preserve-env=PRETALX_CONFIG_FILE'
+        fi
+        export PRETALX_CONFIG_FILE=${configFile}
+        $sudo ${lib.getExe' pythonEnv "pretalx-manage"} "$@"
+      '')
+    ];
+
+    services = {
+      nginx = lib.mkIf cfg.nginx.enable {
+        enable = true;
+        recommendedGzipSettings = lib.mkDefault true;
+        recommendedOptimisation = lib.mkDefault true;
+        recommendedProxySettings = lib.mkDefault true;
+        recommendedTlsSettings = lib.mkDefault true;
+        upstreams.pretalx.servers."unix:/run/pretalx/pretalx.sock" = { };
+        virtualHosts.${cfg.nginx.domain} = {
+          # https://docs.pretalx.org/administrator/installation.html#step-7-ssl
+          extraConfig = ''
+            more_set_headers Referrer-Policy same-origin;
+            more_set_headers X-Content-Type-Options nosniff;
+          '';
+          locations = {
+            "/".proxyPass = "http://pretalx";
+            "/media/" = {
+              alias = "${cfg.settings.filesystem.data}/data/media/";
+              extraConfig = ''
+                access_log off;
+                more_set_headers Content-Disposition 'attachment; filename="$1"';
+                expires 7d;
+              '';
+            };
+            "/static/" = {
+              alias = cfg.settings.filesystem.static;
+              extraConfig = ''
+                access_log off;
+                more_set_headers Cache-Control "public";
+                expires 365d;
+              '';
+            };
+          };
+        };
+      };
+
+      postgresql = lib.mkIf (cfg.database.createLocally && cfg.settings.database.backend == "postgresql") {
+        enable = true;
+        ensureUsers = [ {
+          name = cfg.settings.database.user;
+          ensureDBOwnership = true;
+        } ];
+        ensureDatabases = [ cfg.settings.database.name ];
+      };
+
+      redis.servers.pretalx.enable = true;
+    };
+
+    systemd.services = let
+      commonUnitConfig = {
+        environment.PRETALX_CONFIG_FILE = configFile;
+        serviceConfig = {
+          User = "pretalx";
+          Group = "pretalx";
+          StateDirectory = [ "pretalx" "pretalx/media" ];
+          LogsDirectory = "pretalx";
+          WorkingDirectory = cfg.settings.filesystem.data;
+          SupplementaryGroups = [ "redis-pretalx" ];
+        };
+      };
+    in {
+      pretalx-web = lib.recursiveUpdate commonUnitConfig {
+        description = "pretalx web service";
+        after = [
+          "network.target"
+          "redis-pretalx.service"
+        ] ++ lib.optionals (cfg.settings.database.backend == "postgresql") [
+          "postgresql.service"
+        ] ++ lib.optionals (cfg.settings.database.backend == "mysql") [
+          "mysql.service"
+        ];
+        wantedBy = [ "multi-user.target" ];
+        preStart = ''
+          versionFile="${cfg.settings.filesystem.data}/.version"
+          version=$(cat "$versionFile" 2>/dev/null || echo 0)
+
+          if [[ $version != ${cfg.package.version} ]]; then
+            ${lib.getExe' pythonEnv "pretalx-manage"} migrate
+
+            echo "${cfg.package.version}" > "$versionFile"
+          fi
+        '';
+        serviceConfig = {
+          ExecStart = "${lib.getExe' pythonEnv "gunicorn"} --bind unix:/run/pretalx/pretalx.sock ${cfg.gunicorn.extraArgs} pretalx.wsgi";
+          RuntimeDirectory = "pretalx";
+        };
+      };
+
+      pretalx-periodic = lib.recursiveUpdate commonUnitConfig {
+        description = "pretalx periodic task runner";
+        # every 15 minutes
+        startAt = [ "*:3,18,33,48" ];
+        serviceConfig = {
+          Type = "oneshot";
+          ExecStart = "${lib.getExe' pythonEnv "pretalx-manage"} runperiodic";
+        };
+      };
+
+      pretalx-clear-sessions = lib.recursiveUpdate commonUnitConfig {
+        description = "pretalx session pruning";
+        startAt = [ "monthly" ];
+        serviceConfig = {
+          Type = "oneshot";
+          ExecStart = "${lib.getExe' pythonEnv "pretalx-manage"} clearsessions";
+        };
+      };
+
+      pretalx-worker = lib.mkIf cfg.celery.enable (lib.recursiveUpdate commonUnitConfig {
+        description = "pretalx asynchronous job runner";
+        after = [
+          "network.target"
+          "redis-pretalx.service"
+        ] ++ lib.optionals (cfg.settings.database.backend == "postgresql") [
+          "postgresql.service"
+        ] ++ lib.optionals (cfg.settings.database.backend == "mysql") [
+          "mysql.service"
+        ];
+        wantedBy = [ "multi-user.target" ];
+        serviceConfig.ExecStart = "${lib.getExe' pythonEnv "celery"} -A pretalx.celery_app worker ${cfg.celery.extraArgs}";
+      });
+    };
+
+    systemd.sockets.pretalx-web.socketConfig = {
+      ListenStream = "/run/pretalx/pretalx.sock";
+      SocketUser = "nginx";
+    };
+
+    users = {
+      groups."${cfg.group}" = {};
+      users."${cfg.user}" = {
+        isSystemUser = true;
+        createHome = true;
+        home = cfg.settings.filesystem.data;
+        inherit (cfg) group;
+      };
+    };
+  };
+}
diff --git a/nixos/modules/services/web-apps/suwayomi-server.md b/nixos/modules/services/web-apps/suwayomi-server.md
new file mode 100644
index 000000000000..ff1e06c8a53a
--- /dev/null
+++ b/nixos/modules/services/web-apps/suwayomi-server.md
@@ -0,0 +1,108 @@
+# Suwayomi-Server {#module-services-suwayomi-server}
+
+A free and open source manga reader server that runs extensions built for Tachiyomi.
+
+## Basic usage {#module-services-suwayomi-server-basic-usage}
+
+By default, the module will execute Suwayomi-Server backend and web UI:
+
+```nix
+{ ... }:
+
+{
+  services.suwayomi-server = {
+    enable = true;
+  };
+}
+```
+
+It runs in the systemd service named `suwayomi-server` in the data directory `/var/lib/suwayomi-server`.
+
+You can change the default parameters with some other parameters:
+```nix
+{ ... }:
+
+{
+  services.suwayomi-server = {
+    enable = true;
+
+    dataDir = "/var/lib/suwayomi"; # Default is "/var/lib/suwayomi-server"
+    openFirewall = true;
+
+    settings = {
+      server.port = 4567;
+    };
+  };
+}
+```
+
+If you want to create a desktop icon, you can activate the system tray option:
+
+```nix
+{ ... }:
+
+{
+  services.suwayomi-server = {
+    enable = true;
+
+    dataDir = "/var/lib/suwayomi"; # Default is "/var/lib/suwayomi-server"
+    openFirewall = true;
+
+    settings = {
+      server.port = 4567;
+      server.enableSystemTray = true;
+    };
+  };
+}
+```
+
+## Basic authentication {#module-services-suwayomi-server-basic-auth}
+
+You can configure a basic authentication to the web interface with:
+
+```nix
+{ ... }:
+
+{
+  services.suwayomi-server = {
+    enable = true;
+
+    openFirewall = true;
+
+    settings = {
+      server.port = 4567;
+      server = {
+        basicAuthEnabled = true;
+        basicAuthUsername = "username";
+
+        # NOTE: this is not a real upstream option
+        basicAuthPasswordFile = ./path/to/the/password/file;
+      };
+    };
+  };
+}
+```
+
+## Extra configuration {#module-services-suwayomi-server-extra-config}
+
+Not all the configuration options are available directly in this module, but you can add the other options of suwayomi-server with:
+
+```nix
+{ ... }:
+
+{
+  services.suwayomi-server = {
+    enable = true;
+
+    openFirewall = true;
+
+    settings = {
+      server = {
+        port = 4567;
+        autoDownloadNewChapters = false;
+        maxSourcesInParallel" = 6;
+      };
+    };
+  };
+}
+```
diff --git a/nixos/modules/services/web-apps/suwayomi-server.nix b/nixos/modules/services/web-apps/suwayomi-server.nix
new file mode 100644
index 000000000000..c4c1540edbee
--- /dev/null
+++ b/nixos/modules/services/web-apps/suwayomi-server.nix
@@ -0,0 +1,260 @@
+{ config, pkgs, lib, ... }:
+
+let
+  cfg = config.services.suwayomi-server;
+  inherit (lib) mkOption mdDoc mkEnableOption mkIf types;
+in
+{
+  options = {
+    services.suwayomi-server = {
+      enable = mkEnableOption (mdDoc "Suwayomi, a free and open source manga reader server that runs extensions built for Tachiyomi.");
+
+      package = lib.mkPackageOptionMD pkgs "suwayomi-server" { };
+
+      dataDir = mkOption {
+        type = types.path;
+        default = "/var/lib/suwayomi-server";
+        example = "/var/data/mangas";
+        description = mdDoc ''
+          The path to the data directory in which Suwayomi-Server will download scans.
+        '';
+      };
+
+      user = mkOption {
+        type = types.str;
+        default = "suwayomi";
+        example = "root";
+        description = mdDoc ''
+          User account under which Suwayomi-Server runs.
+        '';
+      };
+
+      group = mkOption {
+        type = types.str;
+        default = "suwayomi";
+        example = "medias";
+        description = mdDoc ''
+          Group under which Suwayomi-Server runs.
+        '';
+      };
+
+      openFirewall = mkOption {
+        type = types.bool;
+        default = false;
+        description = mdDoc ''
+          Whether to open the firewall for the port in {option}`services.suwayomi-server.settings.server.port`.
+        '';
+      };
+
+      settings = mkOption {
+        type = types.submodule {
+          freeformType =
+            let
+              recursiveAttrsType = with types; attrsOf (nullOr (oneOf [
+                str
+                path
+                int
+                float
+                bool
+                (listOf str)
+                (recursiveAttrsType // { description = "instances of this type recursively"; })
+              ]));
+            in
+            recursiveAttrsType;
+          options = {
+            server = {
+              ip = mkOption {
+                type = types.str;
+                default = "0.0.0.0";
+                example = "127.0.0.1";
+                description = mdDoc ''
+                  The ip that Suwayomi will bind to.
+                '';
+              };
+
+              port = mkOption {
+                type = types.port;
+                default = 8080;
+                example = 4567;
+                description = mdDoc ''
+                  The port that Suwayomi will listen to.
+                '';
+              };
+
+              basicAuthEnabled = mkEnableOption (mdDoc ''
+                Add basic access authentication to Suwayomi-Server.
+                Enabling this option is useful when hosting on a public network/the Internet
+              '');
+
+              basicAuthUsername = mkOption {
+                type = types.nullOr types.str;
+                default = null;
+                description = mdDoc ''
+                  The username value that you have to provide when authenticating.
+                '';
+              };
+
+              # NOTE: this is not a real upstream option
+              basicAuthPasswordFile = mkOption {
+                type = types.nullOr types.path;
+                default = null;
+                example = "/var/secrets/suwayomi-server-password";
+                description = mdDoc ''
+                  The password file containing the value that you have to provide when authenticating.
+                '';
+              };
+
+              downloadAsCbz = mkOption {
+                type = types.bool;
+                default = false;
+                description = mdDoc ''
+                  Download chapters as `.cbz` files.
+                '';
+              };
+
+              localSourcePath = mkOption {
+                type = types.path;
+                default = cfg.dataDir;
+                defaultText = lib.literalExpression "suwayomi-server.dataDir";
+                example = "/var/data/local_mangas";
+                description = mdDoc ''
+                  Path to the local source folder.
+                '';
+              };
+
+              systemTrayEnabled = mkOption {
+                type = types.bool;
+                default = false;
+                description = mdDoc ''
+                  Whether to enable a system tray icon, if possible.
+                '';
+              };
+            };
+          };
+        };
+        description = mdDoc ''
+          Configuration to write to {file}`server.conf`.
+          See <https://github.com/Suwayomi/Suwayomi-Server/wiki/Configuring-Suwayomi-Server> for more information.
+        '';
+        default = { };
+        example = {
+          server.socksProxyEnabled = true;
+          server.socksProxyHost = "yourproxyhost.com";
+          server.socksProxyPort = "8080";
+        };
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+
+    assertions = [{
+      assertion = with cfg.settings.server; basicAuthEnabled -> (basicAuthUsername != null && basicAuthPasswordFile != null);
+      message = ''
+        [suwayomi-server]: the username and the password file cannot be null when the basic auth is enabled
+      '';
+    }];
+
+    networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.settings.server.port ];
+
+    users.groups = mkIf (cfg.group == "suwayomi") {
+      suwayomi = { };
+    };
+
+    users.users = mkIf (cfg.user == "suwayomi") {
+      suwayomi = {
+        group = cfg.group;
+        # Need to set the user home because the package writes to ~/.local/Tachidesk
+        home = cfg.dataDir;
+        description = "Suwayomi Daemon user";
+        isSystemUser = true;
+      };
+    };
+
+    systemd.tmpfiles.settings."10-suwayomi-server" = {
+      "${cfg.dataDir}/.local/share/Tachidesk".d = {
+        mode = "0700";
+        inherit (cfg) user group;
+      };
+    };
+
+    systemd.services.suwayomi-server =
+      let
+        flattenConfig = prefix: config:
+          lib.foldl'
+            lib.mergeAttrs
+            { }
+            (lib.attrValues
+              (lib.mapAttrs
+                (k: v:
+                  if !(lib.isAttrs v)
+                  then { "${prefix}${k}" = v; }
+                  else flattenConfig "${prefix}${k}." v
+                )
+                config
+              )
+            );
+
+        #  HOCON is a JSON superset that suwayomi-server use for configuration
+        toHOCON = attr:
+          let
+            attrType = builtins.typeOf attr;
+          in
+          if builtins.elem attrType [ "string" "path" "int" "float" ]
+          then ''"${toString attr}"''
+          else if attrType == "bool"
+          then lib.boolToString attr
+          else if attrType == "list"
+          then "[\n${lib.concatMapStringsSep ",\n" toHOCON attr}\n]"
+          else # attrs, lambda, null
+            throw ''
+              [suwayomi-server]: invalid config value type '${attrType}'.
+            '';
+
+        configFile = pkgs.writeText "server.conf" (lib.pipe cfg.settings [
+          (settings: lib.recursiveUpdate settings {
+            server.basicAuthPasswordFile = null;
+            server.basicAuthPassword =
+              if settings.server.basicAuthEnabled
+              then "$TACHIDESK_SERVER_BASIC_AUTH_PASSWORD"
+              else null;
+          })
+          (flattenConfig "")
+          (lib.filterAttrs (_: x: x != null))
+          (lib.mapAttrsToList (name: value: ''${name} = ${toHOCON value}''))
+          lib.concatLines
+        ]);
+
+      in
+      {
+        description = "A free and open source manga reader server that runs extensions built for Tachiyomi.";
+
+        wantedBy = [ "multi-user.target" ];
+        wants = [ "network-online.target" ];
+        after = [ "network-online.target" ];
+
+        script = ''
+          ${lib.optionalString cfg.settings.server.basicAuthEnabled ''
+            export TACHIDESK_SERVER_BASIC_AUTH_PASSWORD="$(<${cfg.settings.server.basicAuthPasswordFile})"
+          ''}
+          ${lib.getExe pkgs.envsubst} -i ${configFile} -o ${cfg.dataDir}/.local/share/Tachidesk/server.conf
+          ${lib.getExe cfg.package} -Dsuwayomi.tachidesk.config.server.rootDir=${cfg.dataDir}
+        '';
+
+        serviceConfig = {
+          User = cfg.user;
+          Group = cfg.group;
+
+          Type = "simple";
+          Restart = "on-failure";
+
+          StateDirectory = mkIf (cfg.dataDir == "/var/lib/suwayomi-server") "suwayomi-server";
+        };
+      };
+  };
+
+  meta = {
+    maintainers = with lib.maintainers; [ ratcornu ];
+    doc = ./suwayomi-server.md;
+  };
+}
diff --git a/nixos/modules/services/web-apps/wordpress.nix b/nixos/modules/services/web-apps/wordpress.nix
index 002d6683b2ed..2f7306309d69 100644
--- a/nixos/modules/services/web-apps/wordpress.nix
+++ b/nixos/modules/services/web-apps/wordpress.nix
@@ -174,22 +174,22 @@ let
             List of path(s) to respective language(s) which are copied from the 'languages' directory.
           '';
           example = literalExpression ''
-            [(
+            [
               # Let's package the German language.
               # For other languages try to replace language and country code in the download URL with your desired one.
               # Reference https://translate.wordpress.org for available translations and
               # codes.
-              language-de = pkgs.stdenv.mkDerivation {
+              (pkgs.stdenv.mkDerivation {
                 name = "language-de";
                 src = pkgs.fetchurl {
                   url = "https://de.wordpress.org/wordpress-''${pkgs.wordpress.version}-de_DE.tar.gz";
                   # Name is required to invalidate the hash when wordpress is updated
-                  name = "wordpress-''${pkgs.wordpress.version}-language-de"
+                  name = "wordpress-''${pkgs.wordpress.version}-language-de";
                   sha256 = "sha256-dlas0rXTSV4JAl8f/UyMbig57yURRYRhTMtJwF9g8h0=";
                 };
                 installPhase = "mkdir -p $out; cp -r ./wp-content/languages/* $out/";
-              };
-            )];
+              })
+            ];
           '';
         };
 
diff --git a/nixos/modules/services/web-apps/writefreely.nix b/nixos/modules/services/web-apps/writefreely.nix
index f92afa9276e3..2e9a34897909 100644
--- a/nixos/modules/services/web-apps/writefreely.nix
+++ b/nixos/modules/services/web-apps/writefreely.nix
@@ -334,8 +334,10 @@ in {
         optionalAttrs (cfg.group == "writefreely") { writefreely = { }; };
     };
 
-    systemd.tmpfiles.rules =
-      [ "d '${cfg.stateDir}' 0750 ${cfg.user} ${cfg.group} - -" ];
+    systemd.tmpfiles.settings."10-writefreely".${cfg.stateDir}.d = {
+      inherit (cfg) user group;
+      mode = "0750";
+    };
 
     systemd.services.writefreely = {
       after = [ "network.target" ]
diff --git a/nixos/modules/services/web-apps/youtrack.md b/nixos/modules/services/web-apps/youtrack.md
new file mode 100644
index 000000000000..f33f482ff970
--- /dev/null
+++ b/nixos/modules/services/web-apps/youtrack.md
@@ -0,0 +1,30 @@
+# YouTrack {#module-services-youtrack}
+
+YouTrack is a browser-based bug tracker, issue tracking system and project management software.
+
+## Installation {#module-services-youtrack-installation}
+
+YouTrack exposes a web GUI installer on first login.
+You need a token to access it.
+You can find this token in the log of the `youtrack` service. The log line looks like
+```
+* JetBrains YouTrack 2023.3 Configuration Wizard will be available on [http://127.0.0.1:8090/?wizard_token=somelongtoken] after start
+```
+
+## Upgrade from 2022.3 to 2023.x {#module-services-youtrack-upgrade-2022_3-2023_1}
+
+Starting with YouTrack 2023.1, JetBrains no longer distributes it as as JAR.
+The new distribution with the JetBrains Launcher as a ZIP changed the basic data structure and also some configuration parameters.
+Check out https://www.jetbrains.com/help/youtrack/server/YouTrack-Java-Start-Parameters.html for more information on the new configuration options.
+When upgrading to YouTrack 2023.1 or higher, a migration script will move the old state directory to `/var/lib/youtrack/2022_3` as a backup.
+A one-time manual update is required:
+
+1. Before you update take a backup of your YouTrack instance!
+2. Migrate the options you set in `services.youtrack.extraParams` and `services.youtrack.jvmOpts` to `services.youtrack.generalParameters` and `services.youtrack.environmentalParameters` (see the examples and [the YouTrack docs](https://www.jetbrains.com/help/youtrack/server/2023.3/YouTrack-Java-Start-Parameters.html))
+2. To start the upgrade set `services.youtrack.package = pkgs.youtrack`
+3. YouTrack then starts in upgrade mode, meaning you need to obtain the wizard token as above
+4. Select you want to **Upgrade** YouTrack
+5. As source you select `/var/lib/youtrack/2022_3/teamsysdata/` (adopt if you have a different state path)
+6. Change the data directory location to `/var/lib/youtrack/data/`. The other paths should already be right.
+
+If you migrate a larger YouTrack instance, it might be useful to set `-Dexodus.entityStore.refactoring.forceAll=true` in `services.youtrack.generalParameters` for the first startup of YouTrack 2023.x.
diff --git a/nixos/modules/services/web-apps/youtrack.nix b/nixos/modules/services/web-apps/youtrack.nix
index 79e1d12e0abb..abb4292113b6 100644
--- a/nixos/modules/services/web-apps/youtrack.nix
+++ b/nixos/modules/services/web-apps/youtrack.nix
@@ -1,130 +1,224 @@
 { config, lib, pkgs, ... }:
 
-with lib;
-
 let
   cfg = config.services.youtrack;
-
-  extraAttr = concatStringsSep " " (mapAttrsToList (k: v: "-D${k}=${v}") (stdParams // cfg.extraParams));
-  mergeAttrList = lib.foldl' lib.mergeAttrs {};
-
-  stdParams = mergeAttrList [
-    (optionalAttrs (cfg.baseUrl != null) {
-      "jetbrains.youtrack.baseUrl" = cfg.baseUrl;
-    })
-    {
-    "java.aws.headless" = "true";
-    "jetbrains.youtrack.disableBrowser" = "true";
-    }
-  ];
 in
 {
-  options.services.youtrack = {
+  imports = [
+    (lib.mkRenamedOptionModule [ "services" "youtrack" "baseUrl" ] [ "services" "youtrack" "environmentalParameters" "base-url" ])
+    (lib.mkRenamedOptionModule [ "services" "youtrack" "port" ] [ "services" "youtrack" "environmentalParameters" "listen-port" ])
+    (lib.mkRemovedOptionModule [ "services" "youtrack" "maxMemory" ] "Please instead use `services.youtrack.generalParameters`.")
+    (lib.mkRemovedOptionModule [ "services" "youtrack" "maxMetaspaceSize" ] "Please instead use `services.youtrack.generalParameters`.")
+  ];
 
-    enable = mkEnableOption (lib.mdDoc "YouTrack service");
+  options.services.youtrack = {
+    enable = lib.mkEnableOption (lib.mdDoc "YouTrack service");
 
-    address = mkOption {
+    address = lib.mkOption {
       description = lib.mdDoc ''
         The interface youtrack will listen on.
       '';
       default = "127.0.0.1";
-      type = types.str;
+      type = lib.types.str;
     };
 
-    baseUrl = mkOption {
-      description = lib.mdDoc ''
-        Base URL for youtrack. Will be auto-detected and stored in database.
-      '';
-      type = types.nullOr types.str;
-      default = null;
-    };
-
-    extraParams = mkOption {
+    extraParams = lib.mkOption {
       default = {};
       description = lib.mdDoc ''
-        Extra parameters to pass to youtrack. See
+        Extra parameters to pass to youtrack.
+        Use to configure YouTrack 2022.x, deprecated with YouTrack 2023.x. Use `services.youtrack.generalParameters`.
         https://www.jetbrains.com/help/youtrack/standalone/YouTrack-Java-Start-Parameters.html
         for more information.
       '';
-      example = literalExpression ''
+      example = lib.literalExpression ''
         {
           "jetbrains.youtrack.overrideRootPassword" = "tortuga";
         }
       '';
-      type = types.attrsOf types.str;
+      type = lib.types.attrsOf lib.types.str;
+      visible = false;
     };
 
-    package = mkPackageOption pkgs "youtrack" { };
-
-    port = mkOption {
+    package = lib.mkOption {
       description = lib.mdDoc ''
-        The port youtrack will listen on.
+        Package to use.
       '';
-      default = 8080;
-      type = types.port;
+      type = lib.types.package;
+      default = null;
+      relatedPackages = [ "youtrack_2022_3" "youtrack" ];
     };
 
-    statePath = mkOption {
+
+    statePath = lib.mkOption {
       description = lib.mdDoc ''
-        Where to keep the youtrack database.
+        Path were the YouTrack state is stored.
+        To this path the base version (e.g. 2023_1) of the used package will be appended.
       '';
-      type = types.path;
+      type = lib.types.path;
       default = "/var/lib/youtrack";
     };
 
-    virtualHost = mkOption {
+    virtualHost = lib.mkOption {
       description = lib.mdDoc ''
         Name of the nginx virtual host to use and setup.
         If null, do not setup anything.
       '';
       default = null;
-      type = types.nullOr types.str;
+      type = lib.types.nullOr lib.types.str;
     };
 
-    jvmOpts = mkOption {
+    jvmOpts = lib.mkOption {
       description = lib.mdDoc ''
         Extra options to pass to the JVM.
+        Only has a use with YouTrack 2022.x, deprecated with YouTrack 2023.x. Use `serivces.youtrack.generalParameters`.
         See https://www.jetbrains.com/help/youtrack/standalone/Configure-JVM-Options.html
         for more information.
       '';
-      type = types.separatedString " ";
-      example = "-XX:MetaspaceSize=250m";
+      type = lib.types.separatedString " ";
+      example = "--J-XX:MetaspaceSize=250m";
       default = "";
+      visible = false;
     };
 
-    maxMemory = mkOption {
+    autoUpgrade = lib.mkOption {
+      type = lib.types.bool;
+      default = true;
+      description = lib.mdDoc "Whether YouTrack should auto upgrade it without showing the upgrade dialog.";
+    };
+
+    generalParameters = lib.mkOption {
+      type = with lib.types; listOf str;
       description = lib.mdDoc ''
-        Maximum Java heap size
+        General configuration parameters and other JVM options.
+        Only has an effect for YouTrack 2023.x.
+        See https://www.jetbrains.com/help/youtrack/server/2023.3/youtrack-java-start-parameters.html#general-parameters
+        for more information.
       '';
-      type = types.str;
-      default = "1g";
+      example = lib.literalExpression ''
+        [
+          "-Djetbrains.youtrack.admin.restore=true"
+          "-Xmx1024m"
+        ];
+      '';
+      default = [];
     };
 
-    maxMetaspaceSize = mkOption {
+    environmentalParameters = lib.mkOption {
+      type = lib.types.submodule {
+        freeformType = with lib.types; attrsOf (oneOf [ int str port ]);
+        options = {
+          listen-address = lib.mkOption {
+            type = lib.types.str;
+            default = "0.0.0.0";
+            description = lib.mdDoc "The interface YouTrack will listen on.";
+          };
+          listen-port = lib.mkOption {
+            type = lib.types.port;
+            default = 8080;
+            description = lib.mdDoc "The port YouTrack will listen on.";
+          };
+        };
+      };
       description = lib.mdDoc ''
-        Maximum java Metaspace memory.
+        Environmental configuration parameters, set imperatively. The values doesn't get removed, when removed in Nix.
+        Only has an effect for YouTrack 2023.x.
+        See https://www.jetbrains.com/help/youtrack/server/2023.3/youtrack-java-start-parameters.html#environmental-parameters
+        for more information.
+      '';
+      example = lib.literalExpression ''
+        {
+          secure-mode = "tls";
+        }
       '';
-      type = types.str;
-      default = "350m";
+      default = {};
     };
   };
 
-  config = mkIf cfg.enable {
-
-    systemd.services.youtrack = {
-      environment.HOME = cfg.statePath;
-      environment.YOUTRACK_JVM_OPTS = "${extraAttr}";
-      after = [ "network.target" ];
-      wantedBy = [ "multi-user.target" ];
-      path = with pkgs; [ unixtools.hostname ];
-      serviceConfig = {
-        Type = "simple";
-        User = "youtrack";
-        Group = "youtrack";
-        Restart = "on-failure";
-        ExecStart = ''${cfg.package}/bin/youtrack --J-Xmx${cfg.maxMemory} --J-XX:MaxMetaspaceSize=${cfg.maxMetaspaceSize} ${cfg.jvmOpts} ${cfg.address}:${toString cfg.port}'';
+  config = lib.mkIf cfg.enable {
+    warnings = lib.optional (lib.versions.major cfg.package.version <= "2022")
+      "YouTrack 2022.x is deprecated. See https://nixos.org/manual/nixos/unstable/index.html#module-services-youtrack for details on how to upgrade."
+    ++ lib.optional (cfg.extraParams != "" && (lib.versions.major cfg.package.version >= "2023"))
+      "'services.youtrack.extraParams' is deprecated and has no effect on YouTrack 2023.x and newer. Please migrate to 'services.youtrack.generalParameters'"
+    ++ lib.optional (cfg.jvmOpts != "" && (lib.versions.major cfg.package.version >= "2023"))
+      "'services.youtrack.jvmOpts' is deprecated and has no effect on YouTrack 2023.x and newer. Please migrate to 'services.youtrack.generalParameters'";
+
+    # XXX: Drop all version feature switches at the point when we consider YT 2022.3 as outdated.
+    services.youtrack.package = lib.mkDefault (
+      if lib.versionAtLeast config.system.stateVersion "24.11" then pkgs.youtrack
+      else pkgs.youtrack_2022_3
+    );
+
+    services.youtrack.generalParameters = lib.optional (lib.versions.major cfg.package.version >= "2023")
+      "-Ddisable.configuration.wizard.on.upgrade=${lib.boolToString cfg.autoUpgrade}"
+      ++ (lib.mapAttrsToList (k: v: "-D${k}=${v}") cfg.extraParams);
+
+    systemd.services.youtrack = let
+      service_jar = let
+        mergeAttrList = lib.foldl' lib.mergeAttrs {};
+        stdParams = mergeAttrList [
+          (lib.optionalAttrs (cfg.environmentalParameters ? base-url && cfg.environmentalParameters.base-url != null) {
+            "jetbrains.youtrack.baseUrl" = cfg.environmentalParameters.base-url;
+          })
+          {
+          "java.aws.headless" = "true";
+          "jetbrains.youtrack.disableBrowser" = "true";
+          }
+        ];
+        extraAttr = lib.concatStringsSep " " (lib.mapAttrsToList (k: v: "-D${k}=${v}") (stdParams // cfg.extraParams));
+      in {
+        environment.HOME = cfg.statePath;
+        environment.YOUTRACK_JVM_OPTS = "${extraAttr}";
+        after = [ "network.target" ];
+        wantedBy = [ "multi-user.target" ];
+        path = with pkgs; [ unixtools.hostname ];
+        serviceConfig = {
+          Type = "simple";
+          User = "youtrack";
+          Group = "youtrack";
+          Restart = "on-failure";
+          ExecStart = ''${cfg.package}/bin/youtrack ${cfg.jvmOpts} ${cfg.environmentalParameters.listen-address}:${toString cfg.environmentalParameters.listen-port}'';
+        };
       };
-    };
+      service_zip = let
+        jvmoptions = pkgs.writeTextFile {
+          name = "youtrack.jvmoptions";
+          text = (lib.concatStringsSep "\n" cfg.generalParameters);
+        };
+
+        package = cfg.package.override {
+          statePath = cfg.statePath;
+        };
+      in {
+        after = [ "network.target" ];
+        wantedBy = [ "multi-user.target" ];
+        path = with pkgs; [ unixtools.hostname ];
+        preStart = ''
+          # This detects old (i.e. <= 2022.3) installations that were not migrated yet
+          # and migrates them to the new state directory style
+          if [[ -d ${cfg.statePath}/teamsysdata ]] && [[ ! -d ${cfg.statePath}/2022_3 ]]
+          then
+            mkdir -p ${cfg.statePath}/2022_3
+            mv ${cfg.statePath}/teamsysdata ${cfg.statePath}/2022_3
+            mv ${cfg.statePath}/.youtrack ${cfg.statePath}/2022_3
+          fi
+          mkdir -p ${cfg.statePath}/{backups,conf,data,logs,temp}
+          ${pkgs.coreutils}/bin/ln -fs ${jvmoptions} ${cfg.statePath}/conf/youtrack.jvmoptions
+          ${package}/bin/youtrack configure ${lib.concatStringsSep " " (lib.mapAttrsToList (name: value: "--${name}=${toString value}") cfg.environmentalParameters )}
+        '';
+        serviceConfig = lib.mkMerge [
+          {
+            Type = "simple";
+            User = "youtrack";
+            Group = "youtrack";
+            Restart = "on-failure";
+            ExecStart = "${package}/bin/youtrack run";
+          }
+          (lib.mkIf (cfg.statePath == "/var/lib/youtrack") {
+            StateDirectory = "youtrack";
+          })
+        ];
+      };
+    in if (lib.versions.major cfg.package.version >= "2023") then service_zip else service_jar;
 
     users.users.youtrack = {
       description = "Youtrack service user";
@@ -136,7 +230,7 @@ in
 
     users.groups.youtrack = {};
 
-    services.nginx = mkIf (cfg.virtualHost != null) {
+    services.nginx = lib.mkIf (cfg.virtualHost != null) {
       upstreams.youtrack.servers."${cfg.address}:${toString cfg.port}" = {};
       virtualHosts.${cfg.virtualHost}.locations = {
         "/" = {
@@ -166,9 +260,10 @@ in
             proxy_set_header X-Forwarded-Proto $scheme;
           '';
         };
-
       };
     };
-
   };
+
+  meta.doc = ./youtrack.md;
+  meta.maintainers = [ lib.maintainers.leona ];
 }
diff --git a/nixos/modules/services/web-servers/agate.nix b/nixos/modules/services/web-servers/agate.nix
index dce425035ff7..e03174c87945 100644
--- a/nixos/modules/services/web-servers/agate.nix
+++ b/nixos/modules/services/web-servers/agate.nix
@@ -71,6 +71,7 @@ in
     systemd.services.agate = {
       description = "Agate";
       wantedBy = [ "multi-user.target" ];
+      wants = [ "network-online.target" ];
       after = [ "network.target" "network-online.target" ];
 
       script =
diff --git a/nixos/modules/services/web-servers/mighttpd2.nix b/nixos/modules/services/web-servers/mighttpd2.nix
index bdd6d8b62aa3..bb75dc4f2ff4 100644
--- a/nixos/modules/services/web-servers/mighttpd2.nix
+++ b/nixos/modules/services/web-servers/mighttpd2.nix
@@ -101,6 +101,7 @@ in {
       ];
     systemd.services.mighttpd2 = {
       description = "Mighttpd2 web server";
+      wants = [ "network-online.target" ];
       after = [ "network-online.target" ];
       wantedBy = [ "multi-user.target" ];
       serviceConfig = {
diff --git a/nixos/modules/services/web-servers/minio.nix b/nixos/modules/services/web-servers/minio.nix
index 6431db250476..be6946657e23 100644
--- a/nixos/modules/services/web-servers/minio.nix
+++ b/nixos/modules/services/web-servers/minio.nix
@@ -98,6 +98,7 @@ in
 
       services.minio = {
         description = "Minio Object Storage";
+        wants = [ "network-online.target" ];
         after = [ "network-online.target" ];
         wantedBy = [ "multi-user.target" ];
         serviceConfig = {
diff --git a/nixos/modules/services/web-servers/traefik.nix b/nixos/modules/services/web-servers/traefik.nix
index cc2c680b3342..fc9eb504ebf8 100644
--- a/nixos/modules/services/web-servers/traefik.nix
+++ b/nixos/modules/services/web-servers/traefik.nix
@@ -144,6 +144,7 @@ in {
 
     systemd.services.traefik = {
       description = "Traefik web server";
+      wants = [ "network-online.target" ];
       after = [ "network-online.target" ];
       wantedBy = [ "multi-user.target" ];
       startLimitIntervalSec = 86400;
diff --git a/nixos/modules/services/web-servers/ttyd.nix b/nixos/modules/services/web-servers/ttyd.nix
index 3b1d87ccb483..e545869ca432 100644
--- a/nixos/modules/services/web-servers/ttyd.nix
+++ b/nixos/modules/services/web-servers/ttyd.nix
@@ -180,10 +180,11 @@ in
         # Runs login which needs to be run as root
         # login: Cannot possibly work without effective root
         User = "root";
+        LoadCredential = lib.optionalString (cfg.passwordFile != null) "TTYD_PASSWORD_FILE:${cfg.passwordFile}";
       };
 
       script = if cfg.passwordFile != null then ''
-        PASSWORD=$(cat ${escapeShellArg cfg.passwordFile})
+        PASSWORD=$(cat "$CREDENTIALS_DIRECTORY/TTYD_PASSWORD_FILE")
         ${pkgs.ttyd}/bin/ttyd ${lib.escapeShellArgs args} \
           --credential ${escapeShellArg cfg.username}:"$PASSWORD" \
           ${pkgs.shadow}/bin/login
diff --git a/nixos/modules/services/web-servers/zope2.nix b/nixos/modules/services/web-servers/zope2.nix
index a17fe6bc2082..29731b29eea4 100644
--- a/nixos/modules/services/web-servers/zope2.nix
+++ b/nixos/modules/services/web-servers/zope2.nix
@@ -147,7 +147,7 @@ in
               name = "zope2-${name}-env";
               paths = [
                 pkgs.python27
-                pkgs.python27Packages.recursivePthLoader
+                pkgs.python27Packages.recursive-pth-loader
                 pkgs.python27Packages."plone.recipe.zope2instance"
               ] ++ attrValues pkgs.python27.modules
                 ++ opts.packages;
diff --git a/nixos/modules/services/x11/desktop-managers/budgie.nix b/nixos/modules/services/x11/desktop-managers/budgie.nix
index de4b2c0e50f5..463c45675cee 100644
--- a/nixos/modules/services/x11/desktop-managers/budgie.nix
+++ b/nixos/modules/services/x11/desktop-managers/budgie.nix
@@ -118,9 +118,7 @@ in {
         (budgie.budgie-desktop-with-plugins.override { plugins = cfg.extraPlugins; })
         budgie.budgie-desktop-view
         budgie.budgie-screensaver
-
-        # Required by the Budgie Desktop session.
-        (gnome.gnome-session.override { gnomeShellSupport = false; })
+        budgie.budgie-session
 
         # Required by Budgie Menu.
         gnome-menus
diff --git a/nixos/modules/services/x11/desktop-managers/deepin.nix b/nixos/modules/services/x11/desktop-managers/deepin.nix
index 7fdd50b1ed26..7d3acada6073 100644
--- a/nixos/modules/services/x11/desktop-managers/deepin.nix
+++ b/nixos/modules/services/x11/desktop-managers/deepin.nix
@@ -96,18 +96,10 @@ in
         "/share/dde-daemon"
         "/share/dsg"
         "/share/deepin-themes"
+        "/share/deepin"
       ];
 
       environment.etc = {
-        "distribution.info".text = ''
-          [Distribution]
-          Name=NixOS
-          WebsiteName=www.nixos.org
-          Website=https://www.nixos.org
-          Logo=${pkgs.nixos-icons}/share/icons/hicolor/96x96/apps/nix-snowflake.png
-          LogoLight=${pkgs.nixos-icons}/share/icons/hicolor/32x32/apps/nix-snowflake.png
-          LogoTransparent=${pkgs.deepin.deepin-desktop-base}/share/pixmaps/distribution_logo_transparent.svg
-        '';
         "deepin-installer.conf".text = ''
           system_info_vendor_name="Copyright (c) 2003-2023 NixOS contributors"
         '';
@@ -156,6 +148,7 @@ in
             deepin-sound-theme
             deepin-gtk-theme
             deepin-wallpapers
+            deepin-desktop-base
 
             startdde
             dde-dock
diff --git a/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixos/modules/services/x11/desktop-managers/plasma5.nix
index fc9de2500ba4..677465f55c47 100644
--- a/nixos/modules/services/x11/desktop-managers/plasma5.nix
+++ b/nixos/modules/services/x11/desktop-managers/plasma5.nix
@@ -185,6 +185,8 @@ in
         };
       };
 
+      qt.enable = true;
+
       environment.systemPackages =
         with pkgs.plasma5Packages;
         let
@@ -253,6 +255,9 @@ in
             plasma-integration
             polkit-kde-agent
 
+            qqc2-breeze-style
+            qqc2-desktop-style
+
             plasma-desktop
             plasma-workspace
             plasma-workspace-wallpapers
@@ -480,7 +485,7 @@ in
           pkgs.maliit-framework
           pkgs.maliit-keyboard
         ]
-        ++ lib.optionals (cfg.mobile.installRecommendedSoftware) (with libsForQt5.plasmaMobileGear;[
+        ++ lib.optionals (cfg.mobile.installRecommendedSoftware) (with pkgs.plasma5Packages.plasmaMobileGear; [
           # Additional software made for Plasma Mobile.
           alligator
           angelfish
diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix
index 36f25d5547ca..38fb1074fcdf 100644
--- a/nixos/modules/services/x11/xserver.nix
+++ b/nixos/modules/services/x11/xserver.nix
@@ -710,9 +710,9 @@ in
           '';
         }
       # Needed since 1.18; see https://bugs.freedesktop.org/show_bug.cgi?id=89023#c5
-      // (let cfgPath = "/X11/xorg.conf.d/10-evdev.conf"; in
+      // (let cfgPath = "X11/xorg.conf.d/10-evdev.conf"; in
         {
-          ${cfgPath}.source = xorg.xf86inputevdev.out + "/share" + cfgPath;
+          ${cfgPath}.source = xorg.xf86inputevdev.out + "/share/" + cfgPath;
         });
 
     environment.systemPackages = utils.removePackagesByName
diff --git a/nixos/modules/system/boot/clevis.md b/nixos/modules/system/boot/clevis.md
index 91eb728a919e..dcbf55de60a8 100644
--- a/nixos/modules/system/boot/clevis.md
+++ b/nixos/modules/system/boot/clevis.md
@@ -14,20 +14,20 @@ JWE files have to be created through the clevis command line. 3 types of policie
 
 Secrets are pinned against the presence of a TPM2 device, for example:
 ```
-echo hi | clevis encrypt tpm2 '{}' > hi.jwe
+echo -n hi | clevis encrypt tpm2 '{}' > hi.jwe
 ```
 2) Tang policies
 
 Secrets are pinned against the presence of a Tang server, for example:
 ```
-echo hi | clevis encrypt tang '{"url": "http://tang.local"}' > hi.jwe
+echo -n hi | clevis encrypt tang '{"url": "http://tang.local"}' > hi.jwe
 ```
 
 3) Shamir Secret Sharing
 
 Using Shamir's Secret Sharing ([sss](https://en.wikipedia.org/wiki/Shamir%27s_secret_sharing)), secrets are pinned using a combination of the two preceding policies. For example:
 ```
-echo hi | clevis encrypt sss \
+echo -n hi | clevis encrypt sss \
 '{"t": 2, "pins": {"tpm2": {"pcr_ids": "0"}, "tang": {"url": "http://tang.local"}}}' \
 > hi.jwe
 ```
diff --git a/nixos/modules/system/boot/loader/grub/install-grub.pl b/nixos/modules/system/boot/loader/grub/install-grub.pl
index d1e7a0cb8178..6f0f62546a01 100644
--- a/nixos/modules/system/boot/loader/grub/install-grub.pl
+++ b/nixos/modules/system/boot/loader/grub/install-grub.pl
@@ -136,7 +136,6 @@ sub GetFs {
         chomp $fs;
         my @fields = split / /, $fs;
         my $mountPoint = $fields[4];
-        next unless -d $mountPoint;
         my @mountOptions = split /,/, $fields[5];
 
         # Skip the optional fields.
@@ -155,6 +154,11 @@ sub GetFs {
 
         # Is it better than our current match?
         if (length($mountPoint) > length($bestFs->mount)) {
+
+            # -d performs a stat, which can hang forever on network file systems,
+            # so we only make this call last, when it's likely that this is the mount point we need.
+            next unless -d $mountPoint;
+
             $bestFs = Fs->new(device => $device, type => $fsType, mount => $mountPoint);
         }
     }
diff --git a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
index 6cd46f30373b..a9978d7adf80 100644
--- a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
+++ b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
@@ -15,6 +15,19 @@ import json
 from typing import NamedTuple, Dict, List
 from dataclasses import dataclass
 
+# These values will be replaced with actual values during the package build
+EFI_SYS_MOUNT_POINT = "@efiSysMountPoint@"
+TIMEOUT = "@timeout@"
+EDITOR = "@editor@" == "1"
+CONSOLE_MODE = "@consoleMode@"
+BOOTSPEC_TOOLS = "@bootspecTools@"
+DISTRO_NAME = "@distroName@"
+NIX = "@nix@"
+SYSTEMD = "@systemd@"
+CONFIGURATION_LIMIT = int("@configurationLimit@")
+CAN_TOUCH_EFI_VARIABLES = "@canTouchEfiVariables@"
+GRACEFUL = "@graceful@"
+COPY_EXTRA_FILES = "@copyExtraFiles@"
 
 @dataclass
 class BootSpec:
@@ -29,7 +42,6 @@ class BootSpec:
     initrdSecrets: str | None = None
 
 
-
 libc = ctypes.CDLL("libc.so.6")
 
 class SystemIdentifier(NamedTuple):
@@ -75,16 +87,16 @@ def generation_conf_filename(profile: str | None, generation: int, specialisatio
 
 
 def write_loader_conf(profile: str | None, generation: int, specialisation: str | None) -> None:
-    with open("@efiSysMountPoint@/loader/loader.conf.tmp", 'w') as f:
-        if "@timeout@" != "":
-            f.write("timeout @timeout@\n")
+    with open(f"{EFI_SYS_MOUNT_POINT}/loader/loader.conf.tmp", 'w') as f:
+        if TIMEOUT != "":
+            f.write(f"timeout {TIMEOUT}\n")
         f.write("default %s\n" % generation_conf_filename(profile, generation, specialisation))
-        if not @editor@:
+        if not EDITOR:
             f.write("editor 0\n")
-        f.write("console-mode @consoleMode@\n")
+        f.write(f"console-mode {CONSOLE_MODE}\n")
         f.flush()
         os.fsync(f.fileno())
-    os.rename("@efiSysMountPoint@/loader/loader.conf.tmp", "@efiSysMountPoint@/loader/loader.conf")
+    os.rename(f"{EFI_SYS_MOUNT_POINT}/loader/loader.conf.tmp", f"{EFI_SYS_MOUNT_POINT}/loader/loader.conf")
 
 
 def get_bootspec(profile: str | None, generation: int) -> BootSpec:
@@ -95,7 +107,7 @@ def get_bootspec(profile: str | None, generation: int) -> BootSpec:
         bootspec_json = json.load(boot_json_f)
     else:
         boot_json_str = subprocess.check_output([
-        "@bootspecTools@/bin/synthesize",
+        f"{BOOTSPEC_TOOLS}/bin/synthesize",
         "--version",
         "1",
         system_directory,
@@ -116,7 +128,7 @@ def copy_from_file(file: str, dry_run: bool = False) -> str:
     store_dir = os.path.basename(os.path.dirname(store_file_path))
     efi_file_path = "/efi/nixos/%s-%s.efi" % (store_dir, suffix)
     if not dry_run:
-        copy_if_not_exists(store_file_path, "@efiSysMountPoint@%s" % (efi_file_path))
+        copy_if_not_exists(store_file_path, f"{EFI_SYS_MOUNT_POINT}%s" % (efi_file_path))
     return efi_file_path
 
 def write_entry(profile: str | None, generation: int, specialisation: str | None,
@@ -126,13 +138,14 @@ def write_entry(profile: str | None, generation: int, specialisation: str | None
     kernel = copy_from_file(bootspec.kernel)
     initrd = copy_from_file(bootspec.initrd)
 
-    title = "@distroName@{profile}{specialisation}".format(
+    title = "{name}{profile}{specialisation}".format(
+        name=DISTRO_NAME,
         profile=" [" + profile + "]" if profile else "",
         specialisation=" (%s)" % specialisation if specialisation else "")
 
     try:
         if bootspec.initrdSecrets is not None:
-            subprocess.check_call([bootspec.initrdSecrets, "@efiSysMountPoint@%s" % (initrd)])
+            subprocess.check_call([bootspec.initrdSecrets, f"{EFI_SYS_MOUNT_POINT}%s" % (initrd)])
     except subprocess.CalledProcessError:
         if current:
             print("failed to create initrd secrets!", file=sys.stderr)
@@ -142,7 +155,7 @@ def write_entry(profile: str | None, generation: int, specialisation: str | None
                   f'for "{title} - Configuration {generation}", an older generation', file=sys.stderr)
             print("note: this is normal after having removed "
                   "or renamed a file in `boot.initrd.secrets`", file=sys.stderr)
-    entry_file = "@efiSysMountPoint@/loader/entries/%s" % (
+    entry_file = f"{EFI_SYS_MOUNT_POINT}/loader/entries/%s" % (
         generation_conf_filename(profile, generation, specialisation))
     tmp_path = "%s.tmp" % (entry_file)
     kernel_params = "init=%s " % bootspec.init
@@ -167,7 +180,7 @@ def write_entry(profile: str | None, generation: int, specialisation: str | None
 
 def get_generations(profile: str | None = None) -> list[SystemIdentifier]:
     gen_list = subprocess.check_output([
-        "@nix@/bin/nix-env",
+        f"{NIX}/bin/nix-env",
         "--list-generations",
         "-p",
         "/nix/var/nix/profiles/%s" % ("system-profiles/" + profile if profile else "system"),
@@ -176,7 +189,7 @@ def get_generations(profile: str | None = None) -> list[SystemIdentifier]:
     gen_lines = gen_list.split('\n')
     gen_lines.pop()
 
-    configurationLimit = @configurationLimit@
+    configurationLimit = CONFIGURATION_LIMIT
     configurations = [
         SystemIdentifier(
             profile=profile,
@@ -189,14 +202,14 @@ def get_generations(profile: str | None = None) -> list[SystemIdentifier]:
 
 
 def remove_old_entries(gens: list[SystemIdentifier]) -> None:
-    rex_profile = re.compile(r"^@efiSysMountPoint@/loader/entries/nixos-(.*)-generation-.*\.conf$")
-    rex_generation = re.compile(r"^@efiSysMountPoint@/loader/entries/nixos.*-generation-([0-9]+)(-specialisation-.*)?\.conf$")
+    rex_profile = re.compile(r"^" + re.escape(EFI_SYS_MOUNT_POINT) + "/loader/entries/nixos-(.*)-generation-.*\.conf$")
+    rex_generation = re.compile(r"^" + re.escape(EFI_SYS_MOUNT_POINT) + "/loader/entries/nixos.*-generation-([0-9]+)(-specialisation-.*)?\.conf$")
     known_paths = []
     for gen in gens:
         bootspec = get_bootspec(gen.profile, gen.generation)
         known_paths.append(copy_from_file(bootspec.kernel, True))
         known_paths.append(copy_from_file(bootspec.initrd, True))
-    for path in glob.iglob("@efiSysMountPoint@/loader/entries/nixos*-generation-[1-9]*.conf"):
+    for path in glob.iglob(f"{EFI_SYS_MOUNT_POINT}/loader/entries/nixos*-generation-[1-9]*.conf"):
         if rex_profile.match(path):
             prof = rex_profile.sub(r"\1", path)
         else:
@@ -207,7 +220,7 @@ def remove_old_entries(gens: list[SystemIdentifier]) -> None:
             continue
         if not (prof, gen_number, None) in gens:
             os.unlink(path)
-    for path in glob.iglob("@efiSysMountPoint@/efi/nixos/*"):
+    for path in glob.iglob(f"{EFI_SYS_MOUNT_POINT}/efi/nixos/*"):
         if not path in known_paths and not os.path.isdir(path):
             os.unlink(path)
 
@@ -230,7 +243,7 @@ def install_bootloader(args: argparse.Namespace) -> None:
         # Since systemd version 232 a machine ID is required and it might not
         # be there on newly installed systems, so let's generate one so that
         # bootctl can find it and we can also pass it to write_entry() later.
-        cmd = ["@systemd@/bin/systemd-machine-id-setup", "--print"]
+        cmd = [f"{SYSTEMD}/bin/systemd-machine-id-setup", "--print"]
         machine_id = subprocess.run(
           cmd, text=True, check=True, stdout=subprocess.PIPE
         ).stdout.rstrip()
@@ -242,22 +255,22 @@ def install_bootloader(args: argparse.Namespace) -> None:
     # flags to pass to bootctl install/update
     bootctl_flags = []
 
-    if "@canTouchEfiVariables@" != "1":
+    if CAN_TOUCH_EFI_VARIABLES != "1":
         bootctl_flags.append("--no-variables")
 
-    if "@graceful@" == "1":
+    if GRACEFUL == "1":
         bootctl_flags.append("--graceful")
 
     if os.getenv("NIXOS_INSTALL_BOOTLOADER") == "1":
         # bootctl uses fopen() with modes "wxe" and fails if the file exists.
-        if os.path.exists("@efiSysMountPoint@/loader/loader.conf"):
-            os.unlink("@efiSysMountPoint@/loader/loader.conf")
+        if os.path.exists(f"{EFI_SYS_MOUNT_POINT}/loader/loader.conf"):
+            os.unlink(f"{EFI_SYS_MOUNT_POINT}/loader/loader.conf")
 
-        subprocess.check_call(["@systemd@/bin/bootctl", "--esp-path=@efiSysMountPoint@"] + bootctl_flags + ["install"])
+        subprocess.check_call([f"{SYSTEMD}/bin/bootctl", f"--esp-path={EFI_SYS_MOUNT_POINT}"] + bootctl_flags + ["install"])
     else:
         # Update bootloader to latest if needed
-        available_out = subprocess.check_output(["@systemd@/bin/bootctl", "--version"], universal_newlines=True).split()[2]
-        installed_out = subprocess.check_output(["@systemd@/bin/bootctl", "--esp-path=@efiSysMountPoint@", "status"], universal_newlines=True)
+        available_out = subprocess.check_output([f"{SYSTEMD}/bin/bootctl", "--version"], universal_newlines=True).split()[2]
+        installed_out = subprocess.check_output([f"{SYSTEMD}/bin/bootctl", f"--esp-path={EFI_SYS_MOUNT_POINT}", "status"], universal_newlines=True)
 
         # See status_binaries() in systemd bootctl.c for code which generates this
         installed_match = re.search(r"^\W+File:.*/EFI/(?:BOOT|systemd)/.*\.efi \(systemd-boot ([\d.]+[^)]*)\)$",
@@ -276,10 +289,10 @@ def install_bootloader(args: argparse.Namespace) -> None:
 
         if installed_version < available_version:
             print("updating systemd-boot from %s to %s" % (installed_version, available_version))
-            subprocess.check_call(["@systemd@/bin/bootctl", "--esp-path=@efiSysMountPoint@"] + bootctl_flags + ["update"])
+            subprocess.check_call([f"{SYSTEMD}/bin/bootctl", f"--esp-path={EFI_SYS_MOUNT_POINT}"] + bootctl_flags + ["update"])
 
-    os.makedirs("@efiSysMountPoint@/efi/nixos", exist_ok=True)
-    os.makedirs("@efiSysMountPoint@/loader/entries", exist_ok=True)
+    os.makedirs(f"{EFI_SYS_MOUNT_POINT}/efi/nixos", exist_ok=True)
+    os.makedirs(f"{EFI_SYS_MOUNT_POINT}/loader/entries", exist_ok=True)
 
     gens = get_generations()
     for profile in get_profiles():
@@ -302,9 +315,9 @@ def install_bootloader(args: argparse.Namespace) -> None:
             else:
                 raise e
 
-    for root, _, files in os.walk('@efiSysMountPoint@/efi/nixos/.extra-files', topdown=False):
-        relative_root = root.removeprefix("@efiSysMountPoint@/efi/nixos/.extra-files").removeprefix("/")
-        actual_root = os.path.join("@efiSysMountPoint@", relative_root)
+    for root, _, files in os.walk(f"{EFI_SYS_MOUNT_POINT}/efi/nixos/.extra-files", topdown=False):
+        relative_root = root.removeprefix(f"{EFI_SYS_MOUNT_POINT}/efi/nixos/.extra-files").removeprefix("/")
+        actual_root = os.path.join(f"{EFI_SYS_MOUNT_POINT}", relative_root)
 
         for file in files:
             actual_file = os.path.join(actual_root, file)
@@ -317,14 +330,14 @@ def install_bootloader(args: argparse.Namespace) -> None:
             os.rmdir(actual_root)
         os.rmdir(root)
 
-    os.makedirs("@efiSysMountPoint@/efi/nixos/.extra-files", exist_ok=True)
+    os.makedirs(f"{EFI_SYS_MOUNT_POINT}/efi/nixos/.extra-files", exist_ok=True)
 
-    subprocess.check_call("@copyExtraFiles@")
+    subprocess.check_call(COPY_EXTRA_FILES)
 
 
 def main() -> None:
-    parser = argparse.ArgumentParser(description='Update @distroName@-related systemd-boot files')
-    parser.add_argument('default_config', metavar='DEFAULT-CONFIG', help='The default @distroName@ config to boot')
+    parser = argparse.ArgumentParser(description=f"Update {DISTRO_NAME}-related systemd-boot files")
+    parser.add_argument('default_config', metavar='DEFAULT-CONFIG', help=f"The default {DISTRO_NAME} config to boot")
     args = parser.parse_args()
 
     try:
@@ -334,9 +347,9 @@ def main() -> None:
         # it can leave the system in an unbootable state, when a crash/outage
         # happens shortly after an update. To decrease the likelihood of this
         # event sync the efi filesystem after each update.
-        rc = libc.syncfs(os.open("@efiSysMountPoint@", os.O_RDONLY))
+        rc = libc.syncfs(os.open(f"{EFI_SYS_MOUNT_POINT}", os.O_RDONLY))
         if rc != 0:
-            print("could not sync @efiSysMountPoint@: {}".format(os.strerror(rc)), file=sys.stderr)
+            print(f"could not sync {EFI_SYS_MOUNT_POINT}: {os.strerror(rc)}", file=sys.stderr)
 
 
 if __name__ == '__main__':
diff --git a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix
index 9d55c21077d1..ea4553b8208f 100644
--- a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix
+++ b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix
@@ -22,11 +22,9 @@ let
 
     timeout = optionalString (config.boot.loader.timeout != null) config.boot.loader.timeout;
 
-    editor = if cfg.editor then "True" else "False";
-
     configurationLimit = if cfg.configurationLimit == null then 0 else cfg.configurationLimit;
 
-    inherit (cfg) consoleMode graceful;
+    inherit (cfg) consoleMode graceful editor;
 
     inherit (efi) efiSysMountPoint canTouchEfiVariables;
 
@@ -54,17 +52,18 @@ let
   checkedSystemdBootBuilder = pkgs.runCommand "systemd-boot" {
     nativeBuildInputs = [ pkgs.mypy ];
   } ''
-    install -m755 ${systemdBootBuilder} $out
+    mkdir -p $out/bin
+    install -m755 ${systemdBootBuilder} $out/bin/systemd-boot-builder
     mypy \
       --no-implicit-optional \
       --disallow-untyped-calls \
       --disallow-untyped-defs \
-      $out
+      $out/bin/systemd-boot-builder
   '';
 
   finalSystemdBootBuilder = pkgs.writeScript "install-systemd-boot.sh" ''
     #!${pkgs.runtimeShell}
-    ${checkedSystemdBootBuilder} "$@"
+    ${checkedSystemdBootBuilder}/bin/systemd-boot-builder "$@"
     ${cfg.extraInstallCommands}
   '';
 in {
@@ -81,7 +80,11 @@ in {
 
       type = types.bool;
 
-      description = lib.mdDoc "Whether to enable the systemd-boot (formerly gummiboot) EFI boot manager";
+      description = lib.mdDoc ''
+        Whether to enable the systemd-boot (formerly gummiboot) EFI boot manager.
+        For more information about systemd-boot:
+        https://www.freedesktop.org/wiki/Software/systemd/systemd-boot/
+      '';
     };
 
     editor = mkOption {
diff --git a/nixos/modules/system/boot/luksroot.nix b/nixos/modules/system/boot/luksroot.nix
index 221e90b6f38f..86a3875e2c67 100644
--- a/nixos/modules/system/boot/luksroot.nix
+++ b/nixos/modules/system/boot/luksroot.nix
@@ -1076,7 +1076,7 @@ in
     boot.initrd.systemd = {
       contents."/etc/crypttab".source = stage1Crypttab;
 
-      extraBin.systemd-cryptsetup = "${config.boot.initrd.systemd.package}/lib/systemd/systemd-cryptsetup";
+      extraBin.systemd-cryptsetup = "${config.boot.initrd.systemd.package}/bin/systemd-cryptsetup";
 
       additionalUpstreamUnits = [
         "cryptsetup-pre.target"
@@ -1084,7 +1084,7 @@ in
         "remote-cryptsetup.target"
       ];
       storePaths = [
-        "${config.boot.initrd.systemd.package}/lib/systemd/systemd-cryptsetup"
+        "${config.boot.initrd.systemd.package}/bin/systemd-cryptsetup"
         "${config.boot.initrd.systemd.package}/lib/systemd/system-generators/systemd-cryptsetup-generator"
       ];
 
diff --git a/nixos/modules/system/boot/networkd.nix b/nixos/modules/system/boot/networkd.nix
index f236a4c005ad..a7399bd55e77 100644
--- a/nixos/modules/system/boot/networkd.nix
+++ b/nixos/modules/system/boot/networkd.nix
@@ -2989,15 +2989,9 @@ let
 
       systemd.services.systemd-networkd = {
         wantedBy = [ "initrd.target" ];
-        # These before and conflicts lines can be removed when this PR makes it into a release:
-        # https://github.com/systemd/systemd/pull/27791
-        before = ["initrd-switch-root.target"];
-        conflicts = ["initrd-switch-root.target"];
       };
       systemd.sockets.systemd-networkd = {
         wantedBy = [ "initrd.target" ];
-        before = ["initrd-switch-root.target"];
-        conflicts = ["initrd-switch-root.target"];
       };
 
       systemd.services.systemd-network-generator.wantedBy = [ "sysinit.target" ];
diff --git a/nixos/modules/system/boot/resolved.nix b/nixos/modules/system/boot/resolved.nix
index 538f71cc0b9a..c42c88163c56 100644
--- a/nixos/modules/system/boot/resolved.nix
+++ b/nixos/modules/system/boot/resolved.nix
@@ -95,6 +95,29 @@ in
       '';
     };
 
+    services.resolved.dnsovertls = mkOption {
+      default = "false";
+      example = "true";
+      type = types.enum [ "true" "opportunistic" "false" ];
+      description = lib.mdDoc ''
+        If set to
+        - `"true"`:
+            all DNS lookups will be encrypted. This requires
+            that the DNS server supports DNS-over-TLS and
+            has a valid certificate. If the hostname was specified
+            via the `address#hostname` format in {option}`services.resolved.domains`
+            then the specified hostname is used to validate its certificate.
+        - `"opportunistic"`:
+            all DNS lookups will attempt to be encrypted, but will fallback
+            to unecrypted requests if the server does not support DNS-over-TLS.
+            Note that this mode does allow for a malicious party to conduct a
+            downgrade attack by immitating the DNS server and pretending to not
+            support encryption.
+        - `"false"`:
+            all DNS lookups are done unencrypted.
+      '';
+    };
+
     services.resolved.extraConfig = mkOption {
       default = "";
       type = types.lines;
@@ -141,6 +164,7 @@ in
           "Domains=${concatStringsSep " " cfg.domains}"}
         LLMNR=${cfg.llmnr}
         DNSSEC=${cfg.dnssec}
+        DNSOverTLS=${cfg.dnsovertls}
         ${config.services.resolved.extraConfig}
       '';
 
diff --git a/nixos/modules/system/boot/stage-1-init.sh b/nixos/modules/system/boot/stage-1-init.sh
index 086e5d65da2f..59cf1a47fb7f 100644
--- a/nixos/modules/system/boot/stage-1-init.sh
+++ b/nixos/modules/system/boot/stage-1-init.sh
@@ -86,9 +86,14 @@ touch /etc/initrd-release
 # Function for waiting for device(s) to appear.
 waitDevice() {
     local device="$1"
-    # Split device string using ':' as a delimiter as bcachefs
-    # uses this for multi-device filesystems, i.e. /dev/sda1:/dev/sda2:/dev/sda3
-    local IFS=':'
+    # Split device string using ':' as a delimiter, bcachefs uses
+    # this for multi-device filesystems, i.e. /dev/sda1:/dev/sda2:/dev/sda3
+    local IFS
+
+    # bcachefs is the only known use for this at the moment
+    # Preferably, the 'UUID=' syntax should be enforced, but
+    # this is kept for compatibility reasons
+    if [ "$fsType" = bcachefs ]; then IFS=':'; fi
 
     # USB storage devices tend to appear with some delay.  It would be
     # great if we had a way to synchronously wait for them, but
diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix
index 46c3f66f02dc..e29fa49ea23b 100644
--- a/nixos/modules/system/boot/systemd.nix
+++ b/nixos/modules/system/boot/systemd.nix
@@ -428,7 +428,13 @@ in
 
   config = {
 
-    warnings = concatLists (
+    warnings = let
+      mkOneNetOnlineWarn = typeStr: name: def: lib.optional
+        (lib.elem "network-online.target" def.after && !(lib.elem "network-online.target" (def.wants ++ def.requires ++ def.bindsTo)))
+        "${name}.${typeStr} is ordered after 'network-online.target' but doesn't depend on it";
+      mkNetOnlineWarns = typeStr: defs: lib.concatLists (lib.mapAttrsToList (mkOneNetOnlineWarn typeStr) defs);
+      mkMountNetOnlineWarns = typeStr: defs: lib.concatLists (map (m: mkOneNetOnlineWarn typeStr m.what m) defs);
+    in concatLists (
       mapAttrsToList
         (name: service:
           let
@@ -449,7 +455,15 @@ in
             ]
         )
         cfg.services
-    );
+    )
+    ++ (mkNetOnlineWarns "target" cfg.targets)
+    ++ (mkNetOnlineWarns "service" cfg.services)
+    ++ (mkNetOnlineWarns "socket" cfg.sockets)
+    ++ (mkNetOnlineWarns "timer" cfg.timers)
+    ++ (mkNetOnlineWarns "path" cfg.paths)
+    ++ (mkMountNetOnlineWarns "mount" cfg.mounts)
+    ++ (mkMountNetOnlineWarns "automount" cfg.automounts)
+    ++ (mkNetOnlineWarns "slice" cfg.slices);
 
     assertions = concatLists (
       mapAttrsToList
diff --git a/nixos/modules/system/boot/systemd/initrd.nix b/nixos/modules/system/boot/systemd/initrd.nix
index 4ae07944afc3..9641921fc795 100644
--- a/nixos/modules/system/boot/systemd/initrd.nix
+++ b/nixos/modules/system/boot/systemd/initrd.nix
@@ -57,6 +57,7 @@ let
     "systemd-ask-password-console.service"
     "systemd-fsck@.service"
     "systemd-halt.service"
+    "systemd-hibernate-resume.service"
     "systemd-journald-audit.socket"
     "systemd-journald-dev-log.socket"
     "systemd-journald.service"
@@ -70,6 +71,7 @@ let
     "systemd-tmpfiles-setup.service"
     "timers.target"
     "umount.target"
+    "systemd-bsod.service"
   ] ++ cfg.additionalUpstreamUnits;
 
   upstreamWants = [
@@ -424,6 +426,7 @@ in {
 
       storePaths = [
         # systemd tooling
+        "${cfg.package}/lib/systemd/systemd-executor"
         "${cfg.package}/lib/systemd/systemd-fsck"
         "${cfg.package}/lib/systemd/systemd-hibernate-resume"
         "${cfg.package}/lib/systemd/systemd-journald"
@@ -433,6 +436,7 @@ in {
         "${cfg.package}/lib/systemd/systemd-shutdown"
         "${cfg.package}/lib/systemd/systemd-sulogin-shell"
         "${cfg.package}/lib/systemd/systemd-sysctl"
+        "${cfg.package}/lib/systemd/systemd-bsod"
 
         # generators
         "${cfg.package}/lib/systemd/system-generators/systemd-debug-generator"
diff --git a/nixos/modules/system/boot/systemd/sysusers.nix b/nixos/modules/system/boot/systemd/sysusers.nix
new file mode 100644
index 000000000000..c619c2d91eb0
--- /dev/null
+++ b/nixos/modules/system/boot/systemd/sysusers.nix
@@ -0,0 +1,169 @@
+{ config, lib, pkgs, utils, ... }:
+
+let
+
+  cfg = config.systemd.sysusers;
+  userCfg = config.users;
+
+  sysusersConfig = pkgs.writeTextDir "00-nixos.conf" ''
+    # Type Name ID GECOS Home directory Shell
+
+    # Users
+    ${lib.concatLines (lib.mapAttrsToList
+      (username: opts:
+        let
+          uid = if opts.uid == null then "-" else toString opts.uid;
+        in
+          ''u ${username} ${uid}:${opts.group} "${opts.description}" ${opts.home} ${utils.toShellPath opts.shell}''
+      )
+      userCfg.users)
+    }
+
+    # Groups
+    ${lib.concatLines (lib.mapAttrsToList
+      (groupname: opts: ''g ${groupname} ${if opts.gid == null then "-" else toString opts.gid}'') userCfg.groups)
+    }
+
+    # Group membership
+    ${lib.concatStrings (lib.mapAttrsToList
+      (groupname: opts: (lib.concatMapStrings (username: "m ${username} ${groupname}\n")) opts.members ) userCfg.groups)
+    }
+  '';
+
+  staticSysusersCredentials = pkgs.runCommand "static-sysusers-credentials" { } ''
+    mkdir $out; cd $out
+    ${lib.concatLines (
+      (lib.mapAttrsToList
+        (username: opts: "echo -n '${opts.initialHashedPassword}' > 'passwd.hashed-password.${username}'")
+        (lib.filterAttrs (_username: opts: opts.initialHashedPassword != null) userCfg.users))
+        ++
+      (lib.mapAttrsToList
+        (username: opts: "echo -n '${opts.initialPassword}' > 'passwd.plaintext-password.${username}'")
+        (lib.filterAttrs (_username: opts: opts.initialPassword != null) userCfg.users))
+        ++
+      (lib.mapAttrsToList
+        (username: opts: "cat '${opts.hashedPasswordFile}' > 'passwd.hashed-password.${username}'")
+        (lib.filterAttrs (_username: opts: opts.hashedPasswordFile != null) userCfg.users))
+      )
+    }
+  '';
+
+  staticSysusers = pkgs.runCommand "static-sysusers"
+    {
+      nativeBuildInputs = [ pkgs.systemd ];
+    } ''
+    mkdir $out
+    export CREDENTIALS_DIRECTORY=${staticSysusersCredentials}
+    systemd-sysusers --root $out ${sysusersConfig}/00-nixos.conf
+  '';
+
+in
+
+{
+
+  options = {
+
+    # This module doesn't set it's own user options but reuses the ones from
+    # users-groups.nix
+
+    systemd.sysusers = {
+      enable = lib.mkEnableOption (lib.mdDoc "systemd-sysusers") // {
+        description = lib.mdDoc ''
+          If enabled, users are created with systemd-sysusers instead of with
+          the custom `update-users-groups.pl` script.
+
+          Note: This is experimental.
+        '';
+      };
+    };
+
+  };
+
+  config = lib.mkIf cfg.enable {
+
+    assertions = [
+      {
+        assertion = config.system.activationScripts.users == "";
+        message = "system.activationScripts.users has to be empty to use systemd-sysusers";
+      }
+      {
+        assertion = config.users.mutableUsers -> config.system.etc.overlay.enable;
+        message = "config.users.mutableUsers requires config.system.etc.overlay.enable.";
+      }
+    ];
+
+    systemd = lib.mkMerge [
+      ({
+
+        # Create home directories, do not create /var/empty even if that's a user's
+        # home.
+        tmpfiles.settings.home-directories = lib.mapAttrs'
+          (username: opts: lib.nameValuePair opts.home {
+            d = {
+              mode = opts.homeMode;
+              user = username;
+              group = opts.group;
+            };
+          })
+          (lib.filterAttrs (_username: opts: opts.home != "/var/empty") userCfg.users);
+      })
+
+      (lib.mkIf config.users.mutableUsers {
+        additionalUpstreamSystemUnits = [
+          "systemd-sysusers.service"
+        ];
+
+        services.systemd-sysusers = {
+          # Enable switch-to-configuration to restart the service.
+          unitConfig.ConditionNeedsUpdate = [ "" ];
+          requiredBy = [ "sysinit-reactivation.target" ];
+          before = [ "sysinit-reactivation.target" ];
+          restartTriggers = [ "${config.environment.etc."sysusers.d".source}" ];
+
+          serviceConfig = {
+            LoadCredential = lib.mapAttrsToList
+              (username: opts: "passwd.hashed-password.${username}:${opts.hashedPasswordFile}")
+              (lib.filterAttrs (_username: opts: opts.hashedPasswordFile != null) userCfg.users);
+            SetCredential = (lib.mapAttrsToList
+              (username: opts: "passwd.hashed-password.${username}:${opts.initialHashedPassword}")
+              (lib.filterAttrs (_username: opts: opts.initialHashedPassword != null) userCfg.users))
+            ++
+            (lib.mapAttrsToList
+              (username: opts: "passwd.plaintext-password.${username}:${opts.initialPassword}")
+              (lib.filterAttrs (_username: opts: opts.initialPassword != null) userCfg.users))
+            ;
+          };
+        };
+      })
+    ];
+
+    environment.etc = lib.mkMerge [
+      (lib.mkIf (!userCfg.mutableUsers) {
+        "passwd" = {
+          source = "${staticSysusers}/etc/passwd";
+          mode = "0644";
+        };
+        "group" = {
+          source = "${staticSysusers}/etc/group";
+          mode = "0644";
+        };
+        "shadow" = {
+          source = "${staticSysusers}/etc/shadow";
+          mode = "0000";
+        };
+        "gshadow" = {
+          source = "${staticSysusers}/etc/gshadow";
+          mode = "0000";
+        };
+      })
+
+      (lib.mkIf userCfg.mutableUsers {
+        "sysusers.d".source = sysusersConfig;
+      })
+    ];
+
+  };
+
+  meta.maintainers = with lib.maintainers; [ nikstur ];
+
+}
diff --git a/nixos/modules/system/boot/uki.nix b/nixos/modules/system/boot/uki.nix
new file mode 100644
index 000000000000..63c4e0c0e391
--- /dev/null
+++ b/nixos/modules/system/boot/uki.nix
@@ -0,0 +1,85 @@
+{ config, lib, pkgs, ... }:
+
+let
+
+  cfg = config.boot.uki;
+
+  inherit (pkgs.stdenv.hostPlatform) efiArch;
+
+  format = pkgs.formats.ini { };
+  ukifyConfig = format.generate "ukify.conf" cfg.settings;
+
+in
+
+{
+  options = {
+
+    boot.uki = {
+      name = lib.mkOption {
+        type = lib.types.str;
+        description = lib.mdDoc "Name of the UKI";
+      };
+
+      version = lib.mkOption {
+        type = lib.types.nullOr lib.types.str;
+        default = config.system.image.version;
+        defaultText = lib.literalExpression "config.system.image.version";
+        description = lib.mdDoc "Version of the image or generation the UKI belongs to";
+      };
+
+      settings = lib.mkOption {
+        type = format.type;
+        description = lib.mdDoc ''
+          The configuration settings for ukify. These control what the UKI
+          contains and how it is built.
+        '';
+      };
+    };
+
+    system.boot.loader.ukiFile = lib.mkOption {
+      type = lib.types.str;
+      internal = true;
+      description = lib.mdDoc "Name of the UKI file";
+    };
+
+  };
+
+  config = {
+
+    boot.uki.name = lib.mkOptionDefault (if config.system.image.id != null then
+      config.system.image.id
+    else
+      "nixos");
+
+    boot.uki.settings = lib.mkOptionDefault {
+      UKI = {
+        Linux = "${config.boot.kernelPackages.kernel}/${config.system.boot.loader.kernelFile}";
+        Initrd = "${config.system.build.initialRamdisk}/${config.system.boot.loader.initrdFile}";
+        Cmdline = "init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams}";
+        Stub = "${pkgs.systemd}/lib/systemd/boot/efi/linux${efiArch}.efi.stub";
+        Uname = "${config.boot.kernelPackages.kernel.modDirVersion}";
+        OSRelease = "@${config.system.build.etc}/etc/os-release";
+        # This is needed for cross compiling.
+        EFIArch = efiArch;
+      };
+    };
+
+    system.boot.loader.ukiFile =
+      let
+        name = config.boot.uki.name;
+        version = config.boot.uki.version;
+        versionInfix = if version != null then "_${version}" else "";
+      in
+      name + versionInfix + ".efi";
+
+    system.build.uki = pkgs.runCommand config.system.boot.loader.ukiFile { } ''
+      mkdir -p $out
+      ${pkgs.buildPackages.systemdUkify}/lib/systemd/ukify build \
+        --config=${ukifyConfig} \
+        --output="$out/${config.system.boot.loader.ukiFile}"
+    '';
+
+    meta.maintainers = with lib.maintainers; [ nikstur ];
+
+  };
+}
diff --git a/nixos/modules/system/etc/build-composefs-dump.py b/nixos/modules/system/etc/build-composefs-dump.py
new file mode 100644
index 000000000000..bf4ec791ecf7
--- /dev/null
+++ b/nixos/modules/system/etc/build-composefs-dump.py
@@ -0,0 +1,217 @@
+#!/usr/bin/env python3
+
+"""Build a composefs dump from a Json config
+
+See the man page of composefs-dump for details about the format:
+https://github.com/containers/composefs/blob/main/man/composefs-dump.md
+
+Ensure to check the file with the check script when you make changes to it:
+
+./check-build-composefs-dump.sh ./build-composefs_dump.py
+"""
+
+import glob
+import json
+import os
+import sys
+from enum import Enum
+from pathlib import Path
+from typing import Any
+
+Attrs = dict[str, Any]
+
+
+class FileType(Enum):
+    """The filetype as defined by the `st_mode` stat field in octal
+
+    You can check the st_mode stat field of a path in Python with
+    `oct(os.stat("/path/").st_mode)`
+    """
+
+    directory = "4"
+    file = "10"
+    symlink = "12"
+
+
+class ComposefsPath:
+    path: str
+    size: int
+    filetype: FileType
+    mode: str
+    uid: str
+    gid: str
+    payload: str
+    rdev: str = "0"
+    nlink: int = 1
+    mtime: str = "1.0"
+    content: str = "-"
+    digest: str = "-"
+
+    def __init__(
+        self,
+        attrs: Attrs,
+        size: int,
+        filetype: FileType,
+        mode: str,
+        payload: str,
+        path: str | None = None,
+    ):
+        if path is None:
+            path = attrs["target"]
+        self.path = path
+        self.size = size
+        self.filetype = filetype
+        self.mode = mode
+        self.uid = attrs["uid"]
+        self.gid = attrs["gid"]
+        self.payload = payload
+
+    def write_line(self) -> str:
+        line_list = [
+            str(self.path),
+            str(self.size),
+            f"{self.filetype.value}{self.mode}",
+            str(self.nlink),
+            str(self.uid),
+            str(self.gid),
+            str(self.rdev),
+            str(self.mtime),
+            str(self.payload),
+            str(self.content),
+            str(self.digest),
+        ]
+        return " ".join(line_list)
+
+
+def eprint(*args: Any, **kwargs: Any) -> None:
+    print(*args, **kwargs, file=sys.stderr)
+
+
+def normalize_path(path: str) -> str:
+    return str("/" + os.path.normpath(path).lstrip("/"))
+
+
+def leading_directories(path: str) -> list[str]:
+    """Return the leading directories of path
+
+    Given the path "alsa/conf.d/50-pipewire.conf", for example, this function
+    returns `[ "alsa", "alsa/conf.d" ]`.
+    """
+    parents = list(Path(path).parents)
+    parents.reverse()
+    # remove the implicit `.` from the start of a relative path or `/` from an
+    # absolute path
+    del parents[0]
+    return [str(i) for i in parents]
+
+
+def add_leading_directories(
+    target: str, attrs: Attrs, paths: dict[str, ComposefsPath]
+) -> None:
+    """Add the leading directories of a target path to the composefs paths
+
+    mkcomposefs expects that all leading directories are explicitly listed in
+    the dump file. Given the path "alsa/conf.d/50-pipewire.conf", for example,
+    this function adds "alsa" and "alsa/conf.d" to the composefs paths.
+    """
+    path_components = leading_directories(target)
+    for component in path_components:
+        composefs_path = ComposefsPath(
+            attrs,
+            path=component,
+            size=4096,
+            filetype=FileType.directory,
+            mode="0755",
+            payload="-",
+        )
+        paths[component] = composefs_path
+
+
+def main() -> None:
+    """Build a composefs dump from a Json config
+
+    This config describes the files that the final composefs image is supposed
+    to contain.
+    """
+    config_file = sys.argv[1]
+    if not config_file:
+        eprint("No config file was supplied.")
+        sys.exit(1)
+
+    with open(config_file, "rb") as f:
+        config = json.load(f)
+
+    if not config:
+        eprint("Config is empty.")
+        sys.exit(1)
+
+    eprint("Building composefs dump...")
+
+    paths: dict[str, ComposefsPath] = {}
+    for attrs in config:
+        # Normalize the target path to work around issues in how targets are
+        # declared in `environment.etc`.
+        attrs["target"] = normalize_path(attrs["target"])
+
+        target = attrs["target"]
+        source = attrs["source"]
+        mode = attrs["mode"]
+
+        if "*" in source:  # Path with globbing
+            glob_sources = glob.glob(source)
+            for glob_source in glob_sources:
+                basename = os.path.basename(glob_source)
+                glob_target = f"{target}/{basename}"
+
+                composefs_path = ComposefsPath(
+                    attrs,
+                    path=glob_target,
+                    size=100,
+                    filetype=FileType.symlink,
+                    mode="0777",
+                    payload=glob_source,
+                )
+
+                paths[glob_target] = composefs_path
+                add_leading_directories(glob_target, attrs, paths)
+        else:  # Without globbing
+            if mode == "symlink":
+                composefs_path = ComposefsPath(
+                    attrs,
+                    # A high approximation of the size of a symlink
+                    size=100,
+                    filetype=FileType.symlink,
+                    mode="0777",
+                    payload=source,
+                )
+            else:
+                if os.path.isdir(source):
+                    composefs_path = ComposefsPath(
+                        attrs,
+                        size=4096,
+                        filetype=FileType.directory,
+                        mode=mode,
+                        payload=source,
+                    )
+                else:
+                    composefs_path = ComposefsPath(
+                        attrs,
+                        size=os.stat(source).st_size,
+                        filetype=FileType.file,
+                        mode=mode,
+                        payload=target,
+                    )
+            paths[target] = composefs_path
+            add_leading_directories(target, attrs, paths)
+
+    composefs_dump = ["/ 4096 40755 1 0 0 0 0.0 - - -"]  # Root directory
+    for key in sorted(paths):
+        composefs_path = paths[key]
+        eprint(composefs_path.path)
+        composefs_dump.append(composefs_path.write_line())
+
+    print("\n".join(composefs_dump))
+
+
+if __name__ == "__main__":
+    main()
diff --git a/nixos/modules/system/etc/check-build-composefs-dump.sh b/nixos/modules/system/etc/check-build-composefs-dump.sh
new file mode 100755
index 000000000000..da61651d1a5d
--- /dev/null
+++ b/nixos/modules/system/etc/check-build-composefs-dump.sh
@@ -0,0 +1,8 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p black ruff mypy
+
+file=$1
+
+black --check --diff $file
+ruff --line-length 88 $file
+mypy --strict $file
diff --git a/nixos/modules/system/etc/etc-activation.nix b/nixos/modules/system/etc/etc-activation.nix
index 780104950186..f47fd771c659 100644
--- a/nixos/modules/system/etc/etc-activation.nix
+++ b/nixos/modules/system/etc/etc-activation.nix
@@ -1,12 +1,96 @@
 { config, lib, ... }:
-let
-  inherit (lib) stringAfter;
-in {
+
+{
 
   imports = [ ./etc.nix ];
 
-  config = {
-    system.activationScripts.etc =
-      stringAfter [ "users" "groups" ] config.system.build.etcActivationCommands;
-  };
+  config = lib.mkMerge [
+
+    {
+      system.activationScripts.etc =
+        lib.stringAfter [ "users" "groups" ] config.system.build.etcActivationCommands;
+    }
+
+    (lib.mkIf config.system.etc.overlay.enable {
+
+      assertions = [
+        {
+          assertion = config.boot.initrd.systemd.enable;
+          message = "`system.etc.overlay.enable` requires `boot.initrd.systemd.enable`";
+        }
+        {
+          assertion = (!config.system.etc.overlay.mutable) -> config.systemd.sysusers.enable;
+          message = "`system.etc.overlay.mutable = false` requires `systemd.sysusers.enable`";
+        }
+        {
+          assertion = lib.versionAtLeast config.boot.kernelPackages.kernel.version "6.6";
+          message = "`system.etc.overlay.enable requires a newer kernel, at least version 6.6";
+        }
+        {
+          assertion = config.systemd.sysusers.enable -> (config.users.mutableUsers == config.system.etc.overlay.mutable);
+          message = ''
+            When using systemd-sysusers and mounting `/etc` via an overlay, users
+            can only be mutable when `/etc` is mutable and vice versa.
+          '';
+        }
+      ];
+
+      boot.initrd.availableKernelModules = [ "loop" "erofs" "overlay" ];
+
+      boot.initrd.systemd = {
+        mounts = [
+          {
+            where = "/run/etc-metadata";
+            what = "/sysroot${config.system.build.etcMetadataImage}";
+            type = "erofs";
+            options = "loop";
+            unitConfig.RequiresMountsFor = [
+              "/sysroot/nix/store"
+            ];
+          }
+          {
+            where = "/sysroot/etc";
+            what = "overlay";
+            type = "overlay";
+            options = lib.concatStringsSep "," ([
+              "relatime"
+              "redirect_dir=on"
+              "metacopy=on"
+              "lowerdir=/run/etc-metadata::/sysroot${config.system.build.etcBasedir}"
+            ] ++ lib.optionals config.system.etc.overlay.mutable [
+              "rw"
+              "upperdir=/sysroot/.rw-etc/upper"
+              "workdir=/sysroot/.rw-etc/work"
+            ] ++ lib.optionals (!config.system.etc.overlay.mutable) [
+              "ro"
+            ]);
+            wantedBy = [ "initrd-fs.target" ];
+            before = [ "initrd-fs.target" ];
+            requires = lib.mkIf config.system.etc.overlay.mutable [ "rw-etc.service" ];
+            after = lib.mkIf config.system.etc.overlay.mutable [ "rw-etc.service" ];
+            unitConfig.RequiresMountsFor = [
+              "/sysroot/nix/store"
+              "/run/etc-metadata"
+            ];
+          }
+        ];
+        services = lib.mkIf config.system.etc.overlay.mutable {
+          rw-etc = {
+            unitConfig = {
+              DefaultDependencies = false;
+              RequiresMountsFor = "/sysroot";
+            };
+            serviceConfig = {
+              Type = "oneshot";
+              ExecStart = ''
+                /bin/mkdir -p -m 0755 /sysroot/.rw-etc/upper /sysroot/.rw-etc/work
+              '';
+            };
+          };
+        };
+      };
+
+    })
+
+  ];
 }
diff --git a/nixos/modules/system/etc/etc.nix b/nixos/modules/system/etc/etc.nix
index ea61e7384e60..baf37ba6def3 100644
--- a/nixos/modules/system/etc/etc.nix
+++ b/nixos/modules/system/etc/etc.nix
@@ -62,6 +62,16 @@ let
     ]) etc'}
   '';
 
+  etcHardlinks = filter (f: f.mode != "symlink") etc';
+
+  build-composefs-dump = pkgs.runCommand "build-composefs-dump.py"
+    {
+      buildInputs = [ pkgs.python3 ];
+    } ''
+    install ${./build-composefs-dump.py} $out
+    patchShebangs --host $out
+  '';
+
 in
 
 {
@@ -72,6 +82,30 @@ in
 
   options = {
 
+    system.etc.overlay = {
+      enable = mkOption {
+        type = types.bool;
+        default = false;
+        description = lib.mdDoc ''
+          Mount `/etc` as an overlayfs instead of generating it via a perl script.
+
+          Note: This is currently experimental. Only enable this option if you're
+          confident that you can recover your system if it breaks.
+        '';
+      };
+
+      mutable = mkOption {
+        type = types.bool;
+        default = true;
+        description = lib.mdDoc ''
+          Whether to mount `/etc` mutably (i.e. read-write) or immutably (i.e. read-only).
+
+          If this is false, only the immutable lowerdir is mounted. If it is
+          true, a writable upperdir is mounted on top.
+        '';
+      };
+    };
+
     environment.etc = mkOption {
       default = {};
       example = literalExpression ''
@@ -190,12 +224,84 @@ in
   config = {
 
     system.build.etc = etc;
-    system.build.etcActivationCommands =
-      ''
-        # Set up the statically computed bits of /etc.
-        echo "setting up /etc..."
-        ${pkgs.perl.withPackages (p: [ p.FileSlurp ])}/bin/perl ${./setup-etc.pl} ${etc}/etc
+    system.build.etcActivationCommands = let
+      etcOverlayOptions = lib.concatStringsSep "," ([
+        "relatime"
+        "redirect_dir=on"
+        "metacopy=on"
+      ] ++ lib.optionals config.system.etc.overlay.mutable [
+        "upperdir=/.rw-etc/upper"
+        "workdir=/.rw-etc/work"
+      ]);
+    in if config.system.etc.overlay.enable then ''
+      # This script atomically remounts /etc when switching configuration. On a (re-)boot
+      # this should not run because /etc is mounted via a systemd mount unit
+      # instead. To a large extent this mimics what composefs does. Because
+      # it's relatively simple, however, we avoid the composefs dependency.
+      if [[ ! $IN_NIXOS_SYSTEMD_STAGE1 ]]; then
+        echo "remounting /etc..."
+
+        tmpMetadataMount=$(mktemp --directory)
+        mount --type erofs ${config.system.build.etcMetadataImage} $tmpMetadataMount
+
+        # Mount the new /etc overlay to a temporary private mount.
+        # This needs the indirection via a private bind mount because you
+        # cannot move shared mounts.
+        tmpEtcMount=$(mktemp --directory)
+        mount --bind --make-private $tmpEtcMount $tmpEtcMount
+        mount --type overlay overlay \
+          --options lowerdir=$tmpMetadataMount::${config.system.build.etcBasedir},${etcOverlayOptions} \
+          $tmpEtcMount
+
+        # Move the new temporary /etc mount underneath the current /etc mount.
+        #
+        # This should eventually use util-linux to perform this move beneath,
+        # however, this functionality is not yet in util-linux. See this
+        # tracking issue: https://github.com/util-linux/util-linux/issues/2604
+        ${pkgs.move-mount-beneath}/bin/move-mount --move --beneath $tmpEtcMount /etc
+
+        # Unmount the top /etc mount to atomically reveal the new mount.
+        umount /etc
+
+      fi
+    '' else ''
+      # Set up the statically computed bits of /etc.
+      echo "setting up /etc..."
+      ${pkgs.perl.withPackages (p: [ p.FileSlurp ])}/bin/perl ${./setup-etc.pl} ${etc}/etc
+    '';
+
+    system.build.etcBasedir = pkgs.runCommandLocal "etc-lowerdir" { } ''
+      set -euo pipefail
+
+      makeEtcEntry() {
+        src="$1"
+        target="$2"
+
+        mkdir -p "$out/$(dirname "$target")"
+        cp "$src" "$out/$target"
+      }
+
+      mkdir -p "$out"
+      ${concatMapStringsSep "\n" (etcEntry: escapeShellArgs [
+        "makeEtcEntry"
+        # Force local source paths to be added to the store
+        "${etcEntry.source}"
+        etcEntry.target
+      ]) etcHardlinks}
+    '';
+
+    system.build.etcMetadataImage =
+      let
+        etcJson = pkgs.writeText "etc-json" (builtins.toJSON etc');
+        etcDump = pkgs.runCommand "etc-dump" { } "${build-composefs-dump} ${etcJson} > $out";
+      in
+      pkgs.runCommand "etc-metadata.erofs" {
+        nativeBuildInputs = [ pkgs.composefs pkgs.erofs-utils ];
+      } ''
+        mkcomposefs --from-file ${etcDump} $out
+        fsck.erofs $out
       '';
+
   };
 
 }
diff --git a/nixos/modules/tasks/auto-upgrade.nix b/nixos/modules/tasks/auto-upgrade.nix
index 29e3e313336f..22311871274b 100644
--- a/nixos/modules/tasks/auto-upgrade.nix
+++ b/nixos/modules/tasks/auto-upgrade.nix
@@ -109,6 +109,17 @@ in {
         '';
       };
 
+      fixedRandomDelay = mkOption {
+        default = false;
+        type = types.bool;
+        example = true;
+        description = lib.mdDoc ''
+          Make the randomized delay consistent between runs.
+          This reduces the jitter between automatic upgrades.
+          See {option}`randomizedDelaySec` for configuring the randomized delay.
+        '';
+      };
+
       rebootWindow = mkOption {
         description = lib.mdDoc ''
           Define a lower and upper time value (in HH:MM format) which
@@ -253,6 +264,7 @@ in {
     systemd.timers.nixos-upgrade = {
       timerConfig = {
         RandomizedDelaySec = cfg.randomizedDelaySec;
+        FixedRandomDelay = cfg.fixedRandomDelay;
         Persistent = cfg.persistent;
       };
     };
diff --git a/nixos/modules/tasks/filesystems/bcachefs.nix b/nixos/modules/tasks/filesystems/bcachefs.nix
index fdb149a3d9a1..3b990ce30b21 100644
--- a/nixos/modules/tasks/filesystems/bcachefs.nix
+++ b/nixos/modules/tasks/filesystems/bcachefs.nix
@@ -123,9 +123,14 @@ in
       inherit assertions;
       # needed for systemd-remount-fs
       system.fsPackages = [ pkgs.bcachefs-tools ];
-      # FIXME: Remove this line when the default kernel has bcachefs
+      # FIXME: Remove this line when the LTS (default) kernel is at least version 6.7
       boot.kernelPackages = lib.mkDefault pkgs.linuxPackages_latest;
-      systemd.services = lib.mapAttrs' (mkUnits "") (lib.filterAttrs (n: fs: (fs.fsType == "bcachefs") && (!utils.fsNeededForBoot fs)) config.fileSystems);
+      services.udev.packages = [ pkgs.bcachefs-tools ];
+
+      systemd = {
+        packages = [ pkgs.bcachefs-tools ];
+        services = lib.mapAttrs' (mkUnits "") (lib.filterAttrs (n: fs: (fs.fsType == "bcachefs") && (!utils.fsNeededForBoot fs)) config.fileSystems);
+      };
     }
 
     (lib.mkIf ((lib.elem "bcachefs" config.boot.initrd.supportedFilesystems) || (bootFs != {})) {
diff --git a/nixos/modules/tasks/filesystems/sshfs.nix b/nixos/modules/tasks/filesystems/sshfs.nix
new file mode 100644
index 000000000000..cd71dda16d8b
--- /dev/null
+++ b/nixos/modules/tasks/filesystems/sshfs.nix
@@ -0,0 +1,7 @@
+{ config, lib, pkgs, ... }:
+
+{
+  config = lib.mkIf (lib.any (fs: fs == "sshfs" || fs == "fuse.sshfs") config.boot.supportedFilesystems) {
+    system.fsPackages = [ pkgs.sshfs ];
+  };
+}
diff --git a/nixos/modules/testing/test-instrumentation.nix b/nixos/modules/testing/test-instrumentation.nix
index 9ee77cd79a9b..6aa718c1975d 100644
--- a/nixos/modules/testing/test-instrumentation.nix
+++ b/nixos/modules/testing/test-instrumentation.nix
@@ -207,7 +207,10 @@ in
     networking.usePredictableInterfaceNames = false;
 
     # Make it easy to log in as root when running the test interactively.
-    users.users.root.initialHashedPassword = mkOverride 150 "";
+    # This needs to be a file because of a quirk in systemd credentials,
+    # where you cannot specify an empty string as a value. systemd-sysusers
+    # uses credentials to set passwords on users.
+    users.users.root.hashedPasswordFile = mkOverride 150 "${pkgs.writeText "hashed-password.root" ""}";
 
     services.xserver.displayManager.job.logToJournal = true;
 
diff --git a/nixos/modules/virtualisation/amazon-image.nix b/nixos/modules/virtualisation/amazon-image.nix
index aa44f2642697..f0d9b95f81f6 100644
--- a/nixos/modules/virtualisation/amazon-image.nix
+++ b/nixos/modules/virtualisation/amazon-image.nix
@@ -71,6 +71,7 @@ in
 
     systemd.services.fetch-ec2-metadata = {
       wantedBy = [ "multi-user.target" ];
+      wants = [ "network-online.target" ];
       after = ["network-online.target"];
       path = [ pkgs.curl ];
       script = builtins.readFile ./ec2-metadata-fetcher.sh;
diff --git a/nixos/modules/virtualisation/incus.nix b/nixos/modules/virtualisation/incus.nix
index ea4cb916aa08..bbe5b48b95bb 100644
--- a/nixos/modules/virtualisation/incus.nix
+++ b/nixos/modules/virtualisation/incus.nix
@@ -160,7 +160,10 @@ in
         "network-online.target"
       ];
 
-      path = lib.mkIf config.boot.zfs.enabled [ config.boot.zfs.package ];
+      path = lib.mkIf config.boot.zfs.enabled [
+        config.boot.zfs.package
+        "${config.boot.zfs.package}/lib/udev"
+      ];
 
       environment = {
         # Override Path to the LXC template configuration directory
diff --git a/nixos/modules/virtualisation/oci-containers.nix b/nixos/modules/virtualisation/oci-containers.nix
index a4a40346f093..07ed08ab2f84 100644
--- a/nixos/modules/virtualisation/oci-containers.nix
+++ b/nixos/modules/virtualisation/oci-containers.nix
@@ -267,6 +267,7 @@ let
     };
   in {
     wantedBy = [] ++ optional (container.autoStart) "multi-user.target";
+    wants = lib.optional (container.imageFile == null)  "network-online.target";
     after = lib.optionals (cfg.backend == "docker") [ "docker.service" "docker.socket" ]
             # if imageFile is not set, the service needs the network to download the image from the registry
             ++ lib.optionals (container.imageFile == null) [ "network-online.target" ]
diff --git a/nixos/modules/virtualisation/podman/default.nix b/nixos/modules/virtualisation/podman/default.nix
index ec0b713e58b3..47382f9beab0 100644
--- a/nixos/modules/virtualisation/podman/default.nix
+++ b/nixos/modules/virtualisation/podman/default.nix
@@ -150,26 +150,33 @@ in
 
   };
 
-  config = lib.mkIf cfg.enable
-    {
+  config =
+    let
+      networkConfig = ({
+        dns_enabled = false;
+        driver = "bridge";
+        id = "0000000000000000000000000000000000000000000000000000000000000000";
+        internal = false;
+        ipam_options = { driver = "host-local"; };
+        ipv6_enabled = false;
+        name = "podman";
+        network_interface = "podman0";
+        subnets = [{ gateway = "10.88.0.1"; subnet = "10.88.0.0/16"; }];
+      } // cfg.defaultNetwork.settings);
+      inherit (networkConfig) dns_enabled network_interface;
+    in
+    lib.mkIf cfg.enable {
       environment.systemPackages = [ cfg.package ]
         ++ lib.optional cfg.dockerCompat dockerCompat;
 
       # https://github.com/containers/podman/blob/097cc6eb6dd8e598c0e8676d21267b4edb11e144/docs/tutorials/basic_networking.md#default-network
       environment.etc."containers/networks/podman.json" = lib.mkIf (cfg.defaultNetwork.settings != { }) {
-        source = json.generate "podman.json" ({
-          dns_enabled = false;
-          driver = "bridge";
-          id = "0000000000000000000000000000000000000000000000000000000000000000";
-          internal = false;
-          ipam_options = { driver = "host-local"; };
-          ipv6_enabled = false;
-          name = "podman";
-          network_interface = "podman0";
-          subnets = [{ gateway = "10.88.0.1"; subnet = "10.88.0.0/16"; }];
-        } // cfg.defaultNetwork.settings);
+        source = json.generate "podman.json" networkConfig;
       };
 
+      # containers cannot reach aardvark-dns otherwise
+      networking.firewall.interfaces.${network_interface}.allowedUDPPorts = lib.mkIf dns_enabled [ 53 ];
+
       virtualisation.containers = {
         enable = true; # Enable common /etc/containers configuration
         containersConf.settings = {
diff --git a/nixos/tests/3proxy.nix b/nixos/tests/3proxy.nix
index 83d39de018a3..b80b4e166d48 100644
--- a/nixos/tests/3proxy.nix
+++ b/nixos/tests/3proxy.nix
@@ -134,6 +134,7 @@
   testScript = ''
     start_all()
 
+    peer0.systemctl("start network-online.target")
     peer0.wait_for_unit("network-online.target")
 
     peer1.wait_for_unit("3proxy.service")
diff --git a/nixos/tests/acme.nix b/nixos/tests/acme.nix
index e5f2d4c7934a..272782dc2f62 100644
--- a/nixos/tests/acme.nix
+++ b/nixos/tests/acme.nix
@@ -522,6 +522,7 @@ in {
           'curl --data \'{"host": "${caDomain}", "addresses": ["${nodes.acme.networking.primaryIPAddress}"]}\' http://${dnsServerIP nodes}:8055/add-a'
       )
 
+      acme.systemctl("start network-online.target")
       acme.wait_for_unit("network-online.target")
       acme.wait_for_unit("pebble.service")
 
diff --git a/nixos/tests/activation/etc-overlay-immutable.nix b/nixos/tests/activation/etc-overlay-immutable.nix
new file mode 100644
index 000000000000..70c3623b929c
--- /dev/null
+++ b/nixos/tests/activation/etc-overlay-immutable.nix
@@ -0,0 +1,30 @@
+{ lib, ... }: {
+
+  name = "activation-etc-overlay-immutable";
+
+  meta.maintainers = with lib.maintainers; [ nikstur ];
+
+  nodes.machine = { pkgs, ... }: {
+    system.etc.overlay.enable = true;
+    system.etc.overlay.mutable = false;
+
+    # Prerequisites
+    systemd.sysusers.enable = true;
+    users.mutableUsers = false;
+    boot.initrd.systemd.enable = true;
+    boot.kernelPackages = pkgs.linuxPackages_latest;
+
+    specialisation.new-generation.configuration = {
+      environment.etc."newgen".text = "newgen";
+    };
+  };
+
+  testScript = ''
+    machine.succeed("findmnt --kernel --type overlay /etc")
+    machine.fail("stat /etc/newgen")
+
+    machine.succeed("/run/current-system/specialisation/new-generation/bin/switch-to-configuration switch")
+
+    assert machine.succeed("cat /etc/newgen") == "newgen"
+  '';
+}
diff --git a/nixos/tests/activation/etc-overlay-mutable.nix b/nixos/tests/activation/etc-overlay-mutable.nix
new file mode 100644
index 000000000000..cfe7604fceb8
--- /dev/null
+++ b/nixos/tests/activation/etc-overlay-mutable.nix
@@ -0,0 +1,30 @@
+{ lib, ... }: {
+
+  name = "activation-etc-overlay-mutable";
+
+  meta.maintainers = with lib.maintainers; [ nikstur ];
+
+  nodes.machine = { pkgs, ... }: {
+    system.etc.overlay.enable = true;
+    system.etc.overlay.mutable = true;
+
+    # Prerequisites
+    boot.initrd.systemd.enable = true;
+    boot.kernelPackages = pkgs.linuxPackages_latest;
+
+    specialisation.new-generation.configuration = {
+      environment.etc."newgen".text = "newgen";
+    };
+  };
+
+  testScript = ''
+    machine.succeed("findmnt --kernel --type overlay /etc")
+    machine.fail("stat /etc/newgen")
+    machine.succeed("echo -n 'mutable' > /etc/mutable")
+
+    machine.succeed("/run/current-system/specialisation/new-generation/bin/switch-to-configuration switch")
+
+    assert machine.succeed("cat /etc/newgen") == "newgen"
+    assert machine.succeed("cat /etc/mutable") == "mutable"
+  '';
+}
diff --git a/nixos/tests/activation/perlless.nix b/nixos/tests/activation/perlless.nix
new file mode 100644
index 000000000000..4d784b4542f4
--- /dev/null
+++ b/nixos/tests/activation/perlless.nix
@@ -0,0 +1,24 @@
+{ lib, ... }:
+
+{
+
+  name = "activation-perlless";
+
+  meta.maintainers = with lib.maintainers; [ nikstur ];
+
+  nodes.machine = { pkgs, modulesPath, ... }: {
+    imports = [ "${modulesPath}/profiles/perlless.nix" ];
+
+    boot.kernelPackages = pkgs.linuxPackages_latest;
+
+    virtualisation.mountHostNixStore = false;
+    virtualisation.useNixStoreImage = true;
+  };
+
+  testScript = ''
+    perl_store_paths = machine.succeed("ls /nix/store | grep perl || true")
+    print(perl_store_paths)
+    assert len(perl_store_paths) == 0
+  '';
+
+}
diff --git a/nixos/tests/adguardhome.nix b/nixos/tests/adguardhome.nix
index a6f790b83f5f..80613ce82534 100644
--- a/nixos/tests/adguardhome.nix
+++ b/nixos/tests/adguardhome.nix
@@ -126,6 +126,7 @@
 
     with subtest("Testing successful DHCP start"):
         dhcpConf.wait_for_unit("adguardhome.service")
+        client.systemctl("start network-online.target")
         client.wait_for_unit("network-online.target")
         # Test IP assignment via DHCP
         dhcpConf.wait_until_succeeds("ping -c 5 10.0.10.100")
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index 25ee587e8f7a..66c29092cb6d 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -242,7 +242,7 @@ in {
   discourse = handleTest ./discourse.nix {};
   dnscrypt-proxy2 = handleTestOn ["x86_64-linux"] ./dnscrypt-proxy2.nix {};
   dnscrypt-wrapper = runTestOn ["x86_64-linux"] ./dnscrypt-wrapper;
-  dnsdist = handleTest ./dnsdist.nix {};
+  dnsdist = import ./dnsdist.nix { inherit pkgs runTest; };
   doas = handleTest ./doas.nix {};
   docker = handleTestOn ["aarch64-linux" "x86_64-linux"] ./docker.nix {};
   docker-rootless = handleTestOn ["aarch64-linux" "x86_64-linux"] ./docker-rootless.nix {};
@@ -285,6 +285,9 @@ in {
   activation = pkgs.callPackage ../modules/system/activation/test.nix { };
   activation-var = runTest ./activation/var.nix;
   activation-nix-channel = runTest ./activation/nix-channel.nix;
+  activation-etc-overlay-mutable = runTest ./activation/etc-overlay-mutable.nix;
+  activation-etc-overlay-immutable = runTest ./activation/etc-overlay-immutable.nix;
+  activation-perlless = runTest ./activation/perlless.nix;
   etcd = handleTestOn ["x86_64-linux"] ./etcd.nix {};
   etcd-cluster = handleTestOn ["x86_64-linux"] ./etcd-cluster.nix {};
   etebase-server = handleTest ./etebase-server.nix {};
@@ -387,6 +390,7 @@ in {
   installed-tests = pkgs.recurseIntoAttrs (handleTest ./installed-tests {});
   invidious = handleTest ./invidious.nix {};
   livebook-service = handleTest ./livebook-service.nix {};
+  pyload = handleTest ./pyload.nix {};
   oci-containers = handleTestOn ["aarch64-linux" "x86_64-linux"] ./oci-containers.nix {};
   odoo = handleTest ./odoo.nix {};
   odoo15 = handleTest ./odoo.nix { package = pkgs.odoo15; };
@@ -421,6 +425,7 @@ in {
   inspircd = handleTest ./inspircd.nix {};
   installer = handleTest ./installer.nix {};
   installer-systemd-stage-1 = handleTest ./installer-systemd-stage-1.nix {};
+  intune = handleTest ./intune.nix {};
   invoiceplane = handleTest ./invoiceplane.nix {};
   iodine = handleTest ./iodine.nix {};
   ipv6 = handleTest ./ipv6.nix {};
@@ -448,6 +453,7 @@ in {
   kerberos = handleTest ./kerberos/default.nix {};
   kernel-generic = handleTest ./kernel-generic.nix {};
   kernel-latest-ath-user-regd = handleTest ./kernel-latest-ath-user-regd.nix {};
+  kernel-rust = handleTestOn ["x86_64-linux"] ./kernel-rust.nix {};
   keter = handleTest ./keter.nix {};
   kexec = handleTest ./kexec.nix {};
   keycloak = discoverTests (import ./keycloak.nix);
@@ -569,8 +575,8 @@ in {
   netdata = handleTest ./netdata.nix {};
   networking.networkd = handleTest ./networking.nix { networkd = true; };
   networking.scripted = handleTest ./networking.nix { networkd = false; };
-  netbox_3_5 = handleTest ./web-apps/netbox.nix { netbox = pkgs.netbox_3_5; };
   netbox_3_6 = handleTest ./web-apps/netbox.nix { netbox = pkgs.netbox_3_6; };
+  netbox_3_7 = handleTest ./web-apps/netbox.nix { netbox = pkgs.netbox_3_7; };
   netbox-upgrade = handleTest ./web-apps/netbox-upgrade.nix {};
   # TODO: put in networking.nix after the test becomes more complete
   networkingProxy = handleTest ./networking-proxy.nix {};
@@ -587,6 +593,7 @@ in {
   nginx-globalredirect = handleTest ./nginx-globalredirect.nix {};
   nginx-http3 = handleTest ./nginx-http3.nix {};
   nginx-modsecurity = handleTest ./nginx-modsecurity.nix {};
+  nginx-moreheaders = handleTest ./nginx-moreheaders.nix {};
   nginx-njs = handleTest ./nginx-njs.nix {};
   nginx-proxyprotocol = handleTest ./nginx-proxyprotocol {};
   nginx-pubhtml = handleTest ./nginx-pubhtml.nix {};
@@ -621,6 +628,7 @@ in {
   ntfy-sh = handleTest ./ntfy-sh.nix {};
   ntfy-sh-migration = handleTest ./ntfy-sh-migration.nix {};
   ntpd-rs = handleTest ./ntpd-rs.nix {};
+  nvmetcfg = handleTest ./nvmetcfg.nix {};
   nzbget = handleTest ./nzbget.nix {};
   nzbhydra2 = handleTest ./nzbhydra2.nix {};
   oh-my-zsh = handleTest ./oh-my-zsh.nix {};
@@ -707,6 +715,7 @@ in {
   power-profiles-daemon = handleTest ./power-profiles-daemon.nix {};
   pppd = handleTest ./pppd.nix {};
   predictable-interface-names = handleTest ./predictable-interface-names.nix {};
+  pretalx = runTest ./web-apps/pretalx.nix;
   printing-socket = handleTest ./printing.nix { socket = true; };
   printing-service = handleTest ./printing.nix { socket = false; };
   privoxy = handleTest ./privoxy.nix {};
@@ -757,6 +766,7 @@ in {
   sabnzbd = handleTest ./sabnzbd.nix {};
   samba = handleTest ./samba.nix {};
   samba-wsdd = handleTest ./samba-wsdd.nix {};
+  sane = handleTest ./sane.nix {};
   sanoid = handleTest ./sanoid.nix {};
   scaphandre = handleTest ./scaphandre.nix {};
   schleuder = handleTest ./schleuder.nix {};
@@ -808,6 +818,7 @@ in {
   stunnel = handleTest ./stunnel.nix {};
   sudo = handleTest ./sudo.nix {};
   sudo-rs = handleTest ./sudo-rs.nix {};
+  suwayomi-server = handleTest ./suwayomi-server.nix {};
   swap-file-btrfs = handleTest ./swap-file-btrfs.nix {};
   swap-partition = handleTest ./swap-partition.nix {};
   swap-random-encryption = handleTest ./swap-random-encryption.nix {};
@@ -850,6 +861,7 @@ in {
   systemd-journal = handleTest ./systemd-journal.nix {};
   systemd-journal-gateway = handleTest ./systemd-journal-gateway.nix {};
   systemd-journal-upload = handleTest ./systemd-journal-upload.nix {};
+  systemd-lock-handler = runTestOn ["aarch64-linux" "x86_64-linux"] ./systemd-lock-handler.nix;
   systemd-machinectl = handleTest ./systemd-machinectl.nix {};
   systemd-networkd = handleTest ./systemd-networkd.nix {};
   systemd-networkd-dhcpserver = handleTest ./systemd-networkd-dhcpserver.nix {};
@@ -864,6 +876,8 @@ in {
   systemd-repart = handleTest ./systemd-repart.nix {};
   systemd-shutdown = handleTest ./systemd-shutdown.nix {};
   systemd-sysupdate = runTest ./systemd-sysupdate.nix;
+  systemd-sysusers-mutable = runTest ./systemd-sysusers-mutable.nix;
+  systemd-sysusers-immutable = runTest ./systemd-sysusers-immutable.nix;
   systemd-timesyncd = handleTest ./systemd-timesyncd.nix {};
   systemd-timesyncd-nscd-dnssec = handleTest ./systemd-timesyncd-nscd-dnssec.nix {};
   systemd-user-tmpfiles-rules = handleTest ./systemd-user-tmpfiles-rules.nix {};
@@ -903,6 +917,7 @@ in {
   trilium-server = handleTestOn ["x86_64-linux"] ./trilium-server.nix {};
   tsja = handleTest ./tsja.nix {};
   tsm-client-gui = handleTest ./tsm-client-gui.nix {};
+  ttyd = handleTest ./web-servers/ttyd.nix {};
   txredisapi = handleTest ./txredisapi.nix {};
   tuptime = handleTest ./tuptime.nix {};
   turbovnc-headless-server = handleTest ./turbovnc-headless-server.nix {};
@@ -942,6 +957,7 @@ in {
   vsftpd = handleTest ./vsftpd.nix {};
   warzone2100 = handleTest ./warzone2100.nix {};
   wasabibackend = handleTest ./wasabibackend.nix {};
+  watchdogd = handleTest ./watchdogd.nix {};
   webhook = runTest ./webhook.nix;
   wiki-js = handleTest ./wiki-js.nix {};
   wine = handleTest ./wine.nix {};
diff --git a/nixos/tests/appliance-repart-image.nix b/nixos/tests/appliance-repart-image.nix
index 3f256db84621..861369b9f3ca 100644
--- a/nixos/tests/appliance-repart-image.nix
+++ b/nixos/tests/appliance-repart-image.nix
@@ -8,9 +8,8 @@
 let
   rootPartitionLabel = "root";
 
-  bootLoaderConfigPath = "/loader/entries/nixos.conf";
-  kernelPath = "/EFI/nixos/kernel.efi";
-  initrdPath = "/EFI/nixos/initrd.efi";
+  imageId = "nixos-appliance";
+  imageVersion = "1-rc1";
 in
 {
   name = "appliance-gpt-image";
@@ -29,6 +28,9 @@ in
     # TODO(raitobezarius): revisit this when #244907 lands
     boot.loader.grub.enable = false;
 
+    system.image.id = imageId;
+    system.image.version = imageVersion;
+
     virtualisation.fileSystems = lib.mkForce {
       "/" = {
         device = "/dev/disk/by-partlabel/${rootPartitionLabel}";
@@ -38,6 +40,8 @@ in
 
     image.repart = {
       name = "appliance-gpt-image";
+      # OVMF does not work with the default repart sector size of 4096
+      sectorSize = 512;
       partitions = {
         "esp" = {
           contents =
@@ -48,19 +52,8 @@ in
               "/EFI/BOOT/BOOT${lib.toUpper efiArch}.EFI".source =
                 "${pkgs.systemd}/lib/systemd/boot/efi/systemd-boot${efiArch}.efi";
 
-              # TODO: create an abstraction for Boot Loader Specification (BLS) entries.
-              "${bootLoaderConfigPath}".source = pkgs.writeText "nixos.conf" ''
-                title NixOS
-                linux ${kernelPath}
-                initrd ${initrdPath}
-                options init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams}
-              '';
-
-              "${kernelPath}".source =
-                "${config.boot.kernelPackages.kernel}/${config.system.boot.loader.kernelFile}";
-
-              "${initrdPath}".source =
-                "${config.system.build.initialRamdisk}/${config.system.boot.loader.initrdFile}";
+              "/EFI/Linux/${config.system.boot.loader.ukiFile}".source =
+                "${config.system.build.uki}/${config.system.boot.loader.ukiFile}";
             };
           repartConfig = {
             Type = "esp";
@@ -99,7 +92,7 @@ in
       "-f",
       "qcow2",
       "-b",
-      "${nodes.machine.system.build.image}/image.raw",
+      "${nodes.machine.system.build.image}/${nodes.machine.image.repart.imageFile}",
       "-F",
       "raw",
       tmp_disk_image.name,
@@ -108,9 +101,11 @@ in
     # Set NIX_DISK_IMAGE so that the qemu script finds the right disk image.
     os.environ['NIX_DISK_IMAGE'] = tmp_disk_image.name
 
+    os_release = machine.succeed("cat /etc/os-release")
+    assert 'IMAGE_ID="${imageId}"' in os_release
+    assert 'IMAGE_VERSION="${imageVersion}"' in os_release
+
     bootctl_status = machine.succeed("bootctl status")
-    assert "${bootLoaderConfigPath}" in bootctl_status
-    assert "${kernelPath}" in bootctl_status
-    assert "${initrdPath}" in bootctl_status
+    assert "Boot Loader Specification Type #2 (.efi)" in bootctl_status
   '';
 }
diff --git a/nixos/tests/ayatana-indicators.nix b/nixos/tests/ayatana-indicators.nix
index bc7ff75f390f..c9cbbda4c601 100644
--- a/nixos/tests/ayatana-indicators.nix
+++ b/nixos/tests/ayatana-indicators.nix
@@ -4,7 +4,7 @@ in {
   name = "ayatana-indicators";
 
   meta = {
-    maintainers = with lib.maintainers; [ OPNA2608 ];
+    maintainers = lib.teams.lomiri.members;
   };
 
   nodes.machine = { config, ... }: {
@@ -27,17 +27,56 @@ in {
     services.ayatana-indicators = {
       enable = true;
       packages = with pkgs; [
+        ayatana-indicator-datetime
         ayatana-indicator-messages
-      ];
+      ] ++ (with pkgs.lomiri; [
+        lomiri-indicator-network
+        telephony-service
+      ]);
     };
 
-    # Services needed by some indicators
+    # Setup needed by some indicators
+
     services.accounts-daemon.enable = true; # messages
+
+    # Lomiri-ish setup for Lomiri indicators
+    # TODO move into a Lomiri module, once the package set is far enough for the DE to start
+
+    networking.networkmanager.enable = true; # lomiri-network-indicator
+    # TODO potentially urfkill for lomiri-network-indicator?
+
+    services.dbus.packages = with pkgs.lomiri; [
+      libusermetrics
+    ];
+
+    environment.systemPackages = with pkgs.lomiri; [
+      lomiri-schemas
+    ];
+
+    services.telepathy.enable = true;
+
+    users.users.usermetrics = {
+      group = "usermetrics";
+      home = "/var/lib/usermetrics";
+      createHome = true;
+      isSystemUser = true;
+    };
+
+    users.groups.usermetrics = { };
   };
 
   # TODO session indicator starts up in a semi-broken state, but works fine after a restart. maybe being started before graphical session is truly up & ready?
   testScript = { nodes, ... }: let
-    runCommandPerIndicatorService = command: lib.strings.concatMapStringsSep "\n" command nodes.machine.systemd.user.targets."ayatana-indicators".wants;
+    runCommandOverServiceList = list: command:
+      lib.strings.concatMapStringsSep "\n" command list;
+
+    runCommandOverAyatanaIndicators = runCommandOverServiceList
+      (builtins.filter
+        (service: !(lib.strings.hasPrefix "lomiri" service || lib.strings.hasPrefix "telephony-service" service))
+        nodes.machine.systemd.user.targets."ayatana-indicators".wants);
+
+    runCommandOverAllIndicators = runCommandOverServiceList
+      nodes.machine.systemd.user.targets."ayatana-indicators".wants;
   in ''
     start_all()
     machine.wait_for_x()
@@ -50,8 +89,8 @@ in {
     machine.sleep(10)
 
     # Now check if all indicators were brought up successfully, and kill them for later
-  '' + (runCommandPerIndicatorService (service: let serviceExec = builtins.replaceStrings [ "." ] [ "-" ] service; in ''
-    machine.succeed("pgrep -f ${serviceExec}")
+  '' + (runCommandOverAyatanaIndicators (service: let serviceExec = builtins.replaceStrings [ "." ] [ "-" ] service; in ''
+    machine.succeed("pgrep -u ${user} -f ${serviceExec}")
     machine.succeed("pkill -f ${serviceExec}")
   '')) + ''
 
@@ -65,7 +104,7 @@ in {
     machine.sleep(10)
 
     # Now check if all indicator services were brought up successfully
-  '' + runCommandPerIndicatorService (service: ''
+  '' + runCommandOverAllIndicators (service: ''
     machine.wait_for_unit("${service}", "${user}")
   '');
 })
diff --git a/nixos/tests/babeld.nix b/nixos/tests/babeld.nix
index d4df6f86d089..e497aa5b64e1 100644
--- a/nixos/tests/babeld.nix
+++ b/nixos/tests/babeld.nix
@@ -120,10 +120,6 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
     ''
       start_all()
 
-      client.wait_for_unit("network-online.target")
-      local_router.wait_for_unit("network-online.target")
-      remote_router.wait_for_unit("network-online.target")
-
       local_router.wait_for_unit("babeld.service")
       remote_router.wait_for_unit("babeld.service")
 
diff --git a/nixos/tests/bittorrent.nix b/nixos/tests/bittorrent.nix
index 4a73fea6a09d..473b05d4c98e 100644
--- a/nixos/tests/bittorrent.nix
+++ b/nixos/tests/bittorrent.nix
@@ -115,6 +115,7 @@ in
       start_all()
 
       # Wait for network and miniupnpd.
+      router.systemctl("start network-online.target")
       router.wait_for_unit("network-online.target")
       router.wait_for_unit("miniupnpd")
 
@@ -129,6 +130,7 @@ in
       tracker.succeed("chmod 644 /tmp/test.torrent")
 
       # Start the tracker.  !!! use a less crappy tracker
+      tracker.systemctl("start network-online.target")
       tracker.wait_for_unit("network-online.target")
       tracker.wait_for_unit("opentracker.service")
       tracker.wait_for_open_port(6969)
@@ -140,6 +142,7 @@ in
 
       # Now we should be able to download from the client behind the NAT.
       tracker.wait_for_unit("httpd")
+      client1.systemctl("start network-online.target")
       client1.wait_for_unit("network-online.target")
       client1.succeed("transmission-remote --add http://${externalTrackerAddress}/test.torrent >&2 &")
       client1.wait_for_file("${download-dir}/test.tar.bz2")
@@ -152,6 +155,7 @@ in
 
       # Now download from the second client.  This can only succeed if
       # the first client created a NAT hole in the router.
+      client2.systemctl("start network-online.target")
       client2.wait_for_unit("network-online.target")
       client2.succeed(
           "transmission-remote --add http://${externalTrackerAddress}/test.torrent --no-portmap --no-dht >&2 &"
diff --git a/nixos/tests/budgie.nix b/nixos/tests/budgie.nix
index 19d9b2bd0bed..fe0ed2cf80ed 100644
--- a/nixos/tests/budgie.nix
+++ b/nixos/tests/budgie.nix
@@ -33,14 +33,13 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
     ''
       with subtest("Wait for login"):
           # wait_for_x() checks graphical-session.target, which is expected to be
-          # inactive on Budgie before #228946 (i.e. systemd managed gnome-session) is
-          # done on upstream.
-          # https://github.com/BuddiesOfBudgie/budgie-desktop/blob/v10.7.2/src/session/budgie-desktop.in#L16
+          # inactive on Budgie before Budgie manages user session with systemd.
+          # https://github.com/BuddiesOfBudgie/budgie-desktop/blob/39e9f0895c978f76/src/session/budgie-desktop.in#L16
           #
           # Previously this was unconditionally touched by xsessionWrapper but was
           # changed in #233981 (we have Budgie:GNOME in XDG_CURRENT_DESKTOP).
           # machine.wait_for_x()
-          machine.wait_until_succeeds('journalctl -t gnome-session-binary --grep "Entering running state"')
+          machine.wait_until_succeeds('journalctl -t budgie-session-binary --grep "Entering running state"')
           machine.wait_for_file("${user.home}/.Xauthority")
           machine.succeed("xauth merge ${user.home}/.Xauthority")
 
diff --git a/nixos/tests/buildbot.nix b/nixos/tests/buildbot.nix
index 2f6926313b7c..149d73bba09c 100644
--- a/nixos/tests/buildbot.nix
+++ b/nixos/tests/buildbot.nix
@@ -71,6 +71,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
     gitrepo.wait_for_unit("multi-user.target")
 
     with subtest("Repo is accessible via git daemon"):
+        bbmaster.systemctl("start network-online.target")
         bbmaster.wait_for_unit("network-online.target")
         bbmaster.succeed("rm -rfv /tmp/fakerepo")
         bbmaster.succeed("git clone git://gitrepo/fakerepo /tmp/fakerepo")
@@ -78,6 +79,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
     with subtest("Master service and worker successfully connect"):
         bbmaster.wait_for_unit("buildbot-master.service")
         bbmaster.wait_until_succeeds("curl --fail -s --head http://bbmaster:8010")
+        bbworker.systemctl("start network-online.target")
         bbworker.wait_for_unit("network-online.target")
         bbworker.succeed("nc -z bbmaster 8010")
         bbworker.succeed("nc -z bbmaster 9989")
diff --git a/nixos/tests/ceph-multi-node.nix b/nixos/tests/ceph-multi-node.nix
index 556546beee76..b1352a4bc8f4 100644
--- a/nixos/tests/ceph-multi-node.nix
+++ b/nixos/tests/ceph-multi-node.nix
@@ -185,6 +185,14 @@ let
     monA.succeed(
         "ceph osd pool create multi-node-test 32 32",
         "ceph osd pool ls | grep 'multi-node-test'",
+
+        # We need to enable an application on the pool, otherwise it will
+        # stay unhealthy in state POOL_APP_NOT_ENABLED.
+        # Creating a CephFS would do this automatically, but we haven't done that here.
+        # See: https://docs.ceph.com/en/reef/rados/operations/pools/#associating-a-pool-with-an-application
+        # We use the custom application name "nixos-test" for this.
+        "ceph osd pool application enable multi-node-test nixos-test",
+
         "ceph osd pool rename multi-node-test multi-node-other-test",
         "ceph osd pool ls | grep 'multi-node-other-test'",
     )
diff --git a/nixos/tests/ceph-single-node-bluestore.nix b/nixos/tests/ceph-single-node-bluestore.nix
index acaae4cf300e..8bd1a78244a2 100644
--- a/nixos/tests/ceph-single-node-bluestore.nix
+++ b/nixos/tests/ceph-single-node-bluestore.nix
@@ -145,6 +145,14 @@ let
     monA.succeed(
         "ceph osd pool create single-node-test 32 32",
         "ceph osd pool ls | grep 'single-node-test'",
+
+        # We need to enable an application on the pool, otherwise it will
+        # stay unhealthy in state POOL_APP_NOT_ENABLED.
+        # Creating a CephFS would do this automatically, but we haven't done that here.
+        # See: https://docs.ceph.com/en/reef/rados/operations/pools/#associating-a-pool-with-an-application
+        # We use the custom application name "nixos-test" for this.
+        "ceph osd pool application enable single-node-test nixos-test",
+
         "ceph osd pool rename single-node-test single-node-other-test",
         "ceph osd pool ls | grep 'single-node-other-test'",
     )
diff --git a/nixos/tests/ceph-single-node.nix b/nixos/tests/ceph-single-node.nix
index a3a4072365af..c34ec511dc6d 100644
--- a/nixos/tests/ceph-single-node.nix
+++ b/nixos/tests/ceph-single-node.nix
@@ -145,6 +145,14 @@ let
     monA.succeed(
         "ceph osd pool create single-node-test 32 32",
         "ceph osd pool ls | grep 'single-node-test'",
+
+        # We need to enable an application on the pool, otherwise it will
+        # stay unhealthy in state POOL_APP_NOT_ENABLED.
+        # Creating a CephFS would do this automatically, but we haven't done that here.
+        # See: https://docs.ceph.com/en/reef/rados/operations/pools/#associating-a-pool-with-an-application
+        # We use the custom application name "nixos-test" for this.
+        "ceph osd pool application enable single-node-test nixos-test",
+
         "ceph osd pool rename single-node-test single-node-other-test",
         "ceph osd pool ls | grep 'single-node-other-test'",
     )
@@ -182,19 +190,16 @@ let
     monA.wait_until_succeeds("ceph -s | grep 'mgr: ${cfg.monA.name}(active,'")
     monA.wait_until_succeeds("ceph -s | grep 'HEALTH_OK'")
 
-    # This test has been commented out due to the upstream issue with pyo3
-    # that has broken this dashboard
-    # Reference: https://www.spinics.net/lists/ceph-users/msg77812.html
     # Enable the dashboard and recheck health
-    # monA.succeed(
-    #     "ceph mgr module enable dashboard",
-    #     "ceph config set mgr mgr/dashboard/ssl false",
-    #     # default is 8080 but it's better to be explicit
-    #     "ceph config set mgr mgr/dashboard/server_port 8080",
-    # )
-    # monA.wait_for_open_port(8080)
-    # monA.wait_until_succeeds("curl -q --fail http://localhost:8080")
-    # monA.wait_until_succeeds("ceph -s | grep 'HEALTH_OK'")
+    monA.succeed(
+        "ceph mgr module enable dashboard",
+        "ceph config set mgr mgr/dashboard/ssl false",
+        # default is 8080 but it's better to be explicit
+        "ceph config set mgr mgr/dashboard/server_port 8080",
+    )
+    monA.wait_for_open_port(8080)
+    monA.wait_until_succeeds("curl -q --fail http://localhost:8080")
+    monA.wait_until_succeeds("ceph -s | grep 'HEALTH_OK'")
   '';
 in {
   name = "basic-single-node-ceph-cluster";
diff --git a/nixos/tests/cinnamon-wayland.nix b/nixos/tests/cinnamon-wayland.nix
index 824a606004cc..1629ead16f41 100644
--- a/nixos/tests/cinnamon-wayland.nix
+++ b/nixos/tests/cinnamon-wayland.nix
@@ -64,7 +64,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
           # This is not supported at the moment.
           # https://trello.com/b/HHs01Pab/cinnamon-wayland
           machine.execute("${su "cinnamon-screensaver-command -l >&2 &"}")
-          machine.wait_until_succeeds("journalctl -b --grep 'Cinnamon Screensaver is unavailable on Wayland'")
+          machine.wait_until_succeeds("journalctl -b --grep 'cinnamon-screensaver is disabled in wayland sessions'")
 
       with subtest("Open GNOME Terminal"):
           machine.succeed("${su "dbus-launch gnome-terminal"}")
diff --git a/nixos/tests/cloud-init.nix b/nixos/tests/cloud-init.nix
index 786e01add7d4..0b4c5a55c80a 100644
--- a/nixos/tests/cloud-init.nix
+++ b/nixos/tests/cloud-init.nix
@@ -73,6 +73,7 @@ in makeTest {
   };
   testScript = ''
     # To wait until cloud-init terminates its run
+    unnamed.wait_for_unit("cloud-init-local.service")
     unnamed.wait_for_unit("cloud-final.service")
 
     unnamed.succeed("cat /tmp/cloudinit-write-file | grep -q 'cloudinit'")
diff --git a/nixos/tests/corerad.nix b/nixos/tests/corerad.nix
index b6f5d7fc6f75..dd2bec794a1a 100644
--- a/nixos/tests/corerad.nix
+++ b/nixos/tests/corerad.nix
@@ -56,6 +56,8 @@ import ./make-test-python.nix (
 
       with subtest("Wait for CoreRAD and network ready"):
           # Ensure networking is online and CoreRAD is ready.
+          router.systemctl("start network-online.target")
+          client.systemctl("start network-online.target")
           router.wait_for_unit("network-online.target")
           client.wait_for_unit("network-online.target")
           router.wait_for_unit("corerad.service")
diff --git a/nixos/tests/curl-impersonate.nix b/nixos/tests/curl-impersonate.nix
index 7954e9e5584c..33b10da1dfd0 100644
--- a/nixos/tests/curl-impersonate.nix
+++ b/nixos/tests/curl-impersonate.nix
@@ -144,6 +144,8 @@ in {
     start_all()
 
     with subtest("Wait for network"):
+        web.systemctl("start network-online.target")
+        curl.systemctl("start network-online.target")
         web.wait_for_unit("network-online.target")
         curl.wait_for_unit("network-online.target")
 
diff --git a/nixos/tests/dnsdist.nix b/nixos/tests/dnsdist.nix
index e72fa05ff282..9921be419a75 100644
--- a/nixos/tests/dnsdist.nix
+++ b/nixos/tests/dnsdist.nix
@@ -1,48 +1,113 @@
-import ./make-test-python.nix (
-  { pkgs, ... }: {
-    name = "dnsdist";
-    meta = with pkgs.lib; {
-      maintainers = with maintainers; [ jojosch ];
-    };
+{ pkgs, runTest }:
 
-    nodes.machine = { pkgs, lib, ... }: {
-      services.bind = {
-        enable = true;
-        extraOptions = "empty-zones-enable no;";
-        zones = lib.singleton {
-          name = ".";
-          master = true;
-          file = pkgs.writeText "root.zone" ''
-            $TTL 3600
-            . IN SOA ns.example.org. admin.example.org. ( 1 3h 1h 1w 1d )
-            . IN NS ns.example.org.
-
-            ns.example.org. IN A    192.168.0.1
-            ns.example.org. IN AAAA abcd::1
-
-            1.0.168.192.in-addr.arpa IN PTR ns.example.org.
-          '';
-        };
-      };
-      services.dnsdist = {
-        enable = true;
-        listenPort = 5353;
-        extraConfig = ''
-          newServer({address="127.0.0.1:53", name="local-bind"})
+let
+
+  inherit (pkgs) lib;
+
+  baseConfig = {
+    networking.nameservers = [ "::1" ];
+    services.bind = {
+      enable = true;
+      extraOptions = "empty-zones-enable no;";
+      zones = lib.singleton {
+        name = ".";
+        master = true;
+        file = pkgs.writeText "root.zone" ''
+          $TTL 3600
+          . IN SOA ns.example.org. admin.example.org. ( 1 3h 1h 1w 1d )
+          . IN NS ns.example.org.
+
+          ns.example.org. IN A    192.168.0.1
+          ns.example.org. IN AAAA abcd::1
+
+          1.0.168.192.in-addr.arpa IN PTR ns.example.org.
         '';
       };
-
-      environment.systemPackages = with pkgs; [ dig ];
     };
+    services.dnsdist = {
+      enable = true;
+      listenPort = 5353;
+      extraConfig = ''
+        newServer({address="127.0.0.1:53", name="local-bind"})
+      '';
+    };
+  };
+
+in
+
+{
+
+  base = runTest {
+    name = "dnsdist-base";
+    meta.maintainers = with lib.maintainers; [ jojosch ];
+
+    nodes.machine = baseConfig;
 
     testScript = ''
       machine.wait_for_unit("bind.service")
       machine.wait_for_open_port(53)
-      machine.succeed("dig @127.0.0.1 +short -x 192.168.0.1 | grep -qF ns.example.org")
+      machine.succeed("host -p 53 192.168.0.1 | grep -qF ns.example.org")
 
       machine.wait_for_unit("dnsdist.service")
       machine.wait_for_open_port(5353)
-      machine.succeed("dig @127.0.0.1 -p 5353 +short -x 192.168.0.1 | grep -qF ns.example.org")
+      machine.succeed("host -p 5353 192.168.0.1 | grep -qF ns.example.org")
+    '';
+  };
+
+  dnscrypt = runTest {
+    name = "dnsdist-dnscrypt";
+    meta.maintainers = with lib.maintainers; [ rnhmjoj ];
+
+    nodes.server = lib.mkMerge [
+      baseConfig
+      {
+        networking.firewall.allowedTCPPorts = [ 443 ];
+        networking.firewall.allowedUDPPorts = [ 443 ];
+        services.dnsdist.dnscrypt.enable = true;
+        services.dnsdist.dnscrypt.providerKey = "${./dnscrypt-wrapper/secret.key}";
+      }
+    ];
+
+    nodes.client = {
+      services.dnscrypt-proxy2.enable = true;
+      services.dnscrypt-proxy2.upstreamDefaults = false;
+      services.dnscrypt-proxy2.settings =
+        { server_names = [ "server" ];
+          listen_addresses = [ "[::1]:53" ];
+          cache = false;
+          # Computed using https://dnscrypt.info/stamps/
+          static.server.stamp =
+            "sdns://AQAAAAAAAAAADzE5Mi4xNjguMS4yOjQ0MyAUQdg6_RIIpK6pHkINhrv7nxwIG5c7b_m5NJVT3A1AXRYyLmRuc2NyeXB0LWNlcnQuc2VydmVy";
+        };
+      networking.nameservers = [ "::1" ];
+    };
+
+    testScript = ''
+      with subtest("The DNSCrypt server is accepting connections"):
+          server.wait_for_unit("bind.service")
+          server.wait_for_unit("dnsdist.service")
+          server.wait_for_open_port(443)
+          almost_expiration = server.succeed("date --date '14min'").strip()
+
+      with subtest("The DNSCrypt client can connect to the server"):
+          client.wait_until_succeeds("journalctl -u dnscrypt-proxy2 --grep '\[server\] OK'")
+
+      with subtest("DNS queries over UDP are working"):
+          client.wait_for_open_port(53)
+          client.succeed("host -U 192.168.0.1 | grep -qF ns.example.org")
+
+      with subtest("DNS queries over TCP are working"):
+          client.wait_for_open_port(53)
+          client.succeed("host -T 192.168.0.1 | grep -qF ns.example.org")
+
+      with subtest("The server rotates the ephemeral keys"):
+          server.succeed(f"date -s '{almost_expiration}'")
+          client.succeed(f"date -s '{almost_expiration}'")
+          server.wait_until_succeeds("journalctl -u dnsdist --grep 'rotated certificate'")
+
+      with subtest("The client can still connect to the server"):
+          client.wait_until_succeeds("host -T 192.168.0.1")
+          client.wait_until_succeeds("host -U 192.168.0.1")
     '';
-  }
-)
+  };
+}
diff --git a/nixos/tests/dolibarr.nix b/nixos/tests/dolibarr.nix
index 4fdee9e9698f..95557d317fab 100644
--- a/nixos/tests/dolibarr.nix
+++ b/nixos/tests/dolibarr.nix
@@ -1,6 +1,6 @@
 import ./make-test-python.nix ({ pkgs, lib, ... }: {
   name = "dolibarr";
-  meta.maintainers = [ lib.maintainers.raitobezarius ];
+  meta.maintainers = [ ];
 
   nodes.machine =
     { ... }:
diff --git a/nixos/tests/elk.nix b/nixos/tests/elk.nix
index 900ea6320100..b5a8cb532ae0 100644
--- a/nixos/tests/elk.nix
+++ b/nixos/tests/elk.nix
@@ -1,6 +1,6 @@
 # To run the test on the unfree ELK use the following command:
 # cd path/to/nixpkgs
-# NIXPKGS_ALLOW_UNFREE=1 nix-build -A nixosTests.elk.unfree.ELK-6
+# NIXPKGS_ALLOW_UNFREE=1 nix-build -A nixosTests.elk.unfree.ELK-7
 
 { system ? builtins.currentSystem,
   config ? {},
@@ -120,7 +120,7 @@ let
               };
 
               elasticsearch-curator = {
-                enable = true;
+                enable = elk ? elasticsearch-curator;
                 actionYAML = ''
                 ---
                 actions:
@@ -246,7 +246,7 @@ let
           one.wait_until_succeeds(
               expect_hits("SuperdupercalifragilisticexpialidociousIndeed")
           )
-    '' + ''
+    '' + lib.optionalString (elk ? elasticsearch-curator) ''
       with subtest("Elasticsearch-curator works"):
           one.systemctl("stop logstash")
           one.systemctl("start elasticsearch-curator")
diff --git a/nixos/tests/ferm.nix b/nixos/tests/ferm.nix
index be43877445eb..87c67ac62347 100644
--- a/nixos/tests/ferm.nix
+++ b/nixos/tests/ferm.nix
@@ -55,6 +55,8 @@ import ./make-test-python.nix ({ pkgs, ...} : {
     ''
       start_all()
 
+      client.systemctl("start network-online.target")
+      server.systemctl("start network-online.target")
       client.wait_for_unit("network-online.target")
       server.wait_for_unit("network-online.target")
       server.wait_for_unit("ferm.service")
diff --git a/nixos/tests/gitdaemon.nix b/nixos/tests/gitdaemon.nix
index bb07b6e97b7f..052fa902b450 100644
--- a/nixos/tests/gitdaemon.nix
+++ b/nixos/tests/gitdaemon.nix
@@ -59,6 +59,9 @@ in {
     with subtest("git daemon starts"):
         server.wait_for_unit("git-daemon.service")
 
+
+    server.systemctl("start network-online.target")
+    client.systemctl("start network-online.target")
     server.wait_for_unit("network-online.target")
     client.wait_for_unit("network-online.target")
 
diff --git a/nixos/tests/gnome-extensions.nix b/nixos/tests/gnome-extensions.nix
index 2faff9a4a80d..a9bb5e3766b7 100644
--- a/nixos/tests/gnome-extensions.nix
+++ b/nixos/tests/gnome-extensions.nix
@@ -86,7 +86,7 @@ import ./make-test-python.nix (
       "ddterm"
       "emoji-selector"
       "gsconnect"
-      "system-monitor"
+      "system-monitor-next"
       "desktop-icons-ng-ding"
       "workspace-indicator"
       "vitals"
diff --git a/nixos/tests/guix/publish.nix b/nixos/tests/guix/publish.nix
index a15e00b0fa98..eb56fc97478c 100644
--- a/nixos/tests/guix/publish.nix
+++ b/nixos/tests/guix/publish.nix
@@ -80,6 +80,7 @@ in {
 
     # Now it's the client turn to make use of it.
     substitute_server = "http://server.local:${toString publishPort}"
+    client.systemctl("start network-online.target")
     client.wait_for_unit("network-online.target")
     response = client.succeed(f"curl {substitute_server}")
     assert "Guix Substitute Server" in response
diff --git a/nixos/tests/haproxy.nix b/nixos/tests/haproxy.nix
index 555474d7f299..173093873757 100644
--- a/nixos/tests/haproxy.nix
+++ b/nixos/tests/haproxy.nix
@@ -1,22 +1,42 @@
-import ./make-test-python.nix ({ pkgs, ...}: {
+import ./make-test-python.nix ({ lib, pkgs, ...}: {
   name = "haproxy";
   nodes = {
-    machine = { ... }: {
-      services.haproxy = {
+    server = { ... }: {
+     services.haproxy = {
         enable = true;
         config = ''
+          global
+            limited-quic
+
           defaults
+            mode http
             timeout connect 10s
+            timeout client 10s
+            timeout server 10s
+
+            log /dev/log local0 debug err
+            option logasap
+            option httplog
+            option httpslog
 
           backend http_server
-            mode http
-            server httpd [::1]:8000
+            server httpd [::1]:8000 alpn http/1.1
 
           frontend http
-            bind *:80
-            mode http
+            bind :80
+            bind :443 ssl strict-sni crt /etc/ssl/fullchain.pem alpn h2,http/1.1
+            bind quic4@:443 ssl strict-sni crt /etc/ssl/fullchain.pem alpn h3 allow-0rtt
+
+            http-after-response add-header alt-svc 'h3=":443"; ma=60' if { ssl_fc }
+
             http-request use-service prometheus-exporter if { path /metrics }
             use_backend http_server
+
+          frontend http-cert-auth
+            bind :8443 ssl strict-sni crt /etc/ssl/fullchain.pem verify required ca-file /etc/ssl/cacert.crt
+            bind quic4@:8443 ssl strict-sni crt /etc/ssl/fullchain.pem verify required ca-file /etc/ssl/cacert.crt alpn h3
+
+            use_backend http_server
         '';
       };
       services.httpd = {
@@ -30,24 +50,75 @@ import ./make-test-python.nix ({ pkgs, ...}: {
           }];
         };
       };
+      networking.firewall.allowedTCPPorts = [ 80 443 8443 ];
+      networking.firewall.allowedUDPPorts = [ 443 8443 ];
+     };
+    client = { ... }: {
+      environment.systemPackages = [ pkgs.curlHTTP3 ];
     };
   };
   testScript = ''
+    # Helpers
+    def cmd(command):
+      print(f"+{command}")
+      r = os.system(command)
+      if r != 0:
+        raise Exception(f"Command {command} failed with exit code {r}")
+
+    def openssl(command):
+      cmd(f"${pkgs.openssl}/bin/openssl {command}")
+
+    # Generate CA.
+    openssl("req -new -newkey rsa:4096 -nodes -x509 -days 7 -subj '/C=ZZ/ST=Cloud/L=Unspecified/O=NixOS/OU=Tests/CN=CA Certificate' -keyout cacert.key -out cacert.crt")
+
+    # Generate and sign Server.
+    openssl("req -newkey rsa:4096 -nodes -subj '/CN=server/OU=Tests/O=NixOS' -keyout server.key -out server.csr")
+    openssl("x509 -req -in server.csr -out server.crt -CA cacert.crt -CAkey cacert.key -days 7")
+    cmd("cat server.crt server.key > fullchain.pem")
+
+    # Generate and sign Client.
+    openssl("req -newkey rsa:4096 -nodes -subj '/CN=client/OU=Tests/O=NixOS' -keyout client.key -out client.csr")
+    openssl("x509 -req -in client.csr -out client.crt -CA cacert.crt -CAkey cacert.key -days 7")
+    cmd("cat client.crt client.key > client.pem")
+
+    # Start the actual test.
     start_all()
-    machine.wait_for_unit("multi-user.target")
-    machine.wait_for_unit("haproxy.service")
-    machine.wait_for_unit("httpd.service")
-    assert "We are all good!" in machine.succeed("curl -fk http://localhost:80/index.txt")
-    assert "haproxy_process_pool_allocated_bytes" in machine.succeed(
-        "curl -fk http://localhost:80/metrics"
-    )
+    server.copy_from_host("fullchain.pem", "/etc/ssl/fullchain.pem")
+    server.copy_from_host("cacert.crt", "/etc/ssl/cacert.crt")
+    server.succeed("chmod 0644 /etc/ssl/fullchain.pem /etc/ssl/cacert.crt")
+
+    client.copy_from_host("cacert.crt", "/etc/ssl/cacert.crt")
+    client.copy_from_host("client.pem", "/root/client.pem")
+
+    server.wait_for_unit("multi-user.target")
+    server.wait_for_unit("haproxy.service")
+    server.wait_for_unit("httpd.service")
+
+    assert "We are all good!" in client.succeed("curl -f http://server/index.txt")
+    assert "haproxy_process_pool_allocated_bytes" in client.succeed("curl -f http://server/metrics")
+
+    with subtest("https"):
+      assert "We are all good!" in client.succeed("curl -f --cacert /etc/ssl/cacert.crt https://server/index.txt")
+
+    with subtest("https-cert-auth"):
+      # Client must succeed in authenticating with the right certificate.
+      assert "We are all good!" in client.succeed("curl -f --cacert /etc/ssl/cacert.crt --cert-type pem --cert /root/client.pem https://server:8443/index.txt")
+      # Client must fail without certificate.
+      client.fail("curl --cacert /etc/ssl/cacert.crt https://server:8443/index.txt")
+
+    with subtest("h3"):
+      assert "We are all good!" in client.succeed("curl -f --http3-only --cacert /etc/ssl/cacert.crt https://server/index.txt")
+
+    with subtest("h3-cert-auth"):
+      # Client must succeed in authenticating with the right certificate.
+      assert "We are all good!" in client.succeed("curl -f --http3-only --cacert /etc/ssl/cacert.crt --cert-type pem --cert /root/client.pem https://server:8443/index.txt")
+      # Client must fail without certificate.
+      client.fail("curl -f --http3-only --cacert /etc/ssl/cacert.crt https://server:8443/index.txt")
 
     with subtest("reload"):
-        machine.succeed("systemctl reload haproxy")
+        server.succeed("systemctl reload haproxy")
         # wait some time to ensure the following request hits the reloaded haproxy
-        machine.sleep(5)
-        assert "We are all good!" in machine.succeed(
-            "curl -fk http://localhost:80/index.txt"
-        )
+        server.sleep(5)
+        assert "We are all good!" in client.succeed("curl -f http://server/index.txt")
   '';
 })
diff --git a/nixos/tests/hostname.nix b/nixos/tests/hostname.nix
index 6122e2ffeb83..dffec956bc0b 100644
--- a/nixos/tests/hostname.nix
+++ b/nixos/tests/hostname.nix
@@ -34,6 +34,7 @@ let
 
         machine = ${hostName}
 
+        machine.systemctl("start network-online.target")
         machine.wait_for_unit("network-online.target")
 
         # Test if NixOS computes the correct FQDN (either a FQDN or an error/null):
diff --git a/nixos/tests/incus/container.nix b/nixos/tests/incus/container.nix
index 2fa1709c7484..0e65cc1e1529 100644
--- a/nixos/tests/incus/container.nix
+++ b/nixos/tests/incus/container.nix
@@ -31,7 +31,7 @@ in
 
   testScript = ''
     def instance_is_up(_) -> bool:
-        status, _ = machine.execute("incus exec container --disable-stdin --force-interactive /run/current-system/sw/bin/true")
+        status, _ = machine.execute("incus exec container --disable-stdin --force-interactive /run/current-system/sw/bin/systemctl -- is-system-running")
         return status == 0
 
     def set_container(config):
@@ -81,11 +81,7 @@ in
         assert meminfo_bytes == "125000 kB", f"Wrong amount of memory reported from /proc/meminfo, want: '125000 kB', got: '{meminfo_bytes}'"
 
     with subtest("lxc-container generator configures plain container"):
-        machine.execute("incus delete --force container")
-        machine.succeed("incus launch nixos container")
-        with machine.nested("Waiting for instance to start and be usable"):
-          retry(instance_is_up)
-
+        # reuse the existing container to save some time
         machine.succeed("incus exec container test -- -e /run/systemd/system/service.d/zzz-lxc-service.conf")
 
     with subtest("lxc-container generator configures nested container"):
@@ -103,8 +99,6 @@ in
         machine.succeed("incus launch nixos container --config security.privileged=true")
         with machine.nested("Waiting for instance to start and be usable"):
           retry(instance_is_up)
-        # give generator an extra second to run
-        machine.sleep(1)
 
         machine.succeed("incus exec container test -- -e /run/systemd/system/service.d/zzz-lxc-service.conf")
   '';
diff --git a/nixos/tests/incus/lxd-to-incus.nix b/nixos/tests/incus/lxd-to-incus.nix
index 67245b54e752..42a47a6a07af 100644
--- a/nixos/tests/incus/lxd-to-incus.nix
+++ b/nixos/tests/incus/lxd-to-incus.nix
@@ -77,11 +77,11 @@ import ../make-test-python.nix (
         return ("inactive" in output)
 
       def lxd_instance_is_up(_) -> bool:
-          status, _ = machine.execute("lxc exec container --disable-stdin --force-interactive /run/current-system/sw/bin/true")
+          status, _ = machine.execute("lxc exec container --disable-stdin --force-interactive /run/current-system/sw/bin/systemctl -- is-system-running")
           return status == 0
 
       def incus_instance_is_up(_) -> bool:
-          status, _ = machine.execute("incus exec container --disable-stdin --force-interactive /run/current-system/sw/bin/true")
+          status, _ = machine.execute("incus exec container --disable-stdin --force-interactive /run/current-system/sw/bin/systemctl -- is-system-running")
           return status == 0
 
       with machine.nested("initialize lxd and resources"):
diff --git a/nixos/tests/incus/virtual-machine.nix b/nixos/tests/incus/virtual-machine.nix
index 343a25ca7297..c76e4f448f2f 100644
--- a/nixos/tests/incus/virtual-machine.nix
+++ b/nixos/tests/incus/virtual-machine.nix
@@ -36,7 +36,7 @@ in
 
   testScript = ''
     def instance_is_up(_) -> bool:
-      status, _ = machine.execute("incus exec ${instance-name} --disable-stdin --force-interactive /run/current-system/sw/bin/true")
+      status, _ = machine.execute("incus exec ${instance-name} --disable-stdin --force-interactive /run/current-system/sw/bin/systemctl -- is-system-running")
       return status == 0
 
     machine.wait_for_unit("incus.service")
diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix
index 21d5e1470d8e..7576fae41f83 100644
--- a/nixos/tests/installer.nix
+++ b/nixos/tests/installer.nix
@@ -158,7 +158,9 @@ let
       start_all()
       ${optionalString clevisTest ''
       tang.wait_for_unit("sockets.target")
+      tang.systemctl("start network-online.target")
       tang.wait_for_unit("network-online.target")
+      machine.systemctl("start network-online.target")
       machine.wait_for_unit("network-online.target")
       ''}
       machine.wait_for_unit("multi-user.target")
@@ -187,6 +189,7 @@ let
 
       ${optionalString clevisTest ''
         with subtest("Create the Clevis secret with Tang"):
+             machine.systemctl("start network-online.target")
              machine.wait_for_unit("network-online.target")
              machine.succeed('echo -n password | clevis encrypt sss \'{"t": 2, "pins": {"tpm2": {}, "tang": {"url": "http://192.168.1.2"}}}\' -y > /mnt/etc/nixos/clevis-secret.jwe')''}
 
diff --git a/nixos/tests/intune.nix b/nixos/tests/intune.nix
new file mode 100644
index 000000000000..41bf638d7661
--- /dev/null
+++ b/nixos/tests/intune.nix
@@ -0,0 +1,56 @@
+import ./make-test-python.nix ({ pkgs, ...} : {
+  name = "intune";
+  meta = {
+    maintainers = with pkgs.lib.maintainers; [ rhysmdnz ];
+  };
+  enableOCR = true;
+
+  nodes.machine =
+    { nodes, ... }:
+    let user = nodes.machine.users.users.alice;
+    in {
+      services.intune.enable=true;
+      services.gnome.gnome-keyring.enable = true;
+      imports = [ ./common/user-account.nix ./common/x11.nix ];
+      test-support.displayManager.auto.user = user.name;
+      environment = {
+        variables.DBUS_SESSION_BUS_ADDRESS = "unix:path=/run/user/${builtins.toString user.uid}/bus";
+      };
+    };
+  nodes.pam =
+    { nodes, ... }:
+    let user = nodes.machine.users.users.alice;
+    in {
+      services.intune.enable=true;
+      imports = [ ./common/user-account.nix ];
+    };
+
+  testScript = ''
+    start_all()
+
+    # Check System Daemons successfully start
+    machine.succeed("systemctl start microsoft-identity-device-broker.service")
+    machine.succeed("systemctl start intune-daemon.service")
+
+    # Check User Daemons and intune-portal execurtable works
+    # Going any further than starting it would require internet access and a microsoft account
+    machine.wait_for_x()
+    # TODO: This needs an unlocked user keychain before it will work
+    #machine.succeed("su - alice -c 'systemctl start --user microsoft-identity-broker.service'")
+    machine.succeed("su - alice -c 'systemctl start --user intune-agent.service'")
+    machine.succeed("su - alice -c intune-portal >&2 &")
+    machine.wait_for_text("Intune Agent")
+
+    # Check logging in creates password file
+    def login_as_alice():
+        pam.wait_until_tty_matches("1", "login: ")
+        pam.send_chars("alice\n")
+        pam.wait_until_tty_matches("1", "Password: ")
+        pam.send_chars("foobar\n")
+        pam.wait_until_tty_matches("1", "alice\@pam")
+
+    pam.wait_for_unit("multi-user.target")
+    login_as_alice()
+    pam.wait_for_file("/run/intune/1000/pwquality")
+  '';
+})
diff --git a/nixos/tests/kanidm.nix b/nixos/tests/kanidm.nix
index 3f5bca397740..fa24d4a8a5e1 100644
--- a/nixos/tests/kanidm.nix
+++ b/nixos/tests/kanidm.nix
@@ -67,6 +67,7 @@ import ./make-test-python.nix ({ pkgs, ... }:
       ''
         start_all()
         server.wait_for_unit("kanidm.service")
+        client.systemctl("start network-online.target")
         client.wait_for_unit("network-online.target")
 
         with subtest("Test HTTP interface"):
diff --git a/nixos/tests/keepalived.nix b/nixos/tests/keepalived.nix
index d0bf9d465200..ce291514591f 100644
--- a/nixos/tests/keepalived.nix
+++ b/nixos/tests/keepalived.nix
@@ -1,5 +1,6 @@
-import ./make-test-python.nix ({ pkgs, ... }: {
+import ./make-test-python.nix ({ pkgs, lib, ... }: {
   name = "keepalived";
+  maintainers = [ lib.maintainers.raitobezarius ];
 
   nodes = {
     node1 = { pkgs, ... }: {
diff --git a/nixos/tests/kernel-generic.nix b/nixos/tests/kernel-generic.nix
index 72d31246b75d..34c04e8351ce 100644
--- a/nixos/tests/kernel-generic.nix
+++ b/nixos/tests/kernel-generic.nix
@@ -32,6 +32,7 @@ let
       linux_6_1_hardened
       linux_6_5_hardened
       linux_6_6_hardened
+      linux_6_7_hardened
       linux_rt_5_4
       linux_rt_5_10
       linux_rt_5_15
diff --git a/nixos/tests/kernel-rust.nix b/nixos/tests/kernel-rust.nix
new file mode 100644
index 000000000000..1f269173ec2e
--- /dev/null
+++ b/nixos/tests/kernel-rust.nix
@@ -0,0 +1,43 @@
+{ system ? builtins.currentSystem
+, config ? { }
+, pkgs ? import ../.. { inherit system config; }
+}:
+
+let
+  inherit (pkgs.lib) const filterAttrs mapAttrs;
+
+  kernelRustTest = kernelPackages: import ./make-test-python.nix ({ lib, ... }: {
+    name = "kernel-rust";
+    meta.maintainers = with lib.maintainers; [ blitz ma27 ];
+    nodes.machine = { config, ... }: {
+      boot = {
+        inherit kernelPackages;
+        extraModulePackages = [ config.boot.kernelPackages.rust-out-of-tree-module ];
+        kernelPatches = [
+          {
+            name = "Rust Support";
+            patch = null;
+            features = {
+              rust = true;
+            };
+          }
+        ];
+      };
+    };
+    testScript = ''
+      machine.wait_for_unit("default.target")
+      machine.succeed("modprobe rust_out_of_tree")
+    '';
+  });
+
+  kernels = {
+    inherit (pkgs.linuxKernel.packages) linux_testing;
+  }
+  // filterAttrs
+    (const (x: let
+      inherit (builtins.tryEval (
+        x.rust-out-of-tree-module or null != null
+      )) success value;
+    in success && value))
+    pkgs.linuxKernel.vanillaPackages;
+in mapAttrs (const kernelRustTest) kernels
diff --git a/nixos/tests/lemmy.nix b/nixos/tests/lemmy.nix
index de2c4938fe23..e8d747f89a9e 100644
--- a/nixos/tests/lemmy.nix
+++ b/nixos/tests/lemmy.nix
@@ -59,6 +59,7 @@ in
         server.succeed("curl --fail localhost:${toString uiPort}")
 
     with subtest("Lemmy-UI responds through the caddy reverse proxy"):
+        server.systemctl("start network-online.target")
         server.wait_for_unit("network-online.target")
         server.wait_for_unit("caddy.service")
         server.wait_for_open_port(80)
@@ -66,6 +67,7 @@ in
         assert "Lemmy" in body, f"String Lemmy not found in response for ${lemmyNodeName}: \n{body}"
 
     with subtest("the server is exposed externally"):
+        client.systemctl("start network-online.target")
         client.wait_for_unit("network-online.target")
         client.succeed("curl -v --fail ${lemmyNodeName}")
 
diff --git a/nixos/tests/livebook-service.nix b/nixos/tests/livebook-service.nix
index 56b4eb932f34..f428412e1644 100644
--- a/nixos/tests/livebook-service.nix
+++ b/nixos/tests/livebook-service.nix
@@ -9,13 +9,15 @@ import ./make-test-python.nix ({ lib, pkgs, ... }: {
 
       services.livebook = {
         enableUserService = true;
-        port = 20123;
+        environment = {
+          LIVEBOOK_PORT = 20123;
+          LIVEBOOK_COOKIE = "chocolate chip";
+          LIVEBOOK_TOKEN_ENABLED = true;
+
+        };
         environmentFile = pkgs.writeText "livebook.env" ''
           LIVEBOOK_PASSWORD = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
         '';
-        options = {
-          cookie = "chocolate chip";
-        };
       };
     };
   };
diff --git a/nixos/tests/miriway.nix b/nixos/tests/miriway.nix
index f12c4d5ecc41..a0987d9fc41b 100644
--- a/nixos/tests/miriway.nix
+++ b/nixos/tests/miriway.nix
@@ -31,7 +31,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
         enable-x11=
 
         ctrl-alt=t:foot --maximized
-        ctrl-alt=a:env WINIT_UNIX_BACKEND=x11 WAYLAND_DISPLAY=invalid alacritty --option window.startup_mode=maximized
+        ctrl-alt=a:env WINIT_UNIX_BACKEND=x11 WAYLAND_DISPLAY= alacritty --option window.startup_mode=\"maximized\"
 
         shell-component=dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY
 
diff --git a/nixos/tests/netbird.nix b/nixos/tests/netbird.nix
index ef793cfe9881..7342e8d04a39 100644
--- a/nixos/tests/netbird.nix
+++ b/nixos/tests/netbird.nix
@@ -14,7 +14,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
 
   testScript = ''
     start_all()
-    node.wait_for_unit("netbird.service")
+    node.wait_for_unit("netbird-wt0.service")
     node.wait_for_file("/var/run/netbird/sock")
     node.succeed("netbird status | grep -q 'Daemon status: NeedsLogin'")
   '';
diff --git a/nixos/tests/networking.nix b/nixos/tests/networking.nix
index 768d0cfa2238..6bd89902eedb 100644
--- a/nixos/tests/networking.nix
+++ b/nixos/tests/networking.nix
@@ -130,6 +130,7 @@ let
           start_all()
 
           client.wait_for_unit("network.target")
+          router.systemctl("start network-online.target")
           router.wait_for_unit("network-online.target")
 
           with subtest("Make sure DHCP server is not started"):
@@ -222,6 +223,7 @@ let
           start_all()
 
           client.wait_for_unit("network.target")
+          router.systemctl("start network-online.target")
           router.wait_for_unit("network-online.target")
 
           with subtest("Wait until we have an ip address on each interface"):
@@ -849,6 +851,7 @@ let
 
           client.wait_for_unit("network.target")
           client_with_privacy.wait_for_unit("network.target")
+          router.systemctl("start network-online.target")
           router.wait_for_unit("network-online.target")
 
           with subtest("Wait until we have an ip address"):
diff --git a/nixos/tests/nextcloud/with-declarative-redis-and-secrets.nix b/nixos/tests/nextcloud/with-declarative-redis-and-secrets.nix
index addc898bd760..b09ee1276a13 100644
--- a/nixos/tests/nextcloud/with-declarative-redis-and-secrets.nix
+++ b/nixos/tests/nextcloud/with-declarative-redis-and-secrets.nix
@@ -41,7 +41,7 @@ in {
         };
         secretFile = "/etc/nextcloud-secrets.json";
 
-        extraOptions = {
+        settings = {
           allow_local_remote_servers = true;
           redis = {
             dbindex = 0;
diff --git a/nixos/tests/nextcloud/with-postgresql-and-redis.nix b/nixos/tests/nextcloud/with-postgresql-and-redis.nix
index d95af8a89d07..3c090f0d3c3b 100644
--- a/nixos/tests/nextcloud/with-postgresql-and-redis.nix
+++ b/nixos/tests/nextcloud/with-postgresql-and-redis.nix
@@ -41,7 +41,7 @@ in {
         extraApps = {
           inherit (pkgs."nextcloud${lib.versions.major config.services.nextcloud.package.version}Packages".apps) notify_push;
         };
-        extraOptions.trusted_proxies = [ "::1" ];
+        settings.trusted_proxies = [ "::1" ];
       };
 
       services.redis.servers."nextcloud".enable = true;
diff --git a/nixos/tests/nfs/kerberos.nix b/nixos/tests/nfs/kerberos.nix
index 1bace4058be5..5944b53319a0 100644
--- a/nixos/tests/nfs/kerberos.nix
+++ b/nixos/tests/nfs/kerberos.nix
@@ -105,6 +105,7 @@ in
       server.wait_for_unit("rpc-gssd.service")
       server.wait_for_unit("rpc-svcgssd.service")
 
+      client.systemctl("start network-online.target")
       client.wait_for_unit("network-online.target")
 
       # add principals to client keytab
diff --git a/nixos/tests/nginx-moreheaders.nix b/nixos/tests/nginx-moreheaders.nix
new file mode 100644
index 000000000000..560dcf9ce0b8
--- /dev/null
+++ b/nixos/tests/nginx-moreheaders.nix
@@ -0,0 +1,37 @@
+import ./make-test-python.nix {
+  name = "nginx-more-headers";
+
+  nodes = {
+    webserver = { pkgs, ... }: {
+      services.nginx = {
+        enable = true;
+
+        virtualHosts.test = {
+          locations = {
+            "/".return = "200 blub";
+            "/some" =  {
+              return = "200 blub";
+              extraConfig = ''
+                more_set_headers "Referrer-Policy: no-referrer";
+              '';
+            };
+          };
+          extraConfig = ''
+            more_set_headers "X-Powered-By: nixos";
+          '';
+        };
+      };
+    };
+  };
+
+  testScript = ''
+    webserver.wait_for_unit("nginx")
+    webserver.wait_for_open_port(80)
+
+    webserver.succeed("curl --fail --resolve test:80:127.0.0.1 --head --verbose http://test | grep -q \"X-Powered-By: nixos\"")
+    webserver.fail("curl --fail --resolve test:80:127.0.0.1 --head --verbose http://test | grep -q \"Referrer-Policy: no-referrer\"")
+
+    webserver.succeed("curl --fail --resolve test:80:127.0.0.1 --head --verbose http://test/some | grep -q \"X-Powered-By: nixos\"")
+    webserver.succeed("curl --fail --resolve test:80:127.0.0.1 --head --verbose http://test/some | grep -q \"Referrer-Policy: no-referrer\"")
+  '';
+}
diff --git a/nixos/tests/nixops/default.nix b/nixos/tests/nixops/default.nix
index f7a26f2461c4..6501d13a2ed3 100644
--- a/nixos/tests/nixops/default.nix
+++ b/nixos/tests/nixops/default.nix
@@ -1,6 +1,4 @@
-{ pkgs
-, testers
-, ... }:
+{ pkgs, ... }:
 let
   inherit (pkgs) lib;
 
@@ -21,7 +19,7 @@ let
     passthru.override = args': testsForPackage (args // args');
   };
 
-  testLegacyNetwork = { nixopsPkg, ... }: testers.nixosTest ({
+  testLegacyNetwork = { nixopsPkg, ... }: pkgs.testers.nixosTest ({
     name = "nixops-legacy-network";
     nodes = {
       deployer = { config, lib, nodes, pkgs, ... }: {
diff --git a/nixos/tests/nixos-rebuild-target-host.nix b/nixos/tests/nixos-rebuild-target-host.nix
index 8d60b788abf3..bf80b2fa6606 100644
--- a/nixos/tests/nixos-rebuild-target-host.nix
+++ b/nixos/tests/nixos-rebuild-target-host.nix
@@ -132,5 +132,10 @@ import ./make-test-python.nix ({ pkgs, ... }: {
         deployer.succeed("passh -c 3 -C -p ${nodes.target.users.users.bob.password} -P \"\[sudo\] password\" nixos-rebuild switch -I nixos-config=/root/configuration-3.nix --target-host bob@target --use-remote-sudo &>/dev/console")
         target_hostname = deployer.succeed("ssh alice@target cat /etc/hostname").rstrip()
         assert target_hostname == "config-3-deployed", f"{target_hostname=}"
+
+      with subtest("Deploy works with very long TMPDIR"):
+        tmp_dir = "/var/folder/veryveryveryveryverylongpathnamethatdoesnotworkwithcontrolpath"
+        deployer.succeed(f"mkdir -p {tmp_dir}")
+        deployer.succeed(f"TMPDIR={tmp_dir} nixos-rebuild switch -I nixos-config=/root/configuration-1.nix --target-host root@target &>/dev/console")
     '';
 })
diff --git a/nixos/tests/nvmetcfg.nix b/nixos/tests/nvmetcfg.nix
new file mode 100644
index 000000000000..a4c459a343cf
--- /dev/null
+++ b/nixos/tests/nvmetcfg.nix
@@ -0,0 +1,43 @@
+import ./make-test-python.nix ({ lib, ... }: {
+  name = "nvmetcfg";
+
+  meta = {
+    maintainers = with lib.maintainers; [ nickcao ];
+  };
+
+  nodes = {
+    server = { pkgs, ... }: {
+      boot.kernelModules = [ "nvmet" ];
+      environment.systemPackages = [ pkgs.nvmetcfg ];
+      networking.firewall.allowedTCPPorts = [ 4420 ];
+      virtualisation.emptyDiskImages = [ 512 ];
+    };
+    client = { pkgs, ... }: {
+      boot.kernelModules = [ "nvme-fabrics" ];
+      environment.systemPackages = [ pkgs.nvme-cli ];
+    };
+  };
+
+  testScript = let subsystem = "nqn.2014-08.org.nixos:server"; in ''
+    import json
+
+    with subtest("Create subsystem and namespace"):
+      server.succeed("nvmet subsystem add ${subsystem}")
+      server.succeed("nvmet namespace add ${subsystem} 1 /dev/vdb")
+
+    with subtest("Bind subsystem to port"):
+      server.wait_for_unit("network-online.target")
+      server.succeed("nvmet port add 1 tcp 0.0.0.0:4420")
+      server.succeed("nvmet port add-subsystem 1 ${subsystem}")
+
+    with subtest("Discover and connect to available subsystems"):
+      client.wait_for_unit("network-online.target")
+      assert "subnqn:  ${subsystem}" in client.succeed("nvme discover --transport=tcp --traddr=server --trsvcid=4420")
+      client.succeed("nvme connect-all --transport=tcp --traddr=server --trsvcid=4420")
+
+    with subtest("Write to the connected subsystem"):
+      devices = json.loads(client.succeed("lsblk --nvme --paths --json"))["blockdevices"]
+      assert len(devices) == 1
+      client.succeed(f"dd if=/dev/zero of={devices[0]['name']} bs=1M count=64")
+  '';
+})
diff --git a/nixos/tests/opensmtpd-rspamd.nix b/nixos/tests/opensmtpd-rspamd.nix
index 19969a7b47dd..e413a2050bd6 100644
--- a/nixos/tests/opensmtpd-rspamd.nix
+++ b/nixos/tests/opensmtpd-rspamd.nix
@@ -119,6 +119,7 @@ import ./make-test-python.nix {
   testScript = ''
     start_all()
 
+    client.systemctl("start network-online.target")
     client.wait_for_unit("network-online.target")
     smtp1.wait_for_unit("opensmtpd")
     smtp2.wait_for_unit("opensmtpd")
diff --git a/nixos/tests/opensmtpd.nix b/nixos/tests/opensmtpd.nix
index 17c1a569ba0d..d32f82ed33b8 100644
--- a/nixos/tests/opensmtpd.nix
+++ b/nixos/tests/opensmtpd.nix
@@ -104,6 +104,7 @@ import ./make-test-python.nix {
   testScript = ''
     start_all()
 
+    client.systemctl("start network-online.target")
     client.wait_for_unit("network-online.target")
     smtp1.wait_for_unit("opensmtpd")
     smtp2.wait_for_unit("opensmtpd")
diff --git a/nixos/tests/owncast.nix b/nixos/tests/owncast.nix
index debb34f5009d..73aac4e70475 100644
--- a/nixos/tests/owncast.nix
+++ b/nixos/tests/owncast.nix
@@ -31,6 +31,8 @@ import ./make-test-python.nix ({ pkgs, ... }: {
   testScript = ''
     start_all()
 
+    client.systemctl("start network-online.target")
+    server.systemctl("start network-online.target")
     client.wait_for_unit("network-online.target")
     server.wait_for_unit("network-online.target")
     server.wait_for_unit("owncast.service")
diff --git a/nixos/tests/podman/default.nix b/nixos/tests/podman/default.nix
index 0e1f420f2a7d..3eea45832f0a 100644
--- a/nixos/tests/podman/default.nix
+++ b/nixos/tests/podman/default.nix
@@ -24,8 +24,6 @@ import ../make-test-python.nix (
         virtualisation.podman.enable = true;
 
         virtualisation.podman.defaultNetwork.settings.dns_enabled = true;
-
-        networking.firewall.allowedUDPPorts = [ 53 ];
       };
       docker = { pkgs, ... }: {
         virtualisation.podman.enable = true;
diff --git a/nixos/tests/pomerium.nix b/nixos/tests/pomerium.nix
index abaf56c518e0..d0204488e8ef 100644
--- a/nixos/tests/pomerium.nix
+++ b/nixos/tests/pomerium.nix
@@ -1,7 +1,7 @@
 import ./make-test-python.nix ({ pkgs, lib, ... }: {
   name = "pomerium";
   meta = with lib.maintainers; {
-    maintainers = [ lukegb ];
+    maintainers = [ lukegb devusb ];
   };
 
   nodes = let base = myIP: { pkgs, lib, ... }: {
@@ -103,7 +103,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
     with subtest("ui"):
         pomerium.succeed(
           # check for a string that only appears if the UI is displayed correctly
-            "chromium --no-sandbox --headless --disable-gpu --dump-dom --host-resolver-rules='MAP login.required 127.0.0.1:80' http://login.required/.pomerium | grep 'contact your administrator'"
+            "chromium --no-sandbox --headless --disable-gpu --dump-dom --host-resolver-rules='MAP login.required 127.0.0.1:80' http://login.required/.pomerium | grep 'User Details Not Available'"
         )
   '';
 })
diff --git a/nixos/tests/postgis.nix b/nixos/tests/postgis.nix
index 09c738b938ba..dacf4e576c07 100644
--- a/nixos/tests/postgis.nix
+++ b/nixos/tests/postgis.nix
@@ -24,6 +24,7 @@ import ./make-test-python.nix ({ pkgs, ...} : {
     master.wait_for_unit("postgresql")
     master.sleep(10)  # Hopefully this is long enough!!
     master.succeed("sudo -u postgres psql -c 'CREATE EXTENSION postgis;'")
+    master.succeed("sudo -u postgres psql -c 'CREATE EXTENSION postgis_raster;'")
     master.succeed("sudo -u postgres psql -c 'CREATE EXTENSION postgis_topology;'")
   '';
 })
diff --git a/nixos/tests/prometheus-exporters.nix b/nixos/tests/prometheus-exporters.nix
index 5872b02b609e..7e74f27174ec 100644
--- a/nixos/tests/prometheus-exporters.nix
+++ b/nixos/tests/prometheus-exporters.nix
@@ -257,21 +257,6 @@ let
       '';
     };
 
-    exportarr-sonarr = {
-      nodeName = "exportarr_sonarr";
-      exporterConfig = {
-        enable = true;
-        url = "http://127.0.0.1:8989";
-        # testing for real data is tricky, because the api key can not be preconfigured
-        apiKeyFile = pkgs.writeText "dummy-api-key" "eccff6a992bc2e4b88e46d064b26bb4e";
-      };
-      exporterTest = ''
-        wait_for_unit("prometheus-exportarr-sonarr-exporter.service")
-        wait_for_open_port(9707)
-        succeed("curl -sSf 'http://localhost:9707/metrics")
-      '';
-    };
-
     fastly = {
       exporterConfig = {
         enable = true;
@@ -957,31 +942,6 @@ let
       '';
     };
 
-    openvpn = {
-      exporterConfig = {
-        enable = true;
-        group = "openvpn";
-        statusPaths = [ "/run/openvpn-test" ];
-      };
-      metricProvider = {
-        users.groups.openvpn = { };
-        services.openvpn.servers.test = {
-          config = ''
-            dev tun
-            status /run/openvpn-test
-            status-version 3
-          '';
-          up = "chmod g+r /run/openvpn-test";
-        };
-        systemd.services."openvpn-test".serviceConfig.Group = "openvpn";
-      };
-      exporterTest = ''
-        wait_for_unit("openvpn-test.service")
-        wait_for_unit("prometheus-openvpn-exporter.service")
-        succeed("curl -sSf http://localhost:9176/metrics | grep 'openvpn_up{.*} 1'")
-      '';
-    };
-
     pgbouncer = {
       exporterConfig = {
         enable = true;
@@ -1217,6 +1177,39 @@ let
       '';
     };
 
+    restic =
+      let
+        repository = "rest:http://127.0.0.1:8000";
+        passwordFile = pkgs.writeText "restic-test-password" "test-password";
+      in
+      {
+        exporterConfig = {
+          enable = true;
+          inherit repository passwordFile;
+        };
+        metricProvider = {
+          services.restic.server = {
+            enable = true;
+            extraFlags = [ "--no-auth" ];
+          };
+          environment.systemPackages = [ pkgs.restic ];
+        };
+        exporterTest = ''
+          # prometheus-restic-exporter.service fails without initialised repository
+          systemctl("stop prometheus-restic-exporter.service")
+
+          # Initialise the repository
+          wait_for_unit("restic-rest-server.service")
+          wait_for_open_port(8000)
+          succeed("restic init --repo ${repository} --password-file ${passwordFile}")
+
+          systemctl("start prometheus-restic-exporter.service")
+          wait_for_unit("prometheus-restic-exporter.service")
+          wait_for_open_port(9753)
+          wait_until_succeeds("curl -sSf localhost:9753/metrics | grep 'restic_check_success 1.0'")
+        '';
+      };
+
     rspamd = {
       exporterConfig = {
         enable = true;
@@ -1724,7 +1717,12 @@ mapAttrs
       testScript = ''
         ${nodeName}.start()
         ${concatStringsSep "\n" (map (line:
-          if (builtins.substring 0 1 line == " " || builtins.substring 0 1 line == ")")
+          if builtins.any (b: b) [
+            (builtins.match "^[[:space:]]*$" line != null)
+            (builtins.substring 0 1 line == "#")
+            (builtins.substring 0 1 line == " ")
+            (builtins.substring 0 1 line == ")")
+          ]
           then line
           else "${nodeName}.${line}"
         ) (splitString "\n" (removeSuffix "\n" testConfig.exporterTest)))}
diff --git a/nixos/tests/pyload.nix b/nixos/tests/pyload.nix
new file mode 100644
index 000000000000..f913e822b2ff
--- /dev/null
+++ b/nixos/tests/pyload.nix
@@ -0,0 +1,33 @@
+import ./make-test-python.nix ({ lib, ... }: {
+  name = "pyload";
+  meta.maintainers = with lib.maintainers; [ ambroisie ];
+
+  nodes = {
+    machine = { ... }: {
+      services.pyload = {
+        enable = true;
+
+        listenAddress = "0.0.0.0";
+        port = 9876;
+      };
+
+      networking.firewall.allowedTCPPorts = [ 9876 ];
+    };
+
+    client = { };
+  };
+
+  testScript = ''
+    start_all()
+
+    machine.wait_for_unit("pyload.service")
+
+    with subtest("Web interface accessible locally"):
+        machine.wait_until_succeeds("curl -fs localhost:9876")
+
+    client.wait_for_unit("network.target")
+
+    with subtest("Web interface accessible from a different machine"):
+        client.wait_until_succeeds("curl -fs machine:9876")
+  '';
+})
diff --git a/nixos/tests/qemu-vm-restrictnetwork.nix b/nixos/tests/qemu-vm-restrictnetwork.nix
index 49a105ef1076..49aefcc099bd 100644
--- a/nixos/tests/qemu-vm-restrictnetwork.nix
+++ b/nixos/tests/qemu-vm-restrictnetwork.nix
@@ -21,6 +21,8 @@ import ./make-test-python.nix ({
 
     else:
       start_all()
+      unrestricted.systemctl("start network-online.target")
+      restricted.systemctl("start network-online.target")
       unrestricted.wait_for_unit("network-online.target")
       restricted.wait_for_unit("network-online.target")
 
diff --git a/nixos/tests/rss2email.nix b/nixos/tests/rss2email.nix
index f32326feb50f..60b27b95fabe 100644
--- a/nixos/tests/rss2email.nix
+++ b/nixos/tests/rss2email.nix
@@ -55,6 +55,7 @@ import ./make-test-python.nix {
   testScript = ''
     start_all()
 
+    server.systemctl("start network-online.target")
     server.wait_for_unit("network-online.target")
     server.wait_for_unit("opensmtpd")
     server.wait_for_unit("dovecot2")
diff --git a/nixos/tests/sane.nix b/nixos/tests/sane.nix
new file mode 100644
index 000000000000..cba1b4d1dc4d
--- /dev/null
+++ b/nixos/tests/sane.nix
@@ -0,0 +1,85 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+/*
+  SANE NixOS test
+  ===============
+  SANE is intrisically tied to hardware, so testing it is not straightforward.
+  However:
+  - a fake webcam can be created with v4l2loopback
+  - sane has a backend (v4l) to use a webcam as a scanner
+  This test creates a webcam /dev/video0, streams a still image with some text
+  through this webcam, uses SANE to scan from the webcam, and uses OCR to check
+  that the expected text was scanned.
+*/
+let
+  text = "66263666188646651519653683416";
+  fontsConf = pkgs.makeFontsConf {
+    fontDirectories = [
+      pkgs.dejavu_fonts.minimal
+    ];
+  };
+  # an image with black on white text spelling "${text}"
+  # for some reason, the test fails if it's jpg instead of png
+  # the font is quite large to make OCR easier
+  image = pkgs.runCommand "image.png"
+    {
+      # only imagemagickBig can render text
+      nativeBuildInputs = [ pkgs.imagemagickBig ];
+      FONTCONFIG_FILE = fontsConf;
+    } ''
+    magick -pointsize 100 label:${text} $out
+  '';
+in
+{
+  name = "sane";
+  nodes.machine = { pkgs, config, ... }: {
+    boot = {
+      # create /dev/video0 as a fake webcam whose content is filled by ffmpeg
+      extraModprobeConfig = ''
+        options v4l2loopback devices=1 max_buffers=2 exclusive_caps=1 card_label=VirtualCam
+      '';
+      kernelModules = [ "v4l2loopback" ];
+      extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ];
+    };
+    systemd.services.fake-webcam = {
+      wantedBy = [ "multi-user.target" ];
+      description = "fill /dev/video0 with ${image}";
+      /* HACK: /dev/video0 is a v4l2 only device, it misses one single v4l1
+      ioctl, VIDIOCSPICT. But sane only supports v4l1, so it will log that this
+      ioctl failed, and assume that the pixel format is Y8 (gray). So we tell
+      ffmpeg to produce this pixel format.
+      */
+      serviceConfig.ExecStart = [ "${pkgs.ffmpeg}/bin/ffmpeg -framerate 30 -re -stream_loop -1 -i ${image} -f v4l2 -pix_fmt gray /dev/video0" ];
+    };
+    hardware.sane.enable = true;
+    system.extraDependencies = [ image ];
+    environment.systemPackages = [
+      pkgs.fswebcam
+      pkgs.tesseract
+      pkgs.v4l-utils
+    ];
+    environment.variables.SANE_DEBUG_V4L = "128";
+  };
+  testScript = ''
+    start_all()
+    machine.wait_for_unit("fake-webcam.service")
+
+    # the device only appears when ffmpeg starts producing frames
+    machine.wait_until_succeeds("scanimage -L | grep /dev/video0")
+
+    machine.succeed("scanimage -L >&2")
+
+    with subtest("debugging: /dev/video0 works"):
+      machine.succeed("v4l2-ctl --all >&2")
+      machine.succeed("fswebcam --no-banner /tmp/webcam.jpg")
+      machine.copy_from_vm("/tmp/webcam.jpg", "webcam")
+
+    # scan with the webcam
+    machine.succeed("scanimage -o /tmp/scan.png >&2")
+    machine.copy_from_vm("/tmp/scan.png", "scan")
+
+    # the image should contain "${text}"
+    output = machine.succeed("tesseract /tmp/scan.png -")
+    print(output)
+    assert "${text}" in output, f"expected text ${text} was not found, OCR found {output!r}"
+  '';
+})
diff --git a/nixos/tests/ssh-audit.nix b/nixos/tests/ssh-audit.nix
index bd6255b8044d..25772aba3ea0 100644
--- a/nixos/tests/ssh-audit.nix
+++ b/nixos/tests/ssh-audit.nix
@@ -70,6 +70,7 @@ import ./make-test-python.nix (
       ${serverName}.succeed("${pkgs.ssh-audit}/bin/ssh-audit 127.0.0.1")
 
       # Wait for client to be able to connect to the server
+      ${clientName}.systemctl("start network-online.target")
       ${clientName}.wait_for_unit("network-online.target")
 
       # Set up trusted private key
diff --git a/nixos/tests/suwayomi-server.nix b/nixos/tests/suwayomi-server.nix
new file mode 100644
index 000000000000..36072028380b
--- /dev/null
+++ b/nixos/tests/suwayomi-server.nix
@@ -0,0 +1,46 @@
+{ system ? builtins.currentSystem
+, pkgs
+, lib ? pkgs.lib
+}:
+let
+  inherit (import ../lib/testing-python.nix { inherit system pkgs; }) makeTest;
+  inherit (lib) recursiveUpdate;
+
+  baseTestConfig = {
+    meta.maintainers = with lib.maintainers; [ ratcornu ];
+    nodes.machine = { pkgs, ... }: {
+      services.suwayomi-server = {
+        enable = true;
+        settings.server.port = 1234;
+      };
+    };
+    testScript = ''
+      machine.wait_for_unit("suwayomi-server.service")
+      machine.wait_for_open_port(1234)
+      machine.succeed("curl --fail http://localhost:1234/")
+    '';
+  };
+in
+
+{
+  without-auth = makeTest (recursiveUpdate baseTestConfig {
+    name = "suwayomi-server-without-auth";
+  });
+
+  with-auth = makeTest (recursiveUpdate baseTestConfig {
+    name = "suwayomi-server-with-auth";
+
+    nodes.machine = { pkgs, ... }: {
+      services.suwayomi-server = {
+        enable = true;
+
+        settings.server = {
+          port = 1234;
+          basicAuthEnabled = true;
+          basicAuthUsername = "alice";
+          basicAuthPasswordFile = pkgs.writeText "snakeoil-pass.txt" "pass";
+        };
+      };
+    };
+  });
+}
diff --git a/nixos/tests/systemd-lock-handler.nix b/nixos/tests/systemd-lock-handler.nix
new file mode 100644
index 000000000000..d6fb8f545900
--- /dev/null
+++ b/nixos/tests/systemd-lock-handler.nix
@@ -0,0 +1,56 @@
+{ lib, ... }: {
+  name = "systemd-lock-handler";
+
+  meta.maintainers = with lib.maintainers; [ liff ];
+
+  enableOCR = true;
+
+  nodes.machine = { config, pkgs, lib, ... }:
+    let
+      touch = "${lib.getBin pkgs.coreutils}/bin/touch";
+    in
+    {
+      imports = [ common/wayland-cage.nix ];
+
+      services.systemd-lock-handler.enable = true;
+
+      systemd.user.services = {
+        test-lock = {
+          partOf = [ "lock.target" ];
+          onSuccess = [ "unlock.target" ];
+          before = [ "lock.target" ];
+          wantedBy = [ "lock.target" ];
+          serviceConfig.ExecStart = "${touch} /tmp/lock.target.activated";
+        };
+        test-unlock = {
+          partOf = [ "unlock.target" ];
+          after = [ "unlock.target" ];
+          wantedBy = [ "unlock.target" ];
+          serviceConfig.ExecStart = "${touch} /tmp/unlock.target.activated";
+        };
+        test-sleep = {
+          partOf = [ "sleep.target" ];
+          before = [ "sleep.target" ];
+          wantedBy = [ "sleep.target" ];
+          serviceConfig.ExecStart = "${touch} /tmp/sleep.target.activated";
+        };
+      };
+    };
+
+  testScript = ''
+    machine.wait_for_unit('graphical.target')
+    machine.wait_for_text('alice@machine')
+
+    machine.send_chars('loginctl lock-session\n')
+    machine.wait_for_file('/tmp/lock.target.activated')
+    machine.wait_for_file('/tmp/unlock.target.activated')
+
+    machine.send_chars('systemctl suspend\n')
+    # wait_for_file won’t complete before the machine is asleep,
+    # so we’ll watch the log instead.
+    machine.wait_for_console_text('Started test-sleep.service.')
+
+    # The VM is asleep, regular shutdown won’t work.
+    machine.crash()
+  '';
+}
diff --git a/nixos/tests/systemd-networkd-dhcpserver.nix b/nixos/tests/systemd-networkd-dhcpserver.nix
index cf0ccb744211..665d8b5a0529 100644
--- a/nixos/tests/systemd-networkd-dhcpserver.nix
+++ b/nixos/tests/systemd-networkd-dhcpserver.nix
@@ -101,6 +101,9 @@ import ./make-test-python.nix ({pkgs, ...}: {
   };
   testScript = { ... }: ''
     start_all()
+
+    router.systemctl("start network-online.target")
+    client.systemctl("start network-online.target")
     router.wait_for_unit("systemd-networkd-wait-online.service")
     client.wait_for_unit("systemd-networkd-wait-online.service")
     client.wait_until_succeeds("ping -c 5 10.0.2.1")
diff --git a/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix b/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix
index 54f371e6c070..1e55341657bd 100644
--- a/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix
+++ b/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix
@@ -263,9 +263,6 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
           };
         };
       };
-
-      # make the network-online target a requirement, we wait for it in our test script
-      systemd.targets.network-online.wantedBy = [ "multi-user.target" ];
     };
 
     # This is the client behind the router. We should be receiving router
@@ -278,9 +275,6 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
         useNetworkd = true;
         useDHCP = false;
       };
-
-      # make the network-online target a requirement, we wait for it in our test script
-      systemd.targets.network-online.wantedBy = [ "multi-user.target" ];
     };
   };
 
@@ -294,6 +288,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
     # Since we only care about IPv6 that should not involve waiting for legacy
     # IP leases.
     client.start()
+    client.systemctl("start network-online.target")
     client.wait_for_unit("network-online.target")
 
     # the static address on the router should not be reachable
@@ -312,6 +307,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
     isp.wait_for_unit("multi-user.target")
 
     # wait until the uplink interface has a good status
+    router.systemctl("start network-online.target")
     router.wait_for_unit("network-online.target")
     router.wait_until_succeeds("ping -6 -c1 2001:DB8::1")
 
diff --git a/nixos/tests/systemd-nspawn.nix b/nixos/tests/systemd-nspawn.nix
index 1a4251ef069e..b86762233d18 100644
--- a/nixos/tests/systemd-nspawn.nix
+++ b/nixos/tests/systemd-nspawn.nix
@@ -38,6 +38,7 @@ in {
     start_all()
 
     server.wait_for_unit("nginx.service")
+    client.systemctl("start network-online.target")
     client.wait_for_unit("network-online.target")
     client.succeed("machinectl pull-raw --verify=signature http://server/testimage.raw")
     client.succeed(
diff --git a/nixos/tests/systemd-sysusers-immutable.nix b/nixos/tests/systemd-sysusers-immutable.nix
new file mode 100644
index 000000000000..42cbf84d175e
--- /dev/null
+++ b/nixos/tests/systemd-sysusers-immutable.nix
@@ -0,0 +1,64 @@
+{ lib, ... }:
+
+let
+  rootPassword = "$y$j9T$p6OI0WN7.rSfZBOijjRdR.$xUOA2MTcB48ac.9Oc5fz8cxwLv1mMqabnn333iOzSA6";
+  normaloPassword = "$y$j9T$3aiOV/8CADAK22OK2QT3/0$67OKd50Z4qTaZ8c/eRWHLIM.o3ujtC1.n9ysmJfv639";
+  newNormaloPassword = "mellow";
+in
+
+{
+
+  name = "activation-sysusers-immutable";
+
+  meta.maintainers = with lib.maintainers; [ nikstur ];
+
+  nodes.machine = {
+    systemd.sysusers.enable = true;
+    users.mutableUsers = false;
+
+    # Override the empty root password set by the test instrumentation
+    users.users.root.hashedPasswordFile = lib.mkForce null;
+    users.users.root.initialHashedPassword = rootPassword;
+    users.users.normalo = {
+      isNormalUser = true;
+      initialHashedPassword = normaloPassword;
+    };
+
+    specialisation.new-generation.configuration = {
+      users.users.new-normalo = {
+        isNormalUser = true;
+        initialPassword = newNormaloPassword;
+      };
+    };
+  };
+
+  testScript = ''
+    with subtest("Users are not created with systemd-sysusers"):
+      machine.fail("systemctl status systemd-sysusers.service")
+      machine.fail("ls /etc/sysusers.d")
+
+    with subtest("Correct mode on the password files"):
+      assert machine.succeed("stat -c '%a' /etc/passwd") == "644\n"
+      assert machine.succeed("stat -c '%a' /etc/group") == "644\n"
+      assert machine.succeed("stat -c '%a' /etc/shadow") == "0\n"
+      assert machine.succeed("stat -c '%a' /etc/gshadow") == "0\n"
+
+    with subtest("root user has correct password"):
+      print(machine.succeed("getent passwd root"))
+      assert "${rootPassword}" in machine.succeed("getent shadow root"), "root user password is not correct"
+
+    with subtest("normalo user is created"):
+      print(machine.succeed("getent passwd normalo"))
+      assert machine.succeed("stat -c '%U' /home/normalo") == "normalo\n"
+      assert "${normaloPassword}" in machine.succeed("getent shadow normalo"), "normalo user password is not correct"
+
+
+    machine.succeed("/run/current-system/specialisation/new-generation/bin/switch-to-configuration switch")
+
+
+    with subtest("new-normalo user is created after switching to new generation"):
+      print(machine.succeed("getent passwd new-normalo"))
+      print(machine.succeed("getent shadow new-normalo"))
+      assert machine.succeed("stat -c '%U' /home/new-normalo") == "new-normalo\n"
+  '';
+}
diff --git a/nixos/tests/systemd-sysusers-mutable.nix b/nixos/tests/systemd-sysusers-mutable.nix
new file mode 100644
index 000000000000..e69cfe23a59a
--- /dev/null
+++ b/nixos/tests/systemd-sysusers-mutable.nix
@@ -0,0 +1,71 @@
+{ lib, ... }:
+
+let
+  rootPassword = "$y$j9T$p6OI0WN7.rSfZBOijjRdR.$xUOA2MTcB48ac.9Oc5fz8cxwLv1mMqabnn333iOzSA6";
+  normaloPassword = "hello";
+  newNormaloPassword = "$y$j9T$p6OI0WN7.rSfZBOijjRdR.$xUOA2MTcB48ac.9Oc5fz8cxwLv1mMqabnn333iOzSA6";
+in
+
+{
+
+  name = "activation-sysusers-mutable";
+
+  meta.maintainers = with lib.maintainers; [ nikstur ];
+
+  nodes.machine = { pkgs, ... }: {
+    systemd.sysusers.enable = true;
+    users.mutableUsers = true;
+
+    # Prerequisites
+    system.etc.overlay.enable = true;
+    boot.initrd.systemd.enable = true;
+    boot.kernelPackages = pkgs.linuxPackages_latest;
+
+    # Override the empty root password set by the test instrumentation
+    users.users.root.hashedPasswordFile = lib.mkForce null;
+    users.users.root.initialHashedPassword = rootPassword;
+    users.users.normalo = {
+      isNormalUser = true;
+      initialPassword = normaloPassword;
+    };
+
+    specialisation.new-generation.configuration = {
+      users.users.new-normalo = {
+        isNormalUser = true;
+        initialHashedPassword = newNormaloPassword;
+      };
+    };
+  };
+
+  testScript = ''
+    machine.wait_for_unit("systemd-sysusers.service")
+
+    with subtest("systemd-sysusers.service contains the credentials"):
+      sysusers_service = machine.succeed("systemctl cat systemd-sysusers.service")
+      print(sysusers_service)
+      assert "SetCredential=passwd.plaintext-password.normalo:${normaloPassword}" in sysusers_service
+
+    with subtest("Correct mode on the password files"):
+      assert machine.succeed("stat -c '%a' /etc/passwd") == "644\n"
+      assert machine.succeed("stat -c '%a' /etc/group") == "644\n"
+      assert machine.succeed("stat -c '%a' /etc/shadow") == "0\n"
+      assert machine.succeed("stat -c '%a' /etc/gshadow") == "0\n"
+
+    with subtest("root user has correct password"):
+      print(machine.succeed("getent passwd root"))
+      assert "${rootPassword}" in machine.succeed("getent shadow root"), "root user password is not correct"
+
+    with subtest("normalo user is created"):
+      print(machine.succeed("getent passwd normalo"))
+      assert machine.succeed("stat -c '%U' /home/normalo") == "normalo\n"
+
+
+    machine.succeed("/run/current-system/specialisation/new-generation/bin/switch-to-configuration switch")
+
+
+    with subtest("new-normalo user is created after switching to new generation"):
+      print(machine.succeed("getent passwd new-normalo"))
+      assert machine.succeed("stat -c '%U' /home/new-normalo") == "new-normalo\n"
+      assert "${newNormaloPassword}" in machine.succeed("getent shadow new-normalo"), "new-normalo user password is not correct"
+  '';
+}
diff --git a/nixos/tests/tayga.nix b/nixos/tests/tayga.nix
index 44974f6efea8..4aade67d74d0 100644
--- a/nixos/tests/tayga.nix
+++ b/nixos/tests/tayga.nix
@@ -206,6 +206,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
   testScript = ''
     # start client and server
     for machine in client, server:
+      machine.systemctl("start network-online.target")
       machine.wait_for_unit("network-online.target")
       machine.log(machine.execute("ip addr")[1])
       machine.log(machine.execute("ip route")[1])
@@ -214,6 +215,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
     # test systemd-networkd and nixos-scripts based router
     for router in router_systemd, router_nixos:
       router.start()
+      router.systemctl("start network-online.target")
       router.wait_for_unit("network-online.target")
       router.wait_for_unit("tayga.service")
       router.log(machine.execute("ip addr")[1])
diff --git a/nixos/tests/trafficserver.nix b/nixos/tests/trafficserver.nix
index e4557c6c50e5..94d0e4dd926e 100644
--- a/nixos/tests/trafficserver.nix
+++ b/nixos/tests/trafficserver.nix
@@ -104,6 +104,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
     ats.wait_for_open_port(80)
     httpbin.wait_for_unit("httpbin")
     httpbin.wait_for_open_port(80)
+    client.systemctl("start network-online.target")
     client.wait_for_unit("network-online.target")
 
     with subtest("Traffic Server is running"):
diff --git a/nixos/tests/ulogd/ulogd.py b/nixos/tests/ulogd/ulogd.py
index d20daa4d733a..76a8d0c6e24a 100644
--- a/nixos/tests/ulogd/ulogd.py
+++ b/nixos/tests/ulogd/ulogd.py
@@ -1,5 +1,6 @@
 start_all()
 machine.wait_for_unit("ulogd.service")
+machine.systemctl("start network-online.target")
 machine.wait_for_unit("network-online.target")
 
 with subtest("Ulogd is running"):
diff --git a/nixos/tests/upnp.nix b/nixos/tests/upnp.nix
index 5e135267403b..93bc08f752ce 100644
--- a/nixos/tests/upnp.nix
+++ b/nixos/tests/upnp.nix
@@ -81,11 +81,13 @@ in
       start_all()
 
       # Wait for network and miniupnpd.
+      router.systemctl("start network-online.target")
       router.wait_for_unit("network-online.target")
       # $router.wait_for_unit("nat")
       router.wait_for_unit("${if useNftables then "nftables" else "firewall"}.service")
       router.wait_for_unit("miniupnpd")
 
+      client1.systemctl("start network-online.target")
       client1.wait_for_unit("network-online.target")
 
       client1.succeed("upnpc -a ${internalClient1Address} 9000 9000 TCP")
diff --git a/nixos/tests/uptermd.nix b/nixos/tests/uptermd.nix
index 429e3c9dd5ff..469aa5047c27 100644
--- a/nixos/tests/uptermd.nix
+++ b/nixos/tests/uptermd.nix
@@ -28,6 +28,7 @@ in
     start_all()
 
     server.wait_for_unit("uptermd.service")
+    server.systemctl("start network-online.target")
     server.wait_for_unit("network-online.target")
 
     # wait for upterm port to be reachable
diff --git a/nixos/tests/watchdogd.nix b/nixos/tests/watchdogd.nix
new file mode 100644
index 000000000000..663e97cbae10
--- /dev/null
+++ b/nixos/tests/watchdogd.nix
@@ -0,0 +1,22 @@
+import ./make-test-python.nix ({ lib, ... }: {
+  name = "watchdogd";
+  meta.maintainers = with lib.maintainers; [ vifino ];
+
+  nodes.machine = { pkgs, ... }: {
+    virtualisation.qemu.options = [
+      "-device i6300esb" # virtual watchdog timer
+    ];
+    boot.kernelModules = [ "i6300esb" ];
+    services.watchdogd.enable = true;
+    services.watchdogd.settings = {
+      supervisor.enabled = true;
+    };
+  };
+
+  testScript = ''
+    machine.wait_for_unit("watchdogd.service")
+
+    assert "i6300ESB" in machine.succeed("watchdogctl status")
+    machine.succeed("watchdogctl test")
+  '';
+})
diff --git a/nixos/tests/web-apps/netbox-upgrade.nix b/nixos/tests/web-apps/netbox-upgrade.nix
index b5403eb678bc..4c554e7ae613 100644
--- a/nixos/tests/web-apps/netbox-upgrade.nix
+++ b/nixos/tests/web-apps/netbox-upgrade.nix
@@ -1,6 +1,6 @@
 import ../make-test-python.nix ({ lib, pkgs, ... }: let
-  oldNetbox = pkgs.netbox_3_5;
-  newNetbox = pkgs.netbox_3_6;
+  oldNetbox = pkgs.netbox_3_6;
+  newNetbox = pkgs.netbox_3_7;
 in {
   name = "netbox-upgrade";
 
diff --git a/nixos/tests/web-apps/pretalx.nix b/nixos/tests/web-apps/pretalx.nix
new file mode 100644
index 000000000000..a226639b076b
--- /dev/null
+++ b/nixos/tests/web-apps/pretalx.nix
@@ -0,0 +1,31 @@
+{ lib, ... }:
+
+{
+  name = "pretalx";
+  meta.maintainers = lib.teams.c3d2.members;
+
+  nodes = {
+    pretalx = {
+      networking.extraHosts = ''
+        127.0.0.1 talks.local
+      '';
+
+      services.pretalx = {
+        enable = true;
+        nginx.domain = "talks.local";
+        settings = {
+          site.url = "http://talks.local";
+        };
+      };
+    };
+  };
+
+  testScript = ''
+    start_all()
+
+    pretalx.wait_for_unit("pretalx-web.service")
+    pretalx.wait_for_unit("pretalx-worker.service")
+
+    pretalx.wait_until_succeeds("curl -q --fail http://talks.local/orga/")
+  '';
+}
diff --git a/nixos/tests/web-servers/stargazer.nix b/nixos/tests/web-servers/stargazer.nix
index 6365d6a4fff1..f56d1b8c9454 100644
--- a/nixos/tests/web-servers/stargazer.nix
+++ b/nixos/tests/web-servers/stargazer.nix
@@ -1,4 +1,41 @@
 { pkgs, lib, ... }:
+let
+  test_script = pkgs.stdenv.mkDerivation rec {
+    pname = "stargazer-test-script";
+    inherit (pkgs.stargazer) version src;
+    buildInputs = with pkgs; [ (python3.withPackages (ps: with ps; [ cryptography ])) ];
+    dontBuild = true;
+    doCheck = false;
+    installPhase = ''
+      mkdir -p $out/bin
+      cp scripts/gemini-diagnostics $out/bin/test
+    '';
+  };
+  test_env = pkgs.stdenv.mkDerivation rec {
+    pname = "stargazer-test-env";
+    inherit (pkgs.stargazer) version src;
+    buildPhase = ''
+      cc test_data/cgi-bin/loop.c -o test_data/cgi-bin/loop
+    '';
+    doCheck = false;
+    installPhase = ''
+      mkdir -p $out
+      cp -r * $out/
+    '';
+  };
+  scgi_server = pkgs.stdenv.mkDerivation rec {
+    pname = "stargazer-test-scgi-server";
+    inherit (pkgs.stargazer) version src;
+    buildInputs = with pkgs; [ python3 ];
+    dontConfigure = true;
+    dontBuild = true;
+    doCheck = false;
+    installPhase = ''
+      mkdir -p $out/bin
+      cp scripts/scgi-server $out/bin/scgi-server
+    '';
+  };
+in
 {
   name = "stargazer";
   meta = with lib.maintainers; { maintainers = [ gaykitty ]; };
@@ -7,25 +44,84 @@
     geminiserver = { pkgs, ... }: {
       services.stargazer = {
         enable = true;
+        connectionLogging = false;
+        requestTimeout = 1;
         routes = [
           {
             route = "localhost";
-            root = toString (pkgs.writeTextDir "index.gmi" ''
-              # Hello NixOS!
-            '');
+            root = "${test_env}/test_data/test_site";
+          }
+          {
+            route = "localhost=/en.gmi";
+            root = "${test_env}/test_data/test_site";
+            lang = "en";
+            charset = "ascii";
+          }
+          {
+            route = "localhost~/(.*).gemini";
+            root = "${test_env}/test_data/test_site";
+            rewrite = "\\1.gmi";
+            lang = "en";
+            charset = "ascii";
+          }
+          {
+            route = "localhost=/plain.txt";
+            root = "${test_env}/test_data/test_site";
+            lang = "en";
+            charset = "ascii";
+            cert-path = "/var/lib/gemini/certs/localhost.crt";
+            key-path = "/var/lib/gemini/certs/localhost.key";
+          }
+          {
+            route = "localhost:/cgi-bin";
+            root = "${test_env}/test_data";
+            cgi = true;
+            cgi-timeout = 5;
+          }
+          {
+            route = "localhost:/scgi";
+            scgi = true;
+            scgi-address = "127.0.0.1:1099";
+          }
+          {
+            route = "localhost=/root";
+            redirect = "..";
+            permanent = true;
+          }
+          {
+            route = "localhost=/priv.gmi";
+            root = "${test_env}/test_data/test_site";
+            client-cert = "${test_env}/test_data/client_cert/good.crt";
+          }
+          {
+            route = "example.com~(.*)";
+            redirect = "gemini://localhost";
+            rewrite = "\\1";
+          }
+          {
+            route = "localhost:/no-exist";
+            root = "./does_not_exist";
           }
         ];
       };
+      systemd.services.scgi_server = {
+        after = [ "network.target" ];
+        wantedBy = [ "multi-user.target" ];
+        serviceConfig = {
+          ExecStart = "${scgi_server}/bin/scgi-server";
+        };
+      };
     };
   };
 
   testScript = { nodes, ... }: ''
+    geminiserver.wait_for_unit("scgi_server")
+    geminiserver.wait_for_open_port(1099)
     geminiserver.wait_for_unit("stargazer")
     geminiserver.wait_for_open_port(1965)
 
-    with subtest("check is serving over gemini"):
-      response = geminiserver.succeed("${pkgs.gemget}/bin/gemget --header -o - gemini://localhost:1965")
+    with subtest("stargazer test suite"):
+      response = geminiserver.succeed("sh -c 'cd ${test_env}; ${test_script}/bin/test'")
       print(response)
-      assert "Hello NixOS!" in response
   '';
 }
diff --git a/nixos/tests/web-servers/ttyd.nix b/nixos/tests/web-servers/ttyd.nix
new file mode 100644
index 000000000000..d161673684b3
--- /dev/null
+++ b/nixos/tests/web-servers/ttyd.nix
@@ -0,0 +1,19 @@
+import ../make-test-python.nix ({ lib, pkgs, ... }: {
+  name = "ttyd";
+  meta.maintainers = with lib.maintainers; [ stunkymonkey ];
+
+  nodes.machine = { pkgs, ... }: {
+    services.ttyd = {
+      enable = true;
+      username = "foo";
+      passwordFile = pkgs.writeText "password" "bar";
+    };
+  };
+
+  testScript = ''
+    machine.wait_for_unit("ttyd.service")
+    machine.wait_for_open_port(7681)
+    response = machine.succeed("curl -vvv -u foo:bar -s -H 'Host: ttyd' http://127.0.0.1:7681/")
+    assert '<title>ttyd - Terminal</title>' in response, "Page didn't load successfully"
+  '';
+})
diff --git a/nixos/tests/zfs.nix b/nixos/tests/zfs.nix
index 8fedcf095af6..0b411b0b9d8a 100644
--- a/nixos/tests/zfs.nix
+++ b/nixos/tests/zfs.nix
@@ -8,12 +8,9 @@ with import ../lib/testing-python.nix { inherit system pkgs; };
 let
 
   makeZfsTest = name:
-    { kernelPackage ? if enableUnstable
-                      then pkgs.zfsUnstable.latestCompatibleLinuxPackages
-                      else pkgs.linuxPackages
-    , enableUnstable ? false
+    { kernelPackages
     , enableSystemdStage1 ? false
-    , zfsPackage ? if enableUnstable then pkgs.zfs else pkgs.zfsUnstable
+    , zfsPackage
     , extraTest ? ""
     }:
     makeTest {
@@ -35,7 +32,7 @@ let
         boot.loader.timeout = 0;
         boot.loader.efi.canTouchEfiVariables = true;
         networking.hostId = "deadbeef";
-        boot.kernelPackages = kernelPackage;
+        boot.kernelPackages = kernelPackages;
         boot.zfs.package = zfsPackage;
         boot.supportedFilesystems = [ "zfs" ];
         boot.initrd.systemd.enable = enableSystemdStage1;
@@ -197,16 +194,22 @@ in {
   # maintainer: @raitobezarius
   series_2_1 = makeZfsTest "2.1-series" {
     zfsPackage = pkgs.zfs_2_1;
+    kernelPackages = pkgs.linuxPackages;
   };
 
-  stable = makeZfsTest "stable" { };
+  stable = makeZfsTest "stable" {
+    zfsPackage = pkgs.zfsStable;
+    kernelPackages = pkgs.linuxPackages;
+  };
 
-  unstable = makeZfsTest "unstable" {
-    enableUnstable = true;
+  unstable = makeZfsTest "unstable" rec {
+    zfsPackage = pkgs.zfsUnstable;
+    kernelPackages = zfsPackage.latestCompatibleLinuxPackages;
   };
 
-  unstableWithSystemdStage1 = makeZfsTest "unstable" {
-    enableUnstable = true;
+  unstableWithSystemdStage1 = makeZfsTest "unstable" rec {
+    zfsPackage = pkgs.zfsUnstable;
+    kernelPackages = zfsPackage.latestCompatibleLinuxPackages;
     enableSystemdStage1 = true;
   };
 
diff --git a/nixos/tests/zigbee2mqtt.nix b/nixos/tests/zigbee2mqtt.nix
index 1a40d175df83..9d6d03a4b9bb 100644
--- a/nixos/tests/zigbee2mqtt.nix
+++ b/nixos/tests/zigbee2mqtt.nix
@@ -3,6 +3,15 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
     name = "zigbee2mqtt";
     nodes.machine = { pkgs, ... }:
       {
+        systemd.services.dummy-serial = {
+          wantedBy = [
+            "multi-user.target"
+          ];
+          serviceConfig = {
+            ExecStart = "${pkgs.socat}/bin/socat pty,link=/dev/ttyACM0,mode=666 pty,link=/dev/ttyACM1";
+          };
+        };
+
         services.zigbee2mqtt = {
           enable = true;
         };
@@ -11,10 +20,10 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
       };
 
     testScript = ''
-      machine.wait_for_unit("zigbee2mqtt.service")
+      machine.wait_for_unit("multi-user.target")
       machine.wait_until_fails("systemctl status zigbee2mqtt.service")
       machine.succeed(
-          "journalctl -eu zigbee2mqtt | grep \"Error: Error while opening serialport 'Error: Error: No such file or directory, cannot open /dev/ttyACM0'\""
+          "journalctl -eu zigbee2mqtt | grep 'Failed to connect to the adapter'"
       )
 
       machine.log(machine.succeed("systemd-analyze security zigbee2mqtt.service"))
diff --git a/nixos/tests/zrepl.nix b/nixos/tests/zrepl.nix
index b16c7eddc7ae..bdf11122c73f 100644
--- a/nixos/tests/zrepl.nix
+++ b/nixos/tests/zrepl.nix
@@ -42,6 +42,7 @@ import ./make-test-python.nix (
       start_all()
 
       with subtest("Wait for zrepl and network ready"):
+          host.systemctl("start network-online.target")
           host.wait_for_unit("network-online.target")
           host.wait_for_unit("zrepl.service")
 
diff --git a/pkgs/README.md b/pkgs/README.md
index f614f1f72976..963e58a16fe9 100644
--- a/pkgs/README.md
+++ b/pkgs/README.md
@@ -348,7 +348,7 @@ There are a few naming guidelines:
 
 - The `pname` and the `version` attribute _must not_ contain uppercase letters — e.g., `"mplayer" instead of `"MPlayer"`.
 
-- The `version` attribute _must_ start with a digit e.g`"0.3.1rc2".
+- The `version` attribute _must_ start with a digit e.g., `"0.3.1rc2"`.
 
 - If a package is a commit from a repository without a version assigned, then the `version` attribute _should_ be the latest upstream version preceding that commit, followed by `-unstable-` and the date of the (fetched) commit. The date _must_ be in `"YYYY-MM-DD"` format.
 
diff --git a/pkgs/applications/audio/bristol/default.nix b/pkgs/applications/audio/bristol/default.nix
index 39227fd06522..fc50691155ec 100644
--- a/pkgs/applications/audio/bristol/default.nix
+++ b/pkgs/applications/audio/bristol/default.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv, fetchurl, alsa-lib, libjack2, pkg-config, libpulseaudio, xorg }:
+{ lib, stdenv, fetchurl, alsa-lib, libjack2, pkg-config, libpulseaudio, xorg, copyDesktopItems, makeDesktopItem }:
 
-stdenv.mkDerivation  rec {
+stdenv.mkDerivation rec {
   pname = "bristol";
   version = "0.60.11";
 
@@ -9,9 +9,13 @@ stdenv.mkDerivation  rec {
     sha256 = "1fi2m4gmvxdi260821y09lxsimq82yv4k5bbgk3kyc3x1nyhn7vx";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config copyDesktopItems ];
   buildInputs = [
-    alsa-lib libjack2 libpulseaudio xorg.libX11 xorg.libXext
+    alsa-lib
+    libjack2
+    libpulseaudio
+    xorg.libX11
+    xorg.libXext
     xorg.xorgproto
   ];
 
@@ -30,11 +34,27 @@ stdenv.mkDerivation  rec {
     sed -e "s@\`which brighton\`@$out/bin/brighton@g" -i bin/startBristol
   '';
 
+  postInstall = ''
+    mkdir -p $out/share/icons/hicolor/scalable/apps/
+    ln -s $out/share/bristol/bitmaps/bicon.svg $out/share/icons/hicolor/scalable/apps/
+  '';
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "Bristol";
+      exec = "bristol";
+      icon = "bicon";
+      desktopName = "Bristol";
+      comment = "Graphical user interface for the Bristol synthesizer emulator";
+      categories = [ "AudioVideo" ];
+    })
+  ];
+
   meta = with lib; {
     description = "A range of synthesiser, electric piano and organ emulations";
     homepage = "https://bristol.sourceforge.net";
     license = licenses.gpl3;
-    platforms = ["x86_64-linux" "i686-linux"];
+    platforms = [ "x86_64-linux" "i686-linux" ];
     maintainers = [ maintainers.goibhniu ];
   };
 }
diff --git a/pkgs/applications/audio/ensemble-chorus/default.nix b/pkgs/applications/audio/ensemble-chorus/default.nix
index b3255126205a..7fcf412dd593 100644
--- a/pkgs/applications/audio/ensemble-chorus/default.nix
+++ b/pkgs/applications/audio/ensemble-chorus/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "ensemble-chorus";
-  version = "unstable-15-02-2019";
+  version = "0-unstable-2019-02-15";
 
   src = fetchFromGitHub {
     owner = "jpcima";
diff --git a/pkgs/applications/audio/faust/faustlive.nix b/pkgs/applications/audio/faust/faustlive.nix
index 3e1074ad691f..1d91f561c044 100644
--- a/pkgs/applications/audio/faust/faustlive.nix
+++ b/pkgs/applications/audio/faust/faustlive.nix
@@ -1,6 +1,28 @@
-{ lib, stdenv, fetchFromGitHub
-, llvm_10, qt5, qrencode, libmicrohttpd, libjack2, alsa-lib, faust, curl
-, bc, coreutils, which, libsndfile, flac, libogg, libvorbis, libopus, pkg-config, libxcb, cmake, gnutls, libtasn1, p11-kit
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, pkg-config
+, which
+, alsa-lib
+, curl
+, faust
+, flac
+, gnutls
+, libjack2
+, libmicrohttpd
+, libmpg123
+, libogg
+, libopus
+, libsndfile
+, libtasn1
+, libvorbis
+, libxcb
+, llvm
+, p11-kit
+, qrencode
+, qt5
 }:
 
 stdenv.mkDerivation rec {
@@ -10,22 +32,55 @@ stdenv.mkDerivation rec {
     owner = "grame-cncm";
     repo = "faustlive";
     rev = version;
-    sha256 = "sha256-RqtdDkP63l/30sL5PDocvpar5TI4LdKfeeliSNeOHog=";
+    hash = "sha256-RqtdDkP63l/30sL5PDocvpar5TI4LdKfeeliSNeOHog=";
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [ pkg-config qt5.wrapQtAppsHook cmake ];
+  patches = [
+    # move mutex initialization outside assert call
+    # https://github.com/grame-cncm/faustlive/pull/59
+    (fetchpatch {
+      name = "initalize-mutexes.patch";
+      url = "https://github.com/grame-cncm/faustlive/commit/fdd46b12202def9731b9ed2f6363287af16be892.patch";
+      hash = "sha256-yH95Y4Jbqgs8siE9rtutmu5C2sNZwQMJzCgDYqNBDj4=";
+    })
+  ];
 
-  buildInputs = [
-    llvm_10 qt5.qtbase qrencode libmicrohttpd libjack2 alsa-lib faust curl
-    bc coreutils which libsndfile flac libogg libvorbis libopus libxcb gnutls libtasn1 p11-kit
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    cmake
+    faust
+    llvm
+    pkg-config
+    qt5.wrapQtAppsHook
+    which
   ];
 
-  makeFlags = [ "PREFIX=$(out)" ];
+  buildInputs = [
+    alsa-lib
+    curl
+    faust
+    flac
+    gnutls
+    libjack2
+    libmicrohttpd
+    libmpg123
+    libogg
+    libopus
+    libsndfile
+    libtasn1
+    libvorbis
+    libxcb
+    llvm
+    p11-kit
+    qrencode
+    qt5.qtbase
+  ];
 
-  postInstall = ''
-    wrapProgram $out/bin/FaustLive --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libmicrohttpd libsndfile faust llvm_10 ]}"
-  '';
+  cmakeFlags = [
+    "-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON"
+  ];
 
   postPatch = "cd Build";
 
diff --git a/pkgs/applications/audio/faustPhysicalModeling/default.nix b/pkgs/applications/audio/faustPhysicalModeling/default.nix
index d5e15a190235..75b3ae06556f 100644
--- a/pkgs/applications/audio/faustPhysicalModeling/default.nix
+++ b/pkgs/applications/audio/faustPhysicalModeling/default.nix
@@ -1,13 +1,13 @@
 { stdenv, lib, fetchFromGitHub, faust2jaqt, faust2lv2 }:
 stdenv.mkDerivation rec {
   pname = "faustPhysicalModeling";
-  version = "2.69.3";
+  version = "2.70.3";
 
   src = fetchFromGitHub {
     owner = "grame-cncm";
     repo = "faust";
     rev = version;
-    sha256 = "sha256-E7cHDeQV7NVKyoCgI8P3gennpBidk7JmdnFGSIulvvQ=";
+    sha256 = "sha256-QkksliLu2TnJ1GoM91e+Qf3SlRv3T06WNU++S3qq3e0=";
   };
 
   buildInputs = [ faust2jaqt faust2lv2 ];
diff --git a/pkgs/applications/audio/g4music/default.nix b/pkgs/applications/audio/g4music/default.nix
index a0a9f5f828a5..ed8b067ade32 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.4-1";
+  version = "3.5.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "neithern";
     repo = "g4music";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-uklgxhyrnFQSUcttXvYQtm2BybRkdTK1IfaRpOp0sOE=";
+    hash = "sha256-4UM1CspevlDHpuyvSekMM73XyxVqpdUDtJ7im7hnxHY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/gbsplay/default.nix b/pkgs/applications/audio/gbsplay/default.nix
index 1e6bbdb4dd71..c8a0e7efe487 100644
--- a/pkgs/applications/audio/gbsplay/default.nix
+++ b/pkgs/applications/audio/gbsplay/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gbsplay";
-  version = "0.0.94";
+  version = "0.0.95";
 
   src = fetchFromGitHub {
     owner = "mmitch";
     repo = "gbsplay";
     rev = version;
-    sha256 = "VpaXbjotmc/Ref1geiKkBX9UhbPxfAGkFAdKVxP8Uxo=";
+    sha256 = "sha256-s6TGAWwIm2raXk3kA3D0/fg+Hn3O/lerPlxGOryXIBQ=";
   };
 
   configureFlags = [
diff --git a/pkgs/applications/audio/go-musicfox/default.nix b/pkgs/applications/audio/go-musicfox/default.nix
index 0432224fa3c3..549ab0f692e7 100644
--- a/pkgs/applications/audio/go-musicfox/default.nix
+++ b/pkgs/applications/audio/go-musicfox/default.nix
@@ -1,5 +1,5 @@
 { lib
-, buildGo121Module
+, buildGoModule
 , fetchFromGitHub
 , pkg-config
 , alsa-lib
@@ -7,7 +7,7 @@
 , nix-update-script
 }:
 
-buildGo121Module rec {
+buildGoModule rec {
   pname = "go-musicfox";
   version = "4.3.0";
 
diff --git a/pkgs/applications/audio/grandorgue/default.nix b/pkgs/applications/audio/grandorgue/default.nix
index 9856b81c92b8..6ca3f39a9dc0 100644
--- a/pkgs/applications/audio/grandorgue/default.nix
+++ b/pkgs/applications/audio/grandorgue/default.nix
@@ -1,18 +1,34 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, fftwFloat, alsa-lib
-, zlib, wavpack, wxGTK32, udev, jackaudioSupport ? false, libjack2
-, imagemagick, libicns, makeWrapper, Cocoa
-, includeDemo ? true }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+, fftwFloat
+, alsa-lib
+, zlib
+, wavpack
+, wxGTK32
+, udev
+, jackaudioSupport ? false
+, libjack2
+, imagemagick
+, libicns
+, yaml-cpp
+, makeWrapper
+, Cocoa
+, includeDemo ? true
+}:
 
 stdenv.mkDerivation rec {
   pname = "grandorgue";
-  version = "3.11.0";
+  version = "3.14.0";
 
   src = fetchFromGitHub {
     owner = "GrandOrgue";
     repo = pname;
     rev = version;
     fetchSubmodules = true;
-    sha256 = "sha256-l1KqER/vkNwgKLXIFUzHnYLw2ivGNP7hRiKhIOzn7pw=";
+    hash = "sha256-kPz11V2yNmBe80egNLYxh/m2B1nDca3C5sGbEnrkqnw=";
   };
 
   postPatch = ''
@@ -24,7 +40,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkg-config imagemagick libicns makeWrapper ];
 
-  buildInputs = [ fftwFloat zlib wavpack wxGTK32 ]
+  buildInputs = [ fftwFloat zlib wavpack wxGTK32 yaml-cpp ]
     ++ lib.optionals stdenv.isLinux [ alsa-lib udev ]
     ++ lib.optionals stdenv.isDarwin [ Cocoa ]
     ++ lib.optional jackaudioSupport libjack2;
@@ -53,5 +69,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.puzzlewolf ];
+    mainProgram = "GrandOrgue";
   };
 }
diff --git a/pkgs/applications/audio/gtkcord4/default.nix b/pkgs/applications/audio/gtkcord4/default.nix
index 1a4001d670d7..efa17257be02 100644
--- a/pkgs/applications/audio/gtkcord4/default.nix
+++ b/pkgs/applications/audio/gtkcord4/default.nix
@@ -18,13 +18,13 @@
 
 buildGoModule rec {
   pname = "gtkcord4";
-  version = "0.0.16-1";
+  version = "0.0.17";
 
   src = fetchFromGitHub {
     owner = "diamondburned";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-GDQ11X202RIoJUZ2eJ9ukHalhXtKYn9C8lcvAzzaB+4=";
+    hash = "sha256-fvY55N7AyCasT1Nxi37AtbyGQ4qC/764WgfCmwFa1YQ=";
   };
 
   nativeBuildInputs = [
@@ -56,7 +56,7 @@ buildGoModule rec {
     install -D -m 444 internal/icons/hicolor/scalable/apps/logo.svg $out/share/icons/hicolor/scalable/apps/gtkcord4.svg
   '';
 
-  vendorHash = "sha256-ZQBYi5t6ntukoHP2FtwpZrpFd7b2opPC8tOSU9j3jUM=";
+  vendorHash = "sha256-dMrdbUAU87wmnRDlJukG6w4PZ2DKx2v68gxNW5Ewijk=";
 
   meta = with lib; {
     description = "GTK4 Discord client in Go, attempt #4";
diff --git a/pkgs/applications/audio/hqplayer-desktop/default.nix b/pkgs/applications/audio/hqplayer-desktop/default.nix
index 9b77ac59fd9e..7aeb55bfa712 100644
--- a/pkgs/applications/audio/hqplayer-desktop/default.nix
+++ b/pkgs/applications/audio/hqplayer-desktop/default.nix
@@ -8,7 +8,7 @@
 , lib
 , libmicrohttpd
 , libusb-compat-0_1
-, llvmPackages_10
+, llvmPackages
 , qtcharts
 , qtdeclarative
 , qtquickcontrols2
@@ -39,7 +39,7 @@ mkDerivation rec {
     gcc12.cc.lib
     libmicrohttpd
     libusb-compat-0_1
-    llvmPackages_10.openmp
+    llvmPackages.openmp
     qtcharts
     qtdeclarative
     qtquickcontrols2
diff --git a/pkgs/applications/audio/hydrogen/default.nix b/pkgs/applications/audio/hydrogen/default.nix
index 0bea741e19d8..1460a78d9a9b 100644
--- a/pkgs/applications/audio/hydrogen/default.nix
+++ b/pkgs/applications/audio/hydrogen/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hydrogen";
-  version = "1.2.2";
+  version = "1.2.3";
 
   src = fetchFromGitHub {
     owner = "hydrogen-music";
     repo = pname;
     rev = version;
-    sha256 = "sha256-A9mLiPh7ZMWJ11PcVP07IxZ8WdV2HkkKLix77egbC0M=";
+    sha256 = "sha256-7dgckFscyms+HW3xrsr3+lMua/H82U2jLkm/OKw3YWE=";
   };
 
   nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
diff --git a/pkgs/applications/audio/ledfx/default.nix b/pkgs/applications/audio/ledfx/default.nix
index 40a684631265..fb1557b0d2f8 100644
--- a/pkgs/applications/audio/ledfx/default.nix
+++ b/pkgs/applications/audio/ledfx/default.nix
@@ -5,23 +5,25 @@
 
 python3.pkgs.buildPythonPackage rec {
   pname = "ledfx";
-  version = "2.0.86";
+  version = "2.0.90";
   pyproject= true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-miOGMsrvK3A3SYnd+i/lqB+9GOHtO4F3RW8NkxDgFqU=";
+    hash = "sha256-ZlZtC0bi9ZUf/1D9hUxxhdix6F8l7Lg5IUOOg+JHGYU=";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "'rpi-ws281x>=4.3.0; platform_system == \"Linux\"'," "" \
-      --replace "sentry-sdk==1.38.0" "sentry-sdk" \
-      --replace "~=" ">="
-  '';
+  pythonRelaxDeps = true;
+
+  pythonRemoveDeps = [
+    # not packaged
+    "rpi-ws281x"
+  ];
 
   nativeBuildInputs = with python3.pkgs; [
-    setuptools
+    cython
+    poetry-core
+    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -29,8 +31,8 @@ python3.pkgs.buildPythonPackage rec {
     aiohttp-cors
     aubio
     certifi
-    cython
     flux-led
+    python-dotenv
     icmplib
     mss
     multidict
@@ -52,6 +54,7 @@ python3.pkgs.buildPythonPackage rec {
     sentry-sdk
     setuptools
     sounddevice
+    stupidartnet
     uvloop
     voluptuous
     zeroconf
diff --git a/pkgs/applications/audio/lyrebird/default.nix b/pkgs/applications/audio/lyrebird/default.nix
index 888087afb79f..4f1d8ca36e84 100644
--- a/pkgs/applications/audio/lyrebird/default.nix
+++ b/pkgs/applications/audio/lyrebird/default.nix
@@ -20,7 +20,7 @@ let
 in
 python3Packages.buildPythonApplication rec {
   pname = "lyrebird";
-  version = "1.1.0";
+  version = "1.2.0";
 
   format = "other";
   doCheck = false;
@@ -28,8 +28,8 @@ python3Packages.buildPythonApplication rec {
   src = fetchFromGitHub {
     owner = "chxrlt";
     repo = "lyrebird";
-    rev = "v${version}";
-    sha256 = "0wmnww2wi8bb9m8jgc18n04gjia8pf9klmvij0w98xz11l6kxb13";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-VIYcOxvSpzRvJMzEv2i5b7t0WMF7aQxB4Y1jfvuZN/Y=";
   };
 
   propagatedBuildInputs = with python3Packages; [ toml pygobject3 ];
diff --git a/pkgs/applications/audio/mmlgui/default.nix b/pkgs/applications/audio/mmlgui/default.nix
index d31ece0187d3..98be95b3bf12 100644
--- a/pkgs/applications/audio/mmlgui/default.nix
+++ b/pkgs/applications/audio/mmlgui/default.nix
@@ -39,6 +39,10 @@ stdenv.mkDerivation rec {
     # Don't force building tests
     substituteInPlace Makefile \
       --replace 'all: $(MMLGUI_BIN) test' 'all: $(MMLGUI_BIN)'
+
+    # Breaking change in libvgm
+    substituteInPlace src/emu_player.cpp \
+      --replace 'Resmpl_SetVals(&resmpl, 0xff' 'Resmpl_SetVals(&resmpl, RSMODE_LINEAR'
   '';
 
   strictDeps = true;
diff --git a/pkgs/applications/audio/monkeys-audio/default.nix b/pkgs/applications/audio/monkeys-audio/default.nix
index f7952bc18c69..2063274d6e0c 100644
--- a/pkgs/applications/audio/monkeys-audio/default.nix
+++ b/pkgs/applications/audio/monkeys-audio/default.nix
@@ -5,13 +5,13 @@
 }:
 
 stdenv.mkDerivation (finalAttrs: {
-  version = "10.40";
+  version = "10.48";
   pname = "monkeys-audio";
 
   src = fetchzip {
     url = "https://monkeysaudio.com/files/MAC_${
       builtins.concatStringsSep "" (lib.strings.splitString "." finalAttrs.version)}_SDK.zip";
-    sha256 = "sha256-UHQSZM5AjODtgg0Pgi2N8tLKRI9Qg1CotPx2KoJk1wQ=";
+    hash = "sha256-ZVJ6Czn2PNumMoWQwhJD0tjOJp9a0GxuD8LUMC47aNw=";
     stripRoot = false;
   };
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/mopidy/mopidy.nix b/pkgs/applications/audio/mopidy/mopidy.nix
index 4f4a3fa0201b..b92d0fd77c11 100644
--- a/pkgs/applications/audio/mopidy/mopidy.nix
+++ b/pkgs/applications/audio/mopidy/mopidy.nix
@@ -4,13 +4,13 @@
 
 pythonPackages.buildPythonApplication rec {
   pname = "mopidy";
-  version = "3.4.1";
+  version = "3.4.2";
 
   src = fetchFromGitHub {
     owner = "mopidy";
     repo = "mopidy";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-IUQe5WH2vsrAOgokhTNVVM3lnJXphT2xNGu27hWBLSo=";
+    sha256 = "sha256-2OFav2HaQq/RphmZxLyL1n3suwzt1Y/d4h33EdbStjk=";
   };
 
   nativeBuildInputs = [ wrapGAppsNoGuiHook ];
diff --git a/pkgs/applications/audio/mopidy/mopify.nix b/pkgs/applications/audio/mopidy/mopify.nix
index 8d4dcd140382..68ba39a0ab42 100644
--- a/pkgs/applications/audio/mopidy/mopify.nix
+++ b/pkgs/applications/audio/mopidy/mopify.nix
@@ -2,11 +2,11 @@
 
 pythonPackages.buildPythonApplication rec {
   pname = "Mopidy-Mopify";
-  version = "1.6.1";
+  version = "1.7.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "93ad2b3d38b1450c8f2698bb908b0b077a96b3f64cdd6486519e518132e23a5c";
+    sha256 = "sha256-RlCC+39zC+LeA/QDWPHYx5TrEwOgVrnvcH1Xg12qSLE=";
   };
 
   propagatedBuildInputs = with pythonPackages; [ mopidy configobj ];
diff --git a/pkgs/applications/audio/mopidy/notify.nix b/pkgs/applications/audio/mopidy/notify.nix
index 0840f2616979..8b90089ef23d 100644
--- a/pkgs/applications/audio/mopidy/notify.nix
+++ b/pkgs/applications/audio/mopidy/notify.nix
@@ -2,11 +2,11 @@
 
 pythonPackages.buildPythonApplication rec {
   pname = "Mopidy-Notify";
-  version = "0.2.0";
+  version = "0.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-lzZupjlS0kbNvsn18serOoMfu0sRb0nRwpowvOPvt/g=";
+    sha256 = "sha256-8FT4O4k0wEsdHA1vJaOW9UamJ3QLyO47HwL5XcSU3Pc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/audio/mopidy/podcast.nix b/pkgs/applications/audio/mopidy/podcast.nix
index bb834aa9872f..8d75b888826c 100644
--- a/pkgs/applications/audio/mopidy/podcast.nix
+++ b/pkgs/applications/audio/mopidy/podcast.nix
@@ -2,12 +2,12 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "mopidy-podcast";
-  version = "3.0.0";
+  version = "3.0.1";
 
   src = fetchPypi {
     inherit version;
     pname = "Mopidy-Podcast";
-    sha256 = "1z2b523yvdpcf8p7m7kczrvaw045lmxzhq4qj00dflxa2yw61qxr";
+    sha256 = "sha256-grNPVEVM2PlpYhBXe6sabFjWVB9+q+apIRjcHUxH52A=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/audio/mpg123/default.nix b/pkgs/applications/audio/mpg123/default.nix
index 94ee6ad53e69..e1d2e8d35d52 100644
--- a/pkgs/applications/audio/mpg123/default.nix
+++ b/pkgs/applications/audio/mpg123/default.nix
@@ -21,11 +21,11 @@ assert withConplay -> !libOnly;
 
 stdenv.mkDerivation rec {
   pname = "${lib.optionalString libOnly "lib"}mpg123";
-  version = "1.32.3";
+  version = "1.32.4";
 
   src = fetchurl {
     url = "mirror://sourceforge/mpg123/mpg123-${version}.tar.bz2";
-    hash = "sha256-LZkTpX1O6PSXoYLG6CWCYCQJeCpPtIHpif7r9ENYZ7Q=";
+    hash = "sha256-WplmQzj7L3UbZi9A7iWATQydtrV13LXOdBxtxkIkoIo=";
   };
 
   outputs = [ "out" "dev" "man" ] ++ lib.optional withConplay "conplay";
diff --git a/pkgs/applications/audio/musescore/default.nix b/pkgs/applications/audio/musescore/default.nix
index 3dbb9c7884f1..71ae712c9f67 100644
--- a/pkgs/applications/audio/musescore/default.nix
+++ b/pkgs/applications/audio/musescore/default.nix
@@ -48,13 +48,13 @@ let
   } else portaudio;
 in stdenv'.mkDerivation (finalAttrs: {
   pname = "musescore";
-  version = "4.2.0";
+  version = "4.2.1";
 
   src = fetchFromGitHub {
     owner = "musescore";
     repo = "MuseScore";
     rev = "v${finalAttrs.version}";
-    sha256 = "sha256-vNA1VPCHLt5kuhIix8kgeq1VlbuIX1lOY3nJaufvuyc=";
+    sha256 = "sha256-YCeO/ijxA+tZxNviqmlIBkAdjPTrKoOoo1QyMIOqhWU=";
   };
 
   cmakeFlags = [
diff --git a/pkgs/applications/audio/mympd/default.nix b/pkgs/applications/audio/mympd/default.nix
index 3b2765367d66..3dc49ad3bd92 100644
--- a/pkgs/applications/audio/mympd/default.nix
+++ b/pkgs/applications/audio/mympd/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "mympd";
-  version = "13.0.6";
+  version = "14.0.0";
 
   src = fetchFromGitHub {
     owner = "jcorporation";
     repo = "myMPD";
     rev = "v${finalAttrs.version}";
-    sha256 = "sha256-7yqpm2qMDHWVM5m5FueYlkEFY+VIW8Cx+aRa1iY2vZ4=";
+    sha256 = "sha256-srwLnoQSPex7/PtgF6RWpJM39fpOqN3wze5ABSRTIRA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/netease-music-tui/default.nix b/pkgs/applications/audio/netease-music-tui/default.nix
index 4449a8907a20..a76ae5a0d71a 100644
--- a/pkgs/applications/audio/netease-music-tui/default.nix
+++ b/pkgs/applications/audio/netease-music-tui/default.nix
@@ -29,5 +29,6 @@ rustPlatform.buildRustPackage rec {
     description = "netease cloud music terminal client by rust";
     maintainers = with maintainers; [ vonfry ];
     license = licenses.mit;
+    mainProgram = "ncmt";
   };
 }
diff --git a/pkgs/applications/audio/noisetorch/default.nix b/pkgs/applications/audio/noisetorch/default.nix
index 51b565bc3e74..78f50cbbedbc 100644
--- a/pkgs/applications/audio/noisetorch/default.nix
+++ b/pkgs/applications/audio/noisetorch/default.nix
@@ -37,5 +37,6 @@ buildGoModule rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ panaeon lom ];
+    mainProgram = "noisetorch";
   };
 }
diff --git a/pkgs/applications/audio/picard/default.nix b/pkgs/applications/audio/picard/default.nix
index 065018448364..46c7ba53ba05 100644
--- a/pkgs/applications/audio/picard/default.nix
+++ b/pkgs/applications/audio/picard/default.nix
@@ -20,14 +20,14 @@ let
 in
 pythonPackages.buildPythonApplication rec {
   pname = "picard";
-  version = "2.10";
+  version = "2.11";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "metabrainz";
     repo = "picard";
     rev = "refs/tags/release-${version}";
-    hash = "sha256-wgIJ813mOSpFzFJESDwNvRSZcX42MTtOyFgSeeRR28g=";
+    hash = "sha256-2RGKHJKJ/QXR6Rehch4r1UtI+frRXa4G+n0bUmCGSu8=";
   };
 
   nativeBuildInputs = [
@@ -77,7 +77,7 @@ pythonPackages.buildPythonApplication rec {
     homepage = "https://picard.musicbrainz.org";
     changelog = "https://picard.musicbrainz.org/changelog";
     description = "The official MusicBrainz tagger";
-    maintainers = with maintainers; [ ehmry paveloom ];
+    maintainers = with maintainers; [ ehmry ];
     license = licenses.gpl2Plus;
     platforms = platforms.all;
   };
diff --git a/pkgs/applications/audio/polyphone/default.nix b/pkgs/applications/audio/polyphone/default.nix
index f7008bf66bba..0e73861aa0f4 100644
--- a/pkgs/applications/audio/polyphone/default.nix
+++ b/pkgs/applications/audio/polyphone/default.nix
@@ -29,8 +29,13 @@ mkDerivation rec {
   '';
 
   installPhase = ''
+    runHook preInstall
     install -d $out/bin
     install -m755 bin/polyphone $out/bin/
+
+    install -Dm444 ./contrib/com.polyphone_soundfonts.polyphone.desktop -t $out/share/applications/
+    install -Dm444 ./contrib/polyphone.svg -t $out/share/icons/hicolor/scalable/apps/
+    runHook postInstall
   '';
 
   qmakeFlags = [
diff --git a/pkgs/applications/audio/praat/default.nix b/pkgs/applications/audio/praat/default.nix
index bb43ae075dcc..4fd62e984dfe 100644
--- a/pkgs/applications/audio/praat/default.nix
+++ b/pkgs/applications/audio/praat/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "praat";
-  version = "6.4.01";
+  version = "6.4.05";
 
   src = fetchFromGitHub {
     owner = "praat";
     repo = "praat";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-6g9oDPcJpI/udX+GKyCUkv+mjGoTbHU2YfTYaTVRwu4=";
+    hash = "sha256-ctCDxE//vH4i22bKYBs14pdmp+1M6K+w7Tm22ZoGOf8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/psst/default.nix b/pkgs/applications/audio/psst/default.nix
index 0a4c7c6c1362..58d39e874720 100644
--- a/pkgs/applications/audio/psst/default.nix
+++ b/pkgs/applications/audio/psst/default.nix
@@ -16,13 +16,13 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "psst";
-  version = "unstable-2024-01-12";
+  version = "unstable-2024-01-28";
 
   src = fetchFromGitHub {
     owner = "jpochyla";
     repo = pname;
-    rev = "c70ace50e8c50c38dc6c4ea1156de2b50e6e76b5";
-    hash = "sha256-WCtD06fZHdn0kT5SDE7aTUZvQlX9OBSAqHu+qopBzTM=";
+    rev = "38422b1795c98d8d0e3bc8dc479d12f8d5bd7154";
+    hash = "sha256-VTbjlSfkbon38IPBCazwrZtWR8dH9mE0sSVIlmxcUks=";
   };
 
   cargoLock = {
diff --git a/pkgs/applications/audio/psst/make-build-reproducible.patch b/pkgs/applications/audio/psst/make-build-reproducible.patch
index 459638c2c5f7..e70b7e726ea5 100644
--- a/pkgs/applications/audio/psst/make-build-reproducible.patch
+++ b/pkgs/applications/audio/psst/make-build-reproducible.patch
@@ -51,7 +51,7 @@ index fcbd491..2d71ee3 100644
 -pub const GIT_VERSION: &str = git_version!();
 -pub const BUILD_TIME: &str = include!(concat!(env!("OUT_DIR"), "/build-time.txt"));
 -pub const REMOTE_URL: &str = include!(concat!(env!("OUT_DIR"), "/remote-url.txt"));
-+pub const GIT_VERSION: &str = "c70ace50e8c50c38dc6c4ea1156de2b50e6e76b5";
++pub const GIT_VERSION: &str = "38422b1795c98d8d0e3bc8dc479d12f8d5bd7154";
 +pub const BUILD_TIME: &str = "1970-01-01 00:00:00";
 +pub const REMOTE_URL: &str = "https://github.com/jpochyla/psst";
  
diff --git a/pkgs/applications/audio/pt2-clone/default.nix b/pkgs/applications/audio/pt2-clone/default.nix
index b6fa1ce2d0d4..b8775bc23532 100644
--- a/pkgs/applications/audio/pt2-clone/default.nix
+++ b/pkgs/applications/audio/pt2-clone/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pt2-clone";
-  version = "1.65.1";
+  version = "1.66.1";
 
   src = fetchFromGitHub {
     owner = "8bitbubsy";
     repo = "pt2-clone";
     rev = "v${version}";
-    sha256 = "sha256-0bZGiulLeAZ8bR0lj0Bm7te3T3YhxSOBFgMgWADRkIY=";
+    sha256 = "sha256-j7VPC1sj1Q+wL2TBgv06uYLPqym8F57HG1SRvj0Ggeo=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/audio/qjackctl/default.nix b/pkgs/applications/audio/qjackctl/default.nix
index c7a6bd89328f..abfcef0d2f75 100644
--- a/pkgs/applications/audio/qjackctl/default.nix
+++ b/pkgs/applications/audio/qjackctl/default.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation rec {
-  version = "0.9.12";
+  version = "0.9.13";
   pname = "qjackctl";
 
   # some dependencies such as killall have to be installed additionally
@@ -14,7 +14,7 @@ mkDerivation rec {
     owner = "rncbc";
     repo = "qjackctl";
     rev = "${pname}_${lib.replaceStrings ["."] ["_"] version}";
-    sha256 = "sha256-S8fEg8joFHgk6MKWeSxPyTM8O6Ffx5NG90OabPPDs7s=";
+    sha256 = "sha256-tCABvZzAmDKgOfTylOf2uZsKeib8PgvdQd1niaI8RxM=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/audio/qpwgraph/default.nix b/pkgs/applications/audio/qpwgraph/default.nix
index bab3d8c9b4ee..de419c8fa48c 100644
--- a/pkgs/applications/audio/qpwgraph/default.nix
+++ b/pkgs/applications/audio/qpwgraph/default.nix
@@ -13,14 +13,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "qpwgraph";
-  version = "0.6.1";
+  version = "0.6.2";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "rncbc";
     repo = "qpwgraph";
     rev = "v${finalAttrs.version}";
-    sha256 = "sha256-oB8/q0igSZoaDzKzgmGAECU0qJwO67t9qWw+fB2vfxg=";
+    sha256 = "sha256-GlXUQz7tj7dfxVikvu0idzhQaq7raFC9jxJ2zFeHBQU=";
   };
 
   nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
diff --git a/pkgs/applications/audio/quodlibet/default.nix b/pkgs/applications/audio/quodlibet/default.nix
index 67a597b62388..f7baad9c53a0 100644
--- a/pkgs/applications/audio/quodlibet/default.nix
+++ b/pkgs/applications/audio/quodlibet/default.nix
@@ -171,6 +171,6 @@ python3.pkgs.buildPythonApplication rec {
     '';
     homepage = "https://quodlibet.readthedocs.io/en/latest";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ coroa paveloom pbogdan ];
+    maintainers = with maintainers; [ coroa pbogdan ];
   };
 }
diff --git a/pkgs/applications/audio/reaper/default.nix b/pkgs/applications/audio/reaper/default.nix
index 9d943ca9c415..aef236d4cd8b 100644
--- a/pkgs/applications/audio/reaper/default.nix
+++ b/pkgs/applications/audio/reaper/default.nix
@@ -28,13 +28,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "reaper";
-  version = "7.08";
+  version = "7.09";
 
   src = fetchurl {
     url = url_for_platform version stdenv.hostPlatform.qemuArch;
-    hash = if stdenv.isDarwin then "sha256-PgYAwSSRwew+QLx6/Gs+J1v3iZ4U22bn6V8XWZk8Pz0=" else {
-      x86_64-linux = "sha256-lya/B9k9uWrvRbMnWRT0YDV9o+DpmjPGynBVPFij3rs=";
-      aarch64-linux = "sha256-0ePUvVrArUdg0t+CQK37yXA4UlHlMj2Mafe0dTyz5JU=";
+    hash = if stdenv.isDarwin then "sha256-MztA9Azj20tyg/nFtXmvojeABNX11HCkmIcgMhNYyMQ=" else {
+      x86_64-linux = "sha256-Mo7k8XbKLUkBvo2A73qeqHgDtXD/fBVtSVv74k/WGRo=";
+      aarch64-linux = "sha256-ttNHMC8Ouin2fNnIb5X5pnKwGrAML192oZdg/Q8SFlg=";
     }.${stdenv.hostPlatform.system};
   };
 
diff --git a/pkgs/applications/audio/roomeqwizard/default.nix b/pkgs/applications/audio/roomeqwizard/default.nix
index 26a8d00071fe..80b5f733ce06 100644
--- a/pkgs/applications/audio/roomeqwizard/default.nix
+++ b/pkgs/applications/audio/roomeqwizard/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "roomeqwizard";
-  version = "5.30.4";
+  version = "5.30.8";
 
   src = fetchurl {
     url = "https://www.roomeqwizard.com/installers/REW_linux_no_jre_${lib.replaceStrings [ "." ] [ "_" ] version}.sh";
-    sha256 = "sha256-585xfNzhWFdtNS4E5BE84zjkWDr/p1Nu9CJ3nTJc7dw=";
+    sha256 = "sha256-ZHxMwbT2SoWEIuBJEuuVhU26V4NAbJKqx3lawedIwYo=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/applications/audio/schismtracker/default.nix b/pkgs/applications/audio/schismtracker/default.nix
index 56546404ad90..68e9fcd7e190 100644
--- a/pkgs/applications/audio/schismtracker/default.nix
+++ b/pkgs/applications/audio/schismtracker/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "schismtracker";
-  version = "20231029";
+  version = "20240129";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-ELCV5c79fFX1C4+S9bnDFOx3jAs/R2TERH1Q9fkBGnY=";
+    sha256 = "sha256-msi638LQM0LPfUineINRW8l8BcPKIeRBEDtV5L6anGk=";
   };
 
   configureFlags = [ "--enable-dependency-tracking" ]
diff --git a/pkgs/applications/audio/snapcast/default.nix b/pkgs/applications/audio/snapcast/default.nix
index 2ce4bbee229f..d155afb99ba4 100644
--- a/pkgs/applications/audio/snapcast/default.nix
+++ b/pkgs/applications/audio/snapcast/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, cmake, pkg-config
+{ stdenv, lib, fetchFromGitHub, fetchpatch, cmake, pkg-config
 , alsa-lib, asio, avahi, boost179, flac, libogg, libvorbis, soxr
 , IOKit, AudioToolbox
 , aixlog, popl
@@ -18,6 +18,15 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-dlK1xQQqst4VQjioC7MZzqXwMC+JfqtvnD5lrOqGhYI=";
   };
 
+  patches = [
+    # Can be removed with next release after 0.27.0
+    (fetchpatch {
+      name = "include-cstdint.patch";
+      url = "https://github.com/badaix/snapcast/commit/481f08199ca31c60c9a3475f1064e6b06a503d12.patch";
+      hash = "sha256-klpvmBpBAlBMtcgnNfW6X6vDbJFnOuOsPUDXcNf5tGc=";
+    })
+  ];
+
   nativeBuildInputs = [ cmake pkg-config ];
   # snapcast also supports building against tremor but as we have libogg, that's
   # not needed
diff --git a/pkgs/applications/audio/snd/default.nix b/pkgs/applications/audio/snd/default.nix
index fd0d0f3971f2..777b452792cc 100644
--- a/pkgs/applications/audio/snd/default.nix
+++ b/pkgs/applications/audio/snd/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "snd";
-  version = "23.9";
+  version = "24.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/snd/snd-${version}.tar.gz";
-    sha256 = "sha256-2iuY0kjLEVKTK4N1s+mBEt7+RlbK4rm6RFpWq08i6RY=";
+    sha256 = "sha256-DU7AtPoLH+WXXsmree8GbHePvNYmPP7MxYSfhEzgOtU=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/audio/songrec/default.nix b/pkgs/applications/audio/songrec/default.nix
index 96757234e15a..6eacb605a70e 100644
--- a/pkgs/applications/audio/songrec/default.nix
+++ b/pkgs/applications/audio/songrec/default.nix
@@ -7,24 +7,32 @@
 , pkg-config
 , ffmpeg
 , dbus
+, libpulseaudio
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "songrec";
-  version = "0.3.3";
+  version = "0.4.2";
 
   src = fetchFromGitHub {
     owner = "marin-m";
     repo = pname;
     rev = version;
-    hash = "sha256-K80uoMfwkyH/K8t6zdkq1ZYTpI0dAIvO2K2kzpzDoN0=";
+    hash = "sha256-S44gtyz6L6uaLm3q75y8S4NJb77Vfy+Sd+J06IroHIM=";
   };
 
-  cargoHash = "sha256-Xmey+goHGTWMgKIJRzKMi9Y1bv677Yo2sfDaMauvZsM=";
+  cargoHash = "sha256-f2xAWh+y0Jw7QVLZBkajMLN3ocCyRsR480ai7+07LM4=";
 
   nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [ alsa-lib dbus gtk3 openssl ffmpeg ];
+  buildInputs = [
+    alsa-lib
+    dbus
+    gtk3
+    openssl
+    ffmpeg
+    libpulseaudio
+  ];
 
   postInstall = ''
     mv packaging/rootfs/usr/share $out/share
diff --git a/pkgs/applications/audio/sonic-pi/default.nix b/pkgs/applications/audio/sonic-pi/default.nix
index 74e488e436df..6635cb4784f9 100644
--- a/pkgs/applications/audio/sonic-pi/default.nix
+++ b/pkgs/applications/audio/sonic-pi/default.nix
@@ -40,13 +40,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sonic-pi";
-  version = "4.4.0";
+  version = "4.5.0";
 
   src = fetchFromGitHub {
     owner = "sonic-pi-net";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-rXMCaI9zvWIXmT7ZqIArsvZmEkEEbs+5jYDYsSGeCXc=";
+    hash = "sha256-s9B3OBwiUdCJyxbeQXeidv38pzmvC442Byl+llabqp0=";
   };
 
   mixFodDeps = beamPackages.fetchMixDeps {
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
     pname = "mix-deps-${pname}";
     mixEnv = "test";
     src = "${src}/app/server/beam/tau";
-    hash = "sha256-YbYe+hljnoWFgV72OQ2YaUcnhucEtVb+TCLcMYzqUWU=";
+    hash = "sha256-7wqFI3f0CRVrXK2IUguqHNANwKMmTak/Xh9nr624TXc=";
   };
 
   strictDeps = true;
diff --git a/pkgs/applications/audio/sonobus/default.nix b/pkgs/applications/audio/sonobus/default.nix
index f9b71a03623e..c99d3c4ca1e5 100644
--- a/pkgs/applications/audio/sonobus/default.nix
+++ b/pkgs/applications/audio/sonobus/default.nix
@@ -19,15 +19,15 @@
 , webkitgtk
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "sonobus";
-  version = "1.7.0";
+  version = "1.7.2";
 
   src = fetchFromGitHub {
     owner = "sonosaurus";
     repo = "sonobus";
-    rev = version;
-    sha256 = "sha256-zOPQK5X1E6t53DOjV7qSelyep4+m9aL4tRHqwyeuFQA=";
+    rev = finalAttrs.version;
+    hash = "sha256-NOdmHFKrV7lb8XbeG5GdLKYZ0c/vcz3fcqYj9JvE+/Q=";
     fetchSubmodules = true;
   };
 
@@ -56,6 +56,9 @@ stdenv.mkDerivation rec {
     libXrandr
   ];
 
+  env.NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isLinux "-rpath ${lib.makeLibraryPath (finalAttrs.runtimeDependencies)}";
+  dontPatchELF = true; # needed or nix will try to optimize the binary by removing "useless" rpath
+
   postPatch = lib.optionalString (stdenv.isLinux) ''
     # needs special setup on Linux, dunno if it can work on Darwin
     # https://github.com/NixOS/nixpkgs/issues/19098
@@ -80,4 +83,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     broken = stdenv.isDarwin;
   };
-}
+})
diff --git a/pkgs/applications/audio/sony-headphones-client/default.nix b/pkgs/applications/audio/sony-headphones-client/default.nix
index 86746cbc5375..b39f7272643f 100644
--- a/pkgs/applications/audio/sony-headphones-client/default.nix
+++ b/pkgs/applications/audio/sony-headphones-client/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, bluez, dbus, glew, glfw, imgui, makeDesktopItem, copyDesktopItems }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, pkg-config, bluez, dbus, glew, glfw, imgui, makeDesktopItem, copyDesktopItems }:
 
 stdenv.mkDerivation rec {
   pname = "SonyHeadphonesClient";
@@ -12,6 +12,16 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
+  patches = [
+    (fetchpatch {
+      name = "include-cstdint-to-fix-gcc-compiling.patch";
+      url = "https://github.com/Plutoberth/SonyHeadphonesClient/commit/4da8a12b22f8a45e79aa53d4cae88ca99b51d41f.patch";
+      stripLen = 2;
+      extraPrefix = "";
+      hash = "sha256-IZR/Znj40pUEC9gmNJDMPWuZOM2ueAgykZFn5DVn6es=";
+    })
+  ];
+
   nativeBuildInputs = [ cmake pkg-config copyDesktopItems ];
   buildInputs = [ bluez dbus glew glfw imgui ];
 
diff --git a/pkgs/applications/audio/soundkonverter/default.nix b/pkgs/applications/audio/soundkonverter/default.nix
index 95fe9c5880d1..b044db5fab82 100644
--- a/pkgs/applications/audio/soundkonverter/default.nix
+++ b/pkgs/applications/audio/soundkonverter/default.nix
@@ -74,6 +74,7 @@ mkDerivation rec {
     wrapProgram $out/bin/soundkonverter --prefix PATH : ${lib.makeBinPath runtimeDeps }
     '';
   meta = {
+    homepage = "https://github.com/dfaust/soundkonverter";
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.schmittlauch ];
     description = "Audio file converter, CD ripper and Replay Gain tool";
diff --git a/pkgs/applications/audio/spotify-cli-linux/default.nix b/pkgs/applications/audio/spotify-cli-linux/default.nix
index c3717cd49938..82aa5c366ab6 100644
--- a/pkgs/applications/audio/spotify-cli-linux/default.nix
+++ b/pkgs/applications/audio/spotify-cli-linux/default.nix
@@ -1,11 +1,11 @@
 { lib, python3Packages, fetchPypi, dbus }:
 python3Packages.buildPythonApplication rec {
   pname = "spotify-cli-linux";
-  version = "1.6.0";
+  version = "1.8.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0slyc3jfrj3rwq8rv6p5aqkw487aw7a87kmf1fb6n4vnvcf08v7w";
+    sha256 = "sha256-XJMkiQR1FoeIPfAuJT22kfYJdc/ABuxExELh0EEev8k=";
   };
 
   preBuild = ''
diff --git a/pkgs/applications/audio/strawberry/default.nix b/pkgs/applications/audio/strawberry/default.nix
index b9821895d37b..0646099973ff 100644
--- a/pkgs/applications/audio/strawberry/default.nix
+++ b/pkgs/applications/audio/strawberry/default.nix
@@ -10,6 +10,7 @@
 , fftw
 , gnutls
 , libcdio
+, libebur128
 , libmtp
 , libpthreadstubs
 , libtasn1
@@ -34,21 +35,23 @@
 , gst_all_1
 , withVlc ? true
 , libvlc
+, nix-update-script
 }:
 
 let
-  inherit (lib) optionals;
+  inherit (lib) optionals optionalString;
 
 in
 stdenv.mkDerivation rec {
   pname = "strawberry";
-  version = "1.0.21";
+  version = "1.0.23";
 
   src = fetchFromGitHub {
     owner = "jonaski";
     repo = pname;
     rev = version;
-    hash = "sha256-McwnYHaw0LYDeHLDQzfqRIYMV2FoiMdHyOL/EE8/esU=";
+    hash = "sha256-hzZx530HD7R3JOG6cCsoaW9puYkmu7m5lr+EfobKX7o=";
+    fetchSubmodules = true;
   };
 
   # the big strawberry shown in the context menu is *very* much in your face, so use the grey version instead
@@ -64,6 +67,7 @@ stdenv.mkDerivation rec {
     fftw
     gnutls
     libcdio
+    libebur128
     libidn2
     libmtp
     libpthreadstubs
@@ -89,7 +93,7 @@ stdenv.mkDerivation rec {
     gst-plugins-good
     gst-plugins-bad
     gst-plugins-ugly
-  ]) ++ lib.optional withVlc libvlc;
+  ]) ++ optionals withVlc [ libvlc ];
 
   nativeBuildInputs = [
     cmake
@@ -101,13 +105,15 @@ stdenv.mkDerivation rec {
     util-linux
   ];
 
-  postInstall = lib.optionalString withGstreamer ''
+  postInstall = optionalString withGstreamer ''
     qtWrapperArgs+=(
       --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0"
       --prefix GIO_EXTRA_MODULES : "${glib-networking.out}/lib/gio/modules"
     )
   '';
 
+  passthru.updateScript = nix-update-script { };
+
   meta = with lib; {
     description = "Music player and music collection organizer";
     homepage = "https://www.strawberrymusicplayer.org/";
diff --git a/pkgs/applications/audio/string-machine/default.nix b/pkgs/applications/audio/string-machine/default.nix
index 312cf1db5bac..d679202343d5 100644
--- a/pkgs/applications/audio/string-machine/default.nix
+++ b/pkgs/applications/audio/string-machine/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, boost, cairo, libGL, lv2, pkg-config }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, boost, cairo, libGL, lv2, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "string-machine";
@@ -12,6 +12,16 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
+  patches = [
+    # gcc-13 compatibility fix:
+    #   https://github.com/jpcima/string-machine/pull/36
+    (fetchpatch {
+      name = "gcc-13.patch";
+      url = "https://github.com/jpcima/string-machine/commit/e1f9c70da46e43beb2654b509bc824be5601a0a5.patch";
+      hash = "sha256-eS28wBuFjbx2tEb9gtVRZXfK0w2o1RCFTouNf8Adq+k=";
+    })
+  ];
+
   postPatch = ''
     patchShebangs ./dpf/utils/generate-ttl.sh
   '';
diff --git a/pkgs/applications/audio/sunvox/default.nix b/pkgs/applications/audio/sunvox/default.nix
deleted file mode 100644
index 69620f1d0b47..000000000000
--- a/pkgs/applications/audio/sunvox/default.nix
+++ /dev/null
@@ -1,49 +0,0 @@
-{ lib, stdenv, fetchurl, unzip, alsa-lib, libX11, libXi, SDL2 }:
-
-let
-  libPath = lib.makeLibraryPath [ stdenv.cc.cc alsa-lib libX11 libXi SDL2 ];
-  arch =
-    if stdenv.isAarch64
-    then "arm64"
-    else if stdenv.isAarch32
-    then "arm_armhf_raspberry_pi"
-    else if stdenv.is64bit
-    then "x86_64"
-    else "x86";
-in
-stdenv.mkDerivation rec {
-  pname = "SunVox";
-  version = "2.1c";
-
-  src = fetchurl {
-    url = "https://www.warmplace.ru/soft/sunvox/sunvox-${version}.zip";
-    sha256 = "sha256-yPVcbtlAVbO9uMsFlfZ51T408hA1VPJAI+R+Jdjcyjw=";
-  };
-
-  nativeBuildInputs = [ unzip ];
-
-  unpackPhase = "unzip $src";
-
-  dontBuild = true;
-
-  installPhase = ''
-    mkdir -p $out/share $out/bin
-    mv sunvox $out/share/
-
-    bin="$out/share/sunvox/sunvox/linux_${arch}/sunvox"
-    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-             --set-rpath "${libPath}" \
-             "$bin"
-
-    ln -s "$bin" $out/bin/sunvox
-  '';
-
-  meta = with lib; {
-    description = "Small, fast and powerful modular synthesizer with pattern-based sequencer";
-    license = licenses.unfreeRedistributable;
-    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
-    homepage = "http://www.warmplace.ru/soft/sunvox/";
-    maintainers = with maintainers; [ puffnfresh ];
-    platforms = [ "i686-linux" "x86_64-linux" ];
-  };
-}
diff --git a/pkgs/applications/audio/tauon/default.nix b/pkgs/applications/audio/tauon/default.nix
index 47c2297274c8..979907202835 100644
--- a/pkgs/applications/audio/tauon/default.nix
+++ b/pkgs/applications/audio/tauon/default.nix
@@ -26,13 +26,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "tauon";
-  version = "7.7.0";
+  version = "7.7.1";
 
   src = fetchFromGitHub {
     owner = "Taiko2k";
     repo = "TauonMusicBox";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-FNRG0NKHQpPHb3P1M0eshFuGu9lyWFgmufFC5aqr7n0=";
+    hash = "sha256-rRYM8wdvwfetoIpS/lzAV/uV5XVpXyXsHSrClPWcsCo=";
   };
 
   postUnpack = ''
diff --git a/pkgs/applications/audio/vgmplay-libvgm/default.nix b/pkgs/applications/audio/vgmplay-libvgm/default.nix
index 199f75ff2027..75701682e128 100644
--- a/pkgs/applications/audio/vgmplay-libvgm/default.nix
+++ b/pkgs/applications/audio/vgmplay-libvgm/default.nix
@@ -9,15 +9,15 @@
 , inih
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation {
   pname = "vgmplay-libvgm";
-  version = "unstable-2023-04-12";
+  version = "unstable-2024-01-03";
 
   src = fetchFromGitHub {
     owner = "ValleyBell";
     repo = "vgmplay-libvgm";
-    rev = "813abab549e99bb7e936acbfa1199cf435c237c6";
-    sha256 = "sdQO+xk3a7AFXo3jpbcuNBkd19PjKoBMRhr4IK06oHg=";
+    rev = "7db1c63c056d79a8f9f533aa7eb82b7fdf7d456c";
+    hash = "sha256-GjBwu8Y/lOI8SLO4SrAWcntQIwKe/hXuh9tKbOPHQiA=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/applications/backup/unifi-protect-backup/default.nix b/pkgs/applications/backup/unifi-protect-backup/default.nix
index 1fdb8dabd3d4..ee8ca7e486d7 100644
--- a/pkgs/applications/backup/unifi-protect-backup/default.nix
+++ b/pkgs/applications/backup/unifi-protect-backup/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "unifi-protect-backup";
-  version = "0.10.2";
+  version = "0.10.4";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "ep1cman";
     repo = "unifi-protect-backup";
     rev = "refs/tags/v${version}";
-    hash = "sha256-EQCI7TkkOhDASMo5yKfAca/gB4ayyPOaDVK6WEaAIgc=";
+    hash = "sha256-KT2saPpkAS/6X491i0Y8+jr8JPD51iQx+YGT5zRTtcU=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/applications/blockchains/besu/default.nix b/pkgs/applications/blockchains/besu/default.nix
index bf1e4ced669a..63ae0d8fe9ad 100644
--- a/pkgs/applications/blockchains/besu/default.nix
+++ b/pkgs/applications/blockchains/besu/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "besu";
-  version = "23.10.2";
+  version = "24.1.1";
 
   src = fetchurl {
     url = "https://hyperledger.jfrog.io/artifactory/${pname}-binaries/${pname}/${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-JVgYpcYGejiqi1ZdjzKkmhcqdTah03BnO7t19UgmPCw=";
+    sha256 = "sha256-Sw3dWiW+LfXSMkv/k1eF62Pk46X0IWFOppC6y1ucs0Q=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/blockchains/ergo/default.nix b/pkgs/applications/blockchains/ergo/default.nix
index 04a4f8c6f73b..1cb3cceb7d57 100644
--- a/pkgs/applications/blockchains/ergo/default.nix
+++ b/pkgs/applications/blockchains/ergo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ergo";
-  version = "5.0.18";
+  version = "5.0.19";
 
   src = fetchurl {
     url = "https://github.com/ergoplatform/ergo/releases/download/v${version}/ergo-${version}.jar";
-    sha256 = "sha256-WwchK7qyy+J7TiWj4exBMLGkLmbPFDA7yNQVZ779nmk=";
+    sha256 = "sha256-ogr2tdXVQcUOE26PGsYeAGi8+5zbM5m/BVuHxemVNGM=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/blockchains/exodus/default.nix b/pkgs/applications/blockchains/exodus/default.nix
index 251650af30bd..110ddb9017e5 100644
--- a/pkgs/applications/blockchains/exodus/default.nix
+++ b/pkgs/applications/blockchains/exodus/default.nix
@@ -27,13 +27,13 @@
 
 stdenv.mkDerivation rec {
   pname = "exodus";
-  version = "23.12.21";
+  version = "24.1.15";
 
   src = fetchurl {
     name = "exodus-linux-x64-${version}.zip";
     url = "https://downloads.exodus.com/releases/${pname}-linux-x64-${version}.zip";
     curlOptsList = [ "--user-agent" "Mozilla/5.0" ];
-    sha256 = "sha256-sQKbwrnq/hSkeF99KA3cIA757IMr1g3xfe7FsgtyvOA=";
+    sha256 = "sha256-KfUlYnonlyI/5sWIM9CS/eo9a4KWeG7Gqe/KkAqSbbY=";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/pkgs/applications/blockchains/ledger-live-desktop/default.nix b/pkgs/applications/blockchains/ledger-live-desktop/default.nix
index 364e6cf58a50..674156e24c06 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.73.1";
+  version = "2.75.0";
 
   src = fetchurl {
     url = "https://download.live.ledger.com/${pname}-${version}-linux-x86_64.AppImage";
-    hash = "sha256-aHA65NLX3tlg8nLnQOOG1TuvcJP57HbQWruiBMvDJ10=";
+    hash = "sha256-sVaQbfpgHgd1OZgR+R0PUmNENfDOcNRfvO2AVKFyDqM=";
   };
 
   appimageContents = appimageTools.extractType2 {
@@ -34,5 +34,6 @@ appimageTools.wrapType2 rec {
     maintainers = with maintainers; [ andresilva thedavidmeister nyanloutre RaghavSood th0rgal ];
     platforms = [ "x86_64-linux" ];
     mainProgram = "ledger-live-desktop";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
   };
 }
diff --git a/pkgs/applications/blockchains/optimism/default.nix b/pkgs/applications/blockchains/optimism/default.nix
index cd7cc1ce9fe2..1c794cfb1e1a 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.1.6";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "ethereum-optimism";
     repo = "optimism";
     rev = "op-node/v${version}";
-    hash = "sha256-kzJ2zV4Iz3LqrVrs6mluiXluFqFaftycHhOAE8m0vns=";
+    hash = "sha256-fg63J1qgsQOTCLHgEWSI6ZxNf9XIPq+aYCumJ/FEx/s=";
     fetchSubmodules = true;
   };
 
   subPackages = [ "op-node/cmd" "op-proposer/cmd" "op-batcher/cmd" ];
 
-  vendorHash = "sha256-6ChcT8rgyxiory//EHNA0Q0AZRhUIDpe1pmVeQ66gA4=";
+  vendorHash = "sha256-9mLS44wzPslPfa+QwBg05+QSL6F0c8fcev1VOI9VPE4=";
 
   buildInputs = [
     libpcap
diff --git a/pkgs/applications/blockchains/optimism/geth.nix b/pkgs/applications/blockchains/optimism/geth.nix
index 798ccd9617ec..722402e704d3 100644
--- a/pkgs/applications/blockchains/optimism/geth.nix
+++ b/pkgs/applications/blockchains/optimism/geth.nix
@@ -8,13 +8,13 @@
 
 buildGoModule rec {
   pname = "op-geth";
-  version = "1.101305.0";
+  version = "1.101305.3";
 
   src = fetchFromGitHub {
     owner = "ethereum-optimism";
     repo = "op-geth";
     rev = "v${version}";
-    hash = "sha256-6Q36iTqYEY1sXt7K8UR8YFT/wvjzz+NzzpM5WgfhxFg=";
+    hash = "sha256-AKVwwvt77FZlm7089EeayYVRYLo7c3v6LFVpsQN68Zk=";
     fetchSubmodules = true;
   };
 
@@ -33,7 +33,7 @@ buildGoModule rec {
     "cmd/utils"
   ];
 
-  vendorHash = "sha256-lTkbdzRuWqgFl/8N0v9jH8+pVM2k87a/cQF22DqiAIE=";
+  vendorHash = "sha256-pcIydpKWZt3vwShwzGlPKGq+disdxYFOB8gxHou3mVU=";
 
   # Fix for usb-related segmentation faults on darwin
   propagatedBuildInputs =
diff --git a/pkgs/applications/blockchains/polkadot/Cargo.lock b/pkgs/applications/blockchains/polkadot/Cargo.lock
index f78e06a77fac..7e8caebd9ebf 100644
--- a/pkgs/applications/blockchains/polkadot/Cargo.lock
+++ b/pkgs/applications/blockchains/polkadot/Cargo.lock
@@ -44,21 +44,11 @@ checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
 
 [[package]]
 name = "aead"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fc95d1bdb8e6666b2b217308eeeb09f2d6728d104be3e31916cc74d15420331"
-dependencies = [
- "generic-array 0.14.7",
-]
-
-[[package]]
-name = "aead"
 version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877"
 dependencies = [
  "generic-array 0.14.7",
- "rand_core 0.6.4",
 ]
 
 [[package]]
@@ -73,17 +63,6 @@ dependencies = [
 
 [[package]]
 name = "aes"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "884391ef1066acaa41e766ba8f596341b96e93ce34f9a43e7d24bf0a0eaf0561"
-dependencies = [
- "aes-soft",
- "aesni",
- "cipher 0.2.5",
-]
-
-[[package]]
-name = "aes"
 version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8"
@@ -134,26 +113,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "aes-soft"
-version = "0.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be14c7498ea50828a38d0e24a765ed2effe92a705885b57d029cd67d45744072"
-dependencies = [
- "cipher 0.2.5",
- "opaque-debug 0.3.0",
-]
-
-[[package]]
-name = "aesni"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea2e11f5e94c2f7d386164cc2aa1f97823fed6f259e486940a71c174dd01b0ce"
-dependencies = [
- "cipher 0.2.5",
- "opaque-debug 0.3.0",
-]
-
-[[package]]
 name = "ahash"
 version = "0.7.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -166,14 +125,15 @@ dependencies = [
 
 [[package]]
 name = "ahash"
-version = "0.8.3"
+version = "0.8.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
+checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
 dependencies = [
  "cfg-if",
  "getrandom 0.2.10",
  "once_cell",
  "version_check",
+ "zerocopy",
 ]
 
 [[package]]
@@ -192,12 +152,93 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
 
 [[package]]
+name = "alloy-primitives"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0628ec0ba5b98b3370bb6be17b12f23bfce8ee4ad83823325a20546d9b03b78"
+dependencies = [
+ "alloy-rlp",
+ "bytes",
+ "cfg-if",
+ "const-hex",
+ "derive_more",
+ "hex-literal",
+ "itoa",
+ "proptest",
+ "rand 0.8.5",
+ "ruint",
+ "serde",
+ "tiny-keccak",
+]
+
+[[package]]
+name = "alloy-rlp"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc0fac0fc16baf1f63f78b47c3d24718f3619b0714076f6a02957d808d52cbef"
+dependencies = [
+ "alloy-rlp-derive",
+ "arrayvec 0.7.4",
+ "bytes",
+ "smol_str",
+]
+
+[[package]]
+name = "alloy-rlp-derive"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0391754c09fab4eae3404d19d0d297aa1c670c1775ab51d8a5312afeca23157"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "alloy-sol-macro"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a98ad1696a2e17f010ae8e43e9f2a1e930ed176a8e3ff77acfeff6dfb07b42c"
+dependencies = [
+ "const-hex",
+ "dunce",
+ "heck",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+ "syn-solidity",
+ "tiny-keccak",
+]
+
+[[package]]
+name = "alloy-sol-types"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98d7107bed88e8f09f0ddcc3335622d87bfb6821f3e0c7473329fb1cfad5e015"
+dependencies = [
+ "alloy-primitives",
+ "alloy-sol-macro",
+ "const-hex",
+ "serde",
+]
+
+[[package]]
 name = "always-assert"
 version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4436e0292ab1bb631b42973c61205e704475fe8126af845c8d923c0996328127"
 
 [[package]]
+name = "amcl"
+version = "0.3.0"
+source = "git+https://github.com/snowfork/milagro_bls?rev=a6d66e4eb89015e352fb1c9f7b661ecdbb5b2176#a6d66e4eb89015e352fb1c9f7b661ecdbb5b2176"
+dependencies = [
+ "parity-scale-codec",
+ "scale-info",
+]
+
+[[package]]
 name = "android-tzdata"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -292,16 +333,16 @@ dependencies = [
 
 [[package]]
 name = "aquamarine"
-version = "0.3.2"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df752953c49ce90719c7bf1fc587bc8227aed04732ea0c0f85e5397d7fdbd1a1"
+checksum = "074b80d14d0240b6ce94d68f059a2d26a5d77280ae142662365a21ef6e2594ef"
 dependencies = [
  "include_dir",
  "itertools 0.10.5",
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -311,20 +352,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e2d098ff73c1ca148721f37baad5ea6a465a13f9573aba8641fbbbae8164a54e"
 
 [[package]]
-name = "arc-swap"
-version = "1.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
-
-[[package]]
 name = "ark-bls12-377"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fb00293ba84f51ce3bd026bd0de55899c4e68f0a39a5728cebae3a73ffdc0a4f"
 dependencies = [
  "ark-ec",
- "ark-ff",
- "ark-std",
+ "ark-ff 0.4.2",
+ "ark-std 0.4.0",
 ]
 
 [[package]]
@@ -336,7 +371,7 @@ dependencies = [
  "ark-bls12-377",
  "ark-ec",
  "ark-models-ext",
- "ark-std",
+ "ark-std 0.4.0",
 ]
 
 [[package]]
@@ -346,9 +381,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488"
 dependencies = [
  "ark-ec",
- "ark-ff",
- "ark-serialize",
- "ark-std",
+ "ark-ff 0.4.2",
+ "ark-serialize 0.4.2",
+ "ark-std 0.4.0",
 ]
 
 [[package]]
@@ -359,10 +394,10 @@ checksum = "b1dc4b3d08f19e8ec06e949712f95b8361e43f1391d94f65e4234df03480631c"
 dependencies = [
  "ark-bls12-381",
  "ark-ec",
- "ark-ff",
+ "ark-ff 0.4.2",
  "ark-models-ext",
- "ark-serialize",
- "ark-std",
+ "ark-serialize 0.4.2",
+ "ark-std 0.4.0",
 ]
 
 [[package]]
@@ -373,8 +408,8 @@ checksum = "2e0605daf0cc5aa2034b78d008aaf159f56901d92a52ee4f6ecdfdac4f426700"
 dependencies = [
  "ark-bls12-377",
  "ark-ec",
- "ark-ff",
- "ark-std",
+ "ark-ff 0.4.2",
+ "ark-std 0.4.0",
 ]
 
 [[package]]
@@ -385,9 +420,9 @@ checksum = "ccee5fba47266f460067588ee1bf070a9c760bf2050c1c509982c5719aadb4f2"
 dependencies = [
  "ark-bw6-761",
  "ark-ec",
- "ark-ff",
+ "ark-ff 0.4.2",
  "ark-models-ext",
- "ark-std",
+ "ark-std 0.4.0",
 ]
 
 [[package]]
@@ -396,10 +431,10 @@ version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba"
 dependencies = [
- "ark-ff",
+ "ark-ff 0.4.2",
  "ark-poly",
- "ark-serialize",
- "ark-std",
+ "ark-serialize 0.4.2",
+ "ark-std 0.4.0",
  "derivative",
  "hashbrown 0.13.2",
  "itertools 0.10.5",
@@ -416,8 +451,8 @@ checksum = "b10d901b9ac4b38f9c32beacedfadcdd64e46f8d7f8e88c1ae1060022cf6f6c6"
 dependencies = [
  "ark-bls12-377",
  "ark-ec",
- "ark-ff",
- "ark-std",
+ "ark-ff 0.4.2",
+ "ark-std 0.4.0",
 ]
 
 [[package]]
@@ -428,9 +463,9 @@ checksum = "524a4fb7540df2e1a8c2e67a83ba1d1e6c3947f4f9342cc2359fc2e789ad731d"
 dependencies = [
  "ark-ec",
  "ark-ed-on-bls12-377",
- "ark-ff",
+ "ark-ff 0.4.2",
  "ark-models-ext",
- "ark-std",
+ "ark-std 0.4.0",
 ]
 
 [[package]]
@@ -441,8 +476,8 @@ checksum = "f9cde0f2aa063a2a5c28d39b47761aa102bda7c13c84fc118a61b87c7b2f785c"
 dependencies = [
  "ark-bls12-381",
  "ark-ec",
- "ark-ff",
- "ark-std",
+ "ark-ff 0.4.2",
+ "ark-std 0.4.0",
 ]
 
 [[package]]
@@ -453,9 +488,27 @@ checksum = "d15185f1acb49a07ff8cbe5f11a1adc5a93b19e211e325d826ae98e98e124346"
 dependencies = [
  "ark-ec",
  "ark-ed-on-bls12-381-bandersnatch",
- "ark-ff",
+ "ark-ff 0.4.2",
  "ark-models-ext",
- "ark-std",
+ "ark-std 0.4.0",
+]
+
+[[package]]
+name = "ark-ff"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6"
+dependencies = [
+ "ark-ff-asm 0.3.0",
+ "ark-ff-macros 0.3.0",
+ "ark-serialize 0.3.0",
+ "ark-std 0.3.0",
+ "derivative",
+ "num-bigint",
+ "num-traits",
+ "paste",
+ "rustc_version 0.3.3",
+ "zeroize",
 ]
 
 [[package]]
@@ -464,10 +517,10 @@ version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba"
 dependencies = [
- "ark-ff-asm",
- "ark-ff-macros",
- "ark-serialize",
- "ark-std",
+ "ark-ff-asm 0.4.2",
+ "ark-ff-macros 0.4.2",
+ "ark-serialize 0.4.2",
+ "ark-std 0.4.0",
  "derivative",
  "digest 0.10.7",
  "itertools 0.10.5",
@@ -480,6 +533,16 @@ dependencies = [
 
 [[package]]
 name = "ark-ff-asm"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44"
+dependencies = [
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "ark-ff-asm"
 version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348"
@@ -490,6 +553,18 @@ dependencies = [
 
 [[package]]
 name = "ark-ff-macros"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20"
+dependencies = [
+ "num-bigint",
+ "num-traits",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "ark-ff-macros"
 version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565"
@@ -508,9 +583,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3e9eab5d4b5ff2f228b763d38442adc9b084b0a465409b059fac5c2308835ec2"
 dependencies = [
  "ark-ec",
- "ark-ff",
- "ark-serialize",
- "ark-std",
+ "ark-ff 0.4.2",
+ "ark-serialize 0.4.2",
+ "ark-std 0.4.0",
  "derivative",
 ]
 
@@ -520,9 +595,9 @@ version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf"
 dependencies = [
- "ark-ff",
- "ark-serialize",
- "ark-std",
+ "ark-ff 0.4.2",
+ "ark-serialize 0.4.2",
+ "ark-std 0.4.0",
  "derivative",
  "hashbrown 0.13.2",
 ]
@@ -534,9 +609,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "51bd73bb6ddb72630987d37fa963e99196896c0d0ea81b7c894567e74a2f83af"
 dependencies = [
  "ark-ec",
- "ark-ff",
- "ark-serialize",
- "ark-std",
+ "ark-ff 0.4.2",
+ "ark-serialize 0.4.2",
+ "ark-std 0.4.0",
+ "parity-scale-codec",
+ "scale-info",
+]
+
+[[package]]
+name = "ark-scale"
+version = "0.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f69c00b3b529be29528a6f2fd5fa7b1790f8bed81b9cdca17e326538545a179"
+dependencies = [
+ "ark-ec",
+ "ark-ff 0.4.2",
+ "ark-serialize 0.4.2",
+ "ark-std 0.4.0",
  "parity-scale-codec",
  "scale-info",
 ]
@@ -544,12 +633,12 @@ dependencies = [
 [[package]]
 name = "ark-secret-scalar"
 version = "0.0.2"
-source = "git+https://github.com/w3f/ring-vrf?rev=2019248#2019248785389b3246d55b1c3b0e9bdef4454cb7"
+source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e"
 dependencies = [
  "ark-ec",
- "ark-ff",
- "ark-serialize",
- "ark-std",
+ "ark-ff 0.4.2",
+ "ark-serialize 0.4.2",
+ "ark-std 0.4.0",
  "ark-transcript",
  "digest 0.10.7",
  "getrandom_or_panic",
@@ -558,12 +647,22 @@ dependencies = [
 
 [[package]]
 name = "ark-serialize"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671"
+dependencies = [
+ "ark-std 0.3.0",
+ "digest 0.9.0",
+]
+
+[[package]]
+name = "ark-serialize"
 version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5"
 dependencies = [
  "ark-serialize-derive",
- "ark-std",
+ "ark-std 0.4.0",
  "digest 0.10.7",
  "num-bigint",
 ]
@@ -581,6 +680,16 @@ dependencies = [
 
 [[package]]
 name = "ark-std"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c"
+dependencies = [
+ "num-traits",
+ "rand 0.8.5",
+]
+
+[[package]]
+name = "ark-std"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185"
@@ -593,11 +702,11 @@ dependencies = [
 [[package]]
 name = "ark-transcript"
 version = "0.0.2"
-source = "git+https://github.com/w3f/ring-vrf?rev=2019248#2019248785389b3246d55b1c3b0e9bdef4454cb7"
+source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e"
 dependencies = [
- "ark-ff",
- "ark-serialize",
- "ark-std",
+ "ark-ff 0.4.2",
+ "ark-serialize 0.4.2",
+ "ark-std 0.4.0",
  "digest 0.10.7",
  "rand_core 0.6.4",
  "sha3",
@@ -644,46 +753,18 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
 
 [[package]]
 name = "asn1-rs"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30ff05a702273012438132f449575dbc804e27b2f3cbe3069aa237d26c98fa33"
-dependencies = [
- "asn1-rs-derive 0.1.0",
- "asn1-rs-impl",
- "displaydoc",
- "nom",
- "num-traits",
- "rusticata-macros",
- "thiserror",
- "time 0.3.27",
-]
-
-[[package]]
-name = "asn1-rs"
 version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0"
 dependencies = [
- "asn1-rs-derive 0.4.0",
+ "asn1-rs-derive",
  "asn1-rs-impl",
  "displaydoc",
  "nom",
  "num-traits",
  "rusticata-macros",
  "thiserror",
- "time 0.3.27",
-]
-
-[[package]]
-name = "asn1-rs-derive"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db8b7511298d5b7784b40b092d9e9dcd3a627a5707e4b5e507931ab0d44eeebf"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
- "synstructure",
+ "time",
 ]
 
 [[package]]
@@ -826,6 +907,8 @@ dependencies = [
  "rococo-runtime-constants",
  "scale-info",
  "smallvec",
+ "snowbridge-rococo-common",
+ "snowbridge-router-primitives",
  "sp-api",
  "sp-block-builder",
  "sp-consensus-aura",
@@ -871,6 +954,7 @@ dependencies = [
  "asset-test-utils",
  "cumulus-pallet-dmp-queue",
  "cumulus-pallet-parachain-system",
+ "cumulus-pallet-xcmp-queue",
  "emulated-integration-tests-common",
  "frame-support",
  "frame-system",
@@ -1143,7 +1227,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1154,13 +1238,13 @@ checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae"
 
 [[package]]
 name = "async-trait"
-version = "0.1.73"
+version = "0.1.74"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0"
+checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1200,6 +1284,18 @@ dependencies = [
 ]
 
 [[package]]
+name = "auto_impl"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fee3da8ef1276b0bee5dd1c7258010d8fffd31801447323115a25560e1327b89"
+dependencies = [
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
 name = "autocfg"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1216,21 +1312,21 @@ dependencies = [
  "cfg-if",
  "libc",
  "miniz_oxide",
- "object 0.32.0",
+ "object 0.32.2",
  "rustc-demangle",
 ]
 
 [[package]]
 name = "bandersnatch_vrfs"
 version = "0.0.4"
-source = "git+https://github.com/w3f/ring-vrf?rev=2019248#2019248785389b3246d55b1c3b0e9bdef4454cb7"
+source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e"
 dependencies = [
  "ark-bls12-381",
  "ark-ec",
  "ark-ed-on-bls12-381-bandersnatch",
- "ark-ff",
- "ark-serialize",
- "ark-std",
+ "ark-ff 0.4.2",
+ "ark-serialize 0.4.2",
+ "ark-std 0.4.0",
  "dleq_vrf",
  "fflonk",
  "merlin 3.0.0",
@@ -1251,12 +1347,6 @@ checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270"
 
 [[package]]
 name = "base16ct"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce"
-
-[[package]]
-name = "base16ct"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf"
@@ -1281,9 +1371,9 @@ checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
 
 [[package]]
 name = "basic-toml"
-version = "0.1.4"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7bfc506e7a2370ec239e1d072507b2a80c833083699d3c6fa176fbb4de8448c6"
+checksum = "2db21524cad41c5591204d22d75e1970a2d1f71060214ca931dc7d5afe2c14e5"
 dependencies = [
  "serde",
 ]
@@ -1336,7 +1426,7 @@ dependencies = [
  "regex",
  "rustc-hash",
  "shlex",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1353,6 +1443,21 @@ dependencies = [
 ]
 
 [[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 = "bitcoin_hashes"
 version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1455,7 +1560,7 @@ version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b"
 dependencies = [
- "block-padding 0.1.5",
+ "block-padding",
  "byte-tools",
  "byteorder",
  "generic-array 0.12.4",
@@ -1480,16 +1585,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "block-modes"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57a0e8073e8baa88212fb5823574c02ebccb395136ba9a164ab89379ec6072f0"
-dependencies = [
- "block-padding 0.2.1",
- "cipher 0.2.5",
-]
-
-[[package]]
 name = "block-padding"
 version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1499,12 +1594,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "block-padding"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae"
-
-[[package]]
 name = "blocking"
 version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1521,13 +1610,14 @@ dependencies = [
 
 [[package]]
 name = "bounded-collections"
-version = "0.1.8"
+version = "0.1.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb5b05133427c07c4776906f673ccf36c21b102c9829c641a5b56bd151d44fd6"
+checksum = "ca548b6163b872067dc5eb82fd130c56881435e30367d2073594a3d9744120dd"
 dependencies = [
  "log",
  "parity-scale-codec",
  "scale-info",
+ "schemars",
  "serde",
 ]
 
@@ -1835,15 +1925,37 @@ dependencies = [
 ]
 
 [[package]]
+name = "bridge-hub-common"
+version = "0.1.0"
+dependencies = [
+ "cumulus-primitives-core",
+ "frame-support",
+ "pallet-message-queue",
+ "parity-scale-codec",
+ "scale-info",
+ "snowbridge-core",
+ "sp-core",
+ "sp-runtime",
+ "sp-std 8.0.0",
+ "staging-xcm",
+]
+
+[[package]]
 name = "bridge-hub-rococo-emulated-chain"
 version = "0.0.0"
 dependencies = [
+ "bridge-hub-common",
  "bridge-hub-rococo-runtime",
  "cumulus-primitives-core",
  "emulated-integration-tests-common",
  "frame-support",
  "parachains-common",
  "serde_json",
+ "snowbridge-core",
+ "snowbridge-inbound-queue",
+ "snowbridge-outbound-queue",
+ "snowbridge-router-primitives",
+ "snowbridge-system",
  "sp-core",
  "sp-runtime",
 ]
@@ -1852,6 +1964,7 @@ dependencies = [
 name = "bridge-hub-rococo-integration-tests"
 version = "1.0.0"
 dependencies = [
+ "asset-hub-rococo-runtime",
  "asset-test-utils",
  "bp-messages",
  "bridge-hub-rococo-runtime",
@@ -1859,6 +1972,8 @@ dependencies = [
  "cumulus-pallet-xcmp-queue",
  "emulated-integration-tests-common",
  "frame-support",
+ "hex",
+ "hex-literal",
  "pallet-assets",
  "pallet-balances",
  "pallet-bridge-messages",
@@ -1866,7 +1981,18 @@ dependencies = [
  "pallet-xcm",
  "parachains-common",
  "parity-scale-codec",
+ "penpal-runtime",
+ "rococo-system-emulated-network",
  "rococo-westend-system-emulated-network",
+ "scale-info",
+ "snowbridge-core",
+ "snowbridge-inbound-queue",
+ "snowbridge-outbound-queue",
+ "snowbridge-rococo-common",
+ "snowbridge-router-primitives",
+ "snowbridge-system",
+ "sp-core",
+ "sp-runtime",
  "staging-xcm",
  "staging-xcm-executor",
 ]
@@ -1877,16 +2003,19 @@ version = "0.1.0"
 dependencies = [
  "bp-asset-hub-rococo",
  "bp-asset-hub-westend",
+ "bp-bridge-hub-polkadot",
  "bp-bridge-hub-rococo",
  "bp-bridge-hub-westend",
  "bp-header-chain",
  "bp-messages",
  "bp-parachains",
+ "bp-polkadot-bulletin",
  "bp-polkadot-core",
  "bp-relayers",
  "bp-rococo",
  "bp-runtime",
  "bp-westend",
+ "bridge-hub-common",
  "bridge-hub-test-utils",
  "bridge-runtime-common",
  "cumulus-pallet-aura-ext",
@@ -1932,6 +2061,17 @@ dependencies = [
  "scale-info",
  "serde",
  "smallvec",
+ "snowbridge-beacon-primitives",
+ "snowbridge-core",
+ "snowbridge-ethereum-beacon-client",
+ "snowbridge-inbound-queue",
+ "snowbridge-outbound-queue",
+ "snowbridge-outbound-queue-runtime-api",
+ "snowbridge-rococo-common",
+ "snowbridge-router-primitives",
+ "snowbridge-runtime-common",
+ "snowbridge-system",
+ "snowbridge-system-runtime-api",
  "sp-api",
  "sp-block-builder",
  "sp-consensus-aura",
@@ -1974,6 +2114,7 @@ dependencies = [
  "frame-executive",
  "frame-support",
  "frame-system",
+ "impl-trait-for-tuples",
  "log",
  "pallet-balances",
  "pallet-bridge-grandpa",
@@ -1992,6 +2133,7 @@ dependencies = [
  "sp-io",
  "sp-keyring",
  "sp-runtime",
+ "sp-std 8.0.0",
  "sp-tracing 10.0.0",
  "staging-parachain-info",
  "staging-xcm",
@@ -2003,6 +2145,7 @@ dependencies = [
 name = "bridge-hub-westend-emulated-chain"
 version = "0.0.0"
 dependencies = [
+ "bridge-hub-common",
  "bridge-hub-westend-runtime",
  "cumulus-primitives-core",
  "emulated-integration-tests-common",
@@ -2032,6 +2175,7 @@ dependencies = [
  "parachains-common",
  "parity-scale-codec",
  "rococo-westend-system-emulated-network",
+ "sp-runtime",
  "staging-xcm",
  "staging-xcm-executor",
 ]
@@ -2052,6 +2196,7 @@ dependencies = [
  "bp-rococo",
  "bp-runtime",
  "bp-westend",
+ "bridge-hub-common",
  "bridge-hub-test-utils",
  "bridge-runtime-common",
  "cumulus-pallet-aura-ext",
@@ -2298,17 +2443,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "ccm"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aca1a8fbc20b50ac9673ff014abfb2b5f4085ee1a850d408f14a159c5853ac7"
-dependencies = [
- "aead 0.3.2",
- "cipher 0.2.5",
- "subtle 2.4.1",
-]
-
-[[package]]
 name = "cexpr"
 version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2386,15 +2520,14 @@ dependencies = [
 
 [[package]]
 name = "chrono"
-version = "0.4.27"
+version = "0.4.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f56b4c72906975ca04becb8a30e102dfecddd0c06181e3e95ddc444be28881f8"
+checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
  "js-sys",
  "num-traits",
- "time 0.1.45",
  "wasm-bindgen",
  "windows-targets 0.48.5",
 ]
@@ -2506,19 +2639,28 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.4.10"
+version = "4.4.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41fffed7514f420abec6d183b1d3acfd9099c79c3a10a06ade4f8203f1411272"
+checksum = "33e92c5c1a78c62968ec57dbc2440366a2d6e5a23faf829970ff1585dc6b18e2"
 dependencies = [
  "clap_builder",
  "clap_derive 4.4.7",
 ]
 
 [[package]]
+name = "clap-num"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "488557e97528174edaa2ee268b23a809e0c598213a4bbcb4f34575a46fda147e"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
 name = "clap_builder"
-version = "4.4.9"
+version = "4.4.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63361bae7eef3771745f02d8d892bec2fee5f6e34af316ba556e7f97a7069ff1"
+checksum = "f4323769dc8a61e2c39ad7dc26f6f2800524691a44d74fe3d1071a5c24db6370"
 dependencies = [
  "anstream",
  "anstyle",
@@ -2533,7 +2675,7 @@ version = "4.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "586a385f7ef2f8b4d86bddaa0c094794e7ccbfe5ffef1f434fe928143fc783a5"
 dependencies = [
- "clap 4.4.10",
+ "clap 4.4.14",
 ]
 
 [[package]]
@@ -2558,7 +2700,7 @@ dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -2599,6 +2741,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "collectives-westend-emulated-chain"
+version = "0.0.0"
+dependencies = [
+ "collectives-westend-runtime",
+ "cumulus-primitives-core",
+ "emulated-integration-tests-common",
+ "frame-support",
+ "parachains-common",
+ "serde_json",
+ "sp-core",
+ "sp-runtime",
+ "westend-emulated-chain",
+]
+
+[[package]]
 name = "collectives-westend-runtime"
 version = "1.0.0"
 dependencies = [
@@ -2619,6 +2776,7 @@ dependencies = [
  "hex-literal",
  "log",
  "pallet-alliance",
+ "pallet-asset-rate",
  "pallet-aura",
  "pallet-authorship",
  "pallet-balances",
@@ -2638,6 +2796,7 @@ dependencies = [
  "pallet-timestamp",
  "pallet-transaction-payment",
  "pallet-transaction-payment-rpc-runtime-api",
+ "pallet-treasury",
  "pallet-utility",
  "pallet-xcm",
  "parachains-common",
@@ -2667,7 +2826,6 @@ dependencies = [
  "staging-xcm-builder",
  "staging-xcm-executor",
  "substrate-wasm-builder",
- "testnets-common",
  "westend-runtime-constants",
 ]
 
@@ -2712,6 +2870,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
 
 [[package]]
+name = "colored"
+version = "2.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6"
+dependencies = [
+ "is-terminal",
+ "lazy_static",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
 name = "comfy-table"
 version = "7.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2725,13 +2894,13 @@ dependencies = [
 [[package]]
 name = "common"
 version = "0.1.0"
-source = "git+https://github.com/w3f/ring-proof#61e7b528bc0170d6bf541be32440d569b784425d"
+source = "git+https://github.com/w3f/ring-proof#b273d33f9981e2bb3375ab45faeb537f7ee35224"
 dependencies = [
  "ark-ec",
- "ark-ff",
+ "ark-ff 0.4.2",
  "ark-poly",
- "ark-serialize",
- "ark-std",
+ "ark-serialize 0.4.2",
+ "ark-std 0.4.0",
  "fflonk",
  "getrandom_or_panic",
  "merlin 3.0.0",
@@ -2767,6 +2936,29 @@ dependencies = [
 ]
 
 [[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 = "const-hex"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a5104de16b218eddf8e34ffe2f86f74bfa4e61e95a1b89732fccf6325efd0557"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "hex",
+ "proptest",
+ "serde",
+]
+
+[[package]]
 name = "const-oid"
 version = "0.9.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2914,6 +3106,133 @@ dependencies = [
 ]
 
 [[package]]
+name = "coretime-rococo-runtime"
+version = "0.1.0"
+dependencies = [
+ "cumulus-pallet-aura-ext",
+ "cumulus-pallet-parachain-system",
+ "cumulus-pallet-session-benchmarking",
+ "cumulus-pallet-xcm",
+ "cumulus-pallet-xcmp-queue",
+ "cumulus-primitives-core",
+ "cumulus-primitives-utility",
+ "frame-benchmarking",
+ "frame-executive",
+ "frame-support",
+ "frame-system",
+ "frame-system-benchmarking",
+ "frame-system-rpc-runtime-api",
+ "frame-try-runtime",
+ "hex-literal",
+ "log",
+ "pallet-aura",
+ "pallet-authorship",
+ "pallet-balances",
+ "pallet-broker",
+ "pallet-collator-selection",
+ "pallet-message-queue",
+ "pallet-multisig",
+ "pallet-session",
+ "pallet-sudo",
+ "pallet-timestamp",
+ "pallet-transaction-payment",
+ "pallet-transaction-payment-rpc-runtime-api",
+ "pallet-utility",
+ "pallet-xcm",
+ "pallet-xcm-benchmarks",
+ "parachains-common",
+ "parity-scale-codec",
+ "polkadot-core-primitives",
+ "polkadot-parachain-primitives",
+ "polkadot-runtime-common",
+ "rococo-runtime-constants",
+ "scale-info",
+ "serde",
+ "smallvec",
+ "sp-api",
+ "sp-block-builder",
+ "sp-consensus-aura",
+ "sp-core",
+ "sp-genesis-builder",
+ "sp-inherents",
+ "sp-offchain",
+ "sp-runtime",
+ "sp-session",
+ "sp-std 8.0.0",
+ "sp-storage 13.0.0",
+ "sp-transaction-pool",
+ "sp-version",
+ "staging-parachain-info",
+ "staging-xcm",
+ "staging-xcm-builder",
+ "staging-xcm-executor",
+ "substrate-wasm-builder",
+]
+
+[[package]]
+name = "coretime-westend-runtime"
+version = "0.1.0"
+dependencies = [
+ "cumulus-pallet-aura-ext",
+ "cumulus-pallet-parachain-system",
+ "cumulus-pallet-session-benchmarking",
+ "cumulus-pallet-xcm",
+ "cumulus-pallet-xcmp-queue",
+ "cumulus-primitives-core",
+ "cumulus-primitives-utility",
+ "frame-benchmarking",
+ "frame-executive",
+ "frame-support",
+ "frame-system",
+ "frame-system-benchmarking",
+ "frame-system-rpc-runtime-api",
+ "frame-try-runtime",
+ "hex-literal",
+ "log",
+ "pallet-aura",
+ "pallet-authorship",
+ "pallet-balances",
+ "pallet-collator-selection",
+ "pallet-message-queue",
+ "pallet-multisig",
+ "pallet-session",
+ "pallet-sudo",
+ "pallet-timestamp",
+ "pallet-transaction-payment",
+ "pallet-transaction-payment-rpc-runtime-api",
+ "pallet-utility",
+ "pallet-xcm",
+ "pallet-xcm-benchmarks",
+ "parachains-common",
+ "parity-scale-codec",
+ "polkadot-core-primitives",
+ "polkadot-parachain-primitives",
+ "polkadot-runtime-common",
+ "scale-info",
+ "serde",
+ "smallvec",
+ "sp-api",
+ "sp-block-builder",
+ "sp-consensus-aura",
+ "sp-core",
+ "sp-genesis-builder",
+ "sp-inherents",
+ "sp-offchain",
+ "sp-runtime",
+ "sp-session",
+ "sp-std 8.0.0",
+ "sp-storage 13.0.0",
+ "sp-transaction-pool",
+ "sp-version",
+ "staging-parachain-info",
+ "staging-xcm",
+ "staging-xcm-builder",
+ "staging-xcm-executor",
+ "substrate-wasm-builder",
+ "westend-runtime-constants",
+]
+
+[[package]]
 name = "cpp_demangle"
 version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3049,21 +3368,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "crc"
-version = "3.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe"
-dependencies = [
- "crc-catalog",
-]
-
-[[package]]
-name = "crc-catalog"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cace84e55f07e7301bae1c519df89cdad8cc3cd868413d3fdbdeca9ff3db484"
-
-[[package]]
 name = "crc32fast"
 version = "1.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3109,7 +3413,7 @@ dependencies = [
  "anes",
  "cast",
  "ciborium",
- "clap 4.4.10",
+ "clap 4.4.14",
  "criterion-plot",
  "futures",
  "is-terminal",
@@ -3199,18 +3503,6 @@ checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
 
 [[package]]
 name = "crypto-bigint"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef"
-dependencies = [
- "generic-array 0.14.7",
- "rand_core 0.6.4",
- "subtle 2.4.1",
- "zeroize",
-]
-
-[[package]]
-name = "crypto-bigint"
 version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cf4c2f4e1afd912bc40bfd6fed5d9dc1f288e0ba01bfcc835cc5bc3eb13efe15"
@@ -3284,12 +3576,13 @@ dependencies = [
 name = "cumulus-client-cli"
 version = "0.1.0"
 dependencies = [
- "clap 4.4.10",
+ "clap 4.4.14",
  "parity-scale-codec",
  "sc-chain-spec",
  "sc-cli",
  "sc-client-api",
  "sc-service",
+ "sp-blockchain",
  "sp-core",
  "sp-runtime",
  "url",
@@ -3333,9 +3626,9 @@ dependencies = [
  "cumulus-client-collator",
  "cumulus-client-consensus-common",
  "cumulus-client-consensus-proposer",
+ "cumulus-client-parachain-inherent",
  "cumulus-primitives-aura",
  "cumulus-primitives-core",
- "cumulus-primitives-parachain-inherent",
  "cumulus-relay-chain-interface",
  "futures",
  "parity-scale-codec",
@@ -3468,6 +3761,29 @@ dependencies = [
 ]
 
 [[package]]
+name = "cumulus-client-parachain-inherent"
+version = "0.1.0"
+dependencies = [
+ "async-trait",
+ "cumulus-primitives-core",
+ "cumulus-primitives-parachain-inherent",
+ "cumulus-relay-chain-interface",
+ "cumulus-test-relay-sproof-builder",
+ "parity-scale-codec",
+ "sc-client-api",
+ "scale-info",
+ "sp-api",
+ "sp-core",
+ "sp-inherents",
+ "sp-runtime",
+ "sp-state-machine",
+ "sp-std 8.0.0",
+ "sp-storage 13.0.0",
+ "sp-trie",
+ "tracing",
+]
+
+[[package]]
 name = "cumulus-client-pov-recovery"
 version = "0.1.0"
 dependencies = [
@@ -3614,10 +3930,10 @@ dependencies = [
 name = "cumulus-pallet-parachain-system-proc-macro"
 version = "0.1.0"
 dependencies = [
- "proc-macro-crate 2.0.0",
+ "proc-macro-crate 3.0.0",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -3740,20 +4056,14 @@ version = "0.1.0"
 dependencies = [
  "async-trait",
  "cumulus-primitives-core",
- "cumulus-relay-chain-interface",
- "cumulus-test-relay-sproof-builder",
  "parity-scale-codec",
- "sc-client-api",
  "scale-info",
- "sp-api",
  "sp-core",
  "sp-inherents",
  "sp-runtime",
  "sp-state-machine",
  "sp-std 8.0.0",
- "sp-storage 13.0.0",
  "sp-trie",
- "tracing",
 ]
 
 [[package]]
@@ -4005,16 +4315,16 @@ name = "cumulus-test-service"
 version = "0.1.0"
 dependencies = [
  "async-trait",
- "clap 4.4.10",
+ "clap 4.4.14",
  "criterion 0.5.1",
  "cumulus-client-cli",
  "cumulus-client-consensus-common",
  "cumulus-client-consensus-relay-chain",
+ "cumulus-client-parachain-inherent",
  "cumulus-client-pov-recovery",
  "cumulus-client-service",
  "cumulus-pallet-parachain-system",
  "cumulus-primitives-core",
- "cumulus-primitives-parachain-inherent",
  "cumulus-relay-chain-inprocess-interface",
  "cumulus-relay-chain-interface",
  "cumulus-relay-chain-minimal-node",
@@ -4105,9 +4415,9 @@ dependencies = [
 
 [[package]]
 name = "curve25519-dalek"
-version = "4.0.0"
+version = "4.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f711ade317dd348950a9910f81c5947e3d8907ebd2b83f76203ff1807e6a2bc2"
+checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -4128,7 +4438,7 @@ checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -4168,7 +4478,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "scratch",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -4185,42 +4495,7 @@ checksum = "50c49547d73ba8dcfd4ad7325d64c6d5391ff4224d498fc39a6f3f49825a530d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
-]
-
-[[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",
- "quote",
- "strsim",
- "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",
- "syn 1.0.109",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -4230,7 +4505,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "edd72493923899c6f10c641bdbdeddc7183d6396641d99c1a0d1597f37f92e28"
 dependencies = [
  "cfg-if",
- "hashbrown 0.14.0",
+ "hashbrown 0.14.3",
  "lock_api",
  "once_cell",
  "parking_lot_core 0.9.8",
@@ -4273,17 +4548,6 @@ dependencies = [
 
 [[package]]
 name = "der"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de"
-dependencies = [
- "const-oid",
- "pem-rfc7468",
- "zeroize",
-]
-
-[[package]]
-name = "der"
 version = "0.7.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c"
@@ -4294,25 +4558,11 @@ dependencies = [
 
 [[package]]
 name = "der-parser"
-version = "7.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe398ac75057914d7d07307bf67dc7f3f574a26783b4fc7805a20ffa9f506e82"
-dependencies = [
- "asn1-rs 0.3.1",
- "displaydoc",
- "nom",
- "num-bigint",
- "num-traits",
- "rusticata-macros",
-]
-
-[[package]]
-name = "der-parser"
 version = "8.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e"
 dependencies = [
- "asn1-rs 0.5.2",
+ "asn1-rs",
  "displaydoc",
  "nom",
  "num-bigint",
@@ -4349,37 +4599,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "derive_builder"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d07adf7be193b71cc36b193d0f5fe60b918a3a9db4dad0449f57bcfd519704a3"
-dependencies = [
- "derive_builder_macro",
-]
-
-[[package]]
-name = "derive_builder_core"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f91d4cfa921f1c05904dc3c57b4a32c38aed3340cce209f3a6fd1478babafc4"
-dependencies = [
- "darling",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "derive_builder_macro"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f0314b72bed045f3a68671b3c86328386762c93f82d98c65c3cb5e5f573dd68"
-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"
@@ -4484,7 +4703,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -4496,14 +4715,14 @@ checksum = "86e3bdc80eee6e16b2b6b0f87fbc98c04bee3455e35174c0de1a125d0688c632"
 [[package]]
 name = "dleq_vrf"
 version = "0.0.2"
-source = "git+https://github.com/w3f/ring-vrf?rev=2019248#2019248785389b3246d55b1c3b0e9bdef4454cb7"
+source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e"
 dependencies = [
  "ark-ec",
- "ark-ff",
- "ark-scale",
+ "ark-ff 0.4.2",
+ "ark-scale 0.0.12",
  "ark-secret-scalar",
- "ark-serialize",
- "ark-std",
+ "ark-serialize 0.4.2",
+ "ark-std 0.4.0",
  "ark-transcript",
  "arrayvec 0.7.4",
  "zeroize",
@@ -4545,9 +4764,9 @@ dependencies = [
  "proc-macro2",
  "quote",
  "regex",
- "syn 2.0.39",
+ "syn 2.0.48",
  "termcolor",
- "toml 0.7.6",
+ "toml 0.7.8",
  "walkdir",
 ]
 
@@ -4570,6 +4789,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653"
 
 [[package]]
+name = "dunce"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b"
+
+[[package]]
 name = "dyn-clonable"
 version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4592,21 +4817,9 @@ dependencies = [
 
 [[package]]
 name = "dyn-clone"
-version = "1.0.13"
+version = "1.0.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbfc4744c1b8f2a09adc0e55242f60b1af195d88596bd8700be74418c056c555"
-
-[[package]]
-name = "ecdsa"
-version = "0.14.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c"
-dependencies = [
- "der 0.6.1",
- "elliptic-curve 0.12.3",
- "rfc6979 0.3.1",
- "signature 1.6.4",
-]
+checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d"
 
 [[package]]
 name = "ecdsa"
@@ -4614,12 +4827,12 @@ version = "0.16.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a4b1e0c257a9e9f25f90ff76d7a68360ed497ee519c8e428d1825ef0000799d4"
 dependencies = [
- "der 0.7.8",
+ "der",
  "digest 0.10.7",
- "elliptic-curve 0.13.5",
- "rfc6979 0.4.0",
- "signature 2.1.0",
- "spki 0.7.2",
+ "elliptic-curve",
+ "rfc6979",
+ "signature",
+ "spki",
 ]
 
 [[package]]
@@ -4628,8 +4841,8 @@ version = "2.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "60f6d271ca33075c88028be6f04d502853d63a5ece419d269c15315d4fc1cf1d"
 dependencies = [
- "pkcs8 0.10.2",
- "signature 2.1.0",
+ "pkcs8",
+ "signature",
 ]
 
 [[package]]
@@ -4638,7 +4851,7 @@ version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0"
 dependencies = [
- "curve25519-dalek 4.0.0",
+ "curve25519-dalek 4.1.1",
  "ed25519",
  "rand_core 0.6.4",
  "serde",
@@ -4663,13 +4876,13 @@ dependencies = [
 
 [[package]]
 name = "ed25519-zebra"
-version = "4.0.2"
+version = "4.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e83e509bcd060ca4b54b72bde5bb306cb2088cb01e14797ebae90a24f70f5f7"
+checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9"
 dependencies = [
- "curve25519-dalek 4.0.0",
+ "curve25519-dalek 4.1.1",
  "ed25519",
- "hashbrown 0.14.0",
+ "hashbrown 0.14.3",
  "hex",
  "rand_core 0.6.4",
  "sha2 0.10.7",
@@ -4684,41 +4897,19 @@ checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
 
 [[package]]
 name = "elliptic-curve"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3"
-dependencies = [
- "base16ct 0.1.1",
- "crypto-bigint 0.4.9",
- "der 0.6.1",
- "digest 0.10.7",
- "ff 0.12.1",
- "generic-array 0.14.7",
- "group 0.12.1",
- "hkdf",
- "pem-rfc7468",
- "pkcs8 0.9.0",
- "rand_core 0.6.4",
- "sec1 0.3.0",
- "subtle 2.4.1",
- "zeroize",
-]
-
-[[package]]
-name = "elliptic-curve"
 version = "0.13.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b"
 dependencies = [
- "base16ct 0.2.0",
- "crypto-bigint 0.5.2",
+ "base16ct",
+ "crypto-bigint",
  "digest 0.10.7",
- "ff 0.13.0",
+ "ff",
  "generic-array 0.14.7",
- "group 0.13.0",
- "pkcs8 0.10.2",
+ "group",
+ "pkcs8",
  "rand_core 0.6.4",
- "sec1 0.7.3",
+ "sec1",
  "subtle 2.4.1",
  "zeroize",
 ]
@@ -4801,7 +4992,7 @@ checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -4812,7 +5003,7 @@ checksum = "c2ad8cef1d801a4686bfd8919f0b30eac4c8e48968c437a6405ded4fb5272d2b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -4904,6 +5095,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "ethabi-decode"
+version = "1.4.0"
+source = "git+https://github.com/snowfork/ethabi-decode.git?branch=master#7d215837b626650bd9a076821e57ad488101301f"
+dependencies = [
+ "ethereum-types",
+ "tiny-keccak",
+]
+
+[[package]]
 name = "ethbloom"
 version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4911,8 +5111,10 @@ checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60"
 dependencies = [
  "crunchy",
  "fixed-hash",
+ "impl-codec",
  "impl-rlp",
  "impl-serde",
+ "scale-info",
  "tiny-keccak",
 ]
 
@@ -4924,9 +5126,11 @@ checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee"
 dependencies = [
  "ethbloom",
  "fixed-hash",
+ "impl-codec",
  "impl-rlp",
  "impl-serde",
  "primitive-types",
+ "scale-info",
  "uint",
 ]
 
@@ -4967,7 +5171,7 @@ dependencies = [
  "fs-err",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -4993,6 +5197,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7"
 
 [[package]]
+name = "fallible-iterator"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649"
+
+[[package]]
 name = "fastrand"
 version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5008,6 +5218,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"
 
 [[package]]
+name = "fastrlp"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418"
+dependencies = [
+ "arrayvec 0.7.4",
+ "auto_impl",
+ "bytes",
+]
+
+[[package]]
 name = "fatality"
 version = "0.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5060,16 +5281,6 @@ dependencies = [
 
 [[package]]
 name = "ff"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160"
-dependencies = [
- "rand_core 0.6.4",
- "subtle 2.4.1",
-]
-
-[[package]]
-name = "ff"
 version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449"
@@ -5081,21 +5292,21 @@ dependencies = [
 [[package]]
 name = "fflonk"
 version = "0.1.0"
-source = "git+https://github.com/w3f/fflonk#1beb0585e1c8488956fac7f05da061f9b41e8948"
+source = "git+https://github.com/w3f/fflonk#1e854f35e9a65d08b11a86291405cdc95baa0a35"
 dependencies = [
  "ark-ec",
- "ark-ff",
+ "ark-ff 0.4.2",
  "ark-poly",
- "ark-serialize",
- "ark-std",
+ "ark-serialize 0.4.2",
+ "ark-std 0.4.0",
  "merlin 3.0.0",
 ]
 
 [[package]]
 name = "fiat-crypto"
-version = "0.1.20"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77"
+checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7"
 
 [[package]]
 name = "file-per-thread-logger"
@@ -5288,7 +5499,7 @@ dependencies = [
  "Inflector",
  "array-bytes 6.1.0",
  "chrono",
- "clap 4.4.10",
+ "clap 4.4.14",
  "comfy-table",
  "frame-benchmarking",
  "frame-support",
@@ -5349,12 +5560,12 @@ dependencies = [
  "frame-election-provider-support",
  "frame-support",
  "parity-scale-codec",
- "proc-macro-crate 2.0.0",
+ "proc-macro-crate 3.0.0",
  "proc-macro2",
  "quote",
  "scale-info",
  "sp-arithmetic",
- "syn 2.0.39",
+ "syn 2.0.48",
  "trybuild",
 ]
 
@@ -5380,7 +5591,7 @@ dependencies = [
 name = "frame-election-solution-type-fuzzer"
 version = "2.0.0-alpha.5"
 dependencies = [
- "clap 4.4.10",
+ "clap 4.4.14",
  "frame-election-provider-solution-type",
  "frame-election-provider-support",
  "frame-support",
@@ -5505,8 +5716,9 @@ dependencies = [
  "proc-macro-warning",
  "proc-macro2",
  "quote",
+ "regex",
  "sp-core-hashing",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -5514,10 +5726,10 @@ name = "frame-support-procedural-tools"
 version = "4.0.0-dev"
 dependencies = [
  "frame-support-procedural-tools-derive",
- "proc-macro-crate 2.0.0",
+ "proc-macro-crate 3.0.0",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -5526,7 +5738,7 @@ version = "3.0.0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -5759,7 +5971,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -5770,7 +5982,7 @@ checksum = "d2411eed028cdf8c8034eaf21f9915f956b6c3abec4d4c7949ee67f0721127bd"
 dependencies = [
  "futures-io",
  "rustls 0.20.8",
- "webpki 0.22.0",
+ "webpki",
 ]
 
 [[package]]
@@ -5919,7 +6131,7 @@ version = "0.27.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e"
 dependencies = [
- "fallible-iterator",
+ "fallible-iterator 0.2.0",
  "indexmap 1.9.3",
  "stable_deref_trait",
 ]
@@ -5929,6 +6141,10 @@ name = "gimli"
 version = "0.28.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
+dependencies = [
+ "fallible-iterator 0.3.0",
+ "stable_deref_trait",
+]
 
 [[package]]
 name = "glob"
@@ -5996,22 +6212,11 @@ dependencies = [
 
 [[package]]
 name = "group"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7"
-dependencies = [
- "ff 0.12.1",
- "rand_core 0.6.4",
- "subtle 2.4.1",
-]
-
-[[package]]
-name = "group"
 version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63"
 dependencies = [
- "ff 0.13.0",
+ "ff",
  "rand_core 0.6.4",
  "subtle 2.4.1",
 ]
@@ -6085,16 +6290,16 @@ version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
 dependencies = [
- "ahash 0.8.3",
+ "ahash 0.8.7",
 ]
 
 [[package]]
 name = "hashbrown"
-version = "0.14.0"
+version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 dependencies = [
- "ahash 0.8.3",
+ "ahash 0.8.7",
  "allocator-api2",
  "serde",
 ]
@@ -6105,7 +6310,7 @@ version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7"
 dependencies = [
- "hashbrown 0.14.0",
+ "hashbrown 0.14.3",
 ]
 
 [[package]]
@@ -6324,12 +6529,6 @@ dependencies = [
 ]
 
 [[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"
@@ -6471,7 +6670,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
 dependencies = [
  "equivalent",
- "hashbrown 0.14.0",
+ "hashbrown 0.14.3",
 ]
 
 [[package]]
@@ -6527,25 +6726,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "interceptor"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e8a11ae2da61704edada656798b61c94b35ecac2c58eb955156987d5e6be90b"
-dependencies = [
- "async-trait",
- "bytes",
- "log",
- "rand 0.8.5",
- "rtcp",
- "rtp",
- "thiserror",
- "tokio",
- "waitgroup",
- "webrtc-srtp",
- "webrtc-util",
-]
-
-[[package]]
 name = "io-lifetimes"
 version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6810,8 +6990,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cadb76004ed8e97623117f3df85b17aaa6626ab0b0831e6573f104df16cd1bcc"
 dependencies = [
  "cfg-if",
- "ecdsa 0.16.8",
- "elliptic-curve 0.13.5",
+ "ecdsa",
+ "elliptic-curve",
  "once_cell",
  "sha2 0.10.7",
 ]
@@ -6868,6 +7048,8 @@ dependencies = [
  "pallet-babe",
  "pallet-bags-list",
  "pallet-balances",
+ "pallet-beefy",
+ "pallet-beefy-mmr",
  "pallet-bounties",
  "pallet-broker",
  "pallet-child-bounties",
@@ -6879,6 +7061,7 @@ dependencies = [
  "pallet-election-provider-multi-phase",
  "pallet-election-provider-support-benchmarking",
  "pallet-elections-phragmen",
+ "pallet-example-tasks",
  "pallet-fast-unstake",
  "pallet-glutton",
  "pallet-grandpa",
@@ -6940,6 +7123,7 @@ dependencies = [
  "sp-authority-discovery",
  "sp-block-builder",
  "sp-consensus-babe",
+ "sp-consensus-beefy",
  "sp-consensus-grandpa",
  "sp-core",
  "sp-genesis-builder",
@@ -7013,15 +7197,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "layout-rs"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1164ef87cb9607c2d887216eca79f0fc92895affe1789bba805dd38d829584e0"
-dependencies = [
- "log",
-]
-
-[[package]]
 name = "lazy_static"
 version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -7094,9 +7269,9 @@ checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"
 
 [[package]]
 name = "libp2p"
-version = "0.51.3"
+version = "0.51.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f210d259724eae82005b5c48078619b7745edb7b76de370b03f8ba59ea103097"
+checksum = "f35eae38201a993ece6bdc823292d6abd1bffed1c4d0f4a3517d2bd8e1d917fe"
 dependencies = [
  "bytes",
  "futures",
@@ -7119,7 +7294,6 @@ dependencies = [
  "libp2p-swarm",
  "libp2p-tcp",
  "libp2p-wasm-ext",
- "libp2p-webrtc",
  "libp2p-websocket",
  "libp2p-yamux",
  "multiaddr",
@@ -7431,12 +7605,12 @@ dependencies = [
  "futures-rustls",
  "libp2p-core",
  "libp2p-identity",
- "rcgen 0.10.0",
+ "rcgen",
  "ring 0.16.20",
  "rustls 0.20.8",
  "thiserror",
- "webpki 0.22.0",
- "x509-parser 0.14.0",
+ "webpki",
+ "x509-parser",
  "yasna",
 ]
 
@@ -7455,37 +7629,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "libp2p-webrtc"
-version = "0.4.0-alpha.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dba48592edbc2f60b4bc7c10d65445b0c3964c07df26fdf493b6880d33be36f8"
-dependencies = [
- "async-trait",
- "asynchronous-codec",
- "bytes",
- "futures",
- "futures-timer",
- "hex",
- "if-watch",
- "libp2p-core",
- "libp2p-identity",
- "libp2p-noise",
- "log",
- "multihash 0.17.0",
- "quick-protobuf",
- "quick-protobuf-codec",
- "rand 0.8.5",
- "rcgen 0.9.3",
- "serde",
- "stun",
- "thiserror",
- "tinytemplate",
- "tokio",
- "tokio-util",
- "webrtc",
-]
-
-[[package]]
 name = "libp2p-websocket"
 version = "0.41.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -7763,7 +7906,7 @@ dependencies = [
  "macro_magic_core",
  "macro_magic_macros",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -7777,7 +7920,7 @@ dependencies = [
  "macro_magic_core_macros",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -7788,7 +7931,7 @@ checksum = "9ea73aa640dc01d62a590d48c0c3521ed739d53b27f919b25c3551e233481654"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -7799,7 +7942,7 @@ checksum = "ef9d79ae96aaba821963320eb2b6e34d17df1e5a83d8a1985c29cc5be59577b3"
 dependencies = [
  "macro_magic_core",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -7840,15 +7983,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "md-5"
-version = "0.10.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca"
-dependencies = [
- "digest 0.10.7",
-]
-
-[[package]]
 name = "memchr"
 version = "2.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -7874,15 +8008,6 @@ dependencies = [
 
 [[package]]
 name = "memoffset"
-version = "0.6.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "memoffset"
 version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
@@ -7953,6 +8078,20 @@ dependencies = [
 ]
 
 [[package]]
+name = "milagro_bls"
+version = "1.5.0"
+source = "git+https://github.com/snowfork/milagro_bls?rev=a6d66e4eb89015e352fb1c9f7b661ecdbb5b2176#a6d66e4eb89015e352fb1c9f7b661ecdbb5b2176"
+dependencies = [
+ "amcl",
+ "hex",
+ "lazy_static",
+ "parity-scale-codec",
+ "rand 0.8.5",
+ "scale-info",
+ "zeroize",
+]
+
+[[package]]
 name = "mime"
 version = "0.3.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -7968,7 +8107,7 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 name = "minimal-node"
 version = "4.0.0-dev"
 dependencies = [
- "clap 4.4.10",
+ "clap 4.4.14",
  "frame",
  "futures",
  "futures-timer",
@@ -8047,7 +8186,7 @@ dependencies = [
  "bitflags 1.3.2",
  "blake2 0.10.6",
  "c2-chacha",
- "curve25519-dalek 4.0.0",
+ "curve25519-dalek 4.1.1",
  "either",
  "hashlink",
  "lioness",
@@ -8305,15 +8444,6 @@ dependencies = [
 
 [[package]]
 name = "names"
-version = "0.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7d66043b25d4a6cccb23619d10c19c25304b355a7dccd4a8e11423dd2382146"
-dependencies = [
- "rand 0.8.5",
-]
-
-[[package]]
-name = "names"
 version = "0.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7bddcd3bf5144b6392de80e04c347cd7fab2508f6df16a85fc496ecd5cec39bc"
@@ -8403,7 +8533,6 @@ dependencies = [
  "bitflags 1.3.2",
  "cfg-if",
  "libc",
- "memoffset 0.6.5",
 ]
 
 [[package]]
@@ -8442,7 +8571,7 @@ name = "node-bench"
 version = "0.9.0-dev"
 dependencies = [
  "array-bytes 6.1.0",
- "clap 4.4.10",
+ "clap 4.4.14",
  "derive_more",
  "fs_extra",
  "futures",
@@ -8493,6 +8622,8 @@ dependencies = [
  "sc-client-api",
  "sc-consensus-babe",
  "sc-consensus-babe-rpc",
+ "sc-consensus-beefy",
+ "sc-consensus-beefy-rpc",
  "sc-consensus-grandpa",
  "sc-consensus-grandpa-rpc",
  "sc-mixnet",
@@ -8517,7 +8648,7 @@ dependencies = [
 name = "node-runtime-generate-bags"
 version = "3.0.0"
 dependencies = [
- "clap 4.4.10",
+ "clap 4.4.14",
  "generate-bags",
  "kitchensink-runtime",
 ]
@@ -8526,7 +8657,7 @@ dependencies = [
 name = "node-template"
 version = "4.0.0-dev"
 dependencies = [
- "clap 4.4.10",
+ "clap 4.4.14",
  "frame-benchmarking",
  "frame-benchmarking-cli",
  "frame-system",
@@ -8570,14 +8701,14 @@ dependencies = [
 name = "node-template-release"
 version = "3.0.0"
 dependencies = [
- "clap 4.4.10",
+ "clap 4.4.14",
  "flate2",
  "fs_extra",
  "glob",
  "itertools 0.10.5",
  "tar",
  "tempfile",
- "toml_edit 0.19.14",
+ "toml_edit 0.19.15",
 ]
 
 [[package]]
@@ -8763,9 +8894,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.16"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
+checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
 dependencies = [
  "autocfg",
  "libm",
@@ -8801,29 +8932,20 @@ dependencies = [
 
 [[package]]
 name = "object"
-version = "0.32.0"
+version = "0.32.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77ac5bbd07aea88c60a577a1ce218075ffd59208b2d7ca97adf9bfc5aeb21ebe"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "oid-registry"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38e20717fa0541f39bd146692035c37bedfa532b3e5071b35761082407546b2a"
-dependencies = [
- "asn1-rs 0.3.1",
-]
-
-[[package]]
-name = "oid-registry"
 version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff"
 dependencies = [
- "asn1-rs 0.5.2",
+ "asn1-rs",
 ]
 
 [[package]]
@@ -8885,12 +9007,9 @@ version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d035b1f968d91a826f2e34a9d6d02cb2af5aa7ca39ebd27922d850ab4b2dd2c6"
 dependencies = [
- "anyhow",
  "expander 2.0.0",
- "fs-err",
  "indexmap 2.0.0",
  "itertools 0.11.0",
- "layout-rs",
  "petgraph",
  "proc-macro-crate 1.3.1",
  "proc-macro2",
@@ -8930,28 +9049,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f"
 
 [[package]]
-name = "p256"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51f44edd08f51e2ade572f141051021c5af22677e42b7dd28a88155151c33594"
-dependencies = [
- "ecdsa 0.14.8",
- "elliptic-curve 0.12.3",
- "sha2 0.10.7",
-]
-
-[[package]]
-name = "p384"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dfc8c5bf642dde52bb9e87c0ecd8ca5a76faac2eeed98dedb7c717997e1080aa"
-dependencies = [
- "ecdsa 0.14.8",
- "elliptic-curve 0.12.3",
- "sha2 0.10.7",
-]
-
-[[package]]
 name = "pallet-alliance"
 version = "4.0.0-dev"
 dependencies = [
@@ -9525,21 +9622,17 @@ name = "pallet-contracts-fixtures"
 version = "1.0.0"
 dependencies = [
  "anyhow",
- "cfg-if",
  "frame-system",
  "parity-wasm",
+ "polkavm-linker",
  "sp-runtime",
  "tempfile",
- "toml 0.8.8",
+ "toml 0.8.2",
  "twox-hash",
  "wat",
 ]
 
 [[package]]
-name = "pallet-contracts-fixtures-common"
-version = "1.0.0"
-
-[[package]]
 name = "pallet-contracts-mock-network"
 version = "1.0.0"
 dependencies = [
@@ -9583,7 +9676,7 @@ version = "4.0.0-dev"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -9593,6 +9686,7 @@ dependencies = [
  "bitflags 1.3.2",
  "parity-scale-codec",
  "paste",
+ "polkavm-derive",
  "scale-info",
 ]
 
@@ -9843,6 +9937,22 @@ dependencies = [
 ]
 
 [[package]]
+name = "pallet-example-tasks"
+version = "1.0.0-dev"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std 8.0.0",
+]
+
+[[package]]
 name = "pallet-examples"
 version = "4.0.0-dev"
 dependencies = [
@@ -9853,6 +9963,7 @@ dependencies = [
  "pallet-example-kitchensink",
  "pallet-example-offchain-worker",
  "pallet-example-split",
+ "pallet-example-tasks",
 ]
 
 [[package]]
@@ -9936,11 +10047,13 @@ dependencies = [
  "frame-benchmarking",
  "frame-support",
  "frame-system",
+ "log",
  "pallet-balances",
  "parity-scale-codec",
  "scale-info",
  "sp-core",
  "sp-io",
+ "sp-keystore",
  "sp-runtime",
  "sp-std 8.0.0",
 ]
@@ -10034,6 +10147,7 @@ dependencies = [
 name = "pallet-message-queue"
 version = "7.0.0-dev"
 dependencies = [
+ "environmental",
  "frame-benchmarking",
  "frame-support",
  "frame-system",
@@ -10721,11 +10835,11 @@ dependencies = [
 name = "pallet-staking-reward-curve"
 version = "4.0.0-dev"
 dependencies = [
- "proc-macro-crate 2.0.0",
+ "proc-macro-crate 3.0.0",
  "proc-macro2",
  "quote",
  "sp-runtime",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -11131,7 +11245,7 @@ dependencies = [
 name = "parachain-template-node"
 version = "0.1.0"
 dependencies = [
- "clap 4.4.10",
+ "clap 4.4.14",
  "color-print",
  "cumulus-client-cli",
  "cumulus-client-collator",
@@ -11259,6 +11373,7 @@ dependencies = [
  "pallet-balances",
  "pallet-collator-selection",
  "pallet-message-queue",
+ "pallet-xcm",
  "parity-scale-codec",
  "polkadot-core-primitives",
  "polkadot-primitives",
@@ -11273,6 +11388,7 @@ dependencies = [
  "staging-parachain-info",
  "staging-xcm",
  "staging-xcm-builder",
+ "staging-xcm-executor",
  "substrate-wasm-builder",
  "westend-runtime-constants",
 ]
@@ -11311,6 +11427,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "parity-bytes"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16b56e3a2420138bdb970f84dfb9c774aea80fa0e7371549eedec0d80c209c67"
+
+[[package]]
 name = "parity-db"
 version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -11498,15 +11620,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "pem-rfc7468"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24d159833a9105500e0398934e205e0773f0b27529557134ecfc51c27646adac"
-dependencies = [
- "base64ct",
-]
-
-[[package]]
 name = "penpal-emulated-chain"
 version = "0.0.0"
 dependencies = [
@@ -11526,6 +11639,7 @@ dependencies = [
 name = "penpal-runtime"
 version = "0.9.27"
 dependencies = [
+ "assets-common",
  "cumulus-pallet-aura-ext",
  "cumulus-pallet-dmp-queue",
  "cumulus-pallet-parachain-system",
@@ -11563,6 +11677,222 @@ dependencies = [
  "polkadot-runtime-common",
  "scale-info",
  "smallvec",
+ "snowbridge-rococo-common",
+ "sp-api",
+ "sp-block-builder",
+ "sp-consensus-aura",
+ "sp-core",
+ "sp-genesis-builder",
+ "sp-inherents",
+ "sp-offchain",
+ "sp-runtime",
+ "sp-session",
+ "sp-std 8.0.0",
+ "sp-storage 13.0.0",
+ "sp-transaction-pool",
+ "sp-version",
+ "staging-parachain-info",
+ "staging-xcm",
+ "staging-xcm-builder",
+ "staging-xcm-executor",
+ "substrate-wasm-builder",
+]
+
+[[package]]
+name = "people-rococo-emulated-chain"
+version = "0.1.0"
+dependencies = [
+ "cumulus-primitives-core",
+ "emulated-integration-tests-common",
+ "frame-support",
+ "parachains-common",
+ "people-rococo-runtime",
+ "rococo-emulated-chain",
+ "serde_json",
+ "sp-core",
+ "sp-runtime",
+]
+
+[[package]]
+name = "people-rococo-integration-tests"
+version = "0.1.0"
+dependencies = [
+ "assert_matches",
+ "asset-test-utils",
+ "emulated-integration-tests-common",
+ "frame-support",
+ "pallet-asset-conversion",
+ "pallet-assets",
+ "pallet-balances",
+ "pallet-identity",
+ "pallet-message-queue",
+ "pallet-xcm",
+ "parachains-common",
+ "parity-scale-codec",
+ "penpal-runtime",
+ "people-rococo-runtime",
+ "polkadot-primitives",
+ "polkadot-runtime-common",
+ "rococo-runtime",
+ "rococo-runtime-constants",
+ "rococo-system-emulated-network",
+ "sp-runtime",
+ "staging-xcm",
+ "staging-xcm-executor",
+]
+
+[[package]]
+name = "people-rococo-runtime"
+version = "0.1.0"
+dependencies = [
+ "cumulus-pallet-aura-ext",
+ "cumulus-pallet-dmp-queue",
+ "cumulus-pallet-parachain-system",
+ "cumulus-pallet-session-benchmarking",
+ "cumulus-pallet-xcm",
+ "cumulus-pallet-xcmp-queue",
+ "cumulus-primitives-core",
+ "cumulus-primitives-utility",
+ "enumflags2",
+ "frame-benchmarking",
+ "frame-executive",
+ "frame-support",
+ "frame-system",
+ "frame-system-benchmarking",
+ "frame-system-rpc-runtime-api",
+ "frame-try-runtime",
+ "hex-literal",
+ "log",
+ "pallet-aura",
+ "pallet-authorship",
+ "pallet-balances",
+ "pallet-collator-selection",
+ "pallet-identity",
+ "pallet-message-queue",
+ "pallet-multisig",
+ "pallet-session",
+ "pallet-timestamp",
+ "pallet-transaction-payment",
+ "pallet-transaction-payment-rpc-runtime-api",
+ "pallet-utility",
+ "pallet-xcm",
+ "pallet-xcm-benchmarks",
+ "parachains-common",
+ "parity-scale-codec",
+ "polkadot-core-primitives",
+ "polkadot-parachain-primitives",
+ "polkadot-runtime-common",
+ "rococo-runtime-constants",
+ "scale-info",
+ "serde",
+ "smallvec",
+ "sp-api",
+ "sp-block-builder",
+ "sp-consensus-aura",
+ "sp-core",
+ "sp-genesis-builder",
+ "sp-inherents",
+ "sp-offchain",
+ "sp-runtime",
+ "sp-session",
+ "sp-std 8.0.0",
+ "sp-storage 13.0.0",
+ "sp-transaction-pool",
+ "sp-version",
+ "staging-parachain-info",
+ "staging-xcm",
+ "staging-xcm-builder",
+ "staging-xcm-executor",
+ "substrate-wasm-builder",
+]
+
+[[package]]
+name = "people-westend-emulated-chain"
+version = "0.1.0"
+dependencies = [
+ "cumulus-primitives-core",
+ "emulated-integration-tests-common",
+ "frame-support",
+ "parachains-common",
+ "people-westend-runtime",
+ "serde_json",
+ "sp-core",
+ "sp-runtime",
+ "westend-emulated-chain",
+]
+
+[[package]]
+name = "people-westend-integration-tests"
+version = "0.1.0"
+dependencies = [
+ "assert_matches",
+ "asset-test-utils",
+ "emulated-integration-tests-common",
+ "frame-support",
+ "pallet-asset-conversion",
+ "pallet-assets",
+ "pallet-balances",
+ "pallet-identity",
+ "pallet-message-queue",
+ "pallet-xcm",
+ "parachains-common",
+ "parity-scale-codec",
+ "penpal-runtime",
+ "people-westend-runtime",
+ "polkadot-primitives",
+ "polkadot-runtime-common",
+ "sp-runtime",
+ "staging-xcm",
+ "staging-xcm-executor",
+ "westend-runtime",
+ "westend-runtime-constants",
+ "westend-system-emulated-network",
+]
+
+[[package]]
+name = "people-westend-runtime"
+version = "0.1.0"
+dependencies = [
+ "cumulus-pallet-aura-ext",
+ "cumulus-pallet-dmp-queue",
+ "cumulus-pallet-parachain-system",
+ "cumulus-pallet-session-benchmarking",
+ "cumulus-pallet-xcm",
+ "cumulus-pallet-xcmp-queue",
+ "cumulus-primitives-core",
+ "cumulus-primitives-utility",
+ "enumflags2",
+ "frame-benchmarking",
+ "frame-executive",
+ "frame-support",
+ "frame-system",
+ "frame-system-benchmarking",
+ "frame-system-rpc-runtime-api",
+ "frame-try-runtime",
+ "hex-literal",
+ "log",
+ "pallet-aura",
+ "pallet-authorship",
+ "pallet-balances",
+ "pallet-collator-selection",
+ "pallet-identity",
+ "pallet-message-queue",
+ "pallet-multisig",
+ "pallet-session",
+ "pallet-timestamp",
+ "pallet-transaction-payment",
+ "pallet-transaction-payment-rpc-runtime-api",
+ "pallet-utility",
+ "pallet-xcm",
+ "pallet-xcm-benchmarks",
+ "parachains-common",
+ "parity-scale-codec",
+ "polkadot-core-primitives",
+ "polkadot-parachain-primitives",
+ "polkadot-runtime-common",
+ "scale-info",
+ "serde",
+ "smallvec",
  "sp-api",
  "sp-block-builder",
  "sp-consensus-aura",
@@ -11581,6 +11911,7 @@ dependencies = [
  "staging-xcm-builder",
  "staging-xcm-executor",
  "substrate-wasm-builder",
+ "westend-runtime-constants",
 ]
 
 [[package]]
@@ -11619,7 +11950,7 @@ dependencies = [
  "pest_meta",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -11660,7 +11991,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -11683,22 +12014,12 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[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 = "pkcs8"
 version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7"
 dependencies = [
- "der 0.7.8",
- "spki 0.7.2",
+ "der",
+ "spki",
 ]
 
 [[package]]
@@ -11743,7 +12064,7 @@ dependencies = [
 
 [[package]]
 name = "polkadot"
-version = "1.5.0"
+version = "1.6.0"
 dependencies = [
  "assert_cmd",
  "color-eyre",
@@ -11784,8 +12105,8 @@ dependencies = [
  "polkadot-primitives-test-helpers",
  "rand 0.8.5",
  "rand_chacha 0.3.1",
- "rand_core 0.5.1",
- "schnorrkel 0.9.1",
+ "rand_core 0.6.4",
+ "schnorrkel 0.11.4",
  "sp-authority-discovery",
  "sp-core",
  "tracing-gum",
@@ -11874,6 +12195,7 @@ dependencies = [
  "sp-core",
  "sp-keyring",
  "thiserror",
+ "tokio",
  "tracing-gum",
 ]
 
@@ -11882,7 +12204,7 @@ name = "polkadot-cli"
 version = "1.1.0"
 dependencies = [
  "cfg-if",
- "clap 4.4.10",
+ "clap 4.4.14",
  "frame-benchmarking-cli",
  "futures",
  "log",
@@ -12088,7 +12410,7 @@ dependencies = [
  "kvdb",
  "kvdb-memorydb",
  "log",
- "merlin 2.0.1",
+ "merlin 3.0.0",
  "parity-scale-codec",
  "parking_lot 0.12.1",
  "polkadot-node-jaeger",
@@ -12101,10 +12423,10 @@ dependencies = [
  "polkadot-primitives-test-helpers",
  "rand 0.8.5",
  "rand_chacha 0.3.1",
- "rand_core 0.5.1",
+ "rand_core 0.6.4",
  "sc-keystore",
  "schnellru",
- "schnorrkel 0.9.1",
+ "schnorrkel 0.11.4",
  "sp-application-crypto",
  "sp-consensus",
  "sp-consensus-babe",
@@ -12349,6 +12671,7 @@ name = "polkadot-node-core-pvf"
 version = "1.0.0"
 dependencies = [
  "always-assert",
+ "array-bytes 6.1.0",
  "assert_matches",
  "blake3",
  "cfg-if",
@@ -12431,7 +12754,6 @@ dependencies = [
  "sp-externalities 0.19.0",
  "sp-io",
  "sp-tracing 10.0.0",
- "substrate-build-script-utils",
  "tempfile",
  "thiserror",
  "tracing-gum",
@@ -12575,7 +12897,7 @@ dependencies = [
  "polkadot-erasure-coding",
  "polkadot-parachain-primitives",
  "polkadot-primitives",
- "schnorrkel 0.9.1",
+ "schnorrkel 0.11.4",
  "serde",
  "sp-application-crypto",
  "sp-consensus-babe",
@@ -12603,6 +12925,8 @@ dependencies = [
  "async-trait",
  "futures",
  "parking_lot 0.12.1",
+ "polkadot-erasure-coding",
+ "polkadot-node-primitives",
  "polkadot-node-subsystem",
  "polkadot-node-subsystem-util",
  "polkadot-primitives",
@@ -12661,7 +12985,7 @@ dependencies = [
  "log",
  "parity-db",
  "parity-scale-codec",
- "parking_lot 0.11.2",
+ "parking_lot 0.12.1",
  "pin-project",
  "polkadot-node-jaeger",
  "polkadot-node-metrics",
@@ -12713,7 +13037,7 @@ dependencies = [
 
 [[package]]
 name = "polkadot-parachain-bin"
-version = "1.5.0"
+version = "1.6.0"
 dependencies = [
  "assert_cmd",
  "asset-hub-rococo-runtime",
@@ -12721,20 +13045,22 @@ dependencies = [
  "async-trait",
  "bridge-hub-rococo-runtime",
  "bridge-hub-westend-runtime",
- "clap 4.4.10",
+ "clap 4.4.14",
  "collectives-westend-runtime",
  "color-print",
  "contracts-rococo-runtime",
+ "coretime-rococo-runtime",
+ "coretime-westend-runtime",
  "cumulus-client-cli",
  "cumulus-client-collator",
  "cumulus-client-consensus-aura",
  "cumulus-client-consensus-common",
  "cumulus-client-consensus-proposer",
  "cumulus-client-consensus-relay-chain",
+ "cumulus-client-parachain-inherent",
  "cumulus-client-service",
  "cumulus-primitives-aura",
  "cumulus-primitives-core",
- "cumulus-primitives-parachain-inherent",
  "cumulus-relay-chain-interface",
  "frame-benchmarking",
  "frame-benchmarking-cli",
@@ -12753,6 +13079,8 @@ dependencies = [
  "parachains-common",
  "parity-scale-codec",
  "penpal-runtime",
+ "people-rococo-runtime",
+ "people-westend-runtime",
  "polkadot-cli",
  "polkadot-primitives",
  "polkadot-service",
@@ -12874,6 +13202,7 @@ dependencies = [
  "sc-consensus-grandpa",
  "sc-consensus-grandpa-rpc",
  "sc-rpc",
+ "sc-rpc-spec-v2",
  "sc-sync-state-rpc",
  "sc-transaction-pool-api",
  "sp-api",
@@ -12905,6 +13234,7 @@ dependencies = [
  "pallet-authorship",
  "pallet-babe",
  "pallet-balances",
+ "pallet-broker",
  "pallet-election-provider-multi-phase",
  "pallet-fast-unstake",
  "pallet-identity",
@@ -12975,6 +13305,7 @@ dependencies = [
  "pallet-authorship",
  "pallet-babe",
  "pallet-balances",
+ "pallet-broker",
  "pallet-message-queue",
  "pallet-session",
  "pallet-staking",
@@ -12995,6 +13326,7 @@ dependencies = [
  "serde_json",
  "sp-api",
  "sp-application-crypto",
+ "sp-arithmetic",
  "sp-core",
  "sp-inherents",
  "sp-io",
@@ -13219,6 +13551,54 @@ dependencies = [
 ]
 
 [[package]]
+name = "polkadot-subsystem-bench"
+version = "1.0.0"
+dependencies = [
+ "assert_matches",
+ "async-trait",
+ "clap 4.4.14",
+ "clap-num",
+ "color-eyre",
+ "colored",
+ "env_logger 0.9.3",
+ "futures",
+ "futures-timer",
+ "itertools 0.11.0",
+ "log",
+ "orchestra",
+ "parity-scale-codec",
+ "paste",
+ "polkadot-availability-recovery",
+ "polkadot-erasure-coding",
+ "polkadot-node-metrics",
+ "polkadot-node-network-protocol",
+ "polkadot-node-primitives",
+ "polkadot-node-subsystem",
+ "polkadot-node-subsystem-test-helpers",
+ "polkadot-node-subsystem-types",
+ "polkadot-node-subsystem-util",
+ "polkadot-overseer",
+ "polkadot-primitives",
+ "polkadot-primitives-test-helpers",
+ "prometheus",
+ "pyroscope",
+ "pyroscope_pprofrs",
+ "rand 0.8.5",
+ "sc-keystore",
+ "sc-network",
+ "sc-service",
+ "serde",
+ "serde_yaml",
+ "sp-application-crypto",
+ "sp-core",
+ "sp-keyring",
+ "sp-keystore",
+ "substrate-prometheus-endpoint",
+ "tokio",
+ "tracing-gum",
+]
+
+[[package]]
 name = "polkadot-test-client"
 version = "1.0.0"
 dependencies = [
@@ -13253,7 +13633,7 @@ version = "1.0.0"
 dependencies = [
  "assert_matches",
  "async-trait",
- "clap 4.4.10",
+ "clap 4.4.14",
  "color-eyre",
  "futures",
  "futures-timer",
@@ -13400,13 +13780,55 @@ dependencies = [
 name = "polkadot-voter-bags"
 version = "1.0.0"
 dependencies = [
- "clap 4.4.10",
+ "clap 4.4.14",
  "generate-bags",
  "sp-io",
  "westend-runtime",
 ]
 
 [[package]]
+name = "polkavm-common"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fecd2caacfc4a7ee34243758dd7348859e6dec73f5e5df059890f5742ee46f0e"
+
+[[package]]
+name = "polkavm-derive"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db65a500d4adf574893c726ae365e37e4fbb7f2cbd403f6eaa1b665457456adc"
+dependencies = [
+ "polkavm-derive-impl",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "polkavm-derive-impl"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c99f4e7a9ff434ef9c885b874c99d824c3a5693bf5e3e8569bb1d2245a8c1b7f"
+dependencies = [
+ "polkavm-common",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "polkavm-linker"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "550738c1b49b9279fa19d8ebed81f551b911b869227a20a190f85f6db45d5d0e"
+dependencies = [
+ "gimli 0.28.0",
+ "hashbrown 0.14.3",
+ "log",
+ "object 0.32.2",
+ "polkavm-common",
+ "rustc-demangle",
+]
+
+[[package]]
 name = "polling"
 version = "2.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -13578,7 +14000,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6c64d9ba0963cdcea2e1b2230fbae2bab30eb25a174be395c41e764bfb65dd62"
 dependencies = [
  "proc-macro2",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -13619,16 +14041,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
 dependencies = [
  "once_cell",
- "toml_edit 0.19.14",
+ "toml_edit 0.19.15",
 ]
 
 [[package]]
 name = "proc-macro-crate"
-version = "2.0.0"
+version = "3.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8"
+checksum = "6b2685dd208a3771337d8d386a89840f0f43cd68be8dae90a5f8c2384effc9cd"
 dependencies = [
- "toml_edit 0.20.7",
+ "toml_edit 0.21.0",
 ]
 
 [[package]]
@@ -13669,14 +14091,14 @@ checksum = "9b698b0b09d40e9b7c1a47b132d66a8b54bcd20583d9b6d06e4535e383b4405c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.69"
+version = "1.0.75"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
+checksum = "907a61bd0f64c2f29cd1cf1dc34d05176426a3f504a78010f08416ddb7b13708"
 dependencies = [
  "unicode-ident",
 ]
@@ -13741,7 +14163,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -13757,6 +14179,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "proptest"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf"
+dependencies = [
+ "bit-set",
+ "bit-vec",
+ "bitflags 2.4.0",
+ "lazy_static",
+ "num-traits",
+ "rand 0.8.5",
+ "rand_chacha 0.3.1",
+ "rand_xorshift",
+ "regex-syntax 0.8.2",
+ "rusty-fork",
+ "tempfile",
+ "unarray",
+]
+
+[[package]]
 name = "prost"
 version = "0.11.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -13829,7 +14271,7 @@ dependencies = [
  "libc",
  "libflate",
  "log",
- "names 0.14.0",
+ "names",
  "prost",
  "reqwest",
  "thiserror",
@@ -13914,14 +14356,14 @@ dependencies = [
  "thiserror",
  "tinyvec",
  "tracing",
- "webpki 0.22.0",
+ "webpki",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.33"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
@@ -14023,6 +14465,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "rand_xorshift"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f"
+dependencies = [
+ "rand_core 0.6.4",
+]
+
+[[package]]
 name = "rawpointer"
 version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -14052,26 +14503,13 @@ dependencies = [
 
 [[package]]
 name = "rcgen"
-version = "0.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd"
-dependencies = [
- "pem",
- "ring 0.16.20",
- "time 0.3.27",
- "x509-parser 0.13.2",
- "yasna",
-]
-
-[[package]]
-name = "rcgen"
 version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b"
 dependencies = [
  "pem",
  "ring 0.16.20",
- "time 0.3.27",
+ "time",
  "yasna",
 ]
 
@@ -14143,7 +14581,7 @@ checksum = "7f7473c2cfcf90008193dd0e3e16599455cb601a9fce322b5bb55de799664925"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -14212,7 +14650,7 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 name = "remote-ext-tests-bags-list"
 version = "1.0.0"
 dependencies = [
- "clap 4.4.10",
+ "clap 4.4.14",
  "frame-system",
  "log",
  "pallet-bags-list-remote-tests",
@@ -14274,17 +14712,6 @@ dependencies = [
 
 [[package]]
 name = "rfc6979"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb"
-dependencies = [
- "crypto-bigint 0.4.9",
- "hmac 0.12.1",
- "zeroize",
-]
-
-[[package]]
-name = "rfc6979"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2"
@@ -14296,13 +14723,13 @@ dependencies = [
 [[package]]
 name = "ring"
 version = "0.1.0"
-source = "git+https://github.com/w3f/ring-proof#61e7b528bc0170d6bf541be32440d569b784425d"
+source = "git+https://github.com/w3f/ring-proof#b273d33f9981e2bb3375ab45faeb537f7ee35224"
 dependencies = [
  "ark-ec",
- "ark-ff",
+ "ark-ff 0.4.2",
  "ark-poly",
- "ark-serialize",
- "ark-std",
+ "ark-serialize 0.4.2",
+ "ark-std 0.4.0",
  "blake2 0.10.6",
  "common",
  "fflonk",
@@ -14319,12 +14746,26 @@ dependencies = [
  "libc",
  "once_cell",
  "spin 0.5.2",
- "untrusted",
+ "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"
+dependencies = [
+ "cc",
+ "getrandom 0.2.10",
+ "libc",
+ "spin 0.9.8",
+ "untrusted 0.9.0",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
 name = "ripemd"
 version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -14544,6 +14985,7 @@ dependencies = [
  "sp-runtime",
  "sp-weights",
  "staging-xcm",
+ "staging-xcm-builder",
 ]
 
 [[package]]
@@ -14554,6 +14996,7 @@ dependencies = [
  "bridge-hub-rococo-emulated-chain",
  "emulated-integration-tests-common",
  "penpal-emulated-chain",
+ "people-rococo-emulated-chain",
  "rococo-emulated-chain",
 ]
 
@@ -14566,6 +15009,7 @@ dependencies = [
  "bridge-hub-rococo-emulated-chain",
  "bridge-hub-westend-emulated-chain",
  "emulated-integration-tests-common",
+ "penpal-emulated-chain",
  "rococo-emulated-chain",
  "westend-emulated-chain",
 ]
@@ -14582,17 +15026,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "rtcp"
-version = "0.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1919efd6d4a6a85d13388f9487549bb8e359f17198cc03ffd72f79b553873691"
-dependencies = [
- "bytes",
- "thiserror",
- "webrtc-util",
-]
-
-[[package]]
 name = "rtnetlink"
 version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -14618,20 +15051,36 @@ dependencies = [
 ]
 
 [[package]]
-name = "rtp"
-version = "0.6.8"
+name = "ruint"
+version = "1.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2a095411ff00eed7b12e4c6a118ba984d113e1079582570d56a5ee723f11f80"
+checksum = "608a5726529f2f0ef81b8fde9873c4bb829d6b5b5ca6be4d97345ddf0749c825"
 dependencies = [
- "async-trait",
+ "alloy-rlp",
+ "ark-ff 0.3.0",
+ "ark-ff 0.4.2",
  "bytes",
+ "fastrlp",
+ "num-bigint",
+ "num-traits",
+ "parity-scale-codec",
+ "primitive-types",
+ "proptest",
  "rand 0.8.5",
+ "rlp",
+ "ruint-macro",
  "serde",
- "thiserror",
- "webrtc-util",
+ "valuable",
+ "zeroize",
 ]
 
 [[package]]
+name = "ruint-macro"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e666a5496a0b2186dbcd0ff6106e29e093c15591bde62c20d3842007c6978a09"
+
+[[package]]
 name = "rustc-demangle"
 version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -14660,6 +15109,15 @@ dependencies = [
 
 [[package]]
 name = "rustc_version"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee"
+dependencies = [
+ "semver 0.11.0",
+]
+
+[[package]]
+name = "rustc_version"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
@@ -14719,27 +15177,14 @@ dependencies = [
 
 [[package]]
 name = "rustls"
-version = "0.19.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7"
-dependencies = [
- "base64 0.13.1",
- "log",
- "ring 0.16.20",
- "sct 0.6.1",
- "webpki 0.21.4",
-]
-
-[[package]]
-name = "rustls"
 version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f"
 dependencies = [
  "log",
  "ring 0.16.20",
- "sct 0.7.0",
- "webpki 0.22.0",
+ "sct",
+ "webpki",
 ]
 
 [[package]]
@@ -14751,7 +15196,7 @@ dependencies = [
  "log",
  "ring 0.16.20",
  "rustls-webpki 0.101.4",
- "sct 0.7.0",
+ "sct",
 ]
 
 [[package]]
@@ -14782,7 +15227,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e98ff011474fa39949b7e5c0428f9b4937eda7da7848bbb947786b7be0b27dab"
 dependencies = [
  "ring 0.16.20",
- "untrusted",
+ "untrusted 0.7.1",
 ]
 
 [[package]]
@@ -14792,7 +15237,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7d93931baf2d282fff8d3a532bbfd7653f734643161b87e3e01e59a04439bf0d"
 dependencies = [
  "ring 0.16.20",
- "untrusted",
+ "untrusted 0.7.1",
 ]
 
 [[package]]
@@ -14982,10 +15427,10 @@ dependencies = [
 name = "sc-chain-spec-derive"
 version = "4.0.0-dev"
 dependencies = [
- "proc-macro-crate 2.0.0",
+ "proc-macro-crate 3.0.0",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -14995,14 +15440,14 @@ dependencies = [
  "array-bytes 6.1.0",
  "bip39",
  "chrono",
- "clap 4.4.10",
+ "clap 4.4.14",
  "fdlimit",
  "futures",
  "futures-timer",
  "itertools 0.10.5",
  "libp2p-identity",
  "log",
- "names 0.13.0",
+ "names",
  "parity-scale-codec",
  "rand 0.8.5",
  "regex",
@@ -15304,7 +15749,7 @@ dependencies = [
 name = "sc-consensus-grandpa"
 version = "0.10.0-dev"
 dependencies = [
- "ahash 0.8.3",
+ "ahash 0.8.7",
  "array-bytes 6.1.0",
  "assert_matches",
  "async-trait",
@@ -15688,7 +16133,7 @@ dependencies = [
 name = "sc-network-gossip"
 version = "0.10.0-dev"
 dependencies = [
- "ahash 0.8.3",
+ "ahash 0.8.7",
  "async-trait",
  "futures",
  "futures-timer",
@@ -16139,10 +16584,9 @@ dependencies = [
 name = "sc-storage-monitor"
 version = "0.1.0"
 dependencies = [
- "clap 4.4.10",
+ "clap 4.4.14",
  "fs4",
  "log",
- "sc-client-db",
  "sp-core",
  "thiserror",
  "tokio",
@@ -16209,9 +16653,9 @@ name = "sc-tracing"
 version = "4.0.0-dev"
 dependencies = [
  "ansi_term",
- "atty",
  "chrono",
  "criterion 0.4.0",
+ "is-terminal",
  "lazy_static",
  "libc",
  "log",
@@ -16238,10 +16682,10 @@ dependencies = [
 name = "sc-tracing-proc-macro"
 version = "4.0.0-dev"
 dependencies = [
- "proc-macro-crate 2.0.0",
+ "proc-macro-crate 3.0.0",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -16344,12 +16788,36 @@ dependencies = [
 ]
 
 [[package]]
+name = "schemars"
+version = "0.8.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "763f8cd0d4c71ed8389c90cb8100cba87e763bd01a8e614d4f0af97bcd50a161"
+dependencies = [
+ "dyn-clone",
+ "schemars_derive",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "schemars_derive"
+version = "0.8.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0f696e21e10fa546b7ffb1c9672c6de8fbc7a81acf59524386d8639bf12737"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "serde_derive_internals",
+ "syn 1.0.109",
+]
+
+[[package]]
 name = "schnellru"
 version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "772575a524feeb803e5b0fcbc6dd9f367e579488197c94c6e4023aad2305774d"
 dependencies = [
- "ahash 0.8.3",
+ "ahash 0.8.7",
  "cfg-if",
  "hashbrown 0.13.2",
 ]
@@ -16389,6 +16857,31 @@ dependencies = [
 ]
 
 [[package]]
+name = "schnorrkel"
+version = "0.11.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8de18f6d8ba0aad7045f5feae07ec29899c1112584a38509a84ad7b04451eaa0"
+dependencies = [
+ "aead 0.5.2",
+ "arrayref",
+ "arrayvec 0.7.4",
+ "curve25519-dalek 4.1.1",
+ "getrandom_or_panic",
+ "merlin 3.0.0",
+ "rand_core 0.6.4",
+ "serde_bytes",
+ "sha2 0.10.7",
+ "subtle 2.4.1",
+ "zeroize",
+]
+
+[[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"
@@ -16402,48 +16895,12 @@ checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152"
 
 [[package]]
 name = "sct"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce"
-dependencies = [
- "ring 0.16.20",
- "untrusted",
-]
-
-[[package]]
-name = "sct"
 version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
 dependencies = [
  "ring 0.16.20",
- "untrusted",
-]
-
-[[package]]
-name = "sdp"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d22a5ef407871893fd72b4562ee15e4742269b173959db4b8df6f538c414e13"
-dependencies = [
- "rand 0.8.5",
- "substring",
- "thiserror",
- "url",
-]
-
-[[package]]
-name = "sec1"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928"
-dependencies = [
- "base16ct 0.1.1",
- "der 0.6.1",
- "generic-array 0.14.7",
- "pkcs8 0.9.0",
- "subtle 2.4.1",
- "zeroize",
+ "untrusted 0.7.1",
 ]
 
 [[package]]
@@ -16452,10 +16909,10 @@ version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc"
 dependencies = [
- "base16ct 0.2.0",
- "der 0.7.8",
+ "base16ct",
+ "der",
  "generic-array 0.14.7",
- "pkcs8 0.10.2",
+ "pkcs8",
  "subtle 2.4.1",
  "zeroize",
 ]
@@ -16560,7 +17017,7 @@ version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7a3186ec9e65071a2095434b1f5bb24838d4e8e130f584c790f6033c79943537"
 dependencies = [
- "semver-parser",
+ "semver-parser 0.7.0",
 ]
 
 [[package]]
@@ -16569,7 +17026,16 @@ version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
 dependencies = [
- "semver-parser",
+ "semver-parser 0.7.0",
+]
+
+[[package]]
+name = "semver"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6"
+dependencies = [
+ "semver-parser 0.10.2",
 ]
 
 [[package]]
@@ -16588,6 +17054,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
 
 [[package]]
+name = "semver-parser"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7"
+dependencies = [
+ "pest",
+]
+
+[[package]]
 name = "separator"
 version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -16595,22 +17070,51 @@ checksum = "f97841a747eef040fcd2e7b3b9a220a7205926e60488e673d9e4926d27772ce5"
 
 [[package]]
 name = "serde"
-version = "1.0.193"
+version = "1.0.195"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
+checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
+name = "serde-big-array"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd31f59f6fe2b0c055371bb2f16d7f0aa7d8881676c04a55b1596d1a17cd10a4"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde_bytes"
+version = "0.11.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff"
+dependencies = [
+ "serde",
+]
+
+[[package]]
 name = "serde_derive"
-version = "1.0.193"
+version = "1.0.195"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
+checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "serde_derive_internals"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
 ]
 
 [[package]]
@@ -16624,9 +17128,9 @@ dependencies = [
 
 [[package]]
 name = "serde_json"
-version = "1.0.108"
+version = "1.0.111"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
+checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4"
 dependencies = [
  "itoa",
  "ryu",
@@ -16655,6 +17159,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "serde_yaml"
+version = "0.9.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1bf28c79a99f70ee1f1d83d10c875d2e70618417fda01ad1785e027579d9d38"
+dependencies = [
+ "indexmap 2.0.0",
+ "itoa",
+ "ryu",
+ "serde",
+ "unsafe-libyaml",
+]
+
+[[package]]
 name = "serial_test"
 version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -16676,7 +17193,7 @@ checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -16833,16 +17350,6 @@ dependencies = [
 
 [[package]]
 name = "signature"
-version = "1.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c"
-dependencies = [
- "digest 0.10.7",
- "rand_core 0.6.4",
-]
-
-[[package]]
-name = "signature"
 version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500"
@@ -16912,9 +17419,9 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.11.0"
+version = "1.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
+checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
 
 [[package]]
 name = "smol"
@@ -16934,6 +17441,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "smol_str"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74212e6bbe9a4352329b2f68ba3130c15a3f26fe88ff22dbdc6cdd58fa85e99c"
+dependencies = [
+ "serde",
+]
+
+[[package]]
 name = "smoldot"
 version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -16949,13 +17465,13 @@ dependencies = [
  "chacha20 0.9.1",
  "crossbeam-queue",
  "derive_more",
- "ed25519-zebra 4.0.2",
+ "ed25519-zebra 4.0.3",
  "either",
  "event-listener",
  "fnv",
  "futures-lite",
  "futures-util",
- "hashbrown 0.14.0",
+ "hashbrown 0.14.3",
  "hex",
  "hmac 0.12.1",
  "itertools 0.11.0",
@@ -17004,7 +17520,7 @@ dependencies = [
  "futures-channel",
  "futures-lite",
  "futures-util",
- "hashbrown 0.14.0",
+ "hashbrown 0.14.3",
  "hex",
  "itertools 0.11.0",
  "log",
@@ -17038,7 +17554,7 @@ dependencies = [
  "aes-gcm 0.9.4",
  "blake2 0.10.6",
  "chacha20poly1305",
- "curve25519-dalek 4.0.0",
+ "curve25519-dalek 4.1.1",
  "rand_core 0.6.4",
  "ring 0.16.20",
  "rustc_version 0.4.0",
@@ -17047,6 +17563,358 @@ dependencies = [
 ]
 
 [[package]]
+name = "snowbridge-beacon-primitives"
+version = "0.0.1"
+dependencies = [
+ "byte-slice-cast",
+ "frame-support",
+ "frame-system",
+ "hex",
+ "hex-literal",
+ "milagro_bls",
+ "parity-scale-codec",
+ "rlp",
+ "scale-info",
+ "serde",
+ "snowbridge-ethereum",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std 8.0.0",
+ "ssz_rs",
+ "ssz_rs_derive",
+ "static_assertions",
+]
+
+[[package]]
+name = "snowbridge-core"
+version = "0.1.1"
+dependencies = [
+ "ethabi-decode",
+ "frame-support",
+ "frame-system",
+ "hex",
+ "hex-literal",
+ "parity-scale-codec",
+ "polkadot-parachain-primitives",
+ "scale-info",
+ "serde",
+ "snowbridge-beacon-primitives",
+ "sp-arithmetic",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std 8.0.0",
+ "staging-xcm",
+ "staging-xcm-builder",
+]
+
+[[package]]
+name = "snowbridge-ethereum"
+version = "0.1.0"
+dependencies = [
+ "ethabi-decode",
+ "ethbloom",
+ "ethereum-types",
+ "hex-literal",
+ "parity-bytes",
+ "parity-scale-codec",
+ "rand 0.8.5",
+ "rlp",
+ "rustc-hex",
+ "scale-info",
+ "serde",
+ "serde-big-array",
+ "serde_json",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std 8.0.0",
+ "wasm-bindgen-test",
+]
+
+[[package]]
+name = "snowbridge-ethereum-beacon-client"
+version = "0.0.1"
+dependencies = [
+ "bp-runtime",
+ "byte-slice-cast",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "hex-literal",
+ "log",
+ "pallet-timestamp",
+ "parity-scale-codec",
+ "rand 0.8.5",
+ "rlp",
+ "scale-info",
+ "serde",
+ "serde_json",
+ "snowbridge-beacon-primitives",
+ "snowbridge-core",
+ "snowbridge-ethereum",
+ "sp-core",
+ "sp-io",
+ "sp-keyring",
+ "sp-runtime",
+ "sp-std 8.0.0",
+ "ssz_rs",
+ "ssz_rs_derive",
+ "static_assertions",
+]
+
+[[package]]
+name = "snowbridge-inbound-queue"
+version = "0.1.1"
+dependencies = [
+ "alloy-primitives",
+ "alloy-rlp",
+ "alloy-sol-types",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "hex-literal",
+ "log",
+ "num-traits",
+ "pallet-balances",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "snowbridge-beacon-primitives",
+ "snowbridge-core",
+ "snowbridge-ethereum",
+ "snowbridge-ethereum-beacon-client",
+ "snowbridge-router-primitives",
+ "sp-core",
+ "sp-io",
+ "sp-keyring",
+ "sp-runtime",
+ "sp-std 8.0.0",
+ "staging-xcm",
+ "staging-xcm-builder",
+]
+
+[[package]]
+name = "snowbridge-outbound-queue"
+version = "0.1.1"
+dependencies = [
+ "bridge-hub-common",
+ "ethabi-decode",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "hex-literal",
+ "pallet-message-queue",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "snowbridge-core",
+ "snowbridge-outbound-queue-merkle-tree",
+ "sp-arithmetic",
+ "sp-core",
+ "sp-io",
+ "sp-keyring",
+ "sp-runtime",
+ "sp-std 8.0.0",
+ "staging-xcm",
+]
+
+[[package]]
+name = "snowbridge-outbound-queue-merkle-tree"
+version = "0.1.1"
+dependencies = [
+ "array-bytes 4.2.0",
+ "env_logger 0.9.3",
+ "hex",
+ "hex-literal",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-runtime",
+]
+
+[[package]]
+name = "snowbridge-outbound-queue-runtime-api"
+version = "0.1.0"
+dependencies = [
+ "frame-support",
+ "parity-scale-codec",
+ "snowbridge-core",
+ "snowbridge-outbound-queue-merkle-tree",
+ "sp-api",
+ "sp-core",
+ "sp-std 8.0.0",
+ "staging-xcm",
+]
+
+[[package]]
+name = "snowbridge-rococo-common"
+version = "0.0.1"
+dependencies = [
+ "frame-support",
+ "log",
+ "staging-xcm",
+]
+
+[[package]]
+name = "snowbridge-router-primitives"
+version = "0.1.1"
+dependencies = [
+ "ethabi-decode",
+ "frame-support",
+ "frame-system",
+ "hex-literal",
+ "log",
+ "parity-scale-codec",
+ "rustc-hex",
+ "scale-info",
+ "serde",
+ "snowbridge-core",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std 8.0.0",
+ "staging-xcm",
+ "staging-xcm-builder",
+ "staging-xcm-executor",
+]
+
+[[package]]
+name = "snowbridge-runtime-common"
+version = "0.1.1"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "log",
+ "snowbridge-core",
+ "sp-arithmetic",
+ "staging-xcm",
+ "staging-xcm-builder",
+ "staging-xcm-executor",
+]
+
+[[package]]
+name = "snowbridge-runtime-tests"
+version = "0.1.0"
+dependencies = [
+ "asset-hub-rococo-runtime",
+ "assets-common",
+ "bridge-hub-rococo-runtime",
+ "bridge-hub-test-utils",
+ "bridge-runtime-common",
+ "cumulus-pallet-aura-ext",
+ "cumulus-pallet-dmp-queue",
+ "cumulus-pallet-parachain-system",
+ "cumulus-pallet-session-benchmarking",
+ "cumulus-pallet-xcm",
+ "cumulus-pallet-xcmp-queue",
+ "cumulus-primitives-core",
+ "cumulus-primitives-utility",
+ "frame-benchmarking",
+ "frame-executive",
+ "frame-support",
+ "frame-system",
+ "frame-system-benchmarking",
+ "frame-system-rpc-runtime-api",
+ "frame-try-runtime",
+ "hex-literal",
+ "log",
+ "pallet-aura",
+ "pallet-authorship",
+ "pallet-balances",
+ "pallet-collator-selection",
+ "pallet-message-queue",
+ "pallet-multisig",
+ "pallet-session",
+ "pallet-timestamp",
+ "pallet-transaction-payment",
+ "pallet-transaction-payment-rpc-runtime-api",
+ "pallet-utility",
+ "pallet-xcm",
+ "pallet-xcm-benchmarks",
+ "parachains-common",
+ "parachains-runtimes-test-utils",
+ "parity-scale-codec",
+ "polkadot-core-primitives",
+ "polkadot-parachain-primitives",
+ "polkadot-runtime-common",
+ "rococo-runtime-constants",
+ "scale-info",
+ "serde",
+ "smallvec",
+ "snowbridge-beacon-primitives",
+ "snowbridge-core",
+ "snowbridge-ethereum-beacon-client",
+ "snowbridge-inbound-queue",
+ "snowbridge-outbound-queue",
+ "snowbridge-outbound-queue-runtime-api",
+ "snowbridge-router-primitives",
+ "snowbridge-system",
+ "snowbridge-system-runtime-api",
+ "sp-api",
+ "sp-block-builder",
+ "sp-consensus-aura",
+ "sp-core",
+ "sp-genesis-builder",
+ "sp-inherents",
+ "sp-io",
+ "sp-keyring",
+ "sp-offchain",
+ "sp-runtime",
+ "sp-session",
+ "sp-std 8.0.0",
+ "sp-storage 13.0.0",
+ "sp-transaction-pool",
+ "sp-version",
+ "staging-parachain-info",
+ "staging-xcm",
+ "staging-xcm-builder",
+ "staging-xcm-executor",
+ "static_assertions",
+]
+
+[[package]]
+name = "snowbridge-system"
+version = "0.1.1"
+dependencies = [
+ "ethabi-decode",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "hex",
+ "hex-literal",
+ "log",
+ "pallet-balances",
+ "pallet-message-queue",
+ "parity-scale-codec",
+ "polkadot-primitives",
+ "scale-info",
+ "snowbridge-core",
+ "snowbridge-outbound-queue",
+ "sp-core",
+ "sp-io",
+ "sp-keyring",
+ "sp-runtime",
+ "sp-std 8.0.0",
+ "staging-xcm",
+ "staging-xcm-builder",
+ "staging-xcm-executor",
+]
+
+[[package]]
+name = "snowbridge-system-runtime-api"
+version = "0.1.0"
+dependencies = [
+ "parity-scale-codec",
+ "snowbridge-core",
+ "sp-api",
+ "sp-core",
+ "sp-std 8.0.0",
+ "staging-xcm",
+]
+
+[[package]]
 name = "socket2"
 version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -17112,10 +17980,10 @@ dependencies = [
  "assert_matches",
  "blake2 0.10.6",
  "expander 2.0.0",
- "proc-macro-crate 2.0.0",
+ "proc-macro-crate 3.0.0",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -17394,7 +18262,7 @@ dependencies = [
  "lazy_static",
  "libsecp256k1",
  "log",
- "merlin 2.0.1",
+ "merlin 3.0.0",
  "parity-scale-codec",
  "parking_lot 0.12.1",
  "paste",
@@ -17402,7 +18270,7 @@ dependencies = [
  "rand 0.8.5",
  "regex",
  "scale-info",
- "schnorrkel 0.9.1",
+ "schnorrkel 0.11.4",
  "secp256k1",
  "secrecy",
  "serde",
@@ -17450,7 +18318,7 @@ version = "9.0.0"
 dependencies = [
  "quote",
  "sp-core-hashing",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -17468,7 +18336,7 @@ dependencies = [
  "ark-ed-on-bls12-377-ext",
  "ark-ed-on-bls12-381-bandersnatch",
  "ark-ed-on-bls12-381-bandersnatch-ext",
- "ark-scale",
+ "ark-scale 0.0.12",
  "sp-runtime-interface 17.0.0",
  "sp-std 8.0.0",
 ]
@@ -17489,7 +18357,7 @@ dependencies = [
  "ark-ed-on-bls12-377-ext",
  "ark-ed-on-bls12-381-bandersnatch",
  "ark-ed-on-bls12-381-bandersnatch-ext",
- "ark-scale",
+ "ark-scale 0.0.11",
  "sp-runtime-interface 17.0.0 (git+https://github.com/paritytech/polkadot-sdk)",
  "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk)",
 ]
@@ -17508,7 +18376,7 @@ version = "8.0.0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -17518,7 +18386,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk#82912acb33a9030c0ef3bf5
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -17593,7 +18461,6 @@ dependencies = [
 name = "sp-keyring"
 version = "24.0.0"
 dependencies = [
- "lazy_static",
  "sp-core",
  "sp-runtime",
  "strum",
@@ -17605,7 +18472,7 @@ version = "0.27.0"
 dependencies = [
  "parity-scale-codec",
  "parking_lot 0.12.1",
- "rand 0.7.3",
+ "rand 0.8.5",
  "rand_chacha 0.2.2",
  "sp-core",
  "sp-externalities 0.19.0",
@@ -17678,7 +18545,7 @@ dependencies = [
 name = "sp-npos-elections-fuzzer"
 version = "2.0.0-alpha.5"
 dependencies = [
- "clap 4.4.10",
+ "clap 4.4.14",
  "honggfuzz",
  "rand 0.8.5",
  "sp-npos-elections",
@@ -17789,10 +18656,10 @@ version = "11.0.0"
 dependencies = [
  "Inflector",
  "expander 2.0.0",
- "proc-macro-crate 2.0.0",
+ "proc-macro-crate 3.0.0",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -17804,7 +18671,7 @@ dependencies = [
  "proc-macro-crate 1.3.1",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -17901,7 +18768,7 @@ name = "sp-statement-store"
 version = "4.0.0-dev"
 dependencies = [
  "aes-gcm 0.10.3",
- "curve25519-dalek 4.0.0",
+ "curve25519-dalek 4.1.1",
  "ed25519-dalek",
  "hkdf",
  "parity-scale-codec",
@@ -18027,11 +18894,10 @@ dependencies = [
 name = "sp-trie"
 version = "22.0.0"
 dependencies = [
- "ahash 0.8.3",
+ "ahash 0.8.7",
  "array-bytes 6.1.0",
  "criterion 0.4.0",
  "hash-db",
- "hashbrown 0.13.2",
  "lazy_static",
  "memory-db",
  "nohash-hasher",
@@ -18076,7 +18942,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "sp-version",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -18111,6 +18977,7 @@ dependencies = [
  "bounded-collections",
  "parity-scale-codec",
  "scale-info",
+ "schemars",
  "serde",
  "smallvec",
  "sp-arithmetic",
@@ -18143,22 +19010,12 @@ dependencies = [
 
 [[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 = "spki"
 version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a"
 dependencies = [
  "base64ct",
- "der 0.7.8",
+ "der",
 ]
 
 [[package]]
@@ -18177,6 +19034,29 @@ dependencies = [
 ]
 
 [[package]]
+name = "ssz_rs"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "057291e5631f280978fa9c8009390663ca4613359fc1318e36a8c24c392f6d1f"
+dependencies = [
+ "bitvec",
+ "num-bigint",
+ "sha2 0.9.9",
+ "ssz_rs_derive",
+]
+
+[[package]]
+name = "ssz_rs_derive"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f07d54c4d01a1713eb363b55ba51595da15f6f1211435b71466460da022aa140"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
 name = "stable_deref_trait"
 version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -18186,7 +19066,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
 name = "staging-chain-spec-builder"
 version = "2.0.0"
 dependencies = [
- "clap 4.4.10",
+ "clap 4.4.14",
  "log",
  "sc-chain-spec",
  "serde_json",
@@ -18199,7 +19079,7 @@ version = "3.0.0-dev"
 dependencies = [
  "array-bytes 6.1.0",
  "assert_cmd",
- "clap 4.4.10",
+ "clap 4.4.14",
  "clap_complete",
  "criterion 0.4.0",
  "frame-benchmarking",
@@ -18211,6 +19091,7 @@ dependencies = [
  "jsonrpsee",
  "kitchensink-runtime",
  "log",
+ "mmr-gadget",
  "nix 0.26.2",
  "node-primitives",
  "node-rpc",
@@ -18241,6 +19122,7 @@ dependencies = [
  "sc-client-db",
  "sc-consensus",
  "sc-consensus-babe",
+ "sc-consensus-beefy",
  "sc-consensus-epochs",
  "sc-consensus-grandpa",
  "sc-consensus-slots",
@@ -18272,6 +19154,7 @@ dependencies = [
  "sp-blockchain",
  "sp-consensus",
  "sp-consensus-babe",
+ "sp-consensus-beefy",
  "sp-consensus-grandpa",
  "sp-core",
  "sp-externalities 0.19.0",
@@ -18280,6 +19163,7 @@ dependencies = [
  "sp-keyring",
  "sp-keystore",
  "sp-mixnet",
+ "sp-mmr-primitives",
  "sp-runtime",
  "sp-state-machine",
  "sp-statement-store",
@@ -18304,7 +19188,7 @@ dependencies = [
 name = "staging-node-inspect"
 version = "0.9.0-dev"
 dependencies = [
- "clap 4.4.10",
+ "clap 4.4.14",
  "parity-scale-codec",
  "sc-cli",
  "sc-client-api",
@@ -18338,6 +19222,7 @@ version = "1.0.0"
 name = "staging-xcm"
 version = "1.0.0"
 dependencies = [
+ "array-bytes 6.1.0",
  "bounded-collections",
  "derivative",
  "environmental",
@@ -18347,6 +19232,7 @@ dependencies = [
  "log",
  "parity-scale-codec",
  "scale-info",
+ "schemars",
  "serde",
  "sp-io",
  "sp-weights",
@@ -18504,29 +19390,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "stun"
-version = "0.4.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7e94b1ec00bad60e6410e058b52f1c66de3dc5fe4d62d09b3e52bb7d3b73e25"
-dependencies = [
- "base64 0.13.1",
- "crc",
- "lazy_static",
- "md-5",
- "rand 0.8.5",
- "ring 0.16.20",
- "subtle 2.4.1",
- "thiserror",
- "tokio",
- "url",
- "webrtc-util",
-]
-
-[[package]]
 name = "subkey"
 version = "3.0.0"
 dependencies = [
- "clap 4.4.10",
+ "clap 4.4.14",
  "sc-cli",
 ]
 
@@ -18568,7 +19435,7 @@ dependencies = [
 name = "substrate-frame-cli"
 version = "4.0.0-dev"
 dependencies = [
- "clap 4.4.10",
+ "clap 4.4.14",
  "frame-support",
  "frame-system",
  "sc-cli",
@@ -18787,21 +19654,12 @@ dependencies = [
  "sp-maybe-compressed-blob",
  "strum",
  "tempfile",
- "toml 0.7.6",
+ "toml 0.8.2",
  "walkdir",
  "wasm-opt",
 ]
 
 [[package]]
-name = "substring"
-version = "1.4.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42ee6433ecef213b2e72f587ef64a2f5943e7cd16fbd82dbe8bc07486c534c86"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
 name = "subtle"
 version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -18923,9 +19781,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.39"
+version = "2.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -18933,6 +19791,18 @@ dependencies = [
 ]
 
 [[package]]
+name = "syn-solidity"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b837ef12ab88835251726eb12237655e61ec8dc8a280085d1961cdc3dfd047"
+dependencies = [
+ "paste",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
 name = "synstructure"
 version = "0.12.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -19043,7 +19913,7 @@ dependencies = [
 name = "test-parachain-adder-collator"
 version = "1.0.0"
 dependencies = [
- "clap 4.4.10",
+ "clap 4.4.14",
  "futures",
  "futures-timer",
  "log",
@@ -19091,7 +19961,7 @@ dependencies = [
 name = "test-parachain-undying-collator"
 version = "1.0.0"
 dependencies = [
- "clap 4.4.10",
+ "clap 4.4.14",
  "futures",
  "futures-timer",
  "log",
@@ -19138,19 +20008,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "testnets-common"
-version = "1.0.0"
-dependencies = [
- "frame-support",
- "polkadot-core-primitives",
- "rococo-runtime-constants",
- "smallvec",
- "sp-runtime",
- "substrate-wasm-builder",
- "westend-runtime-constants",
-]
-
-[[package]]
 name = "textwrap"
 version = "0.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -19193,7 +20050,7 @@ checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -19267,17 +20124,6 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.1.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"
-dependencies = [
- "libc",
- "wasi 0.10.0+wasi-snapshot-preview1",
- "winapi",
-]
-
-[[package]]
-name = "time"
 version = "0.3.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0bb39ee79a6d8de55f48f2293a830e040392f1c5f16e336bdd1788cd0aadce07"
@@ -19340,9 +20186,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.32.0"
+version = "1.33.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9"
+checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653"
 dependencies = [
  "backtrace",
  "bytes",
@@ -19365,7 +20211,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -19452,26 +20298,26 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.7.6"
+version = "0.7.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542"
+checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.19.14",
+ "toml_edit 0.19.15",
 ]
 
 [[package]]
 name = "toml"
-version = "0.8.8"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
+checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.21.0",
+ "toml_edit 0.20.2",
 ]
 
 [[package]]
@@ -19485,9 +20331,9 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.19.14"
+version = "0.19.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a"
+checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
 dependencies = [
  "indexmap 2.0.0",
  "serde",
@@ -19498,11 +20344,13 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.20.7"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81"
+checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338"
 dependencies = [
  "indexmap 2.0.0",
+ "serde",
+ "serde_spanned",
  "toml_datetime",
  "winnow",
 ]
@@ -19514,8 +20362,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
 dependencies = [
  "indexmap 2.0.0",
- "serde",
- "serde_spanned",
  "toml_datetime",
  "winnow",
 ]
@@ -19582,7 +20428,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -19621,10 +20467,10 @@ version = "1.0.0"
 dependencies = [
  "assert_matches",
  "expander 2.0.0",
- "proc-macro-crate 2.0.0",
+ "proc-macro-crate 3.0.0",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -19777,7 +20623,7 @@ version = "0.10.0-dev"
 dependencies = [
  "assert_cmd",
  "async-trait",
- "clap 4.4.10",
+ "clap 4.4.14",
  "frame-remote-externalities",
  "frame-try-runtime",
  "hex",
@@ -19814,9 +20660,9 @@ dependencies = [
 
 [[package]]
 name = "trybuild"
-version = "1.0.83"
+version = "1.0.88"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6df60d81823ed9c520ee897489573da4b1d79ffbe006b8134f46de1a1aa03555"
+checksum = "76de4f783e610194f6c98bfd53f9fc52bb2e0d02c947621e8a0f4ecc799b2880"
 dependencies = [
  "basic-toml",
  "dissimilar",
@@ -19854,25 +20700,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "turn"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4712ee30d123ec7ae26d1e1b218395a16c87cdbaf4b3925d170d684af62ea5e8"
-dependencies = [
- "async-trait",
- "base64 0.13.1",
- "futures",
- "log",
- "md-5",
- "rand 0.8.5",
- "ring 0.16.20",
- "stun",
- "thiserror",
- "tokio",
- "webrtc-util",
-]
-
-[[package]]
 name = "twox-hash"
 version = "1.6.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -19909,6 +20736,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "unarray"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94"
+
+[[package]]
 name = "unicode-bidi"
 version = "0.3.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -19962,6 +20795,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "unsafe-libyaml"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b"
+
+[[package]]
 name = "unsigned-varint"
 version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -19980,6 +20819,12 @@ 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 = "url"
 version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -20007,9 +20852,6 @@ name = "uuid"
 version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d"
-dependencies = [
- "getrandom 0.2.10",
-]
 
 [[package]]
 name = "valuable"
@@ -20080,8 +20922,8 @@ dependencies = [
  "ark-bls12-377",
  "ark-bls12-381",
  "ark-ec",
- "ark-ff",
- "ark-serialize",
+ "ark-ff 0.4.2",
+ "ark-serialize 0.4.2",
  "ark-serialize-derive",
  "arrayref",
  "constcat",
@@ -20105,15 +20947,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "waitgroup"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1f50000a783467e6c0200f9d10642f4bc424e39efc1b770203e88b488f79292"
-dependencies = [
- "atomic-waker",
-]
-
-[[package]]
 name = "waker-fn"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -20146,12 +20979,6 @@ checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
 
 [[package]]
 name = "wasi"
-version = "0.10.0+wasi-snapshot-preview1"
-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"
@@ -20179,7 +21006,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
  "wasm-bindgen-shared",
 ]
 
@@ -20213,7 +21040,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -20225,6 +21052,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
 
 [[package]]
+name = "wasm-bindgen-test"
+version = "0.3.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e6e302a7ea94f83a6d09e78e7dc7d9ca7b186bc2829c24a22d0753efd680671"
+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.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ecb993dd8c836930ed130e020e77d9b2e65dd0fbab1b67c790b0f5d80b11a575"
+dependencies = [
+ "proc-macro2",
+ "quote",
+]
+
+[[package]]
 name = "wasm-encoder"
 version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -20584,22 +21435,12 @@ dependencies = [
 
 [[package]]
 name = "webpki"
-version = "0.21.4"
+version = "0.22.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea"
+checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53"
 dependencies = [
- "ring 0.16.20",
- "untrusted",
-]
-
-[[package]]
-name = "webpki"
-version = "0.22.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd"
-dependencies = [
- "ring 0.16.20",
- "untrusted",
+ "ring 0.17.7",
+ "untrusted 0.9.0",
 ]
 
 [[package]]
@@ -20608,7 +21449,7 @@ version = "0.22.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87"
 dependencies = [
- "webpki 0.22.0",
+ "webpki",
 ]
 
 [[package]]
@@ -20627,214 +21468,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc"
 
 [[package]]
-name = "webrtc"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d3bc9049bdb2cea52f5fd4f6f728184225bdb867ed0dc2410eab6df5bdd67bb"
-dependencies = [
- "arc-swap",
- "async-trait",
- "bytes",
- "hex",
- "interceptor",
- "lazy_static",
- "log",
- "rand 0.8.5",
- "rcgen 0.9.3",
- "regex",
- "ring 0.16.20",
- "rtcp",
- "rtp",
- "rustls 0.19.1",
- "sdp",
- "serde",
- "serde_json",
- "sha2 0.10.7",
- "stun",
- "thiserror",
- "time 0.3.27",
- "tokio",
- "turn",
- "url",
- "waitgroup",
- "webrtc-data",
- "webrtc-dtls",
- "webrtc-ice",
- "webrtc-mdns",
- "webrtc-media",
- "webrtc-sctp",
- "webrtc-srtp",
- "webrtc-util",
-]
-
-[[package]]
-name = "webrtc-data"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ef36a4d12baa6e842582fe9ec16a57184ba35e1a09308307b67d43ec8883100"
-dependencies = [
- "bytes",
- "derive_builder",
- "log",
- "thiserror",
- "tokio",
- "webrtc-sctp",
- "webrtc-util",
-]
-
-[[package]]
-name = "webrtc-dtls"
-version = "0.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4a00f4242f2db33307347bd5be53263c52a0331c96c14292118c9a6bb48d267"
-dependencies = [
- "aes 0.6.0",
- "aes-gcm 0.10.3",
- "async-trait",
- "bincode",
- "block-modes",
- "byteorder",
- "ccm",
- "curve25519-dalek 3.2.0",
- "der-parser 8.2.0",
- "elliptic-curve 0.12.3",
- "hkdf",
- "hmac 0.12.1",
- "log",
- "p256",
- "p384",
- "rand 0.8.5",
- "rand_core 0.6.4",
- "rcgen 0.10.0",
- "ring 0.16.20",
- "rustls 0.19.1",
- "sec1 0.3.0",
- "serde",
- "sha1",
- "sha2 0.10.7",
- "signature 1.6.4",
- "subtle 2.4.1",
- "thiserror",
- "tokio",
- "webpki 0.21.4",
- "webrtc-util",
- "x25519-dalek 2.0.0",
- "x509-parser 0.13.2",
-]
-
-[[package]]
-name = "webrtc-ice"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "465a03cc11e9a7d7b4f9f99870558fe37a102b65b93f8045392fef7c67b39e80"
-dependencies = [
- "arc-swap",
- "async-trait",
- "crc",
- "log",
- "rand 0.8.5",
- "serde",
- "serde_json",
- "stun",
- "thiserror",
- "tokio",
- "turn",
- "url",
- "uuid",
- "waitgroup",
- "webrtc-mdns",
- "webrtc-util",
-]
-
-[[package]]
-name = "webrtc-mdns"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f08dfd7a6e3987e255c4dbe710dde5d94d0f0574f8a21afa95d171376c143106"
-dependencies = [
- "log",
- "socket2 0.4.9",
- "thiserror",
- "tokio",
- "webrtc-util",
-]
-
-[[package]]
-name = "webrtc-media"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f72e1650a8ae006017d1a5280efb49e2610c19ccc3c0905b03b648aee9554991"
-dependencies = [
- "byteorder",
- "bytes",
- "rand 0.8.5",
- "rtp",
- "thiserror",
-]
-
-[[package]]
-name = "webrtc-sctp"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d47adcd9427eb3ede33d5a7f3424038f63c965491beafcc20bc650a2f6679c0"
-dependencies = [
- "arc-swap",
- "async-trait",
- "bytes",
- "crc",
- "log",
- "rand 0.8.5",
- "thiserror",
- "tokio",
- "webrtc-util",
-]
-
-[[package]]
-name = "webrtc-srtp"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6183edc4c1c6c0175f8812eefdce84dfa0aea9c3ece71c2bf6ddd3c964de3da5"
-dependencies = [
- "aead 0.4.3",
- "aes 0.7.5",
- "aes-gcm 0.9.4",
- "async-trait",
- "byteorder",
- "bytes",
- "ctr 0.8.0",
- "hmac 0.11.0",
- "log",
- "rtcp",
- "rtp",
- "sha-1 0.9.8",
- "subtle 2.4.1",
- "thiserror",
- "tokio",
- "webrtc-util",
-]
-
-[[package]]
-name = "webrtc-util"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93f1db1727772c05cf7a2cfece52c3aca8045ca1e176cd517d323489aa3c6d87"
-dependencies = [
- "async-trait",
- "bitflags 1.3.2",
- "bytes",
- "cc",
- "ipnet",
- "lazy_static",
- "libc",
- "log",
- "nix 0.24.3",
- "rand 0.8.5",
- "thiserror",
- "tokio",
- "winapi",
-]
-
-[[package]]
 name = "westend-emulated-chain"
 version = "0.0.0"
 dependencies = [
@@ -20977,6 +21610,7 @@ dependencies = [
  "sp-runtime",
  "sp-weights",
  "staging-xcm",
+ "staging-xcm-builder",
 ]
 
 [[package]]
@@ -20985,8 +21619,10 @@ version = "0.0.0"
 dependencies = [
  "asset-hub-westend-emulated-chain",
  "bridge-hub-westend-emulated-chain",
+ "collectives-westend-emulated-chain",
  "emulated-integration-tests-common",
  "penpal-emulated-chain",
+ "people-westend-emulated-chain",
  "westend-emulated-chain",
 ]
 
@@ -21277,7 +21913,7 @@ version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96"
 dependencies = [
- "curve25519-dalek 4.0.0",
+ "curve25519-dalek 4.1.1",
  "rand_core 0.6.4",
  "serde",
  "zeroize",
@@ -21285,39 +21921,20 @@ dependencies = [
 
 [[package]]
 name = "x509-parser"
-version = "0.13.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9fb9bace5b5589ffead1afb76e43e34cff39cd0f3ce7e170ae0c29e53b88eb1c"
-dependencies = [
- "asn1-rs 0.3.1",
- "base64 0.13.1",
- "data-encoding",
- "der-parser 7.0.0",
- "lazy_static",
- "nom",
- "oid-registry 0.4.0",
- "ring 0.16.20",
- "rusticata-macros",
- "thiserror",
- "time 0.3.27",
-]
-
-[[package]]
-name = "x509-parser"
 version = "0.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8"
 dependencies = [
- "asn1-rs 0.5.2",
+ "asn1-rs",
  "base64 0.13.1",
  "data-encoding",
- "der-parser 8.2.0",
+ "der-parser",
  "lazy_static",
  "nom",
- "oid-registry 0.6.1",
+ "oid-registry",
  "rusticata-macros",
  "thiserror",
- "time 0.3.27",
+ "time",
 ]
 
 [[package]]
@@ -21391,7 +22008,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "staging-xcm",
- "syn 2.0.39",
+ "syn 2.0.48",
  "trybuild",
 ]
 
@@ -21491,7 +22108,27 @@ version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd"
 dependencies = [
- "time 0.3.27",
+ "time",
+]
+
+[[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.48",
 ]
 
 [[package]]
@@ -21511,7 +22148,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
diff --git a/pkgs/applications/blockchains/polkadot/default.nix b/pkgs/applications/blockchains/polkadot/default.nix
index 82ff04e4ed4c..507eece8e12b 100644
--- a/pkgs/applications/blockchains/polkadot/default.nix
+++ b/pkgs/applications/blockchains/polkadot/default.nix
@@ -11,15 +11,13 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "polkadot";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "paritytech";
     repo = "polkadot-sdk";
-    # NOTE: temporary tag with fix for building with nix
-    # `-nix` suffix should be removed in the next release
-    rev = "polkadot-v${version}-nix";
-    hash = "sha256-pjny1aw9l2m9t8VyUB+EaQaPtYPypC6WqOwAco1kxNU=";
+    rev = "polkadot-v${version}";
+    hash = "sha256-myQ1TIkytEGdaR3KZOMXK7JK83/Qx46UVhp2GFG7LiA=";
 
     # the build process of polkadot requires a .git folder in order to determine
     # the git commit hash that is being built and add it to the version string.
@@ -43,9 +41,11 @@ rustPlatform.buildRustPackage rec {
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "ark-secret-scalar-0.0.2" = "sha256-ytwKeUkiXIcwJLo9wpWSIjL4LBZJDbeED5Yqxso9l74=";
-      "common-0.1.0" = "sha256-9vTJNKsL6gK8MM8dUKrShEvL9Ac9YQg1q8iVE9+deak=";
-      "fflonk-0.1.0" = "sha256-PC7eJEOo/RN9Gk27CcTIyGMA9XZeFAJkO2FK02JVzN0=";
+      "amcl-0.3.0" = "sha256-EWXQddOskhc07ufRDihn91YRk1fdrLw20N/IoppiWyo=";
+      "ark-secret-scalar-0.0.2" = "sha256-91sODxaj0psMw0WqigMCGO5a7+NenAsRj5ZmW6C7lvc=";
+      "common-0.1.0" = "sha256-LHz2dK1p8GwyMimlR7AxHLz1tjTYolPwdjP7pxork1o=";
+      "ethabi-decode-1.4.0" = "sha256-4sDCsr7OPaaDTs2phA5fdGKqSReYf2HD2IUUh7B43GU=";
+      "fflonk-0.1.0" = "sha256-+BvZ03AhYNP0D8Wq9EMsP+lSgPA6BBlnWkoxTffVLwo=";
       "simple-mermaid-0.1.0" = "sha256-IekTldxYq+uoXwGvbpkVTXv2xrcZ0TQfyyE2i2zH+6w=";
       "sp-ark-bls12-381-0.4.2" = "sha256-nNr0amKhSvvI9BlsoP+8v6Xppx/s7zkf0l9Lm3DW8w8=";
       "sp-crypto-ec-utils-0.4.1" = "sha256-/Sw1ZM/JcJBokFE4y2mv/P43ciTL5DEm0PDG0jZvMkI=";
diff --git a/pkgs/applications/blockchains/trezor-suite/default.nix b/pkgs/applications/blockchains/trezor-suite/default.nix
index 3e1ddcb1ae77..d662de853647 100644
--- a/pkgs/applications/blockchains/trezor-suite/default.nix
+++ b/pkgs/applications/blockchains/trezor-suite/default.nix
@@ -8,7 +8,7 @@
 
 let
   pname = "trezor-suite";
-  version = "23.12.3";
+  version = "24.1.2";
   name = "${pname}-${version}";
 
   suffix = {
@@ -19,8 +19,8 @@ let
   src = fetchurl {
     url = "https://github.com/trezor/${pname}/releases/download/v${version}/Trezor-Suite-${version}-${suffix}.AppImage";
     hash = { # curl -Lfs https://github.com/trezor/trezor-suite/releases/latest/download/latest-linux{-arm64,}.yml | grep ^sha512 | sed 's/: /-/'
-      aarch64-linux = "sha512-miD4SzLzETW+2cLj2VwRy9ZuL8nTw8kKG1uU9EmLRJPukyhY9Od3yeMmxztEafodqE7wv6TxEx4Fi/XIbyC2lQ==";
-      x86_64-linux  = "sha512-IZZmRaWU0POy+Ufx6Ct4/fLzRy+NbSmI+YqdMZd9uTUh0jhPf3BQ2JLwANlUUFZzM+USSTUCjFl0PQ4QQpjI6Q==";
+      aarch64-linux = "sha512-/D3mwyF00YWgDVq0GNDyegc8mLF63cxCOe/vnpGyLz9/Oj5aBl3oG32cj+c8e11+eHYigkKb72nFz5zBoPx8Bw==";
+      x86_64-linux  = "sha512-ehIIOksVzKLGYs6GNZ8w5XvellFRb9sHVORS7MOXmwbbikjgkNX/nlfjwmUKOysxI4PwPzIbqtuX2GYyC9lXHw==";
     }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
   };
 
diff --git a/pkgs/applications/editors/amp/default.nix b/pkgs/applications/editors/amp/default.nix
index a1c96ea92beb..de05659d7341 100644
--- a/pkgs/applications/editors/amp/default.nix
+++ b/pkgs/applications/editors/amp/default.nix
@@ -3,16 +3,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "amp";
-  version = "0.6.2";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "jmacdonald";
     repo = pname;
     rev = version;
-    sha256 = "0l1vpcfq6jrq2dkrmsa4ghwdpp7c54f46gz3n7nk0i41b12hnigw";
+    sha256 = "sha256-xNadwz2agPbxvgUqrUf1+KsWTmeNh8hJIWcNwTzzM/M=";
   };
 
-  cargoSha256 = "19r3xvysragmf02zk2l5s2hjg92gxdygsh52y7za81x443lvjyvq";
+  cargoHash = "sha256-4c72l3R9OyxvslKC4RrIu/Ka3grGxIUCY6iF/NHS5X8=";
 
   nativeBuildInputs = [ cmake pkg-config python3 ];
   buildInputs = [ openssl xorg.libxcb libgit2 ] ++ lib.optionals stdenv.isDarwin
diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix
index 0b3bebca6ac8..5a0ec24a3808 100644
--- a/pkgs/applications/editors/android-studio/default.nix
+++ b/pkgs/applications/editors/android-studio/default.nix
@@ -10,16 +10,16 @@ let
     inherit tiling_wm;
   };
   stableVersion = {
-    version = "2023.1.1.27"; # "Android Studio Hedgehog | 2023.1.1 Patch 1"
-    sha256Hash = "sha256-XF+XyHGk7dPTBHKcx929qdFHu6hRJWFO382mh4SuWDs=";
+    version = "2023.1.1.28"; # "Android Studio Hedgehog | 2023.1.1 Patch 2"
+    sha256Hash = "sha256-E50Nu0kJNTto+/VcCbbTGjRRIESp1PAs4PGprMyhKPk=";
   };
   betaVersion = {
     version = "2023.2.1.20"; # "Android Studio Iguana | 2023.2.1 Beta 2"
     sha256Hash = "sha256-cFEPgFAKkFx0d7PC4fTElTQVrBZMQs0RL3wR+hqTh2I=";
   };
   latestVersion = {
-    version = "2023.3.1.4"; # "Android Studio Jellyfish | 2023.3.1 Canary 4"
-    sha256Hash = "sha256-txHkRZ87KnZvzbpBA19mZzQ0HKHWAJsSnNlQCUDsWmA=";
+    version = "2023.3.1.7"; # "Android Studio Jellyfish | 2023.3.1 Canary 7"
+    sha256Hash = "sha256-PnhqSKgxs0XQ5cm/PB11Oms2p1aAibXKe52QC+8lX8c=";
   };
 in {
   # Attributes are named by their corresponding release channels
diff --git a/pkgs/applications/editors/aseprite/skia.nix b/pkgs/applications/editors/aseprite/skia.nix
index 71fa62157d8a..03487aa8941e 100644
--- a/pkgs/applications/editors/aseprite/skia.nix
+++ b/pkgs/applications/editors/aseprite/skia.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchFromGitHub, fetchgit, python3, gn, ninja
-, fontconfig, expat, icu58, libglvnd, libjpeg, libpng, libwebp, zlib
+, fontconfig, expat, icu, libglvnd, libjpeg, libpng, libwebp, zlib
 , mesa, libX11, harfbuzzFull
 }:
 
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ python3 gn ninja ];
 
   buildInputs = [
-    fontconfig expat icu58 libglvnd libjpeg libpng libwebp zlib
+    fontconfig expat icu libglvnd libjpeg libpng libwebp zlib
     mesa libX11 harfbuzzFull
   ];
 
diff --git a/pkgs/applications/editors/codux/default.nix b/pkgs/applications/editors/codux/default.nix
index 846050ae561f..c41b343665a2 100644
--- a/pkgs/applications/editors/codux/default.nix
+++ b/pkgs/applications/editors/codux/default.nix
@@ -5,11 +5,11 @@
 
 let
   pname = "codux";
-  version = "15.17.2";
+  version = "15.18.2";
 
   src = fetchurl {
     url = "https://github.com/wixplosives/codux-versions/releases/download/${version}/Codux-${version}.x86_64.AppImage";
-    sha256 = "sha256-6y3c9SbRxGhfND0bsMh0yYs7Dy8B23VSjj4qQ/2eBos=";
+    sha256 = "sha256-cOe6Yt4L3dFEFznqY3kHeHm9vhzoZBKM8MsrSyNK/aU=";
   };
 
   appimageContents = appimageTools.extractType2 { inherit pname version src; };
diff --git a/pkgs/applications/editors/lapce/default.nix b/pkgs/applications/editors/lapce/default.nix
index 3efa3acaa939..dce0ad168106 100644
--- a/pkgs/applications/editors/lapce/default.nix
+++ b/pkgs/applications/editors/lapce/default.nix
@@ -131,5 +131,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/lapce/lapce";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ elliot ];
+    mainProgram = "lapce";
   };
 }
diff --git a/pkgs/applications/editors/neovim/default.nix b/pkgs/applications/editors/neovim/default.nix
index 60035e3f1b58..aa5b007c4d1b 100644
--- a/pkgs/applications/editors/neovim/default.nix
+++ b/pkgs/applications/editors/neovim/default.nix
@@ -12,11 +12,10 @@
 
 # now defaults to false because some tests can be flaky (clipboard etc), see
 # also: https://github.com/neovim/neovim/issues/16233
-, doCheck ? false
 , nodejs ? null, fish ? null, python3 ? null
 }:
-
-let
+stdenv.mkDerivation (finalAttrs:
+  let
   nvim-lpeg-dylib = luapkgs: if stdenv.isDarwin
     then (luapkgs.lpeg.overrideAttrs (oa: {
       preConfigure = ''
@@ -42,7 +41,7 @@ let
     (nvim-lpeg-dylib ps)
     luabitop
     mpack
-  ] ++ lib.optionals doCheck [
+  ] ++ lib.optionals finalAttrs.doCheck [
     luv
     coxpcall
     busted
@@ -64,17 +63,17 @@ let
         in deterministicLuajit.withPackages(ps: [ ps.mpack (nvim-lpeg-dylib ps) ])
       else lua.luaOnBuild;
 
-  pyEnv = python3.withPackages(ps: with ps; [ pynvim msgpack ]);
 
-in
-  stdenv.mkDerivation rec {
+in {
     pname = "neovim-unwrapped";
     version = "0.9.5";
 
+    __structuredAttrs = true;
+
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "neovim";
-      rev = "v${version}";
+      rev = "v${finalAttrs.version}";
       hash = "sha256-CcaBqA0yFCffNPmXOJTo8c9v1jrEBiqAl8CG5Dj5YxE=";
     };
 
@@ -87,7 +86,7 @@ in
 
     dontFixCmake = true;
 
-    inherit lua;
+    inherit lua treesitter-parsers;
 
     buildInputs = [
       gperf
@@ -105,15 +104,17 @@ in
       tree-sitter
       unibilium
     ] ++ lib.optionals stdenv.isDarwin [ libiconv CoreServices ]
-      ++ lib.optionals doCheck [ glibcLocales procps ]
+      ++ lib.optionals finalAttrs.doCheck [ glibcLocales procps ]
     ;
 
-    inherit doCheck;
+    doCheck = false;
 
     # to be exhaustive, one could run
     # make oldtests too
     checkPhase = ''
+      runHook preCheck
       make functionaltest
+      runHook postCheck
     '';
 
     nativeBuildInputs = [
@@ -123,7 +124,9 @@ in
     ];
 
     # extra programs test via `make functionaltest`
-    nativeCheckInputs = [
+    nativeCheckInputs = let
+      pyEnv = python3.withPackages(ps: with ps; [ pynvim msgpack ]);
+    in [
       fish
       nodejs
       pyEnv      # for src/clint.py
@@ -166,11 +169,11 @@ in
         ln -s \
           ${tree-sitter.buildGrammar {
             inherit language src;
-            version = "neovim-${version}";
+            version = "neovim-${finalAttrs.version}";
           }}/parser \
           $out/lib/nvim/parser/${language}.so
       '')
-      treesitter-parsers);
+      finalAttrs.treesitter-parsers);
 
     shellHook=''
       export VIMRUNTIME=$PWD/runtime
@@ -199,4 +202,4 @@ in
       maintainers = with maintainers; [ manveru rvolosatovs ];
       platforms   = platforms.unix;
     };
-  }
+  })
diff --git a/pkgs/applications/editors/neovim/neovide/default.nix b/pkgs/applications/editors/neovim/neovide/default.nix
index 9f6e2a3f0739..db789c4babd3 100644
--- a/pkgs/applications/editors/neovim/neovide/default.nix
+++ b/pkgs/applications/editors/neovim/neovide/default.nix
@@ -26,16 +26,16 @@
 
 rustPlatform.buildRustPackage.override { stdenv = clangStdenv; } rec {
   pname = "neovide";
-  version = "0.12.1";
+  version = "0.12.2";
 
   src = fetchFromGitHub {
     owner = "neovide";
     repo = "neovide";
     rev = version;
-    sha256 = "sha256-lmhTTBlhyEepUNHrm2hq42G1kA7siAsJUcYjBfajaHA=";
+    sha256 = "sha256-M19LKNjUmC0WkVGm4t7vjxgMMe0FdMTmB1mLcG33OUg=";
   };
 
-  cargoSha256 = "sha256-1R1JrNhcgC16anr5Gl1b9rHgfRLPJElef5D65joHxj0=";
+  cargoHash = "sha256-2fPprZVT7V+Ot8aCpWj6WTdyFylmzlujFdTJCrtE0rk=";
 
   SKIA_SOURCE_DIR =
     let
diff --git a/pkgs/applications/editors/neovim/wrapper.nix b/pkgs/applications/editors/neovim/wrapper.nix
index 29146a769843..3ff760b21885 100644
--- a/pkgs/applications/editors/neovim/wrapper.nix
+++ b/pkgs/applications/editors/neovim/wrapper.nix
@@ -102,7 +102,7 @@ let
           --replace 'Name=Neovim' 'Name=Neovim wrapper'
       ''
       + lib.optionalString finalAttrs.withPython3 ''
-        makeWrapper ${python3Env.interpreter} $out/bin/nvim-python3 --unset PYTHONPATH
+        makeWrapper ${python3Env.interpreter} $out/bin/nvim-python3 --unset PYTHONPATH --unset PYTHONSAFEPATH
       ''
       + lib.optionalString (finalAttrs.rubyEnv != null) ''
         ln -s ${finalAttrs.rubyEnv}/bin/neovim-ruby-host $out/bin/nvim-ruby
diff --git a/pkgs/applications/editors/rednotebook/default.nix b/pkgs/applications/editors/rednotebook/default.nix
index 545e82cf6de9..24126bf87701 100644
--- a/pkgs/applications/editors/rednotebook/default.nix
+++ b/pkgs/applications/editors/rednotebook/default.nix
@@ -5,13 +5,13 @@
 
 buildPythonApplication rec {
   pname = "rednotebook";
-  version = "2.29.3";
+  version = "2.31";
 
   src = fetchFromGitHub {
     owner = "jendrikseipp";
     repo = "rednotebook";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-2qgWJ/bIravil/SuApA7pNXkxS5xUcdFpjVGO/ogDpw=";
+    sha256 = "sha256-TggbHXJqgQ4vFSCLncgzrqJLRT9zQs6YsTQ3/Z4Mixg=";
   };
 
   # We have not packaged tests.
diff --git a/pkgs/applications/editors/retext/default.nix b/pkgs/applications/editors/retext/default.nix
index feb42d9a99a9..db85170f5be1 100644
--- a/pkgs/applications/editors/retext/default.nix
+++ b/pkgs/applications/editors/retext/default.nix
@@ -15,14 +15,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "retext";
-  version = "8.0.0";
+  version = "8.0.1";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "retext-project";
     repo = pname;
-    rev = version;
-    hash = "sha256-22yqNwIehgTfeElqhN5Jzye7LbcAiseTeoMgenpmsL0=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-7zNEmFf0FZCzaNq9EMfGCje66/v5T/QvI5DTftLhi7g=";
   };
 
   toolbarIcons = fetchzip {
diff --git a/pkgs/applications/editors/thonny/default.nix b/pkgs/applications/editors/thonny/default.nix
index 2eae992a36c6..8098d3d1d1e3 100644
--- a/pkgs/applications/editors/thonny/default.nix
+++ b/pkgs/applications/editors/thonny/default.nix
@@ -4,13 +4,13 @@ with python3.pkgs;
 
 buildPythonApplication rec {
   pname = "thonny";
-  version = "4.1.2";
+  version = "4.1.4";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-vVDTizU+WDWJ75Ln93TAFYn7PJq5qc3hxVJiNGtK24g=";
+    hash = "sha256-f4wR5OPzWbtSqE+hSW2zD8u3pPl5nPTtGvf2LzOXjI4=";
   };
 
   nativeBuildInputs = [ copyDesktopItems ];
diff --git a/pkgs/applications/editors/typora/default.nix b/pkgs/applications/editors/typora/default.nix
index 5bedface4c5a..08e3d7c78fed 100644
--- a/pkgs/applications/editors/typora/default.nix
+++ b/pkgs/applications/editors/typora/default.nix
@@ -22,10 +22,10 @@
 
 let
   pname = "typora";
-  version = "1.7.6";
+  version = "1.8.9";
   src = fetchurl {
     url = "https://download.typora.io/linux/typora_${version}_amd64.deb";
-    hash = "sha256-o91elUN8sFlzVfIQj29amsiUdSBjZc51tLCO+Qfar6c=";
+    hash = "sha256-1FAVY9NSvpZOCZJmNadx5ZlqfaCc2N3D+T/08F4TOzY=";
   };
 
   typoraBase = stdenv.mkDerivation {
diff --git a/pkgs/applications/editors/vim/common.nix b/pkgs/applications/editors/vim/common.nix
index b392cc0aa565..9ebe4d7acd49 100644
--- a/pkgs/applications/editors/vim/common.nix
+++ b/pkgs/applications/editors/vim/common.nix
@@ -1,12 +1,14 @@
 { lib, fetchFromGitHub }:
 rec {
-  version = "9.0.2116";
+  version = "9.1.0004";
+
+  outputs = [ "out" "xxd" ];
 
   src = fetchFromGitHub {
     owner = "vim";
     repo = "vim";
     rev = "v${version}";
-    hash = "sha256-ZKcNg/RrjvEsxpIcTjzQYi1xig3zLeTV+PXaBb4gUuM=";
+    hash = "sha256-Y5ZSJLEFdptEMA0xvstr6H1G4iiaYXpkJGSSFwoTfc0=";
   };
 
   enableParallelBuilding = true;
@@ -14,12 +16,21 @@ rec {
 
   hardeningDisable = [ "fortify" ];
 
-  postPatch =
-    # Use man from $PATH; escape sequences are still problematic.
-    ''
-      substituteInPlace runtime/ftplugin/man.vim \
-        --replace "/usr/bin/man " "man "
-    '';
+  # Use man from $PATH; escape sequences are still problematic.
+  postPatch = ''
+    substituteInPlace runtime/ftplugin/man.vim \
+      --replace "/usr/bin/man " "man "
+  '';
+
+  # man page moving is done in postFixup instead of postInstall otherwise fixupPhase moves it right back where it was
+  postFixup = ''
+    moveToOutput bin/xxd "$xxd"
+    moveToOutput share/man/man1/xxd.1.gz "$xxd"
+    for manFile in $out/share/man/*/man1/xxd.1*; do
+      # moveToOutput does not take full paths or wildcards...
+      moveToOutput "share/man/$(basename "$(dirname "$(dirname "$manFile")")")/man1/xxd.1.gz" "$xxd"
+    done
+  '';
 
   meta = with lib; {
     description = "The most popular clone of the VI editor";
@@ -28,5 +39,6 @@ rec {
     maintainers = with maintainers; [ das_j equirosa ];
     platforms   = platforms.unix;
     mainProgram = "vim";
+    outputsToInstall = [ "out" "xxd" ];
   };
 }
diff --git a/pkgs/applications/editors/vim/default.nix b/pkgs/applications/editors/vim/default.nix
index c5b9a607f20d..d04fa241ba73 100644
--- a/pkgs/applications/editors/vim/default.nix
+++ b/pkgs/applications/editors/vim/default.nix
@@ -15,7 +15,7 @@ in
 stdenv.mkDerivation {
   pname = "vim";
 
-  inherit (common) version src postPatch hardeningDisable enableParallelBuilding enableParallelInstalling meta;
+  inherit (common) version outputs src postPatch hardeningDisable enableParallelBuilding enableParallelInstalling postFixup meta;
 
   nativeBuildInputs = [ gettext pkg-config ];
   buildInputs = [ ncurses bash gawk ]
@@ -62,11 +62,4 @@ stdenv.mkDerivation {
   '';
 
   __impureHostDeps = [ "/dev/ptmx" ];
-
-  # To fix the trouble in vim73, that it cannot cross-build with this patch
-  # to bypass a configure script check that cannot be done cross-building.
-  # http://groups.google.com/group/vim_dev/browse_thread/thread/66c02efd1523554b?pli=1
-  # patchPhase = ''
-  #   sed -i -e 's/as_fn_error.*int32.*/:/' src/auto/configure
-  # '';
 }
diff --git a/pkgs/applications/editors/vim/full.nix b/pkgs/applications/editors/vim/full.nix
index cfb8b84560cb..263f8d2984d0 100644
--- a/pkgs/applications/editors/vim/full.nix
+++ b/pkgs/applications/editors/vim/full.nix
@@ -66,7 +66,7 @@ in stdenv.mkDerivation {
 
   pname = "vim-full";
 
-  inherit (common) version postPatch hardeningDisable enableParallelBuilding meta;
+  inherit (common) version outputs postPatch hardeningDisable enableParallelBuilding meta;
 
   src = builtins.getAttr source {
     default = common.src; # latest release
@@ -181,7 +181,7 @@ in stdenv.mkDerivation {
     ln -sfn '${nixosRuntimepath}' "$out"/share/vim/vimrc
   '';
 
-  postFixup = lib.optionalString wrapPythonDrv ''
+  postFixup = common.postFixup + lib.optionalString wrapPythonDrv ''
     wrapProgram "$out/bin/vim" --prefix PATH : "${python3}/bin" \
       --set NIX_PYTHONPATH "${python3}/${python3.sitePackages}"
   '';
diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix
index b13c2a1efb89..757c36ba76bb 100644
--- a/pkgs/applications/editors/vim/plugins/generated.nix
+++ b/pkgs/applications/editors/vim/plugins/generated.nix
@@ -29,12 +29,12 @@ final: prev:
 
   ChatGPT-nvim = buildVimPlugin {
     pname = "ChatGPT.nvim";
-    version = "2023-12-15";
+    version = "2024-01-19";
     src = fetchFromGitHub {
       owner = "jackMort";
       repo = "ChatGPT.nvim";
-      rev = "48c59167beeb6ee0caa501c46cecc97b9be8571d";
-      sha256 = "013jns9jz630zc79npadrh5a75spgmglq76d4m56wx89qkbchfxm";
+      rev = "5e8f9004ee88d6c02fe428031d3b598d5dfc7cf2";
+      sha256 = "126m8cwasm4c6rhc8gnslqh2q08fn6gsw2sk57jdiflrsvhl9vzc";
     };
     meta.homepage = "https://github.com/jackMort/ChatGPT.nvim/";
   };
@@ -173,24 +173,24 @@ final: prev:
 
   LazyVim = buildVimPlugin {
     pname = "LazyVim";
-    version = "2023-11-30";
+    version = "2024-01-23";
     src = fetchFromGitHub {
       owner = "LazyVim";
       repo = "LazyVim";
-      rev = "879e29504d43e9f178d967ecc34d482f902e5a91";
-      sha256 = "0qvfvcfldrcinmrqvicsxrqa130b4xpgcwz390ai7xripqzqzrbz";
+      rev = "a50f92f7550fb6e9f21c0852e6cb190e6fcd50f5";
+      sha256 = "01ag75gdn6yfifv5rgk8j72dly511alilqy7z97s7m3fm1zp73mv";
     };
     meta.homepage = "https://github.com/LazyVim/LazyVim/";
   };
 
   LeaderF = buildVimPlugin {
     pname = "LeaderF";
-    version = "2023-12-25";
+    version = "2024-01-19";
     src = fetchFromGitHub {
       owner = "Yggdroot";
       repo = "LeaderF";
-      rev = "d8bd4a5b7d5975543b62c44cd06fd46bb1d83a9e";
-      sha256 = "1m3i1xscjfqvcnmk837zwag671myqnz4d853i8sbiaf7ljk5bpl0";
+      rev = "43e6c0467ef73107f9f6f02ac967dbc359a8d438";
+      sha256 = "1p1a9ppsw5f27qsqmr8wvnbamag8w9xbh4dmpwrfk96ap7flndjz";
     };
     meta.homepage = "https://github.com/Yggdroot/LeaderF/";
   };
@@ -305,12 +305,12 @@ final: prev:
 
   SchemaStore-nvim = buildVimPlugin {
     pname = "SchemaStore.nvim";
-    version = "2024-01-02";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "b0o";
       repo = "SchemaStore.nvim";
-      rev = "90149d11708d38037e340bf7a668e1a79217680d";
-      sha256 = "02287n3m4sic42ab5d8qvwixs7xxsl6ll5igm5g7bxkhfg1p1m6k";
+      rev = "0550c6d5754dd2a183efc9c238f5524b68860e21";
+      sha256 = "1hd1qnkjbl38k9ivzqxf3j74yyh1gd56r5nz7nmzf8b5yyjkc0ws";
     };
     meta.homepage = "https://github.com/b0o/SchemaStore.nvim/";
   };
@@ -449,12 +449,12 @@ final: prev:
 
   YouCompleteMe = buildVimPlugin {
     pname = "YouCompleteMe";
-    version = "2023-12-30";
+    version = "2024-01-14";
     src = fetchFromGitHub {
       owner = "ycm-core";
       repo = "YouCompleteMe";
-      rev = "71166ea1337fb64cccb412f39539a9ac52b8045e";
-      sha256 = "0vnvkfb3wrjlllfzbmipnrbqjk8m1nj0skw0nz84yg6mj0lnrjw0";
+      rev = "2b33bf3dc822f6c68b39d235e24efa5508cf9857";
+      sha256 = "1myd0ihxzk9jv8hqn7bfqh26cai9xlfnpwp89i62aqhgl3v0b361";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/ycm-core/YouCompleteMe/";
@@ -498,12 +498,12 @@ final: prev:
 
   actions-preview-nvim = buildVimPlugin {
     pname = "actions-preview.nvim";
-    version = "2023-12-05";
+    version = "2024-01-07";
     src = fetchFromGitHub {
       owner = "aznhe21";
       repo = "actions-preview.nvim";
-      rev = "8f79029a36ab6807478f157538a91ccd4af5858f";
-      sha256 = "0hrrrkfr2qv6fgmvc4nv3spp0d8lqq9skc3gbgnzg8m7pfai2mfx";
+      rev = "dd63df1a4ed0ffe1458945ee50ecb1dd02b605ab";
+      sha256 = "0rsg7qvy45hhrzsf0xsdkr8ac9d3w2b0wqdbzzkfispkxpbsqyl9";
     };
     meta.homepage = "https://github.com/aznhe21/actions-preview.nvim/";
   };
@@ -522,12 +522,12 @@ final: prev:
 
   aerial-nvim = buildVimPlugin {
     pname = "aerial.nvim";
-    version = "2023-12-24";
+    version = "2024-01-21";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "aerial.nvim";
-      rev = "e2e3bc2df4490690ea005395eecdc8eeb30c4def";
-      sha256 = "1fxjdhsyxsflfzsvsp1rds5cdqw4bipqr5i04sccn2qzip5dfsm7";
+      rev = "e9661d4f739508377f42528fd08a85c4c8feba6e";
+      sha256 = "1pskj1vqrcxy4y7rvmb27d6810zcmklrff5163gav26rcgppn6x7";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/stevearc/aerial.nvim/";
@@ -583,12 +583,12 @@ final: prev:
 
   ale = buildVimPlugin {
     pname = "ale";
-    version = "2023-12-10";
+    version = "2024-01-14";
     src = fetchFromGitHub {
       owner = "dense-analysis";
       repo = "ale";
-      rev = "9a23ec1f60ec85f6afb70870a1978141b321fb3c";
-      sha256 = "07gl4a5y4g2ywlj5a9zhwnfb2d4ma8b3hdkf3brls7smwknvlkn0";
+      rev = "8922478a83cd06bfe5b82eb45279649adc4ec046";
+      sha256 = "1s9cy0s08hgjb1n05gbl8am2s4wvxblpa1sfiwadwyqf163bd16j";
     };
     meta.homepage = "https://github.com/dense-analysis/ale/";
   };
@@ -607,12 +607,12 @@ final: prev:
 
   alpha-nvim = buildVimPlugin {
     pname = "alpha-nvim";
-    version = "2023-11-28";
+    version = "2024-01-17";
     src = fetchFromGitHub {
       owner = "goolord";
       repo = "alpha-nvim";
-      rev = "29074eeb869a6cbac9ce1fbbd04f5f5940311b32";
-      sha256 = "13my49r11s0mm7q7cri7c0ymmasippp9wcfplsg1pmg73j9a6i27";
+      rev = "4b36c1ca9ea475bdc006896657cf1ccc486aeffa";
+      sha256 = "01s5kp4zxfs18i7r9hvrjakihk6wz191zrkniq4vhsns32mmjgk3";
     };
     meta.homepage = "https://github.com/goolord/alpha-nvim/";
   };
@@ -1039,12 +1039,12 @@ final: prev:
 
   better-escape-nvim = buildVimPlugin {
     pname = "better-escape.nvim";
-    version = "2023-12-30";
+    version = "2024-01-21";
     src = fetchFromGitHub {
       owner = "max397574";
       repo = "better-escape.nvim";
-      rev = "d0e9bc2357d79d88fcbf067e7096812dd917b58f";
-      sha256 = "0x2sd9wk3428hxkk0ybwh0hxksbzlzspb2ill9r63v3arflghn46";
+      rev = "7e86edafb8c7e73699e0320f225464a298b96d12";
+      sha256 = "14srra6hx5wpr4kcvfmg0bj5zljl7lr6ahq40wnwghdvy06ck5x2";
     };
     meta.homepage = "https://github.com/max397574/better-escape.nvim/";
   };
@@ -1171,12 +1171,12 @@ final: prev:
 
   bufferline-nvim = buildVimPlugin {
     pname = "bufferline.nvim";
-    version = "2023-12-13";
+    version = "2024-01-25";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "bufferline.nvim";
-      rev = "e48ce1805697e4bb97bc171c081e849a65859244";
-      sha256 = "06af2lvydw7c2yswin968vdh2f06s5xmwx6pip45c4am8q68a2y6";
+      rev = "d6cb9b7cac52887bcac65f8698e67479553c0748";
+      sha256 = "05j37sch4m8cxdjg7fyzmawr21mp2ipqlw3ar4adk8as698b68gy";
     };
     meta.homepage = "https://github.com/akinsho/bufferline.nvim/";
   };
@@ -1255,12 +1255,12 @@ final: prev:
 
   chadtree = buildVimPlugin {
     pname = "chadtree";
-    version = "2024-01-03";
+    version = "2024-01-25";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "chadtree";
-      rev = "aed5de7cfe2238df4cd9aa4ac023cdde0db243b2";
-      sha256 = "03y7ms7wx78w70nyzp1nv4nb7ybyrsmsf8zk8p0jnd7vzvx6ixzp";
+      rev = "713d374382398df12816b3aa8de5462e29266d8a";
+      sha256 = "1zi4v1fsayvcxsvbb60r7lj5zpsbhcysy2n6l9610xn0zmwmcnxq";
     };
     meta.homepage = "https://github.com/ms-jpq/chadtree/";
   };
@@ -1531,12 +1531,12 @@ final: prev:
 
   cmp-dictionary = buildVimPlugin {
     pname = "cmp-dictionary";
-    version = "2023-08-30";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "uga-rosa";
       repo = "cmp-dictionary";
-      rev = "363ce91a198ea255d847a189c723c6d4e3bc4a91";
-      sha256 = "033wa4sgg2hmn2wi7g7mwl0cpw4mlnr53x8b0diqlyv5v7wax302";
+      rev = "472d0087035762f3c81af63433df15c8dd85601b";
+      sha256 = "03i5gb18w93fb7by1djj7b3sqfsdb2rlqlnj5dcl0r8qb4wa8nrc";
     };
     meta.homepage = "https://github.com/uga-rosa/cmp-dictionary/";
   };
@@ -1591,12 +1591,12 @@ final: prev:
 
   cmp-fuzzy-path = buildVimPlugin {
     pname = "cmp-fuzzy-path";
-    version = "2023-12-28";
+    version = "2024-01-17";
     src = fetchFromGitHub {
       owner = "tzachar";
       repo = "cmp-fuzzy-path";
-      rev = "11fe4d7a7cd3fd6e28299abea17e3728e14329f3";
-      sha256 = "0m30qwgc58k02knf6pbhn9wvdczhbjhqsd52ba863mwpy20wy6by";
+      rev = "9953c11a2510a04111b7b152cf50ae1e83f00798";
+      sha256 = "1v5752sjls2762aflszbrvav2vcs80ihvaya477rkf1kdcda95l4";
     };
     meta.homepage = "https://github.com/tzachar/cmp-fuzzy-path/";
   };
@@ -1829,14 +1829,26 @@ final: prev:
     meta.homepage = "https://github.com/f3fora/cmp-spell/";
   };
 
+  cmp-tabby = buildVimPlugin {
+    pname = "cmp-tabby";
+    version = "2023-11-21";
+    src = fetchFromGitHub {
+      owner = "nzlov";
+      repo = "cmp-tabby";
+      rev = "eb793a7ac27972e99ae391f85ee7a2e0b7d02590";
+      sha256 = "0gi5r870zvxij1d3vb0534fm8llfsnvffdc84cfv4k4xjigh828d";
+    };
+    meta.homepage = "https://github.com/nzlov/cmp-tabby/";
+  };
+
   cmp-tabnine = buildVimPlugin {
     pname = "cmp-tabnine";
-    version = "2023-05-09";
+    version = "2024-01-22";
     src = fetchFromGitHub {
       owner = "tzachar";
       repo = "cmp-tabnine";
-      rev = "b93f82ef5150e578677fc2e2b4b328b19eed77e1";
-      sha256 = "0wbwy7a3w425m14kxvxkk6migk1705n6y7q6bis24wnl2pdqmfyc";
+      rev = "a8d76fe729ee2ca6ffc497ebdc2d0f5ddff41b79";
+      sha256 = "04yqgb895if25k4h2zn7qr2b0gyq791zq41dqm19c3a4ml7rqafi";
     };
     meta.homepage = "https://github.com/tzachar/cmp-tabnine/";
   };
@@ -1963,12 +1975,12 @@ final: prev:
 
   coc-fzf = buildVimPlugin {
     pname = "coc-fzf";
-    version = "2023-01-30";
+    version = "2024-01-04";
     src = fetchFromGitHub {
       owner = "antoinemadec";
       repo = "coc-fzf";
-      rev = "5fae5a15497750483e21fc207aa6005f340f02f2";
-      sha256 = "1r9jhdxm3y1lpdmwmlk48skihf7jxdm2sxirzyd1kwb88nvn4c3r";
+      rev = "96490e570daf1c10679ac0b183ebf2ca1024b079";
+      sha256 = "0iyjrax9sqimx7vrkk98qy3zag4vbw3g3kw4p6mmyjryi20kw66m";
     };
     meta.homepage = "https://github.com/antoinemadec/coc-fzf/";
   };
@@ -2059,12 +2071,12 @@ final: prev:
 
   codeium-vim = buildVimPlugin {
     pname = "codeium.vim";
-    version = "2024-01-03";
+    version = "2024-01-18";
     src = fetchFromGitHub {
       owner = "Exafunction";
       repo = "codeium.vim";
-      rev = "4063291e335e74e9ee2be04beb47d40b376312fa";
-      sha256 = "sha256-kRwkgDQq0x4JusuUww5X/lXoJF/gHeZ57FOndNGS4Go=";
+      rev = "a1c3d6b369a18514d656dac149de807becacbdf7";
+      sha256 = "1d1m30wrjm3s18672j97ypbky59mppn8af3vl0db7pf4c7bv2vbv";
     };
     meta.homepage = "https://github.com/Exafunction/codeium.vim/";
   };
@@ -2299,12 +2311,12 @@ final: prev:
 
   conform-nvim = buildVimPlugin {
     pname = "conform.nvim";
-    version = "2024-01-02";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "conform.nvim";
-      rev = "c4b2efb8aee4af0ef179a9b49ba401de3c4ef5d2";
-      sha256 = "1n7x44ja02j0rkvchb58cw1gc1qaq02w8sq15qr6r18ybf63b85r";
+      rev = "d99b75b4aedf0e912f41c5740a7267de739cddac";
+      sha256 = "1qwrvidiq26fsl7bz3fhfnhn534k8cix488c9kykl9y971kb9mm7";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/stevearc/conform.nvim/";
@@ -2360,24 +2372,24 @@ final: prev:
 
   copilot-lua = buildVimPlugin {
     pname = "copilot.lua";
-    version = "2023-12-23";
+    version = "2024-01-07";
     src = fetchFromGitHub {
       owner = "zbirenbaum";
       repo = "copilot.lua";
-      rev = "858bbfa6fa81c88fb1f64107d7981f1658619e0a";
-      sha256 = "15l1y1zqzsrvz437vyzaxwjcxrqagfwc3v9bplhv77kvaj0sbb67";
+      rev = "b03617a6dc4bc88b65ab5deac1631da9a9c2dcaf";
+      sha256 = "1pq8h1fnx5fkk6nj10ag6hx1br0c6vpclmcrw67qss8n52g0zwgk";
     };
     meta.homepage = "https://github.com/zbirenbaum/copilot.lua/";
   };
 
   copilot-vim = buildVimPlugin {
     pname = "copilot.vim";
-    version = "2023-12-12";
+    version = "2024-01-23";
     src = fetchFromGitHub {
       owner = "github";
       repo = "copilot.vim";
-      rev = "5b19fb001d7f31c4c7c5556d7a97b243bd29f45f";
-      sha256 = "0m6s01in8bkfviq7p0xq9x5ldgj826ixbnz4586bgg9pzkr0lz4q";
+      rev = "a8142d44602f1b3f7b5c03c52b55f8f5d3453bf0";
+      sha256 = "08s0n9fyndjkri4lnpdg8hin4ykibxdkl8v3fgpglr944vs7cpff";
     };
     meta.homepage = "https://github.com/github/copilot.vim/";
   };
@@ -2396,12 +2408,12 @@ final: prev:
 
   coq-thirdparty = buildVimPlugin {
     pname = "coq.thirdparty";
-    version = "2024-01-01";
+    version = "2024-01-12";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "coq.thirdparty";
-      rev = "ae3d9e8f40b663ec26b1a7974f0d4323aa4e73ed";
-      sha256 = "1cv43ijgycyivwyxcim66r4nq827dbn1703qck3ifif1qyp70zql";
+      rev = "99393e405c28883e92e39ad6cdb41120ecfb6f32";
+      sha256 = "0jkim8sxi66ra1xdlhlz3b04jh0whrgs43wyw7hdckwjvmn354hp";
     };
     meta.homepage = "https://github.com/ms-jpq/coq.thirdparty/";
   };
@@ -2420,12 +2432,12 @@ final: prev:
 
   coq_nvim = buildVimPlugin {
     pname = "coq_nvim";
-    version = "2023-12-29";
+    version = "2024-01-03";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "coq_nvim";
-      rev = "9fda84a882c63eddc86911e6507ecc6a2ea7d728";
-      sha256 = "0kn9b9sjy7px853px4s947w6igxbajhsaskv6h5x7wcqwm4clznh";
+      rev = "4337cb19c7bd922fa9b374456470a753dc1618d4";
+      sha256 = "1a13hb39hmpk2pgq615b32kd94arj22rppags99dxg02vz9ngsp8";
     };
     meta.homepage = "https://github.com/ms-jpq/coq_nvim/";
   };
@@ -2456,12 +2468,12 @@ final: prev:
 
   crates-nvim = buildVimPlugin {
     pname = "crates.nvim";
-    version = "2023-12-20";
+    version = "2024-01-25";
     src = fetchFromGitHub {
       owner = "saecki";
       repo = "crates.nvim";
-      rev = "81c6325b7f8875857ec09e5d24f3b6d7986f29e2";
-      sha256 = "1dlri6p8v8bs3mkssvxixpg8knavr2axwydy5qhywzzjzz236yd5";
+      rev = "f2a169840e97a8ed2048abb507d2742c3895c85b";
+      sha256 = "05j1f2cf9fgsl7kdz2kqq525xm7v6l4p10mh46nf897gllvvajmy";
     };
     meta.homepage = "https://github.com/saecki/crates.nvim/";
   };
@@ -2588,12 +2600,12 @@ final: prev:
 
   debugprint-nvim = buildVimPlugin {
     pname = "debugprint.nvim";
-    version = "2023-12-28";
+    version = "2024-01-21";
     src = fetchFromGitHub {
       owner = "andrewferrier";
       repo = "debugprint.nvim";
-      rev = "13378f67edc112bf0d043bc0c018f8923dc2198d";
-      sha256 = "1dkj9bmpz7hpahnmyswpna98d6qacmvrymxk2a7j1q0axvj2c414";
+      rev = "0c81cd2bab372bba99815f505eb1fe759d38dd88";
+      sha256 = "1vyn98y3mnhdpa1yvlarqrs4wzfkgn1g70n5s0x3h1kvs1256g8c";
     };
     meta.homepage = "https://github.com/andrewferrier/debugprint.nvim/";
   };
@@ -2684,12 +2696,12 @@ final: prev:
 
   denops-vim = buildVimPlugin {
     pname = "denops.vim";
-    version = "2024-01-03";
+    version = "2024-01-25";
     src = fetchFromGitHub {
       owner = "vim-denops";
       repo = "denops.vim";
-      rev = "4f0bbc933fd700e0d9a0055c569fa45e193fca27";
-      sha256 = "0xpf37r8y47i2s73b9ccdbglsrnw36ixyfbx584fg4vdcibkcc42";
+      rev = "16d4bbc5c8e359ab50042f66dc5c9a2cdeabff6e";
+      sha256 = "19274maj5nbf7psa4d1nwkd2x7wnmnr6i6sp0h36nk5bgjx5jhzg";
     };
     meta.homepage = "https://github.com/vim-denops/denops.vim/";
   };
@@ -3022,12 +3034,12 @@ final: prev:
 
   distant-nvim = buildVimPlugin {
     pname = "distant.nvim";
-    version = "2023-09-13";
+    version = "2024-01-10";
     src = fetchFromGitHub {
       owner = "chipsenkbeil";
       repo = "distant.nvim";
-      rev = "998724f62386c8022a4e6c885f4509cf9477451a";
-      sha256 = "1qzk86mqz6cfspzxslyckxsw964fk22n3f2nlwpm2vp4kdkqajmc";
+      rev = "de7288b1af6fdb2d2e7a8aa00f07a236261c2491";
+      sha256 = "1dvd12cmarb5ki214xy0d4ibkcym3gla3pk9anfgjjm1qqlwm9va";
     };
     meta.homepage = "https://github.com/chipsenkbeil/distant.nvim/";
   };
@@ -3046,36 +3058,36 @@ final: prev:
 
   dracula-nvim = buildVimPlugin {
     pname = "dracula.nvim";
-    version = "2023-12-15";
+    version = "2024-01-23";
     src = fetchFromGitHub {
       owner = "Mofiqul";
       repo = "dracula.nvim";
-      rev = "cadf9a1d873d67a92a76b258715cad91f0c1dbb9";
-      sha256 = "1a12kkfszgb94zi4wi3ksrpcyd2vkl2wcm314z738p7p5vjrvkwl";
+      rev = "a6cb758d4b182d9f2b7e742910078d94877c1059";
+      sha256 = "1v6hwh225lh7jayq7y18d8lp8n8dk7scy21f0s5jyppy1rn7yrf8";
     };
     meta.homepage = "https://github.com/Mofiqul/dracula.nvim/";
   };
 
   dressing-nvim = buildVimPlugin {
     pname = "dressing.nvim";
-    version = "2023-12-26";
+    version = "2024-01-21";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "dressing.nvim";
-      rev = "94b0d24483d56f3777ee0c8dc51675f21709318c";
-      sha256 = "1dzq0h7z9by1zb4fhdjkak9rva0s12d8hl6xajgd9m5rnh3d64pl";
+      rev = "42d767b04c50a6966c9633e3968bc65c0c2f2bfc";
+      sha256 = "0zd2wswd1x83qgs9d6bsh7k5nmdniqd4ba0x4w3qdndp27nafcz9";
     };
     meta.homepage = "https://github.com/stevearc/dressing.nvim/";
   };
 
   dropbar-nvim = buildVimPlugin {
     pname = "dropbar.nvim";
-    version = "2023-12-23";
+    version = "2024-01-25";
     src = fetchFromGitHub {
       owner = "Bekaboo";
       repo = "dropbar.nvim";
-      rev = "ee3a356254ab494c0e280b809969a7a3a7e38fb7";
-      sha256 = "1d1pxwvz4n5hlr5qa6ql3hx06350xyqycxzk5fs15ggnq6c8drd8";
+      rev = "9a8e498374276dd0281736c75b42098ef9fb5622";
+      sha256 = "0py5lipmxkd6brzz41sali1bbl61bmaan9visdvvh1jrk7zzzyz6";
     };
     meta.homepage = "https://github.com/Bekaboo/dropbar.nvim/";
   };
@@ -3094,12 +3106,12 @@ final: prev:
 
   edge = buildVimPlugin {
     pname = "edge";
-    version = "2023-10-24";
+    version = "2024-01-23";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "edge";
-      rev = "d811acd067193fabadd04f081228fd97827ae5ae";
-      sha256 = "1m62wnwkzy48s7a8q3fjzxxf3fgq2bfqvgjhmp7xkpc1bgad2rq1";
+      rev = "7506891a93dd0954d59b556ae5bb4c85403150ed";
+      sha256 = "1228zzwx0vghmhf2fma6fdj8pcw8kslw6kw14kwv5b1sfxg7rap3";
     };
     meta.homepage = "https://github.com/sainnhe/edge/";
   };
@@ -3118,24 +3130,24 @@ final: prev:
 
   edgy-nvim = buildVimPlugin {
     pname = "edgy.nvim";
-    version = "2023-10-14";
+    version = "2024-01-21";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "edgy.nvim";
-      rev = "8355be45610afdf79a0bab32b91ee297997455b4";
-      sha256 = "0hjlxkyhi5aw6b157i9hr2cdcz63r0qag0l3hf2hcmjzvjjb51ls";
+      rev = "0b35dc6da4cae6cc2f724bc610eadf955cd2319b";
+      sha256 = "04dv17nvgs1fwfphz1vqk39nqlrq77215077a9sq7x7ligpc87lv";
     };
     meta.homepage = "https://github.com/folke/edgy.nvim/";
   };
 
   editorconfig-vim = buildVimPlugin {
     pname = "editorconfig-vim";
-    version = "2023-12-02";
+    version = "2024-01-15";
     src = fetchFromGitHub {
       owner = "editorconfig";
       repo = "editorconfig-vim";
-      rev = "95cb75e21d11206dad4bd3895c99459bdaa13dd1";
-      sha256 = "19nqk6hw0w29a14dwykqpcfahcjnkyjafha01fa82i967hrg3dj6";
+      rev = "0956bc257ca4eaa3e087e0ba2253a3e980805820";
+      sha256 = "1w64bpv4hanyxml0hbqqsbm96fckx1imcvksr2raq9al0qlfk4gn";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/editorconfig/editorconfig-vim/";
@@ -3155,12 +3167,12 @@ final: prev:
 
   efmls-configs-nvim = buildVimPlugin {
     pname = "efmls-configs-nvim";
-    version = "2023-12-21";
+    version = "2024-01-10";
     src = fetchFromGitHub {
       owner = "creativenull";
       repo = "efmls-configs-nvim";
-      rev = "ddc7c542aaad21da594edba233c15ae3fad01ea0";
-      sha256 = "0qhs1dzn0wy6jrqkyn4bz5cmd9xzxp3prka72446b3sj4521bbs7";
+      rev = "5372981bc8785facefb51cd50cb0888d1129a291";
+      sha256 = "08d67vm14jqkvrds247wy81mhfvfki5vl3fg7lp8s6aafs1y576d";
     };
     meta.homepage = "https://github.com/creativenull/efmls-configs-nvim/";
   };
@@ -3240,12 +3252,12 @@ final: prev:
 
   everforest = buildVimPlugin {
     pname = "everforest";
-    version = "2023-10-24";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "everforest";
-      rev = "72f101bd63228a1a45012325e39c5280ec22c828";
-      sha256 = "0airdqkf1yrmsxl2id7v22f063j18rj499kly9rsp0qa8g3zh97r";
+      rev = "89080db9637bb297b4c75ae1511e9f6f61ad9c78";
+      sha256 = "0xfq7x8cdp45qn1yrq88mxhvcqfri67laq7yk077g0m274phpjdr";
     };
     meta.homepage = "https://github.com/sainnhe/everforest/";
   };
@@ -3288,12 +3300,12 @@ final: prev:
 
   far-vim = buildVimPlugin {
     pname = "far.vim";
-    version = "2022-08-25";
+    version = "2024-01-15";
     src = fetchFromGitHub {
       owner = "brooth";
       repo = "far.vim";
-      rev = "5ad7d647434c7d89f715afa5aeae46e5441d32b3";
-      sha256 = "0rmlpm415knarnqbqykw9yhaliv4pw2c1kx4dlclg8xgx0a191f0";
+      rev = "56e5d8a71fc12d5c78a4eed908fd9a7cabc405e2";
+      sha256 = "1gfgyrw0kmls6fgd1hzg3a7yf00jcxyj0qrc0jf3yab5vb02484n";
     };
     meta.homepage = "https://github.com/brooth/far.vim/";
   };
@@ -3324,12 +3336,12 @@ final: prev:
 
   feline-nvim = buildVimPlugin {
     pname = "feline.nvim";
-    version = "2023-12-27";
+    version = "2024-01-05";
     src = fetchFromGitHub {
       owner = "freddiehaddad";
       repo = "feline.nvim";
-      rev = "0f6c531ac928bcff4cccc08b7fff3b5b2657359f";
-      sha256 = "0535kv2mc04wlwjmay5zv0wd74xd0y07zibs5lf5agyl34sdp2qy";
+      rev = "6cfbe0608d2552a7d947c6f521670b10379fbe42";
+      sha256 = "1hkypnpaws9ijw4k3gqc03y5hmwnjp9jax8k9dxgqiasixk0wqs9";
     };
     meta.homepage = "https://github.com/freddiehaddad/feline.nvim/";
   };
@@ -3370,14 +3382,14 @@ final: prev:
     meta.homepage = "https://github.com/wincent/ferret/";
   };
 
-  fidget-nvim = buildVimPlugin {
+  fidget-nvim = buildNeovimPlugin {
     pname = "fidget.nvim";
-    version = "2023-12-28";
+    version = "2024-01-08";
     src = fetchFromGitHub {
       owner = "j-hui";
       repo = "fidget.nvim";
-      rev = "a4a7edfea37e557dbff5509ee374ffb57051bba9";
-      sha256 = "0hvdmvxd9basyh57ik214dij0m5hjwrz2d5c4asdmbw5bicc84gl";
+      rev = "3a93300c076109d86c7ce35ec67a8034ae6ba9db";
+      sha256 = "1ld4611wpgcy5lmrw16clh2hrbx42kfa9pm0a44cb6nfcx2gy1dq";
     };
     meta.homepage = "https://github.com/j-hui/fidget.nvim/";
   };
@@ -3408,12 +3420,12 @@ final: prev:
 
   firenvim = buildVimPlugin {
     pname = "firenvim";
-    version = "2023-08-18";
+    version = "2024-01-23";
     src = fetchFromGitHub {
       owner = "glacambre";
       repo = "firenvim";
-      rev = "138424db463e6c0e862a05166a4ccc781cd7c19d";
-      sha256 = "08nwlfs8718vfqszzwpjf9kkf5p16fkydwc6rny8z7xhigzv9cc7";
+      rev = "f2dd6d3bcf3309a7dd30c79b3b3c03ab55cea6e2";
+      sha256 = "0d1c3km53v1g8c2aa8fqrs0yhrq80mw1wcfglxkyppg81q91qfs6";
     };
     meta.homepage = "https://github.com/glacambre/firenvim/";
   };
@@ -3445,24 +3457,24 @@ final: prev:
 
   flatten-nvim = buildVimPlugin {
     pname = "flatten.nvim";
-    version = "2023-12-09";
+    version = "2024-01-22";
     src = fetchFromGitHub {
       owner = "willothy";
       repo = "flatten.nvim";
-      rev = "c78c5200899d2afd171d9d2bf09e139e3710eeb6";
-      sha256 = "19r1nndapqg7d3a5h4sfbknh4331vg5lncdz39zknb9bv8721mby";
+      rev = "a999f1abd8fa9f8e2447a65726f9f44288c26f3f";
+      sha256 = "1c3r5sqqkdbgb8y1gm0pqdjqyk5gp2x7p9905b5ic6kw451vs4vg";
     };
     meta.homepage = "https://github.com/willothy/flatten.nvim/";
   };
 
   flit-nvim = buildVimPlugin {
     pname = "flit.nvim";
-    version = "2023-12-22";
+    version = "2024-01-13";
     src = fetchFromGitHub {
       owner = "ggandor";
       repo = "flit.nvim";
-      rev = "fc57989ab4414c83c8bd153d813cd542e80808db";
-      sha256 = "1954cwp2vlg5h0k2lbm89gfq4g3wrkvaxvhq480c5sra81g8x2gp";
+      rev = "39e3399ed2cbc328778258ac0d497ece9ed8fe32";
+      sha256 = "0pmaymd1n8k829h2pb392xbnm9qgbsxxnzgjzv84ylmrvr6r83sq";
     };
     meta.homepage = "https://github.com/ggandor/flit.nvim/";
   };
@@ -3517,12 +3529,12 @@ final: prev:
 
   flutter-tools-nvim = buildVimPlugin {
     pname = "flutter-tools.nvim";
-    version = "2024-01-03";
+    version = "2024-01-22";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "flutter-tools.nvim";
-      rev = "59f987589b00d7e6f202f7aa32f041772e287d37";
-      sha256 = "0r5b48fincrgh1gq8q95pv5q641fvm5rgxvwww07l950xry7xsb0";
+      rev = "271eec9edb0f1a2bf30ad449ec3b4eeb2c88af05";
+      sha256 = "0kk6iz1ziymgscgv7z22m8mbkinnmj7qlnnmh0sikh14kwa21xw3";
     };
     meta.homepage = "https://github.com/akinsho/flutter-tools.nvim/";
   };
@@ -3565,12 +3577,12 @@ final: prev:
 
   friendly-snippets = buildVimPlugin {
     pname = "friendly-snippets";
-    version = "2023-11-27";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "rafamadriz";
       repo = "friendly-snippets";
-      rev = "53d3df271d031c405255e99410628c26a8f0d2b0";
-      sha256 = "07zggsby7v2migmc314nd1dsga9ixwp89ibwlsl3lrm2dwqlkbg9";
+      rev = "aced40b66b7bae9bc2c37fd7b11841d54727a7b0";
+      sha256 = "11lmhx1vnaphljk91aslkzmp71swash5xiqi0jydmdhly753m5g9";
     };
     meta.homepage = "https://github.com/rafamadriz/friendly-snippets/";
   };
@@ -3673,24 +3685,24 @@ final: prev:
 
   fzf-lua = buildVimPlugin {
     pname = "fzf-lua";
-    version = "2024-01-02";
+    version = "2024-01-20";
     src = fetchFromGitHub {
       owner = "ibhagwan";
       repo = "fzf-lua";
-      rev = "f4f3671ebc89dd25a583a871db07529a3eff8b64";
-      sha256 = "0py9ajf0dksszv86irnxmg9cbydvbfjgndzy9mlq5b2nqchlfwsr";
+      rev = "36195a230246fc44e8144ee0b454fc022ac5326b";
+      sha256 = "0v86khin5ac4x3w8sw9ffmg9nz7gqclycaxi5dpsm3r13imgkiym";
     };
     meta.homepage = "https://github.com/ibhagwan/fzf-lua/";
   };
 
   fzf-vim = buildVimPlugin {
     pname = "fzf.vim";
-    version = "2023-10-27";
+    version = "2024-01-08";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "fzf.vim";
-      rev = "1e054c1d075d87903647db9320116d360eb8b024";
-      sha256 = "197fmlqk2hqrbsgbk9mq1kn67nf7zqcy7yn2zjk0cjk7ldppzfmk";
+      rev = "f6cb5b17897ff0c38f60fecd4b529678bcfec259";
+      sha256 = "177ca7w28s854zkjqza0b6mnrhdzpxkscbpxq24yg4aw8r4kjyhs";
     };
     meta.homepage = "https://github.com/junegunn/fzf.vim/";
   };
@@ -3769,24 +3781,24 @@ final: prev:
 
   git-blame-nvim = buildVimPlugin {
     pname = "git-blame.nvim";
-    version = "2023-11-09";
+    version = "2024-01-23";
     src = fetchFromGitHub {
       owner = "f-person";
       repo = "git-blame.nvim";
-      rev = "f07e913b7143f19edd6787229f2d51759b478600";
-      sha256 = "0gqr1i3g1afjm2p03vjzs0jiy6jycg6lvqa0fdsqdrb7cyircs5r";
+      rev = "196602b570b1d754b7b8f9a9f75fa7bd88f12ef8";
+      sha256 = "15cq84f1y2z690i25hyz32a6bf9hvd8359dscs4d8wyr4gs4xb37";
     };
     meta.homepage = "https://github.com/f-person/git-blame.nvim/";
   };
 
   git-conflict-nvim = buildVimPlugin {
     pname = "git-conflict.nvim";
-    version = "2023-09-18";
+    version = "2024-01-22";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "git-conflict.nvim";
-      rev = "896261933afe2fddf6fb043d9cd4d88301b151a9";
-      sha256 = "1pkvhl1bf76nvc9rdyn60dq619pkwr2a03gn2zkqlap28lhw2xn8";
+      rev = "4c8e252b87d54d944c1e56bfb477f78b6fdaf661";
+      sha256 = "0rv8z3nd150j9ffw12l40cyzvw0q0066kqvj4fr3v2d8ja48kzhg";
     };
     meta.homepage = "https://github.com/akinsho/git-conflict.nvim/";
   };
@@ -3841,12 +3853,12 @@ final: prev:
 
   gitsigns-nvim = buildNeovimPlugin {
     pname = "gitsigns.nvim";
-    version = "2023-12-12";
+    version = "2024-01-23";
     src = fetchFromGitHub {
       owner = "lewis6991";
       repo = "gitsigns.nvim";
-      rev = "d195f0c35ced5174d3ecce1c4c8ebb3b5bc23fa9";
-      sha256 = "0n1pdil0di93sfmlxnw80xvwxgz36m3hllhzg16bmlcjwgagwclp";
+      rev = "300a306da9973e81c2c06460f71fd7a079df1f36";
+      sha256 = "1vy1p2cgcmfwzgfd011pnvib2vp1zgwv2kp59xlb0v3jxl8rnsvj";
     };
     meta.homepage = "https://github.com/lewis6991/gitsigns.nvim/";
   };
@@ -4021,12 +4033,12 @@ final: prev:
 
   gruvbox-material = buildVimPlugin {
     pname = "gruvbox-material";
-    version = "2023-11-22";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "gruvbox-material";
-      rev = "7f56d9f9c4860df528031539d321a61f6e081dee";
-      sha256 = "14c5ylsnp99viqvgyc67xi3987086kbsrw44yslxkpvf4na8b3a4";
+      rev = "479150eb46ddf7a724782730b1414a9b6bbe4628";
+      sha256 = "1dj2cm7an9a0n6pj9j6vin242pfv90qd4cad8d9zn93i6axaafwj";
     };
     meta.homepage = "https://github.com/sainnhe/gruvbox-material/";
   };
@@ -4057,12 +4069,12 @@ final: prev:
 
   guard-nvim = buildVimPlugin {
     pname = "guard.nvim";
-    version = "2023-11-27";
+    version = "2024-01-13";
     src = fetchFromGitHub {
       owner = "nvimdev";
       repo = "guard.nvim";
-      rev = "394317c25a6b0f0e064aebcfcf902e46fb0a04ba";
-      sha256 = "sha256-Yva/mSn5RdvHLK5cVGHUCEHRauYrwy7wR2uDzyBM9sw=";
+      rev = "d4782860b7da344d7409edbe7ee3693d5b8ea226";
+      sha256 = "017lsdh1a3z43dw5liz0hv2fic8rbxmw100rfnj9w3xxf6a5iv9k";
     };
     meta.homepage = "https://github.com/nvimdev/guard.nvim/";
   };
@@ -4117,11 +4129,11 @@ final: prev:
 
   hare-vim = buildVimPlugin {
     pname = "hare.vim";
-    version = "2024-01-03";
+    version = "2024-01-08";
     src = fetchgit {
       url = "https://git.sr.ht/~sircmpwn/hare.vim";
-      rev = "863d8d7a6cfc512a500654b8adea987de9827c97";
-      sha256 = "08pppvfqi584y7hn2sqran6w66d1xin9ixhzhvkcn084ff08zjlk";
+      rev = "9abf570deb82ecc525a53e0b96b487efde8bc490";
+      sha256 = "0pnkz6n48b0i56vilg81c9p7z3bj834r7vch7b53cmmpp78v8ikf";
     };
     meta.homepage = "https://git.sr.ht/~sircmpwn/hare.vim";
   };
@@ -4138,14 +4150,38 @@ final: prev:
     meta.homepage = "https://github.com/ThePrimeagen/harpoon/";
   };
 
+  haskell-scope-highlighting-nvim = buildVimPlugin {
+    pname = "haskell-scope-highlighting.nvim";
+    version = "2023-04-29";
+    src = fetchFromGitHub {
+      owner = "kiyoon";
+      repo = "haskell-scope-highlighting.nvim";
+      rev = "ffeda85bae909816cbbf9d061aea9115cf8166f2";
+      sha256 = "sha256-f0y6rU0IqN8RZ7d1iyvHot2zLQ0yt4JOZhpdhlGZrqc=";
+    };
+    meta.homepage = "https://github.com/kiyoon/haskell-scope-highlighting.nvim/";
+  };
+
+  haskell-snippets-nvim = buildVimPlugin {
+    pname = "haskell-snippets.nvim";
+    version = "2024-01-15";
+    src = fetchFromGitHub {
+      owner = "mrcjkb";
+      repo = "haskell-snippets.nvim";
+      rev = "c26279d568452f5474f26470aff6549f94ff7cd3";
+      sha256 = "1rl9g25afaqiw16i582hbnnag0v6xcn28f09cy8vfddj696ygzg6";
+    };
+    meta.homepage = "https://github.com/mrcjkb/haskell-snippets.nvim/";
+  };
+
   haskell-tools-nvim = buildNeovimPlugin {
     pname = "haskell-tools.nvim";
-    version = "2023-12-31";
+    version = "2024-01-21";
     src = fetchFromGitHub {
       owner = "MrcJkb";
       repo = "haskell-tools.nvim";
-      rev = "29d7e4a366d961f8d756a3c3ed89b3e2908ac290";
-      sha256 = "1inzl1c1gv2g8bx6vryhsmfmdwifnl52wkfzqv36hzn8jdy7vcbh";
+      rev = "24f1ff1ac9f6ad71ba2535d491e6d21e700a6f8b";
+      sha256 = "0h7nijxgmwh75nmsim9bzx5qc0sawqj3v1iwzjkkqas05rmnjbjp";
     };
     meta.homepage = "https://github.com/MrcJkb/haskell-tools.nvim/";
   };
@@ -4200,12 +4236,12 @@ final: prev:
 
   heirline-nvim = buildVimPlugin {
     pname = "heirline.nvim";
-    version = "2023-11-29";
+    version = "2024-01-12";
     src = fetchFromGitHub {
       owner = "rebelot";
       repo = "heirline.nvim";
-      rev = "170e1b1fd7c11db00e46d802165fb277db601ae7";
-      sha256 = "04dlwis61di60pv11xl2i1sllqmrhq077svqga8sxfh557hspr04";
+      rev = "1b6f12e011f225a26aa162905cbf68804479e7e6";
+      sha256 = "0kqrriz5c0l5ljmz7amdhg3zrnkx0lpfjdxdagpcp9zyarvgdc6q";
     };
     meta.homepage = "https://github.com/rebelot/heirline.nvim/";
   };
@@ -4319,24 +4355,24 @@ final: prev:
 
   hotpot-nvim = buildVimPlugin {
     pname = "hotpot.nvim";
-    version = "2023-12-30";
+    version = "2024-01-25";
     src = fetchFromGitHub {
       owner = "rktjmp";
       repo = "hotpot.nvim";
-      rev = "0d0f414682a3e7d1561beac1f1545d8f8541599f";
-      sha256 = "1b89rxiy1hgilhjpzhpfqsbkiq1qx8h7ci0hwfnxz9a2s14k603l";
+      rev = "4deb08235bfccfbba8b0c031b1cfc8189883cdb4";
+      sha256 = "0p3q671s1wca9qnyssbigafh7ylbf6yg2rxn1s9gxgmksvmj0d1a";
     };
     meta.homepage = "https://github.com/rktjmp/hotpot.nvim/";
   };
 
   hover-nvim = buildVimPlugin {
     pname = "hover.nvim";
-    version = "2024-01-02";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "lewis6991";
       repo = "hover.nvim";
-      rev = "bbd59ddfae4e64459944acf2abcda4d81ba8bac6";
-      sha256 = "1s86vm9j4y8x3apckn0qxggx0lhkl153pczif5vy6gi7s8q93vha";
+      rev = "060ea7f5a7b28be87689e2b3d940baf6efc2da04";
+      sha256 = "1ql2c34h294mmlwl44q3gd3a1v60iplvx9l9lyhzp8k5ddc8c4i0";
     };
     meta.homepage = "https://github.com/lewis6991/hover.nvim/";
   };
@@ -4415,12 +4451,12 @@ final: prev:
 
   image-nvim = buildNeovimPlugin {
     pname = "image.nvim";
-    version = "2024-01-02";
+    version = "2024-01-08";
     src = fetchFromGitHub {
       owner = "3rd";
       repo = "image.nvim";
-      rev = "8e5b0b56e49d2bb8714bb95dc9c26697e1fc3068";
-      sha256 = "0ms1bfbyca4fmbdfmiwg7i3nnrfs08l859yyjyfn032d2vf0q32m";
+      rev = "245422e5c4774f0640d41c0eadec77396f2be4a9";
+      sha256 = "0mx0sgibinr0vv4fafzm2d5kvqxlyi502imqldz69kxn7xqamfi1";
     };
     meta.homepage = "https://github.com/3rd/image.nvim/";
   };
@@ -4487,12 +4523,12 @@ final: prev:
 
   indent-blankline-nvim = buildVimPlugin {
     pname = "indent-blankline.nvim";
-    version = "2024-01-02";
+    version = "2024-01-12";
     src = fetchFromGitHub {
       owner = "lukas-reineke";
       repo = "indent-blankline.nvim";
-      rev = "3c8a185da4b8ab7aef487219f5e001b11d4b6aaf";
-      sha256 = "0bzn4441v37250hpiqd0fm95yf1k3ldkvly3bfrhyzxpcjl50c3b";
+      rev = "12e92044d313c54c438bd786d11684c88f6f78cd";
+      sha256 = "0mrlq0ymxg80nr9ph4gk4ldf6xmd4pxarpybb779xy7x417mnjsg";
     };
     meta.homepage = "https://github.com/lukas-reineke/indent-blankline.nvim/";
   };
@@ -4571,12 +4607,12 @@ final: prev:
 
   investigate-vim = buildVimPlugin {
     pname = "investigate.vim";
-    version = "2020-02-29";
+    version = "2024-01-04";
     src = fetchFromGitHub {
       owner = "keith";
       repo = "investigate.vim";
-      rev = "aef9332ba3cfc070fb59fd7a4ac82bae2b42cd7b";
-      sha256 = "1jiipch8jr66h1cywwj0zdlx45p70d359s8ljdwcndjwicrqslmk";
+      rev = "f835b2c9f3d4770576c760830a08f957d5e94717";
+      sha256 = "1x5m74azdrvpsllbg7nkaqbib4ncqn3lja38lqfanydv1jfjylwg";
     };
     meta.homepage = "https://github.com/keith/investigate.vim/";
   };
@@ -4848,12 +4884,12 @@ final: prev:
 
   lazy-nvim = buildVimPlugin {
     pname = "lazy.nvim";
-    version = "2023-11-04";
+    version = "2024-01-23";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "lazy.nvim";
-      rev = "96584866b9c5e998cbae300594d0ccfd0c464627";
-      sha256 = "11s0ddi1zcnyrh1q73jp2a4whvpajiwjd6dv8igfwj4jr21mrl39";
+      rev = "aedcd79811d491b60d0a6577a9c1701063c2a609";
+      sha256 = "1lsxb684pdsn625krshxr65lyqb5aa07ryqb5yif8p19766g01pj";
     };
     meta.homepage = "https://github.com/folke/lazy.nvim/";
   };
@@ -4872,12 +4908,12 @@ final: prev:
 
   lean-nvim = buildVimPlugin {
     pname = "lean.nvim";
-    version = "2023-12-25";
+    version = "2024-01-20";
     src = fetchFromGitHub {
       owner = "Julian";
       repo = "lean.nvim";
-      rev = "fbbe524db7667155d6ef709a15be4d5d914e46a9";
-      sha256 = "1qfm1z70f1vbby5jbdavr7mj4ckkqwrx19c1kdnsk5xv16dpa80x";
+      rev = "4dff4c9d40678d895c8fe8a19b7ad98a196d0921";
+      sha256 = "1rl8bsnpi095njj23ihhihky0r5nagcffc5d3drhv7q74jj3bz0x";
     };
     meta.homepage = "https://github.com/Julian/lean.nvim/";
   };
@@ -4908,12 +4944,12 @@ final: prev:
 
   leap-nvim = buildVimPlugin {
     pname = "leap.nvim";
-    version = "2024-01-01";
+    version = "2024-01-20";
     src = fetchFromGitHub {
       owner = "ggandor";
       repo = "leap.nvim";
-      rev = "2253ff8e75776a5fc6046d06a68346a97cea40e4";
-      sha256 = "0idiz8ccidczx0znkvdwd8kjj9pi501fbvfvsb5ix82p6bn55sla";
+      rev = "82f4ae91e8c3a192292d9ffeccbb15f71b57bf2e";
+      sha256 = "0lad6zzdws9gjd6lqj0339vc958i488jyiwp98yhmdjg29pfb4mq";
     };
     meta.homepage = "https://github.com/ggandor/leap.nvim/";
   };
@@ -4968,12 +5004,12 @@ final: prev:
 
   lf-vim = buildVimPlugin {
     pname = "lf.vim";
-    version = "2023-11-21";
+    version = "2024-01-08";
     src = fetchFromGitHub {
       owner = "ptzz";
       repo = "lf.vim";
-      rev = "2be63cd4553d59008547f0ffe4643a90ec6260b3";
-      sha256 = "0j04287khy57p5hykiy5wi87b37k86n6fks648fk0s1jm8frb1j6";
+      rev = "b3eab10da0af41caffe6b4757b44d9179f807fac";
+      sha256 = "1gzmg9f0zh55w63yyqz3c7qqwmdljv38wa11wzfi9cvjh90qymvd";
     };
     meta.homepage = "https://github.com/ptzz/lf.vim/";
   };
@@ -5052,12 +5088,12 @@ final: prev:
 
   lightline-vim = buildVimPlugin {
     pname = "lightline.vim";
-    version = "2023-11-20";
+    version = "2024-01-13";
     src = fetchFromGitHub {
       owner = "itchyny";
       repo = "lightline.vim";
-      rev = "1c6b455c0445b8bc1c4c16ba569a43c6348411cc";
-      sha256 = "0dxdcyihw8vcybdwn7rzd011pxi5i008xx3mwjc4rmldbzb530ka";
+      rev = "58c97bc21c6f657d3babdd4eefce7593e30e75ce";
+      sha256 = "1g6yqaibf6khskhdxd3amcs7azmsb3cvz9nx4bgxrv7r6vb8bjg0";
     };
     meta.homepage = "https://github.com/itchyny/lightline.vim/";
   };
@@ -5196,12 +5232,12 @@ final: prev:
 
   lsp-format-nvim = buildVimPlugin {
     pname = "lsp-format.nvim";
-    version = "2023-12-11";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "lukas-reineke";
       repo = "lsp-format.nvim";
-      rev = "31fc250a412ab24555b389f61fac0330f6bb7660";
-      sha256 = "18kr0avk2vcv6fp9nw2y53ssl5lbv4vh8g9sav123anlqpvd756x";
+      rev = "5e18095a637ec969b86c72266872219ad2f4586e";
+      sha256 = "0lls2pa86lyfzwmipm6rxpbv7qgyx1mlgzg7rjr44y2rkv4m62fl";
     };
     meta.homepage = "https://github.com/lukas-reineke/lsp-format.nvim/";
   };
@@ -5220,12 +5256,12 @@ final: prev:
 
   lsp-overloads-nvim = buildVimPlugin {
     pname = "lsp-overloads.nvim";
-    version = "2023-10-17";
+    version = "2024-01-07";
     src = fetchFromGitHub {
       owner = "Issafalcon";
       repo = "lsp-overloads.nvim";
-      rev = "f7afc7a66b5319036e84487240283fa7d8e1100d";
-      sha256 = "15a6mnh5ivnllgiwvcs2qc9rrg1alh345yv129417rl0brf0n438";
+      rev = "5064093b8614663c2b9db1f6ce426f7c8cc89970";
+      sha256 = "1pfjb14gvnp88jx12snrcxz1kf1zmn8dqqay5mnhhcbi8y19f452";
     };
     meta.homepage = "https://github.com/Issafalcon/lsp-overloads.nvim/";
   };
@@ -5256,12 +5292,12 @@ final: prev:
 
   lsp-zero-nvim = buildVimPlugin {
     pname = "lsp-zero.nvim";
-    version = "2024-01-02";
+    version = "2024-01-22";
     src = fetchFromGitHub {
       owner = "VonHeikemen";
       repo = "lsp-zero.nvim";
-      rev = "accbac5131df050ad9913115b5f618b232d6e8e4";
-      sha256 = "0y4771i89srncpkw32x12s97g3xkarm3s4ds19hw0rnq9lfy1f5a";
+      rev = "c129311f4867675a52551b0a7ef12186308be00b";
+      sha256 = "0j1cc55y61bx7mxmxgkdrjx89jbgzfvkhi7kja215gqc144rrd0i";
     };
     meta.homepage = "https://github.com/VonHeikemen/lsp-zero.nvim/";
   };
@@ -5303,36 +5339,36 @@ final: prev:
 
   lspcontainers-nvim = buildVimPlugin {
     pname = "lspcontainers.nvim";
-    version = "2023-12-17";
+    version = "2024-01-04";
     src = fetchFromGitHub {
       owner = "lspcontainers";
       repo = "lspcontainers.nvim";
-      rev = "ac31157d72d6267fc892a3f021d37f5d24dbc344";
-      sha256 = "08r2lywir50w00g2wr7kvq194w42a663klfwkhvznvdm1bv44rwn";
+      rev = "1b2ca8d4bdf2926c91ba49bb27d5f3111dac530d";
+      sha256 = "15nfgz7759liwg6rw189k8acf10rl0xb69fc59pagldi4l7xngvx";
     };
     meta.homepage = "https://github.com/lspcontainers/lspcontainers.nvim/";
   };
 
   lspkind-nvim = buildVimPlugin {
     pname = "lspkind-nvim";
-    version = "2023-12-25";
+    version = "2024-01-11";
     src = fetchFromGitHub {
       owner = "onsails";
       repo = "lspkind.nvim";
-      rev = "7f26cf5e27e2bd910ce0ea00c514da2bf97423b8";
-      sha256 = "1hyglyp8w0xvypwzkdil27781a1gzg2gjnj2x59lkg0gz2n8gi1x";
+      rev = "1735dd5a5054c1fb7feaf8e8658dbab925f4f0cf";
+      sha256 = "0sjd244122q7hs3xaxzxhfcfpnzjz082rbnishq6khnr9w2xs0px";
     };
     meta.homepage = "https://github.com/onsails/lspkind.nvim/";
   };
 
   lspsaga-nvim = buildVimPlugin {
     pname = "lspsaga.nvim";
-    version = "2023-12-30";
+    version = "2024-01-20";
     src = fetchFromGitHub {
       owner = "nvimdev";
       repo = "lspsaga.nvim";
-      rev = "4e2b91c0db5654d625c4b4068d3e206c8535783c";
-      sha256 = "1kbxsjbm56mpd5wd3ir86rxi01b61scxg57n4yv0p8aqjrlbakr1";
+      rev = "2198c07124bef27ef81335be511c8abfd75db933";
+      sha256 = "03p433lw15km3gqf5p5jlw8xi1v8ifxr3byc5f7h692bgnn2983h";
     };
     meta.homepage = "https://github.com/nvimdev/lspsaga.nvim/";
   };
@@ -5363,24 +5399,24 @@ final: prev:
 
   lualine-nvim = buildVimPlugin {
     pname = "lualine.nvim";
-    version = "2023-12-26";
+    version = "2024-01-25";
     src = fetchFromGitHub {
       owner = "nvim-lualine";
       repo = "lualine.nvim";
-      rev = "566b7036f717f3d676362742630518a47f132fff";
-      sha256 = "1ydnqz06v4qny5k6ldlmq29w54hlgif6w5ds086mxfv29c8br3bn";
+      rev = "7d131a8d3ba5016229e8a1d08bf8782acea98852";
+      sha256 = "00ns525n4a3yqsnrsfbffj38nhh03s39g0dffjq6r71air2irhrc";
     };
     meta.homepage = "https://github.com/nvim-lualine/lualine.nvim/";
   };
 
   luasnip = buildNeovimPlugin {
     pname = "luasnip";
-    version = "2023-12-31";
+    version = "2024-01-17";
     src = fetchFromGitHub {
       owner = "l3mon4d3";
       repo = "luasnip";
-      rev = "8ae1dedd988eb56441b7858bd1e8554dfadaa46d";
-      sha256 = "13vgf5m6i4xcg815hx7dpk634b81c0snjr8lkhflm6yh6vmyisb2";
+      rev = "2dbef19461198630b3d7c39f414d09fb07d1fdd2";
+      sha256 = "0mg2nn4r8124ki7vs659jla6494xgcq1k678xgdkzkyd0ja3vmhd";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/l3mon4d3/luasnip/";
@@ -5400,12 +5436,12 @@ final: prev:
 
   lush-nvim = buildNeovimPlugin {
     pname = "lush.nvim";
-    version = "2023-12-29";
+    version = "2024-01-23";
     src = fetchFromGitHub {
       owner = "rktjmp";
       repo = "lush.nvim";
-      rev = "e8a58f36c256af65cda36878f6f2024a612154c3";
-      sha256 = "0f6lmy754d7bxjznzqcl2c45d54cxv3y4sck7sv15vl6c75m29d0";
+      rev = "2e8d34e748642621d761a65e3c2a198154b914e8";
+      sha256 = "0v98vaz7d2b5fj61afhhcbrhfjri0s9n6kqg7yxa2qqfyqzd0x6v";
     };
     meta.homepage = "https://github.com/rktjmp/lush.nvim/";
   };
@@ -5472,48 +5508,48 @@ final: prev:
 
   marks-nvim = buildVimPlugin {
     pname = "marks.nvim";
-    version = "2023-02-25";
+    version = "2024-01-07";
     src = fetchFromGitHub {
       owner = "chentoast";
       repo = "marks.nvim";
-      rev = "76aca5069c5ce5c0099e30168649e6393e494f26";
-      sha256 = "1m20a1sl9dhsdh981vf3gzi0fx9lacr147kh24v5p54ami9ch0l7";
+      rev = "74e8d01b2a2131b6e46354cffc553aa7f81bcf5b";
+      sha256 = "0hi4sp39gxj62swm325a5s25qv310wxj9amkdghdqmrg6nlcwyz2";
     };
     meta.homepage = "https://github.com/chentoast/marks.nvim/";
   };
 
   mason-lspconfig-nvim = buildVimPlugin {
     pname = "mason-lspconfig.nvim";
-    version = "2023-12-21";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "williamboman";
       repo = "mason-lspconfig.nvim";
-      rev = "56e435e09f8729af2d41973e81a0db440f8fe9c9";
-      sha256 = "1n0r3vg2wyz8i4yvybxd15x7yn53ynkngbk9qvacm8j0m73lgq0v";
+      rev = "b9084b1f42f790d6230dc66dbcb6bcc35b148552";
+      sha256 = "0r8idwgaa2w1ijxkgav2p3bbmka8mm3cihnwljgqc6k5cydbyc6j";
     };
     meta.homepage = "https://github.com/williamboman/mason-lspconfig.nvim/";
   };
 
   mason-tool-installer-nvim = buildVimPlugin {
     pname = "mason-tool-installer.nvim";
-    version = "2023-12-02";
+    version = "2024-01-15";
     src = fetchFromGitHub {
       owner = "WhoIsSethDaniel";
       repo = "mason-tool-installer.nvim";
-      rev = "8b70e7f1e0a4119c1234c3bde4a01c241cabcc74";
-      sha256 = "1jxk8hz4p84f725f35hdkqnk6dnkanly86k89n7p551qwjs21mv0";
+      rev = "bf0f4f8062d3acbe0afcc61db01a4d19d96310e4";
+      sha256 = "1kawdvc1sk8drk2lkgj4zy3hbhbcyn9j6ahnzxwi7jlw9p3j3cmk";
     };
     meta.homepage = "https://github.com/WhoIsSethDaniel/mason-tool-installer.nvim/";
   };
 
   mason-nvim = buildVimPlugin {
     pname = "mason.nvim";
-    version = "2023-12-29";
+    version = "2024-01-22";
     src = fetchFromGitHub {
       owner = "williamboman";
       repo = "mason.nvim";
-      rev = "a09da6ac634926a299dd439da08bdb547a8ca011";
-      sha256 = "0wkgzsmnc7zvv9aa4r0m74n732gws68868kjzpsrh6xfhy98pydb";
+      rev = "9c9416817c9f4e6f333c749327a1ed5355cfab61";
+      sha256 = "146p31z37kixchad2rrdndx6wmnfb354i34qhwwjc6xg5jqc1x9i";
     };
     meta.homepage = "https://github.com/williamboman/mason.nvim/";
   };
@@ -5532,12 +5568,12 @@ final: prev:
 
   material-nvim = buildVimPlugin {
     pname = "material.nvim";
-    version = "2023-12-13";
+    version = "2024-01-22";
     src = fetchFromGitHub {
       owner = "marko-cerovac";
       repo = "material.nvim";
-      rev = "60416124a07a3358f3b93915092db50fcb712b41";
-      sha256 = "160ycm9dh95r240jgz6wgfqgmi2i6wxwf32jq7348jabxbl3n7si";
+      rev = "7cf05c682044a528510cc41135d83f52e4356f15";
+      sha256 = "1y7906y3c88sxcy4fccjvigy5vmxxllr45c6kg8w55404jaavhvi";
     };
     meta.homepage = "https://github.com/marko-cerovac/material.nvim/";
   };
@@ -5604,12 +5640,12 @@ final: prev:
 
   mini-nvim = buildVimPlugin {
     pname = "mini.nvim";
-    version = "2023-12-29";
+    version = "2024-01-23";
     src = fetchFromGitHub {
       owner = "echasnovski";
       repo = "mini.nvim";
-      rev = "40086c0a646100c766e8e05cd6e7d75bb1ca37de";
-      sha256 = "1sfddbrjig1zv56qdrrrl9j69jkbxdlk97xirq8256hnvn04qkxk";
+      rev = "1cd8d7e8318071eddc536815f5cafe50b012ac29";
+      sha256 = "03gpcx09a53w73bf4kyhk5xa764bxcaaymwrnw1jr0yqinyz7j62";
     };
     meta.homepage = "https://github.com/echasnovski/mini.nvim/";
   };
@@ -5664,12 +5700,12 @@ final: prev:
 
   modicator-nvim = buildVimPlugin {
     pname = "modicator.nvim";
-    version = "2023-11-13";
+    version = "2024-01-25";
     src = fetchFromGitHub {
       owner = "mawkler";
       repo = "modicator.nvim";
-      rev = "d22c02c007170ab432ca3e166a1da56297767e87";
-      sha256 = "0pvx8bsl4623mx4fgym993dnws62vfnaz90mrcfp7kska3p1d4p2";
+      rev = "81f0e320d63e2bb59219b9de8dc244e856412020";
+      sha256 = "18dkiksnnrxhzisarrxzza3lyankw6h3zf1dvzcb6rbbmn946bz5";
     };
     meta.homepage = "https://github.com/mawkler/modicator.nvim/";
   };
@@ -5700,24 +5736,24 @@ final: prev:
 
   molten-nvim = buildVimPlugin {
     pname = "molten-nvim";
-    version = "2024-01-03";
+    version = "2024-01-20";
     src = fetchFromGitHub {
       owner = "benlubas";
       repo = "molten-nvim";
-      rev = "db6f0059fef45d334b47160fea461823c2242311";
-      sha256 = "0a43yzjqvdr6ka628j289jgffyvsq4c45gzgm0fzr0ckjrzq9hi2";
+      rev = "4a3980f74742ac6f151cc00e444e74fc02b799a2";
+      sha256 = "081x575151glxz0lfpif3msdzx0wjr9730rwj4ynkavjj5fcx9s3";
     };
     meta.homepage = "https://github.com/benlubas/molten-nvim/";
   };
 
   monokai-pro-nvim = buildVimPlugin {
     pname = "monokai-pro.nvim";
-    version = "2023-12-08";
+    version = "2024-01-23";
     src = fetchFromGitHub {
       owner = "loctvl842";
       repo = "monokai-pro.nvim";
-      rev = "6e7ce88ab4ddfcdeac65161d233a43e906940a0c";
-      sha256 = "1ifvas0zfyw69a4n0hkp1m0866fh42vmmli0hnbjlls347bj3s98";
+      rev = "c2fe71f5b47ff5042053dc74cf8a849d662f2275";
+      sha256 = "00p0y008w07c5yd3aqczxiidl0x269fsblg3lnjd4xxshjhpdsp9";
     };
     meta.homepage = "https://github.com/loctvl842/monokai-pro.nvim/";
   };
@@ -6012,12 +6048,12 @@ final: prev:
 
   neo-tree-nvim = buildVimPlugin {
     pname = "neo-tree.nvim";
-    version = "2024-01-02";
+    version = "2024-01-21";
     src = fetchFromGitHub {
       owner = "nvim-neo-tree";
       repo = "neo-tree.nvim";
-      rev = "51d86e259bb93bfae4c027eb2bd56de0b1a11b30";
-      sha256 = "0l84cs26nminjk0hahkw76gqqp53f62khh7jqqanc6aljwcf974h";
+      rev = "e578fe7a5832421b0d2c5b3c0a7a1e40e0f6a47a";
+      sha256 = "0s0j67zv6hzj4fsa7kp5rkbbgcvx7n7hf7vx14v8lwaz139lml5w";
     };
     meta.homepage = "https://github.com/nvim-neo-tree/neo-tree.nvim/";
   };
@@ -6036,48 +6072,48 @@ final: prev:
 
   neoconf-nvim = buildVimPlugin {
     pname = "neoconf.nvim";
-    version = "2023-11-04";
+    version = "2024-01-22";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "neoconf.nvim";
-      rev = "64437787dba70fce50dad7bfbb97d184c5bc340f";
-      sha256 = "1bwwjnn10b4spvcvdjqwi28zx7ghzvy3q9wspipp12kfvcmdfnbc";
+      rev = "cfc29315288515849aa54c05828d49f01f033b66";
+      sha256 = "0h642cscysznr4rxzch4kq99l7f2kgdxyiibws844w1wsail1zqx";
     };
     meta.homepage = "https://github.com/folke/neoconf.nvim/";
   };
 
   neodark-vim = buildVimPlugin {
     pname = "neodark.vim";
-    version = "2023-07-15";
+    version = "2024-01-12";
     src = fetchFromGitHub {
       owner = "KeitaNakamura";
       repo = "neodark.vim";
-      rev = "2488bf42b197cb09f7807e35a58d3fe56ef1776b";
-      sha256 = "0ihkhhkgqvsm67kx41mr8zrir5wkk43pnq4kd8nbl467m1k88nxa";
+      rev = "57b559faa535215c0466afd451f0114626e70c85";
+      sha256 = "0psswsvlcmj0p8qcgy201ki81y74nir42zfn8bbnlzpil2ddp0kj";
     };
     meta.homepage = "https://github.com/KeitaNakamura/neodark.vim/";
   };
 
   neodev-nvim = buildVimPlugin {
     pname = "neodev.nvim";
-    version = "2024-01-02";
+    version = "2024-01-25";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "neodev.nvim";
-      rev = "2a8630847dbb93455936156c0689678e4eaee319";
-      sha256 = "0pkij82csfqqf8d2zw0ylplhvmg8bqgj8ahmzsw6q7gms5qyqli4";
+      rev = "3408a4daeca5ff8f41cb2c668b6d8fcc665f793a";
+      sha256 = "18rgw2jlwyyc586ajrrkhgj6ddnz784ijjxjk73007icdsychyh6";
     };
     meta.homepage = "https://github.com/folke/neodev.nvim/";
   };
 
   neoformat = buildVimPlugin {
     pname = "neoformat";
-    version = "2023-12-28";
+    version = "2024-01-10";
     src = fetchFromGitHub {
       owner = "sbdchd";
       repo = "neoformat";
-      rev = "dd12a541254246d4b0abfb1c7a5989773c4f0359";
-      sha256 = "1xiaah7dck96akrswnf9gskdcaiqm1fsiixmqg8nzfrgwb0f1dms";
+      rev = "209b56a00fc0206d81db768b121b94d0daf48b64";
+      sha256 = "1ii10q91l78c1hbmz0p0jv7vqpgz69rbklznzckrbia8mqz416yk";
     };
     meta.homepage = "https://github.com/sbdchd/neoformat/";
   };
@@ -6096,12 +6132,12 @@ final: prev:
 
   neogit = buildVimPlugin {
     pname = "neogit";
-    version = "2024-01-02";
+    version = "2024-01-22";
     src = fetchFromGitHub {
       owner = "NeogitOrg";
       repo = "neogit";
-      rev = "18366c64b0997167a1832056c4c0e1ac30da6e62";
-      sha256 = "0q7xb94bdcjdnr25wzl7r4v8rl50mkfr24wvkb7srickmxayppv8";
+      rev = "ce0c369ccdba3f644a3b28f4c053421f435352c9";
+      sha256 = "0zvs6ygghz786fs436pladaml57mfb28lfx0xciwdrxfcd25rmf0";
     };
     meta.homepage = "https://github.com/NeogitOrg/neogit/";
   };
@@ -6156,24 +6192,24 @@ final: prev:
 
   neorepl-nvim = buildVimPlugin {
     pname = "neorepl.nvim";
-    version = "2022-11-07";
+    version = "2024-01-03";
     src = fetchFromGitHub {
       owner = "ii14";
       repo = "neorepl.nvim";
-      rev = "bc819bb42edca9c4a6b6e5d00f09f94a49c3b735";
-      sha256 = "05fd3ygqpw5vyqgwc7iwbm8a7y70fl438khp6lz62bcsdd28yirs";
+      rev = "e60b114217248907a3a1d27bab9988a092865ee0";
+      sha256 = "11h6r6929g15mg1sdclim1fmnw68sv90z3qjpxl46s0yvffhl3zd";
     };
     meta.homepage = "https://github.com/ii14/neorepl.nvim/";
   };
 
   neorg = buildVimPlugin {
     pname = "neorg";
-    version = "2023-12-28";
+    version = "2024-01-21";
     src = fetchFromGitHub {
       owner = "nvim-neorg";
       repo = "neorg";
-      rev = "a489e7c4f9d7edb3caa04250d07bb6c6a5b9b890";
-      sha256 = "0illvp618s0xrdb28rml6p753djmy664iw90sc2ayqry5n78aiww";
+      rev = "28cbafbc0cde316d8e2618ff26377200225e9393";
+      sha256 = "1z1ir56mlwaay20x7yqdhkrj2nl39xhd63maims68jam59l55lq9";
     };
     meta.homepage = "https://github.com/nvim-neorg/neorg/";
   };
@@ -6240,24 +6276,24 @@ final: prev:
 
   neotest = buildVimPlugin {
     pname = "neotest";
-    version = "2023-12-22";
+    version = "2024-01-25";
     src = fetchFromGitHub {
       owner = "nvim-neotest";
       repo = "neotest";
-      rev = "6aa6e4529a4a125b49c48541b97ba146ceee2441";
-      sha256 = "1rljzxqklwijc9bhb02s5rzn655nv7fm0lzb532wf559wvd2q3kq";
+      rev = "73043d666780e35185a77589e01bec96a52db910";
+      sha256 = "1aj4zrp21h7h77sw70l2g3spkgzl5vb24vv2halrfrqms7jfaaqf";
     };
     meta.homepage = "https://github.com/nvim-neotest/neotest/";
   };
 
   neotest-dart = buildVimPlugin {
     pname = "neotest-dart";
-    version = "2023-08-27";
+    version = "2024-01-10";
     src = fetchFromGitHub {
       owner = "sidlatau";
       repo = "neotest-dart";
-      rev = "178c62282d5fa82f3d564b3c256b4d316804da67";
-      sha256 = "14305ynm3pf6lx0gym40wc1wcphyja1i21lvdnz5yh65x512z2nj";
+      rev = "b776e86c08b1cfd23fd49c337214d9ea67bb6ccc";
+      sha256 = "0x30v0dfi7d1940ga0qnbn9sidy0x6wy58lbvnpb3v1ig24p435y";
     };
     meta.homepage = "https://github.com/sidlatau/neotest-dart/";
   };
@@ -6313,12 +6349,12 @@ final: prev:
 
   neotest-haskell = buildVimPlugin {
     pname = "neotest-haskell";
-    version = "2023-12-24";
+    version = "2024-01-15";
     src = fetchFromGitHub {
       owner = "MrcJkb";
       repo = "neotest-haskell";
-      rev = "b1e23c611bca5bd9bddf00546c62042ff057f0ac";
-      sha256 = "11796pg3059lyn9v2xppm4y1kc0pwfy87r6d0a62wvn1ahg9s0m2";
+      rev = "25c5d7c8619abe9dece137aacf2abe9d38995fad";
+      sha256 = "06xpqvrxx9n2yn0mrbk90mhwhn42gbbwl7n73g5dn5y1krkk50hn";
     };
     meta.homepage = "https://github.com/MrcJkb/neotest-haskell/";
   };
@@ -6373,12 +6409,12 @@ final: prev:
 
   neotest-python = buildVimPlugin {
     pname = "neotest-python";
-    version = "2023-12-22";
+    version = "2024-01-15";
     src = fetchFromGitHub {
       owner = "nvim-neotest";
       repo = "neotest-python";
-      rev = "86ac2bbc8a4da3f203e56d9303d6ed1d7e50c1f6";
-      sha256 = "00gh7lv1syjry7zfjd74p3jn63qsn0slqss1wj9hb07swcdfr600";
+      rev = "2e83d2bc00acbcc1fd529dbf0a0e677cabfe6b50";
+      sha256 = "1xpd08mrw7jlgl7ciph9nxni98pa6x27va7ys7xapkkzc1bym1r2";
     };
     meta.homepage = "https://github.com/nvim-neotest/neotest-python/";
   };
@@ -6397,12 +6433,12 @@ final: prev:
 
   neotest-rust = buildVimPlugin {
     pname = "neotest-rust";
-    version = "2024-01-03";
+    version = "2024-01-25";
     src = fetchFromGitHub {
       owner = "rouge8";
       repo = "neotest-rust";
-      rev = "3c06f239ad260f02c8678141e08b57d20fbe2c55";
-      sha256 = "0gplrxwc0h2rsm5aii6aqj82qikwdmslv3yxrxg58dzp63198pc6";
+      rev = "d945ccc5041ff02b86313cc5d02affd39f8e1c3f";
+      sha256 = "00194ldhg9m2w5mr0wzcvz7d7icjb2ym0plqzhh4yga0iipqsdvb";
     };
     meta.homepage = "https://github.com/rouge8/neotest-rust/";
   };
@@ -6433,24 +6469,24 @@ final: prev:
 
   neotest-vitest = buildVimPlugin {
     pname = "neotest-vitest";
-    version = "2023-12-02";
+    version = "2024-01-16";
     src = fetchFromGitHub {
       owner = "marilari88";
       repo = "neotest-vitest";
-      rev = "15972c4791b3d47df82311047835803a072c1da6";
-      sha256 = "0l6x6b2flzr4591002srin58bls26gk58p3rqr8mjcjrm3znbsya";
+      rev = "87e91bfd9419a8c74bf0d105e2ae31b9692daf0b";
+      sha256 = "0kfbb9rywkfaz7v2ls7dnncbg221ayyrlp1cz9sgbqib8627pmmz";
     };
     meta.homepage = "https://github.com/marilari88/neotest-vitest/";
   };
 
   neovim-ayu = buildVimPlugin {
     pname = "neovim-ayu";
-    version = "2023-06-29";
+    version = "2024-01-08";
     src = fetchFromGitHub {
       owner = "Shatur";
       repo = "neovim-ayu";
-      rev = "76dbf939b38e03ac5f9bd711ab3e434999f715c8";
-      sha256 = "1rkhjz24wfc6am1r9rqk0cndw82lqjaxxpmvfqjw1rdi2vb9xpqd";
+      rev = "6463d39253bb70e2b867fce57f9e7174f657bd1b";
+      sha256 = "1xhk1qdlk10paqaf8np7z52zyl2k0x463llh14gxbc58iraz5g95";
     };
     meta.homepage = "https://github.com/Shatur/neovim-ayu/";
   };
@@ -6505,12 +6541,12 @@ final: prev:
 
   nerdtree = buildVimPlugin {
     pname = "nerdtree";
-    version = "2024-01-01";
+    version = "2024-01-09";
     src = fetchFromGitHub {
       owner = "preservim";
       repo = "nerdtree";
-      rev = "aa29fbe481a4603e92240e6b0622aca97348532b";
-      sha256 = "0q5qvb6v4g3a9v5mff1r57gn0w3p5dvycmmml4fp342frcc0ykr0";
+      rev = "bc606c43e2d8ef0987d6d3d1ec8c17360a2e29d5";
+      sha256 = "1c3pxa49wy2rgir0s87mfmb0h2wi0jmm54p6zmnm8x5v7j7n1bvp";
     };
     meta.homepage = "https://github.com/preservim/nerdtree/";
   };
@@ -6529,12 +6565,12 @@ final: prev:
 
   netman-nvim = buildVimPlugin {
     pname = "netman.nvim";
-    version = "2023-04-19";
+    version = "2024-01-05";
     src = fetchFromGitHub {
       owner = "miversen33";
       repo = "netman.nvim";
-      rev = "cd5b2c4802d2014df1bc1d07c37aa2271e6ba725";
-      sha256 = "1kwxy0ccwjji4gc76n0lv7zd4maldxddhrahmfwxana1aqwyc8sc";
+      rev = "6f1e2687d6e534e588d8281b987f33c3f0870e8a";
+      sha256 = "0grdfvd222b4992c3g6wj86jpy73v29ihbz4k8qs23wqgmz7x9r2";
     };
     meta.homepage = "https://github.com/miversen33/netman.nvim/";
   };
@@ -6565,12 +6601,12 @@ final: prev:
 
   nfnl = buildVimPlugin {
     pname = "nfnl";
-    version = "2023-12-30";
+    version = "2024-01-21";
     src = fetchFromGitHub {
       owner = "Olical";
       repo = "nfnl";
-      rev = "cff757857c1bc95769af2016762061269b7290b6";
-      sha256 = "0ya95ywydxmdgdvwzfkplzz0ikwazadr6v1db4l0qnkksajxf7v0";
+      rev = "7ef3da23c5b7f9e08ca7e1f9807c1a5a93e2f33f";
+      sha256 = "0p0cfds0z409c5ydn8j7ycsh9jmaz0a7izakgkmg8lpqihvw6dc2";
     };
     meta.homepage = "https://github.com/Olical/nfnl/";
   };
@@ -6589,12 +6625,12 @@ final: prev:
 
   nightfox-nvim = buildVimPlugin {
     pname = "nightfox.nvim";
-    version = "2023-12-21";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "EdenEast";
       repo = "nightfox.nvim";
-      rev = "fcf699bef2b2731c840a5746113c3dd31a9cb813";
-      sha256 = "1dvl2ykg2a6dw7wjlmd610bf0d71y0zcrwni283z8mwq88aazqr4";
+      rev = "7e9487875dc5f69a2fd6f60d3a3ef4fb457b57c1";
+      sha256 = "0yzx95mkgq37hylc9ksca7bds0ny06x8hphin28k4pnwi0vqcf3s";
     };
     meta.homepage = "https://github.com/EdenEast/nightfox.nvim/";
   };
@@ -6649,36 +6685,36 @@ final: prev:
 
   no-neck-pain-nvim = buildVimPlugin {
     pname = "no-neck-pain.nvim";
-    version = "2023-12-24";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "shortcuts";
       repo = "no-neck-pain.nvim";
-      rev = "b305821ca45897db6276e9ae5893747bb24040c7";
-      sha256 = "1gwqfasnjcqd1x6r6lc7kix5psj8zr1zbm5g11mkbz33iq6gxvdb";
+      rev = "fc3cc9012d9720aca3203702447caa59bd93f1a6";
+      sha256 = "0flml2v5znlgffgn59k82dlz84d705mg8rxrhs8sciqr7jqxk1xk";
     };
     meta.homepage = "https://github.com/shortcuts/no-neck-pain.nvim/";
   };
 
   noice-nvim = buildVimPlugin {
     pname = "noice.nvim";
-    version = "2023-10-25";
+    version = "2024-01-22";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "noice.nvim";
-      rev = "92433164e2f7118d4122c7674c3834d9511722ba";
-      sha256 = "0cs7hnjgv1np3pmz0li9g4m01i87z360x0fpbh4aqck4k8mhjn7f";
+      rev = "bf67d70bd7265d075191e7812d8eb42b9791f737";
+      sha256 = "0f1rx88zjk062w8d1wqk8m1yzpyp20x781s29kdsmr813p09vl4l";
     };
     meta.homepage = "https://github.com/folke/noice.nvim/";
   };
 
   none-ls-nvim = buildVimPlugin {
     pname = "none-ls.nvim";
-    version = "2024-01-03";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "nvimtools";
       repo = "none-ls.nvim";
-      rev = "fbdcbf8e152529af846b3a333f039751829b84c2";
-      sha256 = "1bvmxz3kkrvir1gzwm7msapm1s7g5dyhmmb3j9p4fdz58ry2yb27";
+      rev = "a311c7cc8f17543143a7482cdbe3a384c371d56a";
+      sha256 = "1fk52awkplp2c1bf7aa8whs6qaxvphry1crp515b2yz0ik8ykqdk";
     };
     meta.homepage = "https://github.com/nvimtools/none-ls.nvim/";
   };
@@ -6733,12 +6769,12 @@ final: prev:
 
   nui-nvim = buildNeovimPlugin {
     pname = "nui.nvim";
-    version = "2023-12-28";
+    version = "2024-01-04";
     src = fetchFromGitHub {
       owner = "MunifTanjim";
       repo = "nui.nvim";
-      rev = "80445d015d2b5f9af0d9e8bce63d303bc86eda8a";
-      sha256 = "070cgy15s702cjfq9c4rancd7y4r0q9179lzl566dnfkm7d2ffdz";
+      rev = "35da9ca1de0fc4dda96c2e214d93d363c145f418";
+      sha256 = "0ix9dshl7hxyygfyjg8ki0swm0ysbhm42aah5cbbhpnd00hv8qa9";
     };
     meta.homepage = "https://github.com/MunifTanjim/nui.nvim/";
   };
@@ -6769,12 +6805,12 @@ final: prev:
 
   nvchad = buildVimPlugin {
     pname = "nvchad";
-    version = "2024-01-02";
+    version = "2024-01-19";
     src = fetchFromGitHub {
       owner = "nvchad";
       repo = "nvchad";
-      rev = "c2ec317b1bbcac75b7c258759b62c65261ab5d5d";
-      sha256 = "1sndbih05mm305r0z3xhh068kqhrgjh575bzw6rmg5sk7bfxcfcq";
+      rev = "282a23f4469ee305e05ec7a108a728ee389d87fb";
+      sha256 = "0b222vc3xqhaa6abkd9w3gd8l50ddrb06lsxwhw1sa9sqssv0bc1";
     };
     meta.homepage = "https://github.com/nvchad/nvchad/";
   };
@@ -6817,24 +6853,24 @@ final: prev:
 
   nvim-autopairs = buildVimPlugin {
     pname = "nvim-autopairs";
-    version = "2023-12-20";
+    version = "2024-01-22";
     src = fetchFromGitHub {
       owner = "windwp";
       repo = "nvim-autopairs";
-      rev = "9fd41181693dd4106b3e414a822bb6569924de81";
-      sha256 = "1xwvw5j81rx7q5jmv14fnphxsjk9anzglf10j8ai8217gc9h530z";
+      rev = "096d0baecc34f6c5d8a6dd25851e9d5ad338209b";
+      sha256 = "167a5d8rycg703f1x9q7g9bavchfv8cj3qxvq721cf9sz1jniip2";
     };
     meta.homepage = "https://github.com/windwp/nvim-autopairs/";
   };
 
   nvim-base16 = buildVimPlugin {
     pname = "nvim-base16";
-    version = "2023-11-06";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "RRethy";
       repo = "nvim-base16";
-      rev = "010bedf0b7c01ab4d4e4e896a8527d97c222351d";
-      sha256 = "0zy2p9gdyw5kz256ify79s72bc53pq1d3n813nzppxlggkndyn3v";
+      rev = "fc26d79fb3420eb3bc6e036f23671e25bfe227d6";
+      sha256 = "1fqhngnwas2lykrz5yjw68nfwzy9f0a6f4vmk97jc54npwn5qgkc";
     };
     meta.homepage = "https://github.com/RRethy/nvim-base16/";
   };
@@ -6913,12 +6949,12 @@ final: prev:
 
   nvim-cokeline = buildVimPlugin {
     pname = "nvim-cokeline";
-    version = "2023-12-30";
+    version = "2024-01-07";
     src = fetchFromGitHub {
       owner = "willothy";
       repo = "nvim-cokeline";
-      rev = "0bb80b0c04c8405d76afb901e753ccd35f336a61";
-      sha256 = "1sp3lnpfdpyah22q791cg45nljrs7p1bpnzhv7zq6m0ars3f651g";
+      rev = "a62eaff75c59da2ca261fefc2992e1cac04bd30e";
+      sha256 = "0l4wfxiz4c7xg9m25lyv0xlrwgcyx2951x9dirqchpaf3ja6a0d4";
     };
     meta.homepage = "https://github.com/willothy/nvim-cokeline/";
   };
@@ -7009,12 +7045,12 @@ final: prev:
 
   nvim-dap = buildVimPlugin {
     pname = "nvim-dap";
-    version = "2023-12-20";
+    version = "2024-01-13";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-dap";
-      rev = "f0dca670fa059eb89dda8869a6310c804241345c";
-      sha256 = "0zdsr98abzyiw7887dgvjh3i3bf95vw3lg4d384rr6zrxwh03kjh";
+      rev = "9adbfdca13afbe646d09a8d7a86d5d031fb9c5a5";
+      sha256 = "1pwzw1v314m0gbpr77y48w1qrpappqw1vmvkl7qm4dz02rvkh5zm";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-dap/";
   };
@@ -7045,12 +7081,12 @@ final: prev:
 
   nvim-dap-ui = buildVimPlugin {
     pname = "nvim-dap-ui";
-    version = "2023-09-10";
+    version = "2024-01-22";
     src = fetchFromGitHub {
       owner = "rcarriga";
       repo = "nvim-dap-ui";
-      rev = "34160a7ce6072ef332f350ae1d4a6a501daf0159";
-      sha256 = "18y9dmh525jzj31gqzqs8q3jgd93jdmsy2xip7j4f7sdpb68zm91";
+      rev = "d845ebd798ad1cf30aa4abd4c4eff795cdcfdd4f";
+      sha256 = "1by56ffghig930r0cak95h0gxxrf78jwr3f2fxqziyz32dvi5mp2";
     };
     meta.homepage = "https://github.com/rcarriga/nvim-dap-ui/";
   };
@@ -7067,6 +7103,18 @@ final: prev:
     meta.homepage = "https://github.com/theHamsta/nvim-dap-virtual-text/";
   };
 
+  nvim-docs-view = buildVimPlugin {
+    pname = "nvim-docs-view";
+    version = "2024-01-20";
+    src = fetchFromGitHub {
+      owner = "amrbashir";
+      repo = "nvim-docs-view";
+      rev = "78d88bca16f32a430572758677f9246f6d7f7b94";
+      sha256 = "1sqg4bh6xkq5d2rg97g2350iil9mcl4wh12ygbj93sj5m0jfp4rp";
+    };
+    meta.homepage = "https://github.com/amrbashir/nvim-docs-view/";
+  };
+
   nvim-expand-expr = buildVimPlugin {
     pname = "nvim-expand-expr";
     version = "2021-08-14";
@@ -7129,24 +7177,24 @@ final: prev:
 
   nvim-highlight-colors = buildVimPlugin {
     pname = "nvim-highlight-colors";
-    version = "2024-01-02";
+    version = "2024-01-25";
     src = fetchFromGitHub {
       owner = "brenoprata10";
       repo = "nvim-highlight-colors";
-      rev = "c6fe75e3b3193818d94042de1a21f3e62252e994";
-      sha256 = "1q788w2pi1idrs13qqbisf0kcpjmhkvi0baa49j2bljsmd2r1hp4";
+      rev = "cb3bdad6501d6314fe0ed00eee883b98fc0ec8db";
+      sha256 = "0hh6cccs32g7b1ashz7kjmrcgfdjrd5dw3as0b3d5v04shm0vd17";
     };
     meta.homepage = "https://github.com/brenoprata10/nvim-highlight-colors/";
   };
 
   nvim-highlite = buildVimPlugin {
     pname = "nvim-highlite";
-    version = "2023-12-27";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "Iron-E";
       repo = "nvim-highlite";
-      rev = "75377a68208b72e2c775cffec8c206750d142219";
-      sha256 = "01i9yjvyyw74ixbsl801a75f3mz1gjr8bxfbs9vd8zgznwq5ivzj";
+      rev = "6a69959d5a945970cd59b32e19428c4732d7554a";
+      sha256 = "01qw3qaq94vsawm3nnwwrf0x7mra8wqprgw1nc2njzzygqkhivqw";
     };
     meta.homepage = "https://github.com/Iron-E/nvim-highlite/";
   };
@@ -7248,24 +7296,24 @@ final: prev:
 
   nvim-lilypond-suite = buildVimPlugin {
     pname = "nvim-lilypond-suite";
-    version = "2023-12-23";
+    version = "2024-01-18";
     src = fetchFromGitHub {
       owner = "martineausimon";
       repo = "nvim-lilypond-suite";
-      rev = "899097c248d5e6101735905ecf7d78eb4a48941a";
-      sha256 = "1npn61bc4nhf49li4pg0h5a6r9i03519v7v9kjb9hr3f1yjgzhlb";
+      rev = "2f2c420de6a466adfa1a13c1488262b43fcabb2c";
+      sha256 = "1gx0x8m7nm72f0vgg59qfn59prj1f9jcykdyhxgwcrzfhzqq9qfr";
     };
     meta.homepage = "https://github.com/martineausimon/nvim-lilypond-suite/";
   };
 
   nvim-lint = buildVimPlugin {
     pname = "nvim-lint";
-    version = "2024-01-02";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-lint";
-      rev = "4dbc7ec60b33b656f7c54bb945671a55b18699f2";
-      sha256 = "0kaqnqyfm9nxkrb911nmvkdv5jhv625dlmkx8i7p3sgyxhxyxj72";
+      rev = "8e5920f9ce9f24c283a2e64be5fe58d1d37d1744";
+      sha256 = "07vs24r8jglq9sjj5lz5k2ay0b5arg21cvvl54j2hl9nrl5fl2z4";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-lint/";
   };
@@ -7296,12 +7344,12 @@ final: prev:
 
   nvim-lspconfig = buildVimPlugin {
     pname = "nvim-lspconfig";
-    version = "2024-01-02";
+    version = "2024-01-20";
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "nvim-lspconfig";
-      rev = "ce0e625df61be77abe1340fbc9afe9ad39b31dd8";
-      sha256 = "1vcpl477g12fyl27bnnn6pp49ycgd8ca6g9g6x6g68d643478vcp";
+      rev = "8917d2c830e04bf944a699b8c41f097621283828";
+      sha256 = "0wiqy0k83qjh2y9r3rdm8jrrfmrwfm2729wrshxmxbdns0vjrmja";
     };
     meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
   };
@@ -7356,12 +7404,12 @@ final: prev:
 
   nvim-metals = buildVimPlugin {
     pname = "nvim-metals";
-    version = "2023-12-17";
+    version = "2024-01-15";
     src = fetchFromGitHub {
       owner = "scalameta";
       repo = "nvim-metals";
-      rev = "1e269f1f01e6b970603d51e9e044824d9d8114e7";
-      sha256 = "10qhb6jnbz0nzajzfk244783avy2pinw1ddrnfml1cfaaw6n9r9c";
+      rev = "d47287324d1e2efdb7aabde73fad5fd5b2b438bf";
+      sha256 = "1q963lj9bxx4iycgzrpsybmrpc7l4qq7nd3cl4iqrp8qkjqklqwn";
     };
     meta.homepage = "https://github.com/scalameta/nvim-metals/";
   };
@@ -7428,12 +7476,12 @@ final: prev:
 
   nvim-notify = buildVimPlugin {
     pname = "nvim-notify";
-    version = "2023-12-28";
+    version = "2024-01-15";
     src = fetchFromGitHub {
       owner = "rcarriga";
       repo = "nvim-notify";
-      rev = "ebcdd8219e2a2cbc0a4bef68002f6867f1fde269";
-      sha256 = "1fhahxyjl0nncg0xry5wyhgpv01snzw7balqczflf7zwh6ih2biw";
+      rev = "80b67b265530632505193553d05127ae7fe09ddd";
+      sha256 = "0spjp93s5zb2jyvj5is98kaargaxr11sb4dk3hc40p6nv78bq42s";
     };
     meta.homepage = "https://github.com/rcarriga/nvim-notify/";
   };
@@ -7524,12 +7572,12 @@ final: prev:
 
   nvim-scrollview = buildVimPlugin {
     pname = "nvim-scrollview";
-    version = "2023-12-24";
+    version = "2024-01-13";
     src = fetchFromGitHub {
       owner = "dstein64";
       repo = "nvim-scrollview";
-      rev = "6715dba4f0972beb47ad7f8915e2e89023f1c6a2";
-      sha256 = "0lfwp4fzq9hqpw1zxj4jv78f9na3wxf87078yqdiry7fdllndh6z";
+      rev = "2bc1d94174a977e7147e845156d3c4c12ac06b67";
+      sha256 = "0da1bb9ppk3klxlwrbfh48vl39a6pbpp1z2irwybnz24zanxb4bi";
     };
     meta.homepage = "https://github.com/dstein64/nvim-scrollview/";
   };
@@ -7548,12 +7596,12 @@ final: prev:
 
   nvim-snippy = buildVimPlugin {
     pname = "nvim-snippy";
-    version = "2023-11-12";
+    version = "2024-01-14";
     src = fetchFromGitHub {
       owner = "dcampos";
       repo = "nvim-snippy";
-      rev = "7c8f18e90cad4f56c4e22a49101668735639f286";
-      sha256 = "1mfjnzfg4z5hzribzadlmgjjihh5dx55swjrjljmgsbj7jn4nqws";
+      rev = "8e4e39a4bf5f8939fcf4898d1fba48d1d1f72303";
+      sha256 = "0ib8vlh2v3s93b15iv49yzx68bz4rhcgbapdp9cjxdlnvqzyf27y";
     };
     meta.homepage = "https://github.com/dcampos/nvim-snippy/";
   };
@@ -7596,12 +7644,12 @@ final: prev:
 
   nvim-surround = buildVimPlugin {
     pname = "nvim-surround";
-    version = "2023-12-04";
+    version = "2024-01-17";
     src = fetchFromGitHub {
       owner = "kylechui";
       repo = "nvim-surround";
-      rev = "633a0ab03159569a66b65671b0ffb1a6aed6cf18";
-      sha256 = "0svcw6rjrnjxh6i54a4nq8af5n3634gf30cycv3f95xywmn2h7m6";
+      rev = "0c02c52182a9c2a7fa7e122b4037f6408e98434a";
+      sha256 = "00cfnnz9hrr2hjvb6y58xwv6rsh0p6v7dw0ca60gx2313js10q08";
     };
     meta.homepage = "https://github.com/kylechui/nvim-surround/";
   };
@@ -7644,36 +7692,36 @@ final: prev:
 
   nvim-tree-lua = buildVimPlugin {
     pname = "nvim-tree.lua";
-    version = "2024-01-01";
+    version = "2024-01-21";
     src = fetchFromGitHub {
       owner = "nvim-tree";
       repo = "nvim-tree.lua";
-      rev = "f1b3e6a7eb92da492bd693257367d9256839ed3d";
-      sha256 = "183a5zrgw6sirryyqzphh06j3a42k2l0sx5ph2pxk3wi1cjh5v0g";
+      rev = "7bdb220d0fe604a77361e92cdbc7af1b8a412126";
+      sha256 = "1ij2prf826bp90i9ask2an0aih0nch5c4sax4awwwhpnhic3780h";
     };
     meta.homepage = "https://github.com/nvim-tree/nvim-tree.lua/";
   };
 
   nvim-treesitter = buildVimPlugin {
     pname = "nvim-treesitter";
-    version = "2024-01-02";
+    version = "2024-01-25";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter";
-      rev = "65ef62092ef997d2ecf68ede01a0afbda17808c3";
-      sha256 = "0i070pa16980ql031dgq9ybch7si4nrg4ypx50ka9b505wb0vlch";
+      rev = "cc908cfcd7258b2e5c1a9c583e2f3feda0caf23b";
+      sha256 = "0xp9gfcdpxbxf09s449w5dxpkbw5hin6fxzb67kfz18k7fhnwfrw";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
   };
 
   nvim-treesitter-context = buildVimPlugin {
     pname = "nvim-treesitter-context";
-    version = "2023-12-23";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter-context";
-      rev = "652ec514d6ba8bc4a3c2de76c855fe668e2c7196";
-      sha256 = "1y69c6hhmmzp8acx1ljhn8f7gicmxyxfqqyv02893czngvhkmqc3";
+      rev = "2972717355a18d5599e9162f48d6e3e584068bf9";
+      sha256 = "136yqfbgcjzy0k99h5zjrfdkcy5xpdqwdkvvc6x0ff4sw4mq0kgj";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-context/";
   };
@@ -7716,36 +7764,36 @@ final: prev:
 
   nvim-treesitter-textobjects = buildVimPlugin {
     pname = "nvim-treesitter-textobjects";
-    version = "2024-01-01";
+    version = "2024-01-14";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter-textobjects";
-      rev = "85b9d0cbd4ff901abcda862b50dbb34e0901848b";
-      sha256 = "0kz46g4j85vdbcg8vb1zswznwbd48qd8ywb8qz3qvirlifx659yq";
+      rev = "19a91a38b02c1c28c14e0ba468d20ae1423c39b2";
+      sha256 = "1g38yh7434sxbi270q8bddqiv61msaf4cj62ar0khjavzgxy41nc";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects/";
   };
 
   nvim-treesitter-textsubjects = buildVimPlugin {
     pname = "nvim-treesitter-textsubjects";
-    version = "2023-11-02";
+    version = "2024-01-15";
     src = fetchFromGitHub {
       owner = "RRethy";
       repo = "nvim-treesitter-textsubjects";
-      rev = "011c09784f1a95cf469a48c1993b664190440391";
-      sha256 = "1sik741s868ini18kqzndk3pdl44wzs8nra3sc3ggwi3ps9rs2qi";
+      rev = "55d11124c45e9bb506703f73e5775652ed5357e9";
+      sha256 = "0x8bm119dc5jjn7qjya1029cs7g97jfv6sr188nbsl25bfnygi5d";
     };
     meta.homepage = "https://github.com/RRethy/nvim-treesitter-textsubjects/";
   };
 
   nvim-ts-autotag = buildVimPlugin {
     pname = "nvim-ts-autotag";
-    version = "2023-12-10";
+    version = "2024-01-25";
     src = fetchFromGitHub {
       owner = "windwp";
       repo = "nvim-ts-autotag";
-      rev = "8515e48a277a2f4947d91004d9aa92c29fdc5e18";
-      sha256 = "0bmxkq919dlhblxc7bjsvy6206qq1szi022i8g9kjsvq13726p9v";
+      rev = "a65b202cfd08e0e69e531eab737205ff5bc082a4";
+      sha256 = "1wysb48l5dfqfqf6mr75jni7n078h1ab1bqyrrjr05sybn3lww8b";
     };
     meta.homepage = "https://github.com/windwp/nvim-ts-autotag/";
   };
@@ -7764,12 +7812,12 @@ final: prev:
 
   nvim-ufo = buildVimPlugin {
     pname = "nvim-ufo";
-    version = "2023-12-25";
+    version = "2024-01-13";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "nvim-ufo";
-      rev = "c6d88523f574024b788f1c3400c5d5b9bb1a0407";
-      sha256 = "0d3f3rrw08n3idibf5s59agnd4zyyssnrk3ff6pk1cfrp117pvxk";
+      rev = "b0741a647efd98d9abb6cb653e056d24a07e4581";
+      sha256 = "1bnyf422pf7y58a7v8zfx3w6w7ihzxchrix6rxxpypaivdp6say2";
     };
     meta.homepage = "https://github.com/kevinhwang91/nvim-ufo/";
   };
@@ -7788,12 +7836,12 @@ final: prev:
 
   nvim-web-devicons = buildVimPlugin {
     pname = "nvim-web-devicons";
-    version = "2023-12-31";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "nvim-tree";
       repo = "nvim-web-devicons";
-      rev = "cff25ce621e6d15fae0b0bfe38c00be50ce38468";
-      sha256 = "0k9cbci02asicpswzm6faw02l31p52vja0gmcgkk06k6pz6hal36";
+      rev = "b427ac5f9dff494f839e81441fb3f04a58cbcfbc";
+      sha256 = "13ywffn24wlqciy1fnisiqbgsg4h6nxf3wcd0v28kmk29wyzqkf3";
     };
     meta.homepage = "https://github.com/nvim-tree/nvim-web-devicons/";
   };
@@ -7836,12 +7884,12 @@ final: prev:
 
   nvim_context_vt = buildVimPlugin {
     pname = "nvim_context_vt";
-    version = "2023-08-26";
+    version = "2024-01-15";
     src = fetchFromGitHub {
       owner = "andersevenrud";
       repo = "nvim_context_vt";
-      rev = "a14f9292b4bd68ceed433fc513f287641816dc6d";
-      sha256 = "0rwnmifli01h5aakz440k3g136y3l5f3c16sdvd0k8q4xcdiibs1";
+      rev = "8f7b6b46292e0819290b0d368abc3366b8a163fc";
+      sha256 = "06njpi7zr0m7kwcrw2pwnhhmaij49p810bsdkav0ynkcszf60402";
     };
     meta.homepage = "https://github.com/andersevenrud/nvim_context_vt/";
   };
@@ -7872,12 +7920,12 @@ final: prev:
 
   obsidian-nvim = buildVimPlugin {
     pname = "obsidian.nvim";
-    version = "2024-01-03";
+    version = "2024-01-25";
     src = fetchFromGitHub {
       owner = "epwalsh";
       repo = "obsidian.nvim";
-      rev = "806e0267952b6543691e9b58cae43280ac0d7186";
-      sha256 = "02p0m4x4splm37aqiz9h1n3j35rkpzfg7w7vvr8a6mab9n1k9gqh";
+      rev = "5f469faab7bebc1ee30942eeebfdfdcbd7f2b411";
+      sha256 = "1abrd8zs1cmdw08m3vxlc6j2ay7kvchl53zx052lqps07is3b6ny";
     };
     meta.homepage = "https://github.com/epwalsh/obsidian.nvim/";
   };
@@ -7908,24 +7956,24 @@ final: prev:
 
   octo-nvim = buildVimPlugin {
     pname = "octo.nvim";
-    version = "2023-12-28";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "pwntester";
       repo = "octo.nvim";
-      rev = "b5371003f209764c9d1cc43cf20b6dc52961f0e8";
-      sha256 = "174imlbj4dwd2g7lwksl2m063fzyzkk4xk1pp4a9fff90vqxix83";
+      rev = "f77d214e5a67f1c1eb601a9c99418a5f7924af22";
+      sha256 = "04hsdz0ma7q4c7bs89si2hdjnds5rybagh7z1jnl8xc52kxf2lwk";
     };
     meta.homepage = "https://github.com/pwntester/octo.nvim/";
   };
 
   oil-nvim = buildVimPlugin {
     pname = "oil.nvim";
-    version = "2024-01-03";
+    version = "2024-01-22";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "oil.nvim";
-      rev = "a128e6f75c6a71b7b9ac7ea663949a5209771cd5";
-      sha256 = "0s9m7644kx9wpvf50kzpcamx0q4xclznzsksg7yxbqh44gm3lv2s";
+      rev = "bf753c3e3f8736939ad5597f92329dfe7b1df4f5";
+      sha256 = "02wjsfhhq8lrai18m3khv7sln070cmwgr7jqp537dwl47v4pq4z3";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/stevearc/oil.nvim/";
@@ -7969,12 +8017,12 @@ final: prev:
 
   onedark-nvim = buildVimPlugin {
     pname = "onedark.nvim";
-    version = "2023-12-06";
+    version = "2024-01-22";
     src = fetchFromGitHub {
       owner = "navarasu";
       repo = "onedark.nvim";
-      rev = "c5476a091b0f1b4e853db91c91ff941f848a1cdd";
-      sha256 = "1zg75v3cgm0f2yhy2pasvdd42jw33f0w1p140cj1dnrskhwbrl2j";
+      rev = "14e5de43cf1ff761c280d1ff5b9980897f5b46c7";
+      sha256 = "16c3hqpn11bqa39b02x5dn94ny5i3pkyn80gkrcdvibp7zdxjfwf";
     };
     meta.homepage = "https://github.com/navarasu/onedark.nvim/";
   };
@@ -7993,12 +8041,12 @@ final: prev:
 
   onedarkpro-nvim = buildVimPlugin {
     pname = "onedarkpro.nvim";
-    version = "2023-12-28";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "olimorris";
       repo = "onedarkpro.nvim";
-      rev = "44badbaa1c4408679adc6b6979b669540db3fb46";
-      sha256 = "1wbizvrwjhw32pg0fqm28fvma80v6yf29vsv5hjx30n1hdvihi9v";
+      rev = "e39ebd1d8062acd11b2bc0cfef8ce6d88d26c4f9";
+      sha256 = "1vaafhvfzcg1g2llb1swazfjy24safc57lkyxd6f0cdh0hxiykx6";
     };
     meta.homepage = "https://github.com/olimorris/onedarkpro.nvim/";
   };
@@ -8017,12 +8065,12 @@ final: prev:
 
   onenord-nvim = buildVimPlugin {
     pname = "onenord.nvim";
-    version = "2023-12-04";
+    version = "2024-01-20";
     src = fetchFromGitHub {
       owner = "rmehri01";
       repo = "onenord.nvim";
-      rev = "879bc64ea4678bf32d2bfda47c4e3a04af52a448";
-      sha256 = "1w45z9jy9ckplz1g0smyrbcdll27sqpc059a5r53y8nfb5abllnc";
+      rev = "c2219394f20ab4d256d7cf78d6c82dea75491a2a";
+      sha256 = "06dwlckfhvzgmfq13a6259krhs69z5r5yp4wqnwf17wvj80n1vvd";
     };
     meta.homepage = "https://github.com/rmehri01/onenord.nvim/";
   };
@@ -8077,12 +8125,12 @@ final: prev:
 
   orgmode = buildVimPlugin {
     pname = "orgmode";
-    version = "2023-12-28";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "nvim-orgmode";
       repo = "orgmode";
-      rev = "8040906d983ec7ec1e2aae7bd904ddfbeaff0470";
-      sha256 = "0z8wxi6j47lz95mqk8r0kga41icjmxg2gr9a1my0bypiiccdydby";
+      rev = "bd2a65179c814b40ca3073a282507a6a4f2355c1";
+      sha256 = "0biqfp0azb2y66zvqlp8y037c4raxhlnwvn89vdpp26d6isyzf93";
     };
     meta.homepage = "https://github.com/nvim-orgmode/orgmode/";
   };
@@ -8101,24 +8149,24 @@ final: prev:
 
   otter-nvim = buildVimPlugin {
     pname = "otter.nvim";
-    version = "2023-12-27";
+    version = "2024-01-22";
     src = fetchFromGitHub {
       owner = "jmbuhr";
       repo = "otter.nvim";
-      rev = "b4f4a1bcddfe91ed342c86c72e8d156780289552";
-      sha256 = "167v3ap2dj6npb9ikh4055724p49pipil5qqhp0br17ssybxhpdn";
+      rev = "151b75410e7b6041fb54f48443a80ecd518cb31e";
+      sha256 = "08bni1v06agsm9mpq01wdig3shc78i97a7mfbagzlws0wj38qgpq";
     };
     meta.homepage = "https://github.com/jmbuhr/otter.nvim/";
   };
 
   overseer-nvim = buildVimPlugin {
     pname = "overseer.nvim";
-    version = "2023-12-28";
+    version = "2024-01-07";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "overseer.nvim";
-      rev = "78e893394cef6efee05f31bd65f6dff08b0bac09";
-      sha256 = "1k68d3vz3s1cc3l3jfqp90w459hp2nvz7qy3kpzw4j7jxip2dgjv";
+      rev = "68a2d344cea4a2e11acfb5690dc8ecd1a1ec0ce0";
+      sha256 = "0miakpcc11yr7p7yaj9igakkv6dnyngra7p52hc26qm4mnq4ghwd";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/stevearc/overseer.nvim/";
@@ -8222,12 +8270,12 @@ final: prev:
 
   persistence-nvim = buildVimPlugin {
     pname = "persistence.nvim";
-    version = "2023-10-15";
+    version = "2024-01-19";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "persistence.nvim";
-      rev = "ad538bfd5336f1335cdb6fd4e0b0eebfa6e12f32";
-      sha256 = "0817bx2x7pshxxvdp3njq1q19xv84lxga2vdanx9zijfs8pid2y0";
+      rev = "4982499c1636eac254b72923ab826ee7827b3084";
+      sha256 = "0d71vmhgiakf4fpxnx56ymgmad7zww5nl1q2dhxg8pqkq7jdnh5n";
     };
     meta.homepage = "https://github.com/folke/persistence.nvim/";
   };
@@ -8318,12 +8366,12 @@ final: prev:
 
   plenary-nvim = buildNeovimPlugin {
     pname = "plenary.nvim";
-    version = "2023-11-30";
+    version = "2024-01-21";
     src = fetchFromGitHub {
       owner = "nvim-lua";
       repo = "plenary.nvim";
-      rev = "55d9fe89e33efd26f532ef20223e5f9430c8b0c0";
-      sha256 = "1f6vqqafk78njpl47xgsf8p199mmvw4h4b9axab9rl86fdlibikz";
+      rev = "663246936325062427597964d81d30eaa42ab1e4";
+      sha256 = "12cj7f0ghmd58ka9qc1c2qyd5x4cx97wd3avx5ny1x1gb8il013b";
     };
     meta.homepage = "https://github.com/nvim-lua/plenary.nvim/";
   };
@@ -8596,11 +8644,11 @@ final: prev:
 
   rainbow-delimiters-nvim = buildVimPlugin {
     pname = "rainbow-delimiters.nvim";
-    version = "2024-01-02";
+    version = "2024-01-22";
     src = fetchgit {
       url = "https://gitlab.com/HiPhish/rainbow-delimiters.nvim";
-      rev = "4a90ac83c7c8e0ba8a1b6af38bed6d5ee1b04e08";
-      sha256 = "18b2v0wg8jlvi9afjy2f654yh81c9aw79p3l2wpp9pcgf7jpqh5i";
+      rev = "35530b4ad48f01bdaa852da34e4de9930fb54c89";
+      sha256 = "04a36454m0vhwmq6xfg75252yhck54b58n18kshm9z0razsg4j7m";
     };
     meta.homepage = "https://gitlab.com/HiPhish/rainbow-delimiters.nvim";
   };
@@ -8679,12 +8727,12 @@ final: prev:
 
   refactoring-nvim = buildVimPlugin {
     pname = "refactoring.nvim";
-    version = "2023-11-08";
+    version = "2024-01-22";
     src = fetchFromGitHub {
       owner = "theprimeagen";
       repo = "refactoring.nvim";
-      rev = "156532476deb10b1b2a32cb38e1078b3f9951c42";
-      sha256 = "03xgyfzb2jsz7788k5h122jskq90irgg0m12csbrb2ysd727pyf8";
+      rev = "f4546284059f7dc01f65be93d03f6c850fd2aba1";
+      sha256 = "190438nnqw9nra3vrrpcfw2nib3s2jzld6iyd1kniarlggid4fwd";
     };
     meta.homepage = "https://github.com/theprimeagen/refactoring.nvim/";
   };
@@ -8739,12 +8787,12 @@ final: prev:
 
   rest-nvim = buildNeovimPlugin {
     pname = "rest.nvim";
-    version = "2023-12-02";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "rest-nvim";
       repo = "rest.nvim";
-      rev = "84e81a19ab24ccf05c9233d34d4dfce61c233abe";
-      sha256 = "1z6wkszd84xnqfhb1s59rggcipl9dmyxw21yrksg1q7hhcgq1abb";
+      rev = "3035cab370f806651704d5af5d18cbf0b0be0840";
+      sha256 = "0v04cc7mgzk7l8dznjqx7vaghh66c2x32zy0kjvwhyb64n07zwxv";
     };
     meta.homepage = "https://github.com/rest-nvim/rest.nvim/";
   };
@@ -8797,6 +8845,18 @@ final: prev:
     meta.homepage = "https://github.com/ron-rs/ron.vim/";
   };
 
+  roslyn-nvim = buildVimPlugin {
+    pname = "roslyn.nvim";
+    version = "2023-12-19";
+    src = fetchFromGitHub {
+      owner = "jmederosalvarado";
+      repo = "roslyn.nvim";
+      rev = "3e360ea5a15f3cf7ddef02ff003ef24244cdff3a";
+      sha256 = "06lqxv1qaqpz5s4zaqvnd975a1qsn0avdwyjv4pnka7z9l8fasyj";
+    };
+    meta.homepage = "https://github.com/jmederosalvarado/roslyn.nvim/";
+  };
+
   rspec-vim = buildVimPlugin {
     pname = "rspec.vim";
     version = "2020-08-20";
@@ -8847,12 +8907,12 @@ final: prev:
 
   rustaceanvim = buildNeovimPlugin {
     pname = "rustaceanvim";
-    version = "2023-12-31";
+    version = "2024-01-25";
     src = fetchFromGitHub {
       owner = "mrcjkb";
       repo = "rustaceanvim";
-      rev = "89bc93ef3fa5cea4fb57f1c1dcf1ca8a4b7d2834";
-      sha256 = "1nvy92nxzavz8i2xvyzcc36av8f2cj3fx492jahg7xakwgy0n5mq";
+      rev = "87fc16de1360cda02470824a17e0073967bf29f1";
+      sha256 = "0j3kysif91m3dldk5fwh8r4qxsakr6yk1q6iyi9wajnqdkgxkzcy";
     };
     meta.homepage = "https://github.com/mrcjkb/rustaceanvim/";
   };
@@ -8883,24 +8943,24 @@ final: prev:
 
   satellite-nvim = buildVimPlugin {
     pname = "satellite.nvim";
-    version = "2024-01-02";
+    version = "2024-01-12";
     src = fetchFromGitHub {
       owner = "lewis6991";
       repo = "satellite.nvim";
-      rev = "1a20861227eba8bf2d8282ab4ec5fc071e8b20e2";
-      sha256 = "0siibp2l0rixj98d5zzc7b2qxzb3pc9wwwlim8av6ml7ax7snd8l";
+      rev = "99610b77fe2e047d2e55d70a256bcf63953eb6d7";
+      sha256 = "1i7l2r3kwcv3sixsjlh0wyhafl60cam0bgygc483qrn4jgdxqhzy";
     };
     meta.homepage = "https://github.com/lewis6991/satellite.nvim/";
   };
 
   scnvim = buildVimPlugin {
     pname = "scnvim";
-    version = "2023-09-11";
+    version = "2024-01-11";
     src = fetchFromGitHub {
       owner = "davidgranstrom";
       repo = "scnvim";
-      rev = "f9e75bf21c77882625f89baa745d9bc4992742dc";
-      sha256 = "1yavx67b3zqz65z1wg4a0cdp64s2bgqh12jzg31rh02a8hb08ipw";
+      rev = "8929739543e5a4dc51d1af1d122bdbbb54e634b9";
+      sha256 = "1mm3lp5q6fvrlmq84637y7gjf04917xz8v1y0jkp2g4hi6v119nc";
     };
     meta.homepage = "https://github.com/davidgranstrom/scnvim/";
   };
@@ -9015,12 +9075,12 @@ final: prev:
 
   sg-nvim = buildVimPlugin {
     pname = "sg.nvim";
-    version = "2023-12-14";
+    version = "2024-01-15";
     src = fetchFromGitHub {
       owner = "sourcegraph";
       repo = "sg.nvim";
-      rev = "817f1f36e4c43f82e8e1cdfa4cf978dffa037255";
-      sha256 = "12zlrlqmny9f6y781pnlfn7qzac41mwx8a3qdmarrgns08hfp6l5";
+      rev = "691e138a86ccb4083c46ff62ab5eb53f9148696d";
+      sha256 = "0qgrycxckx7ffz0rkdj1nc7bfgl5n5mhcj56sn96vrhgbzlpli7q";
     };
     meta.homepage = "https://github.com/sourcegraph/sg.nvim/";
   };
@@ -9088,12 +9148,12 @@ final: prev:
 
   smart-splits-nvim = buildVimPlugin {
     pname = "smart-splits.nvim";
-    version = "2023-12-11";
+    version = "2024-01-11";
     src = fetchFromGitHub {
       owner = "mrjones2014";
       repo = "smart-splits.nvim";
-      rev = "f0003bf9c3f11b8b9209264f865b8864453ca926";
-      sha256 = "08wfsxz6a6lzd2brnr2z8zanfnkik494ggq6my6nn9npbalkgdr0";
+      rev = "36bfe63246386fc5ae2679aa9b17a7746b7403d5";
+      sha256 = "1gkxms47i52xadrdzh60zqp00gy2ai391cybw9n7ar0ar5xcjp1c";
     };
     meta.homepage = "https://github.com/mrjones2014/smart-splits.nvim/";
   };
@@ -9136,12 +9196,12 @@ final: prev:
 
   snap = buildVimPlugin {
     pname = "snap";
-    version = "2023-11-25";
+    version = "2024-01-17";
     src = fetchFromGitHub {
       owner = "camspiers";
       repo = "snap";
-      rev = "09fa206b460050b96bc9b3a283377c8c11fb32fe";
-      sha256 = "02c12bar3xr4xkg835r0bkxcyp3n5pf1zgrbx58hl61fx4f1z7df";
+      rev = "c0bcae835facb945c25073d233c15dbfeb7adc5e";
+      sha256 = "00sv4pl6pbg4hyq1cx1k9gzngdf603m35bkp9iaacrd1fxg6vqic";
     };
     meta.homepage = "https://github.com/camspiers/snap/";
   };
@@ -9172,12 +9232,12 @@ final: prev:
 
   sonokai = buildVimPlugin {
     pname = "sonokai";
-    version = "2023-10-24";
+    version = "2024-01-23";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "sonokai";
-      rev = "bdce098fc9e7202d3c555e2dc98c755ca1c23835";
-      sha256 = "09brv393ccqgvg0xwg55lh6ss5c16qs1as2hrrqh8952c1kqzxig";
+      rev = "42822f8f9b3a5088f05cf72a0aa1477598ad1a40";
+      sha256 = "1k881larnnqwsm9fanqp7nbiqpd03m779prshky9hy50hywl5vv2";
     };
     meta.homepage = "https://github.com/sainnhe/sonokai/";
   };
@@ -9304,12 +9364,12 @@ final: prev:
 
   splitjoin-vim = buildVimPlugin {
     pname = "splitjoin.vim";
-    version = "2023-11-18";
+    version = "2024-01-08";
     src = fetchFromGitHub {
       owner = "AndrewRadev";
       repo = "splitjoin.vim";
-      rev = "9531bfb26257f0d06f7ea2b7ecb4f13095d430ab";
-      sha256 = "0k1gm1qijdwsrpc0rd6b1q71l6gi2hr8sh6nfslah3dgncgpy21d";
+      rev = "503e56ed103b58b6bd0880a3e61225c8b1c40033";
+      sha256 = "0yw3dzhngk2pqcm40cd3vkqij4m7pkh7f0phvl3mmmy8x5kw2zh6";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/AndrewRadev/splitjoin.vim/";
@@ -9329,12 +9389,12 @@ final: prev:
 
   srcery-vim = buildVimPlugin {
     pname = "srcery-vim";
-    version = "2023-12-06";
+    version = "2024-01-05";
     src = fetchFromGitHub {
       owner = "srcery-colors";
       repo = "srcery-vim";
-      rev = "d6037f87842753a85e4cd855a2ca4206ac04db7e";
-      sha256 = "0kjcqv2pkk7dplxzvxhly3argza7bj4kiaabngn1pkdpq2h9acy8";
+      rev = "b020d2a1eed0d578ae195fba2b9c6841cc886c57";
+      sha256 = "1p0d7zkgb05w1zz4xy5gc5shhlmyzxkhcfv382bvva5qzrrcvk80";
     };
     meta.homepage = "https://github.com/srcery-colors/srcery-vim/";
   };
@@ -9582,12 +9642,12 @@ final: prev:
 
   tabby-nvim = buildVimPlugin {
     pname = "tabby.nvim";
-    version = "2023-12-28";
+    version = "2024-01-08";
     src = fetchFromGitHub {
       owner = "nanozuki";
       repo = "tabby.nvim";
-      rev = "9806ab6f1ca2af9a134c5e7174522388c31a9552";
-      sha256 = "10xs2by2acyaj8cy75678rrh3725g5llhq3lfxp6yd5w4bhiwlfa";
+      rev = "55712426431b12beae5f12e731cfb1d707632a3d";
+      sha256 = "16543b3mjqlba03bmgv961fdc8gk1cz3b3djivf10b8597rlf9sy";
     };
     meta.homepage = "https://github.com/nanozuki/tabby.nvim/";
   };
@@ -9713,6 +9773,18 @@ final: prev:
     meta.homepage = "https://github.com/vim-scripts/taglist.vim/";
   };
 
+  tailwindcss-colors-nvim = buildVimPlugin {
+    pname = "tailwindcss-colors.nvim";
+    version = "2021-12-24";
+    src = fetchFromGitHub {
+      owner = "themaxmarchuk";
+      repo = "tailwindcss-colors.nvim";
+      rev = "ccb5be2f84673c1a0ef90a0c0a76733e85e5265b";
+      sha256 = "sha256-2eUr4rB8gpax0xJ8U4O2O93UXUxF+HZV6Co8LwPZ3JE=";
+    };
+    meta.homepage = "https://github.com/themaxmarchuk/tailwindcss-colors.nvim/";
+  };
+
   targets-vim = buildVimPlugin {
     pname = "targets.vim";
     version = "2023-02-22";
@@ -9788,48 +9860,48 @@ final: prev:
 
   telescope-coc-nvim = buildVimPlugin {
     pname = "telescope-coc.nvim";
-    version = "2023-12-28";
+    version = "2024-01-10";
     src = fetchFromGitHub {
       owner = "fannheyward";
       repo = "telescope-coc.nvim";
-      rev = "b215e3a37fad057a1e0c132879eaeb3cc6446574";
-      sha256 = "1kzaippbia4px10vpgyxbgkjxwihnvg1irlw3nj6mglq8ivi8bxg";
+      rev = "96cd72d1e246faf16ef90a6f602330d1d03a446a";
+      sha256 = "02wxz1pkz051wgjix933xszm61md3f0gr97ap5m3ljhg1blrpsb3";
     };
     meta.homepage = "https://github.com/fannheyward/telescope-coc.nvim/";
   };
 
   telescope-dap-nvim = buildVimPlugin {
     pname = "telescope-dap.nvim";
-    version = "2023-09-10";
+    version = "2024-01-08";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-dap.nvim";
-      rev = "4e2d5efb92062f0b865fe59b200b5ed7793833bf";
-      sha256 = "1fa1kmwv21h06di1p1vb05saaiabpl97j1h15zrpqr8cxhxmp515";
+      rev = "8c88d9716c91eaef1cdea13cb9390d8ef447dbfe";
+      sha256 = "1zgajsbvmbmysxfi4aspmf9pbzkzsfz9p2n1q5vz0im9vc3ais1z";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-dap.nvim/";
   };
 
   telescope-file-browser-nvim = buildVimPlugin {
     pname = "telescope-file-browser.nvim";
-    version = "2023-12-26";
+    version = "2024-01-13";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-file-browser.nvim";
-      rev = "4bd5657b14b58e069287f5ac591a647bb860b2ed";
-      sha256 = "0j0y9i2vh1fs4wzf692a9wxnavb42x8amwb6kh25c226h8s13a4n";
+      rev = "6f735a63dc24b9aed527cd505a31864223c8a6d8";
+      sha256 = "10ppgwzh839riksx8a3gg2nhyqhifam8s9p5p0nyjkcpq0zbgcy3";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-file-browser.nvim/";
   };
 
   telescope-frecency-nvim = buildVimPlugin {
     pname = "telescope-frecency.nvim";
-    version = "2023-12-31";
+    version = "2024-01-22";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-frecency.nvim";
-      rev = "9c18474d0a4b82435ce141c2a21d9bd7b9189272";
-      sha256 = "1ps927pgapgns60ilpb5z61affky41kjahl6bwbm1s6jrynki0df";
+      rev = "1189184484e3153533af66b219f9ed59263a403c";
+      sha256 = "0fjl8bjmnm4gy8dxc0596sajf24sd5w2z1p6bwfpjisapykf41hb";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-frecency.nvim/";
   };
@@ -9909,12 +9981,12 @@ final: prev:
 
   telescope-manix = buildNeovimPlugin {
     pname = "telescope-manix";
-    version = "2023-12-04";
+    version = "2024-01-15";
     src = fetchFromGitHub {
       owner = "MrcJkb";
       repo = "telescope-manix";
-      rev = "f9657fd3f8e26c8035eacd63d95dc487ae6439b5";
-      sha256 = "11i2y3vvhdxspl6xy2922n0l6wm0gmkv89vma4jqw7la80chhn29";
+      rev = "127033f39a16c0fd48128653b4cee9b17fcc80a3";
+      sha256 = "1hsplynqmgbknbkz5b769a401i3hch1kvxdzxpx15jadq5lb169p";
     };
     meta.homepage = "https://github.com/MrcJkb/telescope-manix/";
   };
@@ -10054,12 +10126,12 @@ final: prev:
 
   telescope-nvim = buildNeovimPlugin {
     pname = "telescope.nvim";
-    version = "2023-12-29";
+    version = "2024-01-25";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope.nvim";
-      rev = "3466159b0fcc1876483f6f53587562628664d850";
-      sha256 = "1qb4xxlri3ljiqcz9p54xwh1b44bl5nmcxypbqsbrf1kffp0i9lp";
+      rev = "1bfbb1fb5c56d2dbe33216fcb2ebe82e499aa06c";
+      sha256 = "08v642fh91c7mj92jjdjfzx86jmz2plvnlja8p8lwbvz0yvida5r";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope.nvim/";
   };
@@ -10162,12 +10234,12 @@ final: prev:
 
   text-case-nvim = buildVimPlugin {
     pname = "text-case.nvim";
-    version = "2023-12-25";
+    version = "2024-01-14";
     src = fetchFromGitHub {
       owner = "johmsalas";
       repo = "text-case.nvim";
-      rev = "d6f121ec471118afb4fc7ed8cafb08eef3e9b307";
-      sha256 = "1izzhvx8szr02krlh2cvgmkkg92wkpsv98yf9b4k4x0j1jb20iiz";
+      rev = "6bc91cde614bbec6f0befbaf7fcd302415d803fb";
+      sha256 = "0gbzsw9s6ja5r4acdhd331gna1y03hvr6d11584sklh00xdv497a";
     };
     meta.homepage = "https://github.com/johmsalas/text-case.nvim/";
   };
@@ -10270,12 +10342,12 @@ final: prev:
 
   todo-comments-nvim = buildVimPlugin {
     pname = "todo-comments.nvim";
-    version = "2023-10-25";
+    version = "2024-01-21";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "todo-comments.nvim";
-      rev = "4a6737a8d70fe1ac55c64dfa47fcb189ca431872";
-      sha256 = "1wf19rahk713qv834gpaw18w8a4ydl44m6jz6l933ns89q1kakk7";
+      rev = "833d8dd8b07eeda37a09e99460f72a02616935cb";
+      sha256 = "088b3aabv5k6bvmhwsg9v7njgz95dvvklpjab832dvpifmws4b0f";
     };
     meta.homepage = "https://github.com/folke/todo-comments.nvim/";
   };
@@ -10295,24 +10367,24 @@ final: prev:
 
   toggleterm-nvim = buildVimPlugin {
     pname = "toggleterm.nvim";
-    version = "2023-12-25";
+    version = "2024-01-22";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "toggleterm.nvim";
-      rev = "e3805fed94d487b81e9c21548535cc820f62f840";
-      sha256 = "0kzmv598y2l6k2cc91pmg8jq6i15mpz73kwc36jwyiripn5q9dks";
+      rev = "b49df5cdce67a8964d1b027dae94bde212092b51";
+      sha256 = "1102wcz61bcvkiz1ck2cxxb32id9rf2hjhcs82y3x37n831kgvyb";
     };
     meta.homepage = "https://github.com/akinsho/toggleterm.nvim/";
   };
 
   tokyonight-nvim = buildVimPlugin {
     pname = "tokyonight.nvim";
-    version = "2023-10-25";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "tokyonight.nvim";
-      rev = "f247ee700b569ed43f39320413a13ba9b0aef0db";
-      sha256 = "0wyz1dcm92dc83rz3hy8a0m47yy5lmpk0pwiycpn5yc8jdaxj63b";
+      rev = "e3301873c1e96903daebb98cc9b5926810bf73dd";
+      sha256 = "18acixjcgqzihb86apc1s8r31yp0lxw804ddwiaygwc2b3drfyx8";
     };
     meta.homepage = "https://github.com/folke/tokyonight.nvim/";
   };
@@ -10343,12 +10415,12 @@ final: prev:
 
   treesj = buildVimPlugin {
     pname = "treesj";
-    version = "2023-11-15";
+    version = "2024-01-17";
     src = fetchFromGitHub {
       owner = "Wansmer";
       repo = "treesj";
-      rev = "1d6e89f4790aa04eaae38fa9460a3ee191961c96";
-      sha256 = "1f7zrzv0f2di1vkavgyqa80mx686rii0gsygl8rs3qrr9bc17zd5";
+      rev = "14808da3cddd62fc86ede53a5ea1fd1635897e75";
+      sha256 = "0qnkp3x8h956achrc90g0g1nlcnxkl6wcim7q5d4jhipf3ql6w7l";
     };
     meta.homepage = "https://github.com/Wansmer/treesj/";
   };
@@ -10439,12 +10511,12 @@ final: prev:
 
   typescript-tools-nvim = buildVimPlugin {
     pname = "typescript-tools.nvim";
-    version = "2023-12-19";
+    version = "2024-01-16";
     src = fetchFromGitHub {
       owner = "pmizio";
       repo = "typescript-tools.nvim";
-      rev = "829b5dc4f6704b249624e5157ad094dcb20cdc6b";
-      sha256 = "0y1m35b5i7s856xk50kwczi08s5r313qkpjny0f7acg5hz60kz1v";
+      rev = "c43d9580c3ff5999a1eabca849f807ab33787ea7";
+      sha256 = "1af90ydixj8lpm0q6kkd7yv61wpyd572vgb44a4jpfbsaxhl75wj";
     };
     meta.homepage = "https://github.com/pmizio/typescript-tools.nvim/";
   };
@@ -10475,12 +10547,12 @@ final: prev:
 
   typst-vim = buildVimPlugin {
     pname = "typst.vim";
-    version = "2023-12-11";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "kaarmu";
       repo = "typst.vim";
-      rev = "308e7737d09de8c1100320ddc6bc270615ae791a";
-      sha256 = "076ylgny48bl5iajw0hh3bqwlchj9pygq2bf3y0qlwckrzq05nbn";
+      rev = "816ba15885cb5eb742e06bafcd53b1a8531d334b";
+      sha256 = "092cihsphaxvpimmpzfys64pakrvh23l3zc2r0f3pjzhf69vdsvr";
     };
     meta.homepage = "https://github.com/kaarmu/typst.vim/";
   };
@@ -10499,12 +10571,12 @@ final: prev:
 
   undotree = buildVimPlugin {
     pname = "undotree";
-    version = "2023-11-12";
+    version = "2024-01-21";
     src = fetchFromGitHub {
       owner = "mbbill";
       repo = "undotree";
-      rev = "36ff7abb6b60980338344982ad4cdf03f7961ecd";
-      sha256 = "1rjz58ggkrz0pfrbiq93p2zq4bif2m7rjn9jj8hbqikmp8g7h19g";
+      rev = "d9c8b4ef872e078e8c4080812e5a3ed56d151c00";
+      sha256 = "1dawzdyrzbiry907i7flqyk5178a18vv9gycxn0g90cd5d5lrrrp";
     };
     meta.homepage = "https://github.com/mbbill/undotree/";
   };
@@ -10523,12 +10595,12 @@ final: prev:
 
   unison = buildVimPlugin {
     pname = "unison";
-    version = "2023-12-23";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "unisonweb";
       repo = "unison";
-      rev = "966d8e4c3c165988c3dd32457c72c82320d7f9f8";
-      sha256 = "1nk4ziqz13w82k8l0wxmvjrbx01bnd96zmqwwwvxbsph59ym35ny";
+      rev = "2ab2ef5142b390e99b2280a4b45b24295f58169f";
+      sha256 = "1si3aixiwbb80wwdqx5i51h4sqsvvd75bnc0kv6sijc04gl10fj7";
     };
     meta.homepage = "https://github.com/unisonweb/unison/";
   };
@@ -10619,12 +10691,12 @@ final: prev:
 
   vifm-vim = buildVimPlugin {
     pname = "vifm.vim";
-    version = "2023-12-17";
+    version = "2024-01-20";
     src = fetchFromGitHub {
       owner = "vifm";
       repo = "vifm.vim";
-      rev = "8cea10925699a8f77f6d9ebb5df87a5995fbd3f2";
-      sha256 = "13wlrsri5m6yvfrcjkfsr70r5rxbzga90ba03m6n397xfmybx506";
+      rev = "b187efe0ba367a47d2cc4785fb724c0451a85260";
+      sha256 = "1pmmkalyhzq9v8g1ldkvc06jz3nwidr9iwrwkl9phnssn4v9jsr4";
     };
     meta.homepage = "https://github.com/vifm/vifm.vim/";
   };
@@ -10799,12 +10871,12 @@ final: prev:
 
   vim-addon-local-vimrc = buildVimPlugin {
     pname = "vim-addon-local-vimrc";
-    version = "2023-02-28";
+    version = "2024-01-22";
     src = fetchFromGitHub {
       owner = "MarcWeber";
       repo = "vim-addon-local-vimrc";
-      rev = "28514f4aedba1fd824fad8ccbd65fb41bb8057f0";
-      sha256 = "1xhdywcyyr86jvrpghn46avgc6qy220fnyjg6rg3pqvf20hz6ld1";
+      rev = "5a3b61df34734127d9a1518879ecc06e550547db";
+      sha256 = "13ysvhjafx7b5dz8fw672sssf69ayzwbkwpd22sj3rykwbyv3gh4";
     };
     meta.homepage = "https://github.com/MarcWeber/vim-addon-local-vimrc/";
   };
@@ -10991,12 +11063,12 @@ final: prev:
 
   vim-airline-themes = buildVimPlugin {
     pname = "vim-airline-themes";
-    version = "2022-11-08";
+    version = "2024-01-06";
     src = fetchFromGitHub {
       owner = "vim-airline";
       repo = "vim-airline-themes";
-      rev = "dd81554c2231e438f6d0e8056ea38fd0e80ac02a";
-      sha256 = "05jhw8qgs024z0na2kizrrmbl3kmad69p22aw7naqmfnf1sads9q";
+      rev = "a9aa25ce323b2dd04a52706f4d1b044f4feb7617";
+      sha256 = "18rfmfxq6dyslzq7qqaimqpgmbi1wv16xi5dqbdnpf5h6v0ls2az";
     };
     meta.homepage = "https://github.com/vim-airline/vim-airline-themes/";
   };
@@ -11039,12 +11111,12 @@ final: prev:
 
   vim-apm = buildVimPlugin {
     pname = "vim-apm";
-    version = "2020-09-28";
+    version = "2024-01-25";
     src = fetchFromGitHub {
       owner = "ThePrimeagen";
       repo = "vim-apm";
-      rev = "2da35c35febbe98a6704495cd4e0b9526a0651e3";
-      sha256 = "09amrb7bzrnwga8cm21fm4ylp2l0jd7cyfsf43fcym3f1k0bycwb";
+      rev = "a4f52e65c3af4282508ba0db0e33c45bbc371968";
+      sha256 = "004fy3v1nxjhiiv0kd2ahfbbngdkmkrpr97s5q6aaa8mykgs7rfr";
     };
     meta.homepage = "https://github.com/ThePrimeagen/vim-apm/";
   };
@@ -11231,12 +11303,12 @@ final: prev:
 
   vim-better-whitespace = buildVimPlugin {
     pname = "vim-better-whitespace";
-    version = "2022-06-30";
+    version = "2024-01-13";
     src = fetchFromGitHub {
       owner = "ntpeters";
       repo = "vim-better-whitespace";
-      rev = "1b22dc57a2751c7afbc6025a7da39b7c22db635d";
-      sha256 = "10xzxavz010a8ildkfmikyi0ly6rqi5d6a2ndzr0frd9ingbk79r";
+      rev = "029f35c783f1b504f9be086b9ea757a36059c846";
+      sha256 = "189s0bhavrsv5im810cdl2723wfjr0k267fl83m8zy5mc8ir156k";
     };
     meta.homepage = "https://github.com/ntpeters/vim-better-whitespace/";
   };
@@ -11471,12 +11543,12 @@ final: prev:
 
   vim-codefmt = buildVimPlugin {
     pname = "vim-codefmt";
-    version = "2023-11-24";
+    version = "2024-01-13";
     src = fetchFromGitHub {
       owner = "google";
       repo = "vim-codefmt";
-      rev = "c6730fb9c0d17060ea0caf5b9bd3090e86f6a14d";
-      sha256 = "0gn779c2z44gcxygjsb2spcsa9dkfxii6b27i1irnllmzkys18p4";
+      rev = "6fa1616adebeffe26fadf5a1a61996ccdcbe46a1";
+      sha256 = "0qjy8jr5d6kx880nj3vh5p769c2v729dy19pnw0dn57qzwvi142d";
     };
     meta.homepage = "https://github.com/google/vim-codefmt/";
   };
@@ -11543,12 +11615,12 @@ final: prev:
 
   vim-commentary = buildVimPlugin {
     pname = "vim-commentary";
-    version = "2022-10-31";
+    version = "2024-01-12";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-commentary";
-      rev = "e87cd90dc09c2a203e13af9704bd0ef79303d755";
-      sha256 = "09kzc89iwkgsi4wvjxk56fis462kkz5chcl9sl4hdbmpa1f41wy0";
+      rev = "f67e3e67ea516755005e6cccb178bc8439c6d402";
+      sha256 = "0r5jlxkxfy5gvpkmzsfkxzlgydn477qiywqlng4xbaw3pijcf04i";
     };
     meta.homepage = "https://github.com/tpope/vim-commentary/";
   };
@@ -11627,12 +11699,12 @@ final: prev:
 
   vim-css-color = buildVimPlugin {
     pname = "vim-css-color";
-    version = "2023-07-26";
+    version = "2024-01-13";
     src = fetchFromGitHub {
       owner = "ap";
       repo = "vim-css-color";
-      rev = "6cc65734bc7105d9677ca54e2255fcbc953ba6bf";
-      sha256 = "1mjry4xiaxhjgzajsbmh4iph9hhxbwgdj3raaxlqzmmnyjsz03iy";
+      rev = "faa65935660a4596414fe21d57e2110faeb9e869";
+      sha256 = "0q6nzkvlv7igkg7k3p52rsqnxcd7l70lnlmlh9mjqhfaphpw2j8w";
     };
     meta.homepage = "https://github.com/ap/vim-css-color/";
   };
@@ -11699,12 +11771,12 @@ final: prev:
 
   vim-dadbod-ui = buildVimPlugin {
     pname = "vim-dadbod-ui";
-    version = "2023-11-25";
+    version = "2024-01-25";
     src = fetchFromGitHub {
       owner = "kristijanhusak";
       repo = "vim-dadbod-ui";
-      rev = "9ddb0623e69d696b7a8355b93e3950a8dc6e00a0";
-      sha256 = "1ihfxy0diqhbcaxj23pqmnfh1wshx2s4id5r574vb27k929han2s";
+      rev = "165699c573469e6a95b48d35052f848c340c5911";
+      sha256 = "093iyr739xsi8s94kcws6z0zi8whwgircidg2f34qwc0ix9zgppg";
     };
     meta.homepage = "https://github.com/kristijanhusak/vim-dadbod-ui/";
   };
@@ -11783,12 +11855,12 @@ final: prev:
 
   vim-dirvish = buildVimPlugin {
     pname = "vim-dirvish";
-    version = "2024-01-02";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "justinmk";
       repo = "vim-dirvish";
-      rev = "aed4e49df623f3438542924fe6d15e5d090ce921";
-      sha256 = "00q8dxp8ksbrf8n3v3r75l034rgzjylcxqml7k9wbw3k0cdqjvjh";
+      rev = "0966b866580ec5cc8fbc26ee396a516d72600db5";
+      sha256 = "0jmpjrx4kl11hgdaiw5wxfznmn5apl38ykih0mm01hcg49gzirsw";
     };
     meta.homepage = "https://github.com/justinmk/vim-dirvish/";
   };
@@ -11963,12 +12035,12 @@ final: prev:
 
   vim-endwise = buildVimPlugin {
     pname = "vim-endwise";
-    version = "2023-04-23";
+    version = "2024-01-16";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-endwise";
-      rev = "e714ac3bcfd5a90038de49c3254eded7c70ae3c3";
-      sha256 = "1zhz2risd8vhwnz5b5r5kkgflhxsp87df86n1brbh22jgzx5sapx";
+      rev = "3719ffddb5e42bf67b55b2183d7a6fb8d3e5a2b8";
+      sha256 = "0r888mpcn3fpzxl4dwvdj2khdy27djpdkbldwvqp0z7aqj0lci8v";
     };
     meta.homepage = "https://github.com/tpope/vim-endwise/";
   };
@@ -12011,12 +12083,12 @@ final: prev:
 
   vim-erlang-runtime = buildVimPlugin {
     pname = "vim-erlang-runtime";
-    version = "2022-10-02";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "vim-erlang";
       repo = "vim-erlang-runtime";
-      rev = "f7d4bbdcff675000d4345d9834cc7d825a84ed3f";
-      sha256 = "0b4f2jwsbsbysg364pslw8c94nvh5q2clfxfnz3lqrkkl1cpr3cs";
+      rev = "275454182752162ac680c214675cb2a45d010cdc";
+      sha256 = "0crg7sf2ziz1zkjf794fnyb5rfcc0s48g3qngc4in44d71b7gc16";
     };
     meta.homepage = "https://github.com/vim-erlang/vim-erlang-runtime/";
   };
@@ -12035,24 +12107,24 @@ final: prev:
 
   vim-eunuch = buildVimPlugin {
     pname = "vim-eunuch";
-    version = "2023-06-28";
+    version = "2024-01-16";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-eunuch";
-      rev = "67f3dd32b4dcd1c427085f42ff5f29c7adc645c6";
-      sha256 = "1jhql40ffxxmxs5wfwx0k54h2d3gdg0ajjbxwjiqdnmhyw9wfv9x";
+      rev = "084946fb1c8103ae0cb7342e9be3a2c69374958c";
+      sha256 = "0wp0a4zssmjmclsvzk3w2r65sxllfivbb5mfqd6yrazfg6vssdw0";
     };
     meta.homepage = "https://github.com/tpope/vim-eunuch/";
   };
 
   vim-exchange = buildVimPlugin {
     pname = "vim-exchange";
-    version = "2021-10-21";
+    version = "2024-01-21";
     src = fetchFromGitHub {
       owner = "tommcdo";
       repo = "vim-exchange";
-      rev = "784d63083ad7d613aa96f00021cd0dfb126a781a";
-      sha256 = "15bwlky7if7jp3g3banxi2kkci1wa54y36b4m27mggsc6kdabd6q";
+      rev = "d6c1e9790bcb8df27c483a37167459bbebe0112e";
+      sha256 = "0rr8858w0q2a0y7ijag2ja61qay7nqwzd9g8lknn84np9j29lfmf";
     };
     meta.homepage = "https://github.com/tommcdo/vim-exchange/";
   };
@@ -12179,12 +12251,12 @@ final: prev:
 
   vim-flog = buildVimPlugin {
     pname = "vim-flog";
-    version = "2024-01-02";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "rbong";
       repo = "vim-flog";
-      rev = "bb1fda0cac110aef3f1c0ac00be813377b2b9bf0";
-      sha256 = "1rhgcip62ixl7nlnjskf2q6qdzgayd2nhhsbg98jw3lyy84k8m31";
+      rev = "6289ab2e237ceeefdbcc7eb584b63d144bf88d94";
+      sha256 = "0l085wk1plzxg3hxj9gjqg9ws8b43g2wbzjralzfj0r3py7icnb5";
     };
     meta.homepage = "https://github.com/rbong/vim-flog/";
   };
@@ -12239,12 +12311,12 @@ final: prev:
 
   vim-fugitive = buildVimPlugin {
     pname = "vim-fugitive";
-    version = "2023-12-15";
+    version = "2024-01-19";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fugitive";
-      rev = "59659093581aad2afacedc81f009ed6a4bfad275";
-      sha256 = "1h5l6257vqk41h93nv5ipvccglqnz1bjqh6dsds1q4x2l80xn61v";
+      rev = "854a8df0d06b8d3fcb30fa7f2b08c62b553eee3b";
+      sha256 = "0bzsm454bbxyjxfiwjgx5hydhia0i04y895am0m5rl2vbbyykkmq";
     };
     meta.homepage = "https://github.com/tpope/vim-fugitive/";
   };
@@ -12347,12 +12419,12 @@ final: prev:
 
   vim-gitgutter = buildVimPlugin {
     pname = "vim-gitgutter";
-    version = "2023-12-07";
+    version = "2024-01-05";
     src = fetchFromGitHub {
       owner = "airblade";
       repo = "vim-gitgutter";
-      rev = "4b49965897b8264cd6f90fa47ddb917f4296c469";
-      sha256 = "08fdid8s17l42k7ykw3c7jfjj10rgmdgnd5p5gxbi76zx0x9aylv";
+      rev = "67ef116100b40f9ca128196504a2e0bc0a2753b0";
+      sha256 = "1haxh6m22f03lz30q8389hnfn78v4zpx3r6bibvb96v7swpbxqdi";
     };
     meta.homepage = "https://github.com/airblade/vim-gitgutter/";
   };
@@ -12395,12 +12467,12 @@ final: prev:
 
   vim-go = buildVimPlugin {
     pname = "vim-go";
-    version = "2023-12-24";
+    version = "2024-01-22";
     src = fetchFromGitHub {
       owner = "fatih";
       repo = "vim-go";
-      rev = "e2e7ad7cb03049896bafda28481f252a2aa8d5bb";
-      sha256 = "02lqi3vphhzz9qv19nl73r3kzq7rhsapyg10lc7idig8ggvdnab3";
+      rev = "ca6c532753e70e4fb093e755773cc6f250a3b4b3";
+      sha256 = "0pfizf55abw1rbdrsyw9g65cia165irnj2f0snx7qmg194bgblqg";
     };
     meta.homepage = "https://github.com/fatih/vim-go/";
   };
@@ -12443,12 +12515,12 @@ final: prev:
 
   vim-gruvbox8 = buildVimPlugin {
     pname = "vim-gruvbox8";
-    version = "2023-08-04";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "lifepillar";
       repo = "vim-gruvbox8";
-      rev = "8a634bd8d7539eb645e23147516d6c3054e71306";
-      sha256 = "0gj4f65zcawxyh4zgcz6frhh3libi4s28h11mrnacixzg7nc70dx";
+      rev = "d1cf31e5215ad6f5544d9e631383aef4b6c35cb7";
+      sha256 = "1bih86rm14788b73dkpfzv2ahrca3vxahd5pc39lx122ma31l639";
     };
     meta.homepage = "https://github.com/lifepillar/vim-gruvbox8/";
   };
@@ -12732,12 +12804,12 @@ final: prev:
 
   vim-indent-object = buildVimPlugin {
     pname = "vim-indent-object";
-    version = "2018-04-08";
+    version = "2024-01-21";
     src = fetchFromGitHub {
       owner = "michaeljsmith";
       repo = "vim-indent-object";
-      rev = "5c5b24c959478929b54a9e831a8e2e651a465965";
-      sha256 = "1kmwnz0jxjkvfzy06r7r73pcxfcyjp8p8m2d6qrhjfvzidgfhw19";
+      rev = "8ab36d5ec2a3a60468437a95e142ce994df598c6";
+      sha256 = "04bbr9aiq2pnp7nh1rrcys0cm3a8divkrmvs2557zd1ck3rrx2kw";
     };
     meta.homepage = "https://github.com/michaeljsmith/vim-indent-object/";
   };
@@ -12973,12 +13045,12 @@ final: prev:
 
   vim-just = buildVimPlugin {
     pname = "vim-just";
-    version = "2023-12-29";
+    version = "2024-01-25";
     src = fetchFromGitHub {
       owner = "NoahTheDuke";
       repo = "vim-just";
-      rev = "70c08fc99d532cf331ae9eaf0fcbe2cd2bbe0f57";
-      sha256 = "0a8mkhz66f2m2qwq5mgcbldfsbq5a3qzqfisnwmmvw1bhzipb2kw";
+      rev = "6d95cd79c40d82d26f2ca887494d01e8a7e90d6e";
+      sha256 = "06sx968r78nx7nmlrh8m9f45l0wpq251p7097r7ygxjn3da3l5rq";
     };
     meta.homepage = "https://github.com/NoahTheDuke/vim-just/";
   };
@@ -13009,12 +13081,12 @@ final: prev:
 
   vim-lastplace = buildVimPlugin {
     pname = "vim-lastplace";
-    version = "2023-12-02";
+    version = "2024-01-05";
     src = fetchFromGitHub {
       owner = "farmergreg";
       repo = "vim-lastplace";
-      rev = "aaaf3dc8bbe496c3242a4b4635154ccc9414d357";
-      sha256 = "0wz59f6hmkdnv8hfgws20z0qrlpvfkxmdx4943fm1i3hmcdhyi1g";
+      rev = "a715d602745cdb1c35cfe73c50d3dd266eb5a349";
+      sha256 = "08rqvaqxvm7h6xh5fqbqf8s32nrs2h817j2aw2mj40jiwgsvmkfc";
     };
     meta.homepage = "https://github.com/farmergreg/vim-lastplace/";
   };
@@ -13201,12 +13273,12 @@ final: prev:
 
   vim-lsp = buildVimPlugin {
     pname = "vim-lsp";
-    version = "2023-12-21";
+    version = "2024-01-20";
     src = fetchFromGitHub {
       owner = "prabirshrestha";
       repo = "vim-lsp";
-      rev = "d36f381dc8f39a9b86d66ef84c2ebbb7516d91d6";
-      sha256 = "0bdkxvm6sypciadlznh1s4xa7in1n2larlr6843k9f63ray4pr9a";
+      rev = "c20c6650d32a85e09ae6c7a9747aef7ded3677fb";
+      sha256 = "1farhbqp06dkjh480lv07yvgwnmikaaagr5mpwwjrmws3m92xmv4";
     };
     meta.homepage = "https://github.com/prabirshrestha/vim-lsp/";
   };
@@ -13237,12 +13309,12 @@ final: prev:
 
   vim-lsp-settings = buildVimPlugin {
     pname = "vim-lsp-settings";
-    version = "2023-12-28";
+    version = "2024-01-06";
     src = fetchFromGitHub {
       owner = "mattn";
       repo = "vim-lsp-settings";
-      rev = "d3b8c8394805752e6a7fcdb8c275031cd548b155";
-      sha256 = "0k0xj54pxzdpsk5yjbf3czkrra2dmxj7p06qj0l146ab0nnsvrnq";
+      rev = "223c7382e53ba5017c6b1b1edebccae6ab8265ab";
+      sha256 = "0x5jgswz09gf958qnry01bn9sdccjv3rilajlfbhac20vhs4izm0";
     };
     meta.homepage = "https://github.com/mattn/vim-lsp-settings/";
   };
@@ -13358,12 +13430,12 @@ final: prev:
 
   vim-matchup = buildVimPlugin {
     pname = "vim-matchup";
-    version = "2023-12-19";
+    version = "2024-01-06";
     src = fetchFromGitHub {
       owner = "andymass";
       repo = "vim-matchup";
-      rev = "2550178c43464134ce65328da458905f70dbe041";
-      sha256 = "0y3kgj7jaa6g4ydfp1cjbishzsvb9qrd5k2lswm7hag0fisxhig7";
+      rev = "e2cca1747ab175b8d839a5d28679427564643a57";
+      sha256 = "1clcvb6r1vfkajj9jd8hmvi1vx0vclyppj2vh7sjy9mpbn9xpggg";
     };
     meta.homepage = "https://github.com/andymass/vim-matchup/";
   };
@@ -13466,12 +13538,12 @@ final: prev:
 
   vim-monokai-tasty = buildVimPlugin {
     pname = "vim-monokai-tasty";
-    version = "2023-11-13";
+    version = "2024-01-08";
     src = fetchFromGitHub {
       owner = "patstockwell";
       repo = "vim-monokai-tasty";
-      rev = "247324e0170e19de0018e7c8e437f83b6f0ef6fc";
-      sha256 = "0l3rlah48969kkz2r6xl9r8plg7n4an1pk5cy92ly94x6yw5awkm";
+      rev = "57c67feac63158a232c43aee2f463a994029b699";
+      sha256 = "0fslz2jhnhyda9in9wjvw8ab47aa5d9zzc5l8g53jkqbn7r13kpc";
     };
     meta.homepage = "https://github.com/patstockwell/vim-monokai-tasty/";
   };
@@ -13598,24 +13670,24 @@ final: prev:
 
   vim-ninja-feet = buildVimPlugin {
     pname = "vim-ninja-feet";
-    version = "2021-05-27";
+    version = "2024-01-21";
     src = fetchFromGitHub {
       owner = "tommcdo";
       repo = "vim-ninja-feet";
-      rev = "cb9b448dd468a338255aed474e6113ed115612c1";
-      sha256 = "1aqmhqaxb72ih56mh85kv4fkxyqw5hfispd208lfyp4w3zhvli30";
+      rev = "47ebe12017eed3f980eb6690658deffbf7a59b2e";
+      sha256 = "02j2q6r23fk7vkxwkhs5m67j449xjsgy969gdxcnpbfifldmfn3g";
     };
     meta.homepage = "https://github.com/tommcdo/vim-ninja-feet/";
   };
 
   vim-nix = buildVimPlugin {
     pname = "vim-nix";
-    version = "2023-07-29";
+    version = "2024-01-09";
     src = fetchFromGitHub {
       owner = "LnL7";
       repo = "vim-nix";
-      rev = "1e8d3cc4d74f40fb384cd1739739543fe117ff61";
-      sha256 = "06sdplgw76xnpdb89yd4arpphsn24nn327mhp3siyvc5qlsddby7";
+      rev = "048c71f1ed2c679cd55acd2c807c2c96aea82e65";
+      sha256 = "1s75divbphd7qgkljj2bl32gb1q7a23r4g023x6v83qzkfxwl8i3";
     };
     meta.homepage = "https://github.com/LnL7/vim-nix/";
   };
@@ -14066,12 +14138,12 @@ final: prev:
 
   vim-printer = buildVimPlugin {
     pname = "vim-printer";
-    version = "2022-03-01";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "meain";
       repo = "vim-printer";
-      rev = "55ab49179838d86f92fd847504cef3570000b7f3";
-      sha256 = "1h2wh86qph38mgfyahy8ha6zpvn2kvs4h2znipxq9z4ybnwcxmf4";
+      rev = "ab72f348e73fbaa7e72b9251da78f9cad1f74aa9";
+      sha256 = "1bzzzq21silsrqjqpr44yrrp15kkpn1jhc2gf45zph18nizkbbl1";
     };
     meta.homepage = "https://github.com/meain/vim-printer/";
   };
@@ -14090,12 +14162,12 @@ final: prev:
 
   vim-projectionist = buildVimPlugin {
     pname = "vim-projectionist";
-    version = "2023-03-16";
+    version = "2024-01-03";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-projectionist";
-      rev = "e292c4e33b2c44074c47c06e8ce8b309fd8099bc";
-      sha256 = "04zh6w6gdqvyy08xhbk4xmkr37insrgvw930dyc05crmkzlnavy9";
+      rev = "a57b9bf11ecfef16f767034550472830b48ad3e2";
+      sha256 = "073sfw5hs8622qs3g6dw8k20ghlxlxg7jq32b9zkcgj2l7ngc3sz";
     };
     meta.homepage = "https://github.com/tpope/vim-projectionist/";
   };
@@ -14546,12 +14618,12 @@ final: prev:
 
   vim-slime = buildVimPlugin {
     pname = "vim-slime";
-    version = "2023-12-02";
+    version = "2024-01-25";
     src = fetchFromGitHub {
       owner = "jpalardy";
       repo = "vim-slime";
-      rev = "a532203bcd7af7f5e571c07b60bba7287076dc19";
-      sha256 = "0jfzah18mzh0iszi6k86k4y571j6jjhg3cyy9ivxcybacppaf2id";
+      rev = "4174e7505019c37f754af0717b2c8b75a80193f2";
+      sha256 = "1zfjy48s4w2b7sjpgb97sy7blwbf3d91z51id4pnzdi23dzcs5g0";
     };
     meta.homepage = "https://github.com/jpalardy/vim-slime/";
   };
@@ -14654,24 +14726,24 @@ final: prev:
 
   vim-snippets = buildVimPlugin {
     pname = "vim-snippets";
-    version = "2023-12-29";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "honza";
       repo = "vim-snippets";
-      rev = "ba72b08e04e184ecd0a2a1b8012a81ddb040dbc3";
-      sha256 = "1zpiafwc3m1484rww6f5d4hvbrrk0isybcxfmzzjs9qy6xz8fdq6";
+      rev = "9bd88e07865bd4fa982d46356c227b07de66412a";
+      sha256 = "0xy0arqhcndasd4gmh7qbr8aw0ssxgaqy261nzib7f0gd21ig6j4";
     };
     meta.homepage = "https://github.com/honza/vim-snippets/";
   };
 
   vim-solarized8 = buildVimPlugin {
     pname = "vim-solarized8";
-    version = "2023-08-13";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "lifepillar";
       repo = "vim-solarized8";
-      rev = "bde9cab3d9e9368f0b62f94149ab51607fcb8b68";
-      sha256 = "1di351q776ghw3y7yj494byrvd9c0zf6cxvcizk0jizdfvsib53k";
+      rev = "6178a07f442a1fe559673cef6ac2b7031ab21edb";
+      sha256 = "0y0xhcd5p32sni889avjsbjm9g9afysfvfkihm763lj304rf7prs";
     };
     meta.homepage = "https://github.com/lifepillar/vim-solarized8/";
   };
@@ -14906,12 +14978,12 @@ final: prev:
 
   vim-terraform = buildVimPlugin {
     pname = "vim-terraform";
-    version = "2023-10-02";
+    version = "2024-01-23";
     src = fetchFromGitHub {
       owner = "hashivim";
       repo = "vim-terraform";
-      rev = "d37ae7e7828aa167877e338dea5d4e1653ed3eb1";
-      sha256 = "0630s7jaadd6ndkkj49k3ivink2vkajh0cjx30dw1ip6md360sjh";
+      rev = "3d1cfc8e183f1a58f71587442849510462f5857b";
+      sha256 = "0nsyv4pasavp8iaakl9l4vybpwxvkxaimzv7rzb51v9m03r6jqyx";
     };
     meta.homepage = "https://github.com/hashivim/vim-terraform/";
   };
@@ -14931,12 +15003,12 @@ final: prev:
 
   vim-test = buildVimPlugin {
     pname = "vim-test";
-    version = "2023-12-29";
+    version = "2024-01-23";
     src = fetchFromGitHub {
       owner = "vim-test";
       repo = "vim-test";
-      rev = "21e1ce0d3a2dd5bedcd6d35fe9abd9f80fddc6d2";
-      sha256 = "0nqyymyfadrm2dy1q8al3wrgxqawxq76i5qwr8zgqbwzfwmm0a9c";
+      rev = "1f4ee3307e266a64b00d816c727fdaa57b34ada3";
+      sha256 = "0y361p1dc5nmv622ml6j5bw3f7ccpwa56jzjfnjhd069qi8xkvrp";
     };
     meta.homepage = "https://github.com/vim-test/vim-test/";
   };
@@ -15255,12 +15327,12 @@ final: prev:
 
   vim-visual-multi = buildVimPlugin {
     pname = "vim-visual-multi";
-    version = "2023-10-26";
+    version = "2024-01-22";
     src = fetchFromGitHub {
       owner = "mg979";
       repo = "vim-visual-multi";
-      rev = "aec289a9fdabaa0ee6087d044d75b32e12084344";
-      sha256 = "04i20r65pqmmspg8bpdlhmjymw8s4qahcyb99yjmj85ysz5lsph6";
+      rev = "e67f7fa011c98fc5426352d3bb06362a0f70af3c";
+      sha256 = "052hb8ly7yxaylaqmlb7nwnwsjn2sbhr76k3fr618zn9p4nqa3df";
     };
     meta.homepage = "https://github.com/mg979/vim-visual-multi/";
   };
@@ -15303,12 +15375,12 @@ final: prev:
 
   vim-vsnip = buildVimPlugin {
     pname = "vim-vsnip";
-    version = "2023-11-12";
+    version = "2024-01-11";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "vim-vsnip";
-      rev = "8eebdf6ab4a880d845893f210fd20516d2e2384f";
-      sha256 = "10aadjkisfsx4avylblp7zb97ikaay249fzw3f43xgknlajg35dg";
+      rev = "02a8e79295c9733434aab4e0e2b8c4b7cea9f3a9";
+      sha256 = "06j0fph91x3gdhbf9bb0yv95j34gf827p97vak0l4jb0ib7vmyc2";
     };
     meta.homepage = "https://github.com/hrsh7th/vim-vsnip/";
   };
@@ -15351,12 +15423,12 @@ final: prev:
 
   vim-wakatime = buildVimPlugin {
     pname = "vim-wakatime";
-    version = "2023-12-05";
+    version = "2024-01-10";
     src = fetchFromGitHub {
       owner = "wakatime";
       repo = "vim-wakatime";
-      rev = "8c8856327815a077cbebeba8c7456312a3d2c39c";
-      sha256 = "1k3zklr93im6w2767yajzgbfh270yh00898fccghdcjq66gd6hxy";
+      rev = "cae21a19c3db4d9aadd5d320de3da0c99dfd0f62";
+      sha256 = "1f7jqmsr7b9103g9fif3p8fglrqlgk5nf3ckhkjpwfy6355vk41h";
     };
     meta.homepage = "https://github.com/wakatime/vim-wakatime/";
   };
@@ -15375,24 +15447,24 @@ final: prev:
 
   vim-wayland-clipboard = buildVimPlugin {
     pname = "vim-wayland-clipboard";
-    version = "2023-11-29";
+    version = "2024-01-18";
     src = fetchFromGitHub {
       owner = "jasonccox";
       repo = "vim-wayland-clipboard";
-      rev = "8d13283a15b077e64ff41081792b998154df76ef";
-      sha256 = "05ivzp08fhl6agcmiwclpf5mlq8s4cf4jsh8z5v5sjmahdvh45mk";
+      rev = "cd4efac3e77177afdf220146948d0e06245946de";
+      sha256 = "02kn9dry67jckzwan4rqd4nsycrpvg62vg23prg8wc2i9j0p389p";
     };
     meta.homepage = "https://github.com/jasonccox/vim-wayland-clipboard/";
   };
 
   vim-which-key = buildVimPlugin {
     pname = "vim-which-key";
-    version = "2023-12-16";
+    version = "2024-01-18";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vim-which-key";
-      rev = "a03cb503b0de6f5071a7263f5fb8d63493e901e5";
-      sha256 = "095rg29ydsazjqa0ks34b5d6gvq37rin4q2qwqxq2994yb8a530m";
+      rev = "470cd19ce11b616e0640f2b38fb845c42b31a106";
+      sha256 = "1fargy2zk4j62irslr9gs8h8lwhkh6hj0f5q9aq03skh0p8y0413";
     };
     meta.homepage = "https://github.com/liuchengxu/vim-which-key/";
   };
@@ -15495,12 +15567,12 @@ final: prev:
 
   vim-zettel = buildVimPlugin {
     pname = "vim-zettel";
-    version = "2023-12-17";
+    version = "2024-01-11";
     src = fetchFromGitHub {
       owner = "michal-h21";
       repo = "vim-zettel";
-      rev = "e4995b97a4f6f822144ad61b68929ea5fa4e524e";
-      sha256 = "05k7jyclx2351zff26i17aypskhcxav1zv2n7k87s03c04kl3x00";
+      rev = "aa3d6edfa0251928e268e13a92d090c92446e545";
+      sha256 = "1v639cgsfx87qg30n1p3cjrp83xlanng2a428i05r319z2njvj2i";
     };
     meta.homepage = "https://github.com/michal-h21/vim-zettel/";
   };
@@ -15519,12 +15591,12 @@ final: prev:
 
   vim9-stargate = buildVimPlugin {
     pname = "vim9-stargate";
-    version = "2023-01-21";
+    version = "2024-01-17";
     src = fetchFromGitHub {
       owner = "monkoose";
       repo = "vim9-stargate";
-      rev = "2df5dad08e74dedb020e042e66f8f4819a48b6ca";
-      sha256 = "17vnzwfz2y7wwk8k3kvmrds50za7r6i73f7aw02fz1h7mx9jllnv";
+      rev = "b87f9e6f534de5cc261205f6fc7716ec1af28e3a";
+      sha256 = "0hzbnzh5jyphha94phz8x9j1wv1lanf9pj7nb4010h768h5ch2zg";
     };
     meta.homepage = "https://github.com/monkoose/vim9-stargate/";
   };
@@ -15567,12 +15639,12 @@ final: prev:
 
   vimagit = buildVimPlugin {
     pname = "vimagit";
-    version = "2022-07-03";
+    version = "2024-01-04";
     src = fetchFromGitHub {
       owner = "jreybert";
       repo = "vimagit";
-      rev = "308650ddc1e9a94e49fae0ea04bbc1c45f23d4c4";
-      sha256 = "1vdqdlw43zv1xgv72d2a71671j06cy7k87nsgnsa65dj190v65ky";
+      rev = "06afe48439d0118a77d622ef06eff0f7cd7d62ab";
+      sha256 = "0apymanij1b75ajwnxdzmlsnb7h6ybsck0wrh86r55gnplba0jys";
     };
     meta.homepage = "https://github.com/jreybert/vimagit/";
   };
@@ -15676,12 +15748,12 @@ final: prev:
 
   vimtex = buildVimPlugin {
     pname = "vimtex";
-    version = "2024-01-02";
+    version = "2024-01-18";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "vimtex";
-      rev = "f9b19d09ee6f0ba70dad0b5c2e710dd700681000";
-      sha256 = "1xljkawwv28kvywzykgcb0axzzcn8n3crbfzlqh7zmb337w5mwai";
+      rev = "fe20ab1bd82a23441ac55054afefcd60001947a2";
+      sha256 = "1pfhsgz768knvmjiizcfv0y5vxvrywn44p1jhqz15zx3d6svf064";
     };
     meta.homepage = "https://github.com/lervag/vimtex/";
   };
@@ -15700,12 +15772,12 @@ final: prev:
 
   vimwiki = buildVimPlugin {
     pname = "vimwiki";
-    version = "2023-10-31";
+    version = "2024-01-25";
     src = fetchFromGitHub {
       owner = "vimwiki";
       repo = "vimwiki";
-      rev = "0bb1b4945bb205a076a35b66174e5d66be8eaafe";
-      sha256 = "1vymahgvlgx864f4hwfy1ahpg1py095qz4n2dcj152z3hl7rkd4l";
+      rev = "fde35bb87e45abe930eebef5ab99a16289e53789";
+      sha256 = "0p9yfx6dg7pl96yjgyyqyyjjwdr781g0vnl7zhkxa1281sla5k9b";
     };
     meta.homepage = "https://github.com/vimwiki/vimwiki/";
   };
@@ -15758,6 +15830,18 @@ final: prev:
     meta.homepage = "https://github.com/liuchengxu/vista.vim/";
   };
 
+  vscode-nvim = buildVimPlugin {
+    pname = "vscode.nvim";
+    version = "2024-01-24";
+    src = fetchFromGitHub {
+      owner = "Mofiqul";
+      repo = "vscode.nvim";
+      rev = "826102511b9b689a16e3e55c30f2eb65eedc99f6";
+      sha256 = "0nph82xyqvcvlr0pc78r292q6givc76lz24any7p6zph9rw0zyry";
+    };
+    meta.homepage = "https://github.com/Mofiqul/vscode.nvim/";
+  };
+
   wal-vim = buildVimPlugin {
     pname = "wal.vim";
     version = "2020-11-08";
@@ -15832,12 +15916,12 @@ final: prev:
 
   wiki-vim = buildVimPlugin {
     pname = "wiki.vim";
-    version = "2023-09-25";
+    version = "2024-01-22";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "wiki.vim";
-      rev = "65b67f3669a0db078dab2750d3c51c680ee14df1";
-      sha256 = "1j6bkk2gqmdaszs6q97yxjqnp3akl1wrlbvs6r31pz0faaswaqb8";
+      rev = "41d63295e2e90a6a587c9b7792cf672b416cf0b4";
+      sha256 = "1mrmrlcq3g6ham8ywirf1bxbhrfw3xygvnl6mmrav2xydnv7yg8c";
     };
     meta.homepage = "https://github.com/lervag/wiki.vim/";
   };
@@ -16061,24 +16145,24 @@ final: prev:
 
   zen-mode-nvim = buildVimPlugin {
     pname = "zen-mode.nvim";
-    version = "2023-10-20";
+    version = "2024-01-21";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "zen-mode.nvim";
-      rev = "50e2e2a36cc97847d9ab3b1a3555ba2ef6839b50";
-      sha256 = "1xmc17cmjiyg9j0d3kmfa43npczqbhhfcnillc2ff5ai9dz4pm7s";
+      rev = "78557d972b4bfbb7488e17b5703d25164ae64e6a";
+      sha256 = "0sa7fykwi2qzb14xc8jwf7y8pygh8v1lg531ykjln0y48nrc17qv";
     };
     meta.homepage = "https://github.com/folke/zen-mode.nvim/";
   };
 
   zenbones-nvim = buildVimPlugin {
     pname = "zenbones.nvim";
-    version = "2023-10-30";
+    version = "2024-01-20";
     src = fetchFromGitHub {
       owner = "mcchrish";
       repo = "zenbones.nvim";
-      rev = "510d12c088ed45a410371c63ebd62ffb54c1615f";
-      sha256 = "1pr1qvd7fdhza3rijs0jg0byi7z82hpzsw1qvqgrz527vk0vgci0";
+      rev = "072b21d16cc1d5ae5701455fadaa47b1e8a61780";
+      sha256 = "00n9yy41qihayp3312wqnjms3la4kw0yjbb8fid26nq3a2719hjw";
     };
     meta.homepage = "https://github.com/mcchrish/zenbones.nvim/";
   };
@@ -16121,14 +16205,14 @@ final: prev:
 
   zk-nvim = buildVimPlugin {
     pname = "zk-nvim";
-    version = "2023-10-27";
+    version = "2024-01-05";
     src = fetchFromGitHub {
-      owner = "mickael-menu";
+      owner = "zk-org";
       repo = "zk-nvim";
-      rev = "142625638d2fad464939c6ee1775571aba6379c6";
-      sha256 = "1aha78jjpfrmlji5lnzzylycqvm84g9qqjmbs9ynn84yfl2brd8f";
+      rev = "fb0962b75a680561f94cae0588b8da92ea8d2fae";
+      sha256 = "0xbxkm6inxi09fb0zj4zrbfi8iyhcjn6lfrwqvmym8fnvi5pmz4c";
     };
-    meta.homepage = "https://github.com/mickael-menu/zk-nvim/";
+    meta.homepage = "https://github.com/zk-org/zk-nvim/";
   };
 
   zoomwintab-vim = buildVimPlugin {
@@ -16157,12 +16241,12 @@ final: prev:
 
   catppuccin-nvim = buildVimPlugin {
     pname = "catppuccin-nvim";
-    version = "2023-12-31";
+    version = "2024-01-23";
     src = fetchFromGitHub {
       owner = "catppuccin";
       repo = "nvim";
-      rev = "5e36ca599f4aa41bdd87fbf2c5aae4397ac55074";
-      sha256 = "1ay7cgfph2l8b5h993r94akbzgxzqfkl8cnk2m9535vbrm6vxxyx";
+      rev = "bc1f2151f23227ba02ac203c2c59ad693352a741";
+      sha256 = "0qs9s2qc3xmam66ix6blg1n4wfx6847i2ls824a75a5xr73yx15x";
     };
     meta.homepage = "https://github.com/catppuccin/nvim/";
   };
@@ -16193,36 +16277,36 @@ final: prev:
 
   embark-vim = buildVimPlugin {
     pname = "embark-vim";
-    version = "2023-12-20";
+    version = "2024-01-14";
     src = fetchFromGitHub {
       owner = "embark-theme";
       repo = "vim";
-      rev = "95f92adee0e5ad36f74fe04266554ac9c03e3fc3";
-      sha256 = "15v8wgbcckdll8j27d2v30rcbgc38hddmnfbk24p3jxx2pxdl529";
+      rev = "54dd8727a871421530bb07f3629dadab24b02183";
+      sha256 = "0qxskx7lvf91zg7fr32j5vm6v4vf1r51zq9flsdx6fvvlmaqbkry";
     };
     meta.homepage = "https://github.com/embark-theme/vim/";
   };
 
   gruvbox-community = buildVimPlugin {
     pname = "gruvbox-community";
-    version = "2023-12-10";
+    version = "2024-01-21";
     src = fetchFromGitHub {
       owner = "gruvbox-community";
       repo = "gruvbox";
-      rev = "e1f033164931797a67b68089995c8078415f9d7d";
-      sha256 = "1ffr4h7vwgnxvvx57jibj5yvyag6mn6n1v29r5haf3md1981s97g";
+      rev = "143a3b8babcfd2bce6c99d6ba496942647c3e30b";
+      sha256 = "00wg2m2591fw3d9almwdg39xvwxzz2xid86n536ygai81cirw351";
     };
     meta.homepage = "https://github.com/gruvbox-community/gruvbox/";
   };
 
   harpoon2 = buildVimPlugin {
     pname = "harpoon2";
-    version = "2023-12-28";
+    version = "2024-01-06";
     src = fetchFromGitHub {
       owner = "ThePrimeagen";
       repo = "harpoon";
-      rev = "6afc142443f8135329f8dd09b77e229f65001c0c";
-      sha256 = "0rn23lqxwfd0b1wkjyslzlqgw6hkc8r60nz5fkjbf7jnmlx7fgsq";
+      rev = "2cd4e03372f7ee5692c8caa220f479ea07970f17";
+      sha256 = "01ljz9w3agz5nnz5v0894scr8hwwd599qpxb2nm2lw45hr30chii";
     };
     meta.homepage = "https://github.com/ThePrimeagen/harpoon/";
   };
@@ -16241,12 +16325,12 @@ final: prev:
 
   nightfly = buildVimPlugin {
     pname = "nightfly";
-    version = "2023-12-26";
+    version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "bluz71";
       repo = "vim-nightfly-colors";
-      rev = "90d85c8a094266122fb1fd173e7bcc0cd0efdd49";
-      sha256 = "1c7jj6cdbq73h87ii4skbrj5y4zl4fvaq8ry69hwrw4z10w891zk";
+      rev = "0c5f52d717c65951173455a70592f6383b3487e7";
+      sha256 = "0i56cqfkzgccnic23v5k0slyqc8z9zai3zcgxka40wpg3wl02x0m";
     };
     meta.homepage = "https://github.com/bluz71/vim-nightfly-colors/";
   };
@@ -16301,36 +16385,36 @@ final: prev:
 
   rose-pine = buildVimPlugin {
     pname = "rose-pine";
-    version = "2023-10-25";
+    version = "2024-01-18";
     src = fetchFromGitHub {
       owner = "rose-pine";
       repo = "neovim";
-      rev = "92762f4fa2144c05db760ea254f4c399a56a7ef5";
-      sha256 = "1v65jvkj9z8zj6d5v6kxnz780hgc7svw0gjg3v6j9zpba4rmbs02";
+      rev = "2a4aad89a803c84d7d1555d136639cd48ade1d64";
+      sha256 = "1cc62q8smmwmccq15jngbsx9wrwnjp7gl5lryavf32qngknlcb09";
     };
     meta.homepage = "https://github.com/rose-pine/neovim/";
   };
 
   samodostal-image-nvim = buildVimPlugin {
     pname = "samodostal-image-nvim";
-    version = "2023-06-08";
+    version = "2024-01-07";
     src = fetchFromGitHub {
       owner = "samodostal";
       repo = "image.nvim";
-      rev = "dcabdf47b0b974b61d08eeafa2c519927e37cf27";
-      sha256 = "1c0s460nzw1imvvzj6b9hsalv60jmcyrfga5gldbskz58hyj739m";
+      rev = "acbd1d7d64ac0643021a6146eb0557e7c2e793d0";
+      sha256 = "0s5fxlc7igmvgpmpry1vkrl4xav37cx94ay1sg246y7y2j4j5l56";
     };
     meta.homepage = "https://github.com/samodostal/image.nvim/";
   };
 
   tinykeymap = buildVimPlugin {
     pname = "tinykeymap";
-    version = "2019-03-15";
+    version = "2024-01-05";
     src = fetchFromGitHub {
       owner = "tomtom";
       repo = "tinykeymap_vim";
-      rev = "be48fc729244f84c2d293c3db18420e7f5d74bb8";
-      sha256 = "1w4zplg0mbiv9jp70cnzb1aw5xx3x8ibnm38vsapvspzy9h8ygqx";
+      rev = "4c8beeab44be0a544bcc2aff7f68ac432ab647d8";
+      sha256 = "0y3r5i2nz8m8vy5njsyrbrcnp1jsck48h7925pqhrh11lf7a9sba";
     };
     meta.homepage = "https://github.com/tomtom/tinykeymap_vim/";
   };
@@ -16359,17 +16443,5 @@ final: prev:
     meta.homepage = "https://github.com/jhradilek/vim-snippets/";
   };
 
-  roslyn-nvim = buildVimPlugin {
-    pname = "roslyn-nvim";
-    version = "2023-12-12";
-    src = fetchFromGitHub {
-      owner = "jmederosalvarado";
-      repo = "roslyn.nvim";
-      rev = "3e360ea5a15f3cf7ddef02ff003ef24244cdff3a";
-      sha256 = "sha256-0mvlEE3/qGkv2dLzthWwGgdVTmp2Y/WJLv9ihcPumBo=";
-    };
-    meta.homepage = "https://github.com/jmederosalvarado/roslyn.nvim/";
-  };
-
 
 }
diff --git a/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix b/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix
index 39d13db42770..185681984e58 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=f21f13a";
+    version = "0.0.0+rev=ba0894e";
     src = fetchFromGitHub {
       owner = "briot";
       repo = "tree-sitter-ada";
-      rev = "f21f13afe0410311be1f78959a25aee393c569c9";
-      hash = "sha256-Qnw1skHo9Wy88WEXAxfV4kkD4v9rdvLmu/++raLIges=";
+      rev = "ba0894efa03beb70780156b91e28c716b7a4764d";
+      hash = "sha256-30yCHcO9LdZ9VKQpObWRfk49M5tC85IZvutXgzGwTjQ=";
     };
     meta.homepage = "https://github.com/briot/tree-sitter-ada";
   };
@@ -62,12 +62,12 @@
   };
   astro = buildGrammar {
     language = "astro";
-    version = "0.0.0+rev=e122a8f";
+    version = "0.0.0+rev=a092afa";
     src = fetchFromGitHub {
       owner = "virchau13";
       repo = "tree-sitter-astro";
-      rev = "e122a8fcd07e808a7b873bfadc2667834067daf1";
-      hash = "sha256-iCVRTX2fMW1g40rHcJEwwE+tfwun+reIaj5y4AFgmKk=";
+      rev = "a092afa5c330495fdfbc652766c29c66ec6880f4";
+      hash = "sha256-yYQPBGNRmr/O9hI11L3a2ydZL/lypLtabfmBdKghnzM=";
     };
     meta.homepage = "https://github.com/virchau13/tree-sitter-astro";
   };
@@ -84,23 +84,23 @@
   };
   awk = buildGrammar {
     language = "awk";
-    version = "0.0.0+rev=4b4b46c";
+    version = "0.0.0+rev=dcf4ac4";
     src = fetchFromGitHub {
       owner = "Beaglefoot";
       repo = "tree-sitter-awk";
-      rev = "4b4b46c9a44ec7fb9e8c9ce4a010295edc5be8d5";
-      hash = "sha256-bHlll+YgRpv4cSxzNAfVhexeMB7rgkzy3pdOZ5DW1ww=";
+      rev = "dcf4ac4eaff601d87cc15604765a7ae329c1b2ee";
+      hash = "sha256-ZxSgNVY5jRi6S6psG2XoNhuQnXqAjgUK7NtBK9y1WNo=";
     };
     meta.homepage = "https://github.com/Beaglefoot/tree-sitter-awk";
   };
   bash = buildGrammar {
     language = "bash";
-    version = "0.0.0+rev=7331995";
+    version = "0.0.0+rev=f7239f6";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-bash";
-      rev = "7331995b19b8f8aba2d5e26deb51d2195c18bc94";
-      hash = "sha256-VP7rJfE/k8KV1XN1w5f0YKjCnDMYU1go/up0zj1mabM=";
+      rev = "f7239f638d3dc16762563a9027faeee518ce1bd9";
+      hash = "sha256-+Mpks0FyQLl26TX63J6WhaAl/QDUR1k9wSUY5SFwL+w=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-bash";
   };
@@ -172,12 +172,12 @@
   };
   c = buildGrammar {
     language = "c";
-    version = "0.0.0+rev=212a80f";
+    version = "0.0.0+rev=34f4c7e";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-c";
-      rev = "212a80f86452bb1316324fa0db730cf52f29e05a";
-      hash = "sha256-Etl4s29YSOxiqPo4Z49N6zIYqNpIsdk/Qd0jR8jdvW4=";
+      rev = "34f4c7e751f4d661be3e23682fe2631d6615141d";
+      hash = "sha256-VqTe0teQalt35HG8b2RDPOEJyqgViqUf43MQKdhEcUM=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-c";
   };
@@ -304,12 +304,12 @@
   };
   cpp = buildGrammar {
     language = "cpp";
-    version = "0.0.0+rev=a714740";
+    version = "0.0.0+rev=3deebb6";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-cpp";
-      rev = "a71474021410973b29bfe99440d57bcd750246b1";
-      hash = "sha256-UrQ48CoUMSHmlHzOMu22c9N4hxJtHL2ZYRabYjf5byA=";
+      rev = "3deebb663506a06e179e0dd739d2b23e158f4157";
+      hash = "sha256-IN4svBz8TiDi6ADLEFgKfuY68GxIX5nG3nvtPRFt4Eo=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-cpp";
   };
@@ -326,12 +326,12 @@
   };
   csv = buildGrammar {
     language = "csv";
-    version = "0.0.0+rev=6c19574";
+    version = "0.0.0+rev=cda48a5";
     src = fetchFromGitHub {
       owner = "amaanq";
       repo = "tree-sitter-csv";
-      rev = "6c1957405bd6f7751b050f61367f1094fab91444";
-      hash = "sha256-ISG+FgauEfuH5+uCxQWA1h9/HTaWR3eJcn+k2c51dYs=";
+      rev = "cda48a5e890b30619da5bc3ff55be1b1d3d08c8d";
+      hash = "sha256-K4tOYdI68fXnWbvSat50FL/jDSb8f6gtZOhE6qKPLyg=";
     };
     location = "csv";
     meta.homepage = "https://github.com/amaanq/tree-sitter-csv";
@@ -383,12 +383,12 @@
   };
   devicetree = buildGrammar {
     language = "devicetree";
-    version = "0.0.0+rev=53b4137";
+    version = "0.0.0+rev=6b53bfd";
     src = fetchFromGitHub {
       owner = "joelspadin";
       repo = "tree-sitter-devicetree";
-      rev = "53b4137bd37e726116ea918139767f982a1584d8";
-      hash = "sha256-eHH6PiOR1xlIYFY2OcnvVVQanfAuJMkbsvDy9Wjm80U=";
+      rev = "6b53bfdb20a54727bfe344aa40907351a298f75c";
+      hash = "sha256-KaLaRfFFVNFrQmKv6G33r4H00hNkHvyTo4Aj9sBkW4s=";
     };
     meta.homepage = "https://github.com/joelspadin/tree-sitter-devicetree";
   };
@@ -414,6 +414,17 @@
     };
     meta.homepage = "https://github.com/the-mikedavis/tree-sitter-diff";
   };
+  disassembly = buildGrammar {
+    language = "disassembly";
+    version = "0.0.0+rev=0229c02";
+    src = fetchFromGitHub {
+      owner = "ColinKennedy";
+      repo = "tree-sitter-disassembly";
+      rev = "0229c0211dba909c5d45129ac784a3f4d49c243a";
+      hash = "sha256-IM3HzOhJmbb334PZ8q+r2EMi5Bv/rLoy+llPN0aghr8=";
+    };
+    meta.homepage = "https://github.com/ColinKennedy/tree-sitter-disassembly";
+  };
   dockerfile = buildGrammar {
     language = "dockerfile";
     version = "0.0.0+rev=33e22c3";
@@ -495,12 +506,12 @@
   };
   elixir = buildGrammar {
     language = "elixir";
-    version = "0.0.0+rev=11426c5";
+    version = "0.0.0+rev=511ea5e";
     src = fetchFromGitHub {
       owner = "elixir-lang";
       repo = "tree-sitter-elixir";
-      rev = "11426c5fd20eef360d5ecaf10729191f6bc5d715";
-      hash = "sha256-/tfxskct2GByqFmmWJ4IZNREpNGvDqz2kbIyLRveGrs=";
+      rev = "511ea5e0088779e4bdd76e12963ab9a5fe99983a";
+      hash = "sha256-gF+bhfaN45KmGGhLa4i2K8LiBLxY8n5fw2m6kYzx5xo=";
     };
     meta.homepage = "https://github.com/elixir-lang/tree-sitter-elixir";
   };
@@ -550,12 +561,12 @@
   };
   erlang = buildGrammar {
     language = "erlang";
-    version = "0.0.0+rev=57e6951";
+    version = "0.0.0+rev=54b6f81";
     src = fetchFromGitHub {
       owner = "WhatsApp";
       repo = "tree-sitter-erlang";
-      rev = "57e69513efd831f9cc8207d65d96bad917ca4aa4";
-      hash = "sha256-7Me0zj/+uNXgBOAyiFgljyA3hLkdGeyBKn+CaBhODMA=";
+      rev = "54b6f814f43c4eac81eeedefaa7cc8762fec6683";
+      hash = "sha256-21pSBjg3hArexHndfqIOy5q2FGl54uWyW2fWwO+3jIw=";
     };
     meta.homepage = "https://github.com/WhatsApp/tree-sitter-erlang";
   };
@@ -715,12 +726,12 @@
   };
   gitcommit = buildGrammar {
     language = "gitcommit";
-    version = "0.0.0+rev=7e3ad5f";
+    version = "0.0.0+rev=e8d9eda";
     src = fetchFromGitHub {
       owner = "gbprod";
       repo = "tree-sitter-gitcommit";
-      rev = "7e3ad5fdc61cd701e146ef78e4fc6dcdf6dbca0e";
-      hash = "sha256-Ct7zLvcJVqIaVy/wOGOPvghjwRcsHblPaTuifUcackI=";
+      rev = "e8d9eda4e5ea0b08aa39d48dab0f6553058fbe0f";
+      hash = "sha256-gn945mu9JhLocKjdNbUhQnDvXNy2xxMn36oNOsbNOz4=";
     };
     meta.homepage = "https://github.com/gbprod/tree-sitter-gitcommit";
   };
@@ -737,12 +748,12 @@
   };
   gleam = buildGrammar {
     language = "gleam";
-    version = "0.0.0+rev=2b49c49";
+    version = "0.0.0+rev=58b7cac";
     src = fetchFromGitHub {
       owner = "gleam-lang";
       repo = "tree-sitter-gleam";
-      rev = "2b49c49ef632928b5c52bb0a7269ff797d5d1414";
-      hash = "sha256-zFdyUqbJn7ighjXH+9EO+0Cf2Oj8ON8IYUZCIQUQ5dA=";
+      rev = "58b7cac8fc14c92b0677c542610d8738c373fa81";
+      hash = "sha256-VtuGsa8jKndxlyJKy9UHfZXvAgr63Q0iwceXKfEUAYE=";
     };
     meta.homepage = "https://github.com/gleam-lang/tree-sitter-gleam";
   };
@@ -803,12 +814,12 @@
   };
   gomod = buildGrammar {
     language = "gomod";
-    version = "0.0.0+rev=9b86399";
+    version = "0.0.0+rev=bbe2fe3";
     src = fetchFromGitHub {
       owner = "camdencheek";
       repo = "tree-sitter-go-mod";
-      rev = "9b86399ab733fbd548ba0e817e732cb3351082d2";
-      hash = "sha256-STi1lqsfmaiMKrk7C6fjkmJ0ehhTf+AF6hly34/3BIg=";
+      rev = "bbe2fe3be4b87e06a613e685250f473d2267f430";
+      hash = "sha256-OPtqXe6OMC9c5dgFH8Msj+6DU01LvLKVbCzGLj0PnLI=";
     };
     meta.homepage = "https://github.com/camdencheek/tree-sitter-go-mod";
   };
@@ -990,12 +1001,12 @@
   };
   html = buildGrammar {
     language = "html";
-    version = "0.0.0+rev=d742025";
+    version = "0.0.0+rev=949b780";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-html";
-      rev = "d742025fa2d8e6100f134a6ea990443aa1f074b3";
-      hash = "sha256-ZpUruxwi9S+gUy/k0DkhDGWLc65XppUhD0NeVVItYg4=";
+      rev = "949b78051835564bca937565241e5e337d838502";
+      hash = "sha256-njOFN1I+Ezg6N6v/FMPk0FKnlPnvfHijqISxex6fO40=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-html";
   };
@@ -1166,12 +1177,12 @@
   };
   kconfig = buildGrammar {
     language = "kconfig";
-    version = "0.0.0+rev=aaba009";
+    version = "0.0.0+rev=2ba709d";
     src = fetchFromGitHub {
       owner = "amaanq";
       repo = "tree-sitter-kconfig";
-      rev = "aaba009ba9d7881f0f81742da588ae70b572316d";
-      hash = "sha256-yjw1fr4utQHIrP/CA4df2adhpm+xrkvobZ5ZF5tjjEI=";
+      rev = "2ba709d40caa6c1f68b26e55ff7a53e343154cfd";
+      hash = "sha256-36x4t+HPuj+QEmOetlE3JowaAXP6eUhvkx9pZduBWgA=";
     };
     meta.homepage = "https://github.com/amaanq/tree-sitter-kconfig";
   };
@@ -1298,12 +1309,12 @@
   };
   luadoc = buildGrammar {
     language = "luadoc";
-    version = "0.0.0+rev=990926b";
+    version = "0.0.0+rev=d82b430";
     src = fetchFromGitHub {
       owner = "amaanq";
       repo = "tree-sitter-luadoc";
-      rev = "990926b13488a4bc0fc0804fc0f8400b5b0a1fb4";
-      hash = "sha256-LU8zF6gM8tlwfbdUy/tlg5ubhyFKUrwF/vU8NPXlOGQ=";
+      rev = "d82b43018a6b22d70b264ed8713be1c4daf9b0e0";
+      hash = "sha256-x1VyDzIAozcCBO6pukhwUjZ5JiZVq2+5CMWE2XXf6Fw=";
     };
     meta.homepage = "https://github.com/amaanq/tree-sitter-luadoc";
   };
@@ -1320,12 +1331,12 @@
   };
   luau = buildGrammar {
     language = "luau";
-    version = "0.0.0+rev=6953cd4";
+    version = "0.0.0+rev=e5f7a02";
     src = fetchFromGitHub {
       owner = "amaanq";
       repo = "tree-sitter-luau";
-      rev = "6953cd4fa5967c9aa3c769b4e4c7e69c904b9fa9";
-      hash = "sha256-QGJgbwDSgkiiE7yt6HHkGH2t3ZNoY1+0VieX7Ccn/Z4=";
+      rev = "e5f7a020967407f73959592decdb147bb5fc30bb";
+      hash = "sha256-5Tnqt4PA3xX2Gk0CvlzVpWXI3OcqzsIJov4Kn0EWN+w=";
     };
     meta.homepage = "https://github.com/amaanq/tree-sitter-luau";
   };
@@ -1353,36 +1364,36 @@
   };
   markdown = buildGrammar {
     language = "markdown";
-    version = "0.0.0+rev=f9820b2";
+    version = "0.0.0+rev=28aa3ba";
     src = fetchFromGitHub {
       owner = "MDeiml";
       repo = "tree-sitter-markdown";
-      rev = "f9820b2db958228f9be339b67d2de874d065866e";
-      hash = "sha256-0T0P018Zb4tfU2D4PLhiW8tunOInlRtrHajPOVqOpwc=";
+      rev = "28aa3baef73bd458d053b613b8bd10fd102b4405";
+      hash = "sha256-HSjKYqjrJKPLbdq1UTvk/KnDqsIzVO7k5syCsIpAZpw=";
     };
     location = "tree-sitter-markdown";
     meta.homepage = "https://github.com/MDeiml/tree-sitter-markdown";
   };
   markdown_inline = buildGrammar {
     language = "markdown_inline";
-    version = "0.0.0+rev=f9820b2";
+    version = "0.0.0+rev=28aa3ba";
     src = fetchFromGitHub {
       owner = "MDeiml";
       repo = "tree-sitter-markdown";
-      rev = "f9820b2db958228f9be339b67d2de874d065866e";
-      hash = "sha256-0T0P018Zb4tfU2D4PLhiW8tunOInlRtrHajPOVqOpwc=";
+      rev = "28aa3baef73bd458d053b613b8bd10fd102b4405";
+      hash = "sha256-HSjKYqjrJKPLbdq1UTvk/KnDqsIzVO7k5syCsIpAZpw=";
     };
     location = "tree-sitter-markdown-inline";
     meta.homepage = "https://github.com/MDeiml/tree-sitter-markdown";
   };
   matlab = buildGrammar {
     language = "matlab";
-    version = "0.0.0+rev=6071891";
+    version = "0.0.0+rev=79d8b25";
     src = fetchFromGitHub {
       owner = "acristoffers";
       repo = "tree-sitter-matlab";
-      rev = "6071891a8c39600203eba20513666cf93b4d650a";
-      hash = "sha256-H6eCCZtE1MbSpHyvdcVbG3piBijM499imiNDIhCoTJA=";
+      rev = "79d8b25f57b48f83ae1333aff6723b83c9532e37";
+      hash = "sha256-DCAMxQqWHM54yzNzF1FjaU0+vETbLhfSZXNq+62DzhE=";
     };
     meta.homepage = "https://github.com/acristoffers/tree-sitter-matlab";
   };
@@ -1543,24 +1554,24 @@
   };
   ocaml = buildGrammar {
     language = "ocaml";
-    version = "0.0.0+rev=694c577";
+    version = "0.0.0+rev=4abfdc1";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-ocaml";
-      rev = "694c57718fd85d514f8b81176038e7a4cfabcaaf";
-      hash = "sha256-j3Hv2qOMxeBNOW+WIgIYzG3zMIFWPQpoHe94b2rT+A8=";
+      rev = "4abfdc1c7af2c6c77a370aee974627be1c285b3b";
+      hash = "sha256-ycmjIKfrsVSVHmPP3HCxfk5wcBIF/JFH8OnU8mY1Cc8=";
     };
     location = "ocaml";
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-ocaml";
   };
   ocaml_interface = buildGrammar {
     language = "ocaml_interface";
-    version = "0.0.0+rev=694c577";
+    version = "0.0.0+rev=4abfdc1";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-ocaml";
-      rev = "694c57718fd85d514f8b81176038e7a4cfabcaaf";
-      hash = "sha256-j3Hv2qOMxeBNOW+WIgIYzG3zMIFWPQpoHe94b2rT+A8=";
+      rev = "4abfdc1c7af2c6c77a370aee974627be1c285b3b";
+      hash = "sha256-ycmjIKfrsVSVHmPP3HCxfk5wcBIF/JFH8OnU8mY1Cc8=";
     };
     location = "interface";
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-ocaml";
@@ -1634,34 +1645,47 @@
   };
   perl = buildGrammar {
     language = "perl";
-    version = "0.0.0+rev=655632f";
+    version = "0.0.0+rev=a30394f";
     src = fetchFromGitHub {
       owner = "tree-sitter-perl";
       repo = "tree-sitter-perl";
-      rev = "655632fa7f9174acbdbf1ad2abdac90ad3aa57a1";
-      hash = "sha256-0EKZTdK9hXWS7VmX8QljwLDPV0yN2d99A7ZnhXRXpPk=";
+      rev = "a30394f61b607f48c841c6e085d5219f23872816";
+      hash = "sha256-3aWBh5jKXUYXxOv+RKyEpwJVOoP7QuaRQZHw0yOy6tQ=";
     };
     meta.homepage = "https://github.com/tree-sitter-perl/tree-sitter-perl";
   };
   php = buildGrammar {
     language = "php";
-    version = "0.0.0+rev=0a99dec";
+    version = "0.0.0+rev=dc8bd41";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-php";
-      rev = "0a99deca13c4af1fb9adcb03c958bfc9f4c740a9";
-      hash = "sha256-MfCws6WvaYJPoxoSdk1OUkqfVGCNtfMDTyndSZpABqI=";
+      rev = "dc8bd4150401f6c08591414f2a5480b7f2a874c8";
+      hash = "sha256-gQGj6qKjyAie6RgHZl1nVUiELDyR+/iIzFMQQ/obus8=";
     };
+    location = "php";
+    meta.homepage = "https://github.com/tree-sitter/tree-sitter-php";
+  };
+  php_only = buildGrammar {
+    language = "php_only";
+    version = "0.0.0+rev=dc8bd41";
+    src = fetchFromGitHub {
+      owner = "tree-sitter";
+      repo = "tree-sitter-php";
+      rev = "dc8bd4150401f6c08591414f2a5480b7f2a874c8";
+      hash = "sha256-gQGj6qKjyAie6RgHZl1nVUiELDyR+/iIzFMQQ/obus8=";
+    };
+    location = "php_only";
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-php";
   };
   phpdoc = buildGrammar {
     language = "phpdoc";
-    version = "0.0.0+rev=915a527";
+    version = "0.0.0+rev=67db260";
     src = fetchFromGitHub {
       owner = "claytonrcarter";
       repo = "tree-sitter-phpdoc";
-      rev = "915a527d5aafa81b31acf67fab31b0ac6b6319c0";
-      hash = "sha256-DYNJ/i+VBuTOxuphJn4nklTLfV7GuNP1RCCuf5qAYR4=";
+      rev = "67db260cf4e99a02283ae26b808d59b86d42dc0f";
+      hash = "sha256-IMj5xL1SB1JYI0hweIq+kSXkoeWBqAzAu/35FO2xi+U=";
     };
     meta.homepage = "https://github.com/claytonrcarter/tree-sitter-phpdoc";
   };
@@ -1720,6 +1744,17 @@
     };
     meta.homepage = "https://github.com/amaanq/tree-sitter-pony";
   };
+  printf = buildGrammar {
+    language = "printf";
+    version = "0.0.0+rev=0469630";
+    src = fetchFromGitHub {
+      owner = "ObserverOfTime";
+      repo = "tree-sitter-printf";
+      rev = "04696305caceab64a78e3a749774718d87ba85a1";
+      hash = "sha256-MWrKImt7+E4LYsrSMKIEifXmb6MeuiNxy3pt1DCCLBQ=";
+    };
+    meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-printf";
+  };
   prisma = buildGrammar {
     language = "prisma";
     version = "0.0.0+rev=eca2596";
@@ -1777,12 +1812,12 @@
   };
   psv = buildGrammar {
     language = "psv";
-    version = "0.0.0+rev=6c19574";
+    version = "0.0.0+rev=cda48a5";
     src = fetchFromGitHub {
       owner = "amaanq";
       repo = "tree-sitter-csv";
-      rev = "6c1957405bd6f7751b050f61367f1094fab91444";
-      hash = "sha256-ISG+FgauEfuH5+uCxQWA1h9/HTaWR3eJcn+k2c51dYs=";
+      rev = "cda48a5e890b30619da5bc3ff55be1b1d3d08c8d";
+      hash = "sha256-K4tOYdI68fXnWbvSat50FL/jDSb8f6gtZOhE6qKPLyg=";
     };
     location = "psv";
     meta.homepage = "https://github.com/amaanq/tree-sitter-csv";
@@ -2020,34 +2055,34 @@
   };
   ruby = buildGrammar {
     language = "ruby";
-    version = "0.0.0+rev=f257f3f";
+    version = "0.0.0+rev=4d9ad3f";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-ruby";
-      rev = "f257f3f57833d584050336921773738a3fd8ca22";
-      hash = "sha256-0EaU9O67faGwtO1GIxjK4Uv1etd0p1vtfrVB3d6TDF8=";
+      rev = "4d9ad3f010fdc47a8433adcf9ae30c8eb8475ae7";
+      hash = "sha256-d3pN+Z8qGDDKuy8OyguGNVD97m2VasVvi8CckdCsOB8=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-ruby";
   };
   rust = buildGrammar {
     language = "rust";
-    version = "0.0.0+rev=79456e6";
+    version = "0.0.0+rev=e0e8b6d";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-rust";
-      rev = "79456e6080f50fc1ca7c21845794308fa5d35a51";
-      hash = "sha256-57CuGp7gP+AVYIR3HbMXnmmSAbtlpWrOHRYpMbmWfds=";
+      rev = "e0e8b6de6e4aa354749c794f5f36a906dcccda74";
+      hash = "sha256-egTxBuliboYbl+5N6Jdt960EMLByVmLqSmQLps3rEok=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-rust";
   };
   scala = buildGrammar {
     language = "scala";
-    version = "0.0.0+rev=696965e";
+    version = "0.0.0+rev=45b5ba0";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-scala";
-      rev = "696965ee3bafd47f4b5204d1e63b4ea4b52d9f9b";
-      hash = "sha256-07C9tAaG7p2xCzoAR2choNh9A7mJyusfQviqgcZmlgE=";
+      rev = "45b5ba0e749a8477a8fd2666f082f352859bdc3c";
+      hash = "sha256-tH2STGmCaVHDL4fOh8whPmiHbwKu8ZxjS4wDt+qVjjs=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-scala";
   };
@@ -2188,12 +2223,12 @@
   };
   sql = buildGrammar {
     language = "sql";
-    version = "0.0.0+rev=b599f6a";
+    version = "0.0.0+rev=fd70fb3";
     src = fetchFromGitHub {
       owner = "derekstride";
       repo = "tree-sitter-sql";
-      rev = "b599f6a1ca37cb5bae827a424cd98371a0d91bdc";
-      hash = "sha256-GwDkAgWcMyASzfd8layZjjEigXelJbtQTgWe7VBLgwM=";
+      rev = "fd70fb358d164cd93fbe2674a9cca276dc5203f7";
+      hash = "sha256-GXQH/df33jxrIRXkJg2qRXrP6/3k+PodNxZ1O/ceaT8=";
     };
     meta.homepage = "https://github.com/derekstride/tree-sitter-sql";
   };
@@ -2287,12 +2322,12 @@
   };
   swift = buildGrammar {
     language = "swift";
-    version = "0.0.0+rev=f1a48a3";
+    version = "0.0.0+rev=1c58633";
     src = fetchFromGitHub {
       owner = "alex-pinkus";
       repo = "tree-sitter-swift";
-      rev = "f1a48a33a7ceaf8817f7a340ea4ef1b549ffa176";
-      hash = "sha256-koMsIPFCvmJ/zIPOcv/ZSyXQSBjbFhGBq8r3IXCPWdQ=";
+      rev = "1c586339fb00014b23d6933f2cc32b588a226f3b";
+      hash = "sha256-bFJfPIc8H133yASZe9chgtJEBuNQ7oWm6/6Yu6jWwhI=";
     };
     generate = true;
     meta.homepage = "https://github.com/alex-pinkus/tree-sitter-swift";
@@ -2355,12 +2390,12 @@
   };
   templ = buildGrammar {
     language = "templ";
-    version = "0.0.0+rev=14d1057";
+    version = "0.0.0+rev=a3ef3d8";
     src = fetchFromGitHub {
       owner = "vrischmann";
       repo = "tree-sitter-templ";
-      rev = "14d105789af342f7f0c32bff2fec1a6edec59f60";
-      hash = "sha256-wj0LH5kgMEONd4xi0c52s+UnnQhw1DJ9fE+EumKiIMM=";
+      rev = "a3ef3d8e73515b196d30adf9ee5115f057f7a2c6";
+      hash = "sha256-henVqdcvCURqjiueaipB2YVLhh3gbVqFiLMfvGS3t6M=";
     };
     meta.homepage = "https://github.com/vrischmann/tree-sitter-templ";
   };
@@ -2411,23 +2446,23 @@
   };
   tlaplus = buildGrammar {
     language = "tlaplus";
-    version = "0.0.0+rev=aeb2e8f";
+    version = "0.0.0+rev=aaf5bb5";
     src = fetchFromGitHub {
       owner = "tlaplus-community";
       repo = "tree-sitter-tlaplus";
-      rev = "aeb2e8fdc417c32ae7d1149cfa2a8ddc3b293600";
-      hash = "sha256-fETWuo/mZA6tCux0Hsdbg/vTxo/cdtIES9VIp75twMw=";
+      rev = "aaf5bb5c1df0a6e583bb51efa519a9ac788b2ad8";
+      hash = "sha256-p/khQ31bReopPyZ1TvUKI6bnFipWiGrxKO7cAYzeku4=";
     };
     meta.homepage = "https://github.com/tlaplus-community/tree-sitter-tlaplus";
   };
   todotxt = buildGrammar {
     language = "todotxt";
-    version = "0.0.0+rev=0207f6a";
+    version = "0.0.0+rev=3937c5c";
     src = fetchFromGitHub {
       owner = "arnarg";
       repo = "tree-sitter-todotxt";
-      rev = "0207f6a4ab6aeafc4b091914d31d8235049a2578";
-      hash = "sha256-FWVW+qWOUSri+qf+qistf8bKWJCTxUKkoO66yUYtwHI=";
+      rev = "3937c5cd105ec4127448651a21aef45f52d19609";
+      hash = "sha256-OeAh51rcFTiexAraRzIZUR/A8h9RPwKY7rmtc3ZzoRQ=";
     };
     meta.homepage = "https://github.com/arnarg/tree-sitter-todotxt.git";
   };
@@ -2444,12 +2479,12 @@
   };
   tsv = buildGrammar {
     language = "tsv";
-    version = "0.0.0+rev=6c19574";
+    version = "0.0.0+rev=cda48a5";
     src = fetchFromGitHub {
       owner = "amaanq";
       repo = "tree-sitter-csv";
-      rev = "6c1957405bd6f7751b050f61367f1094fab91444";
-      hash = "sha256-ISG+FgauEfuH5+uCxQWA1h9/HTaWR3eJcn+k2c51dYs=";
+      rev = "cda48a5e890b30619da5bc3ff55be1b1d3d08c8d";
+      hash = "sha256-K4tOYdI68fXnWbvSat50FL/jDSb8f6gtZOhE6qKPLyg=";
     };
     location = "tsv";
     meta.homepage = "https://github.com/amaanq/tree-sitter-csv";
@@ -2569,12 +2604,12 @@
   };
   v = buildGrammar {
     language = "v";
-    version = "0.0.0+rev=b59edea";
+    version = "0.0.0+rev=9ac84e6";
     src = fetchFromGitHub {
       owner = "v-analyzer";
       repo = "v-analyzer";
-      rev = "b59edeac4a819999ebc5a78bbd384bd30bf6fa30";
-      hash = "sha256-u1+EV3iEPU1NAHxKdThe1qXUx6jDt1MRBMTEScf8uQw=";
+      rev = "9ac84e62396bb13c8f1d11f967f0c0f2dec1a448";
+      hash = "sha256-a+oV175rnCgf5uTjmYkxTelekesBCEhcTOnKGorM88c=";
     };
     location = "tree_sitter_v";
     meta.homepage = "https://github.com/v-analyzer/v-analyzer";
@@ -2625,12 +2660,12 @@
   };
   vimdoc = buildGrammar {
     language = "vimdoc";
-    version = "0.0.0+rev=4f8ba9e";
+    version = "0.0.0+rev=ed8695a";
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "tree-sitter-vimdoc";
-      rev = "4f8ba9e39c8b3fbaf0bb5f70ac255474a9099359";
-      hash = "sha256-WSDz3vP/qNW1VGmXd5aGjO9PrJpjBNN4wdBohSbh9co=";
+      rev = "ed8695ad8de39c3f073da130156f00b1148e2891";
+      hash = "sha256-q5Ln8WPFrtKBfZnaAAlMh3Q/eczEt6wCMZAtx+ISCKg=";
     };
     meta.homepage = "https://github.com/neovim/tree-sitter-vimdoc";
   };
@@ -2669,12 +2704,12 @@
   };
   wing = buildGrammar {
     language = "wing";
-    version = "0.0.0+rev=d85ef04";
+    version = "0.0.0+rev=9c3a40d";
     src = fetchFromGitHub {
       owner = "winglang";
       repo = "wing";
-      rev = "d85ef04bb7e75e2627348b45a5f357a2c7fbee91";
-      hash = "sha256-1N/vRQpgazayL95OA6PxzhxhjU+Uj9lgrEZnflQ4FLE=";
+      rev = "9c3a40d7e51c2963b19d1f7614f9b551cad66bb6";
+      hash = "sha256-4L6vx4MHTuTx/5DKKWSVRygCRHI/y9YYbMs/ejAjZXw=";
     };
     location = "libs/tree-sitter-wing";
     generate = true;
@@ -2736,6 +2771,17 @@
     };
     meta.homepage = "https://github.com/Philipp-M/tree-sitter-yuck";
   };
+  zathurarc = buildGrammar {
+    language = "zathurarc";
+    version = "0.0.0+rev=b47016d";
+    src = fetchFromGitHub {
+      owner = "Freed-Wu";
+      repo = "tree-sitter-zathurarc";
+      rev = "b47016df5688ef91ad4532138b6210c7944d6483";
+      hash = "sha256-Na0Z8mRdXYwAnw3wyc978aoQjF/m49IYsnQx3AG8kOc=";
+    };
+    meta.homepage = "https://github.com/Freed-Wu/tree-sitter-zathurarc";
+  };
   zig = buildGrammar {
     language = "zig";
     version = "0.0.0+rev=0d08703";
diff --git a/pkgs/applications/editors/vim/plugins/overrides.nix b/pkgs/applications/editors/vim/plugins/overrides.nix
index 6a98dae86bc0..21267a14230f 100644
--- a/pkgs/applications/editors/vim/plugins/overrides.nix
+++ b/pkgs/applications/editors/vim/plugins/overrides.nix
@@ -97,7 +97,6 @@
 , errcheck
 , go-motion
 , go-tools
-, gocode
 , gocode-gomod
 , godef
 , gogetdoc
@@ -110,6 +109,7 @@
 , iferr
 , impl
 , reftools
+, revive
 , # hurl dependencies
   hurl
 , # must be lua51Packages
@@ -284,6 +284,10 @@
     dependencies = with self; [ nvim-cmp nvim-snippy ];
   };
 
+  cmp-tabby = super.cmp-tabby.overrideAttrs {
+    dependencies = with self; [ nvim-cmp ];
+  };
+
   cmp-tabnine = super.cmp-tabnine.overrideAttrs {
     buildInputs = [ tabnine ];
 
@@ -666,6 +670,14 @@
     dependencies = with self; [ plenary-nvim ];
   };
 
+  haskell-snippets-nvim = super.haskell-snippets-nvim.overrideAttrs {
+    dependencies = [ self.luasnip ];
+  };
+
+  haskell-scope-highlighting-nvim = super.haskell-scope-highlighting-nvim.overrideAttrs {
+    dependencies = with self; [ nvim-treesitter ];
+  };
+
   hex-nvim = super.hex-nvim.overrideAttrs {
     postPatch = ''
       substituteInPlace lua/hex.lua --replace xxd ${xxd}/bin/xxd
@@ -1112,7 +1124,7 @@
         pname = "sg-nvim-rust";
         inherit (old) version src;
 
-        cargoHash = "sha256-U+EGS0GMWzE2yFyMH04gXpR9lR7HRMgWBecqICfTUbE=";
+        cargoHash = "sha256-BDNFZ/7nnfvtBA7T6a7MDNJsq/cOI9tgW0kxUoIcbV8=";
 
         nativeBuildInputs = [ pkg-config ];
 
@@ -1526,13 +1538,11 @@
   vim-go =
     let
       binPath = lib.makeBinPath [
-        # TODO: package commented packages
         asmfmt
         delve
         errcheck
         go-motion
-        go-tools # contains staticcheck
-        gocode
+        go-tools # contains staticcheck, keyify
         gocode-gomod
         godef
         gogetdoc
@@ -1540,15 +1550,12 @@
         golangci-lint
         gomodifytags
         gopls
-        # gorename
         gotags
-        gotools
-        # guru
+        gotools # contains guru, gorename
         iferr
         impl
-        # keyify
         reftools
-        # revive
+        revive
       ];
     in
     super.vim-go.overrideAttrs {
diff --git a/pkgs/applications/editors/vim/plugins/vim-plugin-names b/pkgs/applications/editors/vim/plugins/vim-plugin-names
index 6c68c0ea92b4..5dbf858595b6 100644
--- a/pkgs/applications/editors/vim/plugins/vim-plugin-names
+++ b/pkgs/applications/editors/vim/plugins/vim-plugin-names
@@ -152,6 +152,7 @@ https://github.com/hrsh7th/cmp-path/,,
 https://github.com/lukas-reineke/cmp-rg/,HEAD,
 https://github.com/dcampos/cmp-snippy/,HEAD,
 https://github.com/f3fora/cmp-spell/,,
+https://github.com/nzlov/cmp-tabby/,HEAD,
 https://github.com/tzachar/cmp-tabnine/,,
 https://github.com/andersevenrud/cmp-tmux/,,
 https://github.com/ray-x/cmp-treesitter/,,
@@ -346,6 +347,8 @@ https://github.com/m4xshen/hardtime.nvim/,HEAD,
 https://git.sr.ht/~sircmpwn/hare.vim,HEAD,
 https://github.com/ThePrimeagen/harpoon/,master,
 https://github.com/ThePrimeagen/harpoon/,harpoon2,harpoon2
+https://github.com/kiyoon/haskell-scope-highlighting.nvim/,HEAD,
+https://github.com/mrcjkb/haskell-snippets.nvim/,HEAD,
 https://github.com/MrcJkb/haskell-tools.nvim/,HEAD,
 https://github.com/neovimhaskell/haskell-vim/,,
 https://github.com/wenzel-hoffman/haskell-with-unicode.vim/,HEAD,
@@ -594,6 +597,7 @@ https://github.com/leoluz/nvim-dap-go/,HEAD,
 https://github.com/mfussenegger/nvim-dap-python/,HEAD,
 https://github.com/rcarriga/nvim-dap-ui/,,
 https://github.com/theHamsta/nvim-dap-virtual-text/,,
+https://github.com/amrbashir/nvim-docs-view/,HEAD,
 https://github.com/allendang/nvim-expand-expr/,,
 https://github.com/vijaymarupudi/nvim-fzf/,,
 https://github.com/vijaymarupudi/nvim-fzf-commands/,,
@@ -816,6 +820,7 @@ https://github.com/godlygeek/tabular/,,
 https://github.com/AndrewRadev/tagalong.vim/,,
 https://github.com/preservim/tagbar/,,
 https://github.com/vim-scripts/taglist.vim/,,
+https://github.com/themaxmarchuk/tailwindcss-colors.nvim/,HEAD,
 https://github.com/wellle/targets.vim/,,
 https://github.com/tools-life/taskwiki/,,
 https://github.com/tomtom/tcomment_vim/,,
@@ -1328,6 +1333,7 @@ https://github.com/jubnzv/virtual-types.nvim/,HEAD,
 https://github.com/vim-scripts/vis/,,
 https://github.com/navicore/vissort.vim/,,
 https://github.com/liuchengxu/vista.vim/,,
+https://github.com/Mofiqul/vscode.nvim/,,
 https://github.com/dylanaraps/wal.vim/,,
 https://github.com/mattn/webapi-vim/,,
 https://github.com/DingDean/wgsl.vim/,HEAD,
diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix
index dd94ae1086c5..11db90fa4050 100644
--- a/pkgs/applications/editors/vscode/extensions/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/default.nix
@@ -122,6 +122,21 @@ let
         };
       };
 
+      albymor.increment-selection = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "increment-selection";
+          publisher = "albymor";
+          version = "0.2.0";
+          sha256 = "sha256-iP4c0xLPiTsgD8Q8Kq9jP54HpdnBveKRY31Ro97ROJ8=";
+        };
+        meta = {
+          description = "Increment, decrement or reverse selection with multiple cursors";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=albymor.increment-selection";
+          homepage = "https://github.com/albymor/Increment-Selection";
+          license = lib.licenses.mit;
+        };
+      };
+
       alefragnani.bookmarks = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "bookmarks";
@@ -472,6 +487,21 @@ let
         };
       };
 
+      bazelbuild.vscode-bazel = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "vscode-bazel";
+          publisher = "bazelbuild";
+          version = "0.7.0";
+          sha256 = "05wvih09184bsp4rv2m55z0sasra2qrvch5m3bkbrjq7rcqgibgx";
+        };
+        meta = {
+          description = "Bazel support for Visual Studio Code";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=BazelBuild.vscode-bazel";
+          homepage = "https://github.com/bazelbuild/vscode-bazel";
+          license = lib.licenses.asl20;
+        };
+      };
+
       bbenoist.nix = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "Nix";
@@ -591,8 +621,8 @@ let
         mktplcRef = {
           name = "vscode-intelephense-client";
           publisher = "bmewburn";
-          version = "1.10.1";
-          sha256 = "sha256-VZQ3dpwj4RWZuyMba8DM7+JcIBSYB8zimZOkP5mJbms=";
+          version = "1.10.2";
+          sha256 = "sha256-he/aPcsxfqYWI/RJ51d5V0reaTPTATci34xPm93qxGs=";
         };
         meta = {
           description = "PHP code intelligence for Visual Studio Code";
@@ -675,6 +705,22 @@ let
         };
       };
 
+      carrie999.cyberpunk-2020 = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "cyberpunk-2020";
+          publisher = "carrie999";
+          version = "0.1.4";
+          sha256 = "sha256-tVbd+j9+90Z07+jGAiT0gylZN9YWHdJmq2sh1wf2oGE=";
+        };
+        meta = {
+          description = "A cyberpunk-inspired colour theme to satisfy your neon dreams";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=carrie999.cyberpunk-2020";
+          homepage = "https://github.com/Carrie999/cyberpunk";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.d3vil0p3r ];
+        };
+      };
+
       catppuccin = {
         catppuccin-vsc = buildVscodeMarketplaceExtension {
           mktplcRef = {
@@ -906,8 +952,8 @@ let
         mktplcRef = {
           name = "vscode-markdownlint";
           publisher = "DavidAnson";
-          version = "0.53.0";
-          sha256 = "sha256-ApCX636M51zN9obFqrUHmaJB3YoFmJPQfjKEWf9bosk=";
+          version = "0.54.0";
+          sha256 = "sha256-BrPFFRspJIz1U08hPbLziCmRUeZv2NhRrTCx6qvhOJw=";
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/DavidAnson.vscode-markdownlint/changelog";
@@ -939,8 +985,8 @@ let
         mktplcRef = {
           name = "vscode-eslint";
           publisher = "dbaeumer";
-          version = "2.4.2";
-          sha256 = "sha256-eIjaiVQ7PNJUtOiZlM+lw6VmW07FbMWPtY7UoedWtbw=";
+          version = "2.4.4";
+          sha256 = "sha256-NJGsMme/+4bvED/93SGojYTH03EZbtKe5LyvocywILA=";
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/dbaeumer.vscode-eslint/changelog";
@@ -1073,6 +1119,23 @@ let
         meta = { license = lib.licenses.mit; };
       };
 
+      dhedgecock.radical-vscode = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "radical-vscode";
+          publisher = "dhedgecock";
+          version = "3.3.1";
+          sha256 = "sha256-VvFQovuE+I0lqXU9fHrmk7nWMpuuWafqm9Acwb0+QYg=";
+        };
+        meta = {
+          changelog = "https://marketplace.visualstudio.com/items/dhedgecock.radical-vscode/changelog";
+          description = "A dark theme for radical hacking inspired by retro futuristic design";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=dhedgecock.radical-vscode";
+          homepage = "https://github.com/dhedgecock/radical-vscode";
+          license = lib.licenses.isc;
+          maintainers = [ lib.maintainers.d3vil0p3r ];
+        };
+      };
+
       disneystreaming.smithy = buildVscodeMarketplaceExtension {
         mktplcRef = {
           publisher = "disneystreaming";
@@ -1101,6 +1164,12 @@ let
       };
 
       donjayamanne.githistory = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "githistory";
+          publisher = "donjayamanne";
+          version = "0.6.20";
+          sha256 = "sha256-nEdYS9/cMS4dcbFje23a47QBZr9eDK3dvtkFWqA+OHU=";
+        };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/donjayamanne.githistory/changelog";
           description = "View git log, file history, compare branches or commits";
@@ -1109,12 +1178,6 @@ let
           license = lib.licenses.mit;
           maintainers = [ ];
         };
-        mktplcRef = {
-          name = "githistory";
-          publisher = "donjayamanne";
-          version = "0.6.20";
-          sha256 = "sha256-nEdYS9/cMS4dcbFje23a47QBZr9eDK3dvtkFWqA+OHU=";
-        };
       };
 
       dotenv.dotenv-vscode = buildVscodeMarketplaceExtension {
@@ -1234,8 +1297,8 @@ let
         mktplcRef = {
           name = "elixir-ls";
           publisher = "JakeBecker";
-          version = "0.18.1";
-          sha256 = "sha256-PdXoc9+ejYr1SiikuabUH+2tt1tByJn5gycaHrHuaBE=";
+          version = "0.19.0";
+          sha256 = "sha256-31eenBOVUEY3MFaVmAjZsypr7U0d6IfVR3ZJfDqi3OY=";
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/JakeBecker.elixir-ls/changelog";
@@ -1580,8 +1643,8 @@ let
         mktplcRef = {
           publisher = "github";
           name = "copilot";
-          version = "1.143.601";
-          sha256 = "sha256-Ge/q1fAfhI5EuJFLHZqZyuPahHSgES7G0ns9FbS9vzA=";
+          version = "1.151.659";
+          sha256 = "sha256-6jz7Nb9SGON7AXL4KJwC4H03la9JqLCX+AyBEvxD4HA=";
         };
 
         meta = {
@@ -1597,8 +1660,8 @@ let
         mktplcRef = {
           publisher = "github";
           name = "copilot-chat";
-          version = "0.11.2023111001";
-          sha256 = "sha256-sBDvqqyq0R0ZyS81G61fI9Vd860RIjhNzCqY0bdz1mg=";
+          version = "0.11.2023120102";
+          sha256 = "sha256-EUegM4sVP/vDikNr4LwnWzhDBSgfxYe6mxnrhSdXhIQ=";
         };
         meta = {
           description = "GitHub Copilot Chat is a companion extension to GitHub Copilot that houses experimental chat features";
@@ -1630,8 +1693,8 @@ let
         mktplcRef = {
           name = "vscode-github-actions";
           publisher = "github";
-          version = "0.25.6";
-          sha256 = "sha256-HRj/AQI9E6HDkZ2ok/h/+c9HHq1wVXQPAt5mb/Ij+BI=";
+          version = "0.26.2";
+          sha256 = "sha256-sEc6Fbn4XpK8vNK32R4fjnx/R+1xYOwcuhKlo7sPd5o=";
         };
         meta = {
           description = "A Visual Studio Code extension for GitHub Actions workflows and runs for github.com hosted repositories";
@@ -1651,8 +1714,8 @@ let
           # the VSCode Marketplace and use a calver scheme. We should avoid
           # using preview versions, because they can require insider versions
           # of VS Code
-          version = "0.75.2023101209";
-          sha256 = "1saz4brd5k1wyy7pz1h3jcl4kq35f78s2q8drjd7v2k97jhy8la1";
+          version = "0.78.1";
+          sha256 = "sha256-T9oW6o4ItZfR8E1qrcH3nhMvVB6ihi4kpiDz7YGHOcI=";
         };
         meta = { license = lib.licenses.mit; };
       };
@@ -1848,6 +1911,21 @@ let
         };
       };
 
+      iliazeus.vscode-ansi = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "vscode-ansi";
+          publisher = "iliazeus";
+          version = "1.1.6";
+          sha256 = "sha256-ZPV8zd/GkXOGf6s8fz9ZPmC3i1jO0wFAqV0E67lW0do=";
+        };
+        meta = {
+          description = "ANSI color styling for text documents";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=iliazeus.vscode-ansi";
+          homepage = "https://github.com/iliazeus/vscode-ansi";
+          license = lib.licenses.mit;
+        };
+      };
+
       influxdata.flux = buildVscodeMarketplaceExtension {
         mktplcRef = {
           publisher = "influxdata";
@@ -1930,6 +2008,21 @@ let
         };
       };
 
+      jamesyang999.vscode-emacs-minimum = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "vscode-emacs-minimum";
+          publisher = "jamesyang999";
+          version = "1.1.1";
+          sha256 = "sha256-qxnAhT2UGTQmPw9XmdBdx0F0NNLAaU1/ES9jiqiRrGI=";
+        };
+        meta = {
+          description = "Minimal emacs key bindings for VSCode";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=jamesyang999.vscode-emacs-minimum";
+          homepage = "https://github.com/futurist/vscode-emacs-minimum";
+          license = lib.licenses.unfree;
+        };
+      };
+
       janet-lang.vscode-janet = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "vscode-janet";
@@ -2376,8 +2469,8 @@ let
         mktplcRef = {
           name = "direnv";
           publisher = "mkhl";
-          version = "0.15.2";
-          sha256 = "06lp4qgnksklgc6nvx1l9z38y7apbx0a6v886nd15aq9rq8my0ka";
+          version = "0.16.0";
+          sha256 = "sha256-u2AFjvhm3zio1ygW9yD9ZwbywLrEssd0O7/0AtfCvMo=";
         };
 
         meta = {
@@ -2743,6 +2836,22 @@ let
         };
       };
 
+      nur.just-black = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "just-black";
+          publisher = "nur";
+          version = "3.1.1";
+          sha256 = "sha256-fatJZquCDsLDFGVzBol2D6LIZUbZ6GzqcVEFAwLodW0=";
+        };
+        meta = {
+          description = "A dark theme designed specifically for syntax highlighting";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=nur.just-black";
+          homepage = "https://github.com/nurmohammed840/extension.vsix/tree/Just-Black";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.d3vil0p3r ];
+        };
+      };
+
       nvarner.typst-lsp = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "typst-lsp";
@@ -2892,6 +3001,21 @@ let
         };
       };
 
+      quicktype.quicktype = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "quicktype";
+          publisher = "quicktype";
+          version = "12.0.46";
+          sha256 = "sha256-NTZ0BujnA+COg5txOLXSZSp8TPD1kZNfZPjnvZUL9lc=";
+        };
+        meta = {
+          description = "Infer types from sample JSON data";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=quicktype.quicktype";
+          homepage = "https://github.com/glideapps/quicktype";
+          license = lib.licenses.asl20;
+        };
+      };
+
       rebornix.ruby = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "ruby";
@@ -3111,11 +3235,12 @@ let
         mktplcRef = {
           name = "crates";
           publisher = "serayuzgur";
-          version = "0.6.5";
-          sha256 = "sha256-HgqM4PKGk3R5MLY4cVjKxv79p5KlOkVDeDbv7/6FmpM=";
+          version = "0.6.6";
+          sha256 = "sha256-HXoH1IgMLniq0kxHs2snym4rerScu9qCqUaqwEC+O/E=";
         };
         meta = {
           license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.wackbyte ];
         };
       };
 
@@ -3166,6 +3291,23 @@ let
         };
       };
 
+      silofy.hackthebox = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "hackthebox";
+          publisher = "silofy";
+          version = "0.2.9";
+          sha256 = "sha256-WSPuEh+osu0DpXgPAzMU5Fw0Sh8sZFst7kx26s2BsyQ=";
+        };
+        meta = {
+          changelog = "https://marketplace.visualstudio.com/items/silofy.hackthebox/changelog";
+          description = "A Visual Studio Code theme built for hackers by hackers";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=silofy.hackthebox";
+          homepage = "https://github.com/silofy/hackthebox";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.d3vil0p3r ];
+        };
+      };
+
       skellock.just = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "just";
@@ -3443,6 +3585,23 @@ let
         meta.license = lib.licenses.mit;
       };
 
+      thorerik.hacker-theme = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "hacker-theme";
+          publisher = "thorerik";
+          version = "3.0.1";
+          sha256 = "sha256-Ugk9kTJxW1kbD+X6PF96WBc1k7x4KaGu5WbCYPGQ3qE=";
+        };
+        meta = {
+          changelog = "https://marketplace.visualstudio.com/items/thorerik.hacker-theme/changelog";
+          description = "The perfect theme for writing IP tracers in Visual Basic and reverse-proxying a UNIX-system firewall";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=thorerik.hacker-theme";
+          homepage = "https://github.com/thorerik/vscode-hacker-theme";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.d3vil0p3r ];
+        };
+      };
+
       tiehuis.zig = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "zig";
@@ -3455,6 +3614,21 @@ let
         };
       };
 
+      tim-koehler.helm-intellisense = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "helm-intellisense";
+          publisher = "Tim-Koehler";
+          version = "0.14.3";
+          sha256 = "sha256-TcXn8n6mKEFpnP8dyv+nXBjsyfUfJNgdL9iSZwA5eo0=";
+        };
+        meta = {
+          description = "Extension to help writing Helm-Templates by providing intellisense";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=Tim-Koehler.helm-intellisense";
+          homepage = "https://github.com/tim-koehler/Helm-Intellisense";
+          license = lib.licenses.mit;
+        };
+      };
+
       timonwong.shellcheck = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "shellcheck";
@@ -3529,6 +3703,21 @@ let
         };
       };
 
+      twpayne.vscode-testscript = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "vscode-testscript";
+          publisher = "twpayne";
+          version = "0.0.4";
+          sha256 = "sha256-KOmcJlmmdUkC+q0AQ/Q/CQAeRgQPr6nVO0uccUxHmsY=";
+        };
+        meta = {
+          description = "Syntax highlighting support for testscript";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=twpayne.vscode-testscript";
+          homepage = "https://github.com/twpayne/vscode-testscript";
+          license = lib.licenses.mit;
+        };
+      };
+
       twxs.cmake = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "cmake";
diff --git a/pkgs/applications/editors/vscode/vscode.nix b/pkgs/applications/editors/vscode/vscode.nix
index 9d094c9eaf29..523b1c81cfd2 100644
--- a/pkgs/applications/editors/vscode/vscode.nix
+++ b/pkgs/applications/editors/vscode/vscode.nix
@@ -30,21 +30,21 @@ let
   archive_fmt = if stdenv.isDarwin then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "1z692zp413vgla0ln04rf2fnx0giy2rgglmi6q1jk9b7wmlrsrh1";
-    x86_64-darwin = "00d143mgrx5s7qdsxp93j04wz2xcgm8rkb5gj1a2czjcjvpsyjmv";
-    aarch64-linux = "1b5fjxfgjr7rak23kmnapqbbimd6f7q5fjiwbcclxwyl0cqa0d3j";
-    aarch64-darwin = "0zv81nj767741i9p2i5ac5ql9pm9snz6lg1zqvvw3rps3d5vwysz";
-    armv7l-linux = "11zms120dagscnxrr5xpivcxipbmahf2sy68a4bmcjk1nqnvcsgh";
+    x86_64-linux = "0qykchhd6cplyip4gp5s1fpv664xw2y5z0z7n6zwhwpfrld8piwb";
+    x86_64-darwin = "0mris80k62yabaz2avh4q2vjpnqcwa77phx3icdif0c19w185pqw";
+    aarch64-linux = "0rbj0l9wdbkxgzy9j9qvx0237g5nx4np0ank4x6jbxhlbs8xdw39";
+    aarch64-darwin = "1j1wd1ssyrd6651k7ias22phcb358k6aigdirfzczam303cxr0hw";
+    armv7l-linux = "1c6bikdhgd6w5njqza5xmhi7iz4kzydcfb2i7jqklb514knqxc8f";
   }.${system} or throwSystem;
 in
   callPackage ./generic.nix rec {
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.85.1";
+    version = "1.86.0";
     pname = "vscode" + lib.optionalString isInsiders "-insiders";
 
     # This is used for VS Code - Remote SSH test
-    rev = "0ee08df0cf4527e40edc9aa28f4b5bd38bbff2b2";
+    rev = "05047486b6df5eb8d44b2ecd70ea3bdf775fd937";
 
     executableName = "code" + lib.optionalString isInsiders "-insiders";
     longName = "Visual Studio Code" + lib.optionalString isInsiders " - Insiders";
@@ -68,7 +68,7 @@ in
       src = fetchurl {
         name = "vscode-server-${rev}.tar.gz";
         url = "https://update.code.visualstudio.com/commit:${rev}/server-linux-x64/stable";
-        sha256 = "06672ynsr7bxzkgdi1ghmrb6ki0y1ypmakk7w51r599vi1bjfnr0";
+        sha256 = "0d3g6csi2aplsy5j3v84m65mhlg0krpb2sndk0nh7gafyc5gnn28";
       };
     };
 
diff --git a/pkgs/applications/editors/vscode/vscodium.nix b/pkgs/applications/editors/vscode/vscodium.nix
index b4c0a4480ccc..ab9a5b51ee2c 100644
--- a/pkgs/applications/editors/vscode/vscodium.nix
+++ b/pkgs/applications/editors/vscode/vscodium.nix
@@ -15,11 +15,11 @@ let
   archive_fmt = if stdenv.isDarwin then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "1fhvzwhkcqn3bxh92nidhg2bagxbxyg7c8b582wz1msp1l7c27mq";
-    x86_64-darwin = "1fspzw4zz8z9f91xhaw5h9r82q8anlk9ck3n3sms3vrb2g992xdr";
-    aarch64-linux = "1hynvczhz946xz9ygrsax1ap3kyw5wm19mn6s9vcdw7wg8imvcyr";
-    aarch64-darwin = "0kfr8i7z8x4ys2qsabfg78yvk42f0lnaax0l0wdiv94pp0iixijy";
-    armv7l-linux = "0vcywp0cqd1rxvb2zf4h3l5sc9rbi88w1v087q12q265c56izzw8";
+    x86_64-linux = "0nd9hipz1jhjdv6hrm6q2jpppanh8nmkpy9zpayymy4dwif8a49q";
+    x86_64-darwin = "1fk146dikiy8dab83v4j6jrnzdg8dxnjvwmdddif130jrpxsp875";
+    aarch64-linux = "0zqm8zl3vhisp6rlb2vhc2i0z4rln38858l07r70jr76zxbbs5xv";
+    aarch64-darwin = "0i0bsrygdg2ij3wf0jm9n6fci5zrghnvzdw0p528c08rjgkhrmrb";
+    armv7l-linux = "0h0v5irf23ijn21j4sll2ynj12wclm17bh46s1dlpzy73f4h17jb";
   }.${system} or throwSystem;
 
   sourceRoot = lib.optionalString (!stdenv.isDarwin) ".";
@@ -29,7 +29,7 @@ in
 
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.85.1.23348";
+    version = "1.85.2.24019";
     pname = "vscodium";
 
     executableName = "codium";
diff --git a/pkgs/applications/emulators/bsnes/ares/002-fix-ruby.diff b/pkgs/applications/emulators/bsnes/ares/002-fix-ruby.diff
index 86f548389259..ff9bda0d04b6 100644
--- a/pkgs/applications/emulators/bsnes/ares/002-fix-ruby.diff
+++ b/pkgs/applications/emulators/bsnes/ares/002-fix-ruby.diff
@@ -1,11 +1,11 @@
 diff -Naur source-old/ruby/GNUmakefile source-new/ruby/GNUmakefile
---- source-old/ruby/GNUmakefile	1969-12-31 21:00:01.000000000 -0300
-+++ source-new/ruby/GNUmakefile	2022-11-13 22:43:09.700197748 -0300
-@@ -11,17 +11,9 @@
-     ruby += audio.openal
-     ruby += input.quartz #input.carbon
+--- source-old/ruby/GNUmakefile    2024-01-23 16:12:41.009951705 +0000
++++ source-new/ruby/GNUmakefile    2024-01-23 16:13:54.619174062 +0000
+@@ -29,20 +29,9 @@
+       ruby += input.sdl
+     endif
    else ifeq ($(platform),linux)
--    pkg_check = $(if $(shell pkg-config $1 && echo 1),$2)
+-    pkg_check = $(if $(shell $(pkg_config) $1 && echo 1),$2)
 -    ruby += video.glx video.glx2 video.xshm
 -    ruby += $(call pkg_check,xv,video.xvideo)
 -    ruby += audio.oss audio.alsa
@@ -15,10 +15,13 @@ diff -Naur source-old/ruby/GNUmakefile source-new/ruby/GNUmakefile
 -    ruby += $(call pkg_check,ao,audio.ao)
 -    ruby += input.xlib
 -    ruby += $(call pkg_check,libudev,input.udev)
--    ruby += $(call pkg_check,sdl2,input.sdl)
+-    ifeq ($(sdl2),true)
+-      ruby += $(call pkg_check,sdl2,input.sdl)
+-      ruby += $(call pkg_check,sdl2,audio.sdl)
+-    endif
 +    ruby += video.glx video.glx2 video.xshm video.xvideo
 +    ruby += audio.oss audio.alsa audio.openal audio.pulseaudio audio.pulseaudiosimple audio.ao
 +    ruby += input.xlib input.udev input.sdl
    else ifeq ($(platform),bsd)
-     pkg_check = $(if $(shell pkg-config $1 && echo 1),$2)
+     pkg_check = $(if $(shell $(pkg_config) $1 && echo 1),$2)
      ruby += video.glx video.glx2 video.xshm
diff --git a/pkgs/applications/emulators/bsnes/ares/default.nix b/pkgs/applications/emulators/bsnes/ares/default.nix
index 4f0e97d55f4a..25d2126ac34c 100644
--- a/pkgs/applications/emulators/bsnes/ares/default.nix
+++ b/pkgs/applications/emulators/bsnes/ares/default.nix
@@ -22,13 +22,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "ares";
-  version = "133";
+  version = "135";
 
   src = fetchFromGitHub {
     owner = "ares-emulator";
     repo = "ares";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-KCpHiIdid5h5CU2uyMOo+p5h50h3Ki5/4mUpdTAPKQA=";
+    hash = "sha256-SZhsMKjNxmT2eHsXAZcyMGoMhwWGgvXpDeZGGVn58Sc=";
   };
 
   patches = [
diff --git a/pkgs/applications/emulators/bsnes/bsnes-hd/default.nix b/pkgs/applications/emulators/bsnes/bsnes-hd/default.nix
index b6d158a7a7c8..5ac210042538 100644
--- a/pkgs/applications/emulators/bsnes/bsnes-hd/default.nix
+++ b/pkgs/applications/emulators/bsnes/bsnes-hd/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub
+{ lib, stdenv, fetchFromGitHub, fetchpatch
 , pkg-config
 , wrapGAppsHook
 , libX11, libXv
@@ -36,6 +36,14 @@ stdenv.mkDerivation {
     # be set to $out, so this will result in the .app ending up in the
     # Applications directory in the current nix profile.
     ./macos-copy-app-to-prefix.patch
+
+    # Fix build against gcc-13:
+    #   https://github.com/DerKoun/bsnes-hd/pull/124
+    (fetchpatch {
+      name = "gcc-13.patch";
+      url = "https://github.com/DerKoun/bsnes-hd/commit/587e496f667970d60b6ea29976c171da1681388e.patch";
+      hash = "sha256-7KBXh8b4xGTzgV2Pt8B1eFZHOaXcCKXKzqGOf0rFG0c=";
+    })
   ];
 
   nativeBuildInputs = [ pkg-config ]
diff --git a/pkgs/applications/emulators/ccemux/default.nix b/pkgs/applications/emulators/ccemux/default.nix
index 15fb0f88593f..9464c1f4575f 100644
--- a/pkgs/applications/emulators/ccemux/default.nix
+++ b/pkgs/applications/emulators/ccemux/default.nix
@@ -11,7 +11,7 @@ let
     if useCCTweaked
     then fetchurl {
       url = "${baseUrl}-cct.jar";
-      hash = "sha256-B9Zan6wpYnUtaNbUIrXvkchPiEquMs9R2Kiqg85/VdY=";
+      hash = "sha256-nna5KRp6jVLkbWKOHGtQqaPr3Zl05mVkCf/8X9C5lRY=";
     }
     else fetchurl {
       url = "${baseUrl}-cc.jar";
diff --git a/pkgs/applications/emulators/cemu/default.nix b/pkgs/applications/emulators/cemu/default.nix
index 7bc25ab058ab..c6ae93b98054 100644
--- a/pkgs/applications/emulators/cemu/default.nix
+++ b/pkgs/applications/emulators/cemu/default.nix
@@ -33,13 +33,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cemu";
-  version = "2.0-61";
+  version = "2.0-65";
 
   src = fetchFromGitHub {
     owner = "cemu-project";
     repo = "Cemu";
     rev = "v${version}";
-    hash = "sha256-oKVVBie3Q3VtsHbh0wJfdlx1YnF424hib8mFRYnbgXY=";
+    hash = "sha256-jsDmxol3zZMmpo4whDeUXTzfO+QVK/h6lItXTyJyoak=";
   };
 
   patches = [
diff --git a/pkgs/applications/emulators/citra/default.nix b/pkgs/applications/emulators/citra/default.nix
index 997aadbfb549..a4e4578632ae 100644
--- a/pkgs/applications/emulators/citra/default.nix
+++ b/pkgs/applications/emulators/citra/default.nix
@@ -15,13 +15,13 @@ let
 in {
   nightly = qt6Packages.callPackage ./generic.nix rec {
     pname = "citra-nightly";
-    version = "2070";
+    version = "2088";
 
     src = fetchFromGitHub {
       owner = "citra-emu";
       repo = "citra-nightly";
       rev = "nightly-${version}";
-      sha256 = "1rmc7dk7wzmxgkq7xsmx9wscszhcfr3mkvnykwgamrcb9bm8p5rb";
+      sha256 = "0l9w4i0zbafcv2s6pd1zqb11vh0i7gzwbqnzlz9al6ihwbsgbj3k";
       fetchSubmodules = true;
     };
 
@@ -30,13 +30,13 @@ in {
 
   canary = qt6Packages.callPackage ./generic.nix rec {
     pname = "citra-canary";
-    version = "2740";
+    version = "2766";
 
     src = fetchFromGitHub {
       owner = "citra-emu";
       repo = "citra-canary";
       rev = "canary-${version}";
-      sha256 = "0m11xy0ad9sy7zsnwnb7vad3g0g78v747a1abp612ybg0aczwf9l";
+      sha256 = "1gm3ajphpzwhm3qnchsx77jyl51za8yw3r0j0h8idf9y1ilcjvi4";
       fetchSubmodules = true;
     };
 
diff --git a/pkgs/applications/emulators/craftos-pc/default.nix b/pkgs/applications/emulators/craftos-pc/default.nix
index 9c1c31c689ca..12c86c3680f8 100644
--- a/pkgs/applications/emulators/craftos-pc/default.nix
+++ b/pkgs/applications/emulators/craftos-pc/default.nix
@@ -16,18 +16,18 @@
 }:
 
 let
-  version = "2.8";
+  version = "2.8.1";
   craftos2-lua = fetchFromGitHub {
     owner = "MCJack123";
     repo = "craftos2-lua";
     rev = "v${version}";
-    hash = "sha256-xuNcWt3Wnh3WlYe6pB4dvP3PY9S5ghL9QQombGn8iyY=";
+    hash = "sha256-8bl83AOIWtUQ06F2unYEF08VT13o9EGo9YDZpdNxd8w=";
   };
   craftos2-rom = fetchFromGitHub {
     owner = "McJack123";
     repo = "craftos2-rom";
     rev = "v${version}";
-    hash = "sha256-WZs/KIdpqLLzvpH2hiJpe/AehluoQMtewBbAb4htz8k=";
+    hash = "sha256-aCRJ3idSrRM8ydt8hP8nA1RR0etPnWpQKphXcOGgTfk=";
   };
 in
 
@@ -39,18 +39,9 @@ stdenv.mkDerivation rec {
     owner = "MCJack123";
     repo = "craftos2";
     rev = "v${version}";
-    hash = "sha256-nT/oN2XRU1Du1/IHlkRCzLqFwQ5s9Sr4FQs3ES+aPFs=";
+    hash = "sha256-iQCv4EDdqmnU0fYxMwpCZ2Z5p43P0MGBNIG/dZrWndg=";
   };
 
-  patches = [
-    ( # Fixes CCEmuX. This is a one-character change that did not make it into the release.
-      fetchpatch {
-        url = "https://github.com/MCJack123/craftos2/commit/9ef7e16b69ead69b5fe076724842a1e24b3de058.patch";
-        hash = "sha256-SjNnsooDFt3JoVOO0xf6scrGXEQQmrQf91GY7VWaTOw=";
-      }
-    )
-  ];
-
   buildInputs = [ patchelf poco openssl SDL2 SDL2_mixer ncurses libpng pngpp libwebp ];
 
   preBuild = ''
diff --git a/pkgs/applications/emulators/fceux/default.nix b/pkgs/applications/emulators/fceux/default.nix
index 0225f76a2aaf..8c5c554d6dc0 100644
--- a/pkgs/applications/emulators/fceux/default.nix
+++ b/pkgs/applications/emulators/fceux/default.nix
@@ -1,24 +1,24 @@
 { lib
-, stdenv
-, fetchFromGitHub
 , SDL2
 , cmake
+, fetchFromGitHub
 , lua
 , minizip
 , pkg-config
+, stdenv
 , wrapQtAppsHook
 , x264
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "fceux";
-  version = "2.6.4";
+  version = "2.6.6-unstable-2024-01-19";
 
   src = fetchFromGitHub {
     owner = "TASEmulators";
     repo = "fceux";
-    rev = "fceux-${finalAttrs.version}";
-    hash = "sha256-Q6r/iBlmi0z40+U6OLZCahS0io4IBBGZMP1mJH7szRM=";
+    rev = "2fce5ffe745bb89be471e450d9cd6284cd5614d9";
+    hash = "sha256-5uUTw7ZkmBrGuntSQFNAp1Xz69ANmmIxNGd0/enPoW8=";
   };
 
   nativeBuildInputs = [
@@ -34,11 +34,12 @@ stdenv.mkDerivation (finalAttrs: {
     x264
   ];
 
-  meta = with lib; {
+  meta = {
     homepage = "http://www.fceux.com/";
     description = "A Nintendo Entertainment System (NES) Emulator";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ sbruder scubed2 ];
-    platforms = platforms.linux;
+    changelog = "https://github.com/TASEmulators/blob/fceux/${finalAttrs.src.rev}/changelog.txt";
+    license = with lib.licenses; [ gpl2Plus ];
+    maintainers = with lib.maintainers; [ AndersonTorres sbruder ];
+    platforms = lib.platforms.linux;
   };
 })
diff --git a/pkgs/applications/emulators/mame/default.nix b/pkgs/applications/emulators/mame/default.nix
index 6a17905ccb29..c12135370d6c 100644
--- a/pkgs/applications/emulators/mame/default.nix
+++ b/pkgs/applications/emulators/mame/default.nix
@@ -38,14 +38,14 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "mame";
-  version = "0.261";
+  version = "0.262";
   srcVersion = builtins.replaceStrings [ "." ] [ "" ] version;
 
   src = fetchFromGitHub {
     owner = "mamedev";
     repo = "mame";
     rev = "mame${srcVersion}";
-    hash = "sha256-Tbsu4dYOBGwsPW94W0xN2+t4vqb1cWI7J1C2l6WU3qI=";
+    hash = "sha256-avVHtnmKPUq+mMtxyaqSaGyrdsi5LXF1YS8JAb2QvBo=";
   };
 
   outputs = [ "out" "tools" ];
diff --git a/pkgs/applications/emulators/melonDS/default.nix b/pkgs/applications/emulators/melonDS/default.nix
index 50389db2b45e..0603373dfedd 100644
--- a/pkgs/applications/emulators/melonDS/default.nix
+++ b/pkgs/applications/emulators/melonDS/default.nix
@@ -1,54 +1,72 @@
 { lib
-, fetchFromGitHub
-, stdenv
+, SDL2
 , cmake
 , extra-cmake-modules
+, fetchFromGitHub
 , libarchive
 , libpcap
+, libsForQt5
 , libslirp
+, libGL
 , pkg-config
-, qtbase
-, qtmultimedia
-, SDL2
+, stdenv
 , wayland
-, wrapQtAppsHook
+, zstd
 }:
 
-stdenv.mkDerivation rec {
+let
+  inherit (libsForQt5)
+    qtbase
+    qtmultimedia
+    wrapQtAppsHook;
+in
+stdenv.mkDerivation (finalAttrs: {
   pname = "melonDS";
-  version = "0.9.5";
+  version = "0.9.5-unstable-2024-01-17";
 
   src = fetchFromGitHub {
-    owner = "Arisotura";
-    repo = pname;
-    rev = version;
-    sha256 = "sha256-n4Vkxb/7fr214PgB6VFNgH1tMDgTBS/UHUQ6V4uGkDA=";
+    owner = "melonDS-emu";
+    repo = "melonDS";
+    rev = "7897bd387bfd37615a049eba28d02dc23cfa5194";
+    hash = "sha256-7BrUa8QJnudJkiCtuBdfar+FeeJSrdMGJdhXrPP6uww=";
   };
 
   nativeBuildInputs = [
     cmake
-    extra-cmake-modules
     pkg-config
     wrapQtAppsHook
   ];
 
   buildInputs = [
+    SDL2
+    extra-cmake-modules
     libarchive
     libslirp
+    libGL
     qtbase
     qtmultimedia
-    SDL2
     wayland
+    zstd
   ];
 
-  qtWrapperArgs = [ "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libpcap ]}" ];
+  strictDeps = true;
+
+  qtWrapperArgs = [
+    "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libpcap ]}"
+  ];
 
-  meta = with lib; {
+  meta = {
     homepage = "https://melonds.kuribo64.net/";
     description = "Work in progress Nintendo DS emulator";
-    license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ artemist benley shamilton xfix ];
-    platforms = platforms.linux;
+    license = with lib.licenses; [ gpl3Plus ];
     mainProgram = "melonDS";
+    maintainers = with lib.maintainers; [
+      AndersonTorres
+      artemist
+      benley
+      shamilton
+      xfix
+    ];
+    platforms = lib.platforms.linux;
   };
-}
+})
diff --git a/pkgs/applications/emulators/mgba/default.nix b/pkgs/applications/emulators/mgba/default.nix
index a52ee7ca30ce..4e0e8687b61e 100644
--- a/pkgs/applications/emulators/mgba/default.nix
+++ b/pkgs/applications/emulators/mgba/default.nix
@@ -1,22 +1,23 @@
 { lib
-, stdenv
-, fetchFromGitHub
 , SDL2
 , cmake
+, fetchFromGitHub
 , ffmpeg
+, discord-rpc
 , libedit
 , libelf
 , libepoxy
+, libsForQt5
 , libzip
-, lua5_4
+, lua
 , minizip
 , pkg-config
-, libsForQt5
+, stdenv
 , wrapGAppsHook
+, enableDiscordRpc ? false
 }:
 
 let
-    lua = lua5_4;
     inherit (libsForQt5)
       qtbase
       qtmultimedia
@@ -25,27 +26,25 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "mgba";
-  version = "0.10.2";
+  version = "0.10.3";
 
   src = fetchFromGitHub {
     owner = "mgba-emu";
     repo = "mgba";
     rev = finalAttrs.version;
-    hash = "sha256-+AwIYhnqp984Banwb7zmB5yzenExfLLU1oGJSxeTl/M=";
+    hash = "sha256-wSt3kyjRxKBnDOVY10jq4cpv7uIaBUIcsZr6aU7XnMA=";
   };
 
+  outputs = [ "out" "dev" "doc" "lib" "man" ];
+
   nativeBuildInputs = [
+    SDL2
     cmake
     pkg-config
     wrapGAppsHook
     wrapQtAppsHook
   ];
 
-  dontWrapGApps = true;
-  preFixup = ''
-    qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
-  '';
-
   buildInputs = [
     SDL2
     ffmpeg
@@ -58,9 +57,22 @@ stdenv.mkDerivation (finalAttrs: {
     qtbase
     qtmultimedia
     qttools
+  ]
+  ++ lib.optionals enableDiscordRpc [ discord-rpc ];
+
+  cmakeFlags = [
+    (lib.cmakeBool "USE_DISCORD_RPC" enableDiscordRpc)
   ];
 
-  meta = with lib; {
+  strictDeps = true;
+
+  dontWrapGApps = true;
+
+  preFixup = ''
+    qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
+  meta = {
     homepage = "https://mgba.io";
     description = "A modern GBA emulator with a focus on accuracy";
     longDescription = ''
@@ -77,10 +89,11 @@ stdenv.mkDerivation (finalAttrs: {
       runners, and a modern feature set for emulators that older emulators may
       not support.
     '';
-    changelog = "https://github.com/mgba-emu/mgba/blob/${finalAttrs.version}/CHANGES";
-    license = licenses.mpl20;
-    maintainers = with maintainers; [ MP2E AndersonTorres ];
-    platforms = platforms.linux;
+    changelog = "https://raw.githubusercontent.com/mgba-emu/mgba/${finalAttrs.src.rev}/CHANGES";
+    license = with lib.licenses; [ mpl20 ];
     mainProgram = "mgba";
+    maintainers = with lib.maintainers; [ MP2E AndersonTorres ];
+    platforms = lib.platforms.linux;
+    broken = enableDiscordRpc; # Some obscure `ld` error
   };
 })
diff --git a/pkgs/applications/emulators/nuked-md/default.nix b/pkgs/applications/emulators/nuked-md/default.nix
index 883d62b89832..3f42ce6d2d07 100644
--- a/pkgs/applications/emulators/nuked-md/default.nix
+++ b/pkgs/applications/emulators/nuked-md/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , lib
 , fetchFromGitHub
+, fetchpatch
 , gitUpdater
 , cmake
 , SDL2
@@ -17,6 +18,15 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-Pe+TSu9FBUhxtACq+6jMbrUxiwKLOJgQbEcmUrcrjMs=";
   };
 
+  patches = [
+    # Remove when version > 1.2
+    (fetchpatch {
+      name = "0001-nuked-md-Fix-missing-string-h-include.patch";
+      url = "https://github.com/nukeykt/Nuked-MD/commit/b875cd79104217af581131b22f4111409273617a.patch";
+      hash = "sha256-Mx3jmrlBbxdz3ZBr4XhmBk1S04xB0uaxzPXpXSlipV4=";
+    })
+  ];
+
   # Interesting detail about our SDL2 packaging:
   # Because we build it with the configure script instead of CMake, we ship sdl2-config.cmake instead of SDL2Config.cmake
   # The former doesn't set SDL2_FOUND while the latter does (like CMake config scripts should), which causes this issue:
diff --git a/pkgs/applications/emulators/pcsx2/default.nix b/pkgs/applications/emulators/pcsx2/default.nix
index 6f7d0a6a7d6a..ce14caab746d 100644
--- a/pkgs/applications/emulators/pcsx2/default.nix
+++ b/pkgs/applications/emulators/pcsx2/default.nix
@@ -36,20 +36,20 @@ let
   pcsx2_patches = fetchFromGitHub {
     owner = "PCSX2";
     repo = "pcsx2_patches";
-    rev = "619e75bb8db50325b44863f2ccf3c39470c3d5a3";
-    sha256 = "sha256-2KE0W3WwBJCLe8DosyDVsFtEofKgBsChpQEQe+3O+Hg=";
+    rev = "189f79d73f8cd9fd85c7394a14ee4419ddfa267b";
+    sha256 = "sha256-gxwAxR7N7QU4sTGHTdd656dmsW8MrcfroYPvv2UoeRc=";
   };
 in
 llvmPackages_17.stdenv.mkDerivation rec {
   pname = "pcsx2";
-  version = "1.7.5474";
+  version = "1.7.5497";
 
   src = fetchFromGitHub {
     owner = "PCSX2";
     repo = "pcsx2";
     fetchSubmodules = true;
     rev = "v${version}";
-    sha256 = "sha256-5ZCXw6PEQ6Ed6kEP27m9O0U79uVGEFR/vwee6/dZBD8=";
+    sha256 = "sha256-gbJkeelSyEHwD4DH/hbzPNNv47hmdgc4kyvX38txYhc=";
   };
 
   patches = [
diff --git a/pkgs/applications/emulators/retroarch/cores.nix b/pkgs/applications/emulators/retroarch/cores.nix
index 185187a9e3b0..d011961da4fe 100644
--- a/pkgs/applications/emulators/retroarch/cores.nix
+++ b/pkgs/applications/emulators/retroarch/cores.nix
@@ -641,6 +641,15 @@ in
     };
   };
 
+  mrboom = mkLibretroCore {
+    core = "mrboom";
+    makefile = "Makefile";
+    meta = {
+      description = "Port of Mr.Boom to libretro";
+      license = lib.licenses.mit;
+    };
+  };
+
   mupen64plus = mkLibretroCore {
     core = "mupen64plus-next";
     src = getCoreSrc "mupen64plus";
@@ -653,6 +662,11 @@ in
       "LLE=1"
       "WITH_DYNAREC=${stdenv.hostPlatform.parsed.cpu.name}"
     ];
+    # This CXXFLAGS hack works around the GCC 13 error:
+    # 'uint32_t' was not declared in this scope
+    # It can be removed if the issue filed upstream is resolved:
+    # https://github.com/libretro/mupen64plus-libretro-nx/issues/515
+    env.CXXFLAGS = "-include cstdint";
     meta = {
       description = "Libretro port of Mupen64 Plus, GL only";
       license = lib.licenses.gpl3Only;
diff --git a/pkgs/applications/emulators/retroarch/hashes.json b/pkgs/applications/emulators/retroarch/hashes.json
index 78cb11c7d98d..22cc93daaaae 100644
--- a/pkgs/applications/emulators/retroarch/hashes.json
+++ b/pkgs/applications/emulators/retroarch/hashes.json
@@ -307,6 +307,13 @@
         "rev": "314bf7b676f5b820f396209eb0c7d6fbe8103486",
         "hash": "sha256-Rk+glDgSa1J1IIe5NrJElX9zr59+LQynfDXuHWyZcEM="
     },
+    "mrboom": {
+        "owner": "Javanaise",
+        "repo": "mrboom-libretro",
+        "rev": "c4ec620424fe79f0d6db719d73628f23ae285ada",
+        "hash": "sha256-twocTyayV79a4757Yfoz/P3wnQPgiwsbrBbLmT4EZKQ=",
+        "fetchSubmodules": true
+    },
     "mupen64plus": {
         "owner": "libretro",
         "repo": "mupen64plus-libretro-nx",
diff --git a/pkgs/applications/emulators/retroarch/mkLibretroCore.nix b/pkgs/applications/emulators/retroarch/mkLibretroCore.nix
index bc457d0cb702..7523288bd28d 100644
--- a/pkgs/applications/emulators/retroarch/mkLibretroCore.nix
+++ b/pkgs/applications/emulators/retroarch/mkLibretroCore.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation ({
 
     install -Dt ${coreDir} ${coreFilename}
     makeWrapper ${retroarch}/bin/retroarch $out/bin/${mainProgram} \
-      --add-flags "-L ${coreDir}/${coreFilename} $@"
+      --add-flags "-L ${coreDir}/${coreFilename}"
 
     runHook postInstall
   '';
diff --git a/pkgs/applications/emulators/retroarch/update_cores.py b/pkgs/applications/emulators/retroarch/update_cores.py
index e9536d8318dc..a6dbd35e4fe6 100755
--- a/pkgs/applications/emulators/retroarch/update_cores.py
+++ b/pkgs/applications/emulators/retroarch/update_cores.py
@@ -62,6 +62,7 @@ CORES = {
     "mesen": {"repo": "mesen"},
     "mesen-s": {"repo": "mesen-s"},
     "meteor": {"repo": "meteor-libretro"},
+    "mrboom": {"repo": "mrboom-libretro", "owner": "Javanaise", "fetch_submodules": True},
     "mgba": {"repo": "mgba"},
     "mupen64plus": {"repo": "mupen64plus-libretro-nx"},
     "neocd": {"repo": "neocd_libretro"},
diff --git a/pkgs/applications/emulators/sameboy/default.nix b/pkgs/applications/emulators/sameboy/default.nix
index 9d0eb1570287..94c9b9562864 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";
+  version = "0.16.2";
 
   src = fetchFromGitHub {
     owner = "LIJI32";
     repo = "SameBoy";
     rev = "v${version}";
-    sha256 = "sha256-sQVTCHOSc2N+Qs/rl0DfsUzg7P5Egws2UuNBQ9fpkoQ=";
+    sha256 = "sha256-KEbwug/cwGLS/uhY1rKasLJWaKtiYYzdZvbAU2orfbI=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/emulators/wine/base.nix b/pkgs/applications/emulators/wine/base.nix
index 68814ca5ba58..08bf9a630682 100644
--- a/pkgs/applications/emulators/wine/base.nix
+++ b/pkgs/applications/emulators/wine/base.nix
@@ -3,6 +3,7 @@
   bison, flex, fontforge, makeWrapper, pkg-config,
   nixosTests,
   supportFlags,
+  wineRelease,
   patches,
   moltenvk,
   buildScript ? null, configureFlags ? [], mainProgram ? "wine"
@@ -46,7 +47,7 @@ stdenv.mkDerivation ((lib.optionalAttrs (buildScript != null) {
 }) // rec {
   inherit version src;
 
-  pname = prevName + lib.optionalString supportFlags.waylandSupport "-wayland";
+  pname = prevName + lib.optionalString (wineRelease == "wayland") "-wayland";
 
   # Fixes "Compiler cannot create executables" building wineWow with mingwSupport
   strictDeps = true;
diff --git a/pkgs/applications/emulators/wine/default.nix b/pkgs/applications/emulators/wine/default.nix
index 06c2b7486cd2..ec05cef74414 100644
--- a/pkgs/applications/emulators/wine/default.nix
+++ b/pkgs/applications/emulators/wine/default.nix
@@ -36,7 +36,7 @@
   sdlSupport ? false,
   usbSupport ? false,
   mingwSupport ? wineRelease != "stable",
-  waylandSupport ? wineRelease == "wayland",
+  waylandSupport ? stdenv.isLinux,
   x11Support ? stdenv.isLinux,
   embedInstallers ? false, # The Mono and Gecko MSI installers
   moltenvk ? darwin.moltenvk # Allow users to override MoltenVK easily
diff --git a/pkgs/applications/emulators/wine/packages.nix b/pkgs/applications/emulators/wine/packages.nix
index 21e0db3e7b60..b40f92dae81c 100644
--- a/pkgs/applications/emulators/wine/packages.nix
+++ b/pkgs/applications/emulators/wine/packages.nix
@@ -8,7 +8,7 @@ let
 in with src; {
   wine32 = pkgsi686Linux.callPackage ./base.nix {
     pname = "wine";
-    inherit src version supportFlags patches moltenvk;
+    inherit src version supportFlags patches moltenvk wineRelease;
     pkgArches = [ pkgsi686Linux ];
     geckos = [ gecko32 ];
     mingwGccs = with pkgsCross; [ mingw32.buildPackages.gcc ];
@@ -17,7 +17,7 @@ in with src; {
   };
   wine64 = callPackage ./base.nix {
     pname = "wine64";
-    inherit src version supportFlags patches moltenvk;
+    inherit src version supportFlags patches moltenvk wineRelease;
     pkgArches = [ pkgs ];
     mingwGccs = with pkgsCross; [ mingwW64.buildPackages.gcc ];
     geckos = [ gecko64 ];
@@ -28,7 +28,7 @@ in with src; {
   };
   wineWow = callPackage ./base.nix {
     pname = "wine-wow";
-    inherit src version supportFlags patches moltenvk;
+    inherit src version supportFlags patches moltenvk wineRelease;
     stdenv = stdenv_32bit;
     pkgArches = [ pkgs pkgsi686Linux ];
     geckos = [ gecko32 gecko64 ];
@@ -44,7 +44,8 @@ in with src; {
   };
   wineWow64 = callPackage ./base.nix {
     pname = "wine-wow64";
-    inherit src version supportFlags patches moltenvk;
+    inherit src version patches moltenvk wineRelease;
+    supportFlags = supportFlags // { mingwSupport = true; };  # Required because we request "--enable-archs=x86_64"
     pkgArches = [ pkgs ];
     mingwGccs = with pkgsCross; [ mingw32.buildPackages.gcc mingwW64.buildPackages.gcc ];
     geckos = [ gecko64 ];
diff --git a/pkgs/applications/emulators/wine/sources.nix b/pkgs/applications/emulators/wine/sources.nix
index d8a154a167f0..8bae07a87e07 100644
--- a/pkgs/applications/emulators/wine/sources.nix
+++ b/pkgs/applications/emulators/wine/sources.nix
@@ -24,27 +24,27 @@ let fetchurl = args@{url, hash, ...}:
 in rec {
 
   stable = fetchurl rec {
-    version = "8.0.2";
-    url = "https://dl.winehq.org/wine/source/8.0/wine-${version}.tar.xz";
-    hash = "sha256-bsj7byxy1XbLEfUrL41Zr2RASAIVRlHRIrmEZtkdyEc=";
+    version = "9.0";
+    url = "https://dl.winehq.org/wine/source/9.0/wine-${version}.tar.xz";
+    hash = "sha256-fP0JClOV9bdtlbtd76yKMSyN5MBwwRY7i1jaODMMpu4=";
 
     ## see http://wiki.winehq.org/Gecko
     gecko32 = fetchurl rec {
-      version = "2.47.3";
+      version = "2.47.4";
       url = "https://dl.winehq.org/wine/wine-gecko/${version}/wine-gecko-${version}-x86.msi";
-      hash = "sha256-5bmwbTzjVWRqjS5y4ETjfh4MjRhGTrGYWtzRh6f0jgE=";
+      hash = "sha256-Js7MR3BrCRkI9/gUvdsHTGG+uAYzGOnvxaf3iYV3k9Y=";
     };
     gecko64 = fetchurl rec {
-      version = "2.47.3";
+      version = "2.47.4";
       url = "https://dl.winehq.org/wine/wine-gecko/${version}/wine-gecko-${version}-x86_64.msi";
-      hash = "sha256-pT7pVDkrbR/j1oVF9uTiqXr7yNyLA6i0QzSVRc4TlnU=";
+      hash = "sha256-5ZC32YijLWqkzx2Ko6o9M3Zv3Uz0yJwtzCCV7LKNBm8=";
     };
 
     ## see http://wiki.winehq.org/Mono
     mono = fetchurl rec {
-      version = "7.4.0";
+      version = "8.1.0";
       url = "https://dl.winehq.org/wine/wine-mono/${version}/wine-mono-${version}-x86.msi";
-      hash = "sha256-ZBP/Mo679+x2icZI/rNUbYEC3thlB50fvwMxsUs6sOw=";
+      hash = "sha256-DtPsUzrvebLzEhVZMc97EIAAmsDFtMK8/rZ4rJSOCBA=";
     };
 
     patches = [
@@ -69,9 +69,9 @@ in rec {
 
   unstable = fetchurl rec {
     # NOTE: Don't forget to change the hash for staging as well.
-    version = "9.0-rc1";
+    version = "9.0";
     url = "https://dl.winehq.org/wine/source/9.0/wine-${version}.tar.xz";
-    hash = "sha256-GDd3V74ffxeGzopWqET2ZXKIH/z3RcC0yjTwmmDi8zA=";
+    hash = "sha256-fP0JClOV9bdtlbtd76yKMSyN5MBwwRY7i1jaODMMpu4=";
     inherit (stable) patches;
 
     ## see http://wiki.winehq.org/Gecko
@@ -117,7 +117,7 @@ in rec {
   staging = fetchFromGitHub rec {
     # https://github.com/wine-staging/wine-staging/releases
     inherit (unstable) version;
-    hash = "sha256-jjy4r9VEJsU7FJ7RmE8+cgHTAkZVGruNUD5hzmGSB8c=";
+    hash = "sha256-lE/95OZigifreaRRCPkvA+Z0FqsBmm018jD6leSysXU=";
     owner = "wine-staging";
     repo = "wine-staging";
     rev = "v${version}";
@@ -157,8 +157,8 @@ in rec {
 
   winetricks = fetchFromGitHub rec {
     # https://github.com/Winetricks/winetricks/releases
-    version = "20230212";
-    hash = "sha256-pd37QTcqY5ZaVBssGecuqziOIq1p0JH0ZDB+oLmp9JU=";
+    version = "20240105";
+    hash = "sha256-YTEgb19aoM54KK8/IjrspoChzVnWAEItDlTxpfpS52w=";
     owner = "Winetricks";
     repo = "winetricks";
     rev = version;
diff --git a/pkgs/applications/emulators/yuzu/compat-list.nix b/pkgs/applications/emulators/yuzu/compat-list.nix
index 4b8d53116390..8b285d825558 100644
--- a/pkgs/applications/emulators/yuzu/compat-list.nix
+++ b/pkgs/applications/emulators/yuzu/compat-list.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchFromGitHub, unstableGitUpdater }:
 stdenv.mkDerivation {
   pname = "yuzu-compatibility-list";
-  version = "unstable-2024-01-08";
+  version = "unstable-2024-01-30";
 
   src = fetchFromGitHub {
     owner = "flathub";
     repo = "org.yuzu_emu.yuzu";
-    rev = "0f5500f50e2a5ac7e40e6f5f8aeb160d46348828";
-    hash = "sha256-0JHl7myoa3MlfucmbKB5tubJ6sQ2IlTIL3i2yveOvaU=";
+    rev = "82194fa23ec35545ade47cc3dc2035b2b07badcb";
+    hash = "sha256-LsQZml8I43fZDFACtVZpc76/62Pv11Z6bm8w/9hTHdI=";
   };
 
   buildCommand = ''
diff --git a/pkgs/applications/emulators/yuzu/default.nix b/pkgs/applications/emulators/yuzu/default.nix
index 116f12b2a963..6852da378650 100644
--- a/pkgs/applications/emulators/yuzu/default.nix
+++ b/pkgs/applications/emulators/yuzu/default.nix
@@ -1,4 +1,4 @@
-{ qt6Packages, makeScopeWithSplicing', generateSplicesForMkScope, vulkan-headers, fetchFromGitHub }:
+{ qt6Packages, makeScopeWithSplicing', generateSplicesForMkScope }:
 
 makeScopeWithSplicing' {
   otherSplices = generateSplicesForMkScope "yuzuPackages";
@@ -8,15 +8,5 @@ makeScopeWithSplicing' {
 
     mainline = self.callPackage ./mainline.nix {};
     early-access = self.callPackage ./early-access {};
-
-    vulkan-headers = vulkan-headers.overrideAttrs(old: rec {
-      version = "1.3.274";
-      src = fetchFromGitHub {
-        owner = "KhronosGroup";
-        repo = "Vulkan-Headers";
-        rev = "v${version}";
-        hash = "sha256-SsS5VlEnhjOSu8MlIVC0d2r2EAf8QsNJPEAXNtbDOJ4=";
-      };
-    });
   };
 }
diff --git a/pkgs/applications/emulators/yuzu/early-access/default.nix b/pkgs/applications/emulators/yuzu/early-access/default.nix
index 842f7c107975..f2ad5197d0bb 100644
--- a/pkgs/applications/emulators/yuzu/early-access/default.nix
+++ b/pkgs/applications/emulators/yuzu/early-access/default.nix
@@ -23,6 +23,7 @@ let
   '';
 
   rehydratedSrc = fetchgit {
+    name = "yuzu-ea-rehydrated";
     url = gitSrc;
     fetchSubmodules = true;
     hash = sources.fullHash;
diff --git a/pkgs/applications/emulators/yuzu/early-access/sources.nix b/pkgs/applications/emulators/yuzu/early-access/sources.nix
index ec513e7b5e2c..ee7cc6edb500 100644
--- a/pkgs/applications/emulators/yuzu/early-access/sources.nix
+++ b/pkgs/applications/emulators/yuzu/early-access/sources.nix
@@ -1,7 +1,7 @@
 # Generated by ./update.sh - do not update manually!
-# Last updated: 2024-01-10
+# Last updated: 2024-01-28
 {
-  version = "4056";
-  distHash = "sha256:14qd5v238pka9axrxjbaawr0kpkkbd95mzri6jdjxjyzbkk03hmb";
-  fullHash = "sha256:0fb4i6708q59ql9ffrw2myanqgxpy20z971y6l7yvxm1pqw9qhyx";
+  version = "4093";
+  distHash = "sha256:0f6ffs0qvq516vcc6w132p9lg888cy6id9cgkdmzc6039aymdgki";
+  fullHash = "sha256:1scn06anfjvy4ysxmv8qq7p5dzkfqyxbm6h6lpywy3nkpyx1cz15";
 }
diff --git a/pkgs/applications/emulators/yuzu/early-access/update.sh b/pkgs/applications/emulators/yuzu/early-access/update.sh
index 0e98185bbf9a..f7ea2ca34a41 100755
--- a/pkgs/applications/emulators/yuzu/early-access/update.sh
+++ b/pkgs/applications/emulators/yuzu/early-access/update.sh
@@ -31,7 +31,7 @@ log "Unpacking dist..."
 tar xf "$eaDist"/*.tar.xz --directory="$eaDistUnpacked" --strip-components=1
 
 log "Rehydrating..."
-eaFullHash="$(nix-prefetch-git --fetch-submodules "$eaDistUnpacked" | jq -r '.sha256')"
+eaFullHash="$(nix-prefetch-git --fetch-submodules --quiet "$eaDistUnpacked" | jq -r '.sha256')"
 
 cat >sources.nix <<EOF
 # Generated by ./update.sh - do not update manually!
@@ -42,7 +42,3 @@ cat >sources.nix <<EOF
   fullHash = "sha256:$eaFullHash";
 }
 EOF
-
-if [ "${COMMIT:-0}" == "1" ]; then
-    git commit -m "yuzu-ea: ${oldVersion} -> ${newVersion}" ./sources.nix
-fi
diff --git a/pkgs/applications/emulators/yuzu/mainline.nix b/pkgs/applications/emulators/yuzu/mainline.nix
index e845603f4cc2..62df80750bd6 100644
--- a/pkgs/applications/emulators/yuzu/mainline.nix
+++ b/pkgs/applications/emulators/yuzu/mainline.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , nix-update-script
 , wrapQtAppsHook
 , alsa-lib
@@ -47,13 +48,13 @@
 }:
 stdenv.mkDerivation(finalAttrs: {
   pname = "yuzu";
-  version = "1676";
+  version = "1696";
 
   src = fetchFromGitHub {
     owner = "yuzu-emu";
     repo = "yuzu-mainline";
     rev = "mainline-0-${finalAttrs.version}";
-    hash = "sha256-vRrliVuGXI/Dpmdkbj+P5hshzPzB6nijrXQfLXHaGqk=";
+    hash = "sha256-9xIhOA8hA7rsjtO0sgg1ucqghSzaOtkuTAHyQvmT+y4=";
     fetchSubmodules = true;
   };
 
@@ -154,7 +155,7 @@ stdenv.mkDerivation(finalAttrs: {
 
     # provide pre-downloaded tz data
     mkdir -p build/externals/nx_tzdb
-    ln -sf ${nx_tzdb} build/externals/nx_tzdb/${nx_tzdb.version}.zip
+    ln -s ${nx_tzdb} build/externals/nx_tzdb/nx_tzdb
   '';
 
   # This must be done after cmake finishes as it overwrites the file
diff --git a/pkgs/applications/emulators/yuzu/nx_tzdb.nix b/pkgs/applications/emulators/yuzu/nx_tzdb.nix
index faca41e24737..de847e2b0c78 100644
--- a/pkgs/applications/emulators/yuzu/nx_tzdb.nix
+++ b/pkgs/applications/emulators/yuzu/nx_tzdb.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, gitUpdater }:
+{ stdenv, fetchurl, unzip, gitUpdater }:
 stdenv.mkDerivation rec {
   pname = "nx_tzdb";
   version = "221202";
@@ -8,10 +8,10 @@ stdenv.mkDerivation rec {
     hash = "sha256-mRzW+iIwrU1zsxHmf+0RArU8BShAoEMvCz+McXFFK3c=";
   };
 
-  dontUnpack = true;
+  nativeBuildInputs = [ unzip ];
 
   buildCommand = ''
-    cp $src $out
+    unzip $src -d $out
   '';
 
   passthru.updateScript = gitUpdater {
diff --git a/pkgs/applications/emulators/yuzu/update.sh b/pkgs/applications/emulators/yuzu/update.sh
index 4bb96b2105b4..25ea10fc9aa0 100755
--- a/pkgs/applications/emulators/yuzu/update.sh
+++ b/pkgs/applications/emulators/yuzu/update.sh
@@ -4,4 +4,4 @@
 nix-update -u yuzuPackages.nx_tzdb "$@"
 nix-update -u yuzuPackages.compat-list "$@"
 nix-update -u yuzuPackages.mainline "$@"
-nix-update -u yuzuPackages.early-access "$@"
+nix-update -u yuzuPackages.early-access --override-filename pkgs/applications/emulators/yuzu/early-access/sources.nix "$@"
diff --git a/pkgs/applications/file-managers/clifm/default.nix b/pkgs/applications/file-managers/clifm/default.nix
index 577bad9e6945..fdabc61aeb46 100644
--- a/pkgs/applications/file-managers/clifm/default.nix
+++ b/pkgs/applications/file-managers/clifm/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "clifm";
-  version = "1.15";
+  version = "1.16";
 
   src = fetchFromGitHub {
     owner = "leo-arch";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-4Z2u1APNfJ9Ai95MMWb5FCUgCA2Hrbp+5eBJZD3tN+U=";
+    sha256 = "sha256-tjxsJv5w0Rvk2XYisncytcRdZLRnOSDJmNJN4kkzr7U=";
   };
 
   buildInputs = [ libcap acl file readline python3];
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/leo-arch/clifm";
     description = "CliFM is a CLI-based, shell-like, and non-curses terminal file manager written in C: simple, fast, extensible, and lightweight as hell";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ nadir-ishiguro ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/file-managers/felix-fm/default.nix b/pkgs/applications/file-managers/felix-fm/default.nix
index 6cbc47901562..f34be93fc3ca 100644
--- a/pkgs/applications/file-managers/felix-fm/default.nix
+++ b/pkgs/applications/file-managers/felix-fm/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "felix";
-  version = "2.11.1";
+  version = "2.12.1";
 
   src = fetchFromGitHub {
     owner = "kyoheiu";
     repo = "felix";
     rev = "v${version}";
-    hash = "sha256-Q+D5A4KVhVuas7sGy0CqN95cvTLAw5LWet/BECjJUPg=";
+    hash = "sha256-M+auLJeD5rDk5LJfTBg9asZ3J4DHsZG4UGRhXdZZVkc=";
   };
 
-  cargoHash = "sha256-RfBRm/YiTPxkAN8A+uAoN047DBHEVSL0isQfJgO1Bo0=";
+  cargoHash = "sha256-GzaBaaGjBCz+xd1bpU2cebQvg5DO0qipHwhOerbq+ow=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/applications/file-managers/mc/default.nix b/pkgs/applications/file-managers/mc/default.nix
index e83dd0379a19..08bfe6205fde 100644
--- a/pkgs/applications/file-managers/mc/default.nix
+++ b/pkgs/applications/file-managers/mc/default.nix
@@ -24,11 +24,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mc";
-  version = "4.8.30";
+  version = "4.8.31";
 
   src = fetchurl {
     url = "https://www.midnight-commander.org/downloads/${pname}-${version}.tar.xz";
-    sha256 = "sha256-Xrw8shRLlwxRSf2lVsStULeHgElGls3y0UpTIEyVx98=";
+    sha256 = "sha256-JBkc+GZ2dbjjH8Sp0YoKZb3AWYwsXE6gkklM0Tq0qxo=";
   };
 
   nativeBuildInputs = [ pkg-config unzip ]
diff --git a/pkgs/applications/file-managers/tuifimanager/default.nix b/pkgs/applications/file-managers/tuifimanager/default.nix
index 252c77deb8d1..75c65aaa1313 100644
--- a/pkgs/applications/file-managers/tuifimanager/default.nix
+++ b/pkgs/applications/file-managers/tuifimanager/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "tuifi-manager";
-  version = "3.3.1";
+  version = "3.3.5";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "GiorgosXou";
     repo = "TUIFIManager";
-    rev = "v.${version}";
-    hash = "sha256-yBMme0LJSlEXPxE9NMr0Z5VJWcWOzzdvbTnavkLHsvo=";
+    rev = "refs/tags/v.${version}";
+    hash = "sha256-O4cAHFurgF6QzpeAMoipX2/JywU1drZOTw/Ob9Pa8WQ=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/file-managers/xfe/default.nix b/pkgs/applications/file-managers/xfe/default.nix
index 5ac0f5e3abab..ffad141bdafa 100644
--- a/pkgs/applications/file-managers/xfe/default.nix
+++ b/pkgs/applications/file-managers/xfe/default.nix
@@ -16,11 +16,11 @@
 
 stdenv.mkDerivation rec {
   pname = "xfe";
-  version = "1.45";
+  version = "1.46";
 
   src = fetchurl {
     url = "mirror://sourceforge/xfe/xfe-${version}.tar.xz";
-    sha256 = "sha256-RmvVUzqCsRRwXgC4Yabt46uFHnL0XFWncQfXDG+owDc=";
+    sha256 = "sha256-80rtoetmipDObW8BHL2US7305Jo5TFrQrIg6DzLoR/k=";
   };
 
   nativeBuildInputs = [ pkg-config intltool ];
diff --git a/pkgs/applications/file-managers/yazi/default.nix b/pkgs/applications/file-managers/yazi/default.nix
index 60e0013f2427..b559f8886572 100644
--- a/pkgs/applications/file-managers/yazi/default.nix
+++ b/pkgs/applications/file-managers/yazi/default.nix
@@ -31,16 +31,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "yazi";
-  version = "0.2.1";
+  version = "0.2.2";
 
   src = fetchFromGitHub {
     owner = "sxyazi";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-XdN2oP5c2lK+bR3i+Hwd4oOlccMQisbzgevHsZ8YbSQ=";
+    hash = "sha256-XF5zCFXiViFsRPqI6p1Z7093NSWrGmcoyWcGEagIoEA=";
   };
 
-  cargoHash = "sha256-0JNKlzmMS5wcTW0faTnhFgNK2VHXixNnMx6ZS3eKbPA=";
+  cargoHash = "sha256-9fXHpq5lXG9Gup1dZPlXiNilbP79fJ3Jp3+ZD7mAzP4=";
 
   env.YAZI_GEN_COMPLETIONS = true;
 
diff --git a/pkgs/applications/gis/qgis/pdal-2_5.nix b/pkgs/applications/gis/qgis/pdal-2_5.nix
deleted file mode 100644
index 40d6ff5a719c..000000000000
--- a/pkgs/applications/gis/qgis/pdal-2_5.nix
+++ /dev/null
@@ -1,131 +0,0 @@
-{ lib
-, stdenv
-, callPackage
-, fetchFromGitHub
-, testers
-
-, enableE57 ? lib.meta.availableOn stdenv.hostPlatform libe57format
-
-, cmake
-, curl
-, gdal
-, hdf5-cpp
-, LASzip
-, libe57format
-, libgeotiff
-, libtiff
-, libxml2
-, openscenegraph
-, pkg-config
-, postgresql
-, tiledb
-, xercesc
-, zlib
-, zstd
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "pdal";
-  version = "2.5.6";
-
-  src = fetchFromGitHub {
-    owner = "PDAL";
-    repo = "PDAL";
-    rev = finalAttrs.version;
-    sha256 = "sha256-JKwa89c05EfZ/FxOkj8lYmw0o2EgSqafRDIV2mTpZ5E=";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    pkg-config
-  ];
-
-  buildInputs = [
-    curl
-    gdal
-    hdf5-cpp
-    LASzip
-    libgeotiff
-    libtiff
-    libxml2
-    openscenegraph
-    postgresql
-    tiledb
-    xercesc
-    zlib
-    zstd
-  ] ++ lib.optionals enableE57 [
-    libe57format
-  ];
-
-  cmakeFlags = [
-    "-DBUILD_PLUGIN_E57=${if enableE57 then "ON" else "OFF"}"
-    "-DBUILD_PLUGIN_HDF=ON"
-    "-DBUILD_PLUGIN_PGPOINTCLOUD=ON"
-    "-DBUILD_PLUGIN_TILEDB=ON"
-    "-DWITH_TESTS=ON"
-    "-DBUILD_PGPOINTCLOUD_TESTS=OFF"
-
-    # Plugins can probably not be made work easily:
-    "-DBUILD_PLUGIN_CPD=OFF"
-    "-DBUILD_PLUGIN_FBX=OFF" # Autodesk FBX SDK is gratis+proprietary; not packaged in nixpkgs
-    "-DBUILD_PLUGIN_GEOWAVE=OFF"
-    "-DBUILD_PLUGIN_I3S=OFF"
-    "-DBUILD_PLUGIN_ICEBRIDGE=OFF"
-    "-DBUILD_PLUGIN_MATLAB=OFF"
-    "-DBUILD_PLUGIN_MBIO=OFF"
-    "-DBUILD_PLUGIN_MRSID=OFF"
-    "-DBUILD_PLUGIN_NITF=OFF"
-    "-DBUILD_PLUGIN_OCI=OFF"
-    "-DBUILD_PLUGIN_RDBLIB=OFF" # Riegl rdblib is proprietary; not packaged in nixpkgs
-    "-DBUILD_PLUGIN_RIVLIB=OFF"
-  ];
-
-  doCheck = true;
-
-  disabledTests = [
-    # Tests failing due to TileDB library implementation, disabled also
-    # by upstream CI.
-    # See: https://github.com/PDAL/PDAL/blob/bc46bc77f595add4a6d568a1ff923d7fe20f7e74/.github/workflows/linux.yml#L81
-    "pdal_io_tiledb_writer_test"
-    "pdal_io_tiledb_reader_test"
-    "pdal_io_tiledb_time_writer_test"
-    "pdal_io_tiledb_time_reader_test"
-    "pdal_io_tiledb_bit_fields_test"
-    "pdal_io_e57_read_test"
-    "pdal_io_e57_write_test"
-    "pdal_io_stac_reader_test"
-
-    # Segfault
-    "pdal_io_hdf_reader_test"
-
-    # Failure
-    "pdal_app_plugin_test"
-  ];
-
-  checkPhase = ''
-    runHook preCheck
-    # tests are flaky and they seem to fail less often when they don't run in
-    # parallel
-    ctest -j 1 --output-on-failure -E '^${lib.concatStringsSep "|" finalAttrs.disabledTests}$'
-    runHook postCheck
-  '';
-
-  passthru.tests = {
-    version = testers.testVersion {
-      package = finalAttrs.finalPackage;
-      command = "pdal --version";
-      version = "pdal ${finalAttrs.finalPackage.version}";
-    };
-    pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
-  };
-
-  meta = with lib; {
-    description = "PDAL is Point Data Abstraction Library. GDAL for point cloud data";
-    homepage = "https://pdal.io";
-    license = licenses.bsd3;
-    maintainers = teams.geospatial.members;
-    platforms = platforms.all;
-    pkgConfigModules = [ "pdal" ];
-  };
-})
diff --git a/pkgs/applications/gis/qgis/unwrapped-ltr.nix b/pkgs/applications/gis/qgis/unwrapped-ltr.nix
index 7a19b6b94b4a..695124728327 100644
--- a/pkgs/applications/gis/qgis/unwrapped-ltr.nix
+++ b/pkgs/applications/gis/qgis/unwrapped-ltr.nix
@@ -47,11 +47,6 @@
 }:
 
 let
-
-  # replace with global pdal version once
-  # https://github.com/qgis/QGIS/pull/54940 is backported
-  pdal = callPackage ./pdal-2_5.nix { };
-
   py = python3.override {
     packageOverrides = self: super: {
       pyqt5 = super.pyqt5.override {
@@ -132,7 +127,7 @@ in mkDerivation rec {
     qtserialport
     qtxmlpatterns
     qt3d
-    pdal
+    # pdal
     zstd
   ] ++ lib.optional withGrass grass
     ++ lib.optional withWebKit qtwebkit
@@ -151,9 +146,11 @@ in mkDerivation rec {
     })
   ];
 
+  # PDAL is disabled until https://github.com/qgis/QGIS/pull/54940
+  # is backported.
   cmakeFlags = [
     "-DWITH_3D=True"
-    "-DWITH_PDAL=TRUE"
+    "-DWITH_PDAL=False"  # TODO: re-enable PDAL
     "-DENABLE_TESTS=False"
   ] ++ lib.optional (!withWebKit) "-DWITH_QTWEBKIT=OFF"
     ++ lib.optional withGrass (let
diff --git a/pkgs/applications/gis/qgis/unwrapped.nix b/pkgs/applications/gis/qgis/unwrapped.nix
index 5322b1fb3441..4d89cacece79 100644
--- a/pkgs/applications/gis/qgis/unwrapped.nix
+++ b/pkgs/applications/gis/qgis/unwrapped.nix
@@ -77,14 +77,14 @@ let
     urllib3
   ];
 in mkDerivation rec {
-  version = "3.34.2";
+  version = "3.34.3";
   pname = "qgis-unwrapped";
 
   src = fetchFromGitHub {
     owner = "qgis";
     repo = "QGIS";
     rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}";
-    hash = "sha256-RKxIJpp0lmRqyMYJuX2U4/GJh0FTnklFOcUft6LsuHc=";
+    hash = "sha256-uf4qUalY6LxPykgUt/atHBTu+A6ITrcnfez/jwVMLvA=";
   };
 
   passthru = {
diff --git a/pkgs/applications/gis/saga/default.nix b/pkgs/applications/gis/saga/default.nix
index 7639838a10a5..817fa7b86f24 100644
--- a/pkgs/applications/gis/saga/default.nix
+++ b/pkgs/applications/gis/saga/default.nix
@@ -31,11 +31,11 @@
 
 stdenv.mkDerivation rec {
   pname = "saga";
-  version = "9.3.0";
+  version = "9.3.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/saga-gis/saga-${version}.tar.gz";
-    sha256 = "sha256-zBdp4Eyzpc21zhA2+UD6LrXNH+sSfb0avOscxCbGxjE=";
+    sha256 = "sha256-QrpEbb8zN003Afnu9UZUanWE0lIiy95POSWd1jB8EtA=";
   };
 
   sourceRoot = "saga-${version}/saga-gis";
diff --git a/pkgs/applications/graphics/ImageMagick/default.nix b/pkgs/applications/graphics/ImageMagick/default.nix
index 8ac049648889..965271fc83bb 100644
--- a/pkgs/applications/graphics/ImageMagick/default.nix
+++ b/pkgs/applications/graphics/ImageMagick/default.nix
@@ -49,13 +49,13 @@ in
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "imagemagick";
-  version = "7.1.1-25";
+  version = "7.1.1-27";
 
   src = fetchFromGitHub {
     owner = "ImageMagick";
     repo = "ImageMagick";
     rev = finalAttrs.version;
-    hash = "sha256-HKDeeh8DNj0y7wS4DqctXhmNaOqZ02JeBXRFrEpH0M4=";
+    hash = "sha256-jZ5mLqhNZw8V9D61Nv2gB+6Wo9KP+P3KouQ+u2OUL6I=";
   };
 
   outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
diff --git a/pkgs/applications/graphics/digikam/default.nix b/pkgs/applications/graphics/digikam/default.nix
index be714028ec9a..8bc94f9c2b23 100644
--- a/pkgs/applications/graphics/digikam/default.nix
+++ b/pkgs/applications/graphics/digikam/default.nix
@@ -158,6 +158,7 @@ mkDerivation rec {
     description = "Photo Management Program";
     license = licenses.gpl2;
     homepage = "https://www.digikam.org";
+    maintainers = with maintainers; [ spacefault ];
     platforms = platforms.linux;
     mainProgram = "digikam";
   };
diff --git a/pkgs/applications/graphics/djv/default.nix b/pkgs/applications/graphics/djv/default.nix
index 8e36e5b70db1..735807691af7 100644
--- a/pkgs/applications/graphics/djv/default.nix
+++ b/pkgs/applications/graphics/djv/default.nix
@@ -112,6 +112,11 @@ stdenv.mkDerivation rec {
     # Pull fix ending upstream inclusion for gcc-12+ support:
     #   https://github.com/darbyjohnston/DJV/pull/477
     (fetchpatch {
+      name = "gcc-13-cstdint-include.patch";
+      url = "https://github.com/darbyjohnston/DJV/commit/be0dd90c256f30c0305ff7b180fd932a311e66e5.patch";
+      hash = "sha256-x8GAfakhgjBiCKHbfgCukT5iFNad+zqURDJkQr092uk=";
+    })
+    (fetchpatch {
       name = "gcc-11-limits.patch";
       url = "https://github.com/darbyjohnston/DJV/commit/0544ffa1a263a6b8e8518b47277de7601b21b4f4.patch";
       hash = "sha256-x6ye0xMwTlKyNW4cVFb64RvAayvo71kuOooPj3ROn0g=";
diff --git a/pkgs/applications/graphics/f3d/default.nix b/pkgs/applications/graphics/f3d/default.nix
index 0207d3fa13e0..2fef95222b5a 100644
--- a/pkgs/applications/graphics/f3d/default.nix
+++ b/pkgs/applications/graphics/f3d/default.nix
@@ -1,26 +1,48 @@
-{ lib, stdenv, fetchFromGitHub, cmake, vtk_9, libX11, libGL, Cocoa, OpenGL }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, help2man
+, gzip
+, vtk_9
+, autoPatchelfHook
+, libX11
+, libGL
+, Cocoa
+, OpenGL
+}:
 
 stdenv.mkDerivation rec {
   pname = "f3d";
-  version = "2.2.1";
+  version = "2.3.0";
+
+  outputs = [ "out" "man" ];
 
   src = fetchFromGitHub {
     owner = "f3d-app";
     repo = "f3d";
     rev = "refs/tags/v${version}";
-    hash = "sha256-3Pg8uvrUGPKPmsn24q5HPMg9dgvukAXBgSVTW0NiCME=";
+    hash = "sha256-pr2xuCy5yoUuj2cjkTh3Xwpg3g7zBspjErEi5luRD6Y=";
   };
 
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [
+    cmake
+    help2man
+    gzip
+    # https://github.com/f3d-app/f3d/pull/1217
+    autoPatchelfHook
+  ];
 
   buildInputs = [ vtk_9 ] ++ lib.optionals stdenv.isDarwin [ Cocoa OpenGL ];
 
-  # conflict between VTK and Nixpkgs;
-  # see https://github.com/NixOS/nixpkgs/issues/89167
   cmakeFlags = [
+    # conflict between VTK and Nixpkgs;
+    # see https://github.com/NixOS/nixpkgs/issues/89167
     "-DCMAKE_INSTALL_LIBDIR=lib"
     "-DCMAKE_INSTALL_INCLUDEDIR=include"
     "-DCMAKE_INSTALL_BINDIR=bin"
+
+    "-DF3D_LINUX_GENERATE_MAN=ON"
   ];
 
   meta = with lib; {
@@ -28,7 +50,7 @@ stdenv.mkDerivation rec {
     homepage = "https://f3d-app.github.io/f3d";
     changelog = "https://github.com/f3d-app/f3d/releases/tag/v${version}";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ bcdarwin ];
+    maintainers = with maintainers; [ bcdarwin pbsds ];
     platforms = with platforms; unix;
   };
 }
diff --git a/pkgs/applications/graphics/figma-agent/default.nix b/pkgs/applications/graphics/figma-agent/default.nix
index d0569d828bf1..36ae271d7e16 100644
--- a/pkgs/applications/graphics/figma-agent/default.nix
+++ b/pkgs/applications/graphics/figma-agent/default.nix
@@ -8,7 +8,7 @@
 let
   inherit (rustPlatform) buildRustPackage bindgenHook;
 
-  version = "0.2.8";
+  version = "0.3.2";
 in
 buildRustPackage {
   pname = "figma-agent";
@@ -18,10 +18,10 @@ buildRustPackage {
     owner = "neetly";
     repo = "figma-agent-linux";
     rev = version;
-    sha256 = "sha256-GtbONBAXoJ3AdpsWGk4zBCtGQr446siMtuj3or27wYw=";
+    sha256 = "sha256-iXLQOc8gomOik+HIIoviw19II5MD6FM0W5DT3aqtIcM=";
   };
 
-  cargoHash = "sha256-EmBeRdnA59PdzSEX2x+sVYk/Cs7K3k0idDjbuEzI9j4=";
+  cargoHash = "sha256-ulYDKMMtKfBYur34CVhac4uaU0kfdkeBCCP/heuUZek=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/applications/graphics/foxotron/default.nix b/pkgs/applications/graphics/foxotron/default.nix
index af16095a7d5d..079515b4b214 100644
--- a/pkgs/applications/graphics/foxotron/default.nix
+++ b/pkgs/applications/graphics/foxotron/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , lib
 , fetchFromGitHub
+, fetchpatch
 , nix-update-script
 , cmake
 , pkg-config
@@ -35,9 +36,24 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-s1eWZMVitVSP7nJJ5wXvnV8uI6yto7LmvlvocOwVAxw=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "0001-assimp-Include-cstdint-for-std-uint32_t.patch";
+      url = "https://github.com/assimp/assimp/commit/108e3192a201635e49e99a91ff2044e1851a2953.patch";
+      stripLen = 1;
+      extraPrefix = "externals/assimp/";
+      hash = "sha256-rk0EFmgeZVwvx3NJOOob5Jwj9/J+eOtuAzfwp88o+J4=";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace CMakeLists.txt \
       --replace "set(CMAKE_OSX_ARCHITECTURES x86_64)" ""
+
+    # Outdated vendored assimp, many warnings with newer compilers, too old for CMake option to control this
+    # Note that this -Werror caused issues on darwin, so make sure to re-check builds there before removing this
+    substituteInPlace externals/assimp/code/CMakeLists.txt \
+      --replace 'TARGET_COMPILE_OPTIONS(assimp PRIVATE -Werror)' ""
   '';
 
   nativeBuildInputs = [ cmake pkg-config makeWrapper ];
diff --git a/pkgs/applications/graphics/fstl/default.nix b/pkgs/applications/graphics/fstl/default.nix
index c6b77300cb31..c7faf43e24e8 100644
--- a/pkgs/applications/graphics/fstl/default.nix
+++ b/pkgs/applications/graphics/fstl/default.nix
@@ -1,34 +1,30 @@
-{ lib, stdenv, fetchFromGitHub, mkDerivation, qtbase, mesa_glu }:
+{ lib, stdenv, fetchFromGitHub, mkDerivation, cmake }:
 
 mkDerivation rec {
   pname = "fstl";
-  version = "0.9.4";
+  version = "0.10.0";
 
-  buildInputs = [qtbase mesa_glu];
+  nativeBuildInputs = [ cmake ];
 
-  prePatch = ''
-    sed -i "s|/usr/bin|$out/bin|g" qt/fstl.pro
-  '';
-
-  preBuild = ''
-    qmake qt/fstl.pro
-  '';
+  installPhase = lib.optionalString stdenv.isDarwin ''
+    runHook preInstall
 
-  postInstall = lib.optionalString stdenv.isDarwin ''
     mkdir -p $out/Applications
     mv fstl.app $out/Applications
+
+    runHook postInstall
   '';
 
   src = fetchFromGitHub {
-    owner = "mkeeter";
+    owner = "fstl-app";
     repo = "fstl";
     rev = "v" + version;
-    sha256 = "028hzdv11hgvcpc36q5scf4nw1256qswh37xhfn5a0iv7wycmnif";
+    hash = "sha256-z2X78GW/IeiPCnwkeLBCLjILhfMe2sT3V9Gbw4TSf4c=";
   };
 
   meta = with lib; {
     description = "The fastest STL file viewer";
-    homepage = "https://github.com/mkeeter/fstl";
+    homepage = "https://github.com/fstl-app/fstl";
     license = licenses.mit;
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ tweber ];
diff --git a/pkgs/applications/graphics/goxel/default.nix b/pkgs/applications/graphics/goxel/default.nix
index 64b2112b5675..968794ccec66 100644
--- a/pkgs/applications/graphics/goxel/default.nix
+++ b/pkgs/applications/graphics/goxel/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "goxel";
-  version = "0.13.0";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "guillaumechereau";
     repo = "goxel";
     rev = "v${version}";
-    hash = "sha256-mB4ln2uIhK/hsX+hUpeZ8H4aumaAUl5vaFkqolJtLRg=";
+    hash = "sha256-ueA0YW2n/DXd9AytDzfPtvtXbvuUm4VDwcdvHWObKxc=";
   };
 
   nativeBuildInputs = [ scons pkg-config wrapGAppsHook ];
diff --git a/pkgs/applications/graphics/hydrus/default.nix b/pkgs/applications/graphics/hydrus/default.nix
index 1792c6355862..89e2d8c20817 100644
--- a/pkgs/applications/graphics/hydrus/default.nix
+++ b/pkgs/applications/graphics/hydrus/default.nix
@@ -12,14 +12,14 @@
 
 python3Packages.buildPythonPackage rec {
   pname = "hydrus";
-  version = "557";
+  version = "559";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "hydrusnetwork";
     repo = "hydrus";
     rev = "refs/tags/v${version}";
-    hash = "sha256-upijLCj+mxTQ9EO2mfvnfPjqIvRaAqtByeRY/N1ANlU=";
+    hash = "sha256-+aYrqt1sifCe6/qS4kZyx0CLSHEoutFk6cyxmOXmN7Q=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/identity/default.nix b/pkgs/applications/graphics/identity/default.nix
index 55e13d7016fa..a17ecf7a6fb2 100644
--- a/pkgs/applications/graphics/identity/default.nix
+++ b/pkgs/applications/graphics/identity/default.nix
@@ -72,6 +72,6 @@ stdenv.mkDerivation rec {
     homepage = "https://gitlab.gnome.org/YaLTeR/identity";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ paveloom ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/applications/graphics/komikku/default.nix b/pkgs/applications/graphics/komikku/default.nix
index bbe7bd88c9c4..91c70aa02782 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.35.0";
+  version = "1.37.1";
 
   format = "other";
 
@@ -28,7 +28,7 @@ python3.pkgs.buildPythonApplication rec {
     owner = "valos";
     repo = "Komikku";
     rev = "v${version}";
-    hash = "sha256-oyXeh+/9tzykt2fhsKNrk1iaO8556LyCHGVxAxRojLw=";
+    hash = "sha256-pGOut63+ST1Yqe1Fj0c4cI0du1q4JW7WVA4h+muWGJQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/lazpaint/default.nix b/pkgs/applications/graphics/lazpaint/default.nix
index 91562bb5d49e..d2d799dadaf6 100644
--- a/pkgs/applications/graphics/lazpaint/default.nix
+++ b/pkgs/applications/graphics/lazpaint/default.nix
@@ -1,30 +1,30 @@
 { lib, stdenv, fetchFromGitHub, lazarus, fpc, pango, cairo, glib
-, atk, gtk2, libX11, gdk-pixbuf, busybox, python3, makeWrapper }:
-
-with stdenv;
+, atk, gtk2, libX11, gdk-pixbuf, busybox, python3
+, makeWrapper
+}:
 
 let
   bgrabitmap = fetchFromGitHub {
     owner = "bgrabitmap";
     repo = "bgrabitmap";
-    rev = "v11.5.3";
-    sha256 = "sha256-qjBD9TVZQy1tKWHFWkuu6vdLjASzQb3+HRy0FLdd9a8=";
+    rev = "2814b069d55f726b9f3b4774d85d00dd72be9c05";
+    hash = "sha256-YibwdhlgjgI30gqYsKchgDPlOSpBiDBDJNlUDFMygGs=";
   };
   bgracontrols = fetchFromGitHub {
     owner = "bgrabitmap";
     repo = "bgracontrols";
-    rev = "v7.6";
-    sha256 = "sha256-btg9DMdYg+C8h0H7MU+uoo2Kb4OeLHoxFYHAv7LbLBA=";
+    rev = "v8.0";
+    hash = "sha256-5L05eGVN+xncd0/0XLFN6EL2ux4aAOsiU0BMoy0dKgg=";
   };
 in stdenv.mkDerivation rec {
   pname = "lazpaint";
-  version = "7.2.2";
+  version = "7.2.2-unstable-2024-01-20";
 
   src = fetchFromGitHub {
     owner = "bgrabitmap";
     repo = "lazpaint";
-    rev = "v${version}";
-    sha256 = "sha256-J6s0GnGJ7twEYW5+B72bB3EX4AYvLnhSPLbdhZWzlkw=";
+    rev = "fe54c2e2561c51218a5a2755842ce3fc2e0ebb35";
+    hash = "sha256-LaOTJiS+COJUlyJiN9H2kEKwv5lbJqOHsUXOnb+IQFA=";
   };
 
   nativeBuildInputs = [ lazarus fpc makeWrapper ];
@@ -49,23 +49,16 @@ in stdenv.mkDerivation rec {
       lazpaint/lazpaint.lpi
   '';
 
-  installPhase = ''
-    # Reuse existing install script
-    substituteInPlace Makefile --replace "/bin/bash" $BASH
-    cd lazpaint/release/debian
-    substituteInPlace makedeb.sh --replace "rm -rf" "ls"
-    patchShebangs ./makedeb.sh
-    PATH=$PATH:${busybox}/bin ./makedeb.sh
-    cp -r staging/usr $out
-
+  postBuild = ''
     # Python is needed for scripts
-    makeWrapper $out/share/lazpaint/lazpaint $out/bin/lazpaint \
+    wrapProgram $out/bin/lazpaint \
       --prefix PATH : ${lib.makeBinPath [ python3 ]}
   '';
 
   meta = with lib; {
     description = "Image editor like PaintBrush or Paint.Net";
-    homepage = "https://sourceforge.net/projects/lazpaint/";
+    homepage = "https://lazpaint.github.io";
+    downloadPage = "https://github.com/bgrabitmap/lazpaint/";
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/applications/graphics/oculante/default.nix b/pkgs/applications/graphics/oculante/default.nix
index f4a29a539c5c..e8a82a71aee4 100644
--- a/pkgs/applications/graphics/oculante/default.nix
+++ b/pkgs/applications/graphics/oculante/default.nix
@@ -22,16 +22,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "oculante";
-  version = "0.8.6";
+  version = "0.8.7";
 
   src = fetchFromGitHub {
     owner = "woelper";
     repo = "oculante";
     rev = version;
-    hash = "sha256-AuHiOZuRhO6PVyDyOtmNG6n/CN5brvJ/Ppn25QCshmE=";
+    hash = "sha256-49reMm9woxekJUqHq7biHvlYii9BmLvq6u9RFkASpUw=";
   };
 
-  cargoHash = "sha256-EYwey8dDiyYGJa+scENOpaNK2qAVagTJrAPkSZj12w0=";
+  cargoHash = "sha256-93J0/INcQEvu14pPZeLRfwKECeEGcsch9hUZ0IjYivM=";
 
   nativeBuildInputs = [
     cmake
diff --git a/pkgs/applications/graphics/paraview/default.nix b/pkgs/applications/graphics/paraview/default.nix
index 48b98b36d5c4..4fec6b2ad13c 100644
--- a/pkgs/applications/graphics/paraview/default.nix
+++ b/pkgs/applications/graphics/paraview/default.nix
@@ -6,23 +6,23 @@
 }:
 
 let
-  version = "5.11.1";
+  version = "5.11.2";
 
   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";
-      sha256 = "1knpirjbz3rv8p8n03p39vv8vi5imvxakjsssqgly09g0cnsikkw";
+      hash = "sha256-KIcd5GG+1L3rbj4qdLbc+eDa5Wy4+nqiVIxfHu5Tdpg=";
     })
     (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";
       name = "GettingStarted.pdf";
-      sha256 = "14xhlvg7s7d5amqf4qfyamx2a6b66zf4cmlfm3s7iw3jq01x1lx6";
+      hash = "sha256-ptPQA8By8Hj0qI5WRtw3ZhklelXeYeJwVaUdfd6msJM=";
     })
     (fetchurl {
       url = "https://www.paraview.org/paraview-downloads/download.php?submit=Download&version=v${lib.versions.majorMinor version}&type=data&os=Sources&downloadFile=ParaViewCatalystGuide-${version}.pdf";
       name = "CatalystGuide.pdf";
-      sha256 = "133vcfrbg2nh15igl51ns6gnfn1is20vq6j0rg37wha697pmcr4a";
+      hash = "sha256-imRW70lGQX7Gy0AavIHQMVhnn9E2FPpiCdCKt7Jje4w=";
     })
   ];
 
@@ -35,7 +35,7 @@ in stdenv.mkDerivation rec {
     owner = "paraview";
     repo = "paraview";
     rev = "v${version}";
-    hash = "sha256-LatNHfiAqB2kqzERRnYae0WIXBb4nXQ79Be4kuh8NFQ=";
+    hash = "sha256-fe/4xxxlkal08vE971FudTnESFfGMYzuvSyAMS6HSxI=";
     fetchSubmodules = true;
   };
 
@@ -90,6 +90,8 @@ in stdenv.mkDerivation rec {
     ./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/photoqt/default.nix b/pkgs/applications/graphics/photoqt/default.nix
index 21febdc02b7e..5d1ce4129791 100644
--- a/pkgs/applications/graphics/photoqt/default.nix
+++ b/pkgs/applications/graphics/photoqt/default.nix
@@ -25,11 +25,11 @@
 
 stdenv.mkDerivation rec {
   pname = "photoqt";
-  version = "4.1";
+  version = "4.2";
 
   src = fetchurl {
     url = "https://photoqt.org/pkgs/photoqt-${version}.tar.gz";
-    hash = "sha256-vxQZFlS4C+Dg9I6BKeMUFOYHz74d28gbhJlIpxSKTvs=";
+    hash = "sha256-OUqsyvmv6ccJDzcWAeS1OOmK2eXOCEgGktz6GEUzoA8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/pikopixel/default.nix b/pkgs/applications/graphics/pikopixel/default.nix
index 0463958b4c6c..816d9af62aa3 100644
--- a/pkgs/applications/graphics/pikopixel/default.nix
+++ b/pkgs/applications/graphics/pikopixel/default.nix
@@ -1,14 +1,9 @@
 { lib
 , fetchurl
 , gnustep
-, llvmPackages_9
 }:
 
-let
-  # Earlier llvm than 9 segfaults
-  gnustep' = gnustep.override { llvmPackages = llvmPackages_9; };
-
-in gnustep'.gsmakeDerivation rec {
+gnustep.gsmakeDerivation rec {
   pname = "pikopixel";
   version = "1.0-b10";
 
@@ -20,9 +15,9 @@ in gnustep'.gsmakeDerivation rec {
   sourceRoot = "PikoPixel.Sources.${version}/PikoPixel";
 
   buildInputs = [
-    gnustep'.base
-    gnustep'.gui
-    gnustep'.back
+    gnustep.base
+    gnustep.gui
+    gnustep.back
   ];
 
   # Fix the Exec and Icon paths in the .desktop file, and save the file in the
diff --git a/pkgs/applications/graphics/rawtherapee/default.nix b/pkgs/applications/graphics/rawtherapee/default.nix
index 85bbd1414cd9..cbf4efce28f5 100644
--- a/pkgs/applications/graphics/rawtherapee/default.nix
+++ b/pkgs/applications/graphics/rawtherapee/default.nix
@@ -79,6 +79,7 @@ stdenv.mkDerivation rec {
     "-Wno-deprecated-declarations"
     "-Wno-unused-result"
   ];
+  env.CXXFLAGS = "-include cstdint"; # needed at least with gcc13 on aarch64-linux
 
   postInstall = lib.optionalString stdenv.isDarwin ''
     mkdir -p $out/Applications/RawTherapee.app $out/bin
diff --git a/pkgs/applications/graphics/sane/backends/default.nix b/pkgs/applications/graphics/sane/backends/default.nix
index 1dc46e1b5ebe..000e8c17f9c9 100644
--- a/pkgs/applications/graphics/sane/backends/default.nix
+++ b/pkgs/applications/graphics/sane/backends/default.nix
@@ -3,6 +3,7 @@
 , avahi, libgphoto2, libieee1284, libjpeg, libpng, libtiff, libusb1, libv4l, net-snmp
 , curl, systemd, libxml2, poppler, gawk
 , sane-drivers
+, nixosTests
 
 # List of { src name backend } attibute sets - see installFirmware below:
 , extraFirmware ? []
@@ -132,6 +133,10 @@ stdenv.mkDerivation {
   # https://github.com/NixOS/nixpkgs/issues/224569
   enableParallelInstalling = false;
 
+  passthru.tests = {
+    inherit (nixosTests) sane;
+  };
+
   meta = with lib; {
     description = "SANE (Scanner Access Now Easy) backends";
     longDescription = ''
diff --git a/pkgs/applications/graphics/tev/default.nix b/pkgs/applications/graphics/tev/default.nix
index 88afa4a5fbca..ff97eb65f17c 100644
--- a/pkgs/applications/graphics/tev/default.nix
+++ b/pkgs/applications/graphics/tev/default.nix
@@ -31,6 +31,8 @@ stdenv.mkDerivation rec {
       --prefix PATH ":" "${gnome.zenity}/bin"
   '';
 
+  env.CXXFLAGS = "-include cstdint";
+
   meta = with lib; {
     description = "A high dynamic range (HDR) image comparison tool";
     longDescription = ''
diff --git a/pkgs/applications/graphics/upscayl/default.nix b/pkgs/applications/graphics/upscayl/default.nix
index 5981a3037493..24b8bc1483b2 100644
--- a/pkgs/applications/graphics/upscayl/default.nix
+++ b/pkgs/applications/graphics/upscayl/default.nix
@@ -4,11 +4,11 @@
   lib,
 }: let
   pname = "upscayl";
-  version = "2.9.5";
+  version = "2.9.8";
 
   src = fetchurl {
     url = "https://github.com/upscayl/upscayl/releases/download/v${version}/upscayl-${version}-linux.AppImage";
-    hash = "sha256-zEqdHWfMbxdOoZ3NfvOPZL0osrFVMxFN32gXfEjbKLs=";
+    hash = "sha256-hLK9AX87WbJdKTV/rzEzNeaUWeDz1+bvp/R2LkjHp+w=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/applications/graphics/vengi-tools/default.nix b/pkgs/applications/graphics/vengi-tools/default.nix
index dd13f8ba4503..23b6f5009ce4 100644
--- a/pkgs/applications/graphics/vengi-tools/default.nix
+++ b/pkgs/applications/graphics/vengi-tools/default.nix
@@ -29,13 +29,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vengi-tools";
-  version = "0.0.27";
+  version = "0.0.28";
 
   src = fetchFromGitHub {
     owner = "mgerhardy";
     repo = "vengi";
     rev = "v${version}";
-    hash = "sha256-A37IY66wZZK7Tv0zWsORO6CuRRRj7YmKLnEPSbfAvwI=";
+    hash = "sha256-UjSm/J/y7MUg3Exmw0P56+bcjiLxXdGS2brocdzgJ+c=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/logging/sosreport/default.nix b/pkgs/applications/logging/sosreport/default.nix
index b04a9835a86b..467feb4b496e 100644
--- a/pkgs/applications/logging/sosreport/default.nix
+++ b/pkgs/applications/logging/sosreport/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "sosreport";
-  version = "4.4";
+  version = "4.6.1";
 
   src = fetchFromGitHub {
     owner = "sosreport";
     repo = "sos";
-    rev = version;
-    sha256 = "sha256-xbL/4CmDnygiL/u3Jsa6fAkO4YfklDzuFMsxSGy1Ra4=";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-IW3b+zAxXnr7H+/XxJA+tJZYNte1nVdDaMhW3TcGxzo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/1password-gui/default.nix b/pkgs/applications/misc/1password-gui/default.nix
index 3261b02e7607..7fccd80e71c7 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.23" else "8.10.24-35.BETA";
+  version = if channel == "stable" then "8.10.24" else "8.10.26-1.BETA";
 
   sources = {
     stable = {
       x86_64-linux = {
         url = "https://downloads.1password.com/linux/tar/stable/x86_64/1password-${version}.x64.tar.gz";
-        hash = "sha256-TqZ9AffyHl1mAKyZvADVGh5OXKZEGXjKSkXq7ZI/obA=";
+        hash = "sha256-vYk7WHGVOzrrep6vmA58ELa6aDsZFUw5D2StCYP0Ioc=";
       };
       aarch64-linux = {
         url = "https://downloads.1password.com/linux/tar/stable/aarch64/1password-${version}.arm64.tar.gz";
-        hash = "sha256-vEdpqlGXc5gR9kr+iRRvRI4r48H6AWr+sDZt2kNQxB4=";
+        hash = "sha256-HuhoGG2aQ2NcbZlQfUmGUl0IvhXPO5uV7x4WKJRR7Ew=";
       };
       x86_64-darwin = {
         url = "https://downloads.1password.com/mac/1Password-${version}-x86_64.zip";
-        hash = "sha256-1vZbZdAyK/J+lMPwgeyEO5Qvj6nBd0TMkG4Y71Bgfoc=";
+        hash = "sha256-RHn1JJoRLWfqOTx0Di0nfHM7fbLs54DdWlI+PTQs1sQ=";
       };
       aarch64-darwin = {
         url = "https://downloads.1password.com/mac/1Password-${version}-aarch64.zip";
-        hash = "sha256-SGvzRGfoMrHSYOlJjsjS0ETIZelctzVbd/SyCv40+QI=";
+        hash = "sha256-ZjmgkGTY6KQ0vv7ILMMLYsK7N2YLmJGCBS6954v0JX8=";
       };
     };
     beta = {
       x86_64-linux = {
         url = "https://downloads.1password.com/linux/tar/beta/x86_64/1password-${version}.x64.tar.gz";
-        hash = "sha256-NO8jxXvdjDn7uTyboav8UnHfc0plHDLoKQ/FHZJqpsE=";
+        hash = "sha256-dAasy1D5HXQ8Eu5cx0u9exobNMf2TIV4iCTcys/uCtQ=";
       };
       aarch64-linux = {
         url = "https://downloads.1password.com/linux/tar/beta/aarch64/1password-${version}.arm64.tar.gz";
-        hash = "sha256-9qnODNE3kNRZyj5+2nfoz9zBmY2MqxVPo3rpLOCFAsI=";
+        hash = "sha256-sIPNv4HiU/6CLaER6deMG88zOOFwu6cm5XoB2Cr4qLQ=";
       };
       x86_64-darwin = {
         url = "https://downloads.1password.com/mac/1Password-${version}-x86_64.zip";
-        hash = "sha256-gU11xBIGOCRbQshOQ4ktYVgHe6dxJ0GnONkVnZkCiEE=";
+        hash = "sha256-Va4WgbPKrI7u+GYzVmA8Gp6NRY4EdJuoz00Pc5HsMIg=";
       };
       aarch64-darwin = {
         url = "https://downloads.1password.com/mac/1Password-${version}-aarch64.zip";
-        hash = "sha256-YcnVIgV+2MZOS+a+3lFuNMgnLaGVrOP53B/k70zRoTI=";
+        hash = "sha256-Dj96QoEcmJxV7qBkb68ovonr+XYqQdScb9GMeL8OCJo=";
       };
     };
   };
diff --git a/pkgs/applications/misc/ablog/default.nix b/pkgs/applications/misc/ablog/default.nix
index 8ad7a6232beb..a9cc6670e899 100644
--- a/pkgs/applications/misc/ablog/default.nix
+++ b/pkgs/applications/misc/ablog/default.nix
@@ -5,12 +5,12 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "ablog";
-  version = "0.11.4.post1";
+  version = "0.11.6";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Zyvx7lVUQtjoGsSpFmH8pFrgTGgsFd4GMsL3fXKtUpU=";
+    hash = "sha256-fV4W4AaiqyruIz3OQ7/lGkMPMKmyiFa+fdU2QeeQCvs=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
@@ -36,6 +36,7 @@ python3.pkgs.buildPythonApplication rec {
   pytestFlagsArray = [
     "-W" "ignore::sphinx.deprecation.RemovedInSphinx90Warning"
     "--rootdir" "src/ablog"
+    "-W" "ignore::sphinx.deprecation.RemovedInSphinx90Warning" # Ignore ImportError
   ];
 
   meta = with lib; {
diff --git a/pkgs/applications/misc/ausweisapp/default.nix b/pkgs/applications/misc/ausweisapp/default.nix
index d6f863576a27..25599f383819 100644
--- a/pkgs/applications/misc/ausweisapp/default.nix
+++ b/pkgs/applications/misc/ausweisapp/default.nix
@@ -15,13 +15,13 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "ausweisapp";
-  version = "2.0.2";
+  version = "2.0.3";
 
   src = fetchFromGitHub {
     owner = "Governikus";
     repo = "AusweisApp2";
     rev = finalAttrs.version;
-    hash = "sha256-m+GZkaJyuqErsvkUXi+uAsrMXHyQg9Vd77ZkfGxMqg4=";
+    hash = "sha256-pnGtlNXwYNG+m3mmo815dqp2i098I/i7EKdLrDm/Su8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/avizo/default.nix b/pkgs/applications/misc/avizo/default.nix
index 58295e04fb21..59021e92b0d8 100644
--- a/pkgs/applications/misc/avizo/default.nix
+++ b/pkgs/applications/misc/avizo/default.nix
@@ -20,13 +20,13 @@
 
 stdenv.mkDerivation rec {
   pname = "avizo";
-  version = "1.2.1";
+  version = "1.3";
 
   src = fetchFromGitHub {
     owner = "misterdanb";
     repo = "avizo";
     rev = version;
-    sha256 = "sha256-ainU4nXWFp1udVujPHZUeWIfJE4RrjU1hn9J17UuuzU=";
+    sha256 = "sha256-Vj8OrNlAstl0AXTeVAPdEf5JgnAmJwl9s3Jdc0ZiYQc=";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config vala gobject-introspection wrapGAppsHook ];
diff --git a/pkgs/applications/misc/avrdudess/default.nix b/pkgs/applications/misc/avrdudess/default.nix
index e4047e26b846..4133fd8e5a29 100644
--- a/pkgs/applications/misc/avrdudess/default.nix
+++ b/pkgs/applications/misc/avrdudess/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation {
   pname = "avrdudess";
-  version = "2.14";
+  version = "2.16";
 
   src = fetchurl {
-    url = "https://github.com/ZakKemble/AVRDUDESS/releases/download/v2.14/AVRDUDESS-2.14-portable.zip";
-    sha256 = "sha256-x3xcsJLBJVO8XdV4OUveZ4KLqN5z/z0FsNLbGHSNoHs=";
+    url = "https://github.com/ZakKemble/AVRDUDESS/releases/download/v2.16/AVRDUDESS-2.16-portable.zip";
+    sha256 = "sha256-Ow6WYdQfEDldI9q9CTpd13wtLZGTEkcHxz0Zg7QIZIs=";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/pkgs/applications/misc/bambu-studio/default.nix b/pkgs/applications/misc/bambu-studio/default.nix
index 1de4a02254e3..1455558dcc2e 100644
--- a/pkgs/applications/misc/bambu-studio/default.nix
+++ b/pkgs/applications/misc/bambu-studio/default.nix
@@ -58,13 +58,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "bambu-studio";
-  version = "01.08.02.56";
+  version = "01.08.04.51";
 
   src = fetchFromGitHub {
     owner = "bambulab";
     repo = "BambuStudio";
     rev = "v${version}";
-    hash = "sha256-9AUHS7dXqWx8LPkTP7/scxu3Cc/mxuK+v+5PrCvUPf0=";
+    hash = "sha256-rqD1+3Q4ZUBgS57iCItuLX6ZMP7VQuedaJmgKB1szgs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/batsignal/default.nix b/pkgs/applications/misc/batsignal/default.nix
index abf3f53e32a8..94a1a45fe107 100644
--- a/pkgs/applications/misc/batsignal/default.nix
+++ b/pkgs/applications/misc/batsignal/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "batsignal";
-  version = "1.6.4";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "electrickite";
     repo = "batsignal";
     rev = version;
-    sha256 = "sha256-Z5j5tSIF3AZiZjkFFtyyi3hMqWMXtf6ont2CQ/FSEjk=";
+    sha256 = "sha256-yngd2yP6XtRp8y8ZUd0NISdf8+8wJvpLogrQQMdB0lA=";
   };
 
   buildInputs = [ libnotify glib ];
diff --git a/pkgs/applications/misc/bemenu/default.nix b/pkgs/applications/misc/bemenu/default.nix
index 57d87d906e82..2640cbd154d2 100644
--- a/pkgs/applications/misc/bemenu/default.nix
+++ b/pkgs/applications/misc/bemenu/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "bemenu";
-  version = "0.6.16";
+  version = "0.6.17";
 
   src = fetchFromGitHub {
     owner = "Cloudef";
     repo = finalAttrs.pname;
     rev = finalAttrs.version;
-    sha256 = "sha256-K9a9BUodpKwvEOhnF2/TGo5zLm7F9RzqSCcWzuhKcWA=";
+    sha256 = "sha256-HfA8VtYP8YHMQNXrg3E6IwX7rR3rp/gyE62InsddjZE=";
   };
 
   strictDeps = true;
diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/applications/misc/blender/default.nix
index e803c7eae840..996e982bdc59 100644
--- a/pkgs/applications/misc/blender/default.nix
+++ b/pkgs/applications/misc/blender/default.nix
@@ -1,5 +1,5 @@
 { config, stdenv, lib, fetchurl, fetchzip, boost, cmake, ffmpeg, gettext, glew
-, ilmbase, libepoxy, libXi, libX11, libXext, libXrender
+, libepoxy, libXi, libX11, libXext, libXrender
 , libjpeg, libpng, libsamplerate, libsndfile
 , libtiff, libwebp, libGLU, libGL, openal, opencolorio, openexr, openimagedenoise, openimageio, openjpeg, python310Packages
 , openvdb, libXxf86vm, tbb, alembic
@@ -58,7 +58,7 @@ stdenv.mkDerivation (finalAttrs: rec {
     ]
     ++ lib.optionals waylandSupport [ pkg-config ];
   buildInputs =
-    [ boost ffmpeg gettext glew ilmbase
+    [ boost ffmpeg gettext glew
       freetype libjpeg libpng libsamplerate libsndfile libtiff libwebp
       opencolorio openexr openimageio openjpeg python zlib zstd fftw fftwFloat jemalloc
       alembic
@@ -169,7 +169,7 @@ stdenv.mkDerivation (finalAttrs: rec {
       "-DOPTIX_ROOT_DIR=${optix}"
     ];
 
-  env.NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR -I${python}/include/${python.libPrefix}";
+  env.NIX_CFLAGS_COMPILE = "-I${python}/include/${python.libPrefix}";
 
   # Since some dependencies are built with gcc 6, we need gcc 6's
   # libstdc++ in our RPATH. Sigh.
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index a77eed039afb..7ada21ccb59e 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -32,11 +32,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "calibre";
-  version = "7.3.0";
+  version = "7.4.0";
 
   src = fetchurl {
     url = "https://download.calibre-ebook.com/${finalAttrs.version}/calibre-${finalAttrs.version}.tar.xz";
-    hash = "sha256-fBdLXSRJMBVfQOfuqOqHzgHS8fXYq2x5J181pKZhASo=";
+    hash = "sha256-xYMz0V3eBKAZNtV/8TqRmaaTQK6LeVRjZ1fakCoUSB8=";
   };
 
   patches = [
diff --git a/pkgs/applications/misc/chatblade/default.nix b/pkgs/applications/misc/chatblade/default.nix
index e338322ae649..a285c88a36f9 100644
--- a/pkgs/applications/misc/chatblade/default.nix
+++ b/pkgs/applications/misc/chatblade/default.nix
@@ -2,12 +2,12 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "chatblade";
-  version = "0.3.1";
+  version = "0.3.4";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-QBURvPfDBbhF+AhQ0SsHYnZzr5RN36Cqa2DrAQZW0gU=";
+    sha256 = "sha256-ODC8n4JS7IOfAJMn7CPzJcBNMhfD5A3eEqVUK1e4mZY=";
   };
 
   doCheck = false; # there are no tests
diff --git a/pkgs/applications/misc/corectrl/default.nix b/pkgs/applications/misc/corectrl/default.nix
index 99c2ce866db3..2600e10b7014 100644
--- a/pkgs/applications/misc/corectrl/default.nix
+++ b/pkgs/applications/misc/corectrl/default.nix
@@ -23,13 +23,13 @@
 
 stdenv.mkDerivation rec{
   pname = "corectrl";
-  version = "1.3.8";
+  version = "1.3.9";
 
   src = fetchFromGitLab {
     owner = "corectrl";
     repo = "corectrl";
     rev = "v${version}";
-    sha256 = "sha256-lc6yWzJiSzGKMzJIpgOtirJONsh49vXWDWrhLV/erwQ=";
+    sha256 = "sha256-6CjN3GXkb7tSzWhphiiB+9bR5bcr0bjtJCEkJldD7Fk=";
   };
   patches = [
     ./polkit-dir.patch
diff --git a/pkgs/applications/misc/diff-pdf/default.nix b/pkgs/applications/misc/diff-pdf/default.nix
index 1f37a8e94210..f88af3be2721 100644
--- a/pkgs/applications/misc/diff-pdf/default.nix
+++ b/pkgs/applications/misc/diff-pdf/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "diff-pdf";
-  version = "0.5.1";
+  version = "0.5.2";
 
   src = fetchFromGitHub {
     owner = "vslavik";
     repo = "diff-pdf";
     rev = "v${version}";
-    sha256 = "sha256-jt11wssl8cH2cH3NXF+iWHxVNxPJm0I8toignBHq3q0=";
+    sha256 = "sha256-6aKF3Xqp/1BoHEiZVZJSemTjn5Qwwr3QyhsXOIjTr08=";
   };
 
   nativeBuildInputs = [ autoconf automake pkg-config ];
diff --git a/pkgs/applications/misc/diffuse/default.nix b/pkgs/applications/misc/diffuse/default.nix
index a75587335cad..9ac27085105f 100644
--- a/pkgs/applications/misc/diffuse/default.nix
+++ b/pkgs/applications/misc/diffuse/default.nix
@@ -14,13 +14,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "diffuse";
-  version = "0.8.2";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "MightyCreak";
     repo = "diffuse";
     rev = "v${version}";
-    sha256 = "aGg5uh9KitVP2bBUizgGIZWvzTxfJGid0WUGVNyHdlk=";
+    sha256 = "6GdUtdVhhIQL1cD9/e7Byv37PVKXmzVWhJC6GROK7OA=";
   };
 
   format = "other";
diff --git a/pkgs/applications/misc/electrum/default.nix b/pkgs/applications/misc/electrum/default.nix
index be66116abaf7..91820ce964dd 100644
--- a/pkgs/applications/misc/electrum/default.nix
+++ b/pkgs/applications/misc/electrum/default.nix
@@ -54,7 +54,7 @@ python3.pkgs.buildPythonApplication {
   '';
 
   nativeBuildInputs = lib.optionals enableQt [ wrapQtAppsHook ];
-  buildInputs = lib.optional stdenv.isLinux qtwayland;
+  buildInputs = lib.optional (stdenv.isLinux && enableQt) qtwayland;
 
   propagatedBuildInputs = with python3.pkgs; [
     aiohttp
@@ -137,5 +137,6 @@ python3.pkgs.buildPythonApplication {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ joachifm np prusnak ];
+    mainProgram = "electrum";
   };
 }
diff --git a/pkgs/applications/misc/ff2mpv/default.nix b/pkgs/applications/misc/ff2mpv/default.nix
index b26e09012cf5..a5f7cf920720 100644
--- a/pkgs/applications/misc/ff2mpv/default.nix
+++ b/pkgs/applications/misc/ff2mpv/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ff2mpv";
-  version = "4.0.0";
+  version = "5.0.1";
 
   src = fetchFromGitHub {
     owner = "woodruffw";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-sxUp/JlmnYW2sPDpIO2/q40cVJBVDveJvbQMT70yjP4=";
+    hash = "sha256-unSnySEhaaLIW/6R+vmNONb5xMSgQLtSsOLGcfuW0RY=";
   };
 
   buildInputs = [ python3 mpv ];
diff --git a/pkgs/applications/misc/gallery-dl/default.nix b/pkgs/applications/misc/gallery-dl/default.nix
index 0bb506923c98..772bd2d7a77b 100644
--- a/pkgs/applications/misc/gallery-dl/default.nix
+++ b/pkgs/applications/misc/gallery-dl/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonApplication rec {
   pname = "gallery-dl";
-  version = "1.26.6";
+  version = "1.26.7";
   format = "setuptools";
 
   src = fetchPypi {
     inherit version;
     pname = "gallery_dl";
-    sha256 = "sha256-QgvwxH8wbwxfjZaea89sINtHbSXyIq5XGpWUi6rOX+k=";
+    sha256 = "sha256-+aoXcxJVBp9nXKS+3+CG7XkDMemSgvExMXtnR2FDhYs=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/misc/ganttproject-bin/default.nix b/pkgs/applications/misc/ganttproject-bin/default.nix
index 694665727414..985a67ab963f 100644
--- a/pkgs/applications/misc/ganttproject-bin/default.nix
+++ b/pkgs/applications/misc/ganttproject-bin/default.nix
@@ -4,12 +4,12 @@
 
 stdenv.mkDerivation rec {
   pname = "ganttproject-bin";
-  version = "2.8.10";
+  version = "3.3.3300";
 
-  src = let build = "r2364"; in fetchzip {
-    sha256 = "0cclgyqv4f9pjsdlh93cqvgbzrp8ajvrpc2xszs03sknqz2kdh7r";
-    url = "https://dl.ganttproject.biz/ganttproject-${version}/"
-        + "ganttproject-${version}-${build}.zip";
+  src = fetchzip {
+    url = "https://dl.ganttproject.biz/ganttproject-${version}/ganttproject-${version}.zip";
+    stripRoot = false;
+    hash = "sha256-U9x64UIBuVtW44zbsdWuMRZyEJhZ8VUWbDVtapTGPMo=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/misc/geoipupdate/default.nix b/pkgs/applications/misc/geoipupdate/default.nix
index 538c25d6dc98..2d0bd2ca594c 100644
--- a/pkgs/applications/misc/geoipupdate/default.nix
+++ b/pkgs/applications/misc/geoipupdate/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "geoipupdate";
-  version = "6.0.0";
+  version = "6.1.0";
 
   src = fetchFromGitHub {
     owner = "maxmind";
     repo = "geoipupdate";
     rev = "v${version}";
-    sha256 = "sha256-Rm/W3Q5mb+qkrUYqWK83fi1FgO4KoL7+MjTuvhvY/qk=";
+    sha256 = "sha256-/iLWy3yKO34nnn5ygAewR036PzgUGIqdhXNK4fx3Ym8=";
   };
 
-  vendorHash = "sha256-YXybBVGCbdsP2pP7neHWI7KhkpE3tRo9Wpsx1RaEn9w=";
+  vendorHash = "sha256-jW5/09sOUvPZVM1wzL4xg/a14kZ0KsM8e+zEQoADsl4=";
 
   ldflags = [ "-X main.version=${version}" ];
 
diff --git a/pkgs/applications/misc/girara/default.nix b/pkgs/applications/misc/girara/default.nix
index d5a0f09e451b..18cfd01229ae 100644
--- a/pkgs/applications/misc/girara/default.nix
+++ b/pkgs/applications/misc/girara/default.nix
@@ -18,7 +18,7 @@
 
 stdenv.mkDerivation rec {
   pname = "girara";
-  version = "0.4.1";
+  version = "0.4.2";
 
   outputs = [ "out" "dev" ];
 
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     owner = "pwmt";
     repo = "girara";
     rev = version;
-    sha256 = "sha256-47ff7NBunVvYlCEQN/LwTRG33aButisVvdwxlh28LUM=";
+    hash = "sha256-/9pj6gB46sKIilImDGdJ8H7UHip/z5ckZWZnJLw/0YU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/goldendict-ng/default.nix b/pkgs/applications/misc/goldendict-ng/default.nix
index fcae98b53078..5d86aece035d 100644
--- a/pkgs/applications/misc/goldendict-ng/default.nix
+++ b/pkgs/applications/misc/goldendict-ng/default.nix
@@ -31,13 +31,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "goldendict-ng";
-  version = "23.09.10";
+  version = "24.01.22";
 
   src = fetchFromGitHub {
     owner = "xiaoyifang";
     repo = "goldendict-ng";
-    rev = "v${finalAttrs.version}-WhiteDew.54c8bd56";
-    hash = "sha256-X9xqodCqHjppz1zIHLnb87NiDE4FWlXiQufhDu/rJq4=";
+    rev = "v${finalAttrs.version}-LoongYear.3dddb3be";
+    hash = "sha256-+OiZEkhNV06fZXPXv9zDzgJS5M3isHlcOXee3p/ejpw=";
   };
 
   nativeBuildInputs = [ pkg-config cmake wrapQtAppsHook wrapGAppsHook ];
@@ -49,6 +49,7 @@ stdenv.mkDerivation (finalAttrs: {
     qt5compat
     qtmultimedia
     qtspeech
+    qtwayland
     libvorbis
     tomlplusplus
     fmt
@@ -86,7 +87,7 @@ stdenv.mkDerivation (finalAttrs: {
     description = "An advanced multi-dictionary lookup program";
     platforms = platforms.linux;
     mainProgram = "goldendict";
-    maintainers = with maintainers; [ slbtty ];
+    maintainers = with maintainers; [ slbtty michojel ];
     license = licenses.gpl3Plus;
   };
 })
diff --git a/pkgs/applications/misc/gpxsee/default.nix b/pkgs/applications/misc/gpxsee/default.nix
index 0daa013c038e..fc756f7cd747 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.14";
+  version = "13.15";
 
   src = fetchFromGitHub {
     owner = "tumic0";
     repo = "GPXSee";
     rev = finalAttrs.version;
-    hash = "sha256-9Vq5CfZi58hqTKnIZSR5iQefXzNq0BErtZ8NoxLchxo=";
+    hash = "sha256-+JxxJKHOCz1Ccii27II4L4owo/qvb7RQ6STqJ+PEEBA=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/misc/gramps/default.nix b/pkgs/applications/misc/gramps/default.nix
index 173afec4aa60..7539b22087c3 100644
--- a/pkgs/applications/misc/gramps/default.nix
+++ b/pkgs/applications/misc/gramps/default.nix
@@ -1,18 +1,48 @@
-{ lib, fetchFromGitHub, gtk3, pythonPackages, intltool, gexiv2,
-  pango, gobject-introspection, wrapGAppsHook, gettext,
-# Optional packages:
- enableOSM ? true, osm-gps-map, glib-networking,
- enableGraphviz ? true, graphviz,
- enableGhostscript ? true, ghostscript
- }:
+{ lib
+, fetchpatch
+, fetchFromGitHub
+, gtk3
+, pythonPackages
+, glibcLocales
+, intltool
+, gexiv2
+, pango
+, gobject-introspection
+, wrapGAppsHook
+, gettext
+, # Optional packages:
+  enableOSM ? true
+, osm-gps-map
+, glib-networking
+, enableGraphviz ? true
+, graphviz
+, enableGhostscript ? true
+, ghostscript
+}:
 
 let
   inherit (pythonPackages) python buildPythonApplication;
-in buildPythonApplication rec {
-  version = "5.1.4";
+in
+buildPythonApplication rec {
+  version = "5.1.6";
   pname = "gramps";
+  pyproject = true;
+
+  nativeBuildInputs = [
+    wrapGAppsHook
+    intltool
+    gettext
+    gobject-introspection
+    pythonPackages.setuptools
+  ];
+
+  nativeCheckInputs = [
+    glibcLocales
+    pythonPackages.jsonschema
+    pythonPackages.mock
+    pythonPackages.lxml
+  ];
 
-  nativeBuildInputs = [ wrapGAppsHook intltool gettext gobject-introspection ];
   buildInputs = [ gtk3 pango gexiv2 ]
     # Map support
     ++ lib.optionals enableOSM [ osm-gps-map glib-networking ]
@@ -26,35 +56,53 @@ in buildPythonApplication rec {
     owner = "gramps-project";
     repo = "gramps";
     rev = "v${version}";
-    sha256 = "00358nzyw686ypqv45imc5k9frcqnhla0hpx9ynna3iy6iz5006x";
+    hash = "sha256-BerkDXdFYfZ3rV5AeMo/uk53IN2U5z4GFs757Ar26v0=";
   };
 
-  pythonPath = with pythonPackages; [ bsddb3 pyicu pygobject3 pycairo ];
+  pythonPath = with pythonPackages; [
+    bsddb3
+    pyicu
+    pygobject3
+    pycairo
+  ];
+
+  patches = [
+    # fix for running tests with a temporary home - remove next release
+    # https://gramps-project.org/bugs/view.php?id=12577
+    (fetchpatch {
+      url = "https://github.com/gramps-project/gramps/commit/1e95d8a6b5193d655d8caec1e6ab13628ad123db.patch";
+      hash = "sha256-2riWB13Yl+tk9+Tuo0YDLoxY2Rc0xrJKfb+ZU7Puzxk=";
+    })
+  ];
 
   # Same installPhase as in buildPythonApplication but without --old-and-unmanageble
   # install flag.
   installPhase = ''
     runHook preInstall
 
-    mkdir -p "$out/lib/${python.libPrefix}/site-packages"
+    mkdir -p "$out/${python.sitePackages}"
 
-    export PYTHONPATH="$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
+    export PYTHONPATH="$out/${python.sitePackages}:$PYTHONPATH"
 
     ${python}/bin/${python.executable} setup.py install \
-      --install-lib=$out/lib/${python.libPrefix}/site-packages \
+      --install-lib=$out/${python.sitePackages} \
       --prefix="$out"
 
-    eapth="$out/lib/${python.libPrefix}"/site-packages/easy-install.pth
+    eapth="$out/${python.sitePackages}/easy-install.pth"
     if [ -e "$eapth" ]; then
         # move colliding easy_install.pth to specifically named one
         mv "$eapth" $(dirname "$eapth")/${pname}-${version}.pth
     fi
 
-    rm -f "$out/lib/${python.libPrefix}"/site-packages/site.py*
+    rm -f "$out/${python.sitePackages}"/site.py*
 
     runHook postInstall
   '';
 
+  preCheck = ''
+    export HOME=$TMPDIR
+  '';
+
   # https://github.com/NixOS/nixpkgs/issues/149812
   # https://nixos.org/manual/nixpkgs/stable/#ssec-gnome-hooks-gobject-introspection
   strictDeps = false;
@@ -62,6 +110,15 @@ in buildPythonApplication rec {
   meta = with lib; {
     description = "Genealogy software";
     homepage = "https://gramps-project.org";
-    license = licenses.gpl2;
+    maintainers = with maintainers; [ jk pinpox ];
+    changelog = "https://github.com/gramps-project/gramps/blob/v${version}/ChangeLog";
+    longDescription = ''
+      Every person has their own story but they are also part of a collective
+      family history. Gramps gives you the ability to record the many details of
+      an individual's life as well as the complex relationships between various
+      people, places and events. All of your research is kept organized,
+      searchable and as precise as you need it to be.
+    '';
+    license = licenses.gpl2Plus;
   };
 }
diff --git a/pkgs/applications/misc/gsctl/default.nix b/pkgs/applications/misc/gsctl/default.nix
index bf47ee1899b3..31f8881127d1 100644
--- a/pkgs/applications/misc/gsctl/default.nix
+++ b/pkgs/applications/misc/gsctl/default.nix
@@ -13,6 +13,15 @@ buildGoModule rec {
 
   vendorHash = "sha256-6b4H8YAY8d/qIGnnGPYZoXne1LXHLsc0OEq0lCeqivo=";
 
+  patches = [
+    ./go120-compatibility.patch
+  ];
+
+  postPatch = ''
+    # fails on sandbox
+    rm commands/root_test.go
+  '';
+
   ldflags = [
     "-s" "-w"
     "-X github.com/giantswarm/gsctl/buildinfo.Version=${version}"
diff --git a/pkgs/applications/misc/gsctl/go120-compatibility.patch b/pkgs/applications/misc/gsctl/go120-compatibility.patch
new file mode 100644
index 000000000000..81b393c583a4
--- /dev/null
+++ b/pkgs/applications/misc/gsctl/go120-compatibility.patch
@@ -0,0 +1,21 @@
+--- a/client/clienterror/matcher.go
++++ b/client/clienterror/matcher.go
+@@ -2,6 +2,7 @@ package clienterror
+ 
+ import (
+ 	"crypto/x509"
++	"errors"
+ 	"net/http"
+ 
+ 	"github.com/giantswarm/microerror"
+@@ -101,9 +102,7 @@ func IsServiceUnavailableError(err error) bool {
+ // a x509.UnknownAuthorityError
+ func IsCertificateSignedByUnknownAuthorityError(err error) bool {
+ 	if clientErr, ok := err.(*APIError); ok {
+-		if _, certErrorOK := clientErr.OriginalError.(x509.UnknownAuthorityError); certErrorOK {
+-			return true
+-		}
++		return errors.As(clientErr.OriginalError, &x509.UnknownAuthorityError{})
+ 	}
+ 
+ 	return false
diff --git a/pkgs/applications/misc/hamster/default.nix b/pkgs/applications/misc/hamster/default.nix
index 925d246ba844..5f7b51bb6ee6 100644
--- a/pkgs/applications/misc/hamster/default.nix
+++ b/pkgs/applications/misc/hamster/default.nix
@@ -3,15 +3,15 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "hamster";
-  version = "3.0.2";
+  version = "3.0.3";
 
   format = "other";
 
   src = fetchFromGitHub {
     owner = "projecthamster";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "09ikiwc2izjvwqbbyp8knn190x5y4anwslkmb9k2h3r3jwrg2vd2";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-cUmUvJP9Y3de5OaNgIxvigDsX2ww7NNRY5son/gg+WI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/harsh/default.nix b/pkgs/applications/misc/harsh/default.nix
index 6d01105ac0de..2cac2498ce52 100644
--- a/pkgs/applications/misc/harsh/default.nix
+++ b/pkgs/applications/misc/harsh/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "harsh";
-  version = "0.8.30";
+  version = "0.8.31";
 
   src = fetchFromGitHub {
     owner = "wakatara";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-X9YCxDgxIuJyTUurDQ574nKBAUsdKHNx1T6DkcygYS4=";
+    hash = "sha256-q2kQAQu1rewCDk+UPuEHS4AJlhuC8azHk5MWP6uQ4fI=";
   };
 
-  vendorHash = "sha256-zkz7X/qj8FwtQZXGuq4Oaoe5G9a4AJE1kv3j7wwQEp4=";
+  vendorHash = "sha256-zjLXq64uC5iRm9uxUGDW5127z25gNSVV2qhVVXuYqY0=";
 
   meta = with lib; {
     description = "CLI habit tracking for geeks";
diff --git a/pkgs/applications/misc/hcl2json/default.nix b/pkgs/applications/misc/hcl2json/default.nix
index 57d1e8e2ed15..d2c2bb319f8b 100644
--- a/pkgs/applications/misc/hcl2json/default.nix
+++ b/pkgs/applications/misc/hcl2json/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "hcl2json";
-  version = "0.6.0";
+  version = "0.6.1";
 
   src = fetchFromGitHub {
     owner = "tmccombs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-XdPRata9B8cK58eyAKxEBBwKAum+z0yoGgUGSkmhXfw=";
+    sha256 = "sha256-6DCxpnTizTg3uhHIIze2IyA8IKcjIv44XoId7exdQZI=";
   };
 
-  vendorHash = "sha256-F7G8K0tfXyLHQgqd2PE9eRXlhkFgijAO9LKKj9mvvwc=";
+  vendorHash = "sha256-Ay6Sgdm7X+NxtLkFM0AT8aoWLdASjUhcidRUiV2K+us=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/applications/misc/hyprdim/default.nix b/pkgs/applications/misc/hyprdim/default.nix
index c59277a154f9..10938330196a 100644
--- a/pkgs/applications/misc/hyprdim/default.nix
+++ b/pkgs/applications/misc/hyprdim/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "hyprdim";
-  version = "2.2.2";
+  version = "2.2.3";
 
   src = fetchFromGitHub {
     owner = "donovanglover";
     repo = "hyprdim";
     rev = version;
-    hash = "sha256-b2T/ueinKiheuK+siV29vJfEsEodq6qT2J3XxvoD/14=";
+    hash = "sha256-Eeh0D3DkC4ureDUE+BXTGcMFNmZ0hLSidlKlL4ZDgsQ=";
   };
 
-  cargoHash = "sha256-Sf32vaqcxVdg6/kDidxBSr5XDWg3aNEBpEl31do2ZJ8=";
+  cargoHash = "sha256-hgcGzRLB1L3yxJjw1ECDJPmbl1W+2OS4KDojclyVYrc=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/applications/misc/ipatool/default.nix b/pkgs/applications/misc/ipatool/default.nix
index a40a22fc6a01..6c3ffc5455e5 100644
--- a/pkgs/applications/misc/ipatool/default.nix
+++ b/pkgs/applications/misc/ipatool/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "ipatool";
-  version = "2.1.3";
+  version = "2.1.4";
 
   src = fetchFromGitHub {
     owner = "majd";
     repo = "ipatool";
     rev = "v${version}";
-    hash = "sha256-kIFKVIhH+Vjt05XzR5jNwYQokNLSckdiWJ97A03Lgqc=";
+    hash = "sha256-e+gkr8i6dVfxyBM5Vi2YpW4eQ4LE2vhgQadLAFeHK4Q=";
   };
 
-  vendorHash = "sha256-ZTz3eW/rs3bV16Ugd4kUOW7NaXzBa5c9qTIqRCanPRU=";
+  vendorHash = "sha256-aVMWXlHMGdbApKLhuZZpaAYY5QpMMgXc/6f9r79/dTw=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/applications/misc/iptsd/default.nix b/pkgs/applications/misc/iptsd/default.nix
index d1b873eae8cd..b6885374ef06 100644
--- a/pkgs/applications/misc/iptsd/default.nix
+++ b/pkgs/applications/misc/iptsd/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "iptsd";
-  version = "1.4.0";
+  version = "2";
 
   src = fetchFromGitHub {
     owner = "linux-surface";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-qBABt0qEePGrZH4khnikvStrSi/OVmP3yVMJZbEd36M=";
+    hash = "sha256-zTXTyDgSa1akViDZlYLtJk1yCREGCSJKxzF+HZAWx0c=";
   };
 
   nativeBuildInputs = [
@@ -68,6 +68,7 @@ stdenv.mkDerivation rec {
     description = "Userspace daemon for Intel Precise Touch & Stylus";
     homepage = "https://github.com/linux-surface/iptsd";
     license = licenses.gpl2Plus;
+    mainProgram = "iptsd";
     maintainers = with maintainers; [ tomberek dotlambda ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/applications/misc/j4-dmenu-desktop/default.nix b/pkgs/applications/misc/j4-dmenu-desktop/default.nix
index eca79c6521c0..6ad3bda77834 100644
--- a/pkgs/applications/misc/j4-dmenu-desktop/default.nix
+++ b/pkgs/applications/misc/j4-dmenu-desktop/default.nix
@@ -1,18 +1,19 @@
 { lib, stdenv, fetchFromGitHub, cmake, dmenu }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "j4-dmenu-desktop";
-  version = "2.18";
+  version = "unstable-2023-09-12";
 
   src = fetchFromGitHub {
     owner = "enkore";
-    repo = pname;
-    rev = "r${version}";
-    sha256 = "1gxpgifzy0hnpd0ymw3r32amzr32z3bgb90ldjzl438p6h1q0i26";
+    repo = "j4-dmenu-desktop";
+    rev = "7e3fd045482a8ea70619e422975b52feabc75175";
+    hash = "sha256-8PmfzQkHlEdMbrcQO0bPruP3jaKEcr/17x0/Z7Jedh0=";
   };
 
   postPatch = ''
-    sed -e 's,dmenu -i,${dmenu}/bin/dmenu -i,g' -i ./src/Main.hh
+    substituteInPlace src/main.cc \
+        --replace "dmenu -i" "${lib.getExe dmenu} -i"
   '';
 
   nativeBuildInputs = [ cmake ];
@@ -24,10 +25,12 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A wrapper for dmenu that recognize .desktop files";
+    changelog = "https://github.com/enkore/j4-dmenu-desktop/blob/${finalAttrs.src.rev}/CHANGELOG";
+    description = "A wrapper for dmenu that recognizes .desktop files";
     homepage = "https://github.com/enkore/j4-dmenu-desktop";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
+    mainProgram = "j4-dmenu-desktop";
     maintainers = with maintainers; [ ericsagnes ];
     platforms = platforms.unix;
   };
-}
+})
diff --git a/pkgs/applications/misc/josm/default.nix b/pkgs/applications/misc/josm/default.nix
index d8a6ff79ad4c..c2ffbc7970df 100644
--- a/pkgs/applications/misc/josm/default.nix
+++ b/pkgs/applications/misc/josm/default.nix
@@ -3,15 +3,15 @@
 }:
 let
   pname = "josm";
-  version = "18907";
+  version = "18940";
   srcs = {
     jar = fetchurl {
       url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar";
-      hash = "sha256-EASSuZn18oruUmPFNZ1Bwv0krTJa0tw4ddTJzkGEjW8=";
+      hash = "sha256-NfSTwh0SabdVQwh7tA5Xx80Qbp+V/ZcurKkr+AhPoz8=";
     };
     macosx = fetchurl {
       url = "https://josm.openstreetmap.de/download/macosx/josm-macos-${version}-java17.zip";
-      hash = "sha256-tEJKBst+n669JENURd9ipFzV7yS/JZWEYkflq8d4g2Q=";
+      hash = "sha256-b/8vSEy3qXmRjRZ43MMISB6qZHne7nuZ+tFy8Dmbp18=";
     };
     pkg = fetchsvn {
       url = "https://josm.openstreetmap.de/svn/trunk/native/linux/tested";
diff --git a/pkgs/applications/misc/keepass-plugins/keepassrpc/default.nix b/pkgs/applications/misc/keepass-plugins/keepassrpc/default.nix
index 2690db2d9fbf..09331665a7f8 100644
--- a/pkgs/applications/misc/keepass-plugins/keepassrpc/default.nix
+++ b/pkgs/applications/misc/keepass-plugins/keepassrpc/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, buildEnv, fetchurl, mono }:
 
 let
-  version = "1.14.0";
+  version = "1.16.0";
   drv = stdenv.mkDerivation {
     pname = "keepassrpc";
     inherit version;
     src = fetchurl {
       url    = "https://github.com/kee-org/keepassrpc/releases/download/v${version}/KeePassRPC.plgx";
-      sha256 = "1c410cc93c0252e7cfdb02507b8172c13e18d12c97f08630b721d897dc9b8b24";
+      hash   = "sha256-p5dYluCrXAKhBhlm6sQ3QQE3gLMJzEZsHXwGnVeXFos=";
     };
 
     meta = with lib; {
diff --git a/pkgs/applications/misc/khal/default.nix b/pkgs/applications/misc/khal/default.nix
index c892f046c895..ef5f0cbb9242 100644
--- a/pkgs/applications/misc/khal/default.nix
+++ b/pkgs/applications/misc/khal/default.nix
@@ -6,27 +6,46 @@
 , python3
 }:
 
-python3.pkgs.buildPythonApplication rec {
+let
+  py = python3.override {
+    packageOverrides = self: super: {
+
+      # Doesn't work with latest urwid
+      urwid = super.urwid.overridePythonAttrs (oldAttrs: rec {
+        version = "2.1.2";
+        src = fetchFromGitHub {
+          owner = "urwid";
+          repo = "urwid";
+          rev = "refs/tags/${version}";
+          hash = "sha256-oPb2h/+gaqkZTXIiESjExMfBNnOzDvoMkXvkZ/+KVwo=";
+        };
+        doCheck = false;
+      });
+    };
+  };
+in
+py.pkgs.buildPythonApplication rec {
   pname = "khal";
   version = "0.11.2";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "pimutils";
-    repo = pname;
-    rev = "v${version}";
+    repo = "khal";
+    rev = "refs/tags/v${version}";
     hash = "sha256-yI33pB/t+UISvSbLUzmsZqBxLF6r8R3j9iPNeosKcYw=";
   };
 
   nativeBuildInputs = [
     glibcLocales
     installShellFiles
-  ] ++ (with python3.pkgs; [
+  ] ++ (with py.pkgs; [
     setuptools-scm
     sphinx
     sphinxcontrib-newsfeed
   ]);
 
-  propagatedBuildInputs = with python3.pkgs;[
+  propagatedBuildInputs = with py.pkgs;[
     atomicwrites
     click
     click-log
@@ -44,7 +63,7 @@ python3.pkgs.buildPythonApplication rec {
     urwid
   ];
 
-  nativeCheckInputs = with python3.pkgs;[
+  nativeCheckInputs = with py.pkgs;[
     freezegun
     hypothesis
     packaging
@@ -82,6 +101,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     description = "CLI calendar application";
     homepage = "http://lostpackets.de/khal/";
+    changelog = "https://github.com/pimutils/khal/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ gebner ];
   };
diff --git a/pkgs/applications/misc/logseq/default.nix b/pkgs/applications/misc/logseq/default.nix
index d42981a95cf2..f1e86b632129 100644
--- a/pkgs/applications/misc/logseq/default.nix
+++ b/pkgs/applications/misc/logseq/default.nix
@@ -14,11 +14,11 @@ stdenv.mkDerivation (finalAttrs: let
 
 in {
   pname = "logseq";
-  version = "0.10.4";
+  version = "0.10.5";
 
   src = fetchurl {
     url = "https://github.com/logseq/logseq/releases/download/${version}/logseq-linux-x64-${version}.AppImage";
-    hash = "sha256-vFCNhnhfxlSLeieB1DJgym5nbzPKO1ngArTUXvf+DAU=";
+    hash = "sha256-F3YbqgvL04P0nXaIVkJlCq/z8hUE0M0UutkBs2omuBE=";
     name = "${pname}-${version}.AppImage";
   };
 
@@ -71,6 +71,7 @@ in {
     homepage = "https://github.com/logseq/logseq";
     changelog = "https://github.com/logseq/logseq/releases/tag/${version}";
     license = lib.licenses.agpl3Plus;
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     maintainers = with lib.maintainers; [ ];
     platforms = [ "x86_64-linux" ];
   };
diff --git a/pkgs/applications/misc/loxodo/default.nix b/pkgs/applications/misc/loxodo/default.nix
index 78d01af1f08b..77dd39bc0601 100644
--- a/pkgs/applications/misc/loxodo/default.nix
+++ b/pkgs/applications/misc/loxodo/default.nix
@@ -22,7 +22,7 @@ python3.pkgs.buildPythonApplication {
     [Desktop Entry]
     Type=Application
     Exec=$out/bin/loxodo
-    Icon=$out/lib/${python3.libPrefix}/site-packages/resources/loxodo-icon.png
+    Icon=$out/${python3.sitePackages}/resources/loxodo-icon.png
     Name=Loxodo
     GenericName=Password Vault
     Categories=Application;Other;
diff --git a/pkgs/applications/misc/lscolors/default.nix b/pkgs/applications/misc/lscolors/default.nix
index 99c330fa6804..d61499ed0737 100644
--- a/pkgs/applications/misc/lscolors/default.nix
+++ b/pkgs/applications/misc/lscolors/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "lscolors";
-  version = "0.16.0";
+  version = "0.17.0";
 
   src = fetchCrate {
     inherit version pname;
-    hash = "sha256-gLtQIqdU6syTo+Z+P59kIpwEtiGCr/DOom9+jA8Uq98=";
+    hash = "sha256-efkSiwxL7sZIwFXJZunddAb4lTOfhj8oOEOUW3kyRXI=";
   };
 
-  cargoHash = "sha256-OA9iYGwKElvRaKoyelH9w5ZphoLKrbk8VXwZ2NyLLQY=";
+  cargoHash = "sha256-1Cyg4WT4xYqc3s5AOXR9GfcS3qKOgscYujGXR9fzuCA=";
 
   buildFeatures = [ "nu-ansi-term" ];
 
diff --git a/pkgs/applications/misc/meerk40t/default.nix b/pkgs/applications/misc/meerk40t/default.nix
index 125ca9750abc..dfa643ec3a7a 100644
--- a/pkgs/applications/misc/meerk40t/default.nix
+++ b/pkgs/applications/misc/meerk40t/default.nix
@@ -1,40 +1,60 @@
 { lib
 , fetchFromGitHub
 , meerk40t-camera
-, python3
+, python3Packages
 , gtk3
 , wrapGAppsHook
 }:
 
-python3.pkgs.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "MeerK40t";
-  version = "0.8.1000";
-  format = "setuptools";
+  version = "0.9.3010";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "meerk40t";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-YCcnqaH4Npmct5IBHsnufswRz8bS7mUb1YFwTta/Dxc=";
+    hash = "sha256-RlIWqxmUiL1gFMxwcdWxDiebmEzVz6kTaSlAZHr8S+I=";
   };
 
   nativeBuildInputs = [
     wrapGAppsHook
-  ];
+  ] ++ (with python3Packages; [
+    setuptools
+  ]);
 
   # prevent double wrapping
   dontWrapGApps = true;
 
-  propagatedBuildInputs = with python3.pkgs; [
-    ezdxf
+  # https://github.com/meerk40t/meerk40t/blob/main/setup.py
+  propagatedBuildInputs = with python3Packages; [
     meerk40t-camera
-    opencv4
-    pillow
+    numpy
     pyserial
     pyusb
     setuptools
     wxpython
-  ];
+  ]
+  ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
+
+  passthru.optional-dependencies = with python3Packages; {
+    cam = [
+      opencv4
+    ];
+    camhead = [
+      opencv4
+    ];
+    dxf = [
+      ezdxf
+    ];
+    gui = [
+      wxpython
+      pillow
+      opencv4
+      ezdxf
+    ];
+  };
 
   preFixup = ''
     gappsWrapperArgs+=(
@@ -43,7 +63,7 @@ python3.pkgs.buildPythonApplication rec {
     makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
   '';
 
-  nativeCheckInputs = with python3.pkgs; [
+  nativeCheckInputs = with python3Packages; [
     unittestCheckHook
   ];
 
diff --git a/pkgs/applications/misc/mob/default.nix b/pkgs/applications/misc/mob/default.nix
index ed08ee5c09ea..f41e927185ec 100644
--- a/pkgs/applications/misc/mob/default.nix
+++ b/pkgs/applications/misc/mob/default.nix
@@ -9,13 +9,13 @@
 
 buildGoModule rec {
   pname = "mob";
-  version = "4.4.6";
+  version = "4.5.0";
 
   src = fetchFromGitHub {
     owner = "remotemobprogramming";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-UunFfP0Rn4t8lSJiubbqZ0bImK9OhIdC0gSGbkg6Ohw=";
+    sha256 = "sha256-uFtE7AprM/ye2sBQeszYy07RV7RmmqD9TGcTTuZwOfY=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/misc/monitorcontrol/default.nix b/pkgs/applications/misc/monitorcontrol/default.nix
index f9002b10b063..6c3a1ccec34e 100644
--- a/pkgs/applications/misc/monitorcontrol/default.nix
+++ b/pkgs/applications/misc/monitorcontrol/default.nix
@@ -1,19 +1,28 @@
-{ lib, fetchurl, stdenv, undmg }:
+{ lib, fetchurl, stdenv, _7zz }:
 
 # This cannot be built from source due to the problematic nature of XCode - so
 # this is what it's like when doves cry?
 
 stdenv.mkDerivation rec {
   pname = "MonitorControl";
-  version = "4.1.0";
+  version = "4.2.0";
 
   src = fetchurl {
     url =
       "https://github.com/MonitorControl/${pname}/releases/download/v${version}/MonitorControl.${version}.dmg";
-    sha256 = "iaxM9j78Sq1EH5TCY240N+D5bG6quk2dZj8T7nt9ATo=";
+    sha256 = "Q96uK6wVe1D2uLvWL+pFR6LcmrU7cgmr2Y5tPvvTDgI=";
   };
 
-  nativeBuildInputs = [ undmg ];
+  # MonitorControl.${version}.dmg is APFS formatted, unpack with 7zz
+  unpackCmd = ''
+    runHook preUnpack
+
+    7zz x $src
+
+    runHook postUnpack
+  '';
+
+  nativeBuildInputs = [ _7zz ];
 
   sourceRoot = "MonitorControl.app";
 
@@ -27,7 +36,7 @@ stdenv.mkDerivation rec {
     longDescription = "Controls your external display brightness and volume and shows native OSD. Use menulet sliders or the keyboard, including native Apple keys!";
     homepage = "https://github.com/MonitorControl/MonitorControl#readme";
     license = licenses.mit;
-    maintainers = with maintainers; [ cbleslie ];
+    maintainers = with maintainers; [ cbleslie cottand ];
     platforms = platforms.darwin;
   };
 }
diff --git a/pkgs/applications/misc/moonlight-embedded/default.nix b/pkgs/applications/misc/moonlight-embedded/default.nix
index aad0de40bf0f..005434b7d14c 100644
--- a/pkgs/applications/misc/moonlight-embedded/default.nix
+++ b/pkgs/applications/misc/moonlight-embedded/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/moonlight-stream/moonlight-embedded";
     license = licenses.gpl3Plus;
     maintainers = [];
+    mainProgram = "moonlight";
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/misc/mozphab/default.nix b/pkgs/applications/misc/mozphab/default.nix
index 05f04ed0aba0..6d8455e6915d 100644
--- a/pkgs/applications/misc/mozphab/default.nix
+++ b/pkgs/applications/misc/mozphab/default.nix
@@ -10,14 +10,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "mozphab";
-  version = "1.4.3";
+  version = "1.5.1";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "mozilla-conduit";
     repo = "review";
     rev = "refs/tags/${version}";
-    hash = "sha256-FUHT4MPzSxO3MCNYWodNxvFR2kL0P4eGmSHPtCt0Cug=";
+    hash = "sha256-HxwQ+mGtjnruppPAD01QUg3aca+k5vpj814BWM+3VfQ=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/misc/mupdf/default.nix b/pkgs/applications/misc/mupdf/default.nix
index 7e172f279d44..b2c2335db0b2 100644
--- a/pkgs/applications/misc/mupdf/default.nix
+++ b/pkgs/applications/misc/mupdf/default.nix
@@ -98,9 +98,10 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config ]
     ++ lib.optional (enableGL || enableX11) copyDesktopItems
+    ++ lib.optional (stdenv.isDarwin && (enableGL || enableX11)) desktopToDarwinBundle
     ++ lib.optionals (enableCxx || enablePython) [ python3 python3.pkgs.setuptools python3.pkgs.libclang ]
     ++ lib.optionals (enablePython) [ which swig ]
-    ++ lib.optionals stdenv.isDarwin [ desktopToDarwinBundle fixDarwinDylibNames xcbuild ];
+    ++ lib.optionals stdenv.isDarwin [ fixDarwinDylibNames xcbuild ];
 
   buildInputs = [ freetype harfbuzz openjpeg jbig2dec libjpeg gumbo ]
     ++ lib.optionals enableX11 [ libX11 libXext libXi libXrandr ]
@@ -126,7 +127,7 @@ stdenv.mkDerivation rec {
     done
   '';
 
-  desktopItems = [
+  desktopItems = lib.optionals (enableGL || enableX11) [
     (makeDesktopItem {
       name = pname;
       desktopName = pname;
diff --git a/pkgs/applications/misc/mysql-workbench/default.nix b/pkgs/applications/misc/mysql-workbench/default.nix
index ff9fb7c6b2cb..feda79ed8846 100644
--- a/pkgs/applications/misc/mysql-workbench/default.nix
+++ b/pkgs/applications/misc/mysql-workbench/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
 , substituteAll
 , cmake
@@ -44,13 +45,14 @@
 
 let
   inherit (python3.pkgs) paramiko pycairo pyodbc;
-in stdenv.mkDerivation rec {
+in
+stdenv.mkDerivation (finalAttrs: {
   pname = "mysql-workbench";
-  version = "8.0.34";
+  version = "8.0.36";
 
   src = fetchurl {
-    url = "https://cdn.mysql.com//Downloads/MySQLGUITools/mysql-workbench-community-${version}-src.tar.gz";
-    sha256 = "sha256-ub/D6HRtXOvX+lai71t1UjMmMzBsz5ljCrJCuf9aq7U=";
+    url = "https://cdn.mysql.com/Downloads/MySQLGUITools/mysql-workbench-community-${finalAttrs.version}-src.tar.gz";
+    hash = "sha256-Y02KZrbCd3SRBYpgq6gYfpR+TEmg566D3zEvpwcUY3w=";
   };
 
   patches = [
@@ -75,6 +77,9 @@ in stdenv.mkDerivation rec {
       src = ./fix-swig-build.patch;
       cairoDev = "${cairo.dev}";
     })
+
+    # a newer libxml2 version has changed some interfaces
+    ./fix-xml2.patch
   ];
 
   # 1. have it look for 4.12.0 instead of 4.11.1
@@ -138,6 +143,10 @@ in stdenv.mkDerivation rec {
     patchShebangs tools/get_wb_version.sh
   '';
 
+  # GCC 13: error: 'int64_t' in namespace 'std' does not name a type
+  # when updating the version make sure this is still needed
+  env.CXXFLAGS = "-include cstdint";
+
   env.NIX_CFLAGS_COMPILE = toString ([
     # error: 'OGRErr OGRSpatialReference::importFromWkt(char**)' is deprecated
     "-Wno-error=deprecated-declarations"
@@ -183,7 +192,7 @@ in stdenv.mkDerivation rec {
     done
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Visual MySQL database modeling, administration and querying tool";
     longDescription = ''
       MySQL Workbench is a modeling tool that allows you to design
@@ -191,11 +200,10 @@ in stdenv.mkDerivation rec {
       and query development modules where you can manage MySQL server instances
       and execute SQL queries.
     '';
-
     homepage = "http://wb.mysql.com/";
-    license = licenses.gpl2;
-    maintainers = [ ];
-    platforms = platforms.linux;
+    license = lib.licenses.gpl2Only;
     mainProgram = "mysql-workbench";
+    maintainers = with lib.maintainers; [ tomasajt ];
+    platforms = lib.platforms.linux;
   };
-}
+})
diff --git a/pkgs/applications/misc/mysql-workbench/fix-xml2.patch b/pkgs/applications/misc/mysql-workbench/fix-xml2.patch
new file mode 100644
index 000000000000..857c3f9add4c
--- /dev/null
+++ b/pkgs/applications/misc/mysql-workbench/fix-xml2.patch
@@ -0,0 +1,25 @@
+diff --git a/library/grt/src/grt.h b/library/grt/src/grt.h
+index 47bfd63..59e664b 100644
+--- a/library/grt/src/grt.h
++++ b/library/grt/src/grt.h
+@@ -35,6 +35,7 @@
+ #include <stdexcept>
+ #include <boost/function.hpp>
+ #include <libxml/xmlmemory.h>
++#include <libxml/tree.h>
+ #include "base/threading.h"
+ #include <string>
+ #include <gmodule.h>
+diff --git a/library/grt/src/unserializer.cpp b/library/grt/src/unserializer.cpp
+index 6dda76d..a6f6a3c 100644
+--- a/library/grt/src/unserializer.cpp
++++ b/library/grt/src/unserializer.cpp
+@@ -401,7 +401,7 @@ ValueRef internal::Unserializer::unserialize_xmldata(const char *data, size_t si
+   xmlDocPtr doc = xmlReadMemory(data, (int)size, NULL, NULL, XML_PARSE_NOENT);
+ 
+   if (!doc) {
+-    xmlErrorPtr error = xmlGetLastError();
++    const xmlError* error = xmlGetLastError();
+ 
+     if (error)
+       throw std::runtime_error(base::strfmt("Could not parse XML data. Line %d, %s", error->line, error->message));
diff --git a/pkgs/applications/misc/nwg-bar/default.nix b/pkgs/applications/misc/nwg-bar/default.nix
index 7e9aecd387cd..0b4b7cd1e255 100644
--- a/pkgs/applications/misc/nwg-bar/default.nix
+++ b/pkgs/applications/misc/nwg-bar/default.nix
@@ -9,13 +9,13 @@
 
 buildGoModule rec {
   pname = "nwg-bar";
-  version = "0.1.5";
+  version = "0.1.6";
 
   src = fetchFromGitHub {
     owner = "nwg-piotr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-e64qCthZfGeFIe/g4Bu342d/C46qzJRBdxzzP6rM408=";
+    sha256 = "sha256-5N+WKZ+fuHQ0lVLd95/KkNAwzg/C4ImZ4DnSuKNGunk=";
   };
 
   patches = [ ./fix-paths.patch ];
@@ -24,7 +24,7 @@ buildGoModule rec {
     substituteInPlace tools.go --subst-var out
   '';
 
-  vendorHash = "sha256-YMpq9pgA3KjQMcw7JDwEDbHZ5h3N7ziFVIGvQ+xA3Ds=";
+  vendorHash = "sha256-/kqhZcIuoN/XA0i1ua3lzVGn4ghkekFYScL1o3kgBX4=";
 
   nativeBuildInputs = [ pkg-config wrapGAppsHook ];
 
diff --git a/pkgs/applications/misc/nwg-displays/default.nix b/pkgs/applications/misc/nwg-displays/default.nix
index f9f6ad429924..b73df6de31ee 100644
--- a/pkgs/applications/misc/nwg-displays/default.nix
+++ b/pkgs/applications/misc/nwg-displays/default.nix
@@ -14,13 +14,13 @@
 
 python310Packages.buildPythonApplication rec {
   pname = "nwg-displays";
-  version = "0.3.10";
+  version = "0.3.13";
 
   src = fetchFromGitHub {
     owner = "nwg-piotr";
     repo = "nwg-displays";
-    rev = "v${version}";
-    hash = "sha256-clL34Ewzf0sJEWiye4L4e1RrPFIHkmotLpPaibGvVY4=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-ZXEnlcifwJTnpSKVET/ThIA0NHLP9fQTIM2bQbJ7qZ8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/nwg-look/default.nix b/pkgs/applications/misc/nwg-look/default.nix
index a9aceb33c391..5ce8ad87ba37 100644
--- a/pkgs/applications/misc/nwg-look/default.nix
+++ b/pkgs/applications/misc/nwg-look/default.nix
@@ -15,16 +15,16 @@
 
 buildGoModule rec {
   pname = "nwg-look";
-  version = "0.2.5";
+  version = "0.2.6";
 
   src = fetchFromGitHub {
     owner = "nwg-piotr";
     repo = "nwg-look";
     rev = "v${version}";
-    hash = "sha256-Gw0C5PCVwXuwXWF39P7pc8KdnmCYRH24zizShmniynM=";
+    hash = "sha256-kOoYhJKt7/BsQ0/RuVhj0bWnX9GU8ET3MSq6NMCOw5E=";
   };
 
-  vendorHash = "sha256-vHqnIkzsoQHiP6mmrwNetq6Pp5UB1CmX7mYvgsbvb0s=";
+  vendorHash = "sha256-V0KXK6jxBYI+tixBLq24pJJcnu4gDF6nfyns2IBTss4=";
 
   # Replace /usr/ directories with the packages output location
   # This means it references the correct path
diff --git a/pkgs/applications/misc/nwg-menu/default.nix b/pkgs/applications/misc/nwg-menu/default.nix
index a911873dee41..e587396e151a 100644
--- a/pkgs/applications/misc/nwg-menu/default.nix
+++ b/pkgs/applications/misc/nwg-menu/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "nwg-menu";
-  version = "0.1.1";
+  version = "0.1.2";
 
   src = fetchFromGitHub {
     owner = "nwg-piotr";
     repo = "nwg-menu";
     rev = "v${version}";
-    sha256 = "sha256-M948RGU9/PwUtFRmf1Po7KlrGxqRPiOZKfS1Vv3vqW8=";
+    sha256 = "sha256-UFyC0gpKn0Ei5aOPC28iG4YI2BM5lrnl/J7RM4GjInc=";
   };
 
-  vendorHash = "sha256-HyrjquJ91ddkyS8JijHd9HjtfwSQykXCufa2wzl8RNk=";
+  vendorHash = "sha256-/kqhZcIuoN/XA0i1ua3lzVGn4ghkekFYScL1o3kgBX4=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/misc/opencpn/default.nix b/pkgs/applications/misc/opencpn/default.nix
index 313f61e28ce0..89d656798008 100644
--- a/pkgs/applications/misc/opencpn/default.nix
+++ b/pkgs/applications/misc/opencpn/default.nix
@@ -7,15 +7,17 @@
 , cmake
 , curl
 , dbus
+, elfutils
 , fetchFromGitHub
-, fetchpatch
 , flac
 , gtk3
+, glew
+, gtest
 , jasper
+, lame
 , libGLU
 , libarchive
 , libdatrie
-, libelf
 , libepoxy
 , libexif
 , libogg
@@ -30,10 +32,13 @@
 , libxkbcommon
 , lsb-release
 , lz4
+, libmpg123
 , makeWrapper
 , pcre
+, pcre2
 , pkg-config
 , portaudio
+, rapidjson
 , sqlite
 , tinyxml
 , udev
@@ -42,31 +47,25 @@
 , xorg
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "opencpn";
-  version = "5.6.2";
+  version = "5.8.4";
 
   src = fetchFromGitHub {
     owner = "OpenCPN";
     repo = "OpenCPN";
-    rev = "Release_${version}";
-    hash = "sha256-sNZYf/2gtjRrrGPuazVnKTgcuIQpKPazhexqlK21T4g=";
+    rev = "Release_${finalAttrs.version}";
+    hash = "sha256-axRI3sssj2Q6IBfIeyvOa494b0EgKFP+lFL/QrGIybQ=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/OpenCPN/OpenCPN/commit/30fa16850ba97d3df0622273947e3e3975b8e6c0.patch";
-      sha256 = "sha256-Sb4FE9QJA5kMJi52/x1Az6rMTS3WSURPx4QAhcv2j9E=";
-    })
-  ];
-
   postPatch = lib.optionalString stdenv.isDarwin ''
-    sed -i '/fixup_bundle/d' CMakeLists.txt
+    sed -i '/fixup_bundle/d; /NO_DEFAULT_PATH/d' CMakeLists.txt
   '';
 
   nativeBuildInputs = [
     cmake
     pkg-config
+    gtest
   ] ++ lib.optionals stdenv.isLinux [
     lsb-release
   ] ++ lib.optionals stdenv.isDarwin [
@@ -80,15 +79,14 @@ stdenv.mkDerivation rec {
     dbus
     flac
   ] ++ lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [
-    # gtk3 propagates AppKit from the 10.12 SDK
     AppKit
   ] ++ [
     gtk3
+    glew
     jasper
     libGLU
     libarchive
     libdatrie
-    libelf
     libepoxy
     libexif
     libogg
@@ -100,19 +98,24 @@ stdenv.mkDerivation rec {
     libvorbis
     libxkbcommon
     lz4
+    libmpg123
     pcre
+    pcre2
     portaudio
+    rapidjson
     sqlite
     tinyxml
     wxGTK32
   ] ++ lib.optionals stdenv.isLinux [
     alsa-utils
+    elfutils
     libselinux
     libsepol
-    udev
     util-linux
     xorg.libXdmcp
     xorg.libXtst
+  ] ++ lib.optionals stdenv.isDarwin [
+    lame
   ];
 
   cmakeFlags = [ "-DOCPN_BUNDLE_DOCS=true" ];
@@ -136,4 +139,4 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     homepage = "https://opencpn.org/";
   };
-}
+})
diff --git a/pkgs/applications/misc/organicmaps/default.nix b/pkgs/applications/misc/organicmaps/default.nix
index 3d18c951c671..ec6fbca5d1d0 100644
--- a/pkgs/applications/misc/organicmaps/default.nix
+++ b/pkgs/applications/misc/organicmaps/default.nix
@@ -29,13 +29,13 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "organicmaps";
-  version = "2023.12.20-4";
+  version = "2024.01.09-5";
 
   src = fetchFromGitHub {
     owner = "organicmaps";
     repo = "organicmaps";
     rev = "${version}-android";
-    hash = "sha256-9yQMBP5Jta6P/FmYL6Ek3MzU1DKtVEwlwYAkNxC5pn4=";
+    hash = "sha256-VIznPMr+XKIobR4eFUVx880MND+EGAHKCYAkdDfgLDA=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/misc/orpie/default.nix b/pkgs/applications/misc/orpie/default.nix
index a7366d6136ff..fc33b9e1cbd9 100644
--- a/pkgs/applications/misc/orpie/default.nix
+++ b/pkgs/applications/misc/orpie/default.nix
@@ -4,8 +4,6 @@ ocamlPackages.buildDunePackage rec {
   pname = "orpie";
   version = "1.6.1";
 
-  duneVersion = "3";
-
   src = fetchFromGitHub {
     owner = "pelzlpj";
     repo = pname;
diff --git a/pkgs/applications/misc/oversteer/default.nix b/pkgs/applications/misc/oversteer/default.nix
index 67a9e2766713..a7567380c5f0 100644
--- a/pkgs/applications/misc/oversteer/default.nix
+++ b/pkgs/applications/misc/oversteer/default.nix
@@ -14,7 +14,7 @@ let
       pygobject3
     ]);
 
-  version = "0.8.0";
+  version = "0.8.1";
 in stdenv.mkDerivation {
   inherit version;
 
@@ -24,7 +24,7 @@ in stdenv.mkDerivation {
     owner = "berarma";
     repo = "oversteer";
     rev = version;
-    sha256 = "sha256-fkf6sa4yYbxGOehyLzuFj5nZiPK3B1D/VVvobhKB4Uo=";
+    sha256 = "sha256-J23fgEDkfZMjVEYHaSPbU9zh5CQFjPmqMsm09VybBv8=";
   };
 
   buildInputs = [ bash gtk3 ];
diff --git a/pkgs/applications/misc/oxker/default.nix b/pkgs/applications/misc/oxker/default.nix
index e3c5e9a28bd8..7974466a1c2c 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.5.0";
+  version = "0.6.0";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-DylYRuEy0qjhjCEoTmjCJAT3nD31D8Xaaw13oexViAg=";
+    sha256 = "sha256-s1PVm5RBqHe5XVHt5Wgm05+6xXJYnMU9QO7Z8567oKk=";
   };
 
-  cargoHash = "sha256-gmzXl2psj4mftX/0Hsbki/eRQHWnspkYlzQAX4gv4vo=";
+  cargoHash = "sha256-zZFys59vEiGfB9NlAY5yjHBeXf8zQ3npFF7sg2SQTwU=";
 
   meta = with lib; {
     description = "A simple tui to view & control docker containers";
diff --git a/pkgs/applications/misc/p2pool/default.nix b/pkgs/applications/misc/p2pool/default.nix
index f19092599009..53a05157b996 100644
--- a/pkgs/applications/misc/p2pool/default.nix
+++ b/pkgs/applications/misc/p2pool/default.nix
@@ -19,13 +19,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "p2pool";
-  version = "3.9";
+  version = "3.10";
 
   src = fetchFromGitHub {
     owner = "SChernykh";
     repo = "p2pool";
     rev = "v${version}";
-    sha256 = "sha256-3CzQVK/1kLL50UdlTsDvHVfx9ZY8B3M0qzcIlonII6k=";
+    sha256 = "sha256-IDOtwrIKzP/pbwqIespvZtNS1VdR3246uXxgxR3V6VI=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/misc/pairdrop/default.nix b/pkgs/applications/misc/pairdrop/default.nix
index b291e15e785a..7715481cffd5 100644
--- a/pkgs/applications/misc/pairdrop/default.nix
+++ b/pkgs/applications/misc/pairdrop/default.nix
@@ -6,16 +6,16 @@
 
 buildNpmPackage rec {
   pname = "pairdrop";
-  version = "1.10.3";
+  version = "1.7.6";
 
   src = fetchFromGitHub {
     owner = "schlagmichdoch";
     repo = "PairDrop";
     rev = "v${version}";
-    hash = "sha256-0trhkaxDWk5zlHN/Mtk/RNeeIeXyOg2QcnSO1kTsNqE=";
+    hash = "sha256-AOFATOCLf2KigeqoUzIfNngyeDesNrThRzxFvqtsXBs=";
   };
 
-  npmDepsHash = "sha256-CjRTHH/2Hz5RZ83/4p//Q2L/CB48yRXSB08QxRox2bI=";
+  npmDepsHash = "sha256-3nKjmC5eizoV/mrKDBhsSlVQxEHyIsWR6KHFwZhBugI=";
 
   dontNpmBuild = true;
 
diff --git a/pkgs/applications/misc/pe-bear/default.nix b/pkgs/applications/misc/pe-bear/default.nix
index 45cca9e49f49..79307f777955 100644
--- a/pkgs/applications/misc/pe-bear/default.nix
+++ b/pkgs/applications/misc/pe-bear/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pe-bear";
-  version = "0.6.7";
+  version = "0.6.7.3";
 
   src = fetchFromGitHub {
     owner = "hasherezade";
     repo = "pe-bear";
     rev = "v${version}";
-    sha256 = "sha256-O5vBmcQXwde63OKc2LI66/tEqPzs0pK8loYkhILg2oY=";
+    sha256 = "sha256-We3XxSsGL1mTK5DgI2wgRm7OaziI/cZRiLd+qrvZ7SE=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/misc/pot/Cargo.lock b/pkgs/applications/misc/pot/Cargo.lock
index d7dfb99d1002..a8dcf7612e3a 100644
--- a/pkgs/applications/misc/pot/Cargo.lock
+++ b/pkgs/applications/misc/pot/Cargo.lock
@@ -30,15 +30,16 @@ dependencies = [
 
 [[package]]
 name = "ahash"
-version = "0.8.3"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
+checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a"
 dependencies = [
  "cfg-if",
  "const-random",
- "getrandom 0.2.10",
+ "getrandom 0.2.11",
  "once_cell",
  "version_check",
+ "zerocopy",
 ]
 
 [[package]]
@@ -94,9 +95,9 @@ checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
 
 [[package]]
 name = "arboard"
-version = "3.2.1"
+version = "3.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac57f2b058a76363e357c056e4f74f1945bf734d37b8b3ef49066c4787dde0fc"
+checksum = "aafb29b107435aa276664c1db8954ac27a6e105cdad3c88287a199eb0e313c08"
 dependencies = [
  "clipboard-win",
  "core-graphics 0.22.3",
@@ -129,26 +130,28 @@ dependencies = [
 
 [[package]]
 name = "async-channel"
-version = "1.9.0"
+version = "2.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
+checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c"
 dependencies = [
  "concurrent-queue",
- "event-listener 2.5.3",
+ "event-listener 4.0.0",
+ "event-listener-strategy",
  "futures-core",
+ "pin-project-lite",
 ]
 
 [[package]]
 name = "async-executor"
-version = "1.5.4"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c1da3ae8dabd9c00f453a329dfe1fb28da3c0a72e2478cdcd93171740c20499"
+checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c"
 dependencies = [
- "async-lock",
+ "async-lock 3.1.2",
  "async-task",
  "concurrent-queue",
  "fastrand 2.0.1",
- "futures-lite",
+ "futures-lite 2.0.1",
  "slab",
 ]
 
@@ -158,10 +161,10 @@ version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06"
 dependencies = [
- "async-lock",
+ "async-lock 2.8.0",
  "autocfg",
  "blocking",
- "futures-lite",
+ "futures-lite 1.13.0",
 ]
 
 [[package]]
@@ -170,21 +173,40 @@ version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
 dependencies = [
- "async-lock",
+ "async-lock 2.8.0",
  "autocfg",
  "cfg-if",
  "concurrent-queue",
- "futures-lite",
+ "futures-lite 1.13.0",
  "log",
  "parking",
- "polling",
- "rustix 0.37.24",
+ "polling 2.8.0",
+ "rustix 0.37.27",
  "slab",
- "socket2 0.4.9",
+ "socket2 0.4.10",
  "waker-fn",
 ]
 
 [[package]]
+name = "async-io"
+version = "2.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d6d3b15875ba253d1110c740755e246537483f152fa334f91abd7fe84c88b3ff"
+dependencies = [
+ "async-lock 3.1.2",
+ "cfg-if",
+ "concurrent-queue",
+ "futures-io",
+ "futures-lite 2.0.1",
+ "parking",
+ "polling 3.3.1",
+ "rustix 0.38.25",
+ "slab",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "async-lock"
 version = "2.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -194,19 +216,30 @@ dependencies = [
 ]
 
 [[package]]
+name = "async-lock"
+version = "3.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dea8b3453dd7cc96711834b75400d671b73e3656975fa68d9f277163b7f7e316"
+dependencies = [
+ "event-listener 4.0.0",
+ "event-listener-strategy",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "async-process"
 version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88"
 dependencies = [
- "async-io",
- "async-lock",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
  "async-signal",
  "blocking",
  "cfg-if",
- "event-listener 3.0.0",
- "futures-lite",
- "rustix 0.38.18",
+ "event-listener 3.1.0",
+ "futures-lite 1.13.0",
+ "rustix 0.38.25",
  "windows-sys 0.48.0",
 ]
 
@@ -218,22 +251,22 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
 ]
 
 [[package]]
 name = "async-signal"
-version = "0.2.4"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2a5415b7abcdc9cd7d63d6badba5288b2ca017e3fbd4173b8f405449f1a2399"
+checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
 dependencies = [
- "async-io",
- "async-lock",
+ "async-io 2.2.1",
+ "async-lock 2.8.0",
  "atomic-waker",
  "cfg-if",
  "futures-core",
  "futures-io",
- "rustix 0.38.18",
+ "rustix 0.38.25",
  "signal-hook-registry",
  "slab",
  "windows-sys 0.48.0",
@@ -241,19 +274,19 @@ dependencies = [
 
 [[package]]
 name = "async-task"
-version = "4.4.1"
+version = "4.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9441c6b2fe128a7c2bf680a44c34d0df31ce09e5b7e401fcca3faa483dbc921"
+checksum = "b4eb2cdb97421e01129ccb49169d8279ed21e829929144f4a22a6e54ac549ca1"
 
 [[package]]
 name = "async-trait"
-version = "0.1.73"
+version = "0.1.74"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0"
+checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -277,7 +310,7 @@ dependencies = [
  "glib-sys",
  "gobject-sys",
  "libc",
- "system-deps 6.1.2",
+ "system-deps 6.2.0",
 ]
 
 [[package]]
@@ -296,6 +329,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
 
 [[package]]
+name = "atomic-write-file"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ae364a6c1301604bbc6dfbf8c385c47ff82301dd01eef506195a029196d8d04"
+dependencies = [
+ "nix 0.27.1",
+ "rand 0.8.5",
+]
+
+[[package]]
 name = "auto-launch"
 version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -335,9 +378,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
 
 [[package]]
 name = "base64"
-version = "0.21.4"
+version = "0.21.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2"
+checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
 
 [[package]]
 name = "base64ct"
@@ -359,9 +402,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.0"
+version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
 dependencies = [
  "serde",
 ]
@@ -383,16 +426,16 @@ dependencies = [
 
 [[package]]
 name = "blocking"
-version = "1.4.1"
+version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c36a4d0d48574b3dd360b4b7d95cc651d2b6557b6402848a27d4b228a473e2a"
+checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
 dependencies = [
  "async-channel",
- "async-lock",
+ "async-lock 3.1.2",
  "async-task",
  "fastrand 2.0.1",
  "futures-io",
- "futures-lite",
+ "futures-lite 2.0.1",
  "piper",
  "tracing",
 ]
@@ -410,9 +453,9 @@ dependencies = [
 
 [[package]]
 name = "brotli-decompressor"
-version = "2.5.0"
+version = "2.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da74e2b81409b1b743f8f0c62cc6254afefb8b8e50bbfe3735550f7aeefa3448"
+checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f"
 dependencies = [
  "alloc-no-stdlib",
  "alloc-stdlib",
@@ -420,9 +463,9 @@ dependencies = [
 
 [[package]]
 name = "bstr"
-version = "1.7.0"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c79ad7fb2dd38f3dabd76b09c6a5a20c038fc0213ef1e9afd30eb777f120f019"
+checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c"
 dependencies = [
  "memchr",
  "serde",
@@ -446,9 +489,9 @@ dependencies = [
 
 [[package]]
 name = "bytecount"
-version = "0.6.4"
+version = "0.6.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad152d03a2c813c80bb94fedbf3a3f02b28f793e39e7c214c8a0bcc196343de7"
+checksum = "e1e5f035d16fc623ae5f74981db80a439803888314e3a555fd6f04acd51a3205"
 
 [[package]]
 name = "bytemuck"
@@ -513,7 +556,7 @@ checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8"
 dependencies = [
  "glib-sys",
  "libc",
- "system-deps 6.1.2",
+ "system-deps 6.2.0",
 ]
 
 [[package]]
@@ -604,9 +647,9 @@ dependencies = [
 
 [[package]]
 name = "chunked_transfer"
-version = "1.4.1"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cca491388666e04d7248af3f60f0c40cfb0991c72205595d7c396e3510207d1a"
+checksum = "6e4de3bc4ea267985becf712dc6d9eed8b04c953b3fcfb339ebc87acd9804901"
 
 [[package]]
 name = "cipher"
@@ -655,6 +698,22 @@ dependencies = [
 ]
 
 [[package]]
+name = "cocoa"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6140449f97a6e97f9511815c5632d84c8aacf8ac271ad77c559218161a1373c"
+dependencies = [
+ "bitflags 1.3.2",
+ "block",
+ "cocoa-foundation",
+ "core-foundation",
+ "core-graphics 0.23.1",
+ "foreign-types 0.5.0",
+ "libc",
+ "objc",
+]
+
+[[package]]
 name = "cocoa-foundation"
 version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -707,12 +766,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "const-cstr"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed3d0b5ff30645a68f35ece8cea4556ca14ef8a1651455f789a099a0513532a6"
-
-[[package]]
 name = "const-oid"
 version = "0.9.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -720,23 +773,21 @@ checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f"
 
 [[package]]
 name = "const-random"
-version = "0.1.15"
+version = "0.1.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "368a7a772ead6ce7e1de82bfb04c485f3db8ec744f72925af5735e29a22cc18e"
+checksum = "5aaf16c9c2c612020bcfd042e170f6e32de9b9d75adb5277cdbbd2e2c8c8299a"
 dependencies = [
  "const-random-macro",
- "proc-macro-hack",
 ]
 
 [[package]]
 name = "const-random-macro"
-version = "0.1.15"
+version = "0.1.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d7d6ab3c3a2282db210df5f02c4dab6e0a7057af0fb7ebd4070f30fe05c0ddb"
+checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e"
 dependencies = [
- "getrandom 0.2.10",
+ "getrandom 0.2.11",
  "once_cell",
- "proc-macro-hack",
  "tiny-keccak",
 ]
 
@@ -819,9 +870,9 @@ dependencies = [
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.9"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
+checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
 dependencies = [
  "libc",
 ]
@@ -837,9 +888,9 @@ dependencies = [
 
 [[package]]
 name = "crc-catalog"
-version = "2.2.0"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cace84e55f07e7301bae1c519df89cdad8cc3cd868413d3fdbdeca9ff3db484"
+checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5"
 
 [[package]]
 name = "crc32fast"
@@ -943,7 +994,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
 dependencies = [
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "cstr"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8aa998c33a6d3271e3678950a22134cd7dd27cef86dee1b611b5b14207d1d90b"
+dependencies = [
+ "proc-macro2",
+ "quote",
 ]
 
 [[package]]
@@ -977,7 +1038,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "strsim",
- "syn 2.0.38",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -988,7 +1049,7 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
 dependencies = [
  "darling_core",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -1015,10 +1076,11 @@ dependencies = [
 
 [[package]]
 name = "deranged"
-version = "0.3.8"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946"
+checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3"
 dependencies = [
+ "powerfmt",
  "serde",
 ]
 
@@ -1235,7 +1297,7 @@ checksum = "f54cc3e827ee1c3812239a9a41dede7b4d7d5d5464faa32d71bd7cba28ce2cb2"
 dependencies = [
  "cc",
  "rustc_version",
- "toml 0.8.2",
+ "toml 0.8.8",
  "vswhom",
  "winreg 0.51.0",
 ]
@@ -1286,7 +1348,7 @@ checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -1297,12 +1359,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
 name = "errno"
-version = "0.3.5"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
 dependencies = [
  "libc",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -1334,9 +1396,20 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
 
 [[package]]
 name = "event-listener"
-version = "3.0.0"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener"
+version = "4.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29e56284f00d94c1bc7fd3c77027b4623c88c1f53d8d2394c6199f2921dea325"
+checksum = "770d968249b5d99410d61f5bf89057f3199a077a04d087092f58e7d10692baae"
 dependencies = [
  "concurrent-queue",
  "parking",
@@ -1344,6 +1417,16 @@ dependencies = [
 ]
 
 [[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.0",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "exr"
 version = "1.71.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1376,9 +1459,9 @@ checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
 
 [[package]]
 name = "fdeflate"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10"
+checksum = "64d6dafc854908ff5da46ff3f8f473c6984119a2876a383a860246dd7841a868"
 dependencies = [
  "simd-adler32",
 ]
@@ -1428,9 +1511,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
 
 [[package]]
 name = "flate2"
-version = "1.0.27"
+version = "1.0.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
 dependencies = [
  "crc32fast",
  "miniz_oxide",
@@ -1438,9 +1521,9 @@ dependencies = [
 
 [[package]]
 name = "float-ord"
-version = "0.2.0"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7bad48618fdb549078c333a7a8528acb57af271d0433bdecd523eb620628364e"
+checksum = "8ce81f49ae8a0482e4c55ea62ebbd7e5a686af544c00b9d090bba3ff9be97b3d"
 
 [[package]]
 name = "flume"
@@ -1461,11 +1544,11 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
 name = "font-kit"
-version = "0.11.0"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21fe28504d371085fae9ac7a3450f0b289ab71e07c8e57baa3fb68b9e57d6ce5"
+checksum = "b0504fc23a34d36352540ae5eedcec2623c86607a4efe25494ca9641845c5a50"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.1",
  "byteorder",
  "core-foundation",
  "core-graphics 0.22.3",
@@ -1511,7 +1594,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -1528,18 +1611,18 @@ checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
 
 [[package]]
 name = "form_urlencoded"
-version = "1.2.0"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
 dependencies = [
  "percent-encoding",
 ]
 
 [[package]]
 name = "fraction"
-version = "0.13.1"
+version = "0.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3027ae1df8d41b4bed2241c8fdad4acc1e7af60c8e17743534b545e77182d678"
+checksum = "59a78dd758a47a7305478e0e054f9fde4e983b9f9eccda162bf7ca03b79e9d40"
 dependencies = [
  "lazy_static",
  "num",
@@ -1587,9 +1670,9 @@ dependencies = [
 
 [[package]]
 name = "futures-channel"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -1597,15 +1680,15 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
+checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -1625,9 +1708,9 @@ dependencies = [
 
 [[package]]
 name = "futures-io"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa"
 
 [[package]]
 name = "futures-lite"
@@ -1645,33 +1728,47 @@ dependencies = [
 ]
 
 [[package]]
+name = "futures-lite"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3831c2651acb5177cbd83943f3d9c8912c5ad03c76afcc0e9511ba568ec5ebb"
+dependencies = [
+ "fastrand 2.0.1",
+ "futures-core",
+ "futures-io",
+ "memchr",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "futures-macro"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
 ]
 
 [[package]]
 name = "futures-sink"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817"
 
 [[package]]
 name = "futures-task"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2"
 
 [[package]]
 name = "futures-util"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104"
 dependencies = [
  "futures-core",
  "futures-io",
@@ -1732,7 +1829,7 @@ dependencies = [
  "glib-sys",
  "gobject-sys",
  "libc",
- "system-deps 6.1.2",
+ "system-deps 6.2.0",
 ]
 
 [[package]]
@@ -1749,7 +1846,7 @@ dependencies = [
  "libc",
  "pango-sys",
  "pkg-config",
- "system-deps 6.1.2",
+ "system-deps 6.2.0",
 ]
 
 [[package]]
@@ -1763,7 +1860,7 @@ dependencies = [
  "gobject-sys",
  "libc",
  "pkg-config",
- "system-deps 6.1.2",
+ "system-deps 6.2.0",
 ]
 
 [[package]]
@@ -1775,7 +1872,7 @@ dependencies = [
  "gdk-sys",
  "glib-sys",
  "libc",
- "system-deps 6.1.2",
+ "system-deps 6.2.0",
  "x11",
 ]
 
@@ -1804,9 +1901,9 @@ dependencies = [
 
 [[package]]
 name = "gethostname"
-version = "0.2.3"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e"
+checksum = "bb65d4ba3173c56a500b555b532f72c42e8d1fe64962b518897f8959fae2c177"
 dependencies = [
  "libc",
  "winapi",
@@ -1825,9 +1922,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.10"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
 dependencies = [
  "cfg-if",
  "libc",
@@ -1846,9 +1943,9 @@ dependencies = [
 
 [[package]]
 name = "gimli"
-version = "0.28.0"
+version = "0.28.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
 name = "gio"
@@ -1876,7 +1973,7 @@ dependencies = [
  "glib-sys",
  "gobject-sys",
  "libc",
- "system-deps 6.1.2",
+ "system-deps 6.2.0",
  "winapi",
 ]
 
@@ -1922,7 +2019,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4"
 dependencies = [
  "libc",
- "system-deps 6.1.2",
+ "system-deps 6.2.0",
 ]
 
 [[package]]
@@ -1933,15 +2030,15 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
 name = "globset"
-version = "0.4.13"
+version = "0.4.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d"
+checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1"
 dependencies = [
  "aho-corasick",
  "bstr",
- "fnv",
  "log",
- "regex",
+ "regex-automata 0.4.3",
+ "regex-syntax 0.8.2",
 ]
 
 [[package]]
@@ -1952,7 +2049,7 @@ checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a"
 dependencies = [
  "glib-sys",
  "libc",
- "system-deps 6.1.2",
+ "system-deps 6.2.0",
 ]
 
 [[package]]
@@ -1993,7 +2090,7 @@ dependencies = [
  "gobject-sys",
  "libc",
  "pango-sys",
- "system-deps 6.1.2",
+ "system-deps 6.2.0",
 ]
 
 [[package]]
@@ -2012,9 +2109,9 @@ dependencies = [
 
 [[package]]
 name = "h2"
-version = "0.3.21"
+version = "0.3.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833"
+checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178"
 dependencies = [
  "bytes",
  "fnv",
@@ -2022,7 +2119,7 @@ dependencies = [
  "futures-sink",
  "futures-util",
  "http",
- "indexmap 1.9.3",
+ "indexmap 2.1.0",
  "slab",
  "tokio",
  "tokio-util",
@@ -2046,9 +2143,9 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
 
 [[package]]
 name = "hashbrown"
-version = "0.14.1"
+version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 dependencies = [
  "ahash",
  "allocator-api2",
@@ -2060,7 +2157,7 @@ version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7"
 dependencies = [
- "hashbrown 0.14.1",
+ "hashbrown 0.14.3",
 ]
 
 [[package]]
@@ -2150,9 +2247,9 @@ dependencies = [
 
 [[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",
@@ -2205,7 +2302,7 @@ dependencies = [
  "httpdate",
  "itoa 1.0.9",
  "pin-project-lite",
- "socket2 0.4.9",
+ "socket2 0.4.10",
  "tokio",
  "tower-service",
  "tracing",
@@ -2227,16 +2324,16 @@ dependencies = [
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.57"
+version = "0.1.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
+checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
  "iana-time-zone-haiku",
  "js-sys",
  "wasm-bindgen",
- "windows 0.48.0",
+ "windows-core 0.51.1",
 ]
 
 [[package]]
@@ -2266,9 +2363,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
 
 [[package]]
 name = "idna"
-version = "0.4.0"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
 dependencies = [
  "unicode-bidi",
  "unicode-normalization",
@@ -2276,17 +2373,16 @@ dependencies = [
 
 [[package]]
 name = "ignore"
-version = "0.4.20"
+version = "0.4.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492"
+checksum = "747ad1b4ae841a78e8aba0d63adbfbeaea26b517b63705d47856b73015d27060"
 dependencies = [
+ "crossbeam-deque",
  "globset",
- "lazy_static",
  "log",
  "memchr",
- "regex",
+ "regex-automata 0.4.3",
  "same-file",
- "thread_local",
  "walkdir",
  "winapi-util",
 ]
@@ -2342,12 +2438,12 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.0.2"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897"
+checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
 dependencies = [
  "equivalent",
- "hashbrown 0.14.1",
+ "hashbrown 0.14.3",
  "serde",
 ]
 
@@ -2411,24 +2507,24 @@ dependencies = [
 
 [[package]]
 name = "ipnet"
-version = "2.8.0"
+version = "2.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6"
+checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
 
 [[package]]
 name = "itertools"
-version = "0.10.5"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
+checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
 dependencies = [
  "either",
 ]
 
 [[package]]
 name = "itertools"
-version = "0.11.0"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
+checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0"
 dependencies = [
  "either",
 ]
@@ -2508,9 +2604,9 @@ dependencies = [
 
 [[package]]
 name = "js-sys"
-version = "0.3.64"
+version = "0.3.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
+checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -2613,9 +2709,9 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.149"
+version = "0.2.150"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b"
+checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
 
 [[package]]
 name = "libdbus-sys"
@@ -2663,10 +2759,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
 
 [[package]]
+name = "libredox"
+version = "0.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
+dependencies = [
+ "bitflags 2.4.1",
+ "libc",
+ "redox_syscall 0.4.1",
+]
+
+[[package]]
 name = "libsqlite3-sys"
-version = "0.26.0"
+version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "afc22eff61b133b115c6e8c74e818c628d6d5e7a502afea6f64dee076dd94326"
+checksum = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716"
 dependencies = [
  "cc",
  "pkg-config",
@@ -2684,16 +2791,16 @@ dependencies = [
 
 [[package]]
 name = "lingua"
-version = "1.5.0"
+version = "1.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6dc858be45965c868f5fa4a3c57d61842ff8aa2f2b1308eea14babbee5ef2478"
+checksum = "73989d32b4cd00a69e78d979203fa3b87e43fae0236a29544331c2ccfa180fdd"
 dependencies = [
  "ahash",
  "brotli",
  "compact_str",
  "fraction",
  "include_dir",
- "itertools 0.10.5",
+ "itertools 0.12.0",
  "lingua-arabic-language-model",
  "lingua-bokmal-language-model",
  "lingua-chinese-language-model",
@@ -2924,15 +3031,15 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.10"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f"
+checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829"
 
 [[package]]
 name = "lock_api"
-version = "0.4.10"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -3067,15 +3174,6 @@ checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
 
 [[package]]
 name = "memoffset"
-version = "0.6.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "memoffset"
 version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
@@ -3132,9 +3230,9 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.8"
+version = "0.8.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
+checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0"
 dependencies = [
  "libc",
  "log",
@@ -3207,26 +3305,26 @@ checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
 
 [[package]]
 name = "nix"
-version = "0.24.3"
+version = "0.26.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069"
+checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
 dependencies = [
  "bitflags 1.3.2",
  "cfg-if",
  "libc",
- "memoffset 0.6.5",
+ "memoffset 0.7.1",
+ "pin-utils",
 ]
 
 [[package]]
 name = "nix"
-version = "0.26.4"
+version = "0.27.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
+checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.1",
  "cfg-if",
  "libc",
- "memoffset 0.7.1",
 ]
 
 [[package]]
@@ -3251,7 +3349,7 @@ version = "6.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "crossbeam-channel",
  "filetime",
  "fsevent-sys",
@@ -3279,9 +3377,9 @@ dependencies = [
 
 [[package]]
 name = "notify-rust"
-version = "4.9.0"
+version = "4.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d7b75c8958cb2eab3451538b32db8a7b74006abc33eb2e6a9a56d21e4775c2b"
+checksum = "827c5edfa80235ded4ab3fe8e9dc619b4f866ef16fe9b1c6b8a7f8692c0f2226"
 dependencies = [
  "log",
  "mac-notification-sys",
@@ -3500,11 +3598,11 @@ dependencies = [
 
 [[package]]
 name = "openssl"
-version = "0.10.57"
+version = "0.10.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c"
+checksum = "79a4c6c3a2b158f7f8f2a2fc5a969fa3a068df6fc9dbb4a43845436e3af7c800"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "cfg-if",
  "foreign-types 0.3.2",
  "libc",
@@ -3521,7 +3619,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -3532,9 +3630,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.93"
+version = "0.9.96"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db4d56a4c0478783083cfafcc42493dd4a981d41669da64b4572a2a089b51b1d"
+checksum = "3812c071ba60da8b5677cc12bcb1d42989a65553772897a7e0355545a819838f"
 dependencies = [
  "cc",
  "libc",
@@ -3607,14 +3705,14 @@ dependencies = [
  "glib-sys",
  "gobject-sys",
  "libc",
- "system-deps 6.1.2",
+ "system-deps 6.2.0",
 ]
 
 [[package]]
 name = "parking"
-version = "2.1.1"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e52c774a4c39359c1d1c52e43f73dd91a75a614652c825408eec30c95a9b2067"
+checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
 
 [[package]]
 name = "parking_lot"
@@ -3628,13 +3726,13 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.8"
+version = "0.9.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall 0.3.5",
+ "redox_syscall 0.4.1",
  "smallvec",
  "windows-targets 0.48.5",
 ]
@@ -3704,9 +3802,9 @@ dependencies = [
 
 [[package]]
 name = "percent-encoding"
-version = "2.3.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "petgraph"
@@ -3715,7 +3813,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
 dependencies = [
  "fixedbitset",
- "indexmap 2.0.2",
+ "indexmap 2.1.0",
 ]
 
 [[package]]
@@ -3878,14 +3976,14 @@ checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
 
 [[package]]
 name = "plist"
-version = "1.5.0"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdc0001cfea3db57a2e24bc0d818e9e20e554b5f97fabb9bc231dc240269ae06"
+checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef"
 dependencies = [
- "base64 0.21.4",
- "indexmap 1.9.3",
+ "base64 0.21.5",
+ "indexmap 2.1.0",
  "line-wrap",
- "quick-xml 0.29.0",
+ "quick-xml 0.31.0",
  "serde",
  "time",
 ]
@@ -3920,11 +4018,25 @@ dependencies = [
 ]
 
 [[package]]
+name = "polling"
+version = "3.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e"
+dependencies = [
+ "cfg-if",
+ "concurrent-queue",
+ "pin-project-lite",
+ "rustix 0.38.25",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "pot"
 version = "0.0.0"
 dependencies = [
  "arboard",
- "base64 0.21.4",
+ "base64 0.21.5",
  "dirs 5.0.1",
  "font-kit",
  "image",
@@ -3935,6 +4047,7 @@ dependencies = [
  "macos-accessibility-client",
  "mouse_position",
  "once_cell",
+ "reqwest",
  "reqwest_dav",
  "screenshots",
  "selection",
@@ -3957,6 +4070,12 @@ dependencies = [
 ]
 
 [[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"
@@ -4010,9 +4129,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.69"
+version = "1.0.70"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
+checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b"
 dependencies = [
  "unicode-ident",
 ]
@@ -4028,27 +4147,27 @@ dependencies = [
 
 [[package]]
 name = "quick-xml"
-version = "0.23.1"
+version = "0.28.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11bafc859c6815fbaffbbbf4229ecb767ac913fecb27f9ad4343662e9ef099ea"
+checksum = "0ce5e73202a820a31f8a0ee32ada5e21029c81fd9e3ebf668a40832e4219d9d1"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "quick-xml"
-version = "0.28.2"
+version = "0.30.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ce5e73202a820a31f8a0ee32ada5e21029c81fd9e3ebf668a40832e4219d9d1"
+checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "quick-xml"
-version = "0.29.0"
+version = "0.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81b9228215d82c7b61490fec1de287136b5de6f5700f6e58ea9ad61a7964ca51"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
 dependencies = [
  "memchr",
 ]
@@ -4122,7 +4241,7 @@ version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
 dependencies = [
- "getrandom 0.2.10",
+ "getrandom 0.2.11",
 ]
 
 [[package]]
@@ -4171,43 +4290,43 @@ dependencies = [
 
 [[package]]
 name = "redox_syscall"
-version = "0.2.16"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
 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 0.2.10",
- "redox_syscall 0.2.16",
+ "getrandom 0.2.11",
+ "libredox",
  "thiserror",
 ]
 
 [[package]]
 name = "regex"
-version = "1.10.0"
+version = "1.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d119d7c7ca818f8a53c300863d4f87566aac09943aef5b355bb83969dae75d87"
+checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-automata 0.4.1",
- "regex-syntax 0.8.0",
+ "regex-automata 0.4.3",
+ "regex-syntax 0.8.2",
 ]
 
 [[package]]
@@ -4221,13 +4340,13 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.4.1"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "465c6fc0621e4abc4187a2bda0937bfd4f722c2730b29562e19689ea796c9a4b"
+checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-syntax 0.8.0",
+ "regex-syntax 0.8.2",
 ]
 
 [[package]]
@@ -4238,9 +4357,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
 
 [[package]]
 name = "regex-syntax"
-version = "0.8.0"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3cbb081b9784b07cceb8824c8583f86db4814d172ab043f3c23f7dc600bf83d"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "reqwest"
@@ -4248,7 +4367,7 @@ version = "0.11.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b"
 dependencies = [
- "base64 0.21.4",
+ "base64 0.21.5",
  "bytes",
  "encoding_rs",
  "futures-core",
@@ -4285,9 +4404,9 @@ dependencies = [
 
 [[package]]
 name = "reqwest_dav"
-version = "0.1.4"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb731945e2fa330114abcab8ea68ba22e4f5943853c45adb2cdd19c68a46930b"
+checksum = "5b567143a5c9b806f8f3a7a13f18e2517fd95da6f8daf2c22525b43992c64d4b"
 dependencies = [
  "async-trait",
  "chrono",
@@ -4328,16 +4447,14 @@ dependencies = [
 
 [[package]]
 name = "rsa"
-version = "0.9.2"
+version = "0.9.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ab43bb47d23c1a631b4b680199a45255dce26fa9ab2fa902581f624ff13e6a8"
+checksum = "af6c4b23d99685a1408194da11270ef8e9809aff951cc70ec9b17350b087e474"
 dependencies = [
- "byteorder",
  "const-oid",
  "digest",
  "num-bigint-dig",
  "num-integer",
- "num-iter",
  "num-traits",
  "pkcs1",
  "pkcs8",
@@ -4365,9 +4482,9 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.37.24"
+version = "0.37.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4279d76516df406a8bd37e7dff53fd37d1a093f997a3c34a5c21658c126db06d"
+checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
 dependencies = [
  "bitflags 1.3.2",
  "errno",
@@ -4379,14 +4496,14 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.18"
+version = "0.38.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a74ee2d7c2581cd139b42447d7d9389b889bdaad3a73f1ebb16f2a3237bb19c"
+checksum = "dc99bc2d4f1fed22595588a013687477aedf3cdcfb26558c559edb67b4d9b22e"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "errno",
  "libc",
- "linux-raw-sys 0.4.10",
+ "linux-raw-sys 0.4.11",
  "windows-sys 0.48.0",
 ]
 
@@ -4481,14 +4598,14 @@ dependencies = [
 
 [[package]]
 name = "selection"
-version = "1.1.0"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae9d5f752403a8ef95d55c47c297541c3c12e90bf8bdaf82287527ff9f373cb6"
+checksum = "1f4c5f3c0a904e16c649b1c59e95bda2d0983334a7b836b3aa4a85430831af16"
 dependencies = [
  "arboard",
  "enigo",
  "log",
- "windows 0.44.0",
+ "windows 0.52.0",
  "wl-clipboard-rs",
  "x11-clipboard",
 ]
@@ -4524,18 +4641,18 @@ dependencies = [
 
 [[package]]
 name = "serde"
-version = "1.0.188"
+version = "1.0.193"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
+checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde-wasm-bindgen"
-version = "0.5.0"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3b143e2833c57ab9ad3ea280d21fd34e285a42837aeb0ee301f4f41890fa00e"
+checksum = "17ba92964781421b6cef36bf0d7da26d201e96d84e1b10e7ae6ed416e516906d"
 dependencies = [
  "js-sys",
  "serde",
@@ -4556,20 +4673,20 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.188"
+version = "1.0.193"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
+checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.107"
+version = "1.0.108"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"
+checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
 dependencies = [
  "itoa 1.0.9",
  "ryu",
@@ -4578,20 +4695,20 @@ dependencies = [
 
 [[package]]
 name = "serde_repr"
-version = "0.1.16"
+version = "0.1.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00"
+checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
 ]
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.3"
+version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
+checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80"
 dependencies = [
  "serde",
 ]
@@ -4610,15 +4727,15 @@ dependencies = [
 
 [[package]]
 name = "serde_with"
-version = "3.3.0"
+version = "3.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ca3b16a3d82c4088f343b7480a93550b3eabe1a358569c2dfe38bbcead07237"
+checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23"
 dependencies = [
- "base64 0.21.4",
+ "base64 0.21.5",
  "chrono",
  "hex",
  "indexmap 1.9.3",
- "indexmap 2.0.2",
+ "indexmap 2.1.0",
  "serde",
  "serde_json",
  "serde_with_macros",
@@ -4627,14 +4744,14 @@ dependencies = [
 
 [[package]]
 name = "serde_with_macros"
-version = "3.3.0"
+version = "3.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e6be15c453eb305019bfa438b1593c731f36a289a7853f7707ee29e870b3b3c"
+checksum = "93634eb5f75a2323b16de4748022ac4297f9e76b6dced2be287a099f41b5e788"
 dependencies = [
  "darling",
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -4721,9 +4838,9 @@ dependencies = [
 
 [[package]]
 name = "signature"
-version = "2.1.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500"
+checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
 dependencies = [
  "digest",
  "rand_core 0.6.4",
@@ -4752,15 +4869,15 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.11.1"
+version = "1.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a"
+checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
 
 [[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",
@@ -4768,9 +4885,9 @@ dependencies = [
 
 [[package]]
 name = "socket2"
-version = "0.5.4"
+version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e"
+checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
 dependencies = [
  "libc",
  "windows-sys 0.48.0",
@@ -4821,9 +4938,9 @@ dependencies = [
 
 [[package]]
 name = "spki"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a"
+checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d"
 dependencies = [
  "base64ct",
  "der",
@@ -4842,9 +4959,9 @@ dependencies = [
 
 [[package]]
 name = "sqlx"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e50c216e3624ec8e7ecd14c6a6a6370aad6ee5d8cfc3ab30b5162eeeef2ed33"
+checksum = "dba03c279da73694ef99763320dea58b51095dfe87d001b1d4b5fe78ba8763cf"
 dependencies = [
  "sqlx-core",
  "sqlx-macros",
@@ -4855,9 +4972,9 @@ dependencies = [
 
 [[package]]
 name = "sqlx-core"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d6753e460c998bbd4cd8c6f0ed9a64346fcca0723d6e75e52fdc351c5d2169d"
+checksum = "d84b0a3c3739e220d94b3239fd69fb1f74bc36e16643423bd99de3b43c21bfbd"
 dependencies = [
  "ahash",
  "atoi",
@@ -4875,7 +4992,7 @@ dependencies = [
  "futures-util",
  "hashlink",
  "hex",
- "indexmap 2.0.2",
+ "indexmap 2.1.0",
  "log",
  "memchr",
  "once_cell",
@@ -4896,9 +5013,9 @@ dependencies = [
 
 [[package]]
 name = "sqlx-macros"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a793bb3ba331ec8359c1853bd39eed32cdd7baaf22c35ccf5c92a7e8d1189ec"
+checksum = "89961c00dc4d7dffb7aee214964b065072bff69e36ddb9e2c107541f75e4f2a5"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -4909,10 +5026,11 @@ dependencies = [
 
 [[package]]
 name = "sqlx-macros-core"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a4ee1e104e00dedb6aa5ffdd1343107b0a4702e862a84320ee7cc74782d96fc"
+checksum = "d0bd4519486723648186a08785143599760f7cc81c52334a55d6a83ea1e20841"
 dependencies = [
+ "atomic-write-file",
  "dotenvy",
  "either",
  "heck 0.4.1",
@@ -4935,13 +5053,13 @@ dependencies = [
 
 [[package]]
 name = "sqlx-mysql"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "864b869fdf56263f4c95c45483191ea0af340f9f3e3e7b4d57a61c7c87a970db"
+checksum = "e37195395df71fd068f6e2082247891bc11e3289624bbc776a0cdfa1ca7f1ea4"
 dependencies = [
  "atoi",
- "base64 0.21.4",
- "bitflags 2.4.0",
+ "base64 0.21.5",
+ "bitflags 2.4.1",
  "byteorder",
  "bytes",
  "crc",
@@ -4978,13 +5096,13 @@ dependencies = [
 
 [[package]]
 name = "sqlx-postgres"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb7ae0e6a97fb3ba33b23ac2671a5ce6e3cabe003f451abd5a56e7951d975624"
+checksum = "d6ac0ac3b7ccd10cc96c7ab29791a7dd236bd94021f31eec7ba3d46a74aa1c24"
 dependencies = [
  "atoi",
- "base64 0.21.4",
- "bitflags 2.4.0",
+ "base64 0.21.5",
+ "bitflags 2.4.1",
  "byteorder",
  "crc",
  "dotenvy",
@@ -5018,9 +5136,9 @@ dependencies = [
 
 [[package]]
 name = "sqlx-sqlite"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d59dc83cf45d89c555a577694534fcd1b55c545a816c816ce51f20bbe56a4f3f"
+checksum = "210976b7d948c7ba9fced8ca835b11cbb2d677c59c79de41ac0d397e14547490"
 dependencies = [
  "atoi",
  "flume",
@@ -5037,6 +5155,7 @@ dependencies = [
  "time",
  "tracing",
  "url",
+ "urlencoding",
 ]
 
 [[package]]
@@ -5111,21 +5230,21 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
 name = "strum"
-version = "0.24.1"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f"
+checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125"
 
 [[package]]
 name = "strum_macros"
-version = "0.24.3"
+version = "0.25.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59"
+checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0"
 dependencies = [
  "heck 0.4.1",
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 1.0.109",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -5147,9 +5266,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.38"
+version = "2.0.39"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b"
+checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -5205,27 +5324,27 @@ dependencies = [
 
 [[package]]
 name = "system-deps"
-version = "6.1.2"
+version = "6.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94af52f9402f94aac4948a2518b43359be8d9ce6cd9efc1c4de3b2f7b7e897d6"
+checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331"
 dependencies = [
  "cfg-expr 0.15.5",
  "heck 0.4.1",
  "pkg-config",
- "toml 0.8.2",
+ "toml 0.8.8",
  "version-compare 0.1.1",
 ]
 
 [[package]]
 name = "tao"
-version = "0.16.4"
+version = "0.16.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b768eb5cf657b045d03304b1f60ecb54eac8b520f393c4f4240a94111a1caa17"
+checksum = "75f5aefd6be4cd3ad3f047442242fd9f57cbfb3e565379f66b5e14749364fa4f"
 dependencies = [
  "bitflags 1.3.2",
  "cairo-rs",
  "cc",
- "cocoa",
+ "cocoa 0.24.1",
  "core-foundation",
  "core-graphics 0.22.3",
  "crossbeam-channel",
@@ -5289,20 +5408,20 @@ dependencies = [
 
 [[package]]
 name = "target-lexicon"
-version = "0.12.11"
+version = "0.12.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a"
+checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a"
 
 [[package]]
 name = "tauri"
-version = "1.5.1"
+version = "1.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0238c5063bf9613054149a1b6bce4935922e532b7d8211f36989a490a79806be"
+checksum = "9bfe673cf125ef364d6f56b15e8ce7537d9ca7e4dae1cf6fbbdeed2e024db3d9"
 dependencies = [
  "anyhow",
- "base64 0.21.4",
+ "base64 0.21.5",
  "bytes",
- "cocoa",
+ "cocoa 0.24.1",
  "dirs-next",
  "embed_plist",
  "encoding_rs",
@@ -5377,7 +5496,7 @@ version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7b3475e55acec0b4a50fb96435f19631fb58cbcd31923e1a213de5c382536bbb"
 dependencies = [
- "base64 0.21.4",
+ "base64 0.21.5",
  "brotli",
  "ico",
  "json-patch",
@@ -5414,7 +5533,7 @@ dependencies = [
 [[package]]
 name = "tauri-plugin-autostart"
 version = "0.0.0"
-source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v1#9b20f28d747f6ec3ba5a80bfcd5edc1d573b4c90"
+source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v1#9b2e9ab6c9b853a861292c69770458e5409992c0"
 dependencies = [
  "auto-launch",
  "log",
@@ -5427,7 +5546,7 @@ dependencies = [
 [[package]]
 name = "tauri-plugin-fs-watch"
 version = "0.0.0"
-source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v1#9b20f28d747f6ec3ba5a80bfcd5edc1d573b4c90"
+source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v1#9b2e9ab6c9b853a861292c69770458e5409992c0"
 dependencies = [
  "log",
  "notify",
@@ -5441,7 +5560,7 @@ dependencies = [
 [[package]]
 name = "tauri-plugin-log"
 version = "0.0.0"
-source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v1#9b20f28d747f6ec3ba5a80bfcd5edc1d573b4c90"
+source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v1#9b2e9ab6c9b853a861292c69770458e5409992c0"
 dependencies = [
  "byte-unit",
  "fern",
@@ -5456,21 +5575,21 @@ dependencies = [
 [[package]]
 name = "tauri-plugin-single-instance"
 version = "0.0.0"
-source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v1#9b20f28d747f6ec3ba5a80bfcd5edc1d573b4c90"
+source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v1#9b2e9ab6c9b853a861292c69770458e5409992c0"
 dependencies = [
  "log",
  "serde",
  "serde_json",
  "tauri",
  "thiserror",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
  "zbus",
 ]
 
 [[package]]
 name = "tauri-plugin-sql"
 version = "0.0.0"
-source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v1#77b81af36cc6c03b07c59a2988b0f6d20960f1b0"
+source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v1#9b2e9ab6c9b853a861292c69770458e5409992c0"
 dependencies = [
  "futures-core",
  "log",
@@ -5486,7 +5605,7 @@ dependencies = [
 [[package]]
 name = "tauri-plugin-store"
 version = "0.0.0"
-source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v1#9b20f28d747f6ec3ba5a80bfcd5edc1d573b4c90"
+source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v1#9b2e9ab6c9b853a861292c69770458e5409992c0"
 dependencies = [
  "log",
  "serde",
@@ -5522,7 +5641,7 @@ version = "0.14.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8141d72b6b65f2008911e9ef5b98a68d1e3413b7a1464e8f85eb3673bb19a895"
 dependencies = [
- "cocoa",
+ "cocoa 0.24.1",
  "gtk",
  "percent-encoding",
  "rand 0.8.5",
@@ -5578,24 +5697,24 @@ dependencies = [
 
 [[package]]
 name = "tauri-winrt-notification"
-version = "0.1.2"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f5bff1d532fead7c43324a0fa33643b8621a47ce2944a633be4cb6c0240898f"
+checksum = "006851c9ccefa3c38a7646b8cec804bb429def3da10497bfa977179869c3e8e2"
 dependencies = [
- "quick-xml 0.23.1",
- "windows 0.39.0",
+ "quick-xml 0.30.0",
+ "windows 0.51.1",
 ]
 
 [[package]]
 name = "tempfile"
-version = "3.8.0"
+version = "3.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef"
+checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
 dependencies = [
  "cfg-if",
  "fastrand 2.0.1",
- "redox_syscall 0.3.5",
- "rustix 0.38.18",
+ "redox_syscall 0.4.1",
+ "rustix 0.38.25",
  "windows-sys 0.48.0",
 ]
 
@@ -5618,22 +5737,22 @@ checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c"
 
 [[package]]
 name = "thiserror"
-version = "1.0.49"
+version = "1.0.50"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4"
+checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.49"
+version = "1.0.50"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc"
+checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -5659,14 +5778,15 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "426f806f4089c493dcac0d24c29c01e2c38baf8e30f1b716ee37e83d200b18fe"
+checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5"
 dependencies = [
  "deranged",
  "itoa 1.0.9",
  "libc",
  "num_threads",
+ "powerfmt",
  "serde",
  "time-core",
  "time-macros",
@@ -5725,9 +5845,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.33.0"
+version = "1.34.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653"
+checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9"
 dependencies = [
  "backtrace",
  "bytes",
@@ -5735,7 +5855,7 @@ dependencies = [
  "mio",
  "num_cpus",
  "pin-project-lite",
- "socket2 0.5.4",
+ "socket2 0.5.5",
  "windows-sys 0.48.0",
 ]
 
@@ -5762,9 +5882,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-util"
-version = "0.7.9"
+version = "0.7.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d68074620f57a0b21594d9735eb2e98ab38b17f80d3fcb189fca266771ca60d"
+checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
 dependencies = [
  "bytes",
  "futures-core",
@@ -5797,21 +5917,21 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.8.2"
+version = "0.8.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d"
+checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.20.2",
+ "toml_edit 0.21.0",
 ]
 
 [[package]]
 name = "toml_datetime"
-version = "0.6.3"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
 dependencies = [
  "serde",
 ]
@@ -5822,7 +5942,7 @@ version = "0.19.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
 dependencies = [
- "indexmap 2.0.2",
+ "indexmap 2.1.0",
  "serde",
  "serde_spanned",
  "toml_datetime",
@@ -5831,11 +5951,11 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.20.2"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338"
+checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
 dependencies = [
- "indexmap 2.0.2",
+ "indexmap 2.1.0",
  "serde",
  "serde_spanned",
  "toml_datetime",
@@ -5850,11 +5970,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-attributes",
@@ -5863,20 +5982,20 @@ dependencies = [
 
 [[package]]
 name = "tracing-attributes"
-version = "0.1.26"
+version = "0.1.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
 ]
 
 [[package]]
 name = "tracing-core"
-version = "0.1.31"
+version = "0.1.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
 dependencies = [
  "once_cell",
  "valuable",
@@ -5884,20 +6003,20 @@ dependencies = [
 
 [[package]]
 name = "tracing-log"
-version = "0.1.3"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922"
+checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
 dependencies = [
- "lazy_static",
  "log",
+ "once_cell",
  "tracing-core",
 ]
 
 [[package]]
 name = "tracing-subscriber"
-version = "0.3.17"
+version = "0.3.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77"
+checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
 dependencies = [
  "matchers",
  "nu-ansi-term",
@@ -6000,9 +6119,9 @@ checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e"
 
 [[package]]
 name = "url"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
 dependencies = [
  "form_urlencoded",
  "idna",
@@ -6011,6 +6130,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "urlencoding"
+version = "2.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
+
+[[package]]
 name = "utf-8"
 version = "0.7.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6018,17 +6143,17 @@ checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
 
 [[package]]
 name = "utf8-width"
-version = "0.1.6"
+version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5190c9442dcdaf0ddd50f37420417d219ae5261bbf5db120d0f9bab996c9cba1"
+checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3"
 
 [[package]]
 name = "uuid"
-version = "1.4.1"
+version = "1.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d"
+checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560"
 dependencies = [
- "getrandom 0.2.10",
+ "getrandom 0.2.11",
 ]
 
 [[package]]
@@ -6039,9 +6164,9 @@ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
 
 [[package]]
 name = "value-bag"
-version = "1.4.1"
+version = "1.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d92ccd67fb88503048c01b59152a04effd0782d035a83a6d256ce6085f08f4a3"
+checksum = "4a72e1902dde2bd6441347de2b70b7f5d59bf157c6c62f0c44572607a1d55bbe"
 
 [[package]]
 name = "vcpkg"
@@ -6126,9 +6251,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -6136,24 +6261,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.37"
+version = "0.4.39"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03"
+checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -6163,9 +6288,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -6173,22 +6298,22 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f"
 
 [[package]]
 name = "wasm-streams"
@@ -6204,69 +6329,83 @@ dependencies = [
 ]
 
 [[package]]
-name = "wayland-client"
-version = "0.29.5"
+name = "wayland-backend"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715"
+checksum = "19152ddd73f45f024ed4534d9ca2594e0ef252c1847695255dae47f34df9fbe4"
 dependencies = [
- "bitflags 1.3.2",
+ "cc",
  "downcast-rs",
- "libc",
- "nix 0.24.3",
- "wayland-commons",
- "wayland-scanner",
+ "nix 0.26.4",
+ "scoped-tls",
+ "smallvec",
  "wayland-sys",
 ]
 
 [[package]]
-name = "wayland-commons"
-version = "0.29.5"
+name = "wayland-client"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902"
+checksum = "1ca7d52347346f5473bf2f56705f360e8440873052e575e55890c4fa57843ed3"
 dependencies = [
- "nix 0.24.3",
- "once_cell",
- "smallvec",
- "wayland-sys",
+ "bitflags 2.4.1",
+ "nix 0.26.4",
+ "wayland-backend",
+ "wayland-scanner",
 ]
 
 [[package]]
 name = "wayland-protocols"
-version = "0.29.5"
+version = "0.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6"
+checksum = "e253d7107ba913923dc253967f35e8561a3c65f914543e46843c88ddd729e21c"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.1",
+ "wayland-backend",
  "wayland-client",
- "wayland-commons",
+ "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-protocols",
  "wayland-scanner",
 ]
 
 [[package]]
 name = "wayland-scanner"
-version = "0.29.5"
+version = "0.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53"
+checksum = "fb8e28403665c9f9513202b7e1ed71ec56fde5c107816843fb14057910b2c09c"
 dependencies = [
  "proc-macro2",
+ "quick-xml 0.30.0",
  "quote",
- "xml-rs",
 ]
 
 [[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",
+ "log",
  "pkg-config",
 ]
 
 [[package]]
 name = "web-sys"
-version = "0.3.64"
+version = "0.3.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
+checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -6316,7 +6455,7 @@ dependencies = [
  "pango-sys",
  "pkg-config",
  "soup2-sys",
- "system-deps 6.1.2",
+ "system-deps 6.2.0",
 ]
 
 [[package]]
@@ -6417,14 +6556,14 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "window-shadows"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29d30320647cfc3dc45554c8ad825b84831def81f967a2f7589931328ff9b16d"
+checksum = "67ff424735b1ac21293b0492b069394b0a189c8a463fb015a16dea7c2e221c08"
 dependencies = [
- "cocoa",
+ "cocoa 0.25.0",
  "objc",
  "raw-window-handle",
- "windows-sys 0.42.0",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -6478,11 +6617,21 @@ version = "0.51.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9"
 dependencies = [
- "windows-core",
+ "windows-core 0.51.1",
  "windows-targets 0.48.5",
 ]
 
 [[package]]
+name = "windows"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
+dependencies = [
+ "windows-core 0.52.0",
+ "windows-targets 0.52.0",
+]
+
+[[package]]
 name = "windows-bindgen"
 version = "0.39.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6502,6 +6651,15 @@ dependencies = [
 ]
 
 [[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-implement"
 version = "0.39.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6551,6 +6709,15 @@ dependencies = [
 ]
 
 [[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.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6581,6 +6748,21 @@ dependencies = [
 ]
 
 [[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-tokens"
 version = "0.39.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6599,6 +6781,12 @@ 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.37.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6623,6 +6811,12 @@ 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.37.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6647,6 +6841,12 @@ 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.37.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6671,6 +6871,12 @@ 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.37.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6695,6 +6901,12 @@ 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.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6707,6 +6919,12 @@ 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.37.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6731,10 +6949,16 @@ 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 = "winnow"
-version = "0.5.16"
+version = "0.5.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "037711d82167854aff2018dfd193aa0fef5370f456732f0d5a0c59b0f1b4b907"
+checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b"
 dependencies = [
  "memchr",
 ]
@@ -6779,31 +7003,33 @@ dependencies = [
 
 [[package]]
 name = "wl-clipboard-rs"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "981a303dfbb75d659f6612d05a14b2e363c103d24f676a2d44a00d18507a1ad9"
+checksum = "57af79e973eadf08627115c73847392e6b766856ab8e3844a59245354b23d2fa"
 dependencies = [
  "derive-new",
  "libc",
  "log",
- "nix 0.24.3",
+ "nix 0.26.4",
  "os_pipe",
  "tempfile",
  "thiserror",
  "tree_magic_mini",
+ "wayland-backend",
  "wayland-client",
  "wayland-protocols",
+ "wayland-protocols-wlr",
 ]
 
 [[package]]
 name = "wry"
-version = "0.24.4"
+version = "0.24.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88ef04bdad49eba2e01f06e53688c8413bd6a87b0bc14b72284465cf96e3578e"
+checksum = "64a70547e8f9d85da0f5af609143f7bde3ac7457a6e1073104d9b73d6c5ac744"
 dependencies = [
  "base64 0.13.1",
  "block",
- "cocoa",
+ "cocoa 0.24.1",
  "core-graphics 0.22.3",
  "crossbeam-channel",
  "dunce",
@@ -6845,9 +7071,9 @@ dependencies = [
 
 [[package]]
 name = "x11-clipboard"
-version = "0.7.1"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "980b9aa9226c3b7de8e2adb11bf20124327c054e0e5812d2aac0b5b5a87e7464"
+checksum = "b41aca1115b1f195f21c541c5efb423470848d48143127d0f07f8b90c27440df"
 dependencies = [
  "x11rb",
 ]
@@ -6865,12 +7091,12 @@ dependencies = [
 
 [[package]]
 name = "x11rb"
-version = "0.10.1"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "592b4883219f345e712b3209c62654ebda0bb50887f330cbd018d0f654bfd507"
+checksum = "b1641b26d4dec61337c35a1b1aaf9e3cba8f46f0b43636c609ab0291a648040a"
 dependencies = [
  "gethostname",
- "nix 0.24.3",
+ "nix 0.26.4",
  "winapi",
  "winapi-wsapoll",
  "x11rb-protocol",
@@ -6878,11 +7104,11 @@ dependencies = [
 
 [[package]]
 name = "x11rb-protocol"
-version = "0.10.0"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56b245751c0ac9db0e006dc812031482784e434630205a93c73cfefcaabeac67"
+checksum = "82d6c3f9a0fb6701fab8f6cea9b0c0bd5d6876f1f89f7fada07e558077c344bc"
 dependencies = [
- "nix 0.24.3",
+ "nix 0.26.4",
 ]
 
 [[package]]
@@ -6923,11 +7149,11 @@ checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a"
 
 [[package]]
 name = "yeslogic-fontconfig-sys"
-version = "3.2.0"
+version = "5.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2bbd69036d397ebbff671b1b8e4d918610c181c5a16073b96f984a38d08c386"
+checksum = "ffb6b23999a8b1a997bf47c7bb4d19ad4029c3327bb3386ebe0a5ff584b33c7a"
 dependencies = [
- "const-cstr",
+ "cstr",
  "dlib",
  "once_cell",
  "pkg-config",
@@ -6942,8 +7168,8 @@ dependencies = [
  "async-broadcast",
  "async-executor",
  "async-fs",
- "async-io",
- "async-lock",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
  "async-process",
  "async-recursion",
  "async-task",
@@ -7000,10 +7226,30 @@ dependencies = [
 ]
 
 [[package]]
+name = "zerocopy"
+version = "0.7.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e97e415490559a91254a2979b4829267a57d2fcd741a98eee8b722fb57289aa0"
+dependencies = [
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd7e48ccf166952882ca8bd778a43502c64f33bf94c12ebe2a7f08e5a0f6689f"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
 name = "zeroize"
-version = "1.6.0"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9"
+checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
 
 [[package]]
 name = "zip"
@@ -7046,12 +7292,11 @@ 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/applications/misc/pot/default.nix b/pkgs/applications/misc/pot/default.nix
index 6162c964135e..33e6c18932de 100644
--- a/pkgs/applications/misc/pot/default.nix
+++ b/pkgs/applications/misc/pot/default.nix
@@ -24,13 +24,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pot";
-  version = "2.7.0";
+  version = "2.7.4";
 
   src = fetchFromGitHub {
     owner = "pot-app";
     repo = "pot-desktop";
     rev = version;
-    hash = "sha256-ODqMbyL6Zda/cY5Lgijaj9Pr5aozQDgzHlS89q4rA4w=";
+    hash = "sha256-c7FHkp/utvrr7qasY+XKaTnPaiZWb8M5EGiFne52osQ=";
   };
 
   sourceRoot = "${src.name}/src-tauri";
@@ -68,15 +68,14 @@ stdenv.mkDerivation rec {
 
     dontFixup = true;
     outputHashMode = "recursive";
-    outputHash = "sha256-xl1dSrJ7o0Xn4QB2tRBB6U8gUItltxTE+hyEJ1GIw1k=";
+    outputHash = "sha256-BQ5M+pKEXGJzWmxMchNgxpvLpgFCRIg33GQCvO4TLz4=";
   };
 
   cargoDeps = rustPlatform.importCargoLock {
     lockFile = ./Cargo.lock;
     outputHashes = {
       # All other crates in the same workspace reuse this hash.
-      "tauri-plugin-autostart-0.0.0" = "sha256-wgVsF3H9BT8lBew7tQ308eIQ6cLZT93hD/4eYCDEq98=";
-      "tauri-plugin-sql-0.0.0" = "sha256-e9iwcHwW8MaRzkaAbewrq6b9+n3ZofMTBnvA23ZF2ro=";
+      "tauri-plugin-autostart-0.0.0" = "sha256-/uxaSBp+N1VjjSiwf6NwNnSH02Vk6gQZ/CzO+AyEI7o=";
     };
   };
 
diff --git a/pkgs/applications/misc/printrun/default.nix b/pkgs/applications/misc/printrun/default.nix
index 658e36cf8878..61acdd32857c 100644
--- a/pkgs/applications/misc/printrun/default.nix
+++ b/pkgs/applications/misc/printrun/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "printrun";
-  version = "2.0.0";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner = "kliment";
     repo = "Printrun";
-    rev = "printrun-${version}";
-    hash = "sha256-ijJc0CVPiYW5VjTqhY1kO+Fy3dfuPoMn7KRhvcsdAZw=";
+    rev = "refs/tags/printrun-${version}";
+    hash = "sha256-GmTA/C45MuptN/Y0KjpFjaLV3sWoM4rHz8AMfV9sf4U=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/misc/process-compose/default.nix b/pkgs/applications/misc/process-compose/default.nix
index d0494c85b56b..fa92fbfe3c70 100644
--- a/pkgs/applications/misc/process-compose/default.nix
+++ b/pkgs/applications/misc/process-compose/default.nix
@@ -8,13 +8,13 @@ let config-module = "github.com/f1bonacc1/process-compose/src/config";
 in
 buildGoModule rec {
   pname = "process-compose";
-  version = "0.77.8";
+  version = "0.81.4";
 
   src = fetchFromGitHub {
     owner = "F1bonacc1";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-9kDKNzehVcf+FF7OZoMdftp+uVoZ0Zu3ML3Tlor7Qc8=";
+    hash = "sha256-HGrqW56gU5IiX5vyMmJyr63LlJaalCY1kWZi7ahrr0o=";
     # 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;
@@ -43,7 +43,7 @@ buildGoModule rec {
     installShellFiles
   ];
 
-  vendorHash = "sha256-NYb5FLMXRoOTEH7nD3+1LUGD7wY0N8FTTUZ85uxTPrk=";
+  vendorHash = "sha256-vcx8wHqJzL+huCPdzN5h3dLs3PE7NaFWJEFJX22EZV4=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/misc/prusa-slicer/default.nix b/pkgs/applications/misc/prusa-slicer/default.nix
index dc5b2c68c632..724bfcc4ecce 100644
--- a/pkgs/applications/misc/prusa-slicer/default.nix
+++ b/pkgs/applications/misc/prusa-slicer/default.nix
@@ -1,8 +1,5 @@
 { stdenv
 , lib
-, openexr
-, jemalloc
-, c-blosc
 , binutils
 , fetchFromGitHub
 , cmake
@@ -12,6 +9,7 @@
 , cereal
 , cgal
 , curl
+, darwin
 , dbus
 , eigen
 , expat
@@ -63,9 +61,7 @@ let
       hash = "sha256-WNdAYu66ggpSYJ8Kt57yEA4mSTv+Rvzj9Rm1q765HpY=";
     };
   });
-  openvdb_tbb_2021_8 = openvdb.overrideAttrs (old: rec {
-    buildInputs = [ openexr boost tbb_2021_8 jemalloc c-blosc ilmbase ];
-  });
+  openvdb_tbb_2021_8 = openvdb.override { tbb = tbb_2021_8; };
   wxGTK-override' = if wxGTK-override == null then wxGTK-prusa else wxGTK-override;
 in
 stdenv.mkDerivation (finalAttrs: {
@@ -116,6 +112,8 @@ stdenv.mkDerivation (finalAttrs: {
     catch2
   ] ++ lib.optionals withSystemd [
     systemd
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk_11_0.frameworks.CoreWLAN
   ];
 
   separateDebugInfo = true;
@@ -195,6 +193,7 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://github.com/prusa3d/PrusaSlicer";
     license = licenses.agpl3;
     maintainers = with maintainers; [ moredread tweber tmarkus ];
+    platforms = platforms.unix;
   } // lib.optionalAttrs (stdenv.isDarwin) {
     mainProgram = "PrusaSlicer";
   };
diff --git a/pkgs/applications/misc/prusa-slicer/super-slicer.nix b/pkgs/applications/misc/prusa-slicer/super-slicer.nix
index fc8e5cc7aa07..88423e36a956 100644
--- a/pkgs/applications/misc/prusa-slicer/super-slicer.nix
+++ b/pkgs/applications/misc/prusa-slicer/super-slicer.nix
@@ -30,8 +30,8 @@ let
       inherit patches;
     };
     beta = {
-      version = "2.5.59.3";
-      sha256 = "sha256-chHKEEMN0Dllebk7zQDg7mf2BU441RlSyXvXgiCmgA4=";
+      version = "2.5.59.6";
+      sha256 = "sha256-4ivhkcvVw5NlPsDz3J840aWc0qnp/XzCnTTCICwi3/c=";
       inherit patches;
     };
   };
diff --git a/pkgs/applications/misc/pure-maps/default.nix b/pkgs/applications/misc/pure-maps/default.nix
index 0220778277c1..d1bfe4132583 100644
--- a/pkgs/applications/misc/pure-maps/default.nix
+++ b/pkgs/applications/misc/pure-maps/default.nix
@@ -6,13 +6,13 @@
 
 mkDerivation rec {
   pname = "pure-maps";
-  version = "3.2.0";
+  version = "3.2.1";
 
   src = fetchFromGitHub {
     owner = "rinigus";
     repo = "pure-maps";
     rev = version;
-    hash = "sha256-07Jk5ufYbBAa/UY1B0IoyuOAVt15rGCxCRXu3OeYyWU=";
+    hash = "sha256-AZt0JcNegHkUkWy+NW5CNLZfxjjFyKWBrhLJgSTv3to=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/misc/pydf/default.nix b/pkgs/applications/misc/pydf/default.nix
index f02b97461a14..61f79edeab16 100644
--- a/pkgs/applications/misc/pydf/default.nix
+++ b/pkgs/applications/misc/pydf/default.nix
@@ -18,6 +18,7 @@ python3Packages.buildPythonPackage rec {
   meta = with lib; {
     description = "colourised df(1)-clone";
     homepage = "http://kassiopeia.juls.savba.sk/~garabik/software/pydf/";
+    mainProgram = "pydf";
     license = licenses.publicDomain;
     maintainers = with maintainers; [ monsieurp ];
   };
diff --git a/pkgs/applications/misc/qcad/default.nix b/pkgs/applications/misc/qcad/default.nix
index fc599f20c6db..9a560934a253 100644
--- a/pkgs/applications/misc/qcad/default.nix
+++ b/pkgs/applications/misc/qcad/default.nix
@@ -18,14 +18,14 @@
 
 mkDerivation rec {
   pname = "qcad";
-  version = "3.29.0.0";
+  version = "3.29.2.0";
 
   src = fetchFromGitHub {
     name = "qcad-${version}-src";
     owner = "qcad";
     repo = "qcad";
     rev = "v${version}";
-    sha256 = "sha256-Nx16TJrtxUUdeSobTYdgoDUzm1IcTGbaKnW/9YXozgo=";
+    sha256 = "sha256-7SX0hBSySY8AgmIwVjuszrfdfVKZ8axQzkpON9mjHgg=";
   };
 
   patches = [
diff --git a/pkgs/applications/misc/qdirstat/default.nix b/pkgs/applications/misc/qdirstat/default.nix
index 92949ad4a893..dc112d2d6935 100644
--- a/pkgs/applications/misc/qdirstat/default.nix
+++ b/pkgs/applications/misc/qdirstat/default.nix
@@ -4,13 +4,13 @@
 
 let
   pname = "qdirstat";
-  version = "1.8.1";
+  version = "1.9";
 
   src = fetchFromGitHub {
     owner = "shundhammer";
     repo = pname;
     rev = version;
-    sha256 = "sha256-yWv41iWtdTdlFuvLHKCbwmnSXq7Z5pIJq28GMDltdxM=";
+    sha256 = "sha256-pwdmltHDNwUMx1FNOoiXl5Pna0zlKqahmicBCN6UVSU=";
   };
 in
 
diff --git a/pkgs/applications/misc/remarkable/restream/default.nix b/pkgs/applications/misc/remarkable/restream/default.nix
index 9af70769e3d9..c5958aff724c 100644
--- a/pkgs/applications/misc/remarkable/restream/default.nix
+++ b/pkgs/applications/misc/remarkable/restream/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "restream";
-  version = "1.2.0";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "rien";
     repo = pname;
-    rev = version;
-    sha256 = "0vyj0kng8c9inv2rbw1qdr43ic15s5x8fvk9mbw0vpc6g723x99g";
+    rev = "v${version}";
+    hash = "sha256-AXHKOfdIM3LsHF6u3M/lMhhcuPZADoEal7de3zlx7L4=";
   };
 
   dontConfigure = true;
diff --git a/pkgs/applications/misc/remarkable/rmview/default.nix b/pkgs/applications/misc/remarkable/rmview/default.nix
index e3fd00d8cdc4..24627025ca9f 100644
--- a/pkgs/applications/misc/remarkable/rmview/default.nix
+++ b/pkgs/applications/misc/remarkable/rmview/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "rmview";
-  version = "3.1.2";
+  version = "3.1.3";
 
   src = fetchFromGitHub {
     owner = "bordaigorl";
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-oCF37WQqNIXut2k+xr528twGxwPoH/sQ2leThagQJAU=";
+    sha256 = "sha256-V26zmu8cQkLs0IMR7eFO8x34McnT3xYyzlZfntApYkk=";
   };
 
   nativeBuildInputs = with python3Packages; [ pyqt5 wrapQtAppsHook ];
diff --git a/pkgs/applications/misc/rsclock/default.nix b/pkgs/applications/misc/rsclock/default.nix
index 0b353b61a9f0..8a6c5588494f 100644
--- a/pkgs/applications/misc/rsclock/default.nix
+++ b/pkgs/applications/misc/rsclock/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rsClock";
-  version = "0.1.10";
+  version = "0.1.11";
 
   src = fetchFromGitHub {
     owner = "valebes";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-bxka9qTow5aL8ErYQudB+WRi2HecYn4/M3lBSxjd5/U=";
+    sha256 = "sha256-z+WGi1Jl+YkdAc4Nu818vi+OXg54GfAM6PbWYkgptpo=";
   };
 
-  cargoHash = "sha256-ESBeXLBkDAmuQkazcXYdo5VnMCTaxfZmzKP+d5V4lEo=";
+  cargoHash = "sha256-/uAxIV7eroJNGsLl4T/6RskoTIWKu5Cgmv48eMkDZQw=";
 
   meta = with lib; {
     description = "A simple terminal clock written in Rust";
diff --git a/pkgs/applications/misc/sigal/copytree-permissions.patch b/pkgs/applications/misc/sigal/copytree-permissions.patch
deleted file mode 100644
index 352e1f0d2dcc..000000000000
--- a/pkgs/applications/misc/sigal/copytree-permissions.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff -Nurp sigal-2.3.orig/sigal/writer.py sigal-2.3/sigal/writer.py
---- sigal-2.3.orig/sigal/writer.py	2022-08-08 19:43:10.934707194 +0200
-+++ sigal-2.3/sigal/writer.py	2022-08-08 19:44:57.542382532 +0200
-@@ -103,7 +103,11 @@ class AbstractWriter:
-             os.path.join(THEMES_PATH, 'default', 'static'),
-             os.path.join(self.theme, 'static'),
-         ):
--            shutil.copytree(static_path, self.theme_path, dirs_exist_ok=True)
-+            # https://stackoverflow.com/a/17022146/4935114
-+            orig_copystat = shutil.copystat
-+            shutil.copystat = lambda x, y: x
-+            shutil.copytree(static_path, self.theme_path, dirs_exist_ok=True, copy_function=shutil.copy)
-+            shutil.copystat = orig_copystat
- 
-         if self.settings["user_css"]:
-             if not os.path.exists(self.settings["user_css"]):
diff --git a/pkgs/applications/misc/sigal/default.nix b/pkgs/applications/misc/sigal/default.nix
index 7a3988a4cda3..145c34b7f8c0 100644
--- a/pkgs/applications/misc/sigal/default.nix
+++ b/pkgs/applications/misc/sigal/default.nix
@@ -7,15 +7,17 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "sigal";
-  version = "2.3";
-  format = "setuptools";
+  version = "2.4";
+  pyproject = true;
 
   src = fetchPypi {
     inherit version pname;
-    hash = "sha256-4Zsb/OBtU/jV0gThEYe8bcrb+6hW+hnzQS19q1H409Q=";
+    hash = "sha256-pDTaqtqfuk7tACkyaKClTJotuVcTKli5yx1wbEM93TM=";
   };
 
-  patches = [ ./copytree-permissions.patch ];
+  nativeBuildInputs = with python3.pkgs; [
+    setuptools-scm
+  ];
 
   propagatedBuildInputs = with python3.pkgs; [
     # install_requires
@@ -31,8 +33,6 @@ python3.pkgs.buildPythonApplication rec {
     feedgenerator
     zopfli
     cryptography
-
-    setuptools # needs pkg_resources
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/applications/misc/smpq/default.nix b/pkgs/applications/misc/smpq/default.nix
index fd6b5937b8e5..7a6264d96547 100644
--- a/pkgs/applications/misc/smpq/default.nix
+++ b/pkgs/applications/misc/smpq/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, cmake, StormLib }:
+{ lib, stdenv, fetchurl, cmake, stormlib }:
 
 stdenv.mkDerivation rec {
   pname = "smpq";
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ StormLib ];
+  buildInputs = [ stormlib ];
 
   meta = with lib; {
     description = "StormLib MPQ archiving utility";
diff --git a/pkgs/applications/misc/stretchly/default.nix b/pkgs/applications/misc/stretchly/default.nix
index 8584dbbf1ee2..67ffdee86c98 100644
--- a/pkgs/applications/misc/stretchly/default.nix
+++ b/pkgs/applications/misc/stretchly/default.nix
@@ -8,19 +8,18 @@
 , makeDesktopItem
 }:
 
-stdenv.mkDerivation rec {
-
+stdenv.mkDerivation (finalAttrs: {
   pname = "stretchly";
-  version = "1.8.1";
+  version = "1.15.1";
 
   src = fetchurl {
-    url = "https://github.com/hovancik/stretchly/releases/download/v${version}/stretchly-${version}.tar.xz";
-    sha256 = "sha256-/v74vDGxD5iiOPeBXPAaV42JpyBjeJSO/Lk88pCkDng=";
+    url = "https://github.com/hovancik/stretchly/releases/download/v${finalAttrs.version}/stretchly-${finalAttrs.version}.tar.xz";
+    hash = "sha256-suTH6o7vtUr2DidPXAwqrya5/WukQOFmS/34LaiWDBs=";
   };
 
   icon = fetchurl {
-    url = "https://raw.githubusercontent.com/hovancik/stretchly/v${version}/stretchly_128x128.png";
-    sha256 = "0whfg1fy2hjyk1lzpryikc1aj8agsjhfrb0bf7ggl6r9m8s1rvdl";
+    url = "https://raw.githubusercontent.com/hovancik/stretchly/v${finalAttrs.version}/stretchly_128x128.png";
+    hash = "sha256-tO0cNKopG/recQus7KDUTyGpApvR5/tpmF5C4V14DnI=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -28,14 +27,14 @@ stdenv.mkDerivation rec {
   installPhase = ''
     runHook preInstall
 
-    mkdir -p $out/bin $out/share/${pname}/
-    mv resources/app.asar* $out/share/${pname}/
+    mkdir -p $out/bin $out/share/${finalAttrs.pname}/
+    mv resources/app.asar* $out/share/${finalAttrs.pname}/
 
     mkdir -p $out/share/applications
-    ln -s ${desktopItem}/share/applications/* $out/share/applications/
+    ln -s ${finalAttrs.desktopItem}/share/applications/* $out/share/applications/
 
-    makeWrapper ${electron}/bin/electron $out/bin/${pname} \
-      --add-flags $out/share/${pname}/app.asar
+    makeWrapper ${electron}/bin/electron $out/bin/${finalAttrs.pname} \
+      --add-flags $out/share/${finalAttrs.pname}/app.asar
 
     runHook postInstall
   '';
@@ -54,9 +53,9 @@ stdenv.mkDerivation rec {
   };
 
   desktopItem = makeDesktopItem {
-    name = pname;
-    exec = pname;
-    icon = icon;
+    name = finalAttrs.pname;
+    exec = finalAttrs.pname;
+    icon = finalAttrs.icon;
     desktopName = "Stretchly";
     genericName = "Stretchly";
     categories = [ "Utility" ];
@@ -77,4 +76,4 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ _1000101 ];
     platforms = platforms.linux;
   };
-}
+})
diff --git a/pkgs/applications/misc/sway-contrib/default.nix b/pkgs/applications/misc/sway-contrib/default.nix
index df5ad07b1c5a..4ddca21774e0 100644
--- a/pkgs/applications/misc/sway-contrib/default.nix
+++ b/pkgs/applications/misc/sway-contrib/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv
+{ lib, stdenvNoCC
 , fetchFromGitHub
 , coreutils
 , makeWrapper
@@ -15,12 +15,12 @@
 }:
 
 let
-  version = "unstable-2023-06-30";
+  version = "0-unstable-2024-01-20";
   src = fetchFromGitHub {
     owner = "OctopusET";
     repo = "sway-contrib";
-    rev = "7e138bfc112872b79ac9fd766bc57c0f125b96d4";
-    hash = "sha256-u4sw1NeAhl4FJCG2YOeY45SHoN7tw6cSJwEL5iqr0uQ=";
+    rev = "b7825b218e677c65f6849be061b93bd5654991bf";
+    hash = "sha256-ZTfItJ77mrNSzXFVcj7OV/6zYBElBj+1LcLLHxBFypk=";
   };
 
   meta = with lib; {
@@ -31,7 +31,7 @@ let
 in
 {
 
-grimshot = stdenv.mkDerivation rec {
+grimshot = stdenvNoCC.mkDerivation {
   inherit version src;
 
   pname = "grimshot";
@@ -70,7 +70,7 @@ grimshot = stdenv.mkDerivation rec {
     fi
   '';
 
-  meta = with lib; {
+  meta = with lib; meta // {
     description = "A helper for screenshots within sway";
     maintainers = with maintainers; [ evils ];
     mainProgram = "grimshot";
@@ -78,11 +78,12 @@ grimshot = stdenv.mkDerivation rec {
 };
 
 
-inactive-windows-transparency = python3Packages.buildPythonApplication rec {
-  inherit version src;
-
+inactive-windows-transparency = let
   # long name is long
   lname = "inactive-windows-transparency";
+in python3Packages.buildPythonApplication {
+  inherit version src;
+
   pname = "sway-${lname}";
 
   format = "other";
@@ -95,7 +96,7 @@ inactive-windows-transparency = python3Packages.buildPythonApplication rec {
     install -Dm 0755 $src/${lname}.py $out/bin/${lname}.py
   '';
 
-  meta = with lib; {
+  meta = with lib; meta // {
     description = "It makes inactive sway windows transparent";
     mainProgram = "${lname}.py";
     maintainers = with maintainers; [
diff --git a/pkgs/applications/misc/sweethome3d/default.nix b/pkgs/applications/misc/sweethome3d/default.nix
index 5755c5610281..2c8f9993fed5 100644
--- a/pkgs/applications/misc/sweethome3d/default.nix
+++ b/pkgs/applications/misc/sweethome3d/default.nix
@@ -3,9 +3,7 @@
 , fetchurl
 , makeWrapper
 , makeDesktopItem
-# sweethome3d 6.5.2 does not yet fully build&run with jdk 9 and later?
-, jdk8
-, jre8
+, jdk
 , ant
 , gtk3
 , gsettings-desktop-schemas
@@ -13,6 +11,7 @@
 , autoPatchelfHook
 , libXxf86vm
 , unzip
+, libGL
 }:
 
 let
@@ -42,7 +41,7 @@ let
     };
 
     postPatch = ''
-      addAutoPatchelfSearchPath ${jre8}/lib/openjdk/jre/lib/
+      addAutoPatchelfSearchPath ${jdk}/lib/openjdk/lib/
       autoPatchelf lib
 
       # Nix cannot see the runtime references to the paths we just patched in
@@ -52,7 +51,7 @@ let
     '';
 
     nativeBuildInputs = [ makeWrapper unzip autoPatchelfHook ];
-    buildInputs = [ ant jdk8 p7zip gtk3 gsettings-desktop-schemas libXxf86vm ];
+    buildInputs = [ ant jdk p7zip gtk3 gsettings-desktop-schemas libXxf86vm ];
 
     buildPhase = ''
       runHook preBuild
@@ -75,13 +74,9 @@ let
 
       cp "${sweethome3dItem}/share/applications/"* $out/share/applications
 
-      # MESA_GL_VERSION_OVERRIDE is needed since the update from MESA 19.3.3 to 20.0.2:
-      # without it a "Profiles [GL4bc, GL3bc, GL2, GLES1] not available on device null"
-      # exception is thrown on startup.
-      # https://discourse.nixos.org/t/glx-not-recognised-after-mesa-update/6753
-      makeWrapper ${jre8}/bin/java $out/bin/$exec \
-        --set MESA_GL_VERSION_OVERRIDE 2.1 \
+      makeWrapper ${jdk}/bin/java $out/bin/$exec \
         --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3.out}/share:${gsettings-desktop-schemas}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" \
+        --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libGL ]}" \
         --add-flags "-Dsun.java2d.opengl=true -jar $out/share/java/${module}-${version}.jar -cp $out/share/java/Furniture.jar:$out/share/java/Textures.jar:$out/share/java/Help.jar -d${toString stdenv.hostPlatform.parsed.cpu.bits}"
 
 
@@ -102,6 +97,7 @@ let
       inherit license;
       maintainers = [ lib.maintainers.edwtjo ];
       platforms = lib.platforms.linux;
+      mainProgram = exec;
     };
   };
 
diff --git a/pkgs/applications/misc/sweethome3d/editors.nix b/pkgs/applications/misc/sweethome3d/editors.nix
index 6c737f469c67..d5cdebb76282 100644
--- a/pkgs/applications/misc/sweethome3d/editors.nix
+++ b/pkgs/applications/misc/sweethome3d/editors.nix
@@ -3,9 +3,7 @@
 , fetchurl
 , makeWrapper
 , makeDesktopItem
-# sweethome3d 6.5.2 does not yet fully build&run with jdk 9 and later?
-, jdk8
-, jre8
+, jdk
 , ant
 , gtk3
 , gsettings-desktop-schemas
@@ -44,7 +42,7 @@ let
     };
 
     nativeBuildInputs = [ makeWrapper unzip ];
-    buildInputs = [ ant jre8 jdk8 gtk3 gsettings-desktop-schemas ];
+    buildInputs = [ ant jdk gtk3 gsettings-desktop-schemas ];
 
     postPatch = ''
       sed -i -e 's,../SweetHome3D,${applicationSrc},g' build.xml
@@ -54,7 +52,7 @@ let
     buildPhase = ''
       runHook preBuild
 
-      ant -lib ${applicationSrc}/libtest -lib ${applicationSrc}/lib -lib ${jdk8}/lib
+      ant -lib ${applicationSrc}/libtest -lib ${applicationSrc}/lib -lib ${jdk}/lib
 
       runHook postBuild
     '';
@@ -64,7 +62,7 @@ let
       mkdir -p $out/share/{java,applications}
       cp ${module}-${version}.jar $out/share/java/.
       cp "${editorItem}/share/applications/"* $out/share/applications
-      makeWrapper ${jre8}/bin/java $out/bin/$exec \
+      makeWrapper ${jdk}/bin/java $out/bin/$exec \
         --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3.out}/share:${gsettings-desktop-schemas}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" \
         --add-flags "-jar $out/share/java/${module}-${version}.jar -d${toString stdenv.hostPlatform.parsed.cpu.bits}"
     '';
@@ -77,6 +75,7 @@ let
       inherit license;
       maintainers = [ lib.maintainers.edwtjo ];
       platforms = lib.platforms.linux;
+      mainProgram = exec;
     };
 
   };
diff --git a/pkgs/applications/misc/tandoor-recipes/common.nix b/pkgs/applications/misc/tandoor-recipes/common.nix
index 40882205420a..8461ed816eb9 100644
--- a/pkgs/applications/misc/tandoor-recipes/common.nix
+++ b/pkgs/applications/misc/tandoor-recipes/common.nix
@@ -1,15 +1,15 @@
 { lib, fetchFromGitHub }:
 rec {
-  version = "1.5.10";
+  version = "1.5.12";
 
   src = fetchFromGitHub {
     owner = "TandoorRecipes";
     repo = "recipes";
     rev = version;
-    hash = "sha256-CkqNPG57e76TT/vF9lscS6m2FbXOvOfqiT/9aM2Il9E=";
+    hash = "sha256-5UslXRoiq9cipGCOiqpf+rv7OPTsW4qpVTjakNeg4ug=";
   };
 
-  yarnHash = "sha256-atl2XrY9LmWh2USp6K2W50/khEsnY6OqKBUS26Ln9ZM=";
+  yarnHash = "sha256-CresovsRh+dLHGnv49fCi/i66QXOS3SnzfFNvkVUfd8=";
 
   meta = with lib; {
     homepage = "https://tandoor.dev/";
diff --git a/pkgs/applications/misc/tandoor-recipes/default.nix b/pkgs/applications/misc/tandoor-recipes/default.nix
index cdd143cc766d..98c6f8b530f9 100644
--- a/pkgs/applications/misc/tandoor-recipes/default.nix
+++ b/pkgs/applications/misc/tandoor-recipes/default.nix
@@ -33,11 +33,10 @@ python.pkgs.pythonPackages.buildPythonPackage rec {
 
   patches = [
     # Allow setting MEDIA_ROOT through environment variable
-    ./media-root.patch
-    # https://github.com/TandoorRecipes/recipes/pull/2706
+    # https://github.com/TandoorRecipes/recipes/pull/2931
     (fetchpatch {
-      url = "https://github.com/TandoorRecipes/recipes/commit/702c1d67d3b2d13cf471bf9daa1d2ef0f1837dec.patch";
-      hash = "sha256-6vmtYs6b0d38Ojxxc2I7oxqpkIlyRVlhzURBOTO2VlQ=";
+      url = "https://github.com/TandoorRecipes/recipes/commit/abf981792057481f1d5b7473eb1090b3901ef8fa.patch";
+      hash = "sha256-3AFf0K/BpVwPQ2NGLUsefj6HvW7ej3szd3WaxFoqMiQ=";
     })
   ];
 
@@ -141,6 +140,7 @@ python.pkgs.pythonPackages.buildPythonPackage rec {
   # flaky
   disabledTests = [
     "test_search_count"
+    "test_url_import_regex_replace"
   ];
 
   passthru = {
diff --git a/pkgs/applications/misc/tandoor-recipes/media-root.patch b/pkgs/applications/misc/tandoor-recipes/media-root.patch
deleted file mode 100644
index 8114ca8aaeb3..000000000000
--- a/pkgs/applications/misc/tandoor-recipes/media-root.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff --git a/recipes/settings.py b/recipes/settings.py
-index 5676fe0a..6c6f1747 100644
---- a/recipes/settings.py
-+++ b/recipes/settings.py
-@@ -426,10 +426,10 @@ if os.getenv('S3_ACCESS_KEY', ''):
-         AWS_S3_CUSTOM_DOMAIN = os.getenv('S3_CUSTOM_DOMAIN', '')
- 
-     MEDIA_URL = os.getenv('MEDIA_URL', '/media/')
--    MEDIA_ROOT = os.path.join(BASE_DIR, "mediafiles")
-+    MEDIA_ROOT = os.getenv('MEDIA_ROOT', os.path.join(BASE_DIR, "mediafiles"))
- else:
-     MEDIA_URL = os.getenv('MEDIA_URL', '/media/')
--    MEDIA_ROOT = os.path.join(BASE_DIR, "mediafiles")
-+    MEDIA_ROOT = os.getenv('MEDIA_ROOT', os.path.join(BASE_DIR, "mediafiles"))
- 
- # Serve static files with gzip
- STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
diff --git a/pkgs/applications/misc/timew-sync-server/default.nix b/pkgs/applications/misc/timew-sync-server/default.nix
index 04c9cfad1af1..8f2420280c9c 100644
--- a/pkgs/applications/misc/timew-sync-server/default.nix
+++ b/pkgs/applications/misc/timew-sync-server/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "timew-sync-server";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "timewarrior-synchronize";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-GaDcnPJBcDJ3AQaHzifDgdl0QT4GSbAOIqp4RrAcO3M=";
+    hash = "sha256-3THRP+hydvq/dnxzUOFGeuu8//qL7pFN0RHJVxzgibI=";
   };
 
-  vendorHash = "sha256-iROqiRWkHG6N6kivUmgmu6sg14JDdG4f98BdR7CL1gs=";
+  vendorHash = "sha256-w7I8PDQQeICDPln2Naf6whOg9qqOniTH/xs1/9luIVc=";
 
   meta = with lib; {
     homepage = "https://github.com/timewarrior-synchronize/timew-sync-server";
diff --git a/pkgs/applications/misc/timewarrior/default.nix b/pkgs/applications/misc/timewarrior/default.nix
index 75730e461c39..02445a655b46 100644
--- a/pkgs/applications/misc/timewarrior/default.nix
+++ b/pkgs/applications/misc/timewarrior/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "timewarrior";
-  version = "1.7.0";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
     owner = "GothenburgBitFactory";
     repo = "timewarrior";
     rev = "v${version}";
-    sha256 = "sha256-6s/fifjGCkk8JiADPbeiqsKMgY0fkIJBqRPco+rmP1A=";
+    sha256 = "sha256-sc4AfdXLuA9evoGU6Z97+Hq7zj9nx093+nPALRkhziQ=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/misc/tippecanoe/default.nix b/pkgs/applications/misc/tippecanoe/default.nix
index 4986f40837ab..af730d0dd9a5 100644
--- a/pkgs/applications/misc/tippecanoe/default.nix
+++ b/pkgs/applications/misc/tippecanoe/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "tippecanoe";
-  version = "2.40.0";
+  version = "2.41.3";
 
   src = fetchFromGitHub {
     owner = "felt";
     repo = "tippecanoe";
     rev = finalAttrs.version;
-    hash = "sha256-zp0+I+Se9spYPEHlxYeYuLaV8EMw80y88zqvfAD9ZsU=";
+    hash = "sha256-yHX0hQbuPFaosBR/N7TmQKOHnd2LG6kkfGUBlaSkA8E=";
   };
 
   buildInputs = [ sqlite zlib ];
diff --git a/pkgs/applications/misc/ttyper/default.nix b/pkgs/applications/misc/ttyper/default.nix
index cdb348c08c61..db46cae31e9e 100644
--- a/pkgs/applications/misc/ttyper/default.nix
+++ b/pkgs/applications/misc/ttyper/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ttyper";
-  version = "1.4.0";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "max-niederman";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-kMJcZ9U2pUXFza66fpK07IHbRc5ZQ49+bytgty94o/s=";
+    hash = "sha256-IvAx65b2rGsMdDUhRxTx8cyqnG7oxC+MseCFIJil1e0=";
   };
 
-  cargoHash = "sha256-pmPT8GREXKun5uyGx+b6IATp/cKziZTL7YcYwKEo/NU=";
+  cargoHash = "sha256-o3J2bEAV5NnWKFadJdSGTqUS8K2qpBKPQz6xAbfLtg4=";
 
   meta = with lib; {
     description = "Terminal-based typing test";
diff --git a/pkgs/applications/misc/tuba/default.nix b/pkgs/applications/misc/tuba/default.nix
index 6ce4ed4be7b5..9c70ab85ae03 100644
--- a/pkgs/applications/misc/tuba/default.nix
+++ b/pkgs/applications/misc/tuba/default.nix
@@ -27,12 +27,12 @@
 
 stdenv.mkDerivation rec {
   pname = "tuba";
-  version = "0.6.1";
+  version = "0.6.3";
   src = fetchFromGitHub {
     owner = "GeopJr";
     repo = "Tuba";
     rev = "v${version}";
-    hash = "sha256-Tt2g7xwXf/o/ip5RgUCXclL9omWa/pRglkDMoEGn1AM=";
+    hash = "sha256-AdUXKiTMC/0R4RI9I9Y/x0mNwhtUEIBke4Mm9lu9CX8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/tui-journal/default.nix b/pkgs/applications/misc/tui-journal/default.nix
index 9eb97da95ffa..639c46b9bd37 100644
--- a/pkgs/applications/misc/tui-journal/default.nix
+++ b/pkgs/applications/misc/tui-journal/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "tui-journal";
-  version = "0.6.0";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "AmmarAbouZor";
     repo = "tui-journal";
     rev = "v${version}";
-    hash = "sha256-0qedRXjuISJst6cZ7rwz/4a935XsBMSzGN8JrzBKjeQ=";
+    hash = "sha256-qHNB+jRLQoiHPuTblpCHg2+6e5j8W6YPsuygRlTidtE=";
   };
 
-  cargoHash = "sha256-d79NTaW0zs8g62EKqiphWEdgYEnLeRk4NFog0rivr3s=";
+  cargoHash = "sha256-T+fXSca1u9+c305yuKOF+soxnSZ1YbBs57wco5TLpQw=";
 
   nativeBuildInputs = [
     pkg-config
@@ -36,7 +36,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "Your journal app if you live in a terminl";
+    description = "Your journal app if you live in a terminal";
     homepage = "https://github.com/AmmarAbouZor/tui-journal";
     changelog = "https://github.com/AmmarAbouZor/tui-journal/blob/${src.rev}/CHANGELOG.ron";
     license = licenses.mit;
diff --git a/pkgs/applications/misc/udiskie/default.nix b/pkgs/applications/misc/udiskie/default.nix
index 277aba5c8074..94ea64d3792b 100644
--- a/pkgs/applications/misc/udiskie/default.nix
+++ b/pkgs/applications/misc/udiskie/default.nix
@@ -10,11 +10,13 @@
 , python3
 , udisks2
 , wrapGAppsHook
+, testers
+, udiskie
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "udiskie";
-  version = "2.5.1";
+  version = "2.5.2";
 
   pyproject = true;
 
@@ -22,7 +24,7 @@ python3.pkgs.buildPythonApplication rec {
     owner = "coldfix";
     repo = "udiskie";
     rev = "v${version}";
-    hash = "sha256-bmpofyW5IBRmVlzHP9YRlI/JNnnamKfF9jCG85G0wBc=";
+    hash = "sha256-r9ppuWYY3e2thsfFh4ooOgfqNvmCVw7fS0SpJCJcysQ=";
   };
 
   patches = [
@@ -78,6 +80,10 @@ python3.pkgs.buildPythonApplication rec {
     pytestCheckHook
   ];
 
+  passthru.tests.version = testers.testVersion {
+    package = udiskie;
+  };
+
   meta = with lib; {
     homepage = "https://github.com/coldfix/udiskie";
     changelog = "https://github.com/coldfix/udiskie/blob/${src.rev}/CHANGES.rst";
diff --git a/pkgs/applications/misc/variety/default.nix b/pkgs/applications/misc/variety/default.nix
index a5a2085fbf34..cf0272f075e2 100644
--- a/pkgs/applications/misc/variety/default.nix
+++ b/pkgs/applications/misc/variety/default.nix
@@ -21,13 +21,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "variety";
-  version = "0.8.10";
+  version = "0.8.12";
 
   src = fetchFromGitHub {
     owner = "varietywalls";
     repo = "variety";
     rev = "refs/tags/${version}";
-    hash = "sha256-Uln0uoaEZgV9FN3HEBTeFOD7d6RkAQLgQZw7bcgu26A=";
+    hash = "sha256-FjnhV7vzRPVDCgUNK8CHo3arKXuwe+3xH/5AxCVgeIY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/visidata/default.nix b/pkgs/applications/misc/visidata/default.nix
index 8d0e9236181a..2e7189dc484b 100644
--- a/pkgs/applications/misc/visidata/default.nix
+++ b/pkgs/applications/misc/visidata/default.nix
@@ -45,13 +45,13 @@
 }:
 buildPythonApplication rec {
   pname = "visidata";
-  version = "3.0.1";
+  version = "3.0.2";
 
   src = fetchFromGitHub {
     owner = "saulpw";
     repo = "visidata";
     rev = "v${version}";
-    hash = "sha256-3/ACuUPj0XjbWuA8/iQQAMhLYAv5Lc/5AyyKmqjhBmc=";
+    hash = "sha256-gplrkrFTIP6TLvk1YazD5roDzsPvDtOXLlTOmTio52s=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/misc/vym/default.nix b/pkgs/applications/misc/vym/default.nix
index 306d9995ae38..4815a7bc10af 100644
--- a/pkgs/applications/misc/vym/default.nix
+++ b/pkgs/applications/misc/vym/default.nix
@@ -1,7 +1,7 @@
 { lib
 , stdenv
-, fetchFromGitHub
 , cmake
+, fetchFromGitHub
 , pkg-config
 , qtbase
 , qtscript
@@ -14,15 +14,17 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "vym";
-  version = "2.8.42";
+  version = "2.9.26";
 
   src = fetchFromGitHub {
     owner = "insilmaril";
     repo = "vym";
-    rev = "89f50bcba953c410caf459b0a4bfbd09018010b7"; # not tagged yet (why??)
-    hash = "sha256-xMXvc8gt3nfKWbU+WoS24wCUTGDQRhG0Q9m7yDhY5/w=";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-5cHhv9GDjJvSqGJ+7fI0xaWCiXw/0WP0Bem/ZRV8Y7M=";
   };
 
+  outputs = [ "out" "man" ];
+
   patches = [
     (substituteAll {
       src = ./000-fix-zip-paths.diff;
@@ -43,11 +45,13 @@ stdenv.mkDerivation (finalAttrs: {
     qtsvg
   ];
 
+  strictDeps = true;
+
   qtWrapperArgs = [
     "--prefix PATH : ${lib.makeBinPath [ unzip zip ]}"
   ];
 
-  meta = with lib; {
+  meta = {
     homepage = "http://www.insilmaril.de/vym/";
     description = "A mind-mapping software";
     longDescription = ''
@@ -61,8 +65,8 @@ stdenv.mkDerivation (finalAttrs: {
       drawn by hand or any drawing software vym offers much more features to
       work with such maps.
     '';
-    license = licenses.gpl2Plus;
-    maintainers = [ maintainers.AndersonTorres ];
-    platforms = platforms.linux;
+    license = with lib.licenses; [ gpl2Plus ];
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.linux;
   };
 })
diff --git a/pkgs/applications/misc/wallust/default.nix b/pkgs/applications/misc/wallust/default.nix
index 03630e5b82b4..3e2fb300dd1e 100644
--- a/pkgs/applications/misc/wallust/default.nix
+++ b/pkgs/applications/misc/wallust/default.nix
@@ -6,7 +6,7 @@
 , makeWrapper
 }:
 let
-  version = "2.9.0";
+  version = "2.10.0";
 in
 rustPlatform.buildRustPackage {
   pname = "wallust";
@@ -17,10 +17,10 @@ rustPlatform.buildRustPackage {
     owner = "explosion-mental";
     repo = "wallust";
     rev = version;
-    hash = "sha256-AuZRt02bFr7GzI7qe4giGgjlXK/WX+gmF4+QwD0ChXk=";
+    hash = "sha256-0kPmr7/2uVncpCGVOeIkYlm2M0n9+ypVl7bQ9HnqLb4=";
   };
 
-  cargoHash = "sha256-O9w18ae83mgF3zjk0WUMeu16Ap7CF2ubuPnOqeCt4Nw=";
+  cargoHash = "sha256-p1NKEppBYLdCsTY7FHPzaGladLv5HqIVNJxSoFJOx50=";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/applications/misc/waypaper/default.nix b/pkgs/applications/misc/waypaper/default.nix
index b17e8b974e41..1b2ca4843461 100644
--- a/pkgs/applications/misc/waypaper/default.nix
+++ b/pkgs/applications/misc/waypaper/default.nix
@@ -8,13 +8,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "waypaper";
-  version = "1.9";
+  version = "2.1";
 
   src = fetchFromGitHub {
     owner = "anufrievroman";
     repo = "waypaper";
     rev = "refs/tags/${version}";
-    hash = "sha256-6hv+f2fbrbLodJIRHl5MYTkiZ51iZOAK42Vg73zSw/E=";
+    hash = "sha256-AIOrn5I0WX8S4iaK6mVEbdn1tQiED0JYA0GXDXJ6eNE=";
   };
 
   nativeBuildInputs = [
@@ -24,6 +24,9 @@ python3.pkgs.buildPythonApplication rec {
 
   propagatedBuildInputs = [
     python3.pkgs.pygobject3
+    python3.pkgs.platformdirs
+    python3.pkgs.importlib-metadata
+    python3.pkgs.pillow
     killall
   ];
 
diff --git a/pkgs/applications/misc/wmenu/default.nix b/pkgs/applications/misc/wmenu/default.nix
index d2715546b375..9d068bb61e68 100644
--- a/pkgs/applications/misc/wmenu/default.nix
+++ b/pkgs/applications/misc/wmenu/default.nix
@@ -15,7 +15,7 @@
 
 stdenv.mkDerivation rec {
   pname = "wmenu";
-  version = "0.1.4";
+  version = "0.1.6";
 
   strictDeps = true;
 
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     owner = "~adnano";
     repo = "wmenu";
     rev = version;
-    hash = "sha256-aB23wi8kLBKAvQv2UPsfqVMCjakdsM6AzH8LgGv3HPs=";
+    hash = "sha256-Xsnf7T39up6E5kzV37sM9j3PpA2eqxItbGt+tOfjsjE=";
   };
 
   nativeBuildInputs = [ pkg-config meson ninja ];
diff --git a/pkgs/applications/misc/wordnet/default.nix b/pkgs/applications/misc/wordnet/default.nix
index 88cc16ae7645..fccd7585e41e 100644
--- a/pkgs/applications/misc/wordnet/default.nix
+++ b/pkgs/applications/misc/wordnet/default.nix
@@ -18,6 +18,9 @@ stdenv.mkDerivation rec {
     sed "13i#define USE_INTERP_RESULT 1" -i src/stubs.c
   '';
 
+  # Fails the build on clang-16 and on upcoming gcc-14.
+  env.NIX_CFLAGS_COMPILE = "-Wno-error=implicit-int";
+
   # Needs the path to `tclConfig.sh' and `tkConfig.sh'.
   configureFlags = [
     "--with-tcl=${tcl}/lib"
diff --git a/pkgs/applications/misc/xcruiser/default.nix b/pkgs/applications/misc/xcruiser/default.nix
index 7e3a391eb5bb..8144a66fb2ff 100644
--- a/pkgs/applications/misc/xcruiser/default.nix
+++ b/pkgs/applications/misc/xcruiser/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, gccmakedep, imake, libXt, libXaw, libXpm, libXext }:
+{ lib, stdenv, fetchurl, gccmakedep, imake, libXt, libXaw, libXpm, libXext, copyDesktopItems, makeDesktopItem }:
 
 stdenv.mkDerivation rec {
   pname = "xcruiser";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1r8whva38xizqdh7jmn6wcmfmsndc67pkw22wzfzr6rq0vf6hywi";
   };
 
-  nativeBuildInputs = [ gccmakedep imake ];
+  nativeBuildInputs = [ gccmakedep imake copyDesktopItems ];
   buildInputs = [ libXt libXaw libXpm libXext ];
 
   makeFlags = [
@@ -19,6 +19,16 @@ stdenv.mkDerivation rec {
     "XAPPLOADDIR=${placeholder "out"}/etc/X11/app-defaults"
   ];
 
+  desktopItems = [
+    (makeDesktopItem {
+      name = "XCruiser";
+      exec = "xcruiser";
+      desktopName = "XCruiser";
+      comment = "filesystem visualization utility";
+      categories = [ "Utility" ];
+    })
+  ];
+
   meta = with lib; {
     description = "Filesystem visualization utility";
     longDescription = ''
diff --git a/pkgs/applications/misc/yubioath-flutter/default.nix b/pkgs/applications/misc/yubioath-flutter/default.nix
index e3acf6030680..ce228abdbb22 100644
--- a/pkgs/applications/misc/yubioath-flutter/default.nix
+++ b/pkgs/applications/misc/yubioath-flutter/default.nix
@@ -1,5 +1,4 @@
 { lib
-, writeText
 , flutter
 , python3
 , fetchFromGitHub
@@ -14,13 +13,13 @@
 
 flutter.buildFlutterApplication rec {
   pname = "yubioath-flutter";
-  version = "6.2.0";
+  version = "6.3.1";
 
   src = fetchFromGitHub {
     owner = "Yubico";
     repo = "yubioath-flutter";
     rev = version;
-    hash = "sha256-NgzijuvyWNl9sFQzq1Jzk1povF8c/rKuVyVKeve+Vic=";
+    hash = "sha256-XgRIX2Iv5niJw2NSBPwM0K4uF5sPj9c+Xj4oHtAQSbU=";
   };
 
   passthru.helper = python3.pkgs.callPackage ./helper.nix { inherit src version meta; };
@@ -29,9 +28,6 @@ flutter.buildFlutterApplication rec {
 
   postPatch = ''
     rm -f pubspec.lock
-    ln -s "${writeText "${pname}-overrides.yaml" (builtins.toJSON {
-      dependency_overrides.intl = "^0.18.1";
-    })}" pubspec_overrides.yaml
 
     substituteInPlace linux/CMakeLists.txt \
       --replace "../build/linux/helper" "${passthru.helper}/libexec/helper"
@@ -60,16 +56,17 @@ flutter.buildFlutterApplication rec {
     # Symlink binary.
     ln -sf "$out/app/authenticator" "$out/bin/yubioath-flutter"
 
-    # Needed for QR scanning to work.
-    wrapProgram "$out/bin/yubioath-flutter" \
-      --prefix PATH : ${lib.makeBinPath [ gnome.gnome-screenshot ]}
-
     # Set the correct path to the binary in desktop file.
     substituteInPlace "$out/share/applications/com.yubico.authenticator.desktop" \
       --replace "@EXEC_PATH/authenticator" "$out/bin/yubioath-flutter" \
       --replace "@EXEC_PATH/linux_support/com.yubico.yubioath.png" "$out/share/icons/com.yubico.yubioath.png"
   '';
 
+  # Needed for QR scanning to work
+  extraWrapProgramArgs = ''
+    --prefix PATH : ${lib.makeBinPath [ gnome.gnome-screenshot ]}
+  '';
+
   nativeBuildInputs = [
     makeWrapper
     removeReferencesTo
diff --git a/pkgs/applications/misc/yubioath-flutter/helper.nix b/pkgs/applications/misc/yubioath-flutter/helper.nix
index 7f6bb6095dbe..2fe6bd7904d7 100644
--- a/pkgs/applications/misc/yubioath-flutter/helper.nix
+++ b/pkgs/applications/misc/yubioath-flutter/helper.nix
@@ -1,12 +1,10 @@
 { buildPythonApplication
-, python3
-, poetry-core
 , yubikey-manager
-, fido2
 , mss
 , zxing-cpp
 , pillow
-, cryptography
+, poetry-core
+, pythonRelaxDepsHook
 
 , src
 , version
@@ -17,11 +15,13 @@ buildPythonApplication {
   pname = "yubioath-flutter-helper";
   inherit src version meta;
 
+  pyproject = true;
+
   sourceRoot = "${src.name}/helper";
-  format = "pyproject";
 
   nativeBuildInputs = [
-    python3.pkgs.pythonRelaxDepsHook
+    poetry-core
+    pythonRelaxDepsHook
   ];
 
   pythonRelaxDeps = true;
@@ -39,12 +39,9 @@ buildPythonApplication {
   '';
 
   propagatedBuildInputs = [
-    poetry-core
     yubikey-manager
-    fido2
     mss
     zxing-cpp
     pillow
-    cryptography
   ];
 }
diff --git a/pkgs/applications/misc/yubioath-flutter/pubspec.lock.json b/pkgs/applications/misc/yubioath-flutter/pubspec.lock.json
index 16b4a9f744f1..a1973fa9a752 100644
--- a/pkgs/applications/misc/yubioath-flutter/pubspec.lock.json
+++ b/pkgs/applications/misc/yubioath-flutter/pubspec.lock.json
@@ -11,7 +11,7 @@
       "version": "64.0.0"
     },
     "analyzer": {
-      "dependency": "transitive",
+      "dependency": "direct dev",
       "description": {
         "name": "analyzer",
         "sha256": "69f54f967773f6c26c7dcb13e93d7ccee8b17a641689da39e878d5cf13b06893",
@@ -20,18 +20,28 @@
       "source": "hosted",
       "version": "6.2.0"
     },
+    "analyzer_plugin": {
+      "dependency": "direct dev",
+      "description": {
+        "name": "analyzer_plugin",
+        "sha256": "9661b30b13a685efaee9f02e5d01ed9f2b423bd889d28a304d02d704aee69161",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.11.3"
+    },
     "archive": {
       "dependency": "direct main",
       "description": {
         "name": "archive",
-        "sha256": "0c8368c9b3f0abbc193b9d6133649a614204b528982bebc7026372d61677ce3a",
+        "sha256": "22600aa1e926be775fa5fe7e6894e7fb3df9efda8891c73f70fb3262399a432d",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.3.7"
+      "version": "3.4.10"
     },
     "args": {
-      "dependency": "transitive",
+      "dependency": "direct main",
       "description": {
         "name": "args",
         "sha256": "eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596",
@@ -50,6 +60,16 @@
       "source": "hosted",
       "version": "2.11.0"
     },
+    "base32": {
+      "dependency": "direct main",
+      "description": {
+        "name": "base32",
+        "sha256": "ddad4ebfedf93d4500818ed8e61443b734ffe7cf8a45c668c9b34ef6adde02e2",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.1.3"
+    },
     "boolean_selector": {
       "dependency": "transitive",
       "description": {
@@ -84,41 +104,41 @@
       "dependency": "transitive",
       "description": {
         "name": "build_daemon",
-        "sha256": "5f02d73eb2ba16483e693f80bee4f088563a820e47d1027d4cdfe62b5bb43e65",
+        "sha256": "0343061a33da9c5810b2d6cee51945127d8f4c060b7fbdd9d54917f0a3feaaa1",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "4.0.0"
+      "version": "4.0.1"
     },
     "build_resolvers": {
       "dependency": "transitive",
       "description": {
         "name": "build_resolvers",
-        "sha256": "6c4dd11d05d056e76320b828a1db0fc01ccd376922526f8e9d6c796a5adbac20",
+        "sha256": "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.2.1"
+      "version": "2.4.2"
     },
     "build_runner": {
       "dependency": "direct dev",
       "description": {
         "name": "build_runner",
-        "sha256": "10c6bcdbf9d049a0b666702cf1cee4ddfdc38f02a19d35ae392863b47519848b",
+        "sha256": "581bacf68f89ec8792f5e5a0b2c4decd1c948e97ce659dc783688c8a88fbec21",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.4.6"
+      "version": "2.4.8"
     },
     "build_runner_core": {
       "dependency": "transitive",
       "description": {
         "name": "build_runner_core",
-        "sha256": "6d6ee4276b1c5f34f21fdf39425202712d2be82019983d52f351c94aafbc2c41",
+        "sha256": "c9e32d21dd6626b5c163d48b037ce906bbe428bc23ab77bcd77bb21e593b6185",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "7.2.10"
+      "version": "7.2.11"
     },
     "built_collection": {
       "dependency": "transitive",
@@ -134,11 +154,11 @@
       "dependency": "transitive",
       "description": {
         "name": "built_value",
-        "sha256": "ff627b645b28fb8bdb69e645f910c2458fd6b65f6585c3a53e0626024897dedf",
+        "sha256": "c9aabae0718ec394e5bc3c7272e6bb0dc0b32201a08fe185ec1d8401d3e39309",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "8.6.2"
+      "version": "8.8.1"
     },
     "characters": {
       "dependency": "transitive",
@@ -160,6 +180,26 @@
       "source": "hosted",
       "version": "2.0.3"
     },
+    "ci": {
+      "dependency": "transitive",
+      "description": {
+        "name": "ci",
+        "sha256": "145d095ce05cddac4d797a158bc4cf3b6016d1fe63d8c3d2fbd7212590adca13",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.1.0"
+    },
+    "cli_util": {
+      "dependency": "transitive",
+      "description": {
+        "name": "cli_util",
+        "sha256": "c05b7406fdabc7a49a3929d4af76bcaccbbffcbcdcf185b082e1ae07da323d19",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.4.1"
+    },
     "clock": {
       "dependency": "transitive",
       "description": {
@@ -174,24 +214,24 @@
       "dependency": "transitive",
       "description": {
         "name": "code_builder",
-        "sha256": "4ad01d6e56db961d29661561effde45e519939fdaeb46c351275b182eac70189",
+        "sha256": "f692079e25e7869c14132d39f223f8eec9830eb76131925143b2129c4bb01b37",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "4.5.0"
+      "version": "4.10.0"
     },
     "collection": {
       "dependency": "direct main",
       "description": {
         "name": "collection",
-        "sha256": "f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687",
+        "sha256": "ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.17.2"
+      "version": "1.18.0"
     },
     "convert": {
-      "dependency": "transitive",
+      "dependency": "direct main",
       "description": {
         "name": "convert",
         "sha256": "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592",
@@ -204,11 +244,11 @@
       "dependency": "transitive",
       "description": {
         "name": "cross_file",
-        "sha256": "0b0036e8cccbfbe0555fd83c1d31a6f30b77a96b598b35a5d36dd41f718695e9",
+        "sha256": "fedaadfa3a6996f75211d835aaeb8fede285dae94262485698afd832371b9a5e",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.3.3+4"
+      "version": "0.3.3+8"
     },
     "crypto": {
       "dependency": "direct main",
@@ -220,25 +260,55 @@
       "source": "hosted",
       "version": "3.0.3"
     },
+    "custom_lint": {
+      "dependency": "direct dev",
+      "description": {
+        "name": "custom_lint",
+        "sha256": "dfb893ff17c83cf08676c6b64df11d3e53d80590978d7c1fb242afff3ba6dedb",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.5.8"
+    },
+    "custom_lint_builder": {
+      "dependency": "direct dev",
+      "description": {
+        "name": "custom_lint_builder",
+        "sha256": "8df6634b38a36a6c6cb74a9c0eb02e9ba0b0ab89b29e38e6daa86e8ed2c6288d",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.5.8"
+    },
+    "custom_lint_core": {
+      "dependency": "transitive",
+      "description": {
+        "name": "custom_lint_core",
+        "sha256": "2b235be098d157e244f18ea905a15a18c16a205e30553888fac6544bbf52f03f",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.5.8"
+    },
     "dart_style": {
       "dependency": "transitive",
       "description": {
         "name": "dart_style",
-        "sha256": "1efa911ca7086affd35f463ca2fc1799584fb6aa89883cf0af8e3664d6a02d55",
+        "sha256": "40ae61a5d43feea6d24bd22c0537a6629db858963b99b4bc1c3db80676f32368",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.3.2"
+      "version": "2.3.4"
     },
     "desktop_drop": {
       "dependency": "direct main",
       "description": {
         "name": "desktop_drop",
-        "sha256": "ebba9c9cb0b54385998a977d741cc06fd8324878c08d5a36e9da61cd56b04cc6",
+        "sha256": "d55a010fe46c8e8fcff4ea4b451a9ff84a162217bdb3b2a0aa1479776205e15d",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.4.3"
+      "version": "0.4.4"
     },
     "fake_async": {
       "dependency": "transitive",
@@ -274,11 +344,11 @@
       "dependency": "direct main",
       "description": {
         "name": "file_picker",
-        "sha256": "bdfa035a974a0c080576c4c8ed01cdf9d1b406a04c7daa05443ef0383a97bedc",
+        "sha256": "4e42aacde3b993c5947467ab640882c56947d9d27342a5b6f2895b23956954a6",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "5.3.4"
+      "version": "6.1.1"
     },
     "fixnum": {
       "dependency": "transitive",
@@ -306,11 +376,11 @@
       "dependency": "direct dev",
       "description": {
         "name": "flutter_lints",
-        "sha256": "2118df84ef0c3ca93f96123a616ae8540879991b8b57af2f81b76a7ada49b2a4",
+        "sha256": "e2a421b7e59244faef694ba7b30562e489c2b489866e505074eb005cd7060db7",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.0.2"
+      "version": "3.0.1"
     },
     "flutter_localizations": {
       "dependency": "direct main",
@@ -322,21 +392,21 @@
       "dependency": "transitive",
       "description": {
         "name": "flutter_plugin_android_lifecycle",
-        "sha256": "950e77c2bbe1692bc0874fc7fb491b96a4dc340457f4ea1641443d0a6c1ea360",
+        "sha256": "b068ffc46f82a55844acfa4fdbb61fad72fa2aef0905548419d97f0f95c456da",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.0.15"
+      "version": "2.0.17"
     },
     "flutter_riverpod": {
       "dependency": "direct main",
       "description": {
         "name": "flutter_riverpod",
-        "sha256": "b3c3a8a9714b7f88dd2a41e1efbc47f76d620b06ab427c62ae7bc82298cd7dbb",
+        "sha256": "da9591d1f8d5881628ccd5c25c40e74fc3eef50ba45e40c3905a06e1712412d5",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.3.2"
+      "version": "2.4.9"
     },
     "flutter_test": {
       "dependency": "direct dev",
@@ -354,11 +424,11 @@
       "dependency": "direct dev",
       "description": {
         "name": "freezed",
-        "sha256": "83462cfc33dc9680533a7f3a4a6ab60aa94f287db5f4ee6511248c22833c497f",
+        "sha256": "6c5031daae12c7072b3a87eff98983076434b4889ef2a44384d0cae3f82372ba",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.4.2"
+      "version": "2.4.6"
     },
     "freezed_annotation": {
       "dependency": "direct main",
@@ -406,6 +476,16 @@
       "source": "hosted",
       "version": "2.3.1"
     },
+    "hotreloader": {
+      "dependency": "transitive",
+      "description": {
+        "name": "hotreloader",
+        "sha256": "94ee21a60ea2836500799f3af035dc3212b1562027f1e0031c14e087f0231449",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "4.1.0"
+    },
     "http_multi_server": {
       "dependency": "transitive",
       "description": {
@@ -443,7 +523,7 @@
       "version": "0.18.1"
     },
     "io": {
-      "dependency": "transitive",
+      "dependency": "direct main",
       "description": {
         "name": "io",
         "sha256": "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e",
@@ -456,11 +536,11 @@
       "dependency": "transitive",
       "description": {
         "name": "js",
-        "sha256": "f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3",
+        "sha256": "4186c61b32f99e60f011f7160e32c89a758ae9b1d0c6d28e2c02ef0382300e2b",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.6.7"
+      "version": "0.7.0"
     },
     "json_annotation": {
       "dependency": "direct main",
@@ -482,15 +562,24 @@
       "source": "hosted",
       "version": "6.7.1"
     },
+    "lint": {
+      "dependency": "direct dev",
+      "description": {
+        "path": "lint",
+        "relative": true
+      },
+      "source": "path",
+      "version": "1.0.0"
+    },
     "lints": {
       "dependency": "transitive",
       "description": {
         "name": "lints",
-        "sha256": "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452",
+        "sha256": "cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.1.1"
+      "version": "3.0.0"
     },
     "local_notifier": {
       "dependency": "direct main",
@@ -546,11 +635,11 @@
       "dependency": "transitive",
       "description": {
         "name": "meta",
-        "sha256": "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3",
+        "sha256": "a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.9.1"
+      "version": "1.10.0"
     },
     "mime": {
       "dependency": "transitive",
@@ -596,101 +685,101 @@
       "dependency": "direct main",
       "description": {
         "name": "path_provider",
-        "sha256": "909b84830485dbcd0308edf6f7368bc8fd76afa26a270420f34cabea2a6467a0",
+        "sha256": "b27217933eeeba8ff24845c34003b003b2b22151de3c908d0e679e8fe1aa078b",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.1.0"
+      "version": "2.1.2"
     },
     "path_provider_android": {
       "dependency": "transitive",
       "description": {
         "name": "path_provider_android",
-        "sha256": "5d44fc3314d969b84816b569070d7ace0f1dea04bd94a83f74c4829615d22ad8",
+        "sha256": "477184d672607c0a3bf68fbbf601805f92ef79c82b64b4d6eb318cbca4c48668",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.1.0"
+      "version": "2.2.2"
     },
     "path_provider_foundation": {
       "dependency": "transitive",
       "description": {
         "name": "path_provider_foundation",
-        "sha256": "1b744d3d774e5a879bb76d6cd1ecee2ba2c6960c03b1020cd35212f6aa267ac5",
+        "sha256": "5a7999be66e000916500be4f15a3633ebceb8302719b47b9cc49ce924125350f",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.3.0"
+      "version": "2.3.2"
     },
     "path_provider_linux": {
       "dependency": "transitive",
       "description": {
         "name": "path_provider_linux",
-        "sha256": "ba2b77f0c52a33db09fc8caf85b12df691bf28d983e84cf87ff6d693cfa007b3",
+        "sha256": "f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.2.0"
+      "version": "2.2.1"
     },
     "path_provider_platform_interface": {
       "dependency": "transitive",
       "description": {
         "name": "path_provider_platform_interface",
-        "sha256": "bced5679c7df11190e1ddc35f3222c858f328fff85c3942e46e7f5589bf9eb84",
+        "sha256": "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.1.0"
+      "version": "2.1.2"
     },
     "path_provider_windows": {
       "dependency": "transitive",
       "description": {
         "name": "path_provider_windows",
-        "sha256": "ee0e0d164516b90ae1f970bdf29f726f1aa730d7cfc449ecc74c495378b705da",
+        "sha256": "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.2.0"
+      "version": "2.2.1"
     },
     "petitparser": {
       "dependency": "transitive",
       "description": {
         "name": "petitparser",
-        "sha256": "cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750",
+        "sha256": "c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "5.4.0"
+      "version": "6.0.2"
     },
     "platform": {
       "dependency": "transitive",
       "description": {
         "name": "platform",
-        "sha256": "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76",
+        "sha256": "ae68c7bfcd7383af3629daafb32fb4e8681c7154428da4febcff06200585f102",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.1.0"
+      "version": "3.1.2"
     },
     "plugin_platform_interface": {
       "dependency": "transitive",
       "description": {
         "name": "plugin_platform_interface",
-        "sha256": "43798d895c929056255600343db8f049921cbec94d31ec87f1dc5c16c01935dd",
+        "sha256": "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.1.5"
+      "version": "2.1.8"
     },
     "pointycastle": {
       "dependency": "transitive",
       "description": {
         "name": "pointycastle",
-        "sha256": "7c1e5f0d23c9016c5bbd8b1473d0d3fb3fc851b876046039509e18e0c7485f2c",
+        "sha256": "43ac87de6e10afabc85c445745a7b799e04de84cebaa4fd7bf55a5e1e9604d29",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.7.3"
+      "version": "3.7.4"
     },
     "pool": {
       "dependency": "transitive",
@@ -745,11 +834,21 @@
       "dependency": "transitive",
       "description": {
         "name": "riverpod",
-        "sha256": "b0fbf7927333c5c318f7e2c22c8b4fd2542ba294de0373e80ecdb34e0dcd8dc4",
+        "sha256": "942999ee48b899f8a46a860f1e13cee36f2f77609eb54c5b7a669bb20d550b11",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.3.2"
+      "version": "2.4.9"
+    },
+    "rxdart": {
+      "dependency": "transitive",
+      "description": {
+        "name": "rxdart",
+        "sha256": "0c7c0cedd93788d996e33041ffecda924cc54389199cde4e6a34b440f50044cb",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.27.7"
     },
     "screen_retriever": {
       "dependency": "direct main",
@@ -765,71 +864,71 @@
       "dependency": "direct main",
       "description": {
         "name": "shared_preferences",
-        "sha256": "0344316c947ffeb3a529eac929e1978fcd37c26be4e8468628bac399365a3ca1",
+        "sha256": "81429e4481e1ccfb51ede496e916348668fd0921627779233bd24cc3ff6abd02",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.2.0"
+      "version": "2.2.2"
     },
     "shared_preferences_android": {
       "dependency": "transitive",
       "description": {
         "name": "shared_preferences_android",
-        "sha256": "fe8401ec5b6dcd739a0fe9588802069e608c3fdbfd3c3c93e546cf2f90438076",
+        "sha256": "8568a389334b6e83415b6aae55378e158fbc2314e074983362d20c562780fb06",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.2.0"
+      "version": "2.2.1"
     },
     "shared_preferences_foundation": {
       "dependency": "transitive",
       "description": {
         "name": "shared_preferences_foundation",
-        "sha256": "d29753996d8eb8f7619a1f13df6ce65e34bc107bef6330739ed76f18b22310ef",
+        "sha256": "7708d83064f38060c7b39db12aefe449cb8cdc031d6062280087bc4cdb988f5c",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.3.3"
+      "version": "2.3.5"
     },
     "shared_preferences_linux": {
       "dependency": "transitive",
       "description": {
         "name": "shared_preferences_linux",
-        "sha256": "71d6806d1449b0a9d4e85e0c7a917771e672a3d5dc61149cc9fac871115018e1",
+        "sha256": "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.3.0"
+      "version": "2.3.2"
     },
     "shared_preferences_platform_interface": {
       "dependency": "transitive",
       "description": {
         "name": "shared_preferences_platform_interface",
-        "sha256": "23b052f17a25b90ff2b61aad4cc962154da76fb62848a9ce088efe30d7c50ab1",
+        "sha256": "22e2ecac9419b4246d7c22bfbbda589e3acf5c0351137d87dd2939d984d37c3b",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.3.0"
+      "version": "2.3.2"
     },
     "shared_preferences_web": {
       "dependency": "transitive",
       "description": {
         "name": "shared_preferences_web",
-        "sha256": "7347b194fb0bbeb4058e6a4e87ee70350b6b2b90f8ac5f8bd5b3a01548f6d33a",
+        "sha256": "7b15ffb9387ea3e237bb7a66b8a23d2147663d391cafc5c8f37b2e7b4bde5d21",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.2.0"
+      "version": "2.2.2"
     },
     "shared_preferences_windows": {
       "dependency": "transitive",
       "description": {
         "name": "shared_preferences_windows",
-        "sha256": "f95e6a43162bce43c9c3405f3eb6f39e5b5d11f65fab19196cf8225e2777624d",
+        "sha256": "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.3.0"
+      "version": "2.3.2"
     },
     "shelf": {
       "dependency": "transitive",
@@ -871,11 +970,11 @@
       "dependency": "transitive",
       "description": {
         "name": "source_gen",
-        "sha256": "fc0da689e5302edb6177fdd964efcb7f58912f43c28c2047a808f5bfff643d16",
+        "sha256": "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.4.0"
+      "version": "1.5.0"
     },
     "source_helper": {
       "dependency": "transitive",
@@ -901,31 +1000,31 @@
       "dependency": "transitive",
       "description": {
         "name": "stack_trace",
-        "sha256": "c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5",
+        "sha256": "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.11.0"
+      "version": "1.11.1"
     },
     "state_notifier": {
       "dependency": "transitive",
       "description": {
         "name": "state_notifier",
-        "sha256": "8fe42610f179b843b12371e40db58c9444f8757f8b69d181c97e50787caed289",
+        "sha256": "b8677376aa54f2d7c58280d5a007f9e8774f1968d1fb1c096adcb4792fba29bb",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.7.2+1"
+      "version": "1.0.0"
     },
     "stream_channel": {
       "dependency": "transitive",
       "description": {
         "name": "stream_channel",
-        "sha256": "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8",
+        "sha256": "ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.1.1"
+      "version": "2.1.2"
     },
     "stream_transform": {
       "dependency": "transitive",
@@ -971,11 +1070,20 @@
       "dependency": "transitive",
       "description": {
         "name": "test_api",
-        "sha256": "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8",
+        "sha256": "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.6.0"
+      "version": "0.6.1"
+    },
+    "test_res": {
+      "dependency": "direct dev",
+      "description": {
+        "path": "integration_test/test_res",
+        "relative": true
+      },
+      "source": "path",
+      "version": "0.0.0"
     },
     "timing": {
       "dependency": "transitive",
@@ -991,11 +1099,11 @@
       "dependency": "direct main",
       "description": {
         "name": "tray_manager",
-        "sha256": "b1975a05e0c6999e983cf9a58a6a098318c896040ccebac5398a3cc9e43b9c69",
+        "sha256": "4ab709d70a4374af172f8c39e018db33a4271265549c6fc9d269a65e5f4b0225",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.2.0"
+      "version": "0.2.1"
     },
     "typed_data": {
       "dependency": "transitive",
@@ -1011,81 +1119,81 @@
       "dependency": "direct main",
       "description": {
         "name": "url_launcher",
-        "sha256": "781bd58a1eb16069412365c98597726cd8810ae27435f04b3b4d3a470bacd61e",
+        "sha256": "d25bb0ca00432a5e1ee40e69c36c85863addf7cc45e433769d61bed3fe81fd96",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "6.1.12"
+      "version": "6.2.3"
     },
     "url_launcher_android": {
       "dependency": "transitive",
       "description": {
         "name": "url_launcher_android",
-        "sha256": "3dd2388cc0c42912eee04434531a26a82512b9cb1827e0214430c9bcbddfe025",
+        "sha256": "507dc655b1d9cb5ebc756032eb785f114e415f91557b73bf60b7e201dfedeb2f",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "6.0.38"
+      "version": "6.2.2"
     },
     "url_launcher_ios": {
       "dependency": "transitive",
       "description": {
         "name": "url_launcher_ios",
-        "sha256": "9af7ea73259886b92199f9e42c116072f05ff9bea2dcb339ab935dfc957392c2",
+        "sha256": "75bb6fe3f60070407704282a2d295630cab232991eb52542b18347a8a941df03",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "6.1.4"
+      "version": "6.2.4"
     },
     "url_launcher_linux": {
       "dependency": "transitive",
       "description": {
         "name": "url_launcher_linux",
-        "sha256": "207f4ddda99b95b4d4868320a352d374b0b7e05eefad95a4a26f57da413443f5",
+        "sha256": "ab360eb661f8879369acac07b6bb3ff09d9471155357da8443fd5d3cf7363811",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.0.5"
+      "version": "3.1.1"
     },
     "url_launcher_macos": {
       "dependency": "transitive",
       "description": {
         "name": "url_launcher_macos",
-        "sha256": "1c4fdc0bfea61a70792ce97157e5cc17260f61abbe4f39354513f39ec6fd73b1",
+        "sha256": "b7244901ea3cf489c5335bdacda07264a6e960b1c1b1a9f91e4bc371d9e68234",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.0.6"
+      "version": "3.1.0"
     },
     "url_launcher_platform_interface": {
       "dependency": "transitive",
       "description": {
         "name": "url_launcher_platform_interface",
-        "sha256": "bfdfa402f1f3298637d71ca8ecfe840b4696698213d5346e9d12d4ab647ee2ea",
+        "sha256": "a932c3a8082e118f80a475ce692fde89dc20fddb24c57360b96bc56f7035de1f",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.1.3"
+      "version": "2.3.1"
     },
     "url_launcher_web": {
       "dependency": "transitive",
       "description": {
         "name": "url_launcher_web",
-        "sha256": "cc26720eefe98c1b71d85f9dc7ef0cada5132617046369d9dc296b3ecaa5cbb4",
+        "sha256": "fff0932192afeedf63cdd50ecbb1bc825d31aed259f02bb8dba0f3b729a5e88b",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.0.18"
+      "version": "2.2.3"
     },
     "url_launcher_windows": {
       "dependency": "transitive",
       "description": {
         "name": "url_launcher_windows",
-        "sha256": "7967065dd2b5fccc18c653b97958fdf839c5478c28e767c61ee879f4e7882422",
+        "sha256": "ecf9725510600aa2bb6d7ddabe16357691b6d2805f66216a97d1b881e21beff7",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.0.7"
+      "version": "3.1.1"
     },
     "uuid": {
       "dependency": "transitive",
@@ -1101,31 +1209,31 @@
       "dependency": "direct main",
       "description": {
         "name": "vector_graphics",
-        "sha256": "670f6e07aca990b4a2bcdc08a784193c4ccdd1932620244c3a86bb72a0eac67f",
+        "sha256": "18f6690295af52d081f6808f2f7c69f0eed6d7e23a71539d75f4aeb8f0062172",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.1.7"
+      "version": "1.1.9+2"
     },
     "vector_graphics_codec": {
       "dependency": "transitive",
       "description": {
         "name": "vector_graphics_codec",
-        "sha256": "7451721781d967db9933b63f5733b1c4533022c0ba373a01bdd79d1a5457f69f",
+        "sha256": "531d20465c10dfac7f5cd90b60bbe4dd9921f1ec4ca54c83ebb176dbacb7bb2d",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.1.7"
+      "version": "1.1.9+2"
     },
     "vector_graphics_compiler": {
       "dependency": "direct main",
       "description": {
         "name": "vector_graphics_compiler",
-        "sha256": "80a13c613c8bde758b1464a1755a7b3a8f2b6cec61fbf0f5a53c94c30f03ba2e",
+        "sha256": "03012b0a33775c5530576b70240308080e1d5050f0faf000118c20e6463bc0ad",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.1.7"
+      "version": "1.1.9+2"
     },
     "vector_math": {
       "dependency": "transitive",
@@ -1141,11 +1249,11 @@
       "dependency": "transitive",
       "description": {
         "name": "vm_service",
-        "sha256": "c620a6f783fa22436da68e42db7ebbf18b8c44b9a46ab911f666ff09ffd9153f",
+        "sha256": "c538be99af830f478718b51630ec1b6bee5e74e52c8a802d328d9e71d35d2583",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "11.7.1"
+      "version": "11.10.0"
     },
     "watcher": {
       "dependency": "transitive",
@@ -1161,11 +1269,11 @@
       "dependency": "transitive",
       "description": {
         "name": "web",
-        "sha256": "dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10",
+        "sha256": "afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.1.4-beta"
+      "version": "0.3.0"
     },
     "web_socket_channel": {
       "dependency": "transitive",
@@ -1191,41 +1299,41 @@
       "dependency": "transitive",
       "description": {
         "name": "win32",
-        "sha256": "9e82a402b7f3d518fb9c02d0e9ae45952df31b9bf34d77baf19da2de03fc2aaa",
+        "sha256": "464f5674532865248444b4c3daca12bd9bf2d7c47f759ce2617986e7229494a8",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "5.0.7"
+      "version": "5.2.0"
     },
     "window_manager": {
       "dependency": "direct main",
       "description": {
         "name": "window_manager",
-        "sha256": "6ee795be9124f90660ea9d05e581a466de19e1c89ee74fc4bf528f60c8600edd",
+        "sha256": "dcc865277f26a7dad263a47d0e405d77e21f12cb71f30333a52710a408690bd7",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.3.6"
+      "version": "0.3.7"
     },
     "xdg_directories": {
       "dependency": "transitive",
       "description": {
         "name": "xdg_directories",
-        "sha256": "f0c26453a2d47aa4c2570c6a033246a3fc62da2fe23c7ffdd0a7495086dc0247",
+        "sha256": "faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.0.2"
+      "version": "1.0.4"
     },
     "xml": {
       "dependency": "transitive",
       "description": {
         "name": "xml",
-        "sha256": "5bc72e1e45e941d825fd7468b9b4cc3b9327942649aeb6fc5cdbf135f0a86e84",
+        "sha256": "b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "6.3.0"
+      "version": "6.5.0"
     },
     "yaml": {
       "dependency": "transitive",
@@ -1239,7 +1347,7 @@
     }
   },
   "sdks": {
-    "dart": ">=3.1.0-185.0.dev <4.0.0",
-    "flutter": ">=3.10.0"
+    "dart": ">=3.2.0 <4.0.0",
+    "flutter": ">=3.16.0"
   }
 }
diff --git a/pkgs/applications/networking/blocky/default.nix b/pkgs/applications/networking/blocky/default.nix
index 3f299be447ad..6d2bf82cbb7f 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.22";
+  version = "0.23";
 
   src = fetchFromGitHub {
     owner = "0xERR0R";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-iU7fpTn8sPtglZfqLJ6fVYbHtYp0jqItSpJsvN4iKE8=";
+    hash = "sha256-IB5vi+nFXbV94YFtY2eMKTgzUgX8q8i8soSrso2zaD4=";
   };
 
   # needs network connection and fails at
   # https://github.com/0xERR0R/blocky/blob/development/resolver/upstream_resolver_test.go
   doCheck = false;
 
-  vendorHash = "sha256-PnqpDAbHCs1wFudYy+nyG+p/E6ig7ZuhbuU4CFFoiyk=";
+  vendorHash = "sha256-h1CkvI7M1kt2Ix3D8+gDl97CFElV+0/9Eram1burOaM=";
 
   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 153e208d6958..857acdd0fb82 100644
--- a/pkgs/applications/networking/browsers/brave/default.nix
+++ b/pkgs/applications/networking/browsers/brave/default.nix
@@ -15,6 +15,7 @@
 , gnome
 , gsettings-desktop-schemas
 , gtk3
+, gtk4
 , libX11
 , libXScrnSaver
 , libXcomposite
@@ -71,7 +72,7 @@ let
 
   deps = [
     alsa-lib at-spi2-atk at-spi2-core atk cairo cups dbus expat
-    fontconfig freetype gdk-pixbuf glib gtk3 libdrm libX11 libGL
+    fontconfig freetype gdk-pixbuf glib gtk3 gtk4 libdrm libX11 libGL
     libxkbcommon libXScrnSaver libXcomposite libXcursor libXdamage
     libXext libXfixes libXi libXrandr libXrender libxshmfence
     libXtst libuuid mesa nspr nss pango pipewire udev wayland
@@ -92,11 +93,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "brave";
-  version = "1.61.114";
+  version = "1.62.156";
 
   src = fetchurl {
     url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
-    hash = "sha256-AVL08Npg1nuvFJrd3rC2rCZeoLnPuQsgpvf2R623c6Y=";
+    hash = "sha256-U+MjXuF3rv5N4juKeIzUfnSNVLx1LGn+Ws+b5p252Qk=";
   };
 
   dontConfigure = true;
@@ -111,7 +112,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     # needed for GSETTINGS_SCHEMAS_PATH
-    glib gsettings-desktop-schemas gtk3
+    glib gsettings-desktop-schemas gtk3 gtk4
 
     # needed for XDG_ICON_DIRS
     gnome.adwaita-icon-theme
diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix
index 0798be9372e9..45fc2054c103 100644
--- a/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/pkgs/applications/networking/browsers/chromium/common.nix
@@ -236,6 +236,11 @@ let
         commit = "b9bef8e9555645fc91fab705bec697214a39dbc1";
         hash = "sha256-CJ1v/qc8+nwaHQR9xsx08EEcuVRbyBfCZCm/G7hRY+4=";
       })
+    ] ++ lib.optionals (chromiumVersionAtLeast "121") [
+      # M121 is the first version to require the new rust toolchain.
+      # Partial revert of https://github.com/chromium/chromium/commit/3687976b0c6d36cf4157419a24a39f6770098d61
+      # allowing us to use our rustc and our clang.
+      ./patches/chromium-121-rust.patch
     ];
 
     postPatch = ''
@@ -400,11 +405,15 @@ let
       # (ld.lld: error: unable to find library -l:libffi_pic.a):
       use_system_libffi = true;
       # Use nixpkgs Rust compiler instead of the one shipped by Chromium.
-      # We do intentionally not set rustc_version as nixpkgs will never do incremental
-      # rebuilds, thus leaving this empty is fine.
       rust_sysroot_absolute = "${buildPackages.rustc}";
-      # Building with rust is disabled for now - this matches the flags in other major distributions.
+      # Rust is enabled for M121+, see next section:
       enable_rust = false;
+    } // lib.optionalAttrs (chromiumVersionAtLeast "121") {
+      # M121 the first version to actually require a functioning rust toolchain
+      enable_rust = true;
+      # While we technically don't need the cache-invalidation rustc_version provides, rustc_version
+      # is still used in some scripts (e.g. build/rust/std/find_std_rlibs.py).
+      rustc_version = buildPackages.rustc.version;
     } // lib.optionalAttrs (!(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) {
       # https://www.mail-archive.com/v8-users@googlegroups.com/msg14528.html
       arm_control_flow_integrity = "none";
@@ -419,6 +428,13 @@ let
     } // lib.optionalAttrs ungoogled (lib.importTOML ./ungoogled-flags.toml)
     // (extraAttrs.gnFlags or {}));
 
+    # We cannot use chromiumVersionAtLeast in mkDerivation's env attrset due
+    # to infinite recursion when chromium.override is used (e.g. electron).
+    # To work aroud this, we use export in the preConfigure phase.
+    preConfigure = lib.optionalString (chromiumVersionAtLeast "121") ''
+      export RUSTC_BOOTSTRAP=1
+    '';
+
     configurePhase = ''
       runHook preConfigure
 
diff --git a/pkgs/applications/networking/browsers/chromium/patches/chromium-121-rust.patch b/pkgs/applications/networking/browsers/chromium/patches/chromium-121-rust.patch
new file mode 100644
index 000000000000..b5292c80858b
--- /dev/null
+++ b/pkgs/applications/networking/browsers/chromium/patches/chromium-121-rust.patch
@@ -0,0 +1,19 @@
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -1629,16 +1629,6 @@
+     configs += [ "//build/config/c++:runtime_library" ]
+   }
+
+-  # Rust and C++ both provide intrinsics for LLVM to call for math operations. We
+-  # want to use the C++ intrinsics, not the ones in the Rust compiler_builtins
+-  # library. The Rust symbols are marked as weak, so that they can be replaced by
+-  # the C++ symbols. This config ensures the C++ symbols exist and are strong in
+-  # order to cause that replacement to occur by explicitly linking in clang's
+-  # compiler-rt library.
+-  if (is_clang && toolchain_has_rust) {
+-    configs += [ "//build/config/clang:compiler_builtins" ]
+-  }
+-
+   # TODO(crbug.com/830987): Come up with a better name for is POSIX + Fuchsia
+   # configuration.
+   if (is_posix || is_fuchsia) {
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/pkgs/applications/networking/browsers/chromium/upstream-info.nix
index 9b65636f140b..22b384b27ba5 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.nix
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.nix
@@ -1,39 +1,39 @@
 {
   stable = {
     chromedriver = {
-      hash_darwin = "sha256-20OgLWrtw2QwyfoehoU7WjmH3IoOG4k3dAya5U5c7Qc=";
+      hash_darwin = "sha256-IDPdjq3FpLy6Y9xkR15mzbIal8wjeQzzWtWuZ4uKmzA=";
       hash_darwin_aarch64 =
-        "sha256-7aI141Ndtun3HglNKiW4+TTVgOVASnz98Rn1trgUgpo=";
-      hash_linux = "sha256-gJ6xXhW87URDvpFP88KgLKmwoFDlqMN1Vj6L+bDdbSc=";
-      version = "120.0.6099.109";
+        "sha256-3Mol45MrvrSqrpkKy2Trt0JFNfV4ekXTxEveUUGmJm4=";
+      hash_linux = "sha256-O8U4pZ76/N7q9bV7d0A+wlIqqaoz6WyfZQO4cIV2CIM=";
+      version = "121.0.6167.85";
     };
     deps = {
       gn = {
-        hash = "sha256-dwluGOfq05swtBM5gg4a6gY3IpFHaKKkD0TV1XW7c7k=";
-        rev = "e4702d7409069c4f12d45ea7b7f0890717ca3f4b";
+        hash = "sha256-eD3KORYYuIH+94+BgL+yFD5lTQFvj/MqPU9DPiHc98s=";
+        rev = "7367b0df0a0aa25440303998d54045bda73935a5";
         url = "https://gn.googlesource.com/gn";
-        version = "2023-10-23";
+        version = "2023-11-28";
       };
     };
-    hash = "sha256-HFQ7QAL4hcux3jmMmLYFNym3sfWR1o1hWV75bokID4I=";
-    hash_deb_amd64 = "sha256-dFllEHRYH3yAPg3uaaCzdpiZxSLENEwmtIb/gg53/ZU=";
-    version = "120.0.6099.224";
+    hash = "sha256-pZHa4YSJ4rK24f7dNUFeoyf6nDSQeY4MTR81YzPKCtQ=";
+    hash_deb_amd64 = "sha256-cMoYBCuOYzXS7OzFvvBfSL80hBY/PcEv9kWGSx3mCKw=";
+    version = "121.0.6167.139";
   };
   ungoogled-chromium = {
     deps = {
       gn = {
-        hash = "sha256-dwluGOfq05swtBM5gg4a6gY3IpFHaKKkD0TV1XW7c7k=";
-        rev = "e4702d7409069c4f12d45ea7b7f0890717ca3f4b";
+        hash = "sha256-eD3KORYYuIH+94+BgL+yFD5lTQFvj/MqPU9DPiHc98s=";
+        rev = "7367b0df0a0aa25440303998d54045bda73935a5";
         url = "https://gn.googlesource.com/gn";
-        version = "2023-10-23";
+        version = "2023-11-28";
       };
       ungoogled-patches = {
-        hash = "sha256-feMWYdxQSgn1ZTdnXTYHUBi3pV1fsaAcKjbf+qHzYnU=";
-        rev = "120.0.6099.224-1";
+        hash = "sha256-W13YPijmdakEJiUd9iKH3V9LcKvL796QlyTrAb+yLMQ=";
+        rev = "121.0.6167.139-1";
       };
     };
-    hash = "sha256-HFQ7QAL4hcux3jmMmLYFNym3sfWR1o1hWV75bokID4I=";
-    hash_deb_amd64 = "sha256-dFllEHRYH3yAPg3uaaCzdpiZxSLENEwmtIb/gg53/ZU=";
-    version = "120.0.6099.224";
+    hash = "sha256-pZHa4YSJ4rK24f7dNUFeoyf6nDSQeY4MTR81YzPKCtQ=";
+    hash_deb_amd64 = "sha256-cMoYBCuOYzXS7OzFvvBfSL80hBY/PcEv9kWGSx3mCKw=";
+    version = "121.0.6167.139";
   };
 }
diff --git a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
index 191f1b97860b..96fd2b090511 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
@@ -1,1025 +1,1025 @@
 {
-  version = "121.0.1";
+  version = "122.0";
   sources = [
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ach/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/ach/firefox-122.0.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha256 = "61e2e650ec64d7a57d666cb03ab9cfcfea5b4e666f3375a061bdacea7038144b";
+      sha256 = "bb0c03bf40765e5b2e553a7693766daba742d8a0d77da83aed70ce3ec9a17caa";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/af/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/af/firefox-122.0.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "9b0e01ee3214ca1876021269bbb063ab4b47edb3f584823f8550cf117690381b";
+      sha256 = "bc1fd09149a5ff00b7f44791a51fcb81f5853cfa38c33f120e4c96043e36cc5e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/an/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/an/firefox-122.0.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha256 = "d1a90391bcc72fb452a3391caeb7d17fb152db3ccd1400e0d343874849c1a7ad";
+      sha256 = "796c926a60c54a4be9b477588b93138d7103687f9ee8e735c8e55115f1356cdf";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ar/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/ar/firefox-122.0.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "27bbc7b43d76514a42b71ac4811223bcb2a6ddfd82d8dbdfe4e8b36f0d4000c3";
+      sha256 = "c6186ad7097820b9507f8e6067e06aa5dfebaa93b09879903a328c870eac0ab8";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ast/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/ast/firefox-122.0.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "774c8498b2c95bc01d69e35b68ef1c673b83caa92aa567f9811967d818df9fb0";
+      sha256 = "441d7e23cc0ed5f9a8d66da39ad985710823601755905d15c1dfea7cde49a75c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/az/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/az/firefox-122.0.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha256 = "b17401bb3f337257f67fe5816eafe1082eb8e0d7cf49ba19f9a50eb350645a00";
+      sha256 = "76689f98d93c6218da2a9c5a5b412572e68d7c2168632339af9df6061f15476a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/be/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/be/firefox-122.0.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "2fb32fc854e7ddec1bc3f3c26992fbd6484734b129d9e10155f88fb7e6dad313";
+      sha256 = "548528fa7b2815aa8042c0e1629cd3fe36b2c2a1e435092c6a93205fd50500fd";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/bg/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/bg/firefox-122.0.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "454ed5dad32c6727bac42b89904164d597ed4129abc38631619f95360cecd73a";
+      sha256 = "997fb10d98c39db1fa46f1df7f9d1ab38f606236f5a0303677649565ec09f538";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/bn/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/bn/firefox-122.0.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha256 = "4451bddc6cb18bdf57b27ab3c95863cf5cd7b1dfee599f45a2feab97ce527c79";
+      sha256 = "ef113efc582e0116e533263882740809f89575f4e6b0b4edc1710905c5b1ca12";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/br/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/br/firefox-122.0.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "764aed72d196188ce207d11573e311cba5cb90935cedf99eda21c4400f5c2df0";
+      sha256 = "dfd901e4ca5fc61ef44a8524ec8031973d66e2c63505990b28778b738ed03366";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/bs/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/bs/firefox-122.0.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha256 = "1200c51bd3be276e3ed681c246f5e2fae5907e0b20d9869363c4d19aa301f438";
+      sha256 = "8f8999994390668970ce257fd4f5bfd52fb862d48bca79cd4fbad3081a0188c0";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ca-valencia/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/ca-valencia/firefox-122.0.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha256 = "9734e5f3e4c220aa05031e0aa22ecba84dab1038213f986ab2c724136a8d483a";
+      sha256 = "d9631bb33c0c8c5de3d2e633c1f6ad6d428470e881bd5a1f1177669a81d7ec65";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ca/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/ca/firefox-122.0.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "7e2f880b51c36a01c8f8ee46a43c274aa42a4e41a81383b1a30af096d405f0ea";
+      sha256 = "736fea375d5c4ee7f6b92fb7321918fb1a09f875a3997bac17d42c685c734814";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/cak/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/cak/firefox-122.0.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "163946337a14850df357580c1ea3381eaa08e12619d91daca52b3bc35f704a10";
+      sha256 = "1164d466733aca74a5dcc612e9e961b9dd0593b7df37e626949df258e80a844c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/cs/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/cs/firefox-122.0.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "dba761165e351f8a59b17417462b610708fa35856ad7ccba6dd893e0b9de8405";
+      sha256 = "bf24977841d5d38612253c4588a76ec574e85ace20ccbb55a01bcd0061951067";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/cy/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/cy/firefox-122.0.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "9e3e8c97abae7f1c84277c4fb006674636af5761b9ae4f0e0dd6a733b1b33213";
+      sha256 = "bce32d8c38626c8d3dbeda506575e061ac8b20ef8db7c0a7ffcd7bbf2e7f87af";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/da/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/da/firefox-122.0.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "91e64816bc718cd82ddfe724933f2b46d23ee6dd6c1e6047b814a8f40caf0f84";
+      sha256 = "f9ecbb977e72298703d9c6161ce6aa7bdcd7a643d5c59e078ecfcd75796e07cb";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/de/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/de/firefox-122.0.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "a711c23f0267ae47a50d688cb3b3c9aef638dd0a2ba17eedbf872205a9c6c6e1";
+      sha256 = "aca434638bb6fd872c6aa3c8a934d80330d5d4975e9752d807b4cac17e2d98d7";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/dsb/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/dsb/firefox-122.0.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "15c3b378de1c7b10c2b5a9c9a79fc42d4e60d29abbe352b385f026214674b99c";
+      sha256 = "0cd047af08c7f44f826b9aeb8d7e08fd62a5598fd3acf4711e484668200c4336";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/el/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/el/firefox-122.0.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "b643aef6dbd89b9b8b6809d1bd208a4828dc07743577d9dfb2483ff6fce3915c";
+      sha256 = "e00042c3997c4c07af3d7e6ba1bf64f78a9d6df102e3aa46fc6159deb0815ff0";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/en-CA/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/en-CA/firefox-122.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "bc6d9e97eead59d634872a1e611e016127b27cd65bc17d68bbbdde15e3460b16";
+      sha256 = "b77986bb7f76b40920fc11144555f8a5c8d2b5ee3c1c0d1c30d5db986c82728a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/en-GB/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/en-GB/firefox-122.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "2b2e17b54255af3c4aa0c00bce68e289fc6973413d81e9ea324ee54bcb15865e";
+      sha256 = "be0feea0abb2c0cda665a1e0c179f6f50f41ad0ef4ce70a08d56c62f3ae9e1e0";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/en-US/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/en-US/firefox-122.0.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "0fb696e03ac444d6c973cf3ff9f9c123b369e2091c80b50753ff1b447f1a96c1";
+      sha256 = "0b36d796ba88d48000b0a3e43854a00556148221776879c91fae03735a0e5c21";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/eo/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/eo/firefox-122.0.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha256 = "0f20aabbb73b11d03c2f40e51cc22a428473893b8fda55091d4a902828dca6f1";
+      sha256 = "9d83057fa4c65b90590fbf9cbdf92d82acb9c62472b79e65995ad9553fadf65e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/es-AR/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/es-AR/firefox-122.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "27cb1fcf9d493630c9f051f973aecf1ae9ed35cf8c66d2ef38a92ea044d6c5de";
+      sha256 = "7fa85de5f0bde59eabc0b87de4debc8dedfa5a548076841268e02934c3e22ee9";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/es-CL/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/es-CL/firefox-122.0.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha256 = "59116e71c7a95cd092254321884215374d99292dca233eacc952128829f4e8f2";
+      sha256 = "43b424a1e5b20636f1fd0931254336b96ed0e45a6805aa373bea12264b64592f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/es-ES/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/es-ES/firefox-122.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "383d904e7007c60316b50257dd46cdcef48d633ea1deef46952f434d4ca84762";
+      sha256 = "8f5422259159b82e31c0a548bd2650aeffe0e8cf86d601a62aed75762f85030e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/es-MX/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/es-MX/firefox-122.0.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha256 = "ab39a7f2695842eff58f84d90552cb1b61a09ca7999eb19f608aee3990fb2a74";
+      sha256 = "f5313ba7b8c0804bba54adaf110252666314c776b2d4db7c5e1c1aedb8e0c8a1";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/et/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/et/firefox-122.0.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "b40e393c23e5a4fa972916b18c6e00312406021b0e9cd3e269ebf4b66978b50b";
+      sha256 = "6212585fe75e7f098c98cd1288c916b210e38d835929307438c1d46bfa0ee87b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/eu/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/eu/firefox-122.0.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "68a612b6b6b43f65c0b502ae4da029e449440641e6fc89c6aa6677731fff1faa";
+      sha256 = "98f364584d93ed2b67c971a22d7e11da81fb1bb7dda8b1800ad622b42bd7666d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/fa/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/fa/firefox-122.0.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "28ea60c4a4e134746e722c8c87d9f1afd20688db976e7fca47152b45d2da1547";
+      sha256 = "d22df3f341cb7891dfc90d191d3a3d5b7e6ad05cf5349cb6f5576f083ca03e2f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ff/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/ff/firefox-122.0.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha256 = "7323f510d9670b0f1ed8517fe38714c7fd0939ea6591d0eda859e26d7d5ad693";
+      sha256 = "357dec46bc93a987c4392c974e5a3743b6968c67d235530c13a33ae5868b43b7";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/fi/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/fi/firefox-122.0.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "ef9ecbad9124b15ee458249e4aba8218db809da41594efe8bbe466ff9d0352f7";
+      sha256 = "fb4f958de96d75d41ed3ea0b217c3d3cb3b03ad81f6a789135bb7b2326037543";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/fr/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/fr/firefox-122.0.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "fb5b1ab97096db60252c544eb872d281143342e83a0d5d0204a66f589b33a6cb";
+      sha256 = "c29bc39e9ef5bb16f55800c31f75f43616cc5cbdebfb0a77fe0782e81f259eed";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/fur/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/fur/firefox-122.0.tar.bz2";
       locale = "fur";
       arch = "linux-x86_64";
-      sha256 = "79bdc2c760cc50d75b239f1474a06992d2fbac79ed749a662aa5e34442c6662a";
+      sha256 = "fca04eb934b884a3a6422e223d9b97c2a1287637db7f0a97c1b638fae151a970";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/fy-NL/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/fy-NL/firefox-122.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "4bb989f96238ec0480ad15fff54108692dd0def067ebfdc595d466835d168195";
+      sha256 = "683111af5d43c9cb375c851c283db5c9de8bd79d8c2024d9b984fb40d0283072";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ga-IE/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/ga-IE/firefox-122.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "12a1be1b1a2296b6e70e86abaa3068e4d99c5ae815f328ee5f3b776229b05251";
+      sha256 = "aa27ff0f94558fb9593e9545e2a1700948c92af4603448a89153d672de035a34";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/gd/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/gd/firefox-122.0.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "e75972466d6e89c7590c18874d532c401eb2a0614aa1d8b8a54f4fae6c71c2bd";
+      sha256 = "b3e1c148a836555d86f5ee5e96d7a47a61ad7f4408dbefbc5985bb32e620e6ce";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/gl/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/gl/firefox-122.0.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "d62d9f48bd06283525878c5f7bca57d06fffc2d463247b894022eda741393110";
+      sha256 = "3c485a780c04eb6202677b2d28e6e4f75400a8b269590f07d3643be414887db6";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/gn/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/gn/firefox-122.0.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha256 = "c335f9ac58630ab4f43df2c540e42a97bd1de67ece223ef6e8c93dd5b0c32c8b";
+      sha256 = "557fa1516bf7923310b0de0fdf808cb7f7ce96f6549382a94d2b09e6e22a97df";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/gu-IN/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/gu-IN/firefox-122.0.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha256 = "32223f3968ebe177636135ab5ea21d5e2a9ffdbc6b4b9f38e7d62cfdca613455";
+      sha256 = "fd3f174a89d9e41a5eb45a6e79d70864e2635be24e353630071c990ee2285371";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/he/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/he/firefox-122.0.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "ccfa245850bfae3bd9bb50621bd9790be8150226486a8893ba49897c8a68e764";
+      sha256 = "8c3b6813d10ec8cdea0b3959afbe3463c3672d06bde54f588d271b359559dd92";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/hi-IN/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/hi-IN/firefox-122.0.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha256 = "9ee63d24017e36adb80883eaaefce80c90bb83b29ff7d4c05c293ef910e2fb2c";
+      sha256 = "c51d6de45469a5dad56a310023ca4436cce41e9a0be6a884a1be993d3ee7e203";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/hr/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/hr/firefox-122.0.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "9e82c557c45b9804365c1fda8281e2019ba00bf091ea07e3348ba1800d6a66a6";
+      sha256 = "70e5fb958c82e2b441e5b91f2470b08751e9d341335cfd974154a53999344ecf";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/hsb/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/hsb/firefox-122.0.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "8787af457d2984f2d109e5a3c2a3473b6e07e6b27047b8da3e7414394a44a5e1";
+      sha256 = "a3a8ac0c3f2f23d9f8e293c7e759045594120866dce5df2471e186ce3867c1f2";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/hu/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/hu/firefox-122.0.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "961aec03b5936eb13d34d893fed72e360e474418eb51cd809fdbb3b8a00480c9";
+      sha256 = "cf0468a1c5c53f989180a0ed86beb548230b1c25b9de8196a329c32726c2efdd";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/hy-AM/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/hy-AM/firefox-122.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "10a2420a05679ccd68c2c9d5a3024a66f40f1abcb462a669f66b9a422dcf58ab";
+      sha256 = "6cf5039a94634489a896679af07e224458d3a8bd6bdf18032788f91a48d4ca0c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ia/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/ia/firefox-122.0.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha256 = "e18c01ad46e2cc6bacc7d3498086768b1bf6287824db3291fe8d18bfb243d042";
+      sha256 = "0d6fa6a364dc38f168f695a43dd5b42c671c459aa203471d0465fdfcb382bda6";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/id/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/id/firefox-122.0.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "c2c5c36473f2546c28e9d757160729383965a4a55938a910a613f54bfcc94a6d";
+      sha256 = "29c0c76d27b7dea36a443b807ab68df3bf1013b86465f87d396c2a71ee0b8a70";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/is/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/is/firefox-122.0.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "3f9f0621a2fa055a5b52d294c27319c2a5c278b9ac56ce1440095bb2620f1d82";
+      sha256 = "b191cd12b939023feabfd10486380580e34dbe14aee0ba6e1e6db792855e5619";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/it/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/it/firefox-122.0.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "eda0e937d6dde858db88143243ca01ea2d73adf04f98ac72dd4710c4ecbc10ba";
+      sha256 = "688bce209564a16f91420fb0e99979aa566c144affa224ac1b9385687cb0b748";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ja/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/ja/firefox-122.0.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "c33096a2b4f3b9079eace0030f01eea4e4a8fdd915e89b63be6c1e56c88e13fb";
+      sha256 = "e79d54301dce43bdc2335b477a19fb76e9f5fadcf3635b0b74e7e65327f2c2d5";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ka/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/ka/firefox-122.0.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "27361ee4fdb6b922b32a4678c5a4d3485b933ef1407787ec7f73cbe90c97ac57";
+      sha256 = "4619466e8dfb174d1a983d296cb322cd237717c2ee792073dbaa72f5f9d4f2b4";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/kab/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/kab/firefox-122.0.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "a5ac5dec68c793018aa83ddd013ba65c2a1e19b982b7032597545e636f131061";
+      sha256 = "b52cb83f7a9f325d03d757c096e2448d833badcecc77d8016a0814e94c74adf0";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/kk/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/kk/firefox-122.0.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "46d1e71817a2f44f7c6b49c6e33afdfaad778b317a9a81d848ff8341724cc142";
+      sha256 = "d5cf68d5aade5afd1f155fd99071e1d43062a56c1b5a0e5f3005d238a2a1dc87";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/km/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/km/firefox-122.0.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha256 = "7b7c0df9becbd8592a0f0e63ded352f3c9f70f9677a8ab4778ae6cdb361b25db";
+      sha256 = "ab3c15916ca629202e4d036c97cbd2e0dd04ce72bf02195ef6c7f5b48ddab100";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/kn/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/kn/firefox-122.0.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha256 = "238f6164454b1b1f2fa1b22133641b2b085aba70eab7a789a403ec4dc62c8beb";
+      sha256 = "cd0126a083d49af80eb09a085ff8cf731498674c7d13c7fa8e38178daf76e6c2";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ko/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/ko/firefox-122.0.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "2934f15ba210a82f59487e7ed41fcb533e1a9abd951faa7801465a2e637685e9";
+      sha256 = "ddde97ae15b5333b6b78191e175f8045bd1ffdd744e4930d144c7ea8b3e888c7";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/lij/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/lij/firefox-122.0.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha256 = "b4ea1daa08300658d512309db0aa2abf13b5c0b4bd62c1a90cc42f20ea726cf3";
+      sha256 = "cdf61e8aaa1e420e222e64e41db5b7ed45215e0b93472a7d197384ae8de30507";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/lt/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/lt/firefox-122.0.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "e04c9c6fabdc59620b3cc506657d7d14a628b9bf7f207fc2d4d637c3e7908ae1";
+      sha256 = "ef64144d0a591e5707cf21283ce1ede94a2b1a07244a0fa4e1f592af6beeca15";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/lv/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/lv/firefox-122.0.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "7b9a7e3dbf229f1e89126a7bb82c855ed749c486cbcc6e0570b599fd78f03505";
+      sha256 = "2604ae939d1075b98f1fa064c4b001be54cfb342d6b40b0d960b1b347fee158a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/mk/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/mk/firefox-122.0.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha256 = "3baab70ac191f0bf60bbe373b6350510f4de0bd54acb911a8c5b58b3747a510b";
+      sha256 = "eb0cd5d62cc903f8b5c5469c6c9053b103c9e92ee597ef396130948fc27e1462";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/mr/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/mr/firefox-122.0.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha256 = "8ba9e54161df78db71664f3af57b5065119d51e3f03a8f5313f3851dbdd1e30b";
+      sha256 = "3669548d9665421ddb5af2b1baf1707e5da701a89dec3813a7912b085d1afab5";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ms/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/ms/firefox-122.0.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "45688a565ba45ea2150bf329996a802c3ed26243e4b4082eda45fcbc63d8aa6e";
+      sha256 = "11068c06792bbb53b0525d3d75f06fa6dc399db7bb03096ef3a9aa0aade14289";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/my/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/my/firefox-122.0.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha256 = "4848b526cd6eb3d3005005510d350a370e4bcbaf47e4ca071dd3dc70ac84ae56";
+      sha256 = "f4229d7a53134e686b7c61005544d25de6742220e044f89b86a4345d650b511c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/nb-NO/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/nb-NO/firefox-122.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "68eb317b69bc6496648e662aa9e4a38475df9be7b7bb86fd08d81ba11d9c6cff";
+      sha256 = "ccc37e4a92b444734317df226b678bfee522869b1850b62841633450a9bfee20";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ne-NP/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/ne-NP/firefox-122.0.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha256 = "f63b3c8971ae0a32670cd39fbce1b97b231a2b3a4e04a31f6bdb14f7c157ea43";
+      sha256 = "d48528020122b32d6952f519b88ad9d2da482a0cbf7dfcbde34e574c1779a207";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/nl/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/nl/firefox-122.0.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "40d72203eaa7cc0eefc9f1c0643ce754886179e05345242535c841c220dcf43a";
+      sha256 = "c8913e0a9b77eecec67786adcb019bbcfc9a218f9818a69d959cc8577b8f20cf";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/nn-NO/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/nn-NO/firefox-122.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "3aa806d419bbe4b004fa2977fc16d25c22d8640ae03966d2b7b32c34ca5f8405";
+      sha256 = "140795468318887e190e8b8bf464817ea319fff813fca92df89417ecfd414c0c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/oc/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/oc/firefox-122.0.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha256 = "b81878dcd02d0f9c9a3c5370447a530152867eb62ccf5d272e8214b87b4ea627";
+      sha256 = "5a4b759fb5e08023cd249d0584ed15eb5351a8dc327eb05c4d87d215b7594ba8";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/pa-IN/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/pa-IN/firefox-122.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "ff722c833602cfd6dcfc09a5e06cdbe16fcd815bd6bb8e560279cbce9eb105e6";
+      sha256 = "19d7b4613d4ac790921450ddf633b55f21d36306c65de104ba52e4b369aad0f9";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/pl/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/pl/firefox-122.0.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "5431ebf47bcc9bfadaca87859b34db3cb5f8a0cb530ab022b5a1f3e5b73b0740";
+      sha256 = "2baf15f6eeb5707e55ef3d4129b23cf3b596f4dfa9cedb1d11c7a30362b70b2c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/pt-BR/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/pt-BR/firefox-122.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "d7f66ada6d590ca36dc0ddb069c6a28f557925f6b3066ba513d8ef62e1c88f5c";
+      sha256 = "305cc2ba9ab3b276a2d309f326ae952b09d0b48500ad45c47b4dbbdd84f4df80";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/pt-PT/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/pt-PT/firefox-122.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "bee7aa8b091e4458bb50b3c275a3ae076d7d8a574291124fd514ef0cb6699011";
+      sha256 = "cae60f468704965b0c3352dd7acc0dd4e02c7cf3b3ede1fe7defdb266a7aabf1";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/rm/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/rm/firefox-122.0.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "754ae25293bc89a11a3dd12322fbaa14dca1572aa5703646c29975518ebff14f";
+      sha256 = "028a93ba226dd67b14341c23296c908702a8660672855fd9ffa9f8eec4e35943";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ro/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/ro/firefox-122.0.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "99827a51daa72f60861fd6df2737fe797015459ac92ea437e6092ccbc34af81d";
+      sha256 = "965c88713019ef207e210b9c43a17d5d35cd897c9357e0dd6ac6a97f95c53369";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ru/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/ru/firefox-122.0.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "881bf39e6a1da610fad0ba44a818c25ae3a86d425d62b76bb7ce5a63423925c4";
+      sha256 = "3781cee3ecf3f016f880220d5bacf81e286d9276e39ac22afd9e40555a463ea5";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/sat/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/sat/firefox-122.0.tar.bz2";
       locale = "sat";
       arch = "linux-x86_64";
-      sha256 = "a4179b39b6da0a339f55d84f03f24aac755e437227346773c9e433b4f39b6bda";
+      sha256 = "35c808531d34fb95441612e9461e34f501e4127b6eb44a6b8a2f8e462ef7dc6e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/sc/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/sc/firefox-122.0.tar.bz2";
       locale = "sc";
       arch = "linux-x86_64";
-      sha256 = "14f6683b0a204296d931af97162cdfd4b32309a074a5303c804b5bf36d8a6478";
+      sha256 = "a8816c31d608b64e63ba4ef686d5abbd4dba934128060f854022bdfc9f703c39";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/sco/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/sco/firefox-122.0.tar.bz2";
       locale = "sco";
       arch = "linux-x86_64";
-      sha256 = "ecbae7bc344363a1c79c3607825ba1bbfedb83db6bd1d1ea5367dfcdd3cac1fe";
+      sha256 = "10b0712f66555fee289b6f0d11cf7d32ed10b879d9037c0f147a02f3396d4922";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/si/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/si/firefox-122.0.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "810e93d08053997269a20d6bd96e7858190d7f5148c38759d711aa931539acdc";
+      sha256 = "aabcc75f94b28fe2d9f412a39da1426f1a83ae26cdfd68de2b6b9cd74a5c09aa";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/sk/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/sk/firefox-122.0.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "a226304b56a4e7ceeeb1e84f1e4fa9ea88404ff34cbd1f3170ff4a8d7d770a03";
+      sha256 = "4366d0accd52c927e8a3d75d97653830de5c469e2ced3b928de65a084aab205b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/sl/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/sl/firefox-122.0.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "e2854e43356a239d3db72954a0401190fd17350b3a9fc2b43106ef98cd0ecac8";
+      sha256 = "fd8722201c5b1a7fcfcf4cb1bceb9a2c3d7f17add7779e69c15dee1bb74704b4";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/son/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/son/firefox-122.0.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha256 = "07da2205fcc2c270bc1509d2815da75963b35fe150318ac9092cfe1d83fcf930";
+      sha256 = "4371b1ee224941d7d8586c7269fa8a1286baa830e052771d776856e8895cb75d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/sq/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/sq/firefox-122.0.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "193bfac5ac3b0341ad923a414730f12f1677a73b3ff705e32a836d062a296e6b";
+      sha256 = "37686b8accfa9b95748963bdca065df374891f93e2a1c41e048c6abaad761316";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/sr/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/sr/firefox-122.0.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "0b20e5cba5eba22a017c374ee9b32e81ab7220af22a4fc08ffc8ad182922fdeb";
+      sha256 = "b6d7134bfb0219d98ebabb6139c002e444b2315bc8bbf82006ce90ef8c9be265";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/sv-SE/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/sv-SE/firefox-122.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "7bcbb76745d1d8dc60aac40126ed9fa38481f4c939e675d2fc0a96ec4abe1240";
+      sha256 = "e6832b11fb4c965a344ef5705888c61ed4d292c33ea74439987b74c43db3ba31";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/szl/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/szl/firefox-122.0.tar.bz2";
       locale = "szl";
       arch = "linux-x86_64";
-      sha256 = "822ac7638da383072e0cfbd66f76ab483d8e29c53620146da9501583bf7b62d1";
+      sha256 = "3f5e1a07bd88fbb0e6a162595ddc1d54b4352a0e1229e7573bbff4ec3ac66c44";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ta/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/ta/firefox-122.0.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha256 = "cd9dd52e263d4e48b830172afecb46c9bc148e2bafb03330154e2dfa311aec39";
+      sha256 = "aa00eb6af5a0a58983c68a79e9a48659d5cae07647a8147556f959b23e9242c9";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/te/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/te/firefox-122.0.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha256 = "08a334b567ed6d686b721827eb8de56d770c4a5148ade529fa4c01b66db0bde7";
+      sha256 = "acd618453cb18228252d7d818d6a0c71223043668c4916a04ac58e1433dcae96";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/tg/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/tg/firefox-122.0.tar.bz2";
       locale = "tg";
       arch = "linux-x86_64";
-      sha256 = "71b5609765863bfa3037b397a363f1c563ca3a6676de32d331eab58e41b2868c";
+      sha256 = "7054fcf2a1371b29b84b96377518dd8c44316f1c8aaf160b4c5b0a4d86d058e8";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/th/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/th/firefox-122.0.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "bc25bf6710150d225cfaf7f7ee9d62b1753baaef8f6aa6738c3f0d54d7233501";
+      sha256 = "2bf08d225ff875ed2328dce2519434be36f5177d4a76f9c5c4509e3f9b0c966f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/tl/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/tl/firefox-122.0.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha256 = "c88f9ade5cbdb4b5b8dc45ecef2a8c7a78e45c22a5def3ca298b16666228f4c1";
+      sha256 = "7ad85c26c897264f99bfcaa6ed69a18a6cc42676cdbc470d02cb281c8b0530f0";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/tr/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/tr/firefox-122.0.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "1dc3f9175ddc1f6cf5460b940ac08e1d95f67e29dfb30dc4c8b1d883d5c7493a";
+      sha256 = "da94f9df9155cc6e550a49cc61492688e599a50b7e4421bd0ecaeaece8554781";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/trs/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/trs/firefox-122.0.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha256 = "442c8dd19b236ae1cee7c6c1de7fd77eec3c785c94fe6e3ce114631e966b097a";
+      sha256 = "c082244b7e813df67191d5c1621b73b8d9e5b571d6625df92d9cedc1864624ea";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/uk/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/uk/firefox-122.0.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "090a05ce028f014fd4c6eb721ebf2552ca529259dcdd8d663e85929002d779cd";
+      sha256 = "635e81988e47a00eb00919b008ea4c44c258050b612189de16ea29e62b40aaac";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ur/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/ur/firefox-122.0.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha256 = "c37a152a51aa6777128b34e645210bd965024f024584da510dc6438eda6e5ee3";
+      sha256 = "8a544ec98fdf2914144db0bf9591c18f5514637608b648211dcef1dc1e4169f0";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/uz/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/uz/firefox-122.0.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "aa511b68e1537c291eec462c403f55810b24af6567754b4000d69c084a377d0a";
+      sha256 = "ea95c1d014c8c63cdad1e23353bf369639714770e43bb7ef86a382ad222a2327";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/vi/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/vi/firefox-122.0.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "222b904551bb11d593067c02bf1128ab9635b88b94da5b6ccd5cf39165bf937a";
+      sha256 = "4477b528236321ecf7b6e08c7fd01f0889907787bc0ba1a79458955780ed5d6f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/xh/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/xh/firefox-122.0.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha256 = "df6013b77cbb1c75f68b6ca8554e261603d5f297e6d48c95ab4052382852c53f";
+      sha256 = "1e617fc2a8a30a5118547e5aefb76cfb2f90382b11cc6a8a6cceab32dcf57764";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/zh-CN/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/zh-CN/firefox-122.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "fbd1e851be504423e28b4bc97dd0d2d3bc6144cb0506598fc310a8d638f21dfe";
+      sha256 = "1068bb915bb6b9bf5ca8bafe4a43f825d873d07236f6d40234395995c54ce5c3";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/zh-TW/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-x86_64/zh-TW/firefox-122.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "39056ea8146ecb6a3df07b45717dd89b0a91276caa6f8e3a8d7224cc2f024dce";
+      sha256 = "2f2364d8e4423d51ddb35057fb48b4b60257de717aa0f6d659afa0b9cee519fd";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ach/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/ach/firefox-122.0.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha256 = "d0deafaa8615f94f4f01bfbd86289c9569ffc46385077918cfebe9f253a91de3";
+      sha256 = "bf2f1b1a070df21f72006ea3c8ae19a8f65ff128d1c72f51a67e4a451ab599de";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/af/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/af/firefox-122.0.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "f8534ee6db382698e3bba5aceccdea87b31ce779f7f02be4edc8a407f476d6b2";
+      sha256 = "41cf5de86e51a6fc9e1df5d2575092649b1b3ac70750e7a9bf6500c04ae140ec";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/an/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/an/firefox-122.0.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha256 = "af0e8d054eec725ce88d231bcafbec662fa857be974251f0891f1e2e14d1f4fe";
+      sha256 = "1c0850200cd28e58505282d146e277a51b5957cbdb19818ef613d269b1aaf414";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ar/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/ar/firefox-122.0.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "ba13fb5fe8eb6767445452c3b3e5f354fd146b508fe2dbbe7e516a23b2cb7e85";
+      sha256 = "ac2ca1545684cd590d15b01b436d822a9448a816f7c2d85875a84f6789b522ff";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ast/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/ast/firefox-122.0.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "d245f092ce639001ce8a4af5f2965018af79d55c88f3c11e6baf9645de3e0a22";
+      sha256 = "1b740544ec78fce4dd8be4b9401f9152256d358423ce35f19c2e5ff956095a08";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/az/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/az/firefox-122.0.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha256 = "79521e66a30f97407cd5b9278d69b801ae1ba76b5261e766fb4f0d59fd4c5160";
+      sha256 = "f105fab54e3ebf0c2b42f3f88731633647b53e0cdf70037a713886cb6c948806";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/be/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/be/firefox-122.0.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "69f50dcf627b6fa7cb9949f6475559a7e87b78dfe1319d480550353cb1261fa5";
+      sha256 = "ec1b5c0f353b72943c2317a86b4e297f330e0ffa50730c74bccab1e07fc395e4";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/bg/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/bg/firefox-122.0.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "7b968493db1ab2ab9c5ed2f447373713c0f6b955a511871f79ca671c4f2ccb20";
+      sha256 = "7e789444be58159f5c8e14a6cf8c6946717b08bcacf39dcfe93b78b85d4c4f45";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/bn/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/bn/firefox-122.0.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha256 = "c8c876ed33b8a206d442cadfa9445eb0ef48ec757498470cc36774ef0cb4689d";
+      sha256 = "28e8a7e462f9acc813487fa5e3b84b3a0837e68c0bc58735b1c5f45ca7c0c452";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/br/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/br/firefox-122.0.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "2a0eafb760287f371ea0f02563c0ae9b147e064b1e87392676078c21b5b24b53";
+      sha256 = "71937b4cdff939baa81464982f1bdb0d658948b96b1411aa22952ef98641cbf4";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/bs/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/bs/firefox-122.0.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha256 = "e1ed9ea2a5d6442b7e1988793ce4042ef80887808d391173b2d71955c72be302";
+      sha256 = "371a9d7bea4713e7382f52dc2e9ab5514229e86e830770dc5478f8275a1d5e4f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ca-valencia/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/ca-valencia/firefox-122.0.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha256 = "a1f924ff9d93a644695e724ce5ea018a6358de92e910f29e34971a89d8ed433c";
+      sha256 = "8f0e6eac071866fd5d7bae3b1d48a9f56d0a0183cefb0d1b4fcdcce9c166af49";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ca/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/ca/firefox-122.0.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "9a56ab4996fd06fb151d054b0b0ce9c590f3c05e1888f1c3bd97671a176c491a";
+      sha256 = "7d09db24488d192b1983721131de578d42735625a5910121a2a0925476b17ac2";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/cak/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/cak/firefox-122.0.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "cf61439403d911ae4a8ffbcb0f0453229d794234940c44971b4871b3f84543f9";
+      sha256 = "40f257f205e802d99ef74bfb9f58ec39ea051c84e7e76f09f3f76b919c6b64d9";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/cs/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/cs/firefox-122.0.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "ccd71584b1e8fae3c3ffc9d706a554113b4b654f6f37c05120b01ed834fd2180";
+      sha256 = "e1dc288c7b5e7b620dfa78973d2899a77961e897e5c033f63616909677dc0965";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/cy/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/cy/firefox-122.0.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "16c1a7e4299c2e13978490cf5aed6f51d29036eff78dd5fdb0ce0f86bc175225";
+      sha256 = "cdadf55601f6b06d2aaefb75230cd3034ac6e03aba1a21ff83ee2600f4e08756";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/da/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/da/firefox-122.0.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "00c4ee3fd31db0b72dae3395863d335340f7479f547e13fde2a8267c5a98f6d0";
+      sha256 = "7177b1e2586ef1e2be51a16819ad5824ac99afbff3ce53005433c9a0d3b4be49";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/de/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/de/firefox-122.0.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "6f0920684cb0013739d3e3d5d614094be3f6b830abbcd979a27cebfdd217ae9a";
+      sha256 = "df4532415f792b59ea91e3865f46b36a2bd31e2e009cf582278f7136be6bac3a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/dsb/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/dsb/firefox-122.0.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "32c4b421fb269b665a75bf6d97548ab17a0ca15f9f8be57f3c10f5d9303865ec";
+      sha256 = "51819e3740ad873f32826e63ebe4c829e8d9afce9e3a57dad538002488df8766";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/el/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/el/firefox-122.0.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "09ffe174de4fcd0f5676d4df4058333ce4c4bc3a46dc19d2a1a80ea26a497120";
+      sha256 = "576accdecde74e37f2a02f66cd793a2df9f4aa3546f02c542df71a8f0fe3251e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/en-CA/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/en-CA/firefox-122.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "d1178d1866c356bf1d8814b93993f0ca80a437065ed07715821c5190da58c2fd";
+      sha256 = "2ee107f5d5dca5844422e4dfa85b8b92326e5c874130ea262a3b01505f47bd6e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/en-GB/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/en-GB/firefox-122.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "334a7fc0f1c2669793761605cd406f959ec8a369cd968cf37e9cf7e7643beeab";
+      sha256 = "cddbf721381853960514f458b9d71380f4b8258e95dd53b75f944124599c5a07";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/en-US/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/en-US/firefox-122.0.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "8611a988558d0c6f0b1f4fc0d8fd1bed3e0e75be22b620d01868ce3991162f28";
+      sha256 = "d986a5321fd200f22cf6c0104725637712f107ab2b38f34ad61e6712aee3e4d8";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/eo/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/eo/firefox-122.0.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha256 = "4715ce7d3c79fb8db393d2f5867f754b5a94ecc43f395c95cd7ed2e6f9fcad09";
+      sha256 = "6eb58251300032b8946c05e4866572beda74043042326f9675c4dfced77a5ff6";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/es-AR/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/es-AR/firefox-122.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "24e4174e35b2c90ef8b7db9198593499d66535fb55cacb027e43b48dd22c8dbc";
+      sha256 = "1aa1487a3ee5250ad8f8cda01bf8fad8fab713107c850ebae81386246f099b92";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/es-CL/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/es-CL/firefox-122.0.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha256 = "733dd845dde345a112afc69d1a46cc937766607c0b43e3ed2a7613d8da4d6d82";
+      sha256 = "32fa4aab7815a04e13ed955787e14fe9519833147b2a03bf921a5a029d43198b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/es-ES/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/es-ES/firefox-122.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "9c8634b101e46c7cd47b89921be8fcc9a0783e17d07a4095062dd4138a64aad9";
+      sha256 = "f6aa82846e4116ff2ece3db9092c117d1cdc18abb7952504ae4b4e8bd73f1e3f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/es-MX/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/es-MX/firefox-122.0.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha256 = "afc95dcaa7673a929bedaf92073f46f8c57b08958e746613ed5bee137a910b6d";
+      sha256 = "22a540d78fd115ecbb7068b9b8e7a15a1824af9de4acda9e79ea197360337122";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/et/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/et/firefox-122.0.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "d18ca3c6e1825d4f62227866facc64158ece54fb58bdfa69163546163346ae34";
+      sha256 = "39e3417d4a3c3531f3593e464436a0483e637f6724a5aac0c45f5bbf06551c59";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/eu/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/eu/firefox-122.0.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "81b468c2ac8d58e325da92c949076d03d789950cd44dfadd302062dceeaed170";
+      sha256 = "6d8124d8855e7ce52dae997d02ae58234628eec8f069ee0174d9a95636b6d703";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/fa/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/fa/firefox-122.0.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "b2f1f4042474c6d6124ca23a1902f555fc37a73a0b92cf153a3a09113eae5b34";
+      sha256 = "3577705cccec3c3c27a5953c6a0f07d6c96bfa42f0b3decb71b61ac670f52ca2";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ff/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/ff/firefox-122.0.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha256 = "65a3aa3af61bcb27c292e6b67f69540339729398047c1ab5acbec8e84c30ca6a";
+      sha256 = "2a0244a6ac7cc6ac4c7bfe0b4f9bc627cbd8f16b7605dfc442d58adc5a825584";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/fi/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/fi/firefox-122.0.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "e11000164538358286326378f3a3652d8d3d2ad5cbf09eced8f20273df9dbd8b";
+      sha256 = "3bbbb8aa58b479fff4bff21a2aaf2be815c2fef9e7f3c0299d0cc1448a9c8c0a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/fr/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/fr/firefox-122.0.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "c88b42e49677e308b2590dde20ee4b475665c9fda176d01ea3a5071257f50f67";
+      sha256 = "5582654f0d5e847a06b645a59cbb51687e680522c927030628ac3e7f6a08d8e0";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/fur/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/fur/firefox-122.0.tar.bz2";
       locale = "fur";
       arch = "linux-i686";
-      sha256 = "54ee96d1c9836d984cefd04592e34ac371aee56ffe3109785e7a4cc9789fecf5";
+      sha256 = "6b320f3d5daffed93d31370399b72d5ef41fc7875e6cdc6c39bd0b6d6a94fd7c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/fy-NL/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/fy-NL/firefox-122.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "b21c518113ec026106406bd809975342e39aceee068fa85d9bd6879da2f79b07";
+      sha256 = "6de37790f16c17d75b9dd2a9c5445558fb9cf5dabcf6cd32fc957aef6970c940";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ga-IE/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/ga-IE/firefox-122.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "9e8e205c209117be055ccb8e0e751199ffa3743497ea8d41400b2cb5ddcb5a63";
+      sha256 = "a65f70d0cf29980868ab026d381473f5520bb92d16772fe77bc4ed678497ff6f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/gd/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/gd/firefox-122.0.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "319d8bfd6684d150a5eb0444ac9474bcb676ac30bcd56944957497292f8e5c62";
+      sha256 = "af8210456340b688ac4dad70e2f637a4b762b0380ea34c4610187b8aa1de8f4d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/gl/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/gl/firefox-122.0.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "9c4ba31fe522be326132047d46e397cf78daaf7b819cf9493cd20520a6dda323";
+      sha256 = "de5cb12b80e31aebd957767934af0a0db9d339d2f3f27dc8873d7d8141239150";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/gn/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/gn/firefox-122.0.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha256 = "ebeb87f88ac83d57a94bc2c51e3bf2d976fdc3a00d524c5de5957899875f5c07";
+      sha256 = "487fa3ddeeab0a50122cec0fc89672954c35ba561121c141114b2ef064d0436b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/gu-IN/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/gu-IN/firefox-122.0.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha256 = "98607151a1750a6c323bd98018829ede6097dbef26f76b4f04f64f33f6f93e5f";
+      sha256 = "7f2fccc12480bc85cd40e592850445d56b869507d01c2529f92136466d77eb8e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/he/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/he/firefox-122.0.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "8c8d2a79ca7b269e84e9f591891a4160a10780a26f3be9d5dd503f9fbabb9b6b";
+      sha256 = "0d267c96bd38921285eea68235a6acdd8eea338570c623a4daec26359c725065";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/hi-IN/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/hi-IN/firefox-122.0.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha256 = "cf30469e3363b0c04247772282c1a2b1769140b43ef3ee8a53ddc3f686f3bdee";
+      sha256 = "d39615f3e9453d863516e8b1a1bb9a5d2accf923d3c763742325a297d762d508";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/hr/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/hr/firefox-122.0.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "4ec0f21bc0cb261b730a6e8e466e37030cab7bc373aedf667c2555c673f81c48";
+      sha256 = "54eb053fe03b489ca35e85adccbfd311bbe228f045a71a28aab9b4d1993b96af";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/hsb/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/hsb/firefox-122.0.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "8a0bc7439a7b6c41aa03b95baf1a454655198d8d303eabebc45ddbfbc09d8443";
+      sha256 = "b2ebe6a414e9b0f11488eb6b689d53ce16101041ddfcbebebcfd671e74ca1904";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/hu/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/hu/firefox-122.0.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "0093b8f0de21d380bf86f6ddb14bd027c5f1feffb33e9802969a6c0046b715dd";
+      sha256 = "9b6a414b884525a2c3140566bd10d49fc24a62eb6a65c0c955ae1e1be0ed31e0";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/hy-AM/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/hy-AM/firefox-122.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "b94f12ada81cda5b890bd3400a67e0ba040860fea29777de19299428666788fb";
+      sha256 = "57b16cfd5b9a318434bcbfe90773e7746c5a3db7583802e170a10dbc8a158892";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ia/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/ia/firefox-122.0.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha256 = "96c87ae1aefeb5fb73b0c434524f6c02fb61bf98b20f3925d51b18ff1e1a03d7";
+      sha256 = "0618ba2f38d169c09f41eb7e3a86515e015610f6b0425c3b7ab07bb950152350";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/id/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/id/firefox-122.0.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "e193de3de704822a6444690c1d2f4d91c5529ef719c3174362d4d6e042f22d6c";
+      sha256 = "7101456a90d9d6902a5ce56eea04109bee12f1f5826e6720be05f9f6a9a740a1";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/is/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/is/firefox-122.0.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "8472dad2f691ed637c1ae81301ea142d3a1746e676fd9d2d44878da1a8f04e38";
+      sha256 = "d8ead0d98c11df6f4d63ddbd552db2c4ec37c6132bf908777aecbbe6936aae5e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/it/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/it/firefox-122.0.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "2ce0be7bf863a763ff36c70d290b10cb377b11357c07d271827730085eebcbfa";
+      sha256 = "68b5667a37d3e8b42cb28c55aabdf183df7af2a025096086a9d733955c0d94f5";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ja/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/ja/firefox-122.0.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "2cda46f9e362432d44946fb0829e60a93a3eeb4e6b1339c2af101b9277324990";
+      sha256 = "f6de03601c46f82da095bfa4ecf02119c2b6a530bf4c797bac0e84bf0dd4549d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ka/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/ka/firefox-122.0.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "62e2965a838cb71baacc3a615de4c0a32bfa0f926d4d21fb8e2fdf270a7d73a1";
+      sha256 = "e73d6bd6c1b6f2e20311218d25486f96655bd2b4f826a5820b9e76d682877b45";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/kab/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/kab/firefox-122.0.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "6f97ec12339a9b0430a1dc7f443c9b99a406683929b016d17a5fe85b04207427";
+      sha256 = "9efb6e625be4088251ea3e5cbcd56a1c9164b055e359775cc2352d58a04ed305";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/kk/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/kk/firefox-122.0.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "8d001526f29721d0ea2add4f81def84617f7dd05a6b9b21bc7d468146a79ccd0";
+      sha256 = "b89918b3d3cb50641beb5391a62c46056e6ab278a9829756f2bf4fa2aa6c0521";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/km/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/km/firefox-122.0.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha256 = "22c568c6be8d3ede76157ac15597e4a98ec75293f521ef94da4761f28e8d29c2";
+      sha256 = "67ca338b79e5ed74819bc51a07e33b604675ab6c44ce5961b0ba1728b9a43c7c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/kn/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/kn/firefox-122.0.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha256 = "86dcba2daed23052c4aaf54f383df41587bd551972df063e4903badfa76ad750";
+      sha256 = "6627b8320a6276a55b568dd1e0eb66dd1cc0cdba0a4befb0111795c43b3b4d2e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ko/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/ko/firefox-122.0.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "2fa667db03d7888858eca9cdcdc56c51c60818aa65bfbfa37b1bb2bffa1f49f1";
+      sha256 = "53dab7c6cf81731edeae3be49cdb17f752e1211ebeb104b0372e26180f6811a7";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/lij/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/lij/firefox-122.0.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha256 = "0ccd6bf746e4970175bd39a49999836ff3cdb802c57c59209656958084d8de60";
+      sha256 = "e2bd53a9b9e6444c049b4c5f0c032b922366f98f411d08e860dba022fa949491";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/lt/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/lt/firefox-122.0.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "ebd327ec7cb8074bbc553646ff205f4fbd6a68cf7900f57580c2c9d94c7ca29d";
+      sha256 = "34aaa20ca7376b126b84def8ae4f29d483c653929c24b73f64190c447272228d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/lv/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/lv/firefox-122.0.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "95d76ce938a0b15c424332b65fdb762a674a08aca7eee5b04fd5907317235389";
+      sha256 = "d7e008114a10a7eaeaf984025c518176647195695700c6ccc9a0bcac585753b0";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/mk/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/mk/firefox-122.0.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha256 = "b77683bc7e258ba8f5227438afb8a23b5daf1f05bf4da105cac374626d11b486";
+      sha256 = "8372330bfc52b6d33735250d2d7a49456f3f5209107fd3a1b913233b579e49da";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/mr/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/mr/firefox-122.0.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha256 = "a9447b5006d28228183e98e4edd4540ecd937236b84f36fac8e58cdd1f15eb7c";
+      sha256 = "758edf696dcfc25a2da431152b0af1216da5463ed92667ce81f34a08b720c4c4";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ms/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/ms/firefox-122.0.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "aa2759b33a4d02bb8d8e9d0a0d8ba35377ce0a79c1e67f915da2b5bf59afaa92";
+      sha256 = "f1a9de0bfcdc72f07b41a31697ba32fef9f78a763637ce043fade574dfeb3e36";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/my/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/my/firefox-122.0.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha256 = "82606d03aa86b70433db07c6023ae6110bf7f151bfce31afa9301a197d522ad5";
+      sha256 = "850902dd1f2d2c28ab5870a65e64656967006e20c7f702e539ea03f334dff986";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/nb-NO/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/nb-NO/firefox-122.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "c0d6f272eb21c78ed6cfc10d98e0d20f6ad8213998e01c119e49d74e36465861";
+      sha256 = "d49689490f5b60544e187a31049b975d2823700337acc9045364c964d7e39bc4";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ne-NP/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/ne-NP/firefox-122.0.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha256 = "06c87707482cc6d3a450d89a17128faacb8ffafee78a15c2a93a0f37b2055cae";
+      sha256 = "9aed3666974eb0ffb12fcc1b6b8c34dc08c217e7b63022e1e127acd8be9d5989";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/nl/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/nl/firefox-122.0.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "c0331e2d2d77ccd632fd98363a3eb353d118b1d0607ee1751b163c5ada28ac2f";
+      sha256 = "be81c6b63826ddf4f10bad10ff0c20732fd388bcf459fa460b8d2b5d898fa1f4";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/nn-NO/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/nn-NO/firefox-122.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "f138acc322322b5d9be91061f70e543a9435bc94aad4d3c4c6cb94220215c823";
+      sha256 = "503296da94916161cda2da72216ae8032723bea1119dd38e33e9763f36b771b4";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/oc/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/oc/firefox-122.0.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha256 = "724d8a0b5d0e8b44938f13705a6ab7689eb7cbd8e7fb29a0fc1c798f66431584";
+      sha256 = "ef2f5d9b9c977aadf00cba7a4dd87a289d3fe45efb6d151ed8ebb1c87aaeb391";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/pa-IN/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/pa-IN/firefox-122.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "cceff29fa2b5f1a78f65c4156c9c22ef38bc647dd264c5c43ddc22f3ca491e68";
+      sha256 = "d46105671d8c94a911c8fe3e30da6617f7c985cabc485fed1d8fd6f4db1a7e2c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/pl/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/pl/firefox-122.0.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "ce9fd590e338f9dd4fddd216123ec34bf4451a1e8caebadfea8224dbbf098261";
+      sha256 = "96658ac87abcc79757c338a46bd94f99efa8dc35d4c2c21ca9012cc8d0fa8f31";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/pt-BR/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/pt-BR/firefox-122.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "483ce8b9182ed5f2aafed6e3d277d31562803b5ec4dd432c892d2f1e82907fc6";
+      sha256 = "856f8a7fea1ae6be351b00ff7efef744d822c27fbb5dd6bbd0557038d68c5ff1";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/pt-PT/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/pt-PT/firefox-122.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "dbd5fe2066c25d41598b3d26e6b247aecc98a63666736d4d3e7534128313f4a2";
+      sha256 = "cec58e5b5862a76900bdbebbc340623f4d96d37df2cd25b34bad2fad71329e72";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/rm/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/rm/firefox-122.0.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "8a7f536b9099d57072ffa6a31407dd7a3c7f7c3dd5250b0dc0babf0cb2ac6957";
+      sha256 = "0cdfd054681d5f0dbe33be2cc3516dd2602d289682cdd74ad456cb0d8e63226b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ro/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/ro/firefox-122.0.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "f27400bdc54ee66cca10149b18f1debcd445a7e6f56373e3ba8a9dd9119c9844";
+      sha256 = "de54a0660b17163f36501c06557c372fe418429cf3681f41d1f5caa6470f8366";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ru/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/ru/firefox-122.0.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "3bc7f5f68b85fbae77dc2af246a5bb69894ada939418f033efb264843d276de1";
+      sha256 = "4f601bf1eeface322a473988302bcc945223f29411bec638a63baeafdb1036a8";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/sat/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/sat/firefox-122.0.tar.bz2";
       locale = "sat";
       arch = "linux-i686";
-      sha256 = "4abc03ab621d99fdba4fcefc1defc3371594be170aacbdb7b1f74630d0f63b96";
+      sha256 = "180485e54cee485325d6336de8194e5cb8294aa349507649731d5ed67d1d0dcd";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/sc/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/sc/firefox-122.0.tar.bz2";
       locale = "sc";
       arch = "linux-i686";
-      sha256 = "427ecd0a6c32c46b158dbef49176dd0e637bed303f8b21c59d2bfa27047bee76";
+      sha256 = "4ebc01d09eeb4e36bf6e44c37c3e3a3696fb7c061f4977d722c723c1ff55928e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/sco/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/sco/firefox-122.0.tar.bz2";
       locale = "sco";
       arch = "linux-i686";
-      sha256 = "708aa1bf4a9cafc1dc0231e4040a59c074b5a1047281c3aa46a6534c237ce7c1";
+      sha256 = "c88a5703ee9c4f1f5a2028096d8ca275c515c09c3de1b7c734ea25e97785f039";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/si/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/si/firefox-122.0.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "d21ffbb6a318bf87c50b78b664ab1c3827eaae90eb6f36dc29a344a1fef6cc3f";
+      sha256 = "34b3081d1f597e7cdaeb6235dd4fc6ac4436d182b24eeb8791d44018707cfd8c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/sk/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/sk/firefox-122.0.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "f894d457f50280817e0c360f07024853be68cbfc0b92997b254854ff7d7e1c7a";
+      sha256 = "1ed9e257abcac3b5b734e087e5809e58224c0a86f9c746b7d587c4143d3500be";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/sl/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/sl/firefox-122.0.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "e350bb8f25cd36ac9a84ab6461bf5bda68667c701de54581f4b5e33a528eda7a";
+      sha256 = "1f41c9802f550f257a9cb82bf801406fad941eeb2e9e1715aab7d1fc64c5ed2c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/son/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/son/firefox-122.0.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha256 = "afe90dfbf0c3d5fbd733d2916c7959504fd6c6ec79fa87839931cf82f87b0a76";
+      sha256 = "031a624d34adb8c1fde60f3c028d655d26969edc39f89fb601b62683b635f483";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/sq/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/sq/firefox-122.0.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "0a9e8752e0a04c182943e28676b6344745d777e5b682e5c28bb4f1e032797790";
+      sha256 = "39eb3b12bcfff71a887c76eb4c4771528604d41c568ee0ddb62f68e60c4f59c1";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/sr/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/sr/firefox-122.0.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "08836866ca46423a551d48d4b9881ca8596c2b4aef4a0038323abf40c203de72";
+      sha256 = "47b6800a4e306707047aed1b7a848651d5cebc6ff3abd95a1ba66df5ac398d15";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/sv-SE/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/sv-SE/firefox-122.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "28dd81c52b5b5c5bf7db8d29a47ccee72c4d297f11875cb92b3b35b0031bfc17";
+      sha256 = "086294e4e9e8d550989b968967e4eddaac15f0502f5d056900fbb26fc04d014b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/szl/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/szl/firefox-122.0.tar.bz2";
       locale = "szl";
       arch = "linux-i686";
-      sha256 = "85e4f4064d3024eec49bf94878e662c16f8a33854320d5c50d8a0fd48bf7c6bc";
+      sha256 = "a47e0340a7bde6d1dc1304bec824132ed28a1c63cd3d200efcc50f45c9bdd191";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ta/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/ta/firefox-122.0.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha256 = "8f90b39b4b418cfaff0167fa03afbe911ce1a0a512d85441af4a9e7372ff7165";
+      sha256 = "190097ef8f785e17e75fa94a5d788b66a34b5030990239f792b8faffb1af1955";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/te/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/te/firefox-122.0.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha256 = "45be535d8838f6b725d635d150feea2fb251cb65f6851f6c9d1af29eb077c554";
+      sha256 = "082fd32a1092a3209e515def9f7f31c6d2db37304828c39f00097957ac97c715";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/tg/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/tg/firefox-122.0.tar.bz2";
       locale = "tg";
       arch = "linux-i686";
-      sha256 = "b4e45161d0d8698fe6ff1ceaa155036ce61e9bd28fb7ce31f0dbf448281321b9";
+      sha256 = "19f0337818c5a5600ccf34b59b3b622cfe30500d0c2b79e56d687e14a34a13c0";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/th/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/th/firefox-122.0.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "4a32a0e86e9bb3a7f9cdbf1a971897c2cf45e0fd4dadcfbe8d6609e310c6dc6c";
+      sha256 = "0d316e29b5e557a554700837e9cd09a7abb40049fa587283bfaefd4ae34346cc";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/tl/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/tl/firefox-122.0.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha256 = "72983ac4f0f40ee4cd638d57f8db6ce99a87a27dbe627f9f95f8807c2309fbdf";
+      sha256 = "b5efd0502f84112eb9dccfddae3d32df34177e7ca6b5490a21a2ba73f401a703";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/tr/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/tr/firefox-122.0.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "7cbb94c9f1ab8152b185bb8c895276dfb4dfd4b560e0792c4d77da76da1a8c3f";
+      sha256 = "b1441ef089b5612080e7b4b7c29a7e37c3cbf3ecae2ec7cca63acbf9f1390fca";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/trs/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/trs/firefox-122.0.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha256 = "e9aec2bfdbc5ba15dafde1ea9ff209055454fbf2b997bd34ae82090e34cbc499";
+      sha256 = "b404c12813b158d51c9691905f6ff6464bcd97eb8147e5356b00498f2d334fbd";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/uk/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/uk/firefox-122.0.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "6691d918ee8d2255be1f6c90357c8c05a683d9feef11536de2faf7c9914c8d2f";
+      sha256 = "49922dd22c18a4d216a50961418db65c4d645c417fb7211c5ef216c0c344a99e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ur/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/ur/firefox-122.0.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha256 = "f07b18c0838f9ec477b065d38d76ae4f8ffbd5a77e8d0df5d51ed4712418c901";
+      sha256 = "e587054e130f8de5b6e2311595f79ac7e74420d1089163e1248601e70c33b3dc";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/uz/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/uz/firefox-122.0.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "4f5648887a4963e8eb57272e56fe7739845e882d627f779c79eecf3ab9344a74";
+      sha256 = "6ec00c8f9e2b854ebd8d162728aa4a2d84ca726d852f15138ee8e572a6fd6991";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/vi/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/vi/firefox-122.0.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "3097ab6528ce9190f6698917c7af4a8ac7ddced04279d0ae4b17dc7848b9d5ad";
+      sha256 = "2b2888f708a7a0ea16f1b4a0e6a211d1ec17ed87eb39379e4d1848da50583412";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/xh/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/xh/firefox-122.0.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha256 = "5bbbbd68182e235cc587b2f480ca71c62b3998b474bfbfc9418d02c24a69d500";
+      sha256 = "de2529fb6194bd0b132acd27d260ec7dac113f598945c60e121c2637ce5aeb16";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/zh-CN/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/zh-CN/firefox-122.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "b482323a818ad8f264a2713eb49cc1f92a179b711aa8710e4dbb246cb95a243a";
+      sha256 = "8a649732f74f41ca57c3d89c7a6c4078e97cf47ebf07ab1be07d582eb3a008a4";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/zh-TW/firefox-121.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/122.0/linux-i686/zh-TW/firefox-122.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "0dffab00201502d1fa6a90b61ba99302e16b4dc783800a191fffbb6f31350260";
+      sha256 = "83dd320e900c8de2d3555c0b94291b484c5e331047723820b37b8b9522380b6b";
     }
     ];
 }
diff --git a/pkgs/applications/networking/browsers/firefox/122.0-libvpx-mozbz1875201.patch b/pkgs/applications/networking/browsers/firefox/122.0-libvpx-mozbz1875201.patch
new file mode 100644
index 000000000000..4acf0fa6a7fc
--- /dev/null
+++ b/pkgs/applications/networking/browsers/firefox/122.0-libvpx-mozbz1875201.patch
@@ -0,0 +1,80 @@
+This patch is a rebase of https://bugzilla.mozilla.org/attachment.cgi?id=9377318
+on top of Firefox 122.0.
+
+Fixes: https://bugzilla.mozilla.org/show_bug.cgi?id=1875201
+
+diff --git a/third_party/libwebrtc/modules/video_coding/webrtc_libvpx_interface_gn/moz.build b/third_party/libwebrtc/modules/video_coding/webrtc_libvpx_interface_gn/moz.build
+index c5dabce8b0..e325905282 100644
+--- a/third_party/libwebrtc/modules/video_coding/webrtc_libvpx_interface_gn/moz.build
++++ b/third_party/libwebrtc/modules/video_coding/webrtc_libvpx_interface_gn/moz.build
+@@ -5,6 +5,8 @@
+ 
+   ### This moz.build was AUTOMATICALLY GENERATED from a GN config,  ###
+   ### DO NOT edit it by hand.                                       ###
++if not CONFIG["MOZ_SYSTEM_LIBVPX"]:
++    LOCAL_INCLUDES += [ "/media/libvpx/libvpx/" ]
+ 
+ COMPILE_FLAGS["OS_INCLUDES"] = []
+ AllowCompilerWarnings()
+@@ -25,7 +27,6 @@ LOCAL_INCLUDES += [
+     "!/ipc/ipdl/_ipdlheaders",
+     "!/third_party/libwebrtc/gen",
+     "/ipc/chromium/src",
+-    "/media/libvpx/libvpx/",
+     "/third_party/libwebrtc/",
+     "/third_party/libwebrtc/third_party/abseil-cpp/",
+     "/tools/profiler/public"
+diff --git a/third_party/libwebrtc/modules/video_coding/webrtc_vp8_gn/moz.build b/third_party/libwebrtc/modules/video_coding/webrtc_vp8_gn/moz.build
+index 77a6b3870b..d515bc0595 100644
+--- a/third_party/libwebrtc/modules/video_coding/webrtc_vp8_gn/moz.build
++++ b/third_party/libwebrtc/modules/video_coding/webrtc_vp8_gn/moz.build
+@@ -5,6 +5,8 @@
+ 
+   ### This moz.build was AUTOMATICALLY GENERATED from a GN config,  ###
+   ### DO NOT edit it by hand.                                       ###
++if not CONFIG["MOZ_SYSTEM_LIBVPX"]:
++    LOCAL_INCLUDES += [ "/media/libvpx/libvpx/" ]
+ 
+ COMPILE_FLAGS["OS_INCLUDES"] = []
+ AllowCompilerWarnings()
+@@ -25,7 +27,6 @@ LOCAL_INCLUDES += [
+     "!/ipc/ipdl/_ipdlheaders",
+     "!/third_party/libwebrtc/gen",
+     "/ipc/chromium/src",
+-    "/media/libvpx/libvpx/",
+     "/media/libyuv/",
+     "/media/libyuv/libyuv/include/",
+     "/third_party/libwebrtc/",
+diff --git a/third_party/libwebrtc/modules/video_coding/webrtc_vp9_gn/moz.build b/third_party/libwebrtc/modules/video_coding/webrtc_vp9_gn/moz.build
+index 4bece72807..5cc8d30e1a 100644
+--- a/third_party/libwebrtc/modules/video_coding/webrtc_vp9_gn/moz.build
++++ b/third_party/libwebrtc/modules/video_coding/webrtc_vp9_gn/moz.build
+@@ -5,6 +5,8 @@
+ 
+   ### This moz.build was AUTOMATICALLY GENERATED from a GN config,  ###
+   ### DO NOT edit it by hand.                                       ###
++if not CONFIG["MOZ_SYSTEM_LIBVPX"]:
++    LOCAL_INCLUDES += [ "/media/libvpx/libvpx/" ]
+ 
+ COMPILE_FLAGS["OS_INCLUDES"] = []
+ AllowCompilerWarnings()
+@@ -25,7 +27,6 @@ LOCAL_INCLUDES += [
+     "!/ipc/ipdl/_ipdlheaders",
+     "!/third_party/libwebrtc/gen",
+     "/ipc/chromium/src",
+-    "/media/libvpx/libvpx/",
+     "/media/libyuv/",
+     "/media/libyuv/libyuv/include/",
+     "/third_party/libwebrtc/",
+diff --git a/third_party/libwebrtc/moz.build b/third_party/libwebrtc/moz.build
+index 7baea55b7e..86d4f0f288 100644
+--- a/third_party/libwebrtc/moz.build
++++ b/third_party/libwebrtc/moz.build
+@@ -436,7 +436,6 @@ DIRS += [
+     "/third_party/libwebrtc/third_party/abseil-cpp/absl/types/span_gn",
+     "/third_party/libwebrtc/third_party/abseil-cpp/absl/types/variant_gn",
+     "/third_party/libwebrtc/third_party/abseil-cpp/absl/utility/utility_gn",
+-    "/third_party/libwebrtc/third_party/libvpx/libvpx_gn",
+     "/third_party/libwebrtc/third_party/libyuv/libyuv_gn",
+     "/third_party/libwebrtc/third_party/pffft/pffft_gn",
+     "/third_party/libwebrtc/third_party/rnnoise/rnn_vad_gn",
diff --git a/pkgs/applications/networking/browsers/firefox/common.nix b/pkgs/applications/networking/browsers/firefox/common.nix
index 4396d7e85d41..c7f323c69ef9 100644
--- a/pkgs/applications/networking/browsers/firefox/common.nix
+++ b/pkgs/applications/networking/browsers/firefox/common.nix
@@ -245,6 +245,9 @@ buildStdenv.mkDerivation {
       hash = "sha256-cWOyvjIPUU1tavPRqg61xJ53XE4EJTdsFzadfVxyTyM=";
     })
   ]
+  ++ lib.optionals (lib.versionAtLeast version "122" && lib.versionOlder version "122.0.1") [
+    ./122.0-libvpx-mozbz1875201.patch
+  ]
   ++ extraPatches;
 
   postPatch = ''
@@ -292,6 +295,9 @@ buildStdenv.mkDerivation {
     # Runs autoconf through ./mach configure in configurePhase
     configureScript="$(realpath ./mach) configure"
 
+    # Set reproducible build date; https://bugzilla.mozilla.org/show_bug.cgi?id=885777#c21
+    export MOZ_BUILD_DATE=$(head -n1 sourcestamp.txt)
+
     # Set predictable directories for build and state
     export MOZ_OBJDIR=$(pwd)/mozobj
     export MOZBUILD_STATE_PATH=$(pwd)/mozbuild
@@ -320,11 +326,9 @@ buildStdenv.mkDerivation {
           unset 'configureFlagsArray[i]'
         fi
       done
-      configureFlagsArray+=(
-        "--enable-profile-use=cross"
-        "--with-pgo-profile-path="$TMPDIR/merged.profdata""
-        "--with-pgo-jarlog="$TMPDIR/jarlog""
-      )
+      appendToVar configureFlags --enable-profile-use=cross
+      appendToVar configureFlags --with-pgo-profile-path=$TMPDIR/merged.profdata
+      appendToVar configureFlags --with-pgo-jarlog=$TMPDIR/jarlog
       ${lib.optionalString stdenv.hostPlatform.isMusl ''
         LDFLAGS="$OLD_LDFLAGS"
         unset OLD_LDFLAGS
diff --git a/pkgs/applications/networking/browsers/firefox/packages.nix b/pkgs/applications/networking/browsers/firefox/packages.nix
index 4972d29fe40d..688c9fe0e8ad 100644
--- a/pkgs/applications/networking/browsers/firefox/packages.nix
+++ b/pkgs/applications/networking/browsers/firefox/packages.nix
@@ -3,10 +3,10 @@
 {
   firefox = buildMozillaMach rec {
     pname = "firefox";
-    version = "121.0.1";
+    version = "122.0";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
-      sha512 = "7810850a922cb4a274ced6556e14256d3ff518a96f10a0f86d1f8e40daa0a8b1a5cfcc9cbf1391029d920944e94a9149951ee107a0e718a294954bb50b6ced2e";
+      sha512 = "619b735c16970207f3f8fb31dd2350a5e665a802c30501c89aee4817b8b0f7f466da93c66ab238e94967587e538e6858934b18164ff312dbdbfbc3b2bf8bd824";
     };
 
     extraPatches = [
@@ -94,11 +94,11 @@
 
   firefox-esr-115 = buildMozillaMach rec {
     pname = "firefox-esr-115";
-    version = "115.6.0esr";
+    version = "115.7.0esr";
     applicationName = "Mozilla Firefox ESR";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
-      sha512 = "9fe23b5f715e35b788d9c8fefe6b7be8785789b4ae6f5649b05a54221934101c6e1b9580319145f9bcaebfbd00fcc33e97afb63f7d57ba102a6b02c874d324af";
+      sha512 = "d468d8ef117d76e0660c5359c3becf0502354c61bdaaeb4137d86f52b50143abec2ac4578af69afa5670700b57efff1c7323ca23e3339a9eaaa888dee7e8e922";
     };
 
     meta = {
diff --git a/pkgs/applications/networking/browsers/floorp/default.nix b/pkgs/applications/networking/browsers/floorp/default.nix
index 9e2bba5b4807..099e9fcde4b6 100644
--- a/pkgs/applications/networking/browsers/floorp/default.nix
+++ b/pkgs/applications/networking/browsers/floorp/default.nix
@@ -7,19 +7,19 @@
 
 ((buildMozillaMach rec {
   pname = "floorp";
-  packageVersion = "11.7.1";
+  packageVersion = "11.9.0";
   applicationName = "Floorp";
   binaryName = "floorp";
 
   # Must match the contents of `browser/config/version.txt` in the source tree
-  version = "115.6.0";
+  version = "115.7.0";
 
   src = fetchFromGitHub {
     owner = "Floorp-Projects";
     repo = "Floorp";
     fetchSubmodules = true;
     rev = "v${packageVersion}";
-    hash = "sha256-1GxWqibUR10gz0TjQuCtFntlxoNkq4CY5Yt/4FcIDDQ=";
+    hash = "sha256-Mk/5bkaSLQYFFGhCSjVho8CUilZSYDGarnIt4Wg9/6g=";
   };
 
   extraConfigureFlags = [
diff --git a/pkgs/applications/networking/browsers/google-chrome/default.nix b/pkgs/applications/networking/browsers/google-chrome/default.nix
index cd770b18b71a..17b7e288f0a6 100644
--- a/pkgs/applications/networking/browsers/google-chrome/default.nix
+++ b/pkgs/applications/networking/browsers/google-chrome/default.nix
@@ -149,7 +149,7 @@ in stdenv.mkDerivation {
       --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
       --add-flags ${lib.escapeShellArg commandLineArgs}
 
-    for elf in $out/share/google/$appname/{chrome,chrome-sandbox,${crashpadHandlerBinary},nacl_helper}; do
+    for elf in $out/share/google/$appname/{chrome,chrome-sandbox,${crashpadHandlerBinary}}; do
       patchelf --set-rpath $rpath $elf
       patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $elf
     done
diff --git a/pkgs/applications/networking/browsers/librewolf/src.json b/pkgs/applications/networking/browsers/librewolf/src.json
index 3d242e750c70..357868b665fb 100644
--- a/pkgs/applications/networking/browsers/librewolf/src.json
+++ b/pkgs/applications/networking/browsers/librewolf/src.json
@@ -1,15 +1,15 @@
 {
-  "packageVersion": "121.0.1-1",
+  "packageVersion": "122.0-2",
   "source": {
-    "rev": "121.0.1-1",
-    "sha256": "15zcrl47w6ib00wai63kks5ykcpfh5wfa0ixxj62v06v50bnd78x"
+    "rev": "122.0-2",
+    "sha256": "139vqa0czhbsg8naz75pcf5d8dql30slwrn4l8hkr4r1s1mslyq1"
   },
   "settings": {
-    "rev": "41623492f2b6970972014f6ce196015d3d7f1b59",
-    "sha256": "0ayyyw44q0gh668bzlv6cfl7baa0818bnz83g53l5j2f10xd52by"
+    "rev": "fe568fa26d52fa917c89d735468a17b990a23e2c",
+    "sha256": "1gska84ib386a1021r1n54mb1a47bqn459v5n26g4wqx3xrma48n"
   },
   "firefox": {
-    "version": "121.0.1",
-    "sha512": "7810850a922cb4a274ced6556e14256d3ff518a96f10a0f86d1f8e40daa0a8b1a5cfcc9cbf1391029d920944e94a9149951ee107a0e718a294954bb50b6ced2e"
+    "version": "122.0",
+    "sha512": "619b735c16970207f3f8fb31dd2350a5e665a802c30501c89aee4817b8b0f7f466da93c66ab238e94967587e538e6858934b18164ff312dbdbfbc3b2bf8bd824"
   }
 }
diff --git a/pkgs/applications/networking/browsers/microsoft-edge/default.nix b/pkgs/applications/networking/browsers/microsoft-edge/default.nix
index d9dea8f312ec..3836453ee645 100644
--- a/pkgs/applications/networking/browsers/microsoft-edge/default.nix
+++ b/pkgs/applications/networking/browsers/microsoft-edge/default.nix
@@ -1,20 +1,20 @@
 {
   stable = import ./browser.nix {
     channel = "stable";
-    version = "120.0.2210.77";
+    version = "121.0.2277.83";
     revision = "1";
-    hash = "sha256-mSIx/aYutmA/hGycNapvm8/BnADtXA6NRlMmns+yM5k=";
+    hash = "sha256-WuDu44elNlkYZEtol+TZNpcRAkAq8HHATYCc9Or/bvU=";
   };
   beta = import ./browser.nix {
     channel = "beta";
-    version = "121.0.2277.4";
+    version = "121.0.2277.83";
     revision = "1";
-    hash = "sha256-Qn0H5JUMZUASqfaJfM1cpKj9E6XHjArvZ3jE+GpREOs=";
+    hash = "sha256-eW8Bpcjw1aY5lMqsGCJ3hORVLhzW8Fmaio+kpSOzPeU=";
   };
   dev = import ./browser.nix {
     channel = "dev";
-    version = "121.0.2277.4";
+    version = "122.0.2353.0";
     revision = "1";
-    hash = "sha256-41hOoZANy5hWrHAzxZGLX69apNMoAn7PiarWl6wicPA=";
+    hash = "sha256-llLaq13SU4ZpqhOYK0hy6ZD6amAqijStk8TIHX3gydQ=";
   };
 }
diff --git a/pkgs/applications/networking/browsers/mullvad-browser/default.nix b/pkgs/applications/networking/browsers/mullvad-browser/default.nix
index 3ab9e53b209c..8b1ddb91fcc6 100644
--- a/pkgs/applications/networking/browsers/mullvad-browser/default.nix
+++ b/pkgs/applications/networking/browsers/mullvad-browser/default.nix
@@ -90,7 +90,7 @@ let
       ++ lib.optionals mediaSupport [ ffmpeg ]
   );
 
-  version = "13.0.7";
+  version = "13.0.9";
 
   sources = {
     x86_64-linux = fetchurl {
@@ -102,7 +102,7 @@ let
         "https://tor.eff.org/dist/mullvadbrowser/${version}/mullvad-browser-linux-x86_64-${version}.tar.xz"
         "https://tor.calyxinstitute.org/dist/mullvadbrowser/${version}/mullvad-browser-linux-x86_64-${version}.tar.xz"
       ];
-      hash = "sha256-8x0Qa+NasMq1JdrVnCWlCyPb+5UpJXK1VLFoY9lx+8Q=";
+      hash = "sha256-TAtBlSkfpqsROq3bV9kwDYIJQAXSVkwxQwj3wIYEI7k=";
     };
   };
 
@@ -137,7 +137,7 @@ stdenv.mkDerivation rec {
   allowSubstitutes = false;
 
   desktopItems = [(makeDesktopItem {
-    name = "mullvadbrowser";
+    name = "mullvad-browser";
     exec = "mullvad-browser %U";
     icon = "mullvad-browser";
     desktopName = "Mullvad Browser";
diff --git a/pkgs/applications/networking/browsers/netsurf/buildsystem.nix b/pkgs/applications/networking/browsers/netsurf/buildsystem.nix
index 385deef99fdf..d08ffda76b49 100644
--- a/pkgs/applications/networking/browsers/netsurf/buildsystem.nix
+++ b/pkgs/applications/networking/browsers/netsurf/buildsystem.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "netsurf-buildsystem";
-  version = "1.9";
+  version = "1.10";
 
   src = fetchurl {
     url = "http://download.netsurf-browser.org/libs/releases/buildsystem-${finalAttrs.version}.tar.gz";
-    hash = "sha256-k4QeMUpoggmiC4dF8GU5PzqQ8Bvmj0Xpa8jS9KKqmio=";
+    hash = "sha256-PT451WnkRnfEsXkSm95hTGV5jis+YlMWAjnR/W6uTXk=";
   };
 
   makeFlags = [
diff --git a/pkgs/applications/networking/browsers/opera/default.nix b/pkgs/applications/networking/browsers/opera/default.nix
index 2c6753d07093..71ab94dad5af 100644
--- a/pkgs/applications/networking/browsers/opera/default.nix
+++ b/pkgs/applications/networking/browsers/opera/default.nix
@@ -51,11 +51,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "opera";
-  version = "106.0.4998.19";
+  version = "106.0.4998.70";
 
   src = fetchurl {
     url = "${mirror}/${version}/linux/${pname}-stable_${version}_amd64.deb";
-    hash = "sha256-deZhuxmFP87wEUjbLtsucSvlGTT4KOwhQYbAkpIAQeM=";
+    hash = "sha256-JTLu59x5fthTKwP4cTX8pabRWFVhkatGNm0bV2yHBxE=";
   };
 
   unpackPhase = "dpkg-deb -x $src .";
diff --git a/pkgs/applications/networking/browsers/polypane/default.nix b/pkgs/applications/networking/browsers/polypane/default.nix
index fff4af822f29..cf963ab31785 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 = "17.0.0";
+  version = "17.1.0";
 
   src = fetchurl {
     url = "https://github.com/firstversionist/${pname}/releases/download/v${version}/${pname}-${version}.AppImage";
     name = "${pname}-${version}.AppImage";
-    sha256 = "sha256-ppAzE7dNjEb6uYO+c3o00RIdwMxx2o1AE+ZI+SMbS24=";
+    sha256 = "sha256-vOSw+zjO8OJWRzAdnl4i3MLg+AyXFQwYBg332MXdQhw=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/applications/networking/browsers/tor-browser/default.nix b/pkgs/applications/networking/browsers/tor-browser/default.nix
index 9cc75e58d028..1cc5b9405ec5 100644
--- a/pkgs/applications/networking/browsers/tor-browser/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser/default.nix
@@ -101,7 +101,7 @@ lib.warnIf (useHardenedMalloc != null)
       ++ lib.optionals mediaSupport [ ffmpeg ]
   );
 
-  version = "13.0.8";
+  version = "13.0.9";
 
   sources = {
     x86_64-linux = fetchurl {
@@ -111,7 +111,7 @@ lib.warnIf (useHardenedMalloc != null)
         "https://tor.eff.org/dist/torbrowser/${version}/tor-browser-linux-x86_64-${version}.tar.xz"
         "https://tor.calyxinstitute.org/dist/torbrowser/${version}/tor-browser-linux-x86_64-${version}.tar.xz"
       ];
-      hash = "sha256-eD+c4ACgWajmfMiqqk5HC30uJiqfNqvASepVoO7ox2w=";
+      hash = "sha256-qcB3DLVt2J4WNJLunDSnZdyflMY9/NIsGrj+TkQeJEg=";
     };
 
     i686-linux = fetchurl {
@@ -121,7 +121,7 @@ lib.warnIf (useHardenedMalloc != null)
         "https://tor.eff.org/dist/torbrowser/${version}/tor-browser-linux-i686-${version}.tar.xz"
         "https://tor.calyxinstitute.org/dist/torbrowser/${version}/tor-browser-linux-i686-${version}.tar.xz"
       ];
-      hash = "sha256-ZQ0tSPyfzBWy27lX5+zI3Nuqqz5ZUv1T6lzapvYHc7A=";
+      hash = "sha256-aq2WffQ3ZUL0vopbDU5n9bWb8MC7rHoaz54kz2oaXz8=";
     };
   };
 
diff --git a/pkgs/applications/networking/browsers/vivaldi/default.nix b/pkgs/applications/networking/browsers/vivaldi/default.nix
index 881bd35bbd28..4995a5b9340e 100644
--- a/pkgs/applications/networking/browsers/vivaldi/default.nix
+++ b/pkgs/applications/networking/browsers/vivaldi/default.nix
@@ -24,7 +24,7 @@ let
   vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
 in stdenv.mkDerivation rec {
   pname = "vivaldi";
-  version = "6.5.3206.48";
+  version = "6.5.3206.55";
 
   suffix = {
     aarch64-linux = "arm64";
@@ -34,8 +34,8 @@ in stdenv.mkDerivation rec {
   src = fetchurl {
     url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}-1_${suffix}.deb";
     hash = {
-      aarch64-linux = "sha256-laerVZWB9kNozy0MxYAPXbTjcfgvr+jL18NMP5u7ST0=";
-      x86_64-linux = "sha256-3gRvPSSyJapqay6nePlMA1R/tfFI75mHi+mx3f+wfjQ=";
+      aarch64-linux = "sha256-lr+9+w1vRZSG/2dP5K3mcKLCQijckPdkM/I2DgjO4wg=";
+      x86_64-linux = "sha256-ElkuuaZfK8F6CVA5xbKszkbqdcPACFR+xd0pRxnd6+U=";
     }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
   };
 
diff --git a/pkgs/applications/networking/cloudflared/default.nix b/pkgs/applications/networking/cloudflared/default.nix
index 8ef403599688..97515d4ead7a 100644
--- a/pkgs/applications/networking/cloudflared/default.nix
+++ b/pkgs/applications/networking/cloudflared/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "cloudflared";
-  version = "2023.10.0";
+  version = "2024.1.5";
 
   src = fetchFromGitHub {
     owner = "cloudflare";
     repo = "cloudflared";
     rev = "refs/tags/${version}";
-    hash = "sha256-T+hxNvsckL8PAVb4GjXhnkVi3rXMErTjRgGxCUypwVA=";
+    hash = "sha256-g7FUwEs/wEcX1vRgfoQZw+uMzx6ng3j4vFwhlHs6WKg=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/networking/cluster/argocd/default.nix b/pkgs/applications/networking/cluster/argocd/default.nix
index b6722b9c49af..37eca7125898 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.9.3";
+  version = "2.9.6";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo-cd";
     rev = "v${version}";
-    hash = "sha256-GaY4Cw/LlSwy35umbB4epXt6ev8ya19UjHRwhDwilqU=";
+    hash = "sha256-TwDWcTxYRopQjjtY3OxOL/BDAF2/eJuqIhDJLxpgr3E=";
   };
 
   proxyVendor = true; # darwin/linux hash mismatch
-  vendorHash = "sha256-2TNBbxNX4HGdRqbOEDrLBkWgw+0lyIrdxnVcbip3N6c=";
+  vendorHash = "sha256-gpg9tXVR/svWwbjIiY1OlOf56azxk/dEz+VtaaTeDSk=";
 
   # 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 1f90627aa2ad..7b6edadbba43 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.0";
+  version = "0.27.1";
 
   src = fetchFromGitHub {
     owner = "runatlantis";
     repo = "atlantis";
     rev = "v${version}";
-    hash = "sha256-a+xrmEHkSh5kicxIIxnoXgF9ep2ay5kCXwMR2sAVJIA=";
+    hash = "sha256-qtfMkCI1vX9aKWFNAhqCrnc5mhE+4kh2pogzv4oRXnE=";
   };
   ldflags = [
     "-X=main.version=${version}"
     "-X=main.date=1970-01-01T00:00:00Z"
   ];
 
-  vendorHash = "sha256-ZbCNHARgliw9TMkHyS9k+cnWgbdCCJ+8nMdJMu66Uvo=";
+  vendorHash = "sha256-W3bX5fAxFvI1zQCx8ioNIc/yeDAXChpxNPYyaghnxxE=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/applications/networking/cluster/atmos/default.nix b/pkgs/applications/networking/cluster/atmos/default.nix
index 433a983eb02c..3aee5fe4e3a6 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.54.0";
+  version = "1.55.0";
 
   src = fetchFromGitHub {
     owner = "cloudposse";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-WGOuFqkrX3/5RINdsegTSxJ28W4iEMPuLVrCjtmCkTw=";
+    sha256 = "sha256-JRvPRlq4H9PcELozlvIE065LSNIxrh/Ej+2GXO8s2x4=";
   };
 
-  vendorHash = "sha256-kR13BVbjgQoEjb2xwH8LkxLeMp30h6mbWum9RbzzSGE=";
+  vendorHash = "sha256-YBcVsuBL5n5ycaY1a0uxlDKX7YyrtF16gi17wCK1Jio=";
 
   ldflags = [ "-s" "-w" "-X github.com/cloudposse/atmos/cmd.Version=v${version}" ];
 
diff --git a/pkgs/applications/networking/cluster/cilium/default.nix b/pkgs/applications/networking/cluster/cilium/default.nix
index 80f67b3a1bde..52d5f222fe9f 100644
--- a/pkgs/applications/networking/cluster/cilium/default.nix
+++ b/pkgs/applications/networking/cluster/cilium/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "cilium-cli";
-  version = "0.15.19";
+  version = "0.15.21";
 
   src = fetchFromGitHub {
     owner = "cilium";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-52i3Ek/rXFF9rMMiXNMnRjT2HYsknGKvVtCRrVDmo9U=";
+    hash = "sha256-jagNtaR7YAOdvy/yJrIRQfr8UQTrEoVrPLaGklt8mUk=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/networking/cluster/civo/default.nix b/pkgs/applications/networking/cluster/civo/default.nix
index 0124628a31fd..70b2b0996335 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.72";
+  version = "1.0.73";
 
   src = fetchFromGitHub {
     owner  = "civo";
     repo   = "cli";
     rev    = "v${version}";
-    sha256 = "sha256-UK/vxfasiRzU0WTLKPkGJSkOX0vpDy1OUwGyTmEwsB0=";
+    sha256 = "sha256-rLT4HvA0GjbZyiaiXFnG2iBK7O3S94wJL4jrkcFADFc=";
   };
 
-  vendorHash = "sha256-uKssj80EkuFS9UB0EZxEf7ZYk4hlnrKD5QKJnRMwV4o=";
+  vendorHash = "sha256-oqitgYSL7nf2Lyne0c2vHOSOEG5uHPH9+3lgiROK2Yc=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/networking/cluster/docker-machine/default.nix b/pkgs/applications/networking/cluster/docker-machine/default.nix
deleted file mode 100644
index 7fd163f6968a..000000000000
--- a/pkgs/applications/networking/cluster/docker-machine/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-# This file was generated by go2nix.
-{ lib, buildGoPackage, fetchFromGitHub, installShellFiles }:
-
-buildGoPackage rec {
-  pname = "machine";
-  version = "0.16.2";
-
-  goPackagePath = "github.com/docker/machine";
-
-  src = fetchFromGitHub {
-    rev = "v${version}";
-    owner = "docker";
-    repo = "machine";
-    sha256 = "sha256-Mo2OGpem3p6hCNJ46+RH3BfC7kmKB4yk4Vzo38K88UM=";
-  };
-
-  nativeBuildInputs = [ installShellFiles ];
-
-  postInstall = ''
-    pushd go/src/${goPackagePath}/contrib/completion
-    installShellCompletion --bash bash/*
-    installShellCompletion --zsh zsh/*
-    popd
-  '';
-
-  meta = with lib; {
-    homepage = "https://docs.docker.com/machine/";
-    description = "Docker Machine is a tool that lets you install Docker Engine on virtual hosts, and manage Docker Engine on the hosts";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ offline ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/applications/networking/cluster/docker-machine/kvm-deps.nix b/pkgs/applications/networking/cluster/docker-machine/kvm-deps.nix
deleted file mode 100644
index e321b2c1b0ac..000000000000
--- a/pkgs/applications/networking/cluster/docker-machine/kvm-deps.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-# This file was generated by go2nix.
-[
-  {
-    goPackagePath = "github.com/docker/machine";
-    fetch = {
-      type = "git";
-      url = "https://github.com/docker/machine";
-      rev = "457c02d06a155827c1c4af9b5ab38c0b6b4e48ea";
-      sha256 = "0hx5bhjc7q9ml6h6d2a5csqg6vqwjj68599q0cccw3pcfrb34gmd";
-    };
-  }
-  {
-    goPackagePath = "github.com/libvirt/libvirt-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/libvirt/libvirt-go";
-      rev = "e9642325d747c353ca7b76b4893d5dbdc81c296f";
-      sha256 = "1822b2kbwyxb2gigbiashcs7v4fsyw7k3sdlqh43ga0l6058fmhl";
-    };
-  }
-]
diff --git a/pkgs/applications/networking/cluster/docker-machine/kvm.nix b/pkgs/applications/networking/cluster/docker-machine/kvm.nix
deleted file mode 100644
index 4940f6331d44..000000000000
--- a/pkgs/applications/networking/cluster/docker-machine/kvm.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-# This file was generated by go2nix.
-{ lib, buildGoPackage, fetchFromGitHub, libvirt, pkg-config }:
-
-buildGoPackage rec {
-  pname = "docker-machine-kvm";
-  version = "0.10.0";
-
-  goPackagePath = "github.com/dhiltgen/docker-machine-kvm";
-  goDeps = ./kvm-deps.nix;
-
-  src = fetchFromGitHub {
-    rev    = "v${version}";
-    owner  = "dhiltgen";
-    repo   = "docker-machine-kvm";
-    sha256 = "0ch4zwb6h7hnr5l3skj1daypvpyms2i666lbnmakpw1fw3zvjmgy";
-  };
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ libvirt ];
-
-  meta = with lib; {
-    homepage = "https://github.com/dhiltgen/docker-machine-kvm";
-    description = "KVM driver for docker-machine";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ offline ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/applications/networking/cluster/docker-machine/xhyve.nix b/pkgs/applications/networking/cluster/docker-machine/xhyve.nix
deleted file mode 100644
index 4e75d66bee07..000000000000
--- a/pkgs/applications/networking/cluster/docker-machine/xhyve.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{ lib, stdenv, buildGoPackage, fetchFromGitHub, fetchpatch, pkg-config, cctools, Hypervisor, vmnet }:
-
-buildGoPackage rec {
-  pname = "docker-machine-xhyve";
-  version = "0.4.0";
-
-  goPackagePath = "github.com/zchee/docker-machine-driver-xhyve";
-
-  # https://github.com/machine-drivers/docker-machine-driver-xhyve/pull/225
-  patches = fetchpatch {
-    url = "https://github.com/machine-drivers/docker-machine-driver-xhyve/commit/546256494bf2ccc33e4125bf45f504b0e3027d5a.patch";
-    sha256 = "1i8wxqccqkxvqrbsyd0g9s0kdskd8xi2jv0c1bji9aj4rq0a8cgz";
-  };
-
-  preBuild = ''
-    make -C go/src/${goPackagePath} CC=${stdenv.cc}/bin/cc LIBTOOL=${cctools}/bin/libtool GIT_CMD=: lib9p
-    export CGO_CFLAGS=-I$(pwd)/go/src/${goPackagePath}/vendor/github.com/jceel/lib9p
-    export CGO_LDFLAGS=$(pwd)/go/src/${goPackagePath}/vendor/build/lib9p/lib9p.a
-  '';
-  tags = [ "lib9p" ];
-
-  src = fetchFromGitHub {
-    rev    = "v${version}";
-    owner  = "machine-drivers";
-    repo   = "docker-machine-driver-xhyve";
-    sha256 = "0000v97fr8xc5b39v44hsa87wrbk4bcwyaaivxv4hxlf4vlgg863";
-  };
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ Hypervisor vmnet ];
-
-  meta = with lib; {
-    homepage = "https://github.com/machine-drivers/docker-machine-driver-xhyve";
-    description = "Xhyve driver for docker-machine";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ periklis ];
-    platforms = platforms.darwin;
-    # never built on aarch64-darwin since first introduction in nixpkgs
-    broken = stdenv.isDarwin && stdenv.isAarch64;
-  };
-}
diff --git a/pkgs/applications/networking/cluster/flink/default.nix b/pkgs/applications/networking/cluster/flink/default.nix
index 60fb991fb0b3..276c6ebea34d 100644
--- a/pkgs/applications/networking/cluster/flink/default.nix
+++ b/pkgs/applications/networking/cluster/flink/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "flink";
-  version = "1.18.0";
+  version = "1.18.1";
 
   src = fetchurl {
     url = "mirror://apache/flink/${pname}-${version}/${pname}-${version}-bin-scala_2.12.tgz";
-    sha256 = "sha256-mwlpRx/snaTymCubVLTnvN5SpXO2EWl9qZ8seNtNKtI=";
+    sha256 = "sha256-EHyCdOimHIGlggjDnXmgk0+hBDfOjEvIafMMNSCeRak=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/networking/cluster/fn-cli/default.nix b/pkgs/applications/networking/cluster/fn-cli/default.nix
index 8e3b5d297b78..299abe58fbd3 100644
--- a/pkgs/applications/networking/cluster/fn-cli/default.nix
+++ b/pkgs/applications/networking/cluster/fn-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "fn";
-  version = "0.6.28";
+  version = "0.6.29";
 
   src = fetchFromGitHub {
     owner = "fnproject";
     repo = "cli";
     rev = version;
-    hash = "sha256-/ifr/sSaChZKRe9wCcjURhqZl2/JhIMewZSlJiit/7w=";
+    hash = "sha256-hN9Kok2+ZNYZsG+3ffzr1jGfIMg99JzgzC0x585KDF4=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/networking/cluster/glooctl/default.nix b/pkgs/applications/networking/cluster/glooctl/default.nix
index d3b7a9e1a003..6b7f263a1aea 100644
--- a/pkgs/applications/networking/cluster/glooctl/default.nix
+++ b/pkgs/applications/networking/cluster/glooctl/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "glooctl";
-  version = "1.15.18";
+  version = "1.16.3";
 
   src = fetchFromGitHub {
     owner = "solo-io";
     repo = "gloo";
     rev = "v${version}";
-    hash = "sha256-oHwo0I3OFfilLg2tlL0EycTo6BC7LYbzg7dxgfz/XeI=";
+    hash = "sha256-BGyaYINFFCqEH+UH8XqKom+2eUhgPRF3cMp9fq3whpI=";
   };
 
-  vendorHash = "sha256-MrTiZCvYUmdX4sK85jeeQpUupvitH6PfbQ+RfwELaV4=";
+  vendorHash = "sha256-GTd38gSlCKTjfLkAW/Tz22oQJ4FhZB+9vpN/8q4JSCo=";
 
   subPackages = [ "projects/gloo/cli/cmd" ];
 
diff --git a/pkgs/applications/networking/cluster/helm/default.nix b/pkgs/applications/networking/cluster/helm/default.nix
index cb6ddb001520..474eb557c6b7 100644
--- a/pkgs/applications/networking/cluster/helm/default.nix
+++ b/pkgs/applications/networking/cluster/helm/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "kubernetes-helm";
-  version = "3.13.3";
+  version = "3.14.0";
 
   src = fetchFromGitHub {
     owner = "helm";
     repo = "helm";
     rev = "v${version}";
-    sha256 = "sha256-tU6RdVdcOvNYgnVmeDVKVuKY5GLeqVzpleq6qNwD2yI=";
+    sha256 = "sha256-xkMPROdhZ6mq839aMkpCvYIU8SVt48K0n17WnYFfQ+0=";
   };
-  vendorHash = "sha256-ve2T2O9cISshAe5uAyXYZ6Mbb1TPhOqhV8vkF5uMrhY=";
+  vendorHash = "sha256-pYB9J7Zf6MApGpFL7HzqIDcC/vERiVE4z8SsipIeJ7c=";
 
   subPackages = [ "cmd/helm" ];
   ldflags = [
@@ -20,9 +20,24 @@ buildGoModule rec {
     "-X helm.sh/helm/v3/internal/version.gitCommit=${src.rev}"
   ];
 
+  preBuild = ''
+    # set k8s version to client-go version, to match upstream
+    K8S_MODULES_VER="$(go list -f '{{.Version}}' -m k8s.io/client-go)"
+    K8S_MODULES_MAJOR_VER="$(($(cut -d. -f1 <<<"$K8S_MODULES_VER") + 1))"
+    K8S_MODULES_MINOR_VER="$(cut -d. -f2 <<<"$K8S_MODULES_VER")"
+    old_ldflags="''${ldflags}"
+    ldflags="''${ldflags} -X helm.sh/helm/v3/pkg/lint/rules.k8sVersionMajor=''${K8S_MODULES_MAJOR_VER}"
+    ldflags="''${ldflags} -X helm.sh/helm/v3/pkg/lint/rules.k8sVersionMinor=''${K8S_MODULES_MINOR_VER}"
+    ldflags="''${ldflags} -X helm.sh/helm/v3/pkg/chartutil.k8sVersionMajor=''${K8S_MODULES_MAJOR_VER}"
+    ldflags="''${ldflags} -X helm.sh/helm/v3/pkg/chartutil.k8sVersionMinor=''${K8S_MODULES_MINOR_VER}"
+  '';
+
   __darwinAllowLocalNetworking = true;
 
   preCheck = ''
+    # restore ldflags for tests
+    ldflags="''${old_ldflags}"
+
     # skipping version tests because they require dot git directory
     substituteInPlace cmd/helm/version_test.go \
       --replace "TestVersion" "SkipVersion"
diff --git a/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix b/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix
index ec5a4eb4f35e..3ed94a3a621c 100644
--- a/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix
+++ b/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "helm-diff";
-  version = "3.8.1";
+  version = "3.9.2";
 
   src = fetchFromGitHub {
     owner = "databus23";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-x3tTHiuw0CtvsOCB7oPd9EB+B5T1m6Hn7O1CriYahuA=";
+    sha256 = "sha256-4EjvjvW8aal/ekGV0ePevPf30NarrWIh6id30n1r2dE=";
   };
 
-  vendorHash = "sha256-2tiBFS3gvSbnyighSorg/ar058ZJmiQviaT13zOS8KA=";
+  vendorHash = "sha256-RPb5+tZkOsubOl0YlSXsybmlOtKVbJ97c+f/wiz/gmE=";
 
   ldflags = [ "-s" "-w" "-X github.com/databus23/helm-diff/v3/cmd.Version=${version}" ];
 
diff --git a/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix b/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix
index 0a1f99e1d679..87494186377b 100644
--- a/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix
+++ b/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "helm-s3";
-  version = "0.15.1";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "hypnoglow";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-D79nUIueOV2FC3I2LreHMzl/xOpzNa+OsfL5wcnyY78=";
+    hash = "sha256-0wx8q93y8goXNh2x/XI3FQEXImVTpONURiDW2dCAi6o=";
   };
 
-  vendorHash = "sha256-dKKggD/VlBiopt2ygh07+6bTBbRgQfWbiY/1qJSSx/0=";
+  vendorHash = "sha256-i+rWg0/EUes5soFVRu9M5/iktbtudII7Ly5pcnOU2hU=";
 
   # NOTE: Remove the install and upgrade hooks.
   postPatch = ''
diff --git a/pkgs/applications/networking/cluster/helmfile/default.nix b/pkgs/applications/networking/cluster/helmfile/default.nix
index f623ed21e31b..258a04c5e84b 100644
--- a/pkgs/applications/networking/cluster/helmfile/default.nix
+++ b/pkgs/applications/networking/cluster/helmfile/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "helmfile";
-  version = "0.160.0";
+  version = "0.161.0";
 
   src = fetchFromGitHub {
     owner = "helmfile";
     repo = "helmfile";
     rev = "v${version}";
-    sha256 = "sha256-sPHEYhKiKzB5MYylWeHKpVjjXbDsWbg99TKqT/d3uJ0=";
+    sha256 = "sha256-SoXpUAISYgB0qrw0urnVjPFfBc4jtkfDl41MmzfRG/g=";
   };
 
-  vendorHash = "sha256-LkmPytmXrense/M0erBkxeQ7XXGlHDLY1yedsOxk4+E=";
+  vendorHash = "sha256-piGbC9cljBjJ0X2kzNqNnpFmcjnu6DdKizSRGrw/+2c=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/cluster/hubble/default.nix b/pkgs/applications/networking/cluster/hubble/default.nix
index 7160da0f63e8..ecbe56d09885 100644
--- a/pkgs/applications/networking/cluster/hubble/default.nix
+++ b/pkgs/applications/networking/cluster/hubble/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "hubble";
-  version = "0.12.3";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "cilium";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-GVfPrKPX/y/trtZjIftUW1bH5Z/O/oIUoIjjEET38Mk=";
+    sha256 = "sha256-jFzxAzLv3EfqWgbXsN8d0OPY8pDy7OBjJIzr+x5yFF0=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/networking/cluster/istioctl/default.nix b/pkgs/applications/networking/cluster/istioctl/default.nix
index 8aa3656007ef..24a0df3f70b5 100644
--- a/pkgs/applications/networking/cluster/istioctl/default.nix
+++ b/pkgs/applications/networking/cluster/istioctl/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "istioctl";
-  version = "1.20.1";
+  version = "1.20.2";
 
   src = fetchFromGitHub {
     owner = "istio";
     repo = "istio";
     rev = version;
-    hash = "sha256-baY9O2F5qte6v8HM905VYdvqQZxkTSeu3ydB4Y4UM4E=";
+    hash = "sha256-0Ep7HPc+1e2M87Z6qCKvAxpYxWjajruTrpP9EBe1PC0=";
   };
-  vendorHash = "sha256-QEP7qG3RLVhEGsNJU0r/grVrcepouAC8usL9nLeaJFs=";
+  vendorHash = "sha256-o9NFRVAY5AD5CB9GGSJTvxJM6uXBrDQVBy1slOByIrU=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/networking/cluster/k0sctl/default.nix b/pkgs/applications/networking/cluster/k0sctl/default.nix
index 53b2a0fe71dc..722c8401da2a 100644
--- a/pkgs/applications/networking/cluster/k0sctl/default.nix
+++ b/pkgs/applications/networking/cluster/k0sctl/default.nix
@@ -1,10 +1,10 @@
 { lib
-, buildGo121Module
+, buildGoModule
 , fetchFromGitHub
 , installShellFiles
 }:
 
-buildGo121Module rec {
+buildGoModule rec {
   pname = "k0sctl";
   version = "0.17.4";
 
diff --git a/pkgs/applications/networking/cluster/k8sgpt/default.nix b/pkgs/applications/networking/cluster/k8sgpt/default.nix
index 87afcd7bdf79..9f9e4bc6740b 100644
--- a/pkgs/applications/networking/cluster/k8sgpt/default.nix
+++ b/pkgs/applications/networking/cluster/k8sgpt/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "k8sgpt";
-  version = "0.3.24";
+  version = "0.3.26";
 
   src = fetchFromGitHub {
     owner = "k8sgpt-ai";
     repo = "k8sgpt";
     rev = "v${version}";
-    hash = "sha256-GxZDbG2G+TFd2lPpEqP1hIDXFJDOLh4Y7yZsHodok/c=";
+    hash = "sha256-FUYtBoJAnY8WRh0eABniOgg781UooG67RKTHp1u3SiQ=";
   };
 
-  vendorHash = "sha256-N/Qd51EmvTWy48Pj+UywBCRDG+k2zd6NTzGGm4jNyjQ=";
+  vendorHash = "sha256-sd4QIQQpDyPV4pqk9VJBApzRzjwxMFieCOQQjJzFXHc=";
 
   CGO_ENABLED = 0;
 
diff --git a/pkgs/applications/networking/cluster/k9s/default.nix b/pkgs/applications/networking/cluster/k9s/default.nix
index 457c1fa4d5b0..6463aa7a7ddb 100644
--- a/pkgs/applications/networking/cluster/k9s/default.nix
+++ b/pkgs/applications/networking/cluster/k9s/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "k9s";
-  version = "0.31.5";
+  version = "0.31.7";
 
   src = fetchFromGitHub {
     owner = "derailed";
     repo = "k9s";
     rev = "v${version}";
-    hash = "sha256-ZNYIGs8oBy4U7y4GiOCcIhnAGRx92V+cQzTE+40QE+A=";
+    hash = "sha256-DRxS2zhDLAC1pfsHiOEU9Xi7DhKcPwzdI3yw5JbbT18=";
   };
 
   ldflags = [
@@ -23,7 +23,7 @@ buildGoModule rec {
 
   proxyVendor = true;
 
-  vendorHash = "sha256-RXKotLyH97EgfDxQzFSSgATGu96SnfwZyR3WprhwsMM=";
+  vendorHash = "sha256-7eeGME3KOebYYEJEFrrA+5F8rdtYT18WnRoouGyEMD8=";
 
   # TODO investigate why some config tests are failing
   doCheck = !(stdenv.isDarwin && stdenv.isAarch64);
diff --git a/pkgs/applications/networking/cluster/kaniko/default.nix b/pkgs/applications/networking/cluster/kaniko/default.nix
index 2127ae5b3135..b4b667ccece6 100644
--- a/pkgs/applications/networking/cluster/kaniko/default.nix
+++ b/pkgs/applications/networking/cluster/kaniko/default.nix
@@ -9,13 +9,13 @@
 
 buildGoModule rec {
   pname = "kaniko";
-  version = "1.19.2";
+  version = "1.20.0";
 
   src = fetchFromGitHub {
     owner = "GoogleContainerTools";
     repo = "kaniko";
     rev = "v${version}";
-    hash = "sha256-YxOuZb1R9Orm3RTnZyzi54VzQbbmE+lO+4osvG97pwE=";
+    hash = "sha256-/JSrkxhW2w9K+MGp7+4xMGwWM8dpwRoUam02K+8NsCU=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/networking/cluster/kn/default.nix b/pkgs/applications/networking/cluster/kn/default.nix
index 664c1b693ffc..156c2cae7ac5 100644
--- a/pkgs/applications/networking/cluster/kn/default.nix
+++ b/pkgs/applications/networking/cluster/kn/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kn";
-  version = "1.12.0";
+  version = "1.13.0";
 
   src = fetchFromGitHub {
     owner = "knative";
     repo = "client";
     rev = "knative-v${version}";
-    sha256 = "sha256-Xp5PpHIcjh02qesnyrz53yydIAClx0OrBE75Sz5pifg=";
+    sha256 = "sha256-irMipYDYMyA0l9d7tI1wS7XsxGWjBzTvxmhpKM1gLW8=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/networking/cluster/kops/default.nix b/pkgs/applications/networking/cluster/kops/default.nix
index d153b8816b03..5859e202130d 100644
--- a/pkgs/applications/networking/cluster/kops/default.nix
+++ b/pkgs/applications/networking/cluster/kops/default.nix
@@ -61,8 +61,8 @@ rec {
   };
 
   kops_1_28 = mkKops rec {
-    version = "1.28.2";
-    sha256 = "sha256-l8budNU+sXZY/hA6jluM+s5pA43j0stQM5vmkwDPuio=";
+    version = "1.28.3";
+    sha256 = "sha256-pkHTVAssNDjMHpdRxqPCNwG2of8TKIzZN0uqk+hPZSA=";
     rev = "v${version}";
   };
 }
diff --git a/pkgs/applications/networking/cluster/krane/Gemfile.lock b/pkgs/applications/networking/cluster/krane/Gemfile.lock
index 4a131603e178..81217037a353 100644
--- a/pkgs/applications/networking/cluster/krane/Gemfile.lock
+++ b/pkgs/applications/networking/cluster/krane/Gemfile.lock
@@ -1,7 +1,7 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    activesupport (7.1.2)
+    activesupport (7.1.3)
       base64
       bigdecimal
       concurrent-ruby (~> 1.0, >= 1.0.2)
@@ -14,26 +14,25 @@ GEM
     addressable (2.8.6)
       public_suffix (>= 2.0.2, < 6.0)
     base64 (0.2.0)
-    bigdecimal (3.1.5)
+    bigdecimal (3.1.6)
     colorize (0.8.1)
-    concurrent-ruby (1.2.2)
+    concurrent-ruby (1.2.3)
     connection_pool (2.4.1)
-    domain_name (0.6.20231109)
+    domain_name (0.6.20240107)
     drb (2.2.0)
       ruby2_keywords
     ejson (1.4.1)
-    faraday (2.7.12)
-      base64
-      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
     ffi (1.16.3)
     ffi-compiler (1.0.1)
       ffi (>= 1.0.0)
       rake
-    google-cloud-env (2.1.0)
+    google-cloud-env (2.1.1)
       faraday (>= 1.0, < 3.a)
-    googleauth (1.9.1)
+    googleauth (1.9.2)
       faraday (>= 1.0, < 3.a)
       google-cloud-env (~> 2.1)
       jwt (>= 1.4, < 3.0)
@@ -54,7 +53,7 @@ GEM
     jsonpath (1.1.5)
       multi_json
     jwt (2.7.1)
-    krane (3.4.0)
+    krane (3.4.2)
       activesupport (>= 5.0)
       colorize (~> 0.8)
       concurrent-ruby (~> 1.1)
@@ -73,12 +72,14 @@ GEM
     llhttp-ffi (0.4.0)
       ffi-compiler (~> 1.0)
       rake (~> 13.0)
-    mime-types (3.5.1)
+    mime-types (3.5.2)
       mime-types-data (~> 3.2015)
     mime-types-data (3.2023.1205)
-    minitest (5.20.0)
+    minitest (5.21.2)
     multi_json (1.15.0)
     mutex_m (0.2.0)
+    net-http (0.4.1)
+      uri
     netrc (0.11.0)
     os (1.1.4)
     public_suffix (5.0.4)
@@ -99,6 +100,7 @@ GEM
     thor (1.3.0)
     tzinfo (2.0.6)
       concurrent-ruby (~> 1.0)
+    uri (0.13.0)
 
 PLATFORMS
   ruby
@@ -107,4 +109,4 @@ DEPENDENCIES
   krane
 
 BUNDLED WITH
-   2.4.22
+   2.5.5
diff --git a/pkgs/applications/networking/cluster/krane/gemset.nix b/pkgs/applications/networking/cluster/krane/gemset.nix
index 0326b6d1146d..16634bfff85b 100644
--- a/pkgs/applications/networking/cluster/krane/gemset.nix
+++ b/pkgs/applications/networking/cluster/krane/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1l6hmf99zgckpn812qfxfz60rbh0zixv1hxnxhjlg8942pvixn2v";
+      sha256 = "09zrw3sydkk6lwzjhzia38wg1as5aab2lgnysfdr1qxh39zi7z7v";
       type = "gem";
     };
-    version = "7.1.2";
+    version = "7.1.3";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -36,10 +36,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1b1gqa90amazwnll9590m5ighywh9sacsmpyd5ihljivmvjswksk";
+      sha256 = "00db5v09k1z3539g1zrk7vkjrln9967k08adh6qx33ng97a2gg5w";
       type = "gem";
     };
-    version = "3.1.5";
+    version = "3.1.6";
   };
   colorize = {
     groups = ["default"];
@@ -56,10 +56,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0krcwb6mn0iklajwngwsg850nk8k9b35dhmc2qkbdqvmifdi2y9q";
+      sha256 = "1qh1b14jwbbj242klkyz5fc7npd4j0mvndz62gajhvl1l3wd7zc2";
       type = "gem";
     };
-    version = "1.2.2";
+    version = "1.2.3";
   };
   connection_pool = {
     groups = ["default"];
@@ -76,10 +76,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gpciaifmxql8h01ci12qq08dnqrdlzkkz6fmia9v9yc3r9a29si";
+      sha256 = "0cyr2xm576gqhqicsyqnhanni47408w2pgvrfi8pd13h2li3nsaz";
       type = "gem";
     };
-    version = "0.6.20231109";
+    version = "0.6.20240107";
   };
   drb = {
     dependencies = ["ruby2_keywords"];
@@ -103,25 +103,26 @@
     version = "1.4.1";
   };
   faraday = {
-    dependencies = ["base64" "faraday-net_http" "ruby2_keywords"];
+    dependencies = ["faraday-net_http"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19w1lzipnxs6vy3y0pw1mf956f768ppzgfrnlpwgrpnjjv9xqf7d";
+      sha256 = "1qqb1rmk0f9m82iijjlqadh5yby1bhnr6svjk9vxdvh6f181988s";
       type = "gem";
     };
-    version = "2.7.12";
+    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";
   };
   ffi = {
     groups = ["default"];
@@ -150,10 +151,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "056r1p8vhjswnx2cy3mzhwc5gj03whmpz8m4p2ph37gag5bpnxmf";
+      sha256 = "16b9yjbrzal1cjkdbn29fl06ikjn1dpg1vdsjak1xvhpsp3vhjyg";
       type = "gem";
     };
-    version = "2.1.0";
+    version = "2.1.1";
   };
   googleauth = {
     dependencies = ["faraday" "google-cloud-env" "jwt" "multi_json" "os" "signet"];
@@ -161,10 +162,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0spv89di017rg25psiv4w3pn6f67y2w6vv8w910i83b5yii84rl1";
+      sha256 = "1qpvsvcag90nw2fjws12m96hsicpmcv04v35j9aiik9rmxxvlk9h";
       type = "gem";
     };
-    version = "1.9.1";
+    version = "1.9.2";
   };
   http = {
     dependencies = ["addressable" "http-cookie" "http-form_data" "llhttp-ffi"];
@@ -246,10 +247,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1phcappqkj30i99cqggj4sqzhcb3gim9my5xqzybq3byqfrcprqg";
+      sha256 = "0lgl5x8b0wwih6h609sglp5zfdg8ymbmh8yv4vp1lcxvf885riyz";
       type = "gem";
     };
-    version = "3.4.0";
+    version = "3.4.2";
   };
   kubeclient = {
     dependencies = ["http" "jsonpath" "recursive-open-struct" "rest-client"];
@@ -279,10 +280,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0q8d881k1b3rbsfcdi3fx0b5vpdr5wcrhn88r2d9j7zjdkxp5mw5";
+      sha256 = "1r64z0m5zrn4k37wabfnv43wa6yivgdfk6cf2rpmmirlz889yaf1";
       type = "gem";
     };
-    version = "3.5.1";
+    version = "3.5.2";
   };
   mime-types-data = {
     groups = ["default"];
@@ -299,10 +300,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bkmfi9mb49m0fkdhl2g38i3xxa02d411gg0m8x0gvbwfmmg5ym3";
+      sha256 = "1hmszq7p4zp2ha3qjv1axam602rgnqhlz5zfzil7yk4nvfwcv1bn";
       type = "gem";
     };
-    version = "5.20.0";
+    version = "5.21.2";
   };
   multi_json = {
     groups = ["default"];
@@ -324,6 +325,17 @@
     };
     version = "0.2.0";
   };
+  net-http = {
+    dependencies = ["uri"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10n2n9aq00ih8v881af88l1zyrqgs5cl3njdw8argjwbl5ggqvm9";
+      type = "gem";
+    };
+    version = "0.4.1";
+  };
   netrc = {
     groups = ["default"];
     platforms = [];
@@ -437,4 +449,14 @@
     };
     version = "2.0.6";
   };
+  uri = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "094gk72ckazf495qc76gk09b5i318d5l9m7bicg2wxlrjcm3qm96";
+      type = "gem";
+    };
+    version = "0.13.0";
+  };
 }
diff --git a/pkgs/applications/networking/cluster/kubecm/default.nix b/pkgs/applications/networking/cluster/kubecm/default.nix
index 6283b8387ddb..5fe9f237b6fa 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.26.0";
+  version = "0.28.0";
 
   src = fetchFromGitHub {
     owner = "sunny0826";
     repo = "kubecm";
     rev = "v${version}";
-    hash = "sha256-53diz+TNGRmNbSZJAIKPFi0x/BdL02Tjb847I/XdhW0=";
+    hash = "sha256-v2frNvJUvDjPhV1RCR3DHk04kYEqP6hMXeA4j3cWlss=";
   };
 
-  vendorHash = "sha256-QPd7gUEY6qNdl96slKvY7+Av6fCU9q+XdjKNKUXz2Wo=";
+  vendorHash = "sha256-uM9/rqu5WOXK6bqxhtmje+Zd9dtdv3qwt+Xr0SJHjPs=";
   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 a51eea852fc2..2b41250c628b 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.2.0";
+  version = "0.2.2";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-WDnuEC2uXo7wybOh0wRiKZt70JMrWteWINuZ+C7lbo8=";
+    sha256 = "sha256-zXglsfPsJi9DVxlRPniSBsdF1xEMYqqGr46ThpQj3gQ=";
   };
 
   vendorHash = "sha256-uf7nBnS1wmbz4xcVA5qF82QMPsLdSucje1NNaPyheCw=";
@@ -20,6 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/kubecolor/kubecolor";
     changelog = "https://github.com/kubecolor/kubecolor/releases/tag/v${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [ ivankovnatsky SuperSandro2000 ];
+    maintainers = with maintainers; [ ivankovnatsky SuperSandro2000 applejag ];
   };
 }
diff --git a/pkgs/applications/networking/cluster/kubectl-explore/default.nix b/pkgs/applications/networking/cluster/kubectl-explore/default.nix
index e19929b9e3e6..2eb7b6befb75 100644
--- a/pkgs/applications/networking/cluster/kubectl-explore/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-explore/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kubectl-explore";
-  version = "0.7.1";
+  version = "0.7.2";
 
   src = fetchFromGitHub {
     owner = "keisku";
     repo = "kubectl-explore";
     rev = "v${version}";
-    hash = "sha256-4WxvVsA05Mta7AcrGe26B+Up+x/gwdlCnb/PN9Ehu18=";
+    hash = "sha256-OVPct3EvtchH9pmMulIddsiR9VFoCegx9+O7lkecoJc=";
   };
 
-  vendorHash = "sha256-z/bPfY9UVqOnrA9jNUtM7jg53/URAMAJQAqH9D5KVPQ=";
+  vendorHash = "sha256-l6SANWkDQSuLbyixbO/Xr2oRG8HR/qquTT9b/IM+JVg=";
   doCheck = false;
 
   meta = with lib; {
diff --git a/pkgs/applications/networking/cluster/kubectl-klock/default.nix b/pkgs/applications/networking/cluster/kubectl-klock/default.nix
index db40df70f934..4b617fd8d854 100644
--- a/pkgs/applications/networking/cluster/kubectl-klock/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-klock/default.nix
@@ -1,6 +1,6 @@
-{ lib, buildGo121Module, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGo121Module rec {
+buildGoModule rec {
   pname = "kubectl-klock";
   version = "0.5.0";
 
diff --git a/pkgs/applications/networking/cluster/kubectl-node-shell/default.nix b/pkgs/applications/networking/cluster/kubectl-node-shell/default.nix
index 36238ae746ff..d8718b1d254c 100644
--- a/pkgs/applications/networking/cluster/kubectl-node-shell/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-node-shell/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "kubectl-node-shell";
-  version = "1.8.1";
+  version = "1.10.1";
 
   src = fetchFromGitHub {
     owner = "kvaps";
     repo = "kubectl-node-shell";
     rev = "v${version}";
-    sha256 = "sha256-ZVLL++QTc4fvOTsFfaWVad/jj4EqPiZUpL7HsMb2AdE=";
+    hash = "sha256-QG1YQH2qd4TBkH42z9htni4llL13sEoBXlih4yc8r4w=";
   };
 
   strictDeps = true;
diff --git a/pkgs/applications/networking/cluster/kubedb-cli/default.nix b/pkgs/applications/networking/cluster/kubedb-cli/default.nix
index b138c1928256..1972ad27af33 100644
--- a/pkgs/applications/networking/cluster/kubedb-cli/default.nix
+++ b/pkgs/applications/networking/cluster/kubedb-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kubedb-cli";
-  version = "0.40.1";
+  version = "0.41.0";
 
   src = fetchFromGitHub {
     owner = "kubedb";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-GGZjqXw0Fi5QdQjVrw//sDVA8oRKADCwHeRY22z7bko=";
+    sha256 = "sha256-P4B5N2hIDTYtrHk86n3MCvy6IXlDyAUc1wFhXmEkQFA=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/networking/cluster/kubedog/default.nix b/pkgs/applications/networking/cluster/kubedog/default.nix
index ccec93086045..9618fcbf4457 100644
--- a/pkgs/applications/networking/cluster/kubedog/default.nix
+++ b/pkgs/applications/networking/cluster/kubedog/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "kubedog";
-  version = "0.12.0";
+  version = "0.12.3";
 
   src = fetchFromGitHub {
     owner = "werf";
     repo = "kubedog";
     rev = "v${version}";
-    hash = "sha256-faCHL5+C2dACDnKY6LdIgLMrTnwQXNY018k7JgW4PPw=";
+    hash = "sha256-dk6ieIUoS1N2UtiLig5dFq0476xh69bjueN05ZKjcLg=";
   };
 
-  vendorHash = "sha256-DcnNFoT7yhkugTQRSvez5SZR0/EquHO/sHeGcYniULo=";
+  vendorHash = "sha256-lLyIVA7Mkj1bfA/u8VMTwmKmhNfibYpT+dgIWFdOiPs=";
 
   subPackages = [ "cmd/kubedog" ];
 
diff --git a/pkgs/applications/networking/cluster/kubergrunt/default.nix b/pkgs/applications/networking/cluster/kubergrunt/default.nix
index a416b309fdfd..e5a5e1ba9f4b 100644
--- a/pkgs/applications/networking/cluster/kubergrunt/default.nix
+++ b/pkgs/applications/networking/cluster/kubergrunt/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kubergrunt";
-  version = "0.13.1";
+  version = "0.14.2";
 
   src = fetchFromGitHub {
     owner = "gruntwork-io";
     repo = "kubergrunt";
     rev = "v${version}";
-    sha256 = "sha256-lXGDt9UWIk3T+Zp5sdAftStEnd3RmdevTjkvfuZtNf0=";
+    sha256 = "sha256-r2lx+R/TQxD/miCJK3V//N3gKiCrg/mneT9BS+ZqRiU=";
   };
 
-  vendorHash = "sha256-AUw1wJNWjpNVsjw/Hr1ZCePYWQkf1SqRVnQgi8tOFG0=";
+  vendorHash = "sha256-K24y41qpuyBHqljUAtNQu3H8BNqznxYOsvEVo+57OtY=";
 
   # Disable tests since it requires network access and relies on the
   # presence of certain AWS infrastructure
diff --git a/pkgs/applications/networking/cluster/kubeseal/default.nix b/pkgs/applications/networking/cluster/kubeseal/default.nix
index 991469dc0b57..eef739ebdbf4 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.24.5";
+  version = "0.25.0";
 
   src = fetchFromGitHub {
     owner = "bitnami-labs";
     repo = "sealed-secrets";
     rev = "v${version}";
-    sha256 = "sha256-OyYVilc5QEK7Mjp9NKQpvhR4HyNSUh/82eCl1LHf4fQ=";
+    sha256 = "sha256-maDfKFrszKexwzHw50iPu+aLLhi/QqKj6zmes9kS5Lk=";
   };
 
-  vendorHash = "sha256-TdEfw/f7dSIoueJoi7qqOegEBJQLHc6Em21dcDnCuJU=";
+  vendorHash = "sha256-3SrfD+6Gg9T9Qtb2PbipJZTe8Szs8Cef/61alwgHUUA=";
 
   subPackages = [ "cmd/kubeseal" ];
 
diff --git a/pkgs/applications/networking/cluster/kubeshark/default.nix b/pkgs/applications/networking/cluster/kubeshark/default.nix
index f4f04f6ce685..c04dfb0dca79 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.0.0";
+  version = "52.1.9";
 
   src = fetchFromGitHub {
     owner = "kubeshark";
     repo = "kubeshark";
     rev = "v${version}";
-    hash = "sha256-CBiRQ3i3kPVMuhws30Pl/7deuEiUHnRiDKhad6/c7zU=";
+    hash = "sha256-VtL/fuXMc+vTaP3nSBQm0wfe8m3/yqv5nzjP0BDLVw8=";
   };
 
-  vendorHash = "sha256-LBvQ9Z6bEBzAzdaEBRJbixBjy1u7MlVTAn6vD/ZvCNM=";
+  vendorHash = "sha256-SmvO9DYOXxnmN2dmHPPOguVwEbWSH/xNLBB+idpzopo=";
 
   ldflags = let t = "github.com/kubeshark/kubeshark"; in [
    "-s" "-w"
diff --git a/pkgs/applications/networking/cluster/kubevela/default.nix b/pkgs/applications/networking/cluster/kubevela/default.nix
index 265c39ae3867..b58044992a6c 100644
--- a/pkgs/applications/networking/cluster/kubevela/default.nix
+++ b/pkgs/applications/networking/cluster/kubevela/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "kubevela";
-  version = "1.9.8";
+  version = "1.9.9";
 
   src = fetchFromGitHub {
     owner = "kubevela";
     repo = "kubevela";
     rev = "v${version}";
-    hash = "sha256-Bf9OS8IlsahE40JsYTALC3oW6HliyqycA2CTJFRRTag=";
+    hash = "sha256-4OxkBN0hZ2wtZjU0aQVzhWtWd8kaCokT3WF82WeVS6U=";
   };
 
-  vendorHash = "sha256-obvlie4P3mhp2VMyUYHNZIlgfICM4PDhu4YKeDsVMxw=";
+  vendorHash = "sha256-fMo01CmPaNgvNcY8oG4rIGfYa+teKU3ETJsAaF14cnc=";
 
   ldflags = [
     "-s" "-w"
diff --git a/pkgs/applications/networking/cluster/kyverno/default.nix b/pkgs/applications/networking/cluster/kyverno/default.nix
index 669553fd9523..3cf8ef72ba5c 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.11.3";
+  version = "1.11.4";
 
   src = fetchFromGitHub {
     owner = "kyverno";
     repo = "kyverno";
     rev = "v${version}";
-    sha256 = "sha256-aFogX7cBf5SF1nSyQ/L8uY/xwvZxXHaWGHe3gWHGHQQ=";
+    sha256 = "sha256-6Qrd7/h9G8KvzUxPNXUV/RnWImFrxm1FILeik8bWLnA=";
   };
 
   ldflags = [
@@ -18,7 +18,7 @@ buildGoModule rec {
     "-X github.com/kyverno/kyverno/pkg/version.BuildTime=1970-01-01_00:00:00"
   ];
 
-  vendorHash = "sha256-jZAylCLmEWpAflxrtrh1jhVuctVlUqfC5rxqcho2GcE=";
+  vendorHash = "sha256-Vw8f2+b5UNc7DqCmu2cN2De1mrONe0M6F68H9SPrD3w=";
 
   subPackages = [ "cmd/cli/kubectl-kyverno" ];
 
diff --git a/pkgs/applications/networking/cluster/linkerd/default.nix b/pkgs/applications/networking/cluster/linkerd/default.nix
index c205b8431a2a..0a80fd2bac2d 100644
--- a/pkgs/applications/networking/cluster/linkerd/default.nix
+++ b/pkgs/applications/networking/cluster/linkerd/default.nix
@@ -2,7 +2,7 @@
 
 (callPackage ./generic.nix { }) {
   channel = "stable";
-  version = "2.14.8";
-  sha256 = "1iag3j3wr3q9sx85rj5nhzs4ygknx2xyazs5kd0vq2l8vb1ihbnn";
+  version = "2.14.9";
+  sha256 = "135x5q0a8knckbjkag2xqcr76zy49i57zf2hlsa70iknynq33ys7";
   vendorHash = "sha256-bGl8IZppwLDS6cRO4HmflwIOhH3rOhE/9slJATe+onI=";
 }
diff --git a/pkgs/applications/networking/cluster/linkerd/edge.nix b/pkgs/applications/networking/cluster/linkerd/edge.nix
index 0378e6c31be8..f0a42e167971 100644
--- a/pkgs/applications/networking/cluster/linkerd/edge.nix
+++ b/pkgs/applications/networking/cluster/linkerd/edge.nix
@@ -2,7 +2,7 @@
 
 (callPackage ./generic.nix { }) {
   channel = "edge";
-  version = "23.12.4";
-  sha256 = "0q6bizch27z1lmw7as7f34zf8b95605wpr27c2mb8s1375q9lixd";
-  vendorHash = "sha256-Mp2iZuESfTSe5whejJ7a43WSP6kmxFqoIlDxWx7vBLc=";
+  version = "24.1.2";
+  sha256 = "1rwdjlf20k84g94ca724wcpykpd9z0q8ymi0mdyz86kfry6hr5sz";
+  vendorHash = "sha256-8fNse2ZuyWqZsHSUh+buEIYPf8JsEL+0Z8tkbxfiCwA=";
 }
diff --git a/pkgs/applications/networking/cluster/nerdctl/default.nix b/pkgs/applications/networking/cluster/nerdctl/default.nix
index ee9defe2eeca..84d27a186c12 100644
--- a/pkgs/applications/networking/cluster/nerdctl/default.nix
+++ b/pkgs/applications/networking/cluster/nerdctl/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "nerdctl";
-  version = "1.7.2";
+  version = "1.7.3";
 
   src = fetchFromGitHub {
     owner = "containerd";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-6YMDGvNl1uNMWR1xTPRjYGwaKXC5c4oUy88VRY2Bedw=";
+    hash = "sha256-Y76H/88/esziIermnzfOS48FLBRnVBN8u4C381n184M=";
   };
 
-  vendorHash = "sha256-tXLuOZUoMhVfhhYxnxNw+nYofhEFMKI1b94lVPySd3E=";
+  vendorHash = "sha256-oiBgZQtqFwq189h/Bb4CrFhs4RDYUoEEOjrccujGclU=";
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
 
diff --git a/pkgs/applications/networking/cluster/nomad/default.nix b/pkgs/applications/networking/cluster/nomad/default.nix
index 942a4d3ce013..10c00fc96f5e 100644
--- a/pkgs/applications/networking/cluster/nomad/default.nix
+++ b/pkgs/applications/networking/cluster/nomad/default.nix
@@ -1,6 +1,5 @@
 { lib
 , buildGoModule
-, buildGo120Module
 , buildGo121Module
 , fetchFromGitHub
 , nixosTests
@@ -52,22 +51,15 @@ rec {
   # Upstream partially documents used Go versions here
   # https://github.com/hashicorp/nomad/blob/master/contributing/golang.md
 
-  nomad = nomad_1_6;
+  nomad = nomad_1_7;
 
-  nomad_1_4 = generic {
-    buildGoModule = buildGo120Module;
-    version = "1.4.12";
-    sha256 = "sha256-dO98FOaO5MB5pWzeF705s/aBDTaF0OyWnVxWGB91suI=";
-    vendorHash = "sha256-D5TcTZa64Jr47u4mrTXK4lUIC5gfBQNVgL6QKh1CaQM=";
-    license = lib.licenses.mpl20;
-    passthru.tests.nomad = nixosTests.nomad;
-  };
+  nomad_1_4 = throw "nomad_1_4 is no longer supported upstream. You can switch to using a newer version of the nomad package, or revert to older nixpkgs if you cannot upgrade";
 
   nomad_1_5 = generic {
     buildGoModule = buildGo121Module;
-    version = "1.5.12";
-    sha256 = "sha256-BhKetWtwysWTYI0ruEp/Ixh4eoGxDX0Geup2PCXfsZY=";
-    vendorHash = "sha256-X4pBxKWr5QFRxh9tw5QDpytyuVNXQvV1LHm5IbPELY0=";
+    version = "1.5.13";
+    sha256 = "sha256-SFPjcr3W6Sj1n+1ooi1HDMQEapgGapVy4HtqxSIVi9U=";
+    vendorHash = "sha256-F9lzO3jMVbDq8sA4rBo81vmIoOhK2N8d4HXX58HOw18=";
     license = lib.licenses.mpl20;
     passthru.tests.nomad = nixosTests.nomad;
     preCheck = ''
@@ -77,9 +69,9 @@ rec {
 
   nomad_1_6 = generic {
     buildGoModule = buildGo121Module;
-    version = "1.6.5";
-    sha256 = "sha256-10s/yRWGoYTRbMytWShuTgYc1b388IID5doAvWXpyCU=";
-    vendorHash = "sha256-gd6a/CBJ+OOTNHEaRLoDky2f2cDCyW9wSZzD6K22voQ=";
+    version = "1.6.6";
+    sha256 = "sha256-E7HLBABOtDO/BUc2+4mD4yJ/sfy85gy67ZylRTZI3Cg=";
+    vendorHash = "sha256-6jq00RsukuP8OSkXhqYqQxpXtp/jm/GChEwEJTVyO10=";
     license = lib.licenses.mpl20;
     passthru.tests.nomad = nixosTests.nomad;
     preCheck = ''
@@ -89,9 +81,9 @@ rec {
 
   nomad_1_7 = generic {
     buildGoModule = buildGo121Module;
-    version = "1.7.2";
-    sha256 = "sha256-tFmsX9C++nuUBqLjjpMMyVCwQHn4nlB3OywIPMYE32Q=";
-    vendorHash = "sha256-iMEEBDxK7ALa19GMIabofzq557aXcYpt0H3/jAKnBBM=";
+    version = "1.7.3";
+    sha256 = "sha256-Rl/bDglO87kbtxFCy0eiTQVJCAwPobQI4GJQOflvXhk=";
+    vendorHash = "sha256-M8lGzUvPY8hNhN9ExHasfnLhe+DYBb86RXr1wdrRbgw=";
     license = lib.licenses.bsl11;
     passthru.tests.nomad = nixosTests.nomad;
     preCheck = ''
diff --git a/pkgs/applications/networking/cluster/opentofu/default.nix b/pkgs/applications/networking/cluster/opentofu/default.nix
index 305d437044e6..07353d6c3e38 100644
--- a/pkgs/applications/networking/cluster/opentofu/default.nix
+++ b/pkgs/applications/networking/cluster/opentofu/default.nix
@@ -14,13 +14,13 @@
 let
   package =  buildGoModule rec {
     pname = "opentofu";
-    version = "1.6.0";
+    version = "1.6.1";
 
     src = fetchFromGitHub {
       owner = "opentofu";
       repo = "opentofu";
       rev = "v${version}";
-      hash = "sha256-S/D2qaXdBGEJS1/ihPJAEueUvD2bmqG1hpv+HTXCJSQ=";
+      hash = "sha256-wEDxZtmC+SLIYbN+mGTmefcD6VZu87E9E0XhiJPGmK0=";
     };
 
     vendorHash = "sha256-kSm5RZqQRgbmPaKt5IWmuMhHwAu+oJKTX1q1lbE7hWk=";
diff --git a/pkgs/applications/networking/cluster/popeye/default.nix b/pkgs/applications/networking/cluster/popeye/default.nix
index 8e5a7e68ef56..c955ebec3d22 100644
--- a/pkgs/applications/networking/cluster/popeye/default.nix
+++ b/pkgs/applications/networking/cluster/popeye/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "popeye";
-  version = "0.11.2";
+  version = "0.11.3";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "derailed";
     repo = "popeye";
-    sha256 = "sha256-2mLbBvdUWGspTNeU3QJzR5NDI24njvRO2nss/Bo93W8=";
+    sha256 = "sha256-yxYG74k/HpzIrAFLLSnaqKeODIL+ioNXeyx0aTlsCi0=";
   };
 
   ldflags = [
diff --git a/pkgs/applications/networking/cluster/roxctl/default.nix b/pkgs/applications/networking/cluster/roxctl/default.nix
index 6730440ae12c..607137c8d77a 100644
--- a/pkgs/applications/networking/cluster/roxctl/default.nix
+++ b/pkgs/applications/networking/cluster/roxctl/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "roxctl";
-  version = "4.3.2";
+  version = "4.3.4";
 
   src = fetchFromGitHub {
     owner = "stackrox";
     repo = "stackrox";
     rev = version;
-    sha256 = "sha256-uVpWOUSBbq8r8UBPHHIkn2WVJ0KDX3J0o8cEhn1G9KM=";
+    sha256 = "sha256-5UMU3oKi3QhREum2YevOzwF5OOi8quPWgt+kgGjkeFQ=";
   };
 
   vendorHash = "sha256-Jzv4ozR8RJiwkgVGGq6dlV/7rbBLq8hFe/Pm4SJZCkU=";
diff --git a/pkgs/applications/networking/cluster/sonobuoy/default.nix b/pkgs/applications/networking/cluster/sonobuoy/default.nix
index 6900dc5607ec..a62efd6833fb 100644
--- a/pkgs/applications/networking/cluster/sonobuoy/default.nix
+++ b/pkgs/applications/networking/cluster/sonobuoy/default.nix
@@ -1,7 +1,8 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, testers, sonobuoy }:
 
 # SHA of ${version} for the tool's help output. Unfortunately this is needed in build flags.
-let rev = "6f9e27f1795f10475c9f6f5decdff692e1e228da";
+# The update script can update this automatically, the comment is used to find the line.
+let rev = "6f9e27f1795f10475c9f6f5decdff692e1e228da"; # update-commit-sha
 in
 buildGoModule rec {
   pname = "sonobuoy";
@@ -27,11 +28,17 @@ buildGoModule rec {
 
   subPackages = [ "." ];
 
+  passthru = {
+    updateScript = ./update.sh;
+    tests.version = testers.testVersion {
+      package = sonobuoy;
+      command = "sonobuoy version";
+      version = "v${version}";
+    };
+  };
+
   meta = with lib; {
-    description = ''
-      Diagnostic tool that makes it easier to understand the
-      state of a Kubernetes cluster.
-    '';
+    description = "Diagnostic tool that makes it easier to understand the state of a Kubernetes cluster";
     longDescription = ''
       Sonobuoy is a diagnostic tool that makes it easier to understand the state of
       a Kubernetes cluster by running a set of Kubernetes conformance tests in an
@@ -39,7 +46,9 @@ buildGoModule rec {
     '';
 
     homepage = "https://sonobuoy.io";
+    changelog = "https://github.com/vmware-tanzu/sonobuoy/releases/tag/v${version}";
     license = licenses.asl20;
+    mainProgram = "sonobuoy";
     maintainers = with maintainers; [ carlosdagos saschagrunert wilsonehusin ];
   };
 }
diff --git a/pkgs/applications/networking/cluster/sonobuoy/update.sh b/pkgs/applications/networking/cluster/sonobuoy/update.sh
new file mode 100755
index 000000000000..289069e1919a
--- /dev/null
+++ b/pkgs/applications/networking/cluster/sonobuoy/update.sh
@@ -0,0 +1,50 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p nix-update curl jq gnused
+
+set -euo pipefail
+
+# Do the actual update.
+nix-update "${UPDATE_NIX_ATTR_PATH}"
+
+# Get the src metadata.
+src=$(
+    nix-instantiate --json --eval --strict --expr '
+        with import ./. {};
+        {
+            owner = '"${UPDATE_NIX_ATTR_PATH}"'.src.owner;
+            repo = '"${UPDATE_NIX_ATTR_PATH}"'.src.repo;
+            tag = '"${UPDATE_NIX_ATTR_PATH}"'.src.rev;
+        }'
+)
+owner=$(jq -r '.owner' <<< "${src}")
+repo=$(jq -r '.repo' <<< "${src}")
+tag=$(jq -r '.tag' <<< "${src}")
+
+# Curl the release to get the commit sha.
+curlFlags=("-fsSL")
+curlFlags+=(${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"})
+
+read -r type tag_sha < <(
+    curl "${curlFlags[@]}" "https://api.github.com/repos/${owner}/${repo}/git/ref/tags/${tag}" |
+    jq -j '.object.type, " ", .object.sha, "\n"'
+)
+
+if [[ "${type}" == "commit" ]]; then
+    sha="${tag_sha}"
+else
+    sha=$(
+        curl "${curlFlags[@]}" "https://api.github.com/repos/${owner}/${repo}/git/tags/${tag_sha}" |
+        jq '.object.sha'
+    )
+fi
+
+if [[ -z "${sha}" ]]; then
+    echo "failed to get commit sha of ${owner}/${repo} @ ${tag}" >&2
+    exit 1
+fi
+
+echo "updating commit hash of ${owner}/${repo} @ ${tag} to ${sha}" >&2
+
+cd "$(dirname "$(readlink -f "$0")")"
+
+sed -i "s|\".*\"; # update-commit-sha|${sha}; # update-commit-sha|" default.nix
diff --git a/pkgs/applications/networking/cluster/temporal-cli/default.nix b/pkgs/applications/networking/cluster/temporal-cli/default.nix
index 4ea119877941..491ceba0963b 100644
--- a/pkgs/applications/networking/cluster/temporal-cli/default.nix
+++ b/pkgs/applications/networking/cluster/temporal-cli/default.nix
@@ -17,16 +17,16 @@ let
 
   tctl-next = buildGoModule rec {
     pname = "tctl-next";
-    version = "0.10.7";
+    version = "0.11.0";
 
     src = fetchFromGitHub {
       owner = "temporalio";
       repo = "cli";
       rev = "v${version}";
-      hash = "sha256-pFVCy6xB7Fhj4OatyNQdjkDpDGtod2nJsg2vdl5ED9s=";
+      hash = "sha256-sOmXLqc1O96/50A08b9Rlk5xlmqg2S+5nWachC74IV8=";
     };
 
-    vendorHash = "sha256-mauaavG3oeUzMrBEiK85Tws++6V1WViczRFhyovUpB4=";
+    vendorHash = "sha256-tZvzCQzYIIqoSefm4ty+RI7fFKWWw2OopYGGX8zS6JM=";
 
     inherit overrideModAttrs;
 
diff --git a/pkgs/applications/networking/cluster/temporal/default.nix b/pkgs/applications/networking/cluster/temporal/default.nix
index 63b00032f725..f28d0157c830 100644
--- a/pkgs/applications/networking/cluster/temporal/default.nix
+++ b/pkgs/applications/networking/cluster/temporal/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "temporal";
-  version = "1.22.3";
+  version = "1.22.4";
 
   src = fetchFromGitHub {
     owner = "temporalio";
     repo = "temporal";
     rev = "v${version}";
-    hash = "sha256-iqJzvnueUnIyu3Z6a5Ht90arHaHgM4COCDdZo7Qvzuk=";
+    hash = "sha256-M/2Zm9B2VeA2BKcF7A7R1Y7T61VZiU2uKGwxGgdy4Sg=";
   };
 
   vendorHash = "sha256-Aum5OsdJ69MkP8tXXGWa6IdouX6F4xKjD/ndAqShMhw=";
diff --git a/pkgs/applications/networking/cluster/terraform-compliance/default.nix b/pkgs/applications/networking/cluster/terraform-compliance/default.nix
index b9668b0dd673..ce1915242e43 100644
--- a/pkgs/applications/networking/cluster/terraform-compliance/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-compliance/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "terraform-compliance";
-  version = "1.3.45";
+  version = "1.3.47";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "terraform-compliance";
     repo = "cli";
     rev = "refs/tags/${version}";
-    sha256 = "sha256-Q7EzDL8yt2UPrM4u4f4ttDI5Da0ZzQwZmOlk7RrNN5E=";
+    sha256 = "sha256-QJDKBM5CTOdF7oT42vL+Yp1UsQXWvkSZzo+WSsDxAZw=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/networking/cluster/terraform-docs/default.nix b/pkgs/applications/networking/cluster/terraform-docs/default.nix
index 319db3c9b873..49855b77c544 100644
--- a/pkgs/applications/networking/cluster/terraform-docs/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-docs/default.nix
@@ -1,16 +1,20 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, go_1_21 }:
 buildGoModule rec {
   pname = "terraform-docs";
-  version = "0.16.0";
+  version = "0.17.0";
+
+  go = go_1_21;
 
   src = fetchFromGitHub {
     owner = "terraform-docs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-zSSK2WfcbD1DvqsFUKdTydLfyApWzm1h+ihSnLUmq2E=";
+    sha256 = "sha256-HkkW6JX5wcGElmr6CiSukyeS/8rz4CUThy8rZfx4hbo=";
   };
 
-  vendorHash = "sha256-0Bkjx/gq2MAWjxoMSGtBcRzv40SSUVDZBh4PzEtKj5o=";
+  patches = [ ./update-to-go-1.21.patch ];
+
+  vendorHash = "sha256-ZHWAiXJG8vCmUkf6GNxoIJbIEjEWukLdrmdIb64QleI=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/applications/networking/cluster/terraform-docs/update-to-go-1.21.patch b/pkgs/applications/networking/cluster/terraform-docs/update-to-go-1.21.patch
new file mode 100644
index 000000000000..2397082ca001
--- /dev/null
+++ b/pkgs/applications/networking/cluster/terraform-docs/update-to-go-1.21.patch
@@ -0,0 +1,2698 @@
+diff --git a/go.mod b/go.mod
+index b3035e3..701d299 100644
+--- a/go.mod
++++ b/go.mod
+@@ -1,6 +1,6 @@
+ module github.com/terraform-docs/terraform-docs
+ 
+-go 1.16
++go 1.21
+ 
+ require (
+ 	github.com/BurntSushi/toml v1.3.2
+@@ -23,18 +23,50 @@ require (
+ )
+ 
+ require (
++	github.com/Masterminds/goutils v1.1.1 // indirect
+ 	github.com/Masterminds/semver/v3 v3.2.1 // indirect
+ 	github.com/agext/levenshtein v1.2.3 // indirect
++	github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect
++	github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
+ 	github.com/fatih/color v1.16.0 // indirect
++	github.com/fsnotify/fsnotify v1.7.0 // indirect
++	github.com/golang/protobuf v1.5.3 // indirect
++	github.com/google/go-cmp v0.5.9 // indirect
++	github.com/google/uuid v1.4.0 // indirect
++	github.com/hashicorp/hcl v1.0.0 // indirect
++	github.com/hashicorp/yamux v0.1.1 // indirect
+ 	github.com/huandu/xstrings v1.4.0 // indirect
++	github.com/inconshreveable/mousetrap v1.1.0 // indirect
++	github.com/magiconair/properties v1.8.7 // indirect
++	github.com/mattn/go-colorable v0.1.13 // indirect
++	github.com/mattn/go-isatty v0.0.20 // indirect
+ 	github.com/mitchellh/copystructure v1.2.0 // indirect
+ 	github.com/mitchellh/go-testing-interface v1.14.1 // indirect
+ 	github.com/mitchellh/go-wordwrap v1.0.1 // indirect
++	github.com/mitchellh/mapstructure v1.5.0 // indirect
++	github.com/mitchellh/reflectwalk v1.0.2 // indirect
+ 	github.com/oklog/run v1.1.0 // indirect
++	github.com/pelletier/go-toml/v2 v2.1.0 // indirect
++	github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
++	github.com/sagikazarmark/locafero v0.4.0 // indirect
++	github.com/sagikazarmark/slog-shim v0.1.0 // indirect
+ 	github.com/shopspring/decimal v1.3.1 // indirect
++	github.com/sourcegraph/conc v0.3.0 // indirect
++	github.com/spf13/afero v1.11.0 // indirect
++	github.com/spf13/cast v1.6.0 // indirect
++	github.com/subosito/gotenv v1.6.0 // indirect
+ 	github.com/zclconf/go-cty v1.14.1 // indirect
+ 	go.uber.org/multierr v1.11.0 // indirect
++	golang.org/x/crypto v0.16.0 // indirect
+ 	golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb // indirect
+ 	golang.org/x/exp/typeparams v0.0.0-20220722155223-a9213eeb770e // indirect
++	golang.org/x/mod v0.14.0 // indirect
++	golang.org/x/net v0.19.0 // indirect
++	golang.org/x/sys v0.15.0 // indirect
++	golang.org/x/text v0.14.0 // indirect
++	golang.org/x/tools v0.16.0 // indirect
+ 	google.golang.org/genproto/googleapis/rpc v0.0.0-20231127180814-3a041ad873d4 // indirect
++	google.golang.org/grpc v1.59.0 // indirect
++	google.golang.org/protobuf v1.31.0 // indirect
++	gopkg.in/ini.v1 v1.67.0 // indirect
+ )
+diff --git a/go.sum b/go.sum
+index 8bd57a4..3fc860d 100644
+--- a/go.sum
++++ b/go.sum
+@@ -1,1161 +1,5 @@
+-cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
+-cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
+-cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
+-cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=
+-cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
+-cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
+-cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc=
+-cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0=
+-cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To=
+-cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4=
+-cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M=
+-cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc=
+-cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk=
+-cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs=
+-cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc=
+-cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY=
+-cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI=
+-cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk=
+-cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY=
+-cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg=
+-cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8=
+-cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0=
+-cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY=
+-cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM=
+-cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY=
+-cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ=
+-cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI=
+-cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4=
+-cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc=
+-cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA=
+-cloud.google.com/go v0.100.1/go.mod h1:fs4QogzfH5n2pBXBP9vRiU+eCny7lD2vmFZy79Iuw1U=
+-cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A=
+-cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc=
+-cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU=
+-cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA=
+-cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM=
+-cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I=
+-cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY=
+-cloud.google.com/go v0.110.2/go.mod h1:k04UEeEtb6ZBRTv3dZz4CeJC3jKGxyhl0sAiVVquxiw=
+-cloud.google.com/go v0.110.4/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI=
+-cloud.google.com/go v0.110.6/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI=
+-cloud.google.com/go v0.110.7/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI=
+-cloud.google.com/go v0.110.8/go.mod h1:Iz8AkXJf1qmxC3Oxoep8R1T36w8B92yU29PcBhHO5fk=
+-cloud.google.com/go v0.110.9/go.mod h1:rpxevX/0Lqvlbc88b7Sc1SPNdyK1riNBTUU6JXhYNpM=
+-cloud.google.com/go v0.110.10/go.mod h1:v1OoFqYxiBkUrruItNM3eT4lLByNjxmJSV/xDKJNnic=
+-cloud.google.com/go/accessapproval v1.4.0/go.mod h1:zybIuC3KpDOvotz59lFe5qxRZx6C75OtwbisN56xYB4=
+-cloud.google.com/go/accessapproval v1.5.0/go.mod h1:HFy3tuiGvMdcd/u+Cu5b9NkO1pEICJ46IR82PoUdplw=
+-cloud.google.com/go/accessapproval v1.6.0/go.mod h1:R0EiYnwV5fsRFiKZkPHr6mwyk2wxUJ30nL4j2pcFY2E=
+-cloud.google.com/go/accessapproval v1.7.1/go.mod h1:JYczztsHRMK7NTXb6Xw+dwbs/WnOJxbo/2mTI+Kgg68=
+-cloud.google.com/go/accessapproval v1.7.2/go.mod h1:/gShiq9/kK/h8T/eEn1BTzalDvk0mZxJlhfw0p+Xuc0=
+-cloud.google.com/go/accessapproval v1.7.3/go.mod h1:4l8+pwIxGTNqSf4T3ds8nLO94NQf0W/KnMNuQ9PbnP8=
+-cloud.google.com/go/accessapproval v1.7.4/go.mod h1:/aTEh45LzplQgFYdQdwPMR9YdX0UlhBmvB84uAmQKUc=
+-cloud.google.com/go/accesscontextmanager v1.3.0/go.mod h1:TgCBehyr5gNMz7ZaH9xubp+CE8dkrszb4oK9CWyvD4o=
+-cloud.google.com/go/accesscontextmanager v1.4.0/go.mod h1:/Kjh7BBu/Gh83sv+K60vN9QE5NJcd80sU33vIe2IFPE=
+-cloud.google.com/go/accesscontextmanager v1.6.0/go.mod h1:8XCvZWfYw3K/ji0iVnp+6pu7huxoQTLmxAbVjbloTtM=
+-cloud.google.com/go/accesscontextmanager v1.7.0/go.mod h1:CEGLewx8dwa33aDAZQujl7Dx+uYhS0eay198wB/VumQ=
+-cloud.google.com/go/accesscontextmanager v1.8.0/go.mod h1:uI+AI/r1oyWK99NN8cQ3UK76AMelMzgZCvJfsi2c+ps=
+-cloud.google.com/go/accesscontextmanager v1.8.1/go.mod h1:JFJHfvuaTC+++1iL1coPiG1eu5D24db2wXCDWDjIrxo=
+-cloud.google.com/go/accesscontextmanager v1.8.2/go.mod h1:E6/SCRM30elQJ2PKtFMs2YhfJpZSNcJyejhuzoId4Zk=
+-cloud.google.com/go/accesscontextmanager v1.8.3/go.mod h1:4i/JkF2JiFbhLnnpnfoTX5vRXfhf9ukhU1ANOTALTOQ=
+-cloud.google.com/go/accesscontextmanager v1.8.4/go.mod h1:ParU+WbMpD34s5JFEnGAnPBYAgUHozaTmDJU7aCU9+M=
+-cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw=
+-cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY=
+-cloud.google.com/go/aiplatform v1.27.0/go.mod h1:Bvxqtl40l0WImSb04d0hXFU7gDOiq9jQmorivIiWcKg=
+-cloud.google.com/go/aiplatform v1.35.0/go.mod h1:7MFT/vCaOyZT/4IIFfxH4ErVg/4ku6lKv3w0+tFTgXQ=
+-cloud.google.com/go/aiplatform v1.36.1/go.mod h1:WTm12vJRPARNvJ+v6P52RDHCNe4AhvjcIZ/9/RRHy/k=
+-cloud.google.com/go/aiplatform v1.37.0/go.mod h1:IU2Cv29Lv9oCn/9LkFiiuKfwrRTq+QQMbW+hPCxJGZw=
+-cloud.google.com/go/aiplatform v1.45.0/go.mod h1:Iu2Q7sC7QGhXUeOhAj/oCK9a+ULz1O4AotZiqjQ8MYA=
+-cloud.google.com/go/aiplatform v1.48.0/go.mod h1:Iu2Q7sC7QGhXUeOhAj/oCK9a+ULz1O4AotZiqjQ8MYA=
+-cloud.google.com/go/aiplatform v1.50.0/go.mod h1:IRc2b8XAMTa9ZmfJV1BCCQbieWWvDnP1A8znyz5N7y4=
+-cloud.google.com/go/aiplatform v1.51.0/go.mod h1:IRc2b8XAMTa9ZmfJV1BCCQbieWWvDnP1A8znyz5N7y4=
+-cloud.google.com/go/aiplatform v1.51.1/go.mod h1:kY3nIMAVQOK2XDqDPHaOuD9e+FdMA6OOpfBjsvaFSOo=
+-cloud.google.com/go/aiplatform v1.51.2/go.mod h1:hCqVYB3mY45w99TmetEoe8eCQEwZEp9WHxeZdcv9phw=
+-cloud.google.com/go/aiplatform v1.52.0/go.mod h1:pwZMGvqe0JRkI1GWSZCtnAfrR4K1bv65IHILGA//VEU=
+-cloud.google.com/go/aiplatform v1.54.0/go.mod h1:pwZMGvqe0JRkI1GWSZCtnAfrR4K1bv65IHILGA//VEU=
+-cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI=
+-cloud.google.com/go/analytics v0.12.0/go.mod h1:gkfj9h6XRf9+TS4bmuhPEShsh3hH8PAZzm/41OOhQd4=
+-cloud.google.com/go/analytics v0.17.0/go.mod h1:WXFa3WSym4IZ+JiKmavYdJwGG/CvpqiqczmL59bTD9M=
+-cloud.google.com/go/analytics v0.18.0/go.mod h1:ZkeHGQlcIPkw0R/GW+boWHhCOR43xz9RN/jn7WcqfIE=
+-cloud.google.com/go/analytics v0.19.0/go.mod h1:k8liqf5/HCnOUkbawNtrWWc+UAzyDlW89doe8TtoDsE=
+-cloud.google.com/go/analytics v0.21.2/go.mod h1:U8dcUtmDmjrmUTnnnRnI4m6zKn/yaA5N9RlEkYFHpQo=
+-cloud.google.com/go/analytics v0.21.3/go.mod h1:U8dcUtmDmjrmUTnnnRnI4m6zKn/yaA5N9RlEkYFHpQo=
+-cloud.google.com/go/analytics v0.21.4/go.mod h1:zZgNCxLCy8b2rKKVfC1YkC2vTrpfZmeRCySM3aUbskA=
+-cloud.google.com/go/analytics v0.21.5/go.mod h1:BQtOBHWTlJ96axpPPnw5CvGJ6i3Ve/qX2fTxR8qWyr8=
+-cloud.google.com/go/analytics v0.21.6/go.mod h1:eiROFQKosh4hMaNhF85Oc9WO97Cpa7RggD40e/RBy8w=
+-cloud.google.com/go/apigateway v1.3.0/go.mod h1:89Z8Bhpmxu6AmUxuVRg/ECRGReEdiP3vQtk4Z1J9rJk=
+-cloud.google.com/go/apigateway v1.4.0/go.mod h1:pHVY9MKGaH9PQ3pJ4YLzoj6U5FUDeDFBllIz7WmzJoc=
+-cloud.google.com/go/apigateway v1.5.0/go.mod h1:GpnZR3Q4rR7LVu5951qfXPJCHquZt02jf7xQx7kpqN8=
+-cloud.google.com/go/apigateway v1.6.1/go.mod h1:ufAS3wpbRjqfZrzpvLC2oh0MFlpRJm2E/ts25yyqmXA=
+-cloud.google.com/go/apigateway v1.6.2/go.mod h1:CwMC90nnZElorCW63P2pAYm25AtQrHfuOkbRSHj0bT8=
+-cloud.google.com/go/apigateway v1.6.3/go.mod h1:k68PXWpEs6BVDTtnLQAyG606Q3mz8pshItwPXjgv44Y=
+-cloud.google.com/go/apigateway v1.6.4/go.mod h1:0EpJlVGH5HwAN4VF4Iec8TAzGN1aQgbxAWGJsnPCGGY=
+-cloud.google.com/go/apigeeconnect v1.3.0/go.mod h1:G/AwXFAKo0gIXkPTVfZDd2qA1TxBXJ3MgMRBQkIi9jc=
+-cloud.google.com/go/apigeeconnect v1.4.0/go.mod h1:kV4NwOKqjvt2JYR0AoIWo2QGfoRtn/pkS3QlHp0Ni04=
+-cloud.google.com/go/apigeeconnect v1.5.0/go.mod h1:KFaCqvBRU6idyhSNyn3vlHXc8VMDJdRmwDF6JyFRqZ8=
+-cloud.google.com/go/apigeeconnect v1.6.1/go.mod h1:C4awq7x0JpLtrlQCr8AzVIzAaYgngRqWf9S5Uhg+wWs=
+-cloud.google.com/go/apigeeconnect v1.6.2/go.mod h1:s6O0CgXT9RgAxlq3DLXvG8riw8PYYbU/v25jqP3Dy18=
+-cloud.google.com/go/apigeeconnect v1.6.3/go.mod h1:peG0HFQ0si2bN15M6QSjEW/W7Gy3NYkWGz7pFz13cbo=
+-cloud.google.com/go/apigeeconnect v1.6.4/go.mod h1:CapQCWZ8TCjnU0d7PobxhpOdVz/OVJ2Hr/Zcuu1xFx0=
+-cloud.google.com/go/apigeeregistry v0.4.0/go.mod h1:EUG4PGcsZvxOXAdyEghIdXwAEi/4MEaoqLMLDMIwKXY=
+-cloud.google.com/go/apigeeregistry v0.5.0/go.mod h1:YR5+s0BVNZfVOUkMa5pAR2xGd0A473vA5M7j247o1wM=
+-cloud.google.com/go/apigeeregistry v0.6.0/go.mod h1:BFNzW7yQVLZ3yj0TKcwzb8n25CFBri51GVGOEUcgQsc=
+-cloud.google.com/go/apigeeregistry v0.7.1/go.mod h1:1XgyjZye4Mqtw7T9TsY4NW10U7BojBvG4RMD+vRDrIw=
+-cloud.google.com/go/apigeeregistry v0.7.2/go.mod h1:9CA2B2+TGsPKtfi3F7/1ncCCsL62NXBRfM6iPoGSM+8=
+-cloud.google.com/go/apigeeregistry v0.8.1/go.mod h1:MW4ig1N4JZQsXmBSwH4rwpgDonocz7FPBSw6XPGHmYw=
+-cloud.google.com/go/apigeeregistry v0.8.2/go.mod h1:h4v11TDGdeXJDJvImtgK2AFVvMIgGWjSb0HRnBSjcX8=
+-cloud.google.com/go/apikeys v0.4.0/go.mod h1:XATS/yqZbaBK0HOssf+ALHp8jAlNHUgyfprvNcBIszU=
+-cloud.google.com/go/apikeys v0.5.0/go.mod h1:5aQfwY4D+ewMMWScd3hm2en3hCj+BROlyrt3ytS7KLI=
+-cloud.google.com/go/apikeys v0.6.0/go.mod h1:kbpXu5upyiAlGkKrJgQl8A0rKNNJ7dQ377pdroRSSi8=
+-cloud.google.com/go/appengine v1.4.0/go.mod h1:CS2NhuBuDXM9f+qscZ6V86m1MIIqPj3WC/UoEuR1Sno=
+-cloud.google.com/go/appengine v1.5.0/go.mod h1:TfasSozdkFI0zeoxW3PTBLiNqRmzraodCWatWI9Dmak=
+-cloud.google.com/go/appengine v1.6.0/go.mod h1:hg6i0J/BD2cKmDJbaFSYHFyZkgBEfQrDg/X0V5fJn84=
+-cloud.google.com/go/appengine v1.7.0/go.mod h1:eZqpbHFCqRGa2aCdope7eC0SWLV1j0neb/QnMJVWx6A=
+-cloud.google.com/go/appengine v1.7.1/go.mod h1:IHLToyb/3fKutRysUlFO0BPt5j7RiQ45nrzEJmKTo6E=
+-cloud.google.com/go/appengine v1.8.1/go.mod h1:6NJXGLVhZCN9aQ/AEDvmfzKEfoYBlfB80/BHiKVputY=
+-cloud.google.com/go/appengine v1.8.2/go.mod h1:WMeJV9oZ51pvclqFN2PqHoGnys7rK0rz6s3Mp6yMvDo=
+-cloud.google.com/go/appengine v1.8.3/go.mod h1:2oUPZ1LVZ5EXi+AF1ihNAF+S8JrzQ3till5m9VQkrsk=
+-cloud.google.com/go/appengine v1.8.4/go.mod h1:TZ24v+wXBujtkK77CXCpjZbnuTvsFNT41MUaZ28D6vg=
+-cloud.google.com/go/area120 v0.5.0/go.mod h1:DE/n4mp+iqVyvxHN41Vf1CR602GiHQjFPusMFW6bGR4=
+-cloud.google.com/go/area120 v0.6.0/go.mod h1:39yFJqWVgm0UZqWTOdqkLhjoC7uFfgXRC8g/ZegeAh0=
+-cloud.google.com/go/area120 v0.7.0/go.mod h1:a3+8EUD1SX5RUcCs3MY5YasiO1z6yLiNLRiFrykbynY=
+-cloud.google.com/go/area120 v0.7.1/go.mod h1:j84i4E1RboTWjKtZVWXPqvK5VHQFJRF2c1Nm69pWm9k=
+-cloud.google.com/go/area120 v0.8.1/go.mod h1:BVfZpGpB7KFVNxPiQBuHkX6Ed0rS51xIgmGyjrAfzsg=
+-cloud.google.com/go/area120 v0.8.2/go.mod h1:a5qfo+x77SRLXnCynFWPUZhnZGeSgvQ+Y0v1kSItkh4=
+-cloud.google.com/go/area120 v0.8.3/go.mod h1:5zj6pMzVTH+SVHljdSKC35sriR/CVvQZzG/Icdyriw0=
+-cloud.google.com/go/area120 v0.8.4/go.mod h1:jfawXjxf29wyBXr48+W+GyX/f8fflxp642D/bb9v68M=
+-cloud.google.com/go/artifactregistry v1.6.0/go.mod h1:IYt0oBPSAGYj/kprzsBjZ/4LnG/zOcHyFHjWPCi6SAQ=
+-cloud.google.com/go/artifactregistry v1.7.0/go.mod h1:mqTOFOnGZx8EtSqK/ZWcsm/4U8B77rbcLP6ruDU2Ixk=
+-cloud.google.com/go/artifactregistry v1.8.0/go.mod h1:w3GQXkJX8hiKN0v+at4b0qotwijQbYUqF2GWkZzAhC0=
+-cloud.google.com/go/artifactregistry v1.9.0/go.mod h1:2K2RqvA2CYvAeARHRkLDhMDJ3OXy26h3XW+3/Jh2uYc=
+-cloud.google.com/go/artifactregistry v1.11.1/go.mod h1:lLYghw+Itq9SONbCa1YWBoWs1nOucMH0pwXN1rOBZFI=
+-cloud.google.com/go/artifactregistry v1.11.2/go.mod h1:nLZns771ZGAwVLzTX/7Al6R9ehma4WUEhZGWV6CeQNQ=
+-cloud.google.com/go/artifactregistry v1.12.0/go.mod h1:o6P3MIvtzTOnmvGagO9v/rOjjA0HmhJ+/6KAXrmYDCI=
+-cloud.google.com/go/artifactregistry v1.13.0/go.mod h1:uy/LNfoOIivepGhooAUpL1i30Hgee3Cu0l4VTWHUC08=
+-cloud.google.com/go/artifactregistry v1.14.1/go.mod h1:nxVdG19jTaSTu7yA7+VbWL346r3rIdkZ142BSQqhn5E=
+-cloud.google.com/go/artifactregistry v1.14.2/go.mod h1:Xk+QbsKEb0ElmyeMfdHAey41B+qBq3q5R5f5xD4XT3U=
+-cloud.google.com/go/artifactregistry v1.14.3/go.mod h1:A2/E9GXnsyXl7GUvQ/2CjHA+mVRoWAXC0brg2os+kNI=
+-cloud.google.com/go/artifactregistry v1.14.4/go.mod h1:SJJcZTMv6ce0LDMUnihCN7WSrI+kBSFV0KIKo8S8aYU=
+-cloud.google.com/go/artifactregistry v1.14.6/go.mod h1:np9LSFotNWHcjnOgh8UVK0RFPCTUGbO0ve3384xyHfE=
+-cloud.google.com/go/asset v1.5.0/go.mod h1:5mfs8UvcM5wHhqtSv8J1CtxxaQq3AdBxxQi2jGW/K4o=
+-cloud.google.com/go/asset v1.7.0/go.mod h1:YbENsRK4+xTiL+Ofoj5Ckf+O17kJtgp3Y3nn4uzZz5s=
+-cloud.google.com/go/asset v1.8.0/go.mod h1:mUNGKhiqIdbr8X7KNayoYvyc4HbbFO9URsjbytpUaW0=
+-cloud.google.com/go/asset v1.9.0/go.mod h1:83MOE6jEJBMqFKadM9NLRcs80Gdw76qGuHn8m3h8oHQ=
+-cloud.google.com/go/asset v1.10.0/go.mod h1:pLz7uokL80qKhzKr4xXGvBQXnzHn5evJAEAtZiIb0wY=
+-cloud.google.com/go/asset v1.11.1/go.mod h1:fSwLhbRvC9p9CXQHJ3BgFeQNM4c9x10lqlrdEUYXlJo=
+-cloud.google.com/go/asset v1.12.0/go.mod h1:h9/sFOa4eDIyKmH6QMpm4eUK3pDojWnUhTgJlk762Hg=
+-cloud.google.com/go/asset v1.13.0/go.mod h1:WQAMyYek/b7NBpYq/K4KJWcRqzoalEsxz/t/dTk4THw=
+-cloud.google.com/go/asset v1.14.1/go.mod h1:4bEJ3dnHCqWCDbWJ/6Vn7GVI9LerSi7Rfdi03hd+WTQ=
+-cloud.google.com/go/asset v1.15.0/go.mod h1:tpKafV6mEut3+vN9ScGvCHXHj7FALFVta+okxFECHcg=
+-cloud.google.com/go/asset v1.15.1/go.mod h1:yX/amTvFWRpp5rcFq6XbCxzKT8RJUam1UoboE179jU4=
+-cloud.google.com/go/asset v1.15.2/go.mod h1:B6H5tclkXvXz7PD22qCA2TDxSVQfasa3iDlM89O2NXs=
+-cloud.google.com/go/asset v1.15.3/go.mod h1:yYLfUD4wL4X589A9tYrv4rFrba0QlDeag0CMcM5ggXU=
+-cloud.google.com/go/assuredworkloads v1.5.0/go.mod h1:n8HOZ6pff6re5KYfBXcFvSViQjDwxFkAkmUFffJRbbY=
+-cloud.google.com/go/assuredworkloads v1.6.0/go.mod h1:yo2YOk37Yc89Rsd5QMVECvjaMKymF9OP+QXWlKXUkXw=
+-cloud.google.com/go/assuredworkloads v1.7.0/go.mod h1:z/736/oNmtGAyU47reJgGN+KVoYoxeLBoj4XkKYscNI=
+-cloud.google.com/go/assuredworkloads v1.8.0/go.mod h1:AsX2cqyNCOvEQC8RMPnoc0yEarXQk6WEKkxYfL6kGIo=
+-cloud.google.com/go/assuredworkloads v1.9.0/go.mod h1:kFuI1P78bplYtT77Tb1hi0FMxM0vVpRC7VVoJC3ZoT0=
+-cloud.google.com/go/assuredworkloads v1.10.0/go.mod h1:kwdUQuXcedVdsIaKgKTp9t0UJkE5+PAVNhdQm4ZVq2E=
+-cloud.google.com/go/assuredworkloads v1.11.1/go.mod h1:+F04I52Pgn5nmPG36CWFtxmav6+7Q+c5QyJoL18Lry0=
+-cloud.google.com/go/assuredworkloads v1.11.2/go.mod h1:O1dfr+oZJMlE6mw0Bp0P1KZSlj5SghMBvTpZqIcUAW4=
+-cloud.google.com/go/assuredworkloads v1.11.3/go.mod h1:vEjfTKYyRUaIeA0bsGJceFV2JKpVRgyG2op3jfa59Zs=
+-cloud.google.com/go/assuredworkloads v1.11.4/go.mod h1:4pwwGNwy1RP0m+y12ef3Q/8PaiWrIDQ6nD2E8kvWI9U=
+-cloud.google.com/go/automl v1.5.0/go.mod h1:34EjfoFGMZ5sgJ9EoLsRtdPSNZLcfflJR39VbVNS2M0=
+-cloud.google.com/go/automl v1.6.0/go.mod h1:ugf8a6Fx+zP0D59WLhqgTDsQI9w07o64uf/Is3Nh5p8=
+-cloud.google.com/go/automl v1.7.0/go.mod h1:RL9MYCCsJEOmt0Wf3z9uzG0a7adTT1fe+aObgSpkCt8=
+-cloud.google.com/go/automl v1.8.0/go.mod h1:xWx7G/aPEe/NP+qzYXktoBSDfjO+vnKMGgsApGJJquM=
+-cloud.google.com/go/automl v1.12.0/go.mod h1:tWDcHDp86aMIuHmyvjuKeeHEGq76lD7ZqfGLN6B0NuU=
+-cloud.google.com/go/automl v1.13.1/go.mod h1:1aowgAHWYZU27MybSCFiukPO7xnyawv7pt3zK4bheQE=
+-cloud.google.com/go/automl v1.13.2/go.mod h1:gNY/fUmDEN40sP8amAX3MaXkxcqPIn7F1UIIPZpy4Mg=
+-cloud.google.com/go/automl v1.13.3/go.mod h1:Y8KwvyAZFOsMAPqUCfNu1AyclbC6ivCUF/MTwORymyY=
+-cloud.google.com/go/automl v1.13.4/go.mod h1:ULqwX/OLZ4hBVfKQaMtxMSTlPx0GqGbWN8uA/1EqCP8=
+-cloud.google.com/go/baremetalsolution v0.3.0/go.mod h1:XOrocE+pvK1xFfleEnShBlNAXf+j5blPPxrhjKgnIFc=
+-cloud.google.com/go/baremetalsolution v0.4.0/go.mod h1:BymplhAadOO/eBa7KewQ0Ppg4A4Wplbn+PsFKRLo0uI=
+-cloud.google.com/go/baremetalsolution v0.5.0/go.mod h1:dXGxEkmR9BMwxhzBhV0AioD0ULBmuLZI8CdwalUxuss=
+-cloud.google.com/go/baremetalsolution v1.1.1/go.mod h1:D1AV6xwOksJMV4OSlWHtWuFNZZYujJknMAP4Qa27QIA=
+-cloud.google.com/go/baremetalsolution v1.2.0/go.mod h1:68wi9AwPYkEWIUT4SvSGS9UJwKzNpshjHsH4lzk8iOw=
+-cloud.google.com/go/baremetalsolution v1.2.1/go.mod h1:3qKpKIw12RPXStwQXcbhfxVj1dqQGEvcmA+SX/mUR88=
+-cloud.google.com/go/baremetalsolution v1.2.2/go.mod h1:O5V6Uu1vzVelYahKfwEWRMaS3AbCkeYHy3145s1FkhM=
+-cloud.google.com/go/baremetalsolution v1.2.3/go.mod h1:/UAQ5xG3faDdy180rCUv47e0jvpp3BFxT+Cl0PFjw5g=
+-cloud.google.com/go/batch v0.3.0/go.mod h1:TR18ZoAekj1GuirsUsR1ZTKN3FC/4UDnScjT8NXImFE=
+-cloud.google.com/go/batch v0.4.0/go.mod h1:WZkHnP43R/QCGQsZ+0JyG4i79ranE2u8xvjq/9+STPE=
+-cloud.google.com/go/batch v0.7.0/go.mod h1:vLZN95s6teRUqRQ4s3RLDsH8PvboqBK+rn1oevL159g=
+-cloud.google.com/go/batch v1.3.1/go.mod h1:VguXeQKXIYaeeIYbuozUmBR13AfL4SJP7IltNPS+A4A=
+-cloud.google.com/go/batch v1.4.1/go.mod h1:KdBmDD61K0ovcxoRHGrN6GmOBWeAOyCgKD0Mugx4Fkk=
+-cloud.google.com/go/batch v1.5.0/go.mod h1:KdBmDD61K0ovcxoRHGrN6GmOBWeAOyCgKD0Mugx4Fkk=
+-cloud.google.com/go/batch v1.5.1/go.mod h1:RpBuIYLkQu8+CWDk3dFD/t/jOCGuUpkpX+Y0n1Xccs8=
+-cloud.google.com/go/batch v1.6.1/go.mod h1:urdpD13zPe6YOK+6iZs/8/x2VBRofvblLpx0t57vM98=
+-cloud.google.com/go/batch v1.6.3/go.mod h1:J64gD4vsNSA2O5TtDB5AAux3nJ9iV8U3ilg3JDBYejU=
+-cloud.google.com/go/beyondcorp v0.2.0/go.mod h1:TB7Bd+EEtcw9PCPQhCJtJGjk/7TC6ckmnSFS+xwTfm4=
+-cloud.google.com/go/beyondcorp v0.3.0/go.mod h1:E5U5lcrcXMsCuoDNyGrpyTm/hn7ne941Jz2vmksAxW8=
+-cloud.google.com/go/beyondcorp v0.4.0/go.mod h1:3ApA0mbhHx6YImmuubf5pyW8srKnCEPON32/5hj+RmM=
+-cloud.google.com/go/beyondcorp v0.5.0/go.mod h1:uFqj9X+dSfrheVp7ssLTaRHd2EHqSL4QZmH4e8WXGGU=
+-cloud.google.com/go/beyondcorp v0.6.1/go.mod h1:YhxDWw946SCbmcWo3fAhw3V4XZMSpQ/VYfcKGAEU8/4=
+-cloud.google.com/go/beyondcorp v1.0.0/go.mod h1:YhxDWw946SCbmcWo3fAhw3V4XZMSpQ/VYfcKGAEU8/4=
+-cloud.google.com/go/beyondcorp v1.0.1/go.mod h1:zl/rWWAFVeV+kx+X2Javly7o1EIQThU4WlkynffL/lk=
+-cloud.google.com/go/beyondcorp v1.0.2/go.mod h1:m8cpG7caD+5su+1eZr+TSvF6r21NdLJk4f9u4SP2Ntc=
+-cloud.google.com/go/beyondcorp v1.0.3/go.mod h1:HcBvnEd7eYr+HGDd5ZbuVmBYX019C6CEXBonXbCVwJo=
+-cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
+-cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE=
+-cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc=
+-cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg=
+-cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc=
+-cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ=
+-cloud.google.com/go/bigquery v1.42.0/go.mod h1:8dRTJxhtG+vwBKzE5OseQn/hiydoQN3EedCaOdYmxRA=
+-cloud.google.com/go/bigquery v1.43.0/go.mod h1:ZMQcXHsl+xmU1z36G2jNGZmKp9zNY5BUua5wDgmNCfw=
+-cloud.google.com/go/bigquery v1.44.0/go.mod h1:0Y33VqXTEsbamHJvJHdFmtqHvMIY28aK1+dFsvaChGc=
+-cloud.google.com/go/bigquery v1.47.0/go.mod h1:sA9XOgy0A8vQK9+MWhEQTY6Tix87M/ZurWFIxmF9I/E=
+-cloud.google.com/go/bigquery v1.48.0/go.mod h1:QAwSz+ipNgfL5jxiaK7weyOhzdoAy1zFm0Nf1fysJac=
+-cloud.google.com/go/bigquery v1.49.0/go.mod h1:Sv8hMmTFFYBlt/ftw2uN6dFdQPzBlREY9yBh7Oy7/4Q=
+-cloud.google.com/go/bigquery v1.50.0/go.mod h1:YrleYEh2pSEbgTBZYMJ5SuSr0ML3ypjRB1zgf7pvQLU=
+-cloud.google.com/go/bigquery v1.52.0/go.mod h1:3b/iXjRQGU4nKa87cXeg6/gogLjO8C6PmuM8i5Bi/u4=
+-cloud.google.com/go/bigquery v1.53.0/go.mod h1:3b/iXjRQGU4nKa87cXeg6/gogLjO8C6PmuM8i5Bi/u4=
+-cloud.google.com/go/bigquery v1.55.0/go.mod h1:9Y5I3PN9kQWuid6183JFhOGOW3GcirA5LpsKCUn+2ec=
+-cloud.google.com/go/bigquery v1.56.0/go.mod h1:KDcsploXTEY7XT3fDQzMUZlpQLHzE4itubHrnmhUrZA=
+-cloud.google.com/go/bigquery v1.57.1/go.mod h1:iYzC0tGVWt1jqSzBHqCr3lrRn0u13E8e+AqowBsDgug=
+-cloud.google.com/go/billing v1.4.0/go.mod h1:g9IdKBEFlItS8bTtlrZdVLWSSdSyFUZKXNS02zKMOZY=
+-cloud.google.com/go/billing v1.5.0/go.mod h1:mztb1tBc3QekhjSgmpf/CV4LzWXLzCArwpLmP2Gm88s=
+-cloud.google.com/go/billing v1.6.0/go.mod h1:WoXzguj+BeHXPbKfNWkqVtDdzORazmCjraY+vrxcyvI=
+-cloud.google.com/go/billing v1.7.0/go.mod h1:q457N3Hbj9lYwwRbnlD7vUpyjq6u5U1RAOArInEiD5Y=
+-cloud.google.com/go/billing v1.12.0/go.mod h1:yKrZio/eu+okO/2McZEbch17O5CB5NpZhhXG6Z766ss=
+-cloud.google.com/go/billing v1.13.0/go.mod h1:7kB2W9Xf98hP9Sr12KfECgfGclsH3CQR0R08tnRlRbc=
+-cloud.google.com/go/billing v1.16.0/go.mod h1:y8vx09JSSJG02k5QxbycNRrN7FGZB6F3CAcgum7jvGA=
+-cloud.google.com/go/billing v1.17.0/go.mod h1:Z9+vZXEq+HwH7bhJkyI4OQcR6TSbeMrjlpEjO2vzY64=
+-cloud.google.com/go/billing v1.17.1/go.mod h1:Z9+vZXEq+HwH7bhJkyI4OQcR6TSbeMrjlpEjO2vzY64=
+-cloud.google.com/go/billing v1.17.2/go.mod h1:u/AdV/3wr3xoRBk5xvUzYMS1IawOAPwQMuHgHMdljDg=
+-cloud.google.com/go/billing v1.17.3/go.mod h1:z83AkoZ7mZwBGT3yTnt6rSGI1OOsHSIi6a5M3mJ8NaU=
+-cloud.google.com/go/billing v1.17.4/go.mod h1:5DOYQStCxquGprqfuid/7haD7th74kyMBHkjO/OvDtk=
+-cloud.google.com/go/binaryauthorization v1.1.0/go.mod h1:xwnoWu3Y84jbuHa0zd526MJYmtnVXn0syOjaJgy4+dM=
+-cloud.google.com/go/binaryauthorization v1.2.0/go.mod h1:86WKkJHtRcv5ViNABtYMhhNWRrD1Vpi//uKEy7aYEfI=
+-cloud.google.com/go/binaryauthorization v1.3.0/go.mod h1:lRZbKgjDIIQvzYQS1p99A7/U1JqvqeZg0wiI5tp6tg0=
+-cloud.google.com/go/binaryauthorization v1.4.0/go.mod h1:tsSPQrBd77VLplV70GUhBf/Zm3FsKmgSqgm4UmiDItk=
+-cloud.google.com/go/binaryauthorization v1.5.0/go.mod h1:OSe4OU1nN/VswXKRBmciKpo9LulY41gch5c68htf3/Q=
+-cloud.google.com/go/binaryauthorization v1.6.1/go.mod h1:TKt4pa8xhowwffiBmbrbcxijJRZED4zrqnwZ1lKH51U=
+-cloud.google.com/go/binaryauthorization v1.7.0/go.mod h1:Zn+S6QqTMn6odcMU1zDZCJxPjU2tZPV1oDl45lWY154=
+-cloud.google.com/go/binaryauthorization v1.7.1/go.mod h1:GTAyfRWYgcbsP3NJogpV3yeunbUIjx2T9xVeYovtURE=
+-cloud.google.com/go/binaryauthorization v1.7.2/go.mod h1:kFK5fQtxEp97m92ziy+hbu+uKocka1qRRL8MVJIgjv0=
+-cloud.google.com/go/binaryauthorization v1.7.3/go.mod h1:VQ/nUGRKhrStlGr+8GMS8f6/vznYLkdK5vaKfdCIpvU=
+-cloud.google.com/go/certificatemanager v1.3.0/go.mod h1:n6twGDvcUBFu9uBgt4eYvvf3sQ6My8jADcOVwHmzadg=
+-cloud.google.com/go/certificatemanager v1.4.0/go.mod h1:vowpercVFyqs8ABSmrdV+GiFf2H/ch3KyudYQEMM590=
+-cloud.google.com/go/certificatemanager v1.6.0/go.mod h1:3Hh64rCKjRAX8dXgRAyOcY5vQ/fE1sh8o+Mdd6KPgY8=
+-cloud.google.com/go/certificatemanager v1.7.1/go.mod h1:iW8J3nG6SaRYImIa+wXQ0g8IgoofDFRp5UMzaNk1UqI=
+-cloud.google.com/go/certificatemanager v1.7.2/go.mod h1:15SYTDQMd00kdoW0+XY5d9e+JbOPjp24AvF48D8BbcQ=
+-cloud.google.com/go/certificatemanager v1.7.3/go.mod h1:T/sZYuC30PTag0TLo28VedIRIj1KPGcOQzjWAptHa00=
+-cloud.google.com/go/certificatemanager v1.7.4/go.mod h1:FHAylPe/6IIKuaRmHbjbdLhGhVQ+CWHSD5Jq0k4+cCE=
+-cloud.google.com/go/channel v1.8.0/go.mod h1:W5SwCXDJsq/rg3tn3oG0LOxpAo6IMxNa09ngphpSlnk=
+-cloud.google.com/go/channel v1.9.0/go.mod h1:jcu05W0my9Vx4mt3/rEHpfxc9eKi9XwsdDL8yBMbKUk=
+-cloud.google.com/go/channel v1.11.0/go.mod h1:IdtI0uWGqhEeatSB62VOoJ8FSUhJ9/+iGkJVqp74CGE=
+-cloud.google.com/go/channel v1.12.0/go.mod h1:VkxCGKASi4Cq7TbXxlaBezonAYpp1GCnKMY6tnMQnLU=
+-cloud.google.com/go/channel v1.16.0/go.mod h1:eN/q1PFSl5gyu0dYdmxNXscY/4Fi7ABmeHCJNf/oHmc=
+-cloud.google.com/go/channel v1.17.0/go.mod h1:RpbhJsGi/lXWAUM1eF4IbQGbsfVlg2o8Iiy2/YLfVT0=
+-cloud.google.com/go/channel v1.17.1/go.mod h1:xqfzcOZAcP4b/hUDH0GkGg1Sd5to6di1HOJn/pi5uBQ=
+-cloud.google.com/go/channel v1.17.2/go.mod h1:aT2LhnftnyfQceFql5I/mP8mIbiiJS4lWqgXA815zMk=
+-cloud.google.com/go/channel v1.17.3/go.mod h1:QcEBuZLGGrUMm7kNj9IbU1ZfmJq2apotsV83hbxX7eE=
+-cloud.google.com/go/cloudbuild v1.3.0/go.mod h1:WequR4ULxlqvMsjDEEEFnOG5ZSRSgWOywXYDb1vPE6U=
+-cloud.google.com/go/cloudbuild v1.4.0/go.mod h1:5Qwa40LHiOXmz3386FrjrYM93rM/hdRr7b53sySrTqA=
+-cloud.google.com/go/cloudbuild v1.6.0/go.mod h1:UIbc/w9QCbH12xX+ezUsgblrWv+Cv4Tw83GiSMHOn9M=
+-cloud.google.com/go/cloudbuild v1.7.0/go.mod h1:zb5tWh2XI6lR9zQmsm1VRA+7OCuve5d8S+zJUul8KTg=
+-cloud.google.com/go/cloudbuild v1.9.0/go.mod h1:qK1d7s4QlO0VwfYn5YuClDGg2hfmLZEb4wQGAbIgL1s=
+-cloud.google.com/go/cloudbuild v1.10.1/go.mod h1:lyJg7v97SUIPq4RC2sGsz/9tNczhyv2AjML/ci4ulzU=
+-cloud.google.com/go/cloudbuild v1.13.0/go.mod h1:lyJg7v97SUIPq4RC2sGsz/9tNczhyv2AjML/ci4ulzU=
+-cloud.google.com/go/cloudbuild v1.14.0/go.mod h1:lyJg7v97SUIPq4RC2sGsz/9tNczhyv2AjML/ci4ulzU=
+-cloud.google.com/go/cloudbuild v1.14.1/go.mod h1:K7wGc/3zfvmYWOWwYTgF/d/UVJhS4pu+HAy7PL7mCsU=
+-cloud.google.com/go/cloudbuild v1.14.2/go.mod h1:Bn6RO0mBYk8Vlrt+8NLrru7WXlQ9/RDWz2uo5KG1/sg=
+-cloud.google.com/go/cloudbuild v1.14.3/go.mod h1:eIXYWmRt3UtggLnFGx4JvXcMj4kShhVzGndL1LwleEM=
+-cloud.google.com/go/cloudbuild v1.15.0/go.mod h1:eIXYWmRt3UtggLnFGx4JvXcMj4kShhVzGndL1LwleEM=
+-cloud.google.com/go/clouddms v1.3.0/go.mod h1:oK6XsCDdW4Ib3jCCBugx+gVjevp2TMXFtgxvPSee3OM=
+-cloud.google.com/go/clouddms v1.4.0/go.mod h1:Eh7sUGCC+aKry14O1NRljhjyrr0NFC0G2cjwX0cByRk=
+-cloud.google.com/go/clouddms v1.5.0/go.mod h1:QSxQnhikCLUw13iAbffF2CZxAER3xDGNHjsTAkQJcQA=
+-cloud.google.com/go/clouddms v1.6.1/go.mod h1:Ygo1vL52Ov4TBZQquhz5fiw2CQ58gvu+PlS6PVXCpZI=
+-cloud.google.com/go/clouddms v1.7.0/go.mod h1:MW1dC6SOtI/tPNCciTsXtsGNEM0i0OccykPvv3hiYeM=
+-cloud.google.com/go/clouddms v1.7.1/go.mod h1:o4SR8U95+P7gZ/TX+YbJxehOCsM+fe6/brlrFquiszk=
+-cloud.google.com/go/clouddms v1.7.2/go.mod h1:Rk32TmWmHo64XqDvW7jgkFQet1tUKNVzs7oajtJT3jU=
+-cloud.google.com/go/clouddms v1.7.3/go.mod h1:fkN2HQQNUYInAU3NQ3vRLkV2iWs8lIdmBKOx4nrL6Hc=
+-cloud.google.com/go/cloudtasks v1.5.0/go.mod h1:fD92REy1x5woxkKEkLdvavGnPJGEn8Uic9nWuLzqCpY=
+-cloud.google.com/go/cloudtasks v1.6.0/go.mod h1:C6Io+sxuke9/KNRkbQpihnW93SWDU3uXt92nu85HkYI=
+-cloud.google.com/go/cloudtasks v1.7.0/go.mod h1:ImsfdYWwlWNJbdgPIIGJWC+gemEGTBK/SunNQQNCAb4=
+-cloud.google.com/go/cloudtasks v1.8.0/go.mod h1:gQXUIwCSOI4yPVK7DgTVFiiP0ZW/eQkydWzwVMdHxrI=
+-cloud.google.com/go/cloudtasks v1.9.0/go.mod h1:w+EyLsVkLWHcOaqNEyvcKAsWp9p29dL6uL9Nst1cI7Y=
+-cloud.google.com/go/cloudtasks v1.10.0/go.mod h1:NDSoTLkZ3+vExFEWu2UJV1arUyzVDAiZtdWcsUyNwBs=
+-cloud.google.com/go/cloudtasks v1.11.1/go.mod h1:a9udmnou9KO2iulGscKR0qBYjreuX8oHwpmFsKspEvM=
+-cloud.google.com/go/cloudtasks v1.12.1/go.mod h1:a9udmnou9KO2iulGscKR0qBYjreuX8oHwpmFsKspEvM=
+-cloud.google.com/go/cloudtasks v1.12.2/go.mod h1:A7nYkjNlW2gUoROg1kvJrQGhJP/38UaWwsnuBDOBVUk=
+-cloud.google.com/go/cloudtasks v1.12.3/go.mod h1:GPVXhIOSGEaR+3xT4Fp72ScI+HjHffSS4B8+BaBB5Ys=
+-cloud.google.com/go/cloudtasks v1.12.4/go.mod h1:BEPu0Gtt2dU6FxZHNqqNdGqIG86qyWKBPGnsb7udGY0=
+-cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow=
+-cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM=
+-cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M=
+-cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz/FMzPu0s=
+-cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU=
+-cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U=
+-cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU=
+-cloud.google.com/go/compute v1.12.0/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU=
+-cloud.google.com/go/compute v1.12.1/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU=
+-cloud.google.com/go/compute v1.13.0/go.mod h1:5aPTS0cUNMIc1CE546K+Th6weJUNQErARyZtRXDJ8GE=
+-cloud.google.com/go/compute v1.14.0/go.mod h1:YfLtxrj9sU4Yxv+sXzZkyPjEyPBZfXHUvjxega5vAdo=
+-cloud.google.com/go/compute v1.15.1/go.mod h1:bjjoF/NtFUrkD/urWfdHaKuOPDR5nWIs63rR+SXhcpA=
+-cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs=
+-cloud.google.com/go/compute v1.19.0/go.mod h1:rikpw2y+UMidAe9tISo04EHNOIf42RLYF/q8Bs93scU=
+-cloud.google.com/go/compute v1.19.1/go.mod h1:6ylj3a05WF8leseCdIf77NK0g1ey+nj5IKd5/kvShxE=
+-cloud.google.com/go/compute v1.19.3/go.mod h1:qxvISKp/gYnXkSAD1ppcSOveRAmzxicEv/JlizULFrI=
+-cloud.google.com/go/compute v1.20.1/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM=
+-cloud.google.com/go/compute v1.21.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM=
+-cloud.google.com/go/compute v1.23.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM=
+-cloud.google.com/go/compute v1.23.1/go.mod h1:CqB3xpmPKKt3OJpW2ndFIXnA9A4xAy/F3Xp1ixncW78=
+-cloud.google.com/go/compute v1.23.2/go.mod h1:JJ0atRC0J/oWYiiVBmsSsrRnh92DhZPG4hFDcR04Rns=
+-cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI=
+-cloud.google.com/go/compute/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZEXYonfTBHHFPO/4UU=
+-cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k=
+-cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM=
+-cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
+-cloud.google.com/go/contactcenterinsights v1.3.0/go.mod h1:Eu2oemoePuEFc/xKFPjbTuPSj0fYJcPls9TFlPNnHHY=
+-cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck=
+-cloud.google.com/go/contactcenterinsights v1.6.0/go.mod h1:IIDlT6CLcDoyv79kDv8iWxMSTZhLxSCofVV5W6YFM/w=
+-cloud.google.com/go/contactcenterinsights v1.9.1/go.mod h1:bsg/R7zGLYMVxFFzfh9ooLTruLRCG9fnzhH9KznHhbM=
+-cloud.google.com/go/contactcenterinsights v1.10.0/go.mod h1:bsg/R7zGLYMVxFFzfh9ooLTruLRCG9fnzhH9KznHhbM=
+-cloud.google.com/go/contactcenterinsights v1.11.0/go.mod h1:hutBdImE4XNZ1NV4vbPJKSFOnQruhC5Lj9bZqWMTKiU=
+-cloud.google.com/go/contactcenterinsights v1.11.1/go.mod h1:FeNP3Kg8iteKM80lMwSk3zZZKVxr+PGnAId6soKuXwE=
+-cloud.google.com/go/contactcenterinsights v1.11.2/go.mod h1:A9PIR5ov5cRcd28KlDbmmXE8Aay+Gccer2h4wzkYFso=
+-cloud.google.com/go/contactcenterinsights v1.11.3/go.mod h1:HHX5wrz5LHVAwfI2smIotQG9x8Qd6gYilaHcLLLmNis=
+-cloud.google.com/go/contactcenterinsights v1.12.0/go.mod h1:HHX5wrz5LHVAwfI2smIotQG9x8Qd6gYilaHcLLLmNis=
+-cloud.google.com/go/container v1.6.0/go.mod h1:Xazp7GjJSeUYo688S+6J5V+n/t+G5sKBTFkKNudGRxg=
+-cloud.google.com/go/container v1.7.0/go.mod h1:Dp5AHtmothHGX3DwwIHPgq45Y8KmNsgN3amoYfxVkLo=
+-cloud.google.com/go/container v1.13.1/go.mod h1:6wgbMPeQRw9rSnKBCAJXnds3Pzj03C4JHamr8asWKy4=
+-cloud.google.com/go/container v1.14.0/go.mod h1:3AoJMPhHfLDxLvrlVWaK57IXzaPnLaZq63WX59aQBfM=
+-cloud.google.com/go/container v1.15.0/go.mod h1:ft+9S0WGjAyjDggg5S06DXj+fHJICWg8L7isCQe9pQA=
+-cloud.google.com/go/container v1.22.1/go.mod h1:lTNExE2R7f+DLbAN+rJiKTisauFCaoDq6NURZ83eVH4=
+-cloud.google.com/go/container v1.24.0/go.mod h1:lTNExE2R7f+DLbAN+rJiKTisauFCaoDq6NURZ83eVH4=
+-cloud.google.com/go/container v1.26.0/go.mod h1:YJCmRet6+6jnYYRS000T6k0D0xUXQgBSaJ7VwI8FBj4=
+-cloud.google.com/go/container v1.26.1/go.mod h1:5smONjPRUxeEpDG7bMKWfDL4sauswqEtnBK1/KKpR04=
+-cloud.google.com/go/container v1.26.2/go.mod h1:YlO84xCt5xupVbLaMY4s3XNE79MUJ+49VmkInr6HvF4=
+-cloud.google.com/go/container v1.27.1/go.mod h1:b1A1gJeTBXVLQ6GGw9/9M4FG94BEGsqJ5+t4d/3N7O4=
+-cloud.google.com/go/container v1.28.0/go.mod h1:b1A1gJeTBXVLQ6GGw9/9M4FG94BEGsqJ5+t4d/3N7O4=
+-cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I=
+-cloud.google.com/go/containeranalysis v0.6.0/go.mod h1:HEJoiEIu+lEXM+k7+qLCci0h33lX3ZqoYFdmPcoO7s4=
+-cloud.google.com/go/containeranalysis v0.7.0/go.mod h1:9aUL+/vZ55P2CXfuZjS4UjQ9AgXoSw8Ts6lemfmxBxI=
+-cloud.google.com/go/containeranalysis v0.9.0/go.mod h1:orbOANbwk5Ejoom+s+DUCTTJ7IBdBQJDcSylAx/on9s=
+-cloud.google.com/go/containeranalysis v0.10.1/go.mod h1:Ya2jiILITMY68ZLPaogjmOMNkwsDrWBSTyBubGXO7j0=
+-cloud.google.com/go/containeranalysis v0.11.0/go.mod h1:4n2e99ZwpGxpNcz+YsFT1dfOHPQFGcAC8FN2M2/ne/U=
+-cloud.google.com/go/containeranalysis v0.11.1/go.mod h1:rYlUOM7nem1OJMKwE1SadufX0JP3wnXj844EtZAwWLY=
+-cloud.google.com/go/containeranalysis v0.11.2/go.mod h1:xibioGBC1MD2j4reTyV1xY1/MvKaz+fyM9ENWhmIeP8=
+-cloud.google.com/go/containeranalysis v0.11.3/go.mod h1:kMeST7yWFQMGjiG9K7Eov+fPNQcGhb8mXj/UcTiWw9U=
+-cloud.google.com/go/datacatalog v1.3.0/go.mod h1:g9svFY6tuR+j+hrTw3J2dNcmI0dzmSiyOzm8kpLq0a0=
+-cloud.google.com/go/datacatalog v1.5.0/go.mod h1:M7GPLNQeLfWqeIm3iuiruhPzkt65+Bx8dAKvScX8jvs=
+-cloud.google.com/go/datacatalog v1.6.0/go.mod h1:+aEyF8JKg+uXcIdAmmaMUmZ3q1b/lKLtXCmXdnc0lbc=
+-cloud.google.com/go/datacatalog v1.7.0/go.mod h1:9mEl4AuDYWw81UGc41HonIHH7/sn52H0/tc8f8ZbZIE=
+-cloud.google.com/go/datacatalog v1.8.0/go.mod h1:KYuoVOv9BM8EYz/4eMFxrr4DUKhGIOXxZoKYF5wdISM=
+-cloud.google.com/go/datacatalog v1.8.1/go.mod h1:RJ58z4rMp3gvETA465Vg+ag8BGgBdnRPEMMSTr5Uv+M=
+-cloud.google.com/go/datacatalog v1.12.0/go.mod h1:CWae8rFkfp6LzLumKOnmVh4+Zle4A3NXLzVJ1d1mRm0=
+-cloud.google.com/go/datacatalog v1.13.0/go.mod h1:E4Rj9a5ZtAxcQJlEBTLgMTphfP11/lNaAshpoBgemX8=
+-cloud.google.com/go/datacatalog v1.14.0/go.mod h1:h0PrGtlihoutNMp/uvwhawLQ9+c63Kz65UFqh49Yo+E=
+-cloud.google.com/go/datacatalog v1.14.1/go.mod h1:d2CevwTG4yedZilwe+v3E3ZBDRMobQfSG/a6cCCN5R4=
+-cloud.google.com/go/datacatalog v1.16.0/go.mod h1:d2CevwTG4yedZilwe+v3E3ZBDRMobQfSG/a6cCCN5R4=
+-cloud.google.com/go/datacatalog v1.17.1/go.mod h1:nCSYFHgtxh2MiEktWIz71s/X+7ds/UT9kp0PC7waCzE=
+-cloud.google.com/go/datacatalog v1.18.0/go.mod h1:nCSYFHgtxh2MiEktWIz71s/X+7ds/UT9kp0PC7waCzE=
+-cloud.google.com/go/datacatalog v1.18.1/go.mod h1:TzAWaz+ON1tkNr4MOcak8EBHX7wIRX/gZKM+yTVsv+A=
+-cloud.google.com/go/datacatalog v1.18.2/go.mod h1:SPVgWW2WEMuWHA+fHodYjmxPiMqcOiWfhc9OD5msigk=
+-cloud.google.com/go/datacatalog v1.18.3/go.mod h1:5FR6ZIF8RZrtml0VUao22FxhdjkoG+a0866rEnObryM=
+-cloud.google.com/go/datacatalog v1.19.0/go.mod h1:5FR6ZIF8RZrtml0VUao22FxhdjkoG+a0866rEnObryM=
+-cloud.google.com/go/dataflow v0.6.0/go.mod h1:9QwV89cGoxjjSR9/r7eFDqqjtvbKxAK2BaYU6PVk9UM=
+-cloud.google.com/go/dataflow v0.7.0/go.mod h1:PX526vb4ijFMesO1o202EaUmouZKBpjHsTlCtB4parQ=
+-cloud.google.com/go/dataflow v0.8.0/go.mod h1:Rcf5YgTKPtQyYz8bLYhFoIV/vP39eL7fWNcSOyFfLJE=
+-cloud.google.com/go/dataflow v0.9.1/go.mod h1:Wp7s32QjYuQDWqJPFFlnBKhkAtiFpMTdg00qGbnIHVw=
+-cloud.google.com/go/dataflow v0.9.2/go.mod h1:vBfdBZ/ejlTaYIGB3zB4T08UshH70vbtZeMD+urnUSo=
+-cloud.google.com/go/dataflow v0.9.3/go.mod h1:HI4kMVjcHGTs3jTHW/kv3501YW+eloiJSLxkJa/vqFE=
+-cloud.google.com/go/dataflow v0.9.4/go.mod h1:4G8vAkHYCSzU8b/kmsoR2lWyHJD85oMJPHMtan40K8w=
+-cloud.google.com/go/dataform v0.3.0/go.mod h1:cj8uNliRlHpa6L3yVhDOBrUXH+BPAO1+KFMQQNSThKo=
+-cloud.google.com/go/dataform v0.4.0/go.mod h1:fwV6Y4Ty2yIFL89huYlEkwUPtS7YZinZbzzj5S9FzCE=
+-cloud.google.com/go/dataform v0.5.0/go.mod h1:GFUYRe8IBa2hcomWplodVmUx/iTL0FrsauObOM3Ipr0=
+-cloud.google.com/go/dataform v0.6.0/go.mod h1:QPflImQy33e29VuapFdf19oPbE4aYTJxr31OAPV+ulA=
+-cloud.google.com/go/dataform v0.7.0/go.mod h1:7NulqnVozfHvWUBpMDfKMUESr+85aJsC/2O0o3jWPDE=
+-cloud.google.com/go/dataform v0.8.1/go.mod h1:3BhPSiw8xmppbgzeBbmDvmSWlwouuJkXsXsb8UBih9M=
+-cloud.google.com/go/dataform v0.8.2/go.mod h1:X9RIqDs6NbGPLR80tnYoPNiO1w0wenKTb8PxxlhTMKM=
+-cloud.google.com/go/dataform v0.8.3/go.mod h1:8nI/tvv5Fso0drO3pEjtowz58lodx8MVkdV2q0aPlqg=
+-cloud.google.com/go/dataform v0.9.1/go.mod h1:pWTg+zGQ7i16pyn0bS1ruqIE91SdL2FDMvEYu/8oQxs=
+-cloud.google.com/go/datafusion v1.4.0/go.mod h1:1Zb6VN+W6ALo85cXnM1IKiPw+yQMKMhB9TsTSRDo/38=
+-cloud.google.com/go/datafusion v1.5.0/go.mod h1:Kz+l1FGHB0J+4XF2fud96WMmRiq/wj8N9u007vyXZ2w=
+-cloud.google.com/go/datafusion v1.6.0/go.mod h1:WBsMF8F1RhSXvVM8rCV3AeyWVxcC2xY6vith3iw3S+8=
+-cloud.google.com/go/datafusion v1.7.1/go.mod h1:KpoTBbFmoToDExJUso/fcCiguGDk7MEzOWXUsJo0wsI=
+-cloud.google.com/go/datafusion v1.7.2/go.mod h1:62K2NEC6DRlpNmI43WHMWf9Vg/YvN6QVi8EVwifElI0=
+-cloud.google.com/go/datafusion v1.7.3/go.mod h1:eoLt1uFXKGBq48jy9LZ+Is8EAVLnmn50lNncLzwYokE=
+-cloud.google.com/go/datafusion v1.7.4/go.mod h1:BBs78WTOLYkT4GVZIXQCZT3GFpkpDN4aBY4NDX/jVlM=
+-cloud.google.com/go/datalabeling v0.5.0/go.mod h1:TGcJ0G2NzcsXSE/97yWjIZO0bXj0KbVlINXMG9ud42I=
+-cloud.google.com/go/datalabeling v0.6.0/go.mod h1:WqdISuk/+WIGeMkpw/1q7bK/tFEZxsrFJOJdY2bXvTQ=
+-cloud.google.com/go/datalabeling v0.7.0/go.mod h1:WPQb1y08RJbmpM3ww0CSUAGweL0SxByuW2E+FU+wXcM=
+-cloud.google.com/go/datalabeling v0.8.1/go.mod h1:XS62LBSVPbYR54GfYQsPXZjTW8UxCK2fkDciSrpRFdY=
+-cloud.google.com/go/datalabeling v0.8.2/go.mod h1:cyDvGHuJWu9U/cLDA7d8sb9a0tWLEletStu2sTmg3BE=
+-cloud.google.com/go/datalabeling v0.8.3/go.mod h1:tvPhpGyS/V7lqjmb3V0TaDdGvhzgR1JoW7G2bpi2UTI=
+-cloud.google.com/go/datalabeling v0.8.4/go.mod h1:Z1z3E6LHtffBGrNUkKwbwbDxTiXEApLzIgmymj8A3S8=
+-cloud.google.com/go/dataplex v1.3.0/go.mod h1:hQuRtDg+fCiFgC8j0zV222HvzFQdRd+SVX8gdmFcZzA=
+-cloud.google.com/go/dataplex v1.4.0/go.mod h1:X51GfLXEMVJ6UN47ESVqvlsRplbLhcsAt0kZCCKsU0A=
+-cloud.google.com/go/dataplex v1.5.2/go.mod h1:cVMgQHsmfRoI5KFYq4JtIBEUbYwc3c7tXmIDhRmNNVQ=
+-cloud.google.com/go/dataplex v1.6.0/go.mod h1:bMsomC/aEJOSpHXdFKFGQ1b0TDPIeL28nJObeO1ppRs=
+-cloud.google.com/go/dataplex v1.8.1/go.mod h1:7TyrDT6BCdI8/38Uvp0/ZxBslOslP2X2MPDucliyvSE=
+-cloud.google.com/go/dataplex v1.9.0/go.mod h1:7TyrDT6BCdI8/38Uvp0/ZxBslOslP2X2MPDucliyvSE=
+-cloud.google.com/go/dataplex v1.9.1/go.mod h1:7TyrDT6BCdI8/38Uvp0/ZxBslOslP2X2MPDucliyvSE=
+-cloud.google.com/go/dataplex v1.10.1/go.mod h1:1MzmBv8FvjYfc7vDdxhnLFNskikkB+3vl475/XdCDhs=
+-cloud.google.com/go/dataplex v1.10.2/go.mod h1:xdC8URdTrCrZMW6keY779ZT1cTOfV8KEPNsw+LTRT1Y=
+-cloud.google.com/go/dataplex v1.11.1/go.mod h1:mHJYQQ2VEJHsyoC0OdNyy988DvEbPhqFs5OOLffLX0c=
+-cloud.google.com/go/dataplex v1.11.2/go.mod h1:mHJYQQ2VEJHsyoC0OdNyy988DvEbPhqFs5OOLffLX0c=
+-cloud.google.com/go/dataproc v1.7.0/go.mod h1:CKAlMjII9H90RXaMpSxQ8EU6dQx6iAYNPcYPOkSbi8s=
+-cloud.google.com/go/dataproc v1.8.0/go.mod h1:5OW+zNAH0pMpw14JVrPONsxMQYMBqJuzORhIBfBn9uI=
+-cloud.google.com/go/dataproc v1.12.0/go.mod h1:zrF3aX0uV3ikkMz6z4uBbIKyhRITnxvr4i3IjKsKrw4=
+-cloud.google.com/go/dataproc/v2 v2.0.1/go.mod h1:7Ez3KRHdFGcfY7GcevBbvozX+zyWGcwLJvvAMwCaoZ4=
+-cloud.google.com/go/dataproc/v2 v2.2.0/go.mod h1:lZR7AQtwZPvmINx5J87DSOOpTfof9LVZju6/Qo4lmcY=
+-cloud.google.com/go/dataproc/v2 v2.2.1/go.mod h1:QdAJLaBjh+l4PVlVZcmrmhGccosY/omC1qwfQ61Zv/o=
+-cloud.google.com/go/dataproc/v2 v2.2.2/go.mod h1:aocQywVmQVF4i8CL740rNI/ZRpsaaC1Wh2++BJ7HEJ4=
+-cloud.google.com/go/dataproc/v2 v2.2.3/go.mod h1:G5R6GBc9r36SXv/RtZIVfB8SipI+xVn0bX5SxUzVYbY=
+-cloud.google.com/go/dataproc/v2 v2.3.0/go.mod h1:G5R6GBc9r36SXv/RtZIVfB8SipI+xVn0bX5SxUzVYbY=
+-cloud.google.com/go/dataqna v0.5.0/go.mod h1:90Hyk596ft3zUQ8NkFfvICSIfHFh1Bc7C4cK3vbhkeo=
+-cloud.google.com/go/dataqna v0.6.0/go.mod h1:1lqNpM7rqNLVgWBJyk5NF6Uen2PHym0jtVJonplVsDA=
+-cloud.google.com/go/dataqna v0.7.0/go.mod h1:Lx9OcIIeqCrw1a6KdO3/5KMP1wAmTc0slZWwP12Qq3c=
+-cloud.google.com/go/dataqna v0.8.1/go.mod h1:zxZM0Bl6liMePWsHA8RMGAfmTG34vJMapbHAxQ5+WA8=
+-cloud.google.com/go/dataqna v0.8.2/go.mod h1:KNEqgx8TTmUipnQsScOoDpq/VlXVptUqVMZnt30WAPs=
+-cloud.google.com/go/dataqna v0.8.3/go.mod h1:wXNBW2uvc9e7Gl5k8adyAMnLush1KVV6lZUhB+rqNu4=
+-cloud.google.com/go/dataqna v0.8.4/go.mod h1:mySRKjKg5Lz784P6sCov3p1QD+RZQONRMRjzGNcFd0c=
+-cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
+-cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk=
+-cloud.google.com/go/datastore v1.10.0/go.mod h1:PC5UzAmDEkAmkfaknstTYbNpgE49HAgW2J1gcgUfmdM=
+-cloud.google.com/go/datastore v1.11.0/go.mod h1:TvGxBIHCS50u8jzG+AW/ppf87v1of8nwzFNgEZU1D3c=
+-cloud.google.com/go/datastore v1.12.0/go.mod h1:KjdB88W897MRITkvWWJrg2OUtrR5XVj1EoLgSp6/N70=
+-cloud.google.com/go/datastore v1.12.1/go.mod h1:KjdB88W897MRITkvWWJrg2OUtrR5XVj1EoLgSp6/N70=
+-cloud.google.com/go/datastore v1.13.0/go.mod h1:KjdB88W897MRITkvWWJrg2OUtrR5XVj1EoLgSp6/N70=
+-cloud.google.com/go/datastore v1.14.0/go.mod h1:GAeStMBIt9bPS7jMJA85kgkpsMkvseWWXiaHya9Jes8=
+-cloud.google.com/go/datastore v1.15.0/go.mod h1:GAeStMBIt9bPS7jMJA85kgkpsMkvseWWXiaHya9Jes8=
+-cloud.google.com/go/datastream v1.2.0/go.mod h1:i/uTP8/fZwgATHS/XFu0TcNUhuA0twZxxQ3EyCUQMwo=
+-cloud.google.com/go/datastream v1.3.0/go.mod h1:cqlOX8xlyYF/uxhiKn6Hbv6WjwPPuI9W2M9SAXwaLLQ=
+-cloud.google.com/go/datastream v1.4.0/go.mod h1:h9dpzScPhDTs5noEMQVWP8Wx8AFBRyS0s8KWPx/9r0g=
+-cloud.google.com/go/datastream v1.5.0/go.mod h1:6TZMMNPwjUqZHBKPQ1wwXpb0d5VDVPl2/XoS5yi88q4=
+-cloud.google.com/go/datastream v1.6.0/go.mod h1:6LQSuswqLa7S4rPAOZFVjHIG3wJIjZcZrw8JDEDJuIs=
+-cloud.google.com/go/datastream v1.7.0/go.mod h1:uxVRMm2elUSPuh65IbZpzJNMbuzkcvu5CjMqVIUHrww=
+-cloud.google.com/go/datastream v1.9.1/go.mod h1:hqnmr8kdUBmrnk65k5wNRoHSCYksvpdZIcZIEl8h43Q=
+-cloud.google.com/go/datastream v1.10.0/go.mod h1:hqnmr8kdUBmrnk65k5wNRoHSCYksvpdZIcZIEl8h43Q=
+-cloud.google.com/go/datastream v1.10.1/go.mod h1:7ngSYwnw95YFyTd5tOGBxHlOZiL+OtpjheqU7t2/s/c=
+-cloud.google.com/go/datastream v1.10.2/go.mod h1:W42TFgKAs/om6x/CdXX5E4oiAsKlH+e8MTGy81zdYt0=
+-cloud.google.com/go/datastream v1.10.3/go.mod h1:YR0USzgjhqA/Id0Ycu1VvZe8hEWwrkjuXrGbzeDOSEA=
+-cloud.google.com/go/deploy v1.4.0/go.mod h1:5Xghikd4VrmMLNaF6FiRFDlHb59VM59YoDQnOUdsH/c=
+-cloud.google.com/go/deploy v1.5.0/go.mod h1:ffgdD0B89tToyW/U/D2eL0jN2+IEV/3EMuXHA0l4r+s=
+-cloud.google.com/go/deploy v1.6.0/go.mod h1:f9PTHehG/DjCom3QH0cntOVRm93uGBDt2vKzAPwpXQI=
+-cloud.google.com/go/deploy v1.8.0/go.mod h1:z3myEJnA/2wnB4sgjqdMfgxCA0EqC3RBTNcVPs93mtQ=
+-cloud.google.com/go/deploy v1.11.0/go.mod h1:tKuSUV5pXbn67KiubiUNUejqLs4f5cxxiCNCeyl0F2g=
+-cloud.google.com/go/deploy v1.13.0/go.mod h1:tKuSUV5pXbn67KiubiUNUejqLs4f5cxxiCNCeyl0F2g=
+-cloud.google.com/go/deploy v1.13.1/go.mod h1:8jeadyLkH9qu9xgO3hVWw8jVr29N1mnW42gRJT8GY6g=
+-cloud.google.com/go/deploy v1.14.1/go.mod h1:N8S0b+aIHSEeSr5ORVoC0+/mOPUysVt8ae4QkZYolAw=
+-cloud.google.com/go/deploy v1.14.2/go.mod h1:e5XOUI5D+YGldyLNZ21wbp9S8otJbBE4i88PtO9x/2g=
+-cloud.google.com/go/deploy v1.15.0/go.mod h1:e5XOUI5D+YGldyLNZ21wbp9S8otJbBE4i88PtO9x/2g=
+-cloud.google.com/go/dialogflow v1.15.0/go.mod h1:HbHDWs33WOGJgn6rfzBW1Kv807BE3O1+xGbn59zZWI4=
+-cloud.google.com/go/dialogflow v1.16.1/go.mod h1:po6LlzGfK+smoSmTBnbkIZY2w8ffjz/RcGSS+sh1el0=
+-cloud.google.com/go/dialogflow v1.17.0/go.mod h1:YNP09C/kXA1aZdBgC/VtXX74G/TKn7XVCcVumTflA+8=
+-cloud.google.com/go/dialogflow v1.18.0/go.mod h1:trO7Zu5YdyEuR+BhSNOqJezyFQ3aUzz0njv7sMx/iek=
+-cloud.google.com/go/dialogflow v1.19.0/go.mod h1:JVmlG1TwykZDtxtTXujec4tQ+D8SBFMoosgy+6Gn0s0=
+-cloud.google.com/go/dialogflow v1.29.0/go.mod h1:b+2bzMe+k1s9V+F2jbJwpHPzrnIyHihAdRFMtn2WXuM=
+-cloud.google.com/go/dialogflow v1.31.0/go.mod h1:cuoUccuL1Z+HADhyIA7dci3N5zUssgpBJmCzI6fNRB4=
+-cloud.google.com/go/dialogflow v1.32.0/go.mod h1:jG9TRJl8CKrDhMEcvfcfFkkpp8ZhgPz3sBGmAUYJ2qE=
+-cloud.google.com/go/dialogflow v1.38.0/go.mod h1:L7jnH+JL2mtmdChzAIcXQHXMvQkE3U4hTaNltEuxXn4=
+-cloud.google.com/go/dialogflow v1.40.0/go.mod h1:L7jnH+JL2mtmdChzAIcXQHXMvQkE3U4hTaNltEuxXn4=
+-cloud.google.com/go/dialogflow v1.43.0/go.mod h1:pDUJdi4elL0MFmt1REMvFkdsUTYSHq+rTCS8wg0S3+M=
+-cloud.google.com/go/dialogflow v1.44.0/go.mod h1:pDUJdi4elL0MFmt1REMvFkdsUTYSHq+rTCS8wg0S3+M=
+-cloud.google.com/go/dialogflow v1.44.1/go.mod h1:n/h+/N2ouKOO+rbe/ZnI186xImpqvCVj2DdsWS/0EAk=
+-cloud.google.com/go/dialogflow v1.44.2/go.mod h1:QzFYndeJhpVPElnFkUXxdlptx0wPnBWLCBT9BvtC3/c=
+-cloud.google.com/go/dialogflow v1.44.3/go.mod h1:mHly4vU7cPXVweuB5R0zsYKPMzy240aQdAu06SqBbAQ=
+-cloud.google.com/go/dlp v1.6.0/go.mod h1:9eyB2xIhpU0sVwUixfBubDoRwP+GjeUoxxeueZmqvmM=
+-cloud.google.com/go/dlp v1.7.0/go.mod h1:68ak9vCiMBjbasxeVD17hVPxDEck+ExiHavX8kiHG+Q=
+-cloud.google.com/go/dlp v1.9.0/go.mod h1:qdgmqgTyReTz5/YNSSuueR8pl7hO0o9bQ39ZhtgkWp4=
+-cloud.google.com/go/dlp v1.10.1/go.mod h1:IM8BWz1iJd8njcNcG0+Kyd9OPnqnRNkDV8j42VT5KOI=
+-cloud.google.com/go/dlp v1.10.2/go.mod h1:ZbdKIhcnyhILgccwVDzkwqybthh7+MplGC3kZVZsIOQ=
+-cloud.google.com/go/dlp v1.10.3/go.mod h1:iUaTc/ln8I+QT6Ai5vmuwfw8fqTk2kaz0FvCwhLCom0=
+-cloud.google.com/go/dlp v1.11.1/go.mod h1:/PA2EnioBeXTL/0hInwgj0rfsQb3lpE3R8XUJxqUNKI=
+-cloud.google.com/go/documentai v1.7.0/go.mod h1:lJvftZB5NRiFSX4moiye1SMxHx0Bc3x1+p9e/RfXYiU=
+-cloud.google.com/go/documentai v1.8.0/go.mod h1:xGHNEB7CtsnySCNrCFdCyyMz44RhFEEX2Q7UD0c5IhU=
+-cloud.google.com/go/documentai v1.9.0/go.mod h1:FS5485S8R00U10GhgBC0aNGrJxBP8ZVpEeJ7PQDZd6k=
+-cloud.google.com/go/documentai v1.10.0/go.mod h1:vod47hKQIPeCfN2QS/jULIvQTugbmdc0ZvxxfQY1bg4=
+-cloud.google.com/go/documentai v1.16.0/go.mod h1:o0o0DLTEZ+YnJZ+J4wNfTxmDVyrkzFvttBXXtYRMHkM=
+-cloud.google.com/go/documentai v1.18.0/go.mod h1:F6CK6iUH8J81FehpskRmhLq/3VlwQvb7TvwOceQ2tbs=
+-cloud.google.com/go/documentai v1.20.0/go.mod h1:yJkInoMcK0qNAEdRnqY/D5asy73tnPe88I1YTZT+a8E=
+-cloud.google.com/go/documentai v1.22.0/go.mod h1:yJkInoMcK0qNAEdRnqY/D5asy73tnPe88I1YTZT+a8E=
+-cloud.google.com/go/documentai v1.22.1/go.mod h1:LKs22aDHbJv7ufXuPypzRO7rG3ALLJxzdCXDPutw4Qc=
+-cloud.google.com/go/documentai v1.23.0/go.mod h1:LKs22aDHbJv7ufXuPypzRO7rG3ALLJxzdCXDPutw4Qc=
+-cloud.google.com/go/documentai v1.23.2/go.mod h1:Q/wcRT+qnuXOpjAkvOV4A+IeQl04q2/ReT7SSbytLSo=
+-cloud.google.com/go/documentai v1.23.4/go.mod h1:4MYAaEMnADPN1LPN5xboDR5QVB6AgsaxgFdJhitlE2Y=
+-cloud.google.com/go/documentai v1.23.5/go.mod h1:ghzBsyVTiVdkfKaUCum/9bGBEyBjDO4GfooEcYKhN+g=
+-cloud.google.com/go/domains v0.6.0/go.mod h1:T9Rz3GasrpYk6mEGHh4rymIhjlnIuB4ofT1wTxDeT4Y=
+-cloud.google.com/go/domains v0.7.0/go.mod h1:PtZeqS1xjnXuRPKE/88Iru/LdfoRyEHYA9nFQf4UKpg=
+-cloud.google.com/go/domains v0.8.0/go.mod h1:M9i3MMDzGFXsydri9/vW+EWz9sWb4I6WyHqdlAk0idE=
+-cloud.google.com/go/domains v0.9.1/go.mod h1:aOp1c0MbejQQ2Pjf1iJvnVyT+z6R6s8pX66KaCSDYfE=
+-cloud.google.com/go/domains v0.9.2/go.mod h1:3YvXGYzZG1Temjbk7EyGCuGGiXHJwVNmwIf+E/cUp5I=
+-cloud.google.com/go/domains v0.9.3/go.mod h1:29k66YNDLDY9LCFKpGFeh6Nj9r62ZKm5EsUJxAl84KU=
+-cloud.google.com/go/domains v0.9.4/go.mod h1:27jmJGShuXYdUNjyDG0SodTfT5RwLi7xmH334Gvi3fY=
+-cloud.google.com/go/edgecontainer v0.1.0/go.mod h1:WgkZ9tp10bFxqO8BLPqv2LlfmQF1X8lZqwW4r1BTajk=
+-cloud.google.com/go/edgecontainer v0.2.0/go.mod h1:RTmLijy+lGpQ7BXuTDa4C4ssxyXT34NIuHIgKuP4s5w=
+-cloud.google.com/go/edgecontainer v0.3.0/go.mod h1:FLDpP4nykgwwIfcLt6zInhprzw0lEi2P1fjO6Ie0qbc=
+-cloud.google.com/go/edgecontainer v1.0.0/go.mod h1:cttArqZpBB2q58W/upSG++ooo6EsblxDIolxa3jSjbY=
+-cloud.google.com/go/edgecontainer v1.1.1/go.mod h1:O5bYcS//7MELQZs3+7mabRqoWQhXCzenBu0R8bz2rwk=
+-cloud.google.com/go/edgecontainer v1.1.2/go.mod h1:wQRjIzqxEs9e9wrtle4hQPSR1Y51kqN75dgF7UllZZ4=
+-cloud.google.com/go/edgecontainer v1.1.3/go.mod h1:Ll2DtIABzEfaxaVSbwj3QHFaOOovlDFiWVDu349jSsA=
+-cloud.google.com/go/edgecontainer v1.1.4/go.mod h1:AvFdVuZuVGdgaE5YvlL1faAoa1ndRR/5XhXZvPBHbsE=
+-cloud.google.com/go/errorreporting v0.3.0/go.mod h1:xsP2yaAp+OAW4OIm60An2bbLpqIhKXdWR/tawvl7QzU=
+-cloud.google.com/go/essentialcontacts v1.3.0/go.mod h1:r+OnHa5jfj90qIfZDO/VztSFqbQan7HV75p8sA+mdGI=
+-cloud.google.com/go/essentialcontacts v1.4.0/go.mod h1:8tRldvHYsmnBCHdFpvU+GL75oWiBKl80BiqlFh9tp+8=
+-cloud.google.com/go/essentialcontacts v1.5.0/go.mod h1:ay29Z4zODTuwliK7SnX8E86aUF2CTzdNtvv42niCX0M=
+-cloud.google.com/go/essentialcontacts v1.6.2/go.mod h1:T2tB6tX+TRak7i88Fb2N9Ok3PvY3UNbUsMag9/BARh4=
+-cloud.google.com/go/essentialcontacts v1.6.3/go.mod h1:yiPCD7f2TkP82oJEFXFTou8Jl8L6LBRPeBEkTaO0Ggo=
+-cloud.google.com/go/essentialcontacts v1.6.4/go.mod h1:iju5Vy3d9tJUg0PYMd1nHhjV7xoCXaOAVabrwLaPBEM=
+-cloud.google.com/go/essentialcontacts v1.6.5/go.mod h1:jjYbPzw0x+yglXC890l6ECJWdYeZ5dlYACTFL0U/VuM=
+-cloud.google.com/go/eventarc v1.7.0/go.mod h1:6ctpF3zTnaQCxUjHUdcfgcA1A2T309+omHZth7gDfmc=
+-cloud.google.com/go/eventarc v1.8.0/go.mod h1:imbzxkyAU4ubfsaKYdQg04WS1NvncblHEup4kvF+4gw=
+-cloud.google.com/go/eventarc v1.10.0/go.mod h1:u3R35tmZ9HvswGRBnF48IlYgYeBcPUCjkr4BTdem2Kw=
+-cloud.google.com/go/eventarc v1.11.0/go.mod h1:PyUjsUKPWoRBCHeOxZd/lbOOjahV41icXyUY5kSTvVY=
+-cloud.google.com/go/eventarc v1.12.1/go.mod h1:mAFCW6lukH5+IZjkvrEss+jmt2kOdYlN8aMx3sRJiAI=
+-cloud.google.com/go/eventarc v1.13.0/go.mod h1:mAFCW6lukH5+IZjkvrEss+jmt2kOdYlN8aMx3sRJiAI=
+-cloud.google.com/go/eventarc v1.13.1/go.mod h1:EqBxmGHFrruIara4FUQ3RHlgfCn7yo1HYsu2Hpt/C3Y=
+-cloud.google.com/go/eventarc v1.13.2/go.mod h1:X9A80ShVu19fb4e5sc/OLV7mpFUKZMwfJFeeWhcIObM=
+-cloud.google.com/go/eventarc v1.13.3/go.mod h1:RWH10IAZIRcj1s/vClXkBgMHwh59ts7hSWcqD3kaclg=
+-cloud.google.com/go/filestore v1.3.0/go.mod h1:+qbvHGvXU1HaKX2nD0WEPo92TP/8AQuCVEBXNY9z0+w=
+-cloud.google.com/go/filestore v1.4.0/go.mod h1:PaG5oDfo9r224f8OYXURtAsY+Fbyq/bLYoINEK8XQAI=
+-cloud.google.com/go/filestore v1.5.0/go.mod h1:FqBXDWBp4YLHqRnVGveOkHDf8svj9r5+mUDLupOWEDs=
+-cloud.google.com/go/filestore v1.6.0/go.mod h1:di5unNuss/qfZTw2U9nhFqo8/ZDSc466dre85Kydllg=
+-cloud.google.com/go/filestore v1.7.1/go.mod h1:y10jsorq40JJnjR/lQ8AfFbbcGlw3g+Dp8oN7i7FjV4=
+-cloud.google.com/go/filestore v1.7.2/go.mod h1:TYOlyJs25f/omgj+vY7/tIG/E7BX369triSPzE4LdgE=
+-cloud.google.com/go/filestore v1.7.3/go.mod h1:Qp8WaEERR3cSkxToxFPHh/b8AACkSut+4qlCjAmKTV0=
+-cloud.google.com/go/filestore v1.7.4/go.mod h1:S5JCxIbFjeBhWMTfIYH2Jx24J6BqjwpkkPl+nBA5DlI=
+-cloud.google.com/go/filestore v1.8.0/go.mod h1:S5JCxIbFjeBhWMTfIYH2Jx24J6BqjwpkkPl+nBA5DlI=
+-cloud.google.com/go/firestore v1.9.0/go.mod h1:HMkjKHNTtRyZNiMzu7YAsLr9K3X2udY2AMwDaMEQiiE=
+-cloud.google.com/go/firestore v1.11.0/go.mod h1:b38dKhgzlmNNGTNZZwe7ZRFEuRab1Hay3/DBsIGKKy4=
+-cloud.google.com/go/firestore v1.12.0/go.mod h1:b38dKhgzlmNNGTNZZwe7ZRFEuRab1Hay3/DBsIGKKy4=
+-cloud.google.com/go/firestore v1.13.0/go.mod h1:QojqqOh8IntInDUSTAh0c8ZsPYAr68Ma8c5DWOy8xb8=
+-cloud.google.com/go/firestore v1.14.0/go.mod h1:96MVaHLsEhbvkBEdZgfN+AS/GIkco1LRpH9Xp9YZfzQ=
+-cloud.google.com/go/functions v1.6.0/go.mod h1:3H1UA3qiIPRWD7PeZKLvHZ9SaQhR26XIJcC0A5GbvAk=
+-cloud.google.com/go/functions v1.7.0/go.mod h1:+d+QBcWM+RsrgZfV9xo6KfA1GlzJfxcfZcRPEhDDfzg=
+-cloud.google.com/go/functions v1.8.0/go.mod h1:RTZ4/HsQjIqIYP9a9YPbU+QFoQsAlYgrwOXJWHn1POY=
+-cloud.google.com/go/functions v1.9.0/go.mod h1:Y+Dz8yGguzO3PpIjhLTbnqV1CWmgQ5UwtlpzoyquQ08=
+-cloud.google.com/go/functions v1.10.0/go.mod h1:0D3hEOe3DbEvCXtYOZHQZmD+SzYsi1YbI7dGvHfldXw=
+-cloud.google.com/go/functions v1.12.0/go.mod h1:AXWGrF3e2C/5ehvwYo/GH6O5s09tOPksiKhz+hH8WkA=
+-cloud.google.com/go/functions v1.13.0/go.mod h1:EU4O007sQm6Ef/PwRsI8N2umygGqPBS/IZQKBQBcJ3c=
+-cloud.google.com/go/functions v1.15.1/go.mod h1:P5yNWUTkyU+LvW/S9O6V+V423VZooALQlqoXdoPz5AE=
+-cloud.google.com/go/functions v1.15.2/go.mod h1:CHAjtcR6OU4XF2HuiVeriEdELNcnvRZSk1Q8RMqy4lE=
+-cloud.google.com/go/functions v1.15.3/go.mod h1:r/AMHwBheapkkySEhiZYLDBwVJCdlRwsm4ieJu35/Ug=
+-cloud.google.com/go/functions v1.15.4/go.mod h1:CAsTc3VlRMVvx+XqXxKqVevguqJpnVip4DdonFsX28I=
+-cloud.google.com/go/gaming v1.5.0/go.mod h1:ol7rGcxP/qHTRQE/RO4bxkXq+Fix0j6D4LFPzYTIrDM=
+-cloud.google.com/go/gaming v1.6.0/go.mod h1:YMU1GEvA39Qt3zWGyAVA9bpYz/yAhTvaQ1t2sK4KPUA=
+-cloud.google.com/go/gaming v1.7.0/go.mod h1:LrB8U7MHdGgFG851iHAfqUdLcKBdQ55hzXy9xBJz0+w=
+-cloud.google.com/go/gaming v1.8.0/go.mod h1:xAqjS8b7jAVW0KFYeRUxngo9My3f33kFmua++Pi+ggM=
+-cloud.google.com/go/gaming v1.9.0/go.mod h1:Fc7kEmCObylSWLO334NcO+O9QMDyz+TKC4v1D7X+Bc0=
+-cloud.google.com/go/gaming v1.10.1/go.mod h1:XQQvtfP8Rb9Rxnxm5wFVpAp9zCQkJi2bLIb7iHGwB3s=
+-cloud.google.com/go/gkebackup v0.2.0/go.mod h1:XKvv/4LfG829/B8B7xRkk8zRrOEbKtEam6yNfuQNH60=
+-cloud.google.com/go/gkebackup v0.3.0/go.mod h1:n/E671i1aOQvUxT541aTkCwExO/bTer2HDlj4TsBRAo=
+-cloud.google.com/go/gkebackup v0.4.0/go.mod h1:byAyBGUwYGEEww7xsbnUTBHIYcOPy/PgUWUtOeRm9Vg=
+-cloud.google.com/go/gkebackup v1.3.0/go.mod h1:vUDOu++N0U5qs4IhG1pcOnD1Mac79xWy6GoBFlWCWBU=
+-cloud.google.com/go/gkebackup v1.3.1/go.mod h1:vUDOu++N0U5qs4IhG1pcOnD1Mac79xWy6GoBFlWCWBU=
+-cloud.google.com/go/gkebackup v1.3.2/go.mod h1:OMZbXzEJloyXMC7gqdSB+EOEQ1AKcpGYvO3s1ec5ixk=
+-cloud.google.com/go/gkebackup v1.3.3/go.mod h1:eMk7/wVV5P22KBakhQnJxWSVftL1p4VBFLpv0kIft7I=
+-cloud.google.com/go/gkebackup v1.3.4/go.mod h1:gLVlbM8h/nHIs09ns1qx3q3eaXcGSELgNu1DWXYz1HI=
+-cloud.google.com/go/gkeconnect v0.5.0/go.mod h1:c5lsNAg5EwAy7fkqX/+goqFsU1Da/jQFqArp+wGNr/o=
+-cloud.google.com/go/gkeconnect v0.6.0/go.mod h1:Mln67KyU/sHJEBY8kFZ0xTeyPtzbq9StAVvEULYK16A=
+-cloud.google.com/go/gkeconnect v0.7.0/go.mod h1:SNfmVqPkaEi3bF/B3CNZOAYPYdg7sU+obZ+QTky2Myw=
+-cloud.google.com/go/gkeconnect v0.8.1/go.mod h1:KWiK1g9sDLZqhxB2xEuPV8V9NYzrqTUmQR9shJHpOZw=
+-cloud.google.com/go/gkeconnect v0.8.2/go.mod h1:6nAVhwchBJYgQCXD2pHBFQNiJNyAd/wyxljpaa6ZPrY=
+-cloud.google.com/go/gkeconnect v0.8.3/go.mod h1:i9GDTrfzBSUZGCe98qSu1B8YB8qfapT57PenIb820Jo=
+-cloud.google.com/go/gkeconnect v0.8.4/go.mod h1:84hZz4UMlDCKl8ifVW8layK4WHlMAFeq8vbzjU0yJkw=
+-cloud.google.com/go/gkehub v0.9.0/go.mod h1:WYHN6WG8w9bXU0hqNxt8rm5uxnk8IH+lPY9J2TV7BK0=
+-cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y977wO+hBH0=
+-cloud.google.com/go/gkehub v0.11.0/go.mod h1:JOWHlmN+GHyIbuWQPl47/C2RFhnFKH38jH9Ascu3n0E=
+-cloud.google.com/go/gkehub v0.12.0/go.mod h1:djiIwwzTTBrF5NaXCGv3mf7klpEMcST17VBTVVDcuaw=
+-cloud.google.com/go/gkehub v0.14.1/go.mod h1:VEXKIJZ2avzrbd7u+zeMtW00Y8ddk/4V9511C9CQGTY=
+-cloud.google.com/go/gkehub v0.14.2/go.mod h1:iyjYH23XzAxSdhrbmfoQdePnlMj2EWcvnR+tHdBQsCY=
+-cloud.google.com/go/gkehub v0.14.3/go.mod h1:jAl6WafkHHW18qgq7kqcrXYzN08hXeK/Va3utN8VKg8=
+-cloud.google.com/go/gkehub v0.14.4/go.mod h1:Xispfu2MqnnFt8rV/2/3o73SK1snL8s9dYJ9G2oQMfc=
+-cloud.google.com/go/gkemulticloud v0.3.0/go.mod h1:7orzy7O0S+5kq95e4Hpn7RysVA7dPs8W/GgfUtsPbrA=
+-cloud.google.com/go/gkemulticloud v0.4.0/go.mod h1:E9gxVBnseLWCk24ch+P9+B2CoDFJZTyIgLKSalC7tuI=
+-cloud.google.com/go/gkemulticloud v0.5.0/go.mod h1:W0JDkiyi3Tqh0TJr//y19wyb1yf8llHVto2Htf2Ja3Y=
+-cloud.google.com/go/gkemulticloud v0.6.1/go.mod h1:kbZ3HKyTsiwqKX7Yw56+wUGwwNZViRnxWK2DVknXWfw=
+-cloud.google.com/go/gkemulticloud v1.0.0/go.mod h1:kbZ3HKyTsiwqKX7Yw56+wUGwwNZViRnxWK2DVknXWfw=
+-cloud.google.com/go/gkemulticloud v1.0.1/go.mod h1:AcrGoin6VLKT/fwZEYuqvVominLriQBCKmbjtnbMjG8=
+-cloud.google.com/go/gkemulticloud v1.0.2/go.mod h1:+ee5VXxKb3H1l4LZAcgWB/rvI16VTNTrInWxDjAGsGo=
+-cloud.google.com/go/gkemulticloud v1.0.3/go.mod h1:7NpJBN94U6DY1xHIbsDqB2+TFZUfjLUKLjUX8NGLor0=
+-cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc=
+-cloud.google.com/go/grafeas v0.3.0/go.mod h1:P7hgN24EyONOTMyeJH6DxG4zD7fwiYa5Q6GUgyFSOU8=
+-cloud.google.com/go/gsuiteaddons v1.3.0/go.mod h1:EUNK/J1lZEZO8yPtykKxLXI6JSVN2rg9bN8SXOa0bgM=
+-cloud.google.com/go/gsuiteaddons v1.4.0/go.mod h1:rZK5I8hht7u7HxFQcFei0+AtfS9uSushomRlg+3ua1o=
+-cloud.google.com/go/gsuiteaddons v1.5.0/go.mod h1:TFCClYLd64Eaa12sFVmUyG62tk4mdIsI7pAnSXRkcFo=
+-cloud.google.com/go/gsuiteaddons v1.6.1/go.mod h1:CodrdOqRZcLp5WOwejHWYBjZvfY0kOphkAKpF/3qdZY=
+-cloud.google.com/go/gsuiteaddons v1.6.2/go.mod h1:K65m9XSgs8hTF3X9nNTPi8IQueljSdYo9F+Mi+s4MyU=
+-cloud.google.com/go/gsuiteaddons v1.6.3/go.mod h1:sCFJkZoMrLZT3JTb8uJqgKPNshH2tfXeCwTFRebTq48=
+-cloud.google.com/go/gsuiteaddons v1.6.4/go.mod h1:rxtstw7Fx22uLOXBpsvb9DUbC+fiXs7rF4U29KHM/pE=
+-cloud.google.com/go/iam v0.1.0/go.mod h1:vcUNEa0pEm0qRVpmWepWaFMIAI8/hjB9mO8rNCJtF6c=
+-cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY=
+-cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc=
+-cloud.google.com/go/iam v0.6.0/go.mod h1:+1AH33ueBne5MzYccyMHtEKqLE4/kJOibtffMHDMFMc=
+-cloud.google.com/go/iam v0.7.0/go.mod h1:H5Br8wRaDGNc8XP3keLc4unfUUZeyH3Sfl9XpQEYOeg=
+-cloud.google.com/go/iam v0.8.0/go.mod h1:lga0/y3iH6CX7sYqypWJ33hf7kkfXJag67naqGESjkE=
+-cloud.google.com/go/iam v0.11.0/go.mod h1:9PiLDanza5D+oWFZiH1uG+RnRCfEGKoyl6yo4cgWZGY=
+-cloud.google.com/go/iam v0.12.0/go.mod h1:knyHGviacl11zrtZUoDuYpDgLjvr28sLQaG0YB2GYAY=
+-cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0=
+-cloud.google.com/go/iam v1.0.1/go.mod h1:yR3tmSL8BcZB4bxByRv2jkSIahVmCtfKZwLYGBalRE8=
+-cloud.google.com/go/iam v1.1.0/go.mod h1:nxdHjaKfCr7fNYx/HJMM8LgiMugmveWlkatear5gVyk=
+-cloud.google.com/go/iam v1.1.1/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU=
+-cloud.google.com/go/iam v1.1.2/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU=
+-cloud.google.com/go/iam v1.1.3/go.mod h1:3khUlaBXfPKKe7huYgEpDn6FtgRyMEqbkvBxrQyY5SE=
+-cloud.google.com/go/iam v1.1.4/go.mod h1:l/rg8l1AaA+VFMho/HYx2Vv6xinPSLMF8qfhRPIZ0L8=
+-cloud.google.com/go/iam v1.1.5/go.mod h1:rB6P/Ic3mykPbFio+vo7403drjlgvoWfYpJhMXEbzv8=
+-cloud.google.com/go/iap v1.4.0/go.mod h1:RGFwRJdihTINIe4wZ2iCP0zF/qu18ZwyKxrhMhygBEc=
+-cloud.google.com/go/iap v1.5.0/go.mod h1:UH/CGgKd4KyohZL5Pt0jSKE4m3FR51qg6FKQ/z/Ix9A=
+-cloud.google.com/go/iap v1.6.0/go.mod h1:NSuvI9C/j7UdjGjIde7t7HBz+QTwBcapPE07+sSRcLk=
+-cloud.google.com/go/iap v1.7.0/go.mod h1:beqQx56T9O1G1yNPph+spKpNibDlYIiIixiqsQXxLIo=
+-cloud.google.com/go/iap v1.7.1/go.mod h1:WapEwPc7ZxGt2jFGB/C/bm+hP0Y6NXzOYGjpPnmMS74=
+-cloud.google.com/go/iap v1.8.1/go.mod h1:sJCbeqg3mvWLqjZNsI6dfAtbbV1DL2Rl7e1mTyXYREQ=
+-cloud.google.com/go/iap v1.9.0/go.mod h1:01OFxd1R+NFrg78S+hoPV5PxEzv22HXaNqUUlmNHFuY=
+-cloud.google.com/go/iap v1.9.1/go.mod h1:SIAkY7cGMLohLSdBR25BuIxO+I4fXJiL06IBL7cy/5Q=
+-cloud.google.com/go/iap v1.9.2/go.mod h1:GwDTOs047PPSnwRD0Us5FKf4WDRcVvHg1q9WVkKBhdI=
+-cloud.google.com/go/iap v1.9.3/go.mod h1:DTdutSZBqkkOm2HEOTBzhZxh2mwwxshfD/h3yofAiCw=
+-cloud.google.com/go/ids v1.1.0/go.mod h1:WIuwCaYVOzHIj2OhN9HAwvW+DBdmUAdcWlFxRl+KubM=
+-cloud.google.com/go/ids v1.2.0/go.mod h1:5WXvp4n25S0rA/mQWAg1YEEBBq6/s+7ml1RDCW1IrcY=
+-cloud.google.com/go/ids v1.3.0/go.mod h1:JBdTYwANikFKaDP6LtW5JAi4gubs57SVNQjemdt6xV4=
+-cloud.google.com/go/ids v1.4.1/go.mod h1:np41ed8YMU8zOgv53MMMoCntLTn2lF+SUzlM+O3u/jw=
+-cloud.google.com/go/ids v1.4.2/go.mod h1:3vw8DX6YddRu9BncxuzMyWn0g8+ooUjI2gslJ7FH3vk=
+-cloud.google.com/go/ids v1.4.3/go.mod h1:9CXPqI3GedjmkjbMWCUhMZ2P2N7TUMzAkVXYEH2orYU=
+-cloud.google.com/go/ids v1.4.4/go.mod h1:z+WUc2eEl6S/1aZWzwtVNWoSZslgzPxAboS0lZX0HjI=
+-cloud.google.com/go/iot v1.3.0/go.mod h1:r7RGh2B61+B8oz0AGE+J72AhA0G7tdXItODWsaA2oLs=
+-cloud.google.com/go/iot v1.4.0/go.mod h1:dIDxPOn0UvNDUMD8Ger7FIaTuvMkj+aGk94RPP0iV+g=
+-cloud.google.com/go/iot v1.5.0/go.mod h1:mpz5259PDl3XJthEmh9+ap0affn/MqNSP4My77Qql9o=
+-cloud.google.com/go/iot v1.6.0/go.mod h1:IqdAsmE2cTYYNO1Fvjfzo9po179rAtJeVGUvkLN3rLE=
+-cloud.google.com/go/iot v1.7.1/go.mod h1:46Mgw7ev1k9KqK1ao0ayW9h0lI+3hxeanz+L1zmbbbk=
+-cloud.google.com/go/iot v1.7.2/go.mod h1:q+0P5zr1wRFpw7/MOgDXrG/HVA+l+cSwdObffkrpnSg=
+-cloud.google.com/go/iot v1.7.3/go.mod h1:t8itFchkol4VgNbHnIq9lXoOOtHNR3uAACQMYbN9N4I=
+-cloud.google.com/go/iot v1.7.4/go.mod h1:3TWqDVvsddYBG++nHSZmluoCAVGr1hAcabbWZNKEZLk=
+-cloud.google.com/go/kms v1.4.0/go.mod h1:fajBHndQ+6ubNw6Ss2sSd+SWvjL26RNo/dr7uxsnnOA=
+-cloud.google.com/go/kms v1.5.0/go.mod h1:QJS2YY0eJGBg3mnDfuaCyLauWwBJiHRboYxJ++1xJNg=
+-cloud.google.com/go/kms v1.6.0/go.mod h1:Jjy850yySiasBUDi6KFUwUv2n1+o7QZFyuUJg6OgjA0=
+-cloud.google.com/go/kms v1.8.0/go.mod h1:4xFEhYFqvW+4VMELtZyxomGSYtSQKzM178ylFW4jMAg=
+-cloud.google.com/go/kms v1.9.0/go.mod h1:qb1tPTgfF9RQP8e1wq4cLFErVuTJv7UsSC915J8dh3w=
+-cloud.google.com/go/kms v1.10.0/go.mod h1:ng3KTUtQQU9bPX3+QGLsflZIHlkbn8amFAMY63m8d24=
+-cloud.google.com/go/kms v1.10.1/go.mod h1:rIWk/TryCkR59GMC3YtHtXeLzd634lBbKenvyySAyYI=
+-cloud.google.com/go/kms v1.11.0/go.mod h1:hwdiYC0xjnWsKQQCQQmIQnS9asjYVSK6jtXm+zFqXLM=
+-cloud.google.com/go/kms v1.12.1/go.mod h1:c9J991h5DTl+kg7gi3MYomh12YEENGrf48ee/N/2CDM=
+-cloud.google.com/go/kms v1.15.0/go.mod h1:c9J991h5DTl+kg7gi3MYomh12YEENGrf48ee/N/2CDM=
+-cloud.google.com/go/kms v1.15.2/go.mod h1:3hopT4+7ooWRCjc2DxgnpESFxhIraaI2IpAVUEhbT/w=
+-cloud.google.com/go/kms v1.15.3/go.mod h1:AJdXqHxS2GlPyduM99s9iGqi2nwbviBbhV/hdmt4iOQ=
+-cloud.google.com/go/kms v1.15.4/go.mod h1:L3Sdj6QTHK8dfwK5D1JLsAyELsNMnd3tAIwGS4ltKpc=
+-cloud.google.com/go/kms v1.15.5/go.mod h1:cU2H5jnp6G2TDpUGZyqTCoy1n16fbubHZjmVXSMtwDI=
+-cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic=
+-cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI=
+-cloud.google.com/go/language v1.7.0/go.mod h1:DJ6dYN/W+SQOjF8e1hLQXMF21AkH2w9wiPzPCJa2MIE=
+-cloud.google.com/go/language v1.8.0/go.mod h1:qYPVHf7SPoNNiCL2Dr0FfEFNil1qi3pQEyygwpgVKB8=
+-cloud.google.com/go/language v1.9.0/go.mod h1:Ns15WooPM5Ad/5no/0n81yUetis74g3zrbeJBE+ptUY=
+-cloud.google.com/go/language v1.10.1/go.mod h1:CPp94nsdVNiQEt1CNjF5WkTcisLiHPyIbMhvR8H2AW0=
+-cloud.google.com/go/language v1.11.0/go.mod h1:uDx+pFDdAKTY8ehpWbiXyQdz8tDSYLJbQcXsCkjYyvQ=
+-cloud.google.com/go/language v1.11.1/go.mod h1:Xyid9MG9WOX3utvDbpX7j3tXDmmDooMyMDqgUVpH17U=
+-cloud.google.com/go/language v1.12.1/go.mod h1:zQhalE2QlQIxbKIZt54IASBzmZpN/aDASea5zl1l+J4=
+-cloud.google.com/go/language v1.12.2/go.mod h1:9idWapzr/JKXBBQ4lWqVX/hcadxB194ry20m/bTrhWc=
+-cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8=
+-cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08=
+-cloud.google.com/go/lifesciences v0.8.0/go.mod h1:lFxiEOMqII6XggGbOnKiyZ7IBwoIqA84ClvoezaA/bo=
+-cloud.google.com/go/lifesciences v0.9.1/go.mod h1:hACAOd1fFbCGLr/+weUKRAJas82Y4vrL3O5326N//Wc=
+-cloud.google.com/go/lifesciences v0.9.2/go.mod h1:QHEOO4tDzcSAzeJg7s2qwnLM2ji8IRpQl4p6m5Z9yTA=
+-cloud.google.com/go/lifesciences v0.9.3/go.mod h1:gNGBOJV80IWZdkd+xz4GQj4mbqaz737SCLHn2aRhQKM=
+-cloud.google.com/go/lifesciences v0.9.4/go.mod h1:bhm64duKhMi7s9jR9WYJYvjAFJwRqNj+Nia7hF0Z7JA=
+-cloud.google.com/go/logging v1.6.1/go.mod h1:5ZO0mHHbvm8gEmeEUHrmDlTDSu5imF6MUP9OfilNXBw=
+-cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M=
+-cloud.google.com/go/logging v1.8.1/go.mod h1:TJjR+SimHwuC8MZ9cjByQulAMgni+RkXeI3wwctHJEI=
+-cloud.google.com/go/longrunning v0.1.1/go.mod h1:UUFxuDWkv22EuY93jjmDMFT5GPQKeFVJBIF6QlTqdsE=
+-cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc=
+-cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo=
+-cloud.google.com/go/longrunning v0.4.2/go.mod h1:OHrnaYyLUV6oqwh0xiS7e5sLQhP1m0QU9R+WhGDMgIQ=
+-cloud.google.com/go/longrunning v0.5.0/go.mod h1:0JNuqRShmscVAhIACGtskSAWtqtOoPkwP0YF1oVEchc=
+-cloud.google.com/go/longrunning v0.5.1/go.mod h1:spvimkwdz6SPWKEt/XBij79E9fiTkHSQl/fRUUQJYJc=
+-cloud.google.com/go/longrunning v0.5.2/go.mod h1:nqo6DQbNV2pXhGDbDMoN2bWz68MjZUzqv2YttZiveCs=
+-cloud.google.com/go/longrunning v0.5.3/go.mod h1:y/0ga59EYu58J6SHmmQOvekvND2qODbu8ywBBW7EK7Y=
+-cloud.google.com/go/longrunning v0.5.4/go.mod h1:zqNVncI0BOP8ST6XQD1+VcvuShMmq7+xFSzOL++V0dI=
+-cloud.google.com/go/managedidentities v1.3.0/go.mod h1:UzlW3cBOiPrzucO5qWkNkh0w33KFtBJU281hacNvsdE=
+-cloud.google.com/go/managedidentities v1.4.0/go.mod h1:NWSBYbEMgqmbZsLIyKvxrYbtqOsxY1ZrGM+9RgDqInM=
+-cloud.google.com/go/managedidentities v1.5.0/go.mod h1:+dWcZ0JlUmpuxpIDfyP5pP5y0bLdRwOS4Lp7gMni/LA=
+-cloud.google.com/go/managedidentities v1.6.1/go.mod h1:h/irGhTN2SkZ64F43tfGPMbHnypMbu4RB3yl8YcuEak=
+-cloud.google.com/go/managedidentities v1.6.2/go.mod h1:5c2VG66eCa0WIq6IylRk3TBW83l161zkFvCj28X7jn8=
+-cloud.google.com/go/managedidentities v1.6.3/go.mod h1:tewiat9WLyFN0Fi7q1fDD5+0N4VUoL0SCX0OTCthZq4=
+-cloud.google.com/go/managedidentities v1.6.4/go.mod h1:WgyaECfHmF00t/1Uk8Oun3CQ2PGUtjc3e9Alh79wyiM=
+-cloud.google.com/go/maps v0.1.0/go.mod h1:BQM97WGyfw9FWEmQMpZ5T6cpovXXSd1cGmFma94eubI=
+-cloud.google.com/go/maps v0.6.0/go.mod h1:o6DAMMfb+aINHz/p/jbcY+mYeXBoZoxTfdSQ8VAJaCw=
+-cloud.google.com/go/maps v0.7.0/go.mod h1:3GnvVl3cqeSvgMcpRlQidXsPYuDGQ8naBis7MVzpXsY=
+-cloud.google.com/go/maps v1.3.0/go.mod h1:6mWTUv+WhnOwAgjVsSW2QPPECmW+s3PcRyOa9vgG/5s=
+-cloud.google.com/go/maps v1.4.0/go.mod h1:6mWTUv+WhnOwAgjVsSW2QPPECmW+s3PcRyOa9vgG/5s=
+-cloud.google.com/go/maps v1.4.1/go.mod h1:BxSa0BnW1g2U2gNdbq5zikLlHUuHW0GFWh7sgML2kIY=
+-cloud.google.com/go/maps v1.5.1/go.mod h1:NPMZw1LJwQZYCfz4y+EIw+SI+24A4bpdFJqdKVr0lt4=
+-cloud.google.com/go/maps v1.6.1/go.mod h1:4+buOHhYXFBp58Zj/K+Lc1rCmJssxxF4pJ5CJnhdz18=
+-cloud.google.com/go/mediatranslation v0.5.0/go.mod h1:jGPUhGTybqsPQn91pNXw0xVHfuJ3leR1wj37oU3y1f4=
+-cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w=
+-cloud.google.com/go/mediatranslation v0.7.0/go.mod h1:LCnB/gZr90ONOIQLgSXagp8XUW1ODs2UmUMvcgMfI2I=
+-cloud.google.com/go/mediatranslation v0.8.1/go.mod h1:L/7hBdEYbYHQJhX2sldtTO5SZZ1C1vkapubj0T2aGig=
+-cloud.google.com/go/mediatranslation v0.8.2/go.mod h1:c9pUaDRLkgHRx3irYE5ZC8tfXGrMYwNZdmDqKMSfFp8=
+-cloud.google.com/go/mediatranslation v0.8.3/go.mod h1:F9OnXTy336rteOEywtY7FOqCk+J43o2RF638hkOQl4Y=
+-cloud.google.com/go/mediatranslation v0.8.4/go.mod h1:9WstgtNVAdN53m6TQa5GjIjLqKQPXe74hwSCxUP6nj4=
+-cloud.google.com/go/memcache v1.4.0/go.mod h1:rTOfiGZtJX1AaFUrOgsMHX5kAzaTQ8azHiuDoTPzNsE=
+-cloud.google.com/go/memcache v1.5.0/go.mod h1:dk3fCK7dVo0cUU2c36jKb4VqKPS22BTkf81Xq617aWM=
+-cloud.google.com/go/memcache v1.6.0/go.mod h1:XS5xB0eQZdHtTuTF9Hf8eJkKtR3pVRCcvJwtm68T3rA=
+-cloud.google.com/go/memcache v1.7.0/go.mod h1:ywMKfjWhNtkQTxrWxCkCFkoPjLHPW6A7WOTVI8xy3LY=
+-cloud.google.com/go/memcache v1.9.0/go.mod h1:8oEyzXCu+zo9RzlEaEjHl4KkgjlNDaXbCQeQWlzNFJM=
+-cloud.google.com/go/memcache v1.10.1/go.mod h1:47YRQIarv4I3QS5+hoETgKO40InqzLP6kpNLvyXuyaA=
+-cloud.google.com/go/memcache v1.10.2/go.mod h1:f9ZzJHLBrmd4BkguIAa/l/Vle6uTHzHokdnzSWOdQ6A=
+-cloud.google.com/go/memcache v1.10.3/go.mod h1:6z89A41MT2DVAW0P4iIRdu5cmRTsbsFn4cyiIx8gbwo=
+-cloud.google.com/go/memcache v1.10.4/go.mod h1:v/d8PuC8d1gD6Yn5+I3INzLR01IDn0N4Ym56RgikSI0=
+-cloud.google.com/go/metastore v1.5.0/go.mod h1:2ZNrDcQwghfdtCwJ33nM0+GrBGlVuh8rakL3vdPY3XY=
+-cloud.google.com/go/metastore v1.6.0/go.mod h1:6cyQTls8CWXzk45G55x57DVQ9gWg7RiH65+YgPsNh9s=
+-cloud.google.com/go/metastore v1.7.0/go.mod h1:s45D0B4IlsINu87/AsWiEVYbLaIMeUSoxlKKDqBGFS8=
+-cloud.google.com/go/metastore v1.8.0/go.mod h1:zHiMc4ZUpBiM7twCIFQmJ9JMEkDSyZS9U12uf7wHqSI=
+-cloud.google.com/go/metastore v1.10.0/go.mod h1:fPEnH3g4JJAk+gMRnrAnoqyv2lpUCqJPWOodSaf45Eo=
+-cloud.google.com/go/metastore v1.11.1/go.mod h1:uZuSo80U3Wd4zi6C22ZZliOUJ3XeM/MlYi/z5OAOWRA=
+-cloud.google.com/go/metastore v1.12.0/go.mod h1:uZuSo80U3Wd4zi6C22ZZliOUJ3XeM/MlYi/z5OAOWRA=
+-cloud.google.com/go/metastore v1.13.0/go.mod h1:URDhpG6XLeh5K+Glq0NOt74OfrPKTwS62gEPZzb5SOk=
+-cloud.google.com/go/metastore v1.13.1/go.mod h1:IbF62JLxuZmhItCppcIfzBBfUFq0DIB9HPDoLgWrVOU=
+-cloud.google.com/go/metastore v1.13.2/go.mod h1:KS59dD+unBji/kFebVp8XU/quNSyo8b6N6tPGspKszA=
+-cloud.google.com/go/metastore v1.13.3/go.mod h1:K+wdjXdtkdk7AQg4+sXS8bRrQa9gcOr+foOMF2tqINE=
+-cloud.google.com/go/monitoring v1.7.0/go.mod h1:HpYse6kkGo//7p6sT0wsIC6IBDET0RhIsnmlA53dvEk=
+-cloud.google.com/go/monitoring v1.8.0/go.mod h1:E7PtoMJ1kQXWxPjB6mv2fhC5/15jInuulFdYYtlcvT4=
+-cloud.google.com/go/monitoring v1.12.0/go.mod h1:yx8Jj2fZNEkL/GYZyTLS4ZtZEZN8WtDEiEqG4kLK50w=
+-cloud.google.com/go/monitoring v1.13.0/go.mod h1:k2yMBAB1H9JT/QETjNkgdCGD9bPF712XiLTVr+cBrpw=
+-cloud.google.com/go/monitoring v1.15.1/go.mod h1:lADlSAlFdbqQuwwpaImhsJXu1QSdd3ojypXrFSMr2rM=
+-cloud.google.com/go/monitoring v1.16.0/go.mod h1:Ptp15HgAyM1fNICAojDMoNc/wUmn67mLHQfyqbw+poY=
+-cloud.google.com/go/monitoring v1.16.1/go.mod h1:6HsxddR+3y9j+o/cMJH6q/KJ/CBTvM/38L/1m7bTRJ4=
+-cloud.google.com/go/monitoring v1.16.2/go.mod h1:B44KGwi4ZCF8Rk/5n+FWeispDXoKSk9oss2QNlXJBgc=
+-cloud.google.com/go/monitoring v1.16.3/go.mod h1:KwSsX5+8PnXv5NJnICZzW2R8pWTis8ypC4zmdRD63Tw=
+-cloud.google.com/go/networkconnectivity v1.4.0/go.mod h1:nOl7YL8odKyAOtzNX73/M5/mGZgqqMeryi6UPZTk/rA=
+-cloud.google.com/go/networkconnectivity v1.5.0/go.mod h1:3GzqJx7uhtlM3kln0+x5wyFvuVH1pIBJjhCpjzSt75o=
+-cloud.google.com/go/networkconnectivity v1.6.0/go.mod h1:OJOoEXW+0LAxHh89nXd64uGG+FbQoeH8DtxCHVOMlaM=
+-cloud.google.com/go/networkconnectivity v1.7.0/go.mod h1:RMuSbkdbPwNMQjB5HBWD5MpTBnNm39iAVpC3TmsExt8=
+-cloud.google.com/go/networkconnectivity v1.10.0/go.mod h1:UP4O4sWXJG13AqrTdQCD9TnLGEbtNRqjuaaA7bNjF5E=
+-cloud.google.com/go/networkconnectivity v1.11.0/go.mod h1:iWmDD4QF16VCDLXUqvyspJjIEtBR/4zq5hwnY2X3scM=
+-cloud.google.com/go/networkconnectivity v1.12.1/go.mod h1:PelxSWYM7Sh9/guf8CFhi6vIqf19Ir/sbfZRUwXh92E=
+-cloud.google.com/go/networkconnectivity v1.13.0/go.mod h1:SAnGPes88pl7QRLUen2HmcBSE9AowVAcdug8c0RSBFk=
+-cloud.google.com/go/networkconnectivity v1.14.0/go.mod h1:SAnGPes88pl7QRLUen2HmcBSE9AowVAcdug8c0RSBFk=
+-cloud.google.com/go/networkconnectivity v1.14.1/go.mod h1:LyGPXR742uQcDxZ/wv4EI0Vu5N6NKJ77ZYVnDe69Zug=
+-cloud.google.com/go/networkconnectivity v1.14.2/go.mod h1:5UFlwIisZylSkGG1AdwK/WZUaoz12PKu6wODwIbFzJo=
+-cloud.google.com/go/networkconnectivity v1.14.3/go.mod h1:4aoeFdrJpYEXNvrnfyD5kIzs8YtHg945Og4koAjHQek=
+-cloud.google.com/go/networkmanagement v1.4.0/go.mod h1:Q9mdLLRn60AsOrPc8rs8iNV6OHXaGcDdsIQe1ohekq8=
+-cloud.google.com/go/networkmanagement v1.5.0/go.mod h1:ZnOeZ/evzUdUsnvRt792H0uYEnHQEMaz+REhhzJRcf4=
+-cloud.google.com/go/networkmanagement v1.6.0/go.mod h1:5pKPqyXjB/sgtvB5xqOemumoQNB7y95Q7S+4rjSOPYY=
+-cloud.google.com/go/networkmanagement v1.8.0/go.mod h1:Ho/BUGmtyEqrttTgWEe7m+8vDdK74ibQc+Be0q7Fof0=
+-cloud.google.com/go/networkmanagement v1.9.0/go.mod h1:UTUaEU9YwbCAhhz3jEOHr+2/K/MrBk2XxOLS89LQzFw=
+-cloud.google.com/go/networkmanagement v1.9.1/go.mod h1:CCSYgrQQvW73EJawO2QamemYcOb57LvrDdDU51F0mcI=
+-cloud.google.com/go/networkmanagement v1.9.2/go.mod h1:iDGvGzAoYRghhp4j2Cji7sF899GnfGQcQRQwgVOWnDw=
+-cloud.google.com/go/networkmanagement v1.9.3/go.mod h1:y7WMO1bRLaP5h3Obm4tey+NquUvB93Co1oh4wpL+XcU=
+-cloud.google.com/go/networksecurity v0.5.0/go.mod h1:xS6fOCoqpVC5zx15Z/MqkfDwH4+m/61A3ODiDV1xmiQ=
+-cloud.google.com/go/networksecurity v0.6.0/go.mod h1:Q5fjhTr9WMI5mbpRYEbiexTzROf7ZbDzvzCrNl14nyU=
+-cloud.google.com/go/networksecurity v0.7.0/go.mod h1:mAnzoxx/8TBSyXEeESMy9OOYwo1v+gZ5eMRnsT5bC8k=
+-cloud.google.com/go/networksecurity v0.8.0/go.mod h1:B78DkqsxFG5zRSVuwYFRZ9Xz8IcQ5iECsNrPn74hKHU=
+-cloud.google.com/go/networksecurity v0.9.1/go.mod h1:MCMdxOKQ30wsBI1eI659f9kEp4wuuAueoC9AJKSPWZQ=
+-cloud.google.com/go/networksecurity v0.9.2/go.mod h1:jG0SeAttWzPMUILEHDUvFYdQTl8L/E/KC8iZDj85lEI=
+-cloud.google.com/go/networksecurity v0.9.3/go.mod h1:l+C0ynM6P+KV9YjOnx+kk5IZqMSLccdBqW6GUoF4p/0=
+-cloud.google.com/go/networksecurity v0.9.4/go.mod h1:E9CeMZ2zDsNBkr8axKSYm8XyTqNhiCHf1JO/Vb8mD1w=
+-cloud.google.com/go/notebooks v1.2.0/go.mod h1:9+wtppMfVPUeJ8fIWPOq1UnATHISkGXGqTkxeieQ6UY=
+-cloud.google.com/go/notebooks v1.3.0/go.mod h1:bFR5lj07DtCPC7YAAJ//vHskFBxA5JzYlH68kXVdk34=
+-cloud.google.com/go/notebooks v1.4.0/go.mod h1:4QPMngcwmgb6uw7Po99B2xv5ufVoIQ7nOGDyL4P8AgA=
+-cloud.google.com/go/notebooks v1.5.0/go.mod h1:q8mwhnP9aR8Hpfnrc5iN5IBhrXUy8S2vuYs+kBJ/gu0=
+-cloud.google.com/go/notebooks v1.7.0/go.mod h1:PVlaDGfJgj1fl1S3dUwhFMXFgfYGhYQt2164xOMONmE=
+-cloud.google.com/go/notebooks v1.8.0/go.mod h1:Lq6dYKOYOWUCTvw5t2q1gp1lAp0zxAxRycayS0iJcqQ=
+-cloud.google.com/go/notebooks v1.9.1/go.mod h1:zqG9/gk05JrzgBt4ghLzEepPHNwE5jgPcHZRKhlC1A8=
+-cloud.google.com/go/notebooks v1.10.0/go.mod h1:SOPYMZnttHxqot0SGSFSkRrwE29eqnKPBJFqgWmiK2k=
+-cloud.google.com/go/notebooks v1.10.1/go.mod h1:5PdJc2SgAybE76kFQCWrTfJolCOUQXF97e+gteUUA6A=
+-cloud.google.com/go/notebooks v1.11.1/go.mod h1:V2Zkv8wX9kDCGRJqYoI+bQAaoVeE5kSiz4yYHd2yJwQ=
+-cloud.google.com/go/notebooks v1.11.2/go.mod h1:z0tlHI/lREXC8BS2mIsUeR3agM1AkgLiS+Isov3SS70=
+-cloud.google.com/go/optimization v1.1.0/go.mod h1:5po+wfvX5AQlPznyVEZjGJTMr4+CAkJf2XSTQOOl9l4=
+-cloud.google.com/go/optimization v1.2.0/go.mod h1:Lr7SOHdRDENsh+WXVmQhQTrzdu9ybg0NecjHidBq6xs=
+-cloud.google.com/go/optimization v1.3.1/go.mod h1:IvUSefKiwd1a5p0RgHDbWCIbDFgKuEdB+fPPuP0IDLI=
+-cloud.google.com/go/optimization v1.4.1/go.mod h1:j64vZQP7h9bO49m2rVaTVoNM0vEBEN5eKPUPbZyXOrk=
+-cloud.google.com/go/optimization v1.5.0/go.mod h1:evo1OvTxeBRBu6ydPlrIRizKY/LJKo/drDMMRKqGEUU=
+-cloud.google.com/go/optimization v1.5.1/go.mod h1:NC0gnUD5MWVAF7XLdoYVPmYYVth93Q6BUzqAq3ZwtV8=
+-cloud.google.com/go/optimization v1.6.1/go.mod h1:hH2RYPTTM9e9zOiTaYPTiGPcGdNZVnBSBxjIAJzUkqo=
+-cloud.google.com/go/optimization v1.6.2/go.mod h1:mWNZ7B9/EyMCcwNl1frUGEuY6CPijSkz88Fz2vwKPOY=
+-cloud.google.com/go/orchestration v1.3.0/go.mod h1:Sj5tq/JpWiB//X/q3Ngwdl5K7B7Y0KZ7bfv0wL6fqVA=
+-cloud.google.com/go/orchestration v1.4.0/go.mod h1:6W5NLFWs2TlniBphAViZEVhrXRSMgUGDfW7vrWKvsBk=
+-cloud.google.com/go/orchestration v1.6.0/go.mod h1:M62Bevp7pkxStDfFfTuCOaXgaaqRAga1yKyoMtEoWPQ=
+-cloud.google.com/go/orchestration v1.8.1/go.mod h1:4sluRF3wgbYVRqz7zJ1/EUNc90TTprliq9477fGobD8=
+-cloud.google.com/go/orchestration v1.8.2/go.mod h1:T1cP+6WyTmh6LSZzeUhvGf0uZVmJyTx7t8z7Vg87+A0=
+-cloud.google.com/go/orchestration v1.8.3/go.mod h1:xhgWAYqlbYjlz2ftbFghdyqENYW+JXuhBx9KsjMoGHs=
+-cloud.google.com/go/orchestration v1.8.4/go.mod h1:d0lywZSVYtIoSZXb0iFjv9SaL13PGyVOKDxqGxEf/qI=
+-cloud.google.com/go/orgpolicy v1.4.0/go.mod h1:xrSLIV4RePWmP9P3tBl8S93lTmlAxjm06NSm2UTmKvE=
+-cloud.google.com/go/orgpolicy v1.5.0/go.mod h1:hZEc5q3wzwXJaKrsx5+Ewg0u1LxJ51nNFlext7Tanwc=
+-cloud.google.com/go/orgpolicy v1.10.0/go.mod h1:w1fo8b7rRqlXlIJbVhOMPrwVljyuW5mqssvBtU18ONc=
+-cloud.google.com/go/orgpolicy v1.11.0/go.mod h1:2RK748+FtVvnfuynxBzdnyu7sygtoZa1za/0ZfpOs1M=
+-cloud.google.com/go/orgpolicy v1.11.1/go.mod h1:8+E3jQcpZJQliP+zaFfayC2Pg5bmhuLK755wKhIIUCE=
+-cloud.google.com/go/orgpolicy v1.11.2/go.mod h1:biRDpNwfyytYnmCRWZWxrKF22Nkz9eNVj9zyaBdpm1o=
+-cloud.google.com/go/orgpolicy v1.11.3/go.mod h1:oKAtJ/gkMjum5icv2aujkP4CxROxPXsBbYGCDbPO8MM=
+-cloud.google.com/go/orgpolicy v1.11.4/go.mod h1:0+aNV/nrfoTQ4Mytv+Aw+stBDBjNf4d8fYRA9herfJI=
+-cloud.google.com/go/osconfig v1.7.0/go.mod h1:oVHeCeZELfJP7XLxcBGTMBvRO+1nQ5tFG9VQTmYS2Fs=
+-cloud.google.com/go/osconfig v1.8.0/go.mod h1:EQqZLu5w5XA7eKizepumcvWx+m8mJUhEwiPqWiZeEdg=
+-cloud.google.com/go/osconfig v1.9.0/go.mod h1:Yx+IeIZJ3bdWmzbQU4fxNl8xsZ4amB+dygAwFPlvnNo=
+-cloud.google.com/go/osconfig v1.10.0/go.mod h1:uMhCzqC5I8zfD9zDEAfvgVhDS8oIjySWh+l4WK6GnWw=
+-cloud.google.com/go/osconfig v1.11.0/go.mod h1:aDICxrur2ogRd9zY5ytBLV89KEgT2MKB2L/n6x1ooPw=
+-cloud.google.com/go/osconfig v1.12.0/go.mod h1:8f/PaYzoS3JMVfdfTubkowZYGmAhUCjjwnjqWI7NVBc=
+-cloud.google.com/go/osconfig v1.12.1/go.mod h1:4CjBxND0gswz2gfYRCUoUzCm9zCABp91EeTtWXyz0tE=
+-cloud.google.com/go/osconfig v1.12.2/go.mod h1:eh9GPaMZpI6mEJEuhEjUJmaxvQ3gav+fFEJon1Y8Iw0=
+-cloud.google.com/go/osconfig v1.12.3/go.mod h1:L/fPS8LL6bEYUi1au832WtMnPeQNT94Zo3FwwV1/xGM=
+-cloud.google.com/go/osconfig v1.12.4/go.mod h1:B1qEwJ/jzqSRslvdOCI8Kdnp0gSng0xW4LOnIebQomA=
+-cloud.google.com/go/oslogin v1.4.0/go.mod h1:YdgMXWRaElXz/lDk1Na6Fh5orF7gvmJ0FGLIs9LId4E=
+-cloud.google.com/go/oslogin v1.5.0/go.mod h1:D260Qj11W2qx/HVF29zBg+0fd6YCSjSqLUkY/qEenQU=
+-cloud.google.com/go/oslogin v1.6.0/go.mod h1:zOJ1O3+dTU8WPlGEkFSh7qeHPPSoxrcMbbK1Nm2iX70=
+-cloud.google.com/go/oslogin v1.7.0/go.mod h1:e04SN0xO1UNJ1M5GP0vzVBFicIe4O53FOfcixIqTyXo=
+-cloud.google.com/go/oslogin v1.9.0/go.mod h1:HNavntnH8nzrn8JCTT5fj18FuJLFJc4NaZJtBnQtKFs=
+-cloud.google.com/go/oslogin v1.10.1/go.mod h1:x692z7yAue5nE7CsSnoG0aaMbNoRJRXO4sn73R+ZqAs=
+-cloud.google.com/go/oslogin v1.11.0/go.mod h1:8GMTJs4X2nOAUVJiPGqIWVcDaF0eniEto3xlOxaboXE=
+-cloud.google.com/go/oslogin v1.11.1/go.mod h1:OhD2icArCVNUxKqtK0mcSmKL7lgr0LVlQz+v9s1ujTg=
+-cloud.google.com/go/oslogin v1.12.1/go.mod h1:VfwTeFJGbnakxAY236eN8fsnglLiVXndlbcNomY4iZU=
+-cloud.google.com/go/oslogin v1.12.2/go.mod h1:CQ3V8Jvw4Qo4WRhNPF0o+HAM4DiLuE27Ul9CX9g2QdY=
+-cloud.google.com/go/phishingprotection v0.5.0/go.mod h1:Y3HZknsK9bc9dMi+oE8Bim0lczMU6hrX0UpADuMefr0=
+-cloud.google.com/go/phishingprotection v0.6.0/go.mod h1:9Y3LBLgy0kDTcYET8ZH3bq/7qni15yVUoAxiFxnlSUA=
+-cloud.google.com/go/phishingprotection v0.7.0/go.mod h1:8qJI4QKHoda/sb/7/YmMQ2omRLSLYSu9bU0EKCNI+Lk=
+-cloud.google.com/go/phishingprotection v0.8.1/go.mod h1:AxonW7GovcA8qdEk13NfHq9hNx5KPtfxXNeUxTDxB6I=
+-cloud.google.com/go/phishingprotection v0.8.2/go.mod h1:LhJ91uyVHEYKSKcMGhOa14zMMWfbEdxG032oT6ECbC8=
+-cloud.google.com/go/phishingprotection v0.8.3/go.mod h1:3B01yO7T2Ra/TMojifn8EoGd4G9jts/6cIO0DgDY9J8=
+-cloud.google.com/go/phishingprotection v0.8.4/go.mod h1:6b3kNPAc2AQ6jZfFHioZKg9MQNybDg4ixFd4RPZZ2nE=
+-cloud.google.com/go/policytroubleshooter v1.3.0/go.mod h1:qy0+VwANja+kKrjlQuOzmlvscn4RNsAc0e15GGqfMxg=
+-cloud.google.com/go/policytroubleshooter v1.4.0/go.mod h1:DZT4BcRw3QoO8ota9xw/LKtPa8lKeCByYeKTIf/vxdE=
+-cloud.google.com/go/policytroubleshooter v1.5.0/go.mod h1:Rz1WfV+1oIpPdN2VvvuboLVRsB1Hclg3CKQ53j9l8vw=
+-cloud.google.com/go/policytroubleshooter v1.6.0/go.mod h1:zYqaPTsmfvpjm5ULxAyD/lINQxJ0DDsnWOP/GZ7xzBc=
+-cloud.google.com/go/policytroubleshooter v1.7.1/go.mod h1:0NaT5v3Ag1M7U5r0GfDCpUFkWd9YqpubBWsQlhanRv0=
+-cloud.google.com/go/policytroubleshooter v1.8.0/go.mod h1:tmn5Ir5EToWe384EuboTcVQT7nTag2+DuH3uHmKd1HU=
+-cloud.google.com/go/policytroubleshooter v1.9.0/go.mod h1:+E2Lga7TycpeSTj2FsH4oXxTnrbHJGRlKhVZBLGgU64=
+-cloud.google.com/go/policytroubleshooter v1.9.1/go.mod h1:MYI8i0bCrL8cW+VHN1PoiBTyNZTstCg2WUw2eVC4c4U=
+-cloud.google.com/go/policytroubleshooter v1.10.1/go.mod h1:5C0rhT3TDZVxAu8813bwmTvd57Phbl8mr9F4ipOsxEs=
+-cloud.google.com/go/policytroubleshooter v1.10.2/go.mod h1:m4uF3f6LseVEnMV6nknlN2vYGRb+75ylQwJdnOXfnv0=
+-cloud.google.com/go/privatecatalog v0.5.0/go.mod h1:XgosMUvvPyxDjAVNDYxJ7wBW8//hLDDYmnsNcMGq1K0=
+-cloud.google.com/go/privatecatalog v0.6.0/go.mod h1:i/fbkZR0hLN29eEWiiwue8Pb+GforiEIBnV9yrRUOKI=
+-cloud.google.com/go/privatecatalog v0.7.0/go.mod h1:2s5ssIFO69F5csTXcwBP7NPFTZvps26xGzvQ2PQaBYg=
+-cloud.google.com/go/privatecatalog v0.8.0/go.mod h1:nQ6pfaegeDAq/Q5lrfCQzQLhubPiZhSaNhIgfJlnIXs=
+-cloud.google.com/go/privatecatalog v0.9.1/go.mod h1:0XlDXW2unJXdf9zFz968Hp35gl/bhF4twwpXZAW50JA=
+-cloud.google.com/go/privatecatalog v0.9.2/go.mod h1:RMA4ATa8IXfzvjrhhK8J6H4wwcztab+oZph3c6WmtFc=
+-cloud.google.com/go/privatecatalog v0.9.3/go.mod h1:K5pn2GrVmOPjXz3T26mzwXLcKivfIJ9R5N79AFCF9UE=
+-cloud.google.com/go/privatecatalog v0.9.4/go.mod h1:SOjm93f+5hp/U3PqMZAHTtBtluqLygrDrVO8X8tYtG0=
+-cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
+-cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw=
+-cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA=
+-cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU=
+-cloud.google.com/go/pubsub v1.26.0/go.mod h1:QgBH3U/jdJy/ftjPhTkyXNj543Tin1pRYcdcPRnFIRI=
+-cloud.google.com/go/pubsub v1.27.1/go.mod h1:hQN39ymbV9geqBnfQq6Xf63yNhUAhv9CZhzp5O6qsW0=
+-cloud.google.com/go/pubsub v1.28.0/go.mod h1:vuXFpwaVoIPQMGXqRyUQigu/AX1S3IWugR9xznmcXX8=
+-cloud.google.com/go/pubsub v1.30.0/go.mod h1:qWi1OPS0B+b5L+Sg6Gmc9zD1Y+HaM0MdUr7LsupY1P4=
+-cloud.google.com/go/pubsub v1.32.0/go.mod h1:f+w71I33OMyxf9VpMVcZbnG5KSUkCOUHYpFd5U1GdRc=
+-cloud.google.com/go/pubsub v1.33.0/go.mod h1:f+w71I33OMyxf9VpMVcZbnG5KSUkCOUHYpFd5U1GdRc=
+-cloud.google.com/go/pubsublite v1.5.0/go.mod h1:xapqNQ1CuLfGi23Yda/9l4bBCKz/wC3KIJ5gKcxveZg=
+-cloud.google.com/go/pubsublite v1.6.0/go.mod h1:1eFCS0U11xlOuMFV/0iBqw3zP12kddMeCbj/F3FSj9k=
+-cloud.google.com/go/pubsublite v1.7.0/go.mod h1:8hVMwRXfDfvGm3fahVbtDbiLePT3gpoiJYJY+vxWxVM=
+-cloud.google.com/go/pubsublite v1.8.1/go.mod h1:fOLdU4f5xldK4RGJrBMm+J7zMWNj/k4PxwEZXy39QS0=
+-cloud.google.com/go/recaptchaenterprise v1.3.1/go.mod h1:OdD+q+y4XGeAlxRaMn1Y7/GveP6zmq76byL6tjPE7d4=
+-cloud.google.com/go/recaptchaenterprise/v2 v2.1.0/go.mod h1:w9yVqajwroDNTfGuhmOjPDN//rZGySaf6PtFVcSCa7o=
+-cloud.google.com/go/recaptchaenterprise/v2 v2.2.0/go.mod h1:/Zu5jisWGeERrd5HnlS3EUGb/D335f9k51B/FVil0jk=
+-cloud.google.com/go/recaptchaenterprise/v2 v2.3.0/go.mod h1:O9LwGCjrhGHBQET5CA7dd5NwwNQUErSgEDit1DLNTdo=
+-cloud.google.com/go/recaptchaenterprise/v2 v2.4.0/go.mod h1:Am3LHfOuBstrLrNCBrlI5sbwx9LBg3te2N6hGvHn2mE=
+-cloud.google.com/go/recaptchaenterprise/v2 v2.5.0/go.mod h1:O8LzcHXN3rz0j+LBC91jrwI3R+1ZSZEWrfL7XHgNo9U=
+-cloud.google.com/go/recaptchaenterprise/v2 v2.6.0/go.mod h1:RPauz9jeLtB3JVzg6nCbe12qNoaa8pXc4d/YukAmcnA=
+-cloud.google.com/go/recaptchaenterprise/v2 v2.7.0/go.mod h1:19wVj/fs5RtYtynAPJdDTb69oW0vNHYDBTbB4NvMD9c=
+-cloud.google.com/go/recaptchaenterprise/v2 v2.7.2/go.mod h1:kR0KjsJS7Jt1YSyWFkseQ756D45kaYNTlDPPaRAvDBU=
+-cloud.google.com/go/recaptchaenterprise/v2 v2.8.0/go.mod h1:QuE8EdU9dEnesG8/kG3XuJyNsjEqMlMzg3v3scCJ46c=
+-cloud.google.com/go/recaptchaenterprise/v2 v2.8.1/go.mod h1:JZYZJOeZjgSSTGP4uz7NlQ4/d1w5hGmksVgM0lbEij0=
+-cloud.google.com/go/recaptchaenterprise/v2 v2.8.2/go.mod h1:kpaDBOpkwD4G0GVMzG1W6Doy1tFFC97XAV3xy+Rd/pw=
+-cloud.google.com/go/recaptchaenterprise/v2 v2.8.3/go.mod h1:Dak54rw6lC2gBY8FBznpOCAR58wKf+R+ZSJRoeJok4w=
+-cloud.google.com/go/recaptchaenterprise/v2 v2.8.4/go.mod h1:Dak54rw6lC2gBY8FBznpOCAR58wKf+R+ZSJRoeJok4w=
+-cloud.google.com/go/recommendationengine v0.5.0/go.mod h1:E5756pJcVFeVgaQv3WNpImkFP8a+RptV6dDLGPILjvg=
+-cloud.google.com/go/recommendationengine v0.6.0/go.mod h1:08mq2umu9oIqc7tDy8sx+MNJdLG0fUi3vaSVbztHgJ4=
+-cloud.google.com/go/recommendationengine v0.7.0/go.mod h1:1reUcE3GIu6MeBz/h5xZJqNLuuVjNg1lmWMPyjatzac=
+-cloud.google.com/go/recommendationengine v0.8.1/go.mod h1:MrZihWwtFYWDzE6Hz5nKcNz3gLizXVIDI/o3G1DLcrE=
+-cloud.google.com/go/recommendationengine v0.8.2/go.mod h1:QIybYHPK58qir9CV2ix/re/M//Ty10OxjnnhWdaKS1Y=
+-cloud.google.com/go/recommendationengine v0.8.3/go.mod h1:m3b0RZV02BnODE9FeSvGv1qibFo8g0OnmB/RMwYy4V8=
+-cloud.google.com/go/recommendationengine v0.8.4/go.mod h1:GEteCf1PATl5v5ZsQ60sTClUE0phbWmo3rQ1Js8louU=
+-cloud.google.com/go/recommender v1.5.0/go.mod h1:jdoeiBIVrJe9gQjwd759ecLJbxCDED4A6p+mqoqDvTg=
+-cloud.google.com/go/recommender v1.6.0/go.mod h1:+yETpm25mcoiECKh9DEScGzIRyDKpZ0cEhWGo+8bo+c=
+-cloud.google.com/go/recommender v1.7.0/go.mod h1:XLHs/W+T8olwlGOgfQenXBTbIseGclClff6lhFVe9Bs=
+-cloud.google.com/go/recommender v1.8.0/go.mod h1:PkjXrTT05BFKwxaUxQmtIlrtj0kph108r02ZZQ5FE70=
+-cloud.google.com/go/recommender v1.9.0/go.mod h1:PnSsnZY7q+VL1uax2JWkt/UegHssxjUVVCrX52CuEmQ=
+-cloud.google.com/go/recommender v1.10.1/go.mod h1:XFvrE4Suqn5Cq0Lf+mCP6oBHD/yRMA8XxP5sb7Q7gpA=
+-cloud.google.com/go/recommender v1.11.0/go.mod h1:kPiRQhPyTJ9kyXPCG6u/dlPLbYfFlkwHNRwdzPVAoII=
+-cloud.google.com/go/recommender v1.11.1/go.mod h1:sGwFFAyI57v2Hc5LbIj+lTwXipGu9NW015rkaEM5B18=
+-cloud.google.com/go/recommender v1.11.2/go.mod h1:AeoJuzOvFR/emIcXdVFkspVXVTYpliRCmKNYDnyBv6Y=
+-cloud.google.com/go/recommender v1.11.3/go.mod h1:+FJosKKJSId1MBFeJ/TTyoGQZiEelQQIZMKYYD8ruK4=
+-cloud.google.com/go/redis v1.7.0/go.mod h1:V3x5Jq1jzUcg+UNsRvdmsfuFnit1cfe3Z/PGyq/lm4Y=
+-cloud.google.com/go/redis v1.8.0/go.mod h1:Fm2szCDavWzBk2cDKxrkmWBqoCiL1+Ctwq7EyqBCA/A=
+-cloud.google.com/go/redis v1.9.0/go.mod h1:HMYQuajvb2D0LvMgZmLDZW8V5aOC/WxstZHiy4g8OiA=
+-cloud.google.com/go/redis v1.10.0/go.mod h1:ThJf3mMBQtW18JzGgh41/Wld6vnDDc/F/F35UolRZPM=
+-cloud.google.com/go/redis v1.11.0/go.mod h1:/X6eicana+BWcUda5PpwZC48o37SiFVTFSs0fWAJ7uQ=
+-cloud.google.com/go/redis v1.13.1/go.mod h1:VP7DGLpE91M6bcsDdMuyCm2hIpB6Vp2hI090Mfd1tcg=
+-cloud.google.com/go/redis v1.13.2/go.mod h1:0Hg7pCMXS9uz02q+LoEVl5dNHUkIQv+C/3L76fandSA=
+-cloud.google.com/go/redis v1.13.3/go.mod h1:vbUpCKUAZSYzFcWKmICnYgRAhTFg9r+djWqFxDYXi4U=
+-cloud.google.com/go/redis v1.14.1/go.mod h1:MbmBxN8bEnQI4doZPC1BzADU4HGocHBk2de3SbgOkqs=
+-cloud.google.com/go/resourcemanager v1.3.0/go.mod h1:bAtrTjZQFJkiWTPDb1WBjzvc6/kifjj4QBYuKCCoqKA=
+-cloud.google.com/go/resourcemanager v1.4.0/go.mod h1:MwxuzkumyTX7/a3n37gmsT3py7LIXwrShilPh3P1tR0=
+-cloud.google.com/go/resourcemanager v1.5.0/go.mod h1:eQoXNAiAvCf5PXxWxXjhKQoTMaUSNrEfg+6qdf/wots=
+-cloud.google.com/go/resourcemanager v1.6.0/go.mod h1:YcpXGRs8fDzcUl1Xw8uOVmI8JEadvhRIkoXXUNVYcVo=
+-cloud.google.com/go/resourcemanager v1.7.0/go.mod h1:HlD3m6+bwhzj9XCouqmeiGuni95NTrExfhoSrkC/3EI=
+-cloud.google.com/go/resourcemanager v1.9.1/go.mod h1:dVCuosgrh1tINZ/RwBufr8lULmWGOkPS8gL5gqyjdT8=
+-cloud.google.com/go/resourcemanager v1.9.2/go.mod h1:OujkBg1UZg5lX2yIyMo5Vz9O5hf7XQOSV7WxqxxMtQE=
+-cloud.google.com/go/resourcemanager v1.9.3/go.mod h1:IqrY+g0ZgLsihcfcmqSe+RKp1hzjXwG904B92AwBz6U=
+-cloud.google.com/go/resourcemanager v1.9.4/go.mod h1:N1dhP9RFvo3lUfwtfLWVxfUWq8+KUQ+XLlHLH3BoFJ0=
+-cloud.google.com/go/resourcesettings v1.3.0/go.mod h1:lzew8VfESA5DQ8gdlHwMrqZs1S9V87v3oCnKCWoOuQU=
+-cloud.google.com/go/resourcesettings v1.4.0/go.mod h1:ldiH9IJpcrlC3VSuCGvjR5of/ezRrOxFtpJoJo5SmXg=
+-cloud.google.com/go/resourcesettings v1.5.0/go.mod h1:+xJF7QSG6undsQDfsCJyqWXyBwUoJLhetkRMDRnIoXA=
+-cloud.google.com/go/resourcesettings v1.6.1/go.mod h1:M7mk9PIZrC5Fgsu1kZJci6mpgN8o0IUzVx3eJU3y4Jw=
+-cloud.google.com/go/resourcesettings v1.6.2/go.mod h1:mJIEDd9MobzunWMeniaMp6tzg4I2GvD3TTmPkc8vBXk=
+-cloud.google.com/go/resourcesettings v1.6.3/go.mod h1:pno5D+7oDYkMWZ5BpPsb4SO0ewg3IXcmmrUZaMJrFic=
+-cloud.google.com/go/resourcesettings v1.6.4/go.mod h1:pYTTkWdv2lmQcjsthbZLNBP4QW140cs7wqA3DuqErVI=
+-cloud.google.com/go/retail v1.8.0/go.mod h1:QblKS8waDmNUhghY2TI9O3JLlFk8jybHeV4BF19FrE4=
+-cloud.google.com/go/retail v1.9.0/go.mod h1:g6jb6mKuCS1QKnH/dpu7isX253absFl6iE92nHwlBUY=
+-cloud.google.com/go/retail v1.10.0/go.mod h1:2gDk9HsL4HMS4oZwz6daui2/jmKvqShXKQuB2RZ+cCc=
+-cloud.google.com/go/retail v1.11.0/go.mod h1:MBLk1NaWPmh6iVFSz9MeKG/Psyd7TAgm6y/9L2B4x9Y=
+-cloud.google.com/go/retail v1.12.0/go.mod h1:UMkelN/0Z8XvKymXFbD4EhFJlYKRx1FGhQkVPU5kF14=
+-cloud.google.com/go/retail v1.14.1/go.mod h1:y3Wv3Vr2k54dLNIrCzenyKG8g8dhvhncT2NcNjb/6gE=
+-cloud.google.com/go/retail v1.14.2/go.mod h1:W7rrNRChAEChX336QF7bnMxbsjugcOCPU44i5kbLiL8=
+-cloud.google.com/go/retail v1.14.3/go.mod h1:Omz2akDHeSlfCq8ArPKiBxlnRpKEBjUH386JYFLUvXo=
+-cloud.google.com/go/retail v1.14.4/go.mod h1:l/N7cMtY78yRnJqp5JW8emy7MB1nz8E4t2yfOmklYfg=
+-cloud.google.com/go/run v0.2.0/go.mod h1:CNtKsTA1sDcnqqIFR3Pb5Tq0usWxJJvsWOCPldRU3Do=
+-cloud.google.com/go/run v0.3.0/go.mod h1:TuyY1+taHxTjrD0ZFk2iAR+xyOXEA0ztb7U3UNA0zBo=
+-cloud.google.com/go/run v0.8.0/go.mod h1:VniEnuBwqjigv0A7ONfQUaEItaiCRVujlMqerPPiktM=
+-cloud.google.com/go/run v0.9.0/go.mod h1:Wwu+/vvg8Y+JUApMwEDfVfhetv30hCG4ZwDR/IXl2Qg=
+-cloud.google.com/go/run v1.2.0/go.mod h1:36V1IlDzQ0XxbQjUx6IYbw8H3TJnWvhii963WW3B/bo=
+-cloud.google.com/go/run v1.3.0/go.mod h1:S/osX/4jIPZGg+ssuqh6GNgg7syixKe3YnprwehzHKU=
+-cloud.google.com/go/run v1.3.1/go.mod h1:cymddtZOzdwLIAsmS6s+Asl4JoXIDm/K1cpZTxV4Q5s=
+-cloud.google.com/go/run v1.3.2/go.mod h1:SIhmqArbjdU/D9M6JoHaAqnAMKLFtXaVdNeq04NjnVE=
+-cloud.google.com/go/run v1.3.3/go.mod h1:WSM5pGyJ7cfYyYbONVQBN4buz42zFqwG67Q3ch07iK4=
+-cloud.google.com/go/scheduler v1.4.0/go.mod h1:drcJBmxF3aqZJRhmkHQ9b3uSSpQoltBPGPxGAWROx6s=
+-cloud.google.com/go/scheduler v1.5.0/go.mod h1:ri073ym49NW3AfT6DZi21vLZrG07GXr5p3H1KxN5QlI=
+-cloud.google.com/go/scheduler v1.6.0/go.mod h1:SgeKVM7MIwPn3BqtcBntpLyrIJftQISRrYB5ZtT+KOk=
+-cloud.google.com/go/scheduler v1.7.0/go.mod h1:jyCiBqWW956uBjjPMMuX09n3x37mtyPJegEWKxRsn44=
+-cloud.google.com/go/scheduler v1.8.0/go.mod h1:TCET+Y5Gp1YgHT8py4nlg2Sew8nUHMqcpousDgXJVQc=
+-cloud.google.com/go/scheduler v1.9.0/go.mod h1:yexg5t+KSmqu+njTIh3b7oYPheFtBWGcbVUYF1GGMIc=
+-cloud.google.com/go/scheduler v1.10.1/go.mod h1:R63Ldltd47Bs4gnhQkmNDse5w8gBRrhObZ54PxgR2Oo=
+-cloud.google.com/go/scheduler v1.10.2/go.mod h1:O3jX6HRH5eKCA3FutMw375XHZJudNIKVonSCHv7ropY=
+-cloud.google.com/go/scheduler v1.10.3/go.mod h1:8ANskEM33+sIbpJ+R4xRfw/jzOG+ZFE8WVLy7/yGvbc=
+-cloud.google.com/go/scheduler v1.10.4/go.mod h1:MTuXcrJC9tqOHhixdbHDFSIuh7xZF2IysiINDuiq6NI=
+-cloud.google.com/go/scheduler v1.10.5/go.mod h1:MTuXcrJC9tqOHhixdbHDFSIuh7xZF2IysiINDuiq6NI=
+-cloud.google.com/go/secretmanager v1.6.0/go.mod h1:awVa/OXF6IiyaU1wQ34inzQNc4ISIDIrId8qE5QGgKA=
+-cloud.google.com/go/secretmanager v1.8.0/go.mod h1:hnVgi/bN5MYHd3Gt0SPuTPPp5ENina1/LxM+2W9U9J4=
+-cloud.google.com/go/secretmanager v1.9.0/go.mod h1:b71qH2l1yHmWQHt9LC80akm86mX8AL6X1MA01dW8ht4=
+-cloud.google.com/go/secretmanager v1.10.0/go.mod h1:MfnrdvKMPNra9aZtQFvBcvRU54hbPD8/HayQdlUgJpU=
+-cloud.google.com/go/secretmanager v1.11.1/go.mod h1:znq9JlXgTNdBeQk9TBW/FnR/W4uChEKGeqQWAJ8SXFw=
+-cloud.google.com/go/secretmanager v1.11.2/go.mod h1:MQm4t3deoSub7+WNwiC4/tRYgDBHJgJPvswqQVB1Vss=
+-cloud.google.com/go/secretmanager v1.11.3/go.mod h1:0bA2o6FabmShrEy328i67aV+65XoUFFSmVeLBn/51jI=
+-cloud.google.com/go/secretmanager v1.11.4/go.mod h1:wreJlbS9Zdq21lMzWmJ0XhWW2ZxgPeahsqeV/vZoJ3w=
+-cloud.google.com/go/security v1.5.0/go.mod h1:lgxGdyOKKjHL4YG3/YwIL2zLqMFCKs0UbQwgyZmfJl4=
+-cloud.google.com/go/security v1.7.0/go.mod h1:mZklORHl6Bg7CNnnjLH//0UlAlaXqiG7Lb9PsPXLfD0=
+-cloud.google.com/go/security v1.8.0/go.mod h1:hAQOwgmaHhztFhiQ41CjDODdWP0+AE1B3sX4OFlq+GU=
+-cloud.google.com/go/security v1.9.0/go.mod h1:6Ta1bO8LXI89nZnmnsZGp9lVoVWXqsVbIq/t9dzI+2Q=
+-cloud.google.com/go/security v1.10.0/go.mod h1:QtOMZByJVlibUT2h9afNDWRZ1G96gVywH8T5GUSb9IA=
+-cloud.google.com/go/security v1.12.0/go.mod h1:rV6EhrpbNHrrxqlvW0BWAIawFWq3X90SduMJdFwtLB8=
+-cloud.google.com/go/security v1.13.0/go.mod h1:Q1Nvxl1PAgmeW0y3HTt54JYIvUdtcpYKVfIB8AOMZ+0=
+-cloud.google.com/go/security v1.15.1/go.mod h1:MvTnnbsWnehoizHi09zoiZob0iCHVcL4AUBj76h9fXA=
+-cloud.google.com/go/security v1.15.2/go.mod h1:2GVE/v1oixIRHDaClVbHuPcZwAqFM28mXuAKCfMgYIg=
+-cloud.google.com/go/security v1.15.3/go.mod h1:gQ/7Q2JYUZZgOzqKtw9McShH+MjNvtDpL40J1cT+vBs=
+-cloud.google.com/go/security v1.15.4/go.mod h1:oN7C2uIZKhxCLiAAijKUCuHLZbIt/ghYEo8MqwD/Ty4=
+-cloud.google.com/go/securitycenter v1.13.0/go.mod h1:cv5qNAqjY84FCN6Y9z28WlkKXyWsgLO832YiWwkCWcU=
+-cloud.google.com/go/securitycenter v1.14.0/go.mod h1:gZLAhtyKv85n52XYWt6RmeBdydyxfPeTrpToDPw4Auc=
+-cloud.google.com/go/securitycenter v1.15.0/go.mod h1:PeKJ0t8MoFmmXLXWm41JidyzI3PJjd8sXWaVqg43WWk=
+-cloud.google.com/go/securitycenter v1.16.0/go.mod h1:Q9GMaLQFUD+5ZTabrbujNWLtSLZIZF7SAR0wWECrjdk=
+-cloud.google.com/go/securitycenter v1.18.1/go.mod h1:0/25gAzCM/9OL9vVx4ChPeM/+DlfGQJDwBy/UC8AKK0=
+-cloud.google.com/go/securitycenter v1.19.0/go.mod h1:LVLmSg8ZkkyaNy4u7HCIshAngSQ8EcIRREP3xBnyfag=
+-cloud.google.com/go/securitycenter v1.23.0/go.mod h1:8pwQ4n+Y9WCWM278R8W3nF65QtY172h4S8aXyI9/hsQ=
+-cloud.google.com/go/securitycenter v1.23.1/go.mod h1:w2HV3Mv/yKhbXKwOCu2i8bCuLtNP1IMHuiYQn4HJq5s=
+-cloud.google.com/go/securitycenter v1.24.1/go.mod h1:3h9IdjjHhVMXdQnmqzVnM7b0wMn/1O/U20eWVpMpZjI=
+-cloud.google.com/go/securitycenter v1.24.2/go.mod h1:l1XejOngggzqwr4Fa2Cn+iWZGf+aBLTXtB/vXjy5vXM=
+-cloud.google.com/go/servicecontrol v1.4.0/go.mod h1:o0hUSJ1TXJAmi/7fLJAedOovnujSEvjKCAFNXPQ1RaU=
+-cloud.google.com/go/servicecontrol v1.5.0/go.mod h1:qM0CnXHhyqKVuiZnGKrIurvVImCs8gmqWsDoqe9sU1s=
+-cloud.google.com/go/servicecontrol v1.10.0/go.mod h1:pQvyvSRh7YzUF2efw7H87V92mxU8FnFDawMClGCNuAA=
+-cloud.google.com/go/servicecontrol v1.11.0/go.mod h1:kFmTzYzTUIuZs0ycVqRHNaNhgR+UMUpw9n02l/pY+mc=
+-cloud.google.com/go/servicecontrol v1.11.1/go.mod h1:aSnNNlwEFBY+PWGQ2DoM0JJ/QUXqV5/ZD9DOLB7SnUk=
+-cloud.google.com/go/servicedirectory v1.4.0/go.mod h1:gH1MUaZCgtP7qQiI+F+A+OpeKF/HQWgtAddhTbhL2bs=
+-cloud.google.com/go/servicedirectory v1.5.0/go.mod h1:QMKFL0NUySbpZJ1UZs3oFAmdvVxhhxB6eJ/Vlp73dfg=
+-cloud.google.com/go/servicedirectory v1.6.0/go.mod h1:pUlbnWsLH9c13yGkxCmfumWEPjsRs1RlmJ4pqiNjVL4=
+-cloud.google.com/go/servicedirectory v1.7.0/go.mod h1:5p/U5oyvgYGYejufvxhgwjL8UVXjkuw7q5XcG10wx1U=
+-cloud.google.com/go/servicedirectory v1.8.0/go.mod h1:srXodfhY1GFIPvltunswqXpVxFPpZjf8nkKQT7XcXaY=
+-cloud.google.com/go/servicedirectory v1.9.0/go.mod h1:29je5JjiygNYlmsGz8k6o+OZ8vd4f//bQLtvzkPPT/s=
+-cloud.google.com/go/servicedirectory v1.10.1/go.mod h1:Xv0YVH8s4pVOwfM/1eMTl0XJ6bzIOSLDt8f8eLaGOxQ=
+-cloud.google.com/go/servicedirectory v1.11.0/go.mod h1:Xv0YVH8s4pVOwfM/1eMTl0XJ6bzIOSLDt8f8eLaGOxQ=
+-cloud.google.com/go/servicedirectory v1.11.1/go.mod h1:tJywXimEWzNzw9FvtNjsQxxJ3/41jseeILgwU/QLrGI=
+-cloud.google.com/go/servicedirectory v1.11.2/go.mod h1:KD9hCLhncWRV5jJphwIpugKwM5bn1x0GyVVD4NO8mGg=
+-cloud.google.com/go/servicedirectory v1.11.3/go.mod h1:LV+cHkomRLr67YoQy3Xq2tUXBGOs5z5bPofdq7qtiAw=
+-cloud.google.com/go/servicemanagement v1.4.0/go.mod h1:d8t8MDbezI7Z2R1O/wu8oTggo3BI2GKYbdG4y/SJTco=
+-cloud.google.com/go/servicemanagement v1.5.0/go.mod h1:XGaCRe57kfqu4+lRxaFEAuqmjzF0r+gWHjWqKqBvKFo=
+-cloud.google.com/go/servicemanagement v1.6.0/go.mod h1:aWns7EeeCOtGEX4OvZUWCCJONRZeFKiptqKf1D0l/Jc=
+-cloud.google.com/go/servicemanagement v1.8.0/go.mod h1:MSS2TDlIEQD/fzsSGfCdJItQveu9NXnUniTrq/L8LK4=
+-cloud.google.com/go/serviceusage v1.3.0/go.mod h1:Hya1cozXM4SeSKTAgGXgj97GlqUvF5JaoXacR1JTP/E=
+-cloud.google.com/go/serviceusage v1.4.0/go.mod h1:SB4yxXSaYVuUBYUml6qklyONXNLt83U0Rb+CXyhjEeU=
+-cloud.google.com/go/serviceusage v1.5.0/go.mod h1:w8U1JvqUqwJNPEOTQjrMHkw3IaIFLoLsPLvsE3xueec=
+-cloud.google.com/go/serviceusage v1.6.0/go.mod h1:R5wwQcbOWsyuOfbP9tGdAnCAc6B9DRwPG1xtWMDeuPA=
+-cloud.google.com/go/shell v1.3.0/go.mod h1:VZ9HmRjZBsjLGXusm7K5Q5lzzByZmJHf1d0IWHEN5X4=
+-cloud.google.com/go/shell v1.4.0/go.mod h1:HDxPzZf3GkDdhExzD/gs8Grqk+dmYcEjGShZgYa9URw=
+-cloud.google.com/go/shell v1.6.0/go.mod h1:oHO8QACS90luWgxP3N9iZVuEiSF84zNyLytb+qE2f9A=
+-cloud.google.com/go/shell v1.7.1/go.mod h1:u1RaM+huXFaTojTbW4g9P5emOrrmLE69KrxqQahKn4g=
+-cloud.google.com/go/shell v1.7.2/go.mod h1:KqRPKwBV0UyLickMn0+BY1qIyE98kKyI216sH/TuHmc=
+-cloud.google.com/go/shell v1.7.3/go.mod h1:cTTEz/JdaBsQAeTQ3B6HHldZudFoYBOqjteev07FbIc=
+-cloud.google.com/go/shell v1.7.4/go.mod h1:yLeXB8eKLxw0dpEmXQ/FjriYrBijNsONpwnWsdPqlKM=
+-cloud.google.com/go/spanner v1.41.0/go.mod h1:MLYDBJR/dY4Wt7ZaMIQ7rXOTLjYrmxLE/5ve9vFfWos=
+-cloud.google.com/go/spanner v1.44.0/go.mod h1:G8XIgYdOK+Fbcpbs7p2fiprDw4CaZX63whnSMLVBxjk=
+-cloud.google.com/go/spanner v1.45.0/go.mod h1:FIws5LowYz8YAE1J8fOS7DJup8ff7xJeetWEo5REA2M=
+-cloud.google.com/go/spanner v1.47.0/go.mod h1:IXsJwVW2j4UKs0eYDqodab6HgGuA1bViSqW4uH9lfUI=
+-cloud.google.com/go/spanner v1.49.0/go.mod h1:eGj9mQGK8+hkgSVbHNQ06pQ4oS+cyc4tXXd6Dif1KoM=
+-cloud.google.com/go/spanner v1.50.0/go.mod h1:eGj9mQGK8+hkgSVbHNQ06pQ4oS+cyc4tXXd6Dif1KoM=
+-cloud.google.com/go/spanner v1.51.0/go.mod h1:c5KNo5LQ1X5tJwma9rSQZsXNBDNvj4/n8BVc3LNahq0=
+-cloud.google.com/go/spanner v1.53.0/go.mod h1:liG4iCeLqm5L3fFLU5whFITqP0e0orsAW1uUSrd4rws=
+-cloud.google.com/go/speech v1.6.0/go.mod h1:79tcr4FHCimOp56lwC01xnt/WPJZc4v3gzyT7FoBkCM=
+-cloud.google.com/go/speech v1.7.0/go.mod h1:KptqL+BAQIhMsj1kOP2la5DSEEerPDuOP/2mmkhHhZQ=
+-cloud.google.com/go/speech v1.8.0/go.mod h1:9bYIl1/tjsAnMgKGHKmBZzXKEkGgtU+MpdDPTE9f7y0=
+-cloud.google.com/go/speech v1.9.0/go.mod h1:xQ0jTcmnRFFM2RfX/U+rk6FQNUF6DQlydUSyoooSpco=
+-cloud.google.com/go/speech v1.14.1/go.mod h1:gEosVRPJ9waG7zqqnsHpYTOoAS4KouMRLDFMekpJ0J0=
+-cloud.google.com/go/speech v1.15.0/go.mod h1:y6oH7GhqCaZANH7+Oe0BhgIogsNInLlz542tg3VqeYI=
+-cloud.google.com/go/speech v1.17.1/go.mod h1:8rVNzU43tQvxDaGvqOhpDqgkJTFowBpDvCJ14kGlJYo=
+-cloud.google.com/go/speech v1.19.0/go.mod h1:8rVNzU43tQvxDaGvqOhpDqgkJTFowBpDvCJ14kGlJYo=
+-cloud.google.com/go/speech v1.19.1/go.mod h1:WcuaWz/3hOlzPFOVo9DUsblMIHwxP589y6ZMtaG+iAA=
+-cloud.google.com/go/speech v1.19.2/go.mod h1:2OYFfj+Ch5LWjsaSINuCZsre/789zlcCI3SY4oAi2oI=
+-cloud.google.com/go/speech v1.20.1/go.mod h1:wwolycgONvfz2EDU8rKuHRW3+wc9ILPsAWoikBEWavY=
+-cloud.google.com/go/speech v1.21.0/go.mod h1:wwolycgONvfz2EDU8rKuHRW3+wc9ILPsAWoikBEWavY=
+-cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=
+-cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos=
+-cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
+-cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
+-cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
+-cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo=
+-cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y=
+-cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc=
+-cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s=
+-cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y=
+-cloud.google.com/go/storage v1.29.0/go.mod h1:4puEjyTKnku6gfKoTfNOU/W+a9JyuVNxjpS5GBrB8h4=
+-cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7BiccwkR7+P7gN8E=
+-cloud.google.com/go/storage v1.35.1/go.mod h1:M6M/3V/D3KpzMTJyPOR/HU6n2Si5QdaXYEsng2xgOs8=
+-cloud.google.com/go/storagetransfer v1.5.0/go.mod h1:dxNzUopWy7RQevYFHewchb29POFv3/AaBgnhqzqiK0w=
+-cloud.google.com/go/storagetransfer v1.6.0/go.mod h1:y77xm4CQV/ZhFZH75PLEXY0ROiS7Gh6pSKrM8dJyg6I=
+-cloud.google.com/go/storagetransfer v1.7.0/go.mod h1:8Giuj1QNb1kfLAiWM1bN6dHzfdlDAVC9rv9abHot2W4=
+-cloud.google.com/go/storagetransfer v1.8.0/go.mod h1:JpegsHHU1eXg7lMHkvf+KE5XDJ7EQu0GwNJbbVGanEw=
+-cloud.google.com/go/storagetransfer v1.10.0/go.mod h1:DM4sTlSmGiNczmV6iZyceIh2dbs+7z2Ayg6YAiQlYfA=
+-cloud.google.com/go/storagetransfer v1.10.1/go.mod h1:rS7Sy0BtPviWYTTJVWCSV4QrbBitgPeuK4/FKa4IdLs=
+-cloud.google.com/go/storagetransfer v1.10.2/go.mod h1:meIhYQup5rg9juQJdyppnA/WLQCOguxtk1pr3/vBWzA=
+-cloud.google.com/go/storagetransfer v1.10.3/go.mod h1:Up8LY2p6X68SZ+WToswpQbQHnJpOty/ACcMafuey8gc=
+-cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw=
+-cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g=
+-cloud.google.com/go/talent v1.3.0/go.mod h1:CmcxwJ/PKfRgd1pBjQgU6W3YBwiewmUzQYH5HHmSCmM=
+-cloud.google.com/go/talent v1.4.0/go.mod h1:ezFtAgVuRf8jRsvyE6EwmbTK5LKciD4KVnHuDEFmOOA=
+-cloud.google.com/go/talent v1.5.0/go.mod h1:G+ODMj9bsasAEJkQSzO2uHQWXHHXUomArjWQQYkqK6c=
+-cloud.google.com/go/talent v1.6.2/go.mod h1:CbGvmKCG61mkdjcqTcLOkb2ZN1SrQI8MDyma2l7VD24=
+-cloud.google.com/go/talent v1.6.3/go.mod h1:xoDO97Qd4AK43rGjJvyBHMskiEf3KulgYzcH6YWOVoo=
+-cloud.google.com/go/talent v1.6.4/go.mod h1:QsWvi5eKeh6gG2DlBkpMaFYZYrYUnIpo34f6/V5QykY=
+-cloud.google.com/go/talent v1.6.5/go.mod h1:Mf5cma696HmE+P2BWJ/ZwYqeJXEeU0UqjHFXVLadEDI=
+-cloud.google.com/go/texttospeech v1.4.0/go.mod h1:FX8HQHA6sEpJ7rCMSfXuzBcysDAuWusNNNvN9FELDd8=
+-cloud.google.com/go/texttospeech v1.5.0/go.mod h1:oKPLhR4n4ZdQqWKURdwxMy0uiTS1xU161C8W57Wkea4=
+-cloud.google.com/go/texttospeech v1.6.0/go.mod h1:YmwmFT8pj1aBblQOI3TfKmwibnsfvhIBzPXcW4EBovc=
+-cloud.google.com/go/texttospeech v1.7.1/go.mod h1:m7QfG5IXxeneGqTapXNxv2ItxP/FS0hCZBwXYqucgSk=
+-cloud.google.com/go/texttospeech v1.7.2/go.mod h1:VYPT6aTOEl3herQjFHYErTlSZJ4vB00Q2ZTmuVgluD4=
+-cloud.google.com/go/texttospeech v1.7.3/go.mod h1:Av/zpkcgWfXlDLRYob17lqMstGZ3GqlvJXqKMp2u8so=
+-cloud.google.com/go/texttospeech v1.7.4/go.mod h1:vgv0002WvR4liGuSd5BJbWy4nDn5Ozco0uJymY5+U74=
+-cloud.google.com/go/tpu v1.3.0/go.mod h1:aJIManG0o20tfDQlRIej44FcwGGl/cD0oiRyMKG19IQ=
+-cloud.google.com/go/tpu v1.4.0/go.mod h1:mjZaX8p0VBgllCzF6wcU2ovUXN9TONFLd7iz227X2Xg=
+-cloud.google.com/go/tpu v1.5.0/go.mod h1:8zVo1rYDFuW2l4yZVY0R0fb/v44xLh3llq7RuV61fPM=
+-cloud.google.com/go/tpu v1.6.1/go.mod h1:sOdcHVIgDEEOKuqUoi6Fq53MKHJAtOwtz0GuKsWSH3E=
+-cloud.google.com/go/tpu v1.6.2/go.mod h1:NXh3NDwt71TsPZdtGWgAG5ThDfGd32X1mJ2cMaRlVgU=
+-cloud.google.com/go/tpu v1.6.3/go.mod h1:lxiueqfVMlSToZY1151IaZqp89ELPSrk+3HIQ5HRkbY=
+-cloud.google.com/go/tpu v1.6.4/go.mod h1:NAm9q3Rq2wIlGnOhpYICNI7+bpBebMJbh0yyp3aNw1Y=
+-cloud.google.com/go/trace v1.3.0/go.mod h1:FFUE83d9Ca57C+K8rDl/Ih8LwOzWIV1krKgxg6N0G28=
+-cloud.google.com/go/trace v1.4.0/go.mod h1:UG0v8UBqzusp+z63o7FK74SdFE+AXpCLdFb1rshXG+Y=
+-cloud.google.com/go/trace v1.8.0/go.mod h1:zH7vcsbAhklH8hWFig58HvxcxyQbaIqMarMg9hn5ECA=
+-cloud.google.com/go/trace v1.9.0/go.mod h1:lOQqpE5IaWY0Ixg7/r2SjixMuc6lfTFeO4QGM4dQWOk=
+-cloud.google.com/go/trace v1.10.1/go.mod h1:gbtL94KE5AJLH3y+WVpfWILmqgc6dXcqgNXdOPAQTYk=
+-cloud.google.com/go/trace v1.10.2/go.mod h1:NPXemMi6MToRFcSxRl2uDnu/qAlAQ3oULUphcHGh1vA=
+-cloud.google.com/go/trace v1.10.3/go.mod h1:Ke1bgfc73RV3wUFml+uQp7EsDw4dGaETLxB7Iq/r4CY=
+-cloud.google.com/go/trace v1.10.4/go.mod h1:Nso99EDIK8Mj5/zmB+iGr9dosS/bzWCJ8wGmE6TXNWY=
+-cloud.google.com/go/translate v1.3.0/go.mod h1:gzMUwRjvOqj5i69y/LYLd8RrNQk+hOmIXTi9+nb3Djs=
+-cloud.google.com/go/translate v1.4.0/go.mod h1:06Dn/ppvLD6WvA5Rhdp029IX2Mi3Mn7fpMRLPvXT5Wg=
+-cloud.google.com/go/translate v1.5.0/go.mod h1:29YDSYveqqpA1CQFD7NQuP49xymq17RXNaUDdc0mNu0=
+-cloud.google.com/go/translate v1.6.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos=
+-cloud.google.com/go/translate v1.7.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos=
+-cloud.google.com/go/translate v1.8.1/go.mod h1:d1ZH5aaOA0CNhWeXeC8ujd4tdCFw8XoNWRljklu5RHs=
+-cloud.google.com/go/translate v1.8.2/go.mod h1:d1ZH5aaOA0CNhWeXeC8ujd4tdCFw8XoNWRljklu5RHs=
+-cloud.google.com/go/translate v1.9.0/go.mod h1:d1ZH5aaOA0CNhWeXeC8ujd4tdCFw8XoNWRljklu5RHs=
+-cloud.google.com/go/translate v1.9.1/go.mod h1:TWIgDZknq2+JD4iRcojgeDtqGEp154HN/uL6hMvylS8=
+-cloud.google.com/go/translate v1.9.2/go.mod h1:E3Tc6rUTsQkVrXW6avbUhKJSr7ZE3j7zNmqzXKHqRrY=
+-cloud.google.com/go/translate v1.9.3/go.mod h1:Kbq9RggWsbqZ9W5YpM94Q1Xv4dshw/gr/SHfsl5yCZ0=
+-cloud.google.com/go/video v1.8.0/go.mod h1:sTzKFc0bUSByE8Yoh8X0mn8bMymItVGPfTuUBUyRgxk=
+-cloud.google.com/go/video v1.9.0/go.mod h1:0RhNKFRF5v92f8dQt0yhaHrEuH95m068JYOvLZYnJSw=
+-cloud.google.com/go/video v1.12.0/go.mod h1:MLQew95eTuaNDEGriQdcYn0dTwf9oWiA4uYebxM5kdg=
+-cloud.google.com/go/video v1.13.0/go.mod h1:ulzkYlYgCp15N2AokzKjy7MQ9ejuynOJdf1tR5lGthk=
+-cloud.google.com/go/video v1.14.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ=
+-cloud.google.com/go/video v1.15.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ=
+-cloud.google.com/go/video v1.17.1/go.mod h1:9qmqPqw/Ib2tLqaeHgtakU+l5TcJxCJbhFXM7UJjVzU=
+-cloud.google.com/go/video v1.19.0/go.mod h1:9qmqPqw/Ib2tLqaeHgtakU+l5TcJxCJbhFXM7UJjVzU=
+-cloud.google.com/go/video v1.20.0/go.mod h1:U3G3FTnsvAGqglq9LxgqzOiBc/Nt8zis8S+850N2DUM=
+-cloud.google.com/go/video v1.20.1/go.mod h1:3gJS+iDprnj8SY6pe0SwLeC5BUW80NjhwX7INWEuWGU=
+-cloud.google.com/go/video v1.20.2/go.mod h1:lrixr5JeKNThsgfM9gqtwb6Okuqzfo4VrY2xynaViTA=
+-cloud.google.com/go/video v1.20.3/go.mod h1:TnH/mNZKVHeNtpamsSPygSR0iHtvrR/cW1/GDjN5+GU=
+-cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU=
+-cloud.google.com/go/videointelligence v1.7.0/go.mod h1:k8pI/1wAhjznARtVT9U1llUaFNPh7muw8QyOUpavru4=
+-cloud.google.com/go/videointelligence v1.8.0/go.mod h1:dIcCn4gVDdS7yte/w+koiXn5dWVplOZkE+xwG9FgK+M=
+-cloud.google.com/go/videointelligence v1.9.0/go.mod h1:29lVRMPDYHikk3v8EdPSaL8Ku+eMzDljjuvRs105XoU=
+-cloud.google.com/go/videointelligence v1.10.0/go.mod h1:LHZngX1liVtUhZvi2uNS0VQuOzNi2TkY1OakiuoUOjU=
+-cloud.google.com/go/videointelligence v1.11.1/go.mod h1:76xn/8InyQHarjTWsBR058SmlPCwQjgcvoW0aZykOvo=
+-cloud.google.com/go/videointelligence v1.11.2/go.mod h1:ocfIGYtIVmIcWk1DsSGOoDiXca4vaZQII1C85qtoplc=
+-cloud.google.com/go/videointelligence v1.11.3/go.mod h1:tf0NUaGTjU1iS2KEkGWvO5hRHeCkFK3nPo0/cOZhZAo=
+-cloud.google.com/go/videointelligence v1.11.4/go.mod h1:kPBMAYsTPFiQxMLmmjpcZUMklJp3nC9+ipJJtprccD8=
+-cloud.google.com/go/vision v1.2.0/go.mod h1:SmNwgObm5DpFBme2xpyOyasvBc1aPdjvMk2bBk0tKD0=
+-cloud.google.com/go/vision/v2 v2.2.0/go.mod h1:uCdV4PpN1S0jyCyq8sIM42v2Y6zOLkZs+4R9LrGYwFo=
+-cloud.google.com/go/vision/v2 v2.3.0/go.mod h1:UO61abBx9QRMFkNBbf1D8B1LXdS2cGiiCRx0vSpZoUo=
+-cloud.google.com/go/vision/v2 v2.4.0/go.mod h1:VtI579ll9RpVTrdKdkMzckdnwMyX2JILb+MhPqRbPsY=
+-cloud.google.com/go/vision/v2 v2.5.0/go.mod h1:MmaezXOOE+IWa+cS7OhRRLK2cNv1ZL98zhqFFZaaH2E=
+-cloud.google.com/go/vision/v2 v2.6.0/go.mod h1:158Hes0MvOS9Z/bDMSFpjwsUrZ5fPrdwuyyvKSGAGMY=
+-cloud.google.com/go/vision/v2 v2.7.0/go.mod h1:H89VysHy21avemp6xcf9b9JvZHVehWbET0uT/bcuY/0=
+-cloud.google.com/go/vision/v2 v2.7.2/go.mod h1:jKa8oSYBWhYiXarHPvP4USxYANYUEdEsQrloLjrSwJU=
+-cloud.google.com/go/vision/v2 v2.7.3/go.mod h1:V0IcLCY7W+hpMKXK1JYE0LV5llEqVmj+UJChjvA1WsM=
+-cloud.google.com/go/vision/v2 v2.7.4/go.mod h1:ynDKnsDN/0RtqkKxQZ2iatv3Dm9O+HfRb5djl7l4Vvw=
+-cloud.google.com/go/vision/v2 v2.7.5/go.mod h1:GcviprJLFfK9OLf0z8Gm6lQb6ZFUulvpZws+mm6yPLM=
+-cloud.google.com/go/vmmigration v1.2.0/go.mod h1:IRf0o7myyWFSmVR1ItrBSFLFD/rJkfDCUTO4vLlJvsE=
+-cloud.google.com/go/vmmigration v1.3.0/go.mod h1:oGJ6ZgGPQOFdjHuocGcLqX4lc98YQ7Ygq8YQwHh9A7g=
+-cloud.google.com/go/vmmigration v1.5.0/go.mod h1:E4YQ8q7/4W9gobHjQg4JJSgXXSgY21nA5r8swQV+Xxc=
+-cloud.google.com/go/vmmigration v1.6.0/go.mod h1:bopQ/g4z+8qXzichC7GW1w2MjbErL54rk3/C843CjfY=
+-cloud.google.com/go/vmmigration v1.7.1/go.mod h1:WD+5z7a/IpZ5bKK//YmT9E047AD+rjycCAvyMxGJbro=
+-cloud.google.com/go/vmmigration v1.7.2/go.mod h1:iA2hVj22sm2LLYXGPT1pB63mXHhrH1m/ruux9TwWLd8=
+-cloud.google.com/go/vmmigration v1.7.3/go.mod h1:ZCQC7cENwmSWlwyTrZcWivchn78YnFniEQYRWQ65tBo=
+-cloud.google.com/go/vmmigration v1.7.4/go.mod h1:yBXCmiLaB99hEl/G9ZooNx2GyzgsjKnw5fWcINRgD70=
+-cloud.google.com/go/vmwareengine v0.1.0/go.mod h1:RsdNEf/8UDvKllXhMz5J40XxDrNJNN4sagiox+OI208=
+-cloud.google.com/go/vmwareengine v0.2.2/go.mod h1:sKdctNJxb3KLZkE/6Oui94iw/xs9PRNC2wnNLXsHvH8=
+-cloud.google.com/go/vmwareengine v0.3.0/go.mod h1:wvoyMvNWdIzxMYSpH/R7y2h5h3WFkx6d+1TIsP39WGY=
+-cloud.google.com/go/vmwareengine v0.4.1/go.mod h1:Px64x+BvjPZwWuc4HdmVhoygcXqEkGHXoa7uyfTgSI0=
+-cloud.google.com/go/vmwareengine v1.0.0/go.mod h1:Px64x+BvjPZwWuc4HdmVhoygcXqEkGHXoa7uyfTgSI0=
+-cloud.google.com/go/vmwareengine v1.0.1/go.mod h1:aT3Xsm5sNx0QShk1Jc1B8OddrxAScYLwzVoaiXfdzzk=
+-cloud.google.com/go/vmwareengine v1.0.2/go.mod h1:xMSNjIk8/itYrz1JA8nV3Ajg4L4n3N+ugP8JKzk3OaA=
+-cloud.google.com/go/vmwareengine v1.0.3/go.mod h1:QSpdZ1stlbfKtyt6Iu19M6XRxjmXO+vb5a/R6Fvy2y4=
+-cloud.google.com/go/vpcaccess v1.4.0/go.mod h1:aQHVbTWDYUR1EbTApSVvMq1EnT57ppDmQzZ3imqIk4w=
+-cloud.google.com/go/vpcaccess v1.5.0/go.mod h1:drmg4HLk9NkZpGfCmZ3Tz0Bwnm2+DKqViEpeEpOq0m8=
+-cloud.google.com/go/vpcaccess v1.6.0/go.mod h1:wX2ILaNhe7TlVa4vC5xce1bCnqE3AeH27RV31lnmZes=
+-cloud.google.com/go/vpcaccess v1.7.1/go.mod h1:FogoD46/ZU+JUBX9D606X21EnxiszYi2tArQwLY4SXs=
+-cloud.google.com/go/vpcaccess v1.7.2/go.mod h1:mmg/MnRHv+3e8FJUjeSibVFvQF1cCy2MsFaFqxeY1HU=
+-cloud.google.com/go/vpcaccess v1.7.3/go.mod h1:YX4skyfW3NC8vI3Fk+EegJnlYFatA+dXK4o236EUCUc=
+-cloud.google.com/go/vpcaccess v1.7.4/go.mod h1:lA0KTvhtEOb/VOdnH/gwPuOzGgM+CWsmGu6bb4IoMKk=
+-cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xXZmFiHmGE=
+-cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg=
+-cloud.google.com/go/webrisk v1.6.0/go.mod h1:65sW9V9rOosnc9ZY7A7jsy1zoHS5W9IAXv6dGqhMQMc=
+-cloud.google.com/go/webrisk v1.7.0/go.mod h1:mVMHgEYH0r337nmt1JyLthzMr6YxwN1aAIEc2fTcq7A=
+-cloud.google.com/go/webrisk v1.8.0/go.mod h1:oJPDuamzHXgUc+b8SiHRcVInZQuybnvEW72PqTc7sSg=
+-cloud.google.com/go/webrisk v1.9.1/go.mod h1:4GCmXKcOa2BZcZPn6DCEvE7HypmEJcJkr4mtM+sqYPc=
+-cloud.google.com/go/webrisk v1.9.2/go.mod h1:pY9kfDgAqxUpDBOrG4w8deLfhvJmejKB0qd/5uQIPBc=
+-cloud.google.com/go/webrisk v1.9.3/go.mod h1:RUYXe9X/wBDXhVilss7EDLW9ZNa06aowPuinUOPCXH8=
+-cloud.google.com/go/webrisk v1.9.4/go.mod h1:w7m4Ib4C+OseSr2GL66m0zMBywdrVNTDKsdEsfMl7X0=
+-cloud.google.com/go/websecurityscanner v1.3.0/go.mod h1:uImdKm2wyeXQevQJXeh8Uun/Ym1VqworNDlBXQevGMo=
+-cloud.google.com/go/websecurityscanner v1.4.0/go.mod h1:ebit/Fp0a+FWu5j4JOmJEV8S8CzdTkAS77oDsiSqYWQ=
+-cloud.google.com/go/websecurityscanner v1.5.0/go.mod h1:Y6xdCPy81yi0SQnDY1xdNTNpfY1oAgXUlcfN3B3eSng=
+-cloud.google.com/go/websecurityscanner v1.6.1/go.mod h1:Njgaw3rttgRHXzwCB8kgCYqv5/rGpFCsBOvPbYgszpg=
+-cloud.google.com/go/websecurityscanner v1.6.2/go.mod h1:7YgjuU5tun7Eg2kpKgGnDuEOXWIrh8x8lWrJT4zfmas=
+-cloud.google.com/go/websecurityscanner v1.6.3/go.mod h1:x9XANObUFR+83Cya3g/B9M/yoHVqzxPnFtgF8yYGAXw=
+-cloud.google.com/go/websecurityscanner v1.6.4/go.mod h1:mUiyMQ+dGpPPRkHgknIZeCzSHJ45+fY4F52nZFDHm2o=
+-cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0=
+-cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M=
+-cloud.google.com/go/workflows v1.8.0/go.mod h1:ysGhmEajwZxGn1OhGOGKsTXc5PyxOc0vfKf5Af+to4M=
+-cloud.google.com/go/workflows v1.9.0/go.mod h1:ZGkj1aFIOd9c8Gerkjjq7OW7I5+l6cSvT3ujaO/WwSA=
+-cloud.google.com/go/workflows v1.10.0/go.mod h1:fZ8LmRmZQWacon9UCX1r/g/DfAXx5VcPALq2CxzdePw=
+-cloud.google.com/go/workflows v1.11.1/go.mod h1:Z+t10G1wF7h8LgdY/EmRcQY8ptBD/nvofaL6FqlET6g=
+-cloud.google.com/go/workflows v1.12.0/go.mod h1:PYhSk2b6DhZ508tj8HXKaBh+OFe+xdl0dHF/tJdzPQM=
+-cloud.google.com/go/workflows v1.12.1/go.mod h1:5A95OhD/edtOhQd/O741NSfIMezNTbCwLM1P1tBRGHM=
+-cloud.google.com/go/workflows v1.12.2/go.mod h1:+OmBIgNqYJPVggnMo9nqmizW0qEXHhmnAzK/CnBqsHc=
+-cloud.google.com/go/workflows v1.12.3/go.mod h1:fmOUeeqEwPzIU81foMjTRQIdwQHADi/vEr1cx9R1m5g=
+-dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
+-gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8=
+-git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc=
+-github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
+-github.com/BurntSushi/toml v0.4.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
+ github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8=
+ github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
+-github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
+-github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=
+-github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk=
+ github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI=
+ github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
+ github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ=
+@@ -1163,310 +7,54 @@ github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0
+ github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ=
+ github.com/Masterminds/sprig/v3 v3.2.3 h1:eL2fZNezLomi0uOLqjQoN6BfsDD+fyLtgbJMAj9n6YA=
+ github.com/Masterminds/sprig/v3 v3.2.3/go.mod h1:rXcFaZ2zZbLRJv/xSysmlgIM1u11eBaRMhvYXJNkGuM=
+-github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
+ github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558=
+ github.com/agext/levenshtein v1.2.2/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558=
+ github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo=
+ github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558=
+-github.com/ajstarks/deck v0.0.0-20200831202436-30c9fc6549a9/go.mod h1:JynElWSGnm/4RlzPXRlREEwqTHAN3T56Bv2ITsFT3gY=
+-github.com/ajstarks/deck/generate v0.0.0-20210309230005-c3f852c02e19/go.mod h1:T13YZdzov6OU0A1+RfKZiZN9ca6VeKdBdyDV+BY97Tk=
+-github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
+-github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b/go.mod h1:1KcenG0jGWcpt8ov532z81sp/kMMUG485J2InIOyADM=
+-github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
+-github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
+-github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
+-github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
+-github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
+-github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
+-github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
+-github.com/apache/arrow/go/v10 v10.0.1/go.mod h1:YvhnlEePVnBS4+0z3fhPfUy7W1Ikj0Ih0vcRo/gZ1M0=
+-github.com/apache/arrow/go/v11 v11.0.0/go.mod h1:Eg5OsL5H+e299f7u5ssuXsuHQVEGC4xei5aX110hRiI=
+-github.com/apache/arrow/go/v12 v12.0.0/go.mod h1:d+tV/eHZZ7Dz7RPrFKtPK02tpr+c9/PEd/zm8mDS9Vg=
+-github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU=
+ github.com/apparentlymart/go-dump v0.0.0-20180507223929-23540a00eaa3/go.mod h1:oL81AME2rN47vu18xqj1S1jPIPuN7afo62yKTNn3XMM=
+-github.com/apparentlymart/go-textseg v1.0.0 h1:rRmlIsPEEhUTIKQb7T++Nz/A5Q6C9IuX2wFoYVvnCs0=
+ github.com/apparentlymart/go-textseg v1.0.0/go.mod h1:z96Txxhf3xSFMPmb5X/1W05FF/Nj9VFpLOpjS5yuumk=
+-github.com/apparentlymart/go-textseg/v13 v13.0.0/go.mod h1:ZK2fH7c4NqDTLtiYLvIkEghdlcqw7yxLeM89kiTRPUo=
+ github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY=
+ github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4=
+-github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
+-github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
+-github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4=
+-github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
+-github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
+-github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
+-github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
+-github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
+-github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
+-github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
+-github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
+-github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
+ github.com/bufbuild/protocompile v0.4.0 h1:LbFKd2XowZvQ/kajzguUp2DC9UEIQhIq77fZZlaQsNA=
+ github.com/bufbuild/protocompile v0.4.0/go.mod h1:3v93+mbWn/v3xzN+31nwkJfrEpAUwp+BagBSZWx+TP8=
+-github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
+-github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
+-github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw=
+-github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
+-github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+-github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+-github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
+-github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
+-github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
+-github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag=
+-github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I=
+-github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
+-github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
+-github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
+-github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
+-github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI=
+-github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI=
+-github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
+-github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
+-github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
+-github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
+-github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
+-github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
+-github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
+-github.com/cncf/xds/go v0.0.0-20230310173818-32f1caf87195/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
+-github.com/cncf/xds/go v0.0.0-20230428030218-4003588d1b74/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
+-github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
+-github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
+-github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
+ github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
+-github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
+ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
+ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+-github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
+-github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
+-github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
+-github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
+-github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
+-github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
+-github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po=
+-github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
+-github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
+-github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ=
+-github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0=
+-github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE=
+-github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJJM//w9BV6Fxbg2LuVd34=
+-github.com/envoyproxy/go-control-plane v0.11.0/go.mod h1:VnHyVMpzcLvCFt9yUz1UnCwHLhwx1WguiVDV7pTG/tI=
+-github.com/envoyproxy/go-control-plane v0.11.1-0.20230524094728-9239064ad72f/go.mod h1:sfYdkwUW4BA3PbKjySwjJy+O4Pu0h62rlqCMHNk+K+Q=
+-github.com/envoyproxy/go-control-plane v0.11.1/go.mod h1:uhMcXKCQMEJHiAb0w+YGefQLaTEw+YhGluxZkrTmD0g=
+-github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
+-github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo=
+-github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w=
+-github.com/envoyproxy/protoc-gen-validate v0.10.0/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss=
+-github.com/envoyproxy/protoc-gen-validate v0.10.1/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss=
+-github.com/envoyproxy/protoc-gen-validate v1.0.1/go.mod h1:0vj8bNkYbSTNS2PIyH87KZaeN4x9zpL9Qt8fQC7d+vs=
+-github.com/envoyproxy/protoc-gen-validate v1.0.2/go.mod h1:GpiZQP3dDbg4JouG/NNS7QWXpgx6x8QiMKdmN72jogE=
+-github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
+-github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
+ github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
+-github.com/fatih/color v1.14.1/go.mod h1:2oHN61fhTpgcxD3TSWCgKDiH1+x4OiDVVGH8WlgGZGg=
+ github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM=
+ github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE=
+-github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
+-github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
+ github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
+ github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
+ github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
+ github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
+-github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
+-github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g=
+-github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks=
+-github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY=
+-github.com/go-fonts/liberation v0.2.0/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY=
+-github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmnUIzUY=
+-github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
+-github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
+-github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
+-github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
+-github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
+-github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY=
+-github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U=
+-github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpxhq9o2S/CELCSUxEWWAuoCUcVCQWv7G2OCk=
+-github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
+-github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
+-github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
+-github.com/go-pdf/fpdf v0.5.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M=
+-github.com/go-pdf/fpdf v0.6.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M=
+-github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
+ github.com/go-test/deep v1.0.3 h1:ZrJSEWsXzPOxaZnFteGEfooLba+ju3FYIbOrS+rQd68=
+ github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=
+-github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
+-github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
+-github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
+-github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
+-github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
+-github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
+-github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4=
+-github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ=
+-github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ=
+-github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
+-github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
+-github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
+-github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
+-github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
+-github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
+-github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=
+-github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
+-github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
+-github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
+-github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
+-github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8=
+-github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs=
+ github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+-github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+-github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+-github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+-github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
+-github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
+-github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk=
+-github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
+-github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
+-github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
+-github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
+-github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
+-github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
+-github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
+-github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
+ github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
+-github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM=
+-github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
+ github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
+ github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
+-github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
+-github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
+-github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
+-github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
+-github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
+-github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=
+ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
+ github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
+-github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
+-github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+-github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+-github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+-github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+-github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+-github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+-github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+-github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+-github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE=
+-github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
++github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
+ github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
+-github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
+-github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
+-github.com/google/go-pkcs11 v0.2.0/go.mod h1:6eQoGcuNJpa7jnd5pMGdkSaQpNDYvPlXWMcjXXThLlY=
+-github.com/google/go-pkcs11 v0.2.1-0.20230907215043-c6f79328ddf9/go.mod h1:6eQoGcuNJpa7jnd5pMGdkSaQpNDYvPlXWMcjXXThLlY=
+-github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
+-github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
+-github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
+-github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
+-github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk=
+-github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk=
+-github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
+-github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
+-github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
+-github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
+-github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
+-github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
+-github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
+-github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+-github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+-github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+-github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+-github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+-github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+-github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+-github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+-github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
+-github.com/google/s2a-go v0.1.0/go.mod h1:OJpEgntRZo8ugHpF9hkoLJbS5dSI20XZeXJ9JVywLlM=
+-github.com/google/s2a-go v0.1.3/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A=
+-github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A=
+-github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw=
+ github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+-github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+-github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+-github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+ github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4=
+ github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+-github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8=
+-github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8=
+-github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg=
+-github.com/googleapis/enterprise-certificate-proxy v0.2.1/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k=
+-github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k=
+-github.com/googleapis/enterprise-certificate-proxy v0.2.4/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k=
+-github.com/googleapis/enterprise-certificate-proxy v0.2.5/go.mod h1:RxW0N9901Cko1VOCW3SXCpWP+mlIEkk2tP7jnHy9a3w=
+-github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0=
+-github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
+-github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
+-github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0=
+-github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM=
+-github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM=
+-github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM=
+-github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c=
+-github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo=
+-github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY=
+-github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8=
+-github.com/googleapis/gax-go/v2 v2.7.1/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI=
+-github.com/googleapis/gax-go/v2 v2.8.0/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI=
+-github.com/googleapis/gax-go/v2 v2.10.0/go.mod h1:4UOEnMCrxsSqQ940WnTiD6qJ63le2ev3xfyagutxiPw=
+-github.com/googleapis/gax-go/v2 v2.11.0/go.mod h1:DxmR61SGKkGLa2xigwuZIQpkCI2S5iydzRfb3peWZJI=
+-github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU=
+-github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4=
+-github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
+-github.com/googleapis/google-cloud-go-testing v0.0.0-20210719221736-1c9a4c676720/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
+-github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
+-github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
+-github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks=
+-github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3/go.mod h1:o//XUCC/F+yRGJoPO/VU0GSB0f8Nhgmxx0VIRUvaC0w=
+-github.com/hashicorp/consul/api v1.25.1/go.mod h1:iiLVwR/htV7mas/sy0O+XSuEnrdBUUydemjxcUrAt4g=
+-github.com/hashicorp/consul/sdk v0.14.1/go.mod h1:vFt03juSzocLRFo59NkeQHHmQa6+g7oU0pfzdI1mUhg=
+-github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
+-github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
+-github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
+-github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
+-github.com/hashicorp/go-hclog v0.14.1/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=
+-github.com/hashicorp/go-hclog v1.5.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M=
+ github.com/hashicorp/go-hclog v1.6.1 h1:pa92nu9bPoAqI7p+uPDCIWGAibUdlCi6TYWJEQQkLf8=
+ github.com/hashicorp/go-hclog v1.6.1/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M=
+-github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
+-github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
+-github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=
+-github.com/hashicorp/go-msgpack v0.5.5/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=
+-github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
+-github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA=
+-github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
+ github.com/hashicorp/go-plugin v1.6.0 h1:wgd4KxHJTVGGqWBq4QPB1i5BZNEx9BR8+OFmHDmTk8A=
+ github.com/hashicorp/go-plugin v1.6.0/go.mod h1:lBS5MtSSBZk0SHc66KACcjjlU6WzEVP/8pwz68aMkCI=
+-github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs=
+-github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8=
+-github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU=
+-github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A=
+-github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
+-github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
+-github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
+-github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
+-github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
+ github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek=
+ github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
+-github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
+-github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
+-github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
+ github.com/hashicorp/hcl v0.0.0-20170504190234-a4b07c25de5f/go.mod h1:oZtUIOe8dh44I2q6ScRibXws4Ajl+d+nod3AaR9vL5w=
+ github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
+ github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
+ github.com/hashicorp/hcl/v2 v2.0.0/go.mod h1:oVVDG71tEinNGYCxinCYadcmKU9bglqW9pV3txagJ90=
+ github.com/hashicorp/hcl/v2 v2.19.1 h1://i05Jqznmb2EXqa39Nsvyan2o5XyMowW5fnCKW5RPI=
+ github.com/hashicorp/hcl/v2 v2.19.1/go.mod h1:ThLC89FV4p9MPW804KVbe/cEXoQ8NZEh+JtMeeGErHE=
+-github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
+-github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc=
+-github.com/hashicorp/memberlist v0.5.0/go.mod h1:yvyXLpo0QaGE59Y7hDTsTzDD25JYBZ4mHgHUZ8lrOI0=
+-github.com/hashicorp/serf v0.10.1/go.mod h1:yL2t6BqATOLGc5HF7qbFkTfXoPIY0WZdWHfEvMqbG+4=
+ github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE=
+ github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ=
+ github.com/huandu/xstrings v1.3.3/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
+@@ -1474,46 +62,14 @@ github.com/huandu/xstrings v1.4.0 h1:D17IlohoQq4UcpqD7fDk80P7l+lwAmlFaBHgOipl2FU
+ github.com/huandu/xstrings v1.4.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
+ github.com/iancoleman/orderedmap v0.3.0 h1:5cbR2grmZR/DiVt+VJopEhtVs9YGInGIxAoMJn+Ichc=
+ github.com/iancoleman/orderedmap v0.3.0/go.mod h1:XuLcCUkdL5owUCQeF2Ue9uuw1EptkJDkXXS7VoV7XGE=
+-github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho=
+-github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
+-github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
+ github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
+ github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4=
+ github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY=
+ github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
+ github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
+-github.com/jhump/gopoet v0.0.0-20190322174617-17282ff210b3/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+UPUI=
+-github.com/jhump/gopoet v0.1.0/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+UPUI=
+-github.com/jhump/goprotoc v0.5.0/go.mod h1:VrbvcYrQOrTi3i0Vf+m+oqQWk9l72mjkJCYo7UvLHRQ=
+-github.com/jhump/protoreflect v1.11.0/go.mod h1:U7aMIjN0NWq9swDP7xDdoMfRHb35uiuTd3Z9nFXJf5E=
+ github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c=
+ github.com/jhump/protoreflect v1.15.1/go.mod h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo=
+-github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
+-github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
+-github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
+-github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
+-github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
+-github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
+-github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
+-github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
+-github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
+-github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
+-github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
+-github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
+-github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=
+-github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
+-github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
+-github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE=
+-github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU=
+-github.com/klauspost/compress v1.17.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
+-github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
+-github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
+-github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
+-github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
+-github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
+ github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
+-github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
+-github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=
+ github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
+ github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
+ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
+@@ -1523,143 +79,54 @@ github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
+ github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k=
+ github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
+ github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
+-github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA=
+-github.com/lyft/protoc-gen-star v0.6.1/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA=
+-github.com/lyft/protoc-gen-star/v2 v2.0.1/go.mod h1:RcCdONR2ScXaYnQC5tUzxzlpA3WVYF7/opLeUgcQs/o=
+-github.com/lyft/protoc-gen-star/v2 v2.0.3/go.mod h1:amey7yeodaJhXSbf/TlLvWiqQfLOSpEk//mLlc+axEk=
+ github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
+ github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
+-github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
+-github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
+-github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
+ github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
+ github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=
+ github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
+ github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
+-github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
+-github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
+-github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84=
+-github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
+ github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
+ github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
+ github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
+-github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
+ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
+ github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
+-github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
+-github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
+-github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
+-github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso=
+-github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI=
+-github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY=
+-github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE=
+-github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
+-github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI=
+ github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw=
+ github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw=
+ github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s=
+ github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
+ github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
+-github.com/mitchellh/go-testing-interface v0.0.0-20171004221916-a61a99592b77/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=
+ github.com/mitchellh/go-testing-interface v1.14.1 h1:jrgshOhYAUVNMAJiKbEu7EqAwgJJ2JqpQmpLJOu07cU=
+ github.com/mitchellh/go-testing-interface v1.14.1/go.mod h1:gfgS7OtZj6MA4U1UrDRp04twqAjfvlZyCfX3sDjEym8=
+ github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo=
+ github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo=
+ github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0=
+ github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0=
+-github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
+ github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
+ github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
+ github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
+ github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ=
+ github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
+-github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
+-github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
+-github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
+-github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
+-github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
+-github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
+-github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
+-github.com/nats-io/nats.go v1.31.0/go.mod h1:di3Bm5MLsoB4Bx61CBTsxuarI36WbhAwOm8QrW39+i8=
+-github.com/nats-io/nkeys v0.4.5/go.mod h1:XUkxdLPTufzlihbamfzQ7mw/VGx6ObUs+0bN5sNvt64=
+-github.com/nats-io/nkeys v0.4.6/go.mod h1:4DxZNzenSVd1cYQoAa8948QY3QDjrHfcfVADymtkpts=
+-github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
+-github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA=
+ github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA=
+ github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU=
+-github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
+-github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
+ github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4=
+ github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc=
+-github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY=
+-github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI=
+-github.com/phpdave11/gofpdi v1.0.13/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI=
+-github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
+-github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
+-github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+-github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+-github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+-github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI=
+-github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg=
+-github.com/pkg/sftp v1.13.6/go.mod h1:tz1ryNURKu77RL+GuCzmoJYxQczL3wLNNpPWagdg4Qk=
+ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
+ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+-github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
+-github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s=
+-github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
+-github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
+-github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU=
+-github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
+-github.com/prometheus/client_golang v1.11.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
+-github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
+-github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+-github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+-github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+-github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w=
+-github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU=
+-github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
+-github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4=
+-github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
+-github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc=
+-github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
+-github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
+-github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
+-github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
+-github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
+-github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
+-github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
+-github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
+-github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
+-github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
+-github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
+ github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
+ github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog=
+ github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
+-github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w=
+-github.com/ruudk/golang-pdf417 v0.0.0-20201230142125-a7e3863a1245/go.mod h1:pQAZKsJ8yyVxGRWYNEm9oFB8ieLgKFnamEyDmSA0BRk=
+-github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
+-github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
+-github.com/sagikazarmark/crypt v0.17.0/go.mod h1:SMtHTvdmsZMuY/bpZoqokSoChIrcJ/epOxZN58PbZDg=
+ github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ=
+ github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4=
+ github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE=
+ github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ=
+-github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
+ github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ=
+ github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
+ github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
+ github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8=
+ github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
+-github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
+-github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
+-github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
+ github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo=
+ github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0=
+-github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
+-github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4=
+-github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I=
+-github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y=
+ github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8=
+ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY=
+ github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
+@@ -1674,964 +141,108 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An
+ github.com/spf13/viper v1.18.0 h1:pN6W1ub/G4OfnM+NR9p7xP9R6TltLUzp5JG9yZD3Qg0=
+ github.com/spf13/viper v1.18.0/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk=
+ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+-github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+ github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
+ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
+ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
+ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
+-github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
+ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
+-github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+-github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals=
+-github.com/stretchr/testify v1.7.5/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
+ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
+-github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
+-github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
+-github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
+ github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
+ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
+ github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8=
+ github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=
+ github.com/terraform-docs/terraform-config-inspect v0.0.0-20210728164355-9c1f178932fa h1:wdyf3TobwYFwsqnUGJcjdNHxKfwHPFbaOknBJehnF1M=
+ github.com/terraform-docs/terraform-config-inspect v0.0.0-20210728164355-9c1f178932fa/go.mod h1:GtanFwTsRRXScYHOMb5h4K18XQBFeS2tXat9/LrPtPc=
+-github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=
+ github.com/vmihailenco/msgpack v3.3.3+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk=
+-github.com/vmihailenco/msgpack/v5 v5.3.5/go.mod h1:7xyJ9e+0+9SaZT0Wt1RGleJXzli6Q/V5KbhBonMG9jc=
+-github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds=
+-github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+-github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+-github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+-github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+-github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
+-github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
+ github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
+ github.com/zclconf/go-cty v1.1.0/go.mod h1:xnAOWiHeOqg2nWS62VtQ7pbOu17FtxJNW8RLEih+O3s=
+-github.com/zclconf/go-cty v1.2.0/go.mod h1:hOPWgoHbaTUnI5k4D2ld+GRpFJSCe6bCM7m1q/N4PQ8=
+-github.com/zclconf/go-cty v1.13.0/go.mod h1:YKQzy/7pZ7iq2jNFzy5go57xdxdWoLLpaEp4u238AE0=
+ github.com/zclconf/go-cty v1.14.1 h1:t9fyA35fwjjUMcmL5hLER+e/rEPqrbCK1/OSE4SI9KA=
+ github.com/zclconf/go-cty v1.14.1/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE=
+-github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8=
+-github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0=
+-github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA=
+-go.etcd.io/etcd/api/v3 v3.5.10/go.mod h1:TidfmT4Uycad3NM/o25fG3J07odo4GBB9hoxaodFCtI=
+-go.etcd.io/etcd/client/pkg/v3 v3.5.10/go.mod h1:DYivfIviIuQ8+/lCq4vcxuseg2P2XbHygkKwFo9fc8U=
+-go.etcd.io/etcd/client/v2 v2.305.10/go.mod h1:m3CKZi69HzilhVqtPDcjhSGp+kA1OmbNn0qamH80xjA=
+-go.etcd.io/etcd/client/v3 v3.5.10/go.mod h1:RVeBnDz2PUEZqTpgqwAtUd8nAPf5kjyFyND7P1VkOKc=
+-go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
+-go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
+-go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
+-go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
+-go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
+-go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
+-go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
+-go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
+-go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
+-go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U=
+-go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U=
+-go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
+-go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
+-go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
+-go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
+-go.uber.org/multierr v1.8.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak=
+-go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ=
+ go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
+ go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
+-go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo=
+-go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw=
+-golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+ golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+-golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+-golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+-golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+-golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY=
+-golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+-golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+-golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
+ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
+-golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
+-golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
+-golang.org/x/crypto v0.0.0-20220517005047-85d78b3ac167/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
+-golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=
+ golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
+-golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58=
+-golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
+-golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0=
+-golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I=
+-golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio=
+-golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw=
+-golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
+-golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
+-golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g=
+ golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY=
+ golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
+-golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+-golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+-golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+-golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+-golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+-golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
+-golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek=
+-golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE=
+-golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY=
+-golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
+-golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
+-golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
+-golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
+-golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
+-golang.org/x/exp v0.0.0-20220827204233-334a2380cb91/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE=
+-golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc=
+-golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqRShND87VCbxmc6bL1Yd2oYrm6k=
+ golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb h1:c0vyKkb6yr3KR7jEfJaOSv4lG7xPkbN6r52aJz1d8a8=
+ golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb/go.mod h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI=
+-golang.org/x/exp/typeparams v0.0.0-20220218215828-6cf2b201936e/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk=
+ golang.org/x/exp/typeparams v0.0.0-20220722155223-a9213eeb770e h1:7Xs2YCOpMlNqSQSmrrnhlzBXIE/bpMecZplbLePTJvE=
+ golang.org/x/exp/typeparams v0.0.0-20220722155223-a9213eeb770e/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk=
+-golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
+-golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
+-golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
+-golang.org/x/image v0.0.0-20190910094157-69e4b8554b2a/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
+-golang.org/x/image v0.0.0-20200119044424-58c23975cae1/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
+-golang.org/x/image v0.0.0-20200430140353-33d19683fad8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
+-golang.org/x/image v0.0.0-20200618115811-c13761719519/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
+-golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
+-golang.org/x/image v0.0.0-20210216034530-4410531fe030/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
+-golang.org/x/image v0.0.0-20210607152325-775e3b0c77b9/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM=
+-golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM=
+-golang.org/x/image v0.0.0-20211028202545-6944b10bf410/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM=
+-golang.org/x/image v0.0.0-20220302094943-723b81ca9867/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM=
+-golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
+-golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
+-golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
+-golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
+-golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
+-golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
+-golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
+-golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs=
+-golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
+-golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
+-golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
+-golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
+-golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
+-golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
+-golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
+-golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
+-golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
+-golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
+-golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+-golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+-golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+-golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+-golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+-golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro=
+-golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro=
+ golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
+-golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI=
+-golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
+-golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
+-golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
+-golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
+-golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
+-golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
+ golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0=
+ golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
+-golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+ golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+-golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+-golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+-golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+-golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+-golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+-golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+-golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+-golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
+-golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+-golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+-golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+-golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+-golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+-golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+-golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+-golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+-golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+-golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+-golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
+-golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
+-golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
+-golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
+-golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
+-golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
+-golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
+-golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
+-golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
+-golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
+-golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
+-golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
+-golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
+-golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
+ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
+-golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
+-golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
+-golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8=
+-golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+-golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+-golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+-golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+-golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
+-golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
+-golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
+-golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
+-golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
+-golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
+-golang.org/x/net v0.0.0-20220617184016-355a448f1bc9/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
+-golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
+ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
+-golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
+-golang.org/x/net v0.0.0-20221012135044-0b7e1fb9d458/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
+-golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
+-golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
+ golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
+-golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE=
+-golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws=
+-golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
+-golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
+-golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
+-golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
+-golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
+-golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ=
+-golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA=
+-golang.org/x/net v0.13.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA=
+-golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI=
+-golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
+-golang.org/x/net v0.16.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
+-golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
+-golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ=
+ golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c=
+ golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U=
+-golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
+-golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
+-golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
+-golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
+-golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
+-golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+-golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+-golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+-golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+-golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+-golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+-golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+-golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+-golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+-golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+-golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+-golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc=
+-golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc=
+-golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc=
+-golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE=
+-golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE=
+-golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg=
+-golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg=
+-golang.org/x/oauth2 v0.0.0-20221006150949-b44042a4b9c1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg=
+-golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg=
+-golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec=
+-golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I=
+-golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw=
+-golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4=
+-golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE=
+-golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI=
+-golang.org/x/oauth2 v0.11.0/go.mod h1:LdF7O/8bLR/qWK9DrpXmbHLTouvRHK0SgJl0GmDBchk=
+-golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0=
+-golang.org/x/oauth2 v0.14.0/go.mod h1:lAtNWgaWfL4cm7j2OV8TxGi9Qb7ECORx8DktCY74OwM=
+-golang.org/x/oauth2 v0.15.0/go.mod h1:q48ptWNTY5XWf+JNten23lcvHpLJ0ZSxF5ttTHKVCAM=
+ golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+-golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+-golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+-golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+-golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+-golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+-golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+-golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+-golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+-golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+-golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+-golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+-golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+-golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+-golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+-golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
+-golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
+ golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE=
+ golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
+-golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+-golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+-golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+-golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+-golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+-golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+ golang.org/x/sys v0.0.0-20190502175342-a43fa875dd82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+ golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+ golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20210304124612-50617c2ba197/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+ golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+ golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.0.0-20220502124256-b6088ccd6cba/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+ golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+ golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
+ golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+ golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
+ golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
+-golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
+ golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
+-golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA=
+-golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ=
+-golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
+-golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
+-golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY=
+-golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
+-golang.org/x/term v0.9.0/go.mod h1:M6DEAAIenWoTxdKrOltXcmDY3rSplQUkrvaDU5FcQyo=
+-golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o=
+-golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU=
+-golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
+-golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=
+-golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww=
+-golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0=
+-golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+-golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
+ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+-golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+-golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+-golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
+-golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
+ golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
+-golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
+-golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
+-golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
+-golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
+-golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
+-golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
+-golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
+-golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
+-golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
+ golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
+ golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
+-golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+-golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+-golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+-golang.org/x/time v0.0.0-20220922220347-f3bd1da661af/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+-golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+-golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+-golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
+-golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+-golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+-golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+-golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
+-golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
+-golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
+-golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
+-golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
+-golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
+-golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
+-golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
+-golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
+-golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
+-golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+-golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+-golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+-golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+-golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+-golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+-golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+-golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+-golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+-golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+-golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+-golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+-golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+-golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+-golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+-golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+-golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+-golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+-golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+-golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
+-golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
+-golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
+-golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+-golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+-golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+-golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+-golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+-golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
+-golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
+-golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
+-golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE=
+-golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+-golang.org/x/tools v0.0.0-20201124115921-2c860bdd6e78/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+-golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+-golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+-golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+-golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+-golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+-golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
+-golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
+-golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
+-golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
+-golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
+-golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
+-golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU=
+-golang.org/x/tools v0.1.11-0.20220513221640-090b14e8501f/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4=
+ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
+-golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA=
+-golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k=
+-golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
+-golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s=
+-golang.org/x/tools v0.8.0/go.mod h1:JxBZ99ISMI5ViVkT1tr6tdNmXeTrcpVSD3vZ1RsRdN4=
+-golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc=
+-golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM=
+-golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
+ golang.org/x/tools v0.16.0 h1:GO788SKMRunPIBCXiQyo2AaexLstOrVhuAL5YwsckQM=
+ golang.org/x/tools v0.16.0/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0=
+ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+-golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+-golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+-golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+-golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8=
+-golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8=
+-golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8=
+-gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
+-gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0=
+-gonum.org/v1/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0=
+-gonum.org/v1/gonum v0.11.0/go.mod h1:fSG4YDCxxUZQJ7rKsQrj0gMOg00Il0Z96/qMA4bVQhA=
+-gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
+-gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc=
+-gonum.org/v1/plot v0.9.0/go.mod h1:3Pcqqmp6RHvJI72kgb8fThyUnav364FOsdDo2aGW5lY=
+-gonum.org/v1/plot v0.10.1/go.mod h1:VZW5OlhkL1mysU9vaqNHnsy86inf6Ot+jB3r+BczCEo=
+-google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
+-google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
+-google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
+-google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
+-google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
+-google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
+-google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
+-google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
+-google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
+-google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
+-google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
+-google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
+-google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
+-google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
+-google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM=
+-google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc=
+-google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg=
+-google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE=
+-google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8=
+-google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU=
+-google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94=
+-google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo=
+-google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4=
+-google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw=
+-google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU=
+-google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k=
+-google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE=
+-google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE=
+-google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI=
+-google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I=
+-google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo=
+-google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g=
+-google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA=
+-google.golang.org/api v0.71.0/go.mod h1:4PyU6e6JogV1f9eA4voyrTY2batOLdgZ5qZ5HOCc4j8=
+-google.golang.org/api v0.74.0/go.mod h1:ZpfMZOVRMywNyvJFeqL9HRWBgAuRfSjJFpe9QtRRyDs=
+-google.golang.org/api v0.75.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA=
+-google.golang.org/api v0.77.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA=
+-google.golang.org/api v0.78.0/go.mod h1:1Sg78yoMLOhlQTeF+ARBoytAcH1NNyyl390YMy6rKmw=
+-google.golang.org/api v0.80.0/go.mod h1:xY3nI94gbvBrE0J6NHXhxOmW97HG7Khjkku6AFB3Hyg=
+-google.golang.org/api v0.84.0/go.mod h1:NTsGnUFJMYROtiquksZHBWtHfeMC7iYthki7Eq3pa8o=
+-google.golang.org/api v0.85.0/go.mod h1:AqZf8Ep9uZ2pyTvgL+x0D3Zt0eoT9b5E8fmzfu6FO2g=
+-google.golang.org/api v0.90.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw=
+-google.golang.org/api v0.93.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw=
+-google.golang.org/api v0.95.0/go.mod h1:eADj+UBuxkh5zlrSntJghuNeg8HwQ1w5lTKkuqaETEI=
+-google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s=
+-google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s=
+-google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s=
+-google.golang.org/api v0.99.0/go.mod h1:1YOf74vkVndF7pG6hIHuINsM7eWwpVTAfNMNiL91A08=
+-google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70=
+-google.golang.org/api v0.102.0/go.mod h1:3VFl6/fzoA+qNuS1N1/VfXY4LjoXN/wzeIp7TweWwGo=
+-google.golang.org/api v0.103.0/go.mod h1:hGtW6nK1AC+d9si/UBhw8Xli+QMOf6xyNAyJw4qU9w0=
+-google.golang.org/api v0.106.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY=
+-google.golang.org/api v0.107.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY=
+-google.golang.org/api v0.108.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY=
+-google.golang.org/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI=
+-google.golang.org/api v0.111.0/go.mod h1:qtFHvU9mhgTJegR31csQ+rwxyUTHOKFqCKWp1J0fdw0=
+-google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg=
+-google.golang.org/api v0.118.0/go.mod h1:76TtD3vkgmZ66zZzp72bUUklpmQmKlhh6sYtIjYK+5E=
+-google.golang.org/api v0.122.0/go.mod h1:gcitW0lvnyWjSp9nKxAbdHKIZ6vF4aajGueeslZOyms=
+-google.golang.org/api v0.124.0/go.mod h1:xu2HQurE5gi/3t1aFCvhPD781p0a3p11sdunTJ2BlP4=
+-google.golang.org/api v0.125.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw=
+-google.golang.org/api v0.126.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw=
+-google.golang.org/api v0.128.0/go.mod h1:Y611qgqaE92On/7g65MQgxYul3c0rEB894kniWLY750=
+-google.golang.org/api v0.139.0/go.mod h1:CVagp6Eekz9CjGZ718Z+sloknzkDJE7Vc1Ckj9+viBk=
+-google.golang.org/api v0.149.0/go.mod h1:Mwn1B7JTXrzXtnvmzQE2BD6bYZQ8DShKZDZbeN9I7qI=
+-google.golang.org/api v0.150.0/go.mod h1:ccy+MJ6nrYFgE3WgRx/AMXOxOmU8Q4hSa+jjibzhxcg=
+-google.golang.org/api v0.152.0/go.mod h1:3qNJX5eOmhiWYc67jRA/3GsDw97UFb5ivv7Y2PrriAY=
+-google.golang.org/api v0.153.0/go.mod h1:3qNJX5eOmhiWYc67jRA/3GsDw97UFb5ivv7Y2PrriAY=
+ google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
+-google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
+-google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
+-google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
+-google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
+-google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
+-google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
+-google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
+-google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
+-google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
+-google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
+-google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
+-google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
+-google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
+-google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8=
+-google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
+-google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
+-google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
+-google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
+-google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
+-google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
+-google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA=
+-google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+-google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+-google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+-google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+-google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+-google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+-google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+-google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+-google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+-google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U=
+-google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
+-google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA=
+-google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+-google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+-google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+-google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+-google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+-google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+-google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+-google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+-google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+-google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+-google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+-google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+-google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+-google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+-google.golang.org/genproto v0.0.0-20210329143202-679c6ae281ee/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A=
+-google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A=
+-google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A=
+-google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
+-google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
+-google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
+-google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24=
+-google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k=
+-google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k=
+-google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48=
+-google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48=
+-google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w=
+-google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
+-google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
+-google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
+-google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
+-google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
+-google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+-google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+-google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+-google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+-google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+-google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+-google.golang.org/genproto v0.0.0-20220207164111-0872dc986b00/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+-google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
+-google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
+-google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
+-google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
+-google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E=
+-google.golang.org/genproto v0.0.0-20220329172620-7be39ac1afc7/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo=
+-google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo=
+-google.golang.org/genproto v0.0.0-20220413183235-5e96e2839df9/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo=
+-google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo=
+-google.golang.org/genproto v0.0.0-20220421151946-72621c1f0bd3/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo=
+-google.golang.org/genproto v0.0.0-20220429170224-98d788798c3e/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo=
+-google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4=
+-google.golang.org/genproto v0.0.0-20220505152158-f39f71e6c8f3/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4=
+-google.golang.org/genproto v0.0.0-20220518221133-4f43b3371335/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4=
+-google.golang.org/genproto v0.0.0-20220523171625-347a074981d8/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4=
+-google.golang.org/genproto v0.0.0-20220608133413-ed9918b62aac/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA=
+-google.golang.org/genproto v0.0.0-20220616135557-88e70c0c3a90/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA=
+-google.golang.org/genproto v0.0.0-20220617124728-180714bec0ad/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA=
+-google.golang.org/genproto v0.0.0-20220624142145-8cd45d7dbd1f/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA=
+-google.golang.org/genproto v0.0.0-20220628213854-d9e0b6570c03/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA=
+-google.golang.org/genproto v0.0.0-20220722212130-b98a9ff5e252/go.mod h1:GkXuJDJ6aQ7lnJcRF+SJVgFdQhypqgl3LB1C9vabdRE=
+-google.golang.org/genproto v0.0.0-20220801145646-83ce21fca29f/go.mod h1:iHe1svFLAZg9VWz891+QbRMwUv9O/1Ww+/mngYeThbc=
+-google.golang.org/genproto v0.0.0-20220815135757-37a418bb8959/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk=
+-google.golang.org/genproto v0.0.0-20220817144833-d7fd3f11b9b1/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk=
+-google.golang.org/genproto v0.0.0-20220822174746-9e6da59bd2fc/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk=
+-google.golang.org/genproto v0.0.0-20220829144015-23454907ede3/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk=
+-google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk=
+-google.golang.org/genproto v0.0.0-20220913154956-18f8339a66a5/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo=
+-google.golang.org/genproto v0.0.0-20220914142337-ca0e39ece12f/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo=
+-google.golang.org/genproto v0.0.0-20220915135415-7fd63a7952de/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo=
+-google.golang.org/genproto v0.0.0-20220916172020-2692e8806bfa/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo=
+-google.golang.org/genproto v0.0.0-20220919141832-68c03719ef51/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo=
+-google.golang.org/genproto v0.0.0-20220920201722-2b89144ce006/go.mod h1:ht8XFiar2npT/g4vkk7O0WYS1sHOHbdujxbEp7CJWbw=
+-google.golang.org/genproto v0.0.0-20220926165614-551eb538f295/go.mod h1:woMGP53BroOrRY3xTxlbr8Y3eB/nzAvvFM83q7kG2OI=
+-google.golang.org/genproto v0.0.0-20220926220553-6981cbe3cfce/go.mod h1:woMGP53BroOrRY3xTxlbr8Y3eB/nzAvvFM83q7kG2OI=
+-google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqwhZAwq4wsRUaVG555sVgsNmIjRtO7t/JH29U=
+-google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM=
+-google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM=
+-google.golang.org/genproto v0.0.0-20221024153911-1573dae28c9c/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s=
+-google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s=
+-google.golang.org/genproto v0.0.0-20221027153422-115e99e71e1c/go.mod h1:CGI5F/G+E5bKwmfYo09AXuVN4dD894kIKUFmVbP2/Fo=
+-google.golang.org/genproto v0.0.0-20221109142239-94d6d90a7d66/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg=
+-google.golang.org/genproto v0.0.0-20221114212237-e4508ebdbee1/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg=
+-google.golang.org/genproto v0.0.0-20221117204609-8f9c96812029/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg=
+-google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg=
+-google.golang.org/genproto v0.0.0-20221201164419-0e50fba7f41c/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg=
+-google.golang.org/genproto v0.0.0-20221201204527-e3fa12d562f3/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg=
+-google.golang.org/genproto v0.0.0-20221202195650-67e5cbc046fd/go.mod h1:cTsE614GARnxrLsqKREzmNYJACSWWpAWdNMwnD7c2BE=
+-google.golang.org/genproto v0.0.0-20221227171554-f9683d7f8bef/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM=
+-google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM=
+-google.golang.org/genproto v0.0.0-20230112194545-e10362b5ecf9/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM=
+-google.golang.org/genproto v0.0.0-20230113154510-dbe35b8444a5/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM=
+-google.golang.org/genproto v0.0.0-20230123190316-2c411cf9d197/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM=
+-google.golang.org/genproto v0.0.0-20230124163310-31e0e69b6fc2/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM=
+-google.golang.org/genproto v0.0.0-20230125152338-dcaf20b6aeaa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM=
+-google.golang.org/genproto v0.0.0-20230127162408-596548ed4efa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM=
+-google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM=
+-google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44/go.mod h1:8B0gmkoRebU8ukX6HP+4wrVQUY1+6PkQ44BSyIlflHA=
+-google.golang.org/genproto v0.0.0-20230222225845-10f96fb3dbec/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw=
+-google.golang.org/genproto v0.0.0-20230223222841-637eb2293923/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw=
+-google.golang.org/genproto v0.0.0-20230303212802-e74f57abe488/go.mod h1:TvhZT5f700eVlTNwND1xoEZQeWTB2RY/65kplwl/bFA=
+-google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s=
+-google.golang.org/genproto v0.0.0-20230320184635-7606e756e683/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s=
+-google.golang.org/genproto v0.0.0-20230323212658-478b75c54725/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak=
+-google.golang.org/genproto v0.0.0-20230330154414-c0448cd141ea/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak=
+-google.golang.org/genproto v0.0.0-20230331144136-dcfb400f0633/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak=
+-google.golang.org/genproto v0.0.0-20230403163135-c38d8f061ccd/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak=
+-google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU=
+-google.golang.org/genproto v0.0.0-20230525234025-438c736192d0/go.mod h1:9ExIQyXL5hZrHzQceCwuSYwZZ5QZBazOcprJ5rgs3lY=
+-google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk=
+-google.golang.org/genproto v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk=
+-google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64=
+-google.golang.org/genproto v0.0.0-20230629202037-9506855d4529/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64=
+-google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:O9kGHb51iE/nOGvQaDUuadVYqovW56s5emA88lQnj6Y=
+-google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98/go.mod h1:S7mY02OqCJTD0E1OiQy1F72PWFB4bZJ87cAtLPYgDR0=
+-google.golang.org/genproto v0.0.0-20230726155614-23370e0ffb3e/go.mod h1:0ggbjUrZYpy1q+ANUS30SEoGZ53cdfwtbuG7Ptgy108=
+-google.golang.org/genproto v0.0.0-20230803162519-f966b187b2e5/go.mod h1:oH/ZOT02u4kWEp7oYBGYFFkCdKS/uYR9Z7+0/xuuFp8=
+-google.golang.org/genproto v0.0.0-20230821184602-ccc8af3d0e93/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4=
+-google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4=
+-google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4=
+-google.golang.org/genproto v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:CCviP9RmpZ1mxVr8MUjCnSiY09IbAXZxhLE6EhHIdPU=
+-google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk=
+-google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:EMfReVxb80Dq1hhioy0sOsY9jCE46YDgHlJ7fWVUWRE=
+-google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:CgAqfJo+Xmu0GwA0411Ht3OU3OntXwsGmrmjI8ioGXI=
+-google.golang.org/genproto v0.0.0-20231030173426-d783a09b4405/go.mod h1:3WDQMjmJk36UQhjQ89emUzb1mdaHcPeeAh4SCBKznB4=
+-google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:J7XzRzVy1+IPwWHZUzoD0IccYZIrXILAQpc+Qy9CMhY=
+-google.golang.org/genproto v0.0.0-20231120223509-83a465c0220f h1:Vn+VyHU5guc9KjB5KrjI2q0wCOWEOIh0OEsleqakHJg=
+-google.golang.org/genproto v0.0.0-20231120223509-83a465c0220f/go.mod h1:nWSwAFPb+qfNJXsoeO3Io7zf4tMSfN8EA8RlDA04GhY=
+-google.golang.org/genproto/googleapis/api v0.0.0-20230525234020-1aefcd67740a/go.mod h1:ts19tUU+Z0ZShN1y3aPyq2+O3d5FUNNgT6FtOzmrNn8=
+-google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig=
+-google.golang.org/genproto/googleapis/api v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig=
+-google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig=
+-google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig=
+-google.golang.org/genproto/googleapis/api v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:mPBs5jNgx2GuQGvFwUvVKqtn6HsUw9nP64BedgvqEsQ=
+-google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ=
+-google.golang.org/genproto/googleapis/api v0.0.0-20230726155614-23370e0ffb3e/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ=
+-google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5/go.mod h1:5DZzOUPCLYL3mNkQ0ms0F3EuUNZ7py1Bqeq6sxzI7/Q=
+-google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk=
+-google.golang.org/genproto/googleapis/api v0.0.0-20230913181813-007df8e322eb/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk=
+-google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:RdyHbowztCGQySiCvQPgWQWgWhGnouTdCflKoDBt32U=
+-google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0=
+-google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:SUBoKXbI1Efip18FClrQVGjWcyd0QZd8KkvdP34t7ww=
+-google.golang.org/genproto/googleapis/api v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:IBQ646DjkDkvUIsVq/cc03FUFQ9wbZu7yE396YcL870=
+-google.golang.org/genproto/googleapis/api v0.0.0-20231030173426-d783a09b4405/go.mod h1:oT32Z4o8Zv2xPQTg0pbVaPr0MPOH6f14RgXt7zfIpwg=
+-google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:0xJLfVdJqpAPl8tDg1ujOCGzx6LFLttXT5NhllGOXY4=
+-google.golang.org/genproto/googleapis/bytestream v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:ylj+BE99M198VPbBh6A8d9n3w8fChvyLK3wwBOjXBFA=
+-google.golang.org/genproto/googleapis/bytestream v0.0.0-20230807174057-1744710a1577/go.mod h1:NjCQG/D8JandXxM57PZbAJL1DCNL6EypA0vPPwfsc7c=
+-google.golang.org/genproto/googleapis/bytestream v0.0.0-20231030173426-d783a09b4405/go.mod h1:GRUCuLdzVqZte8+Dl/D4N25yLzcGqqWaYkeVOwulFqw=
+-google.golang.org/genproto/googleapis/bytestream v0.0.0-20231120223509-83a465c0220f/go.mod h1:iIgEblxoG4klcXsG0d9cpoxJ4xndv6+1FkDROCHhPRI=
+-google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234015-3fc162c6f38a/go.mod h1:xURIpW9ES5+/GZhnV6beoEtxQrnkRGIfP5VQG2tCBLc=
+-google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA=
+-google.golang.org/genproto/googleapis/rpc v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA=
+-google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA=
+-google.golang.org/genproto/googleapis/rpc v0.0.0-20230629202037-9506855d4529/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA=
+-google.golang.org/genproto/googleapis/rpc v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:8mL13HKkDa+IuJ8yruA3ci0q+0vsUz4m//+ottjwS5o=
+-google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM=
+-google.golang.org/genproto/googleapis/rpc v0.0.0-20230731190214-cbb8c96f2d6d/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM=
+-google.golang.org/genproto/googleapis/rpc v0.0.0-20230803162519-f966b187b2e5/go.mod h1:zBEcrKX2ZOcEkHWxBPAIvYUWOKKMIhYcmNiUIu2ji3I=
+-google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M=
+-google.golang.org/genproto/googleapis/rpc v0.0.0-20230920183334-c177e329c48b/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M=
+-google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:KSqppvjFjtoCI+KGd4PELB0qLNxdJHRGqRI09mB6pQA=
+-google.golang.org/genproto/googleapis/rpc v0.0.0-20231002182017-d307bd883b97/go.mod h1:v7nGkzlmW8P3n/bKmWBn2WpBjpOEx8Q6gMueudAmKfY=
+-google.golang.org/genproto/googleapis/rpc v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0=
+-google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc=
+-google.golang.org/genproto/googleapis/rpc v0.0.0-20231030173426-d783a09b4405/go.mod h1:67X1fPuzjcrkymZzZV1vvkFeTn2Rvc6lYF9MYFGCcwE=
+-google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:oQ5rr10WTTMvP4A36n8JpR1OrO1BEiV4f78CneXZxkA=
+-google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f/go.mod h1:L9KNLi232K1/xB6f7AlSX692koaRnKaWSR0stBki0Yc=
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20231127180814-3a041ad873d4 h1:DC7wcm+i+P1rN3Ff07vL+OndGg5OhNddHyTA+ocPqYE=
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20231127180814-3a041ad873d4/go.mod h1:eJVxU6o+4G1PSczBr85xmyvSNYAKvAYgkub40YGomFM=
+-google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
+-google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
+-google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
+-google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
+-google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
+-google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
+-google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
+-google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
+-google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60=
+-google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
+-google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
+-google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
+-google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
+-google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
+-google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
+-google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8=
+-google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
+-google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
+-google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
+-google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
+-google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
+-google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
+-google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE=
+-google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE=
+-google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
+-google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
+-google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
+-google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
+-google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ=
+-google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk=
+-google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk=
+-google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk=
+-google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk=
+-google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI=
+-google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI=
+-google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI=
+-google.golang.org/grpc v1.51.0/go.mod h1:wgNDFcnuBGmxLKI/qn4T+m5BtEBYXJPvibbUPsAIPww=
+-google.golang.org/grpc v1.52.0/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY=
+-google.golang.org/grpc v1.52.3/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY=
+-google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw=
+-google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g=
+-google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8=
+-google.golang.org/grpc v1.56.1/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s=
+-google.golang.org/grpc v1.56.2/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s=
+-google.golang.org/grpc v1.57.0/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo=
+-google.golang.org/grpc v1.58.2/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0=
+-google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0=
+ google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk=
+ google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98=
+-google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
+-google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
+-google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
+-google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
+-google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
+-google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
+-google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+-google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+-google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+-google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
+-google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
+ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
+ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
+-google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
+-google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
+-google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
+-google.golang.org/protobuf v1.28.2-0.20230222093303-bc1253ad3743/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
+-google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
+-google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
+ google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
+ google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
+-gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
+ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
++gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
+ gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+-gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
+-gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
+-gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
+ gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
+ gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
+-gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+-gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+-gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+-gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+-gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+ gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+-gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
+ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+-gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
+ gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+-honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+-honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+-honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+-honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+-honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
+-honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
+-honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
+-honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las=
+ honnef.co/go/tools v0.3.2 h1:ytYb4rOqyp1TSa2EPvNVwtPQJctSELKaMyLfqNP4+34=
+ honnef.co/go/tools v0.3.2/go.mod h1:jzwdWgg7Jdq75wlfblQxO4neNaFFSvgc1tD5Wv8U0Yw=
+-lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk=
+-lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk=
+-modernc.org/cc/v3 v3.36.0/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI=
+-modernc.org/cc/v3 v3.36.2/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI=
+-modernc.org/cc/v3 v3.36.3/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI=
+-modernc.org/cc/v3 v3.37.0/go.mod h1:vtL+3mdHx/wcj3iEGz84rQa8vEqR6XM84v5Lcvfph20=
+-modernc.org/cc/v3 v3.40.0/go.mod h1:/bTg4dnWkSXowUO6ssQKnOV0yMVxDYNIsIrzqTFDGH0=
+-modernc.org/ccgo/v3 v3.0.0-20220428102840-41399a37e894/go.mod h1:eI31LL8EwEBKPpNpA4bU1/i+sKOwOrQy8D87zWUcRZc=
+-modernc.org/ccgo/v3 v3.0.0-20220430103911-bc99d88307be/go.mod h1:bwdAnOoaIt8Ax9YdWGjxWsdkPcZyRPHqrOvJxaKAKGw=
+-modernc.org/ccgo/v3 v3.0.0-20220904174949-82d86e1b6d56/go.mod h1:YSXjPL62P2AMSxBphRHPn7IkzhVHqkvOnRKAKh+W6ZI=
+-modernc.org/ccgo/v3 v3.16.4/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ=
+-modernc.org/ccgo/v3 v3.16.6/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ=
+-modernc.org/ccgo/v3 v3.16.8/go.mod h1:zNjwkizS+fIFDrDjIAgBSCLkWbJuHF+ar3QRn+Z9aws=
+-modernc.org/ccgo/v3 v3.16.9/go.mod h1:zNMzC9A9xeNUepy6KuZBbugn3c0Mc9TeiJO4lgvkJDo=
+-modernc.org/ccgo/v3 v3.16.13-0.20221017192402-261537637ce8/go.mod h1:fUB3Vn0nVPReA+7IG7yZDfjv1TMWjhQP8gCxrFAtL5g=
+-modernc.org/ccgo/v3 v3.16.13/go.mod h1:2Quk+5YgpImhPjv2Qsob1DnZ/4som1lJTodubIcoUkY=
+-modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ=
+-modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM=
+-modernc.org/libc v0.0.0-20220428101251-2d5f3daf273b/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA=
+-modernc.org/libc v1.16.0/go.mod h1:N4LD6DBE9cf+Dzf9buBlzVJndKr/iJHG97vGLHYnb5A=
+-modernc.org/libc v1.16.1/go.mod h1:JjJE0eu4yeK7tab2n4S1w8tlWd9MxXLRzheaRnAKymU=
+-modernc.org/libc v1.16.17/go.mod h1:hYIV5VZczAmGZAnG15Vdngn5HSF5cSkbvfz2B7GRuVU=
+-modernc.org/libc v1.16.19/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA=
+-modernc.org/libc v1.17.0/go.mod h1:XsgLldpP4aWlPlsjqKRdHPqCxCjISdHfM/yeWC5GyW0=
+-modernc.org/libc v1.17.1/go.mod h1:FZ23b+8LjxZs7XtFMbSzL/EhPxNbfZbErxEHc7cbD9s=
+-modernc.org/libc v1.17.4/go.mod h1:WNg2ZH56rDEwdropAJeZPQkXmDwh+JCA1s/htl6r2fA=
+-modernc.org/libc v1.18.0/go.mod h1:vj6zehR5bfc98ipowQOM2nIDUZnVew/wNC/2tOGS+q0=
+-modernc.org/libc v1.20.3/go.mod h1:ZRfIaEkgrYgZDl6pa4W39HgN5G/yDW+NRmNKZBDFrk0=
+-modernc.org/libc v1.21.4/go.mod h1:przBsL5RDOZajTVslkugzLBj1evTue36jEomFQOoYuI=
+-modernc.org/libc v1.22.2/go.mod h1:uvQavJ1pZ0hIoC/jfqNoMLURIMhKzINIWypNM17puug=
+-modernc.org/mathutil v1.2.2/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E=
+-modernc.org/mathutil v1.4.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E=
+-modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E=
+-modernc.org/memory v1.1.1/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw=
+-modernc.org/memory v1.2.0/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw=
+-modernc.org/memory v1.2.1/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU=
+-modernc.org/memory v1.3.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU=
+-modernc.org/memory v1.4.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU=
+-modernc.org/memory v1.5.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU=
+-modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0=
+-modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0=
+-modernc.org/sqlite v1.18.1/go.mod h1:6ho+Gow7oX5V+OiOQ6Tr4xeqbx13UZ6t+Fw9IRUG4d4=
+-modernc.org/sqlite v1.18.2/go.mod h1:kvrTLEWgxUcHa2GfHBQtanR1H9ht3hTJNtKpzH9k1u0=
+-modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw=
+-modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw=
+-modernc.org/tcl v1.13.1/go.mod h1:XOLfOwzhkljL4itZkK6T72ckMgvj0BDsnKNdZVUOecw=
+-modernc.org/tcl v1.13.2/go.mod h1:7CLiGIPo1M8Rv1Mitpv5akc2+8fxUd2y2UzC/MfMzy0=
+-modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=
+-modernc.org/token v1.0.1/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=
+-modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=
+-modernc.org/z v1.5.1/go.mod h1:eWFB510QWW5Th9YGZT81s+LwvaAs3Q2yr4sP0rmLkv8=
+ mvdan.cc/xurls/v2 v2.5.0 h1:lyBNOm8Wo71UknhUs4QTFUNNMyxy2JEIaKKo0RWOh+8=
+ mvdan.cc/xurls/v2 v2.5.0/go.mod h1:yQgaGQ1rFtJUzkmKiHYSSfuQxqfYmd//X6PxvholpeE=
+-rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
+-rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
+-rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
+-rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
+-sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json
index 2655acbb8c09..67add3187d08 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/providers.json
+++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json
@@ -1,22 +1,22 @@
 {
   "aci": {
-    "hash": "sha256-8oQSliSbuSXCXFkwVca33E8g+qUP1Yf9I4n1/c6O8BA=",
+    "hash": "sha256-1N9Ya8WWb2gL84jYj4B8zllB5jQxRneVSNESYeRhj+c=",
     "homepage": "https://registry.terraform.io/providers/CiscoDevNet/aci",
     "owner": "CiscoDevNet",
     "repo": "terraform-provider-aci",
-    "rev": "v2.12.0",
+    "rev": "v2.13.0",
     "spdx": "MPL-2.0",
     "vendorHash": null
   },
   "acme": {
-    "hash": "sha256-hDZY+AY+MRHNbceVdAzLso9isUo/6/qTCk9hSZLBd2g=",
+    "hash": "sha256-wyDlI8G1MxZsoYPBjqQ32+/gK8DqQMXZWgTkATaOztQ=",
     "homepage": "https://registry.terraform.io/providers/vancluever/acme",
     "owner": "vancluever",
     "proxyVendor": true,
     "repo": "terraform-provider-acme",
-    "rev": "v2.19.0",
+    "rev": "v2.19.1",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-1OfGAuzd+rLAgLmzzkm3Biru0vb/xd3C5DJQcXwdlME="
+    "vendorHash": "sha256-PoykgWxMKmQzKUSojFICwjDucukfHYxHdgn60uD+UQ8="
   },
   "age": {
     "hash": "sha256-bJrzjvkrCX93bNqCA+FdRibHnAw6cb61StqtwUY5ok4=",
@@ -28,13 +28,13 @@
     "vendorHash": "sha256-jK7JuARpoxq7hvq5+vTtUwcYot0YqlOZdtDwq4IqKvk="
   },
   "aiven": {
-    "hash": "sha256-GlrHHg3byM18P2YSRoZGsJe+IH1DyYqey18KbkjpYrs=",
+    "hash": "sha256-7dKlhPGkt1WB/nlXV2IrNT7E3w2kNdishJB/xL299Cw=",
     "homepage": "https://registry.terraform.io/providers/aiven/aiven",
     "owner": "aiven",
     "repo": "terraform-provider-aiven",
-    "rev": "v4.12.1",
+    "rev": "v4.13.2",
     "spdx": "MIT",
-    "vendorHash": "sha256-S0C5utY/xNs8Jh1vOCFiq/GM/GV/Dt6jJmsnrAAsVSI="
+    "vendorHash": "sha256-rIyAhe4YQ9XG3nODCSxZRohHgNIPQ94pDLrh7+4Rj1k="
   },
   "akamai": {
     "hash": "sha256-CBBrX0mm6hyobOdhbDaud4HKupIMnDTJp7+kWSej+NI=",
@@ -46,11 +46,11 @@
     "vendorHash": "sha256-Y30DSv7gAW7JzaTYt0XGwLhTArFILPPnxYmP2mKe9Sc="
   },
   "alicloud": {
-    "hash": "sha256-We0Dfqh7qCY2XSQ5Jj+vFtTf2YIsZmCCxufC8vUeoDw=",
+    "hash": "sha256-LgpEooWXTefhH4HLVO1BIBUXXZBMO11ZS6NwsEbbnog=",
     "homepage": "https://registry.terraform.io/providers/aliyun/alicloud",
     "owner": "aliyun",
     "repo": "terraform-provider-alicloud",
-    "rev": "v1.214.1",
+    "rev": "v1.215.0",
     "spdx": "MPL-2.0",
     "vendorHash": null
   },
@@ -64,13 +64,13 @@
     "vendorHash": "sha256-OAd8SeTqTrH0kMoM2LsK3vM2PI23b3gl57FaJYM9hM0="
   },
   "archive": {
-    "hash": "sha256-uoHuh4LTbF27ns4oBRfmR7f/NvFd7j0NNmFWywl5x7U=",
+    "hash": "sha256-jkqbj7NGrTQeMQcg52JVurV3ce8iosxAJjBGdoQ3PLY=",
     "homepage": "https://registry.terraform.io/providers/hashicorp/archive",
     "owner": "hashicorp",
     "repo": "terraform-provider-archive",
-    "rev": "v2.4.1",
+    "rev": "v2.4.2",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-F3bCFX57QTw5h/pnPB6pIrszXYqbwe0kzStOpmPgzHM="
+    "vendorHash": "sha256-buKYDNVCIcSDLCrCL4ZAKNQ7HqkH3+/7RHjyyR4dLmU="
   },
   "argocd": {
     "hash": "sha256-nJrXbeI/07LlKngEkAnqPG6CiOLFTFugmZMVl2FEvIo=",
@@ -82,22 +82,22 @@
     "vendorHash": "sha256-q9PO9tMbaXTs3nBLElwU05GcDZMZqNmLVVGDmiSRSfo="
   },
   "artifactory": {
-    "hash": "sha256-6WtnjsXzGZAIilm3N52G07o7eU9UQ6LXWqd7sDcV2Bg=",
+    "hash": "sha256-hcdd762uNBYJx2KL4kouR8qWuSZBtGO2egUwaWufOMg=",
     "homepage": "https://registry.terraform.io/providers/jfrog/artifactory",
     "owner": "jfrog",
     "repo": "terraform-provider-artifactory",
-    "rev": "v10.0.2",
+    "rev": "v10.1.2",
     "spdx": "Apache-2.0",
-    "vendorHash": "sha256-iYm8xaHDWqjq8ui5bsSMMKNRE0/KBkOkzmImOQwMA7w="
+    "vendorHash": "sha256-J/+OcqRtcHaqoDkrWIDpPlBHQ/UWupwchA1aeSoHSh4="
   },
   "auth0": {
-    "hash": "sha256-z40zGGgKtru83KbmhK5kQhbHdXjCQ7q5G0eAfvqfa4A=",
+    "hash": "sha256-6VwjKNX24r93EgVED+NK17dY577HL4tT76jSCgVIpHg=",
     "homepage": "https://registry.terraform.io/providers/auth0/auth0",
     "owner": "auth0",
     "repo": "terraform-provider-auth0",
-    "rev": "v1.1.1",
+    "rev": "v1.1.2",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-/rT/dVpla6r3pIouZZ7tmluKDyjdYuzdMGoPCNn+Ptk="
+    "vendorHash": "sha256-t40UZ9LF7PNhIqdEK6puuNeSDapTpC0+BTQgXQlMPTs="
   },
   "avi": {
     "hash": "sha256-EGpHajrTTOx7LrFHzsrrkGMqsuUEJLJAN6AJ48QdJis=",
@@ -109,22 +109,22 @@
     "vendorHash": "sha256-r42KHzvRBXuWgLgtg+WUVt0ThjSMXtUKjEE9y/s/1uQ="
   },
   "aviatrix": {
-    "hash": "sha256-PRYtkq4CLEbUJ7YOSlvDyz+z4icLi0DBkDCTs/tNoIQ=",
+    "hash": "sha256-84MtHPrDVaLMQQYnAfuP/pZuzruWxUTLpziwn3ny1oU=",
     "homepage": "https://registry.terraform.io/providers/AviatrixSystems/aviatrix",
     "owner": "AviatrixSystems",
     "repo": "terraform-provider-aviatrix",
-    "rev": "v3.1.3",
+    "rev": "v3.1.4",
     "spdx": "MPL-2.0",
     "vendorHash": null
   },
   "aws": {
-    "hash": "sha256-wEbpTOlIZjewEepvqTjQRZAY4BtpetMF+HzvmdFEHGw=",
+    "hash": "sha256-UI1ECQ1bHxwjxtBzpgwbyZLexRH+7L6rjrEcyxSed0g=",
     "homepage": "https://registry.terraform.io/providers/hashicorp/aws",
     "owner": "hashicorp",
     "repo": "terraform-provider-aws",
-    "rev": "v5.31.0",
+    "rev": "v5.34.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-SVrPxBzcykecphwpHvcAhUbmf77eXC9VDdabGzg2bn8="
+    "vendorHash": "sha256-sccfJ5EUY9XTjDYah9/0R9L53Zzdfi06kWi5QaFp+og="
   },
   "azuread": {
     "hash": "sha256-lumXl3orK5Jq5+qnRfiIA94NjK2bCjd3LhRzHmW1h8I=",
@@ -136,11 +136,11 @@
     "vendorHash": null
   },
   "azurerm": {
-    "hash": "sha256-0AD30AibmJpfP+5ZT9aQDaeNWyViI9lajq2c4LzEUz4=",
+    "hash": "sha256-QNaTyyz7H5jf7znPOv6ZTUnaI2zPNHnfZXp2ns3Nv00=",
     "homepage": "https://registry.terraform.io/providers/hashicorp/azurerm",
     "owner": "hashicorp",
     "repo": "terraform-provider-azurerm",
-    "rev": "v3.86.0",
+    "rev": "v3.89.0",
     "spdx": "MPL-2.0",
     "vendorHash": null
   },
@@ -154,13 +154,14 @@
     "vendorHash": null
   },
   "baiducloud": {
-    "hash": "sha256-YZC3Z9F2SvnUS7yN4blmXy9g4mRr0zPQ9G/yoKa/91g=",
+    "deleteVendor": true,
+    "hash": "sha256-+/QLVhVzT80IYwoXvRoxHok3PAw+ZPQhH+b5YARFFLU=",
     "homepage": "https://registry.terraform.io/providers/baidubce/baiducloud",
     "owner": "baidubce",
     "repo": "terraform-provider-baiducloud",
-    "rev": "v1.19.26",
+    "rev": "v1.19.31",
     "spdx": "MPL-2.0",
-    "vendorHash": null
+    "vendorHash": "sha256-7FA5bhb22C/OUhcHrcZK2D4esj+su/HLB7pTyX7ot44="
   },
   "bigip": {
     "hash": "sha256-itRFSpaso9AJpjsXNpVxUgoG13Ys7dSuG5XCcuCkuMk=",
@@ -217,31 +218,32 @@
     "vendorHash": null
   },
   "cloudamqp": {
-    "hash": "sha256-ways6qj4rwoBo0XS69aMIMlBssv4R8CFZ4l5Lsnlih0=",
+    "hash": "sha256-TWBilEfRrLUk1PIAO/Vq1wed1BTALKApeBGTa5WtN5g=",
     "homepage": "https://registry.terraform.io/providers/cloudamqp/cloudamqp",
     "owner": "cloudamqp",
     "repo": "terraform-provider-cloudamqp",
-    "rev": "v1.29.1",
+    "rev": "v1.29.3",
     "spdx": "MPL-2.0",
     "vendorHash": "sha256-+HZzsAsEJuzEZ61ARaNYC1WxI3M6UwFEf+8q3Bd/JWA="
   },
   "cloudflare": {
-    "hash": "sha256-X7bjuZQ0UMEmPBQg9U5ZykBViDrcvumsoGCaIegMxP8=",
+    "hash": "sha256-ftpfjKjW+60n+mmwdx/ivpge4Nt2H1I3ElSk3AhPevY=",
     "homepage": "https://registry.terraform.io/providers/cloudflare/cloudflare",
     "owner": "cloudflare",
     "repo": "terraform-provider-cloudflare",
-    "rev": "v4.21.0",
+    "rev": "v4.23.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-0Ci2x2yVOU9ChlFJFFObR4DZqe4hX30/ARv+CGDa88k="
+    "vendorHash": "sha256-F+6bk+Lc0ziRJ/LBhrb5bS8oMN9zT7WqzPZKVUReNU4="
   },
   "cloudfoundry": {
-    "hash": "sha256-yEqsdgTSlwppt6ILRZQ6Epyh5WVN6Il3xsBOa/NfIdo=",
+    "hash": "sha256-1nYncJLVU/f9WD6Quh9IieIXgixPzbPk4zbtI1zmf9g=",
     "homepage": "https://registry.terraform.io/providers/cloudfoundry-community/cloudfoundry",
     "owner": "cloudfoundry-community",
+    "proxyVendor": true,
     "repo": "terraform-provider-cloudfoundry",
-    "rev": "v0.51.3",
+    "rev": "v0.52.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-0hq4dR1KqnE2IXMwif2/NVKQKRO/QplW/A6sB4pJ+FM="
+    "vendorHash": "sha256-g1T6kH8Rv9bpvb6Q3YHCseEi1ayydJIxlplH3k12s8c="
   },
   "cloudinit": {
     "hash": "sha256-etZeCGtYhO0szRGxnj1c3/WOelxScWiHEA9w1Jb7bEE=",
@@ -290,13 +292,13 @@
     "vendorHash": "sha256-ZCMSmOCPEMxCSpl3DjIUGPj1W/KNJgyjtHpmQ19JquA="
   },
   "datadog": {
-    "hash": "sha256-NEXA4oRPC+A8aDuecp45mQm3NbAQKIHR0GSfxDVkeUw=",
+    "hash": "sha256-JH0QDASZLFU9beexGze0vg1qrQutgAeGSExwHnYRyKs=",
     "homepage": "https://registry.terraform.io/providers/DataDog/datadog",
     "owner": "DataDog",
     "repo": "terraform-provider-datadog",
-    "rev": "v3.34.0",
+    "rev": "v3.35.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-57cwm7RqCqDR9PmnBFMnrM2vTogCOlpXwvVwnBkkA0Y="
+    "vendorHash": "sha256-eGOUtinVIi6R1R19nosw60I+DfdJNxmw3pBrS171tRI="
   },
   "dexidp": {
     "hash": "sha256-3UgiOeAGpGG2mkImPDvb24WjV2mavhY0E12j7W+SJs8=",
@@ -345,13 +347,13 @@
     "vendorHash": "sha256-z2p2tjTK7eL0gRU8XnXw9SY9qokqiqJOVhkiBQlHRnA="
   },
   "dnsimple": {
-    "hash": "sha256-6QubFsPp3sOmCSgIpRH+x+Q9YDDnOnfX5UzV+iy3uh4=",
+    "hash": "sha256-iH35dJLa/63s+CU5PdeMbqXUVGfWfpKIXH3znNUApEc=",
     "homepage": "https://registry.terraform.io/providers/dnsimple/dnsimple",
     "owner": "dnsimple",
     "repo": "terraform-provider-dnsimple",
-    "rev": "v1.3.1",
+    "rev": "v1.4.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-TTRxLal+oao8UtZpeZ4/HdR99WHGXARZWKqy1baT/mE="
+    "vendorHash": "sha256-fuIaNHlZica6PxFLzXGA+b6ODWrGWXdWYOeWzgiQRXo="
   },
   "docker": {
     "hash": "sha256-UyHOI8C0eDV5YllAi9clHp/CEldHjIp3FHHMPy1rK58=",
@@ -363,13 +365,13 @@
     "vendorHash": "sha256-XxltOTtCgmJ9wZX8Yw39HkwVVZb58kZjAH7jfKPhjKM="
   },
   "doppler": {
-    "hash": "sha256-zebkytKTBZ1WRS8oSdW/5B7McnL5GBClN79igdjcMvs=",
+    "hash": "sha256-YOJbeMFwEF+r4vOdKM5txdqPeYV1/8N/DKwlMjQiT6w=",
     "homepage": "https://registry.terraform.io/providers/DopplerHQ/doppler",
     "owner": "DopplerHQ",
     "repo": "terraform-provider-doppler",
-    "rev": "v1.3.0",
+    "rev": "v1.4.0",
     "spdx": "Apache-2.0",
-    "vendorHash": "sha256-Z5GKIty78BUFF3VbTcsZKi437gw/kOIHEKkAYu3uB2o="
+    "vendorHash": "sha256-qJ1mOuMyJ/f2/yCns7qY8zUt2lgDuBgzN0w1HCKBk7E="
   },
   "elasticsearch": {
     "hash": "sha256-a6kHN3w0sQCP+0+ZtFwcg9erfVBYkhNo+yOrnwweGWo=",
@@ -381,20 +383,20 @@
     "vendorHash": "sha256-oVTanZpCWs05HwyIKW2ajiBPz1HXOFzBAt5Us+EtTRw="
   },
   "equinix": {
-    "hash": "sha256-zjYMJfG+FJpgDWdDxlwp02lhs5yn15EIJqrAGIbrgDs=",
+    "hash": "sha256-WWW4X5fCQAZZiAVi79realf0EtB0AGnfS5yjSJrlZTU=",
     "homepage": "https://registry.terraform.io/providers/equinix/equinix",
     "owner": "equinix",
     "repo": "terraform-provider-equinix",
-    "rev": "v1.22.0",
+    "rev": "v1.26.0",
     "spdx": "MIT",
-    "vendorHash": "sha256-c40HqNBU0dXsidddgXuke8cSo/frAUKlxWMbsimiYMc="
+    "vendorHash": "sha256-vMmHoQEXXPbFS/q+wy35SQd5+yEXLQFVWX9AKsmbTn4="
   },
   "exoscale": {
-    "hash": "sha256-HVNGzcX0l7E4jB6TiWSPG9XRmpKL6HIt2gaYiDLFOb4=",
+    "hash": "sha256-SDvW6VC8MwrAWhFGNFMNXA55FbMwSBs9BjX9gnqesZ8=",
     "homepage": "https://registry.terraform.io/providers/exoscale/exoscale",
     "owner": "exoscale",
     "repo": "terraform-provider-exoscale",
-    "rev": "v0.54.1",
+    "rev": "v0.55.0",
     "spdx": "MPL-2.0",
     "vendorHash": null
   },
@@ -454,33 +456,33 @@
     "vendorHash": null
   },
   "gitlab": {
-    "hash": "sha256-J7jjGlvdxdAfbvSuekVaDTOZbY3MhxvLQMxGFH6LKEQ=",
+    "hash": "sha256-sk18gC7ZecdvXIzYrNhyYLduttZrVVgekNjgYR379TY=",
     "homepage": "https://registry.terraform.io/providers/gitlabhq/gitlab",
     "owner": "gitlabhq",
     "repo": "terraform-provider-gitlab",
-    "rev": "v16.7.0",
+    "rev": "v16.8.1",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-X+8WUPVpP27wWeWM1DA8P3fOToK791mtO6/grKyxcXg="
+    "vendorHash": "sha256-dfsIEyLyTTJJxMPXWyo0YuSaRrjL+qGL654TAgECWPM="
   },
   "google": {
-    "hash": "sha256-ZlU2ifri8yM6oUwS1tVmHkTbZfdcei7M0aaX8d4o4NE=",
+    "hash": "sha256-oGd2r/qCpiX/+vLDUlMhBBatZHmX0V+28jkhwy1zga4=",
     "homepage": "https://registry.terraform.io/providers/hashicorp/google",
     "owner": "hashicorp",
     "proxyVendor": true,
     "repo": "terraform-provider-google",
-    "rev": "v5.11.0",
+    "rev": "v5.13.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-N/FsxRGQu7GQG54oUO4TYiBFjRSZaU1vxBidC56D7m8="
+    "vendorHash": "sha256-1VdjxH20jZw6u33TLVMw/qxTHdviqF45SmWiKald2yw="
   },
   "google-beta": {
-    "hash": "sha256-VZmoIR4yDh3uaaE9DOt6B04IIxsqla+dFWWXbU2qW1c=",
+    "hash": "sha256-Q7hQff48vpGoiUPDWF+IuiJYDRMJgajqc7Jzgb4aUj4=",
     "homepage": "https://registry.terraform.io/providers/hashicorp/google-beta",
     "owner": "hashicorp",
     "proxyVendor": true,
     "repo": "terraform-provider-google-beta",
-    "rev": "v5.11.0",
+    "rev": "v5.13.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-N/FsxRGQu7GQG54oUO4TYiBFjRSZaU1vxBidC56D7m8="
+    "vendorHash": "sha256-1VdjxH20jZw6u33TLVMw/qxTHdviqF45SmWiKald2yw="
   },
   "googleworkspace": {
     "hash": "sha256-dedYnsKHizxJZibuvJOMbJoux0W6zgKaK5fxIofKqCY=",
@@ -492,13 +494,13 @@
     "vendorHash": "sha256-fqVBnAivVekV+4tpkl+E6eNA3wi8mhLevJRCs3W7L2g="
   },
   "grafana": {
-    "hash": "sha256-6A7+9LuKq7XvP65XB00wTKfbY0cXbGR2puVP3qMSVfA=",
+    "hash": "sha256-hC87cIbDqK9rTK/SOuLy4qBVpMUCPxrFb+ReDkGhU1o=",
     "homepage": "https://registry.terraform.io/providers/grafana/grafana",
     "owner": "grafana",
     "repo": "terraform-provider-grafana",
-    "rev": "v2.8.1",
+    "rev": "v2.10.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-FhpuE01EcxnZALAeMvSBxKmgJRNiJvQg6+WVKCI3Cek="
+    "vendorHash": "sha256-/cS4skB/p4QMeRqxpgp7JjnkTnTHVtb5M9YEVA1X+k0="
   },
   "gridscale": {
     "hash": "sha256-nOuckOEiHTMUOSjRwTHaitLOosraEl2mbU4gafi3gi4=",
@@ -510,13 +512,13 @@
     "vendorHash": null
   },
   "hcloud": {
-    "hash": "sha256-9yW3VbxtD+oSxmc2R9yzZisMTAOwjzyCzvZBRdFdH/w=",
+    "hash": "sha256-D7RBrpOxfSfeip7z+mAkWBjSTVnnM/MfN7Qvl/E+nA0=",
     "homepage": "https://registry.terraform.io/providers/hetznercloud/hcloud",
     "owner": "hetznercloud",
     "repo": "terraform-provider-hcloud",
-    "rev": "v1.44.1",
+    "rev": "v1.45.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-oGABaZRnwZdS5qPmksT4x7Tin2WpU2Jk9pejeHbghm8="
+    "vendorHash": "sha256-sipYN9Z76fib4j15VIn/1Rn7QelNNB2+KeFn5rIA6hM="
   },
   "helm": {
     "hash": "sha256-Zj0mZfQhZimk3QozKHNU7quO/SqV3278Y+l9bFa8w/k=",
@@ -528,11 +530,11 @@
     "vendorHash": "sha256-qoXWnAbjRsvFDtlDCfeaIjc5hZIbCgosyH0pXhHkWiA="
   },
   "heroku": {
-    "hash": "sha256-M1HdcKHOVf/rxjECvHqnU6FRXE6T8TpI24Fo0gkZ6FU=",
+    "hash": "sha256-B/NaFe8KOKGJJlF3vZnpdMnbD1VxBktqodPBk+4NZEc=",
     "homepage": "https://registry.terraform.io/providers/heroku/heroku",
     "owner": "heroku",
     "repo": "terraform-provider-heroku",
-    "rev": "v5.2.7",
+    "rev": "v5.2.8",
     "spdx": null,
     "vendorHash": null
   },
@@ -727,13 +729,13 @@
     "vendorHash": "sha256-T/YQsNpPISDSVi00KrLRX/+jFNQVl2ze/3D2ZRxmUjI="
   },
   "lxd": {
-    "hash": "sha256-2th4/2uLFnmSFKI94bSSt4OSX9wiML/OkThR6SbUCPE=",
+    "hash": "sha256-culY1Im8D4CtgC2LtTFFB0BgrNgLfDLT0I290+0NE3A=",
     "homepage": "https://registry.terraform.io/providers/terraform-lxd/lxd",
     "owner": "terraform-lxd",
     "repo": "terraform-provider-lxd",
-    "rev": "v1.10.4",
+    "rev": "v2.0.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-gcXX4XIyY2X7ZSDMVVzGL/ltaf8Z1/Zx8oJo/IDrIBA="
+    "vendorHash": "sha256-NHf6xjbbDHsTdjzZ0gIa08PE53Bjv2llBRIgNTx7fj4="
   },
   "mailgun": {
     "hash": "sha256-fg1I1lt2cA0DgxLnxYrm0V55pD9AkpAdonXVGYeFZwQ=",
@@ -763,13 +765,13 @@
     "vendorHash": "sha256-QxbZv6YMa5/I4bTeQBNdmG3EKtLEmstnH7HMiZzFJrI="
   },
   "migadu": {
-    "hash": "sha256-Alr9E9kaShDls8KZzi1OAennXi+T7y4F6AnpMLnhOgM=",
+    "hash": "sha256-4mT5BbOXl4OY99ao6nyQQgQImPk/1X7lOAZcAxYToQw=",
     "homepage": "https://registry.terraform.io/providers/metio/migadu",
     "owner": "metio",
     "repo": "terraform-provider-migadu",
-    "rev": "2023.12.21",
+    "rev": "2024.1.25",
     "spdx": "0BSD",
-    "vendorHash": "sha256-xCra7bh/vydRUAV/g5L8ZbJR3K+UeT8ovz7vMpsupAE="
+    "vendorHash": "sha256-eee9X1QTDqL9rIGOnnxLU6QlcSIeMLlTZnHYis+ht+w="
   },
   "minio": {
     "hash": "sha256-i3YYBffP7Jp3f0wN1ZwP+c7C8WN8EKUh7JOKzbH0R/I=",
@@ -808,13 +810,13 @@
     "vendorHash": null
   },
   "newrelic": {
-    "hash": "sha256-dRO12NFsZnRxbKBo7B0wK2C5HHBVA0iIdCU+sYzuSqA=",
+    "hash": "sha256-9oYJTB4GYnLqw7paELFA8MdhLa5C9+aTCbzHOqrX+Io=",
     "homepage": "https://registry.terraform.io/providers/newrelic/newrelic",
     "owner": "newrelic",
     "repo": "terraform-provider-newrelic",
-    "rev": "v3.28.1",
+    "rev": "v3.29.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-mcw5BfZLmSidhkJz/NonraE77HonthI6WUwRfammM/g="
+    "vendorHash": "sha256-GwvO9w1WikBseQpGMJXZ4G6E4eyTxrpNWmFWpWGC4Vs="
   },
   "nomad": {
     "hash": "sha256-MEQK/HF9SNEKehLIUMBm2P0WdR5yISJ8DCpI0fVP/DA=",
@@ -845,20 +847,20 @@
   },
   "nutanix": {
     "deleteVendor": true,
-    "hash": "sha256-Okjb4MS28gY1UdYA8+qs45VV5QcGabvMn5bc+nhzbt4=",
+    "hash": "sha256-p1VhGSor/uxQYiSb9enAeu6dtLRuXMKk9m2DtPEj6vs=",
     "homepage": "https://registry.terraform.io/providers/nutanix/nutanix",
     "owner": "nutanix",
     "repo": "terraform-provider-nutanix",
-    "rev": "v1.9.4",
+    "rev": "v1.9.5",
     "spdx": "MPL-2.0",
     "vendorHash": "sha256-LRIfxQGwG988HE5fftGl6JmBG7tTknvmgpm4Fu1NbWI="
   },
   "oci": {
-    "hash": "sha256-s+yyvYJCEcG3BxcPbnHR88WzZfuwk2c4QNGkdqSwLn4=",
+    "hash": "sha256-WpBYrIm0Holm3ynEZjC7Pkqk8w4jGXu9Q7iOmKN8h/g=",
     "homepage": "https://registry.terraform.io/providers/oracle/oci",
     "owner": "oracle",
     "repo": "terraform-provider-oci",
-    "rev": "v5.23.0",
+    "rev": "v5.26.0",
     "spdx": "MPL-2.0",
     "vendorHash": null
   },
@@ -881,13 +883,13 @@
     "vendorHash": null
   },
   "opennebula": {
-    "hash": "sha256-WVNCZDb96vsDfRvAz0MQlHmQUj+PbJ2CVWJ/A7yOAGk=",
+    "hash": "sha256-Bz/JKPbdxKS7VDnQoXnZ5ajqh++ujl+4wIS49BDtT94=",
     "homepage": "https://registry.terraform.io/providers/OpenNebula/opennebula",
     "owner": "OpenNebula",
     "repo": "terraform-provider-opennebula",
-    "rev": "v1.3.1",
+    "rev": "v1.4.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-W7UGOtyFsIMXPqFDnde2XlzU7klR7Fs00mSuJ9ID20A="
+    "vendorHash": "sha256-Hd6vh4ihuR1rRk5yIu1mPuDMb4Not4soKld10MfOuGU="
   },
   "openstack": {
     "hash": "sha256-sFv7n5tf3aAwe6R1XeJdU3XMDF9ZMCM3t/vVLegZaXM=",
@@ -899,13 +901,13 @@
     "vendorHash": "sha256-hVsqlWTZoYAMWMeismKhiqFxSFbkTBSIEMSLZx5stnQ="
   },
   "opentelekomcloud": {
-    "hash": "sha256-KDVbrOwThgZJMD2qmHPhcV+ZbMz3sPM+ZOa4Cw7KEYA=",
+    "hash": "sha256-4AsU4O5YxyqUvxBPwQw56dPGXoEsHBxJfHc5tnEPz4Q=",
     "homepage": "https://registry.terraform.io/providers/opentelekomcloud/opentelekomcloud",
     "owner": "opentelekomcloud",
     "repo": "terraform-provider-opentelekomcloud",
-    "rev": "v1.35.15",
+    "rev": "v1.36.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-LWFUVxEF9u6ddVjFVjmzbrcqblKuNurluYlV8/2tn6s="
+    "vendorHash": "sha256-2XxpNnJkmXFd8CHETUlj1T3eQWDssFqPKzrWAbOOYzk="
   },
   "opsgenie": {
     "hash": "sha256-ZssKhfwFrzCjvlebEmKAHWBInN5daVqxbmVFoA92dv8=",
@@ -926,11 +928,11 @@
     "vendorHash": null
   },
   "pagerduty": {
-    "hash": "sha256-XP7Y8qCnsCDMfMV1ip09y5HZHZUmpvYzBZA3xodedTw=",
+    "hash": "sha256-PgMG1TfeJ5vMmp+DxjFKL3UdHpHmPUwF6GG/y36Km+s=",
     "homepage": "https://registry.terraform.io/providers/PagerDuty/pagerduty",
     "owner": "PagerDuty",
     "repo": "terraform-provider-pagerduty",
-    "rev": "v3.4.0",
+    "rev": "v3.6.0",
     "spdx": "MPL-2.0",
     "vendorHash": null
   },
@@ -1034,13 +1036,13 @@
     "vendorHash": null
   },
   "scaleway": {
-    "hash": "sha256-KSkVKPRBSdajQrf9XbcVDu+migRWqCKAYxVuywILzEo=",
+    "hash": "sha256-xJpCu2/7pf6kkZVPhozAXfeU5mbzdVDYT2DvDmjajCc=",
     "homepage": "https://registry.terraform.io/providers/scaleway/scaleway",
     "owner": "scaleway",
     "repo": "terraform-provider-scaleway",
-    "rev": "v2.35.0",
+    "rev": "v2.36.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-vG5wLysF76t4eGIaV8eyrH7TNeZKci2gJ/AfZEUlhdA="
+    "vendorHash": "sha256-E/qBdcSPq/hpG0b0pmeY6ugItNrtu0HUdlJxpakAVwE="
   },
   "secret": {
     "hash": "sha256-MmAnA/4SAPqLY/gYcJSTnEttQTsDd2kEdkQjQj6Bb+A=",
@@ -1061,13 +1063,13 @@
     "vendorHash": "sha256-FjJosTjFRJnBW22IB9UHfZe9KWrT1h12InyUl0q7a28="
   },
   "sentry": {
-    "hash": "sha256-VTgD19eWeRtDFOuUjnSANkNz8pN/UutJeFgS5qkMpH8=",
+    "hash": "sha256-sUXOH0cbD5Zf3e4KHLUYM8vu2knJdfIWZ+fq9HMfJ54=",
     "homepage": "https://registry.terraform.io/providers/jianyuan/sentry",
     "owner": "jianyuan",
     "repo": "terraform-provider-sentry",
-    "rev": "v0.12.1",
+    "rev": "v0.12.2",
     "spdx": "MIT",
-    "vendorHash": "sha256-lwTsKX3rQObMvysvcPYxJxd09LRlWTH2s+APiOhnalo="
+    "vendorHash": "sha256-C4gyHcfWN7v5a5gB8CjoDkAlqRxgd6bpsT8n9St2tEM="
   },
   "shell": {
     "hash": "sha256-LTWEdXxi13sC09jh+EFZ6pOi1mzuvgBz5vceIkNE/JY=",
@@ -1079,11 +1081,11 @@
     "vendorHash": "sha256-MIO0VHofPtKPtynbvjvEukMNr5NXHgk7BqwIhbc9+u0="
   },
   "signalfx": {
-    "hash": "sha256-ILh5mdTyzU0AfJzyGH9JK1QsOER0BtKn9vXyRaGeb8g=",
+    "hash": "sha256-kUubyCd00VhB72JEvWDBLF4/uglzkBmijcbotTyQgyA=",
     "homepage": "https://registry.terraform.io/providers/splunk-terraform/signalfx",
     "owner": "splunk-terraform",
     "repo": "terraform-provider-signalfx",
-    "rev": "v9.0.0",
+    "rev": "v9.0.1",
     "spdx": "MPL-2.0",
     "vendorHash": "sha256-PQU4VC5wHcB70UkZaRT8jtz+qOAONU2SxtRrTmml9vY="
   },
@@ -1097,11 +1099,11 @@
     "vendorHash": null
   },
   "snowflake": {
-    "hash": "sha256-G/LHNXkK/pOwNqpoCudM3eGQgv1U2r5l4N/gJfJ5JzU=",
+    "hash": "sha256-uMXU/0LqOMBRaIOw1hxCdWuogrkWW9r/28YHniOxCbA=",
     "homepage": "https://registry.terraform.io/providers/Snowflake-Labs/snowflake",
     "owner": "Snowflake-Labs",
     "repo": "terraform-provider-snowflake",
-    "rev": "v0.82.0",
+    "rev": "v0.84.1",
     "spdx": "MIT",
     "vendorHash": "sha256-nT/zEQgHWnCrlm6TL/DnXIvwDxEs147OfXn/qnlvIH0="
   },
@@ -1115,13 +1117,13 @@
     "vendorHash": "sha256-8W1PK4T98iK1N6EB6AVjvr1P9Ja51+kSOmYAEosxrh8="
   },
   "spotinst": {
-    "hash": "sha256-LJVaD0GW3a4sDwUuxB8C0Rp+s1wFknMo0LFPDkClp68=",
+    "hash": "sha256-cLP/I54ClS0aQ14cWrtV57WrDJzBO3fpOMjd9GPR/Z0=",
     "homepage": "https://registry.terraform.io/providers/spotinst/spotinst",
     "owner": "spotinst",
     "repo": "terraform-provider-spotinst",
-    "rev": "v1.158.0",
+    "rev": "v1.160.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-7hgpA6ck7I5r1rkTjJSZ2vbLAe0suS+GaVJ80LlbJsM="
+    "vendorHash": "sha256-xsV1Co7kSDUrhT6wL6WAzNV/ciHyinW2V6svsezY3/s="
   },
   "stackpath": {
     "hash": "sha256-aCaoRxlV/UxYobHC5OqFO8nt9oQgyug1AuJffhnwauc=",
@@ -1142,11 +1144,11 @@
     "vendorHash": "sha256-9M1DsE/FPQK8TG7xCJWbU3HAJCK3p/7lxdzjO1oAfWs="
   },
   "sumologic": {
-    "hash": "sha256-HMjghu/2Q7rPkVKO5qtKAqEZFexbK3lfiylwB8Q2sYw=",
+    "hash": "sha256-LQ+EDvnQVuNhMMAlU27R9aytWsfdyaHHiGLF4zBs4d0=",
     "homepage": "https://registry.terraform.io/providers/SumoLogic/sumologic",
     "owner": "SumoLogic",
     "repo": "terraform-provider-sumologic",
-    "rev": "v2.28.0",
+    "rev": "v2.28.1",
     "spdx": "MPL-2.0",
     "vendorHash": "sha256-iNBM4Y24vDGPKyb5cppSogk145F0/pAFmOzEeiWgfLI="
   },
@@ -1169,11 +1171,11 @@
     "vendorHash": "sha256-FWwHAaUKUw7DyNs4sAlkLkGNj48wMJgpFvfQgbp8lFs="
   },
   "tencentcloud": {
-    "hash": "sha256-pgG8Y/Bnyg86TNK4pjhBXXLijQE2nCe/Q35L+SY1AJs=",
+    "hash": "sha256-miYELvWd/b33JUe74j3pYmyDIRrOI+8PEv4mJ+MfhNE=",
     "homepage": "https://registry.terraform.io/providers/tencentcloudstack/tencentcloud",
     "owner": "tencentcloudstack",
     "repo": "terraform-provider-tencentcloud",
-    "rev": "v1.81.64",
+    "rev": "v1.81.71",
     "spdx": "MPL-2.0",
     "vendorHash": null
   },
@@ -1187,11 +1189,11 @@
     "vendorHash": "sha256-lxXTiJeZ/8psry2dxrecB+o0xElSQrCjwZ9zXijI9Bs="
   },
   "thunder": {
-    "hash": "sha256-wS50I4iTnHq0rDUoz7tQXpqW84wugQQiw42xhzxFiRw=",
+    "hash": "sha256-ezolcZ652YUV/CDoNKNRZkiRpRoa5AMqHxeYLxluA5A=",
     "homepage": "https://registry.terraform.io/providers/a10networks/thunder",
     "owner": "a10networks",
     "repo": "terraform-provider-thunder",
-    "rev": "v1.3.0",
+    "rev": "v1.4.1",
     "spdx": "BSD-2-Clause",
     "vendorHash": null
   },
@@ -1242,22 +1244,22 @@
     "vendorHash": null
   },
   "utils": {
-    "hash": "sha256-WbJy1lwEX6RCYxZydCJ+0U/mJB4NoYiUg9+zf8Mxnwk=",
+    "hash": "sha256-7o3pVJvwnO80bXPJ5i0wfgz9mVqmXJRvGsVWj7N92gA=",
     "homepage": "https://registry.terraform.io/providers/cloudposse/utils",
     "owner": "cloudposse",
     "repo": "terraform-provider-utils",
-    "rev": "1.14.0",
+    "rev": "1.15.0",
     "spdx": "Apache-2.0",
-    "vendorHash": "sha256-vFfwa8DfmiHpbBbXPNovPC7SFoXRjyHRwOVqBcWCEtI="
+    "vendorHash": "sha256-jz1eQG7pyeYt96KndzY1iR8n5Xm/1NNM7AD5eR8W/k0="
   },
   "vault": {
-    "hash": "sha256-Db56SNnIHUuiIUKFKC5NwWaIbfsT85GZ95UBR+PUSMY=",
+    "hash": "sha256-nFthtHwWuWEgtrw6mhqDlXW5sOuxqHlMyReHvYNcasQ=",
     "homepage": "https://registry.terraform.io/providers/hashicorp/vault",
     "owner": "hashicorp",
     "repo": "terraform-provider-vault",
-    "rev": "v3.23.0",
+    "rev": "v3.24.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-5rRWlInDRj7hw4GZqTxfH7Y8tyTvzJgBWA1I5j0EyaI="
+    "vendorHash": "sha256-SjKFRIrIQD9rsoHkoBxNDdCd8iBF1aHdJodII1ml7Ds="
   },
   "vcd": {
     "hash": "sha256-TP9COMofx4c2GZ0dQkfopn4iq8ddfV3WwuNjTu6yQnU=",
@@ -1323,12 +1325,12 @@
     "vendorHash": "sha256-GRnVhGpVgFI83Lg34Zv1xgV5Kp8ioKTFV5uaqS80ATg="
   },
   "yandex": {
-    "hash": "sha256-piN10vAmUjI/jHTGVWvSGFNR7T01/51E8rJ+UZZt5Vk=",
+    "hash": "sha256-B0gc1PfAlwq//JvfEx4r+QUBDE1eO4ACJO6H2/TZvz8=",
     "homepage": "https://registry.terraform.io/providers/yandex-cloud/yandex",
     "owner": "yandex-cloud",
     "repo": "terraform-provider-yandex",
-    "rev": "v0.104.0",
+    "rev": "v0.106.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-W/i1r+SdYPTU4kha5Pr4i8+Xr8KqTEKFZDA3+vMP8pk="
+    "vendorHash": "sha256-6GLzXkRrDAsTxdrzz+sWf2AxkTHdyjfu72l4s0KwndY="
   }
 }
diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix
index 302b91773126..6aec8341b7ba 100644
--- a/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/pkgs/applications/networking/cluster/terraform/default.nix
@@ -167,9 +167,9 @@ rec {
   mkTerraform = attrs: pluggable (generic attrs);
 
   terraform_1 = mkTerraform {
-    version = "1.7.0";
-    hash = "sha256-oF0osIC/ti9ZkWDTBIQuBHreIBVfeo4f/naGFdaMxJE=";
-    vendorHash = "sha256-77W0x6DENB+U3yB4LI3PwJU9bTuH7Eqz2a9FNoERuJg=";
+    version = "1.7.2";
+    hash = "sha256-jTzZWmYeKF87Er2i7XHquM8oQyF4q/qoBf4DdMqv7L8=";
+    vendorHash = "sha256-DI4YTjdFFvfby8ExEY3KoK4J9YKK5LPpMbelzFMDVVs=";
     patches = [ ./provider-path-0_15.patch ];
     passthru = {
       inherit plugins;
diff --git a/pkgs/applications/networking/cluster/terragrunt/default.nix b/pkgs/applications/networking/cluster/terragrunt/default.nix
index 0b1f6c783912..689f749991c2 100644
--- a/pkgs/applications/networking/cluster/terragrunt/default.nix
+++ b/pkgs/applications/networking/cluster/terragrunt/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "terragrunt";
-  version = "0.54.16";
+  version = "0.55.0";
 
   src = fetchFromGitHub {
     owner = "gruntwork-io";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-UWldCHuRZI3pKl65VVorik9ucN0+xWyfl6r3X5m2xoI=";
+    hash = "sha256-OWhngNfcCxubGirDV+PdQHLmO/OjXHiUjqY3lt+wWW8=";
   };
 
-  vendorHash = "sha256-kGHcVWO59LyFGDjh9fC++z6PSirepa5QNHDJoojT5kA=";
+  vendorHash = "sha256-Y5+XruUqya+sY3DuX/bVVT4ZVYmTBIDoFRAiRKFyX3M=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/cluster/tftui/default.nix b/pkgs/applications/networking/cluster/tftui/default.nix
new file mode 100644
index 000000000000..3a9d657dbdd2
--- /dev/null
+++ b/pkgs/applications/networking/cluster/tftui/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, buildPythonApplication
+, fetchPypi
+, makeWrapper
+, poetry-core
+, posthog
+, pyperclip
+, requests
+, rich
+, textual
+, enableUsageTracking ? false
+}:
+
+buildPythonApplication rec {
+  pname = "tftui";
+  version = "0.12.4";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-E4Y0qA7SooMlHh+oSFUl1hfblpirr/Jdb1C2fqU43t0=";
+  };
+
+  propagatedBuildInputs = [
+    posthog
+    pyperclip
+    requests
+    rich
+    textual
+  ];
+
+  nativeBuildInputs = [
+    makeWrapper
+    poetry-core
+  ];
+
+  pythonImportsCheck = [
+    "tftui"
+  ];
+
+  postInstall = lib.optionalString (!enableUsageTracking) ''
+    wrapProgram $out/bin/tftui \
+      --add-flags "--disable-usage-tracking"
+  '';
+
+  meta = with lib; {
+    description = "Textual UI to view and interact with Terraform state";
+    homepage = "https://github.com/idoavrah/terraform-tui";
+    changelog = "https://github.com/idoavrah/terraform-tui/releases";
+    license = licenses.asl20;
+    maintainers = with maintainers; teams.bitnomial.members;
+    mainProgram = "tftui";
+  };
+}
diff --git a/pkgs/applications/networking/cluster/tfupdate/default.nix b/pkgs/applications/networking/cluster/tfupdate/default.nix
index 1b9906856878..b60da990413b 100644
--- a/pkgs/applications/networking/cluster/tfupdate/default.nix
+++ b/pkgs/applications/networking/cluster/tfupdate/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "tfupdate";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "minamijoyo";
     repo = "tfupdate";
     rev = "v${version}";
-    sha256 = "sha256-HyDWye7xL0g5vDoGl8FYFXfuMKU4rxAlFawQ5ynqkmc=";
+    sha256 = "sha256-WVYWoojNRAKmFt5kTaE86TNgodTld/vZ4O2LmLcU6sA=";
   };
 
-  vendorHash = "sha256-oPqAH+i9ryb1Ps1yCkxoPgMmf4RNtFBCeE94vZAEnuo=";
+  vendorHash = "sha256-BjusVkp7gN/w2uC1ZyUDaqvXvjEN6BVYNcwNZFOLjDc=";
 
   # Tests start http servers which need to bind to local addresses:
   # panic: httptest: failed to listen on a port: listen tcp6 [::1]:0: bind: operation not permitted
diff --git a/pkgs/applications/networking/cluster/tilt/assets.nix b/pkgs/applications/networking/cluster/tilt/assets.nix
index 0f98bbdb10db..6bc70de3213f 100644
--- a/pkgs/applications/networking/cluster/tilt/assets.nix
+++ b/pkgs/applications/networking/cluster/tilt/assets.nix
@@ -14,7 +14,7 @@ stdenvNoCC.mkDerivation rec {
 
   yarnOfflineCache = fetchYarnDeps {
     yarnLock = "${src}/web/yarn.lock";
-    hash = "sha256-UTxglGn3eIgahZg4kxolg2f2MTReCL4r/GyWNg4105E=";
+    hash = "sha256-0JpoAQKRmU7P1bzYNR/vqtPjOOSw8wSlNjXl2f6uBrw=";
   };
 
   configurePhase = ''
diff --git a/pkgs/applications/networking/cluster/tilt/default.nix b/pkgs/applications/networking/cluster/tilt/default.nix
index 646f0c9a0a3d..819d3dbc5095 100644
--- a/pkgs/applications/networking/cluster/tilt/default.nix
+++ b/pkgs/applications/networking/cluster/tilt/default.nix
@@ -5,13 +5,13 @@ let args = rec {
       /* Do not use "dev" as a version. If you do, Tilt will consider itself
         running in development environment and try to serve assets from the
         source tree, which is not there once build completes.  */
-      version = "0.33.6";
+      version = "0.33.10";
 
       src = fetchFromGitHub {
         owner = "tilt-dev";
         repo = "tilt";
         rev = "v${version}";
-        hash = "sha256-WtE8ExUKFRtdYeg0+My/DB+L/qT+J1EaKHKChNjC5oI=";
+        hash = "sha256-LPb2tC3xIGhjiLYkTU+NBIUoqiicO2ORM6Nt1eTnwQs=";
       };
     };
 
diff --git a/pkgs/applications/networking/cluster/timoni/default.nix b/pkgs/applications/networking/cluster/timoni/default.nix
index d89b90d92928..4ae26898e51c 100644
--- a/pkgs/applications/networking/cluster/timoni/default.nix
+++ b/pkgs/applications/networking/cluster/timoni/default.nix
@@ -1,10 +1,10 @@
 { lib
-, buildGo121Module
+, buildGoModule
 , fetchFromGitHub
 , installShellFiles
 }:
 
-buildGo121Module rec {
+buildGoModule rec {
   pname = "timoni";
   version = "0.17.0";
 
diff --git a/pkgs/applications/networking/cluster/werf/default.nix b/pkgs/applications/networking/cluster/werf/default.nix
index 0cc64f1f9f94..ae699b7f9e68 100644
--- a/pkgs/applications/networking/cluster/werf/default.nix
+++ b/pkgs/applications/networking/cluster/werf/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "werf";
-  version = "1.2.277";
+  version = "1.2.284";
 
   src = fetchFromGitHub {
     owner = "werf";
     repo = "werf";
     rev = "v${version}";
-    hash = "sha256-BUoioYirMNp1Xegmsr+qGfG4G3jfYEHED4XC5u8YgOQ=";
+    hash = "sha256-02dvkz8lgvbiTZ194pv5UruKgB5+BtDbogAkEOfzpaA=";
   };
 
-  vendorHash = "sha256-dHNvUCOxzFjdvpX+3X+ZOshOSR0DpofKkCR65Ul0hqM=";
+  vendorHash = "sha256-u7E+4VK3D36ipAqQVPeIyAhv/1JvgMHEuUUiQH/43ME=";
 
   proxyVendor = true;
 
diff --git a/pkgs/applications/networking/cluster/zarf/default.nix b/pkgs/applications/networking/cluster/zarf/default.nix
index 371b986f9d6c..2bef721e6df2 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.32.1";
+  version = "0.32.2";
 
   src = fetchFromGitHub {
     owner = "defenseunicorns";
     repo = "zarf";
     rev = "v${version}";
-    hash = "sha256-A5GfXdm13u82yW8mTYDX+H6idCBSeYML3C56t1TD2ec=";
+    hash = "sha256-LQe/M7uX6VKA7q040wFWKYQ96M1Ynp37uglENqvyAaU=";
   };
 
-  vendorHash = "sha256-7UBqO1O6o/eM04/bZpcGgttLhSoemcBBly3IZbATAz0=";
+  vendorHash = "sha256-HAIupM30qmOqol661iFm2lNjukoKBvYY1tPTnc0u3lg=";
   proxyVendor = true;
 
   preBuild = ''
diff --git a/pkgs/applications/networking/coreth/default.nix b/pkgs/applications/networking/coreth/default.nix
index 9825bd480f71..8fb639dc097b 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.12.7";
+  version = "0.12.10";
 
   src = fetchFromGitHub {
     owner = "ava-labs";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-voNUnQ0CWM0aGiVkIucn6eRJCp0ajz7hYKBFkYsKPu0=";
+    hash = "sha256-0Wx1dr/jH9OOjxJ4PPmdWIru+QVpsGvVV/VxLY+M+E4=";
   };
 
   # go mod vendor has a bug, see: golang/go#57529
   proxyVendor = true;
 
-  vendorHash = "sha256-adxPB3JPnAf6AxUZjgciK7nJguQWyeYy2/qfePVUouE=";
+  vendorHash = "sha256-kPeUe0kr1LmtGuscRC3AhKb6Cn4TFFxm1gZ6W6nPA28=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/applications/networking/datovka/default.nix b/pkgs/applications/networking/datovka/default.nix
index e48a27089db2..488f5094b79b 100644
--- a/pkgs/applications/networking/datovka/default.nix
+++ b/pkgs/applications/networking/datovka/default.nix
@@ -12,11 +12,11 @@
 
 mkDerivation rec {
   pname = "datovka";
-  version = "4.23.1";
+  version = "4.23.4";
 
   src = fetchurl {
     url = "https://gitlab.nic.cz/datovka/datovka/-/archive/v${version}/datovka-v${version}.tar.gz";
-    sha256 = "sha256-n8k+OzE7tRvnWzS7ancW0ZP3dUbXPUvqwzvECLkuVS4=";
+    sha256 = "sha256-xyRUm6DaxlIFmeskQuUMu6JV3QtzgOZf/pLiBNGUBRo=";
   };
 
   buildInputs = [ libdatovka qmake qtbase qtsvg libxml2 qtwebsockets ];
diff --git a/pkgs/applications/networking/deck/default.nix b/pkgs/applications/networking/deck/default.nix
index c8db94b54345..2098f34180ec 100644
--- a/pkgs/applications/networking/deck/default.nix
+++ b/pkgs/applications/networking/deck/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "deck";
-  version = "1.29.2";
+  version = "1.32.1";
 
   src = fetchFromGitHub {
     owner = "Kong";
     repo = "deck";
     rev = "v${version}";
-    hash = "sha256-UQgNLlV4FoKd23zkReTftDnHBtjtKjoXuqJPGTNX+CI=";
+    hash = "sha256-7lE/Wnrlv3L6V1ex+357q6XXpdx0810m1rKkqITowXY=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
@@ -21,7 +21,7 @@ buildGoModule rec {
   ];
 
   proxyVendor = true; # darwin/linux hash mismatch
-  vendorHash = "sha256-qLcOL7XuXNR/9Q/D5I7KcMNdveACommFndHjqpbPfbE=";
+  vendorHash = "sha256-D260T3E0aufOAqlN918SChv3aNDCFHfe2e0It1pcPiU=";
 
   postInstall = ''
     installShellCompletion --cmd deck \
diff --git a/pkgs/applications/networking/discordo/default.nix b/pkgs/applications/networking/discordo/default.nix
index ab818c726798..bb426cbc777c 100644
--- a/pkgs/applications/networking/discordo/default.nix
+++ b/pkgs/applications/networking/discordo/default.nix
@@ -3,16 +3,16 @@
 
 buildGoModule rec {
   pname = "discordo";
-  version = "unstable-2023-12-12";
+  version = "unstable-2024-01-25";
 
   src = fetchFromGitHub {
     owner = "ayn2op";
     repo = pname;
-    rev = "320ec7753d552974d4d5ede3fcf6fb3c0d52b6e4";
-    hash = "sha256-LVWOXw8+GbCE6N6kVSXDjjNqOcq7PS4KU7LXoowhBdQ=";
+    rev = "301b7c7a792b427595803679e37fe99007de9451";
+    hash = "sha256-ufAlwlH++g9L3aaA5soJ6r2oiJZi8Ny/6P530oV+BiY=";
   };
 
-  vendorHash = "sha256-8qr1erKGyJvR4LDKHkZf7nR0tQOcvUHQyJt7OlqNS44=";
+  vendorHash = "sha256-fy3FI1K57hLAgbw3WfmVNZT9ywCSXwRKSq+ATjG+Qpo=";
 
   CGO_ENABLED = 0;
 
diff --git a/pkgs/applications/networking/dnscontrol/default.nix b/pkgs/applications/networking/dnscontrol/default.nix
index e233d02a4c89..ae4fc0a4e3b7 100644
--- a/pkgs/applications/networking/dnscontrol/default.nix
+++ b/pkgs/applications/networking/dnscontrol/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "dnscontrol";
-  version = "4.7.3";
+  version = "4.8.2";
 
   src = fetchFromGitHub {
     owner = "StackExchange";
     repo = "dnscontrol";
     rev = "v${version}";
-    hash = "sha256-xxcoh7x6OvziVNCaCLnjqTfJCn2JOR0n23lfNUbZ2cg=";
+    hash = "sha256-9myo073/yl9CWwmVb3Gkihf6I/60kSOl0Pk8+dE39KM=";
   };
 
-  vendorHash = "sha256-fRK2ZFoqugZ9lb6VxZZHBQjTa2ZQs5NFBx6Z6NX3eWw=";
+  vendorHash = "sha256-jOLFqCeBxQLXgUAdDbk/QnPBAtMBQi5VR+oKjgZLb28=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/applications/networking/feedreaders/goeland/default.nix b/pkgs/applications/networking/feedreaders/goeland/default.nix
index 6cca07764bc6..30bce6a15ff4 100644
--- a/pkgs/applications/networking/feedreaders/goeland/default.nix
+++ b/pkgs/applications/networking/feedreaders/goeland/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "goeland";
-  version = "0.18.2";
+  version = "0.18.3";
 
   src = fetchFromGitHub {
     owner = "slurdge";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-pi4hkvBg1oMlD1zYv0YNmG+AZb0oZB4UGEtCeURhjfY=";
+    sha256 = "sha256-4xhw6L6CuwW2MepwGvpVLVafMcU/g0bn/2M/8ZSRF/U=";
   };
 
   vendorHash = "sha256-TZIHYFE4kJu5EOQ9oT8S0Tp/r38d5RhoLdmIrus8Ibc=";
diff --git a/pkgs/applications/networking/firewalld/default.nix b/pkgs/applications/networking/firewalld/default.nix
index c96ca72fdfa3..1b4e1f0a4248 100644
--- a/pkgs/applications/networking/firewalld/default.nix
+++ b/pkgs/applications/networking/firewalld/default.nix
@@ -31,13 +31,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "firewalld";
-  version = "2.0.2";
+  version = "2.1.1";
 
   src = fetchFromGitHub {
     owner = "firewalld";
     repo = "firewalld";
     rev = "v${version}";
-    sha256 = "sha256-nCCIi+UAQqvx+IqQDr6tQj42OHYamvCnKeBJOm6XjZE=";
+    sha256 = "sha256-+EDJrHryO1pXkuKnQdh8hGyi8/TOkb3ZLulQkiaOOqs=";
   };
 
   patches = [
diff --git a/pkgs/applications/networking/gnmic/default.nix b/pkgs/applications/networking/gnmic/default.nix
index 3bd4697a6e6e..37d22d3e32d6 100644
--- a/pkgs/applications/networking/gnmic/default.nix
+++ b/pkgs/applications/networking/gnmic/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "gnmic";
-  version = "0.33.0";
+  version = "0.35.1";
 
   src = fetchFromGitHub {
     owner = "openconfig";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-7jykosmVG+oJ6/27x+VtlVVxq/OQIctcjB1Wjs1DcRU=";
+    hash = "sha256-1Rtq/tRDU8hwrEYhP2/2qPWAYeCPL03m4NpXO3sGUdo=";
   };
 
-  vendorHash = "sha256-VjeOSnCAdG+RlIg9uIyyQ8wKUqyX5uc2RXG75q84vm4=";
+  vendorHash = "sha256-HoOjVfpowb5jvAYdQ3cbCQmSl1RJKPDjvOaOGfhe5TY=";
 
   ldflags = [
     "-s" "-w"
diff --git a/pkgs/applications/networking/gnome-network-displays/default.nix b/pkgs/applications/networking/gnome-network-displays/default.nix
index e7bfde8a5192..392f98c4fb6c 100644
--- a/pkgs/applications/networking/gnome-network-displays/default.nix
+++ b/pkgs/applications/networking/gnome-network-displays/default.nix
@@ -29,16 +29,6 @@ stdenv.mkDerivation (finalAttrs: {
     sha256 = "sha256-2SBVQK4fJeK8Y2UrrL0g5vQIerDdGE1nhFc6ke4oIpI=";
   };
 
-  patches = [
-    # Undeclared dependency on gio-unix-2.0, see:
-    # https://github.com/NixOS/nixpkgs/issues/36468 and
-    # https://gitlab.gnome.org/GNOME/gnome-network-displays/-/merge_requests/147
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gnome-network-displays/-/commit/ef3f3ff565acd8238da46de604a1e750d4f02f07.diff";
-      sha256 = "1ljiwgqia6am4lansg70qnwkch9mp1fr6bga98s5fwyiaw6b6f4p";
-    })
-  ];
-
   nativeBuildInputs = [
     meson
     ninja
diff --git a/pkgs/applications/networking/gns3/default.nix b/pkgs/applications/networking/gns3/default.nix
index a3671b476682..500d4c169280 100644
--- a/pkgs/applications/networking/gns3/default.nix
+++ b/pkgs/applications/networking/gns3/default.nix
@@ -12,25 +12,25 @@ in {
 
   guiStable = mkGui {
     channel = "stable";
-    version = "2.2.44.1";
-    hash = "sha256-Ae1Yij81/rhZOMMfLYaQKR4Dxx1gDGZBpBj0gLCSToI=";
+    version = "2.2.45";
+    hash = "sha256-SMnhPz5zTPtidy/BIvauDM60WgDLG+NIr9rdUrQhz0A=";
   };
 
   guiPreview = mkGui {
     channel = "stable";
-    version = "2.2.44.1";
-    hash = "sha256-Ae1Yij81/rhZOMMfLYaQKR4Dxx1gDGZBpBj0gLCSToI=";
+    version = "2.2.45";
+    hash = "sha256-SMnhPz5zTPtidy/BIvauDM60WgDLG+NIr9rdUrQhz0A=";
   };
 
   serverStable = mkServer {
     channel = "stable";
-    version = "2.2.44.1";
-    hash = "sha256-YtYXTEZj5009L8OU7jdhegYu5Xll3jZAW6NJFWOvxHQ=";
+    version = "2.2.45";
+    hash = "sha256-1GwhZEPfRW1e+enJipy7YOnA4QzeqZ7aCG92GrsZhms=";
   };
 
   serverPreview = mkServer {
     channel = "stable";
-    version = "2.2.44.1";
-    hash = "sha256-YtYXTEZj5009L8OU7jdhegYu5Xll3jZAW6NJFWOvxHQ=";
+    version = "2.2.45";
+    hash = "sha256-1GwhZEPfRW1e+enJipy7YOnA4QzeqZ7aCG92GrsZhms=";
   };
 }
diff --git a/pkgs/applications/networking/go-graft/default.nix b/pkgs/applications/networking/go-graft/default.nix
index ec9ca385e1ef..14dbcea6277b 100644
--- a/pkgs/applications/networking/go-graft/default.nix
+++ b/pkgs/applications/networking/go-graft/default.nix
@@ -13,7 +13,7 @@ buildGoModule rec {
 
   CGO_ENABLED = 0;
 
-  ldflags = [ "-X github.com/mzz2017/gg/cmd.Version=${version}" "-s" "-w" "-buildid=" ];
+  ldflags = [ "-X github.com/mzz2017/gg/cmd.Version=${version}" "-s" "-w" ];
   vendorHash = "sha256-fnM4ycqDyruCdCA1Cr4Ki48xeQiTG4l5dLVuAafEm14=";
   subPackages = [ "." ];
 
diff --git a/pkgs/applications/networking/ids/zeek/default.nix b/pkgs/applications/networking/ids/zeek/default.nix
index 7970a090407c..d5b07d7e5c03 100644
--- a/pkgs/applications/networking/ids/zeek/default.nix
+++ b/pkgs/applications/networking/ids/zeek/default.nix
@@ -26,11 +26,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "zeek";
-  version = "6.1.0";
+  version = "6.1.1";
 
   src = fetchurl {
     url = "https://download.zeek.org/zeek-${version}.tar.gz";
-    sha256 = "sha256-+3VvS5eAl1W13sOJJ8SUd/8GqmR9/NK4gCWxvhtqNY4=";
+    sha256 = "sha256-j8Vl6Vc/Wu1JpDV0UoXkLcEPUjRUnvwVAq91RPaDN+U=";
   };
 
   strictDeps = true;
diff --git a/pkgs/applications/networking/instant-messengers/alfaview/default.nix b/pkgs/applications/networking/instant-messengers/alfaview/default.nix
index f969a3c5163c..0cf3230bf88a 100644
--- a/pkgs/applications/networking/instant-messengers/alfaview/default.nix
+++ b/pkgs/applications/networking/instant-messengers/alfaview/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "alfaview";
-  version = "9.7.0";
+  version = "9.8.1";
 
   src = fetchurl {
     url = "https://assets.alfaview.com/stable/linux/deb/${pname}_${version}.deb";
-    hash = "sha256-nqIMnMz2FysBOyKpoHXQw9Gl0lmQg5oXmnZDqlPNZ+A=";
+    hash = "sha256-agi0f3aj5nHGV2/TAjaX+tY8/4nTdRlRiRn6rkTqokY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/armcord/default.nix b/pkgs/applications/networking/instant-messengers/armcord/default.nix
index 9b16c05241c8..c52ed6fe5cc5 100644
--- a/pkgs/applications/networking/instant-messengers/armcord/default.nix
+++ b/pkgs/applications/networking/instant-messengers/armcord/default.nix
@@ -3,7 +3,7 @@
 , fetchurl
 , autoPatchelfHook
 , dpkg
-, makeWrapper
+, makeBinaryWrapper
 , wrapGAppsHook
 , alsa-lib
 , at-spi2-atk
@@ -38,7 +38,7 @@
 
 stdenv.mkDerivation rec {
   pname = "armcord";
-  version = "3.2.5";
+  version = "3.2.6";
 
   src =
     let
@@ -47,15 +47,15 @@ stdenv.mkDerivation rec {
       {
         x86_64-linux = fetchurl {
           url = "${base}/v${version}/ArmCord_${version}_amd64.deb";
-          hash = "sha256-6zlYm4xuYpG+Bgsq5S+B/Zt9TRB2GZnueKAg2ywYLE4=";
+          hash = "sha256-9AcxqCxhLAjYclaw6lri06R0PgQQeRHTbLJLEdhDCWU=";
         };
         aarch64-linux = fetchurl {
           url = "${base}/v${version}/ArmCord_${version}_arm64.deb";
-          hash = "sha256-HJu1lRa3zOTohsPMe23puHxg1VMWNR2aOjDQJqc4TqE=";
+          hash = "sha256-/uk2slpNF1sSTW6z319Yg9yx/s45fJPvJQJpY11ULVw=";
         };
       }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
 
-  nativeBuildInputs = [ autoPatchelfHook dpkg makeWrapper wrapGAppsHook ];
+  nativeBuildInputs = [ autoPatchelfHook dpkg makeBinaryWrapper wrapGAppsHook ];
 
   dontWrapGApps = true;
 
@@ -114,7 +114,7 @@ stdenv.mkDerivation rec {
     chmod -R g-w "$out"
 
     # Wrap the startup command
-    makeWrapper $out/opt/ArmCord/armcord $out/bin/armcord \
+    makeBinaryWrapper $out/opt/ArmCord/armcord $out/bin/armcord \
       "''${gappsWrapperArgs[@]}" \
       --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
       --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland --enable-features=UseOzonePlatform --enable-features=WebRTCPipeWireCapturer }}" \
@@ -134,7 +134,7 @@ stdenv.mkDerivation rec {
     downloadPage = "https://github.com/ArmCord/ArmCord";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.osl3;
-    maintainers = with maintainers; [ ludovicopiero wrmilling ];
+    maintainers = with maintainers; [ wrmilling ];
     platforms = [ "x86_64-linux" "aarch64-linux" ];
     mainProgram = "armcord";
   };
diff --git a/pkgs/applications/networking/instant-messengers/baresip/default.nix b/pkgs/applications/networking/instant-messengers/baresip/default.nix
index 592dba0b73a8..5efe54c0d27b 100644
--- a/pkgs/applications/networking/instant-messengers/baresip/default.nix
+++ b/pkgs/applications/networking/instant-messengers/baresip/default.nix
@@ -27,13 +27,13 @@
 , dbusSupport ? true
 }:
 stdenv.mkDerivation rec {
-  version = "3.8.0";
+  version = "3.8.1";
   pname = "baresip";
   src = fetchFromGitHub {
     owner = "baresip";
     repo = "baresip";
     rev = "v${version}";
-    hash = "sha256-7QqaKK8zalyopn9+MkKmdt9XaCkDFBNiXwVd2iXmqMA=";
+    hash = "sha256-39HRvRTyA0V8NKFUUpj7UGc01KVXULTE3HUd9Kh06bw=";
   };
   prePatch = lib.optionalString (!dbusSupport) ''
     substituteInPlace cmake/modules.cmake --replace 'list(APPEND MODULES ctrl_dbus)' ""
diff --git a/pkgs/applications/networking/instant-messengers/beeper/default.nix b/pkgs/applications/networking/instant-messengers/beeper/default.nix
index b5c8b015a4b9..02069fd22c1b 100644
--- a/pkgs/applications/networking/instant-messengers/beeper/default.nix
+++ b/pkgs/applications/networking/instant-messengers/beeper/default.nix
@@ -11,11 +11,11 @@
 }:
 let
   pname = "beeper";
-  version = "3.91.55";
+  version = "3.93.36";
   name = "${pname}-${version}";
   src = fetchurl {
-    url = "https://download.todesktop.com/2003241lzgn20jd/beeper-3.91.55-build-240103fvmyrbzxm-x86_64.AppImage";
-    hash = "sha256-QceHUVOBMDjrkSHCEG5rjHJRzVmOUEDhUJ8p9CTbIKk=";
+    url = "https://download.todesktop.com/2003241lzgn20jd/beeper-3.93.36-build-2401269p8vcb695-x86_64.AppImage";
+    hash = "sha256-3pOOAI4/BWdbWfPweRx5I2KRi9VOgJ5vcQ89FTJhPak=";
   };
   appimage = appimageTools.wrapType2 {
     inherit version pname src;
@@ -77,7 +77,7 @@ stdenvNoCC.mkDerivation rec {
     '';
     homepage = "https://beeper.com";
     license = licenses.unfree;
-    maintainers = with maintainers; [ jshcmpbll mjm ];
+    maintainers = with maintainers; [ jshcmpbll mjm edmundmiller ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/chatty/default.nix b/pkgs/applications/networking/instant-messengers/chatty/default.nix
index 81c1f6656eaa..9faecf609272 100644
--- a/pkgs/applications/networking/instant-messengers/chatty/default.nix
+++ b/pkgs/applications/networking/instant-messengers/chatty/default.nix
@@ -29,7 +29,7 @@
 
 stdenv.mkDerivation rec {
   pname = "chatty";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
     repo = "Chatty";
     rev = "v${version}";
     fetchSubmodules = true;
-    hash = "sha256-jyG6kubXTyHUw2F+MfjJiQ0us4PrbavF5PJS5Pg46Mw=";
+    hash = "sha256-5IkQnXAKl0duy/B6+z7PXYv5zxakxJCgQhWBw5wioWg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/discord/default.nix b/pkgs/applications/networking/instant-messengers/discord/default.nix
index 1307e8e3f68b..e5fd9341ed79 100644
--- a/pkgs/applications/networking/instant-messengers/discord/default.nix
+++ b/pkgs/applications/networking/instant-messengers/discord/default.nix
@@ -2,52 +2,52 @@
 let
   versions =
     if stdenv.isLinux then {
-      stable = "0.0.40";
-      ptb = "0.0.64";
-      canary = "0.0.248";
-      development = "0.0.8";
+      stable = "0.0.42";
+      ptb = "0.0.66";
+      canary = "0.0.267";
+      development = "0.0.11";
     } else {
-      stable = "0.0.291";
-      ptb = "0.0.94";
-      canary = "0.0.394";
-      development = "0.0.18";
+      stable = "0.0.292";
+      ptb = "0.0.96";
+      canary = "0.0.401";
+      development = "0.0.27";
     };
   version = versions.${branch};
   srcs = rec {
     x86_64-linux = {
       stable = fetchurl {
         url = "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz";
-        hash = "sha256-kKWbD2fvRq+7VnOE3tEQ1LeGneZOQfD/79bG2uElYSw=";
+        hash = "sha256-7can15JhBc6OJAWZMk8uEdt/D1orCKG1MN1WBdTZrI0=";
       };
       ptb = fetchurl {
         url = "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";
-        hash = "sha256-loA/RdT6Y5c6Upius+vO/383FrutsJEYS/1uiR0gfqo=";
+        hash = "sha256-3ocygqp8eiF3n/BVlTp1T1CRsGj56MGp1yPsvBE7/H4=";
       };
       canary = fetchurl {
         url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
-        hash = "sha256-4BjlvunODUSNq2uBiC82FTlNRO3ByLJzwMsB3LirNIw=";
+        hash = "sha256-Hq78SDer7Gb+ju8wk9DrMLisHnoYoSwTzrs8PKhbS3s=";
       };
       development = fetchurl {
         url = "https://dl-development.discordapp.net/apps/linux/${version}/discord-development-${version}.tar.gz";
-        hash = "sha256-FD0qozLyNMPVpdD42A/pziwX7tKP3/9mFDIqdf4lopE=";
+        hash = "sha256-bN77yfmz/W3ohSKHV4pwnKEET6yi3p29ZfqH1BvFqXs=";
       };
     };
     x86_64-darwin = {
       stable = fetchurl {
         url = "https://dl.discordapp.net/apps/osx/${version}/Discord.dmg";
-        hash = "sha256-k0A5xBWG8cXhDp/d3dw5Eu1cpqayfOzrnwXK8i2CtVE=";
+        hash = "sha256-1BKMIWSb7+oQ+B80GUCslKn5VNdM0hPTNyZkI/RsxhM=";
       };
       ptb = fetchurl {
         url = "https://dl-ptb.discordapp.net/apps/osx/${version}/DiscordPTB.dmg";
-        hash = "sha256-SUCVLCorwqQTkJs3UJguBYZwE1lrJgmZ9BU8fHIRgLE=";
+        hash = "sha256-dG0Wcx8X2+kzrpacFZmMCXfLsuLOLbDK4qVLAMzd4RA=";
       };
       canary = fetchurl {
         url = "https://dl-canary.discordapp.net/apps/osx/${version}/DiscordCanary.dmg";
-        hash = "sha256-lgnZEkXxfn1L5QUBGXcKrIEL5kEehRIc0HF3WXgB8yo=";
+        hash = "sha256-fz/LDQJ/B8luN6Ffobp82hnycBOLg9Kdi0kXLGltCDc=";
       };
       development = fetchurl {
         url = "https://dl-development.discordapp.net/apps/osx/${version}/DiscordDevelopment.dmg";
-        hash = "sha256-q/8hHRBK9Quj2S1n5QQC3u3yF9OvxqWrC+ge4Jh9i0U=";
+        hash = "sha256-MRCBPe98Czm1OG2l3c1GAW4a27fV8XMtQ9pPIJMgqzA=";
       };
     };
     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 0d20072fc4b7..9a10c2eddba8 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.54";
+  "version" = "1.11.57";
   "hashes" = {
-    "desktopSrcHash" = "sha256-lKqcFe73UoGExSK7GGLiknLiRcaP3mIwLzqWdwOKHvQ=";
-    "desktopYarnHash" = "0v3j54a2ixik424za0iwj4sf60g934480jyp5lblhg7z8y5xqks8";
-    "webSrcHash" = "sha256-4cAa1QjM3N0xFcwwgFtUMJ2hh9uYDn+BE8tcsIuU4U0=";
-    "webYarnHash" = "13rbll0p4fmmmx3vqdyb5zlxy6zj6sbfklw5v73dacy0j8hzvz2i";
+    "desktopSrcHash" = "sha256-U1Koq+YrTQnbJAQmMuBioU6lxtw3oH9U3W3iMIDbibY=";
+    "desktopYarnHash" = "03kx7g1fhm4qn6iq450156fgw1x6bf0sngmqhd2hrhp699mjxs5s";
+    "webSrcHash" = "sha256-ZoB6ALNUDYh8nYUYsPNeiCaXn3qvg3NRJzDRJaHT4oU=";
+    "webYarnHash" = "0vznx306p3racnq5xv27ywvlrdxql9x8i3fl77i5vlc8g7crpc3m";
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/fluffychat/default.nix b/pkgs/applications/networking/instant-messengers/fluffychat/default.nix
index bdd41c4cfa64..869ed18c2cb3 100644
--- a/pkgs/applications/networking/instant-messengers/fluffychat/default.nix
+++ b/pkgs/applications/networking/instant-messengers/fluffychat/default.nix
@@ -1,47 +1,68 @@
 { lib
+, fetchzip
 , fetchFromGitHub
 , imagemagick
 , mesa
 , libdrm
-, flutter313
+, flutter
 , pulseaudio
 , makeDesktopItem
 , gnome
+
+, targetFlutterPlatform ? "linux"
 }:
 
 let
   libwebrtcRpath = lib.makeLibraryPath [ mesa libdrm ];
+  pubspecLock = lib.importJSON ./pubspec.lock.json;
 in
-flutter313.buildFlutterApplication rec {
-  pname = "fluffychat";
-  version = "1.14.1";
+flutter.buildFlutterApplication (rec {
+  pname = "fluffychat-${targetFlutterPlatform}";
+  version = "1.17.1";
 
   src = fetchFromGitHub {
     owner = "krille-chan";
     repo = "fluffychat";
     rev = "refs/tags/v${version}";
-    hash = "sha256-VTpZvoyZXJ5SCKr3Ocfm4iT6Z/+AWg+SCw/xmp68kMg=";
+    hash = "sha256-SCZtdmpUaCwORIJgT9lQO/It+WSzkhBOd6liLzPBerU=";
   };
 
-  pubspecLock = lib.importJSON ./pubspec.lock.json;
+  inherit pubspecLock;
 
   gitHashes = {
     keyboard_shortcuts = "sha256-U74kRujftHPvpMOIqVT0Ph+wi1ocnxNxIFA1krft4Os=";
     wakelock_windows = "sha256-Dfwe3dSScD/6kvkP67notcbb+EgTQ3kEYcH7wpra2dI=";
   };
 
+  inherit targetFlutterPlatform;
+
+  meta = with lib; {
+    description = "Chat with your friends (matrix client)";
+    homepage = "https://fluffychat.im/";
+    license = licenses.agpl3Plus;
+    mainProgram = "fluffychat";
+    maintainers = with maintainers; [ mkg20001 gilice ];
+    platforms = [ "x86_64-linux" "aarch64-linux" ];
+    sourceProvenance = [ sourceTypes.fromSource ];
+  };
+} // lib.optionalAttrs (targetFlutterPlatform == "linux") {
+  nativeBuildInputs = [ imagemagick ];
+
+  runtimeDependencies = [ pulseaudio ];
+
+  extraWrapProgramArgs = "--prefix PATH : ${gnome.zenity}/bin";
+
+  env.NIX_LDFLAGS = "-rpath-link ${libwebrtcRpath}";
+
   desktopItem = makeDesktopItem {
     name = "Fluffychat";
-    exec = "@out@/bin/fluffychat";
+    exec = "fluffychat";
     icon = "fluffychat";
     desktopName = "Fluffychat";
     genericName = "Chat with your friends (matrix client)";
     categories = [ "Chat" "Network" "InstantMessaging" ];
   };
 
-  nativeBuildInputs = [ imagemagick ];
-  runtimeDependencies = [ pulseaudio ];
-  extraWrapProgramArgs = "--prefix PATH : ${gnome.zenity}/bin";
   postInstall = ''
     FAV=$out/app/data/flutter_assets/assets/favicon.png
     ICO=$out/share/icons
@@ -54,20 +75,23 @@ flutter313.buildFlutterApplication rec {
       mkdir -p $D
       convert $FAV -resize ''${size}x''${size} $D/fluffychat.png
     done
-    substituteInPlace $out/share/applications/*.desktop \
-      --subst-var out
 
     patchelf --add-rpath ${libwebrtcRpath} $out/app/lib/libwebrtc.so
   '';
-
-  env.NIX_LDFLAGS = "-rpath-link ${libwebrtcRpath}";
-
-  meta = with lib; {
-    description = "Chat with your friends (matrix client)";
-    homepage = "https://fluffychat.im/";
-    license = licenses.agpl3Plus;
-    maintainers = with maintainers; [ mkg20001 gilice ];
-    platforms = [ "x86_64-linux" "aarch64-linux" ];
-    sourceProvenance = [ sourceTypes.fromSource ];
-  };
-}
+} // lib.optionalAttrs (targetFlutterPlatform == "web") {
+  prePatch =
+    # https://github.com/krille-chan/fluffychat/blob/v1.17.1/scripts/prepare-web.sh
+    let
+      # Use Olm 1.3.2, the oldest version, for FluffyChat 1.14.1 which depends on olm_flutter 1.2.0.
+      olmVersion = pubspecLock.packages.flutter_olm.version;
+      olmJs = fetchzip {
+        url = "https://github.com/famedly/olm/releases/download/v${olmVersion}/olm.zip";
+        stripRoot = false;
+        hash = "sha256-Vl3Cp2OaYzM5CPOOtTHtUb1W48VXePzOV6FeiIzyD1Y=";
+      };
+    in
+    ''
+      rm -r assets/js/package
+      cp -r '${olmJs}/javascript' assets/js/package
+    '';
+})
diff --git a/pkgs/applications/networking/instant-messengers/fluffychat/pubspec.lock.json b/pkgs/applications/networking/instant-messengers/fluffychat/pubspec.lock.json
index b9c5bd074068..ea9578706e02 100644
--- a/pkgs/applications/networking/instant-messengers/fluffychat/pubspec.lock.json
+++ b/pkgs/applications/networking/instant-messengers/fluffychat/pubspec.lock.json
@@ -14,11 +14,11 @@
       "dependency": "direct main",
       "description": {
         "name": "adaptive_dialog",
-        "sha256": "3b8abc7d1ba0834061759ee0be8e623eff5bffbcd1e6df5608a11983cfad6b2b",
+        "sha256": "30dc6deee139cde31e5d10a1d05e1a2a1bb6d592cf0eea27b978884b1ff03405",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.9.0"
+      "version": "2.0.0"
     },
     "analyzer": {
       "dependency": "transitive",
@@ -44,31 +44,41 @@
       "dependency": "direct main",
       "description": {
         "name": "animations",
-        "sha256": "fe8a6bdca435f718bb1dc8a11661b2c22504c6da40ef934cee8327ed77934164",
+        "sha256": "ef57563eed3620bd5d75ad96189846aca1e033c0c45fc9a7d26e80ab02b88a70",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.0.7"
+      "version": "2.0.8"
     },
     "ansicolor": {
       "dependency": "transitive",
       "description": {
         "name": "ansicolor",
-        "sha256": "607f8fa9786f392043f169898923e6c59b4518242b68b8862eb8a8b7d9c30b4a",
+        "sha256": "8bf17a8ff6ea17499e40a2d2542c2f481cd7615760c6d34065cb22bfd22e6880",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.0.1"
+      "version": "2.0.2"
+    },
+    "appkit_ui_element_colors": {
+      "dependency": "transitive",
+      "description": {
+        "name": "appkit_ui_element_colors",
+        "sha256": "c3e50f900aae314d339de489535736238627071457c4a4a2dbbb1545b4f04f22",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.0.0"
     },
     "archive": {
       "dependency": "direct main",
       "description": {
         "name": "archive",
-        "sha256": "e0902a06f0e00414e4e3438a084580161279f137aeb862274710f29ec10cf01e",
+        "sha256": "7b875fd4a20b165a3084bd2d210439b22ebc653f21cea4842729c0c30c82596b",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.3.9"
+      "version": "3.4.9"
     },
     "args": {
       "dependency": "transitive",
@@ -81,7 +91,7 @@
       "version": "2.4.2"
     },
     "async": {
-      "dependency": "transitive",
+      "dependency": "direct main",
       "description": {
         "name": "async",
         "sha256": "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c",
@@ -94,21 +104,21 @@
       "dependency": "transitive",
       "description": {
         "name": "audio_session",
-        "sha256": "8a2bc5e30520e18f3fb0e366793d78057fb64cd5287862c76af0c8771f2a52ad",
+        "sha256": "6fdf255ed3af86535c96452c33ecff1245990bb25a605bfb1958661ccc3d467f",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.1.16"
+      "version": "0.1.18"
     },
     "badges": {
       "dependency": "direct main",
       "description": {
         "name": "badges",
-        "sha256": "6e7f3ec561ec08f47f912cfe349d4a1707afdc8dda271e17b046aa6d42c89e77",
+        "sha256": "a7b6bbd60dce418df0db3058b53f9d083c22cdb5132a052145dc267494df0b84",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.1.1"
+      "version": "3.1.2"
     },
     "base58check": {
       "dependency": "transitive",
@@ -140,6 +150,16 @@
       "source": "hosted",
       "version": "2.1.1"
     },
+    "build_config": {
+      "dependency": "transitive",
+      "description": {
+        "name": "build_config",
+        "sha256": "bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.1.1"
+    },
     "callkeep": {
       "dependency": "direct main",
       "description": {
@@ -180,15 +200,25 @@
       "source": "hosted",
       "version": "1.3.1"
     },
+    "checked_yaml": {
+      "dependency": "transitive",
+      "description": {
+        "name": "checked_yaml",
+        "sha256": "feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.0.3"
+    },
     "chewie": {
       "dependency": "direct main",
       "description": {
         "name": "chewie",
-        "sha256": "60701da1f22ed20cd2d40e856fd1f2249dacf5b629d9fa50676443a18a4857b8",
+        "sha256": "ccfce3350ae9fd419cd336cdf3380f77a08e45171e1e3cb3d499d204de5e7ea8",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.7.0"
+      "version": "1.7.1"
     },
     "cli_util": {
       "dependency": "transitive",
@@ -214,31 +244,11 @@
       "dependency": "direct main",
       "description": {
         "name": "collection",
-        "sha256": "f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687",
+        "sha256": "ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.17.2"
-    },
-    "connectivity_plus": {
-      "dependency": "direct main",
-      "description": {
-        "name": "connectivity_plus",
-        "sha256": "77a180d6938f78ca7d2382d2240eb626c0f6a735d0bfdce227d8ffb80f95c48b",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "4.0.2"
-    },
-    "connectivity_plus_platform_interface": {
-      "dependency": "transitive",
-      "description": {
-        "name": "connectivity_plus_platform_interface",
-        "sha256": "cf1d1c28f4416f8c654d7dc3cd638ec586076255d407cef3ddbdaf178272a71a",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.2.4"
+      "version": "1.18.0"
     },
     "console": {
       "dependency": "transitive",
@@ -264,11 +274,11 @@
       "dependency": "transitive",
       "description": {
         "name": "cross_file",
-        "sha256": "0b0036e8cccbfbe0555fd83c1d31a6f30b77a96b598b35a5d36dd41f718695e9",
+        "sha256": "2f9d2cbccb76127ba28528cb3ae2c2326a122446a83de5a056aaa3880d3882c5",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.3.3+4"
+      "version": "0.3.3+7"
     },
     "crypto": {
       "dependency": "transitive",
@@ -294,11 +304,11 @@
       "dependency": "direct main",
       "description": {
         "name": "cupertino_icons",
-        "sha256": "e35129dc44c9118cee2a5603506d823bab99c68393879edb440e0090d07586be",
+        "sha256": "d57953e10f9f8327ce64a508a355f0b1ec902193f66288e8cb5070e7c47eeb2d",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.0.5"
+      "version": "1.0.6"
     },
     "dart_code_metrics": {
       "dependency": "direct dev",
@@ -334,41 +344,41 @@
       "dependency": "transitive",
       "description": {
         "name": "dart_webrtc",
-        "sha256": "dfe42714abe3eb83eefec407c9da7f8e341a899aa1b8ac2484af298cdfeb74a3",
+        "sha256": "5897a3bdd6c7fded07e80e250260ca4c9cd61f9080911aa308b516e1206745a9",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.1.2"
+      "version": "1.1.3"
     },
     "dbus": {
       "dependency": "transitive",
       "description": {
         "name": "dbus",
-        "sha256": "6f07cba3f7b3448d42d015bfd3d53fe12e5b36da2423f23838efc1d5fb31a263",
+        "sha256": "365c771ac3b0e58845f39ec6deebc76e3276aa9922b0cc60840712094d9047ac",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.7.8"
+      "version": "0.7.10"
     },
-    "desktop_drop": {
-      "dependency": "direct main",
+    "dependency_validator": {
+      "dependency": "transitive",
       "description": {
-        "name": "desktop_drop",
-        "sha256": "4ca4d960f4b11c032e9adfd2a0a8ac615bc3fddb4cbe73dcf840dd8077582186",
+        "name": "dependency_validator",
+        "sha256": "f727a5627aa405965fab4aef4f468e50a9b632ba0737fd2f98c932fec6d712b9",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.4.1"
+      "version": "3.2.3"
     },
-    "desktop_lifecycle": {
+    "desktop_drop": {
       "dependency": "direct main",
       "description": {
-        "name": "desktop_lifecycle",
-        "sha256": "221c0d1fd6582bbc28bd03f186983682d998459f3e8efde0105324a8ab350040",
+        "name": "desktop_drop",
+        "sha256": "d55a010fe46c8e8fcff4ea4b451a9ff84a162217bdb3b2a0aa1479776205e15d",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.1.1"
+      "version": "0.4.4"
     },
     "desktop_notifications": {
       "dependency": "direct main",
@@ -384,11 +394,11 @@
       "dependency": "direct main",
       "description": {
         "name": "device_info_plus",
-        "sha256": "86add5ef97215562d2e090535b0a16f197902b10c369c558a100e74ea06e8659",
+        "sha256": "0042cb3b2a76413ea5f8a2b40cec2a33e01d0c937e91f0f7c211fde4f7739ba6",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "9.0.3"
+      "version": "9.1.1"
     },
     "device_info_plus_platform_interface": {
       "dependency": "transitive",
@@ -404,21 +414,21 @@
       "dependency": "direct main",
       "description": {
         "name": "dynamic_color",
-        "sha256": "de4798a7069121aee12d5895315680258415de9b00e717723a1bd73d58f0126d",
+        "sha256": "8b8bd1d798bd393e11eddeaa8ae95b12ff028bf7d5998fc5d003488cd5f4ce2f",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.6.6"
+      "version": "1.6.8"
     },
     "emoji_picker_flutter": {
       "dependency": "direct main",
       "description": {
         "name": "emoji_picker_flutter",
-        "sha256": "1ca31245cc1f7ab5304c68ccda8039f52b9f2372aa4d10803117160fad3faf12",
+        "sha256": "009c51efc763d5a6ba05a5628b8b2184c327cd117d66ea9c3e7edf2ff269c423",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.6.1"
+      "version": "1.6.3"
     },
     "emoji_proposal": {
       "dependency": "direct main",
@@ -450,6 +460,16 @@
       "source": "hosted",
       "version": "0.2.4"
     },
+    "equatable": {
+      "dependency": "transitive",
+      "description": {
+        "name": "equatable",
+        "sha256": "c2b87cb7756efdf69892005af546c56c0b5037f54d2a88269b4f347a505e3ca2",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.0.5"
+    },
     "fake_async": {
       "dependency": "transitive",
       "description": {
@@ -484,51 +504,51 @@
       "dependency": "direct main",
       "description": {
         "name": "file_picker",
-        "sha256": "21145c9c268d54b1f771d8380c195d2d6f655e0567dc1ca2f9c134c02c819e0a",
+        "sha256": "4e42aacde3b993c5947467ab640882c56947d9d27342a5b6f2895b23956954a6",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "5.3.3"
+      "version": "6.1.1"
     },
     "file_selector_linux": {
       "dependency": "transitive",
       "description": {
         "name": "file_selector_linux",
-        "sha256": "770eb1ab057b5ae4326d1c24cc57710758b9a46026349d021d6311bd27580046",
+        "sha256": "045d372bf19b02aeb69cacf8b4009555fb5f6f0b7ad8016e5f46dd1387ddd492",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.9.2"
+      "version": "0.9.2+1"
     },
     "file_selector_macos": {
       "dependency": "transitive",
       "description": {
         "name": "file_selector_macos",
-        "sha256": "4ada532862917bf16e3adb3891fe3a5917a58bae03293e497082203a80909412",
+        "sha256": "b15c3da8bd4908b9918111fa486903f5808e388b8d1c559949f584725a6594d6",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.9.3+1"
+      "version": "0.9.3+3"
     },
     "file_selector_platform_interface": {
       "dependency": "transitive",
       "description": {
         "name": "file_selector_platform_interface",
-        "sha256": "412705a646a0ae90f33f37acfae6a0f7cbc02222d6cd34e479421c3e74d3853c",
+        "sha256": "0aa47a725c346825a2bd396343ce63ac00bda6eff2fbc43eabe99737dede8262",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.6.0"
+      "version": "2.6.1"
     },
     "file_selector_windows": {
       "dependency": "transitive",
       "description": {
         "name": "file_selector_windows",
-        "sha256": "1372760c6b389842b77156203308940558a2817360154084368608413835fc26",
+        "sha256": "d3547240c20cabf205c7c7f01a50ecdbc413755814d6677f3cb366f04abcead0",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.9.3"
+      "version": "0.9.3+1"
     },
     "flutter": {
       "dependency": "direct main",
@@ -546,25 +566,15 @@
       "source": "hosted",
       "version": "1.5.0"
     },
-    "flutter_app_lock": {
-      "dependency": "direct main",
-      "description": {
-        "name": "flutter_app_lock",
-        "sha256": "98890a2a2bc507b2f85165515189750e134921f8f4022ec10bd223033633a3ba",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "3.0.0"
-    },
     "flutter_blurhash": {
       "dependency": "direct main",
       "description": {
         "name": "flutter_blurhash",
-        "sha256": "05001537bd3fac7644fa6558b09ec8c0a3f2eba78c0765f88912882b1331a5c6",
+        "sha256": "5e67678e479ac639069d7af1e133f4a4702311491188ff3e0227486430db0c06",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.7.0"
+      "version": "0.8.2"
     },
     "flutter_cache_manager": {
       "dependency": "direct main",
@@ -586,11 +596,11 @@
       "dependency": "direct main",
       "description": {
         "name": "flutter_foreground_task",
-        "sha256": "9d71e28c0f9657b7366d5c769a25b4c6efe1bb4080ee4c74764295e419036000",
+        "sha256": "e48d2d810a2d643362e64de41146ed8e95d4dd282bae6abbb32309d9f0bf5d67",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "6.0.0+1"
+      "version": "6.1.2"
     },
     "flutter_highlighter": {
       "dependency": "direct main",
@@ -686,11 +696,11 @@
       "dependency": "transitive",
       "description": {
         "name": "flutter_layout_grid",
-        "sha256": "3c03d28f884d816d6f483bdd64dd79663abfb00eea7cb27ffe98380e8357af95",
+        "sha256": "3529b7aa7ed2cb9861a0bbaa5c14d4be2beaf5a070ce0176077159f80c5de094",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.0.4"
+      "version": "2.0.5"
     },
     "flutter_linkify": {
       "dependency": "direct main",
@@ -706,21 +716,21 @@
       "dependency": "direct dev",
       "description": {
         "name": "flutter_lints",
-        "sha256": "2118df84ef0c3ca93f96123a616ae8540879991b8b57af2f81b76a7ada49b2a4",
+        "sha256": "e2a421b7e59244faef694ba7b30562e489c2b489866e505074eb005cd7060db7",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.0.2"
+      "version": "3.0.1"
     },
     "flutter_local_notifications": {
       "dependency": "direct main",
       "description": {
         "name": "flutter_local_notifications",
-        "sha256": "3cc40fe8c50ab8383f3e053a499f00f975636622ecdc8e20a77418ece3b1e975",
+        "sha256": "bb5cd63ff7c91d6efe452e41d0d0ae6348925c82eafd10ce170ef585ea04776e",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "15.1.0+1"
+      "version": "16.2.0"
     },
     "flutter_local_notifications_linux": {
       "dependency": "transitive",
@@ -762,74 +772,74 @@
       "dependency": "direct main",
       "description": {
         "name": "flutter_math_fork",
-        "sha256": "a143a3a89131b578043ecbdb5e759c1033a1b3e9174f5cd1b979d93f4a7fb41c",
+        "sha256": "94bee4642892a94939af0748c6a7de0ff8318feee588379dcdfea7dc5cba06c8",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.7.1"
+      "version": "0.7.2"
     },
     "flutter_native_splash": {
       "dependency": "direct dev",
       "description": {
         "name": "flutter_native_splash",
-        "sha256": "ecff62b3b893f2f665de7e4ad3de89f738941fcfcaaba8ee601e749efafa4698",
+        "sha256": "c4d899312b36e7454bedfd0a4740275837b99e532d81c8477579d8183db1de6c",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.3.2"
+      "version": "2.3.6"
     },
     "flutter_olm": {
       "dependency": "direct main",
       "description": {
         "name": "flutter_olm",
-        "sha256": "fef0c9476d02c0df25ef0a66680bc23ac529a36b4911505910bcd8711b449c81",
+        "sha256": "69aaac45d854e74d17d04dac8a0ca3f548266d271a0f0fa7600e006e81432417",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.2.0"
+      "version": "1.3.2"
     },
     "flutter_openssl_crypto": {
       "dependency": "direct main",
       "description": {
         "name": "flutter_openssl_crypto",
-        "sha256": "b64a0825d79f10b6d5f5951f7ce2d5ddc12ed532129fc5a7e0ce472f5b97d78e",
+        "sha256": "6dcecf6f7c1804ae6f5d73ee05df8af72ea8133bf2447d25979d739503186c96",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.1.0"
+      "version": "0.3.0"
     },
     "flutter_plugin_android_lifecycle": {
       "dependency": "transitive",
       "description": {
         "name": "flutter_plugin_android_lifecycle",
-        "sha256": "950e77c2bbe1692bc0874fc7fb491b96a4dc340457f4ea1641443d0a6c1ea360",
+        "sha256": "b068ffc46f82a55844acfa4fdbb61fad72fa2aef0905548419d97f0f95c456da",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.0.15"
+      "version": "2.0.17"
     },
     "flutter_ringtone_player": {
       "dependency": "direct main",
       "description": {
         "name": "flutter_ringtone_player",
-        "sha256": "0b036416fda0654da52221989bd1a8ccd2876cea57f61ecc3a4fc272bd738c67",
+        "sha256": "bdbf0ba551fd81cf02fab5c45800dc0006fc51167a1ed252321046fd8ac2bce3",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.2.0"
+      "version": "4.0.0+2"
     },
     "flutter_secure_storage": {
       "dependency": "direct main",
       "description": {
         "name": "flutter_secure_storage",
-        "sha256": "98352186ee7ad3639ccc77ad7924b773ff6883076ab952437d20f18a61f0a7c5",
+        "sha256": "ffdbb60130e4665d2af814a0267c481bcf522c41ae2e43caf69fa0146876d685",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "8.0.0"
+      "version": "9.0.0"
     },
     "flutter_secure_storage_linux": {
-      "dependency": "transitive",
+      "dependency": "direct overridden",
       "description": {
         "name": "flutter_secure_storage_linux",
         "sha256": "0912ae29a572230ad52d8a4697e5518d7f0f429052fd51df7e5a7952c7efe2a3",
@@ -842,51 +852,51 @@
       "dependency": "transitive",
       "description": {
         "name": "flutter_secure_storage_macos",
-        "sha256": "083add01847fc1c80a07a08e1ed6927e9acd9618a35e330239d4422cd2a58c50",
+        "sha256": "bd33935b4b628abd0b86c8ca20655c5b36275c3a3f5194769a7b3f37c905369c",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.0.0"
+      "version": "3.0.1"
     },
     "flutter_secure_storage_platform_interface": {
       "dependency": "transitive",
       "description": {
         "name": "flutter_secure_storage_platform_interface",
-        "sha256": "b3773190e385a3c8a382007893d678ae95462b3c2279e987b55d140d3b0cb81b",
+        "sha256": "0d4d3a5dd4db28c96ae414d7ba3b8422fd735a8255642774803b2532c9a61d7e",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.0.1"
+      "version": "1.0.2"
     },
     "flutter_secure_storage_web": {
       "dependency": "transitive",
       "description": {
         "name": "flutter_secure_storage_web",
-        "sha256": "42938e70d4b872e856e678c423cc0e9065d7d294f45bc41fc1981a4eb4beaffe",
+        "sha256": "30f84f102df9dcdaa2241866a958c2ec976902ebdaa8883fbfe525f1f2f3cf20",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.1.1"
+      "version": "1.1.2"
     },
     "flutter_secure_storage_windows": {
       "dependency": "transitive",
       "description": {
         "name": "flutter_secure_storage_windows",
-        "sha256": "fc2910ec9b28d60598216c29ea763b3a96c401f0ce1d13cdf69ccb0e5c93c3ee",
+        "sha256": "5809c66f9dd3b4b93b0a6e2e8561539405322ee767ac2f64d084e2ab5429d108",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.0.0"
+      "version": "3.0.0"
     },
     "flutter_svg": {
       "dependency": "transitive",
       "description": {
         "name": "flutter_svg",
-        "sha256": "8c5d68a82add3ca76d792f058b186a0599414f279f00ece4830b9b231b570338",
+        "sha256": "d39e7f95621fc84376bc0f7d504f05c3a41488c562f4a8ad410569127507402c",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.0.7"
+      "version": "2.0.9"
     },
     "flutter_test": {
       "dependency": "direct dev",
@@ -898,31 +908,31 @@
       "dependency": "direct main",
       "description": {
         "name": "flutter_typeahead",
-        "sha256": "a3539f7a90246b152f569029dedcf0b842532d3f2a440701b520e0bf2acbcf42",
+        "sha256": "b9942bd5b7611a6ec3f0730c477146cffa4cd4b051077983ba67ddfc9e7ee818",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "4.6.2"
+      "version": "4.8.0"
     },
     "flutter_web_auth_2": {
       "dependency": "direct main",
       "description": {
         "name": "flutter_web_auth_2",
-        "sha256": "70e4df72940183b8e269c4163f78dd5bf9102ba3329bfe00c0f2373f30fb32d0",
+        "sha256": "ea57000909d0002824179f1e4907c074f39538e86a9e4d93a74b7c37dbaee242",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.1.5"
+      "version": "3.0.4"
     },
     "flutter_web_auth_2_platform_interface": {
       "dependency": "transitive",
       "description": {
         "name": "flutter_web_auth_2_platform_interface",
-        "sha256": "f6fa7059ff3428c19cd756c02fef8eb0147131c7e64591f9060c90b5ab84f094",
+        "sha256": "9124824cbd21e12680bf58190e27b77f251c897e80ec81cd557ec1fde9aecabf",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.1.4"
+      "version": "3.0.0"
     },
     "flutter_web_plugins": {
       "dependency": "transitive",
@@ -934,11 +944,11 @@
       "dependency": "direct main",
       "description": {
         "name": "flutter_webrtc",
-        "sha256": "770c6f8babfdc4907539dc57bf9e98b89132eaa4486bac774c537dd25c2d5362",
+        "sha256": "8522e9f347aed9f03ec591d05fc286a698c1b11a1a6d3e994e92727d24c6f352",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.9.40"
+      "version": "0.9.46"
     },
     "fuchsia_remote_debug_protocol": {
       "dependency": "transitive",
@@ -950,11 +960,11 @@
       "dependency": "direct main",
       "description": {
         "name": "future_loading_dialog",
-        "sha256": "6227dddb32ad5c7d233a54668f862acb4beb5a5e0dde072de372347cc0799e63",
+        "sha256": "2718b1a308db452da32ab9bca9ad496ff92b683e217add9e92cf50520f90537e",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.2.4"
+      "version": "0.3.0"
     },
     "geolocator": {
       "dependency": "direct main",
@@ -1010,11 +1020,11 @@
       "dependency": "transitive",
       "description": {
         "name": "get_it",
-        "sha256": "529de303c739fca98cd7ece5fca500d8ff89649f1bb4b4e94fb20954abcd7468",
+        "sha256": "f79870884de16d689cf9a7d15eedf31ed61d750e813c538a6efb92660fea83c3",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "7.6.0"
+      "version": "7.6.4"
     },
     "glob": {
       "dependency": "transitive",
@@ -1030,11 +1040,21 @@
       "dependency": "direct main",
       "description": {
         "name": "go_router",
-        "sha256": "2aa884667eeda3a1c461f31e72af1f77984ab0f29450d8fb12ec1f7bc53eea14",
+        "sha256": "c247a4f76071c3b97bb5ae8912968870d5565644801c5e09f3bc961b4d874895",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "12.1.1"
+    },
+    "gradient_borders": {
+      "dependency": "transitive",
+      "description": {
+        "name": "gradient_borders",
+        "sha256": "69eeaff519d145a4c6c213ada1abae386bcc8981a4970d923e478ce7ba19e309",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "10.1.0"
+      "version": "1.0.0"
     },
     "highlighter": {
       "dependency": "transitive",
@@ -1067,7 +1087,7 @@
       "version": "1.1.0"
     },
     "html": {
-      "dependency": "transitive",
+      "dependency": "direct main",
       "description": {
         "name": "html",
         "sha256": "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a",
@@ -1110,91 +1130,91 @@
       "dependency": "transitive",
       "description": {
         "name": "image",
-        "sha256": "a72242c9a0ffb65d03de1b7113bc4e189686fc07c7147b8b41811d0dd0e0d9bf",
+        "sha256": "028f61960d56f26414eb616b48b04eb37d700cbe477b7fb09bf1d7ce57fd9271",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "4.0.17"
+      "version": "4.1.3"
     },
     "image_picker": {
       "dependency": "direct main",
       "description": {
         "name": "image_picker",
-        "sha256": "841837258e0b42c80946c43443054fc726f5e8aa84a97f363eb9ef0d45b33c14",
+        "sha256": "7d7f2768df2a8b0a3cefa5ef4f84636121987d403130e70b17ef7e2cf650ba84",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.0.2"
+      "version": "1.0.4"
     },
     "image_picker_android": {
       "dependency": "transitive",
       "description": {
         "name": "image_picker_android",
-        "sha256": "8179b54039b50eee561676232304f487602e2950ffb3e8995ed9034d6505ca34",
+        "sha256": "d6a6e78821086b0b737009b09363018309bbc6de3fd88cc5c26bc2bb44a4957f",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.8.7+4"
+      "version": "0.8.8+2"
     },
     "image_picker_for_web": {
       "dependency": "transitive",
       "description": {
         "name": "image_picker_for_web",
-        "sha256": "8b6c160cdbe572199103a091c783685b236110e4a0fd7a4947f32ff5b7da8765",
+        "sha256": "50bc9ae6a77eea3a8b11af5eb6c661eeb858fdd2f734c2a4fd17086922347ef7",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.0.0"
+      "version": "3.0.1"
     },
     "image_picker_ios": {
       "dependency": "transitive",
       "description": {
         "name": "image_picker_ios",
-        "sha256": "b3e2f21feb28b24dd73a35d7ad6e83f568337c70afab5eabac876e23803f264b",
+        "sha256": "76ec722aeea419d03aa915c2c96bf5b47214b053899088c9abb4086ceecf97a7",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.8.8"
+      "version": "0.8.8+4"
     },
     "image_picker_linux": {
       "dependency": "transitive",
       "description": {
         "name": "image_picker_linux",
-        "sha256": "02cbc21fe1706b97942b575966e5fbbeaac535e76deef70d3a242e4afb857831",
+        "sha256": "4ed1d9bb36f7cd60aa6e6cd479779cc56a4cb4e4de8f49d487b1aaad831300fa",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.2.1"
+      "version": "0.2.1+1"
     },
     "image_picker_macos": {
       "dependency": "transitive",
       "description": {
         "name": "image_picker_macos",
-        "sha256": "cee2aa86c56780c13af2c77b5f2f72973464db204569e1ba2dd744459a065af4",
+        "sha256": "3f5ad1e8112a9a6111c46d0b57a7be2286a9a07fc6e1976fdf5be2bd31d4ff62",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.2.1"
+      "version": "0.2.1+1"
     },
     "image_picker_platform_interface": {
       "dependency": "transitive",
       "description": {
         "name": "image_picker_platform_interface",
-        "sha256": "c1134543ae2187e85299996d21c526b2f403854994026d575ae4cf30d7bb2a32",
+        "sha256": "ed9b00e63977c93b0d2d2b343685bed9c324534ba5abafbb3dfbd6a780b1b514",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.9.0"
+      "version": "2.9.1"
     },
     "image_picker_windows": {
       "dependency": "transitive",
       "description": {
         "name": "image_picker_windows",
-        "sha256": "c3066601ea42113922232c7b7b3330a2d86f029f685bba99d82c30e799914952",
+        "sha256": "6ad07afc4eb1bc25f3a01084d28520496c4a3bb0cb13685435838167c9dcedeb",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.2.1"
+      "version": "0.2.1+1"
     },
     "import_sorter": {
       "dependency": "direct dev",
@@ -1232,6 +1252,16 @@
       "source": "hosted",
       "version": "0.18.1"
     },
+    "io": {
+      "dependency": "transitive",
+      "description": {
+        "name": "io",
+        "sha256": "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.0.4"
+    },
     "js": {
       "dependency": "transitive",
       "description": {
@@ -1256,31 +1286,31 @@
       "dependency": "direct main",
       "description": {
         "name": "just_audio",
-        "sha256": "890cd0fc41a1a4530c171e375a2a3fb6a09d84e9d508c5195f40bcff54330327",
+        "sha256": "b607cd1a43bac03d85c3aaee00448ff4a589ef2a77104e3d409889ff079bf823",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.9.34"
+      "version": "0.9.36"
     },
     "just_audio_platform_interface": {
       "dependency": "transitive",
       "description": {
         "name": "just_audio_platform_interface",
-        "sha256": "d8409da198bbc59426cd45d4c92fca522a2ec269b576ce29459d6d6fcaeb44df",
+        "sha256": "c3dee0014248c97c91fe6299edb73dc4d6c6930a2f4f713579cd692d9e47f4a1",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "4.2.1"
+      "version": "4.2.2"
     },
     "just_audio_web": {
       "dependency": "transitive",
       "description": {
         "name": "just_audio_web",
-        "sha256": "ff62f733f437b25a0ff590f0e295fa5441dcb465f1edbdb33b3dea264705bc13",
+        "sha256": "134356b0fe3d898293102b33b5fd618831ffdc72bb7a1b726140abdf22772b70",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.4.8"
+      "version": "0.4.9"
     },
     "keyboard_shortcuts": {
       "dependency": "direct main",
@@ -1317,11 +1347,11 @@
       "dependency": "transitive",
       "description": {
         "name": "lints",
-        "sha256": "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452",
+        "sha256": "cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.1.1"
+      "version": "3.0.0"
     },
     "list_counter": {
       "dependency": "transitive",
@@ -1357,31 +1387,31 @@
       "dependency": "transitive",
       "description": {
         "name": "macos_ui",
-        "sha256": "b739149b812c47e5ff10a00c9fdf7315f22ac5cd1fdbd447a6b7ffee31472717",
+        "sha256": "cc499122655c61728185561e9006af4b239f9526f98d7b2cbf42124e9044a0ff",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.0.0"
+      "version": "2.0.2"
     },
     "macos_window_utils": {
       "dependency": "transitive",
       "description": {
         "name": "macos_window_utils",
-        "sha256": "43a90473f8786f00f07203e6819dab67e032f8896dafa4a6f85fbc71fba32c0b",
+        "sha256": "b3dfd47bbc605f0e315af684b50370a8f84932267aaa542098063fa384d593bd",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.2.0"
+      "version": "1.4.0"
     },
     "markdown": {
       "dependency": "transitive",
       "description": {
         "name": "markdown",
-        "sha256": "01512006c8429f604eb10f9848717baeaedf99e991d14a50d540d9beff08e5c6",
+        "sha256": "acf35edccc0463a9d7384e437c015a3535772e09714cf60e07eeef3a15870dcd",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "4.0.1"
+      "version": "7.1.1"
     },
     "matcher": {
       "dependency": "transitive",
@@ -1407,41 +1437,31 @@
       "dependency": "direct main",
       "description": {
         "name": "matrix",
-        "sha256": "10389562a4562db6150291b538e025a9a1b7a79998a71d38cb5c78a34ca6b007",
+        "sha256": "ae57870b14484044896a07abbc102b29cfafcfe38c382e954ba057e63196afdd",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.22.3"
+      "version": "0.25.5"
     },
     "matrix_api_lite": {
       "dependency": "transitive",
       "description": {
         "name": "matrix_api_lite",
-        "sha256": "e5304b33b16d60863533836717be808845bf94cd0e3a339ef146d9321e6b59b7",
+        "sha256": "62bdd1dffb956e956863ba21e52109157502342b749e4728f4105f0c6d73a254",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.7.1"
-    },
-    "matrix_homeserver_recommendations": {
-      "dependency": "direct main",
-      "description": {
-        "name": "matrix_homeserver_recommendations",
-        "sha256": "d372a7357676106897134dac67beb3ac2bb8753922fd0d808f18cf7e0574001a",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "0.3.0"
+      "version": "1.7.2"
     },
     "meta": {
       "dependency": "transitive",
       "description": {
         "name": "meta",
-        "sha256": "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3",
+        "sha256": "a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.9.1"
+      "version": "1.10.0"
     },
     "mgrs_dart": {
       "dependency": "transitive",
@@ -1467,21 +1487,21 @@
       "dependency": "direct dev",
       "description": {
         "name": "msix",
-        "sha256": "76c87b8207323803169626a55afd78bbb8413c984df349a76598b9fbf9224677",
+        "sha256": "957d04eee260e4bd15bec1fdb988dfc73718285e201cf89d97ef01ef38e66d4c",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.16.1"
+      "version": "3.16.6"
     },
     "native_imaging": {
       "dependency": "direct main",
       "description": {
         "name": "native_imaging",
-        "sha256": "9f96eafb6d84ec934262caf36b60e236d1c4507ed6555a1effc117d463ef5932",
+        "sha256": "182ccd8e0815a8a2158500ef66c828c030f6b9e05783e41e22f33bbcfd46a3d5",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.1.0"
+      "version": "0.1.1"
     },
     "nested": {
       "dependency": "transitive",
@@ -1493,16 +1513,6 @@
       "source": "hosted",
       "version": "1.0.0"
     },
-    "nm": {
-      "dependency": "transitive",
-      "description": {
-        "name": "nm",
-        "sha256": "2c9aae4127bdc8993206464fcc063611e0e36e72018696cd9631023a31b24254",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "0.5.0"
-    },
     "olm": {
       "dependency": "transitive",
       "description": {
@@ -1527,11 +1537,11 @@
       "dependency": "direct main",
       "description": {
         "name": "package_info_plus",
-        "sha256": "6ff267fcd9d48cb61c8df74a82680e8b82e940231bb5f68356672fde0397334a",
+        "sha256": "7e76fad405b3e4016cd39d08f455a4eb5199723cf594cd1b8916d47140d93017",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "4.1.0"
+      "version": "4.2.0"
     },
     "package_info_plus_platform_interface": {
       "dependency": "transitive",
@@ -1577,171 +1587,171 @@
       "dependency": "direct main",
       "description": {
         "name": "path_provider",
-        "sha256": "909b84830485dbcd0308edf6f7368bc8fd76afa26a270420f34cabea2a6467a0",
+        "sha256": "a1aa8aaa2542a6bc57e381f132af822420216c80d4781f7aa085ca3229208aaa",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.1.0"
+      "version": "2.1.1"
     },
     "path_provider_android": {
       "dependency": "transitive",
       "description": {
         "name": "path_provider_android",
-        "sha256": "5d44fc3314d969b84816b569070d7ace0f1dea04bd94a83f74c4829615d22ad8",
+        "sha256": "e595b98692943b4881b219f0a9e3945118d3c16bd7e2813f98ec6e532d905f72",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.1.0"
+      "version": "2.2.1"
     },
     "path_provider_foundation": {
       "dependency": "transitive",
       "description": {
         "name": "path_provider_foundation",
-        "sha256": "1b744d3d774e5a879bb76d6cd1ecee2ba2c6960c03b1020cd35212f6aa267ac5",
+        "sha256": "19314d595120f82aca0ba62787d58dde2cc6b5df7d2f0daf72489e38d1b57f2d",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.3.0"
+      "version": "2.3.1"
     },
     "path_provider_linux": {
       "dependency": "transitive",
       "description": {
         "name": "path_provider_linux",
-        "sha256": "ba2b77f0c52a33db09fc8caf85b12df691bf28d983e84cf87ff6d693cfa007b3",
+        "sha256": "f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.2.0"
+      "version": "2.2.1"
     },
     "path_provider_platform_interface": {
       "dependency": "transitive",
       "description": {
         "name": "path_provider_platform_interface",
-        "sha256": "bced5679c7df11190e1ddc35f3222c858f328fff85c3942e46e7f5589bf9eb84",
+        "sha256": "94b1e0dd80970c1ce43d5d4e050a9918fce4f4a775e6142424c30a29a363265c",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.1.0"
+      "version": "2.1.1"
     },
     "path_provider_windows": {
       "dependency": "transitive",
       "description": {
         "name": "path_provider_windows",
-        "sha256": "ee0e0d164516b90ae1f970bdf29f726f1aa730d7cfc449ecc74c495378b705da",
+        "sha256": "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.2.0"
+      "version": "2.2.1"
     },
     "permission_handler": {
       "dependency": "direct main",
       "description": {
         "name": "permission_handler",
-        "sha256": "63e5216aae014a72fe9579ccd027323395ce7a98271d9defa9d57320d001af81",
+        "sha256": "860c6b871c94c78e202dc69546d4d8fd84bd59faeb36f8fb9888668a53ff4f78",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "10.4.3"
+      "version": "11.1.0"
     },
     "permission_handler_android": {
       "dependency": "transitive",
       "description": {
         "name": "permission_handler_android",
-        "sha256": "2ffaf52a21f64ac9b35fe7369bb9533edbd4f698e5604db8645b1064ff4cf221",
+        "sha256": "2f1bec180ee2f5665c22faada971a8f024761f632e93ddc23310487df52dcfa6",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "10.3.3"
+      "version": "12.0.1"
     },
     "permission_handler_apple": {
       "dependency": "transitive",
       "description": {
         "name": "permission_handler_apple",
-        "sha256": "99e220bce3f8877c78e4ace901082fb29fa1b4ebde529ad0932d8d664b34f3f5",
+        "sha256": "1a816084338ada8d574b1cb48390e6e8b19305d5120fe3a37c98825bacc78306",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "9.1.4"
+      "version": "9.2.0"
+    },
+    "permission_handler_html": {
+      "dependency": "transitive",
+      "description": {
+        "name": "permission_handler_html",
+        "sha256": "d96ff56a757b7f04fa825c469d296c5aebc55f743e87bd639fef91a466a24da8",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.1.0+1"
     },
     "permission_handler_platform_interface": {
       "dependency": "transitive",
       "description": {
         "name": "permission_handler_platform_interface",
-        "sha256": "7c6b1500385dd1d2ca61bb89e2488ca178e274a69144d26bbd65e33eae7c02a9",
+        "sha256": "d87349312f7eaf6ce0adaf668daf700ac5b06af84338bd8b8574dfbd93ffe1a1",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.11.3"
+      "version": "4.0.2"
     },
     "permission_handler_windows": {
       "dependency": "transitive",
       "description": {
         "name": "permission_handler_windows",
-        "sha256": "cc074aace208760f1eee6aa4fae766b45d947df85bc831cde77009cdb4720098",
+        "sha256": "1e8640c1e39121128da6b816d236e714d2cf17fac5a105dd6acdd3403a628004",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.1.3"
+      "version": "0.2.0"
     },
     "petitparser": {
       "dependency": "transitive",
       "description": {
         "name": "petitparser",
-        "sha256": "cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "5.4.0"
-    },
-    "pin_code_text_field": {
-      "dependency": "direct main",
-      "description": {
-        "name": "pin_code_text_field",
-        "sha256": "3484c3ed4731327688734596d1fba1741f75da19366055116ecedcdffd87741a",
+        "sha256": "eeb2d1428ee7f4170e2bd498827296a18d4e7fc462b71727d111c0ac7707cfa6",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.8.0"
+      "version": "6.0.1"
     },
     "platform": {
       "dependency": "transitive",
       "description": {
         "name": "platform",
-        "sha256": "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76",
+        "sha256": "ae68c7bfcd7383af3629daafb32fb4e8681c7154428da4febcff06200585f102",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.1.0"
+      "version": "3.1.2"
     },
     "platform_detect": {
       "dependency": "transitive",
       "description": {
         "name": "platform_detect",
-        "sha256": "14afcb6ffcd93745e39a288db53d1d6522ea25d71f7993c13a367a86c437b54d",
+        "sha256": "08f4ee79c0e1c4858d37e06b22352a3ebdef5466b613749a3adb03e703d4f5b0",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.0.7"
+      "version": "2.0.11"
     },
     "plugin_platform_interface": {
       "dependency": "transitive",
       "description": {
         "name": "plugin_platform_interface",
-        "sha256": "43798d895c929056255600343db8f049921cbec94d31ec87f1dc5c16c01935dd",
+        "sha256": "f4f88d4a900933e7267e2b353594774fc0d07fb072b47eedcd5b54e1ea3269f8",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.1.5"
+      "version": "2.1.7"
     },
     "pointer_interceptor": {
       "dependency": "transitive",
       "description": {
         "name": "pointer_interceptor",
-        "sha256": "6aa680b30d96dccef496933d00208ad25f07e047f644dc98ce03ec6141633a9a",
+        "sha256": "adf7a637f97c077041d36801b43be08559fd4322d2127b3f20bb7be1b9eebc22",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.9.3+4"
+      "version": "0.9.3+7"
     },
     "pointycastle": {
       "dependency": "transitive",
@@ -1787,11 +1797,11 @@
       "dependency": "direct main",
       "description": {
         "name": "provider",
-        "sha256": "cdbe7530b12ecd9eb455bdaa2fcb8d4dad22e80b8afb4798b41479d5ce26847f",
+        "sha256": "9a96a0a19b594dbc5bf0f1f27d2bc67d5f95957359b461cd9feb44ed6ae75096",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "6.0.5"
+      "version": "6.1.1"
     },
     "pub_semver": {
       "dependency": "transitive",
@@ -1813,6 +1823,16 @@
       "source": "hosted",
       "version": "0.3.0"
     },
+    "pubspec_parse": {
+      "dependency": "transitive",
+      "description": {
+        "name": "pubspec_parse",
+        "sha256": "c63b2876e58e194e4b0828fcb080ad0e06d051cb607a6be51a9e084f47cb9367",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.2.3"
+    },
     "punycode": {
       "dependency": "direct main",
       "description": {
@@ -1947,11 +1967,11 @@
       "dependency": "transitive",
       "description": {
         "name": "remove_emoji",
-        "sha256": "d75024ae134328c38871c0fe73ada15ebeb635fca8903d039f5090a3e902c2b2",
+        "sha256": "ed9e8463e8c9ca05b86fcddd4c0dbd2c2605a50d267f4ffa05496607924809e3",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.0.9"
+      "version": "0.0.10"
     },
     "rxdart": {
       "dependency": "transitive",
@@ -1997,91 +2017,91 @@
       "dependency": "direct main",
       "description": {
         "name": "share_plus",
-        "sha256": "6cec740fa0943a826951223e76218df002804adb588235a8910dc3d6b0654e11",
+        "sha256": "f74fc3f1cbd99f39760182e176802f693fa0ec9625c045561cfad54681ea93dd",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "7.1.0"
+      "version": "7.2.1"
     },
     "share_plus_platform_interface": {
       "dependency": "transitive",
       "description": {
         "name": "share_plus_platform_interface",
-        "sha256": "357412af4178d8e11d14f41723f80f12caea54cf0d5cd29af9dcdab85d58aea7",
+        "sha256": "df08bc3a07d01f5ea47b45d03ffcba1fa9cd5370fb44b3f38c70e42cced0f956",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.3.0"
+      "version": "3.3.1"
     },
     "shared_preferences": {
       "dependency": "direct main",
       "description": {
         "name": "shared_preferences",
-        "sha256": "0344316c947ffeb3a529eac929e1978fcd37c26be4e8468628bac399365a3ca1",
+        "sha256": "81429e4481e1ccfb51ede496e916348668fd0921627779233bd24cc3ff6abd02",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.2.0"
+      "version": "2.2.2"
     },
     "shared_preferences_android": {
       "dependency": "transitive",
       "description": {
         "name": "shared_preferences_android",
-        "sha256": "fe8401ec5b6dcd739a0fe9588802069e608c3fdbfd3c3c93e546cf2f90438076",
+        "sha256": "8568a389334b6e83415b6aae55378e158fbc2314e074983362d20c562780fb06",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.2.0"
+      "version": "2.2.1"
     },
     "shared_preferences_foundation": {
       "dependency": "transitive",
       "description": {
         "name": "shared_preferences_foundation",
-        "sha256": "d29753996d8eb8f7619a1f13df6ce65e34bc107bef6330739ed76f18b22310ef",
+        "sha256": "7bf53a9f2d007329ee6f3df7268fd498f8373602f943c975598bbb34649b62a7",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.3.3"
+      "version": "2.3.4"
     },
     "shared_preferences_linux": {
       "dependency": "transitive",
       "description": {
         "name": "shared_preferences_linux",
-        "sha256": "71d6806d1449b0a9d4e85e0c7a917771e672a3d5dc61149cc9fac871115018e1",
+        "sha256": "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.3.0"
+      "version": "2.3.2"
     },
     "shared_preferences_platform_interface": {
       "dependency": "transitive",
       "description": {
         "name": "shared_preferences_platform_interface",
-        "sha256": "23b052f17a25b90ff2b61aad4cc962154da76fb62848a9ce088efe30d7c50ab1",
+        "sha256": "d4ec5fc9ebb2f2e056c617112aa75dcf92fc2e4faaf2ae999caa297473f75d8a",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.3.0"
+      "version": "2.3.1"
     },
     "shared_preferences_web": {
       "dependency": "transitive",
       "description": {
         "name": "shared_preferences_web",
-        "sha256": "7347b194fb0bbeb4058e6a4e87ee70350b6b2b90f8ac5f8bd5b3a01548f6d33a",
+        "sha256": "7b15ffb9387ea3e237bb7a66b8a23d2147663d391cafc5c8f37b2e7b4bde5d21",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.2.0"
+      "version": "2.2.2"
     },
     "shared_preferences_windows": {
       "dependency": "transitive",
       "description": {
         "name": "shared_preferences_windows",
-        "sha256": "f95e6a43162bce43c9c3405f3eb6f39e5b5d11f65fab19196cf8225e2777624d",
+        "sha256": "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.3.0"
+      "version": "2.3.2"
     },
     "sky_engine": {
       "dependency": "transitive",
@@ -2110,7 +2130,7 @@
       "version": "1.10.0"
     },
     "sqflite": {
-      "dependency": "transitive",
+      "dependency": "direct main",
       "description": {
         "name": "sqflite",
         "sha256": "591f1602816e9c31377d5f008c2d9ef7b8aca8941c3f89cc5fd9d84da0c38a9a",
@@ -2123,31 +2143,61 @@
       "dependency": "transitive",
       "description": {
         "name": "sqflite_common",
-        "sha256": "1b92f368f44b0dee2425bb861cfa17b6f6cf3961f762ff6f941d20b33355660a",
+        "sha256": "bb4738f15b23352822f4c42a531677e5c6f522e079461fd240ead29d8d8a54a6",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.5.0+2"
+    },
+    "sqflite_common_ffi": {
+      "dependency": "direct main",
+      "description": {
+        "name": "sqflite_common_ffi",
+        "sha256": "35d2fce1e971707c227cc4775cc017d5eafe06c2654c3435ebd5c3ad6c170f5f",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.3.0+4"
+    },
+    "sqflite_sqlcipher": {
+      "dependency": "direct main",
+      "description": {
+        "name": "sqflite_sqlcipher",
+        "sha256": "e1dfb55bf21ee5a18c43f28faa4291272a801da4ab34a6ba9973b6c0e1ed77da",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.2.1"
+    },
+    "sqlite3": {
+      "dependency": "transitive",
+      "description": {
+        "name": "sqlite3",
+        "sha256": "db65233e6b99e99b2548932f55a987961bc06d82a31a0665451fa0b4fff4c3fb",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.5.0"
+      "version": "2.1.0"
     },
     "stack_trace": {
       "dependency": "transitive",
       "description": {
         "name": "stack_trace",
-        "sha256": "c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5",
+        "sha256": "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.11.0"
+      "version": "1.11.1"
     },
     "stream_channel": {
       "dependency": "transitive",
       "description": {
         "name": "stream_channel",
-        "sha256": "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8",
+        "sha256": "ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.1.1"
+      "version": "2.1.2"
     },
     "string_scanner": {
       "dependency": "transitive",
@@ -2203,11 +2253,11 @@
       "dependency": "transitive",
       "description": {
         "name": "test_api",
-        "sha256": "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8",
+        "sha256": "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.6.0"
+      "version": "0.6.1"
     },
     "timezone": {
       "dependency": "transitive",
@@ -2313,41 +2363,41 @@
       "dependency": "direct main",
       "description": {
         "name": "unifiedpush",
-        "sha256": "083863337eae48a3d5e30b41964c7c025a6e0e77c3f9c74340d5ff7bfa4e8c85",
+        "sha256": "ef7f3ae6139d27169604e3844379ef7929af573a2be21d9e82187f44ab7b9a32",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "5.0.0"
+      "version": "5.0.1"
     },
     "unifiedpush_android": {
       "dependency": "transitive",
       "description": {
         "name": "unifiedpush_android",
-        "sha256": "559124eb1d6bcc5d8f422c8b9a942e52cc704858e6f0afad4c449feef654f1a3",
+        "sha256": "19fcdd2671c46bd074efbb80c43cedd0bcddd1fc0cfd3e2f74aec03fb0659d58",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.1.2"
+      "version": "2.2.0"
     },
     "unifiedpush_platform_interface": {
       "dependency": "transitive",
       "description": {
         "name": "unifiedpush_platform_interface",
-        "sha256": "b973137572f84b67656b18032f5047d327cffc5ab77ec4230d2459b1144ccf84",
+        "sha256": "7782b18a15d22bb184fa766ef1e0c675eef862055ff815453df7041dfd026146",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.0.0"
+      "version": "2.0.1"
     },
     "universal_html": {
       "dependency": "direct main",
       "description": {
         "name": "universal_html",
-        "sha256": "a5cc5a84188e5d3e58f3ed77fe3dd4575dc1f68aa7c89e51b5b4105b9aab3b9d",
+        "sha256": "56536254004e24d9d8cfdb7dbbf09b74cf8df96729f38a2f5c238163e3d58971",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.2.3"
+      "version": "2.2.4"
     },
     "universal_io": {
       "dependency": "transitive",
@@ -2373,81 +2423,81 @@
       "dependency": "direct main",
       "description": {
         "name": "url_launcher",
-        "sha256": "781bd58a1eb16069412365c98597726cd8810ae27435f04b3b4d3a470bacd61e",
+        "sha256": "b1c9e98774adf8820c96fbc7ae3601231d324a7d5ebd8babe27b6dfac91357ba",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "6.1.12"
+      "version": "6.2.1"
     },
     "url_launcher_android": {
       "dependency": "transitive",
       "description": {
         "name": "url_launcher_android",
-        "sha256": "3dd2388cc0c42912eee04434531a26a82512b9cb1827e0214430c9bcbddfe025",
+        "sha256": "31222ffb0063171b526d3e569079cf1f8b294075ba323443fdc690842bfd4def",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "6.0.38"
+      "version": "6.2.0"
     },
     "url_launcher_ios": {
       "dependency": "transitive",
       "description": {
         "name": "url_launcher_ios",
-        "sha256": "9af7ea73259886b92199f9e42c116072f05ff9bea2dcb339ab935dfc957392c2",
+        "sha256": "bba3373219b7abb6b5e0d071b0fe66dfbe005d07517a68e38d4fc3638f35c6d3",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "6.1.4"
+      "version": "6.2.1"
     },
     "url_launcher_linux": {
       "dependency": "transitive",
       "description": {
         "name": "url_launcher_linux",
-        "sha256": "207f4ddda99b95b4d4868320a352d374b0b7e05eefad95a4a26f57da413443f5",
+        "sha256": "9f2d390e096fdbe1e6e6256f97851e51afc2d9c423d3432f1d6a02a8a9a8b9fd",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.0.5"
+      "version": "3.1.0"
     },
     "url_launcher_macos": {
       "dependency": "transitive",
       "description": {
         "name": "url_launcher_macos",
-        "sha256": "1c4fdc0bfea61a70792ce97157e5cc17260f61abbe4f39354513f39ec6fd73b1",
+        "sha256": "b7244901ea3cf489c5335bdacda07264a6e960b1c1b1a9f91e4bc371d9e68234",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.0.6"
+      "version": "3.1.0"
     },
     "url_launcher_platform_interface": {
       "dependency": "transitive",
       "description": {
         "name": "url_launcher_platform_interface",
-        "sha256": "bfdfa402f1f3298637d71ca8ecfe840b4696698213d5346e9d12d4ab647ee2ea",
+        "sha256": "980e8d9af422f477be6948bdfb68df8433be71f5743a188968b0c1b887807e50",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.1.3"
+      "version": "2.2.0"
     },
     "url_launcher_web": {
       "dependency": "transitive",
       "description": {
         "name": "url_launcher_web",
-        "sha256": "cc26720eefe98c1b71d85f9dc7ef0cada5132617046369d9dc296b3ecaa5cbb4",
+        "sha256": "138bd45b3a456dcfafc46d1a146787424f8d2edfbf2809c9324361e58f851cf7",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.0.18"
+      "version": "2.2.1"
     },
     "url_launcher_windows": {
       "dependency": "transitive",
       "description": {
         "name": "url_launcher_windows",
-        "sha256": "7967065dd2b5fccc18c653b97958fdf839c5478c28e767c61ee879f4e7882422",
+        "sha256": "7754a1ad30ee896b265f8d14078b0513a4dba28d358eabb9d5f339886f4a1adc",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.0.7"
+      "version": "3.1.0"
     },
     "uuid": {
       "dependency": "transitive",
@@ -2463,31 +2513,31 @@
       "dependency": "transitive",
       "description": {
         "name": "vector_graphics",
-        "sha256": "670f6e07aca990b4a2bcdc08a784193c4ccdd1932620244c3a86bb72a0eac67f",
+        "sha256": "0f0c746dd2d6254a0057218ff980fc7f5670fd0fcf5e4db38a490d31eed4ad43",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.1.7"
+      "version": "1.1.9+1"
     },
     "vector_graphics_codec": {
       "dependency": "transitive",
       "description": {
         "name": "vector_graphics_codec",
-        "sha256": "7451721781d967db9933b63f5733b1c4533022c0ba373a01bdd79d1a5457f69f",
+        "sha256": "0edf6d630d1bfd5589114138ed8fada3234deacc37966bec033d3047c29248b7",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.1.7"
+      "version": "1.1.9+1"
     },
     "vector_graphics_compiler": {
       "dependency": "transitive",
       "description": {
         "name": "vector_graphics_compiler",
-        "sha256": "80a13c613c8bde758b1464a1755a7b3a8f2b6cec61fbf0f5a53c94c30f03ba2e",
+        "sha256": "d24333727332d9bd20990f1483af4e09abdb9b1fc7c3db940b56ab5c42790c26",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.1.7"
+      "version": "1.1.9+1"
     },
     "vector_math": {
       "dependency": "transitive",
@@ -2503,11 +2553,11 @@
       "dependency": "direct main",
       "description": {
         "name": "vibration",
-        "sha256": "d81f665bcb201f586c295a21f3fe8f1cb6dc32c81a213a99e9c714ec8e811ce5",
+        "sha256": "63d4f6b03e38d106599da18e786d5edcd02354433a4ed478fccbbcfc347193ab",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.8.1"
+      "version": "1.8.3"
     },
     "video_compress": {
       "dependency": "direct main",
@@ -2523,51 +2573,51 @@
       "dependency": "direct main",
       "description": {
         "name": "video_player",
-        "sha256": "3fd106c74da32f336dc7feb65021da9b0207cb3124392935f1552834f7cce822",
+        "sha256": "e16f0a83601a78d165dabc17e4dac50997604eb9e4cc76e10fa219046b70cef3",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.7.0"
+      "version": "2.8.1"
     },
     "video_player_android": {
       "dependency": "transitive",
       "description": {
         "name": "video_player_android",
-        "sha256": "f338a5a396c845f4632959511cad3542cdf3167e1b2a1a948ef07f7123c03608",
+        "sha256": "3fe89ab07fdbce786e7eb25b58532d6eaf189ceddc091cb66cba712f8d9e8e55",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.4.9"
+      "version": "2.4.10"
     },
     "video_player_avfoundation": {
       "dependency": "transitive",
       "description": {
         "name": "video_player_avfoundation",
-        "sha256": "f5f5b7fe8c865be8a57fe80c2dca130772e1db775b7af4e5c5aa1905069cfc6c",
+        "sha256": "bc923884640d6dc403050586eb40713cdb8d1d84e6886d8aca50ab04c59124c2",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.4.9"
+      "version": "2.5.2"
     },
     "video_player_platform_interface": {
       "dependency": "transitive",
       "description": {
         "name": "video_player_platform_interface",
-        "sha256": "1ca9acd7a0fb15fb1a990cb554e6f004465c6f37c99d2285766f08a4b2802988",
+        "sha256": "be72301bf2c0150ab35a8c34d66e5a99de525f6de1e8d27c0672b836fe48f73a",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "6.2.0"
+      "version": "6.2.1"
     },
     "video_player_web": {
       "dependency": "transitive",
       "description": {
         "name": "video_player_web",
-        "sha256": "44ce41424d104dfb7cf6982cc6b84af2b007a24d126406025bf40de5d481c74c",
+        "sha256": "ab7a462b07d9ca80bed579e30fb3bce372468f1b78642e0911b10600f2c5cb5b",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.0.16"
+      "version": "2.1.2"
     },
     "visibility_detector": {
       "dependency": "transitive",
@@ -2583,31 +2633,11 @@
       "dependency": "transitive",
       "description": {
         "name": "vm_service",
-        "sha256": "c620a6f783fa22436da68e42db7ebbf18b8c44b9a46ab911f666ff09ffd9153f",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "11.7.1"
-    },
-    "wakelock": {
-      "dependency": "direct main",
-      "description": {
-        "name": "wakelock",
-        "sha256": "769ecf42eb2d07128407b50cb93d7c10bd2ee48f0276ef0119db1d25cc2f87db",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "0.6.2"
-    },
-    "wakelock_macos": {
-      "dependency": "transitive",
-      "description": {
-        "name": "wakelock_macos",
-        "sha256": "047c6be2f88cb6b76d02553bca5a3a3b95323b15d30867eca53a19a0a319d4cd",
+        "sha256": "c538be99af830f478718b51630ec1b6bee5e74e52c8a802d328d9e71d35d2583",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.4.0"
+      "version": "11.10.0"
     },
     "wakelock_platform_interface": {
       "dependency": "transitive",
@@ -2620,14 +2650,14 @@
       "version": "0.3.0"
     },
     "wakelock_plus": {
-      "dependency": "transitive",
+      "dependency": "direct main",
       "description": {
         "name": "wakelock_plus",
-        "sha256": "aac3f3258f01781ec9212df94eecef1eb9ba9350e106728def405baa096ba413",
+        "sha256": "f45a6c03aa3f8322e0a9d7f4a0482721c8789cb41d555407367650b8f9c26018",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.1.1"
+      "version": "1.1.3"
     },
     "wakelock_plus_platform_interface": {
       "dependency": "transitive",
@@ -2639,16 +2669,6 @@
       "source": "hosted",
       "version": "1.1.0"
     },
-    "wakelock_web": {
-      "dependency": "transitive",
-      "description": {
-        "name": "wakelock_web",
-        "sha256": "1b256b811ee3f0834888efddfe03da8d18d0819317f20f6193e2922b41a501b5",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "0.4.0"
-    },
     "wakelock_windows": {
       "dependency": "direct overridden",
       "description": {
@@ -2674,11 +2694,11 @@
       "dependency": "transitive",
       "description": {
         "name": "web",
-        "sha256": "dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10",
+        "sha256": "afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.1.4-beta"
+      "version": "0.3.0"
     },
     "webdriver": {
       "dependency": "transitive",
@@ -2694,31 +2714,31 @@
       "dependency": "direct main",
       "description": {
         "name": "webrtc_interface",
-        "sha256": "faec2b578f7cd588766843a8c59d4a0137c44de10b83341ce7bec05e104614d7",
+        "sha256": "2efbd3e4e5ebeb2914253bcc51dafd3053c4b87b43f3076c74835a9deecbae3a",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.1.1"
+      "version": "1.1.2"
     },
     "win32": {
       "dependency": "transitive",
       "description": {
         "name": "win32",
-        "sha256": "f2add6fa510d3ae152903412227bda57d0d5a8da61d2c39c1fb022c9429a41c0",
+        "sha256": "7c99c0e1e2fa190b48d25c81ca5e42036d5cac81430ef249027d97b0935c553f",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "5.0.6"
+      "version": "5.1.0"
     },
     "win32_registry": {
       "dependency": "transitive",
       "description": {
         "name": "win32_registry",
-        "sha256": "e4506d60b7244251bc59df15656a3093501c37fb5af02105a944d73eb95be4c9",
+        "sha256": "41fd8a189940d8696b1b810efb9abcf60827b6cbfab90b0c43e8439e3a39d85a",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.1.1"
+      "version": "1.1.2"
     },
     "window_to_front": {
       "dependency": "transitive",
@@ -2744,21 +2764,21 @@
       "dependency": "transitive",
       "description": {
         "name": "xdg_directories",
-        "sha256": "f0c26453a2d47aa4c2570c6a033246a3fc62da2fe23c7ffdd0a7495086dc0247",
+        "sha256": "589ada45ba9e39405c198fe34eb0f607cddb2108527e658136120892beac46d2",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.0.2"
+      "version": "1.0.3"
     },
     "xml": {
       "dependency": "transitive",
       "description": {
         "name": "xml",
-        "sha256": "5bc72e1e45e941d825fd7468b9b4cc3b9327942649aeb6fc5cdbf135f0a86e84",
+        "sha256": "af5e77e9b83f2f4adc5d3f0a4ece1c7f45a2467b695c2540381bac793e34e556",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "6.3.0"
+      "version": "6.4.2"
     },
     "yaml": {
       "dependency": "transitive",
@@ -2772,7 +2792,7 @@
     }
   },
   "sdks": {
-    "dart": ">=3.1.0-185.0.dev <4.0.0",
-    "flutter": ">=3.10.0"
+    "dart": ">=3.2.0 <4.0.0",
+    "flutter": ">=3.16.0"
   }
 }
diff --git a/pkgs/applications/networking/instant-messengers/fractal/Cargo.lock b/pkgs/applications/networking/instant-messengers/fractal/Cargo.lock
index d1771a9c5bc9..8d77d6a44c59 100644
--- a/pkgs/applications/networking/instant-messengers/fractal/Cargo.lock
+++ b/pkgs/applications/networking/instant-messengers/fractal/Cargo.lock
@@ -3,6 +3,18 @@
 version = 3
 
 [[package]]
+name = "accessory"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "850bb534b9dc04744fbbb71d30ad6d25a7e4cf6dc33e223c81ef3a92ebab4e0b"
+dependencies = [
+ "macroific",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.41",
+]
+
+[[package]]
 name = "addr2line"
 version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -108,9 +120,9 @@ checksum = "d301b3b94cb4b2f23d7917810addbbaff90738e0ca2be692bd027e70d7e0330c"
 
 [[package]]
 name = "aquamarine"
-version = "0.3.2"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df752953c49ce90719c7bf1fc587bc8227aed04732ea0c0f85e5397d7fdbd1a1"
+checksum = "d1da02abba9f9063d786eab1509833ebb2fac0f966862ca59439c76b9c566760"
 dependencies = [
  "include_dir",
  "itertools 0.10.5",
@@ -180,20 +192,22 @@ dependencies = [
 
 [[package]]
 name = "async-channel"
-version = "1.9.0"
+version = "2.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
+checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c"
 dependencies = [
  "concurrent-queue",
- "event-listener 2.5.3",
+ "event-listener 4.0.0",
+ "event-listener-strategy",
  "futures-core",
+ "pin-project-lite",
 ]
 
 [[package]]
 name = "async-compression"
-version = "0.4.4"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f658e2baef915ba0f26f1f7c42bfb8e12f532a01f449a090ded75ae7a07e9ba2"
+checksum = "bc2d0cfb2a7388d34f590e76686704c494ed7aaceed62ee1ba35cbf363abc2a5"
 dependencies = [
  "flate2",
  "futures-core",
@@ -224,22 +238,21 @@ dependencies = [
 
 [[package]]
 name = "async-io"
-version = "2.2.0"
+version = "2.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41ed9d5715c2d329bf1b4da8d60455b99b187f27ba726df2883799af9af60997"
+checksum = "6afaa937395a620e33dc6a742c593c01aced20aa376ffb0f628121198578ccc7"
 dependencies = [
- "async-lock 3.0.0",
+ "async-lock 3.2.0",
  "cfg-if",
  "concurrent-queue",
  "futures-io",
- "futures-lite 2.0.1",
+ "futures-lite 2.1.0",
  "parking",
- "polling 3.3.0",
- "rustix 0.38.21",
+ "polling 3.3.1",
+ "rustix 0.38.28",
  "slab",
  "tracing",
- "waker-fn",
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -253,11 +266,11 @@ dependencies = [
 
 [[package]]
 name = "async-lock"
-version = "3.0.0"
+version = "3.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45e900cdcd39bb94a14487d3f7ef92ca222162e6c7c3fe7cb3550ea75fb486ed"
+checksum = "7125e42787d53db9dd54261812ef17e937c95a51e4d291373b670342fa44310c"
 dependencies = [
- "event-listener 3.0.1",
+ "event-listener 4.0.0",
  "event-listener-strategy",
  "pin-project-lite",
 ]
@@ -279,10 +292,10 @@ dependencies = [
  "async-signal",
  "blocking",
  "cfg-if",
- "event-listener 3.0.1",
+ "event-listener 3.1.0",
  "futures-lite 1.13.0",
- "rustix 0.38.21",
- "windows-sys",
+ "rustix 0.38.28",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -293,7 +306,7 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.41",
 ]
 
 [[package]]
@@ -312,16 +325,16 @@ version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
 dependencies = [
- "async-io 2.2.0",
+ "async-io 2.2.2",
  "async-lock 2.8.0",
  "atomic-waker",
  "cfg-if",
  "futures-core",
  "futures-io",
- "rustix 0.38.21",
+ "rustix 0.38.28",
  "signal-hook-registry",
  "slab",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -343,7 +356,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.41",
 ]
 
 [[package]]
@@ -360,7 +373,7 @@ checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.41",
 ]
 
 [[package]]
@@ -451,7 +464,7 @@ dependencies = [
  "regex",
  "rustc-hash",
  "shlex",
- "syn 2.0.39",
+ "syn 2.0.41",
 ]
 
 [[package]]
@@ -517,16 +530,16 @@ dependencies = [
 
 [[package]]
 name = "blocking"
-version = "1.4.1"
+version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c36a4d0d48574b3dd360b4b7d95cc651d2b6557b6402848a27d4b228a473e2a"
+checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
 dependencies = [
  "async-channel",
- "async-lock 2.8.0",
+ "async-lock 3.2.0",
  "async-task",
  "fastrand 2.0.1",
  "futures-io",
- "futures-lite 1.13.0",
+ "futures-lite 2.1.0",
  "piper",
  "tracing",
 ]
@@ -692,7 +705,7 @@ dependencies = [
  "num-traits",
  "serde",
  "wasm-bindgen",
- "windows-targets",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
@@ -725,18 +738,18 @@ checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
 
 [[package]]
 name = "concurrent-queue"
-version = "2.3.0"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400"
+checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
 dependencies = [
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "const-oid"
-version = "0.9.5"
+version = "0.9.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f"
+checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
 
 [[package]]
 name = "const_panic"
@@ -767,9 +780,9 @@ checksum = "396de984970346b0d9e93d1415082923c679e5ae5c3ee3dcbd104f5610af126b"
 
 [[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",
@@ -777,9 +790,9 @@ dependencies = [
 
 [[package]]
 name = "core-foundation-sys"
-version = "0.8.4"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
 name = "cpufeatures"
@@ -801,9 +814,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.8"
+version = "0.5.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
+checksum = "14c3242926edf34aec4ac3a77108ad4854bffaa2e4ddc1824124ce59231302d5"
 dependencies = [
  "cfg-if",
  "crossbeam-utils",
@@ -811,9 +824,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-deque"
-version = "0.8.3"
+version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
+checksum = "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751"
 dependencies = [
  "cfg-if",
  "crossbeam-epoch",
@@ -822,22 +835,21 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.15"
+version = "0.9.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
+checksum = "2d2fe95351b870527a5d09bf563ed3c97c0cffb87cf1c78a591bf48bb218d9aa"
 dependencies = [
  "autocfg",
  "cfg-if",
  "crossbeam-utils",
  "memoffset 0.9.0",
- "scopeguard",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.16"
+version = "0.8.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
+checksum = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f"
 dependencies = [
  "cfg-if",
 ]
@@ -850,9 +862,9 @@ checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
 
 [[package]]
 name = "crypto-bigint"
-version = "0.5.3"
+version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "740fe28e594155f10cfc383984cbefd529d7396050557148f79cb0f621204124"
+checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76"
 dependencies = [
  "generic-array",
  "rand_core",
@@ -906,7 +918,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.41",
 ]
 
 [[package]]
@@ -954,7 +966,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "strsim",
- "syn 2.0.39",
+ "syn 2.0.41",
 ]
 
 [[package]]
@@ -976,14 +988,14 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
 dependencies = [
  "darling_core 0.20.3",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.41",
 ]
 
 [[package]]
 name = "data-encoding"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308"
+checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
 
 [[package]]
 name = "deadpool"
@@ -1008,9 +1020,9 @@ dependencies = [
 
 [[package]]
 name = "deadpool-sqlite"
-version = "0.6.0"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e4378b597d51ce5586885f99c9c9dfd15bf39638c032b74739355cf11fc6ed3"
+checksum = "b8010e36e12f3be22543a5e478b4af20aeead9a700dd69581a5e050a070fc22c"
 dependencies = [
  "deadpool",
  "deadpool-sync",
@@ -1027,6 +1039,18 @@ dependencies = [
 ]
 
 [[package]]
+name = "delegate-display"
+version = "2.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98a85201f233142ac819bbf6226e36d0b5e129a47bd325084674261c82d4cd66"
+dependencies = [
+ "macroific",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.41",
+]
+
+[[package]]
 name = "der"
 version = "0.7.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1047,14 +1071,14 @@ checksum = "5fe87ce4529967e0ba1dcf8450bab64d97dfd5010a6256187ffe2e43e6f0e049"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.41",
 ]
 
 [[package]]
 name = "deranged"
-version = "0.3.9"
+version = "0.3.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3"
+checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc"
 dependencies = [
  "powerfmt",
  "serde",
@@ -1122,7 +1146,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.41",
 ]
 
 [[package]]
@@ -1139,9 +1163,9 @@ checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d"
 
 [[package]]
 name = "ecdsa"
-version = "0.16.8"
+version = "0.16.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4b1e0c257a9e9f25f90ff76d7a68360ed497ee519c8e428d1825ef0000799d4"
+checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca"
 dependencies = [
  "der",
  "digest",
@@ -1164,15 +1188,16 @@ dependencies = [
 
 [[package]]
 name = "ed25519-dalek"
-version = "2.0.0"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7277392b266383ef8396db7fdeb1e77b6c52fed775f5df15bb24f35b72156980"
+checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0"
 dependencies = [
  "curve25519-dalek",
  "ed25519",
  "rand_core",
  "serde",
  "sha2",
+ "subtle",
  "zeroize",
 ]
 
@@ -1184,9 +1209,9 @@ checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
 
 [[package]]
 name = "elliptic-curve"
-version = "0.13.6"
+version = "0.13.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d97ca172ae9dc9f9b779a6e3a65d308f2af74e5b8c921299075bdb4a0370e914"
+checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47"
 dependencies = [
  "base16ct",
  "crypto-bigint",
@@ -1230,7 +1255,7 @@ checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.41",
 ]
 
 [[package]]
@@ -1241,12 +1266,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
 name = "errno"
-version = "0.3.5"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
 dependencies = [
  "libc",
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -1257,9 +1282,20 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
 
 [[package]]
 name = "event-listener"
-version = "3.0.1"
+version = "3.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01cec0252c2afff729ee6f00e903d479fba81784c8e2bd77447673471fdfaea1"
+checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener"
+version = "4.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "770d968249b5d99410d61f5bf89057f3199a077a04d087092f58e7d10692baae"
 dependencies = [
  "concurrent-queue",
  "parking",
@@ -1268,11 +1304,11 @@ dependencies = [
 
 [[package]]
 name = "event-listener-strategy"
-version = "0.3.0"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d96b852f1345da36d551b9473fa1e2b1eb5c5195585c6c018118bc92a8d91160"
+checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3"
 dependencies = [
- "event-listener 3.0.1",
+ "event-listener 4.0.0",
  "pin-project-lite",
 ]
 
@@ -1330,9 +1366,9 @@ dependencies = [
 
 [[package]]
 name = "fallible-iterator"
-version = "0.2.0"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7"
+checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649"
 
 [[package]]
 name = "fallible-streaming-iterator"
@@ -1341,6 +1377,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
 
 [[package]]
+name = "fancy_constructor"
+version = "1.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f71f317e4af73b2f8f608fac190c52eac4b1879d2145df1db2fe48881ca69435"
+dependencies = [
+ "macroific",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.41",
+]
+
+[[package]]
 name = "fastrand"
 version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1376,9 +1424,9 @@ dependencies = [
 
 [[package]]
 name = "fiat-crypto"
-version = "0.2.2"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a481586acf778f1b1455424c343f71124b048ffa5f4fc3f8f6ae9dc432dcb3c7"
+checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7"
 
 [[package]]
 name = "field-offset"
@@ -1438,16 +1486,16 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
 
 [[package]]
 name = "form_urlencoded"
-version = "1.2.0"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
 dependencies = [
  "percent-encoding",
 ]
 
 [[package]]
 name = "fractal"
-version = "5.0.0"
+version = "6.0.0"
 dependencies = [
  "ashpd",
  "djb_hash",
@@ -1506,28 +1554,12 @@ dependencies = [
 ]
 
 [[package]]
-name = "futures"
-version = "0.3.29"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-executor",
- "futures-io",
- "futures-sink",
- "futures-task",
- "futures-util",
-]
-
-[[package]]
 name = "futures-channel"
 version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb"
 dependencies = [
  "futures-core",
- "futures-sink",
 ]
 
 [[package]]
@@ -1570,9 +1602,9 @@ dependencies = [
 
 [[package]]
 name = "futures-lite"
-version = "2.0.1"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3831c2651acb5177cbd83943f3d9c8912c5ad03c76afcc0e9511ba568ec5ebb"
+checksum = "aeee267a1883f7ebef3700f262d2d54de95dfaf38189015a74fdc4e0c7ad8143"
 dependencies = [
  "futures-core",
  "pin-project-lite",
@@ -1586,7 +1618,7 @@ checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.41",
 ]
 
 [[package]]
@@ -1816,15 +1848,15 @@ dependencies = [
 
 [[package]]
 name = "gimli"
-version = "0.28.0"
+version = "0.28.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
 name = "gio"
-version = "0.18.3"
+version = "0.18.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "47d809baf02bdf1b5ef4ad3bf60dd9d4977149db4612b7bbb58e56aef168193b"
+checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -1854,9 +1886,9 @@ dependencies = [
 
 [[package]]
 name = "glib"
-version = "0.18.3"
+version = "0.18.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58cf801b6f7829fa76db37449ab67c9c98a2b1bf21076d9113225621e61a0fa6"
+checksum = "951bbd7fdc5c044ede9f05170f05a3ae9479239c3afdfe2d22d537a3add15c4e"
 dependencies = [
  "bitflags 2.4.1",
  "futures-channel",
@@ -1882,11 +1914,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "72793962ceece3863c2965d7f10c8786323b17c7adea75a515809fa20ab799a5"
 dependencies = [
  "heck",
- "proc-macro-crate 2.0.0",
+ "proc-macro-crate 2.0.1",
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.41",
 ]
 
 [[package]]
@@ -2008,9 +2040,9 @@ dependencies = [
 
 [[package]]
 name = "gst-plugin-gtk4"
-version = "0.11.1"
+version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ac4afae10b2ba4fd375e8a4e13ffe1e29b1b19831132317d89f03960c1a1d3c"
+checksum = "33970273495544e54d5f486d761b09d402f0cf8760990e1ea508bd5141f8ebeb"
 dependencies = [
  "gdk4-win32",
  "gst-plugin-version-helper",
@@ -2019,7 +2051,7 @@ dependencies = [
  "gstreamer-gl",
  "gstreamer-video",
  "gtk4",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -2029,14 +2061,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "334c37a15ca23861ad8159c8ff6e20f011aa2000defc5c9159096a28842f811b"
 dependencies = [
  "chrono",
- "toml_edit 0.20.7",
+ "toml_edit 0.20.2",
 ]
 
 [[package]]
 name = "gstreamer"
-version = "0.21.1"
+version = "0.21.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b369a1eb2f7db49920d3d590bd988c5fb56dbf2347e1efb60307fe953546ee5d"
+checksum = "ed97f98d186e63e49079b26af1a1b73e70ab7a2f450eb46a136f2bffc2bf12d5"
 dependencies = [
  "cfg-if",
  "futures-channel",
@@ -2051,6 +2083,7 @@ dependencies = [
  "num-rational 0.4.1",
  "option-operations",
  "paste",
+ "pin-project-lite",
  "pretty-hex",
  "smallvec",
  "thiserror",
@@ -2058,9 +2091,9 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-audio"
-version = "0.21.1"
+version = "0.21.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ba605da8e756873456eebb35184d2c2f2b2ead7af18c5bfdc6c012d6cf8b6ee"
+checksum = "36d1678eacb7677c1ffdcf220ada416b5fb68e87c33b77319f14bba169fbe3fc"
 dependencies = [
  "cfg-if",
  "glib",
@@ -2086,9 +2119,9 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-base"
-version = "0.21.0"
+version = "0.21.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fe38a6d5c1e516ce3fd6069e972a540d315448ed69fdadad739e6c6c6eb2a01"
+checksum = "cb150b6904a49052237fede7cc2e6479df6ced5043d95e6af8134bc141a3167f"
 dependencies = [
  "atomic_refcell",
  "cfg-if",
@@ -2113,9 +2146,9 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-gl"
-version = "0.21.1"
+version = "0.21.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5caa903b631a00d7748efc3906d9108678162c5e15b87f83868d95ee85951613"
+checksum = "3ecfb91128263c160448a915a15e430cfdc69317b1b087316222e0693bb51b90"
 dependencies = [
  "glib",
  "gstreamer",
@@ -2127,9 +2160,9 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-gl-sys"
-version = "0.21.1"
+version = "0.21.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88ba5f511a1c0b4693b9f01b2d6b7dd7f1b5b476a16b8b25a89f4265e8108c34"
+checksum = "d580971b3c99a667c9739812d499e6c5cadbb92873f984cd0d1d0b4e7346f1cd"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -2142,9 +2175,9 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-pbutils"
-version = "0.21.1"
+version = "0.21.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9614fc19b7bed81233e9e2142a59a6bb6a03a2006b7a6361a61d467619c56e4"
+checksum = "953055f80677b68b2f46f23859d9241df6b3dcf3ca8240db5f9ab50716255237"
 dependencies = [
  "glib",
  "gstreamer",
@@ -2172,9 +2205,9 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-play"
-version = "0.21.0"
+version = "0.21.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f55c41b4a9c101dff739f8230a2d92cd0fddb8313cc82887fbae0a723b240871"
+checksum = "ad2efa4c3f92fa5d5e51e95c83f3b847c9ad16e3498a65beaf721d324187f04a"
 dependencies = [
  "glib",
  "gstreamer",
@@ -2199,9 +2232,9 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-sys"
-version = "0.21.1"
+version = "0.21.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f86bf9de67a6ab7af67ac11588f4939e984a936030437219f269fe969d79ad8c"
+checksum = "564cda782b3e6eed1b81cb4798a06794db56440fb05b422505be689f34ce3bc4"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -2211,9 +2244,9 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-video"
-version = "0.21.1"
+version = "0.21.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01b4d3141362b3d44a684e697d2bc55fea73d023315449cda83f0f4324531d64"
+checksum = "e85b2a4d1d3b7a98ae03806c3ed5c2db89d6b37a5f138780b48de015d68715e5"
 dependencies = [
  "cfg-if",
  "futures-channel",
@@ -2222,13 +2255,14 @@ dependencies = [
  "gstreamer-base",
  "gstreamer-video-sys",
  "libc",
+ "thiserror",
 ]
 
 [[package]]
 name = "gstreamer-video-sys"
-version = "0.21.1"
+version = "0.21.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09cdc36baab839921b05d2468524da649f373dccc5f966c75e564029dc135b1c"
+checksum = "0302318d98e6b054501e485b6bb4ee20225823218f4a8660c182f115a33b16ee"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -2294,9 +2328,9 @@ dependencies = [
 
 [[package]]
 name = "h2"
-version = "0.3.21"
+version = "0.3.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833"
+checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178"
 dependencies = [
  "bytes",
  "fnv",
@@ -2304,7 +2338,7 @@ dependencies = [
  "futures-sink",
  "futures-util",
  "http",
- "indexmap 1.9.3",
+ "indexmap 2.1.0",
  "slab",
  "tokio",
  "tokio-util",
@@ -2337,9 +2371,9 @@ dependencies = [
 
 [[package]]
 name = "hashbrown"
-version = "0.14.2"
+version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 dependencies = [
  "ahash",
  "allocator-api2",
@@ -2351,14 +2385,14 @@ version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7"
 dependencies = [
- "hashbrown 0.14.2",
+ "hashbrown 0.14.3",
 ]
 
 [[package]]
 name = "hdrhistogram"
-version = "7.5.2"
+version = "7.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f19b9f54f7c7f55e31401bb647626ce0cf0f67b0004982ce815b3ee72a02aa8"
+checksum = "765c9198f173dd59ce26ff9f95ef0aafd0a0fe01fb9d72841bc5066a4c06511d"
 dependencies = [
  "byteorder",
  "num-traits",
@@ -2408,9 +2442,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",
 ]
@@ -2485,9 +2519,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",
@@ -2595,9 +2629,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
 
 [[package]]
 name = "idna"
-version = "0.4.0"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
 dependencies = [
  "unicode-bidi",
  "unicode-normalization",
@@ -2680,11 +2714,14 @@ dependencies = [
 
 [[package]]
 name = "indexed_db_futures"
-version = "0.3.0"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfbcff6ae46750b15cc594bfd277b188cbddcfdc1817848f97f03f26f8625b9e"
+checksum = "6cc2083760572ee02385ab8b7c02c20925d2dd1f97a1a25a8737a238608f1152"
 dependencies = [
+ "accessory",
  "cfg-if",
+ "delegate-display",
+ "fancy_constructor",
  "js-sys",
  "uuid",
  "wasm-bindgen",
@@ -2710,7 +2747,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
 dependencies = [
  "equivalent",
- "hashbrown 0.14.2",
+ "hashbrown 0.14.3",
  "serde",
 ]
 
@@ -2744,7 +2781,7 @@ checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
 dependencies = [
  "hermit-abi",
  "libc",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -2782,10 +2819,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "itertools"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0"
+dependencies = [
+ "either",
+]
+
+[[package]]
 name = "itoa"
-version = "1.0.9"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
 name = "jetscii"
@@ -2804,9 +2850,9 @@ dependencies = [
 
 [[package]]
 name = "js-sys"
-version = "0.3.65"
+version = "0.3.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8"
+checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -2831,9 +2877,9 @@ dependencies = [
 
 [[package]]
 name = "k256"
-version = "0.13.1"
+version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cadb76004ed8e97623117f3df85b17aaa6626ab0b0831e6573f104df16cd1bcc"
+checksum = "3f01b677d82ef7a676aa37e099defd83a28e15687112cafdd112d60236b6115b"
 dependencies = [
  "cfg-if",
  "ecdsa",
@@ -2845,9 +2891,9 @@ dependencies = [
 
 [[package]]
 name = "konst"
-version = "0.3.6"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "030400e39b2dff8beaa55986a17e0014ad657f569ca92426aafcb5e8e71faee7"
+checksum = "8d712a8c49d4274f8d8a5cf61368cb5f3c143d149882b1a2918129e53395fdb0"
 dependencies = [
  "const_panic",
  "konst_kernel",
@@ -2856,9 +2902,9 @@ dependencies = [
 
 [[package]]
 name = "konst_kernel"
-version = "0.3.6"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3376133edc39f027d551eb77b077c2865a0ef252b2e7d0dd6b6dc303db95d8b5"
+checksum = "dac6ea8c376b6e208a81cf39b8e82bebf49652454d98a4829e907dac16ef1790"
 dependencies = [
  "typewit",
 ]
@@ -2927,9 +2973,9 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.150"
+version = "0.2.151"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
+checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4"
 
 [[package]]
 name = "libloading"
@@ -3008,9 +3054,9 @@ dependencies = [
 
 [[package]]
 name = "libsqlite3-sys"
-version = "0.26.0"
+version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "afc22eff61b133b115c6e8c74e818c628d6d5e7a502afea6f64dee076dd94326"
+checksum = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716"
 dependencies = [
  "pkg-config",
  "vcpkg",
@@ -3033,9 +3079,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.10"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f"
+checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456"
 
 [[package]]
 name = "locale_config"
@@ -3082,6 +3128,53 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4"
 
 [[package]]
+name = "macroific"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f05c00ac596022625d01047c421a0d97d7f09a18e429187b341c201cb631b9dd"
+dependencies = [
+ "macroific_attr_parse",
+ "macroific_core",
+ "macroific_macro",
+]
+
+[[package]]
+name = "macroific_attr_parse"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd94d5da95b30ae6e10621ad02340909346ad91661f3f8c0f2b62345e46a2f67"
+dependencies = [
+ "cfg-if",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.41",
+]
+
+[[package]]
+name = "macroific_core"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "13198c120864097a565ccb3ff947672d969932b7975ebd4085732c9f09435e55"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.41",
+]
+
+[[package]]
+name = "macroific_macro"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0c9853143cbed7f1e41dc39fee95f9b361bec65c8dc2a01bf609be01b61f5ae"
+dependencies = [
+ "macroific_attr_parse",
+ "macroific_core",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.41",
+]
+
+[[package]]
 name = "malloc_buf"
 version = "0.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3124,8 +3217,9 @@ dependencies = [
 
 [[package]]
 name = "mas-http"
-version = "0.5.0-rc.2"
-source = "git+https://github.com/matrix-org/matrix-authentication-service?rev=357481b52e6dc092178a16b8a7d86df036aac608#357481b52e6dc092178a16b8a7d86df036aac608"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da6948721a2bc05e73f8029515e05b0c7deabb6fcec51ee7f033ecbfe60b7818"
 dependencies = [
  "bytes",
  "futures-util",
@@ -3148,8 +3242,9 @@ dependencies = [
 
 [[package]]
 name = "mas-iana"
-version = "0.5.0-rc.2"
-source = "git+https://github.com/matrix-org/matrix-authentication-service?rev=357481b52e6dc092178a16b8a7d86df036aac608#357481b52e6dc092178a16b8a7d86df036aac608"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c48820df73240471efb9fe90f90461b0029e4f0b7915e2df23633523635dfa3"
 dependencies = [
  "schemars",
  "serde",
@@ -3157,8 +3252,9 @@ dependencies = [
 
 [[package]]
 name = "mas-jose"
-version = "0.5.0-rc.2"
-source = "git+https://github.com/matrix-org/matrix-authentication-service?rev=357481b52e6dc092178a16b8a7d86df036aac608#357481b52e6dc092178a16b8a7d86df036aac608"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b39a251dfb34fb81d7259e91b368ee3551013406149333484ae30bd7da8c2c74"
 dependencies = [
  "base64ct",
  "chrono",
@@ -3187,8 +3283,9 @@ dependencies = [
 
 [[package]]
 name = "mas-keystore"
-version = "0.5.0-rc.2"
-source = "git+https://github.com/matrix-org/matrix-authentication-service?rev=357481b52e6dc092178a16b8a7d86df036aac608#357481b52e6dc092178a16b8a7d86df036aac608"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75c2a138f5805d21cf62c3947e23743349cb1303e8e3374aad14a5d571d7912"
 dependencies = [
  "aead",
  "base64ct",
@@ -3215,14 +3312,14 @@ dependencies = [
 
 [[package]]
 name = "mas-oidc-client"
-version = "0.5.0-rc.2"
-source = "git+https://github.com/matrix-org/matrix-authentication-service?rev=357481b52e6dc092178a16b8a7d86df036aac608#357481b52e6dc092178a16b8a7d86df036aac608"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3138f9b4240f515c740ec61e27b436f1fd5a24aabb66b51d93346c7d46e2e571"
 dependencies = [
  "base64ct",
  "bytes",
  "chrono",
  "form_urlencoded",
- "futures",
  "futures-util",
  "headers",
  "http",
@@ -3253,8 +3350,9 @@ dependencies = [
 
 [[package]]
 name = "mas-tower"
-version = "0.5.0-rc.2"
-source = "git+https://github.com/matrix-org/matrix-authentication-service?rev=357481b52e6dc092178a16b8a7d86df036aac608#357481b52e6dc092178a16b8a7d86df036aac608"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6beeba7843e755539b582e6240293db1e6bd428e22bc1a6ef4220b1fd2fc53d"
 dependencies = [
  "http",
  "opentelemetry",
@@ -3292,17 +3390,17 @@ version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "93779aa78d39c2fe34746287b10a866192cf8af1b81767fff76bd64099acc0f5"
 dependencies = [
- "proc-macro-crate 2.0.0",
+ "proc-macro-crate 2.0.1",
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.41",
 ]
 
 [[package]]
 name = "matrix-sdk"
 version = "0.6.2"
-source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=8895ce40d13faa79012144c97044990284215758#8895ce40d13faa79012144c97044990284215758"
+source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=19526cea6bce133fc48904838956846aeb966dc6#19526cea6bce133fc48904838956846aeb966dc6"
 dependencies = [
  "anymap2",
  "aquamarine",
@@ -3315,7 +3413,7 @@ dependencies = [
  "bytesize",
  "cfg-vis",
  "chrono",
- "event-listener 3.0.1",
+ "event-listener 4.0.0",
  "eyeball",
  "eyeball-im",
  "eyeball-im-util",
@@ -3345,6 +3443,7 @@ dependencies = [
  "tempfile",
  "thiserror",
  "tokio",
+ "tokio-stream",
  "tokio-util",
  "tower",
  "tracing",
@@ -3356,7 +3455,7 @@ dependencies = [
 [[package]]
 name = "matrix-sdk-base"
 version = "0.6.1"
-source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=8895ce40d13faa79012144c97044990284215758#8895ce40d13faa79012144c97044990284215758"
+source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=19526cea6bce133fc48904838956846aeb966dc6#19526cea6bce133fc48904838956846aeb966dc6"
 dependencies = [
  "as_variant",
  "async-trait",
@@ -3378,7 +3477,7 @@ dependencies = [
 [[package]]
 name = "matrix-sdk-common"
 version = "0.6.0"
-source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=8895ce40d13faa79012144c97044990284215758#8895ce40d13faa79012144c97044990284215758"
+source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=19526cea6bce133fc48904838956846aeb966dc6#19526cea6bce133fc48904838956846aeb966dc6"
 dependencies = [
  "async-trait",
  "futures-core",
@@ -3400,7 +3499,7 @@ dependencies = [
 [[package]]
 name = "matrix-sdk-crypto"
 version = "0.6.0"
-source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=8895ce40d13faa79012144c97044990284215758#8895ce40d13faa79012144c97044990284215758"
+source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=19526cea6bce133fc48904838956846aeb966dc6#19526cea6bce133fc48904838956846aeb966dc6"
 dependencies = [
  "aes",
  "as_variant",
@@ -3415,7 +3514,7 @@ dependencies = [
  "futures-util",
  "hkdf",
  "hmac",
- "itertools 0.11.0",
+ "itertools 0.12.0",
  "matrix-sdk-common",
  "matrix-sdk-qrcode",
  "pbkdf2",
@@ -3438,7 +3537,7 @@ dependencies = [
 [[package]]
 name = "matrix-sdk-indexeddb"
 version = "0.2.0"
-source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=8895ce40d13faa79012144c97044990284215758#8895ce40d13faa79012144c97044990284215758"
+source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=19526cea6bce133fc48904838956846aeb966dc6#19526cea6bce133fc48904838956846aeb966dc6"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -3464,7 +3563,7 @@ dependencies = [
 [[package]]
 name = "matrix-sdk-qrcode"
 version = "0.4.0"
-source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=8895ce40d13faa79012144c97044990284215758#8895ce40d13faa79012144c97044990284215758"
+source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=19526cea6bce133fc48904838956846aeb966dc6#19526cea6bce133fc48904838956846aeb966dc6"
 dependencies = [
  "byteorder",
  "qrcode",
@@ -3476,11 +3575,11 @@ dependencies = [
 [[package]]
 name = "matrix-sdk-sqlite"
 version = "0.1.0"
-source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=8895ce40d13faa79012144c97044990284215758#8895ce40d13faa79012144c97044990284215758"
+source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=19526cea6bce133fc48904838956846aeb966dc6#19526cea6bce133fc48904838956846aeb966dc6"
 dependencies = [
  "async-trait",
  "deadpool-sqlite",
- "itertools 0.11.0",
+ "itertools 0.12.0",
  "matrix-sdk-base",
  "matrix-sdk-crypto",
  "matrix-sdk-store-encryption",
@@ -3498,7 +3597,7 @@ dependencies = [
 [[package]]
 name = "matrix-sdk-store-encryption"
 version = "0.2.0"
-source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=8895ce40d13faa79012144c97044990284215758#8895ce40d13faa79012144c97044990284215758"
+source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=19526cea6bce133fc48904838956846aeb966dc6#19526cea6bce133fc48904838956846aeb966dc6"
 dependencies = [
  "blake3",
  "chacha20poly1305",
@@ -3518,7 +3617,7 @@ dependencies = [
 [[package]]
 name = "matrix-sdk-ui"
 version = "0.6.0"
-source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=8895ce40d13faa79012144c97044990284215758#8895ce40d13faa79012144c97044990284215758"
+source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=19526cea6bce133fc48904838956846aeb966dc6#19526cea6bce133fc48904838956846aeb966dc6"
 dependencies = [
  "as_variant",
  "async-once-cell",
@@ -3535,7 +3634,7 @@ dependencies = [
  "fuzzy-matcher",
  "imbl",
  "indexmap 2.1.0",
- "itertools 0.11.0",
+ "itertools 0.12.0",
  "matrix-sdk",
  "matrix-sdk-base",
  "mime",
@@ -3615,13 +3714,13 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.9"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0"
+checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
 dependencies = [
  "libc",
  "wasi",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -3805,8 +3904,9 @@ dependencies = [
 
 [[package]]
 name = "oauth2-types"
-version = "0.5.0-rc.2"
-source = "git+https://github.com/matrix-org/matrix-authentication-service?rev=357481b52e6dc092178a16b8a7d86df036aac608#357481b52e6dc092178a16b8a7d86df036aac608"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd0c3fa3366856696f31b0686570dc4a511b499e648a03e433ad8b940ed2f122"
 dependencies = [
  "chrono",
  "data-encoding",
@@ -3863,9 +3963,9 @@ dependencies = [
 
 [[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 = "oo7"
@@ -3902,9 +4002,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
 
 [[package]]
 name = "openssl"
-version = "0.10.59"
+version = "0.10.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a257ad03cd8fb16ad4172fedf8094451e1af1c4b70097636ef2eac9a5f0cc33"
+checksum = "6b8419dc8cc6d866deb801274bba2e6f8f6108c1bb7fcc10ee5ab864931dbb45"
 dependencies = [
  "bitflags 2.4.1",
  "cfg-if",
@@ -3923,7 +4023,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.41",
 ]
 
 [[package]]
@@ -3934,9 +4034,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.95"
+version = "0.9.97"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40a4130519a360279579c2053038317e40eff64d13fd3f004f9e1b72b8a6aaf9"
+checksum = "c3eaad34cdd97d81de97964fc7f29e2d104f483840d906ef56daa1912338460b"
 dependencies = [
  "cc",
  "libc",
@@ -3946,56 +4046,46 @@ dependencies = [
 
 [[package]]
 name = "opentelemetry"
-version = "0.20.0"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9591d937bc0e6d2feb6f71a559540ab300ea49955229c347a517a28d27784c54"
+checksum = "1e32339a5dc40459130b3bd269e9892439f55b33e772d2a9d402a789baaf4e8a"
 dependencies = [
- "opentelemetry_api",
- "opentelemetry_sdk",
+ "futures-core",
+ "futures-sink",
+ "indexmap 2.1.0",
+ "js-sys",
+ "once_cell",
+ "pin-project-lite",
+ "thiserror",
+ "urlencoding",
 ]
 
 [[package]]
 name = "opentelemetry-http"
-version = "0.9.0"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7594ec0e11d8e33faf03530a4c49af7064ebba81c1480e01be67d90b356508b"
+checksum = "7f51189ce8be654f9b5f7e70e49967ed894e84a06fc35c6c042e64ac1fc5399e"
 dependencies = [
  "async-trait",
  "bytes",
  "http",
- "opentelemetry_api",
+ "opentelemetry",
 ]
 
 [[package]]
 name = "opentelemetry-semantic-conventions"
-version = "0.12.0"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73c9f9340ad135068800e7f1b24e9e09ed9e7143f5bf8518ded3d3ec69789269"
+checksum = "f5774f1ef1f982ef2a447f6ee04ec383981a3ab99c8e77a1a7b30182e65bbc84"
 dependencies = [
  "opentelemetry",
 ]
 
 [[package]]
-name = "opentelemetry_api"
-version = "0.20.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a81f725323db1b1206ca3da8bb19874bbd3f57c3bcd59471bfb04525b265b9b"
-dependencies = [
- "futures-channel",
- "futures-util",
- "indexmap 1.9.3",
- "js-sys",
- "once_cell",
- "pin-project-lite",
- "thiserror",
- "urlencoding",
-]
-
-[[package]]
 name = "opentelemetry_sdk"
-version = "0.20.0"
+version = "0.21.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa8e705a0612d48139799fcbaba0d4a90f06277153e43dd2bdc16c6f0edd8026"
+checksum = "968ba3f2ca03e90e5187f5e4f46c791ef7f2c163ae87789c8ce5f5ca3b7b7de5"
 dependencies = [
  "async-trait",
  "crossbeam-channel",
@@ -4003,11 +4093,10 @@ dependencies = [
  "futures-executor",
  "futures-util",
  "once_cell",
- "opentelemetry_api",
+ "opentelemetry",
  "ordered-float",
  "percent-encoding",
  "rand",
- "regex",
  "thiserror",
 ]
 
@@ -4022,9 +4111,9 @@ dependencies = [
 
 [[package]]
 name = "ordered-float"
-version = "3.9.2"
+version = "4.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1e1c390732d15f1d48471625cd92d154e66db2c56645e29a9cd26f4699f72dc"
+checksum = "a76df7075c7d4d01fdcb46c912dd17fba5b60c78ea480b475f2b6ab6f666584e"
 dependencies = [
  "num-traits",
 ]
@@ -4120,7 +4209,7 @@ dependencies = [
  "libc",
  "redox_syscall",
  "smallvec",
- "windows-targets",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
@@ -4146,7 +4235,7 @@ dependencies = [
  "regex",
  "regex-syntax 0.7.5",
  "structmeta",
- "syn 2.0.39",
+ "syn 2.0.41",
 ]
 
 [[package]]
@@ -4182,9 +4271,9 @@ dependencies = [
 
 [[package]]
 name = "percent-encoding"
-version = "2.3.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "phf"
@@ -4245,7 +4334,7 @@ dependencies = [
  "phf_shared 0.11.2",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.41",
 ]
 
 [[package]]
@@ -4283,7 +4372,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.41",
 ]
 
 [[package]]
@@ -4424,21 +4513,21 @@ dependencies = [
  "libc",
  "log",
  "pin-project-lite",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "polling"
-version = "3.3.0"
+version = "3.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e53b6af1f60f36f8c2ac2aad5459d75a5a9b4be1e8cdd40264f315d78193e531"
+checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e"
 dependencies = [
  "cfg-if",
  "concurrent-queue",
  "pin-project-lite",
- "rustix 0.38.21",
+ "rustix 0.38.28",
  "tracing",
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -4478,9 +4567,9 @@ checksum = "c6fa0831dd7cc608c38a5e323422a0077678fa5744aa2be4ad91c4ece8eec8d5"
 
 [[package]]
 name = "primeorder"
-version = "0.13.3"
+version = "0.13.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7dbe9ed3b56368bd99483eb32fe9c17fdd3730aebadc906918ce78d54c7eeb4"
+checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6"
 dependencies = [
  "elliptic-curve",
 ]
@@ -4497,11 +4586,12 @@ dependencies = [
 
 [[package]]
 name = "proc-macro-crate"
-version = "2.0.0"
+version = "2.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8"
+checksum = "97dc5fea232fc28d2f597b37c4876b348a40e33f3b02cc975c8d006d78d94b1a"
 dependencies = [
- "toml_edit 0.20.7",
+ "toml_datetime",
+ "toml_edit 0.20.2",
 ]
 
 [[package]]
@@ -4530,18 +4620,18 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.69"
+version = "1.0.70"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
+checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "prost"
-version = "0.12.1"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4fdd22f3b9c31b53c060df4a0613a1c7f062d4115a2b984dd15b1858f7e340d"
+checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a"
 dependencies = [
  "bytes",
  "prost-derive",
@@ -4549,15 +4639,15 @@ dependencies = [
 
 [[package]]
 name = "prost-derive"
-version = "0.12.1"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "265baba7fabd416cf5078179f7d2cbeca4ce7a9041111900675ea7c4cb8a4c32"
+checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e"
 dependencies = [
  "anyhow",
  "itertools 0.11.0",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.41",
 ]
 
 [[package]]
@@ -4778,16 +4868,16 @@ dependencies = [
 
 [[package]]
 name = "ring"
-version = "0.17.5"
+version = "0.17.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb0205304757e5d899b9c2e448b867ffd03ae7f988002e47cd24954391394d0b"
+checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
 dependencies = [
  "cc",
  "getrandom",
  "libc",
  "spin 0.9.8",
  "untrusted",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -4825,9 +4915,9 @@ dependencies = [
 
 [[package]]
 name = "rsa"
-version = "0.9.3"
+version = "0.9.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86ef35bf3e7fe15a53c4ab08a998e42271eab13eb0db224126bc7bc4c4bad96d"
+checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc"
 dependencies = [
  "const-oid",
  "digest",
@@ -4845,9 +4935,9 @@ dependencies = [
 
 [[package]]
 name = "ruma"
-version = "0.9.2"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc39664df66d707506b1dd318c30e600f25ebc1e7feadf4804ae45db67922c53"
+checksum = "2779c38df072964c63476259d9300efb07d0d1a7178c6469893636ce0c547a36"
 dependencies = [
  "assign",
  "js_int",
@@ -4862,9 +4952,9 @@ dependencies = [
 
 [[package]]
 name = "ruma-client-api"
-version = "0.17.3"
+version = "0.17.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2428ee1488551cbc2bc4ef936c9452ac35ccd5c7e4e4df12c54b67afa6b262fb"
+checksum = "641837258fa214a70823477514954ef0f5d3bc6ae8e1d5d85081856a33103386"
 dependencies = [
  "assign",
  "bytes",
@@ -4912,9 +5002,9 @@ dependencies = [
 
 [[package]]
 name = "ruma-events"
-version = "0.27.9"
+version = "0.27.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6db9e1f3be8ee402ad7fa14a9273a2192eac58b099e0e2f0fb98b7d27ba88f10"
+checksum = "d20a52770e5a9fb30b7a1c14ba8b3dcf76dadc01674e58e40094f78e6bd5e3f1"
 dependencies = [
  "as_variant",
  "indexmap 2.1.0",
@@ -4978,12 +5068,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0280534a4b3e34416f883285fac4f9c408cd0b737890ae66f3e7a7056d14be80"
 dependencies = [
  "once_cell",
- "proc-macro-crate 2.0.0",
+ "proc-macro-crate 2.0.1",
  "proc-macro2",
  "quote",
  "ruma-identifiers-validation",
  "serde",
- "syn 2.0.39",
+ "syn 2.0.41",
  "toml",
 ]
 
@@ -5002,9 +5092,9 @@ dependencies = [
 
 [[package]]
 name = "rusqlite"
-version = "0.29.0"
+version = "0.30.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "549b9d036d571d42e6e85d1c1425e2ac83491075078ca9a15be021c56b1641f2"
+checksum = "a78046161564f5e7cd9008aff3b2990b3850dc8e0349119b98e8f251e099f24d"
 dependencies = [
  "bitflags 2.4.1",
  "fallible-iterator",
@@ -5046,27 +5136,27 @@ dependencies = [
  "io-lifetimes",
  "libc",
  "linux-raw-sys 0.3.8",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "rustix"
-version = "0.38.21"
+version = "0.38.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3"
+checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316"
 dependencies = [
  "bitflags 2.4.1",
  "errno",
  "libc",
- "linux-raw-sys 0.4.10",
- "windows-sys",
+ "linux-raw-sys 0.4.12",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "rustls"
-version = "0.21.8"
+version = "0.21.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "446e14c5cda4f3f30fe71863c34ec70f5ac79d6087097ad0bb433e1be5edf04c"
+checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
 dependencies = [
  "log",
  "ring",
@@ -5088,9 +5178,9 @@ dependencies = [
 
 [[package]]
 name = "rustls-pemfile"
-version = "1.0.3"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2"
+checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
 dependencies = [
  "base64",
 ]
@@ -5113,9 +5203,9 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 
 [[package]]
 name = "ryu"
-version = "1.0.15"
+version = "1.0.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
 
 [[package]]
 name = "salsa20"
@@ -5132,14 +5222,14 @@ version = "0.1.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88"
 dependencies = [
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "schemars"
-version = "0.8.15"
+version = "0.8.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f7b0ce13155372a76ee2e1c5ffba1fe61ede73fbea5630d61eee6fac4929c0c"
+checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29"
 dependencies = [
  "dyn-clone",
  "schemars_derive",
@@ -5149,9 +5239,9 @@ dependencies = [
 
 [[package]]
 name = "schemars_derive"
-version = "0.8.15"
+version = "0.8.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e85e2a16b12bdb763244c69ab79363d71db2b4b918a2def53f80b02e0574b13c"
+checksum = "c767fd6fa65d9ccf9cf026122c1b555f2ef9a4f0cea69da4d7dbc3e258d30967"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -5240,18 +5330,18 @@ checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
 
 [[package]]
 name = "serde"
-version = "1.0.192"
+version = "1.0.193"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001"
+checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde-wasm-bindgen"
-version = "0.5.0"
+version = "0.6.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3b143e2833c57ab9ad3ea280d21fd34e285a42837aeb0ee301f4f41890fa00e"
+checksum = "b9b713f70513ae1f8d92665bbbbda5c295c2cf1da5542881ae5eefe20c9af132"
 dependencies = [
  "js-sys",
  "serde",
@@ -5269,13 +5359,13 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.192"
+version = "1.0.193"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1"
+checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.41",
 ]
 
 [[package]]
@@ -5291,9 +5381,9 @@ dependencies = [
 
 [[package]]
 name = "serde_html_form"
-version = "0.2.2"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cde65b75f2603066b78d6fa239b2c07b43e06ead09435f60554d3912962b4a3c"
+checksum = "224e6a14f315852940f3ec103125aa6482f0e224732ed91ed3330ed633077c34"
 dependencies = [
  "form_urlencoded",
  "indexmap 2.1.0",
@@ -5321,7 +5411,7 @@ checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.41",
 ]
 
 [[package]]
@@ -5371,7 +5461,7 @@ dependencies = [
  "darling 0.20.3",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.41",
 ]
 
 [[package]]
@@ -5422,9 +5512,9 @@ dependencies = [
 
 [[package]]
 name = "signature"
-version = "2.1.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500"
+checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
 dependencies = [
  "digest",
  "rand_core",
@@ -5474,7 +5564,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
 dependencies = [
  "libc",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -5529,9 +5619,9 @@ dependencies = [
 
 [[package]]
 name = "spki"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a"
+checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d"
 dependencies = [
  "base64ct",
  "der",
@@ -5584,7 +5674,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "structmeta-derive",
- "syn 2.0.39",
+ "syn 2.0.41",
 ]
 
 [[package]]
@@ -5595,7 +5685,7 @@ checksum = "a60bcaff7397072dca0017d1db428e30d5002e00b6847703e2e42005c95fbe00"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.41",
 ]
 
 [[package]]
@@ -5617,7 +5707,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 2.0.39",
+ "syn 2.0.41",
 ]
 
 [[package]]
@@ -5639,9 +5729,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.39"
+version = "2.0.41"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
+checksum = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -5703,8 +5793,8 @@ dependencies = [
  "cfg-if",
  "fastrand 2.0.1",
  "redox_syscall",
- "rustix 0.38.21",
- "windows-sys",
+ "rustix 0.38.28",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -5720,22 +5810,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.50"
+version = "1.0.51"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
+checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.50"
+version = "1.0.51"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
+checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.41",
 ]
 
 [[package]]
@@ -5805,9 +5895,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.33.0"
+version = "1.35.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653"
+checksum = "841d45b238a16291a4e1584e61820b8ae57d696cc5015c459c229ccc6990cc1c"
 dependencies = [
  "backtrace",
  "bytes",
@@ -5819,18 +5909,18 @@ dependencies = [
  "socket2 0.5.5",
  "tokio-macros",
  "tracing",
- "windows-sys",
+ "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.39",
+ "syn 2.0.41",
 ]
 
 [[package]]
@@ -5893,21 +5983,21 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.8.8"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
+checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.21.0",
+ "toml_edit 0.20.2",
 ]
 
 [[package]]
 name = "toml_datetime"
-version = "0.6.5"
+version = "0.6.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
 dependencies = [
  "serde",
 ]
@@ -5925,20 +6015,9 @@ dependencies = [
 
 [[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",
- "toml_datetime",
- "winnow",
-]
-
-[[package]]
-name = "toml_edit"
-version = "0.21.0"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
+checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338"
 dependencies = [
  "indexmap 2.1.0",
  "serde",
@@ -6021,7 +6100,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.41",
 ]
 
 [[package]]
@@ -6036,9 +6115,9 @@ dependencies = [
 
 [[package]]
 name = "tracing-log"
-version = "0.1.4"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2"
+checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
 dependencies = [
  "log",
  "once_cell",
@@ -6047,25 +6126,25 @@ dependencies = [
 
 [[package]]
 name = "tracing-opentelemetry"
-version = "0.21.0"
+version = "0.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75327c6b667828ddc28f5e3f169036cb793c3f588d83bf0f262a7f062ffed3c8"
+checksum = "c67ac25c5407e7b961fafc6f7e9aa5958fd297aada2d20fa2ae1737357e55596"
 dependencies = [
+ "js-sys",
  "once_cell",
  "opentelemetry",
  "opentelemetry_sdk",
- "smallvec",
  "tracing",
  "tracing-core",
- "tracing-log",
  "tracing-subscriber",
+ "web-time",
 ]
 
 [[package]]
 name = "tracing-subscriber"
-version = "0.3.17"
+version = "0.3.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77"
+checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
 dependencies = [
  "matchers",
  "nu-ansi-term",
@@ -6081,9 +6160,9 @@ dependencies = [
 
 [[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 = "typenum"
@@ -6108,10 +6187,11 @@ checksum = "e36a83ea2b3c704935a01b4642946aadd445cea40b10935e3f8bd8052b8193d6"
 
 [[package]]
 name = "uds_windows"
-version = "1.0.2"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce65604324d3cce9b966701489fbd0cf318cb1f7bd9dd07ac9a4ee6fb791930d"
+checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9"
 dependencies = [
+ "memoffset 0.9.0",
  "tempfile",
  "winapi",
 ]
@@ -6136,9 +6216,9 @@ dependencies = [
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.13"
+version = "0.3.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416"
 
 [[package]]
 name = "unicode-ident"
@@ -6185,9 +6265,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
 
 [[package]]
 name = "url"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
 dependencies = [
  "form_urlencoded",
  "idna",
@@ -6209,15 +6289,15 @@ checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
 
 [[package]]
 name = "utf8-width"
-version = "0.1.6"
+version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5190c9442dcdaf0ddd50f37420417d219ae5261bbf5db120d0f9bab996c9cba1"
+checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3"
 
 [[package]]
 name = "uuid"
-version = "1.5.0"
+version = "1.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88ad59a7560b41a70d191093a945f0b87bc1deeda46fb237479708a1d6b6cdfc"
+checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560"
 dependencies = [
  "getrandom",
  "wasm-bindgen",
@@ -6299,9 +6379,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.88"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce"
+checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -6309,24 +6389,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.88"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217"
+checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.41",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.38"
+version = "0.4.39"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9afec9963e3d0994cac82455b2b3502b81a7f40f9a0d32181f7528d9f4b43e02"
+checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -6336,9 +6416,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.88"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2"
+checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -6346,22 +6426,22 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.88"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907"
+checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.41",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.88"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b"
+checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f"
 
 [[package]]
 name = "wasm-streams"
@@ -6378,9 +6458,19 @@ dependencies = [
 
 [[package]]
 name = "web-sys"
-version = "0.3.65"
+version = "0.3.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85"
+checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "web-time"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57099a701fb3a8043f993e8228dc24229c7b942e2b009a1b962e54489ba1d3bf"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -6426,7 +6516,7 @@ version = "0.51.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
 dependencies = [
- "windows-targets",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
@@ -6435,7 +6525,16 @@ version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 dependencies = [
- "windows-targets",
+ "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]]
@@ -6444,13 +6543,28 @@ 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",
+ "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]]
@@ -6460,46 +6574,88 @@ 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 = "winnow"
-version = "0.5.19"
+version = "0.5.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b"
+checksum = "6c830786f7720c2fd27a1a0e27a709dbd3c4d009b56d098fc742d4f4eab91fe2"
 dependencies = [
  "memchr",
 ]
@@ -6511,7 +6667,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
 dependencies = [
  "cfg-if",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -6621,29 +6777,29 @@ dependencies = [
 
 [[package]]
 name = "zerocopy"
-version = "0.7.26"
+version = "0.7.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e97e415490559a91254a2979b4829267a57d2fcd741a98eee8b722fb57289aa0"
+checksum = "1c4061bedbb353041c12f413700357bec76df2c7e2ca8e4df8bac24c6bf68e3d"
 dependencies = [
  "zerocopy-derive",
 ]
 
 [[package]]
 name = "zerocopy-derive"
-version = "0.7.26"
+version = "0.7.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd7e48ccf166952882ca8bd778a43502c64f33bf94c12ebe2a7f08e5a0f6689f"
+checksum = "b3c129550b3e6de3fd0ba67ba5c81818f9805e58b8d7fee80a3a59d2c9fc601a"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.41",
 ]
 
 [[package]]
 name = "zeroize"
-version = "1.6.0"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9"
+checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
 dependencies = [
  "zeroize_derive",
 ]
@@ -6656,7 +6812,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.41",
 ]
 
 [[package]]
diff --git a/pkgs/applications/networking/instant-messengers/fractal/default.nix b/pkgs/applications/networking/instant-messengers/fractal/default.nix
index 3c62eb2aac6b..0ff8eadbf548 100644
--- a/pkgs/applications/networking/instant-messengers/fractal/default.nix
+++ b/pkgs/applications/networking/instant-messengers/fractal/default.nix
@@ -25,21 +25,20 @@
 
 stdenv.mkDerivation rec {
   pname = "fractal";
-  version = "5";
+  version = "6";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "GNOME";
     repo = "fractal";
     rev = version;
-    hash = "sha256-XHb8HjQ5PDL2sen6qUivDllvYEhKnp1vQynD2Lksi30=";
+    hash = "sha256-J4Jb7G5Rfou3N7mytetIdLl0dGY5dSvTjnu8aj4kWXQ=";
   };
 
   cargoDeps = rustPlatform.importCargoLock {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "matrix-sdk-0.6.2" = "sha256-X+4077rlaE8zjXHXPUfiYwa/+Bg0KTFrcsAg7yCz4ug=";
-      "mas-http-0.5.0-rc.2" = "sha256-XH+I5URcbkSY4NDwfOFhIjb+/swuGz6n9hKufziPgoY=";
+      "matrix-sdk-0.6.2" = "sha256-CY0Ylrd3NkP1IevyQa351IS/+evG2GgrjPnR/ZDFR9Q=";
     };
   };
 
@@ -82,6 +81,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Matrix group messaging app";
     homepage = "https://gitlab.gnome.org/GNOME/fractal";
+    changelog = "https://gitlab.gnome.org/World/fractal/-/releases/${version}";
     license = licenses.gpl3Plus;
     maintainers = teams.gnome.members ++ (with maintainers; [ anselmschueler dtzWill ]);
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/instant-messengers/jami/default.nix b/pkgs/applications/networking/instant-messengers/jami/default.nix
index 067c7b8f858d..7acbd1b3b393 100644
--- a/pkgs/applications/networking/instant-messengers/jami/default.nix
+++ b/pkgs/applications/networking/instant-messengers/jami/default.nix
@@ -50,6 +50,7 @@
 , qtsvg
 , qtwebengine
 , qtwebchannel
+, wrapGAppsHook
 , withWebengine ? true
 
   # for pjsip
@@ -200,7 +201,10 @@ stdenv.mkDerivation rec {
     ln -s ${daemon} $out/daemon
   '';
 
+  dontWrapGApps = true;
+
   nativeBuildInputs = [
+    wrapGAppsHook
     wrapQtAppsHook
     pkg-config
     cmake
@@ -234,6 +238,10 @@ stdenv.mkDerivation rec {
     "--set-default QT_QPA_PLATFORM xcb"
   ];
 
+  preFixup = ''
+    qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
   passthru.updateScript = gitUpdater {
     rev-prefix = "stable/";
   };
diff --git a/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix b/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
index 81562e69a66a..71253c52b643 100644
--- a/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
+++ b/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
@@ -1,60 +1,106 @@
-{ lib, stdenv
-, fetchurl
-, appimageTools
+{ lib
+, buildNpmPackage
+, fetchFromGitHub
+, copyDesktopItems
+, makeDesktopItem
 , makeWrapper
+, libpng
+, libX11
+, libXi
+, libXtst
+, zlib
 , electron
-, xorg
 , pipewire
 }:
 
-stdenv.mkDerivation rec {
+buildNpmPackage rec {
   pname = "jitsi-meet-electron";
-  version = "2022.10.1";
+  version = "2023.11.3";
 
-  src = fetchurl {
-    url = "https://github.com/jitsi/jitsi-meet-electron/releases/download/v${version}/jitsi-meet-x86_64.AppImage";
-    sha256 = "sha256-98zuAsGT30paxszSO1XcMY8tsrMBeBLDFjK/JWhLC8s=";
-    name = "${pname}-${version}.AppImage";
+  src = fetchFromGitHub {
+    owner = "jitsi";
+    repo = "jitsi-meet-electron";
+    rev = "v${version}";
+    hash = "sha256-gE5CP0l3SrAHGNS6Hr5/MefTtE86JTmc85CwOmylEpg=";
   };
 
-  appimageContents = appimageTools.extractType2 {
-    name = "${pname}-${version}";
-    inherit src;
-  };
+  nativeBuildInputs = [
+    copyDesktopItems
+    makeWrapper
+  ];
+
+  # robotjs node-gyp dependencies
+  buildInputs = [
+    libpng
+    libX11
+    libXi
+    libXtst
+    zlib
+  ];
+
+  npmDepsHash = "sha256-JZVJcKzG4X7YIUvIRWZsDQnHx+dNqCj6kFm8mZaSH2k=";
+
+  makeCacheWritable = true;
+
+  env.ELECTRON_SKIP_BINARY_DOWNLOAD = 1;
 
-  dontUnpack = true;
-  dontConfigure = true;
-  dontBuild = true;
+  postPatch = ''
+    substituteInPlace main.js \
+        --replace "require('electron-is-dev')" "false"
+  '';
 
-  nativeBuildInputs = [ makeWrapper ];
+  preBuild = ''
+    # remove some prebuilt binaries
+    find node_modules -type d -name prebuilds -exec rm -r {} +
+  '';
+
+  postBuild = ''
+    # generate .asar file
+    # asarUnpack makes sure to unwrap binaries so that nix can see the RPATH
+    npm exec electron-builder -- \
+        --dir \
+        -c.asarUnpack="**/*.node" \
+        -c.electronDist=${electron}/libexec/electron \
+        -c.electronVersion=${electron.version}
+  '';
 
   installPhase = ''
     runHook preInstall
 
-    mkdir -p $out/bin $out/share/${pname} $out/share/applications
+    mkdir -p $out/share/jitsi-meet-electron
+    cp -r dist/*-unpacked/{locales,resources{,.pak}} $out/share/jitsi-meet-electron
 
-    cp -a ${appimageContents}/{locales,resources} $out/share/${pname}
-    cp -a ${appimageContents}/jitsi-meet.desktop $out/share/applications/${pname}.desktop
-    cp -a ${appimageContents}/usr/share/icons $out/share
+    makeWrapper ${lib.getExe electron} $out/bin/jitsi-meet-electron \
+        --add-flags $out/share/jitsi-meet-electron/resources/app.asar \
+        --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ pipewire ]} \
+        --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
+        --inherit-argv0
 
-    substituteInPlace $out/share/applications/${pname}.desktop \
-      --replace 'Exec=AppRun' 'Exec=${pname}'
+    install -Dm644 resources/icons/512x512.png $out/share/icons/hicolor/512x512/apps/jitsi-meet-electron.png
 
     runHook postInstall
   '';
 
-  postFixup = ''
-    makeWrapper ${electron}/bin/electron $out/bin/${pname} \
-      --add-flags $out/share/${pname}/resources/app.asar \
-      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc xorg.libXtst pipewire ]}" \
-      --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
-  '';
+  desktopItems = [
+    (makeDesktopItem {
+      name = "jitsi-meet-electron";
+      exec = "jitsi-meet-electron %U";
+      icon = "jitsi-meet-electron";
+      desktopName = "Jitsi Meet";
+      comment = meta.description;
+      categories = [ "VideoConference" "AudioVideo" "Audio" "Video" "Network" ];
+      mimeTypes = [ "x-scheme-handler/jitsi-meet" ];
+      terminal = false;
+    })
+  ];
 
   meta = with lib; {
+    changelog = "https://github.com/jitsi/jitsi-meet-electron/releases/tag/${src.rev}";
     description = "Jitsi Meet desktop application powered by Electron";
     homepage = "https://github.com/jitsi/jitsi-meet-electron";
     license = licenses.asl20;
-    maintainers = teams.jitsi.members;
-    platforms = [ "x86_64-linux" ];
+    mainProgram = "jitsi-meet-electron";
+    maintainers = teams.jitsi.members ++ [ maintainers.tomasajt ];
+    inherit (electron.meta) platforms;
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix b/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix
index 06a1d98762f8..30d1ee2dcda8 100644
--- a/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix
+++ b/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix
@@ -14,13 +14,13 @@
 
 mkDerivation rec {
   pname = "kdeltachat";
-  version = "unstable-2023-01-31";
+  version = "unstable-2024-01-14";
 
   src = fetchFromSourcehut {
     owner = "~link2xt";
     repo = "kdeltachat";
-    rev = "0c9370cfe41ae7f99b4fceced896f66fb4e9195c";
-    hash = "sha256-6KSzsPs8tSzVOxGUWj/AvSJihrSwamZgUNGvjnmNnag=";
+    rev = "d61a01c2d6d5bdcc9ca500b466ed42689b2bd5c6";
+    hash = "sha256-KmL3ODXPi1c8C5z2ySHg0vA5Vg/dZumDZTbpxkzf7A4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/qq/sources.nix b/pkgs/applications/networking/instant-messengers/qq/sources.nix
index 2c7be14d73ef..eda78b80edef 100644
--- a/pkgs/applications/networking/instant-messengers/qq/sources.nix
+++ b/pkgs/applications/networking/instant-messengers/qq/sources.nix
@@ -1,8 +1,8 @@
 # Generated by ./update.sh - do not update manually!
-# Last updated: 2023-12-29
+# Last updated: 2024-01-27
 {
-  version = "3.2.3-20201";
-  urlhash = "9681283b";
-  arm64_hash = "sha256-mEXhswuV31kxGX3aTmyqThjkA6VnA4aZ/vLQTgbMaxI=";
-  amd64_hash = "sha256-iMMQqdfYgdf8szDZ1Frv+oBjRZsPkew+pCaXgu6cxrY=";
+  version = "3.2.5-21159";
+  urlhash = "feb78c41";
+  arm64_hash = "sha256-3zbhFKQrO1tMSnWJllLJLaVeVpLs44WBbuuyU1LTMIU=";
+  amd64_hash = "sha256-pX99V18gjlMM6+jC9U7E5YvHDODGsrj0twt9K4rJN4Y=";
 }
diff --git a/pkgs/applications/networking/instant-messengers/rambox/default.nix b/pkgs/applications/networking/instant-messengers/rambox/default.nix
index 6565f89e93f1..87f0cd4c9747 100644
--- a/pkgs/applications/networking/instant-messengers/rambox/default.nix
+++ b/pkgs/applications/networking/instant-messengers/rambox/default.nix
@@ -2,11 +2,11 @@
 
 let
   pname = "rambox";
-  version = "2.2.3";
+  version = "2.3.0";
 
   src = fetchurl {
     url = "https://github.com/ramboxapp/download/releases/download/v${version}/Rambox-${version}-linux-x64.AppImage";
-    sha256 = "sha256-V1Sxfgn3fcqW7t7oa1pfnrPYAqHdCLrWUbplE/I789A=";
+    sha256 = "sha256-PmTiXQp+AkTwCKisH1tR6B1+cHPx25P8FAAlLvKEb3w=";
   };
 
   desktopItem = (makeDesktopItem {
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-aarch64.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-aarch64.nix
index c331c56eb7cd..c1ccec86b366 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-aarch64.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-aarch64.nix
@@ -2,7 +2,7 @@
 callPackage ./generic.nix { } rec {
   pname = "signal-desktop";
   dir = "Signal";
-  version = "6.42.0";
+  version = "6.44.0";
   url = "https://github.com/0mniteck/Signal-Desktop-Mobian/raw/${version}/builds/release/signal-desktop_${version}_arm64.deb";
-  hash = "sha256-kr8FM+EAtL/7TrgJlI33oDd4CPGMJ+F2PpQCR4OL6j4=";
+  hash = "sha256-M4Xiy8cDQciMzgGl1/eeKZjEaelVtkk6JXJYBP4ua2s=";
 }
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-beta.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-beta.nix
index 53a515c5bd00..c392151620dc 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-beta.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-beta.nix
@@ -2,7 +2,7 @@
 callPackage ./generic.nix {} rec {
   pname = "signal-desktop-beta";
   dir = "Signal Beta";
-  version = "6.44.0-beta.1";
+  version = "6.47.0-beta.1";
   url = "https://updates.signal.org/desktop/apt/pool/s/signal-desktop-beta/signal-desktop-beta_${version}_amd64.deb";
-  hash = "sha256-SW/br1k7lO0hQngST0qV9Qol1hA9f1NZe86A5uyYhcI=";
+  hash = "sha256-9vbdWdV8dVFyxDMGLvE/uQKeSl+ze5agI5QYZMr84/w=";
 }
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop.nix
index 5c37bff9d2a5..bcc588785443 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop.nix
@@ -2,7 +2,7 @@
 callPackage ./generic.nix {} rec {
   pname = "signal-desktop";
   dir = "Signal";
-  version = "6.44.0";
+  version = "6.45.1";
   url = "https://updates.signal.org/desktop/apt/pool/s/signal-desktop/signal-desktop_${version}_amd64.deb";
-  hash = "sha256-04KhjExUx+X2/vxSlobVOk9A50XwTlXcdVuttnUmJEw=";
+  hash = "sha256-yDXtWm+HFzqLTsa7gxy8e7ObVn7lrRewoHMyDGlmZkY=";
 }
diff --git a/pkgs/applications/networking/instant-messengers/slack/default.nix b/pkgs/applications/networking/instant-messengers/slack/default.nix
index 05417bd8d6c5..7aba0b2bc8ca 100644
--- a/pkgs/applications/networking/instant-messengers/slack/default.nix
+++ b/pkgs/applications/networking/instant-messengers/slack/default.nix
@@ -45,14 +45,14 @@ let
 
   pname = "slack";
 
-  x86_64-darwin-version = "4.36.134";
-  x86_64-darwin-sha256 = "13s7vcbi180y221qh5dpvp9s94511lqwih3k52k61p98xjarrcwv";
+  x86_64-darwin-version = "4.36.138";
+  x86_64-darwin-sha256 = "1dj4q98sva25kbniqnwz2l38lg48dhrdmjx31sg8j0ayrs82hha4";
 
-  x86_64-linux-version = "4.35.131";
-  x86_64-linux-sha256 = "0mb33vvb36aavn52yvk5fiyc8f7z56cqm1siknaap707iqqfpwpb";
+  x86_64-linux-version = "4.36.138";
+  x86_64-linux-sha256 = "06h258fvpprx37vjvd5sxl6bxnfcq3shviwx9wv8m9fmg2riwnsg";
 
-  aarch64-darwin-version = "4.36.134";
-  aarch64-darwin-sha256 = "0yyqmyicf4rkpvp6al2kb7g188xhg3m8hyi24a23yhnil8hk2r3v";
+  aarch64-darwin-version = "4.36.138";
+  aarch64-darwin-sha256 = "10xg5aa668iq0n56la1rqgpbzw8jym0y8dgv99f1l7yn03fcwpql";
 
   version = {
     x86_64-darwin = x86_64-darwin-version;
diff --git a/pkgs/applications/networking/instant-messengers/teams-for-linux/default.nix b/pkgs/applications/networking/instant-messengers/teams-for-linux/default.nix
index 407b595a5426..98edbce3cb49 100644
--- a/pkgs/applications/networking/instant-messengers/teams-for-linux/default.nix
+++ b/pkgs/applications/networking/instant-messengers/teams-for-linux/default.nix
@@ -19,18 +19,18 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "teams-for-linux";
-  version = "1.4.4";
+  version = "1.4.10";
 
   src = fetchFromGitHub {
     owner = "IsmaelMartinez";
     repo = "teams-for-linux";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-GNfFzJsWyu46mP0k1wT8SG22F9oKpLwoLQ0TnNFqvv8=";
+    hash = "sha256-dR9YJJBBxvnJkD42+MwIql3B1dlA6WUSLJ//lW22mmc=";
   };
 
   offlineCache = fetchYarnDeps {
     yarnLock = "${finalAttrs.src}/yarn.lock";
-    hash = "sha256-AmCr3IH7A260HTT0VGWQ7DdB8yp0mKnh2pq7ZgFaA7k=";
+    hash = "sha256-Z2vnLr14F/Etuq9yWH7ygQwa54an7v99LbU3gPcEuII=";
   };
 
   nativeBuildInputs = [ yarn prefetch-yarn-deps nodejs copyDesktopItems makeWrapper ];
diff --git a/pkgs/applications/networking/instant-messengers/teamspeak/client5.nix b/pkgs/applications/networking/instant-messengers/teamspeak/client5.nix
index aac37f441dac..0f2e33e7446c 100644
--- a/pkgs/applications/networking/instant-messengers/teamspeak/client5.nix
+++ b/pkgs/applications/networking/instant-messengers/teamspeak/client5.nix
@@ -27,12 +27,12 @@
 
 stdenv.mkDerivation rec {
   pname = "teamspeak5-client";
-  version = "5.0.0-beta70";
+  version = "5.0.0-beta77";
 
   src = fetchurl {
     # check https://teamspeak.com/en/downloads/#ts5 for version and checksum
     url = "https://files.teamspeak-services.com/pre_releases/client/${version}/teamspeak-client.tar.gz";
-    sha256 = "44f1a29b915c3930e7385ce32b13e363a7be04c1e341226d0693600818411c6e";
+    sha256 = "6f3bf97b120d3c799cefc90c448e45836708a826d7caa07ad32b5c868eb9181b";
   };
 
   sourceRoot = ".";
diff --git a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.patch b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.patch
index 05332d51c047..be7d696fc84d 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.patch
+++ b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.patch
@@ -21,3 +21,23 @@ index 28c95ea9..790b0b73 100644
  namespace rtc {
  class BitBuffer;
  }
+--- a/src/rtc_base/third_party/base64/base64.h
++++ b/src/rtc_base/third_party/base64/base64.h
+@@ -11,6 +11,7 @@
+ #ifndef RTC_BASE_THIRD_PARTY_BASE64_BASE64_H_
+ #define RTC_BASE_THIRD_PARTY_BASE64_BASE64_H_
+ 
++#include <cstdint>
+ #include <string>
+ #include <vector>
+
+--- a/src/modules/audio_processing/transient/file_utils.h
++++ b/src/modules/audio_processing/transient/file_utils.h
+@@ -11,6 +11,7 @@
+ #ifndef MODULES_AUDIO_PROCESSING_TRANSIENT_FILE_UTILS_H_
+ #define MODULES_AUDIO_PROCESSING_TRANSIENT_FILE_UTILS_H_
+ 
++#include <stdint.h>
+ #include <string.h>
+ 
+ #include "rtc_base/system/file_wrapper.h"
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 21d97e3c9a4c..b8e530545b76 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix
@@ -64,14 +64,14 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "telegram-desktop";
-  version = "4.14.4";
+  version = "4.14.9";
 
   src = fetchFromGitHub {
     owner = "telegramdesktop";
     repo = "tdesktop";
     rev = "v${version}";
     fetchSubmodules = true;
-    hash = "sha256-kApiPJN9hdOv9WLRiqIO94Pd3Stuv+wrV4RM6x8Ak9M=";
+    hash = "sha256-VqLCkGav6qtam9qk2MsjCdyVSj3630FGQg50Mv0OBNE=";
   };
 
   patches = [
diff --git a/pkgs/applications/networking/instant-messengers/webcord/default.nix b/pkgs/applications/networking/instant-messengers/webcord/default.nix
index 5e76ac99e277..06b1a7f9b36d 100644
--- a/pkgs/applications/networking/instant-messengers/webcord/default.nix
+++ b/pkgs/applications/networking/instant-messengers/webcord/default.nix
@@ -14,16 +14,16 @@
 
 buildNpmPackage rec {
   pname = "webcord";
-  version = "4.6.1";
+  version = "4.7.0";
 
   src = fetchFromGitHub {
     owner = "SpacingBat3";
     repo = "WebCord";
     rev = "v${version}";
-    hash = "sha256-4ePjRs9CEnDHq9iVcQNEkefl0YP/tc1ePLhW/w9NPDs=";
+    hash = "sha256-h0JEIfNoYx0MrHeEg/kwn/10JVxNVXIuvWcTOfellbg=";
   };
 
-  npmDepsHash = "sha256-UzwLORlUeTMq3RyOHpvBrbxbwgpMBsbmfyXBhpB6pOQ=";
+  npmDepsHash = "sha256-L6ZrPqi4DjTn1P4O+lWDmvzQwqpsWmSOtnFMBHkNQAI=";
 
   nativeBuildInputs = [
     copyDesktopItems
diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
index f651b473f2a3..dcd573e69d30 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 = "5.17.1.27701";
-  versions.x86_64-darwin = "5.17.1.27701";
-  versions.x86_64-linux = "5.17.1.1840";
+  versions.aarch64-darwin = "5.17.5.29101";
+  versions.x86_64-darwin = "5.17.5.29101";
+  versions.x86_64-linux = "5.17.5.2543";
 
   srcs = {
     aarch64-darwin = fetchurl {
       url = "https://zoom.us/client/${versions.aarch64-darwin}/zoomusInstallerFull.pkg?archType=arm64";
       name = "zoomusInstallerFull.pkg";
-      hash = "sha256-r+TCbpvdiZd+oPglJ8D1dgZhlu4nJiAgeihQMBFFydA=";
+      hash = "sha256-Zq/8r4Ny9m+Ym6YMm49iMoITvkGO9q1DxQ0IqHC/7Us=";
     };
     x86_64-darwin = fetchurl {
       url = "https://zoom.us/client/${versions.x86_64-darwin}/zoomusInstallerFull.pkg";
-      hash = "sha256-ofCJ1K2u/jlNjiHa/zhV2n5v1I540KqTbDjdfZRmcAo=";
+      hash = "sha256-/GTBPIswV+YSvnbrSYefrLfcv5eXsRCe3vaTDGmptl8=";
     };
     x86_64-linux = fetchurl {
       url = "https://zoom.us/client/${versions.x86_64-linux}/zoom_x86_64.pkg.tar.xz";
-      hash = "sha256-nuYyTAZ3J6i6gpoRJxhskWfBCf/SWmU0lfEvPSSWXR4=";
+      hash = "sha256-R8LHyL5ojnaLBk00W997PtnKzDwMaADIpYClKDYkJcQ=";
     };
   };
 
diff --git a/pkgs/applications/networking/instant-messengers/zulip-term/default.nix b/pkgs/applications/networking/instant-messengers/zulip-term/default.nix
index 931f95158354..092cb3299990 100644
--- a/pkgs/applications/networking/instant-messengers/zulip-term/default.nix
+++ b/pkgs/applications/networking/instant-messengers/zulip-term/default.nix
@@ -5,23 +5,47 @@
 , libnotify
 }:
 
-python3.pkgs.buildPythonApplication rec {
+let
+  py = python3.override {
+    packageOverrides = self: super: {
+
+      # Requires "urwid~=2.1.2", otherwise some tests are failing
+      urwid = super.urwid.overridePythonAttrs (oldAttrs: rec {
+        version = "2.1.2";
+        src = fetchFromGitHub {
+          owner = "urwid";
+          repo = "urwid";
+          rev = "refs/tags/${version}";
+          hash = "sha256-oPb2h/+gaqkZTXIiESjExMfBNnOzDvoMkXvkZ/+KVwo=";
+        };
+        doCheck = false;
+      });
+    };
+  };
+in
+with py.pkgs;
+
+buildPythonApplication rec {
   pname = "zulip-term";
   version = "0.7.0";
+  pyproject = true;
 
-  # no tests on PyPI
   src = fetchFromGitHub {
     owner = "zulip";
     repo = "zulip-terminal";
-    rev = version;
-    sha256 = "sha256-ZouUU4p1FSGMxPuzDo5P971R+rDXpBdJn2MqvkJO+Fw=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-ZouUU4p1FSGMxPuzDo5P971R+rDXpBdJn2MqvkJO+Fw=";
   };
 
   patches = [
     ./pytest-executable-name.patch
   ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  nativeBuildInputs = with py.pkgs; [
+    setuptools
+  ];
+
+  propagatedBuildInputs = with py.pkgs; [
     beautifulsoup4
     lxml
     pygments
@@ -50,6 +74,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     description = "Zulip's official terminal client";
     homepage = "https://github.com/zulip/zulip-terminal";
+    changelog = "https://github.com/zulip/zulip-terminal/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ dotlambda ];
   };
diff --git a/pkgs/applications/networking/instant-messengers/zulip/default.nix b/pkgs/applications/networking/instant-messengers/zulip/default.nix
index d2509990ff60..3b12634b0caa 100644
--- a/pkgs/applications/networking/instant-messengers/zulip/default.nix
+++ b/pkgs/applications/networking/instant-messengers/zulip/default.nix
@@ -5,11 +5,11 @@
 
 let
   pname = "zulip";
-  version = "5.10.4";
+  version = "5.10.5";
 
   src = fetchurl {
     url = "https://github.com/zulip/zulip-desktop/releases/download/v${version}/Zulip-${version}-x86_64.AppImage";
-    hash = "sha256-M4h+kV4JjZ91K6OpxKc10XVohzKJEVxw8cYcVALibXA=";
+    hash = "sha256-dWTczjE6QAW26bGTIeFTuXl1JwYr3Ma+8Ab6MjeDr78=";
     name="${pname}-${version}.AppImage";
   };
 
diff --git a/pkgs/applications/networking/ipfs-cluster/default.nix b/pkgs/applications/networking/ipfs-cluster/default.nix
index cecb3ce3b03b..19a1b38eed42 100644
--- a/pkgs/applications/networking/ipfs-cluster/default.nix
+++ b/pkgs/applications/networking/ipfs-cluster/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "ipfs-cluster";
-  version = "1.0.7";
+  version = "1.0.8";
 
-  vendorHash = "sha256-/Kjm/hM+lKsZ6fzStDyOitp7Vtt7Vb8ak7E/W0lbW20=";
+  vendorHash = "sha256-uwDXUy9mh/DvLuwj8Htm55wla5/JjvZH5ztJbqnox+U=";
 
   src = fetchFromGitHub {
     owner = "ipfs-cluster";
     repo = "ipfs-cluster";
     rev = "v${version}";
-    hash = "sha256-eBbbD77nnjcumhrsixAlI09B1ZAxK5IOHoBeJGgj+TY=";
+    hash = "sha256-qZUoYJjw3Qac7Kmg5PfNWTDM8Ra3rqrbjScLbK6FRx4=";
   };
 
   meta = with lib; {
diff --git a/pkgs/applications/networking/irc/weechat/default.nix b/pkgs/applications/networking/irc/weechat/default.nix
index 96854c3cdb62..6eecadf97d32 100644
--- a/pkgs/applications/networking/irc/weechat/default.nix
+++ b/pkgs/applications/networking/irc/weechat/default.nix
@@ -36,14 +36,14 @@ let
   in
     assert lib.all (p: p.enabled -> ! (builtins.elem null p.buildInputs)) plugins;
     stdenv.mkDerivation rec {
-      version = "4.1.2";
+      version = "4.2.1";
       pname = "weechat";
 
       hardeningEnable = [ "pie" ];
 
       src = fetchurl {
         url = "https://weechat.org/files/src/weechat-${version}.tar.xz";
-        hash = "sha256-mpuRD752i7nefHrJRPXbjyM4M/NFsuUF4W7G7zXv+7U=";
+        hash = "sha256-JT3fCG9shFAxot0pSxVShR1rBMwIovnaSu37Pi+Rvc0=";
       };
 
       # Why is this needed? https://github.com/weechat/weechat/issues/2031
diff --git a/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix b/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix
index 78f9fc082e31..d8f2b9ba0028 100644
--- a/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix
+++ b/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "weechat-notify-send";
-  version = "0.9";
+  version = "0.10";
 
   src = fetchFromGitHub {
     owner = "s3rvac";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1693b7axm9ls5p7hm6kq6avddsisi491khr5irvswr5lpizvys6a";
+    sha256 = "sha256-7uw0IdRSxhPrLqdgECKB9eOrtFj+2HTILBhakKiRuNQ=";
   };
 
   passthru.scripts = [ "notify_send.py" ];
diff --git a/pkgs/applications/networking/ktailctl/default.nix b/pkgs/applications/networking/ktailctl/default.nix
index e166e156da4b..2b0e870ed485 100644
--- a/pkgs/applications/networking/ktailctl/default.nix
+++ b/pkgs/applications/networking/ktailctl/default.nix
@@ -1,11 +1,11 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, buildGo121Module
+, buildGoModule
 , cmake
 , extra-cmake-modules
 , git
-, go_1_21
+, go
 , wrapQtAppsHook
 , qtbase
 , qtquickcontrols2
@@ -28,13 +28,14 @@ let
     hash = "sha256-nY6DEHkDVWIlvc64smXb9KshrhNgNLKiilYydbMKCqc=";
   };
 
-  goDeps = (buildGo121Module {
+  goDeps = (buildGoModule {
     pname = "tailwrap";
     inherit src version;
     modRoot = "tailwrap";
     vendorHash = "sha256-Y9xhoTf3vCtiNi5qOPg020EQmASo58BZI3rAoUEC8qE=";
   }).goModules;
-in stdenv.mkDerivation {
+in
+stdenv.mkDerivation {
   pname = "ktailctl";
   inherit version src;
 
@@ -56,7 +57,7 @@ in stdenv.mkDerivation {
     cmake
     extra-cmake-modules
     git
-    go_1_21
+    go
     wrapQtAppsHook
   ];
 
diff --git a/pkgs/applications/networking/localproxy/default.nix b/pkgs/applications/networking/localproxy/default.nix
index 06968035f04a..3de21a4c7112 100644
--- a/pkgs/applications/networking/localproxy/default.nix
+++ b/pkgs/applications/networking/localproxy/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , cmake
 , openssl
 , protobuf_21
@@ -23,6 +24,21 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-voUKfXa43mOltePQEXgmJ2EBaN06E6R/2Zz6O09ogyY=";
   };
 
+  patches = [
+    # gcc-13 compatibility fix:
+    #   https://github.com/aws-samples/aws-iot-securetunneling-localproxy/pull/136
+    (fetchpatch {
+      name = "gcc-13-part-1.patch";
+      url = "https://github.com/aws-samples/aws-iot-securetunneling-localproxy/commit/f6ba73eaede61841534623cdb01b69d793124f4b.patch";
+      hash = "sha256-sB9GuEuHLyj6DXNPuYAMibUJXdkThKbS/fxvnJU3rS4=";
+    })
+    (fetchpatch {
+      name = "gcc-13-part-2.patch";
+      url = "https://github.com/aws-samples/aws-iot-securetunneling-localproxy/commit/de8779630d14e4f4969c9b171d826acfa847822b.patch";
+      hash = "sha256-11k6mRvCx72+5G/5LZZx2qnx10yfKpcAZofn8t8BD3E=";
+    })
+  ];
+
   nativeBuildInputs = [ cmake ];
 
   buildInputs = [ openssl protobuf catch2 boost icu ];
diff --git a/pkgs/applications/networking/localsend/default.nix b/pkgs/applications/networking/localsend/default.nix
index c5a3a4c9cda5..d7758fb325a4 100644
--- a/pkgs/applications/networking/localsend/default.nix
+++ b/pkgs/applications/networking/localsend/default.nix
@@ -11,7 +11,7 @@
 
 let
   pname = "localsend";
-  version = "1.12.0";
+  version = "1.13.1";
 
   linux = flutter313.buildFlutterApplication {
     inherit pname version;
@@ -20,7 +20,7 @@ let
       owner = pname;
       repo = pname;
       rev = "v${version}";
-      hash = "sha256-mk0CLZP0x/mEixeAig7X41aFgQzs+kZkBJx6T//3ZKY=";
+      hash = "sha256-GJHCKNtKvwQAG3AUkhk0G4k/qsmLOUQAyyi9Id7NJh8=";
     };
 
     sourceRoot = "source/app";
@@ -52,7 +52,7 @@ let
       exec = "@out@/bin/localsend_app";
       icon = "localsend";
       desktopName = "LocalSend";
-      startupWMClass = "localsend";
+      startupWMClass = "localsend_app";
       genericName = "An open source cross-platform alternative to AirDrop";
       categories = [ "Network" ];
     };
@@ -67,7 +67,7 @@ let
 
     src = fetchurl {
       url = "https://github.com/localsend/localsend/releases/download/v${version}/LocalSend-${version}.dmg";
-      hash = "sha256-XKYc3lA7x0Tf1Mf3o7D2RYwYDRDVHoSb/lj9PhKzV5U=";
+      hash = "sha256-YCy6NlmEPsOFtIZ27mOYDnMPd1tj3YO2bwNDdM3K/uY=";
     };
 
     nativeBuildInputs = [ undmg ];
@@ -90,7 +90,7 @@ let
     homepage = "https://localsend.org/";
     license = licenses.mit;
     mainProgram = "localsend";
-    maintainers = with maintainers; [ sikmir ];
+    maintainers = with maintainers; [ sikmir linsui ];
   };
 in
 if stdenv.isDarwin
diff --git a/pkgs/applications/networking/localsend/pubspec.lock.json b/pkgs/applications/networking/localsend/pubspec.lock.json
index 075f60336e45..204b031d8185 100644
--- a/pkgs/applications/networking/localsend/pubspec.lock.json
+++ b/pkgs/applications/networking/localsend/pubspec.lock.json
@@ -24,21 +24,31 @@
       "dependency": "transitive",
       "description": {
         "name": "ansicolor",
-        "sha256": "607f8fa9786f392043f169898923e6c59b4518242b68b8862eb8a8b7d9c30b4a",
+        "sha256": "8bf17a8ff6ea17499e40a2d2542c2f481cd7615760c6d34065cb22bfd22e6880",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.0.1"
+      "version": "2.0.2"
+    },
+    "app_group_directory": {
+      "dependency": "direct main",
+      "description": {
+        "name": "app_group_directory",
+        "sha256": "ad89800fd55133b46e1f6940ac6b974562f7fb6394c662c0f4422b90167f2416",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.0.0"
     },
     "archive": {
       "dependency": "transitive",
       "description": {
         "name": "archive",
-        "sha256": "49b1fad315e57ab0bbc15bcbb874e83116a1d78f77ebd500a4af6c9407d6b28e",
+        "sha256": "7b875fd4a20b165a3084bd2d210439b22ebc653f21cea4842729c0c30c82596b",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.3.8"
+      "version": "3.4.9"
     },
     "args": {
       "dependency": "transitive",
@@ -64,11 +74,11 @@
       "dependency": "direct main",
       "description": {
         "name": "basic_utils",
-        "sha256": "1fb8c5493fc1b9500512b2e153c0b9bcc9e281621cde7f810420f4761be9e38d",
+        "sha256": "2064b21d3c41ed7654bc82cc476fd65542e04d60059b74d5eed490a4da08fc6c",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "5.6.1"
+      "version": "5.7.0"
     },
     "boolean_selector": {
       "dependency": "transitive",
@@ -104,41 +114,41 @@
       "dependency": "transitive",
       "description": {
         "name": "build_daemon",
-        "sha256": "5f02d73eb2ba16483e693f80bee4f088563a820e47d1027d4cdfe62b5bb43e65",
+        "sha256": "0343061a33da9c5810b2d6cee51945127d8f4c060b7fbdd9d54917f0a3feaaa1",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "4.0.0"
+      "version": "4.0.1"
     },
     "build_resolvers": {
       "dependency": "transitive",
       "description": {
         "name": "build_resolvers",
-        "sha256": "a7417cc44d9edb3f2c8760000270c99dba8c72ff66d0146772b8326565780745",
+        "sha256": "64e12b0521812d1684b1917bc80945625391cb9bdd4312536b1d69dcb6133ed8",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.3.1"
+      "version": "2.4.1"
     },
     "build_runner": {
       "dependency": "direct dev",
       "description": {
         "name": "build_runner",
-        "sha256": "10c6bcdbf9d049a0b666702cf1cee4ddfdc38f02a19d35ae392863b47519848b",
+        "sha256": "67d591d602906ef9201caf93452495ad1812bea2074f04e25dbd7c133785821b",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.4.6"
+      "version": "2.4.7"
     },
     "build_runner_core": {
       "dependency": "transitive",
       "description": {
         "name": "build_runner_core",
-        "sha256": "6d6ee4276b1c5f34f21fdf39425202712d2be82019983d52f351c94aafbc2c41",
+        "sha256": "c9e32d21dd6626b5c163d48b037ce906bbe428bc23ab77bcd77bb21e593b6185",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "7.2.10"
+      "version": "7.2.11"
     },
     "built_collection": {
       "dependency": "transitive",
@@ -154,11 +164,11 @@
       "dependency": "transitive",
       "description": {
         "name": "built_value",
-        "sha256": "ff627b645b28fb8bdb69e645f910c2458fd6b65f6585c3a53e0626024897dedf",
+        "sha256": "69acb7007eb2a31dc901512bfe0f7b767168be34cb734835d54c070bfa74c1b2",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "8.6.2"
+      "version": "8.8.0"
     },
     "characters": {
       "dependency": "transitive",
@@ -204,11 +214,11 @@
       "dependency": "transitive",
       "description": {
         "name": "code_builder",
-        "sha256": "315a598c7fbe77f22de1c9da7cfd6fd21816312f16ffa124453b4fc679e540f1",
+        "sha256": "b2151ce26a06171005b379ecff6e08d34c470180ffe16b8e14b6d52be292b55f",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "4.6.0"
+      "version": "4.8.0"
     },
     "collection": {
       "dependency": "direct main",
@@ -243,11 +253,11 @@
       "dependency": "direct main",
       "description": {
         "name": "connectivity_plus",
-        "sha256": "77a180d6938f78ca7d2382d2240eb626c0f6a735d0bfdce227d8ffb80f95c48b",
+        "sha256": "224a77051d52a11fbad53dd57827594d3bd24f945af28bd70bab376d68d437f0",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "4.0.2"
+      "version": "5.0.2"
     },
     "connectivity_plus_platform_interface": {
       "dependency": "transitive",
@@ -283,21 +293,21 @@
       "dependency": "transitive",
       "description": {
         "name": "coverage",
-        "sha256": "2fb815080e44a09b85e0f2ca8a820b15053982b2e714b59267719e8a9ff17097",
+        "sha256": "595a29b55ce82d53398e1bcc2cba525d7bd7c59faeb2d2540e9d42c390cfeeeb",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.6.3"
+      "version": "1.6.4"
     },
     "cross_file": {
       "dependency": "transitive",
       "description": {
         "name": "cross_file",
-        "sha256": "fd832b5384d0d6da4f6df60b854d33accaaeb63aa9e10e736a87381f08dee2cb",
+        "sha256": "2f9d2cbccb76127ba28528cb3ae2c2326a122446a83de5a056aaa3880d3882c5",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.3.3+5"
+      "version": "0.3.3+7"
     },
     "crypto": {
       "dependency": "transitive",
@@ -323,31 +333,31 @@
       "dependency": "transitive",
       "description": {
         "name": "csv",
-        "sha256": "016b31a51a913744a0a1655c74ff13c9379e1200e246a03d96c81c5d9ed297b5",
+        "sha256": "63ed2871dd6471193dffc52c0e6c76fb86269c00244d244297abbb355c84a86e",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "5.0.2"
+      "version": "5.1.1"
     },
     "dart_mappable": {
       "dependency": "direct main",
       "description": {
         "name": "dart_mappable",
-        "sha256": "f3c0dacde18fe0a05818a797e811f76ab58d7295cdd326c5dbe3592fe62466da",
+        "sha256": "c2d4775336d7166590766a1c4451edde2a302efe2a2a35ac09eef9025102e10f",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.3.1"
+      "version": "4.0.1"
     },
     "dart_mappable_builder": {
       "dependency": "direct dev",
       "description": {
         "name": "dart_mappable_builder",
-        "sha256": "ce10c4c19cb9071461703e6186bb50ff7ec806c99ef717cab9ed25099d09f8bd",
+        "sha256": "41926353f9bc20f659c39f1d83d90c9ae5fd0d14aec9b59732cf714eee589b7a",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.3.0"
+      "version": "4.0.1"
     },
     "dart_style": {
       "dependency": "transitive",
@@ -373,11 +383,11 @@
       "dependency": "transitive",
       "description": {
         "name": "dbus",
-        "sha256": "6f07cba3f7b3448d42d015bfd3d53fe12e5b36da2423f23838efc1d5fb31a263",
+        "sha256": "365c771ac3b0e58845f39ec6deebc76e3276aa9922b0cc60840712094d9047ac",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.7.8"
+      "version": "0.7.10"
     },
     "desktop_drop": {
       "dependency": "direct main",
@@ -403,11 +413,11 @@
       "dependency": "direct main",
       "description": {
         "name": "device_info_plus",
-        "sha256": "7035152271ff67b072a211152846e9f1259cf1be41e34cd3e0b5463d2d6b8419",
+        "sha256": "0042cb3b2a76413ea5f8a2b40cec2a33e01d0c937e91f0f7c211fde4f7739ba6",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "9.1.0"
+      "version": "9.1.1"
     },
     "device_info_plus_platform_interface": {
       "dependency": "transitive",
@@ -423,11 +433,11 @@
       "dependency": "direct main",
       "description": {
         "name": "dio",
-        "sha256": "417e2a6f9d83ab396ec38ff4ea5da6c254da71e4db765ad737a42af6930140b7",
+        "sha256": "797e1e341c3dd2f69f2dad42564a6feff3bfb87187d05abb93b9609e6f1645c3",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "5.3.3"
+      "version": "5.4.0"
     },
     "dynamic_color": {
       "dependency": "direct main",
@@ -483,21 +493,21 @@
       "dependency": "transitive",
       "description": {
         "name": "file",
-        "sha256": "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d",
+        "sha256": "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "6.1.4"
+      "version": "7.0.0"
     },
     "file_picker": {
       "dependency": "direct main",
       "description": {
         "name": "file_picker",
-        "sha256": "be325344c1f3070354a1d84a231a1ba75ea85d413774ec4bdf444c023342e030",
+        "sha256": "4e42aacde3b993c5947467ab640882c56947d9d27342a5b6f2895b23956954a6",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "5.5.0"
+      "version": "6.1.1"
     },
     "file_selector": {
       "dependency": "direct main",
@@ -513,21 +523,21 @@
       "dependency": "transitive",
       "description": {
         "name": "file_selector_android",
-        "sha256": "d41e165d6f798ca941d536e5dc93494d50e78c571c28ad60cfe0b0fefeb9f1e7",
+        "sha256": "b7556052dbcc25ef88f6eba45ab98aa5600382af8dfdabc9d644a93d97b7be7f",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.5.0+3"
+      "version": "0.5.0+4"
     },
     "file_selector_ios": {
       "dependency": "transitive",
       "description": {
         "name": "file_selector_ios",
-        "sha256": "b3fbdda64aa2e335df6e111f6b0f1bb968402ed81d2dd1fa4274267999aa32c2",
+        "sha256": "2f48db7e338b2255101c35c604b7ca5ab588dce032db7fc418a2fe5f28da63f8",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.5.1+6"
+      "version": "0.5.1+7"
     },
     "file_selector_linux": {
       "dependency": "transitive",
@@ -543,11 +553,11 @@
       "dependency": "transitive",
       "description": {
         "name": "file_selector_macos",
-        "sha256": "182c3f8350cee659f7b115e956047ee3dc672a96665883a545e81581b9a82c72",
+        "sha256": "b15c3da8bd4908b9918111fa486903f5808e388b8d1c559949f584725a6594d6",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.9.3+2"
+      "version": "0.9.3+3"
     },
     "file_selector_platform_interface": {
       "dependency": "transitive",
@@ -629,11 +639,11 @@
       "dependency": "direct dev",
       "description": {
         "name": "flutter_lints",
-        "sha256": "a25a15ebbdfc33ab1cd26c63a6ee519df92338a9c10f122adda92938253bef04",
+        "sha256": "e2a421b7e59244faef694ba7b30562e489c2b489866e505074eb005cd7060db7",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.0.3"
+      "version": "3.0.1"
     },
     "flutter_localizations": {
       "dependency": "direct main",
@@ -645,21 +655,21 @@
       "dependency": "direct main",
       "description": {
         "name": "flutter_markdown",
-        "sha256": "8afc9a6aa6d8e8063523192ba837149dbf3d377a37c0b0fc579149a1fbd4a619",
+        "sha256": "35108526a233cc0755664d445f8a6b4b61e6f8fe993b3658b80b4a26827fc196",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.6.18"
+      "version": "0.6.18+2"
     },
     "flutter_plugin_android_lifecycle": {
       "dependency": "transitive",
       "description": {
         "name": "flutter_plugin_android_lifecycle",
-        "sha256": "f185ac890306b5779ecbd611f52502d8d4d63d27703ef73161ca0407e815f02c",
+        "sha256": "b068ffc46f82a55844acfa4fdbb61fad72fa2aef0905548419d97f0f95c456da",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.0.16"
+      "version": "2.0.17"
     },
     "flutter_test": {
       "dependency": "transitive",
@@ -687,21 +697,21 @@
       "dependency": "direct main",
       "description": {
         "name": "gal",
-        "sha256": "ebc581bea458be47e8e80761c4449ad3a0f045db206f6f4648885ac474444246",
+        "sha256": "e53ff8647a031e7e4562b4f5978d3008328aeef650c293a3c92d8411e3e299f7",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.1.2"
+      "version": "2.1.4"
     },
     "get_it": {
       "dependency": "transitive",
       "description": {
         "name": "get_it",
-        "sha256": "66c270f23f1b49d3af9c6651d8c40367319f4abefffc23380e4e7c5efd9fe4a7",
+        "sha256": "f79870884de16d689cf9a7d15eedf31ed61d750e813c538a6efb92660fea83c3",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "7.6.2"
+      "version": "7.6.4"
     },
     "glob": {
       "dependency": "transitive",
@@ -723,6 +733,16 @@
       "source": "hosted",
       "version": "2.3.1"
     },
+    "gtk": {
+      "dependency": "transitive",
+      "description": {
+        "name": "gtk",
+        "sha256": "e8ce9ca4b1df106e4d72dad201d345ea1a036cc12c360f1a7d5a758f78ffa42c",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.1.0"
+    },
     "html": {
       "dependency": "transitive",
       "description": {
@@ -787,11 +807,11 @@
       "dependency": "transitive",
       "description": {
         "name": "image",
-        "sha256": "a72242c9a0ffb65d03de1b7113bc4e189686fc07c7147b8b41811d0dd0e0d9bf",
+        "sha256": "028f61960d56f26414eb616b48b04eb37d700cbe477b7fb09bf1d7ce57fd9271",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "4.0.17"
+      "version": "4.1.3"
     },
     "image_picker": {
       "dependency": "direct main",
@@ -807,11 +827,11 @@
       "dependency": "transitive",
       "description": {
         "name": "image_picker_android",
-        "sha256": "d32a997bcc4ee135aebca8e272b7c517927aa65a74b9c60a81a2764ef1a0462d",
+        "sha256": "d6a6e78821086b0b737009b09363018309bbc6de3fd88cc5c26bc2bb44a4957f",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.8.7+5"
+      "version": "0.8.8+2"
     },
     "image_picker_for_web": {
       "dependency": "transitive",
@@ -827,11 +847,11 @@
       "dependency": "transitive",
       "description": {
         "name": "image_picker_ios",
-        "sha256": "c5538cacefacac733c724be7484377923b476216ad1ead35a0d2eadcdc0fc497",
+        "sha256": "76ec722aeea419d03aa915c2c96bf5b47214b053899088c9abb4086ceecf97a7",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.8.8+2"
+      "version": "0.8.8+4"
     },
     "image_picker_linux": {
       "dependency": "transitive",
@@ -873,6 +893,46 @@
       "source": "hosted",
       "version": "0.2.1+1"
     },
+    "in_app_purchase": {
+      "dependency": "direct main",
+      "description": {
+        "name": "in_app_purchase",
+        "sha256": "bdda02b5b11b56d5e29c7f0c57c433db3452b0c8ce1c37cbfcf1de52946efd9f",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "3.1.11"
+    },
+    "in_app_purchase_android": {
+      "dependency": "transitive",
+      "description": {
+        "name": "in_app_purchase_android",
+        "sha256": "c4b84caa4e2c7ffebda444c5033fd8423cc3a45a6e1066929bbbcd4daf665db5",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.3.0+15"
+    },
+    "in_app_purchase_platform_interface": {
+      "dependency": "transitive",
+      "description": {
+        "name": "in_app_purchase_platform_interface",
+        "sha256": "5168afbc54f406f741252b66d41872c1193a0066a6edcb587176290b92e2d537",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.3.6"
+    },
+    "in_app_purchase_storekit": {
+      "dependency": "transitive",
+      "description": {
+        "name": "in_app_purchase_storekit",
+        "sha256": "29526f5ce85bd908b4cacdadb2e8ef299bccbb516b90d2881805343f868502ab",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.3.7"
+    },
     "intl": {
       "dependency": "direct main",
       "description": {
@@ -937,11 +997,11 @@
       "dependency": "transitive",
       "description": {
         "name": "lints",
-        "sha256": "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452",
+        "sha256": "cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.1.1"
+      "version": "3.0.0"
     },
     "logging": {
       "dependency": "direct main",
@@ -1017,11 +1077,11 @@
       "dependency": "direct dev",
       "description": {
         "name": "msix",
-        "sha256": "6e76e2491d5c809d784ce2b68e6c3426097fb5c68e61fe121c8c3341ab89bf46",
+        "sha256": "519b183d15dc9f9c594f247e2d2339d855cf0eaacc30e19b128e14f3ecc62047",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.16.4"
+      "version": "3.16.7"
     },
     "nested": {
       "dependency": "transitive",
@@ -1147,11 +1207,11 @@
       "dependency": "transitive",
       "description": {
         "name": "path_provider_android",
-        "sha256": "6b8b19bd80da4f11ce91b2d1fb931f3006911477cec227cce23d3253d80df3f1",
+        "sha256": "e595b98692943b4881b219f0a9e3945118d3c16bd7e2813f98ec6e532d905f72",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.2.0"
+      "version": "2.2.1"
     },
     "path_provider_foundation": {
       "dependency": "transitive",
@@ -1207,11 +1267,11 @@
       "dependency": "transitive",
       "description": {
         "name": "permission_handler_android",
-        "sha256": "ace7d15a3d1a4a0b91c041d01e5405df221edb9de9116525efc773c74e6fc790",
+        "sha256": "f9fddd3b46109bd69ff3f9efa5006d2d309b7aec0f3c1c5637a60a2d5659e76e",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "11.0.5"
+      "version": "11.1.0"
     },
     "permission_handler_apple": {
       "dependency": "transitive",
@@ -1237,8 +1297,8 @@
       "dependency": "direct overridden",
       "description": {
         "path": ".",
-        "ref": "fc09b707ab4535a9214c87b16f09feda7e765d90",
-        "resolved-ref": "fc09b707ab4535a9214c87b16f09feda7e765d90",
+        "ref": "2dadd8afbf81e0e3e4791d7144e689555e58f649",
+        "resolved-ref": "2dadd8afbf81e0e3e4791d7144e689555e58f649",
         "url": "https://github.com/localsend/permission_handler_windows_noop.git"
       },
       "source": "git",
@@ -1258,31 +1318,31 @@
       "dependency": "transitive",
       "description": {
         "name": "photo_manager",
-        "sha256": "41eaa1d1fa51bac1c8f2f6debfd34074edcc6b330aa96bb3d33c3bc2fc6c8a5c",
+        "sha256": "2d698826421ebd045ecc0df60422e9dd24bd22b178310b68444385f783735b55",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.7.2"
+      "version": "2.8.1"
     },
     "platform": {
       "dependency": "transitive",
       "description": {
         "name": "platform",
-        "sha256": "ae68c7bfcd7383af3629daafb32fb4e8681c7154428da4febcff06200585f102",
+        "sha256": "0a279f0707af40c890e80b1e9df8bb761694c074ba7e1d4ab1bc4b728e200b59",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.1.2"
+      "version": "3.1.3"
     },
     "plugin_platform_interface": {
       "dependency": "transitive",
       "description": {
         "name": "plugin_platform_interface",
-        "sha256": "da3fdfeccc4d4ff2da8f8c556704c08f912542c5fb3cf2233ed75372384a034d",
+        "sha256": "f4f88d4a900933e7267e2b353594774fc0d07fb072b47eedcd5b54e1ea3269f8",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.1.6"
+      "version": "2.1.7"
     },
     "pointycastle": {
       "dependency": "transitive",
@@ -1308,21 +1368,21 @@
       "dependency": "direct main",
       "description": {
         "name": "pretty_qr_code",
-        "sha256": "ea7ccb3069e0f5b89b441449b9ec10f4148ddda7a4bef89a130d2ebdaa0be647",
+        "sha256": "799fa8d5c605028302cb7debbf3f180ce56678c4927fb2ecc4b174a3bee526d6",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.0.3"
+      "version": "3.0.0"
     },
     "provider": {
       "dependency": "transitive",
       "description": {
         "name": "provider",
-        "sha256": "cdbe7530b12ecd9eb455bdaa2fcb8d4dad22e80b8afb4798b41479d5ce26847f",
+        "sha256": "9a96a0a19b594dbc5bf0f1f27d2bc67d5f95957359b461cd9feb44ed6ae75096",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "6.0.5"
+      "version": "6.1.1"
     },
     "pub_semver": {
       "dependency": "transitive",
@@ -1358,41 +1418,41 @@
       "dependency": "transitive",
       "description": {
         "name": "refena",
-        "sha256": "229d7bdc8cfadcb9cf2358aec48fbaedf5fdb4ad079935154479dbbddf21f0d8",
+        "sha256": "dad98c0d372617054a86b33a504fb973ba083c21b7a2b321a4b2142fae3342a2",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.37.0"
+      "version": "1.5.0"
     },
     "refena_flutter": {
       "dependency": "direct main",
       "description": {
         "name": "refena_flutter",
-        "sha256": "02e9ebcf4dab237130adb9aec1152764828b39c75a81985c58145cb8cca71b15",
+        "sha256": "fcd8e28e50515182a40abc2718600bbac11ba4757c2b2b92b71177fbc2ee9721",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.37.0"
+      "version": "1.5.0"
     },
     "refena_inspector": {
       "dependency": "direct dev",
       "description": {
         "name": "refena_inspector",
-        "sha256": "be1292f944ec3eadbff5bdb93969d8e3ff7b2538a9cd6ce39e2a1b08b5f82352",
+        "sha256": "495822cc8142b3a5826b5f17061b8ea60aa4b0fd7758fdec9746b85cbd61895d",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.8.0"
+      "version": "1.2.0"
     },
     "refena_inspector_client": {
       "dependency": "direct main",
       "description": {
         "name": "refena_inspector_client",
-        "sha256": "411cd55af364d6654f1ef117fe08e626c22b6fe514c28d9f22742eba2f80c551",
+        "sha256": "f01636eb2c9609e9a5df5591132df5d3008a4a397b70166bc18c464af09880a6",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.8.0"
+      "version": "1.2.0"
     },
     "routerino": {
       "dependency": "direct main",
@@ -1488,14 +1548,14 @@
       "dependency": "transitive",
       "description": {
         "name": "shared_preferences_linux",
-        "sha256": "c2eb5bf57a2fe9ad6988121609e47d3e07bb3bdca5b6f8444e4cf302428a128a",
+        "sha256": "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.3.1"
+      "version": "2.3.2"
     },
     "shared_preferences_platform_interface": {
-      "dependency": "transitive",
+      "dependency": "direct main",
       "description": {
         "name": "shared_preferences_platform_interface",
         "sha256": "d4ec5fc9ebb2f2e056c617112aa75dcf92fc2e4faaf2ae999caa297473f75d8a",
@@ -1518,11 +1578,11 @@
       "dependency": "transitive",
       "description": {
         "name": "shared_preferences_windows",
-        "sha256": "f763a101313bd3be87edffe0560037500967de9c394a714cd598d945517f694f",
+        "sha256": "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.3.1"
+      "version": "2.3.2"
     },
     "shared_storage": {
       "dependency": "direct main",
@@ -1604,31 +1664,31 @@
       "dependency": "direct main",
       "description": {
         "name": "slang",
-        "sha256": "829ae38374a328ac8d97d5835e8b4e9bbed1993f66ca85771c5ccec9c87ac397",
+        "sha256": "fe73e995287db77a32ef5a4ab8247bd20adc7a27ba2a4ba373a8132164eba654",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.25.0"
+      "version": "3.26.1"
     },
     "slang_build_runner": {
       "dependency": "direct dev",
       "description": {
         "name": "slang_build_runner",
-        "sha256": "f5003a3aa8a6a72de59c8ad29c072da9ab5d1b81c599798c0f651c4e5c7e25e5",
+        "sha256": "72364adbb8d682b48b72402fd67f84e1b62fd96424eae98477a8fe58faec280c",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.25.0"
+      "version": "3.26.1"
     },
     "slang_flutter": {
       "dependency": "direct main",
       "description": {
         "name": "slang_flutter",
-        "sha256": "cb5e1611744cca620cc03f93a54eca6918e25ae7d600cd940ef2d556e2be4c64",
+        "sha256": "df1d6e5a7237028bcf94f7401d575fdfee8c9ca066b3e9a02acdcd5096e2a25a",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.25.0"
+      "version": "3.26.1"
     },
     "slang_gpt": {
       "dependency": "direct dev",
@@ -1815,11 +1875,11 @@
       "dependency": "transitive",
       "description": {
         "name": "type_plus",
-        "sha256": "52af1140887d0ce0ea89c768dfde1b244cd531221c7f48c8c29b1d24ae8aed9a",
+        "sha256": "2e33cfac2e129297d5874567bdf7587502ec359881e9318551e014d91b02f84a",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.1.0"
+      "version": "2.1.0"
     },
     "typed_data": {
       "dependency": "transitive",
@@ -1835,81 +1895,81 @@
       "dependency": "direct main",
       "description": {
         "name": "url_launcher",
-        "sha256": "47e208a6711459d813ba18af120d9663c20bdf6985d6ad39fe165d2538378d27",
+        "sha256": "b1c9e98774adf8820c96fbc7ae3601231d324a7d5ebd8babe27b6dfac91357ba",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "6.1.14"
+      "version": "6.2.1"
     },
     "url_launcher_android": {
       "dependency": "transitive",
       "description": {
         "name": "url_launcher_android",
-        "sha256": "b04af59516ab45762b2ca6da40fa830d72d0f6045cd97744450b73493fa76330",
+        "sha256": "31222ffb0063171b526d3e569079cf1f8b294075ba323443fdc690842bfd4def",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "6.1.0"
+      "version": "6.2.0"
     },
     "url_launcher_ios": {
       "dependency": "transitive",
       "description": {
         "name": "url_launcher_ios",
-        "sha256": "7c65021d5dee51813d652357bc65b8dd4a6177082a9966bc8ba6ee477baa795f",
+        "sha256": "bba3373219b7abb6b5e0d071b0fe66dfbe005d07517a68e38d4fc3638f35c6d3",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "6.1.5"
+      "version": "6.2.1"
     },
     "url_launcher_linux": {
       "dependency": "transitive",
       "description": {
         "name": "url_launcher_linux",
-        "sha256": "b651aad005e0cb06a01dbd84b428a301916dc75f0e7ea6165f80057fee2d8e8e",
+        "sha256": "9f2d390e096fdbe1e6e6256f97851e51afc2d9c423d3432f1d6a02a8a9a8b9fd",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.0.6"
+      "version": "3.1.0"
     },
     "url_launcher_macos": {
       "dependency": "transitive",
       "description": {
         "name": "url_launcher_macos",
-        "sha256": "b55486791f666e62e0e8ff825e58a023fd6b1f71c49926483f1128d3bbd8fe88",
+        "sha256": "b7244901ea3cf489c5335bdacda07264a6e960b1c1b1a9f91e4bc371d9e68234",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.0.7"
+      "version": "3.1.0"
     },
     "url_launcher_platform_interface": {
       "dependency": "transitive",
       "description": {
         "name": "url_launcher_platform_interface",
-        "sha256": "95465b39f83bfe95fcb9d174829d6476216f2d548b79c38ab2506e0458787618",
+        "sha256": "980e8d9af422f477be6948bdfb68df8433be71f5743a188968b0c1b887807e50",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.1.5"
+      "version": "2.2.0"
     },
     "url_launcher_web": {
       "dependency": "transitive",
       "description": {
         "name": "url_launcher_web",
-        "sha256": "2942294a500b4fa0b918685aff406773ba0a4cd34b7f42198742a94083020ce5",
+        "sha256": "7fd2f55fe86cea2897b963e864dc01a7eb0719ecc65fcef4c1cc3d686d718bb2",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.0.20"
+      "version": "2.2.0"
     },
     "url_launcher_windows": {
       "dependency": "transitive",
       "description": {
         "name": "url_launcher_windows",
-        "sha256": "95fef3129dc7cfaba2bc3d5ba2e16063bb561fc6d78e63eee16162bc70029069",
+        "sha256": "7754a1ad30ee896b265f8d14078b0513a4dba28d358eabb9d5f339886f4a1adc",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.0.8"
+      "version": "3.1.0"
     },
     "uuid": {
       "dependency": "direct main",
@@ -1935,11 +1995,11 @@
       "dependency": "transitive",
       "description": {
         "name": "video_player",
-        "sha256": "74b86e63529cf5885130c639d74cd2f9232e7c8a66cbecbddd1dcb9dbd060d1e",
+        "sha256": "e16f0a83601a78d165dabc17e4dac50997604eb9e4cc76e10fa219046b70cef3",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.7.2"
+      "version": "2.8.1"
     },
     "video_player_android": {
       "dependency": "transitive",
@@ -1955,11 +2015,11 @@
       "dependency": "transitive",
       "description": {
         "name": "video_player_avfoundation",
-        "sha256": "6387c2de77763b45104256b3b00b660089be4f909ded8631457dc11bf635e38f",
+        "sha256": "bc923884640d6dc403050586eb40713cdb8d1d84e6886d8aca50ab04c59124c2",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.5.0"
+      "version": "2.5.2"
     },
     "video_player_platform_interface": {
       "dependency": "transitive",
@@ -1975,11 +2035,11 @@
       "dependency": "transitive",
       "description": {
         "name": "video_player_web",
-        "sha256": "2dd24f7ba46bfb5d070e9c795001db95e0ca5f2a3d025e98f287c10c9f0fd62f",
+        "sha256": "ab7a462b07d9ca80bed579e30fb3bce372468f1b78642e0911b10600f2c5cb5b",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.1.1"
+      "version": "2.1.2"
     },
     "vm_service": {
       "dependency": "transitive",
@@ -1995,11 +2055,11 @@
       "dependency": "direct main",
       "description": {
         "name": "wakelock_plus",
-        "sha256": "f45a6c03aa3f8322e0a9d7f4a0482721c8789cb41d555407367650b8f9c26018",
+        "sha256": "f268ca2116db22e57577fb99d52515a24bdc1d570f12ac18bb762361d43b043d",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.1.3"
+      "version": "1.1.4"
     },
     "wakelock_plus_platform_interface": {
       "dependency": "transitive",
@@ -2055,31 +2115,31 @@
       "dependency": "direct main",
       "description": {
         "name": "wechat_assets_picker",
-        "sha256": "00c93a04421013040b555cdcccdb8e90f142a171d6c0d968c2b5042a76013601",
+        "sha256": "0856437acd3a013f34cbca4448ad08bd004f387fc2b11b007b4713f00d63fcb7",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "8.7.1"
+      "version": "8.8.0"
     },
     "win32": {
       "dependency": "transitive",
       "description": {
         "name": "win32",
-        "sha256": "9e82a402b7f3d518fb9c02d0e9ae45952df31b9bf34d77baf19da2de03fc2aaa",
+        "sha256": "b0f37db61ba2f2e9b7a78a1caece0052564d1bc70668156cf3a29d676fe4e574",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "5.0.7"
+      "version": "5.1.1"
     },
     "win32_registry": {
       "dependency": "transitive",
       "description": {
         "name": "win32_registry",
-        "sha256": "e4506d60b7244251bc59df15656a3093501c37fb5af02105a944d73eb95be4c9",
+        "sha256": "41fd8a189940d8696b1b810efb9abcf60827b6cbfab90b0c43e8439e3a39d85a",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.1.1"
+      "version": "1.1.2"
     },
     "window_manager": {
       "dependency": "direct main",
@@ -2120,10 +2180,20 @@
       },
       "source": "hosted",
       "version": "3.1.2"
+    },
+    "yaru": {
+      "dependency": "direct main",
+      "description": {
+        "name": "yaru",
+        "sha256": "037219db9ffe757eae0d929cb9dc1a8b27af9850dc6c0d89ecf597dc4f78a5b6",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.2.0"
     }
   },
   "sdks": {
     "dart": ">=3.1.1 <4.0.0",
-    "flutter": ">=3.13.1"
+    "flutter": ">=3.13.0"
   }
 }
diff --git a/pkgs/applications/networking/localsend/update.sh b/pkgs/applications/networking/localsend/update.sh
index e142c7e37955..e75b28435537 100755
--- a/pkgs/applications/networking/localsend/update.sh
+++ b/pkgs/applications/networking/localsend/update.sh
@@ -1,5 +1,5 @@
 #! /usr/bin/env nix-shell
-#! nix-shell -I nixpkgs=./. -i bash -p curl gnused jq
+#! nix-shell -I nixpkgs=./. -i bash -p curl gnused jq yq nix-prefetch-url
 
 set -eou pipefail
 
@@ -19,3 +19,8 @@ sed -i "s/version = \".*\"/version = \"${latestVersion}\"/" "$ROOT/default.nix"
 DARWIN_x64_URL="https://github.com/localsend/localsend/releases/download/v${latestVersion}/LocalSend-${latestVersion}.dmg"
 DARWIN_X64_SHA=$(nix hash to-sri --type sha256 $(nix-prefetch-url ${DARWIN_x64_URL}))
 sed -i "/darwin/,/hash/{s|hash = \".*\"|hash = \"${DARWIN_X64_SHA}\"|}" "$ROOT/default.nix"
+
+GIT_SRC_URL="https://github.com/localsend/localsend/archive/refs/tags/v${latestVersion}.tar.gz"
+GIT_SRC_SHA=$(nix hash to-sri --type sha256 $(nix-prefetch-url --unpack ${GIT_SRC_URL}))
+sed -i "/linux/,/hash/{s|hash = \".*\"|hash = \"${GIT_SRC_SHA}\"|}" "$ROOT/default.nix"
+curl https://raw.githubusercontent.com/localsend/localsend/v${latestVersion}/app/pubspec.lock | yq . > $ROOT/pubspec.lock.json
diff --git a/pkgs/applications/networking/mailreaders/aerc/default.nix b/pkgs/applications/networking/mailreaders/aerc/default.nix
index 4ca892d13125..2c776a05d053 100644
--- a/pkgs/applications/networking/mailreaders/aerc/default.nix
+++ b/pkgs/applications/networking/mailreaders/aerc/default.nix
@@ -12,17 +12,17 @@
 
 buildGoModule rec {
   pname = "aerc";
-  version = "0.16.0";
+  version = "0.17.0";
 
   src = fetchFromSourcehut {
     owner = "~rjarry";
     repo = "aerc";
     rev = version;
-    hash = "sha256-vmr2U0bz6A7aMZZBtOitA5gKQpXKuNhYxRCmholHYa8=";
+    hash = "sha256-XpVUUAtm6o4DXIouTKRX/8mLERb/4nA+VUGeB21mfjE=";
   };
 
   proxyVendor = true;
-  vendorHash = "sha256-j/wTmlVcyVI4gnjbi7KLzk5rdnZtZLrdSNbihtQJxRY=";
+  vendorHash = "sha256-rycAGqZhO48bPTFO2y2J1d16oon24sEEUns4EayWDvg=";
 
   nativeBuildInputs = [
     scdoc
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/packages.nix b/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
index e46714801bd7..4f74168837fd 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
@@ -44,13 +44,13 @@ rec {
 
   thunderbird-115 = (buildMozillaMach rec {
     pname = "thunderbird";
-    version = "115.6.0";
+    version = "115.7.0";
     application = "comm/mail";
     applicationName = "Mozilla Thunderbird";
     binaryName = pname;
     src = fetchurl {
       url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
-      sha512 = "2484a99a62fc960b7926b1daa6055e14b1f9e1006ea45522d16131071b33003d4f7ef95911fd2ceb3e941f9d251c66d917013d6a5ecd717d2b1c6d33944f2e01";
+      sha512 = "de9edb81cf5da494101bf927a5b963ccdec0cc9bff87ebd72d896c6e25102c1113b326f67302a81abd237048aa1e6150c4a97fe4b1892bc80030cbab9099e2d8";
     };
     extraPatches = [
       # The file to be patched is different from firefox's `no-buildconfig-ffx90.patch`.
diff --git a/pkgs/applications/networking/mkchromecast/default.nix b/pkgs/applications/networking/mkchromecast/default.nix
index fa734e7dea53..f6364f5ba572 100644
--- a/pkgs/applications/networking/mkchromecast/default.nix
+++ b/pkgs/applications/networking/mkchromecast/default.nix
@@ -70,11 +70,11 @@ python3Packages.buildPythonApplication {
   ];
 
   postInstall = ''
-    substituteInPlace $out/lib/${python3Packages.python.libPrefix}/site-packages/mkchromecast/video.py \
+    substituteInPlace $out/${python3Packages.python.sitePackages}/mkchromecast/video.py \
       --replace '/usr/share/mkchromecast/nodejs/' '${placeholder "out"}/share/mkchromecast/nodejs/'
   '' + lib.optionalString stdenv.isDarwin ''
     install -Dm 755 -t $out/bin bin/audiodevice
-    substituteInPlace $out/lib/${python3Packages.python.libPrefix}/site-packages/mkchromecast/audio_devices.py \
+    substituteInPlace $out/${python3Packages.python.sitePackages}/mkchromecast/audio_devices.py \
       --replace './bin/audiodevice' '${placeholder "out"}/bin/audiodevice'
   '';
 
diff --git a/pkgs/applications/networking/nextcloud-client/default.nix b/pkgs/applications/networking/nextcloud-client/default.nix
index 63e84cba1d62..58cb1c6a71b6 100644
--- a/pkgs/applications/networking/nextcloud-client/default.nix
+++ b/pkgs/applications/networking/nextcloud-client/default.nix
@@ -26,7 +26,7 @@
 
 stdenv.mkDerivation rec {
   pname = "nextcloud-client";
-  version = "3.11.0";
+  version = "3.11.1";
 
   outputs = [ "out" "dev" ];
 
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     owner = "nextcloud";
     repo = "desktop";
     rev = "v${version}";
-    hash = "sha256-rqSnCIsXQDf3cNQn4ofjGQkCgwYGyDau/WWUPHziNp4=";
+    hash = "sha256-gskFI6nxRb5lx6EwWuqghqg7NmCaj0JS7PpV0i4qUqQ=";
   };
 
   patches = [
@@ -85,7 +85,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [
     "-DBUILD_UPDATER=off"
     "-DCMAKE_INSTALL_LIBDIR=lib" # expected to be prefix-relative by build code setting RPATH
-    "-DNO_SHIBBOLETH=1" # allows to compile without qtwebkit
+    "-DMIRALL_VERSION_SUFFIX=" # remove git suffix from version
   ];
 
   postBuild = ''
diff --git a/pkgs/applications/networking/p2p/deluge/default.nix b/pkgs/applications/networking/p2p/deluge/default.nix
index 54c378a08625..35db62ef8e4e 100644
--- a/pkgs/applications/networking/p2p/deluge/default.nix
+++ b/pkgs/applications/networking/p2p/deluge/default.nix
@@ -77,7 +77,7 @@ let
         install -Dm444 -t $out/share/applications deluge/ui/data/share/applications/deluge.desktop
       '' else ''
         rm -r $out/bin/deluge-gtk
-        rm -r $out/lib/${python3Packages.python.libPrefix}/site-packages/deluge/ui/gtk3
+        rm -r $out/${python3Packages.python.sitePackages}/deluge/ui/gtk3
         rm -r $out/share/{icons,man/man1/deluge-gtk*,pixmaps}
       '');
 
diff --git a/pkgs/applications/networking/p2p/flood-for-transmission/default.nix b/pkgs/applications/networking/p2p/flood-for-transmission/default.nix
index 1de4e05c6cfc..2ffbeba1f40a 100644
--- a/pkgs/applications/networking/p2p/flood-for-transmission/default.nix
+++ b/pkgs/applications/networking/p2p/flood-for-transmission/default.nix
@@ -6,16 +6,16 @@
 
 buildNpmPackage rec {
   pname = "flood-for-transmission";
-  version = "2023-11-17T12-46-13";
+  version = "2024-01-24T16-52-06";
 
   src = fetchFromGitHub {
     owner = "johman10";
     repo = pname;
     rev = version;
-    hash = "sha256-TaLWhly/4hOigWY1XP7FmgN4LbrdLb79NQ47z5JiiYE=";
+    hash = "sha256-ZV/Gk9DlYkMh8j034YGvMVN7MeOJgFARyOr9Atrs3j4=";
   };
 
-  npmDepsHash = "sha256-PCeknfS81K8ttU4hV2D841tgQsGfIVaAOVIEDXe8fVQ=";
+  npmDepsHash = "sha256-VHWM0vxFKucrmoJiwYpjw7QqhBQw9rPPQVIIevp6Wn0=";
 
   npmInstallFlags = [ "--legacy-peer-deps" ];
 
diff --git a/pkgs/applications/networking/p2p/qbittorrent/default.nix b/pkgs/applications/networking/p2p/qbittorrent/default.nix
index 37e27a884d5d..05006aec3e93 100644
--- a/pkgs/applications/networking/p2p/qbittorrent/default.nix
+++ b/pkgs/applications/networking/p2p/qbittorrent/default.nix
@@ -30,13 +30,13 @@ stdenv.mkDerivation rec {
   pname = "qbittorrent"
     + lib.optionalString (guiSupport && qtVersion == "5") "-qt5"
     + lib.optionalString (!guiSupport) "-nox";
-  version = "4.6.2";
+  version = "4.6.3";
 
   src = fetchFromGitHub {
     owner = "qbittorrent";
     repo = "qBittorrent";
     rev = "release-${version}";
-    hash = "sha256-+leX0T+yJUG6F7WbHa3nCexQZmd7RRfK8Uc+suMJ+vI=";
+    hash = "sha256-4RVJ7xQY9zcB8+RUr80P9xKUXGxt0ATSzYmRDfZIowU=";
   };
 
   nativeBuildInputs = [
@@ -95,6 +95,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/qbittorrent/qBittorrent/blob/release-${version}/Changelog";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ Anton-Latukha kashw2 paveloom ];
+    maintainers = with maintainers; [ Anton-Latukha kashw2 ];
   };
 }
diff --git a/pkgs/applications/networking/protonmail-bridge/default.nix b/pkgs/applications/networking/protonmail-bridge/default.nix
index 3cdde59960a9..772326c1b710 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.8.1";
+  version = "3.8.2";
 
   src = fetchFromGitHub {
     owner = "ProtonMail";
     repo = "proton-bridge";
     rev = "v${version}";
-    hash = "sha256-deddWAguDyUVhW31MIBNC850qeVOQYeBux8W66Diee4=";
+    hash = "sha256-I42f7cV5QsUIPkcc6YDTboS4/LrObHAE3w9S48jsaKM=";
   };
 
   vendorHash = "sha256-6xofWf5WFE1wuCwx8iOMcC3gxDzZB3uw3WErLWluBM8=";
diff --git a/pkgs/applications/networking/pyload-ng/declarative-default-user.patch b/pkgs/applications/networking/pyload-ng/declarative-default-user.patch
new file mode 100644
index 000000000000..3c3e6f4ba724
--- /dev/null
+++ b/pkgs/applications/networking/pyload-ng/declarative-default-user.patch
@@ -0,0 +1,15 @@
+diff --git a/src/pyload/core/__init__.py b/src/pyload/core/__init__.py
+index 4324fc700..f7fcd66ec 100644
+--- a/src/pyload/core/__init__.py
++++ b/src/pyload/core/__init__.py
+@@ -46,8 +46,8 @@ class Exit(Exception):
+ #  improve external scripts
+ class Core:
+     LOCALE_DOMAIN = APPID
+-    DEFAULT_USERNAME = APPID
+-    DEFAULT_PASSWORD = APPID
++    DEFAULT_USERNAME = os.getenv("PYLOAD_DEFAULT_USERNAME", APPID)
++    DEFAULT_PASSWORD = os.getenv("PYLOAD_DEFAULT_PASSWORD", APPID)
+     DEFAULT_DATADIR = os.path.join(
+         os.getenv("APPDATA") or USERHOMEDIR, "pyLoad" if os.name == "nt" else ".pyload"
+     )
diff --git a/pkgs/applications/networking/pyload-ng/declarative-env-config.patch b/pkgs/applications/networking/pyload-ng/declarative-env-config.patch
new file mode 100644
index 000000000000..42f89ee485cb
--- /dev/null
+++ b/pkgs/applications/networking/pyload-ng/declarative-env-config.patch
@@ -0,0 +1,18 @@
+diff --git a/src/pyload/core/__init__.py b/src/pyload/core/__init__.py
+index 4324fc700..5d915a85e 100644
+--- a/src/pyload/core/__init__.py
++++ b/src/pyload/core/__init__.py
+@@ -128,6 +128,13 @@ class Core:
+         else:
+             self._debug = max(0, int(debug))
+
++        # Allow setting any option declaratively, for the NixOS module
++        for env, value in os.environ.items():
++            if not env.startswith("PYLOAD__"):
++                continue
++            section, opt = env.removeprefix("PYLOAD__").lower().split("__")
++            self.config.set(section, opt, value)
++
+         # If no argument set, read storage dir from config file,
+         # otherwise save setting to config dir
+         if storagedir is None:
diff --git a/pkgs/applications/networking/pyload-ng/default.nix b/pkgs/applications/networking/pyload-ng/default.nix
index 4ead723f76e1..1f638d43daef 100644
--- a/pkgs/applications/networking/pyload-ng/default.nix
+++ b/pkgs/applications/networking/pyload-ng/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchPypi, python3 }:
+{ lib, fetchPypi, nixosTests, python3 }:
 
 python3.pkgs.buildPythonApplication rec {
   version = "0.5.0b3.dev75";
@@ -10,6 +10,14 @@ python3.pkgs.buildPythonApplication rec {
     hash = "sha256-1lPIKkZESonDaVCnac0iUu/gCqXVDBhNZrk5S0eC6F0=";
   };
 
+  patches = [
+    # Makes it possible to change the default username/password in the module
+    ./declarative-default-user.patch
+    # Makes it possible to change the configuration through environment variables
+    # in the NixOS module (aimed mostly at listen address/port)
+    ./declarative-env-config.patch
+  ];
+
   postPatch = ''
     # relax version bounds
     sed -i 's/\([A-z0-9]*\)~=.*$/\1/' setup.cfg
@@ -35,14 +43,20 @@ python3.pkgs.buildPythonApplication rec {
     setuptools
   ];
 
-  passthru.optional-dependencies = {
-    plugins = with python3.pkgs; [
-      beautifulsoup4 # for some plugins
-      colorlog # colorful console logging
-      pillow # for some CAPTCHA plugin
-      send2trash # send some files to trash instead of deleting them
-      slixmpp # XMPP plugin
-    ];
+  passthru = {
+    optional-dependencies = {
+      plugins = with python3.pkgs; [
+        beautifulsoup4 # for some plugins
+        colorlog # colorful console logging
+        pillow # for some CAPTCHA plugin
+        send2trash # send some files to trash instead of deleting them
+        slixmpp # XMPP plugin
+      ];
+    };
+
+    tests = {
+      inherit (nixosTests) pyload;
+    };
   };
 
   meta = with lib; {
diff --git a/pkgs/applications/networking/qv2ray/default.nix b/pkgs/applications/networking/qv2ray/default.nix
index ee2e7ddf3f08..af1fafea5e94 100644
--- a/pkgs/applications/networking/qv2ray/default.nix
+++ b/pkgs/applications/networking/qv2ray/default.nix
@@ -5,7 +5,6 @@
 , symlinkJoin
 , qttools
 , cmake
-, clang_8
 , grpc
 , protobuf
 , openssl
@@ -68,8 +67,7 @@ mkDerivation rec {
     pkg-config
     qttools
     curl
-    # The default clang_7 will result in reproducible ICE.
-  ] ++ lib.optional (stdenv.isDarwin) clang_8;
+  ];
 
   meta = with lib; {
     description = "An GUI frontend to v2ray";
diff --git a/pkgs/applications/networking/remote/freerdp/default.nix b/pkgs/applications/networking/remote/freerdp/default.nix
index 0796e03a17d5..fc3cbbcd1109 100644
--- a/pkgs/applications/networking/remote/freerdp/default.nix
+++ b/pkgs/applications/networking/remote/freerdp/default.nix
@@ -76,13 +76,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "freerdp";
-  version = "2.11.2";
+  version = "2.11.5";
 
   src = fetchFromGitHub {
     owner = "FreeRDP";
     repo = "FreeRDP";
     rev = version;
-    sha256 = "sha256-buInsfjzpY4EF7bSojy42YNXssbNriSQGYBFE/DUJ7A=";
+    hash = "sha256-WyYBIiIQNDHydJqU3jWNItJU2/sYnRpGHCXE9Xhom5M=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/networking/remote/vmware-horizon-client/default.nix b/pkgs/applications/networking/remote/vmware-horizon-client/default.nix
index 90f155ce2852..ced76131e45b 100644
--- a/pkgs/applications/networking/remote/vmware-horizon-client/default.nix
+++ b/pkgs/applications/networking/remote/vmware-horizon-client/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , lib
 , buildFHSEnvChroot
+, copyDesktopItems
 , fetchurl
 , gsettings-desktop-schemas
 , makeDesktopItem
@@ -10,7 +11,7 @@
 , configText ? ""
 }:
 let
-  version = "2306";
+  version = "2312";
 
   sysArch =
     if stdenv.hostPlatform.system == "x86_64-linux" then "x64"
@@ -19,17 +20,13 @@ let
 
   # For USB support, ensure that /var/run/vmware/<YOUR-UID>
   # exists and is owned by you. Then run vmware-usbarbitrator as root.
-  bins = [
-    "vmware-view"
-    "vmware-usbarbitrator"
-  ];
 
   mainProgram = "vmware-view";
 
   # This forces the default GTK theme (Adwaita) because Horizon is prone to
   # UI usability issues when using non-default themes, such as Adwaita-dark.
-  wrapBinCommands = name: ''
-    makeWrapper "$out/bin/${name}" "$out/bin/${name}_wrapper" \
+  wrapBinCommands = path: name: ''
+    makeWrapper "$out/${path}/${name}" "$out/bin/${name}_wrapper" \
     --set GTK_THEME Adwaita \
     --suffix XDG_DATA_DIRS : "${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}" \
     --suffix LD_LIBRARY_PATH : "$out/lib/vmware/view/crtbora:$out/lib/vmware"
@@ -39,8 +36,8 @@ let
     pname = "vmware-horizon-files";
     inherit version;
     src = fetchurl {
-      url = "https://download3.vmware.com/software/CART24FQ2_LIN_2306_TARBALL/VMware-Horizon-Client-Linux-2306-8.10.0-21964631.tar.gz";
-      sha256 = "6051f6f1617385b3c211b73ff42dad27e2d22362df6ffd2f3d9f559d0b5743ea";
+      url = "https://download3.vmware.com/software/CART24FQ4_LIN_2312_TARBALL/VMware-Horizon-Client-Linux-2312-8.12.0-23149323.tar.gz";
+      sha256 = "15ca1d6028b9ca88e23fa363a2942fd76456c19e95ced4734595c3dc44db38d8";
     };
     nativeBuildInputs = [ makeWrapper ];
     installPhase = ''
@@ -49,7 +46,7 @@ let
 
       chmod -R u+w ext/usr/lib
       mv ext/usr $out
-      cp -r ext/bin ext/lib $out/
+      cp -r ext/lib $out/
 
       # Horizon includes a copy of libstdc++ which is loaded via $LD_LIBRARY_PATH
       # when it cannot detect a new enough version already present on the system.
@@ -62,7 +59,8 @@ let
       mkdir $out/lib/vmware/view/pkcs11
       ln -s ${opensc}/lib/pkcs11/opensc-pkcs11.so $out/lib/vmware/view/pkcs11/libopenscpkcs11.so
 
-      ${lib.concatMapStrings wrapBinCommands bins}
+      ${wrapBinCommands "bin" "vmware-view"}
+      ${wrapBinCommands "lib/vmware/view/usb" "vmware-usbarbitrator"}
     '';
   };
 
@@ -121,11 +119,6 @@ let
     mimeTypes = [ "x-scheme-handler/vmware-view" ];
   };
 
-  binLinkCommands = lib.concatMapStringsSep
-    "\n"
-    (bin: "ln -s ${vmwareFHSUserEnv bin}/bin/${bin} $out/bin/")
-    bins;
-
 in
 stdenv.mkDerivation {
   pname = "vmware-horizon-client";
@@ -133,10 +126,16 @@ stdenv.mkDerivation {
 
   dontUnpack = true;
 
+  nativeBuildInputs = [ copyDesktopItems ];
+
+  desktopItems = [ desktopItem ];
+
   installPhase = ''
-    mkdir -p $out/bin $out/share/applications
-    cp ${desktopItem}/share/applications/* $out/share/applications/
-    ${binLinkCommands}
+    runHook preInstall
+    mkdir -p $out/bin
+    ln -s ${vmwareFHSUserEnv "vmware-view"}/bin/vmware-view $out/bin/
+    ln -s ${vmwareFHSUserEnv "vmware-usbarbitrator"}/bin/vmware-usbarbitrator $out/bin/
+    runHook postInstall
   '';
 
   unwrapped = vmwareHorizonClientFiles;
diff --git a/pkgs/applications/networking/remote/xrdp/default.nix b/pkgs/applications/networking/remote/xrdp/default.nix
index c90ec78c9aa4..c9f679d9e124 100644
--- a/pkgs/applications/networking/remote/xrdp/default.nix
+++ b/pkgs/applications/networking/remote/xrdp/default.nix
@@ -22,7 +22,7 @@
 }:
 
 let
-  version = "0.9.23.1";
+  version = "0.9.24";
   patchedXrdpSrc = applyPatches {
     patches = [ ./dynamic_config.patch ];
     name = "xrdp-patched-${version}";
@@ -31,7 +31,7 @@ let
       repo = "xrdp";
       rev = "v${version}";
       fetchSubmodules = true;
-      hash = "sha256-fJKSEHB5X5QydKgRPjIMJzNaAy1EVJifHETSGmlJttQ=";
+      hash = "sha256-Kvj72l+jmoad6VgmCYW2KtQAbJMJ8AZjNIYJ5lUNzRM=";
     };
   };
 
diff --git a/pkgs/applications/networking/seahub/default.nix b/pkgs/applications/networking/seahub/default.nix
index 089eabf93d65..0e92e996aaa6 100644
--- a/pkgs/applications/networking/seahub/default.nix
+++ b/pkgs/applications/networking/seahub/default.nix
@@ -6,29 +6,22 @@
 , nixosTests
 }:
 let
-  # Seahub 8.x.x does not support django-webpack-loader >=1.x.x
   python = python3.override {
     packageOverrides = self: super: {
-      django-webpack-loader = super.django-webpack-loader.overridePythonAttrs (old: rec {
-        version = "0.7.0";
-        src = old.src.override {
-          inherit version;
-          hash = "sha256-ejyIIBqlRIH5OZRlYVy+e5rs6AgUlqbQKHt8uOIy9Ec=";
-        };
-      });
+      django = super.django_3;
     };
   };
 in
 python.pkgs.buildPythonApplication rec {
   pname = "seahub";
-  version = "9.0.10";
+  version = "10.0.1";
   pyproject = false;
 
   src = fetchFromGitHub {
     owner = "haiwen";
     repo = "seahub";
-    rev = "5971bf25fe67d94ec4d9f53b785c15a098113620"; # using a fixed revision because upstream may re-tag releases :/
-    sha256 = "sha256-7Exvm3EShb/1EqwA4wzWB9zCdv0P/ISmjKSoqtOMnqk=";
+    rev = "e8c02236c0eaca6dde009872745f089da4b77e6e"; # using a fixed revision because upstream may re-tag releases :/
+    sha256 = "sha256-7JXWKEFqCsC+ZByhvyP8AmDpajT3hpgyYDNUqc3wXyg=";
   };
 
   patches = [
diff --git a/pkgs/applications/networking/seaweedfs/default.nix b/pkgs/applications/networking/seaweedfs/default.nix
index 6c091d3f56f7..b41e535b0535 100644
--- a/pkgs/applications/networking/seaweedfs/default.nix
+++ b/pkgs/applications/networking/seaweedfs/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "seaweedfs";
-  version = "3.61";
+  version = "3.62";
 
   src = fetchFromGitHub {
     owner = "seaweedfs";
     repo = "seaweedfs";
     rev = version;
-    hash = "sha256-pDCTiuM3PBQxDIwWCDP9ZIjhVMCg70bZzYntJaUn574=";
+    hash = "sha256-z4RyrrM27krm54iVWKDbMB14MiiydLj4Z/RdjYMZxh0=";
   };
 
-  vendorHash = "sha256-9i11Kf6rIS1ktHMCk9y3+e0u1hDGNRP/oHKWpOVayy4=";
+  vendorHash = "sha256-WAGuaL8kDtMUDkHetWagCGZS91Y3Tg2DV2StKgRpuIg=";
 
   subPackages = [ "weed" ];
 
diff --git a/pkgs/applications/networking/shellhub-agent/default.nix b/pkgs/applications/networking/shellhub-agent/default.nix
index e698f78c3e72..ece2ced88aaa 100644
--- a/pkgs/applications/networking/shellhub-agent/default.nix
+++ b/pkgs/applications/networking/shellhub-agent/default.nix
@@ -11,18 +11,18 @@
 
 buildGoModule rec {
   pname = "shellhub-agent";
-  version = "0.13.6";
+  version = "0.14.2";
 
   src = fetchFromGitHub {
     owner = "shellhub-io";
     repo = "shellhub";
     rev = "v${version}";
-    hash = "sha256-jdZNfNdykkpuIzA0TXEXkH21HTJzhndyRlMj3Kt7WlM=";
+    hash = "sha256-VP1U5JSVsAcGeV/xUrToJfrdw0TWbHhmi2Y/tM5bHpQ=";
   };
 
   modRoot = "./agent";
 
-  vendorHash = "sha256-Dg9TL/B9KgYGA0lILxVt+kXy5kfnW2sYJuP0lc+CROM=";
+  vendorHash = "sha256-ISFnljpdOcvhNTM4jMGmi2xArjWSmjJj7dCnlcSfkVI=";
 
   ldflags = [ "-s" "-w" "-X main.AgentVersion=v${version}" ];
 
diff --git a/pkgs/applications/networking/sniffers/wireshark/default.nix b/pkgs/applications/networking/sniffers/wireshark/default.nix
index 53f4803c7c5b..deae24ec6547 100644
--- a/pkgs/applications/networking/sniffers/wireshark/default.nix
+++ b/pkgs/applications/networking/sniffers/wireshark/default.nix
@@ -189,7 +189,7 @@ stdenv.mkDerivation rec {
     changelog = "https://www.wireshark.org/docs/relnotes/wireshark-${version}.html";
     license = licenses.gpl2Plus;
     platforms = platforms.linux ++ platforms.darwin;
-    maintainers = with maintainers; [ bjornfor fpletz paveloom ];
+    maintainers = with maintainers; [ bjornfor fpletz ];
     mainProgram = if withQt then "wireshark" else "tshark";
   };
 }
diff --git a/pkgs/applications/networking/sync/rclone/default.nix b/pkgs/applications/networking/sync/rclone/default.nix
index 96cf56379a1c..735133d641fe 100644
--- a/pkgs/applications/networking/sync/rclone/default.nix
+++ b/pkgs/applications/networking/sync/rclone/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "rclone";
-  version = "1.65.1";
+  version = "1.65.2";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-wRksCRQR6JZjYtXgq3iARCoYck76O17Kd2Ht1XpA9KE=";
+    hash = "sha256-P7VJ6pauZ7J8LvyYNi7ANsKrYOcmInZCfRO+X+K6LzI=";
   };
 
-  vendorHash = "sha256-kWaMo6ALieuwf53H05UdoI7xtH1LAnsD6Ak9bJTa6jc=";
+  vendorHash = "sha256-budC8psvTtfVi3kYOaJ+dy/9H11ekJVkXMmeV9RhXVU=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/applications/networking/sync/rsync/configure.ac-fix-failing-IPv6-check.patch b/pkgs/applications/networking/sync/rsync/configure.ac-fix-failing-IPv6-check.patch
new file mode 100644
index 000000000000..3305653d025f
--- /dev/null
+++ b/pkgs/applications/networking/sync/rsync/configure.ac-fix-failing-IPv6-check.patch
@@ -0,0 +1,12 @@
+diff -rup rsync-3.2.7/configure.sh rsync-3.2.7-fixed/configure.sh
+--- rsync-3.2.7/configure.sh	2022-10-20 17:57:22
++++ rsync-3.2.7-fixed/configure.sh	2024-01-01 19:51:58
+@@ -7706,7 +7706,7 @@ else $as_nop
+ #include <stdlib.h>
+ #include <sys/types.h>
+ #include <sys/socket.h>
+-main()
++int main()
+ {
+    if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
+      exit(1);
diff --git a/pkgs/applications/networking/sync/rsync/default.nix b/pkgs/applications/networking/sync/rsync/default.nix
index 1baf1c40eb14..0d8b3d78ec05 100644
--- a/pkgs/applications/networking/sync/rsync/default.nix
+++ b/pkgs/applications/networking/sync/rsync/default.nix
@@ -34,6 +34,8 @@ stdenv.mkDerivation rec {
     # https://github.com/WayneD/rsync/issues/511#issuecomment-1774612577
     # original source: https://build.opensuse.org/package/view_file/network/rsync/rsync-fortified-strlcpy-fix.patch?expand=1&rev=3f8dd2f4a404c96c0f69176e60893714
     ./rsync-fortified-strlcpy-fix.patch
+    # https://github.com/WayneD/rsync/pull/558
+    ./configure.ac-fix-failing-IPv6-check.patch
   ];
 
   buildInputs = [ libiconv zlib popt ]
diff --git a/pkgs/applications/networking/sync/storj-uplink/default.nix b/pkgs/applications/networking/sync/storj-uplink/default.nix
index d38a7544f3eb..d1f141be8229 100644
--- a/pkgs/applications/networking/sync/storj-uplink/default.nix
+++ b/pkgs/applications/networking/sync/storj-uplink/default.nix
@@ -5,18 +5,18 @@
 
 buildGoModule rec {
   pname = "storj-uplink";
-  version = "1.93.2";
+  version = "1.96.2";
 
   src = fetchFromGitHub {
     owner = "storj";
     repo = "storj";
     rev = "v${version}";
-    hash = "sha256-3q3z5dYFjBpBbwj64Kp2fiTmxn2PUgc0DGJBMR71yN0=";
+    hash = "sha256-mQIrXDEfMMrubQyn90eu0k3isvnpaF237Tpd84HhUfU=";
   };
 
   subPackages = [ "cmd/uplink" ];
 
-  vendorHash = "sha256-1K74yoMMeMzjldMjZVmmCJRrLYBrVmmOgqqCA1CBzrQ=";
+  vendorHash = "sha256-cUhdl0jqgkA89NeOdFSifR5LsTjeYifOXqBu3qCAovk=";
 
   ldflags = [ "-s" "-w" ];
 
diff --git a/pkgs/applications/networking/syncthing/default.nix b/pkgs/applications/networking/syncthing/default.nix
index 01387284d2c4..5a3c42f2deb5 100644
--- a/pkgs/applications/networking/syncthing/default.nix
+++ b/pkgs/applications/networking/syncthing/default.nix
@@ -13,16 +13,16 @@ let
   common = { stname, target, postInstall ? "" }:
     buildGoModule rec {
       pname = stname;
-      version = "1.27.1";
+      version = "1.27.2";
 
       src = fetchFromGitHub {
         owner = "syncthing";
         repo = "syncthing";
         rev = "v${version}";
-        hash = "sha256-nQQSXEPCe+cz1c0U/ui0xe6bxUOagGJg+kRxDMmOiy0=";
+        hash = "sha256-CDOWN2b7DCRqhbJmiz4zp+q03GwmuVKv1MZT3NaO7lI=";
       };
 
-      vendorHash = "sha256-QYURWIE7SRQFXh2scrREKhUuTPjpqzPojfmcdJW1ogQ=";
+      vendorHash = "sha256-3MWVx0N17YgvFira56gvqMJlR1o/udtmWBn9oEVEp04=";
 
       nativeBuildInputs = lib.optionals stdenv.isDarwin [
         # Recent versions of macOS seem to require binaries to be signed when
diff --git a/pkgs/applications/networking/twingate/default.nix b/pkgs/applications/networking/twingate/default.nix
index 86349576d44d..3ac7e18086a9 100644
--- a/pkgs/applications/networking/twingate/default.nix
+++ b/pkgs/applications/networking/twingate/default.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation rec {
   pname = "twingate";
-  version = "2023.250.97595";
+  version = "2024.018.111147";
 
   src = fetchurl {
     url = "https://binaries.twingate.com/client/linux/DEB/x86_64/${version}/twingate-amd64.deb";
-    hash = "sha256-JTkyJLbcAEcmftPKejMnxwIY+ICkaFar2fahKeXk3fs=";
+    hash = "sha256-lOW4Y2zRP1UGMgBSC3K92mF5172kp0B1nwfRpE1QX/M=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/networking/vnstat/default.nix b/pkgs/applications/networking/vnstat/default.nix
index 6eb7271d8f30..828a2514c766 100644
--- a/pkgs/applications/networking/vnstat/default.nix
+++ b/pkgs/applications/networking/vnstat/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vnstat";
-  version = "2.11";
+  version = "2.12";
 
   src = fetchFromGitHub {
     owner = "vergoh";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-IO5B+jyY6izPpam3Qt4Hu8BOGwfO10ER/GFEbsQORK0=";
+    sha256 = "sha256-JwVYhmCscEdbwNGa+aKdOt8cIclpvjl4tmWFU3zhcwc=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/networking/weather/meteo/default.nix b/pkgs/applications/networking/weather/meteo/default.nix
index 45da18f8f7be..9b64e8e6c1cb 100644
--- a/pkgs/applications/networking/weather/meteo/default.nix
+++ b/pkgs/applications/networking/weather/meteo/default.nix
@@ -20,13 +20,13 @@
 
 stdenv.mkDerivation rec {
   pname = "meteo";
-  version = "0.9.9.2";
+  version = "0.9.9.3";
 
   src = fetchFromGitLab {
     owner = "bitseater";
     repo = pname;
     rev = version;
-    sha256 = "sha256-9+FNpLjiX0zdsUnbBnNSLt/Ma/cqtclP25tl+faPlpU=";
+    sha256 = "sha256-hubKusrs0Hh8RryoEI29pnhTSNsIbtGMltlH4qoM6gE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/xpipe/default.nix b/pkgs/applications/networking/xpipe/default.nix
index 9ad5e54b0dc5..7894a0fd030e 100644
--- a/pkgs/applications/networking/xpipe/default.nix
+++ b/pkgs/applications/networking/xpipe/default.nix
@@ -33,14 +33,14 @@ let
   }.${system} or throwSystem;
 
   hash = {
-    x86_64-linux = "sha256-tn3vumHjRt5bhNnFA0k8WaJmpCQx7SJea89xf1NGhME=";
+    x86_64-linux = "sha256-kSJFKKqiSTa7sfHwZ3N7O01Eoi4cr86X7Dxkg+pzSgU=";
   }.${system} or throwSystem;
 
   displayname = "XPipe";
 
 in stdenvNoCC.mkDerivation rec {
   pname = "xpipe";
-  version = "1.7.14";
+  version = "1.7.16";
 
   src = fetchzip {
     url = "https://github.com/xpipe-io/xpipe/releases/download/${version}/xpipe-portable-linux-${arch}.tar.gz";
diff --git a/pkgs/applications/office/activitywatch/default.nix b/pkgs/applications/office/activitywatch/default.nix
index 4187da1bfabb..32c490b0af3d 100644
--- a/pkgs/applications/office/activitywatch/default.nix
+++ b/pkgs/applications/office/activitywatch/default.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchFromGitHub
+, fetchpatch
 , rustPlatform
 , makeWrapper
 , pkg-config
@@ -164,6 +165,14 @@ rec {
         src = ./override-version.patch;
         version = sources.rev;
       })
+
+      # Can be removed with release 0.12.3
+      (fetchpatch {
+        name = "remove-unused-unstable-features.patch";
+        url = "https://github.com/ActivityWatch/aw-server-rust/commit/e1cd761d2f0a9309eb851b59732c2567a7ae2d3a.patch";
+        hash = "sha256-wP+3XZDkr148XY5b8RV3obuLczAFBE3FhaYPqnmmGcU=";
+        includes = [ "aw-server/src/lib.rs" ];
+      })
     ];
 
     nativeBuildInputs = [
diff --git a/pkgs/applications/office/fava/default.nix b/pkgs/applications/office/fava/default.nix
index fac8172c1d86..43f510ce6212 100644
--- a/pkgs/applications/office/fava/default.nix
+++ b/pkgs/applications/office/fava/default.nix
@@ -2,12 +2,12 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "fava";
-  version = "1.27";
+  version = "1.27.1";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-M2uE+/hYUP/l9l5zP/lHJsbMzfQ77cEJBFzbmX29gzM=";
+    hash = "sha256-W/uxzk+/4tDVOL+nVUJfyBAE5sI9/pYq1zu42GCGjSk=";
   };
 
   nativeBuildInputs = with python3.pkgs; [ setuptools-scm ];
diff --git a/pkgs/applications/office/jameica/default.nix b/pkgs/applications/office/jameica/default.nix
index 8fe04cf43ed9..655de5227bb0 100644
--- a/pkgs/applications/office/jameica/default.nix
+++ b/pkgs/applications/office/jameica/default.nix
@@ -1,8 +1,8 @@
 { lib, stdenv, fetchFromGitHub, makeDesktopItem, makeWrapper, wrapGAppsHook, ant, jdk, jre, gtk2, glib, xorg, Cocoa }:
 
 let
-  _version = "2.10.2";
-  _build = "484";
+  _version = "2.10.4";
+  _build = "487";
   version = "${_version}-${_build}";
 
   swtSystem =
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     owner = "willuhn";
     repo = "jameica";
     rev = "V_${builtins.replaceStrings ["."] ["_"] _version}_BUILD_${_build}";
-    sha256 = "1x9sybknzsfxp9z0pvw9dx80732ynyap57y03p7xwwjbcrnjla57";
+    hash = "sha256-MSVSd5DyVL+dcfTDv1M99hxickPwT2Pt6QGNsu6DGZI=";
   };
 
   dontWrapGApps = true;
diff --git a/pkgs/applications/office/libreoffice/darwin/default.nix b/pkgs/applications/office/libreoffice/darwin/default.nix
index 3f69a7fd54e9..0cec562106ab 100644
--- a/pkgs/applications/office/libreoffice/darwin/default.nix
+++ b/pkgs/applications/office/libreoffice/darwin/default.nix
@@ -75,6 +75,7 @@ stdenvNoCC.mkDerivation {
     homepage = "https://libreoffice.org/";
     license = licenses.lgpl3;
     maintainers = with maintainers; [ tricktron ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     platforms = [ "x86_64-darwin" "aarch64-darwin" ];
   };
 }
diff --git a/pkgs/applications/office/paperless-ngx/default.nix b/pkgs/applications/office/paperless-ngx/default.nix
index ce4383c3cc96..94b4ac77b68a 100644
--- a/pkgs/applications/office/paperless-ngx/default.nix
+++ b/pkgs/applications/office/paperless-ngx/default.nix
@@ -18,16 +18,17 @@
 , xcbuild
 , pango
 , pkg-config
+, nltk-data
 }:
 
 let
-  version = "2.3.3";
+  version = "2.4.3";
 
   src = fetchFromGitHub {
     owner = "paperless-ngx";
     repo = "paperless-ngx";
     rev = "refs/tags/v${version}";
-    hash = "sha256-2XnOap37ZQjT0qx2ygxXo7n1HJcIEoc5TrMI1JIk4G8=";
+    hash = "sha256-uFaywZF1e1ELU6EcRxzMqGu3uiFK8MMfrTxb01Drd7k=";
   };
 
   python = python3;
@@ -52,7 +53,7 @@ let
       cd src-ui
     '';
 
-    npmDepsHash = "sha256-BFfbRrpF8p0AfEdl/KDWWG7qN+F9edvTW3j9jgvLIrc=";
+    npmDepsHash = "sha256-4PIslsmbcET/kKLZ/gijwEyBB9zgZR6vMU9h9enzScE=";
 
     nativeBuildInputs = [
       pkg-config
@@ -293,6 +294,7 @@ python.pkgs.buildPythonApplication rec {
 
   passthru = {
     inherit python path frontend;
+    nltkData = with nltk-data; [ punkt snowball_data stopwords ];
     tests = { inherit (nixosTests) paperless; };
   };
 
diff --git a/pkgs/applications/office/paperwork/paperwork-gtk.nix b/pkgs/applications/office/paperwork/paperwork-gtk.nix
index e21379678a17..e783e8f4966f 100644
--- a/pkgs/applications/office/paperwork/paperwork-gtk.nix
+++ b/pkgs/applications/office/paperwork/paperwork-gtk.nix
@@ -64,7 +64,7 @@ python3Packages.buildPythonApplication rec {
     # fixes [WARNING] [openpaperwork_core.resources.setuptools] Failed to find
     # resource file paperwork_gtk.icon.out/paperwork_128.png, tried at path
     # /nix/store/3n5lz6y8k9yks76f0nar3smc8djan3xr-paperwork-2.0.2/lib/python3.8/site-packages/paperwork_gtk/icon/out/paperwork_128.png.
-    site=$out/lib/${python3Packages.python.libPrefix}/site-packages/paperwork_gtk
+    site=$out/${python3Packages.python.sitePackages}/paperwork_gtk
     for i in $site/data/paperwork_*.png; do
       ln -s $i $site/icon/out;
     done
diff --git a/pkgs/applications/office/pdfmixtool/default.nix b/pkgs/applications/office/pdfmixtool/default.nix
index f7b58acf22b8..585c2d43c433 100644
--- a/pkgs/applications/office/pdfmixtool/default.nix
+++ b/pkgs/applications/office/pdfmixtool/default.nix
@@ -2,6 +2,7 @@
 , mkDerivation
 , fetchFromGitLab
 , fetchpatch
+, fetchpatch2
 , cmake
 , pkg-config
 , qtbase
@@ -41,6 +42,11 @@ mkDerivation rec {
       url = "https://gitlab.com/scarpetta/pdfmixtool/-/commit/bd5f78c3a4d977d9b0c74302ce2521c737189b43.diff";
       hash = "sha256-h2g5toFqgEEnObd2TYQms1a1WFTgN7VsIHyy0Uyq4/I=";
     })
+    # https://gitlab.com/scarpetta/pdfmixtool/-/merge_requests/14
+    (fetchpatch2 {
+      url = "https://gitlab.com/scarpetta/pdfmixtool/-/commit/268291317ccd1805dc1c801ff88641ba06c6a7f0.patch";
+      hash = "sha256-56bDoFtE+IOQHcV9xPfyrgYYFvTfB0QiLIfRl91irb0=";
+    })
   ];
 
   meta = with lib; {
diff --git a/pkgs/applications/office/portfolio/default.nix b/pkgs/applications/office/portfolio/default.nix
index 457982fae2e8..b58b0152d41a 100644
--- a/pkgs/applications/office/portfolio/default.nix
+++ b/pkgs/applications/office/portfolio/default.nix
@@ -27,11 +27,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "PortfolioPerformance";
-  version = "0.67.1";
+  version = "0.67.3";
 
   src = fetchurl {
     url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz";
-    hash = "sha256-Bx1Q7eXJuu/Vh6UuZYlkUlvw6FXTObYAynHV+60cNVY=";
+    hash = "sha256-WqWrerEBaaXA9vhpVHEyMZdAxajeOPANFyUeK42cXUU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/office/qownnotes/default.nix b/pkgs/applications/office/qownnotes/default.nix
index 162d4e2683db..0476d6735dc6 100644
--- a/pkgs/applications/office/qownnotes/default.nix
+++ b/pkgs/applications/office/qownnotes/default.nix
@@ -19,14 +19,14 @@
 let
   pname = "qownnotes";
   appname = "QOwnNotes";
-  version = "24.1.2";
+  version = "24.1.5";
 in
 stdenv.mkDerivation {
-  inherit pname appname version;
+  inherit pname version;
 
   src = fetchurl {
     url = "https://github.com/pbek/QOwnNotes/releases/download/v${version}/qownnotes-${version}.tar.xz";
-    hash = "sha256-UlHLGO5Rictj0/eZKxyFKxa/2XasQOAixnejOc+dH0M=";
+    hash = "sha256-iw3MdsS1i7B8RXZk2GXwiOReSUC1IX5z0MTEk9B4nMM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/office/qpdfview/default.nix b/pkgs/applications/office/qpdfview/default.nix
index dd966433acfb..49e2334c8093 100644
--- a/pkgs/applications/office/qpdfview/default.nix
+++ b/pkgs/applications/office/qpdfview/default.nix
@@ -3,6 +3,7 @@
 , fetchurl
 , qmake
 , qtbase
+, qttools
 , qtsvg
 , pkg-config
 , poppler
@@ -24,6 +25,7 @@ mkDerivation rec {
 
   nativeBuildInputs = [
     qmake
+    qttools
     pkg-config
   ];
 
@@ -39,6 +41,7 @@ mkDerivation rec {
   ];
 
   preConfigure = ''
+    lrelease qpdfview.pro
     qmakeFlags+=(*.pro)
   '';
 
diff --git a/pkgs/applications/office/super-productivity/default.nix b/pkgs/applications/office/super-productivity/default.nix
index 1e5852b8cc83..60b7b9ba1129 100644
--- a/pkgs/applications/office/super-productivity/default.nix
+++ b/pkgs/applications/office/super-productivity/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "super-productivity";
-  version = "7.14.3";
+  version = "7.17.2";
 
   src = fetchurl {
     url = "https://github.com/johannesjo/super-productivity/releases/download/v${version}/superProductivity-${version}.AppImage";
-    sha256 = "sha256-wW72T1+RfejaI9LxSxa/g0lvIRmAeFa2ZaEa8K9mRcw=";
+    sha256 = "sha256-CcgjfA0BRfCrRb8N+KIgheUAF+JJK3yIv9Trp+gg+s0=";
     name = "${pname}-${version}.AppImage";
   };
 
diff --git a/pkgs/applications/office/timeular/default.nix b/pkgs/applications/office/timeular/default.nix
index c354f99c55bc..61b9de8029fe 100644
--- a/pkgs/applications/office/timeular/default.nix
+++ b/pkgs/applications/office/timeular/default.nix
@@ -5,12 +5,12 @@
 }:
 
 let
-  version = "6.6.5";
+  version = "6.6.8";
   pname = "timeular";
 
   src = fetchurl {
     url = "https://s3.amazonaws.com/timeular-desktop-packages/linux/production/Timeular-${version}.AppImage";
-    hash = "sha256-Ok2EnRLKrLxZQfPj5/fGGJS4lW6DBEmSx+f+Z2Y77fM=";
+    hash = "sha256-giQjcUnhBGt2egRmYLEL8cFZYKjtUu34ozh1filNyiw=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/applications/office/treesheets/default.nix b/pkgs/applications/office/treesheets/default.nix
index e1062e03f337..1fda91523a5e 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 = "unstable-2024-01-03";
+  version = "unstable-2024-01-30";
 
   src = fetchFromGitHub {
     owner = "aardappel";
     repo = "treesheets";
-    rev = "a8641361b839ed0720f9c6e043420945ac2427a7";
-    sha256 = "MTRcG9fsyypDmVHRgtQFqbbSb0n7X7kXuEM6oYy/OVc=";
+    rev = "f11a3418cb6e403898be215f3efcc2fcb7bc0f19";
+    sha256 = "FOeRfNPX1ER1ZMUWy+4b67XfrATPPZntfhywjaGgDpo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/office/tryton/default.nix b/pkgs/applications/office/tryton/default.nix
index cae2a4b68297..34c65d4e2fe7 100644
--- a/pkgs/applications/office/tryton/default.nix
+++ b/pkgs/applications/office/tryton/default.nix
@@ -21,13 +21,13 @@ with lib;
 
 python3Packages.buildPythonApplication rec {
   pname = "tryton";
-  version = "5.4.2";
+  version = "7.0.5";
 
   disabled = !python3Packages.isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1rca19krvmycdhmi1vb4ixwq0cagmrkhbqry4f19b725nlp8cv0q";
+    sha256 = "sha256-NAnNBfwnMky0qbtU3P5+kHJwCj6nfIQCtYgu6nXLcaQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/office/zotero/default.nix b/pkgs/applications/office/zotero/default.nix
index a23d7d3d8849..a5c49591f086 100644
--- a/pkgs/applications/office/zotero/default.nix
+++ b/pkgs/applications/office/zotero/default.nix
@@ -153,5 +153,6 @@ stdenv.mkDerivation rec {
     license = licenses.agpl3Only;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ i077 ];
+    mainProgram = "zotero";
   };
 }
diff --git a/pkgs/applications/radio/abracadabra/default.nix b/pkgs/applications/radio/abracadabra/default.nix
index 417ca2bc3f42..4210d3190fab 100644
--- a/pkgs/applications/radio/abracadabra/default.nix
+++ b/pkgs/applications/radio/abracadabra/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "abracadabra";
-  version = "2.3.4";
+  version = "2.3.5";
 
   src = fetchFromGitHub {
     owner = "KejPi";
     repo = "AbracaDABra";
     rev = "v${version}";
-    hash = "sha256-giQJ6lOD5TaOa98e7nXf6/HHxP6/TxD9Pgr7xAxvZzs=";
+    hash = "sha256-iWXQ4Tjqz9Y+pihuMDBKi3iwuo5eAyyAMNtRBxojOhs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/radio/cloudlog/default.nix b/pkgs/applications/radio/cloudlog/default.nix
index bcc6655d3dd2..efdf95fc9841 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.2";
+  version = "2.6.3";
 
   src = fetchFromGitHub {
     owner = "magicbug";
     repo = "Cloudlog";
     rev = version;
-    hash = "sha256-1V3btXYozgT22KiihZgUiZIktV2Y7IXJgoq7bn16ikk=";
+    hash = "sha256-axulZxMSgpBtF2cUCUWiVdiEOAalvo6RNtG4xpEmC7o=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/radio/flamp/default.nix b/pkgs/applications/radio/flamp/default.nix
index 0ac84d9420aa..6d9c58eb9ab9 100644
--- a/pkgs/applications/radio/flamp/default.nix
+++ b/pkgs/applications/radio/flamp/default.nix
@@ -10,12 +10,12 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "flamp";
-  version = "2.2.10";
+  version = "2.2.11";
 
   src = fetchgit {
     url = "https://git.code.sf.net/p/fldigi/flamp";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-c0Q9QD3O8eQxRqaBhr79iuNVtWGC8kl+YWYS4xMgDN4=";
+    hash = "sha256-QYfTkciSbBLy49rF6xABMw8TXZ/0QyQ/yhJ2nuM7f/c=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/radio/fldigi/default.nix b/pkgs/applications/radio/fldigi/default.nix
index 9c1192333c28..abdf52051345 100644
--- a/pkgs/applications/radio/fldigi/default.nix
+++ b/pkgs/applications/radio/fldigi/default.nix
@@ -18,11 +18,11 @@
 
 stdenv.mkDerivation rec {
   pname = "fldigi";
-  version = "4.2.03";
+  version = "4.2.04";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
-    hash = "sha256-tcJYpIeFgoC+jXIdvc1ix+/6v9oPccfxgQbL0wIIKaY=";
+    hash = "sha256-crVeX9vtvn1O5ah1dc74425qUKcozKlDMVeIefMpktY=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/radio/fllog/default.nix b/pkgs/applications/radio/fllog/default.nix
index e762dbe65716..b9490e47e5a5 100644
--- a/pkgs/applications/radio/fllog/default.nix
+++ b/pkgs/applications/radio/fllog/default.nix
@@ -7,12 +7,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.2.7";
+  version = "1.2.8";
   pname = "fllog";
 
   src = fetchurl {
     url = "mirror://sourceforge/fldigi/${pname}-${version}.tar.gz";
-    sha256 = "sha256-HxToZ+f1IJgDKGPHBeVuS7rRkh3+KfpyoYPBwfyqsC8=";
+    sha256 = "sha256-kJLb1ifd8sUOwGgNsIEmlhH29fQLdTfDMjKLrzK7r1I=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/radio/flrig/default.nix b/pkgs/applications/radio/flrig/default.nix
index e660f0c9da7b..83c28d47f7bb 100644
--- a/pkgs/applications/radio/flrig/default.nix
+++ b/pkgs/applications/radio/flrig/default.nix
@@ -8,12 +8,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.0.04";
+  version = "2.0.05";
   pname = "flrig";
 
   src = fetchurl {
     url = "mirror://sourceforge/fldigi/${pname}-${version}.tar.gz";
-    sha256 = "sha256-+AcQ7l1RXFDVVraYySBUE/+ZCyCOMiM2L4LyRXFquUc=";
+    sha256 = "sha256-Mc3AJfBdtIn9m6CH602Mj4UWj8OqnPlf5IiwLXgMYrA=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/radio/freedv/default.nix b/pkgs/applications/radio/freedv/default.nix
index 245e29fdb58a..13049ba611fc 100644
--- a/pkgs/applications/radio/freedv/default.nix
+++ b/pkgs/applications/radio/freedv/default.nix
@@ -25,13 +25,13 @@
 
 stdenv.mkDerivation rec {
   pname = "freedv";
-  version = "1.9.6";
+  version = "1.9.7.2";
 
   src = fetchFromGitHub {
     owner = "drowe67";
     repo = "freedv-gui";
     rev = "v${version}";
-    hash = "sha256-2TqlBlbMhBqe8WqoyYLJ9B82sAy3MdoaYvvk+XB5CdQ=";
+    hash = "sha256-JbLP65fC6uHrHXpSUwtgYHB+VLfheo5RU3C44lx8QlQ=";
   };
 
   postPatch = lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/applications/radio/gnuradio/3.8.nix b/pkgs/applications/radio/gnuradio/3.8.nix
index 3113915bce8d..37533bb05d34 100644
--- a/pkgs/applications/radio/gnuradio/3.8.nix
+++ b/pkgs/applications/radio/gnuradio/3.8.nix
@@ -244,6 +244,8 @@ stdenv.mkDerivation (finalAttrs: (shared // {
     rm gr-fec/python/fec/qa_polar_encoder.py
     rm gr-fec/python/fec/qa_polar_encoder_systematic.py
     rm gr-filter/python/filter/qa_freq_xlating_fft_filter.py
+    # Failed with libstdc++ from GCC 13
+    rm gr-filter/python/filter/qa_filterbank.py
   '';
   patches = [
     # Not accepted upstream, see https://github.com/gnuradio/gnuradio/pull/5227
diff --git a/pkgs/applications/radio/gnuradio/3.9.nix b/pkgs/applications/radio/gnuradio/3.9.nix
index 62ee880ce2be..606681b1d6c8 100644
--- a/pkgs/applications/radio/gnuradio/3.9.nix
+++ b/pkgs/applications/radio/gnuradio/3.9.nix
@@ -1,4 +1,5 @@
 { lib, stdenv
+, fetchpatch
 , fetchFromGitHub
 , cmake
 # Remove gcc and python references
@@ -277,6 +278,11 @@ stdenv.mkDerivation (finalAttrs: (shared // {
   patches = [
     # Not accepted upstream, see https://github.com/gnuradio/gnuradio/pull/5227
     ./modtool-newmod-permissions.3_9.patch
+    # Fix compilation with GCC 13
+    (fetchpatch {
+      url = "https://github.com/gnuradio/gnuradio/commit/fe1b3592776c26e349e9985d47d3178568dfe6ec.patch";
+      hash = "sha256-bu6fJuUo/i4kM+cZqSw8moB0ymoSVooLfwUIW+WDpWI=";
+    })
   ];
   passthru = shared.passthru // {
     # Deps that are potentially overridden and are used inside GR plugins - the same version must
diff --git a/pkgs/applications/radio/gnuradio/shared.nix b/pkgs/applications/radio/gnuradio/shared.nix
index fbb4960dc8fa..cd674e41815e 100644
--- a/pkgs/applications/radio/gnuradio/shared.nix
+++ b/pkgs/applications/radio/gnuradio/shared.nix
@@ -104,6 +104,8 @@ in {
       featuresInfo
       python
     ;
+    gnuradioOlder = lib.versionOlder versionAttr.major;
+    gnuradioAtLeast = lib.versionAtLeast versionAttr.major;
   } // lib.optionalAttrs (hasFeature "gr-qtgui") {
     inherit qt;
   } // lib.optionalAttrs (hasFeature "gnuradio-companion") {
diff --git a/pkgs/applications/radio/m17-cxx-demod/default.nix b/pkgs/applications/radio/m17-cxx-demod/default.nix
index 884ebe7a91b5..d6663fbc4287 100644
--- a/pkgs/applications/radio/m17-cxx-demod/default.nix
+++ b/pkgs/applications/radio/m17-cxx-demod/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, boost, codec2 }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, pkg-config, boost, codec2 }:
 
 stdenv.mkDerivation rec {
   pname = "m17-cxx-demod";
@@ -11,6 +11,16 @@ stdenv.mkDerivation rec {
     hash = "sha256-mvppkFBmmPVqvlqIqrbwGrOBih5zS5sZrV/usEhHiws=";
   };
 
+  patches = [
+    # Pull fix pending upstream inclusion for `gcc-13` support:
+    #   https://github.com/mobilinkd/m17-cxx-demod/pull/34
+    (fetchpatch {
+      name = "gcc-13.patch";
+      url = "https://github.com/mobilinkd/m17-cxx-demod/commit/2e2aaf95eeac456a2e8795e4363518bb4d797ac0.patch";
+      hash = "sha256-+XRzHStJ/7XI5JDoBeNwbifsTOw8il3GyFwlbw07wyk=";
+    })
+  ];
+
   nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [ codec2 boost ];
 
diff --git a/pkgs/applications/radio/sdrpp/default.nix b/pkgs/applications/radio/sdrpp/default.nix
index 9926fab1a746..76fa70984c20 100644
--- a/pkgs/applications/radio/sdrpp/default.nix
+++ b/pkgs/applications/radio/sdrpp/default.nix
@@ -1,45 +1,57 @@
 { stdenv, lib, fetchFromGitHub, cmake, pkg-config
-, libX11, glfw, glew, fftwFloat, volk, AppKit
+, libX11, glfw, glew, fftwFloat, volk, zstd, AppKit
 # Sources
 , airspy_source ? true, airspy
 , airspyhf_source ? true, airspyhf
-, bladerf_source ? false, libbladeRF
+, bladerf_source ? true, libbladeRF
 , file_source ? true
 , hackrf_source ? true, hackrf
-, limesdr_source ? false, limesuite
-, sddc_source ? false
-, rtl_sdr_source ? true, rtl-sdr, libusb1
+, limesdr_source ? true, limesuite
+, perseus_source ? false    # needs libperseus-sdr, not yet available in nixpks
+, plutosdr_source ? stdenv.isLinux, libiio, libad9361
+, rfspace_source ? true
+, rtl_sdr_source ? true, rtl-sdr-osmocom, libusb1  # osmocom better w/ rtlsdr v4
 , rtl_tcp_source ? true
 , sdrplay_source ? false, sdrplay
 , soapy_source ? true, soapysdr
 , spyserver_source ? true
-, plutosdr_source ? stdenv.isLinux, libiio, libad9361
+, usrp_source	? false, uhd, boost
+
 # Sinks
 , audio_sink ? true, rtaudio
-, portaudio_sink ? false, portaudio
 , network_sink ? true
+, portaudio_sink ? false, portaudio
+
 # Decoders
 , falcon9_decoder ? false
 , m17_decoder ? false, codec2
 , meteor_demodulator ? true
 , radio ? true
-, weather_sat_decoder ? true
+, weather_sat_decoder ? false  # is missing some dsp/pll.h
+
 # Misc
 , discord_presence ? true
 , frequency_manager ? true
 , recorder ? true
 , rigctl_server ? true
+, scanner ? true
 }:
 
 stdenv.mkDerivation rec {
   pname = "sdrpp";
-  version = "1.0.4";
+
+  # SDR++ uses a rolling release model.
+  # Choose a git hash from head and use the date from that commit as
+  # version qualifier
+  git_hash = "27ab5bf3c194169ddf60ca312723fce96149cc8e";
+  git_date = "2024-01-22";
+  version = "1.1.0-unstable-" + git_date;
 
   src = fetchFromGitHub {
     owner = "AlexandreRouma";
     repo = "SDRPlusPlus";
-    rev = version;
-    hash = "sha256-g9tpWvVRMXRhPfgvOeJhX6IMouF9+tLUr9wo5r35i/c=";
+    rev = git_hash;
+    hash = "sha256-R4xWeqdHEAaje37VQaGlg+L2iYIOH4tXMHvZkZq4SDU=";
   };
 
   patches = [ ./runtime-prefix.patch ];
@@ -50,11 +62,14 @@ stdenv.mkDerivation rec {
       --replace "set(CMAKE_INSTALL_PREFIX" "#set(CMAKE_INSTALL_PREFIX"
     substituteInPlace decoder_modules/m17_decoder/src/m17dsp.h \
       --replace "codec2.h" "codec2/codec2.h"
+    # Since the __TIME_ and __DATE__ is canonicalized in the build,
+    # use our qualified version shown in the programs window title.
+    substituteInPlace core/src/version.h --replace "1.1.0" "$version"
   '';
 
   nativeBuildInputs = [ cmake pkg-config ];
 
-  buildInputs = [ glfw glew fftwFloat volk ]
+  buildInputs = [ glfw glew fftwFloat volk zstd ]
     ++ lib.optional stdenv.isDarwin AppKit
     ++ lib.optional stdenv.isLinux libX11
     ++ lib.optional airspy_source airspy
@@ -62,42 +77,52 @@ stdenv.mkDerivation rec {
     ++ lib.optional bladerf_source libbladeRF
     ++ lib.optional hackrf_source hackrf
     ++ lib.optional limesdr_source limesuite
-    ++ lib.optionals rtl_sdr_source [ rtl-sdr libusb1 ]
+    ++ lib.optionals rtl_sdr_source [ rtl-sdr-osmocom libusb1 ]
     ++ lib.optional sdrplay_source sdrplay
     ++ lib.optional soapy_source soapysdr
     ++ lib.optionals plutosdr_source [ libiio libad9361 ]
+    ++ lib.optionals usrp_source [ uhd boost ]
     ++ lib.optional audio_sink rtaudio
     ++ lib.optional portaudio_sink portaudio
     ++ lib.optional m17_decoder codec2;
 
-  cmakeFlags = lib.mapAttrsToList (k: v: "-D${k}=${if v then "ON" else "OFF"}") {
-    OPT_BUILD_AIRSPY_SOURCE = airspy_source;
-    OPT_BUILD_AIRSPYHF_SOURCE = airspyhf_source;
-    OPT_BUILD_BLADERF_SOURCE = bladerf_source;
-    OPT_BUILD_FILE_SOURCE = file_source;
-    OPT_BUILD_HACKRF_SOURCE = hackrf_source;
-    OPT_BUILD_LIMESDR_SOURCE = limesdr_source;
-    OPT_BUILD_SDDC_SOURCE = sddc_source;
-    OPT_BUILD_RTL_SDR_SOURCE = rtl_sdr_source;
-    OPT_BUILD_RTL_TCP_SOURCE = rtl_tcp_source;
-    OPT_BUILD_SDRPLAY_SOURCE = sdrplay_source;
-    OPT_BUILD_SOAPY_SOURCE = soapy_source;
-    OPT_BUILD_SPYSERVER_SOURCE = spyserver_source;
-    OPT_BUILD_PLUTOSDR_SOURCE = plutosdr_source;
-    OPT_BUILD_AUDIO_SINK = audio_sink;
-    OPT_BUILD_PORTAUDIO_SINK = portaudio_sink;
-    OPT_BUILD_NETWORK_SINK = network_sink;
-    OPT_BUILD_NEW_PORTAUDIO_SINK = portaudio_sink;
-    OPT_BUILD_FALCON9_DECODER = falcon9_decoder;
-    OPT_BUILD_M17_DECODER = m17_decoder;
-    OPT_BUILD_METEOR_DEMODULATOR = meteor_demodulator;
-    OPT_BUILD_RADIO = radio;
-    OPT_BUILD_WEATHER_SAT_DECODER = weather_sat_decoder;
-    OPT_BUILD_DISCORD_PRESENCE = discord_presence;
-    OPT_BUILD_FREQUENCY_MANAGER = frequency_manager;
-    OPT_BUILD_RECORDER = recorder;
-    OPT_BUILD_RIGCTL_SERVER = rigctl_server;
-  };
+  cmakeFlags = [
+    # Sources
+    (lib.cmakeBool "OPT_BUILD_AIRSPYHF_SOURCE" airspyhf_source)
+    (lib.cmakeBool "OPT_BUILD_AIRSPY_SOURCE" airspy_source)
+    (lib.cmakeBool "OPT_BUILD_BLADERF_SOURCE" bladerf_source)
+    (lib.cmakeBool "OPT_BUILD_FILE_SOURCE" file_source)
+    (lib.cmakeBool "OPT_BUILD_HACKRF_SOURCE" hackrf_source)
+    (lib.cmakeBool "OPT_BUILD_LIMESDR_SOURCE" limesdr_source)
+    (lib.cmakeBool "OPT_BUILD_PERSEUS_SOURCE" perseus_source)
+    (lib.cmakeBool "OPT_BUILD_PLUTOSDR_SOURCE" plutosdr_source)
+    (lib.cmakeBool "OPT_BUILD_RFSPACE_SOURCE" rfspace_source)
+    (lib.cmakeBool "OPT_BUILD_RTL_SDR_SOURCE" rtl_sdr_source)
+    (lib.cmakeBool "OPT_BUILD_RTL_TCP_SOURCE" rtl_tcp_source)
+    (lib.cmakeBool "OPT_BUILD_SDRPLAY_SOURCE" sdrplay_source)
+    (lib.cmakeBool "OPT_BUILD_SOAPY_SOURCE" soapy_source)
+    (lib.cmakeBool "OPT_BUILD_SPYSERVER_SOURCE" spyserver_source)
+    (lib.cmakeBool "OPT_BUILD_USRP_SOURCE" usrp_source)
+
+    # Sinks
+    (lib.cmakeBool "OPT_BUILD_AUDIO_SINK" audio_sink)
+    (lib.cmakeBool "OPT_BUILD_NETWORK_SINK" network_sink)
+    (lib.cmakeBool "OPT_BUILD_NEW_PORTAUDIO_SINK" portaudio_sink)
+
+    # Decoders
+    (lib.cmakeBool "OPT_BUILD_FALCON9_DECODER" falcon9_decoder)
+    (lib.cmakeBool "OPT_BUILD_M17_DECODER" m17_decoder)
+    (lib.cmakeBool "OPT_BUILD_METEOR_DEMODULATOR" meteor_demodulator)
+    (lib.cmakeBool "OPT_BUILD_RADIO" radio)
+    (lib.cmakeBool "OPT_BUILD_WEATHER_SAT_DECODER" weather_sat_decoder)
+
+    # Misc
+    (lib.cmakeBool "OPT_BUILD_DISCORD_PRESENCE" discord_presence)
+    (lib.cmakeBool "OPT_BUILD_FREQUENCY_MANAGER" frequency_manager)
+    (lib.cmakeBool "OPT_BUILD_RECORDER" recorder)
+    (lib.cmakeBool "OPT_BUILD_RIGCTL_SERVER" rigctl_server)
+    (lib.cmakeBool "OPT_BUILD_SCANNER" scanner)
+  ];
 
   env.NIX_CFLAGS_COMPILE = "-fpermissive";
 
diff --git a/pkgs/applications/radio/urh/default.nix b/pkgs/applications/radio/urh/default.nix
index 9a5d3c3cbbb1..6363670d56b7 100644
--- a/pkgs/applications/radio/urh/default.nix
+++ b/pkgs/applications/radio/urh/default.nix
@@ -6,13 +6,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "urh";
-  version = "2.9.4";
+  version = "2.9.6";
 
   src = fetchFromGitHub {
     owner = "jopohl";
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-Hi0VqBtGeaXMsibxbHk+2FN8mzfpmkuDr37JRW4Fp+s=";
+    sha256 = "sha256-4Fe2+BUdnVdNQHqZeftXLabn/vTzgyynOtqy0rAb0Rk=";
   };
 
   nativeBuildInputs = [ qt5.wrapQtAppsHook ];
diff --git a/pkgs/applications/science/biology/N3/default.nix b/pkgs/applications/science/biology/N3/default.nix
index 2f4aa4ce3927..e7ae8fb3cea3 100644
--- a/pkgs/applications/science/biology/N3/default.nix
+++ b/pkgs/applications/science/biology/N3/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub, cmake, makeWrapper,
   perlPackages,
-  libminc, EBTKS }:
+  libminc, ebtks }:
 
 stdenv.mkDerivation rec {
   pname = "N3";
@@ -13,11 +13,16 @@ stdenv.mkDerivation rec {
     sha256 = "06hci7gzhy8p34ggvx7gah2k9yxpwhgmq1cgw8pcd1r82g4rg6kd";
   };
 
+  postPatch = ''
+    substituteInPlace src/VolumeHist/DHistogram.cc \
+      --replace "register " ""
+  '';
+
   nativeBuildInputs = [ cmake makeWrapper ];
-  buildInputs = [ libminc EBTKS ];
+  buildInputs = [ libminc ebtks ];
   propagatedBuildInputs = with perlPackages; [ perl MNI-Perllib GetoptTabular ];
 
-  cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/cmake" "-DEBTKS_DIR=${EBTKS}/lib/" ];
+  cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/cmake" "-DEBTKS_DIR=${ebtks}/lib/" ];
 
   postFixup = ''
     for p in $out/bin/*; do
diff --git a/pkgs/applications/science/biology/ants/default.nix b/pkgs/applications/science/biology/ants/default.nix
index cb3ec8a4f7ed..c7a1391c3007 100644
--- a/pkgs/applications/science/biology/ants/default.nix
+++ b/pkgs/applications/science/biology/ants/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "ANTs";
-  version = "2.5.0";
+  version = "2.5.1";
 
   src = fetchFromGitHub {
     owner = "ANTsX";
     repo = "ANTs";
     rev = "refs/tags/v${finalAttrs.version}";
-    hash = "sha256-rSibcsprhMC1qsuZN8ou32QPLf8n62BiDzpnTRWRx0Q=";
+    hash = "sha256-q252KC6SKUN5JaQWAcsVmDprVkLXDvkYzNhC7yHJNpk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/science/biology/bowtie2/default.nix b/pkgs/applications/science/biology/bowtie2/default.nix
index 356e90555f8d..dbcecb7ac3fb 100644
--- a/pkgs/applications/science/biology/bowtie2/default.nix
+++ b/pkgs/applications/science/biology/bowtie2/default.nix
@@ -12,14 +12,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "bowtie2";
-  version = "2.5.2";
+  version = "2.5.3";
 
   src = fetchFromGitHub {
     owner = "BenLangmead";
     repo = "bowtie2";
     rev = "refs/tags/v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-rWeopeYuCk9ZhJX2SFCcxZWcjXjjTiVRiwkzLQcIgd0=";
+    hash = "sha256-vjJRA9KFfJChxxg2wxBkwsnDw7fx5SNH3JhRXQw+7XA=";
   };
 
   # because of this flag, gcc on aarch64 cannot find the Threads
diff --git a/pkgs/applications/science/biology/deeptools/default.nix b/pkgs/applications/science/biology/deeptools/default.nix
index a199e41d50aa..a7a1f77dfe90 100644
--- a/pkgs/applications/science/biology/deeptools/default.nix
+++ b/pkgs/applications/science/biology/deeptools/default.nix
@@ -1,19 +1,25 @@
-{ lib, python, fetchFromGitHub }:
-with python.pkgs;
-buildPythonApplication rec {
-  pname = "deepTools";
+{ lib
+, python3
+, fetchFromGitHub
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "deeptools";
   version = "3.5.4";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "deeptools";
     repo = "deepTools";
     rev = version;
-    sha256 = "sha256-A8YdlMptmJyxWW0EYLjXFIWjIO/mttEC7VYdlCe9MaI=";
+    hash = "sha256-A8YdlMptmJyxWW0EYLjXFIWjIO/mttEC7VYdlCe9MaI=";
   };
 
-  format = "pyproject";
+  nativeBuildInputs = with python3.pkgs; [
+    setuptools
+  ];
 
-  propagatedBuildInputs = [
+  propagatedBuildInputs = with python3.pkgs; [
     numpy
     numpydoc
     scipy
@@ -26,7 +32,21 @@ buildPythonApplication rec {
     importlib-metadata
   ];
 
-  nativeCheckInputs = [ pytest ];
+  nativeCheckInputs = with python3.pkgs; [
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    export PATH="$out/bin:$PATH"
+  '';
+
+  disabledTestPaths = [
+    # tests trip on `len(sys.argv) == 1`
+    "deeptools/test/test_bigwigAverage.py"
+    "deeptools/test/test_bigwigCompare_and_multiBigwigSummary.py"
+    "deeptools/test/test_heatmapper.py"
+    "deeptools/test/test_multiBamSummary.py"
+  ];
 
   meta = with lib; {
     homepage = "https://deeptools.readthedocs.io/en/develop";
diff --git a/pkgs/applications/science/biology/eggnog-mapper/default.nix b/pkgs/applications/science/biology/eggnog-mapper/default.nix
index 05c445b6cd08..d7bba930abca 100644
--- a/pkgs/applications/science/biology/eggnog-mapper/default.nix
+++ b/pkgs/applications/science/biology/eggnog-mapper/default.nix
@@ -8,13 +8,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "eggnog-mapper";
-  version = "2.1.10";
+  version = "2.1.12";
 
   src = fetchFromGitHub {
     owner = "eggnogdb";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-6R2gl2l2Cl/eva0g+kxDLBI2+5T9cFTgaGMsEfeDVU0=";
+    hash = "sha256-+luxXQmtGufYrA/9Ak3yKzbotOj2HM3vhIoOxE+Ty1U=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/science/biology/igv/default.nix b/pkgs/applications/science/biology/igv/default.nix
index 827fdb6fa1ab..be663628a426 100644
--- a/pkgs/applications/science/biology/igv/default.nix
+++ b/pkgs/applications/science/biology/igv/default.nix
@@ -1,11 +1,11 @@
-{ lib, stdenv, fetchzip, jdk11, wrapGAppsHook }:
+{ lib, stdenv, fetchzip, jdk17, testers, wrapGAppsHook, igv }:
 
 stdenv.mkDerivation rec {
   pname = "igv";
-  version = "2.17.0";
+  version = "2.17.1";
   src = fetchzip {
     url = "https://data.broadinstitute.org/igv/projects/downloads/${lib.versions.majorMinor version}/IGV_${version}.zip";
-    sha256 = "sha256-nOwaeVIvqfHrvykfTyOdnMN6+QpsvNN14jXBQx7THsE=";
+    sha256 = "sha256-EXI1jVr8cJPYLLe81hzqLpP3IypHBZ0cb6z+WrDeFKQ=";
   };
 
   installPhase = ''
@@ -13,10 +13,10 @@ stdenv.mkDerivation rec {
     cp -Rv * $out/share/
 
     sed -i "s#prefix=.*#prefix=$out/share#g" $out/share/igv.sh
-    sed -i 's#java#${jdk11}/bin/java#g' $out/share/igv.sh
+    sed -i 's#java#${jdk17}/bin/java#g' $out/share/igv.sh
 
     sed -i "s#prefix=.*#prefix=$out/share#g" $out/share/igvtools
-    sed -i 's#java#${jdk11}/bin/java#g' $out/share/igvtools
+    sed -i 's#java#${jdk17}/bin/java#g' $out/share/igvtools
 
     ln -s $out/share/igv.sh $out/bin/igv
     ln -s $out/share/igvtools $out/bin/igvtools
@@ -26,6 +26,11 @@ stdenv.mkDerivation rec {
   '';
   nativeBuildInputs = [ wrapGAppsHook ];
 
+  passthru.tests.version = testers.testVersion {
+    package = igv;
+  };
+
+
   meta = with lib; {
     homepage = "https://www.broadinstitute.org/igv/";
     description = "A visualization tool for interactive exploration of genomic datasets";
diff --git a/pkgs/applications/science/biology/inormalize/default.nix b/pkgs/applications/science/biology/inormalize/default.nix
index b4999193e177..bf24f0ce19bf 100644
--- a/pkgs/applications/science/biology/inormalize/default.nix
+++ b/pkgs/applications/science/biology/inormalize/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub, cmake, makeWrapper,
   perlPackages,
-  libminc, EBTKS }:
+  libminc, ebtks }:
 
 stdenv.mkDerivation rec {
   pname = "inormalize";
@@ -15,11 +15,16 @@ stdenv.mkDerivation rec {
 
   patches = [ ./lgmask-interp.patch ./nu_correct_norm-interp.patch ];
 
+  postPatch = ''
+    substituteInPlace inormalize.cc \
+      --replace "clamp" "::clamp"
+  '';
+
   nativeBuildInputs = [ cmake makeWrapper ];
-  buildInputs = [ libminc EBTKS ];
+  buildInputs = [ libminc ebtks ];
   propagatedBuildInputs = with perlPackages; [ perl GetoptTabular MNI-Perllib ];
 
-  cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/cmake" "-DEBTKS_DIR=${EBTKS}/lib/" ];
+  cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/cmake" "-DEBTKS_DIR=${ebtks}/lib/" ];
 
   postFixup = ''
     for p in $out/bin/*; do
diff --git a/pkgs/applications/science/biology/obitools/obitools3.nix b/pkgs/applications/science/biology/obitools/obitools3.nix
index b38af2f64b54..9bf579a80c3b 100644
--- a/pkgs/applications/science/biology/obitools/obitools3.nix
+++ b/pkgs/applications/science/biology/obitools/obitools3.nix
@@ -17,8 +17,8 @@ python3Packages.buildPythonApplication rec {
   '';
 
   preBuild = ''
-    substituteInPlace src/CMakeLists.txt --replace \$'{PYTHONLIB}' "$out/lib/${python3.libPrefix}/site-packages";
-    export NIX_CFLAGS_COMPILE="-L $out/lib/${python3.libPrefix}/site-packages $NIX_CFLAGS_COMPILE"
+    substituteInPlace src/CMakeLists.txt --replace \$'{PYTHONLIB}' "$out/${python3.sitePackages}";
+    export NIX_CFLAGS_COMPILE="-L $out/${python3.sitePackages} $NIX_CFLAGS_COMPILE"
   '';
 
   dontConfigure = true;
diff --git a/pkgs/applications/science/biology/samtools/default.nix b/pkgs/applications/science/biology/samtools/default.nix
index 7db1edcbe9e9..70f436a088e1 100644
--- a/pkgs/applications/science/biology/samtools/default.nix
+++ b/pkgs/applications/science/biology/samtools/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "samtools";
-  version = "1.19";
+  version = "1.19.2";
 
   src = fetchurl {
     url = "https://github.com/samtools/samtools/releases/download/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-+ms7GOIIUbbzy1WvrzIF0C/LedrjuEn89S6PwQ/wi4M=";
+    hash = "sha256-cfYEmWaOTAjn10X7/yTBXMigl3q6sazV0rtBm9sGXpY=";
   };
 
   # tests require `bgzip` from the htslib package
diff --git a/pkgs/applications/science/biology/spades/default.nix b/pkgs/applications/science/biology/spades/default.nix
index 976dd65ef223..0b0491a71aae 100644
--- a/pkgs/applications/science/biology/spades/default.nix
+++ b/pkgs/applications/science/biology/spades/default.nix
@@ -17,6 +17,11 @@ stdenv.mkDerivation rec {
 
   sourceRoot = "${pname}-${version}/src";
 
+  env.CXXFLAGS = toString [
+    # GCC 13: error: 'uint32_t' does not name a type
+    "-include cstdint"
+  ];
+
   meta = with lib; {
     description = "St. Petersburg genome assembler: assembly toolkit containing various assembly pipelines";
     license = licenses.gpl2Only;
diff --git a/pkgs/applications/science/biology/stacks/default.nix b/pkgs/applications/science/biology/stacks/default.nix
index 0a18c5f40fda..3d385b54d469 100644
--- a/pkgs/applications/science/biology/stacks/default.nix
+++ b/pkgs/applications/science/biology/stacks/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "stacks";
-  version = "2.65";
+  version = "2.66";
   src = fetchurl {
     url = "http://catchenlab.life.illinois.edu/stacks/source/${pname}-${version}.tar.gz";
-    sha256 = "sha256-/9a9PWKVq5yJzEUfOF03zR1Hp3AZw9MF8xICoriV4uo=";
+    sha256 = "sha256-9pHmcLYMdn9xy3vhlOU42Io/4L61auoncfpZNRPUN/I=";
   };
 
   buildInputs = [ zlib ];
diff --git a/pkgs/applications/science/biology/whisper/default.nix b/pkgs/applications/science/biology/whisper/default.nix
index 4d74ea981098..4cc211547610 100644
--- a/pkgs/applications/science/biology/whisper/default.nix
+++ b/pkgs/applications/science/biology/whisper/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchurl }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, fetchurl }:
 
 stdenv.mkDerivation rec {
   pname = "whisper";
@@ -11,6 +11,16 @@ stdenv.mkDerivation rec {
     sha256 = "0wpx1w1mar2d6zq2v14vy6nn896ds1n3zshxhhrrj5d528504iyw";
   };
 
+  patches = [
+    # gcc-13 compatibility fixes:
+    #   https://github.com/refresh-bio/Whisper/pull/17
+    (fetchpatch {
+      name = "gcc-13.patch";
+      url = "https://github.com/refresh-bio/Whisper/commit/d67e110dd6899782e4687188f6b432494315b0b4.patch";
+      hash = "sha256-Z8GrkUMIKO/ccEdwulQh+WUox3CEckr6NgoBSzYvfuw=";
+    })
+  ];
+
   preConfigure = ''
     cd src
 
@@ -18,6 +28,8 @@ stdenv.mkDerivation rec {
     sed -i 's/ -static / /' makefile
   '';
 
+  enableParallelBuilding = true;
+
   installPhase = ''
     runHook preInstall
     install -Dt $out/bin whisper whisper-index
diff --git a/pkgs/applications/science/chemistry/gwyddion/default.nix b/pkgs/applications/science/chemistry/gwyddion/default.nix
index 5794d7077af9..7c1312f27f25 100644
--- a/pkgs/applications/science/chemistry/gwyddion/default.nix
+++ b/pkgs/applications/science/chemistry/gwyddion/default.nix
@@ -21,10 +21,10 @@ in
 
 stdenv.mkDerivation rec {
   pname = "gwyddion";
-   version = "2.64";
+   version = "2.65";
   src = fetchurl {
     url = "mirror://sourceforge/gwyddion/gwyddion-${version}.tar.xz";
-    sha256 = "sha256-FDL4XDHH6WYF47OsnhxpM7s7YadutiCDjcJKCF8ZlCw=";
+    sha256 = "sha256-kRX7CoPJY8YkYNode5g0OCyWmL+5sM8puCmk9ZE2nqM=";
   };
 
   nativeBuildInputs = [ pkg-config file ];
diff --git a/pkgs/applications/science/chemistry/jmol/default.nix b/pkgs/applications/science/chemistry/jmol/default.nix
index ce3b279deab1..73ee9a3996da 100644
--- a/pkgs/applications/science/chemistry/jmol/default.nix
+++ b/pkgs/applications/science/chemistry/jmol/default.nix
@@ -25,14 +25,14 @@ let
   };
 in
 stdenv.mkDerivation rec {
-  version = "16.1.47";
+  version = "16.1.51";
   pname = "jmol";
 
   src = let
     baseVersion = "${lib.versions.major version}.${lib.versions.minor version}";
   in fetchurl {
     url = "mirror://sourceforge/jmol/Jmol/Version%20${baseVersion}/Jmol%20${version}/Jmol-${version}-binary.tar.gz";
-    hash = "sha256-3hsH+RkPPoViKp1bc/88GDVSG8jf9hiPKPkUfe9PIkk=";
+    hash = "sha256-7YOBpUeGutFPbMlQ1NnJ6BNyLbw54Meezwfs6mL71BQ=";
   };
 
   patchPhase = ''
diff --git a/pkgs/applications/science/chemistry/marvin/default.nix b/pkgs/applications/science/chemistry/marvin/default.nix
index 5f08bebd47fc..090c252bb82c 100644
--- a/pkgs/applications/science/chemistry/marvin/default.nix
+++ b/pkgs/applications/science/chemistry/marvin/default.nix
@@ -1,15 +1,15 @@
-{ lib, stdenv, fetchurl, dpkg, makeWrapper, coreutils, gawk, gnugrep, gnused, jre }:
+{ lib, stdenv, fetchurl, dpkg, makeWrapper, coreutils, gawk, gnugrep, gnused, openjdk17 }:
 
 with lib;
 
 stdenv.mkDerivation rec {
   pname = "marvin";
-  version = "23.12.0";
+  version = "23.17.0";
 
   src = fetchurl {
     name = "marvin-${version}.deb";
     url = "http://dl.chemaxon.com/marvin/${version}/marvin_linux_${versions.majorMinor version}.deb";
-    hash = "sha256-5ycOteXcdgZaeDl3WQ95H2lD0OnnobCbmnVlfYwVdeI=";
+    hash = "sha256-zE/9EaOsNJwzE4Doasm9N8QG4t7wDOxqpV/Nhc4p7Ws=";
   };
 
   nativeBuildInputs = [ dpkg makeWrapper ];
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   installPhase = ''
     wrapBin() {
       makeWrapper $1 $out/bin/$(basename $1) \
-        --set INSTALL4J_JAVA_HOME "${jre}" \
+        --set INSTALL4J_JAVA_HOME "${openjdk17}" \
         --prefix PATH : ${makeBinPath [ coreutils gawk gnugrep gnused ]}
     }
     cp -r opt $out
diff --git a/pkgs/applications/science/chemistry/molden/default.nix b/pkgs/applications/science/chemistry/molden/default.nix
index fc5c18e4ccdf..7a15ef9363b5 100644
--- a/pkgs/applications/science/chemistry/molden/default.nix
+++ b/pkgs/applications/science/chemistry/molden/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
      mkdir -p $out/bin
   '';
 
-  enableParallelBuilding = true;
+  enableParallelBuilding = false;
 
   meta = with lib; {
      description = "Display and manipulate molecular structures";
diff --git a/pkgs/applications/science/chemistry/mopac/default.nix b/pkgs/applications/science/chemistry/mopac/default.nix
index c0cdc4eff410..4e8e29c993e1 100644
--- a/pkgs/applications/science/chemistry/mopac/default.nix
+++ b/pkgs/applications/science/chemistry/mopac/default.nix
@@ -12,13 +12,13 @@ assert blas.isILP64 == lapack.isILP64;
 
 stdenv.mkDerivation rec {
   pname = "mopac";
-  version = "22.1.0";
+  version = "22.1.1";
 
   src = fetchFromGitHub {
     owner = "openmopac";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-4jQ0WCHK07CXWUPj5Z1zSXObKxnitMj+FJQbLDiS2Dc=";
+    hash = "sha256-tdVb/u89EBggfG3Ofz1ICBE2ug4fbMsUWAILwJP9Ito=";
   };
 
   nativeBuildInputs = [ gfortran cmake ];
diff --git a/pkgs/applications/science/chemistry/octopus/default.nix b/pkgs/applications/science/chemistry/octopus/default.nix
index c32f4b8a5f9b..93fec7149604 100644
--- a/pkgs/applications/science/chemistry/octopus/default.nix
+++ b/pkgs/applications/science/chemistry/octopus/default.nix
@@ -1,5 +1,23 @@
-{ lib, stdenv, fetchFromGitLab, gfortran, perl, procps
-, libyaml, libxc, fftw, blas, lapack, gsl, netcdf, arpack, autoreconfHook
+{ lib
+, stdenv
+, fetchFromGitLab
+, gfortran
+, which
+, perl
+, procps
+, libvdwxc
+, libyaml
+, libxc
+, fftw
+, blas
+, lapack
+, gsl
+, netcdf
+, arpack
+, autoreconfHook
+, scalapack
+, mpi
+, enableMpi ? true
 , python3
 , enableFma ? stdenv.hostPlatform.fmaSupport
 , enableFma4 ? stdenv.hostPlatform.fma4Support
@@ -22,6 +40,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
+    which
     perl
     procps
     autoreconfHook
@@ -37,8 +56,12 @@ stdenv.mkDerivation rec {
     fftw
     netcdf
     arpack
+    libvdwxc
     (python3.withPackages (ps: [ ps.pyyaml ]))
-  ];
+  ] ++ lib.optional enableMpi scalapack;
+
+  propagatedBuildInputs = lib.optional enableMpi mpi;
+  propagatedUserEnvPkgs = lib.optional enableMpi mpi;
 
   configureFlags = with lib; [
     "--with-yaml-prefix=${lib.getDev libyaml}"
@@ -47,12 +70,22 @@ stdenv.mkDerivation rec {
     "--with-fftw-prefix=${lib.getDev fftw}"
     "--with-gsl-prefix=${lib.getDev gsl}"
     "--with-libxc-prefix=${lib.getDev libxc}"
+    "--with-libvdwxc"
     "--enable-openmp"
-  ] ++ optional enableFma "--enable-fma3"
-    ++ optional enableFma4 "--enable-fma4"
-    ++ optional enableAvx "--enable-avx"
-    ++ optional enableAvx512 "--enable-avx512";
+  ]
+  ++ optional enableFma "--enable-fma3"
+  ++ optional enableFma4 "--enable-fma4"
+  ++ optional enableAvx "--enable-avx"
+  ++ optional enableAvx512 "--enable-avx512"
+  ++ optionals enableMpi [
+    "--enable-mpi"
+    "--with-scalapack=-lscalapack"
+    "CC=mpicc"
+    "FC=mpif90"
+  ];
 
+
+  nativeCheckInputs = lib.optional.enableMpi mpi;
   doCheck = false;
   checkTarget = "check-short";
 
@@ -66,6 +99,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru = lib.attrsets.optionalAttrs enableMpi { inherit mpi; };
+
   meta = with lib; {
     description = "Real-space time dependent density-functional theory code";
     homepage = "https://octopus-code.org";
diff --git a/pkgs/applications/science/chemistry/openmolcas/default.nix b/pkgs/applications/science/chemistry/openmolcas/default.nix
index 33c77c063bf9..0aeb01c2916b 100644
--- a/pkgs/applications/science/chemistry/openmolcas/default.nix
+++ b/pkgs/applications/science/chemistry/openmolcas/default.nix
@@ -59,6 +59,9 @@ stdenv.mkDerivation {
 
     # Required for a local QCMaquis build
     ./qcmaquis.patch
+
+    # PyParsing >= 3.11 compatibility, can be removed on next release
+    ./pyparsing.patch
   ];
 
   postPatch = ''
diff --git a/pkgs/applications/science/chemistry/openmolcas/pyparsing.patch b/pkgs/applications/science/chemistry/openmolcas/pyparsing.patch
new file mode 100644
index 000000000000..271b52840ff9
--- /dev/null
+++ b/pkgs/applications/science/chemistry/openmolcas/pyparsing.patch
@@ -0,0 +1,37 @@
+diff --git a/Tools/pymolcas/emil_grammar.py b/Tools/pymolcas/emil_grammar.py
+index acbbae8..509c56f 100644
+--- a/Tools/pymolcas/emil_grammar.py
++++ b/Tools/pymolcas/emil_grammar.py
+@@ -15,6 +15,14 @@
+ 
+ from __future__ import (unicode_literals, division, absolute_import, print_function)
+ 
++try:
++  u = unicode
++  del u
++  py2 = True
++except NameError:
++  pass
++
++
+ from re import sub
+ from pyparsing import *
+ 
+@@ -24,6 +32,8 @@ def chomp(s):
+ 
+ def chompAction(s, l, t):
+   try:
++    if (py2):
++      pass
+     return list(map(lambda s: chomp(unicode(s)), t))
+   except NameError:
+     return list(map(chomp, t))
+@@ -33,6 +43,8 @@ def removeEMILEnd(s):
+ 
+ def removeEMILEndAction(s, l, t):
+   try:
++    if (py2):
++      pass
+     return list(map(lambda s: removeEMILEnd(unicode(s)), t))
+   except NameError:
+     return list(map(removeEMILEnd, t))
diff --git a/pkgs/applications/science/electronics/dsview/default.nix b/pkgs/applications/science/electronics/dsview/default.nix
index 98c35c37e8d5..ec53e976aec5 100644
--- a/pkgs/applications/science/electronics/dsview/default.nix
+++ b/pkgs/applications/science/electronics/dsview/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchFromGitHub, pkg-config, cmake, wrapQtAppsHook
 , libzip, boost, fftw, qtbase, qtwayland, qtsvg, libusb1
-, python3, fetchpatch
+, python3, fetchpatch, desktopToDarwinBundle
 }:
 
 stdenv.mkDerivation rec {
@@ -20,18 +20,19 @@ stdenv.mkDerivation rec {
     ./install.patch
   ];
 
-  nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
+  nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ]
+    ++ lib.optional stdenv.isDarwin desktopToDarwinBundle;
 
   buildInputs = [
-    boost fftw qtbase qtwayland qtsvg libusb1 libzip
+    boost fftw qtbase qtsvg libusb1 libzip
     python3
-  ];
+  ] ++ lib.optional stdenv.isLinux qtwayland;
 
   meta = with lib; {
     description = "A GUI program for supporting various instruments from DreamSourceLab, including logic analyzer, oscilloscope, etc";
     homepage = "https://www.dreamsourcelab.com/";
     license = licenses.gpl3Plus;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ bachp ];
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ bachp carlossless ];
   };
 }
diff --git a/pkgs/applications/science/electronics/dsview/install.patch b/pkgs/applications/science/electronics/dsview/install.patch
index 9fd9133e2795..9fc660bf8148 100644
--- a/pkgs/applications/science/electronics/dsview/install.patch
+++ b/pkgs/applications/science/electronics/dsview/install.patch
@@ -16,8 +16,8 @@ index eb9be42..220817c 100644
 -		install(FILES DSView/DreamSourceLab.rules DESTINATION /etc/udev/rules.d RENAME 60-dreamsourcelab.rules)
 -	endif()
 -
-+	install(FILES DSView/DSView.desktop DESTINATION share/applications RENAME dsview.desktop)
 +	install(FILES DSView/DreamSourceLab.rules DESTINATION etc/udev/rules.d RENAME 60-dreamsourcelab.rules)
  endif()
++install(FILES DSView/DSView.desktop DESTINATION share/applications RENAME dsview.desktop)
  
  install(FILES NEWS25 DESTINATION share/DSView RENAME NEWS25)
diff --git a/pkgs/applications/science/electronics/fritzing/default.nix b/pkgs/applications/science/electronics/fritzing/default.nix
index d5779abc2c6b..efe70f125d04 100644
--- a/pkgs/applications/science/electronics/fritzing/default.nix
+++ b/pkgs/applications/science/electronics/fritzing/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchpatch
 , wrapQtAppsHook
 , qmake
 , pkg-config
@@ -9,47 +8,65 @@
 , qtsvg
 , qttools
 , qtserialport
+, qtwayland
+, qt5compat
 , boost
 , libngspice
 , libgit2
 , quazip
+, clipper
 }:
 
 let
   # SHA256 of the fritzing-parts HEAD on the master branch,
   # which contains the latest stable parts definitions
-  partsSha = "4713511c894cb2894eae505b9307c6555afcc32c";
+  partsSha = "015626e6cafb1fc7831c2e536d97ca2275a83d32";
 
   parts = fetchFromGitHub {
     owner = "fritzing";
     repo = "fritzing-parts";
     rev = partsSha;
-    sha256 = "sha256-QiOGWc+99MJhOVrXyNOinR8rTVvW/E+wPfoB6QvbhY0=";
+    hash = "sha256-5jw56cqxpT/8bf1q551WG53J6Lw5pH0HEtRUoNNMc+A=";
+  };
+
+  # Header-only library
+  svgpp = fetchFromGitHub {
+    owner = "svgpp";
+    repo = "svgpp";
+    rev = "v1.3.0";
+    hash = "sha256-kJEVnMYnDF7bThDB60bGXalYgpn9c5/JCZkRSK5GoE4=";
   };
 in
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation {
   pname = "fritzing";
-  version = "unstable-2022-07-01";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
-    owner = pname;
+    owner = "fritzing";
     repo = "fritzing-app";
-    rev = "40d23c29b0463d5c968c3c4b34ed5ffc05c5a258";
-    sha256 = "sha256-smvfuxQWF/LMFFXHOKb3zUZsEet/XoiaxXOR5QMaYzw=";
+    rev = "dbdbe34c843677df721c7b3fc3e32c0f737e7e95";
+    hash = "sha256-Xi5sPU2RGkqh7T+EOvwxJJKKYDhJfccyEZ8LBBTb2s4=";
   };
 
-  buildInputs = [ qtbase qtsvg qtserialport boost libgit2 quazip libngspice ];
   nativeBuildInputs = [ qmake pkg-config qttools wrapQtAppsHook ];
-
-  patches = [
-    (fetchpatch {
-      url = "https://aur.archlinux.org/cgit/aur.git/plain/0001-Quick-Dirty-patch-to-allow-finding-quazip-qt5-on-Arc.patch?h=fritzing&id=1ae0dc88464f375a54b156e6761315bcb04bcc1f";
-      sha256 = "sha256-iS18EWw920gyeXDoHBRGwXvwMJurJS21H77Erl+fqog=";
-    })
+  buildInputs = [
+    qtbase
+    qtsvg
+    qtserialport
+    qtwayland
+    qt5compat
+    boost
+    libgit2
+    quazip
+    libngspice
+    clipper
   ];
 
   postPatch = ''
+    # Use packaged quazip, libgit and ngspice
+    sed -i "/pri\/quazipdetect.pri/d" phoenix.pro
+    sed -i "/pri\/spicedetect.pri/d" phoenix.pro
     substituteInPlace phoenix.pro \
       --replace 'LIBGIT_STATIC = true' 'LIBGIT_STATIC = false'
 
@@ -57,11 +74,19 @@ stdenv.mkDerivation rec {
     substituteInPlace src/fapplication.cpp \
       --replace 'PartsChecker::getSha(dir.absolutePath());' '"${partsSha}";'
 
+    substituteInPlace phoenix.pro \
+      --replace "6.5.10" "${qtbase.version}"
+
     mkdir parts
     cp -a ${parts}/* parts/
   '';
 
-  env.NIX_CFLAGS_COMPILE = "-I${lib.getDev quazip}/include/QuaZip-Qt${lib.versions.major qtbase.version}-${quazip.version}/quazip";
+  env.NIX_CFLAGS_COMPILE = lib.concatStringsSep " " [
+    "-I${lib.getDev quazip}/include/QuaZip-Qt${lib.versions.major qtbase.version}-${quazip.version}"
+    "-I${svgpp}/include"
+    "-I${clipper}/include/polyclipping"
+  ];
+  env.NIX_LDFLAGS = "-lquazip1-qt${lib.versions.major qtbase.version}";
 
   qmakeFlags = [
     "phoenix.pro"
diff --git a/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix b/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix
index 51e1011b8a2f..13a1ceba3cda 100644
--- a/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix
+++ b/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix
@@ -73,6 +73,12 @@ in stdenv.mkDerivation rec {
       url = "https://github.com/emsec/hal/commit/b639a56b303141afbf6731b70b7cc7452551f024.patch";
       hash = "sha256-a7AyDEKkqdbiHpa4OHTRuP9Yewb3Nxs/j6bwez5m0yU=";
     })
+    (fetchpatch {
+      name = "fix-gcc-13-build.patch";
+      # https://github.com/emsec/hal/pull/557
+      url = "https://github.com/emsec/hal/commit/831b1a7866aa9aabd55ff288c084862dc6a138d8.patch";
+      hash = "sha256-kB/sJJtLGl5PUv+mmWVpee/okkJzp5HF0BCiCRCcTKw=";
+    })
   ];
 
   # make sure bundled dependencies don't get in the way - install also otherwise
diff --git a/pkgs/applications/science/electronics/kicad/versions.nix b/pkgs/applications/science/electronics/kicad/versions.nix
index ffab1ba75121..11837638e1ab 100644
--- a/pkgs/applications/science/electronics/kicad/versions.nix
+++ b/pkgs/applications/science/electronics/kicad/versions.nix
@@ -3,36 +3,36 @@
 {
   "kicad" = {
     kicadVersion = {
-      version =			"7.0.9";
+      version =			"7.0.10";
       src = {
-        rev =			"1c81053cc40579ecd5febef1aeb1164008039deb";
-        sha256 =		"1hq9rba1gcks14zwbr8nbicpsil4imslgfch6ll33fhizbks3fq4";
+        rev =			"7daac78752749fc919e932be6156914aa83c926f";
+        sha256 =		"0z459yi0s02mwdgbr3xxw43gn9yjhvfkjnsxmns5mksgzsr5nmhh";
       };
     };
     libVersion = {
-      version =			"7.0.9";
+      version =			"7.0.10";
       libSources = {
-        symbols.rev =		"1ed4ed6c0696e50165b8e3d7978136a05db2d7c3";
-        symbols.sha256 =	"0ynsnjq3z126cjkgm1fjbjvdvpc0walnr42ya9dv46l27kxy2j77";
-        templates.rev =		"856bacc6782ea8c9bcb5a49a2d438a4689e0579b";
-        templates.sha256 =	"11582ldnv7hkljmhaym83962kixq1hjbfmdrn5laq7l4jk3l19vh";
-        footprints.rev =	"fe7b9aec7635caabbaa85fa8a15b85038394099b";
-        footprints.sha256 =	"16a4c2xs4i8wbm01a901yxabxk0qdsjkzlccfawddv82bkh4b87h";
-        packages3d.rev =	"5bc66f3c0f6dabf09df6c5188b8d955968500eab";
-        packages3d.sha256 =	"1cly28vc07i54v487zbb8d1h70nrd3naxvq146b0xnbrjwnd2q28";
+        symbols.rev =		"eedf6c9ddac2816023e817d4dc91032f9d7390b9";
+        symbols.sha256 =	"0nlgmxf9z1vf4g350dfkxql1dawgmw275wqxkgszsfxmhdfpmi9v";
+        templates.rev =		"9ce98cc45f3778e05c404edebf0f98de5c247ffe";
+        templates.sha256 =	"0mykfwwik7472i4r0isc5szj3dnmvd0538p0vlmzh4rcgj3pj3vm";
+        footprints.rev =	"7061fc9847ecc1b838e60dc6826db534028494f6";
+        footprints.sha256 =	"1az6fzh1lma71mj12bc4bblnmzjayrxhkb8w9rjvlhvvgv33cdmy";
+        packages3d.rev =	"d7345b34daaa23acf0d4506ed937fb424b5b18cd";
+        packages3d.sha256 =	"0xzyi4mgyifwc6dppdzh6jq294mkj0a71cwkqw2ymz1kfbksw626";
       };
     };
   };
   "kicad-testing" = {
     kicadVersion = {
-      version =			"7.0-2024-01-07";
+      version =			"7.0-2024-01-27";
       src = {
-        rev =			"ace6439758f8d211001235f36f02a60488337e41";
-        sha256 =		"0z4p2srz9rld7mq6k2y5fipz8mgsdhh2506wam4388nklzzkrccr";
+        rev =			"13fcb571f7e5bf4bf142d151651fc577aca32053";
+        sha256 =		"0wvk3wx5lm2jvyip6b96ja464hdzp9klb7b7ng5i3mdldabh0jba";
       };
     };
     libVersion = {
-      version =			"7.0-2024-01-07";
+      version =			"7.0-2024-01-27";
       libSources = {
         symbols.rev =		"eedf6c9ddac2816023e817d4dc91032f9d7390b9";
         symbols.sha256 =	"0nlgmxf9z1vf4g350dfkxql1dawgmw275wqxkgszsfxmhdfpmi9v";
diff --git a/pkgs/applications/science/electronics/magic-vlsi/default.nix b/pkgs/applications/science/electronics/magic-vlsi/default.nix
index 1c9ef55e1e01..a380c6a2b114 100644
--- a/pkgs/applications/science/electronics/magic-vlsi/default.nix
+++ b/pkgs/applications/science/electronics/magic-vlsi/default.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation rec {
   pname = "magic-vlsi";
-  version = "8.3.454";
+  version = "8.3.459";
 
   src = fetchurl {
     url    = "http://opencircuitdesign.com/magic/archive/magic-${version}.tgz";
-    sha256 = "sha256-nHZJ2L54J2x+H7S29TeGPInTgjEhRFv3h2ki0ccGYB0=";
+    sha256 = "sha256-ErNFZHZiJ+Cw8QOQREY9ps5/8WoZYEUwj8aIu42dT9Q=";
   };
 
   nativeBuildInputs = [ python3 ];
diff --git a/pkgs/applications/science/electronics/nanovna-saver/default.nix b/pkgs/applications/science/electronics/nanovna-saver/default.nix
index e9e693fcf511..61788938e40a 100644
--- a/pkgs/applications/science/electronics/nanovna-saver/default.nix
+++ b/pkgs/applications/science/electronics/nanovna-saver/default.nix
@@ -7,13 +7,13 @@
 }:
 python3.pkgs.buildPythonApplication rec {
   pname = "nanovna-saver";
-  version = "0.6.0";
+  version = "0.6.3";
 
   src = fetchFromGitHub {
     owner = "NanoVNA-Saver";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-2vDjAdEL8eNje5bm/1m+Fdi+PCGxpXwpxe2KvlLYB58=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-lL6n3hcsIbLmrRKPi/ckWW2XUAtmBqvMSplkWOF4VKQ=";
   };
 
    nativeBuildInputs = [
diff --git a/pkgs/applications/science/electronics/nvc/default.nix b/pkgs/applications/science/electronics/nvc/default.nix
index 003de49a4915..378daf9c498c 100644
--- a/pkgs/applications/science/electronics/nvc/default.nix
+++ b/pkgs/applications/science/electronics/nvc/default.nix
@@ -7,7 +7,6 @@
 , pkg-config
 , which
 , elfutils
-, libelf
 , libffi
 , llvm
 , zlib
@@ -16,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nvc";
-  version = "1.11.2";
+  version = "1.11.3";
 
   src = fetchFromGitHub {
     owner = "nickg";
     repo = "nvc";
     rev = "r${version}";
-    hash = "sha256-qNnai2THSUyvtcnU5+Rdq+/EJe4HXw05bGTRz+wyXM8=";
+    hash = "sha256-Z4YxXPf8uKlASSK9v6fbtHtkUibc9EeA4i+3kD/vBmY=";
   };
 
   nativeBuildInputs = [
@@ -40,8 +39,6 @@ stdenv.mkDerivation rec {
     zstd
   ] ++ lib.optionals stdenv.isLinux [
     elfutils
-  ] ++ lib.optionals (!stdenv.isLinux) [
-    libelf
   ];
 
   preConfigure = ''
diff --git a/pkgs/applications/science/electronics/simulide/default.nix b/pkgs/applications/science/electronics/simulide/default.nix
index 7a95b68f11f7..fbd76a0e0ffc 100644
--- a/pkgs/applications/science/electronics/simulide/default.nix
+++ b/pkgs/applications/science/electronics/simulide/default.nix
@@ -122,10 +122,8 @@ in
   simulide_1_1_0 = generic {
     version = "1.1.0";
     release = "RC1";
-    # The 1.1.0 branch didn't get merged correctly from trunk
-    # See: https://simulide.com/p/forum/topic/new-files-missing-from-1-1-0-rc1-after-merge
-    branch = "trunk";
-    rev = "2162";
+    branch = "1.1.0";
+    rev = "1912";
     sha256 = "sha256-bgRAqt7h2LtU2Ze6Jiz8APhyPcV15v4ofxIilIeZV9E=";
   };
 }
diff --git a/pkgs/applications/science/geometry/gama/default.nix b/pkgs/applications/science/geometry/gama/default.nix
index f66770721b0e..a27978052a09 100644
--- a/pkgs/applications/science/geometry/gama/default.nix
+++ b/pkgs/applications/science/geometry/gama/default.nix
@@ -1,17 +1,19 @@
 { stdenv, fetchurl, lib, expat, octave, libxml2, texinfo, zip }:
 stdenv.mkDerivation rec {
   pname = "gama";
-  version = "2.27";
+  version = "2.28";
 
   src = fetchurl {
     url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-k4s7TK/ym68v40KDzZoMMxDWFMRnsMuk6V/G9P/jM0E=";
+    sha256 = "sha256-Xcc/4JB7hyM+KHeO32+JlQWUBfH8RXuOL3Z2P0imaxo=";
   };
 
   buildInputs = [ expat ];
 
   nativeBuildInputs = [ texinfo zip ];
 
+  env.CXXFLAGS = lib.optionalString stdenv.cc.isClang "-include sstream";
+
   nativeCheckInputs = [ octave libxml2 ];
   doCheck = true;
 
diff --git a/pkgs/applications/science/logic/abella/default.nix b/pkgs/applications/science/logic/abella/default.nix
index 7e4cfad72ed1..4483b8ad4756 100644
--- a/pkgs/applications/science/logic/abella/default.nix
+++ b/pkgs/applications/science/logic/abella/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, rsync, ocamlPackages }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "abella";
   version = "2.0.8";
 
   src = fetchurl {
-    url = "http://abella-prover.org/distributions/${pname}-${version}.tar.gz";
+    url = "http://abella-prover.org/distributions/abella-${finalAttrs.version}.tar.gz";
     sha256 = "sha256-80b/RUpE3KRY0Qu8eeTxAbk6mwGG6jVTPOP0qFjyj2M=";
   };
 
@@ -33,9 +33,9 @@ stdenv.mkDerivation rec {
       of programming languages and other logical systems which manipulate
       objects with binding.
     '';
-    homepage = "http://abella-prover.org/";
+    homepage = "https://abella-prover.org";
     license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [ bcdarwin ciil ];
     platforms = lib.platforms.unix;
   };
-}
+})
diff --git a/pkgs/applications/science/logic/btor2tools/default.nix b/pkgs/applications/science/logic/btor2tools/default.nix
index 0cb9c8037cb2..ce73ea636f29 100644
--- a/pkgs/applications/science/logic/btor2tools/default.nix
+++ b/pkgs/applications/science/logic/btor2tools/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, cmake, fetchFromGitHub, fixDarwinDylibNames }:
+{ lib, stdenv, cmake, fetchFromGitHub, fetchpatch, fixDarwinDylibNames }:
 
 stdenv.mkDerivation rec {
   pname = "btor2tools";
@@ -11,6 +11,14 @@ stdenv.mkDerivation rec {
     sha256 = "0mfqmkgvyw8fa2c09kww107dmk180ch1hp98r5kv41vnc04iqb0s";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "gcc-13.patch";
+      url = "https://github.com/Boolector/btor2tools/commit/037f1fa88fb439dca6f648ad48a3463256d69d8b.patch";
+      hash = "sha256-FX1yy9XdUs1tAReOxhEzNHu48DrISzNNMSYoIrhHoFY=";
+    })
+  ];
+
   nativeBuildInputs = [ cmake ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
 
   installPhase = ''
diff --git a/pkgs/applications/science/logic/coq/default.nix b/pkgs/applications/science/logic/coq/default.nix
index 039a5334969e..e52a51936180 100644
--- a/pkgs/applications/science/logic/coq/default.nix
+++ b/pkgs/applications/science/logic/coq/default.nix
@@ -56,7 +56,7 @@ let
    "8.17.0".sha256   = "sha256-TGwm7S6+vkeZ8cidvp8pkiAd9tk008jvvPvYgfEOXhM=";
    "8.17.1".sha256   = "sha256-x+RwkbxMg9aR0L3WSCtpIz8jwA5cJA4tXAtHMZb20y4=";
    "8.18.0".sha256   = "sha256-WhiBs4nzPHQ0R24xAdM49kmxSCPOxiOVMA1iiMYunz4=";
-   "8.19+rc1".sha256   = "sha256-hQ57tLj8lXTbMrW+F0skPtzpHJnXbqPIc/EzocRV5qo=";
+   "8.19.0".sha256   = "sha256-ixsYCvCXpBHqJ71hLQklphlwoOO3i/6w2PJjllKqf9k=";
   };
   releaseRev = v: "V${v}";
   fetched = import ../../../../build-support/coq/meta-fetch/default.nix
diff --git a/pkgs/applications/science/logic/cvc5/default.nix b/pkgs/applications/science/logic/cvc5/default.nix
index 142668f382c3..4da837ca46f6 100644
--- a/pkgs/applications/science/logic/cvc5/default.nix
+++ b/pkgs/applications/science/logic/cvc5/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cvc5";
-  version = "1.1.0";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     owner  = "cvc5";
     repo   = "cvc5";
     rev    = "cvc5-${version}";
-    hash  = "sha256-BWmIxQz+if402f7zsFROWG1TXbcsg50FJbnffJFYun4=";
+    hash  = "sha256-TU2ZG6/9bXRPozvEVUiSWixImY38iavD3huhSU8DbCw=";
   };
 
   nativeBuildInputs = [ pkg-config cmake flex ];
diff --git a/pkgs/applications/science/logic/easycrypt/default.nix b/pkgs/applications/science/logic/easycrypt/default.nix
index 36ff9f2046f8..2869bcd6e1e3 100644
--- a/pkgs/applications/science/logic/easycrypt/default.nix
+++ b/pkgs/applications/science/logic/easycrypt/default.nix
@@ -22,11 +22,12 @@ stdenv.mkDerivation rec {
     batteries
     dune-build-info
     inifiles
+    why3
     yojson
     zarith
   ];
 
-  propagatedBuildInputs = [ why3 ];
+  propagatedBuildInputs = [ why3.out ];
 
   strictDeps = true;
 
diff --git a/pkgs/applications/science/logic/egglog/Cargo.lock b/pkgs/applications/science/logic/egglog/Cargo.lock
index cb023f2e05c1..0d2fbadc10bc 100644
--- a/pkgs/applications/science/logic/egglog/Cargo.lock
+++ b/pkgs/applications/science/logic/egglog/Cargo.lock
@@ -4,9 +4,9 @@ version = 3
 
 [[package]]
 name = "ahash"
-version = "0.7.6"
+version = "0.7.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
+checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd"
 dependencies = [
  "getrandom",
  "once_cell",
@@ -15,56 +15,56 @@ dependencies = [
 
 [[package]]
 name = "ahash"
-version = "0.8.3"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
+checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a"
 dependencies = [
  "cfg-if 1.0.0",
  "once_cell",
  "version_check",
+ "zerocopy",
 ]
 
 [[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 = "allocator-api2"
-version = "0.2.15"
+version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56fc6cf8dc8c4158eed8649f9b8b0ea1518eb62b544fe9490d66fa0b349eafe9"
+checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
 
 [[package]]
 name = "anstream"
-version = "0.3.2"
+version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163"
+checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44"
 dependencies = [
  "anstyle",
  "anstyle-parse",
  "anstyle-query",
  "anstyle-wincon",
  "colorchoice",
- "is-terminal",
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle"
-version = "1.0.1"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd"
+checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
 
 [[package]]
 name = "anstyle-parse"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
+checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140"
 dependencies = [
  "utf8parse",
 ]
@@ -80,9 +80,9 @@ dependencies = [
 
 [[package]]
 name = "anstyle-wincon"
-version = "1.0.1"
+version = "3.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188"
+checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628"
 dependencies = [
  "anstyle",
  "windows-sys",
@@ -126,9 +126,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.3.3"
+version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
 
 [[package]]
 name = "block-buffer"
@@ -141,15 +141,9 @@ dependencies = [
 
 [[package]]
 name = "bumpalo"
-version = "3.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
-
-[[package]]
-name = "cc"
-version = "1.0.79"
+version = "3.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
 
 [[package]]
 name = "cfg-if"
@@ -165,20 +159,19 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "clap"
-version = "4.3.11"
+version = "4.4.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1640e5cc7fb47dbb8338fd471b105e7ed6c3cb2aeb00c2e067127ffd3764a05d"
+checksum = "ac495e00dcec98c83465d5ad66c5c4fabd652fd6686e7c6269b117e729a6f17b"
 dependencies = [
  "clap_builder",
  "clap_derive",
- "once_cell",
 ]
 
 [[package]]
 name = "clap_builder"
-version = "4.3.11"
+version = "4.4.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "98c59138d527eeaf9b53f35a77fcc1fad9d883116070c63d5de1c7dc7b00c72b"
+checksum = "c77ed9a32a62e6ca27175d00d29d05ca32e396ea1eb5fb01d8256b669cec7663"
 dependencies = [
  "anstream",
  "anstyle",
@@ -188,21 +181,21 @@ dependencies = [
 
 [[package]]
 name = "clap_derive"
-version = "4.3.2"
+version = "4.4.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8cd2b2a819ad6eec39e8f1d6b53001af1e5469f8c177579cdaeb313115b825f"
+checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.25",
+ "syn 2.0.38",
 ]
 
 [[package]]
 name = "clap_lex"
-version = "0.5.0"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
+checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
 
 [[package]]
 name = "colorchoice"
@@ -222,9 +215,9 @@ dependencies = [
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.9"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
+checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
 dependencies = [
  "libc",
 ]
@@ -304,10 +297,11 @@ dependencies = [
  "clap",
  "egraph-serialize",
  "env_logger",
+ "generic_symbolic_expressions",
  "getrandom",
  "glob",
- "hashbrown 0.14.0",
- "indexmap 2.0.0",
+ "hashbrown 0.14.2",
+ "indexmap",
  "instant",
  "lalrpop",
  "lalrpop-util",
@@ -323,17 +317,17 @@ dependencies = [
  "serde_json",
  "smallvec",
  "symbol_table",
- "symbolic_expressions",
  "thiserror",
 ]
 
 [[package]]
 name = "egraph-serialize"
 version = "0.1.0"
-source = "git+https://github.com/egraphs-good/egraph-serialize?rev=e406ffcec8c6e841089fd3e4f9b76c35ce448950#e406ffcec8c6e841089fd3e4f9b76c35ce448950"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a41150f383849cfc16ae6230f592112b3c0a2c0e3ec43eb0b09db037bfcce703"
 dependencies = [
  "graphviz-rust",
- "indexmap 2.0.0",
+ "indexmap",
  "once_cell",
  "ordered-float",
  "serde",
@@ -342,9 +336,9 @@ dependencies = [
 
 [[package]]
 name = "either"
-version = "1.8.1"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
+checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
 
 [[package]]
 name = "ena"
@@ -376,30 +370,19 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
 name = "errno"
-version = "0.3.1"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
+checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860"
 dependencies = [
- "errno-dragonfly",
  "libc",
  "windows-sys",
 ]
 
 [[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 = "fastrand"
-version = "2.0.0"
+version = "2.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
 
 [[package]]
 name = "fixedbitset"
@@ -418,6 +401,11 @@ dependencies = [
 ]
 
 [[package]]
+name = "generic_symbolic_expressions"
+version = "5.0.3"
+source = "git+https://github.com/oflatt/symbolic-expressions?rev=655b6a4c06b4b3d3b2300e17779860b4abe440f0#655b6a4c06b4b3d3b2300e17779860b4abe440f0"
+
+[[package]]
 name = "getrandom"
 version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -458,16 +446,16 @@ version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
 dependencies = [
- "ahash 0.7.6",
+ "ahash 0.7.7",
 ]
 
 [[package]]
 name = "hashbrown"
-version = "0.14.0"
+version = "0.14.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
+checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156"
 dependencies = [
- "ahash 0.8.3",
+ "ahash 0.8.6",
  "allocator-api2",
 ]
 
@@ -479,9 +467,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.2"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
 
 [[package]]
 name = "humantime"
@@ -491,22 +479,12 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
 
 [[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",
-]
-
-[[package]]
-name = "indexmap"
-version = "2.0.0"
+version = "2.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897"
 dependencies = [
  "equivalent",
- "hashbrown 0.14.0",
+ "hashbrown 0.14.2",
  "serde",
 ]
 
@@ -595,7 +573,7 @@ dependencies = [
  "petgraph",
  "pico-args",
  "regex",
- "regex-syntax",
+ "regex-syntax 0.7.5",
  "string_cache",
  "term",
  "tiny-keccak",
@@ -619,9 +597,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libc"
-version = "0.2.147"
+version = "0.2.149"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b"
 
 [[package]]
 name = "libtest-mimic"
@@ -636,15 +614,15 @@ dependencies = [
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.3"
+version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0"
+checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f"
 
 [[package]]
 name = "lock_api"
-version = "0.4.10"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -652,15 +630,15 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.19"
+version = "0.4.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
 name = "memchr"
-version = "2.5.0"
+version = "2.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
 
 [[package]]
 name = "memory_units"
@@ -676,9 +654,9 @@ checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
 
 [[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",
@@ -709,9 +687,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.15"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
 dependencies = [
  "autocfg",
 ]
@@ -734,9 +712,9 @@ checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
 
 [[package]]
 name = "ordered-float"
-version = "3.7.0"
+version = "3.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fc2dbde8f8a79f2102cc474ceb0ad68e3b80b85289ea62389b60e66777e4213"
+checksum = "f1e1c390732d15f1d48471625cd92d154e66db2c56645e29a9cd26f4699f72dc"
 dependencies = [
  "num-traits",
  "rand",
@@ -755,32 +733,33 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.8"
+version = "0.9.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
  "cfg-if 1.0.0",
  "libc",
- "redox_syscall 0.3.5",
+ "redox_syscall 0.4.1",
  "smallvec",
  "windows-targets",
 ]
 
 [[package]]
 name = "pest"
-version = "2.7.2"
+version = "2.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1acb4a4365a13f749a93f1a094a7805e5cfa0955373a9de860d962eaa3a5fe5a"
+checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5"
 dependencies = [
+ "memchr",
  "thiserror",
  "ucd-trie",
 ]
 
 [[package]]
 name = "pest_derive"
-version = "2.7.2"
+version = "2.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "666d00490d4ac815001da55838c500eafb0320019bbaa44444137c48b443a853"
+checksum = "81d78524685f5ef2a3b3bd1cafbc9fcabb036253d9b1463e726a91cd16e2dfc2"
 dependencies = [
  "pest",
  "pest_generator",
@@ -788,22 +767,22 @@ dependencies = [
 
 [[package]]
 name = "pest_generator"
-version = "2.7.2"
+version = "2.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68ca01446f50dbda87c1786af8770d535423fa8a53aec03b8f4e3d7eb10e0929"
+checksum = "68bd1206e71118b5356dae5ddc61c8b11e28b09ef6a31acbd15ea48a28e0c227"
 dependencies = [
  "pest",
  "pest_meta",
  "proc-macro2",
  "quote",
- "syn 2.0.25",
+ "syn 2.0.38",
 ]
 
 [[package]]
 name = "pest_meta"
-version = "2.7.2"
+version = "2.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56af0a30af74d0445c0bf6d9d051c979b516a1a5af790d251daee76005420a48"
+checksum = "7c747191d4ad9e4a4ab9c8798f1e82a39affe7ef9648390b7e5548d18e099de6"
 dependencies = [
  "once_cell",
  "pest",
@@ -812,12 +791,12 @@ dependencies = [
 
 [[package]]
 name = "petgraph"
-version = "0.6.3"
+version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4"
+checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
 dependencies = [
  "fixedbitset",
- "indexmap 1.9.3",
+ "indexmap",
 ]
 
 [[package]]
@@ -849,18 +828,18 @@ checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.64"
+version = "1.0.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78803b62cbf1f46fde80d7c0e803111524b9877184cfe7c3033659490ac7a7da"
+checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.29"
+version = "1.0.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
+checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
 dependencies = [
  "proc-macro2",
 ]
@@ -908,9 +887,9 @@ dependencies = [
 
 [[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",
 ]
@@ -928,32 +907,38 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.9.1"
+version = "1.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"
+checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
 dependencies = [
  "aho-corasick",
  "memchr",
  "regex-automata",
- "regex-syntax",
+ "regex-syntax 0.8.2",
 ]
 
 [[package]]
 name = "regex-automata"
-version = "0.3.2"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "83d3daa6976cffb758ec878f108ba0e062a45b2d6ca3a2cca965338855476caf"
+checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-syntax",
+ "regex-syntax 0.8.2",
 ]
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.4"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
+checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "rustc-hash"
@@ -963,11 +948,11 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
 
 [[package]]
 name = "rustix"
-version = "0.38.4"
+version = "0.38.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a962918ea88d644592894bc6dc55acc6c0956488adcebbfb6e273506b7fd6e5"
+checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3"
 dependencies = [
- "bitflags 2.3.3",
+ "bitflags 2.4.1",
  "errno",
  "libc",
  "linux-raw-sys",
@@ -976,9 +961,9 @@ dependencies = [
 
 [[package]]
 name = "rustversion"
-version = "1.0.13"
+version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc31bd9b61a32c31f9650d18add92aa83a49ba979c143eefd27fe7177b05bd5f"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 
 [[package]]
 name = "ryu"
@@ -988,37 +973,37 @@ checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
 
 [[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 = "serde"
-version = "1.0.171"
+version = "1.0.190"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30e27d1e4fd7659406c492fd6cfaf2066ba8773de45ca75e855590f856dc34a9"
+checksum = "91d3c334ca1ee894a2c6f6ad698fe8c435b76d504b13d436f0685d648d6d96f7"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.171"
+version = "1.0.190"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "389894603bd18c46fa56231694f8d827779c0951a667087194cf9de94ed24682"
+checksum = "67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.25",
+ "syn 2.0.38",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.103"
+version = "1.0.108"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d03b412469450d4404fe8499a268edd7f8b79fecb074b0d812ad64ca21f4031b"
+checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
 dependencies = [
- "indexmap 2.0.0",
+ "indexmap",
  "itoa",
  "ryu",
  "serde",
@@ -1026,9 +1011,9 @@ dependencies = [
 
 [[package]]
 name = "sha2"
-version = "0.10.7"
+version = "0.10.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
 dependencies = [
  "cfg-if 1.0.0",
  "cpufeatures",
@@ -1037,15 +1022,15 @@ 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 = "smallvec"
-version = "1.11.0"
+version = "1.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
+checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a"
 
 [[package]]
 name = "string_cache"
@@ -1068,19 +1053,15 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
 name = "symbol_table"
-version = "0.2.0"
-source = "git+https://github.com/mwillsey/symbol_table?rev=acddcf8938d1b4ed2fce048c9d83c30203d404b9#acddcf8938d1b4ed2fce048c9d83c30203d404b9"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "828f672b631c220bf6ea8a1d3b82c7d0fc998e5ba8373383d8604bc1e2a6245a"
 dependencies = [
- "ahash 0.7.6",
+ "ahash 0.7.7",
  "hashbrown 0.12.3",
 ]
 
 [[package]]
-name = "symbolic_expressions"
-version = "5.0.3"
-source = "git+https://github.com/oflatt/symbolic-expressions?rev=4c0ea5ca008f972450b2af72387e64d2c1c6a791#4c0ea5ca008f972450b2af72387e64d2c1c6a791"
-
-[[package]]
 name = "syn"
 version = "1.0.109"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1093,9 +1074,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.25"
+version = "2.0.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15e3fc8c0c74267e2df136e5e5fb656a464158aa57624053375eb9c8c6e25ae2"
+checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1104,13 +1085,13 @@ dependencies = [
 
 [[package]]
 name = "tempfile"
-version = "3.7.1"
+version = "3.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc02fddf48964c42031a0b3fe0428320ecf3a73c401040fc0096f97794310651"
+checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
 dependencies = [
  "cfg-if 1.0.0",
  "fastrand",
- "redox_syscall 0.3.5",
+ "redox_syscall 0.4.1",
  "rustix",
  "windows-sys",
 ]
@@ -1128,31 +1109,31 @@ dependencies = [
 
 [[package]]
 name = "termcolor"
-version = "1.2.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64"
 dependencies = [
  "winapi-util",
 ]
 
 [[package]]
 name = "thiserror"
-version = "1.0.43"
+version = "1.0.50"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a35fc5b8971143ca348fa6df4f024d4d55264f3468c71ad1c2f365b0a4d58c42"
+checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.43"
+version = "1.0.50"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "463fe12d7993d3b327787537ce8dd4dfa058de32fc2b195ef3cde03dc4771e8f"
+checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.25",
+ "syn 2.0.38",
 ]
 
 [[package]]
@@ -1175,9 +1156,9 @@ 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 = "ucd-trie"
@@ -1187,9 +1168,9 @@ checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.10"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22049a19f4a68748a168c0fc439f9516686aa045927ff767eca0a85101fb6e73"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-xid"
@@ -1236,7 +1217,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.25",
+ "syn 2.0.38",
  "wasm-bindgen-shared",
 ]
 
@@ -1258,7 +1239,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.25",
+ "syn 2.0.38",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -1334,9 +1315,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",
 ]
@@ -1358,9 +1339,9 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.48.1"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
 dependencies = [
  "windows_aarch64_gnullvm",
  "windows_aarch64_msvc",
@@ -1373,42 +1354,62 @@ dependencies = [
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[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_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_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_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_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 = "zerocopy"
+version = "0.7.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd66a62464e3ffd4e37bd09950c2b9dd6c4f8767380fabba0d523f9a775bc85a"
+dependencies = [
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "255c4596d41e6916ced49cfafea18727b24d67878fa180ddfd69b9df34fd1726"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.38",
+]
diff --git a/pkgs/applications/science/logic/egglog/default.nix b/pkgs/applications/science/logic/egglog/default.nix
index eedd90315db8..ab5653b50912 100644
--- a/pkgs/applications/science/logic/egglog/default.nix
+++ b/pkgs/applications/science/logic/egglog/default.nix
@@ -5,21 +5,21 @@
 
 rustPlatform.buildRustPackage {
   pname = "egglog";
-  version = "unstable-2023-09-12";
+  version = "0-unstable-2024-01-26";
 
   src = fetchFromGitHub {
     owner = "egraphs-good";
     repo = "egglog";
-    rev = "4d67f262a6f27aa5cfb62a2cfc7df968959105df";
-    hash = "sha256-1mc7dW2pgaK4D7ZmlSHohb+6lcr7M9SRLUV/Dod8Rv0=";
+    rev = "b78f69ca1f7187c363bb31271c8e8958f477f15d";
+    hash = "sha256-/1ktyz8wU1yLTdAFPnupK6jUFjiK6nQfotGRNOWiOsA=";
   };
 
+  useNextest = true;
+
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "egraph-serialize-0.1.0" = "sha256-sdkn7lmtmbLwAopabLWkrD6GjM3LIHseysuvwPz26G4=";
-      "symbol_table-0.2.0" = "sha256-f9UclMOUig+N5L3ibBXou0pJ4S/CQqtaji7tnebVbis=";
-      "symbolic_expressions-5.0.3" = "sha256-mSxnhveAItlTktQC4hM8o6TYjgtCUgkdZj7i6MR4Oeo=";
+      "generic_symbolic_expressions-5.0.3" = "sha256-UX6fS470YJMdNnn0GR3earMGQK3p/YvaFia7IEvGGKg=";
     };
   };
 
diff --git a/pkgs/applications/science/logic/lean4/default.nix b/pkgs/applications/science/logic/lean4/default.nix
index 092489f84456..97336c06b806 100644
--- a/pkgs/applications/science/logic/lean4/default.nix
+++ b/pkgs/applications/science/logic/lean4/default.nix
@@ -5,22 +5,23 @@
 , git
 , gmp
 , perl
+, testers
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "lean4";
-  version = "4.4.0";
+  version = "4.5.0";
 
   src = fetchFromGitHub {
     owner = "leanprover";
     repo = "lean4";
-    rev = "v${version}";
-    hash = "sha256-lU67wjl6yJP2r97lHYxrJqn+JhqMcBIbz/+qlCgY3/o=";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-KTCTk4Fpbmm7FsUo03tAvenC6HuB3zJGax6iGTwLaXM=";
   };
 
   postPatch = ''
     substituteInPlace src/CMakeLists.txt \
-      --replace 'set(GIT_SHA1 "")' 'set(GIT_SHA1 "${src.rev}")'
+      --replace 'set(GIT_SHA1 "")' 'set(GIT_SHA1 "${finalAttrs.src.rev}")'
 
     # Remove tests that fails in sandbox.
     # It expects `sourceRoot` to be a git repository.
@@ -54,13 +55,19 @@ stdenv.mkDerivation rec {
     NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
   };
 
+  passthru.tests = {
+    version = testers.testVersion {
+      package = finalAttrs.finalPackage;
+    };
+  };
+
   meta = with lib; {
     description = "Automatic and interactive theorem prover";
     homepage = "https://leanprover.github.io/";
-    changelog = "https://github.com/leanprover/lean4/blob/${src.rev}/RELEASES.md";
+    changelog = "https://github.com/leanprover/lean4/blob/${finalAttrs.src.rev}/RELEASES.md";
     license = licenses.asl20;
     platforms = platforms.all;
     maintainers = with maintainers; [ marsam ];
     mainProgram = "lean";
   };
-}
+})
diff --git a/pkgs/applications/science/logic/why3/default.nix b/pkgs/applications/science/logic/why3/default.nix
index f0567fdda3b6..1676ca4c2a4f 100644
--- a/pkgs/applications/science/logic/why3/default.nix
+++ b/pkgs/applications/science/logic/why3/default.nix
@@ -1,6 +1,8 @@
 { callPackage, fetchurl, lib, stdenv
 , ocamlPackages, coqPackages, rubber, hevea, emacs
-, version ? "1.7.0"
+, version ? "1.7.1"
+, ideSupport ? true
+, wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
@@ -10,15 +12,18 @@ stdenv.mkDerivation rec {
   src = fetchurl {
     url = "https://why3.gitlabpages.inria.fr/releases/${pname}-${version}.tar.gz";
     hash = {
-      "1.7.0" = "sha256-rygrjzuJVukOvpuXTG/yeoEP98ZFkLQHObgc3My1PVY=";
+      "1.7.1" = "sha256-rG1hcxFhQ2PlE9RTz9ELliDjCuSzLnJ1togRY637cU4=";
       "1.6.0" = "sha256-hFvM6kHScaCtcHCc6Vezl9CR7BFbiKPoTEh7kj0ZJxw=";
     }."${version}";
   };
 
   strictDeps = true;
 
-  nativeBuildInputs = with ocamlPackages;  [
+  nativeBuildInputs = lib.optional ideSupport
+    wrapGAppsHook
+  ++ (with ocamlPackages;  [
     ocaml findlib menhir
+  ]) ++ [
     # Coq Support
     coqPackages.coq
   ];
@@ -29,8 +34,10 @@ stdenv.mkDerivation rec {
     emacs
     # Documentation
     rubber hevea
+  ] ++ lib.optional ideSupport
     # GUI
     lablgtk3-sourceview3
+  ++ [
     # WebIDE
     js_of_ocaml js_of_ocaml-ppx
     # S-expression output for why3pp
@@ -44,10 +51,19 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  configureFlags = [ "--enable-verbose-make" ];
+  configureFlags = [ "--enable-verbose-make"
+    (lib.enableFeature ideSupport "ide")
+  ];
+
+  outputs = [ "out" "dev" ];
 
   installTargets = [ "install" "install-lib" ];
 
+  postInstall = ''
+    mkdir -p $dev/lib
+    mv $out/lib/ocaml $dev/lib/
+  '';
+
   passthru.withProvers = callPackage ./with-provers.nix {};
 
   meta = with lib; {
diff --git a/pkgs/applications/science/logic/workcraft/default.nix b/pkgs/applications/science/logic/workcraft/default.nix
index 24d3fb84d6ee..89f6e23c79d3 100644
--- a/pkgs/applications/science/logic/workcraft/default.nix
+++ b/pkgs/applications/science/logic/workcraft/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "workcraft";
-  version = "3.4.1";
+  version = "3.4.2";
 
   src = fetchurl {
     url = "https://github.com/workcraft/workcraft/releases/download/v${version}/workcraft-v${version}-linux.tar.gz";
-    sha256 = "sha256-/mh8IN3rGUZIYvyrqnhl0mgnizPZzDduXjQHIDouI38=";
+    sha256 = "sha256-+O6fl/+D89L5xrrTaAnBTfw0tFz/CoKLaBa+OHtdnaA=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/science/logic/z3/default.nix b/pkgs/applications/science/logic/z3/default.nix
index 9ede6a922da6..b247599a0813 100644
--- a/pkgs/applications/science/logic/z3/default.nix
+++ b/pkgs/applications/science/logic/z3/default.nix
@@ -89,8 +89,8 @@ let common = { version, sha256, patches ? [ ], tag ? "z3" }:
 in
 {
   z3_4_12 = common {
-    version = "4.12.4";
-    sha256 = "sha256-cxl7D47dRn+uMVOHbF0avj5+ZFWjaJ7lXj/8l6r9q2I=";
+    version = "4.12.5";
+    sha256 = "sha256-Qj9w5s02OSMQ2qA7HG7xNqQGaUacA1d4zbOHynq5k+A=";
   };
   z3_4_11 = common {
     version = "4.11.2";
diff --git a/pkgs/applications/science/math/eigenmath/default.nix b/pkgs/applications/science/math/eigenmath/default.nix
index 561c9c66a50e..e23d252e3f27 100644
--- a/pkgs/applications/science/math/eigenmath/default.nix
+++ b/pkgs/applications/science/math/eigenmath/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "eigenmath";
-  version = "unstable-2023-12-31";
+  version = "unstable-2024-01-23";
 
   src = fetchFromGitHub {
     owner = "georgeweigt";
     repo = pname;
-    rev = "cc92936e226b0a4c77cdc5d00b7a02c472746f6f";
-    hash = "sha256-wY06pZzqcgYdBS7ecB3ZnvmK74ve651n6aHHAN5DWdw=";
+    rev = "1d55696b742fee0b4ef8e39b7a420c00c2f1e329";
+    hash = "sha256-AQdCFKDUWfNKxZoWp82DdxUA2GiMGWyuyh7Fkofm9kc=";
   };
 
   checkPhase = let emulator = stdenv.hostPlatform.emulator buildPackages; in ''
diff --git a/pkgs/applications/science/math/mathematica/generic.nix b/pkgs/applications/science/math/mathematica/generic.nix
index 5064a3ddbdf4..5a96bf1a2625 100644
--- a/pkgs/applications/science/math/mathematica/generic.nix
+++ b/pkgs/applications/science/math/mathematica/generic.nix
@@ -56,7 +56,9 @@ let cudaEnv = symlinkJoin {
         cuda_cudart cuda_nvcc libcublas libcufft libcurand libcusparse
       ];
       postBuild = ''
-        ln -s ${addOpenGLRunpath.driverLink}/lib/libcuda.so $out/lib
+        if [ ! -e $out/lib/libcuda.so ]; then
+            ln -s ${addOpenGLRunpath.driverLink}/lib/libcuda.so $out/lib
+        fi
         ln -s lib $out/lib64
       '';
     };
@@ -119,7 +121,11 @@ in stdenv.mkDerivation {
   ]) ++ lib.optional cudaSupport cudaEnv;
 
   wrapProgramFlags = [
-    "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ gcc-unwrapped.lib zlib ]}"
+    "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [
+      dbus
+      gcc-unwrapped.lib
+      zlib
+    ]}"
     "--prefix PATH : ${lib.makeBinPath [ stdenv.cc ]}"
     # Fix libQt errors - #96490
     "--set USE_WOLFRAM_LD_LIBRARY_PATH 1"
diff --git a/pkgs/applications/science/math/sage/default.nix b/pkgs/applications/science/math/sage/default.nix
index a4173d1f5e6d..765c691c9555 100644
--- a/pkgs/applications/science/math/sage/default.nix
+++ b/pkgs/applications/science/math/sage/default.nix
@@ -32,6 +32,7 @@ let
     });
   };
 
+  # matches src/sage/repl/ipython_kernel/install.py:kernel_spec
   jupyter-kernel-definition = {
     displayName = "SageMath ${sage-src.version}";
     argv = [
@@ -42,7 +43,7 @@ let
       "-f"
       "{connection_file}"
     ];
-    language = "sagemath";
+    language = "sage";
     # just one 16x16 logo is available
     logo32 = "${sage-src}/src/doc/common/themes/sage/static/sageicon.png";
     logo64 = "${sage-src}/src/doc/common/themes/sage/static/sageicon.png";
diff --git a/pkgs/applications/science/math/sage/patches/disable-slow-glpk-test.patch b/pkgs/applications/science/math/sage/patches/disable-slow-glpk-test.patch
index c04463e7e99c..89f0613589d4 100644
--- a/pkgs/applications/science/math/sage/patches/disable-slow-glpk-test.patch
+++ b/pkgs/applications/science/math/sage/patches/disable-slow-glpk-test.patch
@@ -1,12 +1,12 @@
 diff --git a/src/sage/graphs/generic_graph.py b/src/sage/graphs/generic_graph.py
-index 0070705f78..ac19818f1b 100644
+index 2deb533f7f..663ff2cd13 100644
 --- a/src/sage/graphs/generic_graph.py
 +++ b/src/sage/graphs/generic_graph.py
-@@ -6699,12 +6699,6 @@ class GenericGraph(GenericGraph_pyx):
+@@ -6953,12 +6953,6 @@ class GenericGraph(GenericGraph_pyx):
              sage: G = DiGraph(d6, format='dig6')
              sage: G.edge_connectivity()
              5
--            sage: G.edge_disjoint_spanning_trees(5)  # long time
+-            sage: G.edge_disjoint_spanning_trees(5)     # long time                     # needs sage.numerical.mip
 -            [Digraph on 28 vertices,
 -             Digraph on 28 vertices,
 -             Digraph on 28 vertices,
diff --git a/pkgs/applications/science/math/sage/patches/numpy-1.25-deprecation.patch b/pkgs/applications/science/math/sage/patches/numpy-1.25-deprecation.patch
deleted file mode 100644
index 539afc4b3b77..000000000000
--- a/pkgs/applications/science/math/sage/patches/numpy-1.25-deprecation.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/graphique_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/graphique_doctest.py
-index aa153fd4cd..eebbe87aff 100644
---- a/src/sage/tests/books/computational-mathematics-with-sagemath/graphique_doctest.py
-+++ b/src/sage/tests/books/computational-mathematics-with-sagemath/graphique_doctest.py
-@@ -134,11 +134,11 @@ Sage example in ./graphique.tex, line 1120::
-   sage: t = srange(0, 5, 0.1); p = Graphics()
-   sage: for k in srange(0, 10, 0.15):
-   ....:       y = integrate.odeint(f, k, t)
--  ....:       p += line(zip(t, flatten(y)))
-+  ....:       p += line(zip(t, y.flatten()))
-   sage: t = srange(0, -5, -0.1); q = Graphics()
-   sage: for k in srange(0, 10, 0.15):
-   ....:       y = integrate.odeint(f, k, t)
--  ....:       q += line(zip(t, flatten(y)))
-+  ....:       q += line(zip(t, y.flatten()))
-   sage: y = var('y')
-   sage: v = plot_vector_field((1, -cos(x*y)), (x,-5,5), (y,-2,11))
-   sage: g = p + q + v; g.show()
diff --git a/pkgs/applications/science/math/sage/python-modules/sage-setup.nix b/pkgs/applications/science/math/sage/python-modules/sage-setup.nix
index e1c497678d50..a96f7ccd5d4c 100644
--- a/pkgs/applications/science/math/sage/python-modules/sage-setup.nix
+++ b/pkgs/applications/science/math/sage/python-modules/sage-setup.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , sage-src
-, cython
+, cython_3
 , jinja2
 , pkgconfig # the python module, not the pkg-config alias
 }:
@@ -11,7 +11,7 @@ buildPythonPackage rec {
   pname = "sage-setup";
   src = sage-src;
 
-  nativeBuildInputs = [ cython ];
+  nativeBuildInputs = [ cython_3 ];
   buildInputs = [ pkgconfig ];
   propagatedBuildInputs = [ jinja2 ];
 
diff --git a/pkgs/applications/science/math/sage/sage-src.nix b/pkgs/applications/science/math/sage/sage-src.nix
index 96b1adb562f4..a77565e4072a 100644
--- a/pkgs/applications/science/math/sage/sage-src.nix
+++ b/pkgs/applications/science/math/sage/sage-src.nix
@@ -1,6 +1,7 @@
 { stdenv
 , fetchFromGitHub
 , fetchpatch
+, fetchurl
 }:
 
 # This file is responsible for fetching the sage source and adding necessary patches.
@@ -9,14 +10,23 @@
 # all get the same sources with the same patches applied.
 
 stdenv.mkDerivation rec {
-  version = "10.0";
+  version = "10.2";
   pname = "sage-src";
 
   src = fetchFromGitHub {
     owner = "sagemath";
     repo = "sage";
     rev = version;
-    sha256 = "sha256-zN/Lo/GBCjYGemuaYpgG3laufN8te3wPjXMQ+Me9zgY=";
+    sha256 = "sha256-VXnPdJhtw5Y/anecrVpevJDCyBVfnjksyuuZslNipm4=";
+  };
+
+  # contains essential files (e.g., setup.cfg) generated by the bootstrap script.
+  # TODO: investigate https://github.com/sagemath/sage/pull/35950
+  configure-src = fetchurl {
+    # the hash below is the tagged commit's _parent_. it can also be found by looking for
+    # the "configure" asset at https://github.com/sagemath/sage/releases/tag/${version}
+    url = "mirror://sageupstream/configure/configure-b2813506039143e6f0abe859ab67a343abf72c2e.tar.gz";
+    sha256 = "sha256-a1v0XyoKI+zO6Sjm8DzEwItRHbIgRDbpj4UfwVH+/hw=";
   };
 
   # Patches needed because of particularities of nix or the way this is packaged.
@@ -52,98 +62,11 @@ stdenv.mkDerivation rec {
   # should come from or be proposed to upstream. This list will probably never
   # be empty since dependencies update all the time.
   packageUpgradePatches = [
-    # https://github.com/sagemath/sage/pull/35584, landed in 10.1.beta1
-    (fetchpatch {
-      name = "networkx-3.1-upgrade.patch";
-      url = "https://github.com/sagemath/sage/commit/be0aab74fd7e399e146988ef27260d2837baebae.diff";
-      sha256 = "sha256-xBGrylNaiF7CpfmX9/4lTioP2LSYKoRCkKlKSGZuv9U=";
-    })
-
-    # https://github.com/sagemath/sage/pull/35612, landed in 10.1.beta1
-    (fetchpatch {
-      name = "linbox-1.7-upgrade.patch";
-      url = "https://github.com/sagemath/sage/commit/35cbd2f2a2c4c355455d39b1424f05ea0aa4349b.diff";
-      sha256 = "sha256-/TpvIQZUqmbUuz6wvp3ni9oRir5LBA2FKDJcmnHI1r4=";
-    })
-
-    # https://github.com/sagemath/sage/pull/35619, landed in 10.1.beta1
-    (fetchpatch {
-      name = "maxima-5.46.0-upgrade.patch";
-      url = "https://github.com/sagemath/sage/commit/4ddf9328e7598284d4bc03cd2ed890f0be6b6399.diff";
-      sha256 = "sha256-f6YaZiLSj+E0LJMsMZHDt6vecWffSAuUHYVkegBEhno=";
-    })
-
-    # https://github.com/sagemath/sage/pull/35635, landed in 10.1.beta1
-    (fetchpatch {
-      name = "sympy-1.12-upgrade.patch";
-      url = "https://github.com/sagemath/sage/commit/1a73b3bbbfa0f4a297e05d49305070e1ed5ae598.diff";
-      sha256 = "sha256-k8Oam+EiRcfXC7qCdLacCx+7vpUAw2K1wsjKcQbeGb4=";
-    })
-
-    # https://github.com/sagemath/sage/pull/35826, landed in 10.1.beta5
-    (fetchpatch {
-      name = "numpy-1.25.0-upgrade.patch";
-      url = "https://github.com/sagemath/sage/commit/ecfe06b8f1fe729b07e885f0de55244467e5c137.diff";
-      sha256 = "sha256-G0xhl+LyNdDYPzRqSHK3fHaepcIzpuwmqRiussraDf0=";
-    })
-
-    # https://github.com/sagemath/sage/pull/35826#issuecomment-1658569891
-    ./patches/numpy-1.25-deprecation.patch
-
-    # https://github.com/sagemath/sage/pull/35842, landed in 10.1.beta5
-    (fetchpatch {
-      name = "scipy-1.11-upgrade.patch";
-      url = "https://github.com/sagemath/sage/commit/90ece168c3c61508baa36659b0027b7dd8b43add.diff";
-      sha256 = "sha256-Y5TmuJcUJR+veb2AuSVODGs+xkVV+pTM8fWTm4q+NDs=";
-    })
-
-    # https://github.com/sagemath/sage/pull/35825, landed in 10.1.beta6
-    (fetchpatch {
-      name = "singular-4.3.2p2-upgrade.patch";
-      url = "https://github.com/sagemath/sage/commit/1a1b49f814cdf4c4c8d0ac8930610f3fef6af5b0.diff";
-      sha256 = "sha256-GqMgoi0tsP7zcCcPumhdsbvhPB6fgw1ufx6gHlc6iSc=";
-    })
-
-    # https://github.com/sagemath/sage/pull/36006, landed in 10.2.beta2
-    (fetchpatch {
-      name = "gmp-6.3-upgrade.patch";
-      url = "https://github.com/sagemath/sage/commit/5e841de46c3baa99cd1145b36ff9163e9340a55c.diff";
-      sha256 = "sha256-fJPDryLtGBQz9qHDiCkBwjiW2lN6v7HiHgxY7CTeHcs=";
-    })
-
-    # https://github.com/sagemath/sage/pull/36279, landed in 10.2.beta4
-    (fetchpatch {
-       name = "matplotlib-3.8-upgrade.patch";
-       url = "https://github.com/sagemath/sage/commit/0fcf88935908440930c5f79202155aca4ad57518.diff";
-       sha256 = "sha256-mvqAHaTCXsxPv901L8HSTnrfghfXYdq0wfLoP/cYQZI=";
-    })
-
-    # https://github.com/sagemath/sage/pull/35658, landed in 10.1.beta2
+    # https://github.com/sagemath/sage/pull/37123, to land in 10.3.beta7
     (fetchpatch {
-      name = "sphinx-7-upgrade.patch";
-      url = "https://github.com/sagemath/sage/commit/cacd9a89b5c4fdcf84a8dd2b7d5bdc10cc78109a.diff";
-      sha256 = "sha256-qJvliTJjR3XBc5pH6Q0jtm8c4bhtZcTcF3O04Ro1uaU=";
-    })
-
-    # https://github.com/sagemath/sage/pull/36296, landed in 10.2.beta4
-    (fetchpatch {
-      name = "duplicate-args-region_plot.patch";
-      url = "https://github.com/sagemath/sage/commit/461727b453712550a2c5dc0ae11933523255aaed.diff";
-      sha256 = "sha256-mC8084VQoUBk4hocALF+Y9Cwb38Zt360eldi/SSjna8=";
-    })
-
-    # https://github.com/sagemath/sage/pull/36218, landed in 10.2.beta3
-    (fetchpatch {
-      name = "sageenv-disable-file-validation.patch";
-      url = "https://github.com/sagemath/sage/commit/31a764f4a9ec54d3ea970aa9514a088c4e603ebd.diff";
-      sha256 = "sha256-NhYUTTmYlyjss3eS8HZXP8U11TElQY0cv6KW4wBOaJY=";
-    })
-
-    # https://github.com/sagemath/sage/pull/36235, landed in 10.2.beta3
-    (fetchpatch {
-      name = "ecl-23.9.9.patch";
-      url = "https://github.com/sagemath/sage/commit/b6b50a80e9660c002d069019f5b8f04e9324a423.diff";
-      sha256 = "sha256-nF+5oKad1VYms6Dxr1t9/V0XBkoMfhy0KCY/ZPddrm0=";
+      name = "scipy-1.12-upgrade.patch";
+      url = "https://github.com/sagemath/sage/commit/54eec464e9fdf18b411d9148aecb918178e95909.diff";
+      sha256 = "sha256-9wyNrcSfF6mYFTIV4ev2OdD7igb0AeyZZYWSc/+JrIU=";
     })
   ];
 
@@ -158,11 +81,17 @@ stdenv.mkDerivation rec {
     sed -i \
       "s|var(\"SAGE_ROOT\".*|var(\"SAGE_ROOT\", \"$out\")|" \
       src/sage/env.py
+
+    # sage --docbuild unsets JUPYTER_PATH, which breaks our docbuilding
+    # https://trac.sagemath.org/ticket/33650#comment:32
+    sed -i "/export JUPYTER_PATH/d" src/bin/sage
   '';
 
   buildPhase = "# do nothing";
 
   installPhase = ''
     cp -r . "$out"
+    tar xkzf ${configure-src} -C "$out"
+    rm "$out/configure"
   '';
 }
diff --git a/pkgs/applications/science/math/sage/sagedoc.nix b/pkgs/applications/science/math/sage/sagedoc.nix
index 228b5aa2c609..5e2191486bf0 100644
--- a/pkgs/applications/science/math/sage/sagedoc.nix
+++ b/pkgs/applications/science/math/sage/sagedoc.nix
@@ -11,11 +11,6 @@ stdenv.mkDerivation rec {
 
   strictDeps = true;
 
-  nativeBuildInputs = [
-    # for patchShebangs below
-    python3
-  ];
-
   unpackPhase = ''
     export SAGE_DOC_OVERRIDE="$PWD/share/doc/sage"
     export SAGE_DOC_SRC_OVERRIDE="$PWD/docsrc"
@@ -29,18 +24,6 @@ stdenv.mkDerivation rec {
     export HOME="$TMPDIR/sage_home"
     mkdir -p "$HOME"
 
-    # run bootstrap script to generate Sage spkg docs, because unfortunately some unrelated doc
-    # pages link to them. it needs a few ugly (but self-contained) hacks for a standalone run.
-    cp -r "${src}/build" "$HOME"
-    chmod -R 755 "$HOME/build"
-    sed -i "/assert/d" "$HOME/build/sage_bootstrap/env.py"
-    sed -i "s|sage-bootstrap-python|python3|" "$HOME/build/bin/sage-package"
-    patchShebangs "$HOME/build/bin/sage-package"
-    pushd "$SAGE_DOC_SRC_OVERRIDE"
-    sed -i "s|OUTPUT_DIR=\"src/doc/|OUTPUT_DIR=\"$SAGE_DOC_SRC_OVERRIDE/|" bootstrap
-    PATH="$HOME/build/bin:$PATH" SAGE_ROOT="${src}" ./bootstrap
-    popd
-
     # 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
@@ -51,12 +34,10 @@ stdenv.mkDerivation rec {
     # jupyter-sphinx calls the sagemath jupyter kernel during docbuild
     export JUPYTER_PATH=${jupyter-kernel-specs}
 
-    # sage --docbuild unsets JUPYTER_PATH, so we call sage_docbuild directly
-    # https://trac.sagemath.org/ticket/33650#comment:32
-    ${sage-with-env}/bin/sage --python3 -m sage_docbuild \
+    ${sage-with-env}/bin/sage --docbuild \
       --mathjax \
       --no-pdf-links \
-      all html < /dev/null
+      all html
   '';
 
   installPhase = ''
@@ -80,7 +61,7 @@ stdenv.mkDerivation rec {
     # sagemath_doc_html tests assume sage tests are being run, so we
     # compromise: we run standard tests, but only on files containing
     # relevant tests. as of Sage 9.6, there are only 4 such files.
-    grep -PRl "#.*optional.*sagemath_doc_html" ${src}/src/sage{,_docbuild} | \
+    grep -PRl "#.*(optional|needs).*sagemath_doc_html" ${src}/src/sage{,_docbuild} | \
       xargs ${sage-with-env}/bin/sage -t --optional=sage,sagemath_doc_html
   '';
 }
diff --git a/pkgs/applications/science/math/sage/sagelib.nix b/pkgs/applications/science/math/sage/sagelib.nix
index f8beabaac1ff..5a1f4ee473c9 100644
--- a/pkgs/applications/science/math/sage/sagelib.nix
+++ b/pkgs/applications/science/math/sage/sagelib.nix
@@ -48,7 +48,7 @@
 , cvxopt
 , cypari2
 , cysignals
-, cython
+, cython_3
 , fpylll
 , gmpy2
 , importlib-metadata
@@ -152,7 +152,7 @@ buildPythonPackage rec {
     cvxopt
     cypari2
     cysignals
-    cython
+    cython_3
     fpylll
     gmpy2
     importlib-metadata
@@ -202,29 +202,13 @@ buildPythonPackage rec {
     mkdir -p "$SAGE_SHARE/sage/ext/notebook-ipython"
     mkdir -p "var/lib/sage/installed"
 
-    cd build/pkgs/sagelib
-
-    # some files, like Pipfile, pyproject.toml, requirements.txt and setup.cfg
-    # are generated by the bootstrap script using m4. these can fetch data from
-    # build/pkgs, either directly or via sage-get-system-packages.
-    sed -i '/sage_conf/d' src/setup.cfg.m4
-    sed -i '/sage_conf/d' src/requirements.txt.m4
-
     # version lower bounds are useful, but upper bounds are a hassle because
     # Sage tests already catch any relevant API breakage.
     # according to the discussion at https://trac.sagemath.org/ticket/33520,
     # upper bounds will be less noisy starting from Sage 9.6.
-    sed -i 's/==0.5.1/>=0.5.1/' ../ptyprocess/install-requires.txt
-    sed -i 's/, <[^, ]*//' ../*/install-requires.txt
-
-    for infile in src/*.m4; do
-        if [ -f "$infile" ]; then
-            outfile="src/$(basename $infile .m4)"
-            m4 "$infile" > "$outfile"
-        fi
-    done
+    sed -i 's/, <[^, ]*//' build/pkgs/*/install-requires.txt
 
-    cd src
+    cd build/pkgs/sagelib/src
   '';
 
   postInstall = ''
diff --git a/pkgs/applications/science/misc/boinc/default.nix b/pkgs/applications/science/misc/boinc/default.nix
index 45209881f7a9..b2a76f5fb252 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 = "7.24.2";
+  version = "7.24.3";
 
   src = fetchFromGitHub {
     name = "${pname}-${version}-src";
     owner = "BOINC";
     repo = "boinc";
     rev = "client_release/${lib.versions.majorMinor version}/${version}";
-    hash = "sha256-Aaoqf53wagCkzkZUs7mVbE2Z2P6GvxiQYxPrL6ahGqA=";
+    hash = "sha256-0gyCO5t8t0SbOCBClVVu+C2VpBlxsnoRHBRYgI8nNO4=";
   };
 
   nativeBuildInputs = [ libtool automake autoconf m4 pkg-config ];
diff --git a/pkgs/applications/science/misc/cwltool/default.nix b/pkgs/applications/science/misc/cwltool/default.nix
index 7c28f65f3bf7..fb3b26a12edf 100644
--- a/pkgs/applications/science/misc/cwltool/default.nix
+++ b/pkgs/applications/science/misc/cwltool/default.nix
@@ -7,32 +7,40 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "cwltool";
-  version = "3.1.20230213100550";
-  format = "setuptools";
+  version = "3.1.20240112164112";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "common-workflow-language";
-    repo = pname;
+    repo = "cwltool";
     rev = "refs/tags/${version}";
-    hash = "sha256-BtHkIVadcccnYYX8lRqiCzO+/qFeBaZfdUuu6qrjysk=";
+    hash = "sha256-Y0DORypXlTDv04qh796oXPSTxCXGb7rLQ8Su+/As7Lo=";
   };
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "ruamel.yaml >= 0.15, < 0.17.22" "ruamel.yaml" \
+      --replace "ruamel.yaml >= 0.16, < 0.19" "ruamel.yaml" \
       --replace "prov == 1.5.1" "prov" \
-      --replace "setup_requires=PYTEST_RUNNER," ""
+      --replace '"schema-salad >= 8.4.20230426093816, < 9",' "" \
+      --replace "PYTEST_RUNNER + " ""
+    substituteInPlace pyproject.toml \
+      --replace "mypy==1.8.0" "mypy" \
+      --replace "ruamel.yaml>=0.16.0,<0.18" "ruamel.yaml"
   '';
 
   nativeBuildInputs = [
     git
-  ];
+  ] ++ (with python3.pkgs; [
+    setuptools
+    setuptools-scm
+  ]);
 
   propagatedBuildInputs = with python3.pkgs; [
     argcomplete
     bagit
     coloredlogs
     cwl-utils
+    mypy
     mypy-extensions
     prov
     psutil
@@ -42,6 +50,10 @@ python3.pkgs.buildPythonApplication rec {
     ruamel-yaml
     schema-salad
     shellescape
+    spython
+    toml
+    types-psutil
+    types-requests
     typing-extensions
   ];
 
diff --git a/pkgs/applications/science/misc/foldingathome/client.nix b/pkgs/applications/science/misc/foldingathome/client.nix
index f61fe5b01857..108dcc284ea9 100644
--- a/pkgs/applications/science/misc/foldingathome/client.nix
+++ b/pkgs/applications/science/misc/foldingathome/client.nix
@@ -8,13 +8,13 @@
 , extraPkgs ? [ ]
 }:
 let
-  version = "8.1.18";
+  version = "8.3.1";
 
   cbangSrc = fetchFromGitHub {
     owner = "cauldrondevelopmentllc";
     repo = "cbang";
     rev = "bastet-v${version}";
-    hash = "sha256-G0rknVmZiyC4sRTOowFjf7EQ5peGf+HLPPcLWXXFlX4=";
+    hash = "sha256-cuyfJG5aDJ6e2SllxwKTViG0j8FWHvjcTaaBBtkgEdU=";
   };
 
   fah-client = stdenv.mkDerivation {
@@ -25,7 +25,7 @@ let
       owner = "FoldingAtHome";
       repo = "fah-client-bastet";
       rev = "v${version}";
-      hash = "sha256-IgT/5NqCwN8N8OObjtASuT4IRb2EN4bdixxUdjiyddI=";
+      hash = "sha256-Ztc2im4Xmk8f6GotGRgA5zDkcyQFnodUvroJVl+ApT4=";
     };
 
     nativeBuildInputs = [ scons ];
@@ -45,14 +45,15 @@ let
     installPhase = ''
       runHook preInstall
 
-      mkdir -p $out/{bin,share/applications,share/feh-client}
+      mkdir -p $out/{bin,share/applications}
 
       cp fah-client $out/bin/fah-client
 
-      cp install/lin/fah-client.desktop $out/share/applications/
-      cp -r images $out/share/feh-client/
-
-      sed -e "s|Icon=.*|Icon=$out/share/feh-client/images/fahlogo.png|g" -i $out/share/applications/fah-client.desktop
+      cp install/lin/fah-client.desktop.in $out/share/applications/fah-client.desktop
+      sed \
+        -e "s|Icon=.*|Icon=$out/share/feh-client/images/fahlogo.png|g" \
+        -e "s|%(PACKAGE_URL)s|https://github.com/FoldingAtHome/fah-client-bastet|g" \
+        -i $out/share/applications/fah-client.desktop
 
       runHook postInstall
     '';
diff --git a/pkgs/applications/science/misc/gplates/default.nix b/pkgs/applications/science/misc/gplates/default.nix
index e6cebbc53b73..4ab17c22934e 100644
--- a/pkgs/applications/science/misc/gplates/default.nix
+++ b/pkgs/applications/science/misc/gplates/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
-, mkDerivation
-, fetchurl
+, fetchFromGitHub
 , cmake
 , doxygen
 , graphviz
@@ -12,11 +11,13 @@
 , gmp
 , libGL
 , libGLU
+, libSM
 , mpfr
 , proj
 , python3
 , qtxmlpatterns
 , qwt
+, wrapQtAppsHook
 }:
 
 let
@@ -30,24 +31,22 @@ let
   cgal = cgal_5.override {
     boost = boost';
   };
-in mkDerivation rec {
+in stdenv.mkDerivation (finalAttrs: {
   pname = "gplates";
-  version = "2.3.0";
+  version = "2.4";
 
-  src = fetchurl {
-    name = "gplates_${version}_src.tar.bz2";
-    url = "https://www.earthbyte.org/download/8421/?uid=b89bb31428";
-    sha256 = "0lrcmcxc924ixddii8cyglqlwwxvk7f00g4yzbss5i3fgcbh8n96";
+  src = fetchFromGitHub {
+    owner = "GPlates";
+    repo = "GPlates";
+    rev = "GPlates-${finalAttrs.version}";
+    hash = "sha256-BRvrqczGguE2z44ZboxeJxgWEA+t02XkzvU+yF4ki6s=";
   };
 
-  patches = [
-    ./boost-placeholders.patch
-  ];
-
   nativeBuildInputs = [
     cmake
     doxygen
     graphviz
+    wrapQtAppsHook
   ];
 
   buildInputs = [
@@ -58,6 +57,7 @@ in mkDerivation rec {
     gmp
     libGL
     libGLU
+    libSM
     mpfr
     proj
     python
@@ -70,6 +70,6 @@ in mkDerivation rec {
     homepage = "https://www.gplates.org";
     license = licenses.gpl2Only;
     platforms = platforms.all;
-    broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/gplates.x86_64-darwin
+    broken = stdenv.isDarwin; # FIX: this check: https://github.com/GPlates/GPlates/blob/gplates/cmake/modules/Config_h.cmake#L72
   };
-}
+})
diff --git a/pkgs/applications/science/misc/openrefine/default.nix b/pkgs/applications/science/misc/openrefine/default.nix
new file mode 100644
index 000000000000..fafdcb03ec03
--- /dev/null
+++ b/pkgs/applications/science/misc/openrefine/default.nix
@@ -0,0 +1,136 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, buildNpmPackage
+, curl
+, jdk
+, jq
+, makeWrapper
+, maven
+, writeText
+}:
+
+let
+  maven' = maven.override {
+    inherit jdk;
+  };
+
+  version = "3.7.7";
+  src = fetchFromGitHub {
+    owner = "openrefine";
+    repo = "openrefine";
+    rev = version;
+    hash = "sha256-/Txx+r+eFizxaTV5u/nOJwum8nJW6jsR6kYA0YbRsJs=";
+  };
+
+  npmPkg = buildNpmPackage {
+    inherit src version;
+
+    pname = "openrefine-npm";
+    sourceRoot = "source/main/webapp";
+
+    npmDepsHash = "sha256-8GhcL4tohQ5u2HeYN6JyTMMobUOqAL8ETCLiP1SoDSk=";
+
+    # package.json doesn't supply a version, which npm doesn't like - fix this.
+    # directly referencing jq because buildNpmPackage doesn't pass
+    # nativeBuildInputs through to fetchNpmDeps
+    postPatch = ''
+      NEW_PACKAGE_JSON=$(mktemp)
+      ${jq}/bin/jq '. + {version: $ENV.version}' package.json > $NEW_PACKAGE_JSON
+      cp $NEW_PACKAGE_JSON package.json
+    '';
+
+    dontNpmBuild = true;
+    installPhase = ''
+      mkdir -p $out
+      cp -r modules/core/3rdparty/* $out/
+    '';
+  };
+
+in maven'.buildMavenPackage {
+  inherit src version;
+
+  pname = "openrefine";
+
+  postPatch = ''
+    cp -r ${npmPkg} main/webapp/modules/core/3rdparty
+  '';
+  mvnParameters = "-DskipTests=true -pl !packaging";
+  mvnHash = "sha256-MqE+iloqzBav6E3/rf1LP5BlKhW/FBIt6+6U+S8UJWA=";
+
+  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 ''
+    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/
+
+    mkdir -p $out/lib/webapp
+    cp -r main/webapp/{WEB-INF,modules} $out/lib/webapp/
+    (
+      cd extensions
+      for ext in * ; do
+        if [ -d "$ext/module" ] ; then
+          mkdir -p "$out/lib/webapp/extensions/$ext"
+          cp -r "$ext/module" "$out/lib/webapp/extensions/$ext/"
+        fi
+      done
+    )
+
+    cp ${gitProperties} $out/lib/webapp/WEB-INF/classes/git.properties
+
+    mkdir -p $out/etc
+    cp refine.ini $out/etc/
+
+    mkdir -p $out/bin
+    cp refine $out/bin/
+  '';
+
+  preFixup = ''
+    find $out -name '*.java' -delete
+    sed -i -E 's|^(butterfly\.modules\.path =).*extensions.*$|\1 '"$out/lib/webapp/extensions|" \
+      $out/lib/webapp/WEB-INF/butterfly.properties
+
+    sed -i 's|^cd `dirname \$0`$|cd '"$out/lib|" $out/bin/refine
+
+    cat >> $out/etc/refine.ini <<EOF
+    REFINE_WEBAPP='$out/lib/webapp'
+    REFINE_LIB_DIR='$out/lib/server/target/lib'
+
+    JAVA_HOME='${jdk.home}'
+
+    # non-headless mode tries to launch a browser, causing a
+    # number of purity problems
+    JAVA_OPTIONS='-Drefine.headless=true'
+    EOF
+
+    wrapProgram $out/bin/refine \
+      --prefix PATH : '${lib.makeBinPath [ jdk curl ]}' \
+      --set-default REFINE_INI_PATH "$out/etc/refine.ini"
+  '';
+
+  passthru = {
+    inherit npmPkg;
+    updateScript = ./update.sh;
+  };
+
+  meta = with lib; {
+    description = "Power tool for working with messy data and improving it";
+    homepage = "https://openrefine.org";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ ris ];
+    sourceProvenance = with sourceTypes; [
+      fromSource
+      binaryBytecode  # maven dependencies
+    ];
+    broken = stdenv.isDarwin;  # builds, doesn't run
+  };
+}
diff --git a/pkgs/applications/science/misc/openrefine/update.sh b/pkgs/applications/science/misc/openrefine/update.sh
new file mode 100755
index 000000000000..545a5bd4e198
--- /dev/null
+++ b/pkgs/applications/science/misc/openrefine/update.sh
@@ -0,0 +1,20 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p nix nix-update
+
+set -euxo pipefail
+
+nix-update "${UPDATE_NIX_ATTR_PATH}"
+nix-update "${UPDATE_NIX_ATTR_PATH}.npmPkg" --version=skip
+
+FILE="$(nix-instantiate --eval -E 'with import ./. {}; (builtins.unsafeGetAttrPos "version" '"${UPDATE_NIX_ATTR_PATH}"').file' | tr -d '"')"
+
+MVNHASH_OLD=$(nix-instantiate --eval . -A "${UPDATE_NIX_ATTR_PATH}.mvnHash" | tr -d '"')
+MVNHASH_OLD_ESCAPED=$(echo "${MVNHASH_OLD}" | sed -re 's|[+]|\\&|g')
+FAKEHASH=$(nix-instantiate --eval . -A "lib.fakeHash" | tr -d '"')
+FAKEHASH_ESCAPED=$(echo "${FAKEHASH}" | sed -re 's|[+]|\\&|g')
+
+sed -E -i "s|${MVNHASH_OLD_ESCAPED}|${FAKEHASH}|g" "${FILE}"
+
+MVNHASH_NEW="$(nix-build . -A "${UPDATE_NIX_ATTR_PATH}" 2>&1 | tail -n10 | grep 'got:' | cut -d: -f2- | xargs echo || true)"
+
+sed -E -i "s|${FAKEHASH_ESCAPED}|${MVNHASH_NEW}|g" "${FILE}"
diff --git a/pkgs/applications/science/misc/root/default.nix b/pkgs/applications/science/misc/root/default.nix
index ee3610c5f6f6..c5534c18d7bb 100644
--- a/pkgs/applications/science/misc/root/default.nix
+++ b/pkgs/applications/science/misc/root/default.nix
@@ -2,7 +2,6 @@
 , lib
 , callPackage
 , fetchurl
-, fetchpatch
 , makeWrapper
 , cmake
 , coreutils
@@ -58,7 +57,7 @@
 
 stdenv.mkDerivation rec {
   pname = "root";
-  version = "6.30.02";
+  version = "6.30.04";
 
   passthru = {
     tests = import ./tests { inherit callPackage; };
@@ -66,7 +65,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://root.cern.ch/download/root_v${version}.source.tar.gz";
-    hash = "sha256-eWWkVtGtHuDV/kdpv1qP7Cka9oTtk9sPMICpw2JDUYM=";
+    hash = "sha256-K0GAtpjznMZdkQhNgzqIRRWzJbxfZzyOOavoGLAl2Mw=";
   };
 
   nativeBuildInputs = [ makeWrapper cmake pkg-config git ];
@@ -110,13 +109,6 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./sw_vers.patch
-
-    # Fix for builtin_llvm=OFF
-    # https://github.com/root-project/root/pull/14238
-    (fetchpatch {
-      url = "https://github.com/root-project/root/commit/1477d3adebf27a19f3a8b85f21c27a0a5649c7ff.diff";
-      hash = "sha256-g+FqXBTWXA7t7F/rMarnmOK2014oCNnNJbHhjH+Tvjw=";
-    })
   ];
 
   preConfigure = ''
diff --git a/pkgs/applications/science/misc/snakemake/default.nix b/pkgs/applications/science/misc/snakemake/default.nix
index 085b44bf586c..8590334449be 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.2.1";
+  version = "8.3.2";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "snakemake";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-NpsDJuxH+NHvE735OCHaISPSOhYDxWiKqCb4Yk9DHf4=";
+    hash = "sha256-urC8IVfliVzyWu7zqZN5EI6d3vXz80vHPhQaKBzTEVA=";
     # 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/molecular-dynamics/gromacs/default.nix b/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
index 1daeeb81410a..b3a95034ca54 100644
--- a/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
+++ b/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
@@ -7,6 +7,7 @@
 , perl
 , blas
 , lapack
+, llvmPackages
 , mpi
 , cudaPackages
 , plumed
@@ -40,8 +41,8 @@ let
       }
     else
       {
-        version = "2023.3";
-        hash = "sha256-Tsj40MevdrE/j9FtuOLBIOdJ3kOa6VVNn2U/gS140cs=";
+        version = "2024";
+        hash = "sha256-BNIm1SBmqLw6QuANYhPec3tOwpLiZwMGWST/AZVoAeI=";
       };
 
 in stdenv.mkDerivation rec {
@@ -77,7 +78,7 @@ in stdenv.mkDerivation rec {
     cudaPackages.cuda_cudart
     cudaPackages.libcufft
     cudaPackages.cuda_profiler_api
-  ];
+  ] ++ lib.optional stdenv.isDarwin llvmPackages.openmp;
 
   propagatedBuildInputs = lib.optional enableMpi mpi;
   propagatedUserEnvPkgs = lib.optional enableMpi mpi;
diff --git a/pkgs/applications/science/physics/nnpdf/default.nix b/pkgs/applications/science/physics/nnpdf/default.nix
index f6d3e94c1a05..a53940d38d74 100644
--- a/pkgs/applications/science/physics/nnpdf/default.nix
+++ b/pkgs/applications/science/physics/nnpdf/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nnpdf";
-  version = "4.0.7";
+  version = "4.0.8";
 
   src = fetchFromGitHub {
     owner = "NNPDF";
     repo = pname;
     rev = version;
-    hash = "sha256-J5l+ZO+5pfxKlpFuy4PEQynbqs1QIqMK6hhMFvmb/zs=";
+    hash = "sha256-hGCA2K/fD6UZa9WD42IDmZV1oxNgjFaXkjOZKGgGSBg=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/science/robotics/mujoco/default.nix b/pkgs/applications/science/robotics/mujoco/default.nix
index 95d3e1269350..266118e881bf 100644
--- a/pkgs/applications/science/robotics/mujoco/default.nix
+++ b/pkgs/applications/science/robotics/mujoco/default.nix
@@ -129,15 +129,15 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "mujoco";
-  version = "3.1.0";
+  version = "3.1.1";
 
   # Bumping version? Make sure to look though the MuJoCo's commit
   # history for bumped dependency pins!
   src = fetchFromGitHub {
     owner = "google-deepmind";
-    repo = pname;
-    rev = version;
-    hash = "sha256-a8h30psoAlj9dI4j8IfY3WzWjY4MrRosGbvgt79s1BQ=";
+    repo = "mujoco";
+    rev = "refs/tags/${version}";
+    hash = "sha256-+2nt7G8j6Pi60cfMBPYWPGwD8wpxDOSylenm0oCitzM=";
   };
 
   patches = [ ./mujoco-system-deps-dont-fetch.patch ];
@@ -180,6 +180,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Multi-Joint dynamics with Contact. A general purpose physics simulator.";
     homepage = "https://mujoco.org/";
+    changelog = "https://github.com/google-deepmind/mujoco/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ samuela tmplt ];
   };
diff --git a/pkgs/applications/terminal-emulators/contour/default.nix b/pkgs/applications/terminal-emulators/contour/default.nix
index a01975a73ef3..dd08debdd1e8 100644
--- a/pkgs/applications/terminal-emulators/contour/default.nix
+++ b/pkgs/applications/terminal-emulators/contour/default.nix
@@ -30,13 +30,13 @@
 
 stdenv.mkDerivation (final: {
   pname = "contour";
-  version = "0.4.0.6245";
+  version = "0.4.1.6292";
 
   src = fetchFromGitHub {
     owner = "contour-terminal";
     repo = "contour";
     rev = "v${final.version}";
-    hash = "sha256-0A3fGbQPfzV4V4f5GGyjbQLJK+tX7ZVerAL7TkHhjdo=";
+    hash = "sha256-t1rZixjpwg2JDBESmymNwUlpQd1VLaECxvpPP94jvH0=";
   };
 
   patches = [ ./dont-fix-app-bundle.diff ];
diff --git a/pkgs/applications/terminal-emulators/kitty/default.nix b/pkgs/applications/terminal-emulators/kitty/default.nix
index f7ab3c8acbf8..0cc73c17f393 100644
--- a/pkgs/applications/terminal-emulators/kitty/default.nix
+++ b/pkgs/applications/terminal-emulators/kitty/default.nix
@@ -30,20 +30,20 @@
 with python3Packages;
 buildPythonApplication rec {
   pname = "kitty";
-  version = "0.31.0";
+  version = "0.32.1";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "kovidgoyal";
     repo = "kitty";
     rev = "refs/tags/v${version}";
-    hash = "sha256-VWWuC4T0pyTgqPNm0gNL1j3FShU5b8S157C1dKLon1g=";
+    hash = "sha256-d+Xwn+po/pclAy4UZ4pR4KWmriHCLPeMhXxoHp6wHT8=";
   };
 
   goModules = (buildGoModule {
     pname = "kitty-go-modules";
     inherit src version;
-    vendorHash = "sha256-OyZAWefSIiLQO0icxMIHWH3BKgNas8HIxLcse/qWKcU=";
+    vendorHash = "sha256-WRDP3Uyttz/kWm07tjv7wNguF/a1YgZqutbvFEOHuE0=";
   }).goModules;
 
   buildInputs = [
@@ -240,7 +240,10 @@ buildPythonApplication rec {
     homepage = "https://github.com/kovidgoyal/kitty";
     description = "A modern, hackable, featureful, OpenGL based terminal emulator";
     license = licenses.gpl3Only;
-    changelog = "https://sw.kovidgoyal.net/kitty/changelog/";
+    changelog = [
+      "https://sw.kovidgoyal.net/kitty/changelog/"
+      "https://github.com/kovidgoyal/kitty/blob/v${version}/docs/changelog.rst"
+    ];
     platforms = platforms.darwin ++ platforms.linux;
     mainProgram = "kitty";
     maintainers = with maintainers; [ tex rvolosatovs Luflosi adamcstephens kashw2 ];
diff --git a/pkgs/applications/terminal-emulators/kitty/themes.nix b/pkgs/applications/terminal-emulators/kitty/themes.nix
index 6ca522e4090f..1459642bc98a 100644
--- a/pkgs/applications/terminal-emulators/kitty/themes.nix
+++ b/pkgs/applications/terminal-emulators/kitty/themes.nix
@@ -5,13 +5,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "kitty-themes";
-  version = "unstable-2023-09-15";
+  version = "unstable-2023-12-28";
 
   src = fetchFromGitHub {
     owner = "kovidgoyal";
     repo = "kitty-themes";
-    rev = "c9c12d20f83b9536febb21e4b53e176c0ccccb51";
-    hash = "sha256-dhzYTHaaTrbE5k+xEC01Y9jGb+ZmEyvWMb4a2WWKGCw=";
+    rev = "46d9dfe230f315a6a0c62f4687f6b3da20fd05e4";
+    hash = "sha256-jlYim4YXByT6s6ce0TydZuhX0Y1ZDcAq2XKNONisSzE=";
   };
 
   dontConfigure = true;
diff --git a/pkgs/applications/terminal-emulators/syncterm/0001-use-sched-yield-53264f2b.patch b/pkgs/applications/terminal-emulators/syncterm/0001-use-sched-yield-53264f2b.patch
new file mode 100644
index 000000000000..d4e6eb130cad
--- /dev/null
+++ b/pkgs/applications/terminal-emulators/syncterm/0001-use-sched-yield-53264f2b.patch
@@ -0,0 +1,38 @@
+diff --git a/3rdp/build/GNUmakefile b/3rdp/build/GNUmakefile
+index fdf54565834a6a418f7267f4f8bf2269b80eab41..804dd76feb1a2d3b0278686f5326f7c2302e5fde 100644
+--- a/3rdp/build/GNUmakefile
++++ b/3rdp/build/GNUmakefile
+@@ -67,7 +67,7 @@
+ $(CRYPT_IDIR): | $(3RDPODIR)
+ 	$(QUIET)$(IFNOTEXIST) mkdir $(CRYPT_IDIR)
+ 
+-$(CRYPTLIB_BUILD): $(3RDP_ROOT)$(DIRSEP)dist/cryptlib.zip $(3RDP_ROOT)$(DIRSEP)build/terminal-params.patch $(3RDP_ROOT)$(DIRSEP)build/cl-mingw32-static.patch $(3RDP_ROOT)$(DIRSEP)build/cl-ranlib.patch $(3RDP_ROOT)$(DIRSEP)build/cl-win32-noasm.patch $(3RDP_ROOT)$(DIRSEP)build/cl-zz-country.patch $(3RDP_ROOT)$(DIRSEP)build/cl-algorithms.patch $(3RDP_ROOT)$(DIRSEP)build/cl-allow-duplicate-ext.patch $(3RDP_ROOT)$(DIRSEP)build/cl-macosx-minver.patch $(3RDP_ROOT)$(DIRSEP)build/cl-endian.patch $(3RDP_ROOT)$(DIRSEP)build/cl-cryptodev.patch $(3RDP_ROOT)$(DIRSEP)build/cl-posix-me-gently.patch $(3RDP_ROOT)$(DIRSEP)build/cl-tpm-linux.patch $(3RDP_ROOT)$(DIRSEP)build/cl-PAM-noprompts.patch $(3RDP_ROOT)$(DIRSEP)build/cl-zlib.patch $(3RDP_ROOT)$(DIRSEP)build/Dynamic-linked-static-lib.patch $(3RDP_ROOT)$(DIRSEP)build/SSL-fix.patch $(3RDP_ROOT)$(DIRSEP)build/cl-bigger-maxattribute.patch $(3RDP_ROOT)$(DIRSEP)build/cl-vcxproj.patch $(3RDP_ROOT)$(DIRSEP)build/cl-mingw-vcver.patch $(3RDP_ROOT)$(DIRSEP)build/cl-win32-build-fix.patch $(3RDP_ROOT)$(DIRSEP)build/cl-gcc-non-const-time-val.patch $(3RDP_ROOT)$(DIRSEP)build/cl-no-odbc.patch $(3RDP_ROOT)$(DIRSEP)build/cl-noasm-defines.patch $(3RDP_ROOT)$(DIRSEP)build/cl-bn-noasm64-fix.patch $(3RDP_ROOT)$(DIRSEP)build/cl-no-RSA-suites.patch $(3RDP_ROOT)$(DIRSEP)build/cl-fix-ECC-RSA.patch $(3RDP_ROOT)$(DIRSEP)build/cl-prefer-ECC.patch $(3RDP_ROOT)$(DIRSEP)build/cl-prefer-ECC-harder.patch $(3RDP_ROOT)$(DIRSEP)build/cl-more-RSA-ECC-fixes.patch $(3RDP_ROOT)$(DIRSEP)build/cl-DH-key-init.patch $(3RDP_ROOT)$(DIRSEP)build/cl-clear-GCM-flag.patch $(3RDP_ROOT)$(DIRSEP)build/cl-use-ssh-ctr.patch $(3RDP_ROOT)$(DIRSEP)build/cl-ssh-list-ctr-modes.patch $(3RDP_ROOT)$(DIRSEP)build/cl-ssh-incCtr.patch $(3RDP_ROOT)$(DIRSEP)build/cl-ssl-suite-blocksizes.patch $(3RDP_ROOT)$(DIRSEP)build/cl-no-tpm.patch $(3RDP_ROOT)$(DIRSEP)build/cl-no-via-aes.patch $(3RDP_ROOT)$(DIRSEP)build/cl-fix-ssh-ecc-ephemeral.patch $(3RDP_ROOT)$(DIRSEP)/build/cl-just-use-cc.patch $(3RDP_ROOT)$(DIRSEP)/build/cl-learn-numbers.patch | $(CRYPT_SRC) $(CRYPT_IDIR)
++$(CRYPTLIB_BUILD): $(3RDP_ROOT)$(DIRSEP)dist/cryptlib.zip $(3RDP_ROOT)$(DIRSEP)build/terminal-params.patch $(3RDP_ROOT)$(DIRSEP)build/cl-mingw32-static.patch $(3RDP_ROOT)$(DIRSEP)build/cl-ranlib.patch $(3RDP_ROOT)$(DIRSEP)build/cl-win32-noasm.patch $(3RDP_ROOT)$(DIRSEP)build/cl-zz-country.patch $(3RDP_ROOT)$(DIRSEP)build/cl-algorithms.patch $(3RDP_ROOT)$(DIRSEP)build/cl-allow-duplicate-ext.patch $(3RDP_ROOT)$(DIRSEP)build/cl-macosx-minver.patch $(3RDP_ROOT)$(DIRSEP)build/cl-endian.patch $(3RDP_ROOT)$(DIRSEP)build/cl-cryptodev.patch $(3RDP_ROOT)$(DIRSEP)build/cl-posix-me-gently.patch $(3RDP_ROOT)$(DIRSEP)build/cl-tpm-linux.patch $(3RDP_ROOT)$(DIRSEP)build/cl-PAM-noprompts.patch $(3RDP_ROOT)$(DIRSEP)build/cl-zlib.patch $(3RDP_ROOT)$(DIRSEP)build/Dynamic-linked-static-lib.patch $(3RDP_ROOT)$(DIRSEP)build/SSL-fix.patch $(3RDP_ROOT)$(DIRSEP)build/cl-bigger-maxattribute.patch $(3RDP_ROOT)$(DIRSEP)build/cl-vcxproj.patch $(3RDP_ROOT)$(DIRSEP)build/cl-mingw-vcver.patch $(3RDP_ROOT)$(DIRSEP)build/cl-win32-build-fix.patch $(3RDP_ROOT)$(DIRSEP)build/cl-gcc-non-const-time-val.patch $(3RDP_ROOT)$(DIRSEP)build/cl-no-odbc.patch $(3RDP_ROOT)$(DIRSEP)build/cl-noasm-defines.patch $(3RDP_ROOT)$(DIRSEP)build/cl-bn-noasm64-fix.patch $(3RDP_ROOT)$(DIRSEP)build/cl-no-RSA-suites.patch $(3RDP_ROOT)$(DIRSEP)build/cl-fix-ECC-RSA.patch $(3RDP_ROOT)$(DIRSEP)build/cl-prefer-ECC.patch $(3RDP_ROOT)$(DIRSEP)build/cl-prefer-ECC-harder.patch $(3RDP_ROOT)$(DIRSEP)build/cl-more-RSA-ECC-fixes.patch $(3RDP_ROOT)$(DIRSEP)build/cl-DH-key-init.patch $(3RDP_ROOT)$(DIRSEP)build/cl-clear-GCM-flag.patch $(3RDP_ROOT)$(DIRSEP)build/cl-use-ssh-ctr.patch $(3RDP_ROOT)$(DIRSEP)build/cl-ssh-list-ctr-modes.patch $(3RDP_ROOT)$(DIRSEP)build/cl-ssh-incCtr.patch $(3RDP_ROOT)$(DIRSEP)build/cl-ssl-suite-blocksizes.patch $(3RDP_ROOT)$(DIRSEP)build/cl-no-tpm.patch $(3RDP_ROOT)$(DIRSEP)build/cl-no-via-aes.patch $(3RDP_ROOT)$(DIRSEP)build/cl-fix-ssh-ecc-ephemeral.patch $(3RDP_ROOT)$(DIRSEP)/build/cl-just-use-cc.patch $(3RDP_ROOT)$(DIRSEP)/build/cl-learn-numbers.patch $(3RDP_ROOT)/build/cl-linux-yield.patch | $(CRYPT_SRC) $(CRYPT_IDIR)
+ 	@echo Creating $@ ...
+ 	$(QUIET)-rm -rf $(CRYPT_SRC)/*
+ 	$(QUIET)unzip -oa $(3RDPDISTDIR)$(DIRSEP)cryptlib.zip -d $(CRYPT_SRC)
+@@ -112,6 +112,7 @@
+ 	$(QUIET)patch -p0 -d $(CRYPT_SRC) < cl-fix-ssh-ecc-ephemeral.patch
+ 	$(QUIET)patch -p0 -d $(CRYPT_SRC) < cl-just-use-cc.patch
+ 	$(QUIET)patch -p0 -d $(CRYPT_SRC) < cl-learn-numbers.patch
++	$(QUIET)patch -p0 -d $(CRYPT_SRC) < cl-linux-yield.patch
+ ifeq ($(CC),mingw32-gcc)
+ 	$(QUIET)cd $(CRYPT_SRC) && env - PATH="$(PATH)" CC="$(CC)" AR="$(AR)" RANLIB="$(RANLIB)" make directories
+ 	$(QUIET)cd $(CRYPT_SRC) && env - PATH="$(PATH)" CC="$(CC)" AR="$(AR)" RANLIB="$(RANLIB)" make toolscripts
+diff --git a/3rdp/build/cl-linux-yield.patch b/3rdp/build/cl-linux-yield.patch
+new file mode 100644
+index 0000000000000000000000000000000000000000..8cdfc8eafd3fd85f39bf0f8b519f25a31078fee4
+--- /dev/null
++++ b/3rdp/build/cl-linux-yield.patch
+@@ -0,0 +1,11 @@
++--- old/thread.h	2021-10-19 12:34:08.766649958 -0700
+++++ kernel/thread.h	2021-10-19 12:34:43.794072316 -0700
++@@ -3005,7 +3005,7 @@
++   #endif /* Slowaris 5.7 / 7.x or newer */
++ #elif defined( _AIX ) || defined( __Android__ ) || defined( __CYGWIN__ ) || \
++ 	  ( defined( __hpux ) && ( OSVERSION >= 11 ) ) || \
++-	  defined( __NetBSD__ ) || defined( __QNX__ ) || defined( __UCLIBC__ )
+++	  defined( __NetBSD__ ) || defined( __QNX__ ) || defined( __UCLIBC__ ) || defined(__linux__)
++   #define THREAD_YIELD()		sched_yield()
++ #elif defined( __XMK__ )
++   /* The XMK underlying scheduling object is the process context, for which
diff --git a/pkgs/applications/terminal-emulators/syncterm/default.nix b/pkgs/applications/terminal-emulators/syncterm/default.nix
index 59e0b3a735e0..05e521b24a32 100644
--- a/pkgs/applications/terminal-emulators/syncterm/default.nix
+++ b/pkgs/applications/terminal-emulators/syncterm/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, perl, unzip, autoPatchelfHook, ncurses, SDL2, alsa-lib }:
+{ lib, stdenv, fetchurl, fetchpatch, pkg-config, perl, unzip, autoPatchelfHook, ncurses, SDL2, alsa-lib }:
 
 stdenv.mkDerivation rec {
   pname = "syncterm";
@@ -8,7 +8,18 @@ stdenv.mkDerivation rec {
     url = "mirror://sourceforge/${pname}/${pname}-${version}-src.tgz";
     sha256 = "19m76bisipp1h3bc8mbq83b851rx3lbysxb0azpbr5nbqr2f8xyi";
   };
-  sourceRoot = "${pname}-${version}/src/syncterm";
+
+  patches = [
+    # Cherry-picks from the upstream Synchronet tree, removing calls to `pthread_yield`.
+    # See upstream issue: https://gitlab.synchro.net/main/sbbs/-/issues/299
+    (fetchpatch {
+        url = "https://gitlab.synchro.net/main/sbbs/-/commit/851627df99f48d8eaad33d3a98ef309b4371f359.patch";
+        hash = "sha256-DbFAeJnrwFyfEpZgZFN8etqX6vQ3ca2TJwaqp0aHeo4=";
+    })
+    ./0001-use-sched-yield-53264f2b.patch
+  ];
+  # We can't use sourceRoot, as the cherry-picked patches apply to files outside of it.
+  postPatch = ''cd src/syncterm'';
 
   CFLAGS = [
     "-DHAS_INTTYPES_H"
@@ -32,8 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     # error: unsupported option '-fsanitize=safe-stack' for target 'x86_64-apple-darwin'
-    # broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
-    broken = true; # sendmsg.c:(.text+0x1099): undefined reference to `pthread_yield'
+    broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
     homepage = "https://syncterm.bbsdev.net/";
     description = "BBS terminal emulator";
     maintainers = with maintainers; [ embr ];
diff --git a/pkgs/applications/terminal-emulators/wezterm/Cargo.lock b/pkgs/applications/terminal-emulators/wezterm/Cargo.lock
index b41c47094f2f..cbf030948816 100644
--- a/pkgs/applications/terminal-emulators/wezterm/Cargo.lock
+++ b/pkgs/applications/terminal-emulators/wezterm/Cargo.lock
@@ -4,9 +4,9 @@ version = 3
 
 [[package]]
 name = "addr2line"
-version = "0.20.0"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
 dependencies = [
  "gimli",
 ]
@@ -25,9 +25,9 @@ checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
 
 [[package]]
 name = "ahash"
-version = "0.7.6"
+version = "0.7.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
+checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd"
 dependencies = [
  "getrandom",
  "once_cell",
@@ -36,33 +36,31 @@ dependencies = [
 
 [[package]]
 name = "ahash"
-version = "0.8.3"
+version = "0.8.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
+checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
 dependencies = [
  "cfg-if",
  "getrandom",
  "once_cell",
  "version_check",
+ "zerocopy",
 ]
 
 [[package]]
 name = "aho-corasick"
-version = "0.7.20"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
-name = "aho-corasick"
-version = "1.0.2"
+name = "allocator-api2"
+version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
-dependencies = [
- "memchr",
-]
+checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
 
 [[package]]
 name = "android-tzdata"
@@ -87,58 +85,57 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
 
 [[package]]
 name = "anstream"
-version = "0.3.2"
+version = "0.6.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163"
+checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5"
 dependencies = [
  "anstyle",
  "anstyle-parse",
  "anstyle-query",
  "anstyle-wincon",
  "colorchoice",
- "is-terminal",
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle"
-version = "1.0.1"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd"
+checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
 
 [[package]]
 name = "anstyle-parse"
-version = "0.2.1"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
+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 = "1.0.1"
+version = "3.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188"
+checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
 dependencies = [
  "anstyle",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "anyhow"
-version = "1.0.71"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8"
+checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
 
 [[package]]
 name = "arrayref"
@@ -153,6 +150,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
 
 [[package]]
+name = "as-raw-xcb-connection"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b"
+
+[[package]]
 name = "ash"
 version = "0.37.3+1.3.251"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -163,9 +166,9 @@ dependencies = [
 
 [[package]]
 name = "assert_fs"
-version = "1.0.13"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f070617a68e5c2ed5d06ee8dd620ee18fb72b99f6c094bed34cf8ab07c875b48"
+checksum = "2cd762e110c8ed629b11b6cde59458cc1c71de78ebbcc30099fc8e0403a2a2ec"
 dependencies = [
  "anstyle",
  "doc-comment",
@@ -182,7 +185,7 @@ version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b"
 dependencies = [
- "event-listener",
+ "event-listener 2.5.3",
  "futures-core",
 ]
 
@@ -193,21 +196,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
 dependencies = [
  "concurrent-queue",
- "event-listener",
+ "event-listener 2.5.3",
  "futures-core",
 ]
 
 [[package]]
+name = "async-channel"
+version = "2.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c"
+dependencies = [
+ "concurrent-queue",
+ "event-listener 4.0.3",
+ "event-listener-strategy",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "async-executor"
-version = "1.5.1"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fa3dc5f2a8564f07759c008b9109dc0d39de92a88d5588b8a5036d286383afb"
+checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c"
 dependencies = [
- "async-lock",
+ "async-lock 3.3.0",
  "async-task",
  "concurrent-queue",
- "fastrand 1.9.0",
- "futures-lite",
+ "fastrand 2.0.1",
+ "futures-lite 2.2.0",
  "slab",
 ]
 
@@ -217,10 +233,10 @@ version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06"
 dependencies = [
- "async-lock",
+ "async-lock 2.8.0",
  "autocfg",
  "blocking",
- "futures-lite",
+ "futures-lite 1.13.0",
 ]
 
 [[package]]
@@ -229,85 +245,131 @@ version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
 dependencies = [
- "async-lock",
+ "async-lock 2.8.0",
  "autocfg",
  "cfg-if",
  "concurrent-queue",
- "futures-lite",
+ "futures-lite 1.13.0",
  "log",
  "parking",
- "polling",
- "rustix 0.37.23",
+ "polling 2.8.0",
+ "rustix 0.37.27",
  "slab",
- "socket2 0.4.9",
+ "socket2 0.4.10",
  "waker-fn",
 ]
 
 [[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.3.2",
+ "rustix 0.38.30",
+ "slab",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
+[[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",
+ "pin-project-lite",
 ]
 
 [[package]]
 name = "async-net"
-version = "1.7.0"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4051e67316bc7eff608fe723df5d32ed639946adcd69e07df41fd42a7b411f1f"
+checksum = "0434b1ed18ce1cf5769b8ac540e33f01fa9471058b5e89da9e06f3c882a8c12f"
 dependencies = [
- "async-io",
- "autocfg",
+ "async-io 1.13.0",
  "blocking",
- "futures-lite",
+ "futures-lite 1.13.0",
 ]
 
 [[package]]
 name = "async-process"
-version = "1.7.0"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a9d28b1d97e08915212e2e45310d47854eafa69600756fc735fb788f75199c9"
+checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88"
 dependencies = [
- "async-io",
- "async-lock",
- "autocfg",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
+ "async-signal",
  "blocking",
  "cfg-if",
- "event-listener",
- "futures-lite",
- "rustix 0.37.23",
- "signal-hook",
+ "event-listener 3.1.0",
+ "futures-lite 1.13.0",
+ "rustix 0.38.30",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "async-recursion"
-version = "1.0.4"
+version = "1.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba"
+checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.25",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "async-signal"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
+dependencies = [
+ "async-io 2.3.1",
+ "async-lock 2.8.0",
+ "atomic-waker",
+ "cfg-if",
+ "futures-core",
+ "futures-io",
+ "rustix 0.38.30",
+ "signal-hook-registry",
+ "slab",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "async-task"
-version = "4.4.0"
+version = "4.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae"
+checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799"
 
 [[package]]
 name = "async-trait"
-version = "0.1.71"
+version = "0.1.77"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a564d521dd56509c4c47480d00b80ee55f7e385ae48db5744c67ad50c92d2ebf"
+checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.25",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -325,9 +387,9 @@ checksum = "c59bdb34bc650a32731b31bd8f0829cc15d24a708ee31559e0bb34f2bc320cba"
 
 [[package]]
 name = "atomic-waker"
-version = "1.1.1"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3"
+checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
 
 [[package]]
 name = "atty"
@@ -347,10 +409,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
+name = "az"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973"
+
+[[package]]
 name = "backtrace"
-version = "0.3.68"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
 dependencies = [
  "addr2line",
  "cc",
@@ -369,9 +437,9 @@ 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 = "base91"
@@ -427,9 +495,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.3.3"
+version = "2.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
 dependencies = [
  "serde",
 ]
@@ -451,17 +519,18 @@ dependencies = [
 
 [[package]]
 name = "blocking"
-version = "1.3.1"
+version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77231a1c8f801696fc0123ec6150ce92cffb8e164a02afb9c8ddee0e9b65ad65"
+checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
 dependencies = [
- "async-channel",
- "async-lock",
+ "async-channel 2.1.1",
+ "async-lock 3.3.0",
  "async-task",
- "atomic-waker",
- "fastrand 1.9.0",
- "futures-lite",
- "log",
+ "fastrand 2.0.1",
+ "futures-io",
+ "futures-lite 2.2.0",
+ "piper",
+ "tracing",
 ]
 
 [[package]]
@@ -477,68 +546,79 @@ dependencies = [
 
 [[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"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05"
+checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc"
 dependencies = [
  "memchr",
+ "regex-automata 0.4.5",
  "serde",
 ]
 
 [[package]]
 name = "bumpalo"
-version = "3.13.0"
+version = "3.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
+checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
 
 [[package]]
 name = "bytemuck"
-version = "1.13.1"
+version = "1.14.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea"
+checksum = "ed2490600f404f2b94c167e31d3ed1d5f3c225a0f3b80230053b3e0b7b962bd9"
 dependencies = [
  "bytemuck_derive",
 ]
 
 [[package]]
 name = "bytemuck_derive"
-version = "1.4.1"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdde5c9cd29ebd706ce1b35600920a33550e402fc998a2e53ad3b42c3c47a192"
+checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.25",
+ "syn 2.0.48",
 ]
 
 [[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 = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+
+[[package]]
+name = "cairo-rs"
+version = "0.18.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
+checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2"
+dependencies = [
+ "bitflags 2.4.2",
+ "cairo-sys-rs",
+ "libc",
+ "once_cell",
+ "thiserror",
+]
+
+[[package]]
+name = "cairo-sys-rs"
+version = "0.18.0"
+dependencies = [
+ "cc",
+ "libc",
+]
 
 [[package]]
 name = "camino"
-version = "1.1.4"
+version = "1.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c530edf18f37068ac2d977409ed5cd50d53d73bc653c7647b48eb78976ac9ae2"
+checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c"
 
 [[package]]
 name = "cassowary"
@@ -554,11 +634,12 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
 
 [[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]]
@@ -578,23 +659,23 @@ dependencies = [
 
 [[package]]
 name = "chrono"
-version = "0.4.26"
+version = "0.4.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5"
+checksum = "9f13690e35a5e4ace198e7beea2895d29f3a9cc55015fcebe6336bd2010af9eb"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
  "num-traits",
  "pure-rust-locales",
  "serde",
- "winapi",
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
 name = "ciborium"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926"
+checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e"
 dependencies = [
  "ciborium-io",
  "ciborium-ll",
@@ -603,18 +684,18 @@ dependencies = [
 
 [[package]]
 name = "ciborium-io"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656"
+checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757"
 
 [[package]]
 name = "ciborium-ll"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b"
+checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9"
 dependencies = [
  "ciborium-io",
- "half 1.8.2",
+ "half 2.3.1",
 ]
 
 [[package]]
@@ -642,57 +723,56 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.3.11"
+version = "4.4.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1640e5cc7fb47dbb8338fd471b105e7ed6c3cb2aeb00c2e067127ffd3764a05d"
+checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c"
 dependencies = [
  "clap_builder",
  "clap_derive",
- "once_cell",
 ]
 
 [[package]]
 name = "clap_builder"
-version = "4.3.11"
+version = "4.4.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "98c59138d527eeaf9b53f35a77fcc1fad9d883116070c63d5de1c7dc7b00c72b"
+checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7"
 dependencies = [
  "anstream",
  "anstyle",
- "clap_lex 0.5.0",
+ "clap_lex 0.6.0",
  "strsim",
- "terminal_size",
+ "terminal_size 0.3.0",
 ]
 
 [[package]]
 name = "clap_complete"
-version = "4.3.2"
+version = "4.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fc443334c81a804575546c5a8a79b4913b50e28d69232903604cada1de817ce"
+checksum = "df631ae429f6613fcd3a7c1adbdb65f637271e561b03680adaa6573015dfb106"
 dependencies = [
- "clap 4.3.11",
+ "clap 4.4.18",
 ]
 
 [[package]]
 name = "clap_complete_fig"
-version = "4.3.1"
+version = "4.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99fee1d30a51305a6c2ed3fc5709be3c8af626c9c958e04dd9ae94e27bcbce9f"
+checksum = "87e571d70e22ec91d34e1c5317c8308035a2280d925167646bf094fc5de1737c"
 dependencies = [
- "clap 4.3.11",
+ "clap 4.4.18",
  "clap_complete",
 ]
 
 [[package]]
 name = "clap_derive"
-version = "4.3.2"
+version = "4.4.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8cd2b2a819ad6eec39e8f1d6b53001af1e5469f8c177579cdaeb313115b825f"
+checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.25",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -706,9 +786,9 @@ dependencies = [
 
 [[package]]
 name = "clap_lex"
-version = "0.5.0"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
+checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
 
 [[package]]
 name = "clipboard-win"
@@ -729,7 +809,37 @@ dependencies = [
  "block",
  "core-foundation 0.7.0",
  "core-graphics 0.19.2",
- "foreign-types",
+ "foreign-types 0.3.2",
+ "libc",
+ "objc",
+]
+
+[[package]]
+name = "cocoa"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6140449f97a6e97f9511815c5632d84c8aacf8ac271ad77c559218161a1373c"
+dependencies = [
+ "bitflags 1.3.2",
+ "block",
+ "cocoa-foundation",
+ "core-foundation 0.9.4",
+ "core-graphics 0.23.1",
+ "foreign-types 0.5.0",
+ "libc",
+ "objc",
+]
+
+[[package]]
+name = "cocoa-foundation"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7"
+dependencies = [
+ "bitflags 1.3.2",
+ "block",
+ "core-foundation 0.9.4",
+ "core-graphics-types",
  "libc",
  "objc",
 ]
@@ -801,16 +911,26 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
 
 [[package]]
 name = "colored"
-version = "1.9.3"
+version = "1.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4ffc801dacf156c5854b9df4f425a626539c3a6ef7893cc0c5084a23f0b6c59"
+checksum = "5a5f741c91823341bebf717d4c71bda820630ce065443b58bd1b7451af008355"
 dependencies = [
- "atty",
+ "is-terminal",
  "lazy_static",
  "winapi",
 ]
 
 [[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 = "colorgrad"
 version = "0.6.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -827,9 +947,9 @@ checksum = "bf43edc576402991846b093a7ca18a3477e0ef9c588cde84964b5d3e43016642"
 
 [[package]]
 name = "concurrent-queue"
-version = "2.2.0"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c"
+checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
 dependencies = [
  "crossbeam-utils",
 ]
@@ -843,14 +963,14 @@ dependencies = [
  "colorgrad",
  "dirs-next",
  "enum-display-derive",
- "env_logger",
+ "env_logger 0.11.1",
  "hostname",
  "lazy_static",
  "libc",
  "log",
  "luahelper",
  "mlua",
- "nix 0.26.2",
+ "nix 0.26.4",
  "notify",
  "once_cell",
  "ordered-float",
@@ -861,7 +981,7 @@ dependencies = [
  "shlex",
  "smol",
  "termwiz",
- "toml 0.7.6",
+ "toml 0.8.8",
  "umask",
  "wezterm-bidi",
  "wezterm-config-derive",
@@ -884,11 +1004,11 @@ 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 0.8.4",
+ "core-foundation-sys 0.8.6",
  "libc",
 ]
 
@@ -900,9 +1020,9 @@ checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac"
 
 [[package]]
 name = "core-foundation-sys"
-version = "0.8.4"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
 name = "core-graphics"
@@ -912,43 +1032,43 @@ checksum = "b3889374e6ea6ab25dba90bb5d96202f61108058361f6dc72e8b03e6f8bbe923"
 dependencies = [
  "bitflags 1.3.2",
  "core-foundation 0.7.0",
- "foreign-types",
+ "foreign-types 0.3.2",
  "libc",
 ]
 
 [[package]]
 name = "core-graphics"
-version = "0.22.3"
+version = "0.23.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb"
+checksum = "970a29baf4110c26fedbc7f82107d42c23f7e88e404c4577ed73fe99ff85a212"
 dependencies = [
  "bitflags 1.3.2",
- "core-foundation 0.9.3",
+ "core-foundation 0.9.4",
  "core-graphics-types",
- "foreign-types",
+ "foreign-types 0.5.0",
  "libc",
 ]
 
 [[package]]
 name = "core-graphics-types"
-version = "0.1.2"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2bb142d41022986c1d8ff29103a1411c8a3dfad3552f87a4f8dc50d61d4f4e33"
+checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf"
 dependencies = [
  "bitflags 1.3.2",
- "core-foundation 0.9.3",
+ "core-foundation 0.9.4",
  "libc",
 ]
 
 [[package]]
 name = "core-text"
-version = "19.2.0"
+version = "20.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99d74ada66e07c1cefa18f8abfba765b486f250de2e4a999e5727fc0dd4b4a25"
+checksum = "c9d2790b5c08465d49f8dc05c8bcae9fea467855947db39b0f8145c091aaced5"
 dependencies = [
- "core-foundation 0.9.3",
- "core-graphics 0.22.3",
- "foreign-types",
+ "core-foundation 0.9.4",
+ "core-graphics 0.23.1",
+ "foreign-types 0.5.0",
  "libc",
 ]
 
@@ -963,9 +1083,9 @@ dependencies = [
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.9"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
 dependencies = [
  "libc",
 ]
@@ -1053,11 +1173,10 @@ dependencies = [
 
 [[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",
@@ -1067,56 +1186,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.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 = "crunchy"
@@ -1146,9 +1255,9 @@ dependencies = [
 
 [[package]]
 name = "csv"
-version = "1.2.2"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "626ae34994d3d8d668f4269922248239db4ae42d538b14c398b74a52208e8086"
+checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe"
 dependencies = [
  "csv-core",
  "itoa",
@@ -1158,29 +1267,29 @@ dependencies = [
 
 [[package]]
 name = "csv-core"
-version = "0.1.10"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90"
+checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "d3d12"
-version = "0.6.0"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8f0de2f5a8e7bd4a9eec0e3c781992a4ce1724f68aec7d7a3715344de8b39da"
+checksum = "e16e44ab292b1dddfdaf7be62cfd8877df52f2f3fde5858d95bab606be259f20"
 dependencies = [
- "bitflags 1.3.2",
- "libloading 0.7.4",
+ "bitflags 2.4.2",
+ "libloading 0.8.1",
  "winapi",
 ]
 
 [[package]]
 name = "darling"
-version = "0.20.1"
+version = "0.20.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0558d22a7b463ed0241e993f76f09f30b126687447751a8638587b864e4b3944"
+checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e"
 dependencies = [
  "darling_core",
  "darling_macro",
@@ -1188,27 +1297,27 @@ dependencies = [
 
 [[package]]
 name = "darling_core"
-version = "0.20.1"
+version = "0.20.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab8bfa2e259f8ee1ce5e97824a3c55ec4404a0d772ca7fa96bf19f0752a046eb"
+checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621"
 dependencies = [
  "fnv",
  "ident_case",
  "proc-macro2",
  "quote",
  "strsim",
- "syn 2.0.25",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "darling_macro"
-version = "0.20.1"
+version = "0.20.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29a358ff9f12ec09c3e61fef9b5a9902623a695a46a917b07f269bff1445611a"
+checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
 dependencies = [
  "darling_core",
  "quote",
- "syn 2.0.25",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1219,15 +1328,25 @@ checksum = "7762d17f1241643615821a8455a0b2c3e803784b058693d990b11f2dce25a0ca"
 
 [[package]]
 name = "data-encoding"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308"
+checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
 
 [[package]]
 name = "deltae"
-version = "0.3.1"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ef311e2c0a388b9ba56c839ac68d33b92d18ce7104d0acc4375cb479e2b9a53"
+checksum = "5729f5117e208430e437df2f4843f5e5952997175992d1414f94c57d61e270b4"
+
+[[package]]
+name = "deranged"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
+dependencies = [
+ "powerfmt",
+ "serde",
+]
 
 [[package]]
 name = "derivative"
@@ -1325,7 +1444,7 @@ version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412"
 dependencies = [
- "libloading 0.8.0",
+ "libloading 0.8.1",
 ]
 
 [[package]]
@@ -1356,9 +1475,9 @@ dependencies = [
 
 [[package]]
 name = "either"
-version = "1.8.1"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
+checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
 
 [[package]]
 name = "embed-resource"
@@ -1370,23 +1489,23 @@ dependencies = [
  "rustc_version",
  "toml 0.5.11",
  "vswhom",
- "winreg",
+ "winreg 0.10.1",
 ]
 
 [[package]]
 name = "emojis"
-version = "0.6.0"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c15f3d10f3c4086c618edd197ad5b9084eb35d640d68d6f5dd34d6f54b3150f5"
+checksum = "4ee61eb945bff65ee7d19d157d39c67c33290ff0742907413fd5eefd29edc979"
 dependencies = [
  "phf",
 ]
 
 [[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",
 ]
@@ -1404,9 +1523,9 @@ dependencies = [
 
 [[package]]
 name = "enumflags2"
-version = "0.7.7"
+version = "0.7.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c041f5090df68b32bcd905365fd51769c8b9d553fe87fde0b683534f10c01bd2"
+checksum = "5998b4f30320c9d93aed72f63af821bfdac50465b75428fce77b48ec482c3939"
 dependencies = [
  "enumflags2_derive",
  "serde",
@@ -1414,13 +1533,13 @@ dependencies = [
 
 [[package]]
 name = "enumflags2_derive"
-version = "0.7.7"
+version = "0.7.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745"
+checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.25",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1430,11 +1549,11 @@ dependencies = [
  "backtrace",
  "battery",
  "chrono",
- "cocoa",
+ "cocoa 0.20.2",
  "color-funcs",
  "config",
  "dirs-next",
- "env_logger",
+ "env_logger 0.10.2",
  "filesystem",
  "json",
  "lazy_static",
@@ -1451,15 +1570,26 @@ dependencies = [
  "termwiz",
  "termwiz-funcs",
  "time-funcs",
+ "url-funcs",
  "wezterm-version",
  "winapi",
 ]
 
 [[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.10.0"
+version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580"
 dependencies = [
  "humantime",
  "is-terminal",
@@ -1469,30 +1599,32 @@ dependencies = [
 ]
 
 [[package]]
-name = "equivalent"
-version = "1.0.0"
+name = "env_logger"
+version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88bffebc5d80432c9b140ee17875ff173a8ab62faad5b257da912bd2f6c1c0a1"
+checksum = "05e7cf40684ae96ade6232ed84582f40ce0a66efcd43a5117aef610534f8e0b8"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "env_filter",
+ "humantime",
+ "log",
+]
 
 [[package]]
-name = "errno"
-version = "0.3.1"
+name = "equivalent"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
-dependencies = [
- "errno-dragonfly",
- "libc",
- "windows-sys 0.48.0",
-]
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
+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]]
@@ -1511,14 +1643,46 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
 
 [[package]]
+name = "event-listener"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[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-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 = "exr"
-version = "1.7.0"
+version = "1.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1e481eb11a482815d3e9d618db8c42a93207134662873809335a92327440c18"
+checksum = "279d3efcc55e19917fff7ab3ddd6c14afb6a90881a0078465196fe2f99d08c56"
 dependencies = [
  "bit_field",
- "flume",
- "half 2.2.1",
+ "flume 0.10.14",
+ "half 2.3.1",
  "lebe",
  "miniz_oxide 0.7.1",
  "rayon-core",
@@ -1559,15 +1723,15 @@ dependencies = [
 
 [[package]]
 name = "fastrand"
-version = "2.0.0"
+version = "2.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
 
 [[package]]
 name = "fdeflate"
-version = "0.3.0"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10"
+checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645"
 dependencies = [
  "simd-adler32",
 ]
@@ -1606,14 +1770,14 @@ dependencies = [
 
 [[package]]
 name = "filetime"
-version = "0.2.21"
+version = "0.2.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cbc844cecaee9d4443931972e1289c8ff485cb4cc2767cb03ca139ed6885153"
+checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall 0.2.16",
- "windows-sys 0.48.0",
+ "redox_syscall 0.4.1",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -1623,6 +1787,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8fcfdc7a0362c9f4444381a9e697c79d435fe65b52a37466fc2c1184cee9edc6"
 
 [[package]]
+name = "fixed"
+version = "1.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "02c69ce7e7c0f17aa18fdd9d0de39727adb9c6281f2ad12f57cbe54ae6e76e7d"
+dependencies = [
+ "az",
+ "bytemuck",
+ "half 2.3.1",
+ "typenum",
+]
+
+[[package]]
 name = "fixedbitset"
 version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1630,9 +1806,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
 
 [[package]]
 name = "flate2"
-version = "1.0.26"
+version = "1.0.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
 dependencies = [
  "crc32fast",
  "miniz_oxide 0.7.1",
@@ -1661,6 +1837,18 @@ dependencies = [
 ]
 
 [[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"
@@ -1680,7 +1868,28 @@ version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
 dependencies = [
- "foreign-types-shared",
+ "foreign-types-shared 0.1.1",
+]
+
+[[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 0.3.1",
+]
+
+[[package]]
+name = "foreign-types-macros"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1690,10 +1899,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
 
 [[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.0"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
 dependencies = [
  "percent-encoding",
 ]
@@ -1713,6 +1928,7 @@ name = "freetype"
 version = "0.1.0"
 dependencies = [
  "cc",
+ "fixed",
 ]
 
 [[package]]
@@ -1726,9 +1942,9 @@ dependencies = [
 
 [[package]]
 name = "futures"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
+checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -1741,9 +1957,9 @@ dependencies = [
 
 [[package]]
 name = "futures-channel"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -1751,15 +1967,15 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -1768,9 +1984,9 @@ dependencies = [
 
 [[package]]
 name = "futures-io"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
 
 [[package]]
 name = "futures-lite"
@@ -1788,27 +2004,40 @@ 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.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.25",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "futures-sink"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
 
 [[package]]
 name = "futures-task"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
 
 [[package]]
 name = "futures-timer"
@@ -1818,9 +2047,9 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
 
 [[package]]
 name = "futures-util"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -1867,7 +2096,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818"
 dependencies = [
  "libc",
- "windows-targets 0.48.1",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
@@ -1881,9 +2110,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.10"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -1904,9 +2133,9 @@ dependencies = [
 
 [[package]]
 name = "gimli"
-version = "0.27.3"
+version = "0.28.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
 name = "git2"
@@ -1957,33 +2186,33 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
 name = "globset"
-version = "0.4.10"
+version = "0.4.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "029d74589adefde59de1a0c4f4732695c32805624aec7b68d91503d4dba79afc"
+checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1"
 dependencies = [
- "aho-corasick 0.7.20",
- "bstr 1.6.0",
- "fnv",
+ "aho-corasick",
+ "bstr 1.9.0",
  "log",
- "regex",
+ "regex-automata 0.4.5",
+ "regex-syntax",
 ]
 
 [[package]]
 name = "globwalk"
-version = "0.8.1"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93e3af942408868f6934a7b85134a3230832b9977cf66125df2f9edcfce4ddcc"
+checksum = "0bf760ebf69878d9fd8f110c89703d90ce35095324d1f1edcb595c63945ee757"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "ignore",
  "walkdir",
 ]
 
 [[package]]
 name = "glow"
-version = "0.12.2"
+version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "807edf58b70c0b5b2181dd39fe1839dbdb3ba02645630dc5f753e23da307f762"
+checksum = "bd348e04c43b32574f2de31c8bb397d96c9fcfa1371bd4ca6d8bdc464ab121b1"
 dependencies = [
  "js-sys",
  "slotmap",
@@ -1992,6 +2221,15 @@ dependencies = [
 ]
 
 [[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 = "governor"
 version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2008,54 +2246,55 @@ dependencies = [
 
 [[package]]
 name = "gpu-alloc"
-version = "0.5.4"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22beaafc29b38204457ea030f6fb7a84c9e4dd1b86e311ba0542533453d87f62"
+checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "gpu-alloc-types",
 ]
 
 [[package]]
 name = "gpu-alloc-types"
-version = "0.2.0"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54804d0d6bc9d7f26db4eaec1ad10def69b599315f487d32c334a80d1efe67a5"
+checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
 ]
 
 [[package]]
 name = "gpu-allocator"
-version = "0.22.0"
+version = "0.23.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce95f9e2e11c2c6fadfce42b5af60005db06576f231f5c92550fdded43c423e8"
+checksum = "40fe17c8a05d60c38c0a4e5a3c802f2f1ceb66b76c67d96ffb34bef0475a7fad"
 dependencies = [
  "backtrace",
  "log",
+ "presser",
  "thiserror",
  "winapi",
- "windows 0.44.0",
+ "windows 0.51.1",
 ]
 
 [[package]]
 name = "gpu-descriptor"
-version = "0.2.3"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b0c02e1ba0bdb14e965058ca34e09c020f8e507a760df1121728e0aef68d57a"
+checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "gpu-descriptor-types",
- "hashbrown 0.12.3",
+ "hashbrown 0.14.3",
 ]
 
 [[package]]
 name = "gpu-descriptor-types"
-version = "0.1.1"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "363e3677e55ad168fef68cf9de3a4a310b53124c5e784c53a1d70e92d23f2126"
+checksum = "6bf0b36e6f090b7e1d8a4b49c0cb81c1f8376f72198c65dd3ad9ff3556b8b78c"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
 ]
 
 [[package]]
@@ -2070,9 +2309,9 @@ dependencies = [
 
 [[package]]
 name = "h2"
-version = "0.3.20"
+version = "0.3.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049"
+checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
 dependencies = [
  "bytes",
  "fnv",
@@ -2080,7 +2319,7 @@ dependencies = [
  "futures-sink",
  "futures-util",
  "http",
- "indexmap 1.9.3",
+ "indexmap 2.2.1",
  "slab",
  "tokio",
  "tokio-util",
@@ -2095,10 +2334,11 @@ checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
 
 [[package]]
 name = "half"
-version = "2.2.1"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02b4af3693f1b705df946e9fe5631932443781d0aabb423b62fcd4d73f6d2fd0"
+checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872"
 dependencies = [
+ "cfg-if",
  "crunchy",
 ]
 
@@ -2116,7 +2356,7 @@ version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
 dependencies = [
- "ahash 0.7.6",
+ "ahash 0.7.7",
 ]
 
 [[package]]
@@ -2125,7 +2365,7 @@ version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
 dependencies = [
- "ahash 0.7.6",
+ "ahash 0.7.7",
 ]
 
 [[package]]
@@ -2134,14 +2374,18 @@ version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
 dependencies = [
- "ahash 0.8.3",
+ "ahash 0.8.7",
 ]
 
 [[package]]
 name = "hashbrown"
-version = "0.14.0"
+version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+dependencies = [
+ "ahash 0.8.7",
+ "allocator-api2",
+]
 
 [[package]]
 name = "hashlink"
@@ -2169,11 +2413,11 @@ dependencies = [
 
 [[package]]
 name = "hdrhistogram"
-version = "7.5.2"
+version = "7.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f19b9f54f7c7f55e31401bb647626ce0cf0f67b0004982ce815b3ee72a02aa8"
+checksum = "765c9198f173dd59ce26ff9f95ef0aafd0a0fe01fb9d72841bc5066a4c06511d"
 dependencies = [
- "base64 0.13.1",
+ "base64 0.21.7",
  "byteorder",
  "crossbeam-channel",
  "flate2",
@@ -2198,9 +2442,9 @@ dependencies = [
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.2"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f"
 
 [[package]]
 name = "hex"
@@ -2215,6 +2459,15 @@ 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 = "hostname"
 version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2227,9 +2480,9 @@ dependencies = [
 
 [[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",
@@ -2238,9 +2491,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",
@@ -2249,9 +2502,9 @@ dependencies = [
 
 [[package]]
 name = "http_req"
-version = "0.9.2"
+version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f680177f2ebe4aabd573d07b322d15a5e0fbc97cd739fd627b08043c89041f8"
+checksum = "90394b01e9de1f7eca6ca0664cc64bd92add9603c1aa4f961813f23789035e10"
 dependencies = [
  "native-tls",
  "unicase",
@@ -2265,9 +2518,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"
+checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
 
 [[package]]
 name = "humansize"
@@ -2286,9 +2539,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
 
 [[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",
@@ -2301,7 +2554,7 @@ dependencies = [
  "httpdate",
  "itoa",
  "pin-project-lite",
- "socket2 0.4.9",
+ "socket2 0.5.5",
  "tokio",
  "tower-service",
  "tracing",
@@ -2323,16 +2576,16 @@ dependencies = [
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.57"
+version = "0.1.59"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
+checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539"
 dependencies = [
  "android_system_properties",
- "core-foundation-sys 0.8.4",
+ "core-foundation-sys 0.8.6",
  "iana-time-zone-haiku",
  "js-sys",
  "wasm-bindgen",
- "windows 0.48.0",
+ "windows-core 0.52.0",
 ]
 
 [[package]]
@@ -2352,9 +2605,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
 
 [[package]]
 name = "idna"
-version = "0.4.0"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
 dependencies = [
  "unicode-bidi",
  "unicode-normalization",
@@ -2362,25 +2615,25 @@ dependencies = [
 
 [[package]]
 name = "ignore"
-version = "0.4.20"
+version = "0.4.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492"
+checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1"
 dependencies = [
+ "crossbeam-deque",
  "globset",
- "lazy_static",
  "log",
  "memchr",
- "regex",
+ "regex-automata 0.4.5",
  "same-file",
- "thread_local",
  "walkdir",
  "winapi-util",
 ]
 
 [[package]]
 name = "image"
-version = "0.24.5"
-source = "git+https://github.com/image-rs/image.git?rev=fe069785ae245a2c510fd724ef96da283b05a236#fe069785ae245a2c510fd724ef96da283b05a236"
+version = "0.24.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "034bbe799d1909622a74d1193aa50147769440040ff36cb2baa947609b0a4e23"
 dependencies = [
  "bytemuck",
  "byteorder",
@@ -2388,7 +2641,6 @@ dependencies = [
  "exr",
  "gif",
  "jpeg-decoder",
- "num-rational 0.4.1",
  "num-traits",
  "png",
  "qoi",
@@ -2408,12 +2660,12 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.0.0"
+version = "2.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+checksum = "433de089bd45971eecf4668ee0ee8f4cec17db4f8bd8f7bc3197a6ce37aa7d9b"
 dependencies = [
  "equivalent",
- "hashbrown 0.14.0",
+ "hashbrown 0.14.3",
 ]
 
 [[package]]
@@ -2447,11 +2699,11 @@ dependencies = [
 
 [[package]]
 name = "intrusive-collections"
-version = "0.9.5"
+version = "0.9.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f4f90afb01281fdeffb0f8e082d230cbe4f888f837cc90759696b858db1a700"
+checksum = "b694dc9f70c3bda874626d2aed13b780f137aab435f4e9814121955cf706122e"
 dependencies = [
- "memoffset 0.8.0",
+ "memoffset 0.9.0",
 ]
 
 [[package]]
@@ -2460,7 +2712,7 @@ version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
 dependencies = [
- "hermit-abi 0.3.2",
+ "hermit-abi 0.3.4",
  "libc",
  "windows-sys 0.48.0",
 ]
@@ -2476,19 +2728,19 @@ dependencies = [
 
 [[package]]
 name = "ipnet"
-version = "2.8.0"
+version = "2.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6"
+checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
 
 [[package]]
 name = "is-terminal"
-version = "0.4.9"
+version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
+checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455"
 dependencies = [
- "hermit-abi 0.3.2",
- "rustix 0.38.3",
- "windows-sys 0.48.0",
+ "hermit-abi 0.3.4",
+ "rustix 0.38.30",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -2502,33 +2754,33 @@ dependencies = [
 
 [[package]]
 name = "itoa"
-version = "1.0.8"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b02a5381cc465bd3041d84623d0fa3b66738b52b8e2fc3bab8ad63ab032f4a"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
 name = "jobserver"
-version = "0.1.26"
+version = "0.1.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
+checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "jpeg-decoder"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e"
+checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0"
 dependencies = [
  "rayon",
 ]
 
 [[package]]
 name = "js-sys"
-version = "0.3.64"
+version = "0.3.67"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
+checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -2551,7 +2803,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "32ddb58b0079a063218472916af599f2753ccb40942cdaba9d1f3fefccef17a9"
 dependencies = [
  "anyhow",
- "colored",
+ "colored 1.9.4",
  "diff",
  "lazy_static",
  "libc",
@@ -2562,13 +2814,30 @@ dependencies = [
 ]
 
 [[package]]
+name = "k9"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "088bcebb5b68b1b14b64d7f05b0f802719250b97fdc0338ec42529ea777ed614"
+dependencies = [
+ "anyhow",
+ "colored 2.1.0",
+ "diff",
+ "lazy_static",
+ "libc",
+ "proc-macro2",
+ "regex",
+ "syn 2.0.48",
+ "terminal_size 0.2.6",
+]
+
+[[package]]
 name = "khronos-egl"
-version = "4.1.0"
+version = "6.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c2352bd1d0bceb871cb9d40f24360c8133c11d7486b68b5381c1dd1a32015e3"
+checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76"
 dependencies = [
  "libc",
- "libloading 0.7.4",
+ "libloading 0.8.1",
  "pkg-config",
 ]
 
@@ -2580,9 +2849,9 @@ checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc"
 
 [[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",
@@ -2590,9 +2859,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",
@@ -2632,19 +2901,19 @@ checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8"
 name = "lfucache"
 version = "0.1.0"
 dependencies = [
- "ahash 0.8.3",
+ "ahash 0.8.7",
  "config",
  "fnv",
  "intrusive-collections",
- "k9",
+ "k9 0.11.6",
  "metrics",
 ]
 
 [[package]]
 name = "libc"
-version = "0.2.147"
+version = "0.2.152"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
 
 [[package]]
 name = "libflate"
@@ -2705,9 +2974,9 @@ dependencies = [
 
 [[package]]
 name = "libloading"
-version = "0.8.0"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d580318f95776505201b28cf98eb1fa5e4be3b689633ba6a3e6cd880ff22d8cb"
+checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
 dependencies = [
  "cfg-if",
  "windows-sys 0.48.0",
@@ -2715,9 +2984,20 @@ dependencies = [
 
 [[package]]
 name = "libm"
-version = "0.2.7"
+version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"
+checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
+
+[[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 0.4.1",
+]
 
 [[package]]
 name = "libsqlite3-sys"
@@ -2732,9 +3012,9 @@ dependencies = [
 
 [[package]]
 name = "libssh-rs"
-version = "0.2.0"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff892c443aa43a8e305913da313b5234bf33a7f17eae378f9c9ae4419dbbaa74"
+checksum = "eb3fe324fb06b71d28abb81382ac547f25b4895e853a9968482dc5002fb3db08"
 dependencies = [
  "bitflags 1.3.2",
  "libssh-rs-sys",
@@ -2744,9 +3024,9 @@ dependencies = [
 
 [[package]]
 name = "libssh-rs-sys"
-version = "0.2.0"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aad2e95f77dde4d6a636ca1c713f3efdaa46bb2dae33d7d2abeea992baeb9cb3"
+checksum = "3af07827858d82a7b74d6f935ad4201ff764fb1de8efcc26aeaa33e5f9c89ca2"
 dependencies = [
  "cc",
  "libz-sys",
@@ -2770,9 +3050,9 @@ dependencies = [
 
 [[package]]
 name = "libz-sys"
-version = "1.1.9"
+version = "1.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56ee889ecc9568871456d42f603d6a0ce59ff328d291063a45cbdf0036baf6db"
+checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6"
 dependencies = [
  "cc",
  "libc",
@@ -2812,15 +3092,15 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.3"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
 
 [[package]]
 name = "lock_api"
-version = "0.4.10"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -2828,9 +3108,9 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.19"
+version = "0.4.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
 name = "logging"
@@ -2853,9 +3133,9 @@ dependencies = [
 
 [[package]]
 name = "lua-src"
-version = "546.0.0"
+version = "546.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8cb00c1380f1b4b4928dd211c07301ffa34872a239e590bd3219d9e5b213face"
+checksum = "2da0daa7eee611a4c30c8f5ee31af55266e26e573971ba9336d2993e2da129b2"
 dependencies = [
  "cc",
 ]
@@ -2864,7 +3144,7 @@ dependencies = [
 name = "luahelper"
 version = "0.1.0"
 dependencies = [
- "bstr 0.2.17",
+ "bstr 1.9.0",
  "log",
  "mlua",
  "wezterm-dynamic",
@@ -2872,11 +3152,12 @@ dependencies = [
 
 [[package]]
 name = "luajit-src"
-version = "210.4.5+resty2cf5186"
+version = "210.5.5+f2336c4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "27b7992a40e602786272d84c6f2beca44a588ededcfd57b48ec6f82008a7cb97"
+checksum = "d8bcba9790f4e3b1c1467d75cdd011a63bbe6bc75da95af5d2cb4e3631f939c4"
 dependencies = [
  "cc",
+ "which",
 ]
 
 [[package]]
@@ -2921,9 +3202,9 @@ checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
 
 [[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 = "memmap2"
@@ -2944,6 +3225,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "memmap2"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43a5a03cefb0d953ec0be133036f14e109412fa594edc2f77227249db66cc3ed"
+dependencies = [
+ "libc",
+]
+
+[[package]]
 name = "memmem"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2969,15 +3259,6 @@ dependencies = [
 
 [[package]]
 name = "memoffset"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "memoffset"
 version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
@@ -2987,16 +3268,17 @@ dependencies = [
 
 [[package]]
 name = "metal"
-version = "0.24.0"
+version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de11355d1f6781482d027a3b4d4de7825dcedb197bf573e0596d00008402d060"
+checksum = "c43f73953f8cbe511f021b58f18c3ce1c3d1ae13fe953293e13345bf83217f25"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "block",
  "core-graphics-types",
- "foreign-types",
+ "foreign-types 0.5.0",
  "log",
  "objc",
+ "paste",
 ]
 
 [[package]]
@@ -3005,7 +3287,7 @@ version = "0.17.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "55586aa936c35f34ba8aa5d97356d554311206e1ce1f9e68fe7b07288e5ad827"
 dependencies = [
- "ahash 0.7.6",
+ "ahash 0.7.7",
  "metrics-macros",
 ]
 
@@ -3056,19 +3338,15 @@ dependencies = [
 
 [[package]]
 name = "mintex"
-version = "0.1.2"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd7c5ba1c3b5a23418d7bbf98c71c3d4946a0125002129231da8d6b723d559cb"
-dependencies = [
- "once_cell",
- "sys-info",
-]
+checksum = "9bec4598fddb13cc7b528819e697852653252b760f1228b7642679bf2ff2cd07"
 
 [[package]]
 name = "mio"
-version = "0.8.8"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
+checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
 dependencies = [
  "libc",
  "log",
@@ -3078,30 +3356,38 @@ dependencies = [
 
 [[package]]
 name = "mlua"
-version = "0.8.9"
+version = "0.9.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07366ed2cd22a3b000aed076e2b68896fb46f06f1f5786c5962da73c0af01577"
+checksum = "1d3561f79659ff3afad7b25e2bf2ec21507fe601ebecb7f81088669ec4bfd51e"
 dependencies = [
- "bstr 0.2.17",
- "cc",
- "futures-core",
- "futures-task",
+ "bstr 1.9.0",
  "futures-util",
- "lua-src",
- "luajit-src",
+ "mlua-sys",
  "num-traits",
  "once_cell",
- "pkg-config",
  "rustc-hash",
 ]
 
 [[package]]
+name = "mlua-sys"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2847b42764435201d8cbee1f517edb79c4cca4181877b90047587c89e1b7bce4"
+dependencies = [
+ "cc",
+ "cfg-if",
+ "lua-src",
+ "luajit-src",
+ "pkg-config",
+]
+
+[[package]]
 name = "mux"
 version = "0.1.0"
 dependencies = [
  "anyhow",
  "async-trait",
- "base64 0.21.2",
+ "base64 0.21.7",
  "bintree",
  "bitflags 1.3.2",
  "chrono",
@@ -3111,9 +3397,9 @@ dependencies = [
  "fancy-regex",
  "filedescriptor",
  "finl_unicode",
- "flume",
+ "flume 0.10.14",
  "hostname",
- "k9",
+ "k9 0.11.6",
  "lazy_static",
  "libc",
  "log",
@@ -3159,21 +3445,23 @@ dependencies = [
  "portable-pty",
  "smol",
  "termwiz",
+ "termwiz-funcs",
+ "url-funcs",
  "wezterm-dynamic",
  "wezterm-term",
 ]
 
 [[package]]
 name = "naga"
-version = "0.12.3"
+version = "0.14.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbcc2e0513220fd2b598e6068608d4462db20322c0e77e47f6f488dfcfc279cb"
+checksum = "ae585df4b6514cf8842ac0f1ab4992edc975892704835b549cf818dc0191249e"
 dependencies = [
  "bit-set",
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "codespan-reporting",
  "hexf-parse",
- "indexmap 1.9.3",
+ "indexmap 2.2.1",
  "log",
  "num-traits",
  "rustc-hash",
@@ -3260,16 +3548,15 @@ 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",
  "pin-utils",
- "static_assertions",
 ]
 
 [[package]]
@@ -3337,7 +3624,7 @@ dependencies = [
  "num-complex",
  "num-integer",
  "num-iter",
- "num-rational 0.3.2",
+ "num-rational",
  "num-traits",
 ]
 
@@ -3406,21 +3693,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "num-rational"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
 name = "num-traits"
-version = "0.2.15"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
 dependencies = [
  "autocfg",
 ]
@@ -3431,7 +3707,7 @@ version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 dependencies = [
- "hermit-abi 0.3.2",
+ "hermit-abi 0.3.4",
  "libc",
 ]
 
@@ -3456,18 +3732,18 @@ dependencies = [
 
 [[package]]
 name = "object"
-version = "0.31.1"
+version = "0.32.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1"
+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 = "oorandom"
@@ -3477,19 +3753,31 @@ checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
 
 [[package]]
 name = "openssl"
-version = "0.10.38"
+version = "0.10.63"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c7ae222234c30df141154f159066c5093ff73b63204dcda7121eb082fc56a95"
+checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "cfg-if",
- "foreign-types",
+ "foreign-types 0.3.2",
  "libc",
  "once_cell",
+ "openssl-macros",
  "openssl-sys",
 ]
 
 [[package]]
+name = "openssl-macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
 name = "openssl-probe"
 version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3497,20 +3785,19 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-src"
-version = "300.1.2+3.1.1"
+version = "300.2.1+3.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94773a6131a4d91f737a31debb0b3258964a47d923ef539c8be1d496dfb5145d"
+checksum = "3fe476c29791a5ca0d1273c697e96085bbabbbea2ef7afd5617e78a4b40332d3"
 dependencies = [
  "cc",
 ]
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.71"
+version = "0.9.99"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7df13d165e607909b363a4757a6f133f8a818a74e9d3a98d09c6128e15fa4c73"
+checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae"
 dependencies = [
- "autocfg",
  "cc",
  "libc",
  "openssl-src",
@@ -3520,9 +3807,9 @@ dependencies = [
 
 [[package]]
 name = "ordered-float"
-version = "3.7.0"
+version = "4.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fc2dbde8f8a79f2102cc474ceb0ad68e3b80b85289ea62389b60e66777e4213"
+checksum = "a76df7075c7d4d01fdcb46c912dd17fba5b60c78ea480b475f2b6ab6f666584e"
 dependencies = [
  "num-traits",
  "rand",
@@ -3541,15 +3828,15 @@ dependencies = [
 
 [[package]]
 name = "os_str_bytes"
-version = "6.5.1"
+version = "6.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d5d9eb14b174ee9aa2ef96dc2b94637a2d4b6e7cb873c7e171f0c20c6cf3eac"
+checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1"
 
 [[package]]
 name = "parking"
-version = "2.1.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e"
+checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
 
 [[package]]
 name = "parking_lot"
@@ -3569,7 +3856,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
 dependencies = [
  "lock_api",
- "parking_lot_core 0.9.8",
+ "parking_lot_core 0.9.9",
 ]
 
 [[package]]
@@ -3588,18 +3875,24 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.8"
+version = "0.9.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall 0.3.5",
+ "redox_syscall 0.4.1",
  "smallvec",
- "windows-targets 0.48.1",
+ "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 = "pem"
 version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3610,25 +3903,26 @@ dependencies = [
 
 [[package]]
 name = "percent-encoding"
-version = "2.3.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "pest"
-version = "2.7.0"
+version = "2.7.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f73935e4d55e2abf7f130186537b19e7a4abc886a0252380b59248af473a3fc9"
+checksum = "1f200d8d83c44a45b21764d1916299752ca035d15ecd46faca3e9a2a2bf6ad06"
 dependencies = [
+ "memchr",
  "thiserror",
  "ucd-trie",
 ]
 
 [[package]]
 name = "pest_derive"
-version = "2.7.0"
+version = "2.7.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aef623c9bbfa0eedf5a0efba11a5ee83209c326653ca31ff019bec3a95bfff2b"
+checksum = "bcd6ab1236bbdb3a49027e920e693192ebfe8913f6d60e294de57463a493cfde"
 dependencies = [
  "pest",
  "pest_generator",
@@ -3636,22 +3930,22 @@ dependencies = [
 
 [[package]]
 name = "pest_generator"
-version = "2.7.0"
+version = "2.7.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3e8cba4ec22bada7fc55ffe51e2deb6a0e0db2d0b7ab0b103acc80d2510c190"
+checksum = "2a31940305ffc96863a735bef7c7994a00b325a7138fdbc5bda0f1a0476d3275"
 dependencies = [
  "pest",
  "pest_meta",
  "proc-macro2",
  "quote",
- "syn 2.0.25",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "pest_meta"
-version = "2.7.0"
+version = "2.7.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a01f71cb40bd8bb94232df14b946909e14660e33fc05db3e50ae2a82d7ea0ca0"
+checksum = "a7ff62f5259e53b78d1af898941cdcdccfae7385cf7d793a6e55de5d05bb4b7d"
 dependencies = [
  "once_cell",
  "pest",
@@ -3698,7 +3992,7 @@ dependencies = [
  "phf_shared",
  "proc-macro2",
  "quote",
- "syn 2.0.25",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -3712,29 +4006,29 @@ dependencies = [
 
 [[package]]
 name = "pin-project"
-version = "1.1.2"
+version = "1.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "030ad2bc4db10a8944cb0d837f158bdfec4d4a4873ab701a95046770d11f8842"
+checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0"
 dependencies = [
  "pin-project-internal",
 ]
 
 [[package]]
 name = "pin-project-internal"
-version = "1.1.2"
+version = "1.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c"
+checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.25",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.10"
+version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
 
 [[package]]
 name = "pin-utils"
@@ -3743,21 +4037,32 @@ 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.27"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
 
 [[package]]
 name = "plist"
-version = "1.5.0"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdc0001cfea3db57a2e24bc0d818e9e20e554b5f97fabb9bc231dc240269ae06"
+checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef"
 dependencies = [
- "base64 0.21.2",
- "indexmap 1.9.3",
+ "base64 0.21.7",
+ "indexmap 2.2.1",
  "line-wrap",
- "quick-xml 0.29.0",
+ "quick-xml 0.31.0",
  "serde",
  "time",
 ]
@@ -3805,9 +4110,9 @@ dependencies = [
 
 [[package]]
 name = "png"
-version = "0.17.9"
+version = "0.17.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59871cc5b6cce7eaccca5a802b4173377a1c2ba90654246789a8fa2334426d11"
+checksum = "1f6c3c3e617595665b8ea2ff95a86066be38fb121ff920a9c0eb282abcd1da5a"
 dependencies = [
  "bitflags 1.3.2",
  "crc32fast",
@@ -3833,6 +4138,20 @@ dependencies = [
 ]
 
 [[package]]
+name = "polling"
+version = "3.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "545c980a3880efd47b2e262f6a4bb6daad6555cf3367aa9c4e52895f69537a41"
+dependencies = [
+ "cfg-if",
+ "concurrent-queue",
+ "pin-project-lite",
+ "rustix 0.38.30",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "portable-pty"
 version = "0.8.1"
 dependencies = [
@@ -3852,10 +4171,16 @@ dependencies = [
  "shell-words",
  "smol",
  "winapi",
- "winreg",
+ "winreg 0.10.1",
 ]
 
 [[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"
@@ -3863,14 +4188,13 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 
 [[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",
  "float-cmp",
- "itertools",
  "normalize-line-endings",
  "predicates-core",
  "regex",
@@ -3893,20 +4217,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "presser"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa"
+
+[[package]]
 name = "proc-macro-crate"
 version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
 dependencies = [
  "once_cell",
- "toml_edit",
+ "toml_edit 0.19.15",
 ]
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.64"
+version = "1.0.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78803b62cbf1f46fde80d7c0e803111524b9877184cfe7c3033659490ac7a7da"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
 dependencies = [
  "unicode-ident",
 ]
@@ -3937,9 +4267,9 @@ dependencies = [
 
 [[package]]
 name = "profiling"
-version = "1.0.8"
+version = "1.0.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "332cd62e95873ea4f41f3dfd6bbbfc5b52aec892d7e8d534197c4720a0bbbab2"
+checksum = "d135ede8821cf6376eb7a64148901e1690b788c11ae94dc297ae917dbc91dc0e"
 
 [[package]]
 name = "promise"
@@ -3947,20 +4277,20 @@ version = "0.2.0"
 dependencies = [
  "anyhow",
  "async-executor",
- "async-io",
+ "async-io 1.13.0",
  "async-task",
- "flume",
+ "flume 0.10.14",
  "lazy_static",
  "thiserror",
 ]
 
 [[package]]
 name = "pulldown-cmark"
-version = "0.9.3"
+version = "0.9.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77a1a2f1f0a7ecff9c31abbe177637be0e97a0aef46cf8738ece09327985d998"
+checksum = "80eb9f69aec5cd8828765a75f739383fbbe3e8b9d84370bde1cc90487700794a"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "getopts",
  "memchr",
  "unicase",
@@ -3968,9 +4298,9 @@ dependencies = [
 
 [[package]]
 name = "pure-rust-locales"
-version = "0.5.6"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b45c49fc4f91f35bae654f85ebb3a44d60ac64f11b3166ffa609def390c732d8"
+checksum = "ed02a829e62dc2715ceb8afb4f80e298148e1345749ceb369540fe0eb3368432"
 
 [[package]]
 name = "qoi"
@@ -3983,27 +4313,27 @@ dependencies = [
 
 [[package]]
 name = "quick-xml"
-version = "0.28.2"
+version = "0.30.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ce5e73202a820a31f8a0ee32ada5e21029c81fd9e3ebf668a40832e4219d9d1"
+checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "quick-xml"
-version = "0.29.0"
+version = "0.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81b9228215d82c7b61490fec1de287136b5de6f5700f6e58ea9ad61a7964ca51"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.29"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
@@ -4070,9 +4400,9 @@ checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
 
 [[package]]
 name = "rayon"
-version = "1.7.0"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
+checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051"
 dependencies = [
  "either",
  "rayon-core",
@@ -4080,14 +4410,12 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.11.0"
+version = "1.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
 dependencies = [
- "crossbeam-channel",
  "crossbeam-deque",
  "crossbeam-utils",
- "num_cpus",
 ]
 
 [[package]]
@@ -4113,33 +4441,33 @@ dependencies = [
 
 [[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.9.1"
+version = "1.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
- "aho-corasick 1.0.2",
+ "aho-corasick",
  "memchr",
- "regex-automata 0.3.2",
+ "regex-automata 0.4.5",
  "regex-syntax",
 ]
 
@@ -4151,26 +4479,26 @@ checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
 
 [[package]]
 name = "regex-automata"
-version = "0.3.2"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "83d3daa6976cffb758ec878f108ba0e062a45b2d6ca3a2cca965338855476caf"
+checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
 dependencies = [
- "aho-corasick 1.0.2",
+ "aho-corasick",
  "memchr",
  "regex-syntax",
 ]
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.3"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ab07dc67230e4a4718e70fd5c20055a4334b121f1f9db8fe63ef39ce9b8c846"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "relative-path"
-version = "1.8.0"
+version = "1.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bf2521270932c3c7bed1a59151222bd7643c79310f2916f01925e1e16255698"
+checksum = "e898588f33fdd5b9420719948f9f2a32c922a246964576f71ba7f24f80610fbc"
 
 [[package]]
 name = "renderdoc-sys"
@@ -4180,11 +4508,11 @@ checksum = "216080ab382b992234dda86873c18d4c48358f5cfcb70fd693d7f6f2131b628b"
 
 [[package]]
 name = "reqwest"
-version = "0.11.18"
+version = "0.11.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55"
+checksum = "37b1ae8d9ac08420c66222fb9096fc5de435c3c48542bc5336c51892cffafb41"
 dependencies = [
- "base64 0.21.2",
+ "base64 0.21.7",
  "bytes",
  "encoding_rs",
  "futures-core",
@@ -4205,6 +4533,7 @@ dependencies = [
  "serde",
  "serde_json",
  "serde_urlencoded",
+ "system-configuration",
  "tokio",
  "tokio-native-tls",
  "tower-service",
@@ -4212,7 +4541,7 @@ dependencies = [
  "wasm-bindgen",
  "wasm-bindgen-futures",
  "web-sys",
- "winreg",
+ "winreg 0.50.0",
 ]
 
 [[package]]
@@ -4226,9 +4555,9 @@ dependencies = [
 
 [[package]]
 name = "rgb"
-version = "0.8.36"
+version = "0.8.37"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "20ec2d3e3fc7a92ced357df9cebd5a10b6fb2aa1ee797bf7e9ce2f17dffc8f59"
+checksum = "05aaa8004b64fd573fc9d002f4e632d51ad4f026c2b5ba95fcb6c2f32c2c47d8"
 dependencies = [
  "bytemuck",
 ]
@@ -4256,9 +4585,9 @@ checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422"
 
 [[package]]
 name = "rstest"
-version = "0.18.1"
+version = "0.18.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b96577ca10cb3eade7b337eb46520108a67ca2818a24d0b63f41fd62bc9651c"
+checksum = "97eeab2f3c0a199bc4be135c36c924b6590b88c377d416494288c14f2db30199"
 dependencies = [
  "futures",
  "futures-timer",
@@ -4268,9 +4597,9 @@ dependencies = [
 
 [[package]]
 name = "rstest_macros"
-version = "0.18.1"
+version = "0.18.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225e674cf31712b8bb15fdbca3ec0c1b9d825c5a24407ff2b7e005fb6a29ba03"
+checksum = "d428f8247852f894ee1be110b375111b586d4fa431f6c46e64ba5a0dcccbe605"
 dependencies = [
  "cfg-if",
  "glob",
@@ -4279,7 +4608,7 @@ dependencies = [
  "regex",
  "relative-path",
  "rustc_version",
- "syn 2.0.25",
+ "syn 2.0.48",
  "unicode-ident",
 ]
 
@@ -4316,14 +4645,14 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
 dependencies = [
- "semver 1.0.17",
+ "semver 1.0.21",
 ]
 
 [[package]]
 name = "rustix"
-version = "0.37.23"
+version = "0.37.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06"
+checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
 dependencies = [
  "bitflags 1.3.2",
  "errno",
@@ -4335,22 +4664,22 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.3"
+version = "0.38.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac5ffa1efe7548069688cd7028f32591853cd7b5b756d41bcffd2353e4fc75b4"
+checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca"
 dependencies = [
- "bitflags 2.3.3",
+ "bitflags 2.4.2",
  "errno",
  "libc",
- "linux-raw-sys 0.4.3",
- "windows-sys 0.48.0",
+ "linux-raw-sys 0.4.13",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "ryu"
-version = "1.0.14"
+version = "1.0.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe232bdf6be8c8de797b22184ee71118d63780ea42ac85b61d1baa6d3b782ae9"
+checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
 
 [[package]]
 name = "safemem"
@@ -4369,11 +4698,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]]
@@ -4384,30 +4713,30 @@ 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 = "security-framework"
-version = "2.9.1"
+version = "2.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8"
+checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
 dependencies = [
  "bitflags 1.3.2",
- "core-foundation 0.9.3",
- "core-foundation-sys 0.8.4",
+ "core-foundation 0.9.4",
+ "core-foundation-sys 0.8.6",
  "libc",
  "security-framework-sys",
 ]
 
 [[package]]
 name = "security-framework-sys"
-version = "2.9.0"
+version = "2.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7"
+checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
 dependencies = [
- "core-foundation-sys 0.8.4",
+ "core-foundation-sys 0.8.6",
  "libc",
 ]
 
@@ -4422,9 +4751,9 @@ 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"
 
 [[package]]
 name = "semver-parser"
@@ -4437,9 +4766,9 @@ dependencies = [
 
 [[package]]
 name = "serde"
-version = "1.0.171"
+version = "1.0.196"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30e27d1e4fd7659406c492fd6cfaf2066ba8773de45ca75e855590f856dc34a9"
+checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
 dependencies = [
  "serde_derive",
 ]
@@ -4456,20 +4785,20 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.171"
+version = "1.0.196"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "389894603bd18c46fa56231694f8d827779c0951a667087194cf9de94ed24682"
+checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.25",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.100"
+version = "1.0.112"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f1e14e89be7aa4c4b78bdbdc9eb5bf8517829a600ae8eaa39a6e1d960b5185c"
+checksum = "4d1bd37ce2324cf3bf85e5a25f96eb4baf0d5aa6eba43e7ae8958870c4ec48ed"
 dependencies = [
  "itoa",
  "ryu",
@@ -4478,20 +4807,20 @@ dependencies = [
 
 [[package]]
 name = "serde_repr"
-version = "0.1.14"
+version = "0.1.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d89a8107374290037607734c0b73a85db7ed80cae314b3c5791f192a496e731"
+checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.25",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.3"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
 dependencies = [
  "serde",
 ]
@@ -4533,16 +4862,16 @@ dependencies = [
  "darling",
  "proc-macro2",
  "quote",
- "syn 2.0.25",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "serde_yaml"
-version = "0.9.22"
+version = "0.9.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "452e67b9c20c37fa79df53201dc03839651086ed9bbe92b3ca585ca9fdaa7d85"
+checksum = "b1bf28c79a99f70ee1f1d83d10c875d2e70618417fda01ad1785e027579d9d38"
 dependencies = [
- "indexmap 2.0.0",
+ "indexmap 2.2.1",
  "itoa",
  "ryu",
  "serde",
@@ -4593,9 +4922,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",
@@ -4604,9 +4933,9 @@ dependencies = [
 
 [[package]]
 name = "sha2"
-version = "0.10.7"
+version = "0.10.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -4643,15 +4972,15 @@ checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
 
 [[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 = "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",
@@ -4668,51 +4997,51 @@ dependencies = [
 
 [[package]]
 name = "simd-adler32"
-version = "0.3.5"
+version = "0.3.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f"
+checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
 
 [[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 = "slotmap"
-version = "1.0.6"
+version = "1.0.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342"
+checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a"
 dependencies = [
  "version_check",
 ]
 
 [[package]]
 name = "smallvec"
-version = "1.11.0"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
+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 = "smithay-client-toolkit"
-version = "0.16.0"
+version = "0.16.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f307c47d32d2715eb2e0ece5589057820e0e5e70d07c247d1063e844e107f454"
+checksum = "870427e30b8f2cbe64bf43ec4b86e88fe39b0a84b3f15efd9c9c2d020bc86eb9"
 dependencies = [
  "bitflags 1.3.2",
  "dlib",
@@ -4732,15 +5061,15 @@ version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "13f2b548cd8447f8de0fdf1c592929f70f4fc7039a05e47404b0d096ec6987a1"
 dependencies = [
- "async-channel",
+ "async-channel 1.9.0",
  "async-executor",
  "async-fs",
- "async-io",
- "async-lock",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
  "async-net",
  "async-process",
  "blocking",
- "futures-lite",
+ "futures-lite 1.13.0",
 ]
 
 [[package]]
@@ -4749,7 +5078,7 @@ version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "894ffa61af5c0fab697c8c29b1ab10cb6ec4978a1ccac4a81b5b312df1ffd88e"
 dependencies = [
- "async-io",
+ "async-io 1.13.0",
  "smol-potat-macro",
 ]
 
@@ -4766,9 +5095,9 @@ dependencies = [
 
 [[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",
@@ -4776,9 +5105,9 @@ dependencies = [
 
 [[package]]
 name = "socket2"
-version = "0.5.3"
+version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877"
+checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
 dependencies = [
  "libc",
  "windows-sys 0.48.0",
@@ -4798,7 +5127,7 @@ name = "spawn-funcs"
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "bstr 0.2.17",
+ "bstr 1.9.0",
  "config",
  "log",
  "luahelper",
@@ -4900,7 +5229,7 @@ checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731"
 name = "strip-ansi-escapes"
 version = "0.1.0"
 dependencies = [
- "clap 4.3.11",
+ "clap 4.4.18",
  "termwiz",
 ]
 
@@ -4929,9 +5258,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.25"
+version = "2.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15e3fc8c0c74267e2df136e5e5fb656a464158aa57624053375eb9c8c6e25ae2"
+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -4945,7 +5274,7 @@ dependencies = [
  "anyhow",
  "color-funcs",
  "config",
- "env_logger",
+ "env_logger 0.11.1",
  "futures",
  "lazy_static",
  "libflate",
@@ -4958,18 +5287,29 @@ dependencies = [
  "tar",
  "tempfile",
  "tokio",
- "toml 0.7.6",
+ "toml 0.8.8",
  "wezterm-dynamic",
  "yaml-rust",
 ]
 
 [[package]]
-name = "sys-info"
-version = "0.9.1"
+name = "system-configuration"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b3a0d0aba8bf96a0e1ddfdc352fc53b3df7f39318c71854910c3c4b024ae52c"
+checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7"
 dependencies = [
- "cc",
+ "bitflags 1.3.2",
+ "core-foundation 0.9.4",
+ "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 0.8.6",
  "libc",
 ]
 
@@ -4988,9 +5328,9 @@ checksum = "36ae8932fcfea38b7d3883ae2ab357b0d57a02caaa18ebb4f5ece08beaec4aa0"
 
 [[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",
@@ -4999,16 +5339,15 @@ dependencies = [
 
 [[package]]
 name = "tempfile"
-version = "3.6.0"
+version = "3.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6"
+checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
 dependencies = [
- "autocfg",
  "cfg-if",
- "fastrand 1.9.0",
- "redox_syscall 0.3.5",
- "rustix 0.37.23",
- "windows-sys 0.48.0",
+ "fastrand 2.0.1",
+ "redox_syscall 0.4.1",
+ "rustix 0.38.30",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -5023,9 +5362,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",
 ]
@@ -5036,7 +5375,17 @@ version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237"
 dependencies = [
- "rustix 0.37.23",
+ "rustix 0.37.27",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "terminal_size"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
+dependencies = [
+ "rustix 0.38.30",
  "windows-sys 0.48.0",
 ]
 
@@ -5082,11 +5431,11 @@ name = "termwiz"
 version = "0.22.0"
 dependencies = [
  "anyhow",
- "base64 0.21.2",
- "bitflags 2.3.3",
+ "base64 0.21.7",
+ "bitflags 2.4.2",
  "cassowary",
  "criterion 0.4.0",
- "env_logger",
+ "env_logger 0.11.1",
  "fancy-regex",
  "filedescriptor",
  "finl_unicode",
@@ -5094,12 +5443,12 @@ dependencies = [
  "fnv",
  "hex",
  "image",
- "k9",
+ "k9 0.11.6",
  "lazy_static",
  "libc",
  "log",
  "memmem",
- "nix 0.26.2",
+ "nix 0.26.4",
  "num-derive",
  "num-traits",
  "ordered-float",
@@ -5164,22 +5513,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.43"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a35fc5b8971143ca348fa6df4f024d4d55264f3468c71ad1c2f365b0a4d58c42"
+checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.43"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "463fe12d7993d3b327787537ce8dd4dfa058de32fc2b195ef3cde03dc4771e8f"
+checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.25",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -5200,9 +5549,9 @@ dependencies = [
 
 [[package]]
 name = "tiff"
-version = "0.8.1"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7449334f9ff2baf290d55d73983a7d6fa15e01198faef72af07e2a8db851e471"
+checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e"
 dependencies = [
  "flate2",
  "jpeg-decoder",
@@ -5211,11 +5560,13 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.3.23"
+version = "0.3.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59e399c068f43a5d116fedaf73b203fa4f9c519f17e2b34f63221d3792f81446"
+checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e"
 dependencies = [
+ "deranged",
  "itoa",
+ "powerfmt",
  "serde",
  "time-core",
  "time-macros",
@@ -5223,9 +5574,9 @@ dependencies = [
 
 [[package]]
 name = "time-core"
-version = "0.1.1"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-funcs"
@@ -5244,18 +5595,18 @@ dependencies = [
 
 [[package]]
 name = "time-macros"
-version = "0.2.10"
+version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96ba15a897f3c86766b757e5ac7221554c6750054d74d5b28844fce5fb36a6c4"
+checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f"
 dependencies = [
  "time-core",
 ]
 
 [[package]]
 name = "tiny-skia"
-version = "0.11.1"
+version = "0.11.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4e37fdc219ee3d551882d24dc5e4df5f72fd9723cbca1ffaa57f7348bf7a47d"
+checksum = "b6a067b809476893fce6a254cf285850ff69c847e6cfbade6a20b655b6c7e80d"
 dependencies = [
  "arrayref",
  "arrayvec",
@@ -5268,9 +5619,9 @@ dependencies = [
 
 [[package]]
 name = "tiny-skia-path"
-version = "0.11.1"
+version = "0.11.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93a323d1de20dad9bc8b32daf57702c585ce76e80792d8151de1fc9dfc8d1ca7"
+checksum = "5de35e8a90052baaaf61f171680ac2f8e925a1e43ea9d2e3a00514772250e541"
 dependencies = [
  "arrayref",
  "bytemuck",
@@ -5304,31 +5655,30 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.29.1"
+version = "1.35.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da"
+checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
 dependencies = [
- "autocfg",
  "backtrace",
  "bytes",
  "libc",
  "mio",
  "num_cpus",
  "pin-project-lite",
- "socket2 0.4.9",
+ "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.25",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -5343,9 +5693,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-util"
-version = "0.7.8"
+version = "0.7.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d"
+checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
 dependencies = [
  "bytes",
  "futures-core",
@@ -5366,32 +5716,43 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.7.6"
+version = "0.8.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542"
+checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit",
+ "toml_edit 0.21.0",
 ]
 
 [[package]]
 name = "toml_datetime"
-version = "0.6.3"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "toml_edit"
-version = "0.19.12"
+version = "0.19.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
+dependencies = [
+ "indexmap 2.2.1",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c500344a19072298cd05a7224b3c0c629348b78692bf48466c5238656e315a78"
+checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
 dependencies = [
- "indexmap 2.0.0",
+ "indexmap 2.2.1",
  "serde",
  "serde_spanned",
  "toml_datetime",
@@ -5406,11 +5767,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",
  "pin-project-lite",
  "tracing-attributes",
  "tracing-core",
@@ -5418,35 +5778,35 @@ dependencies = [
 
 [[package]]
 name = "tracing-attributes"
-version = "0.1.26"
+version = "0.1.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.25",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "tracing-core"
-version = "0.1.31"
+version = "0.1.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
+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 = "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 = "ucd-trie"
@@ -5456,10 +5816,11 @@ checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
 
 [[package]]
 name = "uds_windows"
-version = "1.0.2"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce65604324d3cce9b966701489fbd0cf318cb1f7bd9dd07ac9a4ee6fb791930d"
+checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9"
 dependencies = [
+ "memoffset 0.9.0",
  "tempfile",
  "winapi",
 ]
@@ -5474,34 +5835,30 @@ dependencies = [
 
 [[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.13"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.10"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22049a19f4a68748a168c0fc439f9516686aa045927ff767eca0a85101fb6e73"
+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"
@@ -5520,9 +5877,9 @@ checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
 
 [[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 = "unicode-xid"
@@ -5532,9 +5889,9 @@ checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
 
 [[package]]
 name = "unsafe-libyaml"
-version = "0.2.8"
+version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1865806a559042e51ab5414598446a5871b561d21b6764f2eabb0dd481d880a6"
+checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b"
 
 [[package]]
 name = "untrusted"
@@ -5554,9 +5911,9 @@ dependencies = [
 
 [[package]]
 name = "url"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
 dependencies = [
  "form_urlencoded",
  "idna",
@@ -5564,6 +5921,18 @@ dependencies = [
 ]
 
 [[package]]
+name = "url-funcs"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "config",
+ "luahelper",
+ "percent-encoding",
+ "url",
+ "wezterm-dynamic",
+]
+
+[[package]]
 name = "utf8parse"
 version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5571,9 +5940,9 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
 name = "uuid"
-version = "1.4.0"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d023da39d1fde5a8a3fe1f3e01ca9632ada0a63e9797de55a879d6e2236277be"
+checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
 dependencies = [
  "atomic",
  "getrandom",
@@ -5627,21 +5996,21 @@ dependencies = [
 name = "vtparse"
 version = "0.6.2"
 dependencies = [
- "k9",
+ "k9 0.11.6",
  "utf8parse",
 ]
 
 [[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.3"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
+checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
 dependencies = [
  "same-file",
  "winapi-util",
@@ -5664,9 +6033,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.87"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -5674,24 +6043,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.87"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.25",
+ "syn 2.0.48",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.37"
+version = "0.4.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03"
+checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -5701,9 +6070,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.87"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -5711,22 +6080,22 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.87"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.25",
+ "syn 2.0.48",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.87"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b"
 
 [[package]]
 name = "wayland-client"
@@ -5822,9 +6191,9 @@ dependencies = [
 
 [[package]]
 name = "weezl"
-version = "0.1.7"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
+checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
 
 [[package]]
 name = "wezterm"
@@ -5833,7 +6202,7 @@ dependencies = [
  "anyhow",
  "cc",
  "chrono",
- "clap 4.3.11",
+ "clap 4.4.18",
  "clap_complete",
  "clap_complete_fig",
  "codec",
@@ -5842,6 +6211,7 @@ dependencies = [
  "env-bootstrap",
  "filedescriptor",
  "hostname",
+ "image",
  "libc",
  "log",
  "mux",
@@ -5867,10 +6237,10 @@ dependencies = [
 
 [[package]]
 name = "wezterm-bidi"
-version = "0.2.2"
+version = "0.2.3"
 dependencies = [
- "env_logger",
- "k9",
+ "env_logger 0.11.1",
+ "k9 0.12.0",
  "log",
  "wezterm-dynamic",
 ]
@@ -5927,7 +6297,7 @@ dependencies = [
 
 [[package]]
 name = "wezterm-color-types"
-version = "0.2.0"
+version = "0.3.0"
 dependencies = [
  "csscolorparser",
  "deltae",
@@ -5947,7 +6317,7 @@ dependencies = [
 
 [[package]]
 name = "wezterm-dynamic"
-version = "0.1.0"
+version = "0.2.0"
 dependencies = [
  "log",
  "maplit",
@@ -5971,24 +6341,28 @@ name = "wezterm-font"
 version = "0.1.0"
 dependencies = [
  "anyhow",
+ "cairo-rs",
+ "cocoa 0.25.0",
  "config",
- "core-foundation 0.9.3",
+ "core-foundation 0.9.4",
  "core-text",
  "dwrote",
  "encoding_rs",
  "enum-display-derive",
- "env_logger",
+ "env_logger 0.11.1",
  "euclid",
  "finl_unicode",
  "fontconfig",
  "freetype",
  "harfbuzz",
- "k9",
+ "image",
+ "k9 0.11.6",
  "lazy_static",
  "lfucache",
  "log",
  "memmap2 0.2.3",
  "metrics",
+ "objc",
  "ordered-float",
  "rangeset",
  "termwiz",
@@ -6012,7 +6386,7 @@ dependencies = [
  "bytemuck",
  "cc",
  "chrono",
- "clap 4.3.11",
+ "clap 4.4.18",
  "codec",
  "colorgrad",
  "config",
@@ -6022,9 +6396,9 @@ dependencies = [
  "embed-resource",
  "emojis",
  "env-bootstrap",
- "env_logger",
+ "env_logger 0.11.1",
  "euclid",
- "fastrand 2.0.0",
+ "fastrand 2.0.1",
  "filedescriptor",
  "finl_unicode",
  "frecency",
@@ -6033,7 +6407,7 @@ dependencies = [
  "hdrhistogram",
  "http_req",
  "image",
- "k9",
+ "k9 0.12.0",
  "lazy_static",
  "lfucache",
  "libc",
@@ -6051,6 +6425,7 @@ dependencies = [
  "pulldown-cmark",
  "rangeset",
  "ratelim",
+ "rayon",
  "regex",
  "serde",
  "serde_json",
@@ -6071,6 +6446,7 @@ dependencies = [
  "unicode-segmentation",
  "unicode-width",
  "url",
+ "url-funcs",
  "walkdir",
  "wezterm-bidi",
  "wezterm-blob-leases",
@@ -6095,7 +6471,7 @@ name = "wezterm-gui-subcommands"
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "clap 4.3.11",
+ "clap 4.4.18",
  "config",
 ]
 
@@ -6117,7 +6493,7 @@ dependencies = [
  "anyhow",
  "async_ossl",
  "cc",
- "clap 4.3.11",
+ "clap 4.4.18",
  "config",
  "embed-resource",
  "env-bootstrap",
@@ -6176,16 +6552,16 @@ dependencies = [
  "anyhow",
  "assert_fs",
  "async_ossl",
- "base64 0.21.2",
+ "base64 0.21.7",
  "bitflags 1.3.2",
  "camino",
- "clap 4.3.11",
+ "clap 4.4.18",
  "dirs-next",
- "env_logger",
+ "env_logger 0.11.1",
  "filedescriptor",
  "filenamegen",
  "gethostname",
- "k9",
+ "k9 0.12.0",
  "libc",
  "libssh-rs",
  "log",
@@ -6197,7 +6573,7 @@ dependencies = [
  "shell-words",
  "smol",
  "smol-potat",
- "socket2 0.5.3",
+ "socket2 0.5.5",
  "ssh2",
  "termwiz",
  "thiserror",
@@ -6212,12 +6588,12 @@ dependencies = [
  "bitflags 1.3.2",
  "csscolorparser",
  "downcast-rs",
- "env_logger",
+ "env_logger 0.11.1",
  "finl_unicode",
  "hex",
  "humansize",
  "image",
- "k9",
+ "k9 0.11.6",
  "lazy_static",
  "log",
  "lru",
@@ -6237,8 +6613,8 @@ dependencies = [
 name = "wezterm-toast-notification"
 version = "0.1.0"
 dependencies = [
- "async-io",
- "cocoa",
+ "async-io 1.13.0",
+ "cocoa 0.20.2",
  "core-foundation 0.7.0",
  "futures-util",
  "log",
@@ -6260,12 +6636,13 @@ dependencies = [
 
 [[package]]
 name = "wgpu"
-version = "0.16.2"
+version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8aa4361a426ff9f028520da01e8fda28ab9bdb029e2a76901f1f88317e2796e9"
+checksum = "30e7d227c9f961f2061c26f4cb0fbd4df0ef37e056edd0931783599d6c94ef24"
 dependencies = [
  "arrayvec",
  "cfg-if",
+ "flume 0.11.0",
  "js-sys",
  "log",
  "naga",
@@ -6284,13 +6661,13 @@ dependencies = [
 
 [[package]]
 name = "wgpu-core"
-version = "0.16.1"
+version = "0.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f478237b4bf0d5b70a39898a66fa67ca3a007d79f2520485b8b0c3dfc46f8c2"
+checksum = "ef91c1d62d1e9e81c79e600131a258edf75c9531cbdbde09c44a011a47312726"
 dependencies = [
  "arrayvec",
  "bit-vec",
- "bitflags 2.3.3",
+ "bitflags 2.4.2",
  "codespan-reporting",
  "log",
  "naga",
@@ -6307,20 +6684,20 @@ dependencies = [
 
 [[package]]
 name = "wgpu-hal"
-version = "0.16.2"
+version = "0.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ecb3258078e936deee14fd4e0febe1cfe9bbb5ffef165cb60218d2ee5eb4448"
+checksum = "b84ecc802da3eb67b4cf3dd9ea6fe45bbb47ef13e6c49c5c3240868a9cc6cdd9"
 dependencies = [
  "android_system_properties",
  "arrayvec",
  "ash",
  "bit-set",
- "bitflags 2.3.3",
+ "bitflags 2.4.2",
  "block",
  "core-graphics-types",
  "d3d12",
- "foreign-types",
  "glow",
+ "glutin_wgl_sys",
  "gpu-alloc",
  "gpu-allocator",
  "gpu-descriptor",
@@ -6328,11 +6705,12 @@ dependencies = [
  "js-sys",
  "khronos-egl",
  "libc",
- "libloading 0.8.0",
+ "libloading 0.8.1",
  "log",
  "metal",
  "naga",
  "objc",
+ "once_cell",
  "parking_lot 0.12.1",
  "profiling",
  "range-alloc",
@@ -6349,16 +6727,29 @@ dependencies = [
 
 [[package]]
 name = "wgpu-types"
-version = "0.16.1"
+version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0c153280bb108c2979eb5c7391cb18c56642dd3c072e55f52065e13e2a1252a"
+checksum = "0d5ed5f0edf0de351fe311c53304986315ce866f394a2e6df0c4b3c70774bcdd"
 dependencies = [
- "bitflags 2.3.3",
+ "bitflags 2.4.2",
  "js-sys",
  "web-sys",
 ]
 
 [[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 0.38.30",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
 name = "whoami"
 version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6392,9 +6783,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",
 ]
@@ -6410,15 +6801,15 @@ name = "window"
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "async-channel",
- "async-io",
+ "async-channel 1.9.0",
+ "async-io 1.13.0",
  "async-task",
  "async-trait",
  "bitflags 1.3.2",
  "bytes",
  "cgl",
  "clipboard-win",
- "cocoa",
+ "cocoa 0.25.0",
  "config",
  "core-foundation 0.7.0",
  "core-graphics 0.19.2",
@@ -6426,12 +6817,12 @@ dependencies = [
  "downcast-rs",
  "euclid",
  "filedescriptor",
- "futures-lite",
+ "futures-lite 1.13.0",
  "futures-util",
  "gl_generator",
  "glium",
  "guillotiere",
- "k9",
+ "k9 0.11.6",
  "lazy_static",
  "libc",
  "libloading 0.6.7",
@@ -6460,7 +6851,7 @@ dependencies = [
  "wezterm-input-types",
  "winapi",
  "windows 0.33.0",
- "winreg",
+ "winreg 0.10.1",
  "x11",
  "xcb",
  "xcb-imdkit",
@@ -6495,20 +6886,30 @@ dependencies = [
 
 [[package]]
 name = "windows"
-version = "0.44.0"
+version = "0.51.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e745dab35a0c4c77aa3ce42d595e13d2003d6902d6b08c9ef5fc326d08da12b"
+checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9"
 dependencies = [
- "windows-targets 0.42.2",
+ "windows-core 0.51.1",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
-name = "windows"
-version = "0.48.0"
+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 = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.48.1",
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
@@ -6526,7 +6927,16 @@ version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 dependencies = [
- "windows-targets 0.48.1",
+ "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]]
@@ -6546,17 +6956,32 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.48.1"
+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 = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
+checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
 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.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]]
@@ -6567,9 +6992,15 @@ 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 = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+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"
@@ -6585,9 +7016,15 @@ 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 = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+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"
@@ -6603,9 +7040,15 @@ 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 = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -6621,9 +7064,15 @@ 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 = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -6639,9 +7088,15 @@ 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 = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -6651,9 +7106,15 @@ 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"
@@ -6669,15 +7130,21 @@ 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 = "winnow"
-version = "0.4.9"
+version = "0.5.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81a2094c43cc94775293eaa0e499fbc30048a6d824ac82c0351a8c0bf9112529"
+checksum = "1931d78a9c73861da0134f453bb1f790ce49b2e30eba8410b4b79bac72b46a2d"
 dependencies = [
  "memchr",
 ]
@@ -6692,6 +7159,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 = "wio"
 version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6712,28 +7189,32 @@ 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.30",
 ]
 
 [[package]]
 name = "xcb"
-version = "1.2.1"
-source = "git+https://github.com/rust-x-bindings/rust-xcb?rev=dbdaa01c178c6fbe68bd51b7ad44c08172181083#dbdaa01c178c6fbe68bd51b7ad44c08172181083"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d27b37e69b8c05bfadcd968eb1a4fe27c9c52565b727f88512f43b89567e262"
 dependencies = [
+ "as-raw-xcb-connection",
  "bitflags 1.3.2",
  "libc",
- "quick-xml 0.28.2",
+ "quick-xml 0.30.0",
  "x11",
 ]
 
 [[package]]
 name = "xcb-imdkit"
-version = "0.2.0"
-source = "git+https://github.com/wez/xcb-imdkit-rs.git?branch=hangfix#e59e4a6df065b702e0c22fa2dcea00bd8301a446"
+version = "0.3.0"
+source = "git+https://github.com/wez/xcb-imdkit-rs.git?rev=215ce4b08ac9c4822e541efd4f4ffb1062806051#215ce4b08ac9c4822e541efd4f4ffb1062806051"
 dependencies = [
  "bitflags 1.3.2",
  "cc",
@@ -6744,12 +7225,9 @@ dependencies = [
 
 [[package]]
 name = "xcursor"
-version = "0.3.4"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "463705a63313cd4301184381c5e8042f0a7e9b4bb63653f216311d4ae74690b7"
-dependencies = [
- "nom",
-]
+checksum = "6a0ccd7b4a5345edfcd0c3535718a4e9ff7798ffc536bb5b5a0e26ff84732911"
 
 [[package]]
 name = "xdg-home"
@@ -6757,26 +7235,33 @@ version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2769203cd13a0c6015d515be729c526d041e9cf2c0cc478d57faee85f40c6dcd"
 dependencies = [
- "nix 0.26.2",
+ "nix 0.26.4",
  "winapi",
 ]
 
 [[package]]
 name = "xkbcommon"
-version = "0.5.0"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acbee136714379ab22da0280207fdb7f47e0bb940adea97731b65598b8c7a92e"
+checksum = "13867d259930edc7091a6c41b4ce6eee464328c6ff9659b7e4c668ca20d4c91e"
 dependencies = [
+ "as-raw-xcb-connection",
  "libc",
- "memmap2 0.5.10",
- "xcb",
+ "memmap2 0.8.0",
+ "xkeysym",
 ]
 
 [[package]]
+name = "xkeysym"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "054a8e68b76250b253f671d1268cb7f1ae089ec35e195b2efb2a4e9a836d0621"
+
+[[package]]
 name = "xml-rs"
-version = "0.8.15"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a56c84a8ccd4258aed21c92f70c0f6dea75356b6892ae27c24139da456f9336"
+checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a"
 
 [[package]]
 name = "yaml-rust"
@@ -6805,8 +7290,8 @@ dependencies = [
  "async-broadcast",
  "async-executor",
  "async-fs",
- "async-io",
- "async-lock",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
  "async-process",
  "async-recursion",
  "async-task",
@@ -6815,12 +7300,12 @@ dependencies = [
  "byteorder",
  "derivative",
  "enumflags2",
- "event-listener",
+ "event-listener 2.5.3",
  "futures-core",
  "futures-sink",
  "futures-util",
  "hex",
- "nix 0.26.2",
+ "nix 0.26.4",
  "once_cell",
  "ordered-stream",
  "rand",
@@ -6863,6 +7348,26 @@ dependencies = [
 ]
 
 [[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.48",
+]
+
+[[package]]
 name = "zstd"
 version = "0.11.2+zstd.1.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6883,12 +7388,11 @@ 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/applications/terminal-emulators/wezterm/default.nix b/pkgs/applications/terminal-emulators/wezterm/default.nix
index 4cb1fa54df66..d797410c17c0 100644
--- a/pkgs/applications/terminal-emulators/wezterm/default.nix
+++ b/pkgs/applications/terminal-emulators/wezterm/default.nix
@@ -32,14 +32,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wezterm";
-  version = "20230712-072601-f4abf8fd";
+  version = "20240128-202157-1e552d76";
 
   src = fetchFromGitHub {
     owner = "wez";
     repo = pname;
     rev = version;
     fetchSubmodules = true;
-    hash = "sha256-B6AakLbTWIN123qAMQk/vFN83HHNRSNkqicNRU1GaCc=";
+    hash = "sha256-ZmsWTtxW6/Sx2zvuX2aZSiFxoD4g29brby2cd2DCq0o=";
   };
 
   postPatch = ''
@@ -52,9 +52,7 @@ rustPlatform.buildRustPackage rec {
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "image-0.24.5" = "sha256-fTajVwm88OInqCPZerWcSAm1ga46ansQ3EzAmbT58Js=";
-      "xcb-1.2.1" = "sha256-zkuW5ATix3WXBAj2hzum1MJ5JTX3+uVQ01R1vL6F1rY=";
-      "xcb-imdkit-0.2.0" = "sha256-L+NKD0rsCk9bFABQF4FZi9YoqBHr4VAZeKAWgsaAegw=";
+      "xcb-imdkit-0.3.0" = "sha256-fTpJ6uNhjmCWv7dZqVgYuS2Uic36XNYTbqlaly5QBjI=";
     };
   };
 
diff --git a/pkgs/applications/version-management/cvs-fast-export/default.nix b/pkgs/applications/version-management/cvs-fast-export/default.nix
index a45d76970664..a58cda543658 100644
--- a/pkgs/applications/version-management/cvs-fast-export/default.nix
+++ b/pkgs/applications/version-management/cvs-fast-export/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cvs-fast-export";
-  version = "1.62";
+  version = "1.63";
 
   src = fetchurl {
     url = "http://www.catb.org/~esr/cvs-fast-export/cvs-fast-export-${version}.tar.gz";
-    sha256 = "sha256-ix0fg2wn2yStrgEhAxsSXvLu+C7sb2V5oyVCfhAe/R8=";
+    sha256 = "sha256-YZF2QebWbvn/N9pLpccudZsFHzocJp/3M0Gx9p7fQ5Y=";
   };
 
   strictDeps = true;
diff --git a/pkgs/applications/version-management/forgejo/default.nix b/pkgs/applications/version-management/forgejo/default.nix
index 823928576b93..07ce100f2a9a 100644
--- a/pkgs/applications/version-management/forgejo/default.nix
+++ b/pkgs/applications/version-management/forgejo/default.nix
@@ -24,7 +24,7 @@ let
     pname = "forgejo-frontend";
     inherit (forgejo) src version;
 
-    npmDepsHash = "sha256-nXQew6PR5z+FGzmD15WBclnOYxzNZxTmHypuzh5+7Ew=";
+    npmDepsHash = "sha256-I7eq9PB2Od7aaji+VrZj05VVCsGtCiXEMy88xrA8Ktg=";
 
     patches = [
       ./package-json-npm-build-frontend.patch
@@ -39,17 +39,17 @@ let
 in
 buildGoModule rec {
   pname = "forgejo";
-  version = "1.21.4-0";
+  version = "1.21.5-0";
 
   src = fetchFromGitea {
     domain = "codeberg.org";
     owner = "forgejo";
     repo = "forgejo";
     rev = "v${version}";
-    hash = "sha256-m5y9lg1XAyOWA9jyeieGhzgJ9FaNorS45GCJPwMftXI=";
+    hash = "sha256-SmNmMlO9bEccrk0oWm7VnBaIRGJgTQ5hOSIn6DRiYqk=";
   };
 
-  vendorHash = "sha256-eL3wxoRjxpkv012SqqifNLN9IOez5TbfGfZRgEX0AEM=";
+  vendorHash = "sha256-5BznZiPZCwFEl74JVf7ujFtzsTyG6AcKvQG0LdaMKe4=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/applications/version-management/gh/default.nix b/pkgs/applications/version-management/gh/default.nix
index aae3cbfafe27..33d968c53757 100644
--- a/pkgs/applications/version-management/gh/default.nix
+++ b/pkgs/applications/version-management/gh/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gh";
-  version = "2.42.1";
+  version = "2.43.1";
 
   src = fetchFromGitHub {
     owner = "cli";
     repo = "cli";
     rev = "v${version}";
-    hash = "sha256-5kTBOWdL31UfFDp8XC+lc2vJrXZ0PBJafXyczMPn59o=";
+    hash = "sha256-FPKYp3tdYXncHjfo6E6tRnEG9AQ0RU6FaezwMlTOCtA=";
   };
 
-  vendorHash = "sha256-XBoC1sHfxInkamSHNm7Vb3AKCgIch6uYx0jJWqN7PN8=";
+  vendorHash = "sha256-r1zcwBz/mJOv1RU4Ilgg73yH37xu7a/BmqgAkiODq0I=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/version-management/git-cinnabar/default.nix b/pkgs/applications/version-management/git-cinnabar/default.nix
index ca6a0165f1d0..2d97b41cdd04 100644
--- a/pkgs/applications/version-management/git-cinnabar/default.nix
+++ b/pkgs/applications/version-management/git-cinnabar/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "git-cinnabar";
-  version = "0.6.2";
+  version = "0.6.3";
 
   src = fetchFromGitHub {
     owner = "glandium";
     repo = "git-cinnabar";
     rev = finalAttrs.version;
-    hash = "sha256-1Y4zd4rYNRatemDXRMkQQwBJdkfOGfDWk9QBvJOgi7s=";
+    hash = "sha256-RUrklp2hobHKnBZKVvxMGquNSZBG/rVWaD/m+7AWqHo=";
     fetchSubmodules = true;
   };
 
@@ -42,7 +42,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit (finalAttrs) src;
-    hash = "sha256-p85AS2DukUzEbW9UGYmiF3hpnZvPrZ2sRaeA9dU8j/8=";
+    hash = "sha256-fTwHwZsBvp2F4w5reF94imaXnsw7xfgJQlGRZ3ztnK8=";
   };
 
   ZSTD_SYS_USE_PKG_CONFIG = true;
diff --git a/pkgs/applications/version-management/git-cola/default.nix b/pkgs/applications/version-management/git-cola/default.nix
index e9db7812cca5..a8d8cb8b7983 100644
--- a/pkgs/applications/version-management/git-cola/default.nix
+++ b/pkgs/applications/version-management/git-cola/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "git-cola";
-  version = "4.4.1";
+  version = "4.5.0";
 
   src = fetchFromGitHub {
     owner = "git-cola";
     repo = "git-cola";
     rev = "v${version}";
-    hash = "sha256-PtV2mzxOfZ88THiFD4K+qtOi41GeLF1GcdiFFhUR8Ak=";
+    hash = "sha256-HORGtpiZGWpeRDhr4E9KW5LSAD6r74l7rl6RhhVtiJo=";
   };
 
   buildInputs = lib.optionals stdenv.isLinux [ qt5.qtwayland ];
diff --git a/pkgs/applications/version-management/git-mit/default.nix b/pkgs/applications/version-management/git-mit/default.nix
index 8f0fc7b65af5..d4dece40ebde 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.184";
+  version = "5.12.186";
 in
 rustPlatform.buildRustPackage {
   pname = "git-mit";
@@ -20,10 +20,10 @@ rustPlatform.buildRustPackage {
     owner = "PurpleBooth";
     repo = "git-mit";
     rev = "v${version}";
-    hash = "sha256-KFfRfLOl6So9AnmrLiiG3sUG2OHQegb8Nx/ndcO1IjE=";
+    hash = "sha256-895QAtKUzqiWffw5IgovXBiARncelrmz1FUEbeHYoW0=";
   };
 
-  cargoHash = "sha256-17Ojhu7xPZYdFeV/rCa/K9HLHD/vsm0FU6Ag9EPngcQ=";
+  cargoHash = "sha256-E3xwZ9oB7oe5gVLAasvo1MWPjDPLKZgSX98VZAq2O3k=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/applications/version-management/git-publish/default.nix b/pkgs/applications/version-management/git-publish/default.nix
index 94949396ee9f..d84c5f096b8c 100644
--- a/pkgs/applications/version-management/git-publish/default.nix
+++ b/pkgs/applications/version-management/git-publish/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, python, perl, fetchFromGitHub, installShellFiles }:
 stdenv.mkDerivation rec {
   pname = "git-publish";
-  version = "1.8.1";
+  version = "1.8.2";
 
   src = fetchFromGitHub {
     owner = "stefanha";
     repo = "git-publish";
     rev = "v${version}";
-    sha256 = "14rz5kli6sz171cvdc46z3z0nnpd57rliwr6nn6vjjc49yyfwgl4";
+    hash = "sha256-jjpbr+ZqG4U8/z0PurnXR+IUKQkG3QB8YqhDkH8uu2Y=";
   };
 
   nativeBuildInputs = [ perl installShellFiles ];
diff --git a/pkgs/applications/version-management/git-quick-stats/default.nix b/pkgs/applications/version-management/git-quick-stats/default.nix
index 7d629aa92a2b..b354933eb6e9 100644
--- a/pkgs/applications/version-management/git-quick-stats/default.nix
+++ b/pkgs/applications/version-management/git-quick-stats/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "git-quick-stats";
-  version = "2.5.3";
+  version = "2.5.4";
 
   src = fetchFromGitHub {
     repo = "git-quick-stats";
     owner = "arzzen";
     rev = version;
-    sha256 = "sha256-Fh8FSaclxOkTr49HixjwoM/367RjtdQ4dRyw87KylPs=";
+    sha256 = "sha256-dbi48rq3ijPa45xtTi6kAly/IwkX4aK1P9hmcPNQEqM=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/version-management/gitea/default.nix b/pkgs/applications/version-management/gitea/default.nix
index 124e3eff217a..09114d2275e7 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.3";
+  version = "1.21.5";
 
   # 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-tJC9p7++lb3lD0yYR4qAtFOTRBQK2SkNCD6Tk+g9M78=";
+    hash = "sha256-VnJF6CSssQYs8yIKmXvxYHh2CfLiJhuKtjRdqKIQGxw=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/version-management/gitkraken/default.nix b/pkgs/applications/version-management/gitkraken/default.nix
index 0e25f63765e1..538f0cc75c92 100644
--- a/pkgs/applications/version-management/gitkraken/default.nix
+++ b/pkgs/applications/version-management/gitkraken/default.nix
@@ -3,31 +3,32 @@
 , libX11, libXi, libxcb, libXext, libXcursor, glib, libXScrnSaver, libxkbfile, libXtst
 , nss, nspr, cups, fetchzip, expat, gdk-pixbuf, libXdamage, libXrandr, dbus
 , makeDesktopItem, openssl, wrapGAppsHook, at-spi2-atk, at-spi2-core, libuuid
-, e2fsprogs, krb5, libdrm, mesa, unzip, copyDesktopItems, libxshmfence, libxkbcommon
+, e2fsprogs, krb5, libdrm, mesa, unzip, copyDesktopItems, libxshmfence, libxkbcommon, git
+, libGL, zlib, cacert
 }:
 
 with lib;
 
 let
   pname = "gitkraken";
-  version = "9.10.0";
+  version = "9.11.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-JVeJY0VUNyIeR/IQcfoLBN0I1WQNFy7PpCjzk5bPv/Q=";
+      hash = "sha256-DTnVsVWOPAcG2O87dS6PwAB+VU0ijulELHe9CnOLYPU=";
     };
 
     x86_64-darwin = fetchzip {
       url = "https://release.axocdn.com/darwin/GitKraken-v${version}.zip";
-      hash = "sha256-npc+dwHH0tlVKkAZxmGwpoiHXeDn0VHkivqbwoJsI7M=";
+      hash = "sha256-JkmQYk+t4ACkK3V0IxrrIcheBWJEkxQzf9ZYRWs769c=";
     };
 
     aarch64-darwin = fetchzip {
       url = "https://release.axocdn.com/darwin-arm64/GitKraken-v${version}.zip";
-      hash = "sha256-fszsGdNKcVgKdv97gBBf+fSODzjKbOBB4MyCvWzm3CA=";
+      hash = "sha256-jWXvDSyM7A3+cer/yPvom9f0w2nGJmwOJ22qoQzRWGQ=";
     };
   };
 
@@ -91,12 +92,14 @@ let
       mesa
       libxshmfence
       libxkbcommon
+      libGL
+      zlib
     ];
 
     desktopItems = [ (makeDesktopItem {
-      name = pname;
-      exec = pname;
-      icon = pname;
+      name = "GitKraken";
+      exec = "gitkraken";
+      icon = "gitkraken";
       desktopName = "GitKraken";
       genericName = "Git Client";
       categories = [ "Development" ];
@@ -106,31 +109,48 @@ let
     nativeBuildInputs = [ copyDesktopItems makeWrapper wrapGAppsHook ];
     buildInputs = [ gtk3 gnome.adwaita-icon-theme ];
 
+    # avoid double-wrapping
+    dontWrapGApps = true;
+
     installPhase = ''
       runHook preInstall
 
       mkdir -p $out/share/${pname}/
       cp -R $src/* $out/share/${pname}
 
-      mkdir -p $out/bin
-      ln -s $out/share/${pname}/${pname} $out/bin/
-
       mkdir -p $out/share/pixmaps
-      cp ${pname}.png $out/share/pixmaps/${pname}.png
+      cp gitkraken.png $out/share/pixmaps/
 
       runHook postInstall
     '';
 
     postFixup = ''
       pushd $out/share/${pname}
-      for file in ${pname} chrome-sandbox chrome_crashpad_handler; do
+      for file in gitkraken chrome-sandbox chrome_crashpad_handler; do
         patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $file
       done
 
-      for file in $(find . -type f \( -name \*.node -o -name ${pname} -o -name \*.so\* \) ); do
+      for file in $(find . -type f \( -name \*.node -o -name gitkraken -o -name git -o -name git-\* -o -name scalar -o -name \*.so\* \) ); do
         patchelf --set-rpath ${libPath}:$out/share/${pname} $file || true
       done
       popd
+
+      # SSL and permissions fix for bundled nodegit
+      pushd $out/share/${pname}/resources/app.asar.unpacked/node_modules/@axosoft/nodegit/build/Release
+      mv nodegit-ubuntu-18.node nodegit-ubuntu-18-ssl-1.1.1.node
+      mv nodegit-ubuntu-18-ssl-static.node nodegit-ubuntu-18.node
+      chmod 755 nodegit-ubuntu-18.node
+      popd
+
+      # Devendor bundled git
+      rm -rf $out/share/${pname}/resources/app.asar.unpacked/git
+      ln -s ${git} $out/share/${pname}/resources/app.asar.unpacked/git
+
+      # GitKraken expects the CA bundle to be located in the bundled git directory. Since we replace it with
+      # the one from nixpkgs, which doesn't provide a CA bundle, we need to explicitly set its location at runtime
+      makeWrapper $out/share/${pname}/gitkraken $out/bin/gitkraken \
+        --set GIT_SSL_CAINFO "${cacert}/etc/ssl/certs/ca-bundle.crt" \
+        "''${gappsWrapperArgs[@]}"
     '';
   };
 
diff --git a/pkgs/applications/version-management/gitlab/data.json b/pkgs/applications/version-management/gitlab/data.json
index 461c83695d5c..dddcdf5812d4 100644
--- a/pkgs/applications/version-management/gitlab/data.json
+++ b/pkgs/applications/version-management/gitlab/data.json
@@ -1,15 +1,15 @@
 {
-  "version": "16.7.2",
-  "repo_hash": "sha256-YIwZkmTVmxXlZ07lCUco9VEbylMvE92LQdFOeZXWB2M=",
-  "yarn_hash": "1qxz2p969qg7kzyvhwxws5zwdw986gdq9gxllzi58c5c56jz49zf",
+  "version": "16.8.1",
+  "repo_hash": "sha256-95YdEAUYoFDFX4COI6NnI6tDB+NLnihlJdUDM8NixXA=",
+  "yarn_hash": "1yhl4l2dln9ck4nbjjrlyjx17nxk4h12gb5hqjh4dq3rz3az3jvx",
   "owner": "gitlab-org",
   "repo": "gitlab",
-  "rev": "v16.7.2-ee",
+  "rev": "v16.8.1-ee",
   "passthru": {
-    "GITALY_SERVER_VERSION": "16.7.2",
-    "GITLAB_PAGES_VERSION": "16.7.2",
-    "GITLAB_SHELL_VERSION": "14.32.0",
-    "GITLAB_ELASTICSEARCH_INDEXER_VERSION": "4.5.0",
-    "GITLAB_WORKHORSE_VERSION": "16.7.2"
+    "GITALY_SERVER_VERSION": "16.8.1",
+    "GITLAB_PAGES_VERSION": "16.8.1",
+    "GITLAB_SHELL_VERSION": "14.33.0",
+    "GITLAB_ELASTICSEARCH_INDEXER_VERSION": "4.6.0",
+    "GITLAB_WORKHORSE_VERSION": "16.8.1"
   }
 }
diff --git a/pkgs/applications/version-management/gitlab/default.nix b/pkgs/applications/version-management/gitlab/default.nix
index dbc86c730eea..6c635aafe03e 100644
--- a/pkgs/applications/version-management/gitlab/default.nix
+++ b/pkgs/applications/version-management/gitlab/default.nix
@@ -1,7 +1,9 @@
 { stdenv, lib, fetchurl, fetchpatch, fetchFromGitLab, bundlerEnv
 , ruby_3_1, tzdata, git, nettools, nixosTests, nodejs, openssl
+, defaultGemConfig, buildRubyGem
 , gitlabEnterprise ? false, callPackage, yarn
 , prefetch-yarn-deps, replace, file, cacert, fetchYarnDeps, makeWrapper, pkg-config
+, cargo, rustc, rustPlatform
 }:
 
 let
@@ -19,20 +21,59 @@ let
     name = "gitlab-env-${version}";
     ruby = ruby_3_1;
     gemdir = ./rubyEnv;
-    gemset =
-      let x = import (gemdir + "/gemset.nix") src;
-      in x // {
-        gpgme = x.gpgme // {
+    gemset = import (gemdir + "/gemset.nix") src;
+    gemConfig = defaultGemConfig // {
+        gpgme = attrs: {
           nativeBuildInputs = [ pkg-config ];
         };
         # the openssl needs the openssl include files
-        openssl = x.openssl // {
+        openssl = attrs: {
           buildInputs = [ openssl ];
         };
-        ruby-magic = x.ruby-magic // {
+        ruby-magic = attrs: {
           buildInputs = [ file ];
           buildFlags = [ "--enable-system-libraries" ];
         };
+        gitlab-glfm-markdown = attrs: {
+          cargoDeps = rustPlatform.fetchCargoTarball {
+            src = stdenv.mkDerivation {
+              inherit (buildRubyGem { inherit (attrs) gemName version source; })
+                name
+                src
+                unpackPhase
+                nativeBuildInputs
+              ;
+              dontBuilt = true;
+              installPhase = ''
+                cp -R ext/glfm_markdown $out
+                cp Cargo.lock $out
+              '';
+            };
+            hash = "sha256-I5w/roDgnRe5eyXo0wiRcoWPpXEtpL3kOl9eDg99t/w=";
+          };
+
+          dontBuild = false;
+
+          nativeBuildInputs = [
+            cargo
+            rustc
+            rustPlatform.cargoSetupHook
+            rustPlatform.bindgenHook
+          ];
+
+          disallowedReferences = [
+            rustc.unwrapped
+          ];
+
+          preInstall = ''
+            export CARGO_HOME="$PWD/../.cargo/"
+          '';
+
+          postInstall = ''
+            mv -v $GEM_HOME/gems/${attrs.gemName}-${attrs.version}/lib/{glfm_markdown/glfm_markdown.so,}
+            find $out -type f -name .rustc_info.json -delete
+          '';
+        };
       };
     groups = [
       "default" "unicorn" "ed25519" "metrics" "development" "puma" "test" "kerberos"
diff --git a/pkgs/applications/version-management/gitlab/gitaly/default.nix b/pkgs/applications/version-management/gitlab/gitaly/default.nix
index c2f295b3b589..e6d9ce605b4c 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/default.nix
@@ -6,7 +6,7 @@
 }:
 
 let
-  version = "16.7.2";
+  version = "16.8.1";
   package_version = "v${lib.versions.major version}";
   gitaly_package = "gitlab.com/gitlab-org/gitaly/${package_version}";
 
@@ -18,10 +18,10 @@ let
       owner = "gitlab-org";
       repo = "gitaly";
       rev = "v${version}";
-      hash = "sha256-3R7x8eaUJqJ1mKlQ4kYThKyaSfSaow7lGx5EfNo+GNY=";
+      hash = "sha256-yR8O9F6THymKKHbnfh67NhEcNNBz7XHja/fpeTmVoe0=";
     };
 
-    vendorHash = "sha256-btWHZMy1aBSsUVs30IqrdBCO79XQvTMXxkxYURF2Nqs=";
+    vendorHash = "sha256-AkL/BbCrqgXyvfiMxzMIXeZwh5aFL2a2+myk/4YXMNc=";
 
     ldflags = [ "-X ${gitaly_package}/internal/version.version=${version}" "-X ${gitaly_package}/internal/version.moduleVersion=${version}" ];
 
diff --git a/pkgs/applications/version-management/gitlab/gitlab-elasticsearch-indexer/default.nix b/pkgs/applications/version-management/gitlab/gitlab-elasticsearch-indexer/default.nix
index d6a35bc96cad..da6dbda266c6 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-elasticsearch-indexer/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-elasticsearch-indexer/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "gitlab-elasticsearch-indexer";
-  version = "4.5.0";
+  version = "4.6.0";
 
   # nixpkgs-update: no auto update
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-elasticsearch-indexer";
     rev = "v${version}";
-    sha256 = "sha256-6Y2ARnFjbz6nFhWGRhzgAY8s0aX24oLMY1016oRD9oo=";
+    sha256 = "sha256-HlT3Uj/DWbyK4xGq7SjKjZ90sww6oMiMDo05mtv6rTA=";
   };
 
-  vendorHash = "sha256-jpjfQl2z5yPnlGEYW6KKBfd4quchT+bU/RU6vwaB4gQ=";
+  vendorHash = "sha256-YUH/agSy/shHmHRXlfDtgumbka6BjX5NTxgvlNJS4hQ=";
 
   buildInputs = [ icu ];
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/version-management/gitlab/gitlab-pages/default.nix b/pkgs/applications/version-management/gitlab/gitlab-pages/default.nix
index c5a4065d4ccb..202dd29c4fab 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-pages/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-pages/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "gitlab-pages";
-  version = "16.7.2";
+  version = "16.8.1";
 
   # nixpkgs-update: no auto update
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-pages";
     rev = "v${version}";
-    hash = "sha256-rUSZDsQt6faNES3ibzo7fJqpzEmXRbbTXOkhOn7jggA=";
+    hash = "sha256-Wj15GHm+5Xd5wq4C3dH+i94jh7pecHM6KCDugLm5YAA=";
   };
 
-  vendorHash = "sha256-NMky8v0YmN2pSeKJ7G0+DWAZvUx2JlwFbqPHvciYroM=";
+  vendorHash = "sha256-9yogTSdEij/YwWGm3gz7jMn2AZcI+o7aEnjBvJ8E3vA=";
   subPackages = [ "." ];
 
   meta = with lib; {
diff --git a/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix b/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
index 568ba88deeca..ab79f9fac00a 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
@@ -2,21 +2,21 @@
 
 buildGoModule rec {
   pname = "gitlab-shell";
-  version = "14.32.0";
+  version = "14.33.0";
 
   # nixpkgs-update: no auto update
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-shell";
     rev = "v${version}";
-    sha256 = "sha256-fZttdcIdPeiy2ncDyseR1BnR6GBoSRsFkn7Mxc+mTA8=";
+    sha256 = "sha256-0C3ODs2NElJQ+A6x9lZxSParTZc3q4YqWsw7DxwhODo=";
   };
 
   buildInputs = [ ruby libkrb5 ];
 
   patches = [ ./remove-hardcoded-locations.patch ];
 
-  vendorHash = "sha256-tdYBEV/dKnIJ+OWTF3/5bIbWVdE/ulMrMD/LMzj1QZE=";
+  vendorHash = "sha256-sTAd/AbPx5WzBCzTDLvo/bDZcmz/xVhIhz9nFGBEYx4=";
 
   postInstall = ''
     cp -r "$NIX_BUILD_TOP/source"/bin/* $out/bin
diff --git a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
index b3dec6385c28..58361fbfb631 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
@@ -5,7 +5,7 @@ in
 buildGoModule rec {
   pname = "gitlab-workhorse";
 
-  version = "16.7.2";
+  version = "16.8.1";
 
   # nixpkgs-update: no auto update
   src = fetchFromGitLab {
@@ -17,7 +17,7 @@ buildGoModule rec {
 
   sourceRoot = "${src.name}/workhorse";
 
-  vendorHash = "sha256-1oeToeqGXSj5CdL5dgWsnN/VpwALlus93P0Ed7G8TIw=";
+  vendorHash = "sha256-OcdfanSlH1ZUmKlhzMOD3oNySx1o92Is7EDf1Z3953A=";
   buildInputs = [ git ];
   ldflags = [ "-X main.Version=${version}" ];
   doCheck = false;
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
index 0ddaf9afb3a3..161dc46f7844 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
@@ -28,7 +28,7 @@ gem 'rails', '~> 7.0.8' # rubocop:todo Gemfile/MissingFeatureCategory
 
 gem 'activerecord-gitlab', path: 'gems/activerecord-gitlab' # rubocop:todo Gemfile/MissingFeatureCategory
 
-gem 'bootsnap', '~> 1.17.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'bootsnap', '~> 1.17.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory
 
 gem 'openssl', '~> 3.0' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'ipaddr', '~> 1.2.5' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -133,11 +133,11 @@ gem 'gitlab_omniauth-ldap', '~> 2.2.0', require: 'omniauth-ldap' # rubocop:todo
 gem 'net-ldap', '~> 0.17.1' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # API
-gem 'grape', '~> 1.7.1', feature_category: :api
+gem 'grape', '~> 2.0.0', feature_category: :api
 gem 'grape-entity', '~> 0.10.0', feature_category: :api
-gem 'grape-swagger', '~> 1.6.1', group: [:development, :test], feature_category: :api
+gem 'grape-swagger', '~> 2.0.1', group: [:development, :test], feature_category: :api
 gem 'grape-swagger-entity', '~> 0.5.1', group: [:development, :test], feature_category: :api
-gem 'grape-path-helpers', '~> 1.7.1', feature_category: :api
+gem 'grape-path-helpers', '~> 2.0.0', feature_category: :api
 gem 'rack-cors', '~> 2.0.1', require: 'rack/cors' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # GraphQL API
@@ -203,17 +203,17 @@ gem 'seed-fu', '~> 2.3.7' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'elasticsearch-model', '~> 7.2' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'elasticsearch-rails', '~> 7.2', require: 'elasticsearch/rails/instrumentation' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'elasticsearch-api',   '7.13.3' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'aws-sdk-core', '~> 3.190.0' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'aws-sdk-core', '~> 3.190.2' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'aws-sdk-cloudformation', '~> 1' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'aws-sdk-s3', '~> 1.141.0' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'aws-sdk-s3', '~> 1.142.0' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'faraday_middleware-aws-sigv4', '~>0.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'typhoeus', '~> 1.4.0' # Used with Elasticsearch to support http keep-alive connections # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Markdown and HTML processing
-gem 'html-pipeline', '~> 2.14.3' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'deckar01-task_list', '2.3.3' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'html-pipeline', '~> 2.14.3', feature_category: :team_planning
+gem 'deckar01-task_list', '2.3.3', feature_category: :team_planning
 gem 'gitlab-markup', '~> 1.9.0', require: 'github/markup' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'commonmarker', '~> 0.23.10' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'commonmarker', '~> 0.23.10', feature_category: :team_planning
 gem 'kramdown', '~> 2.3.1' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'RedCloth', '~> 4.3.3' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'org-ruby', '~> 0.9.12' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -225,7 +225,8 @@ gem 'asciidoctor-plantuml', '~> 0.0.16' # rubocop:todo Gemfile/MissingFeatureCat
 gem 'asciidoctor-kroki', '~> 0.8.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'rouge', '~> 4.2.0' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'truncato', '~> 0.7.12' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'nokogiri', '~> 1.15', '>= 1.15.5' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'nokogiri', '~> 1.16' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'gitlab-glfm-markdown', '~> 0.0.11', feature_category: :team_planning
 
 # Calendar rendering
 gem 'icalendar' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -240,7 +241,7 @@ gem 'rack', '~> 2.2.8' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'rack-timeout', '~> 0.6.3', require: 'rack/timeout/base' # rubocop:todo Gemfile/MissingFeatureCategory
 
 group :puma do
-  gem 'puma', '~> 6.4', require: false # rubocop:todo Gemfile/MissingFeatureCategory
+  gem 'puma', '= 6.4.0', require: false, feature_category: :shared
   gem 'sd_notify', '~> 0.1.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory
 end
 
@@ -251,7 +252,7 @@ gem 'state_machines-activerecord', '~> 0.8.0' # rubocop:todo Gemfile/MissingFeat
 gem 'acts-as-taggable-on', '~> 10.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Background jobs
-gem 'sidekiq', '~> 6.5.10' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'sidekiq', '~> 7.1.6' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'sidekiq-cron', '~> 1.12.0', feature_category: :shared
 gem 'gitlab-sidekiq-fetcher', path: 'vendor/gems/sidekiq-reliable-fetch', require: 'sidekiq-reliable-fetch' # rubocop:todo Gemfile/MissingFeatureCategory
 
@@ -268,7 +269,7 @@ gem 'rainbow', '~> 3.0' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'ruby-progressbar', '~> 1.10' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Linear-time regex library for untrusted regular expressions
-gem 're2', '2.5.0' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 're2', '2.6.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Misc
 
@@ -288,7 +289,7 @@ gem 'redis-namespace', '~> 1.10.0' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'connection_pool', '~> 2.4' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Redis session store
-gem 'redis-actionpack', '~> 5.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'redis-actionpack', '~> 5.4.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Discord integration
 gem 'discordrb-webhooks', '~> 3.4', require: false, feature_category: :integrations
@@ -366,7 +367,7 @@ gem 'gitlab-http', path: 'gems/gitlab-http' # rubocop:todo Gemfile/MissingFeatur
 
 gem 'premailer-rails', '~> 1.10.3' # rubocop:todo Gemfile/MissingFeatureCategory
 
-gem 'gitlab-labkit', '~> 0.34.0' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'gitlab-labkit', '~> 0.35.0' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'thrift', '>= 0.16.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # I18n
@@ -387,7 +388,7 @@ gem 'snowplow-tracker', '~> 0.8.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Metrics
 gem 'webrick', '~> 1.8.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'prometheus-client-mmap', '~> 1.0', '>= 1.0.2', require: 'prometheus/client' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'prometheus-client-mmap', '~> 1.1', require: 'prometheus/client' # rubocop:todo Gemfile/MissingFeatureCategory
 
 gem 'warning', '~> 1.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
@@ -406,7 +407,7 @@ group :development do
 
   gem 'listen', '~> 3.7' # rubocop:todo Gemfile/MissingFeatureCategory
 
-  gem 'ruby-lsp', "~> 0.13.1", require: false, feature_category: :tooling
+  gem 'ruby-lsp', "~> 0.13.2", require: false, feature_category: :tooling
 
   gem 'ruby-lsp-rails', "~> 0.2.8", feature_category: :tooling
 
@@ -416,7 +417,7 @@ end
 group :development, :test do
   gem 'deprecation_toolkit', '~> 1.5.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'bullet', '~> 7.1.2' # rubocop:todo Gemfile/MissingFeatureCategory
-  gem 'parser', '~> 3.2', '>= 3.2.2.4' # rubocop:todo Gemfile/MissingFeatureCategory
+  gem 'parser', '~> 3.3', '>= 3.3.0.2' # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'pry-byebug' # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'pry-rails', '~> 0.3.9' # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'pry-shell', '~> 0.6.4' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -424,7 +425,7 @@ group :development, :test do
   gem 'awesome_print', require: false # rubocop:todo Gemfile/MissingFeatureCategory
 
   gem 'database_cleaner-active_record', '~> 2.1.0', feature_category: :database
-  gem 'factory_bot_rails', '~> 6.2.0' # rubocop:todo Gemfile/MissingFeatureCategory
+  gem 'factory_bot_rails', '~> 6.4.3' # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'rspec-rails', '~> 6.1.0', feature_category: :shared
 
   # Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826)
@@ -435,7 +436,7 @@ group :development, :test do
 
   gem 'gitlab-styles', '~> 11.0.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory
 
-  gem 'haml_lint', '~> 0.52', require: false # rubocop:todo Gemfile/MissingFeatureCategory
+  gem 'haml_lint', '~> 0.53', require: false # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'bundler-audit', '~> 0.9.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory
 
   # Benchmarking & profiling
@@ -457,7 +458,7 @@ group :development, :test do
 
   gem 'sigdump', '~> 0.2.4', require: 'sigdump/setup' # rubocop:todo Gemfile/MissingFeatureCategory
 
-  gem 'pact', '~> 1.63' # rubocop:todo Gemfile/MissingFeatureCategory
+  gem 'pact', '~> 1.64' # rubocop:todo Gemfile/MissingFeatureCategory
 
   # For now we only use vite in development / test, and not for production builds
   # See: https://gitlab.com/gitlab-org/frontend/rfcs/-/issues/106
@@ -472,7 +473,7 @@ group :development, :test, :danger do
 end
 
 group :development, :test, :coverage do
-  gem 'simplecov', '~> 0.21', require: false, feature_category: :tooling
+  gem 'simplecov', '~> 0.22', require: false, feature_category: :tooling
   gem 'simplecov-lcov', '~> 0.8.0', require: false, feature_category: :tooling
   gem 'simplecov-cobertura', '~> 2.1.0', require: false, feature_category: :tooling
   gem 'undercover', '~> 0.4.4', require: false, feature_category: :tooling
@@ -511,12 +512,12 @@ group :test do
   gem 'test-prof', '~> 1.3.1' # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'rspec_junit_formatter' # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'guard-rspec' # rubocop:todo Gemfile/MissingFeatureCategory
-  gem 'axe-core-rspec' # rubocop:todo Gemfile/MissingFeatureCategory
+  gem 'axe-core-rspec', '~> 4.8.0', feature_category: :tooling
 
   # Moved in `test` because https://gitlab.com/gitlab-org/gitlab/-/issues/217527
   gem 'derailed_benchmarks', require: false # rubocop:todo Gemfile/MissingFeatureCategory
 
-  gem 'gitlab_quality-test_tooling', '~> 1.9.0', require: false, feature_category: :tooling
+  gem 'gitlab_quality-test_tooling', '~> 1.11.0', require: false, feature_category: :tooling
 end
 
 gem 'octokit', '~> 6.0' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -558,7 +559,7 @@ gem 'kas-grpc', '~> 0.3.0', feature_category: :deployment_management
 
 gem 'grpc', '~> 1.58.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
-gem 'google-protobuf', '~> 3.25', '>= 3.25.1' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'google-protobuf', '~> 3.25', '>= 3.25.2' # rubocop:todo Gemfile/MissingFeatureCategory
 
 gem 'toml-rb', '~> 2.2.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
index e106367ae951..adbd0b47167f 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
@@ -33,6 +33,7 @@ PATH
   remote: gems/gitlab-housekeeper
   specs:
     gitlab-housekeeper (0.1.0)
+      activesupport
       httparty
       rubocop
 
@@ -44,7 +45,6 @@ PATH
       concurrent-ruby (~> 1.2)
       httparty (~> 0.21.0)
       ipaddress (~> 0.8.3)
-      nokogiri (~> 1.15.4)
       railties (~> 7)
 
 PATH
@@ -66,6 +66,7 @@ PATH
   remote: gems/gitlab-safe_request_store
   specs:
     gitlab-safe_request_store (0.1.0)
+      rack (~> 2.2.8)
       request_store
 
 PATH
@@ -79,6 +80,7 @@ PATH
   remote: gems/gitlab-secret_detection
   specs:
     gitlab-secret_detection (0.1.0)
+      parallel (~> 1.22)
       re2 (~> 2.4)
       toml-rb (~> 2.2)
 
@@ -89,7 +91,6 @@ PATH
       actionview (>= 6.1.7.2)
       activesupport (>= 6.1.7.2)
       addressable (~> 2.8)
-      nokogiri (~> 1.15.2)
       rake (~> 13.0)
 
 PATH
@@ -179,9 +180,9 @@ PATH
 PATH
   remote: vendor/gems/sidekiq-reliable-fetch
   specs:
-    gitlab-sidekiq-fetcher (0.10.0)
+    gitlab-sidekiq-fetcher (0.11.0)
       json (>= 2.5)
-      sidekiq (~> 6.1)
+      sidekiq (~> 7.0)
 
 GEM
   remote: https://rubygems.org/
@@ -296,28 +297,28 @@ GEM
     awesome_print (1.9.2)
     awrence (1.2.1)
     aws-eventstream (1.3.0)
-    aws-partitions (1.761.0)
+    aws-partitions (1.877.0)
     aws-sdk-cloudformation (1.41.0)
       aws-sdk-core (~> 3, >= 3.99.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-core (3.190.0)
+    aws-sdk-core (3.190.2)
       aws-eventstream (~> 1, >= 1.3.0)
       aws-partitions (~> 1, >= 1.651.0)
       aws-sigv4 (~> 1.8)
       jmespath (~> 1, >= 1.6.1)
-    aws-sdk-kms (1.64.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-kms (1.76.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.141.0)
+    aws-sdk-s3 (1.142.0)
       aws-sdk-core (~> 3, >= 3.189.0)
       aws-sdk-kms (~> 1)
       aws-sigv4 (~> 1.8)
     aws-sigv4 (1.8.0)
       aws-eventstream (~> 1, >= 1.0.2)
-    axe-core-api (4.6.0)
+    axe-core-api (4.8.0)
       dumb_delegator
       virtus
-    axe-core-rspec (4.6.0)
+    axe-core-rspec (4.8.0)
       axe-core-api
       dumb_delegator
       virtus
@@ -352,7 +353,7 @@ GEM
     bindata (2.4.11)
     binding_of_caller (1.0.0)
       debug_inspector (>= 0.0.1)
-    bootsnap (1.17.0)
+    bootsnap (1.17.1)
       msgpack (~> 1.2)
     browser (5.3.1)
     builder (3.2.4)
@@ -500,7 +501,7 @@ GEM
       jwt (>= 2.5)
     dotenv (2.7.6)
     dry-cli (1.0.0)
-    dry-core (1.0.0)
+    dry-core (1.0.1)
       concurrent-ruby (~> 1.0)
       zeitwerk (~> 2.6)
     dry-inflector (1.0.0)
@@ -552,10 +553,10 @@ GEM
     expression_parser (0.9.0)
     extended-markdown-filter (0.7.0)
       html-pipeline (~> 2.9)
-    factory_bot (6.2.0)
+    factory_bot (6.4.5)
       activesupport (>= 5.0.0)
-    factory_bot_rails (6.2.0)
-      factory_bot (~> 6.2.0)
+    factory_bot_rails (6.4.3)
+      factory_bot (~> 6.4)
       railties (>= 5.0.0)
     faraday (1.10.0)
       faraday-em_http (~> 1.0)
@@ -596,7 +597,6 @@ GEM
       rake
     ffi-yajl (2.6.0)
       libyajl2 (>= 1.2)
-    filelock (1.1.1)
     find_a_port (1.0.1)
     flipper (0.26.2)
       concurrent-ruby (< 2)
@@ -693,13 +693,15 @@ GEM
       fog-core (= 2.1.0)
       fog-json (~> 1.2.0)
       mime-types
-    gitlab-labkit (0.34.0)
+    gitlab-glfm-markdown (0.0.11)
+      rb_sys (~> 0.9.86)
+    gitlab-labkit (0.35.0)
       actionpack (>= 5.0.0, < 8.0.0)
       activesupport (>= 5.0.0, < 8.0.0)
       grpc (>= 1.37)
       jaeger-client (~> 1.1.0)
       opentracing (~> 0.4)
-      pg_query (~> 4.2.3)
+      pg_query (>= 4.2.3, < 6.0)
       redis (> 3.0.0, < 6.0.0)
     gitlab-license (2.3.0)
     gitlab-mail_room (0.0.24)
@@ -727,7 +729,7 @@ GEM
       omniauth (>= 1.3, < 3)
       pyu-ruby-sasl (>= 0.0.3.3, < 0.1)
       rubyntlm (~> 0.5)
-    gitlab_quality-test_tooling (1.9.0)
+    gitlab_quality-test_tooling (1.11.0)
       activesupport (>= 6.1, < 7.2)
       amatch (~> 0.4.1)
       gitlab (~> 4.19)
@@ -798,7 +800,7 @@ GEM
       google-cloud-core (~> 1.6)
       googleauth (>= 0.16.2, < 2.a)
       mini_mime (~> 1.0)
-    google-protobuf (3.25.1)
+    google-protobuf (3.25.2)
     googleapis-common-protos (1.4.0)
       google-protobuf (~> 3.14)
       googleapis-common-protos-types (~> 1.2)
@@ -814,23 +816,24 @@ GEM
       signet (>= 0.16, < 2.a)
     gpgme (2.0.23)
       mini_portile2 (~> 2.7)
-    grape (1.7.1)
-      activesupport
+    grape (2.0.0)
+      activesupport (>= 5)
       builder
       dry-types (>= 1.1)
       mustermann-grape (~> 1.0.0)
-      rack (>= 1.3.0, < 3)
+      rack (>= 1.3.0)
       rack-accept
     grape-entity (0.10.0)
       activesupport (>= 3.0.0)
       multi_json (>= 1.3.2)
-    grape-path-helpers (1.7.1)
+    grape-path-helpers (2.0.1)
       activesupport
-      grape (~> 1.3)
+      grape (~> 2.0)
       rake (> 12)
       ruby2_keywords (~> 0.0.2)
-    grape-swagger (1.6.1)
-      grape (~> 1.3)
+    grape-swagger (2.0.1)
+      grape (>= 1.7, < 3.0)
+      rack-test (~> 2)
     grape-swagger-entity (0.5.1)
       grape-entity (>= 0.6.0)
       grape-swagger (>= 1.2.0)
@@ -879,8 +882,8 @@ GEM
     haml (5.2.2)
       temple (>= 0.8.0)
       tilt
-    haml_lint (0.52.0)
-      haml (>= 4.0)
+    haml_lint (0.53.0)
+      haml (>= 5.0)
       parallel (~> 1.10)
       rainbow
       rubocop (>= 1.0)
@@ -1104,9 +1107,9 @@ GEM
       net-protocol
     net-ssh (7.2.0)
     netrc (0.11.0)
-    nio4r (2.5.8)
+    nio4r (2.7.0)
     no_proxy_fix (0.1.2)
-    nokogiri (1.15.5)
+    nokogiri (1.16.0)
       mini_portile2 (~> 2.8.2)
       racc (~> 1.4)
     notiffany (0.1.3)
@@ -1206,31 +1209,29 @@ GEM
       rubypants (~> 0.2)
     orm_adapter (0.5.0)
     os (1.1.4)
-    pact (1.63.0)
+    pact (1.64.0)
       pact-mock_service (~> 3.0, >= 3.3.1)
       pact-support (~> 1.16, >= 1.16.9)
       rack-test (>= 0.6.3, < 3.0.0)
       rspec (~> 3.0)
-      term-ansicolor (~> 1.0)
+      term-ansicolor (~> 1.7)
       thor (>= 0.20, < 2.0)
-      webrick (~> 1.3)
-    pact-mock_service (3.10.0)
-      filelock (~> 1.1)
+      webrick (~> 1.8)
+    pact-mock_service (3.11.2)
       find_a_port (~> 1.0.1)
       json
       pact-support (~> 1.16, >= 1.16.4)
       rack (~> 2.0)
       rspec (>= 2.14)
-      term-ansicolor (~> 1.0)
       thor (>= 0.19, < 2.0)
-      webrick (~> 1.3)
-    pact-support (1.18.1)
+      webrick (~> 1.8)
+    pact-support (1.20.0)
       awesome_print (~> 1.9)
-      diff-lcs (~> 1.4)
+      diff-lcs (~> 1.5)
       expgen (~> 0.1)
       rainbow (~> 3.1.1)
     parallel (1.22.1)
-    parser (3.2.2.4)
+    parser (3.3.0.2)
       ast (~> 2.4.1)
       racc
     parslet (1.8.2)
@@ -1253,13 +1254,13 @@ GEM
     prime (0.1.2)
       forwardable
       singleton
-    prism (0.18.0)
+    prism (0.19.0)
     proc_to_ast (0.1.0)
       coderay
       parser
       unparser
-    prometheus-client-mmap (1.0.2)
-      rb_sys (~> 0.9)
+    prometheus-client-mmap (1.1.0)
+      rb_sys (~> 0.9.86)
     protocol (2.0.0)
       ruby_parser (~> 3.0)
     pry (0.14.2)
@@ -1297,6 +1298,8 @@ GEM
       rack
     rack-proxy (0.7.7)
       rack
+    rack-session (1.0.2)
+      rack (< 3)
     rack-test (2.1.0)
       rack (>= 1.3)
     rack-timeout (0.6.3)
@@ -1321,8 +1324,9 @@ GEM
     rails-dom-testing (2.0.3)
       activesupport (>= 4.2.0)
       nokogiri (>= 1.6)
-    rails-html-sanitizer (1.5.0)
-      loofah (~> 2.19, >= 2.19.1)
+    rails-html-sanitizer (1.6.0)
+      loofah (~> 2.21)
+      nokogiri (~> 1.14)
     rails-i18n (7.0.3)
       i18n (>= 0.7, < 2)
       railties (>= 6.0.0, < 8)
@@ -1338,31 +1342,33 @@ GEM
     rb-fsevent (0.11.2)
     rb-inotify (0.10.1)
       ffi (~> 1.0)
-    rb_sys (0.9.83)
+    rb_sys (0.9.86)
     rbtrace (0.4.14)
       ffi (>= 1.0.6)
       msgpack (>= 0.4.3)
       optimist (>= 3.0.0)
     rbtree (0.4.6)
     rchardet (1.8.0)
-    re2 (2.5.0)
+    re2 (2.6.0)
       mini_portile2 (~> 2.8.5)
     recaptcha (5.12.3)
       json
     recursive-open-struct (1.1.3)
     redcarpet (3.6.0)
     redis (4.8.0)
-    redis-actionpack (5.3.0)
+    redis-actionpack (5.4.0)
       actionpack (>= 5, < 8)
-      redis-rack (>= 2.1.0, < 3)
+      redis-rack (>= 2.1.0, < 4)
       redis-store (>= 1.1.0, < 2)
+    redis-client (0.19.0)
+      connection_pool
     redis-namespace (1.10.0)
       redis (>= 4)
-    redis-rack (2.1.4)
-      rack (>= 2.0.8, < 3)
+    redis-rack (3.0.0)
+      rack-session (>= 0.2.0)
       redis-store (>= 1.2, < 2)
-    redis-store (1.9.1)
-      redis (>= 4, < 5)
+    redis-store (1.10.0)
+      redis (>= 4, < 6)
     regexp_parser (2.6.0)
     regexp_property_values (1.0.0)
     representable (3.2.0)
@@ -1469,9 +1475,9 @@ GEM
     ruby-fogbugz (0.3.0)
       crack (~> 0.4)
       multipart-post (~> 2.0)
-    ruby-lsp (0.13.1)
+    ruby-lsp (0.13.2)
       language_server-protocol (~> 3.17.0)
-      prism (>= 0.18.0, < 0.19)
+      prism (>= 0.19.0, < 0.20)
       sorbet-runtime (>= 0.5.5685)
     ruby-lsp-rails (0.2.8)
       actionpack (>= 6.0)
@@ -1542,10 +1548,11 @@ GEM
     shellany (0.0.1)
     shoulda-matchers (5.1.0)
       activesupport (>= 5.2.0)
-    sidekiq (6.5.12)
-      connection_pool (>= 2.2.5, < 3)
-      rack (~> 2.0)
-      redis (>= 4.5.0, < 5)
+    sidekiq (7.1.6)
+      concurrent-ruby (< 2)
+      connection_pool (>= 2.3.0)
+      rack (>= 2.2.4)
+      redis-client (>= 0.14.0)
     sidekiq-cron (1.12.0)
       fugit (~> 1.8)
       globalid (>= 1.0.1)
@@ -1713,7 +1720,7 @@ GEM
     unparser (0.6.7)
       diff-lcs (~> 1.3)
       parser (>= 3.2.0)
-    uri (0.12.2)
+    uri (0.13.0)
     uri_template (0.7.0)
     valid_email (0.1.3)
       activemodel
@@ -1808,9 +1815,9 @@ DEPENDENCIES
   autoprefixer-rails (= 10.2.5.1)
   awesome_print
   aws-sdk-cloudformation (~> 1)
-  aws-sdk-core (~> 3.190.0)
-  aws-sdk-s3 (~> 1.141.0)
-  axe-core-rspec
+  aws-sdk-core (~> 3.190.2)
+  aws-sdk-s3 (~> 1.142.0)
+  axe-core-rspec (~> 4.8.0)
   babosa (~> 2.0)
   base32 (~> 0.3.0)
   batch-loader (~> 2.0.1)
@@ -1818,7 +1825,7 @@ DEPENDENCIES
   benchmark-ips (~> 2.11.0)
   benchmark-memory (~> 0.1)
   better_errors (~> 2.10.1)
-  bootsnap (~> 1.17.0)
+  bootsnap (~> 1.17.1)
   browser (~> 5.3.1)
   bullet (~> 7.1.2)
   bundler-audit (~> 0.9.1)
@@ -1861,7 +1868,7 @@ DEPENDENCIES
   email_reply_trimmer (~> 0.1)
   email_spec (~> 2.2.0)
   error_tracking_open_api!
-  factory_bot_rails (~> 6.2.0)
+  factory_bot_rails (~> 6.4.3)
   faraday (~> 1.0)
   faraday_middleware-aws-sigv4 (~> 0.3.0)
   fast_blank (~> 1.0.1)
@@ -1884,9 +1891,10 @@ DEPENDENCIES
   gitlab-dangerfiles (~> 4.6.0)
   gitlab-experiment (~> 0.9.1)
   gitlab-fog-azure-rm (~> 1.8.0)
+  gitlab-glfm-markdown (~> 0.0.11)
   gitlab-housekeeper!
   gitlab-http!
-  gitlab-labkit (~> 0.34.0)
+  gitlab-labkit (~> 0.35.0)
   gitlab-license (~> 2.3)
   gitlab-mail_room (~> 0.0.24)
   gitlab-markup (~> 1.9.0)
@@ -1902,7 +1910,7 @@ DEPENDENCIES
   gitlab-utils!
   gitlab_chronic_duration (~> 0.12)
   gitlab_omniauth-ldap (~> 2.2.0)
-  gitlab_quality-test_tooling (~> 1.9.0)
+  gitlab_quality-test_tooling (~> 1.11.0)
   gon (~> 6.4.0)
   google-apis-androidpublisher_v3 (~> 0.34.0)
   google-apis-cloudbilling_v1 (~> 0.21.0)
@@ -1916,12 +1924,12 @@ DEPENDENCIES
   google-apis-sqladmin_v1beta4 (~> 0.41.0)
   google-apis-storage_v1 (~> 0.29)
   google-cloud-storage (~> 1.45.0)
-  google-protobuf (~> 3.25, >= 3.25.1)
+  google-protobuf (~> 3.25, >= 3.25.2)
   gpgme (~> 2.0.23)
-  grape (~> 1.7.1)
+  grape (~> 2.0.0)
   grape-entity (~> 0.10.0)
-  grape-path-helpers (~> 1.7.1)
-  grape-swagger (~> 1.6.1)
+  grape-path-helpers (~> 2.0.0)
+  grape-swagger (~> 2.0.1)
   grape-swagger-entity (~> 0.5.1)
   grape_logging (~> 1.8)
   graphiql-rails (~> 1.8.0)
@@ -1932,7 +1940,7 @@ DEPENDENCIES
   grpc (~> 1.58.0)
   gssapi (~> 1.3.1)
   guard-rspec
-  haml_lint (~> 0.52)
+  haml_lint (~> 0.53)
   hamlit (~> 2.15.0)
   hashie (~> 5.0.0)
   health_check (~> 3.0)
@@ -1979,7 +1987,7 @@ DEPENDENCIES
   net-ldap (~> 0.17.1)
   net-ntp
   net-protocol (~> 0.1.3)
-  nokogiri (~> 1.15, >= 1.15.5)
+  nokogiri (~> 1.16)
   oauth2 (~> 2.0)
   octokit (~> 6.0)
   ohai (~> 18.1)
@@ -2007,20 +2015,20 @@ DEPENDENCIES
   openssl (~> 3.0)
   org-ruby (~> 0.9.12)
   os (~> 1.1)
-  pact (~> 1.63)
+  pact (~> 1.64)
   parallel (~> 1.19)
-  parser (~> 3.2, >= 3.2.2.4)
+  parser (~> 3.3, >= 3.3.0.2)
   parslet (~> 1.8)
   peek (~> 1.1)
   pg (~> 1.5.4)
   pg_query (~> 4.2.3)
   png_quantizator (~> 0.2.1)
   premailer-rails (~> 1.10.3)
-  prometheus-client-mmap (~> 1.0, >= 1.0.2)
+  prometheus-client-mmap (~> 1.1)
   pry-byebug
   pry-rails (~> 0.3.9)
   pry-shell (~> 0.6.4)
-  puma (~> 6.4)
+  puma (= 6.4.0)
   rack (~> 2.2.8)
   rack-attack (~> 6.7.0)
   rack-cors (~> 2.0.1)
@@ -2032,10 +2040,10 @@ DEPENDENCIES
   rails-i18n (~> 7.0)
   rainbow (~> 3.0)
   rbtrace (~> 0.4)
-  re2 (= 2.5.0)
+  re2 (= 2.6.0)
   recaptcha (~> 5.12)
   redis (~> 4.8.0)
-  redis-actionpack (~> 5.3.0)
+  redis-actionpack (~> 5.4.0)
   redis-namespace (~> 1.10.0)
   request_store (~> 1.5.1)
   responders (~> 3.0)
@@ -2051,7 +2059,7 @@ DEPENDENCIES
   rspec_profiling (~> 0.0.6)
   rubocop
   ruby-fogbugz (~> 0.3.0)
-  ruby-lsp (~> 0.13.1)
+  ruby-lsp (~> 0.13.2)
   ruby-lsp-rails (~> 0.2.8)
   ruby-lsp-rspec (~> 0.1.8)
   ruby-magic (~> 0.6)
@@ -2071,11 +2079,11 @@ DEPENDENCIES
   sentry-ruby (~> 5.10.0)
   sentry-sidekiq (~> 5.10.0)
   shoulda-matchers (~> 5.1.0)
-  sidekiq (~> 6.5.10)
+  sidekiq (~> 7.1.6)
   sidekiq-cron (~> 1.12.0)
   sigdump (~> 0.2.4)
   simple_po_parser (~> 1.1.6)
-  simplecov (~> 0.21)
+  simplecov (~> 0.22)
   simplecov-cobertura (~> 2.1.0)
   simplecov-lcov (~> 0.8.0)
   slack-messenger (~> 2.3.4)
@@ -2117,4 +2125,4 @@ DEPENDENCIES
   yajl-ruby (~> 1.4.3)
 
 BUNDLED WITH
-   2.4.22
+   2.5.4
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
index b419e76f259b..4086a43e089d 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
@@ -389,10 +389,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1whf6ppvdibfpsr660ajncig3hyc6q9dvnx645ajrjfz3r7487i9";
+      sha256 = "1zcwrlg4in3gzvsiynpzp9fzlr5grrhc2881xcgfs01ppmxysllm";
       type = "gem";
     };
-    version = "1.761.0";
+    version = "1.877.0";
   };
   aws-sdk-cloudformation = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -411,10 +411,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19nglxz49nlzgsvnivb3bdm17vxjn1ng2br8659xv48nzjrmyid3";
+      sha256 = "0z9f8ypvpwj3sfqh3nlnhrq7ryhrv7isqzg370fba27zpy7bv5sx";
       type = "gem";
     };
-    version = "3.190.0";
+    version = "3.190.2";
   };
   aws-sdk-kms = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -422,10 +422,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bcm0c9f7xy5qj5f0z3gddqslhb2vzrj9smc39pgqyq4jmn5kpj0";
+      sha256 = "0jfgw9a9c8xyjhkmgpd9rpi95h9i0rhbqszn8iqkbfm9rc9m1xz7";
       type = "gem";
     };
-    version = "1.64.0";
+    version = "1.76.0";
   };
   aws-sdk-s3 = {
     dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"];
@@ -433,10 +433,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bnhpmi0iiaj88rqc5lhhnp2gyrk4fs8xz51lj36wwzng94qinya";
+      sha256 = "1sfpipfdmixpc0madfx1yvpwpv52fdhxfx4bmvrjxzb6ra78ikbr";
       type = "gem";
     };
-    version = "1.141.0";
+    version = "1.142.0";
   };
   aws-sigv4 = {
     dependencies = ["aws-eventstream"];
@@ -455,10 +455,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qkcia7yg50j0ycmzqnl2dzzz9a35wlg5fk30g0qs41z6p1xw38v";
+      sha256 = "0bx67lskxslfd2mpim3kqrxa4sx4qhvnpjpr57j1ll2xppyl9kw8";
       type = "gem";
     };
-    version = "4.6.0";
+    version = "4.8.0";
   };
   axe-core-rspec = {
     dependencies = ["axe-core-api" "dumb_delegator" "virtus"];
@@ -466,10 +466,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zvlrnxcyam2574gzn44r0ibz4h0s9j3vrp5lixi731qvp4mphhi";
+      sha256 = "07niarqd2lrbgnw00biyigc48lbdv4vy68p57myliz7k82nizidj";
       type = "gem";
     };
-    version = "4.6.0";
+    version = "4.8.0";
   };
   axiom-types = {
     dependencies = ["descendants_tracker" "ice_nine" "thread_safe"];
@@ -653,10 +653,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0iqkzby0fdgi786m873nm0ckmc847wy9a4ydinb29m7hd3fs83kb";
+      sha256 = "028qif22isxa5sg5gf1322d0qjhir5rr0jpkaiwcic4lspacdcnv";
       type = "gem";
     };
-    version = "1.17.0";
+    version = "1.17.1";
   };
   browser = {
     groups = ["default"];
@@ -1391,10 +1391,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01gks2hrp7nl3pzb487azvd25dlbrc40d5cpk4n0szwnf2c0k4ks";
+      sha256 = "03a5qn74c4lk2rpy6wlhv66synjlyzc4wn086xzphkpmw12l4bzk";
       type = "gem";
     };
-    version = "1.0.0";
+    version = "1.0.1";
   };
   dry-inflector = {
     groups = ["default" "development" "test"];
@@ -1674,10 +1674,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04vxmjr200akcil9fqxc9ghbb9q0lyrh2q03xxncycd5vln910fi";
+      sha256 = "1glq677vmd3xrdilcx6ar8sdaysm9ldrppg34yzw43jzr6dx47fp";
       type = "gem";
     };
-    version = "6.2.0";
+    version = "6.4.5";
   };
   factory_bot_rails = {
     dependencies = ["factory_bot" "railties"];
@@ -1685,10 +1685,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18fhcihkc074gk62iwqgbdgc3ymim4fm0b4p3ipffy5hcsb9d2r7";
+      sha256 = "1j6w4rr2cb5wng9yrn2ya9k40q52m0pbz47kzw8xrwqg3jncwwza";
       type = "gem";
     };
-    version = "6.2.0";
+    version = "6.4.3";
   };
   faraday = {
     dependencies = ["faraday-em_http" "faraday-em_synchrony" "faraday-excon" "faraday-httpclient" "faraday-multipart" "faraday-net_http" "faraday-net_http_persistent" "faraday-patron" "faraday-rack" "faraday-retry" "ruby2_keywords"];
@@ -1897,16 +1897,6 @@ src:
     };
     version = "2.6.0";
   };
-  filelock = {
-    groups = ["default" "development" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "085vrb6wf243iqqnrrccwhjd4chphfdsybkvjbapa2ipfj1ja1sj";
-      type = "gem";
-    };
-    version = "1.1.1";
-  };
   find_a_port = {
     groups = ["default" "development" "test"];
     platforms = [];
@@ -2220,8 +2210,19 @@ src:
     };
     version = "1.8.0";
   };
+  gitlab-glfm-markdown = {
+    dependencies = ["rb_sys"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0z0h4bvfvlwyfx8ia03lr9dlpy38n75v2wxh424v6fhy4z08ycab";
+      type = "gem";
+    };
+    version = "0.0.11";
+  };
   gitlab-housekeeper = {
-    dependencies = ["httparty" "rubocop"];
+    dependencies = ["activesupport" "httparty" "rubocop"];
     groups = ["development" "test"];
     platforms = [];
     source = {
@@ -2231,7 +2232,7 @@ src:
     version = "0.1.0";
   };
   gitlab-http = {
-    dependencies = ["activesupport" "concurrent-ruby" "httparty" "ipaddress" "nokogiri" "railties"];
+    dependencies = ["activesupport" "concurrent-ruby" "httparty" "ipaddress" "railties"];
     groups = ["default"];
     platforms = [];
     source = {
@@ -2246,10 +2247,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1k9yd8b1xbq3l6l1n4pb0mh2wklz0ninr7h2l5xx031r05150p6a";
+      sha256 = "0ya6r3ij0fzz6p50h157bn224n7405nwak6lx80ppvil9sm0dzr6";
       type = "gem";
     };
-    version = "0.34.0";
+    version = "0.35.0";
   };
   gitlab-license = {
     groups = ["default"];
@@ -2313,7 +2314,7 @@ src:
     version = "0.1.0";
   };
   gitlab-safe_request_store = {
-    dependencies = ["request_store"];
+    dependencies = ["rack" "request_store"];
     groups = ["default"];
     platforms = [];
     source = {
@@ -2344,7 +2345,7 @@ src:
     version = "0.2.3";
   };
   gitlab-secret_detection = {
-    dependencies = ["re2" "toml-rb"];
+    dependencies = ["parallel" "re2" "toml-rb"];
     groups = ["default"];
     platforms = [];
     source = {
@@ -2361,7 +2362,7 @@ src:
       path = "${src}/vendor/gems/sidekiq-reliable-fetch";
       type = "path";
     };
-    version = "0.10.0";
+    version = "0.11.0";
   };
   gitlab-styles = {
     dependencies = ["rubocop" "rubocop-graphql" "rubocop-performance" "rubocop-rails" "rubocop-rspec"];
@@ -2375,7 +2376,7 @@ src:
     version = "11.0.0";
   };
   gitlab-utils = {
-    dependencies = ["actionview" "activesupport" "addressable" "nokogiri" "rake"];
+    dependencies = ["actionview" "activesupport" "addressable" "rake"];
     groups = ["monorepo"];
     platforms = [];
     source = {
@@ -2412,10 +2413,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18m35p6kizkaw829lwvh6mc7r8q94gmyhkq9qggx7r78h8iafiqd";
+      sha256 = "0anhwfn9dnd8zkjwkq3qycjswfxqksfnwvl7dr6azz2zvjnxnii1";
       type = "gem";
     };
-    version = "1.9.0";
+    version = "1.11.0";
   };
   globalid = {
     dependencies = ["activesupport"];
@@ -2663,10 +2664,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18yiqq657lbqbrbdfbxfspdrkiynd0wf49l3cgdw939z36cy0h77";
+      sha256 = "02sh4rp14wmpfv9r7xrap6xgcakg0lk6zjvq1gsi5y38swhn2blw";
       type = "gem";
     };
-    version = "3.25.1";
+    version = "3.25.2";
   };
   googleapis-common-protos = {
     dependencies = ["google-protobuf" "googleapis-common-protos-types" "grpc"];
@@ -2718,10 +2719,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dnbb3gxwbmvhzvzb22prwaim9wmvilm0nm91ndw2ggf324rsrvb";
+      sha256 = "0jj98w80ry1ir8lc3347130s0z8yd7gk727r9ynwwk782x6gkvrs";
       type = "gem";
     };
-    version = "1.7.1";
+    version = "2.0.0";
   };
   grape-entity = {
     dependencies = ["activesupport" "multi_json"];
@@ -2740,21 +2741,21 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ql1acy68n9xkvjzda1vpscf20zqqwjm959b7cx3w1yl40d2f9rf";
+      sha256 = "1mq2cwy0jvprq3wdilds1n865jdl58sqg00im4w6fybf5kjiclmd";
       type = "gem";
     };
-    version = "1.7.1";
+    version = "2.0.1";
   };
   grape-swagger = {
-    dependencies = ["grape"];
+    dependencies = ["grape" "rack-test"];
     groups = ["development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17y6smk7shplblgic4jvi5njhd0x91n1xrvds3l6cjsjfs2d7lhg";
+      sha256 = "1467ni6f0yy4z3qldjs8x0h50n9ym6zyjbx5gqqzbq6zhvgbx40g";
       type = "gem";
     };
-    version = "1.6.1";
+    version = "2.0.1";
   };
   grape-swagger-entity = {
     dependencies = ["grape-entity" "grape-swagger"];
@@ -2913,10 +2914,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1shlh68vjqyj092ig2b571anbr5npg8kp66a7cq5h9a1387nnckn";
+      sha256 = "060vz5dx0ag3ggpwhwfcadfim0g8aabl0b1dvnzagizymfsw2g92";
       type = "gem";
     };
-    version = "0.52.0";
+    version = "0.53.0";
   };
   hamlit = {
     dependencies = ["temple" "thor" "tilt"];
@@ -4040,10 +4041,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xk64wghkscs6bv2n22853k2nh39d131c6rfpnlw12mbjnnv9v1v";
+      sha256 = "0xkjz56qc7hl7zy7i7bhiyw5pl85wwjsa4p70rj6s958xj2sd1lm";
       type = "gem";
     };
-    version = "2.5.8";
+    version = "2.7.0";
   };
   no_proxy_fix = {
     groups = ["default" "development"];
@@ -4061,10 +4062,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "004ip9x9281fxhpipwi8di1sb1dnabscq9dy1p3cxgdwbniqqi12";
+      sha256 = "1l8b0i24h4irivyhwy9xmkjbggw86cxkzkiqdqg0jpcp9qc8h4rl";
       type = "gem";
     };
-    version = "1.15.5";
+    version = "1.16.0";
   };
   notiffany = {
     dependencies = ["nenv" "shellany"];
@@ -4466,21 +4467,21 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ldi3j95dh3c29w4bliykfdd08r95d4zvbdblk385w9b4knr2afc";
+      sha256 = "1a3fbwzzzdsbzipv63mcq1q761mqc6w8k1vxkbrbf3aqi2489p8b";
       type = "gem";
     };
-    version = "1.63.0";
+    version = "1.64.0";
   };
   pact-mock_service = {
-    dependencies = ["filelock" "find_a_port" "json" "pact-support" "rack" "rspec" "term-ansicolor" "thor" "webrick"];
+    dependencies = ["find_a_port" "json" "pact-support" "rack" "rspec" "thor" "webrick"];
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09syv4y0g0pvjshxj8i0yg7mrvszgp503is1b78k86bgv6wc73l9";
+      sha256 = "0lds3xpkrx91lm74pa3n5167c8mkmqyki9axj7bjj0m18r2ybna2";
       type = "gem";
     };
-    version = "3.10.0";
+    version = "3.11.2";
   };
   pact-support = {
     dependencies = ["awesome_print" "diff-lcs" "expgen" "rainbow"];
@@ -4488,10 +4489,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xh4idg0m1mr0pkywj5f79nlr4g6n4waism86gj34h8wicf9c9aa";
+      sha256 = "0waq8ywxhljm5sjk7m3q7f6s2pvcfshg3ncs9dl7kcsg2ail7hs1";
       type = "gem";
     };
-    version = "1.18.1";
+    version = "1.20.0";
   };
   parallel = {
     groups = ["development" "test"];
@@ -4509,10 +4510,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0r69dbh6h6j4d54isany2ir4ni4gf2ysvk3k44awi6amz18nggpd";
+      sha256 = "181faqz59p2mbfab5q4l1r298pq0nxl0k85rjcb58g0lardmv321";
       type = "gem";
     };
-    version = "3.2.2.4";
+    version = "3.3.0.2";
   };
   parslet = {
     groups = ["default" "development" "test"];
@@ -4625,10 +4626,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "172qxf1zyrhxzwbn4c7gz12zdyb1jkdqrqvb2c7863lmxp53rrxs";
+      sha256 = "0qiv9irrca2la1awqgvzsg7a17z2nydqyq43w4fhapdkq2l7xwa7";
       type = "gem";
     };
-    version = "0.18.0";
+    version = "0.19.0";
   };
   proc_to_ast = {
     dependencies = ["coderay" "parser" "unparser"];
@@ -4647,10 +4648,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xfy4g3bwgqb1hn948aw3zfwxvak3886gxdyf0cnajzjfp9z33pq";
+      sha256 = "19mi424kwalrzdm7cvzjx2w0rw778mxqb75y9wn20nc277nxglvb";
       type = "gem";
     };
-    version = "1.0.2";
+    version = "1.1.0";
   };
   protocol = {
     dependencies = ["ruby_parser"];
@@ -4834,6 +4835,17 @@ src:
     };
     version = "0.7.7";
   };
+  rack-session = {
+    dependencies = ["rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xhxhlsz6shh8nm44jsmd9276zcnyzii364vhcvf0k8b8bjia8d0";
+      type = "gem";
+    };
+    version = "1.0.2";
+  };
   rack-test = {
     dependencies = ["rack"];
     groups = ["default" "development" "test"];
@@ -4889,15 +4901,15 @@ src:
     version = "2.0.3";
   };
   rails-html-sanitizer = {
-    dependencies = ["loofah"];
-    groups = ["default" "development" "test"];
+    dependencies = ["loofah" "nokogiri"];
+    groups = ["default" "development" "monorepo" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ygav4xyq943qqyhjmi3mzirn180j565mc9h5j4css59x1sn0cmz";
+      sha256 = "1pm4z853nyz1bhhqr7fzl44alnx4bjachcr6rh6qjj375sfz3sc6";
       type = "gem";
     };
-    version = "1.5.0";
+    version = "1.6.0";
   };
   rails-i18n = {
     dependencies = ["i18n" "railties"];
@@ -4967,10 +4979,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pj5qq4phswviw9vybvz4ql5921ddxkkmn9iywm992x0kbvhvn0f";
+      sha256 = "131sa2jvc7b1yld3nzc0xq7lvwvql7b8c09i0xv2brzjybammlv5";
       type = "gem";
     };
-    version = "0.9.83";
+    version = "0.9.86";
   };
   rbtrace = {
     dependencies = ["ffi" "msgpack" "optimist"];
@@ -5009,10 +5021,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ih6igmfcb4b9a8hd46ggn85zfyclz9h828d0xafy2pq5qlz9fs2";
+      sha256 = "0sj80r3gy4sb27mrgc6pwcf2lra669p8p81axdv2p5pfm6k3mqbq";
       type = "gem";
     };
-    version = "2.5.0";
+    version = "2.6.0";
   };
   recaptcha = {
     dependencies = ["json"];
@@ -5071,10 +5083,21 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0h4iq67p5jjkg9kny7ki6yzkivyakmhbp6ckkhl6mlnriw5avc9z";
+      sha256 = "0h1mx8shrzpcj27k9kw77f4cq7i217vxfd1ksqb4g485md4zc37i";
       type = "gem";
     };
-    version = "5.3.0";
+    version = "5.4.0";
+  };
+  redis-client = {
+    dependencies = ["connection_pool"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0k9jaqsdc2s2qm713pdv19dawk1b11vxnfclsps7ra2szwisznbf";
+      type = "gem";
+    };
+    version = "0.19.0";
   };
   redis-namespace = {
     dependencies = ["redis"];
@@ -5088,15 +5111,15 @@ src:
     version = "1.10.0";
   };
   redis-rack = {
-    dependencies = ["rack" "redis-store"];
+    dependencies = ["rack-session" "redis-store"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k3pn706wnf7lb24l6hwsi00c8rx693hvgfnccw3qj1y635ywwh8";
+      sha256 = "10438w0y1jbgr205zndvmz6md0mrqazh2j9fr88lvb8hms10pddb";
       type = "gem";
     };
-    version = "2.1.4";
+    version = "3.0.0";
   };
   redis-store = {
     dependencies = ["redis"];
@@ -5104,10 +5127,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0787fwmlvpx5k360dxlcs8r7vijgl2iyvh3zyvl7qyvgshw78k3v";
+      sha256 = "17mhr1g3lmacrgjndbmrklngy32g55165n53111q70kykx7qjn7j";
       type = "gem";
     };
-    version = "1.9.1";
+    version = "1.10.0";
   };
   regexp_parser = {
     groups = ["default" "development" "test"];
@@ -5502,10 +5525,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zsd9ax4xzk8y1hflzbmfq1l0fpflwqhrggd8x2f4j9ap6z464lg";
+      sha256 = "1g1vdas991rv6lrjppjxjbfyzif4jxbncrcg9shgzrmibzilbnwr";
       type = "gem";
     };
-    version = "0.13.1";
+    version = "0.13.2";
   };
   ruby-lsp-rails = {
     dependencies = ["actionpack" "activerecord" "railties" "ruby-lsp" "sorbet-runtime"];
@@ -5837,15 +5860,15 @@ src:
     version = "5.1.0";
   };
   sidekiq = {
-    dependencies = ["connection_pool" "rack" "redis"];
+    dependencies = ["concurrent-ruby" "connection_pool" "rack" "redis-client"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zqr9is8y7mg5dfs1q8w5jl9spwvqkhbi9r6np8208n40hi3pydl";
+      sha256 = "18j3g31ps6ga9nzza0z0d00qjrn810fhkhx2pqi3rvxwsmkdlnbq";
       type = "gem";
     };
-    version = "6.5.12";
+    version = "7.1.6";
   };
   sidekiq-cron = {
     dependencies = ["fugit" "globalid" "sidekiq"];
@@ -6670,10 +6693,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0fa49cdssxllj1j37a56kq27wsibx5lmqxkqdk1rz3452y0bsydy";
+      sha256 = "094gk72ckazf495qc76gk09b5i318d5l9m7bicg2wxlrjcm3qm96";
       type = "gem";
     };
-    version = "0.12.2";
+    version = "0.13.0";
   };
   uri_template = {
     groups = ["default"];
diff --git a/pkgs/applications/version-management/gitsign/default.nix b/pkgs/applications/version-management/gitsign/default.nix
index cf804ddfb54c..87b73391987e 100644
--- a/pkgs/applications/version-management/gitsign/default.nix
+++ b/pkgs/applications/version-management/gitsign/default.nix
@@ -19,7 +19,7 @@ buildGoModule rec {
 
   nativeBuildInputs = [ makeWrapper ];
 
-  ldflags = [ "-s" "-w" "-buildid=" "-X github.com/sigstore/gitsign/pkg/version.gitVersion=${version}" ];
+  ldflags = [ "-s" "-w" "-X github.com/sigstore/gitsign/pkg/version.gitVersion=${version}" ];
 
   preCheck = ''
     # test all paths
diff --git a/pkgs/applications/version-management/gitstatus/romkatv_libgit2.nix b/pkgs/applications/version-management/gitstatus/romkatv_libgit2.nix
index 73d35b1bd9b2..1caea82b048f 100644
--- a/pkgs/applications/version-management/gitstatus/romkatv_libgit2.nix
+++ b/pkgs/applications/version-management/gitstatus/romkatv_libgit2.nix
@@ -17,8 +17,8 @@ libgit2.overrideAttrs (oldAttrs: {
   src = fetchFromGitHub {
     owner = "romkatv";
     repo = "libgit2";
-    rev = "tag-0ad3d776aa86dd607dc86dcd7f77ad3ed7ebec61";
-    sha256 = "sha256-mXCmspM3fqI14DF9sAIMH5vGdMMjWkdDjdME4EiQuqY=";
+    rev = "tag-2ecf33948a4df9ef45a66c68b8ef24a5e60eaac6";
+    hash = "sha256-Bm3Gj9+AhNQMvkIqdrTkK5D9vrZ1qq6CS8Wrn9kfKiw=";
   };
 
   patches = [ ];
diff --git a/pkgs/applications/version-management/gut/default.nix b/pkgs/applications/version-management/gut/default.nix
index 3d57ceb03a80..1254de70eb92 100644
--- a/pkgs/applications/version-management/gut/default.nix
+++ b/pkgs/applications/version-management/gut/default.nix
@@ -28,7 +28,7 @@ buildGoModule rec {
     description = "An alternative git CLI";
     homepage = "https://gut-cli.dev";
     license = licenses.mit;
-    maintainers = with maintainers; [ paveloom ];
+    maintainers = with maintainers; [ ];
     mainProgram = "gut";
   };
 }
diff --git a/pkgs/applications/version-management/legit/default.nix b/pkgs/applications/version-management/legit/default.nix
index c42f6eecfeea..93d274ecaf2f 100644
--- a/pkgs/applications/version-management/legit/default.nix
+++ b/pkgs/applications/version-management/legit/default.nix
@@ -5,11 +5,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "legit";
-  version = "1.2.0";
+  version = "1.2.0.post0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ngh3ar6v15516f52j21k6qz7hykmxfjadhb2rakvl27b5xvjy1c";
+    sha256 = "sha256-lJOWtoApqK9AWrIMkBkCNB72vVXH/sbatxFB1j1AaxE=";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/applications/version-management/mercurial/default.nix b/pkgs/applications/version-management/mercurial/default.nix
index 1051dc6da886..058d01233889 100644
--- a/pkgs/applications/version-management/mercurial/default.nix
+++ b/pkgs/applications/version-management/mercurial/default.nix
@@ -23,11 +23,11 @@ let
 
   self = python3Packages.buildPythonApplication rec {
     pname = "mercurial${lib.optionalString fullBuild "-full"}";
-    version = "6.6.1";
+    version = "6.6.2";
 
     src = fetchurl {
       url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
-      sha256 = "sha256-opRlo/5Ao+jUm6g0MTSsKrooa2g//rg42gz25FIflpU=";
+      sha256 = "sha256-y0lNe+fdwvydMXHIiDCvnAKyHHU+PlET3vrJwDc7S2A=";
     };
 
     format = "other";
@@ -37,7 +37,7 @@ let
     cargoDeps = if rustSupport then rustPlatform.fetchCargoTarball {
       inherit src;
       name = "mercurial-${version}";
-      sha256 = "sha256-wLV0qdCfMgGpZRxnZik/lRwZHm/66p0sJn/mYVRvRkQ=";
+      sha256 = "sha256-yOysqMrTWDx/ENcJng8Rm338NI9vpuBGH6Yq8B7+MFg=";
       sourceRoot = "mercurial-${version}/rust";
     } else null;
     cargoRoot = if rustSupport then "rust" else null;
@@ -62,7 +62,7 @@ let
       cp contrib/hgk $out/bin
       cat >> $out/etc/mercurial/hgrc << EOF
       [extensions]
-      hgk=$out/lib/${python.libPrefix}/site-packages/hgext/hgk.py
+      hgk=$out/${python.sitePackages}/hgext/hgk.py
       EOF
       # setting HG so that hgk can be run itself as well (not only hg view)
       WRAP_TK=" --set TK_LIBRARY ${tk}/lib/${tk.libPrefix}
diff --git a/pkgs/applications/version-management/pass-git-helper/default.nix b/pkgs/applications/version-management/pass-git-helper/default.nix
index cc34a67c04b5..62e9a12a49df 100644
--- a/pkgs/applications/version-management/pass-git-helper/default.nix
+++ b/pkgs/applications/version-management/pass-git-helper/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonApplication rec {
   pname   = "pass-git-helper";
-  version = "1.2.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner  = "languitar";
     repo   = "pass-git-helper";
-    rev    = "v${version}";
-    sha256 = "sha256-An9JKnS/Uor7iZ+lbBGR3eOkxOgV+SjnCWN/QmqFI/I=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-wkayj7SvT3SOM+rol17+8LQJR/YXSC6I+iKbHRUbdZc=";
   };
 
   propagatedBuildInputs = [ pyxdg ];
diff --git a/pkgs/applications/version-management/sapling/Cargo.lock b/pkgs/applications/version-management/sapling/Cargo.lock
index 20f5616cc39f..7b3f1c7d58c4 100644
--- a/pkgs/applications/version-management/sapling/Cargo.lock
+++ b/pkgs/applications/version-management/sapling/Cargo.lock
@@ -44,9 +44,9 @@ checksum = "0453232ace82dee0dd0b4c87a59bd90f7b53b314f3e0f61fe2ee7c8a16482289"
 
 [[package]]
 name = "ahash"
-version = "0.8.6"
+version = "0.8.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a"
+checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
 dependencies = [
  "cfg-if 1.0.0",
  "once_cell",
@@ -110,9 +110,9 @@ dependencies = [
 
 [[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",
@@ -130,37 +130,37 @@ checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
 
 [[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.72"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854"
+checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
 dependencies = [
  "backtrace",
 ]
@@ -208,9 +208,9 @@ checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
 
 [[package]]
 name = "async-compression"
-version = "0.4.5"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc2d0cfb2a7388d34f590e76686704c494ed7aaceed62ee1ba35cbf363abc2a5"
+checksum = "a116f46a969224200a0a97f29cfd4c50e7534e4b4826bd23ea2c3c533039c82c"
 dependencies = [
  "brotli",
  "bzip2",
@@ -257,7 +257,7 @@ dependencies = [
 name = "async-runtime"
 version = "0.1.0"
 dependencies = [
- "futures 0.3.29",
+ "futures 0.3.30",
  "num_cpus",
  "once_cell",
  "tokio",
@@ -265,13 +265,13 @@ dependencies = [
 
 [[package]]
 name = "async-trait"
-version = "0.1.74"
+version = "0.1.77"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
+checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -314,7 +314,7 @@ dependencies = [
  "anyhow",
  "chrono",
  "configmodel",
- "indexmap 1.9.3",
+ "indexmap 2.1.0",
  "once_cell",
  "pem",
  "simple_asn1",
@@ -348,20 +348,20 @@ name = "backingstore"
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "async-runtime",
+ "arc-swap",
  "configloader",
  "constructors",
+ "cxx",
  "eagerepo",
  "edenapi",
- "env_logger 0.10.1",
+ "env_logger 0.10.2",
  "identity",
  "indexedlog",
- "libc",
  "log",
  "manifest",
  "parking_lot",
  "repo",
- "revisionstore",
+ "storemodel",
  "tracing",
  "tracing-collector",
  "tracing-subscriber",
@@ -405,9 +405,9 @@ 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 = "bindag"
@@ -432,6 +432,7 @@ dependencies = [
  "pyblackbox",
  "pybytes",
  "pycats",
+ "pycbor",
  "pycext",
  "pycheckout",
  "pyclientinfo",
@@ -524,9 +525,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.1"
+version = "2.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
 
 [[package]]
 name = "bitmaps"
@@ -543,6 +544,7 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "byteorder",
+ "clientinfo",
  "indexedlog",
  "lazy_static",
  "libc",
@@ -567,9 +569,9 @@ dependencies = [
 
 [[package]]
 name = "blake3"
-version = "1.3.1"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a08e53fc5a564bb15bfe6fae56bd71522205f1f91893f9c0116edad6496c183f"
+checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87"
 dependencies = [
  "arrayref",
  "arrayvec",
@@ -620,9 +622,9 @@ dependencies = [
 
 [[package]]
 name = "bstr"
-version = "1.8.0"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c"
+checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc"
 dependencies = [
  "memchr",
  "serde",
@@ -630,9 +632,9 @@ dependencies = [
 
 [[package]]
 name = "bufsize"
-version = "1.0.6"
+version = "1.0.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da2a4f1be8d12d1d69cbcfd3e740dddba696710847cf8630f6676860045345e8"
+checksum = "7864afba28009cd99a4d973c3de89cc766b800cdf1bd909966d454906f3bce5d"
 dependencies = [
  "bytes",
 ]
@@ -691,7 +693,7 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "configmodel",
- "indexmap 1.9.3",
+ "indexmap 2.1.0",
  "serde",
  "serde_json",
  "thiserror",
@@ -726,12 +728,14 @@ name = "checkout"
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "async-runtime",
  "async-trait",
+ "atexit",
  "configmodel",
+ "crossbeam",
+ "edenfs-client",
  "fail",
- "futures 0.3.29",
- "io",
+ "fs-err",
+ "hg-metrics",
  "manifest",
  "manifest-tree",
  "minibytes",
@@ -742,11 +746,13 @@ dependencies = [
  "repo",
  "repolock",
  "serde_json",
+ "spawn-ext",
  "status",
  "storemodel",
  "tempfile",
+ "termlogger",
  "thiserror",
- "tokio",
+ "toml",
  "tracing",
  "treestate",
  "types",
@@ -806,9 +812,9 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.4.8"
+version = "4.4.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2275f18819641850fa26c89acc84d465c1bf91ce57bc2748b28c420473352f64"
+checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c"
 dependencies = [
  "clap_builder",
  "clap_derive 4.4.7",
@@ -816,9 +822,9 @@ dependencies = [
 
 [[package]]
 name = "clap_builder"
-version = "4.4.8"
+version = "4.4.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07cdf1b148b25c1e1f7a42225e30a0d99a615cd4637eae7365548dd4529b95bc"
+checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7"
 dependencies = [
  "anstream",
  "anstyle",
@@ -851,7 +857,7 @@ dependencies = [
  "heck 0.4.1",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -922,7 +928,7 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "cpython",
- "indexmap 1.9.3",
+ "indexmap 2.1.0",
  "serde",
  "shlex",
  "thiserror",
@@ -951,7 +957,7 @@ dependencies = [
 [[package]]
 name = "cloned"
 version = "0.1.0"
-source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#d17bd97085a53e3da27b6349a6c03e9210b15e05"
+source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5"
 
 [[package]]
 name = "codegen"
@@ -963,7 +969,7 @@ dependencies = [
 [[package]]
 name = "codegen_includer_proc_macro"
 version = "0.1.0"
-source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#d17bd97085a53e3da27b6349a6c03e9210b15e05"
+source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5"
 dependencies = [
  "quote",
 ]
@@ -1035,8 +1041,8 @@ name = "commitcloudsubscriber"
 version = "0.1.0"
 dependencies = [
  "anyhow",
+ "base64 0.13.1",
  "filetime",
- "futures 0.3.29",
  "hostcaps",
  "identity",
  "lazy_static",
@@ -1045,7 +1051,6 @@ dependencies = [
  "parking_lot",
  "regex",
  "reqwest",
- "reqwest-eventsource",
  "rust-ini",
  "serde",
  "serde_json",
@@ -1064,7 +1069,7 @@ dependencies = [
  "dag",
  "factory",
  "fs-err",
- "futures 0.3.29",
+ "futures 0.3.30",
  "gitdag",
  "metalog",
  "minibytes",
@@ -1082,7 +1087,7 @@ dependencies = [
  "anyhow",
  "async-trait",
  "dag",
- "futures 0.3.29",
+ "futures 0.3.30",
  "metalog",
  "minibytes",
  "serde",
@@ -1108,11 +1113,11 @@ dependencies = [
 
 [[package]]
 name = "concurrent-queue"
-version = "2.3.0"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400"
+checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
 dependencies = [
- "crossbeam-utils 0.8.16",
+ "crossbeam-utils 0.8.19",
 ]
 
 [[package]]
@@ -1125,7 +1130,7 @@ dependencies = [
  "config_types",
  "const-cstr",
  "fbthrift",
- "futures 0.3.29",
+ "futures 0.3.30",
  "ref-cast",
  "thiserror",
  "thrift_compiler",
@@ -1143,7 +1148,7 @@ dependencies = [
  "config_thrift_types",
  "const-cstr",
  "fbthrift",
- "futures 0.3.29",
+ "futures 0.3.30",
  "ref-cast",
  "thiserror",
  "thrift_compiler",
@@ -1158,7 +1163,7 @@ dependencies = [
  "anyhow",
  "codegen_includer_proc_macro",
  "fbthrift",
- "futures 0.3.29",
+ "futures 0.3.30",
  "once_cell",
  "ref-cast",
  "serde",
@@ -1174,7 +1179,7 @@ dependencies = [
  "anyhow",
  "codegen_includer_proc_macro",
  "fbthrift",
- "futures 0.3.29",
+ "futures 0.3.30",
  "once_cell",
  "ref-cast",
  "serde",
@@ -1236,7 +1241,7 @@ version = "0.1.0"
 dependencies = [
  "configmodel",
  "hgrc-parser",
- "indexmap 1.9.3",
+ "indexmap 2.1.0",
  "minibytes",
  "tempfile",
  "tracing",
@@ -1245,14 +1250,14 @@ 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",
- "windows-sys 0.45.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -1263,9 +1268,9 @@ checksum = "ed3d0b5ff30645a68f35ece8cea4556ca14ef8a1651455f789a099a0513532a6"
 
 [[package]]
 name = "constant_time_eq"
-version = "0.1.5"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
+checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2"
 
 [[package]]
 name = "constructors"
@@ -1276,6 +1281,7 @@ dependencies = [
  "edenapi",
  "gitstore",
  "hgcommits",
+ "manifest-tree",
  "once_cell",
 ]
 
@@ -1325,6 +1331,7 @@ name = "copytrace"
 version = "0.1.0"
 dependencies = [
  "anyhow",
+ "async-runtime",
  "async-trait",
  "configmodel",
  "dag",
@@ -1348,9 +1355,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",
@@ -1358,15 +1365,15 @@ dependencies = [
 
 [[package]]
 name = "core-foundation-sys"
-version = "0.8.4"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
 dependencies = [
  "libc",
 ]
@@ -1392,7 +1399,7 @@ dependencies = [
  "async-runtime",
  "cpython",
  "cpython_ext",
- "futures 0.3.29",
+ "futures 0.3.30",
  "itertools",
  "tokio",
 ]
@@ -1425,16 +1432,15 @@ dependencies = [
 
 [[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 1.0.0",
- "crossbeam-channel 0.5.8",
+ "crossbeam-channel 0.5.11",
  "crossbeam-deque",
  "crossbeam-epoch",
  "crossbeam-queue",
- "crossbeam-utils 0.8.16",
+ "crossbeam-utils 0.8.19",
 ]
 
 [[package]]
@@ -1448,46 +1454,39 @@ 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 1.0.0",
- "crossbeam-utils 0.8.16",
+ "crossbeam-utils 0.8.19",
 ]
 
 [[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 1.0.0",
  "crossbeam-epoch",
- "crossbeam-utils 0.8.16",
+ "crossbeam-utils 0.8.19",
 ]
 
 [[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 1.0.0",
- "crossbeam-utils 0.8.16",
- "memoffset 0.9.0",
- "scopeguard",
+ "crossbeam-utils 0.8.19",
 ]
 
 [[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 1.0.0",
- "crossbeam-utils 0.8.16",
+ "crossbeam-utils 0.8.19",
 ]
 
 [[package]]
@@ -1502,12 +1501,9 @@ dependencies = [
 
 [[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 1.0.0",
-]
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
 
 [[package]]
 name = "crossterm"
@@ -1566,12 +1562,12 @@ dependencies = [
 
 [[package]]
 name = "ctrlc"
-version = "3.4.1"
+version = "3.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82e95fbd621905b854affdc67943b043a0fbb6ed7385fd5a25650d19a8a6cfdf"
+checksum = "b467862cc8610ca6fc9a1532d7777cee0804e678ab45410897b9396495994a0b"
 dependencies = [
  "nix 0.27.1",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -1591,9 +1587,9 @@ dependencies = [
 
 [[package]]
 name = "curl-sys"
-version = "0.4.68+curl-8.4.0"
+version = "0.4.70+curl-8.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4a0d18d88360e374b16b2273c832b5e57258ffc1d4aa4f96b108e0738d5752f"
+checksum = "3c0333d8849afe78a4c8102a429a446bfdd055832af071945520e835ae2d841e"
 dependencies = [
  "cc",
  "libc",
@@ -1607,9 +1603,9 @@ dependencies = [
 
 [[package]]
 name = "cxx"
-version = "1.0.110"
+version = "1.0.115"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7129e341034ecb940c9072817cd9007974ea696844fc4dd582dc1653a7fbe2e8"
+checksum = "8de00f15a6fa069c99b88c5c78c4541d0e7899a33b86f7480e23df2431fce0bc"
 dependencies = [
  "cc",
  "cxxbridge-flags",
@@ -1619,9 +1615,9 @@ dependencies = [
 
 [[package]]
 name = "cxx-build"
-version = "1.0.110"
+version = "1.0.115"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2a24f3f5f8eed71936f21e570436f024f5c2e25628f7496aa7ccd03b90109d5"
+checksum = "0a71e1e631fa2f2f5f92e8b0d860a00c198c6771623a6cefcc863e3554f0d8d6"
 dependencies = [
  "cc",
  "codespan-reporting",
@@ -1629,24 +1625,24 @@ dependencies = [
  "proc-macro2",
  "quote",
  "scratch",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "cxxbridge-flags"
-version = "1.0.110"
+version = "1.0.115"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06fdd177fc61050d63f67f5bd6351fac6ab5526694ea8e359cd9cd3b75857f44"
+checksum = "6f3fed61d56ba497c4efef9144dfdbaa25aa58f2f6b3a7cf441d4591c583745c"
 
 [[package]]
 name = "cxxbridge-macro"
-version = "1.0.110"
+version = "1.0.115"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "587663dd5fb3d10932c8aecfe7c844db1bcf0aee93eeab08fac13dc1212c2e7f"
+checksum = "8908e380a8efd42150c017b0cfa31509fc49b6d47f7cb6b33e93ffb8f4e3661e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1655,16 +1651,16 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "async-trait",
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "byteorder",
  "dag-types",
  "dev-logger",
  "drawdag",
  "fail",
  "fs2",
- "futures 0.3.29",
+ "futures 0.3.30",
  "indexedlog",
- "indexmap 1.9.3",
+ "indexmap 2.1.0",
  "mincode",
  "minibytes",
  "nonblocking",
@@ -1686,9 +1682,11 @@ version = "0.1.0"
 dependencies = [
  "bindag",
  "dag",
+ "dev-logger",
  "mincode",
  "minibench",
  "nonblocking",
+ "serde_cbor",
  "tempfile",
 ]
 
@@ -1710,7 +1708,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
 dependencies = [
  "cfg-if 1.0.0",
- "hashbrown 0.14.2",
+ "hashbrown 0.14.3",
  "lock_api",
  "once_cell",
  "parking_lot_core",
@@ -1735,9 +1733,9 @@ checksum = "5729f5117e208430e437df2f4843f5e5952997175992d1414f94c57d61e270b4"
 
 [[package]]
 name = "deranged"
-version = "0.3.9"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
 dependencies = [
  "powerfmt",
 ]
@@ -1843,7 +1841,7 @@ dependencies = [
  "edenapi_trait",
  "factory",
  "fail",
- "futures 0.3.29",
+ "futures 0.3.30",
  "hgstore",
  "http",
  "identity",
@@ -1889,7 +1887,7 @@ dependencies = [
  "configmodel",
  "edenapi_trait",
  "edenapi_types",
- "futures 0.3.29",
+ "futures 0.3.30",
  "hg-http",
  "http-client",
  "itertools",
@@ -1920,7 +1918,7 @@ dependencies = [
  "crossbeam",
  "edenapi",
  "edenapi_types",
- "futures 0.3.29",
+ "futures 0.3.30",
  "itertools",
  "minibytes",
  "tokio",
@@ -1937,7 +1935,7 @@ dependencies = [
  "auth",
  "configmodel",
  "edenapi_types",
- "futures 0.3.29",
+ "futures 0.3.30",
  "http",
  "http-client",
  "minibytes",
@@ -1999,15 +1997,13 @@ dependencies = [
  "async-runtime",
  "cxx",
  "cxx-build",
- "futures 0.3.29",
  "identity",
  "manifest",
- "manifest-tree",
  "once_cell",
+ "parking_lot",
  "pathmatcher",
  "repo",
  "sparse",
- "tokio",
  "types",
 ]
 
@@ -2050,7 +2046,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -2065,9 +2061,9 @@ dependencies = [
 
 [[package]]
 name = "env_logger"
-version = "0.10.1"
+version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece"
+checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580"
 dependencies = [
  "humantime",
  "is-terminal",
@@ -2084,21 +2080,21 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
 name = "erased-serde"
-version = "0.3.31"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c138974f9d5e7fe373eb04df7cae98833802ae4b11c24ac7039a21d5af4b26c"
+checksum = "55d05712b2d8d88102bc9868020c9e5c7a1f5527c452b9b97450a1d006140ba7"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "errno"
-version = "0.3.7"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f258a7194e7f7c2a7837a8913aeab7fd8c383457034fa20ce4dd3dcb813e8eb8"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
 dependencies = [
  "libc",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -2108,17 +2104,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
 
 [[package]]
-name = "eventsource-stream"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74fef4569247a5f429d9156b9d0a2599914385dd189c539334c625d8099d90ab"
-dependencies = [
- "futures-core",
- "nom 7.1.3",
- "pin-project-lite",
-]
-
-[[package]]
 name = "exchange"
 version = "0.1.0"
 dependencies = [
@@ -2198,7 +2183,7 @@ checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
 [[package]]
 name = "fb303_core"
 version = "0.0.0"
-source = "git+https://github.com/facebook/fb303.git?branch=main#b43090b2a64a33076412ab593ee1ada5e48a7a9c"
+source = "git+https://github.com/facebook/fb303.git?branch=main#1dd3544a29690edacb8da2910cd6e788a9f6c66b"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -2206,7 +2191,7 @@ dependencies = [
  "const-cstr",
  "fb303_core_types",
  "fbthrift",
- "futures 0.3.29",
+ "futures 0.3.30",
  "ref-cast",
  "thiserror",
  "thrift_compiler",
@@ -2217,12 +2202,12 @@ dependencies = [
 [[package]]
 name = "fb303_core_types"
 version = "0.0.0"
-source = "git+https://github.com/facebook/fb303.git?branch=main#b43090b2a64a33076412ab593ee1ada5e48a7a9c"
+source = "git+https://github.com/facebook/fb303.git?branch=main#1dd3544a29690edacb8da2910cd6e788a9f6c66b"
 dependencies = [
  "anyhow",
  "codegen_includer_proc_macro",
  "fbthrift",
- "futures 0.3.29",
+ "futures 0.3.30",
  "once_cell",
  "ref-cast",
  "serde",
@@ -2234,7 +2219,7 @@ dependencies = [
 [[package]]
 name = "fbinit"
 version = "0.1.2"
-source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#d17bd97085a53e3da27b6349a6c03e9210b15e05"
+source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5"
 dependencies = [
  "fbinit_macros",
  "quickcheck",
@@ -2243,7 +2228,7 @@ dependencies = [
 [[package]]
 name = "fbinit_macros"
 version = "0.1.2"
-source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#d17bd97085a53e3da27b6349a6c03e9210b15e05"
+source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2253,14 +2238,14 @@ dependencies = [
 [[package]]
 name = "fbthrift"
 version = "0.0.1+unstable"
-source = "git+https://github.com/facebook/fbthrift.git?branch=main#7ba2d200ef5654b277c9ae85fe8b3bdbe15433e0"
+source = "git+https://github.com/facebook/fbthrift.git?branch=main#f0eefaa2734bce13d861e0182b90a98d13250f17"
 dependencies = [
  "anyhow",
  "async-trait",
  "base64 0.13.1",
  "bufsize",
  "bytes",
- "futures 0.3.29",
+ "futures 0.3.30",
  "ghost",
  "num-derive",
  "num-traits",
@@ -2273,7 +2258,7 @@ dependencies = [
 [[package]]
 name = "fbthrift_framed"
 version = "0.1.0"
-source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#d17bd97085a53e3da27b6349a6c03e9210b15e05"
+source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5"
 dependencies = [
  "byteorder",
  "bytes",
@@ -2283,14 +2268,14 @@ dependencies = [
 [[package]]
 name = "fbthrift_socket"
 version = "0.1.0"
-source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#d17bd97085a53e3da27b6349a6c03e9210b15e05"
+source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5"
 dependencies = [
  "anyhow",
  "bytes",
  "fbthrift",
  "fbthrift_framed",
  "fbthrift_util",
- "futures 0.3.29",
+ "futures 0.3.30",
  "tokio",
  "tokio-tower",
  "tokio-util 0.7.10",
@@ -2300,7 +2285,7 @@ dependencies = [
 [[package]]
 name = "fbthrift_util"
 version = "0.1.0"
-source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#d17bd97085a53e3da27b6349a6c03e9210b15e05"
+source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5"
 dependencies = [
  "tokio",
 ]
@@ -2329,14 +2314,14 @@ dependencies = [
 
 [[package]]
 name = "filetime"
-version = "0.2.22"
+version = "0.2.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0"
+checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
 dependencies = [
  "cfg-if 1.0.0",
  "libc",
- "redox_syscall 0.3.5",
- "windows-sys 0.48.0",
+ "redox_syscall",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -2369,7 +2354,7 @@ checksum = "2cd66269887534af4b0c3e3337404591daa8dc8b9b2b3db71f9523beb4bafb41"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -2395,9 +2380,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
 
 [[package]]
 name = "form_urlencoded"
-version = "1.2.0"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
 dependencies = [
  "percent-encoding",
 ]
@@ -2416,11 +2401,12 @@ dependencies = [
 
 [[package]]
 name = "fs-err"
-version = "2.10.0"
+version = "2.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5fd9bcbe8b1087cbd395b51498c01bc997cef73e778a80b77a811af5e2d29f"
+checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41"
 dependencies = [
  "autocfg",
+ "tokio",
 ]
 
 [[package]]
@@ -2474,9 +2460,9 @@ checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678"
 
 [[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",
@@ -2489,9 +2475,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",
@@ -2499,15 +2485,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",
@@ -2516,9 +2502,9 @@ dependencies = [
 
 [[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"
@@ -2537,38 +2523,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.48",
 ]
 
 [[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"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2"
-
-[[package]]
-name = "futures-timer"
-version = "3.0.2"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
+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 0.1.31",
  "futures-channel",
@@ -2615,9 +2595,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if 1.0.0",
  "libc",
@@ -2626,20 +2606,20 @@ dependencies = [
 
 [[package]]
 name = "ghost"
-version = "0.1.16"
+version = "0.1.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef81e7cedce6ab54cd5dc7b3400c442c8d132fe03200a1be0637db7ef308ff17"
+checksum = "b0e085ded9f1267c32176b40921b9754c474f7dd96f7e808d4a982e48aa1e854"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "gimli"
-version = "0.28.0"
+version = "0.28.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
 name = "git2"
@@ -2690,23 +2670,23 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
 name = "globset"
-version = "0.4.13"
+version = "0.4.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d"
+checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1"
 dependencies = [
  "aho-corasick",
  "bstr",
- "fnv",
  "log",
- "regex",
+ "regex-automata 0.4.3",
+ "regex-syntax 0.8.2",
  "serde",
 ]
 
 [[package]]
 name = "h2"
-version = "0.3.22"
+version = "0.3.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178"
+checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
 dependencies = [
  "bytes",
  "fnv",
@@ -2744,11 +2724,11 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
 
 [[package]]
 name = "hashbrown"
-version = "0.14.2"
+version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 dependencies = [
- "ahash 0.8.6",
+ "ahash 0.8.7",
  "allocator-api2",
 ]
 
@@ -2778,9 +2758,9 @@ dependencies = [
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.3"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f"
 
 [[package]]
 name = "hex"
@@ -2864,15 +2844,18 @@ dependencies = [
  "procinfo",
  "progress-model",
  "progress-render",
+ "pycheckout",
  "pyconfigloader",
  "pyedenclient",
  "pyio",
  "pymodules",
  "python3-sys",
  "pytracing",
+ "pyworkingcopy",
  "rand 0.8.5",
  "repo",
  "repo_name",
+ "repostate",
  "revisionstore",
  "runlog",
  "sampling",
@@ -2905,7 +2888,7 @@ dependencies = [
  "edenapi",
  "factory",
  "fs-err",
- "futures 0.3.29",
+ "futures 0.3.30",
  "minibytes",
  "parking_lot",
  "revlogindex",
@@ -2965,17 +2948,17 @@ 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]]
 name = "hostcaps"
 version = "0.1.0"
-source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#d17bd97085a53e3da27b6349a6c03e9210b15e05"
+source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5"
 dependencies = [
  "once_cell",
 ]
@@ -2983,7 +2966,7 @@ dependencies = [
 [[package]]
 name = "hostname"
 version = "0.1.0"
-source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#d17bd97085a53e3da27b6349a6c03e9210b15e05"
+source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5"
 dependencies = [
  "anyhow",
  "hostname 0.3.1",
@@ -3008,14 +2991,14 @@ checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
 dependencies = [
  "bytes",
  "fnv",
- "itoa 1.0.9",
+ "itoa 1.0.10",
 ]
 
 [[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",
@@ -3030,12 +3013,13 @@ dependencies = [
  "assert_matches",
  "async-compression",
  "async-runtime",
+ "auto_impl",
  "clientinfo",
  "crossbeam",
  "curl",
  "curl-sys",
- "env_logger 0.10.1",
- "futures 0.3.29",
+ "env_logger 0.10.2",
+ "futures 0.3.30",
  "http",
  "lru-cache",
  "maplit",
@@ -3078,9 +3062,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
 
 [[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",
@@ -3091,9 +3075,9 @@ dependencies = [
  "http-body",
  "httparse",
  "httpdate",
- "itoa 1.0.9",
+ "itoa 1.0.10",
  "pin-project-lite",
- "socket2 0.4.10",
+ "socket2 0.5.5",
  "tokio",
  "tower-service",
  "tracing",
@@ -3129,9 +3113,9 @@ dependencies = [
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.58"
+version = "0.1.59"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20"
+checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
@@ -3185,9 +3169,9 @@ dependencies = [
 
 [[package]]
 name = "idna"
-version = "0.4.0"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
 dependencies = [
  "unicode-bidi",
  "unicode-normalization",
@@ -3195,17 +3179,16 @@ dependencies = [
 
 [[package]]
 name = "ignore"
-version = "0.4.20"
+version = "0.4.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492"
+checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1"
 dependencies = [
+ "crossbeam-deque",
  "globset",
- "lazy_static",
  "log",
  "memchr",
- "regex",
+ "regex-automata 0.4.3",
  "same-file",
- "thread_local",
  "walkdir",
  "winapi-util",
 ]
@@ -3255,11 +3238,8 @@ version = "1.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
 dependencies = [
- "arbitrary",
  "autocfg",
  "hashbrown 0.12.3",
- "rayon",
- "serde",
 ]
 
 [[package]]
@@ -3268,8 +3248,11 @@ version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
 dependencies = [
+ "arbitrary",
  "equivalent",
- "hashbrown 0.14.2",
+ "hashbrown 0.14.3",
+ "rayon",
+ "serde",
 ]
 
 [[package]]
@@ -3323,7 +3306,7 @@ version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
 dependencies = [
- "hermit-abi 0.3.3",
+ "hermit-abi 0.3.4",
  "libc",
  "windows-sys 0.48.0",
 ]
@@ -3345,13 +3328,13 @@ dependencies = [
 
 [[package]]
 name = "is-terminal"
-version = "0.4.9"
+version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
+checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455"
 dependencies = [
- "hermit-abi 0.3.3",
- "rustix 0.38.24",
- "windows-sys 0.48.0",
+ "hermit-abi 0.3.4",
+ "rustix 0.38.30",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -3381,9 +3364,9 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
 
 [[package]]
 name = "itoa"
-version = "1.0.9"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
 name = "jobserver"
@@ -3396,9 +3379,9 @@ dependencies = [
 
 [[package]]
 name = "js-sys"
-version = "0.3.65"
+version = "0.3.67"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8"
+checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -3444,9 +3427,9 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.150"
+version = "0.2.152"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
+checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
 
 [[package]]
 name = "libgit2-sys"
@@ -3464,9 +3447,9 @@ dependencies = [
 
 [[package]]
 name = "libnghttp2-sys"
-version = "0.1.8+1.55.1"
+version = "0.1.9+1.58.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fae956c192dadcdb5dace96db71fa0b827333cce7c7b38dc71446f024d8a340"
+checksum = "b57e858af2798e167e709b9d969325b6d8e9d50232fcbc494d7d54f976854a64"
 dependencies = [
  "cc",
  "libc",
@@ -3478,9 +3461,9 @@ version = "0.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "libc",
- "redox_syscall 0.4.1",
+ "redox_syscall",
 ]
 
 [[package]]
@@ -3499,9 +3482,9 @@ dependencies = [
 
 [[package]]
 name = "libz-sys"
-version = "1.1.12"
+version = "1.1.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b"
+checksum = "295c17e837573c8c821dbaeb3cceb3d745ad082f7572191409e69cbc1b3fd050"
 dependencies = [
  "cc",
  "libc",
@@ -3549,9 +3532,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.11"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
 
 [[package]]
 name = "local-encoding"
@@ -3589,7 +3572,7 @@ version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a4a83fb7698b3643a0e34f9ae6f2e8f0178c0fd42f8b59d493aa271ff3a5bf21"
 dependencies = [
- "hashbrown 0.14.2",
+ "hashbrown 0.14.3",
 ]
 
 [[package]]
@@ -3639,6 +3622,7 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "crossbeam",
+ "factory",
  "manifest",
  "minibench",
  "minibytes",
@@ -3685,9 +3669,9 @@ checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
 
 [[package]]
 name = "memchr"
-version = "2.6.4"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "memmap2"
@@ -3748,7 +3732,7 @@ dependencies = [
 name = "metrics"
 version = "0.1.0"
 dependencies = [
- "futures 0.3.29",
+ "futures 0.3.30",
  "once_cell",
 ]
 
@@ -3802,6 +3786,16 @@ name = "minibench"
 version = "0.1.0"
 
 [[package]]
+name = "minibench_examples"
+version = "0.1.0"
+dependencies = [
+ "crossbeam",
+ "futures 0.3.30",
+ "minibench",
+ "tokio",
+]
+
+[[package]]
 name = "minibytes"
 version = "0.1.0"
 dependencies = [
@@ -3812,12 +3806,6 @@ dependencies = [
 ]
 
 [[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.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3828,9 +3816,9 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.9"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0"
+checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
 dependencies = [
  "libc",
  "log",
@@ -3891,10 +3879,10 @@ name = "mutationstore"
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "dag",
  "drawdag",
- "futures 0.3.29",
+ "futures 0.3.30",
  "indexedlog",
  "rand 0.8.5",
  "rand_chacha 0.3.1",
@@ -3955,7 +3943,7 @@ version = "0.27.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "cfg-if 1.0.0",
  "libc",
 ]
@@ -4001,20 +3989,10 @@ dependencies = [
 ]
 
 [[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 = "nonblocking"
 version = "0.1.0"
 dependencies = [
- "futures 0.3.29",
+ "futures 0.3.30",
 ]
 
 [[package]]
@@ -4074,7 +4052,7 @@ version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 dependencies = [
- "hermit-abi 0.3.3",
+ "hermit-abi 0.3.4",
  "libc",
 ]
 
@@ -4089,18 +4067,18 @@ 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 = [
  "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 = "opaque-debug"
@@ -4121,11 +4099,11 @@ dependencies = [
 
 [[package]]
 name = "openssl"
-version = "0.10.59"
+version = "0.10.62"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a257ad03cd8fb16ad4172fedf8094451e1af1c4b70097636ef2eac9a5f0cc33"
+checksum = "8cde4d2d9200ad5909f8dac647e29482e07c3a35de8a13fce7c9c7747ad9f671"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "cfg-if 1.0.0",
  "foreign-types",
  "libc",
@@ -4142,7 +4120,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -4153,9 +4131,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.95"
+version = "0.9.98"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40a4130519a360279579c2053038317e40eff64d13fd3f004f9e1b72b8a6aaf9"
+checksum = "c1665caf8ab2dc9aef43d1c0023bd904633a6a05cb30b0ad59bec2ae986e57a7"
 dependencies = [
  "cc",
  "libc",
@@ -4226,7 +4204,7 @@ checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
  "cfg-if 1.0.0",
  "libc",
- "redox_syscall 0.4.1",
+ "redox_syscall",
  "smallvec",
  "windows-targets 0.48.5",
 ]
@@ -4266,7 +4244,7 @@ name = "pathmatcher"
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "fancy-regex",
  "fs-err",
  "glob",
@@ -4283,31 +4261,30 @@ dependencies = [
 
 [[package]]
 name = "pem"
-version = "0.8.3"
+version = "3.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd56cbd21fea48d0c440b41cd69c589faacade08c992d9a54e471b79d0fd13eb"
+checksum = "1b8fcc794035347fb64beda2d3b462595dd2753e3f268d89c5aae77e8cf2c310"
 dependencies = [
- "base64 0.13.1",
- "once_cell",
- "regex",
+ "base64 0.21.7",
+ "serde",
 ]
 
 [[package]]
 name = "percent-encoding"
-version = "2.3.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "perthread"
 version = "0.1.0"
-source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#d17bd97085a53e3da27b6349a6c03e9210b15e05"
+source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5"
 
 [[package]]
 name = "pest"
-version = "2.7.5"
+version = "2.7.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5"
+checksum = "1f200d8d83c44a45b21764d1916299752ca035d15ecd46faca3e9a2a2bf6ad06"
 dependencies = [
  "memchr",
  "thiserror",
@@ -4316,9 +4293,9 @@ dependencies = [
 
 [[package]]
 name = "pest_derive"
-version = "2.7.5"
+version = "2.7.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81d78524685f5ef2a3b3bd1cafbc9fcabb036253d9b1463e726a91cd16e2dfc2"
+checksum = "bcd6ab1236bbdb3a49027e920e693192ebfe8913f6d60e294de57463a493cfde"
 dependencies = [
  "pest",
  "pest_generator",
@@ -4326,22 +4303,22 @@ dependencies = [
 
 [[package]]
 name = "pest_generator"
-version = "2.7.5"
+version = "2.7.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68bd1206e71118b5356dae5ddc61c8b11e28b09ef6a31acbd15ea48a28e0c227"
+checksum = "2a31940305ffc96863a735bef7c7994a00b325a7138fdbc5bda0f1a0476d3275"
 dependencies = [
  "pest",
  "pest_meta",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "pest_meta"
-version = "2.7.5"
+version = "2.7.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c747191d4ad9e4a4ab9c8798f1e82a39affe7ef9648390b7e5548d18e099de6"
+checksum = "a7ff62f5259e53b78d1af898941cdcdccfae7385cf7d793a6e55de5d05bb4b7d"
 dependencies = [
  "once_cell",
  "pest",
@@ -4397,7 +4374,7 @@ dependencies = [
  "phf_shared 0.11.2",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -4455,7 +4432,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -4481,9 +4458,9 @@ dependencies = [
 
 [[package]]
 name = "pkg-config"
-version = "0.3.27"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
 
 [[package]]
 name = "plist"
@@ -4491,7 +4468,7 @@ version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
  "indexmap 2.1.0",
  "line-wrap",
  "quick-xml",
@@ -4571,9 +4548,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.69"
+version = "1.0.76"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
+checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c"
 dependencies = [
  "unicode-ident",
 ]
@@ -4696,6 +4673,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "pycbor"
+version = "0.1.0"
+dependencies = [
+ "cpython",
+ "cpython_ext",
+ "serde_cbor",
+]
+
+[[package]]
 name = "pycext"
 version = "0.1.0"
 dependencies = [
@@ -4709,20 +4695,23 @@ name = "pycheckout"
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "async-runtime",
  "checkout",
+ "configmodel",
  "cpython",
  "cpython_ext",
+ "io",
  "manifest-tree",
+ "parking_lot",
  "pathmatcher",
  "progress-model",
- "pyconfigloader",
  "pymanifest",
  "pypathmatcher",
  "pystatus",
  "pytreestate",
  "storemodel",
+ "termlogger",
  "vfs",
+ "workingcopy",
 ]
 
 [[package]]
@@ -4788,7 +4777,7 @@ dependencies = [
  "cpython",
  "cpython_ext",
  "dag",
- "futures 0.3.29",
+ "futures 0.3.30",
  "hgcommits",
  "minibytes",
  "parking_lot",
@@ -4859,7 +4848,7 @@ dependencies = [
  "edenapi",
  "edenapi_ext",
  "edenapi_types",
- "futures 0.3.29",
+ "futures 0.3.30",
  "hgstore",
  "minibytes",
  "progress-model",
@@ -4911,6 +4900,7 @@ dependencies = [
  "pydag",
  "pyedenapi",
  "pymetalog",
+ "types",
 ]
 
 [[package]]
@@ -5107,6 +5097,7 @@ dependencies = [
  "anyhow",
  "cpython",
  "cpython_ext",
+ "io",
  "pathmatcher",
  "tracing",
  "types",
@@ -5197,13 +5188,9 @@ name = "pyrevisionstore"
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "async-runtime",
- "async-trait",
  "configmodel",
  "cpython",
  "cpython_ext",
- "futures 0.3.29",
- "io",
  "minibytes",
  "parking_lot",
  "pyconfigloader",
@@ -5372,10 +5359,13 @@ dependencies = [
  "parking_lot",
  "pathmatcher",
  "pyconfigloader",
+ "pyedenclient",
  "pypathmatcher",
  "pystatus",
  "pytreestate",
+ "repostate",
  "sparse",
+ "termlogger",
  "types",
  "workingcopy",
 ]
@@ -5432,7 +5422,7 @@ dependencies = [
 [[package]]
 name = "quickcheck_arbitrary_derive"
 version = "0.1.0"
-source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#d17bd97085a53e3da27b6349a6c03e9210b15e05"
+source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5"
 dependencies = [
  "proc-macro2",
  "quickcheck",
@@ -5453,9 +5443,9 @@ dependencies = [
 
 [[package]]
 name = "quote"
-version = "1.0.33"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
@@ -5559,7 +5549,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.12",
  "serde",
 ]
 
@@ -5583,9 +5573,9 @@ dependencies = [
 
 [[package]]
 name = "rayon"
-version = "1.8.0"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
+checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051"
 dependencies = [
  "either",
  "rayon-core",
@@ -5593,12 +5583,12 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.12.0"
+version = "1.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
 dependencies = [
  "crossbeam-deque",
- "crossbeam-utils 0.8.16",
+ "crossbeam-utils 0.8.19",
 ]
 
 [[package]]
@@ -5612,15 +5602,6 @@ dependencies = [
 
 [[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 = "redox_syscall"
 version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
@@ -5634,29 +5615,29 @@ version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
 dependencies = [
- "getrandom 0.2.11",
+ "getrandom 0.2.12",
  "libredox",
  "thiserror",
 ]
 
 [[package]]
 name = "ref-cast"
-version = "1.0.20"
+version = "1.0.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acde58d073e9c79da00f2b5b84eed919c8326832648a5b109b3fce1bb1175280"
+checksum = "c4846d4c50d1721b1a3bef8af76924eef20d5e723647333798c1b519b3a9473f"
 dependencies = [
  "ref-cast-impl",
 ]
 
 [[package]]
 name = "ref-cast-impl"
-version = "1.0.20"
+version = "1.0.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f7473c2cfcf90008193dd0e3e16599455cb601a9fce322b5bb55de799664925"
+checksum = "5fddb4f8d99b0a2ebafc65a87a69a7b9875e4b1ae1f00db265d300ef7f28bccc"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -5740,7 +5721,7 @@ dependencies = [
 name = "renderdag"
 version = "0.1.0"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "dag",
  "itertools",
  "nonblocking",
@@ -5779,7 +5760,6 @@ dependencies = [
  "treestate",
  "types",
  "util",
- "vfs",
  "workingcopy",
 ]
 
@@ -5807,12 +5787,27 @@ dependencies = [
 ]
 
 [[package]]
+name = "repostate"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "byteorder",
+ "fs-err",
+ "identity",
+ "repolock",
+ "serde",
+ "tempfile",
+ "types",
+ "util",
+]
+
+[[package]]
 name = "reqwest"
-version = "0.11.22"
+version = "0.11.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b"
+checksum = "37b1ae8d9ac08420c66222fb9096fc5de435c3c48542bc5336c51892cffafb41"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
  "bytes",
  "cookie",
  "cookie_store",
@@ -5856,22 +5851,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "reqwest-eventsource"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f529a5ff327743addc322af460761dff5b50e0c826b9e6ac44c3195c50bb2026"
-dependencies = [
- "eventsource-stream",
- "futures-core",
- "futures-timer",
- "mime",
- "nom 7.1.3",
- "pin-project-lite",
- "reqwest",
- "thiserror",
-]
-
-[[package]]
 name = "revisionstore"
 version = "0.1.0"
 dependencies = [
@@ -5889,7 +5868,7 @@ dependencies = [
  "fbinit",
  "fn-error-context",
  "fs-err",
- "futures 0.3.29",
+ "futures 0.3.30",
  "hex",
  "hg-http",
  "hg-metrics",
@@ -5907,6 +5886,7 @@ dependencies = [
  "minibytes",
  "mockito",
  "mpatch",
+ "once_cell",
  "parking_lot",
  "progress-model",
  "quickcheck",
@@ -5985,12 +5965,12 @@ dependencies = [
 
 [[package]]
 name = "ring"
-version = "0.17.5"
+version = "0.17.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb0205304757e5d899b9c2e448b867ffd03ae7f988002e47cd24954391394d0b"
+checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
 dependencies = [
  "cc",
- "getrandom 0.2.11",
+ "getrandom 0.2.12",
  "libc",
  "spin",
  "untrusted",
@@ -6049,22 +6029,22 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.24"
+version = "0.38.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ad981d6c340a49cdc40a1028d9c6084ec7e9fa33fcb839cab656a267071e234"
+checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "errno",
  "libc",
- "linux-raw-sys 0.4.11",
- "windows-sys 0.48.0",
+ "linux-raw-sys 0.4.13",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "rustls"
-version = "0.21.8"
+version = "0.21.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "446e14c5cda4f3f30fe71863c34ec70f5ac79d6087097ad0bb433e1be5edf04c"
+checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
 dependencies = [
  "log",
  "ring",
@@ -6090,7 +6070,7 @@ 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]]
@@ -6111,9 +6091,9 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 
 [[package]]
 name = "ryu"
-version = "1.0.15"
+version = "1.0.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
 
 [[package]]
 name = "safemem"
@@ -6143,11 +6123,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]]
@@ -6157,7 +6137,7 @@ dependencies = [
  "anyhow",
  "clap 2.34.0",
  "commitcloudsubscriber",
- "env_logger 0.10.1",
+ "env_logger 0.10.2",
  "libc",
  "log",
  "serde",
@@ -6231,9 +6211,9 @@ dependencies = [
 
 [[package]]
 name = "serde"
-version = "1.0.192"
+version = "1.0.195"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001"
+checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02"
 dependencies = [
  "serde_derive",
 ]
@@ -6245,7 +6225,7 @@ version = "0.1.0"
 [[package]]
 name = "serde_bser"
 version = "0.3.1"
-source = "git+https://github.com/facebook/watchman.git?branch=main#4bec06637edeb66496e53d678095fb427040b462"
+source = "git+https://github.com/facebook/watchman.git?branch=main#d52738785ded4c290fb08adcb244e4c34ef1ffdd"
 dependencies = [
  "anyhow",
  "byteorder",
@@ -6257,9 +6237,9 @@ dependencies = [
 
 [[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",
 ]
@@ -6276,13 +6256,13 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.192"
+version = "1.0.195"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1"
+checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -6296,20 +6276,20 @@ dependencies = [
 
 [[package]]
 name = "serde_json"
-version = "1.0.108"
+version = "1.0.111"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
+checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4"
 dependencies = [
- "itoa 1.0.9",
+ "itoa 1.0.10",
  "ryu",
  "serde",
 ]
 
 [[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",
 ]
@@ -6333,7 +6313,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
 dependencies = [
  "form_urlencoded",
- "itoa 1.0.9",
+ "itoa 1.0.10",
  "ryu",
  "serde",
 ]
@@ -6445,9 +6425,9 @@ dependencies = [
 
 [[package]]
 name = "similar"
-version = "2.3.0"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2aeaf503862c419d66959f5d7ca015337d864e9c49485d771b732e2a20453597"
+checksum = "32fea41aca09ee824cc9724996433064c89f7777e60762749a4170a14abbfa21"
 
 [[package]]
 name = "simple_asn1"
@@ -6498,9 +6478,9 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.11.2"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
 
 [[package]]
 name = "socket2"
@@ -6525,7 +6505,7 @@ dependencies = [
 [[package]]
 name = "sorted_vector_map"
 version = "0.1.0"
-source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#d17bd97085a53e3da27b6349a6c03e9210b15e05"
+source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5"
 dependencies = [
  "itertools",
  "quickcheck",
@@ -6536,11 +6516,12 @@ name = "sparse"
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "futures 0.3.29",
+ "futures 0.3.30",
  "globset",
  "once_cell",
  "pathmatcher",
  "regex",
+ "syncify",
  "thiserror",
  "tokio",
  "tracing",
@@ -6582,26 +6563,27 @@ name = "staticconfig_macros"
 version = "0.1.0"
 dependencies = [
  "hgrc-parser",
- "indexmap 1.9.3",
+ "indexmap 2.1.0",
 ]
 
 [[package]]
 name = "stats"
 version = "0.1.0"
-source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#d17bd97085a53e3da27b6349a6c03e9210b15e05"
+source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5"
 dependencies = [
  "fbinit",
- "futures 0.3.29",
+ "futures 0.3.30",
  "once_cell",
  "perthread",
  "stats_traits",
- "tokio_shim",
+ "tokio",
+ "tokio-stream",
 ]
 
 [[package]]
 name = "stats_traits"
 version = "0.1.0"
-source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#d17bd97085a53e3da27b6349a6c03e9210b15e05"
+source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5"
 dependencies = [
  "auto_impl",
  "dashmap",
@@ -6620,12 +6602,14 @@ name = "storemodel"
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "async-runtime",
  "async-trait",
  "configmodel",
  "edenapi_trait",
- "futures 0.3.29",
+ "edenapi_types",
+ "factory",
+ "futures 0.3.30",
  "minibytes",
+ "once_cell",
  "serde",
  "types",
 ]
@@ -6637,7 +6621,7 @@ dependencies = [
  "bit-set",
  "dirs 2.0.2",
  "enum_dispatch",
- "indexmap 1.9.3",
+ "indexmap 2.1.0",
  "lazy_static",
  "lru",
  "memmap2",
@@ -6661,7 +6645,7 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "async-trait",
- "futures 0.3.29",
+ "futures 0.3.30",
  "pin-project 0.4.30",
  "tokio",
 ]
@@ -6729,15 +6713,15 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
 
 [[package]]
 name = "sval"
-version = "2.10.2"
+version = "2.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b15df12a8db7c216a04b4b438f90d50d5335cd38f161b56389c9f5c9d96d0873"
+checksum = "1604e9ab506f4805bc62d2868c6d20f23fa6ced4c7cfe695a1d20589ba5c63d0"
 
 [[package]]
 name = "sval_buffer"
-version = "2.10.2"
+version = "2.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57e80556bc8acea0446e574ce542ad6114a76a0237f28a842bc01ca3ea98f479"
+checksum = "2831b6451148d344f612016d4277348f7721b78a0869a145fd34ef8b06b3fa2e"
 dependencies = [
  "sval",
  "sval_ref",
@@ -6745,54 +6729,64 @@ dependencies = [
 
 [[package]]
 name = "sval_dynamic"
-version = "2.10.2"
+version = "2.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d93d2259edb1d7b4316179f0a98c62e3ffc726f47ab200e07cfe382771f57b8"
+checksum = "238ac5832a23099a413ffd22e66f7e6248b9af4581b64c758ca591074be059fc"
 dependencies = [
  "sval",
 ]
 
 [[package]]
 name = "sval_fmt"
-version = "2.10.2"
+version = "2.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "532f7f882226f7a5a4656f5151224aaebf8217e0d539cb1595b831bace921343"
+checksum = "c8474862431bac5ac7aee8a12597798e944df33f489c340e17e886767bda0c4e"
 dependencies = [
- "itoa 1.0.9",
+ "itoa 1.0.10",
  "ryu",
  "sval",
 ]
 
 [[package]]
 name = "sval_json"
-version = "2.10.2"
+version = "2.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76e03bd8aa0ae6ee018f7ae95c9714577687a4415bd1a5f19b26e34695f7e072"
+checksum = "d8f348030cc3d2a11eb534145600601f080cf16bf9ec0783efecd2883f14c21e"
 dependencies = [
- "itoa 1.0.9",
+ "itoa 1.0.10",
  "ryu",
  "sval",
 ]
 
 [[package]]
+name = "sval_nested"
+version = "2.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6659c3f6be1e5e99dc7c518877f48a8a39088ace2504b046db789bd78ce5969d"
+dependencies = [
+ "sval",
+ "sval_buffer",
+ "sval_ref",
+]
+
+[[package]]
 name = "sval_ref"
-version = "2.10.2"
+version = "2.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75ed054f2fb8c2a0ab5d36c1ec57b412919700099fc5e32ad8e7a38b23e1a9e1"
+checksum = "829ad319bd82d0da77be6f3d547623686c453502f8eebdeb466cfa987972bd28"
 dependencies = [
  "sval",
 ]
 
 [[package]]
 name = "sval_serde"
-version = "2.10.2"
+version = "2.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ff191c4ff05b67e3844c161021427646cde5d6624597958be158357d9200586"
+checksum = "1a9da6c3efaedf8b8c0861ec5343e8e8c51d838f326478623328bd8728b79bca"
 dependencies = [
  "serde",
  "sval",
- "sval_buffer",
- "sval_fmt",
+ "sval_nested",
 ]
 
 [[package]]
@@ -6808,9 +6802,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.39"
+version = "2.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -6818,6 +6812,13 @@ dependencies = [
 ]
 
 [[package]]
+name = "syncify"
+version = "0.1.0"
+dependencies = [
+ "tree-pattern-match",
+]
+
+[[package]]
 name = "synstructure"
 version = "0.12.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6866,22 +6867,22 @@ dependencies = [
 
 [[package]]
 name = "tempfile"
-version = "3.8.1"
+version = "3.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
+checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
 dependencies = [
  "cfg-if 1.0.0",
  "fastrand 2.0.1",
- "redox_syscall 0.4.1",
- "rustix 0.38.24",
- "windows-sys 0.48.0",
+ "redox_syscall",
+ "rustix 0.38.30",
+ "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",
 ]
@@ -6902,7 +6903,7 @@ version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
 dependencies = [
- "rustix 0.38.24",
+ "rustix 0.38.30",
  "windows-sys 0.48.0",
 ]
 
@@ -6914,7 +6915,7 @@ checksum = "da31aef70da0f6352dbcb462683eb4dd2bfad01cf3fc96cf204547b9a839a585"
 dependencies = [
  "dirs 4.0.0",
  "fnv",
- "nom 5.1.3",
+ "nom",
  "phf 0.11.2",
  "phf_codegen",
 ]
@@ -7022,22 +7023,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.50"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
+checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.50"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
+checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -7061,7 +7062,7 @@ dependencies = [
  "const-cstr",
  "fb303_core",
  "fbthrift",
- "futures 0.3.29",
+ "futures 0.3.30",
  "ref-cast",
  "sorted_vector_map",
  "thiserror",
@@ -7080,7 +7081,7 @@ dependencies = [
  "config_thrift",
  "fb303_core",
  "fbthrift",
- "futures 0.3.29",
+ "futures 0.3.30",
  "thiserror",
  "thrift",
 ]
@@ -7088,10 +7089,10 @@ dependencies = [
 [[package]]
 name = "thrift_compiler"
 version = "0.1.0"
-source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#d17bd97085a53e3da27b6349a6c03e9210b15e05"
+source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5"
 dependencies = [
  "anyhow",
- "clap 4.4.8",
+ "clap 4.4.18",
  "serde",
  "which",
 ]
@@ -7105,7 +7106,7 @@ dependencies = [
  "config_thrift",
  "fb303_core",
  "fbthrift",
- "futures 0.3.29",
+ "futures 0.3.30",
  "once_cell",
  "ref-cast",
  "serde",
@@ -7117,12 +7118,12 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.3.30"
+version = "0.3.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5"
+checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e"
 dependencies = [
  "deranged",
- "itoa 1.0.9",
+ "itoa 1.0.10",
  "libc",
  "num_threads",
  "powerfmt",
@@ -7143,9 +7144,9 @@ version = "0.1.0"
 
 [[package]]
 name = "time-macros"
-version = "0.2.15"
+version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20"
+checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f"
 dependencies = [
  "time-core",
 ]
@@ -7177,9 +7178,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.34.0"
+version = "1.35.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9"
+checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
 dependencies = [
  "backtrace",
  "bytes",
@@ -7203,7 +7204,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -7258,10 +7259,10 @@ dependencies = [
 [[package]]
 name = "tokio-uds-compat"
 version = "0.1.0"
-source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#d17bd97085a53e3da27b6349a6c03e9210b15e05"
+source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5"
 dependencies = [
  "async-io",
- "futures 0.3.29",
+ "futures 0.3.30",
  "tokio",
  "tracing",
  "uds_windows",
@@ -7294,7 +7295,7 @@ dependencies = [
  "futures-io",
  "futures-sink",
  "futures-util",
- "hashbrown 0.14.2",
+ "hashbrown 0.14.3",
  "pin-project-lite",
  "slab",
  "tokio",
@@ -7302,18 +7303,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "tokio_shim"
-version = "0.1.0"
-source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#d17bd97085a53e3da27b6349a6c03e9210b15e05"
-dependencies = [
- "futures 0.3.29",
- "pin-project 0.4.30",
- "thiserror",
- "tokio",
- "tokio-stream",
-]
-
-[[package]]
 name = "toml"
 version = "0.8.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -7401,14 +7390,14 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "tracing-collector"
 version = "0.1.0"
 dependencies = [
- "indexmap 1.9.3",
+ "indexmap 2.1.0",
  "libc",
  "parking_lot",
  "serde",
@@ -7434,7 +7423,7 @@ version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2"
 dependencies = [
- "futures 0.3.29",
+ "futures 0.3.30",
  "futures-task",
  "pin-project 1.1.3",
  "tracing",
@@ -7498,6 +7487,7 @@ version = "0.3.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
 dependencies = [
+ "chrono",
  "matchers",
  "nu-ansi-term",
  "once_cell",
@@ -7539,12 +7529,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "tree-pattern-match"
+version = "0.1.0"
+
+[[package]]
 name = "treestate"
 version = "0.1.0"
 dependencies = [
  "anyhow",
  "atomicfile",
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "byteorder",
  "fs-err",
  "fs2",
@@ -7568,9 +7562,9 @@ dependencies = [
 
 [[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 = "twox-hash"
@@ -7628,10 +7622,11 @@ checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
 
 [[package]]
 name = "uds_windows"
-version = "1.0.2"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce65604324d3cce9b966701489fbd0cf318cb1f7bd9dd07ac9a4ee6fb791930d"
+checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9"
 dependencies = [
+ "memoffset 0.9.0",
  "tempfile",
  "winapi 0.3.9",
 ]
@@ -7658,9 +7653,9 @@ dependencies = [
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.13"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-ident"
@@ -7700,7 +7695,7 @@ name = "unionconfig"
 version = "0.1.0"
 dependencies = [
  "configmodel",
- "indexmap 1.9.3",
+ "indexmap 2.1.0",
  "staticconfig",
 ]
 
@@ -7712,12 +7707,12 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
 
 [[package]]
 name = "url"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
 dependencies = [
  "form_urlencoded",
- "idna 0.4.0",
+ "idna 0.5.0",
  "percent-encoding",
 ]
 
@@ -7734,6 +7729,7 @@ dependencies = [
  "anyhow",
  "atomicfile",
  "dirs 2.0.2",
+ "fn-error-context",
  "fs2",
  "hostname 0.3.1",
  "lazystr",
@@ -7750,12 +7746,12 @@ dependencies = [
 
 [[package]]
 name = "uuid"
-version = "1.5.0"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88ad59a7560b41a70d191093a945f0b87bc1deeda46fb237479708a1d6b6cdfc"
+checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
 dependencies = [
  "atomic",
- "getrandom 0.2.11",
+ "getrandom 0.2.12",
  "serde",
  "sha1_smol",
 ]
@@ -7768,9 +7764,9 @@ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
 
 [[package]]
 name = "value-bag"
-version = "1.4.2"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4a72e1902dde2bd6441347de2b70b7f5d59bf157c6c62f0c44572607a1d55bbe"
+checksum = "7cdbaf5e132e593e9fc1de6a15bbec912395b11fb9719e061cf64f804524c503"
 dependencies = [
  "value-bag-serde1",
  "value-bag-sval2",
@@ -7778,9 +7774,9 @@ dependencies = [
 
 [[package]]
 name = "value-bag-serde1"
-version = "1.4.2"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07ba39dc791ecb35baad371a3fc04c6eab688c04937d2e0ac6c22b612c0357bf"
+checksum = "92cad98b1b18d06b6f38b3cd04347a9d7a3a0111441a061f71377fb6740437e4"
 dependencies = [
  "erased-serde",
  "serde",
@@ -7789,9 +7785,9 @@ dependencies = [
 
 [[package]]
 name = "value-bag-sval2"
-version = "1.4.2"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3e06c10810a57bbf45778d023d432a50a1daa7d185991ae06bcfb6c654d0945"
+checksum = "3dc7271d6b3bf58dd2e610a601c0e159f271ffdb7fbb21517c40b52138d64f8e"
 dependencies = [
  "sval",
  "sval_buffer",
@@ -7905,9 +7901,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.88"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce"
+checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406"
 dependencies = [
  "cfg-if 1.0.0",
  "wasm-bindgen-macro",
@@ -7915,24 +7911,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.88"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217"
+checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.38"
+version = "0.4.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9afec9963e3d0994cac82455b2b3502b81a7f40f9a0d32181f7528d9f4b43e02"
+checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461"
 dependencies = [
  "cfg-if 1.0.0",
  "js-sys",
@@ -7942,9 +7938,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.88"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2"
+checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -7952,22 +7948,22 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.88"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907"
+checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.88"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b"
+checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b"
 
 [[package]]
 name = "wasm-streams"
@@ -7985,11 +7981,11 @@ dependencies = [
 [[package]]
 name = "watchman_client"
 version = "0.8.0"
-source = "git+https://github.com/facebook/watchman.git?branch=main#4bec06637edeb66496e53d678095fb427040b462"
+source = "git+https://github.com/facebook/watchman.git?branch=main#d52738785ded4c290fb08adcb244e4c34ef1ffdd"
 dependencies = [
  "anyhow",
  "bytes",
- "futures 0.3.29",
+ "futures 0.3.30",
  "maplit",
  "serde",
  "serde_bser",
@@ -8001,9 +7997,9 @@ dependencies = [
 
 [[package]]
 name = "web-sys"
-version = "0.3.65"
+version = "0.3.67"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85"
+checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -8011,9 +8007,9 @@ dependencies = [
 
 [[package]]
 name = "webpki-roots"
-version = "0.25.2"
+version = "0.25.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc"
+checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10"
 
 [[package]]
 name = "webview-app"
@@ -8093,7 +8089,7 @@ dependencies = [
  "either",
  "home",
  "once_cell",
- "rustix 0.38.24",
+ "rustix 0.38.30",
 ]
 
 [[package]]
@@ -8147,20 +8143,11 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[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",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.45.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
-dependencies = [
- "windows-targets 0.42.2",
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
@@ -8173,18 +8160,12 @@ dependencies = [
 ]
 
 [[package]]
-name = "windows-targets"
-version = "0.42.2"
+name = "windows-sys"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "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",
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
@@ -8203,10 +8184,19 @@ dependencies = [
 ]
 
 [[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.42.2"
+name = "windows-targets"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+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"
@@ -8215,10 +8205,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
-name = "windows_aarch64_msvc"
-version = "0.42.2"
+name = "windows_aarch64_gnullvm"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -8227,10 +8217,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
-name = "windows_i686_gnu"
-version = "0.42.2"
+name = "windows_aarch64_msvc"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -8239,10 +8229,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
-name = "windows_i686_msvc"
-version = "0.42.2"
+name = "windows_i686_gnu"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -8251,10 +8241,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
-name = "windows_x86_64_gnu"
-version = "0.42.2"
+name = "windows_i686_msvc"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -8263,10 +8253,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.42.2"
+name = "windows_x86_64_gnu"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -8275,10 +8265,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
-name = "windows_x86_64_msvc"
-version = "0.42.2"
+name = "windows_x86_64_gnullvm"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -8287,10 +8277,16 @@ 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 = "winnow"
-version = "0.5.19"
+version = "0.5.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b"
+checksum = "b7cf47b659b318dccbd69cc4797a39ae128f533dce7902a1096044d1967b9c16"
 dependencies = [
  "memchr",
 ]
@@ -8312,28 +8308,28 @@ dependencies = [
  "anyhow",
  "async-runtime",
  "async-trait",
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "configloader",
  "configmodel",
  "crossbeam",
  "edenfs-client",
  "fs-err",
- "futures 0.3.29",
  "hgtime",
  "identity",
- "io",
  "manifest",
  "manifest-tree",
  "parking_lot",
  "pathmatcher",
  "progress-model",
  "repolock",
+ "repostate",
  "serde",
  "serde_json",
  "sparse",
  "status",
  "storemodel",
  "tempfile",
+ "termlogger",
  "thiserror",
  "tokio",
  "tracing",
@@ -8376,22 +8372,22 @@ checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
 
 [[package]]
 name = "zerocopy"
-version = "0.7.26"
+version = "0.7.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e97e415490559a91254a2979b4829267a57d2fcd741a98eee8b722fb57289aa0"
+checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
 dependencies = [
  "zerocopy-derive",
 ]
 
 [[package]]
 name = "zerocopy-derive"
-version = "0.7.26"
+version = "0.7.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd7e48ccf166952882ca8bd778a43502c64f33bf94c12ebe2a7f08e5a0f6689f"
+checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
diff --git a/pkgs/applications/version-management/sapling/default.nix b/pkgs/applications/version-management/sapling/default.nix
index 8e77f2d3cc6c..0d99b350c0b8 100644
--- a/pkgs/applications/version-management/sapling/default.nix
+++ b/pkgs/applications/version-management/sapling/default.nix
@@ -48,7 +48,7 @@ let
     owner = "facebook";
     repo = "sapling";
     rev = version;
-    hash = "sha256-+LxvPJkyq/6gtcBQepZ5pVGXP1/h30zhCHVfUGPUzFE=";
+    hash = "sha256-uzev4x9jY6foop35z4dvUMIfjRtRqhNFDVFpagOosAc";
   };
 
   addonsSrc = "${src}/addons";
@@ -56,7 +56,7 @@ let
   # Fetches the Yarn modules in Nix to to be used as an offline cache
   yarnOfflineCache = fetchYarnDeps {
     yarnLock = "${addonsSrc}/yarn.lock";
-    sha256 = "sha256-3JFrVk78EiNVLLXkCFbuRnXwYHNfVv1pBPBS1yCHtPU=";
+    sha256 = "sha256-3JFrVk78EiNVLLXkCFbuRnXwYHNfVv1pBPBS1yCHtPU";
   };
 
   # Builds the NodeJS server that runs with `sl web`
@@ -113,10 +113,10 @@ python3Packages.buildPythonApplication {
     lockFile = ./Cargo.lock;
     outputHashes = {
       "abomonation-0.7.3+smallvec1" = "sha256-AxEXR6GC8gHjycIPOfoViP7KceM29p2ZISIt4iwJzvM=";
-      "cloned-0.1.0" = "sha256-dtAyQq6fgxvr1RXPQHGiCQesvitsKpVkis4c50uolLc=";
-      "fb303_core-0.0.0" = "sha256-j+4zPXxewRxJsPQaAfvcpSkGNKw3d+inVL45Ibo7Q4E=";
-      "fbthrift-0.0.1+unstable" = "sha256-fsIL07PFu645eJFttIJU4sRSjIVuA4BMJ6kYAA0BpwY=";
-      "serde_bser-0.3.1" = "sha256-h50EJL6twJwK90sBXu40Oap4SfiT4kQAK1+bA8XKdHw=";
+      "cloned-0.1.0" = "sha256-mzAqjM8qovZAd4ZF0GDuD0Ns/UztAO1pAJhukuKc5a0=";
+      "fb303_core-0.0.0" = "sha256-x8I0Lty+sRclpkNMqTMc29J46z/vMsVwOUS3EX7Shes=";
+      "fbthrift-0.0.1+unstable" = "sha256-yTS1wkh8tETZ4K43V0G+TbkN5jgSlXT0endDPBHa1Ps=";
+      "serde_bser-0.3.1" = "sha256-vvMCa6mlcr+xazxZVl2bcF8/r+ufzZmiQ79KofZGWrA=";
     };
   };
   postPatch = ''
diff --git a/pkgs/applications/version-management/sapling/deps.json b/pkgs/applications/version-management/sapling/deps.json
index 7e7ca0b09dad..adad0c94afbe 100644
--- a/pkgs/applications/version-management/sapling/deps.json
+++ b/pkgs/applications/version-management/sapling/deps.json
@@ -1,5 +1,5 @@
 {
   "links": [],
-  "version": "0.2.20231113-145254+995db0d6",
-  "versionHash": "214505116687308775"
+  "version": "0.2.20240116-133042+8acecb66",
+  "versionHash": "11094621090461381576"
 }
diff --git a/pkgs/applications/version-management/silver-platter/default.nix b/pkgs/applications/version-management/silver-platter/default.nix
index 1e5720f0d0ab..f1653cf10389 100644
--- a/pkgs/applications/version-management/silver-platter/default.nix
+++ b/pkgs/applications/version-management/silver-platter/default.nix
@@ -1,6 +1,8 @@
 { buildPythonApplication
 , lib
+, stdenv
 , fetchFromGitHub
+, pkg-config
 , setuptools
 , setuptools-rust
 , rustPlatform
@@ -9,30 +11,37 @@
 , breezy
 , dulwich
 , jinja2
+, libiconv
+, openssl
 , pyyaml
 , ruamel-yaml
 }:
 
 buildPythonApplication rec {
   pname = "silver-platter";
-  version = "0.5.12";
+  version = "0.5.20";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "jelmer";
     repo = "silver-platter";
     rev = version;
-    hash = "sha256-QkTT9UcJuGDAwpp/CtXobPvfTYQzFakBR72MhF//Bpo=";
+    hash = "sha256-k+C4jrC4FO/yy9Eb6x4lv1zyyp/eGkpMcDqZ0KoxfBs=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-QLnKu9D23FVp1jCSuxN3odPZ1ToAZ6i/FNS8BkmNuQw=";
+    hash = "sha256-+EUj6iBnHF4zlOAAfaHy5V/z6CCD/LFksBClE4FaHHc=";
   };
 
   propagatedBuildInputs = [ setuptools breezy dulwich jinja2 pyyaml ruamel-yaml ];
-  nativeBuildInputs = [ setuptools-rust rustPlatform.cargoSetupHook cargo rustc ];
+  nativeBuildInputs = [ setuptools-rust rustPlatform.cargoSetupHook cargo rustc ]
+    ++ lib.optionals stdenv.isLinux [ pkg-config ];
+  buildInputs = lib.optionals stdenv.isLinux [ openssl ]
+    ++ lib.optionals stdenv.isDarwin [ libiconv ];
+
+  pythonImportsCheck = [ "silver_platter" ];
 
   meta = with lib; {
     description = "Automate the creation of merge proposals for scriptable changes";
diff --git a/pkgs/applications/version-management/subversion/default.nix b/pkgs/applications/version-management/subversion/default.nix
index ecb5093f4be1..0c83d080716c 100644
--- a/pkgs/applications/version-management/subversion/default.nix
+++ b/pkgs/applications/version-management/subversion/default.nix
@@ -128,7 +128,7 @@ let
 
 in {
   subversion = common {
-    version = "1.14.2";
-    sha256 = "sha256-yRMOjQt1copm8OcDj8dwUuZxgw14W1YWqtU7SBDTzCg=";
+    version = "1.14.3";
+    sha256 = "sha256-lJ79RRoJQ19+hXNXTHHHtxsZTYRIkPpJzWHSJi6hpEA=";
   };
 }
diff --git a/pkgs/applications/video/anilibria-winmaclinux/default.nix b/pkgs/applications/video/anilibria-winmaclinux/default.nix
index 93c8e8ec5ce8..ee6c34965200 100644
--- a/pkgs/applications/video/anilibria-winmaclinux/default.nix
+++ b/pkgs/applications/video/anilibria-winmaclinux/default.nix
@@ -2,6 +2,7 @@
 , lib
 , fetchFromGitHub
 , qmake
+, pkg-config
 , qtbase
 , qtquickcontrols2
 , qtwebsockets
@@ -15,29 +16,27 @@
 
 mkDerivation rec {
   pname = "anilibria-winmaclinux";
-  version = "1.2.12";
+  version = "1.2.14";
 
   src = fetchFromGitHub {
     owner = "anilibria";
     repo = "anilibria-winmaclinux";
-    rev = version;
-    sha256 = "sha256-J9MBnHrVnDaJ8Ykf/n8OkWKbK/JfMxorH9E+mKe3T8k=";
+    rev = "d941607f078c72fca104ee1e7916cc0ddcc0acf5";
+    sha256 = "sha256-G4KlYAjOT1UV29vcX7Q8dMTj0BX0rsJcLtK2MQag5nU=";
   };
 
   sourceRoot = "source/src";
 
-  qmakeFlags = [ "PREFIX=${placeholder "out"}" ];
+  qmakeFlags = [ "PREFIX=${placeholder "out"}" "CONFIG+=unixvlc" ];
 
   patches = [
     ./0001-fix-installation-paths.patch
     ./0002-disable-version-check.patch
-    ./0003-build-with-vlc.patch
   ];
 
   preConfigure = ''
     substituteInPlace AniLibria.pro \
-      --replace "\$\$PREFIX" '${placeholder "out"}' \
-      --replace '@VLC_PATH@' '${libvlc}/include'
+      --replace "\$\$PREFIX" '${placeholder "out"}'
   '';
 
   qtWrapperArgs = [
@@ -52,6 +51,7 @@ mkDerivation rec {
 
   nativeBuildInputs = [
     qmake
+    pkg-config
     wrapQtAppsHook
     copyDesktopItems
   ];
diff --git a/pkgs/applications/video/bilibili/default.nix b/pkgs/applications/video/bilibili/default.nix
index 7c9bbc4cfadf..72c4f7bdbf3f 100644
--- a/pkgs/applications/video/bilibili/default.nix
+++ b/pkgs/applications/video/bilibili/default.nix
@@ -7,10 +7,10 @@
 
 stdenv.mkDerivation rec {
   pname = "bilibili";
-  version = "1.12.5-2";
+  version = "1.13.0-2";
   src = fetchurl {
     url = "https://github.com/msojocs/bilibili-linux/releases/download/v${version}/io.github.msojocs.bilibili_${version}_amd64.deb";
-    hash = "sha256-oaQvJQVHXm7I+3rjt0DPMwGOXLhwgJP6wWu2bhaA1s4=";
+    hash = "sha256-svTD8YZBFj0K9/3ggojiH+8cMRkCxHr/hHTC24NL2tE=";
   };
 
   unpackPhase = ''
diff --git a/pkgs/applications/video/corrscope/default.nix b/pkgs/applications/video/corrscope/default.nix
index c1bab7d2949b..8bd17d2f785e 100644
--- a/pkgs/applications/video/corrscope/default.nix
+++ b/pkgs/applications/video/corrscope/default.nix
@@ -31,7 +31,7 @@ mkDerivationWith python3Packages.buildPythonApplication rec {
     })
   ];
 
-  pythonRelaxDeps = [ "attrs" ];
+  pythonRelaxDeps = [ "attrs" "ruamel.yaml" ];
 
   nativeBuildInputs = [
     wrapQtAppsHook
diff --git a/pkgs/applications/video/davinci-resolve/default.nix b/pkgs/applications/video/davinci-resolve/default.nix
index ba37c886352e..faaef6d5b086 100644
--- a/pkgs/applications/video/davinci-resolve/default.nix
+++ b/pkgs/applications/video/davinci-resolve/default.nix
@@ -82,6 +82,7 @@ let
             "email" = "someone@nixos.org";
             "phone" = "+31 71 452 5670";
             "country" = "nl";
+            "street" = "-";
             "state" = "Province of Utrecht";
             "city" = "Utrecht";
             "product" = PRODUCT;
@@ -109,6 +110,7 @@ let
           --data-ascii "$REQJSON" \
           --compressed \
           "$SITEURL/$DOWNLOADID")
+        echo "resolveurl is $RESOLVEURL"
 
         curl \
           --retry 3 --retry-delay 3 \
@@ -252,7 +254,7 @@ buildFHSEnv {
     description = "Professional video editing, color, effects and audio post-processing";
     homepage = "https://www.blackmagicdesign.com/products/davinciresolve";
     license = licenses.unfree;
-    maintainers = with maintainers; [ jshcmpbll ];
+    maintainers = with maintainers; [ jshcmpbll orivej ];
     platforms = [ "x86_64-linux" ];
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     mainProgram = "davinci-resolve";
diff --git a/pkgs/applications/video/flirc/default.nix b/pkgs/applications/video/flirc/default.nix
index 58de5ceab099..fc7302378300 100644
--- a/pkgs/applications/video/flirc/default.nix
+++ b/pkgs/applications/video/flirc/default.nix
@@ -1,23 +1,28 @@
 { lib
-, mkDerivation
+, stdenv
 , fetchurl
 , autoPatchelfHook
+, wrapQtAppsHook
 , hidapi
 , readline
 , qtsvg
 , qtxmlpatterns
 }:
 
-mkDerivation rec {
+stdenv.mkDerivation {
   pname = "flirc";
-  version = "3.24.3";
+  version = "3.27.10";
 
   src = fetchurl {
-    url = "https://web.archive.org/web/20211021211803/http://apt.flirc.tv/arch/x86_64/flirc.latest.x86_64.tar.gz";
-    sha256 = "0p4pp7j70lbw6m25lmjg6ibc67r6jcy7qs3kki9f86ji1jvrxpga";
+    url = "https://web.archive.org/web/20240110170238/http://apt.flirc.tv/arch/x86_64/flirc.latest.x86_64.tar.gz";
+    hash = "sha256-iTr4vzFQ/+dsbsYD6sc8aTHctTkLKf5HnHBnO7cX5qc=";
   };
 
-  nativeBuildInputs = [ autoPatchelfHook ];
+  nativeBuildInputs = [
+    autoPatchelfHook
+    wrapQtAppsHook
+  ];
+
   buildInputs = [
     hidapi
     readline
diff --git a/pkgs/applications/video/kodi/addons/inputstream-adaptive/default.nix b/pkgs/applications/video/kodi/addons/inputstream-adaptive/default.nix
index 60c67f75fa51..49afbf8507b1 100644
--- a/pkgs/applications/video/kodi/addons/inputstream-adaptive/default.nix
+++ b/pkgs/applications/video/kodi/addons/inputstream-adaptive/default.nix
@@ -10,13 +10,13 @@ in
 buildKodiBinaryAddon rec {
   pname = "inputstream-adaptive";
   namespace = "inputstream.adaptive";
-  version = "20.3.14";
+  version = "20.3.16";
 
   src = fetchFromGitHub {
     owner = "xbmc";
     repo = "inputstream.adaptive";
     rev = "${version}-${rel}";
-    sha256 = "sha256-9S98LgeXq2Wc5CLd5WGo7iNM9ZkSuDBO/O35wf0SjZY=";
+    sha256 = "sha256-1OY+3pvpVW8rkj7HL84IECyHpAmWsUQ9mTzuGesH+jI=";
   };
 
   extraCMakeFlags = [
diff --git a/pkgs/applications/video/kodi/addons/inputstream-ffmpegdirect/default.nix b/pkgs/applications/video/kodi/addons/inputstream-ffmpegdirect/default.nix
index 92fc9dc55399..fc3256855917 100644
--- a/pkgs/applications/video/kodi/addons/inputstream-ffmpegdirect/default.nix
+++ b/pkgs/applications/video/kodi/addons/inputstream-ffmpegdirect/default.nix
@@ -3,13 +3,13 @@
 buildKodiBinaryAddon rec {
   pname = "inputstream-ffmpegdirect";
   namespace = "inputstream.ffmpegdirect";
-  version = "20.5.0";
+  version = "unstable-20.5.0";
 
   src = fetchFromGitHub {
     owner = "xbmc";
     repo = "inputstream.ffmpegdirect";
-    rev = "${version}-${rel}";
-    sha256 = "sha256-2Xa5q+o/AYDwG+JYeXTUfMTJk/kln16J8KRcXILNE6c=";
+    rev = rel;
+    sha256 = "sha256-+u28Wzp2TonL5jaa5WJUr9igR6KiaxizZAX9jqqBUns=";
   };
 
   extraBuildInputs = [ bzip2 zlib kodi.ffmpeg ];
diff --git a/pkgs/applications/video/kodi/addons/netflix/default.nix b/pkgs/applications/video/kodi/addons/netflix/default.nix
index ce66665ee73b..2bff3b6d19b3 100644
--- a/pkgs/applications/video/kodi/addons/netflix/default.nix
+++ b/pkgs/applications/video/kodi/addons/netflix/default.nix
@@ -3,13 +3,13 @@
 buildKodiAddon rec {
   pname = "netflix";
   namespace = "plugin.video.netflix";
-  version = "1.23.1";
+  version = "1.23.2";
 
   src = fetchFromGitHub {
     owner = "CastagnaIT";
     repo = namespace;
     rev = "v${version}";
-    sha256 = "sha256-ZY59I3RR/gl24XqZiBkenHM/D4tW/5ZyE4UngtvODYQ=";
+    hash = "sha256-/wHKwFZbuxK0iwlqvZpyfi0lnRkjm/HSn221IgCN7VQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/video/kodi/unwrapped.nix b/pkgs/applications/video/kodi/unwrapped.nix
index 0f0008bd7a1c..0728fb73bb26 100644
--- a/pkgs/applications/video/kodi/unwrapped.nix
+++ b/pkgs/applications/video/kodi/unwrapped.nix
@@ -1,5 +1,4 @@
 { stdenv, lib, fetchFromGitHub, autoconf, automake, libtool, makeWrapper
-, fetchpatch
 , pkg-config, cmake, yasm, python3Packages
 , libxcrypt, libgcrypt, libgpg-error, libunistring
 , boost, avahi, lame
@@ -39,15 +38,15 @@ assert usbSupport -> !udevSupport; # libusb-compat-0_1 won't be used if udev is
 assert gbmSupport || waylandSupport || x11Support;
 
 let
-  kodiReleaseDate = "20230629";
-  kodiVersion = "20.2";
+  kodiReleaseDate = "20240109";
+  kodiVersion = "20.3";
   rel = "Nexus";
 
   kodi_src = fetchFromGitHub {
     owner = "xbmc";
     repo = "xbmc";
     rev = "${kodiVersion}-${rel}";
-    hash = "sha256-nNdBjqY9gkpv3g/hcyjWPENHFwOlxrKs2cT4IvRPuXs=";
+    hash = "sha256-OMm8WhTQiEZvu8jHOUp2zT4Xd4NU3svMobW2k8AAtNI=";
   };
 
   # see https://github.com/xbmc/xbmc/blob/${kodiVersion}-${rel}/tools/depends/target/ to get suggested versions for all dependencies
@@ -111,15 +110,6 @@ in stdenv.mkDerivation {
     version = kodiVersion;
 
     src = kodi_src;
-    patches = [
-      # Fix compatiblity with fmt 10.0 (from spdlog).
-      # Remove with the next release: https://github.com/xbmc/xbmc/pull/23453
-      (fetchpatch {
-        name = "Fix fmt10 compat";
-        url = "https://github.com/xbmc/xbmc/compare/acca69baa2eae65123e78ee2f77249181725ef5d...26c164a28cfd18ceef7a1f2bbba5bf8a4a5a750c.patch";
-        hash = "sha256-zMUparbQ8gfgeXj8W3MDmPi5OgLNz/zGCJINU7H6Rx0=";
-      })
-    ];
     buildInputs = [
       gnutls libidn2 libtasn1 nasm p11-kit
       libxml2 python3Packages.python
diff --git a/pkgs/applications/video/makemkv/default.nix b/pkgs/applications/video/makemkv/default.nix
index bc6fec4c5915..dc016fda0a99 100644
--- a/pkgs/applications/video/makemkv/default.nix
+++ b/pkgs/applications/video/makemkv/default.nix
@@ -14,21 +14,21 @@
 }:
 
 let
-  version = "1.17.5";
+  version = "1.17.6";
   # 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 = "ywCcMfaWAeL2bjFZJaCa0XW60EHyfFCW17Bt1QBN8E8=";
+    sha256 = "KHZGAFAp93HTZs8OT76xf88QM0UtlVVH3q57CZm07Rs=";
   };
   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 = "/C9LDcUxF6tJkn2aQV+nMILRpK5H3wxOMMxHEMTC/CI=";
+    sha256 = "2dtNdyv0+QYWQrfrIu5RQKSN4scSWKuLFNlJZXpxDUM=";
   };
 
 in mkDerivation {
diff --git a/pkgs/applications/video/media-downloader/default.nix b/pkgs/applications/video/media-downloader/default.nix
index 26620b25957d..2b9244186e76 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.1.0";
+  version = "4.2.0";
 
   src = fetchFromGitHub {
     owner = "mhogomchungu";
     repo = "media-downloader";
     rev = finalAttrs.version;
-    hash = "sha256-x2uM4z4nQd761aj8PVlFH0MbWzwWRiR7ItzLQVOc1Zw=";
+    hash = "sha256-hQLrs4RyHUtcG03h0nCn3uMsHEskGKMVwUkcssGZQLs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/video/memento/default.nix b/pkgs/applications/video/memento/default.nix
index f09b3a79794d..cee74556eaab 100644
--- a/pkgs/applications/video/memento/default.nix
+++ b/pkgs/applications/video/memento/default.nix
@@ -22,13 +22,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "memento";
-  version = "1.2.1";
+  version = "1.2.2";
 
   src = fetchFromGitHub {
     owner = "ripose-jp";
     repo = "Memento";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-DUAr+twlIzyi+PnQYsTz9j9KcbzI0GhtC+f4nTekhs0=";
+    hash = "sha256-55VvT7pHN0/HqxM4vMDQDgUwkVmO/8aOEOye8jcFzgI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/video/mpc-qt/default.nix b/pkgs/applications/video/mpc-qt/default.nix
index 73fab758d75e..9bb23b548e3f 100644
--- a/pkgs/applications/video/mpc-qt/default.nix
+++ b/pkgs/applications/video/mpc-qt/default.nix
@@ -1,21 +1,50 @@
-{ lib, stdenv, mkDerivation, fetchFromGitHub, pkg-config, qmake, qtx11extras, qttools, mpv }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, qmake
+, qttools
+, qtbase
+, mpv
+, wrapQtAppsHook
+, gitUpdater
+}:
 
-mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "mpc-qt";
-  version = "23.02";
+  version = "23.12";
 
   src = fetchFromGitHub {
     owner = "mpc-qt";
     repo = "mpc-qt";
     rev = "v${version}";
-    sha256 = "sha256-b8efsdWWpwoaiX+oQhHK15KxD6JpvPhESTxCR2kS7Mk=";
+    hash = "sha256-v22o5QtCY9Z8bPoIkwypG0oTBEPqPFeKZ8cWO+pKCD0=";
   };
 
-  nativeBuildInputs = [ pkg-config qmake qttools ];
+  nativeBuildInputs = [
+    pkg-config
+    qmake
+    qttools
+    wrapQtAppsHook
+  ];
 
-  buildInputs = [ mpv qtx11extras ];
+  buildInputs = [
+    mpv
+  ];
 
-  qmakeFlags = [ "QMAKE_LUPDATE=${qttools.dev}/bin/lupdate" ];
+  postPatch = ''
+    substituteInPlace lconvert.pri --replace "qtPrepareTool(LCONVERT, lconvert)" "qtPrepareTool(LCONVERT, lconvert, , , ${qttools}/bin)"
+  '';
+
+  postConfigure = ''
+    substituteInPlace Makefile --replace ${qtbase}/bin/lrelease ${qttools.dev}/bin/lrelease
+  '';
+
+  qmakeFlags = [
+    "MPCQT_VERSION=${version}"
+  ];
+
+  passthru.updateScript = gitUpdater { rev-prefix = "v"; };
 
   meta = with lib; {
     description = "Media Player Classic Qute Theater";
diff --git a/pkgs/applications/video/mpv/scripts/default.nix b/pkgs/applications/video/mpv/scripts/default.nix
index 3451b6e3dc47..68ccc3b139d1 100644
--- a/pkgs/applications/video/mpv/scripts/default.nix
+++ b/pkgs/applications/video/mpv/scripts/default.nix
@@ -69,6 +69,7 @@ let
     cutter = callPackage ./cutter.nix { };
     inhibit-gnome = callPackage ./inhibit-gnome.nix { };
     mpris = callPackage ./mpris.nix { };
+    mpv-cheatsheet = callPackage ./mpv-cheatsheet.nix { };
     mpv-playlistmanager = callPackage ./mpv-playlistmanager.nix { };
     mpv-webm = callPackage ./mpv-webm.nix { };
     mpvacious = callPackage ./mpvacious.nix { };
diff --git a/pkgs/applications/video/mpv/scripts/mpv-cheatsheet.nix b/pkgs/applications/video/mpv/scripts/mpv-cheatsheet.nix
new file mode 100644
index 000000000000..56013b1fceeb
--- /dev/null
+++ b/pkgs/applications/video/mpv/scripts/mpv-cheatsheet.nix
@@ -0,0 +1,42 @@
+{ lib, fetchFromGitHub, nodePackages, stdenvNoCC }:
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "mpv-cheatsheet";
+  version = "0.30.0.2";
+
+  src = fetchFromGitHub {
+    owner = "ento";
+    repo = "mpv-cheatsheet";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-MWK0CYto3zgn3fivmL43tvgZn6XrjPxKLp0lgTFdplM=";
+  };
+
+  nativeBuildInputs = [
+    nodePackages.browserify
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    make dist/${finalAttrs.passthru.scriptName}
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D dist/${finalAttrs.passthru.scriptName} $out/share/mpv/scripts/${finalAttrs.passthru.scriptName}
+
+    runHook postInstall
+  '';
+
+
+  passthru.scriptName = "cheatsheet.js";
+
+  meta = with lib; {
+    description = "mpv script for looking up keyboard shortcuts";
+    homepage = "https://github.com/ento/mpv-cheatsheet";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ambroisie ];
+  };
+})
diff --git a/pkgs/applications/video/mpv/scripts/occivink.nix b/pkgs/applications/video/mpv/scripts/occivink.nix
index f4ea27c1c1aa..1f17a2717287 100644
--- a/pkgs/applications/video/mpv/scripts/occivink.nix
+++ b/pkgs/applications/video/mpv/scripts/occivink.nix
@@ -13,12 +13,12 @@ let
   mkScript = name: args:
     let self = rec {
       pname = camelToKebab name;
-      version = "unstable-2023-12-18";
+      version = "unstable-2024-01-11";
       src = fetchFromGitHub {
         owner = "occivink";
         repo = "mpv-scripts";
-        rev = "f0426bd6b107b1f4b124552dae923b62f58ce3b6";
-        hash = "sha256-oag5lcDoezyNXs5EBr0r0UE3ikeftvbfxSzfbxV1Oy0=";
+        rev = "d0390c8e802c2e888ff4a2e1d5e4fb040f855b89";
+        hash = "sha256-pc2aaO7lZaoYMEXv5M0WI7PtmqgkNbdtNiLZZwVzppM=";
       };
       passthru.updateScript = unstableGitUpdater {};
 
diff --git a/pkgs/applications/video/mythtv/default.nix b/pkgs/applications/video/mythtv/default.nix
index 7ea9a532a725..0f355577a6a4 100644
--- a/pkgs/applications/video/mythtv/default.nix
+++ b/pkgs/applications/video/mythtv/default.nix
@@ -43,6 +43,8 @@ mkDerivation rec {
   configureFlags =
     [ "--dvb-path=${linuxHeaders}/include" ];
 
+  enableParallelBuilding = true;
+
   meta = with lib; {
     homepage = "https://www.mythtv.org/";
     description = "Open Source DVR";
diff --git a/pkgs/applications/video/obs-studio/default.nix b/pkgs/applications/video/obs-studio/default.nix
index 74b19296dbdf..29bb90a9dd8d 100644
--- a/pkgs/applications/video/obs-studio/default.nix
+++ b/pkgs/applications/video/obs-studio/default.nix
@@ -94,6 +94,14 @@ stdenv.mkDerivation (finalAttrs: {
       url = "https://github.com/obsproject/obs-studio/commit/6e080a68067b27fe5463f0f4eee7df690451f3d7.patch";
       hash = "sha256-nbn/q3uszoHaDvaW8Et1MS1sgQzMsJRmjGSMHzUxV70=";
     })
+
+    # Fix libobs.pc for plugins on non-x86 systems
+    (fetchpatch {
+      name = "fix-arm64-cmake.patch";
+      url = "https://git.alpinelinux.org/aports/plain/community/obs-studio/broken-config.patch?id=a92887564dcc65e07b6be8a6224fda730259ae2b";
+      hash = "sha256-yRSw4VWDwMwysDB3Hw/tsmTjEQUhipvrVRQcZkbtuoI=";
+      includes = [ "*/CompilerConfig.cmake" ];
+    })
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/video/obs-studio/plugins/advanced-scene-switcher/default.nix b/pkgs/applications/video/obs-studio/plugins/advanced-scene-switcher/default.nix
index eb801cda4fed..b776981522d0 100644
--- a/pkgs/applications/video/obs-studio/plugins/advanced-scene-switcher/default.nix
+++ b/pkgs/applications/video/obs-studio/plugins/advanced-scene-switcher/default.nix
@@ -72,6 +72,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/WarmUpTill/SceneSwitcher";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ paveloom ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/applications/video/obs-studio/plugins/default.nix b/pkgs/applications/video/obs-studio/plugins/default.nix
index d3d1ceb2de6e..7c92feb1cb20 100644
--- a/pkgs/applications/video/obs-studio/plugins/default.nix
+++ b/pkgs/applications/video/obs-studio/plugins/default.nix
@@ -20,6 +20,8 @@
 
   obs-command-source = callPackage ./obs-command-source.nix { };
 
+  obs-composite-blur = callPackage ./obs-composite-blur.nix { };
+
   obs-freeze-filter = qt6Packages.callPackage ./obs-freeze-filter.nix { };
 
   obs-gradient-source = callPackage ./obs-gradient-source.nix { };
diff --git a/pkgs/applications/video/obs-studio/plugins/obs-composite-blur.nix b/pkgs/applications/video/obs-studio/plugins/obs-composite-blur.nix
new file mode 100644
index 000000000000..c1f2073ae6e1
--- /dev/null
+++ b/pkgs/applications/video/obs-studio/plugins/obs-composite-blur.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, obs-studio
+, cmake
+}:
+
+stdenv.mkDerivation rec {
+  pname = "obs-composite-blur";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "FiniteSingularity";
+    repo = "obs-composite-blur";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-icn0X+c7Uf0nTFaVDVTPi26sfWTSeoAj7+guEn9gi9Y=";
+  };
+
+  buildInputs = [
+    obs-studio
+  ];
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  postInstall = ''
+    rm -rf "$out/share"
+    mkdir -p "$out/share/obs"
+    mv "$out/data/obs-plugins" "$out/share/obs"
+    rm -rf "$out/obs-plugins" "$out/data"
+  '';
+
+  meta = with lib; {
+    description = "A comprehensive blur plugin for OBS that provides several different blur algorithms, and proper compositing";
+    homepage = "https://github.com/FiniteSingularity/obs-composite-blur";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ GaetanLepage ];
+    mainProgram = "obs-composite-blur";
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/video/obs-studio/plugins/obs-livesplit-one/Cargo.lock b/pkgs/applications/video/obs-studio/plugins/obs-livesplit-one/Cargo.lock
new file mode 100644
index 000000000000..6e3c1816979c
--- /dev/null
+++ b/pkgs/applications/video/obs-studio/plugins/obs-livesplit-one/Cargo.lock
@@ -0,0 +1,3284 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "addr2line"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3"
+dependencies = [
+ "gimli 0.27.3",
+]
+
+[[package]]
+name = "addr2line"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
+dependencies = [
+ "gimli 0.28.0",
+]
+
+[[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.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+ "version_check",
+]
+
+[[package]]
+name = "aho-corasick"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c378d78423fdad8089616f827526ee33c19f2fddbd5de1629152c9593ba4783"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "aliasable"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd"
+
+[[package]]
+name = "allocator-api2"
+version = "0.2.16"
+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"
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2d098ff73c1ca148721f37baad5ea6a465a13f9573aba8641fbbbae8164a54e"
+
+[[package]]
+name = "arrayref"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545"
+
+[[package]]
+name = "arrayvec"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
+
+[[package]]
+name = "async-trait"
+version = "0.1.73"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.31",
+]
+
+[[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 0.21.0",
+ "cc",
+ "cfg-if",
+ "libc",
+ "miniz_oxide",
+ "object 0.32.1",
+ "rustc-demangle",
+]
+
+[[package]]
+name = "base64"
+version = "0.21.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2"
+
+[[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 = "bincode"
+version = "1.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "bindgen"
+version = "0.59.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2bd2a9a458e8f4304c52c43ebb0cfbd520289f8379a52e329a38afda99bf8eb8"
+dependencies = [
+ "bitflags 1.3.2",
+ "cexpr",
+ "clang-sys",
+ "lazy_static",
+ "lazycell",
+ "peeking_take_while",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "rustc-hash",
+ "shlex",
+]
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+
+[[package]]
+name = "bitvec"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
+dependencies = [
+ "funty",
+ "radium",
+ "tap",
+ "wyz",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
+
+[[package]]
+name = "bytemuck"
+version = "1.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
+
+[[package]]
+name = "bytemuck_derive"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.31",
+]
+
+[[package]]
+name = "byteorder"
+version = "1.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+
+[[package]]
+name = "bytes"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+
+[[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 2.0.2",
+ "windows-sys",
+]
+
+[[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 2.0.2",
+ "ipnet",
+ "maybe-owned",
+ "rustix 0.38.12",
+ "windows-sys",
+ "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",
+]
+
+[[package]]
+name = "cap-std"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "84bade423fa6403efeebeafe568fdb230e8c590a275fba2ba978dd112efcf6e9"
+dependencies = [
+ "cap-primitives",
+ "io-extras",
+ "io-lifetimes 2.0.2",
+ "rustix 0.38.12",
+]
+
+[[package]]
+name = "cap-time-ext"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8f52b3c8f4abfe3252fd0a071f3004aaa3b18936ec97bdbd8763ce03aff6247"
+dependencies = [
+ "cap-primitives",
+ "once_cell",
+ "rustix 0.38.12",
+ "winx",
+]
+
+[[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.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 = "clang-sys"
+version = "1.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f"
+dependencies = [
+ "glob",
+ "libc",
+ "libloading",
+]
+
+[[package]]
+name = "color_quant"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
+
+[[package]]
+name = "core-foundation"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+
+[[package]]
+name = "cosmic-text"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0b68966c2543609f8d92f9d33ac3b719b2a67529b0c6c0b3e025637b477eef9"
+dependencies = [
+ "aliasable",
+ "fontdb",
+ "libm",
+ "log",
+ "rangemap",
+ "rustybuzz",
+ "sys-locale",
+ "unicode-bidi",
+ "unicode-linebreak",
+ "unicode-script",
+ "unicode-segmentation",
+]
+
+[[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 = "cranelift-bforest"
+version = "0.99.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7348010242a23d0285e5f852f13b07f9540a50f13ab6e92fd047b88490bf5ee"
+dependencies = [
+ "cranelift-entity",
+]
+
+[[package]]
+name = "cranelift-codegen"
+version = "0.99.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38849e3b19bc9a6dbf8bc188876b76e6ba288089a5567be573de50f44801375c"
+dependencies = [
+ "bumpalo",
+ "cranelift-bforest",
+ "cranelift-codegen-meta",
+ "cranelift-codegen-shared",
+ "cranelift-control",
+ "cranelift-entity",
+ "cranelift-isle",
+ "gimli 0.27.3",
+ "hashbrown 0.13.2",
+ "log",
+ "regalloc2",
+ "smallvec",
+ "target-lexicon",
+]
+
+[[package]]
+name = "cranelift-codegen-meta"
+version = "0.99.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3de51da572e65cb712a47b7413c50208cac61a4201560038de929d9a7f4fadf"
+dependencies = [
+ "cranelift-codegen-shared",
+]
+
+[[package]]
+name = "cranelift-codegen-shared"
+version = "0.99.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d75f869ae826055a5064d4a400abde7806eb86d89765dbae51d42846df23121a"
+
+[[package]]
+name = "cranelift-control"
+version = "0.99.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bdf6631316ad6ccfd60055740ad25326330d31407a983a454e45c5a62f64d101"
+dependencies = [
+ "arbitrary",
+]
+
+[[package]]
+name = "cranelift-entity"
+version = "0.99.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d1d6a38935ee64551a7c8da4cc759fdcaba1d951ec56336737c0459ed5a05d2"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "cranelift-frontend"
+version = "0.99.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba73c410c2d52e28fc4b49aab955a1c2f58580ff37a3b0641e23bccd6049e4b5"
+dependencies = [
+ "cranelift-codegen",
+ "log",
+ "smallvec",
+ "target-lexicon",
+]
+
+[[package]]
+name = "cranelift-isle"
+version = "0.99.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61acaa7646020e0444bb3a22d212a5bae0e3b3969b18e1276a037ccd6493a8fd"
+
+[[package]]
+name = "cranelift-native"
+version = "0.99.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "543f52ef487498253ebe5df321373c5c314da74ada0e92f13451b6f887194f87"
+dependencies = [
+ "cranelift-codegen",
+ "libc",
+ "target-lexicon",
+]
+
+[[package]]
+name = "cranelift-wasm"
+version = "0.99.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "788c27f41f31a50a9a3546b91253ad9495cd54df0d6533b3f3dcb4fb7a988f69"
+dependencies = [
+ "cranelift-codegen",
+ "cranelift-entity",
+ "cranelift-frontend",
+ "itertools",
+ "log",
+ "smallvec",
+ "wasmparser 0.110.0",
+ "wasmtime-types",
+]
+
+[[package]]
+name = "crc32fast"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+dependencies = [
+ "cfg-if",
+]
+
+[[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.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
+dependencies = [
+ "cfg-if",
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
+dependencies = [
+ "autocfg",
+ "cfg-if",
+ "crossbeam-utils",
+ "memoffset 0.9.0",
+ "scopeguard",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "debugid"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d"
+dependencies = [
+ "uuid",
+]
+
+[[package]]
+name = "deranged"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946"
+
+[[package]]
+name = "dirs"
+version = "4.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
+dependencies = [
+ "dirs-sys",
+]
+
+[[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 = "doc-comment"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
+
+[[package]]
+name = "either"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+
+[[package]]
+name = "encoding_rs"
+version = "0.8.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+dependencies = [
+ "cfg-if",
+]
+
+[[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.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd"
+dependencies = [
+ "errno-dragonfly",
+ "libc",
+ "windows-sys",
+]
+
+[[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 = "evdev"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2bed59fcc8cfd6b190814a509018388462d3b203cf6dd10db5c00087e72a83f3"
+dependencies = [
+ "bitvec",
+ "cfg-if",
+ "libc",
+ "nix 0.23.2",
+ "thiserror",
+]
+
+[[package]]
+name = "fallible-iterator"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7"
+
+[[package]]
+name = "fd-lock"
+version = "4.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b0377f1edc77dbd1118507bc7a66e4ab64d2b90c66f90726dc801e73a8c68f9"
+dependencies = [
+ "cfg-if",
+ "rustix 0.38.12",
+ "windows-sys",
+]
+
+[[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.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010"
+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 = "fontdb"
+version = "0.14.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af8d8cbea8f21307d7e84bca254772981296f058a1d36b461bf4d83a7499fc9e"
+dependencies = [
+ "log",
+ "memmap2",
+ "slotmap",
+ "tinyvec",
+ "ttf-parser",
+]
+
+[[package]]
+name = "form_urlencoded"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "fs-set-times"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd738b84894214045e8414eaded76359b4a5773f0a0a56b16575110739cdcf39"
+dependencies = [
+ "io-lifetimes 2.0.2",
+ "rustix 0.38.12",
+ "windows-sys",
+]
+
+[[package]]
+name = "funty"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
+
+[[package]]
+name = "futures"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-sink",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+
+[[package]]
+name = "futures-io"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+
+[[package]]
+name = "futures-macro"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.31",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+
+[[package]]
+name = "futures-task"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+
+[[package]]
+name = "futures-util"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+dependencies = [
+ "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 = "fxprof-processed-profile"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "27d12c0aed7f1e24276a241aadc4cb8ea9f83000f34bc062b7cc2d51e3b0fabd"
+dependencies = [
+ "bitflags 2.4.0",
+ "debugid",
+ "fxhash",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "gif"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045"
+dependencies = [
+ "color_quant",
+ "weezl",
+]
+
+[[package]]
+name = "gimli"
+version = "0.27.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e"
+dependencies = [
+ "fallible-iterator",
+ "indexmap 1.9.3",
+ "stable_deref_trait",
+]
+
+[[package]]
+name = "gimli"
+version = "0.28.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
+
+[[package]]
+name = "glob"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+
+[[package]]
+name = "h2"
+version = "0.3.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833"
+dependencies = [
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http",
+ "indexmap 1.9.3",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
+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.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+
+[[package]]
+name = "http"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
+name = "http-body"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
+dependencies = [
+ "bytes",
+ "http",
+ "pin-project-lite",
+]
+
+[[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 = "hyper"
+version = "0.14.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "socket2 0.4.9",
+ "tokio",
+ "tower-service",
+ "tracing",
+ "want",
+]
+
+[[package]]
+name = "hyper-rustls"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97"
+dependencies = [
+ "futures-util",
+ "http",
+ "hyper",
+ "rustls",
+ "tokio",
+ "tokio-rustls",
+]
+
+[[package]]
+name = "id-arena"
+version = "2.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005"
+
+[[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 = "image"
+version = "0.24.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711"
+dependencies = [
+ "bytemuck",
+ "byteorder",
+ "color_quant",
+ "gif",
+ "jpeg-decoder",
+ "num-rational",
+ "num-traits",
+ "png",
+ "tiff",
+]
+
+[[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",
+]
+
+[[package]]
+name = "indexmap"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+dependencies = [
+ "equivalent",
+ "hashbrown 0.14.0",
+ "serde",
+]
+
+[[package]]
+name = "io-extras"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d3c230ee517ee76b1cc593b52939ff68deda3fae9e41eca426c6b4993df51c4"
+dependencies = [
+ "io-lifetimes 2.0.2",
+ "windows-sys",
+]
+
+[[package]]
+name = "io-lifetimes"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "windows-sys",
+]
+
+[[package]]
+name = "io-lifetimes"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bffb4def18c48926ccac55c1223e02865ce1a821751a95920448662696e7472c"
+
+[[package]]
+name = "ipnet"
+version = "2.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6"
+
+[[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-terminal"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
+dependencies = [
+ "hermit-abi",
+ "rustix 0.38.12",
+ "windows-sys",
+]
+
+[[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 = "itoa"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+
+[[package]]
+name = "jpeg-decoder"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e"
+
+[[package]]
+name = "js-sys"
+version = "0.3.64"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "lazycell"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
+
+[[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.147"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+
+[[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.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"
+
+[[package]]
+name = "libproc"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b799ad155d75ce914c467ee5627b62247c20d4aedbd446f821484cebf3cded7"
+dependencies = [
+ "bindgen",
+ "errno 0.2.8",
+ "libc",
+]
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a9bad9f94746442c783ca431b22403b519cd7fbeed0533fdd6328b2f2212128"
+
+[[package]]
+name = "livesplit-auto-splitting"
+version = "0.1.0"
+source = "git+https://github.com/LiveSplit/livesplit-core#c487b50359835dbd35aead866c12e91e96ecc303"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "proc-maps",
+ "read-process-memory",
+ "slotmap",
+ "snafu",
+ "sysinfo",
+ "time",
+ "wasi-common",
+ "wasmtime",
+ "wasmtime-wasi",
+ "windows-sys",
+]
+
+[[package]]
+name = "livesplit-core"
+version = "0.13.0"
+source = "git+https://github.com/LiveSplit/livesplit-core#c487b50359835dbd35aead866c12e91e96ecc303"
+dependencies = [
+ "base64-simd",
+ "bytemuck",
+ "bytemuck_derive",
+ "cfg-if",
+ "cosmic-text",
+ "hashbrown 0.14.0",
+ "image",
+ "itoa",
+ "libc",
+ "libm",
+ "livesplit-auto-splitting",
+ "livesplit-hotkey",
+ "livesplit-title-abbreviations",
+ "log",
+ "memchr",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "simdutf8",
+ "smallstr",
+ "snafu",
+ "time",
+ "tiny-skia",
+ "tiny-skia-path",
+ "tokio",
+ "unicase",
+ "windows-sys",
+]
+
+[[package]]
+name = "livesplit-hotkey"
+version = "0.7.0"
+source = "git+https://github.com/LiveSplit/livesplit-core#c487b50359835dbd35aead866c12e91e96ecc303"
+dependencies = [
+ "bitflags 2.4.0",
+ "cfg-if",
+ "crossbeam-channel",
+ "evdev",
+ "mio",
+ "nix 0.27.1",
+ "promising-future",
+ "serde",
+ "windows-sys",
+ "x11-dl",
+]
+
+[[package]]
+name = "livesplit-title-abbreviations"
+version = "0.3.0"
+source = "git+https://github.com/LiveSplit/livesplit-core#c487b50359835dbd35aead866c12e91e96ecc303"
+dependencies = [
+ "unicase",
+]
+
+[[package]]
+name = "log"
+version = "0.4.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "mach"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "mach2"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d0d1830bcd151a6fc4aea1369af235b36c1528fe976b8ff678683c9995eade8"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "maybe-owned"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4facc753ae494aeb6e3c22f839b158aebd4f9270f55cd3c79906c45476c47ab4"
+
+[[package]]
+name = "memchr"
+version = "2.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c"
+
+[[package]]
+name = "memfd"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffc89ccdc6e10d6907450f753537ebc5c5d3460d2e4e62ea74bd571db62c0f9e"
+dependencies = [
+ "rustix 0.37.23",
+]
+
+[[package]]
+name = "memmap2"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d28bba84adfe6646737845bc5ebbfa2c08424eb1c37e94a1fd2a82adb56a872"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memoffset"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
+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 = "mime"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
+
+[[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.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+dependencies = [
+ "adler",
+ "simd-adler32",
+]
+
+[[package]]
+name = "mio"
+version = "0.8.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
+dependencies = [
+ "libc",
+ "wasi",
+ "windows-sys",
+]
+
+[[package]]
+name = "nix"
+version = "0.23.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c"
+dependencies = [
+ "bitflags 1.3.2",
+ "cc",
+ "cfg-if",
+ "libc",
+ "memoffset 0.6.5",
+]
+
+[[package]]
+name = "nix"
+version = "0.27.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
+dependencies = [
+ "bitflags 2.4.0",
+ "cfg-if",
+ "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 = "ntapi"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4"
+dependencies = [
+ "winapi",
+]
+
+[[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-rational"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
+name = "num_threads"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "object"
+version = "0.31.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1"
+dependencies = [
+ "crc32fast",
+ "hashbrown 0.13.2",
+ "indexmap 1.9.3",
+ "memchr",
+]
+
+[[package]]
+name = "object"
+version = "0.32.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "obs"
+version = "0.1.0"
+
+[[package]]
+name = "obs-livesplit-one"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "livesplit-core",
+ "log",
+ "obs",
+ "open",
+ "percent-encoding",
+ "quick-xml",
+ "reqwest",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "shlex",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+
+[[package]]
+name = "open"
+version = "5.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cfabf1927dce4d6fdf563d63328a0a506101ced3ec780ca2135747336c98cef8"
+dependencies = [
+ "is-wsl",
+ "libc",
+ "pathdiff",
+]
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+[[package]]
+name = "outref"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4030760ffd992bef45b0ae3f10ce1aba99e33464c90d14dd7c039884963ddc7a"
+
+[[package]]
+name = "paste"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
+
+[[package]]
+name = "pathdiff"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
+
+[[package]]
+name = "peeking_take_while"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
+
+[[package]]
+name = "percent-encoding"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+
+[[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 = "pkg-config"
+version = "0.3.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+
+[[package]]
+name = "png"
+version = "0.17.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64"
+dependencies = [
+ "bitflags 1.3.2",
+ "crc32fast",
+ "fdeflate",
+ "flate2",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.66"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "proc-maps"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d17946c951c8e8c4233375fdbfc212b215bd14ea1b18388eae8c95bb03a0174"
+dependencies = [
+ "anyhow",
+ "libc",
+ "libproc",
+ "mach2",
+ "winapi",
+]
+
+[[package]]
+name = "promising-future"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44ba461c1b8785e502867026d893fa52801faccfbfe59efdae7da4b9094b4ce2"
+dependencies = [
+ "threadpool",
+]
+
+[[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 = "quick-xml"
+version = "0.30.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956"
+dependencies = [
+ "memchr",
+ "serde",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "radium"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
+
+[[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 = "rangemap"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b9283c6b06096b47afc7109834fdedab891175bb5241ee5d4f7d2546549f263"
+
+[[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 = "read-process-memory"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8497683b2f0b6887786f1928c118f26ecc6bb3d78bbb6ed23e8e7ba110af3bb0"
+dependencies = [
+ "libc",
+ "log",
+ "mach",
+ "winapi",
+]
+
+[[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_users"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
+dependencies = [
+ "getrandom",
+ "redox_syscall",
+ "thiserror",
+]
+
+[[package]]
+name = "regalloc2"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b4dcbd3a2ae7fb94b5813fa0e957c6ab51bf5d0a8ee1b69e0c2d0f1e6eb8485"
+dependencies = [
+ "hashbrown 0.13.2",
+ "log",
+ "rustc-hash",
+ "slice-group-by",
+ "smallvec",
+]
+
+[[package]]
+name = "regex"
+version = "1.9.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795"
+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 = "reqwest"
+version = "0.11.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1"
+dependencies = [
+ "base64",
+ "bytes",
+ "encoding_rs",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "hyper",
+ "hyper-rustls",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustls",
+ "rustls-native-certs",
+ "rustls-pemfile",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "tokio",
+ "tokio-rustls",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "winreg",
+]
+
+[[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",
+ "untrusted",
+ "web-sys",
+ "winapi",
+]
+
+[[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 = "rustix"
+version = "0.37.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06"
+dependencies = [
+ "bitflags 1.3.2",
+ "errno 0.3.3",
+ "io-lifetimes 1.0.11",
+ "libc",
+ "linux-raw-sys 0.3.8",
+ "windows-sys",
+]
+
+[[package]]
+name = "rustix"
+version = "0.38.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bdf14a7a466ce88b5eac3da815b53aefc208ce7e74d1c263aabb04d88c4abeb1"
+dependencies = [
+ "bitflags 2.4.0",
+ "errno 0.3.3",
+ "itoa",
+ "libc",
+ "linux-raw-sys 0.4.7",
+ "once_cell",
+ "windows-sys",
+]
+
+[[package]]
+name = "rustls"
+version = "0.21.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8"
+dependencies = [
+ "log",
+ "ring",
+ "rustls-webpki",
+ "sct",
+]
+
+[[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",
+ "schannel",
+ "security-framework",
+]
+
+[[package]]
+name = "rustls-pemfile"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2"
+dependencies = [
+ "base64",
+]
+
+[[package]]
+name = "rustls-webpki"
+version = "0.101.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d93931baf2d282fff8d3a532bbfd7653f734643161b87e3e01e59a04439bf0d"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[package]]
+name = "rustybuzz"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "82eea22c8f56965eeaf3a209b3d24508256c7b920fb3b6211b8ba0f7c0583250"
+dependencies = [
+ "bitflags 1.3.2",
+ "bytemuck",
+ "libm",
+ "smallvec",
+ "ttf-parser",
+ "unicode-bidi-mirroring",
+ "unicode-ccc",
+ "unicode-general-category",
+ "unicode-script",
+]
+
+[[package]]
+name = "ryu"
+version = "1.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+
+[[package]]
+name = "schannel"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88"
+dependencies = [
+ "windows-sys",
+]
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "sct"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[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 = "1.0.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
+
+[[package]]
+name = "serde"
+version = "1.0.188"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.188"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.31",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.106"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2cc66a619ed80bf7a0f6b17dd063a84b88f6dea1813737cf469aef1d081142c2"
+dependencies = [
+ "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 = "shellexpand"
+version = "2.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ccc8076840c4da029af4f87e4e8daeb0fca6b87bbb02e10cb60b791450e11e4"
+dependencies = [
+ "dirs",
+]
+
+[[package]]
+name = "shlex"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380"
+
+[[package]]
+name = "simd-adler32"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
+
+[[package]]
+name = "simdutf8"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a"
+
+[[package]]
+name = "slab"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "slice-group-by"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7"
+
+[[package]]
+name = "slotmap"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342"
+dependencies = [
+ "version_check",
+]
+
+[[package]]
+name = "smallstr"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "63b1aefdf380735ff8ded0b15f31aab05daf1f70216c01c02a12926badd1df9d"
+dependencies = [
+ "smallvec",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
+
+[[package]]
+name = "snafu"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4de37ad025c587a29e8f3f5605c00f70b98715ef90b9061a815b9e59e9042d6"
+dependencies = [
+ "doc-comment",
+ "snafu-derive",
+]
+
+[[package]]
+name = "snafu-derive"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "990079665f075b699031e9c08fd3ab99be5029b96f3b78dc0709e8f77e4efebf"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "socket2"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "socket2"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877"
+dependencies = [
+ "libc",
+ "windows-sys",
+]
+
+[[package]]
+name = "spin"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+
+[[package]]
+name = "sptr"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a"
+
+[[package]]
+name = "stable_deref_trait"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
+
+[[package]]
+name = "strict-num"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731"
+
+[[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.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "718fa2415bcb8d8bd775917a1bf12a7931b6dfa890753378538118181e0cb398"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "sys-locale"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e801cf239ecd6ccd71f03d270d67dd53d13e90aab208bf4b8fe4ad957ea949b0"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "sysinfo"
+version = "0.29.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0a18d114d420ada3a891e6bc8e96a2023402203296a47cdd65083377dad18ba5"
+dependencies = [
+ "cfg-if",
+ "core-foundation-sys",
+ "libc",
+ "ntapi",
+ "once_cell",
+ "rayon",
+ "winapi",
+]
+
+[[package]]
+name = "system-interface"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "27ce32341b2c0b70c144bbf35627fdc1ef18c76ced5e5e7b3ee8b5ba6b2ab6a0"
+dependencies = [
+ "bitflags 2.4.0",
+ "cap-fs-ext",
+ "cap-std",
+ "fd-lock",
+ "io-lifetimes 2.0.2",
+ "rustix 0.38.12",
+ "windows-sys",
+ "winx",
+]
+
+[[package]]
+name = "tap"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
+
+[[package]]
+name = "target-lexicon"
+version = "0.12.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a"
+
+[[package]]
+name = "thiserror"
+version = "1.0.48"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.48"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.31",
+]
+
+[[package]]
+name = "threadpool"
+version = "1.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
+dependencies = [
+ "num_cpus",
+]
+
+[[package]]
+name = "tiff"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d172b0f4d3fba17ba89811858b9d3d97f928aece846475bbda076ca46736211"
+dependencies = [
+ "flate2",
+ "jpeg-decoder",
+ "weezl",
+]
+
+[[package]]
+name = "time"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48"
+dependencies = [
+ "deranged",
+ "libc",
+ "num_threads",
+ "serde",
+ "time-core",
+]
+
+[[package]]
+name = "time-core"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
+
+[[package]]
+name = "tiny-skia"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4e37fdc219ee3d551882d24dc5e4df5f72fd9723cbca1ffaa57f7348bf7a47d"
+dependencies = [
+ "arrayref",
+ "arrayvec",
+ "bytemuck",
+ "cfg-if",
+ "log",
+ "tiny-skia-path",
+]
+
+[[package]]
+name = "tiny-skia-path"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93a323d1de20dad9bc8b32daf57702c585ce76e80792d8151de1fc9dfc8d1ca7"
+dependencies = [
+ "arrayref",
+ "bytemuck",
+ "libm",
+ "strict-num",
+]
+
+[[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 = "tokio"
+version = "1.32.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9"
+dependencies = [
+ "backtrace",
+ "bytes",
+ "libc",
+ "mio",
+ "num_cpus",
+ "pin-project-lite",
+ "socket2 0.5.3",
+ "windows-sys",
+]
+
+[[package]]
+name = "tokio-rustls"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
+dependencies = [
+ "rustls",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-util"
+version = "0.7.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "futures-sink",
+ "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.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+dependencies = [
+ "cfg-if",
+ "log",
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-attributes"
+version = "0.1.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.31",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "try-lock"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
+
+[[package]]
+name = "ttf-parser"
+version = "0.19.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a464a4b34948a5f67fddd2b823c62d9d92e44be75058b99939eae6c5b6960b33"
+
+[[package]]
+name = "unicase"
+version = "2.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
+dependencies = [
+ "version_check",
+]
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+
+[[package]]
+name = "unicode-bidi-mirroring"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56d12260fb92d52f9008be7e4bca09f584780eb2266dc8fecc6a192bec561694"
+
+[[package]]
+name = "unicode-ccc"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc2520efa644f8268dce4dcd3050eaa7fc044fca03961e9998ac7e2e92b77cf1"
+
+[[package]]
+name = "unicode-general-category"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2281c8c1d221438e373249e065ca4989c4c36952c211ff21a0ee91c44a3869e7"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
+
+[[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.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-script"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d817255e1bed6dfd4ca47258685d14d2bdcfbc64fdc9e3819bd5848057b8ecc"
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+
+[[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 = "url"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+]
+
+[[package]]
+name = "uuid"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d"
+
+[[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 = "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 = "wasi-cap-std-sync"
+version = "12.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9cef338a20bd9e5e469a37b192b2a954c4dde83ea896c8eaf45df8c84cdf7be5"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "cap-fs-ext",
+ "cap-rand",
+ "cap-std",
+ "cap-time-ext",
+ "fs-set-times",
+ "io-extras",
+ "io-lifetimes 2.0.2",
+ "is-terminal",
+ "once_cell",
+ "rustix 0.38.12",
+ "system-interface",
+ "tracing",
+ "wasi-common",
+ "windows-sys",
+]
+
+[[package]]
+name = "wasi-common"
+version = "12.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb9c753bdf98fdc592fc729bda2248996f5dd1be71f4e01bf8c08225acb7b6bb"
+dependencies = [
+ "anyhow",
+ "bitflags 2.4.0",
+ "cap-rand",
+ "cap-std",
+ "io-extras",
+ "log",
+ "rustix 0.38.12",
+ "thiserror",
+ "tracing",
+ "wasmtime",
+ "wiggle",
+ "windows-sys",
+]
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.87"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.87"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.31",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.87"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.87"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.31",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.87"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+
+[[package]]
+name = "wasm-encoder"
+version = "0.31.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41763f20eafed1399fff1afb466496d3a959f58241436cfdc17e3f5ca954de16"
+dependencies = [
+ "leb128",
+]
+
+[[package]]
+name = "wasmparser"
+version = "0.110.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1dfcdb72d96f01e6c85b6bf20102e7423bdbaad5c337301bab2bbf253d26413c"
+dependencies = [
+ "indexmap 2.0.0",
+ "semver",
+]
+
+[[package]]
+name = "wasmparser"
+version = "0.112.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e986b010f47fcce49cf8ea5d5f9e5d2737832f12b53ae8ae785bbe895d0877bf"
+dependencies = [
+ "indexmap 2.0.0",
+ "semver",
+]
+
+[[package]]
+name = "wasmprinter"
+version = "0.2.64"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34ddf5892036cd4b780d505eff1194a0cbc10ed896097656fdcea3744b5e7c2f"
+dependencies = [
+ "anyhow",
+ "wasmparser 0.112.0",
+]
+
+[[package]]
+name = "wasmtime"
+version = "12.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e38ee12eaafb34198cce001e2ea0a83d3884db5cf8e3af08864f108a2fb57c85"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "bincode",
+ "bumpalo",
+ "cfg-if",
+ "encoding_rs",
+ "fxprof-processed-profile",
+ "indexmap 2.0.0",
+ "libc",
+ "log",
+ "object 0.31.1",
+ "once_cell",
+ "paste",
+ "psm",
+ "rayon",
+ "serde",
+ "serde_json",
+ "target-lexicon",
+ "wasm-encoder",
+ "wasmparser 0.110.0",
+ "wasmtime-component-macro",
+ "wasmtime-component-util",
+ "wasmtime-cranelift",
+ "wasmtime-environ",
+ "wasmtime-fiber",
+ "wasmtime-jit",
+ "wasmtime-runtime",
+ "wasmtime-winch",
+ "windows-sys",
+]
+
+[[package]]
+name = "wasmtime-asm-macros"
+version = "12.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "82313f9dce6f64dd08a7b51bef57411741b7eaef6b4611f77b91b6213a99808b"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "wasmtime-component-macro"
+version = "12.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2b6da03d55c656066ebc93d27ce54de11fcd2d3157e7490c6196a65aa1e9bc0"
+dependencies = [
+ "anyhow",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.31",
+ "wasmtime-component-util",
+ "wasmtime-wit-bindgen",
+ "wit-parser",
+]
+
+[[package]]
+name = "wasmtime-component-util"
+version = "12.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b54327f9ce6a46c6841c43d93c4fa366cd0beb0f075743b120d31a3d6afe34fd"
+
+[[package]]
+name = "wasmtime-cranelift"
+version = "12.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76d52e14e5453e82708816e992140c59e511bbf7c0868ee654100e2792483f56"
+dependencies = [
+ "anyhow",
+ "cranelift-codegen",
+ "cranelift-control",
+ "cranelift-entity",
+ "cranelift-frontend",
+ "cranelift-native",
+ "cranelift-wasm",
+ "gimli 0.27.3",
+ "log",
+ "object 0.31.1",
+ "target-lexicon",
+ "thiserror",
+ "wasmparser 0.110.0",
+ "wasmtime-cranelift-shared",
+ "wasmtime-environ",
+ "wasmtime-versioned-export-macros",
+]
+
+[[package]]
+name = "wasmtime-cranelift-shared"
+version = "12.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ddb7f34fff5b4a01aa2e55373fceb1b59d5f981abca44afdd63d7dd39689047"
+dependencies = [
+ "anyhow",
+ "cranelift-codegen",
+ "cranelift-control",
+ "cranelift-native",
+ "gimli 0.27.3",
+ "object 0.31.1",
+ "target-lexicon",
+ "wasmtime-environ",
+]
+
+[[package]]
+name = "wasmtime-environ"
+version = "12.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad336809866b743410ac86ec0bdc34899d6f1af5d3deed97188e90503ff527d7"
+dependencies = [
+ "anyhow",
+ "cranelift-entity",
+ "gimli 0.27.3",
+ "indexmap 2.0.0",
+ "log",
+ "object 0.31.1",
+ "serde",
+ "target-lexicon",
+ "thiserror",
+ "wasm-encoder",
+ "wasmparser 0.110.0",
+ "wasmprinter",
+ "wasmtime-component-util",
+ "wasmtime-types",
+]
+
+[[package]]
+name = "wasmtime-fiber"
+version = "12.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fcc69f0a316db37482ebc83669236ea7c943d0b49a1a23f763061c9fc9d07d0b"
+dependencies = [
+ "cc",
+ "cfg-if",
+ "rustix 0.38.12",
+ "wasmtime-asm-macros",
+ "wasmtime-versioned-export-macros",
+ "windows-sys",
+]
+
+[[package]]
+name = "wasmtime-jit"
+version = "12.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2004b30ea1ad9fd288bce54af19ef08281250e1087f0b5ffc6ca06bacd821edb"
+dependencies = [
+ "addr2line 0.20.0",
+ "anyhow",
+ "bincode",
+ "cfg-if",
+ "cpp_demangle",
+ "gimli 0.27.3",
+ "log",
+ "object 0.31.1",
+ "rustc-demangle",
+ "rustix 0.38.12",
+ "serde",
+ "target-lexicon",
+ "wasmtime-environ",
+ "wasmtime-jit-icache-coherence",
+ "wasmtime-runtime",
+ "windows-sys",
+]
+
+[[package]]
+name = "wasmtime-jit-debug"
+version = "12.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54aa8081162b13a96f47ab40f9aa03fc02dad38ee10b1418243ac8517c5af6d3"
+dependencies = [
+ "once_cell",
+ "wasmtime-versioned-export-macros",
+]
+
+[[package]]
+name = "wasmtime-jit-icache-coherence"
+version = "12.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2922462d01f5c112bbc4e6eb95ee68447a6031c0b90cc2ad69b890060b3842d9"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "windows-sys",
+]
+
+[[package]]
+name = "wasmtime-runtime"
+version = "12.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "536c34c4abbe22c40f631067b57ca14d719faf3f63ae0d504014a4d15a4b980b"
+dependencies = [
+ "anyhow",
+ "cc",
+ "cfg-if",
+ "encoding_rs",
+ "indexmap 2.0.0",
+ "libc",
+ "log",
+ "mach",
+ "memfd",
+ "memoffset 0.9.0",
+ "paste",
+ "rand",
+ "rustix 0.38.12",
+ "sptr",
+ "wasm-encoder",
+ "wasmtime-asm-macros",
+ "wasmtime-environ",
+ "wasmtime-fiber",
+ "wasmtime-jit-debug",
+ "wasmtime-versioned-export-macros",
+ "windows-sys",
+]
+
+[[package]]
+name = "wasmtime-types"
+version = "12.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec6f1e74eb5ef817043b243eae37cc0e424c256c4069ab2c5afd9f3fe91a12ee"
+dependencies = [
+ "cranelift-entity",
+ "serde",
+ "thiserror",
+ "wasmparser 0.110.0",
+]
+
+[[package]]
+name = "wasmtime-versioned-export-macros"
+version = "12.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "39ca36fa6cad8ef885bc27d7d50c8b1cb7da0534251188a824f4953b07875703"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.31",
+]
+
+[[package]]
+name = "wasmtime-wasi"
+version = "12.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "269f4f2192b18037729b617eadb512e95510f1b0cd8fb4990aef286c9bb3dfb9"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "bitflags 2.4.0",
+ "bytes",
+ "cap-fs-ext",
+ "cap-rand",
+ "cap-std",
+ "cap-time-ext",
+ "fs-set-times",
+ "futures",
+ "io-extras",
+ "libc",
+ "once_cell",
+ "rustix 0.38.12",
+ "system-interface",
+ "thiserror",
+ "tokio",
+ "tracing",
+ "wasi-cap-std-sync",
+ "wasi-common",
+ "wasmtime",
+ "wiggle",
+ "windows-sys",
+]
+
+[[package]]
+name = "wasmtime-winch"
+version = "12.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9d016c3f1d0c8ac905bfda51936cb6dae040e0d8edc75b7a1ef9f21773a19f6"
+dependencies = [
+ "anyhow",
+ "cranelift-codegen",
+ "gimli 0.27.3",
+ "object 0.31.1",
+ "target-lexicon",
+ "wasmparser 0.110.0",
+ "wasmtime-cranelift-shared",
+ "wasmtime-environ",
+ "winch-codegen",
+]
+
+[[package]]
+name = "wasmtime-wit-bindgen"
+version = "12.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbd55caadebae32cf18541e5077b3f042a171bb9988ea0040d0569f26a63227d"
+dependencies = [
+ "anyhow",
+ "heck",
+ "indexmap 2.0.0",
+ "wit-parser",
+]
+
+[[package]]
+name = "wast"
+version = "35.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ef140f1b49946586078353a453a1d28ba90adfc54dde75710bc1931de204d68"
+dependencies = [
+ "leb128",
+]
+
+[[package]]
+name = "web-sys"
+version = "0.3.64"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "weezl"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
+
+[[package]]
+name = "wiggle"
+version = "12.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "166189cd49163adc9a1e2a33b33625eb934d06e518c318905c3a5140d9bc1d45"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "bitflags 2.4.0",
+ "thiserror",
+ "tracing",
+ "wasmtime",
+ "wiggle-macro",
+]
+
+[[package]]
+name = "wiggle-generate"
+version = "12.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a67571bd77bff962190744adb29e72a1157d30e8d34fbb2c1c7b0ad7627be020"
+dependencies = [
+ "anyhow",
+ "heck",
+ "proc-macro2",
+ "quote",
+ "shellexpand",
+ "syn 2.0.31",
+ "witx",
+]
+
+[[package]]
+name = "wiggle-macro"
+version = "12.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5677f7d740bc41f9f6af4a6a719a07fbe1aa8ec66e0ec1ca4d3617f2b27d5361"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.31",
+ "wiggle-generate",
+]
+
+[[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 = "winch-codegen"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38e6f2f344ec89998f047d0aa3aec77088eb8e33c91f5efdd191b140fda6fa40"
+dependencies = [
+ "anyhow",
+ "cranelift-codegen",
+ "gimli 0.27.3",
+ "regalloc2",
+ "smallvec",
+ "target-lexicon",
+ "wasmparser 0.110.0",
+ "wasmtime-environ",
+]
+
+[[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 = "winreg"
+version = "0.50.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
+dependencies = [
+ "cfg-if",
+ "windows-sys",
+]
+
+[[package]]
+name = "winx"
+version = "0.36.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "357bb8e2932df531f83b052264b050b81ba0df90ee5a59b2d1d3949f344f81e5"
+dependencies = [
+ "bitflags 2.4.0",
+ "windows-sys",
+]
+
+[[package]]
+name = "wit-parser"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "541efa2046e544de53a9da1e2f6299e63079840360c9e106f1f8275a97771318"
+dependencies = [
+ "anyhow",
+ "id-arena",
+ "indexmap 2.0.0",
+ "log",
+ "pulldown-cmark",
+ "semver",
+ "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",
+]
+
+[[package]]
+name = "wyz"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed"
+dependencies = [
+ "tap",
+]
+
+[[package]]
+name = "x11-dl"
+version = "2.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f"
+dependencies = [
+ "libc",
+ "once_cell",
+ "pkg-config",
+]
diff --git a/pkgs/applications/video/obs-studio/plugins/obs-livesplit-one/default.nix b/pkgs/applications/video/obs-studio/plugins/obs-livesplit-one/default.nix
index 1f4665bf9ef0..33f953c4e2a6 100644
--- a/pkgs/applications/video/obs-studio/plugins/obs-livesplit-one/default.nix
+++ b/pkgs/applications/video/obs-studio/plugins/obs-livesplit-one/default.nix
@@ -9,16 +9,21 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "obs-livesplit-one";
-  version = "0.2.0";
+  version = "0.3.4";
 
   src = fetchFromGitHub {
-    owner = "CryZe";
+    owner = "LiveSplit";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-C1u4z7iQUETM84kf6S6obw+C0ox8J9gMJoVP3/3ZoYw=";
+    sha256 = "sha256-3B3P1PlzIlpVqHJMKWpEnWXGgD/IaiWM1FVKn0BtRj0=";
   };
 
-  cargoHash = "sha256-mQ0TR4DL4bA5u4IL3RY9aLxU5G6qQ5W5xuNadiXGeB0=";
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "livesplit-auto-splitting-0.1.0" = "sha256-/xQEVJH6m6nH5Z1kuOPEElOcOqJmiG9Q8cOx0e6p3Wc=";
+    };
+  };
 
   nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [ fontconfig obs-studio ];
@@ -30,7 +35,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "OBS Studio plugin for adding LiveSplit One as a source";
-    homepage = "https://github.com/CryZe/obs-livesplit-one";
+    homepage = "https://github.com/LiveSplit/obs-livesplit-one";
     license = with licenses; [ asl20 mit ];
     maintainers = [ maintainers.Bauke ];
     platforms = obs-studio.meta.platforms;
diff --git a/pkgs/applications/video/obs-studio/plugins/obs-pipewire-audio-capture.nix b/pkgs/applications/video/obs-studio/plugins/obs-pipewire-audio-capture.nix
index f2aef5972dc1..e73b54aac18f 100644
--- a/pkgs/applications/video/obs-studio/plugins/obs-pipewire-audio-capture.nix
+++ b/pkgs/applications/video/obs-studio/plugins/obs-pipewire-audio-capture.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "obs-pipewire-audio-capture";
-  version = "1.1.2";
+  version = "1.1.3";
 
   src = fetchFromGitHub {
     owner = "dimtpap";
     repo = pname;
     rev = version;
-    sha256 = "sha256-9HPQ17swMlsCnKkYQXIUzEbx2vKuBUfGf58Up2hHVGI=";
+    sha256 = "sha256-dL/+Y1uaD+7EY0UNWbxvh1TTLYfgk07qCqLLGvfzWZk=";
   };
 
   nativeBuildInputs = [ cmake ninja pkg-config ];
diff --git a/pkgs/applications/video/obs-studio/plugins/obs-teleport/default.nix b/pkgs/applications/video/obs-studio/plugins/obs-teleport/default.nix
index c7ee1d4f2598..3c0c662b7618 100644
--- a/pkgs/applications/video/obs-studio/plugins/obs-teleport/default.nix
+++ b/pkgs/applications/video/obs-studio/plugins/obs-teleport/default.nix
@@ -47,7 +47,7 @@ buildGoModule rec {
   meta = {
     description = "An OBS Studio plugin for an open NDI-like replacement";
     homepage = "https://github.com/fzwoch/obs-teleport";
-    maintainers = [ lib.maintainers.paveloom ];
+    maintainers = [ ];
     license = lib.licenses.gpl2Plus;
     platforms = obs-studio.meta.platforms;
   };
diff --git a/pkgs/applications/video/pipe-viewer/default.nix b/pkgs/applications/video/pipe-viewer/default.nix
index adf5fcb50487..536b904fd858 100644
--- a/pkgs/applications/video/pipe-viewer/default.nix
+++ b/pkgs/applications/video/pipe-viewer/default.nix
@@ -38,13 +38,13 @@ let
 in
 buildPerlModule rec {
   pname = "pipe-viewer";
-  version = "0.4.8";
+  version = "0.4.9";
 
   src = fetchFromGitHub {
     owner = "trizen";
     repo = "pipe-viewer";
     rev = version;
-    hash = "sha256-bFbriqpy+Jjwv/s4PZmLdL3hFtM8gfIn+yJjk3fCsnQ=";
+    hash = "sha256-7l8exCC9robe1hKnQAaIVfnn8L+FuwTOkxaxlwJmpe0=";
   };
 
   nativeBuildInputs = [ makeWrapper ]
diff --git a/pkgs/applications/video/shotcut/default.nix b/pkgs/applications/video/shotcut/default.nix
index cb1a227dd060..d76f2cf98ee5 100644
--- a/pkgs/applications/video/shotcut/default.nix
+++ b/pkgs/applications/video/shotcut/default.nix
@@ -20,13 +20,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "shotcut";
-  version = "23.12.15";
+  version = "24.01.13";
 
   src = fetchFromGitHub {
     owner = "mltframework";
     repo = "shotcut";
     rev = "v${version}";
-    hash = "sha256-wTFnf7YMFzFI+buAI2Cqy7+cfcdDS0O1vAwiIZZKWhU=";
+    hash = "sha256-a/PgwxD8MXItkxT4LTdEJrrExD3r9CUkxr/uhgJicD8=";
   };
 
   nativeBuildInputs = [ pkg-config cmake wrapQtAppsHook ];
diff --git a/pkgs/applications/video/streamlink-twitch-gui/bin.nix b/pkgs/applications/video/streamlink-twitch-gui/bin.nix
index 89a441159de0..ac74ed748f41 100644
--- a/pkgs/applications/video/streamlink-twitch-gui/bin.nix
+++ b/pkgs/applications/video/streamlink-twitch-gui/bin.nix
@@ -121,6 +121,7 @@ stdenv.mkDerivation rec {
     downloadPage = "https://github.com/streamlink/streamlink-twitch-gui/releases";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
+    mainProgram = "streamlink-twitch-gui";
     maintainers = with maintainers; [ rileyinman ];
     platforms = [ "x86_64-linux" "i686-linux" ];
   };
diff --git a/pkgs/applications/video/streamlink/default.nix b/pkgs/applications/video/streamlink/default.nix
index 83b734519d03..962604f79106 100644
--- a/pkgs/applications/video/streamlink/default.nix
+++ b/pkgs/applications/video/streamlink/default.nix
@@ -6,12 +6,12 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "streamlink";
-  version = "6.5.0";
+  version = "6.5.1";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-j01hWTvM4Q+NXoTKlWqsT6Y5wKNJ5983mDQ3Oog5Zu0=";
+    hash = "sha256-IH+0zpnDW/6xuPfHa5bPy0B2rWiBxh6upVPC7BPZfFc=";
   };
 
   nativeCheckInputs = with python3Packages; [
diff --git a/pkgs/applications/video/stremio/default.nix b/pkgs/applications/video/stremio/default.nix
index d64730f78a73..03ccb4b9f066 100644
--- a/pkgs/applications/video/stremio/default.nix
+++ b/pkgs/applications/video/stremio/default.nix
@@ -4,19 +4,19 @@
 
 stdenv.mkDerivation rec {
   pname = "stremio-shell";
-  version = "4.4.142";
+  version = "4.4.165";
 
   src = fetchFromGitHub {
     owner = "Stremio";
     repo = pname;
     rev = "v${version}";
     fetchSubmodules = true;
-    sha256 = "sha256-OyuTFmEIC8PH4PDzTMn8ibLUAzJoPA/fTILee0xpgQI=";
+    sha256 = "sha256-Gky0/HaGm11PeV4twoQV71T99NG2o0mYzQxu/c9x5oE=";
   };
 
   server = fetchurl {
     url = "https://s3-eu-west-1.amazonaws.com/stremio-artifacts/four/v${version}/server.js";
-    sha256 = "sha256-YYeD3SEbLgNQHGP5AI9WiHUU6xLkTeFAqYIuWsIsYSs=";
+    sha256 = "sha256-52Pg0PrV15arGqhD3rXYCl1J6kcoL+/BHRvgiQBO/OA=";
   };
 
   buildInputs = [ qtwebengine mpv ];
diff --git a/pkgs/applications/video/subtitleedit/default.nix b/pkgs/applications/video/subtitleedit/default.nix
index 88018e5a5612..e08ac36db3f0 100644
--- a/pkgs/applications/video/subtitleedit/default.nix
+++ b/pkgs/applications/video/subtitleedit/default.nix
@@ -92,6 +92,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.all;
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
-    maintainers = with maintainers; [ paveloom ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/applications/video/tartube/default.nix b/pkgs/applications/video/tartube/default.nix
index b1b05a524f74..180315e5072f 100644
--- a/pkgs/applications/video/tartube/default.nix
+++ b/pkgs/applications/video/tartube/default.nix
@@ -15,13 +15,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "tartube";
-  version = "2.4.221";
+  version = "2.5.0";
 
   src = fetchFromGitHub {
     owner = "axcore";
     repo = "tartube";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-A5p4olnXak22410DOKIPpZ6MQGR5aS2ARWO+083bSuQ=";
+    sha256 = "sha256-IcJDh8Q9K6SROZWVi98R1N2kSdgwJczScLdJFKy2FIU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/video/ustreamer/default.nix b/pkgs/applications/video/ustreamer/default.nix
index 04c1296b0e34..88baeafe1871 100644
--- a/pkgs/applications/video/ustreamer/default.nix
+++ b/pkgs/applications/video/ustreamer/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ustreamer";
-  version = "5.45";
+  version = "5.48";
 
   src = fetchFromGitHub {
     owner = "pikvm";
     repo = "ustreamer";
     rev = "v${version}";
-    hash = "sha256-2WJXOv15oZRk2doecd+xOURygbX4oGyeMAJiiuiRBi4=";
+    hash = "sha256-R1HL8tYFDtHrxArcoJwlM0Y7MbSyNxNiZ2tjyh1OCn4=";
   };
 
   buildInputs = [ libbsd libevent libjpeg ];
diff --git a/pkgs/applications/video/vdr/default.nix b/pkgs/applications/video/vdr/default.nix
index 2df646d7578a..c5159fdd61f0 100644
--- a/pkgs/applications/video/vdr/default.nix
+++ b/pkgs/applications/video/vdr/default.nix
@@ -5,12 +5,12 @@
 }: stdenv.mkDerivation rec {
 
   pname = "vdr";
-  version = "2.6.5";
+  version = "2.6.6";
 
   src = fetchgit {
     url = "git://git.tvdr.de/vdr.git";
     rev = version;
-    hash = "sha256-CKgo1Saj6EkSRNoIh16wzGHmToIMADZtjd8VQ+c1nus=";
+    hash = "sha256-3om/Q67PHtX/aIG4zMCaJTyD9bZNEcyE5LQTeb+zB+M=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/video/vdr/markad/default.nix b/pkgs/applications/video/vdr/markad/default.nix
index 3acec28d803a..c0672821558b 100644
--- a/pkgs/applications/video/vdr/markad/default.nix
+++ b/pkgs/applications/video/vdr/markad/default.nix
@@ -19,12 +19,12 @@
 }:
 stdenv.mkDerivation rec {
   pname = "vdr-markad";
-  version = "3.4.3";
+  version = "3.4.6";
 
   src = fetchFromGitHub {
     repo = "vdr-plugin-markad";
     owner = "kfb77";
-    sha256 = "sha256-1+NpfZaXUaNSRbN07FrjDNqbOotmvrAwf4uLKhnKGkQ=";
+    sha256 = "sha256-fixkalZAPz0iO1SmshsO0vYc2sksH2lrStsSOEcdZ1g=";
     rev = "V${version}";
   };
 
diff --git a/pkgs/applications/video/vlc/default.nix b/pkgs/applications/video/vlc/default.nix
index afa948b00bb5..2b5c86b0efb2 100644
--- a/pkgs/applications/video/vlc/default.nix
+++ b/pkgs/applications/video/vlc/default.nix
@@ -44,7 +44,7 @@
 , libmtp
 , liboggz
 , libopus
-, libplacebo
+, libplacebo_5
 , libpulseaudio
 , libraw1394
 , librsvg
@@ -164,7 +164,7 @@ stdenv.mkDerivation (finalAttrs: {
     libmtp
     liboggz
     libopus
-    libplacebo
+    libplacebo_5
     libpulseaudio
     libraw1394
     librsvg
diff --git a/pkgs/applications/virtualization/colima/default.nix b/pkgs/applications/virtualization/colima/default.nix
index f55cc5faecd9..e9e769767358 100644
--- a/pkgs/applications/virtualization/colima/default.nix
+++ b/pkgs/applications/virtualization/colima/default.nix
@@ -17,13 +17,13 @@
 
 buildGoModule rec {
   pname = "colima";
-  version = "0.6.7";
+  version = "0.6.8";
 
   src = fetchFromGitHub {
     owner = "abiosoft";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-7s/e/fV6azT26oeEJhh6PPcnI/cjpmEHf9TsZHspcwE=";
+    hash = "sha256-9mBjK+VArfsLfwRRIFn8kY2scAtvIjIMWX84Bi7MBvU=";
     # We need the git revision
     leaveDotGit = true;
     postFetch = ''
@@ -35,7 +35,7 @@ buildGoModule rec {
   nativeBuildInputs = [ installShellFiles makeWrapper ]
     ++ lib.optionals stdenv.isDarwin [ darwin.DarwinTools ];
 
-  vendorHash = "sha256-ET9n15+YK8ByodePztee6tKdFvvgk7jEKSUjRYSEpq8=";
+  vendorHash = "sha256-QS0TwXI2Md+PXmT2UrzCMQoHRj+wjTSjWPv9CeVzyFU=";
 
   # disable flaky Test_extractZones
   # https://hydra.nixos.org/build/212378003/log
diff --git a/pkgs/applications/virtualization/containerd/default.nix b/pkgs/applications/virtualization/containerd/default.nix
index 47381e4d1a1b..9c194c45b991 100644
--- a/pkgs/applications/virtualization/containerd/default.nix
+++ b/pkgs/applications/virtualization/containerd/default.nix
@@ -11,13 +11,13 @@
 
 buildGoModule rec {
   pname = "containerd";
-  version = "1.7.11";
+  version = "1.7.13";
 
   src = fetchFromGitHub {
     owner = "containerd";
     repo = "containerd";
     rev = "v${version}";
-    hash = "sha256-kvBD9Qh10kRowr32zDzjpHYh2IZC6+w+nOO4joShgEE=";
+    hash = "sha256-y3CYDZbA2QjIn1vyq/p1F1pAVxQHi/0a6hGWZCRWzyk=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/virtualization/cri-o/default.nix b/pkgs/applications/virtualization/cri-o/default.nix
index 1cd8b02bacf7..edf4f1f60d4a 100644
--- a/pkgs/applications/virtualization/cri-o/default.nix
+++ b/pkgs/applications/virtualization/cri-o/default.nix
@@ -15,13 +15,13 @@
 
 buildGoModule rec {
   pname = "cri-o";
-  version = "1.29.0";
+  version = "1.29.1";
 
   src = fetchFromGitHub {
     owner = "cri-o";
     repo = "cri-o";
     rev = "v${version}";
-    sha256 = "sha256-Vy/sW8Y9SFSBaoectehF7ROxuypD7k7tAkcfrEK+pmI=";
+    sha256 = "sha256-RL4JkEJMVduG06udIVlVdr+bj9wIGbun3rpeTCUehhk=";
   };
   vendorHash = null;
 
diff --git a/pkgs/applications/virtualization/crun/default.nix b/pkgs/applications/virtualization/crun/default.nix
index 81d25a84d2c8..8f4fb0311464 100644
--- a/pkgs/applications/virtualization/crun/default.nix
+++ b/pkgs/applications/virtualization/crun/default.nix
@@ -39,13 +39,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "crun";
-  version = "1.13";
+  version = "1.14";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = pname;
     rev = version;
-    hash = "sha256-doGZ1rHHXDRClrTEXYJcU6AqlBTanpNpV6EIbxQgcXY=";
+    hash = "sha256-ElmdYJ4X5C+2BKWgUoL7bg/whvAg2CFBDFAGnJXscB4=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/virtualization/distrobox/always-mount-nix.patch b/pkgs/applications/virtualization/distrobox/always-mount-nix.patch
new file mode 100644
index 000000000000..c5df13294e92
--- /dev/null
+++ b/pkgs/applications/virtualization/distrobox/always-mount-nix.patch
@@ -0,0 +1,137 @@
+diff --git a/distrobox-create b/distrobox-create
+index 64e9911..136659d 100755
+--- a/distrobox-create
++++ b/distrobox-create
+@@ -74,6 +74,10 @@ unshare_ipc=0
+ unshare_netns=0
+ unshare_process=0
+ unshare_devsys=0
++
++self_dir="$(dirname "$(realpath "$0")")"
++nix_config_file="$(realpath "${self_dir}/../share/distrobox/distrobox.conf")"
++
+ # Use cd + dirname + pwd so that we do not have relative paths in mount points
+ # We're not using "realpath" here so that symlinks are not resolved this way
+ # "realpath" would break situations like Nix or similar symlink based package
+@@ -98,6 +102,7 @@ version="1.6.0.1"
+ # priority over system defaults
+ # leave priority to environment variables.
+ config_files="
++	$nix_config_file
+ 	/usr/share/distrobox/distrobox.conf
+ 	/usr/share/defaults/distrobox/distrobox.conf
+ 	/usr/etc/distrobox/distrobox.conf
+diff --git a/distrobox-enter b/distrobox-enter
+index 6d8998a..bb05437 100755
+--- a/distrobox-enter
++++ b/distrobox-enter
+@@ -75,10 +75,14 @@ skip_workdir=0
+ verbose=0
+ version="1.6.0.1"
+ 
++self_dir="$(dirname "$(realpath "$0")")"
++nix_config_file="$(realpath "${self_dir}/../share/distrobox/distrobox.conf")"
++
+ # Source configuration files, this is done in an hierarchy so local files have
+ # priority over system defaults
+ # leave priority to environment variables.
+ config_files="
++	$nix_config_file
+ 	/usr/share/distrobox/distrobox.conf
+ 	/usr/share/defaults/distrobox/distrobox.conf
+ 	/usr/etc/distrobox/distrobox.conf
+diff --git a/distrobox-generate-entry b/distrobox-generate-entry
+index 3243691..6a7910a 100755
+--- a/distrobox-generate-entry
++++ b/distrobox-generate-entry
+@@ -45,10 +45,14 @@ icon_default="${HOME}/.local/share/icons/terminal-distrobox-icon.svg"
+ verbose=0
+ version="1.6.0.1"
+ 
++self_dir="$(dirname "$(realpath "$0")")"
++nix_config_file="$(realpath "${self_dir}/../share/distrobox/distrobox.conf")"
++
+ # Source configuration files, this is done in an hierarchy so local files have
+ # priority over system defaults
+ # leave priority to environment variables.
+ config_files="
++	$nix_config_file
+ 	/usr/share/distrobox/distrobox.conf
+ 	/usr/share/defaults/distrobox/distrobox.conf
+ 	/usr/etc/distrobox/distrobox.conf
+diff --git a/distrobox-list b/distrobox-list
+index aaec85e..235e529 100755
+--- a/distrobox-list
++++ b/distrobox-list
+@@ -44,10 +44,14 @@ verbose=0
+ version="1.6.0.1"
+ container_manager="autodetect"
+ 
++self_dir="$(dirname "$(realpath "$0")")"
++nix_config_file="$(realpath "${self_dir}/../share/distrobox/distrobox.conf")"
++
+ # Source configuration files, this is done in an hierarchy so local files have
+ # priority over system defaults
+ # leave priority to environment variables.
+ config_files="
++	$nix_config_file
+ 	/usr/share/distrobox/distrobox.conf
+ 	/usr/share/defaults/distrobox/distrobox.conf
+ 	/usr/etc/distrobox/distrobox.conf
+diff --git a/distrobox-rm b/distrobox-rm
+index 702c1dd..2e37538 100755
+--- a/distrobox-rm
++++ b/distrobox-rm
+@@ -54,10 +54,14 @@ rm_home=0
+ response_rm_home="N"
+ version="1.6.0.1"
+ 
++self_dir="$(dirname "$(realpath "$0")")"
++nix_config_file="$(realpath "${self_dir}/../share/distrobox/distrobox.conf")"
++
+ # Source configuration files, this is done in an hierarchy so local files have
+ # priority over system defaults
+ # leave priority to environment variables.
+ config_files="
++	$nix_config_file
+ 	/usr/share/distrobox/distrobox.conf
+ 	/usr/share/defaults/distrobox/distrobox.conf
+ 	/usr/etc/distrobox/distrobox.conf
+diff --git a/distrobox-stop b/distrobox-stop
+index fd17cc1..e0dbc8f 100755
+--- a/distrobox-stop
++++ b/distrobox-stop
+@@ -52,10 +52,14 @@ non_interactive=0
+ verbose=0
+ version="1.6.0.1"
+ 
++self_dir="$(dirname "$(realpath "$0")")"
++nix_config_file="$(realpath "${self_dir}/../share/distrobox/distrobox.conf")"
++
+ # Source configuration files, this is done in an hierarchy so local files have
+ # priority over system defaults
+ # leave priority to environment variables.
+ config_files="
++	$nix_config_file
+ 	/usr/share/distrobox/distrobox.conf
+ 	/usr/share/defaults/distrobox/distrobox.conf
+ 	/usr/etc/distrobox/distrobox.conf
+diff --git a/distrobox-upgrade b/distrobox-upgrade
+index ab5e96f..dc8d295 100755
+--- a/distrobox-upgrade
++++ b/distrobox-upgrade
+@@ -39,10 +39,14 @@ rootful=0
+ verbose=0
+ version="1.6.0.1"
+ 
++self_dir="$(dirname "$(realpath "$0")")"
++nix_config_file="$(realpath "${self_dir}/../share/distrobox/distrobox.conf")"
++
+ # Source configuration files, this is done in an hierarchy so local files have
+ # priority over system defaults
+ # leave priority to environment variables.
+ config_files="
++	$nix_config_file
+ 	/usr/share/distrobox/distrobox.conf
+ 	/usr/share/defaults/distrobox/distrobox.conf
+ 	/usr/etc/distrobox/distrobox.conf
diff --git a/pkgs/applications/virtualization/distrobox/default.nix b/pkgs/applications/virtualization/distrobox/default.nix
index 163910237a37..912117a016ed 100644
--- a/pkgs/applications/virtualization/distrobox/default.nix
+++ b/pkgs/applications/virtualization/distrobox/default.nix
@@ -2,19 +2,23 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "distrobox";
-  version = "1.5.0.2";
+  version = "1.6.0.1";
 
   src = fetchFromGitHub {
     owner = "89luca89";
-    repo = finalAttrs.pname;
+    repo = "distrobox";
     rev = finalAttrs.version;
-    hash = "sha256-ss8049D6n1V/gDzEMjywDnoke5s2we9j3mO8yta72UA=";
+    hash = "sha256-UWrXpb20IHcwadPpwbhSjvOP1MBXic5ay+nP+OEVQE4=";
   };
 
   dontConfigure = true;
   dontBuild = true;
 
   nativeBuildInputs = [ makeWrapper ];
+
+  # https://github.com/89luca89/distrobox/pull/1080
+  patches = [ ./always-mount-nix.patch ];
+
   installPhase = ''
     runHook preInstall
 
@@ -30,6 +34,9 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   postFixup = ''
     wrapProgram "$out/bin/distrobox-generate-entry" \
       --prefix PATH ":" ${lib.makeBinPath [ wget ]}
+
+    mkdir -p $out/share/distrobox
+    echo 'container_additional_volumes="/nix:/nix"' > $out/share/distrobox/distrobox.conf
   '';
 
   meta = with lib; {
@@ -39,7 +46,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
       forward compatibility with software and freedom to use whatever distribution
       you’re more comfortable with
     '';
-    homepage = "https://distrobox.privatedns.org/";
+    homepage = "https://distrobox.it/";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ atila ];
diff --git a/pkgs/applications/virtualization/docker-slim/default.nix b/pkgs/applications/virtualization/docker-slim/default.nix
index 06eba06ab2c7..03a76e4f0096 100644
--- a/pkgs/applications/virtualization/docker-slim/default.nix
+++ b/pkgs/applications/virtualization/docker-slim/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "docker-slim";
-  version = "1.40.9";
+  version = "1.40.11";
 
   src = fetchFromGitHub {
     owner = "slimtoolkit";
     repo = "slim";
     rev = version;
-    hash = "sha256-tVGD5DbrnAiifCYEjI8l8Zsij2qAUkW5yxllr//6510=";
+    hash = "sha256-X+1euWp4W53axbiBpL82bUPfod/JNhGVGWgOqKyhz6A=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/virtualization/docker/compose.nix b/pkgs/applications/virtualization/docker/compose.nix
index aadc42643577..f6f2e5f5a843 100644
--- a/pkgs/applications/virtualization/docker/compose.nix
+++ b/pkgs/applications/virtualization/docker/compose.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "docker-compose";
-  version = "2.24.0";
+  version = "2.24.5";
 
   src = fetchFromGitHub {
     owner = "docker";
     repo = "compose";
     rev = "v${version}";
-    hash = "sha256-6wa4kIl65z3kk+wzDX+WhS50J+e0AZ+W8A++bdnRc2M=";
+    hash = "sha256-mn6HkGLQM5kx6yzV4IK+GTV6pCoIm1CNjQ8AZLv3sMw=";
   };
 
   postPatch = ''
@@ -16,7 +16,7 @@ buildGoModule rec {
     rm -rf e2e/
   '';
 
-  vendorHash = "sha256-03jlomVb3jS+SkmIxRtPsaMx2VKLYX/Lp9JH/mlJvK4=";
+  vendorHash = "sha256-KR+4OZKabshnGpkPq8vtEutvQUE+3jVwAlfAwFVlscU=";
 
   ldflags = [ "-X github.com/docker/compose/v2/internal.Version=${version}" "-s" "-w" ];
 
diff --git a/pkgs/applications/virtualization/docker/default.nix b/pkgs/applications/virtualization/docker/default.nix
index a8c7d77da670..561066bfa12a 100644
--- a/pkgs/applications/virtualization/docker/default.nix
+++ b/pkgs/applications/virtualization/docker/default.nix
@@ -106,6 +106,17 @@ rec {
           url = "https://github.com/moby/moby/pull/43136.patch";
           hash = "sha256-1WZfpVnnqFwLMYqaHLploOodls0gHF8OCp7MrM26iX8=";
         })
+      ] ++ lib.optionals (lib.versions.major version == "24") [
+        # docker_24 has LimitNOFILE set to "infinity", which causes a wide variety of issues in containers.
+        # Issues range from higher-than-usual ressource usage, to containers not starting at all.
+        # This patch (part of the release candidates for docker_25) simply removes this unit option
+        # making systemd use its default "1024:524288", which is sane. See commit message and/or the PR for
+        # more details: https://github.com/moby/moby/pull/45534
+        (fetchpatch {
+          name = "LimitNOFILE-systemd-default.patch";
+          url = "https://github.com/moby/moby/pull/45534/commits/c8930105bc9fc3c1a8a90886c23535cc6c41e130.patch";
+          hash = "sha256-nyGLxFrJaD0TrDqsAwOD6Iph0aHcFH9sABj1Fy74sec=";
+        })
       ];
 
       postPatch = ''
diff --git a/pkgs/applications/virtualization/ecs-agent/default.nix b/pkgs/applications/virtualization/ecs-agent/default.nix
index 7659da2815e6..9838ab37c1e2 100644
--- a/pkgs/applications/virtualization/ecs-agent/default.nix
+++ b/pkgs/applications/virtualization/ecs-agent/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "amazon-ecs-agent";
-  version = "1.79.2";
+  version = "1.81.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "aws";
     repo = pname;
-    hash = "sha256-nq9voqmPvNemtUl3rcTSUjzrrk3DbcmZVzVYOdHkU2o=";
+    hash = "sha256-k2YFxKHXNCKMMyBZ4HSo6bvtEAAp4rnzobDYK3Q5aCY=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/virtualization/kraft/default.nix b/pkgs/applications/virtualization/kraft/default.nix
index f6e2ca39f7c7..15ddfe4f5307 100644
--- a/pkgs/applications/virtualization/kraft/default.nix
+++ b/pkgs/applications/virtualization/kraft/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "kraftkit";
-  version = "0.7.1";
+  version = "0.7.3";
 
   src = fetchFromGitHub {
     owner = "unikraft";
     repo = "kraftkit";
     rev = "v${version}";
-    hash = "sha256-PfZBuTeibXhKH/upLiCw2jrS2YWTXjj6BABhyUCGMlM=";
+    hash = "sha256-61eH2aFue/qJ7Xmu8ueQvsQ5moVpDkHe9p9bywqRwQY=";
   };
 
-  vendorHash = "sha256-3zmtqxgCC9HqUoyMR8xse+U8U/71HYHCHBWzthZiEmw=";
+  vendorHash = "sha256-4e7g79C6BofnPXPCuquIPfGL7C9TMSdmlIq2HSrz3eY=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/applications/virtualization/nixpacks/default.nix b/pkgs/applications/virtualization/nixpacks/default.nix
index c8ca4b8d20ee..97ad009bb80d 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.20.0";
+  version = "1.21.0";
 
   src = fetchFromGitHub {
     owner = "railwayapp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-EaJYuapTWzVD80UyhzjP1q1SCCNmUozf+hUl4wBgC14=";
+    sha256 = "sha256-S7Kgp1KNp8GTGp+Go7pUdRJTZLxFsOYfmgcaRBQfeHA=";
   };
 
-  cargoHash = "sha256-Vh5mdxxROVthDUzK+PRhl9AY5jcmvhEXP5UqOeqOm6o=";
+  cargoHash = "sha256-5Q5ZUSPI+BQj/2nIx6RsshJQPPoZO4EX07b1rzvXlyU=";
 
   # skip test due FHS dependency
   doCheck = false;
diff --git a/pkgs/applications/virtualization/podman-tui/default.nix b/pkgs/applications/virtualization/podman-tui/default.nix
index cc91256e4371..f48a4394f7b3 100644
--- a/pkgs/applications/virtualization/podman-tui/default.nix
+++ b/pkgs/applications/virtualization/podman-tui/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "podman-tui";
-  version = "0.15.0";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "podman-tui";
     rev = "v${version}";
-    hash = "sha256-DXodgpa/oWDBlJYTXcJb8cBkG1DCjFv8vKEzLhu0pN4=";
+    hash = "sha256-nPSUpGLSuIZMzgvmZtCZ3nqT5b1+0VkCmzPnUMLYkss=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/virtualization/podman/default.nix b/pkgs/applications/virtualization/podman/default.nix
index 4c912e1c1980..e29e1927b6f2 100644
--- a/pkgs/applications/virtualization/podman/default.nix
+++ b/pkgs/applications/virtualization/podman/default.nix
@@ -62,13 +62,13 @@ let
 in
 buildGoModule rec {
   pname = "podman";
-  version = "4.8.3";
+  version = "4.9.1";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "podman";
     rev = "v${version}";
-    hash = "sha256-Q4LdBRJed1Vm5Qo3wyEsU3Pj2t9FfyB9rjiM4Vi0ZEw=";
+    hash = "sha256-G5LTxBzBn+JFQzhzpsphqTcqq5bi+WjmjsOtJvSxO3k=";
   };
 
   patches = [
diff --git a/pkgs/applications/virtualization/qemu/default.nix b/pkgs/applications/virtualization/qemu/default.nix
index 3debac4c6fb4..f241a553f864 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.0";
+  version = "8.2.1";
 
   src = fetchurl {
     url = "https://download.qemu.org/qemu-${finalAttrs.version}.tar.xz";
-    hash = "sha256-vwDS+hIBDfiwrekzcd71jmMssypr/cX1oP+Oah+xvzI=";
+    hash = "sha256-hWJ1EVgXX50YfF8itXVVq+PIcPAyXIztEsNMbZh3Kb4=";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ]
@@ -135,11 +135,6 @@ stdenv.mkDerivation (finalAttrs: {
       sha256 = "sha256-oC+bRjEHixv1QEFO9XAm4HHOwoiT+NkhknKGPydnZ5E=";
       revert = true;
     })
-    # Fix display issues when using virtio-gpu on 8.2.0 https://gitlab.com/qemu-project/qemu/-/issues/2051
-    (fetchpatch {
-      url = "https://gitlab.com/qemu-project/qemu/-/commit/9d5b42beb6978dc6219d5dc029c9d453c6b8d503.diff";
-      sha256 = "sha256-NknkH/gFTsMcdq8/ArwM4+qrpU+ZHd+xVMFUuMJTtf0=";
-    })
   ]
   ++ lib.optional nixosTestRunner ./force-uid0-on-9p.patch;
 
diff --git a/pkgs/applications/virtualization/runc/default.nix b/pkgs/applications/virtualization/runc/default.nix
index 38ec1e6244da..71ff22032cb5 100644
--- a/pkgs/applications/virtualization/runc/default.nix
+++ b/pkgs/applications/virtualization/runc/default.nix
@@ -14,13 +14,13 @@
 
 buildGoModule rec {
   pname = "runc";
-  version = "1.1.11";
+  version = "1.1.12";
 
   src = fetchFromGitHub {
     owner = "opencontainers";
     repo = "runc";
     rev = "v${version}";
-    hash = "sha256-3LZWidINg15Aqoswml/BY7ZmLvz0XsbtYV5Cx8h5lpM=";
+    hash = "sha256-N77CU5XiGYIdwQNPFyluXjseTeaYuNJ//OsEUS0g/v0=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/virtualization/singularity/packages.nix b/pkgs/applications/virtualization/singularity/packages.nix
index 50a8fc103ad1..6d71d1abe16e 100644
--- a/pkgs/applications/virtualization/singularity/packages.nix
+++ b/pkgs/applications/virtualization/singularity/packages.nix
@@ -38,20 +38,20 @@ let
   singularity = callPackage
     (import ./generic.nix rec {
       pname = "singularity-ce";
-      version = "4.0.3";
+      version = "4.1.1";
       projectName = "singularity";
 
       src = fetchFromGitHub {
         owner = "sylabs";
         repo = "singularity";
         rev = "refs/tags/v${version}";
-        hash = "sha256-sT5nW/7xE2TT4TO9H7Y3CDf87LvwPbT1NjVQVK9yyVY=";
+        hash = "sha256-BKuo+W75wsK8HFB+5CtKPqR4nDw167pAAiuISOjML7k=";
       };
 
       # Update by running
       # nix-prefetch -E "{ sha256 }: ((import ./. { }).singularity.override { vendorHash = sha256; }).goModules"
       # at the root directory of the Nixpkgs repository
-      vendorHash = "sha256-q7n1LymH5KGYHg73r30xryVWupzDheBp7Gpr3XZiZHI=";
+      vendorHash = "sha256-Hg32YtXUFQI7OslW3E3QpxCiypwaK8BDAl3YAM6kMnw=";
 
       # Do not build conmon and squashfuse from the Git submodule sources,
       # Use Nixpkgs provided version
diff --git a/pkgs/applications/virtualization/virt-manager/default.nix b/pkgs/applications/virtualization/virt-manager/default.nix
index f0bb04b8304f..3e0c24877fdf 100644
--- a/pkgs/applications/virtualization/virt-manager/default.nix
+++ b/pkgs/applications/virtualization/virt-manager/default.nix
@@ -23,6 +23,11 @@ python3.pkgs.buildPythonApplication rec {
       url = "https://github.com/virt-manager/virt-manager/commit/6e5c1db6b4a0af96afeb09a09fb2fc2b73308f01.patch";
       hash = "sha256-zivVo6nHvfB7aHadOouQZCBXn5rY12nxFjQ4FFwjgZI=";
     })
+    # fix test with libvirt 10
+    (fetchpatch {
+      url = "https://github.com/virt-manager/virt-manager/commit/83fcc5b2e8f2cede84564387756fe8971de72188.patch";
+      hash = "sha256-yEk+md5EkwYpP27u3E+oTJ8thgtH2Uy1x3JIWPBhqeE=";
+    })
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/virtualization/virt-viewer/default.nix b/pkgs/applications/virtualization/virt-viewer/default.nix
index 58d9edb269a4..1aca58af5c77 100644
--- a/pkgs/applications/virtualization/virt-viewer/default.nix
+++ b/pkgs/applications/virtualization/virt-viewer/default.nix
@@ -5,6 +5,7 @@
 , fetchpatch
 , gdbm
 , glib
+, gst_all_1
 , gsettings-desktop-schemas
 , gtk-vnc
 , gtk3
@@ -64,6 +65,8 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-good
     bash-completion
     glib
     gsettings-desktop-schemas
diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix
index 62109eac2700..9ccda28cfa73 100644
--- a/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/default.nix
@@ -238,6 +238,12 @@ in stdenv.mkDerivation {
 
   meta = {
     description = "PC emulator";
+    longDescription = ''
+      VirtualBox is an x86 and AMD64/Intel64 virtualization product for enterprise and home use.
+
+      To install on NixOS, please use the option `virtualisation.virtualbox.host.enable = true`.
+      Please also check other options under `virtualisation.virtualbox`.
+    '';
     sourceProvenance = with lib.sourceTypes; [
       fromSource
       binaryNativeCode
diff --git a/pkgs/applications/virtualization/youki/default.nix b/pkgs/applications/virtualization/youki/default.nix
index 70e481c9ab51..ae0af1c92f6a 100644
--- a/pkgs/applications/virtualization/youki/default.nix
+++ b/pkgs/applications/virtualization/youki/default.nix
@@ -10,15 +10,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "youki";
-  version = "0.3.1";
+  version = "0.3.2";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-BZhg4VhJbAo6XO4w01zguodyr3KEbav+PON0aOmi2bI=";
+    hash = "sha256-/cc+gHnakxC446MxErvgCDvc1gMWNi45h6fZ1Cd1Pj0=";
   };
 
+  cargoPatches = [
+    ./fix-cargo-lock.patch
+  ];
+
   nativeBuildInputs = [ pkg-config installShellFiles ];
 
   buildInputs = [ dbus libseccomp systemd ];
@@ -33,7 +37,7 @@ rustPlatform.buildRustPackage rec {
   cargoBuildFlags = [ "-p" "youki" ];
   cargoTestFlags = [ "-p" "youki" ];
 
-  cargoHash = "sha256-IkL0gS3hht1XBnOy0YHO02vfw4sljtwfNImfojiLIE4=";
+  cargoHash = "sha256-PKn448fOCnyMC42NtQnLt8kvZIBautsq4Fw/bRvwmpw=";
 
   meta = with lib; {
     description = "A container runtime written in Rust";
diff --git a/pkgs/applications/virtualization/youki/fix-cargo-lock.patch b/pkgs/applications/virtualization/youki/fix-cargo-lock.patch
new file mode 100644
index 000000000000..07f44a9e91a4
--- /dev/null
+++ b/pkgs/applications/virtualization/youki/fix-cargo-lock.patch
@@ -0,0 +1,40 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index cfef78c0..7cad3faa 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -1879,7 +1879,7 @@ checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
+ 
+ [[package]]
+ name = "libcgroups"
+-version = "0.3.1"
++version = "0.3.2"
+ dependencies = [
+  "anyhow",
+  "clap",
+@@ -1904,7 +1904,7 @@ dependencies = [
+ 
+ [[package]]
+ name = "libcontainer"
+-version = "0.3.1"
++version = "0.3.2"
+ dependencies = [
+  "anyhow",
+  "bitflags 2.4.2",
+@@ -1947,7 +1947,7 @@ dependencies = [
+ 
+ [[package]]
+ name = "liboci-cli"
+-version = "0.3.1"
++version = "0.3.2"
+ dependencies = [
+  "clap",
+ ]
+@@ -5712,7 +5712,7 @@ dependencies = [
+ 
+ [[package]]
+ name = "youki"
+-version = "0.3.1"
++version = "0.3.2"
+ dependencies = [
+  "anyhow",
+  "caps",
diff --git a/pkgs/applications/window-managers/cagebreak/default.nix b/pkgs/applications/window-managers/cagebreak/default.nix
index 2f3add0356a9..da3f2a97082e 100644
--- a/pkgs/applications/window-managers/cagebreak/default.nix
+++ b/pkgs/applications/window-managers/cagebreak/default.nix
@@ -25,13 +25,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cagebreak";
-  version = "2.2.3";
+  version = "2.3.1";
 
   src = fetchFromGitHub {
     owner = "project-repo";
     repo = pname;
     rev = version;
-    hash = "sha256-ppNzc6ojxF9FkgsqSWBSbtmI9aRc+RGN1R1RQLwCtv0=";
+    hash = "sha256-GAANZIEUtuONPBpk0E3fErgOZtm3wB+gWJNwfO6VOTo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/window-managers/evilwm/default.nix b/pkgs/applications/window-managers/evilwm/default.nix
index 0578be8ed6c7..a0dbb3660d31 100644
--- a/pkgs/applications/window-managers/evilwm/default.nix
+++ b/pkgs/applications/window-managers/evilwm/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "evilwm";
-  version = "1.1.1";
+  version = "1.4.2";
 
   src = fetchurl {
     url = "http://www.6809.org.uk/evilwm/evilwm-${version}.tar.gz";
-    sha256 = "79589c296a5915ee0bae1d231e8912601fc794d9f0a9cacb6b648ff9a5f2602a";
+    sha256 = "sha256-QhLW2QywBbLMiIFLyFN3NrSVCrWCZLu2W4gHrGO9xLk=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/window-managers/fbpanel/default.nix b/pkgs/applications/window-managers/fbpanel/default.nix
index addebf13ec65..6ee2c94230de 100644
--- a/pkgs/applications/window-managers/fbpanel/default.nix
+++ b/pkgs/applications/window-managers/fbpanel/default.nix
@@ -1,30 +1,51 @@
-{ lib, stdenv, fetchurl, pkg-config
-, libX11, libXmu, libXpm, gtk2, libpng, libjpeg, libtiff, librsvg, gdk-pixbuf, gdk-pixbuf-xlib
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, libX11
+, libXmu
+, libXpm
+, gtk2
+, libpng
+, libjpeg
+, libtiff
+, librsvg
+, gdk-pixbuf
+, gdk-pixbuf-xlib
+, pypy2
 }:
 
 stdenv.mkDerivation rec {
   pname = "fbpanel";
-  version = "6.1";
-  src = fetchurl {
-    url = "mirror://sourceforge/fbpanel/${pname}-${version}.tbz2";
-    sha256 = "e14542cc81ea06e64dd4708546f5fd3f5e01884c3e4617885c7ef22af8cf3965";
+  version = "7.0";
+  src = fetchFromGitHub {
+    owner = "aanatoly";
+    repo = "fbpanel";
+    rev = "478754b687e2b48b111507ea22e8e2a001be5199";
+    hash = "sha256-+KcVcrh1aV6kjLGyiDnRHXSzJfelXWrhJS0DitG4yPA=";
   };
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs =
-    [ libX11 libXmu libXpm gtk2 libpng libjpeg libtiff librsvg gdk-pixbuf gdk-pixbuf-xlib.dev ];
+  nativeBuildInputs = [ pkg-config pypy2 ];
+  buildInputs = [
+    libX11
+    libXmu
+    libXpm
+    gtk2
+    libpng
+    libjpeg
+    libtiff
+    librsvg
+    gdk-pixbuf
+    gdk-pixbuf-xlib.dev
+  ];
 
-  preConfigure = "patchShebangs .";
-
-  postConfigure = ''
-    substituteInPlace config.mk \
-      --replace "CFLAGSX =" "CFLAGSX = -I${gdk-pixbuf-xlib.dev}/include/gdk-pixbuf-2.0"
+  preConfigure = ''
+    sed -re '1i#!${pypy2}/bin/pypy' -i configure .config/*.py
+    sed -re 's/\<out\>/outputredirect/g' -i .config/rules.mk
+    sed -i 's/struct\ \_plugin_instance \*stam\;//' panel/plugin.h
   '';
 
-  # Workaround build failure on -fno-common toolchains like upstream
-  # gcc-10. Otherwise build fails as:
-  #   ld: plugin.o:(.bss+0x0): multiple definition of `stam'; panel.o:(.bss+0x20): first defined here
-  env.NIX_CFLAGS_COMPILE = "-fcommon";
-  NIX_LDFLAGS="-lX11";
+  makeFlags = ["V=1"];
+  NIX_CFLAGS_COMPILE = ["-Wno-error" "-I${gdk-pixbuf-xlib.dev}/include/gdk-pixbuf-2.0"];
 
   meta = with lib; {
     description = "A stand-alone panel";
@@ -34,9 +55,4 @@ stdenv.mkDerivation rec {
     mainProgram = "fbpanel";
   };
 
-  passthru = {
-    updateInfo = {
-      downloadPage = "fbpanel.sourceforge.net";
-    };
-  };
 }
diff --git a/pkgs/applications/window-managers/miriway/default.nix b/pkgs/applications/window-managers/miriway/default.nix
index 0de1f2a94d84..f46d907768ce 100644
--- a/pkgs/applications/window-managers/miriway/default.nix
+++ b/pkgs/applications/window-managers/miriway/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "miriway";
-  version = "unstable-2024-01-01";
+  version = "unstable-2024-01-30";
 
   src = fetchFromGitHub {
     owner = "Miriway";
     repo = "Miriway";
-    rev = "58fac84a9c3a049d2e71ffc125e157a906897aa8";
-    hash = "sha256-Tx+BWaiFHJ54K2eHbHVnkePV+YIktGFWbs/rLoNINPY=";
+    rev = "429ace6c7d9ea6799a01875ff61f1e554d5eabd9";
+    hash = "sha256-8qsDyHbJJMxevMIi6Kde+zr2yJAtFaq19TTcAGXMnrE=";
   };
 
   strictDeps = true;
diff --git a/pkgs/applications/window-managers/picom/default.nix b/pkgs/applications/window-managers/picom/default.nix
index b5eda761ab33..ade2c1e0ddfe 100644
--- a/pkgs/applications/window-managers/picom/default.nix
+++ b/pkgs/applications/window-managers/picom/default.nix
@@ -12,17 +12,17 @@
 , libxcb
 , libxdg_basedir
 , libXext
-, libXinerama
 , libxml2
 , libxslt
 , makeWrapper
 , meson
 , ninja
-, pcre
+, pcre2
 , pixman
 , pkg-config
 , stdenv
 , uthash
+, xcbutil
 , xcbutilimage
 , xcbutilrenderutil
 , xorgproto
@@ -32,13 +32,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "picom";
-  version = "10.2";
+  version = "11.1";
 
   src = fetchFromGitHub {
     owner = "yshui";
     repo = "picom";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-C+icJXTkE+XMaU7N6JupsP8xhmRVggX9hY1P7za0pO0=";
+    hash = "sha256-vdR3HzBZxtth3zJD3vMSlrnBTbopidw7FGKOk69S0R0=";
     fetchSubmodules = true;
   };
 
@@ -63,11 +63,11 @@ stdenv.mkDerivation (finalAttrs: {
     libxcb
     libxdg_basedir
     libXext
-    libXinerama
     libxml2
     libxslt
-    pcre
+    pcre2
     pixman
+    xcbutil
     xcbutilimage
     xcbutilrenderutil
     xorgproto
@@ -111,7 +111,7 @@ stdenv.mkDerivation (finalAttrs: {
     '';
     license = licenses.mit;
     homepage = "https://github.com/yshui/picom";
-    maintainers = with maintainers; [ ertes twey thiagokokada ];
+    maintainers = with maintainers; [ ertes gepbird twey thiagokokada ];
     platforms = platforms.linux;
     mainProgram = "picom";
   };
diff --git a/pkgs/applications/window-managers/picom/picom-allusive.nix b/pkgs/applications/window-managers/picom/picom-allusive.nix
index 0efb67f641bb..e0086142f1c3 100644
--- a/pkgs/applications/window-managers/picom/picom-allusive.nix
+++ b/pkgs/applications/window-managers/picom/picom-allusive.nix
@@ -1,4 +1,4 @@
-{ picom, lib, fetchFromGitHub, installShellFiles }:
+{ picom, lib, fetchFromGitHub, installShellFiles, pcre }:
 
 picom.overrideAttrs (oldAttrs: rec {
   pname = "picom-allusive";
@@ -11,7 +11,7 @@ picom.overrideAttrs (oldAttrs: rec {
     hash = "sha256-yM4TJjoVs+i33m/u/oWlx1TDKJrgwlfiGu72DOL/tl8=";
   };
 
-  nativeBuildInputs = [ installShellFiles ] ++ oldAttrs.nativeBuildInputs;
+  nativeBuildInputs = [ installShellFiles pcre ] ++ oldAttrs.nativeBuildInputs;
 
   postInstall = ''
     installManPage $src/man/picom.1.gz
diff --git a/pkgs/applications/window-managers/picom/picom-jonaburg.nix b/pkgs/applications/window-managers/picom/picom-jonaburg.nix
index 2c08a355dde8..d04cf5f4ecd6 100644
--- a/pkgs/applications/window-managers/picom/picom-jonaburg.nix
+++ b/pkgs/applications/window-managers/picom/picom-jonaburg.nix
@@ -1,4 +1,4 @@
-{ picom, lib, fetchFromGitHub }:
+{ picom, lib, fetchFromGitHub, pcre }:
 
 picom.overrideAttrs (oldAttrs: rec {
   pname = "picom-jonaburg";
@@ -10,6 +10,8 @@ picom.overrideAttrs (oldAttrs: rec {
     sha256 = "sha256-4voCAYd0fzJHQjJo4x3RoWz5l3JJbRvgIXn1Kg6nz6Y=";
   };
 
+  nativeBuildInputs = [ pcre ] ++ oldAttrs.nativeBuildInputs;
+
   meta = with lib; {
     description = "A fork of picom featuring animations and improved rounded corners.";
     homepage = "https://github.com/jonaburg/picom";
diff --git a/pkgs/build-support/bintools-wrapper/default.nix b/pkgs/build-support/bintools-wrapper/default.nix
index 5b185b09a4c5..66027485ee71 100644
--- a/pkgs/build-support/bintools-wrapper/default.nix
+++ b/pkgs/build-support/bintools-wrapper/default.nix
@@ -321,7 +321,7 @@ stdenv.mkDerivation {
       hardening_unsupported_flags+=" pic"
     ''
 
-    + optionalString targetPlatform.isAvr ''
+    + optionalString (targetPlatform.isAvr || targetPlatform.isWindows) ''
       hardening_unsupported_flags+=" relro bindnow"
     ''
 
diff --git a/pkgs/build-support/build-graalvm-native-image/default.nix b/pkgs/build-support/build-graalvm-native-image/default.nix
index 0612db2ad79b..f0e73901c8db 100644
--- a/pkgs/build-support/build-graalvm-native-image/default.nix
+++ b/pkgs/build-support/build-graalvm-native-image/default.nix
@@ -16,14 +16,13 @@
     "-H:Name=${executable}"
     "-march=compatibility"
     "--verbose"
-    "-J-Dsun.stdout.encoding=UTF-8"
-    "-J-Dsun.stderr.encoding=UTF-8"
   ]
   # Extra arguments to be passed to the native-image
 , extraNativeImageBuildArgs ? [ ]
   # XMX size of GraalVM during build
 , graalvmXmx ? "-J-Xmx6g"
 , meta ? { }
+, LC_ALL ? "en_US.UTF-8"
 , ...
 } @ args:
 
@@ -45,21 +44,16 @@ in
 stdenv.mkDerivation ({
   inherit dontUnpack jar;
 
+  env = { inherit LC_ALL; };
+
   nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ graalvmDrv glibcLocales removeReferencesTo ];
 
   nativeImageBuildArgs = nativeImageBuildArgs ++ extraNativeImageBuildArgs ++ [ graalvmXmx ];
 
-  # Workaround GraalVM issue where the builder does not have access to the
-  # environment variables since 21.0.0
-  # https://github.com/oracle/graal/pull/6095
-  # https://github.com/oracle/graal/pull/6095
-  # https://github.com/oracle/graal/issues/7502
-  env.NATIVE_IMAGE_DEPRECATED_BUILDER_SANITATION = "true";
-
   buildPhase = args.buildPhase or ''
     runHook preBuild
 
-    native-image -jar "$jar" ''${nativeImageBuildArgs[@]}
+    native-image -jar "$jar" $(export -p | sed -n 's/^declare -x \([^=]\+\)=.*$/ -E\1/p' | tr -d \\n) ''${nativeImageBuildArgs[@]}
 
     runHook postBuild
   '';
diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix
index 0b25d70b14a2..59aaa41e9c17 100644
--- a/pkgs/build-support/cc-wrapper/default.nix
+++ b/pkgs/build-support/cc-wrapper/default.nix
@@ -264,25 +264,6 @@ stdenv.mkDerivation {
     inherit bintools;
     inherit cc libc libcxx nativeTools nativeLibc nativePrefix isGNU isClang;
 
-    # Expose the C++ standard library we're using. See the comments on "General
-    # libc++ support". This is also relevant when using older gcc than the
-    # stdenv's, as may be required e.g. by CUDAToolkit's nvcc.
-    cxxStdlib =
-      let
-        givenLibcxx = libcxx.isLLVM or false;
-        givenGccForLibs = useGccForLibs && gccForLibs.langCC or false;
-      in
-      if (!givenLibcxx) && givenGccForLibs then
-        { kind = "libstdc++"; package = gccForLibs; solib = gccForLibs_solib; }
-      else if givenLibcxx then
-        { kind = "libc++"; package = libcxx;  solib = libcxx_solib;}
-      else
-      # We're probably using the `libstdc++` that came with our `gcc`.
-      # TODO: this is maybe not always correct?
-      # TODO: what happens when `nativeTools = true`?
-        { kind = "libstdc++"; package = cc; solib = cc_solib; }
-    ;
-
     emacsBufferSetup = pkgs: ''
       ; We should handle propagation here too
       (mapc
@@ -462,13 +443,6 @@ stdenv.mkDerivation {
       echo "-L${gccForLibs}/lib/gcc/${targetPlatform.config}/${gccForLibs.version}" >> $out/nix-support/cc-ldflags
       echo "-L${gccForLibs_solib}/lib" >> $out/nix-support/cc-ldflags
     ''
-    # The above "fix" may be incorrect; gcc.cc.lib doesn't contain a
-    # `target-triple` dir but the correct fix may be to just remove the above?
-    #
-    # For clang it's not necessary (see `--gcc-toolchain` below) and for other
-    # situations adding in the above will bring in lots of other gcc libraries
-    # (i.e. sanitizer libraries, `libatomic`, `libquadmath`) besides just
-    # `libstdc++`; this may actually break clang.
 
     # TODO We would like to connect this to `useGccForLibs`, but we cannot yet
     # because `libcxxStdenv` on linux still needs this. Maybe someday we'll
@@ -551,10 +525,10 @@ stdenv.mkDerivation {
     # additional -isystem flags will confuse gfortran (see
     # https://github.com/NixOS/nixpkgs/pull/209870#issuecomment-1500550903)
     + optionalString (libcxx == null && isClang && (useGccForLibs && gccForLibs.langCC or false)) ''
-      for dir in ${gccForLibs}${lib.optionalString (hostPlatform != targetPlatform) "/${targetPlatform.config}"}/include/c++/*; do
+      for dir in ${gccForLibs}/include/c++/*; do
         echo "-isystem $dir" >> $out/nix-support/libcxx-cxxflags
       done
-      for dir in ${gccForLibs}${lib.optionalString (hostPlatform != targetPlatform) "/${targetPlatform.config}"}/include/c++/*/${targetPlatform.config}; do
+      for dir in ${gccForLibs}/include/c++/*/${targetPlatform.config}; do
         echo "-isystem $dir" >> $out/nix-support/libcxx-cxxflags
       done
     ''
diff --git a/pkgs/build-support/dart/build-dart-application/default.nix b/pkgs/build-support/dart/build-dart-application/default.nix
index f9a49fec3a2d..c99b8bbf325e 100644
--- a/pkgs/build-support/dart/build-dart-application/default.nix
+++ b/pkgs/build-support/dart/build-dart-application/default.nix
@@ -87,7 +87,7 @@ let
       dartCompileCommand dartOutputType dartRuntimeCommand dartCompileFlags
       dartJitFlags;
 
-    outputs = args.outputs or [ ] ++ [ "out" "pubcache" ];
+    outputs = [ "out" "pubcache" ] ++ args.outputs or [ ];
 
     dartEntryPoints =
       if (dartEntryPoints != null)
diff --git a/pkgs/build-support/dart/build-dart-application/hooks/dart-install-hook.sh b/pkgs/build-support/dart/build-dart-application/hooks/dart-install-hook.sh
index 888e12a07d83..349a0dfdef0e 100644
--- a/pkgs/build-support/dart/build-dart-application/hooks/dart-install-hook.sh
+++ b/pkgs/build-support/dart/build-dart-application/hooks/dart-install-hook.sh
@@ -19,15 +19,25 @@ dartInstallHook() {
         fi
     done < <(_getDartEntryPoints)
 
+    runHook postInstall
+
+    echo "Finished dartInstallHook"
+}
+
+dartInstallCacheHook() {
+    echo "Executing dartInstallCacheHook"
+
     # Install the package_config.json file.
     mkdir -p "$pubcache"
     cp .dart_tool/package_config.json "$pubcache/package_config.json"
 
-    runHook postInstall
-
-    echo "Finished dartInstallHook"
+    echo "Finished dartInstallCacheHook"
 }
 
 if [ -z "${dontDartInstall-}" ] && [ -z "${installPhase-}" ]; then
     installPhase=dartInstallHook
 fi
+
+if [ -z "${dontDartInstallCache-}" ]; then
+    postInstallHooks+=(dartInstallCacheHook)
+fi
diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix
index 7218d67062e7..23e439c6c423 100644
--- a/pkgs/build-support/docker/default.nix
+++ b/pkgs/build-support/docker/default.nix
@@ -915,7 +915,7 @@ rec {
 
             mkdir $out
             ${if enableFakechroot then ''
-              proot -r $PWD/old_out ${bind-paths} --pwd=/ --root-id bash -c '
+              proot -r $PWD/old_out ${bind-paths} --pwd=/ fakeroot bash -c '
                 source $stdenv/setup
                 eval "$fakeRootCommands"
                 tar \
diff --git a/pkgs/build-support/fetchgithub/default.nix b/pkgs/build-support/fetchgithub/default.nix
index 37f7dcfa3006..4ce3c6e84d76 100644
--- a/pkgs/build-support/fetchgithub/default.nix
+++ b/pkgs/build-support/fetchgithub/default.nix
@@ -28,7 +28,11 @@ let
   useFetchGit = fetchSubmodules || (leaveDotGit == true) || deepClone || forceFetchGit || (sparseCheckout != []);
   # We prefer fetchzip in cases we don't need submodules as the hash
   # is more stable in that case.
-  fetcher = if useFetchGit then fetchgit else fetchzip.override { withUnzip = false; };
+  fetcher =
+    if useFetchGit then fetchgit
+    # fetchzip may not be overridable when using external tools, for example nix-prefetch
+    else if fetchzip ? override then fetchzip.override { withUnzip = false; }
+    else fetchzip;
   privateAttrs = lib.optionalAttrs private {
     netrcPhase = ''
       if [ -z "''$${varBase}USERNAME" -o -z "''$${varBase}PASSWORD" ]; then
diff --git a/pkgs/build-support/flutter/default.nix b/pkgs/build-support/flutter/default.nix
index 4d00e177370e..5d7cd7d984c1 100644
--- a/pkgs/build-support/flutter/default.nix
+++ b/pkgs/build-support/flutter/default.nix
@@ -17,134 +17,163 @@
 
 { pubGetScript ? "flutter pub get"
 , flutterBuildFlags ? [ ]
+, targetFlutterPlatform ? "linux"
 , extraWrapProgramArgs ? ""
 , ...
 }@args:
 
-(buildDartApplication.override {
-  dart = flutter;
-}) (args // {
-  sdkSetupScript = ''
-    # Pub needs SSL certificates. Dart normally looks in a hardcoded path.
-    # https://github.com/dart-lang/sdk/blob/3.1.0/runtime/bin/security_context_linux.cc#L48
-    #
-    # Dart does not respect SSL_CERT_FILE...
-    # https://github.com/dart-lang/sdk/issues/48506
-    # ...and Flutter does not support --root-certs-file, so the path cannot be manually set.
-    # https://github.com/flutter/flutter/issues/56607
-    # https://github.com/flutter/flutter/issues/113594
-    #
-    # libredirect is of no use either, as Flutter does not pass any
-    # environment variables (including LD_PRELOAD) to the Pub process.
-    #
-    # Instead, Flutter is patched to allow the path to the Dart binary used for
-    # Pub commands to be overriden.
-    export NIX_FLUTTER_PUB_DART="${runCommand "dart-with-certs" { nativeBuildInputs = [ makeWrapper ]; } ''
-      mkdir -p "$out/bin"
-      makeWrapper ${flutter.dart}/bin/dart "$out/bin/dart" \
-        --add-flags "--root-certs-file=${cacert}/etc/ssl/certs/ca-bundle.crt"
-    ''}/bin/dart"
-
-    export HOME="$NIX_BUILD_TOP"
-    flutter config --no-analytics &>/dev/null # mute first-run
-    flutter config --enable-linux-desktop >/dev/null
-  '';
-
-  inherit pubGetScript;
-
-  sdkSourceBuilders = {
-    # https://github.com/dart-lang/pub/blob/68dc2f547d0a264955c1fa551fa0a0e158046494/lib/src/sdk/flutter.dart#L81
-    "flutter" = name: runCommand "flutter-sdk-${name}" { passthru.packageRoot = "."; } ''
-      for path in '${flutter}/packages/${name}' '${flutter}/bin/cache/pkg/${name}'; do
-        if [ -d "$path" ]; then
-          ln -s "$path" "$out"
-          break
+let
+  builderArgs = rec {
+    universal = args // {
+      sdkSetupScript = ''
+        # Pub needs SSL certificates. Dart normally looks in a hardcoded path.
+        # https://github.com/dart-lang/sdk/blob/3.1.0/runtime/bin/security_context_linux.cc#L48
+        #
+        # Dart does not respect SSL_CERT_FILE...
+        # https://github.com/dart-lang/sdk/issues/48506
+        # ...and Flutter does not support --root-certs-file, so the path cannot be manually set.
+        # https://github.com/flutter/flutter/issues/56607
+        # https://github.com/flutter/flutter/issues/113594
+        #
+        # libredirect is of no use either, as Flutter does not pass any
+        # environment variables (including LD_PRELOAD) to the Pub process.
+        #
+        # Instead, Flutter is patched to allow the path to the Dart binary used for
+        # Pub commands to be overriden.
+        export NIX_FLUTTER_PUB_DART="${runCommand "dart-with-certs" { nativeBuildInputs = [ makeWrapper ]; } ''
+          mkdir -p "$out/bin"
+          makeWrapper ${flutter.dart}/bin/dart "$out/bin/dart" \
+            --add-flags "--root-certs-file=${cacert}/etc/ssl/certs/ca-bundle.crt"
+        ''}/bin/dart"
+
+        export HOME="$NIX_BUILD_TOP"
+        flutter config --no-analytics &>/dev/null # mute first-run
+        flutter config --enable-linux-desktop >/dev/null
+      '';
+
+      inherit pubGetScript;
+
+      sdkSourceBuilders = {
+        # https://github.com/dart-lang/pub/blob/68dc2f547d0a264955c1fa551fa0a0e158046494/lib/src/sdk/flutter.dart#L81
+        "flutter" = name: runCommand "flutter-sdk-${name}" { passthru.packageRoot = "."; } ''
+          for path in '${flutter}/packages/${name}' '${flutter}/bin/cache/pkg/${name}'; do
+            if [ -d "$path" ]; then
+              ln -s "$path" "$out"
+              break
+            fi
+          done
+
+          if [ ! -e "$out" ]; then
+            echo 1>&2 'The Flutter SDK does not contain the requested package: ${name}!'
+            exit 1
+          fi
+        '';
+      };
+
+      extraPackageConfigSetup = ''
+        # https://github.com/flutter/flutter/blob/3.13.8/packages/flutter_tools/lib/src/dart/pub.dart#L755
+        if [ "$('${yq}/bin/yq' '.flutter.generate // false' pubspec.yaml)" = "true" ]; then
+          '${jq}/bin/jq' '.packages |= . + [{
+            name: "flutter_gen",
+            rootUri: "flutter_gen",
+            languageVersion: "2.12",
+          }]' "$out" | '${moreutils}/bin/sponge' "$out"
         fi
-      done
-
-      if [ ! -e "$out" ]; then
-        echo 1>&2 'The Flutter SDK does not contain the requested package: ${name}!'
-        exit 1
-      fi
-    '';
-  };
-
-  extraPackageConfigSetup = ''
-    # https://github.com/flutter/flutter/blob/3.13.8/packages/flutter_tools/lib/src/dart/pub.dart#L755
-    if [ "$('${yq}/bin/yq' '.flutter.generate // false' pubspec.yaml)" = "true" ]; then
-      '${jq}/bin/jq' '.packages |= . + [{
-        name: "flutter_gen",
-        rootUri: "flutter_gen",
-        languageVersion: "2.12",
-      }]' "$out" | '${moreutils}/bin/sponge' "$out"
-    fi
-  '';
-
-  nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [
-    wrapGAppsHook
-
-    # Flutter requires pkg-config for Linux desktop support, and many plugins
-    # attempt to use it.
-    #
-    # It is available to the `flutter` tool through its wrapper, but it must be
-    # added here as well so the setup hook adds plugin dependencies to the
-    # pkg-config search paths.
-    pkg-config
-  ];
-
-  buildInputs = (args.buildInputs or [ ]) ++ [ glib ];
-
-  dontDartBuild = true;
-  buildPhase = args.buildPhase or ''
-    runHook preBuild
-
-    mkdir -p build/flutter_assets/fonts
-
-    flutter build linux -v --release --split-debug-info="$debug" ${builtins.concatStringsSep " " (map (flag: "\"${flag}\"") flutterBuildFlags)}
-
-    runHook postBuild
-  '';
-
-  dontDartInstall = true;
-  installPhase = args.installPhase or ''
-    runHook preInstall
-
-    built=build/linux/*/release/bundle
-
-    mkdir -p $out/bin
-    mv $built $out/app
-
-    for f in $(find $out/app -iname "*.desktop" -type f); do
-      install -D $f $out/share/applications/$(basename $f)
-    done
-
-    for f in $(find $out/app -maxdepth 1 -type f); do
-      ln -s $f $out/bin/$(basename $f)
-    done
-
-    # make *.so executable
-    find $out/app -iname "*.so" -type f -exec chmod +x {} +
-
-    # remove stuff like /build/source/packages/ubuntu_desktop_installer/linux/flutter/ephemeral
-    for f in $(find $out/app -executable -type f); do
-      if patchelf --print-rpath "$f" | grep /build; then # this ignores static libs (e,g. libapp.so) also
-        echo "strip RPath of $f"
-        newrp=$(patchelf --print-rpath $f | sed -r "s|/build.*ephemeral:||g" | sed -r "s|/build.*profile:||g")
-        patchelf --set-rpath "$newrp" "$f"
-      fi
-    done
-
-    # Install the package_config.json file.
-    # This is normally done by dartInstallHook, but we disable it.
-    mkdir -p "$pubcache"
-    cp .dart_tool/package_config.json "$pubcache/package_config.json"
-
-    runHook postInstall
-  '';
-
-  dontWrapGApps = true;
-  extraWrapProgramArgs = ''
-    ''${gappsWrapperArgs[@]} \
-    ${extraWrapProgramArgs}
-  '';
-})
+      '';
+    };
+
+    linux = universal // {
+      outputs = universal.outputs or [ ] ++ [ "debug" ];
+
+      nativeBuildInputs = (universal.nativeBuildInputs or [ ]) ++ [
+        wrapGAppsHook
+
+        # Flutter requires pkg-config for Linux desktop support, and many plugins
+        # attempt to use it.
+        #
+        # It is available to the `flutter` tool through its wrapper, but it must be
+        # added here as well so the setup hook adds plugin dependencies to the
+        # pkg-config search paths.
+        pkg-config
+      ];
+
+      buildInputs = (universal.buildInputs or [ ]) ++ [ glib ];
+
+      dontDartBuild = true;
+      buildPhase = universal.buildPhase or ''
+        runHook preBuild
+
+        mkdir -p build/flutter_assets/fonts
+
+        flutter build linux -v --release --split-debug-info="$debug" ${builtins.concatStringsSep " " (map (flag: "\"${flag}\"") flutterBuildFlags)}
+
+        runHook postBuild
+      '';
+
+      dontDartInstall = true;
+      installPhase = universal.installPhase or ''
+        runHook preInstall
+
+        built=build/linux/*/release/bundle
+
+        mkdir -p $out/bin
+        mv $built $out/app
+
+        for f in $(find $out/app -iname "*.desktop" -type f); do
+          install -D $f $out/share/applications/$(basename $f)
+        done
+
+        for f in $(find $out/app -maxdepth 1 -type f); do
+          ln -s $f $out/bin/$(basename $f)
+        done
+
+        # make *.so executable
+        find $out/app -iname "*.so" -type f -exec chmod +x {} +
+
+        # remove stuff like /build/source/packages/ubuntu_desktop_installer/linux/flutter/ephemeral
+        for f in $(find $out/app -executable -type f); do
+          if patchelf --print-rpath "$f" | grep /build; then # this ignores static libs (e,g. libapp.so) also
+            echo "strip RPath of $f"
+            newrp=$(patchelf --print-rpath $f | sed -r "s|/build.*ephemeral:||g" | sed -r "s|/build.*profile:||g")
+            patchelf --set-rpath "$newrp" "$f"
+          fi
+        done
+
+        runHook postInstall
+      '';
+
+      dontWrapGApps = true;
+      extraWrapProgramArgs = ''
+        ''${gappsWrapperArgs[@]} \
+        ${extraWrapProgramArgs}
+      '';
+    };
+
+    web = universal // {
+      dontDartBuild = true;
+      buildPhase = universal.buildPhase or ''
+        runHook preBuild
+
+        mkdir -p build/flutter_assets/fonts
+
+        flutter build web -v --release ${builtins.concatStringsSep " " (map (flag: "\"${flag}\"") flutterBuildFlags)}
+
+        runHook postBuild
+      '';
+
+      dontDartInstall = true;
+      installPhase = universal.installPhase or ''
+        runHook preInstall
+
+        cp -r build/web "$out"
+
+        runHook postInstall
+      '';
+    };
+  }.${targetFlutterPlatform} or (throw "Unsupported Flutter host platform: ${targetFlutterPlatform}");
+
+  minimalFlutter = flutter.override { supportedTargetFlutterPlatforms = [ "universal" targetFlutterPlatform ]; };
+
+  buildAppWith = flutter: buildDartApplication.override { dart = flutter; };
+in
+buildAppWith minimalFlutter (builderArgs // { passthru = builderArgs.passthru or { } // { multiShell = buildAppWith flutter builderArgs; }; })
diff --git a/pkgs/build-support/go/module.nix b/pkgs/build-support/go/module.nix
index 2fb59c634829..153b675d48ae 100644
--- a/pkgs/build-support/go/module.nix
+++ b/pkgs/build-support/go/module.nix
@@ -39,6 +39,8 @@
   # Not needed with buildGoModule
 , goPackagePath ? ""
 
+, ldflags ? [ ]
+
   # needed for buildFlags{,Array} warning
 , buildFlags ? ""
 , buildFlagsArray ? ""
@@ -154,6 +156,9 @@ let
     GOFLAGS = lib.optionals (!proxyVendor) [ "-mod=vendor" ] ++ lib.optionals (!allowGoReference) [ "-trimpath" ];
     inherit CGO_ENABLED enableParallelBuilding GO111MODULE GOTOOLCHAIN;
 
+    # If not set to an explicit value, set the buildid empty for reproducibility.
+    ldflags = ldflags ++ lib.optionals (!lib.any (lib.hasPrefix "-buildid=") ldflags) [ "-buildid=" ];
+
     configurePhase = args.configurePhase or (''
       runHook preConfigure
 
@@ -301,4 +306,5 @@ in
 lib.warnIf (args' ? vendorSha256) "`vendorSha256` is deprecated. Use `vendorHash` instead"
 lib.warnIf (buildFlags != "" || buildFlagsArray != "")
   "Use the `ldflags` and/or `tags` attributes instead of `buildFlags`/`buildFlagsArray`"
+lib.warnIf (builtins.elem "-buildid=" ldflags) "`-buildid=` is set by default as ldflag by buildGoModule"
   package
diff --git a/pkgs/build-support/go/package.nix b/pkgs/build-support/go/package.nix
index 7e099b76f0b7..8ca5ca0dca01 100644
--- a/pkgs/build-support/go/package.nix
+++ b/pkgs/build-support/go/package.nix
@@ -37,6 +37,8 @@
 
 , CGO_ENABLED ? go.CGO_ENABLED
 
+, ldflags ? [ ]
+
 # needed for buildFlags{,Array} warning
 , buildFlags ? ""
 , buildFlagsArray ? ""
@@ -91,6 +93,9 @@ let
 
     GOARM = toString (lib.intersectLists [(stdenv.hostPlatform.parsed.cpu.version or "")] ["5" "6" "7"]);
 
+    # If not set to an explicit value, set the buildid empty for reproducibility.
+    ldflags = ldflags ++ lib.optionals (!lib.any (lib.hasPrefix "-buildid=") ldflags) [ "-buildid=" ];
+
     configurePhase = args.configurePhase or (''
       runHook preConfigure
 
@@ -280,4 +285,5 @@ let
 in
 lib.warnIf (buildFlags != "" || buildFlagsArray != "")
   "Use the `ldflags` and/or `tags` attributes instead of `buildFlags`/`buildFlagsArray`"
+lib.warnIf (builtins.elem "-buildid=" ldflags) "`-buildid=` is set by default as ldflag by buildGoModule"
   package
diff --git a/pkgs/build-support/kernel/compress-firmware-xz.nix b/pkgs/build-support/kernel/compress-firmware-xz.nix
index cfb06a5c0f15..cb9ce7a71338 100644
--- a/pkgs/build-support/kernel/compress-firmware-xz.nix
+++ b/pkgs/build-support/kernel/compress-firmware-xz.nix
@@ -3,7 +3,9 @@
 firmware:
 
 let
-  args = lib.optionalAttrs (firmware ? meta) { inherit (firmware) meta; };
+  args = {
+    allowedRequisites = [];
+  } // lib.optionalAttrs (firmware ? meta) { inherit (firmware) meta; };
 in
 
 runCommand "${firmware.name}-xz" args ''
@@ -15,6 +17,13 @@ runCommand "${firmware.name}-xz" args ''
           sh -c 'xz -9c -T1 -C crc32 --lzma2=dict=2MiB "${firmware}/$1" > "$1.xz"' --)
   (cd ${firmware} && find lib/firmware -type l) | while read link; do
       target="$(readlink "${firmware}/$link")"
-      ln -vs -- "''${target/^${firmware}/$out}.xz" "$out/$link.xz"
+      if [ -f "${firmware}/$link" ]; then
+        ln -vs -- "''${target/^${firmware}/$out}.xz" "$out/$link.xz"
+      else
+        ln -vs -- "''${target/^${firmware}/$out}" "$out/$link"
+      fi
   done
+
+  echo "Checking for broken symlinks:"
+  find -L $out -type l -print -execdir false -- '{}' '+'
 ''
diff --git a/pkgs/build-support/rust/build-rust-crate/configure-crate.nix b/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
index d837d0012590..6b8827160262 100644
--- a/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
+++ b/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
@@ -7,12 +7,17 @@
 , completeBuildDeps
 , completeDeps
 , crateAuthors
-, crateLinks
 , crateDescription
-, crateHomepage
 , crateFeatures
+, crateHomepage
+, crateLicense
+, crateLicenseFile
+, crateLinks
 , crateName
+, crateReadme
 , crateRenames
+, crateRepository
+, crateRustVersion
 , crateVersion
 , extraLinkFlags
 , extraRustcOptsForBuildRs
@@ -120,6 +125,8 @@ in ''
 
   EXTRA_BUILD=""
   BUILD_OUT_DIR=""
+
+  # Set up Cargo Environment variables: https://doc.rust-lang.org/cargo/reference/environment-variables.html
   export CARGO_PKG_NAME=${crateName}
   export CARGO_PKG_VERSION=${crateVersion}
   export CARGO_PKG_AUTHORS="${authors}"
@@ -147,6 +154,11 @@ in ''
   export CARGO_PKG_VERSION_PATCH=${lib.elemAt version 2}
   export CARGO_PKG_VERSION_PRE="${versionPre}"
   export CARGO_PKG_HOMEPAGE="${crateHomepage}"
+  export CARGO_PKG_LICENSE="${crateLicense}"
+  export CARGO_PKG_LICENSE_FILE="${crateLicenseFile}"
+  export CARGO_PKG_README="${crateReadme}"
+  export CARGO_PKG_REPOSITORY="${crateRepository}"
+  export CARGO_PKG_RUST_VERSION="${crateRustVersion}"
   export NUM_JOBS=$NIX_BUILD_CORES
   export RUSTC="rustc"
   export RUSTDOC="rustdoc"
diff --git a/pkgs/build-support/rust/build-rust-crate/default.nix b/pkgs/build-support/rust/build-rust-crate/default.nix
index 1760ab6e99a6..4a7fd114829a 100644
--- a/pkgs/build-support/rust/build-rust-crate/default.nix
+++ b/pkgs/build-support/rust/build-rust-crate/default.nix
@@ -314,11 +314,16 @@ crate_: lib.makeOverridable
       # Either set to a concrete sub path to the crate root
       # or use `null` for auto-detect.
       workspace_member = crate.workspace_member or ".";
-      crateVersion = crate.version;
-      crateDescription = crate.description or "";
       crateAuthors = if crate ? authors && lib.isList crate.authors then crate.authors else [ ];
+      crateDescription = crate.description or "";
       crateHomepage = crate.homepage or "";
+      crateLicense = crate.license or "";
+      crateLicenseFile = crate.license-file or "";
       crateLinks = crate.links or "";
+      crateReadme = crate.readme or "";
+      crateRepository = crate.repository or "";
+      crateRustVersion = crate.rust-version or "";
+      crateVersion = crate.version;
       crateType =
         if lib.attrByPath [ "procMacro" ] false crate then [ "proc-macro" ] else
         if lib.attrByPath [ "plugin" ] false crate then [ "dylib" ] else
@@ -341,6 +346,7 @@ crate_: lib.makeOverridable
         inherit crateName buildDependencies completeDeps completeBuildDeps crateDescription
           crateFeatures crateRenames libName build workspace_member release libPath crateVersion crateLinks
           extraLinkFlags extraRustcOptsForBuildRs
+          crateLicense crateLicenseFile crateReadme crateRepository crateRustVersion
           crateAuthors crateHomepage verbose colors codegenUnits;
       };
       buildPhase = buildCrate {
diff --git a/pkgs/build-support/rust/lib/default.nix b/pkgs/build-support/rust/lib/default.nix
index e70b8229d356..e09f913bfbd3 100644
--- a/pkgs/build-support/rust/lib/default.nix
+++ b/pkgs/build-support/rust/lib/default.nix
@@ -1,7 +1,8 @@
 { lib
 , stdenv
-, buildPackages
-, targetPackages
+, pkgsBuildHost
+, pkgsBuildTarget
+, pkgsTargetTarget
 }:
 
 rec {
@@ -16,26 +17,26 @@ rec {
     # As a workaround for https://github.com/rust-lang/rust/issues/89626 use lld on pkgsStatic aarch64
     shouldUseLLD = platform: platform.isAarch64 && platform.isStatic && !stdenv.isDarwin;
 
-    ccForBuild = "${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc";
-    cxxForBuild = "${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}c++";
+    ccForBuild = "${pkgsBuildHost.stdenv.cc}/bin/${pkgsBuildHost.stdenv.cc.targetPrefix}cc";
+    cxxForBuild = "${pkgsBuildHost.stdenv.cc}/bin/${pkgsBuildHost.stdenv.cc.targetPrefix}c++";
     linkerForBuild = ccForBuild;
 
     ccForHost = "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc";
     cxxForHost = "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++";
     linkerForHost = if shouldUseLLD stdenv.targetPlatform
       && !stdenv.cc.bintools.isLLVM
-      then "${buildPackages.lld}/bin/ld.lld"
+      then "${pkgsBuildHost.llvmPackages.bintools}/bin/${stdenv.cc.targetPrefix}ld.lld"
       else ccForHost;
 
-    # Unfortunately we must use the dangerous `targetPackages` here
+    # Unfortunately we must use the dangerous `pkgsTargetTarget` here
     # because hooks are artificially phase-shifted one slot earlier
     # (they go in nativeBuildInputs, so the hostPlatform looks like
     # a targetPlatform to them).
-    ccForTarget = "${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}cc";
-    cxxForTarget = "${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}c++";
-    linkerForTarget = if shouldUseLLD targetPackages.stdenv.targetPlatform
-      && !targetPackages.stdenv.cc.bintools.isLLVM # whether stdenv's linker is lld already
-      then "${buildPackages.lld}/bin/ld.lld"
+    ccForTarget = "${pkgsTargetTarget.stdenv.cc}/bin/${pkgsTargetTarget.stdenv.cc.targetPrefix}cc";
+    cxxForTarget = "${pkgsTargetTarget.stdenv.cc}/bin/${pkgsTargetTarget.stdenv.cc.targetPrefix}c++";
+    linkerForTarget = if shouldUseLLD pkgsTargetTarget.stdenv.targetPlatform
+      && !pkgsTargetTarget.stdenv.cc.bintools.isLLVM # whether stdenv's linker is lld already
+      then "${pkgsBuildTarget.llvmPackages.bintools}/bin/${pkgsTargetTarget.stdenv.cc.targetPrefix}ld.lld"
       else ccForTarget;
 
     rustBuildPlatform = stdenv.buildPlatform.rust.rustcTarget;
@@ -56,9 +57,9 @@ rec {
     setEnv = ''
     env \
     ''
-    # Due to a bug in how splicing and targetPackages works, in
-    # situations where targetPackages is irrelevant
-    # targetPackages.stdenv.cc is often simply wrong.  We must omit
+    # Due to a bug in how splicing and pkgsTargetTarget works, in
+    # situations where pkgsTargetTarget is irrelevant
+    # pkgsTargetTarget.stdenv.cc is often simply wrong.  We must omit
     # the following lines when rustTargetPlatform collides with
     # rustHostPlatform.
     + lib.optionalString (rustTargetPlatform != rustHostPlatform) ''
@@ -74,8 +75,8 @@ rec {
       "CXX_${stdenv.buildPlatform.rust.cargoEnvVarTarget}=${cxxForBuild}" \
       "CARGO_TARGET_${stdenv.buildPlatform.rust.cargoEnvVarTarget}_LINKER=${linkerForBuild}" \
       "CARGO_BUILD_TARGET=${rustBuildPlatform}" \
-      "HOST_CC=${buildPackages.stdenv.cc}/bin/cc" \
-      "HOST_CXX=${buildPackages.stdenv.cc}/bin/c++" \
+      "HOST_CC=${pkgsBuildHost.stdenv.cc}/bin/cc" \
+      "HOST_CXX=${pkgsBuildHost.stdenv.cc}/bin/c++" \
     '';
   };
 } // lib.mapAttrs (old: new: platform:
diff --git a/pkgs/build-support/setup-hooks/postgresql-test-hook/postgresql-test-hook.sh b/pkgs/build-support/setup-hooks/postgresql-test-hook/postgresql-test-hook.sh
index 3eec67d60feb..d09153b2d644 100644
--- a/pkgs/build-support/setup-hooks/postgresql-test-hook/postgresql-test-hook.sh
+++ b/pkgs/build-support/setup-hooks/postgresql-test-hook/postgresql-test-hook.sh
@@ -56,6 +56,8 @@ EOF
   echo 'initializing postgresql'
   initdb -U postgres
 
+  echo "$postgresqlExtraSettings" >>"$PGDATA/postgresql.conf"
+
   # Move the socket
   echo "unix_socket_directories = '$NIX_BUILD_TOP/run/postgresql'" >>"$PGDATA/postgresql.conf"
 
diff --git a/pkgs/build-support/testers/hasPkgConfigModules/tester.nix b/pkgs/build-support/testers/hasPkgConfigModules/tester.nix
index 755559038271..bbcc4f0c0f71 100644
--- a/pkgs/build-support/testers/hasPkgConfigModules/tester.nix
+++ b/pkgs/build-support/testers/hasPkgConfigModules/tester.nix
@@ -30,10 +30,11 @@ runCommand testName {
         }
         package.meta;
   } ''
+    touch "$out"
     for moduleName in $moduleNames; do
       echo "checking pkg-config module $moduleName in $buildInputs"
       set +e
-      version="$(pkg-config --modversion $moduleName)"
+      version="$($PKG_CONFIG --modversion $moduleName)"
       r=$?
       set -e
       if [[ $r = 0 ]]; then
@@ -41,7 +42,7 @@ runCommand testName {
         printf '%s\t%s\n' "$moduleName" "$version" >> "$out"
       else
         echo "These modules were available in the input propagation closure:"
-        pkg-config --list-all
+        $PKG_CONFIG --list-all
         echo "❌ pkg-config module $moduleName was not found"
         false
       fi
diff --git a/pkgs/build-support/trivial-builders/default.nix b/pkgs/build-support/trivial-builders/default.nix
index 9643c9ba048e..a38231bdcaa3 100644
--- a/pkgs/build-support/trivial-builders/default.nix
+++ b/pkgs/build-support/trivial-builders/default.nix
@@ -152,19 +152,21 @@ rec {
     , meta ? { }
     , allowSubstitutes ? false
     , preferLocalBuild ? true
+    , derivationArgs ? { } # Extra arguments to pass to `stdenv.mkDerivation`
     }:
     let
       matches = builtins.match "/bin/([^/]+)" destination;
     in
     runCommand name
-      {
+      ({
         inherit text executable checkPhase allowSubstitutes preferLocalBuild;
-        passAsFile = [ "text" ];
+        passAsFile = [ "text" ]
+          ++ derivationArgs.passAsFile or [ ];
         meta = lib.optionalAttrs (executable && matches != null)
           {
             mainProgram = lib.head matches;
-          } // meta;
-      }
+          } // meta // derivationArgs.meta or {};
+      } // removeAttrs derivationArgs [ "passAsFile" "meta" ])
       ''
         target=$out${lib.escapeShellArg destination}
         mkdir -p "$(dirname "$target")"
@@ -238,53 +240,94 @@ rec {
       meta.mainProgram = name;
     };
 
-  /*
-    Similar to writeShellScriptBin and writeScriptBin.
-    Writes an executable Shell script to /nix/store/<store path>/bin/<name> and
-    checks its syntax with shellcheck and the shell's -n option.
-    Individual checks can be foregone by putting them in the excludeShellChecks
-    list, e.g. [ "SC2016" ].
-    Automatically includes sane set of shellopts (errexit, nounset, pipefail)
-    and handles creation of PATH based on runtimeInputs
-
-    Note that the checkPhase uses stdenv.shell for the test run of the script,
-    while the generated shebang uses runtimeShell. If, for whatever reason,
-    those were to mismatch you might lose fidelity in the default checks.
-
-    Example:
-
-    Writes my-file to /nix/store/<store path>/bin/my-file and makes executable.
-
-
-    writeShellApplication {
-      name = "my-file";
-      runtimeInputs = [ curl w3m ];
-      text = ''
-        curl -s 'https://nixos.org' | w3m -dump -T text/html
-       '';
-    }
-
-  */
+  # See doc/build-helpers/trivial-build-helpers.chapter.md
+  # or https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-text-writing
   writeShellApplication =
-    { name
-    , text
-    , runtimeInputs ? [ ]
-    , meta ? { }
-    , checkPhase ? null
-    , excludeShellChecks ? [ ]
+    {
+      /*
+         The name of the script to write.
+
+         Type: String
+       */
+      name,
+      /*
+         The shell script's text, not including a shebang.
+
+         Type: String
+       */
+      text,
+      /*
+         Inputs to add to the shell script's `$PATH` at runtime.
+
+         Type: [String|Derivation]
+       */
+      runtimeInputs ? [ ],
+      /*
+         Extra environment variables to set at runtime.
+
+         Type: AttrSet
+       */
+      runtimeEnv ? null,
+      /*
+         `stdenv.mkDerivation`'s `meta` argument.
+
+         Type: AttrSet
+       */
+      meta ? { },
+      /*
+         The `checkPhase` to run. Defaults to `shellcheck` on supported
+         platforms and `bash -n`.
+
+         The script path will be given as `$target` in the `checkPhase`.
+
+         Type: String
+       */
+      checkPhase ? null,
+      /*
+         Checks to exclude when running `shellcheck`, e.g. `[ "SC2016" ]`.
+
+         See <https://www.shellcheck.net/wiki/> for a list of checks.
+
+         Type: [String]
+       */
+      excludeShellChecks ? [ ],
+      /*
+         Bash options to activate with `set -o` at the start of the script.
+
+         Defaults to `[ "errexit" "nounset" "pipefail" ]`.
+
+         Type: [String]
+       */
+      bashOptions ? [ "errexit" "nounset" "pipefail" ],
+      /* Extra arguments to pass to `stdenv.mkDerivation`.
+
+         :::{.caution}
+         Certain derivation attributes are used internally,
+         overriding those could cause problems.
+         :::
+
+         Type: AttrSet
+       */
+      derivationArgs ? { },
     }:
     writeTextFile {
-      inherit name meta;
+      inherit name meta derivationArgs;
       executable = true;
       destination = "/bin/${name}";
       allowSubstitutes = true;
       preferLocalBuild = false;
       text = ''
         #!${runtimeShell}
-        set -o errexit
-        set -o nounset
-        set -o pipefail
-      '' + lib.optionalString (runtimeInputs != [ ]) ''
+        ${lib.concatMapStringsSep "\n" (option: "set -o ${option}") bashOptions}
+      '' + lib.optionalString (runtimeEnv != null)
+        (lib.concatStrings
+          (lib.mapAttrsToList
+            (name: value: ''
+              ${lib.toShellVar name value}
+              export ${name}
+            '')
+            runtimeEnv))
+      + lib.optionalString (runtimeInputs != [ ]) ''
 
         export PATH="${lib.makeBinPath runtimeInputs}:$PATH"
       '' + ''
diff --git a/pkgs/build-support/trivial-builders/test/writeShellApplication.nix b/pkgs/build-support/trivial-builders/test/writeShellApplication.nix
index 6ce6f0720fcf..c50f5a4d283f 100644
--- a/pkgs/build-support/trivial-builders/test/writeShellApplication.nix
+++ b/pkgs/build-support/trivial-builders/test/writeShellApplication.nix
@@ -1,29 +1,141 @@
-/*
-  Run with:
+# Run with:
+# nix-build -A tests.trivial-builders.writeShellApplication
+{ writeShellApplication
+, writeTextFile
+, runCommand
+, lib
+, linkFarm
+, diffutils
+, hello
+}:
+let
+  checkShellApplication = args@{name, expected, ...}:
+    let
+      writeShellApplicationArgs = builtins.removeAttrs args ["expected"];
+      script = writeShellApplication writeShellApplicationArgs;
+      executable = lib.getExe script;
+      expected' = writeTextFile {
+        name = "${name}-expected";
+        text = expected;
+      };
+      actual = "${name}-actual";
+    in
+    runCommand name { } ''
+      echo "Running test executable ${name}"
+      ${executable} > ${actual}
+      echo "Got output from test executable:"
+      cat ${actual}
+      echo "Checking test output against expected output:"
+      ${diffutils}/bin/diff --color --unified ${expected'} ${actual}
+      touch $out
+    '';
+in
+linkFarm "writeShellApplication-tests" {
+  test-meta =
+    let
+      script = writeShellApplication {
+        name = "test-meta";
+        text = "";
+        meta.description = "A test for the `writeShellApplication` `meta` argument.";
+      };
+    in
+    assert script.meta.mainProgram == "test-meta";
+    assert script.meta.description == "A test for the `writeShellApplication` `meta` argument.";
+    script;
 
-      cd nixpkgs
-      nix-build -A tests.trivial-builders.writeShellApplication
-*/
+  test-runtime-inputs =
+    checkShellApplication {
+      name = "test-runtime-inputs";
+      text = ''
+        hello
+      '';
+      runtimeInputs = [ hello ];
+      expected = "Hello, world!\n";
+    };
 
-{ lib, writeShellApplication, runCommand }:
-let
-  pkg = writeShellApplication {
-    name = "test-script";
+  test-runtime-env =
+    checkShellApplication {
+      name = "test-runtime-env";
+      runtimeEnv = {
+        MY_COOL_ENV_VAR = "my-cool-env-value";
+        MY_OTHER_COOL_ENV_VAR = "my-other-cool-env-value";
+        # Check that we can serialize a bunch of different types:
+        BOOL = true;
+        INT = 1;
+        LIST = [1 2 3];
+        MAP = {
+          a = "a";
+          b = "b";
+        };
+      };
+      text = ''
+        echo "$MY_COOL_ENV_VAR"
+        echo "$MY_OTHER_COOL_ENV_VAR"
+      '';
+      expected = ''
+        my-cool-env-value
+        my-other-cool-env-value
+      '';
+    };
+
+  test-check-phase =
+    checkShellApplication {
+      name = "test-check-phase";
+      text = "";
+      checkPhase = ''
+        echo "echo -n hello" > $target
+      '';
+      expected = "hello";
+    };
+
+  test-argument-forwarding =
+    checkShellApplication {
+      name = "test-argument-forwarding";
+      text = "";
+      derivationArgs.MY_BUILD_TIME_VARIABLE = "puppy";
+      derivationArgs.postCheck = ''
+        if [[ "$MY_BUILD_TIME_VARIABLE" != puppy ]]; then
+          echo "\$MY_BUILD_TIME_VARIABLE is not set to 'puppy'!"
+          exit 1
+        fi
+      '';
+      meta.description = "A test checking that `writeShellApplication` forwards extra arguments to `stdenv.mkDerivation`.";
+      expected = "";
+    };
+
+  test-exclude-shell-checks = writeShellApplication {
+    name = "test-exclude-shell-checks";
     excludeShellChecks = [ "SC2016" ];
     text = ''
-      echo -e '#!/usr/bin/env bash\n' \
-       'echo "$SHELL"' > /tmp/something.sh  # this line would normally
-                                            # ...cause shellcheck error
+      # Triggers SC2016: Expressions don't expand in single quotes, use double
+      # quotes for that.
+      echo '$SHELL'
     '';
   };
-in
-  assert pkg.meta.mainProgram == "test-script";
-  runCommand "test-writeShellApplication" { } ''
 
-    echo Testing if writeShellApplication builds without shellcheck error...
-
-    target=${lib.getExe pkg}
+  test-bash-options-pipefail = checkShellApplication {
+    name = "test-bash-options-pipefail";
+    text = ''
+      touch my-test-file
+      echo puppy | grep doggy | sed 's/doggy/puppy/g'
+      #            ^^^^^^^^^^ This will fail.
+      true
+    '';
+    # Don't use `pipefail`:
+    bashOptions = ["errexit" "nounset"];
+    expected = "";
+  };
 
-    touch $out
-  ''
+  test-bash-options-nounset = checkShellApplication {
+    name = "test-bash-options-nounset";
+    text = ''
+      echo -n "$someUndefinedVariable"
+    '';
+    # Don't use `nounset`:
+    bashOptions = [];
+    # Don't warn about the undefined variable at build time:
+    excludeShellChecks = [ "SC2154" ];
+    expected = "";
+  };
 
+}
diff --git a/pkgs/build-support/writers/default.nix b/pkgs/build-support/writers/default.nix
index a161322cd35b..cadb69781481 100644
--- a/pkgs/build-support/writers/default.nix
+++ b/pkgs/build-support/writers/default.nix
@@ -1,5 +1,6 @@
 { config, lib, callPackages }:
 
+# If you are reading this, you can test these writers by running: nix-build . -A tests.writers
 let
   aliases = if config.allowAliases then (import ./aliases.nix lib) else prev: {};
 
diff --git a/pkgs/build-support/writers/scripts.nix b/pkgs/build-support/writers/scripts.nix
index 184ecee68777..8a23e5dd4a66 100644
--- a/pkgs/build-support/writers/scripts.nix
+++ b/pkgs/build-support/writers/scripts.nix
@@ -13,7 +13,7 @@ let
 in
 rec {
   # Base implementation for non-compiled executables.
-  # Takes an interpreter, for example `${pkgs.bash}/bin/bash`
+  # Takes an interpreter, for example `${lib.getExe pkgs.bash}`
   #
   # Examples:
   #   writeBash = makeScriptWriter { interpreter = "${pkgs.bash}/bin/bash"; }
@@ -116,7 +116,7 @@ rec {
   #     echo hello world
   #   ''
   writeBash = makeScriptWriter {
-    interpreter = "${pkgs.bash}/bin/bash";
+    interpreter = "${lib.getExe pkgs.bash}";
   };
 
   # Like writeScriptBin but the first line is a shebang to bash
@@ -130,7 +130,7 @@ rec {
   #     echo hello world
   #   ''
   writeDash = makeScriptWriter {
-    interpreter = "${pkgs.dash}/bin/dash";
+    interpreter = "${lib.getExe pkgs.dash}";
   };
 
   # Like writeScriptBin but the first line is a shebang to dash
@@ -144,8 +144,8 @@ rec {
   #     echo hello world
   #   ''
   writeFish = makeScriptWriter {
-    interpreter = "${pkgs.fish}/bin/fish --no-config";
-    check = "${pkgs.fish}/bin/fish --no-config --no-execute";  # syntax check only
+    interpreter = "${lib.getExe pkgs.fish} --no-config";
+    check = "${lib.getExe pkgs.fish} --no-config --no-execute";  # syntax check only
   };
 
   # Like writeScriptBin but the first line is a shebang to fish
@@ -175,7 +175,7 @@ rec {
     in makeBinWriter {
       compileScript = ''
         cp $contentPath tmp.hs
-        ${ghc.withPackages (_: libraries )}/bin/ghc ${lib.escapeShellArgs ghcArgs'} tmp.hs
+        ${(ghc.withPackages (_: libraries ))}/bin/ghc ${lib.escapeShellArgs ghcArgs'} tmp.hs
         mv tmp $out
       '';
       inherit strip;
@@ -185,6 +185,85 @@ rec {
   writeHaskellBin = name:
     writeHaskell "/bin/${name}";
 
+  # Like writeScript but the first line is a shebang to nu
+  #
+  # Example:
+  #   writeNu "example" ''
+  #     echo hello world
+  #   ''
+  writeNu = makeScriptWriter {
+    interpreter = "${lib.getExe pkgs.nushell} --no-config-file";
+  };
+
+  # Like writeScriptBin but the first line is a shebang to nu
+  writeNuBin = name:
+    writeNu "/bin/${name}";
+
+  # makeRubyWriter takes ruby and compatible rubyPackages and produces ruby script writer,
+  # If any libraries are specified, ruby.withPackages is used as interpreter, otherwise the "bare" ruby is used.
+  makeRubyWriter = ruby: rubyPackages: buildRubyPackages: name: { libraries ? [], }:
+  makeScriptWriter {
+    interpreter =
+      if libraries == []
+      then "${ruby}/bin/ruby"
+      else "${(ruby.withPackages (ps: libraries))}/bin/ruby";
+    # Rubocop doesnt seem to like running in this fashion.
+    #check = (writeDash "rubocop.sh" ''
+    #  exec ${lib.getExe buildRubyPackages.rubocop} "$1"
+    #'');
+  } name;
+
+  # Like writeScript but the first line is a shebang to ruby
+  #
+  # Example:
+  #   writeRuby "example" ''
+  #    puts "hello world"
+  #   ''
+  writeRuby = makeRubyWriter pkgs.ruby pkgs.rubyPackages buildPackages.rubyPackages;
+
+  writeRubyBin = name:
+    writeRuby "/bin/${name}";
+
+  # makeLuaWriter takes lua and compatible luaPackages and produces lua script writer,
+  # which validates the script with luacheck at build time. If any libraries are specified,
+  # lua.withPackages is used as interpreter, otherwise the "bare" lua is used.
+  makeLuaWriter = lua: luaPackages: buildLuaPackages: name: { libraries ? [], }:
+  makeScriptWriter {
+    interpreter = lua.interpreter;
+      # if libraries == []
+      # then lua.interpreter
+      # else (lua.withPackages (ps: libraries)).interpreter
+      # This should support packages! I just cant figure out why some dependency collision happens whenever I try to run this.
+    check = (writeDash "luacheck.sh" ''
+      exec ${buildLuaPackages.luacheck}/bin/luacheck "$1"
+    '');
+  } name;
+
+  # writeLua takes a name an attributeset with libraries and some lua source code and
+  # returns an executable (should also work with luajit)
+  #
+  # Example:
+  # writeLua "test_lua" { libraries = [ pkgs.luaPackages.say ]; } ''
+  #   s = require("say")
+  #   s:set_namespace("en")
+  #
+  #   s:set('money', 'I have %s dollars')
+  #   s:set('wow', 'So much money!')
+  #
+  #   print(s('money', {1000})) -- I have 1000 dollars
+  #
+  #   s:set_namespace("fr") -- switch to french!
+  #   s:set('wow', "Tant d'argent!")
+  #
+  #   print(s('wow')) -- Tant d'argent!
+  #   s:set_namespace("en")  -- switch back to english!
+  #   print(s('wow')) -- So much money!
+  # ''
+  writeLua = makeLuaWriter pkgs.lua pkgs.luaPackages buildPackages.luaPackages;
+
+  writeLuaBin = name:
+    writeLua "/bin/${name}";
+
   writeRust = name: {
       rustc ? pkgs.rustc,
       rustcArgs ? [],
@@ -196,7 +275,7 @@ rec {
     makeBinWriter {
       compileScript = ''
         cp "$contentPath" tmp.rs
-        PATH=${lib.makeBinPath [pkgs.gcc]} ${lib.getBin rustc}/bin/rustc ${lib.escapeShellArgs rustcArgs} ${lib.escapeShellArgs darwinArgs} -o "$out" tmp.rs
+        PATH=${lib.makeBinPath [pkgs.gcc]} ${rustc}/bin/rustc ${lib.escapeShellArgs rustcArgs} ${lib.escapeShellArgs darwinArgs} -o "$out" tmp.rs
       '';
       inherit strip;
     } name;
@@ -225,7 +304,7 @@ rec {
     };
   in writeDash name ''
     export NODE_PATH=${node-env}/lib/node_modules
-    exec ${pkgs.nodejs}/bin/node ${pkgs.writeText "js" content} "$@"
+    exec ${lib.getExe pkgs.nodejs} ${pkgs.writeText "js" content} "$@"
   '';
 
   # writeJSBin takes the same arguments as writeJS but outputs a directory (like writeScriptBin)
@@ -260,7 +339,7 @@ rec {
   #   ''
   writePerl = name: { libraries ? [] }:
     makeScriptWriter {
-      interpreter = "${pkgs.perl.withPackages (p: libraries)}/bin/perl";
+      interpreter = "${lib.getExe (pkgs.perl.withPackages (p: libraries))}";
     } name;
 
   # writePerlBin takes the same arguments as writePerl but outputs a directory (like writeScriptBin)
@@ -276,9 +355,11 @@ rec {
   in
   makeScriptWriter {
     interpreter =
-      if libraries == []
-      then python.interpreter
-      else (python.withPackages (ps: libraries)).interpreter
+      if pythonPackages != pkgs.pypy2Packages || pythonPackages != pkgs.pypy3Packages then
+        if libraries == []
+        then python.interpreter
+        else (python.withPackages (ps: libraries)).interpreter
+      else python.interpreter
     ;
     check = optionalString python.isPy3k (writeDash "pythoncheck.sh" ''
       exec ${buildPythonPackages.flake8}/bin/flake8 --show-source ${ignoreAttribute} "$1"
@@ -358,7 +439,7 @@ rec {
       export DOTNET_CLI_TELEMETRY_OPTOUT=1
       export DOTNET_NOLOGO=1
       script="$1"; shift
-      ${dotnet-sdk}/bin/dotnet fsi --quiet --nologo --readline- ${fsi-flags} "$@" < "$script"
+      ${lib.getExe dotnet-sdk} fsi --quiet --nologo --readline- ${fsi-flags} "$@" < "$script"
     '';
 
   in content: makeScriptWriter {
diff --git a/pkgs/build-support/writers/test.nix b/pkgs/build-support/writers/test.nix
index 005daf0be5b4..982c550d28e0 100644
--- a/pkgs/build-support/writers/test.nix
+++ b/pkgs/build-support/writers/test.nix
@@ -6,11 +6,16 @@
 , pypy2Packages
 , python3Packages
 , pypy3Packages
+, luaPackages
+, rubyPackages
 , runCommand
 , testers
 , writers
 , writeText
 }:
+
+# If you are reading this, you can test these writers by running: nix-build . -A tests.writers
+
 with writers;
 let
   expectSuccess = test:
@@ -88,15 +93,6 @@ lib.recurseIntoAttrs {
       print "success\n" if true;
     '');
 
-    pypy2 = expectSuccessBin (writePyPy2Bin "test-writers-pypy2-bin" { libraries = [ pypy2Packages.enum ]; } ''
-      from enum import Enum
-
-      class Test(Enum):
-          a = "success"
-
-      print Test.a
-    '');
-
     python3 = expectSuccessBin (writePython3Bin "test-writers-python3-bin" { libraries = [ python3Packages.pyyaml ]; } ''
       import yaml
 
@@ -106,14 +102,47 @@ lib.recurseIntoAttrs {
       print(y[0]['test'])
     '');
 
-    pypy3 = expectSuccessBin (writePyPy3Bin "test-writers-pypy3-bin" { libraries = [ pypy3Packages.pyyaml ]; } ''
-      import yaml
-
-      y = yaml.safe_load("""
-        - test: success
-      """)
-      print(y[0]['test'])
-    '');
+    # Commented out because of this issue: https://github.com/NixOS/nixpkgs/issues/39356
+
+    #pypy2 = expectSuccessBin (writePyPy2Bin "test-writers-pypy2-bin" { libraries = [ pypy2Packages.enum ]; } ''
+    #  from enum import Enum
+    #
+    #  class Test(Enum):
+    #      a = "success"
+    #
+    #  print Test.a
+    #'');
+
+    #pypy3 = expectSuccessBin (writePyPy3Bin "test-writers-pypy3-bin" { libraries = [ pypy3Packages.pyyaml ]; } ''
+    #  import yaml
+    #
+    #  y = yaml.safe_load("""
+    #    - test: success
+    #  """)
+    #  print(y[0]['test'])
+    #'');
+
+    # Could not test this because of external package issues :(
+    #lua = writeLuaBin "test-writers-lua-bin" { libraries = [ pkgs.luaPackages.say ]; } ''
+    #  s = require("say")
+    #  s:set_namespace("en")
+
+    #  s:set('money', 'I have %s dollars')
+    #  s:set('wow', 'So much money!')
+
+    #  print(s('money', {1000})) -- I have 1000 dollars
+
+    #  s:set_namespace("fr") -- switch to french!
+    #  s:set('wow', "Tant d'argent!")
+
+    #  print(s('wow')) -- Tant d'argent!
+    #  s:set_namespace("en")  -- switch back to english!
+    #  print(s('wow')) -- So much money!
+    #'';
+
+    #ruby = expectSuccessBin (writeRubyBin "test-writers-ruby-bin" { libraries = [ rubyPackages.rubocop ]; } ''
+    #puts "This should work!"
+    #'');
   };
 
   simple = lib.recurseIntoAttrs {
@@ -131,6 +160,10 @@ lib.recurseIntoAttrs {
       end
     '');
 
+    nu = expectSuccess (writeNu "test-writers-nushell" ''
+      echo "success"
+    '');
+
     haskell = expectSuccess (writeHaskell "test-writers-haskell" { libraries = [ haskellPackages.acme-default ]; } ''
       import Data.Default
 
@@ -158,15 +191,6 @@ lib.recurseIntoAttrs {
       print "success\n" if true;
     '');
 
-    pypy2 = expectSuccess (writePyPy2 "test-writers-pypy2" { libraries = [ pypy2Packages.enum ]; } ''
-      from enum import Enum
-
-      class Test(Enum):
-          a = "success"
-
-      print Test.a
-    '');
-
     python3 = expectSuccess (writePython3 "test-writers-python3" { libraries = [ python3Packages.pyyaml ]; } ''
       import yaml
 
@@ -176,20 +200,33 @@ lib.recurseIntoAttrs {
       print(y[0]['test'])
     '');
 
-    pypy3 = expectSuccess (writePyPy3 "test-writers-pypy3" { libraries = [ pypy3Packages.pyyaml ]; } ''
-      import yaml
-
-      y = yaml.safe_load("""
-        - test: success
-      """)
-      print(y[0]['test'])
-    '');
+    # Commented out because of this issue: https://github.com/NixOS/nixpkgs/issues/39356
+
+    #pypy2 = expectSuccessBin (writePyPy2Bin "test-writers-pypy2-bin" { libraries = [ pypy2Packages.enum ]; } ''
+    #  from enum import Enum
+    #
+    #  class Test(Enum):
+    #      a = "success"
+    #
+    #  print Test.a
+    #'');
+
+    #pypy3 = expectSuccessBin (writePyPy3Bin "test-writers-pypy3-bin" { libraries = [ pypy3Packages.pyyaml ]; } ''
+    #  import yaml
+    #
+    #  y = yaml.safe_load("""
+    #    - test: success
+    #  """)
+    #  print(y[0]['test'])
+    #'');
 
     fsharp = expectSuccess (makeFSharpWriter {
       libraries = { fetchNuGet }: [
         (fetchNuGet { pname = "FSharp.SystemTextJson"; version = "0.17.4"; sha256 = "1bplzc9ybdqspii4q28l8gmfvzpkmgq5l1hlsiyg2h46w881lwg2"; })
+        (fetchNuGet { pname = "System.Text.Json"; version = "4.6.0"; sha256 = "0ism236hwi0k6axssfq58s1d8lihplwiz058pdvl8al71hagri39"; })
       ];
     } "test-writers-fsharp" ''
+
       #r "nuget: FSharp.SystemTextJson, 0.17.4"
 
       module Json =
@@ -208,9 +245,9 @@ lib.recurseIntoAttrs {
       |> printfn "%s"
     '');
 
-    pypy2NoLibs = expectSuccess (writePyPy2 "test-writers-pypy2-no-libs" {} ''
-      print("success")
-    '');
+    #pypy2NoLibs = expectSuccess (writePyPy2 "test-writers-pypy2-no-libs" {} ''
+    #  print("success")
+    #'');
 
     python3NoLibs = expectSuccess (writePython3 "test-writers-python3-no-libs" {} ''
       print("success")
@@ -222,6 +259,14 @@ lib.recurseIntoAttrs {
 
     fsharpNoNugetDeps = expectSuccess (writeFSharp "test-writers-fsharp-no-nuget-deps" ''
       printfn "success"
+      '');
+
+    luaNoLibs = expectSuccess (writeLua "test-writers-lua-no-libs" {} ''
+      print("success")
+      '');
+
+    rubyNoLibs = expectSuccess (writeRuby "test-writers-ruby-no-libs" {} ''
+      puts "success"
     '');
   };
 
diff --git a/pkgs/by-name/_9/_9base/package.nix b/pkgs/by-name/_9/_9base/package.nix
index 809b9da39af4..580c0ad698dc 100644
--- a/pkgs/by-name/_9/_9base/package.nix
+++ b/pkgs/by-name/_9/_9base/package.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation {
   enableParallelBuilding = true;
   strictDeps = true;
   nativeBuildInputs = [ pkg-config ];
-  NIX_CFLAGS_COMPILE = [
+  env.NIX_CFLAGS_COMPILE = toString ([
     # workaround build failure on -fno-common toolchains like upstream
     # gcc-10. Otherwise build fails as:
     #   ld: diffio.o:(.bss+0x16): multiple definition of `bflag'; diffdir.o:(.bss+0x6): first defined here
@@ -47,8 +47,11 @@ stdenv.mkDerivation {
     # hide really common warning that floods the logs:
     #   warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
     "-D_DEFAULT_SOURCE"
-  ];
-  LDFLAGS = lib.optionalString enableStatic "-static";
+  ] ++ lib.optionals stdenv.cc.isClang [
+    # error: call to undeclared function 'p9mbtowc'; ISO C99 and later do not support implicit function declarations
+    "-Wno-error=implicit-function-declaration"
+  ]);
+  env.LDFLAGS = lib.optionalString enableStatic "-static";
   makeFlags = [
     "PREFIX=${placeholder "out"}"
   ];
diff --git a/pkgs/by-name/aa/aaaaxy/package.nix b/pkgs/by-name/aa/aaaaxy/package.nix
index 415711d50278..e84f74714e5d 100644
--- a/pkgs/by-name/aa/aaaaxy/package.nix
+++ b/pkgs/by-name/aa/aaaaxy/package.nix
@@ -20,17 +20,17 @@
 
 buildGoModule rec {
   pname = "aaaaxy";
-  version = "1.4.137";
+  version = "1.4.160";
 
   src = fetchFromGitHub {
     owner = "divVerent";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-noKAf+Xd6yW45+0gtKBlRwCKNGCg7YBbWswOP7clv+M=";
+    hash = "sha256-BI3qnt/u0BXEHJ1E7jUh6jAUXxJZAUX+5Joih1g0JAU=";
     fetchSubmodules = true;
   };
 
-  vendorHash = "sha256-ig5ai28PR3VJUoVGexlfP2OMYmKI0qltTot4zIqfdO4=";
+  vendorHash = "sha256-m6nSWw+KluP0X3mB18m7OEFzeRFw/XS4JiqARqGopvQ=";
 
   buildInputs = [
     alsa-lib
diff --git a/pkgs/by-name/ae/aeacus/package.nix b/pkgs/by-name/ae/aeacus/package.nix
new file mode 100644
index 000000000000..d172e7c50177
--- /dev/null
+++ b/pkgs/by-name/ae/aeacus/package.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "aeacus";
+  version = "2.1.1";
+
+  src = fetchFromGitHub {
+    owner = "elysium-suite";
+    repo = "aeacus";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-LMsfogcz3CoShQDqyshMshb+iz2r0k5I7NDLXevMakI=";
+  };
+
+  vendorHash = "sha256-WOXOM08UYECdGx+e54n4BgLP3cr+st3qKi8iQXebPvk=";
+
+  ldflags = [
+    "-s"
+    "-w"
+  ];
+
+  # Tests require network access
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Vulnerability remediation scoring system";
+    homepage = "https://github.com/elysium-suite/aeacus";
+    changelog = "https://github.com/elysium-suite/aeacus/releases/tag/v${version}";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "aeacus";
+  };
+}
diff --git a/pkgs/by-name/al/alsa-lib-with-plugins/package.nix b/pkgs/by-name/al/alsa-lib-with-plugins/package.nix
new file mode 100644
index 000000000000..4388884f75a6
--- /dev/null
+++ b/pkgs/by-name/al/alsa-lib-with-plugins/package.nix
@@ -0,0 +1,52 @@
+{ lib
+, pkgs
+, alsa-lib
+, plugins ? [ pkgs.alsa-plugins ]
+, lndir
+, symlinkJoin
+, runCommand
+}:
+let
+  merged = symlinkJoin { name = "alsa-plugins-merged"; paths = plugins; };
+in
+runCommand "${alsa-lib.pname}-${alsa-lib.version}" {
+  meta = with lib; {
+    description = "wrapper to ease access to ALSA plugins";
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ gm6k ];
+  };
+  outputs = alsa-lib.outputs;
+} (
+    (
+      lib.concatMapStringsSep "\n" (
+        output: ''
+          mkdir ${builtins.placeholder output}
+          ${lndir}/bin/lndir ${lib.attrByPath [output] null alsa-lib} \
+            ${builtins.placeholder output}
+        ''
+      ) alsa-lib.outputs
+    ) + ''
+    cp -r ${merged}/lib/alsa-lib $out/lib
+    (
+      echo $out | wc -c
+      echo ${alsa-lib} | wc -c
+    ) | xargs echo | grep -q "^\(.*\) \1$" || (
+      echo cannot binary patch
+      exit 1
+    )
+    rm $out/lib/libasound.la
+    rm $out/lib/libasound.so.?.?.?
+    rm $dev/lib/pkgconfig/alsa.pc
+    rm $dev/nix-support/propagated-build-inputs
+    cp ${alsa-lib}/lib/libasound.la $out/lib
+    cp ${alsa-lib}/lib/libasound.so.?.?.? $out/lib
+    cp ${alsa-lib.dev}/lib/pkgconfig/alsa.pc $dev/lib/pkgconfig
+    cp ${alsa-lib.dev}/nix-support/propagated-build-inputs $dev/nix-support
+    sed -i \
+        $out/lib/libasound.la \
+        $out/lib/libasound.so.?.?.? \
+        $dev/lib/pkgconfig/alsa.pc \
+        $dev/nix-support/propagated-build-inputs \
+      -e "s@${alsa-lib}@$out@g"
+  ''
+)
diff --git a/pkgs/by-name/al/alsa-tools/package.nix b/pkgs/by-name/al/alsa-tools/package.nix
index b52e15200967..31e949c07cef 100644
--- a/pkgs/by-name/al/alsa-tools/package.nix
+++ b/pkgs/by-name/al/alsa-tools/package.nix
@@ -12,11 +12,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "alsa-tools";
-  version = "1.2.5";
+  version = "1.2.11";
 
   src = fetchurl {
     url = "mirror://alsa/tools/alsa-tools-${finalAttrs.version}.tar.bz2";
-    hash = "sha256-NacQJ6AfTX3kci4iNSDpQN5os8VwtsZxaRVnrij5iT4=";
+    hash = "sha256-CRXJY0pQL9NlXKnFdNJZvJ55mD2R1Frqz/bzwA+K4+k=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/al/alvr/package.nix b/pkgs/by-name/al/alvr/package.nix
new file mode 100644
index 000000000000..803f352ae4e6
--- /dev/null
+++ b/pkgs/by-name/al/alvr/package.nix
@@ -0,0 +1,36 @@
+{ lib,
+  appimageTools,
+  fetchurl,
+}:
+let
+  pname = "alvr";
+  version = "20.6.1";
+  src = fetchurl {
+    url = "https://github.com/alvr-org/ALVR/releases/download/v${version}/ALVR-x86_64.AppImage";
+    hash = "sha256-IYw3D18xUGWiFu74c4d8d4tohZztAD6mmZCYsDNxR+A=";
+  };
+
+  appimageContents = appimageTools.extractType2 { inherit pname version src; };
+in
+appimageTools.wrapType2 {
+  inherit pname version src;
+
+  extraInstallCommands = ''
+    mv $out/bin/alvr-${version} $out/bin/alvr
+
+    install -Dm444 ${appimageContents}/alvr.desktop -t $out/share/applications
+    substituteInPlace $out/share/applications/alvr.desktop \
+      --replace 'Exec=alvr_dashboard' 'Exec=alvr'
+    cp -r ${appimageContents}/usr/share/icons $out/share
+  '';
+
+  meta = with lib; {
+    description = "Stream VR games from your PC to your headset via Wi-Fi";
+    homepage = "https://github.com/alvr-org/ALVR/";
+    changelog = "https://github.com/alvr-org/ALVR/releases/tag/v${version}";
+    license = licenses.mit;
+    mainProgram = "alvr";
+    maintainers = with maintainers; [ passivelemon ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/by-name/am/amazon-ssm-agent/package.nix b/pkgs/by-name/am/amazon-ssm-agent/package.nix
index 65006dbfb3e4..f508e2d2e8f5 100644
--- a/pkgs/by-name/am/amazon-ssm-agent/package.nix
+++ b/pkgs/by-name/am/amazon-ssm-agent/package.nix
@@ -42,13 +42,13 @@ let
 in
 buildGoModule rec {
   pname = "amazon-ssm-agent";
-  version = "3.2.2086.0";
+  version = "3.2.2222.0";
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = "amazon-ssm-agent";
     rev = "refs/tags/${version}";
-    hash = "sha256-oV/0B2VxM6Gx84FIk3bUZU5DQDXt3Jek6/Xv0ZkZ89Y=";
+    hash = "sha256-0mXf7n+Cd5t3xAB/84ejdCzcZviBLODBPkJah1X63+0=";
   };
 
   vendorHash = null;
@@ -68,15 +68,15 @@ buildGoModule rec {
     darwin.DarwinTools
   ];
 
-  # See the list https://github.com/aws/amazon-ssm-agent/blob/3.2.1630.0/makefile#L120-L138
+  # See the list https://github.com/aws/amazon-ssm-agent/blob/3.2.2143.0/makefile#L121-L147
   # The updater is not built because it cannot work on NixOS
   subPackages = [
     "core"
     "agent"
     "agent/cli-main"
+    "agent/framework/processor/executer/outofproc/sessionworker"
     "agent/framework/processor/executer/outofproc/worker"
     "agent/session/logging"
-    "agent/framework/processor/executer/outofproc/sessionworker"
   ];
 
   ldflags = [ "-s" "-w" ];
diff --git a/pkgs/by-name/an/anyk/package.nix b/pkgs/by-name/an/anyk/package.nix
new file mode 100644
index 000000000000..dfd97fd62273
--- /dev/null
+++ b/pkgs/by-name/an/anyk/package.nix
@@ -0,0 +1,145 @@
+{ stdenv
+, lib
+, fetchurl
+, fetchzip
+, openjdk
+, writeScript
+, runCommandLocal
+, bash
+, unzip
+, makeWrapper
+, libredirect
+, xsettingsd
+, makeDesktopItem
+, copyDesktopItems
+, python3
+}:
+let
+  # Downloads can be found here: https://nav.gov.hu/nyomtatvanyok/letoltesek/nyomtatvanykitolto_programok/nyomtatvany_apeh/keretprogramok/AbevJava
+  # There are no versioned download URLs but archive.org can be used to preserve them.
+  # The original download URL is: https://nav.gov.hu/pfile/programFile?path=/nyomtatvanyok/letoltesek/nyomtatvanykitolto_programok/nyomtatvany_apeh/keretprogramok/AbevJava
+  # You can put the URL here to create a fresh archive URL: https://web.archive.org/save
+  abevjavaSrc = fetchzip {
+    url = "https://web.archive.org/web/20231106112510if_/https://nav.gov.hu/pfile/programFile?path=/nyomtatvanyok/letoltesek/nyomtatvanykitolto_programok/nyomtatvany_apeh/keretprogramok/AbevJava";
+    sha256 = "sha256-qt0mHv3HI6C8OltFjSR47+RLSnmB2Si5U8rXEvdN4/c=";
+    extension = "zip";
+    stripRoot = false;
+  };
+
+  # ÁNYK uses some SOAP stuff that's not shipped with OpenJDK any more.
+  # We don't really want to use openjdk8 because it's unusable on HiDPI
+  # and people are more likely to have a modern OpenJDK installed.
+  extraClasspath = [
+    (fetchurl {
+      url = "mirror://maven/org/glassfish/metro/webservices-rt/2.4.10/webservices-rt-2.4.10.jar";
+      sha256 = "sha256-lHclIZn3HR2B2lMttmmQGIV67qJi5KhL5jT2WNUQpPI=";
+    })
+
+    (fetchurl {
+      url = "mirror://maven/org/glassfish/metro/webservices-api/2.4.10/webservices-api-2.4.10.jar";
+      sha256 = "sha256-1jiabjPkRnh+l/fmTt8aKE5hpeLreYOiLH9sVIcLUQE=";
+    })
+
+    (fetchurl {
+      url = "mirror://maven/com/sun/activation/jakarta.activation/2.0.1/jakarta.activation-2.0.1.jar";
+      sha256 = "sha256-ueJLfdbgdJVWLqllMb4xMMltuk144d/Yitu96/QzKHE=";
+    })
+
+    # Patch one of the classes so it works with the packages above by removing .internal. from the package names.
+    (runCommandLocal "anyk-patch" {} ''
+      mkdir $out
+      cd $out
+      ${unzip}/bin/unzip ${abevjavaSrc}/application/abevjava.jar hu/piller/enykp/niszws/ClientStubBuilder.class
+      ${python3}/bin/python ${./patch_paths.py} hu/piller/enykp/niszws/ClientStubBuilder.class
+    '')
+  ];
+
+  # This script can be used to run template installation jars (or use the Szervíz -> Telepítés menu)
+  anyk-java = writeScript "anyk-java" ''
+    if [ -f ~/.abevjava/abevjavapath.cfg ]
+    then
+      if ABEVJAVA_PATH_CFG=$(grep abevjava.path ~/.abevjava/abevjavapath.cfg)
+      then
+        ABEVJAVA_PATH=''${ABEVJAVA_PATH_CFG#abevjava.path = }
+        echo "Determined abevjava path as $ABEVJAVA_PATH"
+      else
+        echo "Could not determine abevjava path from ~/.abevjava/abevjavapath.cfg"
+        exit 1
+      fi
+    else
+      ABEVJAVA_PATH=~/abevjava
+      mkdir -p ~/.abevjava
+      echo "abevjava.path = $ABEVJAVA_PATH" > ~/.abevjava/abevjavapath.cfg
+      echo "Initialized abevjava path as $ABEVJAVA_PATH"
+    fi
+
+    # Sync help files.
+    mkdir -p "$ABEVJAVA_PATH/segitseg/"
+    cp -sRf --no-preserve=all @out@/opt/segitseg/. "$ABEVJAVA_PATH/segitseg"
+
+    export LD_PRELOAD=${libredirect}/lib/libredirect.so:$LD_PRELOAD
+    # Look for form templates in ABEVJAVA_PATH instead of the install dir.
+    export NIX_REDIRECTS=@out@/opt/nyomtatvanyok=$ABEVJAVA_PATH/nyomtatvanyok:@out@/opt/segitseg=$ABEVJAVA_PATH/segitseg:@out@/opt/setenv=$ABEVJAVA_PATH/setenv:/bin/bash=${bash}/bin/bash:$NIX_REDIRECTS
+    if WINDOW_SCALING_FACTOR=$(${xsettingsd}/bin/dump_xsettings | awk '/Gdk\/WindowScalingFactor/{print $NF}'  | grep .); then
+      # Fix scaling on HiDPI.
+      SCALING_PROP="-Dsun.java2d.uiScale=''${WINDOW_SCALING_FACTOR}"
+    fi
+    # ÁNYK crashes with NullPointerException with the GTK look and feel so use the cross-platform one.
+    exec ${openjdk}/bin/java -Dswing.systemlaf=javax.swing.plaf.metal.MetalLookAndFeel $SCALING_PROP "$@"
+  '';
+in stdenv.mkDerivation {
+  pname = "anyk";
+  version = "3.26.0";
+
+  src = abevjavaSrc;
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  nativeBuildInputs = [ makeWrapper copyDesktopItems ];
+
+  desktopItems = [
+    (makeDesktopItem rec {
+      desktopName = "ÁNYK";
+      name = "anyk";
+      exec = "anyk";
+      icon = "anyk";
+      categories = [ "Office" ];
+    })
+  ];
+
+  installPhase = ''
+    mkdir $out
+    cp -r application $out/opt
+
+    mkdir $out/bin
+    substituteAll ${anyk-java} $out/bin/anyk-java
+    chmod +x $out/bin/anyk-java
+
+    # ÁNYK has some old school dependencies that are no longer bundled with Java, put them on the classpath.
+    makeWrapper $out/bin/anyk-java $out/bin/anyk --add-flags "-cp ${lib.concatStringsSep ":" extraClasspath}:$out/opt/abevjava.jar hu.piller.enykp.gui.framework.MainFrame"
+
+    mkdir -p $out/share/applications $out/share/pixmaps $out/share/icons
+
+    copyDesktopItems
+
+    ln -s $out/opt/abevjava.png $out/share/pixmaps/anyk.png
+    ln -s $out/opt/abevjava.png $out/share/icons/anyk.png
+  '';
+
+  meta = with lib; {
+    description = "Tool for filling forms for the Hungarian government,";
+    longDescription = ''
+      Official tool for filling Hungarian government forms.
+
+      Use `anyk-java` to install form templates/help files like this: `anyk-java -jar NAV_IGAZOL.jar`
+    '';
+    homepage = "https://nav.gov.hu/nyomtatvanyok/letoltesek/nyomtatvanykitolto_programok/nyomtatvany_apeh/keretprogramok/javakitolto";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ chpatrick ];
+    platforms = openjdk.meta.platforms;
+    sourceProvenance = [ sourceTypes.binaryBytecode ];
+    mainProgram = "anyk";
+  };
+}
+
diff --git a/pkgs/by-name/an/anyk/patch_paths.py b/pkgs/by-name/an/anyk/patch_paths.py
new file mode 100644
index 000000000000..5e2306bd3c9a
--- /dev/null
+++ b/pkgs/by-name/an/anyk/patch_paths.py
@@ -0,0 +1,35 @@
+from pathlib import Path
+from struct import pack
+import sys
+
+def to_java_string(string) -> bytes:
+  string_bytes = string.encode("utf-8")
+  # Java constant pool string entries are prefixed by 0x01 and 16-bit big-endian string length.
+  return pack(">BH", 1, len(string_bytes)) + string_bytes
+
+class_file = Path(sys.argv[1])
+
+clazz = class_file.read_bytes()
+
+# We want to fix these package names so they work with the open-source Java EE releases instead of OpenJDK 8.
+patches = [
+  ( "com/sun/xml/internal/ws/developer/WSBindingProvider", "com/sun/xml/ws/developer/WSBindingProvider" ),
+  ( "com/sun/xml/internal/ws/api/message/Header", "com/sun/xml/ws/api/message/Header" ),
+  ( "com.sun.xml.internal.ws.transport.http.client.streaming.chunk.size", "com.sun.xml.ws.transport.http.client.streaming.chunk.size" ),
+  ( "com/sun/xml/internal/ws/api/message/Headers", "com/sun/xml/ws/api/message/Headers" ),
+  ( "(Lorg/w3c/dom/Element;)Lcom/sun/xml/internal/ws/api/message/Header;", "(Lorg/w3c/dom/Element;)Lcom/sun/xml/ws/api/message/Header;" ),
+  ( "([Lcom/sun/xml/internal/ws/api/message/Header;)V", "([Lcom/sun/xml/ws/api/message/Header;)V" ),
+]
+
+for old, new in patches:
+  old_java = to_java_string(old)
+  new_java = to_java_string(new)
+  assert old_java in clazz
+  clazz = clazz.replace(old_java, new_java)
+  assert old_java not in clazz
+  assert new_java in clazz
+
+assert b".internal." not in clazz
+
+class_file.write_bytes(clazz)
+
diff --git a/pkgs/by-name/an/anytype/package.nix b/pkgs/by-name/an/anytype/package.nix
index b995607975c9..d65c2f38e676 100644
--- a/pkgs/by-name/an/anytype/package.nix
+++ b/pkgs/by-name/an/anytype/package.nix
@@ -2,17 +2,15 @@
 
 let
   pname = "anytype";
-  version = "0.37.3";
+  version = "0.38.0";
   name = "Anytype-${version}";
-  nameExecutable = pname;
   src = fetchurl {
     url = "https://github.com/anyproto/anytype-ts/releases/download/v${version}/${name}.AppImage";
     name = "Anytype-${version}.AppImage";
-    sha256 = "sha256-W3p67L07XOEtXYluI+TvggXBdaNRadypZc9MO6QTh4M=";
+    hash = "sha256-tcAOj7omrhyyG8elnAvbj/FtYaYOBeBkclpPHhSoass=";
   };
   appimageContents = appimageTools.extractType2 { inherit name src; };
-in
-appimageTools.wrapType2 {
+in appimageTools.wrapType2 {
   inherit name src;
 
   extraPkgs = pkgs: (appimageTools.defaultFhsEnvArgs.multiPkgs pkgs)
diff --git a/pkgs/by-name/ap/approxmc/package.nix b/pkgs/by-name/ap/approxmc/package.nix
new file mode 100644
index 000000000000..f9222f66d500
--- /dev/null
+++ b/pkgs/by-name/ap/approxmc/package.nix
@@ -0,0 +1,43 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, zlib
+, gmp
+, cryptominisat
+, boost
+, arjun-cnf
+, louvain-community
+, lib
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "approxmc";
+  version = "4.1.23";
+
+  src = fetchFromGitHub {
+    owner = "meelgroup";
+    repo = "approxmc";
+    rev = finalAttrs.version;
+    hash = "sha256-pE2m6Cc2u53H/5CM+2JuQxZOhjhHUZOi0kn23CJmALM=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [
+    zlib
+    gmp
+    cryptominisat
+    boost
+    arjun-cnf
+    louvain-community
+  ];
+
+  meta = with lib; {
+    description = "Approximate Model Counter";
+    homepage = "https://github.com/meelgroup/approxmc";
+    license = licenses.mit;
+    maintainers = with maintainers; [ t4ccer ];
+    platforms = platforms.linux;
+    mainProgram = "approxmc";
+  };
+})
diff --git a/pkgs/by-name/ap/apt/package.nix b/pkgs/by-name/ap/apt/package.nix
index d776493c04b9..d797cc72b639 100644
--- a/pkgs/by-name/ap/apt/package.nix
+++ b/pkgs/by-name/ap/apt/package.nix
@@ -33,11 +33,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "apt";
-  version = "2.7.8";
+  version = "2.7.10";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/a/apt/apt_${finalAttrs.version}.tar.xz";
-    hash = "sha256-nAmiwfGEiftDDWFrk+bfWhX2FHOFanidXjzOCtIZXcY=";
+    hash = "sha256-VUZsSEqmQJesIPU4tK4ELn9i5hFiBUGNEepPySIdgH4=";
   };
 
   # cycle detection; lib can't be split
diff --git a/pkgs/by-name/ar/arjun-cnf/fix-red-clause.patch b/pkgs/by-name/ar/arjun-cnf/fix-red-clause.patch
new file mode 100644
index 000000000000..a7f4d6755431
--- /dev/null
+++ b/pkgs/by-name/ar/arjun-cnf/fix-red-clause.patch
@@ -0,0 +1,28 @@
+diff --git a/src/arjun.cpp b/src/arjun.cpp
+index d6ad786..119a267 100644
+--- a/src/arjun.cpp
++++ b/src/arjun.cpp
+@@ -98,6 +98,11 @@ DLL_PUBLIC bool Arjun::add_clause(const vector<CMSat::Lit>& lits)
+     return arjdata->common.solver->add_clause(lits);
+ }
+ 
++DLL_PUBLIC bool Arjun::add_red_clause(const vector<CMSat::Lit>& lits)
++{
++    return arjdata->common.solver->add_red_clause(lits);
++}
++
+ DLL_PUBLIC bool Arjun::add_xor_clause(const vector<uint32_t>& vars, bool rhs)
+ {
+     assert(false && "Funnily enough this does NOT work. The XORs would generate a BVA variable, and that would then not be returned as part of the simplified CNF. We could calculate a smaller independent set, but that's all.");
+diff --git a/src/arjun.h b/src/arjun.h
+index a39070c..907472a 100644
+--- a/src/arjun.h
++++ b/src/arjun.h
+@@ -61,6 +61,7 @@ namespace ArjunNS {
+         void new_var();
+         bool add_xor_clause(const std::vector<uint32_t>& vars, bool rhs);
+         bool add_clause(const std::vector<CMSat::Lit>& lits);
++        bool add_red_clause(const std::vector<CMSat::Lit>& lits);
+         bool add_bnn_clause(
+             const std::vector<CMSat::Lit>& lits,
+             signed cutoff,
diff --git a/pkgs/by-name/ar/arjun-cnf/package.nix b/pkgs/by-name/ar/arjun-cnf/package.nix
new file mode 100644
index 000000000000..48e18272fda5
--- /dev/null
+++ b/pkgs/by-name/ar/arjun-cnf/package.nix
@@ -0,0 +1,48 @@
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, cryptominisat
+, boost
+, louvain-community
+, lib
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "arjun-cnf";
+  version = "2.5.2";
+
+  src = fetchFromGitHub {
+    owner = "meelgroup";
+    repo = "arjun";
+    rev = finalAttrs.version;
+    hash = "sha256-5duc05s654HLjbf+dPgyMn6QUVvB0vLji3M4S2o/QYU=";
+  };
+
+  # Can be removed after next release
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/meelgroup/arjun/commit/34188760f1ab4b1b557c45ccaee8d2b9b6f0b901.patch";
+      hash = "sha256-E/yk2ohHP2BAFg353r8EU01bZCqeEjvpJCrBsxPiOWM=";
+    })
+    # Based on https://github.com/meelgroup/arjun/commit/99c4ed4ad820674632c5d9bbcc98c001f8cac98f
+    ./fix-red-clause.patch
+  ];
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [
+    boost
+    cryptominisat
+    louvain-community
+  ];
+
+  meta = with lib; {
+    description = "CNF minimizer and minimal independent set calculator";
+    homepage = "https://github.com/meelgroup/arjun";
+    license = licenses.mit;
+    maintainers = with maintainers; [ t4ccer ];
+    platforms = platforms.linux;
+    mainProgram = "arjun";
+  };
+})
diff --git a/pkgs/by-name/ar/arxiv-latex-cleaner/package.nix b/pkgs/by-name/ar/arxiv-latex-cleaner/package.nix
index c1f4a8a3d75b..d2d75a2d284a 100644
--- a/pkgs/by-name/ar/arxiv-latex-cleaner/package.nix
+++ b/pkgs/by-name/ar/arxiv-latex-cleaner/package.nix
@@ -5,13 +5,13 @@
 }:
 python3Packages.buildPythonApplication rec {
   pname = "arxiv-latex-cleaner";
-  version = "1.0.1";
+  version = "1.0.3";
 
   src = fetchFromGitHub {
     owner = "google-research";
     repo = "arxiv-latex-cleaner";
-    rev = "v${version}";
-    hash = "sha256-1IWSDKEoAM4hBKAEEcPq7X89WYDprifDL2GTEJQtdcQ=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-kM1eCzXipJ6GuYFA9Na2C0HtwHLotmE63nyUZ+9wkkk=";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/by-name/as/ast-grep/package.nix b/pkgs/by-name/as/ast-grep/package.nix
index cbc30af9e69a..67afe28bc346 100644
--- a/pkgs/by-name/as/ast-grep/package.nix
+++ b/pkgs/by-name/as/ast-grep/package.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ast-grep";
-  version = "0.17.0";
+  version = "0.18.1";
 
   src = fetchFromGitHub {
     owner = "ast-grep";
     repo = "ast-grep";
     rev = version;
-    hash = "sha256-/lWvFYSE4gFbVPlJMROGcb86mVviGdh1tFAY74qTTX4=";
+    hash = "sha256-hr6VAqBsv3szVClR93y5ickkrNKjvl6BfzqKA3zc6vM=";
   };
 
-  cargoHash = "sha256-r1vfh2JtBjWFgXrijlFxPyRr8LRAIogiA2TZHI5MJRM=";
+  cargoHash = "sha256-ttJMtaQfVnFj4/wUz4fn8X/EmUwW+usqhmWhy4Y0AB8=";
 
   # Work around https://github.com/NixOS/nixpkgs/issues/166205.
   env = lib.optionalAttrs stdenv.cc.isClang {
diff --git a/pkgs/by-name/at/athens/package.nix b/pkgs/by-name/at/athens/package.nix
index e6095f7691a1..c53c571c036f 100644
--- a/pkgs/by-name/at/athens/package.nix
+++ b/pkgs/by-name/at/athens/package.nix
@@ -18,7 +18,7 @@ buildGoModule rec {
   vendorHash = "sha256-8+PdkanodNZW/xeFf+tDm3Ej7DRSpBBtiT/CqjnWthw=";
 
   CGO_ENABLED = "0";
-  ldflags = [ "-s" "-w" "-buildid=" "-X github.com/gomods/athens/pkg/build.version=${version}" ];
+  ldflags = [ "-s" "-w" "-X github.com/gomods/athens/pkg/build.version=${version}" ];
 
   subPackages = [ "cmd/proxy" ];
 
diff --git a/pkgs/by-name/at/atlauncher/package.nix b/pkgs/by-name/at/atlauncher/package.nix
index c9c4308f4f8e..c9fef19a0455 100644
--- a/pkgs/by-name/at/atlauncher/package.nix
+++ b/pkgs/by-name/at/atlauncher/package.nix
@@ -16,7 +16,6 @@ stdenv.mkDerivation (finalAttrs: {
 
   dontUnpack = true;
 
-  buildInputs = [ ];
   nativeBuildInputs = [ copyDesktopItems makeWrapper ];
 
   installPhase = ''
@@ -32,29 +31,29 @@ stdenv.mkDerivation (finalAttrs: {
       --add-flags "--no-launcher-update"
 
     mkdir -p $out/share/icons/hicolor/scalable/apps
-    cp $ICON $out/share/icons/hicolor/scalable/apps/${finalAttrs.pname}.svg
+    cp $ICON $out/share/icons/hicolor/scalable/apps/atlauncher.svg
 
     runHook postInstall
   '';
 
   desktopItems = [
     (makeDesktopItem {
-      name = finalAttrs.pname;
-      exec = finalAttrs.pname;
-      icon = finalAttrs.pname;
-      desktopName = "ATLauncher";
       categories = [ "Game" ];
+      desktopName = "ATLauncher";
+      exec = "atlauncher";
+      icon = "atlauncher";
+      name = "atlauncher";
     })
   ];
 
   meta = with lib; {
     description = "A simple and easy to use Minecraft launcher which contains many different modpacks for you to choose from and play";
     downloadPage = "https://atlauncher.com/downloads";
-    homepage = "https://atlauncher.com/";
+    homepage = "https://atlauncher.com";
     license = licenses.gpl3;
+    mainProgram = "atlauncher";
     maintainers = [ maintainers.getpsyched ];
     platforms = platforms.all;
-    mainProgram = "atlauncher";
     sourceProvenance = [ sourceTypes.binaryBytecode ];
   };
 })
diff --git a/pkgs/servers/audiobookshelf/default.nix b/pkgs/by-name/au/audiobookshelf/package.nix
index 52775068fba2..01d49a5fee69 100644
--- a/pkgs/servers/audiobookshelf/default.nix
+++ b/pkgs/by-name/au/audiobookshelf/package.nix
@@ -15,19 +15,19 @@
 let
   nodejs = nodejs_18;
 
+  source = builtins.fromJSON (builtins.readFile ./source.json);
   pname = "audiobookshelf";
-  version = "2.7.1";
 
   src = fetchFromGitHub {
     owner = "advplyr";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-ROxVAevnxCyND/h1yyXfUeK9v5SEULL8gkR3flTmmW8=";
+    rev = "refs/tags/v${source.version}";
+    inherit (source) hash;
   };
 
   client = buildNpmPackage {
     pname = "${pname}-client";
-    inherit version;
+    inherit (source) version;
 
     src = runCommand "cp-source" {} ''
       cp -r ${src}/client $out
@@ -36,7 +36,7 @@ let
     NODE_OPTIONS = "--openssl-legacy-provider";
 
     npmBuildScript = "generate";
-    npmDepsHash = "sha256-2t/+IpmgTZglh3SSuYZNUvT1RZCDZGVT2gS57KU1mqA=";
+    npmDepsHash = source.clientDepsHash;
   };
 
   wrapper = import ./wrapper.nix {
@@ -44,14 +44,15 @@ let
   };
 
 in buildNpmPackage {
-  inherit pname version src;
+  inherit pname src;
+  inherit (source) version;
 
   buildInputs = [ util-linux ];
   nativeBuildInputs = [ python3 ];
 
   dontNpmBuild = true;
   npmInstallFlags = [ "--only-production" ];
-  npmDepsHash = "sha256-1VVFGc4RPE0FHQX1PeRnvU3cAq9eRYGfJ/0GzMy7Fh4=";
+  npmDepsHash = source.depsHash;
 
   installPhase = ''
     mkdir -p $out/opt/client
@@ -65,12 +66,14 @@ in buildNpmPackage {
     chmod +x $out/bin/${pname}
   '';
 
+  passthru.updateScript = ./update.nu;
+
   meta = with lib; {
     homepage = "https://www.audiobookshelf.org/";
     description = "Self-hosted audiobook and podcast server";
-    changelog = "https://github.com/advplyr/audiobookshelf/releases/tag/v${version}";
+    changelog = "https://github.com/advplyr/audiobookshelf/releases/tag/v${source.version}";
     license = licenses.gpl3;
-    maintainers = [ maintainers.jvanbruegge ];
+    maintainers = [ maintainers.jvanbruegge maintainers.adamcstephens ];
     platforms = platforms.linux;
     mainProgram = "audiobookshelf";
   };
diff --git a/pkgs/by-name/au/audiobookshelf/source.json b/pkgs/by-name/au/audiobookshelf/source.json
new file mode 100644
index 000000000000..74a387587170
--- /dev/null
+++ b/pkgs/by-name/au/audiobookshelf/source.json
@@ -0,0 +1,9 @@
+{
+  "owner": "advplyr",
+  "repo": "audiobookshelf",
+  "rev": "90f4833c9e0957f08799af15966d1909516b335e",
+  "hash": "sha256-m+CwUV3Bu9sHvRKCA1vFXYYRx48bxZ8N3BornO1tLQ0=",
+  "version": "2.7.2",
+  "depsHash": "sha256-1623oXtkOp43xQvHI3GbJpEQLvgr5WD5FpfNO+d0RR8=",
+  "clientDepsHash": "sha256-ugf9C/L5aBTO7gCy561kV06Ihb/mg/ZW916NKngIYXI="
+}
diff --git a/pkgs/by-name/au/audiobookshelf/update.nu b/pkgs/by-name/au/audiobookshelf/update.nu
new file mode 100755
index 000000000000..25166c9cf1d1
--- /dev/null
+++ b/pkgs/by-name/au/audiobookshelf/update.nu
@@ -0,0 +1,30 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i nu -p nushell common-updater-scripts prefetch-npm-deps
+
+def main [] {
+  let sourceFile = $"(pwd)/pkgs/by-name/au/audiobookshelf/source.json"
+  let tags = list-git-tags --url=https://github.com/advplyr/audiobookshelf | lines | sort --natural | str replace v ''
+
+  let latest_tag = $tags | last
+  let current_version = open $sourceFile | get version
+
+  if $latest_tag != $current_version {
+    let source = nix-prefetch-github advplyr audiobookshelf --rev $"v($latest_tag)" | from json | merge { version: $latest_tag, depsHash: "", clientDepsHash: ""}
+    $source | save --force $sourceFile
+
+    let srcPath = nix-build $env.PWD -A audiobookshelf.src | complete | get stdout | lines | first
+
+    print $srcPath
+    ls $srcPath
+
+    $source | merge {
+      depsHash: (prefetch-npm-deps $"($srcPath)/package-lock.json"),
+      clientDepsHash: (prefetch-npm-deps $"($srcPath)/client/package-lock.json")
+    } | save --force $sourceFile
+
+    # appease the editorconfig CI check
+    echo "\n" | save --append $sourceFile
+  }
+
+  {before: $current_version, after: $latest_tag}
+}
diff --git a/pkgs/servers/audiobookshelf/wrapper.nix b/pkgs/by-name/au/audiobookshelf/wrapper.nix
index 787ee5ac4917..787ee5ac4917 100644
--- a/pkgs/servers/audiobookshelf/wrapper.nix
+++ b/pkgs/by-name/au/audiobookshelf/wrapper.nix
diff --git a/pkgs/by-name/au/authentik/ldap.nix b/pkgs/by-name/au/authentik/ldap.nix
new file mode 100644
index 000000000000..1745e5556d3c
--- /dev/null
+++ b/pkgs/by-name/au/authentik/ldap.nix
@@ -0,0 +1,18 @@
+{ lib, buildGoModule, authentik }:
+
+buildGoModule {
+  pname = "authentik-ldap-outpost";
+  inherit (authentik) version src;
+
+  vendorHash = "sha256-74rSuZrO5c7mjhHh0iQlJEkOslsFrcDb1aRXXC4RsUM=";
+
+  CGO_ENABLED = 0;
+
+  subPackages = [ "cmd/ldap" ];
+
+  meta = authentik.meta // {
+    description = "The authentik ldap outpost. Needed for the extendal ldap API.";
+    homepage = "https://goauthentik.io/docs/providers/ldap/";
+    mainProgram = "ldap";
+  };
+}
diff --git a/pkgs/by-name/au/authentik/outposts.nix b/pkgs/by-name/au/authentik/outposts.nix
new file mode 100644
index 000000000000..05649628b3e8
--- /dev/null
+++ b/pkgs/by-name/au/authentik/outposts.nix
@@ -0,0 +1,5 @@
+{ callPackage }:
+
+{
+  ldap = callPackage ./ldap.nix { };
+}
diff --git a/pkgs/by-name/au/authentik/package.nix b/pkgs/by-name/au/authentik/package.nix
new file mode 100644
index 000000000000..a4de19b066d7
--- /dev/null
+++ b/pkgs/by-name/au/authentik/package.nix
@@ -0,0 +1,254 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, buildNpmPackage
+, buildGoModule
+, runCommand
+, openapi-generator-cli
+, nodejs
+, python3
+, codespell
+, makeWrapper }:
+
+let
+  version = "2023.10.7";
+
+  src = fetchFromGitHub {
+    owner = "goauthentik";
+    repo = "authentik";
+    rev = "version/${version}";
+    hash = "sha256-+1IdXRt28UZ2KTa0zsmjneNUOcutP99UUwqcYyVyqTI=";
+  };
+
+  meta = with lib; {
+    description = "The authentication glue you need";
+    changelog = "https://github.com/goauthentik/authentik/releases/tag/version%2F${version}";
+    homepage = "https://goauthentik.io/";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ jvanbruegge ];
+  };
+
+  website = buildNpmPackage {
+    pname = "authentik-website";
+    inherit version src meta;
+    npmDepsHash = "sha256-4dgFxEvMnp+35nSQNsEchtN1qoS5X2KzEbLPvMnyR+k=";
+
+    NODE_ENV = "production";
+    NODE_OPTIONS = "--openssl-legacy-provider";
+
+    postPatch = ''
+      cd website
+    '';
+
+    installPhase = ''
+      cp -r help $out
+    '';
+
+    npmInstallFlags = [ "--include=dev" ];
+    npmBuildScript = "build-docs-only";
+  };
+
+  clientapi = stdenvNoCC.mkDerivation {
+    pname = "authentik-client-api";
+    inherit version src meta;
+
+    postPatch = ''
+      rm Makefile
+
+      substituteInPlace ./scripts/api-ts-config.yaml \
+        --replace-fail '/local' "$(pwd)/"
+    '';
+
+    nativeBuildInputs = [ openapi-generator-cli ];
+    buildPhase = ''
+      runHook preBuild
+      openapi-generator-cli generate -i ./schema.yml \
+      -g typescript-fetch -o $out \
+      -c ./scripts/api-ts-config.yaml \
+        --additional-properties=npmVersion=${nodejs.pkgs.npm.version} \
+        --git-repo-id authentik --git-user-id goauthentik
+      runHook postBuild
+    '';
+  };
+
+  webui = buildNpmPackage {
+    pname = "authentik-webui";
+    inherit version meta;
+
+    src = runCommand "authentik-webui-source" {} ''
+      mkdir -p $out/web/node_modules/@goauthentik/
+      cp -r ${src}/web $out/
+      ln -s ${src}/website $out/
+      ln -s ${clientapi} $out/web/node_modules/@goauthentik/api
+    '';
+    npmDepsHash = "sha256-5aCKlArtoEijGqeYiY3zoV0Qo7/Xt5hSXbmy2uYZpok=";
+
+    postPatch = ''
+      cd web
+    '';
+
+    installPhase = ''
+      runHook preInstall
+      mkdir $out
+      cp -r dist $out/dist
+      cp -r authentik $out/authentik
+      runHook postInstall
+    '';
+
+    NODE_ENV = "production";
+    NODE_OPTIONS = "--openssl-legacy-provider";
+
+    npmInstallFlags = [ "--include=dev" ];
+  };
+
+  python = python3.override {
+    self = python;
+    packageOverrides = final: prev: {
+      authentik-django = prev.buildPythonPackage {
+        pname = "authentik-django";
+        inherit version src meta;
+        pyproject = true;
+
+        postPatch = ''
+          substituteInPlace authentik/root/settings.py \
+            --replace-fail 'Path(__file__).absolute().parent.parent.parent' "\"$out\""
+          substituteInPlace authentik/lib/default.yml \
+            --replace-fail '/blueprints' "$out/blueprints"
+          substituteInPlace pyproject.toml \
+            --replace-fail 'dumb-init = "*"' "" \
+            --replace-fail 'djangorestframework-guardian' 'djangorestframework-guardian2'
+        '';
+
+        nativeBuildInputs = [ prev.poetry-core ];
+
+        propagatedBuildInputs = with prev; [
+          argon2-cffi
+          celery
+          channels
+          channels-redis
+          colorama
+          dacite
+          daphne
+          deepmerge
+          defusedxml
+          django
+          django-filter
+          django-guardian
+          django-model-utils
+          django-prometheus
+          django-redis
+          djangorestframework
+          djangorestframework-guardian2
+          docker
+          drf-spectacular
+          duo-client
+          facebook-sdk
+          flower
+          geoip2
+          gunicorn
+          httptools
+          kubernetes
+          ldap3
+          lxml
+          opencontainers
+          packaging
+          paramiko
+          psycopg
+          pycryptodome
+          pydantic
+          pydantic-scim
+          pyjwt
+          pyyaml
+          requests-oauthlib
+          sentry-sdk
+          structlog
+          swagger-spec-validator
+          twilio
+          twisted
+          ua-parser
+          urllib3
+          uvicorn
+          uvloop
+          watchdog
+          webauthn
+          websockets
+          wsproto
+          xmlsec
+          zxcvbn
+          jsonpatch
+        ] ++ [
+          codespell
+        ];
+
+        postInstall = ''
+          mkdir -p $out/web $out/website
+          cp -r lifecycle manage.py $out/${prev.python.sitePackages}/
+          cp -r blueprints $out/
+          cp -r ${webui}/dist ${webui}/authentik $out/web/
+          cp -r ${website} $out/website/help
+          ln -s $out/${prev.python.sitePackages}/lifecycle $out/lifecycle
+        '';
+      };
+    };
+  };
+
+  inherit (python.pkgs) authentik-django;
+
+  proxy = buildGoModule {
+    pname = "authentik-proxy";
+    inherit version src meta;
+
+    postPatch = ''
+      substituteInPlace internal/gounicorn/gounicorn.go \
+        --replace-fail './lifecycle' "${authentik-django}/lifecycle"
+      substituteInPlace web/static.go \
+        --replace-fail './web' "${authentik-django}/web"
+      substituteInPlace internal/web/static.go \
+        --replace-fail './web' "${authentik-django}/web"
+    '';
+
+    CGO_ENABLED = 0;
+
+    vendorHash = "sha256-74rSuZrO5c7mjhHh0iQlJEkOslsFrcDb1aRXXC4RsUM=";
+
+    postInstall = ''
+      mv $out/bin/server $out/bin/authentik
+    '';
+
+    subPackages = [ "cmd/server" ];
+  };
+
+in stdenvNoCC.mkDerivation {
+  pname = "authentik";
+  inherit src version;
+
+  postPatch = ''
+    rm Makefile
+    patchShebangs lifecycle/ak
+
+    # This causes issues in systemd services
+    substituteInPlace lifecycle/ak \
+      --replace-fail 'printf' '>&2 printf' \
+      --replace-fail '> /dev/stderr' ""
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    cp -r lifecycle/ak $out/bin/
+
+    wrapProgram $out/bin/ak \
+      --prefix PATH : ${lib.makeBinPath [ (python.withPackages (ps: [ps.authentik-django])) proxy ]} \
+      --set TMPDIR /dev/shm \
+      --set PYTHONDONTWRITEBYTECODE 1 \
+      --set PYTHONUNBUFFERED 1
+    runHook postInstall
+  '';
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  meta = meta // {
+    mainProgram = "ak";
+  };
+}
diff --git a/pkgs/by-name/aw/await/package.nix b/pkgs/by-name/aw/await/package.nix
new file mode 100644
index 000000000000..40376c646e67
--- /dev/null
+++ b/pkgs/by-name/aw/await/package.nix
@@ -0,0 +1,38 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "await";
+  version = "0.999";
+
+  src = fetchFromGitHub {
+    owner = "slavaGanzin";
+    repo = "await";
+    rev = "v${version}";
+    hash = "sha256-z178TKA0x6UnpBQaA8dig2FLeJKGxPndfvwtmylAD90=";
+  };
+
+  buildPhase = ''
+    runHook preBuild
+    $CC await.c -o await -l pthread
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm755 await -t $out/bin
+    install -Dm444 LICENSE -t $out/share/licenses/await
+    install -Dm444 README.md -t $out/share/doc/await
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Small binary that runs a list of commands in parallel and awaits termination";
+    homepage = "https://await-cli.app";
+    license = licenses.mit;
+    maintainers = with maintainers; [ chewblacka ];
+    platforms = platforms.all;
+    mainProgram = "await";
+  };
+}
diff --git a/pkgs/by-name/ay/ayatana-indicator-datetime/package.nix b/pkgs/by-name/ay/ayatana-indicator-datetime/package.nix
new file mode 100644
index 000000000000..ecff853423fc
--- /dev/null
+++ b/pkgs/by-name/ay/ayatana-indicator-datetime/package.nix
@@ -0,0 +1,163 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, fetchpatch
+, gitUpdater
+, nixosTests
+, ayatana-indicator-messages
+, cmake
+, dbus
+, dbus-test-runner
+, evolution-data-server
+, glib
+, gst_all_1
+, gtest
+, intltool
+, libaccounts-glib
+, libayatana-common
+, libical
+, libnotify
+, libuuid
+, lomiri
+, pkg-config
+, properties-cpp
+, python3
+, systemd
+, tzdata
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "ayatana-indicator-datetime";
+  version = "23.10.1";
+
+  src = fetchFromGitHub {
+    owner = "AyatanaIndicators";
+    repo = "ayatana-indicator-datetime";
+    # Release wasn't tagged?
+    # https://github.com/AyatanaIndicators/ayatana-indicator-datetime/issues/121
+    rev = "d8debd706fe92de09e5c654c4ea2cc5dd5ce0529";
+    hash = "sha256-cm1zhG9TODGe79n/fGuyVnWL/sjxUc3ZCu9FhqA1NLE=";
+  };
+
+  patches = [
+    # Fix test-menus building & running
+    # Remove when https://github.com/AyatanaIndicators/ayatana-indicator-datetime/pull/122 merged & in release
+    (fetchpatch {
+      name = "0001-ayatana-indicator-datetime-tests-test-menu-Fix-build.patch";
+      url = "https://github.com/AyatanaIndicators/ayatana-indicator-datetime/commit/a6527e90d855d43f43e1ff9bccda2fa22d3c60ab.patch";
+      hash = "sha256-RZY51UnrMcXbZbwyuCHSxY6toGByaObSEntVnIMz7+w=";
+    })
+    (fetchpatch {
+      name = "0002-ayatana-indicator-datetime-tests-Fix-show_alarms-tests.patch";
+      url = "https://github.com/AyatanaIndicators/ayatana-indicator-datetime/commit/5186b51c004ec25e8a44fe5918bceb3d45abb108.patch";
+      hash = "sha256-goVcpN0MNOic8mpdJdhjgS9LHQLVEZT6ZEg1PqLvmsE=";
+    })
+  ];
+
+  postPatch = ''
+    # Queries systemd user unit dir via pkg_get_variable, can't override prefix
+    substituteInPlace data/CMakeLists.txt \
+      --replace 'pkg_get_variable(SYSTEMD_USER_DIR systemd systemduserunitdir)' 'set(SYSTEMD_USER_DIR ''${CMAKE_INSTALL_PREFIX}/lib/systemd/user)' \
+      --replace '/etc' "\''${CMAKE_INSTALL_SYSCONFDIR}"
+
+    # Looking for Lomiri schemas for code generation
+    substituteInPlace src/CMakeLists.txt \
+      --replace '/usr/share/accountsservice' '${lomiri.lomiri-schemas}/share/accountsservice'
+  '';
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    cmake
+    glib # for schema hook
+    intltool
+    pkg-config
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    ayatana-indicator-messages
+    evolution-data-server
+    glib
+    libaccounts-glib
+    libayatana-common
+    libical
+    libnotify
+    libuuid
+    properties-cpp
+    systemd
+  ] ++ (with gst_all_1; [
+    gstreamer
+    gst-plugins-base
+    gst-plugins-good
+  ]) ++ (with lomiri; [
+    cmake-extras
+    lomiri-schemas
+    lomiri-sounds
+    lomiri-url-dispatcher
+  ]);
+
+  nativeCheckInputs = [
+    dbus
+    (python3.withPackages (ps: with ps; [
+      python-dbusmock
+    ]))
+    tzdata
+  ];
+
+  checkInputs = [
+    dbus-test-runner
+    gtest
+  ];
+
+  cmakeFlags = [
+    (lib.cmakeBool "GSETTINGS_LOCALINSTALL" true)
+    (lib.cmakeBool "GSETTINGS_COMPILE" true)
+    (lib.cmakeBool "ENABLE_LOMIRI_FEATURES" true)
+    (lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
+    (lib.cmakeFeature "CMAKE_CTEST_ARGUMENTS" (lib.concatStringsSep ";" [
+      # Exclude tests
+      "-E" (lib.strings.escapeShellArg "(${lib.concatStringsSep "|" [
+        # evolution-data-server tests have been silently failing on upstream CI for awhile,
+        # 23.10.0 release has fixed the silentness but left the tests broken.
+        # https://github.com/AyatanaIndicators/ayatana-indicator-datetime/commit/3e65062b5bb0957b5bb683ff04cb658d9d530477
+        "^test-eds-ics"
+      ]})")
+    ]))
+  ];
+
+  doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
+
+  enableParallelChecking = false;
+
+  preCheck = ''
+    export XDG_DATA_DIRS=${glib.passthru.getSchemaDataDirPath libayatana-common}
+  '';
+
+  passthru = {
+    ayatana-indicators = [
+      "ayatana-indicator-datetime"
+    ];
+    tests = {
+      inherit (nixosTests) ayatana-indicators;
+    };
+    # Latest release wasn't tagged, Don't try to bump down
+    #updateScript = gitUpdater { };
+  };
+
+  meta = with lib; {
+    description = "Ayatana Indicator providing clock and calendar";
+    longDescription = ''
+      This Ayatana Indicator provides a combined calendar, clock, alarm and
+      event management tool.
+    '';
+    homepage = "https://github.com/AyatanaIndicators/ayatana-indicator-datetime";
+    # Latest release wasn't tagged
+    # changelog = "https://github.com/AyatanaIndicators/ayatana-indicator-datetime/blob/${finalAttrs.version}/ChangeLog";
+    changelog = "https://github.com/AyatanaIndicators/ayatana-indicator-datetime/blob/${finalAttrs.finalPackage.src.rev}/ChangeLog";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ OPNA2608 ];
+    platforms = platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/ba/bankstown-lv2/package.nix b/pkgs/by-name/ba/bankstown-lv2/package.nix
new file mode 100644
index 000000000000..2ee7b4486e01
--- /dev/null
+++ b/pkgs/by-name/ba/bankstown-lv2/package.nix
@@ -0,0 +1,34 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "bankstown-lv2";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "chadmed";
+    repo = "bankstown";
+    rev = version;
+    hash = "sha256-IThXEY+mvT2MCw0PSWU/182xbUafd6dtm6hNjieLlKg=";
+  };
+
+  cargoSha256 = "sha256-yRzM4tcYc6mweTpLnnlCeKgP00L2wRgHamtUzK9Kstc=";
+
+  installPhase = ''
+    export LIBDIR=$out/lib
+    mkdir -p $LIBDIR
+
+    make
+    make install
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/chadmed/bankstown";
+    description = "Halfway-decent three-stage psychoacoustic bass approximation";
+    license = licenses.mit;
+    maintainers = with maintainers; [ yuka ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/be/beekeeper-studio/package.nix b/pkgs/by-name/be/beekeeper-studio/package.nix
index 6d7353ab9b43..ed40f58697cb 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.0.3";
+  version = "4.1.13";
 
   plat = {
     aarch64-linux = "-arm64";
@@ -15,8 +15,8 @@ let
   }.${stdenv.hostPlatform.system};
 
   hash = {
-    aarch64-linux = "sha256-PdRGZedNMZtGPI6Za2T94yKXvk6JoMoAot/kFKsBqQs=";
-    x86_64-linux = "sha256-P2HlCb0dai4cJlKcT9LLQ+njViD+oHS3KI2YdR5jR44=";
+    aarch64-linux = "sha256-8gcxYQ6ZvYC42V/vShFgalJtm8SGZRwtUfwUF9ZirBo=";
+    x86_64-linux = "sha256-Yfpm6//hhYVKX3YipzmFj3NgEsL2h3eW+9yC0yYiDgk=";
   }.${stdenv.hostPlatform.system};
 
   src = fetchurl {
diff --git a/pkgs/by-name/bi/bitbake-language-server/package.nix b/pkgs/by-name/bi/bitbake-language-server/package.nix
index 97cc8a63fc66..68b536d1319c 100644
--- a/pkgs/by-name/bi/bitbake-language-server/package.nix
+++ b/pkgs/by-name/bi/bitbake-language-server/package.nix
@@ -6,14 +6,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "bitbake-language-server";
-  version = "0.0.7";
+  version = "0.0.8";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "Freed-Wu";
     repo = pname;
     rev = version;
-    hash = "sha256-FQKZtrzfjEkAIyzrJvI7qiB4gV2yAH9w1fwO6oLPhNc=";
+    hash = "sha256-WJpa2LP95vrJG/OjiLSx8zEPO5ZOw66M5s3r2dufQJA=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
diff --git a/pkgs/by-name/bi/bitmagnet/package.nix b/pkgs/by-name/bi/bitmagnet/package.nix
index e5af5e0bd43b..58ea73294d38 100644
--- a/pkgs/by-name/bi/bitmagnet/package.nix
+++ b/pkgs/by-name/bi/bitmagnet/package.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "bitmagnet";
-  version = "0.4.1";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "bitmagnet-io";
     repo = "bitmagnet";
     rev = "v${version}";
-    hash = "sha256-Geukd4JYwmdG7M+HDCCqpiUjor1TWsqBY42ACd+LasU=";
+    hash = "sha256-tqxmPr7O3WkFgo8tYk4iFr/k76Z5kq75YF+6uDuBOik=";
   };
 
-  vendorHash = "sha256-TbfbrvXbO+eOb1Ot/gWRBjggTj9jkSGulHIJdziqsVc=";
+  vendorHash = "sha256-YfsSz72CeHdrh5610Ilo1NYxlCT993hxWRWh0OsvEQc=";
 
   ldflags = [ "-s" "-w" ];
 
diff --git a/pkgs/by-name/bl/bluetuith/package.nix b/pkgs/by-name/bl/bluetuith/package.nix
index 3eaebf7cd5d4..548c103bbbf4 100644
--- a/pkgs/by-name/bl/bluetuith/package.nix
+++ b/pkgs/by-name/bl/bluetuith/package.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "bluetuith";
-  version = "0.2.0";
+  version = "0.2.1";
 
   src = fetchFromGitHub {
     owner = "darkhz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-5Jn5qkCUj2ohpZU+XqR90Su2svcLqW+hW6kmeEVfrtI=";
+    sha256 = "sha256-KeIhul6xeak2UR+MadKC2j1uHiPwdsh5bjGr1uvOL/4=";
   };
 
-  vendorHash = "sha256-pYVEFKLPfstWWO6ypgv7ntAaE1Wmq2XKuZC2ccMa8Vc=";
+  vendorHash = "sha256-XthLmfHmkTsI4l5Sz5P1qeuxamVTLX7i+Wf73n7iv1M=";
 
   CGO_ENABLED = 0;
 
diff --git a/pkgs/by-name/bl/bluez/package.nix b/pkgs/by-name/bl/bluez/package.nix
new file mode 100644
index 000000000000..4704ecd07896
--- /dev/null
+++ b/pkgs/by-name/bl/bluez/package.nix
@@ -0,0 +1,158 @@
+{ lib
+, stdenv
+, alsa-lib
+, dbus
+, docutils
+, ell
+, enableExperimental ? false
+, fetchpatch
+, fetchurl
+, glib
+, json_c
+, libical
+, pkg-config
+, python3
+, readline
+, systemdMinimal
+, udev
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "bluez";
+  version = "5.71";
+
+  src = fetchurl {
+    url = "mirror://kernel/linux/bluetooth/bluez-${finalAttrs.version}.tar.xz";
+    hash = "sha256-uCjUGMk87R9Vthb7VILPAVN0QL+zT72hpWTz7OlHNdg=";
+  };
+
+  buildInputs = [
+    alsa-lib
+    dbus
+    ell
+    glib
+    json_c
+    libical
+    python3
+    readline
+    udev
+  ];
+
+  nativeBuildInputs = [
+    docutils
+    pkg-config
+    python3.pkgs.wrapPython
+  ];
+
+  outputs = [ "out" "dev" "test" ];
+
+  postPatch = ''
+    substituteInPlace tools/hid2hci.rules \
+      --replace /sbin/udevadm ${systemdMinimal}/bin/udevadm \
+      --replace "hid2hci " "$out/lib/udev/hid2hci "
+  '' +
+  # Disable some tests:
+  # - test-mesh-crypto depends on the following kernel settings:
+  #   CONFIG_CRYPTO_[USER|USER_API|USER_API_AEAD|USER_API_HASH|AES|CCM|AEAD|CMAC]
+  ''
+    if [[ ! -f unit/test-mesh-crypto.c ]]; then
+      echo "unit/test-mesh-crypto.c no longer exists"
+      false
+    fi
+    echo 'int main() { return 77; }' > unit/test-mesh-crypto.c
+  '';
+
+  configureFlags = [
+    "--localstatedir=/var"
+    (lib.enableFeature enableExperimental "experimental")
+    (lib.enableFeature true "btpclient")
+    (lib.enableFeature true "cups")
+    (lib.enableFeature true "external-ell")
+    (lib.enableFeature true "health")
+    (lib.enableFeature true "hid2hci")
+    (lib.enableFeature true "library")
+    (lib.enableFeature true "logger")
+    (lib.enableFeature true "mesh")
+    (lib.enableFeature true "midi")
+    (lib.enableFeature true "nfc")
+    (lib.enableFeature true "pie")
+    (lib.enableFeature true "sixaxis")
+    # Set "deprecated" to provide ciptool, sdptool, and rfcomm (unmaintained);
+    # superseded by new D-Bus APIs
+    (lib.enableFeature true "deprecated")
+    (lib.withFeatureAs true "dbusconfdir" "${placeholder "out"}/share")
+    (lib.withFeatureAs true "dbussessionbusdir" "${placeholder "out"}/share/dbus-1/services")
+    (lib.withFeatureAs true "dbussystembusdir" "${placeholder "out"}/share/dbus-1/system-services")
+    (lib.withFeatureAs true "systemdsystemunitdir" "${placeholder "out"}/etc/systemd/system")
+    (lib.withFeatureAs true "systemduserunitdir" "${placeholder "out"}/etc/systemd/user")
+    (lib.withFeatureAs true "udevdir" "${placeholder "out"}/lib/udev")
+  ];
+
+  makeFlags = [
+    "rulesdir=${placeholder "out"}/lib/udev/rules.d"
+  ];
+
+  # Work around `make install' trying to create /var/lib/bluetooth.
+  installFlags = [
+    "statedir=$(TMPDIR)/var/lib/bluetooth"
+  ];
+
+  doCheck = stdenv.hostPlatform.isx86_64;
+
+  postInstall = let
+    pythonPath = with python3.pkgs; [
+      dbus-python
+      pygobject3
+      recursive-pth-loader
+    ];
+  in
+  ''
+    mkdir -p $test/{bin,test}
+    cp -a test $test
+    pushd $test/test
+    for t in \
+            list-devices \
+            monitor-bluetooth \
+            simple-agent \
+            test-adapter \
+            test-device \
+            test-thermometer \
+            ; do
+      ln -s ../test/$t $test/bin/bluez-$t
+    done
+    popd
+    wrapPythonProgramsIn $test/test "$test/test ${toString pythonPath}"
+
+    # for bluez4 compatibility for NixOS
+    mkdir $out/sbin
+    ln -s ../libexec/bluetooth/bluetoothd $out/sbin/bluetoothd
+    ln -s ../libexec/bluetooth/obexd $out/sbin/obexd
+
+    # Add extra configuration
+    mkdir $out/etc/bluetooth
+    ln -s /etc/bluetooth/main.conf $out/etc/bluetooth/main.conf
+
+    # https://github.com/NixOS/nixpkgs/issues/204418
+    ln -s /etc/bluetooth/input.conf $out/etc/bluetooth/input.conf
+    ln -s /etc/bluetooth/network.conf $out/etc/bluetooth/network.conf
+
+    # Add missing tools, ref https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/bluez
+    for files in $(find tools/ -type f -perm -755); do
+      filename=$(basename $files)
+      install -Dm755 tools/$filename $out/bin/$filename
+    done
+    install -Dm755 attrib/gatttool $out/bin/gatttool
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = "https://www.bluez.org/";
+    description = "Official Linux Bluetooth protocol stack";
+    changelog = "https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/ChangeLog?h=${finalAttrs.version}";
+    license = with lib.licenses; [ bsd2 gpl2Plus lgpl21Plus mit ];
+    mainProgram = "btinfo";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/bm/bmake/package.nix b/pkgs/by-name/bm/bmake/package.nix
index 84c09a363e3a..5ee120ac4ca9 100644
--- a/pkgs/by-name/bm/bmake/package.nix
+++ b/pkgs/by-name/bm/bmake/package.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "bmake";
-  version = "20231210";
+  version = "20240108";
 
   src = fetchurl {
     url = "http://www.crufty.net/ftp/pub/sjg/bmake-${finalAttrs.version}.tar.gz";
-    hash = "sha256-HUT0y5+pXMW/tmNVP1oNBB4TXk3hZ7fHlYKyTKVPuu0=";
+    hash = "sha256-N3JXiCBhbpmZFvTFHb0kFbBvcoH2jMzMXh047SOOMQc=";
   };
 
   patches = [
diff --git a/pkgs/by-name/bn/bngblaster/package.nix b/pkgs/by-name/bn/bngblaster/package.nix
index 6149a049131f..4f4030bdd70d 100644
--- a/pkgs/by-name/bn/bngblaster/package.nix
+++ b/pkgs/by-name/bn/bngblaster/package.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "bngblaster";
-  version = "0.8.29";
+  version = "0.8.35";
 
   src = fetchFromGitHub {
     owner = "rtbrick";
     repo = "bngblaster";
     rev = finalAttrs.version;
-    hash = "sha256-yuWSGN7wLRksNjgr7c5GiC9JTN4T1PJV4Js1ZOGBKqA=";
+    hash = "sha256-zljpApecUKtdU1HqLmeREeL+rmDUMhBWnycgmENlt1o=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/bo/bobcat/package.nix b/pkgs/by-name/bo/bobcat/package.nix
new file mode 100644
index 000000000000..b873862fe7ed
--- /dev/null
+++ b/pkgs/by-name/bo/bobcat/package.nix
@@ -0,0 +1,72 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, icmake
+, yodl
+, libmilter
+, libX11
+, openssl
+, readline
+, util-linux
+}:
+
+stdenv.mkDerivation rec {
+  pname = "bobcat";
+  version = "5.11.01";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.com";
+    owner = "fbb-git";
+    repo = "bobcat";
+    rev = version;
+    hash = "sha256-JLJKaJmztputIon9JkKzpm3Ch60iwm4Imh9p42crYzA=";
+  };
+
+  sourceRoot = "${src.name}/bobcat";
+
+  postPatch = ''
+    substituteInPlace INSTALL.im \
+      --replace "/usr" "$out"
+    sed -i "6i #include <cstdint>" logbuf/logbuf
+    patchShebangs .
+  '';
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    icmake
+    yodl
+  ];
+
+  buildInputs = [
+    libmilter
+    libX11
+    openssl
+    readline
+    util-linux
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    ./build libraries all
+    ./build man
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preBuild
+
+    ./build install x
+
+    runHook postBuild
+  '';
+
+  meta = with lib; {
+    description = "Brokken's Own Base Classes And Templates";
+    homepage = "https://fbb-git.gitlab.io/bobcat/";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/bo/bonsai/package.nix b/pkgs/by-name/bo/bonsai/package.nix
new file mode 100644
index 000000000000..da5f81c928d5
--- /dev/null
+++ b/pkgs/by-name/bo/bonsai/package.nix
@@ -0,0 +1,54 @@
+{ stdenv
+, lib
+, fetchFromSourcehut
+, gitUpdater
+, hare
+, hareThirdParty
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "bonsai";
+  version = "1.0.2";
+
+  src = fetchFromSourcehut {
+    owner = "~stacyharper";
+    repo = "bonsai";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-Yosf07KUOQv4O5111tLGgI270g0KVGwzdTPtPOsTcP8=";
+  };
+
+  nativeBuildInputs = [
+    hare
+    hareThirdParty.hare-ev
+    hareThirdParty.hare-json
+  ];
+
+  makeFlags = [
+    "PREFIX=${builtins.placeholder "out"}"
+    "HARECACHE=.harecache"
+    "HAREFLAGS=-qa${stdenv.hostPlatform.uname.processor}"
+  ];
+
+  enableParallelBuilding = true;
+
+  doCheck = true;
+
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace 'hare build' 'hare build $(HAREFLAGS)' \
+      --replace 'hare test' 'hare test $(HAREFLAGS)'
+  '';
+
+  passthru.updateScript = gitUpdater {
+    rev-prefix = "v";
+  };
+
+  meta = with lib; {
+    description = "Finite State Machine structured as a tree";
+    homepage = "https://git.sr.ht/~stacyharper/bonsai";
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ colinsane ];
+    platforms = platforms.linux;
+    mainProgram = "bonsaictl";
+  };
+})
diff --git a/pkgs/by-name/bo/boogie/package.nix b/pkgs/by-name/bo/boogie/package.nix
index 0a8fed374b19..94117375f0e1 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.0.9";
+  version = "3.0.10";
 
   src = fetchFromGitHub {
     owner = "boogie-org";
     repo = "boogie";
     rev = "v${version}";
-    sha256 = "sha256-8hujTiUO62yfv3T/Fu5unTuvJXLGgn9BXoCA2oag3jQ=";
+    sha256 = "sha256-0E4yAVNWJC67vX0DTQj1ZH7T6JKOgE0BDf6u0V0QvFA=";
   };
 
   projectFile = [ "Source/Boogie.sln" ];
diff --git a/pkgs/by-name/bo/boxed-cpp/package.nix b/pkgs/by-name/bo/boxed-cpp/package.nix
index 82019f996ad6..3475f29868d2 100644
--- a/pkgs/by-name/bo/boxed-cpp/package.nix
+++ b/pkgs/by-name/bo/boxed-cpp/package.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation (final: {
   pname = "boxed-cpp";
-  version = "1.1.0";
+  version = "1.2.2";
 
   src = fetchFromGitHub {
     owner = "contour-terminal";
     repo = "boxed-cpp";
     rev = "v${final.version}";
-    hash = "sha256-8qhP1yXdRTbU/IbDAaQrdjzIMM5ZjCAULI07dw44XcE=";
+    hash = "sha256-/zC9DV2nFY1ipqsM1p/WMdSf/nZkhlqJ2Ce/FzGWGGI=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/by-name/bs/bsync/package.nix b/pkgs/by-name/bs/bsync/package.nix
new file mode 100644
index 000000000000..0a49bea9eefa
--- /dev/null
+++ b/pkgs/by-name/bs/bsync/package.nix
@@ -0,0 +1,50 @@
+{ lib
+, fetchFromGitHub
+, stdenv
+, makeWrapper
+, python3
+, openssh
+, rsync
+, findutils
+, which
+}:
+
+stdenv.mkDerivation {
+  pname = "bsync";
+  version = "unstable-2023-12-21";
+
+  src = fetchFromGitHub {
+    owner  = "dooblem";
+    repo   = "bsync";
+    rev    = "25f77730750720ad68b0ab2773e79d9ca98c3647";
+    hash   = "sha256-k25MjLis0/dp1TTS4aFeJZq/c0T01LmNcWtC+dw/kKY=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm555 bsync -t $out/bin
+    runHook postInstall
+  '';
+
+nativeBuildInputs = [ makeWrapper ];
+buildInputs = [ python3 ];
+
+fixupPhase = ''
+  runHook preFixup
+
+  patchShebangs $out/bin/bsync
+  wrapProgram $out/bin/bsync \
+    --prefix PATH ":" ${lib.makeLibraryPath [ openssh rsync findutils which ]}
+
+  runHook postFixup
+'';
+
+  meta = with lib; {
+    homepage = "https://github.com/dooblem/bsync";
+    description = "Bidirectional Synchronization using Rsync";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers;  [ dietmarw ];
+    platforms = platforms.unix;
+    mainProgram = "bsync";
+  };
+}
diff --git a/pkgs/by-name/bu/bufisk/package.nix b/pkgs/by-name/bu/bufisk/package.nix
new file mode 100644
index 000000000000..e7fefcc5fa75
--- /dev/null
+++ b/pkgs/by-name/bu/bufisk/package.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "bufisk";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "bufbuild";
+    repo = "bufisk";
+    rev = "v${version}";
+    hash = "sha256-pVnqvQn7jwpx6T3sS4eA29JeJdh0GrPVm0J8n2UjJTw=";
+  };
+
+  vendorHash = "sha256-iv5zIn9C56AQB87T+n5fJzm/fhBFBUObFwrlJ72A/J4=";
+
+  ldflags = [ "-s" "-w" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/bufbuild/bufisk";
+    description = "A user-friendly launcher for Buf";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ aaronjheng ];
+    mainProgram = "bufisk";
+  };
+}
diff --git a/pkgs/by-name/bu/bulk_extractor/package.nix b/pkgs/by-name/bu/bulk_extractor/package.nix
new file mode 100644
index 000000000000..d15f4eaeedb1
--- /dev/null
+++ b/pkgs/by-name/bu/bulk_extractor/package.nix
@@ -0,0 +1,62 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, exiv2
+, flex
+, libewf
+, libxml2
+, openssl
+, tre
+, zlib
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "bulk_extractor";
+  version = "2.0.6";
+
+  src = fetchFromGitHub {
+    owner = "simsong";
+    repo = "bulk_extractor";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-LNdRN4pEA0rVEyKiBKGJgTKA4veVvsuP3ufiolHTk/s=";
+    fetchSubmodules = true;
+  };
+
+  enableParallelBuilding = true;
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [
+    exiv2
+    flex
+    libewf
+    libxml2
+    openssl
+    tre
+    zlib
+  ];
+
+  meta = with lib; {
+    description = "A digital forensics tool for extracting information from file systems";
+    longDescription = ''
+      bulk_extractor is a C++ program that scans a disk image, a file, or a
+      directory of files and extracts useful information without parsing
+      the file system or file system structures. The results are stored in
+      feature files that can be easily inspected, parsed, or processed with
+      automated tools.
+    '';
+    mainProgram = "bulk_extractor";
+    homepage = "https://github.com/simsong/bulk_extractor";
+    downloadPage = "http://downloads.digitalcorpora.org/downloads/bulk_extractor/";
+    changelog = "https://github.com/simsong/bulk_extractor/blob/${finalAttrs.src.rev}/ChangeLog";
+    maintainers = with maintainers; [ d3vil0p3r ];
+    platforms = with platforms; unix ++ windows;
+    license = with licenses; [
+      mit
+      cpl10
+      gpl3Only
+      lgpl21Only
+      lgpl3Only
+      licenses.openssl
+    ];
+  };
+})
diff --git a/pkgs/by-name/bu/bullshit/package.nix b/pkgs/by-name/bu/bullshit/package.nix
new file mode 100644
index 000000000000..64f50f1d2b30
--- /dev/null
+++ b/pkgs/by-name/bu/bullshit/package.nix
@@ -0,0 +1,43 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, gawk
+, nix-update-script
+}:
+stdenvNoCC.mkDerivation {
+  pname = "bullshit";
+  version = "0-unstable-2018-05-28";
+
+  src = fetchFromGitHub {
+    owner = "fceschmidt";
+    repo = "bullshit-arch";
+    rev = "d65e4bbbea76bb752842c2c464154a7b417783fa";
+    hash = "sha256-sqtQDaWtfhn9XYRsF8lVLHYb+7o9Hf7rLKsX6dw3Sh4=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm555 src/bullshit -t $out/bin
+    install -Dm444 src/bullshit_lib $out/share/wordlists/bullshit.txt
+    runHook postInstall
+  '';
+
+  fixupPhase = ''
+    runHook preFixup
+    patchShebangs $out/bin/bullshit
+    substituteInPlace $out/bin/bullshit \
+        --replace /usr/lib/bullshit $out/share/wordlists/bullshit.txt \
+        --replace awk '${gawk}/bin/awk'
+    runHook postFixup
+  '';
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = with lib; {
+    description = "A nonsense phrase generator";
+    homepage = "https://github.com/fceschmidt/bullshit-arch";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ krloer ];
+    inherit (gawk.meta) platforms;
+  };
+}
diff --git a/pkgs/by-name/c-/c-periphery/package.nix b/pkgs/by-name/c-/c-periphery/package.nix
new file mode 100644
index 000000000000..7e033a1a3327
--- /dev/null
+++ b/pkgs/by-name/c-/c-periphery/package.nix
@@ -0,0 +1,35 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "c-periphery";
+  version = "2.4.2";
+
+  src = fetchFromGitHub {
+    owner = "vsergeev";
+    repo = "c-periphery";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-uUSXvMQcntUqD412UWkMif0wLxPhpPdnMb96Pqqh/B4=";
+  };
+
+  outputs = [ "dev" "lib" "out" ];
+
+  postPatch = ''
+    substituteInPlace src/libperiphery.pc.in \
+      --replace '=''${prefix}/' '=' \
+      --replace '=''${exec_prefix}/' '='
+  '';
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with lib; {
+    description = "A C library for peripheral I/O (GPIO, LED, PWM, SPI, I2C, MMIO, Serial) in Linux";
+    homepage = "https://github.com/vsergeev/c-periphery";
+    license = licenses.mit;
+    maintainers = with maintainers; [ sikmir ];
+    platforms = platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/c2/c2fmzq/package.nix b/pkgs/by-name/c2/c2fmzq/package.nix
index 088f27ad3e74..42069150d468 100644
--- a/pkgs/by-name/c2/c2fmzq/package.nix
+++ b/pkgs/by-name/c2/c2fmzq/package.nix
@@ -6,20 +6,20 @@
 
 buildGoModule rec {
   pname = "c2FmZQ";
-  version = "0.4.17";
+  version = "0.4.18";
 
   src = fetchFromGitHub {
     owner = "c2FmZQ";
     repo = "c2FmZQ";
     rev = "v${version}";
-    hash = "sha256-xjgoE1HlCmSPZ6TQcemI7fNE9wbIrk/WSrz6vlVt66U=";
+    hash = "sha256-CWtQMXICCyuXbknR1Z2sLe7GyqN0F2sQGtiTnqppnVA=";
   };
 
   ldflags = [ "-s" "-w" ];
 
   sourceRoot = "source/c2FmZQ";
 
-  vendorHash = "sha256-lnoEh6etfVLx+GYWNCvra40qOYtzTIH3SC28T6mXC2U=";
+  vendorHash = "sha256-cTXSFwWGHV2QJM4mX/Z+ZxCXKwr+59lEPvJa/PTA1wU=";
 
   subPackages = [ "c2FmZQ-client" "c2FmZQ-server" ];
 
diff --git a/pkgs/by-name/ca/candy-icons/package.nix b/pkgs/by-name/ca/candy-icons/package.nix
new file mode 100644
index 000000000000..46f3033d80b3
--- /dev/null
+++ b/pkgs/by-name/ca/candy-icons/package.nix
@@ -0,0 +1,41 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, gtk3
+}:
+
+stdenvNoCC.mkDerivation {
+  pname = "candy-icons";
+  version = "unstable-2023-12-31";
+
+  src = fetchFromGitHub {
+    owner = "EliverLara";
+    repo = "candy-icons";
+    rev = "e4464d7b4d8e1821025447b2064b6a8f5c4c8c89";
+    hash = "sha256-XdYjxWf8R4b1GK2iFQnoEOWykc19ZT37ki83WeESQBM=";
+  };
+
+  nativeBuildInputs = [
+    gtk3
+  ];
+
+  dontDropIconThemeCache = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/icons/candy-icons
+    cp -r . $out/share/icons/candy-icons
+    gtk-update-icon-cache $out/share/icons/candy-icons
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/EliverLara/candy-icons";
+    description = "An icon theme colored with sweet gradients";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ clr-cera ];
+  };
+}
diff --git a/pkgs/by-name/ca/cargo-swift/package.nix b/pkgs/by-name/ca/cargo-swift/package.nix
index f9f1f6baa2f9..62741dc4a0f4 100644
--- a/pkgs/by-name/ca/cargo-swift/package.nix
+++ b/pkgs/by-name/ca/cargo-swift/package.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-swift";
-  version = "0.5.1";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "antoniusnaumann";
     repo = "cargo-swift";
     rev = "v${version}";
-    hash = "sha256-v7ZZ3tMM8KmRk6y3uSw8ZBEcByQ95XQv3XPTUtDGUQ0=";
+    hash = "sha256-ATpEo7s/qatK7hsbNo9tE97yMpymA1xmf879WrgUluM=";
   };
 
-  cargoHash = "sha256-K3xZytJJ9/CaHWHL1fX0vKYpzH9yz3xOs2J5PoZWWv0=";
+  cargoHash = "sha256-hKTvtPulltsxi0PX8Xmo9MYcQYuTdOOspfgLCaEKQL4=";
 
   meta = with lib; {
     description = "A cargo plugin to easily build Swift packages from Rust code";
diff --git a/pkgs/by-name/ca/cargo-xwin/package.nix b/pkgs/by-name/ca/cargo-xwin/package.nix
index 274ab5ef77ec..b361b2a808ac 100644
--- a/pkgs/by-name/ca/cargo-xwin/package.nix
+++ b/pkgs/by-name/ca/cargo-xwin/package.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-xwin";
-  version = "0.16.3";
+  version = "0.16.4";
 
   src = fetchFromGitHub {
     owner = "rust-cross";
     repo = "cargo-xwin";
     rev = "v${version}";
-    hash = "sha256-3i/XlCuHjVBSH4XZR5M457H+kheKZoJXlwqRwPhSnCM=";
+    hash = "sha256-nJgy9KoqrCD4NGFOJMN9f1XDyIrZ0a5WHTRX6G/+tnU=";
   };
 
-  cargoHash = "sha256-yKoUcrAZy66qahDvRgOnbJmXuUXDjDBTGt2p5gXjVyI=";
+  cargoHash = "sha256-JCCL/QV1DjmXTY3UChZ4BfA9VSyOTQLIfh6DSF/kIuA=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.Security
diff --git a/pkgs/by-name/ce/centrifugo/package.nix b/pkgs/by-name/ce/centrifugo/package.nix
index 1ba970ae0016..8691b76b2d6d 100644
--- a/pkgs/by-name/ce/centrifugo/package.nix
+++ b/pkgs/by-name/ce/centrifugo/package.nix
@@ -14,16 +14,16 @@ let
 in
 buildGoModule rec {
   pname = "centrifugo";
-  version = "5.2.0";
+  version = "5.2.2";
 
   src = fetchFromGitHub {
     owner = "centrifugal";
     repo = "centrifugo";
     rev = "v${version}";
-    hash = "sha256-lD7hUCXHH1nUN58rbn/p8BnVahEwF/jKrAtjwuXB4PM=";
+    hash = "sha256-jBXg4/Uw5pFk1aCNpmHkXeUYrFwZqwtg0zYQ5zkp5QI=";
   };
 
-  vendorHash = "sha256-s92P4PoYN2/L7pwGT0d/0E/KUNR1GT9DUhtHjAncNf4=";
+  vendorHash = "sha256-s04XSTs1ISfhezvz8RfcXPlx8cstHXdRBFPIEZlKI7k=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/by-name/ci/circom/package.nix b/pkgs/by-name/ci/circom/package.nix
index 6d74c5e268e3..4601704293d4 100644
--- a/pkgs/by-name/ci/circom/package.nix
+++ b/pkgs/by-name/ci/circom/package.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "circom";
-  version = "2.1.6";
+  version = "2.1.8";
 
   src = fetchFromGitHub {
     owner = "iden3";
     repo = "circom";
     rev = "v${version}";
-    hash = "sha256-2YusBWAYDrTvFHYIjKpALphhmtsec7jjKHb1sc9lt3Q=";
+    hash = "sha256-S+POXACM2XswpIaUze/wfVj2QYjRKJ2JGP1L88dfHA8=";
   };
 
-  cargoHash = "sha256-G6z+DxIhmm1Kzv8EQCqvfGAhQn5Vrx9LXrl+bWBVKaM=";
+  cargoHash = "sha256-gf9wWkeibj61Fh9Q+JqKVUVh2WpVBdM1Ei/Dg1/c+5E=";
   doCheck = false;
 
   meta = with lib; {
diff --git a/pkgs/by-name/cl/clamtk/package.nix b/pkgs/by-name/cl/clamtk/package.nix
index de00d3ad9c02..3c85528a6e63 100644
--- a/pkgs/by-name/cl/clamtk/package.nix
+++ b/pkgs/by-name/cl/clamtk/package.nix
@@ -9,13 +9,13 @@
 
 perlPackages.buildPerlPackage rec {
   pname = "clamtk";
-  version = "6.17";
+  version = "6.18";
 
   src = fetchFromGitHub {
     owner = "dave-theunsub";
     repo = "clamtk";
     rev = "v${version}";
-    hash = "sha256-2tWVfRijf78OiKBpLUrZWFberIL8mjqtxvW/IjPn1IE=";
+    hash = "sha256-ClBsBXbGj67zgrkA9EjgK7s3OmXOJA+xV5xLGOcMsbI=";
   };
 
   nativeBuildInputs = [ wrapGAppsHook gobject-introspection ];
@@ -46,11 +46,12 @@ perlPackages.buildPerlPackage rec {
   installPhase = ''
     runHook preInstall
 
-    install -D lib/*.pm -t $out/lib/perl5/site_perl/ClamTk
-    install -D clamtk.desktop -t $out/share/applications
-    install -D images/* -t $out/share/pixmaps
-    install -D clamtk.1.gz -t $out/share/man/man1
-    install -D -m755 clamtk -t $out/bin
+    install -Dm755 clamtk -t $out/bin
+    install -Dm444 lib/*.pm -t $out/lib/perl5/site_perl/ClamTk
+    install -Dm444 clamtk.desktop -t $out/share/applications
+    install -Dm444 images/* -t $out/share/pixmaps
+    install -Dm444 clamtk.1.gz -t $out/share/man/man1
+    install -Dm444 {CHANGES,LICENSE,*.md} -t $out/share/doc/clamtk
 
     runHook postInstall
   '';
diff --git a/pkgs/applications/misc/clipcat/default.nix b/pkgs/by-name/cl/clipcat/package.nix
index 8de62f1a2296..1345482f0a38 100644
--- a/pkgs/applications/misc/clipcat/default.nix
+++ b/pkgs/by-name/cl/clipcat/package.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "clipcat";
-  version = "0.16.1";
+  version = "0.16.4";
 
   src = fetchFromGitHub {
     owner = "xrelkd";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-SqA8UjKTBtkE1IkWGeshI8KBHr86V9r/+YvFZNJ6Oq8=";
+    hash = "sha256-gYg1czSwUm1zJUkw5SMk6C4yDfHcwjWnnHJftDLNvfs=";
   };
 
-  cargoHash = "sha256-KU3kXqy9zL7GQdSsCNW7jcsxdTuRXjJyDtBpmgoXi6E=";
+  cargoHash = "sha256-e32DGV7/ueT25Lx318aGZEHRnUGxCn0J5/K3dgT02Ug=";
 
   nativeBuildInputs = [
     protobuf
diff --git a/pkgs/by-name/cl/clzip/package.nix b/pkgs/by-name/cl/clzip/package.nix
index feced814f4e5..19ec4347a1e7 100644
--- a/pkgs/by-name/cl/clzip/package.nix
+++ b/pkgs/by-name/cl/clzip/package.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "clzip";
-  version = "1.13";
+  version = "1.14";
 
   src = fetchurl {
     url = "mirror://savannah/lzip/clzip/clzip-${finalAttrs.version}.tar.gz";
-    hash = "sha256-esn79QNr9Q+wtqIOhNIpPLDSTUBE6vM8vpdgu55/6no=";
+    hash = "sha256-9j/hJFuDL+B/9nnpubhofpN5q2E6Jr+wrKN1TIsWLXM=";
   };
 
   meta = with lib; {
diff --git a/pkgs/by-name/co/codeium/package.nix b/pkgs/by-name/co/codeium/package.nix
index 60b2318c7d3d..6e1d3d6d5070 100644
--- a/pkgs/by-name/co/codeium/package.nix
+++ b/pkgs/by-name/co/codeium/package.nix
@@ -13,10 +13,10 @@ let
   }.${system} or throwSystem;
 
   hash = {
-    x86_64-linux = "sha256-vr/c7kYXoKlZh7+f1ZPHcmIGw0nB8x1wJt/iR2F9bQI=";
-    aarch64-linux = "sha256-mKLbxj5LSztjHtLWdZFlW4T6S+kN56SZnJNxKZDQIQ4=";
-    x86_64-darwin = "sha256-AllKEadf+1s3XGCXD0PRycvDUyYNL6HLaViBwwaYswU=";
-    aarch64-darwin = "sha256-6Pik3uYLfbeAW4Q4ZxJFt90IH+jhXWKY6kpDA6NAmaA=";
+    x86_64-linux = "sha256-QB1xt/nB94UB7lgQUlkw4NOvprxQlz3Xw1aHaKDAsn4=";
+    aarch64-linux = "sha256-OFSpJ44m1x8hFnOVg3t120UsbD3qazRaYszjse5S7cg=";
+    x86_64-darwin = "sha256-GEovSJICZ8XcVpaV1Q7Ago5Nf2dVX1I08FLLLRNbc/Q=";
+    aarch64-darwin = "sha256-IJ5ADRHewWcuphp+JpPzt7f7+MTNXi86KTNHJQpyy4I=";
   }.${system} or throwSystem;
 
   bin = "$out/bin/codeium_language_server";
@@ -24,7 +24,7 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "codeium";
-  version = "1.6.23";
+  version = "1.6.30";
   src = fetchurl {
     name = "${finalAttrs.pname}-${finalAttrs.version}.gz";
     url = "https://github.com/Exafunction/codeium/releases/download/language-server-v${finalAttrs.version}/language_server_${plat}.gz";
diff --git a/pkgs/by-name/co/cook-cli/package.nix b/pkgs/by-name/co/cook-cli/package.nix
new file mode 100644
index 000000000000..d78f23e15d53
--- /dev/null
+++ b/pkgs/by-name/co/cook-cli/package.nix
@@ -0,0 +1,58 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, buildNpmPackage
+, rustPlatform
+, pkg-config
+, openssl
+, darwin
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "cook-cli";
+  version = "0.7.1";
+
+  src = fetchFromGitHub {
+    owner = "cooklang";
+    repo = "cookcli";
+    rev = "v${version}";
+    hash = "sha256-3gLVsk6GCxOG24Md7E9fk28Vnc4kVDdwyZUD/GtSwFE=";
+  };
+
+  cargoHash = "sha256-6lnURuE1cgNAniHl5ozXo1W3cLYYje7er+ZhvZDKdVg=";
+
+  nativeBuildInputs = [ pkg-config openssl ];
+
+  buildInputs = [
+    openssl
+  ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.SystemConfiguration ];
+
+  postPatch = ''
+    rm -rf "ui/public"
+    ln -s ${passthru.ui} "ui/public"
+  '';
+
+  OPENSSL_NO_VENDOR = 1;
+
+  passthru.ui = buildNpmPackage {
+    name = "ui";
+    src = "${src}/ui";
+    npmDepsHash = "sha256-uMyOAYLVHhY4ytvEFvVzdoQ7ExzQ4sH+ZtDrEacu5bk=";
+    makeCacheWritable = true;
+    npmFlags = [ "--legacy-peer-deps" ];
+    installPhase = ''
+      runHook preInstall
+      mv public/ $out
+      runHook postInstall
+    '';
+  };
+
+  meta = with lib; {
+    changelog = "https://github.com/cooklang/cookcli/releases/tag/v${version}";
+    description = "A suite of tools to create shopping lists and maintain recipes";
+    homepage = "https://cooklang.org/";
+    license = [ licenses.mit ];
+    mainProgram = "cook";
+    maintainers = [ maintainers.emilioziniades ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/by-name/co/cosmic-comp/package.nix b/pkgs/by-name/co/cosmic-comp/package.nix
index 29864f1cd8d0..bd7d147cfeb0 100644
--- a/pkgs/by-name/co/cosmic-comp/package.nix
+++ b/pkgs/by-name/co/cosmic-comp/package.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , rustPlatform
 , fetchFromGitHub
 , makeBinaryWrapper
@@ -12,6 +13,9 @@
 , xwayland
 , wayland
 , xorg
+, useXWayland ? true
+, systemd
+, useSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd
 }:
 
 rustPlatform.buildRustPackage {
@@ -41,7 +45,18 @@ rustPlatform.buildRustPackage {
   separateDebugInfo = true;
 
   nativeBuildInputs = [ makeBinaryWrapper pkg-config ];
-  buildInputs = [ libglvnd libinput libxkbcommon mesa seatd udev wayland ];
+  buildInputs = [
+      libglvnd
+      libinput
+      libxkbcommon
+      mesa
+      seatd
+      udev
+      wayland
+    ] ++ lib.optional useSystemd systemd;
+
+  # Only default feature is systemd
+  buildNoDefaultFeatures = !useSystemd;
 
   # Force linking to libEGL, which is always dlopen()ed, and to
   # libwayland-client, which is always dlopen()ed except by the
@@ -56,11 +71,13 @@ rustPlatform.buildRustPackage {
   # These libraries are only used by the X11 backend, which will not
   # be the common case, so just make them available, don't link them.
   postInstall = ''
-    wrapProgram $out/bin/cosmic-comp \
-      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [
+    wrapProgramArgs=(--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [
         xorg.libX11 xorg.libXcursor xorg.libXi xorg.libXrandr
-      ]} \
-      --prefix PATH : ${lib.makeBinPath [ xwayland ]}
+    ]})
+  '' + lib.optionalString useXWayland ''
+    wrapProgramArgs+=(--prefix PATH : ${lib.makeBinPath [ xwayland ]})
+  '' + ''
+    wrapProgram $out/bin/cosmic-comp "''${wrapProgramArgs[@]}"
   '';
 
   meta = with lib; {
diff --git a/pkgs/by-name/co/cosmic-edit/Cargo.lock b/pkgs/by-name/co/cosmic-edit/Cargo.lock
index f58cf5af778c..fbfce7d41330 100644
--- a/pkgs/by-name/co/cosmic-edit/Cargo.lock
+++ b/pkgs/by-name/co/cosmic-edit/Cargo.lock
@@ -365,9 +365,9 @@ dependencies = [
 
 [[package]]
 name = "async-io"
-version = "2.2.2"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6afaa937395a620e33dc6a742c593c01aced20aa376ffb0f628121198578ccc7"
+checksum = "fb41eb19024a91746eba0773aa5e16036045bbf45733766661099e182ea6a744"
 dependencies = [
  "async-lock 3.3.0",
  "cfg-if 1.0.0",
@@ -375,8 +375,8 @@ dependencies = [
  "futures-io",
  "futures-lite 2.2.0",
  "parking",
- "polling 3.3.1",
- "rustix 0.38.28",
+ "polling 3.3.2",
+ "rustix 0.38.30",
  "slab",
  "tracing",
  "windows-sys 0.52.0",
@@ -415,7 +415,7 @@ dependencies = [
  "cfg-if 1.0.0",
  "event-listener 3.1.0",
  "futures-lite 1.13.0",
- "rustix 0.38.28",
+ "rustix 0.38.30",
  "windows-sys 0.48.0",
 ]
 
@@ -436,13 +436,13 @@ version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
 dependencies = [
- "async-io 2.2.2",
+ "async-io 2.3.0",
  "async-lock 2.8.0",
  "atomic-waker",
  "cfg-if 1.0.0",
  "futures-core",
  "futures-io",
- "rustix 0.38.28",
+ "rustix 0.38.30",
  "signal-hook-registry",
  "slab",
  "windows-sys 0.48.0",
@@ -488,7 +488,7 @@ name = "atomicwrites"
 version = "0.4.2"
 source = "git+https://github.com/jackpot51/rust-atomicwrites#043ab4859d53ffd3d55334685303d8df39c9f768"
 dependencies = [
- "rustix 0.38.28",
+ "rustix 0.38.30",
  "tempfile",
  "windows-sys 0.48.0",
 ]
@@ -585,9 +585,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.1"
+version = "2.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
 dependencies = [
  "serde",
 ]
@@ -998,7 +998,7 @@ dependencies = [
 [[package]]
 name = "cosmic-config"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic#94a1bbdaa5315aa42cf9d5a48be1410968a6e326"
+source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
 dependencies = [
  "atomicwrites",
  "cosmic-config-derive",
@@ -1013,7 +1013,7 @@ dependencies = [
 [[package]]
 name = "cosmic-config-derive"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic#94a1bbdaa5315aa42cf9d5a48be1410968a6e326"
+source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
 dependencies = [
  "quote",
  "syn 1.0.109",
@@ -1031,7 +1031,6 @@ dependencies = [
  "i18n-embed",
  "i18n-embed-fl",
  "ignore",
- "lazy_static",
  "lexical-sort",
  "libcosmic",
  "log",
@@ -1059,9 +1058,9 @@ dependencies = [
 [[package]]
 name = "cosmic-text"
 version = "0.10.0"
-source = "git+https://github.com/pop-os/cosmic-text?branch=refactor#dd4c4cbbe2d5ed5046054b5361a6eeead50e0bb0"
+source = "git+https://github.com/pop-os/cosmic-text#8457e68d984c465f7c5306424a73aa162aff32f2"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "cosmic_undo_2",
  "fontdb",
  "libm",
@@ -1074,6 +1073,7 @@ dependencies = [
  "swash",
  "syntect",
  "sys-locale",
+ "ttf-parser 0.20.0",
  "unicode-bidi",
  "unicode-linebreak",
  "unicode-script",
@@ -1083,7 +1083,7 @@ dependencies = [
 [[package]]
 name = "cosmic-theme"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic#94a1bbdaa5315aa42cf9d5a48be1410968a6e326"
+source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
 dependencies = [
  "almost",
  "cosmic-config",
@@ -1233,7 +1233,7 @@ version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e16e44ab292b1dddfdaf7be62cfd8877df52f2f3fde5858d95bab606be259f20"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "libloading 0.8.1",
  "winapi",
 ]
@@ -1494,7 +1494,7 @@ version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "97fb1b703ffbc7ebd216eba7900008049a56ace55580ecb2ee7fa801e8d8be87"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "bytemuck",
  "drm-ffi",
  "drm-fourcc",
@@ -1703,9 +1703,9 @@ checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
 
 [[package]]
 name = "fdeflate"
-version = "0.3.3"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "209098dd6dfc4445aa6111f0e98653ac323eaa4dfd212c9ca3931bf9955c31bd"
+checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645"
 dependencies = [
  "simd-adler32",
 ]
@@ -2221,9 +2221,9 @@ dependencies = [
 
 [[package]]
 name = "glow"
-version = "0.13.0"
+version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "886c2a30b160c4c6fec8f987430c26b526b7988ca71f664e6a699ddf6f9601e4"
+checksum = "bd348e04c43b32574f2de31c8bb397d96c9fcfa1371bd4ca6d8bdc464ab121b1"
 dependencies = [
  "js-sys",
  "slotmap",
@@ -2242,8 +2242,8 @@ dependencies = [
 
 [[package]]
 name = "glyphon"
-version = "0.3.0"
-source = "git+https://github.com/jackpot51/glyphon.git?branch=refactor#c28dc99c86b6b598633e6623096b21632f266976"
+version = "0.4.1"
+source = "git+https://github.com/jackpot51/glyphon.git#abb70c0fda8cf1a5dfc314c1c778103d7ba951e6"
 dependencies = [
  "cosmic-text",
  "etagere",
@@ -2268,7 +2268,7 @@ version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "gpu-alloc-types",
 ]
 
@@ -2278,7 +2278,7 @@ version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
 ]
 
 [[package]]
@@ -2301,7 +2301,7 @@ version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "gpu-descriptor-types",
  "hashbrown 0.14.3",
 ]
@@ -2312,7 +2312,7 @@ version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6bf0b36e6f090b7e1d8a4b49c0cb81c1f8376f72198c65dd3ad9ff3556b8b78c"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
 ]
 
 [[package]]
@@ -2494,9 +2494,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.3"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f"
 
 [[package]]
 name = "hex"
@@ -2612,7 +2612,7 @@ dependencies = [
 [[package]]
 name = "iced"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#94a1bbdaa5315aa42cf9d5a48be1410968a6e326"
+source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
 dependencies = [
  "iced_accessibility",
  "iced_core",
@@ -2620,14 +2620,14 @@ dependencies = [
  "iced_renderer",
  "iced_widget",
  "iced_winit",
- "image 0.24.7",
+ "image 0.24.8",
  "thiserror",
 ]
 
 [[package]]
 name = "iced_accessibility"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic#94a1bbdaa5315aa42cf9d5a48be1410968a6e326"
+source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
 dependencies = [
  "accesskit",
  "accesskit_winit",
@@ -2636,7 +2636,7 @@ dependencies = [
 [[package]]
 name = "iced_core"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#94a1bbdaa5315aa42cf9d5a48be1410968a6e326"
+source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
 dependencies = [
  "bitflags 1.3.2",
  "instant",
@@ -2652,7 +2652,7 @@ dependencies = [
 [[package]]
 name = "iced_futures"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#94a1bbdaa5315aa42cf9d5a48be1410968a6e326"
+source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
 dependencies = [
  "futures",
  "iced_core",
@@ -2665,7 +2665,7 @@ dependencies = [
 [[package]]
 name = "iced_graphics"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#94a1bbdaa5315aa42cf9d5a48be1410968a6e326"
+source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
 dependencies = [
  "bitflags 1.3.2",
  "bytemuck",
@@ -2673,7 +2673,7 @@ dependencies = [
  "glam",
  "half",
  "iced_core",
- "image 0.24.7",
+ "image 0.24.8",
  "kamadak-exif",
  "log",
  "lyon_path",
@@ -2688,7 +2688,7 @@ dependencies = [
 [[package]]
 name = "iced_renderer"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#94a1bbdaa5315aa42cf9d5a48be1410968a6e326"
+source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
 dependencies = [
  "iced_graphics",
  "iced_tiny_skia",
@@ -2701,7 +2701,7 @@ dependencies = [
 [[package]]
 name = "iced_runtime"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#94a1bbdaa5315aa42cf9d5a48be1410968a6e326"
+source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
 dependencies = [
  "iced_core",
  "iced_futures",
@@ -2711,7 +2711,7 @@ dependencies = [
 [[package]]
 name = "iced_style"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#94a1bbdaa5315aa42cf9d5a48be1410968a6e326"
+source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
 dependencies = [
  "iced_core",
  "once_cell",
@@ -2721,7 +2721,7 @@ dependencies = [
 [[package]]
 name = "iced_tiny_skia"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#94a1bbdaa5315aa42cf9d5a48be1410968a6e326"
+source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
 dependencies = [
  "bytemuck",
  "cosmic-text",
@@ -2739,7 +2739,7 @@ dependencies = [
 [[package]]
 name = "iced_wgpu"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#94a1bbdaa5315aa42cf9d5a48be1410968a6e326"
+source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
 dependencies = [
  "bitflags 1.3.2",
  "bytemuck",
@@ -2759,7 +2759,7 @@ dependencies = [
 [[package]]
 name = "iced_widget"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#94a1bbdaa5315aa42cf9d5a48be1410968a6e326"
+source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
 dependencies = [
  "iced_renderer",
  "iced_runtime",
@@ -2773,7 +2773,7 @@ dependencies = [
 [[package]]
 name = "iced_winit"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#94a1bbdaa5315aa42cf9d5a48be1410968a6e326"
+source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
 dependencies = [
  "iced_graphics",
  "iced_runtime",
@@ -2840,21 +2840,20 @@ dependencies = [
 
 [[package]]
 name = "image"
-version = "0.24.7"
+version = "0.24.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711"
+checksum = "034bbe799d1909622a74d1193aa50147769440040ff36cb2baa947609b0a4e23"
 dependencies = [
  "bytemuck",
  "byteorder",
  "color_quant",
  "exr",
  "gif 0.12.0",
- "jpeg-decoder 0.3.0",
- "num-rational 0.4.1",
+ "jpeg-decoder 0.3.1",
  "num-traits",
- "png 0.17.10",
+ "png 0.17.11",
  "qoi",
- "tiff 0.9.0",
+ "tiff 0.9.1",
 ]
 
 [[package]]
@@ -2942,7 +2941,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455"
 dependencies = [
  "hermit-abi",
- "rustix 0.38.28",
+ "rustix 0.38.30",
  "windows-sys 0.52.0",
 ]
 
@@ -2978,9 +2977,9 @@ dependencies = [
 
 [[package]]
 name = "jpeg-decoder"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e"
+checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0"
 dependencies = [
  "rayon",
 ]
@@ -3092,7 +3091,7 @@ checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
 [[package]]
 name = "libcosmic"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic#94a1bbdaa5315aa42cf9d5a48be1410968a6e326"
+source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
 dependencies = [
  "apply",
  "ashpd",
@@ -3166,7 +3165,7 @@ version = "0.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "libc",
  "redox_syscall 0.4.1",
 ]
@@ -3177,7 +3176,7 @@ version = "0.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "libc",
  "redox_syscall 0.4.1",
 ]
@@ -3205,9 +3204,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
 
 [[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 = "locale_config"
@@ -3240,9 +3239,9 @@ checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
 name = "lru"
-version = "0.11.1"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4a83fb7698b3643a0e34f9ae6f2e8f0178c0fd42f8b59d493aa271ff3a5bf21"
+checksum = "2994eeba8ed550fd9b47a0b38f0242bc3344e496483c6180b69139cc2fa5d1d7"
 dependencies = [
  "hashbrown 0.14.3",
 ]
@@ -3374,7 +3373,7 @@ version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c43f73953f8cbe511f021b58f18c3ce1c3d1ae13fe953293e13345bf83217f25"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "block",
  "core-graphics-types",
  "foreign-types 0.5.0",
@@ -3492,7 +3491,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ae585df4b6514cf8842ac0f1ab4992edc975892704835b549cf818dc0191249e"
 dependencies = [
  "bit-set",
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "codespan-reporting",
  "hexf-parse",
  "indexmap",
@@ -3668,7 +3667,7 @@ version = "0.27.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "cfg-if 1.0.0",
  "libc",
 ]
@@ -3711,7 +3710,7 @@ version = "6.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "crossbeam-channel",
  "filetime",
  "fsevent-sys",
@@ -4303,9 +4302,9 @@ dependencies = [
 
 [[package]]
 name = "pkg-config"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a"
+checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
 
 [[package]]
 name = "plist"
@@ -4335,9 +4334,9 @@ dependencies = [
 
 [[package]]
 name = "png"
-version = "0.17.10"
+version = "0.17.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64"
+checksum = "1f6c3c3e617595665b8ea2ff95a86066be38fb121ff920a9c0eb282abcd1da5a"
 dependencies = [
  "bitflags 1.3.2",
  "crc32fast",
@@ -4364,14 +4363,14 @@ dependencies = [
 
 [[package]]
 name = "polling"
-version = "3.3.1"
+version = "3.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e"
+checksum = "545c980a3880efd47b2e262f6a4bb6daad6555cf3367aa9c4e52895f69537a41"
 dependencies = [
  "cfg-if 1.0.0",
  "concurrent-queue",
  "pin-project-lite",
- "rustix 0.38.28",
+ "rustix 0.38.30",
  "tracing",
  "windows-sys 0.52.0",
 ]
@@ -4557,9 +4556,9 @@ checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
 
 [[package]]
 name = "rayon"
-version = "1.8.0"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
+checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051"
 dependencies = [
  "either",
  "rayon-core",
@@ -4567,9 +4566,9 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.12.0"
+version = "1.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
 dependencies = [
  "crossbeam-deque",
  "crossbeam-utils",
@@ -4667,10 +4666,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cadccb3d99a9efb8e5e00c16fbb732cbe400db2ec7fc004697ee7d97d86cf1f4"
 dependencies = [
  "gif 0.12.0",
- "jpeg-decoder 0.3.0",
+ "jpeg-decoder 0.3.1",
  "log",
  "pico-args",
- "png 0.17.10",
+ "png 0.17.11",
  "rgb",
  "svgtypes",
  "tiny-skia 0.11.3",
@@ -4716,7 +4715,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94"
 dependencies = [
  "base64",
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "serde",
  "serde_derive",
 ]
@@ -4817,14 +4816,14 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.28"
+version = "0.38.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316"
+checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "errno",
  "libc",
- "linux-raw-sys 0.4.12",
+ "linux-raw-sys 0.4.13",
  "windows-sys 0.52.0",
 ]
 
@@ -4844,7 +4843,7 @@ version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f0ae5692c5beaad6a9e22830deeed7874eae8a4e3ba4076fb48e12c56856222c"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "bytemuck",
  "libm",
  "smallvec",
@@ -5059,9 +5058,9 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.11.2"
+version = "1.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
+checksum = "2593d31f82ead8df961d8bd23a64c2ccf2eb5dd34b0a34bfb4dd54011c72009e"
 
 [[package]]
 name = "smithay-client-toolkit"
@@ -5149,7 +5148,7 @@ dependencies = [
  "objc",
  "raw-window-handle 0.5.2",
  "redox_syscall 0.4.1",
- "rustix 0.38.28",
+ "rustix 0.38.30",
  "tiny-xlib",
  "wasm-bindgen",
  "wayland-backend",
@@ -5344,7 +5343,7 @@ dependencies = [
  "cfg-if 1.0.0",
  "fastrand 2.0.1",
  "redox_syscall 0.4.1",
- "rustix 0.38.28",
+ "rustix 0.38.30",
  "windows-sys 0.52.0",
 ]
 
@@ -5390,12 +5389,12 @@ dependencies = [
 
 [[package]]
 name = "tiff"
-version = "0.9.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d172b0f4d3fba17ba89811858b9d3d97f928aece846475bbda076ca46736211"
+checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e"
 dependencies = [
  "flate2",
- "jpeg-decoder 0.3.0",
+ "jpeg-decoder 0.3.1",
  "weezl",
 ]
 
@@ -5438,7 +5437,7 @@ dependencies = [
  "arrayvec 0.7.4",
  "bytemuck",
  "cfg-if 1.0.0",
- "png 0.17.10",
+ "png 0.17.11",
  "tiny-skia-path 0.8.4",
 ]
 
@@ -5453,7 +5452,7 @@ dependencies = [
  "bytemuck",
  "cfg-if 1.0.0",
  "log",
- "png 0.17.10",
+ "png 0.17.11",
  "tiny-skia-path 0.11.3",
 ]
 
@@ -5703,9 +5702,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-bidi-mirroring"
@@ -6022,7 +6021,7 @@ version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1ca7d52347346f5473bf2f56705f360e8440873052e575e55890c4fa57843ed3"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "nix 0.26.4",
  "wayland-backend",
  "wayland-scanner 0.31.0",
@@ -6214,7 +6213,7 @@ checksum = "ef91c1d62d1e9e81c79e600131a258edf75c9531cbdbde09c44a011a47312726"
 dependencies = [
  "arrayvec 0.7.4",
  "bit-vec",
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "codespan-reporting",
  "log",
  "naga",
@@ -6239,7 +6238,7 @@ dependencies = [
  "arrayvec 0.7.4",
  "ash",
  "bit-set",
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "block",
  "core-graphics-types",
  "d3d12",
@@ -6278,7 +6277,7 @@ version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0d5ed5f0edf0de351fe311c53304986315ce866f394a2e6df0c4b3c70774bcdd"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "js-sys",
  "web-sys",
 ]
diff --git a/pkgs/by-name/co/cosmic-edit/package.nix b/pkgs/by-name/co/cosmic-edit/package.nix
index 1841d8bfb660..60020d46df45 100644
--- a/pkgs/by-name/co/cosmic-edit/package.nix
+++ b/pkgs/by-name/co/cosmic-edit/package.nix
@@ -6,27 +6,30 @@
   cmake,
   makeBinaryWrapper,
   cosmic-icons,
+  glib,
+  gtk3,
   just,
   pkg-config,
+  libglvnd,
   libxkbcommon,
-  glib,
-  gtk3,
   libinput,
   fontconfig,
   freetype,
+  mesa,
   wayland,
   xorg,
+  vulkan-loader,
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "cosmic-edit";
-  version = "0-unstable-2024-01-12";
+  version = "0-unstable-2024-01-19";
 
   src = fetchFromGitHub {
     owner = "pop-os";
     repo = pname;
-    rev = "c1944f9c15812ce842c91a77e228cc22a0f49f18";
-    hash = "sha256-wJnBfBQKYmpJBSboGKtlwew17clE60ac2AismIe1XaA=";
+    rev = "b97eb0603bf6c7e168fc6e17aa779af1f105b9ee";
+    hash = "sha256-oprqM3QTewC/L/KOQ4uT81dPLqjP+Kp+wxgkY8l1Nc8=";
   };
 
   cargoLock = {
@@ -34,10 +37,10 @@ rustPlatform.buildRustPackage rec {
     outputHashes = {
       "accesskit-0.11.0" = "sha256-xVhe6adUb8VmwIKKjHxwCwOo5Y1p3Or3ylcJJdLDrrE=";
       "atomicwrites-0.4.2" = "sha256-QZSuGPrJXh+svMeFWqAXoqZQxLq/WfIiamqvjJNVhxA=";
-      "cosmic-config-0.1.0" = "sha256-GHjoLGF9hFJRpf5i+TwflRnh8N+oWyWZ9fqgRFLXQsw=";
+      "cosmic-config-0.1.0" = "sha256-PR6u2DT+HneMSFszfg0sZK7oLwsOX4YtpUP88KWHy68=";
       "cosmic-syntax-theme-0.1.0" = "sha256-9Vf2s5Ry2hco80EbXOuVLwvOWygRiuaRD4tTImWooSg=";
-      "cosmic-text-0.10.0" = "sha256-PHz5jUecK889E88Y20XUe2adTUO8ElnoV7IIcaohMUw=";
-      "glyphon-0.3.0" = "sha256-JGkNIfj1HjOF8kGxqJPNq/JO+NhZD6XrZ4KmkXEP6Xc=";
+      "cosmic-text-0.10.0" = "sha256-WxT0LPXu17jb0XpuCu2PjlGTV1a0K1HMhl6WpciKMkM=";
+      "glyphon-0.4.1" = "sha256-mwJXi63LTBIVFrFcywr/NeOJKfMjQaQkNl3CSdEgrZc=";
       "sctk-adwaita-0.5.4" = "sha256-yK0F2w/0nxyKrSiHZbx7+aPNY2vlFs7s8nu/COp2KqQ=";
       "softbuffer-0.3.3" = "sha256-eKYFVr6C1+X6ulidHIu9SP591rJxStxwL9uMiqnXx4k=";
       "smithay-client-toolkit-0.16.1" = "sha256-z7EZThbh7YmKzAACv181zaEZmWxTrMkFRzP0nfsHK6c=";
@@ -54,13 +57,15 @@ rustPlatform.buildRustPackage rec {
   nativeBuildInputs = [ just pkg-config makeBinaryWrapper ];
   buildInputs = [
     libxkbcommon
+    glib
+    gtk3
     xorg.libX11
     libinput
+    libglvnd
     fontconfig
     freetype
     wayland
-    glib
-    gtk3
+    vulkan-loader
   ];
 
   dontUseJustBuild = true;
@@ -74,11 +79,23 @@ rustPlatform.buildRustPackage rec {
     "target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-edit"
   ];
 
+  # Force linking to libEGL, which is always dlopen()ed, and to
+  # libwayland-client, which is always dlopen()ed except by the
+  # obscure winit backend.
+  RUSTFLAGS = map (a: "-C link-arg=${a}") [
+    "-Wl,--push-state,--no-as-needed"
+    "-lEGL"
+    "-lwayland-client"
+    "-Wl,--pop-state"
+  ];
+
   # LD_LIBRARY_PATH can be removed once tiny-xlib is bumped above 0.2.2
   postInstall = ''
     wrapProgram "$out/bin/${pname}" \
       --suffix XDG_DATA_DIRS : "${cosmic-icons}/share" \
-      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ xorg.libX11 ]}
+      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [
+        xorg.libX11 xorg.libXcursor xorg.libXi xorg.libXrandr vulkan-loader mesa.drivers
+      ]}
   '';
 
   meta = with lib; {
diff --git a/pkgs/by-name/co/cosmic-icons/package.nix b/pkgs/by-name/co/cosmic-icons/package.nix
index ac46f5f944e6..92f927d366c8 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 = "unstable-2023-08-30";
+  version = "unstable-2024-01-23";
 
   src = fetchFromGitHub {
     owner = "pop-os";
     repo = pname;
-    rev = "14d8e2048087be1ad444f9b3ebb75885509f72c6";
-    sha256 = "sha256-WbdgHmTn403x95x9wEYL0T9ksbN+YLzEB2yE0UrF9T0=";
+    rev = "49a1762c958196924afcf1eae52ee910c4b4bc9f";
+    sha256 = "sha256-wL4f1rXWuFmeZCAAw0y+JQ3iesZcEC3XxWWrvrJ50oA=";
   };
 
   nativeBuildInputs = [ just ];
diff --git a/pkgs/by-name/co/cosmic-term/Cargo.lock b/pkgs/by-name/co/cosmic-term/Cargo.lock
index 1135432d4ceb..4ad8a828cb5a 100644
--- a/pkgs/by-name/co/cosmic-term/Cargo.lock
+++ b/pkgs/by-name/co/cosmic-term/Cargo.lock
@@ -79,7 +79,7 @@ dependencies = [
  "accesskit_macos",
  "accesskit_unix",
  "accesskit_windows",
- "winit 0.28.6",
+ "winit",
 ]
 
 [[package]]
@@ -110,11 +110,11 @@ dependencies = [
 
 [[package]]
 name = "ahash"
-version = "0.8.6"
+version = "0.8.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a"
+checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "once_cell",
  "version_check",
  "zerocopy",
@@ -130,55 +130,27 @@ dependencies = [
 ]
 
 [[package]]
-name = "alacritty_config"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "863bf2d414dcb10549f81c15b78b445d1c5269087a11db1ead665d8b6749b246"
-dependencies = [
- "log",
- "serde",
- "serde_yaml",
- "winit 0.28.7",
-]
-
-[[package]]
-name = "alacritty_config_derive"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d753607acaf6a6aab19bcafb0ff007b9e6bb12e33445dfd82f30cea75c605aed"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
-[[package]]
 name = "alacritty_terminal"
-version = "0.19.1"
+version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35001a8c1caf0abe4a597de2f15464805b0b2094424bc22a8ba34ed891bffea5"
+checksum = "6121a8d385a114873632d785a99614ae1d324b3e38b9da8a92138c8799b50fdc"
 dependencies = [
- "alacritty_config",
- "alacritty_config_derive",
- "base64 0.13.1",
- "bitflags 1.3.2",
- "dirs 4.0.0",
+ "base64",
+ "bitflags 2.4.2",
+ "home",
  "libc",
  "log",
- "mio 0.6.23",
- "mio-anonymous-pipes",
- "mio-extras",
- "miow 0.3.7",
- "nix 0.24.3",
+ "miow",
  "parking_lot 0.12.1",
- "regex-automata 0.1.10",
+ "piper",
+ "polling 3.3.2",
+ "regex-automata",
+ "rustix-openpty",
  "serde",
- "serde_yaml",
  "signal-hook",
- "signal-hook-mio",
  "unicode-width",
  "vte",
- "windows-sys 0.36.1",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -282,9 +254,9 @@ dependencies = [
 
 [[package]]
 name = "ashpd"
-version = "0.6.7"
+version = "0.6.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c018490e423efb6f032ef575f873ea57b61d44bec763cfe027b8e8852a027cf"
+checksum = "4ac22eda5891cc086690cb6fa10121c0390de0e3b04eb269f2d766b00d3f2d81"
 dependencies = [
  "enumflags2",
  "futures-channel",
@@ -326,7 +298,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c"
 dependencies = [
  "concurrent-queue",
- "event-listener 4.0.1",
+ "event-listener 4.0.3",
  "event-listener-strategy",
  "futures-core",
  "pin-project-lite",
@@ -338,11 +310,11 @@ version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c"
 dependencies = [
- "async-lock 3.2.0",
+ "async-lock 3.3.0",
  "async-task",
  "concurrent-queue",
  "fastrand 2.0.1",
- "futures-lite 2.1.0",
+ "futures-lite 2.2.0",
  "slab",
 ]
 
@@ -366,7 +338,7 @@ checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
 dependencies = [
  "async-lock 2.8.0",
  "autocfg",
- "cfg-if 1.0.0",
+ "cfg-if",
  "concurrent-queue",
  "futures-lite 1.13.0",
  "log",
@@ -380,17 +352,17 @@ dependencies = [
 
 [[package]]
 name = "async-io"
-version = "2.2.2"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6afaa937395a620e33dc6a742c593c01aced20aa376ffb0f628121198578ccc7"
+checksum = "fb41eb19024a91746eba0773aa5e16036045bbf45733766661099e182ea6a744"
 dependencies = [
- "async-lock 3.2.0",
- "cfg-if 1.0.0",
+ "async-lock 3.3.0",
+ "cfg-if",
  "concurrent-queue",
  "futures-io",
- "futures-lite 2.1.0",
+ "futures-lite 2.2.0",
  "parking",
- "polling 3.3.1",
+ "polling 3.3.2",
  "rustix 0.38.28",
  "slab",
  "tracing",
@@ -408,11 +380,11 @@ dependencies = [
 
 [[package]]
 name = "async-lock"
-version = "3.2.0"
+version = "3.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7125e42787d53db9dd54261812ef17e937c95a51e4d291373b670342fa44310c"
+checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b"
 dependencies = [
- "event-listener 4.0.1",
+ "event-listener 4.0.3",
  "event-listener-strategy",
  "pin-project-lite",
 ]
@@ -427,7 +399,7 @@ dependencies = [
  "async-lock 2.8.0",
  "async-signal",
  "blocking",
- "cfg-if 1.0.0",
+ "cfg-if",
  "event-listener 3.1.0",
  "futures-lite 1.13.0",
  "rustix 0.38.28",
@@ -442,7 +414,7 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -451,10 +423,10 @@ version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
 dependencies = [
- "async-io 2.2.2",
+ "async-io 2.3.0",
  "async-lock 2.8.0",
  "atomic-waker",
- "cfg-if 1.0.0",
+ "cfg-if",
  "futures-core",
  "futures-io",
  "rustix 0.38.28",
@@ -465,19 +437,19 @@ dependencies = [
 
 [[package]]
 name = "async-task"
-version = "4.6.0"
+version = "4.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1d90cd0b264dfdd8eb5bad0a2c217c1f88fa96a8573f40e7b12de23fb468f46"
+checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799"
 
 [[package]]
 name = "async-trait"
-version = "0.1.75"
+version = "0.1.77"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdf6721fb0140e4f897002dd086c06f6c27775df19cfe1fccb21181a48fd2c98"
+checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -537,7 +509,7 @@ checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
 dependencies = [
  "addr2line",
  "cc",
- "cfg-if 1.0.0",
+ "cfg-if",
  "libc",
  "miniz_oxide",
  "object",
@@ -546,15 +518,9 @@ dependencies = [
 
 [[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.5"
+version = "0.21.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
 
 [[package]]
 name = "bit-set"
@@ -585,9 +551,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.1"
+version = "2.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
 dependencies = [
  "serde",
 ]
@@ -633,11 +599,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
 dependencies = [
  "async-channel 2.1.1",
- "async-lock 3.2.0",
+ "async-lock 3.3.0",
  "async-task",
  "fastrand 2.0.1",
  "futures-io",
- "futures-lite 2.1.0",
+ "futures-lite 2.2.0",
  "piper",
  "tracing",
 ]
@@ -665,7 +631,7 @@ checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -695,6 +661,32 @@ dependencies = [
 ]
 
 [[package]]
+name = "calloop"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298"
+dependencies = [
+ "bitflags 2.4.2",
+ "log",
+ "polling 3.3.2",
+ "rustix 0.38.28",
+ "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 0.12.4",
+ "rustix 0.38.28",
+ "wayland-backend",
+ "wayland-client 0.31.1",
+]
+
+[[package]]
 name = "cc"
 version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -706,12 +698,6 @@ dependencies = [
 
 [[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"
@@ -730,7 +716,7 @@ checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362"
 dependencies = [
  "error-code",
  "str-buf",
- "winapi 0.3.9",
+ "winapi",
 ]
 
 [[package]]
@@ -746,21 +732,21 @@ dependencies = [
 
 [[package]]
 name = "clipboard_wayland"
-version = "0.2.0"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f6364a9f7a66f2ac1a1a098aa1c7f6b686f2496c6ac5e5c0d773445df912747"
+checksum = "8134163bd07c47ae3cc29babc42c255fdb315facc790950ae2d0e561ea6f2ec0"
 dependencies = [
  "smithay-clipboard",
 ]
 
 [[package]]
 name = "clipboard_x11"
-version = "0.4.0"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "983a7010836ecd04dde2c6d27a0cb56ec5d21572177e782bdcb24a600124e921"
+checksum = "5cf45b436634fee64c6d3981639b46a87eeea3c64e422643273fcefd1baef56c"
 dependencies = [
  "thiserror",
- "x11rb 0.9.0",
+ "x11rb 0.13.0",
 ]
 
 [[package]]
@@ -880,13 +866,14 @@ dependencies = [
 [[package]]
 name = "cosmic-config"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic.git#b8f1a366dd030b90ed72e50f521e3da1d6a676ce"
+source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
 dependencies = [
  "atomicwrites",
  "cosmic-config-derive",
  "dirs 5.0.1",
  "iced_futures",
  "notify",
+ "once_cell",
  "ron",
  "serde",
 ]
@@ -894,7 +881,7 @@ dependencies = [
 [[package]]
 name = "cosmic-config-derive"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic.git#b8f1a366dd030b90ed72e50f521e3da1d6a676ce"
+source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
 dependencies = [
  "quote",
  "syn 1.0.109",
@@ -910,9 +897,12 @@ dependencies = [
  "fork",
  "i18n-embed",
  "i18n-embed-fl",
+ "indexmap",
  "lazy_static",
  "libcosmic",
  "log",
+ "palette",
+ "paste",
  "rust-embed",
  "serde",
  "tokio",
@@ -921,8 +911,9 @@ dependencies = [
 [[package]]
 name = "cosmic-text"
 version = "0.10.0"
-source = "git+https://github.com/pop-os/cosmic-text.git?branch=refactor#90bcfcf7d543de502cd0df5236a35c29a7d0d688"
+source = "git+https://github.com/pop-os/cosmic-text.git#db1530c4ec14bcbb290f9c971d8a6197c90e189a"
 dependencies = [
+ "bitflags 2.4.2",
  "fontdb",
  "libm",
  "log",
@@ -932,6 +923,7 @@ dependencies = [
  "self_cell 1.0.3",
  "swash",
  "sys-locale",
+ "ttf-parser",
  "unicode-bidi",
  "unicode-linebreak",
  "unicode-script",
@@ -941,7 +933,7 @@ dependencies = [
 [[package]]
 name = "cosmic-theme"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic.git#b8f1a366dd030b90ed72e50f521e3da1d6a676ce"
+source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
 dependencies = [
  "almost",
  "cosmic-config",
@@ -954,9 +946,9 @@ dependencies = [
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
 dependencies = [
  "libc",
 ]
@@ -967,50 +959,42 @@ version = "1.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
 ]
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.9"
+version = "0.5.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c3242926edf34aec4ac3a77108ad4854bffaa2e4ddc1824124ce59231302d5"
+checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b"
 dependencies = [
- "cfg-if 1.0.0",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-deque"
-version = "0.8.4"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
 dependencies = [
- "cfg-if 1.0.0",
  "crossbeam-epoch",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.16"
+version = "0.9.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d2fe95351b870527a5d09bf563ed3c97c0cffb87cf1c78a591bf48bb218d9aa"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
 dependencies = [
- "autocfg",
- "cfg-if 1.0.0",
  "crossbeam-utils",
- "memoffset 0.9.0",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.17"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f"
-dependencies = [
- "cfg-if 1.0.0",
-]
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
 
 [[package]]
 name = "crunchy"
@@ -1051,18 +1035,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e"
 dependencies = [
  "quote",
- "syn 2.0.42",
+ "syn 2.0.48",
 ]
 
 [[package]]
+name = "cursor-icon"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991"
+
+[[package]]
 name = "d3d12"
 version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e16e44ab292b1dddfdaf7be62cfd8877df52f2f3fde5858d95bab606be259f20"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "libloading 0.8.1",
- "winapi 0.3.9",
+ "winapi",
 ]
 
 [[package]]
@@ -1086,7 +1076,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "strsim",
- "syn 2.0.42",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1097,7 +1087,7 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
 dependencies = [
  "darling_core",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1106,7 +1096,7 @@ version = "5.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "hashbrown 0.14.3",
  "lock_api",
  "once_cell",
@@ -1139,7 +1129,7 @@ dependencies = [
  "darling",
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1178,7 +1168,7 @@ checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
 dependencies = [
  "libc",
  "redox_users",
- "winapi 0.3.9",
+ "winapi",
 ]
 
 [[package]]
@@ -1207,7 +1197,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1237,7 +1227,7 @@ version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "97fb1b703ffbc7ebd216eba7900008049a56ace55580ecb2ee7fa801e8d8be87"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "bytemuck",
  "drm-ffi",
  "drm-fourcc",
@@ -1290,14 +1280,14 @@ checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "env_logger"
-version = "0.10.1"
+version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece"
+checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580"
 dependencies = [
  "humantime",
  "is-terminal",
@@ -1370,9 +1360,9 @@ dependencies = [
 
 [[package]]
 name = "event-listener"
-version = "4.0.1"
+version = "4.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84f2cdcf274580f2d63697192d744727b3198894b1bf02923643bf59e2c26712"
+checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e"
 dependencies = [
  "concurrent-queue",
  "parking",
@@ -1385,7 +1375,7 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3"
 dependencies = [
- "event-listener 4.0.1",
+ "event-listener 4.0.3",
  "pin-project-lite",
 ]
 
@@ -1428,9 +1418,9 @@ checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
 
 [[package]]
 name = "fdeflate"
-version = "0.3.1"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64d6dafc854908ff5da46ff3f8f473c6984119a2876a383a860246dd7841a868"
+checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645"
 dependencies = [
  "simd-adler32",
 ]
@@ -1441,7 +1431,7 @@ version = "0.2.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "libc",
  "redox_syscall 0.4.1",
  "windows-sys 0.52.0",
@@ -1603,7 +1593,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1669,26 +1659,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "fuchsia-zircon"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
-dependencies = [
- "bitflags 1.3.2",
- "fuchsia-zircon-sys",
-]
-
-[[package]]
-name = "fuchsia-zircon-sys"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
-
-[[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",
@@ -1701,9 +1675,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",
@@ -1711,15 +1685,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",
@@ -1729,9 +1703,9 @@ dependencies = [
 
 [[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"
@@ -1750,9 +1724,9 @@ dependencies = [
 
 [[package]]
 name = "futures-lite"
-version = "2.1.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aeee267a1883f7ebef3700f262d2d54de95dfaf38189015a74fdc4e0c7ad8143"
+checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba"
 dependencies = [
  "fastrand 2.0.1",
  "futures-core",
@@ -1763,32 +1737,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.42",
+ "syn 2.0.48",
 ]
 
 [[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",
@@ -1814,31 +1788,31 @@ dependencies = [
 
 [[package]]
 name = "gethostname"
-version = "0.2.3"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e"
+checksum = "bb65d4ba3173c56a500b555b532f72c42e8d1fe64962b518897f8959fae2c177"
 dependencies = [
  "libc",
- "winapi 0.3.9",
+ "winapi",
 ]
 
 [[package]]
 name = "gethostname"
-version = "0.3.0"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb65d4ba3173c56a500b555b532f72c42e8d1fe64962b518897f8959fae2c177"
+checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818"
 dependencies = [
  "libc",
- "winapi 0.3.9",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
 name = "getrandom"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "js-sys",
  "libc",
  "wasi",
@@ -1880,9 +1854,9 @@ checksum = "b5418c17512bdf42730f9032c74e1ae39afc408745ebb2acf72fbc4691c17945"
 
 [[package]]
 name = "glow"
-version = "0.13.0"
+version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "886c2a30b160c4c6fec8f987430c26b526b7988ca71f664e6a699ddf6f9601e4"
+checksum = "bd348e04c43b32574f2de31c8bb397d96c9fcfa1371bd4ca6d8bdc464ab121b1"
 dependencies = [
  "js-sys",
  "slotmap",
@@ -1901,8 +1875,8 @@ dependencies = [
 
 [[package]]
 name = "glyphon"
-version = "0.3.0"
-source = "git+https://github.com/jackpot51/glyphon.git?branch=refactor#cd704e6bd5d0ddb815d08358766ad205fd70fada"
+version = "0.4.1"
+source = "git+https://github.com/jackpot51/glyphon.git#abb70c0fda8cf1a5dfc314c1c778103d7ba951e6"
 dependencies = [
  "cosmic-text",
  "etagere",
@@ -1916,7 +1890,7 @@ version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "gpu-alloc-types",
 ]
 
@@ -1926,7 +1900,7 @@ version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
 ]
 
 [[package]]
@@ -1939,7 +1913,7 @@ dependencies = [
  "log",
  "presser",
  "thiserror",
- "winapi 0.3.9",
+ "winapi",
  "windows 0.51.1",
 ]
 
@@ -1949,7 +1923,7 @@ version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "gpu-descriptor-types",
  "hashbrown 0.14.3",
 ]
@@ -1960,7 +1934,7 @@ version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6bf0b36e6f090b7e1d8a4b49c0cb81c1f8376f72198c65dd3ad9ff3556b8b78c"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
 ]
 
 [[package]]
@@ -1985,7 +1959,7 @@ version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "crunchy",
 ]
 
@@ -2004,7 +1978,7 @@ version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 dependencies = [
- "ahash 0.8.6",
+ "ahash 0.8.7",
  "allocator-api2",
 ]
 
@@ -2020,7 +1994,7 @@ dependencies = [
  "libloading 0.7.4",
  "thiserror",
  "widestring",
- "winapi 0.3.9",
+ "winapi",
 ]
 
 [[package]]
@@ -2031,9 +2005,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.3"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f"
 
 [[package]]
 name = "hex"
@@ -2048,6 +2022,15 @@ 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"
@@ -2106,7 +2089,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "strsim",
- "syn 2.0.42",
+ "syn 2.0.48",
  "unic-langid",
 ]
 
@@ -2120,13 +2103,13 @@ dependencies = [
  "i18n-config",
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "iced"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#b8f1a366dd030b90ed72e50f521e3da1d6a676ce"
+source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
 dependencies = [
  "iced_accessibility",
  "iced_core",
@@ -2141,7 +2124,7 @@ dependencies = [
 [[package]]
 name = "iced_accessibility"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic.git#b8f1a366dd030b90ed72e50f521e3da1d6a676ce"
+source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
 dependencies = [
  "accesskit",
  "accesskit_winit",
@@ -2150,7 +2133,7 @@ dependencies = [
 [[package]]
 name = "iced_core"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#b8f1a366dd030b90ed72e50f521e3da1d6a676ce"
+source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
 dependencies = [
  "bitflags 1.3.2",
  "instant",
@@ -2166,7 +2149,7 @@ dependencies = [
 [[package]]
 name = "iced_futures"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#b8f1a366dd030b90ed72e50f521e3da1d6a676ce"
+source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
 dependencies = [
  "futures",
  "iced_core",
@@ -2179,7 +2162,7 @@ dependencies = [
 [[package]]
 name = "iced_graphics"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#b8f1a366dd030b90ed72e50f521e3da1d6a676ce"
+source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
 dependencies = [
  "bitflags 1.3.2",
  "bytemuck",
@@ -2202,7 +2185,7 @@ dependencies = [
 [[package]]
 name = "iced_renderer"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#b8f1a366dd030b90ed72e50f521e3da1d6a676ce"
+source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
 dependencies = [
  "iced_graphics",
  "iced_tiny_skia",
@@ -2215,7 +2198,7 @@ dependencies = [
 [[package]]
 name = "iced_runtime"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#b8f1a366dd030b90ed72e50f521e3da1d6a676ce"
+source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
 dependencies = [
  "iced_core",
  "iced_futures",
@@ -2225,7 +2208,7 @@ dependencies = [
 [[package]]
 name = "iced_style"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#b8f1a366dd030b90ed72e50f521e3da1d6a676ce"
+source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
 dependencies = [
  "iced_core",
  "once_cell",
@@ -2235,7 +2218,7 @@ dependencies = [
 [[package]]
 name = "iced_tiny_skia"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#b8f1a366dd030b90ed72e50f521e3da1d6a676ce"
+source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
 dependencies = [
  "bytemuck",
  "cosmic-text",
@@ -2253,7 +2236,7 @@ dependencies = [
 [[package]]
 name = "iced_wgpu"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#b8f1a366dd030b90ed72e50f521e3da1d6a676ce"
+source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
 dependencies = [
  "bitflags 1.3.2",
  "bytemuck",
@@ -2273,7 +2256,7 @@ dependencies = [
 [[package]]
 name = "iced_widget"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#b8f1a366dd030b90ed72e50f521e3da1d6a676ce"
+source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
 dependencies = [
  "iced_renderer",
  "iced_runtime",
@@ -2287,7 +2270,7 @@ dependencies = [
 [[package]]
 name = "iced_winit"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#b8f1a366dd030b90ed72e50f521e3da1d6a676ce"
+source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
 dependencies = [
  "iced_graphics",
  "iced_runtime",
@@ -2296,9 +2279,9 @@ dependencies = [
  "thiserror",
  "tracing",
  "web-sys",
- "winapi 0.3.9",
+ "winapi",
  "window_clipboard",
- "winit 0.28.6",
+ "winit",
 ]
 
 [[package]]
@@ -2319,9 +2302,9 @@ dependencies = [
 
 [[package]]
 name = "image"
-version = "0.24.7"
+version = "0.24.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711"
+checksum = "034bbe799d1909622a74d1193aa50147769440040ff36cb2baa947609b0a4e23"
 dependencies = [
  "bytemuck",
  "byteorder",
@@ -2329,7 +2312,6 @@ dependencies = [
  "exr",
  "gif",
  "jpeg-decoder",
- "num-rational",
  "num-traits",
  "png",
  "qoi",
@@ -2344,16 +2326,6 @@ checksum = "029d73f573d8e8d63e6d5020011d3255b28c3ba85d6cf870a07184ed23de9284"
 
 [[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",
-]
-
-[[package]]
-name = "indexmap"
 version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
@@ -2388,7 +2360,7 @@ version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "js-sys",
  "wasm-bindgen",
  "web-sys",
@@ -2425,26 +2397,23 @@ dependencies = [
 ]
 
 [[package]]
-name = "iovec"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
-dependencies = [
- "libc",
-]
-
-[[package]]
 name = "is-terminal"
-version = "0.4.9"
+version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
+checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455"
 dependencies = [
  "hermit-abi",
  "rustix 0.38.28",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
+name = "itoa"
+version = "1.0.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+
+[[package]]
 name = "jni-sys"
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2461,18 +2430,18 @@ dependencies = [
 
 [[package]]
 name = "jpeg-decoder"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e"
+checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0"
 dependencies = [
  "rayon",
 ]
 
 [[package]]
 name = "js-sys"
-version = "0.3.66"
+version = "0.3.67"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca"
+checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -2487,16 +2456,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "kernel32-sys"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
-dependencies = [
- "winapi 0.2.8",
- "winapi-build",
-]
-
-[[package]]
 name = "khronos-egl"
 version = "6.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2549,12 +2508,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
-name = "lazycell"
-version = "1.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
-
-[[package]]
 name = "lebe"
 version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2563,13 +2516,12 @@ checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8"
 [[package]]
 name = "libc"
 version = "0.2.151"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4"
+source = "git+https://gitlab.redox-os.org/redox-os/liblibc.git?branch=redox_0.2.151#a6191c5f6f4e1a737eff83728173e2939211a6d2"
 
 [[package]]
 name = "libcosmic"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic.git#b8f1a366dd030b90ed72e50f521e3da1d6a676ce"
+source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
 dependencies = [
  "apply",
  "ashpd",
@@ -2607,8 +2559,8 @@ version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
 dependencies = [
- "cfg-if 1.0.0",
- "winapi 0.3.9",
+ "cfg-if",
+ "winapi",
 ]
 
 [[package]]
@@ -2617,7 +2569,7 @@ version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "windows-sys 0.48.0",
 ]
 
@@ -2633,7 +2585,7 @@ version = "0.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "libc",
  "redox_syscall 0.4.1",
 ]
@@ -2644,18 +2596,12 @@ version = "0.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "libc",
  "redox_syscall 0.4.1",
 ]
 
 [[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.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2663,9 +2609,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
 
 [[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 = "locale_config"
@@ -2677,7 +2623,7 @@ dependencies = [
  "objc",
  "objc-foundation",
  "regex",
- "winapi 0.3.9",
+ "winapi",
 ]
 
 [[package]]
@@ -2695,15 +2641,12 @@ name = "log"
 version = "0.4.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
-dependencies = [
- "serde",
-]
 
 [[package]]
 name = "lru"
-version = "0.11.1"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4a83fb7698b3643a0e34f9ae6f2e8f0178c0fd42f8b59d493aa271ff3a5bf21"
+checksum = "2994eeba8ed550fd9b47a0b38f0242bc3344e496483c6180b69139cc2fa5d1d7"
 dependencies = [
  "hashbrown 0.14.3",
 ]
@@ -2730,9 +2673,9 @@ dependencies = [
 
 [[package]]
 name = "lyon_geom"
-version = "1.0.4"
+version = "1.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74df1ff0a0147282eb10699537a03baa7d31972b58984a1d44ce0624043fe8ad"
+checksum = "edecfb8d234a2b0be031ab02ebcdd9f3b9ee418fb35e265f7a540a48d197bff9"
 dependencies = [
  "arrayvec",
  "euclid",
@@ -2771,9 +2714,9 @@ dependencies = [
 
 [[package]]
 name = "memchr"
-version = "2.6.4"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "memmap2"
@@ -2826,7 +2769,7 @@ version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c43f73953f8cbe511f021b58f18c3ce1c3d1ae13fe953293e13345bf83217f25"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "block",
  "core-graphics-types",
  "foreign-types 0.5.0",
@@ -2847,25 +2790,6 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.6.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4"
-dependencies = [
- "cfg-if 0.1.10",
- "fuchsia-zircon",
- "fuchsia-zircon-sys",
- "iovec",
- "kernel32-sys",
- "libc",
- "log",
- "miow 0.2.2",
- "net2",
- "slab",
- "winapi 0.2.8",
-]
-
-[[package]]
-name = "mio"
 version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
@@ -2877,60 +2801,12 @@ dependencies = [
 ]
 
 [[package]]
-name = "mio-anonymous-pipes"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bc513025fe5005a3aa561b50fdb2cda5a150b84800ae02acd8aa9ed62ca1a6b"
-dependencies = [
- "mio 0.6.23",
- "miow 0.3.7",
- "parking_lot 0.11.2",
- "spsc-buffer",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "mio-extras"
-version = "2.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19"
-dependencies = [
- "lazycell",
- "log",
- "mio 0.6.23",
- "slab",
-]
-
-[[package]]
-name = "mio-uds"
-version = "0.6.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0"
-dependencies = [
- "iovec",
- "libc",
- "mio 0.6.23",
-]
-
-[[package]]
-name = "miow"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d"
-dependencies = [
- "kernel32-sys",
- "net2",
- "winapi 0.2.8",
- "ws2_32-sys",
-]
-
-[[package]]
 name = "miow"
-version = "0.3.7"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21"
+checksum = "359f76430b20a79f9e20e115b3428614e654f04fab314482fc0fda0ebd3c6044"
 dependencies = [
- "winapi 0.3.9",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -2946,10 +2822,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ae585df4b6514cf8842ac0f1ab4992edc975892704835b549cf818dc0191249e"
 dependencies = [
  "bit-set",
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "codespan-reporting",
  "hexf-parse",
- "indexmap 2.1.0",
+ "indexmap",
  "log",
  "num-traits",
  "rustc-hash",
@@ -2998,37 +2874,13 @@ dependencies = [
 ]
 
 [[package]]
-name = "net2"
-version = "0.2.39"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b13b648036a2339d06de780866fbdfda0dde886de7b3af2ddeba8b14f4ee34ac"
-dependencies = [
- "cfg-if 0.1.10",
- "libc",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "nix"
-version = "0.22.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4916f159ed8e5de0082076562152a76b7a1f64a01fd9d1e0fea002c37624faf"
-dependencies = [
- "bitflags 1.3.2",
- "cc",
- "cfg-if 1.0.0",
- "libc",
- "memoffset 0.6.5",
-]
-
-[[package]]
 name = "nix"
 version = "0.24.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069"
 dependencies = [
  "bitflags 1.3.2",
- "cfg-if 1.0.0",
+ "cfg-if",
  "libc",
  "memoffset 0.6.5",
 ]
@@ -3041,7 +2893,7 @@ checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4"
 dependencies = [
  "autocfg",
  "bitflags 1.3.2",
- "cfg-if 1.0.0",
+ "cfg-if",
  "libc",
  "memoffset 0.6.5",
 ]
@@ -3053,7 +2905,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
 dependencies = [
  "bitflags 1.3.2",
- "cfg-if 1.0.0",
+ "cfg-if",
  "libc",
  "memoffset 0.7.1",
 ]
@@ -3064,8 +2916,8 @@ version = "0.27.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
 dependencies = [
- "bitflags 2.4.1",
- "cfg-if 1.0.0",
+ "bitflags 2.4.2",
+ "cfg-if",
  "libc",
 ]
 
@@ -3075,7 +2927,7 @@ version = "6.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "crossbeam-channel",
  "filetime",
  "fsevent-sys",
@@ -3083,7 +2935,7 @@ dependencies = [
  "kqueue",
  "libc",
  "log",
- "mio 0.8.10",
+ "mio",
  "walkdir",
  "windows-sys 0.48.0",
 ]
@@ -3214,7 +3066,7 @@ dependencies = [
  "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -3284,9 +3136,9 @@ 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 = [
  "memchr",
 ]
@@ -3353,7 +3205,7 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -3386,7 +3238,7 @@ checksum = "b7db010ec5ff3d4385e4f133916faacd9dad0f6a09394c92d825b3aed310fa0a"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -3422,12 +3274,12 @@ version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "instant",
  "libc",
  "redox_syscall 0.2.16",
  "smallvec",
- "winapi 0.3.9",
+ "winapi",
 ]
 
 [[package]]
@@ -3436,7 +3288,7 @@ version = "0.9.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "libc",
  "redox_syscall 0.4.1",
  "smallvec",
@@ -3485,7 +3337,7 @@ dependencies = [
  "phf_shared",
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -3520,7 +3372,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -3548,15 +3400,15 @@ dependencies = [
 
 [[package]]
 name = "pkg-config"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a"
+checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
 
 [[package]]
 name = "png"
-version = "0.17.10"
+version = "0.17.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64"
+checksum = "1f6c3c3e617595665b8ea2ff95a86066be38fb121ff920a9c0eb282abcd1da5a"
 dependencies = [
  "bitflags 1.3.2",
  "crc32fast",
@@ -3573,7 +3425,7 @@ checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
 dependencies = [
  "autocfg",
  "bitflags 1.3.2",
- "cfg-if 1.0.0",
+ "cfg-if",
  "concurrent-queue",
  "libc",
  "log",
@@ -3583,11 +3435,11 @@ dependencies = [
 
 [[package]]
 name = "polling"
-version = "3.3.1"
+version = "3.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e"
+checksum = "545c980a3880efd47b2e262f6a4bb6daad6555cf3367aa9c4e52895f69537a41"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "concurrent-queue",
  "pin-project-lite",
  "rustix 0.38.28",
@@ -3643,9 +3495,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.71"
+version = "1.0.76"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75cb1540fadbd5b8fbccc4dddad2734eba435053f725621c070711a14bb5f4b8"
+checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c"
 dependencies = [
  "unicode-ident",
 ]
@@ -3676,9 +3528,9 @@ dependencies = [
 
 [[package]]
 name = "quote"
-version = "1.0.33"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
@@ -3733,9 +3585,9 @@ checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
 
 [[package]]
 name = "rayon"
-version = "1.8.0"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
+checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051"
 dependencies = [
  "either",
  "rayon-core",
@@ -3743,9 +3595,9 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.12.0"
+version = "1.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
 dependencies = [
  "crossbeam-deque",
  "crossbeam-utils",
@@ -3803,17 +3655,8 @@ checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-automata 0.4.3",
- "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",
+ "regex-automata",
+ "regex-syntax",
 ]
 
 [[package]]
@@ -3824,17 +3667,11 @@ checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-syntax 0.8.2",
+ "regex-syntax",
 ]
 
 [[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"
@@ -3877,8 +3714,8 @@ version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94"
 dependencies = [
- "base64 0.21.5",
- "bitflags 2.4.1",
+ "base64",
+ "bitflags 2.4.2",
  "serde",
  "serde_derive",
 ]
@@ -3918,7 +3755,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "rust-embed-utils",
- "syn 2.0.42",
+ "syn 2.0.48",
  "walkdir",
 ]
 
@@ -3938,7 +3775,7 @@ version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f6d5f2436026b4f6e79dc829837d467cc7e9a55ee40e750d716713540715a2df"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "ordered-multimap",
 ]
 
@@ -3974,20 +3811,32 @@ version = "0.38.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "errno",
+ "itoa",
  "libc",
- "linux-raw-sys 0.4.12",
+ "linux-raw-sys 0.4.13",
  "windows-sys 0.52.0",
 ]
 
 [[package]]
+name = "rustix-openpty"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a25c3aad9fc1424eb82c88087789a7d938e1829724f3e4043163baf0d13cfc12"
+dependencies = [
+ "errno",
+ "libc",
+ "rustix 0.38.28",
+]
+
+[[package]]
 name = "rustybuzz"
 version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f0ae5692c5beaad6a9e22830deeed7874eae8a4e3ba4076fb48e12c56856222c"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "bytemuck",
  "libm",
  "smallvec",
@@ -3999,12 +3848,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "ryu"
-version = "1.0.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
-
-[[package]]
 name = "same-file"
 version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4033,7 +3876,7 @@ dependencies = [
  "ab_glyph",
  "log",
  "memmap2 0.5.10",
- "smithay-client-toolkit",
+ "smithay-client-toolkit 0.16.1",
  "tiny-skia 0.8.4",
 ]
 
@@ -4054,33 +3897,33 @@ checksum = "58bf37232d3bb9a2c4e641ca2a11d83b5062066f88df7fed36c28772046d65ba"
 
 [[package]]
 name = "serde"
-version = "1.0.193"
+version = "1.0.195"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
+checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.193"
+version = "1.0.195"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
+checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "serde_repr"
-version = "0.1.17"
+version = "0.1.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145"
+checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -4093,24 +3936,12 @@ dependencies = [
 ]
 
 [[package]]
-name = "serde_yaml"
-version = "0.8.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b"
-dependencies = [
- "indexmap 1.9.3",
- "ryu",
- "serde",
- "yaml-rust",
-]
-
-[[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",
+ "cfg-if",
  "cpufeatures",
  "digest",
 ]
@@ -4121,7 +3952,7 @@ version = "0.10.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "cpufeatures",
  "digest",
 ]
@@ -4137,18 +3968,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "signal-hook-mio"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af"
-dependencies = [
- "libc",
- "mio 0.6.23",
- "mio-uds",
- "signal-hook",
-]
-
-[[package]]
 name = "signal-hook-registry"
 version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4198,9 +4017,9 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.11.2"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
 
 [[package]]
 name = "smithay-client-toolkit"
@@ -4208,7 +4027,7 @@ version = "0.16.1"
 source = "git+https://github.com/pop-os/client-toolkit?branch=wayland-resize#515820fc86cf8cb3ac8d087dc6c87852767627ca"
 dependencies = [
  "bitflags 1.3.2",
- "calloop",
+ "calloop 0.10.6",
  "dlib",
  "lazy_static",
  "log",
@@ -4216,18 +4035,44 @@ dependencies = [
  "nix 0.24.3",
  "pkg-config",
  "wayland-client 0.29.5",
- "wayland-cursor",
- "wayland-protocols",
+ "wayland-cursor 0.29.5",
+ "wayland-protocols 0.29.5",
+]
+
+[[package]]
+name = "smithay-client-toolkit"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60e3d9941fa3bacf7c2bf4b065304faa14164151254cd16ce1b1bc8fc381600f"
+dependencies = [
+ "bitflags 2.4.2",
+ "calloop 0.12.4",
+ "calloop-wayland-source",
+ "cursor-icon",
+ "libc",
+ "log",
+ "memmap2 0.9.3",
+ "rustix 0.38.28",
+ "thiserror",
+ "wayland-backend",
+ "wayland-client 0.31.1",
+ "wayland-csd-frame",
+ "wayland-cursor 0.31.0",
+ "wayland-protocols 0.31.0",
+ "wayland-protocols-wlr",
+ "wayland-scanner 0.31.0",
+ "xkeysym",
 ]
 
 [[package]]
 name = "smithay-clipboard"
-version = "0.6.6"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a345c870a1fae0b1b779085e81b51e614767c239e93503588e54c5b17f4b0e8"
+checksum = "0bb62b280ce5a5cba847669933a0948d00904cf83845c944eae96a4738cea1a6"
 dependencies = [
- "smithay-client-toolkit",
- "wayland-client 0.29.5",
+ "libc",
+ "smithay-client-toolkit 0.18.0",
+ "wayland-backend",
 ]
 
 [[package]]
@@ -4237,7 +4082,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
 dependencies = [
  "libc",
- "winapi 0.3.9",
+ "winapi",
 ]
 
 [[package]]
@@ -4300,12 +4145,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "spsc-buffer"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be6c3f39c37a4283ee4b43d1311c828f2e1fb0541e76ea0cb1a2abd9ef2f5b3b"
-
-[[package]]
 name = "static_assertions"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4371,9 +4210,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.42"
+version = "2.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b7d0a2c048d661a1a59fcd7355baa232f7ed34e0ee4df2eef3c1c1c0d3852d8"
+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -4402,51 +4241,51 @@ dependencies = [
 
 [[package]]
 name = "tempfile"
-version = "3.8.1"
+version = "3.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
+checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "fastrand 2.0.1",
  "redox_syscall 0.4.1",
  "rustix 0.38.28",
- "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",
 ]
 
 [[package]]
 name = "thiserror"
-version = "1.0.51"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7"
+checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.51"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df"
+checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "tiff"
-version = "0.9.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d172b0f4d3fba17ba89811858b9d3d97f928aece846475bbda076ca46736211"
+checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e"
 dependencies = [
  "flate2",
  "jpeg-decoder",
@@ -4462,7 +4301,7 @@ dependencies = [
  "arrayref",
  "arrayvec",
  "bytemuck",
- "cfg-if 1.0.0",
+ "cfg-if",
  "png",
  "tiny-skia-path 0.8.4",
 ]
@@ -4476,7 +4315,7 @@ dependencies = [
  "arrayref",
  "arrayvec",
  "bytemuck",
- "cfg-if 1.0.0",
+ "cfg-if",
  "log",
  "png",
  "tiny-skia-path 0.11.3",
@@ -4549,7 +4388,7 @@ dependencies = [
  "backtrace",
  "bytes",
  "libc",
- "mio 0.8.10",
+ "mio",
  "num_cpus",
  "pin-project-lite",
  "signal-hook-registry",
@@ -4594,7 +4433,7 @@ version = "0.19.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
 dependencies = [
- "indexmap 2.1.0",
+ "indexmap",
  "toml_datetime",
  "winnow",
 ]
@@ -4605,7 +4444,7 @@ version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
 dependencies = [
- "indexmap 2.1.0",
+ "indexmap",
  "serde",
  "serde_spanned",
  "toml_datetime",
@@ -4631,7 +4470,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -4672,7 +4511,7 @@ checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9"
 dependencies = [
  "memoffset 0.9.0",
  "tempfile",
- "winapi 0.3.9",
+ "winapi",
 ]
 
 [[package]]
@@ -4696,9 +4535,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-bidi-mirroring"
@@ -4735,9 +4574,9 @@ dependencies = [
 
 [[package]]
 name = "unicode-properties"
-version = "0.1.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7f91c8b21fbbaa18853c3d0801c78f4fc94cdb976699bb03e832e75f7fd22f0"
+checksum = "e4259d9d4425d9f0661581b804cb85fe66a4c631cadd8f490d1c13a35d5d9291"
 
 [[package]]
 name = "unicode-script"
@@ -4787,7 +4626,7 @@ version = "0.37.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "38b0a51b72ab80ca511d126b77feeeb4fb1e972764653e61feac30adc161a756"
 dependencies = [
- "base64 0.21.5",
+ "base64",
  "log",
  "pico-args",
  "usvg-parser",
@@ -4862,10 +4701,14 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[package]]
 name = "vte"
-version = "0.10.1"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6cbce692ab4ca2f1f3047fcf732430249c0e971bfdd2b234cf2c47ad93af5983"
+checksum = "40eb22ae96f050e0c0d6f7ce43feeae26c348fc4dea56928ca81537cfaa6188b"
 dependencies = [
+ "bitflags 2.4.2",
+ "cursor-icon",
+ "log",
+ "serde",
  "utf8parse",
  "vte_generate_state_changes",
 ]
@@ -4904,36 +4747,36 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.89"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
+checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "wasm-bindgen-macro",
 ]
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.89"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826"
+checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.48",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.39"
+version = "0.4.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12"
+checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "js-sys",
  "wasm-bindgen",
  "web-sys",
@@ -4941,9 +4784,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.89"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2"
+checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -4951,22 +4794,22 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.89"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
+checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.48",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.89"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f"
+checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b"
 
 [[package]]
 name = "wasm-timer"
@@ -5019,7 +4862,7 @@ version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1ca7d52347346f5473bf2f56705f360e8440873052e575e55890c4fa57843ed3"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "nix 0.26.4",
  "wayland-backend",
  "wayland-scanner 0.31.0",
@@ -5038,6 +4881,17 @@ dependencies = [
 ]
 
 [[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.2",
+ "cursor-icon",
+ "wayland-backend",
+]
+
+[[package]]
 name = "wayland-cursor"
 version = "0.29.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5049,6 +4903,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "wayland-cursor"
+version = "0.31.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a44aa20ae986659d6c77d64d808a046996a932aa763913864dc40c359ef7ad5b"
+dependencies = [
+ "nix 0.26.4",
+ "wayland-client 0.31.1",
+ "xcursor",
+]
+
+[[package]]
 name = "wayland-protocols"
 version = "0.29.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5061,6 +4926,31 @@ dependencies = [
 ]
 
 [[package]]
+name = "wayland-protocols"
+version = "0.31.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e253d7107ba913923dc253967f35e8561a3c65f914543e46843c88ddd729e21c"
+dependencies = [
+ "bitflags 2.4.2",
+ "wayland-backend",
+ "wayland-client 0.31.1",
+ "wayland-scanner 0.31.0",
+]
+
+[[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.2",
+ "wayland-backend",
+ "wayland-client 0.31.1",
+ "wayland-protocols 0.31.0",
+ "wayland-scanner 0.31.0",
+]
+
+[[package]]
 name = "wayland-scanner"
 version = "0.29.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5128,7 +5018,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "30e7d227c9f961f2061c26f4cb0fbd4df0ef37e056edd0931783599d6c94ef24"
 dependencies = [
  "arrayvec",
- "cfg-if 1.0.0",
+ "cfg-if",
  "flume 0.11.0",
  "js-sys",
  "log",
@@ -5154,7 +5044,7 @@ checksum = "ef91c1d62d1e9e81c79e600131a258edf75c9531cbdbde09c44a011a47312726"
 dependencies = [
  "arrayvec",
  "bit-vec",
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "codespan-reporting",
  "log",
  "naga",
@@ -5179,7 +5069,7 @@ dependencies = [
  "arrayvec",
  "ash",
  "bit-set",
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "block",
  "core-graphics-types",
  "d3d12",
@@ -5209,7 +5099,7 @@ dependencies = [
  "wasm-bindgen",
  "web-sys",
  "wgpu-types",
- "winapi 0.3.9",
+ "winapi",
 ]
 
 [[package]]
@@ -5218,7 +5108,7 @@ version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0d5ed5f0edf0de351fe311c53304986315ce866f394a2e6df0c4b3c70774bcdd"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "js-sys",
  "web-sys",
 ]
@@ -5231,12 +5121,6 @@ checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8"
 
 [[package]]
 name = "winapi"
-version = "0.2.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
-
-[[package]]
-name = "winapi"
 version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
@@ -5246,12 +5130,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "winapi-build"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
-
-[[package]]
 name = "winapi-i686-pc-windows-gnu"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5263,7 +5141,7 @@ version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
 dependencies = [
- "winapi 0.3.9",
+ "winapi",
 ]
 
 [[package]]
@@ -5272,7 +5150,7 @@ version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "44c17110f57155602a80dca10be03852116403c9ff3cd25b079d666f2aa3df6e"
 dependencies = [
- "winapi 0.3.9",
+ "winapi",
 ]
 
 [[package]]
@@ -5349,19 +5227,6 @@ dependencies = [
 
 [[package]]
 name = "windows-sys"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2"
-dependencies = [
- "windows_aarch64_msvc 0.36.1",
- "windows_i686_gnu 0.36.1",
- "windows_i686_msvc 0.36.1",
- "windows_x86_64_gnu 0.36.1",
- "windows_x86_64_msvc 0.36.1",
-]
-
-[[package]]
-name = "windows-sys"
 version = "0.45.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
@@ -5452,12 +5317,6 @@ checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47"
-
-[[package]]
-name = "windows_aarch64_msvc"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
@@ -5476,12 +5335,6 @@ checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6"
-
-[[package]]
-name = "windows_i686_gnu"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
@@ -5500,12 +5353,6 @@ checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024"
-
-[[package]]
-name = "windows_i686_msvc"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
@@ -5524,12 +5371,6 @@ checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1"
-
-[[package]]
-name = "windows_x86_64_gnu"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
@@ -5566,12 +5407,6 @@ checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"
-
-[[package]]
-name = "windows_x86_64_msvc"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
@@ -5602,7 +5437,7 @@ dependencies = [
  "instant",
  "libc",
  "log",
- "mio 0.8.10",
+ "mio",
  "ndk",
  "objc2",
  "once_cell",
@@ -5611,11 +5446,11 @@ dependencies = [
  "raw-window-handle",
  "redox_syscall 0.3.5",
  "sctk-adwaita",
- "smithay-client-toolkit",
+ "smithay-client-toolkit 0.16.1",
  "wasm-bindgen",
  "wayland-client 0.29.5",
  "wayland-commons",
- "wayland-protocols",
+ "wayland-protocols 0.29.5",
  "wayland-scanner 0.29.5",
  "web-sys",
  "windows-sys 0.45.0",
@@ -5623,53 +5458,15 @@ dependencies = [
 ]
 
 [[package]]
-name = "winit"
-version = "0.28.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9596d90b45384f5281384ab204224876e8e8bf7d58366d9b795ad99aa9894b94"
-dependencies = [
- "android-activity",
- "bitflags 1.3.2",
- "cfg_aliases",
- "core-foundation",
- "core-graphics 0.22.3",
- "dispatch",
- "instant",
- "libc",
- "log",
- "ndk",
- "objc2",
- "once_cell",
- "orbclient",
- "raw-window-handle",
- "redox_syscall 0.3.5",
- "serde",
- "wasm-bindgen",
- "wayland-scanner 0.29.5",
- "web-sys",
- "windows-sys 0.45.0",
-]
-
-[[package]]
 name = "winnow"
-version = "0.5.30"
+version = "0.5.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b5c3db89721d50d0e2a673f5043fc4722f76dcc352d7b1ab8b8288bed4ed2c5"
+checksum = "b7cf47b659b318dccbd69cc4797a39ae128f533dce7902a1096044d1967b9c16"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
-name = "ws2_32-sys"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
-dependencies = [
- "winapi 0.2.8",
- "winapi-build",
-]
-
-[[package]]
 name = "x11-dl"
 version = "2.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5682,18 +5479,6 @@ dependencies = [
 
 [[package]]
 name = "x11rb"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e99be55648b3ae2a52342f9a870c0e138709a3493261ce9b469afe6e4df6d8a"
-dependencies = [
- "gethostname 0.2.3",
- "nix 0.22.3",
- "winapi 0.3.9",
- "winapi-wsapoll",
-]
-
-[[package]]
-name = "x11rb"
 version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b1641b26d4dec61337c35a1b1aaf9e3cba8f46f0b43636c609ab0291a648040a"
@@ -5704,9 +5489,20 @@ dependencies = [
  "libloading 0.7.4",
  "nix 0.26.4",
  "once_cell",
- "winapi 0.3.9",
+ "winapi",
  "winapi-wsapoll",
- "x11rb-protocol",
+ "x11rb-protocol 0.12.0",
+]
+
+[[package]]
+name = "x11rb"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8f25ead8c7e4cba123243a6367da5d3990e0d3affa708ea19dce96356bd9f1a"
+dependencies = [
+ "gethostname 0.4.3",
+ "rustix 0.38.28",
+ "x11rb-protocol 0.13.0",
 ]
 
 [[package]]
@@ -5719,6 +5515,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "x11rb-protocol"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e63e71c4b8bd9ffec2c963173a4dc4cbde9ee96961d4fcb4429db9929b606c34"
+
+[[package]]
 name = "xcursor"
 version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5737,10 +5539,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2769203cd13a0c6015d515be729c526d041e9cf2c0cc478d57faee85f40c6dcd"
 dependencies = [
  "nix 0.26.4",
- "winapi 0.3.9",
+ "winapi",
 ]
 
 [[package]]
+name = "xkeysym"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "054a8e68b76250b253f671d1268cb7f1ae089ec35e195b2efb2a4e9a836d0621"
+
+[[package]]
 name = "xml-rs"
 version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5765,15 +5573,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "53be06678ed9e83edb1745eb72efc0bbcd7b5c3c35711a860906aed827a13d61"
 
 [[package]]
-name = "yaml-rust"
-version = "0.4.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
-dependencies = [
- "linked-hash-map",
-]
-
-[[package]]
 name = "yazi"
 version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5814,7 +5613,7 @@ dependencies = [
  "tokio",
  "tracing",
  "uds_windows",
- "winapi 0.3.9",
+ "winapi",
  "xdg-home",
  "zbus_macros",
  "zbus_names",
@@ -5869,7 +5668,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.48",
 ]
 
 [[package]]
diff --git a/pkgs/by-name/co/cosmic-term/package.nix b/pkgs/by-name/co/cosmic-term/package.nix
index a78ef544f941..a8aba6bff62a 100644
--- a/pkgs/by-name/co/cosmic-term/package.nix
+++ b/pkgs/by-name/co/cosmic-term/package.nix
@@ -1,31 +1,30 @@
-{
-  lib,
-  stdenv,
-  fetchFromGitHub,
-  rust,
-  rustPlatform,
-  cmake,
-  makeBinaryWrapper,
-  cosmic-icons,
-  just,
-  pkg-config,
-  libxkbcommon,
-  libinput,
-  fontconfig,
-  freetype,
-  wayland,
-  xorg
+{ lib
+, cosmic-icons
+, fetchFromGitHub
+, fontconfig
+, freetype
+, just
+, libglvnd
+, libinput
+, libxkbcommon
+, makeBinaryWrapper
+, mesa
+, pkg-config
+, rustPlatform
+, stdenv
+, vulkan-loader
+, wayland
+, xorg
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "cosmic-term";
-  version = "unstable-2023-12-26";
-
+  version = "0-unstable-2024-01-19";
   src = fetchFromGitHub {
     owner = "pop-os";
     repo = pname;
-    rev = "bf3f507fdd73a06ab1f9b199a98dca6988aafec2";
-    hash = "sha256-c5RNrC0AZvz+O3nj7VvMQuA/U0sgxZCVHn+cc+4pIN8=";
+    rev = "6d519018a070e25db0cd099a2752a7add4d6b138";
+    hash = "sha256-gfvBLrhq6Bz6cQdgiLH5o8vyptOT+q3xwUYoDG6eGTY=";
   };
 
   cargoLock = {
@@ -33,12 +32,13 @@ rustPlatform.buildRustPackage rec {
     outputHashes = {
       "accesskit-0.11.0" = "sha256-xVhe6adUb8VmwIKKjHxwCwOo5Y1p3Or3ylcJJdLDrrE=";
       "atomicwrites-0.4.2" = "sha256-QZSuGPrJXh+svMeFWqAXoqZQxLq/WfIiamqvjJNVhxA=";
-      "cosmic-config-0.1.0" = "sha256-V371fmSmLIwUxtx6w+C55cBJ8oyYgN86r3FZ8rGBLEs=";
-      "cosmic-text-0.10.0" = "sha256-/4Hg+7R0LRF4paXIREkMOTtbQ1xgONym5nKb/TuyeD4=";
-      "glyphon-0.3.0" = "sha256-T7hvqtR3zi9wNemFrPPGakq2vEraLpnPkN7umtumwVg=";
+      "cosmic-config-0.1.0" = "sha256-uo4So9I/jD3LPfigyKwESUdZiK1wqm7rg9wYwyv4uKc=";
+      "cosmic-text-0.10.0" = "sha256-S0GkKUiUsSkL1CZHXhtpQy7Mf5+6fqNuu33RRtxG3mE=";
+      "glyphon-0.4.1" = "sha256-mwJXi63LTBIVFrFcywr/NeOJKfMjQaQkNl3CSdEgrZc=";
+      "libc-0.2.151" = "sha256-VcNTcLOnVXMlX86yeY0VDfIfKOZyyx/DO1Hbe30BsaI=";
       "sctk-adwaita-0.5.4" = "sha256-yK0F2w/0nxyKrSiHZbx7+aPNY2vlFs7s8nu/COp2KqQ=";
-      "softbuffer-0.3.3" = "sha256-eKYFVr6C1+X6ulidHIu9SP591rJxStxwL9uMiqnXx4k=";
       "smithay-client-toolkit-0.16.1" = "sha256-z7EZThbh7YmKzAACv181zaEZmWxTrMkFRzP0nfsHK6c=";
+      "softbuffer-0.3.3" = "sha256-eKYFVr6C1+X6ulidHIu9SP591rJxStxwL9uMiqnXx4k=";
       "taffy-0.3.11" = "sha256-SCx9GEIJjWdoNVyq+RZAGn0N71qraKZxf9ZWhvyzLaI=";
       "winit-0.28.6" = "sha256-FhW6d2XnXCGJUMoT9EMQew9/OPXiehy/JraeCiVd76M=";
     };
@@ -49,18 +49,20 @@ rustPlatform.buildRustPackage rec {
   '';
 
   nativeBuildInputs = [
-    cmake
     just
     pkg-config
     makeBinaryWrapper
   ];
+
   buildInputs = [
-    libxkbcommon
-    xorg.libX11
-    libinput
     fontconfig
     freetype
+    libglvnd
+    libinput
+    libxkbcommon
+    vulkan-loader
     wayland
+    xorg.libX11
   ];
 
   dontUseJustBuild = true;
@@ -71,23 +73,40 @@ rustPlatform.buildRustPackage rec {
     (placeholder "out")
     "--set"
     "bin-src"
-    "target/${
-      rust.lib.toRustTargetSpecShort stdenv.hostPlatform
-    }/release/cosmic-term"
+    "target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-term"
+  ];
+
+  # Force linking to libEGL, which is always dlopen()ed, and to
+  # libwayland-client, which is always dlopen()ed except by the
+  # obscure winit backend.
+  RUSTFLAGS = map (a: "-C link-arg=${a}") [
+    "-Wl,--push-state,--no-as-needed"
+    "-lEGL"
+    "-lwayland-client"
+    "-Wl,--pop-state"
   ];
 
   # LD_LIBRARY_PATH can be removed once tiny-xlib is bumped above 0.2.2
   postInstall = ''
     wrapProgram "$out/bin/${pname}" \
       --suffix XDG_DATA_DIRS : "${cosmic-icons}/share" \
-      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ xorg.libX11 xorg.libXcursor xorg.libXrandr xorg.libXi wayland libxkbcommon ]}
+      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [
+        libxkbcommon
+        mesa.drivers
+        vulkan-loader
+        xorg.libX11
+        xorg.libXcursor
+        xorg.libXi
+        xorg.libXrandr
+      ]}
   '';
 
   meta = with lib; {
     homepage = "https://github.com/pop-os/cosmic-term";
     description = "Terminal for the COSMIC Desktop Environment";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ ahoneybun ];
+    maintainers = with maintainers; [ ahoneybun nyanbinary ];
     platforms = platforms.linux;
+    mainProgram = "cosmic-term";
   };
 }
diff --git a/pkgs/by-name/cr/crawley/package.nix b/pkgs/by-name/cr/crawley/package.nix
index 3e0f4bc205f0..bd0c2e6816f3 100644
--- a/pkgs/by-name/cr/crawley/package.nix
+++ b/pkgs/by-name/cr/crawley/package.nix
@@ -6,18 +6,18 @@
 
 buildGoModule rec {
   pname = "crawley";
-  version = "1.7.1";
+  version = "1.7.2";
 
   src = fetchFromGitHub {
     owner = "s0rg";
     repo = "crawley";
     rev = "v${version}";
-    hash = "sha256-IRhi6z2TQZOOw8EZkJ3/VEOBzAlg0DQjq9wSt+/c3ck=";
+    hash = "sha256-hQvmWob5zCM1dh9oIACjIndaus0gYSidrs4QZM5jtEg=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
 
-  vendorHash = "sha256-0BUbALCBR9CGwkqz1cUnzF3xjQkkzfdS7JDDTXkGmN4=";
+  vendorHash = "sha256-u1y70ydfVG/aH1CVKOUDBmtZgTLlXXrQGt3mfGDibzs=";
 
   ldflags = [ "-w" "-s" ];
 
diff --git a/pkgs/by-name/cr/cro-mag-rally/package.nix b/pkgs/by-name/cr/cro-mag-rally/package.nix
new file mode 100644
index 000000000000..24cdf0410059
--- /dev/null
+++ b/pkgs/by-name/cr/cro-mag-rally/package.nix
@@ -0,0 +1,51 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, SDL2
+, cmake
+, makeWrapper
+}:
+
+stdenv.mkDerivation {
+  pname = "CroMagRally";
+  version = "3.0.0-unstable-2023-05-21";
+
+  src = fetchFromGitHub {
+    owner = "jorio";
+    repo = "CroMagRally";
+    rev = "5983de40c180b50bbbec8b04f5f5f1ceccd1901b";
+    hash = "sha256-QbUkrNY7DZQts8xaimE83yXpCweKvnn0uDb1CawLfEE=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    cmake
+    makeWrapper
+  ];
+  buildInputs = [
+    SDL2
+  ];
+
+  cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p "$out/share/CroMagRally"
+    mv Data ReadMe.txt "$out/share/CroMagRally/"
+    install -Dm755 {.,$out/bin}/CroMagRally
+    wrapProgram $out/bin/CroMagRally --chdir "$out/share/CroMagRally"
+    install -Dm644 $src/packaging/cromagrally.desktop $out/share/applications/cromagrally.desktop
+    install -Dm644 $src/packaging/cromagrally-desktopicon.png $out/share/pixmaps/cromagrally-desktopicon.png
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A port of Cro-Mag Rally, a 2000 Macintosh game by Pangea Software, for modern operating systems";
+    homepage = "https://github.com/jorio/CroMagRally";
+    changelog = "https://github.com/jorio/CroMagRally/releases";
+    license = licenses.cc-by-sa-40;
+    maintainers = with maintainers; [ lux ];
+    platforms = platforms.linux;
+    mainProgram = "CroMagRally";
+  };
+}
diff --git a/pkgs/by-name/cr/cryptor/package.nix b/pkgs/by-name/cr/cryptor/package.nix
index 5c11cab2f679..b47edbbab572 100644
--- a/pkgs/by-name/cr/cryptor/package.nix
+++ b/pkgs/by-name/cr/cryptor/package.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "cryptor";
-  version = "1.0.3";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "moson-mo";
     repo = "cryptor";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-bgOOueOKSc6dLyxGU+ds9XYWM5mO+qCKC4dkCu2B1sQ=";
+    hash = "sha256-EqiaWgwhSLwZnovqYQ9rfHwvhWucmK0ujSsOhMJEJ1A=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/dc/dc3dd/package.nix b/pkgs/by-name/dc/dc3dd/package.nix
new file mode 100644
index 000000000000..2744168adfc7
--- /dev/null
+++ b/pkgs/by-name/dc/dc3dd/package.nix
@@ -0,0 +1,41 @@
+{ lib
+, stdenv
+, fetchzip
+, perlPackages
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "dc3dd";
+  version = "7.3.1";
+
+  src = fetchzip {
+    url = "mirror://sourceforge/dc3dd/dc3dd-${finalAttrs.version}.zip";
+    hash = "sha256-SYDoqGlsROHX1a0jJX11F+yp6CeFK+tZbYOOnScC6Ig=";
+  };
+
+  outputs = [ "out" "man" ];
+
+  preConfigure = ''
+    chmod +x configure
+  '';
+
+  buildInputs = [ perlPackages.LocaleGettext ];
+
+  makeFlags = [
+    "PREFIX=$out"
+  ];
+
+  configureFlags = lib.optionals (stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64) [ "--build=arm" ];
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "A patched version of dd that includes a number of features useful for computer forensics";
+    mainProgram = "dc3dd";
+    homepage = "https://sourceforge.net/projects/dc3dd/";
+    maintainers = with maintainers; [ d3vil0p3r ];
+    platforms = platforms.unix;
+    license = licenses.gpl3Plus; # Refer to https://sourceforge.net/p/dc3dd/code/HEAD/tree/COPYING
+    broken = stdenv.isDarwin;
+  };
+})
diff --git a/pkgs/by-name/de/debianutils/package.nix b/pkgs/by-name/de/debianutils/package.nix
index 8f27316e483b..9d7952c8d379 100644
--- a/pkgs/by-name/de/debianutils/package.nix
+++ b/pkgs/by-name/de/debianutils/package.nix
@@ -8,14 +8,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "debianutils";
-  version = "5.15";
+  version = "5.16";
 
   src = fetchFromGitLab {
     domain = "salsa.debian.org";
     owner = "debian";
     repo = "debianutils";
     rev = "debian/${finalAttrs.version}";
-    hash = "sha256-o9HPiJCKcTJSoVDCjUcYPkqa6wnAuvCFOFhPdPSKS3A=";
+    hash = "sha256-v0sEk0xnFjWsBoDBge57kbANn8afP2EAImgwFihq7bI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/de/deskreen/package.nix b/pkgs/by-name/de/deskreen/package.nix
new file mode 100644
index 000000000000..746f813f2ea0
--- /dev/null
+++ b/pkgs/by-name/de/deskreen/package.nix
@@ -0,0 +1,44 @@
+{ lib
+, stdenvNoCC
+, fetchurl
+, appimageTools
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "deskreen";
+  version = "2.0.4";
+
+  src = fetchurl {
+    url = "https://github.com/pavlobu/deskreen/releases/download/v${finalAttrs.version}/Deskreen-${finalAttrs.version}.AppImage";
+    hash = "sha256-0jI/mbXaXanY6ay2zn+dPWGvsqWRcF8aYHRvfGVsObE=";
+  };
+  deskreenUnwrapped = appimageTools.wrapType2 {
+    name = "deskreen";
+    src = finalAttrs.src;
+  };
+
+  buildInputs = [
+    finalAttrs.deskreenUnwrapped
+  ];
+
+  dontUnpack = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    ln -s ${finalAttrs.deskreenUnwrapped}/bin/deskreen $out/bin/deskreen
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Turn any device into a secondary screen for your computer";
+    homepage = "https://deskreen.com";
+    license = lib.licenses.agpl3;
+    mainProgram = "deskreen";
+    maintainers = with lib.maintainers; [ leo248 drupol ];
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/do/docfd/package.nix b/pkgs/by-name/do/docfd/package.nix
new file mode 100644
index 000000000000..6ed94576dc99
--- /dev/null
+++ b/pkgs/by-name/do/docfd/package.nix
@@ -0,0 +1,44 @@
+{ lib, ocamlPackages, fetchFromGitHub, python3, dune_3, makeWrapper, poppler_utils }:
+
+ocamlPackages.buildDunePackage rec {
+  pname = "docfd";
+  version = "2.1.0";
+
+  minimalOCamlVersion = "5.1";
+
+  src = fetchFromGitHub {
+    owner = "darrenldl";
+    repo = "docfd";
+    rev = version;
+    hash = "sha256-1DobGm6nI14951KNKEE0D3AF1TFsWQUEhe4L1PdWBDw=";
+  };
+
+  nativeBuildInputs = [ python3 dune_3 makeWrapper ];
+  buildInputs = [ poppler_utils ] ++
+    (with ocamlPackages; [ oseq spelll notty nottui lwd cmdliner domainslib digestif yojson eio_main containers-data timedesc ]);
+
+  postInstall = ''
+  # docfd needs pdftotext from popler_utils to allow pdf search
+  wrapProgram $out/bin/docfd --prefix PATH : "${lib.getBin poppler_utils}/bin/"
+  '';
+
+  meta = with lib; {
+    description = "TUI multiline fuzzy document finder";
+    longDescription = ''
+      Interactive grep, but word/token/phrase based rather than regex
+      and line based, so you can search across multiple lines (simlar to
+      Recoll but TUI).
+      Aims to provide a good UX via text editor and PDF viewer integration.
+      When opening a text file, Docfd opens file at first line of search
+      result. If PDF, then Docfd opens file at first page of the search
+      result and starts a text search of the most unique word of the matched
+      phrase within the same page.
+      Main intended use case: navigating directories of notes and PDFs.
+    '';
+    homepage = "https://github.com/darrenldl/docfd";
+    license = licenses.mit;
+    maintainers = with maintainers; [ chewblacka ];
+    platforms = platforms.all;
+    mainProgram = "docfd";
+  };
+}
diff --git a/pkgs/by-name/do/doge/package.nix b/pkgs/by-name/do/doge/package.nix
index 975fbfa84922..d35d6708bdf2 100644
--- a/pkgs/by-name/do/doge/package.nix
+++ b/pkgs/by-name/do/doge/package.nix
@@ -2,26 +2,21 @@
   lib,
   python3Packages,
   fetchFromGitHub,
-  fetchpatch,
 }:
-python3Packages.buildPythonPackage rec {
+python3Packages.buildPythonApplication rec {
   pname = "doge";
-  version = "3.6.0";
+  version = "3.7.0";
 
   src = fetchFromGitHub {
     owner = "Olivia5k";
     repo = "doge";
     rev = version;
-    hash = "sha256-72nRghD5k0ofrlvV3hEdyrr6uzV4+8At1bOCmRZTxhk=";
+    hash = "sha256-LmEbDQUZe/3lg/Ze+WUNyYfC8zMr88/rn10sL0jgbGA=";
   };
 
-  patches = [
-    # https://github.com/Olivia5k/doge/pull/66, adds a small doge
-    (fetchpatch {
-      url = "https://github.com/Olivia5k/doge/commit/14e3ccc0a3f1e91862492e20a34d008768a34039.patch";
-      hash = "sha256-3F+7F9RuoiVWoN+69T7tM871AXX1IQbHqFxD+S3TjxQ=";
-    })
-  ];
+  pyproject = true;
+  nativeBuildInputs = [python3Packages.setuptools];
+  propagatedBuildInputs = [python3Packages.python-dateutil];
 
   meta = {
     homepage = "https://github.com/Olivia5k/doge";
diff --git a/pkgs/by-name/do/dorion/package.nix b/pkgs/by-name/do/dorion/package.nix
index 9f99445c3c16..e80edc25835d 100644
--- a/pkgs/by-name/do/dorion/package.nix
+++ b/pkgs/by-name/do/dorion/package.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   name = "dorion";
-  version = "3.1.1";
+  version = "4.1.1";
 
   src = fetchurl {
     url = "https://github.com/SpikeHD/Dorion/releases/download/v${finalAttrs.version }/Dorion_${finalAttrs.version}_amd64.deb";
-    hash = "sha256-wvlmR4IlWOKF+T6Uuc6MainWs+cqeJMO9E6Suc/4QMU=";
+    hash = "sha256-H+r5+TPZ1Yyn0nE4MJGlN9WEn13nA8fkI1ZmfFor5Lk=";
   };
 
   unpackCmd = ''
diff --git a/pkgs/by-name/do/doublecmd/package.nix b/pkgs/by-name/do/doublecmd/package.nix
index 4a7077d1a80c..f245a68f26dd 100644
--- a/pkgs/by-name/do/doublecmd/package.nix
+++ b/pkgs/by-name/do/doublecmd/package.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "doublecmd";
-  version = "1.1.8";
+  version = "1.1.9";
 
   src = fetchFromGitHub {
     owner = "doublecmd";
     repo = "doublecmd";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-gUYn1b5X1uP1Ig2u/XiEP6MRhWs2ID64GSdBUSP5YEQ=";
+    hash = "sha256-NgCN72yACSzsnQdDxBM4QQCE8m5+FT31Ia51yEiXBfY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/dp/dpp/package.nix b/pkgs/by-name/dp/dpp/package.nix
new file mode 100644
index 000000000000..c76e3e57f403
--- /dev/null
+++ b/pkgs/by-name/dp/dpp/package.nix
@@ -0,0 +1,49 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, libopus
+, openssl
+, zlib
+, libsodium
+, pkg-config
+, autoPatchelfHook
+, lib
+}:
+stdenv.mkDerivation (finalAttrs: {
+  pname = "dpp";
+  version = "10.0.29";
+
+  src = fetchFromGitHub {
+    owner = "brainboxdotcc";
+    repo = "DPP";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-BJMg3MLSfb9x/2lPHITeI3SWwW1OZVUUMVltTWUcw9I=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    openssl
+    zlib
+    libsodium
+    libopus
+  ];
+
+  meta = {
+    description = "Discord C++ Library";
+    longDescription = ''
+      D++ (DPP) is a lightweight and simple library for Discord written in modern C++.
+      It is designed to cover as much of the API specification as possible and to have
+      an incredibly small memory footprint, even when caching large amounts of data.
+      This package contains version ${finalAttrs.version} of the DPP library.
+    '';
+    homepage = "https://github.com/brainboxdotcc/DPP";
+    changelog = "https://github.com/brainboxdotcc/DPP/releases/tag/${finalAttrs.src.rev}";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ xbz ];
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/du/dublin-traceroute/package.nix b/pkgs/by-name/du/dublin-traceroute/package.nix
index fedb585fc6a2..5f559c4d97c4 100644
--- a/pkgs/by-name/du/dublin-traceroute/package.nix
+++ b/pkgs/by-name/du/dublin-traceroute/package.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation {
   pname = "dublin-traceroute";
-  version = "0.4.2-unstable-2023-04-12";
+  version = "0.4.2-unstable-2024-01-09";
 
   src = fetchFromGitHub {
     owner = "insomniacslk";
     repo = "dublin-traceroute";
-    rev = "2fb78ea05596dfdf8f7764b497eb8d3a812cb695";
-    hash = "sha256-E1HYMd0wDTfAZ0TamQFazh8CPhMa2lNIbF4aEBf5qhk=";
+    rev = "b136db81cfbb30d5fd324dfccc97fca49a5ecee1";
+    hash = "sha256-FsolpeQGaLDjDE5Yk58t2hFQJgM58zafIx6s5ejYKnY=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/by-name/dy/dynamodb-local/package.nix b/pkgs/by-name/dy/dynamodb-local/package.nix
index d603d4377a82..2c9b2c041091 100644
--- a/pkgs/by-name/dy/dynamodb-local/package.nix
+++ b/pkgs/by-name/dy/dynamodb-local/package.nix
@@ -1,9 +1,21 @@
 { lib
 , stdenvNoCC
 , fetchurl
-, jre
+, jdk_headless
+, jre_minimal
 , makeBinaryWrapper
 }:
+let
+  jre = jre_minimal.override {
+    modules = [
+      "java.logging"
+      "java.xml"
+      "java.desktop"
+      "java.management"
+    ];
+    jdk = jdk_headless;
+  };
+in
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "dynamodb-local";
   version = "2023-12-14";
diff --git a/pkgs/by-name/ea/easyeasm/package.nix b/pkgs/by-name/ea/easyeasm/package.nix
new file mode 100644
index 000000000000..fc15fe0ab840
--- /dev/null
+++ b/pkgs/by-name/ea/easyeasm/package.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, makeWrapper
+, amass
+, alterx
+, oam-tools
+, subfinder
+}:
+
+buildGoModule rec {
+  pname = "easyeasm";
+  version = "1.0.6";
+
+  src = fetchFromGitHub {
+    owner = "g0ldencybersec";
+    repo = "EasyEASM";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-/PhoH+5k63rJL1N3V3IL1TP1oacsBfGfVw/OueN9j8M=";
+  };
+
+  vendorHash = "sha256-g+yaVIx4jxpAQ/+WrGKxhVeliYx7nLQe/zsGpxV4Fn4=";
+
+  nativeBuildInputs = [
+    makeWrapper
+  ];
+
+  ldflags = [
+    "-s"
+    "-w"
+  ];
+
+  postFixup = ''
+    wrapProgram $out/bin/easyeasm \
+      --prefix PATH : "${lib.makeBinPath [
+        amass
+        alterx
+        oam-tools
+        subfinder
+      ]}"
+  '';
+
+  meta = with lib; {
+    description = "Attack surface management tool";
+    homepage = "https://github.com/g0ldencybersec/EasyEASM";
+    changelog = "https://github.com/g0ldencybersec/EasyEASM/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "easyeasm";
+  };
+}
diff --git a/pkgs/development/libraries/science/biology/EBTKS/default.nix b/pkgs/by-name/eb/ebtks/package.nix
index 7a6122fbc8db..b2ffa4bdc20f 100644
--- a/pkgs/development/libraries/science/biology/EBTKS/default.nix
+++ b/pkgs/by-name/eb/ebtks/package.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchFromGitHub, cmake, libminc }:
 
-stdenv.mkDerivation rec {
-  pname = "EBTKS";
+stdenv.mkDerivation {
+  pname = "ebtks";
   version  = "unstable-2017-09-23";
 
   src = fetchFromGitHub {
     owner  = "BIC-MNI";
-    repo   = pname;
+    repo   = "EBTKS";
     rev    = "67e4e197d8a32d6462c9bdc7af44d64ebde4fb5c";
     sha256 = "1a1qw6i47fs1izx60l1ysabpmyx9j5sjnbdv8b47wi2xcc9i3hpq";
   };
@@ -15,6 +15,10 @@ stdenv.mkDerivation rec {
   postPatch = ''
     substituteInPlace templates/EBTKS/SimpleArray.h \
       --replace "#define FINITE(x) finite(x)" "#define FINITE(x) isfinite(x)"
+  ''
+  # error: ISO C++17 does not allow 'register' storage class specifier
+  + ''
+    find . -type f -exec sed -i -e 's/register //g' {} +
   '';
 
   nativeBuildInputs = [ cmake ];
@@ -23,7 +27,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/cmake" ];
 
   meta = with lib; {
-    homepage = "https://github.com/BIC-MNI/${pname}";
+    homepage = "https://github.com/BIC-MNI/EBTKS";
     description = "Library for working with MINC files";
     maintainers = with maintainers; [ bcdarwin ];
     platforms = platforms.unix;
diff --git a/pkgs/by-name/ei/eigenlayer/package.nix b/pkgs/by-name/ei/eigenlayer/package.nix
index b8ec1b3679bb..021a37b55cb9 100644
--- a/pkgs/by-name/ei/eigenlayer/package.nix
+++ b/pkgs/by-name/ei/eigenlayer/package.nix
@@ -6,13 +6,13 @@
 }:
 buildGoModule rec {
   pname = "eigenlayer";
-  version = "0.5.1";
+  version = "0.5.2";
 
   src = fetchFromGitHub {
     owner = "Layr-Labs";
     repo = "eigenlayer-cli";
     rev = "v${version}";
-    hash = "sha256-a+I0lfO8l9xorEnW9rUBPhq+xgAwKVjzIdgQX5al/cY=";
+    hash = "sha256-1S/fSb94umtWsPH9R7tCl8wqNPYnJ+E80pnQdheP+CE=";
   };
 
   vendorHash = "sha256-MWNHoUgnD1V1zeLwoos20eKIUGtFHao/k2yvowInkT0=";
diff --git a/pkgs/by-name/ei/eiwd/package.nix b/pkgs/by-name/ei/eiwd/package.nix
index 16a8cd98f30b..8aa11c83e34b 100644
--- a/pkgs/by-name/ei/eiwd/package.nix
+++ b/pkgs/by-name/ei/eiwd/package.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "eiwd";
-  version = "2.8-1";
+  version = "2.10-1";
 
   src = fetchFromGitHub {
     owner = "illiliti";
     repo = "eiwd";
     rev = finalAttrs.version;
-    hash = "sha256-SD/RJFuGBwFT4G73f93VrWO/6mGKQxjVhmNrpKRA/WY=";
+    hash = "sha256-AB4NBwfELy0yjzxS0rCcF641CGEdyM9tTB+ZWaM+erg=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/by-name/ek/eksctl/package.nix b/pkgs/by-name/ek/eksctl/package.nix
index 98b53645a622..784d50ed5128 100644
--- a/pkgs/by-name/ek/eksctl/package.nix
+++ b/pkgs/by-name/ek/eksctl/package.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "eksctl";
-  version = "0.167.0";
+  version = "0.170.0";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = pname;
     rev = version;
-    hash = "sha256-8CxXfjYN9i2AxuKeYmmYN0TQROGkurfmzbqU+aOMbTY=";
+    hash = "sha256-aYkydocr5PDpxUYO4Cee2AbNQzBgjJRdRo3lonQRPy8=";
   };
 
   vendorHash = "sha256-cuLzn0OZ5VC+RWGsJ8DCdJN8wm0DrsjH55K/cnyuqB8=";
diff --git a/pkgs/by-name/el/elektroid/package.nix b/pkgs/by-name/el/elektroid/package.nix
index c76ba7f1c6e5..b0730c3dc54b 100644
--- a/pkgs/by-name/el/elektroid/package.nix
+++ b/pkgs/by-name/el/elektroid/package.nix
@@ -14,7 +14,7 @@
 }:
 
 let
-  version = "2.5.2";
+  version = "3.0";
 in
 stdenv.mkDerivation {
   inherit version;
@@ -25,7 +25,7 @@ stdenv.mkDerivation {
     owner = "dagargo";
     repo = "elektroid";
     rev = version;
-    sha256 = "sha256-wpPHcrlCX7RD/TGH2Xrth+oCg98gMm035tfTBV70P+Y=";
+    sha256 = "sha256-77bsFB6hOxiW5f9bZ7IQIiwWd3MgtJUD37E6IXBfv/E=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/el/elf2nucleus/package.nix b/pkgs/by-name/el/elf2nucleus/package.nix
new file mode 100644
index 000000000000..c6cafbfc4578
--- /dev/null
+++ b/pkgs/by-name/el/elf2nucleus/package.nix
@@ -0,0 +1,39 @@
+{
+  installShellFiles
+, fetchFromGitHub
+, lib
+, micronucleus
+, rustPlatform
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "elf2nucleus";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "kpcyrd";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-FAIOtGfGow+0DrPPEBEfvaiinNZLQlGWKJ4DkMj63OA=";
+  };
+
+  cargoSha256 = "sha256-IeQnI6WTzxSI/VzoHtVukZtB1jX98wzLOT01NMLD5wQ=";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  buildInputs = [ micronucleus ];
+
+  postInstall = ''
+    installShellCompletion --cmd elf2nucleus \
+      --bash <($out/bin/elf2nucleus --completions bash) \
+      --fish <($out/bin/elf2nucleus --completions fish) \
+      --zsh <($out/bin/elf2nucleus --completions zsh)
+  '';
+
+  meta = with lib; {
+    description = "Integrate micronucleus into the cargo buildsystem, flash an AVR firmware from an elf file";
+    homepage = "https://github.com/kpcyrd/elf2nucleus";
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.marble ];
+  };
+}
diff --git a/pkgs/by-name/ex/exegol/package.nix b/pkgs/by-name/ex/exegol/package.nix
new file mode 100644
index 000000000000..033a46f0467e
--- /dev/null
+++ b/pkgs/by-name/ex/exegol/package.nix
@@ -0,0 +1,44 @@
+{
+  fetchPypi,
+  lib,
+  python3,
+}:
+python3.pkgs.buildPythonApplication rec {
+  pname = "Exegol";
+  version = "4.3.1";
+  format = "setuptools";
+
+  # Project has no unit tests
+  doCheck = false;
+
+  propagatedBuildInputs = with python3.pkgs; [
+    pyyaml
+    gitpython
+    docker
+    requests
+    rich
+    argcomplete
+  ];
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-cMbMmkG52A104iHVwe+6k1Fazi7fISeU/doWJqw5Whw=";
+  };
+
+  meta = with lib; {
+    description = "Fully featured and community-driven hacking environment";
+    longDescription = ''
+      Exegol is a community-driven hacking environment, powerful and yet
+      simple enough to be used by anyone in day to day engagements. Exegol is
+      the best solution to deploy powerful hacking environments securely,
+      easily, professionally. Exegol fits pentesters, CTF players, bug bounty
+      hunters, researchers, beginners and advanced users, defenders, from
+      stylish macOS users and corporate Windows pros to UNIX-like power users.
+    '';
+    homepage = "https://github.com/ThePorgs/Exegol";
+    changelog = "https://github.com/ThePorgs/Exegol/releases/tag/${version}";
+    license = licenses.gpl3Only;
+    mainProgram = "exegol";
+    maintainers = with maintainers; [ _0b11stan ];
+  };
+}
diff --git a/pkgs/by-name/ez/eza/package.nix b/pkgs/by-name/ez/eza/package.nix
index 8bc5951ddeb7..3045f9e967ee 100644
--- a/pkgs/by-name/ez/eza/package.nix
+++ b/pkgs/by-name/ez/eza/package.nix
@@ -17,16 +17,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "eza";
-  version = "0.17.1";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "eza-community";
     repo = "eza";
     rev = "v${version}";
-    hash = "sha256-PItKMPaqDG8L0dYHl8cLoyieljNpP41HLIFfpcLerNg=";
+    hash = "sha256-LUCsn4yCzqb6ASNMzWTxgZVDeoL3wYjjVbTRaI+Uh40=";
   };
 
-  cargoHash = "sha256-PrKP9Akv+qionFTHtlrY8bzaX9HaobhBJGVRMvXWfZU=";
+  cargoHash = "sha256-BUVtINvHqjeWM5dmLQpdEiTb4SMVJGtJ61bEaV0N8sg=";
 
   nativeBuildInputs = [ cmake pkg-config installShellFiles pandoc ];
   buildInputs = [ zlib ]
diff --git a/pkgs/by-name/fa/fac/package.nix b/pkgs/by-name/fa/fac/package.nix
new file mode 100644
index 000000000000..e7b09e73b355
--- /dev/null
+++ b/pkgs/by-name/fa/fac/package.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, makeBinaryWrapper
+, installShellFiles
+, git
+}:
+
+buildGoModule rec {
+  pname = "fac";
+  version = "2.0.0-unstable-2023-12-29";
+
+  src = fetchFromGitHub {
+    owner = "mkchoi212";
+    repo = "fac";
+    rev = "d232b05149564701ca3a21cd1a07be2540266cb2";
+    hash = "sha256-puSHbrzxTUebK1qRdWh71jY/f7TKgONS45T7PcZcy00=";
+  };
+
+  vendorHash = "sha256-bmGRVTjleAFS5GGf2i/zN8k3SBtaEc3RbKSVZyF6eN4=";
+
+  nativeBuildInputs = [
+    makeBinaryWrapper
+    installShellFiles
+  ];
+
+  postInstall = ''
+    wrapProgram $out/bin/fac \
+      --prefix PATH : ${lib.makeBinPath [ git ]}
+
+    # Install man page, not installed by default
+    installManPage assets/doc/fac.1
+  '';
+
+  meta = {
+    changelog = "https://github.com/mkchoi212/fac/releases/tag/v${version}";
+    description = "CUI for fixing git conflicts";
+    homepage = "https://github.com/mkchoi212/fac";
+    license = lib.licenses.mit;
+    mainProgram = "fac";
+    maintainers = with lib.maintainers; [ dtzWill ];
+  };
+}
diff --git a/pkgs/by-name/fa/fanbox-dl/package.nix b/pkgs/by-name/fa/fanbox-dl/package.nix
index 3c5556de1cd0..7d3a5fb3a8b3 100644
--- a/pkgs/by-name/fa/fanbox-dl/package.nix
+++ b/pkgs/by-name/fa/fanbox-dl/package.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "fanbox-dl";
-  version = "0.17.0";
+  version = "0.18.2";
 
   src = fetchFromGitHub {
     owner = "hareku";
     repo = "fanbox-dl";
     rev = "v${version}";
-    hash = "sha256-Fwc8S48zCE5s66gNVhJi9Y45v7rKo9K9dYQoao33mDE=";
+    hash = "sha256-hHjkV/wv+UMO4pyWDyMio3XbiyM6M02eLcT2rauvh/A=";
   };
 
-  vendorHash = "sha256-PsbPAwjqT2PP6DtrzHaQox1er/LAkiHPMVMLH4gmfpg=";
+  vendorHash = "sha256-o1DFHwSpHtbuU8BFcrk18hPRJJkeoPkYnybIz22Blfk=";
 
   # pings websites during testing
   doCheck = false;
diff --git a/pkgs/by-name/fa/fast-float/package.nix b/pkgs/by-name/fa/fast-float/package.nix
new file mode 100644
index 000000000000..7afc65b35e1e
--- /dev/null
+++ b/pkgs/by-name/fa/fast-float/package.nix
@@ -0,0 +1,29 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "fast-float";
+  version = "6.1.0";
+
+  src = fetchFromGitHub {
+    owner = "fastfloat";
+    repo = "fast_float";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-17GFUHm9FQAf3egqcQwQWqEgs2vH8K17GH2V1/DP8S0=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  meta = {
+    description = "Fast and exact implementation of the C++ from_chars functions for number types";
+    homepage = "https://github.com/fastfloat/fast_float";
+    license = with lib.licenses; [ asl20 boost mit ];
+    maintainers = with lib.maintainers; [ wegank ];
+    platforms = lib.platforms.all;
+  };
+})
diff --git a/pkgs/by-name/fb/fbset/package.nix b/pkgs/by-name/fb/fbset/package.nix
new file mode 100644
index 000000000000..7c05e4741d81
--- /dev/null
+++ b/pkgs/by-name/fb/fbset/package.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, unstableGitUpdater
+, bison
+, flex
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "fbset";
+  version = "2.1";
+
+  src = fetchFromGitHub {
+    owner = "sudipm-mukherjee";
+    repo = "fbset";
+    rev = "debian/${finalAttrs.version}-33";
+    hash = "sha256-nwWkQAA5+v5A8AmKg77mrSq2pXeSivxd0r7JyoBrs9A=";
+  };
+
+  nativeBuildInputs = [
+    bison
+    flex
+  ];
+
+  installFlags = [ "DESTDIR=$(out)" ];
+
+  passthru = {
+    updateScript = unstableGitUpdater { };
+  };
+
+  meta = with lib; {
+    description = "framebuffer device maintenance program";
+    # NOTE: the website of the original author disappeared, the only remaining
+    # repository is maintained by the debian maintainer of the package at
+    # https://github.com/sudipm-mukherjee/fbset
+    homepage = "http://users.telenet.be/geertu/Linux/fbdev/";
+    license = licenses.gpl2Only;
+    mainProgram = "fbset";
+    maintainers = with maintainers; [ baloo ];
+    platforms = platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/fe/fennel-ls/package.nix b/pkgs/by-name/fe/fennel-ls/package.nix
new file mode 100644
index 000000000000..bb23ed3f5a9f
--- /dev/null
+++ b/pkgs/by-name/fe/fennel-ls/package.nix
@@ -0,0 +1,29 @@
+{ lib
+, stdenv
+, fetchFromSourcehut
+, lua
+, luaPackages
+}:
+stdenv.mkDerivation (finalAttrs: {
+  pname = "fennel-ls";
+  version = "0.1.0";
+
+  src = fetchFromSourcehut {
+    owner = "~xerool";
+    repo = "fennel-ls";
+    rev = finalAttrs.version;
+    hash = "sha256-RW3WFJGwascD4YnnrAm/2LFnVigzgtfzVubLMDW9J5s=";
+  };
+  buildInputs = [ lua luaPackages.fennel ];
+  makeFlags = [ "PREFIX=$(out)" ];
+  installFlags = [ "PREFIX=$(out)" ];
+
+  meta = with lib; {
+    description = "A language server for intelligent editing of the Fennel Programming Language";
+    homepage = "https://git.sr.ht/~xerool/fennel-ls/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ yisraeldov ];
+    platforms = lua.meta.platforms;
+    mainProgram = "fennel-ls";
+  };
+})
diff --git a/pkgs/by-name/fi/files-cli/package.nix b/pkgs/by-name/fi/files-cli/package.nix
index e18913b0afbe..2fcc4482178b 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.12.22";
+  version = "2.12.27";
 
   src = fetchFromGitHub {
     repo = "files-cli";
     owner = "files-com";
     rev = "v${version}";
-    hash = "sha256-xjHPlZenkxZCJ9KwjyWsrAd1LiQRRuS9Z2fsRdHV7eA=";
+    hash = "sha256-MKW5jvdSd41nuz9oTP6sMzBo+TnNxE/+86KoPHRogBM=";
   };
 
-  vendorHash = "sha256-JzIafJOSlZUWwewp6sJaM7x3U+vZMdY4gBx/NfI7p5I=";
+  vendorHash = "sha256-rJtcocjH6GFmiDs7IizCMt/51RbHmvXdIIlWRETg6tg=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/by-name/fi/fira-math/package.nix b/pkgs/by-name/fi/fira-math/package.nix
new file mode 100644
index 000000000000..56bcb916d2d4
--- /dev/null
+++ b/pkgs/by-name/fi/fira-math/package.nix
@@ -0,0 +1,49 @@
+{ lib, fetchFromGitHub, fira-math, python3, stdenvNoCC }:
+
+let
+  pname = "fira-math";
+  date = "2023-10-09";
+  version = "0.3.4-unstable-${date}";
+in stdenvNoCC.mkDerivation {
+  inherit pname version;
+
+  src = fetchFromGitHub {
+    owner = "firamath";
+    repo = "firamath";
+    rev = "4bd85bc943eb6a194cfc090f7e194aa27d8f8419";
+    hash = "sha256-1skakzdvzf7nX2un7b9aCSj1pzBAQuueZEU7B1nARa4=";
+  };
+
+  nativeBuildInputs = [
+    (python3.withPackages (ps: with ps; [
+      fontmake
+      fonttools
+      glyphslib
+      toml
+    ]))
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    python scripts/build.py
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D "build/"*.otf -t "$out/share/fonts/opentype/"
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Math font with Unicode math support based on FiraSans and FiraGO";
+    homepage = "https://github.com/firamath/firamath";
+    license = licenses.ofl;
+    maintainers = [ maintainers.loicreynier ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/by-name/fl/flarectl/package.nix b/pkgs/by-name/fl/flarectl/package.nix
index 18bae5d27bfd..05066f90fb40 100644
--- a/pkgs/by-name/fl/flarectl/package.nix
+++ b/pkgs/by-name/fl/flarectl/package.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "flarectl";
-  version = "0.86.0";
+  version = "0.87.0";
 
   src = fetchFromGitHub {
     owner = "cloudflare";
     repo = "cloudflare-go";
     rev = "v${version}";
-    hash = "sha256-BGjay9DTlIU563bCSjprq5YwF47Xqj+ZulCda5t2t5I=";
+    hash = "sha256-M3Qc9PAcYASOQyEjWdGrLKx9h6uQGPftMJnD0Uc2buc=";
   };
 
   vendorHash = "sha256-Bn2SDvFWmmMYDpOe+KBuzyTZLpdDtYDPc8HixgEgX+M=";
diff --git a/pkgs/by-name/fl/fleng/package.nix b/pkgs/by-name/fl/fleng/package.nix
index cf41894b2fc7..3f825bde28cc 100644
--- a/pkgs/by-name/fl/fleng/package.nix
+++ b/pkgs/by-name/fl/fleng/package.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "fleng";
-  version = "17";
+  version = "19";
 
   src = fetchurl {
     url = "http://www.call-with-current-continuation.org/fleng/fleng-${finalAttrs.version}.tgz";
-    hash = "sha256-mZ0JDt1wDWUUvK5FNvGRkz1BEunmZAzHAuhURA1P89Q=";
+    hash = "sha256-xYMNGS3avZ9JsR8kJlSHz+C2XsLmhsDO/KTr5JquRK8=";
   };
 
   doCheck = true;
diff --git a/pkgs/by-name/fo/fortune-kind/package.nix b/pkgs/by-name/fo/fortune-kind/package.nix
index 80403d149f30..fc60b98db0eb 100644
--- a/pkgs/by-name/fo/fortune-kind/package.nix
+++ b/pkgs/by-name/fo/fortune-kind/package.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fortune-kind";
-  version = "0.1.12";
+  version = "0.1.13";
 
   src = fetchFromGitHub {
     owner = "cafkafk";
     repo = "fortune-kind";
     rev = "v${version}";
-    hash = "sha256-1abke8wPvIFTmvEJ83TdfONFPBuJHbgmVHAoKddoTRw=";
+    hash = "sha256-Tpg0Jq2EhkwQuz5ZOtv6Rb5YESSlmzLoJPTxYJNNgac=";
   };
 
-  cargoHash = "sha256-SRPhALRGkFZDl23Om/obg1Crd9yNXroN7F/7agobuqw=";
+  cargoHash = "sha256-hxbvsAQsZWUAgj8QAlcxqBA5YagLO3/vz9lQGJMHUjw=";
 
   nativeBuildInputs = [ makeBinaryWrapper installShellFiles ];
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv darwin.apple_sdk.frameworks.Security ];
diff --git a/pkgs/by-name/fr/free42/package.nix b/pkgs/by-name/fr/free42/package.nix
index 445b116a3aa4..6bb9d765b841 100644
--- a/pkgs/by-name/fr/free42/package.nix
+++ b/pkgs/by-name/fr/free42/package.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "free42";
-  version = "3.1.2";
+  version = "3.1.3";
 
   src = fetchFromGitHub {
     owner = "thomasokken";
     repo = "free42";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-v7Qi0ZRLXEoZqnbIiHTkvsftwMi9vUhgH7wOtHN84nU=";
+    hash = "sha256-bOW5OyWaWblH2/2O3jNxaTjJEPZw86dTFJdexdlVLPs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/fr/freefilesync/package.nix b/pkgs/by-name/fr/freefilesync/package.nix
index 6458fc58dcdc..e6865aedf2ac 100644
--- a/pkgs/by-name/fr/freefilesync/package.nix
+++ b/pkgs/by-name/fr/freefilesync/package.nix
@@ -56,6 +56,14 @@ stdenv.mkDerivation (finalAttrs: {
       patch = "Disable_wxWidgets_uncaught_exception_handling.patch";
       hash = "sha256-Fem7eDDKSqPFU/t12Jco8OmYC8FM9JgB4/QVy/ouvbI=";
     })
+    # Fix gui freeze
+    (fetchDebianPatch {
+      pname = "freefilesync";
+      version = "13.3";
+      debianRevision = "1";
+      patch = "revert_buggy_gtk3_change_in_12.1.patch";
+      hash = "sha256-eqush3zXxypQUxtO5110GoOJ30F5LZcF8XIC/Y8/fgM=";
+    })
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/fu/fuchsia-cursor/package.nix b/pkgs/by-name/fu/fuchsia-cursor/package.nix
new file mode 100644
index 000000000000..96fd659e47e7
--- /dev/null
+++ b/pkgs/by-name/fu/fuchsia-cursor/package.nix
@@ -0,0 +1,60 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, clickgen
+, python3
+, themeVariants ? []
+, sizeVariants ? []
+, platformVariants ? []
+}:
+
+let
+  pname = "fuchsia-cursor";
+in
+lib.checkListOfEnum "${pname}: theme variants" [ "Fuchsia" "Fuchsia-Pop" "Fuchsia-Red" ] themeVariants
+lib.checkListOfEnum "${pname}: size variants" [ "16" "24" "32" "48" ] sizeVariants
+lib.checkListOfEnum "${pname}: platform variants" [ "x11" "windows" ] platformVariants
+
+stdenvNoCC.mkDerivation rec {
+  inherit pname;
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "ful1e5";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-WnDtUsjRXT7bMppgwU5BIDqphP69DmPzQM/0qXES5tM=";
+  };
+
+  nativeBuildInputs = [
+    clickgen
+    python3.pkgs.attrs
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    ${if themeVariants != [] then ''
+    name= ctgen build.toml \
+      ${lib.optionalString (themeVariants != []) "-d bitmaps/" + toString themeVariants + " -n " + toString themeVariants} \
+      ${lib.optionalString (sizeVariants != []) "-s " + toString sizeVariants} \
+      ${lib.optionalString (platformVariants != []) "-p " + toString platformVariants} \
+      -o $out/share/icons
+    '' else ''
+    name= ctgen build.toml -d bitmaps/Fuchsia -n Fuchsia \
+      ${lib.optionalString (sizeVariants != []) "-s " + toString sizeVariants} \
+      ${lib.optionalString (platformVariants != []) "-p " + toString platformVariants} \
+      -o $out/share/icons
+    ''}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "First OpenSource port of FuchsiaOS's cursors for Linux and Windows";
+    homepage = "https://github.com/ful1e5/fuchsia-cursor";
+    maintainers = with maintainers; [ d3vil0p3r ];
+    platforms = platforms.all;
+    license = licenses.gpl3Plus;
+  };
+}
diff --git a/pkgs/os-specific/linux/firmware/fwupd/add-option-for-installation-sysconfdir.patch b/pkgs/by-name/fw/fwupd/add-option-for-installation-sysconfdir.patch
index 4e95ccea8dc1..4e95ccea8dc1 100644
--- a/pkgs/os-specific/linux/firmware/fwupd/add-option-for-installation-sysconfdir.patch
+++ b/pkgs/by-name/fw/fwupd/add-option-for-installation-sysconfdir.patch
diff --git a/pkgs/os-specific/linux/firmware/fwupd/efi-app-path.patch b/pkgs/by-name/fw/fwupd/efi-app-path.patch
index f9e65a10e657..f9e65a10e657 100644
--- a/pkgs/os-specific/linux/firmware/fwupd/efi-app-path.patch
+++ b/pkgs/by-name/fw/fwupd/efi-app-path.patch
diff --git a/pkgs/os-specific/linux/firmware/fwupd/install-fwupdplugin-to-out.patch b/pkgs/by-name/fw/fwupd/install-fwupdplugin-to-out.patch
index e6269ae840bb..e6269ae840bb 100644
--- a/pkgs/os-specific/linux/firmware/fwupd/install-fwupdplugin-to-out.patch
+++ b/pkgs/by-name/fw/fwupd/install-fwupdplugin-to-out.patch
diff --git a/pkgs/os-specific/linux/firmware/fwupd/installed-tests-path.patch b/pkgs/by-name/fw/fwupd/installed-tests-path.patch
index 2954f89e14c3..2954f89e14c3 100644
--- a/pkgs/os-specific/linux/firmware/fwupd/installed-tests-path.patch
+++ b/pkgs/by-name/fw/fwupd/installed-tests-path.patch
diff --git a/pkgs/os-specific/linux/firmware/fwupd/default.nix b/pkgs/by-name/fw/fwupd/package.nix
index ac1605f979e7..45b3ed333c6a 100644
--- a/pkgs/os-specific/linux/firmware/fwupd/default.nix
+++ b/pkgs/by-name/fw/fwupd/package.nix
@@ -121,7 +121,7 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "fwupd";
-  version = "1.9.11";
+  version = "1.9.12";
 
   # libfwupd goes to lib
   # daemon, plug-ins and libfwupdplugin go to out
@@ -132,7 +132,7 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "fwupd";
     repo = "fwupd";
     rev = finalAttrs.version;
-    hash = "sha256-chPZ9nGhFcaExoJDJvFy8terIGZRU6S90RKBYkoWyGQ=";
+    hash = "sha256-hPRp61m/XTXFacYkBOb4SsG4fcFvWrdMfc+sxLk5/sQ=";
   };
 
   patches = [
@@ -256,9 +256,6 @@ stdenv.mkDerivation (finalAttrs: {
       contrib/generate-man.py \
       po/test-deps
 
-    substituteInPlace data/installed-tests/fwupdmgr-p2p.sh \
-      --replace "gdbus" ${glib.bin}/bin/gdbus
-
     # tests fail with: Failed to load SMBIOS: neither SMBIOS or DT found
     sed -i 's/test(.*)//' plugins/lenovo-thinklmi/meson.build
     sed -i 's/test(.*)//' plugins/mtd/meson.build
diff --git a/pkgs/by-name/ga/galerio/package.nix b/pkgs/by-name/ga/galerio/package.nix
new file mode 100644
index 000000000000..aa1075f81a75
--- /dev/null
+++ b/pkgs/by-name/ga/galerio/package.nix
@@ -0,0 +1,23 @@
+{ lib, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "galerio";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "dbrgn";
+    repo = "galerio";
+    rev = "v${version}";
+    hash = "sha256-JR/YfMUs5IHBRr3uYqHXLNcr23YHyDvgH2y/1ip+2Y8=";
+  };
+
+  cargoHash = "sha256-nYaCN09LP/2MfNRY8oZKtjzFCBFCeRF1IZ2ZBmbHg7I=";
+
+  meta = with lib; {
+    description = " A simple generator for self-contained HTML flexbox galleries";
+    homepage = "https://github.com/dbrgn/galerio";
+    maintainers = with maintainers; [ dbrgn ];
+    license = with licenses; [ asl20 mit ];
+    mainProgram = "galerio";
+  };
+}
diff --git a/pkgs/by-name/ga/gato/package.nix b/pkgs/by-name/ga/gato/package.nix
index 38297c71dc18..655b60b2b839 100644
--- a/pkgs/by-name/ga/gato/package.nix
+++ b/pkgs/by-name/ga/gato/package.nix
@@ -6,14 +6,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "gato";
-  version = "1.5";
+  version = "1.6";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "praetorian-inc";
     repo = "gato";
     rev = "refs/tags/${version}";
-    hash = "sha256-M9ONeLjEKQD5Kys7OriM34dEBWDKW3qrBk9lu2TitGE=";
+    hash = "sha256-vXQFgP0KDWo1VWe7tMGCB2yEYlr/1KMXsiNupBVLBqc=";
   };
 
   postPatch = ''
diff --git a/pkgs/by-name/gc/gcs/package.nix b/pkgs/by-name/gc/gcs/package.nix
new file mode 100644
index 000000000000..3ded7802d674
--- /dev/null
+++ b/pkgs/by-name/gc/gcs/package.nix
@@ -0,0 +1,86 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, pkg-config
+, moreutils
+, libGL
+, libX11
+, libXcursor
+, libXrandr
+, libXinerama
+, libXi
+, libXxf86vm
+, mupdf
+, fontconfig
+, freetype
+, stdenv
+, darwin
+, nix-update-script
+}:
+
+buildGoModule rec {
+  pname = "gcs";
+  version = "5.20.4";
+
+  src = fetchFromGitHub {
+    owner = "richardwilkes";
+    repo = "gcs";
+    rev = "v${version}";
+    hash = "sha256-aoU2wRz2XB6+3e6am/dLjRbcDmWTjtDtTBwc6c4n3DE=";
+  };
+
+  modPostBuild = ''
+    chmod +w vendor/github.com/richardwilkes/pdf
+    sed -i 's|-lmupdf[^ ]* |-lmupdf |g' vendor/github.com/richardwilkes/pdf/pdf.go
+  '';
+
+  vendorHash = "sha256-ee6qvwnUXtsBcovPOORfVpdndICtIUYe4GrP52V/P3k=";
+
+  nativeBuildInputs = [ pkg-config moreutils ];
+
+  buildInputs = [
+    libGL
+    libX11
+    libXcursor
+    libXrandr
+    libXinerama
+    libXi
+    libXxf86vm
+    mupdf
+    fontconfig
+    freetype
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk_11_0.frameworks.Carbon
+    darwin.apple_sdk_11_0.frameworks.Cocoa
+    darwin.apple_sdk_11_0.frameworks.Kernel
+  ];
+
+  # flags are based on https://github.com/richardwilkes/gcs/blob/master/build.sh
+  flags = [ "-a -trimpath" ];
+  ldflags = [ "-s" "-w" "-X github.com/richardwilkes/toolbox/cmdline.AppVersion=${version}" ];
+
+  # Workaround for https://github.com/NixOS/nixpkgs/issues/166205
+  env = lib.optionalAttrs (stdenv.cc.libcxx != null) {
+    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
+  };
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm755 $GOPATH/bin/gcs -t $out/bin
+    runHook postInstall
+  '';
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    changelog = "https://github.com/richardwilkes/gcs/releases/tag/${src.rev}";
+    description = "A stand-alone, interactive, character sheet editor for the GURPS 4th Edition roleplaying game system";
+    homepage = "https://gurpscharactersheet.com/";
+    license = lib.licenses.mpl20;
+    mainProgram = "gcs";
+    maintainers = with lib.maintainers; [ tomasajt ];
+    platforms = lib.platforms.linux ++ lib.platforms.darwin;
+    # incompatible vendor/github.com/richardwilkes/unison/internal/skia/libskia_linux.a
+    broken = stdenv.isLinux && stdenv.isAarch64;
+  };
+}
diff --git a/pkgs/by-name/ge/geist-font/package.nix b/pkgs/by-name/ge/geist-font/package.nix
new file mode 100644
index 000000000000..34dd5dae26b8
--- /dev/null
+++ b/pkgs/by-name/ge/geist-font/package.nix
@@ -0,0 +1,43 @@
+{ lib
+, stdenvNoCC
+, fetchzip
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "geist-font";
+  version = "1.1.0";
+
+  srcs = [
+    (fetchzip {
+      name = "geist-mono";
+      url = "https://github.com/vercel/geist-font/releases/download/${version}/Geist.Mono.zip";
+      stripRoot = false;
+      hash = "sha256-8I4O2+bJAlUiDIhbyXzAcwXP5qpmHoh4IfrFio7IZN8=";
+    })
+    (fetchzip {
+      name = "geist-sans";
+      url = "https://github.com/vercel/geist-font/releases/download/${version}/Geist.zip";
+      stripRoot = false;
+      hash = "sha256-nSN+Ql5hTd230w/u6VZyAZaPtFSaHGmMc6T1fgGTCME=";
+    })
+  ];
+
+  sourceRoot = ".";
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm444 geist-{mono,sans}/*/*.otf -t $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Font family created by Vercel in collaboration with Basement Studio";
+    homepage = "https://vercel.com/font";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ eclairevoyant x0ba ];
+    platforms = lib.platforms.all;
+    sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
+  };
+}
diff --git a/pkgs/by-name/gl/glauth/package.nix b/pkgs/by-name/gl/glauth/package.nix
index 7f279e8613e7..22929707c72b 100644
--- a/pkgs/by-name/gl/glauth/package.nix
+++ b/pkgs/by-name/gl/glauth/package.nix
@@ -48,7 +48,7 @@ buildGoModule rec {
     description = "A lightweight LDAP server for development, home use, or CI";
     homepage = "https://github.com/glauth/glauth";
     license = licenses.mit;
-    maintainers = with maintainers; [ bjornfor ];
+    maintainers = with maintainers; [ bjornfor christoph-heiss ];
     mainProgram = "glauth";
   };
 }
diff --git a/pkgs/by-name/go/goldwarden/package.nix b/pkgs/by-name/go/goldwarden/package.nix
index 8d0072132af5..edb7f892efd9 100644
--- a/pkgs/by-name/go/goldwarden/package.nix
+++ b/pkgs/by-name/go/goldwarden/package.nix
@@ -10,13 +10,13 @@
 
 buildGoModule rec {
   pname = "goldwarden";
-  version = "0.2.9";
+  version = "0.2.10";
 
   src = fetchFromGitHub {
     owner = "quexten";
     repo = "goldwarden";
     rev = "v${version}";
-    hash = "sha256-UjNDr5iWOd34VrKCrYVlPJVbKq/HizupYJ9H4jJq8oI=";
+    hash = "sha256-NYK9H9BCjUweip8HjxHqN2wjUGmg0zicJSC/S1hpvx8=";
   };
 
   vendorHash = "sha256-AiYgI2dBhVYxGNU7t4dywi8KWiffO6V05KFYoGzA0t4=";
diff --git a/pkgs/by-name/go/golink/package.nix b/pkgs/by-name/go/golink/package.nix
new file mode 100644
index 000000000000..d71e3df66339
--- /dev/null
+++ b/pkgs/by-name/go/golink/package.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "golink";
+  version = "0-unstable-2024-01-26";
+
+  src = fetchFromGitHub {
+    owner = "tailscale";
+    repo = "golink";
+    # https://github.com/tailscale/golink/issues/104
+    rev = "d9de913fb174ec2569a15b6e2dbe5cb6e4a0a853";
+    hash = "sha256-w6jRbajEQkOrBqxDnQreSmSB5DNL9flWjloShiIBM+M=";
+  };
+
+  vendorHash = "sha256-R/o3csZC/M9nm0k5STL7AhbG5J4LtdxqKaVjM/9ggW8=";
+
+  ldflags = [
+    "-s"
+    "-w"
+  ];
+
+  meta = with lib; {
+    description = "A private shortlink service for tailnets";
+    homepage = "https://github.com/tailscale/golink";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "golink";
+  };
+}
diff --git a/pkgs/by-name/go/gomarkdoc/package.nix b/pkgs/by-name/go/gomarkdoc/package.nix
new file mode 100644
index 000000000000..cea73b16081d
--- /dev/null
+++ b/pkgs/by-name/go/gomarkdoc/package.nix
@@ -0,0 +1,44 @@
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+  testers,
+  gomarkdoc
+}:
+
+buildGoModule rec {
+  pname = "gomarkdoc";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "princjef";
+    repo = "gomarkdoc";
+    rev = "v${version}";
+    hash = "sha256-eMH+F1ZXAKHqnrvOJvCETm2NiDwY03IFHrDNYr3jaW8=";
+  };
+
+  subPackages = [ "cmd/gomarkdoc" ];
+
+  vendorHash = "sha256-gCuYqk9agH86wfGd7k6QwLUiG3Mv6TrEd9tdyj8AYPs=";
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X main.version=${version}"
+    "-X main.commit=${src.rev}"
+  ];
+
+  passthru.tests = {
+    version = testers.testVersion {
+      package = gomarkdoc;
+    };
+  };
+
+  meta = with lib; {
+    description = "Generate markdown documentation for Go (golang) code";
+    homepage = "https://github.com/princjef/gomarkdoc";
+    license = licenses.mit;
+    maintainers = with maintainers; [ brpaz ];
+    mainProgram = "gomarkdoc";
+  };
+}
diff --git a/pkgs/by-name/gp/gprename/package.nix b/pkgs/by-name/gp/gprename/package.nix
new file mode 100644
index 000000000000..18591b735385
--- /dev/null
+++ b/pkgs/by-name/gp/gprename/package.nix
@@ -0,0 +1,78 @@
+{
+  lib,
+  stdenv,
+  fetchzip,
+  makeWrapper,
+  moreutils,
+  perlPackages,
+  gettext,
+  glib,
+  gtk3,
+  gobject-introspection,
+  pango,
+  harfbuzz,
+  gdk-pixbuf,
+  at-spi2-atk,
+}:
+stdenv.mkDerivation (finalAttrs: {
+  pname = "gprename";
+  version = "20230429";
+
+  src = fetchzip {
+    url = "mirror://sourceforge/gprename/gprename-${finalAttrs.version}.zip";
+    hash = "sha256-Du9OO2qeB1jUEJFcVYmLbJAGi2p/IVe3sqladq09AyY=";
+  };
+
+  nativeBuildInputs = [
+    makeWrapper
+    moreutils
+  ];
+
+  postPatch = ''
+    grep -Ev 'desktop-file-install|update-desktop-database' Makefile | sponge Makefile
+
+    substituteInPlace Makefile \
+      --replace '/usr/share' '$(DESTDIR)/share'
+
+    substituteInPlace bin/gprename \
+      --replace '/usr/share' $out/share \
+      --replace '/usr/local/share' $out/share
+  '';
+
+  makeFlags = [ "DESTDIR=$(out)" ];
+  buildInputs = [
+    perlPackages.perl
+    pango
+  ];
+  postInstall = ''
+    wrapProgram $out/bin/gprename \
+      --set PERL5LIB ${
+        perlPackages.makeFullPerlPath (
+          with perlPackages; [
+            Pango
+            Glib
+            Gtk3
+            LocaleGettext
+            libintl-perl
+          ]
+        )
+      } \
+      --prefix GI_TYPELIB_PATH : ${
+        lib.makeSearchPath "/lib/girepository-1.0" [
+          gtk3
+          pango.out
+          harfbuzz
+          gdk-pixbuf
+          at-spi2-atk
+        ]
+      }
+  '';
+
+  meta = {
+    description = "Complete batch renamer for files and directories";
+    homepage = "https://gprename.sourceforge.net/index.php";
+    license = lib.licenses.gpl3Plus;
+    mainProgram = "gprename";
+    maintainers = with lib.maintainers; [ quantenzitrone ];
+  };
+})
diff --git a/pkgs/by-name/gp/gpt4all-chat/package.nix b/pkgs/by-name/gp/gpt4all-chat/package.nix
new file mode 100644
index 000000000000..84a4de626204
--- /dev/null
+++ b/pkgs/by-name/gp/gpt4all-chat/package.nix
@@ -0,0 +1,72 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, qt6
+, fmt
+, shaderc
+, vulkan-headers
+, wayland
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "gpt4all-chat";
+  version = "2.6.2";
+
+  src = fetchFromGitHub {
+    fetchSubmodules = true;
+    hash = "sha256-BQE4UQEOOUAh0uGwQf7Q9D30s+aoGFyyMH6EI/WVIkc=";
+    owner = "nomic-ai";
+    repo = "gpt4all";
+    rev = "v${finalAttrs.version}";
+  };
+
+  sourceRoot = "${finalAttrs.src.name}/gpt4all-chat";
+
+  postPatch = ''
+    substituteInPlace CMakeLists.txt \
+      --replace 'set(CMAKE_INSTALL_PREFIX ''${CMAKE_BINARY_DIR}/install)' ""
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    qt6.wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    fmt
+    qt6.qtwayland
+    qt6.qtquicktimeline
+    qt6.qtsvg
+    qt6.qthttpserver
+    qt6.qtwebengine
+    qt6.qt5compat
+    shaderc
+    vulkan-headers
+    wayland
+  ];
+
+  cmakeFlags = [
+    "-DKOMPUTE_OPT_USE_BUILT_IN_VULKAN_HEADER=OFF"
+    "-DKOMPUTE_OPT_DISABLE_VULKAN_VERSION_CHECK=ON"
+    "-DKOMPUTE_OPT_USE_BUILT_IN_FMT=OFF"
+  ];
+
+  postInstall = ''
+    rm -rf $out/include
+    rm -rf $out/lib/*.a
+    mv $out/bin/chat $out/bin/${finalAttrs.meta.mainProgram}
+    install -m 444 -D $src/gpt4all-chat/flatpak-manifest/io.gpt4all.gpt4all.desktop $out/share/applications/io.gpt4all.gpt4all.desktop
+    install -m 444 -D $src/gpt4all-chat/icons/logo.svg $out/share/icons/hicolor/scalable/apps/io.gpt4all.gpt4all.svg
+    substituteInPlace $out/share/applications/io.gpt4all.gpt4all.desktop \
+      --replace 'Exec=chat' 'Exec=${finalAttrs.meta.mainProgram}'
+  '';
+
+  meta = {
+    description = "A free-to-use, locally running, privacy-aware chatbot. No GPU or internet required";
+    homepage = "https://github.com/nomic-ai/gpt4all-chat";
+    license = lib.licenses.mit;
+    mainProgram = "gpt4all-chat";
+    maintainers = with lib.maintainers; [ drupol polygon ];
+  };
+})
diff --git a/pkgs/by-name/gr/graphite-cli/package-lock.json b/pkgs/by-name/gr/graphite-cli/package-lock.json
new file mode 100644
index 000000000000..8f6a8fb32c5f
--- /dev/null
+++ b/pkgs/by-name/gr/graphite-cli/package-lock.json
@@ -0,0 +1,237 @@
+{
+  "name": "@withgraphite/graphite-cli",
+  "version": "1.1.2",
+  "lockfileVersion": 3,
+  "requires": true,
+  "packages": {
+    "": {
+      "name": "@withgraphite/graphite-cli",
+      "version": "1.1.2",
+      "license": "None",
+      "dependencies": {
+        "chalk": "^4.1.2",
+        "ws": "^8.6.0",
+        "yargs": "^17.5.1"
+      },
+      "bin": {
+        "graphite": "graphite.js",
+        "gt": "graphite.js"
+      }
+    },
+    "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==",
+      "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==",
+      "dependencies": {
+        "color-convert": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+      }
+    },
+    "node_modules/chalk": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+      "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/cliui": {
+      "version": "8.0.1",
+      "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+      "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+      "dependencies": {
+        "string-width": "^4.2.0",
+        "strip-ansi": "^6.0.1",
+        "wrap-ansi": "^7.0.0"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "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==",
+      "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=="
+    },
+    "node_modules/emoji-regex": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+      "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+    },
+    "node_modules/escalade": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+      "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "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==",
+      "engines": {
+        "node": "6.* || 8.* || >= 10.*"
+      }
+    },
+    "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==",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "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==",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "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==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "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==",
+      "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==",
+      "dependencies": {
+        "ansi-regex": "^5.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "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==",
+      "dependencies": {
+        "has-flag": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "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==",
+      "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/ws": {
+      "version": "8.16.0",
+      "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz",
+      "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==",
+      "engines": {
+        "node": ">=10.0.0"
+      },
+      "peerDependencies": {
+        "bufferutil": "^4.0.1",
+        "utf-8-validate": ">=5.0.2"
+      },
+      "peerDependenciesMeta": {
+        "bufferutil": {
+          "optional": true
+        },
+        "utf-8-validate": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/y18n": {
+      "version": "5.0.8",
+      "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+      "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/yargs": {
+      "version": "17.7.2",
+      "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+      "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+      "dependencies": {
+        "cliui": "^8.0.1",
+        "escalade": "^3.1.1",
+        "get-caller-file": "^2.0.5",
+        "require-directory": "^2.1.1",
+        "string-width": "^4.2.3",
+        "y18n": "^5.0.5",
+        "yargs-parser": "^21.1.1"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/yargs-parser": {
+      "version": "21.1.1",
+      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+      "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+      "engines": {
+        "node": ">=12"
+      }
+    }
+  }
+}
diff --git a/pkgs/by-name/gr/graphite-cli/package.nix b/pkgs/by-name/gr/graphite-cli/package.nix
new file mode 100644
index 000000000000..9478aba48dde
--- /dev/null
+++ b/pkgs/by-name/gr/graphite-cli/package.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildNpmPackage
+, fetchurl
+, installShellFiles
+}:
+
+buildNpmPackage rec {
+  pname = "graphite-cli";
+  version = "1.1.2";
+
+  src = fetchurl {
+    url = "https://registry.npmjs.org/@withgraphite/graphite-cli/-/graphite-cli-${version}.tgz";
+    hash = "sha256-NNBI1S33jD6ZKbztZXSRtYwt3w0T4A5Bg2zxMWw74cY=";
+  };
+
+  npmDepsHash = "sha256-Nk0Aoyv4eEXZD4B9B/B6mJd/UDy8Kc/sHtQWXrLukSk=";
+
+  postPatch = ''
+    ln -s ${./package-lock.json} package-lock.json
+  '';
+
+  nativeBuildInputs = [
+    installShellFiles
+  ];
+
+  dontNpmBuild = true;
+
+  postInstall = ''
+    installShellCompletion --cmd gt \
+      --bash <($out/bin/gt completion) \
+      --zsh <(ZSH_NAME=zsh $out/bin/gt completion)
+  '';
+
+  passthru.updateScript = ./update.sh;
+
+  meta = {
+    description = "CLI that makes creating stacked git changes fast & intuitive";
+    downloadPage = "https://www.npmjs.com/package/@withgraphite/graphite-cli";
+    homepage = "https://graphite.dev/docs/graphite-cli";
+    license = lib.licenses.unfree; # no license specified
+    mainProgram = "gt";
+    maintainers = with lib.maintainers; [ ];
+  };
+}
diff --git a/pkgs/by-name/gr/graphite-cli/update.sh b/pkgs/by-name/gr/graphite-cli/update.sh
new file mode 100755
index 000000000000..2940714e37bf
--- /dev/null
+++ b/pkgs/by-name/gr/graphite-cli/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 @withgraphite/graphite-cli version)
+tarball="graphite-cli-$version.tgz"
+url="https://registry.npmjs.org/@withgraphite/graphite-cli/-/$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 --to-sri --type sha256 "$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/data/themes/gruvbox-gtk-theme/default.nix b/pkgs/by-name/gr/gruvbox-gtk-theme/package.nix
index b579f71d8b8b..042f23bebba3 100644
--- a/pkgs/data/themes/gruvbox-gtk-theme/default.nix
+++ b/pkgs/by-name/gr/gruvbox-gtk-theme/package.nix
@@ -6,7 +6,7 @@
 }:
 stdenvNoCC.mkDerivation {
   pname = "gruvbox-gtk-theme";
-  version = "unstable-2023-05-26";
+  version = "unstable-2023-05-28";
 
   src = fetchFromGitHub {
     owner = "Fausto-Korpsvart";
diff --git a/pkgs/by-name/gt/gtimelog/package.nix b/pkgs/by-name/gt/gtimelog/package.nix
new file mode 100644
index 000000000000..05a0c7e3dd99
--- /dev/null
+++ b/pkgs/by-name/gt/gtimelog/package.nix
@@ -0,0 +1,60 @@
+{ lib, fetchFromGitHub, python3Packages, wrapGAppsHook
+, glibcLocales, gobject-introspection, gtk3, libsoup_3, libsecret
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "gtimelog";
+  version = "unstable-2023-10-05";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "ba606cbe8eef0e3dc098c6ab3bcbe381bf7ef410";
+    hash = "sha256-+iBHfbUJtAtI/vcHj0Y8f9OxAp1SnhQyMqedVzSYPZQ=";
+  };
+
+  nativeBuildInputs = [ wrapGAppsHook gobject-introspection ];
+  buildInputs = [ glibcLocales gtk3 libsoup_3 libsecret ];
+  propagatedBuildInputs = with python3Packages; [
+    pygobject3
+  ];
+  checkInputs = with python3Packages; [
+    freezegun
+  ];
+
+  checkPhase = ''
+    patchShebangs ./runtests
+    ./runtests
+  '';
+
+  pythonImportsCheck = [ "gtimelog" ];
+
+  dontWrapGApps = true;
+
+  # Arguments to be passed to `makeWrapper`, only used by buildPython*
+  preFixup = ''
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
+  postInstall = ''
+    install -Dm644 gtimelog.desktop $out/share/applications/gtimelog.desktop
+    install -Dm644 src/gtimelog/gtimelog.png $out/share/icons/hicolor/48x48/apps/gtimelog.png
+    install -Dm644 src/gtimelog/gtimelog-large.png $out/share/icons/hicolor/256x256/apps/gtimelog.png
+  '';
+
+  meta = with lib; {
+    description = "A time tracking app";
+    longDescription = ''
+      GTimeLog is a small time tracking application for GNOME.
+      It's main goal is to be as unintrusive as possible.
+
+      To run gtimelog successfully on a system that does not have full GNOME
+      installed, the following NixOS options should be set:
+      - programs.dconf.enable = true;
+    '';
+    homepage = "https://gtimelog.org/";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ oxzi ];
+  };
+}
diff --git a/pkgs/by-name/gt/gtrash/package.nix b/pkgs/by-name/gt/gtrash/package.nix
new file mode 100644
index 000000000000..aee737aa83df
--- /dev/null
+++ b/pkgs/by-name/gt/gtrash/package.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, installShellFiles
+}:
+
+buildGoModule rec {
+  pname = "gtrash";
+  version = "0.0.5";
+
+  src = fetchFromGitHub {
+    owner = "umlx5h";
+    repo = "gtrash";
+    rev = "v${version}";
+    hash = "sha256-5+wcrU2mx/ZawMCSCU4xddMlMVpoIW/Duv7XqUVIDoo=";
+  };
+
+  vendorHash = "sha256-iWNuPxetYH9xJpf3WMoA5c50kII9DUpWvhTVSE1kSk0=";
+
+  subPackages = [ "." ];
+
+  # disabled because it is required to run on docker.
+  doCheck = false;
+
+  CGO_ENABLED = 0;
+  GOFLAGS = [ "-trimpath" ];
+  ldflags = [
+    "-s"
+    "-w"
+    "-X main.version=${version}"
+    "-X main.builtBy=nixpkgs"
+  ];
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    installShellCompletion --cmd gtrash \
+      --bash <($out/bin/gtrash completion bash) \
+      --fish <($out/bin/gtrash completion fish) \
+      --zsh <($out/bin/gtrash completion zsh)
+  '';
+
+  meta = with lib; {
+    description = "A Trash CLI manager written in Go";
+    homepage = "https://github.com/umlx5h/gtrash";
+    changelog = "https://github.com/umlx5h/gtrash/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ umlx5h ];
+    mainProgram = "gtrash";
+  };
+}
diff --git a/pkgs/by-name/gt/gtt/package.nix b/pkgs/by-name/gt/gtt/package.nix
new file mode 100644
index 000000000000..d952861e2b31
--- /dev/null
+++ b/pkgs/by-name/gt/gtt/package.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, pkg-config
+, alsa-lib
+, wl-clipboard
+, xclip
+}:
+
+buildGoModule rec {
+  pname = "gtt";
+  version = "8";
+
+  src = fetchFromGitHub {
+    owner = "eeeXun";
+    repo = "gtt";
+    rev = "v${version}";
+    hash = "sha256-HC1cz2CAjyuirzhn720RD9P0gFjtP+Dh1jTniDCWBz8=";
+  };
+
+  vendorHash = "sha256-5Uwi1apowHoUtvkSgmUV9WbfpVQFTqJ9GA2sRnC5nFw=";
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    alsa-lib
+    xclip
+    wl-clipboard
+  ];
+
+  ldflags = [ "-s" "-w" ];
+
+  meta = with lib; {
+    description = "Google Translate TUI (Originally). Now support Apertium, Argos, Bing, ChatGPT, DeepL, Google, Reverso";
+    homepage = "https://github.com/eeeXun/gtt";
+    license = licenses.mit;
+    maintainers = with maintainers; [ linuxissuper ];
+    mainProgram = "gtt";
+  };
+}
diff --git a/pkgs/by-name/gu/guile-chickadee/package.nix b/pkgs/by-name/gu/guile-chickadee/package.nix
new file mode 100644
index 000000000000..f4a454bf4e45
--- /dev/null
+++ b/pkgs/by-name/gu/guile-chickadee/package.nix
@@ -0,0 +1,80 @@
+{ lib
+, stdenv
+, fetchurl
+, autoreconfHook
+, makeWrapper
+, testers
+, guile
+, pkg-config
+, texinfo
+, freetype
+, libjpeg_turbo
+, libpng
+, libvorbis
+, mpg123
+, openal
+, readline
+, guile-opengl
+, guile-sdl2
+, guile-chickadee
+}:
+stdenv.mkDerivation (finalAttrs: {
+  pname = "guile-chickadee";
+  version = "0.10.0";
+
+  src = fetchurl {
+    url = "https://files.dthompson.us/chickadee/chickadee-${finalAttrs.version}.tar.gz";
+    hash = "sha256-Ey9TtuWaGlHG2cYYwqJIt2RX7XNUW28OGl/kuPUCD3U=";
+  };
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    makeWrapper
+    autoreconfHook
+    guile
+    pkg-config
+    texinfo
+  ];
+
+  buildInputs = [
+    freetype
+    guile
+    libjpeg_turbo
+    libpng
+    libvorbis
+    mpg123
+    openal
+    readline
+  ];
+
+  propagatedBuildInputs = [
+    guile-opengl
+    guile-sdl2
+  ];
+
+  makeFlags = [ "GUILE_AUTO_COMPILE=0" ];
+
+  postInstall = ''
+    wrapProgram $out/bin/chickadee \
+      --prefix GUILE_LOAD_PATH : "$out/${guile.siteDir}:$GUILE_LOAD_PATH" \
+      --prefix GUILE_LOAD_COMPILED_PATH : "$out/${guile.siteCcacheDir}:$GUILE_LOAD_COMPILED_PATH"
+  '';
+
+  passthru.tests.version = testers.testVersion {
+    package = guile-chickadee;
+    command = "chickadee -v";
+  };
+
+  doCheck = !stdenv.isDarwin;
+
+  meta = with lib; {
+    description = "Game development toolkit for Guile Scheme with SDL2 and OpenGL";
+    homepage = "https://dthompson.us/projects/chickadee.html";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ chito ];
+    mainProgram = "chickadee";
+    platforms = guile.meta.platforms;
+    broken = stdenv.isDarwin;
+  };
+})
diff --git a/pkgs/by-name/gu/guile-goblins/package.nix b/pkgs/by-name/gu/guile-goblins/package.nix
index 5b1b5a797927..13b391e4f6f5 100644
--- a/pkgs/by-name/gu/guile-goblins/package.nix
+++ b/pkgs/by-name/gu/guile-goblins/package.nix
@@ -4,21 +4,22 @@
 , guile
 , guile-fibers
 , guile-gcrypt
+, guile-gnutls
 , texinfo
 , pkg-config
 }:
 stdenv.mkDerivation rec {
   pname = "guile-goblins";
-  version = "0.11.0";
+  version = "0.12.0";
 
   src = fetchurl {
     url = "https://spritely.institute/files/releases/guile-goblins/guile-goblins-${version}.tar.gz";
-    hash = "sha256-1FD35xvayqC04oPdgts08DJl6PVnhc9K/Dr+NYtxhMU=";
+    hash = "sha256-P5WKKv5i5Lrs4en+IWL40AkYAD+bgTyFdsQqE4FxPfA=";
   };
 
   strictDeps = true;
   nativeBuildInputs = [ guile pkg-config texinfo ];
-  buildInputs = [ guile guile-fibers guile-gcrypt ];
+  buildInputs = [ guile guile-fibers guile-gcrypt guile-gnutls ];
   makeFlags = [ "GUILE_AUTO_COMPILE=0" ];
 
   # tests hang on darwin, and fail randomly on aarch64-linux on ofborg
diff --git a/pkgs/by-name/ha/handheld-daemon/package.nix b/pkgs/by-name/ha/handheld-daemon/package.nix
new file mode 100644
index 000000000000..bb0c9d65bfe1
--- /dev/null
+++ b/pkgs/by-name/ha/handheld-daemon/package.nix
@@ -0,0 +1,54 @@
+{ config
+, fetchFromGitHub
+, hidapi
+, kmod
+, lib
+, python3
+, toybox
+}:
+python3.pkgs.buildPythonApplication rec {
+  pname = "handheld-daemon";
+  version = "1.1.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "hhd-dev";
+    repo = "hhd";
+    rev = "v${version}";
+    hash = "sha256-ovLC1BQ98jUaDEMPBzWma4TYSzTF+yE/cMemFdJmqlE=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    evdev
+    hidapi
+    kmod
+    pyyaml
+    rich
+    setuptools
+    toybox
+  ];
+
+  # This package doesn't have upstream tests.
+  doCheck = false;
+
+  # handheld-daemon contains a fork of the python module `hid`, so this hook
+  # is borrowed from the `hid` derivation.
+  postPatch = ''
+    hidapi=${ hidapi }/lib/
+    test -d $hidapi || { echo "ERROR: $hidapi doesn't exist, please update/fix this build expression."; exit 1; }
+    sed -i -e "s|libhidapi|$hidapi/libhidapi|" src/hhd/controller/lib/hid.py
+  '';
+
+  postInstall = ''
+    install -Dm644 $src/usr/lib/udev/rules.d/83-hhd.rules -t $out/lib/udev/rules.d/
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/hhd-dev/hhd/";
+    description = "Linux support for handheld gaming devices like the Legion Go, ROG Ally, and GPD Win";
+    platforms = platforms.linux;
+    license = licenses.mit;
+    maintainers = with maintainers; [ appsforartists ];
+    mainProgram = "hhd";
+  };
+}
diff --git a/pkgs/by-name/ha/haredo/package.nix b/pkgs/by-name/ha/haredo/package.nix
index 277250170e5d..e31ae96c7832 100644
--- a/pkgs/by-name/ha/haredo/package.nix
+++ b/pkgs/by-name/ha/haredo/package.nix
@@ -4,6 +4,8 @@
 , hare
 , scdoc
 , nix-update-script
+, makeWrapper
+, bash
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "haredo";
@@ -20,9 +22,16 @@ stdenv.mkDerivation (finalAttrs: {
 
   nativeBuildInputs = [
     hare
+    makeWrapper
     scdoc
   ];
 
+  enableParallelChecking = true;
+
+  doCheck = true;
+
+  dontConfigure = true;
+
   preBuild = ''
     HARECACHE="$(mktemp -d --tmpdir harecache.XXXXXXXX)"
     export HARECACHE
@@ -40,7 +49,7 @@ stdenv.mkDerivation (finalAttrs: {
   checkPhase = ''
     runHook preCheck
 
-    ./bin/haredo test
+    ./bin/haredo ''${enableParallelChecking:+-j$NIX_BUILD_CORES} test
 
     runHook postCheck
   '';
@@ -53,8 +62,10 @@ stdenv.mkDerivation (finalAttrs: {
     runHook postInstall
   '';
 
-  dontConfigure = true;
-  doCheck = true;
+  postFixup = ''
+    wrapProgram $out/bin/haredo \
+      --prefix PATH : "${lib.makeBinPath [bash]}"
+  '';
 
   setupHook = ./setup-hook.sh;
 
diff --git a/pkgs/by-name/hd/hdrop/package.nix b/pkgs/by-name/hd/hdrop/package.nix
index a16d7ac6af9d..2fcea6d600c1 100755
--- a/pkgs/by-name/hd/hdrop/package.nix
+++ b/pkgs/by-name/hd/hdrop/package.nix
@@ -13,13 +13,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "hdrop";
-  version = "0.3.0";
+  version = "0.4.4";
 
   src = fetchFromGitHub {
     owner = "Schweber";
     repo = "hdrop";
     rev = "v${version}";
-    hash = "sha256-IVLc1USBkkIBEll1jRIAAszyGCmpw5Sy74Zyalv3W+w=";
+    hash = "sha256-eLOu7xmFphTxCtyyXdM9VkNcUpefefuZMAQtOV4FVtU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/he/helix-gpt/package.nix b/pkgs/by-name/he/helix-gpt/package.nix
new file mode 100644
index 000000000000..6e77d5e8a8d4
--- /dev/null
+++ b/pkgs/by-name/he/helix-gpt/package.nix
@@ -0,0 +1,63 @@
+{ stdenv, lib, fetchFromGitHub, bun, makeBinaryWrapper }:
+let
+  pin = lib.importJSON ./pin.json;
+  src = fetchFromGitHub {
+    owner = "leona";
+    repo = "helix-gpt";
+    rev = pin.version;
+    hash = pin.srcHash;
+  };
+  node_modules = stdenv.mkDerivation {
+    pname = "helix-gpt-node_modules";
+    inherit src;
+    version = pin.version;
+    impureEnvVars = lib.fetchers.proxyImpureEnvVars
+      ++ [ "GIT_PROXY_COMMAND" "SOCKS_SERVER" ];
+    nativeBuildInputs = [ bun ];
+    dontConfigure = true;
+    buildPhase = ''
+      bun install --no-progress --frozen-lockfile
+    '';
+    installPhase = ''
+      mkdir -p $out/node_modules
+
+      cp -R ./node_modules $out
+    '';
+    outputHash = pin."${stdenv.system}";
+    outputHashAlgo = "sha256";
+    outputHashMode = "recursive";
+  };
+in
+stdenv.mkDerivation {
+  pname = "helix-gpt";
+  version = pin.version;
+  inherit src;
+  nativeBuildInputs = [ makeBinaryWrapper ];
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+
+    ln -s ${node_modules}/node_modules $out
+    cp -R ./* $out
+
+    # bun is referenced naked in the package.json generated script
+    makeBinaryWrapper ${bun}/bin/bun $out/bin/helix-gpt \
+      --prefix PATH : ${lib.makeBinPath [ bun ]} \
+      --add-flags "run --prefer-offline --no-install --cwd $out ./src/app.ts"
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/leona/helix-gpt";
+    description = "Code completion LSP for Helix with support for Copilot + OpenAI";
+    maintainers = with maintainers; [ happysalada ];
+    license = with licenses; [ mit ];
+    platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
+  };
+}
diff --git a/pkgs/by-name/he/helix-gpt/pin.json b/pkgs/by-name/he/helix-gpt/pin.json
new file mode 100644
index 000000000000..d075b9f677fc
--- /dev/null
+++ b/pkgs/by-name/he/helix-gpt/pin.json
@@ -0,0 +1,7 @@
+{
+  "version": "0.25",
+  "srcHash": "sha256-EZ8waJiLHfButE/rI0EEwZ3VF5dwdgFQ4FBLebhyP2o=",
+  "x86_64-linux": "sha256-h6wGkOfSbB8Rwm7eFvcowDdH1RdS6eFaxgf+SdYvYt8=",
+  "x86_64-darwin": "sha256-y8ETFWSg+czhyslKc7muTFRu2q+7eeVyZ7Tea/VCUWY=",
+  "aarch64-darwin": "sha256-y8ETFWSg+czhyslKc7muTFRu2q+7eeVyZ7Tea/VCUWY="
+}
diff --git a/pkgs/by-name/ht/htb-toolkit/disable-shell-prompt-change.patch b/pkgs/by-name/ht/htb-toolkit/disable-shell-prompt-change.patch
new file mode 100644
index 000000000000..07e8468ccbcf
--- /dev/null
+++ b/pkgs/by-name/ht/htb-toolkit/disable-shell-prompt-change.patch
@@ -0,0 +1,307 @@
+--- a/src/main.rs	2024-01-17 23:44:21.346253718 +0100
++++ b/src/main.rs	2024-01-17 23:48:54.536921610 +0100
+@@ -15,7 +15,6 @@
+ use crate::utils::*;
+ use crate::vpn::*;
+ use std::fs;
+-use std::path::Path;
+ use std::process::Command;
+ 
+ #[tokio::main]
+@@ -44,16 +43,6 @@
+             eprintln!("Error creating folder: {}", err);
+         }
+     }
+-    
+-    // Create HTB config file if not existing
+-    let htb_config = format!("{}/.htb.conf", home);
+-
+-    let file = Path::new(&htb_config);
+-    if !file.exists() {
+-        let lines = ["# HTB configuration file.\n\n", "# Enable/Disable shell prompt change\n", "prompt_change=true\n"];
+-        fs::write(&htb_config, lines.join(""))
+-            .expect("Failed to create HTB config file");
+-    }
+ 
+     // Initialize Xorg in WSL for secret-tool popup window
+     if is_wsl() && is_display_zero() {
+@@ -104,13 +93,6 @@
+                 let _ = play_machine(&args[2]).await;
+             }
+         }
+-        "-p" => {
+-            if args.len() < 3 || (args[2] != "true" && args[2] != "false") {
+-                println!("Usage: {} -p <true|false>", args[0]);
+-            } else {
+-                prompt_setting(&args[2]);
+-            }
+-        }
+         "-r" => {
+             reset_machine().await;
+         }
+--- a/src/manage.rs	2024-01-17 22:50:22.450368210 +0100
++++ b/src/manage.rs	2024-01-17 23:49:21.143071918 +0100
+@@ -77,19 +77,14 @@
+     if machine_info.ip.is_empty() { //Starting Point case because SP IP address is assigned only after spawn of the machine
+         machine_info.ip = active_machine.ip;
+     }
+-    let mut user_info = PlayingUser::get_playinguser(&appkey).await;
+ 
+     // SP Machines change IP address when reset, so need to ask to write /etc/hosts
+     if machine_info.sp_flag {
+         let _ = add_hosts(&machine_info);
+     }
+-
+-    change_shell(&mut machine_info, &mut user_info);
+ }
+ 
+ pub async fn stop_machine() {
+-    let htb_path = format!("{}/.htb.conf", env::var("HOME").unwrap());
+-    let htbconfig = HTBConfig::get_current_config(&htb_path);
+     let appkey = get_appkey();
+     let active_machine = ActiveMachine::get_active(&appkey).await;
+ 
+@@ -126,31 +121,9 @@
+ 
+         // Await the result of the blocking task
+         blocking_task.await.expect("Blocking task failed");
+-
+-        if htbconfig.promptchange { //If the prompt is set to change during the playing, when you stop the machine, it should restore the original shell
+-            restore_shell();
+-        }
+     }
+ }
+ 
+-pub fn prompt_setting(option: &str) {
+-    let home = env::var("HOME").unwrap_or_default();
+-    let htb_config = format!("{}/.htb.conf", home);
+-
+-    let content = fs::read_to_string(&htb_config)
+-        .expect("Failed to read HTB config file");
+-
+-    let re = Regex::new(r"prompt_change=\w+")
+-        .expect("Failed to create regular expression");
+-
+-    let new_content = re.replace(&content, format!("prompt_change={}", option));
+-
+-    fs::write(&htb_config, new_content.to_string())
+-        .expect("Failed to write updated content to HTB config file");
+-
+-    println!("Prompt setting updated to: {}", option);
+-}
+-
+ pub async fn update_machines() -> io::Result<()> {
+ 
+     println!("Retrieving updated data from Hack The Box... Gimme some time hackerzzz...");
+--- a/src/play.rs	2024-01-17 22:50:25.709380651 +0100
++++ b/src/play.rs	2024-01-17 23:39:08.715395211 +0100
+@@ -4,7 +4,6 @@
+ use crate::types::*;
+ use crate::utils::*;
+ use crate::vpn::*;
+-use std::env;
+ use std::io::{self,Write};
+ use reqwest::Client;
+ use serde::Serialize;
+@@ -29,8 +28,6 @@
+ pub async fn play_machine(machine_name: &str) -> Result<(), Box<dyn std::error::Error>> {
+     let appkey = get_appkey();
+     let appkey_clone = appkey.clone(); // Clone the necessary data to avoid borrowed value error
+-    let htb_path = format!("{}/.htb.conf", env::var("HOME").unwrap());
+-    let htbconfig = HTBConfig::get_current_config(&htb_path);
+     
+     let mut machine_info = PlayingMachine::get_machine(machine_name, &appkey).await;
+ 
+@@ -103,7 +100,7 @@
+     
+     machine_info.ip = get_ip(&appkey_clone).await; // For Starting Point machines and VIP and VIP+ VPNs, if I call the play API two times on the same machine, the old IP address associated to the machine can still live for some seconds providing a wrong IP related to the new same machine. For this reason, it is better to compute always the IP address (no problems for free VPNs because they associate always the same IP address to the same machine)
+ 
+-    let mut user_info = PlayingUser::get_playinguser(&appkey_clone).await; // Before this it is needed to run HTB VPN to take the Attacker IP address
++    let user_info = PlayingUser::get_playinguser(&appkey_clone).await; // Before this it is needed to run HTB VPN to take the Attacker IP address
+ 
+     let _ = print_banner();
+ 
+@@ -115,10 +112,6 @@
+         println!("{}Hey! You have already found the Root Flag! Keep it up!{}", BGREEN, RESET);
+     }
+ 
+-    if htbconfig.promptchange { //If the prompt is set to change during the playing...
+-        change_shell(&mut machine_info, &mut user_info);
+-    }
+-
+     // Writing /etc/hosts
+     let _ = add_hosts(&machine_info);
+ 
+--- a/src/types.rs	2024-01-17 23:40:14.341769452 +0100
++++ b/src/types.rs	2024-01-17 23:43:14.159871196 +0100
+@@ -2,7 +2,6 @@
+ use crate::colors::*;
+ use crate::utils::get_interface_ip;
+ use core::time::Duration;
+-use std::fs;
+ use std::process;
+ use std::thread::sleep;
+ 
+@@ -485,37 +484,4 @@
+             ip: userip,
+         }
+     }
+-}
+-
+-pub struct HTBConfig {
+-    pub promptchange: bool,
+-}
+-
+-impl HTBConfig {
+-
+-    pub fn get_current_config(htb_config: &str) -> Self {
+-        HTBConfig {
+-            promptchange: Self::get_prompt_change(htb_config),
+-        }
+-    }
+-
+-    fn get_prompt_change(htb_config: &str) -> bool {
+-        let prompt_change = fs::read_to_string(htb_config).expect("Failed to read htconfig.");
+-
+-        let change_prompt = prompt_change.lines()
+-            .find(|line| line.starts_with("prompt_change="))
+-            .map(|line| line.split('=').nth(1).unwrap_or_default())
+-            .unwrap_or_default();
+-
+-        // Convert the change_prompt string to a bool
+-        
+-        match change_prompt {
+-            "true" => true,
+-            "false" => false,
+-            _ => {
+-                // Handle other cases if needed, e.g., return a default value
+-                false
+-            }
+-        }
+-    }
+ }
+\ No newline at end of file
+--- a/src/utils.rs	2024-01-17 23:29:49.215407440 +0100
++++ b/src/utils.rs	2024-01-17 23:46:20.681009209 +0100
+@@ -5,7 +5,6 @@
+ use crate::types::*;
+ use crate::vpn::*;
+ use pnet::datalink;
+-use regex::Regex;
+ use reqwest::Client;
+ use std::fs;
+ use std::net::IpAddr;
+@@ -13,96 +12,6 @@
+ use tokio::io::{AsyncWriteExt, BufWriter};
+ use tokio::sync::mpsc;
+ 
+-pub fn change_shell(machine_info: &mut PlayingMachine, user_info: &mut PlayingUser) {
+-    let result = std::env::var("SHELL").unwrap_or_default();
+-    let mut file_bak = String::new();
+-    let mut file = String::new();
+-    let mut prompt = String::new();
+-    let mut prompt_field = "";
+-
+-    if result.contains("bash") {
+-        file_bak = format!("{}/.bashrc.htb.bak", std::env::var("HOME").unwrap_or_default());
+-        file = format!("{}/.bashrc", std::env::var("HOME").unwrap_or_default());
+-        prompt = format!(
+-            "PS1=\"\\e[32m\\]┌──[Target:{}🚀🌐IP:{}🔥\\e[34m\\]Attacker:{}📡IP:{}\\e[32m\\]🏅Prize:{} points]\\n└──╼[👾]\\\\[\\e[36m\\]\\$(pwd) $ \\[\\e[0m\\]\"",
+-            machine_info.machine.name,
+-            machine_info.ip,
+-            user_info.user.name,
+-            get_interface_ip("tun0").expect("Error on getting tun0 IP address"),
+-            machine_info.machine.points
+-        );
+-        prompt_field = "PS1=.*";
+-    } else if result.contains("fish") {
+-        file_bak = format!("{}/.config/fish/functions/fish_prompt.fish.htb.bak", std::env::var("HOME").unwrap_or_default());
+-        file = format!("{}/.config/fish/functions/fish_prompt.fish", std::env::var("HOME").unwrap_or_default());
+-        prompt = format!(
+-            r#"function fish_prompt
+-    set_color 00ff00
+-    echo -n "┌──[Target:{}🚀🌐IP:{}"
+-    set_color ff00d7
+-    echo -n "🔥Attacker:{}📡IP:{}"
+-    set_color 00ff00
+-    echo "🏅Prize:{} points]"
+-    set_color 00ff00
+-    echo -n "└──╼[👾]"
+-    set_color 00ffff
+-    echo (pwd) '$' (set_color normal)
+-end"#,
+-            machine_info.machine.name,
+-            machine_info.ip,
+-            user_info.user.name,
+-            get_interface_ip("tun0").expect("Error on getting tun0 IP address"),
+-            machine_info.machine.points
+-        );
+-    } else if result.contains("zsh") {
+-        file_bak = format!("{}/.zshrc.htb.bak", std::env::var("HOME").unwrap_or_default());
+-        file = format!("{}/.zshrc", std::env::var("HOME").unwrap_or_default());
+-        prompt = format!(
+-            "PROMPT=\"%F{{46}}┌──[Target:{}🚀🌐IP:{}🔥%F{{201}}Attacker:{}📡IP:{}%F{{46}}🏅Prize:{} points]\"$'\\n'\"└──╼[👾]%F{{44}}%~ $%f \"" ,
+-            machine_info.machine.name,
+-            machine_info.ip,
+-            user_info.user.name,
+-            get_interface_ip("tun0").expect("Error on getting tun0 IP address"),
+-            machine_info.machine.points
+-        );
+-        prompt_field = "PROMPT=.*";
+-    }
+-
+-    if !std::path::Path::new(&file_bak).exists() {
+-        std::fs::copy(&file, &file_bak).unwrap_or_default();
+-    }
+-    
+-    if result.contains("bash") || result.contains("zsh") {
+-        let file_content = std::fs::read_to_string(&file).unwrap_or_default();
+-        let regex = Regex::new(prompt_field).unwrap();
+-        let new_file_content = regex.replace_all(&file_content, prompt);
+-        std::fs::write(&file, new_file_content.as_ref()).unwrap_or_default();
+-    } else if result.contains("fish") {
+-        std::fs::write(&file, &prompt).unwrap_or_default();
+-    }
+-}
+-
+-pub fn restore_shell() {
+-    let result = env::var("SHELL").unwrap_or_default();
+-    let mut file_bak = String::new();
+-    let mut file = String::new();
+-
+-    if result.contains("bash") {
+-        file_bak = format!("{}/.bashrc.htb.bak", env::var("HOME").unwrap());
+-        file = format!("{}/.bashrc", env::var("HOME").unwrap());
+-    } else if result.contains("fish") {
+-        file_bak = format!("{}/.config/fish/functions/fish_prompt.fish.htb.bak", env::var("HOME").unwrap());
+-        file = format!("{}/.config/fish/functions/fish_prompt.fish", env::var("HOME").unwrap());
+-    } else if result.contains("zsh") {
+-        file_bak = format!("{}/.zshrc.htb.bak", env::var("HOME").unwrap());
+-        file = format!("{}/.zshrc", env::var("HOME").unwrap());
+-    }
+-    if fs::metadata(&file).is_ok() && std::path::Path::new(&file_bak).exists() {
+-        //Restore the prompt file from the backup
+-        fs::copy(&file_bak, &file).expect("Failed to copy file");
+-    }
+-}
+-
+ pub fn display_target_info(machine_info: &PlayingMachine, user_info: &PlayingUser) {
+     println!();
+     println!("{}Our secret agent gathered some information about the target:{}", BYELLOW, RESET);
+@@ -184,7 +93,7 @@
+     println!("Play Hack The Box machines directly on your system.");
+     println!();
+     std::thread::sleep(std::time::Duration::from_secs(2)); //Showing the description for some secs before showing the help message
+-    println!("{} [-h] [-a] [-f] [-k] <set|reset|delete> [-m] <machine-name> [-l] <free|retired|starting> [-p] <true|false> [-r] [-s] [-u] [-v] <vpn-name>", env::args().next().unwrap());
++    println!("{} [-h] [-a] [-f] [-k] <set|reset|delete> [-m] <machine-name> [-l] <free|retired|starting> [-r] [-s] [-u] [-v] <vpn-name>", env::args().next().unwrap());
+     println!();
+     println!("Options:");
+     println!("-a                            Print information about the current active machine.");
+@@ -193,7 +102,6 @@
+     println!("-k <set|reset|delete>         Set, reset or delete the Hack The Box App Key.");
+     println!("-m <machine-name>             Specify the machine name to play.");
+     println!("-l <free|retired|starting>    List free, retired or starting point machines.");
+-    println!("-p <true|false>               Set if the shell prompt should be changed.");
+     println!("-r                            Reset the playing machine.");
+     println!("-s                            Stop the playing machine.");
+     println!("-u                            Update free machines in the Red Team menu.");
diff --git a/pkgs/by-name/ht/htb-toolkit/package.nix b/pkgs/by-name/ht/htb-toolkit/package.nix
new file mode 100644
index 000000000000..9930f02e38bd
--- /dev/null
+++ b/pkgs/by-name/ht/htb-toolkit/package.nix
@@ -0,0 +1,69 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, openssl
+, stdenv
+, darwin
+, coreutils
+, gnome
+, libsecret
+, bash
+, openvpn
+, nerdfonts
+, gzip
+, killall
+}:
+
+rustPlatform.buildRustPackage {
+  pname = "htb-toolkit";
+  version = "unstable-2024-01-17";
+
+  src = fetchFromGitHub {
+    owner = "D3vil0p3r";
+    repo = "htb-toolkit";
+    # https://github.com/D3vil0p3r/htb-toolkit/issues/3
+    rev = "54e11774ea8746ea540548082d3b25c22306b4fc";
+    hash = "sha256-QYUqdqFV9Qn+VbJTnz5hx5I0XV1nrzCoCKtRS7jBLsE=";
+  };
+
+  cargoHash = "sha256-XDE6A6EIAUbuzt8Zb/ROfDAPp0ZyN0WQ4D1gWHjRVhg=";
+
+  # Patch to disable prompt change of the shell when a target machine is run. Needed due to Nix declarative nature
+  patches = [
+    ./disable-shell-prompt-change.patch
+  ];
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    gnome.gnome-keyring
+    openssl
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Security
+  ];
+
+  postPatch = ''
+    substituteInPlace src/manage.rs \
+      --replace /usr/share/htb-toolkit/icons/ $out/share/htb-toolkit/icons/
+    substituteInPlace src/utils.rs \
+      --replace /usr/bin/bash ${bash} \
+      --replace "\"base64\"" "\"${coreutils}/bin/base64\"" \
+      --replace "\"gunzip\"" "\"${gzip}/bin/gunzip\""
+    substituteInPlace src/appkey.rs \
+      --replace secret-tool ${lib.getExe libsecret}
+    substituteInPlace src/vpn.rs \
+      --replace "arg(\"openvpn\")" "arg(\"${openvpn}/bin/openvpn\")" \
+      --replace "arg(\"killall\")" "arg(\"${killall}/bin/killall\")"
+  '';
+
+  meta = with lib; {
+    description = "Play Hack The Box directly on your system";
+    homepage = "https://github.com/D3vil0p3r/htb-toolkit";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ d3vil0p3r ];
+    mainProgram = "htb-toolkit";
+  };
+}
diff --git a/pkgs/by-name/ht/http-server/package.nix b/pkgs/by-name/ht/http-server/package.nix
new file mode 100644
index 000000000000..9a058ac255ba
--- /dev/null
+++ b/pkgs/by-name/ht/http-server/package.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildNpmPackage
+, fetchFromGitHub
+, fetchpatch2
+}:
+
+buildNpmPackage rec {
+  pname = "http-server";
+  version = "14.1.1";
+
+  src = fetchFromGitHub {
+    owner = "http-party";
+    repo = "http-server";
+    rev = "v${version}";
+    hash = "sha256-M/YC721QWJfz5sYX6RHm1U9WPHVRBD0ZL2/ceYItnhs=";
+  };
+
+  patches = [
+    # https://github.com/http-party/http-server/pull/875
+    (fetchpatch2 {
+      name = "regenerate-package-lock.patch";
+      url = "https://github.com/http-party/http-server/commit/0cbd85175f1a399c4d13c88a25c5483a9f1dea08.patch";
+      hash = "sha256-hJyiUKZfuSaXTsjFi4ojdaE3rPHgo+N8k5Hqete+zqk=";
+    })
+  ];
+
+  npmDepsHash = "sha256-iUTDdcibnstbSxC7cD5WbwSxQbfiIL2iNyMWJ8izSu0=";
+
+  dontNpmBuild = true;
+
+  meta = {
+    description = "A simple zero-configuration command-line http server";
+    homepage = "https://github.com/http-party/http-server";
+    license = lib.licenses.mit;
+    mainProgram = "http-server";
+    maintainers = with lib.maintainers; [ ];
+  };
+}
diff --git a/pkgs/by-name/hu/hugo/package.nix b/pkgs/by-name/hu/hugo/package.nix
index b0d570194add..9ef270fac1cd 100644
--- a/pkgs/by-name/hu/hugo/package.nix
+++ b/pkgs/by-name/hu/hugo/package.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "hugo";
-  version = "0.121.2";
+  version = "0.122.0";
 
   src = fetchFromGitHub {
     owner = "gohugoio";
     repo = "hugo";
     rev = "refs/tags/v${version}";
-    hash = "sha256-YwwvxkS+oqTMZzwq6iiB/0vLHIyeReQi76B7fCgqtcY=";
+    hash = "sha256-pnsQo+nSuIlQ6KKTP1z/BZ74zEu9HjYP66hGStPc0pc=";
   };
 
-  vendorHash = "sha256-4j61PFULBXhtERDhbHW7gwEuP+KBUEdva2fjuaAVY0o=";
+  vendorHash = "sha256-aYy0TOfNIqx44UBXJhewvxi+oSAWjmi/32WvI3HJ3MM=";
 
   doCheck = false;
 
diff --git a/pkgs/by-name/ia/ianny/package.nix b/pkgs/by-name/ia/ianny/package.nix
new file mode 100644
index 000000000000..6b7c3ca940e5
--- /dev/null
+++ b/pkgs/by-name/ia/ianny/package.nix
@@ -0,0 +1,43 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, dbus
+, pkg-config
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "ianny";
+  version = "1.0.0beta.1";
+
+  src = fetchFromGitHub {
+    owner = "zefr0x";
+    repo = "ianny";
+    rev = "v${version}";
+    hash = "sha256-Bnr+wtusvTM690IISBs0wKj0ChBoIrMHyVZ8wdGgK08=";
+  };
+
+  cargoHash = "sha256-/8C+hDq/z+h1uxO9prLbKHgyfMGrMODAs5/yUrutaAM=";
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ dbus.dev ];
+
+  postPatch = ''
+    substituteInPlace src/main.rs \
+      --replace-fail '/usr/share/locale' $out/share/locale
+  '';
+
+  preFixup = ''
+    mkdir -p $out/etc/xdg/autostart
+    mkdir -p $out/usr/share/local
+    cp io.github.zefr0x.ianny.desktop $out/etc/xdg/autostart/
+  '';
+
+  meta = with lib; {
+    description = "Desktop utility that helps preventing repetitive strain injuries by keeping track of usage patterns and periodically informing the user to take breaks.";
+    homepage = "https://github.com/zefr0x/ianny";
+    license = licenses.gpl3;
+    mainProgram = "ianny";
+    maintainers = with maintainers; [ max-amb ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/games/igir/default.nix b/pkgs/by-name/ig/igir/package.nix
index 4f4cf048a659..80e22a5e4334 100644
--- a/pkgs/tools/games/igir/default.nix
+++ b/pkgs/by-name/ig/igir/package.nix
@@ -1,6 +1,11 @@
 { lib
 , buildNpmPackage
 , fetchFromGitHub
+
+# for patching bundled 7z binary from the 7zip-bin node module
+# at lib/node_modules/igir/node_modules/7zip-bin/linux/x64/7za
+, autoPatchelfHook
+, stdenv
 }:
 
 buildNpmPackage rec {
@@ -21,6 +26,14 @@ buildNpmPackage rec {
     patchShebangs scripts/update-readme-help.sh
   '';
 
+  nativeBuildInputs = [ autoPatchelfHook ];
+
+  buildInputs = [ stdenv.cc.cc.lib ];
+
+  # from lib/node_modules/igir/node_modules/@node-rs/crc32-linux-x64-musl/crc32.linux-x64-musl.node
+  # Irrelevant to our use
+  autoPatchelfIgnoreMissingDeps = [ "libc.musl-x86_64.so.1" ];
+
   meta = with lib; {
     description = "A video game ROM collection manager to help filter, sort, patch, archive, and report on collections on any OS";
     homepage = "https://igir.io";
diff --git a/pkgs/by-name/in/incus-unwrapped/package.nix b/pkgs/by-name/in/incus-unwrapped/package.nix
index 925a485a0723..d415e873f574 100644
--- a/pkgs/by-name/in/incus-unwrapped/package.nix
+++ b/pkgs/by-name/in/incus-unwrapped/package.nix
@@ -1,7 +1,6 @@
 { lib
 , buildGoModule
 , fetchFromGitHub
-, fetchpatch
 , acl
 , cowsql
 , hwdata
@@ -17,24 +16,16 @@
 
 buildGoModule rec {
   pname = "incus-unwrapped";
-  version = "0.4.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "lxc";
     repo = "incus";
     rev = "refs/tags/v${version}";
-    hash = "sha256-crWepf5j3Gd1lhya2DGIh/to7l+AnjKJPR+qUd9WOzw=";
+    hash = "sha256-3eWkQT2P69ZfN62H9B4WLnmlUOGkpzRR0rctgchP+6A=";
   };
 
-  vendorHash = "sha256-YfUvkN1qUS3FFKb1wysg40WcJA8fT9SGDChSdT+xnkc=";
-
-  patches = [
-    # remove with > 0.4.0
-    (fetchpatch {
-      url = "https://github.com/lxc/incus/commit/c0200b455a1468685d762649120ce7e2bb25adc9.patch";
-      hash = "sha256-4fiSv6GcsKpdLh3iNbw3AGuDzcw1EadUvxtSjxRjtTA=";
-    })
-  ];
+  vendorHash = "sha256-2ZJU7WshN4UIbJv55bFeo9qiAQ/wxu182mnz7pE60xA=";
 
   postPatch = ''
     substituteInPlace internal/usbid/load.go \
@@ -108,7 +99,7 @@ buildGoModule rec {
   meta = {
     description = "Powerful system container and virtual machine manager";
     homepage = "https://linuxcontainers.org/incus";
-    changelog = "https://github.com/lxc/incus/releases/tag/incus-${version}";
+    changelog = "https://github.com/lxc/incus/releases/tag/v${version}";
     license = lib.licenses.asl20;
     maintainers = lib.teams.lxc.members;
     platforms = lib.platforms.linux;
diff --git a/pkgs/by-name/in/incus/package.nix b/pkgs/by-name/in/incus/package.nix
index e02876407a7b..d4a9ef55c611 100644
--- a/pkgs/by-name/in/incus/package.nix
+++ b/pkgs/by-name/in/incus/package.nix
@@ -11,19 +11,27 @@
 , attr
 , bash
 , btrfs-progs
+, cdrkit
 , criu
 , dnsmasq
+, e2fsprogs
+, getent
 , gnutar
 , gptfdisk
 , gzip
 , iproute2
 , iptables
+, kmod
+, lvm2
+, minio
+, nftables
 , OVMF
 , qemu_kvm
 , qemu-utils
 , rsync
 , spice-gtk
 , squashfsTools
+, thin-provisioning-tools
 , util-linux
 , virtiofsd
 , xz
@@ -34,17 +42,25 @@ let
     attr
     bash
     btrfs-progs
+    cdrkit
     criu
     dnsmasq
+    e2fsprogs
+    getent
     gnutar
     gptfdisk
     gzip
     iproute2
     iptables
+    kmod
+    lvm2
+    minio
+    nftables
     qemu_kvm
     qemu-utils
     rsync
     squashfsTools
+    thin-provisioning-tools
     util-linux
     virtiofsd
     xz
diff --git a/pkgs/by-name/in/intune-portal/package.nix b/pkgs/by-name/in/intune-portal/package.nix
new file mode 100644
index 000000000000..fa8e7b5871a4
--- /dev/null
+++ b/pkgs/by-name/in/intune-portal/package.nix
@@ -0,0 +1,113 @@
+{ stdenv
+, lib
+, fetchurl
+, dpkg
+, libuuid
+, xorg
+, curlMinimal
+, openssl
+, libsecret
+, webkitgtk
+, libsoup
+, gtk3
+, atk
+, pango
+, glib
+, sqlite
+, zlib
+, systemd
+, msalsdk-dbusclient
+, pam
+, dbus
+, nixosTests
+}:
+stdenv.mkDerivation rec {
+  pname = "intune-portal";
+  version = "1.2312.35-jammy";
+
+  src = fetchurl {
+    url = "https://packages.microsoft.com/ubuntu/22.04/prod/pool/main/i/${pname}/${pname}_${version}_amd64.deb";
+    hash = "sha256-mgcnqj/+4ffMf4PhMW4ovCotLilyudGOpn0qqXZCmzc=";
+  };
+
+  nativeBuildInputs = [ dpkg ];
+
+  buildPhase =
+    let
+      libPath = {
+        intune = lib.makeLibraryPath [
+          stdenv.cc.cc.lib
+          libuuid
+          xorg.libX11
+          curlMinimal
+          openssl
+          libsecret
+          webkitgtk
+          libsoup
+          gtk3
+          atk
+          glib
+          pango
+          sqlite
+          zlib
+          systemd
+          msalsdk-dbusclient
+          dbus
+        ];
+        pam = lib.makeLibraryPath [ pam ];
+      };
+    in
+    ''
+      runHook preBuild
+
+      patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) --set-rpath ${libPath.intune} opt/microsoft/intune/bin/intune-portal
+      patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) --set-rpath ${libPath.intune} opt/microsoft/intune/bin/intune-agent
+      patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) --set-rpath ${libPath.intune} opt/microsoft/intune/bin/intune-daemon
+      patchelf --set-rpath ${libPath.pam} ./usr/lib/x86_64-linux-gnu/security/pam_intune.so
+
+      runHook postBuild
+    '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    cp -a opt/microsoft/intune/bin/* $out/bin/
+    cp -a usr/share $out
+    cp -a lib $out
+    mkdir -p $out/lib/security
+    cp -a ./usr/lib/x86_64-linux-gnu/security/pam_intune.so $out/lib/security/
+    cp -a usr/lib/tmpfiles.d $out/lib
+
+    substituteInPlace $out/share/applications/intune-portal.desktop \
+      --replace /opt/microsoft/intune/bin/intune-portal $out/bin/intune-portal
+
+    substituteInPlace $out/lib/systemd/user/intune-agent.service \
+      --replace \
+        ExecStart=/opt/microsoft/intune/bin/intune-agent \
+        ExecStart=$out/bin/intune-agent
+
+    substituteInPlace $out/lib/systemd/system/intune-daemon.service \
+      --replace \
+        ExecStart=/opt/microsoft/intune/bin/intune-daemon \
+        ExecStart=$out/bin/intune-daemon
+
+    runHook postInstall
+  '';
+
+  # Without this network requests fail
+  dontPatchELF = true;
+
+  passthru = {
+    updateScript = ./update.sh;
+    tests = { inherit (nixosTests) intune; };
+  };
+
+  meta = with lib; {
+    description = "Microsoft Intune Portal allows you to securely access corporate apps, data, and resources";
+    homepage = "https://www.microsoft.com/";
+    license = licenses.unfree;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with lib.maintainers; [ rhysmdnz ];
+  };
+}
diff --git a/pkgs/by-name/in/intune-portal/update.sh b/pkgs/by-name/in/intune-portal/update.sh
new file mode 100755
index 000000000000..4908bcf43794
--- /dev/null
+++ b/pkgs/by-name/in/intune-portal/update.sh
@@ -0,0 +1,26 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p curl gzip dpkg common-updater-scripts
+
+index_file=$(curl -sL https://packages.microsoft.com/ubuntu/22.04/prod/dists/jammy/main/binary-amd64/Packages.gz | gzip -dc)
+
+latest_version="0"
+
+echo "$index_file" | while read -r line; do
+    if [[ "$line" =~ ^Package:[[:space:]]*(.*) ]]; then
+        Package="${BASH_REMATCH[1]}"
+    fi
+    if [[ "$line" =~ ^Version:[[:space:]]*(.*) ]]; then
+        Version="${BASH_REMATCH[1]}"
+    fi
+
+    if ! [[ "$line" ]] && [[ "${Package}" == "intune-portal" ]]; then
+        if ( dpkg --compare-versions ${Version} gt ${latest_version} ); then
+            latest_version="${Version}"
+
+            echo $latest_version
+        fi
+
+        Package=""
+        Version=""
+    fi
+done | tail -n 1 | (read version; update-source-version intune-portal $version)
diff --git a/pkgs/by-name/in/invidtui/package.nix b/pkgs/by-name/in/invidtui/package.nix
index a0def40e132c..81402026b127 100644
--- a/pkgs/by-name/in/invidtui/package.nix
+++ b/pkgs/by-name/in/invidtui/package.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "invidtui";
-  version = "0.3.7";
+  version = "0.3.8";
 
   src = fetchFromGitHub {
     owner = "darkhz";
     repo = "invidtui";
     rev = "refs/tags/v${version}";
-    hash = "sha256-bzstO6xaVdu7u1vBgwUjnJ9CEep0UHT73FbybBRd8y8=";
+    hash = "sha256-m2ygORf6GIJZXYYJKy6i12wDEkxQywtYdCutHeiyNYY=";
   };
 
-  vendorHash = "sha256-F0Iyy8H6ZRYiAlMdYGQS2p2hFN9ICmfTiRP/F9kpW7c=";
+  vendorHash = "sha256-HQ6JHXiqawDwSV48/Czbao4opnuz1LqIBdcObrkCfNs=";
 
   doCheck = true;
 
diff --git a/pkgs/by-name/ir/ironbar/package.nix b/pkgs/by-name/ir/ironbar/package.nix
index cbc4a7678f5b..bcd28e4ee581 100644
--- a/pkgs/by-name/ir/ironbar/package.nix
+++ b/pkgs/by-name/ir/ironbar/package.nix
@@ -21,16 +21,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ironbar";
-  version = "0.13.0";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "JakeStanger";
     repo = "ironbar";
     rev = "v${version}";
-    hash = "sha256-e79eJGc/kxQjRwa1HnF7V/pCbrMTstJsBOl1Luo6i0g=";
+    hash = "sha256-NRQAR412m14SHozYjJmlnb/TJyCroiWdqY0NLvCOQSE=";
   };
 
-  cargoHash = "sha256-N8uAisQ50W/9zCr9bRX6tZ0slEoe1zCEMDXuvmoWEs4=";
+  cargoHash = "sha256-EzLcmOppzUtTg1dOdZcx2rweiELPXv2Mt/we7hMr4m4=";
 
   buildInputs = [
     gtk3
diff --git a/pkgs/by-name/ja/jasp-desktop/package.nix b/pkgs/by-name/ja/jasp-desktop/package.nix
index f5ec0115de12..395b980da880 100644
--- a/pkgs/by-name/ja/jasp-desktop/package.nix
+++ b/pkgs/by-name/ja/jasp-desktop/package.nix
@@ -17,13 +17,13 @@
 }:
 
 let
-  version = "0.18.2";
+  version = "0.18.3";
 
   src = fetchFromGitHub {
     owner = "jasp-stats";
     repo = "jasp-desktop";
     rev = "v${version}";
-    hash = "sha256-W0wYvk5T9srE1cOyGgahfGxEookdOgVcnzqH9SkFyo8=";
+    hash = "sha256-eKBxCIamNhUig+0vUEqXYbPjiaOsZk6QnOw8cnpjKFY=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/by-name/ja/jasper/package.nix b/pkgs/by-name/ja/jasper/package.nix
index bb059cde347f..47a8cf5b85a1 100644
--- a/pkgs/by-name/ja/jasper/package.nix
+++ b/pkgs/by-name/ja/jasper/package.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "jasper";
-  version = "4.1.0";
+  version = "4.1.2";
 
   src = fetchFromGitHub {
     owner = "jasper-software";
     repo = "jasper";
     rev = "version-${finalAttrs.version}";
-    hash = "sha256-u5380inzLmOT0v6emOtjU3pIEQqTmziAVz1R6QG77x0=";
+    hash = "sha256-tTgoRLthNLqRO8fDrmGHVCB9QXpmPmTr9uqSFwkIK+s=";
   };
 
   outputs = [ "out" "doc" "man" ];
@@ -26,6 +26,9 @@ stdenv.mkDerivation (finalAttrs: {
   # Since "build" already exists and is populated, cmake tries to use it,
   # throwing uncomprehensible error messages...
   cmakeBuildDir = "build-directory";
+  cmakeFlags = [
+    (lib.cmakeBool "ALLOW_IN_SOURCE_BUILD" true)
+  ];
 
   strictDeps = true;
 
diff --git a/pkgs/by-name/ja/jazz2/package.nix b/pkgs/by-name/ja/jazz2/package.nix
index 035842e76b54..ca7898848aa5 100644
--- a/pkgs/by-name/ja/jazz2/package.nix
+++ b/pkgs/by-name/ja/jazz2/package.nix
@@ -16,13 +16,13 @@
 assert lib.assertOneOf "graphicsLibrary" graphicsLibrary [ "SDL2" "GLFW" ];
 stdenv.mkDerivation (finalAttrs: {
   pname = "jazz2";
-  version = "2.4.1";
+  version = "2.5.0";
 
   src = fetchFromGitHub {
     owner = "deathkiller";
     repo = "jazz2-native";
     rev = finalAttrs.version;
-    hash = "sha256-AbB7xtdyin/VySswHoPRq9LmhHLUJfetXqtIxEw+KSI=";
+    hash = "sha256-IFsSIfHmSE6B1bpc5RWetJnlkv/jjlAUvRFV1pvVVNo=";
   };
 
   patches = [ ./nocontent.patch ];
diff --git a/pkgs/by-name/jd/jdt-language-server/package.nix b/pkgs/by-name/jd/jdt-language-server/package.nix
new file mode 100644
index 000000000000..04376d201722
--- /dev/null
+++ b/pkgs/by-name/jd/jdt-language-server/package.nix
@@ -0,0 +1,66 @@
+{ lib
+, stdenv
+, fetchurl
+, python3
+, jdk
+}:
+
+let
+  timestamp = "202401111522";
+in
+stdenv.mkDerivation (finalAttrs: {
+  pname = "jdt-language-server";
+  version = "1.31.0";
+
+  src = fetchurl {
+    url = "https://download.eclipse.org/jdtls/milestones/${finalAttrs.version}/jdt-language-server-${finalAttrs.version}-${timestamp}.tar.gz";
+    hash = "sha256-bCX2LQt00d2SqxmvuvvlBB6wbCuFPqtX9/Qv5v6wH3w=";
+  };
+
+  sourceRoot = ".";
+
+  buildInputs = [
+    # Used for the included wrapper
+    python3
+  ];
+
+  postPatch = ''
+    # We store the plugins, config, and features folder in different locations
+    # than in the original package. In addition, hard-code the path to the jdk
+    # in the wrapper, instead of searching for it in PATH at runtime.
+    substituteInPlace bin/jdtls.py \
+      --replace "jdtls_base_path = Path(__file__).parent.parent" "jdtls_base_path = Path(\"$out/share/java/jdtls/\")" \
+      --replace "java_executable = get_java_executable(known_args.validate_java_version)" "java_executable = '${lib.getExe jdk}'"
+  '';
+
+  installPhase =
+    let
+      # The application ships with different config directories for each platform.
+      # Note the application come with ARM variants as well, although the
+      # current included wrapper doesn't use them.
+      configDir = if stdenv.isDarwin then "config_mac" else "config_linux";
+    in
+    ''
+      runHook preInstall
+
+      install -Dm444 -t $out/share/java/jdtls/plugins/ plugins/*
+      install -Dm444 -t $out/share/java/jdtls/features/ features/*
+      install -Dm444 -t $out/share/java/jdtls/${configDir} ${configDir}/*
+      install -Dm555 -t $out/bin bin/jdtls
+      install -Dm444 -t $out/bin bin/jdtls.py
+
+      runHook postInstall
+    '';
+
+  passthru.updateScript = ./update.sh;
+
+  meta = {
+    homepage = "https://github.com/eclipse/eclipse.jdt.ls";
+    description = "Java language server";
+    sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
+    license = lib.licenses.epl20;
+    maintainers = with lib.maintainers; [ matt-snider ];
+    platforms = lib.platforms.all;
+    mainProgram = "jdtls";
+  };
+})
diff --git a/pkgs/by-name/jd/jdt-language-server/update.sh b/pkgs/by-name/jd/jdt-language-server/update.sh
new file mode 100644
index 000000000000..b482db22ee05
--- /dev/null
+++ b/pkgs/by-name/jd/jdt-language-server/update.sh
@@ -0,0 +1,21 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash --pure -p curl cacert libxml2 yq nix jq
+
+set -euo pipefail
+
+cd "$(dirname "${BASH_SOURCE[0]}")"
+DRV_DIR="$PWD"
+
+# scrape the downloads page for release info
+newver=$(curl -s 'https://download.eclipse.org/jdtls/milestones/' | xmllint --html - --xmlout 2>/dev/null | xq --raw-output '.html.body.main.div.div.div[0].div.table.tr | max_by(.td[3]).td[1].a.["#text"]')
+
+prefix="https://download.eclipse.org/jdtls/milestones/$newver"
+
+filename=$(curl -s "$prefix/latest.txt")
+newtimestamp=$(echo $filename | sed "s|^.*-$newver-||;s|\.tar\.gz$||")
+newhash="$(nix-hash --to-sri --type sha256 $(nix-prefetch-url "$prefix/$filename"))";
+
+sed -i default.nix \
+    -e "/^  version =/ s|\".*\"|\"$newver\"|" \
+    -e "/^  timestamp =/ s|\".*\"|\"$newtimestamp\"|" \
+    -e "/^    hash =/ s|\".*\"|\"$newhash\"|" \
diff --git a/pkgs/by-name/jn/jnr-posix/package.nix b/pkgs/by-name/jn/jnr-posix/package.nix
new file mode 100644
index 000000000000..7cc3f67e083a
--- /dev/null
+++ b/pkgs/by-name/jn/jnr-posix/package.nix
@@ -0,0 +1,82 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, dpkg
+, jdk
+, makeWrapper
+, maven
+, which
+}:
+let
+  pname = "jnr-posix";
+  version = "3.1.18";
+
+  src = fetchFromGitHub {
+    owner = "jnr";
+    repo = "jnr-posix";
+    rev = "jnr-posix-${version}";
+    hash = "sha256-zx8I9rsu9Kjef+LatDA1WIuO7Vgo0/JM5nGi3pSWch4=";
+  };
+
+  deps = stdenv.mkDerivation {
+    name = "${pname}-${version}-deps";
+    inherit src;
+
+    nativeBuildInputs = [ jdk maven ];
+
+    buildPhase = ''
+      runHook preBuild
+
+      mvn package -Dmaven.test.skip=true -Dmaven.repo.local=$out/.m2 -Dmaven.wagon.rto=5000
+
+      runHook postBuild
+    '';
+
+    # keep only *.{pom,jar,sha1,nbm} and delete all ephemeral files with lastModified timestamps inside
+    installPhase = ''
+      runHook preInstall
+
+      find $out/.m2 -type f -regex '.+\(\.lastUpdated\|resolver-status\.properties\|_remote\.repositories\)' -delete
+      find $out/.m2 -type f -iname '*.pom' -exec sed -i -e 's/\r\+$//' {} \;
+
+      runHook postInstall
+    '';
+
+    outputHashMode = "recursive";
+    outputHash = "sha256-gOw0KUFyZEMONwLwlHSiV+ZZ7JQhjZwg708Q1IciUfo=";
+
+    doCheck = false;
+  };
+in
+stdenv.mkDerivation rec {
+  inherit version pname src;
+
+  nativeBuildInputs = [ maven which ];
+
+  postPatch = ''
+    sed -i "s/\/usr\/bin\/id/$(which id | sed 's#/#\\/#g')/g" src/main/java/jnr/posix/JavaPOSIX.java
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    mvn package --offline -Dmaven.test.skip=true -Dmaven.repo.local=$(cp -dpR ${deps}/.m2 ./ && chmod +w -R .m2 && pwd)/.m2
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D target/${pname}-${version}.jar $out/share/java/${pname}-${version}.jar
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "jnr-posix is a lightweight cross-platform POSIX emulation layer for Java, written in Java and is part of the JNR project";
+    homepage = "https://github.com/jnr/jnr-posix";
+    license = with licenses; [ epl20 gpl2Only lgpl21Only ];
+    maintainers = with lib.maintainers; [ rhysmdnz ];
+  };
+}
diff --git a/pkgs/by-name/ki/kikit/default.nix b/pkgs/by-name/ki/kikit/default.nix
index c32b89af37d0..e34f12652ede 100644
--- a/pkgs/by-name/ki/kikit/default.nix
+++ b/pkgs/by-name/ki/kikit/default.nix
@@ -23,7 +23,7 @@ let
 in
 buildPythonApplication rec {
   pname = "kikit";
-  version = "1.3.0";
+  version = "1.4.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -31,8 +31,8 @@ buildPythonApplication rec {
   src = fetchFromGitHub {
     owner = "yaqwsx";
     repo = "KiKit";
-    rev = "v${version}";
-    hash = "sha256-kDTPk/R3eZtm4DjoUV4tSQzjGQ9k8MKQedX4oUXYzeo=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-88/1bL3MtawR/8P8U1jHatMbq+JxF1qb+plH3rYh1qU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/by-name/kp/kplex/package.nix b/pkgs/by-name/kp/kplex/package.nix
new file mode 100644
index 000000000000..78eb35f1e193
--- /dev/null
+++ b/pkgs/by-name/kp/kplex/package.nix
@@ -0,0 +1,32 @@
+{
+  stdenv,
+  fetchFromGitHub,
+  lib,
+}:
+stdenv.mkDerivation (finalAttrs: {
+  pname = "kplex";
+  version = "1.4";
+  src = fetchFromGitHub {
+    owner = "stripydog";
+    repo =  "kplex";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-sps9l238hGLJ673kewFH8fOJw0HphEkZbJ+VUIzxC+o=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m 0555 kplex $out/bin/kplex
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A multiplexer for various nmea 0183 interfaces";
+    homepage = "https://www.stripydog.com/kplex/";
+    changelog = "https://www.stripydog.com/kplex/changes.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ mabster314 ];
+    mainProgram = "kplex";
+  };
+})
diff --git a/pkgs/by-name/kt/ktfmt/package.nix b/pkgs/by-name/kt/ktfmt/package.nix
index 5428c39be0a5..49546fd41101 100644
--- a/pkgs/by-name/kt/ktfmt/package.nix
+++ b/pkgs/by-name/kt/ktfmt/package.nix
@@ -2,13 +2,13 @@
 
 maven.buildMavenPackage rec {
   pname = "ktfmt";
-  version = "0.46";
+  version = "0.47";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "ktfmt";
     rev = "refs/tags/v${version}";
-    hash = "sha256-OIbJ+J5LX6SPv5tuAiY66v/edeM7nFPHj90GXV6zaxw=";
+    hash = "sha256-vdvKHTTD84OAQacv/VE/5BxYdW4n3bxPUHF2MdH+sQQ=";
   };
 
   mvnHash = "sha256-Cl7P2i4VFJ/yk7700u62YPcacfKkhBztFvcDkYBfZEA=";
diff --git a/pkgs/by-name/ku/kubo/package.nix b/pkgs/by-name/ku/kubo/package.nix
index ae20f84e8170..e9a81a90b234 100644
--- a/pkgs/by-name/ku/kubo/package.nix
+++ b/pkgs/by-name/ku/kubo/package.nix
@@ -7,7 +7,7 @@
 
 buildGoModule rec {
   pname = "kubo";
-  version = "0.25.0"; # When updating, also check if the repo version changed and adjust repoVersion below
+  version = "0.26.0"; # When updating, also check if the repo version changed and adjust repoVersion below
   rev = "v${version}";
 
   passthru.repoVersion = "15"; # Also update kubo-migrator when changing the repo version
@@ -15,7 +15,7 @@ buildGoModule rec {
   # Kubo makes changes to its source tarball that don't match the git source.
   src = fetchurl {
     url = "https://github.com/ipfs/kubo/releases/download/${rev}/kubo-source.tar.gz";
-    hash = "sha256-+Mk3rDdtjhETmdaOOSXEFdLTJ0nX9G3qUxctsu5vrSc=";
+    hash = "sha256-qvn5VqEPLkehFWamtPGRuDLJ06bd5bn1qZRp05jP2AY=";
   };
 
   # tarball contains multiple files/directories
diff --git a/pkgs/by-name/le/lefthook/package.nix b/pkgs/by-name/le/lefthook/package.nix
index 4de73f6cd57c..8fad59a85c2e 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.5.6";
+  version = "1.5.7";
 in
 buildGoModule rec {
   inherit pname version;
@@ -15,7 +15,7 @@ buildGoModule rec {
     owner = "evilmartians";
     repo = "lefthook";
     rev = "v${version}";
-    hash = "sha256-6RSIrsm2VNlOtjAwz/HuCH4VOz/3W6snHSI1LypINYU=";
+    hash = "sha256-0z4hTx9ClGh20Ncf23SbwuPBdGoFz80FQUx7s77l7y8=";
   };
 
   vendorHash = "sha256-/VLS7+nPERjIU7V2CzqXH69Z3/y+GKZbAFn+KcRKRuA=";
diff --git a/pkgs/by-name/le/legba/package.nix b/pkgs/by-name/le/legba/package.nix
index c4f52fcc0902..01586e05723a 100644
--- a/pkgs/by-name/le/legba/package.nix
+++ b/pkgs/by-name/le/legba/package.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "legba";
-  version = "0.7.1";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "evilsocket";
     repo = "legba";
     rev = "v${version}";
-    hash = "sha256-7HDW5M0lsKbcQw3p/CYmUeX2xE4BZXUSNqa9Ab/ZP0I=";
+    hash = "sha256-yevQEbDuVaSsSfA3ug9rDeWtGjMvS+uD7qHguRVt4sg=";
   };
 
-  cargoHash = "sha256-rkqwc8BILW/OIHa95skkG4IDlBfH3qX1ROJgcn8f2W0=";
+  cargoHash = "sha256-UBt4FP5zW+dijneHNaFJ80Ui5R+m+8aSwHTcqKDeEVg=";
 
   nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [ openssl.dev samba ];
diff --git a/pkgs/by-name/le/lemminx/package.nix b/pkgs/by-name/le/lemminx/package.nix
index 816f095e8ce5..df946d3b4dea 100644
--- a/pkgs/by-name/le/lemminx/package.nix
+++ b/pkgs/by-name/le/lemminx/package.nix
@@ -1,7 +1,7 @@
 { lib
 , fetchFromGitHub
 , makeWrapper
-, jre
+, jre_headless
 , maven
 , writeScript
 , lemminx
@@ -67,7 +67,7 @@ maven.buildMavenPackage rec {
     install -Dm644 org.eclipse.lemminx/target/org.eclipse.lemminx-uber.jar \
       $out/share
 
-    makeWrapper ${jre}/bin/java $out/bin/lemminx \
+    makeWrapper ${jre_headless}/bin/java $out/bin/lemminx \
       --add-flags "-jar $out/share/org.eclipse.lemminx-uber.jar"
 
     runHook postInstall
diff --git a/pkgs/by-name/li/libbfio/package.nix b/pkgs/by-name/li/libbfio/package.nix
new file mode 100644
index 000000000000..ccc4c640677c
--- /dev/null
+++ b/pkgs/by-name/li/libbfio/package.nix
@@ -0,0 +1,29 @@
+{ lib
+, fetchzip
+, fetchpatch
+, stdenv
+, gettext
+, libtool
+, pkg-config
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "libbfio";
+  version = "20221025";
+
+  src = fetchzip {
+    url = "https://github.com/libyal/libbfio/releases/download/${finalAttrs.version}/libbfio-alpha-${finalAttrs.version}.tar.gz";
+    hash = "sha256-SwKQlmifyUo49yvo8RV+0nfvScPY5u+UrwjRZK2+qAg=";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ gettext libtool ];
+
+  meta = {
+    description = "Library to provide basic file input/output abstraction";
+    homepage = "https://github.com/libyal/libbfio";
+    license = with lib.licenses; [ gpl3Plus lgpl3Plus ];
+    maintainers = with lib.maintainers; [ d3vil0p3r ];
+    platforms = with lib.platforms; unix ++ windows;
+  };
+})
diff --git a/pkgs/by-name/li/libbgcode/package.nix b/pkgs/by-name/li/libbgcode/package.nix
index e4dd6099bc9d..6a28df1dce61 100644
--- a/pkgs/by-name/li/libbgcode/package.nix
+++ b/pkgs/by-name/li/libbgcode/package.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation {
     description = "Prusa Block & Binary G-code reader / writer / converter";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ lach ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/by-name/li/libleidenalg/package.nix b/pkgs/by-name/li/libleidenalg/package.nix
new file mode 100644
index 000000000000..75cdd34efa0f
--- /dev/null
+++ b/pkgs/by-name/li/libleidenalg/package.nix
@@ -0,0 +1,35 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, igraph
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libleidenalg";
+  version = "0.11.1";
+
+  src = fetchFromGitHub {
+    owner = "vtraag";
+    repo = "libleidenalg";
+    rev = "refs/tags/${version}";
+    hash = "sha256-hEES/OHvgN0yRDp5ZBZTCQfWr1j7s8NqE+Sp9WMHEEY=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  buildInputs = [
+    igraph
+  ];
+
+  meta = {
+    changelog = "https://github.com/vtraag/libleidenalg/blob/${version}/CHANGELOG";
+    description = "C++ library of Leiden algorithm";
+    homepage = "https://github.com/vtraag/libleidenalg";
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ dotlambda ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/pkgs/by-name/li/libmpdclient/package.nix b/pkgs/by-name/li/libmpdclient/package.nix
new file mode 100644
index 000000000000..b20d0fb6d6db
--- /dev/null
+++ b/pkgs/by-name/li/libmpdclient/package.nix
@@ -0,0 +1,35 @@
+{ fetchFromGitHub
+, fixDarwinDylibNames
+, lib
+, meson
+, ninja
+, stdenv
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "libmpdclient";
+  version = "2.22";
+
+  src = fetchFromGitHub {
+    owner = "MusicPlayerDaemon";
+    repo = "libmpdclient";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-KF8IR9YV6b9ro+L9m6nHs1IggakEZddfcBKm/oKCVZY=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+  ] ++ lib.optionals stdenv.isDarwin [
+    fixDarwinDylibNames
+  ];
+
+  meta = {
+    description = "Client library for MPD (music player daemon)";
+    homepage = "https://www.musicpd.org/libs/libmpdclient/";
+    changelog = "https://raw.githubusercontent.com/MusicPlayerDaemon/libmpdclient/${finalAttrs.src.rev}/NEWS";
+    license = with lib.licenses; [ bsd2 ];
+    maintainers = with lib.maintainers; [ AndersonTorres ehmry ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/pkgs/by-name/li/libplacebo_5/package.nix b/pkgs/by-name/li/libplacebo_5/package.nix
new file mode 100644
index 000000000000..f307a869e940
--- /dev/null
+++ b/pkgs/by-name/li/libplacebo_5/package.nix
@@ -0,0 +1,77 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, meson
+, ninja
+, pkg-config
+, python3Packages
+, vulkan-headers
+, vulkan-loader
+, shaderc
+, lcms2
+, libGL
+, libX11
+, libunwind
+, libdovi
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libplacebo";
+  version = "5.264.1";
+
+  src = fetchFromGitLab {
+    domain = "code.videolan.org";
+    owner = "videolan";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-YEefuEfJURi5/wswQKskA/J1UGzessQQkBpltJ0Spq8=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    vulkan-headers
+    python3Packages.jinja2
+    python3Packages.glad2
+  ];
+
+  buildInputs = [
+    vulkan-loader
+    shaderc
+    lcms2
+    libGL
+    libX11
+    libunwind
+    libdovi
+  ];
+
+  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
+  ] ++ optionals stdenv.isDarwin [
+    (mesonEnable "unwind" false) # libplacebo doesn’t build with `darwin.libunwind`
+  ];
+
+  postPatch = ''
+    substituteInPlace meson.build \
+      --replace 'python_env.append' '#'
+  '';
+
+  meta = with lib; {
+    description = "Reusable library for GPU-accelerated video/image rendering primitives";
+    longDescription = ''
+      Reusable library for GPU-accelerated image/view processing primitives and
+      shaders, as well a batteries-included, extensible, high-quality rendering
+      pipeline (similar to mpv's vo_gpu). Supports Vulkan, OpenGL and Metal (via
+      MoltenVK).
+    '';
+    homepage = "https://code.videolan.org/videolan/libplacebo";
+    changelog = "https://code.videolan.org/videolan/libplacebo/-/tags/v${version}";
+    license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [ primeos tadeokondrak ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/by-name/li/libsignal-ffi/Cargo.lock b/pkgs/by-name/li/libsignal-ffi/Cargo.lock
index 1aee4e85f3a4..06d583b5e13a 100644
--- a/pkgs/by-name/li/libsignal-ffi/Cargo.lock
+++ b/pkgs/by-name/li/libsignal-ffi/Cargo.lock
@@ -19,15 +19,6 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
 name = "aead"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877"
-dependencies = [
- "generic-array",
-]
-
-[[package]]
-name = "aead"
 version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0"
@@ -38,39 +29,27 @@ dependencies = [
 
 [[package]]
 name = "aes"
-version = "0.7.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8"
-dependencies = [
- "cfg-if",
- "cipher 0.3.0",
- "cpufeatures",
- "opaque-debug",
-]
-
-[[package]]
-name = "aes"
 version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2"
 dependencies = [
  "cfg-if",
- "cipher 0.4.4",
+ "cipher",
  "cpufeatures",
  "zeroize",
 ]
 
 [[package]]
 name = "aes-gcm"
-version = "0.9.2"
+version = "0.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc3be92e19a7ef47457b8e6f90707e12b6ac5d20c6f3866584fa3be0787d839f"
+checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1"
 dependencies = [
- "aead 0.4.3",
- "aes 0.7.5",
- "cipher 0.3.0",
- "ctr 0.7.0",
- "ghash 0.4.4",
+ "aead",
+ "aes",
+ "cipher",
+ "ctr",
+ "ghash",
  "subtle",
 ]
 
@@ -80,11 +59,11 @@ version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ae0784134ba9375416d469ec31e7c5f9fa94405049cf08c5ce5b4698be673e0d"
 dependencies = [
- "aead 0.5.2",
- "aes 0.8.3",
- "cipher 0.4.4",
- "ctr 0.9.2",
- "polyval 0.6.1",
+ "aead",
+ "aes",
+ "cipher",
+ "ctr",
+ "polyval",
  "subtle",
  "zeroize",
 ]
@@ -120,16 +99,58 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
 
 [[package]]
+name = "anstream"
+version = "0.6.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4cd2405b3ac1faab2990b74d728624cd9fd115651fcecc7c2d8daf01376275ba"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "utf8parse",
+]
+
+[[package]]
 name = "anstyle"
 version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
 
 [[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.75"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
+checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
 
 [[package]]
 name = "argon2"
@@ -145,12 +166,24 @@ dependencies = [
 ]
 
 [[package]]
+name = "array-concat"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e9180feb72ccbc07cfe5ef7fa8bbf86ca71490d5dc9ef8ea02c7298ba94e7f7d"
+
+[[package]]
 name = "arrayref"
 version = "0.3.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545"
 
 [[package]]
+name = "arrayvec"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
+
+[[package]]
 name = "asn1"
 version = "0.15.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -167,7 +200,7 @@ checksum = "861af988fac460ac69a09f41e6217a8fb9178797b76fcc9478444be6a59be19c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -177,14 +210,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
 
 [[package]]
+name = "async-compression"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc2d0cfb2a7388d34f590e76686704c494ed7aaceed62ee1ba35cbf363abc2a5"
+dependencies = [
+ "flate2",
+ "futures-core",
+ "futures-io",
+ "memchr",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "async-trait"
-version = "0.1.74"
+version = "0.1.77"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
+checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -194,7 +240,7 @@ dependencies = [
  "asn1",
  "bitflags 2.4.1",
  "boring",
- "chacha20poly1305 0.10.1",
+ "chacha20poly1305",
  "chrono",
  "ciborium",
  "displaydoc",
@@ -240,9 +286,9 @@ dependencies = [
 
 [[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 = "base64ct"
@@ -276,7 +322,7 @@ dependencies = [
  "regex",
  "rustc-hash",
  "shlex",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -308,9 +354,9 @@ checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
 
 [[package]]
 name = "bitstream-io"
-version = "1.8.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02bef9e74b5908bed0360844109a55b62b07cc973274c11d3a577bda8cc1cf60"
+checksum = "e445576659fd04a57b44cbd00aa37aaa815ebefa0aa3cb677a6b5e63d883074f"
 
 [[package]]
 name = "blake2"
@@ -398,7 +444,7 @@ version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6"
 dependencies = [
- "cipher 0.4.4",
+ "cipher",
 ]
 
 [[package]]
@@ -434,50 +480,25 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "chacha20"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c80e5460aa66fe3b91d40bcbdab953a597b60053e34d684ac6903f863b680a6"
-dependencies = [
- "cfg-if",
- "cipher 0.3.0",
- "cpufeatures",
- "zeroize",
-]
-
-[[package]]
-name = "chacha20"
 version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818"
 dependencies = [
  "cfg-if",
- "cipher 0.4.4",
+ "cipher",
  "cpufeatures",
 ]
 
 [[package]]
 name = "chacha20poly1305"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a18446b09be63d457bbec447509e85f662f32952b035ce892290396bc0b0cff5"
-dependencies = [
- "aead 0.4.3",
- "chacha20 0.8.2",
- "cipher 0.3.0",
- "poly1305 0.7.2",
- "zeroize",
-]
-
-[[package]]
-name = "chacha20poly1305"
 version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35"
 dependencies = [
- "aead 0.5.2",
- "chacha20 0.9.1",
- "cipher 0.4.4",
- "poly1305 0.8.0",
+ "aead",
+ "chacha20",
+ "cipher",
+ "poly1305",
  "zeroize",
 ]
 
@@ -525,15 +546,6 @@ dependencies = [
 
 [[package]]
 name = "cipher"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7"
-dependencies = [
- "generic-array",
-]
-
-[[package]]
-name = "cipher"
 version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
@@ -545,32 +557,56 @@ dependencies = [
 
 [[package]]
 name = "clang-sys"
-version = "1.6.1"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f"
+checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1"
 dependencies = [
  "glob",
  "libc",
- "libloading 0.7.4",
+ "libloading 0.8.1",
 ]
 
 [[package]]
 name = "clap"
-version = "4.4.7"
+version = "4.4.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac495e00dcec98c83465d5ad66c5c4fabd652fd6686e7c6269b117e729a6f17b"
+checksum = "58e54881c004cec7895b0068a0a954cd5d62da01aef83fa35b1e594497bf5445"
 dependencies = [
  "clap_builder",
+ "clap_derive",
+]
+
+[[package]]
+name = "clap-stdin"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b2273396940ab439c58cd300e1e93a07768fce6e7a578f24089aab40b3a9d00"
+dependencies = [
+ "thiserror",
 ]
 
 [[package]]
 name = "clap_builder"
-version = "4.4.7"
+version = "4.4.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c77ed9a32a62e6ca27175d00d29d05ca32e396ea1eb5fb01d8256b669cec7663"
+checksum = "59cb82d7f531603d2fd1f507441cdd35184fa81beff7bd489570de7f773460bb"
 dependencies = [
+ "anstream",
  "anstyle",
  "clap_lex",
+ "strsim",
+]
+
+[[package]]
+name = "clap_derive"
+version = "4.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
+dependencies = [
+ "heck 0.4.1",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -589,6 +625,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "colorchoice"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+
+[[package]]
 name = "combine"
 version = "4.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -606,9 +648,9 @@ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
 
 [[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",
@@ -616,20 +658,29 @@ dependencies = [
 
 [[package]]
 name = "core-foundation-sys"
-version = "0.8.4"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
 dependencies = [
  "libc",
 ]
 
 [[package]]
+name = "crc32fast"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
 name = "criterion"
 version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -667,36 +718,28 @@ dependencies = [
 
 [[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",
- "scopeguard",
 ]
 
 [[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 = "crypto-common"
@@ -711,20 +754,11 @@ dependencies = [
 
 [[package]]
 name = "ctr"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a232f92a03f37dd7d7dd2adc67166c77e9cd88de5b019b9a9eecfaeaf7bfd481"
-dependencies = [
- "cipher 0.3.0",
-]
-
-[[package]]
-name = "ctr"
 version = "0.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835"
 dependencies = [
- "cipher 0.4.4",
+ "cipher",
 ]
 
 [[package]]
@@ -752,7 +786,7 @@ source = "git+https://github.com/signalapp/curve25519-dalek?tag=signal-curve2551
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -792,19 +826,19 @@ dependencies = [
 
 [[package]]
 name = "data-encoding"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308"
+checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
 
 [[package]]
 name = "derive-where"
-version = "1.2.5"
+version = "1.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "146398d62142a0f35248a608f17edf0dde57338354966d6e41d0eb2d16980ccb"
+checksum = "62d671cc41a825ebabc75757b62d3d168c577f9149b2d49ece1dad1f72119d25"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -879,7 +913,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -917,9 +951,9 @@ dependencies = [
 
 [[package]]
 name = "dyn-clone"
-version = "1.0.14"
+version = "1.0.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23d2f3407d9a573d666de4b5bdf10569d73ca9478087346697dcbae6244bfbcd"
+checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d"
 
 [[package]]
 name = "either"
@@ -938,9 +972,9 @@ dependencies = [
 
 [[package]]
 name = "env_logger"
-version = "0.10.0"
+version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece"
 dependencies = [
  "humantime",
  "is-terminal",
@@ -957,12 +991,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
 name = "errno"
-version = "0.3.5"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
 dependencies = [
  "libc",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -984,6 +1018,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
 
 [[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"
@@ -1007,7 +1051,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1018,9 +1062,9 @@ checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
 
 [[package]]
 name = "form_urlencoded"
-version = "1.2.0"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
 dependencies = [
  "percent-encoding",
 ]
@@ -1042,10 +1086,25 @@ dependencies = [
 ]
 
 [[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.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -1053,45 +1112,57 @@ 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.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.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
 
 [[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.38",
+ "syn 2.0.48",
 ]
 
 [[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",
  "futures-io",
  "futures-macro",
@@ -1115,9 +1186,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.10"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if",
  "libc",
@@ -1126,30 +1197,20 @@ dependencies = [
 
 [[package]]
 name = "ghash"
-version = "0.4.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99"
-dependencies = [
- "opaque-debug",
- "polyval 0.5.3",
-]
-
-[[package]]
-name = "ghash"
 version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40"
 dependencies = [
  "opaque-debug",
- "polyval 0.6.1",
+ "polyval",
  "zeroize",
 ]
 
 [[package]]
 name = "gimli"
-version = "0.28.0"
+version = "0.28.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
 name = "glob"
@@ -1159,17 +1220,36 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
 name = "h2"
-version = "0.3.21"
+version = "0.3.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833"
+checksum = "b553656127a00601c8ae5590fcfdc118e4083a7924b6cf4ffc1ea4b99dc429d7"
 dependencies = [
  "bytes",
  "fnv",
  "futures-core",
  "futures-sink",
  "futures-util",
- "http",
- "indexmap 1.9.3",
+ "http 0.2.11",
+ "indexmap 2.1.0",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "h2"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "991910e35c615d8cab86b5ab04be67e6ad24d2bf5f4f11fdbbed26da999bbeab"
+dependencies = [
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http 1.0.0",
+ "indexmap 2.1.0",
  "slab",
  "tokio",
  "tokio-util",
@@ -1190,9 +1270,9 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
 
 [[package]]
 name = "hashbrown"
-version = "0.14.2"
+version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 
 [[package]]
 name = "headers"
@@ -1203,7 +1283,7 @@ dependencies = [
  "base64",
  "bytes",
  "headers-core",
- "http",
+ "http 0.2.11",
  "httpdate",
  "mime",
  "sha1",
@@ -1215,7 +1295,7 @@ version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429"
 dependencies = [
- "http",
+ "http 0.2.11",
 ]
 
 [[package]]
@@ -1256,9 +1336,9 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46"
 
 [[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",
 ]
@@ -1274,18 +1354,29 @@ 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]]
 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",
+ "itoa",
+]
+
+[[package]]
+name = "http"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea"
 dependencies = [
  "bytes",
  "fnv",
@@ -1294,35 +1385,35 @@ 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",
+ "http 0.2.11",
  "pin-project-lite",
 ]
 
 [[package]]
 name = "http-body"
-version = "1.0.0-rc.2"
+version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "951dfc2e32ac02d67c90c0d65bd27009a635dc9b381a2cc7d284ab01e3a0150d"
+checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643"
 dependencies = [
  "bytes",
- "http",
+ "http 1.0.0",
 ]
 
 [[package]]
 name = "http-body-util"
-version = "0.1.0-rc.3"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08ef12f041acdd397010e5fb6433270c147d3b8b2d0a840cd7fff8e531dca5c8"
+checksum = "41cb79eb393015dadd30fc252023adb0b2400a0caee0fa2a077e6e21a551e840"
 dependencies = [
  "bytes",
  "futures-util",
- "http",
- "http-body 1.0.0-rc.2",
+ "http 1.0.0",
+ "http-body 1.0.0",
  "pin-project-lite",
 ]
 
@@ -1346,22 +1437,22 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
 
 [[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",
- "http",
- "http-body 0.4.5",
+ "h2 0.3.23",
+ "http 0.2.11",
+ "http-body 0.4.6",
  "httparse",
  "httpdate",
  "itoa",
  "pin-project-lite",
- "socket2 0.4.10",
+ "socket2",
  "tokio",
  "tower-service",
  "tracing",
@@ -1370,30 +1461,28 @@ dependencies = [
 
 [[package]]
 name = "hyper"
-version = "1.0.0-rc.4"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d280a71f348bcc670fc55b02b63c53a04ac0bf2daff2980795aeaf53edae10e6"
+checksum = "fb5aa53871fc917b1a9ed87b683a5d86db645e23acb32c2e0785a353e522fb75"
 dependencies = [
  "bytes",
  "futures-channel",
  "futures-util",
- "h2",
- "http",
- "http-body 1.0.0-rc.2",
+ "h2 0.4.1",
+ "http 1.0.0",
+ "http-body 1.0.0",
  "httparse",
- "httpdate",
  "itoa",
  "pin-project-lite",
  "tokio",
- "tracing",
  "want",
 ]
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.58"
+version = "0.1.59"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20"
+checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
@@ -1420,9 +1509,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
 
 [[package]]
 name = "idna"
-version = "0.4.0"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
 dependencies = [
  "unicode-bidi",
  "unicode-normalization",
@@ -1445,7 +1534,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
 dependencies = [
  "equivalent",
- "hashbrown 0.14.2",
+ "hashbrown 0.14.3",
 ]
 
 [[package]]
@@ -1460,13 +1549,13 @@ dependencies = [
 
 [[package]]
 name = "is-terminal"
-version = "0.4.9"
+version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
+checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455"
 dependencies = [
  "hermit-abi",
  "rustix",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -1489,9 +1578,9 @@ dependencies = [
 
 [[package]]
 name = "itoa"
-version = "1.0.9"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
 name = "jni"
@@ -1526,9 +1615,9 @@ dependencies = [
 
 [[package]]
 name = "js-sys"
-version = "0.3.65"
+version = "0.3.67"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8"
+checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -1547,9 +1636,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
 
 [[package]]
 name = "libc"
-version = "0.2.149"
+version = "0.2.152"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b"
+checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
 
 [[package]]
 name = "libloading"
@@ -1563,12 +1652,12 @@ dependencies = [
 
 [[package]]
 name = "libloading"
-version = "0.7.4"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
+checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
 dependencies = [
  "cfg-if",
- "winapi",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -1591,7 +1680,6 @@ dependencies = [
  "hkdf",
  "hmac",
  "jni",
- "libc",
  "libsignal-bridge-macros",
  "libsignal-net",
  "libsignal-protocol",
@@ -1631,15 +1719,24 @@ dependencies = [
 ]
 
 [[package]]
+name = "libsignal-core"
+version = "0.1.0"
+dependencies = [
+ "hex-literal",
+ "num_enum",
+ "proptest",
+ "uuid",
+]
+
+[[package]]
 name = "libsignal-ffi"
-version = "0.36.1"
+version = "0.39.2"
 dependencies = [
  "async-trait",
  "attest",
  "cpufeatures",
  "device-transfer",
  "futures-util",
- "libc",
  "libsignal-bridge",
  "libsignal-protocol",
  "log",
@@ -1654,7 +1751,7 @@ dependencies = [
 
 [[package]]
 name = "libsignal-jni"
-version = "0.36.1"
+version = "0.39.2"
 dependencies = [
  "async-trait",
  "cfg-if",
@@ -1669,6 +1766,40 @@ dependencies = [
 ]
 
 [[package]]
+name = "libsignal-message-backup"
+version = "0.1.0"
+dependencies = [
+ "aes",
+ "array-concat",
+ "arrayvec",
+ "assert_matches",
+ "async-compression",
+ "cbc",
+ "clap",
+ "clap-stdin",
+ "derive-where",
+ "displaydoc",
+ "futures",
+ "hex",
+ "hex-literal",
+ "hkdf",
+ "hmac",
+ "libsignal-protocol",
+ "log",
+ "protobuf",
+ "protobuf-codegen",
+ "sha2",
+ "signal-crypto",
+ "subtle",
+ "test-case",
+ "test-log",
+ "thiserror",
+ "usernames",
+ "uuid",
+ "zkgroup",
+]
+
+[[package]]
 name = "libsignal-net"
 version = "0.1.0"
 dependencies = [
@@ -1676,35 +1807,41 @@ dependencies = [
  "async-trait",
  "attest",
  "base64",
+ "bincode",
  "boring",
  "bytes",
+ "clap",
  "derive-where",
  "displaydoc",
  "env_logger",
  "futures-util",
  "hex",
  "hex-literal",
- "http",
+ "hkdf",
+ "hmac",
+ "http 1.0.0",
  "http-body-util",
- "hyper 1.0.0-rc.4",
+ "hyper 1.1.0",
  "lazy_static",
- "libsignal-protocol",
+ "libsignal-core",
+ "libsignal-svr3",
  "log",
  "pin-project-lite",
  "prost",
  "prost-build",
- "rand",
+ "rand_core",
  "rustls-native-certs",
  "serde",
  "serde_json",
+ "sha2",
  "snow",
  "thiserror",
  "tokio",
  "tokio-boring",
  "tokio-stream",
- "tokio-tungstenite 0.19.0",
+ "tokio-tungstenite 0.21.0",
  "tokio-util",
- "tungstenite 0.19.0",
+ "tungstenite 0.21.0",
  "url",
  "uuid",
  "warp",
@@ -1712,7 +1849,7 @@ dependencies = [
 
 [[package]]
 name = "libsignal-node"
-version = "0.36.1"
+version = "0.39.2"
 dependencies = [
  "async-trait",
  "cmake",
@@ -1729,13 +1866,15 @@ dependencies = [
 name = "libsignal-protocol"
 version = "0.1.0"
 dependencies = [
- "aes 0.8.3",
+ "aes",
  "aes-gcm-siv",
  "arrayref",
  "async-trait",
+ "clap",
  "criterion",
- "ctr 0.9.2",
+ "ctr",
  "curve25519-dalek",
+ "derive-where",
  "displaydoc",
  "env_logger",
  "futures-util",
@@ -1743,17 +1882,19 @@ dependencies = [
  "hex-literal",
  "hkdf",
  "hmac",
- "indexmap 1.9.3",
+ "indexmap 2.1.0",
  "itertools 0.10.5",
+ "libsignal-core",
  "log",
  "num_enum",
- "pqcrypto-kyber 0.7.6",
+ "pqcrypto-kyber 0.7.9",
  "pqcrypto-kyber 0.8.0",
  "pqcrypto-traits",
  "proptest",
  "prost",
  "prost-build",
  "rand",
+ "rayon",
  "sha2",
  "signal-crypto",
  "static_assertions",
@@ -1768,6 +1909,7 @@ name = "libsignal-svr3"
 version = "0.1.0"
 dependencies = [
  "attest",
+ "base64",
  "bytemuck",
  "criterion",
  "curve25519-dalek",
@@ -1775,38 +1917,41 @@ dependencies = [
  "hex",
  "hex-literal",
  "hkdf",
- "libsignal-net",
- "rand",
+ "http 1.0.0",
+ "prost",
+ "prost-build",
  "rand_core",
  "sha2",
  "subtle",
+ "test-case",
+ "tokio",
 ]
 
 [[package]]
 name = "linkme"
-version = "0.3.17"
+version = "0.3.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91ed2ee9464ff9707af8e9ad834cffa4802f072caad90639c583dd3c62e6e608"
+checksum = "8b53ad6a33de58864705954edb5ad5d571a010f9e296865ed43dc72a5621b430"
 dependencies = [
  "linkme-impl",
 ]
 
 [[package]]
 name = "linkme-impl"
-version = "0.3.17"
+version = "0.3.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba125974b109d512fccbc6c0244e7580143e460895dfd6ea7f8bbb692fd94396"
+checksum = "04e542a18c94a9b6fcc7adb090fa3ba6b79ee220a16404f325672729f32a66ff"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.10"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f"
+checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456"
 
 [[package]]
 name = "lock_api"
@@ -1848,18 +1993,9 @@ dependencies = [
 
 [[package]]
 name = "memchr"
-version = "2.6.4"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
-
-[[package]]
-name = "memoffset"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
-dependencies = [
- "autocfg",
-]
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "mime"
@@ -1894,9 +2030,9 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.9"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0"
+checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
 dependencies = [
  "libc",
  "wasi",
@@ -1944,7 +2080,7 @@ dependencies = [
  "bytes",
  "encoding_rs",
  "futures-util",
- "http",
+ "http 0.2.11",
  "httparse",
  "log",
  "memchr",
@@ -2064,23 +2200,23 @@ dependencies = [
  "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[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 = [
  "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 = "oorandom"
@@ -2140,7 +2276,7 @@ checksum = "7459127d7a18cb202d418e4b7df1103ffd6d82a106e9b2091c250624c2ace70d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -2168,9 +2304,9 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
 
 [[package]]
 name = "percent-encoding"
-version = "2.3.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "petgraph"
@@ -2199,7 +2335,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -2216,9 +2352,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
 name = "platforms"
-version = "3.2.0"
+version = "3.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0"
+checksum = "626dec3cac7cc0e1577a2ec3fc496277ec2baa084bebad95bb6fdbfae235f84c"
 
 [[package]]
 name = "plotters"
@@ -2261,36 +2397,13 @@ dependencies = [
 
 [[package]]
 name = "poly1305"
-version = "0.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246ede"
-dependencies = [
- "cpufeatures",
- "opaque-debug",
- "universal-hash 0.4.0",
-]
-
-[[package]]
-name = "poly1305"
 version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf"
 dependencies = [
  "cpufeatures",
  "opaque-debug",
- "universal-hash 0.5.1",
-]
-
-[[package]]
-name = "polyval"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1"
-dependencies = [
- "cfg-if",
- "cpufeatures",
- "opaque-debug",
- "universal-hash 0.4.0",
+ "universal-hash",
 ]
 
 [[package]]
@@ -2302,7 +2415,7 @@ dependencies = [
  "cfg-if",
  "cpufeatures",
  "opaque-debug",
- "universal-hash 0.5.1",
+ "universal-hash",
 ]
 
 [[package]]
@@ -2325,9 +2438,9 @@ dependencies = [
 
 [[package]]
 name = "pqcrypto-kyber"
-version = "0.7.6"
+version = "0.7.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe9d9695c19e525d5366c913562a331fbeef9a2ad801d9a9ded61a0e4c2fe0fb"
+checksum = "c32fe9d5c9913b1aed1ba92b3449eb2d7cf7ca29741b11455dfa34c711b95776"
 dependencies = [
  "cc",
  "glob",
@@ -2357,12 +2470,12 @@ checksum = "94e851c7654eed9e68d7d27164c454961a616cf8c203d500607ef22c737b51bb"
 
 [[package]]
 name = "prettyplease"
-version = "0.2.15"
+version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d"
+checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5"
 dependencies = [
  "proc-macro2",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -2377,18 +2490,18 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.69"
+version = "1.0.76"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
+checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "proptest"
-version = "1.3.1"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c003ac8c77cb07bb74f5f198bce836a689bcd5a42574612bf14d17bfd08c20e"
+checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf"
 dependencies = [
  "bit-set",
  "bit-vec",
@@ -2398,7 +2511,7 @@ dependencies = [
  "rand",
  "rand_chacha",
  "rand_xorshift",
- "regex-syntax 0.7.5",
+ "regex-syntax",
  "rusty-fork",
  "tempfile",
  "unarray",
@@ -2406,9 +2519,9 @@ dependencies = [
 
 [[package]]
 name = "prost"
-version = "0.12.1"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4fdd22f3b9c31b53c060df4a0613a1c7f062d4115a2b984dd15b1858f7e340d"
+checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a"
 dependencies = [
  "bytes",
  "prost-derive",
@@ -2416,9 +2529,9 @@ dependencies = [
 
 [[package]]
 name = "prost-build"
-version = "0.12.1"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bdf592881d821b83d471f8af290226c8d51402259e9bb5be7f9f8bdebbb11ac"
+checksum = "c55e02e35260070b6f716a2423c2ff1c3bb1642ddca6f99e1f26d06268a0e2d2"
 dependencies = [
  "bytes",
  "heck 0.4.1",
@@ -2431,34 +2544,85 @@ dependencies = [
  "prost",
  "prost-types",
  "regex",
- "syn 2.0.38",
+ "syn 2.0.48",
  "tempfile",
  "which",
 ]
 
 [[package]]
 name = "prost-derive"
-version = "0.12.1"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "265baba7fabd416cf5078179f7d2cbeca4ce7a9041111900675ea7c4cb8a4c32"
+checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e"
 dependencies = [
  "anyhow",
  "itertools 0.11.0",
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "prost-types"
-version = "0.12.1"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e081b29f63d83a4bc75cfc9f3fe424f9156cf92d8a4f0c9407cce9a1b67327cf"
+checksum = "193898f59edcf43c26227dcd4c8427f00d99d61e95dcde58dabd49fa291d470e"
 dependencies = [
  "prost",
 ]
 
 [[package]]
+name = "protobuf"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b65f4a8ec18723a734e5dc09c173e0abf9690432da5340285d536edcb4dac190"
+dependencies = [
+ "once_cell",
+ "protobuf-support",
+ "thiserror",
+]
+
+[[package]]
+name = "protobuf-codegen"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e85514a216b1c73111d9032e26cc7a5ecb1bb3d4d9539e91fb72a4395060f78"
+dependencies = [
+ "anyhow",
+ "once_cell",
+ "protobuf",
+ "protobuf-parse",
+ "regex",
+ "tempfile",
+ "thiserror",
+]
+
+[[package]]
+name = "protobuf-parse"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77d6fbd6697c9e531873e81cec565a85e226b99a0f10e1acc079be057fe2fcba"
+dependencies = [
+ "anyhow",
+ "indexmap 1.9.3",
+ "log",
+ "protobuf",
+ "protobuf-support",
+ "tempfile",
+ "thiserror",
+ "which",
+]
+
+[[package]]
+name = "protobuf-support"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6872f4d4f4b98303239a2b5838f5bbbb77b01ffc892d627957f37a22d7cfe69c"
+dependencies = [
+ "thiserror",
+]
+
+[[package]]
 name = "quick-error"
 version = "1.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2466,9 +2630,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
 
 [[package]]
 name = "quote"
-version = "1.0.33"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
@@ -2550,7 +2714,7 @@ dependencies = [
  "aho-corasick",
  "memchr",
  "regex-automata",
- "regex-syntax 0.8.2",
+ "regex-syntax",
 ]
 
 [[package]]
@@ -2561,26 +2725,20 @@ checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-syntax 0.8.2",
+ "regex-syntax",
 ]
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
-
-[[package]]
-name = "regex-syntax"
 version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "ring"
-version = "0.17.5"
+version = "0.17.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb0205304757e5d899b9c2e448b867ffd03ae7f988002e47cd24954391394d0b"
+checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
 dependencies = [
  "cc",
  "getrandom",
@@ -2608,27 +2766,27 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
 dependencies = [
- "semver 1.0.20",
+ "semver 1.0.21",
 ]
 
 [[package]]
 name = "rustix"
-version = "0.38.21"
+version = "0.38.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3"
+checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316"
 dependencies = [
  "bitflags 2.4.1",
  "errno",
  "libc",
  "linux-raw-sys",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "rustls"
-version = "0.21.8"
+version = "0.21.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "446e14c5cda4f3f30fe71863c34ec70f5ac79d6087097ad0bb433e1be5edf04c"
+checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
 dependencies = [
  "log",
  "ring",
@@ -2650,9 +2808,9 @@ dependencies = [
 
 [[package]]
 name = "rustls-pemfile"
-version = "1.0.3"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2"
+checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
 dependencies = [
  "base64",
 ]
@@ -2681,9 +2839,9 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.15"
+version = "1.0.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
 
 [[package]]
 name = "same-file"
@@ -2696,11 +2854,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]]
@@ -2759,9 +2917,9 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.20"
+version = "1.0.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
+checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
 
 [[package]]
 name = "semver-parser"
@@ -2771,29 +2929,29 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
 
 [[package]]
 name = "serde"
-version = "1.0.190"
+version = "1.0.195"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91d3c334ca1ee894a2c6f6ad698fe8c435b76d504b13d436f0685d648d6d96f7"
+checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.190"
+version = "1.0.195"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3"
+checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.108"
+version = "1.0.111"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
+checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4"
 dependencies = [
  "itoa",
  "ryu",
@@ -2844,12 +3002,12 @@ checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380"
 name = "signal-crypto"
 version = "0.1.0"
 dependencies = [
- "aes 0.8.3",
+ "aes",
  "cbc",
  "criterion",
- "ctr 0.9.2",
+ "ctr",
  "displaydoc",
- "ghash 0.5.0",
+ "ghash",
  "hex",
  "hex-literal",
  "hmac",
@@ -2926,19 +3084,19 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.11.1"
+version = "1.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a"
+checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
 
 [[package]]
 name = "snow"
-version = "0.9.3"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c9d1425eb528a21de2755c75af4c9b5d57f50a0d4c3b7f1828a4cd03f8ba155"
+checksum = "58021967fd0a5eeeb23b08df6cc244a4d4a5b4aec1d27c9e02fad1a58b4cd74e"
 dependencies = [
  "aes-gcm",
  "blake2",
- "chacha20poly1305 0.9.1",
+ "chacha20poly1305",
  "curve25519-dalek",
  "rand_core",
  "rustc_version",
@@ -2948,16 +3106,6 @@ dependencies = [
 
 [[package]]
 name = "socket2"
-version = "0.4.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "socket2"
 version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
@@ -3003,9 +3151,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.38"
+version = "2.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b"
+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -3025,44 +3173,98 @@ dependencies = [
 
 [[package]]
 name = "tempfile"
-version = "3.8.1"
+version = "3.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
+checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
 dependencies = [
  "cfg-if",
  "fastrand",
  "redox_syscall",
  "rustix",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "termcolor"
-version = "1.3.0"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
 dependencies = [
  "winapi-util",
 ]
 
 [[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 2.0.48",
+]
+
+[[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 2.0.48",
+ "test-case-core",
+]
+
+[[package]]
+name = "test-log"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6159ab4116165c99fc88cce31f99fa2c9dbe08d3691cb38da02fc3b45f357d2b"
+dependencies = [
+ "env_logger",
+ "test-log-macros",
+]
+
+[[package]]
+name = "test-log-macros"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ba277e77219e9eea169e8508942db1bf5d8a41ff2db9b20aab5a5aadc9fa25d"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
 name = "thiserror"
-version = "1.0.50"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
+checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.50"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
+checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -3092,9 +3294,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.33.0"
+version = "1.35.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653"
+checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
 dependencies = [
  "backtrace",
  "bytes",
@@ -3104,7 +3306,7 @@ dependencies = [
  "parking_lot",
  "pin-project-lite",
  "signal-hook-registry",
- "socket2 0.5.5",
+ "socket2",
  "tokio-macros",
  "windows-sys 0.48.0",
 ]
@@ -3121,13 +3323,13 @@ dependencies = [
 
 [[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.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -3153,26 +3355,26 @@ dependencies = [
 
 [[package]]
 name = "tokio-tungstenite"
-version = "0.19.0"
+version = "0.20.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec509ac96e9a0c43427c74f003127d953a265737636129424288d27cb5c4b12c"
+checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c"
 dependencies = [
  "futures-util",
  "log",
  "tokio",
- "tungstenite 0.19.0",
+ "tungstenite 0.20.1",
 ]
 
 [[package]]
 name = "tokio-tungstenite"
-version = "0.20.1"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c"
+checksum = "c83b561d025642014097b66e6c1bb422783339e0909e4429cde4749d1990bc38"
 dependencies = [
  "futures-util",
  "log",
  "tokio",
- "tungstenite 0.20.1",
+ "tungstenite 0.21.0",
 ]
 
 [[package]]
@@ -3234,20 +3436,20 @@ dependencies = [
 
 [[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 = "tungstenite"
-version = "0.19.0"
+version = "0.20.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15fba1a6d6bb030745759a9a2a588bfe8490fc8b4751a277db3a0be1c9ebbf67"
+checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9"
 dependencies = [
  "byteorder",
  "bytes",
  "data-encoding",
- "http",
+ "http 0.2.11",
  "httparse",
  "log",
  "rand",
@@ -3259,14 +3461,14 @@ dependencies = [
 
 [[package]]
 name = "tungstenite"
-version = "0.20.1"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9"
+checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1"
 dependencies = [
  "byteorder",
  "bytes",
  "data-encoding",
- "http",
+ "http 1.0.0",
  "httparse",
  "log",
  "rand",
@@ -3299,9 +3501,9 @@ dependencies = [
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.13"
+version = "0.3.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416"
 
 [[package]]
 name = "unicode-ident"
@@ -3326,16 +3528,6 @@ checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
 
 [[package]]
 name = "universal-hash"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402"
-dependencies = [
- "generic-array",
- "subtle",
-]
-
-[[package]]
-name = "universal-hash"
 version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"
@@ -3352,9 +3544,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
 
 [[package]]
 name = "url"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
 dependencies = [
  "form_urlencoded",
  "idna",
@@ -3369,7 +3561,9 @@ dependencies = [
  "curve25519-dalek",
  "displaydoc",
  "hkdf",
+ "hmac",
  "lazy_static",
+ "log",
  "poksho",
  "proptest",
  "prost",
@@ -3389,10 +3583,16 @@ 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.5.0"
+version = "1.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88ad59a7560b41a70d191093a945f0b87bc1deeda46fb237479708a1d6b6cdfc"
+checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560"
 
 [[package]]
 name = "variant_count"
@@ -3448,8 +3648,8 @@ dependencies = [
  "futures-channel",
  "futures-util",
  "headers",
- "http",
- "hyper 0.14.27",
+ "http 0.2.11",
+ "hyper 0.14.28",
  "log",
  "mime",
  "mime_guess",
@@ -3478,9 +3678,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.88"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce"
+checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -3488,24 +3688,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.88"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217"
+checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.88"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2"
+checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -3513,28 +3713,28 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.88"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907"
+checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.88"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b"
+checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b"
 
 [[package]]
 name = "web-sys"
-version = "0.3.65"
+version = "0.3.67"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85"
+checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -3604,11 +3804,11 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[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.0",
 ]
 
 [[package]]
@@ -3630,6 +3830,15 @@ dependencies = [
 ]
 
 [[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.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3660,6 +3869,21 @@ dependencies = [
 ]
 
 [[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.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3672,6 +3896,12 @@ 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.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3684,6 +3914,12 @@ 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.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3696,6 +3932,12 @@ 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.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3708,6 +3950,12 @@ 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.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3720,6 +3968,12 @@ 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.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3732,6 +3986,12 @@ 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.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3744,10 +4004,16 @@ 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 = "winnow"
-version = "0.5.18"
+version = "0.5.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "176b6138793677221d420fd2f0aeeced263f197688b36484660da767bca2fa32"
+checksum = "b7cf47b659b318dccbd69cc4797a39ae128f533dce7902a1096044d1967b9c16"
 dependencies = [
  "memchr",
 ]
@@ -3766,9 +4032,9 @@ dependencies = [
 
 [[package]]
 name = "zeroize"
-version = "1.6.0"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9"
+checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
 dependencies = [
  "zeroize_derive",
 ]
@@ -3781,7 +4047,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -3811,12 +4077,13 @@ dependencies = [
  "bincode",
  "criterion",
  "curve25519-dalek",
+ "derive-where",
  "displaydoc",
  "hex",
  "hex-literal",
  "hkdf",
  "lazy_static",
- "libsignal-protocol",
+ "libsignal-core",
  "partial-default",
  "poksho",
  "rand",
diff --git a/pkgs/by-name/li/libsignal-ffi/package.nix b/pkgs/by-name/li/libsignal-ffi/package.nix
index 2798f2a582b7..b6faa11f8482 100644
--- a/pkgs/by-name/li/libsignal-ffi/package.nix
+++ b/pkgs/by-name/li/libsignal-ffi/package.nix
@@ -12,13 +12,13 @@ rustPlatform.buildRustPackage rec {
   pname = "libsignal-ffi";
   # must match the version used in mautrix-signal
   # see https://github.com/mautrix/signal/issues/401
-  version = "0.36.1";
+  version = "0.39.2";
 
   src = fetchFromGitHub {
     owner = "signalapp";
     repo = "libsignal";
     rev = "v${version}";
-    hash = "sha256-UD4E2kI1ZNtFhwBGphTzF37NHqbSZjQGHbliOWAMYOE=";
+    hash = "sha256-MKmkqfUhXOHUlP3jSNKsplT9kP0ERj3rmTrLLU3T2no=";
   };
 
   nativeBuildInputs = [ protobuf ] ++ lib.optionals stdenv.isDarwin [ xcodebuild ];
diff --git a/pkgs/by-name/li/libvibrant/package.nix b/pkgs/by-name/li/libvibrant/package.nix
new file mode 100644
index 000000000000..f9802bddafa8
--- /dev/null
+++ b/pkgs/by-name/li/libvibrant/package.nix
@@ -0,0 +1,32 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, makeWrapper
+, libX11
+, libXrandr
+, linuxPackages
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libvibrant";
+  version = "2100c09";
+
+  src = fetchFromGitHub {
+    owner = "libvibrant";
+    repo = "libvibrant";
+    rev = version;
+    hash = "sha256-nVODwP/PQgYBTHnSplgrkdNOLsF7N+vZ8iPL7gArVNY=";
+  };
+
+  buildInputs = [ libX11 libXrandr linuxPackages.nvidia_x11.settings.libXNVCtrl ];
+  nativeBuildInputs = [ cmake makeWrapper ];
+
+  meta = with lib; {
+    description = "A simple library to adjust color saturation of X11 outputs";
+    homepage = "https://github.com/libvibrant/libvibrant";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    mainProgram = "vibrant-cli";
+  };
+}
diff --git a/pkgs/by-name/li/lint-staged/package.nix b/pkgs/by-name/li/lint-staged/package.nix
index e2faec3d3fdb..11b5d7e0a5b5 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.0";
+  version = "15.2.1";
 
   src = fetchFromGitHub {
     owner = "okonet";
     repo = "lint-staged";
     rev = "v${version}";
-    hash = "sha256-Vziz8pV3pd1Rp6X6mHzyD22Z3q5LJJTXQ8kFuHpVgKc=";
+    hash = "sha256-CYPDrzEu592gGeZkBYNGwGooRwQyKEj46hnxtBVQDT4=";
   };
 
-  npmDepsHash = "sha256-BKgncl53MKFDASXo6I2Vn3v54iTL/h9gykJ3PWNUGQU=";
+  npmDepsHash = "sha256-m7VIEuCVDPd+ZgI8DJa01f/q9uYCzRtVbdfcipBRTmY=";
 
   dontNpmBuild = true;
 
diff --git a/pkgs/by-name/li/littlefs-fuse/package.nix b/pkgs/by-name/li/littlefs-fuse/package.nix
index f5534e8191ef..feb566a822a2 100644
--- a/pkgs/by-name/li/littlefs-fuse/package.nix
+++ b/pkgs/by-name/li/littlefs-fuse/package.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "littlefs-fuse";
-  version = "2.7.4";
+  version = "2.7.5";
   src = fetchFromGitHub {
     owner = "littlefs-project";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-S4yLe6xugr/cQOmf4vS09ebCqFuDPCXySJKACr0AUDU=";
+    hash = "sha256-sSnk1iQV5aHcOPqVKbigWqojrZKlJK5CcrVlwilT2mE=";
   };
   buildInputs = [ fuse ];
   installPhase = ''
diff --git a/pkgs/by-name/li/live555/package.nix b/pkgs/by-name/li/live555/package.nix
new file mode 100644
index 000000000000..b08ed44f4854
--- /dev/null
+++ b/pkgs/by-name/li/live555/package.nix
@@ -0,0 +1,95 @@
+{ lib
+, darwin
+, fetchurl
+, fetchpatch
+, openssl
+, stdenv
+, vlc
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "live555";
+  version = "2023.11.30";
+
+  src = fetchurl {
+    urls = [
+      "http://www.live555.com/liveMedia/public/live.${finalAttrs.version}.tar.gz"
+      "https://src.rrz.uni-hamburg.de/files/src/live555/live.${finalAttrs.version}.tar.gz"
+      "https://download.videolan.org/contrib/live555/live.${finalAttrs.version}.tar.gz"
+      "mirror://sourceforge/slackbuildsdirectlinks/live.${finalAttrs.version}.tar.gz"
+    ];
+    hash = "sha256-xue+9YtdAM2XkzAY6dU2PZ3n6bvPwlULIHqBqc8wuSU=";
+  };
+
+  patches = [
+    (fetchpatch {
+      name = "cflags-when-darwin.patch";
+      url = "https://github.com/rgaufman/live555/commit/16701af5486bb3a2d25a28edaab07789c8a9ce57.patch?full_index=1";
+      hash = "sha256-IDSdByBu/EBLsUTBe538rWsDwH61RJfAEhvT68Nb9rU=";
+    })
+  ];
+
+  nativeBuildInputs = lib.optionals stdenv.isDarwin [
+    darwin.cctools
+  ];
+
+  buildInputs = [
+    openssl
+  ];
+
+  strictDeps = true;
+
+  # Since NIX_CFLAGS_COMPILE does not differentiate C and C++ toolchains, we
+  # set CXXFLAGS directly
+  env.CXXFLAGS = "-std=c++20";
+
+  postPatch = ''
+    substituteInPlace config.macosx-catalina \
+      --replace '/usr/lib/libssl.46.dylib' "${lib.getLib openssl}/lib/libssl.dylib" \
+      --replace '/usr/lib/libcrypto.44.dylib' "${lib.getLib openssl}/lib/libcrypto.dylib"
+    sed -i -e 's|/bin/rm|rm|g' genMakefiles
+    sed -i \
+      -e 's/$(INCLUDES) -I. -O2 -DSOCKLEN_T/$(INCLUDES) -I. -O2 -I. -fPIC -DRTSPCLIENT_SYNCHRONOUS_INTERFACE=1 -DSOCKLEN_T/g' \
+      config.linux
+  ''
+  # condition from icu/base.nix
+  + lib.optionalString (stdenv.hostPlatform.libc == "glibc"
+                        || stdenv.hostPlatform.libc == "musl") ''
+    substituteInPlace liveMedia/include/Locale.hh \
+      --replace '<xlocale.h>' '<locale.h>'
+  '';
+
+  configurePhase = let
+    platform = if stdenv.isLinux
+               then "linux"
+               else if stdenv.isDarwin
+               then "macosx-catalina"
+               else throw "Unsupported platform: ${stdenv.hostPlatform.system}";
+  in ''
+    runHook preConfigure
+
+    ./genMakefiles ${platform}
+
+    runHook postConfigure
+  '';
+
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+  ];
+
+  enableParallelBuilding = true;
+
+  passthru.tests = {
+    # Downstream dependency
+    inherit vlc;
+  };
+
+  meta = {
+    homepage = "http://www.live555.com/liveMedia/";
+    description = "Set of C++ libraries for multimedia streaming, using open standard protocols (RTP/RTCP, RTSP, SIP)";
+    changelog = "http://www.live555.com/liveMedia/public/changelog.txt";
+    license = with lib.licenses; [ lgpl21Plus ];
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/pkgs/by-name/ll/llama-cpp/package.nix b/pkgs/by-name/ll/llama-cpp/package.nix
index 379673740aee..51d46d8019f4 100644
--- a/pkgs/by-name/ll/llama-cpp/package.nix
+++ b/pkgs/by-name/ll/llama-cpp/package.nix
@@ -19,6 +19,8 @@
 , openblas
 , pkg-config
 , metalSupport ? stdenv.isDarwin && stdenv.isAarch64 && !openclSupport
+, patchelf
+, static ? true # if false will build the shared objects as well
 }:
 
 let
@@ -29,13 +31,13 @@ let
 in
 effectiveStdenv.mkDerivation (finalAttrs: {
   pname = "llama-cpp";
-  version = "1848";
+  version = "2050";
 
   src = fetchFromGitHub {
     owner = "ggerganov";
     repo = "llama.cpp";
     rev = "refs/tags/b${finalAttrs.version}";
-    hash = "sha256-KuomiKU9c06Ux/ZcqctFdPQykGtjDzArN+tElPJVQ60=";
+    hash = "sha256-Wli9dZ5Aa4Xk/c9e2DqcernyfXaT3hd8qRo0GzrnxZU=";
   };
 
   postPatch = ''
@@ -105,15 +107,26 @@ effectiveStdenv.mkDerivation (finalAttrs: {
   ++ lib.optionals blasSupport [
     "-DLLAMA_BLAS=ON"
     "-DLLAMA_BLAS_VENDOR=OpenBLAS"
+  ]
+  ++ lib.optionals (!static) [
+    (lib.cmakeBool "BUILD_SHARED_LIBS" true)
   ];
 
   installPhase = ''
     runHook preInstall
 
     mkdir -p $out/bin
+    ${lib.optionalString (!static) ''
+      mkdir $out/lib
+      cp libggml_shared.so $out/lib
+      cp libllama.so $out/lib
+    ''}
 
     for f in bin/*; do
       test -x "$f" || continue
+      ${lib.optionalString (!static) ''
+        ${patchelf}/bin/patchelf "$f" --set-rpath "$out/lib"
+      ''}
       cp "$f" $out/bin/llama-cpp-"$(basename "$f")"
     done
 
diff --git a/pkgs/by-name/lo/louvain-community/package.nix b/pkgs/by-name/lo/louvain-community/package.nix
new file mode 100644
index 000000000000..857857092353
--- /dev/null
+++ b/pkgs/by-name/lo/louvain-community/package.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, lib
+, unstableGitUpdater
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "louvain-community";
+  version = "unstable-2024-01-30";
+
+  src = fetchFromGitHub {
+    owner = "meelgroup";
+    repo = "louvain-community";
+    rev = "681a711a530ded0b25af72ee4881d453a80ac8ac";
+    hash = "sha256-mp2gneTtm/PaCqz4JNOZgdKmFoV5ZRVwNYjHc4s2KuY=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  passthru.updateScript = unstableGitUpdater {};
+
+  meta = with lib; {
+    description = "Louvain Community Detection Library";
+    homepage = "https://github.com/meelgroup/louvain-community";
+    license = licenses.lgpl3Only;
+    maintainers = with maintainers; [ t4ccer ];
+    platforms = platforms.unix;
+  };
+})
diff --git a/pkgs/by-name/lu/lunar-client/package.nix b/pkgs/by-name/lu/lunar-client/package.nix
index 4dcfbb76e0b0..c01e74dd9a80 100644
--- a/pkgs/by-name/lu/lunar-client/package.nix
+++ b/pkgs/by-name/lu/lunar-client/package.nix
@@ -4,31 +4,28 @@
 , makeWrapper
 }:
 
-let
+appimageTools.wrapType2 rec {
   pname = "lunar-client";
-  version = "3.1.3";
+  version = "3.2.1";
 
   src = fetchurl {
     url = "https://launcherupdates.lunarclientcdn.com/Lunar%20Client-${version}.AppImage";
-    hash = "sha512-VV6UH0mEv+bABljDKZUOZXBjM1Whf2uacUQI8AnyLDBYI7pH0fkdjsBfjhQhFL0p8nHOwPAQflA+8vRFLH/uZw==";
+    hash = "sha512-ZW+SFIZ5+xxgesaZ7ZQbUnv7H5U92SZdfAU7GhJR1H0mhkrIb5Go6GWrIXaWYZLrmOlD98LSLihYi7SemJp+Yg==";
   };
 
-  appimageContents = appimageTools.extract { inherit pname version src; };
-in
-appimageTools.wrapType2 rec {
-  inherit pname version src;
-
-  extraInstallCommands = ''
-    mv $out/bin/{${pname}-${version},${pname}}
-    source "${makeWrapper}/nix-support/setup-hook"
-    wrapProgram $out/bin/${pname} \
-      --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
-    install -Dm444 ${appimageContents}/launcher.desktop $out/share/applications/lunar-client.desktop
-    install -Dm444 ${appimageContents}/launcher.png $out/share/pixmaps/lunar-client.png
-    substituteInPlace $out/share/applications/lunar-client.desktop \
-      --replace 'Exec=AppRun --no-sandbox %U' 'Exec=lunar-client' \
-      --replace 'Icon=launcher' 'Icon=lunar-client'
-  '';
+  extraInstallCommands =
+    let contents = appimageTools.extract { inherit pname version src; };
+    in ''
+      mv $out/bin/{lunar-client-*,lunar-client}
+      source "${makeWrapper}/nix-support/setup-hook"
+      wrapProgram $out/bin/lunar-client \
+        --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
+      install -Dm444 ${contents}/launcher.desktop $out/share/applications/lunar-client.desktop
+      install -Dm444 ${contents}/launcher.png $out/share/pixmaps/lunar-client.png
+      substituteInPlace $out/share/applications/lunar-client.desktop \
+        --replace 'Exec=AppRun --no-sandbox %U' 'Exec=lunar-client' \
+        --replace 'Icon=launcher' 'Icon=lunar-client'
+    '';
 
   passthru.updateScript = ./update.sh;
 
diff --git a/pkgs/by-name/lu/lunar-client/update.sh b/pkgs/by-name/lu/lunar-client/update.sh
index aa0adbff2b29..d3c4529fcd01 100755
--- a/pkgs/by-name/lu/lunar-client/update.sh
+++ b/pkgs/by-name/lu/lunar-client/update.sh
@@ -6,7 +6,7 @@ target="$(dirname "$(readlink -f "$0")")/package.nix"
 host="https://launcherupdates.lunarclientcdn.com"
 metadata=$(curl "$host/latest-linux.yml")
 version=$(echo "$metadata" | yq .version -r)
-sha512=$(echo "$metadata" | yq .sha512 -r)
+hash=$(echo "$metadata" | yq .sha512 -r)
 
 sed -i "s@version = .*;@version = \"$version\";@g" "$target"
-sed -i "s@hash.* = .*;@hash = \"sha512-$sha512\";@g" "$target"
+sed -i "s@hash.* = .*;@hash = \"sha512-$hash\";@g" "$target"
diff --git a/pkgs/servers/search/manticoresearch/default.nix b/pkgs/by-name/ma/manticoresearch/package.nix
index d7fe93a214b1..cf9cf4e59655 100644
--- a/pkgs/servers/search/manticoresearch/default.nix
+++ b/pkgs/by-name/ma/manticoresearch/package.nix
@@ -54,13 +54,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "manticoresearch";
-  version = "6.2.0";
+  version = "6.2.12";
 
   src = fetchFromGitHub {
     owner = "manticoresoftware";
     repo = "manticoresearch";
-    rev = finalAttrs.version;
-    hash = "sha256-KmBIQa5C71Y/1oa3XiPfmb941QDU2rWo7Bl5QlAo+yA=";
+    rev = "refs/tags/${finalAttrs.version}";
+    hash = "sha256-UD/r7rlJ5mR3wg4doKT/nTwTWzlulngUjOPNEjmykB8=";
   };
 
   nativeBuildInputs = [
@@ -95,21 +95,33 @@ stdenv.mkDerivation (finalAttrs: {
     "-DWITH_MYSQL=1"
     "-DMYSQL_INCLUDE_DIR=${mariadb-connector-c.dev}/include/mariadb"
     "-DMYSQL_LIB=${mariadb-connector-c.out}/lib/mariadb/libmysqlclient.a"
+    "-DCONFDIR=${placeholder "out"}/etc"
+    "-DLOGDIR=/var/lib/manticoresearch/log"
+    "-DRUNDIR=/var/run/manticoresearch"
   ];
 
+  postFixup = ''
+    mkdir -p $out/lib/systemd/system
+    cp ${finalAttrs.src}/dist/deb/manticore.service.in $out/lib/systemd/system/manticore.service
+    substituteInPlace $out/lib/systemd/system/manticore.service \
+      --replace "@CMAKE_INSTALL_FULL_RUNSTATEDIR@" "/var/lib/manticore" \
+      --replace "@CMAKE_INSTALL_FULL_BINDIR@" "$out/bin" \
+      --replace "@CMAKE_INSTALL_FULL_SYSCONFDIR@" "$out/etc"
+  '';
+
   passthru.tests.version = testers.testVersion {
     inherit (finalAttrs) version;
     package = manticoresearch;
     command = "searchd --version";
   };
 
-  meta = {
+  meta = with lib; {
     description = "Easy to use open source fast database for search";
     homepage = "https://manticoresearch.com";
     changelog = "https://github.com/manticoresoftware/manticoresearch/releases/tag/${finalAttrs.version}";
-    license = lib.licenses.gpl2;
+    license = licenses.gpl2;
     mainProgram = "searchd";
-    maintainers = [ lib.maintainers.jdelStrother ];
-    platforms = lib.platforms.all;
+    maintainers = [ maintainers.jdelStrother ];
+    platforms = platforms.all;
   };
 })
diff --git a/pkgs/by-name/ma/matrix-authentication-service/Cargo.lock b/pkgs/by-name/ma/matrix-authentication-service/Cargo.lock
new file mode 100644
index 000000000000..c9967434debd
--- /dev/null
+++ b/pkgs/by-name/ma/matrix-authentication-service/Cargo.lock
@@ -0,0 +1,7162 @@
+# 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 = "aes"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2"
+dependencies = [
+ "cfg-if",
+ "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 = "ahash"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a"
+dependencies = [
+ "cfg-if",
+ "getrandom 0.2.11",
+ "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 = "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 = "anstream"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
+
+[[package]]
+name = "anstyle-parse"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140"
+dependencies = [
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle-query"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+dependencies = [
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "anstyle-wincon"
+version = "3.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628"
+dependencies = [
+ "anstyle",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.75"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
+
+[[package]]
+name = "apalis-core"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5dbe998f2a77a65433e3e893f7ffba5b0c4835a9601ccab02aa868d1d3ed71eb"
+dependencies = [
+ "async-stream",
+ "async-trait",
+ "chrono",
+ "futures",
+ "graceful-shutdown",
+ "http 1.0.0",
+ "log",
+ "pin-project-lite",
+ "serde",
+ "strum",
+ "thiserror",
+ "tokio",
+ "tower",
+ "tracing",
+ "ulid",
+]
+
+[[package]]
+name = "apalis-cron"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9fc57450bd6a857d2370bb5504cf3d7f2a1fb85c7b68bdb7f92f50aac0e26aac"
+dependencies = [
+ "apalis-core",
+ "async-stream",
+ "chrono",
+ "cron",
+ "futures",
+ "tokio",
+ "tower",
+]
+
+[[package]]
+name = "arbitrary"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110"
+
+[[package]]
+name = "arc-swap"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
+
+[[package]]
+name = "argon2"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17ba4cac0a46bc1d2912652a751c47f2a9f3a7fe89bcae2275d418f5270402f9"
+dependencies = [
+ "base64ct",
+ "blake2",
+ "cpufeatures",
+ "password-hash",
+]
+
+[[package]]
+name = "arrayvec"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
+
+[[package]]
+name = "ascii_utils"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "71938f30533e4d95a6d17aa530939da3842c2ab6f4f84b9dae68447e4129f74a"
+
+[[package]]
+name = "assert-json-diff"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12"
+dependencies = [
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "assert_matches"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
+
+[[package]]
+name = "async-channel"
+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.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d37875bd9915b7d67c2f117ea2c30a0989874d0b2cb694fe25403c85763c0c9e"
+dependencies = [
+ "concurrent-queue",
+ "event-listener 3.1.0",
+ "event-listener-strategy",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-executor"
+version = "1.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc5ea910c42e5ab19012bab31f53cb4d63d54c3a27730f9a833a88efcf4bb52d"
+dependencies = [
+ "async-lock 3.1.1",
+ "async-task",
+ "concurrent-queue",
+ "fastrand 2.0.1",
+ "futures-lite 2.0.1",
+ "slab",
+]
+
+[[package]]
+name = "async-global-executor"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b4353121d5644cdf2beb5726ab752e79a8db1ebb52031770ec47db31d245526"
+dependencies = [
+ "async-channel 2.1.0",
+ "async-executor",
+ "async-io 2.2.0",
+ "async-lock 3.1.1",
+ "blocking",
+ "futures-lite 2.0.1",
+ "once_cell",
+]
+
+[[package]]
+name = "async-graphql"
+version = "6.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "298a5d587d6e6fdb271bf56af2dc325a80eb291fd0fc979146584b9a05494a8c"
+dependencies = [
+ "async-graphql-derive",
+ "async-graphql-parser",
+ "async-graphql-value",
+ "async-stream",
+ "async-trait",
+ "base64 0.13.1",
+ "bytes",
+ "chrono",
+ "fast_chemail",
+ "fnv",
+ "futures-util",
+ "handlebars",
+ "http 0.2.11",
+ "indexmap 2.1.0",
+ "mime",
+ "multer",
+ "num-traits",
+ "once_cell",
+ "pin-project-lite",
+ "regex",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "static_assertions",
+ "tempfile",
+ "thiserror",
+ "tracing",
+ "tracing-futures",
+ "url",
+]
+
+[[package]]
+name = "async-graphql-derive"
+version = "6.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7f329c7eb9b646a72f70c9c4b516c70867d356ec46cb00dcac8ad343fd006b0"
+dependencies = [
+ "Inflector",
+ "async-graphql-parser",
+ "darling 0.20.3",
+ "proc-macro-crate",
+ "proc-macro2",
+ "quote",
+ "strum",
+ "syn 2.0.39",
+ "thiserror",
+]
+
+[[package]]
+name = "async-graphql-parser"
+version = "6.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6139181845757fd6a73fbb8839f3d036d7150b798db0e9bb3c6e83cdd65bd53b"
+dependencies = [
+ "async-graphql-value",
+ "pest",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "async-graphql-value"
+version = "6.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "323a5143f5bdd2030f45e3f2e0c821c9b1d36e79cf382129c64299c50a7f3750"
+dependencies = [
+ "bytes",
+ "indexmap 2.1.0",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "async-io"
+version = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
+dependencies = [
+ "async-lock 2.8.0",
+ "autocfg",
+ "cfg-if",
+ "concurrent-queue",
+ "futures-lite 1.13.0",
+ "log",
+ "parking",
+ "polling 2.8.0",
+ "rustix 0.37.27",
+ "slab",
+ "socket2 0.4.10",
+ "waker-fn",
+]
+
+[[package]]
+name = "async-io"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41ed9d5715c2d329bf1b4da8d60455b99b187f27ba726df2883799af9af60997"
+dependencies = [
+ "async-lock 3.1.1",
+ "cfg-if",
+ "concurrent-queue",
+ "futures-io",
+ "futures-lite 2.0.1",
+ "parking",
+ "polling 3.3.0",
+ "rustix 0.38.25",
+ "slab",
+ "tracing",
+ "waker-fn",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "async-lock"
+version = "2.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
+dependencies = [
+ "event-listener 2.5.3",
+]
+
+[[package]]
+name = "async-lock"
+version = "3.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "655b9c7fe787d3b25cc0f804a1a8401790f0c5bc395beb5a64dc77d8de079105"
+dependencies = [
+ "event-listener 3.1.0",
+ "event-listener-strategy",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-process"
+version = "1.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88"
+dependencies = [
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
+ "async-signal",
+ "blocking",
+ "cfg-if",
+ "event-listener 3.1.0",
+ "futures-lite 1.13.0",
+ "rustix 0.38.25",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "async-signal"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
+dependencies = [
+ "async-io 2.2.0",
+ "async-lock 2.8.0",
+ "atomic-waker",
+ "cfg-if",
+ "futures-core",
+ "futures-io",
+ "rustix 0.38.25",
+ "signal-hook-registry",
+ "slab",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "async-std"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d"
+dependencies = [
+ "async-channel 1.9.0",
+ "async-global-executor",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
+ "async-process",
+ "crossbeam-utils",
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-lite 1.13.0",
+ "gloo-timers",
+ "kv-log-macro",
+ "log",
+ "memchr",
+ "once_cell",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+ "wasm-bindgen-futures",
+]
+
+[[package]]
+name = "async-stream"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51"
+dependencies = [
+ "async-stream-impl",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-stream-impl"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "async-task"
+version = "4.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4eb2cdb97421e01129ccb49169d8279ed21e829929144f4a22a6e54ac549ca1"
+
+[[package]]
+name = "async-trait"
+version = "0.1.74"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "atoi"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "atomic"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d818003e740b63afc82337e3160717f4f63078720a810b7b903e70a5d1d2994"
+dependencies = [
+ "bytemuck",
+]
+
+[[package]]
+name = "atomic-waker"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
+
+[[package]]
+name = "atomic-write-file"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c232177ba50b16fe7a4588495bd474a62a9e45a8e4ca6fd7d0b7ac29d164631e"
+dependencies = [
+ "nix",
+ "rand 0.8.5",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "axum"
+version = "0.6.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf"
+dependencies = [
+ "async-trait",
+ "axum-core",
+ "bitflags 1.3.2",
+ "bytes",
+ "futures-util",
+ "headers",
+ "http 0.2.11",
+ "http-body",
+ "hyper",
+ "itoa",
+ "matchit",
+ "memchr",
+ "mime",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustversion",
+ "serde",
+ "serde_json",
+ "serde_path_to_error",
+ "serde_urlencoded",
+ "sync_wrapper",
+ "tokio",
+ "tower",
+ "tower-layer",
+ "tower-service",
+]
+
+[[package]]
+name = "axum-core"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c"
+dependencies = [
+ "async-trait",
+ "bytes",
+ "futures-util",
+ "http 0.2.11",
+ "http-body",
+ "mime",
+ "rustversion",
+ "tower-layer",
+ "tower-service",
+]
+
+[[package]]
+name = "axum-extra"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ab90e7b70bea63a153137162affb6a0bce26b584c24a4c7885509783e2cf30b"
+dependencies = [
+ "axum",
+ "axum-core",
+ "bytes",
+ "cookie",
+ "futures-util",
+ "http 0.2.11",
+ "http-body",
+ "mime",
+ "pin-project-lite",
+ "serde",
+ "tokio",
+ "tower",
+ "tower-layer",
+ "tower-service",
+]
+
+[[package]]
+name = "axum-macros"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cdca6a10ecad987bda04e95606ef85a5417dcaac1a78455242d72e031e2b6b62"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "backtrace"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+]
+
+[[package]]
+name = "base16ct"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf"
+
+[[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.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
+
+[[package]]
+name = "base64ct"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
+
+[[package]]
+name = "bcrypt"
+version = "0.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28d1c9c15093eb224f0baa400f38fcd713fc1391a6f1c389d886beef146d60a3"
+dependencies = [
+ "base64 0.21.5",
+ "blowfish",
+ "getrandom 0.2.11",
+ "subtle",
+ "zeroize",
+]
+
+[[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.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "blake2"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe"
+dependencies = [
+ "digest",
+]
+
+[[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 = "blocking"
+version = "1.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
+dependencies = [
+ "async-channel 2.1.0",
+ "async-lock 3.1.1",
+ "async-task",
+ "fastrand 2.0.1",
+ "futures-io",
+ "futures-lite 2.0.1",
+ "piper",
+ "tracing",
+]
+
+[[package]]
+name = "blowfish"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e412e2cd0f2b2d93e02543ceae7917b3c70331573df19ee046bcbc35e45e87d7"
+dependencies = [
+ "byteorder",
+ "cipher",
+]
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
+
+[[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"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "camino"
+version = "1.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "cbc"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6"
+dependencies = [
+ "cipher",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.83"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+dependencies = [
+ "jobserver",
+ "libc",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "chacha20"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818"
+dependencies = [
+ "cfg-if",
+ "cipher",
+ "cpufeatures",
+]
+
+[[package]]
+name = "chacha20poly1305"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35"
+dependencies = [
+ "aead",
+ "chacha20",
+ "cipher",
+ "poly1305",
+ "zeroize",
+]
+
+[[package]]
+name = "chrono"
+version = "0.4.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
+dependencies = [
+ "android-tzdata",
+ "iana-time-zone",
+ "num-traits",
+ "serde",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "chrono-tz"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e23185c0e21df6ed832a12e2bda87c7d1def6842881fb634a8511ced741b0d76"
+dependencies = [
+ "chrono",
+ "chrono-tz-build",
+ "phf",
+]
+
+[[package]]
+name = "chrono-tz-build"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "433e39f13c9a060046954e0592a8d0a4bcb1040125cbf91cb8ee58964cfb350f"
+dependencies = [
+ "parse-zoneinfo",
+ "phf",
+ "phf_codegen",
+]
+
+[[package]]
+name = "chronoutil"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa531c9c2b0e6168a6e4c5023cd38e8d5ab009d3a10459cd3e7baecd68fc3715"
+dependencies = [
+ "chrono",
+]
+
+[[package]]
+name = "chumsky"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eebd66744a15ded14960ab4ccdbfb51ad3b81f51f3f04a80adac98c985396c9"
+dependencies = [
+ "hashbrown 0.14.2",
+ "stacker",
+]
+
+[[package]]
+name = "cipher"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
+dependencies = [
+ "crypto-common",
+ "inout",
+ "zeroize",
+]
+
+[[package]]
+name = "clap"
+version = "4.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2275f18819641850fa26c89acc84d465c1bf91ce57bc2748b28c420473352f64"
+dependencies = [
+ "clap_builder",
+ "clap_derive",
+]
+
+[[package]]
+name = "clap_builder"
+version = "4.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07cdf1b148b25c1e1f7a42225e30a0d99a615cd4637eae7365548dd4529b95bc"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "clap_lex",
+ "strsim",
+]
+
+[[package]]
+name = "clap_derive"
+version = "4.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
+
+[[package]]
+name = "colorchoice"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+
+[[package]]
+name = "concurrent-queue"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "console"
+version = "0.15.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8"
+dependencies = [
+ "encode_unicode",
+ "lazy_static",
+ "libc",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "const-oid"
+version = "0.9.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f"
+
+[[package]]
+name = "convert_case"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca"
+dependencies = [
+ "unicode-segmentation",
+]
+
+[[package]]
+name = "cookie"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7efb37c3e1ccb1ff97164ad95ac1606e8ccd35b3fa0a7d99a304c7f4a428cc24"
+dependencies = [
+ "aes-gcm",
+ "base64 0.21.5",
+ "hkdf",
+ "percent-encoding",
+ "rand 0.8.5",
+ "sha2",
+ "subtle",
+ "time",
+ "version_check",
+]
+
+[[package]]
+name = "cookie_store"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "387461abbc748185c3a6e1673d826918b450b87ff22639429c694619a83b6cf6"
+dependencies = [
+ "cookie",
+ "idna 0.3.0",
+ "log",
+ "publicsuffix",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "time",
+ "url",
+]
+
+[[package]]
+name = "core-foundation"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+
+[[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.102.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76eb38f2af690b5a4411d9a8782b6d77dabff3ca939e0518453ab9f9a4392d41"
+dependencies = [
+ "cranelift-entity",
+]
+
+[[package]]
+name = "cranelift-codegen"
+version = "0.102.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "39526c036b92912417e8931f52c1e235796688068d3efdbbd8b164f299d19156"
+dependencies = [
+ "bumpalo",
+ "cranelift-bforest",
+ "cranelift-codegen-meta",
+ "cranelift-codegen-shared",
+ "cranelift-control",
+ "cranelift-entity",
+ "cranelift-isle",
+ "gimli",
+ "hashbrown 0.14.2",
+ "log",
+ "regalloc2",
+ "smallvec",
+ "target-lexicon",
+]
+
+[[package]]
+name = "cranelift-codegen-meta"
+version = "0.102.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fdb0deedc9fccf2db53a5a3c9c9d0163e44143b0d004dca9bf6ab6a0024cd79a"
+dependencies = [
+ "cranelift-codegen-shared",
+]
+
+[[package]]
+name = "cranelift-codegen-shared"
+version = "0.102.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cea2d1b274e45aa8e61e9103efa1ba82d4b5a19d12bd1fd10744c3b7380ba3ff"
+
+[[package]]
+name = "cranelift-control"
+version = "0.102.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ea5977559a71e63db79a263f0e81a89b996e8a38212c4281e37dd1dbaa8b65c"
+dependencies = [
+ "arbitrary",
+]
+
+[[package]]
+name = "cranelift-entity"
+version = "0.102.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2f871ada808b58158d84dfc43a6a2e2d2756baaf4ed1c51fd969ca8330e6ca5c"
+dependencies = [
+ "serde",
+ "serde_derive",
+]
+
+[[package]]
+name = "cranelift-frontend"
+version = "0.102.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8e6890f587ef59824b3debe577e68fdf9b307b3808c54b8d93a18fd0b70941b"
+dependencies = [
+ "cranelift-codegen",
+ "log",
+ "smallvec",
+ "target-lexicon",
+]
+
+[[package]]
+name = "cranelift-isle"
+version = "0.102.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8d5fc6d5d3b52d1917002b17a8ecce448c2621b5bf394bb4e77e2f676893537"
+
+[[package]]
+name = "cranelift-native"
+version = "0.102.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e10c2e7faa65d4ae7de9a83b44f2c31aca7dc638e17d0a79572fdf8103d720b"
+dependencies = [
+ "cranelift-codegen",
+ "libc",
+ "target-lexicon",
+]
+
+[[package]]
+name = "cranelift-wasm"
+version = "0.102.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2755807efc7ec80d1cc0b6815e70f10cedf968889f0469091dbff9c5c0741c48"
+dependencies = [
+ "cranelift-codegen",
+ "cranelift-entity",
+ "cranelift-frontend",
+ "itertools 0.10.5",
+ "log",
+ "smallvec",
+ "wasmparser",
+ "wasmtime-types",
+]
+
+[[package]]
+name = "crc"
+version = "3.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe"
+dependencies = [
+ "crc-catalog",
+]
+
+[[package]]
+name = "crc-catalog"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5"
+
+[[package]]
+name = "crc32fast"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "cron"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ff76b51e4c068c52bfd2866e1567bee7c567ae8f24ada09fd4307019e25eab7"
+dependencies = [
+ "chrono",
+ "nom",
+ "once_cell",
+]
+
+[[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.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
+dependencies = [
+ "cfg-if",
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
+dependencies = [
+ "autocfg",
+ "cfg-if",
+ "crossbeam-utils",
+ "memoffset 0.9.0",
+ "scopeguard",
+]
+
+[[package]]
+name = "crossbeam-queue"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add"
+dependencies = [
+ "cfg-if",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
+dependencies = [
+ "cfg-if",
+]
+
+[[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 0.6.4",
+ "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 0.6.4",
+ "typenum",
+]
+
+[[package]]
+name = "csv"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe"
+dependencies = [
+ "csv-core",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "csv-core"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "ctr"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835"
+dependencies = [
+ "cipher",
+]
+
+[[package]]
+name = "darling"
+version = "0.14.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850"
+dependencies = [
+ "darling_core 0.14.4",
+ "darling_macro 0.14.4",
+]
+
+[[package]]
+name = "darling"
+version = "0.20.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e"
+dependencies = [
+ "darling_core 0.20.3",
+ "darling_macro 0.20.3",
+]
+
+[[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",
+ "quote",
+ "strsim",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.20.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.14.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e"
+dependencies = [
+ "darling_core 0.14.4",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.20.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
+dependencies = [
+ "darling_core 0.20.3",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "data-encoding"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
+
+[[package]]
+name = "deadpool"
+version = "0.9.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "421fe0f90f2ab22016f32a9881be5134fdd71c65298917084b0c7477cbc3856e"
+dependencies = [
+ "async-trait",
+ "deadpool-runtime",
+ "num_cpus",
+ "retain_mut",
+ "tokio",
+]
+
+[[package]]
+name = "deadpool-runtime"
+version = "0.1.3"
+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 = [
+ "serde",
+ "uuid",
+]
+
+[[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 = "deranged"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3"
+dependencies = [
+ "powerfmt",
+ "serde",
+]
+
+[[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 = "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-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"
+checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "dotenvy"
+version = "0.15.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b"
+
+[[package]]
+name = "duration-str"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5e172e85f305d6a442b250bf40667ffcb91a24f52c9a1ca59e2fa991ac9b7790"
+dependencies = [
+ "nom",
+ "rust_decimal",
+ "thiserror",
+]
+
+[[package]]
+name = "dyn-clone"
+version = "1.0.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d"
+
+[[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.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+dependencies = [
+ "serde",
+]
+
+[[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 0.6.4",
+ "sec1",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "email-encoding"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dbfb21b9878cf7a348dcb8559109aabc0ec40d69924bd706fa5149846c4fef75"
+dependencies = [
+ "base64 0.21.5",
+ "memchr",
+]
+
+[[package]]
+name = "email_address"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2153bd83ebc09db15bcbdc3e2194d901804952e3dc96967e1cd3b0c5c32d112"
+
+[[package]]
+name = "encode_unicode"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
+
+[[package]]
+name = "encoding_rs"
+version = "0.8.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+dependencies = [
+ "cfg-if",
+]
+
+[[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.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f258a7194e7f7c2a7837a8913aeab7fd8c383457034fa20ce4dd3dcb813e8eb8"
+dependencies = [
+ "libc",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "etcetera"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943"
+dependencies = [
+ "cfg-if",
+ "home",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "event-listener"
+version = "2.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
+
+[[package]]
+name = "event-listener"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener"
+version = "4.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "770d968249b5d99410d61f5bf89057f3199a077a04d087092f58e7d10692baae"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d96b852f1345da36d551b9473fa1e2b1eb5c5195585c6c018118bc92a8d91160"
+dependencies = [
+ "event-listener 3.1.0",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "fallible-iterator"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649"
+
+[[package]]
+name = "fast_chemail"
+version = "0.9.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "495a39d30d624c2caabe6312bfead73e7717692b44e0b32df168c275a2e8e9e4"
+dependencies = [
+ "ascii_utils",
+]
+
+[[package]]
+name = "fastrand"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+dependencies = [
+ "instant",
+]
+
+[[package]]
+name = "fastrand"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+
+[[package]]
+name = "ff"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449"
+dependencies = [
+ "rand_core 0.6.4",
+ "subtle",
+]
+
+[[package]]
+name = "figment"
+version = "0.10.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "649f3e5d826594057e9a519626304d8da859ea8a0b18ce99500c586b8d45faee"
+dependencies = [
+ "atomic",
+ "parking_lot",
+ "pear",
+ "serde",
+ "serde_yaml",
+ "tempfile",
+ "uncased",
+ "version_check",
+]
+
+[[package]]
+name = "finl_unicode"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fcfdc7a0362c9f4444381a9e697c79d435fe65b52a37466fc2c1184cee9edc6"
+
+[[package]]
+name = "fixed_decimal"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cbc7fdec9d7f6671a3ebb3282c969962aba67c49f6abac5311959b65cafabc10"
+dependencies = [
+ "displaydoc",
+ "smallvec",
+ "writeable",
+]
+
+[[package]]
+name = "flume"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+ "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 = "form_urlencoded"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "futures"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-io",
+ "futures-sink",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-intrusive"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f"
+dependencies = [
+ "futures-core",
+ "lock_api",
+ "parking_lot",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa"
+
+[[package]]
+name = "futures-lite"
+version = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
+dependencies = [
+ "fastrand 1.9.0",
+ "futures-core",
+ "futures-io",
+ "memchr",
+ "parking",
+ "pin-project-lite",
+ "waker-fn",
+]
+
+[[package]]
+name = "futures-lite"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3831c2651acb5177cbd83943f3d9c8912c5ad03c76afcc0e9511ba568ec5ebb"
+dependencies = [
+ "fastrand 2.0.1",
+ "futures-core",
+ "futures-io",
+ "memchr",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "futures-macro"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817"
+
+[[package]]
+name = "futures-task"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2"
+
+[[package]]
+name = "futures-timer"
+version = "3.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
+
+[[package]]
+name = "futures-util"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-macro",
+ "futures-sink",
+ "futures-task",
+ "memchr",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "generic-array"
+version = "0.14.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+dependencies = [
+ "typenum",
+ "version_check",
+ "zeroize",
+]
+
+[[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.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+]
+
+[[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"
+dependencies = [
+ "fallible-iterator",
+ "indexmap 2.1.0",
+ "stable_deref_trait",
+]
+
+[[package]]
+name = "glob"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+
+[[package]]
+name = "gloo-timers"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "graceful-shutdown"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3effbaf774a1da3462925bb182ccf975c284cf46edca5569ea93420a657af484"
+dependencies = [
+ "futures-core",
+ "pin-project-lite",
+ "tokio",
+]
+
+[[package]]
+name = "group"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63"
+dependencies = [
+ "ff",
+ "rand_core 0.6.4",
+ "subtle",
+]
+
+[[package]]
+name = "h2"
+version = "0.3.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178"
+dependencies = [
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http 0.2.11",
+ "indexmap 2.1.0",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "handlebars"
+version = "4.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "faa67bab9ff362228eb3d00bd024a4965d8231bbb7921167f0cfa66c6626b225"
+dependencies = [
+ "log",
+ "pest",
+ "pest_derive",
+ "serde",
+ "serde_json",
+ "thiserror",
+]
+
+[[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.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156"
+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.2",
+]
+
+[[package]]
+name = "hdrhistogram"
+version = "7.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "765c9198f173dd59ce26ff9f95ef0aafd0a0fe01fb9d72841bc5066a4c06511d"
+dependencies = [
+ "byteorder",
+ "num-traits",
+]
+
+[[package]]
+name = "headers"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270"
+dependencies = [
+ "base64 0.21.5",
+ "bytes",
+ "headers-core",
+ "http 0.2.11",
+ "httpdate",
+ "mime",
+ "sha1",
+]
+
+[[package]]
+name = "headers-core"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429"
+dependencies = [
+ "http 0.2.11",
+]
+
+[[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.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+
+[[package]]
+name = "hex"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+
+[[package]]
+name = "hkdf"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437"
+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.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb"
+dependencies = [
+ "windows-sys 0.48.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 = "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.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
+dependencies = [
+ "bytes",
+ "http 0.2.11",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "http-range-header"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f"
+
+[[package]]
+name = "http-types"
+version = "2.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e9b187a72d63adbfba487f48095306ac823049cb504ee195541e91c7775f5ad"
+dependencies = [
+ "anyhow",
+ "async-channel 1.9.0",
+ "base64 0.13.1",
+ "futures-lite 1.13.0",
+ "http 0.2.11",
+ "infer",
+ "pin-project-lite",
+ "rand 0.7.3",
+ "serde",
+ "serde_json",
+ "serde_qs",
+ "serde_urlencoded",
+ "url",
+]
+
+[[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 = "hyper"
+version = "0.14.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http 0.2.11",
+ "http-body",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "socket2 0.4.10",
+ "tokio",
+ "tower-service",
+ "tracing",
+ "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",
+ "rustls",
+ "rustls-native-certs",
+ "tokio",
+ "tokio-rustls",
+]
+
+[[package]]
+name = "hyper-timeout"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1"
+dependencies = [
+ "hyper",
+ "pin-project-lite",
+ "tokio",
+ "tokio-io-timeout",
+]
+
+[[package]]
+name = "iana-time-zone"
+version = "0.1.58"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20"
+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 = "icu_list"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe6c04ec71ad1bacdbfb47164d4801f80a0533d9340f94f1a880f521eff59f54"
+dependencies = [
+ "displaydoc",
+ "icu_list_data",
+ "icu_locid_transform",
+ "icu_provider",
+ "regex-automata 0.2.0",
+ "writeable",
+]
+
+[[package]]
+name = "icu_list_data"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42f6afcf7a9a7fedece70b7f17d7a7ecdfb8df145d37ae46d0277cd1e3932532"
+
+[[package]]
+name = "icu_locid"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c0aa2536adc14c07e2a521e95512b75ed8ef832f0fdf9299d4a0a45d2be2a9d"
+dependencies = [
+ "displaydoc",
+ "litemap",
+ "tinystr",
+ "writeable",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_locid_transform"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57c17d8f6524fdca4471101dd71f0a132eb6382b5d6d7f2970441cb25f6f435a"
+dependencies = [
+ "displaydoc",
+ "icu_locid",
+ "icu_locid_transform_data",
+ "icu_provider",
+ "tinystr",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_locid_transform_data"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "545c6c3e8bf9580e2dafee8de6f9ec14826aaf359787789c7724f1f85f47d3dc"
+
+[[package]]
+name = "icu_plurals"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37d807b123eb2a9ae8f12080fb8cce479f5c8a761fba0bb5ab52da6dd5e31a03"
+dependencies = [
+ "displaydoc",
+ "fixed_decimal",
+ "icu_locid",
+ "icu_locid_transform",
+ "icu_plurals_data",
+ "icu_provider",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_plurals_data"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3acd5f1f2f988ed2dae9316c3d3560dfe4e03a7516d142b4b89b92252ada41a"
+
+[[package]]
+name = "icu_provider"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba58e782287eb6950247abbf11719f83f5d4e4a5c1f2cd490d30a334bc47c2f4"
+dependencies = [
+ "displaydoc",
+ "icu_locid",
+ "icu_provider_macros",
+ "stable_deref_trait",
+ "tinystr",
+ "writeable",
+ "yoke",
+ "zerofrom",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_provider_adapters"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a229f978260da7c3aabb68cb7dc7316589936680570fe55e50fdd3f97711a4dd"
+dependencies = [
+ "icu_locid",
+ "icu_locid_transform",
+ "icu_provider",
+ "tinystr",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_provider_macros"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2abdd3a62551e8337af119c5899e600ca0c88ec8f23a46c60ba216c803dcf1a"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[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"
+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+
+[[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.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[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.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
+dependencies = [
+ "equivalent",
+ "hashbrown 0.14.2",
+ "serde",
+]
+
+[[package]]
+name = "indoc"
+version = "2.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8"
+
+[[package]]
+name = "infer"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "64e9829a50b42bb782c1df523f78d332fe371b10c661e78b7a3c34b0198e9fac"
+
+[[package]]
+name = "inherent"
+version = "1.0.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce243b1bfa62ffc028f1cc3b6034ec63d649f3031bc8a4fbbb004e1ac17d1f68"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "inlinable_string"
+version = "0.1.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8fae54786f62fb2918dcfae3d568594e50eb9b5c25bf04371af6fe7516452fb"
+
+[[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 = "insta"
+version = "1.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d64600be34b2fcfc267740a243fa7744441bb4947a619ac4e5bb6507f35fbfc"
+dependencies = [
+ "console",
+ "lazy_static",
+ "linked-hash-map",
+ "serde",
+ "similar",
+ "yaml-rust",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "integer-encoding"
+version = "3.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8bb03732005da905c88227371639bf1ad885cc712789c011c31c5fb3ab3ccf02"
+
+[[package]]
+name = "io-lifetimes"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "ipnetwork"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf466541e9d546596ee94f9f69590f89473455f88372423e0008fc1a7daf100e"
+dependencies = [
+ "schemars",
+ "serde",
+]
+
+[[package]]
+name = "iri-string"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21859b667d66a4c1dacd9df0863b3efb65785474255face87f5bca39dd8407c0"
+dependencies = [
+ "memchr",
+ "serde",
+]
+
+[[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 = "itoa"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+
+[[package]]
+name = "jobserver"
+version = "0.1.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "js-sys"
+version = "0.3.65"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "json-patch"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55ff1e1486799e3f64129f8ccad108b38290df9cd7015cd31bed17239f0789d6"
+dependencies = [
+ "serde",
+ "serde_json",
+ "thiserror",
+]
+
+[[package]]
+name = "k256"
+version = "0.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f01b677d82ef7a676aa37e099defd83a28e15687112cafdd112d60236b6115b"
+dependencies = [
+ "cfg-if",
+ "ecdsa",
+ "elliptic-curve",
+ "once_cell",
+ "sha2",
+ "signature",
+]
+
+[[package]]
+name = "kv-log-macro"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f"
+dependencies = [
+ "log",
+]
+
+[[package]]
+name = "language-tags"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388"
+dependencies = [
+ "serde",
+]
+
+[[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 = "leb128"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67"
+
+[[package]]
+name = "lettre"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a48c2e9831b370bc2d7233c2620298c45f3a158ed6b4b8d7416b2ada5a268fd8"
+dependencies = [
+ "async-std",
+ "async-trait",
+ "base64 0.21.5",
+ "chumsky",
+ "email-encoding",
+ "email_address",
+ "fastrand 2.0.1",
+ "futures-io",
+ "futures-util",
+ "hostname",
+ "httpdate",
+ "idna 0.5.0",
+ "mime",
+ "nom",
+ "once_cell",
+ "quoted_printable",
+ "rustls",
+ "rustls-pemfile",
+ "socket2 0.5.5",
+ "tokio",
+ "tokio-rustls",
+ "tracing",
+ "url",
+ "webpki-roots",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.150"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
+
+[[package]]
+name = "libm"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
+
+[[package]]
+name = "libredox"
+version = "0.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
+dependencies = [
+ "bitflags 2.4.1",
+ "libc",
+ "redox_syscall",
+]
+
+[[package]]
+name = "libsqlite3-sys"
+version = "0.27.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716"
+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.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829"
+
+[[package]]
+name = "listenfd"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0500463acd96259d219abb05dc57e5a076ef04b2db9a2112846929b5f174c96"
+dependencies = [
+ "libc",
+ "uuid",
+ "winapi",
+]
+
+[[package]]
+name = "litemap"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9d642685b028806386b2b6e75685faadd3eb65a85fff7df711ce18446a422da"
+
+[[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"
+dependencies = [
+ "value-bag",
+]
+
+[[package]]
+name = "mach"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "mas-axum-utils"
+version = "0.7.0"
+dependencies = [
+ "async-trait",
+ "axum",
+ "axum-extra",
+ "chrono",
+ "data-encoding",
+ "futures-util",
+ "headers",
+ "http 0.2.11",
+ "http-body",
+ "icu_locid",
+ "mas-data-model",
+ "mas-http",
+ "mas-iana",
+ "mas-jose",
+ "mas-keystore",
+ "mas-storage",
+ "mas-templates",
+ "mime",
+ "oauth2-types",
+ "rand 0.8.5",
+ "sentry",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "serde_with",
+ "thiserror",
+ "tokio",
+ "tower",
+ "tracing",
+ "ulid",
+ "url",
+]
+
+[[package]]
+name = "mas-cli"
+version = "0.7.0"
+dependencies = [
+ "anyhow",
+ "axum",
+ "camino",
+ "clap",
+ "dotenvy",
+ "httpdate",
+ "hyper",
+ "ipnetwork",
+ "itertools 0.11.0",
+ "listenfd",
+ "mas-config",
+ "mas-data-model",
+ "mas-email",
+ "mas-graphql",
+ "mas-handlers",
+ "mas-http",
+ "mas-i18n",
+ "mas-iana",
+ "mas-keystore",
+ "mas-listener",
+ "mas-matrix",
+ "mas-matrix-synapse",
+ "mas-policy",
+ "mas-router",
+ "mas-spa",
+ "mas-storage",
+ "mas-storage-pg",
+ "mas-tasks",
+ "mas-templates",
+ "mas-tower",
+ "oauth2-types",
+ "opentelemetry",
+ "opentelemetry-http",
+ "opentelemetry-jaeger",
+ "opentelemetry-otlp",
+ "opentelemetry-prometheus",
+ "opentelemetry-semantic-conventions",
+ "opentelemetry-stdout",
+ "opentelemetry-zipkin",
+ "opentelemetry_sdk",
+ "prometheus",
+ "rand 0.8.5",
+ "rand_chacha 0.3.1",
+ "rustls",
+ "sentry",
+ "sentry-tower",
+ "sentry-tracing",
+ "serde_json",
+ "serde_yaml",
+ "sqlx",
+ "tokio",
+ "tower",
+ "tower-http",
+ "tracing",
+ "tracing-appender",
+ "tracing-opentelemetry",
+ "tracing-subscriber",
+ "url",
+ "zeroize",
+]
+
+[[package]]
+name = "mas-config"
+version = "0.7.0"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "camino",
+ "chrono",
+ "figment",
+ "indoc",
+ "ipnetwork",
+ "mas-iana",
+ "mas-jose",
+ "mas-keystore",
+ "pem-rfc7468",
+ "rand 0.8.5",
+ "rand_chacha 0.3.1",
+ "rustls-pemfile",
+ "schemars",
+ "serde",
+ "serde_json",
+ "serde_with",
+ "thiserror",
+ "tokio",
+ "tracing",
+ "ulid",
+ "url",
+]
+
+[[package]]
+name = "mas-data-model"
+version = "0.7.0"
+dependencies = [
+ "chrono",
+ "crc",
+ "mas-iana",
+ "mas-jose",
+ "oauth2-types",
+ "rand 0.8.5",
+ "rand_chacha 0.3.1",
+ "serde",
+ "thiserror",
+ "ulid",
+ "url",
+]
+
+[[package]]
+name = "mas-email"
+version = "0.7.0"
+dependencies = [
+ "async-trait",
+ "headers",
+ "lettre",
+ "mas-templates",
+ "thiserror",
+ "tracing",
+]
+
+[[package]]
+name = "mas-graphql"
+version = "0.7.0"
+dependencies = [
+ "anyhow",
+ "async-graphql",
+ "async-trait",
+ "chrono",
+ "lettre",
+ "mas-data-model",
+ "mas-matrix",
+ "mas-policy",
+ "mas-storage",
+ "oauth2-types",
+ "serde",
+ "thiserror",
+ "tokio",
+ "tower",
+ "tracing",
+ "ulid",
+ "url",
+]
+
+[[package]]
+name = "mas-handlers"
+version = "0.7.0"
+dependencies = [
+ "anyhow",
+ "argon2",
+ "async-graphql",
+ "axum",
+ "axum-extra",
+ "axum-macros",
+ "base64ct",
+ "bcrypt",
+ "camino",
+ "chrono",
+ "cookie_store",
+ "futures-util",
+ "headers",
+ "hyper",
+ "insta",
+ "lettre",
+ "mas-axum-utils",
+ "mas-data-model",
+ "mas-graphql",
+ "mas-http",
+ "mas-i18n",
+ "mas-iana",
+ "mas-jose",
+ "mas-keystore",
+ "mas-matrix",
+ "mas-oidc-client",
+ "mas-policy",
+ "mas-router",
+ "mas-spa",
+ "mas-storage",
+ "mas-storage-pg",
+ "mas-templates",
+ "mime",
+ "minijinja",
+ "oauth2-types",
+ "opentelemetry",
+ "opentelemetry-semantic-conventions",
+ "pbkdf2",
+ "psl",
+ "rand 0.8.5",
+ "rand_chacha 0.3.1",
+ "sentry",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "serde_with",
+ "sqlx",
+ "thiserror",
+ "time",
+ "tokio",
+ "tower",
+ "tower-http",
+ "tracing",
+ "tracing-subscriber",
+ "ulid",
+ "url",
+ "zeroize",
+]
+
+[[package]]
+name = "mas-http"
+version = "0.7.0"
+dependencies = [
+ "anyhow",
+ "axum",
+ "bytes",
+ "futures-util",
+ "headers",
+ "http 0.2.11",
+ "http-body",
+ "hyper",
+ "hyper-rustls",
+ "mas-tower",
+ "once_cell",
+ "opentelemetry",
+ "rustls",
+ "rustls-native-certs",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "thiserror",
+ "tokio",
+ "tower",
+ "tower-http",
+ "tracing",
+ "tracing-opentelemetry",
+ "webpki-roots",
+]
+
+[[package]]
+name = "mas-i18n"
+version = "0.7.0"
+dependencies = [
+ "camino",
+ "icu_list",
+ "icu_locid",
+ "icu_locid_transform",
+ "icu_plurals",
+ "icu_provider",
+ "icu_provider_adapters",
+ "pad",
+ "pest",
+ "pest_derive",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "writeable",
+]
+
+[[package]]
+name = "mas-i18n-scan"
+version = "0.7.0"
+dependencies = [
+ "camino",
+ "clap",
+ "mas-i18n",
+ "minijinja",
+ "serde_json",
+ "tracing",
+ "tracing-subscriber",
+ "walkdir",
+]
+
+[[package]]
+name = "mas-iana"
+version = "0.7.0"
+dependencies = [
+ "schemars",
+ "serde",
+]
+
+[[package]]
+name = "mas-iana-codegen"
+version = "0.7.0"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "camino",
+ "convert_case",
+ "csv",
+ "futures-util",
+ "hyper",
+ "serde",
+ "tokio",
+ "tracing",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "mas-jose"
+version = "0.7.0"
+dependencies = [
+ "base64ct",
+ "chrono",
+ "digest",
+ "ecdsa",
+ "elliptic-curve",
+ "generic-array",
+ "hmac",
+ "insta",
+ "k256",
+ "mas-iana",
+ "p256",
+ "p384",
+ "rand 0.8.5",
+ "rand_chacha 0.3.1",
+ "rsa",
+ "schemars",
+ "sec1",
+ "serde",
+ "serde_json",
+ "serde_with",
+ "sha2",
+ "signature",
+ "thiserror",
+ "tracing",
+ "url",
+]
+
+[[package]]
+name = "mas-keystore"
+version = "0.7.0"
+dependencies = [
+ "aead",
+ "base64ct",
+ "chacha20poly1305",
+ "const-oid",
+ "der",
+ "ecdsa",
+ "elliptic-curve",
+ "generic-array",
+ "insta",
+ "k256",
+ "mas-iana",
+ "mas-jose",
+ "p256",
+ "p384",
+ "pem-rfc7468",
+ "pkcs1",
+ "pkcs8",
+ "rand 0.8.5",
+ "rand_chacha 0.3.1",
+ "rsa",
+ "sec1",
+ "spki",
+ "thiserror",
+]
+
+[[package]]
+name = "mas-listener"
+version = "0.7.0"
+dependencies = [
+ "anyhow",
+ "bytes",
+ "event-listener 4.0.0",
+ "futures-util",
+ "http-body",
+ "hyper",
+ "libc",
+ "pin-project-lite",
+ "rustls-pemfile",
+ "socket2 0.5.5",
+ "thiserror",
+ "tokio",
+ "tokio-rustls",
+ "tokio-test",
+ "tower-http",
+ "tower-service",
+ "tracing",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "mas-matrix"
+version = "0.7.0"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "http 0.2.11",
+ "serde",
+ "tokio",
+ "url",
+]
+
+[[package]]
+name = "mas-matrix-synapse"
+version = "0.7.0"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "http 0.2.11",
+ "mas-axum-utils",
+ "mas-http",
+ "mas-matrix",
+ "serde",
+ "tower",
+ "tracing",
+ "url",
+]
+
+[[package]]
+name = "mas-oidc-client"
+version = "0.7.0"
+dependencies = [
+ "assert_matches",
+ "base64ct",
+ "bitflags 2.4.1",
+ "bytes",
+ "chrono",
+ "form_urlencoded",
+ "futures",
+ "futures-util",
+ "headers",
+ "http 0.2.11",
+ "http-body",
+ "hyper",
+ "hyper-rustls",
+ "language-tags",
+ "mas-http",
+ "mas-iana",
+ "mas-jose",
+ "mas-keystore",
+ "mime",
+ "oauth2-types",
+ "once_cell",
+ "rand 0.8.5",
+ "rand_chacha 0.3.1",
+ "rustls",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "serde_with",
+ "thiserror",
+ "tokio",
+ "tower",
+ "tower-http",
+ "tracing",
+ "url",
+ "wiremock",
+]
+
+[[package]]
+name = "mas-policy"
+version = "0.7.0"
+dependencies = [
+ "anyhow",
+ "mas-data-model",
+ "oauth2-types",
+ "opa-wasm",
+ "schemars",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "tokio",
+ "tracing",
+ "wasmtime",
+]
+
+[[package]]
+name = "mas-router"
+version = "0.7.0"
+dependencies = [
+ "axum",
+ "serde",
+ "serde_urlencoded",
+ "ulid",
+ "url",
+]
+
+[[package]]
+name = "mas-spa"
+version = "0.7.0"
+dependencies = [
+ "camino",
+ "serde",
+ "thiserror",
+]
+
+[[package]]
+name = "mas-storage"
+version = "0.7.0"
+dependencies = [
+ "apalis-core",
+ "async-trait",
+ "chrono",
+ "futures-util",
+ "mas-data-model",
+ "mas-iana",
+ "mas-jose",
+ "oauth2-types",
+ "opentelemetry",
+ "rand_core 0.6.4",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "tracing",
+ "tracing-opentelemetry",
+ "ulid",
+ "url",
+]
+
+[[package]]
+name = "mas-storage-pg"
+version = "0.7.0"
+dependencies = [
+ "async-trait",
+ "chrono",
+ "futures-util",
+ "mas-data-model",
+ "mas-iana",
+ "mas-jose",
+ "mas-storage",
+ "oauth2-types",
+ "rand 0.8.5",
+ "rand_chacha 0.3.1",
+ "sea-query",
+ "sea-query-binder",
+ "serde",
+ "serde_json",
+ "sqlx",
+ "thiserror",
+ "tracing",
+ "ulid",
+ "url",
+ "uuid",
+]
+
+[[package]]
+name = "mas-tasks"
+version = "0.7.0"
+dependencies = [
+ "anyhow",
+ "apalis-core",
+ "apalis-cron",
+ "async-stream",
+ "async-trait",
+ "chrono",
+ "event-listener 4.0.0",
+ "futures-lite 2.0.1",
+ "mas-data-model",
+ "mas-email",
+ "mas-i18n",
+ "mas-matrix",
+ "mas-storage",
+ "mas-storage-pg",
+ "mas-templates",
+ "mas-tower",
+ "opentelemetry",
+ "rand 0.8.5",
+ "rand_chacha 0.3.1",
+ "serde",
+ "serde_json",
+ "sqlx",
+ "thiserror",
+ "tokio",
+ "tower",
+ "tracing",
+ "tracing-opentelemetry",
+ "ulid",
+ "url",
+]
+
+[[package]]
+name = "mas-templates"
+version = "0.7.0"
+dependencies = [
+ "anyhow",
+ "arc-swap",
+ "camino",
+ "chrono",
+ "http 0.2.11",
+ "mas-data-model",
+ "mas-i18n",
+ "mas-router",
+ "mas-spa",
+ "minijinja",
+ "oauth2-types",
+ "rand 0.8.5",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "thiserror",
+ "tokio",
+ "tracing",
+ "ulid",
+ "url",
+ "v_htmlescape",
+ "walkdir",
+]
+
+[[package]]
+name = "mas-tower"
+version = "0.7.0"
+dependencies = [
+ "http 0.2.11",
+ "opentelemetry",
+ "opentelemetry-http",
+ "opentelemetry-semantic-conventions",
+ "pin-project-lite",
+ "tokio",
+ "tower",
+ "tracing",
+ "tracing-opentelemetry",
+]
+
+[[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 = "matchit"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94"
+
+[[package]]
+name = "md-5"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
+dependencies = [
+ "cfg-if",
+ "digest",
+]
+
+[[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 0.38.25",
+]
+
+[[package]]
+name = "memo-map"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "374c335b2df19e62d4cb323103473cbc6510980253119180de862d89184f6a83"
+
+[[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 = "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 = "minijinja"
+version = "1.0.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "208758577ef2c86cf5dd3e85730d161413ec3284e2d73b2ef65d9a24d9971bcb"
+dependencies = [
+ "memo-map",
+ "self_cell",
+ "serde",
+ "serde_json",
+ "v_htmlescape",
+]
+
+[[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.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+dependencies = [
+ "adler",
+]
+
+[[package]]
+name = "mio"
+version = "0.8.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0"
+dependencies = [
+ "libc",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "multer"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2"
+dependencies = [
+ "bytes",
+ "encoding_rs",
+ "futures-util",
+ "http 0.2.11",
+ "httparse",
+ "log",
+ "memchr",
+ "mime",
+ "spin 0.9.8",
+ "version_check",
+]
+
+[[package]]
+name = "nix"
+version = "0.26.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
+dependencies = [
+ "bitflags 1.3.2",
+ "cfg-if",
+ "libc",
+ "memoffset 0.7.1",
+ "pin-utils",
+]
+
+[[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 = "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-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 0.8.5",
+ "smallvec",
+ "zeroize",
+]
+
+[[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.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
+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",
+ "libc",
+]
+
+[[package]]
+name = "oauth2-types"
+version = "0.7.0"
+dependencies = [
+ "assert_matches",
+ "chrono",
+ "data-encoding",
+ "http 0.2.11",
+ "language-tags",
+ "mas-iana",
+ "mas-jose",
+ "parse-display",
+ "serde",
+ "serde_json",
+ "serde_with",
+ "sha2",
+ "thiserror",
+ "url",
+]
+
+[[package]]
+name = "object"
+version = "0.32.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
+dependencies = [
+ "crc32fast",
+ "hashbrown 0.14.2",
+ "indexmap 2.1.0",
+ "memchr",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+
+[[package]]
+name = "opa-wasm"
+version = "0.1.0"
+source = "git+https://github.com/matrix-org/rust-opa-wasm.git#ba83f2d4391823b1b34de3e786d1454a0fc90efb"
+dependencies = [
+ "anyhow",
+ "base64 0.21.5",
+ "cc",
+ "chrono",
+ "chrono-tz",
+ "chronoutil",
+ "digest",
+ "duration-str",
+ "form_urlencoded",
+ "hex",
+ "hmac",
+ "json-patch",
+ "md-5",
+ "parse-size",
+ "rand 0.8.5",
+ "semver",
+ "serde",
+ "serde_json",
+ "serde_yaml",
+ "sha1",
+ "sha2",
+ "sprintf",
+ "thiserror",
+ "tokio",
+ "tracing",
+ "urlencoding",
+ "wasmtime",
+]
+
+[[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 = "opentelemetry"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e32339a5dc40459130b3bd269e9892439f55b33e772d2a9d402a789baaf4e8a"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+ "indexmap 2.1.0",
+ "js-sys",
+ "once_cell",
+ "pin-project-lite",
+ "thiserror",
+ "urlencoding",
+]
+
+[[package]]
+name = "opentelemetry-http"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f51189ce8be654f9b5f7e70e49967ed894e84a06fc35c6c042e64ac1fc5399e"
+dependencies = [
+ "async-trait",
+ "bytes",
+ "http 0.2.11",
+ "hyper",
+ "opentelemetry",
+ "tokio",
+]
+
+[[package]]
+name = "opentelemetry-jaeger"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e617c66fd588e40e0dbbd66932fdc87393095b125d4459b1a3a10feb1712f8a1"
+dependencies = [
+ "async-trait",
+ "futures-core",
+ "futures-util",
+ "http 0.2.11",
+ "opentelemetry",
+ "opentelemetry-http",
+ "opentelemetry-semantic-conventions",
+ "opentelemetry_sdk",
+ "thrift",
+ "tokio",
+]
+
+[[package]]
+name = "opentelemetry-otlp"
+version = "0.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f24cda83b20ed2433c68241f918d0f6fdec8b1d43b7a9590ab4420c5095ca930"
+dependencies = [
+ "async-trait",
+ "futures-core",
+ "http 0.2.11",
+ "opentelemetry",
+ "opentelemetry-proto",
+ "opentelemetry-semantic-conventions",
+ "opentelemetry_sdk",
+ "prost",
+ "thiserror",
+ "tokio",
+ "tonic",
+]
+
+[[package]]
+name = "opentelemetry-prometheus"
+version = "0.14.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f8f082da115b0dcb250829e3ed0b8792b8f963a1ad42466e48422fbe6a079bd"
+dependencies = [
+ "once_cell",
+ "opentelemetry",
+ "opentelemetry_sdk",
+ "prometheus",
+ "protobuf",
+]
+
+[[package]]
+name = "opentelemetry-proto"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2e155ce5cc812ea3d1dffbd1539aed653de4bf4882d60e6e04dcf0901d674e1"
+dependencies = [
+ "opentelemetry",
+ "opentelemetry_sdk",
+ "prost",
+ "tonic",
+]
+
+[[package]]
+name = "opentelemetry-semantic-conventions"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f5774f1ef1f982ef2a447f6ee04ec383981a3ab99c8e77a1a7b30182e65bbc84"
+dependencies = [
+ "opentelemetry",
+]
+
+[[package]]
+name = "opentelemetry-stdout"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c13b2df4cd59c176099ac82806725ba340c8fa7b1a7004c0912daad30470f63e"
+dependencies = [
+ "async-trait",
+ "chrono",
+ "futures-util",
+ "opentelemetry",
+ "opentelemetry_sdk",
+ "ordered-float 4.1.1",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "opentelemetry-zipkin"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c2bee3ec1be4d0088378e0eb1dd54c113cbd7ec5622cc4f26181debf1d4d7b5"
+dependencies = [
+ "async-trait",
+ "futures-core",
+ "http 0.2.11",
+ "once_cell",
+ "opentelemetry",
+ "opentelemetry-http",
+ "opentelemetry-semantic-conventions",
+ "opentelemetry_sdk",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "typed-builder",
+]
+
+[[package]]
+name = "opentelemetry_sdk"
+version = "0.21.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "968ba3f2ca03e90e5187f5e4f46c791ef7f2c163ae87789c8ce5f5ca3b7b7de5"
+dependencies = [
+ "async-trait",
+ "crossbeam-channel",
+ "futures-channel",
+ "futures-executor",
+ "futures-util",
+ "glob",
+ "once_cell",
+ "opentelemetry",
+ "ordered-float 4.1.1",
+ "percent-encoding",
+ "rand 0.8.5",
+ "thiserror",
+ "tokio",
+ "tokio-stream",
+]
+
+[[package]]
+name = "ordered-float"
+version = "2.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "ordered-float"
+version = "4.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "536900a8093134cf9ccf00a27deb3532421099e958d9dd431135d0c7543ca1e8"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "os_info"
+version = "3.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "006e42d5b888366f1880eda20371fedde764ed2213dc8496f49622fa0c99cd5e"
+dependencies = [
+ "log",
+ "serde",
+ "winapi",
+]
+
+[[package]]
+name = "overload"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+
+[[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 = "pad"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2ad9b889f1b12e0b9ee24db044b5129150d5eada288edc800f789928dc8c0e3"
+dependencies = [
+ "unicode-width",
+]
+
+[[package]]
+name = "parking"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
+
+[[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 0.48.5",
+]
+
+[[package]]
+name = "parse-display"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c6509d08722b53e8dafe97f2027b22ccbe3a5db83cb352931e9716b0aa44bc5c"
+dependencies = [
+ "once_cell",
+ "parse-display-derive",
+ "regex",
+]
+
+[[package]]
+name = "parse-display-derive"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68517892c8daf78da08c0db777fcc17e07f2f63ef70041718f8a7630ad84f341"
+dependencies = [
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "regex-syntax 0.7.5",
+ "structmeta",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "parse-size"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "944553dd59c802559559161f9816429058b869003836120e262e8caec061b7ae"
+
+[[package]]
+name = "parse-zoneinfo"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c705f256449c60da65e11ff6626e0c16a0a0b96aaa348de61376b249bc340f41"
+dependencies = [
+ "regex",
+]
+
+[[package]]
+name = "password-hash"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166"
+dependencies = [
+ "base64ct",
+ "rand_core 0.6.4",
+ "subtle",
+]
+
+[[package]]
+name = "paste"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
+
+[[package]]
+name = "pbkdf2"
+version = "0.12.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2"
+dependencies = [
+ "digest",
+ "hmac",
+ "password-hash",
+ "rayon",
+ "sha2",
+]
+
+[[package]]
+name = "pear"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61a386cd715229d399604b50d1361683fe687066f42d56f54be995bc6868f71c"
+dependencies = [
+ "inlinable_string",
+ "pear_codegen",
+ "yansi",
+]
+
+[[package]]
+name = "pear_codegen"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da9f0f13dac8069c139e8300a6510e3f4143ecf5259c60b116a9b271b4ca0d54"
+dependencies = [
+ "proc-macro2",
+ "proc-macro2-diagnostics",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[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.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
+
+[[package]]
+name = "pest"
+version = "2.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5"
+dependencies = [
+ "memchr",
+ "thiserror",
+ "ucd-trie",
+]
+
+[[package]]
+name = "pest_derive"
+version = "2.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81d78524685f5ef2a3b3bd1cafbc9fcabb036253d9b1463e726a91cd16e2dfc2"
+dependencies = [
+ "pest",
+ "pest_generator",
+]
+
+[[package]]
+name = "pest_generator"
+version = "2.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68bd1206e71118b5356dae5ddc61c8b11e28b09ef6a31acbd15ea48a28e0c227"
+dependencies = [
+ "pest",
+ "pest_meta",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "pest_meta"
+version = "2.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7c747191d4ad9e4a4ab9c8798f1e82a39affe7ef9648390b7e5548d18e099de6"
+dependencies = [
+ "once_cell",
+ "pest",
+ "sha2",
+]
+
+[[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 0.8.5",
+]
+
+[[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.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
+dependencies = [
+ "pin-project-internal",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[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 = "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 = "pkcs1"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f"
+dependencies = [
+ "der",
+ "pkcs8",
+ "spki",
+]
+
+[[package]]
+name = "pkcs5"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e847e2c91a18bfa887dd028ec33f2fe6f25db77db3619024764914affe8b69a6"
+dependencies = [
+ "aes",
+ "cbc",
+ "der",
+ "pbkdf2",
+ "scrypt",
+ "sha2",
+ "spki",
+]
+
+[[package]]
+name = "pkcs8"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7"
+dependencies = [
+ "der",
+ "pkcs5",
+ "rand_core 0.6.4",
+ "spki",
+]
+
+[[package]]
+name = "pkg-config"
+version = "0.3.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+
+[[package]]
+name = "polling"
+version = "2.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
+dependencies = [
+ "autocfg",
+ "bitflags 1.3.2",
+ "cfg-if",
+ "concurrent-queue",
+ "libc",
+ "log",
+ "pin-project-lite",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "polling"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e53b6af1f60f36f8c2ac2aad5459d75a5a9b4be1e8cdd40264f315d78193e531"
+dependencies = [
+ "cfg-if",
+ "concurrent-queue",
+ "pin-project-lite",
+ "rustix 0.38.25",
+ "tracing",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "poly1305"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf"
+dependencies = [
+ "cpufeatures",
+ "opaque-debug",
+ "universal-hash",
+]
+
+[[package]]
+name = "polyval"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb"
+dependencies = [
+ "cfg-if",
+ "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 = "primeorder"
+version = "0.13.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6"
+dependencies = [
+ "elliptic-curve",
+]
+
+[[package]]
+name = "proc-macro-crate"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
+dependencies = [
+ "once_cell",
+ "toml_edit",
+]
+
+[[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 = "proc-macro2-diagnostics"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+ "version_check",
+ "yansi",
+]
+
+[[package]]
+name = "prometheus"
+version = "0.13.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c"
+dependencies = [
+ "cfg-if",
+ "fnv",
+ "lazy_static",
+ "memchr",
+ "parking_lot",
+ "protobuf",
+ "thiserror",
+]
+
+[[package]]
+name = "prost"
+version = "0.11.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd"
+dependencies = [
+ "bytes",
+ "prost-derive",
+]
+
+[[package]]
+name = "prost-derive"
+version = "0.11.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4"
+dependencies = [
+ "anyhow",
+ "itertools 0.10.5",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "protobuf"
+version = "2.28.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94"
+
+[[package]]
+name = "psl"
+version = "2.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cdc9f7a25d234ba11af714be527b60c8bc7ce1310011ef8dc032bd5ab1a7eadd"
+dependencies = [
+ "psl-types",
+]
+
+[[package]]
+name = "psl-types"
+version = "2.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33cb294fe86a74cbcf50d4445b37da762029549ebeea341421c7c70370f86cac"
+
+[[package]]
+name = "psm"
+version = "0.1.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "publicsuffix"
+version = "2.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96a8c1bda5ae1af7f99a2962e49df150414a43d62404644d98dd5c3a93d07457"
+dependencies = [
+ "idna 0.3.0",
+ "psl-types",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "quoted_printable"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79ec282e887b434b68c18fe5c121d38e72a5cf35119b59e54ec5b992ea9c8eb0"
+
+[[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.11",
+]
+
+[[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 = "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 = "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.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
+dependencies = [
+ "getrandom 0.2.11",
+ "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"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata 0.4.3",
+ "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.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e9368763f5a9b804326f3af749e16f9abf378d227bcdee7634b13d8f17793782"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+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.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+
+[[package]]
+name = "retain_mut"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4389f1d5789befaf6029ebd9f7dac4af7f7e3d61b69d4f30e2ac02b57e7712b0"
+
+[[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.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb0205304757e5d899b9c2e448b867ffd03ae7f988002e47cd24954391394d0b"
+dependencies = [
+ "cc",
+ "getrandom 0.2.11",
+ "libc",
+ "spin 0.9.8",
+ "untrusted",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "rsa"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a3211b01eea83d80687da9eef70e39d65144a3894866a5153a2723e425a157f"
+dependencies = [
+ "const-oid",
+ "digest",
+ "num-bigint-dig",
+ "num-integer",
+ "num-traits",
+ "pkcs1",
+ "pkcs8",
+ "rand_core 0.6.4",
+ "signature",
+ "spki",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "rust_decimal"
+version = "1.33.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06676aec5ccb8fc1da723cc8c0f9a46549f21ebb8753d3915c6c41db1e7f1dc4"
+dependencies = [
+ "arrayvec",
+ "num-traits",
+]
+
+[[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.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[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 0.3.8",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "rustix"
+version = "0.38.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc99bc2d4f1fed22595588a013687477aedf3cdcfb26558c559edb67b4d9b22e"
+dependencies = [
+ "bitflags 2.4.1",
+ "errno",
+ "libc",
+ "linux-raw-sys 0.4.11",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "rustls"
+version = "0.21.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9"
+dependencies = [
+ "log",
+ "ring",
+ "rustls-webpki",
+ "sct",
+]
+
+[[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",
+ "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.5",
+]
+
+[[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 = "rustversion"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+
+[[package]]
+name = "ryu"
+version = "1.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+
+[[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 = "schannel"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88"
+dependencies = [
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "schemars"
+version = "0.8.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29"
+dependencies = [
+ "chrono",
+ "dyn-clone",
+ "schemars_derive",
+ "serde",
+ "serde_json",
+ "url",
+]
+
+[[package]]
+name = "schemars_derive"
+version = "0.8.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c767fd6fa65d9ccf9cf026122c1b555f2ef9a4f0cea69da4d7dbc3e258d30967"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "serde_derive_internals",
+ "syn 1.0.109",
+]
+
+[[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 = [
+ "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 = "sea-query"
+version = "0.30.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3472e143a83f7f03d306dcc62af88c5afdcd7e35f96ef0001a806fe244b3b15a"
+dependencies = [
+ "chrono",
+ "inherent",
+ "sea-query-attr",
+ "sea-query-derive",
+ "uuid",
+]
+
+[[package]]
+name = "sea-query-attr"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "878cf3d57f0e5bfacd425cdaccc58b4c06d68a7b71c63fc28710a20c88676808"
+dependencies = [
+ "darling 0.14.4",
+ "heck",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "sea-query-binder"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "36bbb68df92e820e4d5aeb17b4acd5cc8b5d18b2c36a4dd6f4626aabfa7ab1b9"
+dependencies = [
+ "chrono",
+ "sea-query",
+ "sqlx",
+ "uuid",
+]
+
+[[package]]
+name = "sea-query-derive"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25a82fcb49253abcb45cdcb2adf92956060ec0928635eb21b4f7a6d8f25ab0bc"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+ "thiserror",
+]
+
+[[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 = "self_cell"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e388332cd64eb80cd595a00941baf513caffae8dce9cfd0467fc9c66397dade6"
+
+[[package]]
+name = "semver"
+version = "1.0.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
+
+[[package]]
+name = "sentry"
+version = "0.31.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ce4b57f1b521f674df7a1d200be8ff5d74e3712020ee25b553146657b5377d5"
+dependencies = [
+ "sentry-backtrace",
+ "sentry-contexts",
+ "sentry-core",
+ "sentry-panic",
+ "sentry-tower",
+ "sentry-tracing",
+]
+
+[[package]]
+name = "sentry-backtrace"
+version = "0.31.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "58cc8d4e04a73de8f718dc703943666d03f25d3e9e4d0fb271ca0b8c76dfa00e"
+dependencies = [
+ "backtrace",
+ "once_cell",
+ "regex",
+ "sentry-core",
+]
+
+[[package]]
+name = "sentry-contexts"
+version = "0.31.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6436c1bad22cdeb02179ea8ef116ffc217797c028927def303bc593d9320c0d1"
+dependencies = [
+ "hostname",
+ "libc",
+ "os_info",
+ "rustc_version",
+ "sentry-core",
+ "uname",
+]
+
+[[package]]
+name = "sentry-core"
+version = "0.31.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "901f761681f97db3db836ef9e094acdd8756c40215326c194201941947164ef1"
+dependencies = [
+ "once_cell",
+ "rand 0.8.5",
+ "sentry-types",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "sentry-panic"
+version = "0.31.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74fbf1c163f8b6a9d05912e1b272afa27c652e8b47ea60cb9a57ad5e481eea99"
+dependencies = [
+ "sentry-backtrace",
+ "sentry-core",
+]
+
+[[package]]
+name = "sentry-tower"
+version = "0.31.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88e782e369edac4adfc5bf528b27577270bc3e7023c388ebad9db08e1d56b30b"
+dependencies = [
+ "http 0.2.11",
+ "pin-project",
+ "sentry-core",
+ "tower-layer",
+ "tower-service",
+ "url",
+]
+
+[[package]]
+name = "sentry-tracing"
+version = "0.31.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "82eabcab0a047040befd44599a1da73d3adb228ff53b5ed9795ae04535577704"
+dependencies = [
+ "sentry-backtrace",
+ "sentry-core",
+ "tracing-core",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "sentry-types"
+version = "0.31.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da956cca56e0101998c8688bc65ce1a96f00673a0e58e663664023d4c7911e82"
+dependencies = [
+ "debugid",
+ "hex",
+ "rand 0.8.5",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "time",
+ "url",
+ "uuid",
+]
+
+[[package]]
+name = "serde"
+version = "1.0.193"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.193"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "serde_derive_internals"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.108"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_path_to_error"
+version = "0.1.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4beec8bce849d58d06238cb50db2e1c417cfeafa4c63f692b15c82b7c80f8335"
+dependencies = [
+ "itoa",
+ "serde",
+]
+
+[[package]]
+name = "serde_qs"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7715380eec75f029a4ef7de39a9200e0a63823176b759d055b613f5a87df6a6"
+dependencies = [
+ "percent-encoding",
+ "serde",
+ "thiserror",
+]
+
+[[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_with"
+version = "3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23"
+dependencies = [
+ "base64 0.21.5",
+ "chrono",
+ "hex",
+ "indexmap 1.9.3",
+ "indexmap 2.1.0",
+ "serde",
+ "serde_json",
+ "serde_with_macros",
+ "time",
+]
+
+[[package]]
+name = "serde_with_macros"
+version = "3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93634eb5f75a2323b16de4748022ac4297f9e76b6dced2be287a099f41b5e788"
+dependencies = [
+ "darling 0.20.3",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "serde_yaml"
+version = "0.9.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3cc7a1570e38322cfe4154732e5110f887ea57e22b76f4bfd32b5bdd3368666c"
+dependencies = [
+ "indexmap 2.1.0",
+ "itoa",
+ "ryu",
+ "serde",
+ "unsafe-libyaml",
+]
+
+[[package]]
+name = "sha1"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sha2"
+version = "0.10.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
+dependencies = [
+ "cfg-if",
+ "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 = "signal-hook-registry"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "signature"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
+dependencies = [
+ "digest",
+ "rand_core 0.6.4",
+]
+
+[[package]]
+name = "similar"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2aeaf503862c419d66959f5d7ca015337d864e9c49485d771b732e2a20453597"
+
+[[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 = "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"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
+
+[[package]]
+name = "socket2"
+version = "0.4.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[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 = "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 = "spki"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a"
+dependencies = [
+ "base64ct",
+ "der",
+]
+
+[[package]]
+name = "sprintf"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c0cdea5a20a06e7c57f627094e7b1618e5665592cd88f2d45fa4014e348db58"
+
+[[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.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b7b278788e7be4d0d29c0f39497a0eef3fba6bbc8e70d8bf7fde46edeaa9e85"
+dependencies = [
+ "itertools 0.11.0",
+ "nom",
+ "unicode_categories",
+]
+
+[[package]]
+name = "sqlx"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dba03c279da73694ef99763320dea58b51095dfe87d001b1d4b5fe78ba8763cf"
+dependencies = [
+ "sqlx-core",
+ "sqlx-macros",
+ "sqlx-mysql",
+ "sqlx-postgres",
+ "sqlx-sqlite",
+]
+
+[[package]]
+name = "sqlx-core"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d84b0a3c3739e220d94b3239fd69fb1f74bc36e16643423bd99de3b43c21bfbd"
+dependencies = [
+ "ahash",
+ "atoi",
+ "byteorder",
+ "bytes",
+ "chrono",
+ "crc",
+ "crossbeam-queue",
+ "dotenvy",
+ "either",
+ "event-listener 2.5.3",
+ "futures-channel",
+ "futures-core",
+ "futures-intrusive",
+ "futures-io",
+ "futures-util",
+ "hashlink",
+ "hex",
+ "indexmap 2.1.0",
+ "ipnetwork",
+ "log",
+ "memchr",
+ "once_cell",
+ "paste",
+ "percent-encoding",
+ "rustls",
+ "rustls-pemfile",
+ "serde",
+ "serde_json",
+ "sha2",
+ "smallvec",
+ "sqlformat",
+ "thiserror",
+ "tokio",
+ "tokio-stream",
+ "tracing",
+ "url",
+ "uuid",
+ "webpki-roots",
+]
+
+[[package]]
+name = "sqlx-macros"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89961c00dc4d7dffb7aee214964b065072bff69e36ddb9e2c107541f75e4f2a5"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "sqlx-core",
+ "sqlx-macros-core",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "sqlx-macros-core"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d0bd4519486723648186a08785143599760f7cc81c52334a55d6a83ea1e20841"
+dependencies = [
+ "atomic-write-file",
+ "dotenvy",
+ "either",
+ "heck",
+ "hex",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "serde",
+ "serde_json",
+ "sha2",
+ "sqlx-core",
+ "sqlx-mysql",
+ "sqlx-postgres",
+ "sqlx-sqlite",
+ "syn 1.0.109",
+ "tempfile",
+ "tokio",
+ "url",
+]
+
+[[package]]
+name = "sqlx-mysql"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e37195395df71fd068f6e2082247891bc11e3289624bbc776a0cdfa1ca7f1ea4"
+dependencies = [
+ "atoi",
+ "base64 0.21.5",
+ "bitflags 2.4.1",
+ "byteorder",
+ "bytes",
+ "chrono",
+ "crc",
+ "digest",
+ "dotenvy",
+ "either",
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-util",
+ "generic-array",
+ "hex",
+ "hkdf",
+ "hmac",
+ "itoa",
+ "log",
+ "md-5",
+ "memchr",
+ "once_cell",
+ "percent-encoding",
+ "rand 0.8.5",
+ "rsa",
+ "serde",
+ "sha1",
+ "sha2",
+ "smallvec",
+ "sqlx-core",
+ "stringprep",
+ "thiserror",
+ "tracing",
+ "uuid",
+ "whoami",
+]
+
+[[package]]
+name = "sqlx-postgres"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d6ac0ac3b7ccd10cc96c7ab29791a7dd236bd94021f31eec7ba3d46a74aa1c24"
+dependencies = [
+ "atoi",
+ "base64 0.21.5",
+ "bitflags 2.4.1",
+ "byteorder",
+ "chrono",
+ "crc",
+ "dotenvy",
+ "etcetera",
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-util",
+ "hex",
+ "hkdf",
+ "hmac",
+ "home",
+ "ipnetwork",
+ "itoa",
+ "log",
+ "md-5",
+ "memchr",
+ "once_cell",
+ "rand 0.8.5",
+ "serde",
+ "serde_json",
+ "sha1",
+ "sha2",
+ "smallvec",
+ "sqlx-core",
+ "stringprep",
+ "thiserror",
+ "tracing",
+ "uuid",
+ "whoami",
+]
+
+[[package]]
+name = "sqlx-sqlite"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "210976b7d948c7ba9fced8ca835b11cbb2d677c59c79de41ac0d397e14547490"
+dependencies = [
+ "atoi",
+ "chrono",
+ "flume",
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-intrusive",
+ "futures-util",
+ "libsqlite3-sys",
+ "log",
+ "percent-encoding",
+ "serde",
+ "sqlx-core",
+ "tracing",
+ "url",
+ "urlencoding",
+ "uuid",
+]
+
+[[package]]
+name = "stable_deref_trait"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
+
+[[package]]
+name = "stacker"
+version = "0.1.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce"
+dependencies = [
+ "cc",
+ "cfg-if",
+ "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 = "stringprep"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb41d74e231a107a1b4ee36bd1214b11285b77768d2e3824aedafa988fd36ee6"
+dependencies = [
+ "finl_unicode",
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "structmeta"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78ad9e09554f0456d67a69c1584c9798ba733a5b50349a6c0d0948710523922d"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "structmeta-derive",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "structmeta-derive"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a60bcaff7397072dca0017d1db428e30d5002e00b6847703e2e42005c95fbe00"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[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",
+ "quote",
+ "rustversion",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "subtle"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
+
+[[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.39"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "sync_wrapper"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
+
+[[package]]
+name = "synstructure"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "285ba80e733fac80aa4270fbcdf83772a79b80aa35c97075320abfee4a915b06"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+ "unicode-xid",
+]
+
+[[package]]
+name = "target-lexicon"
+version = "0.12.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a"
+
+[[package]]
+name = "tempfile"
+version = "3.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
+dependencies = [
+ "cfg-if",
+ "fastrand 2.0.1",
+ "redox_syscall",
+ "rustix 0.38.25",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.50"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.50"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[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 = "threadpool"
+version = "1.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
+dependencies = [
+ "num_cpus",
+]
+
+[[package]]
+name = "thrift"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e54bc85fc7faa8bc175c4bab5b92ba8d9a3ce893d0e9f42cc455c8ab16a9e09"
+dependencies = [
+ "byteorder",
+ "integer-encoding",
+ "log",
+ "ordered-float 2.10.1",
+ "threadpool",
+]
+
+[[package]]
+name = "time"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5"
+dependencies = [
+ "deranged",
+ "itoa",
+ "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.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20"
+dependencies = [
+ "time-core",
+]
+
+[[package]]
+name = "tinystr"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83c02bf3c538ab32ba913408224323915f4ef9a6d61c0e85d493f355921c0ece"
+dependencies = [
+ "displaydoc",
+ "zerovec",
+]
+
+[[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 = "tokio"
+version = "1.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9"
+dependencies = [
+ "backtrace",
+ "bytes",
+ "libc",
+ "mio",
+ "num_cpus",
+ "parking_lot",
+ "pin-project-lite",
+ "signal-hook-registry",
+ "socket2 0.5.5",
+ "tokio-macros",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "tokio-io-timeout"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf"
+dependencies = [
+ "pin-project-lite",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-macros"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "tokio-rustls"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
+dependencies = [
+ "rustls",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-stream"
+version = "0.1.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842"
+dependencies = [
+ "futures-core",
+ "pin-project-lite",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-test"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e89b3cbabd3ae862100094ae433e1def582cf86451b4e9bf83aa7ac1d8a7d719"
+dependencies = [
+ "async-stream",
+ "bytes",
+ "futures-core",
+ "tokio",
+ "tokio-stream",
+]
+
+[[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-sink",
+ "pin-project-lite",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "toml"
+version = "0.5.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+
+[[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",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "tonic"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a"
+dependencies = [
+ "async-trait",
+ "axum",
+ "base64 0.21.5",
+ "bytes",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http 0.2.11",
+ "http-body",
+ "hyper",
+ "hyper-timeout",
+ "percent-encoding",
+ "pin-project",
+ "prost",
+ "tokio",
+ "tokio-stream",
+ "tower",
+ "tower-layer",
+ "tower-service",
+ "tracing",
+]
+
+[[package]]
+name = "tower"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c"
+dependencies = [
+ "futures-core",
+ "futures-util",
+ "hdrhistogram",
+ "indexmap 1.9.3",
+ "pin-project",
+ "pin-project-lite",
+ "rand 0.8.5",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tower-layer",
+ "tower-service",
+ "tracing",
+]
+
+[[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",
+ "bytes",
+ "futures-core",
+ "futures-util",
+ "http 0.2.11",
+ "http-body",
+ "http-range-header",
+ "httpdate",
+ "iri-string",
+ "mime",
+ "mime_guess",
+ "percent-encoding",
+ "pin-project-lite",
+ "tokio",
+ "tokio-util",
+ "tower",
+ "tower-layer",
+ "tower-service",
+ "tracing",
+]
+
+[[package]]
+name = "tower-layer"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0"
+
+[[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 = [
+ "log",
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-appender"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf"
+dependencies = [
+ "crossbeam-channel",
+ "thiserror",
+ "time",
+ "tracing-subscriber",
+]
+
+[[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.39",
+]
+
+[[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-futures"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2"
+dependencies = [
+ "futures",
+ "futures-task",
+ "pin-project",
+ "tracing",
+]
+
+[[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-opentelemetry"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c67ac25c5407e7b961fafc6f7e9aa5958fd297aada2d20fa2ae1737357e55596"
+dependencies = [
+ "js-sys",
+ "once_cell",
+ "opentelemetry",
+ "opentelemetry_sdk",
+ "tracing",
+ "tracing-core",
+ "tracing-subscriber",
+ "web-time",
+]
+
+[[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 = "try-lock"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
+
+[[package]]
+name = "typed-builder"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6179333b981641242a768f30f371c9baccbfcc03749627000c500ab88bf4528b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "typenum"
+version = "1.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+
+[[package]]
+name = "ucd-trie"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
+
+[[package]]
+name = "ulid"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e37c4b6cbcc59a8dcd09a6429fbc7890286bcbb79215cea7b38a3c4c0921d93"
+dependencies = [
+ "rand 0.8.5",
+ "serde",
+ "uuid",
+]
+
+[[package]]
+name = "uname"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b72f89f0ca32e4db1c04e2a72f5345d59796d4866a1ee0609084569f73683dc8"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "uncased"
+version = "0.9.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b9bc53168a4be7402ab86c3aad243a84dd7381d09be0eddc81280c1da95ca68"
+dependencies = [
+ "version_check",
+]
+
+[[package]]
+name = "unicase"
+version = "2.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
+dependencies = [
+ "version_check",
+]
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+
+[[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-segmentation"
+version = "1.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+
+[[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.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 = "unsafe-libyaml"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa"
+
+[[package]]
+name = "untrusted"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
+
+[[package]]
+name = "url"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
+dependencies = [
+ "form_urlencoded",
+ "idna 0.5.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 = "utf8parse"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+
+[[package]]
+name = "uuid"
+version = "1.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "v_htmlescape"
+version = "0.15.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e8257fbc510f0a46eb602c10215901938b5c2a7d5e70fc11483b1d3c9b5b18c"
+
+[[package]]
+name = "valuable"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+
+[[package]]
+name = "value-bag"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4a72e1902dde2bd6441347de2b70b7f5d59bf157c6c62f0c44572607a1d55bbe"
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "waker-fn"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"
+
+[[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.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.88"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.88"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.38"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9afec9963e3d0994cac82455b2b3502b81a7f40f9a0d32181f7528d9f4b43e02"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.88"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.88"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.88"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b"
+
+[[package]]
+name = "wasm-encoder"
+version = "0.36.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "822b645bf4f2446b949776ffca47e2af60b167209ffb70814ef8779d299cd421"
+dependencies = [
+ "leb128",
+]
+
+[[package]]
+name = "wasmparser"
+version = "0.116.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a58e28b80dd8340cb07b8242ae654756161f6fc8d0038123d679b7b99964fa50"
+dependencies = [
+ "indexmap 2.1.0",
+ "semver",
+]
+
+[[package]]
+name = "wasmtime"
+version = "15.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae4b1702ef55144d6f594085f4989dc71fb71a791be1c8354ecc8e489b81199b"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "bincode",
+ "bumpalo",
+ "cfg-if",
+ "indexmap 2.1.0",
+ "libc",
+ "log",
+ "object",
+ "once_cell",
+ "paste",
+ "psm",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "target-lexicon",
+ "wasmparser",
+ "wasmtime-cache",
+ "wasmtime-component-macro",
+ "wasmtime-cranelift",
+ "wasmtime-environ",
+ "wasmtime-fiber",
+ "wasmtime-jit",
+ "wasmtime-runtime",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "wasmtime-asm-macros"
+version = "15.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c981d0e87bb3e98e08e76644e7ae5dfdef7f1d4105145853f3d677bb4535d65f"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "wasmtime-cache"
+version = "15.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d7ba8adaa84fdb9dd659275edcf7fc5282c44b9c9f829986c71d44fd52ea80a"
+dependencies = [
+ "anyhow",
+ "base64 0.21.5",
+ "bincode",
+ "directories-next",
+ "log",
+ "rustix 0.38.25",
+ "serde",
+ "serde_derive",
+ "sha2",
+ "toml",
+ "windows-sys 0.48.0",
+ "zstd",
+]
+
+[[package]]
+name = "wasmtime-component-macro"
+version = "15.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c91dcbbd0e1f094351d1ae0e53463c63ba53ec8f8e0e21d17567c1979a8c3758"
+dependencies = [
+ "anyhow",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+ "wasmtime-component-util",
+ "wasmtime-wit-bindgen",
+ "wit-parser",
+]
+
+[[package]]
+name = "wasmtime-component-util"
+version = "15.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e85f1319a7ed36aa59446ab7e967d0c2fb0cd179bf56913633190b44572023e"
+
+[[package]]
+name = "wasmtime-cranelift"
+version = "15.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1453665878e16245b9a25405e550c4a36c6731c6e34ea804edc002a38c3e6741"
+dependencies = [
+ "anyhow",
+ "cfg-if",
+ "cranelift-codegen",
+ "cranelift-control",
+ "cranelift-entity",
+ "cranelift-frontend",
+ "cranelift-native",
+ "cranelift-wasm",
+ "gimli",
+ "log",
+ "object",
+ "target-lexicon",
+ "thiserror",
+ "wasmparser",
+ "wasmtime-cranelift-shared",
+ "wasmtime-environ",
+ "wasmtime-versioned-export-macros",
+]
+
+[[package]]
+name = "wasmtime-cranelift-shared"
+version = "15.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3dface3d9b72b4670781ff72675eabb291e2836b5dded6bb312b577d2bb561f"
+dependencies = [
+ "anyhow",
+ "cranelift-codegen",
+ "cranelift-control",
+ "cranelift-native",
+ "gimli",
+ "object",
+ "target-lexicon",
+ "wasmtime-environ",
+]
+
+[[package]]
+name = "wasmtime-environ"
+version = "15.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0116108e7d231cce15fe7dd642c66c3abb14dbcf169b0130e11f223ce8d1ad7"
+dependencies = [
+ "anyhow",
+ "cranelift-entity",
+ "gimli",
+ "indexmap 2.1.0",
+ "log",
+ "object",
+ "serde",
+ "serde_derive",
+ "target-lexicon",
+ "thiserror",
+ "wasmparser",
+ "wasmtime-types",
+]
+
+[[package]]
+name = "wasmtime-fiber"
+version = "15.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8a5896355c37bf0f9feb4f1299142ef4bed8c92576aa3a41d150fed0cafa056"
+dependencies = [
+ "anyhow",
+ "cc",
+ "cfg-if",
+ "rustix 0.38.25",
+ "wasmtime-asm-macros",
+ "wasmtime-versioned-export-macros",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "wasmtime-jit"
+version = "15.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e32b210767452f6b20157bb7c7d98295b92cc47aaad2a8aa31652f4469813a5d"
+dependencies = [
+ "anyhow",
+ "bincode",
+ "cfg-if",
+ "gimli",
+ "log",
+ "object",
+ "rustix 0.38.25",
+ "serde",
+ "serde_derive",
+ "target-lexicon",
+ "wasmtime-environ",
+ "wasmtime-jit-icache-coherence",
+ "wasmtime-runtime",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "wasmtime-jit-debug"
+version = "15.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bffd2785a16c55ac77565613ebda625f5850d4014af0499df750e8de97c04547"
+dependencies = [
+ "once_cell",
+ "wasmtime-versioned-export-macros",
+]
+
+[[package]]
+name = "wasmtime-jit-icache-coherence"
+version = "15.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b73ad1395eda136baec5ece7e079e0536a82ef73488e345456cc9b89858ad0ec"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "wasmtime-runtime"
+version = "15.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77b50f7f3c1a8dabb2607f32a81242917bd77cee75f3dec66e04b02ccbb8ba07"
+dependencies = [
+ "anyhow",
+ "cc",
+ "cfg-if",
+ "indexmap 2.1.0",
+ "libc",
+ "log",
+ "mach",
+ "memfd",
+ "memoffset 0.9.0",
+ "paste",
+ "rand 0.8.5",
+ "rustix 0.38.25",
+ "sptr",
+ "wasm-encoder",
+ "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 = "15.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "447973db3dc5c24db14130ab0922795c58790aec296d198ad9d253b82ec67471"
+dependencies = [
+ "cranelift-entity",
+ "serde",
+ "serde_derive",
+ "thiserror",
+ "wasmparser",
+]
+
+[[package]]
+name = "wasmtime-versioned-export-macros"
+version = "15.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a347bb8ecf12275fb180afb1b1c85c9e186553c43109737bffed4f54c2aa365"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "wasmtime-wit-bindgen"
+version = "15.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41786c7bbbf250c0e685b291323b50c6bb65f0505a2c0b4f0b598c740f13f185"
+dependencies = [
+ "anyhow",
+ "heck",
+ "indexmap 2.1.0",
+ "wit-parser",
+]
+
+[[package]]
+name = "wasmtime-wmemcheck"
+version = "15.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "47907bdd67500c66fa308acbce7387c7bfb63b5505ef81be7fc897709afcca60"
+
+[[package]]
+name = "web-sys"
+version = "0.3.65"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "web-time"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57099a701fb3a8043f993e8228dc24229c7b942e2b009a1b962e54489ba1d3bf"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[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 = "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-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-sys"
+version = "0.45.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+dependencies = [
+ "windows-targets 0.42.2",
+]
+
+[[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-targets"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+dependencies = [
+ "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.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_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_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_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_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_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_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_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 = "winnow"
+version = "0.5.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "wiremock"
+version = "0.5.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "079aee011e8a8e625d16df9e785de30a6b77f80a6126092d76a57375f96448da"
+dependencies = [
+ "assert-json-diff",
+ "async-trait",
+ "base64 0.21.5",
+ "deadpool",
+ "futures",
+ "futures-timer",
+ "http-types",
+ "hyper",
+ "log",
+ "once_cell",
+ "regex",
+ "serde",
+ "serde_json",
+ "tokio",
+]
+
+[[package]]
+name = "wit-parser"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "15df6b7b28ce94b8be39d8df5cb21a08a4f3b9f33b631aedb4aa5776f785ead3"
+dependencies = [
+ "anyhow",
+ "id-arena",
+ "indexmap 2.1.0",
+ "log",
+ "semver",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "unicode-xid",
+]
+
+[[package]]
+name = "writeable"
+version = "0.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dad7bb64b8ef9c0aa27b6da38b452b0ee9fd82beaf276a87dd796fb55cbae14e"
+
+[[package]]
+name = "yaml-rust"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
+dependencies = [
+ "linked-hash-map",
+]
+
+[[package]]
+name = "yansi"
+version = "1.0.0-rc.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1367295b8f788d371ce2dbc842c7b709c73ee1364d30351dd300ec2203b12377"
+
+[[package]]
+name = "yoke"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "65e71b2e4f287f467794c671e2b8f8a5f3716b3c829079a1c44740148eff07e4"
+dependencies = [
+ "serde",
+ "stable_deref_trait",
+ "yoke-derive",
+ "zerofrom",
+]
+
+[[package]]
+name = "yoke-derive"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e6936f0cce458098a201c245a11bef556c6a0181129c7034d10d76d1ec3a2b8"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+ "synstructure",
+]
+
+[[package]]
+name = "zerocopy"
+version = "0.7.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e97e415490559a91254a2979b4829267a57d2fcd741a98eee8b722fb57289aa0"
+dependencies = [
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd7e48ccf166952882ca8bd778a43502c64f33bf94c12ebe2a7f08e5a0f6689f"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "zerofrom"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "655b0814c5c0b19ade497851070c640773304939a6c0fd5f5fb43da0696d05b7"
+dependencies = [
+ "zerofrom-derive",
+]
+
+[[package]]
+name = "zerofrom-derive"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6a647510471d372f2e6c2e6b7219e44d8c574d24fdc11c610a61455782f18c3"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+ "synstructure",
+]
+
+[[package]]
+name = "zeroize"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
+
+[[package]]
+name = "zerovec"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eff4439ae91fb5c72b8abc12f3f2dbf51bd27e6eadb9f8a5bc8898dddb0e27ea"
+dependencies = [
+ "yoke",
+ "zerofrom",
+ "zerovec-derive",
+]
+
+[[package]]
+name = "zerovec-derive"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b4e5997cbf58990550ef1f0e5124a05e47e1ebd33a84af25739be6031a62c20"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "zstd"
+version = "0.11.2+zstd.1.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4"
+dependencies = [
+ "zstd-safe",
+]
+
+[[package]]
+name = "zstd-safe"
+version = "5.0.2+zstd.1.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db"
+dependencies = [
+ "libc",
+ "zstd-sys",
+]
+
+[[package]]
+name = "zstd-sys"
+version = "2.0.9+zstd.1.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656"
+dependencies = [
+ "cc",
+ "pkg-config",
+]
diff --git a/pkgs/by-name/ma/matrix-authentication-service/package.nix b/pkgs/by-name/ma/matrix-authentication-service/package.nix
new file mode 100644
index 000000000000..ce4748af91d2
--- /dev/null
+++ b/pkgs/by-name/ma/matrix-authentication-service/package.nix
@@ -0,0 +1,97 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, fetchNpmDeps
+, npmHooks
+, nodejs
+, pkg-config
+, sqlite
+, zstd
+, stdenv
+, darwin
+, open-policy-agent
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "matrix-authentication-service";
+  version = "0.7.0";
+
+  src = fetchFromGitHub {
+    owner = "matrix-org";
+    repo = "matrix-authentication-service";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-foipChunzRKIbeO+O+XYx0luzaA0G9LKrH59luQl9R0=";
+  };
+
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "opa-wasm-0.1.0" = "sha256-GuOlUNGegdDieTvthk9SyfQSTeem7ArJTdiD1t7Ojd4=";
+    };
+  };
+
+  npmDeps = fetchNpmDeps {
+    name = "${pname}-${version}-npm-deps";
+    src = "${src}/${npmRoot}";
+    hash = "sha256-ymI+ZkPEGMTLMdTLfKv/v/cgW5iS/nd9PNXFvYaYNjo=";
+  };
+
+  npmRoot = "frontend";
+
+  nativeBuildInputs = [
+    pkg-config
+    open-policy-agent
+    npmHooks.npmConfigHook
+    nodejs
+  ];
+
+  buildInputs = [
+    sqlite
+    zstd
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.CoreFoundation
+    darwin.apple_sdk.frameworks.Security
+    darwin.apple_sdk.frameworks.SystemConfiguration
+  ];
+
+  env = {
+    ZSTD_SYS_USE_PKG_CONFIG = true;
+  };
+
+  buildNoDefaultFeatures = true;
+
+  buildFeatures = [ "dist" ];
+
+  postPatch = ''
+    substituteInPlace crates/config/src/sections/http.rs \
+      --replace ./frontend/dist/    "$out/share/$pname/assets/"
+    substituteInPlace crates/config/src/sections/templates.rs \
+      --replace ./share/templates/    "$out/share/$pname/templates/" \
+      --replace ./share/translations/    "$out/share/$pname/translations/" \
+      --replace ./share/manifest.json "$out/share/$pname/assets/manifest.json"
+    substituteInPlace crates/config/src/sections/policy.rs \
+      --replace ./share/policy.wasm "$out/share/$pname/policy.wasm"
+  '';
+
+  preBuild = ''
+    make -C policies
+    (cd "$npmRoot" && npm run build)
+  '';
+
+  # Adopted from https://github.com/matrix-org/matrix-authentication-service/blob/main/Dockerfile
+  postInstall = ''
+    install -Dm444 -t "$out/share/$pname"        "policies/policy.wasm"
+    install -Dm444 -t "$out/share/$pname/assets" "$npmRoot/dist/"*
+    cp -r templates   "$out/share/$pname/templates"
+    cp -r translations   "$out/share/$pname/translations"
+  '';
+
+  meta = with lib; {
+    description = "OAuth2.0 + OpenID Provider for Matrix Homeservers";
+    homepage = "https://github.com/matrix-org/matrix-authentication-service";
+    changelog = "https://github.com/matrix-org/matrix-authentication-service/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ teutat3s ];
+    mainProgram = "mas-cli";
+  };
+}
diff --git a/pkgs/by-name/mc/mcap-cli/package.nix b/pkgs/by-name/mc/mcap-cli/package.nix
new file mode 100644
index 000000000000..78f1b3bebc4e
--- /dev/null
+++ b/pkgs/by-name/mc/mcap-cli/package.nix
@@ -0,0 +1,44 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+let
+  version = "0.0.38";
+in
+buildGoModule {
+
+  pname = "mcap-cli";
+
+  inherit version;
+
+  src = fetchFromGitHub {
+    repo = "mcap";
+    owner = "foxglove";
+    rev = "releases/mcap-cli/v${version}";
+    hash = "sha256-mwKWf0kJ3uMx1cLUac+AqXgQ1Af3tLDOCTFKgq8FtHE=";
+  };
+
+  vendorHash = "sha256-Gl0zLBTWscKGtVOS6rPRL/r8KHYHpZwoUDbEyCL4Ijk=";
+
+  modRoot = "go/cli/mcap";
+
+  GOWORK="off";
+
+  # copy the local versions of the workspace modules
+  postConfigure = ''
+    chmod -R u+w vendor
+    rm -rf vendor/github.com/foxglove/mcap/go/{mcap,ros}
+    cp -r ../../{mcap,ros} vendor/github.com/foxglove/mcap/go
+  '';
+
+  checkFlags = [
+    # requires git-lfs and network
+    # https://github.com/foxglove/mcap/issues/895
+    "-skip=TestCat|TestInfo"
+  ];
+
+  meta = with lib; {
+    description = "MCAP CLI tool to inspect and fix MCAP files";
+    homepage = "https://github.com/foxglove/mcap";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ squalus therishidesai ];
+  };
+
+}
diff --git a/pkgs/development/libraries/md4c/fix-pkgconfig.patch b/pkgs/by-name/md/md4c/0001-fix-pkgconfig.patch
index e0e9f3d96b2b..e0e9f3d96b2b 100644
--- a/pkgs/development/libraries/md4c/fix-pkgconfig.patch
+++ b/pkgs/by-name/md/md4c/0001-fix-pkgconfig.patch
diff --git a/pkgs/development/libraries/md4c/default.nix b/pkgs/by-name/md/md4c/package.nix
index 6504d99af3e9..0d61de3f72cb 100644
--- a/pkgs/development/libraries/md4c/default.nix
+++ b/pkgs/by-name/md/md4c/package.nix
@@ -1,26 +1,28 @@
 { lib
-, stdenv
-, fetchFromGitHub
 , cmake
+, fetchFromGitHub
 , pkg-config
+, stdenv
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "md4c";
-  version = "0.4.8";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "mity";
-    repo = pname;
-    rev = "release-${version}";
-    hash = "sha256-+LObAD5JB8Vb4Rt4hTo1Z4ispxzfFkkXA2sw6TKB7Yo=";
+    repo = "md4c";
+    rev = "release-${finalAttrs.version}";
+    hash = "sha256-BWmzNV3iC2g8MHoYtqIcUtLQz3oaQwH+Pyy4fN3N7/k=";
   };
 
+  outputs = [ "out" "lib" "dev" "man" ];
+
   patches = [
-    # We set CMAKE_INSTALL_LIBDIR to the absolute path in $out, so
-    # prefix and exec_prefix cannot be $out, too
+    # We set CMAKE_INSTALL_LIBDIR to the absolute path in $out, so prefix and
+    # exec_prefix cannot be $out, too
     # Use CMake's _FULL_ variables instead of `prefix` concatenation.
-    ./fix-pkgconfig.patch
+    ./0001-fix-pkgconfig.patch
   ];
 
   nativeBuildInputs = [
@@ -28,14 +30,17 @@ stdenv.mkDerivation rec {
     pkg-config
   ];
 
-  meta = with lib; {
+  strictDeps = true;
+
+  meta = {
+    homepage = "https://github.com/mity/md4c";
     description = "Markdown parser made in C";
     longDescription = ''
       MD4C is Markdown parser implementation in C, with the following features:
 
       - Compliance: Generally, MD4C aims to be compliant to the latest version
         of CommonMark specification. Currently, we are fully compliant to
-        CommonMark 0.29.
+        CommonMark 0.30.
       - Extensions: MD4C supports some commonly requested and accepted
         extensions. See below.
       - Performance: MD4C is very fast.
@@ -57,11 +62,11 @@ stdenv.mkDerivation rec {
         "Unicode"). See more details below.
       - Permissive license: MD4C is available under the MIT license.
     '';
-    homepage = "https://github.com/mity/md4c";
-    license = licenses.mit;
-    maintainers = with maintainers; [ AndersonTorres ];
+    changelog = "https://github.com/mity/md4c/blob/${finalAttrs.src.rev}/CHANGELOG.md";
+    license = with lib.licenses; [ mit ];
+    maintainers = with lib.maintainers; [ AndersonTorres ];
     mainProgram = "md2html";
-    platforms = platforms.all;
+    platforms = lib.platforms.all;
   };
-}
+})
 # TODO: enable tests (needs Python)
diff --git a/pkgs/by-name/me/mercure/package.nix b/pkgs/by-name/me/mercure/package.nix
index 06b674d6a5bb..f489155b4c25 100644
--- a/pkgs/by-name/me/mercure/package.nix
+++ b/pkgs/by-name/me/mercure/package.nix
@@ -8,18 +8,18 @@
 
 buildGoModule rec {
   pname = "mercure";
-  version = "0.15.6";
+  version = "0.15.9";
 
   src = fetchFromGitHub {
     owner = "dunglas";
     repo = "mercure";
     rev = "v${version}";
-    hash = "sha256-sGMjb7Ilm+RqR6bRGLAYB/nciE5oHeitDllr4H11uHU=";
+    hash = "sha256-4Y+yZSZrBDLPbQXaOCSKk/EY20Ka8CS4ivUg1TEaqXo=";
   };
 
   sourceRoot = "source/caddy";
 
-  vendorHash = "sha256-v0YKlkflo7eKXh38uqsnxZlLr3+fFl8EMeUsf8UMU48=";
+  vendorHash = "sha256-N0RmvhBlTiWmBb4TzLmaThD9jVkKgcIO9vPWxJAvLRQ=";
 
   subPackages = [ "mercure" ];
   excludedPackages = [ "../cmd/mercure" ];
diff --git a/pkgs/by-name/me/meson/007-darwin-case-sensitivity.patch b/pkgs/by-name/me/meson/007-darwin-case-sensitivity.patch
deleted file mode 100644
index aea0348f4b63..000000000000
--- a/pkgs/by-name/me/meson/007-darwin-case-sensitivity.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From a908a574daf8bac10bb2a0ee3771052d2167a85f Mon Sep 17 00:00:00 2001
-From: Randy Eckenrode <randy@largeandhighquality.com>
-Date: Sun, 3 Dec 2023 15:41:20 -0500
-Subject: [PATCH] Fix test failure on Darwin on a case-sensitive fs
-
-This was encountered while looking into an issue with
-https://github.com/NixOS/nixpkgs/pull/268583.
-
-I run my Nix store on case-sensitive APFS, so the test fails due to
-trying to link `-framework ldap` instead of `-framework LDAP`.
----
- test cases/osx/5 extra frameworks/meson.build | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/test cases/osx/5 extra frameworks/meson.build b/test cases/osx/5 extra frameworks/meson.build
-index f6c01e63a1bd..96532846c632 100644
---- a/test cases/osx/5 extra frameworks/meson.build	
-+++ b/test cases/osx/5 extra frameworks/meson.build	
-@@ -7,7 +7,7 @@ dep_main = dependency('Foundation')
- assert(dep_main.type_name() == 'extraframeworks', 'type_name is ' + dep_main.type_name())
- 
- # https://github.com/mesonbuild/meson/issues/10002
--ldap_dep = dependency('ldap', method : 'extraframework')
-+ldap_dep = dependency('LDAP', method : 'extraframework')
- assert(ldap_dep.type_name() == 'extraframeworks', 'type_name is ' + ldap_dep.type_name())
- 
- stlib = static_library('stat', 'stat.c', install : true, dependencies: [opengl_dep, ldap_dep])
diff --git a/pkgs/by-name/me/meson/package.nix b/pkgs/by-name/me/meson/package.nix
index 86ac76ffafbb..9064b9eaf793 100644
--- a/pkgs/by-name/me/meson/package.nix
+++ b/pkgs/by-name/me/meson/package.nix
@@ -18,13 +18,13 @@ let
 in
 python3.pkgs.buildPythonApplication rec {
   pname = "meson";
-  version = "1.3.0";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "mesonbuild";
     repo = "meson";
     rev = "refs/tags/${version}";
-    hash = "sha256-Jt3PWnbv/8P6Rvf3E/Yli2vdtfgx3CmsW+jlc9CK5KA=";
+    hash = "sha256-KNNtHi3jx0MRiOgmluA4ucZJWB2WeIYdApfHuspbCqg=";
   };
 
   patches = [
@@ -65,9 +65,6 @@ python3.pkgs.buildPythonApplication rec {
 
     # Nixpkgs cctools does not have bitcode support.
     ./006-disable-bitcode.patch
-
-    # https://github.com/mesonbuild/meson/pull/12587
-    ./007-darwin-case-sensitivity.patch
   ];
 
   buildInputs = lib.optionals (python3.pythonOlder "3.9") [
diff --git a/pkgs/by-name/mg/mgitstatus/package.nix b/pkgs/by-name/mg/mgitstatus/package.nix
new file mode 100644
index 000000000000..894a21cad75d
--- /dev/null
+++ b/pkgs/by-name/mg/mgitstatus/package.nix
@@ -0,0 +1,36 @@
+{ fetchFromGitHub
+, lib
+, stdenvNoCC
+, testers
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "mgitstatus";
+  version = "2.2";
+
+  src = fetchFromGitHub {
+    owner = "fboender";
+    repo = "multi-git-status";
+    rev = finalAttrs.version;
+    hash = "sha256-jzoX7Efq9+1UdXQdhLRqBlhU3cBrk5AZblg9AYetItg=";
+  };
+
+  installFlags = [
+    "PREFIX=$(out)"
+  ];
+
+  passthru.tests.version = testers.testVersion {
+    package = finalAttrs.finalPackage;
+    version = "v${finalAttrs.version}";
+  };
+
+  meta = with lib; {
+    description = "Show uncommitted, untracked and unpushed changes for multiple Git repos";
+    downloadPage = "https://github.com/fboender/multi-git-status/releases/tag/v${finalAttrs.version}";
+    homepage = "https://github.com/fboender/multi-git-status";
+    license = licenses.mit;
+    maintainers = with maintainers; [ getpsyched ];
+    mainProgram = "mgitstatus";
+    platforms = platforms.all;
+  };
+})
diff --git a/pkgs/by-name/mi/microsoft-identity-broker/package.nix b/pkgs/by-name/mi/microsoft-identity-broker/package.nix
new file mode 100644
index 000000000000..148c65fbeb0d
--- /dev/null
+++ b/pkgs/by-name/mi/microsoft-identity-broker/package.nix
@@ -0,0 +1,104 @@
+{ stdenv
+, lib
+, fetchurl
+, dpkg
+, openjdk11
+, jnr-posix
+, makeWrapper
+, openjfx17
+, zip
+, nixosTests
+, bash
+}:
+stdenv.mkDerivation rec {
+  pname = "microsoft-identity-broker";
+  version = "1.6.1";
+
+  src = fetchurl {
+    url = "https://packages.microsoft.com/ubuntu/22.04/prod/pool/main/m/${pname}/${pname}_${version}_amd64.deb";
+    hash = "sha256-DYXGqMBUGKw4xsWpD973t5ZccBTh0LmVfLMX1T5DNms=";
+  };
+
+  nativeBuildInputs = [ dpkg makeWrapper openjdk11 zip ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    rm opt/microsoft/identity-broker/lib/jnr-posix-3.1.4.jar
+    jar -uf opt/microsoft/identity-broker/lib/javafx-graphics-15-linux.jar -C ${openjfx17}/modules_libs/javafx.graphics/ libglass.so
+    jar -uf opt/microsoft/identity-broker/lib/javafx-graphics-15-linux.jar -C ${openjfx17}/modules_libs/javafx.graphics/ libglassgtk3.so
+    jar -uf opt/microsoft/identity-broker/lib/javafx-graphics-15-linux.jar -C ${openjfx17}/modules_libs/javafx.graphics/ libprism_es2.so
+    zip -d opt/microsoft/identity-broker/lib/javafx-media-15-linux.jar libavplugin-54.so
+    zip -d opt/microsoft/identity-broker/lib/javafx-media-15-linux.jar libavplugin-56.so
+    zip -d opt/microsoft/identity-broker/lib/javafx-media-15-linux.jar libavplugin-57.so
+    zip -d opt/microsoft/identity-broker/lib/javafx-media-15-linux.jar libavplugin-ffmpeg-56.so
+    zip -d opt/microsoft/identity-broker/lib/javafx-media-15-linux.jar libavplugin-ffmpeg-57.so
+    zip -d opt/microsoft/identity-broker/lib/javafx-media-15-linux.jar libavplugin-ffmpeg-58.so
+    jar -uf opt/microsoft/identity-broker/lib/javafx-media-15-linux.jar -C ${openjfx17}/modules_libs/javafx.media/ libavplugin.so
+    jar -uf opt/microsoft/identity-broker/lib/javafx-media-15-linux.jar -C ${openjfx17}/modules_libs/javafx.media/ libfxplugins.so
+    jar -uf opt/microsoft/identity-broker/lib/javafx-media-15-linux.jar -C ${openjfx17}/modules_libs/javafx.media/ libgstreamer-lite.so
+    jar -uf opt/microsoft/identity-broker/lib/javafx-media-15-linux.jar -C ${openjfx17}/modules_libs/javafx.media/ libjfxmedia.so
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/lib/microsoft-identity-broker
+    cp -a opt/microsoft/identity-broker/lib/* $out/lib/microsoft-identity-broker
+    cp -a usr/* $out
+    for jar in $out/lib/microsoft-identity-broker/*.jar; do
+      classpath="$classpath:$jar"
+    done
+    classpath="$classpath:${jnr-posix}/share/java/jnr-posix-${jnr-posix.version}.jar"
+    mkdir -p $out/bin
+    makeWrapper ${openjdk11}/bin/java $out/bin/microsoft-identity-broker \
+      --add-flags "-classpath $classpath com.microsoft.identity.broker.service.IdentityBrokerService" \
+      --add-flags "-verbose"
+    makeWrapper ${openjdk11}/bin/java $out/bin/microsoft-identity-device-broker \
+      --add-flags "-verbose" \
+      --add-flags "-classpath $classpath" \
+      --add-flags "com.microsoft.identity.broker.service.DeviceBrokerService" \
+      --add-flags "save"
+
+    runHook postInstall
+  '';
+
+  postInstall = ''
+    substituteInPlace \
+      $out/lib/systemd/user/microsoft-identity-broker.service \
+      $out/lib/systemd/system/microsoft-identity-device-broker.service \
+      $out/share/dbus-1/system-services/com.microsoft.identity.devicebroker1.service \
+      $out/share/dbus-1/services/com.microsoft.identity.broker1.service \
+      --replace \
+        ExecStartPre=sh \
+        ExecStartPre=${bash}/bin/sh \
+      --replace \
+        ExecStartPre=!sh \
+        ExecStartPre=!${bash}/bin/sh \
+      --replace \
+        /opt/microsoft/identity-broker/bin/microsoft-identity-broker \
+        $out/bin/microsoft-identity-broker \
+      --replace \
+        /opt/microsoft/identity-broker/bin/microsoft-identity-device-broker \
+        $out/bin/microsoft-identity-device-broker \
+      --replace \
+        /usr/lib/jvm/java-11-openjdk-amd64 \
+        ${openjdk11}/bin/java
+  '';
+
+  passthru = {
+    updateScript = ./update.sh;
+    tests = { inherit (nixosTests) intune; };
+  };
+
+  meta = with lib; {
+    description = "Microsoft Authentication Broker for Linux";
+    homepage = "https://www.microsoft.com/";
+    license = licenses.unfree;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    platforms = [ "x86_64-linux" ];
+    maintainers = with lib.maintainers; [ rhysmdnz ];
+  };
+}
diff --git a/pkgs/by-name/mi/microsoft-identity-broker/update.sh b/pkgs/by-name/mi/microsoft-identity-broker/update.sh
new file mode 100755
index 000000000000..f91583a761df
--- /dev/null
+++ b/pkgs/by-name/mi/microsoft-identity-broker/update.sh
@@ -0,0 +1,26 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p curl gzip dpkg common-updater-scripts
+
+index_file=$(curl -sL https://packages.microsoft.com/ubuntu/22.04/prod/dists/jammy/main/binary-amd64/Packages.gz | gzip -dc)
+
+latest_version="0"
+
+echo "$index_file" | while read -r line; do
+    if [[ "$line" =~ ^Package:[[:space:]]*(.*) ]]; then
+        Package="${BASH_REMATCH[1]}"
+    fi
+    if [[ "$line" =~ ^Version:[[:space:]]*(.*) ]]; then
+        Version="${BASH_REMATCH[1]}"
+    fi
+
+    if ! [[ "$line" ]] && [[ "${Package}" == "microsoft-identity-broker" ]]; then
+        if ( dpkg --compare-versions ${Version} gt ${latest_version} ); then
+            latest_version="${Version}"
+
+            echo $latest_version
+        fi
+
+        Package=""
+        Version=""
+    fi
+done | tail -n 1 | (read version; update-source-version microsoft-identity-broker $version)
diff --git a/pkgs/by-name/mi/minijinja/package.nix b/pkgs/by-name/mi/minijinja/package.nix
new file mode 100644
index 000000000000..6f005cf411a6
--- /dev/null
+++ b/pkgs/by-name/mi/minijinja/package.nix
@@ -0,0 +1,29 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "minijinja";
+  version = "1.0.12";
+
+  src = fetchFromGitHub {
+    owner = "mitsuhiko";
+    repo = "minijinja";
+    rev = version;
+    hash = "sha256-v5YTPcUiCUQvTURqgKepdOjKZ5rFLr+mF7X+s5GvxdM=";
+  };
+
+  cargoHash = "sha256-OhfrlT2DZU3ahH9PKqpEK8f34J2E6zNUai3hYBPg7v4=";
+
+  # The tests relies on the presence of network connection
+  doCheck = false;
+
+  cargoBuildFlags = "--bin minijinja-cli";
+
+  meta = with lib; {
+    description = "Command Line Utility to render MiniJinja/Jinja2 templates";
+    homepage = "https://github.com/mitsuhiko/minijinja";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ psibi ];
+    changelog = "https://github.com/mitsuhiko/minijinja/blob/${version}/CHANGELOG.md";
+    mainProgram = "minijinja-cli";
+  };
+}
diff --git a/pkgs/by-name/ml/mlx42/package.nix b/pkgs/by-name/ml/mlx42/package.nix
index ac3aaa2200eb..3387dec3378d 100644
--- a/pkgs/by-name/ml/mlx42/package.nix
+++ b/pkgs/by-name/ml/mlx42/package.nix
@@ -11,23 +11,15 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "mlx42";
-  version = "2.3.2";
+  version = "2.3.3";
 
   src = fetchFromGitHub {
     owner = "codam-coding-college";
     repo = "MLX42";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-JCBV8NWibSugqXkbgP0v3gDfaaMNFYztWpBRfHJUG8E=";
+    hash = "sha256-igkTeOnqGYBISzmtDGlDx9cGJjoQ8fzXtVSR9hU4F5E=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "add-cmake-install.patch";
-      url = "https://github.com/codam-coding-college/MLX42/commit/a51ca8e0ec3fb793fa96d710696dcee8a4fe57d6.patch";
-      hash = "sha256-i+0yHZVvfTG19BGVrz7GuEuBw3B7lylCPEvx07il23M=";
-    })
-  ];
-
   postPatch = ''
     patchShebangs ./tools
   ''
@@ -46,10 +38,6 @@ stdenv.mkDerivation (finalAttrs: {
   postInstall = ''
     mkdir -p $out/lib/pkgconfig
     substituteAll ${./mlx42.pc} $out/lib/pkgconfig/mlx42.pc
-
-    # This file was removed after 2.3.2, so the used patch doesn't copy this file
-    # This line can be removed after the next release
-    cp $src/include/MLX42/MLX42_Input.h $out/include/MLX42
   '';
 
   meta = {
diff --git a/pkgs/applications/editors/moe/default.nix b/pkgs/by-name/mo/moe/package.nix
index 9d0724f1997b..766d80215020 100644
--- a/pkgs/applications/editors/moe/default.nix
+++ b/pkgs/by-name/mo/moe/package.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "moe";
-  version = "1.13";
+  version = "1.14";
 
   src = fetchurl {
     url = "mirror://gnu/moe/moe-${finalAttrs.version}.tar.lz";
-    hash = "sha256-Q6VXvFEvidbHGOX0ECnP46BVaCYg642+zmMC80omFGs=";
+    hash = "sha256-9Lq9bOCuGVFvmDRU+yDTLf9xrTFjN6xr+TpCpf8gnJ0=";
   };
 
   prePatch = ''
@@ -28,6 +28,8 @@ stdenv.mkDerivation (finalAttrs: {
     ncurses
   ];
 
+  strictDeps = true;
+
   meta = {
     homepage = "https://www.gnu.org/software/moe/";
     description = "A small, 8-bit clean editor";
diff --git a/pkgs/by-name/mo/monophony/package.nix b/pkgs/by-name/mo/monophony/package.nix
index 02c39c1bbb50..c0ddfee356b5 100644
--- a/pkgs/by-name/mo/monophony/package.nix
+++ b/pkgs/by-name/mo/monophony/package.nix
@@ -12,7 +12,7 @@
 }:
 python3Packages.buildPythonApplication rec {
   pname = "monophony";
-  version = "2.5.1";
+  version = "2.5.2";
   format = "other";
 
   sourceRoot = "source/source";
@@ -20,7 +20,7 @@ python3Packages.buildPythonApplication rec {
     owner = "zehkira";
     repo = "monophony";
     rev = "v${version}";
-    hash = "sha256-kBFznJcH6UOlzgUnhPSOUBxqqsHzIEpirN63gRYC/u0=";
+    hash = "sha256-DIAvRxUC1JIK4Tyc+REqgO6kZRokPcmLCKwI/+YRGx8=";
   };
 
   pythonPath = with python3Packages; [
diff --git a/pkgs/by-name/mo/morewaita-icon-theme/package.nix b/pkgs/by-name/mo/morewaita-icon-theme/package.nix
index 0225fab88b45..be19082d6d29 100644
--- a/pkgs/by-name/mo/morewaita-icon-theme/package.nix
+++ b/pkgs/by-name/mo/morewaita-icon-theme/package.nix
@@ -7,13 +7,13 @@
 }:
 stdenvNoCC.mkDerivation rec {
   pname = "morewaita-icon-theme";
-  version = "43.2";
+  version = "45";
 
   src = fetchFromGitHub {
     owner = "somepaulo";
     repo = "MoreWaita";
     rev = "v${version}";
-    hash = "sha256-efeZEysuWdE1+ws3njFlhWjAjavRlMuIuSL2VT25lUk=";
+    hash = "sha256-UtwigqJjkin53Wg3PU14Rde6V42eKhmP26a3fDpbJ4Y=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/mo/mountpoint-s3/package.nix b/pkgs/by-name/mo/mountpoint-s3/package.nix
index 7f00cfd16a8b..0caa5a4b4e50 100644
--- a/pkgs/by-name/mo/mountpoint-s3/package.nix
+++ b/pkgs/by-name/mo/mountpoint-s3/package.nix
@@ -8,17 +8,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mountpoint-s3";
-  version = "1.3.2";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "mountpoint-s3";
     rev = "v${version}";
-    hash = "sha256-RMLlHopd+PZLvDtI5uqWlvtS2rahp0HnC/PZ3HVdzIo=";
+    hash = "sha256-7anWK7vg6u7Sz4eV+X3QqeLj6y11iEmsi3iIlnEI79w=";
     fetchSubmodules = true;
   };
 
-  cargoHash = "sha256-kvl89btgxa3tFbiiPlCyvXodruHRr7KC0lR2GG5UIKw=";
+  cargoHash = "sha256-qqPzf56KqVsmey353GpeJ6xdVLnGfjh/KlErWKkB6JU=";
 
   # thread 'main' panicked at cargo-auditable/src/collect_audit_data.rs:77:9:
   # cargo metadata failure: error: none of the selected packages contains these features: libfuse3
diff --git a/pkgs/by-name/mo/mouse-actions/package.nix b/pkgs/by-name/mo/mouse-actions/package.nix
new file mode 100644
index 000000000000..652c5ed4243f
--- /dev/null
+++ b/pkgs/by-name/mo/mouse-actions/package.nix
@@ -0,0 +1,49 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, pkg-config
+, libX11
+, libXi
+, libXtst
+, libevdev
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "mouse-actions";
+  version = "0.4.4";
+
+  src = fetchFromGitHub {
+    owner = "jersou";
+    repo = "mouse-actions";
+    rev = "v${version}";
+    hash = "sha256-02E4HrKIoBV3qZPVH6Tjz9Bv/mh5C8amO1Ilmd+YO5g=";
+  };
+
+  cargoHash = "sha256-5SUVZlrXIPtlu9KBzucZDCp5t5t8Z4/Nfht2Pw5agVI=";
+
+  buildInputs = [
+    libX11
+    libXi
+    libXtst
+    libevdev
+  ];
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  postInstall = ''
+    mkdir -p $out/etc/udev/rules.d/
+    echo 'KERNEL=="uinput", SUBSYSTEM=="misc", TAG+="uaccess", OPTIONS+="static_node=uinput"' >> $out/etc/udev/rules.d/80-mouse-actions.rules
+    echo 'KERNEL=="/dev/input/event*", SUBSYSTEM=="misc", TAG+="uaccess", OPTIONS+="static_node=uinput"' >> $out/etc/udev/rules.d/80-mouse-actions.rules
+  '';
+
+  meta = with lib; {
+    description = "Execute commands from mouse events such as clicks/wheel on the side/corners of the screen, or drawing shapes";
+    homepage = "https://github.com/jersou/mouse-actions";
+    license = licenses.mit;
+    maintainers = with maintainers; [ rgri ];
+    mainProgram = "mouse-actions";
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/mo/move-mount-beneath/package.nix b/pkgs/by-name/mo/move-mount-beneath/package.nix
new file mode 100644
index 000000000000..2e2e058eec97
--- /dev/null
+++ b/pkgs/by-name/mo/move-mount-beneath/package.nix
@@ -0,0 +1,29 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation {
+  pname = "move-mount-beneath";
+  version = "unstable-2023-11-26";
+
+  src = fetchFromGitHub {
+    owner = "brauner";
+    repo = "move-mount-beneath";
+    rev = "d3d16c0d7766eb1892fcc24a75f8d35df4b0fe45";
+    hash = "sha256-hUboFthw9ABwK6MRSNg7+iu9YbiJALNdsw9Ub3v43n4=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+    install -D move-mount $out/bin/move-mount
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Toy binary to illustrate adding a mount beneath an existing mount";
+    homepage = "https://github.com/brauner/move-mount-beneath";
+    license = lib.licenses.mit0;
+    maintainers = with lib.maintainers; [ nikstur ];
+  };
+}
diff --git a/pkgs/by-name/mq/mqttx/package.nix b/pkgs/by-name/mq/mqttx/package.nix
new file mode 100644
index 000000000000..ac3758584662
--- /dev/null
+++ b/pkgs/by-name/mq/mqttx/package.nix
@@ -0,0 +1,57 @@
+{ lib
+, stdenv
+, fetchurl
+, appimageTools
+, imagemagick
+}:
+
+let
+  pname = "mqttx";
+  version = "1.9.8";
+
+  suffixedUrl = suffix: "https://github.com/emqx/MQTTX/releases/download/v${version}/MQTTX-${version}${suffix}.AppImage";
+  sources = {
+    "aarch64-linux" = fetchurl {
+      url = suffixedUrl "-arm64";
+      hash = "sha256-pdR9LwWgFdO0Dtn7ByyYKpLrfoBnl75TzQ31aIAJ/gs=";
+    };
+    "x86_64-linux" = fetchurl {
+      url = suffixedUrl "";
+      hash = "sha256-XHAroiFuUcK0aUleNDskI1bfVX7HfTvIvSup9gKJj1w=";
+    };
+  };
+
+  src = sources.${stdenv.hostPlatform.system}
+    or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+
+  appimageContents = appimageTools.extractType2 {
+    inherit pname version src;
+  };
+in
+appimageTools.wrapType2 {
+  inherit pname version src;
+
+  extraPkgs = pkgs: [ ];
+
+  extraInstallCommands = ''
+    mv $out/bin/${pname}-${version} $out/bin/${pname}
+    install -m 444 -D ${appimageContents}/${pname}.desktop $out/share/applications/${pname}.desktop
+    install -m 444 -D ${appimageContents}/${pname}.png $out/share/icons/hicolor/1024x1024/apps/${pname}.png
+
+    ${imagemagick}/bin/convert ${appimageContents}/mqttx.png -resize 512x512 ${pname}_512.png
+    install -m 444 -D ${pname}_512.png $out/share/icons/hicolor/512x512/apps/${pname}.png
+
+    substituteInPlace $out/share/applications/${pname}.desktop \
+      --replace 'Exec=AppRun' 'Exec=${pname}'
+  '';
+
+  meta = with lib; {
+    description = "Powerful cross-platform MQTT 5.0 Desktop, CLI, and WebSocket client tools";
+    homepage = "https://mqttx.app/";
+    changelog = "https://github.com/emqx/MQTTX/releases/tag/v${version}";
+    license = licenses.asl20;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ gaelreyrol ];
+    mainProgram = "mqttx";
+  };
+}
diff --git a/pkgs/by-name/ms/msalsdk-dbusclient/package.nix b/pkgs/by-name/ms/msalsdk-dbusclient/package.nix
new file mode 100644
index 000000000000..2fcccf8c6c9e
--- /dev/null
+++ b/pkgs/by-name/ms/msalsdk-dbusclient/package.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, lib
+, fetchurl
+, dpkg
+, sdbus-cpp
+}:
+stdenv.mkDerivation rec {
+  pname = "msalsdk-dbusclient";
+  version = "1.0.1";
+
+  src = fetchurl {
+    url = "https://packages.microsoft.com/ubuntu/22.04/prod/pool/main/m/${pname}/${pname}_${version}_amd64.deb";
+    hash = "sha256-AVPrNxCjXGza2gGETP0YrlXeEgI6AjlrSVTtqKb2UBI=";
+  };
+
+  nativeBuildInputs = [ dpkg ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/lib
+    install -m 755 usr/lib/libmsal_dbus_client.so $out/lib/
+    patchelf --set-rpath ${lib.makeLibraryPath [ stdenv.cc.cc.lib sdbus-cpp ]} $out/lib/libmsal_dbus_client.so
+
+    runHook postInstall
+  '';
+
+  passthru.updateScript = ./update.sh;
+  meta = with lib; {
+    description = "Microsoft Authentication Library cross platform Dbus client for talking to microsoft-identity-broker";
+    homepage = "https://github.com/AzureAD/microsoft-authentication-library-for-cpp";
+    license = licenses.unfree;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    platforms = [ "x86_64-linux" ];
+    maintainers = with lib.maintainers; [ rhysmdnz ];
+  };
+}
diff --git a/pkgs/by-name/ms/msalsdk-dbusclient/update.sh b/pkgs/by-name/ms/msalsdk-dbusclient/update.sh
new file mode 100755
index 000000000000..e804eeb935ee
--- /dev/null
+++ b/pkgs/by-name/ms/msalsdk-dbusclient/update.sh
@@ -0,0 +1,26 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p curl gzip dpkg common-updater-scripts
+
+index_file=$(curl -sL https://packages.microsoft.com/ubuntu/22.04/prod/dists/jammy/main/binary-amd64/Packages.gz | gzip -dc)
+
+latest_version="0"
+
+echo "$index_file" | while read -r line; do
+    if [[ "$line" =~ ^Package:[[:space:]]*(.*) ]]; then
+        Package="${BASH_REMATCH[1]}"
+    fi
+    if [[ "$line" =~ ^Version:[[:space:]]*(.*) ]]; then
+        Version="${BASH_REMATCH[1]}"
+    fi
+
+    if ! [[ "$line" ]] && [[ "${Package}" == "msalsdk-dbusclient" ]]; then
+        if ( dpkg --compare-versions ${Version} gt ${latest_version} ); then
+            latest_version="${Version}"
+
+            echo $latest_version
+        fi
+
+        Package=""
+        Version=""
+    fi
+done | tail -n 1 | (read version; update-source-version msalsdk-dbusclient $version)
diff --git a/pkgs/by-name/mu/muparser/package.nix b/pkgs/by-name/mu/muparser/package.nix
new file mode 100644
index 000000000000..12d0c6492233
--- /dev/null
+++ b/pkgs/by-name/mu/muparser/package.nix
@@ -0,0 +1,40 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, llvmPackages
+}:
+
+stdenv.mkDerivation rec {
+  pname = "muparser";
+  version = "2.3.4";
+
+  src = fetchFromGitHub {
+    owner = "beltoforion";
+    repo = "muparser";
+    rev = "v${version}";
+    hash = "sha256-hutmmhw7BHAwbDKBiK+3Yw833GL0rPGlVjlO7XzTii0=";
+  };
+
+  postPatch = ''
+    substituteInPlace muparser.pc.in \
+      --replace "\''${prefix}/@CMAKE_INSTALL_LIBDIR@" "@CMAKE_INSTALL_FULL_LIBDIR@" \
+      --replace "\''${prefix}/@CMAKE_INSTALL_INCLUDEDIR@" "@CMAKE_INSTALL_FULL_INCLUDEDIR@"
+  '';
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  buildInputs = lib.optionals stdenv.cc.isClang [
+    llvmPackages.openmp
+  ];
+
+  meta = {
+    description = "An extensible high performance math expression parser library written in C++";
+    homepage = "https://beltoforion.de/en/muparser/";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ wegank ];
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/pkgs/by-name/my/mystmd/package.nix b/pkgs/by-name/my/mystmd/package.nix
index 3e49a70bd4d0..f2270a7c96b1 100644
--- a/pkgs/by-name/my/mystmd/package.nix
+++ b/pkgs/by-name/my/mystmd/package.nix
@@ -2,16 +2,16 @@
 
 buildNpmPackage rec {
   pname = "mystmd";
-  version = "1.1.37";
+  version = "1.1.38";
 
   src = fetchFromGitHub {
     owner = "executablebooks";
     repo = "mystmd";
     rev = "mystmd@${version}";
-    hash = "sha256-P4+0oCXQGziYfVUxIZe3j25lO6ho/4BdtqxCv/TTGko=";
+    hash = "sha256-kshYS4mWqlWpF4pSetk6mpOn0/XCUF13M5qbZD/pNxQ=";
   };
 
-  npmDepsHash = "sha256-ZA9kiMTn+m9Q0C3DBVMiUEq5bfRsXM1VX0qrIH2GAQo=";
+  npmDepsHash = "sha256-+aqS5khw/fDKOGAvOVFopcwoZAsgmmUQzOljZSUlArA=";
 
   dontNpmInstall = true;
 
diff --git a/pkgs/by-name/na/namespace-cli/package.nix b/pkgs/by-name/na/namespace-cli/package.nix
index c9c23690d1c4..09c08ca1b39a 100644
--- a/pkgs/by-name/na/namespace-cli/package.nix
+++ b/pkgs/by-name/na/namespace-cli/package.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "namespace-cli";
-  version = "0.0.328";
+  version = "0.0.332";
 
   src = fetchFromGitHub {
     owner = "namespacelabs";
     repo = "foundation";
     rev = "v${version}";
-    hash = "sha256-M6hX+muUC4v7Nmu2N8cONCLPJc6pVv6UJ1WO/uSDYnM=";
+    hash = "sha256-6pTL3mvW8O3vly1a+LUTMBnD5D907CfQIqDwTnUqT1s=";
   };
 
-  vendorHash = "sha256-AVbRqgk5UldpaqyEmdYDpwzaZEo5r+M3Kwxb3Sh1jLQ=";
+  vendorHash = "sha256-DcGp/5Ohk9gbviA31a1FTu/xglLjrz2S50A5DBAE+lc=";
 
   subPackages = ["cmd/nsc" "cmd/ns" "cmd/docker-credential-nsc"];
 
diff --git a/pkgs/by-name/na/narsil/package.nix b/pkgs/by-name/na/narsil/package.nix
new file mode 100644
index 000000000000..ac00cf482055
--- /dev/null
+++ b/pkgs/by-name/na/narsil/package.nix
@@ -0,0 +1,51 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, ncurses
+, enableSdl2 ? true
+, SDL2
+, SDL2_image
+, SDL2_sound
+, SDL2_mixer
+, SDL2_ttf
+}:
+
+stdenv.mkDerivation rec {
+  pname = "narsil";
+  version = "1.3.0-49-gc042b573a";
+
+  src = fetchFromGitHub {
+    owner = "NickMcConnell";
+    repo = "NarSil";
+    rev = version;
+    hash = "sha256-lVGG4mppsnDmjMFO8YWsLEJEhI3T+QO3z/pCebe0Ai8=";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [ ncurses ]
+    ++ lib.optionals enableSdl2 [
+    SDL2
+    SDL2_image
+    SDL2_sound
+    SDL2_mixer
+    SDL2_ttf
+  ];
+
+  enableParallelBuilding = true;
+
+  configureFlags = lib.optional enableSdl2 "--enable-sdl2";
+
+  installFlags = [ "bindir=$(out)/bin" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/NickMcConnell/NarSil/";
+    description = "Unofficial rewrite of Sil, a roguelike influenced by Angband";
+    longDescription = ''
+      NarSil attempts to be an almost-faithful recreation of Sil 1.3.0,
+      but based on the codebase of modern Angband.
+    '';
+    maintainers = [ maintainers.nanotwerp ];
+    license = licenses.gpl2;
+  };
+}
diff --git a/pkgs/by-name/ne/net-cpp/package.nix b/pkgs/by-name/ne/net-cpp/package.nix
index 3397d7820ce3..49f9c50721dd 100644
--- a/pkgs/by-name/ne/net-cpp/package.nix
+++ b/pkgs/by-name/ne/net-cpp/package.nix
@@ -16,6 +16,7 @@
 , process-cpp
 , properties-cpp
 , python3
+, validatePkgConfig
 }:
 
 let
@@ -25,13 +26,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "net-cpp";
-  version = "3.1.0";
+  version = "3.1.1";
 
   src = fetchFromGitLab {
     owner = "ubports";
     repo = "development/core/lib-cpp/net-cpp";
     rev = finalAttrs.version;
-    hash = "sha256-qXKuFLmtPjdqTcBIM07xbRe3DnP7AzieCy7Tbjtl0uc=";
+    hash = "sha256-MSqdP3kGI9hDdxFv2a0yd5ZkFkf1lMurB+KDIZLR9jg=";
   };
 
   outputs = [
@@ -41,22 +42,6 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   patches = [
-    # Enable disabling of Werror
-    # Remove when version > 3.1.0
-    (fetchpatch {
-      name = "0001-net-cpp-Add-ENABLE_WERROR-option.patch";
-      url = "https://gitlab.com/ubports/development/core/lib-cpp/net-cpp/-/commit/0945180aa6dd38245688d5ebc11951b272e93dc4.patch";
-      hash = "sha256-91YuEgV+Q9INN4BJXYwWgKUNHHtUYz3CG+ROTy24GIE=";
-    })
-
-    # Enable opting out of tests
-    # https://gitlab.com/ubports/development/core/lib-cpp/net-cpp/-/merge_requests/14
-    (fetchpatch {
-      name = "0002-net-cpp-Make-tests-optional.patch";
-      url = "https://gitlab.com/OPNA2608/net-cpp/-/commit/cfbcd55446a4224a4c913ead3a370cd56d07a71b.patch";
-      hash = "sha256-kt48txzmWNXyxvx3DWAJl7I90c+o3KlgveNQjPkhfxA=";
-    })
-
     # Be more lenient with how quickly HTTP test server must be up, for slower hardware / archs
     (fetchpatch {
       url = "https://salsa.debian.org/ubports-team/net-cpp/-/raw/941d9eceaa66a06eabb1eb79554548b47d4a60ab/debian/patches/1007_wait-for-flask.patch";
@@ -76,6 +61,7 @@ stdenv.mkDerivation (finalAttrs: {
     cmake
     doxygen
     graphviz
+    validatePkgConfig
   ];
 
   buildInputs = [
@@ -98,7 +84,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   cmakeFlags = [
     # https://gitlab.com/ubports/development/core/lib-cpp/net-cpp/-/issues/4
-    "-DENABLE_WERROR=OFF"
+    (lib.cmakeBool "ENABLE_WERROR" false)
   ];
 
   doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
@@ -114,6 +100,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     description = "Simple yet beautiful networking API for C++11";
     homepage = "https://gitlab.com/ubports/development/core/lib-cpp/net-cpp";
+    changelog = "https://gitlab.com/ubports/development/core/lib-cpp/net-cpp/-/blob/${finalAttrs.version}/ChangeLog";
     license = licenses.lgpl3Only;
     maintainers = teams.lomiri.members;
     platforms = platforms.linux;
diff --git a/pkgs/by-name/ne/netclient/package.nix b/pkgs/by-name/ne/netclient/package.nix
index cfac6ad8f6d1..1fe94d97762f 100644
--- a/pkgs/by-name/ne/netclient/package.nix
+++ b/pkgs/by-name/ne/netclient/package.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "netclient";
-  version = "0.21.2";
+  version = "0.22.0";
 
   src = fetchFromGitHub {
     owner = "gravitl";
     repo = "netclient";
     rev = "v${version}";
-    hash = "sha256-yUyC6QTNhTNN/npGXiwS7M6cGKjh4H9vR8/z2/Sckz4=";
+    hash = "sha256-7raWk4Y/ZrSaGKPLrrnD49aDALkZ+Nxycd+px8Eks10=";
   };
 
-  vendorHash = "sha256-cnzdqSd3KOITOAH++zxKTqvUzjFxszf/rwkCF6vDpMc=";
+  vendorHash = "sha256-lRXZ9iSWQEKWmeQV1ei/G4+HvqhW9U8yUv1Qb/d2jvY=";
 
   buildInputs = lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Cocoa
     ++ lib.optional stdenv.isLinux libX11;
diff --git a/pkgs/by-name/ne/newsraft/package.nix b/pkgs/by-name/ne/newsraft/package.nix
index fcebb7ed5825..848fd8eb6e4c 100644
--- a/pkgs/by-name/ne/newsraft/package.nix
+++ b/pkgs/by-name/ne/newsraft/package.nix
@@ -13,14 +13,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "newsraft";
-  version = "0.22";
+  version = "0.23";
 
   src = fetchFromGitea {
     domain = "codeberg.org";
     owner = "newsraft";
     repo = "newsraft";
     rev = "newsraft-${finalAttrs.version}";
-    hash = "sha256-QjIADDk1PSZP89+G7B1Bpu3oTEAykD4RJYghZnMJKho=";
+    hash = "sha256-c5yN67FL4siPyO8v0RuTCznwrqX9+r8tY5PKS4zlqIc=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/compilers/nextpnr/default.nix b/pkgs/by-name/ne/nextpnr/package.nix
index d56f7e716301..e164a38d9564 100644
--- a/pkgs/development/compilers/nextpnr/default.nix
+++ b/pkgs/by-name/ne/nextpnr/package.nix
@@ -13,13 +13,13 @@ let
   boostPython = boost.override { python = python3; enablePython = true; };
 
   pname = "nextpnr";
-  version = "0.6";
+  version = "0.7";
 
   main_src = fetchFromGitHub {
     owner = "YosysHQ";
     repo  = "nextpnr";
     rev   = "${pname}-${version}";
-    hash  = "sha256-S6qvTzvkS2tBMvuTpmuCx6h0OcKP5NBbmgRgOpAVtnA=";
+    hash  = "sha256-YIAQcCg9RjvCys1bQ3x+sTgTmnmEeXVbt9Lr6wtg1pA=";
     name  = "nextpnr";
   };
 
@@ -82,6 +82,8 @@ stdenv.mkDerivation rec {
     wrapQtApp $out/bin/nextpnr-gowin
   '';
 
+  strictDeps = true;
+
   meta = with lib; {
     description = "Place and route tool for FPGAs";
     homepage    = "https://github.com/yosyshq/nextpnr";
diff --git a/pkgs/by-name/ni/nickel/Cargo.lock b/pkgs/by-name/ni/nickel/Cargo.lock
index cc18ccef079e..5c08dbc00fda 100644
--- a/pkgs/by-name/ni/nickel/Cargo.lock
+++ b/pkgs/by-name/ni/nickel/Cargo.lock
@@ -19,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
 name = "ahash"
-version = "0.8.6"
+version = "0.8.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a"
+checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
 dependencies = [
  "cfg-if",
  "getrandom",
@@ -56,9 +56,9 @@ dependencies = [
 
 [[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",
@@ -76,37 +76,37 @@ checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
 
 [[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.75"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
+checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
 
 [[package]]
 name = "arrayvec"
@@ -131,9 +131,9 @@ dependencies = [
 
 [[package]]
 name = "assert_cmd"
-version = "2.0.12"
+version = "2.0.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88903cb14723e4d4003335bb7f8a14f27691649105346a0f0957466c096adfe6"
+checksum = "00ad3f3a942eee60335ab4342358c161ee296829e0d16ff42fc1d6cb07815467"
 dependencies = [
  "anstyle",
  "bstr",
@@ -190,9 +190,9 @@ 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 = "beef"
@@ -232,9 +232,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.1"
+version = "2.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
 
 [[package]]
 name = "block-buffer"
@@ -247,9 +247,9 @@ dependencies = [
 
 [[package]]
 name = "bstr"
-version = "1.7.0"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c79ad7fb2dd38f3dabd76b09c6a5a20c038fc0213ef1e9afd30eb777f120f019"
+checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc"
 dependencies = [
  "memchr",
  "regex-automata",
@@ -264,9 +264,9 @@ checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
 
 [[package]]
 name = "bytemuck"
-version = "1.14.0"
+version = "1.14.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
+checksum = "ed2490600f404f2b94c167e31d3ed1d5f3c225a0f3b80230053b3e0b7b962bd9"
 
 [[package]]
 name = "cast"
@@ -291,9 +291,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "ciborium"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926"
+checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e"
 dependencies = [
  "ciborium-io",
  "ciborium-ll",
@@ -302,15 +302,15 @@ dependencies = [
 
 [[package]]
 name = "ciborium-io"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656"
+checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757"
 
 [[package]]
 name = "ciborium-ll"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b"
+checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9"
 dependencies = [
  "ciborium-io",
  "half",
@@ -330,9 +330,9 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.4.7"
+version = "4.4.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac495e00dcec98c83465d5ad66c5c4fabd652fd6686e7c6269b117e729a6f17b"
+checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -340,9 +340,9 @@ dependencies = [
 
 [[package]]
 name = "clap_builder"
-version = "4.4.7"
+version = "4.4.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c77ed9a32a62e6ca27175d00d29d05ca32e396ea1eb5fb01d8256b669cec7663"
+checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7"
 dependencies = [
  "anstream",
  "anstyle",
@@ -353,11 +353,11 @@ dependencies = [
 
 [[package]]
 name = "clap_complete"
-version = "4.4.4"
+version = "4.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bffe91f06a11b4b9420f62103854e90867812cd5d01557f853c5ee8e791b12ae"
+checksum = "df631ae429f6613fcd3a7c1adbdb65f637271e561b03680adaa6573015dfb106"
 dependencies = [
- "clap 4.4.7",
+ "clap 4.4.18",
 ]
 
 [[package]]
@@ -367,9 +367,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
 dependencies = [
  "heck",
- "proc-macro2 1.0.69",
- "quote 1.0.33",
- "syn 2.0.38",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -442,7 +442,7 @@ version = "0.17.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0c5a805f31fb098b1611170028501077ceb8c9e78f5345530f4fdefae9b61119"
 dependencies = [
- "clap 4.4.7",
+ "clap 4.4.18",
  "entities",
  "memchr",
  "once_cell",
@@ -457,14 +457,14 @@ 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",
- "windows-sys 0.45.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -493,9 +493,9 @@ dependencies = [
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
 dependencies = [
  "libc",
 ]
@@ -547,11 +547,10 @@ dependencies = [
 
 [[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",
@@ -561,56 +560,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.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"
@@ -676,9 +665,9 @@ dependencies = [
 
 [[package]]
 name = "cxx"
-version = "1.0.110"
+version = "1.0.115"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7129e341034ecb940c9072817cd9007974ea696844fc4dd582dc1653a7fbe2e8"
+checksum = "8de00f15a6fa069c99b88c5c78c4541d0e7899a33b86f7480e23df2431fce0bc"
 dependencies = [
  "cc",
  "cxxbridge-flags",
@@ -688,34 +677,34 @@ dependencies = [
 
 [[package]]
 name = "cxx-build"
-version = "1.0.110"
+version = "1.0.115"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2a24f3f5f8eed71936f21e570436f024f5c2e25628f7496aa7ccd03b90109d5"
+checksum = "0a71e1e631fa2f2f5f92e8b0d860a00c198c6771623a6cefcc863e3554f0d8d6"
 dependencies = [
  "cc",
  "codespan-reporting",
  "once_cell",
- "proc-macro2 1.0.69",
- "quote 1.0.33",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
  "scratch",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "cxxbridge-flags"
-version = "1.0.110"
+version = "1.0.115"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06fdd177fc61050d63f67f5bd6351fac6ab5526694ea8e359cd9cd3b75857f44"
+checksum = "6f3fed61d56ba497c4efef9144dfdbaa25aa58f2f6b3a7cf441d4591c583745c"
 
 [[package]]
 name = "cxxbridge-macro"
-version = "1.0.110"
+version = "1.0.115"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "587663dd5fb3d10932c8aecfe7c844db1bcf0aee93eeab08fac13dc1212c2e7f"
+checksum = "8908e380a8efd42150c017b0cfa31509fc49b6d47f7cb6b33e93ffb8f4e3661e"
 dependencies = [
- "proc-macro2 1.0.69",
- "quote 1.0.33",
- "syn 2.0.38",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -729,9 +718,9 @@ dependencies = [
 
 [[package]]
 name = "deranged"
-version = "0.3.9"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
 dependencies = [
  "powerfmt",
 ]
@@ -743,26 +732,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
 dependencies = [
  "convert_case",
- "proc-macro2 1.0.69",
- "quote 1.0.33",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
  "rustc_version",
  "syn 1.0.109",
 ]
 
 [[package]]
 name = "deunicode"
-version = "0.4.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71dbf1bf89c23e9cd1baf5e654f622872655f195b36588dc9dc38f7eda30758c"
-dependencies = [
- "deunicode 1.4.1",
-]
-
-[[package]]
-name = "deunicode"
-version = "1.4.1"
+version = "1.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a1abaf4d861455be59f64fd2b55606cb151fce304ede7165f410243ce96bde6"
+checksum = "3ae2a35373c5c74340b79ae6780b498b2b183915ec5dacf263aac5a099bf485a"
 
 [[package]]
 name = "diff"
@@ -846,8 +826,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "af36f591236d9d822425cb6896595658fa558fcebf5ee8accac1d4b92c47166e"
 dependencies = [
  "base64 0.13.1",
- "proc-macro2 1.0.69",
- "quote 1.0.33",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
  "syn 1.0.109",
 ]
 
@@ -880,9 +860,9 @@ checksum = "b5320ae4c3782150d900b79807611a59a99fc9a1d61d686faafc24b93fc8d7ca"
 
 [[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",
  "is-terminal",
@@ -899,12 +879,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
 name = "errno"
-version = "0.3.5"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
 dependencies = [
  "libc",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -980,18 +960,18 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
 name = "form_urlencoded"
-version = "1.2.0"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
 dependencies = [
  "percent-encoding",
 ]
 
 [[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",
@@ -1004,9 +984,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",
@@ -1014,15 +994,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",
@@ -1031,38 +1011,38 @@ dependencies = [
 
 [[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-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 1.0.69",
- "quote 1.0.33",
- "syn 2.0.38",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
 ]
 
 [[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",
@@ -1088,9 +1068,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.10"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if",
  "libc",
@@ -1099,30 +1079,28 @@ dependencies = [
 
 [[package]]
 name = "gimli"
-version = "0.28.0"
+version = "0.28.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
 name = "git-version"
-version = "0.3.5"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6b0decc02f4636b9ccad390dcbe77b722a77efedfa393caf8379a51d5c61899"
+checksum = "1ad568aa3db0fcbc81f2f116137f263d7304f512a1209b35b85150d3ef88ad19"
 dependencies = [
  "git-version-macro",
- "proc-macro-hack",
 ]
 
 [[package]]
 name = "git-version-macro"
-version = "0.3.5"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe69f1cbdb6e28af2bac214e943b99ce8a0a06b447d15d3e61161b0423139f3f"
+checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0"
 dependencies = [
- "proc-macro-hack",
- "proc-macro2 1.0.69",
- "quote 1.0.33",
- "syn 1.0.109",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1133,9 +1111,13 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
 name = "half"
-version = "1.8.2"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
+checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872"
+dependencies = [
+ "cfg-if",
+ "crunchy",
+]
 
 [[package]]
 name = "hashbrown"
@@ -1154,9 +1136,9 @@ dependencies = [
 
 [[package]]
 name = "hashbrown"
-version = "0.14.2"
+version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 
 [[package]]
 name = "heck"
@@ -1175,9 +1157,9 @@ dependencies = [
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.3"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f"
 
 [[package]]
 name = "humantime"
@@ -1187,9 +1169,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
 
 [[package]]
 name = "idna"
-version = "0.4.0"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
 dependencies = [
  "unicode-bidi",
  "unicode-normalization",
@@ -1208,12 +1190,12 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.0.2"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897"
+checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
 dependencies = [
  "equivalent",
- "hashbrown 0.14.2",
+ "hashbrown 0.14.3",
 ]
 
 [[package]]
@@ -1230,12 +1212,12 @@ checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8"
 
 [[package]]
 name = "inferno"
-version = "0.11.17"
+version = "0.11.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c50453ec3a6555fad17b1cd1a80d16af5bc7cb35094f64e429fd46549018c6a3"
+checksum = "321f0f839cd44a4686e9504b0a62b4d69a50b62072144c71c68f5873c167b8d9"
 dependencies = [
  "ahash",
- "indexmap 2.0.2",
+ "indexmap 2.1.0",
  "is-terminal",
  "itoa",
  "log",
@@ -1262,13 +1244,13 @@ dependencies = [
 
 [[package]]
 name = "is-terminal"
-version = "0.4.9"
+version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
+checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455"
 dependencies = [
- "hermit-abi 0.3.3",
+ "hermit-abi 0.3.4",
  "rustix",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -1291,9 +1273,9 @@ dependencies = [
 
 [[package]]
 name = "itoa"
-version = "1.0.9"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
 name = "js-sys"
@@ -1343,9 +1325,20 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libc"
-version = "0.2.149"
+version = "0.2.152"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b"
+checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
+
+[[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 = "line-wrap"
@@ -1373,9 +1366,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
 
 [[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"
@@ -1410,8 +1403,8 @@ checksum = "a1d849148dbaf9661a6151d1ca82b13bb4c4c128146a88d05253b38d4e2f496c"
 dependencies = [
  "beef",
  "fnv",
- "proc-macro2 1.0.69",
- "quote 1.0.33",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
  "regex-syntax 0.6.29",
  "syn 1.0.109",
 ]
@@ -1461,9 +1454,9 @@ dependencies = [
 
 [[package]]
 name = "mach2"
-version = "0.4.1"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d0d1830bcd151a6fc4aea1369af235b36c1528fe976b8ff678683c9995eade8"
+checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709"
 dependencies = [
  "libc",
 ]
@@ -1525,9 +1518,9 @@ dependencies = [
 
 [[package]]
 name = "memchr"
-version = "2.6.4"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "memmap2"
@@ -1548,15 +1541,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 = "metrics"
 version = "0.21.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1569,13 +1553,13 @@ dependencies = [
 
 [[package]]
 name = "metrics-macros"
-version = "0.7.0"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ddece26afd34c31585c74a4db0630c376df271c285d682d1e55012197830b6df"
+checksum = "38b4faf00617defe497754acde3024865bc143d44a86799b24e191ecff91354f"
 dependencies = [
- "proc-macro2 1.0.69",
- "quote 1.0.33",
- "syn 2.0.38",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1617,9 +1601,9 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.9"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0"
+checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
 dependencies = [
  "libc",
  "log",
@@ -1644,9 +1628,9 @@ dependencies = [
 
 [[package]]
 name = "nickel-lang-cli"
-version = "1.4.0"
+version = "1.4.1"
 dependencies = [
- "clap 4.4.7",
+ "clap 4.4.18",
  "clap_complete",
  "directories",
  "git-version",
@@ -1662,11 +1646,11 @@ dependencies = [
 
 [[package]]
 name = "nickel-lang-core"
-version = "0.4.0"
+version = "0.5.0"
 dependencies = [
  "ansi_term",
  "assert_matches",
- "clap 4.4.7",
+ "clap 4.4.18",
  "codespan",
  "codespan-reporting",
  "comrak",
@@ -1717,12 +1701,12 @@ dependencies = [
 
 [[package]]
 name = "nickel-lang-lsp"
-version = "1.4.0"
+version = "1.4.1"
 dependencies = [
  "anyhow",
  "assert_cmd",
  "assert_matches",
- "clap 4.4.7",
+ "clap 4.4.18",
  "codespan",
  "codespan-lsp",
  "codespan-reporting",
@@ -1762,7 +1746,7 @@ dependencies = [
 
 [[package]]
 name = "nickel-wasm-repl"
-version = "0.4.0"
+version = "0.5.0"
 dependencies = [
  "nickel-lang-core",
 ]
@@ -1803,24 +1787,24 @@ version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 dependencies = [
- "hermit-abi 0.3.3",
+ "hermit-abi 0.3.4",
  "libc",
 ]
 
 [[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 = [
  "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 = "onig"
@@ -1892,16 +1876,16 @@ checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall 0.4.1",
+ "redox_syscall",
  "smallvec",
  "windows-targets 0.48.5",
 ]
 
 [[package]]
 name = "percent-encoding"
-version = "2.3.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "petgraph"
@@ -1910,7 +1894,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
 dependencies = [
  "fixedbitset",
- "indexmap 2.0.2",
+ "indexmap 2.1.0",
 ]
 
 [[package]]
@@ -1936,20 +1920,20 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
 name = "pkg-config"
-version = "0.3.27"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
 
 [[package]]
 name = "plist"
-version = "1.5.1"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a4a0cfc5fb21a09dc6af4bf834cf10d4a32fccd9e2ea468c4b1751a097487aa"
+checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef"
 dependencies = [
- "base64 0.21.5",
- "indexmap 1.9.3",
+ "base64 0.21.7",
+ "indexmap 2.1.0",
  "line-wrap",
- "quick-xml 0.30.0",
+ "quick-xml 0.31.0",
  "serde",
  "time",
 ]
@@ -1984,9 +1968,9 @@ dependencies = [
 
 [[package]]
 name = "portable-atomic"
-version = "1.5.0"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b559898e0b4931ed2d3b959ab0c2da4d99cc644c4b0b1a35b4d344027f474023"
+checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
 
 [[package]]
 name = "powerfmt"
@@ -2024,13 +2008,12 @@ checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
 
 [[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",
 ]
 
@@ -2083,12 +2066,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "proc-macro-hack"
-version = "0.5.20+deprecated"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
-
-[[package]]
 name = "proc-macro2"
 version = "0.4.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2099,16 +2076,16 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.69"
+version = "1.0.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "pyckel"
-version = "1.4.0"
+version = "1.4.1"
 dependencies = [
  "codespan-reporting",
  "nickel-lang-core",
@@ -2125,7 +2102,7 @@ dependencies = [
  "cfg-if",
  "indoc 1.0.9",
  "libc",
- "memoffset 0.6.5",
+ "memoffset",
  "parking_lot",
  "pyo3-build-config",
  "pyo3-ffi",
@@ -2159,9 +2136,9 @@ version = "0.17.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "94144a1266e236b1c932682136dc35a9dee8d3589728f68130c7c3861ef96b28"
 dependencies = [
- "proc-macro2 1.0.69",
+ "proc-macro2 1.0.78",
  "pyo3-macros-backend",
- "quote 1.0.33",
+ "quote 1.0.35",
  "syn 1.0.109",
 ]
 
@@ -2171,8 +2148,8 @@ version = "0.17.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c8df9be978a2d2f0cdebabb03206ed73b11314701a5bfe71b0d753b81997777f"
 dependencies = [
- "proc-macro2 1.0.69",
- "quote 1.0.33",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
  "syn 1.0.109",
 ]
 
@@ -2203,9 +2180,9 @@ dependencies = [
 
 [[package]]
 name = "quick-xml"
-version = "0.30.0"
+version = "0.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
 dependencies = [
  "memchr",
 ]
@@ -2221,11 +2198,11 @@ dependencies = [
 
 [[package]]
 name = "quote"
-version = "1.0.33"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
- "proc-macro2 1.0.69",
+ "proc-macro2 1.0.78",
 ]
 
 [[package]]
@@ -2249,9 +2226,9 @@ dependencies = [
 
 [[package]]
 name = "rayon"
-version = "1.8.0"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
+checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051"
 dependencies = [
  "either",
  "rayon-core",
@@ -2259,9 +2236,9 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.12.0"
+version = "1.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
 dependencies = [
  "crossbeam-deque",
  "crossbeam-utils",
@@ -2269,15 +2246,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"
@@ -2287,20 +2255,20 @@ dependencies = [
 
 [[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.10.2"
+version = "1.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -2310,9 +2278,9 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.4.3"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -2363,15 +2331,15 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.21"
+version = "0.38.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3"
+checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "errno",
  "libc",
  "linux-raw-sys",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -2409,16 +2377,16 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8218eaf5d960e3c478a1b0f129fa888dd3d8d22eb3de097e9af14c1ab4438024"
 dependencies = [
- "proc-macro2 1.0.69",
- "quote 1.0.33",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
  "syn 1.0.109",
 ]
 
 [[package]]
 name = "ryu"
-version = "1.0.15"
+version = "1.0.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
 
 [[package]]
 name = "safemem"
@@ -2449,15 +2417,15 @@ checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152"
 
 [[package]]
 name = "semver"
-version = "1.0.20"
+version = "1.0.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
+checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
 
 [[package]]
 name = "serde"
-version = "1.0.190"
+version = "1.0.195"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91d3c334ca1ee894a2c6f6ad698fe8c435b76d504b13d436f0685d648d6d96f7"
+checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02"
 dependencies = [
  "serde_derive",
 ]
@@ -2475,20 +2443,20 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.190"
+version = "1.0.195"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3"
+checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c"
 dependencies = [
- "proc-macro2 1.0.69",
- "quote 1.0.33",
- "syn 2.0.38",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.107"
+version = "1.0.111"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"
+checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4"
 dependencies = [
  "itoa",
  "ryu",
@@ -2497,31 +2465,31 @@ dependencies = [
 
 [[package]]
 name = "serde_repr"
-version = "0.1.16"
+version = "0.1.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00"
+checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
 dependencies = [
- "proc-macro2 1.0.69",
- "quote 1.0.33",
- "syn 2.0.38",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
 ]
 
 [[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",
 ]
 
 [[package]]
 name = "serde_yaml"
-version = "0.9.27"
+version = "0.9.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3cc7a1570e38322cfe4154732e5110f887ea57e22b76f4bfd32b5bdd3368666c"
+checksum = "b1bf28c79a99f70ee1f1d83d10c875d2e70618417fda01ad1785e027579d9d38"
 dependencies = [
- "indexmap 2.0.2",
+ "indexmap 2.1.0",
  "itoa",
  "ryu",
  "serde",
@@ -2588,9 +2556,9 @@ dependencies = [
 
 [[package]]
 name = "similar"
-version = "2.3.0"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2aeaf503862c419d66959f5d7ca015337d864e9c49485d771b732e2a20453597"
+checksum = "32fea41aca09ee824cc9724996433064c89f7777e60762749a4170a14abbfa21"
 
 [[package]]
 name = "simple-counter"
@@ -2621,18 +2589,19 @@ dependencies = [
 
 [[package]]
 name = "slug"
-version = "0.1.4"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3bc762e6a4b6c6fcaade73e77f9ebc6991b676f88bb2358bddb56560f073373"
+checksum = "3bd94acec9c8da640005f8e135a39fc0372e74535e6b368b7a04b875f784c8c4"
 dependencies = [
- "deunicode 0.4.5",
+ "deunicode",
+ "wasm-bindgen",
 ]
 
 [[package]]
 name = "smallvec"
-version = "1.11.1"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a"
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
 
 [[package]]
 name = "stable_deref_trait"
@@ -2720,19 +2689,19 @@ version = "1.0.109"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
 dependencies = [
- "proc-macro2 1.0.69",
- "quote 1.0.33",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
  "unicode-ident",
 ]
 
 [[package]]
 name = "syn"
-version = "2.0.38"
+version = "2.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b"
+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
 dependencies = [
- "proc-macro2 1.0.69",
- "quote 1.0.33",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
  "unicode-ident",
 ]
 
@@ -2760,21 +2729,21 @@ dependencies = [
 
 [[package]]
 name = "target-lexicon"
-version = "0.12.12"
+version = "0.12.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a"
+checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae"
 
 [[package]]
 name = "tempfile"
-version = "3.8.1"
+version = "3.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
+checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
 dependencies = [
  "cfg-if",
  "fastrand",
- "redox_syscall 0.4.1",
+ "redox_syscall",
  "rustix",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -2790,9 +2759,9 @@ dependencies = [
 
 [[package]]
 name = "termcolor"
-version = "1.3.0"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
 dependencies = [
  "winapi-util",
 ]
@@ -2847,29 +2816,29 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
 
 [[package]]
 name = "thiserror"
-version = "1.0.50"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
+checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.50"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
+checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
 dependencies = [
- "proc-macro2 1.0.69",
- "quote 1.0.33",
- "syn 2.0.38",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "time"
-version = "0.3.30"
+version = "0.3.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5"
+checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e"
 dependencies = [
  "deranged",
  "itoa",
@@ -2887,9 +2856,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.2.15"
+version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20"
+checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f"
 dependencies = [
  "time-core",
 ]
@@ -2930,9 +2899,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.33.0"
+version = "1.35.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653"
+checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
 dependencies = [
  "backtrace",
  "pin-project-lite",
@@ -2941,13 +2910,13 @@ dependencies = [
 
 [[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 1.0.69",
- "quote 1.0.33",
- "syn 2.0.38",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -2977,7 +2946,7 @@ version = "0.19.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
 dependencies = [
- "indexmap 2.0.2",
+ "indexmap 2.1.0",
  "serde",
  "serde_spanned",
  "toml_datetime",
@@ -2989,7 +2958,7 @@ name = "topiary"
 version = "0.3.0"
 source = "git+https://github.com/tweag/topiary.git?rev=9ae9ef49c2fa968d15107b817864ff6627e0983e#9ae9ef49c2fa968d15107b817864ff6627e0983e"
 dependencies = [
- "clap 4.4.7",
+ "clap 4.4.18",
  "futures",
  "itertools 0.11.0",
  "log",
@@ -3031,7 +3000,7 @@ dependencies = [
 [[package]]
 name = "tree-sitter-bash"
 version = "0.20.4"
-source = "git+https://github.com/tree-sitter/tree-sitter-bash#7331995b19b8f8aba2d5e26deb51d2195c18bc94"
+source = "git+https://github.com/tree-sitter/tree-sitter-bash#f7239f638d3dc16762563a9027faeee518ce1bd9"
 dependencies = [
  "cc",
  "tree-sitter",
@@ -3097,7 +3066,7 @@ dependencies = [
 [[package]]
 name = "tree-sitter-rust"
 version = "0.20.4"
-source = "git+https://github.com/tree-sitter/tree-sitter-rust.git#79456e6080f50fc1ca7c21845794308fa5d35a51"
+source = "git+https://github.com/tree-sitter/tree-sitter-rust.git#e0e8b6de6e4aa354749c794f5f36a906dcccda74"
 dependencies = [
  "cc",
  "tree-sitter",
@@ -3132,9 +3101,9 @@ checksum = "ccb97dac3243214f8d8507998906ca3e2e0b900bf9bf4870477f125b82e68f6e"
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.13"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-ident"
@@ -3195,9 +3164,9 @@ checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b"
 
 [[package]]
 name = "url"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
 dependencies = [
  "form_urlencoded",
  "idna",
@@ -3213,9 +3182,9 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
 name = "uuid"
-version = "1.5.0"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88ad59a7560b41a70d191093a945f0b87bc1deeda46fb237479708a1d6b6cdfc"
+checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
 
 [[package]]
 name = "version_check"
@@ -3245,8 +3214,8 @@ version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff"
 dependencies = [
- "proc-macro2 1.0.69",
- "quote 1.0.33",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
 ]
 
 [[package]]
@@ -3295,8 +3264,8 @@ dependencies = [
  "bumpalo",
  "log",
  "once_cell",
- "proc-macro2 1.0.69",
- "quote 1.0.33",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
  "syn 1.0.109",
  "wasm-bindgen-shared",
 ]
@@ -3319,7 +3288,7 @@ version = "0.2.84"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
 dependencies = [
- "quote 1.0.33",
+ "quote 1.0.35",
  "wasm-bindgen-macro-support",
 ]
 
@@ -3329,8 +3298,8 @@ version = "0.2.84"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
 dependencies = [
- "proc-macro2 1.0.69",
- "quote 1.0.33",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
  "syn 1.0.109",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
@@ -3396,15 +3365,6 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "windows-sys"
-version = "0.45.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
-dependencies = [
- "windows-targets 0.42.2",
-]
-
-[[package]]
-name = "windows-sys"
 version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
@@ -3413,18 +3373,12 @@ dependencies = [
 ]
 
 [[package]]
-name = "windows-targets"
-version = "0.42.2"
+name = "windows-sys"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "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",
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
@@ -3443,10 +3397,19 @@ dependencies = [
 ]
 
 [[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.42.2"
+name = "windows-targets"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+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"
@@ -3455,10 +3418,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
-name = "windows_aarch64_msvc"
-version = "0.42.2"
+name = "windows_aarch64_gnullvm"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -3467,10 +3430,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
-name = "windows_i686_gnu"
-version = "0.42.2"
+name = "windows_aarch64_msvc"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -3479,10 +3442,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
-name = "windows_i686_msvc"
-version = "0.42.2"
+name = "windows_i686_gnu"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -3491,10 +3454,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
-name = "windows_x86_64_gnu"
-version = "0.42.2"
+name = "windows_i686_msvc"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -3503,10 +3466,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.42.2"
+name = "windows_x86_64_gnu"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -3515,10 +3478,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
-name = "windows_x86_64_msvc"
-version = "0.42.2"
+name = "windows_x86_64_gnullvm"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -3527,10 +3490,16 @@ 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 = "winnow"
-version = "0.5.17"
+version = "0.5.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3b801d0e0a6726477cc207f60162da452f3a95adb368399bef20a946e06f65c"
+checksum = "b7cf47b659b318dccbd69cc4797a39ae128f533dce7902a1096044d1967b9c16"
 dependencies = [
  "memchr",
 ]
@@ -3558,20 +3527,20 @@ checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
 
 [[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 1.0.69",
- "quote 1.0.33",
- "syn 2.0.38",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
 ]
diff --git a/pkgs/by-name/ni/nickel/package.nix b/pkgs/by-name/ni/nickel/package.nix
index 3067269cf108..76ba075b5a04 100644
--- a/pkgs/by-name/ni/nickel/package.nix
+++ b/pkgs/by-name/ni/nickel/package.nix
@@ -8,30 +8,29 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nickel";
-  version = "1.4.0";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "tweag";
     repo = "nickel";
     rev = "refs/tags/${version}";
-    hash = "sha256-YPS+Szj0T8mbcrYBdAuoQupv1x0EIq4rFS2Wk5oYVsY=";
+    hash = "sha256-VltrIGo4jXV6lDIqj+hTQQ46PJH1v9CVFOZopyi9tbM=";
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
       "topiary-0.3.0" = "sha256-1leQLRohX0iDiOOO96ETM2L3yOElW8OwR5IcrsoxfOo=";
-      "tree-sitter-bash-0.20.4" = "sha256-VP7rJfE/k8KV1XN1w5f0YKjCnDMYU1go/up0zj1mabM=";
+      "tree-sitter-bash-0.20.4" = "sha256-+Mpks0FyQLl26TX63J6WhaAl/QDUR1k9wSUY5SFwL+w=";
       "tree-sitter-facade-0.9.3" = "sha256-M/npshnHJkU70pP3I4WMXp3onlCSWM5mMIqXP45zcUs=";
-      "tree-sitter-nickel-0.1.0" = "sha256-HyHdameEgET5UXKMgw7EJvZsJxToc9Qz26XHvc5qmU0=";
-      "tree-sitter-query-0.1.0" = "sha256-5N7FT0HTK3xzzhAlk3wBOB9xlEpKSNIfakgFnsxEi18=";
       "tree-sitter-json-0.20.1" = "sha256-Msnct7JzPBIR9+PIBZCJTRdVMUzhaDTKkl3JaDUKAgo=";
+      "tree-sitter-nickel-0.1.0" = "sha256-HyHdameEgET5UXKMgw7EJvZsJxToc9Qz26XHvc5qmU0=";
       "tree-sitter-ocaml-0.20.4" = "sha256-ycmjIKfrsVSVHmPP3HCxfk5wcBIF/JFH8OnU8mY1Cc8=";
       "tree-sitter-ocamllex-0.20.2" = "sha256-YhmEE7I7UF83qMuldHqc/fD/no/7YuZd6CaAIaZ1now=";
+      "tree-sitter-query-0.1.0" = "sha256-5N7FT0HTK3xzzhAlk3wBOB9xlEpKSNIfakgFnsxEi18=";
+      "tree-sitter-rust-0.20.4" = "sha256-egTxBuliboYbl+5N6Jdt960EMLByVmLqSmQLps3rEok=";
       "tree-sitter-toml-0.5.1" = "sha256-5nLNBxFeOGE+gzbwpcrTVnuL1jLUA0ZLBVw2QrOLsDQ=";
-      "tree-sitter-rust-0.20.4" = "sha256-57CuGp7gP+AVYIR3HbMXnmmSAbtlpWrOHRYpMbmWfds=";
       "web-tree-sitter-sys-1.3.0" = "sha256-9rKB0rt0y9TD/HLRoB9LjEP9nO4kSWR9ylbbOXo2+2M=";
-
     };
   };
 
diff --git a/pkgs/by-name/ni/nightfox-gtk-theme/package.nix b/pkgs/by-name/ni/nightfox-gtk-theme/package.nix
new file mode 100644
index 000000000000..2e19c9ea50e2
--- /dev/null
+++ b/pkgs/by-name/ni/nightfox-gtk-theme/package.nix
@@ -0,0 +1,43 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, gnome-themes-extra
+, gtk-engine-murrine
+}:
+
+stdenvNoCC.mkDerivation {
+  pname = "nightfox-gtk-theme";
+  version = "unstable-2023-05-28";
+
+  src = fetchFromGitHub {
+    owner = "Fausto-Korpsvart";
+    repo = "Nightfox-GTK-Theme";
+    rev = "a8b01a28f2d1d9dd57d98d3708602b0d72340338";
+    hash = "sha256-GrlKYCqO9vgRbPdPhugPBg2rYtDxzbQwRPtTBIyIyx4=";
+  };
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  buildInputs = [
+    gnome-themes-extra
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a themes/* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A GTK theme based on the Nightfox colour palette";
+    homepage = "https://github.com/Fausto-Korpsvart/Nightfox-GTK-Theme";
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ d3vil0p3r ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/by-name/ni/nimlsp/package.nix b/pkgs/by-name/ni/nimlsp/package.nix
index 589e08290d58..78d015cc7b8f 100644
--- a/pkgs/by-name/ni/nimlsp/package.nix
+++ b/pkgs/by-name/ni/nimlsp/package.nix
@@ -2,7 +2,7 @@
 
 buildNimPackage (finalAttrs: {
   pname = "nimlsp";
-  version = "0.4.4";
+  version = "0.4.6";
 
   requiredNimVersion = 1;
 
@@ -10,7 +10,7 @@ buildNimPackage (finalAttrs: {
     owner = "PMunch";
     repo = "nimlsp";
     rev = "v${finalAttrs.version}";
-    sha256 = "sha256-Z67iKlL+dnRbxdFt/n/fsUcb2wpZwzPpL/G29jfCaMY=";
+    hash = "sha256-MCtpCx8jMQp0VXuMowh69d1DQreU5cDftBf0lww7PUM=";
   };
 
   lockFile = ./lock.json;
diff --git a/pkgs/by-name/ni/nixfmt-rfc-style/date.txt b/pkgs/by-name/ni/nixfmt-rfc-style/date.txt
new file mode 100644
index 000000000000..b3c1f63a9286
--- /dev/null
+++ b/pkgs/by-name/ni/nixfmt-rfc-style/date.txt
@@ -0,0 +1 @@
+2024-01-31
diff --git a/pkgs/by-name/ni/nixfmt-rfc-style/generated-package.nix b/pkgs/by-name/ni/nixfmt-rfc-style/generated-package.nix
new file mode 100644
index 000000000000..ac96818227ce
--- /dev/null
+++ b/pkgs/by-name/ni/nixfmt-rfc-style/generated-package.nix
@@ -0,0 +1,27 @@
+# This file has been autogenerate with cabal2nix.
+# Update via ./update.sh
+{ mkDerivation, base, cmdargs, directory, fetchzip, filepath, lib
+, megaparsec, mtl, parser-combinators, safe-exceptions, scientific
+, text, transformers, unix
+}:
+mkDerivation {
+  pname = "nixfmt";
+  version = "0.5.0";
+  src = fetchzip {
+    url = "https://github.com/piegamesde/nixfmt/archive/d6930fd0c62c4d7ec9e4a814adc3d2f590d96271.tar.gz";
+    sha256 = "1ijrdzdwricv4asmy296j7gzvhambv96nlxi3qrxb4lj1by6a34m";
+  };
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    base megaparsec mtl parser-combinators scientific text transformers
+  ];
+  executableHaskellDepends = [
+    base cmdargs directory filepath safe-exceptions text unix
+  ];
+  jailbreak = true;
+  homepage = "https://github.com/serokell/nixfmt";
+  description = "An opinionated formatter for Nix";
+  license = lib.licenses.mpl20;
+  mainProgram = "nixfmt";
+}
diff --git a/pkgs/by-name/ni/nixfmt-rfc-style/package.nix b/pkgs/by-name/ni/nixfmt-rfc-style/package.nix
new file mode 100644
index 000000000000..a11e2d29ff69
--- /dev/null
+++ b/pkgs/by-name/ni/nixfmt-rfc-style/package.nix
@@ -0,0 +1,32 @@
+{
+  haskell,
+  haskellPackages,
+  lib,
+  runCommand,
+  nixfmt-rfc-style,
+}:
+let
+  inherit (haskell.lib.compose) overrideCabal justStaticExecutables;
+
+  overrides = {
+    version = "unstable-${lib.fileContents ./date.txt}";
+
+    passthru.updateScript = ./update.sh;
+
+    maintainers = lib.teams.formatter.members;
+
+    # These tests can be run with the following command.
+    #
+    # $ nix-build -A nixfmt-rfc-style.tests
+    passthru.tests =
+      runCommand "nixfmt-rfc-style-tests" { nativeBuildInputs = [ nixfmt-rfc-style ]; }
+        ''
+          nixfmt --version > $out
+        '';
+  };
+  raw-pkg = haskellPackages.callPackage ./generated-package.nix { };
+in
+lib.pipe raw-pkg [
+  (overrideCabal overrides)
+  justStaticExecutables
+]
diff --git a/pkgs/by-name/ni/nixfmt-rfc-style/update.sh b/pkgs/by-name/ni/nixfmt-rfc-style/update.sh
new file mode 100755
index 000000000000..c70a6e88e788
--- /dev/null
+++ b/pkgs/by-name/ni/nixfmt-rfc-style/update.sh
@@ -0,0 +1,33 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p cabal2nix curl jq
+#
+# This script will update the nixfmt-rfc-style derivation to the latest version using
+# cabal2nix.
+
+set -eo pipefail
+
+# This is the directory of this update.sh script.
+script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+
+derivation_file="${script_dir}/generated-package.nix"
+date_file="${script_dir}/date.txt"
+
+# This is the latest version of nixfmt-rfc-style branch on GitHub.
+new_version=$(curl --silent https://api.github.com/repos/piegamesde/nixfmt/git/refs/heads/rfc101-style | jq '.object.sha' --raw-output)
+new_date=$(curl --silent https://api.github.com/repos/piegamesde/nixfmt/git/commits/"$new_version" | jq '.committer.date' --raw-output)
+
+echo "Updating nixfmt-rfc-style to version $new_date."
+echo "Running cabal2nix and outputting to ${derivation_file}..."
+
+cat > "$derivation_file" << EOF
+# This file has been autogenerate with cabal2nix.
+# Update via ./update.sh
+EOF
+
+cabal2nix --jailbreak \
+  "https://github.com/piegamesde/nixfmt/archive/${new_version}.tar.gz" \
+  >> "$derivation_file"
+
+date --date="$new_date" -I > "$date_file"
+
+echo "Finished."
diff --git a/pkgs/by-name/no/nomnatong/package.nix b/pkgs/by-name/no/nomnatong/package.nix
index fbbb0ad2897f..d3b9aef7ee15 100644
--- a/pkgs/by-name/no/nomnatong/package.nix
+++ b/pkgs/by-name/no/nomnatong/package.nix
@@ -7,13 +7,13 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "nomnatong";
-  version = "5.08";
+  version = "5.09";
 
   src = fetchFromGitHub {
     owner = "nomfoundation";
     repo = "font";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-WtAxnTFrgXdG2T1vqfRc31tNKbZagDSO9lycKxn8dKg=";
+    hash = "sha256-WkDvneCWuAS0/D+WUhd1F6dqpIuSAMK598mSRbNf6/8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/no/noto-fonts/package.nix b/pkgs/by-name/no/noto-fonts/package.nix
index 1d395a4faad6..1fd5bc98f7b5 100644
--- a/pkgs/by-name/no/noto-fonts/package.nix
+++ b/pkgs/by-name/no/noto-fonts/package.nix
@@ -18,13 +18,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "noto-fonts${suffix}";
-  version = "24.1.1";
+  version = "24.2.1";
 
   src = fetchFromGitHub {
     owner = "notofonts";
     repo = "notofonts.github.io";
     rev = "noto-monthly-release-${version}";
-    hash = "sha256-0KghEIuIxEP6vbAuqwA5iiVTpTpZibysIgtjOkV1un0=";
+    hash = "sha256-gOiaV1K7vYp5XguJTKRgUXJA+46p7po972XgCxV68iA=";
   };
 
   _variants = map (variant: builtins.replaceStrings [ " " ] [ "" ] variant) variants;
diff --git a/pkgs/by-name/nr/nrr/package.nix b/pkgs/by-name/nr/nrr/package.nix
new file mode 100644
index 000000000000..73c395cf00db
--- /dev/null
+++ b/pkgs/by-name/nr/nrr/package.nix
@@ -0,0 +1,40 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, darwin
+, pkg-config
+, libiconv
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "nrr";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "ryanccn";
+    repo = "nrr";
+    rev = "v${version}";
+    hash = "sha256-jkI5t+1P7Ae6MkSnyy7Ur3Z0Vt8+hWTgf6dgL5tzhY8=";
+  };
+
+  cargoHash = "sha256-9qLeFuaKAGhtyHFHOBS6HA0wAWuk0ZJppVySpMwUGYc=";
+
+  buildInputs = lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.CoreFoundation
+    darwin.apple_sdk.frameworks.Security
+    darwin.apple_sdk.frameworks.IOKit
+    libiconv
+  ];
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  meta = with lib; {
+    description = "Minimal, blazing fast Node.js script runner";
+    maintainers = with maintainers; [ ryanccn ];
+    license = licenses.gpl3Only;
+    mainProgram = "nrr";
+  };
+}
diff --git a/pkgs/by-name/nv/nvdtools/package.nix b/pkgs/by-name/nv/nvdtools/package.nix
new file mode 100644
index 000000000000..b797c50da447
--- /dev/null
+++ b/pkgs/by-name/nv/nvdtools/package.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "nvdtools";
+  version = "0.1.5";
+
+  src = fetchFromGitHub {
+    owner = "facebookincubator";
+    repo = "nvdtools";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-uB7dfqGaoP9Xx04BykscIFQ2rckaMaj93gh5mhgMqfw=";
+  };
+
+  vendorHash = "sha256-DzhP42DaddIm+/Z3a83rWX5WY+tM1P+vBNe6B91L7E8=";
+
+  ldflags = [
+    "-s"
+    "-w"
+  ];
+
+  meta = with lib; {
+    description = "Tools to work with the feeds (vulnerabilities, CPE dictionary etc.) distributed by National Vulnerability Database";
+    homepage = "https://github.com/facebookincubator/nvdtools";
+    changelog = "https://github.com/facebookincubator/nvdtools/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/by-name/nv/nvmetcfg/package.nix b/pkgs/by-name/nv/nvmetcfg/package.nix
new file mode 100644
index 000000000000..5edd436ba621
--- /dev/null
+++ b/pkgs/by-name/nv/nvmetcfg/package.nix
@@ -0,0 +1,32 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, nixosTests
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "nvmetcfg";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "vifino";
+    repo = "nvmetcfg";
+    rev = "v${version}";
+    hash = "sha256-LoQTcHM6czzQ5ZwXcklFXf/7WlRsoJTF61UhQ56aleQ=";
+  };
+
+  cargoHash = "sha256-yZ4UAx95f/cjeObBtzpiYtwDjgOgkKnD64yGe6ouVGw=";
+
+  passthru.tests = {
+    inherit (nixosTests) nvmetcfg;
+  };
+
+  meta = with lib; {
+    description = "NVMe-oF Target Configuration Utility for Linux";
+    homepage = "https://github.com/vifino/nvmetcfg";
+    license = licenses.isc;
+    maintainers = with maintainers; [ nickcao ];
+    mainProgram = "nvmetcfg";
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/oa/oam-tools/package.nix b/pkgs/by-name/oa/oam-tools/package.nix
new file mode 100644
index 000000000000..7c5d4d982749
--- /dev/null
+++ b/pkgs/by-name/oa/oam-tools/package.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "oam-tools";
+  version = "0.1.2";
+
+  src = fetchFromGitHub {
+    owner = "owasp-amass";
+    repo = "oam-tools";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-vt4V8em8Iaz3BVKIqlcAv+VIpJtD58xb3QrkIr4tYuU=";
+  };
+
+  vendorHash = "sha256-yFKYZlA06yE48Wiz0cKgD57JEREwYyYkLM1NZPV8+Xc=";
+
+  ldflags = [
+    "-s"
+    "-w"
+  ];
+
+  meta = with lib; {
+    description = "Analysis and management tools for an Open Asset Model database";
+    homepage = "https://github.com/owasp-amass/oam-tools";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/by-name/oe/oelint-adv/package.nix b/pkgs/by-name/oe/oelint-adv/package.nix
index 8eaecb420b13..d1ac3eda6df8 100644
--- a/pkgs/by-name/oe/oelint-adv/package.nix
+++ b/pkgs/by-name/oe/oelint-adv/package.nix
@@ -6,13 +6,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "oelint-adv";
-  version = "3.26.12";
+  version = "4.1.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit version;
     pname = "oelint_adv";
-    hash = "sha256-pemFy+MTBE9T/dY93rErlvWCru1TLR7X25/1+GNAFdw=";
+    hash = "sha256-uHFvVRFI7JZQ8vSOtXTuz7Jivxd8kPQW6AtiQIG3Ujo=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/by-name/of/offpunk/package.nix b/pkgs/by-name/of/offpunk/package.nix
index c3bc7424c5bb..72642b17b540 100644
--- a/pkgs/by-name/of/offpunk/package.nix
+++ b/pkgs/by-name/of/offpunk/package.nix
@@ -9,7 +9,6 @@
 , timg
 , xdg-utils
 , xsel
-,
 }:
 
 let
@@ -31,10 +30,10 @@ let
     xsel
   ];
 in
-python3Packages.buildPythonPackage rec {
+python3Packages.buildPythonApplication rec {
   pname = "offpunk";
   version = "2.1";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = python3Packages.pythonOlder "3.7";
 
@@ -55,7 +54,7 @@ python3Packages.buildPythonPackage rec {
   passthru.tests.version = testers.testVersion { package = offpunk; };
 
   meta = with lib; {
-    description = "An Offline-First browser for the smolnet ";
+    description = "A command-line and offline-first smolnet browser/feed reader";
     homepage = src.meta.homepage;
     maintainers = with maintainers; [ DamienCassou ];
     platforms = platforms.linux;
diff --git a/pkgs/by-name/on/onedrivegui/package.nix b/pkgs/by-name/on/onedrivegui/package.nix
index f2db95e7dbc2..f9d1fca67539 100644
--- a/pkgs/by-name/on/onedrivegui/package.nix
+++ b/pkgs/by-name/on/onedrivegui/package.nix
@@ -74,7 +74,7 @@ python3Packages.buildPythonApplication rec {
     makeWrapper ${python3Packages.python.interpreter} $out/bin/onedrivegui \
       --prefix PATH : ${lib.makeBinPath [ onedrive ]} \
       --prefix PYTHONPATH : ${python3Packages.makePythonPath (propagatedBuildInputs ++ [(placeholder "out")])} \
-      --add-flags $out/lib/${python3Packages.python.libPrefix}/site-packages/OneDriveGUI.py
+      --add-flags $out/${python3Packages.python.sitePackages}/OneDriveGUI.py
   '';
 
   meta = with lib; {
diff --git a/pkgs/by-name/op/openscad-unstable/package.nix b/pkgs/by-name/op/openscad-unstable/package.nix
new file mode 100644
index 000000000000..582733035d46
--- /dev/null
+++ b/pkgs/by-name/op/openscad-unstable/package.nix
@@ -0,0 +1,159 @@
+{ lib
+, clangStdenv
+, llvmPackages
+, fetchFromGitHub
+, cmake
+, ninja
+, pkg-config
+, bison
+, boost
+, cairo
+, cgal_5
+, clipper2
+, double-conversion
+, eigen
+, flex
+, fontconfig
+, freetype
+, glib
+, glm
+, gmp
+, harfbuzz
+, hidapi
+, lib3mf
+, libGL
+, libGLU
+, libICE
+, libSM
+, libsForQt5
+, libspnav
+, libzip
+, mpfr
+, python3
+, tbb_2021_8
+, wayland
+, wayland-protocols
+}:
+let
+  # get cccl from source to avoid license issues
+  nvidia-cccl = clangStdenv.mkDerivation {
+    pname = "nvidia-cccl";
+    # note that v2.2.0 has some cmake issues
+    version = "2.2.0-unstable-2024-01-26";
+    src = fetchFromGitHub {
+      owner = "NVIDIA";
+      repo = "cccl";
+      fetchSubmodules = true;
+      rev = "0c9d03276206a5f59368e908e3d643610f9fddcd";
+      hash = "sha256-f11CNfa8jF9VbzvOoX1vT8zGIJL9cZ/VBpiklUn0YdU=";
+    };
+    nativeBuildInputs = [ cmake pkg-config ];
+    buildInputs = [ tbb_2021_8 ];
+    cmakeFlags = [
+      # only enable what we need
+      "-DCCCL_ENABLE_CUB=OFF"
+      "-DCCCL_ENABLE_LIBCUDACXX=ON"
+      "-DCCCL_ENABLE_THRUST=ON"
+      "-DCCCL_ENABLE_TESTING=OFF"
+      "-DCCCL_ENABLE_EXAMPLES=OFF"
+
+      "-DTHRUST_DEVICE_SYSTEM=TBB"
+      "-DTHRUST_HOST_SYSTEM=CPP"
+      "-DTHRUST_ENABLE_HEADER_TESTING=OFF"
+      "-DTHRUST_ENABLE_TESTING=OFF"
+      "-DTHRUST_ENABLE_EXAMPLES=OFF"
+
+      "-DLIBCUDACXX_ENABLE_CUDA=OFF"
+      "-DLIBCUDACXX_ENABLE_STATIC_LIBRARY=OFF"
+      "-DLIBCUDACXX_ENABLE_LIBCUDACXX_TESTS=OFF"
+    ];
+    meta = with lib; {
+      description = "CUDA C++ Core Libraries";
+      homepage = "https://github.com/NVIDIA/cccl";
+      license = licenses.asl20;
+      platforms = platforms.unix;
+    };
+  };
+in
+# clang consume much less RAM than GCC
+clangStdenv.mkDerivation rec {
+  pname = "openscad-unstable";
+  version = "2024-01-22";
+  src = fetchFromGitHub {
+    owner = "openscad";
+    repo = "openscad";
+    rev = "88d244aed3c40a76194ff537ed84bd65bc0e1aeb";
+    hash = "sha256-qkQNbYhmOxF14zm+eCcwe9asLOEciYBANefUb8+KNEI=";
+    fetchSubmodules = true;
+  };
+  nativeBuildInputs = [
+    pkg-config
+    cmake
+    ninja
+    bison
+    flex
+    python3
+    libsForQt5.qt5.wrapQtAppsHook
+    llvmPackages.bintools
+  ];
+  buildInputs = with libsForQt5; with qt5; [
+    # manifold dependencies
+    clipper2
+    glm
+    tbb_2021_8
+    nvidia-cccl
+
+    boost
+    cairo
+    cgal_5
+    double-conversion
+    eigen
+    fontconfig
+    freetype
+    glib
+    gmp
+    harfbuzz
+    hidapi
+    lib3mf
+    libspnav
+    libzip
+    mpfr
+    qscintilla
+    qtbase
+    qtmultimedia
+  ]
+  ++ lib.optionals clangStdenv.isLinux [ libICE libSM libGLU libGL wayland wayland-protocols qtwayland ]
+  ++ lib.optional clangStdenv.isDarwin qtmacextras
+  ;
+  cmakeFlags = [
+    "-DEXPERIMENTAL=ON" # enable experimental options
+    "-DSNAPSHOT=ON" # nightly icons
+    "-DUSE_BUILTIN_OPENCSG=ON" # bundled latest opencsg
+    "-DOPENSCAD_VERSION=\"${builtins.replaceStrings ["-"] ["."] version}\""
+    "-DCMAKE_UNITY_BUILD=ON" # faster build
+    "-DENABLE_TESTS=OFF" # tests do not work for now
+    # IPO
+    "-DCMAKE_EXE_LINKER_FLAGS=-fuse-ld=lld"
+    "-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON"
+  ];
+  meta = with lib; {
+    description = "3D parametric model compiler (unstable)";
+    longDescription = ''
+      OpenSCAD is a software for creating solid 3D CAD objects. It is free
+      software and available for Linux/UNIX, MS Windows and macOS.
+
+      Unlike most free software for creating 3D models (such as the famous
+      application Blender) it does not focus on the artistic aspects of 3D
+      modelling but instead on the CAD aspects. Thus it might be the
+      application you are looking for when you are planning to create 3D models of
+      machine parts but pretty sure is not what you are looking for when you are more
+      interested in creating computer-animated movies.
+    '';
+    homepage = "https://openscad.org/";
+    # note that the *binary license* is gpl3 due to CGAL
+    license = lib.licenses.gpl3;
+    platforms = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ pca006132 raskin ];
+    mainProgram = "openscad";
+  };
+}
diff --git a/pkgs/by-name/op/openswitcher/package.nix b/pkgs/by-name/op/openswitcher/package.nix
index f8e3a5edef8e..569ed3597ea6 100644
--- a/pkgs/by-name/op/openswitcher/package.nix
+++ b/pkgs/by-name/op/openswitcher/package.nix
@@ -14,14 +14,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "openswitcher";
-  version = "0.9.1";
+  version = "0.10.0";
   format = "other";
 
   src = fetchFromSourcehut {
     owner = "~martijnbraam";
     repo = "pyatem";
     rev = version;
-    hash = "sha256-264XqBl+1qsAc5vOxJabbkubY+F72xo06WWishVEQOI=";
+    hash = "sha256-O+f1vVwfGJjLem25hsYE1Q1V4vzjrc0HxTBUCANCEwE=";
   };
 
   outputs = [
diff --git a/pkgs/by-name/op/opentelemetry-cpp/0001-Disable-tests-requiring-network-access.patch b/pkgs/by-name/op/opentelemetry-cpp/0001-Disable-tests-requiring-network-access.patch
new file mode 100644
index 000000000000..067fb7f23878
--- /dev/null
+++ b/pkgs/by-name/op/opentelemetry-cpp/0001-Disable-tests-requiring-network-access.patch
@@ -0,0 +1,79 @@
+diff --git a/ext/test/http/curl_http_test.cc b/ext/test/http/curl_http_test.cc
+index 7c66d98b..62d40f49 100644
+--- a/ext/test/http/curl_http_test.cc
++++ b/ext/test/http/curl_http_test.cc
+@@ -229,7 +229,7 @@ TEST_F(BasicCurlHttpTests, HttpResponse)
+   ASSERT_EQ(count, 4);
+ }
+ 
+-TEST_F(BasicCurlHttpTests, SendGetRequest)
++TEST_F(BasicCurlHttpTests, DISABLED_SendGetRequest)
+ {
+   received_requests_.clear();
+   auto session_manager = http_client::HttpClientFactory::Create();
+@@ -246,7 +246,7 @@ TEST_F(BasicCurlHttpTests, SendGetRequest)
+   ASSERT_TRUE(handler->got_response_);
+ }
+ 
+-TEST_F(BasicCurlHttpTests, SendPostRequest)
++TEST_F(BasicCurlHttpTests, DISABLED_SendPostRequest)
+ {
+   received_requests_.clear();
+   auto session_manager = http_client::HttpClientFactory::Create();
+@@ -325,7 +325,7 @@ TEST_F(BasicCurlHttpTests, CurlHttpOperations)
+   delete handler;
+ }
+ 
+-TEST_F(BasicCurlHttpTests, SendGetRequestSync)
++TEST_F(BasicCurlHttpTests, DISABLED_SendGetRequestSync)
+ {
+   received_requests_.clear();
+   curl::HttpClientSync http_client;
+@@ -336,7 +336,7 @@ TEST_F(BasicCurlHttpTests, SendGetRequestSync)
+   EXPECT_EQ(result.GetSessionState(), http_client::SessionState::Response);
+ }
+ 
+-TEST_F(BasicCurlHttpTests, SendGetRequestSyncTimeout)
++TEST_F(BasicCurlHttpTests, DISABLED_SendGetRequestSyncTimeout)
+ {
+   received_requests_.clear();
+   curl::HttpClientSync http_client;
+@@ -350,7 +350,7 @@ TEST_F(BasicCurlHttpTests, SendGetRequestSyncTimeout)
+               result.GetSessionState() == http_client::SessionState::SendFailed);
+ }
+ 
+-TEST_F(BasicCurlHttpTests, SendPostRequestSync)
++TEST_F(BasicCurlHttpTests, DISABLED_SendPostRequestSync)
+ {
+   received_requests_.clear();
+   curl::HttpClientSync http_client;
+@@ -378,7 +378,7 @@ TEST_F(BasicCurlHttpTests, GetBaseUri)
+             "http://127.0.0.1:31339/");
+ }
+ 
+-TEST_F(BasicCurlHttpTests, SendGetRequestAsync)
++TEST_F(BasicCurlHttpTests, DISABLED_SendGetRequestAsync)
+ {
+   curl::HttpClient http_client;
+ 
+@@ -452,7 +452,7 @@ TEST_F(BasicCurlHttpTests, SendGetRequestAsyncTimeout)
+   }
+ }
+ 
+-TEST_F(BasicCurlHttpTests, SendPostRequestAsync)
++TEST_F(BasicCurlHttpTests, DISABLED_SendPostRequestAsync)
+ {
+   curl::HttpClient http_client;
+ 
+@@ -491,7 +491,7 @@ TEST_F(BasicCurlHttpTests, SendPostRequestAsync)
+   }
+ }
+ 
+-TEST_F(BasicCurlHttpTests, FinishInAsyncCallback)
++TEST_F(BasicCurlHttpTests, DISABLED_FinishInAsyncCallback)
+ {
+   curl::HttpClient http_client;
+ 
+-- 
+2.40.1
+
diff --git a/pkgs/by-name/op/opentelemetry-cpp/0002-Disable-segfaulting-test-on-Darwin.patch b/pkgs/by-name/op/opentelemetry-cpp/0002-Disable-segfaulting-test-on-Darwin.patch
new file mode 100644
index 000000000000..84c125b8b96e
--- /dev/null
+++ b/pkgs/by-name/op/opentelemetry-cpp/0002-Disable-segfaulting-test-on-Darwin.patch
@@ -0,0 +1,16 @@
+diff --git a/api/test/singleton/singleton_test.cc b/api/test/singleton/singleton_test.cc
+index 187e26f..ddbe29f 100644
+--- a/api/test/singleton/singleton_test.cc
++++ b/api/test/singleton/singleton_test.cc
+@@ -306,7 +306,7 @@ void cleanup_otel()
+   trace_api::Provider::SetTracerProvider(provider);
+ }
+ 
+-TEST(SingletonTest, Uniqueness)
++TEST(SingletonTest, DISABLED_Uniqueness)
+ {
+   do_something();
+ 
+-- 
+2.42.0
+
diff --git a/pkgs/by-name/op/opentelemetry-cpp/package.nix b/pkgs/by-name/op/opentelemetry-cpp/package.nix
new file mode 100644
index 000000000000..5bc1a46ad6ce
--- /dev/null
+++ b/pkgs/by-name/op/opentelemetry-cpp/package.nix
@@ -0,0 +1,79 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, gtest
+, protobuf
+, curl
+, grpc
+, prometheus-cpp
+, nlohmann_json
+, nix-update-script
+}:
+
+let
+  opentelemetry-proto = fetchFromGitHub {
+    owner = "open-telemetry";
+    repo = "opentelemetry-proto";
+    rev = "v1.0.0";
+    hash = "sha256-1IylAZs8gElpruSX52A+ZopU8jXH/MjRE+FQV3gQ+Gk=";
+  };
+in
+stdenv.mkDerivation (finalAttrs: {
+  pname = "opentelemetry-cpp";
+  version = "1.13.0";
+
+  src = fetchFromGitHub {
+    owner = "open-telemetry";
+    repo = "opentelemetry-cpp";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-Tf1ZnmHavnwwvRb4Tes20LMld+w/2kRo5UErT8pHf3w=";
+  };
+
+  patches = [
+    ./0001-Disable-tests-requiring-network-access.patch
+  ] ++ lib.optional stdenv.isDarwin ./0002-Disable-segfaulting-test-on-Darwin.patch;
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [
+    curl
+    grpc
+    nlohmann_json
+    prometheus-cpp
+    protobuf
+  ];
+
+  doCheck = true;
+
+  checkInputs = [
+    gtest
+  ];
+
+  strictDeps = true;
+
+  cmakeFlags = [
+    "-DBUILD_SHARED_LIBS=ON"
+    "-DWITH_OTLP_HTTP=ON"
+    "-DWITH_OTLP_GRPC=ON"
+    "-DWITH_ABSEIL=ON"
+    "-DWITH_PROMETHEUS=ON"
+    "-DWITH_ELASTICSEARCH=ON"
+    "-DWITH_ZIPKIN=ON"
+    "-DWITH_BENCHMARK=OFF"
+    "-DOTELCPP_PROTO_PATH=${opentelemetry-proto}"
+  ];
+
+  outputs = [ "out" "dev" ];
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "The OpenTelemetry C++ Client Library";
+    homepage = "https://github.com/open-telemetry/opentelemetry-cpp";
+    license = [ lib.licenses.asl20 ];
+    maintainers = with lib.maintainers; [ jfroche ];
+    # https://github.com/protocolbuffers/protobuf/issues/14492
+    broken = !(stdenv.buildPlatform.canExecute stdenv.hostPlatform);
+  };
+})
diff --git a/pkgs/by-name/or/ory/package.nix b/pkgs/by-name/or/ory/package.nix
index 9c1aff24e6fd..b5ba89d2dd14 100644
--- a/pkgs/by-name/or/ory/package.nix
+++ b/pkgs/by-name/or/ory/package.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "ory";
-  version = "0.2.2";
+  version = "0.3.2";
 
   src = fetchFromGitHub {
     owner = "ory";
     repo = "cli";
     rev = "refs/tags/v${version}";
-    hash = "sha256-5N69/Gv4eYLbZNN+sEx+RcFyhGCT0hUxDCje1qrbWiY=";
+    hash = "sha256-o5ii8+tQzVcoIgTHQ9nnGJf2VKhWhL+osbAKPB7esDA=";
   };
 
   nativeBuildInputs = [
@@ -23,7 +23,7 @@ buildGoModule rec {
     "sqlite"
   ];
 
-  vendorHash = "sha256-J9jyeLIT+1pFnHOUHrzmblVCJikvY05Sw9zMz5qaDOk=";
+  vendorHash = "sha256-iUPZbeCZ08iDf8+u2CoVH1yN2JyBqQjeS3dAKUMyX9Y=";
 
   postInstall = ''
     mv $out/bin/cli $out/bin/ory
@@ -36,8 +36,8 @@ buildGoModule rec {
   meta = with lib; {
     mainProgram = "ory";
     description = "The Ory CLI";
-    homepage = "https://www.ory.sh/";
+    homepage = "https://www.ory.sh/cli";
     license = licenses.asl20;
-    maintainers = with maintainers; [ luleyleo ];
+    maintainers = with maintainers; [ luleyleo nicolas-goudry ];
   };
 }
diff --git a/pkgs/by-name/ot/oterm/package.nix b/pkgs/by-name/ot/oterm/package.nix
index 132259eb5fbe..bb4e829b3397 100644
--- a/pkgs/by-name/ot/oterm/package.nix
+++ b/pkgs/by-name/ot/oterm/package.nix
@@ -5,14 +5,19 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "oterm";
-  version = "0.1.18";
+  version = "0.1.22";
   pyproject = true;
   src = fetchFromGitHub {
     owner = "ggozad";
     repo = "oterm";
     rev = "refs/tags/${version}";
-    hash = "sha256-hog0oEiZMxM3lM3xFZ+c15OTOwGXZ97FmG4PpyA94Ys=";
+    hash = "sha256-hRbPlRuwM3NspTNd3mPhVxPJl8zA9qyFwDGNKH3Slag=";
   };
+
+  pythonRelaxDeps = [
+    "pillow"
+  ];
+
   propagatedBuildInputs = with python3Packages; [
     textual
     typer
@@ -23,8 +28,18 @@ python3Packages.buildPythonApplication rec {
     pyperclip
     packaging
     rich-pixels
+    pillow
+    aiohttp
+  ];
+
+  nativeBuildInputs = with python3Packages; [
+    poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  pythonImportsCheck = [
+    "oterm"
   ];
-  nativeBuildInputs = with python3Packages; [ poetry-core ];
 
   # Tests require a HTTP connection to ollama
   doCheck = false;
diff --git a/pkgs/by-name/pa/paper-age/package.nix b/pkgs/by-name/pa/paper-age/package.nix
index d15954fd6b2b..cb8c0e3bdeec 100644
--- a/pkgs/by-name/pa/paper-age/package.nix
+++ b/pkgs/by-name/pa/paper-age/package.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "paper-age";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     owner = "matiaskorhonen";
     repo = "paper-age";
     rev = "v${version}";
-    hash = "sha256-7dd1R41CDgkpFI8fUWCJfgz3lr22IjWQYW6vRYEFidc=";
+    hash = "sha256-JlmiHnST/UnN4WsiDqSva+01odoc5h/J/mlGN3K0OfI=";
   };
 
-  cargoHash = "sha256-IJDV0dmOsA9gbVKGfPsN3TKJbox3JTNxldArQK6GPt8=";
+  cargoHash = "sha256-zdq036ag7+mvWg4OJHtbltPlF9j49dCPNJjgVQcQ+u4=";
 
   meta = with lib; {
     description = "Easy and secure paper backups of secrets";
diff --git a/pkgs/by-name/pa/paper-clip/package.nix b/pkgs/by-name/pa/paper-clip/package.nix
new file mode 100644
index 000000000000..bd1d78b8e4c4
--- /dev/null
+++ b/pkgs/by-name/pa/paper-clip/package.nix
@@ -0,0 +1,54 @@
+{ lib
+, desktop-file-utils
+, exempi
+, fetchFromGitHub
+, glib
+, gtk4
+, libadwaita
+, meson
+, ninja
+, pkg-config
+, poppler
+, stdenv
+, vala
+, wrapGAppsHook4
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "paper-clip";
+  version = "5.0";
+
+  src = fetchFromGitHub {
+    owner = "Diego-Ivan";
+    repo = "Paper-Clip";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-lkPX8S/0e7qEAfRiq0MyacDrqSWllncd9STxR7NKUFw=";
+  };
+
+  nativeBuildInputs = [
+    desktop-file-utils
+    meson
+    ninja
+    pkg-config
+    vala
+    wrapGAppsHook4
+  ];
+
+  buildInputs = [
+    exempi
+    glib
+    gtk4
+    libadwaita
+    poppler
+  ];
+
+  meta = with lib; {
+    changelog = "https://github.com/Diego-Ivan/Paper-Clip/releases/tag/v${finalAttrs.version}";
+    description = "Edit PDF document metadata";
+    homepage = "https://github.com/Diego-Ivan/Paper-Clip";
+    license = licenses.gpl3Plus;
+    mainProgram = "pdf-metadata-editor";
+    maintainers = with maintainers; [ michaelgrahamevans ];
+    platforms = platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/pa/parabolic/deps.nix b/pkgs/by-name/pa/parabolic/deps.nix
new file mode 100644
index 000000000000..898fd49dac40
--- /dev/null
+++ b/pkgs/by-name/pa/parabolic/deps.nix
@@ -0,0 +1,52 @@
+# This file was automatically generated by passthru.fetch-deps.
+# Please dont edit it manually, your changes might get overwritten!
+
+{ fetchNuGet }: [
+  (fetchNuGet { pname = "Ace4896.DBus.Services.Secrets"; version = "1.2.0"; sha256 = "1i1rwv8z2dx0mjib7vair2w7ylngmrcpbd012sdlpvdjpx0af0bn"; })
+  (fetchNuGet { pname = "Cake.Tool"; version = "4.0.0"; sha256 = "11vc5fimi6w465081sqxs4zhw7grr6v8ga7nl1mscdl43wv33ql2"; })
+  (fetchNuGet { pname = "GetText.NET"; version = "1.9.14"; sha256 = "18z4cf0dldcf41z8xgj3gdlvj9w5a9ikgj72623r0i740ndnl094"; })
+  (fetchNuGet { pname = "GirCore.Adw-1"; version = "0.5.0-preview.3"; sha256 = "090kg5v99myd7hi49cz933cl36hk5n586ywy78gf5djn5im3v19l"; })
+  (fetchNuGet { pname = "GirCore.Cairo-1.0"; version = "0.5.0-preview.3"; sha256 = "0bh1h2hr6givrq6096bvzcsg4lab1hlm7r7h4bqifbw0zmmcfb7k"; })
+  (fetchNuGet { pname = "GirCore.FreeType2-2.0"; version = "0.5.0-preview.3"; sha256 = "194p44gd7r69x70j3qynv5v8awlyxmdazmzpwzgj5ayy2xpdk3hy"; })
+  (fetchNuGet { pname = "GirCore.Gdk-4.0"; version = "0.5.0-preview.3"; sha256 = "09p097nvs7vi7l14l024m39qyhg1gyqihanq7zv66xqys4hzim1g"; })
+  (fetchNuGet { pname = "GirCore.GdkPixbuf-2.0"; version = "0.5.0-preview.3"; sha256 = "0lspyra1g1rd8hj3f3daxspin5dhgplzgjh4jwhlgzzn648942j0"; })
+  (fetchNuGet { pname = "GirCore.Gio-2.0"; version = "0.5.0-preview.3"; sha256 = "090svrddgpliks5r29yncih3572w7gdc552nl16qbviqbmhr0lbs"; })
+  (fetchNuGet { pname = "GirCore.GLib-2.0"; version = "0.5.0-preview.3"; sha256 = "1wxwf24gabd69yxpnhv30rn7pcv49w885jdw3nqbrakl7pvv9fza"; })
+  (fetchNuGet { pname = "GirCore.GObject-2.0"; version = "0.5.0-preview.3"; sha256 = "0iajydyx79f3khx0fhv8izbxlzxwn6gpps2xzmi9c4v98ly221j3"; })
+  (fetchNuGet { pname = "GirCore.Graphene-1.0"; version = "0.5.0-preview.3"; sha256 = "114fbgxils50jdy891nwj70yr43lnwgbq9fzxqzywd1kk70k7mww"; })
+  (fetchNuGet { pname = "GirCore.Gsk-4.0"; version = "0.5.0-preview.3"; sha256 = "0f5s6f6pwc9vc3nm7xfaa06z2klgpg4rv5cdf0cwis3vlncd7dnj"; })
+  (fetchNuGet { pname = "GirCore.Gtk-4.0"; version = "0.5.0-preview.3"; sha256 = "1fn0b8lwlrmjm9phjq4amqnq3q70fl214115652cap5rz4rjmpgg"; })
+  (fetchNuGet { pname = "GirCore.HarfBuzz-0.0"; version = "0.5.0-preview.3"; sha256 = "0xska2l44l0j38mlgmrwly1qal9wzbv2w2jjj8gn90sxbygb8zky"; })
+  (fetchNuGet { pname = "GirCore.Pango-1.0"; version = "0.5.0-preview.3"; sha256 = "0ccw3bd3kl24mnxbjzhya11i0ln6g1g7q876pyy54cwh48x4mdia"; })
+  (fetchNuGet { pname = "GirCore.PangoCairo-1.0"; version = "0.5.0-preview.3"; sha256 = "0lds340p5cci7sjp58nh94jxkjvzfky9cbs2h4q98hglxndjm7r9"; })
+  (fetchNuGet { pname = "Markdig"; version = "0.33.0"; sha256 = "1dj06wgdqmjji4nfr1dysz7hwp5bjgsrk9qjkdq82d7gk6nmhs9r"; })
+  (fetchNuGet { pname = "Meziantou.Framework.Win32.CredentialManager"; version = "1.4.5"; sha256 = "1ikjxj6wir2jcjwlmd4q7zz0b4g40808gx59alvad31sb2aqp738"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; })
+  (fetchNuGet { pname = "Microsoft.Data.Sqlite.Core"; version = "8.0.0"; sha256 = "05qjnzk1fxybks92y93487l3mj5nghjcwiy360xjgk3jykz3rv39"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "5.0.0"; sha256 = "0z3qyv7qal5irvabc8lmkh58zsl42mrzd1i0sssvzhv4q4kl3cg6"; })
+  (fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "8.0.0"; sha256 = "05392f41ijgn17y8pbjcx535l1k09krnq3xdp60kyq568sn6xk2i"; })
+  (fetchNuGet { pname = "Nickvision.Aura"; version = "2023.11.4"; sha256 = "0gasyglp1pgi0s6zqzmbm603j3j36vvr68grv6g93fdj2vjlmkxs"; })
+  (fetchNuGet { pname = "Octokit"; version = "9.0.0"; sha256 = "0kw49w1hxk4d2x9598012z9q1yr3ml5rm06fy1jnmhy44s3d3jp5"; })
+  (fetchNuGet { pname = "pythonnet"; version = "3.0.3"; sha256 = "0qnivddg13vi1fb22z3krsj1gczyyfd56nmk6gas6qrwlxdzhriv"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.bundle_e_sqlcipher"; version = "2.1.6"; sha256 = "15v2x7y4k7cl47a9jccbvgbwngwi5dz6qhv0cxpcasx4v5i9aila"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.core"; version = "2.1.6"; sha256 = "1w8zsgz2w2q0a9cw9cl1rzrpv48a04nhyq67ywan6xlgknds65a7"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.lib.e_sqlcipher"; version = "2.1.6"; sha256 = "0dl5an15whs4yl5hm2wibzbfigzck0flah8a07k99y1bhbmv080z"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.provider.e_sqlcipher"; version = "2.1.6"; sha256 = "1jx8d4dq5w2951b7w722gnxbfgdklwazc48kcbdzylkglwkrqgrq"; })
+  (fetchNuGet { pname = "System.CodeDom"; version = "8.0.0"; sha256 = "0zyzd15v0nf8gla7nz243m1kff8ia6vqp471i3g7xgawgj5n21dv"; })
+  (fetchNuGet { pname = "System.Drawing.Common"; version = "8.0.0"; sha256 = "1j4rsm36bnwqmh5br9mzmj0ikjnc39k26q6l9skjlrnw8hlngwy4"; })
+  (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
+  (fetchNuGet { pname = "System.IO.Pipelines"; version = "6.0.0"; sha256 = "08211lvckdsdbd67xz4f6cyk76cli565j0dby1grlc4k9bhwby65"; })
+  (fetchNuGet { pname = "System.Management"; version = "8.0.0"; sha256 = "1zbwj6ii8axa4w8ymjzi9d9pj28nhswygahyqppvzaxypw6my2hz"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.5"; sha256 = "08jsfwimcarfzrhlyvjjid61j02irx6xsklf32rv57x2aaikvx0h"; })
+  (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
+  (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
+  (fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
+  (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
+  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
+  (fetchNuGet { pname = "Tmds.DBus"; version = "0.15.0"; sha256 = "1bz5j6wfp9hn4fg5vjxl6mr9lva4gx6zqncqyqxrcb8lw7hvhwc6"; })
+  (fetchNuGet { pname = "Tmds.DBus.Protocol"; version = "0.15.0"; sha256 = "0d99kcs7r9cp6gpyc7z230czkkyx4164x86dhy0mca73f2ykc2g2"; })
+]
diff --git a/pkgs/by-name/pa/parabolic/package.nix b/pkgs/by-name/pa/parabolic/package.nix
new file mode 100644
index 000000000000..397bc3004a45
--- /dev/null
+++ b/pkgs/by-name/pa/parabolic/package.nix
@@ -0,0 +1,77 @@
+{ lib
+, buildDotnetModule
+, fetchFromGitHub
+, dotnetCorePackages
+, gtk4
+, libadwaita
+, pkg-config
+, wrapGAppsHook4
+, glib
+, shared-mime-info
+, gdk-pixbuf
+, blueprint-compiler
+, python3
+, ffmpeg
+}:
+
+buildDotnetModule rec {
+  pname = "parabolic";
+  version = "2023.12.0";
+
+  src = fetchFromGitHub {
+    owner = "NickvisionApps";
+    repo = "Parabolic";
+    rev = version;
+    hash = "sha256-mbGByw/wgovo81l2LDtDE5p+Mh6aJ5DOcZCNzVfmAtA=";
+    fetchSubmodules = true;
+  };
+
+  dotnet-sdk = dotnetCorePackages.sdk_8_0;
+  dotnet-runtime = dotnetCorePackages.runtime_8_0;
+  pythonEnv = python3.withPackages(ps: with ps; [ yt-dlp ]);
+
+  projectFile = "NickvisionTubeConverter.GNOME/NickvisionTubeConverter.GNOME.csproj";
+  nugetDeps = ./deps.nix;
+  executables = "NickvisionTubeConverter.GNOME";
+
+   nativeBuildInputs = [
+    pkg-config
+    wrapGAppsHook4
+    glib
+    shared-mime-info
+    gdk-pixbuf
+    blueprint-compiler
+  ];
+
+  buildInputs = [ gtk4 libadwaita ];
+
+  runtimeDeps = [
+    gtk4
+    libadwaita
+    glib
+    gdk-pixbuf
+  ];
+
+  postPatch = ''
+    substituteInPlace NickvisionTubeConverter.Shared/Linux/org.nickvision.tubeconverter.desktop.in --replace '@EXEC@' "NickvisionTubeConverter.GNOME"
+  '';
+
+  postInstall = ''
+    install -Dm444 NickvisionTubeConverter.Shared/Resources/org.nickvision.tubeconverter.svg -t $out/share/icons/hicolor/scalable/apps/
+    install -Dm444 NickvisionTubeConverter.Shared/Resources/org.nickvision.tubeconverter-symbolic.svg -t $out/share/icons/hicolor/symbolic/apps/
+    install -Dm444 NickvisionTubeConverter.Shared/Linux/org.nickvision.tubeconverter.desktop.in -T $out/share/applications/org.nickvision.tubeconverter.desktop
+  '';
+
+  makeWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ pythonEnv ffmpeg ]}" ];
+
+  passthru.updateScript = ./update.sh;
+
+  meta = with lib; {
+    description = "Download web video and audio";
+    homepage = "https://github.com/NickvisionApps/Parabolic";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ewuuwe ];
+    mainProgram = "parabolic";
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/pa/parabolic/update.sh b/pkgs/by-name/pa/parabolic/update.sh
new file mode 100755
index 000000000000..798dba869403
--- /dev/null
+++ b/pkgs/by-name/pa/parabolic/update.sh
@@ -0,0 +1,18 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -I nixpkgs=./. -i bash -p curl jq common-updater-scripts
+#shellcheck shell=bash
+
+set -eu -o pipefail
+
+version=$(curl -s ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} \
+    https://api.github.com/repos/NickvisionApps/Parabolic/releases/latest | jq -e -r .tag_name)
+old_version=$(nix-instantiate --eval -A parabolic.version | jq -e -r)
+
+if [[ $version == "$old_version" ]]; then
+    echo "New version same as old version, nothing to do." >&2
+    exit 0
+fi
+
+update-source-version parabolic "$version"
+
+$(nix-build -A parabolic.fetch-deps --no-out-link) "$(dirname -- "${BASH_SOURCE[0]}")/deps.nix"
diff --git a/pkgs/by-name/pa/paralus-cli/package.nix b/pkgs/by-name/pa/paralus-cli/package.nix
new file mode 100644
index 000000000000..81ef70de32f7
--- /dev/null
+++ b/pkgs/by-name/pa/paralus-cli/package.nix
@@ -0,0 +1,40 @@
+{ lib
+, fetchFromGitHub
+, buildGoModule
+, paralus-cli
+, testers
+}:
+
+buildGoModule rec {
+  pname = "paralus-cli";
+  version = "0.1.5";
+
+  src = fetchFromGitHub {
+    repo = "cli";
+    owner = "paralus";
+    rev = "v${version}";
+    hash = "sha256-cVrT8wU9MJgc/hzMVe1b0lzm7f+0Prv9w1IjMOAh69E=";
+  };
+
+  vendorHash = "sha256-fO+armn5V/dXQfx8fdavohiiutHGGQ/5mRENfDNHCY8=";
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X main.version=${version}"
+    "-X main.buildNum=${version}"
+  ];
+
+  meta = with lib; {
+    description = "Command Line Interface tool for Paralus";
+    longDescription = ''
+      Paralus is a free, open source tool that enables controlled, audited access to Kubernetes infrastructure.
+      It comes with just-in-time service account creation and user-level credential management that integrates
+      with your RBAC and SSO. Ships as a GUI, API, and CLI.
+    '';
+    homepage = "https://www.paralus.io/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ kashw2 ];
+    mainProgram = "paralus";
+  };
+}
diff --git a/pkgs/by-name/pa/parsify/package.nix b/pkgs/by-name/pa/parsify/package.nix
new file mode 100644
index 000000000000..b02c6c3ae0a4
--- /dev/null
+++ b/pkgs/by-name/pa/parsify/package.nix
@@ -0,0 +1,36 @@
+{ lib
+, appimageTools
+, fetchurl
+}:
+
+appimageTools.wrapType2 rec {
+  pname = "parsify";
+  version = "2.0.1";
+
+  src = fetchurl {
+    url = "https://github.com/parsify-dev/desktop/releases/download/v${version}/Parsify-${version}-linux-x86_64.AppImage";
+    hash = "sha256-ltWqRW+cBvuUJzhya62WsBY5zqIua9xhilxfd9gr24A=";
+  };
+
+  extraInstallCommands =
+  let contents = appimageTools.extract { inherit pname version src; };
+  in ''
+    mv $out/bin/${pname}-${version} $out/bin/${pname}
+
+    install -m 444 -D ${contents}/@parsifydesktop.desktop -t $out/share/applications
+
+    substituteInPlace $out/share/applications/@parsifydesktop.desktop \
+      --replace "Exec=AppRun" "Exec=${pname}"
+
+    cp -r ${contents}/usr/share/* $out/share
+  '';
+
+  meta = with lib; {
+    description = "Next generation notepad-based calculator, built with extendibility and privacy in mind";
+    homepage = "https://parsify.app/";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ kashw2 ];
+    platforms = platforms.linux;
+    mainProgram = "parsify";
+  };
+}
diff --git a/pkgs/by-name/pa/passdetective/package.nix b/pkgs/by-name/pa/passdetective/package.nix
new file mode 100644
index 000000000000..2e921beb8c7d
--- /dev/null
+++ b/pkgs/by-name/pa/passdetective/package.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "passdetective";
+  version = "1.0.7";
+
+  src = fetchFromGitHub {
+    owner = "aydinnyunus";
+    repo = "PassDetective";
+    rev = version;
+    hash = "sha256-ln+nKESCYNQwTB6njNQBNUGmF+NXqgzmM1sb/d6ZBcU=";
+  };
+
+  vendorHash = "sha256-4FF0aQiuVN382RBCYI7SpoB8U8MZoXTomuFEvcbcREg=";
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-extldflags"
+    "-static"
+    "-X=main.build=${version}"
+  ];
+
+  meta = with lib; {
+    description = "Scans command history to detect mistakenly written passwords, API keys, and secrets";
+    homepage = "https://github.com/aydinnyunus/PassDetective";
+    changelog = "https://github.com/aydinnyunus/PassDetective/releases/tag/${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ octodi ];
+    mainProgram = "PassDetective";
+  };
+}
diff --git a/pkgs/by-name/pd/pdfannots2json/package.nix b/pkgs/by-name/pd/pdfannots2json/package.nix
new file mode 100644
index 000000000000..01c30fe1fb52
--- /dev/null
+++ b/pkgs/by-name/pd/pdfannots2json/package.nix
@@ -0,0 +1,25 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+let
+  pname = "pdfannots2json";
+  version = "1.0.16";
+in
+  buildGoModule {
+    inherit pname version;
+
+    src = fetchFromGitHub {
+      owner = "mgmeyers";
+      repo = "pdfannots2json";
+      rev = "refs/tags/${version}";
+      sha256 = "sha256-qk4OSws/6SevN/Q0lsyxw+fZkm2uy1WwOYYL7CB7QUk=";
+    };
+
+    vendorHash = null;
+
+    meta = with lib; {
+      homepage = "https://github.com/mgmeyers/pdfannots2json";
+      license = licenses.agpl3;
+      description = "A tool to convert PDF annotations to JSON";
+      maintainers = with maintainers; [ _0nyr ];
+    };
+  }
diff --git a/pkgs/by-name/pe/persistent-cache-cpp/package.nix b/pkgs/by-name/pe/persistent-cache-cpp/package.nix
index c7d212a477af..7c6ef4e04c4e 100644
--- a/pkgs/by-name/pe/persistent-cache-cpp/package.nix
+++ b/pkgs/by-name/pe/persistent-cache-cpp/package.nix
@@ -12,17 +12,18 @@
 , lomiri
 , pkg-config
 , python3
+, validatePkgConfig
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "persistent-cache-cpp";
-  version = "1.0.6";
+  version = "1.0.7";
 
   src = fetchFromGitLab {
     owner = "ubports";
     repo = "development/core/lib-cpp/persistent-cache-cpp";
     rev = finalAttrs.version;
-    hash = "sha256-RLZiYY0Y9LT+ajM4Va4MpVVDBlu2yvCpn8bNGMB8ydo=";
+    hash = "sha256-bOABrRSy5Mzeaqoc5ujcGXyBAaCJLv/488M7fkr0npE=";
   };
 
   outputs = [
@@ -32,38 +33,22 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   patches = [
-    # Version in CMakeLists.txt didn't get bumped, emits wrong version in pkg-config
-    # Remove when https://gitlab.com/ubports/development/core/lib-cpp/persistent-cache-cpp/-/merge_requests/13 merged & in release
-    (fetchpatch {
-      name = "0001-persistent-cache-cpp-CMakeLists-txt-Update-version.patch";
-      url = "https://gitlab.com/OPNA2608/persistent-cache-cpp/-/commit/20d5d3f61563c62bcbe85e71ddc4fe16d7c995d5.patch";
-      hash = "sha256-BKovtT9OvV+xEwBO8AZTxAzL9kqyDB9ip32t2Xx4eIk=";
-    })
-
     # PersistentStringCacheImpl.exceptions test fails on LLVM's libcxx, it depends on std::system_error producing a very specific exception text
     # Expects "Unknown error 666", gets "unspecified generic_category error"
     # Remove when https://gitlab.com/ubports/development/core/lib-cpp/persistent-cache-cpp/-/merge_requests/14 merged & in release
     (fetchpatch {
-      name = "0002-persistent-cache-cpp-persistent_string_cache_impl_test-libcxx-fix.patch";
-      url = "https://gitlab.com/OPNA2608/persistent-cache-cpp/-/commit/a696dbd3093b8333f9ee1f0cad846b2256c729c5.patch";
+      name = "0001-persistent-cache-cpp-persistent_string_cache_impl_test-libcxx-fix.patch";
+      url = "https://gitlab.com/ubports/development/core/lib-cpp/persistent-cache-cpp/-/commit/a696dbd3093b8333f9ee1f0cad846b2256c729c5.patch";
       hash = "sha256-SJxdXeM7W+WKEmiLTwnQYAM7YmPayEk6vPb46y4thv4=";
     })
 
     # Enable usage of BUILD_TESTING to opting out of tests
     # Remove when https://gitlab.com/ubports/development/core/lib-cpp/persistent-cache-cpp/-/merge_requests/15 merged & in release
     (fetchpatch {
-      name = "0003-persistent-cache-cpp-Enable-opting-out-of-tests.patch";
-      url = "https://gitlab.com/OPNA2608/persistent-cache-cpp/-/commit/1fb06d28c16325e90046e93662c0f5fd16c29b4a.patch";
+      name = "0002-persistent-cache-cpp-Enable-opting-out-of-tests.patch";
+      url = "https://gitlab.com/ubports/development/core/lib-cpp/persistent-cache-cpp/-/commit/1fb06d28c16325e90046e93662c0f5fd16c29b4a.patch";
       hash = "sha256-2/6EYBh71S4dzqWEde+3dLOGp015fN6IifAj1bI1XAI=";
     })
-
-    # Enable linking based on stdenv (static or dynamic)
-    # Remove when https://gitlab.com/ubports/development/core/lib-cpp/persistent-cache-cpp/-/merge_requests/16 merged & in release
-    (fetchpatch {
-      name = "0004-persistent-cache-cpp-Un-hardcode-static-linking.patch";
-      url = "https://gitlab.com/OPNA2608/persistent-cache-cpp/-/commit/45cd84fe76e3a0e1da41a662df695009a6f4f07e.patch";
-      hash = "sha256-1UjdhzrjnIUO1ySaZTm0vkdNgok0RNlGtNOWUoAUlzU=";
-    })
   ];
 
   postPatch = ''
@@ -82,14 +67,12 @@ stdenv.mkDerivation (finalAttrs: {
     cmake
     doxygen
     pkg-config
+    validatePkgConfig
   ];
 
   buildInputs = [
     boost
     lomiri.cmake-extras
-  ];
-
-  propagatedBuildInputs = [
     leveldb
   ];
 
@@ -104,6 +87,7 @@ stdenv.mkDerivation (finalAttrs: {
   cmakeFlags = [
     # error: 'old_version' may be used uninitialized
     (lib.cmakeBool "Werror" false)
+    # Defaults to static if not set
     (lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic))
   ];
 
@@ -121,6 +105,7 @@ stdenv.mkDerivation (finalAttrs: {
       image files) that is fast, scalable, and crash-proof.
     '';
     homepage = "https://gitlab.com/ubports/development/core/lib-cpp/persistent-cache-cpp";
+    changelog = "https://gitlab.com/ubports/development/core/lib-cpp/persistent-cache-cpp/-/blob/${finalAttrs.version}/ChangeLog";
     license = licenses.lgpl3Only;
     maintainers = teams.lomiri.members;
     platforms = platforms.unix;
diff --git a/pkgs/by-name/pg/pgmoneta/package.nix b/pkgs/by-name/pg/pgmoneta/package.nix
index 7ff1794850a2..c4ee9ce37382 100644
--- a/pkgs/by-name/pg/pgmoneta/package.nix
+++ b/pkgs/by-name/pg/pgmoneta/package.nix
@@ -19,13 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pgmoneta";
-  version = "0.7.3";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "pgmoneta";
     repo = "pgmoneta";
     rev = version;
-    hash = "sha256-sErdlHXMn97acVIxKapsnLkyOAgO7lOB0UQC5GkL4sQ=";
+    hash = "sha256-bIuVFF8v7O++g7lorGduAlOGx4XoiqjqkTWHM3RNNdg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/pi/pio/package.nix b/pkgs/by-name/pi/pio/package.nix
new file mode 100644
index 000000000000..01aa886c3002
--- /dev/null
+++ b/pkgs/by-name/pi/pio/package.nix
@@ -0,0 +1,28 @@
+{ lib, rustPlatform, fetchFromGitHub, stdenv, darwin }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "pio";
+  version = "0.4.0";
+
+  src = fetchFromGitHub {
+    owner = "siiptuo";
+    repo = "pio";
+    rev = version;
+    hash = "sha256-iR6G+G1UOT1ThLI3yhz3na1HmN6z2qUiI6NSKT0krtY=";
+  };
+
+  cargoHash = "sha256-jVOpk+Z3yEEoDexvxT9I0aVHJKVq47y8km/9ltoqrDA=";
+
+  buildInputs = lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Accelerate
+  ];
+
+  meta = with lib; {
+    description = "Utility to compress image files while maintaining quality";
+    homepage = "https://github.com/siiptuo/pio";
+    changelog = "https://github.com/siiptuo/pio/blob/${version}/CHANGELOG.md";
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ liassica ];
+    mainProgram = "pio";
+  };
+}
diff --git a/pkgs/by-name/pi/pixi/package.nix b/pkgs/by-name/pi/pixi/package.nix
index c7480786b17c..1592ce9849f9 100644
--- a/pkgs/by-name/pi/pixi/package.nix
+++ b/pkgs/by-name/pi/pixi/package.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pixi";
-  version = "0.11.1";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "prefix-dev";
     repo = "pixi";
     rev = "v${version}";
-    hash = "sha256-NOa8OvZs+BoJQ9qIU1lpMmEOecZpmwwCNYpDk1LUSTI=";
+    hash = "sha256-4EKJwHXNDUGhwlSSZFoPHdG5WBDoHFAQncG+CpD2sik=";
   };
 
-  cargoHash = "sha256-rDtr9ITYH5o/QPG1Iozh05iTA8c0i+3DnabXLzyqdrg=";
+  cargoHash = "sha256-s1ODwuYv1x5/iP8yHS5FRk5MacrW81LaXI7/J+qtPNM=";
 
   nativeBuildInputs = [
     pkg-config
@@ -63,7 +63,7 @@ rustPlatform.buildRustPackage rec {
     description = "Package management made easy";
     homepage = "https://pixi.sh/";
     license = licenses.bsd3;
-    maintainers = with lib.maintainers; [ aaronjheng ];
+    maintainers = with lib.maintainers; [ aaronjheng edmundmiller ];
     mainProgram = "pixi";
   };
 }
diff --git a/pkgs/by-name/pl/plumber/package.nix b/pkgs/by-name/pl/plumber/package.nix
new file mode 100644
index 000000000000..e306d09cdf35
--- /dev/null
+++ b/pkgs/by-name/pl/plumber/package.nix
@@ -0,0 +1,35 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "plumber";
+  version = "2.5.2";
+
+  src = fetchFromGitHub {
+    owner = "streamdal";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-ftXLipJQjRdOSNO56rIRfAKKU0kHtAK85hgcT3nYOKA=";
+  };
+
+  vendorHash = null;
+
+  # connection tests create a config file in user home directory
+  preCheck = ''
+    export HOME="$(mktemp -d)"
+  '';
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X github.com/streamdal/plumber/options.VERSION=${version}"
+    # remove once module in go.mod is renamed to github.com/batchcorp/streamdal
+    "-X github.com/batchcorp/plumber/options.VERSION=${version}"
+  ];
+
+  meta = with lib; {
+    description = "A CLI devtool for interacting with data in message systems like Kafka, RabbitMQ, GCP PubSub and more";
+    homepage = "https://github.com/streamdal/plumber";
+    license = licenses.mit;
+    maintainers = with maintainers; [ svrana ];
+  };
+}
diff --git a/pkgs/by-name/pm/pm2/package.nix b/pkgs/by-name/pm/pm2/package.nix
new file mode 100644
index 000000000000..1b29f2fa52dc
--- /dev/null
+++ b/pkgs/by-name/pm/pm2/package.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildNpmPackage
+, fetchFromGitHub
+}:
+
+buildNpmPackage rec {
+  pname = "pm2";
+  version = "5.3.1";
+
+  src = fetchFromGitHub {
+    owner = "Unitech";
+    repo = "pm2";
+    rev = "v${version}";
+    hash = "sha256-thShqrnM5S3/IImEm+2vHVRLCsLJN5NGaSRYubtULW0=";
+  };
+
+  npmDepsHash = "sha256-6M8kwiCHaQzcFyUUx7Yax/dobATWXG0Di7enEzlO8YE=";
+
+  dontNpmBuild = true;
+
+  meta = {
+    changelog = "https://github.com/Unitech/pm2/blob/${src.rev}/CHANGELOG.md";
+    description = "Node.js production process manager with a built-in load balancer";
+    homepage = "https://github.com/Unitech/pm2";
+    license = lib.licenses.agpl3Only;
+    mainProgram = "pm2";
+    maintainers = with lib.maintainers; [ jeremyschlatter ];
+  };
+}
diff --git a/pkgs/by-name/pm/pmtiles/package.nix b/pkgs/by-name/pm/pmtiles/package.nix
index ffb24053f090..21a0d90d145e 100644
--- a/pkgs/by-name/pm/pmtiles/package.nix
+++ b/pkgs/by-name/pm/pmtiles/package.nix
@@ -1,16 +1,16 @@
 { lib, buildGoModule, fetchFromGitHub }:
 buildGoModule rec {
   pname = "pmtiles";
-  version = "1.12.0";
+  version = "1.14.0";
 
   src = fetchFromGitHub {
     owner = "protomaps";
     repo = "go-pmtiles";
     rev = "v${version}";
-    hash = "sha256-8gd6p4AAevtRkb/IZAXfxz8lioySf3s8lT6moi1IoWc=";
+    hash = "sha256-yIH5vJTrSH1y30nHU7jrem1kbXp1fO0mhLoGMrv4IAE=";
   };
 
-  vendorHash = "sha256-gLFwGEUeH41bObG32MZznF7clct3h2GEvdZ2/KIiVb4=";
+  vendorHash = "sha256-tSQjCdgEXIGlSWcIB6lLQulAiEAebgW3pXL9Z2ujgIs=";
 
   ldflags = [ "-s" "-w" "-X main.version=${version}" "-X main.commit=v${version}" ];
 
diff --git a/pkgs/by-name/po/polylux2pdfpc/package.nix b/pkgs/by-name/po/polylux2pdfpc/package.nix
new file mode 100644
index 000000000000..e0ab8318f69d
--- /dev/null
+++ b/pkgs/by-name/po/polylux2pdfpc/package.nix
@@ -0,0 +1,34 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, nix-update-script
+}:
+
+let
+  dirname = "pdfpc-extractor";
+in
+rustPlatform.buildRustPackage rec {
+  pname = "polylux2pdfpc";
+  version = "0.3.1";
+
+  src = fetchFromGitHub {
+    owner = "andreasKroepelin";
+    repo = "polylux";
+    rev = "v${version}";
+    sparseCheckout = [ dirname ];
+    hash = "sha256-GefX7XsUfOMCp2THstSizRGpKAoq7yquVukWQjGuFgc=";
+  };
+  sourceRoot = "${src.name}/${dirname}";
+
+  cargoHash = "sha256-vmCaQxPkzz1ZVmtX7L3VeQb3kWhVqyPoQ1NrTSiJN9Y=";
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = with lib; {
+    description = "A tool to make pdfpc interpret slides created by polylux correctly";
+    homepage = "https://github.com/andreasKroepelin/polylux/tree/main/pdfpc-extractor";
+    license = licenses.mit;
+    mainProgram = "polylux2pdfpc";
+    maintainers = [ maintainers.diogotcorreia ];
+  };
+}
diff --git a/pkgs/by-name/po/powersploit/package.nix b/pkgs/by-name/po/powersploit/package.nix
new file mode 100644
index 000000000000..8e33c26ae738
--- /dev/null
+++ b/pkgs/by-name/po/powersploit/package.nix
@@ -0,0 +1,33 @@
+{ lib
+, fetchFromGitHub
+, stdenvNoCC
+}:
+
+stdenvNoCC.mkDerivation {
+  pname = "powersploit";
+  version = "3.0.0-unstable-2020-08-22";
+
+  src = fetchFromGitHub {
+    owner = "PowerShellMafia";
+    repo = "PowerSploit";
+    rev = "d943001a7defb5e0d1657085a77a0e78609be58f";
+    hash = "sha256-xVMCB8siyYc8JI7vjlUdO93jI3Qh054F/4CCZyGe75c=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/powersploit
+    cp -a * $out/share/powersploit
+    find $out/share -type f -exec chmod -x {} \;
+    runHook postInstall
+  '';
+
+  meta = {
+    changelog = "https://github.com/PowerShellMafia/PowerSploit/releases/";
+    description = "A PowerShell Post-Exploitation Framework";
+    license = with lib.licenses; [ bsd3 ];
+    maintainers = with lib.maintainers; [ shard7 ];
+    platforms = lib.platforms.all;
+    sourceProvenance = with lib.sourceTypes; [ fromSource ];
+  };
+}
diff --git a/pkgs/by-name/pp/ppsspp/package.nix b/pkgs/by-name/pp/ppsspp/package.nix
index 4b84faee15ab..9e02fba4546f 100644
--- a/pkgs/by-name/pp/ppsspp/package.nix
+++ b/pkgs/by-name/pp/ppsspp/package.nix
@@ -34,14 +34,14 @@ stdenv.mkDerivation (finalAttrs: {
           + lib.optionalString enableQt "-qt"
           + lib.optionalString (!enableQt) "-sdl"
           + lib.optionalString forceWayland "-wayland";
-  version = "1.16.6";
+  version = "1.17";
 
   src = fetchFromGitHub {
     owner = "hrydgard";
     repo = "ppsspp";
     rev = "v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-FCdYvYKcV+0TpQUSWiooNlTXKYtqbfnAWwjk7M8iF1Q=";
+    hash = "sha256-BJWcaxUUxNDiSX3YnhwXhgbp3iymcrR493BKrtivn3U=";
   };
 
   postPatch = ''
@@ -55,7 +55,7 @@ stdenv.mkDerivation (finalAttrs: {
     makeWrapper
     pkg-config
     python3
-  ] ++ lib.optional enableQt wrapQtAppsHook;
+  ] ++ lib.optionals enableQt [ wrapQtAppsHook ];
 
   buildInputs = [
     SDL2
@@ -67,17 +67,17 @@ stdenv.mkDerivation (finalAttrs: {
   ] ++ lib.optionals enableQt [
     qtbase
     qtmultimedia
-  ] ++ lib.optional enableVulkan vulkan-loader
+  ] ++ lib.optionals enableVulkan [ vulkan-loader ]
   ++ lib.optionals vulkanWayland [ wayland libffi ];
 
   cmakeFlags = [
-    "-DHEADLESS=${if enableQt then "OFF" else "ON"}"
-    "-DOpenGL_GL_PREFERENCE=GLVND"
-    "-DUSE_SYSTEM_FFMPEG=ON"
-    "-DUSE_SYSTEM_LIBZIP=ON"
-    "-DUSE_SYSTEM_SNAPPY=ON"
-    "-DUSE_WAYLAND_WSI=${if vulkanWayland then "ON" else "OFF"}"
-    "-DUSING_QT_UI=${if enableQt then "ON" else "OFF"}"
+    (lib.cmakeBool "HEADLESS" (!enableQt))
+    (lib.cmakeBool "USE_SYSTEM_FFMPEG" true)
+    (lib.cmakeBool "USE_SYSTEM_LIBZIP" true)
+    (lib.cmakeBool "USE_SYSTEM_SNAPPY" true)
+    (lib.cmakeBool "USE_WAYLAND_WSI" vulkanWayland)
+    (lib.cmakeBool "USING_QT_UI" enableQt)
+    (lib.cmakeFeature "OpenGL_GL_PREFERENCE" "GLVND")
   ];
 
   desktopItems = [
@@ -98,7 +98,8 @@ stdenv.mkDerivation (finalAttrs: {
       runHook preInstall
 
       mkdir -p $out/share/{applications,ppsspp,icons}
-    '' + (if enableQt then ''
+    ''
+    + (if enableQt then ''
       install -Dm555 PPSSPPQt $out/bin/ppsspp
       wrapProgram $out/bin/ppsspp \
     '' else ''
@@ -106,9 +107,12 @@ stdenv.mkDerivation (finalAttrs: {
       install -Dm555 PPSSPPSDL $out/share/ppsspp/
       makeWrapper $out/share/ppsspp/PPSSPPSDL $out/bin/ppsspp \
         --set SDL_VIDEODRIVER ${if forceWayland then "wayland" else "x11"} \
-    '') + lib.optionalString enableVulkan ''
+    '')
+    + lib.optionalString enableVulkan ''
         --prefix LD_LIBRARY_PATH : ${vulkanPath} \
-    '' + "\n" + ''
+    ''
+    + ''
+
       mv assets $out/share/ppsspp
       mv ../icons/hicolor $out/share/icons
 
@@ -119,8 +123,19 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://www.ppsspp.org/";
     description = "A HLE Playstation Portable emulator, written in C++ ("
                   + (if enableQt then "Qt" else "SDL + headless") + ")";
+    longDescription = ''
+      PPSSPP is a PSP emulator, which means that it can run games and other
+      software that was originally made for the Sony PSP.
+
+      The PSP had multiple types of software. The two most common are native PSP
+      games on UMD discs and downloadable games (that were stored in the
+      directory PSP/GAME on the "memory stick"). But there were also UMD Video
+      discs, and PS1 games that could run in a proprietary emulator. PPSSPP does
+      not run those.
+    '';
     license = lib.licenses.gpl2Plus;
     maintainers = [ lib.maintainers.AndersonTorres ];
+    mainProgram = "ppsspp";
     platforms = lib.platforms.linux;
   };
 })
diff --git a/pkgs/by-name/pr/presenterm/package.nix b/pkgs/by-name/pr/presenterm/package.nix
index ba1de5d9fb81..f637a77b4ff0 100644
--- a/pkgs/by-name/pr/presenterm/package.nix
+++ b/pkgs/by-name/pr/presenterm/package.nix
@@ -2,30 +2,40 @@
 , fetchFromGitHub
 , rustPlatform
 , libsixel
+, testers
+, presenterm
+, stdenv
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "presenterm";
-  version = "0.4.1";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "mfontanini";
     repo = "presenterm";
     rev = "refs/tags/v${version}";
-    hash = "sha256-OHp/qbuaZ7uVydKGnSiBR5KQGdf8rWQQWRHrka+PI1M=";
+    hash = "sha256-VAcK02dbtuTGn+lPu1vb/wAkroHuHqsU2KYHBiP2Org=";
   };
 
   buildInputs = [
     libsixel
   ];
 
-  cargoHash = "sha256-ymSTloz7sPAtMZN1uDgLs89gMcU+UTsMVc6y5UHt7no=";
+  cargoHash = "sha256-bufFiyqRsn4eG57bKn42p5cyX+Z7oiz/USZvg9YOvHA=";
 
-  buildFeatures = [ "sixel" ];
+  # Crashes at runtime on darwin with:
+  # Library not loaded: .../out/lib/libsixel.1.dylib
+  buildFeatures = lib.optionals (!stdenv.isDarwin) [ "sixel" ];
 
   # Skip test that currently doesn't work
   checkFlags = [ "--skip=execute::test::shell_code_execution" ];
 
+  passthru.tests.version = testers.testVersion {
+    package = presenterm;
+    command = "presenterm --version";
+  };
+
   meta = with lib; {
     description = "A terminal based slideshow tool";
     changelog = "https://github.com/mfontanini/presenterm/releases/tag/v${version}";
diff --git a/pkgs/by-name/pr/pretalx/package.nix b/pkgs/by-name/pr/pretalx/package.nix
new file mode 100644
index 000000000000..a4bf9fc9b5ef
--- /dev/null
+++ b/pkgs/by-name/pr/pretalx/package.nix
@@ -0,0 +1,201 @@
+{ lib
+, buildNpmPackage
+, gettext
+, python3
+, fetchFromGitHub
+, nixosTests
+}:
+
+let
+  python = python3.override {
+    packageOverrides = final: prev: {
+      django-bootstrap4 = prev.django-bootstrap4.overridePythonAttrs (oldAttrs: rec {
+        version = "3.0.0";
+        src = oldAttrs.src.override {
+          rev = "v${version}";
+          hash = "sha256-a8BopUwZjmvxOzBVqs4fTo0SY8sEEloGUw90daYWfz8=";
+        };
+
+        propagatedBuildInputs = with final; [
+          beautifulsoup4
+          django
+        ];
+
+        # fails with some assertions
+        doCheck = false;
+      });
+    };
+  };
+
+  version = "2023.1.3";
+
+  src = fetchFromGitHub {
+    owner = "pretalx";
+    repo = "pretalx";
+    rev = "v${version}";
+    hash = "sha256-YxmkjfftNrInIcSkK21wJXiEU6hbdDa1Od8p+HiLprs=";
+  };
+
+  meta = with lib; {
+    description = "Conference planning tool: CfP, scheduling, speaker management";
+    homepage = "https://github.com/pretalx/pretalx";
+    license = licenses.asl20;
+    maintainers = teams.c3d2.members;
+    platforms = platforms.linux;
+  };
+
+  frontend = buildNpmPackage {
+    pname = "pretalx-frontend";
+    inherit version src;
+
+    sourceRoot = "${src.name}/src/pretalx/frontend/schedule-editor";
+
+    npmDepsHash = "sha256-4cnBHZ8WpHgp/bbsYYbdtrhuD6ffUAZq9ZjoLpWGfRg=";
+
+    npmBuildScript = "build";
+
+    inherit meta;
+  };
+in
+python.pkgs.buildPythonApplication rec {
+  pname = "pretalx";
+  inherit version src;
+  pyproject = true;
+
+  outputs = [
+    "out"
+    "static"
+  ];
+
+  postPatch = ''
+    substituteInPlace src/pretalx/common/management/commands/rebuild.py \
+      --replace 'subprocess.check_call(["npm", "run", "build"], cwd=frontend_dir, env=env)' ""
+
+    substituteInPlace src/setup.cfg \
+      --replace "--cov=./" ""
+  '';
+
+  nativeBuildInputs = [
+    gettext
+    python.pkgs.pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "bleach"
+    "cssutils"
+    "django-filter"
+    "django-formtools"
+    "libsass"
+    "markdown"
+    "pillow"
+  ];
+
+  propagatedBuildInputs = with python.pkgs; [
+    beautifulsoup4
+    bleach
+    celery
+    css-inline
+    csscompressor
+    cssutils
+    defusedcsv
+    django
+    django-bootstrap4
+    django-compressor
+    django-context-decorator
+    django-countries
+    django-csp
+    django-filter
+    django-formset-js-improved
+    django-formtools
+    django-hierarkey
+    django-i18nfield
+    django-libsass
+    django-scopes
+    djangorestframework
+    libsass
+    markdown
+    pillow
+    publicsuffixlist
+    python-dateutil
+    qrcode
+    reportlab
+    requests
+    rules
+    urlman
+    vobject
+    whitenoise
+    zxcvbn
+  ] ++ beautifulsoup4.optional-dependencies.lxml;
+
+  passthru.optional-dependencies = {
+    mysql = with python.pkgs; [
+      mysqlclient
+    ];
+    postgres = with python.pkgs; [
+      psycopg2
+    ];
+    redis = with python.pkgs; [
+      redis
+    ];
+  };
+
+  postBuild = ''
+    rm -r ./src/pretalx/frontend/schedule-editor
+    ln -s ${frontend}/lib/node_modules/@pretalx/schedule-editor ./src/pretalx/frontend/schedule-editor
+
+    # Generate all static files, see https://docs.pretalx.org/administrator/commands.html#python-m-pretalx-rebuild
+    PYTHONPATH=$PYTHONPATH:./src python -m pretalx rebuild
+  '';
+
+  postInstall = ''
+    mkdir -p $out/bin
+    cp ./src/manage.py $out/bin/pretalx-manage
+
+    # The processed source files are in the static output, except for fonts, which are duplicated.
+    # See <https://github.com/pretalx/pretalx/issues/1585> for more details.
+    find $out/${python.sitePackages}/pretalx/static \
+      -mindepth 1 \
+      -not -path "$out/${python.sitePackages}/pretalx/static/fonts*" \
+      -delete
+
+    # Copy generated static files into dedicated output
+    mkdir -p $static
+    cp -r ./src/static.dist/** $static/
+
+    # Copy frontend files
+    ln -s ${frontend}/lib/node_modules/@pretalx/schedule-editor/dist/* $static
+  '';
+
+  preCheck = ''
+    export PRETALX_CONFIG_FILE="$src/src/tests/ci_sqlite.cfg"
+    cd src
+  '';
+
+  nativeCheckInputs = with python.pkgs; [
+    faker
+    freezegun
+    pytest-django
+    pytest-mock
+    pytest-xdist
+    pytestCheckHook
+    responses
+  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+
+  disabledTests = [
+    # tries to run npm run i18n:extract
+    "test_common_custom_makemessages_does_not_blow_up"
+    # Expected to perform X queries or less but Y were done
+    "test_schedule_export_public"
+    "test_schedule_frab_json_export"
+    "test_schedule_frab_xml_export"
+  ];
+
+  passthru = {
+    inherit python;
+    tests = {
+      inherit (nixosTests) pretalx;
+    };
+  };
+
+  inherit meta;
+}
diff --git a/pkgs/by-name/pr/prometheus-restic-exporter/package.nix b/pkgs/by-name/pr/prometheus-restic-exporter/package.nix
new file mode 100644
index 000000000000..4e3736a573b6
--- /dev/null
+++ b/pkgs/by-name/pr/prometheus-restic-exporter/package.nix
@@ -0,0 +1,49 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, python3
+, restic
+, nixosTests
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "prometheus-restic-exporter";
+  version = "1.4.0";
+
+  src = fetchFromGitHub {
+    owner = "ngosang";
+    repo = "restic-exporter";
+    rev = version;
+    hash = "sha256-Qwhlecginl5+V+iddN/vIHfJA1kQOZtscECsoD4LJPE=";
+  };
+
+  buildInputs = [
+    (python3.withPackages (ps: [ ps.prometheus-client ]))
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m0755 restic-exporter.py $out/bin/restic-exporter.py
+
+    substituteInPlace $out/bin/restic-exporter.py --replace \"restic\" \"${lib.makeBinPath [ restic ]}/restic\"
+
+    patchShebangs $out/bin/restic-exporter.py
+
+    runHook postInstall
+  '';
+
+  passthru.tests = {
+    restic-exporter = nixosTests.prometheus-exporters.restic;
+  };
+
+  meta = with lib; {
+    description = "Prometheus exporter for the Restic backup system";
+    homepage = "https://github.com/ngosang/restic-exporter";
+    changelog = "https://github.com/ngosang/restic-exporter/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ minersebas ];
+    mainProgram = "restic-exporter.py";
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/by-name/pr/protoc-gen-js/package.nix b/pkgs/by-name/pr/protoc-gen-js/package.nix
new file mode 100644
index 000000000000..21cd426388f8
--- /dev/null
+++ b/pkgs/by-name/pr/protoc-gen-js/package.nix
@@ -0,0 +1,37 @@
+{ stdenv, lib, buildBazelPackage, bazel_6, fetchFromGitHub, darwin }:
+
+buildBazelPackage rec {
+  pname = "protoc-gen-js";
+  version = "3.21.2";
+
+  src = fetchFromGitHub {
+    owner = "protocolbuffers";
+    repo = "protobuf-javascript";
+    rev = "v${version}";
+    hash = "sha256-TmP6xftUVTD7yML7UEM/DB8bcsL5RFlKPyCpcboD86U=";
+  };
+
+  bazel = bazel_6;
+  bazelTargets = [ "generator:protoc-gen-js" ];
+  bazelBuildFlags = lib.optionals stdenv.cc.isClang [ "--cxxopt=-x" "--cxxopt=c++" "--host_cxxopt=-x" "--host_cxxopt=c++" ];
+  removeRulesCC = false;
+  removeLocalConfigCC = false;
+
+  LIBTOOL = lib.optionalString stdenv.isDarwin "${darwin.cctools}/bin/libtool";
+
+  fetchAttrs.sha256 = "sha256-H0zTMCMFct09WdR/mzcs9FcC2OU/ZhGye7GAkx4tGa8=";
+
+  buildAttrs.installPhase = ''
+    mkdir -p $out/bin
+    install -Dm755 bazel-bin/generator/protoc-gen-js $out/bin/
+  '';
+
+  meta = with lib; {
+    description = "Protobuf plugin for generating JavaScript code";
+    homepage = "https://github.com/protocolbuffers/protobuf-javascript";
+    platforms = platforms.linux ++ platforms.darwin;
+    license = with licenses; [ asl20 bsd3 ];
+    sourceProvenance = [ sourceTypes.fromSource ];
+    maintainers = with maintainers; [ Sorixelle ];
+  };
+}
diff --git a/pkgs/by-name/pr/prowler/package.nix b/pkgs/by-name/pr/prowler/package.nix
new file mode 100644
index 000000000000..466732634cd6
--- /dev/null
+++ b/pkgs/by-name/pr/prowler/package.nix
@@ -0,0 +1,69 @@
+{ lib
+, python3
+, fetchFromGitHub
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "prowler";
+  version = "3.12.1";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "prowler-cloud";
+    repo = "prowler";
+    rev = "refs/tags/${version}";
+    hash = "sha256-QauDqeCa499AcZurGjn2Yv4GH04F/pahAH2ms7gAca4=";
+  };
+
+  pythonRelaxDeps = [
+    "azure-mgmt-security"
+    "boto3"
+    "botocore"
+    "google-api-python-client"
+    "slack-sdk"
+  ];
+
+  nativeBuildInputs = with python3.pkgs; [
+    poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    alive-progress
+    awsipranges
+    azure-identity
+    azure-mgmt-authorization
+    azure-mgmt-security
+    azure-mgmt-sql
+    azure-mgmt-storage
+    azure-mgmt-subscription
+    azure-storage-blob
+    boto3
+    botocore
+    colorama
+    detect-secrets
+    google-api-python-client
+    google-auth-httplib2
+    jsonschema
+    msgraph-core
+    msrestazure
+    pydantic_1
+    schema
+    shodan
+    slack-sdk
+    tabulate
+  ];
+
+  pythonImportsCheck = [
+    "prowler"
+  ];
+
+  meta = with lib; {
+    description = "Security tool for AWS, Azure and GCP to perform Cloud Security best practices assessments";
+    homepage = "https://github.com/prowler-cloud/prowler";
+    changelog = "https://github.com/prowler-cloud/prowler/releases/tag/${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "prowler";
+  };
+}
diff --git a/pkgs/tools/games/pocket-updater-utility/add-runtime-identifier.patch b/pkgs/by-name/pu/pupdate/add-runtime-identifier.patch
index 38d5dcd3af16..c70aaad58966 100644
--- a/pkgs/tools/games/pocket-updater-utility/add-runtime-identifier.patch
+++ b/pkgs/by-name/pu/pupdate/add-runtime-identifier.patch
@@ -1,19 +1,19 @@
-From c9ca58262045b82537bd8284d426c91582cc7ed7 Mon Sep 17 00:00:00 2001
+From f56083d95304752c45cc569fe42c3b0d7a2430bd Mon Sep 17 00:00:00 2001
 From: Philipp Rintz <git@rintz.net>
-Date: Thu, 28 Sep 2023 21:22:18 +0200
+Date: Wed, 24 Jan 2024 22:11:50 +0100
 Subject: [PATCH] uncommited
 
 ---
- pocket_updater.csproj | 1 +
+ pupdate.csproj | 1 +
  1 file changed, 1 insertion(+)
 
-diff --git a/pocket_updater.csproj b/pocket_updater.csproj
-index 30f77d5..ad6bf69 100644
---- a/pocket_updater.csproj
-+++ b/pocket_updater.csproj
+diff --git a/pupdate.csproj b/pupdate.csproj
+index a6f59a8..0563137 100644
+--- a/pupdate.csproj
++++ b/pupdate.csproj
 @@ -12,6 +12,7 @@
      <Authors>Matt Pannella</Authors>
-     <Product>Analogue Pocket Updater Utility</Product>
+     <Product>Pupdate</Product>
      <RepositoryUrl>https://github.com/mattpannella/pocket-updater-utility</RepositoryUrl>
 +    <RuntimeIdentifier>@RuntimeIdentifier@</RuntimeIdentifier>
    </PropertyGroup>
diff --git a/pkgs/tools/games/pocket-updater-utility/deps.nix b/pkgs/by-name/pu/pupdate/deps.nix
index eea7ea49accb..eea7ea49accb 100644
--- a/pkgs/tools/games/pocket-updater-utility/deps.nix
+++ b/pkgs/by-name/pu/pupdate/deps.nix
diff --git a/pkgs/tools/games/pocket-updater-utility/default.nix b/pkgs/by-name/pu/pupdate/package.nix
index 9777b433505a..54a979fa6bb1 100644
--- a/pkgs/tools/games/pocket-updater-utility/default.nix
+++ b/pkgs/by-name/pu/pupdate/package.nix
@@ -1,24 +1,24 @@
-{ pkgs ? import <nixpkgs> { system = builtins.currentSystem; }
-, stdenv ? pkgs.stdenv
-, lib ? pkgs.lib
-, fetchFromGitHub ? pkgs.fetchFromGitHub
-, buildDotnetModule ? pkgs.buildDotnetModule
-, dotnetCorePackages ? pkgs.dotnetCorePackages
-, openssl ? pkgs.openssl
-, zlib ? pkgs.zlib
-, hostPlatform ? stdenv.hostPlatform
-, nix-update-script ? stdenv.nix-update-script
+{ pkgs
+, stdenv
+, lib
+, fetchFromGitHub
+, buildDotnetModule
+, dotnetCorePackages
+, openssl
+, zlib
+, hostPlatform
+, nix-update-script
 }:
 
 buildDotnetModule rec {
-  pname = "pocket-updater-utility";
-  version = "2.43.0";
+  pname = "pupdate";
+  version = "3.2.1";
 
   src = fetchFromGitHub {
     owner = "mattpannella";
     repo = "${pname}";
     rev = "${version}";
-    hash = "sha256-mizKR3hS8s1we+jJ1bQQpFzRMjHFv4UAiINUpfnWnwI=";
+    hash = "sha256-jAZozcCHgKFTPCRktajrI77iH/GBbzhWa+QKZz1w62Y=";
   };
 
   buildInputs = [
@@ -30,17 +30,17 @@ buildDotnetModule rec {
   # See https://github.com/NixOS/nixpkgs/pull/196648/commits/0fb17c04fe34ac45247d35a1e4e0521652d9c494
   patches = [ ./add-runtime-identifier.patch ];
   postPatch = ''
-    substituteInPlace pocket_updater.csproj \
+    substituteInPlace pupdate.csproj \
       --replace @RuntimeIdentifier@ "${dotnetCorePackages.systemToDotnetRid hostPlatform.system}"
   '';
 
-  projectFile = "pocket_updater.csproj";
+  projectFile = "pupdate.csproj";
 
   nugetDeps = ./deps.nix;
 
   selfContainedBuild = true;
 
-  executables = [ "pocket_updater" ];
+  executables = [ "pupdate" ];
 
   dotnetFlags = [
     "-p:PackageRuntime=${dotnetCorePackages.systemToDotnetRid stdenv.hostPlatform.system}"
@@ -54,11 +54,11 @@ buildDotnetModule rec {
   };
 
   meta = with lib; {
-    homepage = "https://github.com/mattpannella/pocket-updater-utility";
-    description = "Analogue Pocket Updater Utility";
+    homepage = "https://github.com/mattpannella/pupdate";
+    description = "Pupdate - A thing for updating your Analogue Pocket ";
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ p-rintz ];
-    mainProgram = "pocket_updater";
+    mainProgram = "pupdate";
   };
 }
diff --git a/pkgs/by-name/py/pyprland/package.nix b/pkgs/by-name/py/pyprland/package.nix
index 7c65fb40dcfd..7924759ea71a 100644
--- a/pkgs/by-name/py/pyprland/package.nix
+++ b/pkgs/by-name/py/pyprland/package.nix
@@ -2,7 +2,7 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "pyprland";
-  version = "1.6.11";
+  version = "1.7.1";
   format = "pyproject";
 
   disabled = python3Packages.pythonOlder "3.10";
@@ -10,8 +10,8 @@ python3Packages.buildPythonApplication rec {
   src = fetchFromGitHub {
     owner = "hyprland-community";
     repo = "pyprland";
-    rev = version;
-    hash = "sha256-intrvN6sPaokcY9If2GZvDaFdDFcHg4hO7LXXu0pLXU=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-VS1qWJxTJDRlmb4pfzSqU0geOcPAVYDYy2d/f5KcOpQ=";
   };
 
   nativeBuildInputs = with python3Packages; [ poetry-core ];
diff --git a/pkgs/by-name/py/pyspread/package.nix b/pkgs/by-name/py/pyspread/package.nix
index 43aa9b304f03..6af2853a8038 100644
--- a/pkgs/by-name/py/pyspread/package.nix
+++ b/pkgs/by-name/py/pyspread/package.nix
@@ -9,10 +9,10 @@
 let
   # get rid of rec
   pname = "pyspread";
-  version = "2.2.2";
+  version = "2.2.3";
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-vbBu/dMXQf14F7qWvyHX5T8/AkjeZhaQt1eQ6Nidpsc=";
+    hash = "sha256-oNMDDXpl6Y0N7j+qgboSTJA9SR5KzKxhoMh/44ngjdA=";
   };
   inherit (libsForQt5)
     qtsvg
diff --git a/pkgs/by-name/py/pysqlrecon/package.nix b/pkgs/by-name/py/pysqlrecon/package.nix
new file mode 100644
index 000000000000..836b4bf2f780
--- /dev/null
+++ b/pkgs/by-name/py/pysqlrecon/package.nix
@@ -0,0 +1,49 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "pysqlrecon";
+  version = "0.1.3";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "Tw1sm";
+    repo = "PySQLRecon";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-IxIYJo2wG8xqetBqgUOePNWPSx9FaZPhqhOFy3kG6Uk=";
+  };
+
+  pythonRelaxDeps = [
+    "rich"
+    "typer"
+  ];
+
+  nativeBuildInputs = with python3.pkgs; [
+    poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    impacket
+    rich
+    typer
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "pysqlrecon"
+  ];
+
+  meta = with lib; {
+    description = "Offensive MSSQL toolkit";
+    homepage = "https://github.com/Tw1sm/PySQLRecon";
+    changelog = "https://github.com/Tw1sm/PySQLRecon/blob/${version}/CHANGELOG.md";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "pysqlrecon";
+  };
+}
diff --git a/pkgs/by-name/qa/qadwaitadecorations/package.nix b/pkgs/by-name/qa/qadwaitadecorations/package.nix
index 74ba857f03b0..def921a3f6d0 100644
--- a/pkgs/by-name/qa/qadwaitadecorations/package.nix
+++ b/pkgs/by-name/qa/qadwaitadecorations/package.nix
@@ -19,13 +19,13 @@ let
 
 in stdenv.mkDerivation (finalAttrs: {
   pname = "qadwaitadecorations";
-  version = "0.1.3";
+  version = "0.1.4";
 
   src = fetchFromGitHub {
     owner = "FedoraQt";
     repo = "QAdwaitaDecorations";
     rev = finalAttrs.version;
-    hash = "sha256-9uK2ojukuwzOz/genWiCch4c3pL5qEfyy8ERpFxS8/8=";
+    hash = "sha256-vG6nK+9hUX0ZxNFz5ZA/EC1rSFTGl5rDTBlsraRlrTU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/qr/qrtool/package.nix b/pkgs/by-name/qr/qrtool/package.nix
index 79791ddb0ca2..0eca4c6ada02 100644
--- a/pkgs/by-name/qr/qrtool/package.nix
+++ b/pkgs/by-name/qr/qrtool/package.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "qrtool";
-  version = "0.10.2";
+  version = "0.10.4";
 
   src = fetchFromGitHub {
     owner = "sorairolake";
     repo = "qrtool";
     rev = "v${version}";
-    sha256 = "sha256-caQoV0qAj2VXbEaYHsGOqCZCVyb4s1JJbBl7H0X5xEI=";
+    sha256 = "sha256-b1dNGEdjmY2RSZ3M7lwWVeookMij2rUsVtevsYYNtw0=";
   };
 
-  cargoHash = "sha256-V9TopADUGBR0MdOTIq1Tiee3NEzLa76zRq5bjULoLVI=";
+  cargoHash = "sha256-9Zd4zETDy8iM/rrZI55NOybpa4Sn9AzYsNYmLDzxL+Q=";
 
   nativeBuildInputs = [ asciidoctor installShellFiles ];
 
diff --git a/pkgs/by-name/qs/qsreplace/package.nix b/pkgs/by-name/qs/qsreplace/package.nix
new file mode 100644
index 000000000000..a12c27e26ec5
--- /dev/null
+++ b/pkgs/by-name/qs/qsreplace/package.nix
@@ -0,0 +1,28 @@
+{ lib
+, fetchFromGitHub
+, buildGoPackage
+}:
+
+buildGoPackage rec {
+  pname = "qsreplace";
+  version = "0.0.3";
+
+  goPackagePath = "github.com/tomnomnom/qsreplace";
+
+  src = fetchFromGitHub {
+    owner = "tomnomnom";
+    repo = "qsreplace";
+    rev = "v${version}";
+    hash = "sha256-j9bqO2gp4RUxZHGBCIxI5nA3nD1dG4nCpJ1i4TM/fbo=";
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/tomnomnom/qsreplace";
+    description = "Accept URLs on stdin, replace all query string values with a user-supplied value";
+    mainProgram = "qsreplace";
+    maintainers = with maintainers; [ averagebit ];
+    platforms = platforms.unix;
+    sourceProvenance = with sourceTypes; [ fromSource ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/applications/audio/qtractor/default.nix b/pkgs/by-name/qt/qtractor/package.nix
index 71d628d322e4..a19e84467f8d 100644
--- a/pkgs/applications/audio/qtractor/default.nix
+++ b/pkgs/by-name/qt/qtractor/package.nix
@@ -1,4 +1,5 @@
-{ alsa-lib
+{ lib
+, alsa-lib
 , aubio
 , cmake
 , dssi
@@ -15,33 +16,32 @@
 , libvorbis
 , lilv
 , lv2
-, mkDerivation
 , opusfile
 , pkg-config
-, qttools
-, qtbase
+, qt6
 , rubberband
 , serd
+, stdenv
 , sord
 , sratom
-, lib
 , suil
 }:
 
-mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "qtractor";
-  version = "0.9.25";
+  version = "0.9.38";
 
   src = fetchurl {
-    url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-cKXHH7rugTJ5D7MDJmr/fX6p209wyGMQvSLbv5T0KXU=";
+    url = "mirror://sourceforge/qtractor/qtractor-${version}.tar.gz";
+    hash = "sha256-aAUOz9gztk9ynQYRq+mniUk++rM6Rdne9U1QM7jKPcU=";
   };
 
   nativeBuildInputs = [
     cmake
     libtool
     pkg-config
-    qttools
+    qt6.qttools
+    qt6.wrapQtAppsHook
   ];
 
   buildInputs = [
@@ -61,7 +61,8 @@ mkDerivation rec {
     lilv
     lv2
     opusfile
-    qtbase
+    qt6.qtbase
+    qt6.qtsvg
     rubberband
     serd
     sord
@@ -73,6 +74,7 @@ mkDerivation rec {
     description = "Audio/MIDI multi-track sequencer";
     homepage = "https://qtractor.sourceforge.io";
     license = licenses.gpl2Plus;
+    mainProgram = "qtractor";
     maintainers = with maintainers; [ goibhniu ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/by-name/rc/rcp/package.nix b/pkgs/by-name/rc/rcp/package.nix
new file mode 100644
index 000000000000..109d81bec9f5
--- /dev/null
+++ b/pkgs/by-name/rc/rcp/package.nix
@@ -0,0 +1,32 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "rcp";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "wykurz";
+    repo = "rcp";
+    rev = "v${version}";
+    hash = "sha256-5CqQwTJAQhO9mLfMan6JhNY3N2gfwR6wmGtVBYzVxuc=";
+  };
+
+  cargoHash = "sha256-sF7RjuVRNfJa3vw71S+BKIBLeWT6biekAE/56BsZYkw=";
+
+  checkFlags = [
+    # this test also sets setuid permissions on a test file (3oXXX) which doesn't work in a sandbox
+    "--skip=copy::copy_tests::check_default_mode"
+  ];
+
+  meta = with lib; {
+    changelog = "https://github.com/wykurz/rcp/releases/tag/v${version}";
+    description = "Tools to efficiently copy, remove and link large filesets";
+    homepage = "https://github.com/wykurz/rcp";
+    license = with licenses; [ mit ];
+    mainProgram = "rcp";
+    maintainers = with maintainers; [ wykurz ];
+  };
+}
diff --git a/pkgs/by-name/re/redocly-cli/package.nix b/pkgs/by-name/re/redocly-cli/package.nix
index d22b09b53a41..aa1c49cae249 100644
--- a/pkgs/by-name/re/redocly-cli/package.nix
+++ b/pkgs/by-name/re/redocly-cli/package.nix
@@ -31,7 +31,10 @@ buildNpmPackage rec {
     cp -R packages/core $out/lib/node_modules/@redocly/cli/node_modules/@redocly/openapi-core
 
     mkdir $out/bin
-    makeWrapper $out/lib/node_modules/@redocly/cli/node_modules/@redocly/cli/bin/cli.js $out/bin/redocly-cli --set REDOCLY_TELEMETRY off
+    makeWrapper $out/lib/node_modules/@redocly/cli/node_modules/@redocly/cli/bin/cli.js \
+      $out/bin/redocly-cli \
+      --set-default REDOCLY_TELEMETRY off \
+      --set-default CI true # Silence update messages
   '';
 
   installCheckPhase = ''
diff --git a/pkgs/by-name/re/regripper/package.nix b/pkgs/by-name/re/regripper/package.nix
new file mode 100644
index 000000000000..a8dc3d9828f7
--- /dev/null
+++ b/pkgs/by-name/re/regripper/package.nix
@@ -0,0 +1,55 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, perl
+, perlPackages
+, runtimeShell
+}:
+
+stdenv.mkDerivation rec {
+  pname = "regripper";
+  version = "unstable-2023-07-23";
+
+  src = fetchFromGitHub {
+    owner = "keydet89";
+    repo = "RegRipper3.0";
+    rev = "cee174fb6f137b14c426e97d17945ddee0d31051";
+    hash = "sha256-vejIRlcVjxQJpxJabJJcljODYr+lLJjYINVtAPObvkQ=";
+  };
+
+  propagatedBuildInputs = [ perl perlPackages.ParseWin32Registry ];
+
+  postPatch = ''
+    substituteInPlace rip.pl rr.pl \
+      --replace \"plugins/\" \"$out/share/regripper/plugins/\" \
+      --replace \"plugins\" \"$out/share/regripper/plugins\"
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{bin,share}
+
+    rm -r *.md *.exe *.bat *.dll
+
+    cp -aR . "$out/share/regripper/"
+
+    cat > "$out/bin/${pname}" << EOF
+    #!${runtimeShell}
+    exec ${perl}/bin/perl $out/share/regripper/rip.pl "\$@"
+    EOF
+
+    chmod u+x  "$out/bin/${pname}"
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Open source forensic software used as a Windows Registry data extraction command line";
+    mainProgram = "regripper";
+    homepage = "https://github.com/keydet89/RegRipper3.0";
+    maintainers = with maintainers; [ d3vil0p3r ];
+    platforms = platforms.unix;
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/by-name/re/renode-dts2repl/package.nix b/pkgs/by-name/re/renode-dts2repl/package.nix
index 33891c58f82c..0ba3bfa6a4b5 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 = "unstable-2024-01-09";
+  version = "unstable-2024-02-02";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "antmicro";
     repo = "dts2repl";
-    rev = "429ebc65e0bcbd967ccfe1f9a970abd5b5b6258f";
-    hash = "sha256-/62KAVIMCM6VNhW4rDqnKXOFrAO0cHpybGS3lconCqY=";
+    rev = "84b14adc21fcd12b9772f69f9dcf702133fa6551";
+    hash = "sha256-xFMkYjSZajQSflsTF1BtARUZWbnAvBRfN4gK3RAgeIU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/re/renode-unstable/package.nix b/pkgs/by-name/re/renode-unstable/package.nix
index b733a10bd7ba..4b63b039cd85 100644
--- a/pkgs/by-name/re/renode-unstable/package.nix
+++ b/pkgs/by-name/re/renode-unstable/package.nix
@@ -7,10 +7,10 @@
   inherit buildUnstable;
 }).overrideAttrs (finalAttrs: _: {
   pname = "renode-unstable";
-  version = "1.14.0+20240106git1b3952c2c";
+  version = "1.14.0+20240119git1a0826937";
 
   src = fetchurl {
     url = "https://builds.renode.io/renode-${finalAttrs.version}.linux-portable.tar.gz";
-    hash = "sha256-tDo/01jYoq1Qg8h0BS4BQSPh3rsINpe72eMk9UBWgR0=";
+    hash = "sha256-bv5+6DVzBFt5XeKcLJFpUHB5T1RKCNi/CuXXpIn6e9k=";
   };
 })
diff --git a/pkgs/by-name/ri/ricochet-refresh/package.nix b/pkgs/by-name/ri/ricochet-refresh/package.nix
new file mode 100644
index 000000000000..c90c6aabbd92
--- /dev/null
+++ b/pkgs/by-name/ri/ricochet-refresh/package.nix
@@ -0,0 +1,79 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, qt5
+, openssl
+, protobuf3_20  # https://github.com/blueprint-freespeech/ricochet-refresh/issues/178
+, pkg-config
+, cmake
+}:
+
+let
+  protobuf = protobuf3_20;
+in
+stdenv.mkDerivation (finalAttrs: {
+  pname = "ricochet-refresh";
+  version = "3.0.18";
+
+  src = fetchFromGitHub {
+    owner = "blueprint-freespeech";
+    repo = "ricochet-refresh";
+    rev = "v${finalAttrs.version}-release";
+    hash = "sha256-QN2cxcYWGoszPdrWv+4FoTGNjQViK/OwxbBC6uoDhfA=";
+    fetchSubmodules = true;
+  };
+
+  sourceRoot = "${finalAttrs.src.name}/src";
+
+  strictDeps = true;
+
+  buildInputs = (with qt5; [
+    qtbase
+    qttools
+    qtmultimedia
+    qtquickcontrols2
+    qtwayland
+  ]) ++ [
+    openssl
+    protobuf
+  ];
+
+  nativeBuildInputs = [
+    pkg-config
+    cmake
+    qt5.wrapQtAppsHook
+  ];
+
+  enableParallelBuilding = true;
+
+  # https://github.com/blueprint-freespeech/ricochet-refresh/blob/main/BUILDING.md
+  cmakeFlags = [
+    (lib.cmakeFeature "CMAKE_BUILD_TYPE" "MinSizeRel")
+    (lib.cmakeBool "RICOCHET_REFRESH_INSTALL_DESKTOP" true)
+    (lib.cmakeBool "USE_SUBMODULE_FMT" true)
+  ];
+
+  meta = {
+    description = "Secure chat without DNS or WebPKI";
+    longDescription = ''
+      Ricochet Refresh is a peer-to-peer messenger app that uses Tor
+      to connect clients.
+
+      When you start Ricochet Refresh it creates a Tor hidden
+      service on your computer.  The address of this hidden service
+      is your anonymous identity on the Tor network and how others
+      will be able to communicate with you.  When you start a chat
+      with one of your contacts a Tor circuit is created between
+      your machine and the your contact's machine.
+
+      The original Ricochet uses onion "v2" hashed-RSA addresses,
+      which are no longer supported by the Tor network.  Ricochet
+      Refresh upgrades the original Ricochet protocol to use the
+      current onion "v3" ed25519 addresses.
+    '';
+    homepage = "https://www.ricochetrefresh.net/";
+    downloadPage = "https://github.com/blueprint-freespeech/ricochet-refresh/releases";
+    license = lib.licenses.bsd3;
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/pkgs/by-name/rm/rmg/package.nix b/pkgs/by-name/rm/rmg/package.nix
index 06e94306c04c..50436f36b928 100644
--- a/pkgs/by-name/rm/rmg/package.nix
+++ b/pkgs/by-name/rm/rmg/package.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , boost
 , cmake
 , discord-rpc
@@ -19,6 +20,8 @@
 , which
 , xdg-user-dirs
 , zlib
+# Affects final license
+, withAngrylionRdpPlus ? false
 }:
 
 let
@@ -26,15 +29,25 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "rmg";
-  version = "0.5.4";
+  version = "0.5.7";
 
   src = fetchFromGitHub {
     owner = "Rosalie241";
     repo = "RMG";
     rev = "v${version}";
-    hash = "sha256-SAQJKfYoouJ2DLVks6oXiyiOI2/kgmyaHqt/FRfqKjI=";
+    hash = "sha256-j3OVhcTGUXPC0+AqvAJ7+mc+IFqJeBITU99pvfXIunQ=";
   };
 
+  patches = [
+    # Fix bad concatenation of CMake GNUInstallDirs variables, causing broken asset lookup paths
+    # Remove when version > 0.5.7
+    (fetchpatch {
+      name = "0001-rmg-Fix-GNUInstallDirs-usage.patch";
+      url = "https://github.com/Rosalie241/RMG/commit/685aa597c7ee7ad7cfd4dd782f40d21863b75899.patch";
+      hash = "sha256-HnaxUAX+3Z/VTtYYuhoXOtsDtV61nskgyzEcp8fdBsU=";
+    })
+  ];
+
   nativeBuildInputs = [
     cmake
     nasm
@@ -66,6 +79,7 @@ stdenv.mkDerivation rec {
     # mupen64plus-input-gca is written in Rust, so we can't build it with
     # everything else.
     "-DNO_RUST=ON"
+    "-DUSE_ANGRYLION=${lib.boolToString withAngrylionRdpPlus}"
   ];
 
   qtWrapperArgs = lib.optionals stdenv.isLinux [
@@ -79,7 +93,7 @@ stdenv.mkDerivation rec {
       Rosalie's Mupen GUI is a free and open-source mupen64plus front-end
       written in C++. It offers a simple-to-use user interface.
     '';
-    license = licenses.gpl3;
+    license = if withAngrylionRdpPlus then licenses.unfree else licenses.gpl3Only;
     platforms = platforms.linux;
     mainProgram = "RMG";
     maintainers = with maintainers; [ slam-bert ];
diff --git a/pkgs/by-name/rq/rqbit/Cargo.lock b/pkgs/by-name/rq/rqbit/Cargo.lock
index 8a648a2c5171..4e4072d44157 100644
--- a/pkgs/by-name/rq/rqbit/Cargo.lock
+++ b/pkgs/by-name/rq/rqbit/Cargo.lock
@@ -1253,7 +1253,7 @@ dependencies = [
 
 [[package]]
 name = "librqbit"
-version = "5.4.1"
+version = "5.4.2"
 dependencies = [
  "anyhow",
  "axum 0.7.3",
@@ -2025,7 +2025,7 @@ dependencies = [
 
 [[package]]
 name = "rqbit"
-version = "5.4.1"
+version = "5.4.2"
 dependencies = [
  "anyhow",
  "bytes",
diff --git a/pkgs/by-name/rq/rqbit/package.nix b/pkgs/by-name/rq/rqbit/package.nix
index 71fa1fc69826..42b3c9e61aa6 100644
--- a/pkgs/by-name/rq/rqbit/package.nix
+++ b/pkgs/by-name/rq/rqbit/package.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rqbit";
-  version = "5.4.1";
+  version = "5.4.2";
 
   src = fetchFromGitHub {
     owner = "ikatson";
     repo = "rqbit";
     rev = "v${version}";
-    hash = "sha256-dD9nGxyUA+Vw5efB4eXdz4WdxXlwyhT6mSyblcX65Bs=";
+    hash = "sha256-ZC68RQi0UcdALKVgwRUyO0+ZmKtGMjudYQabsAnghzg=";
   };
 
   cargoLock = {
diff --git a/pkgs/development/compilers/sbcl/bootstrap.nix b/pkgs/by-name/sb/sbcl/bootstrap.nix
index e23557c5a62f..e23557c5a62f 100644
--- a/pkgs/development/compilers/sbcl/bootstrap.nix
+++ b/pkgs/by-name/sb/sbcl/bootstrap.nix
diff --git a/pkgs/development/compilers/sbcl/fix-2.4.0-aarch64-darwin.patch b/pkgs/by-name/sb/sbcl/fix-2.4.0-aarch64-darwin.patch
index cd344f0cbd19..cd344f0cbd19 100644
--- a/pkgs/development/compilers/sbcl/fix-2.4.0-aarch64-darwin.patch
+++ b/pkgs/by-name/sb/sbcl/fix-2.4.0-aarch64-darwin.patch
diff --git a/pkgs/development/compilers/sbcl/2.x.nix b/pkgs/by-name/sb/sbcl/package.nix
index f91e5147cf6a..2f18dcc78d4c 100644
--- a/pkgs/development/compilers/sbcl/2.x.nix
+++ b/pkgs/by-name/sb/sbcl/package.nix
@@ -19,12 +19,12 @@ let
       sha256 = "189gjqzdz10xh3ybiy4ch1r98bsmkcb4hpnrmggd4y2g5kqnyx4y";
     };
 
-    "2.3.11" = {
-      sha256 = "sha256-hL7rjXLIeJeEf8AoWtyz+k9IG9s5ECxPuat5aEGErSk=";
-    };
     "2.4.0" = {
       sha256 = "sha256-g9i3TwjSJUxZuXkLwfZp4JCZRXuIRyDs7L9F9LRtF3Y=";
     };
+    "2.4.1" = {
+      sha256 = "sha256-2k+UhvrUE9OversbCSaTJf20v/fnuI8hld3udDJjz34=";
+    };
   };
   # Collection of pre-built SBCL binaries for platforms that need them for
   # bootstrapping. Ideally these are to be avoided.  If CLISP (or any other
diff --git a/pkgs/by-name/se/sendme/Cargo.lock b/pkgs/by-name/se/sendme/Cargo.lock
new file mode 100644
index 000000000000..98ed742f519e
--- /dev/null
+++ b/pkgs/by-name/se/sendme/Cargo.lock
@@ -0,0 +1,4505 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[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 = [
+ "bytes",
+ "crypto-common",
+ "generic-array",
+]
+
+[[package]]
+name = "ahash"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a"
+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 = "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 = "anstream"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d664a92ecae85fd0a7392615844904654d1d5f5514837f471ddef4a057aba1b6"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
+
+[[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.76"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59d2a3357dde987206219e78ecfbbb6e8dad06cbb65292758d3270e6254f7355"
+
+[[package]]
+name = "arrayref"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545"
+
+[[package]]
+name = "arrayvec"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
+
+[[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",
+ "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.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",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "async-trait"
+version = "0.1.75"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fdf6721fb0140e4f897002dd086c06f6c27775df19cfe1fccb21181a48fd2c98"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.42",
+]
+
+[[package]]
+name = "attohttpc"
+version = "0.16.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fdb8867f378f33f78a811a8eb9bf108ad99430d7aad43315dd9319c827ef6247"
+dependencies = [
+ "http 0.2.11",
+ "log",
+ "url",
+ "wildmatch",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "backoff"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1"
+dependencies = [
+ "getrandom",
+ "instant",
+ "rand",
+]
+
+[[package]]
+name = "backtrace"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+]
+
+[[package]]
+name = "bao-tree"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "155e7e0c896695a9049badd7bf2b915d29230e24dc82a7c7ef065eded072404f"
+dependencies = [
+ "bytes",
+ "futures",
+ "iroh-blake3",
+ "iroh-io",
+ "positioned-io",
+ "range-collections",
+ "self_cell",
+ "smallvec",
+ "tokio",
+]
+
+[[package]]
+name = "base-x"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270"
+
+[[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.21.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
+
+[[package]]
+name = "base64ct"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
+
+[[package]]
+name = "binary-merge"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "597bb81c80a54b6a4381b23faba8d7774b144c94cbd1d6fe3f1329bd776554ab"
+
+[[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.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "bounded-integer"
+version = "0.5.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78a6932c88f1d2c29533a3b8a5f5a2f84cc19c3339b431677c3160c5c2e6ca85"
+
+[[package]]
+name = "bumpalo"
+version = "3.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+
+[[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"
+dependencies = [
+ "serde",
+]
+
+[[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 = "chacha20"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818"
+dependencies = [
+ "cfg-if",
+ "cipher",
+ "cpufeatures",
+]
+
+[[package]]
+name = "chrono"
+version = "0.4.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
+dependencies = [
+ "android-tzdata",
+ "iana-time-zone",
+ "js-sys",
+ "num-traits",
+ "serde",
+ "wasm-bindgen",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "cipher"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
+dependencies = [
+ "crypto-common",
+ "inout",
+ "zeroize",
+]
+
+[[package]]
+name = "clap"
+version = "4.4.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfaff671f6b22ca62406885ece523383b9b64022e341e53e009a62ebc47a45f2"
+dependencies = [
+ "clap_builder",
+ "clap_derive",
+]
+
+[[package]]
+name = "clap_builder"
+version = "4.4.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a216b506622bb1d316cd51328dce24e07bdff4a6128a47c7e7fad11878d5adbb"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "clap_lex",
+ "strsim",
+]
+
+[[package]]
+name = "clap_derive"
+version = "4.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.42",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
+
+[[package]]
+name = "cobs"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15"
+
+[[package]]
+name = "colorchoice"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+
+[[package]]
+name = "console"
+version = "0.15.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8"
+dependencies = [
+ "encode_unicode",
+ "lazy_static",
+ "libc",
+ "unicode-width",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "const-oid"
+version = "0.9.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
+
+[[package]]
+name = "const_format"
+version = "0.2.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3a214c7af3d04997541b18d432afaff4c455e79e2029079647e72fc2bd27673"
+dependencies = [
+ "const_format_proc_macros",
+]
+
+[[package]]
+name = "const_format_proc_macros"
+version = "0.2.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7f6ff08fd20f4f299298a28e2dfa8a8ba1036e6cd2460ac1de7b425d76f2500"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-xid",
+]
+
+[[package]]
+name = "constant_time_eq"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2"
+
+[[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 = "cpufeatures"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "crc"
+version = "3.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe"
+dependencies = [
+ "crc-catalog",
+]
+
+[[package]]
+name = "crc-catalog"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5"
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f"
+dependencies = [
+ "cfg-if",
+]
+
+[[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 = "crypto_box"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16182b4f39a82ec8a6851155cc4c0cda3065bb1db33651726a29e1951de0f009"
+dependencies = [
+ "aead",
+ "chacha20",
+ "crypto_secretbox",
+ "curve25519-dalek",
+ "salsa20",
+ "serdect",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "crypto_secretbox"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9d6cf87adf719ddf43a805e92c6870a531aedda35ff640442cbaf8674e141e1"
+dependencies = [
+ "aead",
+ "chacha20",
+ "cipher",
+ "generic-array",
+ "poly1305",
+ "salsa20",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "curve25519-dalek"
+version = "4.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "curve25519-dalek-derive",
+ "digest",
+ "fiat-crypto",
+ "platforms",
+ "rustc_version",
+ "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",
+ "quote",
+ "syn 2.0.42",
+]
+
+[[package]]
+name = "dashmap"
+version = "5.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
+dependencies = [
+ "cfg-if",
+ "hashbrown",
+ "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-encoding-macro"
+version = "0.1.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20c01c06f5f429efdf2bae21eb67c28b3df3cf85b7dd2d8ef09c0838dac5d33e"
+dependencies = [
+ "data-encoding",
+ "data-encoding-macro-internal",
+]
+
+[[package]]
+name = "data-encoding-macro-internal"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0047d07f2c89b17dd631c80450d69841a6b5d7fb17278cbc43d7e4cfcf2576f3"
+dependencies = [
+ "data-encoding",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "default-net"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ba429d84a27fa854c66fd2e29eb1cdf6d38bbfd4495bd9f522f12a7f21e05bf"
+dependencies = [
+ "dlopen2",
+ "libc",
+ "memalloc",
+ "netlink-packet-core",
+ "netlink-packet-route",
+ "netlink-sys",
+ "once_cell",
+ "system-configuration",
+ "windows 0.48.0",
+]
+
+[[package]]
+name = "der"
+version = "0.7.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c"
+dependencies = [
+ "const-oid",
+ "der_derive",
+ "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",
+ "num-bigint",
+ "num-traits",
+ "rusticata-macros",
+]
+
+[[package]]
+name = "der_derive"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5fe87ce4529967e0ba1dcf8450bab64d97dfd5010a6256187ffe2e43e6f0e049"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.42",
+]
+
+[[package]]
+name = "deranged"
+version = "0.3.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc"
+dependencies = [
+ "powerfmt",
+ "serde",
+]
+
+[[package]]
+name = "derive_more"
+version = "1.0.0-beta.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7abbfc297053be59290e3152f8cbcd52c8642e0728b69ee187d991d4c1af08d"
+dependencies = [
+ "derive_more-impl",
+]
+
+[[package]]
+name = "derive_more-impl"
+version = "1.0.0-beta.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2bba3e9872d7c58ce7ef0fcf1844fcc3e23ef2a58377b50df35dd98e42a5726e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.42",
+ "unicode-xid",
+]
+
+[[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",
+ "quote",
+ "syn 2.0.42",
+]
+
+[[package]]
+name = "dlopen2"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09b4f5f101177ff01b8ec4ecc81eead416a8aa42819a2869311b3420fa114ffa"
+dependencies = [
+ "libc",
+ "once_cell",
+ "winapi",
+]
+
+[[package]]
+name = "dtoa"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653"
+
+[[package]]
+name = "duct"
+version = "0.13.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37ae3fc31835f74c2a7ceda3aeede378b0ae2e74c8f1c36559fcc9ae2a4e7d3e"
+dependencies = [
+ "libc",
+ "once_cell",
+ "os_pipe",
+ "shared_child",
+]
+
+[[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 = "ed25519"
+version = "2.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53"
+dependencies = [
+ "pkcs8",
+ "serde",
+ "signature",
+]
+
+[[package]]
+name = "ed25519-dalek"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0"
+dependencies = [
+ "curve25519-dalek",
+ "ed25519",
+ "rand_core",
+ "serde",
+ "sha2",
+ "subtle",
+ "zeroize",
+]
+
+[[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",
+ "pkcs8",
+ "rand_core",
+ "sec1",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "embedded-io"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced"
+
+[[package]]
+name = "encode_unicode"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
+
+[[package]]
+name = "encoding_rs"
+version = "0.8.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+dependencies = [
+ "cfg-if",
+]
+
+[[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.42",
+]
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "erased-serde"
+version = "0.3.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c138974f9d5e7fe373eb04df7cae98833802ae4b11c24ac7039a21d5af4b26c"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "erased_set"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76a5aa24577083f8190ad401e376b55887c7cd9083ae95d83ceec5d28ea78125"
+
+[[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 = "event-listener"
+version = "2.5.3"
+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 = "fastrand"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+
+[[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.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7"
+
+[[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 = "form_urlencoded"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "futures"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-io",
+ "futures-sink",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa"
+
+[[package]]
+name = "futures-macro"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.42",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817"
+
+[[package]]
+name = "futures-task"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2"
+
+[[package]]
+name = "futures-timer"
+version = "3.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
+
+[[package]]
+name = "futures-util"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-macro",
+ "futures-sink",
+ "futures-task",
+ "memchr",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "genawaiter"
+version = "0.99.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c86bd0361bcbde39b13475e6e36cb24c329964aa2611be285289d1e4b751c1a0"
+dependencies = [
+ "futures-core",
+ "genawaiter-macro",
+ "genawaiter-proc-macro",
+ "proc-macro-hack",
+]
+
+[[package]]
+name = "genawaiter-macro"
+version = "0.99.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b32dfe1fdfc0bbde1f22a5da25355514b5e450c33a6af6770884c8750aedfbc"
+
+[[package]]
+name = "genawaiter-proc-macro"
+version = "0.99.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "784f84eebc366e15251c4a8c3acee82a6a6f427949776ecb88377362a9621738"
+dependencies = [
+ "proc-macro-error",
+ "proc-macro-hack",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "generic-array"
+version = "0.14.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+dependencies = [
+ "typenum",
+ "version_check",
+ "zeroize",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "libc",
+ "wasi",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "gimli"
+version = "0.28.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
+
+[[package]]
+name = "glob"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+
+[[package]]
+name = "governor"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "821239e5672ff23e2a7060901fa622950bbd80b649cdaadd78d1c1767ed14eb4"
+dependencies = [
+ "cfg-if",
+ "dashmap",
+ "futures",
+ "futures-timer",
+ "no-std-compat",
+ "nonzero_ext",
+ "parking_lot",
+ "quanta",
+ "rand",
+ "smallvec",
+]
+
+[[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.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178"
+dependencies = [
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http 0.2.11",
+ "indexmap",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[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.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+
+[[package]]
+name = "hex"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+
+[[package]]
+name = "hmac"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
+dependencies = [
+ "digest",
+]
+
+[[package]]
+name = "hmac-sha1"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1333fad8d94b82cab989da428b0b36a3435db3870d85e971a1d6dc0a8576722"
+dependencies = [
+ "sha1",
+]
+
+[[package]]
+name = "hmac-sha256"
+version = "1.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3688e69b38018fec1557254f64c8dc2cc8ec502890182f395dbb0aa997aa5735"
+
+[[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 = "hostname-validator"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f558a64ac9af88b5ba400d99b579451af0d39c6d360980045b91aac966d705e2"
+
+[[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 = "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 = "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",
+ "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",
+ "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",
+ "tokio",
+ "tokio-rustls",
+]
+
+[[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.58"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "wasm-bindgen",
+ "windows-core 0.51.1",
+]
+
+[[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 = "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"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "igd"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "556b5a75cd4adb7c4ea21c64af1c48cefb2ce7d43dc4352c720a1fe47c21f355"
+dependencies = [
+ "attohttpc",
+ "bytes",
+ "futures",
+ "http 0.2.11",
+ "hyper 0.14.28",
+ "log",
+ "rand",
+ "tokio",
+ "url",
+ "xmltree",
+]
+
+[[package]]
+name = "indexmap"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
+dependencies = [
+ "equivalent",
+ "hashbrown",
+]
+
+[[package]]
+name = "indicatif"
+version = "0.17.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb28741c9db9a713d93deb3bb9515c20788cef5815265bee4980e87bde7e0f25"
+dependencies = [
+ "console",
+ "instant",
+ "number_prefix",
+ "portable-atomic",
+ "unicode-width",
+]
+
+[[package]]
+name = "inout"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "inplace-vec-builder"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf64c2edc8226891a71f127587a2861b132d2b942310843814d5001d99a1d307"
+dependencies = [
+ "smallvec",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if",
+]
+
+[[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 = "iroh-base"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1b42ef43639a86a49132998f066810b702798818993e34565dd4eea835f626e"
+dependencies = [
+ "anyhow",
+ "bao-tree",
+ "data-encoding",
+ "hex",
+ "multibase",
+ "postcard",
+ "serde",
+ "serde-error",
+ "thiserror",
+]
+
+[[package]]
+name = "iroh-blake3"
+version = "1.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6eb52cd11b3de4407f29579ebcd10fd746b0bd8ab758a2afac69baf88e96bede"
+dependencies = [
+ "arrayref",
+ "arrayvec",
+ "cc",
+ "cfg-if",
+ "constant_time_eq",
+]
+
+[[package]]
+name = "iroh-bytes"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38213865ec542f82fc4d8a9748b5cdae92da1707c134428e9f60b1cd46ccbe39"
+dependencies = [
+ "anyhow",
+ "bao-tree",
+ "bytes",
+ "chrono",
+ "data-encoding",
+ "derive_more",
+ "flume",
+ "futures",
+ "genawaiter",
+ "hex",
+ "iroh-base",
+ "iroh-io",
+ "num_cpus",
+ "once_cell",
+ "postcard",
+ "quinn",
+ "rand",
+ "range-collections",
+ "reflink-copy",
+ "self_cell",
+ "serde",
+ "serde-error",
+ "smallvec",
+ "thiserror",
+ "tokio",
+ "tokio-util",
+ "tracing",
+ "tracing-futures",
+]
+
+[[package]]
+name = "iroh-io"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19ace4f69567bfeb726672bab901d3e81be0c01119d860b2a10b7efb1553b880"
+dependencies = [
+ "bytes",
+ "futures",
+ "pin-project",
+ "smallvec",
+ "tokio",
+]
+
+[[package]]
+name = "iroh-metrics"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92a3271df85ec2a18a358d36723039eeacb464d8764531c8fd9f822dac39410d"
+dependencies = [
+ "anyhow",
+ "erased_set",
+ "http-body-util",
+ "hyper 1.1.0",
+ "hyper-util",
+ "once_cell",
+ "prometheus-client",
+ "reqwest",
+ "serde",
+ "struct_iterable",
+ "time",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "iroh-net"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0477847a7fe225f71fbdff7b0baccea8fc9c9b33e7755f4b28e19f075bd64499"
+dependencies = [
+ "aead",
+ "anyhow",
+ "backoff",
+ "bytes",
+ "crypto_box",
+ "curve25519-dalek",
+ "data-encoding",
+ "default-net",
+ "der",
+ "derive_more",
+ "duct",
+ "ed25519-dalek",
+ "flume",
+ "futures",
+ "governor",
+ "hex",
+ "hostname",
+ "http 1.0.0",
+ "http-body-util",
+ "hyper 1.1.0",
+ "hyper-util",
+ "igd",
+ "iroh-base",
+ "iroh-metrics",
+ "libc",
+ "netlink-packet-core",
+ "netlink-packet-route",
+ "netlink-sys",
+ "num_enum",
+ "once_cell",
+ "parking_lot",
+ "postcard",
+ "quinn",
+ "quinn-proto",
+ "quinn-udp",
+ "rand",
+ "rand_core",
+ "rcgen",
+ "reqwest",
+ "ring 0.17.7",
+ "rtnetlink",
+ "rustls",
+ "rustls-webpki",
+ "serde",
+ "serde_bytes",
+ "serdect",
+ "smallvec",
+ "socket2",
+ "ssh-key",
+ "strum",
+ "stun-rs",
+ "surge-ping",
+ "thiserror",
+ "time",
+ "tokio",
+ "tokio-rustls",
+ "tokio-rustls-acme",
+ "tokio-util",
+ "tracing",
+ "trust-dns-resolver",
+ "ttl_cache",
+ "url",
+ "watchable",
+ "webpki-roots",
+ "windows 0.51.1",
+ "wmi",
+ "x509-parser",
+ "zeroize",
+]
+
+[[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.66"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca"
+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 = "libc"
+version = "0.2.151"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4"
+
+[[package]]
+name = "libm"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
+
+[[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.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456"
+
+[[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 = "mach2"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709"
+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 = "md5"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
+
+[[package]]
+name = "memalloc"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df39d232f5c40b0891c10216992c2f250c054105cb1e56f0fc9032db6203ecc1"
+
+[[package]]
+name = "memchr"
+version = "2.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
+
+[[package]]
+name = "mime"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
+
+[[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.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+dependencies = [
+ "adler",
+]
+
+[[package]]
+name = "mio"
+version = "0.8.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
+dependencies = [
+ "libc",
+ "wasi",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "multibase"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404"
+dependencies = [
+ "base-x",
+ "data-encoding",
+ "data-encoding-macro",
+]
+
+[[package]]
+name = "nanorand"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "netlink-packet-core"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72724faf704479d67b388da142b186f916188505e7e0b26719019c525882eda4"
+dependencies = [
+ "anyhow",
+ "byteorder",
+ "netlink-packet-utils",
+]
+
+[[package]]
+name = "netlink-packet-route"
+version = "0.17.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "053998cea5a306971f88580d0829e90f270f940befd7cf928da179d4187a5a66"
+dependencies = [
+ "anyhow",
+ "bitflags 1.3.2",
+ "byteorder",
+ "libc",
+ "netlink-packet-core",
+ "netlink-packet-utils",
+]
+
+[[package]]
+name = "netlink-packet-utils"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ede8a08c71ad5a95cdd0e4e52facd37190977039a4704eb82a283f713747d34"
+dependencies = [
+ "anyhow",
+ "byteorder",
+ "paste",
+ "thiserror",
+]
+
+[[package]]
+name = "netlink-proto"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "842c6770fc4bb33dd902f41829c61ef872b8e38de1405aa0b938b27b8fba12c3"
+dependencies = [
+ "bytes",
+ "futures",
+ "log",
+ "netlink-packet-core",
+ "netlink-sys",
+ "thiserror",
+ "tokio",
+]
+
+[[package]]
+name = "netlink-sys"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6471bf08e7ac0135876a9581bf3217ef0333c191c128d34878079f42ee150411"
+dependencies = [
+ "bytes",
+ "futures",
+ "libc",
+ "log",
+ "tokio",
+]
+
+[[package]]
+name = "nix"
+version = "0.26.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
+dependencies = [
+ "bitflags 1.3.2",
+ "cfg-if",
+ "libc",
+]
+
+[[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 = "no-std-compat"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c"
+
+[[package]]
+name = "no-std-net"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43794a0ace135be66a25d3ae77d41b91615fb68ae937f904090203e81f755b65"
+
+[[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 = "nonzero_ext"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21"
+
+[[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",
+]
+
+[[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",
+ "smallvec",
+ "zeroize",
+]
+
+[[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.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
+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",
+ "libc",
+]
+
+[[package]]
+name = "num_enum"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "683751d591e6d81200c39fb0d1032608b77724f34114db54f571ff1317b337c0"
+dependencies = [
+ "num_enum_derive",
+]
+
+[[package]]
+name = "num_enum_derive"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c11e44798ad209ccdd91fc192f0526a369a01234f7373e1b141c96d7cee4f0e"
+dependencies = [
+ "proc-macro-crate",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.42",
+]
+
+[[package]]
+name = "number_prefix"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
+
+[[package]]
+name = "object"
+version = "0.32.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
+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 = "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 = "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 = "overload"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+
+[[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",
+ "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 = "pem"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b13fe415cdf3c8e44518e18a7c95a13431d9bdf6d15367d82b23c377fdd441a"
+dependencies = [
+ "base64",
+ "serde",
+]
+
+[[package]]
+name = "pem"
+version = "3.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b8fcc794035347fb64beda2d3b462595dd2753e3f268d89c5aae77e8cf2c310"
+dependencies = [
+ "base64",
+ "serde",
+]
+
+[[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.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
+
+[[package]]
+name = "pest"
+version = "2.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5"
+dependencies = [
+ "memchr",
+ "thiserror",
+ "ucd-trie",
+]
+
+[[package]]
+name = "pest_derive"
+version = "2.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81d78524685f5ef2a3b3bd1cafbc9fcabb036253d9b1463e726a91cd16e2dfc2"
+dependencies = [
+ "pest",
+ "pest_generator",
+]
+
+[[package]]
+name = "pest_generator"
+version = "2.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68bd1206e71118b5356dae5ddc61c8b11e28b09ef6a31acbd15ea48a28e0c227"
+dependencies = [
+ "pest",
+ "pest_meta",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.42",
+]
+
+[[package]]
+name = "pest_meta"
+version = "2.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7c747191d4ad9e4a4ab9c8798f1e82a39affe7ef9648390b7e5548d18e099de6"
+dependencies = [
+ "once_cell",
+ "pest",
+ "sha2",
+]
+
+[[package]]
+name = "pin-project"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
+dependencies = [
+ "pin-project-internal",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.42",
+]
+
+[[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 = "platforms"
+version = "3.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0"
+
+[[package]]
+name = "pnet_base"
+version = "0.33.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "872e46346144ebf35219ccaa64b1dffacd9c6f188cd7d012bd6977a2a838f42e"
+dependencies = [
+ "no-std-net",
+]
+
+[[package]]
+name = "pnet_macros"
+version = "0.33.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a780e80005c2e463ec25a6e9f928630049a10b43945fea83207207d4a7606f4"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "regex",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "pnet_macros_support"
+version = "0.33.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6d932134f32efd7834eb8b16d42418dac87086347d1bc7d142370ef078582bc"
+dependencies = [
+ "pnet_base",
+]
+
+[[package]]
+name = "pnet_packet"
+version = "0.33.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8bde678bbd85cb1c2d99dc9fc596e57f03aa725f84f3168b0eaf33eeccb41706"
+dependencies = [
+ "glob",
+ "pnet_base",
+ "pnet_macros",
+ "pnet_macros_support",
+]
+
+[[package]]
+name = "poly1305"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf"
+dependencies = [
+ "cpufeatures",
+ "opaque-debug",
+ "universal-hash",
+]
+
+[[package]]
+name = "portable-atomic"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
+
+[[package]]
+name = "positioned-io"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ccabfeeb89c73adf4081f0dca7f8e28dbda90981a222ceea37f619e93ea6afe9"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "postcard"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a55c51ee6c0db07e68448e336cf8ea4131a620edefebf9893e759b2d793420f8"
+dependencies = [
+ "cobs",
+ "const_format",
+ "embedded-io",
+ "postcard-derive",
+ "serde",
+]
+
+[[package]]
+name = "postcard-derive"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc4b01218787dd4420daf63875163a787a78294ad48a24e9f6fa8c6507759a79"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[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 = "precis-core"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d73e9dd26361c32e7cd13d1032bb01c4e26a23287274e8a4e2f228cf2c9ff77b"
+dependencies = [
+ "precis-tools",
+ "ucd-parse",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "precis-profiles"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "688124d96df311c37d794fb574bb5f75cdc86d8c5e514d3816d770a3dd0e1568"
+dependencies = [
+ "lazy_static",
+ "precis-core",
+ "precis-tools",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "precis-tools"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d07ecadec70b0f560f09abf815ae0ee1a940d38d2354c938ba7229ac7c9f5f52"
+dependencies = [
+ "lazy_static",
+ "regex",
+ "ucd-parse",
+]
+
+[[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-crate"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97dc5fea232fc28d2f597b37c4876b348a40e33f3b02cc975c8d006d78d94b1a"
+dependencies = [
+ "toml_datetime",
+ "toml_edit",
+]
+
+[[package]]
+name = "proc-macro-error"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18f33027081eba0a6d8aba6d1b1c3a3be58cbb12106341c2d5759fcd9b5277e7"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a5b4b77fdb63c1eca72173d68d24501c54ab1269409f6b672c85deb18af69de"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "syn-mid",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-hack"
+version = "0.5.20+deprecated"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.70"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "prometheus-client"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "510c4f1c9d81d556458f94c98f857748130ea9737bbd6053da497503b26ea63c"
+dependencies = [
+ "dtoa",
+ "itoa",
+ "parking_lot",
+ "prometheus-client-derive-encode",
+]
+
+[[package]]
+name = "prometheus-client-derive-encode"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.42",
+]
+
+[[package]]
+name = "quanta"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a17e662a7a8291a865152364c20c7abc5e60486ab2001e8ec10b24862de0b9ab"
+dependencies = [
+ "crossbeam-utils",
+ "libc",
+ "mach2",
+ "once_cell",
+ "raw-cpuid",
+ "wasi",
+ "web-sys",
+ "winapi",
+]
+
+[[package]]
+name = "quick-error"
+version = "1.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
+
+[[package]]
+name = "quinn"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8cc2c5017e4b43d5995dcea317bc46c1e09404c0a9664d2908f7f02dfe943d75"
+dependencies = [
+ "bytes",
+ "pin-project-lite",
+ "quinn-proto",
+ "quinn-udp",
+ "rustc-hash",
+ "rustls",
+ "thiserror",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "quinn-proto"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "141bf7dfde2fbc246bfd3fe12f2455aa24b0fbd9af535d8c86c7bd1381ff2b1a"
+dependencies = [
+ "bytes",
+ "rand",
+ "ring 0.16.20",
+ "rustc-hash",
+ "rustls",
+ "rustls-native-certs",
+ "slab",
+ "thiserror",
+ "tinyvec",
+ "tracing",
+]
+
+[[package]]
+name = "quinn-udp"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "055b4e778e8feb9f93c4e439f71dc2156ef13360b432b799e179a8c4cdf0b1d7"
+dependencies = [
+ "bytes",
+ "libc",
+ "socket2",
+ "tracing",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "quoted-string-parser"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0dc75379cdb451d001f1cb667a9f74e8b355e9df84cc5193513cbe62b96fc5e9"
+dependencies = [
+ "pest",
+ "pest_derive",
+]
+
+[[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-collections"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca9edd21e2db51000ac63eccddabba622f826e631a60be7bade9bd6a76b69537"
+dependencies = [
+ "binary-merge",
+ "inplace-vec-builder",
+ "ref-cast",
+ "smallvec",
+]
+
+[[package]]
+name = "raw-cpuid"
+version = "10.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c297679cb867470fa8c9f67dbba74a78d78e3e98d7cf2b08d6d71540f797332"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "rcgen"
+version = "0.11.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52c4f3084aa3bc7dfbba4eff4fab2a54db4324965d8872ab933565e6fbd83bc6"
+dependencies = [
+ "pem 3.0.3",
+ "ring 0.16.20",
+ "time",
+ "yasna",
+]
+
+[[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.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53313ec9f12686aeeffb43462c3ac77aa25f590a5f630eb2cde0de59417b29c7"
+dependencies = [
+ "ref-cast-impl",
+]
+
+[[package]]
+name = "ref-cast-impl"
+version = "1.0.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2566c4bf6845f2c2e83b27043c3f5dfcd5ba8f2937d6c00dc009bfb51a079dc4"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.42",
+]
+
+[[package]]
+name = "reflink-copy"
+version = "0.1.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "767be24c0da52e7448d495b8d162506a9aa125426651d547d545d6c2b4b65b62"
+dependencies = [
+ "cfg-if",
+ "rustix",
+ "windows 0.52.0",
+]
+
+[[package]]
+name = "regex"
+version = "1.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata 0.4.3",
+ "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.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax 0.8.2",
+]
+
+[[package]]
+name = "regex-lite"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30b661b2f27137bdbc16f00eda72866a92bb28af1753ffbd56744fb6e2e9cd8e"
+
+[[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 = "reqwest"
+version = "0.11.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37b1ae8d9ac08420c66222fb9096fc5de435c3c48542bc5336c51892cffafb41"
+dependencies = [
+ "base64",
+ "bytes",
+ "encoding_rs",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http 0.2.11",
+ "http-body 0.4.6",
+ "hyper 0.14.28",
+ "hyper-rustls",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustls",
+ "rustls-pemfile",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "system-configuration",
+ "tokio",
+ "tokio-rustls",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "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.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"
+dependencies = [
+ "cc",
+ "getrandom",
+ "libc",
+ "spin 0.9.8",
+ "untrusted 0.9.0",
+ "windows-sys 0.48.0",
+]
+
+[[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",
+ "sha2",
+ "signature",
+ "spki",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "rtnetlink"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a552eb82d19f38c3beed3f786bd23aa434ceb9ac43ab44419ca6d67a7e186c0"
+dependencies = [
+ "futures",
+ "log",
+ "netlink-packet-core",
+ "netlink-packet-route",
+ "netlink-packet-utils",
+ "netlink-proto",
+ "netlink-sys",
+ "nix 0.26.4",
+ "thiserror",
+ "tokio",
+]
+
+[[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.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.38.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316"
+dependencies = [
+ "bitflags 2.4.1",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "rustls"
+version = "0.21.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
+dependencies = [
+ "log",
+ "ring 0.17.7",
+ "rustls-webpki",
+ "sct",
+]
+
+[[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",
+ "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",
+]
+
+[[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",
+ "untrusted 0.9.0",
+]
+
+[[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 = "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 = "schannel"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88"
+dependencies = [
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "sct"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
+dependencies = [
+ "ring 0.17.7",
+ "untrusted 0.9.0",
+]
+
+[[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 = "self_cell"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "58bf37232d3bb9a2c4e641ca2a11d83b5062066f88df7fed36c28772046d65ba"
+
+[[package]]
+name = "semver"
+version = "1.0.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
+
+[[package]]
+name = "sendme"
+version = "0.2.3"
+dependencies = [
+ "anyhow",
+ "base32",
+ "clap",
+ "console",
+ "duct",
+ "flume",
+ "futures",
+ "hex",
+ "indicatif",
+ "iroh-bytes",
+ "iroh-io",
+ "iroh-net",
+ "nix 0.27.1",
+ "num_cpus",
+ "rand",
+ "serde_json",
+ "tempfile",
+ "tokio",
+ "tokio-util",
+ "tracing",
+ "tracing-subscriber",
+ "walkdir",
+]
+
+[[package]]
+name = "serde"
+version = "1.0.193"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde-error"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e988182713aeed6a619a88bca186f6d6407483485ffe44c869ee264f8eabd13f"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde_bytes"
+version = "0.11.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.193"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.42",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.108"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
+dependencies = [
+ "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 = "serdect"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177"
+dependencies = [
+ "base16ct",
+ "serde",
+]
+
+[[package]]
+name = "sha1"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc30b1e1e8c40c121ca33b86c23308a090d19974ef001b4bf6e61fd1a0fb095c"
+
+[[package]]
+name = "sha2"
+version = "0.10.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
+dependencies = [
+ "cfg-if",
+ "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 = "shared_child"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0d94659ad3c2137fef23ae75b03d5241d633f8acded53d672decfa0e6e0caef"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[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 = "signature"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
+dependencies = [
+ "digest",
+ "rand_core",
+]
+
+[[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.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
+dependencies = [
+ "serde",
+]
+
+[[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 = "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 = "spki"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d"
+dependencies = [
+ "base64ct",
+ "der",
+]
+
+[[package]]
+name = "ssh-cipher"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "caac132742f0d33c3af65bfcde7f6aa8f62f0e991d80db99149eb9d44708784f"
+dependencies = [
+ "cipher",
+ "ssh-encoding",
+]
+
+[[package]]
+name = "ssh-encoding"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb9242b9ef4108a78e8cd1a2c98e193ef372437f8c22be363075233321dd4a15"
+dependencies = [
+ "base64ct",
+ "pem-rfc7468",
+ "sha2",
+]
+
+[[package]]
+name = "ssh-key"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c51901eb883a5b442b506a1f8fa483d143f3bab513fe721e398ec56c77624feb"
+dependencies = [
+ "ed25519-dalek",
+ "p256",
+ "p384",
+ "p521",
+ "rand_core",
+ "rsa",
+ "sec1",
+ "sha2",
+ "signature",
+ "ssh-cipher",
+ "ssh-encoding",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "struct_iterable"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "849a064c6470a650b72e41fa6c057879b68f804d113af92900f27574828e7712"
+dependencies = [
+ "struct_iterable_derive",
+ "struct_iterable_internal",
+]
+
+[[package]]
+name = "struct_iterable_derive"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8bb939ce88a43ea4e9d012f2f6b4cc789deb2db9d47bad697952a85d6978662c"
+dependencies = [
+ "erased-serde",
+ "proc-macro2",
+ "quote",
+ "struct_iterable_internal",
+ "syn 2.0.42",
+]
+
+[[package]]
+name = "struct_iterable_internal"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e9426b2a0c03e6cc2ea8dbc0168dbbf943f88755e409fb91bcb8f6a268305f4a"
+
+[[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",
+ "quote",
+ "rustversion",
+ "syn 2.0.42",
+]
+
+[[package]]
+name = "stun-rs"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78517bf347f802eba0204cdecf5ff10fb7056c914a3b2d9f2011f231cb1438b5"
+dependencies = [
+ "bounded-integer",
+ "byteorder",
+ "crc",
+ "fallible-iterator",
+ "hmac-sha1",
+ "hmac-sha256",
+ "hostname-validator",
+ "lazy_static",
+ "md5",
+ "paste",
+ "precis-core",
+ "precis-profiles",
+ "quoted-string-parser",
+ "rand",
+]
+
+[[package]]
+name = "subtle"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
+
+[[package]]
+name = "surge-ping"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af341b2be485d647b5dc4cfb2da99efac35b5c95748a08fb7233480fedc5ead3"
+dependencies = [
+ "hex",
+ "parking_lot",
+ "pnet_packet",
+ "rand",
+ "socket2",
+ "thiserror",
+ "tokio",
+ "tracing",
+]
+
+[[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.42"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b7d0a2c048d661a1a59fcd7355baa232f7ed34e0ee4df2eef3c1c1c0d3852d8"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn-mid"
+version = "0.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fea305d57546cc8cd04feb14b62ec84bf17f50e3f7b12560d7bfa9265f39d9ed"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[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.109",
+ "unicode-xid",
+]
+
+[[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 = "tempfile"
+version = "3.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
+dependencies = [
+ "cfg-if",
+ "fastrand",
+ "redox_syscall",
+ "rustix",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.51"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.51"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.42",
+]
+
+[[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 = "time"
+version = "0.3.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e"
+dependencies = [
+ "deranged",
+ "itoa",
+ "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.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f"
+dependencies = [
+ "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 = "tokio"
+version = "1.35.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
+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",
+ "quote",
+ "syn 2.0.42",
+]
+
+[[package]]
+name = "tokio-rustls"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
+dependencies = [
+ "rustls",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-rustls-acme"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfb6f50b5523d014ba161512c37457acb16fd8218c883c7152e0a67ab763f2d4"
+dependencies = [
+ "async-trait",
+ "base64",
+ "chrono",
+ "futures",
+ "log",
+ "pem 2.0.1",
+ "rcgen",
+ "reqwest",
+ "ring 0.16.20",
+ "rustls",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "tokio",
+ "tokio-rustls",
+ "url",
+ "webpki-roots",
+ "x509-parser",
+]
+
+[[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-sink",
+ "futures-util",
+ "hashbrown",
+ "pin-project-lite",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
+
+[[package]]
+name = "toml_edit"
+version = "0.20.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338"
+dependencies = [
+ "indexmap",
+ "toml_datetime",
+ "winnow",
+]
+
+[[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 = [
+ "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 2.0.42",
+]
+
+[[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-futures"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2"
+dependencies = [
+ "pin-project",
+ "tracing",
+]
+
+[[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.23.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3119112651c157f4488931a01e586aa459736e9d6046d3bd9105ffb69352d374"
+dependencies = [
+ "async-trait",
+ "cfg-if",
+ "data-encoding",
+ "enum-as-inner",
+ "futures-channel",
+ "futures-io",
+ "futures-util",
+ "idna 0.4.0",
+ "ipnet",
+ "once_cell",
+ "rand",
+ "smallvec",
+ "thiserror",
+ "tinyvec",
+ "tokio",
+ "tracing",
+ "url",
+]
+
+[[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",
+ "rand",
+ "resolv-conf",
+ "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 = "ttl_cache"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4189890526f0168710b6ee65ceaedf1460c48a14318ceec933cb26baa492096a"
+dependencies = [
+ "linked-hash-map",
+]
+
+[[package]]
+name = "typenum"
+version = "1.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+
+[[package]]
+name = "ucd-parse"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "212c59636157b18c2f57eed2799e6606c52fc49c6a11685ffb0d08f06e55f428"
+dependencies = [
+ "regex-lite",
+]
+
+[[package]]
+name = "ucd-trie"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416"
+
+[[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-width"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
+
+[[package]]
+name = "unicode-xid"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
+
+[[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.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 = "url"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
+dependencies = [
+ "form_urlencoded",
+ "idna 0.5.0",
+ "percent-encoding",
+ "serde",
+]
+
+[[package]]
+name = "utf8parse"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+
+[[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 = "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 = "wasm-bindgen"
+version = "0.2.89"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.89"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.42",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.39"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.89"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.89"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.42",
+ "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 = "watchable"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff90d0baafb3c0abbeebec1a8a305b4211c356de1d953a0dd77aab006baa8a62"
+dependencies = [
+ "event-listener",
+ "futures-util",
+ "parking_lot",
+ "thiserror",
+]
+
+[[package]]
+name = "web-sys"
+version = "0.3.66"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "webpki-roots"
+version = "0.25.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10"
+
+[[package]]
+name = "widestring"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8"
+
+[[package]]
+name = "wildmatch"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f44b95f62d34113cf558c93511ac93027e03e9c29a60dd0fd70e6e025c7270a"
+
+[[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.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
+dependencies = [
+ "windows-implement",
+ "windows-interface",
+ "windows-targets 0.48.5",
+]
+
+[[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"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
+dependencies = [
+ "windows-core 0.52.0",
+ "windows-targets 0.52.0",
+]
+
+[[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-implement"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5e2ee588991b9e7e6c8338edf3333fbe4da35dc72092643958ebb43f0ab2c49c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "windows-interface"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6fb8df20c9bcaa8ad6ab513f7b40104840c8867d5751126e4df3b08388d0cc7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.45.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+dependencies = [
+ "windows-targets 0.42.2",
+]
+
+[[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.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+dependencies = [
+ "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.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.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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+
+[[package]]
+name = "winnow"
+version = "0.5.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b5c3db89721d50d0e2a673f5043fc4722f76dcc352d7b1ab8b8288bed4ed2c5"
+dependencies = [
+ "memchr",
+]
+
+[[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 = "wmi"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ced703d10188571ce53582c2932ce640ed3c413cff7ee6e2d961f9abdb6a63d1"
+dependencies = [
+ "chrono",
+ "futures",
+ "log",
+ "serde",
+ "thiserror",
+ "windows 0.48.0",
+]
+
+[[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",
+ "oid-registry",
+ "rusticata-macros",
+ "thiserror",
+ "time",
+]
+
+[[package]]
+name = "xml-rs"
+version = "0.8.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a"
+
+[[package]]
+name = "xmltree"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7d8a75eaf6557bb84a65ace8609883db44a29951042ada9b393151532e41fcb"
+dependencies = [
+ "xml-rs",
+]
+
+[[package]]
+name = "yasna"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd"
+dependencies = [
+ "time",
+]
+
+[[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.42",
+]
+
+[[package]]
+name = "zeroize"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
diff --git a/pkgs/by-name/se/sendme/package.nix b/pkgs/by-name/se/sendme/package.nix
new file mode 100644
index 000000000000..edcad04fc54a
--- /dev/null
+++ b/pkgs/by-name/se/sendme/package.nix
@@ -0,0 +1,39 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, darwin
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "sendme";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "n0-computer";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-UaAiHGeSqy4kHO9CZX3kYeECZDo45web6yMbBRVnlhQ=";
+  };
+
+  # TODO: Remove lock file and use 'cargoHash' instead once `watchable` crate
+  # is upgraded past v1.1.1.
+  # See https://github.com/khonsulabs/watchable/issues/1
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+  };
+
+  buildInputs = lib.optionals stdenv.isDarwin (
+    with darwin.apple_sdk.frameworks; [
+      SystemConfiguration
+    ]
+  );
+
+  meta = with lib; {
+    description = "A tool to send files and directories, based on iroh";
+    homepage = "https://iroh.computer/sendme";
+    license = with licenses; [ asl20 mit ];
+    maintainers = with maintainers; [ cameronfyfe ];
+    mainProgram = "sendme";
+  };
+}
diff --git a/pkgs/by-name/sh/shopware-cli/package.nix b/pkgs/by-name/sh/shopware-cli/package.nix
index ac8a75db8d3b..471a90c0ab29 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.5";
+  version = "0.4.22";
   src = fetchFromGitHub {
     repo = "shopware-cli";
     owner = "FriendsOfShopware";
     rev = version;
-    hash = "sha256-1ZF7xqON3zRGZaBqTSKyUQd3mKEQEXZNWujZayjFBfY=";
+    hash = "sha256-P93wxAApV2iWXSQGXsCPjmvj2gGMwbKw6+yMgiainb4=";
   };
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
   nativeCheckInputs = [ git dart-sass ];
 
-  vendorHash = "sha256-iS1yY3zXPtHS19DqZIZ6Z9B6oocQVy4KQuQPoXWLfBc=";
+  vendorHash = "sha256-FalN3qhw2o9NvSIfEU4juevPAsxQoksNjL3eATf0umU=";
 
   postInstall = ''
     export HOME="$(mktemp -d)"
diff --git a/pkgs/by-name/sh/show-midi/package.nix b/pkgs/by-name/sh/show-midi/package.nix
new file mode 100644
index 000000000000..4e3029921321
--- /dev/null
+++ b/pkgs/by-name/sh/show-midi/package.nix
@@ -0,0 +1,83 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, alsa-lib
+, freetype
+, libX11
+, libXrandr
+, libXinerama
+, libXext
+, libXcursor
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "show-midi";
+  version = "0.9.0";
+
+  src = fetchFromGitHub {
+    owner = "gbevin";
+    repo = "ShowMIDI";
+    rev = finalAttrs.version;
+    hash = "sha256-xt2LpoiaOWAeWM/YzaKM0WGi8aHs4T7pvMw1s/P4Oj0=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [
+    alsa-lib
+    freetype
+    libX11
+    libXrandr
+    libXinerama
+    libXext
+    libXcursor
+  ];
+
+  enableParallelBuilding = true;
+
+  makeFlags = [
+    "-C Builds/LinuxMakefile"
+    "CONFIG=Release"
+    # Specify targets by hand, because it tries to build VST by default,
+    # even though it's not supported in JUCE anymore
+    "LV2"
+    "LV2_MANIFEST_HELPER"
+    "Standalone"
+    "VST3"
+    "VST3_MANIFEST_HELPER"
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dt $out/share/ShowMIDI/themes Themes/*
+
+    mkdir -p $out/bin $out/lib/lv2 $out/lib/vst3
+    cd Builds/LinuxMakefile/build/
+    cp -r ShowMIDI.lv2 $out/lib/lv2
+    cp -r ShowMIDI.vst3 $out/lib/vst3
+    cp ShowMIDI $out/bin
+
+    runHook postInstall
+  '';
+
+  # JUCE dlopens these, make sure they are in rpath
+  # Otherwise, segfault will happen
+  env.NIX_LDFLAGS = toString [
+    "-lX11"
+    "-lXext"
+    "-lXcursor"
+    "-lXinerama"
+    "-lXrandr"
+  ];
+
+  meta = with lib; {
+    description = "Multi-platform GUI application to effortlessly visualize MIDI activity";
+    homepage = "https://github.com/gbevin/ShowMIDI";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ minijackson ];
+    mainProgram = "ShowMIDI";
+    platforms = platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/si/signal-export/package.nix b/pkgs/by-name/si/signal-export/package.nix
index b142350c4214..95aeae284760 100644
--- a/pkgs/by-name/si/signal-export/package.nix
+++ b/pkgs/by-name/si/signal-export/package.nix
@@ -6,12 +6,12 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "signal-export";
-  version = "1.7.1";
+  version = "1.8.0";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-OikD5z0Ota0w4PTdLU4cz0YO/bJHAlzy3nup06GtiS4=";
+    sha256 = "sha256-ZGF6vT+fjmBL3SGrZ/E6bvcxToTlbAcxspQAnR/Aboo=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/misc/silicon/Cargo.lock b/pkgs/by-name/si/silicon/Cargo.lock
index 1902b848c083..0133214e7095 100644
--- a/pkgs/tools/misc/silicon/Cargo.lock
+++ b/pkgs/by-name/si/silicon/Cargo.lock
@@ -4,9 +4,9 @@ version = 3
 
 [[package]]
 name = "ab_glyph_rasterizer"
-version = "0.1.7"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "330223a1aecc308757b9926e9391c9b47f8ef2dbd8aea9df88312aea18c5e8d6"
+checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046"
 
 [[package]]
 name = "adler"
@@ -25,9 +25,9 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.65"
+version = "1.0.75"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602"
+checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
 
 [[package]]
 name = "approx"
@@ -57,9 +57,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
 name = "base64"
-version = "0.13.0"
+version = "0.21.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
+checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
 
 [[package]]
 name = "bincode"
@@ -77,6 +77,12 @@ 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"
 version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -84,21 +90,24 @@ checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
 
 [[package]]
 name = "bytemuck"
-version = "1.12.1"
+version = "1.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f5715e491b5a1598fc2bef5a606847b5dc1d48ea625bd3c02c00de8285591da"
+checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
 
 [[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 = "cc"
-version = "1.0.73"
+version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+dependencies = [
+ "libc",
+]
 
 [[package]]
 name = "cfg-if"
@@ -114,7 +123,7 @@ checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
 dependencies = [
  "ansi_term",
  "atty",
- "bitflags",
+ "bitflags 1.3.2",
  "strsim",
  "term_size",
  "textwrap",
@@ -146,9 +155,9 @@ dependencies = [
 
 [[package]]
 name = "clipboard-win"
-version = "4.4.2"
+version = "4.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4ab1b92798304eedc095b53942963240037c0516452cb11aeba709d420b2219"
+checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362"
 dependencies = [
  "error-code",
  "str-buf",
@@ -157,20 +166,20 @@ dependencies = [
 
 [[package]]
 name = "cmake"
-version = "0.1.48"
+version = "0.1.50"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8ad8cef104ac57b68b89df3208164d228503abbdce70f6880ffa3d970e7443a"
+checksum = "a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130"
 dependencies = [
  "cc",
 ]
 
 [[package]]
 name = "cocoa"
-version = "0.24.0"
+version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f63902e9223530efb4e26ccd0cf55ec30d592d3b42e21a28defc42a9586e832"
+checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "block",
  "cocoa-foundation",
  "core-foundation",
@@ -182,15 +191,14 @@ dependencies = [
 
 [[package]]
 name = "cocoa-foundation"
-version = "0.1.0"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318"
+checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "block",
  "core-foundation",
  "core-graphics-types",
- "foreign-types",
  "libc",
  "objc",
 ]
@@ -228,9 +236,9 @@ dependencies = [
 
 [[package]]
 name = "core-foundation-sys"
-version = "0.8.3"
+version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
+checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
 
 [[package]]
 name = "core-graphics"
@@ -238,7 +246,7 @@ version = "0.22.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "core-foundation",
  "core-graphics-types",
  "foreign-types",
@@ -247,13 +255,12 @@ dependencies = [
 
 [[package]]
 name = "core-graphics-types"
-version = "0.1.1"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b"
+checksum = "2bb142d41022986c1d8ff29103a1411c8a3dfad3552f87a4f8dc50d61d4f4e33"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "core-foundation",
- "foreign-types",
  "libc",
 ]
 
@@ -279,20 +286,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "crossbeam-channel"
-version = "0.5.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521"
-dependencies = [
- "cfg-if",
- "crossbeam-utils",
-]
-
-[[package]]
 name = "crossbeam-deque"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc"
+checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
 dependencies = [
  "cfg-if",
  "crossbeam-epoch",
@@ -301,9 +298,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.11"
+version = "0.9.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f916dfc5d356b0ed9dae65f1db9fc9770aa2851d2662b988ccf4fe3516e86348"
+checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
 dependencies = [
  "autocfg",
  "cfg-if",
@@ -314,9 +311,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.12"
+version = "0.8.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac"
+checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
 dependencies = [
  "cfg-if",
 ]
@@ -328,6 +325,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ef8ae57c4978a2acd8b869ce6b9ca1dfe817bff704c220209fdef2c0b75a01b9"
 
 [[package]]
+name = "deranged"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3"
+dependencies = [
+ "powerfmt",
+]
+
+[[package]]
 name = "dirs"
 version = "4.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -370,9 +376,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",
 ]
@@ -391,15 +397,15 @@ dependencies = [
 
 [[package]]
 name = "either"
-version = "1.8.0"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797"
+checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
 
 [[package]]
 name = "env_logger"
-version = "0.9.1"
+version = "0.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c90bf5f19754d10198ccb95b70664fc925bd1fc090a0fd9a6ebc54acc8cd6272"
+checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7"
 dependencies = [
  "atty",
  "humantime",
@@ -408,6 +414,22 @@ dependencies = [
 ]
 
 [[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.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f258a7194e7f7c2a7837a8913aeab7fd8c383457034fa20ce4dd3dcb813e8eb8"
+dependencies = [
+ "libc",
+ "windows-sys",
+]
+
+[[package]]
 name = "error-code"
 version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -419,18 +441,24 @@ dependencies = [
 
 [[package]]
 name = "fastrand"
-version = "1.8.0"
+version = "2.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+
+[[package]]
+name = "fdeflate"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "64d6dafc854908ff5da46ff3f8f473c6984119a2876a383a860246dd7841a868"
 dependencies = [
- "instant",
+ "simd-adler32",
 ]
 
 [[package]]
 name = "flate2"
-version = "1.0.24"
+version = "1.0.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
 dependencies = [
  "crc32fast",
  "miniz_oxide",
@@ -454,7 +482,7 @@ version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "21fe28504d371085fae9ac7a3450f0b289ab71e07c8e57baa3fb68b9e57d6ce5"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "byteorder",
  "core-foundation",
  "core-graphics",
@@ -522,9 +550,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.7"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6"
+checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
 dependencies = [
  "cfg-if",
  "libc",
@@ -547,9 +575,9 @@ dependencies = [
 
 [[package]]
 name = "hashbrown"
-version = "0.12.3"
+version = "0.14.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156"
 
 [[package]]
 name = "heck"
@@ -577,9 +605,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
 
 [[package]]
 name = "image"
-version = "0.24.4"
+version = "0.24.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd8e4fb07cf672b1642304e731ef8a6a4c7891d67bb4fd4f5ce58cd6ed86803c"
+checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711"
 dependencies = [
  "bytemuck",
  "byteorder",
@@ -610,24 +638,15 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "1.9.1"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e"
+checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
 dependencies = [
- "autocfg",
+ "equivalent",
  "hashbrown",
 ]
 
 [[package]]
-name = "instant"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
 name = "itertools"
 version = "0.10.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -638,15 +657,15 @@ dependencies = [
 
 [[package]]
 name = "itoa"
-version = "1.0.4"
+version = "1.0.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc"
+checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
 
 [[package]]
 name = "jpeg-decoder"
-version = "0.2.6"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9478aa10f73e7528198d75109c8be5cd7d15fb530238040148d5f9a22d4c5b3b"
+checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e"
 dependencies = [
  "rayon",
 ]
@@ -659,18 +678,29 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libc"
-version = "0.2.135"
+version = "0.2.150"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68783febc7782c6c5cb401fbda4de5a9898be1762314da0bb2c10ced61f18b0c"
+checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
 
 [[package]]
 name = "libloading"
-version = "0.7.3"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd"
+checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
 dependencies = [
  "cfg-if",
- "winapi",
+ "windows-sys",
+]
+
+[[package]]
+name = "libredox"
+version = "0.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
+dependencies = [
+ "bitflags 2.4.1",
+ "libc",
+ "redox_syscall",
 ]
 
 [[package]]
@@ -689,13 +719,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
 
 [[package]]
+name = "linux-raw-sys"
+version = "0.4.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829"
+
+[[package]]
 name = "log"
-version = "0.4.17"
+version = "0.4.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-dependencies = [
- "cfg-if",
-]
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
 name = "malloc_buf"
@@ -708,29 +741,37 @@ dependencies = [
 
 [[package]]
 name = "matrixmultiply"
-version = "0.3.2"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "add85d4dd35074e6fedc608f8c8f513a3548619a9024b751949ef0e8e45a4d84"
+checksum = "7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2"
 dependencies = [
+ "autocfg",
  "rawpointer",
 ]
 
 [[package]]
+name = "memchr"
+version = "2.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
+
+[[package]]
 name = "memoffset"
-version = "0.6.5"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
+checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
 dependencies = [
  "autocfg",
 ]
 
 [[package]]
 name = "miniz_oxide"
-version = "0.5.4"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34"
+checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
 dependencies = [
  "adler",
+ "simd-adler32",
 ]
 
 [[package]]
@@ -750,9 +791,9 @@ dependencies = [
 
 [[package]]
 name = "num"
-version = "0.4.0"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606"
+checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af"
 dependencies = [
  "num-bigint",
  "num-complex",
@@ -764,9 +805,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",
@@ -775,9 +816,9 @@ dependencies = [
 
 [[package]]
 name = "num-complex"
-version = "0.4.2"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ae39348c8bc5fbd7f40c727a9925f03517afd2ab27d46702108b6a7e5414c19"
+checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214"
 dependencies = [
  "num-traits",
 ]
@@ -817,33 +858,14 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.15"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
 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",
- "libc",
-]
-
-[[package]]
-name = "num_threads"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
-dependencies = [
- "libc",
-]
-
-[[package]]
 name = "objc"
 version = "0.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -874,9 +896,9 @@ dependencies = [
 
 [[package]]
 name = "once_cell"
-version = "1.15.0"
+version = "1.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1"
+checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
 
 [[package]]
 name = "onig"
@@ -884,7 +906,7 @@ version = "6.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8c4b31c8722ad9171c6d77d3557db078cab2bd50afcc9d09c8b315c59df8ca4f"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "libc",
  "once_cell",
  "onig_sys",
@@ -902,9 +924,9 @@ dependencies = [
 
 [[package]]
 name = "os_info"
-version = "3.5.1"
+version = "3.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4750134fb6a5d49afc80777394ad5d95b04bc12068c6abb92fae8f43817270f"
+checksum = "006e42d5b888366f1880eda20371fedde764ed2213dc8496f49622fa0c99cd5e"
 dependencies = [
  "log",
  "serde",
@@ -913,18 +935,18 @@ dependencies = [
 
 [[package]]
 name = "owned_ttf_parser"
-version = "0.6.0"
+version = "0.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f923fb806c46266c02ab4a5b239735c144bdeda724a50ed058e5226f594cde3"
+checksum = "05e6affeb1632d6ff6a23d2cd40ffed138e82f1532571a26f527c8a284bb2fbb"
 dependencies = [
  "ttf-parser",
 ]
 
 [[package]]
 name = "paste"
-version = "1.0.9"
+version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1"
+checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
 
 [[package]]
 name = "pasteboard"
@@ -950,59 +972,56 @@ dependencies = [
 
 [[package]]
 name = "pathfinder_simd"
-version = "0.5.1"
-source = "git+https://github.com/servo/pathfinder#9e0331742dedfed41d9e7791a9afbead0e0fbcd5"
+version = "0.5.2"
+source = "git+https://github.com/servo/pathfinder#a3ceb814cac4a817e2883da73df84c3eeddb70de"
 dependencies = [
  "rustc_version",
 ]
 
 [[package]]
-name = "pest"
-version = "2.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbc7bc69c062e492337d74d59b120c274fd3d261b6bf6d3207d499b4b379c41a"
-dependencies = [
- "thiserror",
- "ucd-trie",
-]
-
-[[package]]
 name = "pkg-config"
-version = "0.3.25"
+version = "0.3.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae"
+checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
 
 [[package]]
 name = "plist"
-version = "1.3.1"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd39bc6cdc9355ad1dc5eeedefee696bb35c34caf21768741e81826c0bbd7225"
+checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef"
 dependencies = [
  "base64",
  "indexmap",
  "line-wrap",
+ "quick-xml",
  "serde",
  "time",
- "xml-rs",
 ]
 
 [[package]]
 name = "png"
-version = "0.17.6"
+version = "0.17.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f0e7f4c94ec26ff209cee506314212639d6c91b80afb82984819fafce9df01c"
+checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "crc32fast",
+ "fdeflate",
  "flate2",
  "miniz_oxide",
 ]
 
 [[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.16"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 
 [[package]]
 name = "proc-macro-error"
@@ -1013,7 +1032,7 @@ dependencies = [
  "proc-macro-error-attr",
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.109",
  "version_check",
 ]
 
@@ -1030,18 +1049,27 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.46"
+version = "1.0.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94e2ef8dbfc347b10c094890f778ee2e36ca9bb4262e86dc99cd217e35f3470b"
+checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
 dependencies = [
  "unicode-ident",
 ]
 
 [[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.21"
+version = "1.0.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
+checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
 dependencies = [
  "proc-macro2",
 ]
@@ -1104,77 +1132,77 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
 
 [[package]]
 name = "rayon"
-version = "1.5.3"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d"
+checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
 dependencies = [
- "autocfg",
- "crossbeam-deque",
  "either",
  "rayon-core",
 ]
 
 [[package]]
 name = "rayon-core"
-version = "1.9.3"
+version = "1.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f"
+checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
 dependencies = [
- "crossbeam-channel",
  "crossbeam-deque",
  "crossbeam-utils",
- "num_cpus",
 ]
 
 [[package]]
 name = "redox_syscall"
-version = "0.2.16"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
 dependencies = [
- "bitflags",
+ "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 0.2.7",
- "redox_syscall",
+ "getrandom 0.2.11",
+ "libredox",
  "thiserror",
 ]
 
 [[package]]
 name = "regex-syntax"
-version = "0.6.27"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
+checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
 
 [[package]]
-name = "remove_dir_all"
-version = "0.5.3"
+name = "rustc_version"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
 dependencies = [
- "winapi",
+ "semver",
 ]
 
 [[package]]
-name = "rustc_version"
-version = "0.3.3"
+name = "rustix"
+version = "0.38.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee"
+checksum = "dc99bc2d4f1fed22595588a013687477aedf3cdcfb26558c559edb67b4d9b22e"
 dependencies = [
- "semver",
+ "bitflags 2.4.1",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys",
 ]
 
 [[package]]
 name = "rusttype"
-version = "0.9.2"
+version = "0.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc7c727aded0be18c5b80c1640eae0ac8e396abf6fa8477d96cb37d18ee5ec59"
+checksum = "3ff8374aa04134254b7995b63ad3dc41c7f7236f69528b28553da7d72efaa967"
 dependencies = [
  "ab_glyph_rasterizer",
  "owned_ttf_parser",
@@ -1182,15 +1210,15 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.11"
+version = "1.0.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09"
+checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
 
 [[package]]
 name = "safe_arch"
-version = "0.6.0"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "794821e4ccb0d9f979512f9c1973480123f9bd62a90d74ab0f9426fcf8f4a529"
+checksum = "f398075ce1e6a179b46f51bd88d0598b92b00d3551f1a2d4ac49e771b56ac354"
 dependencies = [
  "bytemuck",
 ]
@@ -1212,53 +1240,41 @@ dependencies = [
 
 [[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 = "semver"
-version = "0.11.0"
+version = "1.0.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6"
-dependencies = [
- "semver-parser",
-]
-
-[[package]]
-name = "semver-parser"
-version = "0.10.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7"
-dependencies = [
- "pest",
-]
+checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
 
 [[package]]
 name = "serde"
-version = "1.0.145"
+version = "1.0.193"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b"
+checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.145"
+version = "1.0.193"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c"
+checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.39",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.86"
+version = "1.0.108"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41feea4228a6f1cd09ec7a3593a682276702cd67b5273544757dae23c096f074"
+checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
 dependencies = [
  "itoa",
  "ryu",
@@ -1273,11 +1289,11 @@ checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
 
 [[package]]
 name = "silicon"
-version = "0.5.1"
+version = "0.5.2"
 dependencies = [
  "anyhow",
  "clipboard",
- "clipboard-win 4.4.2",
+ "clipboard-win 4.5.0",
  "conv",
  "dirs",
  "env_logger",
@@ -1298,9 +1314,9 @@ dependencies = [
 
 [[package]]
 name = "simba"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c48e45e5961033db030b56ad67aef22e9c908c493a6e8348c0a0f6b93433cd77"
+checksum = "2f3fd720c48c53cace224ae62bef1bbff363a70c68c4802a78b5cc6159618176"
 dependencies = [
  "approx",
  "num-complex",
@@ -1310,6 +1326,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "simd-adler32"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
+
+[[package]]
 name = "str-buf"
 version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1342,14 +1364,25 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.109",
+]
+
+[[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 = "1.0.102"
+version = "2.0.39"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fcd952facd492f9be3ef0d0b7032a6e442ee9b361d4acc2b1d0c4aaa5f613a1"
+checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1358,21 +1391,19 @@ dependencies = [
 
 [[package]]
 name = "syntect"
-version = "5.0.0"
+version = "5.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6c454c27d9d7d9a84c7803aaa3c50cd088d2906fe3c6e42da3209aa623576a8"
+checksum = "e02b4b303bf8d08bfeb0445cba5068a3d306b6baece1d5582171a9bf49188f91"
 dependencies = [
  "bincode",
- "bitflags",
+ "bitflags 1.3.2",
  "flate2",
  "fnv",
- "lazy_static",
  "once_cell",
  "onig",
  "plist",
  "regex-syntax",
  "serde",
- "serde_derive",
  "serde_json",
  "thiserror",
  "walkdir",
@@ -1381,16 +1412,15 @@ dependencies = [
 
 [[package]]
 name = "tempfile"
-version = "3.3.0"
+version = "3.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
+checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
 dependencies = [
  "cfg-if",
  "fastrand",
- "libc",
  "redox_syscall",
- "remove_dir_all",
- "winapi",
+ "rustix",
+ "windows-sys",
 ]
 
 [[package]]
@@ -1405,9 +1435,9 @@ dependencies = [
 
 [[package]]
 name = "termcolor"
-version = "1.1.3"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
+checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449"
 dependencies = [
  "winapi-util",
 ]
@@ -1424,70 +1454,82 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.37"
+version = "1.0.50"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e"
+checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.37"
+version = "1.0.50"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb"
+checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.39",
 ]
 
 [[package]]
 name = "time"
-version = "0.3.15"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d634a985c4d4238ec39cacaed2e7ae552fbd3c476b552c1deac3021b7d7eaf0c"
+checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5"
 dependencies = [
+ "deranged",
  "itoa",
- "libc",
- "num_threads",
+ "powerfmt",
+ "serde",
+ "time-core",
+ "time-macros",
 ]
 
 [[package]]
-name = "ttf-parser"
-version = "0.6.2"
+name = "time-core"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e5d7cd7ab3e47dda6e56542f4bbf3824c15234958c6e1bd6aaa347e93499fdc"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
-name = "typenum"
-version = "1.15.0"
+name = "time-macros"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
+checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20"
+dependencies = [
+ "time-core",
+]
+
+[[package]]
+name = "ttf-parser"
+version = "0.15.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b3e06c9b9d80ed6b745c7159c40b311ad2916abb34a49e9be2653b90db0d8dd"
 
 [[package]]
-name = "ucd-trie"
-version = "0.1.5"
+name = "typenum"
+version = "1.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.5"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-segmentation"
-version = "1.10.0"
+version = "1.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a"
+checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
 
 [[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 = "vec_map"
@@ -1503,12 +1545,11 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[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",
 ]
 
@@ -1526,9 +1567,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wide"
-version = "0.7.5"
+version = "0.7.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae41ecad2489a1655c8ef8489444b0b113c0a0c795944a3572a0931cf7d2525c"
+checksum = "c68938b57b33da363195412cfc5fc37c9ed49aa9cfe2156fde64b8d2c9498242"
 dependencies = [
  "bytemuck",
  "safe_arch",
@@ -1552,9 +1593,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",
 ]
@@ -1566,6 +1607,72 @@ 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 = "wio"
 version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1594,12 +1701,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "xml-rs"
-version = "0.8.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3"
-
-[[package]]
 name = "yaml-rust"
 version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/pkgs/tools/misc/silicon/default.nix b/pkgs/by-name/si/silicon/package.nix
index 1da4d20c673f..57a86a27213d 100644
--- a/pkgs/tools/misc/silicon/default.nix
+++ b/pkgs/by-name/si/silicon/package.nix
@@ -10,9 +10,7 @@
 , libxcb
 , python3
 , libiconv
-, AppKit
-, CoreText
-, Security
+, darwin
 , fira-code
 , fontconfig
 , harfbuzz
@@ -20,33 +18,30 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "silicon";
-  version = "0.5.1";
+  version = "0.5.2";
 
   src = fetchFromGitHub {
     owner = "Aloxaf";
     repo = "silicon";
     rev = "v${version}";
-    hash = "sha256-RuzaRJr1n21MbHSeHBt8CjEm5AwbDbvX9Nw5PeBTl+w=";
+    hash = "sha256-fk1qaR7z9taOuNmjMCSdq7RybgV/3u7njU0Gehb98Lk=";
   };
 
-  patches = [
-   # fix build on aarch64-linux, see https://github.com/Aloxaf/silicon/pull/210
-    (fetchpatch {
-      url = "https://github.com/Aloxaf/silicon/commit/f666c95d3dab85a81d60067e2f25d29ee8ab59e7.patch";
-      hash = "sha256-L6tF9ndC38yVn5ZNof1TMxSImmaqZ6bJ/NYhb0Ebji4=";
-    })
-  ];
-
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "pathfinder_simd-0.5.1" = "sha256-jQCa8TpGHLWvDT9kXWmlw51QtpKImPlWi082Va721cE=";
+      "pathfinder_simd-0.5.2" = "sha256-b9RuxtTRKJ9Bnh0AWkoInRVrK/a3KV/2DCbXhN63yF0=";
     };
   };
 
   buildInputs = [ expat freetype fira-code fontconfig harfbuzz ]
     ++ lib.optionals stdenv.isLinux [ libxcb ]
-    ++ lib.optionals stdenv.isDarwin [ libiconv AppKit CoreText Security ];
+    ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
+      libiconv
+      AppKit
+      CoreText
+      Security
+    ]);
 
   nativeBuildInputs = [ cmake pkg-config rustPlatform.bindgenHook ]
     ++ lib.optionals stdenv.isLinux [ python3 ];
diff --git a/pkgs/by-name/si/simdutf/package.nix b/pkgs/by-name/si/simdutf/package.nix
index 200200bdaa1c..615f6af85da4 100644
--- a/pkgs/by-name/si/simdutf/package.nix
+++ b/pkgs/by-name/si/simdutf/package.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "simdutf";
-  version = "4.0.8";
+  version = "4.0.9";
 
   src = fetchFromGitHub {
     owner = "simdutf";
     repo = "simdutf";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-QZH21dFUX3NVpk1zyS/zSV+uOJYV3+V6XmuKeOvfc6c=";
+    hash = "sha256-LRMnjiO/J+DaSIBksrudjnkoEZtVG/RmW9S6w1gAB60=";
   };
 
   # Fix build on darwin
diff --git a/pkgs/by-name/si/sirius/package.nix b/pkgs/by-name/si/sirius/package.nix
index c09b9360419e..c8e42ff72fc8 100644
--- a/pkgs/by-name/si/sirius/package.nix
+++ b/pkgs/by-name/si/sirius/package.nix
@@ -16,6 +16,7 @@
 , spfft
 , spla
 , costa
+, umpire
 , scalapack
 , boost
 , eigen
@@ -37,20 +38,15 @@ assert builtins.elem gpuBackend [ "none" "cuda" "rocm" ];
 
 stdenv.mkDerivation rec {
   pname = "SIRIUS";
-  version = "7.4.3";
+  version = "7.5.2";
 
   src = fetchFromGitHub {
     owner = "electronic-structure";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-s4rO+dePvtvn41wxCvbqgQGrEckWmfng7sPX2M8OPB0=";
+    hash = "sha256-DYie6ufgZNqg7ohlIed3Bo+sqLKHOxWXTwAkea2guLk=";
   };
 
-  postPatch = ''
-    substituteInPlace src/gpu/acc_blas_api.hpp \
-      --replace '#include <rocblas.h>' '#include <rocblas/rocblas.h>'
-  '';
-
   nativeBuildInputs = [
     cmake
     gfortran
@@ -63,6 +59,7 @@ stdenv.mkDerivation rec {
     gsl
     libxc
     hdf5
+    umpire
     spglib
     spfft
     spla
@@ -110,11 +107,12 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   # Can not run parallel checks generally as it requires exactly multiples of 4 MPI ranks
+  # Even cpu_serial tests had to be disabled as they require scalapack routines in the sandbox
+  # and run into the same problem as MPI tests
   checkPhase = ''
     runHook preCheck
 
     ctest --output-on-failure --label-exclude integration_test
-    ctest --output-on-failure -L cpu_serial
 
     runHook postCheck
   '';
diff --git a/pkgs/by-name/sn/snicat/deps.nix b/pkgs/by-name/sn/snicat/deps.nix
new file mode 100644
index 000000000000..dca575f88344
--- /dev/null
+++ b/pkgs/by-name/sn/snicat/deps.nix
@@ -0,0 +1,12 @@
+[
+  {
+    goPackagePath = "github.com/therootcompany/sclient";
+    fetch = {
+      type = "FromGitHub";
+      owner = "therootcompany";
+      repo = "sclient";
+      rev = "v1.5.0";
+      sha256 = "sha256-NAFTOx2sm92K+d746Z5UpB1HGsJI6cJgmh+YTyVkJ0w=";
+    };
+  }
+]
diff --git a/pkgs/by-name/sn/snicat/package.nix b/pkgs/by-name/sn/snicat/package.nix
new file mode 100644
index 000000000000..e7e9e6f3ab53
--- /dev/null
+++ b/pkgs/by-name/sn/snicat/package.nix
@@ -0,0 +1,45 @@
+{ lib
+, stdenv
+, buildGoPackage
+, fetchFromGitHub
+}:
+buildGoPackage rec {
+  pname = "snicat";
+  version = "0.0.1";
+
+  src = fetchFromGitHub {
+    owner = "CTFd";
+    repo = "snicat";
+    rev = version;
+    hash = "sha256-fFlTBOz127le2Y7F9KKhbcldcyFEpAU5QiJ4VCAPs9Y=";
+  };
+
+  patchPhase = ''
+    runHook prePatch
+
+    substituteInPlace snicat.go \
+      --replace-warn "v0.0.0" "v${version}"
+
+    runHook postPatch
+  '';
+
+  goPackagePath = "github.com/CTFd/snicat";
+
+  goDeps = ./deps.nix;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm555 go/bin/snicat $out/bin/sc
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "TLS & SNI aware netcat";
+    homepage = "https://github.com/CTFd/snicat";
+    license = licenses.asl20;
+    mainProgram = "sc";
+    maintainers = with maintainers; [ felixalbrigtsen ];
+  };
+}
diff --git a/pkgs/tools/networking/sniffglue/default.nix b/pkgs/by-name/sn/sniffglue/package.nix
index be6a95f4e928..eb7cff5b7a8e 100644
--- a/pkgs/tools/networking/sniffglue/default.nix
+++ b/pkgs/by-name/sn/sniffglue/package.nix
@@ -1,4 +1,11 @@
-{ lib, fetchFromGitHub, rustPlatform, libpcap, libseccomp, pkg-config }:
+{ lib
+, fetchFromGitHub
+, libpcap
+, libseccomp
+, pkg-config
+, rustPlatform
+, stdenv
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "sniffglue";
@@ -8,20 +15,25 @@ rustPlatform.buildRustPackage rec {
     owner = "kpcyrd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-MOw0WBdpo6dYXsjbUrqoIJl/sjQ4wSAcm4dPxDgTYgY=";
+    hash = "sha256-MOw0WBdpo6dYXsjbUrqoIJl/sjQ4wSAcm4dPxDgTYgY=";
   };
 
   cargoHash = "sha256-vnfviiXJ4L/j5M3N+LegOIvLuD6vYJB1QeBgZJVfDnI=";
 
   nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [ libpcap libseccomp ];
+  buildInputs = [
+    libpcap
+  ] ++ lib.optionals stdenv.isLinux [
+    libseccomp
+  ];
 
   meta = with lib; {
     description = "Secure multithreaded packet sniffer";
     homepage = "https://github.com/kpcyrd/sniffglue";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ xrelkd ];
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "sniffglue";
   };
 }
diff --git a/pkgs/by-name/sp/spicetify-cli/package.nix b/pkgs/by-name/sp/spicetify-cli/package.nix
index 711b697afd08..5f428b60b57d 100644
--- a/pkgs/by-name/sp/spicetify-cli/package.nix
+++ b/pkgs/by-name/sp/spicetify-cli/package.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "spicetify-cli";
-  version = "2.30.0";
+  version = "2.31.0";
 
   src = fetchFromGitHub {
     owner = "spicetify";
     repo = "spicetify-cli";
     rev = "v${version}";
-    hash = "sha256-kQcAn5/NzzH+i24Ss6GaQEycazraE03R4tqMhxKROcY=";
+    hash = "sha256-uaGZWLrWWzf6KlQ/rW3XQNdE0a0QVuismhzIrgfAtNA=";
   };
 
   vendorHash = "sha256-T7aUjzb69ZAnpLCpHv5C6ZyUktfC8Zt94rIju8QplWI=";
diff --git a/pkgs/by-name/sp/spirit/package.nix b/pkgs/by-name/sp/spirit/package.nix
index bdff50a53193..9a78864a6025 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 = "unstable-2023-12-15";
+  version = "0-unstable-2024-01-11";
 
   src = fetchFromGitHub {
     owner = "cashapp";
     repo = "spirit";
-    rev = "3abce3e15c01b18e7a9fc12e19ad5c0f541d1ffd";
-    hash = "sha256-B4z5bdb0hRx7U2RLTRDxRYt1ltACNXz/B6qAs4qjtAo=";
+    rev = "fdbfa0baf31e9406227ae7fa9403c977189d715c";
+    hash = "sha256-kvERTUYVsuKS24/CavmlZd0K6hlosGMDLeEZcHfwBZI=";
   };
 
-  vendorHash = "sha256-hKTQvTWd48mnVODWE6W541TPuxCyELLgpz96XB29kec=";
+  vendorHash = "sha256-r6iQs5kgOniHCN8KteQ17rPhQ/73Exuqlu6qWgKEIzs=";
 
   subPackages = [ "cmd/spirit" ];
 
diff --git a/pkgs/by-name/sp/spotube/package.nix b/pkgs/by-name/sp/spotube/package.nix
new file mode 100644
index 000000000000..8b0a057daec8
--- /dev/null
+++ b/pkgs/by-name/sp/spotube/package.nix
@@ -0,0 +1,109 @@
+{ lib
+, stdenv
+, fetchurl
+
+, autoPatchelfHook
+, dpkg
+, makeWrapper
+, undmg
+, wrapGAppsHook
+
+, libappindicator
+, libnotify
+, libsecret
+, mpv-unwrapped
+, xdg-user-dirs
+}:
+
+let
+  pname = "spotube";
+  version = "3.4.1";
+
+  meta = {
+    description = "An open source, cross-platform Spotify client compatible across multiple platforms";
+    longDescription = ''
+      Spotube is an open source, cross-platform Spotify client compatible across
+      multiple platforms utilizing Spotify's data API and YouTube (or Piped.video or JioSaavn)
+      as an audio source, eliminating the need for Spotify Premium
+    '';
+    downloadPage = "https://github.com/KRTirtho/spotube/releases";
+    homepage = "https://spotube.netlify.app/";
+    license = lib.licenses.bsdOriginal;
+    mainProgram = "spotube";
+    maintainers = with lib.maintainers; [ tomasajt ];
+    platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+  };
+
+  fetchArtifact = { filename, hash }:
+    fetchurl {
+      url = "https://github.com/KRTirtho/spotube/releases/download/v${version}/${filename}";
+      inherit hash;
+    };
+
+  darwin = stdenv.mkDerivation {
+    inherit pname version meta;
+
+    src = fetchArtifact {
+      filename = "Spotube-macos-universal.dmg";
+      hash = "sha256-VobLCxsmE5kGIlDDa3v5xIHkw2x2YV14fgHHcDb+bLo=";
+    };
+
+    sourceRoot = ".";
+
+    nativeBuildInputs = [ undmg ];
+
+    installPhase = ''
+      runHook preInstall
+      mkdir -p $out/Applications $out/bin
+      cp -r spotube.app $out/Applications
+      ln -s $out/Applications/spotube.app/Contents/MacOS/spotube $out/bin/spotube
+      runHook postInstall
+    '';
+  };
+
+  linux = stdenv.mkDerivation {
+    inherit pname version meta;
+
+    src = fetchArtifact {
+      filename = "Spotube-linux-x86_64.deb";
+      hash = "sha256-NEGhzNz0E8jK2NPmigzoPAvYcU7zN9YHikuXHpzWfx0=";
+    };
+
+    nativeBuildInputs = [
+      autoPatchelfHook
+      dpkg
+      makeWrapper
+      wrapGAppsHook
+    ];
+
+    buildInputs = [
+      libappindicator
+      libnotify
+      libsecret
+      mpv-unwrapped
+    ];
+
+    dontWrapGApps = true;
+
+    installPhase = ''
+      runHook preInstall
+      mkdir -p $out
+      cp -r usr/* $out
+      runHook postInstall
+    '';
+
+    preFixup = ''
+      patchelf $out/share/spotube/lib/libmedia_kit_native_event_loop.so \
+          --replace-needed libmpv.so.1 libmpv.so
+    '';
+
+    postFixup = ''
+      makeWrapper $out/share/spotube/spotube $out/bin/spotube \
+          "''${gappsWrapperArgs[@]}" \
+          --prefix LD_LIBRARY_PATH : $out/share/spotube/lib:${lib.makeLibraryPath [ mpv-unwrapped ]} \
+          --prefix PATH : ${lib.makeBinPath [ xdg-user-dirs ]}
+    '';
+  };
+in
+if stdenv.isDarwin then darwin else linux
diff --git a/pkgs/development/interpreters/starlark/default.nix b/pkgs/by-name/st/starlark/package.nix
index a387765f833d..55ceab609164 100644
--- a/pkgs/development/interpreters/starlark/default.nix
+++ b/pkgs/by-name/st/starlark/package.nix
@@ -1,13 +1,13 @@
 { lib, fetchFromGitHub, buildGoModule }:
 buildGoModule rec {
   pname = "starlark";
-  version = "unstable-2023-11-01";
+  version = "0-unstable-2023-11-21";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "starlark-go";
-    rev = "556fd59b42f68a2fb1f84957741b72811c714e51";
-    hash = "sha256-0IiEtZOQEvE2Qm//lI1eyFFL1q/ZQzO9JzmiGsk0HkQ=";
+    rev = "90ade8b19d09805d1b91a9687198869add6dfaa1";
+    hash = "sha256-ZNOPx7L21A4BR5WshMMAHGm6j1ukWC9waJ1lYLvxBw0=";
   };
 
   vendorHash = "sha256-jQE5fSqJeiDV7PW7BY/dzCxG6b/KEVIobcjJsaL2zMw=";
@@ -19,5 +19,6 @@ buildGoModule rec {
     description = "An interpreter for Starlark, implemented in Go";
     license = licenses.bsd3;
     maintainers = with maintainers; [ aaronjheng ];
+    mainProgram = "starlark";
   };
 }
diff --git a/pkgs/by-name/st/static-server/package.nix b/pkgs/by-name/st/static-server/package.nix
index 3a5f0748f968..f2b7d26d8f0b 100644
--- a/pkgs/by-name/st/static-server/package.nix
+++ b/pkgs/by-name/st/static-server/package.nix
@@ -1,5 +1,5 @@
 { lib
-, buildGo121Module
+, buildGoModule
 , fetchFromGitHub
 , curl
 , stdenv
@@ -8,7 +8,7 @@
 , substituteAll
 }:
 
-buildGo121Module rec {
+buildGoModule rec {
   pname = "static-server";
   version = "1.2.1";
 
diff --git a/pkgs/applications/emulators/stella/default.nix b/pkgs/by-name/st/stella/package.nix
index 593845cca61c..f6c863bc95df 100644
--- a/pkgs/applications/emulators/stella/default.nix
+++ b/pkgs/by-name/st/stella/package.nix
@@ -1,30 +1,35 @@
 { lib
-, stdenv
+, SDL2
 , fetchFromGitHub
+, sqlite
 , pkg-config
-, SDL2
+, stdenv
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "stella";
-  version = "6.7";
+  version = "6.7.1";
 
   src = fetchFromGitHub {
     owner = "stella-emu";
-    repo = pname;
-    rev = version;
-    hash = "sha256-E8vbBbsVMOSY3iSSE+UCwBwmfHU7Efmre1cYlexVZ+E=";
+    repo = "stella";
+    rev = finalAttrs.version;
+    hash = "sha256-4z6rFF6XqfyS9zZ4ByvTZi7cSqxpF4EcLffPbId5ppg=";
   };
 
   nativeBuildInputs = [
+    SDL2
     pkg-config
   ];
 
   buildInputs = [
     SDL2
+    sqlite
   ];
 
-  meta = with lib;{
+  strictDeps = true;
+
+  meta = {
     homepage = "https://stella-emu.github.io/";
     description = "An open-source Atari 2600 VCS emulator";
     longDescription = ''
@@ -38,8 +43,10 @@ stdenv.mkDerivation rec {
 
       As of its 3.5 release, Stella is officially donationware.
     '';
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ AndersonTorres ];
-    platforms = platforms.unix;
+    changelog = "https://github.com/stella-emu/stella/releases/tag/${finalAttrs.src.rev}";
+    license = with lib.licenses; [ gpl2Plus ];
+    mainProgram = "stella";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.unix;
   };
-}
+})
diff --git a/pkgs/development/libraries/StormLib/default.nix b/pkgs/by-name/st/stormlib/package.nix
index bc247e956235..d55b93ca48ca 100644
--- a/pkgs/development/libraries/StormLib/default.nix
+++ b/pkgs/by-name/st/stormlib/package.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub, cmake, bzip2, libtomcrypt, zlib, darwin }:
 
 stdenv.mkDerivation rec {
-  pname = "StormLib";
+  pname = "stormlib";
   version = "9.22";
 
   src = fetchFromGitHub {
@@ -25,6 +25,11 @@ stdenv.mkDerivation rec {
   buildInputs = [ bzip2 libtomcrypt zlib ] ++
     lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Carbon ];
 
+  env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isClang [
+    "-Wno-implicit-function-declaration"
+    "-Wno-int-conversion"
+  ]);
+
   meta = with lib; {
     homepage = "https://github.com/ladislav-zezula/StormLib";
     license = licenses.mit;
diff --git a/pkgs/by-name/su/sudachi-rs/package.nix b/pkgs/by-name/su/sudachi-rs/package.nix
index f55a24e41e79..24ae7a9873e8 100644
--- a/pkgs/by-name/su/sudachi-rs/package.nix
+++ b/pkgs/by-name/su/sudachi-rs/package.nix
@@ -4,17 +4,18 @@
 , sudachidict
 , runCommand
 , sudachi-rs
+, writeScript
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "sudachi-rs";
-  version = "0.6.7";
+  version = "0.6.8";
 
   src = fetchFromGitHub {
     owner = "WorksApplications";
     repo = "sudachi.rs";
     rev = "refs/tags/v${version}";
-    hash = "sha256-VzNOI6PP9sKBsNfB5yIxAI8jI8TEdM4tD49Jl/2tkSE=";
+    hash = "sha256-9GXU+YDPuQ+roqQfUE5q17Hl6AopsvGhRPjZ+Ui+n24=";
   };
 
   postPatch = ''
@@ -22,7 +23,7 @@ rustPlatform.buildRustPackage rec {
       --replace '"resources"' '"${placeholder "out"}/share/resources"'
   '';
 
-  cargoHash = "sha256-b2NtgHcMkimzFFuqohAo9KdSaIq6oi3qo/k8/VugyFs=";
+  cargoHash = "sha256-Ufo3dB2KGDDNiebp7hLhQrUMLsefO8wRpJQDz57Yb8Y=";
 
   # prepare the resources before the build so that the binary can find sudachidict
   preBuild = ''
@@ -30,12 +31,22 @@ rustPlatform.buildRustPackage rec {
     install -Dm644 resources/* -t $out/share/resources
   '';
 
-  passthru.tests = {
-    # detects an error that sudachidict is not found
-    cli = runCommand "${pname}-cli-test" { } ''
-      mkdir $out
-      echo "高輪ゲートウェイ駅" | ${lib.getExe sudachi-rs} > $out/result
+  passthru = {
+    updateScript = writeScript "update.sh" ''
+      #!/usr/bin/env nix-shell
+      #!nix-shell -i bash -p nix-update
+
+      set -eu -o pipefail
+      nix-update sudachi-rs
+      nix-update --version=skip python3Packages.sudachipy
     '';
+    tests = {
+      # detects an error that sudachidict is not found
+      cli = runCommand "${pname}-cli-test" { } ''
+        mkdir $out
+        echo "高輪ゲートウェイ駅" | ${lib.getExe sudachi-rs} > $out/result
+      '';
+    };
   };
 
   meta = with lib; {
diff --git a/pkgs/by-name/su/sunvox/package.nix b/pkgs/by-name/su/sunvox/package.nix
new file mode 100644
index 000000000000..60f7ca0c45f9
--- /dev/null
+++ b/pkgs/by-name/su/sunvox/package.nix
@@ -0,0 +1,96 @@
+{ lib
+, stdenv
+, fetchzip
+, alsa-lib
+, autoPatchelfHook
+, libglvnd
+, libjack2
+, libX11
+, libXi
+, makeWrapper
+, SDL2
+}:
+
+let
+  platforms = {
+    "x86_64-linux" = "linux_x86_64";
+    "i686-linux" = "linux_x86";
+    "aarch64-linux" = "linux_arm64";
+    "armv7l-linux" = "arm_armhf_raspberry_pi";
+    "x86_64-darwin" = "macos";
+    "aarch64-darwin" = "macos";
+  };
+  bindir = platforms."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+in
+stdenv.mkDerivation (finalAttrs: {
+  pname = "sunvox";
+  version = "2.1.1c";
+
+  src = fetchzip {
+    urls = [
+      "https://www.warmplace.ru/soft/sunvox/sunvox-${finalAttrs.version}.zip"
+      # Upstream removes downloads of older versions, please save bumped versions to archive.org
+      "https://web.archive.org/web/20231204012052/https://www.warmplace.ru/soft/sunvox/sunvox-2.1.1c.zip"
+    ];
+    hash = "sha256-vJ76ELjqP4wo0tCJJd3A9RarpNo8FJaiyZhj+Q7nEGs=";
+  };
+
+  nativeBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [
+    autoPatchelfHook
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
+    makeWrapper
+  ];
+
+  buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
+    alsa-lib
+    libglvnd
+    libX11
+    libXi
+    SDL2
+  ];
+
+  runtimeDependencies = lib.optionals stdenv.hostPlatform.isLinux [
+    libjack2
+  ];
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    # Delete platform-specific data for all the platforms we're not building for
+    find sunvox -mindepth 1 -maxdepth 1 -type d -not -name "${bindir}" -exec rm -r {} \;
+
+    mkdir -p $out/{bin,share/sunvox}
+    mv * $out/share/sunvox/
+
+  '' + lib.optionalString stdenv.hostPlatform.isLinux ''
+    for binary in $(find $out/share/sunvox/sunvox/${bindir}/ -type f -executable); do
+      mv $binary $out/bin/$(basename $binary)
+    done
+
+    # Cleanup, make sure we didn't miss anything
+    find $out/share/sunvox/sunvox -type f -name readme.txt -delete
+    rmdir $out/share/sunvox/sunvox/${bindir} $out/share/sunvox/sunvox
+  '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
+    mkdir $out/Applications
+    ln -s $out/share/sunvox/sunvox/${bindir}/SunVox.app $out/Applications/
+    ln -s $out/share/sunvox/sunvox/${bindir}/reset_sunvox $out/bin/
+
+    # Need to use a wrapper, binary checks for files relative to the path it was called via
+    makeWrapper $out/Applications/SunVox.app/Contents/MacOS/SunVox $out/bin/sunvox
+  '' + ''
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Small, fast and powerful modular synthesizer with pattern-based sequencer";
+    license = licenses.unfreeRedistributable;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    homepage = "https://www.warmplace.ru/soft/sunvox/";
+    maintainers = with maintainers; [ puffnfresh OPNA2608 ];
+    platforms = lib.attrNames platforms;
+  };
+})
diff --git a/pkgs/by-name/su/supersonic/package.nix b/pkgs/by-name/su/supersonic/package.nix
index 20d126a92a26..9feb440c8087 100644
--- a/pkgs/by-name/su/supersonic/package.nix
+++ b/pkgs/by-name/su/supersonic/package.nix
@@ -20,16 +20,16 @@ assert waylandSupport -> stdenv.isLinux;
 
 buildGoModule rec {
   pname = "supersonic" + lib.optionalString waylandSupport "-wayland";
-  version = "0.8.2";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "dweymouth";
     repo = "supersonic";
     rev = "v${version}";
-    hash = "sha256-hhFnOxWXR91WpB51c4fvIENoAtqPj+VmPImGcXwTH0o=";
+    hash = "sha256-QHDTbcWSEFleMsjt4BR4xt6DlqPSowUbHmi4+83c0kc=";
   };
 
-  vendorHash = "sha256-oAp3paXWXtTB+1UU/KGewCDQWye16rxNnNWQMdrhgP0=";
+  vendorHash = "sha256-ANVkQpCnPsRueHyxRJMY5cqMZ5Q/QMVW4KS+TFYMpUQ=";
 
   nativeBuildInputs = [
     copyDesktopItems
diff --git a/pkgs/by-name/su/suwayomi-server/package.nix b/pkgs/by-name/su/suwayomi-server/package.nix
new file mode 100644
index 000000000000..01b6df8dafdf
--- /dev/null
+++ b/pkgs/by-name/su/suwayomi-server/package.nix
@@ -0,0 +1,58 @@
+{ lib
+, stdenvNoCC
+, fetchurl
+, makeWrapper
+, jdk17_headless
+, nixosTests
+}:
+
+let
+  jdk = jdk17_headless;
+in
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "suwayomi-server";
+  version = "0.7.0";
+  revision = 1197;
+
+  src = fetchurl {
+    url = "https://github.com/Suwayomi/Suwayomi-Server/releases/download/v${finalAttrs.version}/Tachidesk-Server-v${finalAttrs.version}-r${toString finalAttrs.revision}.jar";
+    hash = "sha256-4DO1WiBCu/8ypFgJdBmEwQXQ1xaWAlbt8N5TELomVVA=";
+  };
+
+  nativeBuildInputs = [
+    makeWrapper
+  ];
+
+  dontUnpack = true;
+
+  buildPhase = ''
+    runHook preBuild
+
+    makeWrapper ${jdk}/bin/java $out/bin/tachidesk-server \
+      --add-flags "-Dsuwayomi.tachidesk.config.server.initialOpenInBrowserEnabled=false -jar $src"
+
+    runHook postBuild
+  '';
+
+  passthru.tests = {
+    suwayomi-server-with-auth = nixosTests.suwayomi-server.with-auth;
+    suwayomi-server-without-auth = nixosTests.suwayomi-server.without-auth;
+  };
+
+  meta = with lib; {
+    description = "A free and open source manga reader server that runs extensions built for Tachiyomi.";
+    longDescription = ''
+      Suwayomi is an independent Tachiyomi compatible software and is not a Fork of Tachiyomi.
+
+      Suwayomi-Server is as multi-platform as you can get. Any platform that runs java and/or has a modern browser can run it. This includes Windows, Linux, macOS, chrome OS, etc.
+    '';
+    homepage = "https://github.com/Suwayomi/Suwayomi-Server";
+    downloadPage = "https://github.com/Suwayomi/Suwayomi-Server/releases";
+    changelog = "https://github.com/Suwayomi/Suwayomi-Server/releases/tag/v${finalAttrs.version}";
+    license = licenses.mpl20;
+    platforms = jdk.meta.platforms;
+    maintainers = with maintainers; [ ratcornu ];
+    mainProgram = "tachidesk-server";
+  };
+})
diff --git a/pkgs/by-name/sv/svp/mpv.nix b/pkgs/by-name/sv/svp/mpv.nix
new file mode 100644
index 000000000000..752d76baf794
--- /dev/null
+++ b/pkgs/by-name/sv/svp/mpv.nix
@@ -0,0 +1,24 @@
+{ lib
+, mpv-unwrapped
+, wrapMpv
+, ocl-icd
+, ...
+}:
+let
+  libraries = [
+    ocl-icd
+  ];
+in
+wrapMpv
+  (mpv-unwrapped.override {
+    vapoursynthSupport = true;
+  })
+{
+  extraMakeWrapperArgs = [
+    # Add paths to required libraries
+    "--prefix"
+    "LD_LIBRARY_PATH"
+    ":"
+    "/run/opengl-driver/lib:${lib.makeLibraryPath libraries}"
+  ];
+}
diff --git a/pkgs/by-name/sv/svp/package.nix b/pkgs/by-name/sv/svp/package.nix
new file mode 100644
index 000000000000..639c67d8cd11
--- /dev/null
+++ b/pkgs/by-name/sv/svp/package.nix
@@ -0,0 +1,147 @@
+{ stdenv
+, buildFHSEnv
+, writeShellScriptBin
+, fetchurl
+, callPackage
+, makeDesktopItem
+, copyDesktopItems
+, ffmpeg
+, glibc
+, gnome
+, jq
+, lib
+, libmediainfo
+, libsForQt5
+, libusb1
+, ocl-icd
+, p7zip
+, patchelf
+, socat
+, vapoursynth
+, xdg-utils
+, xorg
+}:
+let
+  mpvForSVP = callPackage ./mpv.nix { };
+
+  # Script provided by GitHub user @xrun1
+  # https://github.com/xddxdd/nur-packages/issues/31#issuecomment-1812591688
+  fakeLsof = writeShellScriptBin "lsof" ''
+    for arg in "$@"; do
+      if [ -S "$arg" ]; then
+        printf %s p
+        echo '{"command": ["get_property", "pid"]}' |
+          ${socat}/bin/socat - "UNIX-CONNECT:$arg" |
+          ${jq}/bin/jq -Mr .data
+        printf '\n'
+      fi
+    done
+  '';
+
+  libraries = [
+    fakeLsof
+    ffmpeg.bin
+    glibc
+    gnome.zenity
+    libmediainfo
+    libsForQt5.qtbase
+    libsForQt5.qtwayland
+    libsForQt5.qtdeclarative
+    libsForQt5.qtscript
+    libsForQt5.qtsvg
+    libusb1
+    mpvForSVP
+    ocl-icd
+    stdenv.cc.cc.lib
+    vapoursynth
+    xdg-utils
+    xorg.libX11
+  ];
+
+  svp-dist = stdenv.mkDerivation rec {
+    pname = "svp-dist";
+    version = "4.5.210-2";
+    src = fetchurl {
+      url = "https://www.svp-team.com/files/svp4-linux.${version}.tar.bz2";
+      hash = "sha256-dY9uQ9jzTHiN2XSnOrXtHD11IIJW6t9BUzGGQFfZ+yg=";
+    };
+
+    nativeBuildInputs = [ p7zip patchelf ];
+    dontFixup = true;
+
+    unpackPhase = ''
+      tar xf ${src}
+    '';
+
+    buildPhase = ''
+      mkdir installer
+      LANG=C grep --only-matching --byte-offset --binary --text  $'7z\xBC\xAF\x27\x1C' "svp4-linux-64.run" |
+        cut -f1 -d: |
+        while read ofs; do dd if="svp4-linux-64.run" bs=1M iflag=skip_bytes status=none skip=$ofs of="installer/bin-$ofs.7z"; done
+    '';
+
+    installPhase = ''
+      mkdir -p $out/opt
+      for f in "installer/"*.7z; do
+        7z -bd -bb0 -y x -o"$out/opt/" "$f" || true
+      done
+
+      for SIZE in 32 48 64 128; do
+        mkdir -p "$out/share/icons/hicolor/''${SIZE}x''${SIZE}/apps"
+        mv "$out/opt/svp-manager4-''${SIZE}.png" "$out/share/icons/hicolor/''${SIZE}x''${SIZE}/apps/svp-manager4.png"
+      done
+      rm -f $out/opt/{add,remove}-menuitem.sh
+    '';
+  };
+
+  fhs = buildFHSEnv {
+    name = "SVPManager";
+    targetPkgs = pkgs: libraries;
+    runScript = "${svp-dist}/opt/SVPManager";
+    unshareUser = false;
+    unshareIpc = false;
+    unsharePid = false;
+    unshareNet = false;
+    unshareUts = false;
+    unshareCgroup = false;
+  };
+in
+stdenv.mkDerivation {
+  pname = "svp";
+  inherit (svp-dist) version;
+
+  dontUnpack = true;
+
+  nativeBuildInputs = [ copyDesktopItems ];
+
+  postInstall = ''
+    mkdir -p $out/bin $out/share
+    ln -s ${fhs}/bin/SVPManager $out/bin/SVPManager
+    ln -s ${svp-dist}/share/icons $out/share/icons
+  '';
+
+  passthru.mpv = mpvForSVP;
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "svp-manager4";
+      exec = "${fhs}/bin/SVPManager %f";
+      desktopName = "SVP 4 Linux";
+      genericName = "Real time frame interpolation";
+      icon = "svp-manager4";
+      categories = [ "AudioVideo" "Player" "Video" ];
+      mimeTypes = [ "video/x-msvideo" "video/x-matroska" "video/webm" "video/mpeg" "video/mp4" ];
+      terminal = false;
+      startupNotify = true;
+    })
+  ];
+
+  meta = with lib; {
+    description = "SmoothVideo Project 4 (SVP4) converts any video to 60 fps (and even higher) and performs this in real time right in your favorite video player.";
+    homepage = "https://www.svp-team.com/wiki/SVP:Linux";
+    platforms = [ "x86_64-linux" ];
+    license = licenses.unfree;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    maintainers = with lib.maintainers; [ xddxdd ];
+  };
+}
diff --git a/pkgs/by-name/sw/swaylock-fancy/package.nix b/pkgs/by-name/sw/swaylock-fancy/package.nix
index 83d56def4dcc..d821863e84a7 100644
--- a/pkgs/by-name/sw/swaylock-fancy/package.nix
+++ b/pkgs/by-name/sw/swaylock-fancy/package.nix
@@ -31,13 +31,13 @@ in
 
 stdenv.mkDerivation {
   pname = "swaylock-fancy";
-  version = "unstable-2023-11-21";
+  version = "unstable-2023-12-22";
 
   src = fetchFromGitHub {
     owner = "Big-B";
     repo = "swaylock-fancy";
-    rev = "ff37ae3c6d0f100f81ff64fdb9d422c37de2f4f6";
-    hash = "sha256-oS4YCbZOIrMP4QSM5eHWzTn18k3w2OnJ2k+64x/DnuM=";
+    rev = "0b93740e1dfc39883c125c212a1adc16b01c14f1";
+    hash = "sha256-ko4SeHGNBiPMvxFXhD+U2r0Mwc14C2IN5CaJYI0V8u8=";
   };
 
   postPatch = ''
diff --git a/pkgs/by-name/sw/switcheroo/package.nix b/pkgs/by-name/sw/switcheroo/package.nix
new file mode 100644
index 000000000000..4c41d6739824
--- /dev/null
+++ b/pkgs/by-name/sw/switcheroo/package.nix
@@ -0,0 +1,62 @@
+{ lib
+, blueprint-compiler
+, cargo
+, desktop-file-utils
+, fetchFromGitLab
+, glib
+, gtk4
+, libadwaita
+, meson
+, ninja
+, pkg-config
+, rustPlatform
+, rustc
+, stdenv
+, wrapGAppsHook4
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "switcheroo";
+  version = "2.0.1";
+
+  src = fetchFromGitLab {
+    owner = "adhami3310";
+    repo = "Switcheroo";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-3JlI0Co3yuD6fKaKlmz1Vg0epXABO+7cRvm6/PgbGUE=";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    src = finalAttrs.src;
+    name = "switcheroo-${finalAttrs.version}";
+    hash = "sha256-wC57VTJGiN2hDL2Z9fFw5H9c3Txqh30AHfR9o2DbcSk=";
+  };
+
+  nativeBuildInputs = [
+    blueprint-compiler
+    cargo
+    desktop-file-utils
+    meson
+    ninja
+    pkg-config
+    rustPlatform.cargoSetupHook
+    rustc
+    wrapGAppsHook4
+  ];
+
+  buildInputs = [
+    glib
+    gtk4
+    libadwaita
+  ];
+
+  meta = with lib; {
+    changelog = "https://gitlab.com/adhami3310/Switcheroo/-/releases/v${finalAttrs.version}";
+    description = "An app for converting images between different formats";
+    homepage = "https://gitlab.com/adhami3310/Switcheroo";
+    license = licenses.gpl3Plus;
+    mainProgram = "switcheroo";
+    maintainers = with maintainers; [ michaelgrahamevans ];
+    platforms = platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/sy/symbolicator/package.nix b/pkgs/by-name/sy/symbolicator/package.nix
index df1179da94dc..ebec2b81a6d8 100644
--- a/pkgs/by-name/sy/symbolicator/package.nix
+++ b/pkgs/by-name/sy/symbolicator/package.nix
@@ -40,6 +40,7 @@ rustPlatform.buildRustPackage rec {
     zstd
   ] ++ lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.Security
+    darwin.apple_sdk.frameworks.SystemConfiguration
   ];
 
   env = {
diff --git a/pkgs/tools/system/syslog-ng/default.nix b/pkgs/by-name/sy/syslogng/package.nix
index 299988b8367c..7e95f78b1888 100644
--- a/pkgs/tools/system/syslog-ng/default.nix
+++ b/pkgs/by-name/sy/syslogng/package.nix
@@ -31,6 +31,7 @@
 , rabbitmq-c
 , libesmtp
 , rdkafka
+, gperf
 }:
 let
   python-deps = ps: with ps; [
@@ -59,16 +60,16 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "syslog-ng";
-  version = "4.5.0";
+  version = "4.6.0";
 
   src = fetchFromGitHub {
     owner = "syslog-ng";
     repo = "syslog-ng";
     rev = "syslog-ng-${version}";
-    hash = "sha256-cWlTGACuHm8o2563Axh43Ks7EhYok6+V9mOkrYp4km8=";
+    hash = "sha256-B9s7mprPpS4xc7mfJbsDaq2hB1rjYmuOnOnpu+NnMRs=";
     fetchSubmodules = true;
   };
-  nativeBuildInputs = [ autoreconfHook autoconf-archive pkg-config which bison flex libxslt perl ];
+  nativeBuildInputs = [ autoreconfHook autoconf-archive pkg-config which bison flex libxslt perl gperf ];
 
   buildInputs = [
     libcap
diff --git a/pkgs/by-name/sy/systemd-lock-handler/package.nix b/pkgs/by-name/sy/systemd-lock-handler/package.nix
new file mode 100644
index 000000000000..04c52dd2df0a
--- /dev/null
+++ b/pkgs/by-name/sy/systemd-lock-handler/package.nix
@@ -0,0 +1,51 @@
+{ lib
+, fetchFromSourcehut
+, buildGoModule
+, nix-update-script
+, nixosTests
+}:
+
+buildGoModule rec {
+  pname = "systemd-lock-handler";
+  version = "2.4.2";
+
+  src = fetchFromSourcehut {
+    owner = "~whynothugo";
+    repo = "systemd-lock-handler";
+    rev = "v${version}";
+    hash = "sha256-sTVAabwWtyvHuDp/+8FKNbfej1x/egoa9z1jLIMJuBg=";
+  };
+
+  vendorHash = "sha256-dWzojV3tDA5lLdpAQNC9NaADGyvV7dNOS3x8mfgNNtA=";
+
+  passthru = {
+    updateScript = nix-update-script { };
+    tests = nixosTests.systemd-lock-handler;
+  };
+
+  # The Makefile expects to find the binary in the source root. Make
+  # the one built by `buildGoModule` available so that `make install`
+  # doesn’t try to build it again.
+  postBuild = ''
+    cp -a $GOPATH/bin/* .
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    substituteInPlace systemd-lock-handler.service \
+      --replace /usr/lib/ $out/lib/
+
+    make install DESTDIR= PREFIX=$out
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://git.sr.ht/~whynothugo/systemd-lock-handler";
+    description = "Translates systemd-system lock/sleep signals into systemd-user target activations";
+    license = licenses.isc;
+    maintainers = with maintainers; [ liff ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/ta/tailscale-nginx-auth/package.nix b/pkgs/by-name/ta/tailscale-nginx-auth/package.nix
index 37c72e94aa30..304e94f5ed67 100644
--- a/pkgs/by-name/ta/tailscale-nginx-auth/package.nix
+++ b/pkgs/by-name/ta/tailscale-nginx-auth/package.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, buildGoModule, fetchFromGitHub }:
 
 let
-  version = "1.56.1";
+  version = "1.58.2";
 in
 buildGoModule {
   pname = "tailscale-nginx-auth";
@@ -11,9 +11,9 @@ buildGoModule {
     owner = "tailscale";
     repo = "tailscale";
     rev = "v${version}";
-    hash = "sha256-kMk5Q/KvNcsohHNLDMmpBm+gUxQEOeO8o/odukcJi0A=";
+    hash = "sha256-FiFFfUtse0CKR4XJ82HEjpZNxCaa4FnwSJfEzJ5kZgk=";
   };
-  vendorHash = "sha256-bG/ydsJf2UncOcDo8/BXdvQJO3Mk0tl8JGje1b6kto4=";
+  vendorHash = "sha256-BK1zugKGtx2RpWHDvFZaFqz/YdoewsG8SscGt25uwtQ=";
 
   CGO_ENABLED = 0;
 
diff --git a/pkgs/by-name/te/telegraph/package.nix b/pkgs/by-name/te/telegraph/package.nix
new file mode 100644
index 000000000000..332c09884c65
--- /dev/null
+++ b/pkgs/by-name/te/telegraph/package.nix
@@ -0,0 +1,52 @@
+{ lib
+, desktop-file-utils
+, fetchFromGitHub
+, gobject-introspection
+, gtk4
+, libadwaita
+, meson
+, ninja
+, pkg-config
+, python3
+, stdenv
+, wrapGAppsHook4
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "telegraph";
+  version = "0.1.8";
+
+  src = fetchFromGitHub {
+    owner = "fkinoshita";
+    repo = "Telegraph";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-m36YHIo1PaDunnC12feSAbwwG1+E7s90fzOKskHtIag=";
+  };
+
+  nativeBuildInputs = [
+    desktop-file-utils
+    gobject-introspection
+    meson
+    ninja
+    pkg-config
+    wrapGAppsHook4
+  ];
+
+  buildInputs = [
+    gtk4
+    libadwaita
+    (python3.withPackages (ps: with ps; [
+      pygobject3
+    ]))
+  ];
+
+  meta = with lib; {
+    changelog = "https://github.com/fkinoshita/Telegraph/releases/v${finalAttrs.version}";
+    description = "Write and decode Morse";
+    homepage = "https://github.com/fkinoshita/Telegraph";
+    license = licenses.gpl3Only;
+    mainProgram = "telegraph";
+    maintainers = with maintainers; [ michaelgrahamevans ];
+    platforms = platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/te/terraform-plugin-docs/package.nix b/pkgs/by-name/te/terraform-plugin-docs/package.nix
index de64c81093c5..e1468d251313 100644
--- a/pkgs/by-name/te/terraform-plugin-docs/package.nix
+++ b/pkgs/by-name/te/terraform-plugin-docs/package.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "terraform-plugin-docs";
-  version = "0.16.0";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "terraform-plugin-docs";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-5vbi69GMgkzvN3aEQbNTbk99rg+kfvAvUrdDsuyIm9s=";
+    sha256 = "sha256-8rNoH01fWNGWH3cSqqFCGetl5S/d3yVh+pmIzg79g3k=";
   };
 
-  vendorHash = "sha256-AjW6BokLVDkIWXToJ7wNq/g19xKTAfpQ/gVlKCV5qw0=";
+  vendorHash = "sha256-9ddxgceILBP1NqbGr08cfdPs0BHSjQWN0MkFA5oqyPE=";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/by-name/te/terrapin-scanner/package.nix b/pkgs/by-name/te/terrapin-scanner/package.nix
index df8dd1158c1a..2bf04dc676de 100644
--- a/pkgs/by-name/te/terrapin-scanner/package.nix
+++ b/pkgs/by-name/te/terrapin-scanner/package.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "terrapin-scanner";
-  version = "1.1.2";
+  version = "1.1.3";
 
   src = fetchFromGitHub {
     owner = "RUB-NDS";
     repo = "Terrapin-Scanner";
     rev = "refs/tags/v${version}";
-    hash = "sha256-LBcoD/adIcda6ZxlEog8ArW0thr3g14fvEMFfgxiTsI=";
+    hash = "sha256-PmKfHvad+YAwLcdoiDSOBMQFgOKzJ6NbGbt4v570gyI=";
   };
 
   vendorHash = "sha256-x3fzs/TNGRo+u+RufXzzjDCeQayEZIKlgokdEQJRNaI=";
diff --git a/pkgs/by-name/ti/tigerbeetle/package.nix b/pkgs/by-name/ti/tigerbeetle/package.nix
index 8a3ebbb12bd1..f496c549087b 100644
--- a/pkgs/by-name/ti/tigerbeetle/package.nix
+++ b/pkgs/by-name/ti/tigerbeetle/package.nix
@@ -6,20 +6,27 @@
 , tigerbeetle
 , nix-update-script
 }:
+let
+  # Read [these comments](pkgs/development/compilers/zig/hook.nix#L12-L30) on the default Zig flags, and the associated links. tigerbeetle stopped exposing the `-Doptimize` build flag, so we can't use the default Nixpkgs zig hook as-is. tigerbeetle only exposes a boolean `-Drelease` flag which we'll add in the tigerbeetle derivation in this file.
+  custom_zig_hook = zig_0_11.hook.overrideAttrs (previousAttrs: {
+    zig_default_flags = builtins.filter (flag: builtins.match "-Doptimize.*" flag == null) previousAttrs.zig_default_flags;
+  });
+in
 stdenv.mkDerivation (finalAttrs: {
   pname = "tigerbeetle";
-  version = "0.14.171";
+  version = "0.14.177";
 
   src = fetchFromGitHub {
     owner = "tigerbeetle";
     repo = "tigerbeetle";
     rev = "refs/tags/${finalAttrs.version}";
-    hash = "sha256-MjsNQarRXsrWKJZ2aBi/Wc2HAYm3isLBNw81a75+nhc=";
+    hash = "sha256-oMsDHz/yOWtS1XhJcXR74pA3YvPzANUdRAy7tjNO5lc=";
   };
 
-  nativeBuildInputs = [ zig_0_11.hook ];
+  nativeBuildInputs = [ custom_zig_hook ];
 
   zigBuildFlags = [
+    "-Drelease"
     "-Dgit-commit=0000000000000000000000000000000000000000"
     "-Dversion=${finalAttrs.version}"
   ];
@@ -37,7 +44,7 @@ stdenv.mkDerivation (finalAttrs: {
     description = "A financial accounting database designed to be distributed and fast";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ danielsidhion ];
-    platforms = lib.platforms.unix;
+    platforms = lib.platforms.linux;
     mainProgram = "tigerbeetle";
   };
 })
diff --git a/pkgs/by-name/tl/tlmi-auth/package.nix b/pkgs/by-name/tl/tlmi-auth/package.nix
new file mode 100644
index 000000000000..a4640ab5850e
--- /dev/null
+++ b/pkgs/by-name/tl/tlmi-auth/package.nix
@@ -0,0 +1,39 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, meson
+, ninja
+, openssl
+}:
+let
+  name = "tlmi-auth";
+  version = "1.0.1";
+in
+stdenv.mkDerivation {
+  pname = name;
+  version = version;
+
+  src = fetchFromGitHub {
+    owner = "lenovo";
+    repo = name;
+    rev = "v${version}";
+    hash = "sha256-/juXQrb3MsQ6FxmrAa7E1f0vIMu1397tZ1pzLfr56M4=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    openssl
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/lenovo/tlmi-auth";
+    maintainers = with maintainers; [ snpschaaf ];
+    description = "Utility for creating signature strings needed for thinklmi certificate based authentication";
+    mainProgram = name;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/to/toml-cli/package.nix b/pkgs/by-name/to/toml-cli/package.nix
new file mode 100644
index 000000000000..42c9ca639337
--- /dev/null
+++ b/pkgs/by-name/to/toml-cli/package.nix
@@ -0,0 +1,33 @@
+{ lib, fetchCrate, rustPlatform, testers, toml-cli }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "toml-cli";
+  version = "0.2.3";
+
+  src = fetchCrate {
+    inherit version;
+    pname = "toml-cli";
+    hash = "sha256-V/yMk/Zt3yvEx10nzRhY/7GYnQninGg9h63NSaQChSA=";
+  };
+
+  cargoHash = "sha256-v+GBn9mmiWcWnxmpH6JRPVz1fOSrsjWoY+l+bdzKtT4=";
+
+  cargoTestFlags = [
+    "--bin=toml"
+    # # The `CARGO_BIN_EXE_toml` build-time env doesn't appear to be resolving
+    # # correctly with buildRustPackage. Only run the unittests instead.
+    # "--test=integration"
+  ];
+
+  passthru.tests = {
+    version = testers.testVersion { package = toml-cli; };
+  };
+
+  meta = {
+    description = "A simple CLI for editing and querying TOML files";
+    homepage = "https://github.com/gnprice/toml-cli";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ phlip9 ];
+    mainProgram = "toml";
+  };
+}
diff --git a/pkgs/by-name/tr/trealla/package.nix b/pkgs/by-name/tr/trealla/package.nix
index 44ae8b7775b4..e125ec2b1583 100644
--- a/pkgs/by-name/tr/trealla/package.nix
+++ b/pkgs/by-name/tr/trealla/package.nix
@@ -17,13 +17,13 @@
 assert lib.elem lineEditingLibrary [ "isocline" "readline" ];
 stdenv.mkDerivation (finalAttrs: {
   pname = "trealla";
-  version = "2.32.13";
+  version = "2.34.0";
 
   src = fetchFromGitHub {
     owner = "trealla-prolog";
     repo = "trealla";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-Meyy6muzJt/Lg76sa+nwZXCOhfeMTwO4VYTXO/o20XI=";
+    hash = "sha256-cqIiPeQO/M8MtpHRomN/fzxIq7TgUwZSvL3PFCVsEnY=";
   };
 
   postPatch = ''
@@ -38,9 +38,9 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   buildInputs =
-    lib.optional enableFFI libffi
-    ++ lib.optional enableSSL openssl
-    ++ lib.optional (lineEditingLibrary == "readline") readline;
+    lib.optionals enableFFI [ libffi ]
+    ++ lib.optionals enableSSL [ openssl ]
+    ++ lib.optionals (lineEditingLibrary == "readline") [ readline ];
 
   nativeCheckInputs = lib.optionals finalAttrs.finalPackage.doCheck [ valgrind ];
 
@@ -49,10 +49,10 @@ stdenv.mkDerivation (finalAttrs: {
   makeFlags = [
     "GIT_VERSION=\"v${finalAttrs.version}\""
   ]
-  ++ lib.optional (lineEditingLibrary == "isocline") "ISOCLINE=1"
-  ++ lib.optional (!enableFFI) "NOFFI=1"
-  ++ lib.optional (!enableSSL) "NOSSL=1"
-  ++ lib.optional enableThreads "THREADS=1";
+  ++ lib.optionals (lineEditingLibrary == "isocline") [ "ISOCLINE=1" ]
+  ++ lib.optionals (!enableFFI) [ "NOFFI=1" ]
+  ++ lib.optionals (!enableSSL) [ "NOSSL=1" ]
+  ++ lib.optionals enableThreads [ "THREADS=1" ];
 
   enableParallelBuilding = true;
 
@@ -66,7 +66,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   checkFlags = [
     "test"
-  ] ++ lib.optional checkLeaks "leaks";
+  ] ++ lib.optionals checkLeaks [ "leaks" ];
 
   passthru.updateScript = gitUpdater {
     rev-prefix = "v";
diff --git a/pkgs/by-name/ty/typodermic-free-fonts/package.nix b/pkgs/by-name/ty/typodermic-free-fonts/package.nix
new file mode 100644
index 000000000000..1f67c6ee6b93
--- /dev/null
+++ b/pkgs/by-name/ty/typodermic-free-fonts/package.nix
@@ -0,0 +1,33 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation {
+  pname = "typodermic-free-fonts";
+  version = "2023a";
+
+  src = fetchzip {
+    url =
+      "https://typodermicfonts.com/wp-content/uploads/2023/01/typodermic-free-fonts-2023a.zip";
+    hash = "sha256-+1TPZkeiMMV0Qmk7ERgJjVVNFar9bMISbAd23H8fwFo=";
+    curlOptsList = [ "--user-agent" "Mozilla/5.0" ]; # unbreak their wordpress
+    stripRoot = false;
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/fonts
+    cp -a "$src/Typodermic Fonts" "$out/share/fonts/opentype"
+    runHook postInstall
+  '';
+
+  meta = {
+    homepage = "https://typodermicfonts.com/";
+    description = "Typodermic fonts";
+    maintainers = with lib.maintainers; [ ehmry ];
+    license = lib.licenses.unfree // {
+      fullName = "Font Software for Desktop End User License Agreement";
+      url = "https://typodermicfonts.com/end-user-license-agreement/";
+    }; # Font is fine for use in printing and display but cannot be embbeded.
+  };
+}
diff --git a/pkgs/by-name/ty/typodermic-public-domain/package.nix b/pkgs/by-name/ty/typodermic-public-domain/package.nix
new file mode 100644
index 000000000000..fdbdfc0c1e6e
--- /dev/null
+++ b/pkgs/by-name/ty/typodermic-public-domain/package.nix
@@ -0,0 +1,30 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation {
+  pname = "typodermic-public-domain";
+  version = "2022-11";
+
+  src = fetchzip {
+    url =
+      "https://typodermicfonts.com/wp-content/uploads/2022/11/typodermic-public-domain-2022-11.zip";
+    hash = "sha256-2hqpehQ4zxSvsw2dtom/fkMAayJKNvOdYs+c+rrvJKw=";
+    curlOptsList = [ "--user-agent" "Mozilla/5.0" ]; # unbreak their wordpress
+    stripRoot = false;
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/fonts
+    cp -a "$src/OpenType Fonts" "$out/share/fonts/opentype"
+    runHook postInstall
+  '';
+
+  meta = {
+    homepage = "https://typodermicfonts.com/";
+    description = "Vintage Typodermic fonts";
+    maintainers = with lib.maintainers; [ ehmry ];
+    license = lib.licenses.cc0;
+  };
+}
diff --git a/pkgs/by-name/uc/uchecker/package.nix b/pkgs/by-name/uc/uchecker/package.nix
new file mode 100644
index 000000000000..a4746a1e0dfd
--- /dev/null
+++ b/pkgs/by-name/uc/uchecker/package.nix
@@ -0,0 +1,49 @@
+{ lib
+, python3
+, fetchFromGitHub
+, fetchpatch
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "uchecker";
+  version = "0.1.2";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "cloudlinux";
+    repo = "kcare-uchecker";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-SST143oi0O9PcJbw4nxHwHNY6HkIGi1WMBzveUYVhJs=";
+  };
+
+  patches = [
+    # Switch to poetry-core, https://github.com/cloudlinux/kcare-uchecker/pull/52
+    (fetchpatch {
+      name = "switch-poetry-core.patch";
+      url = "https://github.com/cloudlinux/kcare-uchecker/commit/d7d5ab75efa6a355b3dd3190c1edbaba8110c885.patch";
+      hash = "sha256-YPPw6M7MGN8nguAvAwjmz0VEYm0RD98ZkoVIq9SP3sA=";
+    })
+  ];
+
+  nativeBuildInputs = with python3.pkgs; [
+    poetry-core
+  ];
+
+  nativeCheckInputs = with python3.pkgs; [
+    mock
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "uchecker"
+  ];
+
+  meta = with lib; {
+    description = "A simple tool to detect outdated shared libraries";
+    homepage = "https://github.com/cloudlinux/kcare-uchecker";
+    changelog = "https://github.com/cloudlinux/kcare-uchecker/releases/tag/v${version}";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "uchecker";
+  };
+}
diff --git a/pkgs/by-name/ud/udebug/package.nix b/pkgs/by-name/ud/udebug/package.nix
index 12de722bf68d..f3233d8baca8 100644
--- a/pkgs/by-name/ud/udebug/package.nix
+++ b/pkgs/by-name/ud/udebug/package.nix
@@ -11,12 +11,12 @@
 
 stdenv.mkDerivation {
   pname = "udebug";
-  version = "unstable-2023-11-28";
+  version = "unstable-2023-12-06";
 
   src = fetchgit {
     url = "https://git.openwrt.org/project/udebug.git";
-    rev = "d49aadabb7a147b99a3e6299a77d7fda4e266091";
-    hash = "sha256-5I50q+oUQ5f82ngKl7bX50J+3pBviNk3iVEChNjt5wY=";
+    rev = "6d3f51f9fda706f0cf4732c762e4dbe8c21e12cf";
+    hash = "sha256-5dowoFZn9I2IXMQ3Pz+2Eo3rKfihLzjca84MytQIXcU=";
   };
 
   buildInputs = [
diff --git a/pkgs/by-name/ue/uemacs/package.nix b/pkgs/by-name/ue/uemacs/package.nix
new file mode 100644
index 000000000000..4ed609868666
--- /dev/null
+++ b/pkgs/by-name/ue/uemacs/package.nix
@@ -0,0 +1,46 @@
+{ lib
+, stdenv
+, fetchgit
+, ncurses
+}:
+
+stdenv.mkDerivation {
+  pname = "uemacs";
+  version = "4.0-unstable-2018-07-19";
+
+  src = fetchgit {
+    url = "https://git.kernel.org/pub/scm/editors/uemacs/uemacs.git";
+    rev = "1cdcf9df88144049750116e36fe20c8c39fa2517";
+    hash = "sha256-QSouqZiBmKBU6FqRRfWtTGRIl5sqJ8tVPYwdytt/43w=";
+  };
+
+  nativeBuildInputs = [
+    ncurses
+  ];
+
+  postPatch = ''
+    substituteInPlace Makefile --replace "lcurses" "lncurses"
+    substituteInPlace Makefile --replace "/usr/bin" "$out/bin"
+    substituteInPlace Makefile --replace "/usr/lib" "$out/share/uemacs"
+
+    substituteInPlace epath.h --replace "/usr/global/lib/" "$out/share/uemacs/"
+  '';
+
+  installPhase = ''
+    mkdir -p $out/{bin,share/uemacs}
+    make install
+  '';
+
+  meta = with lib; {
+    description = "Linus Torvalds's random version of microemacs with his personal modifications";
+    homepage = "https://git.kernel.org/pub/scm/editors/uemacs/uemacs.git/about/";
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ networkexception ];
+    mainProgram = "em";
+    # MicroEMACS 3.9 can be copied and distributed freely for any
+    # non-commercial purposes. MicroEMACS 3.9 can only be incorporated
+    # into commercial software with the permission of the current author
+    # [Daniel M. Lawrence].
+    license = licenses.unfree;
+  };
+}
diff --git a/pkgs/by-name/ui/uiua/package.nix b/pkgs/by-name/ui/uiua/package.nix
index 09fbbcf7ae7b..8b11104cb9a0 100644
--- a/pkgs/by-name/ui/uiua/package.nix
+++ b/pkgs/by-name/ui/uiua/package.nix
@@ -14,16 +14,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "uiua";
-  version = "0.7.1";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "uiua-lang";
     repo = "uiua";
     rev = version;
-    hash = "sha256-cBwQdArVRiXH8TmgBSPpcB5oNu3Q/+Us9Azzw0lV5Vs=";
+    hash = "sha256-JilYPIeJbVf9wgGpLTy8pbMwFRrW7Od+8y0tWwAXU84=";
   };
 
-  cargoHash = "sha256-7cgKiEqklvUw64a6+lbHA9t6QWiTquYVi0evXkONEag=";
+  cargoHash = "sha256-oXO2TBdKmVIpZD0jLI1CK9b48r3SwdeygcJoUG6HGXo=";
 
   nativeBuildInputs = lib.optionals stdenv.isDarwin [
     rustPlatform.bindgenHook
@@ -42,9 +42,9 @@ rustPlatform.buildRustPackage rec {
   buildFeatures = lib.optional audioSupport "audio";
 
   passthru.tests.run = runCommand "uiua-test-run" { nativeBuildInputs = [ uiua ]; } ''
-    uiua init;
+    uiua init
     diff -U3 --color=auto <(uiua run main.ua) <(echo '"Hello, World!"')
-    touch $out;
+    touch $out
   '';
 
   meta = {
diff --git a/pkgs/by-name/um/umpire/package.nix b/pkgs/by-name/um/umpire/package.nix
new file mode 100644
index 000000000000..d4fac1cd541c
--- /dev/null
+++ b/pkgs/by-name/um/umpire/package.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+}:
+
+stdenv.mkDerivation rec {
+  pname = "umpire";
+  version = "2023.06.0";
+
+  src = fetchFromGitHub {
+    owner = "LLNL";
+    repo = "umpire";
+    rev = "v${version}";
+    hash = "sha256-gdwr0ACCfkrtlVROPhxM7zT7SaCo2Eg1etrPFN4JHaA=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with lib; {
+    description = "Application-focused API for memory management on NUMA & GPU architectures";
+    homepage = "https://github.com/LLNL/Umpire";
+    maintainers = with maintainers; [ sheepforce ];
+    license = with licenses; [ mit ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/by-name/up/uplosi/package.nix b/pkgs/by-name/up/uplosi/package.nix
index 05e38ca8026c..0f91177636d2 100644
--- a/pkgs/by-name/up/uplosi/package.nix
+++ b/pkgs/by-name/up/uplosi/package.nix
@@ -1,8 +1,8 @@
 { lib
 , fetchFromGitHub
-, buildGo121Module
+, buildGoModule
 }:
-buildGo121Module rec {
+buildGoModule rec {
   pname = "uplosi";
   version = "0.1.2";
 
@@ -16,7 +16,7 @@ buildGo121Module rec {
   vendorHash = "sha256-RsjUPLe8omoN+XGyNhHDxzNfZR7VVTkh/f/On1oCRqM=";
 
   CGO_ENABLED = "0";
-  ldflags = [ "-s" "-w" "-buildid=" "-X main.version=${version}" ];
+  ldflags = [ "-s" "-w" "-X main.version=${version}" ];
   flags = [ "-trimpath" ];
 
   meta = with lib; {
diff --git a/pkgs/by-name/ux/uxn/package.nix b/pkgs/by-name/ux/uxn/package.nix
index e577ebf0b700..2bc851ff764b 100644
--- a/pkgs/by-name/ux/uxn/package.nix
+++ b/pkgs/by-name/ux/uxn/package.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "uxn";
-  version = "unstable-2024-01-04";
+  version = "unstable-2024-01-21";
 
   src = fetchFromSourcehut {
     owner = "~rabbits";
     repo = "uxn";
-    rev = "7bf469dca2e8c620b53616483bacacea724fb685";
-    hash = "sha256-SISS8qdBYwNLhHhIzMlCkaXprQkfpFsR4y7/xrFQji8=";
+    rev = "3e1183285a94a0930c9b09fd4fa73ac3a5d24fda";
+    hash = "sha256-hhxcj/jVBOm7E63Z9sS3SnFjexQEXVtw3QU5n/4hkVI=";
   };
 
   outputs = [ "out" "projects" ];
diff --git a/pkgs/by-name/vc/vcpkg-tool/package.nix b/pkgs/by-name/vc/vcpkg-tool/package.nix
index 3520d3cd2211..bc77b6ef283b 100644
--- a/pkgs/by-name/vc/vcpkg-tool/package.nix
+++ b/pkgs/by-name/vc/vcpkg-tool/package.nix
@@ -18,13 +18,13 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "vcpkg-tool";
-  version = "2023-12-12";
+  version = "2024-01-11";
 
   src = fetchFromGitHub {
     owner = "microsoft";
     repo = "vcpkg-tool";
     rev = finalAttrs.version;
-    hash = "sha256-Ol31TDY3cLEzXQk8YpK2Lf3CEnM5RkJqdcm/OQGUetE=";
+    hash = "sha256-PwCJv0O0ysE4CQVOrt+rqp3pjSt/11We+ZI8vdaYpPM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/vc/vcpkg/package.nix b/pkgs/by-name/vc/vcpkg/package.nix
index 1c19a0a50210..338f8da7c1d2 100644
--- a/pkgs/by-name/vc/vcpkg/package.nix
+++ b/pkgs/by-name/vc/vcpkg/package.nix
@@ -7,13 +7,13 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "vcpkg";
-  version = "2023.12.12";
+  version = "2024.01.12";
 
   src = fetchFromGitHub {
     owner = "microsoft";
     repo = "vcpkg";
     rev = finalAttrs.version;
-    hash = "sha256-WNQJ19bgb55MBnz87Ho9BEHDjD7INLDevfW6lCwV/4U=";
+    hash = "sha256-oIx/eMceFN2q7EfPCR6nFZAw5HK3U6qbyu7z9H1aJbU=";
   };
 
   installPhase = let
diff --git a/pkgs/tools/cd-dvd/ventoy/000-nixos-sanitization.patch b/pkgs/by-name/ve/ventoy/000-nixos-sanitization.patch
index 1d7afc5159c7..1d7afc5159c7 100644
--- a/pkgs/tools/cd-dvd/ventoy/000-nixos-sanitization.patch
+++ b/pkgs/by-name/ve/ventoy/000-nixos-sanitization.patch
diff --git a/pkgs/tools/cd-dvd/ventoy/default.nix b/pkgs/by-name/ve/ventoy/package.nix
index f7b90e6e252d..4338932481ee 100644
--- a/pkgs/tools/cd-dvd/ventoy/default.nix
+++ b/pkgs/by-name/ve/ventoy/package.nix
@@ -1,6 +1,4 @@
 { lib
-, stdenv
-, fetchurl
 , autoPatchelfHook
 , bash
 , copyDesktopItems
@@ -9,6 +7,7 @@
 , dosfstools
 , e2fsprogs
 , exfat
+, fetchurl
 , gawk
 , gnugrep
 , gnused
@@ -19,6 +18,7 @@
 , ntfs3g
 , parted
 , procps
+, stdenv
 , util-linux
 , which
 , xfsprogs
@@ -38,7 +38,7 @@ assert defaultGuiType == "gtk3" -> withGtk3;
 assert defaultGuiType == "qt5" -> withQt5;
 
 let
-  inherit (lib) optional optionalString;
+  inherit (lib) optionals optionalString;
   inherit (libsForQt5) qtbase wrapQtAppsHook;
   arch = {
     x86_64-linux = "x86_64";
@@ -46,20 +46,16 @@ let
     aarch64-linux = "aarch64";
     mipsel-linux = "mips64el";
   }.${stdenv.hostPlatform.system}
-    or (throw "Unsupported platform ${stdenv.hostPlatform.system}");
+    or (throw "Unsupported platform: ${stdenv.hostPlatform.system}");
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "ventoy";
-  version = "1.0.96";
+  version = "1.0.97";
 
-  src =
-    let
-      inherit (finalAttrs) version;
-    in
-    fetchurl {
-      url = "https://github.com/ventoy/Ventoy/releases/download/v${version}/ventoy-${version}-linux.tar.gz";
-      hash = "sha256-eUpxfJQ0u3bpAXTUCKlMO/ViwKcBI59YFKJ3xGzSdcg=";
-    };
+  src = fetchurl {
+    url = "https://github.com/ventoy/Ventoy/releases/download/v${finalAttrs.version}/ventoy-${finalAttrs.version}-linux.tar.gz";
+    hash = "sha256-E2ipCCydsllY5UB+9JhDItkNO7AJBTN9S9QWeOBsEVA=";
+  };
 
   patches = [
     ./000-nixos-sanitization.patch
@@ -78,8 +74,8 @@ stdenv.mkDerivation (finalAttrs: {
     autoPatchelfHook
     makeWrapper
   ]
-  ++ optional (withQt5 || withGtk3) copyDesktopItems
-  ++ optional withQt5 wrapQtAppsHook;
+  ++ optionals (withQt5 || withGtk3) [ copyDesktopItems ]
+  ++ optionals withQt5 [ wrapQtAppsHook ];
 
   buildInputs = [
     bash
@@ -96,12 +92,14 @@ stdenv.mkDerivation (finalAttrs: {
     which
     xz
   ]
-  ++ optional withCryptsetup cryptsetup
-  ++ optional withExt4 e2fsprogs
-  ++ optional withGtk3 gtk3
-  ++ optional withNtfs ntfs3g
-  ++ optional withXfs xfsprogs
-  ++ optional withQt5 qtbase;
+  ++ optionals withCryptsetup [ cryptsetup ]
+  ++ optionals withExt4 [ e2fsprogs ]
+  ++ optionals withGtk3 [ gtk3 ]
+  ++ optionals withNtfs [ ntfs3g ]
+  ++ optionals withXfs [ xfsprogs ]
+  ++ optionals withQt5 [ qtbase ];
+
+  strictDeps = true;
 
   desktopItems = [
     (makeDesktopItem {
@@ -203,6 +201,7 @@ stdenv.mkDerivation (finalAttrs: {
     '';
     changelog = "https://www.ventoy.net/doc_news.html";
     license = lib.licenses.gpl3Plus;
+    mainProgram = "ventoy";
     maintainers = with lib.maintainers; [ AndersonTorres ];
     platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" "mipsel-linux" ];
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/by-name/ve/vesktop/disable_update_checking.patch b/pkgs/by-name/ve/vesktop/disable_update_checking.patch
new file mode 100644
index 000000000000..590951b675c0
--- /dev/null
+++ b/pkgs/by-name/ve/vesktop/disable_update_checking.patch
@@ -0,0 +1,12 @@
+diff --git a/src/updater/main.ts b/src/updater/main.ts
+index 059afb9..274802e 100644
+--- a/src/updater/main.ts
++++ b/src/updater/main.ts
+@@ -77,6 +77,7 @@ function isOutdated(oldVersion: string, newVersion: string) {
+ }
+ 
+ export async function checkUpdates() {
++    return;
+     if (Settings.store.checkUpdates === false) return;
+ 
+     try {
diff --git a/pkgs/by-name/ve/vesktop/package.nix b/pkgs/by-name/ve/vesktop/package.nix
index 88b57273d3ee..e29007a1876c 100644
--- a/pkgs/by-name/ve/vesktop/package.nix
+++ b/pkgs/by-name/ve/vesktop/package.nix
@@ -19,6 +19,9 @@
 , nodePackages
 , speechd
 , withTTS ? true
+  # Enables the use of vencord from nixpkgs instead of
+  # letting vesktop manage it's own version
+, withSystemVencord ? true
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "vesktop";
@@ -86,8 +89,8 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   patches = [
-    (substituteAll { inherit vencord; src = ./use_system_vencord.patch; })
-  ];
+    ./disable_update_checking.patch
+  ] ++ lib.optional withSystemVencord (substituteAll { inherit vencord; src = ./use_system_vencord.patch; });
 
   ELECTRON_SKIP_BINARY_DOWNLOAD = 1;
 
diff --git a/pkgs/by-name/vi/vibrantlinux/package.nix b/pkgs/by-name/vi/vibrantlinux/package.nix
new file mode 100644
index 000000000000..d15031b3651d
--- /dev/null
+++ b/pkgs/by-name/vi/vibrantlinux/package.nix
@@ -0,0 +1,55 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, qt5
+, makeWrapper
+, libvibrant
+, libX11
+, libXrandr
+, libxcb
+, linuxPackages
+}:
+
+stdenv.mkDerivation rec {
+  pname = "vibrantLinux";
+  version = "2.1.10";
+
+  src = fetchFromGitHub {
+    owner = "libvibrant";
+    repo = "vibrantLinux";
+    rev = version;
+    hash = "sha256-rvJiVId6221hTrfEIvVO9HTMhaZ6KY44Bu3a5MinPHI=";
+  };
+
+  nativeBuildInputs = [
+    makeWrapper
+  ] ++ (with qt5; [
+    qmake
+    wrapQtAppsHook
+  ]);
+
+  buildInputs = [
+    libX11
+    libXrandr
+    libxcb
+    libvibrant
+    linuxPackages.nvidia_x11.settings.libXNVCtrl
+  ] ++ (with qt5; [
+    qtbase
+    qttools
+  ]);
+
+  postPatch = ''
+    substituteInPlace vibrantLinux.pro \
+      --replace '$$(PREFIX)' '$$PREFIX'
+  '';
+
+  meta = with lib; {
+    description = "A tool to automate managing your screen's saturation depending on what programs are running";
+    homepage = "https://github.com/libvibrant/vibrantLinux";
+    license = licenses.mit;
+    maintainers = with maintainers; [ unclamped ];
+    platforms = platforms.linux;
+    mainProgram = "vibrantLinux";
+  };
+}
diff --git a/pkgs/by-name/vi/vinegar/package.nix b/pkgs/by-name/vi/vinegar/package.nix
index fb34f2e79d56..a20b0ff024ee 100644
--- a/pkgs/by-name/vi/vinegar/package.nix
+++ b/pkgs/by-name/vi/vinegar/package.nix
@@ -29,13 +29,13 @@ let
 in
 buildGoModule rec {
   pname = "vinegar";
-  version = "1.6.0";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "vinegarhq";
     repo = "vinegar";
     rev = "v${version}";
-    hash = "sha256-TebRAqMPrXSSKg05iX3Y/S0uACePOR/QNnNcOOMw+Xk=";
+    hash = "sha256-uRdWE5NwRVSuUZyU5B5u5DfJOxu/gUqwM682eORTDOs=";
   };
 
   vendorHash = "sha256-Ex6PRd3rD2jbLXlY36koNvZF3P+gAZTE9hExIfOw9CE=";
diff --git a/pkgs/by-name/vu/vulkan-volk/package.nix b/pkgs/by-name/vu/vulkan-volk/package.nix
new file mode 100644
index 000000000000..1164fd2921e2
--- /dev/null
+++ b/pkgs/by-name/vu/vulkan-volk/package.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub, cmake, vulkan-headers }:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "volk";
+  version = "1.3.275.0";
+
+  src = fetchFromGitHub {
+    owner = "zeux";
+    repo = "volk";
+    rev = "vulkan-sdk-${finalAttrs.version}";
+    hash = "sha256-uTjLgJMGN8nOVhVIl/GNhO2jXe9ebhc9vzAwCDwfuf4=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ vulkan-headers ];
+
+  cmakeFlags = ["-DVOLK_INSTALL=1"];
+
+  meta = with lib; {
+    description = " Meta loader for Vulkan API";
+    homepage = "https://github.com/zeux/volk";
+    platforms = platforms.all;
+    license = licenses.mit;
+    maintainers = with maintainers; [ k900 ];
+  };
+})
diff --git a/pkgs/by-name/wa/wait4x/package.nix b/pkgs/by-name/wa/wait4x/package.nix
index 9daad7d2a198..1255e772b056 100644
--- a/pkgs/by-name/wa/wait4x/package.nix
+++ b/pkgs/by-name/wa/wait4x/package.nix
@@ -4,7 +4,7 @@
 }:
 let
   pname = "wait4x";
-  version = "2.13.0";
+  version = "2.14.0";
 in
 buildGoModule {
   inherit pname version;
@@ -13,10 +13,10 @@ buildGoModule {
     owner = "atkrad";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-vhYWt1vRL1iTtdZRhk3HsBnmhcp4hieN+8vsyQS4hpo=";
+    hash = "sha256-4lv6nYeyjjGGQksi2Ffx+Yu0OazNsJ0QEZG5BfuyrJ8=";
   };
 
-  vendorHash = "sha256-WY8FPRjjAFcDLMbU22pL3rFTw7fBPwCbXJDjhHDI4Kw=";
+  vendorHash = "sha256-D8s42YArp0IGi7I6qB9eQEh1ZQptSrKLLVIIdqk5Kq0=";
 
   # Tests make network access
   doCheck = false;
diff --git a/pkgs/by-name/wa/watchdogd/package.nix b/pkgs/by-name/wa/watchdogd/package.nix
new file mode 100644
index 000000000000..34567dbe566d
--- /dev/null
+++ b/pkgs/by-name/wa/watchdogd/package.nix
@@ -0,0 +1,32 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, autoreconfHook
+, libite
+, libuev
+, libconfuse
+}:
+stdenv.mkDerivation rec {
+  pname = "watchdogd";
+  version = "4.0";
+
+  src = fetchFromGitHub {
+    owner = "troglobit";
+    repo = "watchdogd";
+    rev = version;
+    hash = "sha256-JNJj0CJGJXuIRpob2RXYqDRrU4Cn20PRxOjQ6TFsVYQ=";
+  };
+
+  nativeBuildInputs = [ pkg-config autoreconfHook ];
+  buildInputs = [ libite libuev libconfuse ];
+
+  meta = with lib; {
+    description = "Advanced system & process supervisor for Linux";
+    homepage = "https://troglobit.com/watchdogd.html";
+    changelog = "https://github.com/troglobit/watchdogd/releases/tag/${version}";
+    license = licenses.isc;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ vifino ];
+  };
+}
diff --git a/pkgs/by-name/wh/whistle/package.nix b/pkgs/by-name/wh/whistle/package.nix
index 4d205d60bf2f..3cf9fc45dc9c 100644
--- a/pkgs/by-name/wh/whistle/package.nix
+++ b/pkgs/by-name/wh/whistle/package.nix
@@ -2,16 +2,16 @@
 
 buildNpmPackage rec {
   pname = "whistle";
-  version = "2.9.63";
+  version = "2.9.64";
 
   src = fetchFromGitHub {
     owner = "avwo";
     repo = "whistle";
     rev = "v${version}";
-    hash = "sha256-Dp3bW31INOVMCAculPsGHmzkQiWawfo5k9ALs21C1mc=";
+    hash = "sha256-dK9oaTm4l170COZ8Gm6Suc821DPUYg8euIo6l+EQYEo=";
   };
 
-  npmDepsHash = "sha256-Qqtp0SukzkuG1DGMcKP4eLXGfWHMZY9TcyP280wkk0g=";
+  npmDepsHash = "sha256-0YnWmCI0UVQPegwHEKiCmow5LA4kjQVKctWRwHW0Ufg=";
 
   dontNpmBuild = true;
 
diff --git a/pkgs/by-name/wi/windmill/Cargo.lock b/pkgs/by-name/wi/windmill/Cargo.lock
index 147cd4477e5e..a24e0ac41b88 100644
--- a/pkgs/by-name/wi/windmill/Cargo.lock
+++ b/pkgs/by-name/wi/windmill/Cargo.lock
@@ -56,19 +56,19 @@ version = "0.7.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd"
 dependencies = [
- "getrandom 0.2.11",
+ "getrandom 0.2.12",
  "once_cell",
  "version_check",
 ]
 
 [[package]]
 name = "ahash"
-version = "0.8.6"
+version = "0.8.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a"
+checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
 dependencies = [
  "cfg-if",
- "getrandom 0.2.11",
+ "getrandom 0.2.12",
  "once_cell",
  "version_check",
  "zerocopy",
@@ -121,9 +121,9 @@ dependencies = [
 
 [[package]]
 name = "anstream"
-version = "0.6.4"
+version = "0.6.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44"
+checksum = "3fde6067df7359f2d6335ec1a50c1f8f825801687d10da0cc4c6b08e3f6afd15"
 dependencies = [
  "anstyle",
  "anstyle-parse",
@@ -141,37 +141,37 @@ checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
 
 [[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.75"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
+checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
 
 [[package]]
 name = "archiver-rs"
@@ -245,7 +245,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "swc_macros_common",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -266,7 +266,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c"
 dependencies = [
  "concurrent-queue",
- "event-listener 4.0.0",
+ "event-listener 4.0.3",
  "event-listener-strategy",
  "futures-core",
  "pin-project-lite",
@@ -291,9 +291,9 @@ dependencies = [
 
 [[package]]
 name = "async-compression"
-version = "0.4.5"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc2d0cfb2a7388d34f590e76686704c494ed7aaceed62ee1ba35cbf363abc2a5"
+checksum = "a116f46a969224200a0a97f29cfd4c50e7534e4b4826bd23ea2c3c533039c82c"
 dependencies = [
  "brotli",
  "flate2",
@@ -309,26 +309,26 @@ version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c"
 dependencies = [
- "async-lock 3.1.2",
+ "async-lock 3.3.0",
  "async-task",
  "concurrent-queue",
  "fastrand 2.0.1",
- "futures-lite 2.0.1",
+ "futures-lite 2.2.0",
  "slab",
 ]
 
 [[package]]
 name = "async-global-executor"
-version = "2.4.0"
+version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b4353121d5644cdf2beb5726ab752e79a8db1ebb52031770ec47db31d245526"
+checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c"
 dependencies = [
  "async-channel 2.1.1",
  "async-executor",
- "async-io 2.2.1",
- "async-lock 3.1.2",
+ "async-io 2.3.0",
+ "async-lock 3.3.0",
  "blocking",
- "futures-lite 2.0.1",
+ "futures-lite 2.2.0",
  "once_cell",
 ]
 
@@ -354,18 +354,18 @@ dependencies = [
 
 [[package]]
 name = "async-io"
-version = "2.2.1"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6d3b15875ba253d1110c740755e246537483f152fa334f91abd7fe84c88b3ff"
+checksum = "fb41eb19024a91746eba0773aa5e16036045bbf45733766661099e182ea6a744"
 dependencies = [
- "async-lock 3.1.2",
+ "async-lock 3.3.0",
  "cfg-if",
  "concurrent-queue",
  "futures-io",
- "futures-lite 2.0.1",
+ "futures-lite 2.2.0",
  "parking",
- "polling 3.3.1",
- "rustix 0.38.26",
+ "polling 3.3.2",
+ "rustix 0.38.30",
  "slab",
  "tracing",
  "windows-sys 0.52.0",
@@ -382,11 +382,11 @@ dependencies = [
 
 [[package]]
 name = "async-lock"
-version = "3.1.2"
+version = "3.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dea8b3453dd7cc96711834b75400d671b73e3656975fa68d9f277163b7f7e316"
+checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b"
 dependencies = [
- "event-listener 4.0.0",
+ "event-listener 4.0.3",
  "event-listener-strategy",
  "pin-project-lite",
 ]
@@ -397,7 +397,7 @@ version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "beec3f8fb8f710b7be84ccd1716e17f38f2868168355cab5f2f168ae988e767e"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
  "bytes",
  "http",
  "rand 0.8.5",
@@ -418,7 +418,7 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -466,7 +466,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -496,19 +496,19 @@ dependencies = [
 
 [[package]]
 name = "async-task"
-version = "4.5.0"
+version = "4.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4eb2cdb97421e01129ccb49169d8279ed21e829929144f4a22a6e54ac549ca1"
+checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799"
 
 [[package]]
 name = "async-trait"
-version = "0.1.74"
+version = "0.1.77"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
+checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -541,15 +541,6 @@ dependencies = [
 
 [[package]]
 name = "atoi"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7c57d12312ff59c811c0643f4d80830505833c9ffaebd193d819392b265be8e"
-dependencies = [
- "num-traits",
-]
-
-[[package]]
-name = "atoi"
 version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528"
@@ -559,9 +550,9 @@ dependencies = [
 
 [[package]]
 name = "atoi_simd"
-version = "0.15.5"
+version = "0.15.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccfc14f5c3e34de57539a7ba9c18ecde3d9bbde48d232ea1da3e468adb307fd0"
+checksum = "9ae037714f313c1353189ead58ef9eec30a8e8dc101b2622d461418fd59e28a9"
 
 [[package]]
 name = "atomic-waker"
@@ -587,9 +578,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
 name = "aws-config"
-version = "1.0.1"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80c950a809d39bc9480207cb1cfc879ace88ea7e3a4392a8e9999e45d6e5692e"
+checksum = "7e64b72d4bdbb41a73d27709c65a25b6e4bfc8321bf70fa3a8b19ce7d4eb81b0"
 dependencies = [
  "aws-credential-types",
  "aws-http",
@@ -609,7 +600,7 @@ dependencies = [
  "hex",
  "http",
  "hyper",
- "ring 0.17.6",
+ "ring 0.17.7",
  "time",
  "tokio",
  "tracing",
@@ -618,9 +609,9 @@ dependencies = [
 
 [[package]]
 name = "aws-credential-types"
-version = "1.0.1"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c1317e1a3514b103cf7d5828bbab3b4d30f56bd22d684f8568bc51b6cfbbb1c"
+checksum = "4a7cb3510b95492bd9014b60e2e3bee3e48bc516e220316f8e6b60df18b47331"
 dependencies = [
  "aws-smithy-async",
  "aws-smithy-runtime-api",
@@ -630,9 +621,9 @@ dependencies = [
 
 [[package]]
 name = "aws-http"
-version = "0.60.0"
+version = "0.60.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "361c4310fdce94328cc2d1ca0c8a48c13f43009c61d3367585685a50ca8c66b6"
+checksum = "a95d41abe4e941399fdb4bc2f54713eac3c839d98151875948bb24e66ab658f2"
 dependencies = [
  "aws-smithy-runtime-api",
  "aws-smithy-types",
@@ -646,9 +637,9 @@ dependencies = [
 
 [[package]]
 name = "aws-runtime"
-version = "1.0.1"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ed7ef604a15fd0d4d9e43701295161ea6b504b63c44990ead352afea2bc15e9"
+checksum = "233cca219c6705d525ace011d6f9bc51aaf32fce5b4c41661d2d7ff22d9b4d49"
 dependencies = [
  "aws-credential-types",
  "aws-http",
@@ -668,9 +659,9 @@ dependencies = [
 
 [[package]]
 name = "aws-sdk-s3"
-version = "0.39.1"
+version = "1.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29223b1074621f1d011bac836d995c002936663052b1e7ad02927551b17d6625"
+checksum = "634fbe5b6591ee2e281cd2ba8641e9bd752dbf5bf338924d6ad4bd5a3304fe31"
 dependencies = [
  "aws-credential-types",
  "aws-http",
@@ -691,16 +682,16 @@ dependencies = [
  "http-body",
  "once_cell",
  "percent-encoding",
- "regex",
+ "regex-lite",
  "tracing",
  "url",
 ]
 
 [[package]]
 name = "aws-sdk-sso"
-version = "1.3.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0619ab97a5ca8982e7de073cdc66f93e5f6a1b05afc09e696bec1cb3607cd4df"
+checksum = "ee41005e0f3a19ae749c7953d9e1f1ef8d2183f76f64966e346fa41c1ba0ed44"
 dependencies = [
  "aws-credential-types",
  "aws-http",
@@ -714,15 +705,16 @@ dependencies = [
  "aws-types",
  "bytes",
  "http",
- "regex",
+ "once_cell",
+ "regex-lite",
  "tracing",
 ]
 
 [[package]]
 name = "aws-sdk-ssooidc"
-version = "1.3.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f04b9f5474cc0f35d829510b2ec8c21e352309b46bf9633c5a81fb9321e9b1c7"
+checksum = "fa08168f8a27505e7b90f922c32a489feb1f2133878981a15138bebc849ac09c"
 dependencies = [
  "aws-credential-types",
  "aws-http",
@@ -736,15 +728,16 @@ dependencies = [
  "aws-types",
  "bytes",
  "http",
- "regex",
+ "once_cell",
+ "regex-lite",
  "tracing",
 ]
 
 [[package]]
 name = "aws-sdk-sts"
-version = "1.3.1"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "798c8d82203af9e15a8b406574e0b36da91dd6db533028b74676489a1bc8bc7d"
+checksum = "29102eff04d50ef70f11a48823db33e33c6cc5f027bfb6ff4864efbd5f1f66f3"
 dependencies = [
  "aws-credential-types",
  "aws-http",
@@ -759,15 +752,16 @@ dependencies = [
  "aws-smithy-xml",
  "aws-types",
  "http",
- "regex",
+ "once_cell",
+ "regex-lite",
  "tracing",
 ]
 
 [[package]]
 name = "aws-sigv4"
-version = "1.0.1"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "380adcc8134ad8bbdfeb2ace7626a869914ee266322965276cbc54066186d236"
+checksum = "b92384b39aedb258aa734fe0e7b2ffcd13f33e68227251a72cd2635e0acc8f1a"
 dependencies = [
  "aws-credential-types",
  "aws-smithy-eventstream",
@@ -781,10 +775,9 @@ dependencies = [
  "hmac",
  "http",
  "once_cell",
- "p256",
+ "p256 0.11.1",
  "percent-encoding",
- "regex",
- "ring 0.17.6",
+ "ring 0.17.7",
  "sha2 0.10.8",
  "subtle",
  "time",
@@ -794,9 +787,9 @@ dependencies = [
 
 [[package]]
 name = "aws-smithy-async"
-version = "1.0.2"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e37ca17d25fe1e210b6d4bdf59b81caebfe99f986201a1228cb5061233b4b13"
+checksum = "71d8e1c0904f78c76846a9dad41c28b41d330d97741c3e70d003d9a747d95e2a"
 dependencies = [
  "futures-util",
  "pin-project-lite",
@@ -805,9 +798,9 @@ dependencies = [
 
 [[package]]
 name = "aws-smithy-checksums"
-version = "0.60.0"
+version = "0.60.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5a373ec01aede3dd066ec018c1bc4e8f5dd11b2c11c59c8eef1a5c68101f397"
+checksum = "62d59ef74bf94562512e570eeccb81e9b3879f9136b2171ed4bf996ffa609955"
 dependencies = [
  "aws-smithy-http",
  "aws-smithy-types",
@@ -826,9 +819,9 @@ dependencies = [
 
 [[package]]
 name = "aws-smithy-eventstream"
-version = "0.60.0"
+version = "0.60.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c669e1e5fc0d79561bf7a122b118bd50c898758354fe2c53eb8f2d31507cbc3"
+checksum = "31cf0466890a20988b9b2864250dd907f769bd189af1a51ba67beec86f7669fb"
 dependencies = [
  "aws-smithy-types",
  "bytes",
@@ -837,9 +830,9 @@ dependencies = [
 
 [[package]]
 name = "aws-smithy-http"
-version = "0.60.0"
+version = "0.60.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b1de8aee22f67de467b2e3d0dd0fb30859dc53f579a63bd5381766b987db644"
+checksum = "568a3b159001358dd96143378afd7470e19baffb6918e4b5016abe576e553f9c"
 dependencies = [
  "aws-smithy-eventstream",
  "aws-smithy-runtime-api",
@@ -858,18 +851,18 @@ dependencies = [
 
 [[package]]
 name = "aws-smithy-json"
-version = "0.60.0"
+version = "0.60.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a46dd338dc9576d6a6a5b5a19bd678dcad018ececee11cf28ecd7588bd1a55c"
+checksum = "f12bfb23370a069f8facbfd53ce78213461b0a8570f6c81488030f5ab6f8cc4e"
 dependencies = [
  "aws-smithy-types",
 ]
 
 [[package]]
 name = "aws-smithy-query"
-version = "0.60.0"
+version = "0.60.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "feb5b8c7a86d4b6399169670723b7e6f21a39fc833a30f5c5a2f997608178129"
+checksum = "3b1adc06e0175c175d280267bb8fd028143518013fcb869e1c3199569a2e902a"
 dependencies = [
  "aws-smithy-types",
  "urlencoding",
@@ -877,9 +870,9 @@ dependencies = [
 
 [[package]]
 name = "aws-smithy-runtime"
-version = "1.0.2"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "273479291efc55e7b0bce985b139d86b6031adb8e50f65c1f712f20ba38f6388"
+checksum = "7cf0f6845d2d97b953cea791b0ee37191c5509f2897ec7eb7580a0e7a594e98b"
 dependencies = [
  "aws-smithy-async",
  "aws-smithy-http",
@@ -895,16 +888,16 @@ dependencies = [
  "once_cell",
  "pin-project-lite",
  "pin-utils",
- "rustls 0.21.9",
+ "rustls 0.21.10",
  "tokio",
  "tracing",
 ]
 
 [[package]]
 name = "aws-smithy-runtime-api"
-version = "1.0.2"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6cebff0d977b6b6feed2fd07db52aac58ba3ccaf26cdd49f1af4add5061bef9"
+checksum = "47798ba97a33979c80e837519cf837f18fd6df0adb02dd5286a75d9891c6e671"
 dependencies = [
  "aws-smithy-async",
  "aws-smithy-types",
@@ -918,9 +911,9 @@ dependencies = [
 
 [[package]]
 name = "aws-smithy-types"
-version = "1.0.2"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7f48b3f27ddb40ab19892a5abda331f403e3cb877965e4e51171447807104af"
+checksum = "4e9a85eafeaf783b2408e35af599e8b96f2c49d9a5d13ad3a887fbdefb6bc744"
 dependencies = [
  "base64-simd",
  "bytes",
@@ -941,18 +934,18 @@ dependencies = [
 
 [[package]]
 name = "aws-smithy-xml"
-version = "0.60.0"
+version = "0.60.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ec40d74a67fd395bc3f6b4ccbdf1543672622d905ef3f979689aea5b730cb95"
+checksum = "5a84bee2b44c22cbba59f12c34b831a97df698f8e43df579b35998652a00dc13"
 dependencies = [
  "xmlparser",
 ]
 
 [[package]]
 name = "aws-types"
-version = "1.0.1"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8403fc56b1f3761e8efe45771ddc1165e47ec3417c68e68a4519b5cb030159ca"
+checksum = "8549aa62c5b7db5c57ab915200ee214b4f5d8f19b29a4a8fa0b3ad3bca1380e3"
 dependencies = [
  "aws-credential-types",
  "aws-smithy-async",
@@ -1035,22 +1028,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce"
 
 [[package]]
-name = "base64"
-version = "0.13.1"
+name = "base16ct"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf"
 
 [[package]]
 name = "base64"
-version = "0.20.0"
+version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ea22880d78093b0cbe17c89f64a7d457941e65759157ec6cb31a31d652b05e5"
+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-simd"
@@ -1077,7 +1070,7 @@ dependencies = [
  "async-trait",
  "futures-channel",
  "futures-util",
- "parking_lot 0.12.1",
+ "parking_lot",
  "tokio",
 ]
 
@@ -1125,48 +1118,28 @@ dependencies = [
 
 [[package]]
 name = "bindgen"
-version = "0.65.1"
+version = "0.69.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cfdf7b466f9a4903edc73f95d6d2bcd5baf8ae620638762244d3f60143643cc5"
+checksum = "a4c69fae65a523209d34240b60abe0c42d33d1045d445c0839d8a4894a736e2d"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "cexpr",
  "clang-sys",
  "lazy_static",
  "lazycell",
  "log",
  "peeking_take_while",
- "prettyplease 0.2.15",
+ "prettyplease 0.2.16",
  "proc-macro2",
  "quote",
  "regex",
  "rustc-hash",
  "shlex",
- "syn 2.0.39",
+ "syn 2.0.48",
  "which",
 ]
 
 [[package]]
-name = "bindgen"
-version = "0.69.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ffcebc3849946a7170a05992aac39da343a90676ab392c51a4280981d6379c2"
-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"
@@ -1174,9 +1147,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.1"
+version = "2.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
 dependencies = [
  "serde",
 ]
@@ -1244,20 +1217,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
 dependencies = [
  "async-channel 2.1.1",
- "async-lock 3.1.2",
+ "async-lock 3.3.0",
  "async-task",
  "fastrand 2.0.1",
  "futures-io",
- "futures-lite 2.0.1",
+ "futures-lite 2.2.0",
  "piper",
  "tracing",
 ]
 
 [[package]]
 name = "borsh"
-version = "1.2.0"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf617fabf5cdbdc92f774bfe5062d870f228b80056d41180797abf48bed4056e"
+checksum = "f58b559fd6448c6e2fd0adb5720cd98a2506594cafa4737ff98c396f3e82f667"
 dependencies = [
  "borsh-derive",
  "cfg_aliases",
@@ -1265,15 +1238,15 @@ dependencies = [
 
 [[package]]
 name = "borsh-derive"
-version = "1.2.0"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f404657a7ea7b5249e36808dff544bc88a28f26e0ac40009f674b7a009d14be3"
+checksum = "7aadb5b6ccbd078890f6d7003694e33816e6b784358f18e15e7e6d9f065a57cd"
 dependencies = [
  "once_cell",
- "proc-macro-crate 2.0.0",
+ "proc-macro-crate 3.1.0",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
  "syn_derive",
 ]
 
@@ -1362,7 +1335,7 @@ checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1410,9 +1383,9 @@ dependencies = [
 
 [[package]]
 name = "candle-core"
-version = "0.3.1"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d60d9b91c73bc662dc45aff607f5ffe79724b7cf7d7c8dc12a72b25921683b67"
+checksum = "57433f80b510bc603fd9e52c5a15eb44a8ac70112b95b28b0ab8fb1c1f001822"
 dependencies = [
  "byteorder",
  "gemm",
@@ -1431,9 +1404,9 @@ dependencies = [
 
 [[package]]
 name = "candle-nn"
-version = "0.3.1"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4eb6e13e7076439309786482d4d4c1b4e1f2b102ca93513372d5419ffcf5df25"
+checksum = "211d0a1ca744eba0259b920ce767cb22620b4d766d5bf9acc2423402da0e8be8"
 dependencies = [
  "candle-core",
  "half",
@@ -1446,9 +1419,9 @@ dependencies = [
 
 [[package]]
 name = "candle-transformers"
-version = "0.3.1"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0169336de9dc62dd84e19af1408e53ef8ad07eef8fc103cfebf5b6c3e3f23c2c"
+checksum = "f5b3eb1be12314656dca72d23e0e074628d4fbd8f9c8a5e628409174574cceaa"
 dependencies = [
  "byteorder",
  "candle-core",
@@ -1469,7 +1442,7 @@ version = "9.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e11c675378efb449ed3ce8de78d75d0d80542fc98487c26aba28eb3b82feac72"
 dependencies = [
- "semver 1.0.20",
+ "semver 1.0.21",
  "serde",
  "toml 0.7.8",
  "url",
@@ -1523,9 +1496,9 @@ dependencies = [
 
 [[package]]
 name = "chrono-tz"
-version = "0.8.4"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e23185c0e21df6ed832a12e2bda87c7d1def6842881fb634a8511ced741b0d76"
+checksum = "91d7b79e99bfaa0d47da0687c43aa3b7381938a62ad3a6498599039321f660b7"
 dependencies = [
  "chrono",
  "chrono-tz-build",
@@ -1564,9 +1537,9 @@ dependencies = [
 
 [[package]]
 name = "clang-sys"
-version = "1.6.1"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f"
+checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1"
 dependencies = [
  "glob",
  "libc",
@@ -1575,9 +1548,9 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.4.10"
+version = "4.4.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41fffed7514f420abec6d183b1d3acfd9099c79c3a10a06ade4f8203f1411272"
+checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -1585,9 +1558,9 @@ dependencies = [
 
 [[package]]
 name = "clap_builder"
-version = "4.4.9"
+version = "4.4.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63361bae7eef3771745f02d8d892bec2fee5f6e34af316ba556e7f97a7069ff1"
+checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7"
 dependencies = [
  "anstream",
  "anstyle",
@@ -1604,7 +1577,7 @@ dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1656,9 +1629,9 @@ dependencies = [
 
 [[package]]
 name = "concurrent-queue"
-version = "2.3.0"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400"
+checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
 dependencies = [
  "crossbeam-utils",
 ]
@@ -1671,15 +1644,15 @@ checksum = "510ca239cf13b7f8d16a2b48f263de7b4f8c566f0af58d901031473c76afb1e3"
 
 [[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]]
@@ -1694,9 +1667,9 @@ dependencies = [
 
 [[package]]
 name = "const-oid"
-version = "0.9.5"
+version = "0.9.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f"
+checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
 
 [[package]]
 name = "const_format"
@@ -1769,9 +1742,9 @@ checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
 dependencies = [
  "libc",
 ]
@@ -1787,9 +1760,9 @@ dependencies = [
 
 [[package]]
 name = "crc-any"
-version = "2.4.3"
+version = "2.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "774646b687f63643eb0f4bf13dc263cb581c8c9e57973b6ddf78bda3994d88df"
+checksum = "c01a5e1f881f6fb6099a7bdf949e946719fd4f1fefa56264890574febf0eb6d0"
 dependencies = [
  "debug-helper",
 ]
@@ -1831,11 +1804,10 @@ dependencies = [
 
 [[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",
@@ -1845,56 +1817,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.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",
- "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"
@@ -1902,10 +1864,10 @@ version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "crossterm_winapi",
  "libc",
- "parking_lot 0.12.1",
+ "parking_lot",
  "winapi",
 ]
 
@@ -1942,8 +1904,10 @@ version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76"
 dependencies = [
+ "generic-array",
  "rand_core 0.6.4",
  "subtle",
+ "zeroize",
 ]
 
 [[package]]
@@ -1957,6 +1921,34 @@ dependencies = [
 ]
 
 [[package]]
+name = "curve25519-dalek"
+version = "4.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "curve25519-dalek-derive",
+ "digest 0.10.7",
+ "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",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
 name = "darling"
 version = "0.14.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2001,7 +1993,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "strsim",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -2023,7 +2015,7 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
 dependencies = [
  "darling_core 0.20.3",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -2036,7 +2028,7 @@ dependencies = [
  "hashbrown 0.14.3",
  "lock_api",
  "once_cell",
- "parking_lot_core 0.9.9",
+ "parking_lot_core",
 ]
 
 [[package]]
@@ -2081,7 +2073,7 @@ checksum = "3c65c2ffdafc1564565200967edc4851c7b55422d3913466688907efd05ea26f"
 dependencies = [
  "deno-proc-macro-rules-macros",
  "proc-macro2",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -2093,7 +2085,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -2155,7 +2147,7 @@ dependencies = [
  "libc",
  "log",
  "once_cell",
- "parking_lot 0.12.1",
+ "parking_lot",
  "pin-project",
  "serde",
  "serde_json",
@@ -2213,7 +2205,7 @@ dependencies = [
  "strum",
  "strum_macros",
  "syn 1.0.109",
- "syn 2.0.39",
+ "syn 2.0.48",
  "thiserror",
 ]
 
@@ -2225,7 +2217,7 @@ checksum = "010ce5e0a920b2364c75a9e38bcd3344bfe55a6b6cd9ef6717d78e5478f9bcb3"
 dependencies = [
  "deno_core",
  "once_cell",
- "rustls 0.21.9",
+ "rustls 0.21.10",
  "rustls-native-certs",
  "rustls-pemfile",
  "serde",
@@ -2294,9 +2286,9 @@ dependencies = [
 
 [[package]]
 name = "deranged"
-version = "0.3.9"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
 dependencies = [
  "powerfmt",
  "serde",
@@ -2380,20 +2372,11 @@ dependencies = [
 
 [[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",
+ "dirs-sys",
 ]
 
 [[package]]
@@ -2408,17 +2391,6 @@ dependencies = [
 
 [[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"
@@ -2503,12 +2475,50 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c"
 dependencies = [
  "der 0.6.1",
- "elliptic-curve",
- "rfc6979",
+ "elliptic-curve 0.12.3",
+ "rfc6979 0.3.1",
  "signature 1.6.4",
 ]
 
 [[package]]
+name = "ecdsa"
+version = "0.16.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca"
+dependencies = [
+ "der 0.7.8",
+ "digest 0.10.7",
+ "elliptic-curve 0.13.8",
+ "rfc6979 0.4.0",
+ "signature 2.2.0",
+ "spki 0.7.3",
+]
+
+[[package]]
+name = "ed25519"
+version = "2.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53"
+dependencies = [
+ "pkcs8 0.10.2",
+ "signature 2.2.0",
+]
+
+[[package]]
+name = "ed25519-dalek"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0"
+dependencies = [
+ "curve25519-dalek",
+ "ed25519",
+ "serde",
+ "sha2 0.10.8",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
 name = "either"
 version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2523,16 +2533,37 @@ version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3"
 dependencies = [
- "base16ct",
+ "base16ct 0.1.1",
  "crypto-bigint 0.4.9",
  "der 0.6.1",
  "digest 0.10.7",
- "ff",
+ "ff 0.12.1",
  "generic-array",
- "group",
+ "group 0.12.1",
  "pkcs8 0.9.0",
  "rand_core 0.6.4",
- "sec1",
+ "sec1 0.3.0",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "elliptic-curve"
+version = "0.13.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47"
+dependencies = [
+ "base16ct 0.2.0",
+ "crypto-bigint 0.5.5",
+ "digest 0.10.7",
+ "ff 0.13.0",
+ "generic-array",
+ "group 0.13.0",
+ "hkdf",
+ "pem-rfc7468 0.7.0",
+ "pkcs8 0.10.2",
+ "rand_core 0.6.4",
+ "sec1 0.7.3",
  "subtle",
  "zeroize",
 ]
@@ -2637,7 +2668,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -2657,7 +2688,7 @@ checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -2710,9 +2741,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
 
 [[package]]
 name = "event-listener"
-version = "4.0.0"
+version = "4.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "770d968249b5d99410d61f5bf89057f3199a077a04d087092f58e7d10692baae"
+checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e"
 dependencies = [
  "concurrent-queue",
  "parking",
@@ -2725,7 +2756,7 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3"
 dependencies = [
- "event-listener 4.0.0",
+ "event-listener 4.0.3",
  "pin-project-lite",
 ]
 
@@ -2773,15 +2804,31 @@ dependencies = [
 ]
 
 [[package]]
+name = "ff"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449"
+dependencies = [
+ "rand_core 0.6.4",
+ "subtle",
+]
+
+[[package]]
+name = "fiat-crypto"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7"
+
+[[package]]
 name = "filetime"
-version = "0.2.22"
+version = "0.2.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0"
+checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall 0.3.5",
- "windows-sys 0.48.0",
+ "redox_syscall 0.4.1",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -2858,7 +2905,7 @@ dependencies = [
  "pmutil 0.6.1",
  "proc-macro2",
  "swc_macros_common",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -2886,7 +2933,7 @@ checksum = "b0fa992f1656e1707946bbba340ad244f0814009ef8c0118eb7b658395f19a2e"
 dependencies = [
  "frunk_proc_macro_helpers",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -2898,7 +2945,7 @@ dependencies = [
  "frunk_core",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -2910,7 +2957,7 @@ dependencies = [
  "frunk_core",
  "frunk_proc_macro_helpers",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -2931,9 +2978,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",
@@ -2946,9 +2993,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",
@@ -2956,15 +3003,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",
@@ -2973,31 +3020,20 @@ dependencies = [
 
 [[package]]
 name = "futures-intrusive"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a604f7a68fbf8103337523b1fadc8ade7361ee3f112f7c680ad179651616aed5"
-dependencies = [
- "futures-core",
- "lock_api",
- "parking_lot 0.11.2",
-]
-
-[[package]]
-name = "futures-intrusive"
 version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 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"
@@ -3016,46 +3052,45 @@ dependencies = [
 
 [[package]]
 name = "futures-lite"
-version = "2.0.1"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3831c2651acb5177cbd83943f3d9c8912c5ad03c76afcc0e9511ba568ec5ebb"
+checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba"
 dependencies = [
  "fastrand 2.0.1",
  "futures-core",
  "futures-io",
- "memchr",
  "parking",
  "pin-project-lite",
 ]
 
 [[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.48",
 ]
 
 [[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",
@@ -3076,12 +3111,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7d3b20d3058763d26d88e6e7a49998841e5296735b00dbfb064ff7cb142933dd"
 dependencies = [
  "async-trait",
- "base64 0.21.5",
+ "base64 0.21.7",
  "dirs-next",
  "hyper",
  "hyper-rustls",
  "ring 0.16.20",
- "rustls 0.21.9",
+ "rustls 0.21.10",
  "rustls-pemfile",
  "serde",
  "serde_json",
@@ -3219,6 +3254,7 @@ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
 dependencies = [
  "typenum",
  "version_check",
+ "zeroize",
 ]
 
 [[package]]
@@ -3253,9 +3289,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -3272,22 +3308,22 @@ checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
 name = "git-version"
-version = "0.3.8"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13ad01ffa8221f7fe8b936d6ffb2a3e7ad428885a04fad51866a5f33eafda57c"
+checksum = "1ad568aa3db0fcbc81f2f116137f263d7304f512a1209b35b85150d3ef88ad19"
 dependencies = [
  "git-version-macro",
 ]
 
 [[package]]
 name = "git-version-macro"
-version = "0.3.8"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84488ccbdb24ad6f56dc1863b4a8154a7856cd3c6c7610401634fab3cb588dae"
+checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -3323,9 +3359,9 @@ dependencies = [
 
 [[package]]
 name = "gosyn"
-version = "0.2.6"
+version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "099e29e0cf77a5b706f9e05e425cfeeed0debb2ee6c74c2c86bd9b17178bf8e0"
+checksum = "14163cf566b1496f50447a61981892272a61ef220d37e69508e19075bc66e3f1"
 dependencies = [
  "anyhow",
  "strum",
@@ -3339,16 +3375,27 @@ version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7"
 dependencies = [
- "ff",
+ "ff 0.12.1",
+ "rand_core 0.6.4",
+ "subtle",
+]
+
+[[package]]
+name = "group"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63"
+dependencies = [
+ "ff 0.13.0",
  "rand_core 0.6.4",
  "subtle",
 ]
 
 [[package]]
 name = "h2"
-version = "0.3.22"
+version = "0.3.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178"
+checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
 dependencies = [
  "bytes",
  "fnv",
@@ -3392,7 +3439,7 @@ version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
 dependencies = [
- "ahash 0.8.6",
+ "ahash 0.8.7",
 ]
 
 [[package]]
@@ -3401,7 +3448,7 @@ version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 dependencies = [
- "ahash 0.8.6",
+ "ahash 0.8.7",
  "allocator-api2",
  "rayon",
 ]
@@ -3421,7 +3468,7 @@ 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",
@@ -3450,9 +3497,9 @@ dependencies = [
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.3"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f"
 
 [[package]]
 name = "hex"
@@ -3466,7 +3513,7 @@ version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2b780635574b3d92f036890d8373433d6f9fc7abb320ee42a5c25897fc8ed732"
 dependencies = [
- "dirs 5.0.1",
+ "dirs",
  "indicatif",
  "log",
  "native-tls",
@@ -3479,9 +3526,9 @@ dependencies = [
 
 [[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",
 ]
@@ -3497,11 +3544,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]]
@@ -3517,9 +3564,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",
@@ -3573,9 +3620,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
 
 [[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",
@@ -3588,7 +3635,7 @@ dependencies = [
  "httpdate",
  "itoa",
  "pin-project-lite",
- "socket2 0.4.10",
+ "socket2 0.5.5",
  "tokio",
  "tower-service",
  "tracing",
@@ -3605,7 +3652,7 @@ dependencies = [
  "http",
  "hyper",
  "log",
- "rustls 0.21.9",
+ "rustls 0.21.10",
  "rustls-native-certs",
  "tokio",
  "tokio-rustls 0.24.1",
@@ -3626,9 +3673,9 @@ dependencies = [
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.58"
+version = "0.1.59"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20"
+checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
@@ -3688,6 +3735,7 @@ checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
 dependencies = [
  "equivalent",
  "hashbrown 0.14.3",
+ "serde",
 ]
 
 [[package]]
@@ -3759,15 +3807,23 @@ dependencies = [
 
 [[package]]
 name = "is-macro"
-version = "0.3.0"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4467ed1321b310c2625c5aa6c1b1ffc5de4d9e42668cf697a08fb033ee8265e"
+checksum = "59a85abdc13717906baccb5a1e435556ce0df215f242892f721dff62bf25288f"
 dependencies = [
  "Inflector",
- "pmutil 0.6.1",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "itertools"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
+dependencies = [
+ "either",
 ]
 
 [[package]]
@@ -3799,9 +3855,9 @@ dependencies = [
 
 [[package]]
 name = "itoa"
-version = "1.0.9"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
 name = "itoap"
@@ -3833,7 +3889,7 @@ version = "8.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
  "pem 1.1.1",
  "ring 0.16.20",
  "serde",
@@ -3842,6 +3898,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "keccak"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654"
+dependencies = [
+ "cpufeatures",
+]
+
+[[package]]
 name = "keyed_priority_queue"
 version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3920,9 +3985,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
 
 [[package]]
 name = "libc"
-version = "0.2.150"
+version = "0.2.152"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
+checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
 
 [[package]]
 name = "libgit2-sys"
@@ -3938,12 +4003,12 @@ dependencies = [
 
 [[package]]
 name = "libloading"
-version = "0.7.4"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
+checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
 dependencies = [
  "cfg-if",
- "winapi",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -3958,7 +4023,7 @@ version = "0.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "libc",
  "redox_syscall 0.4.1",
 ]
@@ -3987,9 +4052,9 @@ dependencies = [
 
 [[package]]
 name = "libz-ng-sys"
-version = "1.1.12"
+version = "1.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dd9f43e75536a46ee0f92b758f6b63846e594e86638c61a9251338a65baea63"
+checksum = "c6409efc61b12687963e602df8ecf70e8ddacf95bc6576bcf16e3ac6328083c5"
 dependencies = [
  "cmake",
  "libc",
@@ -3997,9 +4062,9 @@ dependencies = [
 
 [[package]]
 name = "libz-sys"
-version = "1.1.12"
+version = "1.1.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b"
+checksum = "295c17e837573c8c821dbaeb3cceb3d745ad082f7572191409e69cbc1b3fd050"
 dependencies = [
  "cc",
  "libc",
@@ -4015,9 +4080,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
 
 [[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"
@@ -4111,7 +4176,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6c42f95f9d296f2dcb50665f507ed5a68a171453142663ce44d77a4eb217b053"
 dependencies = [
  "aes 0.7.5",
- "base64 0.21.5",
+ "base64 0.21.7",
  "block-modes",
  "crc-any",
  "des",
@@ -4132,25 +4197,26 @@ dependencies = [
 
 [[package]]
 name = "mail-send"
-version = "0.4.1"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cbc58a799366b3b2956a2c5ae7e2892ea34b3016343cbbdc5deb844aa6c0973"
+checksum = "5f5982137dccf24ca038daa022eb0ea97a31e9739477445a787a8ef77e015ebb"
 dependencies = [
- "base64 0.20.0",
+ "base64 0.21.7",
  "gethostname",
  "mail-builder",
- "rustls 0.21.9",
+ "rustls 0.22.2",
+ "rustls-pki-types",
  "smtp-proto",
  "tokio",
- "tokio-rustls 0.24.1",
- "webpki-roots 0.25.3",
+ "tokio-rustls 0.25.0",
+ "webpki-roots 0.26.0",
 ]
 
 [[package]]
 name = "malachite"
-version = "0.4.4"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "220cb36c52aa6eff45559df497abe0e2a4c1209f92279a746a399f622d7b95c7"
+checksum = "f6cf7f4730c30071ba374fac86ad35b1cb7a0716f774737768667ea3fa1828e3"
 dependencies = [
  "malachite-base",
  "malachite-nz",
@@ -4159,19 +4225,22 @@ dependencies = [
 
 [[package]]
 name = "malachite-base"
-version = "0.4.4"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6538136c5daf04126d6be4899f7fe4879b7f8de896dd1b4210fe6de5b94f2555"
+checksum = "2b06bfa98a4b4802af5a4263b4ad4660e28e51e8490f6354eb9336c70767e1c5"
 dependencies = [
- "itertools 0.11.0",
+ "itertools 0.9.0",
+ "rand 0.7.3",
+ "rand_chacha 0.2.2",
  "ryu",
+ "sha3",
 ]
 
 [[package]]
 name = "malachite-bigint"
-version = "0.1.1"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76c3eca3b5df299486144c8423c45c24bdf9e82e2452c8a1eeda547c4d8b5d41"
+checksum = "8a5110aee54537b0cef214efbebdd7df79b7408db8eef4f6a4b6db9d0d8fc01b"
 dependencies = [
  "derive_more",
  "malachite",
@@ -4182,22 +4251,22 @@ dependencies = [
 
 [[package]]
 name = "malachite-nz"
-version = "0.4.4"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f0b05577b7a3f09433106460b10304f97fc572f0baabf6640e6cb1e23f5fc52"
+checksum = "c89e21c64b7af5be3dc8cef16f786243faf59459fe4ba93b44efdeb264e5ade4"
 dependencies = [
  "embed-doc-image",
- "itertools 0.11.0",
+ "itertools 0.9.0",
  "malachite-base",
 ]
 
 [[package]]
 name = "malachite-q"
-version = "0.4.4"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1cfdb4016292e6acd832eaee261175f3af8bbee62afeefe4420ebce4c440cb5"
+checksum = "3755e541d5134b5016594c9043094172c4dda9259b3ce824a7b8101941850360"
 dependencies = [
- "itertools 0.11.0",
+ "itertools 0.9.0",
  "malachite-base",
  "malachite-nz",
 ]
@@ -4246,9 +4315,9 @@ dependencies = [
 
 [[package]]
 name = "memchr"
-version = "2.6.4"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "memmap2"
@@ -4261,15 +4330,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"
@@ -4302,9 +4362,9 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.9"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0"
+checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
 dependencies = [
  "libc",
  "log",
@@ -4314,9 +4374,9 @@ dependencies = [
 
 [[package]]
 name = "monostate"
-version = "0.1.10"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e404e13820ea0df0eda93aa294e0c80de76a0daa6bec590d376fbec6d7810394"
+checksum = "878c2a1f1c70e5724fa28f101ca787b6a7e8ad5c5e4ae4ca3b0fa4a419fa9075"
 dependencies = [
  "monostate-impl",
  "serde",
@@ -4324,13 +4384,13 @@ dependencies = [
 
 [[package]]
 name = "monostate-impl"
-version = "0.1.10"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "531c82a934da419bed3da09bd87d6e98c72f8d4aa755427b3b009c2b8b8c433c"
+checksum = "f686d68a09079e63b1d2c64aa305095887ce50565f00a922ebfaeeee0d9ba6ce"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -4368,7 +4428,7 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
  "termcolor",
  "thiserror",
 ]
@@ -4392,7 +4452,7 @@ dependencies = [
  "mysql_common",
  "native-tls",
  "once_cell",
- "pem 3.0.2",
+ "pem 3.0.3",
  "percent-encoding",
  "pin-project",
  "rand 0.8.5",
@@ -4413,10 +4473,10 @@ version = "0.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "06f19e4cfa0ab5a76b627cec2d81331c49b034988eaf302c3bafeada684eadef"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
  "bigdecimal 0.4.2",
- "bindgen 0.69.1",
- "bitflags 2.4.1",
+ "bindgen",
+ "bitflags 2.4.2",
  "bitvec",
  "btoi",
  "byteorder",
@@ -4476,7 +4536,7 @@ version = "0.27.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "cfg-if",
  "libc",
 ]
@@ -4607,10 +4667,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
 
 [[package]]
+name = "oauth2"
+version = "4.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c38841cdd844847e3e7c8d29cef9dcfed8877f8f56f9071f77843ecf3baf937f"
+dependencies = [
+ "base64 0.13.1",
+ "chrono",
+ "getrandom 0.2.12",
+ "http",
+ "rand 0.8.5",
+ "reqwest",
+ "serde",
+ "serde_json",
+ "serde_path_to_error",
+ "sha2 0.10.8",
+ "thiserror",
+ "url",
+]
+
+[[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 = [
  "memchr",
 ]
@@ -4622,19 +4702,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2524735495ea1268be33d200e1ee97455096a0846295a21548cd2f3541de7050"
 dependencies = [
  "async-trait",
- "base64 0.21.5",
+ "base64 0.21.7",
  "bytes",
  "chrono",
  "futures",
  "humantime",
  "hyper",
  "itertools 0.11.0",
- "parking_lot 0.12.1",
+ "parking_lot",
  "percent-encoding",
  "quick-xml 0.31.0",
  "rand 0.8.5",
  "reqwest",
- "ring 0.17.6",
+ "ring 0.17.7",
  "serde",
  "serde_json",
  "snafu",
@@ -4646,9 +4726,9 @@ dependencies = [
 
 [[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 = "onig"
@@ -4690,12 +4770,44 @@ dependencies = [
 ]
 
 [[package]]
+name = "openidconnect"
+version = "3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62d6050f6a84b81f23c569f5607ad883293e57491036e318fafe6fc4895fadb1"
+dependencies = [
+ "base64 0.13.1",
+ "chrono",
+ "dyn-clone",
+ "ed25519-dalek",
+ "hmac",
+ "http",
+ "itertools 0.10.5",
+ "log",
+ "oauth2",
+ "p256 0.13.2",
+ "p384",
+ "rand 0.8.5",
+ "rsa 0.9.6",
+ "serde",
+ "serde-value",
+ "serde_derive",
+ "serde_json",
+ "serde_path_to_error",
+ "serde_plain",
+ "serde_with",
+ "sha2 0.10.8",
+ "subtle",
+ "thiserror",
+ "url",
+]
+
+[[package]]
 name = "openssl"
-version = "0.10.60"
+version = "0.10.62"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79a4c6c3a2b158f7f8f2a2fc5a969fa3a068df6fc9dbb4a43845436e3af7c800"
+checksum = "8cde4d2d9200ad5909f8dac647e29482e07c3a35de8a13fce7c9c7747ad9f671"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "cfg-if",
  "foreign-types",
  "libc",
@@ -4712,7 +4824,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -4723,9 +4835,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.96"
+version = "0.9.98"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3812c071ba60da8b5677cc12bcb1d42989a65553772897a7e0355545a819838f"
+checksum = "c1665caf8ab2dc9aef43d1c0023bd904633a6a05cb30b0ad59bec2ae986e57a7"
 dependencies = [
  "cc",
  "libc",
@@ -4740,6 +4852,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
 
 [[package]]
+name = "ordered-float"
+version = "2.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
 name = "outref"
 version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4757,50 +4878,49 @@ version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "51f44edd08f51e2ade572f141051021c5af22677e42b7dd28a88155151c33594"
 dependencies = [
- "ecdsa",
- "elliptic-curve",
+ "ecdsa 0.14.8",
+ "elliptic-curve 0.12.3",
  "sha2 0.10.8",
 ]
 
 [[package]]
-name = "parking"
-version = "2.2.0"
+name = "p256"
+version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
+checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b"
+dependencies = [
+ "ecdsa 0.16.9",
+ "elliptic-curve 0.13.8",
+ "primeorder",
+ "sha2 0.10.8",
+]
 
 [[package]]
-name = "parking_lot"
-version = "0.11.2"
+name = "p384"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
+checksum = "70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209"
 dependencies = [
- "instant",
- "lock_api",
- "parking_lot_core 0.8.6",
+ "ecdsa 0.16.9",
+ "elliptic-curve 0.13.8",
+ "primeorder",
+ "sha2 0.10.8",
 ]
 
 [[package]]
+name = "parking"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
+
+[[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",
-]
-
-[[package]]
-name = "parking_lot_core"
-version = "0.8.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
-dependencies = [
- "cfg-if",
- "instant",
- "libc",
- "redox_syscall 0.2.16",
- "smallvec",
- "winapi",
+ "parking_lot_core",
 ]
 
 [[package]]
@@ -4898,11 +5018,11 @@ dependencies = [
 
 [[package]]
 name = "pem"
-version = "3.0.2"
+version = "3.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3163d2912b7c3b52d651a055f2c7eec9ba5cd22d26ef75b8dd3a59980b185923"
+checksum = "1b8fcc794035347fb64beda2d3b462595dd2753e3f268d89c5aae77e8cf2c310"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
  "serde",
 ]
 
@@ -4938,12 +5058,11 @@ dependencies = [
  "archiver-rs",
  "async-trait",
  "bytes",
- "dirs 5.0.1",
+ "dirs",
  "futures",
  "lazy_static",
  "log",
  "reqwest",
- "sqlx 0.6.3",
  "thiserror",
  "tokio",
  "zip",
@@ -5024,7 +5143,7 @@ dependencies = [
  "phf_shared 0.11.2",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -5062,7 +5181,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -5133,9 +5252,9 @@ dependencies = [
 
 [[package]]
 name = "pkg-config"
-version = "0.3.27"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
 
 [[package]]
 name = "planus"
@@ -5147,6 +5266,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "platforms"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "626dec3cac7cc0e1577a2ec3fc496277ec2baa084bebad95bb6fdbfae235f84c"
+
+[[package]]
 name = "pmutil"
 version = "0.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5165,7 +5290,7 @@ checksum = "52a40bc70c2c58040d2d8b167ba9a5ff59fc9dab7ad44771cfde3dcfde7a09c6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -5174,7 +5299,7 @@ version = "0.35.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "df8e52f9236eb722da0990a70bbb1216dcc7a77bcb00c63439d2d982823e90d5"
 dependencies = [
- "getrandom 0.2.11",
+ "getrandom 0.2.12",
  "polars-core",
  "polars-io",
  "polars-lazy",
@@ -5190,9 +5315,9 @@ version = "0.35.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dd503430a6d9779b07915d858865fe998317ef3cfef8973881f578ac5d4baae7"
 dependencies = [
- "ahash 0.8.6",
+ "ahash 0.8.7",
  "arrow-format",
- "atoi 2.0.0",
+ "atoi",
  "atoi_simd",
  "bytemuck",
  "chrono",
@@ -5202,7 +5327,7 @@ dependencies = [
  "fast-float",
  "foreign_vec",
  "futures",
- "getrandom 0.2.11",
+ "getrandom 0.2.12",
  "hashbrown 0.14.3",
  "itoa",
  "lz4",
@@ -5224,8 +5349,8 @@ version = "0.35.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ae73d5b8e55decde670caba1cc82b61f14bfb9a72503198f0997d657a98dcfd6"
 dependencies = [
- "ahash 0.8.6",
- "bitflags 2.4.1",
+ "ahash 0.8.7",
+ "bitflags 2.4.2",
  "bytemuck",
  "chrono",
  "comfy-table",
@@ -5268,7 +5393,7 @@ version = "0.35.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "96e10a0745acd6009db64bef0ceb9e23a70b1c27b26a0a6517c91f3e6363bc06"
 dependencies = [
- "ahash 0.8.6",
+ "ahash 0.8.7",
  "async-trait",
  "atoi_simd",
  "bytes",
@@ -5308,8 +5433,8 @@ version = "0.35.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3555f759705be6dd0d3762d16a0b8787b2dc4da73b57465f3b2bf1a070ba8f20"
 dependencies = [
- "ahash 0.8.6",
- "bitflags 2.4.1",
+ "ahash 0.8.7",
+ "bitflags 2.4.2",
  "futures",
  "glob",
  "once_cell",
@@ -5333,7 +5458,7 @@ version = "0.35.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1a7eb218296aaa7f79945f08288ca32ca3cf25fa505649eeee689ec21eebf636"
 dependencies = [
- "ahash 0.8.6",
+ "ahash 0.8.7",
  "argminmax",
  "bytemuck",
  "either",
@@ -5357,9 +5482,9 @@ version = "0.35.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "146010e4b7dd4d2d0e58ddc762f6361f77d7a0385c54471199370c17164f67dd"
 dependencies = [
- "ahash 0.8.6",
+ "ahash 0.8.7",
  "async-stream",
- "base64 0.21.5",
+ "base64 0.21.7",
  "brotli",
  "ethnum",
  "flate2",
@@ -5408,7 +5533,7 @@ version = "0.35.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "10e32a0958ef854b132bad7f8369cb3237254635d5e864c99505bc0bc1035fbc"
 dependencies = [
- "ahash 0.8.6",
+ "ahash 0.8.7",
  "bytemuck",
  "once_cell",
  "percent-encoding",
@@ -5460,7 +5585,7 @@ version = "0.35.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "aae56f79e9cedd617773c1c8f5ca84a31a8b1d593714959d5f799e7bdd98fe51"
 dependencies = [
- "atoi 2.0.0",
+ "atoi",
  "chrono",
  "now",
  "once_cell",
@@ -5479,7 +5604,7 @@ version = "0.35.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "da6ce68169fe61d46958c8eab7447360f30f2f23f6e24a0ce703a14b0a3cfbfc"
 dependencies = [
- "ahash 0.8.6",
+ "ahash 0.8.7",
  "bytemuck",
  "hashbrown 0.14.3",
  "indexmap 2.1.0",
@@ -5510,23 +5635,23 @@ dependencies = [
 
 [[package]]
 name = "polling"
-version = "3.3.1"
+version = "3.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e"
+checksum = "545c980a3880efd47b2e262f6a4bb6daad6555cf3367aa9c4e52895f69537a41"
 dependencies = [
  "cfg-if",
  "concurrent-queue",
  "pin-project-lite",
- "rustix 0.38.26",
+ "rustix 0.38.30",
  "tracing",
  "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "portable-atomic"
-version = "1.5.1"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3bccab0e7fd7cc19f820a1c8c91720af652d0c88dc9664dd72aef2614f04af3b"
+checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
 
 [[package]]
 name = "postgres"
@@ -5561,7 +5686,7 @@ version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "49b6c5ef183cd3ab4ba005f1ca64c21e8bd97ce4699cfea9e8d9a2c4958ca520"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
  "byteorder",
  "bytes",
  "fallible-iterator",
@@ -5625,12 +5750,21 @@ dependencies = [
 
 [[package]]
 name = "prettyplease"
-version = "0.2.15"
+version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d"
+checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5"
 dependencies = [
  "proc-macro2",
- "syn 2.0.39",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "primeorder"
+version = "0.13.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6"
+dependencies = [
+ "elliptic-curve 0.13.8",
 ]
 
 [[package]]
@@ -5645,11 +5779,11 @@ dependencies = [
 
 [[package]]
 name = "proc-macro-crate"
-version = "2.0.0"
+version = "3.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8"
+checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
 dependencies = [
- "toml_edit 0.20.7",
+ "toml_edit 0.21.0",
 ]
 
 [[package]]
@@ -5684,9 +5818,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.70"
+version = "1.0.76"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b"
+checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c"
 dependencies = [
  "unicode-ident",
 ]
@@ -5740,7 +5874,7 @@ dependencies = [
  "schemars",
  "serde",
  "serde_json",
- "syn 2.0.39",
+ "syn 2.0.48",
  "thiserror",
  "typify",
  "unicode-ident",
@@ -5760,7 +5894,7 @@ dependencies = [
  "serde_json",
  "serde_tokenstream",
  "serde_yaml",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -5779,7 +5913,7 @@ dependencies = [
  "fnv",
  "lazy_static",
  "memchr",
- "parking_lot 0.12.1",
+ "parking_lot",
  "thiserror",
 ]
 
@@ -5858,9 +5992,9 @@ dependencies = [
 
 [[package]]
 name = "quick-xml"
-version = "0.28.2"
+version = "0.30.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ce5e73202a820a31f8a0ee32ada5e21029c81fd9e3ebf668a40832e4219d9d1"
+checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956"
 dependencies = [
  "memchr",
  "serde",
@@ -5882,17 +6016,17 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f69f8d22fa3f34f3083d9a4375c038732c7a7e964de1beb81c544da92dfc40b8"
 dependencies = [
- "ahash 0.8.6",
+ "ahash 0.8.7",
  "equivalent",
  "hashbrown 0.14.3",
- "parking_lot 0.12.1",
+ "parking_lot",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.33"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
@@ -5968,7 +6102,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.12",
 ]
 
 [[package]]
@@ -6001,9 +6135,9 @@ dependencies = [
 
 [[package]]
 name = "rayon"
-version = "1.8.0"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
+checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051"
 dependencies = [
  "either",
  "rayon-core",
@@ -6022,9 +6156,9 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.12.0"
+version = "1.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
 dependencies = [
  "crossbeam-deque",
  "crossbeam-utils",
@@ -6060,15 +6194,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.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
@@ -6091,7 +6216,7 @@ version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
 dependencies = [
- "getrandom 0.2.11",
+ "getrandom 0.2.12",
  "libredox",
  "thiserror",
 ]
@@ -6129,6 +6254,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "regex-lite"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30b661b2f27137bdbc16f00eda72866a92bb28af1753ffbd56744fb6e2e9cd8e"
+
+[[package]]
 name = "regex-syntax"
 version = "0.6.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6167,12 +6298,12 @@ dependencies = [
 
 [[package]]
 name = "reqwest"
-version = "0.11.22"
+version = "0.11.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b"
+checksum = "37b1ae8d9ac08420c66222fb9096fc5de435c3c48542bc5336c51892cffafb41"
 dependencies = [
- "async-compression 0.4.5",
- "base64 0.21.5",
+ "async-compression 0.4.6",
+ "base64 0.21.7",
  "bytes",
  "encoding_rs",
  "futures-core",
@@ -6191,7 +6322,7 @@ dependencies = [
  "once_cell",
  "percent-encoding",
  "pin-project-lite",
- "rustls 0.21.9",
+ "rustls 0.21.10",
  "rustls-pemfile",
  "serde",
  "serde_json",
@@ -6224,6 +6355,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "rfc6979"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2"
+dependencies = [
+ "hmac",
+ "subtle",
+]
+
+[[package]]
 name = "riff"
 version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6246,12 +6387,12 @@ dependencies = [
 
 [[package]]
 name = "ring"
-version = "0.17.6"
+version = "0.17.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "684d5e6e18f669ccebf64a92236bb7db9a34f07be010e3627368182027180866"
+checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
 dependencies = [
  "cc",
- "getrandom 0.2.11",
+ "getrandom 0.2.12",
  "libc",
  "spin 0.9.8",
  "untrusted 0.9.0",
@@ -6260,12 +6401,13 @@ dependencies = [
 
 [[package]]
 name = "rkyv"
-version = "0.7.42"
+version = "0.7.43"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0200c8230b013893c0b2d6213d6ec64ed2b9be2e0e016682b7224ff82cff5c58"
+checksum = "527a97cdfef66f65998b5f3b637c26f5a5ec09cc52a3f9932313ac645f4190f5"
 dependencies = [
  "bitvec",
  "bytecheck",
+ "bytes",
  "hashbrown 0.12.3",
  "ptr_meta",
  "rend",
@@ -6277,9 +6419,9 @@ dependencies = [
 
 [[package]]
 name = "rkyv_derive"
-version = "0.7.42"
+version = "0.7.43"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2e06b915b5c230a17d7a736d1e2e63ee753c256a8614ef3f5147b13a4f5541d"
+checksum = "b5c462a1328c8e67e4d6dbad1eb0355dd43e8ab432c6e227a43657f16ade5033"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -6309,9 +6451,9 @@ dependencies = [
 
 [[package]]
 name = "rsa"
-version = "0.9.5"
+version = "0.9.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af6c4b23d99685a1408194da11270ef8e9809aff951cc70ec9b17350b087e474"
+checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc"
 dependencies = [
  "const-oid",
  "digest 0.10.7",
@@ -6362,7 +6504,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "rust-embed-utils",
- "syn 2.0.39",
+ "syn 2.0.48",
  "walkdir",
 ]
 
@@ -6420,7 +6562,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.21",
 ]
 
 [[package]]
@@ -6452,14 +6594,14 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.26"
+version = "0.38.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9470c4bf8246c8daf25f9598dca807fb6510347b1e1cfa55749113850c79d88a"
+checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "errno",
  "libc",
- "linux-raw-sys 0.4.12",
+ "linux-raw-sys 0.4.13",
  "windows-sys 0.52.0",
 ]
 
@@ -6477,17 +6619,31 @@ dependencies = [
 
 [[package]]
 name = "rustls"
-version = "0.21.9"
+version = "0.21.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9"
+checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
 dependencies = [
  "log",
- "ring 0.17.6",
- "rustls-webpki",
+ "ring 0.17.7",
+ "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 0.17.7",
+ "rustls-pki-types",
+ "rustls-webpki 0.102.1",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
 name = "rustls-native-certs"
 version = "0.6.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6505,16 +6661,33 @@ 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-pki-types"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e9d979b3ce68192e42760c7810125eb6cf2ea10efae545a156063e61f314e2a"
+
+[[package]]
 name = "rustls-webpki"
 version = "0.101.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
 dependencies = [
- "ring 0.17.6",
+ "ring 0.17.7",
+ "untrusted 0.9.0",
+]
+
+[[package]]
+name = "rustls-webpki"
+version = "0.102.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef4ca26037c909dedb327b48c3327d0ba91d3dd3c4e05dad328f210ffb68e95b"
+dependencies = [
+ "ring 0.17.7",
+ "rustls-pki-types",
  "untrusted 0.9.0",
 ]
 
@@ -6583,9 +6756,9 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 
 [[package]]
 name = "ryu"
-version = "1.0.15"
+version = "1.0.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
 
 [[package]]
 name = "safetensors"
@@ -6599,12 +6772,12 @@ dependencies = [
 
 [[package]]
 name = "samael"
-version = "0.0.12"
+version = "0.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7af1a6bbd2d98a207abf060c0734b0b9eb8a2a679008bf7bb5296c8876e27958"
+checksum = "b75583aad4a51c50fc0af69c230d18078c9d5a69a98d0f6013d01053acf744f4"
 dependencies = [
- "base64 0.21.5",
- "bindgen 0.65.1",
+ "base64 0.21.7",
+ "bindgen",
  "chrono",
  "data-encoding",
  "derive_builder",
@@ -6616,7 +6789,7 @@ dependencies = [
  "openssl-probe",
  "openssl-sys",
  "pkg-config",
- "quick-xml 0.28.2",
+ "quick-xml 0.30.0",
  "rand 0.8.5",
  "serde",
  "thiserror",
@@ -6641,11 +6814,11 @@ checksum = "ece8e78b2f38ec51c51f5d475df0a7187ba5111b2a28bdc761ee05b075d40a71"
 
 [[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]]
@@ -6692,7 +6865,7 @@ version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
 dependencies = [
- "ring 0.17.6",
+ "ring 0.17.7",
  "untrusted 0.9.0",
 ]
 
@@ -6708,7 +6881,7 @@ version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928"
 dependencies = [
- "base16ct",
+ "base16ct 0.1.1",
  "der 0.6.1",
  "generic-array",
  "pkcs8 0.9.0",
@@ -6717,6 +6890,20 @@ dependencies = [
 ]
 
 [[package]]
+name = "sec1"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc"
+dependencies = [
+ "base16ct 0.2.0",
+ "der 0.7.8",
+ "generic-array",
+ "pkcs8 0.10.2",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
 name = "security-framework"
 version = "2.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6750,9 +6937,9 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.20"
+version = "1.0.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
+checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
 dependencies = [
  "serde",
 ]
@@ -6771,18 +6958,18 @@ checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4"
 
 [[package]]
 name = "serde"
-version = "1.0.193"
+version = "1.0.195"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
+checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde-aux"
-version = "4.2.0"
+version = "4.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3dfe1b7eb6f9dcf011bd6fad169cdeaae75eda0d61b1a99a3f015b41b0cae39"
+checksum = "a86348501c129f3ad50c2f4635a01971f76974cd8a3f335988a0f1581c082765"
 dependencies = [
  "chrono",
  "serde",
@@ -6790,6 +6977,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "serde-value"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c"
+dependencies = [
+ "ordered-float",
+ "serde",
+]
+
+[[package]]
 name = "serde-wasm-bindgen"
 version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6802,22 +6999,22 @@ dependencies = [
 
 [[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.195"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
+checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -6833,9 +7030,9 @@ dependencies = [
 
 [[package]]
 name = "serde_json"
-version = "1.0.108"
+version = "1.0.111"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
+checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4"
 dependencies = [
  "indexmap 2.1.0",
  "itoa",
@@ -6845,9 +7042,9 @@ dependencies = [
 
 [[package]]
 name = "serde_path_to_error"
-version = "0.1.14"
+version = "0.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4beec8bce849d58d06238cb50db2e1c417cfeafa4c63f692b15c82b7c80f8335"
+checksum = "ebd154a240de39fdebcf5775d2675c204d7c13cf39a4c697be6493c8e734337c"
 dependencies = [
  "itoa",
  "serde",
@@ -6886,9 +7083,9 @@ dependencies = [
 
 [[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",
 ]
@@ -6902,7 +7099,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "serde",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -6934,10 +7131,39 @@ dependencies = [
 ]
 
 [[package]]
+name = "serde_with"
+version = "3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23"
+dependencies = [
+ "base64 0.21.7",
+ "chrono",
+ "hex",
+ "indexmap 1.9.3",
+ "indexmap 2.1.0",
+ "serde",
+ "serde_json",
+ "serde_with_macros",
+ "time",
+]
+
+[[package]]
+name = "serde_with_macros"
+version = "3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93634eb5f75a2323b16de4748022ac4297f9e76b6dced2be287a099f41b5e788"
+dependencies = [
+ "darling 0.20.3",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
 name = "serde_yaml"
-version = "0.9.27"
+version = "0.9.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3cc7a1570e38322cfe4154732e5110f887ea57e22b76f4bfd32b5bdd3368666c"
+checksum = "b1bf28c79a99f70ee1f1d83d10c875d2e70618417fda01ad1785e027579d9d38"
 dependencies = [
  "indexmap 2.1.0",
  "itoa",
@@ -6999,6 +7225,18 @@ dependencies = [
 ]
 
 [[package]]
+name = "sha3"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809"
+dependencies = [
+ "block-buffer 0.9.0",
+ "digest 0.9.0",
+ "keccak",
+ "opaque-debug",
+]
+
+[[package]]
 name = "sharded-slab"
 version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -7077,9 +7315,9 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.11.2"
+version = "1.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
+checksum = "2593d31f82ead8df961d8bd23a64c2ccf2eb5dd34b0a34bfb4dd54011c72009e"
 
 [[package]]
 name = "smart-default"
@@ -7114,9 +7352,9 @@ dependencies = [
 
 [[package]]
 name = "smtp-proto"
-version = "0.1.1"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4b756ac662e92a0e5b360349bea5f0b0784d4be4541eff2972049dfdfd7f862"
+checksum = "20b37ae016fedcac2174dd0e3029870154830a4d3fb10f533317f2604e72b343"
 
 [[package]]
 name = "snafu"
@@ -7142,9 +7380,9 @@ dependencies = [
 
 [[package]]
 name = "snap"
-version = "1.1.0"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831"
+checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b"
 
 [[package]]
 name = "socket2"
@@ -7241,11 +7479,11 @@ dependencies = [
 
 [[package]]
 name = "sqlformat"
-version = "0.2.2"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b7b278788e7be4d0d29c0f39497a0eef3fba6bbc8e70d8bf7fde46edeaa9e85"
+checksum = "ce81b7bd7c4493975347ef60d8c7e8b742d4694f4c49f93e0a12ea263938176c"
 dependencies = [
- "itertools 0.11.0",
+ "itertools 0.12.0",
  "nom",
  "unicode_categories",
 ]
@@ -7261,22 +7499,12 @@ dependencies = [
 
 [[package]]
 name = "sqlx"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8de3b03a925878ed54a954f621e64bf55a3c1bd29652d0d1a17830405350188"
-dependencies = [
- "sqlx-core 0.6.3",
- "sqlx-macros 0.6.3",
-]
-
-[[package]]
-name = "sqlx"
 version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dba03c279da73694ef99763320dea58b51095dfe87d001b1d4b5fe78ba8763cf"
 dependencies = [
- "sqlx-core 0.7.3",
- "sqlx-macros 0.7.3",
+ "sqlx-core",
+ "sqlx-macros",
  "sqlx-mysql",
  "sqlx-postgres",
  "sqlx-sqlite",
@@ -7284,65 +7512,12 @@ dependencies = [
 
 [[package]]
 name = "sqlx-core"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa8241483a83a3f33aa5fff7e7d9def398ff9990b2752b6c6112b83c6d246029"
-dependencies = [
- "ahash 0.7.7",
- "atoi 1.0.0",
- "base64 0.13.1",
- "bitflags 1.3.2",
- "byteorder",
- "bytes",
- "crc",
- "crossbeam-queue",
- "dirs 4.0.0",
- "dotenvy",
- "either",
- "event-listener 2.5.3",
- "futures-channel",
- "futures-core",
- "futures-intrusive 0.4.2",
- "futures-util",
- "hashlink",
- "hex",
- "hkdf",
- "hmac",
- "indexmap 1.9.3",
- "itoa",
- "libc",
- "log",
- "md-5 0.10.6",
- "memchr",
- "once_cell",
- "paste",
- "percent-encoding",
- "rand 0.8.5",
- "rustls 0.20.9",
- "rustls-pemfile",
- "serde",
- "serde_json",
- "sha1",
- "sha2 0.10.8",
- "smallvec",
- "sqlformat",
- "sqlx-rt",
- "stringprep",
- "thiserror",
- "tokio-stream",
- "url",
- "webpki-roots 0.22.6",
- "whoami",
-]
-
-[[package]]
-name = "sqlx-core"
 version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d84b0a3c3739e220d94b3239fd69fb1f74bc36e16643423bd99de3b43c21bfbd"
 dependencies = [
- "ahash 0.8.6",
- "atoi 2.0.0",
+ "ahash 0.8.7",
+ "atoi",
  "bigdecimal 0.3.1",
  "byteorder",
  "bytes",
@@ -7354,7 +7529,7 @@ dependencies = [
  "event-listener 2.5.3",
  "futures-channel",
  "futures-core",
- "futures-intrusive 0.5.0",
+ "futures-intrusive",
  "futures-io",
  "futures-util",
  "hashlink",
@@ -7365,7 +7540,7 @@ dependencies = [
  "once_cell",
  "paste",
  "percent-encoding",
- "rustls 0.21.9",
+ "rustls 0.21.10",
  "rustls-pemfile",
  "serde",
  "serde_json",
@@ -7383,32 +7558,13 @@ dependencies = [
 
 [[package]]
 name = "sqlx-macros"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9966e64ae989e7e575b19d7265cb79d7fc3cbbdf179835cb0d716f294c2049c9"
-dependencies = [
- "dotenvy",
- "either",
- "heck",
- "once_cell",
- "proc-macro2",
- "quote",
- "sha2 0.10.8",
- "sqlx-core 0.6.3",
- "sqlx-rt",
- "syn 1.0.109",
- "url",
-]
-
-[[package]]
-name = "sqlx-macros"
 version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "89961c00dc4d7dffb7aee214964b065072bff69e36ddb9e2c107541f75e4f2a5"
 dependencies = [
  "proc-macro2",
  "quote",
- "sqlx-core 0.7.3",
+ "sqlx-core",
  "sqlx-macros-core",
  "syn 1.0.109",
 ]
@@ -7430,7 +7586,7 @@ dependencies = [
  "serde",
  "serde_json",
  "sha2 0.10.8",
- "sqlx-core 0.7.3",
+ "sqlx-core",
  "sqlx-mysql",
  "sqlx-postgres",
  "sqlx-sqlite",
@@ -7446,10 +7602,10 @@ version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e37195395df71fd068f6e2082247891bc11e3289624bbc776a0cdfa1ca7f1ea4"
 dependencies = [
- "atoi 2.0.0",
- "base64 0.21.5",
+ "atoi",
+ "base64 0.21.7",
  "bigdecimal 0.3.1",
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "byteorder",
  "bytes",
  "chrono",
@@ -7472,12 +7628,12 @@ dependencies = [
  "once_cell",
  "percent-encoding",
  "rand 0.8.5",
- "rsa 0.9.5",
+ "rsa 0.9.6",
  "serde",
  "sha1",
  "sha2 0.10.8",
  "smallvec",
- "sqlx-core 0.7.3",
+ "sqlx-core",
  "stringprep",
  "thiserror",
  "tracing",
@@ -7491,10 +7647,10 @@ version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d6ac0ac3b7ccd10cc96c7ab29791a7dd236bd94021f31eec7ba3d46a74aa1c24"
 dependencies = [
- "atoi 2.0.0",
- "base64 0.21.5",
+ "atoi",
+ "base64 0.21.7",
  "bigdecimal 0.3.1",
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "byteorder",
  "chrono",
  "crc",
@@ -7520,7 +7676,7 @@ dependencies = [
  "sha1",
  "sha2 0.10.8",
  "smallvec",
- "sqlx-core 0.7.3",
+ "sqlx-core",
  "stringprep",
  "thiserror",
  "tracing",
@@ -7529,35 +7685,24 @@ dependencies = [
 ]
 
 [[package]]
-name = "sqlx-rt"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "804d3f245f894e61b1e6263c84b23ca675d96753b5abfd5cc8597d86806e8024"
-dependencies = [
- "once_cell",
- "tokio",
- "tokio-rustls 0.23.4",
-]
-
-[[package]]
 name = "sqlx-sqlite"
 version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "210976b7d948c7ba9fced8ca835b11cbb2d677c59c79de41ac0d397e14547490"
 dependencies = [
- "atoi 2.0.0",
+ "atoi",
  "chrono",
  "flume",
  "futures-channel",
  "futures-core",
  "futures-executor",
- "futures-intrusive 0.5.0",
+ "futures-intrusive",
  "futures-util",
  "libsqlite3-sys",
  "log",
  "percent-encoding",
  "serde",
- "sqlx-core 0.7.3",
+ "sqlx-core",
  "tracing",
  "url",
  "urlencoding",
@@ -7618,7 +7763,7 @@ checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b"
 dependencies = [
  "new_debug_unreachable",
  "once_cell",
- "parking_lot 0.12.1",
+ "parking_lot",
  "phf_shared 0.10.0",
  "precomputed-hash",
  "serde",
@@ -7646,7 +7791,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "swc_macros_common",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -7685,7 +7830,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -7767,7 +7912,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "swc_macros_common",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -7776,8 +7921,8 @@ version = "0.107.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b7191c8c57af059b75a2aadc927a2608c3962d19e4d09ce8f9c3f03739ddf833"
 dependencies = [
- "bitflags 2.4.1",
- "is-macro 0.3.0",
+ "bitflags 2.4.2",
+ "is-macro 0.3.5",
  "num-bigint",
  "scoped-tls",
  "serde",
@@ -7816,7 +7961,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "swc_macros_common",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -7859,7 +8004,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d8d8ca5dd849cea79e6a9792d725f4082ad3ade7a9541fba960c42d55ae778f2"
 dependencies = [
  "better_scoped_tls",
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "indexmap 1.9.3",
  "once_cell",
  "phf 0.10.1",
@@ -7899,7 +8044,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "swc_macros_common",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -8003,7 +8148,7 @@ dependencies = [
  "pmutil 0.6.1",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -8015,7 +8160,7 @@ dependencies = [
  "pmutil 0.6.1",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -8039,7 +8184,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "swc_macros_common",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -8055,9 +8200,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.39"
+version = "2.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -8073,7 +8218,7 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -8090,7 +8235,7 @@ checksum = "285ba80e733fac80aa4270fbcdf83772a79b80aa35c97075320abfee4a915b06"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
  "unicode-xid",
 ]
 
@@ -8154,22 +8299,22 @@ checksum = "cfb5fa503293557c5158bd215fdc225695e567a77e453f5d4452a50a193969bd"
 
 [[package]]
 name = "tempfile"
-version = "3.8.1"
+version = "3.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
+checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
 dependencies = [
  "cfg-if",
  "fastrand 2.0.1",
  "redox_syscall 0.4.1",
- "rustix 0.38.26",
- "windows-sys 0.48.0",
+ "rustix 0.38.30",
+ "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",
 ]
@@ -8185,22 +8330,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.50"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
+checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.50"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
+checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -8254,9 +8399,9 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.3.30"
+version = "0.3.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5"
+checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e"
 dependencies = [
  "deranged",
  "itoa",
@@ -8274,9 +8419,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.2.15"
+version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20"
+checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f"
 dependencies = [
  "time-core",
 ]
@@ -8330,7 +8475,7 @@ dependencies = [
  "clap",
  "derive_builder",
  "esaxx-rs",
- "getrandom 0.2.11",
+ "getrandom 0.2.12",
  "indicatif",
  "itertools 0.11.0",
  "lazy_static",
@@ -8355,16 +8500,16 @@ dependencies = [
 
 [[package]]
 name = "tokio"
-version = "1.32.0"
+version = "1.32.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9"
+checksum = "777d57dcc6bb4cf084e3212e1858447222aa451f21b5e2452497d9100da65b91"
 dependencies = [
  "backtrace",
  "bytes",
  "libc",
  "mio",
  "num_cpus",
- "parking_lot 0.12.1",
+ "parking_lot",
  "pin-project-lite",
  "signal-hook-registry",
  "socket2 0.5.5",
@@ -8381,7 +8526,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -8418,7 +8563,7 @@ dependencies = [
  "futures-channel",
  "futures-util",
  "log",
- "parking_lot 0.12.1",
+ "parking_lot",
  "percent-encoding",
  "phf 0.11.2",
  "pin-project-lite",
@@ -8448,7 +8593,18 @@ version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
 dependencies = [
- "rustls 0.21.9",
+ "rustls 0.21.10",
+ "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",
 ]
 
@@ -8553,17 +8709,6 @@ dependencies = [
 
 [[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",
- "toml_datetime",
- "winnow",
-]
-
-[[package]]
-name = "toml_edit"
 version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
@@ -8584,7 +8729,7 @@ dependencies = [
  "home",
  "once_cell",
  "regex",
- "semver 1.0.20",
+ "semver 1.0.21",
  "walkdir",
 ]
 
@@ -8615,7 +8760,7 @@ dependencies = [
  "cookie",
  "futures-util",
  "http",
- "parking_lot 0.12.1",
+ "parking_lot",
  "pin-project-lite",
  "tower-layer",
  "tower-service",
@@ -8627,7 +8772,7 @@ version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "bytes",
  "futures-core",
  "futures-util",
@@ -8672,7 +8817,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -8792,9 +8937,9 @@ dependencies = [
 
 [[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 = "twox-hash"
@@ -8842,7 +8987,7 @@ dependencies = [
  "regress",
  "schemars",
  "serde_json",
- "syn 2.0.39",
+ "syn 2.0.48",
  "thiserror",
  "unicode-ident",
 ]
@@ -8859,7 +9004,7 @@ dependencies = [
  "serde",
  "serde_json",
  "serde_tokenstream",
- "syn 2.0.39",
+ "syn 2.0.48",
  "typify-impl",
 ]
 
@@ -8948,9 +9093,9 @@ dependencies = [
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.13"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-id"
@@ -9014,9 +9159,9 @@ checksum = "446c96c6dd42604779487f0a981060717156648c1706aa1f464677f03c6cc059"
 
 [[package]]
 name = "unsafe-libyaml"
-version = "0.2.9"
+version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa"
+checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b"
 
 [[package]]
 name = "untrusted"
@@ -9036,13 +9181,13 @@ version = "2.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f8cdd25c339e200129fe4de81451814e5228c9b771d57378817d6117cc2b3f97"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
  "flate2",
  "log",
  "native-tls",
  "once_cell",
- "rustls 0.21.9",
- "rustls-webpki",
+ "rustls 0.21.10",
+ "rustls-webpki 0.101.7",
  "serde",
  "serde_json",
  "url",
@@ -9092,7 +9237,7 @@ version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
 dependencies = [
- "getrandom 0.2.11",
+ "getrandom 0.2.12",
 ]
 
 [[package]]
@@ -9101,7 +9246,7 @@ version = "1.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560"
 dependencies = [
- "getrandom 0.2.11",
+ "getrandom 0.2.12",
  "serde",
 ]
 
@@ -9125,9 +9270,9 @@ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
 
 [[package]]
 name = "value-bag"
-version = "1.4.2"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4a72e1902dde2bd6441347de2b70b7f5d59bf157c6c62f0c44572607a1d55bbe"
+checksum = "7cdbaf5e132e593e9fc1de6a15bbec912395b11fb9719e061cf64f804524c503"
 
 [[package]]
 name = "vcpkg"
@@ -9205,7 +9350,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
  "wasm-bindgen-shared",
 ]
 
@@ -9239,7 +9384,7 @@ checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -9272,7 +9417,7 @@ checksum = "794645f5408c9a039fd09f4d113cdfb2e7eba5ff1956b07bcf701cf4b394fe89"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -9313,7 +9458,7 @@ version = "0.22.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53"
 dependencies = [
- "ring 0.17.6",
+ "ring 0.17.7",
  "untrusted 0.9.0",
 ]
 
@@ -9333,6 +9478,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10"
 
 [[package]]
+name = "webpki-roots"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0de2cfda980f21be5a7ed2eadb3e6fe074d56022bea2cdeb1a62eb220fc04188"
+dependencies = [
+ "rustls-pki-types",
+]
+
+[[package]]
 name = "which"
 version = "4.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -9341,7 +9495,7 @@ dependencies = [
  "either",
  "home",
  "once_cell",
- "rustix 0.38.26",
+ "rustix 0.38.30",
 ]
 
 [[package]]
@@ -9387,11 +9541,11 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "windmill"
-version = "1.219.1"
+version = "1.246.15"
 dependencies = [
  "anyhow",
  "axum",
- "base64 0.21.5",
+ "base64 0.21.7",
  "chrono",
  "dotenv",
  "futures",
@@ -9407,7 +9561,7 @@ dependencies = [
  "serde",
  "serde_json",
  "sha2 0.10.8",
- "sqlx 0.7.3",
+ "sqlx",
  "tokio",
  "tokio-metrics",
  "tracing",
@@ -9416,13 +9570,14 @@ dependencies = [
  "windmill-api",
  "windmill-api-client",
  "windmill-common",
+ "windmill-git-sync",
  "windmill-queue",
  "windmill-worker",
 ]
 
 [[package]]
 name = "windmill-api"
-version = "1.219.1"
+version = "1.246.15"
 dependencies = [
  "anyhow",
  "argon2",
@@ -9430,10 +9585,9 @@ dependencies = [
  "async-recursion",
  "async-stripe",
  "async_zip",
- "aws-config",
  "aws-sdk-s3",
  "axum",
- "base64 0.21.5",
+ "base64 0.21.7",
  "bytes",
  "candle-core",
  "candle-nn",
@@ -9454,6 +9608,7 @@ dependencies = [
  "mail-send",
  "mime_guess",
  "object_store",
+ "openidconnect",
  "polars",
  "polars-io",
  "prometheus",
@@ -9470,7 +9625,7 @@ dependencies = [
  "serde_urlencoded",
  "sha2 0.10.8",
  "sql-builder",
- "sqlx 0.7.3",
+ "sqlx",
  "tempfile",
  "time",
  "tinyvector",
@@ -9487,6 +9642,7 @@ dependencies = [
  "uuid 1.6.1",
  "windmill-audit",
  "windmill-common",
+ "windmill-git-sync",
  "windmill-parser",
  "windmill-parser-py-imports",
  "windmill-queue",
@@ -9494,9 +9650,9 @@ dependencies = [
 
 [[package]]
 name = "windmill-api-client"
-version = "1.219.1"
+version = "1.246.15"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
  "chrono",
  "openapiv3",
  "prettyplease 0.1.25",
@@ -9512,22 +9668,24 @@ dependencies = [
 
 [[package]]
 name = "windmill-audit"
-version = "1.219.1"
+version = "1.246.15"
 dependencies = [
  "chrono",
  "serde",
  "serde_json",
  "sql-builder",
- "sqlx 0.7.3",
+ "sqlx",
  "tracing",
  "windmill-common",
 ]
 
 [[package]]
 name = "windmill-common"
-version = "1.219.1"
+version = "1.246.15"
 dependencies = [
  "anyhow",
+ "aws-config",
+ "aws-sdk-s3",
  "axum",
  "chrono",
  "cron",
@@ -9537,6 +9695,7 @@ dependencies = [
  "hyper",
  "itertools 0.12.0",
  "lazy_static",
+ "magic-crypt",
  "prometheus",
  "rand 0.8.5",
  "regex",
@@ -9544,7 +9703,7 @@ dependencies = [
  "serde",
  "serde_json",
  "sha2 0.10.8",
- "sqlx 0.7.3",
+ "sqlx",
  "thiserror",
  "tokio",
  "tracing",
@@ -9555,8 +9714,22 @@ dependencies = [
 ]
 
 [[package]]
+name = "windmill-git-sync"
+version = "1.246.15"
+dependencies = [
+ "rsmq_async",
+ "serde",
+ "serde_json",
+ "sqlx",
+ "tracing",
+ "uuid 1.6.1",
+ "windmill-common",
+ "windmill-queue",
+]
+
+[[package]]
 name = "windmill-parser"
-version = "1.219.1"
+version = "1.246.15"
 dependencies = [
  "serde",
  "serde_json",
@@ -9564,7 +9737,7 @@ dependencies = [
 
 [[package]]
 name = "windmill-parser-bash"
-version = "1.219.1"
+version = "1.246.15"
 dependencies = [
  "anyhow",
  "lazy_static",
@@ -9575,7 +9748,7 @@ dependencies = [
 
 [[package]]
 name = "windmill-parser-go"
-version = "1.219.1"
+version = "1.246.15"
 dependencies = [
  "anyhow",
  "gosyn",
@@ -9587,7 +9760,7 @@ dependencies = [
 
 [[package]]
 name = "windmill-parser-graphql"
-version = "1.219.1"
+version = "1.246.15"
 dependencies = [
  "anyhow",
  "lazy_static",
@@ -9598,7 +9771,7 @@ dependencies = [
 
 [[package]]
 name = "windmill-parser-py"
-version = "1.219.1"
+version = "1.246.15"
 dependencies = [
  "anyhow",
  "itertools 0.12.0",
@@ -9609,7 +9782,7 @@ dependencies = [
 
 [[package]]
 name = "windmill-parser-py-imports"
-version = "1.219.1"
+version = "1.246.15"
 dependencies = [
  "anyhow",
  "async-recursion",
@@ -9619,14 +9792,14 @@ dependencies = [
  "regex",
  "rustpython-parser",
  "serde_json",
- "sqlx 0.7.3",
+ "sqlx",
  "windmill-common",
  "windmill-parser",
 ]
 
 [[package]]
 name = "windmill-parser-sql"
-version = "1.219.1"
+version = "1.246.15"
 dependencies = [
  "anyhow",
  "lazy_static",
@@ -9637,10 +9810,11 @@ dependencies = [
 
 [[package]]
 name = "windmill-parser-ts"
-version = "1.219.1"
+version = "1.246.15"
 dependencies = [
  "anyhow",
  "convert_case 0.6.0",
+ "lazy_static",
  "regex",
  "serde-wasm-bindgen",
  "serde_json",
@@ -9654,10 +9828,10 @@ dependencies = [
 
 [[package]]
 name = "windmill-parser-wasm"
-version = "1.219.1"
+version = "1.246.15"
 dependencies = [
  "anyhow",
- "getrandom 0.2.11",
+ "getrandom 0.2.12",
  "serde_json",
  "wasm-bindgen",
  "wasm-bindgen-test",
@@ -9672,7 +9846,7 @@ dependencies = [
 
 [[package]]
 name = "windmill-queue"
-version = "1.219.1"
+version = "1.246.15"
 dependencies = [
  "anyhow",
  "async-recursion",
@@ -9687,13 +9861,14 @@ dependencies = [
  "itertools 0.12.0",
  "lazy_static",
  "prometheus",
+ "regex",
  "reqwest",
  "rsmq_async",
  "serde",
  "serde_json",
  "serde_urlencoded",
  "sql-builder",
- "sqlx 0.7.3",
+ "sqlx",
  "tokio",
  "tracing",
  "ulid",
@@ -9704,11 +9879,11 @@ dependencies = [
 
 [[package]]
 name = "windmill-worker"
-version = "1.219.1"
+version = "1.246.15"
 dependencies = [
  "anyhow",
  "async-recursion",
- "base64 0.21.5",
+ "base64 0.21.7",
  "bytes",
  "chrono",
  "const_format",
@@ -9733,7 +9908,8 @@ dependencies = [
  "native-tls",
  "nix",
  "once_cell",
- "pem 3.0.2",
+ "openidconnect",
+ "pem 3.0.3",
  "postgres-native-tls",
  "prometheus",
  "rand 0.8.5",
@@ -9744,7 +9920,7 @@ dependencies = [
  "serde",
  "serde_json",
  "sha2 0.10.8",
- "sqlx 0.7.3",
+ "sqlx",
  "tiberius",
  "tokio",
  "tokio-postgres",
@@ -9754,6 +9930,7 @@ dependencies = [
  "uuid 1.6.1",
  "windmill-audit",
  "windmill-common",
+ "windmill-git-sync",
  "windmill-parser",
  "windmill-parser-bash",
  "windmill-parser-go",
@@ -9767,20 +9944,11 @@ dependencies = [
 
 [[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-sys"
-version = "0.45.0"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.42.2",
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
@@ -9803,21 +9971,6 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
-dependencies = [
- "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.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
@@ -9848,12 +10001,6 @@ dependencies = [
 
 [[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"
@@ -9866,12 +10013,6 @@ checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
 
 [[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"
@@ -9884,12 +10025,6 @@ checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
 
 [[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"
@@ -9902,12 +10037,6 @@ checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
 
 [[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"
@@ -9920,12 +10049,6 @@ checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
 
 [[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"
@@ -9938,12 +10061,6 @@ checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
 
 [[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"
@@ -9956,12 +10073,6 @@ checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
 
 [[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"
@@ -9974,9 +10085,9 @@ checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
 
 [[package]]
 name = "winnow"
-version = "0.5.19"
+version = "0.5.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b"
+checksum = "b7cf47b659b318dccbd69cc4797a39ae128f533dce7902a1096044d1967b9c16"
 dependencies = [
  "memchr",
 ]
@@ -10002,11 +10113,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 0.4.13",
+ "rustix 0.38.30",
 ]
 
 [[package]]
@@ -10017,9 +10130,9 @@ checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4"
 
 [[package]]
 name = "xxhash-rust"
-version = "0.8.7"
+version = "0.8.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9828b178da53440fa9c766a3d2f73f7cf5d0ac1fe3980c1e5018d899fd19e07b"
+checksum = "53be06678ed9e83edb1745eb72efc0bbcd7b5c3c35711a860906aed827a13d61"
 
 [[package]]
 name = "xz2"
@@ -10050,28 +10163,28 @@ checksum = "9e6936f0cce458098a201c245a11bef556c6a0181129c7034d10d76d1ec3a2b8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
  "synstructure",
 ]
 
 [[package]]
 name = "zerocopy"
-version = "0.7.28"
+version = "0.7.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d6f15f7ade05d2a4935e34a457b936c23dc70a05cc1d97133dc99e7a3fe0f0e"
+checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
 dependencies = [
  "zerocopy-derive",
 ]
 
 [[package]]
 name = "zerocopy-derive"
-version = "0.7.28"
+version = "0.7.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbbad221e3f78500350ecbd7dfa4e63ef945c05f4c61cb7f4d3f84cd0bba649b"
+checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -10091,7 +10204,7 @@ checksum = "e6a647510471d372f2e6c2e6b7219e44d8c574d24fdc11c610a61455782f18c3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.48",
  "synstructure",
 ]
 
diff --git a/pkgs/by-name/wi/windmill/package.nix b/pkgs/by-name/wi/windmill/package.nix
index 6a1f9e771f7e..709e7d07e9fc 100644
--- a/pkgs/by-name/wi/windmill/package.nix
+++ b/pkgs/by-name/wi/windmill/package.nix
@@ -24,13 +24,13 @@
 
 let
   pname = "windmill";
-  version = "1.219.1";
+  version = "1.246.15";
 
   src = fetchFromGitHub {
     owner = "windmill-labs";
     repo = "windmill";
     rev = "v${version}";
-    hash = "sha256-HGZuIun9PWi3Fv/kX95k4xnXu1L604teWUKXzjVXKF0=";
+    hash = "sha256-5KDSCag70ww1mYvfKf3rg2RTi80rEWZnMTXB+/6VsNM=";
   };
 
   pythonEnv = python3.withPackages (ps: [ ps.pip-tools ]);
@@ -42,7 +42,7 @@ let
 
     sourceRoot = "${src.name}/frontend";
 
-    npmDepsHash = "sha256-1uya/4FjMHTDW/KX1YinhTT/Mb7bJ9XVTWc6cU0oqJ8=";
+    npmDepsHash = "sha256-PdRNjUQdr1NgTO5UaWfH8rJeiFB/VJ6sJkwhpmPo/1A=";
 
     # without these you get a
     # FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
diff --git a/pkgs/by-name/wi/wireguard-vanity-keygen/package.nix b/pkgs/by-name/wi/wireguard-vanity-keygen/package.nix
new file mode 100644
index 000000000000..96e926f15008
--- /dev/null
+++ b/pkgs/by-name/wi/wireguard-vanity-keygen/package.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "wireguard-vanity-keygen";
+  version = "0.0.7";
+
+  src = fetchFromGitHub {
+    owner = "axllent";
+    repo = "wireguard-vanity-keygen";
+    rev = version;
+    hash = "sha256-+q6l2531APm67JqvFNQb4Zj5pyWnHgncwxcgWNiBCJw=";
+  };
+
+  vendorHash = "sha256-F3AoN8NgXjePy7MmI8jzLDxaIZBCfOPRbe0ZYmt6vm8=";
+
+  ldflags = [ "-s" "-w" "-X main.appVersion=${version}" ];
+
+  meta = with lib; {
+    changelog = let
+      versionWithoutDots = concatStrings (splitString "." version);
+    in "https://github.com/axllent/wireguard-vanity-keygen/blob/develop/CHANGELOG.md#${versionWithoutDots}";
+    description = "WireGuard vanity key generator";
+    homepage = "https://github.com/axllent/wireguard-vanity-keygen";
+    license = licenses.mit;
+    maintainers = with maintainers; [ arikgrahl ];
+    mainProgram = "wireguard-vanity-keygen";
+  };
+}
diff --git a/pkgs/by-name/wo/worker/package.nix b/pkgs/by-name/wo/worker/package.nix
index 772efc7015ed..9ffa65245cdf 100644
--- a/pkgs/by-name/wo/worker/package.nix
+++ b/pkgs/by-name/wo/worker/package.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "worker";
-  version = "4.12.1";
+  version = "5.0.1";
 
   src = fetchurl {
     url = "http://www.boomerangsworld.de/cms/worker/downloads/worker-${finalAttrs.version}.tar.gz";
-    hash = "sha256-11tSOVuGuCU0IvqpEKiKvUZj9DtjWJErLpM8IsTtvcs=";
+    hash = "sha256-7bnJ7w7ejK5VDkna52jCtHKD8iiNOdXCpU0wx7RtkxA=";
   };
 
   buildInputs = [ libX11 ];
diff --git a/pkgs/by-name/xf/xfs-undelete/package.nix b/pkgs/by-name/xf/xfs-undelete/package.nix
new file mode 100644
index 000000000000..d5da9d01fc3b
--- /dev/null
+++ b/pkgs/by-name/xf/xfs-undelete/package.nix
@@ -0,0 +1,44 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, makeWrapper
+, coreutils
+, tcl-8_6
+, tcllib
+, installShellFiles
+}:
+
+stdenv.mkDerivation {
+  pname = "xfs_undelete";
+  version = "unstable-2023-04-12";
+
+  src =  fetchFromGitHub {
+    repo = "xfs_undelete";
+    owner = "ianka";
+    rev = "9e2f7abf0d3a466328e335d251c567ce4194e473";
+    sha256 = "0n1718bmr2lfpwx57hajancda51fyrgyk9rbybbadvd8gypvzmhh";
+  };
+
+  buildInputs = [ tcl-8_6 tcllib coreutils ];
+  nativeBuildInputs = [ makeWrapper tcl-8_6.tclPackageHook installShellFiles ];
+
+  tclWrapperArgs = [ "--prefix" "PATH" ":" (lib.makeBinPath [ tcl-8_6 ]) ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm555 xfs_undelete -t $out/bin
+    mv xfs_undelete.man xfs_undelete.8
+    installManPage xfs_undelete.8
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "An undelete tool for the XFS filesystem";
+    homepage = "https://github.com/ianka/xfs_undelete";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.deepfire ];
+  };
+}
diff --git a/pkgs/by-name/xs/xscreensaver/package.nix b/pkgs/by-name/xs/xscreensaver/package.nix
index ba946305425f..54129c938e5e 100644
--- a/pkgs/by-name/xs/xscreensaver/package.nix
+++ b/pkgs/by-name/xs/xscreensaver/package.nix
@@ -22,6 +22,7 @@
 , makeWrapper
 , pam
 , perlPackages
+, xorg
 , pkg-config
 , systemd
 , forceInstallAllHacks ? true
@@ -102,7 +103,7 @@ stdenv.mkDerivation (finalAttrs: {
     for bin in $out/bin/*; do
       wrapProgram "$bin" \
         --prefix PATH : "$out/libexec/xscreensaver" \
-        --prefix PATH : "${lib.makeBinPath [ coreutils perlPackages.perl ]}" \
+        --prefix PATH : "${lib.makeBinPath [ coreutils perlPackages.perl xorg.appres ]}" \
         --prefix PERL5LIB ':' $PERL5LIB
     done
   ''
diff --git a/pkgs/by-name/xs/xsct/package.nix b/pkgs/by-name/xs/xsct/package.nix
index 62a1b36ee0fb..6bec80b6b965 100644
--- a/pkgs/by-name/xs/xsct/package.nix
+++ b/pkgs/by-name/xs/xsct/package.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "xsct";
-  version = "2.1";
+  version = "2.2";
 
   src = fetchFromGitHub {
     owner = "faf0";
     repo = "sct";
     rev = finalAttrs.version;
-    hash = "sha256-VT92NRz4Te5+8NmpEm1PFXfsL2CoVT+b91/KD9sCg0Q=";
+    hash = "sha256-PDkbZTtl14wYdfALv43SIU9MKhbfiYlRqkI1mFn1qa4=";
   };
 
   buildInputs = [
diff --git a/pkgs/by-name/ya/yanic/package.nix b/pkgs/by-name/ya/yanic/package.nix
new file mode 100644
index 000000000000..f2cbbaa73901
--- /dev/null
+++ b/pkgs/by-name/ya/yanic/package.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, installShellFiles
+}:
+
+buildGoModule rec {
+  pname = "yanic";
+  version = "1.5.0";
+
+  src = fetchFromGitHub {
+    owner = "FreifunkBremen";
+    repo = "yanic";
+    rev = "v${version}";
+    sha256 = "sha256-++tF6nTFIDeqWSqlBDXw/zEfl5YYa4ufzVZaUG2c8Zo=";
+  };
+
+  vendorHash = "sha256-D9V53/+C/+iv1U4kVrYWzJ8iD0MA1QcR8f5ifejFhLo=";
+
+  ldflags = [ "-s" "-w" ];
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    installShellCompletion --cmd yanic \
+      --bash <($out/bin/yanic completion bash) \
+      --fish <($out/bin/yanic completion fish) \
+      --zsh <($out/bin/yanic completion zsh)
+  '';
+
+  meta = with lib; {
+    description = "A tool to collect and aggregate respondd data";
+    homepage = "https://github.com/FreifunkBremen/yanic";
+    changelog = "https://github.com/FreifunkBremen/yanic/releases/tag/${src.rev}";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ herbetom ];
+    mainProgram = "yanic";
+  };
+}
diff --git a/pkgs/by-name/ye/yeswiki/package.nix b/pkgs/by-name/ye/yeswiki/package.nix
new file mode 100644
index 000000000000..64ccd4353525
--- /dev/null
+++ b/pkgs/by-name/ye/yeswiki/package.nix
@@ -0,0 +1,28 @@
+{
+  lib,
+  stdenv,
+  fetchurl,
+  unzip,
+}:
+let
+  version = "4.4.2";
+in stdenv.mkDerivation {
+  pname = "yeswiki";
+  inherit version;
+
+  src = fetchurl {
+    url = "https://repository.yeswiki.net/doryphore/yeswiki-doryphore-${version}.zip";
+    hash = "sha256-TNiVBragEnLkMTu/Op6sCFsk9wWXUQ2GUPqmWgPV/vk=";
+  };
+
+  nativeBuildInputs = [
+    unzip
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/
+    cp -R . $out/
+    runHook postInstall
+  '';
+}
diff --git a/pkgs/by-name/yg/yggdrasil/package.nix b/pkgs/by-name/yg/yggdrasil/package.nix
index 9ba083e0fb34..70e352e73092 100644
--- a/pkgs/by-name/yg/yggdrasil/package.nix
+++ b/pkgs/by-name/yg/yggdrasil/package.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "yggdrasil";
-  version = "0.5.4";
+  version = "0.5.5";
 
   src = fetchFromGitHub {
     owner = "yggdrasil-network";
     repo = "yggdrasil-go";
     rev = "v${version}";
-    sha256 = "sha256-or+XTt8V/1BuLSJ53w1aKqJfx3Pka6VmC4TpvpP83+0=";
+    sha256 = "sha256-ZInSgHjur2C+G6h/VcYtlCt0YLWwMIrz84UkDBbR73s=";
   };
 
-  vendorHash = "sha256-K7VJ+1x7+DgdwTjEgZ7sJ7SaCssBg+ukQupJ/1FN4F0=";
+  vendorHash = "sha256-Ar0mWVFgLP1eYeKalaazZLKaLMXoe2bOGYkruzaKW88=";
 
   subPackages = [ "cmd/genkeys" "cmd/yggdrasil" "cmd/yggdrasilctl" ];
 
diff --git a/pkgs/development/tools/yj/default.nix b/pkgs/by-name/yj/yj/package.nix
index 150278c0ac4d..ae4597619583 100644
--- a/pkgs/development/tools/yj/default.nix
+++ b/pkgs/by-name/yj/yj/package.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
   meta = with lib; {
     description = "Convert YAML <=> TOML <=> JSON <=> HCL";
     license = licenses.asl20;
+    mainProgram = "yj";
     maintainers = with maintainers; [ Profpatsch ];
     homepage = "https://github.com/sclevine/yj";
   };
diff --git a/pkgs/by-name/yo/youplot/Gemfile b/pkgs/by-name/yo/youplot/Gemfile
new file mode 100644
index 000000000000..ee3c0e5fc346
--- /dev/null
+++ b/pkgs/by-name/yo/youplot/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'youplot'
diff --git a/pkgs/by-name/yo/youplot/Gemfile.lock b/pkgs/by-name/yo/youplot/Gemfile.lock
new file mode 100644
index 000000000000..17b8b43dfa2e
--- /dev/null
+++ b/pkgs/by-name/yo/youplot/Gemfile.lock
@@ -0,0 +1,18 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    enumerable-statistics (2.0.7)
+    unicode_plot (0.0.5)
+      enumerable-statistics (>= 2.0.1)
+    youplot (0.4.5)
+      unicode_plot (>= 0.0.5)
+
+PLATFORMS
+  arm64-darwin-22
+  ruby
+
+DEPENDENCIES
+  youplot
+
+BUNDLED WITH
+   2.5.3
diff --git a/pkgs/by-name/yo/youplot/gemset.nix b/pkgs/by-name/yo/youplot/gemset.nix
new file mode 100644
index 000000000000..ae8439540912
--- /dev/null
+++ b/pkgs/by-name/yo/youplot/gemset.nix
@@ -0,0 +1,34 @@
+{
+  enumerable-statistics = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0dlnfncz0lbyczakgdlys44pksj6h447npj665xk41b36y0lbf7f";
+      type = "gem";
+    };
+    version = "2.0.7";
+  };
+  unicode_plot = {
+    dependencies = ["enumerable-statistics"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fzpg1zizf19xgfzqw6lmb38xir423wwxb2mjsb3nym6phvn5kli";
+      type = "gem";
+    };
+    version = "0.0.5";
+  };
+  youplot = {
+    dependencies = ["unicode_plot"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0imy65wjkgdkpqfympbz8lp2ih866538vk55fwz9a909ib9sbdri";
+      type = "gem";
+    };
+    version = "0.4.5";
+  };
+}
diff --git a/pkgs/by-name/yo/youplot/package.nix b/pkgs/by-name/yo/youplot/package.nix
new file mode 100644
index 000000000000..d858c8764e83
--- /dev/null
+++ b/pkgs/by-name/yo/youplot/package.nix
@@ -0,0 +1,19 @@
+{ lib, bundlerApp, bundlerUpdateScript }:
+
+bundlerApp {
+  pname = "youplot";
+  gemdir = ./.;
+
+  exes = [ "uplot" ];
+
+  passthru.updateScript = bundlerUpdateScript "youplot";
+
+  meta = with lib; {
+    description = "A command line tool that draws plots on the terminal";
+    homepage    = "https://github.com/red-data-tools/YouPlot";
+    mainProgram = "uplot";
+    license     = licenses.mit;
+    maintainers = with maintainers; [ purcell ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/pkgs/by-name/yo/youtrack/package.nix b/pkgs/by-name/yo/youtrack/package.nix
new file mode 100644
index 000000000000..d07e85bfb88c
--- /dev/null
+++ b/pkgs/by-name/yo/youtrack/package.nix
@@ -0,0 +1,43 @@
+{ lib, stdenvNoCC, fetchzip, makeBinaryWrapper, jdk17_headless, gawk, statePath ? "/var/lib/youtrack" }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "youtrack";
+  version = "2023.3.23390";
+
+  src = fetchzip {
+    url = "https://download.jetbrains.com/charisma/youtrack-${finalAttrs.version}.zip";
+    hash = "sha256-p3ZjClVku7EjQSd9wwx0iJ+5DqooaKragdNzj0f8OO8=";
+  };
+
+  nativeBuildInputs = [ makeBinaryWrapper ];
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out
+    cp -r * $out
+    makeWrapper $out/bin/youtrack.sh $out/bin/youtrack \
+      --prefix PATH : "${lib.makeBinPath [ gawk ]}" \
+      --set JRE_HOME ${jdk17_headless}
+    rm -rf $out/internal/java
+    mv $out/conf $out/conf.orig
+    ln -s ${statePath}/backups $out/backups
+    ln -s ${statePath}/conf $out/conf
+    ln -s ${statePath}/data $out/data
+    ln -s ${statePath}/logs $out/logs
+    ln -s ${statePath}/temp $out/temp
+    runHook postInstall
+  '';
+
+  passthru.updateScript = ./update.sh;
+
+  meta = {
+    description = "Issue tracking and project management tool for developers";
+    maintainers = lib.teams.serokell.members ++ [ lib.maintainers.leona ];
+    sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
+    # https://www.jetbrains.com/youtrack/buy/license.html
+    license = lib.licenses.unfree;
+  };
+})
diff --git a/pkgs/by-name/yo/youtrack/update.sh b/pkgs/by-name/yo/youtrack/update.sh
new file mode 100755
index 000000000000..c1ffb8b2bfbf
--- /dev/null
+++ b/pkgs/by-name/yo/youtrack/update.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl xq-xml common-updater-scripts
+
+set -eu -o pipefail
+
+version="$(curl https://www.jetbrains.com/youtrack/update.xml | \
+    xq -x "/products/product[@name='YouTrack']/channel/build/@version")"
+
+update-source-version youtrack "$version"
diff --git a/pkgs/servers/jetbrains/youtrack.nix b/pkgs/by-name/yo/youtrack_2022_3/package.nix
index 31b4a457ec86..388c536bf15d 100644
--- a/pkgs/servers/jetbrains/youtrack.nix
+++ b/pkgs/by-name/yo/youtrack_2022_3/package.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, makeWrapper, jdk17, gawk }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "youtrack";
   version = "2022.3.65371";
 
   jar = fetchurl {
-    url = "https://download.jetbrains.com/charisma/${pname}-${version}.jar";
+    url = "https://download.jetbrains.com/charisma/youtrack-${finalAttrs.version}.jar";
     sha256 = "sha256-NQKWmKEq5ljUXd64zY27Nj8TU+uLdA37chbFVdmwjNs=";
   };
 
@@ -22,11 +22,11 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Issue tracking and project management tool for developers";
-    maintainers = teams.serokell.members;
-    sourceProvenance = with sourceTypes; [ binaryBytecode ];
+    maintainers = lib.teams.serokell.members ++ [ lib.maintainers.leona ];
+    sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
     # https://www.jetbrains.com/youtrack/buy/license.html
-    license = licenses.unfree;
+    license = lib.licenses.unfree;
   };
-}
+})
diff --git a/pkgs/by-name/zi/zitadel/console-use-local-protobuf-plugins.patch b/pkgs/by-name/zi/zitadel/console-use-local-protobuf-plugins.patch
new file mode 100644
index 000000000000..4babb92b25f9
--- /dev/null
+++ b/pkgs/by-name/zi/zitadel/console-use-local-protobuf-plugins.patch
@@ -0,0 +1,21 @@
+diff --git a/console/buf.gen.yaml b/console/buf.gen.yaml
+index 1737c2ded..d6affa8bc 100644
+--- a/console/buf.gen.yaml
++++ b/console/buf.gen.yaml
+@@ -3,12 +3,12 @@ version: v1
+ managed:
+   enabled: true
+ plugins:
+-  - plugin: buf.build/protocolbuffers/js
++  - plugin: js
+     out: src/app/proto/generated
+     opt: import_style=commonjs,binary
+-  - plugin: buf.build/grpc/web
++  - plugin: grpc-web
+     out: src/app/proto/generated
+     opt: import_style=typescript,mode=grpcweb
+-  - plugin: buf.build/grpc-ecosystem/openapiv2
++  - plugin: openapiv2
+     out: src/app/proto/generated
+     opt: allow_delete_body
+\ No newline at end of file
diff --git a/pkgs/by-name/zi/zitadel/console.nix b/pkgs/by-name/zi/zitadel/console.nix
index b9ec209dda73..163ed7aded29 100644
--- a/pkgs/by-name/zi/zitadel/console.nix
+++ b/pkgs/by-name/zi/zitadel/console.nix
@@ -6,15 +6,24 @@
 { mkYarnPackage
 , fetchYarnDeps
 , lib
+
+, grpc-gateway
+, protoc-gen-grpc-web
+, protoc-gen-js
 }:
 
 let
   protobufGenerated = generateProtobufCode {
     pname = "zitadel-console";
+    nativeBuildInputs = [
+      grpc-gateway
+      protoc-gen-grpc-web
+      protoc-gen-js
+    ];
     workDir = "console";
     bufArgs = "../proto --include-imports --include-wkt";
     outputPath = "src/app/proto";
-    hash = "sha256-NmlKjKWxmqatyR6OitlQ7bfl6U6PS6KWqTALwX42HS4=";
+    hash = "sha256-h/5K6PvEFyjzS5p7SfuDIk91TkN1iPc+iXor8T/QSeE=";
   };
 in
 mkYarnPackage rec {
@@ -26,7 +35,7 @@ mkYarnPackage rec {
   packageJSON = ./package.json;
   offlineCache = fetchYarnDeps {
     yarnLock = "${src}/yarn.lock";
-    hash = "sha256-rSKoIznYVDNgrBmut7YSxNhgPJnbIeO+/s0HnrYWPUc=";
+    hash = "sha256-cfo2WLSbfU8tYADjF7j9zTLNsboVThF6MUBrb49MrII=";
   };
 
   postPatch = ''
diff --git a/pkgs/by-name/zi/zitadel/package.json b/pkgs/by-name/zi/zitadel/package.json
index 5819fdd77aed..42dc0ef19d77 100644
--- a/pkgs/by-name/zi/zitadel/package.json
+++ b/pkgs/by-name/zi/zitadel/package.json
@@ -25,8 +25,11 @@
     "@angular/router": "^16.2.5",
     "@angular/service-worker": "^16.2.5",
     "@ctrl/ngx-codemirror": "^6.1.0",
+    "@fortawesome/angular-fontawesome": "^0.13.0",
+    "@fortawesome/fontawesome-svg-core": "^6.4.2",
+    "@fortawesome/free-brands-svg-icons": "^6.4.2",
     "@grpc/grpc-js": "^1.9.3",
-    "@ngx-translate/core": "^14.0.0",
+    "@ngx-translate/core": "^15.0.0",
     "angular-oauth2-oidc": "^15.0.1",
     "angularx-qrcode": "^16.0.0",
     "buffer": "^6.0.3",
@@ -34,18 +37,18 @@
     "cors": "^2.8.5",
     "file-saver": "^2.0.5",
     "flag-icons": "^6.7.0",
-    "google-proto-files": "^3.0.3",
+    "google-proto-files": "^4.0.0",
     "google-protobuf": "^3.21.2",
     "grpc-web": "^1.4.1",
     "i18n-iso-countries": "^7.6.0",
-    "libphonenumber-js": "^1.10.30",
+    "libphonenumber-js": "^1.10.49",
     "material-design-icons-iconfont": "^6.1.1",
     "moment": "^2.29.4",
     "ngx-color": "^9.0.0",
     "opentype.js": "^1.3.4",
     "rxjs": "~7.8.0",
     "tinycolor2": "^1.6.0",
-    "tslib": "^2.4.1",
+    "tslib": "^2.6.2",
     "uuid": "^9.0.0",
     "zone.js": "~0.13.1"
   },
@@ -60,11 +63,11 @@
     "@angular/compiler-cli": "^16.2.5",
     "@angular/language-service": "^16.2.5",
     "@bufbuild/buf": "^1.23.1",
-    "@types/file-saver": "^2.0.2",
+    "@types/file-saver": "^2.0.7",
     "@types/google-protobuf": "^3.15.3",
     "@types/jasmine": "~4.3.6",
     "@types/jasminewd2": "~2.0.10",
-    "@types/jsonwebtoken": "^9.0.1",
+    "@types/jsonwebtoken": "^9.0.5",
     "@types/node": "^20.7.0",
     "@types/opentype.js": "^1.3.4",
     "@types/qrcode": "^1.5.2",
@@ -83,6 +86,6 @@
     "prettier": "^3.0.3",
     "prettier-plugin-organize-imports": "^3.2.2",
     "protractor": "~7.0.0",
-    "typescript": "^4.9.5"
+    "typescript": "^5.1.6"
   }
 }
diff --git a/pkgs/by-name/zi/zitadel/package.nix b/pkgs/by-name/zi/zitadel/package.nix
index 03216c406209..cb5888bab476 100644
--- a/pkgs/by-name/zi/zitadel/package.nix
+++ b/pkgs/by-name/zi/zitadel/package.nix
@@ -1,5 +1,5 @@
 { stdenv
-, buildGo121Module
+, buildGoModule
 , callPackage
 , fetchFromGitHub
 , lib
@@ -15,17 +15,17 @@
 }:
 
 let
-  version = "2.40.3";
+  version = "2.42.10";
   zitadelRepo = fetchFromGitHub {
     owner = "zitadel";
     repo = "zitadel";
     rev = "v${version}";
-    hash = "sha256-WqsK6DAYkLs5wBNvkVGarLMm/unBLtipFkl07pR90HI=";
+    hash = "sha256-Uv0iEIFkTdBAi0WDBQHf0ATs4L2FOU4NmiE9p1MHSa0=";
   };
-  goModulesHash = "sha256-IVf1YVnhyEYgZqM31Cv3aBFnPG7v5WW6fCEvlN+sTIE=";
+  goModulesHash = "sha256-PQch046YjYhAmVlNNdgDLWIqFvEpXRgXAYFMwSZmk4w=";
 
   buildZitadelProtocGen = name:
-    buildGo121Module {
+    buildGoModule {
       pname = "protoc-gen-${name}";
       inherit version;
 
@@ -62,6 +62,7 @@ let
       name = "${pname}-buf-generated";
 
       src = zitadelRepo;
+      patches = [ ./console-use-local-protobuf-plugins.patch ];
 
       nativeBuildInputs = nativeBuildInputs ++ [ buf ];
 
@@ -91,10 +92,10 @@ let
       protoc-gen-zitadel
     ];
     outputPath = ".artifacts";
-    hash = "sha256-xrEF1B4pMoCZs1WO9F6IoqHnSyt5BhPVTIABMWK/q2E=";
+    hash = "sha256-3qDVY2CvtY8lZDr+p5i0vV6zZ5KyTtxBLyV7Os9KuIw=";
   };
 in
-buildGo121Module rec {
+buildGoModule rec {
   name = "zitadel";
   inherit version;
 
@@ -104,10 +105,11 @@ buildGo121Module rec {
 
   proxyVendor = true;
   vendorHash = goModulesHash;
+  ldflags = [ "-X 'github.com/zitadel/zitadel/cmd/build.version=${version}'" ];
 
   # Adapted from Makefile in repo, with dependency fetching and protobuf codegen
   # bits removed
-  buildPhase = ''
+  preBuild = ''
     mkdir -p pkg/grpc
     cp -r ${protobufGenerated}/grpc/github.com/zitadel/zitadel/pkg/grpc/* pkg/grpc
     mkdir -p openapi/v2/zitadel
@@ -122,12 +124,13 @@ buildGo121Module rec {
     go run internal/api/assets/generator/asset_generator.go -directory=internal/api/assets/generator/ -assets=docs/apis/assets/assets.md
 
     cp -r ${passthru.console}/* internal/api/ui/console/static
-    CGO_ENABLED=0 go build -o zitadel -v -ldflags="-s -w -X 'github.com/zitadel/zitadel/cmd/build.version=${version}'"
   '';
 
+  doCheck = false;
+
   installPhase = ''
     mkdir -p $out/bin
-    install -Dm755 zitadel $out/bin/
+    install -Dm755 $GOPATH/bin/zitadel $out/bin/
   '';
 
   passthru = {
diff --git a/pkgs/by-name/zp/zpaqfranz/package.nix b/pkgs/by-name/zp/zpaqfranz/package.nix
index afb7ba4c069c..1cadf937b5cf 100644
--- a/pkgs/by-name/zp/zpaqfranz/package.nix
+++ b/pkgs/by-name/zp/zpaqfranz/package.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "zpaqfranz";
-  version = "58.11";
+  version = "59.1";
 
   src = fetchFromGitHub {
     owner = "fcorbelli";
     repo = "zpaqfranz";
     rev = finalAttrs.version;
-    hash = "sha256-XewHMsHF65LvoRzPFiDQcClVSTfSCn69iDRjwKTLpRs=";
+    hash = "sha256-i5HWAeREeMBjPMNhSSyJPmKRCChn9/08kV97kHOWJdk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/data/documentation/man-pages/default.nix b/pkgs/data/documentation/man-pages/default.nix
index 5b33714fc258..7befda407d48 100644
--- a/pkgs/data/documentation/man-pages/default.nix
+++ b/pkgs/data/documentation/man-pages/default.nix
@@ -2,14 +2,17 @@
 
 stdenv.mkDerivation rec {
   pname = "man-pages";
-  version = "5.13";
+  version = "6.05.01";
 
   src = fetchurl {
     url = "mirror://kernel/linux/docs/man-pages/${pname}-${version}.tar.xz";
-    sha256 = "sha256-YU2uPv59/UgJhnY6KiqBeSFQMqWkUmwL5eiZol8Ja4s=";
+    sha256 = "sha256-uWq2tEpojJHRtXLlL+zlGeHP0rtMM/5wFPw/0e8/nK4=";
   };
 
   makeFlags = [ "prefix=$(out)" ];
+
+  dontBuild = true;
+
   postInstall = ''
     # conflict with shadow-utils
     rm $out/share/man/man5/passwd.5 \
@@ -21,6 +24,8 @@ stdenv.mkDerivation rec {
   '';
   outputDocdev = "out";
 
+  enableParallelInstalling = true;
+
   meta = with lib; {
     description = "Linux development manual pages";
     homepage = "https://www.kernel.org/doc/man-pages/";
diff --git a/pkgs/data/fonts/0xproto/default.nix b/pkgs/data/fonts/0xproto/default.nix
index 25a1fa585bc2..778c1ff79fa9 100644
--- a/pkgs/data/fonts/0xproto/default.nix
+++ b/pkgs/data/fonts/0xproto/default.nix
@@ -4,14 +4,14 @@
 }:
 stdenvNoCC.mkDerivation rec {
   pname = "0xproto";
-  version = "1.300";
+  version = "1.601";
 
   src = let
     underscoreVersion = builtins.replaceStrings ["."] ["_"] version;
   in
     fetchzip {
       url = "https://github.com/0xType/0xProto/releases/download/${version}/0xProto_${underscoreVersion}.zip";
-      hash = "sha256-RanIMf9P2lFOF3kJS6jMlh/X6jttofbHSqFUJxWSqKk=";
+      hash = "sha256-f/5YmyIF66+7w2Tb0V0UKRjwDYDdZ0BEqsEuyN0FaDQ=";
     };
 
   installPhase = ''
diff --git a/pkgs/data/fonts/ibm-plex/default.nix b/pkgs/data/fonts/ibm-plex/default.nix
index 21321d83af34..a6c7b4d29535 100644
--- a/pkgs/data/fonts/ibm-plex/default.nix
+++ b/pkgs/data/fonts/ibm-plex/default.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "ibm-plex";
-  version = "6.2.0";
+  version = "6.4.0";
 
   src = fetchzip {
     url = "https://github.com/IBM/plex/releases/download/v${version}/OpenType.zip";
-    hash = "sha256-RvD/aeZrvltJiuAHqYMNaRsjLgTdcC1/5zqlcd4qKAA=";
+    hash = "sha256-/aR3bu03VxenSPed6EqrGoPjWCcKT//MVtb9OC8tSRs=";
   };
 
   installPhase = ''
diff --git a/pkgs/data/fonts/inconsolata/default.nix b/pkgs/data/fonts/inconsolata/default.nix
index 57069fadbc5e..180fa12b1066 100644
--- a/pkgs/data/fonts/inconsolata/default.nix
+++ b/pkgs/data/fonts/inconsolata/default.nix
@@ -2,23 +2,23 @@
 
 stdenv.mkDerivation {
   pname = "inconsolata";
-  version = "unstable-2021-01-19";
+  version = "3.001";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "fonts";
-    rev = "f113126dc4b9b1473d9354a86129c9d7b837aa1a";
-    sha256 = "0safw5prpa63mqcyfw3gr3a535w4c9hg5ayw5pkppiwil7n3pyxs";
+    rev = "0f203e3740b5eb77e0b179dff1e5869482676782";
+    sha256 = "sha256-Q8eUJ0mkoB245Ifz5ulxx61x4+AqKhG0uqhWF2nSLpw=";
   };
 
   installPhase = ''
-    install -m644 --target $out/share/fonts/truetype/inconsolata -D $src/ofl/inconsolata/*.ttf
+    install -m644 --target $out/share/fonts/truetype/inconsolata -D $src/ofl/inconsolata/static/*.ttf
   '';
 
   meta = with lib; {
     homepage = "https://www.levien.com/type/myfonts/inconsolata.html";
     description = "A monospace font for both screen and print";
-    maintainers = with maintainers; [ mikoim raskin ];
+    maintainers = with maintainers; [ appsforartists mikoim raskin ];
     license = licenses.ofl;
     platforms = platforms.all;
   };
diff --git a/pkgs/data/fonts/kode-mono/default.nix b/pkgs/data/fonts/kode-mono/default.nix
index 9792590c46d3..8a4617989398 100644
--- a/pkgs/data/fonts/kode-mono/default.nix
+++ b/pkgs/data/fonts/kode-mono/default.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "kode-mono";
-  version = "1.201";
+  version = "1.205";
 
   src = fetchzip {
     url = "https://github.com/isaozler/kode-mono/releases/download/${finalAttrs.version}/kode-mono-fonts.zip";
-    hash = "sha256-ssrs79Rg4izFCI2j6jHkFvBLcMgwIm3NAQzeX7QRMTE=";
+    hash = "sha256-DRe2Qi+Unhr5ebQdTG6QgvQEUTNOdnosFbQC8kpHNYU=";
     stripRoot = false;
   };
 
diff --git a/pkgs/data/fonts/lxgw-neoxihei/default.nix b/pkgs/data/fonts/lxgw-neoxihei/default.nix
index 0e7a9888aed8..2b1425f44cff 100644
--- a/pkgs/data/fonts/lxgw-neoxihei/default.nix
+++ b/pkgs/data/fonts/lxgw-neoxihei/default.nix
@@ -5,11 +5,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "lxgw-neoxihei";
-  version = "1.108";
+  version = "1.109";
 
   src = fetchurl {
     url = "https://github.com/lxgw/LxgwNeoXiHei/releases/download/v${version}/LXGWNeoXiHei.ttf";
-    hash = "sha256-Wx2fmvIEHgimu7BJ49xWK7c08Rsf3fsjMLTdyedgK3I=";
+    hash = "sha256-LnbkHmEyxqv1W/qWeCVQGHKLuv6qX3P8zUMUxx61t38=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/data/fonts/sketchybar-app-font/default.nix b/pkgs/data/fonts/sketchybar-app-font/default.nix
index 765cffa6cfd9..aeb4d1b1b3e2 100644
--- a/pkgs/data/fonts/sketchybar-app-font/default.nix
+++ b/pkgs/data/fonts/sketchybar-app-font/default.nix
@@ -5,11 +5,11 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "sketchybar-app-font";
-  version = "1.0.23";
+  version = "2.0.3";
 
   src = fetchurl {
     url = "https://github.com/kvndrsslr/sketchybar-app-font/releases/download/v${finalAttrs.version}/sketchybar-app-font.ttf";
-    hash = "sha256-9ELXLlYZyffXD0zomcJsG1Adb/Gu6oRTQZyzwK5lZ6I=";
+    hash = "sha256-KeyUx/u0YARmNdVC9RQtAL3QFOgV59uyg53y0Lknvyw=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/data/fonts/sudo/default.nix b/pkgs/data/fonts/sudo/default.nix
index 874aeb4c4b55..ec079295a9ca 100644
--- a/pkgs/data/fonts/sudo/default.nix
+++ b/pkgs/data/fonts/sudo/default.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "sudo-font";
-  version = "0.80";
+  version = "0.81";
 
   src = fetchzip {
     url = "https://github.com/jenskutilek/sudo-font/releases/download/v${version}/sudo.zip";
-    hash = "sha256-PUqWwWvi9k7Aj6L7NjlrBMFeRHKDUF5yX4efvi0nywI=";
+    hash = "sha256-qc26xHM9P9+lsPE9j5UY4f0hIb5PjlCSy+jm0zEFj2g=";
   };
 
   installPhase = ''
diff --git a/pkgs/data/icons/kora-icon-theme/default.nix b/pkgs/data/icons/kora-icon-theme/default.nix
index 87093b2f357e..a490d1c7289a 100644
--- a/pkgs/data/icons/kora-icon-theme/default.nix
+++ b/pkgs/data/icons/kora-icon-theme/default.nix
@@ -10,13 +10,13 @@
 
 stdenvNoCC.mkDerivation rec  {
   pname = "kora-icon-theme";
-  version = "1.5.9";
+  version = "1.6.0";
 
   src = fetchFromGitHub  {
     owner = "bikass";
     repo = "kora";
     rev = "v${version}";
-    sha256 = "sha256-ZXAS22Oe6C34DR1BfGmCGr1qh9mu1PCY5IQWxrm1EfY=";
+    sha256 = "sha256-YKdqV41HlQMvkyWoWbOCMUASshnEDnXtxzdmJdTEQGw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/data/icons/papirus-icon-theme/default.nix b/pkgs/data/icons/papirus-icon-theme/default.nix
index e940bc7d52be..4a39dfe473c8 100644
--- a/pkgs/data/icons/papirus-icon-theme/default.nix
+++ b/pkgs/data/icons/papirus-icon-theme/default.nix
@@ -13,13 +13,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "papirus-icon-theme";
-  version = "20231201";
+  version = "20240201";
 
   src = fetchFromGitHub {
     owner = "PapirusDevelopmentTeam";
     repo = pname;
     rev = version;
-    hash = "sha256-nLc2nt8YI193loMHjzzEwgvb+tdNrVTZskqssX2oFrU=";
+    hash = "sha256-hAmtvib6wENEAGQdK242wwDqF3Ddu4YR00KPaWR8JMo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/data/misc/clash-geoip/default.nix b/pkgs/data/misc/clash-geoip/default.nix
index 7dcb0c63e8de..cd41a9076bf0 100644
--- a/pkgs/data/misc/clash-geoip/default.nix
+++ b/pkgs/data/misc/clash-geoip/default.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "clash-geoip";
-  version = "20231212";
+  version = "20240112";
 
   src = fetchurl {
     url = "https://github.com/Dreamacro/maxmind-geoip/releases/download/${version}/Country.mmdb";
-    sha256 = "sha256-h6EojfOWfDwD5Akvb8NrSvg3xyQZhOUrKhUxlWwio8A=";
+    sha256 = "sha256-RnRPGMHb+gciKxVV0DoK/E/7sI7Zb9yvtqHYtYDC15Q=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/data/misc/dbip-country-lite/default.nix b/pkgs/data/misc/dbip-country-lite/default.nix
index 8685c1b35cd7..e1dc1bebf487 100644
--- a/pkgs/data/misc/dbip-country-lite/default.nix
+++ b/pkgs/data/misc/dbip-country-lite/default.nix
@@ -5,11 +5,11 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "dbip-country-lite";
-  version = "2024-01";
+  version = "2024-02";
 
   src = fetchurl {
     url = "https://download.db-ip.com/free/dbip-country-lite-${finalAttrs.version}.mmdb.gz";
-    hash = "sha256-aFelcJPwkHRp/McStNABdJKTifz+WK3ODUk8bdiTtEk=";
+    hash = "sha256-YeZaFscmH4yVNwwXCHzxf/BlM1zT0gbdZ6Ysdh4gqN4=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/data/misc/iana-etc/default.nix b/pkgs/data/misc/iana-etc/default.nix
index de19347e3403..ee83d1cca0bb 100644
--- a/pkgs/data/misc/iana-etc/default.nix
+++ b/pkgs/data/misc/iana-etc/default.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "iana-etc";
-  version = "20230316";
+  version = "20231227";
 
   src = fetchzip {
     url = "https://github.com/Mic92/iana-etc/releases/download/${version}/iana-etc-${version}.tar.gz";
-    sha256 = "sha256-5acFYPSwevEw5tZNbQDpui3stWuMdnhaKHqC8lhnsOY=";
+    sha256 = "sha256-8Pa6LtAml8axjrUS32UbFIqTtM8v124U2Tt0J4sC0Is=";
   };
 
   installPhase = ''
diff --git a/pkgs/data/misc/v2ray-domain-list-community/default.nix b/pkgs/data/misc/v2ray-domain-list-community/default.nix
index 9593195d78d4..e56bff2eb94c 100644
--- a/pkgs/data/misc/v2ray-domain-list-community/default.nix
+++ b/pkgs/data/misc/v2ray-domain-list-community/default.nix
@@ -3,12 +3,12 @@
 let
   generator = pkgsBuildBuild.buildGoModule rec {
     pname = "v2ray-domain-list-community";
-    version = "20240105034708";
+    version = "20240131105845";
     src = fetchFromGitHub {
       owner = "v2fly";
       repo = "domain-list-community";
       rev = version;
-      hash = "sha256-8taKbZUWttpTY56lzgWJeAPpt0q9srSwRkNqkOsmY2Y=";
+      hash = "sha256-aoHcRrZOFHagFNieJf9LtWHd1JDisPb3cpu9x5rMizE=";
     };
     vendorHash = "sha256-azvMUi8eLNoNofRa2X4SKTTiMd6aOyO6H/rOiKjkpIY=";
     meta = with lib; {
diff --git a/pkgs/data/misc/wireless-regdb/default.nix b/pkgs/data/misc/wireless-regdb/default.nix
index 14ce443eb3b5..284e6f524de5 100644
--- a/pkgs/data/misc/wireless-regdb/default.nix
+++ b/pkgs/data/misc/wireless-regdb/default.nix
@@ -1,12 +1,12 @@
-{ lib, stdenvNoCC, fetchurl }:
+{ lib, stdenvNoCC, fetchurl, directoryListingUpdater }:
 
 stdenvNoCC.mkDerivation rec {
   pname = "wireless-regdb";
-  version = "2023.09.01";
+  version = "2024.01.23";
 
   src = fetchurl {
     url = "https://www.kernel.org/pub/software/network/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-JtTCpyfMWSObhHNarYVrfH0LBOMKpcI1xPf0f18FNJE=";
+    hash = "sha256-yKYcms92+n60I56J9kDe4+hwmNn2m001GMnGD8bSDFU=";
   };
 
   dontBuild = true;
@@ -16,6 +16,8 @@ stdenvNoCC.mkDerivation rec {
     "PREFIX="
   ];
 
+  passthru.updateScript = directoryListingUpdater { };
+
   meta = with lib; {
     description = "Wireless regulatory database for CRDA";
     homepage = "http://wireless.kernel.org/en/developers/Regulatory/";
diff --git a/pkgs/data/themes/alacritty-theme/default.nix b/pkgs/data/themes/alacritty-theme/default.nix
index a60f42107ce4..c8d8184768f8 100644
--- a/pkgs/data/themes/alacritty-theme/default.nix
+++ b/pkgs/data/themes/alacritty-theme/default.nix
@@ -6,13 +6,13 @@
 
 stdenvNoCC.mkDerivation (self: {
   name = "alacritty-theme";
-  version = "unstable-2023-12-28";
+  version = "unstable-2024-01-21";
 
   src = fetchFromGitHub {
     owner = "alacritty";
     repo = "alacritty-theme";
-    rev = "b7a59c92fd54a005893b99479fb0aa466a37a4b7";
-    hash = "sha256-UBWH4Q9MliqcolFq1tZrfRdzCkUO1pRn84qvZEVw8Gg=";
+    rev = "f03686afad05274f5fbd2507f85f95b1a6542df4";
+    hash = "sha256-457kKE3I4zGf1EKkEoyZu0Fa/1O3yiryzHVEw2rNZt8=";
   };
 
   dontConfigure = true;
diff --git a/pkgs/data/themes/dracula-theme/default.nix b/pkgs/data/themes/dracula-theme/default.nix
index 348b6c961f58..b36c806e6a23 100644
--- a/pkgs/data/themes/dracula-theme/default.nix
+++ b/pkgs/data/themes/dracula-theme/default.nix
@@ -2,7 +2,7 @@
 
 let
   themeName = "Dracula";
-  version = "unstable-2024-01-08";
+  version = "unstable-2024-01-31";
 in
 stdenvNoCC.mkDerivation {
   pname = "dracula-theme";
@@ -11,8 +11,8 @@ stdenvNoCC.mkDerivation {
   src = fetchFromGitHub {
     owner = "dracula";
     repo = "gtk";
-    rev = "f3c876d8c97f9bb504c98592a8d96770e70585bb";
-    hash = "sha256-jRq/rUVk/1+LoQaD5sytjai0yZOf+544z0TfxhMUThg=";
+    rev = "cd11595a2301a6f47a14b25992783ef199c44311";
+    hash = "sha256-i2jO9103uwjNawvDBrHOa18svwCI6NsAVybnUaJBLt0=";
   };
 
   propagatedUserEnvPkgs = [
diff --git a/pkgs/data/themes/nordic/default.nix b/pkgs/data/themes/nordic/default.nix
index 16eefee7bbb9..d99b31392b61 100644
--- a/pkgs/data/themes/nordic/default.nix
+++ b/pkgs/data/themes/nordic/default.nix
@@ -1,5 +1,5 @@
 { lib
-, stdenv
+, stdenvNoCC
 , fetchFromGitHub
 , gtk-engine-murrine
 , breeze-icons
@@ -8,72 +8,72 @@
 , jdupes
 }:
 
-stdenv.mkDerivation rec {
+stdenvNoCC.mkDerivation rec {
   pname = "nordic";
-  version = "unstable-2023-10-17";
+  version = "2.2.0-unstable-2024-01-20";
 
   srcs = [
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "e97d2bcf4494f8ab502e33d13c74b396469a42f4";
-      hash = "sha256-7WfCE3eoJ7maAYqgQNb0mlw8u3zc6NAwTJN+PVojDcE=";
+      rev = "218a1a8679fdb97aa0aa7997fdf8c5344d68fb2f";
+      hash = "sha256-a315U4HsQP1omluTJjq9U76L3ANP7uN831mCY54vZnk=";
       name = "Nordic";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "73ed3490c13b2df6c3d27d6b3bcba0c087297f4a";
-      hash = "sha256-fRmGiqtjfGFIfr5hRBS3ZPFYEpQx391WoxphB5gRTJo=";
+      rev = "59873a54c8524adb36411d17d473eb7b7c910eac";
+      hash = "sha256-RisW5W0onNrtsSPHtFW66OdrQWOQX3uDmLiM+5ckzSY=";
       name = "Nordic-standard-buttons";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "4b1fc2942bad203a0aa035cbb688b28005bb1011";
-      hash = "sha256-VU5Bo39l8xdR6QmbTR0Qic6XkSfDFrhyjoHaMm9SBYM=";
+      rev = "6e2b8fb8017c34344ec6b70884f09ebb44863efb";
+      hash = "sha256-B4qH8L5r16gaPS1wpiIHPyS3g/g53Xi2C6F0rcZKgWk=";
       name = "Nordic-darker";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "6d57a16eef66c25f0212b7d2f02e208f2afdf4f9";
-      hash = "sha256-Sq5ZXOh+HA+udQHL2wUw5azgKwAVVvHGNb3SiuOn0nQ=";
+      rev = "2160a7bc69f55dd0b9efa64f029344256a4ef086";
+      hash = "sha256-1WdorWByZE4sXTfwsjFxvvSI0qQcAcfFoPXN5fGhEpc=";
       name = "Nordic-darker-standard-buttons";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "566e38c40bca86df93d0e9226c33d5d525d34454";
-      hash = "sha256-Wl/m2O0tVCFgZhPC/gcNgKr0JqQbiyQBpGEcp8g6kvY=";
+      rev = "63e0844bc04e1500e4b0ef8031cb3812e15e12fb";
+      hash = "sha256-b0Zs2WsD913Ai8wvi7mPraFme93WZXm+7rnwhDvGuZM=";
       name = "Nordic-bluish-accent";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "b43efee28129634fdefe70f2a03c401efc7dc22f";
-      hash = "sha256-rLOWkfTMFEnVU2tuw5M2fvbNMPfxIu+gzi+3gnBEhx4=";
+      rev = "53e44ca5045a57903c0024197fa7a7a267432afb";
+      hash = "sha256-vF2f4PuQP0QkmPT6kR35eWYvQ9xLCYihEsobERURuBk=";
       name = "Nordic-bluish-accent-standard-buttons";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = "${pname}-polar";
-      rev = "2192acfce55fbb9a2982886abe25e623d0e7ff66";
-      hash = "sha256-B/sAy4I+9gX9dHXUldcN5t0vlOL2Jnoan/hRV+tNnSo=";
+      rev = "4ec6f09782394d24d4d8cc78ac53c4692ec28985";
+      hash = "sha256-Z50ciafgfTHBahjpcVTapnsU88ioPUZ1RjggNpruJP0=";
       name = "Nordic-Polar";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = "${pname}-polar";
-      rev = "a24b42411d8ea0dc63bf0778e443be251858e586";
-      hash = "sha256-02z4eMFtok1+SeW+ai7vZCXZb6ZhU4l4ch1Zc/GyhYM=";
+      rev = "c6c7ee8e642a9df07f7d69ed048a6ef37a26153c";
+      hash = "sha256-e+B9oUKbPr2MKmaz+l5GTOP4iVmw24vVpS98mAxEekA=";
       name = "Nordic-Polar-standard-buttons";
     })
   ];
@@ -139,7 +139,7 @@ stdenv.mkDerivation rec {
 
   postFixup = ''
     # Propagate sddm theme dependencies to user env otherwise sddm
-    # does find them. Putting them in buildInputs is not enough.
+    # does not find them. Putting them in buildInputs is not enough.
 
     mkdir -p $sddm/nix-support
 
diff --git a/pkgs/data/themes/sweet/default.nix b/pkgs/data/themes/sweet/default.nix
index 3ffa3caf8ba8..308392a2450b 100644
--- a/pkgs/data/themes/sweet/default.nix
+++ b/pkgs/data/themes/sweet/default.nix
@@ -1,29 +1,62 @@
-{ lib, stdenv, fetchurl, unzip, gtk-engine-murrine }:
+{ lib
+, stdenvNoCC
+, fetchurl
+, unzip
+, gtk-engine-murrine
+}:
 
-stdenv.mkDerivation rec {
+stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "sweet";
-  version = "3.0";
+  version = "4.0";
 
   srcs = [
     (fetchurl {
-      url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet-Ambar-Blue.zip";
-      sha256 = "sha256-6ZrjH5L7Yox7riR+2I7vVbFoG4k7xHGyOq1OnkllyiY";
+      url = "https://github.com/EliverLara/Sweet/releases/download/v${finalAttrs.version}/Sweet-Ambar-Blue-Dark-v40.zip";
+      hash = "sha256-w4jN6PSUNCuqeRQ5wInb5deMTtfpKOa7lj9pN+b/0hU=";
     })
     (fetchurl {
-      url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet-Ambar.zip";
-      sha256 = "sha256-FAbf682YJCCt8NKSdFoaFLwxLDU1aCcTgNdlybZtPMo=";
+      url = "https://github.com/EliverLara/Sweet/releases/download/v${finalAttrs.version}/Sweet-Ambar-Blue-Dark.zip";
+      hash = "sha256-2hb2FHWyGSowRdUnrWMJENlqRtSr2CrPtDe3DSZlP8M=";
     })
     (fetchurl {
-      url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet-Dark.zip";
-      sha256 = "sha256-t6fczOnKwi4B9hSFhHQaQ533o7MFL+7HPtUJ/p2CIXM=";
+      url = "https://github.com/EliverLara/Sweet/releases/download/v${finalAttrs.version}/Sweet-Ambar-Blue-v40.zip";
+      hash = "sha256-4B0O9hOI9xtzj2gOX354DxtQyiahK5ezr6q6VBpxOJQ=";
     })
     (fetchurl {
-      url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet-mars.zip";
-      sha256 = "sha256-QGkkpUqkxGPM1DXrvToB3taajk7vK3rqibQF2M4N9i0=";
+      url = "https://github.com/EliverLara/Sweet/releases/download/v${finalAttrs.version}/Sweet-Ambar-Blue.zip";
+      hash = "sha256-8Aw7CsHRflHoeL/DhpxgxDATaAFm+MTMjeZe9Qg8J8o=";
     })
     (fetchurl {
-      url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet.zip";
-      sha256 = "sha256-1qVC2n7ypN1BFuSzBpbY7QzJUzF1anYNAVcMkNpGTMM";
+      url = "https://github.com/EliverLara/Sweet/releases/download/v${finalAttrs.version}/Sweet-Ambar-v40.zip";
+      hash = "sha256-Ih8/d4qHBAaDDHUIdzw7J6jGu5Zg6KTPffEs+jh0VkM=";
+    })
+    (fetchurl {
+      url = "https://github.com/EliverLara/Sweet/releases/download/v${finalAttrs.version}/Sweet-Ambar.zip";
+      hash = "sha256-WdawPwNRW1uVNFIiP7bSQxvcWQtD/i8b4oLplPbPLyU=";
+    })
+    (fetchurl {
+      url = "https://github.com/EliverLara/Sweet/releases/download/v${finalAttrs.version}/Sweet-Dark-v40.zip";
+      hash = "sha256-5vnTneWP5uRFeL6PjuP61OglbNL6+lLGPHmrLeqyk2w=";
+    })
+    (fetchurl {
+      url = "https://github.com/EliverLara/Sweet/releases/download/v${finalAttrs.version}/Sweet-Dark.zip";
+      hash = "sha256-EmXM2/IG82KKm5npl2KLTryhu7Y/5KLKnPv1JxYm0Z4=";
+    })
+    (fetchurl {
+      url = "https://github.com/EliverLara/Sweet/releases/download/v${finalAttrs.version}/Sweet-mars-v40.zip";
+      hash = "sha256-5t9NsxmbjDg7Nf/BSnbdZhx1wl6PQxXYxKuhlNnIPO4=";
+    })
+    (fetchurl {
+      url = "https://github.com/EliverLara/Sweet/releases/download/v${finalAttrs.version}/Sweet-mars.zip";
+      hash = "sha256-ZX7Z9gTMVUjFVtdN+FWuHAkV+Yk8vk7D23gr27efpNM=";
+    })
+    (fetchurl {
+      url = "https://github.com/EliverLara/Sweet/releases/download/v${finalAttrs.version}/Sweet-v40.zip";
+      hash = "sha256-NHSFgj5iybwzcYw0JyMWijhVXSEvhbMhj1KcvTsHpS4=";
+    })
+    (fetchurl {
+      url = "https://github.com/EliverLara/Sweet/releases/download/v${finalAttrs.version}/Sweet.zip";
+      hash = "sha256-R2ULcqjOQ9aPO4c2o5ow81icZGKxA5Qvq7G5XGGC2Og=";
     })
   ];
 
@@ -44,8 +77,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Light and dark colorful Gtk3.20+ theme";
     homepage = "https://github.com/EliverLara/Sweet";
-    license = licenses.gpl3Only;
-    maintainers = with maintainers; [ fuzen ];
-    platforms = platforms.linux;
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ fuzen d3vil0p3r ];
+    platforms = platforms.unix;
   };
-}
+})
diff --git a/pkgs/desktops/budgie/budgie-desktop/default.nix b/pkgs/desktops/budgie/budgie-desktop/default.nix
index 04263c99a74f..7dc23cf10f50 100644
--- a/pkgs/desktops/budgie/budgie-desktop/default.nix
+++ b/pkgs/desktops/budgie/budgie-desktop/default.nix
@@ -8,7 +8,6 @@
 , glib
 , gnome
 , gnome-desktop
-, gnome-menus
 , graphene
 , gst_all_1
 , gtk-doc
@@ -32,19 +31,20 @@
 , sassc
 , upower
 , vala
+, xfce
 , wrapGAppsHook
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "budgie-desktop";
-  version = "10.8.2";
+  version = "10.9.1";
 
   src = fetchFromGitHub {
     owner = "BuddiesOfBudgie";
     repo = "budgie-desktop";
     rev = "v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-K5XUYcFjDJCHhjb/UTO206+UT6lI2P7X1v3SqlYbwPM=";
+    hash = "sha256-H+J/zFUjiXbr5ynDkkjrRsEbyO4LPOhqe8DdG60ikRw=";
   };
 
   patches = [
@@ -68,8 +68,6 @@ stdenv.mkDerivation (finalAttrs: {
     budgie-screensaver
     glib
     gnome-desktop
-    gnome-menus
-    gnome.gnome-bluetooth_1_0
     gnome.gnome-settings-daemon
     gnome.mutter
     gnome.zenity
@@ -89,6 +87,7 @@ stdenv.mkDerivation (finalAttrs: {
     polkit
     sassc
     upower
+    xfce.libxfce4windowing
   ] ++ (with gst_all_1; [
     gstreamer
     gst-plugins-base
diff --git a/pkgs/desktops/budgie/budgie-session/default.nix b/pkgs/desktops/budgie/budgie-session/default.nix
new file mode 100644
index 000000000000..70b49080cb68
--- /dev/null
+++ b/pkgs/desktops/budgie/budgie-session/default.nix
@@ -0,0 +1,101 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, substituteAll
+, meson
+, ninja
+, pkg-config
+, gnome
+, glib
+, gtk3
+, gsettings-desktop-schemas
+, gnome-desktop
+, dbus
+, json-glib
+, libICE
+, xmlto
+, docbook_xsl
+, docbook_xml_dtd_412
+, python3
+, libxslt
+, gettext
+, makeWrapper
+, systemd
+, xorg
+, libepoxy
+, bash
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "budgie-session";
+  version = "0.9.1";
+
+  src = fetchFromGitHub {
+    owner = "BuddiesOfBudgie";
+    repo = "budgie-session";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-mz+Yh3NK2Tag+MWVofFFXYYXspxhmYBD6YCiuATpZSI=";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      gsettings = "${glib.bin}/bin/gsettings";
+      dbusLaunch = "${dbus.lib}/bin/dbus-launch";
+      bash = "${bash}/bin/bash";
+    })
+  ];
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    gettext
+    makeWrapper
+    xmlto
+    libxslt
+    docbook_xsl
+    docbook_xml_dtd_412
+    python3
+    dbus # for DTD
+  ];
+
+  buildInputs = [
+    glib
+    gtk3
+    libICE
+    gnome-desktop
+    json-glib
+    xorg.xtrans
+    gnome.adwaita-icon-theme
+    gnome.gnome-settings-daemon
+    gsettings-desktop-schemas
+    systemd
+    libepoxy
+  ];
+
+  postPatch = ''
+    chmod +x meson_post_install.py # patchShebangs requires executable file
+    patchShebangs meson_post_install.py
+  '';
+
+  # `bin/budgie-session` will reset the environment when run in wayland, we
+  # therefor wrap `libexec/budgie-session-binary` instead which is the actual
+  # binary needing wrapping
+  preFixup = ''
+    wrapProgram "$out/libexec/budgie-session-binary" \
+      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
+      --suffix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" \
+      --suffix XDG_CONFIG_DIRS : "${gnome.gnome-settings-daemon}/etc/xdg"
+  '';
+
+  separateDebugInfo = true;
+
+  meta = {
+    description = "Session manager for Budgie";
+    homepage = "https://github.com/BuddiesOfBudgie/budgie-session";
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [federicoschonborn];
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/pkgs/desktops/budgie/budgie-session/fix-paths.patch b/pkgs/desktops/budgie/budgie-session/fix-paths.patch
new file mode 100644
index 000000000000..1c011d26b549
--- /dev/null
+++ b/pkgs/desktops/budgie/budgie-session/fix-paths.patch
@@ -0,0 +1,35 @@
+diff --git a/gnome-session/budgie-session.in b/gnome-session/budgie-session.in
+index 8a91e061..3e2ef031 100755
+--- a/gnome-session/budgie-session.in
++++ b/gnome-session/budgie-session.in
+@@ -7,13 +7,15 @@ if [ "x$XDG_SESSION_TYPE" = "xwayland" ] &&
+    ! (echo "$SHELL" | grep -q "false") &&
+    ! (echo "$SHELL" | grep -q "nologin"); then
+   if [ "$1" != '-l' ]; then
+-    exec bash -c "exec -l '$SHELL' -c '$0 -l $*'"
++    # Make sure the shell actually sets up the environment.
++    unset __NIXOS_SET_ENVIRONMENT_DONE
++    exec @bash@ -c "exec -l '$SHELL' -c '$0 -l $*'"
+   else
+     shift
+   fi
+ fi
+ 
+-SETTING=$(G_MESSAGES_DEBUG='' gsettings get org.gnome.system.locale region)
++SETTING=$(G_MESSAGES_DEBUG='' @gsettings@ get org.gnome.system.locale region)
+ REGION=${SETTING#\'}
+ REGION=${REGION%\'}
+ 
+diff --git a/gnome-session/main.c b/gnome-session/main.c
+index 327c7c7f..301ec7ee 100644
+--- a/gnome-session/main.c
++++ b/gnome-session/main.c
+@@ -219,7 +219,7 @@ require_dbus_session (int      argc,
+         }
+         new_argv[i + 2] = NULL;
+         
+-        if (!execvp ("dbus-launch", new_argv)) {
++        if (!execvp ("@dbusLaunch@", new_argv)) {
+                 g_set_error (error, 
+                              G_SPAWN_ERROR,
+                              G_SPAWN_ERROR_FAILED,
diff --git a/pkgs/desktops/budgie/default.nix b/pkgs/desktops/budgie/default.nix
index 73eca3942023..031ec9cd51a0 100644
--- a/pkgs/desktops/budgie/default.nix
+++ b/pkgs/desktops/budgie/default.nix
@@ -8,5 +8,6 @@ lib.makeScope pkgs.newScope (self: with self; {
   budgie-desktop-with-plugins = callPackage ./budgie-desktop/wrapper.nix { };
   budgie-gsettings-overrides = callPackage ./budgie-gsettings-overrides { };
   budgie-screensaver = callPackage ./budgie-screensaver { };
+  budgie-session = callPackage ./budgie-session { };
   magpie = callPackage ./magpie { };
 })
diff --git a/pkgs/desktops/budgie/plugins/budgie-media-player-applet/default.nix b/pkgs/desktops/budgie/plugins/budgie-media-player-applet/default.nix
new file mode 100644
index 000000000000..ae3a44f22fd0
--- /dev/null
+++ b/pkgs/desktops/budgie/plugins/budgie-media-player-applet/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, glib
+, meson
+, ninja
+, python3Packages
+}:
+
+stdenv.mkDerivation {
+  pname = "budgie-media-player-applet";
+  version = "1.0.0-unstable-2023-12-31";
+
+  src = fetchFromGitHub {
+    owner = "zalesyc";
+    repo = "budgie-media-player-applet";
+    rev = "24500be1e0a1f92968df80f8befdf896723ba8ee";
+    hash = "sha256-jQgkE6vv8PIcB0MJgfsQvzMRkkMU51Gqefoa2G6YJCw=";
+  };
+
+  nativeBuildInputs = [
+    glib # glib-compile-schemas
+    meson
+    ninja
+    python3Packages.wrapPython
+  ];
+
+  pythonPath = with python3Packages; [
+    pillow
+    requests
+  ];
+
+  postPatch = ''
+    substituteInPlace meson.build --replace "/usr" "$out"
+    substituteInPlace meson_post_install.py --replace '"/", "usr"' "\"$out\""
+  '';
+
+  postFixup = ''
+    buildPythonPath "$out $pythonPath"
+    patchPythonScript "$out/lib/budgie-desktop/plugins/budgie-media-player-applet/applet.py"
+  '';
+
+  meta = {
+    description = "Media Control Applet for the Budgie Panel";
+    homepage = "https://github.com/zalesyc/budgie-media-player-applet";
+    license = lib.licenses.gpl3Plus;
+    platforms = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ federicoschonborn ];
+  };
+}
diff --git a/pkgs/desktops/budgie/plugins/default.nix b/pkgs/desktops/budgie/plugins/default.nix
index e096802b6600..1958a8ef9ea2 100644
--- a/pkgs/desktops/budgie/plugins/default.nix
+++ b/pkgs/desktops/budgie/plugins/default.nix
@@ -1,4 +1,5 @@
 { callPackage }: {
   budgie-analogue-clock-applet = callPackage ./budgie-analogue-clock-applet { };
+  budgie-media-player-applet = callPackage ./budgie-media-player-applet { };
   budgie-user-indicator-redux = callPackage ./budgie-user-indicator-redux { };
 }
diff --git a/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix b/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
index 17d846f305b2..98d1a4f39c16 100644
--- a/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
@@ -28,13 +28,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-screensaver";
-  version = "6.0.2";
+  version = "6.0.3";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-6Js670Z3/5BwAHvEJrXJkBZvEvx1NeT+eXOKaqKqFqI=";
+    hash = "sha256-ncYE2dCIAQxCMCe/5zrDU9iHTIkw+iO/IQl8+pfTvLI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/cinnamon/cinnamon-session/default.nix b/pkgs/desktops/cinnamon/cinnamon-session/default.nix
index a0dfab6503c2..7352c5549b23 100644
--- a/pkgs/desktops/cinnamon/cinnamon-session/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-session/default.nix
@@ -32,13 +32,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "cinnamon-session";
-  version = "6.0.1";
+  version = "6.0.3";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-9wdakMCW0RnsYdf9OmK/Q9o8m0g+5EfHVbjqvFY3d/w=";
+    hash = "sha256-dNg1e339NWRzyEsRp7I91SwK2H+lU28Ra+7MSgUDk8w=";
   };
 
   patches = [
diff --git a/pkgs/desktops/cinnamon/mint-artwork/default.nix b/pkgs/desktops/cinnamon/mint-artwork/default.nix
index d20be81f37a6..7641272b0ec8 100644
--- a/pkgs/desktops/cinnamon/mint-artwork/default.nix
+++ b/pkgs/desktops/cinnamon/mint-artwork/default.nix
@@ -7,14 +7,14 @@
 
 stdenv.mkDerivation rec {
   pname = "mint-artwork";
-  version = "1.7.9";
+  version = "1.8.0";
 
   src = fetchurl {
     urls = [
       "http://packages.linuxmint.com/pool/main/m/mint-artwork/mint-artwork_${version}.tar.xz"
-      "https://web.archive.org/web/20231214142428/http://packages.linuxmint.com/pool/main/m/mint-artwork/mint-artwork_${version}.tar.xz"
+      "https://web.archive.org/web/20240122135036/http://packages.linuxmint.com/pool/main/m/mint-artwork/mint-artwork_${version}.tar.xz"
     ];
-    hash = "sha256-64S7NAQtJuhSeMiSTbW2bqosL4A9M/nzmPYJI/ZAi0U=";
+    hash = "sha256-eCrch5IQdTd92DIqdjZFzvE4oShv3HuXfrLLUmLb0Ms=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/deepin/apps/deepin-compressor/default.nix b/pkgs/desktops/deepin/apps/deepin-compressor/default.nix
index e2ac4829db7c..393c51e4ac64 100644
--- a/pkgs/desktops/deepin/apps/deepin-compressor/default.nix
+++ b/pkgs/desktops/deepin/apps/deepin-compressor/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchpatch
 , dtkwidget
 , qt5integration
 , qt5platform-plugins
@@ -21,23 +20,15 @@
 
 stdenv.mkDerivation rec {
   pname = "deepin-compressor";
-  version = "5.12.20";
+  version = "5.12.23";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-oOxto0X/GBAA9q691uwC0PtCdHDTMBqi80ov4xCXPn0=";
+    hash = "sha256-8qfpNM2rci4subdodxfJZLP3OvAxXl7QRl4MHGr15nA=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "fix-build-failures-for-new-dtkgui.patch";
-      url = "https://github.com/linuxdeepin/deepin-compressor/commit/0ee07030034b06021e366d8d6109f344d47ea26c.patch";
-      hash = "sha256-P++SxzZCWoXJnLQhC0H/64/LjW/dqnl3hCGBWHVDn9Q=";
-    })
-  ];
-
   postPatch = ''
     substituteInPlace src/source/common/pluginmanager.cpp \
       --replace "/usr/lib/" "$out/lib/"
diff --git a/pkgs/desktops/deepin/library/dtkcore/default.nix b/pkgs/desktops/deepin/library/dtkcore/default.nix
index e3b4d1166c91..f13715535e09 100644
--- a/pkgs/desktops/deepin/library/dtkcore/default.nix
+++ b/pkgs/desktops/deepin/library/dtkcore/default.nix
@@ -32,11 +32,6 @@ stdenv.mkDerivation rec {
     ./fix-pri-path.patch
   ];
 
-  postPatch = ''
-    substituteInPlace src/dsysinfo.cpp \
-      --replace "/usr/share/deepin/distribution.info" "/etc/distribution.info" \
-  '';
-
   nativeBuildInputs = [
     cmake
     pkg-config
diff --git a/pkgs/desktops/deepin/misc/deepin-desktop-base/default.nix b/pkgs/desktops/deepin/misc/deepin-desktop-base/default.nix
index aa31bf975ad0..50fa2c6e72e7 100644
--- a/pkgs/desktops/deepin/misc/deepin-desktop-base/default.nix
+++ b/pkgs/desktops/deepin/misc/deepin-desktop-base/default.nix
@@ -1,6 +1,7 @@
 { stdenvNoCC
 , lib
 , fetchFromGitHub
+, nixos-icons
 }:
 stdenvNoCC.mkDerivation rec {
   pname = "deepin-desktop-base";
@@ -24,6 +25,15 @@ stdenvNoCC.mkDerivation rec {
     mv $out/usr/* $out/
     rm -r $out/usr
     install -D ${./distribution_logo_transparent.svg} $out/share/pixmaps/distribution_logo_transparent.svg
+    cat > $out/share/deepin/distribution.info <<EOF
+    [Distribution]
+    Name=NixOS
+    WebsiteName=www.nixos.org
+    Website=https://www.nixos.org
+    Logo=${nixos-icons}/share/icons/hicolor/96x96/apps/nix-snowflake.png
+    LogoLight=${nixos-icons}/share/icons/hicolor/32x32/apps/nix-snowflake.png
+    LogoTransparent=$out/share/pixmaps/distribution_logo_transparent.svg
+    EOF
   '';
 
   meta = with lib; {
diff --git a/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix b/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix
index f1a9d0745f2c..72ccdffd374a 100644
--- a/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix
@@ -24,11 +24,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-text-editor";
-  version = "45.1";
+  version = "45.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-text-editor/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-aobsmSD0ZrbtkmlVJNO1B7HoQnLa+lNB0GoVfehor3E=";
+    sha256 = "sha256-8//LEakt/QS6PDs9DmZ4R9REmiHgEq428H3aBax9OlI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/core/gnome-session/default.nix b/pkgs/desktops/gnome/core/gnome-session/default.nix
index dc0cade8d410..710829a5068e 100644
--- a/pkgs/desktops/gnome/core/gnome-session/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-session/default.nix
@@ -25,7 +25,6 @@
 , libepoxy
 , bash
 , gnome-session-ctl
-, gnomeShellSupport ? true
 }:
 
 stdenv.mkDerivation rec {
@@ -114,7 +113,7 @@ stdenv.mkDerivation rec {
     wrapProgram "$out/libexec/gnome-session-binary" \
       --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
       --suffix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" \
-      ${lib.optionalString gnomeShellSupport "--suffix XDG_DATA_DIRS : \"${gnome.gnome-shell}/share\""} \
+      --suffix XDG_DATA_DIRS : "${gnome.gnome-shell}/share" \
       --suffix XDG_CONFIG_DIRS : "${gnome.gnome-settings-daemon}/etc/xdg"
   '';
 
diff --git a/pkgs/desktops/gnome/core/nautilus/default.nix b/pkgs/desktops/gnome/core/nautilus/default.nix
index 6c96c54f86b5..7e2d44249376 100644
--- a/pkgs/desktops/gnome/core/nautilus/default.nix
+++ b/pkgs/desktops/gnome/core/nautilus/default.nix
@@ -130,5 +130,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = teams.gnome.members;
+    mainProgram = "nautilus";
   };
 })
diff --git a/pkgs/desktops/gnome/extensions/extensionOverrides.nix b/pkgs/desktops/gnome/extensions/extensionOverrides.nix
index 77b09d870509..c2e95835204d 100644
--- a/pkgs/desktops/gnome/extensions/extensionOverrides.nix
+++ b/pkgs/desktops/gnome/extensions/extensionOverrides.nix
@@ -104,10 +104,6 @@ super: lib.trivial.pipe super [
         nautilus_gsettings_path = "${glib.getSchemaPath gnome.nautilus}";
       })
     ];
-    postFixup = ''
-      wrapGApp "$out/share/gnome-shell/extensions/gtk4-ding@smedius.gitlab.com/app/ding.js"
-      wrapGApp "$out/share/gnome-shell/extensions/gtk4-ding@smedius.gitlab.com/app/createThumbnail.js"
-    '';
   }))
 
   (patchExtension "pano@elhan.io" (old: {
diff --git a/pkgs/desktops/gnome/extensions/extensionOverridesPatches/gtk4-ding_at_smedius.gitlab.com.patch b/pkgs/desktops/gnome/extensions/extensionOverridesPatches/gtk4-ding_at_smedius.gitlab.com.patch
index d162d76fe191..2d9f6291c5a1 100644
--- a/pkgs/desktops/gnome/extensions/extensionOverridesPatches/gtk4-ding_at_smedius.gitlab.com.patch
+++ b/pkgs/desktops/gnome/extensions/extensionOverridesPatches/gtk4-ding_at_smedius.gitlab.com.patch
@@ -1,30 +1,51 @@
-diff --git a/app/fileItemMenu.js b/app/fileItemMenu.js
-index cadca48..9632ecc 100644
---- a/app/fileItemMenu.js
-+++ b/app/fileItemMenu.js
-@@ -683,7 +683,7 @@ var FileItemMenu = class {
-             return;
-         }
-         let xdgEmailCommand = [];
--        xdgEmailCommand.push('xdg-email');
-+        xdgEmailCommand.push('@xdg_utils@/bin/xdg-email');
-         for (let fileItem of this._desktopManager.getCurrentSelection(false)) {
-             fileItem.unsetSelected();
-             xdgEmailCommand.push('--attach');
+diff --git a/app/createThumbnail.js b/app/createThumbnail.js
+index d070248..f0c2def 100755
+--- a/app/createThumbnail.js
++++ b/app/createThumbnail.js
+@@ -1,4 +1,4 @@
+-#!/usr/bin/gjs
++#!@gjs@/bin/gjs
+ 
+ /* DING: Desktop Icons New Generation for GNOME Shell
+  *
+diff --git a/app/ding.js b/app/ding.js
+index 1062bc7..c312d48 100755
+--- a/app/ding.js
++++ b/app/ding.js
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env -S gjs -m
++#!@gjs@/bin/gjs -m
+ 
+ /* DING: Desktop Icons New Generation for GNOME Shell
+  *
+diff --git a/app/enums.js b/app/enums.js
+index 2b541f3..594d288 100644
+--- a/app/enums.js
++++ b/app/enums.js
+@@ -124,7 +124,8 @@ export const THUMBNAILS_DIR = '.cache/thumbnails';
+ export const DND_HOVER_TIMEOUT = 500; // In milliseconds
+ export const DND_SHELL_HOVER_POLL = 200; // In milliseconds
+ export const TOOLTIP_HOVER_TIMEOUT = 1000; // In milliseconds
+-export const XDG_EMAIL_CMD = 'xdg-email';
++// Currently only used via https://gjs-docs.gnome.org/glib20~2.0/glib.find_program_in_path so using an absolute path is fine
++export const XDG_EMAIL_CMD = '@xdg_utils@/bin/xdg-email';
+ export const XDG_EMAIL_CMD_OPTIONS = '--attach';
+ export const ZIP_CMD = 'zip';
+ export const ZIP_CMD_OPTIONS = '-r';
 diff --git a/app/preferences.js b/app/preferences.js
-index c89271c..29f0db8 100644
+index 6849a86..83a7247 100644
 --- a/app/preferences.js
 +++ b/app/preferences.js
-@@ -31,6 +31,7 @@ var Preferences = class {
-         this._extensionPath = Data.codePath;
+@@ -29,6 +29,7 @@ const Preferences = class {
+         this._programVersion = Data.programversion;
          this._Enums = Data.Enums;
          let schemaSource = GioSSS.get_default();
 +        const schemaSourceNautilus = Gio.SettingsSchemaSource.new_from_directory('@nautilus_gsettings_path@', Gio.SettingsSchemaSource.get_default(), true);
          this._desktopManager = null;
  
          // Gtk
-@@ -38,7 +39,7 @@ var Preferences = class {
-         this.gtkSettings = new Gio.Settings({ settings_schema: schemaGtk });
+@@ -36,7 +37,7 @@ const Preferences = class {
+         this.gtkSettings = new Gio.Settings({settings_schema: schemaGtk});
  
          // Gnome Files
 -        let schemaObj = schemaSource.lookup(this._Enums.SCHEMA_NAUTILUS, true);
@@ -32,8 +53,8 @@ index c89271c..29f0db8 100644
          if (!schemaObj) {
              this.nautilusSettings = null;
              this.CLICK_POLICY_SINGLE = false;
-@@ -47,7 +48,7 @@ var Preferences = class {
-         }
+@@ -48,7 +49,7 @@ const Preferences = class {
+ 
  
          // Compression
 -        const compressionSchema = schemaSource.lookup(this._Enums.SCHEMA_NAUTILUS_COMPRESSION, true);
@@ -42,10 +63,10 @@ index c89271c..29f0db8 100644
              this.nautilusCompression = null;
          else
 diff --git a/dingManager.js b/dingManager.js
-index b738b32..df186e5 100644
+index f1b497f..29f2156 100644
 --- a/dingManager.js
 +++ b/dingManager.js
-@@ -397,7 +397,7 @@ const DingManager = class {
+@@ -401,7 +401,7 @@ const DingManager = class {
      async _doKillAllOldDesktopProcesses() {
          const procFolder = Gio.File.new_for_path('/proc');
          const processes = await FileUtils.enumerateDir(procFolder);
@@ -54,12 +75,26 @@ index b738b32..df186e5 100644
              this.path,
              'app',
              'ding.js',
-@@ -421,7 +421,7 @@ const DingManager = class {
+@@ -425,7 +425,7 @@ const DingManager = class {
                  }
  
                  if (contents.startsWith(thisPath)) {
 -                    let proc = new Gio.Subprocess({argv: ['/bin/kill', filename]});
 +                    let proc = new Gio.Subprocess({argv: ['@util_linux@/bin/kill', filename]});
                      proc.init(null);
-                     print(`Killing old DING process ${filename}`);
+                     console.log(`Killing old DING process ${filename}`);
                      await proc.wait_async_promise(null);
+diff --git a/prefs.js b/prefs.js
+index 5ed03f6..5302836 100644
+--- a/prefs.js
++++ b/prefs.js
+@@ -30,7 +30,8 @@ export default class dingPreferences extends ExtensionPreferences {
+         const schemaSource = GioSSS.get_default();
+         const schemaGtk = schemaSource.lookup(Enums.SCHEMA_GTK, true);
+         const gtkSettings = new Gio.Settings({settings_schema: schemaGtk});
+-        const schemaNautilus = schemaSource.lookup(Enums.SCHEMA_NAUTILUS, true);
++        const schemaSourceNautilus = Gio.SettingsSchemaSource.new_from_directory('@nautilus_gsettings_path@', Gio.SettingsSchemaSource.get_default(), true);
++		const schemaNautilus = schemaSourceNautilus.lookup(Enums.SCHEMA_NAUTILUS, true);
+         const version = this.metadata['version-name'];
+         let nautilusSettings;
+         if (!schemaNautilus)
diff --git a/pkgs/desktops/gnome/extensions/extensions.json b/pkgs/desktops/gnome/extensions/extensions.json
index 6652a91a27e3..25747774408b 100644
--- a/pkgs/desktops/gnome/extensions/extensions.json
+++ b/pkgs/desktops/gnome/extensions/extensions.json
@@ -219,7 +219,7 @@
     "42": {"version": "22", "sha256": "1npc0y8bf5rrwl1v55hlf213pd5vp8wrj6qyhp2yhvz6km1ib6q2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNwZWVkIHVwIHRoZSBnbm9tZS1zaGVsbCBhbmltYXRpb24gc3BlZWQiLAogICJuYW1lIjogIkltcGF0aWVuY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dmeG1vbmsubmV0L2Rpc3QvMGluc3RhbGwvZ25vbWUtc2hlbGwtaW1wYXRpZW5jZS54bWwiLAogICJ1dWlkIjogImltcGF0aWVuY2VAZ2Z4bW9uay5uZXQiLAogICJ2ZXJzaW9uIjogMjIKfQ=="},
     "43": {"version": "22", "sha256": "1npc0y8bf5rrwl1v55hlf213pd5vp8wrj6qyhp2yhvz6km1ib6q2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNwZWVkIHVwIHRoZSBnbm9tZS1zaGVsbCBhbmltYXRpb24gc3BlZWQiLAogICJuYW1lIjogIkltcGF0aWVuY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dmeG1vbmsubmV0L2Rpc3QvMGluc3RhbGwvZ25vbWUtc2hlbGwtaW1wYXRpZW5jZS54bWwiLAogICJ1dWlkIjogImltcGF0aWVuY2VAZ2Z4bW9uay5uZXQiLAogICJ2ZXJzaW9uIjogMjIKfQ=="},
     "44": {"version": "22", "sha256": "1npc0y8bf5rrwl1v55hlf213pd5vp8wrj6qyhp2yhvz6km1ib6q2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNwZWVkIHVwIHRoZSBnbm9tZS1zaGVsbCBhbmltYXRpb24gc3BlZWQiLAogICJuYW1lIjogIkltcGF0aWVuY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dmeG1vbmsubmV0L2Rpc3QvMGluc3RhbGwvZ25vbWUtc2hlbGwtaW1wYXRpZW5jZS54bWwiLAogICJ1dWlkIjogImltcGF0aWVuY2VAZ2Z4bW9uay5uZXQiLAogICJ2ZXJzaW9uIjogMjIKfQ=="},
-    "45": {"version": "23", "sha256": "128n3zcgfwv2xz9ccm2fbb437qbwgjwawa3fay8bz1hrqd60pmpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNwZWVkIHVwIHRoZSBnbm9tZS1zaGVsbCBhbmltYXRpb24gc3BlZWQiLAogICJuYW1lIjogIkltcGF0aWVuY2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmV0LmdmeG1vbmsuaW1wYXRpZW5jZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHA6Ly9nZnhtb25rLm5ldC9kaXN0LzBpbnN0YWxsL2dub21lLXNoZWxsLWltcGF0aWVuY2UueG1sIiwKICAidXVpZCI6ICJpbXBhdGllbmNlQGdmeG1vbmsubmV0IiwKICAidmVyc2lvbiI6IDIzCn0="}
+    "45": {"version": "24", "sha256": "0qdmj4nzc1m7wg2rjzd5zxwgr786rfvdhdd5ivl9rs9raqz7sbq9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNwZWVkIHVwIHRoZSBnbm9tZS1zaGVsbCBhbmltYXRpb24gc3BlZWQiLAogICJuYW1lIjogIkltcGF0aWVuY2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmV0LmdmeG1vbmsuaW1wYXRpZW5jZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHA6Ly9nZnhtb25rLm5ldC9kaXN0LzBpbnN0YWxsL2dub21lLXNoZWxsLWltcGF0aWVuY2UueG1sIiwKICAidXVpZCI6ICJpbXBhdGllbmNlQGdmeG1vbmsubmV0IiwKICAidmVyc2lvbiI6IDI0Cn0="}
   }}
 , {"uuid": "windowoverlay-icons@sustmidown.centrum.cz", "name": "WindowOverlay Icons", "pname": "windowoverlay-icons", "description": "Add application icons to window overview", "link": "https://extensions.gnome.org/extension/302/windowoverlay-icons/", "shell_version_map": {
     "38": {"version": "37", "sha256": "108a5i5v62a9i61av5pib3b0hcpmb6pw3np7c29jfngs25n14wd3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhcHBsaWNhdGlvbiBpY29ucyB0byB3aW5kb3cgb3ZlcnZpZXciLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3aW5kb3dvdmVybGF5LWljb25zIiwKICAibmFtZSI6ICJXaW5kb3dPdmVybGF5IEljb25zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpbmRvd292ZXJsYXktaWNvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdXN0bWkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpbmRvd292ZXJsYXktaWNvbnMiLAogICJ1dWlkIjogIndpbmRvd292ZXJsYXktaWNvbnNAc3VzdG1pZG93bi5jZW50cnVtLmN6IiwKICAidmVyc2lvbiI6IDM3Cn0="}
@@ -283,7 +283,7 @@
     "42": {"version": "23", "sha256": "0rq7q1h2vr8f44b5vgyrhbhr3d1hir173kk6c2zl81kj77nvna0b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRlcyB1cHRpbWUgaW4gc3RhdHVzIGFyZWEuIFdoZW4gY2xpY2tlZCwgYSBwb3B1cCBtZW51IGluZGljYXRlcyB0aGUgZGF0ZSB3aGVuIHRoZSBzeXN0ZW0gd2FzIHN0YXJ0ZWQuIiwKICAibmFtZSI6ICJVcHRpbWUgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0duaW91cmYvVXB0aW1lLUluZGljYXRvciIsCiAgInV1aWQiOiAidXB0aW1lLWluZGljYXRvckBnbmlvdXJmZ25pb3VyZi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjMKfQ=="},
     "43": {"version": "23", "sha256": "0rq7q1h2vr8f44b5vgyrhbhr3d1hir173kk6c2zl81kj77nvna0b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRlcyB1cHRpbWUgaW4gc3RhdHVzIGFyZWEuIFdoZW4gY2xpY2tlZCwgYSBwb3B1cCBtZW51IGluZGljYXRlcyB0aGUgZGF0ZSB3aGVuIHRoZSBzeXN0ZW0gd2FzIHN0YXJ0ZWQuIiwKICAibmFtZSI6ICJVcHRpbWUgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0duaW91cmYvVXB0aW1lLUluZGljYXRvciIsCiAgInV1aWQiOiAidXB0aW1lLWluZGljYXRvckBnbmlvdXJmZ25pb3VyZi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjMKfQ=="},
     "44": {"version": "23", "sha256": "0rq7q1h2vr8f44b5vgyrhbhr3d1hir173kk6c2zl81kj77nvna0b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRlcyB1cHRpbWUgaW4gc3RhdHVzIGFyZWEuIFdoZW4gY2xpY2tlZCwgYSBwb3B1cCBtZW51IGluZGljYXRlcyB0aGUgZGF0ZSB3aGVuIHRoZSBzeXN0ZW0gd2FzIHN0YXJ0ZWQuIiwKICAibmFtZSI6ICJVcHRpbWUgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0duaW91cmYvVXB0aW1lLUluZGljYXRvciIsCiAgInV1aWQiOiAidXB0aW1lLWluZGljYXRvckBnbmlvdXJmZ25pb3VyZi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjMKfQ=="},
-    "45": {"version": "25", "sha256": "0i74nydsslrvsz359z1ss5k200jlb0p360mc4h57j6ai8ipj6gg3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRlcyB1cHRpbWUgaW4gc3RhdHVzIGFyZWEuIFdoZW4gY2xpY2tlZCwgYSBwb3B1cCBtZW51IGluZGljYXRlcyB0aGUgZGF0ZSB3aGVuIHRoZSBzeXN0ZW0gd2FzIHN0YXJ0ZWQuIiwKICAibmFtZSI6ICJVcHRpbWUgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0duaW91cmYvVXB0aW1lLUluZGljYXRvciIsCiAgInV1aWQiOiAidXB0aW1lLWluZGljYXRvckBnbmlvdXJmZ25pb3VyZi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjUKfQ=="}
+    "45": {"version": "26", "sha256": "1vh7cqlbd4lv8g4ymz541scjc1d8g8jyvs7mabrhkicmgmydnj1v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRlcyB1cHRpbWUgaW4gc3RhdHVzIGFyZWEuIFdoZW4gY2xpY2tlZCwgYSBwb3B1cCBtZW51IGluZGljYXRlcyB0aGUgZGF0ZSB3aGVuIHRoZSBzeXN0ZW0gd2FzIHN0YXJ0ZWQuIiwKICAibmFtZSI6ICJVcHRpbWUgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HbmlvdXJmL1VwdGltZS1JbmRpY2F0b3IiLAogICJ1dWlkIjogInVwdGltZS1pbmRpY2F0b3JAZ25pb3VyZmduaW91cmYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDI2Cn0="}
   }}
 , {"uuid": "caffeine@patapon.info", "name": "Caffeine", "pname": "caffeine", "description": "Disable the screensaver and auto suspend", "link": "https://extensions.gnome.org/extension/517/caffeine/", "shell_version_map": {
     "38": {"version": "37", "sha256": "05g1910jcwkjl9gmvnk57ip20sbzy09mk4v6q2fm0pg8398v0vhf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgdGhlIHNjcmVlbnNhdmVyIGFuZCBhdXRvIHN1c3BlbmQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJuYW1lIjogIkNhZmZlaW5lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNhZmZlaW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZW9ucGF0YXBvbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJ1dWlkIjogImNhZmZlaW5lQHBhdGFwb24uaW5mbyIsCiAgInZlcnNpb24iOiAzNwp9"},
@@ -332,7 +332,7 @@
     "42": {"version": "37", "sha256": "19n83bachj4b6lvfsp6j4gpgm9wahxlz1is2954hw4d45m5yzfbn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vdG9kby50eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi8tL2Jsb2IvbWFzdGVyL0NIQU5HRUxPRy5tZCIsCiAgIm5hbWUiOiAiVG9kby50eHQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3RvZG8udHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi90b2RvLXR4dC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInRvZG8udHh0QGJhcnQubGliZXJ0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzNwp9"},
     "43": {"version": "40", "sha256": "0ly27qxr126ffhpx8hvvyz6q2179kpq1q7hjy1wja6zflwcc94jf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vdG9kby50eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi8tL2Jsb2IvbWFzdGVyL0NIQU5HRUxPRy5tZCIsCiAgImdldHRleHQtZG9tYWluIjogInRvZG90eHQiLAogICJuYW1lIjogIlRvZG8udHh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS90b2RvLnR4dC1nbm9tZS1zaGVsbC1leHRlbnNpb24vdG9kby10eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0b2RvLnR4dEBiYXJ0LmxpYmVydC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDAKfQ=="},
     "44": {"version": "40", "sha256": "0ly27qxr126ffhpx8hvvyz6q2179kpq1q7hjy1wja6zflwcc94jf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vdG9kby50eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi8tL2Jsb2IvbWFzdGVyL0NIQU5HRUxPRy5tZCIsCiAgImdldHRleHQtZG9tYWluIjogInRvZG90eHQiLAogICJuYW1lIjogIlRvZG8udHh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS90b2RvLnR4dC1nbm9tZS1zaGVsbC1leHRlbnNpb24vdG9kby10eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0b2RvLnR4dEBiYXJ0LmxpYmVydC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDAKfQ=="},
-    "45": {"version": "42", "sha256": "1p0kklyz8lnyshljqrx0p14dm59dq0idyriiv5dw1wwsa4pb0s22", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vdG9kby50eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi8tL2Jsb2IvbWFzdGVyL0NIQU5HRUxPRy5tZCIsCiAgImdldHRleHQtZG9tYWluIjogInRvZG90eHQiLAogICJuYW1lIjogIlRvZG8udHh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3RvZG8udHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi90b2RvLXR4dC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInRvZG8udHh0QGJhcnQubGliZXJ0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0Mgp9"}
+    "45": {"version": "43", "sha256": "1xmsvsi23gl44nz6ldgyfp086711m155vz69md3dch1d3ilfhq1h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vdG9kby50eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi8tL2Jsb2IvbWFzdGVyL0NIQU5HRUxPRy5tZCIsCiAgImdldHRleHQtZG9tYWluIjogInRvZG90eHQiLAogICJuYW1lIjogIlRvZG8udHh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3RvZG8udHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi90b2RvLXR4dC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInRvZG8udHh0QGJhcnQubGliZXJ0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0Mwp9"}
   }}
 , {"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=="}
@@ -382,7 +382,7 @@
     "42": {"version": "66", "sha256": "0a1156n4ding1ypjnxm1xz5cqihrf5m2d4bf2zmci29nsjina9c8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgaW5mbyBvbiB2YXJpb3VzIGNyeXB0by1jdXJyZW5jeSBleGNoYW5nZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzIiwKICAiZ2l0LXZlcnNpb24iOiAidjY2IiwKICAibmFtZSI6ICJCaXRjb2luIE1hcmtldHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYml0Y29pbi1tYXJrZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL090dG9BbGxtZW5kaW5nZXIvZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzLyIsCiAgInV1aWQiOiAiYml0Y29pbi1tYXJrZXRzQG90dG9hbGxtZW5kaW5nZXIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2Ngp9"},
     "43": {"version": "67", "sha256": "114kwp1q0qzkd03851mky1syxz8i5zgvazb53rh800wacb4wsh5n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgaW5mbyBvbiB2YXJpb3VzIGNyeXB0by1jdXJyZW5jeSBleGNoYW5nZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzIiwKICAiZ2l0LXZlcnNpb24iOiAidjY3IiwKICAibmFtZSI6ICJCaXRjb2luIE1hcmtldHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYml0Y29pbi1tYXJrZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL090dG9BbGxtZW5kaW5nZXIvZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzLyIsCiAgInV1aWQiOiAiYml0Y29pbi1tYXJrZXRzQG90dG9hbGxtZW5kaW5nZXIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2Nwp9"},
     "44": {"version": "68", "sha256": "1b936kcvc29p19nzwk32bswgjd7bsj5ap47fw65cz81rracb46fi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgaW5mbyBvbiB2YXJpb3VzIGNyeXB0by1jdXJyZW5jeSBleGNoYW5nZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzIiwKICAiZ2l0LXZlcnNpb24iOiAidjY4IiwKICAibmFtZSI6ICJCaXRjb2luIE1hcmtldHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYml0Y29pbi1tYXJrZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL090dG9BbGxtZW5kaW5nZXIvZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzLyIsCiAgInV1aWQiOiAiYml0Y29pbi1tYXJrZXRzQG90dG9hbGxtZW5kaW5nZXIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2OAp9"},
-    "45": {"version": "70", "sha256": "0xn36w185lzx2zxcrr2d8kx5qavn4ymj2yrcdkwdxkl3madg1b29", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgaW5mbyBvbiB2YXJpb3VzIGNyeXB0by1jdXJyZW5jeSBleGNoYW5nZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzIiwKICAiZ2l0LXZlcnNpb24iOiAidjcwIiwKICAibmFtZSI6ICJCaXRjb2luIE1hcmtldHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYml0Y29pbi1tYXJrZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL090dG9BbGxtZW5kaW5nZXIvZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzLyIsCiAgInV1aWQiOiAiYml0Y29pbi1tYXJrZXRzQG90dG9hbGxtZW5kaW5nZXIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3MAp9"}
+    "45": {"version": "71", "sha256": "1g1jglchqyg47a50pgybarmiq5fafvvq0y4y9m8v3ra89w4mh1jq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgaW5mbyBvbiB2YXJpb3VzIGNyeXB0by1jdXJyZW5jeSBleGNoYW5nZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzIiwKICAiZ2l0LXZlcnNpb24iOiAidjcxIiwKICAibmFtZSI6ICJCaXRjb2luIE1hcmtldHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYml0Y29pbi1tYXJrZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL090dG9BbGxtZW5kaW5nZXIvZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzLyIsCiAgInV1aWQiOiAiYml0Y29pbi1tYXJrZXRzQG90dG9hbGxtZW5kaW5nZXIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3MQp9"}
   }}
 , {"uuid": "ShellTile@emasab.it", "name": "ShellTile", "pname": "shelltile", "description": "A tiling window extension for GNOME Shell. Just move a window to the edges of the screen to create a tiling, otherwise move a window over another one, holding down the Control key. Grouped windows minimize, resize, raise and change workspace together. Move or maximize a window to remove it from the group.", "link": "https://extensions.gnome.org/extension/657/shelltile/", "shell_version_map": {
     "38": {"version": "69", "sha256": "1kpsqaq2fcj1z3jcbvgh23c8k6bv9l6vyl05kpw0fclzsmy60mh1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgdGlsaW5nIHdpbmRvdyBleHRlbnNpb24gZm9yIEdOT01FIFNoZWxsLiBKdXN0IG1vdmUgYSB3aW5kb3cgdG8gdGhlIGVkZ2VzIG9mIHRoZSBzY3JlZW4gdG8gY3JlYXRlIGEgdGlsaW5nLCBvdGhlcndpc2UgbW92ZSBhIHdpbmRvdyBvdmVyIGFub3RoZXIgb25lLCBob2xkaW5nIGRvd24gdGhlIENvbnRyb2wga2V5LiBHcm91cGVkIHdpbmRvd3MgbWluaW1pemUsIHJlc2l6ZSwgcmFpc2UgYW5kIGNoYW5nZSB3b3Jrc3BhY2UgdG9nZXRoZXIuIE1vdmUgb3IgbWF4aW1pemUgYSB3aW5kb3cgdG8gcmVtb3ZlIGl0IGZyb20gdGhlIGdyb3VwLiIsCiAgImdldHRleHQtZG9tYWluIjogInNoZWxsdGlsZSIsCiAgIm5hbWUiOiAiU2hlbGxUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNoZWxsdGlsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy44IiwKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZW1hc2FiL3NoZWxsdGlsZSIsCiAgInV1aWQiOiAiU2hlbGxUaWxlQGVtYXNhYi5pdCIsCiAgInZlcnNpb24iOiA2OQp9"}
@@ -394,7 +394,7 @@
     "42": {"version": "42", "sha256": "1qrn9s5jl37gf9har7nybznw4vlxspq17wzc9nk45dfi3y5vf9z9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiBDaGluZXNlQ2FsZW5kYXIgYnkgeXRsaXUwOiBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvTmVpL0NoaW5lc2VDYWxlbmRhci8tL2FyY2hpdmUvMjAyMzEwMjMvQ2hpbmVzZUNhbGVuZGFyLTIwMjMxMDIzLnRhci5neiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImFpbGluIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImx1bmFyY2FsQGFpbGluLm5lbXVpIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL05laS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbHVuYXItY2FsZW5kYXIvLS9pc3N1ZXMiLAogICJ1dWlkIjogImx1bmFyY2FsQGFpbGluLm5lbXVpIiwKICAidmVyc2lvbiI6IDQyCn0="},
     "43": {"version": "42", "sha256": "1qrn9s5jl37gf9har7nybznw4vlxspq17wzc9nk45dfi3y5vf9z9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiBDaGluZXNlQ2FsZW5kYXIgYnkgeXRsaXUwOiBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvTmVpL0NoaW5lc2VDYWxlbmRhci8tL2FyY2hpdmUvMjAyMzEwMjMvQ2hpbmVzZUNhbGVuZGFyLTIwMjMxMDIzLnRhci5neiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImFpbGluIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImx1bmFyY2FsQGFpbGluLm5lbXVpIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL05laS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbHVuYXItY2FsZW5kYXIvLS9pc3N1ZXMiLAogICJ1dWlkIjogImx1bmFyY2FsQGFpbGluLm5lbXVpIiwKICAidmVyc2lvbiI6IDQyCn0="},
     "44": {"version": "42", "sha256": "1qrn9s5jl37gf9har7nybznw4vlxspq17wzc9nk45dfi3y5vf9z9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiBDaGluZXNlQ2FsZW5kYXIgYnkgeXRsaXUwOiBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvTmVpL0NoaW5lc2VDYWxlbmRhci8tL2FyY2hpdmUvMjAyMzEwMjMvQ2hpbmVzZUNhbGVuZGFyLTIwMjMxMDIzLnRhci5neiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImFpbGluIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImx1bmFyY2FsQGFpbGluLm5lbXVpIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL05laS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbHVuYXItY2FsZW5kYXIvLS9pc3N1ZXMiLAogICJ1dWlkIjogImx1bmFyY2FsQGFpbGluLm5lbXVpIiwKICAidmVyc2lvbiI6IDQyCn0="},
-    "45": {"version": "41", "sha256": "1r3mach6hm61kb044cnrw9g6wpxpjbw8zh6ccccn4l629l31sy4r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiBDaGluZXNlQ2FsZW5kYXIgYnkgeXRsaXUwOiBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvTmVpL0NoaW5lc2VDYWxlbmRhci8tL2FyY2hpdmUvMjAyMzEwMjMvQ2hpbmVzZUNhbGVuZGFyLTIwMjMxMDIzLnRhci5neiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImFpbGluIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImx1bmFyY2FsQGFpbGluLm5lbXVpIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvTmVpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1sdW5hci1jYWxlbmRhci8tL2lzc3VlcyIsCiAgInV1aWQiOiAibHVuYXJjYWxAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogNDEKfQ=="}
+    "45": {"version": "43", "sha256": "13gmwz3195jpz4cjkq2rk4a2l5kidnqr0vqjddnjj5f9xsp71mk0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiBDaGluZXNlQ2FsZW5kYXIgYnkgeXRsaXUwOiBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvTmVpL0NoaW5lc2VDYWxlbmRhci8tL2FyY2hpdmUvMjAyMzEwMjMvQ2hpbmVzZUNhbGVuZGFyLTIwMjMxMDIzLnRhci5neiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImFpbGluIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImx1bmFyY2FsQGFpbGluLm5lbXVpIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL05laS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbHVuYXItY2FsZW5kYXIvLS9pc3N1ZXMiLAogICJ1dWlkIjogImx1bmFyY2FsQGFpbGluLm5lbXVpIiwKICAidmVyc2lvbiI6IDQzCn0="}
   }}
 , {"uuid": "EasyScreenCast@iacopodeenosee.gmail.com", "name": "EasyScreenCast", "pname": "easyscreencast", "description": "This extension simplifies the use of the video recording function integrated in gnome shell, allows quickly to change the various settings of the desktop recording.\n\nSOURCE CODE ->  https://github.com/EasyScreenCast/EasyScreenCast\n\nVIDEO ->  https://youtu.be/81E9AruraKU\n\n**NOTICE**\nif an error occurs during the update is recommended to reload GNOME Shell (Alt + F2, 'r') and reload the extension's installation page.", "link": "https://extensions.gnome.org/extension/690/easyscreencast/", "shell_version_map": {
     "38": {"version": "47", "sha256": "0fkp5qg6xg4jh8zamba7gva5imp83pg4cy4v8q586dcli2r8yzmn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNpbXBsaWZpZXMgdGhlIHVzZSBvZiB0aGUgdmlkZW8gcmVjb3JkaW5nIGZ1bmN0aW9uIGludGVncmF0ZWQgaW4gZ25vbWUgc2hlbGwsIGFsbG93cyBxdWlja2x5IHRvIGNoYW5nZSB0aGUgdmFyaW91cyBzZXR0aW5ncyBvZiB0aGUgZGVza3RvcCByZWNvcmRpbmcuXG5cblNPVVJDRSBDT0RFIC0+ICBodHRwczovL2dpdGh1Yi5jb20vRWFzeVNjcmVlbkNhc3QvRWFzeVNjcmVlbkNhc3RcblxuVklERU8gLT4gIGh0dHBzOi8veW91dHUuYmUvODFFOUFydXJhS1VcblxuKipOT1RJQ0UqKlxuaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgdXBkYXRlIGlzIHJlY29tbWVuZGVkIHRvIHJlbG9hZCBHTk9NRSBTaGVsbCAoQWx0ICsgRjIsICdyJykgYW5kIHJlbG9hZCB0aGUgZXh0ZW5zaW9uJ3MgaW5zdGFsbGF0aW9uIHBhZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiRWFzeVNjcmVlbkNhc3RAaWFjb3BvZGVlbm9zZWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJFYXN5U2NyZWVuQ2FzdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5FYXN5U2NyZWVuQ2FzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRWFzeVNjcmVlbkNhc3QvRWFzeVNjcmVlbkNhc3QiLAogICJ1dWlkIjogIkVhc3lTY3JlZW5DYXN0QGlhY29wb2RlZW5vc2VlLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0Nwp9"},
@@ -410,7 +410,8 @@
     "41": {"version": "32", "sha256": "0lfklqnwjrvd0ndsbaspr58d5grf33pbaghw8pbhgf564mfj5946", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB3b3Jrc3BhY2VzIGJ5IHNjcm9sbGluZyBvdmVyIHRoZSB0b3AgcGFuZWwiLAogICJuYW1lIjogIlRvcCBQYW5lbCBXb3Jrc3BhY2UgU2Nyb2xsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJ0aW1AZ2Z4bW9uay5uZXQiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5ldC5nZnhtb25rLnNjcm9sbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dmeG1vbmsvZ25vbWUtc2hlbGwtc2Nyb2xsLXdvcmtzcGFjZXMiLAogICJ1dWlkIjogInNjcm9sbC13b3Jrc3BhY2VzQGdmeG1vbmsubmV0IiwKICAidmVyc2lvbiI6IDMyCn0="},
     "42": {"version": "32", "sha256": "0lfklqnwjrvd0ndsbaspr58d5grf33pbaghw8pbhgf564mfj5946", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB3b3Jrc3BhY2VzIGJ5IHNjcm9sbGluZyBvdmVyIHRoZSB0b3AgcGFuZWwiLAogICJuYW1lIjogIlRvcCBQYW5lbCBXb3Jrc3BhY2UgU2Nyb2xsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJ0aW1AZ2Z4bW9uay5uZXQiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5ldC5nZnhtb25rLnNjcm9sbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dmeG1vbmsvZ25vbWUtc2hlbGwtc2Nyb2xsLXdvcmtzcGFjZXMiLAogICJ1dWlkIjogInNjcm9sbC13b3Jrc3BhY2VzQGdmeG1vbmsubmV0IiwKICAidmVyc2lvbiI6IDMyCn0="},
     "43": {"version": "34", "sha256": "1kjxk2jq3pg3h729xhp5x00irjayvkmqwgphp5a6mjgx9xizrd07", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB3b3Jrc3BhY2VzIGJ5IHNjcm9sbGluZyBvdmVyIHRoZSB0b3AgcGFuZWwiLAogICJuYW1lIjogIlRvcCBQYW5lbCBXb3Jrc3BhY2UgU2Nyb2xsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJ0aW1AZ2Z4bW9uay5uZXQiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5ldC5nZnhtb25rLnNjcm9sbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZnhtb25rL2dub21lLXNoZWxsLXNjcm9sbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJzY3JvbGwtd29ya3NwYWNlc0BnZnhtb25rLm5ldCIsCiAgInZlcnNpb24iOiAzNAp9"},
-    "44": {"version": "34", "sha256": "1kjxk2jq3pg3h729xhp5x00irjayvkmqwgphp5a6mjgx9xizrd07", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB3b3Jrc3BhY2VzIGJ5IHNjcm9sbGluZyBvdmVyIHRoZSB0b3AgcGFuZWwiLAogICJuYW1lIjogIlRvcCBQYW5lbCBXb3Jrc3BhY2UgU2Nyb2xsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJ0aW1AZ2Z4bW9uay5uZXQiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5ldC5nZnhtb25rLnNjcm9sbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZnhtb25rL2dub21lLXNoZWxsLXNjcm9sbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJzY3JvbGwtd29ya3NwYWNlc0BnZnhtb25rLm5ldCIsCiAgInZlcnNpb24iOiAzNAp9"}
+    "44": {"version": "34", "sha256": "1kjxk2jq3pg3h729xhp5x00irjayvkmqwgphp5a6mjgx9xizrd07", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB3b3Jrc3BhY2VzIGJ5IHNjcm9sbGluZyBvdmVyIHRoZSB0b3AgcGFuZWwiLAogICJuYW1lIjogIlRvcCBQYW5lbCBXb3Jrc3BhY2UgU2Nyb2xsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJ0aW1AZ2Z4bW9uay5uZXQiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5ldC5nZnhtb25rLnNjcm9sbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZnhtb25rL2dub21lLXNoZWxsLXNjcm9sbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJzY3JvbGwtd29ya3NwYWNlc0BnZnhtb25rLm5ldCIsCiAgInZlcnNpb24iOiAzNAp9"},
+    "45": {"version": "36", "sha256": "1jvsw57kmf9ha82krcg4cxfj8nk2gpzy43z8jm07j9raia41mzm8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB3b3Jrc3BhY2VzIGJ5IHNjcm9sbGluZyBvdmVyIHRoZSB0b3AgcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzY3JvbGwtd29ya3NwYWNlcyIsCiAgIm5hbWUiOiAiVG9wIFBhbmVsIFdvcmtzcGFjZSBTY3JvbGwiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgInRpbUBnZnhtb25rLm5ldCIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmV0LmdmeG1vbmsuc2Nyb2xsLXdvcmtzcGFjZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2Z4bW9uay9nbm9tZS1zaGVsbC1zY3JvbGwtd29ya3NwYWNlcyIsCiAgInV1aWQiOiAic2Nyb2xsLXdvcmtzcGFjZXNAZ2Z4bW9uay5uZXQiLAogICJ2ZXJzaW9uIjogMzYKfQ=="}
   }}
 , {"uuid": "all-windows@ezix.org", "name": "All Windows", "pname": "all-windows", "description": "List open windows of all workspaces", "link": "https://extensions.gnome.org/extension/704/all-windows/", "shell_version_map": {
     "40": {"version": "13", "sha256": "19cxrgxpim2dca6llbi8cr34hjx3pab2i4687803r96cp2hsg07l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3Qgb3BlbiB3aW5kb3dzIG9mIGFsbCB3b3Jrc3BhY2VzIiwKICAibmFtZSI6ICJBbGwgV2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHlvbmVsL2FsbC13aW5kb3dzIiwKICAidXVpZCI6ICJhbGwtd2luZG93c0Bleml4Lm9yZyIsCiAgInZlcnNpb24iOiAxMwp9"},
@@ -528,7 +529,8 @@
   }}
 , {"uuid": "time_tracker_jsnjack@gmail.com", "name": "Time Tracker", "pname": "time-tracker", "description": "Helps track time", "link": "https://extensions.gnome.org/extension/823/time-tracker/", "shell_version_map": {
     "40": {"version": "23", "sha256": "1q1jh3s6k6pmjssjmhzajmcr1qxdz4854fyfja0vbwcvxd6a8ff2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhlbHBzIHRyYWNrIHRpbWUiLAogICJuYW1lIjogIlRpbWUgVHJhY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aW1lLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pzbmphY2svdGltZS10cmFja2VyLyIsCiAgInV1aWQiOiAidGltZV90cmFja2VyX2pzbmphY2tAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="},
-    "41": {"version": "23", "sha256": "1q1jh3s6k6pmjssjmhzajmcr1qxdz4854fyfja0vbwcvxd6a8ff2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhlbHBzIHRyYWNrIHRpbWUiLAogICJuYW1lIjogIlRpbWUgVHJhY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aW1lLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pzbmphY2svdGltZS10cmFja2VyLyIsCiAgInV1aWQiOiAidGltZV90cmFja2VyX2pzbmphY2tAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}
+    "41": {"version": "23", "sha256": "1q1jh3s6k6pmjssjmhzajmcr1qxdz4854fyfja0vbwcvxd6a8ff2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhlbHBzIHRyYWNrIHRpbWUiLAogICJuYW1lIjogIlRpbWUgVHJhY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aW1lLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pzbmphY2svdGltZS10cmFja2VyLyIsCiAgInV1aWQiOiAidGltZV90cmFja2VyX2pzbmphY2tAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="},
+    "45": {"version": "25", "sha256": "1x2h3glnkkkngbs2yfsyxhy64279mg4iwk81gc5n7pcblgqmk1i9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhlbHBzIHRyYWNrIHRpbWUiLAogICJuYW1lIjogIlRpbWUgVHJhY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aW1lLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vanNuamFjay90aW1lLXRyYWNrZXIvIiwKICAidXVpZCI6ICJ0aW1lX3RyYWNrZXJfanNuamFja0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjUKfQ=="}
   }}
 , {"uuid": "pwcalc@thilomaurer.de", "name": "Password Calculator", "pname": "password-calculator", "description": "This extension calculates strong passwords for each alias from your single secret. No need to remember dozens of passwords any longer. No need for a password manager any longer. Full freedom in choosing aliases and secret, e.g. alias: \"username@google.com#2014\", secret: \"saFe⚿in漢字\". Recent aliases are kept in a easily accessible drop-down. You may choose between HMAC_SHA1 and SHA1. The formula is as simple as \"[secret][alias]\" → SHA1 → BASE64 ", "link": "https://extensions.gnome.org/extension/825/password-calculator/", "shell_version_map": {
     "40": {"version": "28", "sha256": "1yzw6jky36z5ivx7k9mpjq3hr87mk3w17a43pnisc4k40xisq1m6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNhbGN1bGF0ZXMgc3Ryb25nIHBhc3N3b3JkcyBmb3IgZWFjaCBhbGlhcyBmcm9tIHlvdXIgc2luZ2xlIHNlY3JldC4gTm8gbmVlZCB0byByZW1lbWJlciBkb3plbnMgb2YgcGFzc3dvcmRzIGFueSBsb25nZXIuIE5vIG5lZWQgZm9yIGEgcGFzc3dvcmQgbWFuYWdlciBhbnkgbG9uZ2VyLiBGdWxsIGZyZWVkb20gaW4gY2hvb3NpbmcgYWxpYXNlcyBhbmQgc2VjcmV0LCBlLmcuIGFsaWFzOiBcInVzZXJuYW1lQGdvb2dsZS5jb20jMjAxNFwiLCBzZWNyZXQ6IFwic2FGZVx1MjZiZmluXHU2ZjIyXHU1YjU3XCIuIFJlY2VudCBhbGlhc2VzIGFyZSBrZXB0IGluIGEgZWFzaWx5IGFjY2Vzc2libGUgZHJvcC1kb3duLiBZb3UgbWF5IGNob29zZSBiZXR3ZWVuIEhNQUNfU0hBMSBhbmQgU0hBMS4gVGhlIGZvcm11bGEgaXMgYXMgc2ltcGxlIGFzIFwiW3NlY3JldF1bYWxpYXNdXCIgXHUyMTkyIFNIQTEgXHUyMTkyIEJBU0U2NCAiLAogICJuYW1lIjogIlBhc3N3b3JkIENhbGN1bGF0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucHdjYWxjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RoaWxvbWF1cmVyL3B3Y2FsYyIsCiAgInV1aWQiOiAicHdjYWxjQHRoaWxvbWF1cmVyLmRlIiwKICAidmVyc2lvbiI6IDI4Cn0="},
@@ -652,7 +654,7 @@
     "42": {"version": "19", "sha256": "18l04cf2sv1wrsqcif5wsrmcsw6nsh7y459a7xjhl06hzigf5k0h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd29ybGQgY2xvY2sgZm9yIHRoZSBwYW5lbFxuXG5JbnN0YWxsIGdub21lLWNsb2NrcyB0byBnZXQgc3RhcnRlZCEgKEZsYXRwYWsgb3IgU25hcCB2ZXJzaW9ucyBOT1Qgc3VwcG9ydGVkKSBcblxuR25vbWUgXHUyMjY0My4xND8gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjk3L3BhbmVsLXdvcmxkLWNsb2NrLyIsCiAgIm5hbWUiOiAiUGFuZWwgV29ybGQgQ2xvY2sgKExpdGUpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmxkLWNsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ3b3JsZF9jbG9ja19saXRlQGFpbGluLm5lbXVpIiwKICAidmVyc2lvbiI6IDE5Cn0="},
     "43": {"version": "19", "sha256": "18l04cf2sv1wrsqcif5wsrmcsw6nsh7y459a7xjhl06hzigf5k0h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd29ybGQgY2xvY2sgZm9yIHRoZSBwYW5lbFxuXG5JbnN0YWxsIGdub21lLWNsb2NrcyB0byBnZXQgc3RhcnRlZCEgKEZsYXRwYWsgb3IgU25hcCB2ZXJzaW9ucyBOT1Qgc3VwcG9ydGVkKSBcblxuR25vbWUgXHUyMjY0My4xND8gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjk3L3BhbmVsLXdvcmxkLWNsb2NrLyIsCiAgIm5hbWUiOiAiUGFuZWwgV29ybGQgQ2xvY2sgKExpdGUpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmxkLWNsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ3b3JsZF9jbG9ja19saXRlQGFpbGluLm5lbXVpIiwKICAidmVyc2lvbiI6IDE5Cn0="},
     "44": {"version": "24", "sha256": "0s1d81fxndbsx1cnh05zpwhcr5p5gqniszm0c8q8vm1m1jm5d92g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd29ybGQgY2xvY2sgZm9yIHRoZSBwYW5lbFxuXG5JbnN0YWxsIGdub21lLWNsb2NrcyB0byBnZXQgc3RhcnRlZCEgKEZsYXRwYWsgb3IgU25hcCB2ZXJzaW9ucyBOT1Qgc3VwcG9ydGVkKSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImFpbGluIgogIH0sCiAgIm5hbWUiOiAiUGFuZWwgV29ybGQgQ2xvY2sgKExpdGUpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmxkLWNsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL05laS9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGFuZWwtd29ybGQtY2xvY2stbGl0ZS8tL2lzc3VlcyIsCiAgInV1aWQiOiAid29ybGRfY2xvY2tfbGl0ZUBhaWxpbi5uZW11aSIsCiAgInZlcnNpb24iOiAyNAp9"},
-    "45": {"version": "26", "sha256": "0zn8cgy78cyhd0qm3rs2bkn5bds8ipbbqpan9r9d1jpps1fa7cpm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd29ybGQgY2xvY2sgZm9yIHRoZSBwYW5lbFxuXG5JbnN0YWxsIGdub21lLWNsb2NrcyB0byBnZXQgc3RhcnRlZCEgKEZsYXRwYWsgb3IgU25hcCB2ZXJzaW9ucyBOT1Qgc3VwcG9ydGVkKSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImFpbGluIgogIH0sCiAgIm5hbWUiOiAiUGFuZWwgV29ybGQgQ2xvY2sgKExpdGUpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmxkLWNsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL05laS9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGFuZWwtd29ybGQtY2xvY2stbGl0ZS8tL2lzc3VlcyIsCiAgInV1aWQiOiAid29ybGRfY2xvY2tfbGl0ZUBhaWxpbi5uZW11aSIsCiAgInZlcnNpb24iOiAyNgp9"}
+    "45": {"version": "28", "sha256": "1x89x8a6id3nb270lc8zg6bvqimwpan09041j9xdya7wh1mb9cv3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd29ybGQgY2xvY2sgZm9yIHRoZSBwYW5lbC4gVGltZSB6b25lcy9DaXRpZXMvVVRDL0FvRS5cblxuSW5zdGFsbCBnbm9tZS1jbG9ja3MgdG8gZ2V0IHN0YXJ0ZWQhIChGbGF0cGFrIG9yIFNuYXAgdmVyc2lvbnMgTk9UIHN1cHBvcnRlZCkiLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJhaWxpbiIKICB9LAogICJuYW1lIjogIlBhbmVsIFdvcmxkIENsb2NrIChMaXRlKSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3JsZC1jbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvTmVpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1wYW5lbC13b3JsZC1jbG9jay1saXRlLy0vaXNzdWVzIiwKICAidXVpZCI6ICJ3b3JsZF9jbG9ja19saXRlQGFpbGluLm5lbXVpIiwKICAidmVyc2lvbiI6IDI4Cn0="}
   }}
 , {"uuid": "dim-on-battery@nailfarmer.nailfarmer.com", "name": "Dim On Battery Power", "pname": "dim-on-battery-power", "description": "Automatically dims the screen when the machine is running on battery power.", "link": "https://extensions.gnome.org/extension/947/dim-on-battery-power/", "shell_version_map": {
     "38": {"version": "27", "sha256": "1lqfsm349bwhbidv5g9sagfncysng3qf0fypnf4sqp0gwaxx6yy4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZGltcyB0aGUgc2NyZWVuIHdoZW4gdGhlIG1hY2hpbmUgaXMgcnVubmluZyBvbiBiYXR0ZXJ5IHBvd2VyLiIsCiAgIm5hbWUiOiAiRGltIE9uIEJhdHRlcnkgUG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9uYWlsZmFybWVyL2dub21lLXNoZWxsLWRpbS1vbi1iYXR0ZXJ5LWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZGltLW9uLWJhdHRlcnlAbmFpbGZhcm1lci5uYWlsZmFybWVyLmNvbSIsCiAgInZlcnNpb24iOiAyNwp9"},
@@ -686,7 +688,8 @@
     "41": {"version": "17", "sha256": "18dx4zwj3ldcwqw3z1f8x4z2q9g7vp53cl7v6lw4dvz9kv47swbi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGtleWJvYXJkIG1vZGlmaWVycyBzdGF0dXMuIEl0J3MgdXNlZnVsIHdoZW4gc3RpY2t5IGtleXMgYXJlIGFjdGl2ZS4iLAogICJuYW1lIjogIktleWJvYXJkIE1vZGlmaWVycyBTdGF0dXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic25lZXRzaGVyQGxvY2FsaG9zdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc25lZXRzaGVyL0tleWJvYXJkLU1vZGlmaWVycy1TdGF0dXMiLAogICJ1dWlkIjogImtleWJvYXJkX21vZGlmaWVyc19zdGF0dXNAc25lZXRzaGVyIiwKICAidmVyc2lvbiI6IDE3Cn0="},
     "42": {"version": "17", "sha256": "18dx4zwj3ldcwqw3z1f8x4z2q9g7vp53cl7v6lw4dvz9kv47swbi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGtleWJvYXJkIG1vZGlmaWVycyBzdGF0dXMuIEl0J3MgdXNlZnVsIHdoZW4gc3RpY2t5IGtleXMgYXJlIGFjdGl2ZS4iLAogICJuYW1lIjogIktleWJvYXJkIE1vZGlmaWVycyBTdGF0dXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic25lZXRzaGVyQGxvY2FsaG9zdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc25lZXRzaGVyL0tleWJvYXJkLU1vZGlmaWVycy1TdGF0dXMiLAogICJ1dWlkIjogImtleWJvYXJkX21vZGlmaWVyc19zdGF0dXNAc25lZXRzaGVyIiwKICAidmVyc2lvbiI6IDE3Cn0="},
     "43": {"version": "17", "sha256": "18dx4zwj3ldcwqw3z1f8x4z2q9g7vp53cl7v6lw4dvz9kv47swbi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGtleWJvYXJkIG1vZGlmaWVycyBzdGF0dXMuIEl0J3MgdXNlZnVsIHdoZW4gc3RpY2t5IGtleXMgYXJlIGFjdGl2ZS4iLAogICJuYW1lIjogIktleWJvYXJkIE1vZGlmaWVycyBTdGF0dXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic25lZXRzaGVyQGxvY2FsaG9zdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc25lZXRzaGVyL0tleWJvYXJkLU1vZGlmaWVycy1TdGF0dXMiLAogICJ1dWlkIjogImtleWJvYXJkX21vZGlmaWVyc19zdGF0dXNAc25lZXRzaGVyIiwKICAidmVyc2lvbiI6IDE3Cn0="},
-    "44": {"version": "17", "sha256": "18dx4zwj3ldcwqw3z1f8x4z2q9g7vp53cl7v6lw4dvz9kv47swbi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGtleWJvYXJkIG1vZGlmaWVycyBzdGF0dXMuIEl0J3MgdXNlZnVsIHdoZW4gc3RpY2t5IGtleXMgYXJlIGFjdGl2ZS4iLAogICJuYW1lIjogIktleWJvYXJkIE1vZGlmaWVycyBTdGF0dXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic25lZXRzaGVyQGxvY2FsaG9zdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc25lZXRzaGVyL0tleWJvYXJkLU1vZGlmaWVycy1TdGF0dXMiLAogICJ1dWlkIjogImtleWJvYXJkX21vZGlmaWVyc19zdGF0dXNAc25lZXRzaGVyIiwKICAidmVyc2lvbiI6IDE3Cn0="}
+    "44": {"version": "17", "sha256": "18dx4zwj3ldcwqw3z1f8x4z2q9g7vp53cl7v6lw4dvz9kv47swbi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGtleWJvYXJkIG1vZGlmaWVycyBzdGF0dXMuIEl0J3MgdXNlZnVsIHdoZW4gc3RpY2t5IGtleXMgYXJlIGFjdGl2ZS4iLAogICJuYW1lIjogIktleWJvYXJkIE1vZGlmaWVycyBTdGF0dXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic25lZXRzaGVyQGxvY2FsaG9zdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc25lZXRzaGVyL0tleWJvYXJkLU1vZGlmaWVycy1TdGF0dXMiLAogICJ1dWlkIjogImtleWJvYXJkX21vZGlmaWVyc19zdGF0dXNAc25lZXRzaGVyIiwKICAidmVyc2lvbiI6IDE3Cn0="},
+    "45": {"version": "20", "sha256": "1kvh8f6xfx4wpinkcshwsvcwp491ikj05bcvabcny2z8y7im3iw7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGtleWJvYXJkIG1vZGlmaWVycyBzdGF0dXMuIEl0J3MgdXNlZnVsIHdoZW4gc3RpY2t5IGtleXMgYXJlIGFjdGl2ZS4iLAogICJuYW1lIjogIktleWJvYXJkIE1vZGlmaWVycyBTdGF0dXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic25lZXRzaGVyQGxvY2FsaG9zdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zbmVldHNoZXIvS2V5Ym9hcmQtTW9kaWZpZXJzLVN0YXR1cyIsCiAgInV1aWQiOiAia2V5Ym9hcmRfbW9kaWZpZXJzX3N0YXR1c0BzbmVldHNoZXIiLAogICJ2ZXJzaW9uIjogMjAKfQ=="}
   }}
 , {"uuid": "thinkpadthermal@moonlight.drive.vk.gmail.com", "name": "ThinkPad Thermal", "pname": "thinkpad-thermal", "description": "ThinkPad thermal monitor, display ThinkPad thermal and fan status using /proc/acpi/ibm/thermal and /proc/acpi/ibm/fan.", "link": "https://extensions.gnome.org/extension/986/thinkpad-thermal/", "shell_version_map": {
     "42": {"version": "17", "sha256": "0q8ah8ms6iv24fyl684hbivbnw5d9k4as991zng9k9ywsjlpp40d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaW5rUGFkIHRoZXJtYWwgbW9uaXRvciwgZGlzcGxheSBUaGlua1BhZCB0aGVybWFsIGFuZCBmYW4gc3RhdHVzIHVzaW5nIC9wcm9jL2FjcGkvaWJtL3RoZXJtYWwgYW5kIC9wcm9jL2FjcGkvaWJtL2Zhbi4iLAogICJuYW1lIjogIlRoaW5rUGFkIFRoZXJtYWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mbXVqYWtpdHovdGhpbmtwYWQtdGhlcm1hbCIsCiAgInV1aWQiOiAidGhpbmtwYWR0aGVybWFsQG1vb25saWdodC5kcml2ZS52ay5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="},
@@ -903,7 +906,7 @@
     "44": {"version": "18", "sha256": "1kif3hd58yqa7y05w08rbkg7ipj9f8569gcjb1kz7m3fajysjx3x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubXV0ZSB0aGUgbWljcm9waG9uZSBvbmx5IHdoZW4geW91IGhhdmUgc29tZXRoaW5nIHRvIHNheS4iLAogICJuYW1lIjogIk5vdGhpbmcgdG8gc2F5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5vdGhpbmctdG8tc2F5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiLAogICAgIjMuMzYuOSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dib2xzdGVyL25vdGhpbmctdG8tc2F5IiwKICAidXVpZCI6ICJub3RoaW5nLXRvLXNheUBleHRlbnNpb25zLmdub21lLndvdXRlci5ib2xzdGVybC5lZSIsCiAgInZlcnNpb24iOiAxOAp9"},
     "45": {"version": "20", "sha256": "0anbrxra9prkh7rj0rlrkp2d2c6gy2j47pf8rbwys6yyq1wzq509", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubXV0ZSB0aGUgbWljcm9waG9uZSBvbmx5IHdoZW4geW91IGhhdmUgc29tZXRoaW5nIHRvIHNheS4iLAogICJuYW1lIjogIk5vdGhpbmcgdG8gc2F5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5vdGhpbmctdG8tc2F5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dib2xzdGVyL25vdGhpbmctdG8tc2F5IiwKICAidXVpZCI6ICJub3RoaW5nLXRvLXNheUBleHRlbnNpb25zLmdub21lLndvdXRlci5ib2xzdGVybC5lZSIsCiAgInZlcnNpb24iOiAyMAp9"}
   }}
-, {"uuid": "workspace-switch-wraparound@theychx.org", "name": "Workspace Switch Wraparound", "pname": "workspace-switch-wraparound", "description": "When switching workspaces, going down from the bottom workspace switches to the top workspace. Likewise, up from the top workspace goes to the bottom workspace.", "link": "https://extensions.gnome.org/extension/1116/workspace-switch-wraparound/", "shell_version_map": {
+, {"uuid": "workspace-switch-wraparound@theychx.org", "name": "Workspace Switch Wraparound", "pname": "workspace-switch-wraparound", "description": "NO LONGER MAINTAINED\n\nWhen switching workspaces, going down from the bottom workspace switches to the top workspace. Likewise, up from the top workspace goes to the bottom workspace.", "link": "https://extensions.gnome.org/extension/1116/workspace-switch-wraparound/", "shell_version_map": {
     "38": {"version": "10", "sha256": "0r8ivrnnilvm0yijdra2n1n9ygcaclz57d5zcmi1jihggdhnc3ca", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4gc3dpdGNoaW5nIHdvcmtzcGFjZXMsIGdvaW5nIGRvd24gZnJvbSB0aGUgYm90dG9tIHdvcmtzcGFjZSBzd2l0Y2hlcyB0byB0aGUgdG9wIHdvcmtzcGFjZS4gTGlrZXdpc2UsIHVwIGZyb20gdGhlIHRvcCB3b3Jrc3BhY2UgZ29lcyB0byB0aGUgYm90dG9tIHdvcmtzcGFjZS4iLAogICJuYW1lIjogIldvcmtzcGFjZSBTd2l0Y2ggV3JhcGFyb3VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdGhleWNoeC9Xb3Jrc3BhY2VTd2l0Y2hlcldyYXBBcm91bmQiLAogICJ1dWlkIjogIndvcmtzcGFjZS1zd2l0Y2gtd3JhcGFyb3VuZEB0aGV5Y2h4Lm9yZyIsCiAgInZlcnNpb24iOiAxMAp9"},
     "40": {"version": "10", "sha256": "0r8ivrnnilvm0yijdra2n1n9ygcaclz57d5zcmi1jihggdhnc3ca", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4gc3dpdGNoaW5nIHdvcmtzcGFjZXMsIGdvaW5nIGRvd24gZnJvbSB0aGUgYm90dG9tIHdvcmtzcGFjZSBzd2l0Y2hlcyB0byB0aGUgdG9wIHdvcmtzcGFjZS4gTGlrZXdpc2UsIHVwIGZyb20gdGhlIHRvcCB3b3Jrc3BhY2UgZ29lcyB0byB0aGUgYm90dG9tIHdvcmtzcGFjZS4iLAogICJuYW1lIjogIldvcmtzcGFjZSBTd2l0Y2ggV3JhcGFyb3VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdGhleWNoeC9Xb3Jrc3BhY2VTd2l0Y2hlcldyYXBBcm91bmQiLAogICJ1dWlkIjogIndvcmtzcGFjZS1zd2l0Y2gtd3JhcGFyb3VuZEB0aGV5Y2h4Lm9yZyIsCiAgInZlcnNpb24iOiAxMAp9"},
     "41": {"version": "10", "sha256": "0r8ivrnnilvm0yijdra2n1n9ygcaclz57d5zcmi1jihggdhnc3ca", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4gc3dpdGNoaW5nIHdvcmtzcGFjZXMsIGdvaW5nIGRvd24gZnJvbSB0aGUgYm90dG9tIHdvcmtzcGFjZSBzd2l0Y2hlcyB0byB0aGUgdG9wIHdvcmtzcGFjZS4gTGlrZXdpc2UsIHVwIGZyb20gdGhlIHRvcCB3b3Jrc3BhY2UgZ29lcyB0byB0aGUgYm90dG9tIHdvcmtzcGFjZS4iLAogICJuYW1lIjogIldvcmtzcGFjZSBTd2l0Y2ggV3JhcGFyb3VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdGhleWNoeC9Xb3Jrc3BhY2VTd2l0Y2hlcldyYXBBcm91bmQiLAogICJ1dWlkIjogIndvcmtzcGFjZS1zd2l0Y2gtd3JhcGFyb3VuZEB0aGV5Y2h4Lm9yZyIsCiAgInZlcnNpb24iOiAxMAp9"},
@@ -940,7 +943,7 @@
     "42": {"version": "15", "sha256": "0bhq1ns7pbrdxkclg2q213hfy0633171zfj17jhxxv70qpkskpbw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgc2hvd3MgYSBwb3AtdXAgb2YgdXNlZnVsIGtleWJvYXJkIHNob3J0Y3V0cyB3aGVuIEN0cmwgKyBBbHQgKyBTdXBlciArIFMgaXMgcHJlc3NlZCIsCiAgImdldHRleHQtZG9tYWluIjogIlNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiU2hvcnRjdXRzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3J0Y3V0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcGFkZGF0cmFwcGVyL3Nob3J0Y3V0cy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIlNob3J0Y3V0c0BreWxlLmFpbXMuYWMuemEiLAogICJ2ZXJzaW9uIjogMTUKfQ=="},
     "43": {"version": "15", "sha256": "0bhq1ns7pbrdxkclg2q213hfy0633171zfj17jhxxv70qpkskpbw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgc2hvd3MgYSBwb3AtdXAgb2YgdXNlZnVsIGtleWJvYXJkIHNob3J0Y3V0cyB3aGVuIEN0cmwgKyBBbHQgKyBTdXBlciArIFMgaXMgcHJlc3NlZCIsCiAgImdldHRleHQtZG9tYWluIjogIlNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiU2hvcnRjdXRzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3J0Y3V0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcGFkZGF0cmFwcGVyL3Nob3J0Y3V0cy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIlNob3J0Y3V0c0BreWxlLmFpbXMuYWMuemEiLAogICJ2ZXJzaW9uIjogMTUKfQ=="},
     "44": {"version": "15", "sha256": "0bhq1ns7pbrdxkclg2q213hfy0633171zfj17jhxxv70qpkskpbw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgc2hvd3MgYSBwb3AtdXAgb2YgdXNlZnVsIGtleWJvYXJkIHNob3J0Y3V0cyB3aGVuIEN0cmwgKyBBbHQgKyBTdXBlciArIFMgaXMgcHJlc3NlZCIsCiAgImdldHRleHQtZG9tYWluIjogIlNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiU2hvcnRjdXRzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3J0Y3V0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcGFkZGF0cmFwcGVyL3Nob3J0Y3V0cy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIlNob3J0Y3V0c0BreWxlLmFpbXMuYWMuemEiLAogICJ2ZXJzaW9uIjogMTUKfQ=="},
-    "45": {"version": "23", "sha256": "08dih87b86yvxphirbp2p9cfxq07xymvajgs8zqdqh6vv197y4yi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgc2hvd3MgYSBwb3AtdXAgb2YgdXNlZnVsIGtleWJvYXJkIHNob3J0Y3V0cyB3aGVuIEN0cmwgKyBBbHQgKyBTdXBlciArIFMgaXMgcHJlc3NlZCAoaG90a2V5IGNhbiBiZSBjaGFuZ2VkIGluIHNldHRpbmdzKSIsCiAgImdldHRleHQtZG9tYWluIjogIlNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiU2hvcnRjdXRzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3J0Y3V0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9wYWRkYXRyYXBwZXIvc2hvcnRjdXRzLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiU2hvcnRjdXRzQGt5bGUuYWltcy5hYy56YSIsCiAgInZlcnNpb24iOiAyMwp9"}
+    "45": {"version": "24", "sha256": "0205rzr0gsv684m2mvkrnjjd3qpww5mxacc7mx2x0xqlbzl8mk8g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgc2hvd3MgYSBwb3AtdXAgb2YgdXNlZnVsIGtleWJvYXJkIHNob3J0Y3V0cyB3aGVuIEN0cmwgKyBBbHQgKyBTdXBlciArIFMgaXMgcHJlc3NlZCAoaG90a2V5IGNhbiBiZSBjaGFuZ2VkIGluIHNldHRpbmdzKSIsCiAgImdldHRleHQtZG9tYWluIjogIlNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiU2hvcnRjdXRzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3J0Y3V0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9wYWRkYXRyYXBwZXIvc2hvcnRjdXRzLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiU2hvcnRjdXRzQGt5bGUuYWltcy5hYy56YSIsCiAgInZlcnNpb24iOiAyNCwKICAidmVyc2lvbi1uYW1lIjogIjQ1LjAiCn0="}
   }}
 , {"uuid": "sensory-perception@HarlemSquirrel.github.io", "name": "Sensory Perception", "pname": "sensory-perception", "description": "Requires lm-sensors (or lm_sensors). Shows CPU temperature, disk temperature, video card temperature, voltage and fan RPM.", "link": "https://extensions.gnome.org/extension/1145/sensory-perception/", "shell_version_map": {
     "38": {"version": "13", "sha256": "16wc49khyk5arsis8kzpjgl6nl8gccc2y5sspq8rwnab22jnzwjh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcXVpcmVzIGxtLXNlbnNvcnMgKG9yIGxtX3NlbnNvcnMpLiBTaG93cyBDUFUgdGVtcGVyYXR1cmUsIGRpc2sgdGVtcGVyYXR1cmUsIHZpZGVvIGNhcmQgdGVtcGVyYXR1cmUsIHZvbHRhZ2UgYW5kIGZhbiBSUE0uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2Vuc29yeS1wZXJjZXB0aW9uIiwKICAibmFtZSI6ICJTZW5zb3J5IFBlcmNlcHRpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2Vuc29yeS1wZXJjZXB0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSGFybGVtU3F1aXJyZWwvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNlbnNvcnktcGVyY2VwdGlvbiIsCiAgInV1aWQiOiAic2Vuc29yeS1wZXJjZXB0aW9uQEhhcmxlbVNxdWlycmVsLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMwp9"},
@@ -967,7 +970,7 @@
     "42": {"version": "56", "sha256": "0hl85jdmv07viqhvfd35w2wdyjyv5hywr55pycgz21fjk11waf1k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gdGFza2JhciBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBpbnRvIHRoZSBnbm9tZSBtYWluIHBhbmVsIHNvIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGxhdW5jaGVycyBhbmQgc3lzdGVtIHRyYXkgYXJlIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgcGFuZWwsIHNpbWlsYXIgdG8gdGhhdCBmb3VuZCBpbiBLREUgUGxhc21hIGFuZCBXaW5kb3dzIDcrLiBBIHNlcGFyYXRlIGRvY2sgaXMgbm8gbG9uZ2VyIG5lZWRlZCBmb3IgZWFzeSBhY2Nlc3MgdG8gcnVubmluZyBhbmQgZmF2b3JpdGVkIGFwcGxpY2F0aW9ucy5cblxuRm9yIGEgbW9yZSB0cmFkaXRpb25hbCBleHBlcmllbmNlLCB5b3UgbWF5IGFsc28gd2FudCB0byB1c2UgVHdlYWsgVG9vbCB0byBlbmFibGUgV2luZG93cyA+IFRpdGxlYmFyIEJ1dHRvbnMgPiBNaW5pbWl6ZSAmIE1heGltaXplLlxuXG5Gb3IgdGhlIGJlc3Qgc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIG9uIEdpdGh1Yi4gRGFzaC10by1wYW5lbCBpcyBkZXZlbG9wZWQgYW5kIG1haW50YWluZWQgYnkgQGpkZXJvc2U5IGFuZCBAY2hhcmxlc2c5OS4iLAogICJleHRlbnNpb24taWQiOiAiZGFzaC10by1wYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImRhc2gtdG8tcGFuZWwiLAogICJuYW1lIjogIkRhc2ggdG8gUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob21lLXN3ZWV0LWdub21lL2Rhc2gtdG8tcGFuZWwiLAogICJ1dWlkIjogImRhc2gtdG8tcGFuZWxAamRlcm9zZTkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Ngp9"},
     "43": {"version": "56", "sha256": "0hl85jdmv07viqhvfd35w2wdyjyv5hywr55pycgz21fjk11waf1k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gdGFza2JhciBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBpbnRvIHRoZSBnbm9tZSBtYWluIHBhbmVsIHNvIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGxhdW5jaGVycyBhbmQgc3lzdGVtIHRyYXkgYXJlIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgcGFuZWwsIHNpbWlsYXIgdG8gdGhhdCBmb3VuZCBpbiBLREUgUGxhc21hIGFuZCBXaW5kb3dzIDcrLiBBIHNlcGFyYXRlIGRvY2sgaXMgbm8gbG9uZ2VyIG5lZWRlZCBmb3IgZWFzeSBhY2Nlc3MgdG8gcnVubmluZyBhbmQgZmF2b3JpdGVkIGFwcGxpY2F0aW9ucy5cblxuRm9yIGEgbW9yZSB0cmFkaXRpb25hbCBleHBlcmllbmNlLCB5b3UgbWF5IGFsc28gd2FudCB0byB1c2UgVHdlYWsgVG9vbCB0byBlbmFibGUgV2luZG93cyA+IFRpdGxlYmFyIEJ1dHRvbnMgPiBNaW5pbWl6ZSAmIE1heGltaXplLlxuXG5Gb3IgdGhlIGJlc3Qgc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIG9uIEdpdGh1Yi4gRGFzaC10by1wYW5lbCBpcyBkZXZlbG9wZWQgYW5kIG1haW50YWluZWQgYnkgQGpkZXJvc2U5IGFuZCBAY2hhcmxlc2c5OS4iLAogICJleHRlbnNpb24taWQiOiAiZGFzaC10by1wYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImRhc2gtdG8tcGFuZWwiLAogICJuYW1lIjogIkRhc2ggdG8gUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob21lLXN3ZWV0LWdub21lL2Rhc2gtdG8tcGFuZWwiLAogICJ1dWlkIjogImRhc2gtdG8tcGFuZWxAamRlcm9zZTkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Ngp9"},
     "44": {"version": "56", "sha256": "0hl85jdmv07viqhvfd35w2wdyjyv5hywr55pycgz21fjk11waf1k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gdGFza2JhciBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBpbnRvIHRoZSBnbm9tZSBtYWluIHBhbmVsIHNvIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGxhdW5jaGVycyBhbmQgc3lzdGVtIHRyYXkgYXJlIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgcGFuZWwsIHNpbWlsYXIgdG8gdGhhdCBmb3VuZCBpbiBLREUgUGxhc21hIGFuZCBXaW5kb3dzIDcrLiBBIHNlcGFyYXRlIGRvY2sgaXMgbm8gbG9uZ2VyIG5lZWRlZCBmb3IgZWFzeSBhY2Nlc3MgdG8gcnVubmluZyBhbmQgZmF2b3JpdGVkIGFwcGxpY2F0aW9ucy5cblxuRm9yIGEgbW9yZSB0cmFkaXRpb25hbCBleHBlcmllbmNlLCB5b3UgbWF5IGFsc28gd2FudCB0byB1c2UgVHdlYWsgVG9vbCB0byBlbmFibGUgV2luZG93cyA+IFRpdGxlYmFyIEJ1dHRvbnMgPiBNaW5pbWl6ZSAmIE1heGltaXplLlxuXG5Gb3IgdGhlIGJlc3Qgc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIG9uIEdpdGh1Yi4gRGFzaC10by1wYW5lbCBpcyBkZXZlbG9wZWQgYW5kIG1haW50YWluZWQgYnkgQGpkZXJvc2U5IGFuZCBAY2hhcmxlc2c5OS4iLAogICJleHRlbnNpb24taWQiOiAiZGFzaC10by1wYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImRhc2gtdG8tcGFuZWwiLAogICJuYW1lIjogIkRhc2ggdG8gUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob21lLXN3ZWV0LWdub21lL2Rhc2gtdG8tcGFuZWwiLAogICJ1dWlkIjogImRhc2gtdG8tcGFuZWxAamRlcm9zZTkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Ngp9"},
-    "45": {"version": "59", "sha256": "06lpxbi7mvsdxwvgbyibrar9x3pakhfk0c2d7hwpdrkbdm9c673a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gdGFza2JhciBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBpbnRvIHRoZSBnbm9tZSBtYWluIHBhbmVsIHNvIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGxhdW5jaGVycyBhbmQgc3lzdGVtIHRyYXkgYXJlIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgcGFuZWwsIHNpbWlsYXIgdG8gdGhhdCBmb3VuZCBpbiBLREUgUGxhc21hIGFuZCBXaW5kb3dzIDcrLiBBIHNlcGFyYXRlIGRvY2sgaXMgbm8gbG9uZ2VyIG5lZWRlZCBmb3IgZWFzeSBhY2Nlc3MgdG8gcnVubmluZyBhbmQgZmF2b3JpdGVkIGFwcGxpY2F0aW9ucy5cblxuRm9yIGEgbW9yZSB0cmFkaXRpb25hbCBleHBlcmllbmNlLCB5b3UgbWF5IGFsc28gd2FudCB0byB1c2UgVHdlYWsgVG9vbCB0byBlbmFibGUgV2luZG93cyA+IFRpdGxlYmFyIEJ1dHRvbnMgPiBNaW5pbWl6ZSAmIE1heGltaXplLlxuXG5Gb3IgdGhlIGJlc3Qgc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIG9uIEdpdGh1Yi4gRGFzaC10by1wYW5lbCBpcyBkZXZlbG9wZWQgYW5kIG1haW50YWluZWQgYnkgQGpkZXJvc2U5IGFuZCBAY2hhcmxlc2c5OS4iLAogICJleHRlbnNpb24taWQiOiAiZGFzaC10by1wYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImRhc2gtdG8tcGFuZWwiLAogICJuYW1lIjogIkRhc2ggdG8gUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG9tZS1zd2VldC1nbm9tZS9kYXNoLXRvLXBhbmVsIiwKICAidXVpZCI6ICJkYXNoLXRvLXBhbmVsQGpkZXJvc2U5LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTkKfQ=="}
+    "45": {"version": "60", "sha256": "12l8fvw271k5q0dbhq5vw5li7fbjxi4y0n5d4rz0w8hrgj2jsikb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gdGFza2JhciBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBpbnRvIHRoZSBnbm9tZSBtYWluIHBhbmVsIHNvIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGxhdW5jaGVycyBhbmQgc3lzdGVtIHRyYXkgYXJlIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgcGFuZWwsIHNpbWlsYXIgdG8gdGhhdCBmb3VuZCBpbiBLREUgUGxhc21hIGFuZCBXaW5kb3dzIDcrLiBBIHNlcGFyYXRlIGRvY2sgaXMgbm8gbG9uZ2VyIG5lZWRlZCBmb3IgZWFzeSBhY2Nlc3MgdG8gcnVubmluZyBhbmQgZmF2b3JpdGVkIGFwcGxpY2F0aW9ucy5cblxuRm9yIGEgbW9yZSB0cmFkaXRpb25hbCBleHBlcmllbmNlLCB5b3UgbWF5IGFsc28gd2FudCB0byB1c2UgVHdlYWsgVG9vbCB0byBlbmFibGUgV2luZG93cyA+IFRpdGxlYmFyIEJ1dHRvbnMgPiBNaW5pbWl6ZSAmIE1heGltaXplLlxuXG5Gb3IgdGhlIGJlc3Qgc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIG9uIEdpdGh1Yi4gRGFzaC10by1wYW5lbCBpcyBkZXZlbG9wZWQgYW5kIG1haW50YWluZWQgYnkgQGpkZXJvc2U5IGFuZCBAY2hhcmxlc2c5OS4iLAogICJleHRlbnNpb24taWQiOiAiZGFzaC10by1wYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImRhc2gtdG8tcGFuZWwiLAogICJuYW1lIjogIkRhc2ggdG8gUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG9tZS1zd2VldC1nbm9tZS9kYXNoLXRvLXBhbmVsIiwKICAidXVpZCI6ICJkYXNoLXRvLXBhbmVsQGpkZXJvc2U5LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNjAKfQ=="}
   }}
 , {"uuid": "emoji-selector@maestroschan.fr", "name": "Emoji Selector", "pname": "emoji-selector", "description": "This extension provides a parametrable popup menu displaying most emojis, clicking on an emoji copies it to the clipboard. An appropriate font like 'Twitter Color Emoji' or 'JoyPixels Color' should be installed on your system for a better visual result.", "link": "https://extensions.gnome.org/extension/1162/emoji-selector/", "shell_version_map": {
     "38": {"version": "20", "sha256": "1i6py149m46xig5a0ry7y5v887nlzw644mw72gcr2hkfsn8b0gnd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHByb3ZpZGVzIGEgcGFyYW1ldHJhYmxlIHBvcHVwIG1lbnUgZGlzcGxheWluZyBtb3N0IGVtb2ppcywgY2xpY2tpbmcgb24gYW4gZW1vamkgY29waWVzIGl0IHRvIHRoZSBjbGlwYm9hcmQuIEFuIGFwcHJvcHJpYXRlIGZvbnQgbGlrZSAnVHdpdHRlciBDb2xvciBFbW9qaScgb3IgJ0pveVBpeGVscyBDb2xvcicgc2hvdWxkIGJlIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSBmb3IgYSBiZXR0ZXIgdmlzdWFsIHJlc3VsdC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJlbW9qaS1zZWxlY3RvciIsCiAgIm5hbWUiOiAiRW1vamkgU2VsZWN0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZW1vamktc2VsZWN0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYW9zY2hhbnovZW1vamktc2VsZWN0b3ItZm9yLWdub21lIiwKICAidXVpZCI6ICJlbW9qaS1zZWxlY3RvckBtYWVzdHJvc2NoYW4uZnIiLAogICJ2ZXJzaW9uIjogMjAKfQ=="},
@@ -1223,7 +1226,7 @@
     "41": {"version": "23", "sha256": "0sffysgh58p6yk6pa4ggzzz4nj2m2zfl7mb3fdn9i9cp35iamprh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0aWNreSBub3RlcyBmb3IgdGhlIEdOT01FIFNoZWxsIGRlc2t0b3AuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90ZXMtZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJOb3RlcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ub3Rlcy1leHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYW9zY2hhbnovbm90ZXMtZXh0ZW5zaW9uLWdub21lIiwKICAidXVpZCI6ICJub3Rlc0BtYWVzdHJvc2NoYW4uZnIiLAogICJ2ZXJzaW9uIjogMjMKfQ=="},
     "42": {"version": "23", "sha256": "0sffysgh58p6yk6pa4ggzzz4nj2m2zfl7mb3fdn9i9cp35iamprh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0aWNreSBub3RlcyBmb3IgdGhlIEdOT01FIFNoZWxsIGRlc2t0b3AuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90ZXMtZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJOb3RlcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ub3Rlcy1leHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYW9zY2hhbnovbm90ZXMtZXh0ZW5zaW9uLWdub21lIiwKICAidXVpZCI6ICJub3Rlc0BtYWVzdHJvc2NoYW4uZnIiLAogICJ2ZXJzaW9uIjogMjMKfQ=="}
   }}
-, {"uuid": "slinger@gfxmonk.net", "name": "slinger", "pname": "slinger", "description": "Sling windows around efficiently", "link": "https://extensions.gnome.org/extension/1372/slinger/", "shell_version_map": {
+, {"uuid": "slinger@gfxmonk.net", "name": "slinger", "pname": "slinger", "description": "Sling windows around efficiently. See homepage for instructions.", "link": "https://extensions.gnome.org/extension/1372/slinger/", "shell_version_map": {
     "40": {"version": "7", "sha256": "1hpzcslqln0yz4kv216z8qqq9639sh1awp6q8c33d7jp11ydwhlj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaW5nIHdpbmRvd3MgYXJvdW5kIGVmZmljaWVudGx5IiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2xpbmdlciIsCiAgIm5hbWUiOiAic2xpbmdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90aW1iZXJ0c29uL3NsaW5nZXIiLAogICJ1dWlkIjogInNsaW5nZXJAZ2Z4bW9uay5uZXQiLAogICJ2ZXJzaW9uIjogNwp9"}
   }}
 , {"uuid": "unix-timestamp-clock@se1exin.github.com", "name": "Unix Timestamp Clock", "pname": "unix-timestamp-clock", "description": "Show the current unix timestamp as a clock in the top bar.\n\nCopy-paste currently shown timestamp (left mouse button) or current timestamp (any other mouse button) to clipboard", "link": "https://extensions.gnome.org/extension/1375/unix-timestamp-clock/", "shell_version_map": {
@@ -1437,11 +1440,11 @@
     "44": {"version": "19", "sha256": "0ffqrhwhrmln2lmj4zzv2mv2h3plxxpjxg1r1ssk5p3i4b3qn12x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5bmMgYWxsIGV4dGVuc2lvbnMgYW5kIHRoZWlyIGNvbmZpZ3VyYXRpb25zIGFjcm9zcyBhbGwgZ25vbWUgaW5zdGFuY2VzIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJvYWUiCiAgfSwKICAibmFtZSI6ICJFeHRlbnNpb25zIFN5bmMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9ucy1zeW5jIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb2FlL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtc3luYyIsCiAgInV1aWQiOiAiZXh0ZW5zaW9ucy1zeW5jQGVsaGFuLmlvIiwKICAidmVyc2lvbiI6IDE5Cn0="}
   }}
 , {"uuid": "containers@royg", "name": "Containers", "pname": "containers", "description": "Manage podman containers through a gnome-shell menu", "link": "https://extensions.gnome.org/extension/1500/containers/", "shell_version_map": {
-    "40": {"version": "30", "sha256": "087z2pgqa3i1cmb0bk6z3i51hf4n7lj8gyir5zk4pf9zkfvc84n8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBwb2RtYW4gY29udGFpbmVycyB0aHJvdWdoIGEgZ25vbWUtc2hlbGwgbWVudSIsCiAgIm5hbWUiOiAiQ29udGFpbmVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmdvbGFuZ2gvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNvbnRhaW5lcnMiLAogICJ1dWlkIjogImNvbnRhaW5lcnNAcm95ZyIsCiAgInZlcnNpb24iOiAzMAp9"},
-    "41": {"version": "30", "sha256": "087z2pgqa3i1cmb0bk6z3i51hf4n7lj8gyir5zk4pf9zkfvc84n8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBwb2RtYW4gY29udGFpbmVycyB0aHJvdWdoIGEgZ25vbWUtc2hlbGwgbWVudSIsCiAgIm5hbWUiOiAiQ29udGFpbmVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmdvbGFuZ2gvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNvbnRhaW5lcnMiLAogICJ1dWlkIjogImNvbnRhaW5lcnNAcm95ZyIsCiAgInZlcnNpb24iOiAzMAp9"},
-    "42": {"version": "30", "sha256": "087z2pgqa3i1cmb0bk6z3i51hf4n7lj8gyir5zk4pf9zkfvc84n8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBwb2RtYW4gY29udGFpbmVycyB0aHJvdWdoIGEgZ25vbWUtc2hlbGwgbWVudSIsCiAgIm5hbWUiOiAiQ29udGFpbmVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmdvbGFuZ2gvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNvbnRhaW5lcnMiLAogICJ1dWlkIjogImNvbnRhaW5lcnNAcm95ZyIsCiAgInZlcnNpb24iOiAzMAp9"},
-    "43": {"version": "30", "sha256": "087z2pgqa3i1cmb0bk6z3i51hf4n7lj8gyir5zk4pf9zkfvc84n8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBwb2RtYW4gY29udGFpbmVycyB0aHJvdWdoIGEgZ25vbWUtc2hlbGwgbWVudSIsCiAgIm5hbWUiOiAiQ29udGFpbmVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmdvbGFuZ2gvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNvbnRhaW5lcnMiLAogICJ1dWlkIjogImNvbnRhaW5lcnNAcm95ZyIsCiAgInZlcnNpb24iOiAzMAp9"},
-    "44": {"version": "30", "sha256": "087z2pgqa3i1cmb0bk6z3i51hf4n7lj8gyir5zk4pf9zkfvc84n8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBwb2RtYW4gY29udGFpbmVycyB0aHJvdWdoIGEgZ25vbWUtc2hlbGwgbWVudSIsCiAgIm5hbWUiOiAiQ29udGFpbmVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmdvbGFuZ2gvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNvbnRhaW5lcnMiLAogICJ1dWlkIjogImNvbnRhaW5lcnNAcm95ZyIsCiAgInZlcnNpb24iOiAzMAp9"},
+    "40": {"version": "33", "sha256": "1pywy1sn2szb01s4f9kq69kyxnmnbffz3hiwmcmfr1g4l2sx7sns", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBwb2RtYW4gY29udGFpbmVycyB0aHJvdWdoIGEgZ25vbWUtc2hlbGwgbWVudSIsCiAgIm5hbWUiOiAiQ29udGFpbmVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmdvbGFuZ2gvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNvbnRhaW5lcnMiLAogICJ1dWlkIjogImNvbnRhaW5lcnNAcm95ZyIsCiAgInZlcnNpb24iOiAzMwp9"},
+    "41": {"version": "33", "sha256": "1pywy1sn2szb01s4f9kq69kyxnmnbffz3hiwmcmfr1g4l2sx7sns", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBwb2RtYW4gY29udGFpbmVycyB0aHJvdWdoIGEgZ25vbWUtc2hlbGwgbWVudSIsCiAgIm5hbWUiOiAiQ29udGFpbmVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmdvbGFuZ2gvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNvbnRhaW5lcnMiLAogICJ1dWlkIjogImNvbnRhaW5lcnNAcm95ZyIsCiAgInZlcnNpb24iOiAzMwp9"},
+    "42": {"version": "33", "sha256": "1pywy1sn2szb01s4f9kq69kyxnmnbffz3hiwmcmfr1g4l2sx7sns", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBwb2RtYW4gY29udGFpbmVycyB0aHJvdWdoIGEgZ25vbWUtc2hlbGwgbWVudSIsCiAgIm5hbWUiOiAiQ29udGFpbmVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmdvbGFuZ2gvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNvbnRhaW5lcnMiLAogICJ1dWlkIjogImNvbnRhaW5lcnNAcm95ZyIsCiAgInZlcnNpb24iOiAzMwp9"},
+    "43": {"version": "33", "sha256": "1pywy1sn2szb01s4f9kq69kyxnmnbffz3hiwmcmfr1g4l2sx7sns", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBwb2RtYW4gY29udGFpbmVycyB0aHJvdWdoIGEgZ25vbWUtc2hlbGwgbWVudSIsCiAgIm5hbWUiOiAiQ29udGFpbmVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmdvbGFuZ2gvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNvbnRhaW5lcnMiLAogICJ1dWlkIjogImNvbnRhaW5lcnNAcm95ZyIsCiAgInZlcnNpb24iOiAzMwp9"},
+    "44": {"version": "33", "sha256": "1pywy1sn2szb01s4f9kq69kyxnmnbffz3hiwmcmfr1g4l2sx7sns", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBwb2RtYW4gY29udGFpbmVycyB0aHJvdWdoIGEgZ25vbWUtc2hlbGwgbWVudSIsCiAgIm5hbWUiOiAiQ29udGFpbmVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmdvbGFuZ2gvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNvbnRhaW5lcnMiLAogICJ1dWlkIjogImNvbnRhaW5lcnNAcm95ZyIsCiAgInZlcnNpb24iOiAzMwp9"},
     "45": {"version": "32", "sha256": "1k1h1xw4hm6hyircxgy3i1cn2qpd0wl3yrbg173aaw25zw634798", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBwb2RtYW4gY29udGFpbmVycyB0aHJvdWdoIGEgZ25vbWUtc2hlbGwgbWVudSIsCiAgIm5hbWUiOiAiQ29udGFpbmVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yZ29sYW5naC9nbm9tZS1zaGVsbC1leHRlbnNpb24tY29udGFpbmVycyIsCiAgInV1aWQiOiAiY29udGFpbmVyc0Byb3lnIiwKICAidmVyc2lvbiI6IDMyCn0="}
   }}
 , {"uuid": "fullscreenworkspace@satran.in", "name": "Fullscreen On New Workspace", "pname": "fullscreen-on-new-workspace", "description": "Move window to a new workspace when you maximize or make it fullscreen.", "link": "https://extensions.gnome.org/extension/1502/fullscreen-on-new-workspace/", "shell_version_map": {
@@ -1576,8 +1579,9 @@
     "40": {"version": "13", "sha256": "1q9zzjcy8pyifqm51p51wb290casl3464k1w1p5ijgwf492va6gf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGxlZ2FjeSB0cmF5IGljb25zIG9uIHRvcCBcdTIwMTMgdGhlIGZpeGVkIHZlcnNpb24gb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDk1L3RvcGljb25zLyIsCiAgIm5hbWUiOiAiVG9wSWNvbnNGaXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAidG9waWNvbnNmaXhAYWxlc2t2YUBkZXZudWxsbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTMKfQ=="},
     "41": {"version": "13", "sha256": "1q9zzjcy8pyifqm51p51wb290casl3464k1w1p5ijgwf492va6gf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGxlZ2FjeSB0cmF5IGljb25zIG9uIHRvcCBcdTIwMTMgdGhlIGZpeGVkIHZlcnNpb24gb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDk1L3RvcGljb25zLyIsCiAgIm5hbWUiOiAiVG9wSWNvbnNGaXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAidG9waWNvbnNmaXhAYWxlc2t2YUBkZXZudWxsbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTMKfQ=="},
     "42": {"version": "13", "sha256": "1q9zzjcy8pyifqm51p51wb290casl3464k1w1p5ijgwf492va6gf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGxlZ2FjeSB0cmF5IGljb25zIG9uIHRvcCBcdTIwMTMgdGhlIGZpeGVkIHZlcnNpb24gb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDk1L3RvcGljb25zLyIsCiAgIm5hbWUiOiAiVG9wSWNvbnNGaXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAidG9waWNvbnNmaXhAYWxlc2t2YUBkZXZudWxsbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTMKfQ=="},
-    "43": {"version": "17", "sha256": "0xzxd1cj9n13ka8qvpdmkiwlpdfd5mxg5hvbqpf9d7a01pkvpyzf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGxlZ2FjeSB0cmF5IGljb25zIG9uIHRvcCBcdTIwMTMgdGhlIGZpeGVkIHZlcnNpb24gb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDk1L3RvcGljb25zLyIsCiAgIm5hbWUiOiAiVG9wSWNvbnNGaXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ0b3BpY29uc2ZpeEBhbGVza3ZhQGRldm51bGxtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxNwp9"},
-    "44": {"version": "17", "sha256": "0xzxd1cj9n13ka8qvpdmkiwlpdfd5mxg5hvbqpf9d7a01pkvpyzf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGxlZ2FjeSB0cmF5IGljb25zIG9uIHRvcCBcdTIwMTMgdGhlIGZpeGVkIHZlcnNpb24gb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDk1L3RvcGljb25zLyIsCiAgIm5hbWUiOiAiVG9wSWNvbnNGaXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ0b3BpY29uc2ZpeEBhbGVza3ZhQGRldm51bGxtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxNwp9"}
+    "43": {"version": "18", "sha256": "14hk5283fspffhjv66xh44xzy06ap0cbwsjgp9n3k53kr17f3m93", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGxlZ2FjeSB0cmF5IGljb25zIG9uIHRvcCBcdTIwMTMgdGhlIGZpeGVkIHZlcnNpb24gb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDk1L3RvcGljb25zLyIsCiAgIm5hbWUiOiAiVG9wSWNvbnNGaXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInRvcGljb25zZml4QGFsZXNrdmFAZGV2bnVsbG1haWwuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="},
+    "44": {"version": "19", "sha256": "1sfv67m3xbnpq63xbd794y9zf4r0c5myjpjwdn6nmwp9rad7xdmk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGxlZ2FjeSB0cmF5IGljb25zIG9uIHRvcCBcdTIwMTMgdGhlIGZpeGVkIHZlcnNpb24gb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDk1L3RvcGljb25zLyIsCiAgIm5hbWUiOiAiVG9wSWNvbnNGaXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInRvcGljb25zZml4QGFsZXNrdmFAZGV2bnVsbG1haWwuY29tIiwKICAidmVyc2lvbiI6IDE5Cn0="},
+    "45": {"version": "21", "sha256": "11kqk1kdghblrb2hprjqnxw8l7mp2h2vwmpqjs0j817nw3aiasvw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGxlZ2FjeSB0cmF5IGljb25zIG9uIHRvcCBcdTIwMTMgdGhlIGZpeGVkIHZlcnNpb24gb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDk1L3RvcGljb25zLyIsCiAgIm5hbWUiOiAiVG9wSWNvbnNGaXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInRvcGljb25zZml4QGFsZXNrdmFAZGV2bnVsbG1haWwuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}
   }}
 , {"uuid": "animation-tweaks@Selenium-H", "name": "Animation Tweaks", "pname": "animation-tweaks", "description": "Add animations to different items and customize them.\n\nPlease reset the extension after updating.\nThe Extension will stop when upgraded to an incompatible version.\nIn that case an Update tab is created to easily reset the extension.\nA Reset menu entry is also always present in in the Top Right Application menu of the extension preferences window.\nA Default shortcut combination of Super Key + t is provided to disable the extension.\n\nSome effects might not work properly on wayland, for which an option to integrate with wayland is provided on Integrations tab.\nHowever, some animations might not work properly.\n\nTo manage effect Delay time enable Show delay time in preferences Window from Top Right Application menu -> Preferences\nand reopen preferences.", "link": "https://extensions.gnome.org/extension/1680/animation-tweaks/", "shell_version_map": {
     "38": {"version": "18", "sha256": "07niv7biy9yxmxdg498kqypyqva6y8slm3gmn70dpx9f9ng8ya55", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQWRkIGFuaW1hdGlvbnMgdG8gZGlmZmVyZW50IGl0ZW1zIGFuZCBjdXN0b21pemUgdGhlbS4iLAogICJkZXNjcmlwdGlvbiI6ICJBZGQgYW5pbWF0aW9ucyB0byBkaWZmZXJlbnQgaXRlbXMgYW5kIGN1c3RvbWl6ZSB0aGVtLlxuXG5QbGVhc2UgcmVzZXQgdGhlIGV4dGVuc2lvbiBhZnRlciB1cGRhdGluZy5cblRoZSBFeHRlbnNpb24gd2lsbCBzdG9wIHdoZW4gdXBncmFkZWQgdG8gYW4gaW5jb21wYXRpYmxlIHZlcnNpb24uXG5JbiB0aGF0IGNhc2UgYW4gVXBkYXRlIHRhYiBpcyBjcmVhdGVkIHRvIGVhc2lseSByZXNldCB0aGUgZXh0ZW5zaW9uLlxuQSBSZXNldCBtZW51IGVudHJ5IGlzIGFsc28gYWx3YXlzIHByZXNlbnQgaW4gaW4gdGhlIFRvcCBSaWdodCBBcHBsaWNhdGlvbiBtZW51IG9mIHRoZSBleHRlbnNpb24gcHJlZmVyZW5jZXMgd2luZG93LlxuQSBEZWZhdWx0IHNob3J0Y3V0IGNvbWJpbmF0aW9uIG9mIFN1cGVyIEtleSArIHQgaXMgcHJvdmlkZWQgdG8gZGlzYWJsZSB0aGUgZXh0ZW5zaW9uLlxuXG5Tb21lIGVmZmVjdHMgbWlnaHQgbm90IHdvcmsgcHJvcGVybHkgb24gd2F5bGFuZCwgZm9yIHdoaWNoIGFuIG9wdGlvbiB0byBpbnRlZ3JhdGUgd2l0aCB3YXlsYW5kIGlzIHByb3ZpZGVkIG9uIEludGVncmF0aW9ucyB0YWIuXG5Ib3dldmVyLCBzb21lIGFuaW1hdGlvbnMgbWlnaHQgbm90IHdvcmsgcHJvcGVybHkuXG5cblRvIG1hbmFnZSBlZmZlY3QgRGVsYXkgdGltZSBlbmFibGUgU2hvdyBkZWxheSB0aW1lIGluIHByZWZlcmVuY2VzIFdpbmRvdyBmcm9tIFRvcCBSaWdodCBBcHBsaWNhdGlvbiBtZW51IC0+IFByZWZlcmVuY2VzXG5hbmQgcmVvcGVuIHByZWZlcmVuY2VzLiIsCiAgIm5hbWUiOiAiQW5pbWF0aW9uIFR3ZWFrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInN0YXR1cyI6ICIiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NlbGVuaXVtLUgvQW5pbWF0aW9uLVR3ZWFrcyIsCiAgInV1aWQiOiAiYW5pbWF0aW9uLXR3ZWFrc0BTZWxlbml1bS1IIiwKICAidmVyc2lvbiI6IDE4Cn0="},
@@ -1616,14 +1620,18 @@
     "40": {"version": "11", "sha256": "1dyzkbzy2lg2h3ixz1i86hbrh69irw70whbrl8vw0m5yypfm15wm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgU1NIIHNlYXJjaCByZXN1bHRzIGluIG92ZXJ2aWV3LlxuXG5UaGlzIGlzIGEgZm9yayBvZiB0aGUgb3JpZ2luYWwgXCJTU0ggU2VhcmNoIFByb3ZpZGVyXCIsIHVwZGF0ZWQgdG8gd29yayB3aXRoIG5ld2VyIEdub21lLVNoZWxscy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAibmFtZSI6ICJTU0ggU2VhcmNoIFByb3ZpZGVyIFJlYm9ybiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRi1pLWYvc3NoLXNlYXJjaC1wcm92aWRlciIsCiAgInV1aWQiOiAic3NoLXNlYXJjaC1wcm92aWRlckBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYxMS0wLWc2M2M0NjZjIiwKICAidmVyc2lvbiI6IDExCn0="},
     "41": {"version": "11", "sha256": "1dyzkbzy2lg2h3ixz1i86hbrh69irw70whbrl8vw0m5yypfm15wm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgU1NIIHNlYXJjaCByZXN1bHRzIGluIG92ZXJ2aWV3LlxuXG5UaGlzIGlzIGEgZm9yayBvZiB0aGUgb3JpZ2luYWwgXCJTU0ggU2VhcmNoIFByb3ZpZGVyXCIsIHVwZGF0ZWQgdG8gd29yayB3aXRoIG5ld2VyIEdub21lLVNoZWxscy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAibmFtZSI6ICJTU0ggU2VhcmNoIFByb3ZpZGVyIFJlYm9ybiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRi1pLWYvc3NoLXNlYXJjaC1wcm92aWRlciIsCiAgInV1aWQiOiAic3NoLXNlYXJjaC1wcm92aWRlckBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYxMS0wLWc2M2M0NjZjIiwKICAidmVyc2lvbiI6IDExCn0="},
     "42": {"version": "11", "sha256": "1dyzkbzy2lg2h3ixz1i86hbrh69irw70whbrl8vw0m5yypfm15wm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgU1NIIHNlYXJjaCByZXN1bHRzIGluIG92ZXJ2aWV3LlxuXG5UaGlzIGlzIGEgZm9yayBvZiB0aGUgb3JpZ2luYWwgXCJTU0ggU2VhcmNoIFByb3ZpZGVyXCIsIHVwZGF0ZWQgdG8gd29yayB3aXRoIG5ld2VyIEdub21lLVNoZWxscy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAibmFtZSI6ICJTU0ggU2VhcmNoIFByb3ZpZGVyIFJlYm9ybiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRi1pLWYvc3NoLXNlYXJjaC1wcm92aWRlciIsCiAgInV1aWQiOiAic3NoLXNlYXJjaC1wcm92aWRlckBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYxMS0wLWc2M2M0NjZjIiwKICAidmVyc2lvbiI6IDExCn0="},
-    "43": {"version": "12", "sha256": "12859viin7i3xi2bv5q232drv6cms5xgnrcbjx2xmgm3jykc3j9g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgU1NIIHNlYXJjaCByZXN1bHRzIGluIG92ZXJ2aWV3LlxuXG5UaGlzIGlzIGEgZm9yayBvZiB0aGUgb3JpZ2luYWwgXCJTU0ggU2VhcmNoIFByb3ZpZGVyXCIsIHVwZGF0ZWQgdG8gd29yayB3aXRoIG5ld2VyIEdub21lLVNoZWxscy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAibmFtZSI6ICJTU0ggU2VhcmNoIFByb3ZpZGVyIFJlYm9ybiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0YtaS1mL3NzaC1zZWFyY2gtcHJvdmlkZXIiLAogICJ1dWlkIjogInNzaC1zZWFyY2gtcHJvdmlkZXJAZXh0ZW5zaW9ucy5nbm9tZS1zaGVsbC5maWZpLm9yZyIsCiAgInZjc19yZXZpc2lvbiI6ICJ2MTItMC1nMTg2Mjk3MSIsCiAgInZlcnNpb24iOiAxMgp9"}
+    "43": {"version": "13", "sha256": "1y4167891nh4vd9d9jmy23cdzsgfxivwaf4s71j7x3hvpw52iwj1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgU1NIIHNlYXJjaCByZXN1bHRzIGluIG92ZXJ2aWV3LlxuXG5UaGlzIGlzIGEgZm9yayBvZiB0aGUgb3JpZ2luYWwgXCJTU0ggU2VhcmNoIFByb3ZpZGVyXCIsIHVwZGF0ZWQgdG8gd29yayB3aXRoIG5ld2VyIEdub21lLVNoZWxscy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAibmFtZSI6ICJTU0ggU2VhcmNoIFByb3ZpZGVyIFJlYm9ybiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GLWktZi9zc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJzc2gtc2VhcmNoLXByb3ZpZGVyQGV4dGVuc2lvbnMuZ25vbWUtc2hlbGwuZmlmaS5vcmciLAogICJ2Y3NfcmV2aXNpb24iOiAidjEzLTAtZzM1NmJlMmUiLAogICJ2ZXJzaW9uIjogMTMKfQ=="},
+    "44": {"version": "13", "sha256": "1y4167891nh4vd9d9jmy23cdzsgfxivwaf4s71j7x3hvpw52iwj1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgU1NIIHNlYXJjaCByZXN1bHRzIGluIG92ZXJ2aWV3LlxuXG5UaGlzIGlzIGEgZm9yayBvZiB0aGUgb3JpZ2luYWwgXCJTU0ggU2VhcmNoIFByb3ZpZGVyXCIsIHVwZGF0ZWQgdG8gd29yayB3aXRoIG5ld2VyIEdub21lLVNoZWxscy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAibmFtZSI6ICJTU0ggU2VhcmNoIFByb3ZpZGVyIFJlYm9ybiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GLWktZi9zc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJzc2gtc2VhcmNoLXByb3ZpZGVyQGV4dGVuc2lvbnMuZ25vbWUtc2hlbGwuZmlmaS5vcmciLAogICJ2Y3NfcmV2aXNpb24iOiAidjEzLTAtZzM1NmJlMmUiLAogICJ2ZXJzaW9uIjogMTMKfQ=="},
+    "45": {"version": "15", "sha256": "1hkgkkjl43ji79bb4rrssbm4y5k2cz622nmczh4j1bj77c3k09xh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgU1NIIHNlYXJjaCByZXN1bHRzIGluIG92ZXJ2aWV3LlxuXG5UaGlzIGlzIGEgZm9yayBvZiB0aGUgb3JpZ2luYWwgXCJTU0ggU2VhcmNoIFByb3ZpZGVyXCIsIHVwZGF0ZWQgdG8gd29yayB3aXRoIG5ld2VyIEdub21lLVNoZWxscy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAibmFtZSI6ICJTU0ggU2VhcmNoIFByb3ZpZGVyIFJlYm9ybiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0YtaS1mL3NzaC1zZWFyY2gtcHJvdmlkZXIiLAogICJ1dWlkIjogInNzaC1zZWFyY2gtcHJvdmlkZXJAZXh0ZW5zaW9ucy5nbm9tZS1zaGVsbC5maWZpLm9yZyIsCiAgInZjc19yZXZpc2lvbiI6ICJ2MTUtMC1nZmI2MTdlMyIsCiAgInZlcnNpb24iOiAxNQp9"}
   }}
 , {"uuid": "weeks-start-on-monday@extensions.gnome-shell.fifi.org", "name": "Weeks Start on Monday Again...", "pname": "weeks-start-on-monday-again", "description": "... or maybe not, and that's why the start day is configurable in the preferences.\n\nThis is an updated version of the \"Weeks Start on Monday\" extension for newer Gnome Shells.", "link": "https://extensions.gnome.org/extension/1720/weeks-start-on-monday-again/", "shell_version_map": {
-    "38": {"version": "13", "sha256": "0sbddyrjhysinjv86c7dfkf3p2gvrh4bpp7n5sliqrg50n70mlz9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIi4uLiBvciBtYXliZSBub3QsIGFuZCB0aGF0J3Mgd2h5IHRoZSBzdGFydCBkYXkgaXMgY29uZmlndXJhYmxlIGluIHRoZSBwcmVmZXJlbmNlcy5cblxuVGhpcyBpcyBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdGhlIFwiV2Vla3MgU3RhcnQgb24gTW9uZGF5XCIgZXh0ZW5zaW9uIGZvciBuZXdlciBHbm9tZSBTaGVsbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAibmFtZSI6ICJXZWVrcyBTdGFydCBvbiBNb25kYXkgQWdhaW4uLi4iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0YtaS1mL3dlZWtzLXN0YXJ0LW9uLW1vbmRheSIsCiAgInV1aWQiOiAid2Vla3Mtc3RhcnQtb24tbW9uZGF5QGV4dGVuc2lvbnMuZ25vbWUtc2hlbGwuZmlmaS5vcmciLAogICJ2Y3NfcmV2aXNpb24iOiAidjEzLTAtZ2I0NjBiNWYiLAogICJ2ZXJzaW9uIjogMTMKfQ=="},
-    "40": {"version": "13", "sha256": "0sbddyrjhysinjv86c7dfkf3p2gvrh4bpp7n5sliqrg50n70mlz9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIi4uLiBvciBtYXliZSBub3QsIGFuZCB0aGF0J3Mgd2h5IHRoZSBzdGFydCBkYXkgaXMgY29uZmlndXJhYmxlIGluIHRoZSBwcmVmZXJlbmNlcy5cblxuVGhpcyBpcyBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdGhlIFwiV2Vla3MgU3RhcnQgb24gTW9uZGF5XCIgZXh0ZW5zaW9uIGZvciBuZXdlciBHbm9tZSBTaGVsbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAibmFtZSI6ICJXZWVrcyBTdGFydCBvbiBNb25kYXkgQWdhaW4uLi4iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0YtaS1mL3dlZWtzLXN0YXJ0LW9uLW1vbmRheSIsCiAgInV1aWQiOiAid2Vla3Mtc3RhcnQtb24tbW9uZGF5QGV4dGVuc2lvbnMuZ25vbWUtc2hlbGwuZmlmaS5vcmciLAogICJ2Y3NfcmV2aXNpb24iOiAidjEzLTAtZ2I0NjBiNWYiLAogICJ2ZXJzaW9uIjogMTMKfQ=="},
-    "41": {"version": "13", "sha256": "0sbddyrjhysinjv86c7dfkf3p2gvrh4bpp7n5sliqrg50n70mlz9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIi4uLiBvciBtYXliZSBub3QsIGFuZCB0aGF0J3Mgd2h5IHRoZSBzdGFydCBkYXkgaXMgY29uZmlndXJhYmxlIGluIHRoZSBwcmVmZXJlbmNlcy5cblxuVGhpcyBpcyBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdGhlIFwiV2Vla3MgU3RhcnQgb24gTW9uZGF5XCIgZXh0ZW5zaW9uIGZvciBuZXdlciBHbm9tZSBTaGVsbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAibmFtZSI6ICJXZWVrcyBTdGFydCBvbiBNb25kYXkgQWdhaW4uLi4iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0YtaS1mL3dlZWtzLXN0YXJ0LW9uLW1vbmRheSIsCiAgInV1aWQiOiAid2Vla3Mtc3RhcnQtb24tbW9uZGF5QGV4dGVuc2lvbnMuZ25vbWUtc2hlbGwuZmlmaS5vcmciLAogICJ2Y3NfcmV2aXNpb24iOiAidjEzLTAtZ2I0NjBiNWYiLAogICJ2ZXJzaW9uIjogMTMKfQ=="},
-    "42": {"version": "13", "sha256": "0sbddyrjhysinjv86c7dfkf3p2gvrh4bpp7n5sliqrg50n70mlz9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIi4uLiBvciBtYXliZSBub3QsIGFuZCB0aGF0J3Mgd2h5IHRoZSBzdGFydCBkYXkgaXMgY29uZmlndXJhYmxlIGluIHRoZSBwcmVmZXJlbmNlcy5cblxuVGhpcyBpcyBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdGhlIFwiV2Vla3MgU3RhcnQgb24gTW9uZGF5XCIgZXh0ZW5zaW9uIGZvciBuZXdlciBHbm9tZSBTaGVsbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAibmFtZSI6ICJXZWVrcyBTdGFydCBvbiBNb25kYXkgQWdhaW4uLi4iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0YtaS1mL3dlZWtzLXN0YXJ0LW9uLW1vbmRheSIsCiAgInV1aWQiOiAid2Vla3Mtc3RhcnQtb24tbW9uZGF5QGV4dGVuc2lvbnMuZ25vbWUtc2hlbGwuZmlmaS5vcmciLAogICJ2Y3NfcmV2aXNpb24iOiAidjEzLTAtZ2I0NjBiNWYiLAogICJ2ZXJzaW9uIjogMTMKfQ=="},
-    "43": {"version": "13", "sha256": "0sbddyrjhysinjv86c7dfkf3p2gvrh4bpp7n5sliqrg50n70mlz9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIi4uLiBvciBtYXliZSBub3QsIGFuZCB0aGF0J3Mgd2h5IHRoZSBzdGFydCBkYXkgaXMgY29uZmlndXJhYmxlIGluIHRoZSBwcmVmZXJlbmNlcy5cblxuVGhpcyBpcyBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdGhlIFwiV2Vla3MgU3RhcnQgb24gTW9uZGF5XCIgZXh0ZW5zaW9uIGZvciBuZXdlciBHbm9tZSBTaGVsbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAibmFtZSI6ICJXZWVrcyBTdGFydCBvbiBNb25kYXkgQWdhaW4uLi4iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0YtaS1mL3dlZWtzLXN0YXJ0LW9uLW1vbmRheSIsCiAgInV1aWQiOiAid2Vla3Mtc3RhcnQtb24tbW9uZGF5QGV4dGVuc2lvbnMuZ25vbWUtc2hlbGwuZmlmaS5vcmciLAogICJ2Y3NfcmV2aXNpb24iOiAidjEzLTAtZ2I0NjBiNWYiLAogICJ2ZXJzaW9uIjogMTMKfQ=="}
+    "38": {"version": "14", "sha256": "1zavccgxfqnf19qab2iwrprh966bl19a5n912sxyd9k3aagp64b3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIi4uLiBvciBtYXliZSBub3QsIGFuZCB0aGF0J3Mgd2h5IHRoZSBzdGFydCBkYXkgaXMgY29uZmlndXJhYmxlIGluIHRoZSBwcmVmZXJlbmNlcy5cblxuVGhpcyBpcyBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdGhlIFwiV2Vla3MgU3RhcnQgb24gTW9uZGF5XCIgZXh0ZW5zaW9uIGZvciBuZXdlciBHbm9tZSBTaGVsbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAibmFtZSI6ICJXZWVrcyBTdGFydCBvbiBNb25kYXkgQWdhaW4uLi4iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GLWktZi93ZWVrcy1zdGFydC1vbi1tb25kYXkiLAogICJ1dWlkIjogIndlZWtzLXN0YXJ0LW9uLW1vbmRheUBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYxNC0wLWdjNGIxNzI2IiwKICAidmVyc2lvbiI6IDE0Cn0="},
+    "40": {"version": "14", "sha256": "1zavccgxfqnf19qab2iwrprh966bl19a5n912sxyd9k3aagp64b3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIi4uLiBvciBtYXliZSBub3QsIGFuZCB0aGF0J3Mgd2h5IHRoZSBzdGFydCBkYXkgaXMgY29uZmlndXJhYmxlIGluIHRoZSBwcmVmZXJlbmNlcy5cblxuVGhpcyBpcyBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdGhlIFwiV2Vla3MgU3RhcnQgb24gTW9uZGF5XCIgZXh0ZW5zaW9uIGZvciBuZXdlciBHbm9tZSBTaGVsbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAibmFtZSI6ICJXZWVrcyBTdGFydCBvbiBNb25kYXkgQWdhaW4uLi4iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GLWktZi93ZWVrcy1zdGFydC1vbi1tb25kYXkiLAogICJ1dWlkIjogIndlZWtzLXN0YXJ0LW9uLW1vbmRheUBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYxNC0wLWdjNGIxNzI2IiwKICAidmVyc2lvbiI6IDE0Cn0="},
+    "41": {"version": "14", "sha256": "1zavccgxfqnf19qab2iwrprh966bl19a5n912sxyd9k3aagp64b3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIi4uLiBvciBtYXliZSBub3QsIGFuZCB0aGF0J3Mgd2h5IHRoZSBzdGFydCBkYXkgaXMgY29uZmlndXJhYmxlIGluIHRoZSBwcmVmZXJlbmNlcy5cblxuVGhpcyBpcyBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdGhlIFwiV2Vla3MgU3RhcnQgb24gTW9uZGF5XCIgZXh0ZW5zaW9uIGZvciBuZXdlciBHbm9tZSBTaGVsbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAibmFtZSI6ICJXZWVrcyBTdGFydCBvbiBNb25kYXkgQWdhaW4uLi4iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GLWktZi93ZWVrcy1zdGFydC1vbi1tb25kYXkiLAogICJ1dWlkIjogIndlZWtzLXN0YXJ0LW9uLW1vbmRheUBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYxNC0wLWdjNGIxNzI2IiwKICAidmVyc2lvbiI6IDE0Cn0="},
+    "42": {"version": "14", "sha256": "1zavccgxfqnf19qab2iwrprh966bl19a5n912sxyd9k3aagp64b3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIi4uLiBvciBtYXliZSBub3QsIGFuZCB0aGF0J3Mgd2h5IHRoZSBzdGFydCBkYXkgaXMgY29uZmlndXJhYmxlIGluIHRoZSBwcmVmZXJlbmNlcy5cblxuVGhpcyBpcyBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdGhlIFwiV2Vla3MgU3RhcnQgb24gTW9uZGF5XCIgZXh0ZW5zaW9uIGZvciBuZXdlciBHbm9tZSBTaGVsbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAibmFtZSI6ICJXZWVrcyBTdGFydCBvbiBNb25kYXkgQWdhaW4uLi4iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GLWktZi93ZWVrcy1zdGFydC1vbi1tb25kYXkiLAogICJ1dWlkIjogIndlZWtzLXN0YXJ0LW9uLW1vbmRheUBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYxNC0wLWdjNGIxNzI2IiwKICAidmVyc2lvbiI6IDE0Cn0="},
+    "43": {"version": "14", "sha256": "1zavccgxfqnf19qab2iwrprh966bl19a5n912sxyd9k3aagp64b3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIi4uLiBvciBtYXliZSBub3QsIGFuZCB0aGF0J3Mgd2h5IHRoZSBzdGFydCBkYXkgaXMgY29uZmlndXJhYmxlIGluIHRoZSBwcmVmZXJlbmNlcy5cblxuVGhpcyBpcyBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdGhlIFwiV2Vla3MgU3RhcnQgb24gTW9uZGF5XCIgZXh0ZW5zaW9uIGZvciBuZXdlciBHbm9tZSBTaGVsbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAibmFtZSI6ICJXZWVrcyBTdGFydCBvbiBNb25kYXkgQWdhaW4uLi4iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GLWktZi93ZWVrcy1zdGFydC1vbi1tb25kYXkiLAogICJ1dWlkIjogIndlZWtzLXN0YXJ0LW9uLW1vbmRheUBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYxNC0wLWdjNGIxNzI2IiwKICAidmVyc2lvbiI6IDE0Cn0="},
+    "44": {"version": "14", "sha256": "1zavccgxfqnf19qab2iwrprh966bl19a5n912sxyd9k3aagp64b3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIi4uLiBvciBtYXliZSBub3QsIGFuZCB0aGF0J3Mgd2h5IHRoZSBzdGFydCBkYXkgaXMgY29uZmlndXJhYmxlIGluIHRoZSBwcmVmZXJlbmNlcy5cblxuVGhpcyBpcyBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdGhlIFwiV2Vla3MgU3RhcnQgb24gTW9uZGF5XCIgZXh0ZW5zaW9uIGZvciBuZXdlciBHbm9tZSBTaGVsbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAibmFtZSI6ICJXZWVrcyBTdGFydCBvbiBNb25kYXkgQWdhaW4uLi4iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GLWktZi93ZWVrcy1zdGFydC1vbi1tb25kYXkiLAogICJ1dWlkIjogIndlZWtzLXN0YXJ0LW9uLW1vbmRheUBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYxNC0wLWdjNGIxNzI2IiwKICAidmVyc2lvbiI6IDE0Cn0="},
+    "45": {"version": "16", "sha256": "009g8qssa801s3hc5f8slpmm5fqv98iryvsh67g966wl8kj5p3av", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIi4uLiBvciBtYXliZSBub3QsIGFuZCB0aGF0J3Mgd2h5IHRoZSBzdGFydCBkYXkgaXMgY29uZmlndXJhYmxlIGluIHRoZSBwcmVmZXJlbmNlcy5cblxuVGhpcyBpcyBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdGhlIFwiV2Vla3MgU3RhcnQgb24gTW9uZGF5XCIgZXh0ZW5zaW9uIGZvciBuZXdlciBHbm9tZSBTaGVsbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAibmFtZSI6ICJXZWVrcyBTdGFydCBvbiBNb25kYXkgQWdhaW4uLi4iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0YtaS1mL3dlZWtzLXN0YXJ0LW9uLW1vbmRheSIsCiAgInV1aWQiOiAid2Vla3Mtc3RhcnQtb24tbW9uZGF5QGV4dGVuc2lvbnMuZ25vbWUtc2hlbGwuZmlmaS5vcmciLAogICJ2Y3NfcmV2aXNpb24iOiAidjE2LTAtZ2JjZWJiNDgiLAogICJ2ZXJzaW9uIjogMTYKfQ=="}
   }}
 , {"uuid": "wintile@nowsci.com", "name": "WinTile", "pname": "wintile-windows-10-window-tiling-for-gnome", "description": "WinTile is a hotkey driven window tiling system for GNOME that imitates the standard Win-Arrow keys of Windows 10, allowing you to maximize, maximize to sides, or 1/4 sized to corner across a single or multiple monitors using just Super+Arrow.\n\nAs of v14, WinTile also supports:\n- 2-5 columns and 1-4 rows for standard or ultrawide monitors\n- Top/bottom half support\n- Mouse preview and snapping for placing windows\n- 'Maximize' mode, which adds/removes GNOME animations\n- 'Ultrawide-only' mode, to allow standard screens to have different cols/row than ultrawides\n- Portrait screens will automatically swap columns and rows\n- Add gaps around tiles to avoid the 'crowded elevator' feeling'\n- Ctrl+Super+Arrow to grow a tile in that direction if space is available\n- Ctrl+drag to drop a tile in a specific spot\n- Ctrl+Super+drag to draw a grid for the new tile", "link": "https://extensions.gnome.org/extension/1723/wintile-windows-10-window-tiling-for-gnome/", "shell_version_map": {
     "38": {"version": "15", "sha256": "14phsrk15m0l7k01jbzxb5iyfxkq414zmgx8byj644wh99r7jx22", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldpblRpbGUgaXMgYSBob3RrZXkgZHJpdmVuIHdpbmRvdyB0aWxpbmcgc3lzdGVtIGZvciBHTk9NRSB0aGF0IGltaXRhdGVzIHRoZSBzdGFuZGFyZCBXaW4tQXJyb3cga2V5cyBvZiBXaW5kb3dzIDEwLCBhbGxvd2luZyB5b3UgdG8gbWF4aW1pemUsIG1heGltaXplIHRvIHNpZGVzLCBvciAxLzQgc2l6ZWQgdG8gY29ybmVyIGFjcm9zcyBhIHNpbmdsZSBvciBtdWx0aXBsZSBtb25pdG9ycyB1c2luZyBqdXN0IFN1cGVyK0Fycm93LlxuXG5BcyBvZiB2MTQsIFdpblRpbGUgYWxzbyBzdXBwb3J0czpcbi0gMi01IGNvbHVtbnMgYW5kIDEtNCByb3dzIGZvciBzdGFuZGFyZCBvciB1bHRyYXdpZGUgbW9uaXRvcnNcbi0gVG9wL2JvdHRvbSBoYWxmIHN1cHBvcnRcbi0gTW91c2UgcHJldmlldyBhbmQgc25hcHBpbmcgZm9yIHBsYWNpbmcgd2luZG93c1xuLSAnTWF4aW1pemUnIG1vZGUsIHdoaWNoIGFkZHMvcmVtb3ZlcyBHTk9NRSBhbmltYXRpb25zXG4tICdVbHRyYXdpZGUtb25seScgbW9kZSwgdG8gYWxsb3cgc3RhbmRhcmQgc2NyZWVucyB0byBoYXZlIGRpZmZlcmVudCBjb2xzL3JvdyB0aGFuIHVsdHJhd2lkZXNcbi0gUG9ydHJhaXQgc2NyZWVucyB3aWxsIGF1dG9tYXRpY2FsbHkgc3dhcCBjb2x1bW5zIGFuZCByb3dzXG4tIEFkZCBnYXBzIGFyb3VuZCB0aWxlcyB0byBhdm9pZCB0aGUgJ2Nyb3dkZWQgZWxldmF0b3InIGZlZWxpbmcnXG4tIEN0cmwrU3VwZXIrQXJyb3cgdG8gZ3JvdyBhIHRpbGUgaW4gdGhhdCBkaXJlY3Rpb24gaWYgc3BhY2UgaXMgYXZhaWxhYmxlXG4tIEN0cmwrZHJhZyB0byBkcm9wIGEgdGlsZSBpbiBhIHNwZWNpZmljIHNwb3Rcbi0gQ3RybCtTdXBlcitkcmFnIHRvIGRyYXcgYSBncmlkIGZvciB0aGUgbmV3IHRpbGUiLAogICJuYW1lIjogIldpblRpbGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2ludGlsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZm1zdHJhdC93aW50aWxlIiwKICAidXVpZCI6ICJ3aW50aWxlQG5vd3NjaS5jb20iLAogICJ2ZXJzaW9uIjogMTUKfQ=="},
@@ -1749,7 +1757,7 @@
     "42": {"version": "63", "sha256": "0c1zlpkbs1a1vsnlvg7if29dmw535bgybm5glczdki2fgdzrchw5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImRpbmdAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogNjMKfQ=="},
     "43": {"version": "63", "sha256": "0c1zlpkbs1a1vsnlvg7if29dmw535bgybm5glczdki2fgdzrchw5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImRpbmdAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogNjMKfQ=="},
     "44": {"version": "63", "sha256": "0c1zlpkbs1a1vsnlvg7if29dmw535bgybm5glczdki2fgdzrchw5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImRpbmdAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogNjMKfQ=="},
-    "45": {"version": "66", "sha256": "0ifwwbnl4xwf9dy2ypz1088pb2ynqvqhynpnlwcw6pn5akyy6y2v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3Jhc3RlcnNvZnQvZGVza3RvcC1pY29ucy1uZyIsCiAgInV1aWQiOiAiZGluZ0ByYXN0ZXJzb2Z0LmNvbSIsCiAgInZlcnNpb24iOiA2Ngp9"}
+    "45": {"version": "67", "sha256": "02j0xw8zm7bfsg2dhp1d70x6fjz2psl1999bcbd83fsq88456n2q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImRpbmdAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogNjcKfQ=="}
   }}
 , {"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": {
     "38": {"version": "6", "sha256": "0hcbjrhrg11f5p23bhss75nhc9sqlh6p1bmfq7p7m7d276ckdmkk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJGaXhlcyBvcmRlciBvZiBnbm9tZS1zaGVsbCBleHRlbnNpb25zIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICIzLjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm9yZGVyLWV4dGVuc2lvbnNAd2E0NTU3LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"},
@@ -1819,14 +1827,14 @@
     "38": {"version": "6", "sha256": "1bvzlqfhwlk1sh9q3538yipjwzgndd4wnn2l8wc3sshb93ggvpg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImFkZHMgYSBiaW5hcnkgY2xvY2sgdG8gdGhlIGdub21lIGJhciIsCiAgIm5hbWUiOiAiYmluYXJ5Y2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzQiLAogICAgIjMuMzIuMiIsCiAgICAiMy4zOCIsCiAgICAiMy4zNi43IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ZhbmNoYS9nbm9tZVNoZWxsQmluYXJ5Q2xvY2svIiwKICAidXVpZCI6ICJiaW5hcnljbG9ja0B2YW5jaGEubWFyY2giLAogICJ2ZXJzaW9uIjogNgp9"},
     "40": {"version": "6", "sha256": "1bvzlqfhwlk1sh9q3538yipjwzgndd4wnn2l8wc3sshb93ggvpg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImFkZHMgYSBiaW5hcnkgY2xvY2sgdG8gdGhlIGdub21lIGJhciIsCiAgIm5hbWUiOiAiYmluYXJ5Y2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzQiLAogICAgIjMuMzIuMiIsCiAgICAiMy4zOCIsCiAgICAiMy4zNi43IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ZhbmNoYS9nbm9tZVNoZWxsQmluYXJ5Q2xvY2svIiwKICAidXVpZCI6ICJiaW5hcnljbG9ja0B2YW5jaGEubWFyY2giLAogICJ2ZXJzaW9uIjogNgp9"}
   }}
-, {"uuid": "lgbutton@glerro.gnome.gitlab.io", "name": "Looking Glass Button", "pname": "looking-glass-button", "description": "Toggle the Looking Glass visibility by clicking on a panel icon.\n\nAnd from version 4 left clicking on the icon show a menu with new features like Restart Gnome Shell (not available on Wayland), Reload Theme, Open Extension Folder and Open Theme Folder (the last two require that xdg-open is installed).\n\nVersion 4 also drop the compatibility with Gnome Shell 3.30.", "link": "https://extensions.gnome.org/extension/2296/looking-glass-button/", "shell_version_map": {
+, {"uuid": "lgbutton@glerro.gnome.gitlab.io", "name": "Looking Glass Button", "pname": "looking-glass-button", "description": "Toggle the Looking Glass visibility by clicking on a panel icon.\n\nAnd from version 4 left clicking on the icon show a menu with new features like Restart Gnome Shell (not available on Wayland), Reload Theme, Open Extension Folder and Open Theme Folder.\n\nVersion 4 also drop the compatibility with Gnome Shell 3.30.", "link": "https://extensions.gnome.org/extension/2296/looking-glass-button/", "shell_version_map": {
     "38": {"version": "12", "sha256": "083h60v38xrqx88i6zisln318gfd12knzangl1x06crf3bk7xx06", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB0aGUgTG9va2luZyBHbGFzcyB2aXNpYmlsaXR5IGJ5IGNsaWNraW5nIG9uIGEgcGFuZWwgaWNvbi5cblxuQW5kIGZyb20gdmVyc2lvbiA0IGxlZnQgY2xpY2tpbmcgb24gdGhlIGljb24gc2hvdyBhIG1lbnUgd2l0aCBuZXcgZmVhdHVyZXMgbGlrZSBSZXN0YXJ0IEdub21lIFNoZWxsIChub3QgYXZhaWxhYmxlIG9uIFdheWxhbmQpLCBSZWxvYWQgVGhlbWUsIE9wZW4gRXh0ZW5zaW9uIEZvbGRlciBhbmQgT3BlbiBUaGVtZSBGb2xkZXIgKHRoZSBsYXN0IHR3byByZXF1aXJlIHRoYXQgeGRnLW9wZW4gaXMgaW5zdGFsbGVkKS5cblxuVmVyc2lvbiA0IGFsc28gZHJvcCB0aGUgY29tcGF0aWJpbGl0eSB3aXRoIEdub21lIFNoZWxsIDMuMzAuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxnYnV0dG9uIiwKICAibmFtZSI6ICJMb29raW5nIEdsYXNzIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sZ2J1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1sZ2J1dHRvbiIsCiAgInV1aWQiOiAibGdidXR0b25AZ2xlcnJvLmdub21lLmdpdGxhYi5pbyIsCiAgInZlcnNpb24iOiAxMgp9"},
     "40": {"version": "12", "sha256": "083h60v38xrqx88i6zisln318gfd12knzangl1x06crf3bk7xx06", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB0aGUgTG9va2luZyBHbGFzcyB2aXNpYmlsaXR5IGJ5IGNsaWNraW5nIG9uIGEgcGFuZWwgaWNvbi5cblxuQW5kIGZyb20gdmVyc2lvbiA0IGxlZnQgY2xpY2tpbmcgb24gdGhlIGljb24gc2hvdyBhIG1lbnUgd2l0aCBuZXcgZmVhdHVyZXMgbGlrZSBSZXN0YXJ0IEdub21lIFNoZWxsIChub3QgYXZhaWxhYmxlIG9uIFdheWxhbmQpLCBSZWxvYWQgVGhlbWUsIE9wZW4gRXh0ZW5zaW9uIEZvbGRlciBhbmQgT3BlbiBUaGVtZSBGb2xkZXIgKHRoZSBsYXN0IHR3byByZXF1aXJlIHRoYXQgeGRnLW9wZW4gaXMgaW5zdGFsbGVkKS5cblxuVmVyc2lvbiA0IGFsc28gZHJvcCB0aGUgY29tcGF0aWJpbGl0eSB3aXRoIEdub21lIFNoZWxsIDMuMzAuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxnYnV0dG9uIiwKICAibmFtZSI6ICJMb29raW5nIEdsYXNzIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sZ2J1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1sZ2J1dHRvbiIsCiAgInV1aWQiOiAibGdidXR0b25AZ2xlcnJvLmdub21lLmdpdGxhYi5pbyIsCiAgInZlcnNpb24iOiAxMgp9"},
     "41": {"version": "12", "sha256": "083h60v38xrqx88i6zisln318gfd12knzangl1x06crf3bk7xx06", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB0aGUgTG9va2luZyBHbGFzcyB2aXNpYmlsaXR5IGJ5IGNsaWNraW5nIG9uIGEgcGFuZWwgaWNvbi5cblxuQW5kIGZyb20gdmVyc2lvbiA0IGxlZnQgY2xpY2tpbmcgb24gdGhlIGljb24gc2hvdyBhIG1lbnUgd2l0aCBuZXcgZmVhdHVyZXMgbGlrZSBSZXN0YXJ0IEdub21lIFNoZWxsIChub3QgYXZhaWxhYmxlIG9uIFdheWxhbmQpLCBSZWxvYWQgVGhlbWUsIE9wZW4gRXh0ZW5zaW9uIEZvbGRlciBhbmQgT3BlbiBUaGVtZSBGb2xkZXIgKHRoZSBsYXN0IHR3byByZXF1aXJlIHRoYXQgeGRnLW9wZW4gaXMgaW5zdGFsbGVkKS5cblxuVmVyc2lvbiA0IGFsc28gZHJvcCB0aGUgY29tcGF0aWJpbGl0eSB3aXRoIEdub21lIFNoZWxsIDMuMzAuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxnYnV0dG9uIiwKICAibmFtZSI6ICJMb29raW5nIEdsYXNzIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sZ2J1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1sZ2J1dHRvbiIsCiAgInV1aWQiOiAibGdidXR0b25AZ2xlcnJvLmdub21lLmdpdGxhYi5pbyIsCiAgInZlcnNpb24iOiAxMgp9"},
     "42": {"version": "12", "sha256": "083h60v38xrqx88i6zisln318gfd12knzangl1x06crf3bk7xx06", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB0aGUgTG9va2luZyBHbGFzcyB2aXNpYmlsaXR5IGJ5IGNsaWNraW5nIG9uIGEgcGFuZWwgaWNvbi5cblxuQW5kIGZyb20gdmVyc2lvbiA0IGxlZnQgY2xpY2tpbmcgb24gdGhlIGljb24gc2hvdyBhIG1lbnUgd2l0aCBuZXcgZmVhdHVyZXMgbGlrZSBSZXN0YXJ0IEdub21lIFNoZWxsIChub3QgYXZhaWxhYmxlIG9uIFdheWxhbmQpLCBSZWxvYWQgVGhlbWUsIE9wZW4gRXh0ZW5zaW9uIEZvbGRlciBhbmQgT3BlbiBUaGVtZSBGb2xkZXIgKHRoZSBsYXN0IHR3byByZXF1aXJlIHRoYXQgeGRnLW9wZW4gaXMgaW5zdGFsbGVkKS5cblxuVmVyc2lvbiA0IGFsc28gZHJvcCB0aGUgY29tcGF0aWJpbGl0eSB3aXRoIEdub21lIFNoZWxsIDMuMzAuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxnYnV0dG9uIiwKICAibmFtZSI6ICJMb29raW5nIEdsYXNzIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sZ2J1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1sZ2J1dHRvbiIsCiAgInV1aWQiOiAibGdidXR0b25AZ2xlcnJvLmdub21lLmdpdGxhYi5pbyIsCiAgInZlcnNpb24iOiAxMgp9"},
     "43": {"version": "12", "sha256": "083h60v38xrqx88i6zisln318gfd12knzangl1x06crf3bk7xx06", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB0aGUgTG9va2luZyBHbGFzcyB2aXNpYmlsaXR5IGJ5IGNsaWNraW5nIG9uIGEgcGFuZWwgaWNvbi5cblxuQW5kIGZyb20gdmVyc2lvbiA0IGxlZnQgY2xpY2tpbmcgb24gdGhlIGljb24gc2hvdyBhIG1lbnUgd2l0aCBuZXcgZmVhdHVyZXMgbGlrZSBSZXN0YXJ0IEdub21lIFNoZWxsIChub3QgYXZhaWxhYmxlIG9uIFdheWxhbmQpLCBSZWxvYWQgVGhlbWUsIE9wZW4gRXh0ZW5zaW9uIEZvbGRlciBhbmQgT3BlbiBUaGVtZSBGb2xkZXIgKHRoZSBsYXN0IHR3byByZXF1aXJlIHRoYXQgeGRnLW9wZW4gaXMgaW5zdGFsbGVkKS5cblxuVmVyc2lvbiA0IGFsc28gZHJvcCB0aGUgY29tcGF0aWJpbGl0eSB3aXRoIEdub21lIFNoZWxsIDMuMzAuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxnYnV0dG9uIiwKICAibmFtZSI6ICJMb29raW5nIEdsYXNzIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sZ2J1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1sZ2J1dHRvbiIsCiAgInV1aWQiOiAibGdidXR0b25AZ2xlcnJvLmdub21lLmdpdGxhYi5pbyIsCiAgInZlcnNpb24iOiAxMgp9"},
     "44": {"version": "12", "sha256": "083h60v38xrqx88i6zisln318gfd12knzangl1x06crf3bk7xx06", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB0aGUgTG9va2luZyBHbGFzcyB2aXNpYmlsaXR5IGJ5IGNsaWNraW5nIG9uIGEgcGFuZWwgaWNvbi5cblxuQW5kIGZyb20gdmVyc2lvbiA0IGxlZnQgY2xpY2tpbmcgb24gdGhlIGljb24gc2hvdyBhIG1lbnUgd2l0aCBuZXcgZmVhdHVyZXMgbGlrZSBSZXN0YXJ0IEdub21lIFNoZWxsIChub3QgYXZhaWxhYmxlIG9uIFdheWxhbmQpLCBSZWxvYWQgVGhlbWUsIE9wZW4gRXh0ZW5zaW9uIEZvbGRlciBhbmQgT3BlbiBUaGVtZSBGb2xkZXIgKHRoZSBsYXN0IHR3byByZXF1aXJlIHRoYXQgeGRnLW9wZW4gaXMgaW5zdGFsbGVkKS5cblxuVmVyc2lvbiA0IGFsc28gZHJvcCB0aGUgY29tcGF0aWJpbGl0eSB3aXRoIEdub21lIFNoZWxsIDMuMzAuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxnYnV0dG9uIiwKICAibmFtZSI6ICJMb29raW5nIEdsYXNzIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sZ2J1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1sZ2J1dHRvbiIsCiAgInV1aWQiOiAibGdidXR0b25AZ2xlcnJvLmdub21lLmdpdGxhYi5pbyIsCiAgInZlcnNpb24iOiAxMgp9"},
-    "45": {"version": "15", "sha256": "1hslk86lzm4q6lrb7gpigpxwvhrv2cnas5f6v7cc4vg27pw9lm0f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB0aGUgTG9va2luZyBHbGFzcyB2aXNpYmlsaXR5IGJ5IGNsaWNraW5nIG9uIGEgcGFuZWwgaWNvbi5cblxuQW5kIGZyb20gdmVyc2lvbiA0IGxlZnQgY2xpY2tpbmcgb24gdGhlIGljb24gc2hvdyBhIG1lbnUgd2l0aCBuZXcgZmVhdHVyZXMgbGlrZSBSZXN0YXJ0IEdub21lIFNoZWxsIChub3QgYXZhaWxhYmxlIG9uIFdheWxhbmQpLCBSZWxvYWQgVGhlbWUsIE9wZW4gRXh0ZW5zaW9uIEZvbGRlciBhbmQgT3BlbiBUaGVtZSBGb2xkZXIgKHRoZSBsYXN0IHR3byByZXF1aXJlIHRoYXQgeGRnLW9wZW4gaXMgaW5zdGFsbGVkKS5cblxuVmVyc2lvbiA0IGFsc28gZHJvcCB0aGUgY29tcGF0aWJpbGl0eSB3aXRoIEdub21lIFNoZWxsIDMuMzAuIiwKICAiZG9uYXRpb25zIjogewogICAgImtvZmkiOiAiZ2xlcnJvIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1sZ2J1dHRvbiIsCiAgIm5hbWUiOiAiTG9va2luZyBHbGFzcyBCdXR0b24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubGdidXR0b24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1sZ2J1dHRvbiIsCiAgInV1aWQiOiAibGdidXR0b25AZ2xlcnJvLmdub21lLmdpdGxhYi5pbyIsCiAgInZlcnNpb24iOiAxNQp9"}
+    "45": {"version": "16", "sha256": "08jhraf4rdsd15974224v659s25500nq0fxsq6p04c994zc70bks", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB0aGUgTG9va2luZyBHbGFzcyB2aXNpYmlsaXR5IGJ5IGNsaWNraW5nIG9uIGEgcGFuZWwgaWNvbi5cblxuQW5kIGZyb20gdmVyc2lvbiA0IGxlZnQgY2xpY2tpbmcgb24gdGhlIGljb24gc2hvdyBhIG1lbnUgd2l0aCBuZXcgZmVhdHVyZXMgbGlrZSBSZXN0YXJ0IEdub21lIFNoZWxsIChub3QgYXZhaWxhYmxlIG9uIFdheWxhbmQpLCBSZWxvYWQgVGhlbWUsIE9wZW4gRXh0ZW5zaW9uIEZvbGRlciBhbmQgT3BlbiBUaGVtZSBGb2xkZXIuXG5cblZlcnNpb24gNCBhbHNvIGRyb3AgdGhlIGNvbXBhdGliaWxpdHkgd2l0aCBHbm9tZSBTaGVsbCAzLjMwLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImdsZXJybyIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGdidXR0b24iLAogICJuYW1lIjogIkxvb2tpbmcgR2xhc3MgQnV0dG9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxnYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9nbGVycm8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxnYnV0dG9uIiwKICAidXVpZCI6ICJsZ2J1dHRvbkBnbGVycm8uZ25vbWUuZ2l0bGFiLmlvIiwKICAidmVyc2lvbiI6IDE2Cn0="}
   }}
 , {"uuid": "tp_wattmeter@gistart", "name": "tp_wattmeter", "pname": "tp_wattmeter", "description": "Shows battery power consumption of ThinkPad laptops. Now configurable!", "link": "https://extensions.gnome.org/extension/2308/tp_wattmeter/", "shell_version_map": {
     "40": {"version": "11", "sha256": "1sw6mq3fgzv1jl33yf08rgd1fzqb17c5qvq41gq5b6kgn1cs36ji", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGJhdHRlcnkgcG93ZXIgY29uc3VtcHRpb24gb2YgVGhpbmtQYWQgbGFwdG9wcy4gTm93IGNvbmZpZ3VyYWJsZSEiLAogICJuYW1lIjogInRwX3dhdHRtZXRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dpc3RhcnQvdHBfd2F0dG1ldGVyIiwKICAidXVpZCI6ICJ0cF93YXR0bWV0ZXJAZ2lzdGFydCIsCiAgInZlcnNpb24iOiAxMQp9"},
@@ -1869,7 +1877,8 @@
     "41": {"version": "46", "sha256": "0z3anwi0kbsn9adbsmczcbywnasqq3xvkq190jbxmvbh9bxaawrz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSByZW1pbmRlciBhbGFybSBjbG9jayB3aWxsIHJlbWluZCB5b3Ugb2YgYW4gaW1wb3J0YW50IGV2ZW50IGF0IHRoZSBhcHBvaW50ZWQgdGltZS4iLAogICJuYW1lIjogIlJlbWluZGVyIEFsYXJtIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90cmlmb25vdmt2L1JlbWluZGVyQWxhcm1DbG9jayIsCiAgInV1aWQiOiAicmVtaW5kZXJfYWxhcm1fY2xvY2tAdHJpZm9ub3Zrdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDYKfQ=="},
     "42": {"version": "46", "sha256": "0z3anwi0kbsn9adbsmczcbywnasqq3xvkq190jbxmvbh9bxaawrz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSByZW1pbmRlciBhbGFybSBjbG9jayB3aWxsIHJlbWluZCB5b3Ugb2YgYW4gaW1wb3J0YW50IGV2ZW50IGF0IHRoZSBhcHBvaW50ZWQgdGltZS4iLAogICJuYW1lIjogIlJlbWluZGVyIEFsYXJtIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90cmlmb25vdmt2L1JlbWluZGVyQWxhcm1DbG9jayIsCiAgInV1aWQiOiAicmVtaW5kZXJfYWxhcm1fY2xvY2tAdHJpZm9ub3Zrdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDYKfQ=="},
     "43": {"version": "46", "sha256": "0z3anwi0kbsn9adbsmczcbywnasqq3xvkq190jbxmvbh9bxaawrz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSByZW1pbmRlciBhbGFybSBjbG9jayB3aWxsIHJlbWluZCB5b3Ugb2YgYW4gaW1wb3J0YW50IGV2ZW50IGF0IHRoZSBhcHBvaW50ZWQgdGltZS4iLAogICJuYW1lIjogIlJlbWluZGVyIEFsYXJtIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90cmlmb25vdmt2L1JlbWluZGVyQWxhcm1DbG9jayIsCiAgInV1aWQiOiAicmVtaW5kZXJfYWxhcm1fY2xvY2tAdHJpZm9ub3Zrdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDYKfQ=="},
-    "44": {"version": "46", "sha256": "0z3anwi0kbsn9adbsmczcbywnasqq3xvkq190jbxmvbh9bxaawrz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSByZW1pbmRlciBhbGFybSBjbG9jayB3aWxsIHJlbWluZCB5b3Ugb2YgYW4gaW1wb3J0YW50IGV2ZW50IGF0IHRoZSBhcHBvaW50ZWQgdGltZS4iLAogICJuYW1lIjogIlJlbWluZGVyIEFsYXJtIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90cmlmb25vdmt2L1JlbWluZGVyQWxhcm1DbG9jayIsCiAgInV1aWQiOiAicmVtaW5kZXJfYWxhcm1fY2xvY2tAdHJpZm9ub3Zrdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDYKfQ=="}
+    "44": {"version": "46", "sha256": "0z3anwi0kbsn9adbsmczcbywnasqq3xvkq190jbxmvbh9bxaawrz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSByZW1pbmRlciBhbGFybSBjbG9jayB3aWxsIHJlbWluZCB5b3Ugb2YgYW4gaW1wb3J0YW50IGV2ZW50IGF0IHRoZSBhcHBvaW50ZWQgdGltZS4iLAogICJuYW1lIjogIlJlbWluZGVyIEFsYXJtIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90cmlmb25vdmt2L1JlbWluZGVyQWxhcm1DbG9jayIsCiAgInV1aWQiOiAicmVtaW5kZXJfYWxhcm1fY2xvY2tAdHJpZm9ub3Zrdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDYKfQ=="},
+    "45": {"version": "48", "sha256": "0mgqiw41rfcaadba02rcnldkqdmsn28lwvisdxyyd2ly2yh3cbkb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSByZW1pbmRlciBhbGFybSBjbG9jayB3aWxsIHJlbWluZCB5b3Ugb2YgYW4gaW1wb3J0YW50IGV2ZW50IGF0IHRoZSBhcHBvaW50ZWQgdGltZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJyZW1pbmRlckFsYXJtQ2xvY2siLAogICJuYW1lIjogIlJlbWluZGVyIEFsYXJtIENsb2NrIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnJlbWluZGVyYWxhcm1jbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90cmlmb25vdmt2L1JlbWluZGVyQWxhcm1DbG9jayIsCiAgInV1aWQiOiAicmVtaW5kZXJfYWxhcm1fY2xvY2tAdHJpZm9ub3Zrdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDgKfQ=="}
   }}
 , {"uuid": "TaskBar@c0ldplasma", "name": "TaskBar 2020", "pname": "taskbar-updated", "description": "!!! Development stopped !!!!  Look at Dash to Panel as an alternative: https://extensions.gnome.org/extension/1160/dash-to-panel/\n\n----------------------------------------------------------------------\n\nTaskBar 2020 displays icons of running applications and favorites on the top panel or alternatively on a new bottom panel. Activate, minimize or close tasks with a simple click. \n\nTaskBar 2020 is a dock-like windows list on the top/bottom bar. \n\nFork of zpydr/gnome-shell-extension-taskbar to support newer versions of GNOME", "link": "https://extensions.gnome.org/extension/2506/taskbar-updated/", "shell_version_map": {
     "38": {"version": "5", "sha256": "09yn1p0vmq70ll7vi3jdjvj479cm38r4am0mw08nca8hl4zdiamj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiEhISBEZXZlbG9wbWVudCBzdG9wcGVkICEhISEgIExvb2sgYXQgRGFzaCB0byBQYW5lbCBhcyBhbiBhbHRlcm5hdGl2ZTogaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTE2MC9kYXNoLXRvLXBhbmVsL1xuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblRhc2tCYXIgMjAyMCBkaXNwbGF5cyBpY29ucyBvZiBydW5uaW5nIGFwcGxpY2F0aW9ucyBhbmQgZmF2b3JpdGVzIG9uIHRoZSB0b3AgcGFuZWwgb3IgYWx0ZXJuYXRpdmVseSBvbiBhIG5ldyBib3R0b20gcGFuZWwuIEFjdGl2YXRlLCBtaW5pbWl6ZSBvciBjbG9zZSB0YXNrcyB3aXRoIGEgc2ltcGxlIGNsaWNrLiBcblxuVGFza0JhciAyMDIwIGlzIGEgZG9jay1saWtlIHdpbmRvd3MgbGlzdCBvbiB0aGUgdG9wL2JvdHRvbSBiYXIuIFxuXG5Gb3JrIG9mIHpweWRyL2dub21lLXNoZWxsLWV4dGVuc2lvbi10YXNrYmFyIHRvIHN1cHBvcnQgbmV3ZXIgdmVyc2lvbnMgb2YgR05PTUUiLAogICJuYW1lIjogIlRhc2tCYXIgMjAyMCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2MwbGRwbGFzbWEvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2tiYXIiLAogICJ1dWlkIjogIlRhc2tCYXJAYzBsZHBsYXNtYSIsCiAgInZlcnNpb24iOiA1Cn0="},
@@ -1894,13 +1903,14 @@
 , {"uuid": "maxi@darkretailer.github.com", "name": "Maxi", "pname": "maxi", "description": "Maximize your windows vertical and/or horizontal (based on https://github.com/aXe1/gnome-shell-extension-maximized-by-default)", "link": "https://extensions.gnome.org/extension/2554/maxi/", "shell_version_map": {
     "40": {"version": "5", "sha256": "121nd6ggr9id3yfsrkiza7rjq19638p156ym83i3j57ikz6r3ky5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1heGltaXplIHlvdXIgd2luZG93cyB2ZXJ0aWNhbCBhbmQvb3IgaG9yaXpvbnRhbCAoYmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL2FYZTEvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1heGltaXplZC1ieS1kZWZhdWx0KSIsCiAgImV4dGVuc2lvbi1pZCI6ICJtYXhpIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWF4aSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXhpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhcmtyZXRhaWxlci9nbm9tZS1zaGVsbC1leHRlbnNpb25fbWF4aSIsCiAgInV1aWQiOiAibWF4aUBkYXJrcmV0YWlsZXIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}
   }}
-, {"uuid": "gnordvpn-local@isopolito", "name": "gNordVPN-Local", "pname": "gnordvpn-local", "description": "A Gnome extension that shows the NordVPN status in the top bar and provides the ability to configure certain aspects of the connection.", "link": "https://extensions.gnome.org/extension/2569/gnordvpn-local/", "shell_version_map": {
+, {"uuid": "gnordvpn-local@isopolito", "name": "gNordVPN-Local", "pname": "gnordvpn-local", "description": "The most complete NordVPN extension for gnome. It shows the NordVPN status in the top bar and provides the ability to configure certain aspects of the connection.\n\nThe extension is highly configurable in both how it operates and how it looks.", "link": "https://extensions.gnome.org/extension/2569/gnordvpn-local/", "shell_version_map": {
     "38": {"version": "10", "sha256": "0xpw8n29y5j8vfb1fkxn8ph78m4bhi1k8q830g1zzpr3gmsabadi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIHRoYXQgc2hvd3MgdGhlIE5vcmRWUE4gc3RhdHVzIGluIHRoZSB0b3AgYmFyIGFuZCBwcm92aWRlcyB0aGUgYWJpbGl0eSB0byBjb25maWd1cmUgY2VydGFpbiBhc3BlY3RzIG9mIHRoZSBjb25uZWN0aW9uLiIsCiAgIm5hbWUiOiAiZ05vcmRWUE4tTG9jYWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzguMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiMy4zOC40IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSXNvcG9saXRvL2dOb3JkVlBOLUxvY2FsIiwKICAidXVpZCI6ICJnbm9yZHZwbi1sb2NhbEBpc29wb2xpdG8iLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
     "40": {"version": "15", "sha256": "14prrydkkvyq6kmznapjq31abk55v04bxdp3cx30gsdi6bkbfqav", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIHRoYXQgc2hvd3MgdGhlIE5vcmRWUE4gc3RhdHVzIGluIHRoZSB0b3AgYmFyIGFuZCBwcm92aWRlcyB0aGUgYWJpbGl0eSB0byBjb25maWd1cmUgY2VydGFpbiBhc3BlY3RzIG9mIHRoZSBjb25uZWN0aW9uLiIsCiAgIm5hbWUiOiAiZ05vcmRWUE4tTG9jYWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Jc29wb2xpdG8vZ05vcmRWUE4tTG9jYWwiLAogICJ1dWlkIjogImdub3JkdnBuLWxvY2FsQGlzb3BvbGl0byIsCiAgInZlcnNpb24iOiAxNQp9"},
     "41": {"version": "15", "sha256": "14prrydkkvyq6kmznapjq31abk55v04bxdp3cx30gsdi6bkbfqav", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIHRoYXQgc2hvd3MgdGhlIE5vcmRWUE4gc3RhdHVzIGluIHRoZSB0b3AgYmFyIGFuZCBwcm92aWRlcyB0aGUgYWJpbGl0eSB0byBjb25maWd1cmUgY2VydGFpbiBhc3BlY3RzIG9mIHRoZSBjb25uZWN0aW9uLiIsCiAgIm5hbWUiOiAiZ05vcmRWUE4tTG9jYWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Jc29wb2xpdG8vZ05vcmRWUE4tTG9jYWwiLAogICJ1dWlkIjogImdub3JkdnBuLWxvY2FsQGlzb3BvbGl0byIsCiAgInZlcnNpb24iOiAxNQp9"},
     "42": {"version": "23", "sha256": "1h6mwfjaqv56mxbc3yjaw9d008wacly4qigz7532mjzirmgpiqds", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIHRoYXQgc2hvd3MgdGhlIE5vcmRWUE4gc3RhdHVzIGluIHRoZSB0b3AgYmFyIGFuZCBwcm92aWRlcyB0aGUgYWJpbGl0eSB0byBjb25maWd1cmUgY2VydGFpbiBhc3BlY3RzIG9mIHRoZSBjb25uZWN0aW9uLiIsCiAgIm5hbWUiOiAiZ05vcmRWUE4tTG9jYWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Jc29wb2xpdG8vZ05vcmRWUE4tTG9jYWwiLAogICJ1dWlkIjogImdub3JkdnBuLWxvY2FsQGlzb3BvbGl0byIsCiAgInZlcnNpb24iOiAyMwp9"},
     "43": {"version": "23", "sha256": "1h6mwfjaqv56mxbc3yjaw9d008wacly4qigz7532mjzirmgpiqds", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIHRoYXQgc2hvd3MgdGhlIE5vcmRWUE4gc3RhdHVzIGluIHRoZSB0b3AgYmFyIGFuZCBwcm92aWRlcyB0aGUgYWJpbGl0eSB0byBjb25maWd1cmUgY2VydGFpbiBhc3BlY3RzIG9mIHRoZSBjb25uZWN0aW9uLiIsCiAgIm5hbWUiOiAiZ05vcmRWUE4tTG9jYWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Jc29wb2xpdG8vZ05vcmRWUE4tTG9jYWwiLAogICJ1dWlkIjogImdub3JkdnBuLWxvY2FsQGlzb3BvbGl0byIsCiAgInZlcnNpb24iOiAyMwp9"},
-    "44": {"version": "23", "sha256": "1h6mwfjaqv56mxbc3yjaw9d008wacly4qigz7532mjzirmgpiqds", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIHRoYXQgc2hvd3MgdGhlIE5vcmRWUE4gc3RhdHVzIGluIHRoZSB0b3AgYmFyIGFuZCBwcm92aWRlcyB0aGUgYWJpbGl0eSB0byBjb25maWd1cmUgY2VydGFpbiBhc3BlY3RzIG9mIHRoZSBjb25uZWN0aW9uLiIsCiAgIm5hbWUiOiAiZ05vcmRWUE4tTG9jYWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Jc29wb2xpdG8vZ05vcmRWUE4tTG9jYWwiLAogICJ1dWlkIjogImdub3JkdnBuLWxvY2FsQGlzb3BvbGl0byIsCiAgInZlcnNpb24iOiAyMwp9"}
+    "44": {"version": "23", "sha256": "1h6mwfjaqv56mxbc3yjaw9d008wacly4qigz7532mjzirmgpiqds", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIHRoYXQgc2hvd3MgdGhlIE5vcmRWUE4gc3RhdHVzIGluIHRoZSB0b3AgYmFyIGFuZCBwcm92aWRlcyB0aGUgYWJpbGl0eSB0byBjb25maWd1cmUgY2VydGFpbiBhc3BlY3RzIG9mIHRoZSBjb25uZWN0aW9uLiIsCiAgIm5hbWUiOiAiZ05vcmRWUE4tTG9jYWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Jc29wb2xpdG8vZ05vcmRWUE4tTG9jYWwiLAogICJ1dWlkIjogImdub3JkdnBuLWxvY2FsQGlzb3BvbGl0byIsCiAgInZlcnNpb24iOiAyMwp9"},
+    "45": {"version": "25", "sha256": "1djsf9hg2wpq3b6jyiqwr83bk8rx3nkarc512skl204wfib49gvj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIHRoYXQgc2hvd3MgdGhlIE5vcmRWUE4gc3RhdHVzIGluIHRoZSB0b3AgYmFyIGFuZCBwcm92aWRlcyB0aGUgYWJpbGl0eSB0byBjb25maWd1cmUgY2VydGFpbiBhc3BlY3RzIG9mIHRoZSBjb25uZWN0aW9uLiIsCiAgIm5hbWUiOiAiZ05vcmRWUE4tTG9jYWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSXNvcG9saXRvL2dOb3JkVlBOLUxvY2FsIiwKICAidXVpZCI6ICJnbm9yZHZwbi1sb2NhbEBpc29wb2xpdG8iLAogICJ2ZXJzaW9uIjogMjUKfQ=="}
   }}
 , {"uuid": "fully-transparent-top-bar@aunetx", "name": "Smart transparent topbar", "pname": "fully-transparent-top-bar", "description": "Permits to change topbar's look and feel when free-floating.\n\nIf you have issues or recommandations, you can tell me on github so I can see them!", "link": "https://extensions.gnome.org/extension/2588/fully-transparent-top-bar/", "shell_version_map": {
     "38": {"version": "11", "sha256": "1mksqaxw7jzzdghzii1bhhkbsccxb23qa69f3x6hg32ig9qi762x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBlcm1pdHMgdG8gY2hhbmdlIHRvcGJhcidzIGxvb2sgYW5kIGZlZWwgd2hlbiBmcmVlLWZsb2F0aW5nLlxuXG5JZiB5b3UgaGF2ZSBpc3N1ZXMgb3IgcmVjb21tYW5kYXRpb25zLCB5b3UgY2FuIHRlbGwgbWUgb24gZ2l0aHViIHNvIEkgY2FuIHNlZSB0aGVtISIsCiAgIm5hbWUiOiAiU21hcnQgdHJhbnNwYXJlbnQgdG9wYmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi10cmFuc3BhcmVudC10b3AtYmFyIiwKICAidXVpZCI6ICJmdWxseS10cmFuc3BhcmVudC10b3AtYmFyQGF1bmV0eCIsCiAgInZlcnNpb24iOiAxMQp9"}
@@ -2083,7 +2093,7 @@
     "42": {"version": "27", "sha256": "1bssg2w71qinr2hhsyv0rpps7876y91azpqcl3dhdgipki4n7yvq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibWVzc2FnaW5nbWVudSIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9tZXNzYWdpbmdtZW51IiwKICAidXVpZCI6ICJtZXNzYWdpbmdtZW51QGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMjcKfQ=="},
     "43": {"version": "27", "sha256": "1bssg2w71qinr2hhsyv0rpps7876y91azpqcl3dhdgipki4n7yvq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibWVzc2FnaW5nbWVudSIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9tZXNzYWdpbmdtZW51IiwKICAidXVpZCI6ICJtZXNzYWdpbmdtZW51QGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMjcKfQ=="},
     "44": {"version": "27", "sha256": "1bssg2w71qinr2hhsyv0rpps7876y91azpqcl3dhdgipki4n7yvq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibWVzc2FnaW5nbWVudSIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9tZXNzYWdpbmdtZW51IiwKICAidXVpZCI6ICJtZXNzYWdpbmdtZW51QGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMjcKfQ=="},
-    "45": {"version": "29", "sha256": "0nckyw1l4hscr90zv5whdblrppz3rps98xpv0a35pz2hraa2z0hp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm1lc3NhZ2luZ21lbnUiLAogICJuYW1lIjogIk1lc3NhZ2luZyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInNpbmlzdGVyc3R1ZiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tZXNzYWdpbmdtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9tZXNzYWdpbmdtZW51IiwKICAidXVpZCI6ICJtZXNzYWdpbmdtZW51QGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMjkKfQ=="}
+    "45": {"version": "30", "sha256": "1bm2xqmj4hbygwwzzd782nx5vwy8d1lw1msmi4p3542w3kwq31jb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm1lc3NhZ2luZ21lbnUiLAogICJuYW1lIjogIk1lc3NhZ2luZyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInNpbmlzdGVyc3R1ZiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tZXNzYWdpbmdtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9tZXNzYWdpbmdtZW51IiwKICAidXVpZCI6ICJtZXNzYWdpbmdtZW51QGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMzAsCiAgInZlcnNpb24tbmFtZSI6ICI0NS4wIgp9"}
   }}
 , {"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="},
@@ -2092,7 +2102,7 @@
     "42": {"version": "11", "sha256": "17na0a5bm4qkh1lcch9frpmlxn44kg7d4lx96lmpx8v0zp4v0c2a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSBxdWlja3NldHRpbmdzLiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyIsCiAgImxvY2FsZSI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2V0dGluZ3NDZW50ZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiWGVzLCBsMzAwbHZsIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLlNldHRpbmdzQ2VudGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2hyaXNMYXVpbmdlcjc3L1hFUy1TZXR0aW5ncy1DZW50ZXItRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJTZXR0aW5nc0NlbnRlckBsYXVpbmdlci1jbGFuLmRlIiwKICAidmVyc2lvbiI6IDExCn0="},
     "43": {"version": "22", "sha256": "0vpnp0w7h33p5as86a03i5sg6clfd61q7f4p40ab16i4fsyy0dyn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSBxdWlja3NldHRpbmdzLiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyIsCiAgImdldHRleHQtZG9tYWluIjogIlNldHRpbmdzQ2VudGVyIiwKICAibmFtZSI6ICJTZXR0aW5nc0NlbnRlciIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJYZXMsIGwzMDBsdmwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuU2V0dGluZ3NDZW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9YRVMtU2V0dGluZ3MtQ2VudGVyLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiU2V0dGluZ3NDZW50ZXJAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAyMgp9"},
     "44": {"version": "22", "sha256": "0vpnp0w7h33p5as86a03i5sg6clfd61q7f4p40ab16i4fsyy0dyn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSBxdWlja3NldHRpbmdzLiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyIsCiAgImdldHRleHQtZG9tYWluIjogIlNldHRpbmdzQ2VudGVyIiwKICAibmFtZSI6ICJTZXR0aW5nc0NlbnRlciIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJYZXMsIGwzMDBsdmwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuU2V0dGluZ3NDZW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9YRVMtU2V0dGluZ3MtQ2VudGVyLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiU2V0dGluZ3NDZW50ZXJAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAyMgp9"},
-    "45": {"version": "25", "sha256": "0g4bsymhdj7lj9iav6g8k7k4bnjnjqzj7vw61mqxn4i2xpvp9ybz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSBxdWlja3NldHRpbmdzLiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAiQ2hyaXNMYXVpbmdlcjc3IiwKICAgICJwYXlwYWwiOiAiQ2hyaXNMYXVpbmdlciIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTZXR0aW5nc0NlbnRlciIsCiAgIm5hbWUiOiAiU2V0dGluZ3NDZW50ZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiWGVzLCBsMzAwbHZsIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLlNldHRpbmdzQ2VudGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9YRVMtU2V0dGluZ3MtQ2VudGVyLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiU2V0dGluZ3NDZW50ZXJAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAyNQp9"}
+    "45": {"version": "26", "sha256": "16bh59fn02z5hq1svg2678479d0d600jq91k4y6xigzax1n7phvy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSBxdWlja3NldHRpbmdzLiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAiQ2hyaXNMYXVpbmdlcjc3IiwKICAgICJwYXlwYWwiOiAiQ2hyaXNMYXVpbmdlciIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTZXR0aW5nc0NlbnRlciIsCiAgIm5hbWUiOiAiU2V0dGluZ3NDZW50ZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiWGVzLCBsMzAwbHZsIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLlNldHRpbmdzQ2VudGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9YRVMtU2V0dGluZ3MtQ2VudGVyLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiU2V0dGluZ3NDZW50ZXJAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAyNiwKICAidmVyc2lvbi1uYW1lIjogIjQ1LjAiCn0="}
   }}
 , {"uuid": "auto-mute-toggle@garotosopa.github.io", "name": "Auto-mute toggle", "pname": "auto-mute-toggle", "description": "Toggle whether to auto-mute speakers when headphones are plugged in.", "link": "https://extensions.gnome.org/extension/2905/auto-mute-toggle/", "shell_version_map": {
     "40": {"version": "6", "sha256": "1lyh51gvsh9ydip77vjj8rigjiah97lh8gp91jcpqblwx69fs3dk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB3aGV0aGVyIHRvIGF1dG8tbXV0ZSBzcGVha2VycyB3aGVuIGhlYWRwaG9uZXMgYXJlIHBsdWdnZWQgaW4uIiwKICAibmFtZSI6ICJBdXRvLW11dGUgdG9nZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dhcm90b3NvcGEvZ3NlLWF1dG8tbXV0ZS10b2dnbGUiLAogICJ1dWlkIjogImF1dG8tbXV0ZS10b2dnbGVAZ2Fyb3Rvc29wYS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNgp9"}
@@ -2474,8 +2484,8 @@
     "40": {"version": "24", "sha256": "18drfdz739l0nhac3qlxjsik5ixqb3v1y1s55f1bjgszh69kzc6p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRleHQgb2YgeW91ciBjaG9pY2UgYWNyb3NzIHRoZSBzY3JlZW4uIENhbiBzaW11bGF0ZSBsZWF2ZXMsIHNub3csIGZpcmV3b3JrcywgdWZvcywgYW5kIG1vcmUhIiwKICAibmFtZSI6ICJEb3duRmFsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b3JjdWx1cy9Eb3duRmFsbCIsCiAgInV1aWQiOiAiZG93bmZhbGxAdG9yY3VsdXMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyNAp9"},
     "42": {"version": "24", "sha256": "18drfdz739l0nhac3qlxjsik5ixqb3v1y1s55f1bjgszh69kzc6p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRleHQgb2YgeW91ciBjaG9pY2UgYWNyb3NzIHRoZSBzY3JlZW4uIENhbiBzaW11bGF0ZSBsZWF2ZXMsIHNub3csIGZpcmV3b3JrcywgdWZvcywgYW5kIG1vcmUhIiwKICAibmFtZSI6ICJEb3duRmFsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b3JjdWx1cy9Eb3duRmFsbCIsCiAgInV1aWQiOiAiZG93bmZhbGxAdG9yY3VsdXMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyNAp9"},
     "43": {"version": "24", "sha256": "18drfdz739l0nhac3qlxjsik5ixqb3v1y1s55f1bjgszh69kzc6p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRleHQgb2YgeW91ciBjaG9pY2UgYWNyb3NzIHRoZSBzY3JlZW4uIENhbiBzaW11bGF0ZSBsZWF2ZXMsIHNub3csIGZpcmV3b3JrcywgdWZvcywgYW5kIG1vcmUhIiwKICAibmFtZSI6ICJEb3duRmFsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b3JjdWx1cy9Eb3duRmFsbCIsCiAgInV1aWQiOiAiZG93bmZhbGxAdG9yY3VsdXMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyNAp9"},
-    "44": {"version": "31", "sha256": "12lrqi5l7d0207cc5yvfdgy999cajbjm1xkpapix6g1x3nij2204", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRleHQgb2YgeW91ciBjaG9pY2UgYWNyb3NzIHRoZSBzY3JlZW4uIENhbiBzaW11bGF0ZSBsZWF2ZXMsIHNub3csIGZpcmV3b3JrcywgdWZvcywgYW5kIG1vcmUhIiwKICAibmFtZSI6ICJEb3duRmFsbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kb3duZmFsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b3JjdWx1cy9Eb3duRmFsbCIsCiAgInV1aWQiOiAiZG93bmZhbGxAdG9yY3VsdXMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzMQp9"},
-    "45": {"version": "34", "sha256": "1c3wsyr73rlph709gkwfg7g168vxizb3h5dhva3djlcgkm07idnw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRleHQgb2YgeW91ciBjaG9pY2UgYWNyb3NzIHRoZSBzY3JlZW4uIENhbiBzaW11bGF0ZSBsZWF2ZXMsIHNub3csIGZpcmV3b3JrcywgdWZvcywgYW5kIG1vcmUhIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZG93bmZhbGxAdG9yY3VsdXMuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiRG93bkZhbGwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZG93bmZhbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdG9yY3VsdXMvRG93bkZhbGwiLAogICJ1dWlkIjogImRvd25mYWxsQHRvcmN1bHVzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzQKfQ=="}
+    "44": {"version": "24", "sha256": "18drfdz739l0nhac3qlxjsik5ixqb3v1y1s55f1bjgszh69kzc6p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRleHQgb2YgeW91ciBjaG9pY2UgYWNyb3NzIHRoZSBzY3JlZW4uIENhbiBzaW11bGF0ZSBsZWF2ZXMsIHNub3csIGZpcmV3b3JrcywgdWZvcywgYW5kIG1vcmUhIiwKICAibmFtZSI6ICJEb3duRmFsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b3JjdWx1cy9Eb3duRmFsbCIsCiAgInV1aWQiOiAiZG93bmZhbGxAdG9yY3VsdXMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyNAp9"},
+    "45": {"version": "36", "sha256": "02bbx782bnd3vbiy7wnsjc02glhjkrg74zzll48qzkm1w7s3yll7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRleHQgb2YgeW91ciBjaG9pY2UgYWNyb3NzIHRoZSBzY3JlZW4uIENhbiBzaW11bGF0ZSBsZWF2ZXMsIHNub3csIGZpcmV3b3JrcywgdWZvcywgYW5kIG1vcmUhIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZG93bmZhbGxAdG9yY3VsdXMuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiRG93bkZhbGwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZG93bmZhbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdG9yY3VsdXMvRG93bkZhbGwiLAogICJ1dWlkIjogImRvd25mYWxsQHRvcmN1bHVzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzYKfQ=="}
   }}
 , {"uuid": "time-awareness@gnome-extensions.kapranoff.ru", "name": "Time Awareness", "pname": "time-awareness", "description": "Tracks the time you have been actively using your computer", "link": "https://extensions.gnome.org/extension/3556/time-awareness/", "shell_version_map": {
     "38": {"version": "9", "sha256": "0rsnkbl7snkym66sc2yd6sw3xlbq2fhk4iw1c1f56g7nklf3y48k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYWNrcyB0aGUgdGltZSB5b3UgaGF2ZSBiZWVuIGFjdGl2ZWx5IHVzaW5nIHlvdXIgY29tcHV0ZXIiLAogICJuYW1lIjogIlRpbWUgQXdhcmVuZXNzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vc3IuaHQvfmthcHBhL2dub21lLXNoZWxsLXRpbWUtYXdhcmVuZXNzLyIsCiAgInV1aWQiOiAidGltZS1hd2FyZW5lc3NAZ25vbWUtZXh0ZW5zaW9ucy5rYXByYW5vZmYucnUiLAogICJ2ZXJzaW9uIjogOQp9"},
@@ -2492,7 +2502,7 @@
     "42": {"version": "5", "sha256": "0xzb1bc8y0chkg6pkg2ax11g2xfrxqd9cjnmxhrahmabh30db451", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAibmFtZSI6ICJNdWxsdmFkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BvYmVnYS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbXVsbHZhZC1pbmRpY2F0b3IiLAogICJ1dWlkIjogIm11bGx2YWRpbmRpY2F0b3JAcG9iZWdhLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"},
     "43": {"version": "11", "sha256": "1wz1wfvbbjhy763jw5r530f0sglms38an443s34vwrivhiqvy0sq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAibmFtZSI6ICJNdWxsdmFkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Qb2JlZ2EvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bGx2YWQtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJtdWxsdmFkaW5kaWNhdG9yQHBvYmVnYS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="},
     "44": {"version": "14", "sha256": "1972fqsfl5p9cj633xb3m0155lj0lv74yvvmfadhaipgkpg1gs9s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAibmFtZSI6ICJNdWxsdmFkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Qb2JlZ2EvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bGx2YWQtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJtdWxsdmFkaW5kaWNhdG9yQHBvYmVnYS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE0Cn0="},
-    "45": {"version": "17", "sha256": "0k38v4p1h8k9jw2vbg5bn1bggk3xgq1i13jp1mr5rcyi2f2qrvbv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibXVsbHZhZGluZGljYXRvckBwb2JlZ2EuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiTXVsbHZhZCBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuTXVsbHZhZEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Qb2JlZ2EvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bGx2YWQtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJtdWxsdmFkaW5kaWNhdG9yQHBvYmVnYS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE3Cn0="}
+    "45": {"version": "18", "sha256": "0jza6bl6vq8grdr6n33gg3c09grayskmbsrrhcdabp85b216lprh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibXVsbHZhZGluZGljYXRvckBwb2JlZ2EuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiTXVsbHZhZCBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuTXVsbHZhZEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Qb2JlZ2EvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bGx2YWQtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJtdWxsdmFkaW5kaWNhdG9yQHBvYmVnYS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="}
   }}
 , {"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=="},
@@ -2666,7 +2676,7 @@
     "42": {"version": "47", "sha256": "0bz53q342q7zk2wbj3v32nafk09l6s2lpslrlpaxw208pi0z00ip", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgImdldHRleHQtZG9tYWluIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGR0ZXJtL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZHRlcm0iLAogICJ1dWlkIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Nwp9"},
     "43": {"version": "47", "sha256": "0bz53q342q7zk2wbj3v32nafk09l6s2lpslrlpaxw208pi0z00ip", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgImdldHRleHQtZG9tYWluIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGR0ZXJtL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZHRlcm0iLAogICJ1dWlkIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Nwp9"},
     "44": {"version": "47", "sha256": "0bz53q342q7zk2wbj3v32nafk09l6s2lpslrlpaxw208pi0z00ip", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgImdldHRleHQtZG9tYWluIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGR0ZXJtL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZHRlcm0iLAogICJ1dWlkIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Nwp9"},
-    "45": {"version": "48", "sha256": "02w8qgkrpazsy28sfiz95v9ak024q6fsb8h4g0cp4kfi106adl27", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgImdldHRleHQtZG9tYWluIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kZHRlcm0vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRkdGVybSIsCiAgInV1aWQiOiAiZGR0ZXJtQGFtZXppbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ4Cn0="}
+    "45": {"version": "50", "sha256": "0hjb2fzz4s681f5g9hg95c3bqx6cfhvhvdagph0zb24qf19vyicw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgImdldHRleHQtZG9tYWluIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kZHRlcm0vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRkdGVybSIsCiAgInV1aWQiOiAiZGR0ZXJtQGFtZXppbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUwCn0="}
   }}
 , {"uuid": "favorites-only-dash@nahuelwexd.github.io", "name": "Favorites-only Dash", "pname": "favorites-only-dash", "description": "Show only favorite apps on Dash", "link": "https://extensions.gnome.org/extension/3789/favorites-only-dash/", "shell_version_map": {
     "38": {"version": "1", "sha256": "110h019563j33gksaq5fs0z71sz1mslq1sbsmhk9mj3qggd9vs65", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgb25seSBmYXZvcml0ZSBhcHBzIG9uIERhc2giLAogICJuYW1lIjogIkZhdm9yaXRlcy1vbmx5IERhc2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZmF2b3JpdGVzLW9ubHktZGFzaEBuYWh1ZWx3ZXhkLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxCn0="}
@@ -2907,7 +2917,7 @@
     "40": {"version": "4", "sha256": "17hriwcwhkjp3n20q7bm7iylr8862ghvnagf2xk0ci2hxwwbyc92", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuIiwKICAiZGVzY3JpcHRpb24iOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuXG5cblNldCB0aGUgcm93cywgY29sdW1ucyBhbmQgdGhlIGFwcCBpY29uIHNpemUgZm9yIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uIHRvIHdvcmsuXG5JZiB0aGUgc2NyZWVuIHNwYWNlIGlzIG91dCBudW1iZXJlZCwgcmVkdWNlIHRoZSBpY29uIHNpemUgdG8gZml0IGFsbCB0aGUgcm93cyBhbmQgY29sdW1ucy5cbk9yIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHJvd3MgYW5kIGNvbHVtbnMuXG5cblByZXNzIHRoZSBSZWZyZXNoIGJ1dHRvbiBvbiB0aGUgbGVmdCBvZiBoZWFkZXIgYmFyIHRvIGFwcGx5IGNoYW5nZXMiLAogICJuYW1lIjogIkFwcCBHcmlkIFR3ZWFrcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcHAtZ3JpZC10d2Vha3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJzdGF0dXMiOiAiIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZWxlbml1bS1IL0FwcC1HcmlkLVR3ZWFrcyIsCiAgInV1aWQiOiAiYXBwLWdyaWQtdHdlYWtzQFNlbGVuaXVtLUgiLAogICJ2ZXJzaW9uIjogNAp9"},
     "41": {"version": "4", "sha256": "17hriwcwhkjp3n20q7bm7iylr8862ghvnagf2xk0ci2hxwwbyc92", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuIiwKICAiZGVzY3JpcHRpb24iOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuXG5cblNldCB0aGUgcm93cywgY29sdW1ucyBhbmQgdGhlIGFwcCBpY29uIHNpemUgZm9yIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uIHRvIHdvcmsuXG5JZiB0aGUgc2NyZWVuIHNwYWNlIGlzIG91dCBudW1iZXJlZCwgcmVkdWNlIHRoZSBpY29uIHNpemUgdG8gZml0IGFsbCB0aGUgcm93cyBhbmQgY29sdW1ucy5cbk9yIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHJvd3MgYW5kIGNvbHVtbnMuXG5cblByZXNzIHRoZSBSZWZyZXNoIGJ1dHRvbiBvbiB0aGUgbGVmdCBvZiBoZWFkZXIgYmFyIHRvIGFwcGx5IGNoYW5nZXMiLAogICJuYW1lIjogIkFwcCBHcmlkIFR3ZWFrcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcHAtZ3JpZC10d2Vha3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJzdGF0dXMiOiAiIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZWxlbml1bS1IL0FwcC1HcmlkLVR3ZWFrcyIsCiAgInV1aWQiOiAiYXBwLWdyaWQtdHdlYWtzQFNlbGVuaXVtLUgiLAogICJ2ZXJzaW9uIjogNAp9"}
   }}
-, {"uuid": "babar@fthx", "name": "BaBar Task Bar", "pname": "babar", "description": "NOT MAINTAINED ANYMORE\nPlease use instead:\nhttps://extensions.gnome.org/extension/6556/task-up/\n\nTask bar. App grid, favorites, workspaces and tasks in panel. Light extension.\n\n Replace 'Activities' button by all current workspaces and apps buttons. Switch workspace/app or toggle overview by clicking on these buttons. Drag and drop favorite, task, dash item or app grid item to any workspace (you cannot reorder tasks inside a workspace). Persistent window preview with right-click (right-click again or click on preview to close it). You can move this preview anywhere. Change 'Places' label to an icon. Settings in preferences UI.\n\n You can use names for workspaces: there are two ways for that. 1) Edit the string array 'org.gnome.desktop.wm.preferences.workspace-names' gsettings key (through dconf editor, e.g.). 2) Use official GNOME extension Workspaces Indicator's settings. You don't have to write a long enough list: numbers are displayed if no workspace name is defined.\n\n Changelog: https://github.com/fthx/babar/issues/2", "link": "https://extensions.gnome.org/extension/4000/babar/", "shell_version_map": {
+, {"uuid": "babar@fthx", "name": "BaBar Task Bar", "pname": "babar", "description": "NOT MAINTAINED ANYMORE please use Task Up extension instead\n\nhttps://extensions.gnome.org/extension/6556/task-up/\n\nTask bar. App grid, favorites, workspaces and tasks in panel. Light extension.\n\n Replace 'Activities' button by all current workspaces and apps buttons. Switch workspace/app or toggle overview by clicking on these buttons. Drag and drop favorite, task, dash item or app grid item to any workspace (you cannot reorder tasks inside a workspace). Persistent window preview with right-click (right-click again or click on preview to close it). You can move this preview anywhere. Change 'Places' label to an icon. Settings in preferences UI.\n\n You can use names for workspaces: there are two ways for that. 1) Edit the string array 'org.gnome.desktop.wm.preferences.workspace-names' gsettings key (through dconf editor, e.g.). 2) Use official GNOME extension Workspaces Indicator's settings. You don't have to write a long enough list: numbers are displayed if no workspace name is defined.\n\n Changelog: https://github.com/fthx/babar/issues/2", "link": "https://extensions.gnome.org/extension/4000/babar/", "shell_version_map": {
     "38": {"version": "58", "sha256": "13iq5smrg965sgxvln6p31i68jl6m87s74vg7hr0lizsx0v901pc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5PVCBNQUlOVEFJTkVEIEFOWU1PUkVcblxuVGFzayBiYXIuIEFwcCBncmlkLCBmYXZvcml0ZXMsIHdvcmtzcGFjZXMgYW5kIHRhc2tzIGluIHBhbmVsLiBMaWdodCBleHRlbnNpb24uXG5cbiBSZXBsYWNlICdBY3Rpdml0aWVzJyBidXR0b24gYnkgYWxsIGN1cnJlbnQgd29ya3NwYWNlcyBhbmQgYXBwcyBidXR0b25zLiBTd2l0Y2ggd29ya3NwYWNlL2FwcCBvciB0b2dnbGUgb3ZlcnZpZXcgYnkgY2xpY2tpbmcgb24gdGhlc2UgYnV0dG9ucy4gRHJhZyBhbmQgZHJvcCBmYXZvcml0ZSwgdGFzaywgZGFzaCBpdGVtIG9yIGFwcCBncmlkIGl0ZW0gdG8gYW55IHdvcmtzcGFjZSAoeW91IGNhbm5vdCByZW9yZGVyIHRhc2tzIGluc2lkZSBhIHdvcmtzcGFjZSkuIFBlcnNpc3RlbnQgd2luZG93IHByZXZpZXcgd2l0aCByaWdodC1jbGljayAocmlnaHQtY2xpY2sgYWdhaW4gb3IgY2xpY2sgb24gcHJldmlldyB0byBjbG9zZSBpdCkuIFlvdSBjYW4gbW92ZSB0aGlzIHByZXZpZXcgYW55d2hlcmUuIENoYW5nZSAnUGxhY2VzJyBsYWJlbCB0byBhbiBpY29uLiBTZXR0aW5ncyBpbiBwcmVmZXJlbmNlcyBVSS5cblxuIFlvdSBjYW4gdXNlIG5hbWVzIGZvciB3b3Jrc3BhY2VzOiB0aGVyZSBhcmUgdHdvIHdheXMgZm9yIHRoYXQuIDEpIEVkaXQgdGhlIHN0cmluZyBhcnJheSAnb3JnLmdub21lLmRlc2t0b3Aud20ucHJlZmVyZW5jZXMud29ya3NwYWNlLW5hbWVzJyBnc2V0dGluZ3Mga2V5ICh0aHJvdWdoIGRjb25mIGVkaXRvciwgZS5nLikuIDIpIFVzZSBvZmZpY2lhbCBHTk9NRSBleHRlbnNpb24gV29ya3NwYWNlcyBJbmRpY2F0b3IncyBzZXR0aW5ncy4gWW91IGRvbid0IGhhdmUgdG8gd3JpdGUgYSBsb25nIGVub3VnaCBsaXN0OiBudW1iZXJzIGFyZSBkaXNwbGF5ZWQgaWYgbm8gd29ya3NwYWNlIG5hbWUgaXMgZGVmaW5lZC5cblxuIENoYW5nZWxvZzogaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXIvaXNzdWVzLzIiLAogICJuYW1lIjogIkJhQmFyIFRhc2sgQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9iYWJhciIsCiAgInV1aWQiOiAiYmFiYXJAZnRoeCIsCiAgInZlcnNpb24iOiA1OAp9"},
     "40": {"version": "58", "sha256": "13iq5smrg965sgxvln6p31i68jl6m87s74vg7hr0lizsx0v901pc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5PVCBNQUlOVEFJTkVEIEFOWU1PUkVcblxuVGFzayBiYXIuIEFwcCBncmlkLCBmYXZvcml0ZXMsIHdvcmtzcGFjZXMgYW5kIHRhc2tzIGluIHBhbmVsLiBMaWdodCBleHRlbnNpb24uXG5cbiBSZXBsYWNlICdBY3Rpdml0aWVzJyBidXR0b24gYnkgYWxsIGN1cnJlbnQgd29ya3NwYWNlcyBhbmQgYXBwcyBidXR0b25zLiBTd2l0Y2ggd29ya3NwYWNlL2FwcCBvciB0b2dnbGUgb3ZlcnZpZXcgYnkgY2xpY2tpbmcgb24gdGhlc2UgYnV0dG9ucy4gRHJhZyBhbmQgZHJvcCBmYXZvcml0ZSwgdGFzaywgZGFzaCBpdGVtIG9yIGFwcCBncmlkIGl0ZW0gdG8gYW55IHdvcmtzcGFjZSAoeW91IGNhbm5vdCByZW9yZGVyIHRhc2tzIGluc2lkZSBhIHdvcmtzcGFjZSkuIFBlcnNpc3RlbnQgd2luZG93IHByZXZpZXcgd2l0aCByaWdodC1jbGljayAocmlnaHQtY2xpY2sgYWdhaW4gb3IgY2xpY2sgb24gcHJldmlldyB0byBjbG9zZSBpdCkuIFlvdSBjYW4gbW92ZSB0aGlzIHByZXZpZXcgYW55d2hlcmUuIENoYW5nZSAnUGxhY2VzJyBsYWJlbCB0byBhbiBpY29uLiBTZXR0aW5ncyBpbiBwcmVmZXJlbmNlcyBVSS5cblxuIFlvdSBjYW4gdXNlIG5hbWVzIGZvciB3b3Jrc3BhY2VzOiB0aGVyZSBhcmUgdHdvIHdheXMgZm9yIHRoYXQuIDEpIEVkaXQgdGhlIHN0cmluZyBhcnJheSAnb3JnLmdub21lLmRlc2t0b3Aud20ucHJlZmVyZW5jZXMud29ya3NwYWNlLW5hbWVzJyBnc2V0dGluZ3Mga2V5ICh0aHJvdWdoIGRjb25mIGVkaXRvciwgZS5nLikuIDIpIFVzZSBvZmZpY2lhbCBHTk9NRSBleHRlbnNpb24gV29ya3NwYWNlcyBJbmRpY2F0b3IncyBzZXR0aW5ncy4gWW91IGRvbid0IGhhdmUgdG8gd3JpdGUgYSBsb25nIGVub3VnaCBsaXN0OiBudW1iZXJzIGFyZSBkaXNwbGF5ZWQgaWYgbm8gd29ya3NwYWNlIG5hbWUgaXMgZGVmaW5lZC5cblxuIENoYW5nZWxvZzogaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXIvaXNzdWVzLzIiLAogICJuYW1lIjogIkJhQmFyIFRhc2sgQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9iYWJhciIsCiAgInV1aWQiOiAiYmFiYXJAZnRoeCIsCiAgInZlcnNpb24iOiA1OAp9"},
     "41": {"version": "58", "sha256": "13iq5smrg965sgxvln6p31i68jl6m87s74vg7hr0lizsx0v901pc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5PVCBNQUlOVEFJTkVEIEFOWU1PUkVcblxuVGFzayBiYXIuIEFwcCBncmlkLCBmYXZvcml0ZXMsIHdvcmtzcGFjZXMgYW5kIHRhc2tzIGluIHBhbmVsLiBMaWdodCBleHRlbnNpb24uXG5cbiBSZXBsYWNlICdBY3Rpdml0aWVzJyBidXR0b24gYnkgYWxsIGN1cnJlbnQgd29ya3NwYWNlcyBhbmQgYXBwcyBidXR0b25zLiBTd2l0Y2ggd29ya3NwYWNlL2FwcCBvciB0b2dnbGUgb3ZlcnZpZXcgYnkgY2xpY2tpbmcgb24gdGhlc2UgYnV0dG9ucy4gRHJhZyBhbmQgZHJvcCBmYXZvcml0ZSwgdGFzaywgZGFzaCBpdGVtIG9yIGFwcCBncmlkIGl0ZW0gdG8gYW55IHdvcmtzcGFjZSAoeW91IGNhbm5vdCByZW9yZGVyIHRhc2tzIGluc2lkZSBhIHdvcmtzcGFjZSkuIFBlcnNpc3RlbnQgd2luZG93IHByZXZpZXcgd2l0aCByaWdodC1jbGljayAocmlnaHQtY2xpY2sgYWdhaW4gb3IgY2xpY2sgb24gcHJldmlldyB0byBjbG9zZSBpdCkuIFlvdSBjYW4gbW92ZSB0aGlzIHByZXZpZXcgYW55d2hlcmUuIENoYW5nZSAnUGxhY2VzJyBsYWJlbCB0byBhbiBpY29uLiBTZXR0aW5ncyBpbiBwcmVmZXJlbmNlcyBVSS5cblxuIFlvdSBjYW4gdXNlIG5hbWVzIGZvciB3b3Jrc3BhY2VzOiB0aGVyZSBhcmUgdHdvIHdheXMgZm9yIHRoYXQuIDEpIEVkaXQgdGhlIHN0cmluZyBhcnJheSAnb3JnLmdub21lLmRlc2t0b3Aud20ucHJlZmVyZW5jZXMud29ya3NwYWNlLW5hbWVzJyBnc2V0dGluZ3Mga2V5ICh0aHJvdWdoIGRjb25mIGVkaXRvciwgZS5nLikuIDIpIFVzZSBvZmZpY2lhbCBHTk9NRSBleHRlbnNpb24gV29ya3NwYWNlcyBJbmRpY2F0b3IncyBzZXR0aW5ncy4gWW91IGRvbid0IGhhdmUgdG8gd3JpdGUgYSBsb25nIGVub3VnaCBsaXN0OiBudW1iZXJzIGFyZSBkaXNwbGF5ZWQgaWYgbm8gd29ya3NwYWNlIG5hbWUgaXMgZGVmaW5lZC5cblxuIENoYW5nZWxvZzogaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXIvaXNzdWVzLzIiLAogICJuYW1lIjogIkJhQmFyIFRhc2sgQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9iYWJhciIsCiAgInV1aWQiOiAiYmFiYXJAZnRoeCIsCiAgInZlcnNpb24iOiA1OAp9"},
@@ -3216,14 +3226,14 @@
     "40": {"version": "6", "sha256": "0pazjbi0aikpnvnfxyamqy70xi1xclydyxdkf908c6ybwnc5956z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmVzIHRoZSB3aW5kb3cgc3dpdGNoZXIgb24gZHVhbCAob3IgbW9yZSkgbW9uaXRvciBzZXR1cHMiLAogICJuYW1lIjogIk1vbml0b3Igd2luZG93IHN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZWR6ZXBwZWxpbi9tb25pdG9yLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAibW9uaXRvci13aW5kb3ctc3dpdGNoZXJAdGhlZnVuZ3Vzcm9ja2V0LmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="},
     "41": {"version": "6", "sha256": "0pazjbi0aikpnvnfxyamqy70xi1xclydyxdkf908c6ybwnc5956z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmVzIHRoZSB3aW5kb3cgc3dpdGNoZXIgb24gZHVhbCAob3IgbW9yZSkgbW9uaXRvciBzZXR1cHMiLAogICJuYW1lIjogIk1vbml0b3Igd2luZG93IHN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZWR6ZXBwZWxpbi9tb25pdG9yLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAibW9uaXRvci13aW5kb3ctc3dpdGNoZXJAdGhlZnVuZ3Vzcm9ja2V0LmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}
   }}
-, {"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": "34", "sha256": "0d1fazz4nix2bg8q05f29lwndmzlyxhwmw62an14azkcbkgjc2jz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycyBhbmQgZXhwYW5kIHlvdXIga2V5Ym9hcmQgY2FwYWJpbGl0aWVzLlxuTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIG1vbml0b3IgY29ybmVycy9lZGdlcyBvciBjdXN0b20ga2V5Ym9hcmQgc2hvcnRjdXRzIGNhbiB0cmlnZ2VyIGFueSBvZiBkb3plbnMgYnVpbHQtaW4gYWN0aW9ucyB0aGF0IGhlbHBzIHlvdSBuYXZpZ2F0ZSBhbmQgY29udHJvbCB5b3VyIGRlc2t0b3AgZW52aXJvbm1lbnQsIG9yIHlvdXIgb3duIHNoZWxsIGNvbW1hbmRzLlxuXG5TaWduaWZpY2FudCBwYXJ0IG9mIGF2YWlsYWJsZSBhY3Rpb25zIGFyZSB2aXN1YWwgYWRqdXN0bWVudHMgKGNvbnRyYXN0LCBicmlnaHRuZXNzLCBvcGFjaXR5KSBhbmQgY29sb3IgZmlsdGVycyAocmVkLCBncmVlbiwgZGVzYXR1cmF0ZSwgbGlnaHRuZXNzIGFuZCBjb2xvciBpbnZlcnNpb25zKSAsIGluY2x1ZGluZyBjb3JyZWN0aW9uIGZpbHRlcnMgZm9yIGNvbG9yYmxpbmQgdXNlcnMgYW5kIGNiIHNpbXVsYXRpb24gZmlsdGVycyBmb3IgZGV2ZWxvcGVycy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAibmFtZSI6ICJDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvY3VzdG9tLWhvdC1jb3JuZXJzIiwKICAidXVpZCI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWRARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDM0LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuMiIKfQ=="},
-    "40": {"version": "34", "sha256": "0d1fazz4nix2bg8q05f29lwndmzlyxhwmw62an14azkcbkgjc2jz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycyBhbmQgZXhwYW5kIHlvdXIga2V5Ym9hcmQgY2FwYWJpbGl0aWVzLlxuTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIG1vbml0b3IgY29ybmVycy9lZGdlcyBvciBjdXN0b20ga2V5Ym9hcmQgc2hvcnRjdXRzIGNhbiB0cmlnZ2VyIGFueSBvZiBkb3plbnMgYnVpbHQtaW4gYWN0aW9ucyB0aGF0IGhlbHBzIHlvdSBuYXZpZ2F0ZSBhbmQgY29udHJvbCB5b3VyIGRlc2t0b3AgZW52aXJvbm1lbnQsIG9yIHlvdXIgb3duIHNoZWxsIGNvbW1hbmRzLlxuXG5TaWduaWZpY2FudCBwYXJ0IG9mIGF2YWlsYWJsZSBhY3Rpb25zIGFyZSB2aXN1YWwgYWRqdXN0bWVudHMgKGNvbnRyYXN0LCBicmlnaHRuZXNzLCBvcGFjaXR5KSBhbmQgY29sb3IgZmlsdGVycyAocmVkLCBncmVlbiwgZGVzYXR1cmF0ZSwgbGlnaHRuZXNzIGFuZCBjb2xvciBpbnZlcnNpb25zKSAsIGluY2x1ZGluZyBjb3JyZWN0aW9uIGZpbHRlcnMgZm9yIGNvbG9yYmxpbmQgdXNlcnMgYW5kIGNiIHNpbXVsYXRpb24gZmlsdGVycyBmb3IgZGV2ZWxvcGVycy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAibmFtZSI6ICJDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvY3VzdG9tLWhvdC1jb3JuZXJzIiwKICAidXVpZCI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWRARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDM0LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuMiIKfQ=="},
-    "41": {"version": "34", "sha256": "0d1fazz4nix2bg8q05f29lwndmzlyxhwmw62an14azkcbkgjc2jz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycyBhbmQgZXhwYW5kIHlvdXIga2V5Ym9hcmQgY2FwYWJpbGl0aWVzLlxuTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIG1vbml0b3IgY29ybmVycy9lZGdlcyBvciBjdXN0b20ga2V5Ym9hcmQgc2hvcnRjdXRzIGNhbiB0cmlnZ2VyIGFueSBvZiBkb3plbnMgYnVpbHQtaW4gYWN0aW9ucyB0aGF0IGhlbHBzIHlvdSBuYXZpZ2F0ZSBhbmQgY29udHJvbCB5b3VyIGRlc2t0b3AgZW52aXJvbm1lbnQsIG9yIHlvdXIgb3duIHNoZWxsIGNvbW1hbmRzLlxuXG5TaWduaWZpY2FudCBwYXJ0IG9mIGF2YWlsYWJsZSBhY3Rpb25zIGFyZSB2aXN1YWwgYWRqdXN0bWVudHMgKGNvbnRyYXN0LCBicmlnaHRuZXNzLCBvcGFjaXR5KSBhbmQgY29sb3IgZmlsdGVycyAocmVkLCBncmVlbiwgZGVzYXR1cmF0ZSwgbGlnaHRuZXNzIGFuZCBjb2xvciBpbnZlcnNpb25zKSAsIGluY2x1ZGluZyBjb3JyZWN0aW9uIGZpbHRlcnMgZm9yIGNvbG9yYmxpbmQgdXNlcnMgYW5kIGNiIHNpbXVsYXRpb24gZmlsdGVycyBmb3IgZGV2ZWxvcGVycy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAibmFtZSI6ICJDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvY3VzdG9tLWhvdC1jb3JuZXJzIiwKICAidXVpZCI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWRARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDM0LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuMiIKfQ=="},
-    "42": {"version": "34", "sha256": "0d1fazz4nix2bg8q05f29lwndmzlyxhwmw62an14azkcbkgjc2jz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycyBhbmQgZXhwYW5kIHlvdXIga2V5Ym9hcmQgY2FwYWJpbGl0aWVzLlxuTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIG1vbml0b3IgY29ybmVycy9lZGdlcyBvciBjdXN0b20ga2V5Ym9hcmQgc2hvcnRjdXRzIGNhbiB0cmlnZ2VyIGFueSBvZiBkb3plbnMgYnVpbHQtaW4gYWN0aW9ucyB0aGF0IGhlbHBzIHlvdSBuYXZpZ2F0ZSBhbmQgY29udHJvbCB5b3VyIGRlc2t0b3AgZW52aXJvbm1lbnQsIG9yIHlvdXIgb3duIHNoZWxsIGNvbW1hbmRzLlxuXG5TaWduaWZpY2FudCBwYXJ0IG9mIGF2YWlsYWJsZSBhY3Rpb25zIGFyZSB2aXN1YWwgYWRqdXN0bWVudHMgKGNvbnRyYXN0LCBicmlnaHRuZXNzLCBvcGFjaXR5KSBhbmQgY29sb3IgZmlsdGVycyAocmVkLCBncmVlbiwgZGVzYXR1cmF0ZSwgbGlnaHRuZXNzIGFuZCBjb2xvciBpbnZlcnNpb25zKSAsIGluY2x1ZGluZyBjb3JyZWN0aW9uIGZpbHRlcnMgZm9yIGNvbG9yYmxpbmQgdXNlcnMgYW5kIGNiIHNpbXVsYXRpb24gZmlsdGVycyBmb3IgZGV2ZWxvcGVycy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAibmFtZSI6ICJDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvY3VzdG9tLWhvdC1jb3JuZXJzIiwKICAidXVpZCI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWRARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDM0LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuMiIKfQ=="},
-    "43": {"version": "34", "sha256": "0d1fazz4nix2bg8q05f29lwndmzlyxhwmw62an14azkcbkgjc2jz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycyBhbmQgZXhwYW5kIHlvdXIga2V5Ym9hcmQgY2FwYWJpbGl0aWVzLlxuTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIG1vbml0b3IgY29ybmVycy9lZGdlcyBvciBjdXN0b20ga2V5Ym9hcmQgc2hvcnRjdXRzIGNhbiB0cmlnZ2VyIGFueSBvZiBkb3plbnMgYnVpbHQtaW4gYWN0aW9ucyB0aGF0IGhlbHBzIHlvdSBuYXZpZ2F0ZSBhbmQgY29udHJvbCB5b3VyIGRlc2t0b3AgZW52aXJvbm1lbnQsIG9yIHlvdXIgb3duIHNoZWxsIGNvbW1hbmRzLlxuXG5TaWduaWZpY2FudCBwYXJ0IG9mIGF2YWlsYWJsZSBhY3Rpb25zIGFyZSB2aXN1YWwgYWRqdXN0bWVudHMgKGNvbnRyYXN0LCBicmlnaHRuZXNzLCBvcGFjaXR5KSBhbmQgY29sb3IgZmlsdGVycyAocmVkLCBncmVlbiwgZGVzYXR1cmF0ZSwgbGlnaHRuZXNzIGFuZCBjb2xvciBpbnZlcnNpb25zKSAsIGluY2x1ZGluZyBjb3JyZWN0aW9uIGZpbHRlcnMgZm9yIGNvbG9yYmxpbmQgdXNlcnMgYW5kIGNiIHNpbXVsYXRpb24gZmlsdGVycyBmb3IgZGV2ZWxvcGVycy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAibmFtZSI6ICJDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvY3VzdG9tLWhvdC1jb3JuZXJzIiwKICAidXVpZCI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWRARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDM0LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuMiIKfQ=="},
-    "44": {"version": "34", "sha256": "0d1fazz4nix2bg8q05f29lwndmzlyxhwmw62an14azkcbkgjc2jz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycyBhbmQgZXhwYW5kIHlvdXIga2V5Ym9hcmQgY2FwYWJpbGl0aWVzLlxuTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIG1vbml0b3IgY29ybmVycy9lZGdlcyBvciBjdXN0b20ga2V5Ym9hcmQgc2hvcnRjdXRzIGNhbiB0cmlnZ2VyIGFueSBvZiBkb3plbnMgYnVpbHQtaW4gYWN0aW9ucyB0aGF0IGhlbHBzIHlvdSBuYXZpZ2F0ZSBhbmQgY29udHJvbCB5b3VyIGRlc2t0b3AgZW52aXJvbm1lbnQsIG9yIHlvdXIgb3duIHNoZWxsIGNvbW1hbmRzLlxuXG5TaWduaWZpY2FudCBwYXJ0IG9mIGF2YWlsYWJsZSBhY3Rpb25zIGFyZSB2aXN1YWwgYWRqdXN0bWVudHMgKGNvbnRyYXN0LCBicmlnaHRuZXNzLCBvcGFjaXR5KSBhbmQgY29sb3IgZmlsdGVycyAocmVkLCBncmVlbiwgZGVzYXR1cmF0ZSwgbGlnaHRuZXNzIGFuZCBjb2xvciBpbnZlcnNpb25zKSAsIGluY2x1ZGluZyBjb3JyZWN0aW9uIGZpbHRlcnMgZm9yIGNvbG9yYmxpbmQgdXNlcnMgYW5kIGNiIHNpbXVsYXRpb24gZmlsdGVycyBmb3IgZGV2ZWxvcGVycy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAibmFtZSI6ICJDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvY3VzdG9tLWhvdC1jb3JuZXJzIiwKICAidXVpZCI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWRARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDM0LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuMiIKfQ=="},
-    "45": {"version": "35", "sha256": "0091pwpsj322h9drgnfsa21sv0yk5djz5m1qpy4vbgqb8k567rvr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycyBhbmQgZXhwYW5kIHlvdXIga2V5Ym9hcmQgY2FwYWJpbGl0aWVzLlxuTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIG1vbml0b3IgY29ybmVycy9lZGdlcyBvciBjdXN0b20ga2V5Ym9hcmQgc2hvcnRjdXRzIGNhbiB0cmlnZ2VyIGFueSBvZiBkb3plbnMgYnVpbHQtaW4gYWN0aW9ucyB0aGF0IGhlbHBzIHlvdSBuYXZpZ2F0ZSBhbmQgY29udHJvbCB5b3VyIGRlc2t0b3AgZW52aXJvbm1lbnQsIG9yIHlvdXIgb3duIHNoZWxsIGNvbW1hbmRzLlxuXG5TaWduaWZpY2FudCBwYXJ0IG9mIGF2YWlsYWJsZSBhY3Rpb25zIGFyZSB2aXN1YWwgYWRqdXN0bWVudHMgKGNvbnRyYXN0LCBicmlnaHRuZXNzLCBvcGFjaXR5KSBhbmQgY29sb3IgZmlsdGVycyAocmVkLCBncmVlbiwgZGVzYXR1cmF0ZSwgbGlnaHRuZXNzIGFuZCBjb2xvciBpbnZlcnNpb25zKSAsIGluY2x1ZGluZyBjb3JyZWN0aW9uIGZpbHRlcnMgZm9yIGNvbG9yYmxpbmQgdXNlcnMgYW5kIGNiIHNpbXVsYXRpb24gZmlsdGVycyBmb3IgZGV2ZWxvcGVycy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAibmFtZSI6ICJDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9jdXN0b20taG90LWNvcm5lcnMiLAogICJ1dWlkIjogImN1c3RvbS1ob3QtY29ybmVycy1leHRlbmRlZEBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzUsCiAgInZlcnNpb24tbmFtZSI6ICI0NS4yIgp9"}
+, {"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=="},
+    "42": {"version": "37", "sha256": "0jsnvrics52wq50y4bslix8kbpiwbkj56mjqh6mvqxfpk2a4mx94", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycyBhbmQgZXhwYW5kIHlvdXIga2V5Ym9hcmQgY2FwYWJpbGl0aWVzLlxuTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIG1vbml0b3IgY29ybmVycy9lZGdlcyBvciBjdXN0b20ga2V5Ym9hcmQgc2hvcnRjdXRzIGNhbiB0cmlnZ2VyIGFueSBvZiBkb3plbnMgYnVpbHQtaW4gYWN0aW9ucyB0aGF0IGhlbHBzIHlvdSBuYXZpZ2F0ZSBhbmQgY29udHJvbCB5b3VyIGRlc2t0b3AgZW52aXJvbm1lbnQsIG9yIHlvdXIgb3duIHNoZWxsIGNvbW1hbmRzLlxuXG5TaWduaWZpY2FudCBwYXJ0IG9mIGF2YWlsYWJsZSBhY3Rpb25zIGFyZSB2aXN1YWwgYWRqdXN0bWVudHMgKGNvbnRyYXN0LCBicmlnaHRuZXNzLCBvcGFjaXR5KSBhbmQgY29sb3IgZmlsdGVycyAocmVkLCBncmVlbiwgZGVzYXR1cmF0ZSwgbGlnaHRuZXNzIGFuZCBjb2xvciBpbnZlcnNpb25zKSAsIGluY2x1ZGluZyBjb3JyZWN0aW9uIGZpbHRlcnMgZm9yIGNvbG9yYmxpbmQgdXNlcnMgYW5kIGNiIHNpbXVsYXRpb24gZmlsdGVycyBmb3IgZGV2ZWxvcGVycy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAibmFtZSI6ICJDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvY3VzdG9tLWhvdC1jb3JuZXJzIiwKICAidXVpZCI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWRARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDM3LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuMiIKfQ=="},
+    "43": {"version": "37", "sha256": "0jsnvrics52wq50y4bslix8kbpiwbkj56mjqh6mvqxfpk2a4mx94", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycyBhbmQgZXhwYW5kIHlvdXIga2V5Ym9hcmQgY2FwYWJpbGl0aWVzLlxuTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIG1vbml0b3IgY29ybmVycy9lZGdlcyBvciBjdXN0b20ga2V5Ym9hcmQgc2hvcnRjdXRzIGNhbiB0cmlnZ2VyIGFueSBvZiBkb3plbnMgYnVpbHQtaW4gYWN0aW9ucyB0aGF0IGhlbHBzIHlvdSBuYXZpZ2F0ZSBhbmQgY29udHJvbCB5b3VyIGRlc2t0b3AgZW52aXJvbm1lbnQsIG9yIHlvdXIgb3duIHNoZWxsIGNvbW1hbmRzLlxuXG5TaWduaWZpY2FudCBwYXJ0IG9mIGF2YWlsYWJsZSBhY3Rpb25zIGFyZSB2aXN1YWwgYWRqdXN0bWVudHMgKGNvbnRyYXN0LCBicmlnaHRuZXNzLCBvcGFjaXR5KSBhbmQgY29sb3IgZmlsdGVycyAocmVkLCBncmVlbiwgZGVzYXR1cmF0ZSwgbGlnaHRuZXNzIGFuZCBjb2xvciBpbnZlcnNpb25zKSAsIGluY2x1ZGluZyBjb3JyZWN0aW9uIGZpbHRlcnMgZm9yIGNvbG9yYmxpbmQgdXNlcnMgYW5kIGNiIHNpbXVsYXRpb24gZmlsdGVycyBmb3IgZGV2ZWxvcGVycy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAibmFtZSI6ICJDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvY3VzdG9tLWhvdC1jb3JuZXJzIiwKICAidXVpZCI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWRARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDM3LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuMiIKfQ=="},
+    "44": {"version": "37", "sha256": "0jsnvrics52wq50y4bslix8kbpiwbkj56mjqh6mvqxfpk2a4mx94", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycyBhbmQgZXhwYW5kIHlvdXIga2V5Ym9hcmQgY2FwYWJpbGl0aWVzLlxuTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIG1vbml0b3IgY29ybmVycy9lZGdlcyBvciBjdXN0b20ga2V5Ym9hcmQgc2hvcnRjdXRzIGNhbiB0cmlnZ2VyIGFueSBvZiBkb3plbnMgYnVpbHQtaW4gYWN0aW9ucyB0aGF0IGhlbHBzIHlvdSBuYXZpZ2F0ZSBhbmQgY29udHJvbCB5b3VyIGRlc2t0b3AgZW52aXJvbm1lbnQsIG9yIHlvdXIgb3duIHNoZWxsIGNvbW1hbmRzLlxuXG5TaWduaWZpY2FudCBwYXJ0IG9mIGF2YWlsYWJsZSBhY3Rpb25zIGFyZSB2aXN1YWwgYWRqdXN0bWVudHMgKGNvbnRyYXN0LCBicmlnaHRuZXNzLCBvcGFjaXR5KSBhbmQgY29sb3IgZmlsdGVycyAocmVkLCBncmVlbiwgZGVzYXR1cmF0ZSwgbGlnaHRuZXNzIGFuZCBjb2xvciBpbnZlcnNpb25zKSAsIGluY2x1ZGluZyBjb3JyZWN0aW9uIGZpbHRlcnMgZm9yIGNvbG9yYmxpbmQgdXNlcnMgYW5kIGNiIHNpbXVsYXRpb24gZmlsdGVycyBmb3IgZGV2ZWxvcGVycy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAibmFtZSI6ICJDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvY3VzdG9tLWhvdC1jb3JuZXJzIiwKICAidXVpZCI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWRARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDM3LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuMiIKfQ=="},
+    "45": {"version": "38", "sha256": "0vrm5h0jjjw7axb73rhgklsv9fkqv7gxhk6jgxnmi4h1zznw4drj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycyBhbmQgZXhwYW5kIHlvdXIga2V5Ym9hcmQgY2FwYWJpbGl0aWVzLlxuTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIG1vbml0b3IgY29ybmVycy9lZGdlcyBvciBjdXN0b20ga2V5Ym9hcmQgc2hvcnRjdXRzIGNhbiB0cmlnZ2VyIGFueSBvZiBkb3plbnMgYnVpbHQtaW4gYWN0aW9ucyB0aGF0IGhlbHBzIHlvdSBuYXZpZ2F0ZSBhbmQgY29udHJvbCB5b3VyIGRlc2t0b3AgZW52aXJvbm1lbnQsIG9yIHlvdXIgb3duIHNoZWxsIGNvbW1hbmRzLlxuXG5TaWduaWZpY2FudCBwYXJ0IG9mIGF2YWlsYWJsZSBhY3Rpb25zIGFyZSB2aXN1YWwgYWRqdXN0bWVudHMgKGNvbnRyYXN0LCBicmlnaHRuZXNzLCBvcGFjaXR5KSBhbmQgY29sb3IgZmlsdGVycyAocmVkLCBncmVlbiwgZGVzYXR1cmF0ZSwgbGlnaHRuZXNzIGFuZCBjb2xvciBpbnZlcnNpb25zKSAsIGluY2x1ZGluZyBjb3JyZWN0aW9uIGZpbHRlcnMgZm9yIGNvbG9yYmxpbmQgdXNlcnMgYW5kIGNiIHNpbXVsYXRpb24gZmlsdGVycyBmb3IgZGV2ZWxvcGVycy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAibmFtZSI6ICJDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9jdXN0b20taG90LWNvcm5lcnMiLAogICJ1dWlkIjogImN1c3RvbS1ob3QtY29ybmVycy1leHRlbmRlZEBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzgsCiAgInZlcnNpb24tbmFtZSI6ICI0NS4yIgp9"}
   }}
 , {"uuid": "hass-gshell@geoph9-on-github", "name": "Home Assistant Extension", "pname": "home-assistant-extension", "description": "A simple gnome shell extension for Home Assistant. Check the README on github for additional help!\n\nMain points:\n- You need to provide the url of your hass, a long live access token obtained from your profile page (on your hass web instance) and the entity ids of the entities you want to have as togglable.\n- In order to add some local temperature/humidity sensor, you may also provide a temperature and/or a humidity entity id (which should match the corresponding ids of your hass instance).", "link": "https://extensions.gnome.org/extension/4170/home-assistant-extension/", "shell_version_map": {
     "38": {"version": "3", "sha256": "04p2hvxyyc1zv441sv0l1dcxbdvzqp46mii3zvw0nhq8jg5pz8rr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGdub21lIHNoZWxsIGV4dGVuc2lvbiBmb3IgSG9tZSBBc3Npc3RhbnQuIENoZWNrIHRoZSBSRUFETUUgb24gZ2l0aHViIGZvciBhZGRpdGlvbmFsIGhlbHAhXG5cbk1haW4gcG9pbnRzOlxuLSBZb3UgbmVlZCB0byBwcm92aWRlIHRoZSB1cmwgb2YgeW91ciBoYXNzLCBhIGxvbmcgbGl2ZSBhY2Nlc3MgdG9rZW4gb2J0YWluZWQgZnJvbSB5b3VyIHByb2ZpbGUgcGFnZSAob24geW91ciBoYXNzIHdlYiBpbnN0YW5jZSkgYW5kIHRoZSBlbnRpdHkgaWRzIG9mIHRoZSBlbnRpdGllcyB5b3Ugd2FudCB0byBoYXZlIGFzIHRvZ2dsYWJsZS5cbi0gSW4gb3JkZXIgdG8gYWRkIHNvbWUgbG9jYWwgdGVtcGVyYXR1cmUvaHVtaWRpdHkgc2Vuc29yLCB5b3UgbWF5IGFsc28gcHJvdmlkZSBhIHRlbXBlcmF0dXJlIGFuZC9vciBhIGh1bWlkaXR5IGVudGl0eSBpZCAod2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nIGlkcyBvZiB5b3VyIGhhc3MgaW5zdGFuY2UpLiIsCiAgIm5hbWUiOiAiSG9tZSBBc3Npc3RhbnQgRXh0ZW5zaW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhhc3MtZGF0YSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dlb3BoOS9oYXNzLWdzaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogImhhc3MtZ3NoZWxsQGdlb3BoOS1vbi1naXRodWIiLAogICJ2ZXJzaW9uIjogMwp9"},
@@ -3231,7 +3241,8 @@
     "41": {"version": "11", "sha256": "0jjjzcqdhprlbxk2aacb339spf3svpqyx9sz38cpw2xvy3hy6cy5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGdub21lIHNoZWxsIGV4dGVuc2lvbiBmb3IgSG9tZSBBc3Npc3RhbnQuIENoZWNrIHRoZSBSRUFETUUgb24gZ2l0aHViIGZvciBhZGRpdGlvbmFsIGhlbHAhXG5cbk1haW4gcG9pbnRzOlxuLSBZb3UgbmVlZCB0byBwcm92aWRlIHRoZSB1cmwgb2YgeW91ciBoYXNzLCBhIGxvbmcgbGl2ZSBhY2Nlc3MgdG9rZW4gb2J0YWluZWQgZnJvbSB5b3VyIHByb2ZpbGUgcGFnZSAob24geW91ciBoYXNzIHdlYiBpbnN0YW5jZSkgYW5kIHRoZSBlbnRpdHkgaWRzIG9mIHRoZSBlbnRpdGllcyB5b3Ugd2FudCB0byBoYXZlIGFzIHRvZ2dsYWJsZS5cbi0gSW4gb3JkZXIgdG8gYWRkIHNvbWUgbG9jYWwgdGVtcGVyYXR1cmUvaHVtaWRpdHkgc2Vuc29yLCB5b3UgbWF5IGFsc28gcHJvdmlkZSBhIHRlbXBlcmF0dXJlIGFuZC9vciBhIGh1bWlkaXR5IGVudGl0eSBpZCAod2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nIGlkcyBvZiB5b3VyIGhhc3MgaW5zdGFuY2UpLiIsCiAgImdldHRleHQtZG9tYWluIjogImhhc3MtZ3NoZWxsIiwKICAibmFtZSI6ICJIb21lIEFzc2lzdGFudCBFeHRlbnNpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGFzcy1kYXRhIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2VvcGg5L2hhc3MtZ3NoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiaGFzcy1nc2hlbGxAZ2VvcGg5LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiAxMQp9"},
     "42": {"version": "11", "sha256": "0jjjzcqdhprlbxk2aacb339spf3svpqyx9sz38cpw2xvy3hy6cy5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGdub21lIHNoZWxsIGV4dGVuc2lvbiBmb3IgSG9tZSBBc3Npc3RhbnQuIENoZWNrIHRoZSBSRUFETUUgb24gZ2l0aHViIGZvciBhZGRpdGlvbmFsIGhlbHAhXG5cbk1haW4gcG9pbnRzOlxuLSBZb3UgbmVlZCB0byBwcm92aWRlIHRoZSB1cmwgb2YgeW91ciBoYXNzLCBhIGxvbmcgbGl2ZSBhY2Nlc3MgdG9rZW4gb2J0YWluZWQgZnJvbSB5b3VyIHByb2ZpbGUgcGFnZSAob24geW91ciBoYXNzIHdlYiBpbnN0YW5jZSkgYW5kIHRoZSBlbnRpdHkgaWRzIG9mIHRoZSBlbnRpdGllcyB5b3Ugd2FudCB0byBoYXZlIGFzIHRvZ2dsYWJsZS5cbi0gSW4gb3JkZXIgdG8gYWRkIHNvbWUgbG9jYWwgdGVtcGVyYXR1cmUvaHVtaWRpdHkgc2Vuc29yLCB5b3UgbWF5IGFsc28gcHJvdmlkZSBhIHRlbXBlcmF0dXJlIGFuZC9vciBhIGh1bWlkaXR5IGVudGl0eSBpZCAod2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nIGlkcyBvZiB5b3VyIGhhc3MgaW5zdGFuY2UpLiIsCiAgImdldHRleHQtZG9tYWluIjogImhhc3MtZ3NoZWxsIiwKICAibmFtZSI6ICJIb21lIEFzc2lzdGFudCBFeHRlbnNpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGFzcy1kYXRhIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2VvcGg5L2hhc3MtZ3NoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiaGFzcy1nc2hlbGxAZ2VvcGg5LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiAxMQp9"},
     "43": {"version": "22", "sha256": "1hwq5rc6g611ah7ihx71bvck00z2pyczf0v6lqw6p62r3z4ylnkk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGdub21lIHNoZWxsIGV4dGVuc2lvbiBmb3IgSG9tZSBBc3Npc3RhbnQuIENoZWNrIHRoZSBSRUFETUUgb24gZ2l0aHViIGZvciBhZGRpdGlvbmFsIGhlbHAhXG5cbk1haW4gcG9pbnRzOlxuLSBZb3UgbmVlZCB0byBwcm92aWRlIHRoZSB1cmwgb2YgeW91ciBoYXNzLCBhIGxvbmcgbGl2ZSBhY2Nlc3MgdG9rZW4gb2J0YWluZWQgZnJvbSB5b3VyIHByb2ZpbGUgcGFnZSAob24geW91ciBoYXNzIHdlYiBpbnN0YW5jZSkgYW5kIHRoZSBlbnRpdHkgaWRzIG9mIHRoZSBlbnRpdGllcyB5b3Ugd2FudCB0byBoYXZlIGFzIHRvZ2dsYWJsZS5cbi0gSW4gb3JkZXIgdG8gYWRkIHNvbWUgbG9jYWwgdGVtcGVyYXR1cmUvaHVtaWRpdHkgc2Vuc29yLCB5b3UgbWF5IGFsc28gcHJvdmlkZSBhIHRlbXBlcmF0dXJlIGFuZC9vciBhIGh1bWlkaXR5IGVudGl0eSBpZCAod2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nIGlkcyBvZiB5b3VyIGhhc3MgaW5zdGFuY2UpLiIsCiAgImdldHRleHQtZG9tYWluIjogImhhc3MtZ3NoZWxsIiwKICAibmFtZSI6ICJIb21lIEFzc2lzdGFudCBFeHRlbnNpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGFzcy1kYXRhIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZW9waDkvaGFzcy1nc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJoYXNzLWdzaGVsbEBnZW9waDktb24tZ2l0aHViIiwKICAidmVyc2lvbiI6IDIyCn0="},
-    "44": {"version": "22", "sha256": "1hwq5rc6g611ah7ihx71bvck00z2pyczf0v6lqw6p62r3z4ylnkk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGdub21lIHNoZWxsIGV4dGVuc2lvbiBmb3IgSG9tZSBBc3Npc3RhbnQuIENoZWNrIHRoZSBSRUFETUUgb24gZ2l0aHViIGZvciBhZGRpdGlvbmFsIGhlbHAhXG5cbk1haW4gcG9pbnRzOlxuLSBZb3UgbmVlZCB0byBwcm92aWRlIHRoZSB1cmwgb2YgeW91ciBoYXNzLCBhIGxvbmcgbGl2ZSBhY2Nlc3MgdG9rZW4gb2J0YWluZWQgZnJvbSB5b3VyIHByb2ZpbGUgcGFnZSAob24geW91ciBoYXNzIHdlYiBpbnN0YW5jZSkgYW5kIHRoZSBlbnRpdHkgaWRzIG9mIHRoZSBlbnRpdGllcyB5b3Ugd2FudCB0byBoYXZlIGFzIHRvZ2dsYWJsZS5cbi0gSW4gb3JkZXIgdG8gYWRkIHNvbWUgbG9jYWwgdGVtcGVyYXR1cmUvaHVtaWRpdHkgc2Vuc29yLCB5b3UgbWF5IGFsc28gcHJvdmlkZSBhIHRlbXBlcmF0dXJlIGFuZC9vciBhIGh1bWlkaXR5IGVudGl0eSBpZCAod2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nIGlkcyBvZiB5b3VyIGhhc3MgaW5zdGFuY2UpLiIsCiAgImdldHRleHQtZG9tYWluIjogImhhc3MtZ3NoZWxsIiwKICAibmFtZSI6ICJIb21lIEFzc2lzdGFudCBFeHRlbnNpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGFzcy1kYXRhIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZW9waDkvaGFzcy1nc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJoYXNzLWdzaGVsbEBnZW9waDktb24tZ2l0aHViIiwKICAidmVyc2lvbiI6IDIyCn0="}
+    "44": {"version": "22", "sha256": "1hwq5rc6g611ah7ihx71bvck00z2pyczf0v6lqw6p62r3z4ylnkk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGdub21lIHNoZWxsIGV4dGVuc2lvbiBmb3IgSG9tZSBBc3Npc3RhbnQuIENoZWNrIHRoZSBSRUFETUUgb24gZ2l0aHViIGZvciBhZGRpdGlvbmFsIGhlbHAhXG5cbk1haW4gcG9pbnRzOlxuLSBZb3UgbmVlZCB0byBwcm92aWRlIHRoZSB1cmwgb2YgeW91ciBoYXNzLCBhIGxvbmcgbGl2ZSBhY2Nlc3MgdG9rZW4gb2J0YWluZWQgZnJvbSB5b3VyIHByb2ZpbGUgcGFnZSAob24geW91ciBoYXNzIHdlYiBpbnN0YW5jZSkgYW5kIHRoZSBlbnRpdHkgaWRzIG9mIHRoZSBlbnRpdGllcyB5b3Ugd2FudCB0byBoYXZlIGFzIHRvZ2dsYWJsZS5cbi0gSW4gb3JkZXIgdG8gYWRkIHNvbWUgbG9jYWwgdGVtcGVyYXR1cmUvaHVtaWRpdHkgc2Vuc29yLCB5b3UgbWF5IGFsc28gcHJvdmlkZSBhIHRlbXBlcmF0dXJlIGFuZC9vciBhIGh1bWlkaXR5IGVudGl0eSBpZCAod2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nIGlkcyBvZiB5b3VyIGhhc3MgaW5zdGFuY2UpLiIsCiAgImdldHRleHQtZG9tYWluIjogImhhc3MtZ3NoZWxsIiwKICAibmFtZSI6ICJIb21lIEFzc2lzdGFudCBFeHRlbnNpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGFzcy1kYXRhIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZW9waDkvaGFzcy1nc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJoYXNzLWdzaGVsbEBnZW9waDktb24tZ2l0aHViIiwKICAidmVyc2lvbiI6IDIyCn0="},
+    "45": {"version": "23", "sha256": "128nv8avd8jfmdx6yc1lc413gqv208fp9aa9ljih3lr9b9r3bpf4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGdub21lIHNoZWxsIGV4dGVuc2lvbiBmb3IgSG9tZSBBc3Npc3RhbnQuIENoZWNrIHRoZSBSRUFETUUgb24gZ2l0aHViIGZvciBhZGRpdGlvbmFsIGhlbHAhXG5cbk1haW4gcG9pbnRzOlxuLSBZb3UgbmVlZCB0byBwcm92aWRlIHRoZSB1cmwgb2YgeW91ciBoYXNzLCBhIGxvbmcgbGl2ZSBhY2Nlc3MgdG9rZW4gb2J0YWluZWQgZnJvbSB5b3VyIHByb2ZpbGUgcGFnZSAob24geW91ciBoYXNzIHdlYiBpbnN0YW5jZSkgYW5kIHRoZSBlbnRpdHkgaWRzIG9mIHRoZSBlbnRpdGllcyB5b3Ugd2FudCB0byBoYXZlIGFzIHRvZ2dsYWJsZS5cbi0gSW4gb3JkZXIgdG8gYWRkIHNvbWUgbG9jYWwgdGVtcGVyYXR1cmUvaHVtaWRpdHkgc2Vuc29yLCB5b3UgbWF5IGFsc28gcHJvdmlkZSBhIHRlbXBlcmF0dXJlIGFuZC9vciBhIGh1bWlkaXR5IGVudGl0eSBpZCAod2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nIGlkcyBvZiB5b3VyIGhhc3MgaW5zdGFuY2UpLiIsCiAgImdldHRleHQtZG9tYWluIjogImhhc3MtZ3NoZWxsIiwKICAibmFtZSI6ICJIb21lIEFzc2lzdGFudCBFeHRlbnNpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGFzcy1kYXRhIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dlb3BoOS9oYXNzLWdzaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogImhhc3MtZ3NoZWxsQGdlb3BoOS1vbi1naXRodWIiLAogICJ2ZXJzaW9uIjogMjMKfQ=="}
   }}
 , {"uuid": "clear-top-bar@superterran.net", "name": "Clear Top Bar", "pname": "clear-top-bar", "description": "Fully transparent topbar, pairs with the zhanghai transparent top bar extension to make bar opaque when window is maximized", "link": "https://extensions.gnome.org/extension/4173/clear-top-bar/", "shell_version_map": {
     "40": {"version": "6", "sha256": "1xfq9i816p0djfidimgci5xk1mjfrka0xrvxrs44lsqq109xf8pc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGx5IHRyYW5zcGFyZW50IHRvcGJhciwgcGFpcnMgd2l0aCB0aGUgemhhbmdoYWkgdHJhbnNwYXJlbnQgdG9wIGJhciBleHRlbnNpb24gdG8gbWFrZSBiYXIgb3BhcXVlIHdoZW4gd2luZG93IGlzIG1heGltaXplZCIsCiAgIm5hbWUiOiAiQ2xlYXIgVG9wIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1cGVydGVycmFuL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jbGVhci10b3AtYmFyIiwKICAidXVpZCI6ICJjbGVhci10b3AtYmFyQHN1cGVydGVycmFuLm5ldCIsCiAgInZlcnNpb24iOiA2Cn0="},
@@ -3377,7 +3388,7 @@
     "42": {"version": "32", "sha256": "1dvpl7va3gcv323i7l12jidbfmy93in1d1vr5aj6568m0gh7lxk5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogInN0dWFydGhheWh1cnN0IiwKICAgICJwYXlwYWwiOiAic3R1YXJ0YWhheWh1cnN0IgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIkFscGhhYmV0aWNhbEFwcEdyaWRAc3R1YXJ0aGF5aHVyc3QiLAogICJuYW1lIjogIkFscGhhYmV0aWNhbCBBcHAgR3JpZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hbHBoYWJldGljYWwtYXBwLWdyaWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0dWFydGhheWh1cnN0L2FscGhhYmV0aWNhbC1ncmlkLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiQWxwaGFiZXRpY2FsQXBwR3JpZEBzdHVhcnRoYXlodXJzdCIsCiAgInZlcnNpb24iOiAzMgp9"},
     "43": {"version": "32", "sha256": "1dvpl7va3gcv323i7l12jidbfmy93in1d1vr5aj6568m0gh7lxk5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogInN0dWFydGhheWh1cnN0IiwKICAgICJwYXlwYWwiOiAic3R1YXJ0YWhheWh1cnN0IgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIkFscGhhYmV0aWNhbEFwcEdyaWRAc3R1YXJ0aGF5aHVyc3QiLAogICJuYW1lIjogIkFscGhhYmV0aWNhbCBBcHAgR3JpZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hbHBoYWJldGljYWwtYXBwLWdyaWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0dWFydGhheWh1cnN0L2FscGhhYmV0aWNhbC1ncmlkLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiQWxwaGFiZXRpY2FsQXBwR3JpZEBzdHVhcnRoYXlodXJzdCIsCiAgInZlcnNpb24iOiAzMgp9"},
     "44": {"version": "32", "sha256": "1dvpl7va3gcv323i7l12jidbfmy93in1d1vr5aj6568m0gh7lxk5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogInN0dWFydGhheWh1cnN0IiwKICAgICJwYXlwYWwiOiAic3R1YXJ0YWhheWh1cnN0IgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIkFscGhhYmV0aWNhbEFwcEdyaWRAc3R1YXJ0aGF5aHVyc3QiLAogICJuYW1lIjogIkFscGhhYmV0aWNhbCBBcHAgR3JpZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hbHBoYWJldGljYWwtYXBwLWdyaWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0dWFydGhheWh1cnN0L2FscGhhYmV0aWNhbC1ncmlkLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiQWxwaGFiZXRpY2FsQXBwR3JpZEBzdHVhcnRoYXlodXJzdCIsCiAgInZlcnNpb24iOiAzMgp9"},
-    "45": {"version": "36", "sha256": "1cv6big1rh2q27ckgn2kcwdgd2xwfs7ylfy5pfs2i9dqg5nf6hz7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogInN0dWFydGhheWh1cnN0IiwKICAgICJwYXlwYWwiOiAic3R1YXJ0YWhheWh1cnN0IgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIkFscGhhYmV0aWNhbEFwcEdyaWRAc3R1YXJ0aGF5aHVyc3QiLAogICJuYW1lIjogIkFscGhhYmV0aWNhbCBBcHAgR3JpZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hbHBoYWJldGljYWwtYXBwLWdyaWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvYWxwaGFiZXRpY2FsLWdyaWQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAidmVyc2lvbiI6IDM2Cn0="}
+    "45": {"version": "38", "sha256": "0785gzgglwlx6kmcnixm625dnhg0nzryznf111zhx9bhlq2n8695", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogInN0dWFydGhheWh1cnN0IiwKICAgICJwYXlwYWwiOiAic3R1YXJ0YWhheWh1cnN0IgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIkFscGhhYmV0aWNhbEFwcEdyaWRAc3R1YXJ0aGF5aHVyc3QiLAogICJuYW1lIjogIkFscGhhYmV0aWNhbCBBcHAgR3JpZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hbHBoYWJldGljYWwtYXBwLWdyaWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvYWxwaGFiZXRpY2FsLWdyaWQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAidmVyc2lvbiI6IDM4Cn0="}
   }}
 , {"uuid": "tofumenu@tofu", "name": "Tofu Menu", "pname": "tofu-menu", "description": "Quick access menu for the GNOME panel with options that help ease the workflow for newcomers and power users alike.\n\nhttps://github.com/tofutech/tofumenu", "link": "https://extensions.gnome.org/extension/4272/tofu-menu/", "shell_version_map": {
     "40": {"version": "2", "sha256": "05ndbjvvz0v1y8iq6ngqylz4z1ld6q5ibhkr5dh24wqc4wiky30v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyBtZW51IGZvciB0aGUgR05PTUUgcGFuZWwgd2l0aCBvcHRpb25zIHRoYXQgaGVscCBlYXNlIHRoZSB3b3JrZmxvdyBmb3IgbmV3Y29tZXJzIGFuZCBwb3dlciB1c2VycyBhbGlrZS5cblxuaHR0cHM6Ly9naXRodWIuY29tL3RvZnV0ZWNoL3RvZnVtZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZmVkb3JhLW1lbnUiLAogICJuYW1lIjogIlRvZnUgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcudG9mdS5mZWRvcmEtbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAidG9mdW1lbnVAdG9mdSIsCiAgInZlcnNpb24iOiAyCn0="}
@@ -3594,14 +3605,14 @@
     "41": {"version": "11", "sha256": "18x42bx758gpxq8w72yjajg05wmj8fc57qgrk2zl9hppvp5h321r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIG1hbmFnZSB5b3VyIGhvbWUgdHJhc2guIFlvdSBjYW4gbWFuYWdlIHRyYXNoIGl0ZW1zIGZyb20gdGhlIHBhbmVsIGFuZCBvcGVuIG9yIGVtcHR5IHRoZSB0cmFzaC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS10cmFzaCIsCiAgIm5hbWUiOiAiR25vbWUgVHJhc2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iMDBmL2dub21lLXRyYXNoIiwKICAidXVpZCI6ICJnbm9tZS10cmFzaEBiMDBmLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMQp9"},
     "42": {"version": "11", "sha256": "18x42bx758gpxq8w72yjajg05wmj8fc57qgrk2zl9hppvp5h321r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIG1hbmFnZSB5b3VyIGhvbWUgdHJhc2guIFlvdSBjYW4gbWFuYWdlIHRyYXNoIGl0ZW1zIGZyb20gdGhlIHBhbmVsIGFuZCBvcGVuIG9yIGVtcHR5IHRoZSB0cmFzaC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS10cmFzaCIsCiAgIm5hbWUiOiAiR25vbWUgVHJhc2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iMDBmL2dub21lLXRyYXNoIiwKICAidXVpZCI6ICJnbm9tZS10cmFzaEBiMDBmLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMQp9"}
   }}
-, {"uuid": "advanced-alt-tab@G-dH.github.com", "name": "AATWS - Advanced Alt-Tab Window Switcher", "pname": "advanced-alttab-window-switcher", "description": "Highly customizable replacement for the Alt/Super+Tab window/app switchers that offers 'type to search' mode, various filtering and sorting options, workspace and monitor navigation, configurable hotkeys for navigation and window/app control and an app launcher.\n\nAATWS allows configuring any mouse button and scroll wheel and can be used as a mouse-controlled 'dock'.\n\nNote that GNOME has 3 built-in window switcher popups and this extension replaces all of them. The first one is grouping windows by applications and is used as default in vanilla GNOME distributions. The second one offers window list and the third one windows of the currently focused application. You can set keyboard shortcuts for all the switchers in the Gnome Settings.\n\nFollow the link below for more information and bug reports.\n\nKeywords: alttab, search, find, window search, popup delay, applications, apps, dock, monitor, thumbnail, preview, move windows, launch app, switch, VIM.", "link": "https://extensions.gnome.org/extension/4412/advanced-alttab-window-switcher/", "shell_version_map": {
-    "38": {"version": "47", "sha256": "0q7jdvvjigwp9daaa07hsjnw10p5jm5czvmzq66xjqwc14diz1y9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93IHNlYXJjaCwgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCwgVklNLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZ2VvcmdkaCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0NywKICAidmVyc2lvbi1uYW1lIjogIjQ0LjgiCn0="},
-    "40": {"version": "47", "sha256": "0q7jdvvjigwp9daaa07hsjnw10p5jm5czvmzq66xjqwc14diz1y9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93IHNlYXJjaCwgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCwgVklNLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZ2VvcmdkaCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0NywKICAidmVyc2lvbi1uYW1lIjogIjQ0LjgiCn0="},
-    "41": {"version": "47", "sha256": "0q7jdvvjigwp9daaa07hsjnw10p5jm5czvmzq66xjqwc14diz1y9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93IHNlYXJjaCwgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCwgVklNLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZ2VvcmdkaCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0NywKICAidmVyc2lvbi1uYW1lIjogIjQ0LjgiCn0="},
-    "42": {"version": "47", "sha256": "0q7jdvvjigwp9daaa07hsjnw10p5jm5czvmzq66xjqwc14diz1y9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93IHNlYXJjaCwgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCwgVklNLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZ2VvcmdkaCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0NywKICAidmVyc2lvbi1uYW1lIjogIjQ0LjgiCn0="},
-    "43": {"version": "47", "sha256": "0q7jdvvjigwp9daaa07hsjnw10p5jm5czvmzq66xjqwc14diz1y9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93IHNlYXJjaCwgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCwgVklNLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZ2VvcmdkaCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0NywKICAidmVyc2lvbi1uYW1lIjogIjQ0LjgiCn0="},
-    "44": {"version": "47", "sha256": "0q7jdvvjigwp9daaa07hsjnw10p5jm5czvmzq66xjqwc14diz1y9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93IHNlYXJjaCwgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCwgVklNLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZ2VvcmdkaCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0NywKICAidmVyc2lvbi1uYW1lIjogIjQ0LjgiCn0="},
-    "45": {"version": "46", "sha256": "07ircv7qs4xcvrlgy1ga5h2zx7xfyhm0w20hd2m91syy1yyn8j6c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFkdmFuY2VkLWFsdC10YWItd2luZG93LXN3aXRjaGVyIiwKICAibmFtZSI6ICJBQVRXUyAtIEFkdmFuY2VkIEFsdC1UYWIgV2luZG93IFN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFkdmFuY2VkLWFsdC10YWItd2luZG93LXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvYWR2YW5jZWQtYWx0dGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYWR2YW5jZWQtYWx0LXRhYkBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDYsCiAgInZlcnNpb24tbmFtZSI6ICI0NS42Igp9"}
+, {"uuid": "advanced-alt-tab@G-dH.github.com", "name": "AATWS - Advanced Alt-Tab Window Switcher", "pname": "advanced-alttab-window-switcher", "description": "A highly customizable replacement for Alt/Super+Tab window/app switchers that offers a 'type to search' mode, various filtering and sorting options, workspace and monitor navigation, configurable hotkeys for navigation and window/app control, and an app launcher.\n\nAATWS allows configuring any mouse button and scroll wheel and can be used as a mouse-controlled 'dock'.\n\nPlease note that GNOME has three built-in window switcher popups, and this extension replaces all of them. The first one groups windows by applications and is used as the default in vanilla GNOME distributions. The second one offers a window list, and the third one displays windows of the currently focused application. You can set keyboard shortcuts for all the switchers in GNOME Settings application.\n\nFor more information and bug reports, please follow the link below.\n\nKeywords: alttab, search, find, window search, popup delay, applications, apps, dock, monitor, thumbnail, preview, move windows, launch app, switch, VIM.", "link": "https://extensions.gnome.org/extension/4412/advanced-alttab-window-switcher/", "shell_version_map": {
+    "38": {"version": "52", "sha256": "1dc9rn040l1hxs9ihb5644cfajan6ksadrl713yfxk4cvjal74hm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93IHNlYXJjaCwgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCwgVklNLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZ2VvcmdkaCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MiwKICAidmVyc2lvbi1uYW1lIjogIjQ0LjkiCn0="},
+    "40": {"version": "52", "sha256": "1dc9rn040l1hxs9ihb5644cfajan6ksadrl713yfxk4cvjal74hm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93IHNlYXJjaCwgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCwgVklNLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZ2VvcmdkaCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MiwKICAidmVyc2lvbi1uYW1lIjogIjQ0LjkiCn0="},
+    "41": {"version": "52", "sha256": "1dc9rn040l1hxs9ihb5644cfajan6ksadrl713yfxk4cvjal74hm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93IHNlYXJjaCwgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCwgVklNLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZ2VvcmdkaCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MiwKICAidmVyc2lvbi1uYW1lIjogIjQ0LjkiCn0="},
+    "42": {"version": "52", "sha256": "1dc9rn040l1hxs9ihb5644cfajan6ksadrl713yfxk4cvjal74hm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93IHNlYXJjaCwgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCwgVklNLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZ2VvcmdkaCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MiwKICAidmVyc2lvbi1uYW1lIjogIjQ0LjkiCn0="},
+    "43": {"version": "52", "sha256": "1dc9rn040l1hxs9ihb5644cfajan6ksadrl713yfxk4cvjal74hm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93IHNlYXJjaCwgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCwgVklNLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZ2VvcmdkaCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MiwKICAidmVyc2lvbi1uYW1lIjogIjQ0LjkiCn0="},
+    "44": {"version": "52", "sha256": "1dc9rn040l1hxs9ihb5644cfajan6ksadrl713yfxk4cvjal74hm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93IHNlYXJjaCwgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCwgVklNLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZ2VvcmdkaCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MiwKICAidmVyc2lvbi1uYW1lIjogIjQ0LjkiCn0="},
+    "45": {"version": "51", "sha256": "1q8cprsgj77si84mwp0pzjc1cqx9jfj2qv0gp67y7qq5kgxwr7fs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFkdmFuY2VkLWFsdC10YWItd2luZG93LXN3aXRjaGVyIiwKICAibmFtZSI6ICJBQVRXUyAoQWR2YW5jZWQgQWx0LVRhYiBXaW5kb3cgU3dpdGNoZXIpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFkdmFuY2VkLWFsdC10YWItd2luZG93LXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL2FkdmFuY2VkLWFsdHRhYi13aW5kb3ctc3dpdGNoZXIiLAogICJ1dWlkIjogImFkdmFuY2VkLWFsdC10YWJARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUxLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDYuMCIKfQ=="}
   }}
 , {"uuid": "improvedosk@nick-shmyrev.dev", "name": "Improved OSK", "pname": "improved-osk", "description": "Makes Gnome's OnScreen Keyboard more usable.\n\nFeatures:\n* Includes additional buttons: Arrow keys, Esc, Tab, Ctrl, Alt, Super, F1-12\n* Supports key combinations like `Ctrl + C`, `Alt + Tab`, `Ctrl + Shift + C`, `Super + A` etc.\n* Configurable keyboard size (landscape/portrait)\n* Statusbar indicator to toggle keyboard\n* Works in Gnome password modals\n* Works on Lock screen (see README for instructions)\n* Works on Login screen (see README for instructions)\n\nThis extension is a fork of https://extensions.gnome.org/extension/3330/improved-onscreen-keyboard/ by SebastianLuebke.", "link": "https://extensions.gnome.org/extension/4413/improved-osk/", "shell_version_map": {
     "38": {"version": "9", "sha256": "15wr4p47fyp5940zwk8mzxks76z56ykyzm6zrhd2pyhkxynl9cid", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdub21lJ3MgT25TY3JlZW4gS2V5Ym9hcmQgbW9yZSB1c2FibGUuXG5cbkZlYXR1cmVzOlxuKiBJbmNsdWRlcyBhZGRpdGlvbmFsIGJ1dHRvbnM6IEFycm93IGtleXMsIEVzYywgVGFiLCBDdHJsLCBBbHQsIFN1cGVyLCBGMS0xMlxuKiBTdXBwb3J0cyBrZXkgY29tYmluYXRpb25zIGxpa2UgYEN0cmwgKyBDYCwgYEFsdCArIFRhYmAsIGBDdHJsICsgU2hpZnQgKyBDYCwgYFN1cGVyICsgQWAgZXRjLlxuKiBDb25maWd1cmFibGUga2V5Ym9hcmQgc2l6ZSAobGFuZHNjYXBlL3BvcnRyYWl0KVxuKiBTdGF0dXNiYXIgaW5kaWNhdG9yIHRvIHRvZ2dsZSBrZXlib2FyZFxuKiBXb3JrcyBpbiBHbm9tZSBwYXNzd29yZCBtb2RhbHNcbiogV29ya3Mgb24gTG9jayBzY3JlZW4gKHNlZSBSRUFETUUgZm9yIGluc3RydWN0aW9ucylcbiogV29ya3Mgb24gTG9naW4gc2NyZWVuIChzZWUgUkVBRE1FIGZvciBpbnN0cnVjdGlvbnMpXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGEgZm9yayBvZiBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8zMzMwL2ltcHJvdmVkLW9uc2NyZWVuLWtleWJvYXJkLyBieSBTZWJhc3RpYW5MdWVia2UuIiwKICAibmFtZSI6ICJJbXByb3ZlZCBPU0siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrLXNobXlyZXYvaW1wcm92ZWQtb3NrLWdub21lLWV4dCIsCiAgInV1aWQiOiAiaW1wcm92ZWRvc2tAbmljay1zaG15cmV2LmRldiIsCiAgInZlcnNpb24iOiA5Cn0="},
@@ -3667,7 +3678,7 @@
     "42": {"version": "24", "sha256": "007yp741jl5n6bf1zi4h5w9zhbbm1gavzdgklmrwjj114r49dx2b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXplZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuZm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlIGRlZmF1bHQgVGVybWluYWwgYW5kIFNvZnR3YXJlIGNlbnRlciBjYW4gYWxzbyBiZSBjaGFuZ2VkLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgLSBodHRwczovL2dpdGh1Yi5jb20vdG9mdXRlY2gvdG9mdW1lbnVcblxuVGhlIG9yaWdpbmFsIHByb2plY3QgaXMgbm8gbW9yZSBzdXBwb3J0ZWQgdGh1cyBJIG1hZGUgdGhpcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogMjQsCiAgInZlcnNpb24tbmFtZSI6ICIyMC5sZWdhY3kiCn0="},
     "43": {"version": "24", "sha256": "007yp741jl5n6bf1zi4h5w9zhbbm1gavzdgklmrwjj114r49dx2b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXplZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuZm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlIGRlZmF1bHQgVGVybWluYWwgYW5kIFNvZnR3YXJlIGNlbnRlciBjYW4gYWxzbyBiZSBjaGFuZ2VkLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgLSBodHRwczovL2dpdGh1Yi5jb20vdG9mdXRlY2gvdG9mdW1lbnVcblxuVGhlIG9yaWdpbmFsIHByb2plY3QgaXMgbm8gbW9yZSBzdXBwb3J0ZWQgdGh1cyBJIG1hZGUgdGhpcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogMjQsCiAgInZlcnNpb24tbmFtZSI6ICIyMC5sZWdhY3kiCn0="},
     "44": {"version": "24", "sha256": "007yp741jl5n6bf1zi4h5w9zhbbm1gavzdgklmrwjj114r49dx2b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXplZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuZm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlIGRlZmF1bHQgVGVybWluYWwgYW5kIFNvZnR3YXJlIGNlbnRlciBjYW4gYWxzbyBiZSBjaGFuZ2VkLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgLSBodHRwczovL2dpdGh1Yi5jb20vdG9mdXRlY2gvdG9mdW1lbnVcblxuVGhlIG9yaWdpbmFsIHByb2plY3QgaXMgbm8gbW9yZSBzdXBwb3J0ZWQgdGh1cyBJIG1hZGUgdGhpcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogMjQsCiAgInZlcnNpb24tbmFtZSI6ICIyMC5sZWdhY3kiCn0="},
-    "45": {"version": "27", "sha256": "1wc2gazksqnrg8gwrdkyldnfvmpbwaj318ws9kmwksqdb72j6frd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXNlZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuRm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlICdBY3Rpdml0aWVzJyBpbmRpY2F0b3IgaXMgaGlkZGVuIGJ5IGRlZmF1bHQgYnV0IGNhbiBiZSBlbmFibGVkIHRocm91Z2ggc2V0dGluZ3MuXG5cblRoZSBkZWZhdWx0IFRlcm1pbmFsIGFuZCBTb2Z0d2FyZSBjZW50cmUgY2FuIGFsc28gYmUgY2hhbmdlZC5cblxuIEZvcmNlIFF1aXQgd29ya3Mgb24gV2F5bGFuZCBhbmQgWG9yZyIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAiYXJ5YW4yMCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQXJ5YW4yMC9Mb2dvbWVudSIsCiAgInV1aWQiOiAibG9nb21lbnVAYXJ5YW5fayIsCiAgInZlcnNpb24iOiAyNywKICAidmVyc2lvbi1uYW1lIjogIjIyIgp9"}
+    "45": {"version": "28", "sha256": "1jpkn14hxpk0zr2364fri48izsvfzmrvfg2ii5xy7m57nz6c3mp3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXNlZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuRm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlICdBY3Rpdml0aWVzJyBpbmRpY2F0b3IgaXMgaGlkZGVuIGJ5IGRlZmF1bHQgYnV0IGNhbiBiZSBlbmFibGVkIHRocm91Z2ggc2V0dGluZ3MuXG5cblRoZSBkZWZhdWx0IFRlcm1pbmFsIGFuZCBTb2Z0d2FyZSBjZW50cmUgY2FuIGFsc28gYmUgY2hhbmdlZC5cblxuIEZvcmNlIFF1aXQgd29ya3Mgb24gV2F5bGFuZCBhbmQgWG9yZyIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAiYXJ5YW4yMCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQXJ5YW4yMC9Mb2dvbWVudSIsCiAgInV1aWQiOiAibG9nb21lbnVAYXJ5YW5fayIsCiAgInZlcnNpb24iOiAyOCwKICAidmVyc2lvbi1uYW1lIjogIjIyLjIiCn0="}
   }}
 , {"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=="}
@@ -3687,14 +3698,14 @@
 , {"uuid": "orange-share@Yannis4444.github.com", "name": "Orange Share", "pname": "orange-share", "description": "A small python server that accepts requests from an apple shortcut to allow sharing all sorts of media from iOS. It allows sending content right from the share sheet - similar to AirDrop between Apple Devices", "link": "https://extensions.gnome.org/extension/4469/orange-share/", "shell_version_map": {
     "40": {"version": "7", "sha256": "14xc3j2k6fjh0nif22j3q0xk52ba2qpj96rq80g6cv3cyy8ihi2b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc21hbGwgcHl0aG9uIHNlcnZlciB0aGF0IGFjY2VwdHMgcmVxdWVzdHMgZnJvbSBhbiBhcHBsZSBzaG9ydGN1dCB0byBhbGxvdyBzaGFyaW5nIGFsbCBzb3J0cyBvZiBtZWRpYSBmcm9tIGlPUy4gSXQgYWxsb3dzIHNlbmRpbmcgY29udGVudCByaWdodCBmcm9tIHRoZSBzaGFyZSBzaGVldCAtIHNpbWlsYXIgdG8gQWlyRHJvcCBiZXR3ZWVuIEFwcGxlIERldmljZXMiLAogICJuYW1lIjogIk9yYW5nZSBTaGFyZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ZYW5uaXM0NDQ0L09yYW5nZS1TaGFyZS8iLAogICJ1dWlkIjogIm9yYW5nZS1zaGFyZUBZYW5uaXM0NDQ0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}
   }}
-, {"uuid": "mediacontrols@cliffniff.github.com", "name": "Media Controls", "pname": "media-controls", "description": "Show controls and information of the currently playing media in the panel.\n\n    - Highly customizable\n    - Support GNOME 3.36(beta) , 3.38, 40, 41, 42, 43, 44, 45 \n    - Caches album art\n    - Control every element in the extension", "link": "https://extensions.gnome.org/extension/4470/media-controls/", "shell_version_map": {
+, {"uuid": "mediacontrols@cliffniff.github.com", "name": "Media Controls", "pname": "media-controls", "description": "Show controls and information of the currently playing media in the panel.", "link": "https://extensions.gnome.org/extension/4470/media-controls/", "shell_version_map": {
     "38": {"version": "20", "sha256": "1vryi338r8aqjkrf60fmzlr7c5d3mycxyy2sifssnkyhngnqigck", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29udHJvbHMgYW5kIGluZm9ybWF0aW9uIG9mIHRoZSBjdXJyZW50bHkgcGxheWluZyBtZWRpYSBpbiB0aGUgcGFuZWwuXG5cbiAgICAtIEhpZ2hseSBjdXN0b21pemFibGVcbiAgICAtIFN1cHBvcnQgR05PTUUgMy4zNihiZXRhKSAsIDMuMzgsIDQwLCA0MSwgNDIsIDQzLCA0NCBcbiAgICAtIENhY2hlcyBhbGJ1bSBhcnRcbiAgICAtIENvbnRyb2wgZXZlcnkgZWxlbWVudCBpbiB0aGUgZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJNZWRpYSBDb250cm9scyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tZWRpYWNvbnRyb2xzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jbGlmZm5pZmYvbWVkaWEtY29udHJvbHMiLAogICJ1dWlkIjogIm1lZGlhY29udHJvbHNAY2xpZmZuaWZmLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjAKfQ=="},
     "40": {"version": "20", "sha256": "1vryi338r8aqjkrf60fmzlr7c5d3mycxyy2sifssnkyhngnqigck", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29udHJvbHMgYW5kIGluZm9ybWF0aW9uIG9mIHRoZSBjdXJyZW50bHkgcGxheWluZyBtZWRpYSBpbiB0aGUgcGFuZWwuXG5cbiAgICAtIEhpZ2hseSBjdXN0b21pemFibGVcbiAgICAtIFN1cHBvcnQgR05PTUUgMy4zNihiZXRhKSAsIDMuMzgsIDQwLCA0MSwgNDIsIDQzLCA0NCBcbiAgICAtIENhY2hlcyBhbGJ1bSBhcnRcbiAgICAtIENvbnRyb2wgZXZlcnkgZWxlbWVudCBpbiB0aGUgZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJNZWRpYSBDb250cm9scyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tZWRpYWNvbnRyb2xzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jbGlmZm5pZmYvbWVkaWEtY29udHJvbHMiLAogICJ1dWlkIjogIm1lZGlhY29udHJvbHNAY2xpZmZuaWZmLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjAKfQ=="},
     "41": {"version": "20", "sha256": "1vryi338r8aqjkrf60fmzlr7c5d3mycxyy2sifssnkyhngnqigck", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29udHJvbHMgYW5kIGluZm9ybWF0aW9uIG9mIHRoZSBjdXJyZW50bHkgcGxheWluZyBtZWRpYSBpbiB0aGUgcGFuZWwuXG5cbiAgICAtIEhpZ2hseSBjdXN0b21pemFibGVcbiAgICAtIFN1cHBvcnQgR05PTUUgMy4zNihiZXRhKSAsIDMuMzgsIDQwLCA0MSwgNDIsIDQzLCA0NCBcbiAgICAtIENhY2hlcyBhbGJ1bSBhcnRcbiAgICAtIENvbnRyb2wgZXZlcnkgZWxlbWVudCBpbiB0aGUgZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJNZWRpYSBDb250cm9scyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tZWRpYWNvbnRyb2xzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jbGlmZm5pZmYvbWVkaWEtY29udHJvbHMiLAogICJ1dWlkIjogIm1lZGlhY29udHJvbHNAY2xpZmZuaWZmLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjAKfQ=="},
     "42": {"version": "24", "sha256": "04gyrqdhx4rd3zl6rlfpyrff5p2wc7bqw9wc07849c557bfkhnwc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29udHJvbHMgYW5kIGluZm9ybWF0aW9uIG9mIHRoZSBjdXJyZW50bHkgcGxheWluZyBtZWRpYSBpbiB0aGUgcGFuZWwuXG5cbiAgICAtIEhpZ2hseSBjdXN0b21pemFibGVcbiAgICAtIFN1cHBvcnQgR05PTUUgMy4zNihiZXRhKSAsIDMuMzgsIDQwLCA0MSwgNDIsIDQzLCA0NCBcbiAgICAtIENhY2hlcyBhbGJ1bSBhcnRcbiAgICAtIENvbnRyb2wgZXZlcnkgZWxlbWVudCBpbiB0aGUgZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJNZWRpYSBDb250cm9scyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tZWRpYWNvbnRyb2xzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2xpZmZuaWZmL21lZGlhLWNvbnRyb2xzIiwKICAidXVpZCI6ICJtZWRpYWNvbnRyb2xzQGNsaWZmbmlmZi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI0Cn0="},
     "43": {"version": "29", "sha256": "02asfdrc3z5834xn000x5qhb3yhm3vgr7pr15sxms8h5wcw43p40", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29udHJvbHMgYW5kIGluZm9ybWF0aW9uIG9mIHRoZSBjdXJyZW50bHkgcGxheWluZyBtZWRpYSBpbiB0aGUgcGFuZWwuXG5cbiAgICAtIEhpZ2hseSBjdXN0b21pemFibGVcbiAgICAtIFN1cHBvcnQgR05PTUUgMy4zNihiZXRhKSAsIDMuMzgsIDQwLCA0MSwgNDIsIDQzLCA0NCBcbiAgICAtIENhY2hlcyBhbGJ1bSBhcnRcbiAgICAtIENvbnRyb2wgZXZlcnkgZWxlbWVudCBpbiB0aGUgZXh0ZW5zaW9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibWVkaWFjb250cm9scyIsCiAgIm5hbWUiOiAiTWVkaWEgQ29udHJvbHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWVkaWFjb250cm9scyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2xpZmZuaWZmL21lZGlhLWNvbnRyb2xzIiwKICAidXVpZCI6ICJtZWRpYWNvbnRyb2xzQGNsaWZmbmlmZi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI5Cn0="},
     "44": {"version": "29", "sha256": "02asfdrc3z5834xn000x5qhb3yhm3vgr7pr15sxms8h5wcw43p40", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29udHJvbHMgYW5kIGluZm9ybWF0aW9uIG9mIHRoZSBjdXJyZW50bHkgcGxheWluZyBtZWRpYSBpbiB0aGUgcGFuZWwuXG5cbiAgICAtIEhpZ2hseSBjdXN0b21pemFibGVcbiAgICAtIFN1cHBvcnQgR05PTUUgMy4zNihiZXRhKSAsIDMuMzgsIDQwLCA0MSwgNDIsIDQzLCA0NCBcbiAgICAtIENhY2hlcyBhbGJ1bSBhcnRcbiAgICAtIENvbnRyb2wgZXZlcnkgZWxlbWVudCBpbiB0aGUgZXh0ZW5zaW9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibWVkaWFjb250cm9scyIsCiAgIm5hbWUiOiAiTWVkaWEgQ29udHJvbHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWVkaWFjb250cm9scyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2xpZmZuaWZmL21lZGlhLWNvbnRyb2xzIiwKICAidXVpZCI6ICJtZWRpYWNvbnRyb2xzQGNsaWZmbmlmZi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI5Cn0="},
-    "45": {"version": "31", "sha256": "0cg2srlrd30dmzc7wvvf406fv9139f71kbylhal08dlca7sk5dnz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29udHJvbHMgYW5kIGluZm9ybWF0aW9uIG9mIHRoZSBjdXJyZW50bHkgcGxheWluZyBtZWRpYSBpbiB0aGUgcGFuZWwuXG5cbiAgICAtIEhpZ2hseSBjdXN0b21pemFibGVcbiAgICAtIFN1cHBvcnQgR05PTUUgMy4zNihiZXRhKSAsIDMuMzgsIDQwLCA0MSwgNDIsIDQzLCA0NCwgNDUgXG4gICAgLSBDYWNoZXMgYWxidW0gYXJ0XG4gICAgLSBDb250cm9sIGV2ZXJ5IGVsZW1lbnQgaW4gdGhlIGV4dGVuc2lvbiIsCiAgImdldHRleHQtZG9tYWluIjogIm1lZGlhY29udHJvbHMiLAogICJuYW1lIjogIk1lZGlhIENvbnRyb2xzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lZGlhY29udHJvbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2xpZmZuaWZmL21lZGlhLWNvbnRyb2xzIiwKICAidXVpZCI6ICJtZWRpYWNvbnRyb2xzQGNsaWZmbmlmZi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDMxCn0="}
+    "45": {"version": "34", "sha256": "16jxcssqj3lkd88vrl2sq8lxf5fjj6g7nq6l19p3ahc5ma89dpif", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29udHJvbHMgYW5kIGluZm9ybWF0aW9uIG9mIHRoZSBjdXJyZW50bHkgcGxheWluZyBtZWRpYSBpbiB0aGUgcGFuZWwuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibWVkaWFjb250cm9sc0BjbGlmZm5pZmYuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiTWVkaWEgQ29udHJvbHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWVkaWFjb250cm9scyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jbGlmZm5pZmYvbWVkaWEtY29udHJvbHMiLAogICJ1dWlkIjogIm1lZGlhY29udHJvbHNAY2xpZmZuaWZmLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzQsCiAgInZlcnNpb24tbmFtZSI6ICIyLjAuMCIKfQ=="}
   }}
 , {"uuid": "sp-tray@sp-tray.esenliyim.github.com", "name": "spotify-tray", "pname": "spotify-tray", "description": "Adds a button to the panel that shows information Spotify playback. For bug reports, feature requests, translation contributions, etc., please visit the extension's github page.", "link": "https://extensions.gnome.org/extension/4472/spotify-tray/", "shell_version_map": {
     "38": {"version": "17", "sha256": "11gyy143n5bvsrydlr4hvy3ggn49k1pxk1d7x11dafic8xxwv5cl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBidXR0b24gdG8gdGhlIHBhbmVsIHRoYXQgc2hvd3MgaW5mb3JtYXRpb24gU3BvdGlmeSBwbGF5YmFjay4gRm9yIGJ1ZyByZXBvcnRzLCBmZWF0dXJlIHJlcXVlc3RzLCB0cmFuc2xhdGlvbiBjb250cmlidXRpb25zLCBldGMuLCBwbGVhc2UgdmlzaXQgdGhlIGV4dGVuc2lvbidzIGdpdGh1YiBwYWdlLiIsCiAgIm5hbWUiOiAic3BvdGlmeS10cmF5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwLXRyYXkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lc2VubGl5aW0vc3AtdHJheSIsCiAgInV1aWQiOiAic3AtdHJheUBzcC10cmF5LmVzZW5saXlpbS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE3Cn0="},
@@ -3758,7 +3769,7 @@
     "42": {"version": "18", "sha256": "0dsr7437fnbgyz3mhdqgjz4c6cs69c4zlx18z4ibqbfjib47z1mn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBwcml2YWN5IHNldHRpbmdzIHRvZ2dsZXMgdG8gdGhlIEdOT01FIHN5c3RlbSBtZW51IiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJzdHVhcnRoYXlodXJzdCIsCiAgICAicGF5cGFsIjogInN0dWFydGFoYXlodXJzdCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJQcml2YWN5TWVudUBzdHVhcnRoYXlodXJzdCIsCiAgIm5hbWUiOiAiUHJpdmFjeSBRdWljayBTZXR0aW5ncyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wcml2YWN5LW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0dWFydGhheWh1cnN0L3ByaXZhY3ktbWVudS1leHRlbnNpb24iLAogICJ1dWlkIjogIlByaXZhY3lNZW51QHN0dWFydGhheWh1cnN0IiwKICAidmVyc2lvbiI6IDE4Cn0="},
     "43": {"version": "18", "sha256": "0dsr7437fnbgyz3mhdqgjz4c6cs69c4zlx18z4ibqbfjib47z1mn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBwcml2YWN5IHNldHRpbmdzIHRvZ2dsZXMgdG8gdGhlIEdOT01FIHN5c3RlbSBtZW51IiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJzdHVhcnRoYXlodXJzdCIsCiAgICAicGF5cGFsIjogInN0dWFydGFoYXlodXJzdCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJQcml2YWN5TWVudUBzdHVhcnRoYXlodXJzdCIsCiAgIm5hbWUiOiAiUHJpdmFjeSBRdWljayBTZXR0aW5ncyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wcml2YWN5LW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0dWFydGhheWh1cnN0L3ByaXZhY3ktbWVudS1leHRlbnNpb24iLAogICJ1dWlkIjogIlByaXZhY3lNZW51QHN0dWFydGhheWh1cnN0IiwKICAidmVyc2lvbiI6IDE4Cn0="},
     "44": {"version": "18", "sha256": "0dsr7437fnbgyz3mhdqgjz4c6cs69c4zlx18z4ibqbfjib47z1mn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBwcml2YWN5IHNldHRpbmdzIHRvZ2dsZXMgdG8gdGhlIEdOT01FIHN5c3RlbSBtZW51IiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJzdHVhcnRoYXlodXJzdCIsCiAgICAicGF5cGFsIjogInN0dWFydGFoYXlodXJzdCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJQcml2YWN5TWVudUBzdHVhcnRoYXlodXJzdCIsCiAgIm5hbWUiOiAiUHJpdmFjeSBRdWljayBTZXR0aW5ncyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wcml2YWN5LW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0dWFydGhheWh1cnN0L3ByaXZhY3ktbWVudS1leHRlbnNpb24iLAogICJ1dWlkIjogIlByaXZhY3lNZW51QHN0dWFydGhheWh1cnN0IiwKICAidmVyc2lvbiI6IDE4Cn0="},
-    "45": {"version": "22", "sha256": "1a9xc664zqdf44gv60svc03ahqs5ngziabmp0qf16h0zvsca5iih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBwcml2YWN5IHNldHRpbmdzIHRvZ2dsZXMgdG8gdGhlIEdOT01FIHN5c3RlbSBtZW51XG5OT1RFOiBUaGlzIG9ubHkgcHJvdmlkZXMgcXVpY2sgYWNjZXNzIHRvIHNldHRpbmdzLCBpdCBkb2Vzbid0IGRpcmVjdGx5IGFjY2VzcyBoYXJkd2FyZSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAic3R1YXJ0aGF5aHVyc3QiLAogICAgInBheXBhbCI6ICJzdHVhcnRhaGF5aHVyc3QiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiUHJpdmFjeU1lbnVAc3R1YXJ0aGF5aHVyc3QiLAogICJuYW1lIjogIlByaXZhY3kgUXVpY2sgU2V0dGluZ3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucHJpdmFjeS1tZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0dWFydGhheWh1cnN0L3ByaXZhY3ktbWVudS1leHRlbnNpb24iLAogICJ1dWlkIjogIlByaXZhY3lNZW51QHN0dWFydGhheWh1cnN0IiwKICAidmVyc2lvbiI6IDIyCn0="}
+    "45": {"version": "23", "sha256": "08x0hm9lvz5x5g7ppz2g6m8fr2ksxxphcf7by8y9qn25pqmkk5p4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBwcml2YWN5IHNldHRpbmdzIHRvZ2dsZXMgdG8gdGhlIEdOT01FIHN5c3RlbSBtZW51XG5OT1RFOiBUaGlzIG9ubHkgcHJvdmlkZXMgcXVpY2sgYWNjZXNzIHRvIHNldHRpbmdzLCBpdCBkb2Vzbid0IGRpcmVjdGx5IGFjY2VzcyBoYXJkd2FyZSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAic3R1YXJ0aGF5aHVyc3QiLAogICAgInBheXBhbCI6ICJzdHVhcnRhaGF5aHVyc3QiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiUHJpdmFjeU1lbnVAc3R1YXJ0aGF5aHVyc3QiLAogICJuYW1lIjogIlByaXZhY3kgUXVpY2sgU2V0dGluZ3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucHJpdmFjeS1tZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0dWFydGhheWh1cnN0L3ByaXZhY3ktbWVudS1leHRlbnNpb24iLAogICJ1dWlkIjogIlByaXZhY3lNZW51QHN0dWFydGhheWh1cnN0IiwKICAidmVyc2lvbiI6IDIzCn0="}
   }}
 , {"uuid": "hide-panel-lite@fthx", "name": "Hide Panel Lite", "pname": "hide-panel-light-version-without-hot-corner", "description": "Hide top panel except in overview.\n\nFor those who don't need a hot corner (e.g. running GNOME 40+ with three fingers gestures). Very very light extension. No options, no bugs. ;-)", "link": "https://extensions.gnome.org/extension/4496/hide-panel-light-version-without-hot-corner/", "shell_version_map": {
     "38": {"version": "2", "sha256": "13kwd7sh0w34881wwaqvv0mchd7ym7av5s658jcrq2n8n2zma4xi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy5cblxuRm9yIHRob3NlIHdobyBkb24ndCBuZWVkIGEgaG90IGNvcm5lciAoZS5nLiBydW5uaW5nIEdOT01FIDQwKyB3aXRoIHRocmVlIGZpbmdlcnMgZ2VzdHVyZXMpLiBWZXJ5IHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBObyBvcHRpb25zLCBubyBidWdzLiA7LSkiLAogICJuYW1lIjogIkhpZGUgUGFuZWwgTGl0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvaGlkZS1wYW5lbC1saXRlIiwKICAidXVpZCI6ICJoaWRlLXBhbmVsLWxpdGVAZnRoeCIsCiAgInZlcnNpb24iOiAyCn0="},
@@ -4040,9 +4051,12 @@
     "45": {"version": "13", "sha256": "00szs1dmpc486pqy6ndvq934fililqrlv1ac183d5vh5qsaqxgvs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSBDbG9jayBvbiBMb2NrIFNjcmVlbi4iLAogICJuYW1lIjogIkN1c3RvbWl6ZSBDbG9jayBvbiBMb2NrIFNjcmVlbiIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidW5sb2NrLWRpYWxvZyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3VzdG9taXplLWNsb2NrLW9uLWxvY2tzY3JlZW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUFJBVEFQLUtVTUFSL2N1c3RvbWl6ZS1jbG9jay1vbi1sb2NrLXNjcmVlbiIsCiAgInV1aWQiOiAiQ3VzdG9taXplQ2xvY2tPbkxvY2tTY3JlZW5AcHJhdGFwLmZhc3RtYWlsLmZtIiwKICAidmVyc2lvbiI6IDEzCn0="}
   }}
 , {"uuid": "LeftClock@adityashrivastava.tk", "name": "Left Clock", "pname": "left-clock", "description": "Replaces the activity button with clock and moves it to left side of top bar.", "link": "https://extensions.gnome.org/extension/4667/left-clock/", "shell_version_map": {
-    "40": {"version": "6", "sha256": "0qx71si3vggkh81wdpkl22hsq0kpgjy2b02n47qbxk5m9swyv3ky", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSBhY3Rpdml0eSBidXR0b24gd2l0aCBjbG9jayBhbmQgbW92ZXMgaXQgdG8gbGVmdCBzaWRlIG9mIHRvcCBiYXIuIiwKICAibmFtZSI6ICJMZWZ0IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIkxlZnRDbG9ja0BhZGl0eWFzaHJpdmFzdGF2YS50ayIsCiAgInZlcnNpb24iOiA2Cn0="},
-    "41": {"version": "6", "sha256": "0qx71si3vggkh81wdpkl22hsq0kpgjy2b02n47qbxk5m9swyv3ky", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSBhY3Rpdml0eSBidXR0b24gd2l0aCBjbG9jayBhbmQgbW92ZXMgaXQgdG8gbGVmdCBzaWRlIG9mIHRvcCBiYXIuIiwKICAibmFtZSI6ICJMZWZ0IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIkxlZnRDbG9ja0BhZGl0eWFzaHJpdmFzdGF2YS50ayIsCiAgInZlcnNpb24iOiA2Cn0="},
-    "42": {"version": "6", "sha256": "0qx71si3vggkh81wdpkl22hsq0kpgjy2b02n47qbxk5m9swyv3ky", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSBhY3Rpdml0eSBidXR0b24gd2l0aCBjbG9jayBhbmQgbW92ZXMgaXQgdG8gbGVmdCBzaWRlIG9mIHRvcCBiYXIuIiwKICAibmFtZSI6ICJMZWZ0IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIkxlZnRDbG9ja0BhZGl0eWFzaHJpdmFzdGF2YS50ayIsCiAgInZlcnNpb24iOiA2Cn0="}
+    "40": {"version": "12", "sha256": "02fv3jdmmjvyf4cyna1p7jdg3q8n5604i4ng8jq4y6ljn7insvyn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSBhY3Rpdml0eSBidXR0b24gd2l0aCBjbG9jayBhbmQgbW92ZXMgaXQgdG8gbGVmdCBzaWRlIG9mIHRvcCBiYXIuIiwKICAibmFtZSI6ICJMZWZ0IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hZGl0eWEtc2hyaS9MZWZ0LUNsb2NrIiwKICAidXVpZCI6ICJMZWZ0Q2xvY2tAYWRpdHlhc2hyaXZhc3RhdmEudGsiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
+    "41": {"version": "12", "sha256": "02fv3jdmmjvyf4cyna1p7jdg3q8n5604i4ng8jq4y6ljn7insvyn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSBhY3Rpdml0eSBidXR0b24gd2l0aCBjbG9jayBhbmQgbW92ZXMgaXQgdG8gbGVmdCBzaWRlIG9mIHRvcCBiYXIuIiwKICAibmFtZSI6ICJMZWZ0IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hZGl0eWEtc2hyaS9MZWZ0LUNsb2NrIiwKICAidXVpZCI6ICJMZWZ0Q2xvY2tAYWRpdHlhc2hyaXZhc3RhdmEudGsiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
+    "42": {"version": "12", "sha256": "02fv3jdmmjvyf4cyna1p7jdg3q8n5604i4ng8jq4y6ljn7insvyn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSBhY3Rpdml0eSBidXR0b24gd2l0aCBjbG9jayBhbmQgbW92ZXMgaXQgdG8gbGVmdCBzaWRlIG9mIHRvcCBiYXIuIiwKICAibmFtZSI6ICJMZWZ0IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hZGl0eWEtc2hyaS9MZWZ0LUNsb2NrIiwKICAidXVpZCI6ICJMZWZ0Q2xvY2tAYWRpdHlhc2hyaXZhc3RhdmEudGsiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
+    "43": {"version": "12", "sha256": "02fv3jdmmjvyf4cyna1p7jdg3q8n5604i4ng8jq4y6ljn7insvyn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSBhY3Rpdml0eSBidXR0b24gd2l0aCBjbG9jayBhbmQgbW92ZXMgaXQgdG8gbGVmdCBzaWRlIG9mIHRvcCBiYXIuIiwKICAibmFtZSI6ICJMZWZ0IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hZGl0eWEtc2hyaS9MZWZ0LUNsb2NrIiwKICAidXVpZCI6ICJMZWZ0Q2xvY2tAYWRpdHlhc2hyaXZhc3RhdmEudGsiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
+    "44": {"version": "12", "sha256": "02fv3jdmmjvyf4cyna1p7jdg3q8n5604i4ng8jq4y6ljn7insvyn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSBhY3Rpdml0eSBidXR0b24gd2l0aCBjbG9jayBhbmQgbW92ZXMgaXQgdG8gbGVmdCBzaWRlIG9mIHRvcCBiYXIuIiwKICAibmFtZSI6ICJMZWZ0IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hZGl0eWEtc2hyaS9MZWZ0LUNsb2NrIiwKICAidXVpZCI6ICJMZWZ0Q2xvY2tAYWRpdHlhc2hyaXZhc3RhdmEudGsiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
+    "45": {"version": "14", "sha256": "1j6923i23sr466z9kb7kl5cmay1kdfwm04zd4p97mljbs51c4ha2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSBhY3Rpdml0eSBidXR0b24gd2l0aCBjbG9jayBhbmQgbW92ZXMgaXQgdG8gbGVmdCBzaWRlIG9mIHRvcCBiYXIuIiwKICAibmFtZSI6ICJMZWZ0IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hZGl0eWEtc2hyaS9MZWZ0LUNsb2NrIiwKICAidXVpZCI6ICJMZWZ0Q2xvY2tAYWRpdHlhc2hyaXZhc3RhdmEudGsiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}
   }}
 , {"uuid": "keyboard-backlight-menu@ophir.dev", "name": "Keyboard Backlight Slider", "pname": "keyboard-backlight-slider", "description": "Allow setting the keyboard backlight brightness with a slider in the main menu", "link": "https://extensions.gnome.org/extension/4669/keyboard-backlight-slider/", "shell_version_map": {
     "40": {"version": "5", "sha256": "06sp86ffvplyc1k937mg5lmfggbakr7fks74b4klxxg9595lg91q", "metadata": "ewogICJ2ZXJzaW9uIjogMiwKICAibmFtZSI6ICJLZXlib2FyZCBCYWNrbGlnaHQgU2xpZGVyIiwKICAiZGVzY3JpcHRpb24iOiAiQWxsb3cgc2V0dGluZyB0aGUga2V5Ym9hcmQgYmFja2xpZ2h0IGJyaWdodG5lc3Mgd2l0aCBhIHNsaWRlciBpbiB0aGUgbWFpbiBtZW51IiwKICAidXVpZCI6ICJrZXlib2FyZC1iYWNrbGlnaHQtbWVudUBvcGhpci5kZXYiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xvdmFzb2EvZ25vbWUta2V5Ym9hcmQtYmFja2xpZ2h0LW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXQp9Cg=="},
@@ -4281,13 +4295,14 @@
 , {"uuid": "ssh-tray@mario.cardia.com.br", "name": "SSH Tray", "pname": "ssh-tray", "description": "Simple SSH extension to allow you to connect to your hosts at ~/.ssh/config and ~/ssh/know_hosts file from Gnome top bar.", "link": "https://extensions.gnome.org/extension/4779/ssh-tray/", "shell_version_map": {
     "41": {"version": "1", "sha256": "1c7ndcv3bnsc95sijdkq39fshybpaq9fqdk3gvwm1lx40r1ibgih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBTU0ggZXh0ZW5zaW9uIHRvIGFsbG93IHlvdSB0byBjb25uZWN0IHRvIHlvdXIgaG9zdHMgYXQgfi8uc3NoL2NvbmZpZyBhbmQgfi9zc2gva25vd19ob3N0cyBmaWxlIGZyb20gR25vbWUgdG9wIGJhci4iLAogICJuYW1lIjogIlNTSCBUcmF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJzc2gtdHJheUBtYXJpby5jYXJkaWEuY29tLmJyIiwKICAidmVyc2lvbiI6IDEKfQ=="}
   }}
-, {"uuid": "glasa@lyrahgames.github.io", "name": "Glasa", "pname": "glasa", "description": "This extension puts an icon in the panel consisting of two comic-like eyes following the cursor.", "link": "https://extensions.gnome.org/extension/4780/glasa/", "shell_version_map": {
+, {"uuid": "glasa@lyrahgames.github.io", "name": "Glasa", "pname": "glasa", "description": "This extension puts adds an indicator to the top panel whose icon continuously renders two comic-like eyes that follow the mouse cursor.", "link": "https://extensions.gnome.org/extension/4780/glasa/", "shell_version_map": {
     "38": {"version": "2", "sha256": "0j45y91xal9vpk5iznkxydhq4dw55hvwqyfhvq48i5zlzxfirrvn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHB1dHMgYW4gaWNvbiBpbiB0aGUgcGFuZWwgY29uc2lzdGluZyBvZiB0d28gY29taWMtbGlrZSBleWVzIGZvbGxvd2luZyB0aGUgY3Vyc29yLiIsCiAgIm5hbWUiOiAiR2xhc2EiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x5cmFoZ2FtZXMvZ25vbWUtZXh0ZW5zaW9uLWdsYXNhIiwKICAidXVpZCI6ICJnbGFzYUBseXJhaGdhbWVzLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAyCn0="},
     "40": {"version": "7", "sha256": "1nkv8bjsjdp4scklmpn7f74fhnyqd65dvhlplzn54qad74afdjdj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHB1dHMgYW4gaWNvbiBpbiB0aGUgcGFuZWwgY29uc2lzdGluZyBvZiB0d28gY29taWMtbGlrZSBleWVzIGZvbGxvd2luZyB0aGUgY3Vyc29yLiIsCiAgIm5hbWUiOiAiR2xhc2EiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x5cmFoZ2FtZXMvZ25vbWUtZXh0ZW5zaW9uLWdsYXNhIiwKICAidXVpZCI6ICJnbGFzYUBseXJhaGdhbWVzLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA3Cn0="},
     "41": {"version": "7", "sha256": "1nkv8bjsjdp4scklmpn7f74fhnyqd65dvhlplzn54qad74afdjdj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHB1dHMgYW4gaWNvbiBpbiB0aGUgcGFuZWwgY29uc2lzdGluZyBvZiB0d28gY29taWMtbGlrZSBleWVzIGZvbGxvd2luZyB0aGUgY3Vyc29yLiIsCiAgIm5hbWUiOiAiR2xhc2EiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x5cmFoZ2FtZXMvZ25vbWUtZXh0ZW5zaW9uLWdsYXNhIiwKICAidXVpZCI6ICJnbGFzYUBseXJhaGdhbWVzLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA3Cn0="},
     "42": {"version": "11", "sha256": "1w6bda9qblx7px85gn0b8cc7gvfwdw7yxpc3z7c7k3b593w93wjv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHB1dHMgYW4gaWNvbiBpbiB0aGUgcGFuZWwgY29uc2lzdGluZyBvZiB0d28gY29taWMtbGlrZSBleWVzIGZvbGxvd2luZyB0aGUgY3Vyc29yLiIsCiAgImdldHRleHQtZG9tYWluIjogImdsYXNhIiwKICAibmFtZSI6ICJHbGFzYSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbGFzYSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x5cmFoZ2FtZXMvZ25vbWUtZXh0ZW5zaW9uLWdsYXNhIiwKICAidXVpZCI6ICJnbGFzYUBseXJhaGdhbWVzLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMQp9"},
     "43": {"version": "11", "sha256": "1w6bda9qblx7px85gn0b8cc7gvfwdw7yxpc3z7c7k3b593w93wjv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHB1dHMgYW4gaWNvbiBpbiB0aGUgcGFuZWwgY29uc2lzdGluZyBvZiB0d28gY29taWMtbGlrZSBleWVzIGZvbGxvd2luZyB0aGUgY3Vyc29yLiIsCiAgImdldHRleHQtZG9tYWluIjogImdsYXNhIiwKICAibmFtZSI6ICJHbGFzYSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbGFzYSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x5cmFoZ2FtZXMvZ25vbWUtZXh0ZW5zaW9uLWdsYXNhIiwKICAidXVpZCI6ICJnbGFzYUBseXJhaGdhbWVzLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMQp9"},
-    "44": {"version": "11", "sha256": "1w6bda9qblx7px85gn0b8cc7gvfwdw7yxpc3z7c7k3b593w93wjv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHB1dHMgYW4gaWNvbiBpbiB0aGUgcGFuZWwgY29uc2lzdGluZyBvZiB0d28gY29taWMtbGlrZSBleWVzIGZvbGxvd2luZyB0aGUgY3Vyc29yLiIsCiAgImdldHRleHQtZG9tYWluIjogImdsYXNhIiwKICAibmFtZSI6ICJHbGFzYSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbGFzYSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x5cmFoZ2FtZXMvZ25vbWUtZXh0ZW5zaW9uLWdsYXNhIiwKICAidXVpZCI6ICJnbGFzYUBseXJhaGdhbWVzLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMQp9"}
+    "44": {"version": "11", "sha256": "1w6bda9qblx7px85gn0b8cc7gvfwdw7yxpc3z7c7k3b593w93wjv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHB1dHMgYW4gaWNvbiBpbiB0aGUgcGFuZWwgY29uc2lzdGluZyBvZiB0d28gY29taWMtbGlrZSBleWVzIGZvbGxvd2luZyB0aGUgY3Vyc29yLiIsCiAgImdldHRleHQtZG9tYWluIjogImdsYXNhIiwKICAibmFtZSI6ICJHbGFzYSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbGFzYSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x5cmFoZ2FtZXMvZ25vbWUtZXh0ZW5zaW9uLWdsYXNhIiwKICAidXVpZCI6ICJnbGFzYUBseXJhaGdhbWVzLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMQp9"},
+    "45": {"version": "14", "sha256": "1i9010nyayiw4xpy8mdkpx8yml322d1a29zj73il76r6qnvr8hha", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHB1dHMgYWRkcyBhbiBpbmRpY2F0b3IgdG8gdGhlIHRvcCBwYW5lbCB3aG9zZSBpY29uIGNvbnRpbnVvdXNseSByZW5kZXJzIHR3byBjb21pYy1saWtlIGV5ZXMgdGhhdCBmb2xsb3cgdGhlIG1vdXNlIGN1cnNvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbGFzYUBseXJhaGdhbWVzLmdpdGh1Yi5pbyIsCiAgIm5hbWUiOiAiR2xhc2EiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ2xhc2EiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHlyYWhnYW1lcy9nbm9tZS1leHRlbnNpb24tZ2xhc2EiLAogICJ1dWlkIjogImdsYXNhQGx5cmFoZ2FtZXMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE0Cn0="}
   }}
 , {"uuid": "avatar@pawel.swiszcz.com", "name": "Avatar", "pname": "avatar", "description": "Add Avatar, MPRIS and Top image into the panel. Options to change: \n * Avatar (horizontal/vertical, shades, visibility of username and hostname) \n * Primary buttons \n * MPRIS \n * Top image (can be Your own image from system) ", "link": "https://extensions.gnome.org/extension/4782/avatar/", "shell_version_map": {
     "41": {"version": "22", "sha256": "0flak21wzrwyc4q32shpg7pxfbbbas634yy5lkq4jjfqpgka3f33", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBBdmF0YXIsIE1QUklTIGFuZCBUb3AgaW1hZ2UgaW50byB0aGUgcGFuZWwuIE9wdGlvbnMgdG8gY2hhbmdlOiBcbiAqIEF2YXRhciAoaG9yaXpvbnRhbC92ZXJ0aWNhbCwgc2hhZGVzLCB2aXNpYmlsaXR5IG9mIHVzZXJuYW1lIGFuZCBob3N0bmFtZSkgXG4gKiBQcmltYXJ5IGJ1dHRvbnMgXG4gKiBNUFJJUyBcbiAqIFRvcCBpbWFnZSAoY2FuIGJlIFlvdXIgb3duIGltYWdlIGZyb20gc3lzdGVtKSAiLAogICJuYW1lIjogIkF2YXRhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Bhd2Vsc3dpc3pjei9BdmF0YXItR25vbWUtU2hlbGwtRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhdmF0YXJAcGF3ZWwuc3dpc3pjei5jb20iLAogICJ2ZXJzaW9uIjogMjIKfQ=="},
@@ -4310,12 +4325,13 @@
     "43": {"version": "25", "sha256": "1halrjfj7xahask8saqgijnirkyg8ch03wa3j89f0zfvwjdcbxpr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQWx0ICsgTW91c2UgY29udHJvbCB3aW5kb3dcbkRldGFpbGVkIGluc3RydWN0aW9ucyBhcmUgb24gdGhlIGhvbWUgcGFnZSBhbmQgaW4gY29uZmlnIGludGVyZmFjZS4gXG5EaXNhYmxlIGRlc2t0b3AgQmFja2dyb3VuZE1lbnUsIERpc2FibGUgUGFuZWwgZHJhZ01vZGUuIFxuQWRkIGEgZ2FwIGF0IHJpZ2h0IHNjcmVlbiBlZGdlLiBcbkFkZCBUb3AtTGVmdCBhbmQgVG9wLVJpZ2h0IGNvcm5lciBhcyBob3QgY29uZXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYWx0LW1vdXNlIiwKICAibmFtZSI6ICJBbHQgTW91c2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWx0LW1vdXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ3MtYWx0LW1vdXNlIiwKICAidXVpZCI6ICJhbHQtbW91c2VAZWV4cHNzLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyNQp9"},
     "44": {"version": "25", "sha256": "1halrjfj7xahask8saqgijnirkyg8ch03wa3j89f0zfvwjdcbxpr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQWx0ICsgTW91c2UgY29udHJvbCB3aW5kb3dcbkRldGFpbGVkIGluc3RydWN0aW9ucyBhcmUgb24gdGhlIGhvbWUgcGFnZSBhbmQgaW4gY29uZmlnIGludGVyZmFjZS4gXG5EaXNhYmxlIGRlc2t0b3AgQmFja2dyb3VuZE1lbnUsIERpc2FibGUgUGFuZWwgZHJhZ01vZGUuIFxuQWRkIGEgZ2FwIGF0IHJpZ2h0IHNjcmVlbiBlZGdlLiBcbkFkZCBUb3AtTGVmdCBhbmQgVG9wLVJpZ2h0IGNvcm5lciBhcyBob3QgY29uZXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYWx0LW1vdXNlIiwKICAibmFtZSI6ICJBbHQgTW91c2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWx0LW1vdXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ3MtYWx0LW1vdXNlIiwKICAidXVpZCI6ICJhbHQtbW91c2VAZWV4cHNzLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyNQp9"}
   }}
-, {"uuid": "workspace-switcher-manager@G-dH.github.com", "name": "Workspace Switcher Manager", "pname": "workspace-switcher-manager", "description": "Make the workspace switcher popup useful! Customize your workspace switcher behavior and the content, dimensions, position, orientation and colors of its popup indicator.\n\n- all GNOME workspace related options at one place\n- allows to switch workspaces orientation to horizontal or vertical\n- adds workspace switcher 'Wraparoud' and 'Ignore Last (empty) Workspace' options\n- allows to disable or customize switcher popup\n- allows adding content to the workspace switcher popup - Workspace Name, Current Application Name, Workspace Index\n- workspace switcher popup appearance customization includes position on screen, timings, size, colors , orientation.\n\nPlease, report bugs on the GitHub page linked below.", "link": "https://extensions.gnome.org/extension/4788/workspace-switcher-manager/", "shell_version_map": {
+, {"uuid": "workspace-switcher-manager@G-dH.github.com", "name": "Workspace Switcher Manager", "pname": "workspace-switcher-manager", "description": "Make the workspace switcher popup useful! Customize your workspace switcher behavior and the content, dimensions, position, orientation and colors of its popup indicator.\n\n- all GNOME workspace related options in one place\n- adds ws switcher Wraparoud and Ignore Last (empty) Workspace options\n- allows to disable or customize switcher popup\n- allows adding content to the workspace switcher popup - Workspace Name, Current Application Name, Workspace Index\n- ws switcher popup appearance customization includes position on screen, timings, size, colors , orientation", "link": "https://extensions.gnome.org/extension/4788/workspace-switcher-manager/", "shell_version_map": {
     "38": {"version": "9", "sha256": "1pd5a520rfnf4hcpdqxq7z5c7691qh07685as6s9ssvfdzhxxf61", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCB1c2VmdWwhIEN1c3RvbWl6ZSB5b3VyIHdvcmtzcGFjZSBzd2l0Y2hlciBiZWhhdmlvciBhbmQgdGhlIGNvbnRlbnQsIGRpbWVuc2lvbnMsIHBvc2l0aW9uLCBvcmllbnRhdGlvbiBhbmQgY29sb3JzIG9mIGl0cyBwb3B1cCBpbmRpY2F0b3IuXG5cbi0gYWxsIEdOT01FIHdvcmtzcGFjZSByZWxhdGVkIG9wdGlvbnMgYXQgb25lIHBsYWNlXG4tIGFsbG93cyB0byBzd2l0Y2ggd29ya3NwYWNlcyBvcmllbnRhdGlvbiB0byBob3Jpem9udGFsIG9yIHZlcnRpY2FsXG4tIGFkZHMgd29ya3NwYWNlIHN3aXRjaGVyICdXcmFwYXJvdWQnIGFuZCAnSWdub3JlIExhc3QgKGVtcHR5KSBXb3Jrc3BhY2UnIG9wdGlvbnNcbi0gYWxsb3dzIHRvIGRpc2FibGUgb3IgY3VzdG9taXplIHN3aXRjaGVyIHBvcHVwXG4tIGFsbG93cyBhZGRpbmcgY29udGVudCB0byB0aGUgd29ya3NwYWNlIHN3aXRjaGVyIHBvcHVwIC0gV29ya3NwYWNlIE5hbWUsIEN1cnJlbnQgQXBwbGljYXRpb24gTmFtZSwgV29ya3NwYWNlIEluZGV4XG4tIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCBhcHBlYXJhbmNlIGN1c3RvbWl6YXRpb24gaW5jbHVkZXMgcG9zaXRpb24gb24gc2NyZWVuLCB0aW1pbmdzLCBzaXplLCBjb2xvcnMgLCBvcmllbnRhdGlvbi5cblxuUGxlYXNlLCByZXBvcnQgYnVncyBvbiB0aGUgR2l0SHViIHBhZ2UgbGlua2VkIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU3dpdGNoZXIgTWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL3dvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlckBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOQp9"},
     "40": {"version": "9", "sha256": "1pd5a520rfnf4hcpdqxq7z5c7691qh07685as6s9ssvfdzhxxf61", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCB1c2VmdWwhIEN1c3RvbWl6ZSB5b3VyIHdvcmtzcGFjZSBzd2l0Y2hlciBiZWhhdmlvciBhbmQgdGhlIGNvbnRlbnQsIGRpbWVuc2lvbnMsIHBvc2l0aW9uLCBvcmllbnRhdGlvbiBhbmQgY29sb3JzIG9mIGl0cyBwb3B1cCBpbmRpY2F0b3IuXG5cbi0gYWxsIEdOT01FIHdvcmtzcGFjZSByZWxhdGVkIG9wdGlvbnMgYXQgb25lIHBsYWNlXG4tIGFsbG93cyB0byBzd2l0Y2ggd29ya3NwYWNlcyBvcmllbnRhdGlvbiB0byBob3Jpem9udGFsIG9yIHZlcnRpY2FsXG4tIGFkZHMgd29ya3NwYWNlIHN3aXRjaGVyICdXcmFwYXJvdWQnIGFuZCAnSWdub3JlIExhc3QgKGVtcHR5KSBXb3Jrc3BhY2UnIG9wdGlvbnNcbi0gYWxsb3dzIHRvIGRpc2FibGUgb3IgY3VzdG9taXplIHN3aXRjaGVyIHBvcHVwXG4tIGFsbG93cyBhZGRpbmcgY29udGVudCB0byB0aGUgd29ya3NwYWNlIHN3aXRjaGVyIHBvcHVwIC0gV29ya3NwYWNlIE5hbWUsIEN1cnJlbnQgQXBwbGljYXRpb24gTmFtZSwgV29ya3NwYWNlIEluZGV4XG4tIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCBhcHBlYXJhbmNlIGN1c3RvbWl6YXRpb24gaW5jbHVkZXMgcG9zaXRpb24gb24gc2NyZWVuLCB0aW1pbmdzLCBzaXplLCBjb2xvcnMgLCBvcmllbnRhdGlvbi5cblxuUGxlYXNlLCByZXBvcnQgYnVncyBvbiB0aGUgR2l0SHViIHBhZ2UgbGlua2VkIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU3dpdGNoZXIgTWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL3dvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlckBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOQp9"},
     "41": {"version": "9", "sha256": "1pd5a520rfnf4hcpdqxq7z5c7691qh07685as6s9ssvfdzhxxf61", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCB1c2VmdWwhIEN1c3RvbWl6ZSB5b3VyIHdvcmtzcGFjZSBzd2l0Y2hlciBiZWhhdmlvciBhbmQgdGhlIGNvbnRlbnQsIGRpbWVuc2lvbnMsIHBvc2l0aW9uLCBvcmllbnRhdGlvbiBhbmQgY29sb3JzIG9mIGl0cyBwb3B1cCBpbmRpY2F0b3IuXG5cbi0gYWxsIEdOT01FIHdvcmtzcGFjZSByZWxhdGVkIG9wdGlvbnMgYXQgb25lIHBsYWNlXG4tIGFsbG93cyB0byBzd2l0Y2ggd29ya3NwYWNlcyBvcmllbnRhdGlvbiB0byBob3Jpem9udGFsIG9yIHZlcnRpY2FsXG4tIGFkZHMgd29ya3NwYWNlIHN3aXRjaGVyICdXcmFwYXJvdWQnIGFuZCAnSWdub3JlIExhc3QgKGVtcHR5KSBXb3Jrc3BhY2UnIG9wdGlvbnNcbi0gYWxsb3dzIHRvIGRpc2FibGUgb3IgY3VzdG9taXplIHN3aXRjaGVyIHBvcHVwXG4tIGFsbG93cyBhZGRpbmcgY29udGVudCB0byB0aGUgd29ya3NwYWNlIHN3aXRjaGVyIHBvcHVwIC0gV29ya3NwYWNlIE5hbWUsIEN1cnJlbnQgQXBwbGljYXRpb24gTmFtZSwgV29ya3NwYWNlIEluZGV4XG4tIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCBhcHBlYXJhbmNlIGN1c3RvbWl6YXRpb24gaW5jbHVkZXMgcG9zaXRpb24gb24gc2NyZWVuLCB0aW1pbmdzLCBzaXplLCBjb2xvcnMgLCBvcmllbnRhdGlvbi5cblxuUGxlYXNlLCByZXBvcnQgYnVncyBvbiB0aGUgR2l0SHViIHBhZ2UgbGlua2VkIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU3dpdGNoZXIgTWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL3dvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlckBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOQp9"},
     "42": {"version": "9", "sha256": "1pd5a520rfnf4hcpdqxq7z5c7691qh07685as6s9ssvfdzhxxf61", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCB1c2VmdWwhIEN1c3RvbWl6ZSB5b3VyIHdvcmtzcGFjZSBzd2l0Y2hlciBiZWhhdmlvciBhbmQgdGhlIGNvbnRlbnQsIGRpbWVuc2lvbnMsIHBvc2l0aW9uLCBvcmllbnRhdGlvbiBhbmQgY29sb3JzIG9mIGl0cyBwb3B1cCBpbmRpY2F0b3IuXG5cbi0gYWxsIEdOT01FIHdvcmtzcGFjZSByZWxhdGVkIG9wdGlvbnMgYXQgb25lIHBsYWNlXG4tIGFsbG93cyB0byBzd2l0Y2ggd29ya3NwYWNlcyBvcmllbnRhdGlvbiB0byBob3Jpem9udGFsIG9yIHZlcnRpY2FsXG4tIGFkZHMgd29ya3NwYWNlIHN3aXRjaGVyICdXcmFwYXJvdWQnIGFuZCAnSWdub3JlIExhc3QgKGVtcHR5KSBXb3Jrc3BhY2UnIG9wdGlvbnNcbi0gYWxsb3dzIHRvIGRpc2FibGUgb3IgY3VzdG9taXplIHN3aXRjaGVyIHBvcHVwXG4tIGFsbG93cyBhZGRpbmcgY29udGVudCB0byB0aGUgd29ya3NwYWNlIHN3aXRjaGVyIHBvcHVwIC0gV29ya3NwYWNlIE5hbWUsIEN1cnJlbnQgQXBwbGljYXRpb24gTmFtZSwgV29ya3NwYWNlIEluZGV4XG4tIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCBhcHBlYXJhbmNlIGN1c3RvbWl6YXRpb24gaW5jbHVkZXMgcG9zaXRpb24gb24gc2NyZWVuLCB0aW1pbmdzLCBzaXplLCBjb2xvcnMgLCBvcmllbnRhdGlvbi5cblxuUGxlYXNlLCByZXBvcnQgYnVncyBvbiB0aGUgR2l0SHViIHBhZ2UgbGlua2VkIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU3dpdGNoZXIgTWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL3dvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlckBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOQp9"},
-    "43": {"version": "9", "sha256": "1pd5a520rfnf4hcpdqxq7z5c7691qh07685as6s9ssvfdzhxxf61", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCB1c2VmdWwhIEN1c3RvbWl6ZSB5b3VyIHdvcmtzcGFjZSBzd2l0Y2hlciBiZWhhdmlvciBhbmQgdGhlIGNvbnRlbnQsIGRpbWVuc2lvbnMsIHBvc2l0aW9uLCBvcmllbnRhdGlvbiBhbmQgY29sb3JzIG9mIGl0cyBwb3B1cCBpbmRpY2F0b3IuXG5cbi0gYWxsIEdOT01FIHdvcmtzcGFjZSByZWxhdGVkIG9wdGlvbnMgYXQgb25lIHBsYWNlXG4tIGFsbG93cyB0byBzd2l0Y2ggd29ya3NwYWNlcyBvcmllbnRhdGlvbiB0byBob3Jpem9udGFsIG9yIHZlcnRpY2FsXG4tIGFkZHMgd29ya3NwYWNlIHN3aXRjaGVyICdXcmFwYXJvdWQnIGFuZCAnSWdub3JlIExhc3QgKGVtcHR5KSBXb3Jrc3BhY2UnIG9wdGlvbnNcbi0gYWxsb3dzIHRvIGRpc2FibGUgb3IgY3VzdG9taXplIHN3aXRjaGVyIHBvcHVwXG4tIGFsbG93cyBhZGRpbmcgY29udGVudCB0byB0aGUgd29ya3NwYWNlIHN3aXRjaGVyIHBvcHVwIC0gV29ya3NwYWNlIE5hbWUsIEN1cnJlbnQgQXBwbGljYXRpb24gTmFtZSwgV29ya3NwYWNlIEluZGV4XG4tIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCBhcHBlYXJhbmNlIGN1c3RvbWl6YXRpb24gaW5jbHVkZXMgcG9zaXRpb24gb24gc2NyZWVuLCB0aW1pbmdzLCBzaXplLCBjb2xvcnMgLCBvcmllbnRhdGlvbi5cblxuUGxlYXNlLCByZXBvcnQgYnVncyBvbiB0aGUgR2l0SHViIHBhZ2UgbGlua2VkIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU3dpdGNoZXIgTWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL3dvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlckBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}
+    "43": {"version": "9", "sha256": "1pd5a520rfnf4hcpdqxq7z5c7691qh07685as6s9ssvfdzhxxf61", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCB1c2VmdWwhIEN1c3RvbWl6ZSB5b3VyIHdvcmtzcGFjZSBzd2l0Y2hlciBiZWhhdmlvciBhbmQgdGhlIGNvbnRlbnQsIGRpbWVuc2lvbnMsIHBvc2l0aW9uLCBvcmllbnRhdGlvbiBhbmQgY29sb3JzIG9mIGl0cyBwb3B1cCBpbmRpY2F0b3IuXG5cbi0gYWxsIEdOT01FIHdvcmtzcGFjZSByZWxhdGVkIG9wdGlvbnMgYXQgb25lIHBsYWNlXG4tIGFsbG93cyB0byBzd2l0Y2ggd29ya3NwYWNlcyBvcmllbnRhdGlvbiB0byBob3Jpem9udGFsIG9yIHZlcnRpY2FsXG4tIGFkZHMgd29ya3NwYWNlIHN3aXRjaGVyICdXcmFwYXJvdWQnIGFuZCAnSWdub3JlIExhc3QgKGVtcHR5KSBXb3Jrc3BhY2UnIG9wdGlvbnNcbi0gYWxsb3dzIHRvIGRpc2FibGUgb3IgY3VzdG9taXplIHN3aXRjaGVyIHBvcHVwXG4tIGFsbG93cyBhZGRpbmcgY29udGVudCB0byB0aGUgd29ya3NwYWNlIHN3aXRjaGVyIHBvcHVwIC0gV29ya3NwYWNlIE5hbWUsIEN1cnJlbnQgQXBwbGljYXRpb24gTmFtZSwgV29ya3NwYWNlIEluZGV4XG4tIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCBhcHBlYXJhbmNlIGN1c3RvbWl6YXRpb24gaW5jbHVkZXMgcG9zaXRpb24gb24gc2NyZWVuLCB0aW1pbmdzLCBzaXplLCBjb2xvcnMgLCBvcmllbnRhdGlvbi5cblxuUGxlYXNlLCByZXBvcnQgYnVncyBvbiB0aGUgR2l0SHViIHBhZ2UgbGlua2VkIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU3dpdGNoZXIgTWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL3dvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlckBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOQp9"},
+    "45": {"version": "12", "sha256": "15548k8jk4mkchp869fxbdnw7wpxfsq8sphgx3cf2b7dyw3rx1v6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCB1c2VmdWwhIEN1c3RvbWl6ZSB5b3VyIHdvcmtzcGFjZSBzd2l0Y2hlciBiZWhhdmlvciBhbmQgdGhlIGNvbnRlbnQsIGRpbWVuc2lvbnMsIHBvc2l0aW9uLCBvcmllbnRhdGlvbiBhbmQgY29sb3JzIG9mIGl0cyBwb3B1cCBpbmRpY2F0b3IuXG5cbi0gYWxsIEdOT01FIHdvcmtzcGFjZSByZWxhdGVkIG9wdGlvbnMgaW4gb25lIHBsYWNlXG4tIGFkZHMgd3Mgc3dpdGNoZXIgV3JhcGFyb3VkIGFuZCBJZ25vcmUgTGFzdCAoZW1wdHkpIFdvcmtzcGFjZSBvcHRpb25zXG4tIGFsbG93cyB0byBkaXNhYmxlIG9yIGN1c3RvbWl6ZSBzd2l0Y2hlciBwb3B1cFxuLSBhbGxvd3MgYWRkaW5nIGNvbnRlbnQgdG8gdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCAtIFdvcmtzcGFjZSBOYW1lLCBDdXJyZW50IEFwcGxpY2F0aW9uIE5hbWUsIFdvcmtzcGFjZSBJbmRleFxuLSB3cyBzd2l0Y2hlciBwb3B1cCBhcHBlYXJhbmNlIGN1c3RvbWl6YXRpb24gaW5jbHVkZXMgcG9zaXRpb24gb24gc2NyZWVuLCB0aW1pbmdzLCBzaXplLCBjb2xvcnMgLCBvcmllbnRhdGlvbiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZ2VvcmdkaCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlciIsCiAgIm5hbWUiOiAiV29ya3NwYWNlIFN3aXRjaGVyIE1hbmFnZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud29ya3NwYWNlLXN3aXRjaGVyLW1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvd29ya3NwYWNlLXN3aXRjaGVyLW1hbmFnZXIiLAogICJ1dWlkIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMiwKICAidmVyc2lvbi1uYW1lIjogIjQ2LjEiCn0="}
   }}
 , {"uuid": "compare@eexpss.gmail.com", "name": "Compare or Open", "pname": "compare-filedir-from-clip", "description": "Copy/Select two Dirs/Files from anywhere such as `nautilus` or `gnome-terminal`, and then compare them (use `meld`) or open with Ctrl-O or open with context-menu.", "link": "https://extensions.gnome.org/extension/4789/compare-filedir-from-clip/", "shell_version_map": {
     "40": {"version": "15", "sha256": "0is8y6cs3qfaljlmyfhjpp71fbd98bizldf0rhrblm91mjfhqi3a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvcHkvU2VsZWN0IHR3byBEaXJzL0ZpbGVzIGZyb20gYW55d2hlcmUgc3VjaCBhcyBgbmF1dGlsdXNgIG9yIGBnbm9tZS10ZXJtaW5hbGAsIGFuZCB0aGVuIGNvbXBhcmUgdGhlbSAodXNlIGBtZWxkYCkgb3Igb3BlbiB3aXRoIEN0cmwtTyBvciBvcGVuIHdpdGggY29udGV4dC1tZW51LiIsCiAgImdldHRleHQtZG9tYWluIjogImNvbXBhcmUiLAogICJuYW1lIjogIkNvbXBhcmUgb3IgT3BlbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb21wYXJlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ25vbWUtc2hlbGwtY29tcGFyZSIsCiAgInV1aWQiOiAiY29tcGFyZUBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE1Cn0="},
@@ -4327,7 +4343,7 @@
     "42": {"version": "8", "sha256": "0ldkfawgpdzzicr7ja1v1lyjg38pw0mh2i91gm3bdf9wxln4d6j7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHRvZ2dsZSB0byBlbmFibGUvZGlzYWJsZSBDUFUgZnJlcXVlbmN5IGJvb3N0IGluIEdub21lIFBvd2VyIFByb2ZpbGVzIG1lbnUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZnJlcS1ib29zdC1zd2l0Y2hAbWV0YWwwMzMyNiIsCiAgIm5hbWUiOiAiRnJlcXVlbmN5IEJvb3N0IFN3aXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVxLWJvb3N0LXN3aXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9tZXRhbDAzMzI2L2dub21lLWZyZXF1ZW5jeS1ib29zdC1zd2l0Y2giLAogICJ1dWlkIjogImZyZXEtYm9vc3Qtc3dpdGNoQG1ldGFsMDMzMjYiLAogICJ2ZXJzaW9uIjogOAp9"},
     "43": {"version": "9", "sha256": "0fj1bc209l2zz8cwllxm5nadd0hmvikf9d1ydfwc25l201czl68m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHRvZ2dsZSB0byBlbmFibGUvZGlzYWJsZSBDUFUgZnJlcXVlbmN5IGJvb3N0IGluIEdub21lIFBvd2VyIFByb2ZpbGVzIG1lbnUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZnJlcS1ib29zdC1zd2l0Y2hAbWV0YWwwMzMyNiIsCiAgIm5hbWUiOiAiRnJlcXVlbmN5IEJvb3N0IFN3aXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVxLWJvb3N0LXN3aXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9tZXRhbDAzMzI2L2dub21lLWZyZXF1ZW5jeS1ib29zdC1zd2l0Y2giLAogICJ1dWlkIjogImZyZXEtYm9vc3Qtc3dpdGNoQG1ldGFsMDMzMjYiLAogICJ2ZXJzaW9uIjogOQp9"},
     "44": {"version": "12", "sha256": "14kxvp230ls2g657yl4zxnsz1f3rn9m20ykrmqmvsjkhcmgkkq30", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHRvZ2dsZSB0byBlbmFibGUvZGlzYWJsZSBDUFUgZnJlcXVlbmN5IGJvb3N0IGluIEdub21lIFBvd2VyIFByb2ZpbGVzIG1lbnUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZnJlcS1ib29zdC1zd2l0Y2hAbWV0YWwwMzMyNiIsCiAgIm5hbWUiOiAiRnJlcXVlbmN5IEJvb3N0IFN3aXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVxLWJvb3N0LXN3aXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9tZXRhbDAzMzI2L2dub21lLWZyZXF1ZW5jeS1ib29zdC1zd2l0Y2giLAogICJ1dWlkIjogImZyZXEtYm9vc3Qtc3dpdGNoQG1ldGFsMDMzMjYiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
-    "45": {"version": "13", "sha256": "1zfahxyy3f23zvfwfk9rzqflmfxhrqr1jgvyynj30d4bqppfxa64", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHRvZ2dsZSB0byBlbmFibGUvZGlzYWJsZSBDUFUgZnJlcXVlbmN5IGJvb3N0IGluIEdub21lIFF1aWNrIFNldHRpbmdzIG1lbnUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZnJlcS1ib29zdC1zd2l0Y2hAbWV0YWwwMzMyNiIsCiAgIm5hbWUiOiAiRnJlcXVlbmN5IEJvb3N0IFN3aXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVxLWJvb3N0LXN3aXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9tZXRhbDAzMzI2L2dub21lLWZyZXF1ZW5jeS1ib29zdC1zd2l0Y2giLAogICJ1dWlkIjogImZyZXEtYm9vc3Qtc3dpdGNoQG1ldGFsMDMzMjYiLAogICJ2ZXJzaW9uIjogMTMKfQ=="}
+    "45": {"version": "15", "sha256": "1mv1sn1sl749yvjal3f53913x3sxrrnini4f6dj3cxgkb4kswd17", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHRvZ2dsZSB0byBlbmFibGUvZGlzYWJsZSBDUFUgZnJlcXVlbmN5IGJvb3N0IGluIEdub21lIFF1aWNrIFNldHRpbmdzIG1lbnUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZnJlcS1ib29zdC1zd2l0Y2hAbWV0YWwwMzMyNiIsCiAgIm5hbWUiOiAiRnJlcXVlbmN5IEJvb3N0IFN3aXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVxLWJvb3N0LXN3aXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9tZXRhbDAzMzI2L2dub21lLWZyZXF1ZW5jeS1ib29zdC1zd2l0Y2giLAogICJ1dWlkIjogImZyZXEtYm9vc3Qtc3dpdGNoQG1ldGFsMDMzMjYiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}
   }}
 , {"uuid": "pop-launcher-super-key@ManeLippert", "name": "Pop Launcher Super-Key", "pname": "pop-launcher-super-key", "description": "Fork of Pop COSMIC: Binds Pop Launcher on Super-Key when Pop COSMIC Extension is disabled. \n\nSince Pop!_OS moves to its own desktop enviroment (COSMIC DE) and I left linux behind me this extension will not get continued. If someone is willing to port the extension to Gnome 45, get in touch with me on the repository page on GitHub.\n\nIf you want to change the support manually, modify '~/.local/share/gnome-shell/extensions/pop-launcher-super-key@ManeLippert/metadata.json' under 'shell-version' add the desired version (e.g '44' for GNOME 44).", "link": "https://extensions.gnome.org/extension/4797/pop-launcher-super-key/", "shell_version_map": {
     "38": {"version": "10", "sha256": "05qdfqiscminv560finl4qy6747n9r1n54h1yx7k648wwxb31s9s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2YgUG9wIENPU01JQzogQmluZHMgUG9wIExhdW5jaGVyIG9uIFN1cGVyLUtleSB3aGVuIFBvcCBDT1NNSUMgRXh0ZW5zaW9uIGlzIGRpc2FibGVkLiBcblxuU2luY2UgUG9wIV9PUyBtb3ZlcyB0byBpdHMgb3duIGRlc2t0b3AgZW52aXJvbWVudCAoQ09TTUlDIERFKSBhbmQgSSBsZWZ0IGxpbnV4IGJlaGluZCBtZSB0aGlzIGV4dGVuc2lvbiB3aWxsIG5vdCBnZXQgY29udGludWVkLiBcblxuSWYgeW91IHdhbnQgdG8gY2hhbmdlIHRoZSBzdXBwb3J0IG1hbnVhbGx5LCBtb2RpZnkgJ34vLmxvY2FsL3NoYXJlL2dub21lLXNoZWxsL2V4dGVuc2lvbnMvcG9wLWxhdW5jaGVyLXN1cGVyLWtleUBNYW5lTGlwcGVydC9tZXRhZGF0YS5qc29uJyB1bmRlciAnc2hlbGwtdmVyc2lvbicgYWRkIHRoZSBkZXNpcmVkIHZlcnNpb24gKGUuZyAnNDQnIGZvciBHTk9NRSA0NCkuIiwKICAibmFtZSI6ICJQb3AgTGF1bmNoZXIgU3VwZXItS2V5IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJTeXN0ZW03NiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wb3AtbGF1bmNoZXItc3VwZXIta2V5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NYW5lTGlwcGVydC9wb3AtbGF1bmNoZXItc3VwZXIta2V5IiwKICAidXVpZCI6ICJwb3AtbGF1bmNoZXItc3VwZXIta2V5QE1hbmVMaXBwZXJ0IiwKICAidmVyc2lvbiI6IDEwCn0="},
@@ -4421,7 +4437,7 @@
     "40": {"version": "2", "sha256": "0yzdj0d7rkmbrvgw0d8qsfh43339mmi1dkqnrcb82jh8lwg82psc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3Qgb3BlbiB3aW5kb3dzIG9mIGFsbCB3b3Jrc3BhY2VzLCBwbHVzIFNhdmUvUmVzdG9yZSB3aW5kb3cgcG9zaXRpb25zIChydW4gYXV0b21hdGljYWxseSBvbiBTdXNwZW5kL1Jlc3VtZSwgYSB3b3JrYXJvdW5kIGZvciBVYnVudHUgYnVnICMxNzc4OTgzKS4iLAogICJuYW1lIjogIkFsbCBXaW5kb3dzICsgU2F2ZS9SZXN0b3JlIFdpbmRvdyBQb3NpdGlvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2prYXZlcnkvYWxsLXdpbmRvd3MiLAogICJ1dWlkIjogImFsbC13aW5kb3dzLXNyd3BAamthdmVyeS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMgp9"},
     "42": {"version": "2", "sha256": "0yzdj0d7rkmbrvgw0d8qsfh43339mmi1dkqnrcb82jh8lwg82psc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3Qgb3BlbiB3aW5kb3dzIG9mIGFsbCB3b3Jrc3BhY2VzLCBwbHVzIFNhdmUvUmVzdG9yZSB3aW5kb3cgcG9zaXRpb25zIChydW4gYXV0b21hdGljYWxseSBvbiBTdXNwZW5kL1Jlc3VtZSwgYSB3b3JrYXJvdW5kIGZvciBVYnVudHUgYnVnICMxNzc4OTgzKS4iLAogICJuYW1lIjogIkFsbCBXaW5kb3dzICsgU2F2ZS9SZXN0b3JlIFdpbmRvdyBQb3NpdGlvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2prYXZlcnkvYWxsLXdpbmRvd3MiLAogICJ1dWlkIjogImFsbC13aW5kb3dzLXNyd3BAamthdmVyeS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMgp9"}
   }}
-, {"uuid": "clipboard-history@alexsaveau.dev", "name": "Clipboard History", "pname": "clipboard-history", "description": "Gnome Clipboard History is a Gnome extension that saves items you've copied into an easily accessible, searchable history panel.", "link": "https://extensions.gnome.org/extension/4839/clipboard-history/", "shell_version_map": {
+, {"uuid": "clipboard-history@alexsaveau.dev", "name": "Clipboard History", "pname": "clipboard-history", "description": "Gnome Clipboard History is a clipboard manager Gnome extension that saves items you've copied into an easily accessible, searchable history panel.", "link": "https://extensions.gnome.org/extension/4839/clipboard-history/", "shell_version_map": {
     "40": {"version": "32", "sha256": "1s0qv996m7fq8wfhivhb9j6gmfcr5j19y5vjlpj9ls59nd34zi8k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIENsaXBib2FyZCBIaXN0b3J5IGlzIGEgR25vbWUgZXh0ZW5zaW9uIHRoYXQgc2F2ZXMgaXRlbXMgeW91J3ZlIGNvcGllZCBpbnRvIGFuIGVhc2lseSBhY2Nlc3NpYmxlLCBzZWFyY2hhYmxlIGhpc3RvcnkgcGFuZWwuIiwKICAibmFtZSI6ICJDbGlwYm9hcmQgSGlzdG9yeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU1VQRVJDSUxFWC9nbm9tZS1jbGlwYm9hcmQtaGlzdG9yeSIsCiAgInV1aWQiOiAiY2xpcGJvYXJkLWhpc3RvcnlAYWxleHNhdmVhdS5kZXYiLAogICJ2ZXJzaW9uIjogMzIKfQ=="},
     "41": {"version": "32", "sha256": "1s0qv996m7fq8wfhivhb9j6gmfcr5j19y5vjlpj9ls59nd34zi8k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIENsaXBib2FyZCBIaXN0b3J5IGlzIGEgR25vbWUgZXh0ZW5zaW9uIHRoYXQgc2F2ZXMgaXRlbXMgeW91J3ZlIGNvcGllZCBpbnRvIGFuIGVhc2lseSBhY2Nlc3NpYmxlLCBzZWFyY2hhYmxlIGhpc3RvcnkgcGFuZWwuIiwKICAibmFtZSI6ICJDbGlwYm9hcmQgSGlzdG9yeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU1VQRVJDSUxFWC9nbm9tZS1jbGlwYm9hcmQtaGlzdG9yeSIsCiAgInV1aWQiOiAiY2xpcGJvYXJkLWhpc3RvcnlAYWxleHNhdmVhdS5kZXYiLAogICJ2ZXJzaW9uIjogMzIKfQ=="},
     "42": {"version": "32", "sha256": "1s0qv996m7fq8wfhivhb9j6gmfcr5j19y5vjlpj9ls59nd34zi8k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIENsaXBib2FyZCBIaXN0b3J5IGlzIGEgR25vbWUgZXh0ZW5zaW9uIHRoYXQgc2F2ZXMgaXRlbXMgeW91J3ZlIGNvcGllZCBpbnRvIGFuIGVhc2lseSBhY2Nlc3NpYmxlLCBzZWFyY2hhYmxlIGhpc3RvcnkgcGFuZWwuIiwKICAibmFtZSI6ICJDbGlwYm9hcmQgSGlzdG9yeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU1VQRVJDSUxFWC9nbm9tZS1jbGlwYm9hcmQtaGlzdG9yeSIsCiAgInV1aWQiOiAiY2xpcGJvYXJkLWhpc3RvcnlAYWxleHNhdmVhdS5kZXYiLAogICJ2ZXJzaW9uIjogMzIKfQ=="},
@@ -4467,7 +4483,8 @@
     "41": {"version": "9", "sha256": "0p7jci2rbkypspb8ywdmfxcnmvza3anhbsi372qvsv90ai9aqxv6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhZGRpdGlvbmFsIHdpbmRvdyBtYW5hZ2VtZW50IHNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiUXVhcnRlciBXaW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Ryb3lyZWFkeS9xdWFydGVyd2luZG93cyIsCiAgInV1aWQiOiAicXVhcnRlcndpbmRvd3NAdHJveXJlYWR5LmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="},
     "42": {"version": "9", "sha256": "0p7jci2rbkypspb8ywdmfxcnmvza3anhbsi372qvsv90ai9aqxv6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhZGRpdGlvbmFsIHdpbmRvdyBtYW5hZ2VtZW50IHNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiUXVhcnRlciBXaW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Ryb3lyZWFkeS9xdWFydGVyd2luZG93cyIsCiAgInV1aWQiOiAicXVhcnRlcndpbmRvd3NAdHJveXJlYWR5LmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="},
     "43": {"version": "9", "sha256": "0p7jci2rbkypspb8ywdmfxcnmvza3anhbsi372qvsv90ai9aqxv6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhZGRpdGlvbmFsIHdpbmRvdyBtYW5hZ2VtZW50IHNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiUXVhcnRlciBXaW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Ryb3lyZWFkeS9xdWFydGVyd2luZG93cyIsCiAgInV1aWQiOiAicXVhcnRlcndpbmRvd3NAdHJveXJlYWR5LmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="},
-    "44": {"version": "9", "sha256": "0p7jci2rbkypspb8ywdmfxcnmvza3anhbsi372qvsv90ai9aqxv6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhZGRpdGlvbmFsIHdpbmRvdyBtYW5hZ2VtZW50IHNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiUXVhcnRlciBXaW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Ryb3lyZWFkeS9xdWFydGVyd2luZG93cyIsCiAgInV1aWQiOiAicXVhcnRlcndpbmRvd3NAdHJveXJlYWR5LmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}
+    "44": {"version": "9", "sha256": "0p7jci2rbkypspb8ywdmfxcnmvza3anhbsi372qvsv90ai9aqxv6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhZGRpdGlvbmFsIHdpbmRvdyBtYW5hZ2VtZW50IHNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiUXVhcnRlciBXaW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Ryb3lyZWFkeS9xdWFydGVyd2luZG93cyIsCiAgInV1aWQiOiAicXVhcnRlcndpbmRvd3NAdHJveXJlYWR5LmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="},
+    "45": {"version": "10", "sha256": "0a0zkyxi4gizsrp24qcxidn5z7y0xk8z6gwrcqyc5yan2ai8cgd3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhZGRpdGlvbmFsIHdpbmRvdyBtYW5hZ2VtZW50IHNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiUXVhcnRlciBXaW5kb3dzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbS10cm95cmVhZHktcXVhcnRlcndpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHJveXJlYWR5L3F1YXJ0ZXJ3aW5kb3dzIiwKICAidXVpZCI6ICJxdWFydGVyd2luZG93c0B0cm95cmVhZHkuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}
   }}
 , {"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="},
@@ -4816,11 +4833,11 @@
     "44": {"version": "12", "sha256": "0cn0jlnspcsly11y7f0nizz719v2kw0p7yymp6kx927a5lsgg43x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyBtdXRpbmcvdW5tdXRpbmcgYXVkaW8gYnkgbWlkZGxlLWNsaWNraW5nIHRoZSBzcGVha2VyIGljb24gb24gdGhlIG1lbnUgYmFyLiBJdCBhbHNvIHBvcnRzIG9uIEdub21lIDQzIGFuZCBwcmVjZWRlbnQgdmVyc2lvbnMgdGhlIHNhbWUgYmVoYXZpb3VyIG9mIEdub21lIDQ0OiBtdXRlL3VubXV0ZSBhdWRpbyBieSBjbGlja2luZyB0aGUgYXVkaW8gb3V0cHV0IGljb24gbmV4dCB0byB0aGUgdm9sdW1lIHNsaWRlci4gVGhpcyBleHRlbnNpb24gdXNlcyBtdXRlL3VubXV0ZSBBUEkgaW4gb3JkZXIgdG8gcmVzdG9yZSBwcmV2aW91cyB2b2x1bWUgbGV2ZWwgYWZ0ZXIgdW5tdXRpbmcuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJNQ2FzdGFsZG8iCiAgfSwKICAibmFtZSI6ICJNdXRlL1VubXV0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWhwbGVkL211dGUtdW5tdXRlIiwKICAidXVpZCI6ICJtdXRlLXVubXV0ZUBtY2FzdC5nbm9tZXh0LmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"},
     "45": {"version": "17", "sha256": "066q2jphrwq6pqzfyb0ls0rrghwmahg84d91xy4svn567wb3awld", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyBtdXRpbmcvdW5tdXRpbmcgYXVkaW8gYnkgbWlkZGxlLWNsaWNraW5nIHRoZSBzcGVha2VyIGljb24gb24gdGhlIG1lbnUgYmFyLiBJdCBhbHNvIHBvcnRzIG9uIEdub21lIDQzIGFuZCBwcmV2aW91cyB2ZXJzaW9ucyB0aGUgc2FtZSBiZWhhdmlvdXIgb2YgR25vbWUgNDQgYW5kIGxhdGVyIHZlcnNpb25zOiBtdXRlL3VubXV0ZSBhdWRpbyBieSBjbGlja2luZyB0aGUgYXVkaW8gb3V0cHV0IGljb24gbmV4dCB0byB0aGUgdm9sdW1lIHNsaWRlci4gVGhpcyBleHRlbnNpb24gdXNlcyBtdXRlL3VubXV0ZSBBUEkgaW4gb3JkZXIgdG8gcmVzdG9yZSBwcmV2aW91cyB2b2x1bWUgbGV2ZWwgYWZ0ZXIgdW5tdXRpbmcuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJNQ2FzdGFsZG8iCiAgfSwKICAibmFtZSI6ICJNdXRlL1VubXV0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9paHBsZWQvbXV0ZS11bm11dGUiLAogICJ1dWlkIjogIm11dGUtdW5tdXRlQG1jYXN0Lmdub21leHQuY29tIiwKICAidmVyc2lvbiI6IDE3Cn0="}
   }}
-, {"uuid": "space-bar@luchrioh", "name": "Space Bar", "pname": "space-bar", "description": "Replaces the 'Activities' button with an i3-like workspaces bar.\n\nOriginally a fork of the extension Workspaces Bar by fthx, this extension grew into a more comprehensive set of features to support a workspace-based workflow.\n\nFeatures:\n-   First class support for static and dynamic workspaces as well as multi-monitor setups\n-   Add, remove, and rename workspaces\n-   Rearrange workspaces via drag and drop\n-   Automatically assign workspace names based on started applications\n-   Keyboard shortcuts extend and refine system shortcuts\n-   Scroll through workspaces by mouse wheel over the panel\n-   Customize the appearance", "link": "https://extensions.gnome.org/extension/5090/space-bar/", "shell_version_map": {
+, {"uuid": "space-bar@luchrioh", "name": "Space Bar", "pname": "space-bar", "description": "Replaces the top-panel workspace indicator with an i3-like workspaces bar.\n\nOriginally a fork of the extension Workspaces Bar by fthx, this extension grew into a more comprehensive set of features to support a workspace-based workflow.\n\nFeatures:\n-   First class support for static and dynamic workspaces as well as multi-monitor setups\n-   Add, remove, and rename workspaces\n-   Rearrange workspaces via drag and drop\n-   Automatically assign workspace names based on started applications\n-   Keyboard shortcuts extend and refine system shortcuts\n-   Scroll through workspaces by mouse wheel over the panel\n-   Customize the appearance", "link": "https://extensions.gnome.org/extension/5090/space-bar/", "shell_version_map": {
     "42": {"version": "22", "sha256": "16bsn3mpd66p3p7yz56zr0ghglj8y8cmlrvn8q8fdvvrj2srkjvf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSAnQWN0aXZpdGllcycgYnV0dG9uIHdpdGggYW4gaTMtbGlrZSB3b3Jrc3BhY2VzIGJhci5cblxuT3JpZ2luYWxseSBhIGZvcmsgb2YgdGhlIGV4dGVuc2lvbiBXb3Jrc3BhY2VzIEJhciBieSBmdGh4LCB0aGlzIGV4dGVuc2lvbiBncmV3IGludG8gYSBtb3JlIGNvbXByZWhlbnNpdmUgc2V0IG9mIGZlYXR1cmVzIHRvIHN1cHBvcnQgYSB3b3Jrc3BhY2UtYmFzZWQgd29ya2Zsb3cuXG5cbkZlYXR1cmVzOlxuLSAgIEZpcnN0IGNsYXNzIHN1cHBvcnQgZm9yIHN0YXRpYyBhbmQgZHluYW1pYyB3b3Jrc3BhY2VzIGFzIHdlbGwgYXMgbXVsdGktbW9uaXRvciBzZXR1cHNcbi0gICBBZGQsIHJlbW92ZSwgYW5kIHJlbmFtZSB3b3Jrc3BhY2VzXG4tICAgUmVhcnJhbmdlIHdvcmtzcGFjZXMgdmlhIGRyYWcgYW5kIGRyb3Bcbi0gICBBdXRvbWF0aWNhbGx5IGFzc2lnbiB3b3Jrc3BhY2UgbmFtZXMgYmFzZWQgb24gc3RhcnRlZCBhcHBsaWNhdGlvbnNcbi0gICBLZXlib2FyZCBzaG9ydGN1dHMgZXh0ZW5kIGFuZCByZWZpbmUgc3lzdGVtIHNob3J0Y3V0c1xuLSAgIFNjcm9sbCB0aHJvdWdoIHdvcmtzcGFjZXMgYnkgbW91c2Ugd2hlZWwgb3ZlciB0aGUgcGFuZWxcbi0gICBDdXN0b21pemUgdGhlIGFwcGVhcmFuY2UiLAogICJuYW1lIjogIlNwYWNlIEJhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcGFjZS1iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RvcGhlci1sL3NwYWNlLWJhciIsCiAgInV1aWQiOiAic3BhY2UtYmFyQGx1Y2hyaW9oIiwKICAidmVyc2lvbiI6IDIyCn0="},
     "43": {"version": "22", "sha256": "16bsn3mpd66p3p7yz56zr0ghglj8y8cmlrvn8q8fdvvrj2srkjvf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSAnQWN0aXZpdGllcycgYnV0dG9uIHdpdGggYW4gaTMtbGlrZSB3b3Jrc3BhY2VzIGJhci5cblxuT3JpZ2luYWxseSBhIGZvcmsgb2YgdGhlIGV4dGVuc2lvbiBXb3Jrc3BhY2VzIEJhciBieSBmdGh4LCB0aGlzIGV4dGVuc2lvbiBncmV3IGludG8gYSBtb3JlIGNvbXByZWhlbnNpdmUgc2V0IG9mIGZlYXR1cmVzIHRvIHN1cHBvcnQgYSB3b3Jrc3BhY2UtYmFzZWQgd29ya2Zsb3cuXG5cbkZlYXR1cmVzOlxuLSAgIEZpcnN0IGNsYXNzIHN1cHBvcnQgZm9yIHN0YXRpYyBhbmQgZHluYW1pYyB3b3Jrc3BhY2VzIGFzIHdlbGwgYXMgbXVsdGktbW9uaXRvciBzZXR1cHNcbi0gICBBZGQsIHJlbW92ZSwgYW5kIHJlbmFtZSB3b3Jrc3BhY2VzXG4tICAgUmVhcnJhbmdlIHdvcmtzcGFjZXMgdmlhIGRyYWcgYW5kIGRyb3Bcbi0gICBBdXRvbWF0aWNhbGx5IGFzc2lnbiB3b3Jrc3BhY2UgbmFtZXMgYmFzZWQgb24gc3RhcnRlZCBhcHBsaWNhdGlvbnNcbi0gICBLZXlib2FyZCBzaG9ydGN1dHMgZXh0ZW5kIGFuZCByZWZpbmUgc3lzdGVtIHNob3J0Y3V0c1xuLSAgIFNjcm9sbCB0aHJvdWdoIHdvcmtzcGFjZXMgYnkgbW91c2Ugd2hlZWwgb3ZlciB0aGUgcGFuZWxcbi0gICBDdXN0b21pemUgdGhlIGFwcGVhcmFuY2UiLAogICJuYW1lIjogIlNwYWNlIEJhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcGFjZS1iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RvcGhlci1sL3NwYWNlLWJhciIsCiAgInV1aWQiOiAic3BhY2UtYmFyQGx1Y2hyaW9oIiwKICAidmVyc2lvbiI6IDIyCn0="},
     "44": {"version": "22", "sha256": "16bsn3mpd66p3p7yz56zr0ghglj8y8cmlrvn8q8fdvvrj2srkjvf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSAnQWN0aXZpdGllcycgYnV0dG9uIHdpdGggYW4gaTMtbGlrZSB3b3Jrc3BhY2VzIGJhci5cblxuT3JpZ2luYWxseSBhIGZvcmsgb2YgdGhlIGV4dGVuc2lvbiBXb3Jrc3BhY2VzIEJhciBieSBmdGh4LCB0aGlzIGV4dGVuc2lvbiBncmV3IGludG8gYSBtb3JlIGNvbXByZWhlbnNpdmUgc2V0IG9mIGZlYXR1cmVzIHRvIHN1cHBvcnQgYSB3b3Jrc3BhY2UtYmFzZWQgd29ya2Zsb3cuXG5cbkZlYXR1cmVzOlxuLSAgIEZpcnN0IGNsYXNzIHN1cHBvcnQgZm9yIHN0YXRpYyBhbmQgZHluYW1pYyB3b3Jrc3BhY2VzIGFzIHdlbGwgYXMgbXVsdGktbW9uaXRvciBzZXR1cHNcbi0gICBBZGQsIHJlbW92ZSwgYW5kIHJlbmFtZSB3b3Jrc3BhY2VzXG4tICAgUmVhcnJhbmdlIHdvcmtzcGFjZXMgdmlhIGRyYWcgYW5kIGRyb3Bcbi0gICBBdXRvbWF0aWNhbGx5IGFzc2lnbiB3b3Jrc3BhY2UgbmFtZXMgYmFzZWQgb24gc3RhcnRlZCBhcHBsaWNhdGlvbnNcbi0gICBLZXlib2FyZCBzaG9ydGN1dHMgZXh0ZW5kIGFuZCByZWZpbmUgc3lzdGVtIHNob3J0Y3V0c1xuLSAgIFNjcm9sbCB0aHJvdWdoIHdvcmtzcGFjZXMgYnkgbW91c2Ugd2hlZWwgb3ZlciB0aGUgcGFuZWxcbi0gICBDdXN0b21pemUgdGhlIGFwcGVhcmFuY2UiLAogICJuYW1lIjogIlNwYWNlIEJhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcGFjZS1iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RvcGhlci1sL3NwYWNlLWJhciIsCiAgInV1aWQiOiAic3BhY2UtYmFyQGx1Y2hyaW9oIiwKICAidmVyc2lvbiI6IDIyCn0="},
-    "45": {"version": "23", "sha256": "1cxakxbpla78zvr77lgvnqwl0p8pvc3vnica9avkrl80z70kymn2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSAnQWN0aXZpdGllcycgYnV0dG9uIHdpdGggYW4gaTMtbGlrZSB3b3Jrc3BhY2VzIGJhci5cblxuT3JpZ2luYWxseSBhIGZvcmsgb2YgdGhlIGV4dGVuc2lvbiBXb3Jrc3BhY2VzIEJhciBieSBmdGh4LCB0aGlzIGV4dGVuc2lvbiBncmV3IGludG8gYSBtb3JlIGNvbXByZWhlbnNpdmUgc2V0IG9mIGZlYXR1cmVzIHRvIHN1cHBvcnQgYSB3b3Jrc3BhY2UtYmFzZWQgd29ya2Zsb3cuXG5cbkZlYXR1cmVzOlxuLSAgIEZpcnN0IGNsYXNzIHN1cHBvcnQgZm9yIHN0YXRpYyBhbmQgZHluYW1pYyB3b3Jrc3BhY2VzIGFzIHdlbGwgYXMgbXVsdGktbW9uaXRvciBzZXR1cHNcbi0gICBBZGQsIHJlbW92ZSwgYW5kIHJlbmFtZSB3b3Jrc3BhY2VzXG4tICAgUmVhcnJhbmdlIHdvcmtzcGFjZXMgdmlhIGRyYWcgYW5kIGRyb3Bcbi0gICBBdXRvbWF0aWNhbGx5IGFzc2lnbiB3b3Jrc3BhY2UgbmFtZXMgYmFzZWQgb24gc3RhcnRlZCBhcHBsaWNhdGlvbnNcbi0gICBLZXlib2FyZCBzaG9ydGN1dHMgZXh0ZW5kIGFuZCByZWZpbmUgc3lzdGVtIHNob3J0Y3V0c1xuLSAgIFNjcm9sbCB0aHJvdWdoIHdvcmtzcGFjZXMgYnkgbW91c2Ugd2hlZWwgb3ZlciB0aGUgcGFuZWxcbi0gICBDdXN0b21pemUgdGhlIGFwcGVhcmFuY2UiLAogICJuYW1lIjogIlNwYWNlIEJhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcGFjZS1iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0b3BoZXItbC9zcGFjZS1iYXIiLAogICJ1dWlkIjogInNwYWNlLWJhckBsdWNocmlvaCIsCiAgInZlcnNpb24iOiAyMwp9"}
+    "45": {"version": "24", "sha256": "1xmcp6292vadgwn90j4c21gid8vzq1s5h1lvspr4a78b2bb73q93", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSB0b3AtcGFuZWwgd29ya3NwYWNlIGluZGljYXRvciB3aXRoIGFuIGkzLWxpa2Ugd29ya3NwYWNlcyBiYXIuXG5cbk9yaWdpbmFsbHkgYSBmb3JrIG9mIHRoZSBleHRlbnNpb24gV29ya3NwYWNlcyBCYXIgYnkgZnRoeCwgdGhpcyBleHRlbnNpb24gZ3JldyBpbnRvIGEgbW9yZSBjb21wcmVoZW5zaXZlIHNldCBvZiBmZWF0dXJlcyB0byBzdXBwb3J0IGEgd29ya3NwYWNlLWJhc2VkIHdvcmtmbG93LlxuXG5GZWF0dXJlczpcbi0gICBGaXJzdCBjbGFzcyBzdXBwb3J0IGZvciBzdGF0aWMgYW5kIGR5bmFtaWMgd29ya3NwYWNlcyBhcyB3ZWxsIGFzIG11bHRpLW1vbml0b3Igc2V0dXBzXG4tICAgQWRkLCByZW1vdmUsIGFuZCByZW5hbWUgd29ya3NwYWNlc1xuLSAgIFJlYXJyYW5nZSB3b3Jrc3BhY2VzIHZpYSBkcmFnIGFuZCBkcm9wXG4tICAgQXV0b21hdGljYWxseSBhc3NpZ24gd29ya3NwYWNlIG5hbWVzIGJhc2VkIG9uIHN0YXJ0ZWQgYXBwbGljYXRpb25zXG4tICAgS2V5Ym9hcmQgc2hvcnRjdXRzIGV4dGVuZCBhbmQgcmVmaW5lIHN5c3RlbSBzaG9ydGN1dHNcbi0gICBTY3JvbGwgdGhyb3VnaCB3b3Jrc3BhY2VzIGJ5IG1vdXNlIHdoZWVsIG92ZXIgdGhlIHBhbmVsXG4tICAgQ3VzdG9taXplIHRoZSBhcHBlYXJhbmNlIiwKICAibmFtZSI6ICJTcGFjZSBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3BhY2UtYmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdG9waGVyLWwvc3BhY2UtYmFyIiwKICAidXVpZCI6ICJzcGFjZS1iYXJAbHVjaHJpb2giLAogICJ2ZXJzaW9uIjogMjQKfQ=="}
   }}
 , {"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"}
@@ -4901,7 +4918,7 @@
     "44": {"version": "11", "sha256": "099cgy134jh8k8sdm0g5hb5r6hmfm1vw0wlqvq850kp0nza2xpzz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFtIEkgdXNpbmcgV2F5bGFuZCBvciBYMTE/IiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJpbmpjcmlzdGlhbnJvamFzIgogIH0sCiAgIm5hbWUiOiAiV2F5bGFuZCBvciBYMTEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2luamNyaXN0aWFucm9qYXMvd2F5bGFuZG9yeDExIiwKICAidXVpZCI6ICJ3YXlsYW5kb3J4MTFAaW5qY3Jpc3RpYW5yb2phcy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="},
     "45": {"version": "13", "sha256": "1x9vnqi7k5prncxax1kr31rx6ai42bw0df1na06y5xv2iri4v8dy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFtIEkgdXNpbmcgV2F5bGFuZCBvciBYMTE/IiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJpbmpjcmlzdGlhbnJvamFzIgogIH0sCiAgIm5hbWUiOiAiV2F5bGFuZCBvciBYMTEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaW5qY3Jpc3RpYW5yb2phcy93YXlsYW5kb3J4MTEiLAogICJ1dWlkIjogIndheWxhbmRvcngxMUBpbmpjcmlzdGlhbnJvamFzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}
   }}
-, {"uuid": "azclock@azclock.gitlab.com", "name": "Desktop Clock", "pname": "desktop-clock", "description": "Add a clock to the desktop!", "link": "https://extensions.gnome.org/extension/5156/desktop-clock/", "shell_version_map": {
+, {"uuid": "azclock@azclock.gitlab.com", "name": "Desktop Clock", "pname": "desktop-clock", "description": "Add a clock to the desktop!\n\nNote: The clock can be moved to your desired location by dragging it around, however Desktop Icons extension does interfere with this feature. Temporarily turn off Desktop Icons to move the clock.", "link": "https://extensions.gnome.org/extension/5156/desktop-clock/", "shell_version_map": {
     "42": {"version": "7", "sha256": "0ws6q5hdgygqp9x2jrhjklidyvc7miqs4h34fll7d1947scqw6lv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNsb2NrIHRvIHRoZSBkZXNrdG9wISIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImF6Y2xvY2siLAogICJuYW1lIjogIkRlc2t0b3AgQ2xvY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXpjbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0FuZHJld1phZWNoL2F6Y2xvY2siLAogICJ1dWlkIjogImF6Y2xvY2tAYXpjbG9jay5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="},
     "43": {"version": "7", "sha256": "0ws6q5hdgygqp9x2jrhjklidyvc7miqs4h34fll7d1947scqw6lv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNsb2NrIHRvIHRoZSBkZXNrdG9wISIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImF6Y2xvY2siLAogICJuYW1lIjogIkRlc2t0b3AgQ2xvY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXpjbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0FuZHJld1phZWNoL2F6Y2xvY2siLAogICJ1dWlkIjogImF6Y2xvY2tAYXpjbG9jay5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="},
     "44": {"version": "7", "sha256": "0ws6q5hdgygqp9x2jrhjklidyvc7miqs4h34fll7d1947scqw6lv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNsb2NrIHRvIHRoZSBkZXNrdG9wISIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImF6Y2xvY2siLAogICJuYW1lIjogIkRlc2t0b3AgQ2xvY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXpjbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0FuZHJld1phZWNoL2F6Y2xvY2siLAogICJ1dWlkIjogImF6Y2xvY2tAYXpjbG9jay5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="},
@@ -4932,11 +4949,11 @@
     "44": {"version": "10", "sha256": "0ca4nlss4j5rmq8xaqvjxxacdhb1vlmydqp4cal77mgzk79q63nk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVQb3dlciBCYXR0ZXJ5IEluZGljYXRvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cG93ZXJfYmF0dGVyeV9pbmRpY2F0b3IiLAogICJuYW1lIjogIlVQb3dlciBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29kaWxpYS91cG93ZXItYmF0dGVyeSIsCiAgInV1aWQiOiAidXBvd2VyLWJhdHRlcnlAY29kaWxpYS5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
     "45": {"version": "14", "sha256": "0z9aivrmzix5x0c09i6n2qdvs4xilf2cbjlvl0a7942h6nikqqrm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVQb3dlciBCYXR0ZXJ5IEluZGljYXRvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cG93ZXJfYmF0dGVyeV9pbmRpY2F0b3IiLAogICJuYW1lIjogIlVQb3dlciBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NvZGlsaWEvdXBvd2VyLWJhdHRlcnkiLAogICJ1dWlkIjogInVwb3dlci1iYXR0ZXJ5QGNvZGlsaWEuY29tIiwKICAidmVyc2lvbiI6IDE0Cn0="}
   }}
-, {"uuid": "vertical-workspaces@G-dH.github.com", "name": "V-Shell (Vertical Workspaces)", "pname": "vertical-workspaces", "description": "Customize your GNOME Shell UX to suit your workflow, whether you like horizontally or vertically stacked 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, icons 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- window search provider for quick navigation between windows\n- recent files search provider\n- extensions search provider\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": {
-    "42": {"version": "49", "sha256": "12anmhbsay2cscijyk0ik9bhf37n831a7kzy02rpxrpsnlawi24v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0OSwKICAidmVyc2lvbi1uYW1lIjogIjQ0LjExIgp9"},
-    "43": {"version": "49", "sha256": "12anmhbsay2cscijyk0ik9bhf37n831a7kzy02rpxrpsnlawi24v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0OSwKICAidmVyc2lvbi1uYW1lIjogIjQ0LjExIgp9"},
-    "44": {"version": "49", "sha256": "12anmhbsay2cscijyk0ik9bhf37n831a7kzy02rpxrpsnlawi24v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0OSwKICAidmVyc2lvbi1uYW1lIjogIjQ0LjExIgp9"},
-    "45": {"version": "48", "sha256": "07c24g8n3q20qz9nzrkiv887wfl3pzk9whx5h9xxs7wraqz5xfri", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvdmVydGljYWwtd29ya3NwYWNlcyIsCiAgInV1aWQiOiAidmVydGljYWwtd29ya3NwYWNlc0BHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDgsCiAgInZlcnNpb24tbmFtZSI6ICI0NS4zIgp9"}
+, {"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, 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, icons 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- window search provider for quick navigation between windows\n- recent files search provider\n- extensions search provider\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": {
+    "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"}
   }}
 , {"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=="},
@@ -4967,11 +4984,12 @@
     "43": {"version": "2", "sha256": "1m2zbab8i9njm5nsl6n3kb9pvwmqk95srrm2rsdd85nlb9q3flgl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdXNlZnVsIGZlYXR1cmVzIHRvIHRoZSBBY3Rpdml0aWVzIG92ZXJ2aWV3IGFuZCBEYXNoLCBpbmNsdWRpbmcgcG93ZXJmdWwgd2luZG93IHNlYXJjaCBwcm92aWRlci5cblxuS2V5d29yZHM6IHJlb3JkZXIsIHdvcmtzcGFjZSwgbmFtZSwgbW92ZSwgZmluZCB3aW5kb3dzLCBhcHAgb3JkZXIsIGFwcCBncmlkLCBjb2x1bW5zLCByb3dzLCBpY29uLCBzaXplLCB0aHVtYm5haWwsIGZvcmNlLCBxdWl0LCBuYXZpZ2F0ZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvdmVydmlldy1mZWF0dXJlLXBhY2siLAogICJuYW1lIjogIk9GUCAtIE92ZXJ2aWV3IEZlYXR1cmUgUGFjayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvb3ZlcnZpZXctZmVhdHVyZS1wYWNrIiwKICAidXVpZCI6ICJvdmVydmlldy1mZWF0dXJlLXBhY2tARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}
   }}
 , {"uuid": "weekend-o-meter@coffeverton.gmail.com", "name": "Weekend-O-Meter Revived", "pname": "weekend-o-meter-revived", "description": "Beer timer until next week-end (based on https://extensions.gnome.org/extension/667/weekend-o-meter/)", "link": "https://extensions.gnome.org/extension/5198/weekend-o-meter-revived/", "shell_version_map": {
-    "38": {"version": "2", "sha256": "1n7k57bx6is7da4db3i61i9kiv9c09cp0q8awf9fkh646307zc4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJlZXIgdGltZXIgdW50aWwgbmV4dCB3ZWVrLWVuZCAoYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjY3L3dlZWtlbmQtby1tZXRlci8pIiwKICAibmFtZSI6ICJXZWVrZW5kLU8tTWV0ZXIgUmV2aXZlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2ZmZXZlcnRvbi93ZWVrZW5kLW8tbWV0ZXIiLAogICJ1dWlkIjogIndlZWtlbmQtby1tZXRlckBjb2ZmZXZlcnRvbi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMgp9"},
-    "41": {"version": "2", "sha256": "1n7k57bx6is7da4db3i61i9kiv9c09cp0q8awf9fkh646307zc4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJlZXIgdGltZXIgdW50aWwgbmV4dCB3ZWVrLWVuZCAoYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjY3L3dlZWtlbmQtby1tZXRlci8pIiwKICAibmFtZSI6ICJXZWVrZW5kLU8tTWV0ZXIgUmV2aXZlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2ZmZXZlcnRvbi93ZWVrZW5kLW8tbWV0ZXIiLAogICJ1dWlkIjogIndlZWtlbmQtby1tZXRlckBjb2ZmZXZlcnRvbi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMgp9"},
-    "42": {"version": "2", "sha256": "1n7k57bx6is7da4db3i61i9kiv9c09cp0q8awf9fkh646307zc4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJlZXIgdGltZXIgdW50aWwgbmV4dCB3ZWVrLWVuZCAoYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjY3L3dlZWtlbmQtby1tZXRlci8pIiwKICAibmFtZSI6ICJXZWVrZW5kLU8tTWV0ZXIgUmV2aXZlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2ZmZXZlcnRvbi93ZWVrZW5kLW8tbWV0ZXIiLAogICJ1dWlkIjogIndlZWtlbmQtby1tZXRlckBjb2ZmZXZlcnRvbi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMgp9"},
-    "43": {"version": "2", "sha256": "1n7k57bx6is7da4db3i61i9kiv9c09cp0q8awf9fkh646307zc4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJlZXIgdGltZXIgdW50aWwgbmV4dCB3ZWVrLWVuZCAoYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjY3L3dlZWtlbmQtby1tZXRlci8pIiwKICAibmFtZSI6ICJXZWVrZW5kLU8tTWV0ZXIgUmV2aXZlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2ZmZXZlcnRvbi93ZWVrZW5kLW8tbWV0ZXIiLAogICJ1dWlkIjogIndlZWtlbmQtby1tZXRlckBjb2ZmZXZlcnRvbi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMgp9"},
-    "44": {"version": "2", "sha256": "1n7k57bx6is7da4db3i61i9kiv9c09cp0q8awf9fkh646307zc4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJlZXIgdGltZXIgdW50aWwgbmV4dCB3ZWVrLWVuZCAoYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjY3L3dlZWtlbmQtby1tZXRlci8pIiwKICAibmFtZSI6ICJXZWVrZW5kLU8tTWV0ZXIgUmV2aXZlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2ZmZXZlcnRvbi93ZWVrZW5kLW8tbWV0ZXIiLAogICJ1dWlkIjogIndlZWtlbmQtby1tZXRlckBjb2ZmZXZlcnRvbi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}
+    "38": {"version": "4", "sha256": "09jcgvhlhx4hp0rj6adb0qpc6kajch8gyjfdk1vdnwxkysvr8241", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJlZXIgdGltZXIgdW50aWwgbmV4dCB3ZWVrLWVuZCAoYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjY3L3dlZWtlbmQtby1tZXRlci8pIiwKICAibmFtZSI6ICJXZWVrZW5kLU8tTWV0ZXIgUmV2aXZlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2ZmZXZlcnRvbi93ZWVrZW5kLW8tbWV0ZXIiLAogICJ1dWlkIjogIndlZWtlbmQtby1tZXRlckBjb2ZmZXZlcnRvbi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"},
+    "41": {"version": "4", "sha256": "09jcgvhlhx4hp0rj6adb0qpc6kajch8gyjfdk1vdnwxkysvr8241", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJlZXIgdGltZXIgdW50aWwgbmV4dCB3ZWVrLWVuZCAoYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjY3L3dlZWtlbmQtby1tZXRlci8pIiwKICAibmFtZSI6ICJXZWVrZW5kLU8tTWV0ZXIgUmV2aXZlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2ZmZXZlcnRvbi93ZWVrZW5kLW8tbWV0ZXIiLAogICJ1dWlkIjogIndlZWtlbmQtby1tZXRlckBjb2ZmZXZlcnRvbi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"},
+    "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"}
   }}
 , {"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="},
@@ -5029,13 +5047,13 @@
     "43": {"version": "14", "sha256": "0s73v3m8xb641hha7rbs4dfy944zmddi428hvaf6li6fjq81z6wf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgTGVub3ZvIElkZWFQYWQgbGFwdG9wcyBvcHRpb25zOiBDb25zZXJ2YXRpb24gTW9kZSwgQ2FtZXJhIExvY2ssIEZuIExvY2ssIFRvdWNocGFkIExvY2ssIFVTQiBjaGFyZ2luZyIsCiAgIm5hbWUiOiAiSWRlYVBhZCBDb250cm9scyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pZGVhcGFkLWNvbnRyb2xzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQXp6YW1BbHNoYXJhZmkvaWRlYXBhZC1jb250cm9scy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogImlkZWFwYWQtY29udHJvbHNAYXp6YW1hbHNoYXJhZmkuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE0Cn0="},
     "44": {"version": "14", "sha256": "0s73v3m8xb641hha7rbs4dfy944zmddi428hvaf6li6fjq81z6wf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgTGVub3ZvIElkZWFQYWQgbGFwdG9wcyBvcHRpb25zOiBDb25zZXJ2YXRpb24gTW9kZSwgQ2FtZXJhIExvY2ssIEZuIExvY2ssIFRvdWNocGFkIExvY2ssIFVTQiBjaGFyZ2luZyIsCiAgIm5hbWUiOiAiSWRlYVBhZCBDb250cm9scyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pZGVhcGFkLWNvbnRyb2xzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQXp6YW1BbHNoYXJhZmkvaWRlYXBhZC1jb250cm9scy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogImlkZWFwYWQtY29udHJvbHNAYXp6YW1hbHNoYXJhZmkuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE0Cn0="}
   }}
-, {"uuid": "gtk4-ding@smedius.gitlab.com", "name": "Gtk4 Desktop Icons NG (DING)", "pname": "gtk4-desktop-icons-ng-ding", "description": "Libadwaita/Gtk4 port of Desktop Icons NG with GSconnect Integration, Drag and Drop on to Dock or Dash.\n\nUpdated and modified code base, uses gio menus, all translations on Weblate. All functions are async where possible. Ported to ESM modules, supports Gnome 45.\n\nMultiple fixes and new features-\n\n* New- sets window type DESKTOP on X11, fixes ding window being hidden with shortcuts on X11.\n* New - Sets correct hovering behaviour during drag and drop on the Dock, enables scrolling to icons when they are hidden.\n* Fix - DING window could be dragged and dropped in workspace indicators to show icons on only one workspace, fixes done to prevent.\n* Fix - unlimited workspaces, now works correctly even with auto-move-windows. More optimal and minimal shell overrides.\n* New - Help with translation link in about pane of preferences. Multiple other fixes, including using old libAdwaita on Ubuntu Jammy.\n* New - tool tips are now positioned correctly to not go under the dash or make it autohide, or go over any gnome shell actors on the edge of the screen.\n* New - About panel preferences page that shows the correct version of the extension and weblinks to gitlab website.\n* New Drag Navigation on Dock - dragging an icon over the Gnome Files icon on the dock or mounted drives, and hovering over it for 1/2 seconds will open a Gnome Files Window.\n* New - Set the correct cursor with proposed action on drop on dock, improve drop detection.\n* New - Drag Navigation - dragging an icon over a folder icon or a drive icon, and then hovering over it for 1/2 seconds will open that location in Gnome Files.\n* New - Drag Icon now forms a bunch of icons if multiple icons are dragged. Code from Nautilus, translated to files.\n* New - Now deals correctly with appimage files on desktop.\n* Now uses libadwaita.\n* Make Links on Desktop with Alt button on Wayland. Does not work with X11.\n* Copied/dropped/pasted files retain dropped position.\n* Right Click Menus will not go under the dock.\n* Better multi monitor support, preference to place icons on non primary monitor.\n* GSconnect extension integration, can send files from desktop directly to mobile device.\n* Drag and drop Favorite apps from Dash to Dock, Dash to Panel directly to Desktop or remove from favorites.\n* Improved gesture switching of workspaces, icons appear to be on all workspaces in moving windows.\n* Support for dragging icons onto the dock - Drag icons from desktop to and drop over application icon to open them with the app. Works with Dash to Dock and Dash to Panel.\n* Support for dragging icons from desktop directly to Trash on Dash to Dock or to mounted volumes to copy them directly.\n* Display GIMP thumbnails, even for snap and flatpack installs.\n\nPlease see Readme for full details of new features. Works best on Wayland. There is a bug in GJS on X11, please see Readme. This extension now works with some hacks, even on X11. However your mileage may vary and use with caution on X11 and report any issues.\n\nPlease report all issues on the gitlab link below, this page is not monitored. All known issues are detailed there.", "link": "https://extensions.gnome.org/extension/5263/gtk4-desktop-icons-ng-ding/", "shell_version_map": {
+, {"uuid": "gtk4-ding@smedius.gitlab.com", "name": "Gtk4 Desktop Icons NG (DING)", "pname": "gtk4-desktop-icons-ng-ding", "description": "Libadwaita/Gtk4 port of Desktop Icons NG with GSconnect Integration, Drag and Drop on to Dock or Dash.\n\nUpdated and modified code base, uses gio menus, all translations on Weblate. All functions are async where possible. Ported to ESM modules, supports Gnome 45.\n\nMultiple fixes and new features-\n\n* New - show the correct file manager in the right click menu and give the user the option to change the file manager.\n* Fix - prevent jumping icons and keep icons in the correct position on dock resizing and desktopgrid resizing.\n* new - add accessibility support with screen readers\n* New - Icons on background on overview.\n* New - Rectangular icons and highlighting like Nautilus. Can be changed in Settings, tweaks.\n* New - will mail folders by zipping them.\n* New - default terminal can be set following specs for xdg-terminal-exec and gtk4-ding will execute it even if xdg-terminal-exec is not installed.\n* Fix - will not launch Nemo if not installed.\n* New - Use mutter make_desktop() if available. With Gnome 45.3, now sets window_type DESKTOP even on Wayland.\n* Fix - Gnome shortcut could hide window on X11\n* New - Sets correct hovering behaviour during drag and drop on the Dock, enables scrolling to icons when they are hidden.\n* Fix - DING window could be dragged and dropped in workspace indicators to show icons on only one workspace, fixes done to prevent.\n* Fix - unlimited workspaces, now works correctly even with auto-move-windows. More optimal and minimal shell overrides.\n* New - Help with translation link in about pane of preferences. Multiple other fixes, including using old libAdwaita on Ubuntu Jammy.\n* New - tool tips are now positioned correctly to not go under the dash or make it autohide, or go over any gnome shell actors on the edge of the screen.\n* New - About panel preferences page that shows the correct version of the extension and weblinks to gitlab website.\n* New Drag Navigation on Dock - dragging an icon over the Gnome Files icon on the dock or mounted drives, and hovering over it for 1/2 seconds will open a Gnome Files Window.\n* New - Set the correct cursor with proposed action on drop on dock, improve drop detection.\n* New - Drag Navigation - dragging an icon over a folder icon or a drive icon, and then hovering over it for 1/2 seconds will open that location in Gnome Files.\n* New - Drag Icon now forms a bunch of icons if multiple icons are dragged. Code from Nautilus, translated to files.\n* New - Now deals correctly with appimage files on desktop.\n* Now uses libadwaita.\n* Make Links on Desktop with Alt button on Wayland. Does not work with X11.\n* Copied/dropped/pasted files retain dropped position.\n* Right Click Menus will not go under the dock.\n* Better multi monitor support, preference to place icons on non primary monitor.\n* GSconnect extension integration, can send files from desktop directly to mobile device.\n* Drag and drop Favorite apps from Dash to Dock, Dash to Panel directly to Desktop or remove from favorites.\n* Improved gesture switching of workspaces, icons appear to be on all workspaces in moving windows.\n* Support for dragging icons onto the dock - Drag icons from desktop to and drop over application icon to open them with the app. Works with Dash to Dock and Dash to Panel.\n* Support for dragging icons from desktop directly to Trash on Dash to Dock or to mounted volumes to copy them directly.\n* Display GIMP thumbnails, even for snap and flatpack installs.\n\nPlease see Readme for full details of new features. Works best on Wayland. There is a bug in GJS on X11, please see Readme. This extension now works with some hacks, even on X11. However your mileage may vary and use with caution on X11 and report any issues.\n\nPlease report all issues on the gitlab link below, this page is not monitored. All known issues are detailed there.", "link": "https://extensions.gnome.org/extension/5263/gtk4-desktop-icons-ng-ding/", "shell_version_map": {
     "40": {"version": "17", "sha256": "1d1xpjypmim6yzsscrkv1n9p7b141k9xi3mab1sz8cqic5v8401z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpYmFkd2FpdGEvR3RrNCBQb3J0IG9mIERlc2t0b3AgSWNvbnMgTkcgd2l0aCB1cGRhdGVkIGFuZCBtb2RpZmllZCBjb2RlIGJhc2UsIHVzZXMgZ2lvIG1lbnVzLCBhbGwgZnVuY3Rpb25zIGFyZSBhc3luYyB3aGVyZSBwb3NzaWJsZSwgbXVsdGlwbGUgZml4ZXMgYW5kIG5ldyBmZWF0dXJlcy1cblxuKiBOZXcgRHJhZyBOYXZpZ2F0aW9uIG9uIERvY2sgLSBkcmFnZ2luZyBhbiBpY29uIG92ZXIgdGhlIEdub21lIEZpbGVzIGljb24gb24gdGhlIGRvY2sgb3IgbW91bnRlZCBkcml2ZXMsIGFuZCBob3ZlcmluZyBvdmVyIGl0IGZvciAxLzIgc2Vjb25kIHdpbGwgb3BlbiBhIEdub21lIEZpbGVzIFdpbmRvdy5cbiogTmV3IC0gU2V0IHRoZSBjb3JyZWN0IGN1cnNvciB3aXRoIHByb3Bvc2VkIGFjdGlvbiBvbiBkcm9wIG9uIGRvY2ssIGltcHJvdmUgZHJvcCBkZXRlY3Rpb24uXG4qIE5ldyAtIERyYWcgTmF2aWdhdGlvbiAtIGRyYWdnaW5nIGFuIGljb24gb3ZlciBhIGZvbGRlciBpY29uIG9yIGEgZHJpdmUgaWNvbiwgYW5kIHRoZW4gaG92ZXJpbmcgb3ZlciBpdCBmb3IgMS8yIHNlY29uZCB3aWxsIG9wZW4gdGhhdCBsb2NhdGlvbiBpbiBHbm9tZSBGaWxlcy5cbiogTmV3IC0gRHJhZyBJY29uIG5vdyBmb3JtcyBhIGJ1bmNoIG9mIGljb25zIGlmIG11bHRpcGxlIGljb25zIGFyZSBkcmFnZ2VkLiBDb2RlIGZyb20gTmF1dGlsdXMsIHRyYW5zbGF0ZWQgdG8gZmlsZXMuXG4qIE5ldyAtIE5vdyBkZWFscyBjb3JyZWN0bHkgd2l0aCBhcHBpbWFnZSBmaWxlcyBvbiBkZXNrdG9wLlxuKiBOb3cgdXNlcyBsaWJhZHdhaXRhLlxuKiBNYWtlIExpbmtzIG9uIERlc2t0b3Agd2l0aCBBbHQgYnV0dG9uIG9uIFdheWxhbmQuIERvZXMgbm90IHdvcmsgd2l0aCBYMTEuXG4qIENvcGllZC9kcm9wcGVkL3Bhc3RlZCBmaWxlcyByZXRhaW4gZHJvcHBlZCBwb3NpdGlvbi5cbiogUmlnaHQgQ2xpY2sgTWVudXMgd2lsbCBub3QgZ28gdW5kZXIgdGhlIGRvY2suXG4qIEJldHRlciBtdWx0aSBtb25pdG9yIHN1cHBvcnQsIHByZWZlcmVuY2UgdG8gcGxhY2UgaWNvbnMgb24gbm9uIHByaW1hcnkgbW9uaXRvci5cbiogR1Njb25uZWN0IGV4dGVuc2lvbiBpbnRlZ3JhdGlvbiwgY2FuIHNlbmQgZmlsZXMgZnJvbSBkZXNrdG9wIGRpcmVjdGx5IHRvIG1vYmlsZSBkZXZpY2UuXG4qIERyYWcgYW5kIGRyb3AgRmF2b3JpdGUgYXBwcyBmcm9tIERhc2ggdG8gRG9jaywgRGFzaCB0byBQYW5lbCBkaXJlY3RseSB0byBEZXNrdG9wIG9yIHJlbW92ZSBmcm9tIGZhdm9yaXRlcy5cbiogSW1wcm92ZWQgZ2VzdHVyZSBzd2l0Y2hpbmcgb2Ygd29ya3NwYWNlcywgaWNvbnMgYXBwZWFyIHRvIGJlIG9uIGFsbCB3b3Jrc3BhY2VzIGluIG1vdmluZyB3aW5kb3dzLlxuKiBTdXBwb3J0IGZvciBkcmFnZ2luZyBpY29ucyBvbnRvIHRoZSBkb2NrIC0gRHJhZyBpY29ucyBmcm9tIGRlc2t0b3AgdG8gYW5kIGRyb3Agb3ZlciBhcHBsaWNhdGlvbiBpY29uIHRvIG9wZW4gdGhlbSB3aXRoIHRoZSBhcHAuIFdvcmtzIHdpdGggRGFzaCB0byBEb2NrIGFuZCBEYXNoIHRvIFBhbmVsLlxuKiBTdXBwb3J0IGZvciBkcmFnZ2luZyBpY29ucyBmcm9tIGRlc2t0b3AgZGlyZWN0bHkgdG8gVHJhc2ggb24gRGFzaCB0byBEb2NrIG9yIHRvIG1vdW50ZWQgdm9sdW1lcyB0byBjb3B5IHRoZW0gZGlyZWN0bHkuXG4qIERpc3BsYXkgR0lNUCB0aHVtYm5haWxzLCBldmVuIGZvciBzbmFwIGFuZCBmbGF0cGFjayBpbnN0YWxscy5cblxuUGxlYXNlIHNlZSBSZWFkbWUgZm9yIGZ1bGwgZGV0YWlscyBvZiBuZXcgZmVhdHVyZXMuIFdvcmtzIGJlc3Qgb24gV2F5bGFuZC4gVGhlcmUgaXMgYSBidWcgaW4gR0pTIG9uIFgxMSwgcGxlYXNlIHNlZSBSZWFkbWUuIFRoaXMgZXh0ZW5zaW9uIG5vdyB3b3JrcyB3aXRoIHNvbWUgaGFja3MsIGV2ZW4gb24gWDExLiBIb3dldmVyIHlvdXIgbWlsZWFnZSBtYXkgdmFyeSBhbmQgdXNlIHdpdGggY2F1dGlvbiBvbiBYMTEgYW5kIHJlcG9ydCBhbnkgaXNzdWVzLlxuXG5QbGVhc2UgcmVwb3J0IGFsbCBpc3N1ZXMgb24gdGhlIGdpdGxhYiBsaW5rIGJlbG93LCB0aGlzIHBhZ2UgaXMgbm90IG1vbml0b3JlZC4gQWxsIGtub3duIGlzc3VlcyBhcmUgZGV0YWlsZWQgdGhlcmUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3RrNC1kaW5nQHNtZWRpdXMuZ2l0bGFiLmNvbSIsCiAgIm5hbWUiOiAiTGliYWR3YWl0YSwgR3RrNCBEZXNrdG9wIEljb25zIE5HIHdpdGggR1Njb25uZWN0IEludGVncmF0aW9uLCBEcmFnIGFuZCBEcm9wIG9udG8gRG9jayAoR3RrNC1ESU5HKSIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidXNlciIsCiAgICAidW5sb2NrLWRpYWxvZyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ3RrNC1kaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3NtZWRpdXMvZGVza3RvcC1pY29ucy1uZyIsCiAgInV1aWQiOiAiZ3RrNC1kaW5nQHNtZWRpdXMuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAxNwp9"},
     "41": {"version": "17", "sha256": "1d1xpjypmim6yzsscrkv1n9p7b141k9xi3mab1sz8cqic5v8401z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpYmFkd2FpdGEvR3RrNCBQb3J0IG9mIERlc2t0b3AgSWNvbnMgTkcgd2l0aCB1cGRhdGVkIGFuZCBtb2RpZmllZCBjb2RlIGJhc2UsIHVzZXMgZ2lvIG1lbnVzLCBhbGwgZnVuY3Rpb25zIGFyZSBhc3luYyB3aGVyZSBwb3NzaWJsZSwgbXVsdGlwbGUgZml4ZXMgYW5kIG5ldyBmZWF0dXJlcy1cblxuKiBOZXcgRHJhZyBOYXZpZ2F0aW9uIG9uIERvY2sgLSBkcmFnZ2luZyBhbiBpY29uIG92ZXIgdGhlIEdub21lIEZpbGVzIGljb24gb24gdGhlIGRvY2sgb3IgbW91bnRlZCBkcml2ZXMsIGFuZCBob3ZlcmluZyBvdmVyIGl0IGZvciAxLzIgc2Vjb25kIHdpbGwgb3BlbiBhIEdub21lIEZpbGVzIFdpbmRvdy5cbiogTmV3IC0gU2V0IHRoZSBjb3JyZWN0IGN1cnNvciB3aXRoIHByb3Bvc2VkIGFjdGlvbiBvbiBkcm9wIG9uIGRvY2ssIGltcHJvdmUgZHJvcCBkZXRlY3Rpb24uXG4qIE5ldyAtIERyYWcgTmF2aWdhdGlvbiAtIGRyYWdnaW5nIGFuIGljb24gb3ZlciBhIGZvbGRlciBpY29uIG9yIGEgZHJpdmUgaWNvbiwgYW5kIHRoZW4gaG92ZXJpbmcgb3ZlciBpdCBmb3IgMS8yIHNlY29uZCB3aWxsIG9wZW4gdGhhdCBsb2NhdGlvbiBpbiBHbm9tZSBGaWxlcy5cbiogTmV3IC0gRHJhZyBJY29uIG5vdyBmb3JtcyBhIGJ1bmNoIG9mIGljb25zIGlmIG11bHRpcGxlIGljb25zIGFyZSBkcmFnZ2VkLiBDb2RlIGZyb20gTmF1dGlsdXMsIHRyYW5zbGF0ZWQgdG8gZmlsZXMuXG4qIE5ldyAtIE5vdyBkZWFscyBjb3JyZWN0bHkgd2l0aCBhcHBpbWFnZSBmaWxlcyBvbiBkZXNrdG9wLlxuKiBOb3cgdXNlcyBsaWJhZHdhaXRhLlxuKiBNYWtlIExpbmtzIG9uIERlc2t0b3Agd2l0aCBBbHQgYnV0dG9uIG9uIFdheWxhbmQuIERvZXMgbm90IHdvcmsgd2l0aCBYMTEuXG4qIENvcGllZC9kcm9wcGVkL3Bhc3RlZCBmaWxlcyByZXRhaW4gZHJvcHBlZCBwb3NpdGlvbi5cbiogUmlnaHQgQ2xpY2sgTWVudXMgd2lsbCBub3QgZ28gdW5kZXIgdGhlIGRvY2suXG4qIEJldHRlciBtdWx0aSBtb25pdG9yIHN1cHBvcnQsIHByZWZlcmVuY2UgdG8gcGxhY2UgaWNvbnMgb24gbm9uIHByaW1hcnkgbW9uaXRvci5cbiogR1Njb25uZWN0IGV4dGVuc2lvbiBpbnRlZ3JhdGlvbiwgY2FuIHNlbmQgZmlsZXMgZnJvbSBkZXNrdG9wIGRpcmVjdGx5IHRvIG1vYmlsZSBkZXZpY2UuXG4qIERyYWcgYW5kIGRyb3AgRmF2b3JpdGUgYXBwcyBmcm9tIERhc2ggdG8gRG9jaywgRGFzaCB0byBQYW5lbCBkaXJlY3RseSB0byBEZXNrdG9wIG9yIHJlbW92ZSBmcm9tIGZhdm9yaXRlcy5cbiogSW1wcm92ZWQgZ2VzdHVyZSBzd2l0Y2hpbmcgb2Ygd29ya3NwYWNlcywgaWNvbnMgYXBwZWFyIHRvIGJlIG9uIGFsbCB3b3Jrc3BhY2VzIGluIG1vdmluZyB3aW5kb3dzLlxuKiBTdXBwb3J0IGZvciBkcmFnZ2luZyBpY29ucyBvbnRvIHRoZSBkb2NrIC0gRHJhZyBpY29ucyBmcm9tIGRlc2t0b3AgdG8gYW5kIGRyb3Agb3ZlciBhcHBsaWNhdGlvbiBpY29uIHRvIG9wZW4gdGhlbSB3aXRoIHRoZSBhcHAuIFdvcmtzIHdpdGggRGFzaCB0byBEb2NrIGFuZCBEYXNoIHRvIFBhbmVsLlxuKiBTdXBwb3J0IGZvciBkcmFnZ2luZyBpY29ucyBmcm9tIGRlc2t0b3AgZGlyZWN0bHkgdG8gVHJhc2ggb24gRGFzaCB0byBEb2NrIG9yIHRvIG1vdW50ZWQgdm9sdW1lcyB0byBjb3B5IHRoZW0gZGlyZWN0bHkuXG4qIERpc3BsYXkgR0lNUCB0aHVtYm5haWxzLCBldmVuIGZvciBzbmFwIGFuZCBmbGF0cGFjayBpbnN0YWxscy5cblxuUGxlYXNlIHNlZSBSZWFkbWUgZm9yIGZ1bGwgZGV0YWlscyBvZiBuZXcgZmVhdHVyZXMuIFdvcmtzIGJlc3Qgb24gV2F5bGFuZC4gVGhlcmUgaXMgYSBidWcgaW4gR0pTIG9uIFgxMSwgcGxlYXNlIHNlZSBSZWFkbWUuIFRoaXMgZXh0ZW5zaW9uIG5vdyB3b3JrcyB3aXRoIHNvbWUgaGFja3MsIGV2ZW4gb24gWDExLiBIb3dldmVyIHlvdXIgbWlsZWFnZSBtYXkgdmFyeSBhbmQgdXNlIHdpdGggY2F1dGlvbiBvbiBYMTEgYW5kIHJlcG9ydCBhbnkgaXNzdWVzLlxuXG5QbGVhc2UgcmVwb3J0IGFsbCBpc3N1ZXMgb24gdGhlIGdpdGxhYiBsaW5rIGJlbG93LCB0aGlzIHBhZ2UgaXMgbm90IG1vbml0b3JlZC4gQWxsIGtub3duIGlzc3VlcyBhcmUgZGV0YWlsZWQgdGhlcmUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3RrNC1kaW5nQHNtZWRpdXMuZ2l0bGFiLmNvbSIsCiAgIm5hbWUiOiAiTGliYWR3YWl0YSwgR3RrNCBEZXNrdG9wIEljb25zIE5HIHdpdGggR1Njb25uZWN0IEludGVncmF0aW9uLCBEcmFnIGFuZCBEcm9wIG9udG8gRG9jayAoR3RrNC1ESU5HKSIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidXNlciIsCiAgICAidW5sb2NrLWRpYWxvZyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ3RrNC1kaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3NtZWRpdXMvZGVza3RvcC1pY29ucy1uZyIsCiAgInV1aWQiOiAiZ3RrNC1kaW5nQHNtZWRpdXMuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAxNwp9"},
     "42": {"version": "60", "sha256": "0gxn065ls150nj88zslng8lkhqfzba8lkhxyi74rpqn477ss6y9q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgR3RrNCBpY29ucyB0byB0aGUgR25vbWUgZGVza3RvcC4gR3RrNCBGb3JrIG9mIHRoZSBvcmlnaW5hbCBEZXNrdG9wIEljb25zIGV4dGVuc2lvbiwgd2l0aCBzZXZlcmFsIGVuaGFuY2VtZW50cy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJndGs0LWRpbmdAc21lZGl1cy5naXRsYWIuY29tIiwKICAibmFtZSI6ICJHdGs0IERlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndGs0LWRpbmciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9zbWVkaXVzL2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImd0azQtZGluZ0BzbWVkaXVzLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogNjAKfQ=="},
     "43": {"version": "60", "sha256": "0gxn065ls150nj88zslng8lkhqfzba8lkhxyi74rpqn477ss6y9q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgR3RrNCBpY29ucyB0byB0aGUgR25vbWUgZGVza3RvcC4gR3RrNCBGb3JrIG9mIHRoZSBvcmlnaW5hbCBEZXNrdG9wIEljb25zIGV4dGVuc2lvbiwgd2l0aCBzZXZlcmFsIGVuaGFuY2VtZW50cy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJndGs0LWRpbmdAc21lZGl1cy5naXRsYWIuY29tIiwKICAibmFtZSI6ICJHdGs0IERlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndGs0LWRpbmciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9zbWVkaXVzL2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImd0azQtZGluZ0BzbWVkaXVzLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogNjAKfQ=="},
     "44": {"version": "67", "sha256": "1bz5bs2llbklzn0wvqn300gd1g39qgdsgl5hwi1ndwd2wdl1mdbq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgR3RrNCBpY29ucyB0byB0aGUgR25vbWUgZGVza3RvcC4gR3RrNCBGb3JrIG9mIHRoZSBvcmlnaW5hbCBEZXNrdG9wIEljb25zIGV4dGVuc2lvbiwgd2l0aCBzZXZlcmFsIGVuaGFuY2VtZW50cy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJndGs0LWRpbmdAc21lZGl1cy5naXRsYWIuY29tIiwKICAibmFtZSI6ICJHdGs0IERlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndGs0LWRpbmciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc21lZGl1cy9kZXNrdG9wLWljb25zLW5nIiwKICAidXVpZCI6ICJndGs0LWRpbmdAc21lZGl1cy5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDY3Cn0="},
-    "45": {"version": "68", "sha256": "0nk8svl79cr75az55ws7pzbpf06h475c2fqjn64fj21xb2405r5k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgR3RrNCBpY29ucyB0byB0aGUgR25vbWUgZGVza3RvcC4gR3RrNCBGb3JrIG9mIHRoZSBvcmlnaW5hbCBEZXNrdG9wIEljb25zIGV4dGVuc2lvbiwgd2l0aCBzZXZlcmFsIGVuaGFuY2VtZW50cy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJndGs0LWRpbmciLAogICJuYW1lIjogIkd0azQgRGVza3RvcCBJY29ucyBORyAoRElORykiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0azQtZGluZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9zbWVkaXVzL2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImd0azQtZGluZ0BzbWVkaXVzLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogNjgKfQ=="}
+    "45": {"version": "71", "sha256": "1jaj1p79c16lwfnavr9z68pza60xqrh6qlkccydbw19sx0c774b7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgR3RrNCBpY29ucyB0byB0aGUgR25vbWUgZGVza3RvcC4gR3RrNCBGb3JrIG9mIHRoZSBvcmlnaW5hbCBEZXNrdG9wIEljb25zIGV4dGVuc2lvbiwgd2l0aCBzZXZlcmFsIGVuaGFuY2VtZW50cy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJndGs0LWRpbmciLAogICJuYW1lIjogIkd0azQgRGVza3RvcCBJY29ucyBORyAoRElORykiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0azQtZGluZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc21lZGl1cy9kZXNrdG9wLWljb25zLW5nIiwKICAidXVpZCI6ICJndGs0LWRpbmdAc21lZGl1cy5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDcxLAogICJ2ZXJzaW9uLW5hbWUiOiAiNzEiCn0="}
   }}
 , {"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=="},
@@ -5198,7 +5216,8 @@
     "41": {"version": "5", "sha256": "1khamwky9f5nqy8n2pfix1jjk589f5864hqgbpznrkzcvz4rbxmr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpbHRlciBvdXQgbm90aWZpY2F0aW9ucyBieSB0aGVpciB0ZXh0IGNvbnRlbnQgdG8gYmxvY2sgdGhlbSBmcm9tIGFwcGVhcmluZy5cbklmIHlvdSd2ZSBldmVyIGJlZW4gYW5ub3llZCBieSBjZXJ0YWluIG5vdGlmaWNhdGlvbnMgZGlzdHJhY3RpbmcgeW91LCB0aGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgbW9yZSBmaW5lIHR1bmVkIGNvbnRyb2wgb2Ygd2hpY2ggbm90aWZpY2F0aW9ucyB0byBwcmV2ZW50IGZyb20gc2hvd2luZyB1cC5cblxuR2l2ZXMgeW91IHRoZSBhYmlsaXR5IHRvIGZpbHRlciBieSBib3RoIHRoZSB0aXRsZSBhbmQgYm9keSBjb250ZW50LCB1c2UgcmVnZXggbWF0Y2hpbmcsIGFuZCBhZGQgbXVsdGlwbGUgZGlmZmVyZW50IGZpbHRlcnMuXG5cbk5vdGU6IE9ubHkgcHJldmVudHMgbmV3IG5vdGlmaWNhdGlvbnMgZnJvbSBhcHBlYXJpbmcsIGRvZXMgbm90IHJlbW92ZSBleGlzdGluZyBub3RpZmljYXRpb25zLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEZpbHRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ub3RpZmljYXRpb24tZmlsdGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zcHlidWcvTm90aWZ5RmlsdGVyLUdub21lRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tZmlsdGVyQGFzeW5jbGluay5vcmciLAogICJ2ZXJzaW9uIjogNQp9"},
     "42": {"version": "5", "sha256": "1khamwky9f5nqy8n2pfix1jjk589f5864hqgbpznrkzcvz4rbxmr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpbHRlciBvdXQgbm90aWZpY2F0aW9ucyBieSB0aGVpciB0ZXh0IGNvbnRlbnQgdG8gYmxvY2sgdGhlbSBmcm9tIGFwcGVhcmluZy5cbklmIHlvdSd2ZSBldmVyIGJlZW4gYW5ub3llZCBieSBjZXJ0YWluIG5vdGlmaWNhdGlvbnMgZGlzdHJhY3RpbmcgeW91LCB0aGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgbW9yZSBmaW5lIHR1bmVkIGNvbnRyb2wgb2Ygd2hpY2ggbm90aWZpY2F0aW9ucyB0byBwcmV2ZW50IGZyb20gc2hvd2luZyB1cC5cblxuR2l2ZXMgeW91IHRoZSBhYmlsaXR5IHRvIGZpbHRlciBieSBib3RoIHRoZSB0aXRsZSBhbmQgYm9keSBjb250ZW50LCB1c2UgcmVnZXggbWF0Y2hpbmcsIGFuZCBhZGQgbXVsdGlwbGUgZGlmZmVyZW50IGZpbHRlcnMuXG5cbk5vdGU6IE9ubHkgcHJldmVudHMgbmV3IG5vdGlmaWNhdGlvbnMgZnJvbSBhcHBlYXJpbmcsIGRvZXMgbm90IHJlbW92ZSBleGlzdGluZyBub3RpZmljYXRpb25zLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEZpbHRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ub3RpZmljYXRpb24tZmlsdGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zcHlidWcvTm90aWZ5RmlsdGVyLUdub21lRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tZmlsdGVyQGFzeW5jbGluay5vcmciLAogICJ2ZXJzaW9uIjogNQp9"},
     "43": {"version": "5", "sha256": "1khamwky9f5nqy8n2pfix1jjk589f5864hqgbpznrkzcvz4rbxmr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpbHRlciBvdXQgbm90aWZpY2F0aW9ucyBieSB0aGVpciB0ZXh0IGNvbnRlbnQgdG8gYmxvY2sgdGhlbSBmcm9tIGFwcGVhcmluZy5cbklmIHlvdSd2ZSBldmVyIGJlZW4gYW5ub3llZCBieSBjZXJ0YWluIG5vdGlmaWNhdGlvbnMgZGlzdHJhY3RpbmcgeW91LCB0aGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgbW9yZSBmaW5lIHR1bmVkIGNvbnRyb2wgb2Ygd2hpY2ggbm90aWZpY2F0aW9ucyB0byBwcmV2ZW50IGZyb20gc2hvd2luZyB1cC5cblxuR2l2ZXMgeW91IHRoZSBhYmlsaXR5IHRvIGZpbHRlciBieSBib3RoIHRoZSB0aXRsZSBhbmQgYm9keSBjb250ZW50LCB1c2UgcmVnZXggbWF0Y2hpbmcsIGFuZCBhZGQgbXVsdGlwbGUgZGlmZmVyZW50IGZpbHRlcnMuXG5cbk5vdGU6IE9ubHkgcHJldmVudHMgbmV3IG5vdGlmaWNhdGlvbnMgZnJvbSBhcHBlYXJpbmcsIGRvZXMgbm90IHJlbW92ZSBleGlzdGluZyBub3RpZmljYXRpb25zLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEZpbHRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ub3RpZmljYXRpb24tZmlsdGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zcHlidWcvTm90aWZ5RmlsdGVyLUdub21lRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tZmlsdGVyQGFzeW5jbGluay5vcmciLAogICJ2ZXJzaW9uIjogNQp9"},
-    "44": {"version": "5", "sha256": "1khamwky9f5nqy8n2pfix1jjk589f5864hqgbpznrkzcvz4rbxmr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpbHRlciBvdXQgbm90aWZpY2F0aW9ucyBieSB0aGVpciB0ZXh0IGNvbnRlbnQgdG8gYmxvY2sgdGhlbSBmcm9tIGFwcGVhcmluZy5cbklmIHlvdSd2ZSBldmVyIGJlZW4gYW5ub3llZCBieSBjZXJ0YWluIG5vdGlmaWNhdGlvbnMgZGlzdHJhY3RpbmcgeW91LCB0aGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgbW9yZSBmaW5lIHR1bmVkIGNvbnRyb2wgb2Ygd2hpY2ggbm90aWZpY2F0aW9ucyB0byBwcmV2ZW50IGZyb20gc2hvd2luZyB1cC5cblxuR2l2ZXMgeW91IHRoZSBhYmlsaXR5IHRvIGZpbHRlciBieSBib3RoIHRoZSB0aXRsZSBhbmQgYm9keSBjb250ZW50LCB1c2UgcmVnZXggbWF0Y2hpbmcsIGFuZCBhZGQgbXVsdGlwbGUgZGlmZmVyZW50IGZpbHRlcnMuXG5cbk5vdGU6IE9ubHkgcHJldmVudHMgbmV3IG5vdGlmaWNhdGlvbnMgZnJvbSBhcHBlYXJpbmcsIGRvZXMgbm90IHJlbW92ZSBleGlzdGluZyBub3RpZmljYXRpb25zLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEZpbHRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ub3RpZmljYXRpb24tZmlsdGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zcHlidWcvTm90aWZ5RmlsdGVyLUdub21lRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tZmlsdGVyQGFzeW5jbGluay5vcmciLAogICJ2ZXJzaW9uIjogNQp9"}
+    "44": {"version": "5", "sha256": "1khamwky9f5nqy8n2pfix1jjk589f5864hqgbpznrkzcvz4rbxmr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpbHRlciBvdXQgbm90aWZpY2F0aW9ucyBieSB0aGVpciB0ZXh0IGNvbnRlbnQgdG8gYmxvY2sgdGhlbSBmcm9tIGFwcGVhcmluZy5cbklmIHlvdSd2ZSBldmVyIGJlZW4gYW5ub3llZCBieSBjZXJ0YWluIG5vdGlmaWNhdGlvbnMgZGlzdHJhY3RpbmcgeW91LCB0aGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgbW9yZSBmaW5lIHR1bmVkIGNvbnRyb2wgb2Ygd2hpY2ggbm90aWZpY2F0aW9ucyB0byBwcmV2ZW50IGZyb20gc2hvd2luZyB1cC5cblxuR2l2ZXMgeW91IHRoZSBhYmlsaXR5IHRvIGZpbHRlciBieSBib3RoIHRoZSB0aXRsZSBhbmQgYm9keSBjb250ZW50LCB1c2UgcmVnZXggbWF0Y2hpbmcsIGFuZCBhZGQgbXVsdGlwbGUgZGlmZmVyZW50IGZpbHRlcnMuXG5cbk5vdGU6IE9ubHkgcHJldmVudHMgbmV3IG5vdGlmaWNhdGlvbnMgZnJvbSBhcHBlYXJpbmcsIGRvZXMgbm90IHJlbW92ZSBleGlzdGluZyBub3RpZmljYXRpb25zLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEZpbHRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ub3RpZmljYXRpb24tZmlsdGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zcHlidWcvTm90aWZ5RmlsdGVyLUdub21lRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tZmlsdGVyQGFzeW5jbGluay5vcmciLAogICJ2ZXJzaW9uIjogNQp9"},
+    "45": {"version": "7", "sha256": "0apkh8hpjkvp5s65nydsysi723gpl3yaw9w6n6524s7n2ir41q3i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpbHRlciBvdXQgbm90aWZpY2F0aW9ucyBieSB0aGVpciB0ZXh0IGNvbnRlbnQgdG8gYmxvY2sgdGhlbSBmcm9tIGFwcGVhcmluZy4iLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbiBGaWx0ZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubm90aWZpY2F0aW9uLWZpbHRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zcHlidWcvTm90aWZ5RmlsdGVyLUdub21lRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tZmlsdGVyQGFzeW5jbGluay5vcmciLAogICJ2ZXJzaW9uIjogNwp9"}
   }}
 , {"uuid": "evpn-assistant@xytrexl.com", "name": "ExpressVPN - EVPN Shell Assistant ( express vpn )", "pname": "evpn-shell-assistant", "description": "Allows ExpressVPN to be controlled through the GNOME shell.", "link": "https://extensions.gnome.org/extension/5385/evpn-shell-assistant/", "shell_version_map": {
     "42": {"version": "3", "sha256": "1lvdv1dv78v36j52n58hjrg2hwc3flrq9mryffdhvjb01rrxmigv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyBFeHByZXNzVlBOIHRvIGJlIGNvbnRyb2xsZWQgdGhyb3VnaCB0aGUgR05PTUUgc2hlbGwuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWV2cG4tYXNzaXN0YW50IiwKICAibmFtZSI6ICJFeHByZXNzVlBOIC0gRVZQTiBTaGVsbCBBc3Npc3RhbnQgKCBleHByZXNzIHZwbiApIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIlN0dWFydCBHaWxtb3VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmV2cG4tYXNzaXN0YW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0dWFydGphbWVzZ2lsbW91ci9ldnBuLWFzc2lzdGFudCIsCiAgInV1aWQiOiAiZXZwbi1hc3Npc3RhbnRAeHl0cmV4bC5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}
@@ -5358,7 +5377,8 @@
   }}
 , {"uuid": "customreboot@nova1545", "name": "Custom Reboot", "pname": "custom-reboot", "description": "Reboot into another OS directly from GNOME.\nA expansion of https://github.com/docquantum/gnome-shell-extension-customreboot", "link": "https://extensions.gnome.org/extension/5542/custom-reboot/", "shell_version_map": {
     "43": {"version": "7", "sha256": "1xj7b97z0y5ryb5zikawlzsknk3l1zhb2xflpf28gvfbrk1gc642", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlYm9vdCBpbnRvIGFub3RoZXIgT1MgZGlyZWN0bHkgZnJvbSBHTk9NRS5cbkEgZXhwYW5zaW9uIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS9kb2NxdWFudHVtL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jdXN0b21yZWJvb3QiLAogICJuYW1lIjogIkN1c3RvbSBSZWJvb3QiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiTm92YTE1NDUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL05vdmExNTQ1L2dub21lLXNoZWxsLWV4dGVuc2lvbi1jdXN0b21yZWJvb3QiLAogICJ1dWlkIjogImN1c3RvbXJlYm9vdEBub3ZhMTU0NSIsCiAgInZlcnNpb24iOiA3Cn0="},
-    "44": {"version": "7", "sha256": "1xj7b97z0y5ryb5zikawlzsknk3l1zhb2xflpf28gvfbrk1gc642", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlYm9vdCBpbnRvIGFub3RoZXIgT1MgZGlyZWN0bHkgZnJvbSBHTk9NRS5cbkEgZXhwYW5zaW9uIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS9kb2NxdWFudHVtL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jdXN0b21yZWJvb3QiLAogICJuYW1lIjogIkN1c3RvbSBSZWJvb3QiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiTm92YTE1NDUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL05vdmExNTQ1L2dub21lLXNoZWxsLWV4dGVuc2lvbi1jdXN0b21yZWJvb3QiLAogICJ1dWlkIjogImN1c3RvbXJlYm9vdEBub3ZhMTU0NSIsCiAgInZlcnNpb24iOiA3Cn0="}
+    "44": {"version": "7", "sha256": "1xj7b97z0y5ryb5zikawlzsknk3l1zhb2xflpf28gvfbrk1gc642", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlYm9vdCBpbnRvIGFub3RoZXIgT1MgZGlyZWN0bHkgZnJvbSBHTk9NRS5cbkEgZXhwYW5zaW9uIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS9kb2NxdWFudHVtL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jdXN0b21yZWJvb3QiLAogICJuYW1lIjogIkN1c3RvbSBSZWJvb3QiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiTm92YTE1NDUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL05vdmExNTQ1L2dub21lLXNoZWxsLWV4dGVuc2lvbi1jdXN0b21yZWJvb3QiLAogICJ1dWlkIjogImN1c3RvbXJlYm9vdEBub3ZhMTU0NSIsCiAgInZlcnNpb24iOiA3Cn0="},
+    "45": {"version": "9", "sha256": "0pgzmin2d7jni530spf2b0yf8m99qhas59n2al6nkn44lg4iwv03", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlYm9vdCBpbnRvIGFub3RoZXIgT1MgZGlyZWN0bHkgZnJvbSBHTk9NRS5cbkEgZXhwYW5zaW9uIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS9kb2NxdWFudHVtL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jdXN0b21yZWJvb3QiLAogICJuYW1lIjogIkN1c3RvbSBSZWJvb3QiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiTm92YTE1NDUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTm92YTE1NDUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWN1c3RvbXJlYm9vdCIsCiAgInV1aWQiOiAiY3VzdG9tcmVib290QG5vdmExNTQ1IiwKICAidmVyc2lvbiI6IDkKfQ=="}
   }}
 , {"uuid": "custom-accent-colors@demiskp", "name": "Custom Accent Colors", "pname": "custom-accent-colors", "description": "Allows the user to choose between 9 Custom Accent Colors. The Accent Color can be applied to GTK4/GTK3 apps and the Gnome Shell.", "link": "https://extensions.gnome.org/extension/5547/custom-accent-colors/", "shell_version_map": {
     "43": {"version": "6", "sha256": "1cfmqp524m3zkw5vj6msr9pjjwwwys3mcvjipfdl875lkwdb3xg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0aGUgdXNlciB0byBjaG9vc2UgYmV0d2VlbiA5IEN1c3RvbSBBY2NlbnQgQ29sb3JzLiBUaGUgQWNjZW50IENvbG9yIGNhbiBiZSBhcHBsaWVkIHRvIEdUSzQvR1RLMyBhcHBzIGFuZCB0aGUgR25vbWUgU2hlbGwuIiwKICAibmFtZSI6ICJDdXN0b20gQWNjZW50IENvbG9ycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGVtaXNrcC9jdXN0b20tYWNjZW50LWNvbG9ycyIsCiAgInV1aWQiOiAiY3VzdG9tLWFjY2VudC1jb2xvcnNAZGVtaXNrcCIsCiAgInZlcnNpb24iOiA2Cn0="},
@@ -5466,7 +5486,7 @@
     "42": {"version": "5", "sha256": "1c8brmjzcgwqqz7zgim8v3dvxq7r34wwvrz1v9il59c4vsyxsn36", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIGN1cnJlbnQgd2VhdGhlciBiZXNpZGUgdGhlIGNsb2NrICh3aGlsZSBhbHNvIGtlZXBpbmcgaXQgY2VudGVyZWQpIGFuZCBjbGljayB0aGUgaW5kaWNhdG9yIHRvIG9wZW4gR05PTUUgV2VhdGhlciwgd2hpY2ggaXMgcmVxdWlyZWQgZm9yIHRoaXMgZXh0ZW5zaW9uIHRvIGZ1bmN0aW9uIHByb3Blcmx5LlxuXG5UaGlzIGlzIGEgZm9yayBvZiB0aGUgV2VhdGhlciBPJ0Nsb2NrIGV4dGVuc2lvbi4iLAogICJuYW1lIjogIldlYXRoZXIgb3IgTm90IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInNvbWVwYXVsb0BkdWNrLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NvbWVwYXVsby9nbm9tZS1zaGVsbC1leHRlbnNpb24td2VhdGhlci1vci1ub3QiLAogICJ1dWlkIjogIndlYXRoZXJvcm5vdEBzb21lcGF1bG8uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDUKfQ=="},
     "43": {"version": "5", "sha256": "1c8brmjzcgwqqz7zgim8v3dvxq7r34wwvrz1v9il59c4vsyxsn36", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIGN1cnJlbnQgd2VhdGhlciBiZXNpZGUgdGhlIGNsb2NrICh3aGlsZSBhbHNvIGtlZXBpbmcgaXQgY2VudGVyZWQpIGFuZCBjbGljayB0aGUgaW5kaWNhdG9yIHRvIG9wZW4gR05PTUUgV2VhdGhlciwgd2hpY2ggaXMgcmVxdWlyZWQgZm9yIHRoaXMgZXh0ZW5zaW9uIHRvIGZ1bmN0aW9uIHByb3Blcmx5LlxuXG5UaGlzIGlzIGEgZm9yayBvZiB0aGUgV2VhdGhlciBPJ0Nsb2NrIGV4dGVuc2lvbi4iLAogICJuYW1lIjogIldlYXRoZXIgb3IgTm90IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInNvbWVwYXVsb0BkdWNrLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NvbWVwYXVsby9nbm9tZS1zaGVsbC1leHRlbnNpb24td2VhdGhlci1vci1ub3QiLAogICJ1dWlkIjogIndlYXRoZXJvcm5vdEBzb21lcGF1bG8uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDUKfQ=="},
     "44": {"version": "5", "sha256": "1c8brmjzcgwqqz7zgim8v3dvxq7r34wwvrz1v9il59c4vsyxsn36", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIGN1cnJlbnQgd2VhdGhlciBiZXNpZGUgdGhlIGNsb2NrICh3aGlsZSBhbHNvIGtlZXBpbmcgaXQgY2VudGVyZWQpIGFuZCBjbGljayB0aGUgaW5kaWNhdG9yIHRvIG9wZW4gR05PTUUgV2VhdGhlciwgd2hpY2ggaXMgcmVxdWlyZWQgZm9yIHRoaXMgZXh0ZW5zaW9uIHRvIGZ1bmN0aW9uIHByb3Blcmx5LlxuXG5UaGlzIGlzIGEgZm9yayBvZiB0aGUgV2VhdGhlciBPJ0Nsb2NrIGV4dGVuc2lvbi4iLAogICJuYW1lIjogIldlYXRoZXIgb3IgTm90IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInNvbWVwYXVsb0BkdWNrLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NvbWVwYXVsby9nbm9tZS1zaGVsbC1leHRlbnNpb24td2VhdGhlci1vci1ub3QiLAogICJ1dWlkIjogIndlYXRoZXJvcm5vdEBzb21lcGF1bG8uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDUKfQ=="},
-    "45": {"version": "12", "sha256": "1qb950xqlcczgzrszxjgjr146sgsmz39fvk8c1xnz356wbqq7r7y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIGN1cnJlbnQgd2VhdGhlciBpbiB0aGUgcGFuZWwgYW5kIGNsaWNrIHRoZSBpbmRpY2F0b3IgdG8gb3BlbiBHTk9NRSBXZWF0aGVyLiBUaGUgaW5kaWNhdG9yIHBvc2l0aW9uIGNhbiBiZSBhZGp1c3RlZCBpbiBwcmVmZXJlbmNlcyAob24gR05PTUUgNDUrKS5cblxuWW91IG5lZWQgR05PTUUgV2VhdGhlciBpbnN0YWxsZWQgZm9yIHRoaXMgZXh0ZW5zaW9uIHRvIGZ1bmN0aW9uIHByb3Blcmx5IGFuZCBhbiBhY3RpdmUgaW50ZXJuZXQgY29ubmVjdGlvbiB0byByZXRyaWV2ZSBhbmQgZGlzcGxheSB3ZWF0aGVyIGluZm9ybWF0aW9uLlxuXG5UaGlzIGlzIGEgZm9yayBvZiB0aGUgV2VhdGhlciBPJ0Nsb2NrIGV4dGVuc2lvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3ZWF0aGVyb3Jub3RAc29tZXBhdWxvLmdpdGh1Yi5pbyIsCiAgIm5hbWUiOiAiV2VhdGhlciBvciBOb3QiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic29tZXBhdWxvQGR1Y2suY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndlYXRoZXJvcm5vdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zb21lcGF1bG8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdlYXRoZXItb3Itbm90IiwKICAidXVpZCI6ICJ3ZWF0aGVyb3Jub3RAc29tZXBhdWxvLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMgp9"}
+    "45": {"version": "13", "sha256": "0h20qba10g6swwqih7d763234nxghid1jv84kr2wili2mx12q95i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIGN1cnJlbnQgd2VhdGhlciBpbiB0aGUgcGFuZWwgYW5kIGNsaWNrIHRoZSBpbmRpY2F0b3IgdG8gb3BlbiBHTk9NRSBXZWF0aGVyLiBUaGUgaW5kaWNhdG9yIHBvc2l0aW9uIGNhbiBiZSBhZGp1c3RlZCBpbiBwcmVmZXJlbmNlcyAob24gR05PTUUgNDUrKS5cblxuWW91IG5lZWQgR05PTUUgV2VhdGhlciBpbnN0YWxsZWQgZm9yIHRoaXMgZXh0ZW5zaW9uIHRvIGZ1bmN0aW9uIHByb3Blcmx5IGFuZCBhbiBhY3RpdmUgaW50ZXJuZXQgY29ubmVjdGlvbiB0byByZXRyaWV2ZSBhbmQgZGlzcGxheSB3ZWF0aGVyIGluZm9ybWF0aW9uLlxuXG5UaGlzIGlzIGEgZm9yayBvZiB0aGUgV2VhdGhlciBPJ0Nsb2NrIGV4dGVuc2lvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3ZWF0aGVyb3Jub3RAc29tZXBhdWxvLmdpdGh1Yi5pbyIsCiAgIm5hbWUiOiAiV2VhdGhlciBvciBOb3QiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic29tZXBhdWxvQGR1Y2suY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndlYXRoZXJvcm5vdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zb21lcGF1bG8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdlYXRoZXItb3Itbm90IiwKICAidXVpZCI6ICJ3ZWF0aGVyb3Jub3RAc29tZXBhdWxvLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMywKICAidmVyc2lvbi1uYW1lIjogIjQ1LjEiCn0="}
   }}
 , {"uuid": "cscotun0-ip-address@cjthedj97.github.com", "name": "cscotun0 IP Address", "pname": "cscotun0-ip-address", "description": "Show cscotun0 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 dependency. Forked from https://github.com/AdamantisSpinae/gnome-extension-tun0-ip-address and modified tunnel interface it looks at.", "link": "https://extensions.gnome.org/extension/5663/cscotun0-ip-address/", "shell_version_map": {
     "40": {"version": "1", "sha256": "10rfpikf5m3ch39ki44x0vs85jwf9rdj6d1jdr5wwr5jhplz09af", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY3Njb3R1bjAgSVAgYWRkcmVzcyBvbiBHTk9NRSBwYW5lbC4gRG8gbm90IHNob3cgbG9vcGJhY2sgYWRkcmVzc2VzICgxMjcuMC4wLjAvOCkgb3Igb3RoZXIgbmV0d29yayBpbnRlcmZhY2UgSVAgYWRkcmVzc2VzLiBQbGVhc2UgaW5zdGFsbCBtb3JldXRpbHMgcGFja2FnZSBhcyBhIGRlcGVuZGVuY3kuIEZvcmtlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9BZGFtYW50aXNTcGluYWUvZ25vbWUtZXh0ZW5zaW9uLXR1bjAtaXAtYWRkcmVzcyBhbmQgbW9kaWZpZWQgdHVubmVsIGludGVyZmFjZSBpdCBsb29rcyBhdC4iLAogICJuYW1lIjogImNzY290dW4wIElQIEFkZHJlc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2p0aGVkajk3L2dub21lLWV4dGVuc2lvbi1jc2NvdHVuMC1pcC1hZGRyZXNzLyIsCiAgInV1aWQiOiAiY3Njb3R1bjAtaXAtYWRkcmVzc0BjanRoZWRqOTcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="},
@@ -5493,7 +5513,7 @@
 , {"uuid": "gnome-one-window-wonderland@jqno.nl", "name": "One Window Wonderland", "pname": "one-window-wonderland", "description": "Automatically maximizes new windows, leaving 'useless gaps' around them.\n\nFeatures:\n- Sizes and positions a new window so that it takes the full workspace, except for the gaps around it.\n- Sizes and positions a window that moves to another monitor so that it takes the full workspace, except for the gaps around it.\n- The size of the gaps is configurable.\n- You can define a list of apps that should be left alone by this extension (the 'ignore list').\n- You can define a list of apps that should forcibly be kept in place (the 'force list').\n\nNote that One Window Wonderland leaves windows alone after they've been created or moved to another monitor. You are free to resize them as you see fit, or add them to the force list to keep them in place.", "link": "https://extensions.gnome.org/extension/5696/one-window-wonderland/", "shell_version_map": {
     "43": {"version": "9", "sha256": "1azrpcg9wsf3l1rw5hxh2bj1w7xrslfrm1592kc4v27rflynvfkd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgbWF4aW1pemVzIG5ldyB3aW5kb3dzLCBsZWF2aW5nICd1c2VsZXNzIGdhcHMnIGFyb3VuZCB0aGVtIiwKICAibmFtZSI6ICJPbmUgV2luZG93IFdvbmRlcmxhbmQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pxbm8vZ25vbWUtb25lLXdpbmRvdy13b25kZXJsYW5kLyIsCiAgInV1aWQiOiAiZ25vbWUtb25lLXdpbmRvdy13b25kZXJsYW5kQGpxbm8ubmwiLAogICJ2ZXJzaW9uIjogOQp9"},
     "44": {"version": "9", "sha256": "1azrpcg9wsf3l1rw5hxh2bj1w7xrslfrm1592kc4v27rflynvfkd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgbWF4aW1pemVzIG5ldyB3aW5kb3dzLCBsZWF2aW5nICd1c2VsZXNzIGdhcHMnIGFyb3VuZCB0aGVtIiwKICAibmFtZSI6ICJPbmUgV2luZG93IFdvbmRlcmxhbmQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pxbm8vZ25vbWUtb25lLXdpbmRvdy13b25kZXJsYW5kLyIsCiAgInV1aWQiOiAiZ25vbWUtb25lLXdpbmRvdy13b25kZXJsYW5kQGpxbm8ubmwiLAogICJ2ZXJzaW9uIjogOQp9"},
-    "45": {"version": "10", "sha256": "1b6g1iap1m9qq3i5sm7vkllz434rvwhfl4q1ba5bb6i5vkf39d35", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgbWF4aW1pemVzIG5ldyB3aW5kb3dzLCBsZWF2aW5nICd1c2VsZXNzIGdhcHMnIGFyb3VuZCB0aGVtLlxuXG5GZWF0dXJlczpcbi0gU2l6ZXMgYW5kIHBvc2l0aW9ucyBhIG5ldyB3aW5kb3cgc28gdGhhdCBpdCB0YWtlcyB0aGUgZnVsbCB3b3Jrc3BhY2UsIGV4Y2VwdCBmb3IgdGhlIGdhcHMgYXJvdW5kIGl0LlxuLSBTaXplcyBhbmQgcG9zaXRpb25zIGEgd2luZG93IHRoYXQgbW92ZXMgdG8gYW5vdGhlciBtb25pdG9yIHNvIHRoYXQgaXQgdGFrZXMgdGhlIGZ1bGwgd29ya3NwYWNlLCBleGNlcHQgZm9yIHRoZSBnYXBzIGFyb3VuZCBpdC5cbi0gVGhlIHNpemUgb2YgdGhlIGdhcHMgaXMgY29uZmlndXJhYmxlLlxuLSBZb3UgY2FuIGRlZmluZSBhIGxpc3Qgb2YgYXBwcyB0aGF0IHNob3VsZCBiZSBsZWZ0IGFsb25lIGJ5IHRoaXMgZXh0ZW5zaW9uICh0aGUgJ2lnbm9yZSBsaXN0JykuXG4tIFlvdSBjYW4gZGVmaW5lIGEgbGlzdCBvZiBhcHBzIHRoYXQgc2hvdWxkIGZvcmNpYmx5IGJlIGtlcHQgaW4gcGxhY2UgKHRoZSAnZm9yY2UgbGlzdCcpLlxuXG5Ob3RlIHRoYXQgT25lIFdpbmRvdyBXb25kZXJsYW5kIGxlYXZlcyB3aW5kb3dzIGFsb25lIGFmdGVyIHRoZXkndmUgYmVlbiBjcmVhdGVkIG9yIG1vdmVkIHRvIGFub3RoZXIgbW9uaXRvci4gWW91IGFyZSBmcmVlIHRvIHJlc2l6ZSB0aGVtIGFzIHlvdSBzZWUgZml0LCBvciBhZGQgdGhlbSB0byB0aGUgZm9yY2UgbGlzdCB0byBrZWVwIHRoZW0gaW4gcGxhY2UuIiwKICAibmFtZSI6ICJPbmUgV2luZG93IFdvbmRlcmxhbmQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vanFuby9nbm9tZS1vbmUtd2luZG93LXdvbmRlcmxhbmQvIiwKICAidXVpZCI6ICJnbm9tZS1vbmUtd2luZG93LXdvbmRlcmxhbmRAanFuby5ubCIsCiAgInZlcnNpb24iOiAxMAp9"}
+    "45": {"version": "11", "sha256": "0hwdx3d7nv8h49qyqjz45jiy7qvbwdp8bb30f916w9cxrpy4sdh3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgbWF4aW1pemVzIG5ldyB3aW5kb3dzLCBsZWF2aW5nICd1c2VsZXNzIGdhcHMnIGFyb3VuZCB0aGVtLlxuXG5GZWF0dXJlczpcbi0gU2l6ZXMgYW5kIHBvc2l0aW9ucyBhIG5ldyB3aW5kb3cgc28gdGhhdCBpdCB0YWtlcyB0aGUgZnVsbCB3b3Jrc3BhY2UsIGV4Y2VwdCBmb3IgdGhlIGdhcHMgYXJvdW5kIGl0LlxuLSBTaXplcyBhbmQgcG9zaXRpb25zIGEgd2luZG93IHRoYXQgbW92ZXMgdG8gYW5vdGhlciBtb25pdG9yIHNvIHRoYXQgaXQgdGFrZXMgdGhlIGZ1bGwgd29ya3NwYWNlLCBleGNlcHQgZm9yIHRoZSBnYXBzIGFyb3VuZCBpdC5cbi0gVGhlIHNpemUgb2YgdGhlIGdhcHMgaXMgY29uZmlndXJhYmxlLlxuLSBZb3UgY2FuIGRlZmluZSBhIGxpc3Qgb2YgYXBwcyB0aGF0IHNob3VsZCBiZSBsZWZ0IGFsb25lIGJ5IHRoaXMgZXh0ZW5zaW9uICh0aGUgJ2lnbm9yZSBsaXN0JykuXG4tIFlvdSBjYW4gZGVmaW5lIGEgbGlzdCBvZiBhcHBzIHRoYXQgc2hvdWxkIGZvcmNpYmx5IGJlIGtlcHQgaW4gcGxhY2UgKHRoZSAnZm9yY2UgbGlzdCcpLlxuXG5Ob3RlIHRoYXQgT25lIFdpbmRvdyBXb25kZXJsYW5kIGxlYXZlcyB3aW5kb3dzIGFsb25lIGFmdGVyIHRoZXkndmUgYmVlbiBjcmVhdGVkIG9yIG1vdmVkIHRvIGFub3RoZXIgbW9uaXRvci4gWW91IGFyZSBmcmVlIHRvIHJlc2l6ZSB0aGVtIGFzIHlvdSBzZWUgZml0LCBvciBhZGQgdGhlbSB0byB0aGUgZm9yY2UgbGlzdCB0byBrZWVwIHRoZW0gaW4gcGxhY2UuIiwKICAibmFtZSI6ICJPbmUgV2luZG93IFdvbmRlcmxhbmQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vanFuby9nbm9tZS1vbmUtd2luZG93LXdvbmRlcmxhbmQvIiwKICAidXVpZCI6ICJnbm9tZS1vbmUtd2luZG93LXdvbmRlcmxhbmRAanFuby5ubCIsCiAgInZlcnNpb24iOiAxMQp9"}
   }}
 , {"uuid": "otp-keys@osmank3.net", "name": "OTP keys", "pname": "otp-keys", "description": "Show and copy otp keys", "link": "https://extensions.gnome.org/extension/5697/otp-keys/", "shell_version_map": {
     "42": {"version": "21", "sha256": "1a94fmqg8rgrz0fz7m3millh9hgfa3vbw22ivffa31ifssr52a13", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW5kIGNvcHkgb3RwIGtleXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvdHAta2V5cyIsCiAgIm5hbWUiOiAiT1RQIGtleXMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMub3RwLWtleXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vc21hbmszL290cC1rZXlzIiwKICAidXVpZCI6ICJvdHAta2V5c0Bvc21hbmszLm5ldCIsCiAgInZlcnNpb24iOiAyMQp9"},
@@ -5531,10 +5551,10 @@
     "44": {"version": "4", "sha256": "0jszkq48sac8i7pgdgyfcyyqpc4jq3shaj0ghm9hwahs9qd040h3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWluaW1hbCBjbGlwYm9hcmQgaW5kaWNhdG9yIGZvciB0aGUgZ25vbWUgc2hlbGwiLAogICJuYW1lIjogIkNsaXBib2FyZCBJbmRpY2F0b3IiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIkRpZWcwSnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0RpZWcwSnMvZ25vbWUtY2xpcGJvYXJkLWluZGljYXRvciIsCiAgInV1aWQiOiAiY2xpcGJvYXJkLWluZGljYXRvckBEaWVnMEpzLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA0Cn0="}
   }}
 , {"uuid": "Battery-Health-Charging@maniacx.github.com", "name": "Battery Health Charging", "pname": "battery-health-charging", "description": "Set battery charging threshold / charging limit / charging mode\nBattery Health Charging: An extension to maximize the battery life of laptops by setting their charging threshold or modes.\n\nCompatible with\n- Asus\n- LG\n- Samsung\n- Sony\n- Huawei\n- Toshiba\n- System76\n- Lenovo (Ideapad, Legion)\n- Thinkpad\n- Panasonic\n- Acer (dependencies: kernel module)\n- MSI (dependencies: kernel module)\n- Tuxedo (dependencies: kernel module)\n- Slimbook (dependencies: kernel module)\n- Tuxedo IntelQC71 (dependencies: kernel module)\n- XMG IntelQC71 (dependencies: kernel module)\n- Eluktronics IntelQC71 (dependencies: kernel module)\n- Purism Librem (dependencies: kernel module)\n- Gigabyte Aero/Aorus (dependencies: kernel module)\n- Dell (dependencies: custom package libsmbios)\n- Dell (dependencies: custom package Dell Command Center)\n- Apple Macbook Intel-series chip (dependencies: kernel module)\n- Apple Macbook M-series chip (dependencies: custom kernel)\n- Razer (dependencies: custom package razer-cli)\n- Framework (dependencies: kernel module)\n\nNot all models are comaptible. Please read about the compatibility and dependencies of your device on github link below.\n\nhttps://maniacx.github.io/Battery-Health-Charging/", "link": "https://extensions.gnome.org/extension/5724/battery-health-charging/", "shell_version_map": {
-    "42": {"version": "47", "sha256": "0rwhr85r3dvy53kblja26z3h8n1m4c0byvrb8bafwlvri8b0hglz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBiYXR0ZXJ5IGNoYXJnaW5nIHRocmVzaG9sZCAvIGNoYXJnaW5nIGxpbWl0IC8gY2hhcmdpbmcgbW9kZVxuQmF0dGVyeSBIZWFsdGggQ2hhcmdpbmc6IEFuIGV4dGVuc2lvbiB0byBtYXhpbWl6ZSB0aGUgYmF0dGVyeSBsaWZlIG9mIGxhcHRvcHMgYnkgc2V0dGluZyB0aGVpciBjaGFyZ2luZyB0aHJlc2hvbGQgb3IgbW9kZXMuXG5cbkNvbXBhdGlibGUgd2l0aFxuLSBBc3VzXG4tIExHXG4tIFNhbXN1bmdcbi0gU29ueVxuLSBIdWF3ZWlcbi0gVG9zaGliYVxuLSBTeXN0ZW03NlxuLSBMZW5vdm8gKElkZWFwYWQsIExlZ2lvbilcbi0gVGhpbmtwYWRcbi0gUGFuYXNvbmljXG4tIEFjZXIgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gTVNJIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFR1eGVkbyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBTbGltYm9vayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBUdXhlZG8gSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFhNRyBJbnRlbFFDNzEgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gRWx1a3Ryb25pY3MgSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFB1cmlzbSBMaWJyZW0gKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gR2lnYWJ5dGUgQWVyby9Bb3J1cyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBEZWxsIChkZXBlbmRlbmNpZXM6IGN1c3RvbSBwYWNrYWdlIGxpYnNtYmlvcylcbi0gRGVsbCAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSBEZWxsIENvbW1hbmQgQ2VudGVyKVxuLSBBcHBsZSBNYWNib29rIEludGVsLXNlcmllcyBjaGlwIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIEFwcGxlIE1hY2Jvb2sgTS1zZXJpZXMgY2hpcCAoZGVwZW5kZW5jaWVzOiBjdXN0b20ga2VybmVsKVxuLSBSYXplciAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSByYXplci1jbGkpXG4tIEZyYW1ld29yayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuXG5Ob3QgYWxsIG1vZGVscyBhcmUgY29tYXB0aWJsZS4gUGxlYXNlIHJlYWQgYWJvdXQgdGhlIGNvbXBhdGliaWxpdHkgYW5kIGRlcGVuZGVuY2llcyBvZiB5b3VyIGRldmljZSBvbiBnaXRodWIgbGluayBiZWxvdy5cblxuaHR0cHM6Ly9tYW5pYWN4LmdpdGh1Yi5pby9CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZy8iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJCYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZ0BtYW5pYWN4LmdpdGh1Yi5jb20iLAogICJuYW1lIjogIkJhdHRlcnkgSGVhbHRoIENoYXJnaW5nIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hbmlhY3gvQmF0dGVyeS1IZWFsdGgtQ2hhcmdpbmciLAogICJ1dWlkIjogIkJhdHRlcnktSGVhbHRoLUNoYXJnaW5nQG1hbmlhY3guZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Nwp9"},
-    "43": {"version": "47", "sha256": "0rwhr85r3dvy53kblja26z3h8n1m4c0byvrb8bafwlvri8b0hglz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBiYXR0ZXJ5IGNoYXJnaW5nIHRocmVzaG9sZCAvIGNoYXJnaW5nIGxpbWl0IC8gY2hhcmdpbmcgbW9kZVxuQmF0dGVyeSBIZWFsdGggQ2hhcmdpbmc6IEFuIGV4dGVuc2lvbiB0byBtYXhpbWl6ZSB0aGUgYmF0dGVyeSBsaWZlIG9mIGxhcHRvcHMgYnkgc2V0dGluZyB0aGVpciBjaGFyZ2luZyB0aHJlc2hvbGQgb3IgbW9kZXMuXG5cbkNvbXBhdGlibGUgd2l0aFxuLSBBc3VzXG4tIExHXG4tIFNhbXN1bmdcbi0gU29ueVxuLSBIdWF3ZWlcbi0gVG9zaGliYVxuLSBTeXN0ZW03NlxuLSBMZW5vdm8gKElkZWFwYWQsIExlZ2lvbilcbi0gVGhpbmtwYWRcbi0gUGFuYXNvbmljXG4tIEFjZXIgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gTVNJIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFR1eGVkbyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBTbGltYm9vayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBUdXhlZG8gSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFhNRyBJbnRlbFFDNzEgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gRWx1a3Ryb25pY3MgSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFB1cmlzbSBMaWJyZW0gKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gR2lnYWJ5dGUgQWVyby9Bb3J1cyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBEZWxsIChkZXBlbmRlbmNpZXM6IGN1c3RvbSBwYWNrYWdlIGxpYnNtYmlvcylcbi0gRGVsbCAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSBEZWxsIENvbW1hbmQgQ2VudGVyKVxuLSBBcHBsZSBNYWNib29rIEludGVsLXNlcmllcyBjaGlwIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIEFwcGxlIE1hY2Jvb2sgTS1zZXJpZXMgY2hpcCAoZGVwZW5kZW5jaWVzOiBjdXN0b20ga2VybmVsKVxuLSBSYXplciAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSByYXplci1jbGkpXG4tIEZyYW1ld29yayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuXG5Ob3QgYWxsIG1vZGVscyBhcmUgY29tYXB0aWJsZS4gUGxlYXNlIHJlYWQgYWJvdXQgdGhlIGNvbXBhdGliaWxpdHkgYW5kIGRlcGVuZGVuY2llcyBvZiB5b3VyIGRldmljZSBvbiBnaXRodWIgbGluayBiZWxvdy5cblxuaHR0cHM6Ly9tYW5pYWN4LmdpdGh1Yi5pby9CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZy8iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJCYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZ0BtYW5pYWN4LmdpdGh1Yi5jb20iLAogICJuYW1lIjogIkJhdHRlcnkgSGVhbHRoIENoYXJnaW5nIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hbmlhY3gvQmF0dGVyeS1IZWFsdGgtQ2hhcmdpbmciLAogICJ1dWlkIjogIkJhdHRlcnktSGVhbHRoLUNoYXJnaW5nQG1hbmlhY3guZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Nwp9"},
-    "44": {"version": "47", "sha256": "0rwhr85r3dvy53kblja26z3h8n1m4c0byvrb8bafwlvri8b0hglz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBiYXR0ZXJ5IGNoYXJnaW5nIHRocmVzaG9sZCAvIGNoYXJnaW5nIGxpbWl0IC8gY2hhcmdpbmcgbW9kZVxuQmF0dGVyeSBIZWFsdGggQ2hhcmdpbmc6IEFuIGV4dGVuc2lvbiB0byBtYXhpbWl6ZSB0aGUgYmF0dGVyeSBsaWZlIG9mIGxhcHRvcHMgYnkgc2V0dGluZyB0aGVpciBjaGFyZ2luZyB0aHJlc2hvbGQgb3IgbW9kZXMuXG5cbkNvbXBhdGlibGUgd2l0aFxuLSBBc3VzXG4tIExHXG4tIFNhbXN1bmdcbi0gU29ueVxuLSBIdWF3ZWlcbi0gVG9zaGliYVxuLSBTeXN0ZW03NlxuLSBMZW5vdm8gKElkZWFwYWQsIExlZ2lvbilcbi0gVGhpbmtwYWRcbi0gUGFuYXNvbmljXG4tIEFjZXIgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gTVNJIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFR1eGVkbyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBTbGltYm9vayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBUdXhlZG8gSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFhNRyBJbnRlbFFDNzEgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gRWx1a3Ryb25pY3MgSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFB1cmlzbSBMaWJyZW0gKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gR2lnYWJ5dGUgQWVyby9Bb3J1cyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBEZWxsIChkZXBlbmRlbmNpZXM6IGN1c3RvbSBwYWNrYWdlIGxpYnNtYmlvcylcbi0gRGVsbCAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSBEZWxsIENvbW1hbmQgQ2VudGVyKVxuLSBBcHBsZSBNYWNib29rIEludGVsLXNlcmllcyBjaGlwIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIEFwcGxlIE1hY2Jvb2sgTS1zZXJpZXMgY2hpcCAoZGVwZW5kZW5jaWVzOiBjdXN0b20ga2VybmVsKVxuLSBSYXplciAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSByYXplci1jbGkpXG4tIEZyYW1ld29yayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuXG5Ob3QgYWxsIG1vZGVscyBhcmUgY29tYXB0aWJsZS4gUGxlYXNlIHJlYWQgYWJvdXQgdGhlIGNvbXBhdGliaWxpdHkgYW5kIGRlcGVuZGVuY2llcyBvZiB5b3VyIGRldmljZSBvbiBnaXRodWIgbGluayBiZWxvdy5cblxuaHR0cHM6Ly9tYW5pYWN4LmdpdGh1Yi5pby9CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZy8iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJCYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZ0BtYW5pYWN4LmdpdGh1Yi5jb20iLAogICJuYW1lIjogIkJhdHRlcnkgSGVhbHRoIENoYXJnaW5nIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hbmlhY3gvQmF0dGVyeS1IZWFsdGgtQ2hhcmdpbmciLAogICJ1dWlkIjogIkJhdHRlcnktSGVhbHRoLUNoYXJnaW5nQG1hbmlhY3guZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Nwp9"},
-    "45": {"version": "48", "sha256": "0igql63rvcfbaaqbpn2wf5cg3kb2bgy1lpn61y34zl7mjgrjb4lb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBiYXR0ZXJ5IGNoYXJnaW5nIHRocmVzaG9sZCAvIGNoYXJnaW5nIGxpbWl0IC8gY2hhcmdpbmcgbW9kZVxuQmF0dGVyeSBIZWFsdGggQ2hhcmdpbmc6IEFuIGV4dGVuc2lvbiB0byBtYXhpbWl6ZSB0aGUgYmF0dGVyeSBsaWZlIG9mIGxhcHRvcHMgYnkgc2V0dGluZyB0aGVpciBjaGFyZ2luZyB0aHJlc2hvbGQgb3IgbW9kZXMuXG5cbkNvbXBhdGlibGUgd2l0aFxuLSBBc3VzXG4tIExHXG4tIFNhbXN1bmdcbi0gU29ueVxuLSBIdWF3ZWlcbi0gVG9zaGliYVxuLSBTeXN0ZW03NlxuLSBMZW5vdm8gKElkZWFwYWQsIExlZ2lvbilcbi0gVGhpbmtwYWRcbi0gUGFuYXNvbmljXG4tIEFjZXIgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gTVNJIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFR1eGVkbyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBTbGltYm9vayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBUdXhlZG8gSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFhNRyBJbnRlbFFDNzEgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gRWx1a3Ryb25pY3MgSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFB1cmlzbSBMaWJyZW0gKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gR2lnYWJ5dGUgQWVyby9Bb3J1cyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBEZWxsIChkZXBlbmRlbmNpZXM6IGN1c3RvbSBwYWNrYWdlIGxpYnNtYmlvcylcbi0gRGVsbCAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSBEZWxsIENvbW1hbmQgQ2VudGVyKVxuLSBBcHBsZSBNYWNib29rIEludGVsLXNlcmllcyBjaGlwIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIEFwcGxlIE1hY2Jvb2sgTS1zZXJpZXMgY2hpcCAoZGVwZW5kZW5jaWVzOiBjdXN0b20ga2VybmVsKVxuLSBSYXplciAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSByYXplci1jbGkpXG4tIEZyYW1ld29yayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuXG5Ob3QgYWxsIG1vZGVscyBhcmUgY29tYXB0aWJsZS4gUGxlYXNlIHJlYWQgYWJvdXQgdGhlIGNvbXBhdGliaWxpdHkgYW5kIGRlcGVuZGVuY2llcyBvZiB5b3VyIGRldmljZSBvbiBnaXRodWIgbGluayBiZWxvdy5cblxuaHR0cHM6Ly9tYW5pYWN4LmdpdGh1Yi5pby9CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZy8iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJCYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZ0BtYW5pYWN4LmdpdGh1Yi5jb20iLAogICJuYW1lIjogIkJhdHRlcnkgSGVhbHRoIENoYXJnaW5nIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYW5pYWN4L0JhdHRlcnktSGVhbHRoLUNoYXJnaW5nIiwKICAidXVpZCI6ICJCYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZ0BtYW5pYWN4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDgKfQ=="}
+    "42": {"version": "50", "sha256": "0dnmlhhy0dzwgb9snz6gc3m5p5avij3f73m2645n0bx917p3az2a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBiYXR0ZXJ5IGNoYXJnaW5nIHRocmVzaG9sZCAvIGNoYXJnaW5nIGxpbWl0IC8gY2hhcmdpbmcgbW9kZVxuQmF0dGVyeSBIZWFsdGggQ2hhcmdpbmc6IEFuIGV4dGVuc2lvbiB0byBtYXhpbWl6ZSB0aGUgYmF0dGVyeSBsaWZlIG9mIGxhcHRvcHMgYnkgc2V0dGluZyB0aGVpciBjaGFyZ2luZyB0aHJlc2hvbGQgb3IgbW9kZXMuXG5cbkNvbXBhdGlibGUgd2l0aFxuLSBBc3VzXG4tIExHXG4tIFNhbXN1bmdcbi0gU29ueVxuLSBIdWF3ZWlcbi0gVG9zaGliYVxuLSBTeXN0ZW03NlxuLSBMZW5vdm8gKElkZWFwYWQsIExlZ2lvbilcbi0gVGhpbmtwYWRcbi0gUGFuYXNvbmljXG4tIEFjZXIgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gTVNJIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFR1eGVkbyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBTbGltYm9vayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBUdXhlZG8gSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFhNRyBJbnRlbFFDNzEgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gRWx1a3Ryb25pY3MgSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFB1cmlzbSBMaWJyZW0gKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gR2lnYWJ5dGUgQWVyby9Bb3J1cyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBEZWxsIChkZXBlbmRlbmNpZXM6IGN1c3RvbSBwYWNrYWdlIGxpYnNtYmlvcylcbi0gRGVsbCAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSBEZWxsIENvbW1hbmQgQ2VudGVyKVxuLSBBcHBsZSBNYWNib29rIEludGVsLXNlcmllcyBjaGlwIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIEFwcGxlIE1hY2Jvb2sgTS1zZXJpZXMgY2hpcCAoZGVwZW5kZW5jaWVzOiBjdXN0b20ga2VybmVsKVxuLSBSYXplciAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSByYXplci1jbGkpXG4tIEZyYW1ld29yayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuXG5Ob3QgYWxsIG1vZGVscyBhcmUgY29tYXB0aWJsZS4gUGxlYXNlIHJlYWQgYWJvdXQgdGhlIGNvbXBhdGliaWxpdHkgYW5kIGRlcGVuZGVuY2llcyBvZiB5b3VyIGRldmljZSBvbiBnaXRodWIgbGluayBiZWxvdy5cblxuaHR0cHM6Ly9tYW5pYWN4LmdpdGh1Yi5pby9CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZy8iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJCYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZ0BtYW5pYWN4LmdpdGh1Yi5jb20iLAogICJuYW1lIjogIkJhdHRlcnkgSGVhbHRoIENoYXJnaW5nIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hbmlhY3gvQmF0dGVyeS1IZWFsdGgtQ2hhcmdpbmciLAogICJ1dWlkIjogIkJhdHRlcnktSGVhbHRoLUNoYXJnaW5nQG1hbmlhY3guZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MAp9"},
+    "43": {"version": "50", "sha256": "0dnmlhhy0dzwgb9snz6gc3m5p5avij3f73m2645n0bx917p3az2a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBiYXR0ZXJ5IGNoYXJnaW5nIHRocmVzaG9sZCAvIGNoYXJnaW5nIGxpbWl0IC8gY2hhcmdpbmcgbW9kZVxuQmF0dGVyeSBIZWFsdGggQ2hhcmdpbmc6IEFuIGV4dGVuc2lvbiB0byBtYXhpbWl6ZSB0aGUgYmF0dGVyeSBsaWZlIG9mIGxhcHRvcHMgYnkgc2V0dGluZyB0aGVpciBjaGFyZ2luZyB0aHJlc2hvbGQgb3IgbW9kZXMuXG5cbkNvbXBhdGlibGUgd2l0aFxuLSBBc3VzXG4tIExHXG4tIFNhbXN1bmdcbi0gU29ueVxuLSBIdWF3ZWlcbi0gVG9zaGliYVxuLSBTeXN0ZW03NlxuLSBMZW5vdm8gKElkZWFwYWQsIExlZ2lvbilcbi0gVGhpbmtwYWRcbi0gUGFuYXNvbmljXG4tIEFjZXIgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gTVNJIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFR1eGVkbyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBTbGltYm9vayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBUdXhlZG8gSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFhNRyBJbnRlbFFDNzEgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gRWx1a3Ryb25pY3MgSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFB1cmlzbSBMaWJyZW0gKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gR2lnYWJ5dGUgQWVyby9Bb3J1cyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBEZWxsIChkZXBlbmRlbmNpZXM6IGN1c3RvbSBwYWNrYWdlIGxpYnNtYmlvcylcbi0gRGVsbCAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSBEZWxsIENvbW1hbmQgQ2VudGVyKVxuLSBBcHBsZSBNYWNib29rIEludGVsLXNlcmllcyBjaGlwIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIEFwcGxlIE1hY2Jvb2sgTS1zZXJpZXMgY2hpcCAoZGVwZW5kZW5jaWVzOiBjdXN0b20ga2VybmVsKVxuLSBSYXplciAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSByYXplci1jbGkpXG4tIEZyYW1ld29yayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuXG5Ob3QgYWxsIG1vZGVscyBhcmUgY29tYXB0aWJsZS4gUGxlYXNlIHJlYWQgYWJvdXQgdGhlIGNvbXBhdGliaWxpdHkgYW5kIGRlcGVuZGVuY2llcyBvZiB5b3VyIGRldmljZSBvbiBnaXRodWIgbGluayBiZWxvdy5cblxuaHR0cHM6Ly9tYW5pYWN4LmdpdGh1Yi5pby9CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZy8iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJCYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZ0BtYW5pYWN4LmdpdGh1Yi5jb20iLAogICJuYW1lIjogIkJhdHRlcnkgSGVhbHRoIENoYXJnaW5nIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hbmlhY3gvQmF0dGVyeS1IZWFsdGgtQ2hhcmdpbmciLAogICJ1dWlkIjogIkJhdHRlcnktSGVhbHRoLUNoYXJnaW5nQG1hbmlhY3guZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MAp9"},
+    "44": {"version": "50", "sha256": "0dnmlhhy0dzwgb9snz6gc3m5p5avij3f73m2645n0bx917p3az2a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBiYXR0ZXJ5IGNoYXJnaW5nIHRocmVzaG9sZCAvIGNoYXJnaW5nIGxpbWl0IC8gY2hhcmdpbmcgbW9kZVxuQmF0dGVyeSBIZWFsdGggQ2hhcmdpbmc6IEFuIGV4dGVuc2lvbiB0byBtYXhpbWl6ZSB0aGUgYmF0dGVyeSBsaWZlIG9mIGxhcHRvcHMgYnkgc2V0dGluZyB0aGVpciBjaGFyZ2luZyB0aHJlc2hvbGQgb3IgbW9kZXMuXG5cbkNvbXBhdGlibGUgd2l0aFxuLSBBc3VzXG4tIExHXG4tIFNhbXN1bmdcbi0gU29ueVxuLSBIdWF3ZWlcbi0gVG9zaGliYVxuLSBTeXN0ZW03NlxuLSBMZW5vdm8gKElkZWFwYWQsIExlZ2lvbilcbi0gVGhpbmtwYWRcbi0gUGFuYXNvbmljXG4tIEFjZXIgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gTVNJIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFR1eGVkbyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBTbGltYm9vayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBUdXhlZG8gSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFhNRyBJbnRlbFFDNzEgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gRWx1a3Ryb25pY3MgSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFB1cmlzbSBMaWJyZW0gKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gR2lnYWJ5dGUgQWVyby9Bb3J1cyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBEZWxsIChkZXBlbmRlbmNpZXM6IGN1c3RvbSBwYWNrYWdlIGxpYnNtYmlvcylcbi0gRGVsbCAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSBEZWxsIENvbW1hbmQgQ2VudGVyKVxuLSBBcHBsZSBNYWNib29rIEludGVsLXNlcmllcyBjaGlwIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIEFwcGxlIE1hY2Jvb2sgTS1zZXJpZXMgY2hpcCAoZGVwZW5kZW5jaWVzOiBjdXN0b20ga2VybmVsKVxuLSBSYXplciAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSByYXplci1jbGkpXG4tIEZyYW1ld29yayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuXG5Ob3QgYWxsIG1vZGVscyBhcmUgY29tYXB0aWJsZS4gUGxlYXNlIHJlYWQgYWJvdXQgdGhlIGNvbXBhdGliaWxpdHkgYW5kIGRlcGVuZGVuY2llcyBvZiB5b3VyIGRldmljZSBvbiBnaXRodWIgbGluayBiZWxvdy5cblxuaHR0cHM6Ly9tYW5pYWN4LmdpdGh1Yi5pby9CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZy8iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJCYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZ0BtYW5pYWN4LmdpdGh1Yi5jb20iLAogICJuYW1lIjogIkJhdHRlcnkgSGVhbHRoIENoYXJnaW5nIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hbmlhY3gvQmF0dGVyeS1IZWFsdGgtQ2hhcmdpbmciLAogICJ1dWlkIjogIkJhdHRlcnktSGVhbHRoLUNoYXJnaW5nQG1hbmlhY3guZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MAp9"},
+    "45": {"version": "51", "sha256": "153r65965xrqwxf65qrnkijix5x5cl78wp1l60jvv9kb3yj616a1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBiYXR0ZXJ5IGNoYXJnaW5nIHRocmVzaG9sZCAvIGNoYXJnaW5nIGxpbWl0IC8gY2hhcmdpbmcgbW9kZVxuQmF0dGVyeSBIZWFsdGggQ2hhcmdpbmc6IEFuIGV4dGVuc2lvbiB0byBtYXhpbWl6ZSB0aGUgYmF0dGVyeSBsaWZlIG9mIGxhcHRvcHMgYnkgc2V0dGluZyB0aGVpciBjaGFyZ2luZyB0aHJlc2hvbGQgb3IgbW9kZXMuXG5cbkNvbXBhdGlibGUgd2l0aFxuLSBBc3VzXG4tIExHXG4tIFNhbXN1bmdcbi0gU29ueVxuLSBIdWF3ZWlcbi0gVG9zaGliYVxuLSBTeXN0ZW03NlxuLSBMZW5vdm8gKElkZWFwYWQsIExlZ2lvbilcbi0gVGhpbmtwYWRcbi0gUGFuYXNvbmljXG4tIEFjZXIgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gTVNJIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFR1eGVkbyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBTbGltYm9vayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBUdXhlZG8gSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFhNRyBJbnRlbFFDNzEgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gRWx1a3Ryb25pY3MgSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFB1cmlzbSBMaWJyZW0gKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gR2lnYWJ5dGUgQWVyby9Bb3J1cyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBEZWxsIChkZXBlbmRlbmNpZXM6IGN1c3RvbSBwYWNrYWdlIGxpYnNtYmlvcylcbi0gRGVsbCAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSBEZWxsIENvbW1hbmQgQ2VudGVyKVxuLSBBcHBsZSBNYWNib29rIEludGVsLXNlcmllcyBjaGlwIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIEFwcGxlIE1hY2Jvb2sgTS1zZXJpZXMgY2hpcCAoZGVwZW5kZW5jaWVzOiBjdXN0b20ga2VybmVsKVxuLSBSYXplciAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSByYXplci1jbGkpXG4tIEZyYW1ld29yayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuXG5Ob3QgYWxsIG1vZGVscyBhcmUgY29tYXB0aWJsZS4gUGxlYXNlIHJlYWQgYWJvdXQgdGhlIGNvbXBhdGliaWxpdHkgYW5kIGRlcGVuZGVuY2llcyBvZiB5b3VyIGRldmljZSBvbiBnaXRodWIgbGluayBiZWxvdy5cblxuaHR0cHM6Ly9tYW5pYWN4LmdpdGh1Yi5pby9CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZy8iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJCYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZ0BtYW5pYWN4LmdpdGh1Yi5jb20iLAogICJuYW1lIjogIkJhdHRlcnkgSGVhbHRoIENoYXJnaW5nIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFuaWFjeC9CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZyIsCiAgInV1aWQiOiAiQmF0dGVyeS1IZWFsdGgtQ2hhcmdpbmdAbWFuaWFjeC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUxCn0="}
   }}
 , {"uuid": "oneclickbios@sao.studio", "name": "One-Click BIOS", "pname": "one-click-bios", "description": "Restart into firmware settings directly from OS\n\nHold Shift and click the power menu button to trigger restart into firmware settings.\n\nAny suggestion is appreciated on GitHub!", "link": "https://extensions.gnome.org/extension/5733/one-click-bios/", "shell_version_map": {
     "43": {"version": "5", "sha256": "07r9vspq35s632j0pzywrhb8islb9fq49dv0a1s6yvp23d7bzni7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RhcnQgaW50byBmaXJtd2FyZSBzZXR0aW5ncyBkaXJlY3RseSBmcm9tIE9TXG5cbkhvbGQgU2hpZnQgYW5kIGNsaWNrIHRoZSBwb3dlciBtZW51IGJ1dHRvbiB0byB0cmlnZ2VyIHJlc3RhcnQgaW50byBmaXJtd2FyZSBzZXR0aW5ncy5cblxuQW55IHN1Z2dlc3Rpb24gaXMgYXBwcmVjaWF0ZWQgb24gR2l0SHViISIsCiAgIm5hbWUiOiAiT25lLUNsaWNrIEJJT1MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbTFuaWNydXNoZXIvb25lLWNsaWNrLWJpb3MiLAogICJ1dWlkIjogIm9uZWNsaWNrYmlvc0BzYW8uc3R1ZGlvIiwKICAidmVyc2lvbiI6IDUKfQ=="}
@@ -5578,7 +5598,8 @@
     "44": {"version": "3", "sha256": "0b1qmrnnzngazbq5iylxa0icnxbhl6qzx3gini77nif79rb7pgsr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCBXaWZpIiwKICAibmFtZSI6ICJXaWZpIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vYWZ6YWwud2Vic2l0ZSIsCiAgInV1aWQiOiAid2lmaVN3aXRjaGVyQGFmemFsLndlYnNpdGUiLAogICJ2ZXJzaW9uIjogMwp9"}
   }}
 , {"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=="}
+    "42": {"version": "2", "sha256": "1v27biy9psxiv9fkgp83p9rqbwid2rqdwdc6f5rl4mnhj0fn8p8k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYWxsIHRyYXkgaWNvbnMgaW4gZ3JheXNjYWxlIiwKICAibmFtZSI6ICJEZXNhdHVyYXRlZCBUcmF5IEljb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NSMTMzNy9kZXNhdHVyYXRlZC10cmF5LWljb25zIiwKICAidXVpZCI6ICJkZXNhdHVyYXRlZC10cmF5LWljb25zQGNyMTMzNy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="},
+    "45": {"version": "3", "sha256": "1p7737pmrlvj7wnw0w798s92s8m8g4l1ljqlyvsj60nxyb39rmqv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYWxsIHRyYXkgaWNvbnMgaW4gZ3JheXNjYWxlIiwKICAibmFtZSI6ICJEZXNhdHVyYXRlZCBUcmF5IEljb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NSMTMzNy9kZXNhdHVyYXRlZC10cmF5LWljb25zIiwKICAidXVpZCI6ICJkZXNhdHVyYXRlZC10cmF5LWljb25zQGNyMTMzNy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}
   }}
 , {"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=="},
@@ -5620,11 +5641,11 @@
     "43": {"version": "1", "sha256": "0m8zc9s45g3xwjzsaacxkd0njni8plzgm8mpnhmfms1g931p2v9m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImRpc2FibGVzIHRha2Ugc2NyZWVuc2hvdCBmcm9tIGdub21lLXdpbmRvd3MncyBjb250ZXh0IG1lbnUiLAogICJuYW1lIjogIkhpZGUgIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJkaXNhYmxlLXRha2Utc2NyZWVuc2hvdEBhbGktYWtpbC5nbXguZGUiLAogICJ2ZXJzaW9uIjogMQp9"}
   }}
 , {"uuid": "disk-usage@0ct0puce.com", "name": "Disk Usage", "pname": "disk-usage", "description": "Label in top panel that display the the percentage of disk usage of the biggest disk installed on the system.", "link": "https://extensions.gnome.org/extension/5805/disk-usage/", "shell_version_map": {
-    "40": {"version": "11", "sha256": "1xi2v97lr78spndpys17jca3hlsgbsa4v9lwmdpwmqax4jydl2il", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlcGVuZGVuY2llcyI6IFsKICAgICJjbHV0dGVyLTEuMCIKICBdLAogICJkZXNjcmlwdGlvbiI6ICJMYWJlbCBpbiB0b3AgcGFuZWwgdGhhdCBkaXNwbGF5IHRoZSB0aGUgcGVyY2VudGFnZSBvZiBkaXNrIHVzYWdlIG9mIHRoZSBiaWdnZXN0IGRpc2sgaW5zdGFsbGVkIG9uIHRoZSBzeXN0ZW0uIiwKICAibmFtZSI6ICJEaXNrIFVzYWdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS8wQ1QwUFVDRS1MT0cvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRpc2stdXNhZ2UiLAogICJ1dWlkIjogImRpc2stdXNhZ2VAMGN0MHB1Y2UuY29tIiwKICAidmVyc2lvbiI6IDExCn0="},
-    "41": {"version": "11", "sha256": "1xi2v97lr78spndpys17jca3hlsgbsa4v9lwmdpwmqax4jydl2il", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlcGVuZGVuY2llcyI6IFsKICAgICJjbHV0dGVyLTEuMCIKICBdLAogICJkZXNjcmlwdGlvbiI6ICJMYWJlbCBpbiB0b3AgcGFuZWwgdGhhdCBkaXNwbGF5IHRoZSB0aGUgcGVyY2VudGFnZSBvZiBkaXNrIHVzYWdlIG9mIHRoZSBiaWdnZXN0IGRpc2sgaW5zdGFsbGVkIG9uIHRoZSBzeXN0ZW0uIiwKICAibmFtZSI6ICJEaXNrIFVzYWdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS8wQ1QwUFVDRS1MT0cvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRpc2stdXNhZ2UiLAogICJ1dWlkIjogImRpc2stdXNhZ2VAMGN0MHB1Y2UuY29tIiwKICAidmVyc2lvbiI6IDExCn0="},
-    "42": {"version": "11", "sha256": "1xi2v97lr78spndpys17jca3hlsgbsa4v9lwmdpwmqax4jydl2il", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlcGVuZGVuY2llcyI6IFsKICAgICJjbHV0dGVyLTEuMCIKICBdLAogICJkZXNjcmlwdGlvbiI6ICJMYWJlbCBpbiB0b3AgcGFuZWwgdGhhdCBkaXNwbGF5IHRoZSB0aGUgcGVyY2VudGFnZSBvZiBkaXNrIHVzYWdlIG9mIHRoZSBiaWdnZXN0IGRpc2sgaW5zdGFsbGVkIG9uIHRoZSBzeXN0ZW0uIiwKICAibmFtZSI6ICJEaXNrIFVzYWdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS8wQ1QwUFVDRS1MT0cvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRpc2stdXNhZ2UiLAogICJ1dWlkIjogImRpc2stdXNhZ2VAMGN0MHB1Y2UuY29tIiwKICAidmVyc2lvbiI6IDExCn0="},
-    "43": {"version": "11", "sha256": "1xi2v97lr78spndpys17jca3hlsgbsa4v9lwmdpwmqax4jydl2il", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlcGVuZGVuY2llcyI6IFsKICAgICJjbHV0dGVyLTEuMCIKICBdLAogICJkZXNjcmlwdGlvbiI6ICJMYWJlbCBpbiB0b3AgcGFuZWwgdGhhdCBkaXNwbGF5IHRoZSB0aGUgcGVyY2VudGFnZSBvZiBkaXNrIHVzYWdlIG9mIHRoZSBiaWdnZXN0IGRpc2sgaW5zdGFsbGVkIG9uIHRoZSBzeXN0ZW0uIiwKICAibmFtZSI6ICJEaXNrIFVzYWdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS8wQ1QwUFVDRS1MT0cvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRpc2stdXNhZ2UiLAogICJ1dWlkIjogImRpc2stdXNhZ2VAMGN0MHB1Y2UuY29tIiwKICAidmVyc2lvbiI6IDExCn0="},
-    "44": {"version": "11", "sha256": "1xi2v97lr78spndpys17jca3hlsgbsa4v9lwmdpwmqax4jydl2il", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlcGVuZGVuY2llcyI6IFsKICAgICJjbHV0dGVyLTEuMCIKICBdLAogICJkZXNjcmlwdGlvbiI6ICJMYWJlbCBpbiB0b3AgcGFuZWwgdGhhdCBkaXNwbGF5IHRoZSB0aGUgcGVyY2VudGFnZSBvZiBkaXNrIHVzYWdlIG9mIHRoZSBiaWdnZXN0IGRpc2sgaW5zdGFsbGVkIG9uIHRoZSBzeXN0ZW0uIiwKICAibmFtZSI6ICJEaXNrIFVzYWdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS8wQ1QwUFVDRS1MT0cvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRpc2stdXNhZ2UiLAogICJ1dWlkIjogImRpc2stdXNhZ2VAMGN0MHB1Y2UuY29tIiwKICAidmVyc2lvbiI6IDExCn0="},
+    "40": {"version": "14", "sha256": "1gbhdqn1qkhawn6dds885nc1nrbfjblzn5x77vrlr7szfvjkmgpq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlcGVuZGVuY2llcyI6IFsKICAgICJjbHV0dGVyLTEuMCIKICBdLAogICJkZXNjcmlwdGlvbiI6ICJMYWJlbCBpbiB0b3AgcGFuZWwgdGhhdCBkaXNwbGF5IHRoZSB0aGUgcGVyY2VudGFnZSBvZiBkaXNrIHVzYWdlIG9mIHRoZSBiaWdnZXN0IGRpc2sgaW5zdGFsbGVkIG9uIHRoZSBzeXN0ZW0uIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJ0aW50aW5ldG1pbG91IgogIH0sCiAgIm5hbWUiOiAiRGlzayBVc2FnZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vMENUMFBVQ0UtTE9HL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNrLXVzYWdlIiwKICAidXVpZCI6ICJkaXNrLXVzYWdlQDBjdDBwdWNlLmNvbSIsCiAgInZlcnNpb24iOiAxNAp9"},
+    "41": {"version": "14", "sha256": "1gbhdqn1qkhawn6dds885nc1nrbfjblzn5x77vrlr7szfvjkmgpq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlcGVuZGVuY2llcyI6IFsKICAgICJjbHV0dGVyLTEuMCIKICBdLAogICJkZXNjcmlwdGlvbiI6ICJMYWJlbCBpbiB0b3AgcGFuZWwgdGhhdCBkaXNwbGF5IHRoZSB0aGUgcGVyY2VudGFnZSBvZiBkaXNrIHVzYWdlIG9mIHRoZSBiaWdnZXN0IGRpc2sgaW5zdGFsbGVkIG9uIHRoZSBzeXN0ZW0uIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJ0aW50aW5ldG1pbG91IgogIH0sCiAgIm5hbWUiOiAiRGlzayBVc2FnZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vMENUMFBVQ0UtTE9HL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNrLXVzYWdlIiwKICAidXVpZCI6ICJkaXNrLXVzYWdlQDBjdDBwdWNlLmNvbSIsCiAgInZlcnNpb24iOiAxNAp9"},
+    "42": {"version": "14", "sha256": "1gbhdqn1qkhawn6dds885nc1nrbfjblzn5x77vrlr7szfvjkmgpq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlcGVuZGVuY2llcyI6IFsKICAgICJjbHV0dGVyLTEuMCIKICBdLAogICJkZXNjcmlwdGlvbiI6ICJMYWJlbCBpbiB0b3AgcGFuZWwgdGhhdCBkaXNwbGF5IHRoZSB0aGUgcGVyY2VudGFnZSBvZiBkaXNrIHVzYWdlIG9mIHRoZSBiaWdnZXN0IGRpc2sgaW5zdGFsbGVkIG9uIHRoZSBzeXN0ZW0uIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJ0aW50aW5ldG1pbG91IgogIH0sCiAgIm5hbWUiOiAiRGlzayBVc2FnZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vMENUMFBVQ0UtTE9HL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNrLXVzYWdlIiwKICAidXVpZCI6ICJkaXNrLXVzYWdlQDBjdDBwdWNlLmNvbSIsCiAgInZlcnNpb24iOiAxNAp9"},
+    "43": {"version": "14", "sha256": "1gbhdqn1qkhawn6dds885nc1nrbfjblzn5x77vrlr7szfvjkmgpq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlcGVuZGVuY2llcyI6IFsKICAgICJjbHV0dGVyLTEuMCIKICBdLAogICJkZXNjcmlwdGlvbiI6ICJMYWJlbCBpbiB0b3AgcGFuZWwgdGhhdCBkaXNwbGF5IHRoZSB0aGUgcGVyY2VudGFnZSBvZiBkaXNrIHVzYWdlIG9mIHRoZSBiaWdnZXN0IGRpc2sgaW5zdGFsbGVkIG9uIHRoZSBzeXN0ZW0uIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJ0aW50aW5ldG1pbG91IgogIH0sCiAgIm5hbWUiOiAiRGlzayBVc2FnZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vMENUMFBVQ0UtTE9HL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNrLXVzYWdlIiwKICAidXVpZCI6ICJkaXNrLXVzYWdlQDBjdDBwdWNlLmNvbSIsCiAgInZlcnNpb24iOiAxNAp9"},
+    "44": {"version": "14", "sha256": "1gbhdqn1qkhawn6dds885nc1nrbfjblzn5x77vrlr7szfvjkmgpq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlcGVuZGVuY2llcyI6IFsKICAgICJjbHV0dGVyLTEuMCIKICBdLAogICJkZXNjcmlwdGlvbiI6ICJMYWJlbCBpbiB0b3AgcGFuZWwgdGhhdCBkaXNwbGF5IHRoZSB0aGUgcGVyY2VudGFnZSBvZiBkaXNrIHVzYWdlIG9mIHRoZSBiaWdnZXN0IGRpc2sgaW5zdGFsbGVkIG9uIHRoZSBzeXN0ZW0uIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJ0aW50aW5ldG1pbG91IgogIH0sCiAgIm5hbWUiOiAiRGlzayBVc2FnZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vMENUMFBVQ0UtTE9HL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNrLXVzYWdlIiwKICAidXVpZCI6ICJkaXNrLXVzYWdlQDBjdDBwdWNlLmNvbSIsCiAgInZlcnNpb24iOiAxNAp9"},
     "45": {"version": "13", "sha256": "0j9h304ni3dfj790lvdqi6n5w3ay27mjd9b0ifjjsz0kvygz2rjj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlcGVuZGVuY2llcyI6IFsKICAgICJjbHV0dGVyLTEuMCIKICBdLAogICJkZXNjcmlwdGlvbiI6ICJMYWJlbCBpbiB0b3AgcGFuZWwgdGhhdCBkaXNwbGF5IHRoZSB0aGUgcGVyY2VudGFnZSBvZiBkaXNrIHVzYWdlIG9mIHRoZSBiaWdnZXN0IGRpc2sgaW5zdGFsbGVkIG9uIHRoZSBzeXN0ZW0uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGlzay11c2FnZUAwY3QwcHVjZS5jb20iLAogICJuYW1lIjogIkRpc2sgVXNhZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vMENUMFBVQ0UtTE9HL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNrLXVzYWdlIiwKICAidXVpZCI6ICJkaXNrLXVzYWdlQDBjdDBwdWNlLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}
   }}
 , {"uuid": "snx-vpn-indicator@diegodario88.github.io", "name": "SNX VPN Indicator", "pname": "snx-vpn-indicator", "description": "This extension adds VPN functionality to the quickSettings by integrating the SSL Network Extender (SNX CLI) client", "link": "https://extensions.gnome.org/extension/5808/snx-vpn-indicator/", "shell_version_map": {
@@ -5642,7 +5663,7 @@
     "42": {"version": "6", "sha256": "1mdyigd5dn324ivb5bgypiq4gibjsbzm0rkcml9hi699a609736k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiSGVhZHNldENvbnRyb2wiLAogICJuYW1lIjogIkhlYWRzZXRDb250cm9sIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkhlYWRzZXRDb250cm9sIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2hyaXNMYXVpbmdlcjc3L2dub21lLXNoZWxsLWV4dGVuc2lvbi1IZWFkc2V0Q29udHJvbCIsCiAgInV1aWQiOiAiSGVhZHNldENvbnRyb2xAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiA2Cn0="},
     "43": {"version": "15", "sha256": "04as61msjqq359r1qm0d7dw7df2bcngx67pmwva8flyvzi62iavi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiSGVhZHNldENvbnRyb2wiLAogICJuYW1lIjogIkhlYWRzZXRDb250cm9sIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkhlYWRzZXRDb250cm9sIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLUhlYWRzZXRDb250cm9sIiwKICAidXVpZCI6ICJIZWFkc2V0Q29udHJvbEBsYXVpbmdlci1jbGFuLmRlIiwKICAidmVyc2lvbiI6IDE1Cn0="},
     "44": {"version": "23", "sha256": "00clk8w8p1sxsqpmwsmlgki2vvx9cjlvnzsrn9j69n1img4vbiwh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiSGVhZHNldENvbnRyb2wiLAogICJuYW1lIjogIkhlYWRzZXRDb250cm9sIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkhlYWRzZXRDb250cm9sIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9nbm9tZS1zaGVsbC1leHRlbnNpb24tSGVhZHNldENvbnRyb2wiLAogICJ1dWlkIjogIkhlYWRzZXRDb250cm9sQGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMjMKfQ=="},
-    "45": {"version": "24", "sha256": "0yqqak6s2vhz6c870j5p8h76n3d8sw24i358amzkcprnhz414azx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIkhlYWRzZXRDb250cm9sIiwKICAibmFtZSI6ICJIZWFkc2V0Q29udHJvbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5IZWFkc2V0Q29udHJvbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLUhlYWRzZXRDb250cm9sIiwKICAidXVpZCI6ICJIZWFkc2V0Q29udHJvbEBsYXVpbmdlci1jbGFuLmRlIiwKICAidmVyc2lvbiI6IDI0Cn0="}
+    "45": {"version": "25", "sha256": "0wanclwsflg1p64sj5v6gq6hajq02qjgx3jc9pszyk8sgl60p64d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIkhlYWRzZXRDb250cm9sIiwKICAibmFtZSI6ICJIZWFkc2V0Q29udHJvbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5IZWFkc2V0Q29udHJvbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLUhlYWRzZXRDb250cm9sIiwKICAidXVpZCI6ICJIZWFkc2V0Q29udHJvbEBsYXVpbmdlci1jbGFuLmRlIiwKICAidmVyc2lvbiI6IDI1LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDUuMCIKfQ=="}
   }}
 , {"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"},
@@ -5672,7 +5693,7 @@
     "44": {"version": "8", "sha256": "0fkphjqxnm2c6vg90w3pi36pnc39ffgav10gc0mxdmlq9xqp3q4c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk92ZXJyaWRlIHRoZSBzdHlsaW5nLiAgSXQgbWFrZXMgZ25vbWUtc2hlbGwgZGVmYXVsdCB0aGVtZSBmaXQgdG8gVWJ1bnR1LiIsCiAgIm5hbWUiOiAiQWRtaXNzaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29yYml0Y29ycmVjdG9uL1ZhbmlsbGEvdHJlZS9leHBlcmltZW50YWwyIiwKICAidXVpZCI6ICJhZG1pc3Npb25AZ2l0aHViLmNvbS5vcmJpdGNvcnJlY3Rpb24iLAogICJ2ZXJzaW9uIjogOAp9"},
     "45": {"version": "10", "sha256": "1glyd6xf4q3h1945c4y03v44js3vcqi5g5mbc9n91wwys0nnb7i3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk92ZXJyaWRlIHRoZSBzdHlsaW5nLiAgSXQgbWFrZXMgZ25vbWUtc2hlbGwgZGVmYXVsdCB0aGVtZSBmaXQgdG8gVWJ1bnR1LiIsCiAgIm5hbWUiOiAiQWRtaXNzaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJhZG1pc3Npb25AZ2l0aHViLmNvbS5vcmJpdGNvcnJlY3Rpb24iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}
   }}
-, {"uuid": "enhunceactivitiese@github.com.orbitcorrection", "name": "Activities Icon &  Label", "pname": "enhunce-activities", "description": "Add an icon to the Activities button.  \nbased on GNOME gnome-shell and RHEL gnome-shell patch", "link": "https://extensions.gnome.org/extension/5847/enhunce-activities/", "shell_version_map": {
+, {"uuid": "enhunceactivitiese@github.com.orbitcorrection", "name": "Activities Icon & Label", "pname": "enhunce-activities", "description": "Add an icon to the Activities button.  \nbased on GNOME gnome-shell and RHEL gnome-shell patch", "link": "https://extensions.gnome.org/extension/5847/enhunce-activities/", "shell_version_map": {
     "40": {"version": "9", "sha256": "15bl13jhxnrr1q64d9p0rh2scy3fx4bwh36n6p0dpry8dgzp8qk9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhbiBpY29uIHRvIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbi4gIFxuYmFzZWQgb24gR05PTUUgZ25vbWUtc2hlbGwgYW5kIFJIRUwgZ25vbWUtc2hlbGwgcGF0Y2giLAogICJuYW1lIjogIkFjdGl2aXRpZXMgSWNvbiAmICBMYWJlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3JiaXRjb3JyZWN0b24vZW5odW5jZS1hY3Rpdml0ZXMvdHJlZS9leHBlcmltZW50YWwiLAogICJ1dWlkIjogImVuaHVuY2VhY3Rpdml0aWVzZUBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiA5Cn0="},
     "41": {"version": "9", "sha256": "15bl13jhxnrr1q64d9p0rh2scy3fx4bwh36n6p0dpry8dgzp8qk9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhbiBpY29uIHRvIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbi4gIFxuYmFzZWQgb24gR05PTUUgZ25vbWUtc2hlbGwgYW5kIFJIRUwgZ25vbWUtc2hlbGwgcGF0Y2giLAogICJuYW1lIjogIkFjdGl2aXRpZXMgSWNvbiAmICBMYWJlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3JiaXRjb3JyZWN0b24vZW5odW5jZS1hY3Rpdml0ZXMvdHJlZS9leHBlcmltZW50YWwiLAogICJ1dWlkIjogImVuaHVuY2VhY3Rpdml0aWVzZUBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiA5Cn0="},
     "42": {"version": "9", "sha256": "15bl13jhxnrr1q64d9p0rh2scy3fx4bwh36n6p0dpry8dgzp8qk9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhbiBpY29uIHRvIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbi4gIFxuYmFzZWQgb24gR05PTUUgZ25vbWUtc2hlbGwgYW5kIFJIRUwgZ25vbWUtc2hlbGwgcGF0Y2giLAogICJuYW1lIjogIkFjdGl2aXRpZXMgSWNvbiAmICBMYWJlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3JiaXRjb3JyZWN0b24vZW5odW5jZS1hY3Rpdml0ZXMvdHJlZS9leHBlcmltZW50YWwiLAogICJ1dWlkIjogImVuaHVuY2VhY3Rpdml0aWVzZUBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiA5Cn0="},
@@ -5684,13 +5705,13 @@
     "44": {"version": "8", "sha256": "1i7svmc72mazrm3sqricb8ys53gj2axzgwwx152x22fd8x372g2b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYSBub3RpZmljYXRpb24gd2l0aCBhIGNob3NlbiBmcmVxdWVuY3kiLAogICJuYW1lIjogIkRlamF2aWV3IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlamF2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZWRnaWVpbnNvY2tzL2RlamF2aWV3IiwKICAidXVpZCI6ICJkZWphdmlld0BoZWRnaWUudGVjaCIsCiAgInZlcnNpb24iOiA4Cn0="},
     "45": {"version": "10", "sha256": "0waqx2pgrwqj9s9p2q126f5srwrvqf7qfikbijwvcfwqhr61hxx2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYSBub3RpZmljYXRpb24gd2l0aCBhIGNob3NlbiBmcmVxdWVuY3kiLAogICJuYW1lIjogIkRlamF2aWV3IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlamF2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlZGdpZWluc29ja3MvZGVqYXZpZXciLAogICJ1dWlkIjogImRlamF2aWV3QGhlZGdpZS50ZWNoIiwKICAidmVyc2lvbiI6IDEwCn0="}
   }}
-, {"uuid": "showappsattop@github.com.orbitcorrection", "name": "Show Apps at Top", "pname": "show-apps-at-top", "description": "Put show apps icon at top of dash", "link": "https://extensions.gnome.org/extension/5853/show-apps-at-top/", "shell_version_map": {
+, {"uuid": "showappsattop@github.com.orbitcorrection", "name": "Apps at Top", "pname": "show-apps-at-top", "description": "Put show apps icon at top in Gnome default dash", "link": "https://extensions.gnome.org/extension/5853/show-apps-at-top/", "shell_version_map": {
     "40": {"version": "4", "sha256": "0h1dglr1zc4rn75hklf4h4r808683dqpwl6zp7rrg52xrb3cp1bd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBzaG93IGFwcHMgaWNvbiBhdCB0b3Agb2YgZGFzaCIsCiAgIm5hbWUiOiAiU2hvdyBBcHBzIGF0IFRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3JiaXRjb3JyZWN0b24vc2hvdy1hcHBzLWF0LXRvcCIsCiAgInV1aWQiOiAic2hvd2FwcHNhdHRvcEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiA0Cn0="},
     "41": {"version": "4", "sha256": "0h1dglr1zc4rn75hklf4h4r808683dqpwl6zp7rrg52xrb3cp1bd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBzaG93IGFwcHMgaWNvbiBhdCB0b3Agb2YgZGFzaCIsCiAgIm5hbWUiOiAiU2hvdyBBcHBzIGF0IFRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3JiaXRjb3JyZWN0b24vc2hvdy1hcHBzLWF0LXRvcCIsCiAgInV1aWQiOiAic2hvd2FwcHNhdHRvcEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiA0Cn0="},
     "42": {"version": "4", "sha256": "0h1dglr1zc4rn75hklf4h4r808683dqpwl6zp7rrg52xrb3cp1bd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBzaG93IGFwcHMgaWNvbiBhdCB0b3Agb2YgZGFzaCIsCiAgIm5hbWUiOiAiU2hvdyBBcHBzIGF0IFRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3JiaXRjb3JyZWN0b24vc2hvdy1hcHBzLWF0LXRvcCIsCiAgInV1aWQiOiAic2hvd2FwcHNhdHRvcEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiA0Cn0="},
     "43": {"version": "4", "sha256": "0h1dglr1zc4rn75hklf4h4r808683dqpwl6zp7rrg52xrb3cp1bd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBzaG93IGFwcHMgaWNvbiBhdCB0b3Agb2YgZGFzaCIsCiAgIm5hbWUiOiAiU2hvdyBBcHBzIGF0IFRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3JiaXRjb3JyZWN0b24vc2hvdy1hcHBzLWF0LXRvcCIsCiAgInV1aWQiOiAic2hvd2FwcHNhdHRvcEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiA0Cn0="},
     "44": {"version": "4", "sha256": "0h1dglr1zc4rn75hklf4h4r808683dqpwl6zp7rrg52xrb3cp1bd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBzaG93IGFwcHMgaWNvbiBhdCB0b3Agb2YgZGFzaCIsCiAgIm5hbWUiOiAiU2hvdyBBcHBzIGF0IFRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3JiaXRjb3JyZWN0b24vc2hvdy1hcHBzLWF0LXRvcCIsCiAgInV1aWQiOiAic2hvd2FwcHNhdHRvcEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiA0Cn0="},
-    "45": {"version": "6", "sha256": "0iff50ha5yvs52ivhsigam4a1p2gc23j8b33f9f8zp153qyn45cd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBzaG93IGFwcHMgaWNvbiBhdCB0b3Agb2YgZGFzaCIsCiAgIm5hbWUiOiAiU2hvdyBBcHBzIGF0IFRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vcmJpdGNvcnJlY3Rvbi9zaG93LWFwcHMtYXQtdG9wIiwKICAidXVpZCI6ICJzaG93YXBwc2F0dG9wQGdpdGh1Yi5jb20ub3JiaXRjb3JyZWN0aW9uIiwKICAidmVyc2lvbiI6IDYKfQ=="}
+    "45": {"version": "9", "sha256": "04ppx5k7hkabk8ndj7yqz40m3qmidvvpkbkpzrb7c2p8p9kfb32m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBzaG93IGFwcHMgaWNvbiBhdCB0b3AgaW4gR25vbWUgZGVmYXVsdCBkYXNoIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJob3diZWEiCiAgfSwKICAibmFtZSI6ICJBcHBzIGF0IFRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvc2hvdy1hcHBzLWF0LXRvcCIsCiAgInV1aWQiOiAic2hvd2FwcHNhdHRvcEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiA5Cn0="}
   }}
 , {"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"},
@@ -5698,7 +5719,7 @@
     "42": {"version": "15", "sha256": "06zs5qhn63d481clvf7fjdwzwkz893h3hf257q3wikipa6mqqgk8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9iIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL292ZXJ2aWV3LWJhY2tncm91bmQiLAogICJ1dWlkIjogIm92ZXJ2aWV3YmFja2dyb3VuZEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiAxNQp9"},
     "43": {"version": "15", "sha256": "06zs5qhn63d481clvf7fjdwzwkz893h3hf257q3wikipa6mqqgk8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9iIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL292ZXJ2aWV3LWJhY2tncm91bmQiLAogICJ1dWlkIjogIm92ZXJ2aWV3YmFja2dyb3VuZEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiAxNQp9"},
     "44": {"version": "15", "sha256": "06zs5qhn63d481clvf7fjdwzwkz893h3hf257q3wikipa6mqqgk8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9iIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL292ZXJ2aWV3LWJhY2tncm91bmQiLAogICJ1dWlkIjogIm92ZXJ2aWV3YmFja2dyb3VuZEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiAxNQp9"},
-    "45": {"version": "13", "sha256": "1dlp01mpy4zs83qzq9x0s471cqj652h8718dswvz2pac9p5sa31p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9iIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hvd2JlYS9vdmVydmlldy1iYWNrZ3JvdW5kIiwKICAidXVpZCI6ICJvdmVydmlld2JhY2tncm91bmRAZ2l0aHViLmNvbS5vcmJpdGNvcnJlY3Rpb24iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}
+    "45": {"version": "16", "sha256": "1i3az4y3ac9sxc0fbhn6ivms32yyl239f00aqlbml9kpp1liv9wa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJob3diZWEiCiAgfSwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9iIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hvd2JlYS9vdmVydmlldy1iYWNrZ3JvdW5kIiwKICAidXVpZCI6ICJvdmVydmlld2JhY2tncm91bmRAZ2l0aHViLmNvbS5vcmJpdGNvcnJlY3Rpb24iLAogICJ2ZXJzaW9uIjogMTYKfQ=="}
   }}
 , {"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="}
@@ -5769,7 +5790,7 @@
     "42": {"version": "7", "sha256": "1xd634cql2xakn62yqdml3s4r6x347138i7a20dn9r3qgmsi87s1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW4gaWNvbiBpbnN0ZWFkIG9mIHRoZSBsYWJlbCIsCiAgIm5hbWUiOiAiTG9nbyBBY3Rpdml0aWVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vcmJpdGNvcnJlY3Rvbi9sb2dvLWFjdGl2aXRpZXMiLAogICJ1dWlkIjogImxvZ29hY3Rpdml0aWVzQGdpdGh1Yi5jb20ub3JiaXRjb3JyZWN0aW9uIiwKICAidmVyc2lvbiI6IDcKfQ=="},
     "43": {"version": "7", "sha256": "1xd634cql2xakn62yqdml3s4r6x347138i7a20dn9r3qgmsi87s1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW4gaWNvbiBpbnN0ZWFkIG9mIHRoZSBsYWJlbCIsCiAgIm5hbWUiOiAiTG9nbyBBY3Rpdml0aWVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vcmJpdGNvcnJlY3Rvbi9sb2dvLWFjdGl2aXRpZXMiLAogICJ1dWlkIjogImxvZ29hY3Rpdml0aWVzQGdpdGh1Yi5jb20ub3JiaXRjb3JyZWN0aW9uIiwKICAidmVyc2lvbiI6IDcKfQ=="},
     "44": {"version": "7", "sha256": "1xd634cql2xakn62yqdml3s4r6x347138i7a20dn9r3qgmsi87s1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW4gaWNvbiBpbnN0ZWFkIG9mIHRoZSBsYWJlbCIsCiAgIm5hbWUiOiAiTG9nbyBBY3Rpdml0aWVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vcmJpdGNvcnJlY3Rvbi9sb2dvLWFjdGl2aXRpZXMiLAogICJ1dWlkIjogImxvZ29hY3Rpdml0aWVzQGdpdGh1Yi5jb20ub3JiaXRjb3JyZWN0aW9uIiwKICAidmVyc2lvbiI6IDcKfQ=="},
-    "45": {"version": "9", "sha256": "1g8n013wz6x5xcywwvsv741f2xwv4ap6blx5n35dm119cvw12daf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW4gaWNvbiBpbnN0ZWFkIG9mIHRoZSBsYWJlbCIsCiAgIm5hbWUiOiAiTG9nbyBBY3Rpdml0aWVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxvZ29hY3Rpdml0aWVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hvd2JlYS9sb2dvLWFjdGl2aXRpZXMiLAogICJ1dWlkIjogImxvZ29hY3Rpdml0aWVzQGdpdGh1Yi5jb20ub3JiaXRjb3JyZWN0aW9uIiwKICAidmVyc2lvbiI6IDkKfQ=="}
+    "45": {"version": "11", "sha256": "07zvxm2dhjbzw8g2bs0d8ajig3nvh10sf3n8kygn8gaxrx8dxdkf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW4gaWNvbiBpbnN0ZWFkIG9mIHRoZSBsYWJlbCIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAiaG93YmVhIgogIH0sCiAgIm5hbWUiOiAiTG9nbyBBY3Rpdml0aWVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxvZ29hY3Rpdml0aWVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hvd2JlYS9sb2dvLWFjdGl2aXRpZXMiLAogICJ1dWlkIjogImxvZ29hY3Rpdml0aWVzQGdpdGh1Yi5jb20ub3JiaXRjb3JyZWN0aW9uIiwKICAidmVyc2lvbiI6IDExCn0="}
   }}
 , {"uuid": "forbiden-multi-touch-gesture@touch-easy.com", "name": "forbiden-multi-touch", "pname": "forbiden-multi-touch", "description": "forbiden multi-touch-gesture", "link": "https://extensions.gnome.org/extension/5931/forbiden-multi-touch/", "shell_version_map": {
     "42": {"version": "1", "sha256": "0qpd5y4zjbrrjpnpsjzaa1fw1q25s04ysh2r82i5dr9afxbv2qz7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImZvcmJpZGVuIG11bHRpLXRvdWNoLWdlc3R1cmUiLAogICJuYW1lIjogImZvcmJpZGVuLW11bHRpLXRvdWNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJmb3JiaWRlbi1tdWx0aS10b3VjaC1nZXN0dXJlQHRvdWNoLWVhc3kuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}
@@ -5781,9 +5802,9 @@
     "44": {"version": "1", "sha256": "1jfy70wvx6qaaqkar37bsqyk5xshm3z69apdrmddznjq0am4m75l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR1BVIHByb2ZpbGUgc3dpdGNoZXIgZGVzaWduZWQgdG8gd29yayB3aXRoIE52aWRpYSBQUklNRSAocHJpbWUtc2VsZWN0KS4iLAogICJuYW1lIjogIlBSSU1FIEdQVSBQcm9maWxlIFNlbGVjdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsZXhpc3B1cnNsYW5lL1BSSU1FLUdQVS1Qcm9maWxlLVNlbGVjdG9yLmdpdCIsCiAgInV1aWQiOiAiUFJJTUVfR1BVX3Byb2ZpbGVfc2VsZWN0b3JAYWxleGlzcHVyc2xhbmUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}
   }}
 , {"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": "32", "sha256": "1dfdjnbgr2b8wf43pphvhbjpwi0dwi7ildi9ynif9k5nylv35l7h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAibmFtZSI6ICJRdWljayBTZXR0aW5ncyBBdWRpbyBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5xdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDMyCn0="},
-    "44": {"version": "32", "sha256": "1dfdjnbgr2b8wf43pphvhbjpwi0dwi7ildi9ynif9k5nylv35l7h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAibmFtZSI6ICJRdWljayBTZXR0aW5ncyBBdWRpbyBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5xdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDMyCn0="},
-    "45": {"version": "34", "sha256": "18m314mcs8xnmwlc5d2fh14bx16ikdjxfzf5dhkq72hw62sdjl9n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWxAcmF5emVxLmdpdGh1Yi5pbyIsCiAgIm5hbWUiOiAiUXVpY2sgU2V0dGluZ3MgQXVkaW8gUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDM0Cn0="}
+    "43": {"version": "36", "sha256": "11qg2qszr3c4360nns0k8zp4yzma104dqhz6fxjah4l06dd4ajp6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAibmFtZSI6ICJRdWljayBTZXR0aW5ncyBBdWRpbyBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5xdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDM2Cn0="},
+    "44": {"version": "36", "sha256": "11qg2qszr3c4360nns0k8zp4yzma104dqhz6fxjah4l06dd4ajp6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAibmFtZSI6ICJRdWljayBTZXR0aW5ncyBBdWRpbyBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5xdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDM2Cn0="},
+    "45": {"version": "35", "sha256": "1mwvx43x35dpf55z5ap7x342wsd7f3i1y7dv32vldq5ykkp4kga6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWxAcmF5emVxLmdpdGh1Yi5pbyIsCiAgIm5hbWUiOiAiUXVpY2sgU2V0dGluZ3MgQXVkaW8gUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDM1Cn0="}
   }}
 , {"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"},
@@ -5840,7 +5861,7 @@
     "42": {"version": "95", "sha256": "0myj4g5351fi04w3iwpshjhy9a5vgq85nwd186ymlvnjby12d6fh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi4iLAogICJuYW1lIjogIkdpdGh1YiBBY3Rpb25zIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhcm9ub25ha0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdpdGh1Yi1hY3Rpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcm9ub25hay9naXRodWItYWN0aW9ucy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdpdGh1Yi1hY3Rpb25zQGFyb25vbmFrLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA5NQp9"},
     "43": {"version": "95", "sha256": "0myj4g5351fi04w3iwpshjhy9a5vgq85nwd186ymlvnjby12d6fh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi4iLAogICJuYW1lIjogIkdpdGh1YiBBY3Rpb25zIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhcm9ub25ha0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdpdGh1Yi1hY3Rpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcm9ub25hay9naXRodWItYWN0aW9ucy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdpdGh1Yi1hY3Rpb25zQGFyb25vbmFrLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA5NQp9"},
     "44": {"version": "95", "sha256": "0myj4g5351fi04w3iwpshjhy9a5vgq85nwd186ymlvnjby12d6fh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi4iLAogICJuYW1lIjogIkdpdGh1YiBBY3Rpb25zIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhcm9ub25ha0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdpdGh1Yi1hY3Rpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcm9ub25hay9naXRodWItYWN0aW9ucy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdpdGh1Yi1hY3Rpb25zQGFyb25vbmFrLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA5NQp9"},
-    "45": {"version": "117", "sha256": "1dvr9r6a2ngrsmakq7w9vpils5kg2czvvn3yh7ag041cbcv4zgc2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi5cblxuVmVyc2lvbnMgYmVsb3cgZ25vbWUgNDUgd2lsbCBubyBsb25nZXIgYmUgc3VwcG9ydGVkIDovIiwKICAibmFtZSI6ICJHaXRodWIgQWN0aW9ucyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiYXJvbm9uYWtAZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5naXRodWItYWN0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcm9ub25hay9naXRodWItYWN0aW9ucy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdpdGh1Yi1hY3Rpb25zQGFyb25vbmFrLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMTcKfQ=="}
+    "45": {"version": "121", "sha256": "00dcyyi9gmn2bz87f30fh1j5xsh4g4pvvp6v1lfm1l781d8gjrqx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi5cblxuVmVyc2lvbnMgYmVsb3cgZ25vbWUgNDUgd2lsbCBubyBsb25nZXIgYmUgc3VwcG9ydGVkIDovIiwKICAibmFtZSI6ICJHaXRodWIgQWN0aW9ucyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiYXJvbm9uYWtAZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5naXRodWItYWN0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcm9ub25hay9naXRodWItYWN0aW9ucy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdpdGh1Yi1hY3Rpb25zQGFyb25vbmFrLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMjEKfQ=="}
   }}
 , {"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"},
@@ -5908,7 +5929,8 @@
   }}
 , {"uuid": "systemd-status@ne0sight.github.io", "name": "Systemd Status", "pname": "systemd-status", "description": "Show systemd system state", "link": "https://extensions.gnome.org/extension/6045/systemd-status/", "shell_version_map": {
     "43": {"version": "2", "sha256": "0fqip97f3cnhn79vjy8krblxsj53i7hs5y6k6sr0zfv1d3wia8lz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc3lzdGVtZCBzeXN0ZW0gc3RhdGUiLAogICJuYW1lIjogIlN5c3RlbWQgU3RhdHVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uRTBzSWdoVC9zeXN0ZW1kLXN0YXR1cy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogInN5c3RlbWQtc3RhdHVzQG5lMHNpZ2h0LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAyCn0="},
-    "44": {"version": "2", "sha256": "0fqip97f3cnhn79vjy8krblxsj53i7hs5y6k6sr0zfv1d3wia8lz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc3lzdGVtZCBzeXN0ZW0gc3RhdGUiLAogICJuYW1lIjogIlN5c3RlbWQgU3RhdHVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uRTBzSWdoVC9zeXN0ZW1kLXN0YXR1cy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogInN5c3RlbWQtc3RhdHVzQG5lMHNpZ2h0LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAyCn0="}
+    "44": {"version": "2", "sha256": "0fqip97f3cnhn79vjy8krblxsj53i7hs5y6k6sr0zfv1d3wia8lz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc3lzdGVtZCBzeXN0ZW0gc3RhdGUiLAogICJuYW1lIjogIlN5c3RlbWQgU3RhdHVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uRTBzSWdoVC9zeXN0ZW1kLXN0YXR1cy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogInN5c3RlbWQtc3RhdHVzQG5lMHNpZ2h0LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAyCn0="},
+    "45": {"version": "4", "sha256": "0zwgr1prhwwqpxjc5chnvslkqdfm9m9238v7v18bkfzx221s8n4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc3lzdGVtZCBzeXN0ZW0gc3RhdGUiLAogICJuYW1lIjogIlN5c3RlbWQgU3RhdHVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25FMHNJZ2hUL3N5c3RlbWQtc3RhdHVzLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic3lzdGVtZC1zdGF0dXNAbmUwc2lnaHQuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQKfQ=="}
   }}
 , {"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": {
     "43": {"version": "8", "sha256": "1p196by16zmgsy5af1jsgrm38p6vrrzh1pn2nbar6zw25pldsn8p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHRvcCBiYXIgKHBhbmVsKSBvbiBkZW1hbmQgd2hpbGUgaGF2aW5nIGZ1bGwgc2NyZWVuIGNvbnRlbnQgb24gKGxpa2UgYSBZb3VUdWJlIHZpZGVvKS4gSnVzdCBob3ZlciB0aGUgbW91c2UgY3Vyc29yIHRvIHRoZSB0b3Agb2YgdGhlIHNjcmVlbiwgYW5kIHRoZSBwYW5lbCB3aWxsIHNob3cgdXAuIFRoaXMgd2F5LCB5b3UgY2FuIHF1aWNrbHkgY2hlY2sgdGhlIHRpbWUsIG9yIHN3aWNoIHNvbWUgdG9nZ2xlcy4gVGhpcyBpcyBzaW1pbGFyIHRvIHdoYXQgbWFjT1Mgb2ZmZXJzIGZvciBmdWxsIHNjcmVlbiBhcHBzLlxuXG5PbiBXYXlsYW5kLCB0byBoaWRlIHRoZSB0b3AgYmFyLCB5b3UgbmVlZCB0byBjbGljayB0aGUgcHJpbWFyeSBtb3VzZSBidXR0b24gc29tZXdoZXJlIG91dHNpZGUgb2YgdGhlIGJhci4gT24gWDExLCBqdXN0IHRha2UgdGhlIGN1cnNvciBhd2F5IGZyb20gdGhlIGJhci5cblRoaXMgZXh0ZW5zaW9uIGlzIGluY29tcGF0aWJsZSB3aXRoIEJsdXIgTXkgU2hlbGwgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiUGVlayBUb3AgQmFyIG9uIEZ1bGxzY3JlZW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcmNpbmphaG4vZ25vbWUtcGVlay10b3AtYmFyLW9uLWZ1bGxzY3JlZW4tZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJwZWVrLXRvcC1iYXItb24tZnVsbHNjcmVlbkBtYXJjaW5qYWhuLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="},
@@ -5918,7 +5940,8 @@
 , {"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=="},
     "43": {"version": "6", "sha256": "12ddv7zi5pa034rz15m9yy03npf2lnh7mkrsfxawzp7z90wdnr30", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgYnJvd3NlIHRoZSB3ZWIgdGhyb3VnaCBHbm9tZSBTaGVsbC4gU2ltcGxlIHR5cGUgdGhlIFN1cGVyIGtleSwgZW50ZXIgeW91ciBzZWFyY2ggYW5kIHNlbGVjdCAnV2ViIFNlYXJjaCcuIFlvdXIgc2VhcmNoIHdpbGwgYXBwZWFyIGluIHlvdXIgZGVmYXVsdCBicm93c2VyIGFuZCBzZWxlY3RlZCBzZWFyY2ggZW5naW5lLiBZb3UgY2FuIHNlbGVjdCB0aGUgc2VhcmNoIGVuZ2luZSB0byB1c2UgaW4gdGhlIGV4dGVuc2lvbiBzZXR0aW5ncy4gQnkgZGVmYXVsdCBEdWNrRHVja0dvLCBHb29nbGUgYW5kIFF3YW50IGFyZSBhdmFpbGFibGUuIERvbid0IGZpbmQgeW91ciBkZXNpcmVkIHNlYXJjaCBlbmdpbmU/IFNpbXBsZSBhZGQgaXQgdG8gc2VhcmNoLWVuZ2luZS5qc29uLiIsCiAgIm5hbWUiOiAiUXVpY2sgV2ViIFNlYXJjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5xdWlja3dlYnNlYXJjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vY2hldC1idWRkeS9xdWljay13ZWItc2VhcmNoIiwKICAidXVpZCI6ICJxdWlja0B3ZWIuc2VhcmNoIiwKICAidmVyc2lvbiI6IDYKfQ=="},
-    "44": {"version": "6", "sha256": "12ddv7zi5pa034rz15m9yy03npf2lnh7mkrsfxawzp7z90wdnr30", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgYnJvd3NlIHRoZSB3ZWIgdGhyb3VnaCBHbm9tZSBTaGVsbC4gU2ltcGxlIHR5cGUgdGhlIFN1cGVyIGtleSwgZW50ZXIgeW91ciBzZWFyY2ggYW5kIHNlbGVjdCAnV2ViIFNlYXJjaCcuIFlvdXIgc2VhcmNoIHdpbGwgYXBwZWFyIGluIHlvdXIgZGVmYXVsdCBicm93c2VyIGFuZCBzZWxlY3RlZCBzZWFyY2ggZW5naW5lLiBZb3UgY2FuIHNlbGVjdCB0aGUgc2VhcmNoIGVuZ2luZSB0byB1c2UgaW4gdGhlIGV4dGVuc2lvbiBzZXR0aW5ncy4gQnkgZGVmYXVsdCBEdWNrRHVja0dvLCBHb29nbGUgYW5kIFF3YW50IGFyZSBhdmFpbGFibGUuIERvbid0IGZpbmQgeW91ciBkZXNpcmVkIHNlYXJjaCBlbmdpbmU/IFNpbXBsZSBhZGQgaXQgdG8gc2VhcmNoLWVuZ2luZS5qc29uLiIsCiAgIm5hbWUiOiAiUXVpY2sgV2ViIFNlYXJjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5xdWlja3dlYnNlYXJjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vY2hldC1idWRkeS9xdWljay13ZWItc2VhcmNoIiwKICAidXVpZCI6ICJxdWlja0B3ZWIuc2VhcmNoIiwKICAidmVyc2lvbiI6IDYKfQ=="}
+    "44": {"version": "6", "sha256": "12ddv7zi5pa034rz15m9yy03npf2lnh7mkrsfxawzp7z90wdnr30", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgYnJvd3NlIHRoZSB3ZWIgdGhyb3VnaCBHbm9tZSBTaGVsbC4gU2ltcGxlIHR5cGUgdGhlIFN1cGVyIGtleSwgZW50ZXIgeW91ciBzZWFyY2ggYW5kIHNlbGVjdCAnV2ViIFNlYXJjaCcuIFlvdXIgc2VhcmNoIHdpbGwgYXBwZWFyIGluIHlvdXIgZGVmYXVsdCBicm93c2VyIGFuZCBzZWxlY3RlZCBzZWFyY2ggZW5naW5lLiBZb3UgY2FuIHNlbGVjdCB0aGUgc2VhcmNoIGVuZ2luZSB0byB1c2UgaW4gdGhlIGV4dGVuc2lvbiBzZXR0aW5ncy4gQnkgZGVmYXVsdCBEdWNrRHVja0dvLCBHb29nbGUgYW5kIFF3YW50IGFyZSBhdmFpbGFibGUuIERvbid0IGZpbmQgeW91ciBkZXNpcmVkIHNlYXJjaCBlbmdpbmU/IFNpbXBsZSBhZGQgaXQgdG8gc2VhcmNoLWVuZ2luZS5qc29uLiIsCiAgIm5hbWUiOiAiUXVpY2sgV2ViIFNlYXJjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5xdWlja3dlYnNlYXJjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vY2hldC1idWRkeS9xdWljay13ZWItc2VhcmNoIiwKICAidXVpZCI6ICJxdWlja0B3ZWIuc2VhcmNoIiwKICAidmVyc2lvbiI6IDYKfQ=="},
+    "45": {"version": "9", "sha256": "0xy7xsnvk399wgj3qbb2rn7zfxcwqzb28cx0zldakjiph5a8w5l8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBTdXBlciBrZXkgZm9yIHF1aWNrIHdlYiBzZWFyY2giLAogICJuYW1lIjogIlF1aWNrIFdlYiBTZWFyY2giLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucXVpY2t3ZWJzZWFyY2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vY2hldC1idWRkeS9xdWljay13ZWItc2VhcmNoIiwKICAidXVpZCI6ICJxdWlja0B3ZWIuc2VhcmNoIiwKICAidmVyc2lvbiI6IDkKfQ=="}
   }}
 , {"uuid": "happy-appy-hotkey@jqno.nl", "name": "Happy Appy Hotkey", "pname": "happy-appy-hotkey", "description": "Assign hotkeys to applications to give them focus or launch them\n\nFeatures:\n- Assign a hotkey to an app to:\n-- Give it focus if it's already running, or\n-- Launch it if it's not.\n- Assign a hotkey to cycle through all the apps that don't have a hotkey\n- Supports Wayland", "link": "https://extensions.gnome.org/extension/6057/happy-appy-hotkey/", "shell_version_map": {
     "44": {"version": "3", "sha256": "0fg9967jwsp24pphv1bdiz6fns2kslrg3dx4xq4q894aiwxzagrv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFzc2lnbiBob3RrZXlzIHRvIGFwcGxpY2F0aW9ucyB0byBnaXZlIHRoZW0gZm9jdXMgb3IgbGF1bmNoIHRoZW1cblxuRmVhdHVyZXM6XG4tIEFzc2lnbiBhIGhvdGtleSB0byBhbiBhcHAgdG86XG4tLSBHaXZlIGl0IGZvY3VzIGlmIGl0J3MgYWxyZWFkeSBydW5uaW5nLCBvclxuLS0gTGF1bmNoIGl0IGlmIGl0J3Mgbm90LlxuLSBBc3NpZ24gYSBob3RrZXkgdG8gY3ljbGUgdGhyb3VnaCBhbGwgdGhlIGFwcHMgdGhhdCBkb24ndCBoYXZlIGEgaG90a2V5XG4tIFN1cHBvcnRzIFdheWxhbmQiLAogICJuYW1lIjogIkhhcHB5IEFwcHkgSG90a2V5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pxbm8vZ25vbWUtaGFwcHktYXBweS1ob3RrZXkvIiwKICAidXVpZCI6ICJoYXBweS1hcHB5LWhvdGtleUBqcW5vLm5sIiwKICAidmVyc2lvbiI6IDMKfQ=="},
@@ -5977,17 +6000,17 @@
     "44": {"version": "4", "sha256": "1nzzsm6ai8b0l8c5xvx83cspm4gzx1n6wfdrbik3g7xam06hr861", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgcGFzdGUgRW1vamlzIGZyb20gdGhlIFNtaWxlIGVtb2ppIHBpY2tlciIsCiAgIm5hbWUiOiAiU21pbGUgLSBjb21wbGVtZW50YXJ5IGV4dGVuc2lvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pam9ydXMvc21pbGUtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJzbWlsZS1leHRlbnNpb25AbWlqb3J1cy5pdCIsCiAgInZlcnNpb24iOiA0Cn0="},
     "45": {"version": "7", "sha256": "1fjcwgifggnckk0p7mskpgaz3wm71nz4qgcc1f1jqynwdbidds7l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgcGFzdGUgRW1vamlzIGZyb20gdGhlIFNtaWxlIGVtb2ppIHBpY2tlciIsCiAgIm5hbWUiOiAiU21pbGUgLSBjb21wbGVtZW50YXJ5IGV4dGVuc2lvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9taWpvcnVzL3NtaWxlLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic21pbGUtZXh0ZW5zaW9uQG1pam9ydXMuaXQiLAogICJ2ZXJzaW9uIjogNwp9"}
   }}
-, {"uuid": "paperwm@paperwm.github.com", "name": "PaperWM", "pname": "paperwm", "description": "Tiling window manager with a twist!\n\nPaperWM 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": {
+, {"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": "70", "sha256": "0c9fj3w1rlpg6f0jkcv2l6fd7pgkmg00ad352wcz9h5sykvdpcpg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wYXBlcndtL1BhcGVyV00iLAogICJ1dWlkIjogInBhcGVyd21AcGFwZXJ3bS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDcwLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDUuNy4wIgp9"}
+    "45": {"version": "75", "sha256": "1sj9g9l5x8a7qf7dzy5l0db9va29k9lj1s5z94gwadcy4b3xhnyw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wYXBlcndtL1BhcGVyV00iLAogICJ1dWlkIjogInBhcGVyd21AcGFwZXJ3bS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDc1LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDUuOS4xIgp9"}
   }}
-, {"uuid": "lightshell@dikasp.gitlab", "name": "Light Shell", "pname": "light-shell", "description": "the light GNOME shell theme you had been looking for.\n\nvisit my gitlab for wallpaper, gnome-mobile version and more.", "link": "https://extensions.gnome.org/extension/6102/light-shell/", "shell_version_map": {
+, {"uuid": "lightshell@dikasp.gitlab", "name": "Light Shell", "pname": "light-shell", "description": "an alternative full light style theme for GNOME Shell", "link": "https://extensions.gnome.org/extension/6102/light-shell/", "shell_version_map": {
     "42": {"version": "11", "sha256": "0fqshl06w2amy8d3gw2car4rab6zqpi79dg5dr05d5swggq1vm8n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGx5IGZ1bGwgbGlnaHQgdGhlbWUgaW50byBkZWZhdWx0IGdub21lIHNoZWxsLCBpbmNsdWRpbmcgbGlnaHQgb3ZlcnZpZXcuIiwKICAibmFtZSI6ICJMaWdodCBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9kaWthc2V0eWFwcmF5b2dpL2xpZ2h0LXNoZWxsIiwKICAidXVpZCI6ICJsaWdodHNoZWxsQGRpa2FzcC5naXRsYWIiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
     "43": {"version": "10", "sha256": "09hyrcg6y1269z7fzix72g09kvvdmy40z57m8yvib8hvl9wxarfc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGx5IGZ1bGwgbGlnaHQgdGhlbWUgaW50byBkZWZhdWx0IGdub21lIHNoZWxsLCBpbmNsdWRpbmcgbGlnaHQgb3ZlcnZpZXcuIiwKICAibmFtZSI6ICJMaWdodCBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9kaWthc2V0eWFwcmF5b2dpL2xpZ2h0LXNoZWxsIiwKICAidXVpZCI6ICJsaWdodHNoZWxsQGRpa2FzcC5naXRsYWIiLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
     "44": {"version": "13", "sha256": "0c8prbldkrylv1mkkmkcj606sllksvdan57bf11yw1abwgqy7idm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGx5IGZ1bGwgbGlnaHQgdGhlbWUgaW50byBkZWZhdWx0IEdOT01FIFNoZWxsLCBpbmNsdWRpbmcgbGlnaHQgb3ZlcnZpZXciLAogICJuYW1lIjogIkxpZ2h0IFNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2Rpa2FzZXR5YXByYXlvZ2kvbGlnaHQtc2hlbGwiLAogICJ1dWlkIjogImxpZ2h0c2hlbGxAZGlrYXNwLmdpdGxhYiIsCiAgInZlcnNpb24iOiAxMwp9"},
-    "45": {"version": "22", "sha256": "1cmxfkn90mjlxd483i42npcsmkni8arw7k5xq7ynf8k3yqz682ak", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInRoZSBsaWdodCBHTk9NRSBzaGVsbCB0aGVtZSB5b3UgaGFkIGJlZW4gbG9va2luZyBmb3IuIiwKICAibmFtZSI6ICJMaWdodCBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9kaWthc2V0eWFwcmF5b2dpL2xpZ2h0LXNoZWxsIiwKICAidXVpZCI6ICJsaWdodHNoZWxsQGRpa2FzcC5naXRsYWIiLAogICJ2ZXJzaW9uIjogMjIKfQ=="}
+    "45": {"version": "23", "sha256": "1yrqbmkbf9x61y3v9kz3hwgq21vyq4490c2hc61njmydh39b6gca", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBmdWxsIGxpZ2h0IHN0eWxlIEdOT01FIFNoZWxsIHRoZW1lIHlvdSBoYWQgYmVlbiBsb29raW5nIGZvci4iLAogICJuYW1lIjogIkxpZ2h0IFNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2Rpa2FzZXR5YXByYXlvZ2kvbGlnaHQtc2hlbGwiLAogICJ1dWlkIjogImxpZ2h0c2hlbGxAZGlrYXNwLmdpdGxhYiIsCiAgInZlcnNpb24iOiAyMwp9"}
   }}
 , {"uuid": "input-source-binder@mifishe.github.com", "name": "Input Source Binder", "pname": "input-source-binder", "description": "Binds shortcuts to input sources (up to 5). Alt+Shift+1 - the first input source, Alt+Shift+2 - the second one and etc.", "link": "https://extensions.gnome.org/extension/6105/input-source-binder/", "shell_version_map": {
     "44": {"version": "3", "sha256": "1gfbwy1nhmk311n5s7464sv0p1lb71wpbx8fp9jb0rarmw2vrshl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJpbmRzIHNob3J0Y3V0cyB0byBpbnB1dCBzb3VyY2VzICh1cCB0byA1KS4gQWx0K1NoaWZ0KzEgLSB0aGUgZmlyc3QgaW5wdXQgc291cmNlLCBBbHQrU2hpZnQrMiAtIHRoZSBzZWNvbmQgb25lIGFuZCBldGMuIiwKICAibmFtZSI6ICJJbnB1dCBTb3VyY2UgQmluZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmlucHV0LXNvdXJjZS1iaW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWlmaXNoZS9nbm9tZS1pbnB1dC1zb3VyY2UtYmluZGVyIiwKICAidXVpZCI6ICJpbnB1dC1zb3VyY2UtYmluZGVyQG1pZmlzaGUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}
@@ -6008,9 +6031,9 @@
 , {"uuid": "lightshellubuntu@dikasp.gitlab", "name": "Light Shell Ubuntu", "pname": "light-shell-ubuntu", "description": "Unofficial Light Shell theme port for use with Ubuntu's default GNOME Shell.\n\nCurrently unmaintained! visit my gitlab for simple tutorial on making your own custom Light Shell with accent color and more.", "link": "https://extensions.gnome.org/extension/6118/light-shell-ubuntu/", "shell_version_map": {
     "44": {"version": "4", "sha256": "1fhw7fqnaqyc8zkshrs6kwjzzqni289lq83gg70yrmib452w7b6d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1cnJlbnRseSB1bm1haW50YWluZWQhIHZpc2l0IG15IGdpdGxhYiBmb3Igc2ltcGxlIHR1dG9yaWFsIG9uIG1ha2luZyB5b3VyIG93biBjdXN0b20gTGlnaHQgU2hlbGwgd2l0aCBhY2NlbnQgY29sb3IgYW5kIG1vcmUuIiwKICAibmFtZSI6ICJMaWdodCBTaGVsbCBVYnVudHUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZGlrYXNldHlhcHJheW9naS9saWdodC1zaGVsbCIsCiAgInV1aWQiOiAibGlnaHRzaGVsbHVidW50dUBkaWthc3AuZ2l0bGFiIiwKICAidmVyc2lvbiI6IDQKfQ=="}
   }}
-, {"uuid": "blurmylightshell@dikasp.gitlab", "name": "Blur my Light Shell", "pname": "blur-my-light-shell", "description": "Light Shell theme port for use with Blur my Shell Extension.\n\nvisit my gitlab for wallpaper, gnome-mobile version and more.", "link": "https://extensions.gnome.org/extension/6121/blur-my-light-shell/", "shell_version_map": {
+, {"uuid": "blurmylightshell@dikasp.gitlab", "name": "Blur my Light Shell", "pname": "blur-my-light-shell", "description": "Light Shell theme port for use with Blur my Shell extension", "link": "https://extensions.gnome.org/extension/6121/blur-my-light-shell/", "shell_version_map": {
     "44": {"version": "4", "sha256": "19rh1137rqdlyfj309kdy21ry9dyl5apr5h2qwylf6wg7m1qa5pw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0IHNoZWxsIHBvcnQgZm9yIHVzZSB3aXRoIGJsdXIgbXkgc2hlbGwgZXh0ZW5zaW9uIChubyBuZWVkIHRvIGN1c3RvbWl6ZSBhbnl0aGluZywganVzdCBoaXQgYmx1ciBteSBzaGVsbCByZXNldCBwcmVmZXJlbmNlcyBidXR0b24gYW5kIGVuam95KS4iLAogICJuYW1lIjogIkJsdXIgbXkgTGlnaHQgU2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZGlrYXNldHlhcHJheW9naS9saWdodC1zaGVsbCIsCiAgInV1aWQiOiAiYmx1cm15bGlnaHRzaGVsbEBkaWthc3AuZ2l0bGFiIiwKICAidmVyc2lvbiI6IDQKfQ=="},
-    "45": {"version": "9", "sha256": "0sd2kzs79pm19v6l1w5gxc96i3c1802l4iyxkrnghwfx19bv6h0b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImxpZ2h0IHNoZWxsIHRoZW1lIHBvcnQgZm9yIHVzZSB3aXRoIGJsdXIgbXkgc2hlbGwgZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJCbHVyIG15IExpZ2h0IFNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2Rpa2FzZXR5YXByYXlvZ2kvbGlnaHQtc2hlbGwiLAogICJ1dWlkIjogImJsdXJteWxpZ2h0c2hlbGxAZGlrYXNwLmdpdGxhYiIsCiAgInZlcnNpb24iOiA5Cn0="}
+    "45": {"version": "10", "sha256": "0w2aw78q3pi53qhydrnzwx538s1cnfahji4rls40kpy9z7w120hk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0IFNoZWxsIHRoZW1lIHBvcnQgZm9yIHVzZSB3aXRoIEJsdXIgbXkgU2hlbGwgZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJCbHVyIG15IExpZ2h0IFNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2Rpa2FzZXR5YXByYXlvZ2kvbGlnaHQtc2hlbGwiLAogICJ1dWlkIjogImJsdXJteWxpZ2h0c2hlbGxAZGlrYXNwLmdpdGxhYiIsCiAgInZlcnNpb24iOiAxMAp9"}
   }}
 , {"uuid": "maximize-lonely-window@MrShuster", "name": "Maximize Lonely Window", "pname": "only-window-maximize", "description": "a gnome extension in which maximizes the only window in a workspace\n\nI work with workspaces, and I want to focus on my work as much as possible and not get distracted with window managment.\n\nThis extension makes it so that if for example there are 2 windows in a workspace and you close one of them, the one that's left will become maximized. if a window is the single window in a workspace, why not make it maximized? makes sense to me.\n\nnovember 1: updated the extension to support multiple monitors", "link": "https://extensions.gnome.org/extension/6127/only-window-maximize/", "shell_version_map": {
     "44": {"version": "2", "sha256": "08bhz358pg7wqmz2a2grhrchjpsqpl8n6fpj6x1y0xljyipksqbp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1heGltaXplIHRoZSBvbmx5IHdpbmRvdyBpbiBhIHdvcmtzcGFjZSIsCiAgIm5hbWUiOiAiTWF4aW1pemUgTG9uZWx5IFdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NclNodXN0ZXIvbWF4aW1pemVfbG9uZWx5X3dpbmRvdy8iLAogICJ1dWlkIjogIm1heGltaXplLWxvbmVseS13aW5kb3dATXJTaHVzdGVyIiwKICAidmVyc2lvbiI6IDIKfQ=="},
@@ -6125,13 +6148,13 @@
     "42": {"version": "9", "sha256": "1832867id0z8jbd98dxfywj7k3xr4jjrdi7cblb4dhi2sii6svn6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVtb2ppIGNvcHkgaXMgYSB2ZXJzYXRpbGUgZXh0ZW5zaW9uIGRlc2lnbmVkIHRvIHNpbXBsaWZ5IGVtb2ppIHNlbGVjdGlvbiBhbmQgY2xpcGJvYXJkIG1hbmFnZW1lbnQuXG5cbkl0IGlzIGEgZm9yayBvZiBFbW9qaSBTZWxlY3Rvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJlbW9qaS1jb3B5IiwKICAibmFtZSI6ICJFbW9qaSBDb3B5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmVtb2ppLWNvcHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZlbGlwZWZ0bi9lbW9qaS1jb3B5IiwKICAidXVpZCI6ICJlbW9qaS1jb3B5QGZlbGlwZWZ0biIsCiAgInZlcnNpb24iOiA5Cn0="},
     "43": {"version": "9", "sha256": "1832867id0z8jbd98dxfywj7k3xr4jjrdi7cblb4dhi2sii6svn6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVtb2ppIGNvcHkgaXMgYSB2ZXJzYXRpbGUgZXh0ZW5zaW9uIGRlc2lnbmVkIHRvIHNpbXBsaWZ5IGVtb2ppIHNlbGVjdGlvbiBhbmQgY2xpcGJvYXJkIG1hbmFnZW1lbnQuXG5cbkl0IGlzIGEgZm9yayBvZiBFbW9qaSBTZWxlY3Rvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJlbW9qaS1jb3B5IiwKICAibmFtZSI6ICJFbW9qaSBDb3B5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmVtb2ppLWNvcHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZlbGlwZWZ0bi9lbW9qaS1jb3B5IiwKICAidXVpZCI6ICJlbW9qaS1jb3B5QGZlbGlwZWZ0biIsCiAgInZlcnNpb24iOiA5Cn0="},
     "44": {"version": "9", "sha256": "1832867id0z8jbd98dxfywj7k3xr4jjrdi7cblb4dhi2sii6svn6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVtb2ppIGNvcHkgaXMgYSB2ZXJzYXRpbGUgZXh0ZW5zaW9uIGRlc2lnbmVkIHRvIHNpbXBsaWZ5IGVtb2ppIHNlbGVjdGlvbiBhbmQgY2xpcGJvYXJkIG1hbmFnZW1lbnQuXG5cbkl0IGlzIGEgZm9yayBvZiBFbW9qaSBTZWxlY3Rvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJlbW9qaS1jb3B5IiwKICAibmFtZSI6ICJFbW9qaSBDb3B5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmVtb2ppLWNvcHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZlbGlwZWZ0bi9lbW9qaS1jb3B5IiwKICAidXVpZCI6ICJlbW9qaS1jb3B5QGZlbGlwZWZ0biIsCiAgInZlcnNpb24iOiA5Cn0="},
-    "45": {"version": "14", "sha256": "0zwq0aydj2m9s7bi6ph8k3ag4h7h4d76v1qdavspmz1msh4k1qkj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVtb2ppIGNvcHkgaXMgYSB2ZXJzYXRpbGUgZXh0ZW5zaW9uIGRlc2lnbmVkIHRvIHNpbXBsaWZ5IGVtb2ppIHNlbGVjdGlvbiBhbmQgY2xpcGJvYXJkIG1hbmFnZW1lbnQuXG5cbkl0IGlzIGEgZm9yayBvZiBFbW9qaSBTZWxlY3Rvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJlbW9qaS1jb3B5IiwKICAibmFtZSI6ICJFbW9qaSBDb3B5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmVtb2ppLWNvcHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmVsaXBlZnRuL2Vtb2ppLWNvcHkiLAogICJ1dWlkIjogImVtb2ppLWNvcHlAZmVsaXBlZnRuIiwKICAidmVyc2lvbiI6IDE0Cn0="}
+    "45": {"version": "16", "sha256": "08s99nph5zz34g8aaf8r7fh4a8w9mg6lv67cx0ravyfnb6anmc90", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVtb2ppIGNvcHkgaXMgYSB2ZXJzYXRpbGUgZXh0ZW5zaW9uIGRlc2lnbmVkIHRvIHNpbXBsaWZ5IGVtb2ppIHNlbGVjdGlvbiBhbmQgY2xpcGJvYXJkIG1hbmFnZW1lbnQuXG5cbkl0IGlzIGEgZm9yayBvZiBFbW9qaSBTZWxlY3Rvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJlbW9qaS1jb3B5IiwKICAibmFtZSI6ICJFbW9qaSBDb3B5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmVtb2ppLWNvcHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmVsaXBlZnRuL2Vtb2ppLWNvcHkiLAogICJ1dWlkIjogImVtb2ppLWNvcHlAZmVsaXBlZnRuIiwKICAidmVyc2lvbiI6IDE2Cn0="}
   }}
 , {"uuid": "notification-icons@muhammad_ans.github", "name": "Top Panel Notification Icons Revived", "pname": "top-panel-notification-icons-revived", "description": "Displays notifications icon in top panel", "link": "https://extensions.gnome.org/extension/6248/top-panel-notification-icons-revived/", "shell_version_map": {
     "45": {"version": "4", "sha256": "0s5bk169l1c7xhvrc07g1y6wjdzsgb3bylc1b3r38kjazdbyr3zp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIG5vdGlmaWNhdGlvbnMgaWNvbiBpbiB0b3AgcGFuZWwiLAogICJuYW1lIjogIlRvcCBQYW5lbCBOb3RpZmljYXRpb24gSWNvbnMgUmV2aXZlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ub3RpZmljYXRpb24taWNvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXVoYW1tYWQtYW5zL25vdGlmaWNhdGlvbi1pY29ucyIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uLWljb25zQG11aGFtbWFkX2Fucy5naXRodWIiLAogICJ2ZXJzaW9uIjogNAp9"}
   }}
 , {"uuid": "huanghaohhoa@163.com", "name": "Application Tabs", "pname": "application-tabs", "description": "Panel will include a different window tab for the same application that is currently launched.\n1. You can see the application window intuitively\n2. Click tab to jump to the corresponding window immediately\n3. Click the Close button to close the window", "link": "https://extensions.gnome.org/extension/6254/application-tabs/", "shell_version_map": {
-    "45": {"version": "12", "sha256": "0bpf011hpmg4s0vs9m0s8kz58zgizyb42h543q18ipci22kvsssx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBhbmVsIHdpbGwgaW5jbHVkZSBhIGRpZmZlcmVudCB3aW5kb3cgdGFiIGZvciB0aGUgc2FtZSBhcHBsaWNhdGlvbiB0aGF0IGlzIGN1cnJlbnRseSBsYXVuY2hlZC5cbjEuIFlvdSBjYW4gc2VlIHRoZSBhcHBsaWNhdGlvbiB3aW5kb3cgaW50dWl0aXZlbHlcbjIuIENsaWNrIHRhYiB0byBqdW1wIHRvIHRoZSBjb3JyZXNwb25kaW5nIHdpbmRvdyBpbW1lZGlhdGVseVxuMy4gQ2xpY2sgdGhlIENsb3NlIGJ1dHRvbiB0byBjbG9zZSB0aGUgd2luZG93IiwKICAibmFtZSI6ICJBcHBsaWNhdGlvbiBUYWJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFwcF90YWJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hob2FvL2FwcF90YWJzIiwKICAidXVpZCI6ICJodWFuZ2hhb2hob2FAMTYzLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}
+    "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"}
@@ -6180,14 +6203,14 @@
 , {"uuid": "quake-terminal@diegodario88.github.io", "name": "Quake Terminal", "pname": "quake-terminal", "description": "Quickly launch a terminal in Quake mode using a keyboard shortcut", "link": "https://extensions.gnome.org/extension/6307/quake-terminal/", "shell_version_map": {
     "45": {"version": "17", "sha256": "1an42lksgrj143r9cr3f397sp1xbjcjb1zccygbzi8z2jmvcsd1i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgbGF1bmNoIGEgdGVybWluYWwgaW4gUXVha2UgbW9kZSB1c2luZyBhIGtleWJvYXJkIHNob3J0Y3V0IiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJkaWVnb2RhcmlvODgiLAogICAgImtvZmkiOiAiZGllZ29kYXJpbyIKICB9LAogICJuYW1lIjogIlF1YWtlIFRlcm1pbmFsIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnF1YWtlLXRlcm1pbmFsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RpZWdvZGFyaW84OC9xdWFrZS10ZXJtaW5hbCIsCiAgInV1aWQiOiAicXVha2UtdGVybWluYWxAZGllZ29kYXJpbzg4LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxNywKICAidmVyc2lvbi1uYW1lIjogIjEuNi4xIgp9"}
   }}
-, {"uuid": "window-title-is-back@fthx", "name": "Window title is back", "pname": "window-title-is-back", "description": "Focused window icon + app name + title + menu in the top bar.\n\n Options in preferences UI: toggle items, colored icon, icon size.\n\nIf you want to have many windows titles, please use https://extensions.gnome.org/extension/6556/task-up/", "link": "https://extensions.gnome.org/extension/6310/window-title-is-back/", "shell_version_map": {
-    "45": {"version": "23", "sha256": "19xr10p9wdq3gws408j5kydlbgqc6wblsscjm15a1wf3p0n6jcdl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvY3VzZWQgd2luZG93IGljb24gKyBhcHAgbmFtZSArIHRpdGxlICsgbWVudSBpbiB0aGUgdG9wIGJhci5cblxuIE9wdGlvbnMgaW4gcHJlZmVyZW5jZXMgVUk6IHRvZ2dsZSBpdGVtcywgY29sb3JlZCBpY29uLCBpY29uIHNpemUuIiwKICAibmFtZSI6ICJXaW5kb3cgdGl0bGUgaXMgYmFjayIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53aW5kb3ctdGl0bGUtaXMtYmFjayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3dpbmRvdy10aXRsZS1pcy1iYWNrIiwKICAidXVpZCI6ICJ3aW5kb3ctdGl0bGUtaXMtYmFja0BmdGh4IiwKICAidmVyc2lvbiI6IDIzCn0="}
+, {"uuid": "window-title-is-back@fthx", "name": "Window title is back", "pname": "window-title-is-back", "description": "Focused window icon + app name + title + menu in the top bar.\n\n Options in preferences UI: toggle items, colored icon, icon size.", "link": "https://extensions.gnome.org/extension/6310/window-title-is-back/", "shell_version_map": {
+    "45": {"version": "26", "sha256": "16wfrl47211cpcka5brfpdijvwinb83xn37522508jqby41hccwr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvY3VzZWQgd2luZG93IGljb24gKyBhcHAgbmFtZSArIHRpdGxlICsgbWVudSBpbiB0aGUgdG9wIGJhci5cblxuIE9wdGlvbnMgaW4gcHJlZmVyZW5jZXMgVUk6IHRvZ2dsZSBpdGVtcywgY29sb3JlZCBpY29uLCBpY29uIHNpemUuIiwKICAibmFtZSI6ICJXaW5kb3cgdGl0bGUgaXMgYmFjayIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53aW5kb3ctdGl0bGUtaXMtYmFjayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3dpbmRvdy10aXRsZS1pcy1iYWNrIiwKICAidXVpZCI6ICJ3aW5kb3ctdGl0bGUtaXMtYmFja0BmdGh4IiwKICAidmVyc2lvbiI6IDI2Cn0="}
   }}
 , {"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": "9", "sha256": "0jmbwm6mbmadcvwx4rph423kzl4qdpgxqw3c3q36yvvrwd3ccpxf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoYW5lLTEzL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaW0tYmFja2dyb3VuZC13aW5kb3dzIiwKICAidXVpZCI6ICJkaW0tYmFja2dyb3VuZC13aW5kb3dzQHN0ZXBoYW5lLTEzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOQp9"},
-    "43": {"version": "9", "sha256": "0jmbwm6mbmadcvwx4rph423kzl4qdpgxqw3c3q36yvvrwd3ccpxf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoYW5lLTEzL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaW0tYmFja2dyb3VuZC13aW5kb3dzIiwKICAidXVpZCI6ICJkaW0tYmFja2dyb3VuZC13aW5kb3dzQHN0ZXBoYW5lLTEzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOQp9"},
-    "44": {"version": "9", "sha256": "0jmbwm6mbmadcvwx4rph423kzl4qdpgxqw3c3q36yvvrwd3ccpxf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoYW5lLTEzL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaW0tYmFja2dyb3VuZC13aW5kb3dzIiwKICAidXVpZCI6ICJkaW0tYmFja2dyb3VuZC13aW5kb3dzQHN0ZXBoYW5lLTEzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOQp9"},
-    "45": {"version": "10", "sha256": "0z8akdh13cm98wcjgxyfsj6sf57flx0i6jw7br4ycjb3gqahq6bq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdGVwaGFuZS0xMy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInV1aWQiOiAiZGltLWJhY2tncm91bmQtd2luZG93c0BzdGVwaGFuZS0xMy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}
+    "42": {"version": "12", "sha256": "0nczzyvwpaaxfwvi6nn8vgy6csl30d2j81ilwnirsngblps22s1d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoYW5lLTEzL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaW0tYmFja2dyb3VuZC13aW5kb3dzIiwKICAidXVpZCI6ICJkaW0tYmFja2dyb3VuZC13aW5kb3dzQHN0ZXBoYW5lLTEzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
+    "43": {"version": "12", "sha256": "0nczzyvwpaaxfwvi6nn8vgy6csl30d2j81ilwnirsngblps22s1d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoYW5lLTEzL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaW0tYmFja2dyb3VuZC13aW5kb3dzIiwKICAidXVpZCI6ICJkaW0tYmFja2dyb3VuZC13aW5kb3dzQHN0ZXBoYW5lLTEzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
+    "44": {"version": "12", "sha256": "0nczzyvwpaaxfwvi6nn8vgy6csl30d2j81ilwnirsngblps22s1d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoYW5lLTEzL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaW0tYmFja2dyb3VuZC13aW5kb3dzIiwKICAidXVpZCI6ICJkaW0tYmFja2dyb3VuZC13aW5kb3dzQHN0ZXBoYW5lLTEzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
+    "45": {"version": "11", "sha256": "1dci1d4lnrd5dl1zr52ss5yw466jvc4v0hv8rawysfn9a913kqva", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdGVwaGFuZS0xMy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInV1aWQiOiAiZGltLWJhY2tncm91bmQtd2luZG93c0BzdGVwaGFuZS0xMy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}
   }}
 , {"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="}
@@ -6198,10 +6221,10 @@
     "42": {"version": "3", "sha256": "1jh39196758jn7yffb1dlzg4w49rn9934vdmbnh3bvw5a5q88abv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMwp9"},
     "43": {"version": "3", "sha256": "1jh39196758jn7yffb1dlzg4w49rn9934vdmbnh3bvw5a5q88abv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMwp9"},
     "44": {"version": "3", "sha256": "1jh39196758jn7yffb1dlzg4w49rn9934vdmbnh3bvw5a5q88abv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMwp9"},
-    "45": {"version": "4", "sha256": "0xkdp9mv9grf4sir5dyqczdmb468m8clhh1cf2wc296kqgil2p6n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9nbGVycm8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInV1aWQiOiAiZGViaWFuLXVwZGF0ZXMtaW5kaWNhdG9yQGdsZXJyby5wbS5tZSIsCiAgInZlcnNpb24iOiA0Cn0="}
+    "45": {"version": "5", "sha256": "0ypp9sbygcgbz3zr66fqmi8zmiqmks2q76a7qkj091d065jfvmf6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9nbGVycm8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInV1aWQiOiAiZGViaWFuLXVwZGF0ZXMtaW5kaWNhdG9yQGdsZXJyby5wbS5tZSIsCiAgInZlcnNpb24iOiA1Cn0="}
   }}
 , {"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": "3", "sha256": "1hc6df0r6ajil0r9qb3sns9l85d8znspbvwbagivfakydpjxv6xp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiQnJpZ2h0bmVzcyBhbmQgdm9sdW1lIGNvbnRyb2wgZm9yIG1vbml0b3JzLiBSZXF1aXJlcyBzZXR0aW5nIHVwIHRoZSBleHRlcm5hbCBkZGN1dGlsIHByb2dyYW0gZm9yIHlvdXIgdXNlci5cblxuTm90ZTogZW5zdXJlIHRoYXQgZGRjdXRpbCB3b3JrcyBwcm9wZXJseSBvbiB0aGUgY29tbWFuZCBsaW5lIGJlZm9yZSBhdHRlbXB0aW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImFpbGluIgogIH0sCiAgIm5hbWUiOiAiQ29udHJvbCBtb25pdG9yIGJyaWdodG5lc3MgYW5kIHZvbHVtZSB3aXRoIGRkY3V0aWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubW9uaXRvci1icmlnaHRuZXNzLXZvbHVtZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9OZWkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1vbml0b3ItYnJpZ2h0bmVzcy12b2x1bWUvLS9pc3N1ZXMiLAogICJ1dWlkIjogIm1vbml0b3ItYnJpZ2h0bmVzcy12b2x1bWVAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogMwp9"}
+    "45": {"version": "5", "sha256": "06mllpwvrwzjbdia339dn5p5bzngvrl3yiflr14180mlcg1yfx69", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiQnJpZ2h0bmVzcyBhbmQgdm9sdW1lIGNvbnRyb2wgZm9yIG1vbml0b3JzLiBSZXF1aXJlcyBzZXR0aW5nIHVwIHRoZSBleHRlcm5hbCBkZGN1dGlsIHByb2dyYW0gZm9yIHlvdXIgdXNlci5cblxuTm90ZTogZW5zdXJlIHRoYXQgZGRjdXRpbCB3b3JrcyBwcm9wZXJseSBvbiB0aGUgY29tbWFuZCBsaW5lIGJlZm9yZSBhdHRlbXB0aW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImFpbGluIgogIH0sCiAgIm5hbWUiOiAiQ29udHJvbCBtb25pdG9yIGJyaWdodG5lc3MgYW5kIHZvbHVtZSB3aXRoIGRkY3V0aWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubW9uaXRvci1icmlnaHRuZXNzLXZvbHVtZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvTmVpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1tb25pdG9yLWJyaWdodG5lc3Mtdm9sdW1lLy0vaXNzdWVzIiwKICAidXVpZCI6ICJtb25pdG9yLWJyaWdodG5lc3Mtdm9sdW1lQGFpbGluLm5lbXVpIiwKICAidmVyc2lvbiI6IDUKfQ=="}
   }}
 , {"uuid": "network-interfaces-info@alonsogonzalezleal.com", "name": "Network Interfaces Info", "pname": "network-interfaces-info", "description": "Display Network Interfaces Information on GNOME Top Bar.", "link": "https://extensions.gnome.org/extension/6331/network-interfaces-info/", "shell_version_map": {
     "42": {"version": "3", "sha256": "1z5pxlw0p7mm18pnn2b0v9q8slxzw6iq2g41b4f4h9fbifhdmqn0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgTmV0d29yayBJbnRlcmZhY2VzIEluZm9ybWF0aW9uIG9uIEdOT01FIFRvcCBCYXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibmV0d29yay1pbnRlcmZhY2VzLWluZm9AYWxvbnNvZ29uemFsZXpsZWFsLmNvbSIsCiAgIm5hbWUiOiAiTmV0d29yayBJbnRlcmZhY2VzIEluZm8iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbG9uc29nb256YWxlemxlYWwvbmV0d29yay1pbnRlcmZhY2VzLWluZm8iLAogICJ1dWlkIjogIm5ldHdvcmstaW50ZXJmYWNlcy1pbmZvQGFsb25zb2dvbnphbGV6bGVhbC5jb20iLAogICJ2ZXJzaW9uIjogMwp9"},
@@ -6238,7 +6261,8 @@
     "45": {"version": "2", "sha256": "1c1dfn3smy495ks73am3gr0h15ca0vba1djfjac9c32vp4n77v4m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxhdW5jaCBmYXZvcml0ZSBhcHBzIGZyb20gQWx0K1RhYiAoYW5kIFN1cGVyK1RhYikgcG9wdXAiLAogICJuYW1lIjogIkFsdCtUYWIgTGF1bmNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3hheW90bC9nbm9tZS1zaGVsbC1leHRlbnNpb24tYWx0LXRhYi1sYXVuY2hlciIsCiAgInV1aWQiOiAiYWx0LWxhdW5jaGVyQG94YXlvdGwuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDIKfQ=="}
   }}
 , {"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="}
+    "44": {"version": "2", "sha256": "1c7pa2afmimljxvlg93gmlvc9wj48wh8dni4kra48wh73ishv0d9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29uc3VtcHRpb24gb2YgZWFjaCBDUFUgY29yZSBhbmQgbWVtb3J5IiwKICAibmFtZSI6ICJtdWx0aWNvcmUtc3lzdGVtLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWdyZWs1MS9tdWx0aWNvcmUtbW9uaXRvciIsCiAgInV1aWQiOiAibXVsdGljb3JlLXN5c3RlbS1tb25pdG9yQGlncmVrLmRldiIsCiAgInZlcnNpb24iOiAyCn0="},
+    "45": {"version": "4", "sha256": "1rcw2i1dfg998vhwpvycchx3mqp8zv64rcm0s1fv8hbjfnf6r9xj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29uc3VtcHRpb24gb2YgZWFjaCBDUFUgY29yZSBhbmQgbWVtb3J5IiwKICAibmFtZSI6ICJtdWx0aWNvcmUtc3lzdGVtLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWdyZWs1MS9tdWx0aWNvcmUtbW9uaXRvciIsCiAgInV1aWQiOiAibXVsdGljb3JlLXN5c3RlbS1tb25pdG9yQGlncmVrLmRldiIsCiAgInZlcnNpb24iOiA0Cn0="}
   }}
 , {"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=="}
@@ -6270,10 +6294,10 @@
     "45": {"version": "10", "sha256": "0ww9j0ijqpa69nggq7kjkcx19qkk5cmkv2axrjk45p1c9h3jidkg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIFNoZWxsIHVwZGF0ZSBpbmRpY2F0b3IgZm9yIEZlZG9yYSBMaW51eC5cbiAgVGhpcyBpcyBiYXNlZCBvbiBBcmNoIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIGJ5IFJhcGhhXHUwMGVibCBSb2NoZXQuXG4gIFRoaXMgZXh0ZW5zaW9uIGlzIG5vdCBhZmZpbGlhdGVkLCBmdW5kZWQsIG9yIGluIGFueSB3YXkgYXNzb2NpYXRlZCB3aXRoIEZlZG9yYSBicmFuZCBhbmQgUmVkIEhhdCBTb2Z0d2FyZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cGRhdGUtZXh0ZW5zaW9uQHB1cmVqYXZhLm9yZyIsCiAgIm5hbWUiOiAiRmVkb3JhIExpbnV4IFVwZGF0ZSBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZmVkb3JhLXVwZGF0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wdXJlamF2YS9mZWRvcmEtdXBkYXRlIiwKICAidXVpZCI6ICJ1cGRhdGUtZXh0ZW5zaW9uQHB1cmVqYXZhLm9yZyIsCiAgInZlcnNpb24iOiAxMAp9"}
   }}
 , {"uuid": "utc-clock@swsnr.de", "name": "UTC clock", "pname": "utc-clock", "description": "A customizable UTC clock.\n\nAdd a second clock to the bar which shows the current UTC time, in a completely customizable format.", "link": "https://extensions.gnome.org/extension/6409/utc-clock/", "shell_version_map": {
-    "45": {"version": "10", "sha256": "1j5gn3h89pb9rc0xlk6r8qqbp06diq4rcvn37k87fl6m2s5kdzip", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgY3VzdG9taXphYmxlIFVUQyBjbG9jay5cblxuQWRkIGEgc2Vjb25kIGNsb2NrIHRvIHRoZSBiYXIgd2hpY2ggc2hvd3MgdGhlIGN1cnJlbnQgVVRDIHRpbWUsIGluIGEgY29tcGxldGVseSBjdXN0b21pemFibGUgZm9ybWF0LiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAic3dzbnIiCiAgfSwKICAibmFtZSI6ICJVVEMgY2xvY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3dzbnItdXRjLWNsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N3c25yL2dub21lLXNoZWxsLWV4dGVuc2lvbi11dGMtY2xvY2sjcmVhZG1lIiwKICAidXVpZCI6ICJ1dGMtY2xvY2tAc3dzbnIuZGUiLAogICJ2ZXJzaW9uIjogMTAsCiAgInZlcnNpb24tbmFtZSI6ICI0NS4zIgp9"}
+    "45": {"version": "12", "sha256": "17askycn2fs1a9j46x9slqxar0y7lj8ykzlqzlgh7kcw0c14zfnc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgY3VzdG9taXphYmxlIFVUQyBjbG9jay5cblxuQWRkIGEgc2Vjb25kIGNsb2NrIHRvIHRoZSBiYXIgd2hpY2ggc2hvd3MgdGhlIGN1cnJlbnQgVVRDIHRpbWUsIGluIGEgY29tcGxldGVseSBjdXN0b21pemFibGUgZm9ybWF0LiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAic3dzbnIiCiAgfSwKICAibmFtZSI6ICJVVEMgY2xvY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3dzbnItdXRjLWNsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N3c25yL2dub21lLXNoZWxsLWV4dGVuc2lvbi11dGMtY2xvY2sjcmVhZG1lIiwKICAidXVpZCI6ICJ1dGMtY2xvY2tAc3dzbnIuZGUiLAogICJ2ZXJzaW9uIjogMTIsCiAgInZlcnNpb24tbmFtZSI6ICI0NS40Igp9"}
   }}
 , {"uuid": "iso8601ish@S410", "name": "ISO8601-ish Clock", "pname": "iso8601-ish-clock", "description": "Overrides Gnome's clock format with ISO8601-inspired one.\n\nClock preferences in Date & Time section of Gnome Settings are respected, in a way.\n\"Date\" and \"Seconds\" behave as usual.\n\"Week Day\" inserts ISO Week and Weekday between the date and time. E.g. \"2023-10-16 W42-1 19:45\".", "link": "https://extensions.gnome.org/extension/6413/iso8601-ish-clock/", "shell_version_map": {
-    "45": {"version": "4", "sha256": "0q4wzs9mi8rw589dd8gwq2wm0sijngjszdj20vjxc2hyf2g4538i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk92ZXJyaWRlcyBHbm9tZSdzIGNsb2NrIGZvcm1hdCB3aXRoIElTTzg2MDEtaW5zcGlyZWQgb25lLlxuXG5DbG9jayBwcmVmZXJlbmNlcyBpbiBEYXRlICYgVGltZSBzZWN0aW9uIG9mIEdub21lIFNldHRpbmdzIGFyZSByZXNwZWN0ZWQsIGluIGEgd2F5LlxuXCJEYXRlXCIgYW5kIFwiU2Vjb25kc1wiIGJlaGF2ZSBhcyB1c3VhbC5cblwiV2VlayBEYXlcIiBpbnNlcnRzIElTTyBXZWVrIGFuZCBXZWVrZGF5IGJldHdlZW4gdGhlIGRhdGUgYW5kIHRpbWUuIEUuZy4gXCIyMDIzLTEwLTE2IFc0Mi0xIDE5OjQ1XCIuIiwKICAibmFtZSI6ICJJU084NjAxLWlzaCBDbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9TNDEwL2lzbzg2MDFpc2giLAogICJ1dWlkIjogImlzbzg2MDFpc2hAUzQxMCIsCiAgInZlcnNpb24iOiA0Cn0="}
+    "45": {"version": "7", "sha256": "1vfwipnffnmy0myi51ks1zpx3cy6dh1313b01jc3jz838zgkcnza", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk92ZXJyaWRlcyBHbm9tZSdzIGNsb2NrIGZvcm1hdCB3aXRoIElTTzg2MDEtaW5zcGlyZWQgb25lLlxuXG5DbG9jayBwcmVmZXJlbmNlcyBpbiBEYXRlICYgVGltZSBzZWN0aW9uIG9mIEdub21lIFNldHRpbmdzIGFyZSByZXNwZWN0ZWQsIGluIGEgd2F5LlxuXCJEYXRlXCIgYW5kIFwiU2Vjb25kc1wiIGJlaGF2ZSBhcyB1c3VhbC5cblwiV2VlayBEYXlcIiBpbnNlcnRzIElTTyBXZWVrIGFuZCBXZWVrZGF5IGJldHdlZW4gdGhlIGRhdGUgYW5kIHRpbWUuIEUuZy4gXCIyMDIzLTEwLTE2IFc0Mi0xIDE5OjQ1XCIuIiwKICAibmFtZSI6ICJJU084NjAxLWlzaCBDbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vUzQxMC9pc284NjAxaXNoIiwKICAidXVpZCI6ICJpc284NjAxaXNoQFM0MTAiLAogICJ2ZXJzaW9uIjogNwp9"}
   }}
 , {"uuid": "lu-wotd@praczet.github.com", "name": "Luxembourgish - Word Of The Day", "pname": "luxembourgish-word-of-the-day", "description": "Displays Luxembourgish's The Word of the Day. It gets them (wotds) from LOD.lu", "link": "https://extensions.gnome.org/extension/6418/luxembourgish-word-of-the-day/", "shell_version_map": {
     "44": {"version": "3", "sha256": "0mn2xbvcjzqw8h95khp1sj2jaq7mpfd53wyzfcsmcc3jv4f72ipn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIEx1eGVtYm91cmdpc2gncyBUaGUgV29yZCBvZiB0aGUgRGF5LiBJdCBnZXRzIHRoZW0gKHdvdGRzKSBmcm9tIExPRC5sdSIsCiAgImdldHRleHQtZG9tYWluIjogImx1LXdvdGQiLAogICJuYW1lIjogIkx1eGVtYm91cmdpc2ggLSBXb3JkIE9mIFRoZSBEYXkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHUtd290ZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wcmFjemV0L2x1LXdvdGQiLAogICJ1dWlkIjogImx1LXdvdGRAcHJhY3pldC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="},
@@ -6301,7 +6325,7 @@
     "42": {"version": "1", "sha256": "0lw047iqjzmsnz19wajr73n1zprgh8r4mhh9srjkhm65k5h4gfs5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bHRpbW9uaXRvciBkaW1taW5nIG92ZXJsYXkgd2l0aCBSR0IgcmVndWxhdGlvbjogZXh0ZW5zaW9uIGFkZHMgYSBidXR0b24gd2l0aCBhIGxpZ2h0IGJ1bGIgaWNvbiB0byB5b3VyIHBhbmVsLiBDbGlja2luZyB0aGlzIGJ1dHRvbiByZXZlYWxzIGluZGl2aWR1YWwgc2xpZGVycyBmb3IgZWFjaCBjb25uZWN0ZWQgbW9uaXRvciwgYWxsb3dpbmcgeW91IHRvIGFkanVzdCB0aGUgZGltbWluZyBsZXZlbC4gQWRkaXRpb25hbGx5LCB5b3UgY2FuIHRvZ2dsZSB0aGUgY29sb3Igb2YgdGhlIGRpbW1pbmcgZWZmZWN0IGFuZCBjdXN0b21pemUgaXQgdXNpbmcgUkdCIHNsaWRlcnMgbG9jYXRlZCBhdCB0aGUgYm90dG9tIG9mIHRoZSBtZW51LiBcblxuVGVzdGVkIHdpdGggVWJ1bnR1IDIyLjA0LjMgTFRTIGFuZCBHTk9NRSBTaGVsbCA0Mi45LiBcblxuSXQgaXMgYSBmb3JrIG9mIERpbSBEZXNrdG9wIDcwLiIsCiAgIm5hbWUiOiAiVml2aWRTaGFkZTogTXVsdGktTW9uaXRvciBSR0IgRGltbWluZyBDb250cm9sIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21vem82NC9WaXZpZFNoYWRlIiwKICAidXVpZCI6ICJWaXZpZFNoYWRlQG1vem82NC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMQp9"}
   }}
 , {"uuid": "picture-of-the-day@swsnr.de", "name": "Picture of the Day", "pname": "picture-of-the-day", "description": "Get a picture of the day as desktop background.\n\nSupports the following sources:\n\n* NASA Astronomy Picture of the Day (APOD) from https://apod.nasa.gov/apod/astropix.html\n* NASA Earth Observatory Image of the Day from https://earthobservatory.nasa.gov/topic/image-of-the-day\n* Bing from https://www.bing.com\n* Wikimedia from https://commons.wikimedia.org/wiki/Main_Page\n", "link": "https://extensions.gnome.org/extension/6469/picture-of-the-day/", "shell_version_map": {
-    "45": {"version": "19", "sha256": "17d4vbz6gc6prd1hs4y2g44v5x49bfjlfqy9z31yn82d8iy8gs4d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdldCBhIHBpY3R1cmUgb2YgdGhlIGRheSBhcyBkZXNrdG9wIGJhY2tncm91bmQuXG5cblN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgc291cmNlczpcblxuKiBOQVNBIEFzdHJvbm9teSBQaWN0dXJlIG9mIHRoZSBEYXkgKEFQT0QpIGZyb20gaHR0cHM6Ly9hcG9kLm5hc2EuZ292L2Fwb2QvYXN0cm9waXguaHRtbFxuKiBOQVNBIEVhcnRoIE9ic2VydmF0b3J5IEltYWdlIG9mIHRoZSBEYXkgZnJvbSBodHRwczovL2VhcnRob2JzZXJ2YXRvcnkubmFzYS5nb3YvdG9waWMvaW1hZ2Utb2YtdGhlLWRheVxuKiBCaW5nIGZyb20gaHR0cHM6Ly93d3cuYmluZy5jb21cbiogV2lraW1lZGlhIGZyb20gaHR0cHM6Ly9jb21tb25zLndpa2ltZWRpYS5vcmcvd2lraS9NYWluX1BhZ2VcbiIsCiAgImdldHRleHQtZG9tYWluIjogInBpY3R1cmUtb2YtdGhlLWRheUBzd3Nuci5kZSIsCiAgIm5hbWUiOiAiUGljdHVyZSBvZiB0aGUgRGF5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN3c25yLXBpY3R1cmUtb2YtdGhlLWRheSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zd3Nuci9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGljdHVyZS1vZi10aGUtZGF5IiwKICAidXVpZCI6ICJwaWN0dXJlLW9mLXRoZS1kYXlAc3dzbnIuZGUiLAogICJ2ZXJzaW9uIjogMTksCiAgInZlcnNpb24tbmFtZSI6ICI0NS4xMiIKfQ=="}
+    "45": {"version": "20", "sha256": "0fsx12ngzhhzrhrabd5r6d10yyf5x7gg3manm6b09hb1xqwrl7cv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdldCBhIHBpY3R1cmUgb2YgdGhlIGRheSBhcyBkZXNrdG9wIGJhY2tncm91bmQuXG5cblN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgc291cmNlczpcblxuKiBOQVNBIEFzdHJvbm9teSBQaWN0dXJlIG9mIHRoZSBEYXkgKEFQT0QpIGZyb20gaHR0cHM6Ly9hcG9kLm5hc2EuZ292L2Fwb2QvYXN0cm9waXguaHRtbFxuKiBOQVNBIEVhcnRoIE9ic2VydmF0b3J5IEltYWdlIG9mIHRoZSBEYXkgZnJvbSBodHRwczovL2VhcnRob2JzZXJ2YXRvcnkubmFzYS5nb3YvdG9waWMvaW1hZ2Utb2YtdGhlLWRheVxuKiBCaW5nIGZyb20gaHR0cHM6Ly93d3cuYmluZy5jb21cbiogV2lraW1lZGlhIGZyb20gaHR0cHM6Ly9jb21tb25zLndpa2ltZWRpYS5vcmcvd2lraS9NYWluX1BhZ2VcbiIsCiAgImdldHRleHQtZG9tYWluIjogInBpY3R1cmUtb2YtdGhlLWRheUBzd3Nuci5kZSIsCiAgIm5hbWUiOiAiUGljdHVyZSBvZiB0aGUgRGF5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN3c25yLXBpY3R1cmUtb2YtdGhlLWRheSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zd3Nuci9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGljdHVyZS1vZi10aGUtZGF5IiwKICAidXVpZCI6ICJwaWN0dXJlLW9mLXRoZS1kYXlAc3dzbnIuZGUiLAogICJ2ZXJzaW9uIjogMjAsCiAgInZlcnNpb24tbmFtZSI6ICI0NS4xMyIKfQ=="}
   }}
 , {"uuid": "overviewnow@thesola.io", "name": "Overview Flick", "pname": "overview-flick", "description": "Flick from the right to get the Overview.\n\nThis extension was revived to GNOME 45 from the original, https://extensions.gnome.org/extension/1088/overview-now/\n\nOriginal description:\n\nThis is my first extension. Thanks, GNOME!. Based on \"Slide for Keyboard\", https://extensions.gnome.org/extension/993/slide-for-keyboard/\n\nWhy did I do this? Well, if you do a gesture with your thumb, on your touchscreen, from the right to the center, you'll get the Overview. If you do that, your thumb will be placed in the Desktop selector, so you will be able to move between desktops with your thumb. Perfect! This is also easier to trigger than the default GNOME gesture (three fingers closing).", "link": "https://extensions.gnome.org/extension/6478/overview-flick/", "shell_version_map": {
     "45": {"version": "2", "sha256": "14bbic6vx13vaj5xqws34mlwmvfq436al63lzvwa41hkckqyxk6s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZsaWNrIGZyb20gdGhlIHJpZ2h0IHRvIGdldCB0aGUgT3ZlcnZpZXcuXG5cblRoaXMgZXh0ZW5zaW9uIHdhcyByZXZpdmVkIHRvIEdOT01FIDQ1IGZyb20gdGhlIG9yaWdpbmFsLCBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMDg4L292ZXJ2aWV3LW5vdy9cblxuT3JpZ2luYWwgZGVzY3JpcHRpb246XG5cblRoaXMgaXMgbXkgZmlyc3QgZXh0ZW5zaW9uLiBUaGFua3MsIEdOT01FIS4gQmFzZWQgb24gXCJTbGlkZSBmb3IgS2V5Ym9hcmRcIiwgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vOTkzL3NsaWRlLWZvci1rZXlib2FyZC9cblxuV2h5IGRpZCBJIGRvIHRoaXM/IFdlbGwsIGlmIHlvdSBkbyBhIGdlc3R1cmUgd2l0aCB5b3VyIHRodW1iLCBvbiB5b3VyIHRvdWNoc2NyZWVuLCBmcm9tIHRoZSByaWdodCB0byB0aGUgY2VudGVyLCB5b3UnbGwgZ2V0IHRoZSBPdmVydmlldy4gSWYgeW91IGRvIHRoYXQsIHlvdXIgdGh1bWIgd2lsbCBiZSBwbGFjZWQgaW4gdGhlIERlc2t0b3Agc2VsZWN0b3IsIHNvIHlvdSB3aWxsIGJlIGFibGUgdG8gbW92ZSBiZXR3ZWVuIGRlc2t0b3BzIHdpdGggeW91ciB0aHVtYi4gUGVyZmVjdCEgVGhpcyBpcyBhbHNvIGVhc2llciB0byB0cmlnZ2VyIHRoYW4gdGhlIGRlZmF1bHQgR05PTUUgZ2VzdHVyZSAodGhyZWUgZmluZ2VycyBjbG9zaW5nKS4iLAogICJuYW1lIjogIk92ZXJ2aWV3IEZsaWNrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RoZXNvbGExMC9nbm9tZS1zaGVsbC1vdmVydmlldy1mbGljayIsCiAgInV1aWQiOiAib3ZlcnZpZXdub3dAdGhlc29sYS5pbyIsCiAgInZlcnNpb24iOiAyCn0="}
@@ -6337,29 +6361,38 @@
 , {"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": "10", "sha256": "05xba9h9d1939fgc05xizc0ds0c014ycmwg2ax461pgjy218xfkb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8gXG4gaHR0cHM6Ly9wYWd1cmUuaW8vYmFja2dyb3VuZC1sb2dvLWV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiTG9nbyBXaWRnZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubG9nby13aWRnZXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvbG9nby13aWRnZXQiLAogICJ1dWlkIjogImxvZ293aWRnZXRAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
-    "45": {"version": "9", "sha256": "098bzgxgn2y0zrs5i8qxyl5mapnb377vi104c51jijg0lg63njz8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8gXG4gaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tYmFja2dyb3VuZC1sb2dvIiwKICAibmFtZSI6ICJMb2dvIFdpZGdldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLXdpZGdldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvbG9nby13aWRnZXQiLAogICJ1dWlkIjogImxvZ293aWRnZXRAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogOQp9"}
+    "45": {"version": "12", "sha256": "1zykpyzm7s19db4g2kl3p9nlywzag3rg1331mjq6vscsky2y5iy9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFxuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogImhvd2JlYSIKICB9LAogICJuYW1lIjogIkRlc2t0b3AgTG9nbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLXdpZGdldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvbG9nby13aWRnZXQiLAogICJ1dWlkIjogImxvZ293aWRnZXRAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogMTIKfQ=="}
   }}
 , {"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": "6", "sha256": "1zcnxs6px0mwfpbngga0h3nnbkx2fhhpy5pfrdfw3nk8yw5gkm63", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF6YW4gaXMgYW4gSXNsYW1pYyBwcmF5ZXIgdGltZXMgZXh0ZW5zaW9uIGZvciBHbm9tZSBTaGVsbC5cbkl0J3MgYSBmb3JrIG9mIHRoZSBleHRlbnNpb24gYnkgZmFpc3NhbG9vLlxuXG5GZWF0dXJlc1xuLSBMaXN0IGNvbXB1bHNvcnkgcHJheWVyIHRpbWVzXG4tIE9wdGlvbmFsbHkgZGlzcGxheSBJbXNhaywgU3VucmlzZSwgU3Vuc2V0IGFuZCBNaWRuaWdodFxuLSBTaG93IHJlbWFpbmluZyB0aW1lIGZvciB0aGUgdXBjb21pbmcgcHJheWVyLlxuLSBTaG93IGN1cnJlbnQgZGF0ZSBpbiBIaWpyaSBjYWxlbmRhci5cbi0gRGlzcGxheSBhIG5vdGlmaWNhdGlvbiB3aGVuIGl0J3MgdGltZSBmb3IgcHJheWVyLlxuLSBBdXRvbWF0aWMgR2VvY2x1ZTIgbG9jYXRpb24gZGV0ZWN0aW9uXG4tIFNob3cgdGltZXMgaW4gMjQgaG91ciBhbmQgMTIgaG91ciBmb3JtYXRzXG4tIEhpanJpIGRhdGUgYWRqdXNtZW50XG4tIElxYW1haCBvcHRpb24iLAogICJuYW1lIjogInhBemFuVGltZXMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXphbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hN21lZGtoYWxhZi9hemFuLWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYXphbkBhN21lZGtoYWxhZiIsCiAgInZlcnNpb24iOiA2Cn0="}
   }}
+, {"uuid": "restartinto@bgreco.net", "name": "Restart Into...", "pname": "restart-into", "description": "Adds a button in the Restart dialog to select a secondary operating system", "link": "https://extensions.gnome.org/extension/6541/restart-into/", "shell_version_map": {
+    "42": {"version": "4", "sha256": "0kz5lq0gxj4vvy6rlhzh5hpilzjwzh2qgjbc8nyvj3wwpzrw1pfi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBidXR0b24gaW4gdGhlIFJlc3RhcnQgZGlhbG9nIHRvIHNlbGVjdCBhIHNlY29uZGFyeSBvcGVyYXRpbmcgc3lzdGVtIiwKICAibmFtZSI6ICJSZXN0YXJ0IEludG8uLi4iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmV0LWJncmVjby1yZXN0YXJ0aW50byIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vaGcuYmdyZWNvLm5ldC9yZXN0YXJ0aW50b0BiZ3JlY28ubmV0IiwKICAidXVpZCI6ICJyZXN0YXJ0aW50b0BiZ3JlY28ubmV0IiwKICAidmVyc2lvbiI6IDQsCiAgInZlcnNpb24tbmFtZSI6ICI0Mi4xLjIiCn0="}
+  }}
 , {"uuid": "clown@markocic", "name": "Clown", "pname": "clown", "description": "Displays clown emoji in the panel and plays clown theme song on click", "link": "https://extensions.gnome.org/extension/6544/clown/", "shell_version_map": {
     "45": {"version": "3", "sha256": "13ybvk48whny007fxvspdpx7slg42l7fgrg0drcfrh9w6c6jvq0l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGNsb3duIGVtb2ppIGluIHRoZSBwYW5lbCBhbmQgcGxheXMgY2xvd24gdGhlbWUgc29uZyBvbiBjbGljayIsCiAgIm5hbWUiOiAiQ2xvd24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFya29jaWMvY2xvd24tZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJjbG93bkBtYXJrb2NpYyIsCiAgInZlcnNpb24iOiAzCn0="}
   }}
-, {"uuid": "input-source-dbus-interface@raiden_fumo", "name": "Input source D-Bus interface", "pname": "input-source-d-bus-interface", "description": "Add D-Bus interface for changing input sources via command", "link": "https://extensions.gnome.org/extension/6547/input-source-d-bus-interface/", "shell_version_map": {
-    "45": {"version": "1", "sha256": "16v5f7q798708srm1vqbcq37ykgsmybl6scl7bkk8sqksvangqsm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBELUJ1cyBpbnRlcmZhY2UgZm9yIGNoYW5naW5nIGlucHV0IHNvdXJjZXMgdmlhIGNvbW1hbmQiLAogICJuYW1lIjogIklucHV0IHNvdXJjZSBELUJ1cyBpbnRlcmZhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGVycnNjaGVyLW9mLXNsZWVwaW5nL2dub21lLWlucHV0LXNvdXJjZS1kYnVzLWludGVyZmFjZSIsCiAgInV1aWQiOiAiaW5wdXQtc291cmNlLWRidXMtaW50ZXJmYWNlQHJhaWRlbl9mdW1vIiwKICAidmVyc2lvbiI6IDEKfQ=="}
+, {"uuid": "input-source-dbus-interface@raiden_fumo", "name": "Input source D-Bus interface", "pname": "input-source-d-bus-interface", "description": "Add D-Bus interface for changing input sources via command. Useful for binding separate shortcuts for switching to different input sources (keyboard layouts). See README for details on how to use.", "link": "https://extensions.gnome.org/extension/6547/input-source-d-bus-interface/", "shell_version_map": {
+    "38": {"version": "3", "sha256": "1yj6b4ccfmk3k9bv2hp7x29dsa1ms7spq6n1xy8alaijy04jav5a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBELUJ1cyBpbnRlcmZhY2UgZm9yIGNoYW5naW5nIGlucHV0IHNvdXJjZXMgdmlhIGNvbW1hbmQiLAogICJuYW1lIjogIklucHV0IHNvdXJjZSBELUJ1cyBpbnRlcmZhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlcnJzY2hlci1vZi1zbGVlcGluZy9nbm9tZS1pbnB1dC1zb3VyY2UtZGJ1cy1pbnRlcmZhY2UiLAogICJ1dWlkIjogImlucHV0LXNvdXJjZS1kYnVzLWludGVyZmFjZUByYWlkZW5fZnVtbyIsCiAgInZlcnNpb24iOiAzCn0="},
+    "40": {"version": "3", "sha256": "1yj6b4ccfmk3k9bv2hp7x29dsa1ms7spq6n1xy8alaijy04jav5a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBELUJ1cyBpbnRlcmZhY2UgZm9yIGNoYW5naW5nIGlucHV0IHNvdXJjZXMgdmlhIGNvbW1hbmQiLAogICJuYW1lIjogIklucHV0IHNvdXJjZSBELUJ1cyBpbnRlcmZhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlcnJzY2hlci1vZi1zbGVlcGluZy9nbm9tZS1pbnB1dC1zb3VyY2UtZGJ1cy1pbnRlcmZhY2UiLAogICJ1dWlkIjogImlucHV0LXNvdXJjZS1kYnVzLWludGVyZmFjZUByYWlkZW5fZnVtbyIsCiAgInZlcnNpb24iOiAzCn0="},
+    "41": {"version": "3", "sha256": "1yj6b4ccfmk3k9bv2hp7x29dsa1ms7spq6n1xy8alaijy04jav5a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBELUJ1cyBpbnRlcmZhY2UgZm9yIGNoYW5naW5nIGlucHV0IHNvdXJjZXMgdmlhIGNvbW1hbmQiLAogICJuYW1lIjogIklucHV0IHNvdXJjZSBELUJ1cyBpbnRlcmZhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlcnJzY2hlci1vZi1zbGVlcGluZy9nbm9tZS1pbnB1dC1zb3VyY2UtZGJ1cy1pbnRlcmZhY2UiLAogICJ1dWlkIjogImlucHV0LXNvdXJjZS1kYnVzLWludGVyZmFjZUByYWlkZW5fZnVtbyIsCiAgInZlcnNpb24iOiAzCn0="},
+    "42": {"version": "3", "sha256": "1yj6b4ccfmk3k9bv2hp7x29dsa1ms7spq6n1xy8alaijy04jav5a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBELUJ1cyBpbnRlcmZhY2UgZm9yIGNoYW5naW5nIGlucHV0IHNvdXJjZXMgdmlhIGNvbW1hbmQiLAogICJuYW1lIjogIklucHV0IHNvdXJjZSBELUJ1cyBpbnRlcmZhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlcnJzY2hlci1vZi1zbGVlcGluZy9nbm9tZS1pbnB1dC1zb3VyY2UtZGJ1cy1pbnRlcmZhY2UiLAogICJ1dWlkIjogImlucHV0LXNvdXJjZS1kYnVzLWludGVyZmFjZUByYWlkZW5fZnVtbyIsCiAgInZlcnNpb24iOiAzCn0="},
+    "43": {"version": "3", "sha256": "1yj6b4ccfmk3k9bv2hp7x29dsa1ms7spq6n1xy8alaijy04jav5a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBELUJ1cyBpbnRlcmZhY2UgZm9yIGNoYW5naW5nIGlucHV0IHNvdXJjZXMgdmlhIGNvbW1hbmQiLAogICJuYW1lIjogIklucHV0IHNvdXJjZSBELUJ1cyBpbnRlcmZhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlcnJzY2hlci1vZi1zbGVlcGluZy9nbm9tZS1pbnB1dC1zb3VyY2UtZGJ1cy1pbnRlcmZhY2UiLAogICJ1dWlkIjogImlucHV0LXNvdXJjZS1kYnVzLWludGVyZmFjZUByYWlkZW5fZnVtbyIsCiAgInZlcnNpb24iOiAzCn0="},
+    "44": {"version": "3", "sha256": "1yj6b4ccfmk3k9bv2hp7x29dsa1ms7spq6n1xy8alaijy04jav5a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBELUJ1cyBpbnRlcmZhY2UgZm9yIGNoYW5naW5nIGlucHV0IHNvdXJjZXMgdmlhIGNvbW1hbmQiLAogICJuYW1lIjogIklucHV0IHNvdXJjZSBELUJ1cyBpbnRlcmZhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlcnJzY2hlci1vZi1zbGVlcGluZy9nbm9tZS1pbnB1dC1zb3VyY2UtZGJ1cy1pbnRlcmZhY2UiLAogICJ1dWlkIjogImlucHV0LXNvdXJjZS1kYnVzLWludGVyZmFjZUByYWlkZW5fZnVtbyIsCiAgInZlcnNpb24iOiAzCn0="},
+    "45": {"version": "2", "sha256": "0plh54aqh27kzp2rnbmsf4rqgr1mdx4nl16fg0ijnhfg700yvl45", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBELUJ1cyBpbnRlcmZhY2UgZm9yIGNoYW5naW5nIGlucHV0IHNvdXJjZXMgdmlhIGNvbW1hbmQiLAogICJuYW1lIjogIklucHV0IHNvdXJjZSBELUJ1cyBpbnRlcmZhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGVycnNjaGVyLW9mLXNsZWVwaW5nL2dub21lLWlucHV0LXNvdXJjZS1kYnVzLWludGVyZmFjZSIsCiAgInV1aWQiOiAiaW5wdXQtc291cmNlLWRidXMtaW50ZXJmYWNlQHJhaWRlbl9mdW1vIiwKICAidmVyc2lvbiI6IDIKfQ=="}
   }}
 , {"uuid": "rectangle@acristoffers.me", "name": "Rectangle", "pname": "rectangle", "description": "Magnet/Rectangle like manual tiling", "link": "https://extensions.gnome.org/extension/6553/rectangle/", "shell_version_map": {
-    "42": {"version": "7", "sha256": "0qwxfcil50pkwg0pkxqyf0xqq77d1yxg4hy95zi0wd1qbzj4018b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ25ldC9SZWN0YW5nbGUgbGlrZSBtYW51YWwgdGlsaW5nIiwKICAibmFtZSI6ICJSZWN0YW5nbGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucmVjdGFuZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWNyaXN0b2ZmZXJzL2dub21lLXJlY3RhbmdsZSIsCiAgInV1aWQiOiAicmVjdGFuZ2xlQGFjcmlzdG9mZmVycy5tZSIsCiAgInZlcnNpb24iOiA3Cn0="},
-    "43": {"version": "7", "sha256": "0qwxfcil50pkwg0pkxqyf0xqq77d1yxg4hy95zi0wd1qbzj4018b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ25ldC9SZWN0YW5nbGUgbGlrZSBtYW51YWwgdGlsaW5nIiwKICAibmFtZSI6ICJSZWN0YW5nbGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucmVjdGFuZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWNyaXN0b2ZmZXJzL2dub21lLXJlY3RhbmdsZSIsCiAgInV1aWQiOiAicmVjdGFuZ2xlQGFjcmlzdG9mZmVycy5tZSIsCiAgInZlcnNpb24iOiA3Cn0="},
-    "44": {"version": "7", "sha256": "0qwxfcil50pkwg0pkxqyf0xqq77d1yxg4hy95zi0wd1qbzj4018b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ25ldC9SZWN0YW5nbGUgbGlrZSBtYW51YWwgdGlsaW5nIiwKICAibmFtZSI6ICJSZWN0YW5nbGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucmVjdGFuZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWNyaXN0b2ZmZXJzL2dub21lLXJlY3RhbmdsZSIsCiAgInV1aWQiOiAicmVjdGFuZ2xlQGFjcmlzdG9mZmVycy5tZSIsCiAgInZlcnNpb24iOiA3Cn0="},
-    "45": {"version": "8", "sha256": "1bm0nfcixkfwf81s4d83pvjlhizd03ipmlkj3s9xr68di1d9fd2d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ25ldC9SZWN0YW5nbGUgbGlrZSBtYW51YWwgdGlsaW5nIiwKICAibmFtZSI6ICJSZWN0YW5nbGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucmVjdGFuZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FjcmlzdG9mZmVycy9nbm9tZS1yZWN0YW5nbGUiLAogICJ1dWlkIjogInJlY3RhbmdsZUBhY3Jpc3RvZmZlcnMubWUiLAogICJ2ZXJzaW9uIjogOAp9"}
+    "42": {"version": "9", "sha256": "0m5hzgihyy2ws5wmqxmzfp59cljqkcyga1i5pnfkqzl28dpnpkbs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ25ldC9SZWN0YW5nbGUgbGlrZSBtYW51YWwgdGlsaW5nIiwKICAibmFtZSI6ICJSZWN0YW5nbGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucmVjdGFuZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWNyaXN0b2ZmZXJzL2dub21lLXJlY3RhbmdsZSIsCiAgInV1aWQiOiAicmVjdGFuZ2xlQGFjcmlzdG9mZmVycy5tZSIsCiAgInZlcnNpb24iOiA5Cn0="},
+    "43": {"version": "9", "sha256": "0m5hzgihyy2ws5wmqxmzfp59cljqkcyga1i5pnfkqzl28dpnpkbs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ25ldC9SZWN0YW5nbGUgbGlrZSBtYW51YWwgdGlsaW5nIiwKICAibmFtZSI6ICJSZWN0YW5nbGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucmVjdGFuZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWNyaXN0b2ZmZXJzL2dub21lLXJlY3RhbmdsZSIsCiAgInV1aWQiOiAicmVjdGFuZ2xlQGFjcmlzdG9mZmVycy5tZSIsCiAgInZlcnNpb24iOiA5Cn0="},
+    "44": {"version": "9", "sha256": "0m5hzgihyy2ws5wmqxmzfp59cljqkcyga1i5pnfkqzl28dpnpkbs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ25ldC9SZWN0YW5nbGUgbGlrZSBtYW51YWwgdGlsaW5nIiwKICAibmFtZSI6ICJSZWN0YW5nbGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucmVjdGFuZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWNyaXN0b2ZmZXJzL2dub21lLXJlY3RhbmdsZSIsCiAgInV1aWQiOiAicmVjdGFuZ2xlQGFjcmlzdG9mZmVycy5tZSIsCiAgInZlcnNpb24iOiA5Cn0="},
+    "45": {"version": "11", "sha256": "1mldn4fgkn0fl6ccjyj8ka9hsqyf0wwrkym7zlfr7gd9a1jd7a16", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ25ldC9SZWN0YW5nbGUgbGlrZSBtYW51YWwgdGlsaW5nIiwKICAibmFtZSI6ICJSZWN0YW5nbGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucmVjdGFuZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FjcmlzdG9mZmVycy9nbm9tZS1yZWN0YW5nbGUiLAogICJ1dWlkIjogInJlY3RhbmdsZUBhY3Jpc3RvZmZlcnMubWUiLAogICJ2ZXJzaW9uIjogMTEKfQ=="}
   }}
 , {"uuid": "task-up@fthx", "name": "Task Up", "pname": "task-up", "description": "Task bar. Handles multiple workspaces. Very light extension.\n\n Complete rewrite of BaBar task bar extension, light code only has 300 lines.\n\n Some settings.", "link": "https://extensions.gnome.org/extension/6556/task-up/", "shell_version_map": {
-    "45": {"version": "22", "sha256": "1pila61ya9ibngv5ylh52q8hykgb9w5k45w9cyx8d8vgdsvas0pw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBIYW5kbGVzIG11bHRpcGxlIHdvcmtzcGFjZXMuIFZlcnkgbGlnaHQgZXh0ZW5zaW9uLlxuXG4gQ29tcGxldGUgcmV3cml0ZSBvZiBCYUJhciB0YXNrIGJhciBleHRlbnNpb24sIGxpZ2h0IGNvZGUgb25seSBoYXMgMzAwIGxpbmVzLlxuXG4gU29tZSBzZXR0aW5ncy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJUYXNrIFVwIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhc2stdXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC90YXNrLXVwIiwKICAidXVpZCI6ICJ0YXNrLXVwQGZ0aHgiLAogICJ2ZXJzaW9uIjogMjIKfQ=="}
+    "45": {"version": "31", "sha256": "0yycjk6lyr81l9vixggy8bkchr0lbghln8i144m9py0003yw1jxr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBIYW5kbGVzIG11bHRpcGxlIHdvcmtzcGFjZXMuIFZlcnkgbGlnaHQgZXh0ZW5zaW9uLlxuXG4gQ29tcGxldGUgcmV3cml0ZSBvZiBCYUJhciB0YXNrIGJhciBleHRlbnNpb24sIGxpZ2h0IGNvZGUgb25seSBoYXMgMzAwIGxpbmVzLlxuXG4gU29tZSBzZXR0aW5ncy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJUYXNrIFVwIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhc2stdXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC90YXNrLXVwIiwKICAidXVpZCI6ICJ0YXNrLXVwQGZ0aHgiLAogICJ2ZXJzaW9uIjogMzEKfQ=="}
   }}
 , {"uuid": "workspace-switch-buttons@rajan-31", "name": "Workspace Switch Buttons", "pname": "workspace-switch-buttons", "description": "This GNOME Shell extension offers following features:\n\n- Buttons to switch to left and right workspace\n\n- Shows index of active workspace (click it for overview)\n[Can hide it in preferences]\n\n- Hides \"Activities\" button\n[Can turn this off in preferences]", "link": "https://extensions.gnome.org/extension/6562/workspace-switch-buttons/", "shell_version_map": {
     "42": {"version": "5", "sha256": "1dwj8vwl5laa4ih8vpnh4slm6nlh30bxggqsbngl6b9473szkvcg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYnV0dG9ucyB0byBzd2l0Y2ggdG8gbGVmdCBhbmQgcmlnaHQgd29ya3NwYWNlLCBzaG93cyBhY3RpdmUgd29ya3NwYWNlIGluZGV4LCBhbmQgaGlkZXMgXCJBY3Rpdml0aWVzXCIgYnV0dG9uIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU3dpdGNoIEJ1dHRvbnMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud29ya3NwYWNlLXN3aXRjaC1idXR0b25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmFqYW4tMzEvV29ya3NwYWNlLVN3aXRjaC1CdXR0b25zIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2Utc3dpdGNoLWJ1dHRvbnNAcmFqYW4tMzEiLAogICJ2ZXJzaW9uIjogNQp9"},
@@ -6372,14 +6405,14 @@
 , {"uuid": "simplebreakreminder@castillodel.com", "name": "Simple Break Reminder", "pname": "simple-break-reminder", "description": "It's important to remember to take a break", "link": "https://extensions.gnome.org/extension/6568/simple-break-reminder/", "shell_version_map": {
     "45": {"version": "2", "sha256": "07014vqkcxhrndwywbprxkngvvyn0fvwpq7iaky04m8zb88jhk4l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkl0J3MgaW1wb3J0YW50IHRvIHJlbWVtYmVyIHRvIHRha2UgYSBicmVhayIsCiAgIm5hbWUiOiAiU2ltcGxlIEJyZWFrIFJlbWluZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXBsZWJyZWFrcmVtaW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2FzdGlsbG9EZWwvc2ltcGxlYnJlYWtyZW1pbmRlciIsCiAgInV1aWQiOiAic2ltcGxlYnJlYWtyZW1pbmRlckBjYXN0aWxsb2RlbC5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}
   }}
-, {"uuid": "OnTheTop@fablevi.github.io", "name": "On the Top", "pname": "on-the-top", "description": "Your window is above?\n\nThis extension offers the possibility to add a button to the TopPanel, which is if pushed, then your window will float on top of the other windows\n", "link": "https://extensions.gnome.org/extension/6571/on-the-top/", "shell_version_map": {
-    "45": {"version": "8", "sha256": "0a6rivbnybcvi1psyia2w9ha97k6zilh3cjmxab5y13yf1y367jg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBvbiB0b3AgYnV0dG9uIGluIHRoZSB0b3AgYmFyIiwKICAibmFtZSI6ICJPbiBUaGUgVG9wIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZhYmxldmkvT25UaGVUb3AtZmFibGV2aS5naXRodWIuaW8iLAogICJ1dWlkIjogIk9uVGhlVG9wQGZhYmxldmkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDgKfQ=="}
+, {"uuid": "OnTheTop@fablevi.github.io", "name": "On The Top", "pname": "on-the-top", "description": "Always on top button in the top bar", "link": "https://extensions.gnome.org/extension/6571/on-the-top/", "shell_version_map": {
+    "45": {"version": "10", "sha256": "1k2kfclz145xmiby6lc5f4fylqwh0w5mdc4nv4vd4c6ynzpj8rga", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBvbiB0b3AgYnV0dG9uIGluIHRoZSB0b3AgYmFyIiwKICAiZXh0ZW5zaW9uLWlkIjogInNob3ctRGJ1dHRvbiIsCiAgImdldHRleHQtZG9tYWluIjogInNob3ctRGJ1dHRvbiIsCiAgIm5hbWUiOiAiT24gVGhlIFRvcCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vbi10aGUtdG9wIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZhYmxldmkvT25UaGVUb3AtZmFibGV2aS5naXRodWIuaW8iLAogICJ1dWlkIjogIk9uVGhlVG9wQGZhYmxldmkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEwCn0="}
   }}
-, {"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\nFeedback / suggestions are welcome.\n\nCustomize:\n- Bar Type: Fixed, Floating or Islands\n- Bar height, margin\n- Bar foreground color, font\n- Bar background color, transparency, gradient,  shadow\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\nIf the panel/menu isn't looking right, you need to tweak some settings. There are a lot of knobs to allow for differnt 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 Islands BG will affect the individual indicator buttons/combos (in Islands mode).\n- Gradient goes from Start color to End color. If you want a single color fading, select same color for both with differnt 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. \n- Panel Shadow: a downward shadow for the panel bar. Shadow Spread controls both shadow trasparency and spread together.\n- Border: \n    = Width controls thickness that grows inwards. 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    = Lastly, menu settings do not apply as soon as changed. You need to press 'Apply Menu Styles' button to apply the changes. 'Remove Menu Styles' button will remove all menu styles and revert to your default theme.\n\n\nCurrent Update: \n- New Bar Type 'Trilands'\n- Compatibility with 'Quick Settings Audio Panel' extension (thanks @Rayzeq)\n\nFuture update:\n- Custom color palette derived from desktop background / wallpaper", "link": "https://extensions.gnome.org/extension/6580/open-bar/", "shell_version_map": {
-    "42": {"version": "6", "sha256": "0gvadzf22mirif6asphnbxpy1y5rkzj1sy00fahc7h9jjmisg9h7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBCYXIgKCBUb3AgUGFuZWwgKSBjdXN0b21pemF0aW9uIC8gc3R5bGluZy4gT3BlbiB0aGUgVG9wIEJhciBhbmQgbGV0IHRoZSBjb2xvcnMgXHVkODNjXHVkZjc5IGZsb3cuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJuZXVyb21vcnBoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm9wZW5iYXIiLAogICJuYW1lIjogIk9wZW4gQmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9wZW5iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZXVyb21vcnBoL29wZW5iYXIiLAogICJ1dWlkIjogIm9wZW5iYXJAbmV1cm9tb3JwaCIsCiAgInZlcnNpb24iOiA2Cn0="},
-    "43": {"version": "6", "sha256": "0gvadzf22mirif6asphnbxpy1y5rkzj1sy00fahc7h9jjmisg9h7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBCYXIgKCBUb3AgUGFuZWwgKSBjdXN0b21pemF0aW9uIC8gc3R5bGluZy4gT3BlbiB0aGUgVG9wIEJhciBhbmQgbGV0IHRoZSBjb2xvcnMgXHVkODNjXHVkZjc5IGZsb3cuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJuZXVyb21vcnBoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm9wZW5iYXIiLAogICJuYW1lIjogIk9wZW4gQmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9wZW5iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZXVyb21vcnBoL29wZW5iYXIiLAogICJ1dWlkIjogIm9wZW5iYXJAbmV1cm9tb3JwaCIsCiAgInZlcnNpb24iOiA2Cn0="},
-    "44": {"version": "6", "sha256": "0gvadzf22mirif6asphnbxpy1y5rkzj1sy00fahc7h9jjmisg9h7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBCYXIgKCBUb3AgUGFuZWwgKSBjdXN0b21pemF0aW9uIC8gc3R5bGluZy4gT3BlbiB0aGUgVG9wIEJhciBhbmQgbGV0IHRoZSBjb2xvcnMgXHVkODNjXHVkZjc5IGZsb3cuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJuZXVyb21vcnBoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm9wZW5iYXIiLAogICJuYW1lIjogIk9wZW4gQmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9wZW5iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZXVyb21vcnBoL29wZW5iYXIiLAogICJ1dWlkIjogIm9wZW5iYXJAbmV1cm9tb3JwaCIsCiAgInZlcnNpb24iOiA2Cn0="},
-    "45": {"version": "7", "sha256": "1ml3nsldadapi63gzxk66glcnzbysy0bxn9hnb7qgsyl4nk3jhdz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBCYXIgKCBUb3AgUGFuZWwgKSBjdXN0b21pemF0aW9uIC8gc3R5bGluZy4gT3BlbiB0aGUgVG9wIEJhciBhbmQgbGV0IHRoZSBjb2xvcnMgXHVkODNjXHVkZjc5IGZsb3cuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJuZXVyb21vcnBoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm9wZW5iYXIiLAogICJuYW1lIjogIk9wZW4gQmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9wZW5iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmV1cm9tb3JwaC9vcGVuYmFyIiwKICAidXVpZCI6ICJvcGVuYmFyQG5ldXJvbW9ycGgiLAogICJ2ZXJzaW9uIjogNwp9"}
+, {"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\nUpdate (v10/v11) (also btn.child fix in v13/v14) : \n** Please click on 'Apply Menu Styles' (or change some setting) once you upgrade the extension. This will refresh the stylesheet as per your saved settings.\n- Apply style to notification popups\n- Candy-bar palette for panel buttons\n- Menu secondary color override to allow selecting custom (high contrast) colors within the menu\n- Fixes for screencast/ remote sharing/ battery indicators and DND toggle switch etc.\n\nFeedback / suggestions are welcome.\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\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\n* Includes a custom color palette in each color button popup. The palette is auto-generated from the desktop background.\n\nIf the panel/menu isn't looking right, you need to tweak some settings. There are a lot of knobs to allow for differnt 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 differnt 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 trasparency 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": "13", "sha256": "1jr879g164jmvv88zmcssmiqdykrdbaagpg6scap4srs4mq9lg98", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBCYXIgKCBUb3AgUGFuZWwgKSBjdXN0b21pemF0aW9uIC8gc3R5bGluZy4gT3BlbiB0aGUgVG9wIEJhciBhbmQgbGV0IHRoZSBjb2xvcnMgXHVkODNjXHVkZjc5IGZsb3cuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJuZXVyb21vcnBoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm9wZW5iYXIiLAogICJuYW1lIjogIk9wZW4gQmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9wZW5iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZXVyb21vcnBoL29wZW5iYXIiLAogICJ1dWlkIjogIm9wZW5iYXJAbmV1cm9tb3JwaCIsCiAgInZlcnNpb24iOiAxMwp9"},
+    "43": {"version": "13", "sha256": "1jr879g164jmvv88zmcssmiqdykrdbaagpg6scap4srs4mq9lg98", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBCYXIgKCBUb3AgUGFuZWwgKSBjdXN0b21pemF0aW9uIC8gc3R5bGluZy4gT3BlbiB0aGUgVG9wIEJhciBhbmQgbGV0IHRoZSBjb2xvcnMgXHVkODNjXHVkZjc5IGZsb3cuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJuZXVyb21vcnBoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm9wZW5iYXIiLAogICJuYW1lIjogIk9wZW4gQmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9wZW5iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZXVyb21vcnBoL29wZW5iYXIiLAogICJ1dWlkIjogIm9wZW5iYXJAbmV1cm9tb3JwaCIsCiAgInZlcnNpb24iOiAxMwp9"},
+    "44": {"version": "13", "sha256": "1jr879g164jmvv88zmcssmiqdykrdbaagpg6scap4srs4mq9lg98", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBCYXIgKCBUb3AgUGFuZWwgKSBjdXN0b21pemF0aW9uIC8gc3R5bGluZy4gT3BlbiB0aGUgVG9wIEJhciBhbmQgbGV0IHRoZSBjb2xvcnMgXHVkODNjXHVkZjc5IGZsb3cuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJuZXVyb21vcnBoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm9wZW5iYXIiLAogICJuYW1lIjogIk9wZW4gQmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9wZW5iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZXVyb21vcnBoL29wZW5iYXIiLAogICJ1dWlkIjogIm9wZW5iYXJAbmV1cm9tb3JwaCIsCiAgInZlcnNpb24iOiAxMwp9"},
+    "45": {"version": "14", "sha256": "05jxag81i6krwxzhi2jqg26rk4armnxys9r64q47s74k59s61yrh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBCYXIgKCBUb3AgUGFuZWwgKSBjdXN0b21pemF0aW9uIC8gc3R5bGluZy4gT3BlbiB0aGUgVG9wIEJhciBhbmQgbGV0IHRoZSBjb2xvcnMgXHVkODNjXHVkZjc5IGZsb3cuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJuZXVyb21vcnBoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm9wZW5iYXIiLAogICJuYW1lIjogIk9wZW4gQmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9wZW5iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmV1cm9tb3JwaC9vcGVuYmFyIiwKICAidXVpZCI6ICJvcGVuYmFyQG5ldXJvbW9ycGgiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}
   }}
 , {"uuid": "auto-power-profile@dmy3k.github.io", "name": "Auto Power Profile", "pname": "auto-power-profile", "description": "Automatically switch between power profiles based on power supply and battery status.", "link": "https://extensions.gnome.org/extension/6583/auto-power-profile/", "shell_version_map": {
     "45": {"version": "3", "sha256": "11y3snf4vslf6z27bp11b3mwa6b4fwcq268lhcrq7zmjgdij79hf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgc3dpdGNoIGJldHdlZW4gcG93ZXIgcHJvZmlsZXMgYmFzZWQgb24gcG93ZXIgc3VwcGx5IGFuZCBiYXR0ZXJ5IHN0YXR1cy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hdXRvLXBvd2VyLXByb2ZpbGUiLAogICJuYW1lIjogIkF1dG8gUG93ZXIgUHJvZmlsZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hdXRvLXBvd2VyLXByb2ZpbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZG15M2svYXV0by1wb3dlci1wcm9maWxlIiwKICAidXVpZCI6ICJhdXRvLXBvd2VyLXByb2ZpbGVAZG15M2suZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDMKfQ=="}
@@ -6394,7 +6427,7 @@
     "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.", "link": "https://extensions.gnome.org/extension/6601/dev-container-manager/", "shell_version_map": {
-    "45": {"version": "12", "sha256": "1g5721f2mmk7f52fa3qxfqd5fiv3212jwcwcyidih17fqgqk0acv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIEV4dGVuc2lvbiB0byBlbmFibGUgY2ljZC9jb250YWluZXIva3ViZXJuZXRlcyBhbmQgY2xvdWQgcmVzb3VyY2UgaGFuZGxpbmcuIHlvdSBjYW4gdXNlIGRvY2tlciwgcG9kbWFuIGFuZCB1c2Uga3ViZXJuZXRlcyBjbHVzdGVycyB3aXRoIGtpbmQuIiwKICAiZG9uYXRpb25zIjogewogICAgImtvZmkiOiAiZGV2b3BzbmV4dGdlbngiCiAgfSwKICAibmFtZSI6ICJkb2NrZXIgcG9kbWFuIGtpbmQga3ViZXJuZXRlcyBjbHVzdGVyIGNvbnRhaW5lciBtYW5hZ2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRldi1jb250YWluZXItbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kZXZvcHNuZXh0Z2VueC9nbm9tZS1leHRlbnNpb25zIiwKICAidXVpZCI6ICJkZXYtY29udGFpbmVyLW1hbmFnZXJAZGV2b3BzbmV4dGdlbngiLAogICJ2ZXJzaW9uIjogMTIsCiAgInZlcnNpb24tbmFtZSI6ICIwLjAuNCIKfQ=="}
+    "45": {"version": "15", "sha256": "026ignqqj1kggsxz7mq15fq700pagjpnl68w71i219ds25389r62", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIEV4dGVuc2lvbiB0byBlbmFibGUgY2ljZC9jb250YWluZXIva3ViZXJuZXRlcyBhbmQgY2xvdWQgcmVzb3VyY2UgaGFuZGxpbmcuIHlvdSBjYW4gdXNlIGRvY2tlciwgcG9kbWFuIGFuZCB1c2Uga3ViZXJuZXRlcyBjbHVzdGVycyB3aXRoIGtpbmQuIiwKICAiZG9uYXRpb25zIjogewogICAgImtvZmkiOiAiZGV2b3BzbmV4dGdlbngiCiAgfSwKICAibmFtZSI6ICJkb2NrZXIgcG9kbWFuIGtpbmQga3ViZXJuZXRlcyBjbHVzdGVyIGNvbnRhaW5lciBtYW5hZ2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRldi1jb250YWluZXItbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kZXZvcHNuZXh0Z2VueC9nbm9tZS1leHRlbnNpb25zIiwKICAidXVpZCI6ICJkZXYtY29udGFpbmVyLW1hbmFnZXJAZGV2b3BzbmV4dGdlbngiLAogICJ2ZXJzaW9uIjogMTUsCiAgInZlcnNpb24tbmFtZSI6ICIwLjAuNSIKfQ=="}
   }}
 , {"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="}
@@ -6419,7 +6452,82 @@
 , {"uuid": "gold-silver-price@arononak.github.io", "name": "Gold Silver Price", "pname": "gold-silver-price", "description": "Shows the current price of Gold and Silver.\n\ncurl is requried.\n\nLove this extension? give me a star on github.\n\nThis extension uses https://www.google.com/finance", "link": "https://extensions.gnome.org/extension/6643/gold-silver-price/", "shell_version_map": {
     "45": {"version": "2", "sha256": "1ingxy6i8vvf3b3gcbf74wv4d1lpxa0kk7w3pgxlnprfnr39r7mq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSBjdXJyZW50IHByaWNlIG9mIEdvbGQgYW5kIFNpbHZlci5cblxuY3VybCBpcyByZXF1cmllZC5cblxuTG92ZSB0aGlzIGV4dGVuc2lvbj8gZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViLlxuXG5UaGlzIGV4dGVuc2lvbiB1c2VzIGh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vZmluYW5jZSIsCiAgIm5hbWUiOiAiR29sZCBTaWx2ZXIgUHJpY2UiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImFyb25vbmFrQGdtYWlsLmNvbSIKICBdLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJvbm9uYWsvZ29sZC1zaWx2ZXItcHJpY2UtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJnb2xkLXNpbHZlci1wcmljZUBhcm9ub25hay5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMgp9"}
   }}
-, {"uuid": "TouchpadOnOff@romano.rgtti.com", "name": "Touchpad On Off", "pname": "touchpad-on-off", "description": "Toggle touchpad on or off", "link": "https://extensions.gnome.org/extension/6646/touchpad-on-off/", "shell_version_map": {
-    "45": {"version": "1", "sha256": "0bix48mvpw2psllnlkf57kf3py9yavyl1vha79j350d3k9prsd3v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB0b3VjaHBhZCBvbiBvciBvZmYiLAogICJuYW1lIjogIlRvdWNocGFkIE9uIE9mZiIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiUm9tYW5vIEdpYW5uZXR0aSA8cm9tYW5vLmdpYW5uZXR0aUBnbWFpbC5jb20+IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRvdWNocGFkb25vZmYiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUm1hbm8vZ3NlLXRvdWNocGFkLW9ub2ZmIiwKICAidXVpZCI6ICJUb3VjaHBhZE9uT2ZmQHJvbWFuby5yZ3R0aS5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}
+, {"uuid": "TouchpadOnOff@romano.rgtti.com", "name": "Touchpad On Off", "pname": "touchpad-on-off", "description": "Most laptops have a key combination (usually some Fn-thing) to enable/disable the touchpad. But not all of them. My Lenovo Yoga L13, for example, doesn't have one. This extension just enables/disables the touchpad; by default, it restores the touchpad in the enabled state when you logout and login, but you can choose just to remember the old state in the options.\n\nIf you are stuck without mouse or touchpad, open a terminal window or the command prompt of gnome-shell (with Alt-F2) and type\n\n    dconf write /org/gnome/desktop/peripherals/touchpad/send-events true\n\n...and you'll have your touchpad back.", "link": "https://extensions.gnome.org/extension/6646/touchpad-on-off/", "shell_version_map": {
+    "45": {"version": "2", "sha256": "1lcpgfs90nbsbdz1c35rq11nylbgx930bk2148kssrzwbpha3n4p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB0b3VjaHBhZCBvbiBvciBvZmYiLAogICJuYW1lIjogIlRvdWNocGFkIE9uIE9mZiIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiUm9tYW5vIEdpYW5uZXR0aSA8cm9tYW5vLmdpYW5uZXR0aUBnbWFpbC5jb20+IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRvdWNocGFkb25vZmYiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUm1hbm8vZ3NlLXRvdWNocGFkLW9ub2ZmIiwKICAidXVpZCI6ICJUb3VjaHBhZE9uT2ZmQHJvbWFuby5yZ3R0aS5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}
+  }}
+, {"uuid": "icon-hider-updated@lx358hcl.com", "name": "Icon Hider Updated", "pname": "icon-hider-updated", "description": "Show/Hide icons from top panel (updated). Works for Gnome 40+\n", "link": "https://extensions.gnome.org/extension/6649/icon-hider-updated/", "shell_version_map": {
+    "40": {"version": "6", "sha256": "0mj2l700cj47hpsg62y1rc7z10ycsbkmd3c9fv5xy2rnlsrpv5in", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgJiBIaWRlIGljb25zIGZyb20gdGhlIHRvcCBwYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1pY29uaGlkZXJ1cGRhdGVkIiwKICAibmFtZSI6ICJJY29uIEhpZGVyIFVwZGF0ZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaWNvbi1oaWRlci11cGRhdGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHgzNThoY2wvbGludXhpY29uaGlkZXJ1cGRhdGVkIiwKICAidXVpZCI6ICJpY29uLWhpZGVyLXVwZGF0ZWRAbHgzNThoY2wuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="},
+    "41": {"version": "6", "sha256": "0mj2l700cj47hpsg62y1rc7z10ycsbkmd3c9fv5xy2rnlsrpv5in", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgJiBIaWRlIGljb25zIGZyb20gdGhlIHRvcCBwYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1pY29uaGlkZXJ1cGRhdGVkIiwKICAibmFtZSI6ICJJY29uIEhpZGVyIFVwZGF0ZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaWNvbi1oaWRlci11cGRhdGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHgzNThoY2wvbGludXhpY29uaGlkZXJ1cGRhdGVkIiwKICAidXVpZCI6ICJpY29uLWhpZGVyLXVwZGF0ZWRAbHgzNThoY2wuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="},
+    "42": {"version": "6", "sha256": "0mj2l700cj47hpsg62y1rc7z10ycsbkmd3c9fv5xy2rnlsrpv5in", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgJiBIaWRlIGljb25zIGZyb20gdGhlIHRvcCBwYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1pY29uaGlkZXJ1cGRhdGVkIiwKICAibmFtZSI6ICJJY29uIEhpZGVyIFVwZGF0ZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaWNvbi1oaWRlci11cGRhdGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHgzNThoY2wvbGludXhpY29uaGlkZXJ1cGRhdGVkIiwKICAidXVpZCI6ICJpY29uLWhpZGVyLXVwZGF0ZWRAbHgzNThoY2wuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}
+  }}
+, {"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.\nIf location is set to \"My Location,\" location is provided by infoip.io.", "link": "https://extensions.gnome.org/extension/6655/openweather/", "shell_version_map": {
+    "45": {"version": "7", "sha256": "1fkfabfnq1q0hqlx4768lwqsp0q576z3pig24hdbnkx7rhgmm523", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgd2VhdGhlciBmb3IgdGhlIGN1cnJlbnQgb3IgYSBzcGVjaWZpZWQgbG9jYXRpb24uIEZvcmsgb2YgT3BlbldlYXRoZXIuXG5XZWF0aGVyIGRhdGEgaXMgcHJvdmlkZWQgYnkgT3BlbldlYXRoZXJNYXAub3JnLlxuSWYgbG9jYXRpb24gaXMgc2V0IHRvIFwiTXkgTG9jYXRpb24sXCIgbG9jYXRpb24gaXMgcHJvdmlkZWQgYnkgaW5mb2lwLmlvLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1vcGVud2VhdGhlcnJlZmluZWQiLAogICJnaXQtdmVyc2lvbiI6ICIxMjgucjMuZzUzYjg1ZjciLAogICJuYW1lIjogIk9wZW5XZWF0aGVyIFJlZmluZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMub3BlbndlYXRoZXJyZWZpbmVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Blbmd1aW4tdGVhbC9nbm9tZS1vcGVud2VhdGhlciIsCiAgInV1aWQiOiAib3BlbndlYXRoZXItZXh0ZW5zaW9uQHBlbmd1aW4tdGVhbC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNywKICAidmVyc2lvbi1uYW1lIjogIjEyOCIKfQ=="}
+  }}
+, {"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": "5", "sha256": "1m7n8pv2hfjfw3ffmwhmb8khmrymqij0n6p1lgr93cxqm9myj0qx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB3YWxscGFwZXJzIHdpdGggZWFzZSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAic2FraXRoYiIsCiAgICAia29maSI6ICJzYWtpdGhiIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIndhbGxodWJAc2FraXRoYi5naXRodWIuaW8iLAogICJuYW1lIjogIldhbGxodWIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2FsbGh1YiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zYWtpdGhiL3dhbGxodWIiLAogICJ1dWlkIjogIndhbGxodWJAc2FraXRoYi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNSwKICAidmVyc2lvbi1uYW1lIjogIjEuMS4yIgp9"}
+  }}
+, {"uuid": "mountMeter@dhariharan26.gmail.com", "name": "Mount Meter", "pname": "mount-meter", "description": "Easily monitor and manage your mounted removable drives, displaying sizes and highlighting the mount with the least used space in the top bar.\n\nForked and Modified extensively from Removable Drive Menu by fmuellner.\n\nNote:- \n1.The list will automatically refresh every 5 seconds to provide updated information.\n2.Any ongoing event(e.g. a file transfer) which result in changes(% used) in mount sizes will trigger the top bar indicator to highlight/flash until the file operation completes,this is intended and also partially doubles up as a file transfer operation indicator :)", "link": "https://extensions.gnome.org/extension/6664/mount-meter/", "shell_version_map": {
+    "45": {"version": "3", "sha256": "0c2xlbrhjczmdqbwr8a1xnibdvhgaq23fd58g2hcw8nmp4jw0sdf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVhc2lseSBtb25pdG9yIGFuZCBtYW5hZ2UgeW91ciBtb3VudGVkIHJlbW92YWJsZSBkcml2ZXMsIGRpc3BsYXlpbmcgc2l6ZXMgYW5kIGhpZ2hsaWdodGluZyB0aGUgbW91bnQgd2l0aCB0aGUgbGVhc3QgdXNlZCBzcGFjZSBpbiB0aGUgdG9wIGJhci5Gb3JrZWQgYW5kIE1vZGlmaWVkIGV4dGVuc2l2ZWx5IGZyb20gUmVtb3ZhYmxlIERyaXZlIE1lbnUgYnkgZm11ZWxsbmVyIiwKICAibmFtZSI6ICJNb3VudCBNZXRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kaGFyaWhhcmFuLTA1L2dub21lLXNoZWxsLWV4dGVuc2lvbi1tb3VudC1tZXRlciIsCiAgInV1aWQiOiAibW91bnRNZXRlckBkaGFyaWhhcmFuMjYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}
+  }}
+, {"uuid": "Bluetooth-Battery-Meter@maniacx.github.com", "name": "Bluetooth Battery Meter", "pname": "bluetooth-battery-meter", "description": "A Gnome extension featuring indicator icons in system tray, serving as meter for Bluetooth device battery levels and providing detailed battery levels via icon/text in the Bluetooth quick settings menu.\n\nNote:\nCertain Bluetooth devices do not report battery level until Bluez's experimental features are enabled in system. Check Readme for details.", "link": "https://extensions.gnome.org/extension/6670/bluetooth-battery-meter/", "shell_version_map": {
+    "42": {"version": "9", "sha256": "1qq6ni213dmcgp0s0la8k09l982mzivvs33vkvz9qpiiwlwmhh9m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIGZlYXR1cmluZyBpbmRpY2F0b3IgaWNvbnMgaW4gc3lzdGVtIHRyYXksIHNlcnZpbmcgYXMgbWV0ZXIgZm9yIEJsdWV0b290aCBkZXZpY2UgYmF0dGVyeSBsZXZlbHMgYW5kIHByb3ZpZGluZyBkZXRhaWxlZCBiYXR0ZXJ5IGxldmVscyB2aWEgaWNvbi90ZXh0IGluIHRoZSBCbHVldG9vdGggcXVpY2sgc2V0dGluZ3MgbWVudS5cblxuTm90ZTpcbkNlcnRhaW4gQmx1ZXRvb3RoIGRldmljZXMgZG8gbm90IHJlcG9ydCBiYXR0ZXJ5IGxldmVsIHVudGlsIEJsdWV6J3MgZXhwZXJpbWVudGFsIGZlYXR1cmVzIGFyZSBlbmFibGVkIGluIHN5c3RlbS4gQ2hlY2sgUmVhZG1lIGZvciBkZXRhaWxzLiIsCiAgImdldHRleHQtZG9tYWluIjogIkJsdWV0b290aC1CYXR0ZXJ5LU1ldGVyQG1hbmlhY3guZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIEJhdHRlcnkgTWV0ZXIiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkJsdWV0b290aC1CYXR0ZXJ5LU1ldGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFuaWFjeC9CbHVldG9vdGgtQmF0dGVyeS1NZXRlciIsCiAgInV1aWQiOiAiQmx1ZXRvb3RoLUJhdHRlcnktTWV0ZXJAbWFuaWFjeC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="},
+    "43": {"version": "9", "sha256": "1qq6ni213dmcgp0s0la8k09l982mzivvs33vkvz9qpiiwlwmhh9m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIGZlYXR1cmluZyBpbmRpY2F0b3IgaWNvbnMgaW4gc3lzdGVtIHRyYXksIHNlcnZpbmcgYXMgbWV0ZXIgZm9yIEJsdWV0b290aCBkZXZpY2UgYmF0dGVyeSBsZXZlbHMgYW5kIHByb3ZpZGluZyBkZXRhaWxlZCBiYXR0ZXJ5IGxldmVscyB2aWEgaWNvbi90ZXh0IGluIHRoZSBCbHVldG9vdGggcXVpY2sgc2V0dGluZ3MgbWVudS5cblxuTm90ZTpcbkNlcnRhaW4gQmx1ZXRvb3RoIGRldmljZXMgZG8gbm90IHJlcG9ydCBiYXR0ZXJ5IGxldmVsIHVudGlsIEJsdWV6J3MgZXhwZXJpbWVudGFsIGZlYXR1cmVzIGFyZSBlbmFibGVkIGluIHN5c3RlbS4gQ2hlY2sgUmVhZG1lIGZvciBkZXRhaWxzLiIsCiAgImdldHRleHQtZG9tYWluIjogIkJsdWV0b290aC1CYXR0ZXJ5LU1ldGVyQG1hbmlhY3guZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIEJhdHRlcnkgTWV0ZXIiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkJsdWV0b290aC1CYXR0ZXJ5LU1ldGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFuaWFjeC9CbHVldG9vdGgtQmF0dGVyeS1NZXRlciIsCiAgInV1aWQiOiAiQmx1ZXRvb3RoLUJhdHRlcnktTWV0ZXJAbWFuaWFjeC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="},
+    "44": {"version": "9", "sha256": "1qq6ni213dmcgp0s0la8k09l982mzivvs33vkvz9qpiiwlwmhh9m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIGZlYXR1cmluZyBpbmRpY2F0b3IgaWNvbnMgaW4gc3lzdGVtIHRyYXksIHNlcnZpbmcgYXMgbWV0ZXIgZm9yIEJsdWV0b290aCBkZXZpY2UgYmF0dGVyeSBsZXZlbHMgYW5kIHByb3ZpZGluZyBkZXRhaWxlZCBiYXR0ZXJ5IGxldmVscyB2aWEgaWNvbi90ZXh0IGluIHRoZSBCbHVldG9vdGggcXVpY2sgc2V0dGluZ3MgbWVudS5cblxuTm90ZTpcbkNlcnRhaW4gQmx1ZXRvb3RoIGRldmljZXMgZG8gbm90IHJlcG9ydCBiYXR0ZXJ5IGxldmVsIHVudGlsIEJsdWV6J3MgZXhwZXJpbWVudGFsIGZlYXR1cmVzIGFyZSBlbmFibGVkIGluIHN5c3RlbS4gQ2hlY2sgUmVhZG1lIGZvciBkZXRhaWxzLiIsCiAgImdldHRleHQtZG9tYWluIjogIkJsdWV0b290aC1CYXR0ZXJ5LU1ldGVyQG1hbmlhY3guZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIEJhdHRlcnkgTWV0ZXIiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkJsdWV0b290aC1CYXR0ZXJ5LU1ldGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFuaWFjeC9CbHVldG9vdGgtQmF0dGVyeS1NZXRlciIsCiAgInV1aWQiOiAiQmx1ZXRvb3RoLUJhdHRlcnktTWV0ZXJAbWFuaWFjeC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="},
+    "45": {"version": "10", "sha256": "1mxcg8plgsyr6n7k9m1q2nbif3fpxiyj0ld9r22mmif1hmvnqwww", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIGZlYXR1cmluZyBpbmRpY2F0b3IgaWNvbnMgaW4gc3lzdGVtIHRyYXksIHNlcnZpbmcgYXMgbWV0ZXIgZm9yIEJsdWV0b290aCBkZXZpY2UgYmF0dGVyeSBsZXZlbHMgYW5kIHByb3ZpZGluZyBkZXRhaWxlZCBiYXR0ZXJ5IGxldmVscyB2aWEgaWNvbi90ZXh0IGluIHRoZSBCbHVldG9vdGggcXVpY2sgc2V0dGluZ3MgbWVudS5cblxuTm90ZTpcbkNlcnRhaW4gQmx1ZXRvb3RoIGRldmljZXMgZG8gbm90IHJlcG9ydCBiYXR0ZXJ5IGxldmVsIHVudGlsIEJsdWV6J3MgZXhwZXJpbWVudGFsIGZlYXR1cmVzIGFyZSBlbmFibGVkIGluIHN5c3RlbS4gQ2hlY2sgUmVhZG1lIGZvciBkZXRhaWxzLiIsCiAgImdldHRleHQtZG9tYWluIjogIkJsdWV0b290aC1CYXR0ZXJ5LU1ldGVyQG1hbmlhY3guZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIEJhdHRlcnkgTWV0ZXIiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkJsdWV0b290aC1CYXR0ZXJ5LU1ldGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYW5pYWN4L0JsdWV0b290aC1CYXR0ZXJ5LU1ldGVyIiwKICAidXVpZCI6ICJCbHVldG9vdGgtQmF0dGVyeS1NZXRlckBtYW5pYWN4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}
+  }}
+, {"uuid": "xwayland-indicator@swsnr.de", "name": "XWayland Indicator", "pname": "xwayland-indicator", "description": "Indicate whether the focused window uses XWayland.", "link": "https://extensions.gnome.org/extension/6676/xwayland-indicator/", "shell_version_map": {
+    "45": {"version": "1", "sha256": "1y86189fhiw44625pkb6aj2gy0im4jdflsh8f9h4x9pc72hnfqmm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRlIHdoZXRoZXIgdGhlIGZvY3VzZWQgd2luZG93IHVzZXMgWFdheWxhbmQuIiwKICAibmFtZSI6ICJYV2F5bGFuZCBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3dzbnIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXh3YXlsYW5kIiwKICAidXVpZCI6ICJ4d2F5bGFuZC1pbmRpY2F0b3JAc3dzbnIuZGUiLAogICJ2ZXJzaW9uIjogMSwKICAidmVyc2lvbi1uYW1lIjogIjQ1LjEiCn0="}
+  }}
+, {"uuid": "power-profile@fthx", "name": "Power profile indicator", "pname": "power-profile-indicator", "description": "Add current power profile in panel's system icons. Very light extension.", "link": "https://extensions.gnome.org/extension/6679/power-profile-indicator/", "shell_version_map": {
+    "45": {"version": "2", "sha256": "19rdih8km5qh4fz5imvyb1wcnpl0d4nnccb05k58b1vlfsfm6ahl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBjdXJyZW50IHBvd2VyIHByb2ZpbGUgaW4gcGFuZWwncyBzeXN0ZW0gaWNvbnMuIFZlcnkgbGlnaHQgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiUG93ZXIgcHJvZmlsZSBpbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9wb3dlci1wcm9maWxlIiwKICAidXVpZCI6ICJwb3dlci1wcm9maWxlQGZ0aHgiLAogICJ2ZXJzaW9uIjogMgp9"}
+  }}
+, {"uuid": "monitor@astraext.github.io", "name": "Astra Monitor", "pname": "astra-monitor", "description": "Astra Monitor is a cutting-edge, fully customizable, and performance-focused 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": "13", "sha256": "11b0jlngpxplfjzynl68b0rqfin7lkv4glnnd64m4zl56kwfri9p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFzdHJhIE1vbml0b3IgaXMgYSBjdXR0aW5nLWVkZ2UsIGZ1bGx5IGN1c3RvbWl6YWJsZSwgYW5kIHBlcmZvcm1hbmNlLWZvY3VzZWQgbW9uaXRvcmluZyBleHRlbnNpb24gZm9yIEdOT01FJ3MgdG9wIGJhci4gSXQncyBhbiBhbGwtaW4tb25lIHNvbHV0aW9uIGZvciB0aG9zZSBzZWVraW5nIHRvIGtlZXAgYSBjbG9zZSBleWUgb24gdGhlaXIgc3lzdGVtJ3MgcGVyZm9ybWFuY2UgbWV0cmljcyBsaWtlIENQVSwgR1BVLCBSQU0sIGRpc2sgdXNhZ2UsIG5ldHdvcmsgc3RhdGlzdGljcywgYW5kIHNlbnNvciByZWFkaW5ncy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImFzdHJhLmV4dCIsCiAgICAicGF0cmVvbiI6ICJBc3RyYUV4dCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJtb25pdG9yQGFzdHJhZXh0LmdpdGh1Yi5pbyIsCiAgImxpY2Vuc2UiOiAiR1BMLTMuMC1vci1sYXRlciIsCiAgIm5hbWUiOiAiQXN0cmEgTW9uaXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hc3RyYS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Bc3RyYUV4dC9hc3RyYS1tb25pdG9yIiwKICAidXVpZCI6ICJtb25pdG9yQGFzdHJhZXh0LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMywKICAidmVyc2lvbi1uYW1lIjogIjkiCn0="}
+  }}
+, {"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=="}
+  }}
+, {"uuid": "shyriiwook@madhead.me", "name": "Shyriiwook", "pname": "shyriiwook", "description": "Switch keyboard layouts programmatically", "link": "https://extensions.gnome.org/extension/6691/shyriiwook/", "shell_version_map": {
+    "42": {"version": "4", "sha256": "0868jyax5hmmwrydjabdw35d49lh59msli5798zxv571xdai7kbx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCBrZXlib2FyZCBsYXlvdXRzIHByb2dyYW1tYXRpY2FsbHkiLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogIm1hZGhlYWQiCiAgfSwKICAibmFtZSI6ICJTaHlyaWl3b29rIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hZGhlYWQvc2h5cmlpd29vayIsCiAgInV1aWQiOiAic2h5cmlpd29va0BtYWRoZWFkLm1lIiwKICAidmVyc2lvbiI6IDQKfQ=="},
+    "45": {"version": "5", "sha256": "1rcdlhavb7ws0fr1cpf7s31d496adakjl7vz2dzlikygdg1nj5hg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCBrZXlib2FyZCBsYXlvdXRzIHByb2dyYW1tYXRpY2FsbHkiLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogIm1hZGhlYWQiCiAgfSwKICAibmFtZSI6ICJTaHlyaWl3b29rIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hZGhlYWQvc2h5cmlpd29vayIsCiAgInV1aWQiOiAic2h5cmlpd29va0BtYWRoZWFkLm1lIiwKICAidmVyc2lvbiI6IDUKfQ=="}
+  }}
+, {"uuid": "disable-workspace-animation@ethnarque", "name": "Disable Workspace Animation", "pname": "disable-workspace-animation", "description": "GNOME Shell 45 extension that disables the workspace animation when switching between workspaces", "link": "https://extensions.gnome.org/extension/6694/disable-workspace-animation/", "shell_version_map": {
+    "45": {"version": "4", "sha256": "1x4h496p9dk33mxyq1vgw6s77gv31igyl294g433ac7x5bi4d3dz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIFNoZWxsIDQ1IGV4dGVuc2lvbiB0aGF0IGRpc2FibGVzIHRoZSB3b3Jrc3BhY2UgYW5pbWF0aW9uIHdoZW4gc3dpdGNoaW5nIGJldHdlZW4gd29ya3NwYWNlcyIsCiAgIm5hbWUiOiAiRGlzYWJsZSBXb3Jrc3BhY2UgQW5pbWF0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2V0aG5hcnF1ZS9nbm9tZS1kaXNhYmxlLXdvcmtzcGFjZS1hbmltYXRpb24iLAogICJ1dWlkIjogImRpc2FibGUtd29ya3NwYWNlLWFuaW1hdGlvbkBldGhuYXJxdWUiLAogICJ2ZXJzaW9uIjogNAp9"}
+  }}
+, {"uuid": "clipqr@drien.com", "name": "ClipQR", "pname": "clipqr", "description": "This simply adds a pop-out QR Code containing whatever text is currently in your clipboard. It's an easy way to share a link to your phone without any additional software.", "link": "https://extensions.gnome.org/extension/6697/clipqr/", "shell_version_map": {
+    "45": {"version": "2", "sha256": "1sflkyja7c2f6v56m1d4xki2hjwpnxq88mp5940d0gvr682phr1h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgc2ltcGx5IGFkZHMgYSBwb3Atb3V0IFFSIENvZGUgY29udGFpbmluZyB3aGF0ZXZlciB0ZXh0IGlzIGN1cnJlbnRseSBpbiB5b3VyIGNsaXBib2FyZC4gSXQncyBhbiBlYXN5IHdheSB0byBzaGFyZSBhIGxpbmsgdG8geW91ciBwaG9uZSB3aXRob3V0IGFueSBhZGRpdGlvbmFsIHNvZnR3YXJlLiIsCiAgIm5hbWUiOiAiQ2xpcFFSIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RyaWVuL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jbGlwcXIiLAogICJ1dWlkIjogImNsaXBxckBkcmllbi5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}
+  }}
+, {"uuid": "debuglogging@jonathan.jdoda.ca", "name": "Enable Debug Logs", "pname": "enable-debug-logs", "description": "Turns on GNOME Shell debug logging.", "link": "https://extensions.gnome.org/extension/6706/enable-debug-logs/", "shell_version_map": {
+    "45": {"version": "2", "sha256": "1i3ddfgzqy40q67f05dbjm0h2z0anmdd14h61x7jclvh2ll1rk5s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR1cm5zIG9uIEdOT01FIFNoZWxsIGRlYnVnIGxvZ2dpbmcuIiwKICAibmFtZSI6ICJFbmFibGUgRGVidWcgTG9ncyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZG9kYS9kZWJ1Z2xvZ2dpbmciLAogICJ1dWlkIjogImRlYnVnbG9nZ2luZ0Bqb25hdGhhbi5qZG9kYS5jYSIsCiAgInZlcnNpb24iOiAyCn0="}
+  }}
+, {"uuid": "dash-to-dock-workaround@popov895.ukr.net", "name": "Dash-To-Dock Workaround", "pname": "dash-to-dock-workaround", "description": "Quick fix for the https://bugs.launchpad.net/ubuntu/+source/gnome-shell-extension-ubuntu-dock/+bug/1961508", "link": "https://extensions.gnome.org/extension/6712/dash-to-dock-workaround/", "shell_version_map": {
+    "42": {"version": "3", "sha256": "0b8ahhf73b1j65fd95gahnnr3y3ly1yv4xa7vdcfrcwmkp3ih7i6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGZpeCBmb3IgdGhlIGh0dHBzOi8vYnVncy5sYXVuY2hwYWQubmV0L3VidW50dS8rc291cmNlL2dub21lLXNoZWxsLWV4dGVuc2lvbi11YnVudHUtZG9jay8rYnVnLzE5NjE1MDgiLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogInBvcG92ODk1YSIKICB9LAogICJuYW1lIjogIkRhc2gtVG8tRG9jayBXb3JrYXJvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gtdG8tZG9jay13b3JrYXJvdW5kIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcG9wb3Y4OTUvZGFzaC10by1kb2NrLXdvcmthcm91bmQiLAogICJ1dWlkIjogImRhc2gtdG8tZG9jay13b3JrYXJvdW5kQHBvcG92ODk1LnVrci5uZXQiLAogICJ2ZXJzaW9uIjogMwp9"},
+    "43": {"version": "3", "sha256": "0b8ahhf73b1j65fd95gahnnr3y3ly1yv4xa7vdcfrcwmkp3ih7i6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGZpeCBmb3IgdGhlIGh0dHBzOi8vYnVncy5sYXVuY2hwYWQubmV0L3VidW50dS8rc291cmNlL2dub21lLXNoZWxsLWV4dGVuc2lvbi11YnVudHUtZG9jay8rYnVnLzE5NjE1MDgiLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogInBvcG92ODk1YSIKICB9LAogICJuYW1lIjogIkRhc2gtVG8tRG9jayBXb3JrYXJvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gtdG8tZG9jay13b3JrYXJvdW5kIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcG9wb3Y4OTUvZGFzaC10by1kb2NrLXdvcmthcm91bmQiLAogICJ1dWlkIjogImRhc2gtdG8tZG9jay13b3JrYXJvdW5kQHBvcG92ODk1LnVrci5uZXQiLAogICJ2ZXJzaW9uIjogMwp9"},
+    "44": {"version": "3", "sha256": "0b8ahhf73b1j65fd95gahnnr3y3ly1yv4xa7vdcfrcwmkp3ih7i6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGZpeCBmb3IgdGhlIGh0dHBzOi8vYnVncy5sYXVuY2hwYWQubmV0L3VidW50dS8rc291cmNlL2dub21lLXNoZWxsLWV4dGVuc2lvbi11YnVudHUtZG9jay8rYnVnLzE5NjE1MDgiLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogInBvcG92ODk1YSIKICB9LAogICJuYW1lIjogIkRhc2gtVG8tRG9jayBXb3JrYXJvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gtdG8tZG9jay13b3JrYXJvdW5kIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcG9wb3Y4OTUvZGFzaC10by1kb2NrLXdvcmthcm91bmQiLAogICJ1dWlkIjogImRhc2gtdG8tZG9jay13b3JrYXJvdW5kQHBvcG92ODk1LnVrci5uZXQiLAogICJ2ZXJzaW9uIjogMwp9"},
+    "45": {"version": "4", "sha256": "0kk0bf13f4020cqnn0jw8a7wsb0cwg1iz5347a3mvhrqrcs5391d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGZpeCBmb3IgdGhlIGh0dHBzOi8vYnVncy5sYXVuY2hwYWQubmV0L3VidW50dS8rc291cmNlL2dub21lLXNoZWxsLWV4dGVuc2lvbi11YnVudHUtZG9jay8rYnVnLzE5NjE1MDgiLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogInBvcG92ODk1YSIKICB9LAogICJuYW1lIjogIkRhc2gtVG8tRG9jayBXb3JrYXJvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gtdG8tZG9jay13b3JrYXJvdW5kIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BvcG92ODk1L2Rhc2gtdG8tZG9jay13b3JrYXJvdW5kIiwKICAidXVpZCI6ICJkYXNoLXRvLWRvY2std29ya2Fyb3VuZEBwb3Bvdjg5NS51a3IubmV0IiwKICAidmVyc2lvbiI6IDQKfQ=="}
+  }}
+, {"uuid": "panelnote@gittymac.github.io", "name": "Panel Note", "pname": "panel-note", "description": "Add a small note to your GNOME panel", "link": "https://extensions.gnome.org/extension/6718/panel-note/", "shell_version_map": {
+    "45": {"version": "1", "sha256": "0hyg3smnfhqnvlcplg8ymb76075jpji2lbdj18k0yy8fz9jnx1q8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHNtYWxsIG5vdGUgdG8geW91ciBHTk9NRSBwYW5lbCIsCiAgIm5hbWUiOiAiUGFuZWwgTm90ZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wYW5lbG5vdGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vR2l0dHlNYWMvUGFuZWxOb3RlIiwKICAidXVpZCI6ICJwYW5lbG5vdGVAZ2l0dHltYWMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEKfQ=="}
+  }}
+, {"uuid": "extensions-search-provider@G-dH.github.com", "name": "ESP (Extensions Search Provider)", "pname": "esp-extensions-search-provider", "description": "Search and access settings of installed extensions from the Activities overview\n\nVisit the Homepage linked below for more information and instructions.", "link": "https://extensions.gnome.org/extension/6721/esp-extensions-search-provider/", "shell_version_map": {
+    "42": {"version": "14", "sha256": "0x7d9zjzp3rrvxdnml2bn47xdy1rjbdqm6724aniikdws4jd6771", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBhbmQgYWNjZXNzIHNldHRpbmdzIG9mIGluc3RhbGxlZCBleHRlbnNpb25zIGZyb20gdGhlIEFjdGl2aXRpZXMgb3ZlcnZpZXciLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZXh0ZW5zaW9ucy1zZWFyY2gtcHJvdmlkZXIiLAogICJuYW1lIjogIkVTUCAoRXh0ZW5zaW9ucyBTZWFyY2ggUHJvdmlkZXIpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmV4dGVuc2lvbnMtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9leHRlbnNpb25zLXNlYXJjaC1wcm92aWRlciIsCiAgInV1aWQiOiAiZXh0ZW5zaW9ucy1zZWFyY2gtcHJvdmlkZXJARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE0LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuNSIKfQ=="},
+    "43": {"version": "14", "sha256": "0x7d9zjzp3rrvxdnml2bn47xdy1rjbdqm6724aniikdws4jd6771", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBhbmQgYWNjZXNzIHNldHRpbmdzIG9mIGluc3RhbGxlZCBleHRlbnNpb25zIGZyb20gdGhlIEFjdGl2aXRpZXMgb3ZlcnZpZXciLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZXh0ZW5zaW9ucy1zZWFyY2gtcHJvdmlkZXIiLAogICJuYW1lIjogIkVTUCAoRXh0ZW5zaW9ucyBTZWFyY2ggUHJvdmlkZXIpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmV4dGVuc2lvbnMtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9leHRlbnNpb25zLXNlYXJjaC1wcm92aWRlciIsCiAgInV1aWQiOiAiZXh0ZW5zaW9ucy1zZWFyY2gtcHJvdmlkZXJARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE0LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuNSIKfQ=="},
+    "44": {"version": "14", "sha256": "0x7d9zjzp3rrvxdnml2bn47xdy1rjbdqm6724aniikdws4jd6771", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBhbmQgYWNjZXNzIHNldHRpbmdzIG9mIGluc3RhbGxlZCBleHRlbnNpb25zIGZyb20gdGhlIEFjdGl2aXRpZXMgb3ZlcnZpZXciLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZXh0ZW5zaW9ucy1zZWFyY2gtcHJvdmlkZXIiLAogICJuYW1lIjogIkVTUCAoRXh0ZW5zaW9ucyBTZWFyY2ggUHJvdmlkZXIpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmV4dGVuc2lvbnMtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9leHRlbnNpb25zLXNlYXJjaC1wcm92aWRlciIsCiAgInV1aWQiOiAiZXh0ZW5zaW9ucy1zZWFyY2gtcHJvdmlkZXJARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE0LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuNSIKfQ=="},
+    "45": {"version": "13", "sha256": "1xbfyh54q43zcd8jwj52bj82mm8babf3djsdh20q12y6fs2mwny0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBhbmQgYWNjZXNzIHNldHRpbmdzIG9mIGluc3RhbGxlZCBleHRlbnNpb25zIGZyb20gdGhlIEFjdGl2aXRpZXMgb3ZlcnZpZXciLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZXh0ZW5zaW9ucy1zZWFyY2gtcHJvdmlkZXIiLAogICJuYW1lIjogIkVTUCAoRXh0ZW5zaW9ucyBTZWFyY2ggUHJvdmlkZXIpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmV4dGVuc2lvbnMtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL2V4dGVuc2lvbnMtc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJleHRlbnNpb25zLXNlYXJjaC1wcm92aWRlckBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTMsCiAgInZlcnNpb24tbmFtZSI6ICI0Ni41Igp9"}
+  }}
+, {"uuid": "hide-cursor@elcste.com", "name": "Hide Cursor", "pname": "hide-cursor", "description": "Hide the mouse cursor on inactivity.\n\nFor use on Wayland, since unclutter, unclutter-xfixes and xbanish only work on X11.\n\nNote: This initial version has a hardcoded 5 second timeout. I'd like to add settings to support configuring this value, but I have no definite plans. Collaboration appreciated! (I'd also accept a contribution adding support for hiding the cursor while typing, but I don't have plans for this myself.)", "link": "https://extensions.gnome.org/extension/6727/hide-cursor/", "shell_version_map": {
+    "45": {"version": "1", "sha256": "0a20d0f82r26cww79xlaiqmlfh1sqxnqa001pynp4b1wqwq9sdwl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdGhlIG1vdXNlIGN1cnNvciBvbiBpbmFjdGl2aXR5LlxuXG5Gb3IgdXNlIG9uIFdheWxhbmQsIHNpbmNlIHVuY2x1dHRlciwgdW5jbHV0dGVyLXhmaXhlcyBhbmQgeGJhbmlzaCBvbmx5IHdvcmsgb24gWDExLlxuXG5Ob3RlOiBUaGlzIGluaXRpYWwgdmVyc2lvbiBoYXMgYSBoYXJkY29kZWQgNSBzZWNvbmQgdGltZW91dC4gSSdkIGxpa2UgdG8gYWRkIHNldHRpbmdzIHRvIHN1cHBvcnQgY29uZmlndXJpbmcgdGhpcyB2YWx1ZSwgYnV0IEkgaGF2ZSBubyBkZWZpbml0ZSBwbGFucy4gQ29sbGFib3JhdGlvbiBhcHByZWNpYXRlZCEgKEknZCBhbHNvIGFjY2VwdCBhIGNvbnRyaWJ1dGlvbiBhZGRpbmcgc3VwcG9ydCBmb3IgaGlkaW5nIHRoZSBjdXJzb3Igd2hpbGUgdHlwaW5nLCBidXQgSSBkb24ndCBoYXZlIHBsYW5zIGZvciB0aGlzIG15c2VsZi4pIiwKICAibmFtZSI6ICJIaWRlIEN1cnNvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbGNzdGUvaGlkZS1jdXJzb3IiLAogICJ1dWlkIjogImhpZGUtY3Vyc29yQGVsY3N0ZS5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}
+  }}
+, {"uuid": "windows-search-provider@G-dH.github.com", "name": "WSP (Windows Search Provider)", "pname": "wsp-windows-search-provider", "description": "Search and control windows from the Activities overview\n\n- Supports GNOME Shell 42 - 46\n- Open windows can be added to the top of the global search results\n- Adding a customizable prefix in front of the search pattern allows you to display an isolated search view with a complete list of open windows\n- Strict, Fuzzy and RegExp search methods\n- Close and move windows between workspaces\n- Close and move commands can be added at the end of the search pattern\n- Sorting options for the complete list of open windows\n\nVisit the Homepage linked below for more information and instructions.", "link": "https://extensions.gnome.org/extension/6730/wsp-windows-search-provider/", "shell_version_map": {
+    "42": {"version": "12", "sha256": "1l9d6ldrsvackp8pv6qmdjwdxq0p99y6kl00fzm465hggn334mpl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBhbmQgY29udHJvbCB3aW5kb3dzIGZyb20gdGhlIEFjdGl2aXRpZXMgb3ZlcnZpZXciLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAid2luZG93cy1zZWFyY2gtcHJvdmlkZXIiLAogICJuYW1lIjogIldTUCAoV2luZG93cyBTZWFyY2ggUHJvdmlkZXIpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpbmRvd3Mtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC93aW5kb3dzLXNlYXJjaC1wcm92aWRlciIsCiAgInV1aWQiOiAid2luZG93cy1zZWFyY2gtcHJvdmlkZXJARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEyLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuNSIKfQ=="},
+    "43": {"version": "12", "sha256": "1l9d6ldrsvackp8pv6qmdjwdxq0p99y6kl00fzm465hggn334mpl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBhbmQgY29udHJvbCB3aW5kb3dzIGZyb20gdGhlIEFjdGl2aXRpZXMgb3ZlcnZpZXciLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAid2luZG93cy1zZWFyY2gtcHJvdmlkZXIiLAogICJuYW1lIjogIldTUCAoV2luZG93cyBTZWFyY2ggUHJvdmlkZXIpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpbmRvd3Mtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC93aW5kb3dzLXNlYXJjaC1wcm92aWRlciIsCiAgInV1aWQiOiAid2luZG93cy1zZWFyY2gtcHJvdmlkZXJARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEyLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuNSIKfQ=="},
+    "44": {"version": "12", "sha256": "1l9d6ldrsvackp8pv6qmdjwdxq0p99y6kl00fzm465hggn334mpl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBhbmQgY29udHJvbCB3aW5kb3dzIGZyb20gdGhlIEFjdGl2aXRpZXMgb3ZlcnZpZXciLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAid2luZG93cy1zZWFyY2gtcHJvdmlkZXIiLAogICJuYW1lIjogIldTUCAoV2luZG93cyBTZWFyY2ggUHJvdmlkZXIpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpbmRvd3Mtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC93aW5kb3dzLXNlYXJjaC1wcm92aWRlciIsCiAgInV1aWQiOiAid2luZG93cy1zZWFyY2gtcHJvdmlkZXJARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEyLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuNSIKfQ=="},
+    "45": {"version": "11", "sha256": "1qkjy611cvpwqld23rg32i6fqqy87ws180jm16hxrm77y04v6mpz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBhbmQgY29udHJvbCB3aW5kb3dzIGZyb20gdGhlIEFjdGl2aXRpZXMgb3ZlcnZpZXciLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAid2luZG93cy1zZWFyY2gtcHJvdmlkZXIiLAogICJuYW1lIjogIldTUCAoV2luZG93cyBTZWFyY2ggUHJvdmlkZXIpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpbmRvd3Mtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL3dpbmRvd3Mtc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJ3aW5kb3dzLXNlYXJjaC1wcm92aWRlckBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTEsCiAgInZlcnNpb24tbmFtZSI6ICI0Ni41Igp9"}
+  }}
+, {"uuid": "CrazyInternetSpeedMeter@larryw3i_at_163.com", "name": "Crazy Internet Speed Meter", "pname": "crazy-internet-speed-meter", "description": "Simple and minimal internet speed meter extension for the Gnome Shell", "link": "https://extensions.gnome.org/extension/6733/crazy-internet-speed-meter/", "shell_version_map": {
+    "45": {"version": "10", "sha256": "1xkgsnl4akp2x8ls4sf4prn26p1x3sc3lrg16f0l6i1sab4bk85q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIHRoZSBHbm9tZSBTaGVsbCIsCiAgImdldHRleHQtZG9tYWluIjogIkNyYXp5SW50ZXJuZXRTcGVlZE1ldGVyQGxhcnJ5dzNpX2F0XzE2My5jb20iLAogICJuYW1lIjogIkNyYXp5IEludGVybmV0IFNwZWVkIE1ldGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkNyYXp5SW50ZXJuZXRTcGVlZE1ldGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2xhcnJ5d2VpL2NyYXp5aW50ZXJuZXRzcGVlZG1ldGVyIiwKICAidXVpZCI6ICJDcmF6eUludGVybmV0U3BlZWRNZXRlckBsYXJyeXczaV9hdF8xNjMuY29tIiwKICAidmVyc2lvbiI6IDEwLAogICJ2ZXJzaW9uLW5hbWUiOiAiMjAyNDAyMDIuMTYzOCIKfQ=="}
+  }}
+, {"uuid": "inhibitionindicator@monyxie.github.io", "name": "Inhibition Indicator", "pname": "inhibition-indicator", "description": "Indicates whether the system is being prevented from going into sleep by programs.", "link": "https://extensions.gnome.org/extension/6736/inhibition-indicator/", "shell_version_map": {
+    "45": {"version": "2", "sha256": "02i755d3g4rn267pnsa4jbjfgywsqv9xqzcb3kpc1zlam34fjf2r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRlcyB3aGV0aGVyIHRoZSBzeXN0ZW0gaXMgYmVpbmcgcHJldmVudGVkIGZyb20gZ29pbmcgaW50byBzbGVlcCBieSBwcm9ncmFtcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpbmhpYml0aW9uaW5kaWNhdG9yQG1vbnl4aWUuZ2l0aHViLmlvIiwKICAibmFtZSI6ICJJbmhpYml0aW9uIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tb255eGllL2luaGliaXRpb25pbmRpY2F0b3IiLAogICJ1dWlkIjogImluaGliaXRpb25pbmRpY2F0b3JAbW9ueXhpZS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMgp9"}
   }}
 ]
diff --git a/pkgs/desktops/lomiri/data/lomiri-schemas/default.nix b/pkgs/desktops/lomiri/data/lomiri-schemas/default.nix
index c612011cbfff..4d1caf6eb873 100644
--- a/pkgs/desktops/lomiri/data/lomiri-schemas/default.nix
+++ b/pkgs/desktops/lomiri/data/lomiri-schemas/default.nix
@@ -8,17 +8,18 @@
 , glib
 , intltool
 , pkg-config
+, validatePkgConfig
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "lomiri-schemas";
-  version = "0.1.3";
+  version = "0.1.4";
 
   src = fetchFromGitLab {
     owner = "ubports";
     repo = "development/core/lomiri-schemas";
     rev = finalAttrs.version;
-    hash = "sha256-FrDUFqdD0KW2VG2pTA6LMb6/9PdNtQUlYTEo1vnW6QQ=";
+    hash = "sha256-Pnn/Qh5EYEqmP8QFsZcSCpDL36++aeUUok3t9a1/1n0=";
   };
 
   strictDeps = true;
@@ -28,6 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
     glib # glib-compile-schemas
     pkg-config
     intltool
+    validatePkgConfig
   ];
 
   buildInputs = [
@@ -36,8 +38,8 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   cmakeFlags = [
-    "-DGSETTINGS_LOCALINSTALL=ON"
-    "-DGSETTINGS_COMPILE=ON"
+    (lib.cmakeBool "GSETTINGS_LOCALINSTALL" true)
+    (lib.cmakeBool "GSETTINGS_COMPILE" true)
   ];
 
   passthru = {
@@ -48,6 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     description = "GSettings / AccountsService schema files for Lomiri";
     homepage = "https://gitlab.com/ubports/development/core/lomiri-schemas";
+    changelog = "https://gitlab.com/ubports/development/core/lomiri-schemas/-/blob/${finalAttrs.version}/ChangeLog";
     license = licenses.lgpl21Plus;
     maintainers = teams.lomiri.members;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/lomiri/data/lomiri-sounds/default.nix b/pkgs/desktops/lomiri/data/lomiri-sounds/default.nix
new file mode 100644
index 000000000000..1b54723b2925
--- /dev/null
+++ b/pkgs/desktops/lomiri/data/lomiri-sounds/default.nix
@@ -0,0 +1,47 @@
+{ stdenvNoCC
+, lib
+, fetchFromGitLab
+, gitUpdater
+, testers
+, cmake
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "lomiri-sounds";
+  version = "22.02";
+
+  src = fetchFromGitLab {
+    owner = "ubports";
+    repo = "development/core/lomiri-sounds";
+    rev = finalAttrs.version;
+    hash = "sha256-t9JYxrJ5ICslxidHmbD1wa6n7XZMf2a+PgMLcwgsDvU=";
+  };
+
+  postPatch = ''
+    # Doesn't need a compiler, only installs data
+    substituteInPlace CMakeLists.txt \
+      --replace 'project (lomiri-sounds)' 'project (lomiri-sounds LANGUAGES NONE)'
+  '';
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  passthru = {
+    tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
+    updateScript = gitUpdater { };
+  };
+
+  meta = with lib; {
+    description = "Notification and ringtone sound effects for Lomiri";
+    homepage = "https://gitlab.com/ubports/development/core/lomiri-sounds";
+    license = with licenses; [ cc-by-30 cc0 cc-by-sa-30 cc-by-40 ];
+    maintainers = teams.lomiri.members;
+    platforms = platforms.all;
+    pkgConfigModules = [
+      "lomiri-sounds"
+    ];
+  };
+})
diff --git a/pkgs/desktops/lomiri/data/lomiri-wallpapers/default.nix b/pkgs/desktops/lomiri/data/lomiri-wallpapers/default.nix
new file mode 100644
index 000000000000..9cdb7887ee88
--- /dev/null
+++ b/pkgs/desktops/lomiri/data/lomiri-wallpapers/default.nix
@@ -0,0 +1,48 @@
+{ stdenvNoCC
+, lib
+, fetchFromGitLab
+, gitUpdater
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "lomiri-wallpapers";
+  version = "20.04.0";
+
+  src = fetchFromGitLab {
+    owner = "ubports";
+    repo = "development/core/lomiri-wallpapers";
+    rev = finalAttrs.version;
+    hash = "sha256-n8+vY+MPVqW6s5kSo4aEtGZv1AsjB3nNEywbmcNWfhI=";
+  };
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share
+
+    # release-specific wallpapers
+    cp -r ${lib.versions.majorMinor finalAttrs.version} $out/share/wallpapers
+    rm $out/share/wallpapers/.placeholder
+
+    # eternal hardwired fallback/default
+    install -Dm644 {.,$out/share/wallpapers}/warty-final-ubuntu.png
+    ln -s warty-final-ubuntu.png $out/share/wallpapers/lomiri-default-background.png
+
+    runHook postInstall
+  '';
+
+  passthru.updateScript = gitUpdater { };
+
+  meta = with lib; {
+    description = "Wallpapers for the Lomiri Operating Environment, gathered from people of the Ubuntu Touch / UBports community";
+    homepage = "https://gitlab.com/ubports/development/core/lomiri-wallpapers";
+    changelog = "https://gitlab.com/ubports/development/core/lomiri-wallpapers/-/blob/${finalAttrs.version}/ChangeLog";
+    # On update, recheck debian/copyright for which licenses apply to the installed images
+    license = with licenses; [ cc-by-sa-30 ];
+    maintainers = teams.lomiri.members;
+    platforms = platforms.all;
+  };
+})
diff --git a/pkgs/desktops/lomiri/default.nix b/pkgs/desktops/lomiri/default.nix
index f1161155ae37..d0d9c777431e 100644
--- a/pkgs/desktops/lomiri/default.nix
+++ b/pkgs/desktops/lomiri/default.nix
@@ -12,6 +12,8 @@ let
 
     #### Data
     lomiri-schemas = callPackage ./data/lomiri-schemas { };
+    lomiri-sounds = callPackage ./data/lomiri-sounds { };
+    lomiri-wallpapers = callPackage ./data/lomiri-wallpapers { };
     suru-icon-theme = callPackage ./data/suru-icon-theme { };
 
     #### Development tools / libraries
@@ -22,6 +24,7 @@ let
     libusermetrics = callPackage ./development/libusermetrics { };
     lomiri-api = callPackage ./development/lomiri-api { };
     lomiri-app-launch = callPackage ./development/lomiri-app-launch { };
+    qtmir = callPackage ./development/qtmir { };
     trust-store = callPackage ./development/trust-store { };
     u1db-qt = callPackage ./development/u1db-qt { };
 
@@ -31,6 +34,7 @@ let
     lomiri-settings-components = callPackage ./qml/lomiri-settings-components { };
     lomiri-ui-extras = callPackage ./qml/lomiri-ui-extras { };
     lomiri-ui-toolkit = callPackage ./qml/lomiri-ui-toolkit { };
+    qqc2-suru-style = callPackage ./qml/qqc2-suru-style { };
 
     #### Services
     biometryd = callPackage ./services/biometryd { };
@@ -38,8 +42,11 @@ let
     hfd-service = callPackage ./services/hfd-service { };
     history-service = callPackage ./services/history-service { };
     lomiri-download-manager = callPackage ./services/lomiri-download-manager { };
+    lomiri-indicator-network = callPackage ./services/lomiri-indicator-network { };
+    lomiri-thumbnailer = callPackage ./services/lomiri-thumbnailer { };
     lomiri-url-dispatcher = callPackage ./services/lomiri-url-dispatcher { };
     mediascanner2 = callPackage ./services/mediascanner2 { };
+    telephony-service = callPackage ./services/telephony-service { };
   };
 in
   lib.makeScope libsForQt5.newScope packages
diff --git a/pkgs/desktops/lomiri/development/deviceinfo/default.nix b/pkgs/desktops/lomiri/development/deviceinfo/default.nix
index 00ba1d864bf6..9ddadb83cbec 100644
--- a/pkgs/desktops/lomiri/development/deviceinfo/default.nix
+++ b/pkgs/desktops/lomiri/development/deviceinfo/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "deviceinfo";
-  version = "0.2.1";
+  version = "0.2.2";
 
   src = fetchFromGitLab {
     owner = "ubports";
     repo = "development/core/deviceinfo";
     rev = finalAttrs.version;
-    hash = "sha256-x0Xm4Z3hpvO5p/5JxMRloFqn58cRH2ak8rKtuxmmVVQ=";
+    hash = "sha256-wTl+GgNiWzJxGLdU2iMH94UhQ40gjAPTVErouQIGXOA=";
   };
 
   outputs = [
@@ -57,6 +57,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     description = "Library to detect and configure devices";
     homepage = "https://gitlab.com/ubports/development/core/deviceinfo";
+    changelog = "https://gitlab.com/ubports/development/core/deviceinfo/-/blob/${finalAttrs.version}/ChangeLog";
     license = licenses.gpl3Only;
     maintainers = teams.lomiri.members;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/lomiri/development/geonames/default.nix b/pkgs/desktops/lomiri/development/geonames/default.nix
index 8fc5a65b72ff..035837b1c47c 100644
--- a/pkgs/desktops/lomiri/development/geonames/default.nix
+++ b/pkgs/desktops/lomiri/development/geonames/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitLab
-, fetchpatch
 , gitUpdater
 , testers
 , buildPackages
@@ -17,17 +16,18 @@
 , withDocumentation ? stdenv.buildPlatform.canExecute stdenv.hostPlatform
 , gtk-doc
 , pkg-config
+, validatePkgConfig
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "geonames";
-  version = "0.3.0";
+  version = "0.3.1";
 
   src = fetchFromGitLab {
     owner = "ubports";
     repo = "development/core/geonames";
     rev = finalAttrs.version;
-    hash = "sha256-Mo7Khj2pgdJ9kT3npFXnh1WTSsY/B1egWTccbAXFNY8=";
+    hash = "sha256-AhRnUoku17kVY0UciHQXFDa6eCH6HQ4ZGIOobCaGTKQ=";
   };
 
   outputs = [
@@ -39,16 +39,6 @@ stdenv.mkDerivation (finalAttrs: {
     "devdoc"
   ];
 
-  patches = [
-    # Improves install locations of demo & docs
-    # Remove when https://gitlab.com/ubports/development/core/geonames/-/merge_requests/3 merged & in release
-    (fetchpatch {
-      name = "0001-geonames-Use-CMAKE_INSTALL_BINDIR-for-install.patch";
-      url = "https://gitlab.com/OPNA2608/geonames/-/commit/3bca6d4d02843aed851a0a7480d5cd5ac02b4cda.patch";
-      hash = "sha256-vwffuMKpIqymYaiGEvnNeVXLmnz5e4aBpg55fnNbjKs=";
-    })
-  ];
-
   postPatch = ''
     patchShebangs src/generate-locales.sh tests/setup-test-env.sh
   '';
@@ -60,6 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
     gettext
     glib # glib-compile-resources
     pkg-config
+    validatePkgConfig
   ] ++ lib.optionals withDocumentation [
     docbook-xsl-nons
     docbook_xml_dtd_45
@@ -84,14 +75,14 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   cmakeFlags = [
-    "-DWANT_DOC=${lib.boolToString withDocumentation}"
-    "-DWANT_DEMO=${lib.boolToString withExamples}"
-    "-DWANT_TESTS=${lib.boolToString finalAttrs.finalPackage.doCheck}"
+    (lib.cmakeBool "WANT_DOC" withDocumentation)
+    (lib.cmakeBool "WANT_DEMO" withExamples)
+    (lib.cmakeBool "WANT_TESTS" finalAttrs.finalPackage.doCheck)
     # Keeps finding & using glib-compile-resources from buildInputs otherwise
-    "-DCMAKE_PROGRAM_PATH=${lib.makeBinPath [ buildPackages.glib.dev ]}"
+    (lib.cmakeFeature "CMAKE_PROGRAM_PATH" (lib.makeBinPath [ buildPackages.glib.dev ]))
   ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
     # only for cross without native execute support because the canExecute "emulator" call has a format that I can't get CMake to accept
-    "-DCMAKE_CROSSCOMPILING_EMULATOR=${stdenv.hostPlatform.emulator buildPackages}"
+    (lib.cmakeFeature "CMAKE_CROSSCOMPILING_EMULATOR" (stdenv.hostPlatform.emulator buildPackages))
   ];
 
   preInstall = lib.optionalString withDocumentation ''
@@ -109,6 +100,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     description = "Parse and query the geonames database dump";
     homepage = "https://gitlab.com/ubports/development/core/geonames";
+    changelog = "https://gitlab.com/ubports/development/core/geonames/-/blob/${finalAttrs.version}/ChangeLog";
     license = licenses.gpl3Only;
     maintainers = teams.lomiri.members;
     platforms = platforms.all;
diff --git a/pkgs/desktops/lomiri/development/libusermetrics/2001-Remove-custom-check-target.patch b/pkgs/desktops/lomiri/development/libusermetrics/2001-Remove-custom-check-target.patch
new file mode 100644
index 000000000000..dfa90b18ca09
--- /dev/null
+++ b/pkgs/desktops/lomiri/development/libusermetrics/2001-Remove-custom-check-target.patch
@@ -0,0 +1,37 @@
+From 52ac1d6548b4a92d569c5d2f53b84c604c7fce8a Mon Sep 17 00:00:00 2001
+From: OPNA2608 <opna2608@protonmail.com>
+Date: Thu, 1 Feb 2024 22:42:39 +0100
+Subject: [PATCH] Remove custom check target
+
+The automatic one provides better controls for us
+---
+ CMakeLists.txt | 7 +------
+ 1 file changed, 1 insertion(+), 6 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index af643a7..75b3cc1 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -105,18 +105,13 @@ add_subdirectory("data")
+ 
+ 
+ if(ENABLE_TESTS)
+-enable_testing()
++include(CTest)
+ 
+ pkg_check_modules(QTDBUSTEST REQUIRED libqtdbustest-1 REQUIRED)
+ include_directories(${QTDBUSTEST_INCLUDE_DIRS})
+ 
+ add_subdirectory(tests)
+ 
+-ADD_CUSTOM_TARGET(
+-	check
+-	${CMAKE_CTEST_COMMAND} --force-new-ctest-process --output-on-failure
+-)
+-
+ find_package(CoverageReport)
+ enable_coverage_report(
+   TARGETS
+-- 
+2.42.0
+
diff --git a/pkgs/desktops/lomiri/development/libusermetrics/default.nix b/pkgs/desktops/lomiri/development/libusermetrics/default.nix
index 0c4ed003e597..d4767b705825 100644
--- a/pkgs/desktops/lomiri/development/libusermetrics/default.nix
+++ b/pkgs/desktops/lomiri/development/libusermetrics/default.nix
@@ -19,18 +19,19 @@
 , qtdeclarative
 , qtxmlpatterns
 , ubports-click
+, validatePkgConfig
 , wrapQtAppsHook
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libusermetrics";
-  version = "1.3.0";
+  version = "1.3.2";
 
   src = fetchFromGitLab {
     owner = "ubports";
     repo = "development/core/libusermetrics";
     rev = finalAttrs.version;
-    hash = "sha256-yO9wZcXJBKt1HZ1GKoQ1flqYuwW9PlXiWLE3bl21PSQ=";
+    hash = "sha256-jmJH5vByBnBqgQfyb7HNVe+eS/jHcU64R2dnvuLbqss=";
   };
 
   outputs = [
@@ -39,22 +40,18 @@ stdenv.mkDerivation (finalAttrs: {
     "doc"
   ];
 
-  postPatch = ''
-    substituteInPlace data/CMakeLists.txt \
-      --replace '/etc' "$out/etc"
+  patches = [
+    # Not submitted yet, waiting for decision on how CMake testing should be handled
+    ./2001-Remove-custom-check-target.patch
+  ];
 
+  postPatch = ''
     # Tries to query QMake for QT_INSTALL_QML variable, would return broken paths into /build/qtbase-<commit> even if qmake was available
     substituteInPlace src/modules/UserMetrics/CMakeLists.txt \
-      --replace "\''${QT_IMPORTS_DIR}/UserMetrics" '${placeholder "out"}/${qtbase.qtQmlPrefix}/UserMetrics'
-
-    substituteInPlace src/libusermetricsinput/CMakeLists.txt \
-      --replace 'RUNTIME DESTINATION bin' 'RUNTIME DESTINATION ''${CMAKE_INSTALL_BINDIR}'
+      --replace 'query_qmake(QT_INSTALL_QML QT_IMPORTS_DIR)' 'set(QT_IMPORTS_DIR "''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}")'
 
     substituteInPlace doc/CMakeLists.txt \
       --replace "\''${CMAKE_INSTALL_DATAROOTDIR}/doc/libusermetrics-doc" "\''${CMAKE_INSTALL_DOCDIR}"
-  '' + lib.optionalString (!finalAttrs.finalPackage.doCheck) ''
-    # Only needed by tests
-    sed -i -e '/QTDBUSTEST/d' CMakeLists.txt
   '';
 
   strictDeps = true;
@@ -64,6 +61,7 @@ stdenv.mkDerivation (finalAttrs: {
     doxygen
     intltool
     pkg-config
+    validatePkgConfig
     wrapQtAppsHook
   ];
 
@@ -91,22 +89,23 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   cmakeFlags = [
-    "-DGSETTINGS_LOCALINSTALL=ON"
-    "-DGSETTINGS_COMPILE=ON"
-    "-DENABLE_TESTS=${lib.boolToString finalAttrs.finalPackage.doCheck}"
+    (lib.cmakeBool "GSETTINGS_LOCALINSTALL" true)
+    (lib.cmakeBool "GSETTINGS_COMPILE" true)
+    (lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
+    (lib.cmakeFeature "CMAKE_CTEST_ARGUMENTS" (lib.concatStringsSep ";" [
+      # Exclude tests
+      "-E" (lib.strings.escapeShellArg "(${lib.concatStringsSep "|" [
+        # Flaky, randomly failing in UserMetricsImplTest.AddTranslatedData (data not ready when signal is emitted?)
+        "^usermetricsoutput-unit-tests"
+      ]})")
+    ]))
   ];
 
   doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
 
-  checkPhase = ''
-    runHook preCheck
-
+  preCheck = ''
     export QT_PLUGIN_PATH=${lib.getBin qtbase}/lib/qt-${qtbase.version}/plugins/
     export QML2_IMPORT_PATH=${lib.getBin qtdeclarative}/lib/qt-${qtbase.version}/qml/
-    dbus-run-session --config-file=${dbus}/share/dbus-1/session.conf -- \
-      make test "''${enableParallelChecking:+-j $NIX_BUILD_CORES}"
-
-    runHook postCheck
   '';
 
   passthru = {
@@ -117,6 +116,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     description = "Enables apps to locally store interesting numerical data for later presentation";
     homepage = "https://gitlab.com/ubports/development/core/libusermetrics";
+    changelog = "https://gitlab.com/ubports/development/core/libusermetrics/-/blob/${finalAttrs.version}/ChangeLog";
     license = licenses.lgpl3Only;
     maintainers = teams.lomiri.members;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/lomiri/development/lomiri-app-launch/default.nix b/pkgs/desktops/lomiri/development/lomiri-app-launch/default.nix
index 92139688b127..e8e0a35c8809 100644
--- a/pkgs/desktops/lomiri/development/lomiri-app-launch/default.nix
+++ b/pkgs/desktops/lomiri/development/lomiri-app-launch/default.nix
@@ -20,6 +20,7 @@
 , python3
 , systemd
 , ubports-click
+, validatePkgConfig
 , zeitgeist
 , withDocumentation ? true
 , doxygen
@@ -29,7 +30,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "lomiri-app-launch";
-  version = "0.1.8";
+  version = "0.1.9";
 
   outputs = [
     "out"
@@ -42,7 +43,7 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "ubports";
     repo = "development/core/lomiri-app-launch";
     rev = finalAttrs.version;
-    hash = "sha256-NIBZk5H0bPwAwkI0Qiq2S9dZvchAFPBCHKi2inUVZmI=";
+    hash = "sha256-vuu6tZ5eDJN2rraOpmrDddSl1cIFFBSrILKMJqcUDVc=";
   };
 
   postPatch = ''
@@ -50,7 +51,7 @@ stdenv.mkDerivation (finalAttrs: {
 
     # used pkg_get_variable, cannot replace prefix
     substituteInPlace data/CMakeLists.txt \
-      --replace 'DESTINATION "''${SYSTEMD_USER_UNIT_DIR}"' 'DESTINATION "${placeholder "out"}/lib/systemd/user"'
+      --replace 'pkg_get_variable(SYSTEMD_USER_UNIT_DIR systemd systemduserunitdir)' 'set(SYSTEMD_USER_UNIT_DIR "''${CMAKE_INSTALL_PREFIX}/lib/systemd/user")'
 
     substituteInPlace tests/jobs-systemd.cpp \
       --replace '^(/usr)?' '^(/nix/store/\\w+-bash-.+)?'
@@ -63,6 +64,7 @@ stdenv.mkDerivation (finalAttrs: {
     dpkg # for setting LOMIRI_APP_LAUNCH_ARCH
     gobject-introspection
     pkg-config
+    validatePkgConfig
   ] ++ lib.optionals withDocumentation [
     doxygen
     python3Packages.breathe
@@ -96,8 +98,8 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   cmakeFlags = [
-    "-DENABLE_MIRCLIENT=OFF"
-    "-DENABLE_TESTS=${lib.boolToString finalAttrs.doCheck}"
+    (lib.cmakeBool "ENABLE_MIRCLIENT" false)
+    (lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
   ];
 
   postBuild = lib.optionalString withDocumentation ''
@@ -119,6 +121,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     description = "System and associated utilities to launch applications in a standard and confined way";
     homepage = "https://gitlab.com/ubports/development/core/lomiri-app-launch";
+    changelog = "https://gitlab.com/ubports/development/core/lomiri-app-launch/-/blob/${finalAttrs.version}/ChangeLog";
     license = licenses.gpl3Only;
     maintainers = teams.lomiri.members;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/lomiri/development/qtmir/default.nix b/pkgs/desktops/lomiri/development/qtmir/default.nix
new file mode 100644
index 000000000000..ba49507f3d36
--- /dev/null
+++ b/pkgs/desktops/lomiri/development/qtmir/default.nix
@@ -0,0 +1,160 @@
+{ stdenv
+, lib
+, fetchFromGitLab
+, fetchpatch
+, testers
+, cmake
+, cmake-extras
+, pkg-config
+, wrapQtAppsHook
+, gsettings-qt
+, gtest
+, libqtdbustest
+, libqtdbusmock
+, libuuid
+, lomiri-api
+, lomiri-app-launch
+, lomiri-url-dispatcher
+, lttng-ust
+, mir
+, process-cpp
+, qtbase
+, qtdeclarative
+, qtsensors
+, valgrind
+, protobuf
+, glm
+, boost
+, properties-cpp
+, glib
+, validatePkgConfig
+, wayland
+, xwayland
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  # Not regular qtmir, experimental support for Mir 2.x
+  # Currently following https://gitlab.com/ubports/development/core/qtmir/-/tree/personal/mariogrip/desktop-development
+  pname = "qtmir-mir2";
+  version = "0.7.2-unstable-2024-01-08";
+
+  src = fetchFromGitLab {
+    owner = "ubports";
+    repo = "development/core/qtmir";
+    rev = "ae0d87415d5c9ed2c4fd2284ba0807d23d564bb0";
+    hash = "sha256-fE8ttCC0FNavs91pASGGG7k7nKVg2lD3JK0WTmCA3gM=";
+  };
+
+  outputs = [
+    "out"
+    "dev"
+  ];
+
+  patches = [
+    # Mir 2.15 compatibility patch
+    # Remove when https://gitlab.com/ubports/development/core/qtmir/-/merge_requests/70 merged into branch
+    (fetchpatch {
+      name = "0001-qtmir-Update-for-Mir-2.15-removals.patch";
+      url = "https://gitlab.com/ubports/development/core/qtmir/-/commit/ead5cacd4d69094ab956627f4dd94ecaff1fd69e.patch";
+      hash = "sha256-hUUUnYwhNH3gm76J21M8gA5okaRd/Go03ZFJ4qn0JUo=";
+    })
+
+    # Remove when https://gitlab.com/ubports/development/core/qtmir/-/merge_requests/72 merged in branch
+    (fetchpatch {
+      name = "0002-qtmir-Add-more-better-GNUInstallDirs-variables-usage.patch";
+      url = "https://gitlab.com/ubports/development/core/qtmir/-/commit/87e2cd31052ce15e9625c1327807a320ee5d12af.patch";
+      hash = "sha256-MTE9tHw+xJhraEO1up7dLg0UIcmfHXgWOeuyYrVu2wc=";
+    })
+
+    # Remove when https://gitlab.com/ubports/development/core/qtmir/-/merge_requests/73 merged in branch
+    (fetchpatch {
+      name = "0003-qtmir-CMakeLists-Only-require-test-dependencies-when-building-tests.patch";
+      url = "https://gitlab.com/ubports/development/core/qtmir/-/commit/b7144e67bcbb4cfbd2283d5d05146fb22b7d8cd4.patch";
+      hash = "sha256-Afbj40MopztchDnk6fphTYk86YrQkiK8L1e/oXiL1Mw=";
+    })
+
+    # Remove when https://gitlab.com/ubports/development/core/qtmir/-/merge_requests/74 merged in branch
+    (fetchpatch {
+      name = "0004-qtmir-CMakeLists-Drop-call-of-Qt-internal-macro.patch";
+      url = "https://gitlab.com/ubports/development/core/qtmir/-/commit/8f9c599a4dbc4cf35e289157fd0c82df55b9f8d9.patch";
+      hash = "sha256-SMAErXnlMtVleWRPgO4xuUI7gAAy6W18LxtgXgetRA4=";
+    })
+  ];
+
+  postPatch = ''
+    substituteInPlace CMakeLists.txt \
+      --replace "\''${CMAKE_INSTALL_FULL_LIBDIR}/qt5/qml" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}" \
+      --replace "\''${CMAKE_INSTALL_FULL_LIBDIR}/qt5/plugins/platforms" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtPluginPrefix}/platforms" \
+
+    substituteInPlace data/xwayland.qtmir.desktop \
+      --replace '/usr/bin/Xwayland' 'Xwayland'
+  '';
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    cmake
+    glib # glib-compile-schemas
+    pkg-config
+    validatePkgConfig
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    cmake-extras
+    boost
+    gsettings-qt
+    libuuid
+    lomiri-api
+    lomiri-app-launch
+    lomiri-url-dispatcher
+    lttng-ust
+    mir
+    process-cpp
+    protobuf
+    qtbase
+    qtdeclarative
+    qtsensors
+    valgrind
+
+    glm # included by mir header
+    wayland # mirwayland asks for this
+    properties-cpp # included by l-a-l header
+  ];
+
+  propagatedBuildInputs = [
+    # Needs Xwayland on PATH for desktop file, else launching X11 applications crashes qtmir
+    xwayland
+  ];
+
+  checkInputs = [
+    gtest
+    libqtdbustest
+    libqtdbusmock
+  ];
+
+  cmakeFlags = [
+    (lib.cmakeBool "NO_TESTS" (!finalAttrs.finalPackage.doCheck))
+    (lib.cmakeBool "WITH_MIR2" true)
+  ];
+
+  postInstall = ''
+    glib-compile-schemas $out/share/glib-2.0/schemas
+  '';
+
+  # Tests currently unavailable when building with Mir2
+  doCheck = false;
+
+  passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
+
+  meta = with lib; {
+    description = "QPA plugin to make Qt a Mir server";
+    homepage = "https://gitlab.com/ubports/development/core/qtmir";
+    license = licenses.lgpl3Only;
+    maintainers = teams.lomiri.members;
+    platforms = platforms.linux;
+    pkgConfigModules = [
+      "qtmirserver"
+    ];
+  };
+})
diff --git a/pkgs/desktops/lomiri/development/trust-store/default.nix b/pkgs/desktops/lomiri/development/trust-store/default.nix
index 477cdd0511f8..d797fbd8f688 100644
--- a/pkgs/desktops/lomiri/development/trust-store/default.nix
+++ b/pkgs/desktops/lomiri/development/trust-store/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , lib
 , fetchFromGitLab
+, gitUpdater
 , testers
 , boost
 , cmake
@@ -19,17 +20,18 @@
 , properties-cpp
 , qtbase
 , qtdeclarative
+, validatePkgConfig
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "trust-store";
-  version = "unstable-2023-10-17";
+  version = "2.0.2";
 
   src = fetchFromGitLab {
     owner = "ubports";
     repo = "development/core/trust-store";
-    rev = "7aa7ab5b7f3843e24c13ae6d9b8607455296d60e";
-    hash = "sha256-j+4FZzbG3qh1pGRapFuuMiwT4Lv9P6Ji9/3Z0uGvXmw=";
+    rev = finalAttrs.version;
+    hash = "sha256-tVwqBu4py8kdydyKECZfLvcLijpZSQszeo8ytTDagy0=";
   };
 
   outputs = [
@@ -58,6 +60,7 @@ stdenv.mkDerivation (finalAttrs: {
     gettext
     graphviz
     pkg-config
+    validatePkgConfig
   ];
 
   buildInputs = [
@@ -86,8 +89,10 @@ stdenv.mkDerivation (finalAttrs: {
   cmakeFlags = [
     # Requires mirclient API, unavailable in Mir 2.x
     # https://gitlab.com/ubports/development/core/trust-store/-/issues/2
-    "-DTRUST_STORE_MIR_AGENT_ENABLED=OFF"
-    "-DTRUST_STORE_ENABLE_DOC_GENERATION=ON"
+    (lib.cmakeBool "TRUST_STORE_MIR_AGENT_ENABLED" false)
+    (lib.cmakeBool "TRUST_STORE_ENABLE_DOC_GENERATION" true)
+    # error: moving a temporary object prevents copy elision
+    (lib.cmakeBool "ENABLE_WERROR" false)
   ];
 
   # Not working
@@ -104,7 +109,10 @@ stdenv.mkDerivation (finalAttrs: {
   # Starts & talks to DBus
   enableParallelChecking = false;
 
-  passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
+  passthru = {
+    tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
+    updateScript = gitUpdater { };
+  };
 
   meta = with lib; {
     description = "Common implementation of a trust store to be used by trusted helpers";
diff --git a/pkgs/desktops/lomiri/qml/lomiri-action-api/default.nix b/pkgs/desktops/lomiri/qml/lomiri-action-api/default.nix
index 34a8f8740ac0..d3d23c68f8bf 100644
--- a/pkgs/desktops/lomiri/qml/lomiri-action-api/default.nix
+++ b/pkgs/desktops/lomiri/qml/lomiri-action-api/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitLab
-, fetchpatch
 , gitUpdater
 , testers
 , cmake
@@ -10,17 +9,18 @@
 , pkg-config
 , qtbase
 , qtdeclarative
+, validatePkgConfig
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "lomiri-action-api";
-  version = "1.1.2";
+  version = "1.1.3";
 
   src = fetchFromGitLab {
     owner = "ubports";
     repo = "development/core/lomiri-action-api";
     rev = finalAttrs.version;
-    hash = "sha256-FOHjZ5F4IkjSn/SpZEz25CbTR/gaK4D7BRxDVSDuAl8=";
+    hash = "sha256-JDcUq7qEp6Z8TjdNspIz4FE/euH+ytGWa4rSxy4voiU=";
   };
 
   outputs = [
@@ -28,19 +28,10 @@ stdenv.mkDerivation (finalAttrs: {
     "dev"
   ];
 
-  patches = [
-    # Drop deprecated qt5_use_modules usage
-    # Remove when https://gitlab.com/ubports/development/core/lomiri-action-api/-/merge_requests/4 merged & in release
-    (fetchpatch {
-      url = "https://gitlab.com/OPNA2608/lomiri-action-api/-/commit/ff1d7f7eb127f6a00a99e8b278c963899d0303f0.patch";
-      hash = "sha256-nLUoRl260hMbtEPjOQJI/3w54xgFxjcxerAqNN5FU/0=";
-    })
-  ];
-
   postPatch = ''
     # Queries QMake for broken Qt variable: '/build/qtbase-<commit>/$(out)/$(qtQmlPrefix)'
     substituteInPlace qml/Lomiri/Action/CMakeLists.txt \
-      --replace "\''${QT_IMPORTS_DIR}/Lomiri" '${qtbase.qtQmlPrefix}/Lomiri'
+      --replace 'exec_program(''${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_QML" OUTPUT_VARIABLE QT_IMPORTS_DIR)' 'set(QT_IMPORTS_DIR "''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}")'
   '';
 
   strictDeps = true;
@@ -48,6 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
   nativeBuildInputs = [
     cmake
     pkg-config
+    validatePkgConfig
   ];
 
   buildInputs = [
@@ -61,9 +53,11 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   cmakeFlags = [
-    "-DENABLE_TESTING=${lib.boolToString finalAttrs.finalPackage.doCheck}"
-    "-Duse_libhud2=OFF" # Use vendored libhud2, TODO package libhud2 separately?
-    "-DGENERATE_DOCUMENTATION=OFF" # QML docs need qdoc, https://github.com/NixOS/nixpkgs/pull/245379
+    (lib.cmakeBool "ENABLE_TESTING" finalAttrs.finalPackage.doCheck)
+    # Use vendored libhud2, TODO package libhud2 separately?
+    (lib.cmakeBool "use_libhud2" false)
+    # QML docs need qdoc, https://github.com/NixOS/nixpkgs/pull/245379
+    (lib.cmakeBool "GENERATE_DOCUMENTATION" false)
   ];
 
   dontWrapQtApps = true;
@@ -83,6 +77,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     description = "Allow applications to export actions in various forms to the Lomiri Shell";
     homepage = "https://gitlab.com/ubports/development/core/lomiri-action-api";
+    changelog = "https://gitlab.com/ubports/development/core/lomiri-action-api/-/blob/${finalAttrs.version}/ChangeLog";
     license = licenses.lgpl3Only;
     maintainers = teams.lomiri.members;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/lomiri/qml/lomiri-settings-components/default.nix b/pkgs/desktops/lomiri/qml/lomiri-settings-components/default.nix
index 1adb7372b7f9..854615512d67 100644
--- a/pkgs/desktops/lomiri/qml/lomiri-settings-components/default.nix
+++ b/pkgs/desktops/lomiri/qml/lomiri-settings-components/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "lomiri-settings-components";
-  version = "1.1.0";
+  version = "1.1.1";
 
   src = fetchFromGitLab {
     owner = "ubports";
     repo = "development/core/lomiri-settings-components";
     rev = finalAttrs.version;
-    hash = "sha256-13uxUBM+uOmt8X0uLGWNP8YbwCdb2QCChB8IP3td5a4=";
+    hash = "sha256-2Wyh+2AW6EeKRv26D4l+GIoH5sWC9SmOODNHOveFZPg=";
   };
 
   postPatch = ''
@@ -58,6 +58,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     description = "QML settings components for the Lomiri Desktop Environment";
     homepage = "https://gitlab.com/ubports/development/core/lomiri-settings-components";
+    changelog = "https://gitlab.com/ubports/development/core/lomiri-settings-components/-/blob/${finalAttrs.version}/ChangeLog";
     license = licenses.lgpl3Only;
     maintainers = teams.lomiri.members;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/lomiri/qml/lomiri-ui-extras/default.nix b/pkgs/desktops/lomiri/qml/lomiri-ui-extras/default.nix
index 06d5c1c31941..5a2097f47657 100644
--- a/pkgs/desktops/lomiri/qml/lomiri-ui-extras/default.nix
+++ b/pkgs/desktops/lomiri/qml/lomiri-ui-extras/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitLab
-, fetchpatch
 , gitUpdater
 , cmake
 , cmake-extras
@@ -17,48 +16,18 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "lomiri-ui-extras";
-  version = "0.6.2";
+  version = "0.6.3";
 
   src = fetchFromGitLab {
     owner = "ubports";
     repo = "development/core/lomiri-ui-extras";
     rev = finalAttrs.version;
-    hash = "sha256-RZTGTe18ebqKz8kWOpRgFJO2sR97sVbdPQMW/XLHs68=";
+    hash = "sha256-SF/UF84K9kNtLHO9FDuIFdQId0NfbmRiRZiPrOKvE9o=";
   };
 
-  patches = [
-    # Fix compatibility with Exiv2 0.28.0
-    # Remove when version > 0.6.2
-    (fetchpatch {
-      name = "0001-lomiri-ui-extras-Fix-for-exiv2-0.28.0.patch";
-      url = "https://gitlab.com/ubports/development/core/lomiri-ui-extras/-/commit/f337ceefa7c4f8f39dc7c75d51df8b86f148891a.patch";
-      hash = "sha256-dm50un46eTeBZsyHJF1npGBqOAF1BopJZ1Uln1PqSOE=";
-    })
-
-    # Remove deprecated qt5_use_modules usage
-    # Remove when version > 0.6.2
-    (fetchpatch {
-      name = "0002-lomiri-ui-extras-Stop-using-qt5_use_modules.patch";
-      url = "https://gitlab.com/ubports/development/core/lomiri-ui-extras/-/commit/df506e7ebe7107dd0465d7d65727753f07abd122.patch";
-      hash = "sha256-VmOhJaUgjp9BHoYAO780uxI5tE7F0Gtp9gRNe0QCrhs=";
-    })
-
-    # Find qmltestrunner via PATH instead of hardcoded path
-    # https://gitlab.com/ubports/development/core/lomiri-ui-extras/-/merge_requests/84
-    (fetchpatch {
-      name = "0003-lomiri-ui-extras-Dont-insist-on-finding-qmltestrunner-only-at-hardcoded-guess.patch";
-      url = "https://gitlab.com/OPNA2608/lomiri-ui-extras/-/commit/b0c4901818761b516a45b7f0524ac713ddf33cfe.patch";
-      hash = "sha256-oFeaGiYEDr9XHRlCpXX+0ALlVdfb0FmGBFF1RzIXSBE=";
-    })
-  ];
-
   postPatch = ''
     substituteInPlace modules/Lomiri/Components/Extras{,/{plugin,PamAuthentication}}/CMakeLists.txt \
       --replace "\''${CMAKE_INSTALL_LIBDIR}/qt5/qml" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}"
-
-    # tst_busy_indicator runs into a codepath in lomiri-ui-toolkit that expects a working GL context
-    sed -i tests/qml/CMakeLists.txt \
-      -e '/declare_qml_test("tst_busy_indicator"/d'
   '';
 
   strictDeps = true;
@@ -89,11 +58,19 @@ stdenv.mkDerivation (finalAttrs: {
   dontWrapQtApps = true;
 
   cmakeFlags = [
-    "-DENABLE_TESTS=${lib.boolToString finalAttrs.finalPackage.doCheck}"
+    (lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
+    (lib.cmakeFeature "CMAKE_CTEST_ARGUMENTS" (lib.concatStringsSep ";" [
+      # Exclude tests
+      "-E" (lib.strings.escapeShellArg "(${lib.concatStringsSep "|" [
+        # tst_busy_indicator runs into a codepath in lomiri-ui-toolkit that expects a working GL context
+        "^tst_busy_indicator"
+        # Photo & PhotoImageProvider Randomly fail, unsure why
+        "^tst_PhotoEditorPhoto"
+      ]})")
+    ]))
   ];
 
-  # tst_PhotoEditorPhoto and tst_PhotoEditorPhotoImageProvider randomly fail, haven't had time to debug
-  doCheck = false;
+  doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
 
   # Parallelism breaks xvfb-run-launched script for QML tests
   enableParallelChecking = false;
@@ -118,6 +95,7 @@ stdenv.mkDerivation (finalAttrs: {
       documentation and/or lack of automated tests.
     '';
     homepage = "https://gitlab.com/ubports/development/core/lomiri-ui-extras";
+    changelog = "https://gitlab.com/ubports/development/core/lomiri-ui-extras/-/blob/${finalAttrs.version}/ChangeLog";
     license = licenses.gpl3Only;
     maintainers = teams.lomiri.members;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/lomiri/qml/lomiri-ui-toolkit/2002-Nixpkgs-versioned-QML-path.patch.in b/pkgs/desktops/lomiri/qml/lomiri-ui-toolkit/2002-Nixpkgs-versioned-QML-path.patch.in
new file mode 100644
index 000000000000..d2e83baf98ae
--- /dev/null
+++ b/pkgs/desktops/lomiri/qml/lomiri-ui-toolkit/2002-Nixpkgs-versioned-QML-path.patch.in
@@ -0,0 +1,29 @@
+From ca4c52a80532732243067eb00ec12b4ef84010a6 Mon Sep 17 00:00:00 2001
+From: OPNA2608 <opna2608@protonmail.com>
+Date: Tue, 30 Jan 2024 19:46:09 +0100
+Subject: [PATCH] Nixpkgs versioned QML path
+
+---
+ src/LomiriToolkit/uctheme.cpp | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/src/LomiriToolkit/uctheme.cpp b/src/LomiriToolkit/uctheme.cpp
+index a10c89344..4b0653589 100644
+--- a/src/LomiriToolkit/uctheme.cpp
++++ b/src/LomiriToolkit/uctheme.cpp
+@@ -180,6 +180,12 @@ QStringList themeSearchPath()
+         pathList << QStandardPaths::standardLocations(QStandardPaths::GenericDataLocation);
+     }
+
++    // append versioned QML import path from Nixpkgs
++    const QString nixpkgsQmlImportPath = QString::fromLocal8Bit(getenv("NIXPKGS_QT@qtVersion@_QML_IMPORT_PATH"));
++    if (!nixpkgsQmlImportPath.isEmpty()) {
++        pathList << nixpkgsQmlImportPath.split(':', QString::SkipEmptyParts);
++    }
++
+     // append QML import path(s); we must explicitly support env override here
+     const QString qml2ImportPath = QString::fromLocal8Bit(getenv("QML2_IMPORT_PATH"));
+     if (!qml2ImportPath.isEmpty()) {
+--
+2.42.0
+
diff --git a/pkgs/desktops/lomiri/qml/lomiri-ui-toolkit/default.nix b/pkgs/desktops/lomiri/qml/lomiri-ui-toolkit/default.nix
index bac495acdc7c..f8048b49eb5c 100644
--- a/pkgs/desktops/lomiri/qml/lomiri-ui-toolkit/default.nix
+++ b/pkgs/desktops/lomiri/qml/lomiri-ui-toolkit/default.nix
@@ -3,6 +3,7 @@
 , fetchFromGitLab
 , fetchpatch
 , gitUpdater
+, substituteAll
 , testers
 , dbus-test-runner
 , dpkg
@@ -22,6 +23,7 @@
 , qtsvg
 , qtsystems
 , suru-icon-theme
+, validatePkgConfig
 , wrapQtAppsHook
 , xvfb-run
 }:
@@ -33,13 +35,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "lomiri-ui-toolkit";
-  version = "1.3.5011";
+  version = "1.3.5012";
 
   src = fetchFromGitLab {
     owner = "ubports";
     repo = "development/core/lomiri-ui-toolkit";
     rev = finalAttrs.version;
-    hash = "sha256-z/EEmC9LjQtBx5MRDLeImxpRrzH4w6v6o+NmqX+L4dw=";
+    hash = "sha256-Azz2IOm/7XRvDbyIKaYxrkR47evSB17ejtssuEJayPc=";
   };
 
   outputs = [ "out" "dev" ];
@@ -57,23 +59,12 @@ stdenv.mkDerivation (finalAttrs: {
       hash = "sha256-x8Zk7+VBSlM16a3V1yxJqIB63796H0lsS+F4dvR/z80=";
     })
 
-    # Small fixes to statesaver & tst_imageprovider.11.qml tests
-    # Remove when version > 1.3.5011
-    (fetchpatch {
-      name = "0003-lomiri-ui-toolkit-tests-Minor-fixes.patch";
-      url = "https://gitlab.com/ubports/development/core/lomiri-ui-toolkit/-/commit/a8324d670b813a48ac7d48aa0bc013773047a01d.patch";
-      hash = "sha256-W6q3LuQqWmUVSBzORcJsTPoLfbWwytABMDR6JITHrDI=";
-    })
-
-    # Fix Qt 5.15.11 compatibility
-    # Remove when version > 1.3.5011
-    (fetchpatch {
-      name = "0004-lomiri-ui-toolkit-Fix-compilation-with-Qt-5.15.11.patch";
-      url = "https://gitlab.com/ubports/development/core/lomiri-ui-toolkit/-/commit/4f999077dc6bc5591bdfede64fd21cb3acdcaac1.patch";
-      hash = "sha256-5VCQFOykxgspNBxH94XYuBpdHsH9a3+8FwV6xQE55Xc=";
-    })
-
     ./2001-Mark-problematic-tests.patch
+    (substituteAll {
+      src = ./2002-Nixpkgs-versioned-QML-path.patch.in;
+      name = "2002-Nixpkgs-versioned-QML-path.patch";
+      qtVersion = lib.versions.major qtbase.version;
+    })
   ];
 
   postPatch = ''
@@ -130,6 +121,7 @@ stdenv.mkDerivation (finalAttrs: {
     pkg-config
     python3
     qmake
+    validatePkgConfig
     wrapQtAppsHook
   ];
 
@@ -242,6 +234,7 @@ stdenv.mkDerivation (finalAttrs: {
         - localisation through gettext
     '';
     homepage = "https://gitlab.com/ubports/development/core/lomiri-ui-toolkit";
+    changelog = "https://gitlab.com/ubports/development/core/lomiri-ui-toolkit/-/blob/${finalAttrs.version}/ChangeLog";
     license = with licenses; [ gpl3Only cc-by-sa-30 ];
     maintainers = teams.lomiri.members;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/lomiri/qml/qqc2-suru-style/default.nix b/pkgs/desktops/lomiri/qml/qqc2-suru-style/default.nix
new file mode 100644
index 000000000000..5717ae35f113
--- /dev/null
+++ b/pkgs/desktops/lomiri/qml/qqc2-suru-style/default.nix
@@ -0,0 +1,45 @@
+{ stdenv
+, lib
+, fetchFromGitLab
+, gitUpdater
+, qmake
+, qtdeclarative
+, qtquickcontrols2
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "qqc2-suru-style";
+  version = "0.20230206";
+
+  src = fetchFromGitLab {
+    owner = "ubports";
+    repo = "development/core/qqc2-suru-style";
+    rev = finalAttrs.version;
+    hash = "sha256-ZLPuXnhlR1IDhGnprcdWHLnOeS6ZzVkFhQML0iKMjO8=";
+  };
+
+  # QMake can't find Qt modules from buildInputs
+  strictDeps = false;
+
+  nativeBuildInputs = [
+    qmake
+  ];
+
+  buildInputs = [
+    qtdeclarative
+    qtquickcontrols2
+  ];
+
+  dontWrapQtApps = true;
+
+  passthru.updateScript = gitUpdater { };
+
+  meta = with lib; {
+    description = "Suru Style for QtQuick Controls 2";
+    homepage = "https://gitlab.com/ubports/development/core/qqc2-suru-style";
+    changelog = "https://gitlab.com/ubports/development/core/qqc2-suru-style/-/blob/${finalAttrs.version}/ChangeLog";
+    license = with licenses; [ gpl2Plus lgpl3Only cc-by-sa-30 ];
+    maintainers = teams.lomiri.members;
+    platforms = platforms.unix;
+  };
+})
diff --git a/pkgs/desktops/lomiri/services/biometryd/default.nix b/pkgs/desktops/lomiri/services/biometryd/default.nix
index c8d0da9a65c2..418a39ebb6e0 100644
--- a/pkgs/desktops/lomiri/services/biometryd/default.nix
+++ b/pkgs/desktops/lomiri/services/biometryd/default.nix
@@ -18,17 +18,18 @@
 , qtbase
 , qtdeclarative
 , sqlite
+, validatePkgConfig
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "biometryd";
-  version = "0.3.0";
+  version = "0.3.1";
 
   src = fetchFromGitLab {
     owner = "ubports";
     repo = "development/core/biometryd";
     rev = finalAttrs.version;
-    hash = "sha256-b095rsQnd63Ziqe+rn3ROo4LGXZxZ3Sa6h3apzCuyCs=";
+    hash = "sha256-derU7pKdNf6pwhskaW7gCLcU9ixBG3U0EI/qtANmmTs=";
   };
 
   outputs = [
@@ -36,41 +37,10 @@ stdenv.mkDerivation (finalAttrs: {
     "dev"
   ];
 
-  patches = [
-    # https://gitlab.com/ubports/development/core/biometryd/-/merge_requests/31
-    (fetchpatch {
-      url = "https://gitlab.com/OPNA2608/biometryd/-/commit/d01d979e4f98c6473761d1ace308aa182017804e.patch";
-      hash = "sha256-JxL3BLuh33ptfneU1y2qNGFKpeMlZlTMwCK97Rk3aTA=";
-    })
-    (fetchpatch {
-      url = "https://gitlab.com/OPNA2608/biometryd/-/commit/3cec6a3d42ea6aba8892da2c771b317f44daf9e2.patch";
-      hash = "sha256-Ij/aio38WmZ+NsUSbM195Gwb83goWIcCnJvGwAOJi50=";
-    })
-    (fetchpatch {
-      url = "https://gitlab.com/OPNA2608/biometryd/-/commit/e89bd9444bc1cfe84a9aa93faa23057c80f39564.patch";
-      hash = "sha256-1vEG349X9+SvY/f3no/l5cMVGpdzC8h/8XOZwL/70Dc=";
-    })
-
-    # https://gitlab.com/ubports/development/core/biometryd/-/merge_requests/32
-    (fetchpatch {
-      url = "https://gitlab.com/OPNA2608/biometryd/-/commit/9e52fad0139c5a45f69e6a6256b2b5ff54f77740.patch";
-      hash = "sha256-DZSdzKq6EYgAllKSDgkGk2g57zHN+gI5fOoj7U5AcKY=";
-    })
-  ];
-
   postPatch = ''
-    # Remove with !31 patches, fetchpatch can't apply renames
-    pushd data
-    for type in conf service; do
-      mv biometryd.$type biometryd.$type.in
-      substituteInPlace biometryd.$type.in \
-        --replace '/usr/bin' "\''${CMAKE_INSTALL_FULL_BINDIR}"
-    done
-    popd
-
     # Uses pkg_get_variable, cannot substitute prefix with that
-    substituteInPlace CMakeLists.txt \
-      --replace 'pkg_get_variable(SYSTEMD_SYSTEM_UNIT_DIR systemd systemdsystemunitdir)' 'set(SYSTEMD_SYSTEM_UNIT_DIR "${placeholder "out"}/lib/systemd/system")'
+    substituteInPlace data/CMakeLists.txt \
+      --replace 'pkg_get_variable(SYSTEMD_SYSTEM_UNIT_DIR systemd systemdsystemunitdir)' 'set(SYSTEMD_SYSTEM_UNIT_DIR "''${CMAKE_INSTALL_PREFIX}/lib/systemd/system")'
 
     substituteInPlace src/biometry/qml/Biometryd/CMakeLists.txt \
       --replace "\''${CMAKE_INSTALL_LIBDIR}/qt5/qml" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}"
@@ -84,6 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
     cmake
     pkg-config
     qtdeclarative # qmlplugindump
+    validatePkgConfig
   ];
 
   buildInputs = [
@@ -107,8 +78,9 @@ stdenv.mkDerivation (finalAttrs: {
   dontWrapQtApps = true;
 
   cmakeFlags = [
-    "-DENABLE_WERROR=OFF"
-    "-DWITH_HYBRIS=OFF"
+    # maybe-uninitialized warnings
+    (lib.cmakeBool "ENABLE_WERROR" false)
+    (lib.cmakeBool "WITH_HYBRIS" false)
   ];
 
   preBuild = ''
@@ -118,6 +90,11 @@ stdenv.mkDerivation (finalAttrs: {
 
   doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
 
+  passthru = {
+    tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
+    updateScript = gitUpdater { };
+  };
+
   meta = with lib; {
     description = "Mediates/multiplexes access to biometric devices";
     longDescription = ''
@@ -126,6 +103,7 @@ stdenv.mkDerivation (finalAttrs: {
       them for identification and verification of users.
     '';
     homepage = "https://gitlab.com/ubports/development/core/biometryd";
+    changelog = "https://gitlab.com/ubports/development/core/biometryd/-/${finalAttrs.version}/ChangeLog";
     license = licenses.lgpl3Only;
     maintainers = teams.lomiri.members;
     mainProgram = "biometryd";
diff --git a/pkgs/desktops/lomiri/services/content-hub/default.nix b/pkgs/desktops/lomiri/services/content-hub/default.nix
index 6fb05b445ed8..6fe832f417a6 100644
--- a/pkgs/desktops/lomiri/services/content-hub/default.nix
+++ b/pkgs/desktops/lomiri/services/content-hub/default.nix
@@ -67,6 +67,18 @@ stdenv.mkDerivation (finalAttrs: {
       url = "https://gitlab.com/ubports/development/core/content-hub/-/commit/3c5ca4a8ec125e003aca78c14521b70140856c25.patch";
       hash = "sha256-kYN0eLwMyM/9yK+zboyEsoPKZMZ4SCXodVYsvkQr2F8=";
     })
+
+    # Remove when https://gitlab.com/ubports/development/core/content-hub/-/merge_requests/37 merged & in release
+    (fetchpatch {
+      name = "0004-content-hub-Fix-generation-of-transfer_files.patch";
+      url = "https://gitlab.com/ubports/development/core/content-hub/-/commit/7ab3a4421356f83515f0deffb5f97a5b38601c13.patch";
+      hash = "sha256-MJZm3ny5t0/GX0bd5hGQbPM2k7M4KUvKqce/0cYYgvM=";
+    })
+    (fetchpatch {
+      name = "0005-content-hub-Fix-generation-of-moc_test_harness.patch";
+      url = "https://gitlab.com/ubports/development/core/content-hub/-/commit/6e30f4f10ef90e817ca01d32959b6c782de48955.patch";
+      hash = "sha256-TAbYn265RpHpulaRVaHy9XqNF+qoDE7YQIfFMPfqEhw=";
+    })
   ];
 
   postPatch = ''
diff --git a/pkgs/desktops/lomiri/services/hfd-service/default.nix b/pkgs/desktops/lomiri/services/hfd-service/default.nix
index e9ae4a0fe2db..cdffee5edaef 100644
--- a/pkgs/desktops/lomiri/services/hfd-service/default.nix
+++ b/pkgs/desktops/lomiri/services/hfd-service/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "hfd-service";
-  version = "0.2.1";
+  version = "0.2.2";
 
   src = fetchFromGitLab {
     owner = "ubports";
     repo = "development/core/hfd-service";
     rev = finalAttrs.version;
-    hash = "sha256-KcHwLTSdo86YCteUsPndoxmLf23SOEhROc5cJQ8GS1Q=";
+    hash = "sha256-OpT1vNjnyq66v54EoGOZOUb4HECD4WRJRh9hYMB0GI0=";
   };
 
   postPatch = ''
@@ -59,7 +59,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   cmakeFlags = [
-    "-DENABLE_LIBHYBRIS=OFF"
+    (lib.cmakeBool "ENABLE_LIBHYBRIS" false)
   ];
 
   dontWrapQtApps = true;
@@ -69,6 +69,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     description = "DBus-activated service that manages human feedback devices such as LEDs and vibrators on mobile devices";
     homepage = "https://gitlab.com/ubports/development/core/hfd-service";
+    changelog = "https://gitlab.com/ubports/development/core/hfd-service/-/blob/${finalAttrs.version}/ChangeLog";
     license = licenses.lgpl3Only;
     maintainers = teams.lomiri.members;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/lomiri/services/history-service/default.nix b/pkgs/desktops/lomiri/services/history-service/default.nix
index de8b614ae3ea..86866db3ce92 100644
--- a/pkgs/desktops/lomiri/services/history-service/default.nix
+++ b/pkgs/desktops/lomiri/services/history-service/default.nix
@@ -19,6 +19,7 @@
 , sqlite
 , telepathy
 , telepathy-mission-control
+, validatePkgConfig
 , wrapQtAppsHook
 , xvfb-run
 }:
@@ -28,13 +29,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "history-service";
-  version = "0.4";
+  version = "0.5";
 
   src = fetchFromGitLab {
     owner = "ubports";
     repo = "development/core/history-service";
     rev = finalAttrs.version;
-    hash = "sha256-oCX+moGQewzstbpddEYYp1kQdO2mVXpWJITfvzDzQDI=";
+    hash = "sha256-m/ytJoHxW0q1vlVKK6Z9ovHzjoiS1AodCSGHTeKygfQ=";
   };
 
   outputs = [
@@ -43,38 +44,31 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   patches = [
-    # Deprecation warnings with Qt5.15, allow disabling -Werror
-    # Remove when version > 0.4
-    (fetchpatch {
-      url = "https://gitlab.com/ubports/development/core/history-service/-/commit/1370777952c6a2efb85f582ff8ba085c2c0e290a.patch";
-      hash = "sha256-Z/dFrFo7WoPZlKto6wNGeWdopsi8iBjmd5ycbqMKgxo=";
-    })
-
     # Drop deprecated qt5_use_modules usage
     # Remove when https://gitlab.com/ubports/development/core/history-service/-/merge_requests/36 merged & in release
     (fetchpatch {
-      url = "https://gitlab.com/OPNA2608/history-service/-/commit/b36ab377aca93555b29d1471d6eaa706b5c843ca.patch";
+      url = "https://gitlab.com/ubports/development/core/history-service/-/commit/b36ab377aca93555b29d1471d6eaa706b5c843ca.patch";
       hash = "sha256-mOpXqqd4JI7lHtcWDm9LGCrtB8ERge04jMpHIagDM2k=";
     })
 
     # Add more / correct existing GNUInstallDirs usage
     # Remove when https://gitlab.com/ubports/development/core/history-service/-/merge_requests/37 merged & in release
     (fetchpatch {
-      url = "https://gitlab.com/OPNA2608/history-service/-/commit/bb4dbdd16e80dcd286d8edfb86b08f0b61bc7fec.patch";
+      url = "https://gitlab.com/ubports/development/core/history-service/-/commit/bb4dbdd16e80dcd286d8edfb86b08f0b61bc7fec.patch";
       hash = "sha256-C/XaygI663yaU06klQD9g0NnbqYxHSmzdbrRxcfiJkk=";
     })
 
     # Correct version information
     # Remove when https://gitlab.com/ubports/development/core/history-service/-/merge_requests/38 merged & in release
     (fetchpatch {
-      url = "https://gitlab.com/OPNA2608/history-service/-/commit/30d9fbee203205ec1ea8fd19c9b6eb54c080a9e2.patch";
-      hash = "sha256-vSZ1ii5Yhw7pB+Pd1pjWnW7JsQxKnn+LeuBKo6qZjQs=";
+      url = "https://gitlab.com/ubports/development/core/history-service/-/commit/98458126f9f494b124134fb35c198af0545f6a98.patch";
+      hash = "sha256-4EfLsaueKTCovl8EilN30cmfNfg19wvyCsbKqOrXtuw=";
     })
 
     # Make tests optional
     # Remove when https://gitlab.com/ubports/development/core/history-service/-/merge_requests/39 merged & in release
     (fetchpatch {
-      url = "https://gitlab.com/OPNA2608/history-service/-/commit/cb5c80cffc35611657244e15a7eb10edcd598ccd.patch";
+      url = "https://gitlab.com/ubports/development/core/history-service/-/commit/cb5c80cffc35611657244e15a7eb10edcd598ccd.patch";
       hash = "sha256-MFHGu4OMScdThq9htUgFMpezP7Ym6YTIZUHWol20wqw=";
     })
   ];
@@ -131,6 +125,7 @@ stdenv.mkDerivation (finalAttrs: {
     cmake
     pkg-config
     sqlite
+    validatePkgConfig
     wrapQtAppsHook
   ];
 
@@ -193,6 +188,7 @@ stdenv.mkDerivation (finalAttrs: {
       Database location: ~/.local/share/history-service/history.sqlite
     '';
     homepage = "https://gitlab.com/ubports/development/core/history-service";
+    changelog = "https://gitlab.com/ubports/development/core/history-service/-/blob/${finalAttrs.version}/ChangeLog";
     license = licenses.gpl3Only;
     maintainers = teams.lomiri.members;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/lomiri/services/lomiri-download-manager/default.nix b/pkgs/desktops/lomiri/services/lomiri-download-manager/default.nix
index ea2032c7fffa..5c2f02b596fb 100644
--- a/pkgs/desktops/lomiri/services/lomiri-download-manager/default.nix
+++ b/pkgs/desktops/lomiri/services/lomiri-download-manager/default.nix
@@ -9,7 +9,8 @@
 , cmake-extras
 , dbus
 , dbus-test-runner
-, withDocumentation ? true
+# Needs qdoc, https://github.com/NixOS/nixpkgs/pull/245379
+, withDocumentation ? false
 , doxygen
 , glog
 , graphviz
@@ -19,19 +20,20 @@
 , python3
 , qtbase
 , qtdeclarative
+, validatePkgConfig
 , wrapQtAppsHook
 , xvfb-run
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "lomiri-download-manager";
-  version = "0.1.2";
+  version = "0.1.3";
 
   src = fetchFromGitLab {
     owner = "ubports";
     repo = "development/core/lomiri-download-manager";
     rev = finalAttrs.version;
-    hash = "sha256-a9C+hactBMHMr31E+ImKDPgpzxajy1klkjDcSEkPHqI=";
+    hash = "sha256-LhhO/zZ4wNiRd235NB2b08SQcCZt1awN/flcsLs2m8U=";
   };
 
   outputs = [
@@ -42,42 +44,17 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   patches = [
-    # Remove when version > 0.1.2
+    # This change seems incomplete, potentially breaks things on systems that don't use AppArmor mediation
+    # https://gitlab.com/ubports/development/core/lomiri-download-manager/-/merge_requests/24#note_1746801673
     (fetchpatch {
-      name = "0001-lomiri-download-manager-Make-documentation-build-optional.patch";
-      url = "https://gitlab.com/ubports/development/core/lomiri-download-manager/-/commit/32d7369714c01bd425af9c6de5bdc04399a12e0a.patch";
-      hash = "sha256-UztcBAAFXDX2j0X5D3kMp9q0vFm3/PblUAKPJ5nZyiY=";
-    })
-
-    # Remove when version > 0.1.2
-    (fetchpatch {
-      name = "0002-lomiri-download-manager-Upgrade-C++-standard-to-C++17.patch";
-      url = "https://gitlab.com/ubports/development/core/lomiri-download-manager/-/commit/a6bc7ae80f2ff4c4743978c6c694149707d9d2e2.patch";
-      hash = "sha256-iA1sZhHI8Osgo1ofL5RTqgVzUG32zx0dU/28qcEqmQc=";
-    })
-
-    # Remove when version > 0.1.2
-    (fetchpatch {
-      name = "0003-lomiri-download-manager-Bump-version-make-Werror-and-tests-optional.patch";
-      url = "https://gitlab.com/ubports/development/core/lomiri-download-manager/-/commit/73ec04c429e5285f05dd72d5bb9720ba6ff31be2.patch";
-      hash = "sha256-0BrJSKCvUhITwfln05OrHgHEpldbgBoh4rivAvw+qrc=";
-    })
-
-    # Remove when version > 0.1.2
-    (fetchpatch {
-      name = "0004-lomiri-download-manager-Use-GNUInstallDirs-variables-for-more-install-destinations.patch";
-      url = "https://gitlab.com/ubports/development/core/lomiri-download-manager/-/commit/5d40daf053de62150aa5ee618285e415d7d3f1c8.patch";
-      hash = "sha256-r5fpiJkZkDsYX9fcX5JuPsE/qli9z5/DatmGJ9/QauU=";
+      name = "0001-lomiri-download-manager-Revert-Drop-GetConnectionAppArmorSecurityContext.patch";
+      url = "https://gitlab.com/ubports/development/core/lomiri-download-manager/-/commit/2367f3dff852b69457b1a65a487cb032c210569f.patch";
+      revert = true;
+      hash = "sha256-xS0Wz6d+bZWj/kDGK2WhOduzyP4Rgz3n9n2XY1Zu5hE=";
     })
   ];
 
   postPatch = ''
-    # fetchpatch strips renames
-    # Remove when version > 0.1.2
-    for service in src/{uploads,downloads}/daemon/{lomiri-*-manager,lomiri-*-manager-systemd,com.lomiri.*}.service; do
-      mv "$service" "$service".in
-    done
-
     # pkg_get_variable doesn't let us substitute prefix pkg-config variable from systemd
     substituteInPlace CMakeLists.txt \
       --replace 'pkg_get_variable(SYSTEMD_USER_DIR systemd systemduserunitdir)' 'set(SYSTEMD_USER_DIR "${placeholder "out"}/lib/systemd/user")' \
@@ -89,6 +66,7 @@ stdenv.mkDerivation (finalAttrs: {
   nativeBuildInputs = [
     cmake
     pkg-config
+    validatePkgConfig
     wrapQtAppsHook
   ] ++ lib.optionals withDocumentation [
     doxygen
@@ -116,10 +94,10 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   cmakeFlags = [
-    "-DENABLE_DOC=${lib.boolToString withDocumentation}"
+    (lib.cmakeBool "ENABLE_DOC" withDocumentation)
     # Deprecation warnings on Qt 5.15
     # https://gitlab.com/ubports/development/core/lomiri-download-manager/-/issues/1
-    "-DENABLE_WERROR=OFF"
+    (lib.cmakeBool "ENABLE_WERROR" false)
   ];
 
   makeTargets = [
@@ -146,6 +124,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     description = "Performs uploads and downloads from a centralized location";
     homepage = "https://gitlab.com/ubports/development/core/lomiri-download-manager";
+    changelog = "https://gitlab.com/ubports/development/core/lomiri-download-manager/-/blob/${finalAttrs.version}/ChangeLog";
     license = licenses.lgpl3Only;
     maintainers = teams.lomiri.members;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/lomiri/services/lomiri-indicator-network/default.nix b/pkgs/desktops/lomiri/services/lomiri-indicator-network/default.nix
new file mode 100644
index 000000000000..25cf5f7d528e
--- /dev/null
+++ b/pkgs/desktops/lomiri/services/lomiri-indicator-network/default.nix
@@ -0,0 +1,134 @@
+{ stdenv
+, lib
+, fetchFromGitLab
+, gitUpdater
+, nixosTests
+, testers
+, cmake
+, cmake-extras
+, coreutils
+, dbus
+, doxygen
+, gettext
+, glib
+, gmenuharness
+, gtest
+, intltool
+, libsecret
+, libqofono
+, libqtdbusmock
+, libqtdbustest
+, lomiri-api
+, lomiri-url-dispatcher
+, networkmanager
+, ofono
+, pkg-config
+, python3
+, qtdeclarative
+, qtbase
+, validatePkgConfig
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "lomiri-indicator-network";
+  version = "1.0.2";
+
+  src = fetchFromGitLab {
+    owner = "ubports";
+    repo = "development/core/lomiri-indicator-network";
+    rev = finalAttrs.version;
+    hash = "sha256-9AQCWCZFbt4XcmKsjoTXJlWOm02/kBhpPxbHRtftNFM=";
+  };
+
+  outputs = [
+    "out"
+    "dev"
+    "doc"
+  ];
+
+  postPatch = ''
+    # Queried via pkg-config, would need to override a prefix variable
+    # Needs CMake 3.28 or higher to do as part of the call, https://github.com/NixOS/nixpkgs/pull/275284
+    substituteInPlace data/CMakeLists.txt \
+      --replace 'pkg_get_variable(DBUS_SESSION_BUS_SERVICES_DIR dbus-1 session_bus_services_dir)' 'set(DBUS_SESSION_BUS_SERVICES_DIR "''${CMAKE_INSTALL_SYSCONFDIR}/dbus-1/services")' \
+      --replace 'pkg_get_variable(SYSTEMD_USER_DIR systemd systemduserunitdir)' 'set(SYSTEMD_USER_DIR "''${CMAKE_INSTALL_PREFIX}/lib/systemd/user")'
+  '';
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    cmake
+    doxygen
+    gettext
+    intltool
+    pkg-config
+    qtdeclarative
+    validatePkgConfig
+  ];
+
+  buildInputs = [
+    cmake-extras
+    dbus
+    glib
+    libqofono
+    libsecret
+    lomiri-api
+    lomiri-url-dispatcher
+    networkmanager
+    ofono
+    qtbase
+  ];
+
+  nativeCheckInputs = [
+    (python3.withPackages (ps: with ps; [
+      python-dbusmock
+    ]))
+  ];
+
+  checkInputs = [
+    gmenuharness
+    gtest
+    libqtdbusmock
+    libqtdbustest
+  ];
+
+  dontWrapQtApps = true;
+
+  cmakeFlags = [
+    (lib.cmakeBool "GSETTINGS_LOCALINSTALL" true)
+    (lib.cmakeBool "GSETTINGS_COMPILE" true)
+    (lib.cmakeBool "ENABLE_TESTS" finalAttrs.doCheck)
+    (lib.cmakeBool "ENABLE_UBUNTU_COMPAT" true) # just in case something needs it
+    (lib.cmakeBool "BUILD_DOC" true) # lacks QML docs, needs qdoc: https://github.com/NixOS/nixpkgs/pull/245379
+  ];
+
+  doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
+
+  postInstall = ''
+    substituteInPlace $out/etc/dbus-1/services/com.lomiri.connectivity1.service \
+      --replace '/bin/false' '${lib.getExe' coreutils "false"}'
+  '';
+
+  passthru = {
+    ayatana-indicators = [
+      "lomiri-indicator-network"
+    ];
+    tests = {
+      pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
+      vm = nixosTests.ayatana-indicators;
+    };
+    updateScript = gitUpdater { };
+  };
+
+  meta = with lib; {
+    description = "Ayatana indiator exporting the network settings menu through D-Bus";
+    homepage = "https://gitlab.com/ubports/development/core/lomiri-indicator-network";
+    changelog = "https://gitlab.com/ubports/development/core/lomiri-indicator-network/-/blob/${finalAttrs.version}/ChangeLog";
+    license = licenses.gpl3Only;
+    maintainers = teams.lomiri.members;
+    platforms = platforms.linux;
+    pkgConfigModules = [
+      "lomiri-connectivity-qt1"
+    ];
+  };
+})
diff --git a/pkgs/desktops/lomiri/services/lomiri-thumbnailer/default.nix b/pkgs/desktops/lomiri/services/lomiri-thumbnailer/default.nix
new file mode 100644
index 000000000000..7f2a5d256cb0
--- /dev/null
+++ b/pkgs/desktops/lomiri/services/lomiri-thumbnailer/default.nix
@@ -0,0 +1,212 @@
+{ stdenv
+, lib
+, fetchFromGitLab
+, fetchpatch
+, gitUpdater
+, testers
+, boost
+, cmake
+, cmake-extras
+, doxygen
+, gst_all_1
+, gdk-pixbuf
+, gtest
+, makeFontsConf
+, libapparmor
+, libexif
+, libqtdbustest
+, librsvg
+, lomiri-api
+, persistent-cache-cpp
+, pkg-config
+, python3
+, qtbase
+, qtdeclarative
+, shared-mime-info
+, taglib
+, validatePkgConfig
+, wrapGAppsHook
+, xvfb-run
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "lomiri-thumbnailer";
+  version = "3.0.3";
+
+  src = fetchFromGitLab {
+    owner = "ubports";
+    repo = "development/core/lomiri-thumbnailer";
+    rev = finalAttrs.version;
+    hash = "sha256-BE/U4CT4z4WzEJXrVhX8ME/x9q7w8wNnJKTbfVku2VQ=";
+  };
+
+  outputs = [
+    "out"
+    "dev"
+    "doc"
+  ];
+
+  patches = [
+    # Remove when https://gitlab.com/ubports/development/core/lomiri-thumbnailer/-/merge_requests/19 merged & in release
+    (fetchpatch {
+      name = "0001-lomiri-thumbnailer-Add-more-better-GNUInstallDirs-variables-usage.patch";
+      url = "https://gitlab.com/ubports/development/core/lomiri-thumbnailer/-/commit/0b9795a6313fd025d5646f2628a2cbb3104b0ebc.patch";
+      hash = "sha256-br99n2nDLjUfnjbjhOsWlvP62VmVjYeZ6yPs1dhPN/s=";
+    })
+
+    # Remove when https://gitlab.com/ubports/development/core/lomiri-thumbnailer/-/merge_requests/22 merged & in release
+    (fetchpatch {
+      name = "0002-lomiri-thumbnailer-Make-tests-optional.patch";
+      url = "https://gitlab.com/ubports/development/core/lomiri-thumbnailer/-/commit/df7a3d1689f875d207a90067b957e888160491b9.patch";
+      hash = "sha256-gVxigpSL/3fXNdJBjh8Ex3/TYmQUiwRji/NmLW/uhE4=";
+    })
+
+    # Remove when https://gitlab.com/ubports/development/core/lomiri-thumbnailer/-/merge_requests/23 merged & in release
+    (fetchpatch {
+      name = "0003-lomiri-thumbnailer-doc-liblomiri-thumbnailer-qt-Honour-CMAKE_INSTALL_DOCDIR.patch";
+      url = "https://gitlab.com/ubports/development/core/lomiri-thumbnailer/-/commit/930a3b57e899f6eb65a96d096edaea6a6f6b242a.patch";
+      hash = "sha256-klYycUoQqA+Dfk/4fRQgdS4/G4o0sC1k98mbtl0iHkE=";
+    })
+    (fetchpatch {
+      name = "0004-lomiri-thumbnailer-Re-enable-documentation.patch";
+      url = "https://gitlab.com/ubports/development/core/lomiri-thumbnailer/-/commit/2f9186f71fdd25e8a0852073f1da59ba6169cf3f.patch";
+      hash = "sha256-youaJfCeYVpLmruHMupuUdl0c/bSDPWqKPLgu5plBrw=";
+    })
+    (fetchpatch {
+      name = "0005-lomiri-thumbnailer-doc-liblomiri-thumbnailer-qt-examples-Drop-qt5_use_modules-usage.patch";
+      url = "https://gitlab.com/ubports/development/core/lomiri-thumbnailer/-/commit/9e5cf09de626e73e6b8f180cbc1160ebd2f169e7.patch";
+      hash = "sha256-vfNCN7tqq6ngzNmb3qqHDHaDx/kI8/UXyyv7LqUWya0=";
+    })
+    (fetchpatch {
+      name = "0006-lomiri-thumbnailer-Re-enable-coverge-reporting.patch";
+      url = "https://gitlab.com/ubports/development/core/lomiri-thumbnailer/-/commit/6a48831f042cd3ad34200f32800393d4eec2f84b.patch";
+      hash = "sha256-HZd4K0R1W6adOjKy7tODfQAD+9IKPcK0DnH1uKNd/Ak=";
+    })
+    (fetchpatch {
+      name = "0007-lomiri-thumbnailer-Make-GTest-available-to-example-test.patch";
+      url = "https://gitlab.com/ubports/development/core/lomiri-thumbnailer/-/commit/657be3bd1aeb227edc04e26b597b2fe97b2dc51a.patch";
+      hash = "sha256-XEvdWV3JJujG16+87iewYor0jFK7NTeE5459iT96SkU=";
+    })
+  ];
+
+  postPatch = ''
+    patchShebangs tools/{parse-settings.py,run-xvfb.sh} tests/{headers,whitespace,server}/*.py
+
+    substituteInPlace tests/thumbnailer-admin/thumbnailer-admin_test.cpp \
+      --replace '/usr/bin/test' 'test'
+
+    substituteInPlace plugins/*/Thumbnailer*/CMakeLists.txt \
+      --replace "\''${CMAKE_INSTALL_LIBDIR}/qt5/qml" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}"
+
+    # I think this variable fails to be populated because of our toolchain, while upstream uses Debian / Ubuntu where this works fine
+    # https://cmake.org/cmake/help/v3.26/variable/CMAKE_LIBRARY_ARCHITECTURE.html
+    # > If the <LANG> compiler passes to the linker an architecture-specific system library search directory such as
+    # > <prefix>/lib/<arch> this variable contains the <arch> name if/as detected by CMake.
+    substituteInPlace tests/qml/CMakeLists.txt \
+      --replace 'CMAKE_LIBRARY_ARCHITECTURE' 'CMAKE_SYSTEM_PROCESSOR' \
+      --replace 'powerpc-linux-gnu' 'ppc' \
+      --replace 's390x-linux-gnu' 's390x'
+
+    # Tests run in parallel to other builds, don't suck up cores
+    substituteInPlace tests/headers/compile_headers.py \
+      --replace 'max_workers=multiprocessing.cpu_count()' "max_workers=1"
+  '';
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    cmake
+    doxygen
+    gdk-pixbuf # setup hook
+    pkg-config
+    (python3.withPackages (ps: with ps; lib.optionals finalAttrs.doCheck [
+      python-dbusmock
+      tornado
+    ]))
+    validatePkgConfig
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    boost
+    cmake-extras
+    gdk-pixbuf
+    libapparmor
+    libexif
+    librsvg
+    lomiri-api
+    persistent-cache-cpp
+    qtbase
+    qtdeclarative
+    shared-mime-info
+    taglib
+  ] ++ (with gst_all_1; [
+    gstreamer
+    gst-plugins-base
+    gst-plugins-good
+    gst-plugins-bad
+    # maybe add ugly to cover all kinds of formats?
+  ]);
+
+  nativeCheckInputs = [
+    shared-mime-info
+    xvfb-run
+  ];
+
+  checkInputs = [
+    gtest
+    libqtdbustest
+  ];
+
+  dontWrapQtApps = true;
+
+  cmakeFlags = [
+    (lib.cmakeBool "GSETTINGS_LOCALINSTALL" true)
+    (lib.cmakeBool "GSETTINGS_COMPILE" true)
+    # error: use of old-style cast to 'std::remove_reference<_GstElement*>::type' {aka 'struct _GstElement*'}
+    (lib.cmakeBool "Werror" false)
+    (lib.cmakeFeature "CMAKE_CTEST_ARGUMENTS" (lib.concatStringsSep ";" [
+      # QSignalSpy tests in QML suite always fail, pass when running interactively
+      "-E" "^qml"
+    ]))
+  ];
+
+  doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
+
+  enableParallelChecking = false;
+
+  preCheck = ''
+    # Fontconfig warnings breaks some tests
+    export FONTCONFIG_FILE=${makeFontsConf { fontDirectories = []; }}
+    export HOME=$TMPDIR
+
+    # Some tests need Qt plugins
+    export QT_PLUGIN_PATH=${lib.getBin qtbase}/${qtbase.qtPluginPrefix}
+
+    # QML tests need QML modules
+    export QML2_IMPORT_PATH=${lib.getBin qtdeclarative}/${qtbase.qtQmlPrefix}
+  '';
+
+  preFixup = ''
+    gappsWrapperArgs+=(
+      --prefix XDG_DATA_DIRS : ${lib.makeSearchPath "share" [ shared-mime-info ]}
+    )
+  '';
+
+  passthru = {
+    tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
+    updateScript = gitUpdater { };
+  };
+
+  meta = with lib; {
+    description = "D-Bus service for out of process thumbnailing";
+    homepage = "https://gitlab.com/ubports/development/core/lomiri-thumbnailer";
+    changelog = "https://gitlab.com/ubports/development/core/lomiri-thumbnailer/-/blob/${finalAttrs.version}/ChangeLog";
+    license = with licenses; [ gpl3Only lgpl3Only ];
+    maintainers = teams.lomiri.members;
+    platforms = platforms.linux;
+    pkgConfigModules = [
+      "liblomiri-thumbnailer-qt"
+    ];
+  };
+})
diff --git a/pkgs/desktops/lomiri/services/telephony-service/default.nix b/pkgs/desktops/lomiri/services/telephony-service/default.nix
new file mode 100644
index 000000000000..63a426aa30e0
--- /dev/null
+++ b/pkgs/desktops/lomiri/services/telephony-service/default.nix
@@ -0,0 +1,197 @@
+{ stdenv
+, lib
+, fetchFromGitLab
+, fetchpatch
+, fetchpatch2
+, gitUpdater
+, nixosTests
+, ayatana-indicator-messages
+, bash
+, cmake
+, dbus
+, dbus-glib
+, dbus-test-runner
+, dconf
+, gettext
+, glib
+, gnome
+, history-service
+, libnotify
+, libphonenumber
+, libpulseaudio
+, libusermetrics
+, lomiri-ui-toolkit
+, lomiri-url-dispatcher
+, makeWrapper
+, pkg-config
+, protobuf
+, python3
+, qtbase
+, qtdeclarative
+, qtfeedback
+, qtmultimedia
+, qtpim
+, telepathy
+, telepathy-glib
+, telepathy-mission-control
+, xvfb-run
+}:
+
+let
+  replaceDbusService = pkg: name: "--replace \"\\\${DBUS_SERVICES_DIR}/${name}\" \"${pkg}/share/dbus-1/services/${name}\"";
+in
+stdenv.mkDerivation (finalAttrs: {
+  pname = "telephony-service";
+  version = "0.5.3";
+
+  src = fetchFromGitLab {
+    owner = "ubports";
+    repo = "development/core/telephony-service";
+    rev = finalAttrs.version;
+    hash = "sha256-eLGwAJmBDDvSODQUNr/zcPA/0DdXtVBiS7vg+iIYPDo=";
+  };
+
+  patches = [
+    # Remove when https://gitlab.com/ubports/development/core/telephony-service/-/merge_requests/90 merged & in release
+    (fetchpatch {
+      name = "0001-telephony-service-CMakeLists-Make-tests-optional.patch";
+      url = "https://gitlab.com/ubports/development/core/telephony-service/-/commit/9a8297bcf9b34d77ffdae3dfe4ad2636022976fb.patch";
+      hash = "sha256-Za4ZGKnw9iz2RP1LzLhKrEJ1vLUufWk8J07LmWDW40E=";
+    })
+  ];
+
+  postPatch = ''
+    # Queries qmake for the QML installation path, which returns a reference to Qt5's build directory
+    substituteInPlace CMakeLists.txt \
+      --replace "\''${QMAKE_EXECUTABLE} -query QT_INSTALL_QML" "echo $out/${qtbase.qtQmlPrefix}"
+
+  '' + lib.optionalString finalAttrs.finalPackage.doCheck ''
+    substituteInPlace tests/common/dbus-services/CMakeLists.txt \
+      ${replaceDbusService telepathy-mission-control "org.freedesktop.Telepathy.MissionControl5.service"} \
+      ${replaceDbusService telepathy-mission-control "org.freedesktop.Telepathy.AccountManager.service"} \
+      ${replaceDbusService dconf "ca.desrt.dconf.service"}
+
+    substituteInPlace cmake/modules/GenerateTest.cmake \
+      --replace '/usr/lib/dconf' '${lib.getLib dconf}/libexec' \
+      --replace '/usr/lib/telepathy' '${lib.getLib telepathy-mission-control}/libexec'
+  '';
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    makeWrapper
+  ];
+
+  buildInputs = [
+    ayatana-indicator-messages
+    bash
+    dbus-glib
+    dbus
+    dconf
+    gettext
+    glib
+    history-service
+    libnotify
+    libphonenumber
+    libpulseaudio
+    libusermetrics
+    lomiri-url-dispatcher
+    protobuf
+    (python3.withPackages (ps: with ps; [
+      dbus-python
+      pygobject3
+    ]))
+    qtbase
+    qtdeclarative
+    qtfeedback
+    qtmultimedia
+    qtpim
+    telepathy
+    telepathy-glib
+    telepathy-mission-control
+  ];
+
+  nativeCheckInputs = [
+    dbus-test-runner
+    dconf
+    gnome.gnome-keyring
+    telepathy-mission-control
+    xvfb-run
+  ];
+
+  dontWrapQtApps = true;
+
+  cmakeFlags = [
+    # These rely on libphonenumber reformatting inputs to certain results
+    # Seem to be broken for a small amount of numbers, maybe libphonenumber version change?
+    (lib.cmakeBool "SKIP_QML_TESTS" true)
+    (lib.cmakeFeature "CMAKE_CTEST_ARGUMENTS" (lib.concatStringsSep ";" [
+      # Exclude tests
+      "-E" (lib.strings.escapeShellArg "(${lib.concatStringsSep "|" [
+        # Flaky, randomly failing to launch properly & stuck until test timeout
+        "^HandlerTest"
+        "^OfonoAccountEntryTest"
+        "^TelepathyHelperSetupTest"
+        "^AuthHandlerTest"
+        "^ChatManagerTest"
+      ]})")
+    ]))
+  ];
+
+  env.NIX_CFLAGS_COMPILE = toString ([
+    "-I${lib.getDev telepathy-glib}/include/telepathy-1.0" # it's in telepathy-farstream's Requires.private, so it & its dependencies don't get pulled in
+    "-I${lib.getDev dbus-glib}/include/dbus-1.0" # telepathy-glib dependency
+    "-I${lib.getDev dbus}/include/dbus-1.0" # telepathy-glib dependency
+  ]);
+
+  doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
+
+  # Starts & talks to D-Bus services, breaks with parallelism
+  enableParallelChecking = false;
+
+  preCheck = ''
+    export QT_QPA_PLATFORM=minimal
+    export QT_PLUGIN_PATH=${lib.makeSearchPathOutput "bin" qtbase.qtPluginPrefix [ qtbase qtpim ]}
+  '';
+
+  postInstall = ''
+    patchShebangs $out/bin/{ofono-setup,phone-gsettings-migration.py}
+
+    # Still missing getprop from libhybris, we don't have it packaged (yet?)
+    wrapProgram $out/bin/ofono-setup \
+      --prefix PATH : ${lib.makeBinPath [ dbus dconf gettext glib telepathy-mission-control ]}
+
+    # These SystemD services are referenced by the installed D-Bus services, but not part of the installation. Why?
+    for service in telephony-service-{approver,indicator}; do
+      install -Dm644 ../debian/telephony-service."$service".user.service $out/lib/systemd/user/"$service".service
+
+      # ofono-setup.service would be rovided by ubuntu-touch-session, we don't plan to package it
+      substituteInPlace $out/lib/systemd/user/"$service".service \
+        --replace '/usr' "$out" \
+        --replace 'Requires=ofono-setup.service' "" \
+        --replace 'After=ofono-setup.service' "" \
+
+      sed -i $out/lib/systemd/user/"$service".service \
+        -e '/ofono-setup.service/d'
+    done
+  '';
+
+  passthru = {
+    ayatana-indicators = [
+      "telephony-service-indicator"
+    ];
+    tests.vm = nixosTests.ayatana-indicators;
+    updateScript = gitUpdater { };
+  };
+
+  meta = with lib; {
+    description = "Backend dispatcher service for various mobile phone related operations";
+    homepage = "https://gitlab.com/ubports/development/core/telephony-service";
+    changelog = "https://gitlab.com/ubports/development/core/telephony-service/-/blob/${finalAttrs.version}/ChangeLog";
+    license = licenses.gpl3Only;
+    maintainers = teams.lomiri.members;
+    platforms = platforms.linux;
+  };
+})
diff --git a/pkgs/desktops/mate/atril/default.nix b/pkgs/desktops/mate/atril/default.nix
index 6c93c5084b4b..29c0e1b824e9 100644
--- a/pkgs/desktops/mate/atril/default.nix
+++ b/pkgs/desktops/mate/atril/default.nix
@@ -6,6 +6,7 @@
 , gtk3
 , glib
 , libxml2
+, libarchive
 , libsecret
 , poppler
 , itstool
@@ -14,7 +15,7 @@
 , mate
 , wrapGAppsHook
 , enableEpub ? true
-, webkitgtk
+, webkitgtk_4_1
 , enableDjvu ? true
 , djvulibre
 , enablePostScript ? true
@@ -27,11 +28,11 @@
 
 stdenv.mkDerivation rec {
   pname = "atril";
-  version = "1.26.1";
+  version = "1.26.2";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "pTphOsuXAaGK1nG/WQJU0c6Da6CuG+LAvYlI/fa0kaQ=";
+    sha256 = "wwW51fVxP0Jiau4DggkTA0IrPXGlbd1lkyzNsjx86SY=";
   };
 
   nativeBuildInputs = [
@@ -44,6 +45,7 @@ stdenv.mkDerivation rec {
     gtk3
     glib
     itstool
+    libarchive
     libsecret
     libxml2
     poppler
@@ -53,7 +55,7 @@ stdenv.mkDerivation rec {
     texlive.bin.core # for synctex, used by the pdf back-end
   ]
   ++ lib.optionals enableDjvu [ djvulibre ]
-  ++ lib.optionals enableEpub [ webkitgtk ]
+  ++ lib.optionals enableEpub [ webkitgtk_4_1 ]
   ++ lib.optionals enablePostScript [ libspectre ]
   ++ lib.optionals enableXps [ libgxps ]
   ;
diff --git a/pkgs/desktops/mate/mate-system-monitor/default.nix b/pkgs/desktops/mate/mate-system-monitor/default.nix
index a4f79e122122..a29cc7c18ec7 100644
--- a/pkgs/desktops/mate/mate-system-monitor/default.nix
+++ b/pkgs/desktops/mate/mate-system-monitor/default.nix
@@ -17,11 +17,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-system-monitor";
-  version = "1.26.2";
+  version = "1.26.3";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "vm2X3saPXza94S+KyvGsVkLSOaXSQWGoL/9QZPRQJUQ=";
+    sha256 = "WFthNBX3bucDt7XlK1WWKUKVB+A8kwVKSq3Pb5xlIkk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/pantheon/apps/elementary-code/default.nix b/pkgs/desktops/pantheon/apps/elementary-code/default.nix
index 5a3233028ce0..9ecf59d2db6f 100644
--- a/pkgs/desktops/pantheon/apps/elementary-code/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-code/default.nix
@@ -26,13 +26,13 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-code";
-  version = "7.1.0";
+  version = "7.2.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = "code";
     rev = version;
-    sha256 = "sha256-Dtm0+NqDwfn5HUQEYtHTiyrpM3mHp1wUFOGaxH86YUo=";
+    sha256 = "sha256-6lvn8c+JfbtZQf5dtViosVqtt/RWL6B/MvksXqmCfFs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/xfce/core/libxfce4windowing/default.nix b/pkgs/desktops/xfce/core/libxfce4windowing/default.nix
new file mode 100644
index 000000000000..6395497fccda
--- /dev/null
+++ b/pkgs/desktops/xfce/core/libxfce4windowing/default.nix
@@ -0,0 +1,18 @@
+{ lib, mkXfceDerivation, gobject-introspection, glib, gtk3, libwnck, wayland }:
+
+mkXfceDerivation {
+  category = "xfce";
+  pname = "libxfce4windowing";
+  version = "4.19.2";
+
+  sha256 = "sha256-mXxxyfwZB/AJFVVGFAAXLqC5p7pZAeqmhljQym55hyM=";
+
+  nativeBuildInputs = [ gobject-introspection ];
+  buildInputs = [ glib gtk3 libwnck wayland ];
+
+  meta = {
+    description = "Windowing concept abstraction library for X11 and Wayland";
+    license = lib.licenses.lgpl21Plus;
+    maintainers = with lib; [ maintainers.federicoschonborn ] ++ teams.xfce.members;
+  };
+}
diff --git a/pkgs/desktops/xfce/default.nix b/pkgs/desktops/xfce/default.nix
index 94ca82b4388b..f0c53a4c3892 100644
--- a/pkgs/desktops/xfce/default.nix
+++ b/pkgs/desktops/xfce/default.nix
@@ -32,6 +32,8 @@ makeScopeWithSplicing' {
 
       libxfce4util = callPackage ./core/libxfce4util { };
 
+      libxfce4windowing = callPackage ./core/libxfce4windowing { };
+
       thunar = callPackage ./core/thunar {
         thunarPlugins = [ ];
       };
diff --git a/pkgs/development/beam-modules/elixir-ls/default.nix b/pkgs/development/beam-modules/elixir-ls/default.nix
index c2f688efce4d..79945e81af25 100644
--- a/pkgs/development/beam-modules/elixir-ls/default.nix
+++ b/pkgs/development/beam-modules/elixir-ls/default.nix
@@ -4,12 +4,12 @@
 
 let
   pname = "elixir-ls";
-  version = "0.18.1";
+  version = "0.19.0";
   src = fetchFromGitHub {
     owner = "elixir-lsp";
     repo = "elixir-ls";
     rev = "v${version}";
-    hash = "sha256-o5/H2FeDXzT/ZyWtLmRs+TWJQfmuDUnnR5Brvkifn6E=";
+    hash = "sha256-pd/ZkDpzlheEJfX7X6fFWY4Y5B5Y2EnJMBtuNHPuUJw=";
     fetchSubmodules = true;
   };
 in
@@ -21,7 +21,7 @@ mixRelease {
   mixFodDeps = fetchMixDeps {
     pname = "mix-deps-${pname}";
     inherit src version elixir;
-    hash = "sha256-q4VKtGxrRaAhtNIJFjNN7tF+HFgU/UX9sKq0BkOIiQI=";
+    hash = "sha256-yxcUljclKKVFbY6iUphnTUSqMPpsEiPcw4yUs6atU0c=";
   };
 
   # elixir-ls is an umbrella app
diff --git a/pkgs/development/compilers/assemblyscript/default.nix b/pkgs/development/compilers/assemblyscript/default.nix
index c297ad56c557..b0fd15d47941 100644
--- a/pkgs/development/compilers/assemblyscript/default.nix
+++ b/pkgs/development/compilers/assemblyscript/default.nix
@@ -5,16 +5,16 @@
 
 buildNpmPackage rec {
   pname = "assemblyscript";
-  version = "0.27.22";
+  version = "0.27.23";
 
   src = fetchFromGitHub {
     owner = "AssemblyScript";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-8j012eAM+tl8AH5vNhg9xKDRJt5pZKV9KNwJFmUgXMY=";
+    sha256 = "sha256-pKb46AfL5MGKiH1AjyPeHw7ZeLnIiPYmf8b2bOkuRe0=";
   };
 
-  npmDepsHash = "sha256-y7gY9VhbR+xfXf3OvKvpcohk2mwfa0uOQO7Nmg+L6ug=";
+  npmDepsHash = "sha256-io/3T0LE1kupjtMg8rpQlRmIn048X0jqhKKj/W7Ilo0=";
 
   meta = with lib; {
     homepage = "https://github.com/AssemblyScript/${pname}";
diff --git a/pkgs/development/compilers/blueprint/default.nix b/pkgs/development/compilers/blueprint/default.nix
index f52b43f49a82..856fcaa5d5ab 100644
--- a/pkgs/development/compilers/blueprint/default.nix
+++ b/pkgs/development/compilers/blueprint/default.nix
@@ -66,7 +66,7 @@ stdenv.mkDerivation (finalAttrs: {
     description = "A markup language for GTK user interface files";
     homepage = "https://gitlab.gnome.org/jwestman/blueprint-compiler";
     license = licenses.lgpl3Plus;
-    maintainers = with maintainers; [ benediktbroich paveloom ranfdev ];
+    maintainers = with maintainers; [ benediktbroich ranfdev ];
     platforms = platforms.unix;
   };
 })
diff --git a/pkgs/development/compilers/chicken/5/deps.toml b/pkgs/development/compilers/chicken/5/deps.toml
index 4a6a39ce7185..743da0b0cfe4 100644
--- a/pkgs/development/compilers/chicken/5/deps.toml
+++ b/pkgs/development/compilers/chicken/5/deps.toml
@@ -2,16 +2,16 @@
 [7off]
 dependencies = ["anaphora", "define-options", "lowdown", "matchable", "srfi-1", "sxml-transforms", "sxpath", "utf8", "srfi-42", "srfi-69", "strse", "uri-common"]
 license = "agpl"
-sha256 = "01dp84dnvvvg26k27bwh8m64qss5jqy8iifykaymz3brragg3406"
+sha256 = "0hsqxva92k3yasrlgl7bbq3z3d2d2nd3r3i2v6vimv7mp2chfkdr"
 synopsis = "Markdown to Gemini text"
-version = "1.30"
+version = "1.31"
 
 [F-operator]
-dependencies = ["utf8", "miscmacros", "datatype", "box"]
+dependencies = ["miscmacros", "datatype", "box"]
 license = "bsd"
-sha256 = "1zhfvcv8628s9sria1i63sdp88h5gpm96iv023qvm07g9z9qv5dv"
+sha256 = "0i7yfc8pxszvsgls871s2bwy11yxyxr4sqbl8gc21g29xm7vjivq"
 synopsis = "Shift/Reset Control Operators"
-version = "4.1.3"
+version = "4.1.4"
 
 [abnf]
 dependencies = ["srfi-1", "utf8", "lexgen"]
@@ -79,9 +79,9 @@ version = "3.0.0"
 [amb]
 dependencies = ["srfi-1"]
 license = "bsd"
-sha256 = "1kkzmbym1xhgxby9grjamjs3yajz5l32v3wg2b6xsl7v0infkszs"
+sha256 = "0ggwmsd4igg099ikn5qja5nkqmrnsw0byyk3q9y04ygvzalqyb36"
 synopsis = "The non-deterministic backtracking ambivalence operator"
-version = "3.0.8"
+version = "3.0.9"
 
 [amqp]
 dependencies = ["bitstring", "mailbox", "srfi-18", "uri-generic"]
@@ -146,6 +146,13 @@ sha256 = "1yq819vbb813svxvxad4h99vrhvf7rs8cv9dsnj85rcvi60w7299"
 synopsis = "Automatically compile Scheme scripts on demand"
 version = "1.1.0"
 
+[awful-main]
+dependencies = ["awful", "spiffy", "define-options"]
+license = "bsd"
+sha256 = "1zpnk3xjkn2pdfw953ximq6i0d3v3mak8ydl6a3nb2zz1daq7044"
+synopsis = "Turn awful web applications into static executables"
+version = "0.1.0"
+
 [awful-path-matchers]
 dependencies = []
 license = "bsd"
@@ -254,9 +261,9 @@ version = "0.4.1"
 [binary-search]
 dependencies = []
 license = "bsd"
-sha256 = "1r3a5387knvg29hp3pn0xs5zzql6g7pkjzl2h6b0ds8gsyqf65b7"
+sha256 = "0hycs33782xvcc4p0jl2a716fi388v8vbvf9isgrnl9ahqnk9kia"
 synopsis = "Binary search algorithm"
-version = "0.1"
+version = "0.2"
 
 [bind]
 dependencies = ["silex", "matchable", "coops", "srfi-1", "regex"]
@@ -345,16 +352,16 @@ version = "0.11"
 [brev-separate]
 dependencies = ["matchable", "miscmacros", "srfi-1", "srfi-69"]
 license = "bsd-1-clause"
-sha256 = "12pl79bfgii9d7kg30qlk94ag0rm0ca4zr4nc95spiva4p8j6ixx"
+sha256 = "0ycm95vcf1dj6m3kqii7b2a5kxyd1m6lzksz77ispay14srgw8rd"
 synopsis = "Hodge podge of macros and combinators"
-version = "1.92"
+version = "1.95"
 
 [brev]
 dependencies = ["anaphora", "brev-separate", "clojurian", "combinators", "define-options", "dwim-sort", "fix-me-now", "acetone", "html-parser", "match-generics", "http-client", "matchable", "miscmacros", "scsh-process", "sequences", "srfi-1", "srfi-42", "srfi-69", "strse", "sxml-serializer", "sxml-transforms", "sxpath", "tree", "uri-common"]
 license = "public-domain"
-sha256 = "0ddf3j3lxv35kgnrzi9lq6ckn1sj149nr0nckj8ghqvfzkqa9flw"
+sha256 = "1kbphbz21rlrsfcfqg77hm1vv7wh9z1gcwh5lb2hlrqp2yl7m7yc"
 synopsis = "A huge pile of batteries and shortcuts"
-version = "1.37"
+version = "1.41"
 
 [byte-blob]
 dependencies = ["srfi-1"]
@@ -415,9 +422,9 @@ version = "0.4"
 [check-errors]
 dependencies = []
 license = "bsd"
-sha256 = "1ra8pvs0qnfqsjbrsn0k94drwx5ydvhapziv6dcqcb118iimnrmd"
+sha256 = "09ffyffrv3gamjsjgbisn3yxb40wbqy5pfrs6dxw20n1ffimgfw5"
 synopsis = "Argument checks & errors"
-version = "3.7.1"
+version = "3.8.0"
 
 [checks]
 dependencies = ["simple-exceptions"]
@@ -436,9 +443,9 @@ version = "0.1.3"
 [chickadee]
 dependencies = ["matchable", "uri-common", "uri-generic", "intarweb", "simple-sha1", "spiffy", "spiffy-request-vars", "sxml-transforms", "chicken-doc", "chicken-doc-admin", "chicken-doc-html", "srfi-18"]
 license = "bsd"
-sha256 = "02wrg3s1hx5slbx0vmg1zmknchwksxxw75yld1nyqxf5wyv2dibj"
+sha256 = "0blbxy2l7kii85glczrxrqc8n7794qxswq67v0vl6hxajwij197i"
 synopsis = "chicken-doc web server"
-version = "0.12.1"
+version = "0.12.2"
 
 [chicken-belt]
 dependencies = ["matchable", "srfi-1", "srfi-13"]
@@ -524,6 +531,13 @@ sha256 = "1rxyr6di07zqfjzbb0kgdx43m2b1zpjrkaph8x078jgqawyblc6v"
 synopsis = "A chicken wrapper for cmark with markdown to sxml capabilities"
 version = "0.1.0"
 
+[coin-change]
+dependencies = ["srfi-1"]
+license = "unlicense"
+sha256 = "09p83afsh2dx4y2cpyi55bf2br03ysdpq9xrqik7fmks3913kxmk"
+synopsis = "Greedy solver for the coin change problem"
+version = "1.0.2"
+
 [color]
 dependencies = ["fmt", "records", "srfi-13"]
 license = "bsd"
@@ -632,9 +646,9 @@ version = "1.4"
 [csm]
 dependencies = ["matchable", "srfi-1", "srfi-13", "srfi-14", "miscmacros"]
 license = "bsd"
-sha256 = "0rfysqqxn92asa6wd1dnzc372982nsr81ay7i7x1cn62bw5gs1pl"
+sha256 = "1bvawrbslsfzxlhal5abyss0nj0jddqbs5ran58nygfc1myn3vfs"
 synopsis = "a build system"
-version = "0.4"
+version = "0.5"
 
 [cst]
 dependencies = ["brev-separate", "srfi-1", "define-options", "match-generics"]
@@ -693,11 +707,11 @@ synopsis = "explicitly implicit renaming"
 version = "1.2"
 
 [define-options]
-dependencies = ["tree", "brev-separate", "getopt-long", "srfi-1"]
+dependencies = ["brev-separate", "getopt-long", "matchable", "quasiwalk", "srfi-1"]
 license = "lgpl"
-sha256 = "03l46ma7d1yy5c8b4b71bwr0vhd0h3w57b3wr25bawk10ngr2qn6"
+sha256 = "1j9lj5kj3j8jhclxnxrrc2wn6qn9j0bhr2y9fydg05an9q7jmrh0"
 synopsis = "Conveniently bind to getopt-long options"
-version = "1.7"
+version = "1.23"
 
 [define-record-and-printer]
 dependencies = ["hahn", "matchable"]
@@ -1043,11 +1057,11 @@ synopsis = "Client library for the gemini:// protocol"
 version = "0.2.1"
 
 [geminih]
-dependencies = ["clojurian", "acetone", "anaphora", "strse", "match-generics", "brev-separate", "srfi-1"]
+dependencies = ["clojurian", "acetone", "anaphora", "html-parser", "strse", "match-generics", "brev-separate", "srfi-1"]
 license = "bsd-1-clause"
-sha256 = "158jprg7y49avv4wnbmp2i0zxw1vwk2am8nfb7nc603rhrc0xism"
+sha256 = "1i2nmzk61szkpg0a2r4i6gx00hnj78b3dqkk34y349h29dm2jv56"
 synopsis = "Gemtext to SXML"
-version = "1.10"
+version = "1.13"
 
 [gemrefinder]
 dependencies = ["scsh-process", "srfi-1", "srfi-42", "define-options", "combinators", "brev-separate", "match-generics", "strse"]
@@ -1094,9 +1108,9 @@ version = "1.21"
 [getopt-utils]
 dependencies = ["utf8", "srfi-1", "getopt-long"]
 license = "bsd"
-sha256 = "0jbzv8s0b3pnlqzl4vls0fssw56ivz1g9afdj90kxaxlxv1b1l0k"
+sha256 = "0i17fj29zbbm05x68h7fy524ypk8vbr62gq6jkrwf18371l0l767"
 synopsis = "Utilities for getopt-long"
-version = "1.1.0"
+version = "1.1.1"
 
 [git]
 dependencies = ["srfi-69", "foreigners", "module-declarations", "srfi-1"]
@@ -1353,9 +1367,9 @@ version = "1.2"
 [intarweb]
 dependencies = ["srfi-1", "srfi-13", "srfi-14", "defstruct", "uri-common", "base64"]
 license = "bsd"
-sha256 = "1vpdrbrmjsdbl4cb3c82iqcvyn9318jzapg6bl00dkbn6ykyisr3"
+sha256 = "0khzz6w8dh8sbiaqw3b68p0v8lv4bjwxipkb9cqj2q9r7zl84555"
 synopsis = "A more convenient HTTP library"
-version = "2.0.3"
+version = "2.1.0"
 
 [integer-map]
 dependencies = ["srfi-1", "srfi-128", "srfi-143", "srfi-158"]
@@ -1388,9 +1402,9 @@ version = "0.2"
 [ioctl]
 dependencies = ["foreigners"]
 license = "bsd"
-sha256 = "1knyb80hm9l3j2cw71i5j73vjhw0g5l4vyyjyp1h5j6fwnsywpfb"
+sha256 = "0qs2daw16zw4jpqnb0q2nnb0qanki7nl0k437b9m4a7qslhdqw6r"
 synopsis = "ioctl system call interface"
-version = "0.3"
+version = "0.4"
 
 [ipfs]
 dependencies = ["http-client", "intarweb", "medea", "srfi-1", "srfi-13", "srfi-189", "srfi-197", "uri-common"]
@@ -1449,11 +1463,11 @@ synopsis = "Parser combinators for JavaScript Object Notation (JSON)."
 version = "7.0"
 
 [json-rpc]
-dependencies = ["r7rs", "srfi-1", "srfi-18", "srfi-69", "srfi-180"]
+dependencies = ["r7rs", "srfi-1", "srfi-18", "srfi-69", "srfi-180", "utf8"]
 license = "mit"
-sha256 = "09ydq35aaap14vxw0533mnxvqq9c8yir1dc7bn61q4l7vzfl44k8"
+sha256 = "10f2iw93fhc0vha6axqzd27akh0ys7a6q0vwhpl0jzw4s48h3ss3"
 synopsis = "A JSON RPC library for R7RS scheme."
-version = "0.4.2"
+version = "0.4.5a"
 
 [json-utils]
 dependencies = ["utf8", "srfi-1", "srfi-69", "vector-lib", "miscmacros", "moremacros"]
@@ -1528,9 +1542,9 @@ version = "1.2"
 [levenshtein]
 dependencies = ["srfi-1", "srfi-13", "srfi-63", "srfi-69", "vector-lib", "utf8", "miscmacros", "record-variants", "check-errors"]
 license = "bsd"
-sha256 = "1v8g5ghilraz2lx0fif3yb1rlg3n51zvvik2l12ycqh0wj0pz59l"
+sha256 = "07jwz006c6yhibg7d9nb35rif04810820pss5mg7c7mbn2nzmq1q"
 synopsis = "Levenshtein edit distance"
-version = "2.2.8"
+version = "2.4.0"
 
 [lexgen]
 dependencies = ["srfi-1", "utf8", "srfi-127"]
@@ -1624,11 +1638,11 @@ synopsis = "A pure Chicken Markdown parser"
 version = "3"
 
 [lsp-server]
-dependencies = ["apropos", "chicken-doc", "json-rpc", "nrepl", "r7rs", "srfi-1", "srfi-130", "srfi-133", "srfi-18", "srfi-69", "uri-generic", "utf8"]
+dependencies = ["apropos", "chicken-doc", "json-rpc", "nrepl", "r7rs", "srfi-1", "srfi-18", "srfi-69", "srfi-130", "srfi-133", "srfi-180", "uri-generic", "utf8"]
 license = "mit"
-sha256 = "0wbigf0s37377hjfxspwydhvnds165mhp2qa14iskvsw5zbp8g80"
+sha256 = "09fak8d29qmxynh4361prhfg971j74mha6pw311a6kmz88h9zp0h"
 synopsis = "LSP Server for CHICKEN."
-version = "0.4.1"
+version = "0.4.4"
 
 [macaw]
 dependencies = []
@@ -1654,9 +1668,9 @@ version = "3.3.10"
 [make-tests]
 dependencies = ["brev-separate", "srfi-1", "uri-common"]
 license = "public-domain"
-sha256 = "0ca8fx40x42zqqsp3dmw5cb9xsjlz4cp71yh9kgcb29n4ig80r97"
+sha256 = "174nbjy27iiz29g906p9rsg036mgwjnl7ll0qc2clqzq1svkgqc7"
 synopsis = "Create unit tests from a file of expressions"
-version = "1.10"
+version = "1.12"
 
 [make]
 dependencies = ["srfi-1"]
@@ -1682,9 +1696,9 @@ version = "0.3.1"
 [match-generics]
 dependencies = ["brev-separate", "matchable", "quasiwalk", "srfi-1"]
 license = "bsd-1-clause"
-sha256 = "07ssmsa52ixwn5wj8b11a0adglyxycf2f7qkkfrwwikalwpvnwdp"
+sha256 = "1js4kq8hp6n8182mzyrs7q7aa6hf9q5y8q3zp2lkplpp862x2sks"
 synopsis = "matchable generics"
-version = "2.4"
+version = "2.8"
 
 [matchable]
 dependencies = []
@@ -1827,11 +1841,11 @@ synopsis = "Various helper macros"
 version = "1.0"
 
 [mistie]
-dependencies = []
+dependencies = ["srfi-1"]
 license = "bsd"
-sha256 = "0j5cqkqqfmq3g0brws02vsvn7c68rdw4k0i17gm7pbsjwjb6qggw"
+sha256 = "0qfz8zc41wm2afwwbg1c8gmpzlph07nsj4r86lx01af9s03nvpfa"
 synopsis = "A programmable filter"
-version = "1.6"
+version = "1.9"
 
 [modular-arithmetic]
 dependencies = ["srfi-1", "matchable"]
@@ -1868,6 +1882,13 @@ sha256 = "09kc4wmhwkdhspk8g0i357qdq9mp1xcalgnqi8z9yasfy2k6gk1h"
 synopsis = "More miscellaneous macros"
 version = "2.5.0"
 
+[mosquitto]
+dependencies = ["srfi-1"]
+license = "mit"
+sha256 = "0v03hljm71hl6xr1pffzcpk2izil9w2sp9k68a7iirvpcvqg9iph"
+synopsis = "Bindings to mosquitto MQTT client library"
+version = "0.1.3"
+
 [mpd-client]
 dependencies = ["regex", "srfi-1"]
 license = "bsd"
@@ -1903,6 +1924,13 @@ sha256 = "01ma6cxmbc0bmk4598q3ag28pnbqlmcfq11mbs4c87ir82bkvz7h"
 synopsis = ""
 version = "1.0.0.6"
 
+[nanosleep]
+dependencies = []
+license = "bsd"
+sha256 = "1nynvd6sv8ffxk0jlvr77mgm0r1rww4c1n5k5m799b36w4gs6df9"
+synopsis = "Interface to POSIX nanosleep"
+version = "0.3.0"
+
 [natural-sort]
 dependencies = []
 license = "mit"
@@ -1976,9 +2004,9 @@ version = "1.21"
 [openssl]
 dependencies = ["srfi-1", "srfi-13", "srfi-18", "address-info"]
 license = "bsd"
-sha256 = "06bj8jqmfk9vlwny5w53bfrahv9wdbxvqyqijxvhmzy8z0p3slx0"
+sha256 = "018x80cxs7glvqn7nhjcfbvw36bn3pf4y24a6cn7mz25z6597vg0"
 synopsis = "Bindings to the OpenSSL SSL/TLS library"
-version = "2.2.4"
+version = "2.2.5"
 
 [operations]
 dependencies = ["srfi-1"]
@@ -2403,9 +2431,9 @@ version = "1.7.1"
 [salmonella]
 dependencies = []
 license = "bsd"
-sha256 = "1xr01d9ax106c5q3xx0lj92q24jqiywasamimpzvda4b17bb34n5"
+sha256 = "1r60dlr1qcjlirbwqpn23aphczlkhrhskgqmw51973w46ww839nf"
 synopsis = "A tool for testing eggs"
-version = "3.0.1"
+version = "3.1.1"
 
 [salt]
 dependencies = ["datatype", "matchable", "make", "mathh", "lalr", "datatype", "unitconv", "fmt"]
@@ -2435,6 +2463,13 @@ sha256 = "03nn90fi18gn29vxvslyi5zxhl5hx2m7f7ikfy9a3ypnkw1bh8qk"
 synopsis = "Tools for Scheme development"
 version = "0.3.2"
 
+[scheme-indent]
+dependencies = ["srfi-1"]
+license = "bsd"
+sha256 = "0brwmphr724shd32dcixsn9wz9zqrhg27g7rjbiz96885maj6nwf"
+synopsis = "A Scheme code indenter"
+version = "0.5"
+
 [scheme2c-compatibility]
 dependencies = ["srfi-1", "srfi-13", "srfi-14", "traversal", "foreigners", "xlib"]
 license = "lgpl"
@@ -2508,9 +2543,9 @@ version = "0.0.13"
 [sendfile]
 dependencies = ["memory-mapped-files"]
 license = "bsd"
-sha256 = "00fnmx6frrvms7s61in2jmfp852rif8nlh3akv1wrn3xm6i7gsyw"
+sha256 = "1vi5i8df146j2gh4x7s8fry0bdzfm57f7v62zd5sd0x45h72lffw"
 synopsis = "Sending a file over the network"
-version = "1.9.1"
+version = "2.0"
 
 [sequences-utils]
 dependencies = ["srfi-1", "srfi-69", "sequences"]
@@ -2596,6 +2631,13 @@ sha256 = "0phsfz2263yiy9z33sf7qjf4i8kh51n5yf1g2wmb0pb63vcdqy8n"
 synopsis = "Some user-friendly exception routines"
 version = "1.3.1"
 
+[simple-logger]
+dependencies = []
+license = "bsd"
+sha256 = "05d9fjn6m9m8c4n2blig844vhv9cp1rmyrcxnkzxfxxiw9y4wfhf"
+synopsis = "A very simple logger"
+version = "1.0.0"
+
 [simple-loops]
 dependencies = []
 license = "bsd"
@@ -2795,9 +2837,9 @@ version = "0.2"
 [sql-de-lite]
 dependencies = ["foreigners", "object-evict", "srfi-1", "srfi-18", "srfi-69"]
 license = "bsd"
-sha256 = "06pr2b0ix5f27cd3ymxbbihdng3n9i9a22dr2g0dlp3ks6i174g3"
+sha256 = "1vx7j1y6b1wkhf3wn3bgf62a3zn3wk9clcygn80k4cjpma2p8ig5"
 synopsis = "SQLite 3 interface"
-version = "0.10.0"
+version = "0.10.1"
 
 [sql-null]
 dependencies = []
@@ -2849,11 +2891,11 @@ synopsis = "SRFI-111: Boxes"
 version = "0.5"
 
 [srfi-113]
-dependencies = ["srfi-69", "srfi-128"]
+dependencies = ["r7rs", "srfi-69", "srfi-128"]
 license = "bsd"
-sha256 = "1psipd38r5jwb4l2q7rxj5yjq3zmisqnmqq64dqx1nxhhbh01wrw"
+sha256 = "0ripxgwfwizj9mzb04lsbvavvy7qima81cyqm830j59sixj6ldc2"
 synopsis = "SRFI-113: Sets and Bags"
-version = "1.1"
+version = "1.2.0"
 
 [srfi-115]
 dependencies = ["srfi-14", "srfi-152"]
@@ -3124,9 +3166,9 @@ version = "2.0.0"
 [srfi-209]
 dependencies = ["srfi-1", "srfi-69", "srfi-113", "srfi-128", "srfi-178", "typed-records"]
 license = "mit"
-sha256 = "0dphpi92afn569pgi3jfwdxm7h63nd0s9s42f5m106wfkf79si9r"
+sha256 = "04fghjk0rfcz0fp71dvwvlxmxshrbmrs85g4l5cx8sp74y047qlv"
 synopsis = "SRFI 209: Enums and enum sets"
-version = "1.2.2"
+version = "1.3.1"
 
 [srfi-216]
 dependencies = ["srfi-18"]
@@ -3173,9 +3215,9 @@ version = "4.2.3"
 [srfi-29]
 dependencies = ["srfi-1", "srfi-69", "utf8", "locale", "posix-utils", "condition-utils", "check-errors"]
 license = "bsd"
-sha256 = "15g2knq5b76f3nhxnmxidhkvbw9dyyc00hrzvsnpkmnfqzcmxbxw"
+sha256 = "1pz31xrfja4y43ci5n8gplhdnasbyxx0kwlmcjzycs1js4b66ld1"
 synopsis = "Localization"
-version = "3.0.7"
+version = "3.0.8"
 
 [srfi-34]
 dependencies = []
@@ -3432,9 +3474,9 @@ version = "2.7.3"
 [strse]
 dependencies = ["matchable", "srfi-13", "miscmacros"]
 license = "bsd-1-clause"
-sha256 = "0gmc7pzhhs964swgq709j89z9lkydy1y267lbw0mza949h6dx5fv"
+sha256 = "1abwb27l8ms7cwdc03wfa51jdqngjdfxdfayjynsvbhw5hp4rxmf"
 synopsis = "A string DSL"
-version = "1.38"
+version = "1.39"
 
 [stty]
 dependencies = ["foreigners", "srfi-69"]
@@ -3635,9 +3677,9 @@ version = "2.4.2"
 [tiny-prolog]
 dependencies = ["srfi-69"]
 license = "bsd"
-sha256 = "0bw1l5vsyw2z3yvv6zlgvzk1hlm16ql6m8gdfd94fk691pvjpnd0"
+sha256 = "0zz468zvr7v1dh2sg48kmlq43dbim66md3dv2dchdpzfjg378w8k"
 synopsis = "Tiny PROLOG interpreter."
-version = "2.0"
+version = "2.1"
 
 [tokyocabinet]
 dependencies = []
@@ -3668,18 +3710,18 @@ synopsis = "tracing and breakpoints"
 version = "2.0"
 
 [transducers]
-dependencies = ["srfi-1", "srfi-128", "srfi-133", "srfi-143", "srfi-146", "srfi-160", "check-errors", "r7rs"]
+dependencies = ["r7rs", "srfi-1", "srfi-128", "srfi-133", "srfi-146", "srfi-160", "check-errors"]
 license = "mit"
-sha256 = "080lwlgvqpwdlqjdb71c1i657wq6ax2v4r9117fh83wr8bs3h1j9"
+sha256 = "1bz05dy7kjypk85yck3a8h6iji6kkmnb48kpqdqvj9nm0kvg2nwd"
 synopsis = "Transducers for working with foldable data types."
-version = "0.5.1"
+version = "0.5.4"
 
 [transmission]
 dependencies = ["http-client", "intarweb", "medea", "r7rs", "srfi-1", "srfi-189", "uri-common"]
 license = "unlicense"
-sha256 = "0x94ihhpway5rzsrviwnmzm7h38p1s0np7f59nxp0a99vcy9x2f0"
+sha256 = "1483d5kz13zvrqpacvb7lfvc178x3j9236vmdv37ndsvjfy7m6fc"
 synopsis = "Transmission RPC"
-version = "0.2.2"
+version = "0.3.0"
 
 [traversal]
 dependencies = ["srfi-1", "vector-lib"]
@@ -3810,9 +3852,9 @@ version = "3.6.3"
 [uuid-lib]
 dependencies = ["record-variants"]
 license = "bsd"
-sha256 = "1hk5p2yvwq4dx93a1wnxggrbwkh050b6m9jlw44s7xvhxhvdqyns"
+sha256 = "16b03b6d29mjn8bcil0ln0vq85dxxvzlxrpnpblf68n7l9ix8qnc"
 synopsis = "OSF DCE 1.1 UUID"
-version = "0.0.14"
+version = "0.0.15"
 
 [uuid]
 dependencies = []
@@ -3880,9 +3922,9 @@ version = "1.1"
 [xj]
 dependencies = ["fmt", "html-parser", "srfi-1", "utf8", "brev-separate"]
 license = "bsd-3-clause"
-sha256 = "0ygznmn4p5df6q7f1m0nv4hz4l5ym3nmm2zp8y3h80piy0cb9c0a"
+sha256 = "15a7p9qq33mlxa3h50s142zy9zchpdpkdkx51kfcadh0rbj0x7bi"
 synopsis = "Unix filter that turns XML into JSON"
-version = "1.28"
+version = "1.29"
 
 [xlib]
 dependencies = ["matchable", "srfi-13"]
@@ -3936,9 +3978,9 @@ version = "0.2"
 [zshbrev]
 dependencies = ["brev"]
 license = "lgplv3"
-sha256 = "1id8a728ibi3fzcpfdd7ary41g7nrlb7pc3vjpmz70jp1q53qppx"
+sha256 = "1zmb84z22p8gv1bk05x7daqpl5h1z71hpivkyc1wbjfxyymmyaxj"
 synopsis = "Access Chicken functions from any shell and access zsh functions from Chicken"
-version = "1.20"
+version = "1.21"
 
 [zstd]
 dependencies = []
diff --git a/pkgs/development/compilers/chicken/5/overrides.nix b/pkgs/development/compilers/chicken/5/overrides.nix
index a5fd3f94830b..adaad31b52bb 100644
--- a/pkgs/development/compilers/chicken/5/overrides.nix
+++ b/pkgs/development/compilers/chicken/5/overrides.nix
@@ -57,6 +57,7 @@ in
   mdh = addToBuildInputs pkgs.pcre;
   # missing dependency in upstream egg
   mistie = addToPropagatedBuildInputs (with chickenEggs; [ srfi-1 ]);
+  mosquitto = addToPropagatedBuildInputs ([ pkgs.mosquitto ]);
   nanomsg = addToBuildInputs pkgs.nanomsg;
   ncurses = addToBuildInputsWithPkgConfig [ pkgs.ncurses ];
   opencl = addToBuildInputs ([ pkgs.opencl-headers pkgs.ocl-icd ]
diff --git a/pkgs/development/compilers/circt/default.nix b/pkgs/development/compilers/circt/default.nix
index 6fb609699bad..dfda406ab9b6 100644
--- a/pkgs/development/compilers/circt/default.nix
+++ b/pkgs/development/compilers/circt/default.nix
@@ -17,12 +17,12 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "circt";
-  version = "1.61.0";
+  version = "1.64.0";
   src = fetchFromGitHub {
     owner = "llvm";
     repo = "circt";
     rev = "firtool-${version}";
-    sha256 = "sha256-3zuaruaveUeJ7uKP5fMiDFPOGKcs6aTNuGOuhxV6nss=";
+    sha256 = "sha256-tZ8IQa01hYVJZdUKPd0rMGfAScuhZPzpwP51WWXERGw=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/compilers/cmdstan/default.nix b/pkgs/development/compilers/cmdstan/default.nix
index ad84e13d369e..817234f79991 100644
--- a/pkgs/development/compilers/cmdstan/default.nix
+++ b/pkgs/development/compilers/cmdstan/default.nix
@@ -11,14 +11,14 @@
 
 stdenv.mkDerivation rec {
   pname = "cmdstan";
-  version = "2.33.1";
+  version = "2.34.1";
 
   src = fetchFromGitHub {
     owner = "stan-dev";
     repo = pname;
     rev = "v${version}";
     fetchSubmodules = true;
-    hash = "sha256-c+L/6PjW7YgmXHuKhKjiRofBRAhKYCzFCZ6BOX5AmC4=";
+    hash = "sha256-gze8kd5zSs9nUlSY7AJwpx+jnc9Y21ahzDJmynlqm1Y=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/compilers/codon/default.nix b/pkgs/development/compilers/codon/default.nix
index 70cd16327299..e9393956e473 100644
--- a/pkgs/development/compilers/codon/default.nix
+++ b/pkgs/development/compilers/codon/default.nix
@@ -134,7 +134,7 @@ stdenv.mkDerivation {
   meta = {
     description = "A high-performance, zero-overhead, extensible Python compiler using LLVM";
     homepage = "https://docs.exaloop.io/codon";
-    maintainers = [ lib.maintainers.paveloom ];
+    maintainers = [ ];
     license = lib.licenses.bsl11;
     platforms = lib.platforms.all;
   };
diff --git a/pkgs/development/compilers/dart/sources.nix b/pkgs/development/compilers/dart/sources.nix
index 600e284d8449..865a75bbff5f 100644
--- a/pkgs/development/compilers/dart/sources.nix
+++ b/pkgs/development/compilers/dart/sources.nix
@@ -1,24 +1,24 @@
-let version = "3.2.4"; in
+let version = "3.2.6"; in
 { fetchurl }: {
   versionUsed = version;
   "${version}-x86_64-darwin" = fetchurl {
     url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${version}/sdk/dartsdk-macos-x64-release.zip";
-    sha256 = "107sq5m684mxw5k21zfs3iyihzbqkfmh0vpj17qca19rghnxgn02";
+    sha256 = "05w5v6f302gwwpa3my8baz4spmdmqrimmc659wgki1h64ch1yrlp";
   };
   "${version}-aarch64-darwin" = fetchurl {
     url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${version}/sdk/dartsdk-macos-arm64-release.zip";
-    sha256 = "08jbcdm5li30xdy85whdah186g0yiasgl12h6vi1vgld15ifjsab";
+    sha256 = "1dmd70jjpfi19rmlvj2hbggw92z03jm8irrwx6r0bk7r748cj11f";
   };
   "${version}-aarch64-linux" = fetchurl {
     url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${version}/sdk/dartsdk-linux-arm64-release.zip";
-    sha256 = "0f40riqcdnjwjnv6si5186h6akrnhnwqrfrgfvm4y0gpblw88c2s";
+    sha256 = "1hs1mvk90qb0nijm8wcvv6xkd79z44i2bpcv2nh933lysdys664q";
   };
   "${version}-x86_64-linux" = fetchurl {
     url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${version}/sdk/dartsdk-linux-x64-release.zip";
-    sha256 = "1bkrfg3xzkc4zrbl5ialg5jwpb7l0xmrd9aj7x5kwz2v8n8w013n";
+    sha256 = "0j0xmyxdmzn4ii24j27yw6l3074ay4n2qjyzh967cpbg9yhr0cr5";
   };
   "${version}-i686-linux" = fetchurl {
     url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${version}/sdk/dartsdk-linux-ia32-release.zip";
-    sha256 = "0jddia0s7byl7p6qbljp444qs11r8ff58s5fbchcrsmkry3pg8gi";
+    sha256 = "0ml9dvnd7f0rld3wfnnmv7arfs821zg8rqaq1c7zvqhkj3i0dwci";
   };
 }
diff --git a/pkgs/development/compilers/erg/default.nix b/pkgs/development/compilers/erg/default.nix
index e012957fb7a9..5183a8712d2a 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.28";
+  version = "0.6.29";
 
   src = fetchFromGitHub {
     owner = "erg-lang";
     repo = "erg";
     rev = "v${version}";
-    hash = "sha256-TK7Ak6ZKjEBcwimV0W/CgD3yd9q1aSgSkp9MuGE3d8k=";
+    hash = "sha256-sHW0e8a8ZDmcA8u0leIJLxzJLI8guKlMB/u7CFhbyQE=";
   };
 
-  cargoHash = "sha256-DD6RXGdkQHMKZCJhHRTbTrRQ15MdOZHbREJ31LePHUY=";
+  cargoHash = "sha256-3wrH++IItJQNueJoa5wuzN2ZXWa5OflBItjQxS/XhO0=";
 
   nativeBuildInputs = [
     makeWrapper
diff --git a/pkgs/development/compilers/flutter/default.nix b/pkgs/development/compilers/flutter/default.nix
index 29d5d415b8a0..6d2d90466033 100644
--- a/pkgs/development/compilers/flutter/default.nix
+++ b/pkgs/development/compilers/flutter/default.nix
@@ -51,12 +51,7 @@ let
     (mkCustomFlutter args).overrideAttrs (prev: next: {
       passthru = next.passthru // rec {
         inherit wrapFlutter mkCustomFlutter mkFlutter;
-        buildFlutterApplication = callPackage ../../../build-support/flutter {
-          # Package a minimal version of Flutter that only uses Linux desktop release artifacts.
-          flutter = (wrapFlutter (mkCustomFlutter args)).override {
-            supportedTargetFlutterPlatforms = [ "universal" "linux" ];
-          };
-        };
+        buildFlutterApplication = callPackage ../../../build-support/flutter { flutter = wrapFlutter (mkCustomFlutter args); };
       };
     });
 
diff --git a/pkgs/development/compilers/fpc/default.nix b/pkgs/development/compilers/fpc/default.nix
index ca16c08b5726..3c9eb60d57c7 100644
--- a/pkgs/development/compilers/fpc/default.nix
+++ b/pkgs/development/compilers/fpc/default.nix
@@ -36,11 +36,14 @@ stdenv.mkDerivation rec {
     substituteInPlace fpcsrc/compiler/systems/t_linux.pas --subst-var-by syslibpath "${glibc}/lib"
     # Replace the `codesign --remove-signature` command with a custom script, since `codesign` is not available
     # in nixpkgs
+    # Remove the -no_uuid strip flag which does not work on llvm-strip, only
+    # Apple strip.
     substituteInPlace fpcsrc/compiler/Makefile \
       --replace \
         "\$(CODESIGN) --remove-signature" \
         "${./remove-signature.sh}" \
-      --replace "ifneq (\$(CODESIGN),)" "ifeq (\$(OS_TARGET), darwin)"
+      --replace "ifneq (\$(CODESIGN),)" "ifeq (\$(OS_TARGET), darwin)" \
+      --replace "-no_uuid" ""
   '';
 
   NIX_LDFLAGS = lib.optionalString
diff --git a/pkgs/development/compilers/fstar/default.nix b/pkgs/development/compilers/fstar/default.nix
index 773a0dde281f..3b3ad0ff5569 100644
--- a/pkgs/development/compilers/fstar/default.nix
+++ b/pkgs/development/compilers/fstar/default.nix
@@ -12,13 +12,13 @@
 
 let
 
-  version = "2023.09.03";
+  version = "2024.01.13";
 
   src = fetchFromGitHub {
     owner = "FStarLang";
     repo = "FStar";
     rev = "v${version}";
-    hash = "sha256-ymoP5DvaLdrdwJcnhZnLEvwNxUFzhkICajPyK4lvacc=";
+    hash = "sha256-xjSWDP8mSjLcn+0hsRpEdzsBgBR+mKCZB8yLmHl+WqE=";
   };
 
   fstar-dune = ocamlPackages.callPackage ./dune.nix { inherit version src; };
diff --git a/pkgs/development/compilers/gcc/common/configure-flags.nix b/pkgs/development/compilers/gcc/common/configure-flags.nix
index 05fd9406377d..b8dccf9fcc57 100644
--- a/pkgs/development/compilers/gcc/common/configure-flags.nix
+++ b/pkgs/development/compilers/gcc/common/configure-flags.nix
@@ -135,6 +135,8 @@ let
       # We pick "/" path to effectively avoid sysroot offset and make it work
       # as a native case.
       "--with-build-sysroot=/"
+      # Same with the stdlibc++ headers embedded in the gcc output
+      "--with-gxx-include-dir=${placeholder "out"}/include/c++/${version}/"
     ]
 
     # Basic configuration
diff --git a/pkgs/development/compilers/gcc/patches/12/mangle-NIX_STORE-in-__FILE__.patch b/pkgs/development/compilers/gcc/patches/12/mangle-NIX_STORE-in-__FILE__.patch
index 4e6c392ce76e..51078925eeb8 100644
--- a/pkgs/development/compilers/gcc/patches/12/mangle-NIX_STORE-in-__FILE__.patch
+++ b/pkgs/development/compilers/gcc/patches/12/mangle-NIX_STORE-in-__FILE__.patch
@@ -12,9 +12,20 @@ inputs to be retained in runtime closure.
 Typical examples are `nix` -> `nlohmann_json` and `pipewire` ->
 `lttng-ust.dev`.
 
+For this reason we want to remove the occurrences of hashes in the
+expansion of `__FILE__`. `nuke-references` does it by replacing hashes
+by `eeeeee...` but those paths are also used for debug symbols. It is
+handy to be able to invert the transformation to go back to the original
+store path for debuginfod servers. The chosen solution is to make the
+hash uppercase:
+- it does not trigger runtime references (except for all digit hashes,
+  which are unlikely enough)
+- it visually looks like a bogus store path
+- it is easy to find the original store path if required
+
 Ideally we would like to use `-fmacro-prefix-map=` feature of `gcc` as:
 
-  -fmacro-prefix-map=/nix/store/$hash1-nlohmann-json-ver=/nix/store/eeee.eee-nlohmann-json-ver
+  -fmacro-prefix-map=/nix/store/$hash1-nlohmann-json-ver=/nix/store/$HASH1-nlohmann-json-ver
   -fmacro-prefix-map=/nix/...
 
 In practice it quickly exhausts argument length limit due to `gcc`
@@ -25,9 +36,9 @@ is present in the environment.
 
 Tested as:
 
-    $ printf "# 0 \"/nix/store/01234567890123456789012345678901-pppppp-vvvvvvv\" \nconst char * f(void) { return __FILE__; }" | NIX_STORE=/nix/store ./gcc/xgcc -Bgcc -x c - -S -o -
+    $ printf "# 0 \"/nix/store/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-pppppp-vvvvvvv\" \nconst char * f(void) { return __FILE__; }" | NIX_STORE=/nix/store ./gcc/xgcc -Bgcc -x c - -S -o -
     ...
-    .string "/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-pppppp-vvvvvvv"
+    .string "/nix/store/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA-pppppp-vvvvvvv"
     ...
 
 Mangled successfully.
@@ -43,7 +54,7 @@ Mangled successfully.
  /* Perform user-specified mapping of filename prefixes.  Return the
     GC-allocated new name corresponding to FILENAME or FILENAME if no
     remapping was performed.  */
-@@ -76,7 +79,30 @@ remap_filename (file_prefix_map *maps, const char *filename)
+@@ -76,7 +79,31 @@ remap_filename (file_prefix_map *maps, const char *filename)
      if (filename_ncmp (filename, map->old_prefix, map->old_len) == 0)
        break;
    if (!map)
@@ -51,8 +62,7 @@ Mangled successfully.
 +    {
 +      if (maps == macro_prefix_maps)
 +	{
-+	  /* Remap all fo $NIX_STORE/.{32} paths to
-+	  * equivalent $NIX_STORE/e{32}.
++	  /* Remap the 32 characters after $NIX_STORE/ to uppercase
 +	  *
 +	  * That way we avoid argument parameters explosion
 +	  * and still avoid embedding headers into runtime closure:
@@ -66,7 +76,9 @@ Mangled successfully.
 +	    {
 +	       s = (char *) ggc_alloc_atomic (name_len + 1);
 +	       memcpy(s, name, name_len + 1);
-+	       memset(s + nix_store_len + 1, 'e', 32);
++	       for (int i = nix_store_len + 1; i < nix_store_len + 1 + 32; i++) {
++		 s[i] = TOUPPER(s[i]);
++	       }
 +	       return s;
 +	    }
 +	}
@@ -75,7 +87,7 @@ Mangled successfully.
    name = filename + map->old_len;
    name_len = strlen (name) + 1;
  
-@@ -90,7 +116,6 @@ remap_filename (file_prefix_map *maps, const char *filename)
+@@ -90,7 +117,6 @@ remap_filename (file_prefix_map *maps, const char *filename)
     ignore it in DW_AT_producer (dwarf2out.cc).  */
  
  /* Linked lists of file_prefix_map structures.  */
diff --git a/pkgs/development/compilers/gcc/patches/13/ICE-PR110280.patch b/pkgs/development/compilers/gcc/patches/13/ICE-PR110280.patch
new file mode 100644
index 000000000000..7338b3dd1ede
--- /dev/null
+++ b/pkgs/development/compilers/gcc/patches/13/ICE-PR110280.patch
@@ -0,0 +1,60 @@
+From f4029de35fb1b293a4fd586574b1b4b73ddf7880 Mon Sep 17 00:00:00 2001
+From: Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
+Date: Wed, 26 Jul 2023 22:36:26 +0530
+Subject: [PATCH] [aarch64/match.pd] Fix ICE observed in PR110280.
+
+gcc/ChangeLog:
+	PR tree-optimization/110280
+	* match.pd (vec_perm_expr(v, v, mask) -> v): Explicitly build vector
+	using build_vector_from_val with the element of input operand, and
+	mask's type if operand and mask's types don't match.
+
+gcc/testsuite/ChangeLog:
+	PR tree-optimization/110280
+	* gcc.target/aarch64/sve/pr110280.c: New test.
+
+(cherry picked from commit 85d8e0d8d5342ec8b4e6a54e22741c30b33c6f04)
+---
+ gcc/match.pd                                    |  9 ++++++++-
+ gcc/testsuite/gcc.target/aarch64/sve/pr110280.c | 12 ++++++++++++
+ 2 files changed, 20 insertions(+), 1 deletion(-)
+ create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/pr110280.c
+
+diff --git a/gcc/match.pd b/gcc/match.pd
+index 9118244825054..c3bb4fbc0a7a2 100644
+--- a/gcc/match.pd
++++ b/gcc/match.pd
+@@ -8292,7 +8292,14 @@ and,
+ 
+ (simplify
+  (vec_perm vec_same_elem_p@0 @0 @1)
+- @0)
++ (if (types_match (type, TREE_TYPE (@0)))
++  @0
++  (with
++   {
++     tree elem = uniform_vector_p (@0);
++   }
++   (if (elem)
++    { build_vector_from_val (type, elem); }))))
+ 
+ /* Push VEC_PERM earlier if that may help FMA perception (PR101895).  */
+ (simplify
+diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pr110280.c b/gcc/testsuite/gcc.target/aarch64/sve/pr110280.c
+new file mode 100644
+index 0000000000000..d3279f383629f
+--- /dev/null
++++ b/gcc/testsuite/gcc.target/aarch64/sve/pr110280.c
+@@ -0,0 +1,12 @@
++/* { dg-do compile } */
++/* { dg-options "-O3 -fdump-tree-optimized" } */
++
++#include "arm_sve.h"
++
++svuint32_t l()
++{
++  _Alignas(16) const unsigned int lanes[4] = {0, 0, 0, 0};
++  return svld1rq_u32(svptrue_b8(), lanes);
++}
++
++/* { dg-final { scan-tree-dump-not "VEC_PERM_EXPR" "optimized" } } */
diff --git a/pkgs/development/compilers/gcc/patches/13/mangle-NIX_STORE-in-__FILE__.patch b/pkgs/development/compilers/gcc/patches/13/mangle-NIX_STORE-in-__FILE__.patch
index ea0673219eb1..351d6d0f764b 100644
--- a/pkgs/development/compilers/gcc/patches/13/mangle-NIX_STORE-in-__FILE__.patch
+++ b/pkgs/development/compilers/gcc/patches/13/mangle-NIX_STORE-in-__FILE__.patch
@@ -12,9 +12,20 @@ inputs to be retained in runtime closure.
 Typical examples are `nix` -> `nlohmann_json` and `pipewire` ->
 `lttng-ust.dev`.
 
+For this reason we want to remove the occurrences of hashes in the
+expansion of `__FILE__`. `nuke-references` does it by replacing hashes
+by `eeeeee...` but those paths are also used for debug symbols. It is
+handy to be able to invert the transformation to go back to the original
+store path for debuginfod servers. The chosen solution is to make the
+hash uppercase:
+- it does not trigger runtime references (except for all digit hashes,
+  which are unlikely enough)
+- it visually looks like a bogus store path
+- it is easy to find the original store path if required
+
 Ideally we would like to use `-fmacro-prefix-map=` feature of `gcc` as:
 
-  -fmacro-prefix-map=/nix/store/$hash1-nlohmann-json-ver=/nix/store/eeee.eee-nlohmann-json-ver
+  -fmacro-prefix-map=/nix/store/$hash1-nlohmann-json-ver=/nix/store/$HASH1-nlohmann-json-ver
   -fmacro-prefix-map=/nix/...
 
 In practice it quickly exhausts argument length limit due to `gcc`
@@ -25,9 +36,9 @@ is present in the environment.
 
 Tested as:
 
-    $ printf "# 0 \"/nix/store/01234567890123456789012345678901-pppppp-vvvvvvv\" \nconst char * f(void) { return __FILE__; }" | NIX_STORE=/nix/store ./gcc/xgcc -Bgcc -x c - -S -o -
+    $ printf "# 0 \"/nix/store/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-pppppp-vvvvvvv\" \nconst char * f(void) { return __FILE__; }" | NIX_STORE=/nix/store ./gcc/xgcc -Bgcc -x c - -S -o -
     ...
-    .string "/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-pppppp-vvvvvvv"
+    .string "/nix/store/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA-pppppp-vvvvvvv"
     ...
 
 Mangled successfully.
@@ -43,14 +54,13 @@ Mangled successfully.
  /* Perform user-specified mapping of filename prefixes.  Return the
     GC-allocated new name corresponding to FILENAME or FILENAME if no
     remapping was performed.  */
-@@ -102,6 +105,29 @@ remap_filename (file_prefix_map *maps, const char *filename)
+@@ -102,6 +105,30 @@ remap_filename (file_prefix_map *maps, const char *filename)
        break;
    if (!map)
      {
 +      if (maps == macro_prefix_maps)
 +	{
-+	  /* Remap all fo $NIX_STORE/.{32} paths to
-+	   * equivalent $NIX_STORE/e{32}.
++	  /* Remap all fo $NIX_STORE/.{32} paths to uppercase
 +	   *
 +	   * That way we avoid argument parameters explosion
 +	   * and still avoid embedding headers into runtime closure:
@@ -64,7 +74,9 @@ Mangled successfully.
 +	     {
 +		s = (char *) ggc_alloc_atomic (name_len + 1);
 +		memcpy(s, name, name_len + 1);
-+		memset(s + nix_store_len + 1, 'e', 32);
++		for (int i = nix_store_len + 1; i < nix_store_len + 1 + 32; i++) {
++		  s[i] = TOUPPER(s[i]);
++		}
 +		if (realname != filename)
 +		  free (const_cast <char *> (realname));
 +		return s;
@@ -73,7 +85,7 @@ Mangled successfully.
        if (realname != filename)
  	free (const_cast <char *> (realname));
        return filename;
-@@ -124,7 +150,6 @@ remap_filename (file_prefix_map *maps, const char *filename)
+@@ -124,7 +151,6 @@ remap_filename (file_prefix_map *maps, const char *filename)
     ignore it in DW_AT_producer (gen_command_line_string in opts.cc).  */
  
  /* Linked lists of file_prefix_map structures.  */
@@ -81,4 +93,3 @@ Mangled successfully.
  static file_prefix_map *debug_prefix_maps; /* -fdebug-prefix-map  */
  static file_prefix_map *profile_prefix_maps; /* -fprofile-prefix-map  */
  
-
diff --git a/pkgs/development/compilers/gcc/patches/default.nix b/pkgs/development/compilers/gcc/patches/default.nix
index 55636b8ab51c..9cb2f701df57 100644
--- a/pkgs/development/compilers/gcc/patches/default.nix
+++ b/pkgs/development/compilers/gcc/patches/default.nix
@@ -74,6 +74,7 @@ in
 ++ optional langFortran (if atLeast12 then ./gcc-12-gfortran-driving.patch else ./gfortran-driving.patch)
 ++ optional atLeast7 ./ppc-musl.patch
 ++ optional is12 ./12/lambda-ICE-PR109241.patch # backport ICE fix on ccache code
+++ optional is13 ./13/ICE-PR110280.patch # backport ICE fix on const_unop
 ++ optional (atLeast9 && langD) ./libphobos.patch
 
 
diff --git a/pkgs/development/compilers/ghc/8.10.2-binary.nix b/pkgs/development/compilers/ghc/8.10.2-binary.nix
deleted file mode 100644
index c8d645cfa361..000000000000
--- a/pkgs/development/compilers/ghc/8.10.2-binary.nix
+++ /dev/null
@@ -1,457 +0,0 @@
-{ lib, stdenv
-, fetchurl, perl, gcc
-, ncurses5
-, ncurses6, gmp, libiconv, numactl
-, llvmPackages
-, coreutils
-, targetPackages
-
-  # minimal = true; will remove files that aren't strictly necessary for
-  # regular builds and GHC bootstrapping.
-  # This is "useful" for staying within hydra's output limits for at least the
-  # aarch64-linux architecture.
-, minimal ? false
-}:
-
-# Prebuilt only does native
-assert stdenv.targetPlatform == stdenv.hostPlatform;
-
-let
-  downloadsUrl = "https://downloads.haskell.org/ghc";
-
-  version = "8.10.2";
-
-  # Information about available bindists that we use in the build.
-  #
-  # # Bindist library checking
-  #
-  # The field `archSpecificLibraries` also provides a way for us get notified
-  # early when the upstream bindist changes its dependencies (e.g. because a
-  # newer Debian version is used that uses a new `ncurses` version).
-  #
-  # Usage:
-  #
-  # * You can find the `fileToCheckFor` of libraries by running `readelf -d`
-  #   on the compiler binary (`exePathForLibraryCheck`).
-  # * To skip library checking for an architecture,
-  #   set `exePathForLibraryCheck = null`.
-  # * To skip file checking for a specific arch specfic library,
-  #   set `fileToCheckFor = null`.
-  ghcBinDists = {
-    # Binary distributions for the default libc (e.g. glibc, or libSystem on Darwin)
-    # nixpkgs uses for the respective system.
-    defaultLibc = {
-      i686-linux = {
-        variantSuffix = "";
-        src = {
-          url = "${downloadsUrl}/${version}/ghc-${version}-i386-deb9-linux.tar.xz";
-          sha256 = "0bvwisl4w0z5z8z0da10m9sv0mhm9na2qm43qxr8zl23mn32mblx";
-        };
-        exePathForLibraryCheck = "ghc/stage2/build/tmp/ghc-stage2";
-        archSpecificLibraries = [
-          { nixPackage = gmp; fileToCheckFor = null; }
-          # The i686-linux bindist provided by GHC HQ is currently built on Debian 9,
-          # which link it against `libtinfo.so.5` (ncurses 5).
-          # Other bindists are linked `libtinfo.so.6` (ncurses 6).
-          { nixPackage = ncurses5; fileToCheckFor = "libtinfo.so.5"; }
-        ];
-      };
-      x86_64-linux = {
-        variantSuffix = "";
-        src = {
-          url = "${downloadsUrl}/${version}/ghc-${version}-x86_64-deb10-linux.tar.xz";
-          sha256 = "0chnzy9j23b2wa8clx5arwz8wnjfxyjmz9qkj548z14cqf13slcl";
-        };
-        exePathForLibraryCheck = "ghc/stage2/build/tmp/ghc-stage2";
-        archSpecificLibraries = [
-          { nixPackage = gmp; fileToCheckFor = null; }
-          { nixPackage = ncurses6; fileToCheckFor = "libtinfo.so.6"; }
-        ];
-      };
-      armv7l-linux = {
-        variantSuffix = "";
-        src = {
-          url = "${downloadsUrl}/${version}/ghc-${version}-armv7-deb10-linux.tar.xz";
-          sha256 = "1j41cq5d3rmlgz7hzw8f908fs79gc5mn3q5wz277lk8zdf19g75v";
-        };
-        exePathForLibraryCheck = "ghc/stage2/build/tmp/ghc-stage2";
-        archSpecificLibraries = [
-          { nixPackage = gmp; fileToCheckFor = null; }
-          { nixPackage = ncurses6; fileToCheckFor = "libtinfo.so.6"; }
-        ];
-      };
-      aarch64-linux = {
-        variantSuffix = "";
-        src = {
-          url = "${downloadsUrl}/${version}/ghc-${version}-aarch64-deb10-linux.tar.xz";
-          sha256 = "14smwl3741ixnbgi0l51a7kh7xjkiannfqx15b72svky0y4l3wjw";
-        };
-        exePathForLibraryCheck = "ghc/stage2/build/tmp/ghc-stage2";
-        archSpecificLibraries = [
-          { nixPackage = gmp; fileToCheckFor = null; }
-          { nixPackage = ncurses6; fileToCheckFor = "libtinfo.so.6"; }
-          { nixPackage = numactl; fileToCheckFor = null; }
-        ];
-      };
-      x86_64-darwin = {
-        variantSuffix = "";
-        src = {
-          url = "${downloadsUrl}/${version}/ghc-${version}-x86_64-apple-darwin.tar.xz";
-          sha256 = "1hngyq14l4f950hzhh2d204ca2gfc98pc9xdasxihzqd1jq75dzd";
-        };
-        exePathForLibraryCheck = null; # we don't have a library check for darwin yet
-        archSpecificLibraries = [
-          { nixPackage = gmp; fileToCheckFor = null; }
-          { nixPackage = ncurses6; fileToCheckFor = null; }
-          { nixPackage = libiconv; fileToCheckFor = null; }
-        ];
-      };
-    };
-    # Binary distributions for the musl libc for the respective system.
-    musl = {
-      x86_64-linux = {
-        variantSuffix = "-musl";
-        src = {
-          url = "${downloadsUrl}/${version}/ghc-${version}-x86_64-alpine3.10-linux-integer-simple.tar.xz";
-          sha256 = "0xpcbyaxqyhbl6f0i3s4rp2jm67nqpkfh2qlbj3i2fiaix89ml0l";
-        };
-        exePathForLibraryCheck = "bin/ghc";
-        archSpecificLibraries = [
-          { nixPackage = gmp; fileToCheckFor = null; }
-          # In contrast to glibc builds, the musl-bindist uses `libncursesw.so.*`
-          # instead of `libtinfo.so.*.`
-          { nixPackage = ncurses6; fileToCheckFor = "libncursesw.so.6"; }
-        ];
-        isHadrian = true;
-      };
-    };
-  };
-
-  distSetName = if stdenv.hostPlatform.isMusl then "musl" else "defaultLibc";
-
-  binDistUsed = ghcBinDists.${distSetName}.${stdenv.hostPlatform.system}
-    or (throw "cannot bootstrap GHC on this platform ('${stdenv.hostPlatform.system}' with libc '${distSetName}')");
-
-  useLLVM = !stdenv.targetPlatform.isx86;
-
-  libPath =
-    lib.makeLibraryPath (
-      # Add arch-specific libraries.
-      map ({ nixPackage, ... }: nixPackage) binDistUsed.archSpecificLibraries
-    );
-
-  libEnvVar = lib.optionalString stdenv.hostPlatform.isDarwin "DY"
-    + "LD_LIBRARY_PATH";
-
-  runtimeDeps = [
-    targetPackages.stdenv.cc
-    targetPackages.stdenv.cc.bintools
-    coreutils # for cat
-  ]
-  ++ lib.optionals useLLVM [
-    (lib.getBin llvmPackages.llvm)
-  ]
-  # On darwin, we need unwrapped bintools as well (for otool)
-  ++ lib.optionals (stdenv.targetPlatform.linker == "cctools") [
-    targetPackages.stdenv.cc.bintools.bintools
-  ];
-
-in
-
-stdenv.mkDerivation rec {
-  inherit version;
-  pname = "ghc-binary${binDistUsed.variantSuffix}";
-
-  src = fetchurl binDistUsed.src;
-
-  # Note that for GHC 8.10 versions <= 8.10.5, the GHC HQ musl bindist
-  # has a `gmp` dependency:
-  # https://gitlab.haskell.org/ghc/ghc/-/commit/8306501020cd66f683ad9c215fa8e16c2d62357d
-  # Related nixpkgs issues:
-  # * https://github.com/NixOS/nixpkgs/pull/130441#issuecomment-922452843
-
-  nativeBuildInputs = [ perl ];
-  propagatedBuildInputs =
-    # Because musl bindists currently provide no way to tell where
-    # libgmp is (see not [musl bindists have no .buildinfo]), we need
-    # to propagate `gmp`, otherwise programs built by this ghc will
-    # fail linking with `cannot find -lgmp` errors.
-    # Concrete cases are listed in:
-    #     https://github.com/NixOS/nixpkgs/pull/130441#issuecomment-922459988
-    #
-    # Also, as of writing, the release pages of musl bindists claim
-    # that they use `integer-simple` and do not require `gmp`; however
-    # that is incorrect, so `gmp` is required until a release has been
-    # made that includes https://gitlab.haskell.org/ghc/ghc/-/issues/20059.
-    # (Note that for packaging the `-binary` compiler, nixpkgs does not care
-    # about whether or not `gmp` is used; this comment is just here to explain
-    # why the `gmp` dependency exists despite what the release page says.)
-    #
-    # For GHC >= 8.10.6, `gmp` was switched out for `integer-simple`
-    # (https://gitlab.haskell.org/ghc/ghc/-/commit/8306501020cd66f683ad9c215fa8e16c2d62357d),
-    # fixing the above-mentioned release issue,
-    # and for GHC >= 9.* it is not clear as of writing whether that switch
-    # will be made there too.
-    lib.optionals stdenv.hostPlatform.isMusl [ gmp ]; # musl bindist needs this
-
-  # Set LD_LIBRARY_PATH or equivalent so that the programs running as part
-  # of the bindist installer can find the libraries they expect.
-  # Cannot patchelf beforehand due to relative RPATHs that anticipate
-  # the final install location.
-  ${libEnvVar} = libPath;
-
-  postUnpack =
-    # Verify our assumptions of which `libtinfo.so` (ncurses) version is used,
-    # so that we know when ghc bindists upgrade that and we need to update the
-    # version used in `libPath`.
-    lib.optionalString
-      (binDistUsed.exePathForLibraryCheck != null)
-      # Note the `*` glob because some GHCs have a suffix when unpacked, e.g.
-      # the musl bindist has dir `ghc-VERSION-x86_64-unknown-linux/`.
-      # As a result, don't shell-quote this glob when splicing the string.
-      (let buildExeGlob = ''ghc-${version}*/"${binDistUsed.exePathForLibraryCheck}"''; in
-        lib.concatStringsSep "\n" [
-          (''
-            shopt -u nullglob
-            echo "Checking that ghc binary exists in bindist at ${buildExeGlob}"
-            if ! test -e ${buildExeGlob}; then
-              echo >&2 "GHC binary ${binDistUsed.exePathForLibraryCheck} could not be found in the bindist build directory (at ${buildExeGlob}) for arch ${stdenv.hostPlatform.system}, please check that ghcBinDists correctly reflect the bindist dependencies!"; exit 1;
-            fi
-          '')
-          (lib.concatMapStringsSep
-            "\n"
-            ({ fileToCheckFor, nixPackage }:
-              lib.optionalString (fileToCheckFor != null) ''
-                echo "Checking bindist for ${fileToCheckFor} to ensure that is still used"
-                if ! readelf -d ${buildExeGlob} | grep "${fileToCheckFor}"; then
-                  echo >&2 "File ${fileToCheckFor} could not be found in ${binDistUsed.exePathForLibraryCheck} for arch ${stdenv.hostPlatform.system}, please check that ghcBinDists correctly reflect the bindist dependencies!"; exit 1;
-                fi
-
-                echo "Checking that the nix package ${nixPackage} contains ${fileToCheckFor}"
-                if ! test -e "${lib.getLib nixPackage}/lib/${fileToCheckFor}"; then
-                  echo >&2 "Nix package ${nixPackage} did not contain ${fileToCheckFor} for arch ${stdenv.hostPlatform.system}, please check that ghcBinDists correctly reflect the bindist dependencies!"; exit 1;
-                fi
-              ''
-            )
-            binDistUsed.archSpecificLibraries
-          )
-        ])
-    # GHC has dtrace probes, which causes ld to try to open /usr/lib/libdtrace.dylib
-    # during linking
-    + lib.optionalString stdenv.isDarwin ''
-      export NIX_LDFLAGS+=" -no_dtrace_dof"
-      # not enough room in the object files for the full path to libiconv :(
-      for exe in $(find . -type f -executable); do
-        isScript $exe && continue
-        ln -fs ${libiconv}/lib/libiconv.dylib $(dirname $exe)/libiconv.dylib
-        install_name_tool -change /usr/lib/libiconv.2.dylib @executable_path/libiconv.dylib -change /usr/local/lib/gcc/6/libgcc_s.1.dylib ${gcc.cc.lib}/lib/libgcc_s.1.dylib $exe
-      done
-    '' +
-
-    # Some scripts used during the build need to have their shebangs patched
-    ''
-      patchShebangs ghc-${version}/utils/
-      patchShebangs ghc-${version}/configure
-      test -d ghc-${version}/inplace/bin && \
-        patchShebangs ghc-${version}/inplace/bin
-    '' +
-    # We have to patch the GMP paths for the integer-gmp package.
-    # Note [musl bindists have no .buildinfo]
-    # Note that musl bindists do not contain them; unclear if that's intended;
-    # see: https://gitlab.haskell.org/ghc/ghc/-/issues/20073#note_363231
-    ''
-      find . -name integer-gmp.buildinfo \
-          -exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${gmp.out}/lib@" {} \;
-    '' + lib.optionalString stdenv.isDarwin ''
-      find . -name base.buildinfo \
-          -exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${libiconv}/lib@" {} \;
-    '' +
-    # aarch64 does HAVE_NUMA so -lnuma requires it in library-dirs in rts/package.conf.in
-    # FFI_LIB_DIR is a good indication of places it must be needed.
-    lib.optionalString stdenv.hostPlatform.isAarch64 ''
-      find . -name package.conf.in \
-          -exec sed -i "s@FFI_LIB_DIR@FFI_LIB_DIR ${numactl.out}/lib@g" {} \;
-    '' +
-    # Rename needed libraries and binaries, fix interpreter
-    lib.optionalString stdenv.isLinux ''
-      find . -type f -executable -exec patchelf \
-          --interpreter ${stdenv.cc.bintools.dynamicLinker} {} \;
-    '' +
-    # The hadrian install Makefile uses 'xxx' as a temporary placeholder in path
-    # substitution. Which can break the build if the store path / prefix happens
-    # to contain this string. This will be fixed with 9.4 bindists.
-    # https://gitlab.haskell.org/ghc/ghc/-/issues/21402
-    ''
-      # Detect hadrian Makefile by checking for the target that has the problem
-      if grep '^update_package_db' ghc-${version}*/Makefile > /dev/null; then
-        echo Hadrian bindist, applying workaround for xxx path substitution.
-        # based on https://gitlab.haskell.org/ghc/ghc/-/commit/dd5fecb0e2990b192d92f4dfd7519ecb33164fad.patch
-        substituteInPlace ghc-${version}*/Makefile --replace 'xxx' '\0xxx\0'
-      else
-        echo Not a hadrian bindist, not applying xxx path workaround.
-      fi
-    '';
-
-  # fix for `configure: error: Your linker is affected by binutils #16177`
-  preConfigure = lib.optionalString
-    stdenv.targetPlatform.isAarch32
-    "LD=ld.gold";
-
-  configurePlatforms = [ ];
-  configureFlags = [
-    "--with-gmp-includes=${lib.getDev gmp}/include"
-    # Note `--with-gmp-libraries` does nothing for GHC bindists:
-    # https://gitlab.haskell.org/ghc/ghc/-/merge_requests/6124
-  ] ++ lib.optional stdenv.isDarwin "--with-gcc=${./gcc-clang-wrapper.sh}"
-    # From: https://github.com/NixOS/nixpkgs/pull/43369/commits
-    ++ lib.optional stdenv.hostPlatform.isMusl "--disable-ld-override";
-
-  # No building is necessary, but calling make without flags ironically
-  # calls install-strip ...
-  dontBuild = true;
-
-  # Patch scripts to include runtime dependencies in $PATH.
-  postInstall = ''
-    for i in "$out/bin/"*; do
-      test ! -h "$i" || continue
-      isScript "$i" || continue
-      sed -i -e '2i export PATH="${lib.makeBinPath runtimeDeps}:$PATH"' "$i"
-    done
-  '';
-
-  # Apparently necessary for the ghc Alpine (musl) bindist:
-  # When we strip, and then run the
-  #     patchelf --set-rpath "${libPath}:$(patchelf --print-rpath $p)" $p
-  # below, running ghc (e.g. during `installCheckPhase)` gives some apparently
-  # corrupted rpath or whatever makes the loader work on nonsensical strings:
-  #     running install tests
-  #     Error relocating /nix/store/...-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/ghc: : symbol not found
-  #     Error relocating /nix/store/...-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/ghc: ir6zf6c9f86pfx8sr30n2vjy-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/../lib/x86_64-linux-ghc-8.10.5/libHSexceptions-0.10.4-ghc8.10.5.so: symbol not found
-  #     Error relocating /nix/store/...-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/ghc: y/lib/ghc-8.10.5/bin/../lib/x86_64-linux-ghc-8.10.5/libHStemplate-haskell-2.16.0.0-ghc8.10.5.so: symbol not found
-  #     Error relocating /nix/store/...-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/ghc: 8.10.5/libHStemplate-haskell-2.16.0.0-ghc8.10.5.so: symbol not found
-  #     Error relocating /nix/store/...-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/ghc: �: symbol not found
-  #     Error relocating /nix/store/...-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/ghc: �?: symbol not found
-  #     Error relocating /nix/store/...-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/ghc: 64-linux-ghc-8.10.5/libHSexceptions-0.10.4-ghc8.10.5.so: symbol not found
-  # This is extremely bogus and should be investigated.
-  dontStrip = if stdenv.hostPlatform.isMusl then true else false; # `if` for explicitness
-
-  # On Linux, use patchelf to modify the executables so that they can
-  # find editline/gmp.
-  postFixup = lib.optionalString stdenv.isLinux
-    (if stdenv.hostPlatform.isAarch64 then
-      # Keep rpath as small as possible on aarch64 for patchelf#244.  All Elfs
-      # are 2 directories deep from $out/lib, so pooling symlinks there makes
-      # a short rpath.
-      ''
-      (cd $out/lib; ln -s ${ncurses6.out}/lib/libtinfo.so.6)
-      (cd $out/lib; ln -s ${gmp.out}/lib/libgmp.so.10)
-      (cd $out/lib; ln -s ${numactl.out}/lib/libnuma.so.1)
-      for p in $(find "$out/lib" -type f -name "*\.so*"); do
-        (cd $out/lib; ln -s $p)
-      done
-
-      for p in $(find "$out/lib" -type f -executable); do
-        if isELF "$p"; then
-          echo "Patchelfing $p"
-          patchelf --set-rpath "\$ORIGIN:\$ORIGIN/../.." $p
-        fi
-      done
-      ''
-    else
-      ''
-      for p in $(find "$out" -type f -executable); do
-        if isELF "$p"; then
-          echo "Patchelfing $p"
-          patchelf --set-rpath "${libPath}:$(patchelf --print-rpath $p)" $p
-        fi
-      done
-    '') + lib.optionalString stdenv.isDarwin ''
-    # not enough room in the object files for the full path to libiconv :(
-    for exe in $(find "$out" -type f -executable); do
-      isScript $exe && continue
-      ln -fs ${libiconv}/lib/libiconv.dylib $(dirname $exe)/libiconv.dylib
-      install_name_tool -change /usr/lib/libiconv.2.dylib @executable_path/libiconv.dylib -change /usr/local/lib/gcc/6/libgcc_s.1.dylib ${gcc.cc.lib}/lib/libgcc_s.1.dylib $exe
-    done
-
-    for file in $(find "$out" -name setup-config); do
-      substituteInPlace $file --replace /usr/bin/ranlib "$(type -P ranlib)"
-    done
-  '' +
-  lib.optionalString minimal ''
-    # Remove profiling files
-    find $out -type f -name '*.p_o' -delete
-    find $out -type f -name '*.p_hi' -delete
-    find $out -type f -name '*_p.a' -delete
-    # `-f` because e.g. musl bindist does not have this file.
-    rm -f $out/lib/ghc-*/bin/ghc-iserv-prof
-    # Hydra will redistribute this derivation, so we have to keep the docs for
-    # legal reasons (retaining the legal notices etc)
-    # As a last resort we could unpack the docs separately and symlink them in.
-    # They're in $out/share/{doc,man}.
-  '';
-
-  # In nixpkgs, musl based builds currently enable `pie` hardening by default
-  # (see `defaultHardeningFlags` in `make-derivation.nix`).
-  # But GHC cannot currently produce outputs that are ready for `-pie` linking.
-  # Thus, disable `pie` hardening, otherwise `recompile with -fPIE` errors appear.
-  # See:
-  # * https://github.com/NixOS/nixpkgs/issues/129247
-  # * https://gitlab.haskell.org/ghc/ghc/-/issues/19580
-  hardeningDisable = lib.optional stdenv.targetPlatform.isMusl "pie";
-
-  doInstallCheck = true;
-  installCheckPhase = ''
-    # Sanity check, can ghc create executables?
-    cd $TMP
-    mkdir test-ghc; cd test-ghc
-    cat > main.hs << EOF
-      {-# LANGUAGE TemplateHaskell #-}
-      module Main where
-      main = putStrLn \$([|"yes"|])
-    EOF
-    # can't use env -i here because otherwise we don't find -lgmp on musl
-    env ${libEnvVar}= PATH= \
-      $out/bin/ghc --make main.hs || exit 1
-    echo compilation ok
-    [ $(./main) == "yes" ]
-  '';
-
-  passthru = {
-    targetPrefix = "";
-    enableShared = true;
-
-    inherit llvmPackages;
-
-    # Our Cabal compiler name
-    haskellCompilerName = "ghc-${version}";
-  }
-  # We duplicate binDistUsed here since we have a sensible default even if no bindist is avaible,
-  # this makes sure that getting the `meta` attribute doesn't throw even on unsupported platforms.
-  // lib.optionalAttrs (ghcBinDists.${distSetName}.${stdenv.hostPlatform.system}.isHadrian or false) {
-    # Normal GHC derivations expose the hadrian derivation used to build them
-    # here. In the case of bindists we just make sure that the attribute exists,
-    # as it is used for checking if a GHC derivation has been built with hadrian.
-    # The isHadrian mechanism will become obsolete with GHCs that use hadrian
-    # exclusively, i.e. 9.6 (and 9.4?).
-    hadrian = null;
-  };
-
-  meta = rec {
-    homepage = "http://haskell.org/ghc";
-    description = "The Glasgow Haskell Compiler";
-    license = lib.licenses.bsd3;
-    # HACK: since we can't encode the libc / abi in platforms, we need
-    # to make the platform list dependent on the evaluation platform
-    # in order to avoid eval errors with musl which supports less
-    # platforms than the default libcs (i. e. glibc / libSystem).
-    # This is done for the benefit of Hydra, so `packagePlatforms`
-    # won't return any platforms that would cause an evaluation
-    # failure for `pkgsMusl.haskell.compiler.ghc8102Binary`, as
-    # long as the evaluator runs on a platform that supports
-    # `pkgsMusl`.
-    platforms = builtins.attrNames ghcBinDists.${distSetName};
-    maintainers = with lib.maintainers; [
-      guibou
-    ] ++ lib.teams.haskell.members;
-  };
-}
diff --git a/pkgs/development/compilers/ghc/8.10.7-binary.nix b/pkgs/development/compilers/ghc/8.10.7-binary.nix
index 3376671d65b4..16642e56bfd9 100644
--- a/pkgs/development/compilers/ghc/8.10.7-binary.nix
+++ b/pkgs/development/compilers/ghc/8.10.7-binary.nix
@@ -442,7 +442,7 @@ stdenv.mkDerivation rec {
     # platforms than the default libcs (i. e. glibc / libSystem).
     # This is done for the benefit of Hydra, so `packagePlatforms`
     # won't return any platforms that would cause an evaluation
-    # failure for `pkgsMusl.haskell.compiler.ghc8102Binary`, as
+    # failure for `pkgsMusl.haskell.compiler.ghc8107Binary`, as
     # long as the evaluator runs on a platform that supports
     # `pkgsMusl`.
     platforms = builtins.attrNames ghcBinDists.${distSetName};
diff --git a/pkgs/development/compilers/ghc/8.6.5-binary.nix b/pkgs/development/compilers/ghc/8.6.5-binary.nix
index 5f9d6c824d42..d66f47b661a5 100644
--- a/pkgs/development/compilers/ghc/8.6.5-binary.nix
+++ b/pkgs/development/compilers/ghc/8.6.5-binary.nix
@@ -222,7 +222,7 @@ stdenv.mkDerivation rec {
       "x86_64-darwin"
       "powerpc64le-linux"
     ];
-    # build segfaults, use ghc8102Binary which has proper musl support instead
+    # build segfaults, use ghc8107Binary which has proper musl support instead
     broken = stdenv.hostPlatform.isMusl;
     maintainers = with lib.maintainers; [
       guibou
diff --git a/pkgs/development/compilers/ghc/9.6.4.nix b/pkgs/development/compilers/ghc/9.6.4.nix
new file mode 100644
index 000000000000..40a2261180e2
--- /dev/null
+++ b/pkgs/development/compilers/ghc/9.6.4.nix
@@ -0,0 +1,4 @@
+import ./common-hadrian.nix {
+  version = "9.6.4";
+  sha256 = "10bf25b8b07174fdd9868b5c0c56c17c0ef1edcb6247b4b864be933651bfd4c0";
+}
diff --git a/pkgs/development/compilers/ghc/ghc-8.8.4-sphinx-6.0.patch b/pkgs/development/compilers/ghc/ghc-8.8.4-sphinx-6.0.patch
deleted file mode 100644
index c20c62f9cf6f..000000000000
--- a/pkgs/development/compilers/ghc/ghc-8.8.4-sphinx-6.0.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/docs/users_guide/ghc_config.py.in b/docs/users_guide/ghc_config.py.in
-index 2670ad3cf1..d2f9d85c31 100644
---- a/docs/users_guide/ghc_config.py.in
-+++ b/docs/users_guide/ghc_config.py.in
-@@ -1,6 +1,6 @@
- extlinks = {
--    'ghc-ticket': ('https://gitlab.haskell.org/ghc/ghc/issues/%s', 'Issue #'),
--    'ghc-wiki': ('https://gitlab.haskell.org/ghc/ghc/wikis/%s', 'GHC Wiki'),
-+    'ghc-ticket': ('https://gitlab.haskell.org/ghc/ghc/issues/%s', 'Issue %s'),
-+    'ghc-wiki': ('https://gitlab.haskell.org/ghc/ghc/wikis/%s', 'GHC Wiki %s'),
- }
- 
- libs_base_uri = '../libraries'
diff --git a/pkgs/development/compilers/ghc/rename-numa-api-call.patch b/pkgs/development/compilers/ghc/rename-numa-api-call.patch
deleted file mode 100644
index 747d7a81a11e..000000000000
--- a/pkgs/development/compilers/ghc/rename-numa-api-call.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-diff --git a/rts/win32/OSMem.c b/rts/win32/OSMem.c
---- a/rts/win32/OSMem.c
-+++ b/rts/win32/OSMem.c
-@@ -41,7 +41,7 @@ static block_rec* free_blocks = NULL;
- typedef LPVOID(WINAPI *VirtualAllocExNumaProc)(HANDLE, LPVOID, SIZE_T, DWORD, DWORD, DWORD);
-
- /* Cache NUMA API call. */
--VirtualAllocExNumaProc VirtualAllocExNuma;
-+VirtualAllocExNumaProc _VirtualAllocExNuma;
-
- void
- osMemInit(void)
-@@ -52,8 +52,8 @@ osMemInit(void)
-     /* Resolve and cache VirtualAllocExNuma. */
-     if (osNumaAvailable() && RtsFlags.GcFlags.numa)
-     {
--        VirtualAllocExNuma = (VirtualAllocExNumaProc)GetProcAddress(GetModuleHandleW(L"kernel32"), "VirtualAllocExNuma");
--        if (!VirtualAllocExNuma)
-+        _VirtualAllocExNuma = (VirtualAllocExNumaProc)(void*)GetProcAddress(GetModuleHandleW(L"kernel32"), "VirtualAllocExNuma");
-+        if (!_VirtualAllocExNuma)
-         {
-             sysErrorBelch(
-                 "osBindMBlocksToNode: VirtualAllocExNuma does not exist. How did you get this far?");
-@@ -569,7 +569,7 @@ void osBindMBlocksToNode(
-                On windows also -xb is broken, it does nothing so that can't
-                be used to tweak it (see #12577). So for now, just let the OS decide.
-             */
--            temp = VirtualAllocExNuma(
-+            temp = _VirtualAllocExNuma(
-                           GetCurrentProcess(),
-                           NULL, // addr? See base memory
-                           size,
diff --git a/pkgs/development/compilers/ghc/sphinx-4-configuration.patch b/pkgs/development/compilers/ghc/sphinx-4-configuration.patch
deleted file mode 100644
index 884a0bb39a5f..000000000000
--- a/pkgs/development/compilers/ghc/sphinx-4-configuration.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- ghc-8.10.4/docs/users_guide/conf.py.orig	2021-06-21 13:46:34.196383559 +0200
-+++ ghc-8.10.4/docs/users_guide/conf.py	2021-06-21 13:46:54.839349941 +0200
-@@ -100,7 +100,7 @@
- latex_elements = {
-     'inputenc': '',
-     'utf8extra': '',
--    'preamble': '''
-+    'preamble': r'''
- \usepackage{fontspec}
- \usepackage{makeidx}
- \setsansfont{DejaVu Sans}
diff --git a/pkgs/development/compilers/glslang/default.nix b/pkgs/development/compilers/glslang/default.nix
index ff55201ebd03..5387eb15b713 100644
--- a/pkgs/development/compilers/glslang/default.nix
+++ b/pkgs/development/compilers/glslang/default.nix
@@ -9,13 +9,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "glslang";
-  version = "13.1.1";
+  version = "14.0.0";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "glslang";
     rev = version;
-    hash = "sha256-fuzNsVYdnThMzd4tLN/sTbCBXg6qXKLDJRziOKyOBGg=";
+    hash = "sha256-7kIIU45pe+IF7lGltpIKSvQBmcXR+TWFvmx7ztMNrpc=";
   };
 
   # These get set at all-packages, keep onto them for child drvs
diff --git a/pkgs/development/compilers/go/1.21.nix b/pkgs/development/compilers/go/1.21.nix
index 5dec10e3e477..06391b1740a6 100644
--- a/pkgs/development/compilers/go/1.21.nix
+++ b/pkgs/development/compilers/go/1.21.nix
@@ -46,11 +46,11 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "go";
-  version = "1.21.5";
+  version = "1.21.6";
 
   src = fetchurl {
     url = "https://go.dev/dl/go${finalAttrs.version}.src.tar.gz";
-    hash = "sha256-KFy730tubmLtWPNw8/bYwwgl1uVsWFPGbTwjvNsJ2xk=";
+    hash = "sha256-Ekkmpi5F942qu67bnAEdl2MxhqM8I4/8HiUyDAIEYkg=";
   };
 
   strictDeps = true;
diff --git a/pkgs/development/compilers/go/1.22.nix b/pkgs/development/compilers/go/1.22.nix
new file mode 100644
index 000000000000..ac02062a41f5
--- /dev/null
+++ b/pkgs/development/compilers/go/1.22.nix
@@ -0,0 +1,189 @@
+{ lib
+, stdenv
+, fetchurl
+, tzdata
+, substituteAll
+, iana-etc
+, Security
+, Foundation
+, xcbuild
+, mailcap
+, buildPackages
+, pkgsBuildTarget
+, threadsCross
+, testers
+, skopeo
+, buildGo122Module
+}:
+
+let
+  useGccGoBootstrap = stdenv.buildPlatform.isMusl;
+  goBootstrap = if useGccGoBootstrap then buildPackages.gccgo12 else buildPackages.callPackage ./bootstrap121.nix { };
+
+  skopeoTest = skopeo.override { buildGoModule = buildGo122Module; };
+
+  goarch = platform: {
+    "aarch64" = "arm64";
+    "arm" = "arm";
+    "armv5tel" = "arm";
+    "armv6l" = "arm";
+    "armv7l" = "arm";
+    "i686" = "386";
+    "mips" = "mips";
+    "mips64el" = "mips64le";
+    "mipsel" = "mipsle";
+    "powerpc64le" = "ppc64le";
+    "riscv64" = "riscv64";
+    "s390x" = "s390x";
+    "x86_64" = "amd64";
+  }.${platform.parsed.cpu.name} or (throw "Unsupported system: ${platform.parsed.cpu.name}");
+
+  # We need a target compiler which is still runnable at build time,
+  # to handle the cross-building case where build != host == target
+  targetCC = pkgsBuildTarget.targetPackages.stdenv.cc;
+
+  isCross = stdenv.buildPlatform != stdenv.targetPlatform;
+in
+stdenv.mkDerivation (finalAttrs: {
+  pname = "go";
+  version = "1.22rc2";
+
+  src = fetchurl {
+    url = "https://go.dev/dl/go${finalAttrs.version}.src.tar.gz";
+    hash = "sha256-0ZOofbgiOCHh7oke3+42yOrJugz4PkLt5keVp96Kfyc=";
+  };
+
+  strictDeps = true;
+  buildInputs = [ ]
+    ++ lib.optionals stdenv.isLinux [ stdenv.cc.libc.out ]
+    ++ lib.optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ];
+
+  depsTargetTargetPropagated = lib.optionals stdenv.targetPlatform.isDarwin [ Foundation Security xcbuild ];
+
+  depsBuildTarget = lib.optional isCross targetCC;
+
+  depsTargetTarget = lib.optional stdenv.targetPlatform.isWindows threadsCross.package;
+
+  postPatch = ''
+    patchShebangs .
+  '';
+
+  patches = [
+    (substituteAll {
+      src = ./iana-etc-1.17.patch;
+      iana = iana-etc;
+    })
+    # Patch the mimetype database location which is missing on NixOS.
+    # but also allow static binaries built with NixOS to run outside nix
+    (substituteAll {
+      src = ./mailcap-1.17.patch;
+      inherit mailcap;
+    })
+    # prepend the nix path to the zoneinfo files but also leave the original value for static binaries
+    # that run outside a nix server
+    (substituteAll {
+      src = ./tzdata-1.19.patch;
+      inherit tzdata;
+    })
+    ./remove-tools-1.11.patch
+    ./go_no_vendor_checks-1.22.patch
+  ];
+
+  GOOS = 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
+  # the install phase.
+  GOHOSTOS = stdenv.buildPlatform.parsed.kernel.name;
+  GOHOSTARCH = goarch stdenv.buildPlatform;
+
+  # {CC,CXX}_FOR_TARGET must be only set for cross compilation case as go expect those
+  # to be different from CC/CXX
+  CC_FOR_TARGET =
+    if isCross then
+      "${targetCC}/bin/${targetCC.targetPrefix}cc"
+    else
+      null;
+  CXX_FOR_TARGET =
+    if isCross then
+      "${targetCC}/bin/${targetCC.targetPrefix}c++"
+    else
+      null;
+
+  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;
+
+  GOROOT_BOOTSTRAP = if useGccGoBootstrap then goBootstrap else "${goBootstrap}/share/go";
+
+  buildPhase = ''
+    runHook preBuild
+    export GOCACHE=$TMPDIR/go-cache
+    # this is compiled into the binary
+    export GOROOT_FINAL=$out/share/go
+
+    export PATH=$(pwd)/bin:$PATH
+
+    ${lib.optionalString isCross ''
+    # Independent from host/target, CC should produce code for the building system.
+    # We only set it when cross-compiling.
+    export CC=${buildPackages.stdenv.cc}/bin/cc
+    ''}
+    ulimit -a
+
+    pushd src
+    ./make.bash
+    popd
+    runHook postBuild
+  '';
+
+  preInstall = ''
+    # Contains the wrong perl shebang when cross compiling,
+    # since it is not used for anything we can deleted as well.
+    rm src/regexp/syntax/make_perl_groups.pl
+  '' + (if (stdenv.buildPlatform.system != stdenv.hostPlatform.system) then ''
+    mv bin/*_*/* bin
+    rmdir bin/*_*
+    ${lib.optionalString (!(finalAttrs.GOHOSTARCH == finalAttrs.GOARCH && finalAttrs.GOOS == finalAttrs.GOHOSTOS)) ''
+      rm -rf pkg/${finalAttrs.GOHOSTOS}_${finalAttrs.GOHOSTARCH} pkg/tool/${finalAttrs.GOHOSTOS}_${finalAttrs.GOHOSTARCH}
+    ''}
+  '' else lib.optionalString (stdenv.hostPlatform.system != stdenv.targetPlatform.system) ''
+    rm -rf bin/*_*
+    ${lib.optionalString (!(finalAttrs.GOHOSTARCH == finalAttrs.GOARCH && finalAttrs.GOOS == finalAttrs.GOHOSTOS)) ''
+      rm -rf pkg/${finalAttrs.GOOS}_${finalAttrs.GOARCH} pkg/tool/${finalAttrs.GOOS}_${finalAttrs.GOARCH}
+    ''}
+  '');
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $GOROOT_FINAL
+    cp -a bin pkg src lib misc api doc go.env $GOROOT_FINAL
+    mkdir -p $out/bin
+    ln -s $GOROOT_FINAL/bin/* $out/bin
+    runHook postInstall
+  '';
+
+  disallowedReferences = [ goBootstrap ];
+
+  passthru = {
+    inherit goBootstrap skopeoTest;
+    tests = {
+      skopeo = testers.testVersion { package = skopeoTest; };
+      version = testers.testVersion {
+        package = finalAttrs.finalPackage;
+        command = "go version";
+        version = "go${finalAttrs.version}";
+      };
+    };
+  };
+
+  meta = with lib; {
+    changelog = "https://go.dev/doc/devel/release#go${lib.versions.majorMinor finalAttrs.version}";
+    description = "The Go Programming language";
+    homepage = "https://go.dev/";
+    license = licenses.bsd3;
+    maintainers = teams.golang.members;
+    platforms = platforms.darwin ++ platforms.linux;
+    mainProgram = "go";
+  };
+})
diff --git a/pkgs/development/compilers/go/go_no_vendor_checks-1.22.patch b/pkgs/development/compilers/go/go_no_vendor_checks-1.22.patch
new file mode 100644
index 000000000000..bd545d50948f
--- /dev/null
+++ b/pkgs/development/compilers/go/go_no_vendor_checks-1.22.patch
@@ -0,0 +1,23 @@
+Starting from go1.14, go verifes that vendor/modules.txt matches the requirements
+and replacements listed in the main module go.mod file, and it is a hard failure if
+vendor/modules.txt is missing.
+
+Relax module consistency checks and switch back to pre go1.14 behaviour if
+vendor/modules.txt is missing regardless of go version requirement in go.mod.
+
+This has been ported from FreeBSD: https://reviews.freebsd.org/D24122
+See https://github.com/golang/go/issues/37948 for discussion.
+
+diff --git a/src/cmd/go/internal/modload/vendor.go b/src/cmd/go/internal/modload/vendor.go
+index b2cb44100e..05bf3829d5 100644
+--- a/src/cmd/go/internal/modload/vendor.go
++++ b/src/cmd/go/internal/modload/vendor.go
+@@ -159,7 +159,7 @@ func checkVendorConsistency(indexes []*modFileIndex, modFiles []*modfile.File, m
+ 			panic(fmt.Errorf("not in workspace mode but number of indexes is %v, not 1", len(indexes)))
+ 		}
+ 		index := indexes[0]
+-		if gover.Compare(index.goVersion, "1.14") < 0 {
++		if gover.Compare(index.goVersion, "1.14") < 0 || (os.Getenv("GO_NO_VENDOR_CHECKS") == "1" && len(vendorMeta) == 0) {
+ 			// Go versions before 1.14 did not include enough information in
+ 			// vendor/modules.txt to check for consistency.
+ 			// If we know that we're on an earlier version, relax the consistency check.
diff --git a/pkgs/development/compilers/graalvm/community-edition/graalpy/hashes.nix b/pkgs/development/compilers/graalvm/community-edition/graalpy/hashes.nix
index c18e7bcba006..84bb1660f7b5 100644
--- a/pkgs/development/compilers/graalvm/community-edition/graalpy/hashes.nix
+++ b/pkgs/development/compilers/graalvm/community-edition/graalpy/hashes.nix
@@ -1,22 +1,22 @@
 # Generated by update.sh script
 {
-  "version" = "23.1.1";
+  "version" = "23.1.2";
   "hashes" = {
     "aarch64-linux" = {
-      sha256 = "1jv9icfh3w8gdch0h3l8mm6q96z3lv89s8zv788wvkkb87zv8w8m";
-      url = "https://github.com/oracle/graalpython/releases/download/graal-23.1.1/graalpy-community-23.1.1-linux-aarch64.tar.gz";
+      sha256 = "0ypzhi22q2d1dfl3qf3yfsaqdsrj8sksc2spa79rdqdr690li4y9";
+      url = "https://github.com/oracle/graalpython/releases/download/graal-23.1.2/graalpy-community-23.1.2-linux-aarch64.tar.gz";
     };
     "x86_64-linux" = {
-      sha256 = "108qdf0ss9l0x6k983v9yg6m5i7aqwfdxjqa5fx62xj027wi5pqk";
-      url = "https://github.com/oracle/graalpython/releases/download/graal-23.1.1/graalpy-community-23.1.1-linux-amd64.tar.gz";
+      sha256 = "1n99hzf1sidacv4qr5j2b3dpwrc6qb71alwfkdxjqx6xv7g7nmr7";
+      url = "https://github.com/oracle/graalpython/releases/download/graal-23.1.2/graalpy-community-23.1.2-linux-amd64.tar.gz";
     };
     "x86_64-darwin" = {
-      sha256 = "019s7vlr8a6x60g0yh36pdf2vvan1v2wmq8z4xrcgpl96zpwwn5h";
-      url = "https://github.com/oracle/graalpython/releases/download/graal-23.1.1/graalpy-community-23.1.1-macos-amd64.tar.gz";
+      sha256 = "0g2xj5hiq8idacdm0jlg5lvvv98f38p6fjb839gfacsb25pmhkg7";
+      url = "https://github.com/oracle/graalpython/releases/download/graal-23.1.2/graalpy-community-23.1.2-macos-amd64.tar.gz";
     };
     "aarch64-darwin" = {
-      sha256 = "0qbanbivkj62cjg2ll4ia23c435i1cvwy7pq19dvj8s204mpl8l2";
-      url = "https://github.com/oracle/graalpython/releases/download/graal-23.1.1/graalpy-community-23.1.1-macos-aarch64.tar.gz";
+      sha256 = "0qinxqkkm9bfnzr43p3yhs3alfnl4pppca6yahsk5bp8ngyzasfj";
+      url = "https://github.com/oracle/graalpython/releases/download/graal-23.1.2/graalpy-community-23.1.2-macos-aarch64.tar.gz";
     };
   };
 }
diff --git a/pkgs/development/compilers/graalvm/community-edition/graalvm-ce/hashes.nix b/pkgs/development/compilers/graalvm/community-edition/graalvm-ce/hashes.nix
index e9454dca7250..45028f3d544b 100644
--- a/pkgs/development/compilers/graalvm/community-edition/graalvm-ce/hashes.nix
+++ b/pkgs/development/compilers/graalvm/community-edition/graalvm-ce/hashes.nix
@@ -1,22 +1,22 @@
 # Generated by update.sh script
 {
-  "version" = "21.0.1";
+  "version" = "21.0.2";
   "hashes" = {
     "aarch64-linux" = {
-      sha256 = "0vb1bdbn4lqig4jihynacbyrj551m1pcmj6qh86kdwx0kn9400yy";
-      url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-21.0.1/graalvm-community-jdk-21.0.1_linux-aarch64_bin.tar.gz";
+      sha256 = "0yndazvc4kyr9widfn8ql5vd57m4m5inqz2wcpsarw38rs8ycjx3";
+      url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-21.0.2/graalvm-community-jdk-21.0.2_linux-aarch64_bin.tar.gz";
     };
     "x86_64-linux" = {
-      sha256 = "1gvkxqmbsh7pklh9bkhndh08nnjcmgq0xpzc96dgacqnlr4fx0sj";
-      url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-21.0.1/graalvm-community-jdk-21.0.1_linux-x64_bin.tar.gz";
+      sha256 = "0j5ffszcaqv3fq159hyb611jm8w1q4n1cywmbd7vi69smad0cj5h";
+      url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-21.0.2/graalvm-community-jdk-21.0.2_linux-x64_bin.tar.gz";
     };
     "x86_64-darwin" = {
-      sha256 = "0sks663ldc0m3rhc882mzn44kipzbjw7325dhkpwy874p47j9zns";
-      url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-21.0.1/graalvm-community-jdk-21.0.1_macos-x64_bin.tar.gz";
+      sha256 = "1qfrn1068idnkzd6mdpw1x17sqrj59rz9avphj8225sxlhzsk2ks";
+      url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-21.0.2/graalvm-community-jdk-21.0.2_macos-x64_bin.tar.gz";
     };
     "aarch64-darwin" = {
-      sha256 = "0i7zzq1czgc4lk1z278zp4cml4kdryafhrma5rqaja75933jpi2h";
-      url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-21.0.1/graalvm-community-jdk-21.0.1_macos-aarch64_bin.tar.gz";
+      sha256 = "1dssa3nhix7bqygdkkfp0b9myjg5f91dlgm8mf6r7qf7mj9klpji";
+      url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-21.0.2/graalvm-community-jdk-21.0.2_macos-aarch64_bin.tar.gz";
     };
   };
 }
diff --git a/pkgs/development/compilers/graalvm/community-edition/truffleruby/hashes.nix b/pkgs/development/compilers/graalvm/community-edition/truffleruby/hashes.nix
index 51e40dd590d5..331db1caf9b9 100644
--- a/pkgs/development/compilers/graalvm/community-edition/truffleruby/hashes.nix
+++ b/pkgs/development/compilers/graalvm/community-edition/truffleruby/hashes.nix
@@ -1,22 +1,22 @@
 # Generated by update.sh script
 {
-  "version" = "23.1.1";
+  "version" = "23.1.2";
   "hashes" = {
     "aarch64-linux" = {
-      sha256 = "0d8lxbfafgyirgs06bmfbmww61h8w3sr95z7y4x0ykfs7mghsnpd";
-      url = "https://github.com/oracle/truffleruby/releases/download/graal-23.1.1/truffleruby-community-23.1.1-linux-aarch64.tar.gz";
+      sha256 = "0bmrpp88zny0hbq4hqhs4xajqr96qxj6p5nj12m7kcr8hzh2vkf3";
+      url = "https://github.com/oracle/truffleruby/releases/download/graal-23.1.2/truffleruby-community-23.1.2-linux-aarch64.tar.gz";
     };
     "x86_64-linux" = {
-      sha256 = "1304yvllffnhwmpbcdsgcwkhc5w5w7r1rhxdwb709if8kglx793y";
-      url = "https://github.com/oracle/truffleruby/releases/download/graal-23.1.1/truffleruby-community-23.1.1-linux-amd64.tar.gz";
+      sha256 = "0hrab1jrs59swpx33zg111wa4nv2215ygyckv47x6mmjibf30c86";
+      url = "https://github.com/oracle/truffleruby/releases/download/graal-23.1.2/truffleruby-community-23.1.2-linux-amd64.tar.gz";
     };
     "x86_64-darwin" = {
-      sha256 = "09lfski3dj3zzp7cdfrndjafx48ln0wdgb7cs3an3krh6xjchi8l";
-      url = "https://github.com/oracle/truffleruby/releases/download/graal-23.1.1/truffleruby-community-23.1.1-macos-amd64.tar.gz";
+      sha256 = "1y68wz6rv2vksbnhmf57zlk8smgv9954np07d8ywdls99a92217z";
+      url = "https://github.com/oracle/truffleruby/releases/download/graal-23.1.2/truffleruby-community-23.1.2-macos-amd64.tar.gz";
     };
     "aarch64-darwin" = {
-      sha256 = "152mrz5hfnmsf5k1gd6rsb6yacy3zyjm2jl8q3zjl18n784np57b";
-      url = "https://github.com/oracle/truffleruby/releases/download/graal-23.1.1/truffleruby-community-23.1.1-macos-aarch64.tar.gz";
+      sha256 = "0za4ff3wlj2fgl2z3vzp2p4jf9x0fkvd98qwk1dm7lmffghfb14n";
+      url = "https://github.com/oracle/truffleruby/releases/download/graal-23.1.2/truffleruby-community-23.1.2-macos-aarch64.tar.gz";
     };
   };
 }
diff --git a/pkgs/development/compilers/idris2/build-idris.nix b/pkgs/development/compilers/idris2/build-idris.nix
index c299128aa526..3ad0956e3a08 100644
--- a/pkgs/development/compilers/idris2/build-idris.nix
+++ b/pkgs/development/compilers/idris2/build-idris.nix
@@ -1,9 +1,9 @@
-{ stdenv, lib, idris2
+{ stdenv, lib, idris2, makeWrapper
 }:
 # Usage: let
 #          pkg = idris2Packages.buildIdris {
 #            src = ...;
-#            projectName = "my-pkg";
+#            ipkgName = "my-pkg";
 #            idrisLibraries = [ ];
 #          };
 #        in {
@@ -12,62 +12,75 @@
 #        }
 #
 { src
-, projectName
+, ipkgName
+, version ? "unversioned"
 , idrisLibraries # Other libraries built with buildIdris
 , ... }@attrs:
 
 let
-  ipkgName = projectName + ".ipkg";
+  ipkgFileName = ipkgName + ".ipkg";
   idrName = "idris2-${idris2.version}";
   libSuffix = "lib/${idrName}";
   libDirs =
-    lib.makeSearchPath libSuffix idrisLibraries;
-  drvAttrs = builtins.removeAttrs attrs [ "idrisLibraries" ];
+    (lib.makeSearchPath libSuffix idrisLibraries) +
+    ":${idris2}/${idrName}";
+  supportDir = "${idris2}/${idrName}/lib";
+  drvAttrs = builtins.removeAttrs attrs [
+    "ipkgName"
+    "idrisLibraries"
+  ];
 
-  sharedAttrs = {
-    name = projectName;
+  sharedAttrs = drvAttrs // {
+    pname = ipkgName;
+    inherit version;
     src = src;
-    nativeBuildInputs = [ idris2 ];
+    nativeBuildInputs = [ idris2 makeWrapper ] ++ attrs.nativeBuildInputs or [];
+    buildInputs = idrisLibraries ++ attrs.buildInputs or [];
 
     IDRIS2_PACKAGE_PATH = libDirs;
 
-    configurePhase = ''
-      runHook preConfigure
-      runHook postConfigure
-    '';
-
     buildPhase = ''
       runHook preBuild
-      idris2 --build ${ipkgName}
+      idris2 --build ${ipkgFileName}
       runHook postBuild
     '';
   };
 
 in {
-  executable = stdenv.mkDerivation (lib.attrsets.mergeAttrsList [
-    sharedAttrs
-    { installPhase = ''
+  executable = stdenv.mkDerivation (sharedAttrs // {
+    installPhase = ''
+      runHook preInstall
+      mkdir -p $out/bin
+      scheme_app="$(find ./build/exec -name '*_app')"
+      if [ "$scheme_app" = ''' ]; then
+        mv -- build/exec/* $out/bin/
+        chmod +x $out/bin/*
+        # ^ remove after Idris2 0.8.0 is released. will be superfluous:
+        # https://github.com/idris-lang/Idris2/pull/3189
+      else
+        cd build/exec/*_app
+        rm -f ./libidris2_support.so
+        for file in *.so; do
+          bin_name="''${file%.so}"
+          mv -- "$file" "$out/bin/$bin_name"
+          wrapProgram "$out/bin/$bin_name" \
+            --prefix LD_LIBRARY_PATH : ${supportDir} \
+            --prefix DYLD_LIBRARY_PATH : ${supportDir}
+        done
+      fi
+      runHook postInstall
+    '';
+  });
+
+  library = { withSource ? false }:
+    let installCmd = if withSource then "--install-with-src" else "--install";
+    in stdenv.mkDerivation (sharedAttrs // {
+      installPhase = ''
         runHook preInstall
-        mkdir -p $out/bin
-        mv build/exec/* $out/bin
+        mkdir -p $out/${libSuffix}
+        export IDRIS2_PREFIX=$out/lib
+        idris2 ${installCmd} ${ipkgFileName}
         runHook postInstall
       '';
-    }
-    drvAttrs
-  ]);
-  library = { withSource ? false }:
-    let installCmd = if withSource then "--install-with-src" else "--install";
-    in stdenv.mkDerivation (lib.attrsets.mergeAttrsList [
-      sharedAttrs
-      {
-        installPhase = ''
-          runHook preInstall
-          mkdir -p $out/${libSuffix}
-          export IDRIS2_PREFIX=$out/lib
-          idris2 ${installCmd} ${ipkgName}
-          runHook postInstall
-        '';
-      }
-      drvAttrs
-    ]);
+    });
 }
diff --git a/pkgs/development/compilers/idris2/default.nix b/pkgs/development/compilers/idris2/default.nix
index 8a2d28eb1ce0..79a90cbee0f3 100644
--- a/pkgs/development/compilers/idris2/default.nix
+++ b/pkgs/development/compilers/idris2/default.nix
@@ -5,12 +5,13 @@
 let
 in {
   idris2 = callPackage ./idris2.nix { };
+  idris2Lsp = callPackage ./idris2-lsp.nix { };
 
   buildIdris = callPackage ./build-idris.nix { };
 
   idris2Api = (idris2Packages.buildIdris {
-    inherit (idris2Packages.idris2) src;
-    projectName = "idris2api";
+    inherit (idris2Packages.idris2) src version;
+    ipkgName = "idris2api";
     idrisLibraries = [ ];
     preBuild = ''
       export IDRIS2_PREFIX=$out/lib
diff --git a/pkgs/development/compilers/idris2/idris2-lsp.nix b/pkgs/development/compilers/idris2/idris2-lsp.nix
new file mode 100644
index 000000000000..d73f2d70d6d0
--- /dev/null
+++ b/pkgs/development/compilers/idris2/idris2-lsp.nix
@@ -0,0 +1,44 @@
+{ fetchFromGitHub, idris2Packages, makeWrapper }:
+
+let
+  globalLibraries = let
+    idrName = "idris2-${idris2Packages.idris2.version}";
+    libSuffix = "lib/${idrName}";
+  in [
+    "\\$HOME/.nix-profile/lib/${idrName}"
+    "/run/current-system/sw/lib/${idrName}"
+    "${idris2Packages.idris2}/${idrName}"
+  ];
+  globalLibrariesPath = builtins.concatStringsSep ":" globalLibraries;
+
+  idris2Api = idris2Packages.idris2Api { };
+  lspLib = (idris2Packages.buildIdris {
+    ipkgName = "lsp-lib";
+    version = "2024-01-21";
+    src = fetchFromGitHub {
+     owner = "idris-community";
+     repo = "LSP-lib";
+     rev = "03851daae0c0274a02d94663d8f53143a94640da";
+     hash = "sha256-ICW9oOOP70hXneJFYInuPY68SZTDw10dSxSPTW4WwWM=";
+    };
+    idrisLibraries = [ ];
+  }).library { };
+
+  lspPkg = idris2Packages.buildIdris {
+    ipkgName = "idris2-lsp";
+    version = "2024-01-21";
+    src = fetchFromGitHub {
+       owner = "idris-community";
+       repo = "idris2-lsp";
+       rev = "a77ef2d563418925aa274fa29f06880dde43f4ec";
+       hash = "sha256-zjfVfkpiQS9AdmTfq0hYRSelJq5Caa9VGTuFLtSvl5o=";
+    };
+    idrisLibraries = [idris2Api lspLib];
+
+    buildInputs = [makeWrapper];
+    postInstall = ''
+      wrapProgram $out/bin/idris2-lsp \
+        --suffix IDRIS2_PACKAGE_PATH ':' "${globalLibrariesPath}"
+    '';
+  };
+in lspPkg.executable
diff --git a/pkgs/development/compilers/inform6/default.nix b/pkgs/development/compilers/inform6/default.nix
index 107ffaf57233..49af7e6676e3 100644
--- a/pkgs/development/compilers/inform6/default.nix
+++ b/pkgs/development/compilers/inform6/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "inform6";
-  version = "6.41-r10";
+  version = "6.41-r11";
 
   src = fetchurl  {
     url = "https://ifarchive.org/if-archive/infocom/compilers/inform6/source/inform-${version}.tar.gz";
-    sha256 = "sha256-o2eBpzLczNjeCjoEtZsGgfobEwPVj1FEliDKC5qN6Hk=";
+    sha256 = "sha256-kfFfjJL03f3af1h/JdvkItuDFu8aGlM3BRa2eBB+ddY=";
   };
 
   buildInputs = [ perl ];
diff --git a/pkgs/development/compilers/intel-graphics-compiler/default.nix b/pkgs/development/compilers/intel-graphics-compiler/default.nix
index db03d2d85ca2..54a8e82e27ee 100644
--- a/pkgs/development/compilers/intel-graphics-compiler/default.nix
+++ b/pkgs/development/compilers/intel-graphics-compiler/default.nix
@@ -5,6 +5,7 @@
 , runCommandLocal
 , bison
 , flex
+, intel-compute-runtime
 , llvmPackages_14
 , opencl-clang
 , python3
@@ -19,8 +20,8 @@ let
   vc_intrinsics_src = fetchFromGitHub {
     owner = "intel";
     repo = "vc-intrinsics";
-    rev = "v0.13.0";
-    hash = "sha256-A9G1PH0WGdxU2u/ODrou53qF9kvrmE0tJSl9cFIOus0=";
+    rev = "v0.14.0";
+    hash = "sha256-t7m2y+DiZf0xum1vneXvoCyH767SKMOq4YzMIuZngR8=";
   };
 
   inherit (llvmPackages_14) lld llvm;
@@ -30,13 +31,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "intel-graphics-compiler";
-  version = "1.0.15136.4";
+  version = "1.0.15610.11";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "intel-graphics-compiler";
     rev = "igc-${version}";
-    hash = "sha256-Qh3FNck1z+rr7eSqxVnNs7YKvgXpKGY5dd3yx1Ft9Mg=";
+    hash = "sha256-Fu1g5M2lpcnLw6aSHI5gx47VOfx+rIdIhBlwe/Dv8bk=";
   };
 
   nativeBuildInputs = [ bison cmake flex (python3.withPackages (ps : with ps; [ mako ])) ];
@@ -73,6 +74,10 @@ stdenv.mkDerivation rec {
     "-Wno-dev"
   ];
 
+  passthru.tests = {
+    inherit intel-compute-runtime;
+  };
+
   meta = with lib; {
     homepage = "https://github.com/intel/intel-graphics-compiler";
     description = "LLVM-based compiler for OpenCL targeting Intel Gen graphics hardware";
diff --git a/pkgs/development/compilers/julia/generic-bin.nix b/pkgs/development/compilers/julia/generic-bin.nix
index e19a0e020a4a..09a8c2bce3bf 100644
--- a/pkgs/development/compilers/julia/generic-bin.nix
+++ b/pkgs/development/compilers/julia/generic-bin.nix
@@ -16,10 +16,14 @@ let
     # Test flaky because of our RPATH patching
     # https://github.com/NixOS/nixpkgs/pull/230965#issuecomment-1545336489
     "compiler/codegen"
+    # Test flaky
+    "read"
   ] ++ lib.optionals (lib.versionAtLeast version "1.10") [
     # Test flaky
     # https://github.com/JuliaLang/julia/issues/52739
     "REPL"
+    # Test flaky
+    "ccall"
   ] ++ lib.optionals stdenv.isDarwin [
     # Test flaky on ofborg
     "FileWatching"
diff --git a/pkgs/development/compilers/julia/patches/1.10/0001-skip-building-docs-as-it-requires-network-access.patch b/pkgs/development/compilers/julia/patches/1.10/0001-skip-building-docs-as-it-requires-network-access.patch
index e7bc9187cead..6ff33b342cfd 100644
--- a/pkgs/development/compilers/julia/patches/1.10/0001-skip-building-docs-as-it-requires-network-access.patch
+++ b/pkgs/development/compilers/julia/patches/1.10/0001-skip-building-docs-as-it-requires-network-access.patch
@@ -30,5 +30,5 @@ index 1565014a0f..edd5c65244 100644
  	-rm -f $(DESTDIR)$(datarootdir)/julia/base/version_git.sh
  	-rm -f $(DESTDIR)$(datarootdir)/julia/test/Makefile
 -- 
-2.42.0
+2.43.0
 
diff --git a/pkgs/development/compilers/julia/patches/1.10/0002-skip-failing-and-flaky-tests.patch b/pkgs/development/compilers/julia/patches/1.10/0002-skip-failing-and-flaky-tests.patch
index 2b9986107faf..474653bf342c 100644
--- a/pkgs/development/compilers/julia/patches/1.10/0002-skip-failing-and-flaky-tests.patch
+++ b/pkgs/development/compilers/julia/patches/1.10/0002-skip-failing-and-flaky-tests.patch
@@ -1,4 +1,4 @@
-From c7e2f6ed00c170b68d5d156faac38aa76d4490fd Mon Sep 17 00:00:00 2001
+From 9da2f2596db9f4f1a61825d82d9b8c3f3b2e99aa Mon Sep 17 00:00:00 2001
 From: Nick Cao <nickcao@nichi.co>
 Date: Wed, 10 Jan 2024 20:58:20 -0500
 Subject: [PATCH 2/2] skip failing and flaky tests
@@ -8,7 +8,7 @@ Subject: [PATCH 2/2] skip failing and flaky tests
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/test/Makefile b/test/Makefile
-index 88dbe5b2b4..f0bdedfdf5 100644
+index 88dbe5b2b4..a2a7a55e20 100644
 --- a/test/Makefile
 +++ b/test/Makefile
 @@ -28,7 +28,7 @@ default:
@@ -16,10 +16,10 @@ index 88dbe5b2b4..f0bdedfdf5 100644
  $(TESTS):
  	@cd $(SRCDIR) && \
 -	$(call PRINT_JULIA, $(call spawn,$(JULIA_EXECUTABLE)) --check-bounds=yes --startup-file=no --depwarn=error ./runtests.jl $@)
-+	$(call PRINT_JULIA, $(call spawn,$(JULIA_EXECUTABLE)) --check-bounds=yes --startup-file=no --depwarn=error ./runtests.jl --skip NetworkOptions REPL channels $@)
++	$(call PRINT_JULIA, $(call spawn,$(JULIA_EXECUTABLE)) --check-bounds=yes --startup-file=no --depwarn=error ./runtests.jl --skip NetworkOptions REPL channels FileWatching ccall $@)
  
  $(addprefix revise-, $(TESTS)): revise-% :
  	@cd $(SRCDIR) && \
 -- 
-2.42.0
+2.43.0
 
diff --git a/pkgs/development/compilers/koka/default.nix b/pkgs/development/compilers/koka/default.nix
index aec856e47d68..e3462c826c76 100644
--- a/pkgs/development/compilers/koka/default.nix
+++ b/pkgs/development/compilers/koka/default.nix
@@ -1,15 +1,42 @@
-{ stdenv, pkgsHostTarget, cmake, makeWrapper, mkDerivation, fetchFromGitHub
-, alex, array, base, bytestring, cond, containers, directory, extra
-, filepath, hpack, hspec, hspec-core, isocline, json, lib, mtl
-, parsec, process, regex-compat, text, time }:
+{ stdenv
+, pkgsHostTarget
+, cmake
+, makeWrapper
+, mkDerivation
+, fetchFromGitHub
+, alex
+, lib
+, hpack
+, aeson
+, array
+, async
+, base
+, bytestring
+, co-log-core
+, cond
+, containers
+, directory
+, FloatingHex
+, isocline
+, lens
+, lsp
+, mtl
+, network
+, network-simple
+, parsec
+, process
+, text
+, text-rope
+, time
+}:
 
 let
-  version = "2.4.2";
+  version = "3.0.4";
   src = fetchFromGitHub {
     owner = "koka-lang";
     repo = "koka";
     rev = "v${version}";
-    sha256 = "sha256-sVjaIzOxNuBtDswpDl5gLB10Sw945TQAf2ywrKumqqk=";
+    sha256 = "sha256-U8BW1Aq9t3je0YDV8NkE0MzdnjwXBJQbmekh5ufOs3k=";
     fetchSubmodules = true;
   };
   kklib = stdenv.mkDerivation {
@@ -38,8 +65,28 @@ mkDerivation rec {
   isExecutable = true;
   libraryToolDepends = [ hpack ];
   executableHaskellDepends = [
-    array base bytestring cond containers directory isocline mtl
-    parsec process text time kklib
+    aeson
+    array
+    async
+    base
+    bytestring
+    co-log-core
+    cond
+    containers
+    directory
+    FloatingHex
+    isocline
+    lens
+    lsp
+    mtl
+    network
+    network-simple
+    parsec
+    process
+    text
+    text-rope
+    time
+    kklib
   ];
   executableToolDepends = [ alex makeWrapper ];
   postInstall = ''
diff --git a/pkgs/development/compilers/ldc/default.nix b/pkgs/development/compilers/ldc/default.nix
index 8624e64c658b..6b0761217703 100644
--- a/pkgs/development/compilers/ldc/default.nix
+++ b/pkgs/development/compilers/ldc/default.nix
@@ -1,4 +1,4 @@
 import ./generic.nix {
-  version = "1.35.0";
-  sha256 = "sha256-bilpk3BsdsCT5gkTmqCz+HBDVfoPN1b2dY141EIm36A=";
+  version = "1.36.0";
+  sha256 = "sha256-oAx5BzEjqIfBf0Rsd4KklVajUSo9Natna31Trhu41u8=";
 }
diff --git a/pkgs/development/compilers/ldc/generic.nix b/pkgs/development/compilers/ldc/generic.nix
index 0d0926aab12e..16598714410f 100644
--- a/pkgs/development/compilers/ldc/generic.nix
+++ b/pkgs/development/compilers/ldc/generic.nix
@@ -1,5 +1,5 @@
 { version, sha256 }:
-{ lib, stdenv, fetchurl, cmake, ninja, llvm_16, curl, tzdata
+{ lib, stdenv, fetchurl, cmake, ninja, llvm_17, curl, tzdata
 , libconfig, lit, gdb, unzip, darwin, bash
 , callPackage, makeWrapper, runCommand, targetPackages
 , ldcBootstrap ? callPackage ./bootstrap.nix { }
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [
-    cmake ldcBootstrap lit lit.python llvm_16.dev makeWrapper ninja unzip
+    cmake ldcBootstrap lit lit.python llvm_17.dev makeWrapper ninja unzip
   ]
   ++ lib.optionals stdenv.hostPlatform.isDarwin [
     darwin.apple_sdk.frameworks.Foundation
diff --git a/pkgs/development/compilers/llvm/10/clang/compiler-rt-baremetal.patch b/pkgs/development/compilers/llvm/10/clang/compiler-rt-baremetal.patch
deleted file mode 100644
index a4a0f21b0fcd..000000000000
--- a/pkgs/development/compilers/llvm/10/clang/compiler-rt-baremetal.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-Index: lib/Driver/ToolChains/BareMetal.cpp
-===================================================================
---- a/lib/Driver/ToolChains/BareMetal.cpp
-+++ b/lib/Driver/ToolChains/BareMetal.cpp
-@@ -157,7 +157,7 @@
- void BareMetal::AddLinkRuntimeLib(const ArgList &Args,
-                                   ArgStringList &CmdArgs) const {
-   CmdArgs.push_back(Args.MakeArgString("-lclang_rt.builtins-" +
--                                       getTriple().getArchName() + ".a"));
-+                                       getTriple().getArchName()));
- }
- 
- void baremetal::Linker::ConstructJob(Compilation &C, const JobAction &JA,
-Index: test/Driver/baremetal.cpp
-===================================================================
---- a/test/Driver/baremetal.cpp
-+++ b/test/Driver/baremetal.cpp
-@@ -13,7 +13,7 @@
- // CHECK-V6M-C-NEXT: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic"
- // CHECK-V6M-C-SAME: "-L[[RESOURCE_DIR:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}baremetal"
- // CHECK-V6M-C-SAME: "-T" "semihosted.lds" "-Lsome{{[/\\]+}}directory{{[/\\]+}}user{{[/\\]+}}asked{{[/\\]+}}for"
--// CHECK-V6M-C-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m.a"
-+// CHECK-V6M-C-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m"
- // CHECK-V6M-C-SAME: "-o" "{{.*}}.o"
- 
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-@@ -35,7 +35,7 @@
- // CHECK-V6M-DEFAULTCXX: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic"
- // CHECK-V6M-DEFAULTCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}lib{{(64)?}}{{[/\\]+}}clang{{[/\\]+}}{{.*}}{{[/\\]+}}lib{{[/\\]+}}baremetal"
- // CHECK-V6M-DEFAULTCXX-SAME: "-lc++" "-lc++abi" "-lunwind"
--// CHECK-V6M-DEFAULTCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m.a"
-+// CHECK-V6M-DEFAULTCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m"
- // CHECK-V6M-DEFAULTCXX-SAME: "-o" "{{.*}}.o"
- 
- // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-@@ -48,7 +48,7 @@
- // CHECK-V6M-LIBCXX: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic"
- // CHECK-V6M-LIBCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}lib{{(64)?}}{{[/\\]+}}clang{{[/\\]+}}{{.*}}{{[/\\]+}}lib{{[/\\]+}}baremetal"
- // CHECK-V6M-LIBCXX-SAME: "-lc++" "-lc++abi" "-lunwind"
--// CHECK-V6M-LIBCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m.a"
-+// CHECK-V6M-LIBCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m"
- // CHECK-V6M-LIBCXX-SAME: "-o" "{{.*}}.o"
- 
- // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-@@ -61,7 +61,7 @@
- // CHECK-V6M-LIBSTDCXX: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic"
- // CHECK-V6M-LIBSTDCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}lib{{(64)?}}{{[/\\]+}}clang{{[/\\]+}}{{.*}}{{[/\\]+}}lib{{[/\\]+}}baremetal"
- // CHECK-V6M-LIBSTDCXX-SAME: "-lstdc++" "-lsupc++" "-lunwind"
--// CHECK-V6M-LIBSTDCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m.a"
-+// CHECK-V6M-LIBSTDCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m"
- // CHECK-V6M-LIBSTDCXX-SAME: "-o" "{{.*}}.o"
- 
- // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \
diff --git a/pkgs/development/compilers/llvm/10/clang/default.nix b/pkgs/development/compilers/llvm/10/clang/default.nix
deleted file mode 100644
index ad4e91304158..000000000000
--- a/pkgs/development/compilers/llvm/10/clang/default.nix
+++ /dev/null
@@ -1,133 +0,0 @@
-{ lib, stdenv, llvm_meta, fetch, substituteAll, cmake, libxml2, libllvm, version, clang-tools-extra_src, python3
-, buildLlvmTools
-, fixDarwinDylibNames
-, enableManpages ? false
-}:
-
-let
-  self = stdenv.mkDerivation ({
-    pname = "clang";
-    inherit version;
-
-    src = fetch "clang" "091bvcny2lh32zy8f3m9viayyhb2zannrndni7325rl85cwgr6pr";
-
-    unpackPhase = ''
-      unpackFile $src
-      mv clang-${version}* clang
-      sourceRoot=$PWD/clang
-      unpackFile ${clang-tools-extra_src}
-      mv clang-tools-extra-* $sourceRoot/tools/extra
-    '';
-
-    nativeBuildInputs = [ cmake python3 ]
-      ++ lib.optional enableManpages python3.pkgs.sphinx
-      ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
-
-    buildInputs = [ libxml2 libllvm ];
-
-    cmakeFlags = [
-      "-DCLANGD_BUILD_XPC=OFF"
-      "-DLLVM_ENABLE_RTTI=ON"
-    ] ++ lib.optionals enableManpages [
-      "-DCLANG_INCLUDE_DOCS=ON"
-      "-DLLVM_ENABLE_SPHINX=ON"
-      "-DSPHINX_OUTPUT_MAN=ON"
-      "-DSPHINX_OUTPUT_HTML=OFF"
-      "-DSPHINX_WARNINGS_AS_ERRORS=OFF"
-    ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
-      "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
-      "-DCLANG_TABLEGEN=${buildLlvmTools.libclang.dev}/bin/clang-tblgen"
-    ];
-
-    patches = [
-      ./purity.patch
-      # https://reviews.llvm.org/D51899
-      ./compiler-rt-baremetal.patch
-      ./gnu-install-dirs.patch
-      (substituteAll {
-        src = ../../clang-6-10-LLVMgold-path.patch;
-        libllvmLibdir = "${libllvm.lib}/lib";
-      })
-    ];
-
-    postPatch = ''
-      sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \
-             -e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' \
-             lib/Driver/ToolChains/*.cpp
-    '' + lib.optionalString stdenv.hostPlatform.isMusl ''
-      sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp
-    '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
-      substituteInPlace tools/extra/clangd/CMakeLists.txt \
-        --replace "NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB" FALSE
-    '';
-
-    outputs = [ "out" "lib" "dev" "python" ];
-
-    postInstall = ''
-      ln -sv $out/bin/clang $out/bin/cpp
-
-      # Move libclang to 'lib' output
-      moveToOutput "lib/libclang.*" "$lib"
-      moveToOutput "lib/libclang-cpp.*" "$lib"
-      substituteInPlace $out/lib/cmake/clang/ClangTargets-release.cmake \
-          --replace "\''${_IMPORT_PREFIX}/lib/libclang." "$lib/lib/libclang." \
-          --replace "\''${_IMPORT_PREFIX}/lib/libclang-cpp." "$lib/lib/libclang-cpp."
-
-      mkdir -p $python/bin $python/share/{clang,scan-view}
-      mv $out/bin/{git-clang-format,scan-view} $python/bin
-      if [ -e $out/bin/set-xcode-analyzer ]; then
-        mv $out/bin/set-xcode-analyzer $python/bin
-      fi
-      mv $out/share/clang/*.py $python/share/clang
-      mv $out/share/scan-view/*.py $python/share/scan-view
-      rm $out/bin/c-index-test
-      patchShebangs $python/bin
-
-      mkdir -p $dev/bin
-      cp bin/clang-tblgen $dev/bin
-    '';
-
-    passthru = {
-      inherit libllvm;
-      isClang = true;
-      hardeningUnsupportedFlags = [ "fortify3" ];
-    };
-
-    meta = llvm_meta // {
-      homepage = "https://clang.llvm.org/";
-      description = "A C language family frontend for LLVM";
-      longDescription = ''
-        The Clang project provides a language front-end and tooling
-        infrastructure for languages in the C language family (C, C++, Objective
-        C/C++, OpenCL, CUDA, and RenderScript) for the LLVM project.
-        It aims to deliver amazingly fast compiles, extremely useful error and
-        warning messages and to provide a platform for building great source
-        level tools. The Clang Static Analyzer and clang-tidy are tools that
-        automatically find bugs in your code, and are great examples of the sort
-        of tools that can be built using the Clang frontend as a library to
-        parse C/C++ code.
-      '';
-      mainProgram = "clang";
-    };
-  } // lib.optionalAttrs enableManpages {
-    pname = "clang-manpages";
-
-    buildPhase = ''
-      make docs-clang-man
-    '';
-
-    installPhase = ''
-      mkdir -p $out/share/man/man1
-      # Manually install clang manpage
-      cp docs/man/*.1 $out/share/man/man1/
-    '';
-
-    outputs = [ "out" ];
-
-    doCheck = false;
-
-    meta = llvm_meta // {
-      description = "man page for Clang ${version}";
-    };
-  });
-in self
diff --git a/pkgs/development/compilers/llvm/10/clang/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/10/clang/gnu-install-dirs.patch
deleted file mode 100644
index 454c81875eab..000000000000
--- a/pkgs/development/compilers/llvm/10/clang/gnu-install-dirs.patch
+++ /dev/null
@@ -1,248 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index dc1413f4b597..c173531e624f 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -9,6 +9,8 @@ endif()
- if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
-   project(Clang)
- 
-+  include(GNUInstallDirs)
-+
-   # Rely on llvm-config.
-   set(CONFIG_OUTPUT)
-   if(LLVM_CONFIG)
-@@ -417,7 +419,7 @@ include_directories(BEFORE
- 
- if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-   install(DIRECTORY include/clang include/clang-c
--    DESTINATION include
-+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-     COMPONENT clang-headers
-     FILES_MATCHING
-     PATTERN "*.def"
-@@ -427,7 +429,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-     )
- 
-   install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/clang
--    DESTINATION include
-+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-     COMPONENT clang-headers
-     FILES_MATCHING
-     PATTERN "CMakeFiles" EXCLUDE
-@@ -447,7 +449,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
- 
-   add_custom_target(bash-autocomplete DEPENDS utils/bash-autocomplete.sh)
-   install(PROGRAMS utils/bash-autocomplete.sh
--          DESTINATION share/clang
-+          DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
-           COMPONENT bash-autocomplete)
-   if(NOT LLVM_ENABLE_IDE)
-     add_llvm_install_targets(install-bash-autocomplete
-diff --git a/cmake/modules/AddClang.cmake b/cmake/modules/AddClang.cmake
-index 577cc11ab015..a4f4481d8442 100644
---- a/cmake/modules/AddClang.cmake
-+++ b/cmake/modules/AddClang.cmake
-@@ -114,9 +114,9 @@ macro(add_clang_library name)
-       install(TARGETS ${name}
-         COMPONENT ${name}
-         ${export_to_clangtargets}
--        LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
--        ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
--        RUNTIME DESTINATION bin)
-+        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
-+        ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
-+        RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
- 
-       if (NOT LLVM_ENABLE_IDE)
-         add_llvm_install_targets(install-${name}
-@@ -160,7 +160,7 @@ macro(add_clang_tool name)
- 
-     install(TARGETS ${name}
-       ${export_to_clangtargets}
--      RUNTIME DESTINATION bin
-+      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
-       COMPONENT ${name})
- 
-     if(NOT LLVM_ENABLE_IDE)
-@@ -175,7 +175,7 @@ endmacro()
- macro(add_clang_symlink name dest)
-   add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE)
-   # Always generate install targets
--  llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE)
-+  llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE)
- endmacro()
- 
- function(clang_target_link_libraries target type)
-diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt
-index 85c3124234ad..64c48235d914 100644
---- a/lib/Headers/CMakeLists.txt
-+++ b/lib/Headers/CMakeLists.txt
-@@ -191,7 +191,7 @@ set_target_properties(clang-resource-headers PROPERTIES
-   FOLDER "Misc"
-   RUNTIME_OUTPUT_DIRECTORY "${output_dir}")
- 
--set(header_install_dir lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
-+set(header_install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
- 
- install(
-   FILES ${files} ${generated_files}
-diff --git a/tools/c-index-test/CMakeLists.txt b/tools/c-index-test/CMakeLists.txt
-index ceef4b08637c..8efad5520ca4 100644
---- a/tools/c-index-test/CMakeLists.txt
-+++ b/tools/c-index-test/CMakeLists.txt
-@@ -54,7 +54,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-     set_property(TARGET c-index-test APPEND PROPERTY INSTALL_RPATH
-        "@executable_path/../../lib")
-   else()
--    set(INSTALL_DESTINATION bin)
-+    set(INSTALL_DESTINATION ${CMAKE_INSTALL_BINDIR})
-   endif()
- 
-   install(TARGETS c-index-test
-diff --git a/tools/clang-format/CMakeLists.txt b/tools/clang-format/CMakeLists.txt
-index 35ecdb11253c..d77d75de0094 100644
---- a/tools/clang-format/CMakeLists.txt
-+++ b/tools/clang-format/CMakeLists.txt
-@@ -21,20 +21,20 @@ if( LLVM_LIB_FUZZING_ENGINE OR LLVM_USE_SANITIZE_COVERAGE )
- endif()
- 
- install(PROGRAMS clang-format-bbedit.applescript
--  DESTINATION share/clang
-+  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
-   COMPONENT clang-format)
- install(PROGRAMS clang-format-diff.py
--  DESTINATION share/clang
-+  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
-   COMPONENT clang-format)
- install(PROGRAMS clang-format-sublime.py
--  DESTINATION share/clang
-+  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
-   COMPONENT clang-format)
- install(PROGRAMS clang-format.el
--  DESTINATION share/clang
-+  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
-   COMPONENT clang-format)
- install(PROGRAMS clang-format.py
--  DESTINATION share/clang
-+  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
-   COMPONENT clang-format)
- install(PROGRAMS git-clang-format
--  DESTINATION bin
-+  DESTINATION ${CMAKE_INSTALL_BINDIR}
-   COMPONENT clang-format)
-diff --git a/tools/clang-rename/CMakeLists.txt b/tools/clang-rename/CMakeLists.txt
-index cda8e29ec5b1..0134d8ccd70b 100644
---- a/tools/clang-rename/CMakeLists.txt
-+++ b/tools/clang-rename/CMakeLists.txt
-@@ -19,8 +19,8 @@ clang_target_link_libraries(clang-rename
-   )
- 
- install(PROGRAMS clang-rename.py
--  DESTINATION share/clang
-+  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
-   COMPONENT clang-rename)
- install(PROGRAMS clang-rename.el
--  DESTINATION share/clang
-+  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
-   COMPONENT clang-rename)
-diff --git a/tools/diagtool/CMakeLists.txt b/tools/diagtool/CMakeLists.txt
-index a95444be40ee..136d96d9bf5b 100644
---- a/tools/diagtool/CMakeLists.txt
-+++ b/tools/diagtool/CMakeLists.txt
-@@ -21,7 +21,7 @@ clang_target_link_libraries(diagtool
- if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-   install(TARGETS diagtool
-     COMPONENT diagtool
--    RUNTIME DESTINATION bin)
-+    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
- 
-   if (NOT LLVM_ENABLE_IDE)
-     add_llvm_install_targets(install-diagtool
-diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt
-index 973655361f71..0181002e4e3b 100644
---- a/tools/libclang/CMakeLists.txt
-+++ b/tools/libclang/CMakeLists.txt
-@@ -141,7 +141,7 @@ endif()
- if(INTERNAL_INSTALL_PREFIX)
-   set(LIBCLANG_HEADERS_INSTALL_DESTINATION "${INTERNAL_INSTALL_PREFIX}/include")
- else()
--  set(LIBCLANG_HEADERS_INSTALL_DESTINATION include)
-+  set(LIBCLANG_HEADERS_INSTALL_DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
- endif()
- 
- install(DIRECTORY ../../include/clang-c
-@@ -172,7 +172,7 @@ foreach(PythonVersion ${CLANG_PYTHON_BINDINGS_VERSIONS})
-           COMPONENT
-             libclang-python-bindings
-           DESTINATION
--            "lib${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages")
-+            "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages")
- endforeach()
- if(NOT LLVM_ENABLE_IDE)
-   add_custom_target(libclang-python-bindings)
-diff --git a/tools/scan-build/CMakeLists.txt b/tools/scan-build/CMakeLists.txt
-index 28241245fcb7..d6b59f02fc2a 100644
---- a/tools/scan-build/CMakeLists.txt
-+++ b/tools/scan-build/CMakeLists.txt
-@@ -42,7 +42,7 @@ if(CLANG_INSTALL_SCANBUILD)
-                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
-     list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
-     install(PROGRAMS bin/${BinFile}
--            DESTINATION bin
-+            DESTINATION ${CMAKE_INSTALL_BINDIR}
-             COMPONENT scan-build)
-   endforeach()
- 
-@@ -56,7 +56,7 @@ if(CLANG_INSTALL_SCANBUILD)
-                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/libexec/${LibexecFile})
-     list(APPEND Depends ${CMAKE_BINARY_DIR}/libexec/${LibexecFile})
-     install(PROGRAMS libexec/${LibexecFile}
--            DESTINATION libexec
-+            DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}
-             COMPONENT scan-build)
-   endforeach()
- 
-@@ -84,7 +84,7 @@ if(CLANG_INSTALL_SCANBUILD)
-                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/scan-build/${ShareFile})
-     list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-build/${ShareFile})
-     install(FILES share/scan-build/${ShareFile}
--            DESTINATION share/scan-build
-+            DESTINATION ${CMAKE_INSTALL_DATADIR}/scan-build
-             COMPONENT scan-build)
-   endforeach()
- 
-diff --git a/tools/scan-view/CMakeLists.txt b/tools/scan-view/CMakeLists.txt
-index 22edb974bac7..9f140a9a4538 100644
---- a/tools/scan-view/CMakeLists.txt
-+++ b/tools/scan-view/CMakeLists.txt
-@@ -22,7 +22,7 @@ if(CLANG_INSTALL_SCANVIEW)
-                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
-     list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
-     install(PROGRAMS bin/${BinFile}
--            DESTINATION bin
-+            DESTINATION ${CMAKE_INSTALL_BINDIR}
-             COMPONENT scan-view)
-   endforeach()
- 
-@@ -36,7 +36,7 @@ if(CLANG_INSTALL_SCANVIEW)
-                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/${ShareFile})
-     list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-view/${ShareFile})
-     install(FILES share/${ShareFile}
--            DESTINATION share/scan-view
-+            DESTINATION ${CMAKE_INSTALL_DATADIR}/scan-view
-             COMPONENT scan-view)
-   endforeach()
- 
-diff --git a/utils/hmaptool/CMakeLists.txt b/utils/hmaptool/CMakeLists.txt
-index 62f2de0cb15c..6aa66825b6ec 100644
---- a/utils/hmaptool/CMakeLists.txt
-+++ b/utils/hmaptool/CMakeLists.txt
-@@ -10,7 +10,7 @@ add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HM
- 
- list(APPEND Depends ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HMAPTOOL})
- install(PROGRAMS ${CLANG_HMAPTOOL}
--        DESTINATION bin
-+        DESTINATION ${CMAKE_INSTALL_BINDIR}
-         COMPONENT hmaptool)
- 
- add_custom_target(hmaptool ALL DEPENDS ${Depends})
diff --git a/pkgs/development/compilers/llvm/10/clang/purity.patch b/pkgs/development/compilers/llvm/10/clang/purity.patch
deleted file mode 100644
index a6729a9b004e..000000000000
--- a/pkgs/development/compilers/llvm/10/clang/purity.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 4add81bba40dcec62c4ea4481be8e35ac53e89d8 Mon Sep 17 00:00:00 2001
-From: Will Dietz <w@wdtz.org>
-Date: Thu, 18 May 2017 11:56:12 -0500
-Subject: [PATCH] "purity" patch for 5.0
-
----
- lib/Driver/ToolChains/Gnu.cpp | 7 -------
- 1 file changed, 7 deletions(-)
-
-diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp
-index fe3c0191bb..c6a482bece 100644
---- a/lib/Driver/ToolChains/Gnu.cpp
-+++ b/lib/Driver/ToolChains/Gnu.cpp
-@@ -494,13 +494,6 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
-   if (!IsStatic) {
-     if (Args.hasArg(options::OPT_rdynamic))
-       CmdArgs.push_back("-export-dynamic");
--
--    if (!Args.hasArg(options::OPT_shared) && !IsStaticPIE) {
--      const std::string Loader =
--          D.DyldPrefix + ToolChain.getDynamicLinker(Args);
--      CmdArgs.push_back("-dynamic-linker");
--      CmdArgs.push_back(Args.MakeArgString(Loader));
--    }
-   }
- 
-   CmdArgs.push_back("-o");
--- 
-2.11.0
-
diff --git a/pkgs/development/compilers/llvm/10/compiler-rt/X86-support-extension.patch b/pkgs/development/compilers/llvm/10/compiler-rt/X86-support-extension.patch
deleted file mode 100644
index f6f9336ad5ad..000000000000
--- a/pkgs/development/compilers/llvm/10/compiler-rt/X86-support-extension.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff --git a/lib/builtins/CMakeLists.txt b/lib/builtins/CMakeLists.txt
-index 3a66dd9c3fb..7efc85d9f9f 100644
---- a/lib/builtins/CMakeLists.txt
-+++ b/lib/builtins/CMakeLists.txt
-@@ -301,6 +301,10 @@ if (NOT MSVC)
-     i386/umoddi3.S
-   )
- 
-+  set(i486_SOURCES ${i386_SOURCES})
-+  set(i586_SOURCES ${i386_SOURCES})
-+  set(i686_SOURCES ${i386_SOURCES})
-+
-   if (WIN32)
-     set(i386_SOURCES
-       ${i386_SOURCES}
-@@ -608,6 +612,7 @@ else ()
-   endif()
- 
-   foreach (arch ${BUILTIN_SUPPORTED_ARCH})
-+      message("arch: ${arch}")
-     if (CAN_TARGET_${arch})
-       # For ARM archs, exclude any VFP builtins if VFP is not supported
-       if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
diff --git a/pkgs/development/compilers/llvm/10/compiler-rt/armv7l.patch b/pkgs/development/compilers/llvm/10/compiler-rt/armv7l.patch
deleted file mode 100644
index 120cfe6feb2a..000000000000
--- a/pkgs/development/compilers/llvm/10/compiler-rt/armv7l.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-diff -ur compiler-rt-10.0.0.src/cmake/builtin-config-ix.cmake compiler-rt-10.0.0.src-patched/cmake/builtin-config-ix.cmake
---- compiler-rt-10.0.0.src/cmake/builtin-config-ix.cmake	2020-03-24 00:01:02.000000000 +0900
-+++ compiler-rt-10.0.0.src-patched/cmake/builtin-config-ix.cmake	2020-05-10 03:42:00.883450706 +0900
-@@ -24,7 +24,7 @@
- 
- 
- set(ARM64 aarch64)
--set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k)
-+set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k armv7l)
- set(HEXAGON hexagon)
- set(X86 i386)
- set(X86_64 x86_64)
-diff -ur compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt compiler-rt-10.0.0.src-patched/lib/builtins/CMakeLists.txt
---- compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt	2020-03-24 00:01:02.000000000 +0900
-+++ compiler-rt-10.0.0.src-patched/lib/builtins/CMakeLists.txt	2020-05-10 03:44:49.468579650 +0900
-@@ -474,6 +474,7 @@
- set(armv7_SOURCES ${arm_SOURCES})
- set(armv7s_SOURCES ${arm_SOURCES})
- set(armv7k_SOURCES ${arm_SOURCES})
-+set(armv7l_SOURCES ${arm_SOURCES})
- set(arm64_SOURCES ${aarch64_SOURCES})
- 
- # macho_embedded archs
-@@ -595,7 +596,7 @@
-   foreach (arch ${BUILTIN_SUPPORTED_ARCH})
-     if (CAN_TARGET_${arch})
-       # For ARM archs, exclude any VFP builtins if VFP is not supported
--      if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
-+      if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7l|armv7m|armv7em)$")
-         string(REPLACE ";" " " _TARGET_${arch}_CFLAGS "${TARGET_${arch}_CFLAGS}")
-         check_compile_definition(__VFP_FP__ "${CMAKE_C_FLAGS} ${_TARGET_${arch}_CFLAGS}" COMPILER_RT_HAS_${arch}_VFP)
-         if(NOT COMPILER_RT_HAS_${arch}_VFP)
diff --git a/pkgs/development/compilers/llvm/10/compiler-rt/default.nix b/pkgs/development/compilers/llvm/10/compiler-rt/default.nix
deleted file mode 100644
index 3702509d7756..000000000000
--- a/pkgs/development/compilers/llvm/10/compiler-rt/default.nix
+++ /dev/null
@@ -1,131 +0,0 @@
-{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, libllvm, libcxxabi, libxcrypt
-, doFakeLibgcc ? stdenv.hostPlatform.isFreeBSD
-}:
-
-let
-
-  useLLVM = stdenv.hostPlatform.useLLVM or false;
-  bareMetal = stdenv.hostPlatform.parsed.kernel.name == "none";
-  haveLibc = stdenv.cc.libc != null;
-  inherit (stdenv.hostPlatform) isMusl;
-
-in
-
-stdenv.mkDerivation {
-  pname = "compiler-rt" + lib.optionalString (haveLibc) "-libc";
-  inherit version;
-  src = fetch "compiler-rt" "1yjqjri753w0fzmxcyz687nvd97sbc9rsqrxzpq720na47hwh3fr";
-
-  nativeBuildInputs = [ cmake python3 libllvm.dev ];
-  buildInputs = lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
-
-  env.NIX_CFLAGS_COMPILE = toString [
-    "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0"
-  ];
-
-  cmakeFlags = [
-    "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON"
-    "-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}"
-    "-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}"
-  ] ++ lib.optionals (haveLibc && stdenv.hostPlatform.isGnu) [
-    "-DSANITIZER_COMMON_CFLAGS=-I${libxcrypt}/include"
-  ] ++ lib.optionals (useLLVM || bareMetal || isMusl) [
-    "-DCOMPILER_RT_BUILD_SANITIZERS=OFF"
-    "-DCOMPILER_RT_BUILD_XRAY=OFF"
-    "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF"
-  ] ++ lib.optionals (useLLVM || bareMetal) [
-    "-DCOMPILER_RT_BUILD_PROFILE=OFF"
-  ] ++ lib.optionals ((useLLVM || bareMetal) && !haveLibc) [
-    "-DCMAKE_C_COMPILER_WORKS=ON"
-    "-DCMAKE_CXX_COMPILER_WORKS=ON"
-    "-DCOMPILER_RT_BAREMETAL_BUILD=ON"
-    "-DCMAKE_SIZEOF_VOID_P=${toString (stdenv.hostPlatform.parsed.cpu.bits / 8)}"
-  ] ++ lib.optionals (useLLVM) [
-    "-DCOMPILER_RT_BUILD_BUILTINS=ON"
-    #https://stackoverflow.com/questions/53633705/cmake-the-c-compiler-is-not-able-to-compile-a-simple-test-program
-    "-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY"
-  ] ++ lib.optionals (bareMetal) [
-    "-DCOMPILER_RT_OS_DIR=baremetal"
-  ] ++ lib.optionals (stdenv.hostPlatform.isDarwin) [
-    "-DDARWIN_macosx_OVERRIDE_SDK_VERSION=ON"
-    "-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.darwinArch}"
-    "-DDARWIN_osx_BUILTIN_ARCHS=${stdenv.hostPlatform.darwinArch}"
-  ];
-
-  outputs = [ "out" "dev" ];
-
-  patches = [
-    ../../common/compiler-rt/7-12-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
-    ./find-darwin-sdk-version.patch # don't test for macOS being >= 10.15
-    ./gnu-install-dirs.patch
-    ../../common/compiler-rt/libsanitizer-no-cyclades-11.patch
-    ./X86-support-extension.patch # backported from LLVM 11
-    # Fix build on armv6l
-    ../../common/compiler-rt/armv6-mcr-dmb.patch
-    ../../common/compiler-rt/armv6-sync-ops-no-thumb.patch
-    ../../common/compiler-rt/armv6-no-ldrexd-strexd.patch
-  ] ++ lib.optional stdenv.hostPlatform.isAarch32 ./armv7l.patch;
-
-  # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks
-  # to get it, but they're unfree. Since LLVM is rather central to the stdenv, we patch out TSAN support so that Hydra
-  # can build this. If we didn't do it, basically the entire nixpkgs on Darwin would have an unfree dependency and we'd
-  # get no binary cache for the entire platform. If you really find yourself wanting the TSAN, make this controllable by
-  # a flag and turn the flag off during the stdenv build.
-  postPatch = lib.optionalString (!stdenv.isDarwin) ''
-    substituteInPlace cmake/builtin-config-ix.cmake \
-      --replace 'set(X86 i386)' 'set(X86 i386 i486 i586 i686)'
-    substituteInPlace cmake/config-ix.cmake \
-      --replace 'set(X86 i386)' 'set(X86 i386 i486 i586 i686)'
-  '' + lib.optionalString stdenv.isDarwin ''
-    substituteInPlace cmake/config-ix.cmake \
-      --replace 'set(COMPILER_RT_HAS_TSAN TRUE)' 'set(COMPILER_RT_HAS_TSAN FALSE)'
-  '' + lib.optionalString (useLLVM) ''
-    substituteInPlace lib/builtins/int_util.c \
-      --replace "#include <stdlib.h>" ""
-    substituteInPlace lib/builtins/clear_cache.c \
-      --replace "#include <assert.h>" ""
-    substituteInPlace lib/builtins/cpu_model.c \
-      --replace "#include <assert.h>" ""
-  '';
-
-  preConfigure = lib.optionalString (useLLVM && !haveLibc) ''
-    cmakeFlagsArray+=(-DCMAKE_C_FLAGS="-nodefaultlibs -ffreestanding")
-  '';
-
-  # Hack around weird upsream RPATH bug
-  postInstall = lib.optionalString (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isWasm) ''
-    ln -s "$out/lib"/*/* "$out/lib"
-  '' + lib.optionalString (useLLVM) ''
-    ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/crtbegin.o
-    ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtend.o
-    ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/crtbeginS.o
-    ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtendS.o
-    ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/crtbeginS.o
-    ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/crtendS.o
-  ''
-  # See https://reviews.llvm.org/D37278 for why android exception
-  + lib.optionalString (stdenv.hostPlatform.isx86_32 && !stdenv.hostPlatform.isAndroid) ''
-    for f in $out/lib/*/*builtins-i?86*; do
-      ln -s "$f" $(echo "$f" | sed -e 's/builtins-i.86/builtins-i386/')
-    done
-  '' + lib.optionalString doFakeLibgcc ''
-    ln -s $out/lib/freebsd/libclang_rt.builtins-*.a $out/lib/libgcc.a
-  '';
-
-  meta = llvm_meta // {
-    homepage = "https://compiler-rt.llvm.org/";
-    description = "Compiler runtime libraries";
-    longDescription = ''
-      The compiler-rt project provides highly tuned implementations of the
-      low-level code generator support routines like "__fixunsdfdi" and other
-      calls generated when a target doesn't have a short sequence of native
-      instructions to implement a core IR operation. It also provides
-      implementations of run-time libraries for dynamic testing tools such as
-      AddressSanitizer, ThreadSanitizer, MemorySanitizer, and DataFlowSanitizer.
-    '';
-    # "All of the code in the compiler-rt project is dual licensed under the MIT
-    # license and the UIUC License (a BSD-like license)":
-    license = with lib.licenses; [ mit ncsa ];
-    broken = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64;
-  };
-}
diff --git a/pkgs/development/compilers/llvm/10/compiler-rt/find-darwin-sdk-version.patch b/pkgs/development/compilers/llvm/10/compiler-rt/find-darwin-sdk-version.patch
deleted file mode 100644
index fc16ddda76b7..000000000000
--- a/pkgs/development/compilers/llvm/10/compiler-rt/find-darwin-sdk-version.patch
+++ /dev/null
@@ -1,62 +0,0 @@
---- a/cmake/Modules/CompilerRTDarwinUtils.cmake	2020-01-25 23:13:55.000000000 +0100
-+++ b/cmake/Modules/CompilerRTDarwinUtils.cmake	2020-01-25 23:19:37.000000000 +0100
-@@ -43,41 +43,6 @@
-   set(DARWIN_${sdk_name}_CACHED_SYSROOT ${var_internal} CACHE STRING "Darwin SDK path for SDK ${sdk_name}." FORCE)
- endfunction()
- 
--function(find_darwin_sdk_version var sdk_name)
--  # We deliberately don't cache the result here because
--  # CMake's caching causes too many problems.
--  set(result_process 1)
--  if(NOT DARWIN_PREFER_PUBLIC_SDK)
--    # Let's first try the internal SDK, otherwise use the public SDK.
--    execute_process(
--      COMMAND xcrun --sdk ${sdk_name}.internal --show-sdk-version
--      RESULT_VARIABLE result_process
--      OUTPUT_VARIABLE var_internal
--      OUTPUT_STRIP_TRAILING_WHITESPACE
--      ERROR_FILE /dev/null
--    )
--  endif()
--  if((NOT ${result_process} EQUAL 0) OR "" STREQUAL "${var_internal}")
--    execute_process(
--      COMMAND xcrun --sdk ${sdk_name} --show-sdk-version
--      RESULT_VARIABLE result_process
--      OUTPUT_VARIABLE var_internal
--      OUTPUT_STRIP_TRAILING_WHITESPACE
--      ERROR_FILE /dev/null
--    )
--  endif()
--  if(NOT result_process EQUAL 0)
--    message(FATAL_ERROR
--      "Failed to determine SDK version for \"${sdk_name}\" SDK")
--  endif()
--  # Check reported version looks sane.
--  if (NOT "${var_internal}" MATCHES "^[0-9]+\\.[0-9]+(\\.[0-9]+)?$")
--    message(FATAL_ERROR
--      "Reported SDK version \"${var_internal}\" does not look like a version")
--  endif()
--  set(${var} ${var_internal} PARENT_SCOPE)
--endfunction()
--
- # There isn't a clear mapping of what architectures are supported with a given
- # target platform, but ld's version output does list the architectures it can
- # link for.
-@@ -119,17 +84,6 @@
-     foreach(flag ${DARWIN_${os}_LINK_FLAGS})
-       set(os_linker_flags "${os_linker_flags} ${flag}")
-     endforeach()
--
--    # Disable building for i386 for macOS SDK >= 10.15. The SDK doesn't support
--    # linking for i386 and the corresponding OS doesn't allow running macOS i386
--    # binaries.
--    if ("${os}" STREQUAL "osx")
--      find_darwin_sdk_version(macosx_sdk_version "macosx")
--      if ("${macosx_sdk_version}" VERSION_GREATER 10.15 OR "${macosx_sdk_version}" VERSION_EQUAL 10.15)
--        message(STATUS "Disabling i386 slice for ${valid_archs}")
--        list(REMOVE_ITEM archs "i386")
--      endif()
--    endif()
-   endif()
- 
-   # The simple program will build for x86_64h on the simulator because it is 
diff --git a/pkgs/development/compilers/llvm/10/compiler-rt/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/10/compiler-rt/gnu-install-dirs.patch
deleted file mode 100644
index db0bd006eaf2..000000000000
--- a/pkgs/development/compilers/llvm/10/compiler-rt/gnu-install-dirs.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 8d768a404f21..74551dc5a004 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -12,6 +12,7 @@ endif()
- # Check if compiler-rt is built as a standalone project.
- if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR COMPILER_RT_STANDALONE_BUILD)
-   project(CompilerRT C CXX ASM)
-+  include(GNUInstallDirs)
-   set(COMPILER_RT_STANDALONE_BUILD TRUE)
-   set_property(GLOBAL PROPERTY USE_FOLDERS ON)
- endif()
-diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake
-index 35a48c6af29c..e4300f256091 100644
---- a/cmake/Modules/AddCompilerRT.cmake
-+++ b/cmake/Modules/AddCompilerRT.cmake
-@@ -493,7 +493,7 @@ macro(add_compiler_rt_resource_file target_name file_name component)
-   add_custom_target(${target_name} DEPENDS ${dst_file})
-   # Install in Clang resource directory.
-   install(FILES ${file_name}
--    DESTINATION ${COMPILER_RT_INSTALL_PATH}/share
-+    DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_DATADIR}
-     COMPONENT ${component})
-   add_dependencies(${component} ${target_name})
- 
-@@ -510,7 +510,7 @@ macro(add_compiler_rt_script name)
-   add_custom_target(${name} DEPENDS ${dst})
-   install(FILES ${dst}
-     PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
--    DESTINATION ${COMPILER_RT_INSTALL_PATH}/bin)
-+    DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_BINDIR})
- endmacro(add_compiler_rt_script src name)
- 
- # Builds custom version of libc++ and installs it in <prefix>.
-diff --git a/cmake/Modules/CompilerRTDarwinUtils.cmake b/cmake/Modules/CompilerRTDarwinUtils.cmake
-index 9f501a61c4b6..f9a0d92dbca0 100644
---- a/cmake/Modules/CompilerRTDarwinUtils.cmake
-+++ b/cmake/Modules/CompilerRTDarwinUtils.cmake
-@@ -440,7 +440,7 @@ macro(darwin_add_embedded_builtin_libraries)
-     set(DARWIN_macho_embedded_LIBRARY_OUTPUT_DIR
-       ${COMPILER_RT_OUTPUT_DIR}/lib/macho_embedded)
-     set(DARWIN_macho_embedded_LIBRARY_INSTALL_DIR
--      ${COMPILER_RT_INSTALL_PATH}/lib/macho_embedded)
-+      ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/macho_embedded)
-       
-     set(CFLAGS_armv7 "-target thumbv7-apple-darwin-eabi")
-     set(CFLAGS_i386 "-march=pentium")
-diff --git a/cmake/Modules/CompilerRTUtils.cmake b/cmake/Modules/CompilerRTUtils.cmake
-index 6e672b1e1818..64999709958e 100644
---- a/cmake/Modules/CompilerRTUtils.cmake
-+++ b/cmake/Modules/CompilerRTUtils.cmake
-@@ -371,7 +371,7 @@ endfunction()
- function(get_compiler_rt_install_dir arch install_dir)
-   if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
-     get_compiler_rt_target(${arch} target)
--    set(${install_dir} ${COMPILER_RT_INSTALL_PATH}/lib/${target} PARENT_SCOPE)
-+    set(${install_dir} ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/${target} PARENT_SCOPE)
-   else()
-     set(${install_dir} ${COMPILER_RT_LIBRARY_INSTALL_DIR} PARENT_SCOPE)
-   endif()
-diff --git a/cmake/base-config-ix.cmake b/cmake/base-config-ix.cmake
-index b4b87aa53073..f1ae8668837c 100644
---- a/cmake/base-config-ix.cmake
-+++ b/cmake/base-config-ix.cmake
-@@ -65,11 +65,11 @@ if (LLVM_TREE_AVAILABLE)
- else()
-     # Take output dir and install path from the user.
-   set(COMPILER_RT_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR} CACHE PATH
--    "Path where built compiler-rt libraries should be stored.")
-+    "Path where built compiler-rt build artifacts should be stored.")
-   set(COMPILER_RT_EXEC_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/bin CACHE PATH
-     "Path where built compiler-rt executables should be stored.")
--  set(COMPILER_RT_INSTALL_PATH ${CMAKE_INSTALL_PREFIX} CACHE PATH
--    "Path where built compiler-rt libraries should be installed.")
-+  set(COMPILER_RT_INSTALL_PATH "" CACHE PATH
-+    "Prefix where built compiler-rt artifacts should be installed, comes before CMAKE_INSTALL_PREFIX.")
-   option(COMPILER_RT_INCLUDE_TESTS "Generate and build compiler-rt unit tests." OFF)
-   option(COMPILER_RT_ENABLE_WERROR "Fail and stop if warning is triggered" OFF)
-   # Use a host compiler to compile/link tests.
-@@ -97,7 +97,7 @@ else(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR)
-   set(COMPILER_RT_LIBRARY_OUTPUT_DIR
-     ${COMPILER_RT_OUTPUT_DIR}/lib/${COMPILER_RT_OS_DIR})
-   set(COMPILER_RT_LIBRARY_INSTALL_DIR
--    ${COMPILER_RT_INSTALL_PATH}/lib/${COMPILER_RT_OS_DIR})
-+    ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/${COMPILER_RT_OS_DIR})
- endif()
- 
- if(APPLE)
-diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
-index d47d7baeb118..507c8e5c713e 100644
---- a/include/CMakeLists.txt
-+++ b/include/CMakeLists.txt
-@@ -62,22 +62,22 @@ set_target_properties(compiler-rt-headers PROPERTIES FOLDER "Compiler-RT Misc")
- install(FILES ${SANITIZER_HEADERS}
-   COMPONENT compiler-rt-headers
-   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
--  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/sanitizer)
-+  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/sanitizer)
- # Install fuzzer headers.
- install(FILES ${FUZZER_HEADERS}
-   COMPONENT compiler-rt-headers
-   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
--  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/fuzzer)
-+  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/fuzzer)
- # Install xray headers.
- install(FILES ${XRAY_HEADERS}
-   COMPONENT compiler-rt-headers
-   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
--  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/xray)
-+  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/xray)
- # Install profile headers.
- install(FILES ${PROFILE_HEADERS}
-   COMPONENT compiler-rt-headers
-   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
--  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/profile)
-+  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/profile)
- 
- if (NOT CMAKE_CONFIGURATION_TYPES) # don't add this for IDEs.
-   add_custom_target(install-compiler-rt-headers
-diff --git a/lib/dfsan/CMakeLists.txt b/lib/dfsan/CMakeLists.txt
-index 051215edbeb7..ecce1f52efb0 100644
---- a/lib/dfsan/CMakeLists.txt
-+++ b/lib/dfsan/CMakeLists.txt
-@@ -56,4 +56,4 @@ add_custom_command(OUTPUT ${dfsan_abilist_filename}
-                    DEPENDS done_abilist.txt libc_ubuntu1404_abilist.txt)
- add_dependencies(dfsan dfsan_abilist)
- install(FILES ${dfsan_abilist_filename}
--        DESTINATION ${COMPILER_RT_INSTALL_PATH}/share)
-+        DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_DATADIR})
diff --git a/pkgs/development/compilers/llvm/10/default.nix b/pkgs/development/compilers/llvm/10/default.nix
deleted file mode 100644
index bc72be0ce7a1..000000000000
--- a/pkgs/development/compilers/llvm/10/default.nix
+++ /dev/null
@@ -1,269 +0,0 @@
-{ lowPrio, newScope, pkgs, lib, stdenv, cmake
-, preLibcCrossHeaders
-, libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith
-, buildLlvmTools # tools, but from the previous stage, for cross
-, targetLlvmLibraries # libraries, but from the next stage, for cross
-, targetLlvm
-# This is the default binutils, but with *this* version of LLD rather
-# than the default LLVM version's, if LLD is the choice. We use these for
-# the `useLLVM` bootstrapping below.
-, bootBintoolsNoLibc ?
-    if stdenv.targetPlatform.linker == "lld"
-    then null
-    else pkgs.bintoolsNoLibc
-, bootBintools ?
-    if stdenv.targetPlatform.linker == "lld"
-    then null
-    else pkgs.bintools
-}:
-
-let
-  release_version = "10.0.1";
-  version = release_version; # differentiating these (variables) is important for RCs
-
-  fetch = name: sha256: fetchurl {
-    url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${release_version}/${name}-${version}.src.tar.xz";
-    inherit sha256;
-  };
-
-  clang-tools-extra_src = fetch "clang-tools-extra" "06n1yp638rh24xdxv9v2df0qajxbjz4w59b7dd4ky36drwmpi4yh";
-
-  inherit (import ../common/common-let.nix { inherit lib release_version; }) llvm_meta;
-
-  tools = lib.makeExtensible (tools: let
-    callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch buildLlvmTools; });
-    mkExtraBuildCommands0 = cc: ''
-      rsrc="$out/resource-root"
-      mkdir "$rsrc"
-      ln -s "${cc.lib}/lib/clang/${release_version}/include" "$rsrc"
-      echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
-    '';
-    mkExtraBuildCommands = cc: mkExtraBuildCommands0 cc + ''
-      ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
-      ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share"
-    '';
-
-  bintoolsNoLibc' =
-    if bootBintoolsNoLibc == null
-    then tools.bintoolsNoLibc
-    else bootBintoolsNoLibc;
-  bintools' =
-    if bootBintools == null
-    then tools.bintools
-    else bootBintools;
-
-  in {
-
-    libllvm = callPackage ./llvm {
-      inherit llvm_meta;
-    };
-
-    # `llvm` historically had the binaries.  When choosing an output explicitly,
-    # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get*
-    llvm = tools.libllvm;
-
-    libclang = callPackage ./clang {
-      inherit clang-tools-extra_src llvm_meta;
-    };
-
-    clang-unwrapped = tools.libclang;
-
-    # disabled until recommonmark supports sphinx 3
-    #Llvm-manpages = lowPrio (tools.libllvm.override {
-    #  enableManpages = true;
-    #  python3 = pkgs.python3;  # don't use python-boot
-    #});
-
-    clang-manpages = lowPrio (tools.libclang.override {
-      enableManpages = true;
-      python3 = pkgs.python3;  # don't use python-boot
-    });
-
-    # disabled until recommonmark supports sphinx 3
-    # lldb-manpages = lowPrio (tools.lldb.override {
-    #   enableManpages = true;
-    #   python3 = pkgs.python3;  # don't use python-boot
-    # });
-
-    # pick clang appropriate for package set we are targeting
-    clang =
-      /**/ if stdenv.targetPlatform.libc == null then tools.clangNoLibc
-      else if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM
-      else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang
-      else tools.libcxxClang;
-
-    libstdcxxClang = wrapCCWith rec {
-      cc = tools.clang-unwrapped;
-      # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper.
-      libcxx = null;
-      extraPackages = [
-        targetLlvmLibraries.compiler-rt
-      ];
-      extraBuildCommands = mkExtraBuildCommands cc;
-    };
-
-    libcxxClang = wrapCCWith rec {
-      cc = tools.clang-unwrapped;
-      libcxx = targetLlvmLibraries.libcxx;
-      extraPackages = [
-        libcxx.cxxabi
-        targetLlvmLibraries.compiler-rt
-      ];
-      extraBuildCommands = mkExtraBuildCommands cc;
-    };
-
-    lld = callPackage ./lld {
-      inherit llvm_meta;
-    };
-
-    lldb = callPackage ../common/lldb.nix {
-      src = fetch "lldb" "051p5b04y6z3g730rmc2n2v71lipbw7k69riww3a6sl74myfiaq7";
-      patches = [
-        ./lldb/procfs.patch
-        ./lldb/gnu-install-dirs.patch
-      ];
-      inherit llvm_meta;
-    };
-
-    # Below, is the LLVM bootstrapping logic. It handles building a
-    # fully LLVM toolchain from scratch. No GCC toolchain should be
-    # pulled in. As a consequence, it is very quick to build different
-    # targets provided by LLVM and we can also build for what GCC
-    # doesn’t support like LLVM. Probably we should move to some other
-    # file.
-
-    bintools-unwrapped = callPackage ../common/bintools.nix { };
-
-    bintoolsNoLibc = wrapBintoolsWith {
-      bintools = tools.bintools-unwrapped;
-      libc = preLibcCrossHeaders;
-    };
-
-    bintools = wrapBintoolsWith {
-      bintools = tools.bintools-unwrapped;
-    };
-
-    clangUseLLVM = wrapCCWith rec {
-      cc = tools.clang-unwrapped;
-      libcxx = targetLlvmLibraries.libcxx;
-      bintools = bintools';
-      extraPackages = [
-        libcxx.cxxabi
-        targetLlvmLibraries.compiler-rt
-      ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [
-        targetLlvmLibraries.libunwind
-      ];
-      extraBuildCommands = ''
-        echo "-rtlib=compiler-rt -Wno-unused-command-line-argument" >> $out/nix-support/cc-cflags
-        echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
-      '' + lib.optionalString (!stdenv.targetPlatform.isWasm) ''
-        echo "--unwindlib=libunwind" >> $out/nix-support/cc-cflags
-      '' + lib.optionalString (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) ''
-        echo "-lunwind" >> $out/nix-support/cc-ldflags
-      '' + lib.optionalString stdenv.targetPlatform.isWasm ''
-        echo "-fno-exceptions" >> $out/nix-support/cc-cflags
-      '' + mkExtraBuildCommands cc;
-    };
-
-    clangNoLibcxx = wrapCCWith rec {
-      cc = tools.clang-unwrapped;
-      libcxx = null;
-      bintools = bintools';
-      extraPackages = [
-        targetLlvmLibraries.compiler-rt
-      ];
-      extraBuildCommands = ''
-        echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags
-        echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
-        echo "-nostdlib++" >> $out/nix-support/cc-cflags
-      '' + mkExtraBuildCommands cc;
-    };
-
-    clangNoLibc = wrapCCWith rec {
-      cc = tools.clang-unwrapped;
-      libcxx = null;
-      bintools = bintoolsNoLibc';
-      extraPackages = [
-        targetLlvmLibraries.compiler-rt
-      ];
-      extraBuildCommands = ''
-        echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags
-        echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
-      '' + mkExtraBuildCommands cc;
-    };
-
-    clangNoCompilerRt = wrapCCWith rec {
-      cc = tools.clang-unwrapped;
-      libcxx = null;
-      bintools = bintoolsNoLibc';
-      extraPackages = [ ];
-      extraBuildCommands = ''
-        echo "-nostartfiles" >> $out/nix-support/cc-cflags
-      '' + mkExtraBuildCommands0 cc;
-    };
-
-    clangNoCompilerRtWithLibc = wrapCCWith rec {
-      cc = tools.clang-unwrapped;
-      libcxx = null;
-      bintools = bintools';
-      extraPackages = [ ];
-      extraBuildCommands = mkExtraBuildCommands0 cc;
-    };
-
-  });
-
-  libraries = lib.makeExtensible (libraries: let
-    callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
-  in {
-
-    compiler-rt-libc = callPackage ./compiler-rt {
-      inherit llvm_meta;
-      stdenv = if stdenv.hostPlatform.useLLVM or false
-               then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc
-               else stdenv;
-    };
-
-    compiler-rt-no-libc = callPackage ./compiler-rt {
-      inherit llvm_meta;
-      stdenv = if stdenv.hostPlatform.useLLVM or false
-               then overrideCC stdenv buildLlvmTools.clangNoCompilerRt
-               else stdenv;
-    };
-
-    # N.B. condition is safe because without useLLVM both are the same.
-    compiler-rt = if stdenv.hostPlatform.isAndroid
-      then libraries.compiler-rt-libc
-      else libraries.compiler-rt-no-libc;
-
-    stdenv = overrideCC stdenv buildLlvmTools.clang;
-
-    libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang;
-
-    libcxx = callPackage ./libcxx {
-      inherit llvm_meta;
-      stdenv = if stdenv.hostPlatform.useLLVM or false
-               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
-               else stdenv;
-    };
-
-    libcxxabi = callPackage ./libcxxabi {
-      inherit llvm_meta;
-      stdenv = if stdenv.hostPlatform.useLLVM or false
-               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
-               else stdenv;
-    };
-
-    libunwind = callPackage ./libunwind {
-      inherit llvm_meta;
-      stdenv = if stdenv.hostPlatform.useLLVM or false
-               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
-               else stdenv;
-    };
-
-    openmp = callPackage ./openmp {
-      inherit llvm_meta targetLlvm;
-    };
-  });
-  noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ];
-
-in { inherit tools libraries release_version; } // (noExtend libraries) // (noExtend tools)
diff --git a/pkgs/development/compilers/llvm/10/libcxx/default.nix b/pkgs/development/compilers/llvm/10/libcxx/default.nix
deleted file mode 100644
index cc029ea657cd..000000000000
--- a/pkgs/development/compilers/llvm/10/libcxx/default.nix
+++ /dev/null
@@ -1,88 +0,0 @@
-{ lib, stdenv, llvm_meta, fetch, cmake, python3, fixDarwinDylibNames, version
-, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else libcxxabi
-, libcxxabi, libcxxrt
-, enableShared ? !stdenv.hostPlatform.isStatic
-}:
-
-assert stdenv.isDarwin -> cxxabi.pname == "libcxxabi";
-
-stdenv.mkDerivation {
-  pname = "libcxx";
-  inherit version;
-
-  src = fetch "libcxx" "0v78bfr6h2zifvdqnj2wlfk4pvxzrqn3hg1v6lqk3y12bx9p9xny";
-
-  postUnpack = ''
-    unpackFile ${libcxxabi.src}
-    export LIBCXXABI_INCLUDE_DIR="$PWD/$(ls -d libcxxabi-${version}*)/include"
-  '';
-
-  outputs = [ "out" "dev" ];
-
-  patches = [
-    ./gnu-install-dirs.patch
-  ] ++ lib.optionals stdenv.hostPlatform.isMusl [
-    ../../libcxx-0001-musl-hacks.patch
-  ];
-
-  # Prevent errors like "error: 'foo' is unavailable: introduced in macOS yy.zz"
-  postPatch = ''
-    substituteInPlace include/__config \
-      --replace "#    define _LIBCPP_USE_AVAILABILITY_APPLE" ""
-  '';
-
-  preConfigure = ''
-    # Get headers from the cxxabi source so we can see private headers not installed by the cxxabi package
-    cmakeFlagsArray=($cmakeFlagsArray -DLIBCXX_CXX_ABI_INCLUDE_PATHS="$LIBCXXABI_INCLUDE_DIR")
-  '' + lib.optionalString stdenv.hostPlatform.isMusl ''
-    patchShebangs utils/cat_files.py
-  '';
-  nativeBuildInputs = [ cmake ]
-    ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) python3
-    ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
-
-  buildInputs = [ cxxabi ];
-
-  cmakeFlags = [
-    "-DLIBCXX_LIBCPPABI_VERSION=2"
-    "-DLIBCXX_CXX_ABI=${cxxabi.pname}"
-  ] ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1"
-    ++ lib.optional (cxxabi.pname == "libcxxabi") "-DLIBCXX_LIBCXXABI_LIB_PATH=${cxxabi}/lib"
-    ++ lib.optional (stdenv.hostPlatform.useLLVM or false) "-DLIBCXX_USE_COMPILER_RT=ON"
-    ++ lib.optionals stdenv.hostPlatform.isWasm [
-      "-DLIBCXX_ENABLE_THREADS=OFF"
-      "-DLIBCXX_ENABLE_FILESYSTEM=OFF"
-      "-DLIBCXX_ENABLE_EXCEPTIONS=OFF"
-    ] ++ lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF";
-
-  preInstall = lib.optionalString (stdenv.isDarwin) ''
-    for file in lib/*.dylib; do
-      if [ -L "$file" ]; then continue; fi
-
-      baseName=$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1))
-      installName="$out/lib/$baseName"
-      abiName=$(echo "$baseName" | sed -e 's/libc++/libc++abi/')
-
-      for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do
-        ${stdenv.cc.targetPrefix}install_name_tool -change $other ${cxxabi}/lib/$abiName $file
-      done
-    done
-  '';
-
-  passthru = {
-    isLLVM = true;
-    inherit cxxabi;
-  };
-
-  meta = llvm_meta // {
-    homepage = "https://libcxx.llvm.org/";
-    description = "C++ standard library";
-    longDescription = ''
-      libc++ is an implementation of the C++ standard library, targeting C++11,
-      C++14 and above.
-    '';
-    # "All of the code in libc++ is dual licensed under the MIT license and the
-    # UIUC License (a BSD-like license)":
-    license = with lib.licenses; [ mit ncsa ];
-  };
-}
diff --git a/pkgs/development/compilers/llvm/10/libcxx/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/10/libcxx/gnu-install-dirs.patch
deleted file mode 100644
index 4b031e90bdd5..000000000000
--- a/pkgs/development/compilers/llvm/10/libcxx/gnu-install-dirs.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 60564dc96c7b..77d832ad5a44 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -26,6 +26,8 @@ set(CMAKE_MODULE_PATH
- if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBCXX_STANDALONE_BUILD)
-   project(libcxx CXX C)
- 
-+  include(GNUInstallDirs)
-+
-   set(PACKAGE_NAME libcxx)
-   set(PACKAGE_VERSION 10.0.1)
-   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
-@@ -415,7 +417,7 @@ string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION
- if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
-   set(LIBCXX_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
-   set(LIBCXX_HEADER_DIR ${LLVM_BINARY_DIR})
--  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
-+  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
-   if(LIBCXX_LIBDIR_SUBDIR)
-     string(APPEND LIBCXX_LIBRARY_DIR /${LIBCXX_LIBDIR_SUBDIR})
-     string(APPEND LIBCXX_INSTALL_LIBRARY_DIR /${LIBCXX_LIBDIR_SUBDIR})
-@@ -423,10 +425,10 @@ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
- elseif(LLVM_LIBRARY_OUTPUT_INTDIR)
-   set(LIBCXX_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
-   set(LIBCXX_HEADER_DIR  ${LLVM_BINARY_DIR})
--  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LIBCXX_LIBDIR_SUFFIX})
-+  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX})
- else()
-   set(LIBCXX_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXX_LIBDIR_SUFFIX})
--  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LIBCXX_LIBDIR_SUFFIX})
-+  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX})
- endif()
- 
- file(MAKE_DIRECTORY "${LIBCXX_BINARY_INCLUDE_DIR}")
-diff --git a/cmake/Modules/HandleLibCXXABI.cmake b/cmake/Modules/HandleLibCXXABI.cmake
-index 10f100f7f0fb..95ed3978ab73 100644
---- a/cmake/Modules/HandleLibCXXABI.cmake
-+++ b/cmake/Modules/HandleLibCXXABI.cmake
-@@ -61,7 +61,7 @@ macro(setup_abi_lib abidefines abishared abistatic abifiles abidirs)
- 
-         if (LIBCXX_INSTALL_HEADERS)
-           install(FILES "${LIBCXX_BINARY_INCLUDE_DIR}/${fpath}"
--            DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1/${dstdir}
-+            DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1/${dstdir}
-             COMPONENT cxx-headers
-             PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
-             )
-diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
-index 302da8a131b4..4c6ab463f564 100644
---- a/include/CMakeLists.txt
-+++ b/include/CMakeLists.txt
-@@ -244,7 +244,7 @@ if (LIBCXX_INSTALL_HEADERS)
-   foreach(file ${files})
-     get_filename_component(dir ${file} DIRECTORY)
-     install(FILES ${file}
--      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1/${dir}
-+      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1/${dir}
-       COMPONENT ${CXX_HEADER_TARGET}
-       PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
-     )
-@@ -253,7 +253,7 @@ if (LIBCXX_INSTALL_HEADERS)
-   if (LIBCXX_NEEDS_SITE_CONFIG)
-     # Install the generated header as __config.
-     install(FILES ${LIBCXX_BINARY_DIR}/__generated_config
--      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1
-+      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1
-       PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
-       RENAME __config
-       COMPONENT ${CXX_HEADER_TARGET})
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 120505fe18da..9b8456d8405a 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -341,21 +341,21 @@ if (LIBCXX_INSTALL_LIBRARY)
-     install(TARGETS cxx_shared
-       ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
-       LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
--      RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}bin COMPONENT cxx)
-+      RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_BINDIR} COMPONENT cxx)
-   endif()
- 
-   if (LIBCXX_INSTALL_STATIC_LIBRARY)
-     install(TARGETS cxx_static
-       ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
-       LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
--      RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}bin COMPONENT cxx)
-+      RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_BINDIR} COMPONENT cxx)
-   endif()
- 
-   if(LIBCXX_INSTALL_EXPERIMENTAL_LIBRARY)
-     install(TARGETS ${LIBCXX_INSTALL_TARGETS} ${experimental_lib}
-       LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
-       ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
--      RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}bin COMPONENT cxx)
-+      RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_BINDIR} COMPONENT cxx)
-   endif()
- 
-   # NOTE: This install command must go after the cxx install command otherwise
diff --git a/pkgs/development/compilers/llvm/10/libcxxabi/default.nix b/pkgs/development/compilers/llvm/10/libcxxabi/default.nix
deleted file mode 100644
index c4eba56a6b81..000000000000
--- a/pkgs/development/compilers/llvm/10/libcxxabi/default.nix
+++ /dev/null
@@ -1,85 +0,0 @@
-{ lib, stdenv, llvm_meta, cmake, fetch, libcxx, libunwind, llvm, version
-, enableShared ? !stdenv.hostPlatform.isStatic
-}:
-
-stdenv.mkDerivation {
-  pname = "libcxxabi";
-  inherit version;
-
-  src = fetch "libcxxabi" "0yqs722y76cwvmfsq0lb917r9m3fci7bf5z3yzl71yz9n88ghzm9";
-
-  outputs = [ "out" "dev" ];
-
-  postUnpack = ''
-    unpackFile ${libcxx.src}
-    unpackFile ${llvm.src}
-    cmakeFlags+=" -DLLVM_PATH=$PWD/$(ls -d llvm-*) -DLIBCXXABI_LIBCXX_PATH=$PWD/$(ls -d libcxx-*)"
-  '' + lib.optionalString stdenv.isDarwin ''
-    export TRIPLE=x86_64-apple-darwin
-  '' + lib.optionalString stdenv.hostPlatform.isMusl ''
-    patch -p1 -d $(ls -d libcxx-*) -i ${../../libcxx-0001-musl-hacks.patch}
-  '' + lib.optionalString stdenv.hostPlatform.isWasm ''
-    patch -p1 -d $(ls -d llvm-*) -i ${../../common/libcxxabi/wasm.patch}
-  '';
-
-  patches = [
-    ../../common/libcxxabi/no-threads.patch
-    ./gnu-install-dirs.patch
-  ];
-
-  nativeBuildInputs = [ cmake ];
-  buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.hostPlatform.isWasm) libunwind;
-
-  cmakeFlags = lib.optionals (stdenv.hostPlatform.useLLVM or false) [
-    "-DLLVM_ENABLE_LIBCXX=ON"
-    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
-  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
-    "-DLIBCXXABI_ENABLE_THREADS=OFF"
-    "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
-  ] ++ lib.optionals (!enableShared) [
-    "-DLIBCXXABI_ENABLE_SHARED=OFF"
-  ];
-
-  preInstall = lib.optionalString stdenv.isDarwin ''
-    for file in lib/*.dylib; do
-      if [ -L "$file" ]; then continue; fi
-
-      # Fix up the install name. Preserve the basename, just replace the path.
-      installName="$out/lib/$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1))"
-
-      # this should be done in CMake, but having trouble figuring out
-      # the magic combination of necessary CMake variables
-      # if you fancy a try, take a look at
-      # https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling
-      ${stdenv.cc.targetPrefix}install_name_tool -id $installName $file
-
-      # cc-wrapper passes '-lc++abi' to all c++ link steps, but that causes
-      # libcxxabi to sometimes link against a different version of itself.
-      # Here we simply make that second reference point to ourselves.
-      for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do
-        ${stdenv.cc.targetPrefix}install_name_tool -change $other $installName $file
-      done
-    done
-  '';
-
-  postInstall = ''
-    mkdir -p "$dev/include"
-    install -m 644 ../include/${if stdenv.isDarwin then "*" else "cxxabi.h"} "$dev/include"
-  '';
-
-  passthru = {
-    libName = "c++abi";
-  };
-
-  meta = llvm_meta // {
-    homepage = "https://libcxxabi.llvm.org/";
-    description = "Provides C++ standard library support";
-    longDescription = ''
-      libc++abi is a new implementation of low level support for a standard C++ library.
-    '';
-    # "All of the code in libc++abi is dual licensed under the MIT license and
-    # the UIUC License (a BSD-like license)":
-    license = with lib.licenses; [ mit ncsa ];
-    maintainers = llvm_meta.maintainers ++ [ lib.maintainers.vlstill ];
-  };
-}
diff --git a/pkgs/development/compilers/llvm/10/libcxxabi/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/10/libcxxabi/gnu-install-dirs.patch
deleted file mode 100644
index 0f80ade7c389..000000000000
--- a/pkgs/development/compilers/llvm/10/libcxxabi/gnu-install-dirs.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 8f9572586b4a..bf0e41dfc751 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -20,6 +20,8 @@ set(CMAKE_MODULE_PATH
- if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBCXXABI_STANDALONE_BUILD)
-   project(libcxxabi CXX C)
- 
-+  include(GNUInstallDirs)
-+
-   set(PACKAGE_NAME libcxxabi)
-   set(PACKAGE_VERSION 10.0.1)
-   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
-@@ -214,17 +216,17 @@ string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION
- 
- if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
-   set(LIBCXXABI_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
--  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
-+  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
-   if(LIBCXX_LIBDIR_SUBDIR)
-     string(APPEND LIBCXXABI_LIBRARY_DIR /${LIBCXXABI_LIBDIR_SUBDIR})
-     string(APPEND LIBCXXABI_INSTALL_LIBRARY_DIR /${LIBCXXABI_LIBDIR_SUBDIR})
-   endif()
- elseif(LLVM_LIBRARY_OUTPUT_INTDIR)
-   set(LIBCXXABI_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
--  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LIBCXXABI_LIBDIR_SUFFIX})
-+  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX})
- else()
-   set(LIBCXXABI_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXXABI_LIBDIR_SUFFIX})
--  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LIBCXXABI_LIBDIR_SUFFIX})
-+  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX})
- endif()
- 
- set(LIBCXXABI_INSTALL_PREFIX "" CACHE STRING "Define libc++abi destination prefix.")
diff --git a/pkgs/development/compilers/llvm/10/libunwind/default.nix b/pkgs/development/compilers/llvm/10/libunwind/default.nix
deleted file mode 100644
index 2941dca35bf6..000000000000
--- a/pkgs/development/compilers/llvm/10/libunwind/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ lib, stdenv, llvm_meta, version, fetch, cmake, enableShared ? !stdenv.hostPlatform.isStatic
-}:
-
-stdenv.mkDerivation rec {
-  pname = "libunwind";
-  inherit version;
-
-  src = fetch pname "09syx66idnm2pr46x2vmk0jn3iwdv0lkd04xy4zjbwmz3vn066bl";
-
-  patches = [
-    ./gnu-install-dirs.patch
-  ];
-
-  outputs = [ "out" "dev" ];
-
-  nativeBuildInputs = [ cmake ];
-
-  cmakeFlags = lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF";
-
-  meta = llvm_meta // {
-    # Details: https://github.com/llvm/llvm-project/blob/main/libunwind/docs/index.rst
-    homepage = "https://clang.llvm.org/docs/Toolchain.html#unwind-library";
-    description = "LLVM's unwinder library";
-    longDescription = ''
-      The unwind library provides a family of _Unwind_* functions implementing
-      the language-neutral stack unwinding portion of the Itanium C++ ABI (Level
-      I). It is a dependency of the C++ ABI library, and sometimes is a
-      dependency of other runtimes.
-    '';
-  };
-}
diff --git a/pkgs/development/compilers/llvm/10/libunwind/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/10/libunwind/gnu-install-dirs.patch
deleted file mode 100644
index 8cea7d3e3341..000000000000
--- a/pkgs/development/compilers/llvm/10/libunwind/gnu-install-dirs.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index c033069ef1d0..e2846896eece 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -18,6 +18,8 @@ set(CMAKE_MODULE_PATH
- if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBUNWIND_STANDALONE_BUILD)
-   project(libunwind)
- 
-+  include(GNUInstallDirs)
-+
-   # Rely on llvm-config.
-   set(CONFIG_OUTPUT)
-   if(NOT LLVM_CONFIG_PATH)
-@@ -189,17 +191,17 @@ string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION
- 
- if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
-   set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
--  set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
-+  set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
-   if(LIBCXX_LIBDIR_SUBDIR)
-     string(APPEND LIBUNWIND_LIBRARY_DIR /${LIBUNWIND_LIBDIR_SUBDIR})
-     string(APPEND LIBUNWIND_INSTALL_LIBRARY_DIR /${LIBUNWIND_LIBDIR_SUBDIR})
-   endif()
- elseif(LLVM_LIBRARY_OUTPUT_INTDIR)
-   set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
--  set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LIBUNWIND_LIBDIR_SUFFIX})
-+  set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX})
- else()
-   set(LIBUNWIND_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBUNWIND_LIBDIR_SUFFIX})
--  set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LIBUNWIND_LIBDIR_SUFFIX})
-+  set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX})
- endif()
- 
- set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIBUNWIND_LIBRARY_DIR})
diff --git a/pkgs/development/compilers/llvm/10/lld/default.nix b/pkgs/development/compilers/llvm/10/lld/default.nix
deleted file mode 100644
index d4c686a0f4db..000000000000
--- a/pkgs/development/compilers/llvm/10/lld/default.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{ lib, stdenv, llvm_meta
-, buildLlvmTools
-, fetch
-, cmake
-, libxml2
-, libllvm
-, version
-}:
-
-stdenv.mkDerivation rec {
-  pname = "lld";
-  inherit version;
-
-  src = fetch pname "0ynzi35r4fckvp6842alpd43qr810j3728yfslc66fk2mbh4j52r";
-
-  patches = [
-    ./gnu-install-dirs.patch
-  ];
-
-  nativeBuildInputs = [ cmake ];
-  buildInputs = [ libllvm libxml2 ];
-
-  cmakeFlags = [
-    "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
-  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
-    "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
-  ];
-
-  # Musl's default stack size is too small for lld to be able to link Firefox.
-  LDFLAGS = lib.optionalString stdenv.hostPlatform.isMusl "-Wl,-z,stack-size=2097152";
-
-  outputs = [ "out" "lib" "dev" ];
-
-  meta = llvm_meta // {
-    homepage = "https://lld.llvm.org/";
-    description = "The LLVM linker (unwrapped)";
-    longDescription = ''
-      LLD is a linker from the LLVM project that is a drop-in replacement for
-      system linkers and runs much faster than them. It also provides features
-      that are useful for toolchain developers.
-      The linker supports ELF (Unix), PE/COFF (Windows), Mach-O (macOS), and
-      WebAssembly in descending order of completeness. Internally, LLD consists
-      of several different linkers.
-    '';
-  };
-}
diff --git a/pkgs/development/compilers/llvm/10/lld/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/10/lld/gnu-install-dirs.patch
deleted file mode 100644
index 232f5cbac9dd..000000000000
--- a/pkgs/development/compilers/llvm/10/lld/gnu-install-dirs.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 641f71c114ae..9d44c1463aff 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -6,6 +6,8 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
-   set(CMAKE_INCLUDE_CURRENT_DIR ON)
-   set(LLD_BUILT_STANDALONE TRUE)
- 
-+  include(GNUInstallDirs)
-+
-   find_program(LLVM_CONFIG_PATH "llvm-config" DOC "Path to llvm-config binary")
-   if(NOT LLVM_CONFIG_PATH)
-     message(FATAL_ERROR "llvm-config not found: specify LLVM_CONFIG_PATH")
-@@ -202,7 +204,7 @@ include_directories(BEFORE
- 
- if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-   install(DIRECTORY include/
--    DESTINATION include
-+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-     FILES_MATCHING
-     PATTERN "*.h"
-     PATTERN ".svn" EXCLUDE
-diff --git a/cmake/modules/AddLLD.cmake b/cmake/modules/AddLLD.cmake
-index fa48b428d26b..e7967aad3ceb 100644
---- a/cmake/modules/AddLLD.cmake
-+++ b/cmake/modules/AddLLD.cmake
-@@ -20,9 +20,9 @@ macro(add_lld_library name)
-     install(TARGETS ${name}
-       COMPONENT ${name}
-       ${export_to_lldtargets}
--      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
--      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
--      RUNTIME DESTINATION bin)
-+      LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
-+      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
-+      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
- 
-     if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES)
-       add_llvm_install_targets(install-${name}
-@@ -54,7 +54,7 @@ macro(add_lld_tool name)
- 
-     install(TARGETS ${name}
-       ${export_to_lldtargets}
--      RUNTIME DESTINATION bin
-+      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
-       COMPONENT ${name})
- 
-     if(NOT CMAKE_CONFIGURATION_TYPES)
-@@ -69,5 +69,5 @@ endmacro()
- macro(add_lld_symlink name dest)
-   add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE)
-   # Always generate install targets
--  llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE)
-+  llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE)
- endmacro()
-diff --git a/tools/lld/CMakeLists.txt b/tools/lld/CMakeLists.txt
-index a15e296e31df..654c2cfdb9c0 100644
---- a/tools/lld/CMakeLists.txt
-+++ b/tools/lld/CMakeLists.txt
-@@ -17,7 +17,7 @@ target_link_libraries(lld
-   )
- 
- install(TARGETS lld
--  RUNTIME DESTINATION bin)
-+  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
- 
- if(NOT LLD_SYMLINKS_TO_CREATE)
-   set(LLD_SYMLINKS_TO_CREATE lld-link ld.lld ld64.lld wasm-ld)
diff --git a/pkgs/development/compilers/llvm/10/lldb/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/10/lldb/gnu-install-dirs.patch
deleted file mode 100644
index 0a7539db5e6b..000000000000
--- a/pkgs/development/compilers/llvm/10/lldb/gnu-install-dirs.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 573b8556989e..a12cc6f6ba77 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -17,6 +17,8 @@ set(CMAKE_MODULE_PATH
- # If we are not building as part of LLVM, build LLDB as a standalone project,
- # using LLVM as an external library.
- if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
-+  include(GNUInstallDirs)
-+
-   project(lldb)
-   include(LLDBStandalone)
- 
-diff --git a/cmake/modules/AddLLDB.cmake b/cmake/modules/AddLLDB.cmake
-index ecf0b66a41a3..6f2d97af7a11 100644
---- a/cmake/modules/AddLLDB.cmake
-+++ b/cmake/modules/AddLLDB.cmake
-@@ -107,13 +107,13 @@ function(add_lldb_library name)
-   endif()
- 
-   if(PARAM_SHARED)
--    set(install_dest lib${LLVM_LIBDIR_SUFFIX})
-+    set(install_dest ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
-     if(PARAM_INSTALL_PREFIX)
-       set(install_dest ${PARAM_INSTALL_PREFIX})
-     endif()
-     # RUNTIME is relevant for DLL platforms, FRAMEWORK for macOS
-     install(TARGETS ${name} COMPONENT ${name}
--      RUNTIME DESTINATION bin
-+      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
-       LIBRARY DESTINATION ${install_dest}
-       ARCHIVE DESTINATION ${install_dest}
-       FRAMEWORK DESTINATION ${install_dest})
-diff --git a/cmake/modules/LLDBConfig.cmake b/cmake/modules/LLDBConfig.cmake
-index 4a15a343ee1d..c74bbb6878d7 100644
---- a/cmake/modules/LLDBConfig.cmake
-+++ b/cmake/modules/LLDBConfig.cmake
-@@ -238,7 +238,7 @@ include_directories(BEFORE
- if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-   install(DIRECTORY include/
-     COMPONENT lldb-headers
--    DESTINATION include
-+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-     FILES_MATCHING
-     PATTERN "*.h"
-     PATTERN ".svn" EXCLUDE
-@@ -247,7 +247,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
- 
-   install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/
-     COMPONENT lldb-headers
--    DESTINATION include
-+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-     FILES_MATCHING
-     PATTERN "*.h"
-     PATTERN ".svn" EXCLUDE
-diff --git a/tools/intel-features/CMakeLists.txt b/tools/intel-features/CMakeLists.txt
-index aff75d7db334..98a527c5e761 100644
---- a/tools/intel-features/CMakeLists.txt
-+++ b/tools/intel-features/CMakeLists.txt
-@@ -64,4 +64,4 @@ if (LLDB_ENABLE_PYTHON AND LLDB_BUILD_INTEL_PT)
- endif()
- 
- install(TARGETS lldbIntelFeatures
--  LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX})
-+  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
-diff --git a/cmake/modules/LLDBStandalone.cmake b/cmake/modules/LLDBStandalone.cmake
-index 752113b..010f187 100644
---- a/cmake/modules/LLDBStandalone.cmake
-+++ b/cmake/modules/LLDBStandalone.cmake
-@@ -62,7 +62,7 @@ endif()
-
- # They are used as destination of target generators.
- set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin)
--set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
-+set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
- if(WIN32 OR CYGWIN)
-   # DLL platform -- put DLLs into bin.
-   set(LLVM_SHLIB_OUTPUT_INTDIR ${LLVM_RUNTIME_OUTPUT_INTDIR})
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index bf74802..1c98cae 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -222,7 +222,7 @@ if (LLDB_ENABLE_PYTHON)
-   if(LLDB_BUILD_FRAMEWORK)
-     set(LLDB_PYTHON_INSTALL_PATH ${LLDB_FRAMEWORK_INSTALL_DIR}/LLDB.framework/Resources/Python)
-   else()
--    set(LLDB_PYTHON_INSTALL_PATH ${LLDB_PYTHON_RELATIVE_PATH})
-+    set(LLDB_PYTHON_INSTALL_PATH ${CMAKE_INSTALL_LIBDIR}/../${LLDB_PYTHON_RELATIVE_PATH})
-   endif()
-   if (NOT CMAKE_CFG_INTDIR STREQUAL  ".")
-     string(REPLACE ${CMAKE_CFG_INTDIR} "\$\{CMAKE_INSTALL_CONFIG_NAME\}" LLDB_PYTHON_INSTALL_PATH ${LLDB_PYTHON_INSTALL_PATH})
diff --git a/pkgs/development/compilers/llvm/10/lldb/procfs.patch b/pkgs/development/compilers/llvm/10/lldb/procfs.patch
deleted file mode 100644
index b075dbaeee0a..000000000000
--- a/pkgs/development/compilers/llvm/10/lldb/procfs.patch
+++ /dev/null
@@ -1,31 +0,0 @@
---- a/source/Plugins/Process/Linux/Procfs.h
-+++ b/source/Plugins/Process/Linux/Procfs.h
-@@ -11,21 +11,12 @@
- // sys/procfs.h on Android/Linux for all supported architectures.
- 
- #include <sys/ptrace.h>
-+#include <asm/ptrace.h>
- 
--#ifdef __ANDROID__
--#if defined(__arm64__) || defined(__aarch64__)
--typedef unsigned long elf_greg_t;
--typedef elf_greg_t
--    elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
--typedef struct user_fpsimd_state elf_fpregset_t;
--#ifndef NT_FPREGSET
--#define NT_FPREGSET NT_PRFPREG
--#endif // NT_FPREGSET
--#elif defined(__mips__)
--#ifndef NT_FPREGSET
--#define NT_FPREGSET NT_PRFPREG
--#endif // NT_FPREGSET
--#endif
--#else // __ANDROID__
-+#if !defined(__GLIBC__) && defined(__powerpc__)
-+#define pt_regs musl_pt_regs
-+#include <sys/procfs.h>
-+#undef pt_regs
-+#else
- #include <sys/procfs.h>
--#endif // __ANDROID__
-+#endif
diff --git a/pkgs/development/compilers/llvm/10/llvm/default.nix b/pkgs/development/compilers/llvm/10/llvm/default.nix
deleted file mode 100644
index c09ec676e9ea..000000000000
--- a/pkgs/development/compilers/llvm/10/llvm/default.nix
+++ /dev/null
@@ -1,355 +0,0 @@
-{ lib, stdenv, llvm_meta
-, pkgsBuildBuild
-, fetch
-, fetchpatch
-, cmake
-, python3
-, libffi
-, enableGoldPlugin ? libbfd.hasPluginAPI
-, libbfd
-, libpfm
-, libxml2
-, ncurses
-, version
-, release_version
-, zlib
-, buildLlvmTools
-, debugVersion ? false
-, doCheck ? stdenv.isLinux && (!stdenv.isx86_32)
-  && (stdenv.hostPlatform == stdenv.buildPlatform)
-, enableManpages ? false
-, enableSharedLibraries ? !stdenv.hostPlatform.isStatic
-# broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245
-# broken for the armv7l builder
-, enablePFM ? stdenv.isLinux && !stdenv.hostPlatform.isAarch
-, enablePolly ? true
-}:
-
-let
-  inherit (lib) optional optionals optionalString;
-
-  # Used when creating a version-suffixed symlink of libLLVM.dylib
-  shortVersion = with lib;
-    concatStringsSep "." (take 1 (splitString "." release_version));
-
-  # Ordinarily we would just the `doCheck` and `checkDeps` functionality
-  # `mkDerivation` gives us to manage our test dependencies (instead of breaking
-  # out `doCheck` as a package level attribute).
-  #
-  # Unfortunately `lit` does not forward `$PYTHONPATH` to children processes, in
-  # particular the children it uses to do feature detection.
-  #
-  # This means that python deps we add to `checkDeps` (which the python
-  # interpreter is made aware of via `$PYTHONPATH` – populated by the python
-  # setup hook) are not picked up by `lit` which causes it to skip tests.
-  #
-  # Adding `python3.withPackages (ps: [ ... ])` to `checkDeps` also doesn't work
-  # because this package is shadowed in `$PATH` by the regular `python3`
-  # package.
-  #
-  # So, we "manually" assemble one python derivation for the package to depend
-  # on, taking into account whether checks are enabled or not:
-  python = if doCheck then
-    let
-      checkDeps = ps: with ps; [ psutil ];
-    in python3.withPackages checkDeps
-  else python3;
-
-in stdenv.mkDerivation (rec {
-  pname = "llvm";
-  inherit version;
-
-  src = fetch pname "1wydhbp9kyjp5y0rc627imxgkgqiv3dfirbqil9dgpnbaw5y7n65";
-  polly_src = fetch "polly" "0nm2d8niz47yjsa3r17v3p13b70igkd338ib8191znr1dfw0pyyj";
-
-  unpackPhase = ''
-    unpackFile $src
-    mv llvm-${version}* llvm
-    sourceRoot=$PWD/llvm
-  '' + optionalString enablePolly ''
-    unpackFile $polly_src
-    mv polly-* $sourceRoot/tools/polly
-  '';
-
-  outputs = [ "out" "lib" "dev" "python" ];
-
-  nativeBuildInputs = [ cmake python ]
-    ++ optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ];
-
-  buildInputs = [ libxml2 libffi ]
-    ++ optional enablePFM libpfm; # exegesis
-
-  propagatedBuildInputs = [ ncurses zlib ];
-
-  patches = [
-    # When cross-compiling we configure llvm-config-native with an approximation
-    # of the flags used for the normal LLVM build. To avoid the need for building
-    # a native libLLVM.so (which would fail) we force llvm-config to be linked
-    # statically against the necessary LLVM components always.
-    ../../llvm-config-link-static.patch
-
-    ./gnu-install-dirs.patch
-    # On older CPUs (e.g. Hydra/wendy) we'd be getting an error in this test.
-    (fetchpatch {
-      name = "uops-CMOV16rm-noreg.diff";
-      url = "https://github.com/llvm/llvm-project/commit/9e9f991ac033.diff";
-      sha256 = "sha256:12s8vr6ibri8b48h2z38f3afhwam10arfiqfy4yg37bmc054p5hi";
-      stripLen = 1;
-    })
-
-    # Fix missing includes for GCC 11
-    (fetchpatch {
-      name = "headers-gcc-11.patch";
-      url = "https://github.com/llvm/llvm-project/commit/b498303066a63a203d24f739b2d2e0e56dca70d1.patch";
-      sha256 = "0nh123kld0dgz2h941lng331dkj3wbm5lfxm375k1f569gv83hlk";
-      stripLen = 1;
-    })
-
-    # Fix invalid std::string(nullptr) for GCC 12
-    (fetchpatch {
-      name = "nvptx-gcc-12.patch";
-      url = "https://github.com/llvm/llvm-project/commit/99e64623ec9b31def9375753491cc6093c831809.patch";
-      sha256 = "0zjfjgavqzi2ypqwqnlvy6flyvdz8hi1anwv0ybwnm2zqixg7za3";
-      stripLen = 1;
-    })
-    (fetchpatch {
-      name = "dfaemitter-gcc-12.patch";
-      url = "https://github.com/llvm/llvm-project/commit/0841916e87a39e3c223c986e8da31e4a9a1432e3.patch";
-      sha256 = "1kckghvsngs51mqm82asy0s9vr19h8aqbw43a0w44mccqw6bzrwf";
-      stripLen = 1;
-    })
-
-    # Fix musl build.
-    (fetchpatch {
-      url = "https://github.com/llvm/llvm-project/commit/5cd554303ead0f8891eee3cd6d25cb07f5a7bf67.patch";
-      relative = "llvm";
-      hash = "sha256-XPbvNJ45SzjMGlNUgt/IgEvM2dHQpDOe6woUJY+nUYA=";
-    })
-
-    # Backport gcc-13 fixes with missing includes.
-    (fetchpatch {
-      name = "signals-gcc-13.patch";
-      url = "https://github.com/llvm/llvm-project/commit/ff1681ddb303223973653f7f5f3f3435b48a1983.patch";
-      hash = "sha256-CXwYxQezTq5vdmc8Yn88BUAEly6YZ5VEIA6X3y5NNOs=";
-      stripLen = 1;
-    })
-  ] ++ lib.optionals enablePolly [
-    ./gnu-install-dirs-polly.patch
-    # Add missing isl header includess required to build LLVM 10 + Polly with clang 16.
-    (fetchpatch {
-      name = "polly-ppcg-isl-headers.patch";
-      url = "https://repo.or.cz/ppcg.git/patch/098ba285306114dc71497f7b51c357f69c9b4472";
-      hash = "sha256-c9L30rDROYAMbUSuaK9U/ixyFMlH/Sa1n+VgLODzSCQ=";
-      extraPrefix = "tools/polly/lib/External/ppcg/";
-      stripLen = 1;
-    })
-  ];
-
-  postPatch = optionalString stdenv.isDarwin ''
-    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})' ""
-  '' + ''
-    # FileSystem permissions tests fail with various special bits
-    substituteInPlace unittests/Support/CMakeLists.txt \
-      --replace "Path.cpp" ""
-    rm unittests/Support/Path.cpp
-  '' + 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
-    rm test/DebugInfo/X86/convert-debugloc.ll
-    rm test/DebugInfo/X86/convert-inlined.ll
-    rm test/DebugInfo/X86/convert-linked.ll
-    rm test/DebugInfo/X86/debug_addr.ll
-    rm test/tools/dsymutil/X86/op-convert.test
-  '' + optionalString (stdenv.hostPlatform.system == "armv6l-linux") ''
-    # Seems to require certain floating point hardware (NEON?)
-    rm test/ExecutionEngine/frem.ll
-  '' + ''
-    patchShebangs test/BugPoint/compile-custom.ll.py
-  '' + ''
-    # 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.
-    for f in \
-      test/Other/new-pass-manager.ll \
-      test/Other/new-pm-defaults.ll \
-      test/Other/new-pm-lto-defaults.ll \
-      test/Other/new-pm-thinlto-defaults.ll \
-      test/Other/pass-pipeline-parsing.ll \
-      test/Transforms/Inline/cgscc-incremental-invalidate.ll \
-      test/Transforms/Inline/clear-analyses.ll \
-      test/Transforms/LoopUnroll/unroll-loop-invalidation.ll \
-      test/Transforms/SCCP/ipsccp-preserve-analysis.ll \
-      test/Transforms/SCCP/preserve-analysis.ll \
-      test/Transforms/SROA/dead-inst.ll \
-      test/tools/gold/X86/new-pm.ll \
-      ; do
-      echo "PATCH: $f"
-      substituteInPlace $f \
-        --replace 'Starting llvm::' 'Starting {{.*}}' \
-        --replace 'Finished llvm::' 'Finished {{.*}}'
-    done
-  '';
-
-  preConfigure = ''
-    # Workaround for configure flags that need to have spaces
-    cmakeFlagsArray+=(
-      -DLLVM_LIT_ARGS='-svj''${NIX_BUILD_CORES} --no-progress-bar'
-    )
-  '';
-
-  # hacky fix: created binaries need to be run before installation
-  preBuild = ''
-    mkdir -p $out/
-    ln -sv $PWD/lib $out
-  '';
-
-  cmakeBuildType = if debugVersion then "Debug" else "Release";
-
-  cmakeFlags = with stdenv; let
-    # These flags influence llvm-config's BuildVariables.inc in addition to the
-    # general build. We need to make sure these are also passed via
-    # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native
-    # will return different results from the cross llvm-config.
-    #
-    # Some flags don't need to be repassed because LLVM already does so (like
-    # CMAKE_BUILD_TYPE), others are irrelevant to the result.
-    flagsForLlvmConfig = [
-      "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
-      "-DLLVM_ENABLE_RTTI=ON"
-    ] ++ optionals enableSharedLibraries [
-      "-DLLVM_LINK_LLVM_DYLIB=ON"
-    ];
-  in flagsForLlvmConfig ++ [
-    "-DLLVM_INSTALL_UTILS=ON"  # Needed by rustc
-    "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}"
-    "-DLLVM_ENABLE_FFI=ON"
-    "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
-    "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
-    "-DLLVM_ENABLE_DUMP=ON"
-  ] ++ optionals enableManpages [
-    "-DLLVM_BUILD_DOCS=ON"
-    "-DLLVM_ENABLE_SPHINX=ON"
-    "-DSPHINX_OUTPUT_MAN=ON"
-    "-DSPHINX_OUTPUT_HTML=OFF"
-    "-DSPHINX_WARNINGS_AS_ERRORS=OFF"
-  ] ++ optionals (enableGoldPlugin) [
-    "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
-  ] ++ optionals isDarwin [
-    "-DLLVM_ENABLE_LIBCXX=ON"
-    "-DCAN_TARGET_i386=false"
-  ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
-    "-DCMAKE_CROSSCOMPILING=True"
-    "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen"
-    (
-      let
-        nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc;
-        nativeBintools = nativeCC.bintools.bintools;
-        nativeToolchainFlags = [
-          "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc"
-          "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++"
-          "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar"
-          "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip"
-          "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib"
-        ];
-        # We need to repass the custom GNUInstallDirs values, otherwise CMake
-        # will choose them for us, leading to wrong results in llvm-config-native
-        nativeInstallFlags = [
-          "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}"
-          "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin"
-          "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include"
-          "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib"
-          "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec"
-        ];
-      in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list="
-      + lib.concatStringsSep ";" (lib.concatLists [
-        flagsForLlvmConfig
-        nativeToolchainFlags
-        nativeInstallFlags
-      ])
-    )
-  ];
-
-  postBuild = ''
-    rm -fR $out
-  '';
-
-  preCheck = ''
-    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD/lib
-  '';
-
-  postInstall = ''
-    mkdir -p $python/share
-    mv $out/share/opt-viewer $python/share/opt-viewer
-    moveToOutput "bin/llvm-config*" "$dev"
-    substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
-      --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \
-      --replace "$out/bin/llvm-config" "$dev/bin/llvm-config"
-    substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \
-      --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}'"$lib"'")'
-  ''
-  + optionalString (stdenv.isDarwin && enableSharedLibraries) ''
-    ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
-    ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
-  ''
-  + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
-    cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
-  '';
-
-  inherit doCheck;
-
-  checkTarget = "check-all";
-
-  requiredSystemFeatures = [ "big-parallel" ];
-  meta = llvm_meta // {
-    homepage = "https://llvm.org/";
-    description = "A collection of modular and reusable compiler and toolchain technologies";
-    longDescription = ''
-      The LLVM Project is a collection of modular and reusable compiler and
-      toolchain technologies. Despite its name, LLVM has little to do with
-      traditional virtual machines. The name "LLVM" itself is not an acronym; it
-      is the full name of the project.
-      LLVM began as a research project at the University of Illinois, with the
-      goal of providing a modern, SSA-based compilation strategy capable of
-      supporting both static and dynamic compilation of arbitrary programming
-      languages. Since then, LLVM has grown to be an umbrella project consisting
-      of a number of subprojects, many of which are being used in production by
-      a wide variety of commercial and open source projects as well as being
-      widely used in academic research. Code in the LLVM project is licensed
-      under the "Apache 2.0 License with LLVM exceptions".
-    '';
-  };
-} // lib.optionalAttrs enableManpages {
-  pname = "llvm-manpages";
-
-  buildPhase = ''
-    make docs-llvm-man
-  '';
-
-  propagatedBuildInputs = [];
-
-  installPhase = ''
-    make -C docs install
-  '';
-
-  postPatch = null;
-  postInstall = null;
-
-  outputs = [ "out" ];
-
-  doCheck = false;
-
-  meta = llvm_meta // {
-    description = "man pages for LLVM ${version}";
-  };
-})
diff --git a/pkgs/development/compilers/llvm/10/llvm/gnu-install-dirs-polly.patch b/pkgs/development/compilers/llvm/10/llvm/gnu-install-dirs-polly.patch
deleted file mode 100644
index 3353058d8ab1..000000000000
--- a/pkgs/development/compilers/llvm/10/llvm/gnu-install-dirs-polly.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-diff --git a/tools/polly/CMakeLists.txt b/tools/polly/CMakeLists.txt
-index 9939097f743e..8cc538da912a 100644
---- a/tools/polly/CMakeLists.txt
-+++ b/tools/polly/CMakeLists.txt
-@@ -2,7 +2,11 @@
- if (NOT DEFINED LLVM_MAIN_SRC_DIR)
-   project(Polly)
-   cmake_minimum_required(VERSION 3.4.3)
-+endif()
-+
-+include(GNUInstallDirs)
- 
-+if (NOT DEFINED LLVM_MAIN_SRC_DIR)
-   # Where is LLVM installed?
-   find_package(LLVM CONFIG REQUIRED)
-   set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${LLVM_CMAKE_DIR})
-@@ -145,14 +149,14 @@ include_directories(
- 
- if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-   install(DIRECTORY include/
--    DESTINATION include
-+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-     FILES_MATCHING
-     PATTERN "*.h"
-     PATTERN ".svn" EXCLUDE
-     )
- 
-   install(DIRECTORY ${POLLY_BINARY_DIR}/include/
--    DESTINATION include
-+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-     FILES_MATCHING
-     PATTERN "*.h"
-     PATTERN "CMakeFiles" EXCLUDE
-diff --git a/tools/polly/cmake/CMakeLists.txt b/tools/polly/cmake/CMakeLists.txt
-index 211f95512717..f9e04a4844b6 100644
---- a/tools/polly/cmake/CMakeLists.txt
-+++ b/tools/polly/cmake/CMakeLists.txt
-@@ -79,18 +79,18 @@ file(GENERATE
- 
- # Generate PollyConfig.cmake for the install tree.
- unset(POLLY_EXPORTS)
--set(POLLY_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
-+set(POLLY_INSTALL_PREFIX "")
- set(POLLY_CONFIG_LLVM_CMAKE_DIR "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
--set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}")
--set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}")
-+set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}")
-+set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
- if (POLLY_BUNDLED_ISL)
-   set(POLLY_CONFIG_INCLUDE_DIRS
--    "${POLLY_INSTALL_PREFIX}/include"
--    "${POLLY_INSTALL_PREFIX}/include/polly"
-+    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}"
-+    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}/polly"
-     )
- else()
-   set(POLLY_CONFIG_INCLUDE_DIRS
--    "${POLLY_INSTALL_PREFIX}/include"
-+    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_INCLUDEDIR}"
-     ${ISL_INCLUDE_DIRS}
-     )
- endif()
-@@ -100,12 +100,12 @@ endif()
- foreach(tgt IN LISTS POLLY_CONFIG_EXPORTED_TARGETS)
-   get_target_property(tgt_type ${tgt} TYPE)
-   if (tgt_type STREQUAL "EXECUTABLE")
--    set(tgt_prefix "bin/")
-+    set(tgt_prefix "${CMAKE_INSTALL_BINDIR}/")
-   else()
--    set(tgt_prefix "lib/")
-+    set(tgt_prefix "${CMAKE_INSTALL_LIBDIR}/")
-   endif()
- 
--  set(tgt_path "${CMAKE_INSTALL_PREFIX}/${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>")
-+  set(tgt_path "${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>")
-   file(RELATIVE_PATH tgt_path ${POLLY_CONFIG_CMAKE_DIR} ${tgt_path})
- 
-   if (NOT tgt_type STREQUAL "INTERFACE_LIBRARY")
-diff --git a/tools/polly/cmake/polly_macros.cmake b/tools/polly/cmake/polly_macros.cmake
-index 86de6f10686e..91f30891ccbe 100644
---- a/tools/polly/cmake/polly_macros.cmake
-+++ b/tools/polly/cmake/polly_macros.cmake
-@@ -44,8 +44,8 @@ macro(add_polly_library name)
-   if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LLVMPolly")
-     install(TARGETS ${name}
-       EXPORT LLVMExports
--      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
--      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
-+	  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
-+      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
-   endif()
-   set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
- endmacro(add_polly_library)
-diff --git a/tools/polly/lib/External/CMakeLists.txt b/tools/polly/lib/External/CMakeLists.txt
-index 8ffd984e542b..261cc19f3238 100644
---- a/tools/polly/lib/External/CMakeLists.txt
-+++ b/tools/polly/lib/External/CMakeLists.txt
-@@ -274,7 +274,7 @@ if (POLLY_BUNDLED_ISL)
-     install(DIRECTORY
-       ${ISL_SOURCE_DIR}/include/
-       ${ISL_BINARY_DIR}/include/
--      DESTINATION include/polly
-+      DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/polly
-       FILES_MATCHING
-       PATTERN "*.h"
-       PATTERN "CMakeFiles" EXCLUDE
diff --git a/pkgs/development/compilers/llvm/10/llvm/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/10/llvm/gnu-install-dirs.patch
deleted file mode 100644
index 155bab32f439..000000000000
--- a/pkgs/development/compilers/llvm/10/llvm/gnu-install-dirs.patch
+++ /dev/null
@@ -1,416 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 0e85afa82c76..3e700d9c5fae 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -253,15 +253,21 @@ if (CMAKE_BUILD_TYPE AND
-   message(FATAL_ERROR "Invalid value for CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
- endif()
- 
-+include(GNUInstallDirs)
-+
- set(LLVM_LIBDIR_SUFFIX "" CACHE STRING "Define suffix of library directory name (32/64)" )
- 
--set(LLVM_TOOLS_INSTALL_DIR "bin" CACHE STRING "Path for binary subdirectory (defaults to 'bin')")
-+set(LLVM_TOOLS_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}" CACHE STRING
-+    "Path for binary subdirectory (defaults to 'bin')")
- mark_as_advanced(LLVM_TOOLS_INSTALL_DIR)
- 
- set(LLVM_UTILS_INSTALL_DIR "${LLVM_TOOLS_INSTALL_DIR}" CACHE STRING
-     "Path to install LLVM utilities (enabled by LLVM_INSTALL_UTILS=ON) (defaults to LLVM_TOOLS_INSTALL_DIR)")
- mark_as_advanced(LLVM_UTILS_INSTALL_DIR)
- 
-+set(LLVM_INSTALL_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/cmake/llvm" CACHE STRING
-+	"Path for CMake subdirectory (defaults to lib/cmake/llvm)" )
-+
- # They are used as destination of target generators.
- set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin)
- set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
-@@ -527,9 +533,9 @@ option (LLVM_ENABLE_SPHINX "Use Sphinx to generate llvm documentation." OFF)
- option (LLVM_ENABLE_OCAMLDOC "Build OCaml bindings documentation." ON)
- option (LLVM_ENABLE_BINDINGS "Build bindings." ON)
- 
--set(LLVM_INSTALL_DOXYGEN_HTML_DIR "share/doc/llvm/doxygen-html"
-+set(LLVM_INSTALL_DOXYGEN_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html"
-     CACHE STRING "Doxygen-generated HTML documentation install directory")
--set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "share/doc/llvm/ocaml-html"
-+set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html"
-     CACHE STRING "OCamldoc-generated HTML documentation install directory")
- 
- option (LLVM_BUILD_EXTERNAL_COMPILER_RT
-@@ -993,7 +999,7 @@ endif()
- 
- if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-   install(DIRECTORY include/llvm include/llvm-c
--    DESTINATION include
-+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-     COMPONENT llvm-headers
-     FILES_MATCHING
-     PATTERN "*.def"
-@@ -1005,7 +1011,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-     )
- 
-   install(DIRECTORY ${LLVM_INCLUDE_DIR}/llvm ${LLVM_INCLUDE_DIR}/llvm-c
--    DESTINATION include
-+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-     COMPONENT llvm-headers
-     FILES_MATCHING
-     PATTERN "*.def"
-@@ -1020,13 +1026,13 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
- 
-   if (LLVM_INSTALL_MODULEMAPS)
-     install(DIRECTORY include/llvm include/llvm-c
--            DESTINATION include
-+            DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-             COMPONENT llvm-headers
-             FILES_MATCHING
-             PATTERN "module.modulemap"
-             )
-     install(FILES include/llvm/module.install.modulemap
--            DESTINATION include/llvm
-+            DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm
-             COMPONENT llvm-headers
-             RENAME "module.extern.modulemap"
-             )
-diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
-index f5a1b0d6f238..a7387224d68f 100644
---- a/cmake/modules/AddLLVM.cmake
-+++ b/cmake/modules/AddLLVM.cmake
-@@ -729,9 +729,9 @@ macro(add_llvm_library name)
- 
-       install(TARGETS ${name}
-               ${export_to_llvmexports}
--              LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
--              ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
--              RUNTIME DESTINATION bin COMPONENT ${name})
-+              LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
-+              ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
-+              RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${name})
- 
-       if (NOT LLVM_ENABLE_IDE)
-         add_llvm_install_targets(install-${name}
-@@ -934,7 +934,7 @@ function(process_llvm_pass_plugins)
-           "set(LLVM_STATIC_EXTENSIONS ${LLVM_STATIC_EXTENSIONS})")
-       install(FILES
-           ${llvm_cmake_builddir}/LLVMConfigExtensions.cmake
--          DESTINATION ${LLVM_INSTALL_PACKAGE_DIR}
-+          DESTINATION ${LLVM_INSTALL_CMAKE_DIR}
-           COMPONENT cmake-exports)
- 
-       set(ExtensionDef "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def")
-@@ -1147,7 +1147,7 @@ macro(add_llvm_example name)
-   endif()
-   add_llvm_executable(${name} ${ARGN})
-   if( LLVM_BUILD_EXAMPLES )
--    install(TARGETS ${name} RUNTIME DESTINATION examples)
-+    install(TARGETS ${name} RUNTIME DESTINATION ${CMAKE_INSTALL_DOCDIR}/examples)
-   endif()
-   set_target_properties(${name} PROPERTIES FOLDER "Examples")
- endmacro(add_llvm_example name)
-@@ -1713,7 +1713,7 @@ function(llvm_install_library_symlink name dest type)
-   set(full_name ${CMAKE_${type}_LIBRARY_PREFIX}${name}${CMAKE_${type}_LIBRARY_SUFFIX})
-   set(full_dest ${CMAKE_${type}_LIBRARY_PREFIX}${dest}${CMAKE_${type}_LIBRARY_SUFFIX})
- 
--  set(output_dir lib${LLVM_LIBDIR_SUFFIX})
-+  set(output_dir ${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
-   if(WIN32 AND "${type}" STREQUAL "SHARED")
-     set(output_dir bin)
-   endif()
-@@ -1730,7 +1730,7 @@ function(llvm_install_library_symlink name dest type)
-   endif()
- endfunction()
- 
--function(llvm_install_symlink name dest)
-+function(llvm_install_symlink name dest output_dir)
-   cmake_parse_arguments(ARG "ALWAYS_GENERATE" "COMPONENT" "" ${ARGN})
-   foreach(path ${CMAKE_MODULE_PATH})
-     if(EXISTS ${path}/LLVMInstallSymlink.cmake)
-@@ -1753,7 +1753,7 @@ function(llvm_install_symlink name dest)
-   set(full_dest ${dest}${CMAKE_EXECUTABLE_SUFFIX})
- 
-   install(SCRIPT ${INSTALL_SYMLINK}
--          CODE "install_symlink(${full_name} ${full_dest} ${LLVM_TOOLS_INSTALL_DIR})"
-+          CODE "install_symlink(${full_name} ${full_dest} ${output_dir})"
-           COMPONENT ${component})
- 
-   if (NOT LLVM_ENABLE_IDE AND NOT ARG_ALWAYS_GENERATE)
-@@ -1836,7 +1836,8 @@ function(add_llvm_tool_symlink link_name target)
-     endif()
- 
-     if ((TOOL_IS_TOOLCHAIN OR NOT LLVM_INSTALL_TOOLCHAIN_ONLY) AND LLVM_BUILD_TOOLS)
--      llvm_install_symlink(${link_name} ${target})
-+      GNUInstallDirs_get_absolute_install_dir(output_dir LLVM_TOOLS_INSTALL_DIR)
-+      llvm_install_symlink(${link_name} ${target} ${output_dir})
-     endif()
-   endif()
- endfunction()
-@@ -1958,9 +1959,9 @@ function(llvm_setup_rpath name)
- 
-   if (APPLE)
-     set(_install_name_dir INSTALL_NAME_DIR "@rpath")
--    set(_install_rpath "@loader_path/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
-+    set(_install_rpath "@loader_path/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
-   elseif(UNIX)
--    set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
-+    set(_install_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
-     if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)")
-       set_property(TARGET ${name} APPEND_STRING PROPERTY
-                    LINK_FLAGS " -Wl,-z,origin ")
-diff --git a/cmake/modules/AddOCaml.cmake b/cmake/modules/AddOCaml.cmake
-index 554046b20edf..4d1ad980641e 100644
---- a/cmake/modules/AddOCaml.cmake
-+++ b/cmake/modules/AddOCaml.cmake
-@@ -144,9 +144,9 @@ function(add_ocaml_library name)
-   endforeach()
- 
-   if( APPLE )
--    set(ocaml_rpath "@executable_path/../../../lib${LLVM_LIBDIR_SUFFIX}")
-+    set(ocaml_rpath "@executable_path/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
-   elseif( UNIX )
--    set(ocaml_rpath "\\$ORIGIN/../../../lib${LLVM_LIBDIR_SUFFIX}")
-+    set(ocaml_rpath "\\$ORIGIN/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
-   endif()
-   list(APPEND ocaml_flags "-ldopt" "-Wl,-rpath,${ocaml_rpath}")
- 
-diff --git a/cmake/modules/AddSphinxTarget.cmake b/cmake/modules/AddSphinxTarget.cmake
-index 2bf654b60c44..450ee45d86e6 100644
---- a/cmake/modules/AddSphinxTarget.cmake
-+++ b/cmake/modules/AddSphinxTarget.cmake
-@@ -78,7 +78,7 @@ function (add_sphinx_target builder project)
-         endif()
-       elseif (builder STREQUAL html)
-         string(TOUPPER "${project}" project_upper)
--        set(${project_upper}_INSTALL_SPHINX_HTML_DIR "share/doc/${project}/html"
-+        set(${project_upper}_INSTALL_SPHINX_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/html"
-             CACHE STRING "HTML documentation install directory for ${project}")
- 
-         # '/.' indicates: copy the contents of the directory directly into
-diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt
-index af757d6199a8..b0fb7e7705d1 100644
---- a/cmake/modules/CMakeLists.txt
-+++ b/cmake/modules/CMakeLists.txt
-@@ -1,4 +1,4 @@
--set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm)
-+set(LLVM_INSTALL_PACKAGE_DIR ${LLVM_INSTALL_CMAKE_DIR} CACHE STRING "Path for CMake subdirectory (defaults to 'cmake/llvm')")
- set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
- 
- # First for users who use an installed LLVM, create the LLVMExports.cmake file.
-@@ -96,13 +96,13 @@ foreach(p ${_count})
-   set(LLVM_CONFIG_CODE "${LLVM_CONFIG_CODE}
- get_filename_component(LLVM_INSTALL_PREFIX \"\${LLVM_INSTALL_PREFIX}\" PATH)")
- endforeach(p)
--set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/include")
-+set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}")
- set(LLVM_CONFIG_INCLUDE_DIR "${LLVM_CONFIG_INCLUDE_DIRS}")
- set(LLVM_CONFIG_MAIN_INCLUDE_DIR "${LLVM_CONFIG_INCLUDE_DIRS}")
--set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/lib\${LLVM_LIBDIR_SUFFIX}")
-+set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}\${LLVM_LIBDIR_SUFFIX}")
- set(LLVM_CONFIG_CMAKE_DIR "\${LLVM_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}")
- set(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}")
--set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/bin")
-+set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}")
- set(LLVM_CONFIG_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMExports.cmake")
- set(LLVM_CONFIG_EXPORTS "${LLVM_EXPORTS}")
- configure_file(
-diff --git a/cmake/modules/LLVMInstallSymlink.cmake b/cmake/modules/LLVMInstallSymlink.cmake
-index 09fed8085c23..aa79f192abf0 100644
---- a/cmake/modules/LLVMInstallSymlink.cmake
-+++ b/cmake/modules/LLVMInstallSymlink.cmake
-@@ -10,7 +10,7 @@ function(install_symlink name target outdir)
-     set(LINK_OR_COPY copy)
-   endif()
- 
--  set(bindir "${DESTDIR}${CMAKE_INSTALL_PREFIX}/${outdir}/")
-+  set(bindir "${DESTDIR}${outdir}/")
- 
-   message(STATUS "Creating ${name}")
- 
-diff --git a/docs/CMake.rst b/docs/CMake.rst
-index a86ebb3a37bd..e720711e2b3c 100644
---- a/docs/CMake.rst
-+++ b/docs/CMake.rst
-@@ -196,7 +196,7 @@ CMake manual, or execute ``cmake --help-variable VARIABLE_NAME``.
- **LLVM_LIBDIR_SUFFIX**:STRING
-   Extra suffix to append to the directory where libraries are to be
-   installed. On a 64-bit architecture, one could use ``-DLLVM_LIBDIR_SUFFIX=64``
--  to install libraries to ``/usr/lib64``.
-+  to install libraries to ``/usr/lib64``. See also ``CMAKE_INSTALL_LIBDIR``.
- 
- **CMAKE_C_FLAGS**:STRING
-   Extra flags to use when compiling C source files.
-@@ -516,8 +516,8 @@ LLVM-specific variables
- 
- **LLVM_INSTALL_DOXYGEN_HTML_DIR**:STRING
-   The path to install Doxygen-generated HTML documentation to. This path can
--  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
--  `share/doc/llvm/doxygen-html`.
-+  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
-+  `${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html`.
- 
- **LLVM_ENABLE_SPHINX**:BOOL
-   If specified, CMake will search for the ``sphinx-build`` executable and will make
-@@ -548,13 +548,33 @@ LLVM-specific variables
- 
- **LLVM_INSTALL_SPHINX_HTML_DIR**:STRING
-   The path to install Sphinx-generated HTML documentation to. This path can
--  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
--  `share/doc/llvm/html`.
-+  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
-+  `${CMAKE_INSTALL_DOCDIR}/${project}/html`.
- 
- **LLVM_INSTALL_OCAMLDOC_HTML_DIR**:STRING
-   The path to install OCamldoc-generated HTML documentation to. This path can
--  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
--  `share/doc/llvm/ocaml-html`.
-+  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
-+  `${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html`.
-+
-+**CMAKE_INSTALL_BINDIR**:STRING
-+  The path to install binary tools, relative to the ``CMAKE_INSTALL_PREFIX``.
-+  Defaults to `bin`.
-+
-+**CMAKE_INSTALL_LIBDIR**:STRING
-+  The path to install libraries, relative to the ``CMAKE_INSTALL_PREFIX``.
-+  Defaults to `lib`.
-+
-+**CMAKE_INSTALL_INCLUDEDIR**:STRING
-+  The path to install header files, relative to the ``CMAKE_INSTALL_PREFIX``.
-+  Defaults to `include`.
-+
-+**CMAKE_INSTALL_DOCDIR**:STRING
-+  The path to install documentation, relative to the ``CMAKE_INSTALL_PREFIX``.
-+  Defaults to `share/doc`.
-+
-+**CMAKE_INSTALL_MANDIR**:STRING
-+  The path to install manpage files, relative to the ``CMAKE_INSTALL_PREFIX``.
-+  Defaults to `share/man`.
- 
- **LLVM_CREATE_XCODE_TOOLCHAIN**:BOOL
-   macOS Only: If enabled CMake will generate a target named
-@@ -740,9 +760,11 @@ the ``cmake`` command or by setting it directly in ``ccmake`` or ``cmake-gui``).
- 
- This file is available in two different locations.
- 
--* ``<INSTALL_PREFIX>/lib/cmake/llvm/LLVMConfig.cmake`` where
--  ``<INSTALL_PREFIX>`` is the install prefix of an installed version of LLVM.
--  On Linux typically this is ``/usr/lib/cmake/llvm/LLVMConfig.cmake``.
-+* ``<LLVM_INSTALL_PACKAGE_DIR>LLVMConfig.cmake`` where
-+  ``<LLVM_INSTALL_PACKAGE_DIR>`` is the location where LLVM CMake modules are
-+  installed as part of an installed version of LLVM. This is typically
-+  ``cmake/llvm/`` within the lib directory. On Linux, this is typically
-+  ``/usr/lib/cmake/llvm/LLVMConfig.cmake``.
- 
- * ``<LLVM_BUILD_ROOT>/lib/cmake/llvm/LLVMConfig.cmake`` where
-   ``<LLVM_BUILD_ROOT>`` is the root of the LLVM build tree. **Note: this is only
-diff --git a/examples/Bye/CMakeLists.txt b/examples/Bye/CMakeLists.txt
-index 3206f90d0916..1822965fc35f 100644
---- a/examples/Bye/CMakeLists.txt
-+++ b/examples/Bye/CMakeLists.txt
-@@ -9,5 +9,5 @@ add_llvm_pass_plugin(Bye
-   BUILDTREE_ONLY
-  )
- 
--install(TARGETS ${name} RUNTIME DESTINATION examples)
-+install(TARGETS ${name} RUNTIME DESTINATION ${CMAKE_INSTALL_DOCDIR}/examples)
- set_target_properties(${name} PROPERTIES FOLDER "Examples")
-diff --git a/include/llvm/CMakeLists.txt b/include/llvm/CMakeLists.txt
-index 1d5ca3ba92b0..026f5453c1da 100644
---- a/include/llvm/CMakeLists.txt
-+++ b/include/llvm/CMakeLists.txt
-@@ -4,5 +4,5 @@ add_subdirectory(Support)
- # If we're doing an out-of-tree build, copy a module map for generated
- # header files into the build area.
- if (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
--  configure_file(module.modulemap.build module.modulemap COPYONLY)
-+  configure_file(module.modulemap.build ${LLVM_INCLUDE_DIR}/module.modulemap COPYONLY)
- endif (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
-diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in
-index 63cef75368b7..6295478b1f3d 100644
---- a/tools/llvm-config/BuildVariables.inc.in
-+++ b/tools/llvm-config/BuildVariables.inc.in
-@@ -23,6 +23,10 @@
- #define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@"
- #define LLVM_BUILDMODE "@LLVM_BUILDMODE@"
- #define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@"
-+#define LLVM_INSTALL_BINDIR "@CMAKE_INSTALL_BINDIR@"
-+#define LLVM_INSTALL_LIBDIR "@CMAKE_INSTALL_LIBDIR@"
-+#define LLVM_INSTALL_INCLUDEDIR "@CMAKE_INSTALL_INCLUDEDIR@"
-+#define LLVM_INSTALL_CMAKEDIR "@LLVM_INSTALL_CMAKE_DIR@"
- #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@"
- #define LLVM_SYSTEM_LIBS "@LLVM_SYSTEM_LIBS@"
- #define LLVM_BUILD_SYSTEM "@LLVM_BUILD_SYSTEM@"
-diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
-index fb12e29a36a8..dbb6c2b90332 100644
---- a/tools/llvm-config/llvm-config.cpp
-+++ b/tools/llvm-config/llvm-config.cpp
-@@ -358,12 +358,26 @@ int main(int argc, char **argv) {
-         ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot + "/include");
-   } else {
-     ActivePrefix = CurrentExecPrefix;
--    ActiveIncludeDir = ActivePrefix + "/include";
--    SmallString<256> path(StringRef(LLVM_TOOLS_INSTALL_DIR));
--    sys::fs::make_absolute(ActivePrefix, path);
--    ActiveBinDir = path.str();
--    ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX;
--    ActiveCMakeDir = ActiveLibDir + "/cmake/llvm";
-+    {
-+      SmallString<256> path(StringRef(LLVM_INSTALL_INCLUDEDIR));
-+      sys::fs::make_absolute(ActivePrefix, path);
-+      ActiveIncludeDir = std::string(path.str());
-+    }
-+    {
-+      SmallString<256> path(StringRef(LLVM_INSTALL_BINDIR));
-+      sys::fs::make_absolute(ActivePrefix, path);
-+      ActiveBinDir = std::string(path.str());
-+    }
-+    {
-+      SmallString<256> path(StringRef(LLVM_INSTALL_LIBDIR LLVM_LIBDIR_SUFFIX));
-+      sys::fs::make_absolute(ActivePrefix, path);
-+      ActiveLibDir = std::string(path.str());
-+    }
-+    {
-+      SmallString<256> path(StringRef(LLVM_INSTALL_CMAKEDIR));
-+      sys::fs::make_absolute(ActivePrefix, path);
-+      ActiveCMakeDir = std::string(path.str());
-+    }
-     ActiveIncludeOption = "-I" + ActiveIncludeDir;
-   }
- 
-diff --git a/tools/lto/CMakeLists.txt b/tools/lto/CMakeLists.txt
-index b86e4abd01a7..02ce5773f17d 100644
---- a/tools/lto/CMakeLists.txt
-+++ b/tools/lto/CMakeLists.txt
-@@ -23,7 +23,7 @@ set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/lto.exports)
- add_llvm_library(LTO SHARED INSTALL_WITH_TOOLCHAIN ${SOURCES} DEPENDS intrinsics_gen)
- 
- install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/lto.h
--  DESTINATION include/llvm-c
-+  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm-c
-   COMPONENT LTO)
- 
- if (APPLE)
-diff --git a/tools/opt-viewer/CMakeLists.txt b/tools/opt-viewer/CMakeLists.txt
-index ead73ec13a8f..250362021f17 100644
---- a/tools/opt-viewer/CMakeLists.txt
-+++ b/tools/opt-viewer/CMakeLists.txt
-@@ -8,7 +8,7 @@ set (files
- 
- foreach (file ${files})
-   install(PROGRAMS ${file}
--    DESTINATION share/opt-viewer
-+    DESTINATION ${CMAKE_INSTALL_DATADIR}/opt-viewer
-     COMPONENT opt-viewer)
- endforeach (file)
- 
-diff --git a/tools/remarks-shlib/CMakeLists.txt b/tools/remarks-shlib/CMakeLists.txt
-index e948496c603a..1f4df8a98b10 100644
---- a/tools/remarks-shlib/CMakeLists.txt
-+++ b/tools/remarks-shlib/CMakeLists.txt
-@@ -11,7 +11,7 @@ set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/Remarks.exports)
- add_llvm_library(Remarks SHARED INSTALL_WITH_TOOLCHAIN ${SOURCES})
- 
- install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/Remarks.h
--  DESTINATION include/llvm-c
-+  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm-c
-   COMPONENT Remarks)
- 
- if (APPLE)
diff --git a/pkgs/development/compilers/llvm/10/openmp/default.nix b/pkgs/development/compilers/llvm/10/openmp/default.nix
deleted file mode 100644
index 012f882e5871..000000000000
--- a/pkgs/development/compilers/llvm/10/openmp/default.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ lib
-, stdenv
-, llvm_meta
-, fetch
-, cmake
-, llvm
-, targetLlvm
-, perl
-, version
-}:
-
-stdenv.mkDerivation rec {
-  pname = "openmp";
-  inherit version;
-
-  src = fetch pname "0i4bn84lkpm5w3qkpvwm5z6jdj8fynp7d3bcasa1xyq4is6757yi";
-
-  nativeBuildInputs = [ cmake perl ];
-  buildInputs = [
-    (if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm)
-  ];
-
-  meta = llvm_meta // {
-    homepage = "https://openmp.llvm.org/";
-    description = "Support for the OpenMP language";
-    longDescription = ''
-      The OpenMP subproject of LLVM contains the components required to build an
-      executable OpenMP program that are outside the compiler itself.
-      Contains the code for the runtime library against which code compiled by
-      "clang -fopenmp" must be linked before it can run and the library that
-      supports offload to target devices.
-    '';
-    # "All of the code is dual licensed under the MIT license and the UIUC
-    # License (a BSD-like license)":
-    license = with lib.licenses; [ mit ncsa ];
-  };
-}
diff --git a/pkgs/development/compilers/llvm/11/compiler-rt/default.nix b/pkgs/development/compilers/llvm/11/compiler-rt/default.nix
index 38dc7a0fbdc8..7fddc6e924b9 100644
--- a/pkgs/development/compilers/llvm/11/compiler-rt/default.nix
+++ b/pkgs/development/compilers/llvm/11/compiler-rt/default.nix
@@ -135,6 +135,6 @@ stdenv.mkDerivation {
     license = with lib.licenses; [ mit ncsa ];
     # compiler-rt requires a Clang stdenv on 32-bit RISC-V:
     # https://reviews.llvm.org/D43106#1019077
-    broken = stdenv.hostPlatform.isRiscV && stdenv.hostPlatform.is32bit && !stdenv.cc.isClang;
+    broken = stdenv.hostPlatform.isRiscV32 && !stdenv.cc.isClang;
   };
 }
diff --git a/pkgs/development/compilers/llvm/11/default.nix b/pkgs/development/compilers/llvm/11/default.nix
index 2d9790fe61ac..3044199e2811 100644
--- a/pkgs/development/compilers/llvm/11/default.nix
+++ b/pkgs/development/compilers/llvm/11/default.nix
@@ -173,6 +173,7 @@ let
         echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
       '' + lib.optionalString (!stdenv.targetPlatform.isWasm) ''
         echo "--unwindlib=libunwind" >> $out/nix-support/cc-cflags
+        echo "-L${targetLlvmLibraries.libunwind}/lib" >> $out/nix-support/cc-ldflags
       '' + lib.optionalString (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) ''
         echo "-lunwind" >> $out/nix-support/cc-ldflags
       '' + lib.optionalString stdenv.targetPlatform.isWasm ''
diff --git a/pkgs/development/compilers/llvm/11/llvm/default.nix b/pkgs/development/compilers/llvm/11/llvm/default.nix
index 01e6483ad640..423b08396666 100644
--- a/pkgs/development/compilers/llvm/11/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/11/llvm/default.nix
@@ -256,7 +256,7 @@ in stdenv.mkDerivation (rec {
   ] ++ optionals isDarwin [
     "-DLLVM_ENABLE_LIBCXX=ON"
     "-DCAN_TARGET_i386=false"
-  ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+  ] ++ optionals ((stdenv.hostPlatform != stdenv.buildPlatform) && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) [
     "-DCMAKE_CROSSCOMPILING=True"
     "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen"
     (
diff --git a/pkgs/development/compilers/llvm/12/compiler-rt/default.nix b/pkgs/development/compilers/llvm/12/compiler-rt/default.nix
index 9362ee8d1147..4b2bdad454ae 100644
--- a/pkgs/development/compilers/llvm/12/compiler-rt/default.nix
+++ b/pkgs/development/compilers/llvm/12/compiler-rt/default.nix
@@ -124,5 +124,8 @@ stdenv.mkDerivation {
     # "All of the code in the compiler-rt project is dual licensed under the MIT
     # license and the UIUC License (a BSD-like license)":
     license = with lib.licenses; [ mit ncsa ];
+    # compiler-rt requires a Clang stdenv on 32-bit RISC-V:
+    # https://reviews.llvm.org/D43106#1019077
+    broken = stdenv.hostPlatform.isRiscV32 && !stdenv.cc.isClang;
   };
 }
diff --git a/pkgs/development/compilers/llvm/12/default.nix b/pkgs/development/compilers/llvm/12/default.nix
index 4de048827071..a38e35e91f6d 100644
--- a/pkgs/development/compilers/llvm/12/default.nix
+++ b/pkgs/development/compilers/llvm/12/default.nix
@@ -173,6 +173,7 @@ let
         echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
       '' + lib.optionalString (!stdenv.targetPlatform.isWasm) ''
         echo "--unwindlib=libunwind" >> $out/nix-support/cc-cflags
+        echo "-L${targetLlvmLibraries.libunwind}/lib" >> $out/nix-support/cc-ldflags
       '' + lib.optionalString (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) ''
         echo "-lunwind" >> $out/nix-support/cc-ldflags
       '' + lib.optionalString stdenv.targetPlatform.isWasm ''
diff --git a/pkgs/development/compilers/llvm/12/llvm/default.nix b/pkgs/development/compilers/llvm/12/llvm/default.nix
index 97d8f27672e3..3263c4ddaf35 100644
--- a/pkgs/development/compilers/llvm/12/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/12/llvm/default.nix
@@ -244,7 +244,7 @@ in stdenv.mkDerivation (rec {
   ] ++ optionals isDarwin [
     "-DLLVM_ENABLE_LIBCXX=ON"
     "-DCAN_TARGET_i386=false"
-  ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+  ] ++ optionals ((stdenv.hostPlatform != stdenv.buildPlatform) && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) [
     "-DCMAKE_CROSSCOMPILING=True"
     "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen"
     (
diff --git a/pkgs/development/compilers/llvm/13/compiler-rt/default.nix b/pkgs/development/compilers/llvm/13/compiler-rt/default.nix
index e36aec42e905..b6a9c13ba943 100644
--- a/pkgs/development/compilers/llvm/13/compiler-rt/default.nix
+++ b/pkgs/development/compilers/llvm/13/compiler-rt/default.nix
@@ -131,5 +131,8 @@ stdenv.mkDerivation {
     # "All of the code in the compiler-rt project is dual licensed under the MIT
     # license and the UIUC License (a BSD-like license)":
     license = with lib.licenses; [ mit ncsa ];
+    # compiler-rt requires a Clang stdenv on 32-bit RISC-V:
+    # https://reviews.llvm.org/D43106#1019077
+    broken = stdenv.hostPlatform.isRiscV32 && !stdenv.cc.isClang;
   };
 }
diff --git a/pkgs/development/compilers/llvm/13/default.nix b/pkgs/development/compilers/llvm/13/default.nix
index c46ebee1d0db..c811b24c48ef 100644
--- a/pkgs/development/compilers/llvm/13/default.nix
+++ b/pkgs/development/compilers/llvm/13/default.nix
@@ -213,6 +213,7 @@ in let
         echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
       '' + lib.optionalString (!stdenv.targetPlatform.isWasm) ''
         echo "--unwindlib=libunwind" >> $out/nix-support/cc-cflags
+        echo "-L${targetLlvmLibraries.libunwind}/lib" >> $out/nix-support/cc-ldflags
       '' + lib.optionalString (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) ''
         echo "-lunwind" >> $out/nix-support/cc-ldflags
       '' + lib.optionalString stdenv.targetPlatform.isWasm ''
diff --git a/pkgs/development/compilers/llvm/13/llvm/default.nix b/pkgs/development/compilers/llvm/13/llvm/default.nix
index 2a7c1c1867cb..1e71cdd89c6c 100644
--- a/pkgs/development/compilers/llvm/13/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/13/llvm/default.nix
@@ -206,7 +206,7 @@ in stdenv.mkDerivation (rec {
   ] ++ optionals isDarwin [
     "-DLLVM_ENABLE_LIBCXX=ON"
     "-DCAN_TARGET_i386=false"
-  ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+  ] ++ optionals ((stdenv.hostPlatform != stdenv.buildPlatform) && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) [
     "-DCMAKE_CROSSCOMPILING=True"
     "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen"
     (
diff --git a/pkgs/development/compilers/llvm/14/compiler-rt/default.nix b/pkgs/development/compilers/llvm/14/compiler-rt/default.nix
index 3aa91bc953b2..1652b3a7fac0 100644
--- a/pkgs/development/compilers/llvm/14/compiler-rt/default.nix
+++ b/pkgs/development/compilers/llvm/14/compiler-rt/default.nix
@@ -139,5 +139,8 @@ stdenv.mkDerivation {
     # "All of the code in the compiler-rt project is dual licensed under the MIT
     # license and the UIUC License (a BSD-like license)":
     license = with lib.licenses; [ mit ncsa ];
+    # compiler-rt requires a Clang stdenv on 32-bit RISC-V:
+    # https://reviews.llvm.org/D43106#1019077
+    broken = stdenv.hostPlatform.isRiscV32 && !stdenv.cc.isClang;
   };
 }
diff --git a/pkgs/development/compilers/llvm/14/default.nix b/pkgs/development/compilers/llvm/14/default.nix
index 3513833c6f56..090eec234886 100644
--- a/pkgs/development/compilers/llvm/14/default.nix
+++ b/pkgs/development/compilers/llvm/14/default.nix
@@ -216,6 +216,7 @@ in let
           (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false)
           "-lunwind"
         ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions";
+      nixSupport.cc-ldflags = lib.optionals (!stdenv.targetPlatform.isWasm) [ "-L${targetLlvmLibraries.libunwind}/lib" ];
     };
 
     clangNoLibcxx = wrapCCWith rec {
diff --git a/pkgs/development/compilers/llvm/14/llvm/default.nix b/pkgs/development/compilers/llvm/14/llvm/default.nix
index 6eec4c563f9c..eab49d326ad4 100644
--- a/pkgs/development/compilers/llvm/14/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/14/llvm/default.nix
@@ -205,7 +205,7 @@ in stdenv.mkDerivation (rec {
   ] ++ optionals isDarwin [
     "-DLLVM_ENABLE_LIBCXX=ON"
     "-DCAN_TARGET_i386=false"
-  ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+  ] ++ optionals ((stdenv.hostPlatform != stdenv.buildPlatform) && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) [
     "-DCMAKE_CROSSCOMPILING=True"
     "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen"
     (
diff --git a/pkgs/development/compilers/llvm/15/compiler-rt/default.nix b/pkgs/development/compilers/llvm/15/compiler-rt/default.nix
index 9817899345a9..fbf25786efee 100644
--- a/pkgs/development/compilers/llvm/15/compiler-rt/default.nix
+++ b/pkgs/development/compilers/llvm/15/compiler-rt/default.nix
@@ -138,5 +138,8 @@ stdenv.mkDerivation {
     # "All of the code in the compiler-rt project is dual licensed under the MIT
     # license and the UIUC License (a BSD-like license)":
     license = with lib.licenses; [ mit ncsa ];
+    # compiler-rt requires a Clang stdenv on 32-bit RISC-V:
+    # https://reviews.llvm.org/D43106#1019077
+    broken = stdenv.hostPlatform.isRiscV32 && !stdenv.cc.isClang;
   };
 }
diff --git a/pkgs/development/compilers/llvm/15/default.nix b/pkgs/development/compilers/llvm/15/default.nix
index 307198b5e9a3..d9ca0819f2e0 100644
--- a/pkgs/development/compilers/llvm/15/default.nix
+++ b/pkgs/development/compilers/llvm/15/default.nix
@@ -221,6 +221,7 @@ in let
           (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false)
           "-lunwind"
         ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions";
+      nixSupport.cc-ldflags = lib.optionals (!stdenv.targetPlatform.isWasm) [ "-L${targetLlvmLibraries.libunwind}/lib" ];
     };
 
     clangNoLibcxx = wrapCCWith rec {
diff --git a/pkgs/development/compilers/llvm/15/libcxx/default.nix b/pkgs/development/compilers/llvm/15/libcxx/default.nix
index ed5f48e8c38f..be56770039d8 100644
--- a/pkgs/development/compilers/llvm/15/libcxx/default.nix
+++ b/pkgs/development/compilers/llvm/15/libcxx/default.nix
@@ -56,6 +56,14 @@ stdenv.mkDerivation rec {
       hash = "sha256-AaM9A6tQ4YAw7uDqCIV4VaiUyLZv+unwcOqbakwW9/k=";
       relative = "libcxx";
     })
+    # fix for https://github.com/NixOS/nixpkgs/issues/269548
+    # https://github.com/llvm/llvm-project/pull/77218
+    (fetchpatch {
+      name = "darwin-system-libcxxabi-link-flags.patch";
+      url = "https://github.com/llvm/llvm-project/commit/c5b89b29ee6e3c444a355fd1cf733ce7ab2e316a.patch";
+      hash = "sha256-LNoPg1KCoP8RWxU/AzHR52f4Dww24I9BGQJedMhFxyQ=";
+      relative = "libcxx";
+    })
   ] ++ lib.optionals stdenv.hostPlatform.isMusl [
     ../../libcxx-0001-musl-hacks.patch
   ];
diff --git a/pkgs/development/compilers/llvm/15/llvm/default.nix b/pkgs/development/compilers/llvm/15/llvm/default.nix
index 0b9e83259b2c..4f17678ba14f 100644
--- a/pkgs/development/compilers/llvm/15/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/15/llvm/default.nix
@@ -343,7 +343,7 @@ in stdenv.mkDerivation (rec {
   ] ++ optionals isDarwin [
     "-DLLVM_ENABLE_LIBCXX=ON"
     "-DCAN_TARGET_i386=false"
-  ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+  ] ++ optionals ((stdenv.hostPlatform != stdenv.buildPlatform) && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) [
     "-DCMAKE_CROSSCOMPILING=True"
     "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen"
     (
diff --git a/pkgs/development/compilers/llvm/16/compiler-rt/default.nix b/pkgs/development/compilers/llvm/16/compiler-rt/default.nix
index 808df140e772..0f15a9e12cde 100644
--- a/pkgs/development/compilers/llvm/16/compiler-rt/default.nix
+++ b/pkgs/development/compilers/llvm/16/compiler-rt/default.nix
@@ -152,5 +152,8 @@ stdenv.mkDerivation {
     # "All of the code in the compiler-rt project is dual licensed under the MIT
     # license and the UIUC License (a BSD-like license)":
     license = with lib.licenses; [ mit ncsa ];
+    # compiler-rt requires a Clang stdenv on 32-bit RISC-V:
+    # https://reviews.llvm.org/D43106#1019077
+    broken = stdenv.hostPlatform.isRiscV32 && !stdenv.cc.isClang;
   };
 }
diff --git a/pkgs/development/compilers/llvm/16/default.nix b/pkgs/development/compilers/llvm/16/default.nix
index 878806ff85ab..db9385043be2 100644
--- a/pkgs/development/compilers/llvm/16/default.nix
+++ b/pkgs/development/compilers/llvm/16/default.nix
@@ -226,6 +226,7 @@ in let
           (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false)
           "-lunwind"
         ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions";
+      nixSupport.cc-ldflags = lib.optionals (!stdenv.targetPlatform.isWasm) [ "-L${targetLlvmLibraries.libunwind}/lib" ];
     };
 
     clangNoLibcxx = wrapCCWith rec {
diff --git a/pkgs/development/compilers/llvm/16/libcxx/default.nix b/pkgs/development/compilers/llvm/16/libcxx/default.nix
index 78cd632024cd..d6c8c57c1743 100644
--- a/pkgs/development/compilers/llvm/16/libcxx/default.nix
+++ b/pkgs/development/compilers/llvm/16/libcxx/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, llvm_meta
-, monorepoSrc, runCommand
+, monorepoSrc, runCommand, fetchpatch
 , cmake, ninja, python3, fixDarwinDylibNames, version
 , cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else libcxxabi
 , libcxxabi, libcxxrt, libunwind
@@ -47,6 +47,14 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./gnu-install-dirs.patch
+    # fix for https://github.com/NixOS/nixpkgs/issues/269548
+    # https://github.com/llvm/llvm-project/pull/77218
+    (fetchpatch {
+      name = "darwin-system-libcxxabi-link-flags.patch";
+      url = "https://github.com/llvm/llvm-project/commit/c5b89b29ee6e3c444a355fd1cf733ce7ab2e316a.patch";
+      hash = "sha256-LNoPg1KCoP8RWxU/AzHR52f4Dww24I9BGQJedMhFxyQ=";
+      relative = "libcxx";
+    })
   ];
 
   postPatch = ''
diff --git a/pkgs/development/compilers/llvm/16/llvm/default.nix b/pkgs/development/compilers/llvm/16/llvm/default.nix
index a6faf9fd635d..73fb6a785413 100644
--- a/pkgs/development/compilers/llvm/16/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/16/llvm/default.nix
@@ -331,7 +331,7 @@ in
   ] ++ optionals isDarwin [
     "-DLLVM_ENABLE_LIBCXX=ON"
     "-DCAN_TARGET_i386=false"
-  ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+  ] ++ optionals ((stdenv.hostPlatform != stdenv.buildPlatform) && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) [
     "-DCMAKE_CROSSCOMPILING=True"
     "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen"
     (
diff --git a/pkgs/development/compilers/llvm/17/compiler-rt/default.nix b/pkgs/development/compilers/llvm/17/compiler-rt/default.nix
index 808df140e772..0f15a9e12cde 100644
--- a/pkgs/development/compilers/llvm/17/compiler-rt/default.nix
+++ b/pkgs/development/compilers/llvm/17/compiler-rt/default.nix
@@ -152,5 +152,8 @@ stdenv.mkDerivation {
     # "All of the code in the compiler-rt project is dual licensed under the MIT
     # license and the UIUC License (a BSD-like license)":
     license = with lib.licenses; [ mit ncsa ];
+    # compiler-rt requires a Clang stdenv on 32-bit RISC-V:
+    # https://reviews.llvm.org/D43106#1019077
+    broken = stdenv.hostPlatform.isRiscV32 && !stdenv.cc.isClang;
   };
 }
diff --git a/pkgs/development/compilers/llvm/17/libcxx/default.nix b/pkgs/development/compilers/llvm/17/libcxx/default.nix
index 7b9996641663..8a5272ea07af 100644
--- a/pkgs/development/compilers/llvm/17/libcxx/default.nix
+++ b/pkgs/development/compilers/llvm/17/libcxx/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, llvm_meta
-, monorepoSrc, runCommand
+, monorepoSrc, runCommand, fetchpatch
 , cmake, ninja, python3, fixDarwinDylibNames, version
 , cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else libcxxabi
 , libcxxabi, libcxxrt, libunwind
@@ -45,6 +45,17 @@ stdenv.mkDerivation rec {
     chmod -R u+w .
   '';
 
+  patches = [
+    # fix for https://github.com/NixOS/nixpkgs/issues/269548
+    # https://github.com/llvm/llvm-project/pull/77218
+    (fetchpatch {
+      name = "darwin-system-libcxxabi-link-flags.patch";
+      url = "https://github.com/llvm/llvm-project/commit/c5b89b29ee6e3c444a355fd1cf733ce7ab2e316a.patch";
+      hash = "sha256-LNoPg1KCoP8RWxU/AzHR52f4Dww24I9BGQJedMhFxyQ=";
+      relative = "libcxx";
+    })
+  ];
+
   postPatch = ''
     cd ../runtimes
   '';
diff --git a/pkgs/development/compilers/llvm/17/llvm/default.nix b/pkgs/development/compilers/llvm/17/llvm/default.nix
index b38fef333135..627679ce812f 100644
--- a/pkgs/development/compilers/llvm/17/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/17/llvm/default.nix
@@ -330,7 +330,7 @@ stdenv.mkDerivation (rec {
   ] ++ optionals isDarwin [
     "-DLLVM_ENABLE_LIBCXX=ON"
     "-DCAN_TARGET_i386=false"
-  ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+  ] ++ optionals ((stdenv.hostPlatform != stdenv.buildPlatform) && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) [
     "-DCMAKE_CROSSCOMPILING=True"
     "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen"
     (
diff --git a/pkgs/development/compilers/llvm/8/clang/HIP-use-PATH-8.patch b/pkgs/development/compilers/llvm/8/clang/HIP-use-PATH-8.patch
deleted file mode 100644
index f4be100d1ab9..000000000000
--- a/pkgs/development/compilers/llvm/8/clang/HIP-use-PATH-8.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From d9f1b7d7571b252e0ba2359ae6cfa93a9903c0e7 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Holger=20W=C3=BCnsche?= <holger.o.wuensche@t-online.de>
-Date: Tue, 21 Jan 2020 19:49:44 +0100
-Subject: [PATCH] [HIP] use GetProgramPath for executable discovery
-
-This change replaces the manual building of executable paths
-using llvm::sys::path::append with GetProgramPath.
-This enables adding other paths in case executables reside
-in different directories and makes the code easier to read.
-
-Differential Revision: https://reviews.llvm.org/D72903
----
- clang/lib/Driver/ToolChains/HIP.cpp | 23 ++++++++---------------
- 1 file changed, 8 insertions(+), 15 deletions(-)
-
-diff --git a/lib/Driver/ToolChains/HIP.cpp b/lang/lib/Driver/ToolChains/HIP.cpp
-index 868765cf88e..31f2d68ec6c 100644
---- a/lib/Driver/ToolChains/HIP.cpp
-+++ b/lib/Driver/ToolChains/HIP.cpp
-@@ -104,9 +104,8 @@ const char *AMDGCN::Linker::constructLLVMLinkCommand(
-   const char *OutputFileName =
-       C.addTempFile(C.getArgs().MakeArgString(TmpName));
-   CmdArgs.push_back(OutputFileName);
--  SmallString<128> ExecPath(C.getDriver().Dir);
--  llvm::sys::path::append(ExecPath, "llvm-link");
--  const char *Exec = Args.MakeArgString(ExecPath);
-+  const char *Exec =
-+      Args.MakeArgString(getToolChain().GetProgramPath("llvm-link"));
-   C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs, Inputs));
-   return OutputFileName;
- }
-@@ -147,9 +146,8 @@ const char *AMDGCN::Linker::constructOptCommand(
-   const char *OutputFileName =
-       C.addTempFile(C.getArgs().MakeArgString(TmpFileName));
-   OptArgs.push_back(OutputFileName);
--  SmallString<128> OptPath(C.getDriver().Dir);
--  llvm::sys::path::append(OptPath, "opt");
--  const char *OptExec = Args.MakeArgString(OptPath);
-+  const char *OptExec =
-+      Args.MakeArgString(getToolChain().GetProgramPath("opt"));
-   C.addCommand(llvm::make_unique<Command>(JA, *this, OptExec, OptArgs, Inputs));
-   return OutputFileName;
- }
-@@ -167,9 +165,7 @@ const char *AMDGCN::Linker::constructLlcCommand(
-   const char *LlcOutputFile =
-       C.addTempFile(C.getArgs().MakeArgString(LlcOutputFileName));
-   LlcArgs.push_back(LlcOutputFile);
--  SmallString<128> LlcPath(C.getDriver().Dir);
--  llvm::sys::path::append(LlcPath, "llc");
--  const char *Llc = Args.MakeArgString(LlcPath);
-+  const char *Llc = Args.MakeArgString(getToolChain().GetProgramPath("llc"));
-   C.addCommand(llvm::make_unique<Command>(JA, *this, Llc, LlcArgs, Inputs));
-   return LlcOutputFile;
- }
-@@ -184,9 +180,7 @@ void AMDGCN::Linker::constructLldCommand(Compilation &C, const JobAction &JA,
-   ArgStringList LldArgs{"-flavor",    "gnu", "--no-undefined",
-                         "-shared",    "-o",  Output.getFilename(),
-                         InputFileName};
--  SmallString<128> LldPath(C.getDriver().Dir);
--  llvm::sys::path::append(LldPath, "lld");
--  const char *Lld = Args.MakeArgString(LldPath);
-+  const char *Lld = Args.MakeArgString(getToolChain().GetProgramPath("lld"));
-   C.addCommand(llvm::make_unique<Command>(JA, *this, Lld, LldArgs, Inputs));
- }
- 
-@@ -218,9 +212,8 @@ void AMDGCN::constructHIPFatbinCommand(Compilation &C, const JobAction &JA,
-       Args.MakeArgString(std::string("-outputs=").append(OutputFileName));
-   BundlerArgs.push_back(BundlerOutputArg);
- 
--  SmallString<128> BundlerPath(C.getDriver().Dir);
--  llvm::sys::path::append(BundlerPath, "clang-offload-bundler");
--  const char *Bundler = Args.MakeArgString(BundlerPath);
-+  const char *Bundler = Args.MakeArgString(
-+          T.getToolChain().GetProgramPath("clang-offload-bundler"));
-   C.addCommand(llvm::make_unique<Command>(JA, T, Bundler, BundlerArgs, Inputs));
- }
- 
--- 
-2.23.1
-
diff --git a/pkgs/development/compilers/llvm/8/clang/compiler-rt-baremetal.patch b/pkgs/development/compilers/llvm/8/clang/compiler-rt-baremetal.patch
deleted file mode 100644
index a4a0f21b0fcd..000000000000
--- a/pkgs/development/compilers/llvm/8/clang/compiler-rt-baremetal.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-Index: lib/Driver/ToolChains/BareMetal.cpp
-===================================================================
---- a/lib/Driver/ToolChains/BareMetal.cpp
-+++ b/lib/Driver/ToolChains/BareMetal.cpp
-@@ -157,7 +157,7 @@
- void BareMetal::AddLinkRuntimeLib(const ArgList &Args,
-                                   ArgStringList &CmdArgs) const {
-   CmdArgs.push_back(Args.MakeArgString("-lclang_rt.builtins-" +
--                                       getTriple().getArchName() + ".a"));
-+                                       getTriple().getArchName()));
- }
- 
- void baremetal::Linker::ConstructJob(Compilation &C, const JobAction &JA,
-Index: test/Driver/baremetal.cpp
-===================================================================
---- a/test/Driver/baremetal.cpp
-+++ b/test/Driver/baremetal.cpp
-@@ -13,7 +13,7 @@
- // CHECK-V6M-C-NEXT: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic"
- // CHECK-V6M-C-SAME: "-L[[RESOURCE_DIR:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}baremetal"
- // CHECK-V6M-C-SAME: "-T" "semihosted.lds" "-Lsome{{[/\\]+}}directory{{[/\\]+}}user{{[/\\]+}}asked{{[/\\]+}}for"
--// CHECK-V6M-C-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m.a"
-+// CHECK-V6M-C-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m"
- // CHECK-V6M-C-SAME: "-o" "{{.*}}.o"
- 
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-@@ -35,7 +35,7 @@
- // CHECK-V6M-DEFAULTCXX: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic"
- // CHECK-V6M-DEFAULTCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}lib{{(64)?}}{{[/\\]+}}clang{{[/\\]+}}{{.*}}{{[/\\]+}}lib{{[/\\]+}}baremetal"
- // CHECK-V6M-DEFAULTCXX-SAME: "-lc++" "-lc++abi" "-lunwind"
--// CHECK-V6M-DEFAULTCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m.a"
-+// CHECK-V6M-DEFAULTCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m"
- // CHECK-V6M-DEFAULTCXX-SAME: "-o" "{{.*}}.o"
- 
- // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-@@ -48,7 +48,7 @@
- // CHECK-V6M-LIBCXX: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic"
- // CHECK-V6M-LIBCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}lib{{(64)?}}{{[/\\]+}}clang{{[/\\]+}}{{.*}}{{[/\\]+}}lib{{[/\\]+}}baremetal"
- // CHECK-V6M-LIBCXX-SAME: "-lc++" "-lc++abi" "-lunwind"
--// CHECK-V6M-LIBCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m.a"
-+// CHECK-V6M-LIBCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m"
- // CHECK-V6M-LIBCXX-SAME: "-o" "{{.*}}.o"
- 
- // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-@@ -61,7 +61,7 @@
- // CHECK-V6M-LIBSTDCXX: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic"
- // CHECK-V6M-LIBSTDCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}lib{{(64)?}}{{[/\\]+}}clang{{[/\\]+}}{{.*}}{{[/\\]+}}lib{{[/\\]+}}baremetal"
- // CHECK-V6M-LIBSTDCXX-SAME: "-lstdc++" "-lsupc++" "-lunwind"
--// CHECK-V6M-LIBSTDCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m.a"
-+// CHECK-V6M-LIBSTDCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m"
- // CHECK-V6M-LIBSTDCXX-SAME: "-o" "{{.*}}.o"
- 
- // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \
diff --git a/pkgs/development/compilers/llvm/8/clang/default.nix b/pkgs/development/compilers/llvm/8/clang/default.nix
deleted file mode 100644
index 994f9bd967c4..000000000000
--- a/pkgs/development/compilers/llvm/8/clang/default.nix
+++ /dev/null
@@ -1,145 +0,0 @@
-{ lib, stdenv, llvm_meta, fetch, substituteAll, cmake, libxml2, libllvm, version, clang-tools-extra_src, python3
-, buildLlvmTools
-, fixDarwinDylibNames
-, enableManpages ? false
-, enablePolly ? false # TODO: get this info from llvm (passthru?)
-}:
-
-let
-  self = stdenv.mkDerivation ({
-    pname = "clang";
-    inherit version;
-
-    src = fetch "cfe" "0ihnbdl058gvl2wdy45p5am55bq8ifx8m9mhcsgj9ax8yxlzvvvh";
-
-    unpackPhase = ''
-      unpackFile $src
-      mv cfe-${version}* clang
-      sourceRoot=$PWD/clang
-      unpackFile ${clang-tools-extra_src}
-      mv clang-tools-extra-* $sourceRoot/tools/extra
-    '';
-
-    nativeBuildInputs = [ cmake python3 ]
-      ++ lib.optional enableManpages python3.pkgs.sphinx
-      ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
-
-    buildInputs = [ libxml2 libllvm ];
-
-    cmakeFlags = [
-      "-DCMAKE_CXX_FLAGS=-std=c++11"
-      "-DCLANGD_BUILD_XPC=OFF"
-      "-DLLVM_ENABLE_RTTI=ON"
-    ] ++ lib.optionals enableManpages [
-      "-DCLANG_INCLUDE_DOCS=ON"
-      "-DLLVM_ENABLE_SPHINX=ON"
-      "-DSPHINX_OUTPUT_MAN=ON"
-      "-DSPHINX_OUTPUT_HTML=OFF"
-      "-DSPHINX_WARNINGS_AS_ERRORS=OFF"
-    ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
-      "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
-      "-DCLANG_TABLEGEN=${buildLlvmTools.libclang.dev}/bin/clang-tblgen"
-    ] ++ lib.optionals enablePolly [
-      "-DWITH_POLLY=ON"
-      "-DLINK_POLLY_INTO_TOOLS=ON"
-    ];
-
-    patches = [
-      ../../common/clang/5-8-purity.patch
-      ./xpc.patch
-      # Backport for -static-pie, which the latter touches, and which is nice in
-      # its own right.
-      ./static-pie.patch
-      # Backport for the `--unwindlib=[libgcc|compiler-rt]` flag, which is
-      # needed for our bootstrapping to not interfere with C.
-      ./unwindlib.patch
-      # https://reviews.llvm.org/D51899
-      ./compiler-rt-baremetal.patch
-      # make clang -xhip use $PATH to find executables
-      ./HIP-use-PATH-8.patch
-      ./gnu-install-dirs.patch
-      (substituteAll {
-        src = ../../clang-6-10-LLVMgold-path.patch;
-        libllvmLibdir = "${libllvm.lib}/lib";
-      })
-    ];
-
-    postPatch = ''
-      sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \
-             -e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' \
-             lib/Driver/ToolChains/*.cpp
-    '' + lib.optionalString stdenv.hostPlatform.isMusl ''
-      sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp
-    '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
-      substituteInPlace tools/extra/clangd/CMakeLists.txt \
-        --replace "NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB" FALSE
-    '';
-
-    outputs = [ "out" "lib" "dev" "python" ];
-
-    postInstall = ''
-      ln -sv $out/bin/clang $out/bin/cpp
-
-      # Move libclang to 'lib' output
-      moveToOutput "lib/libclang.*" "$lib"
-      substituteInPlace $out/lib/cmake/clang/ClangTargets-release.cmake \
-          --replace "\''${_IMPORT_PREFIX}/lib/libclang." "$lib/lib/libclang."
-
-      mkdir -p $python/bin $python/share/{clang,scan-view}
-      mv $out/bin/{git-clang-format,scan-view} $python/bin
-      if [ -e $out/bin/set-xcode-analyzer ]; then
-        mv $out/bin/set-xcode-analyzer $python/bin
-      fi
-      mv $out/share/clang/*.py $python/share/clang
-      mv $out/share/scan-view/*.py $python/share/scan-view
-      rm $out/bin/c-index-test
-      patchShebangs $python/bin
-
-      mkdir -p $dev/bin
-      cp bin/clang-tblgen $dev/bin
-    '';
-
-    passthru = {
-      inherit libllvm;
-      isClang = true;
-      hardeningUnsupportedFlags = [ "fortify3" ];
-    };
-
-    meta = llvm_meta // {
-      homepage = "https://clang.llvm.org/";
-      description = "A C language family frontend for LLVM";
-      longDescription = ''
-        The Clang project provides a language front-end and tooling
-        infrastructure for languages in the C language family (C, C++, Objective
-        C/C++, OpenCL, CUDA, and RenderScript) for the LLVM project.
-        It aims to deliver amazingly fast compiles, extremely useful error and
-        warning messages and to provide a platform for building great source
-        level tools. The Clang Static Analyzer and clang-tidy are tools that
-        automatically find bugs in your code, and are great examples of the sort
-        of tools that can be built using the Clang frontend as a library to
-        parse C/C++ code.
-      '';
-      mainProgram = "clang";
-    };
-  } // lib.optionalAttrs enableManpages {
-    pname = "clang-manpages";
-
-    buildPhase = ''
-      make docs-clang-man
-    '';
-
-    installPhase = ''
-      mkdir -p $out/share/man/man1
-      # Manually install clang manpage
-      cp docs/man/*.1 $out/share/man/man1/
-    '';
-
-    outputs = [ "out" ];
-
-    doCheck = false;
-
-    meta = llvm_meta // {
-      description = "man page for Clang ${version}";
-    };
-  });
-in self
diff --git a/pkgs/development/compilers/llvm/8/clang/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/8/clang/gnu-install-dirs.patch
deleted file mode 100644
index e4b9c3f8ddd6..000000000000
--- a/pkgs/development/compilers/llvm/8/clang/gnu-install-dirs.patch
+++ /dev/null
@@ -1,290 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index c2016a45ca6b..9224797da0b5 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -9,6 +9,8 @@ endif()
- if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
-   project(Clang)
- 
-+  include(GNUInstallDirs)
-+
-   # Rely on llvm-config.
-   set(CONFIG_OUTPUT)
-   if(LLVM_CONFIG)
-@@ -382,7 +384,7 @@ include_directories(BEFORE
- 
- if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-   install(DIRECTORY include/clang include/clang-c
--    DESTINATION include
-+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-     FILES_MATCHING
-     PATTERN "*.def"
-     PATTERN "*.h"
-@@ -391,7 +393,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-     )
- 
-   install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/clang
--    DESTINATION include
-+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-     FILES_MATCHING
-     PATTERN "CMakeFiles" EXCLUDE
-     PATTERN "*.inc"
-@@ -399,7 +401,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-     )
- 
-   install(PROGRAMS utils/bash-autocomplete.sh
--    DESTINATION share/clang
-+    DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
-     )
- endif()
- 
-diff --git a/cmake/modules/AddClang.cmake b/cmake/modules/AddClang.cmake
-index 7e22f16f365b..3c0c1d245969 100644
---- a/cmake/modules/AddClang.cmake
-+++ b/cmake/modules/AddClang.cmake
-@@ -99,9 +99,9 @@ macro(add_clang_library name)
-       install(TARGETS ${name}
-         COMPONENT ${name}
-         ${export_to_clangtargets}
--        LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
--        ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
--        RUNTIME DESTINATION bin)
-+        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
-+        ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
-+        RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
- 
-       if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES)
-         add_llvm_install_targets(install-${name}
-@@ -142,7 +142,7 @@ macro(add_clang_tool name)
- 
-     install(TARGETS ${name}
-       ${export_to_clangtargets}
--      RUNTIME DESTINATION bin
-+      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
-       COMPONENT ${name})
- 
-     if(NOT CMAKE_CONFIGURATION_TYPES)
-@@ -157,5 +157,5 @@ endmacro()
- macro(add_clang_symlink name dest)
-   add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE)
-   # Always generate install targets
--  llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE)
-+  llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE)
- endmacro()
-diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt
-index e444c9c8706f..f8e4d06366a4 100644
---- a/lib/Headers/CMakeLists.txt
-+++ b/lib/Headers/CMakeLists.txt
-@@ -164,19 +164,19 @@ install(
-   FILES ${files} ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h
-   COMPONENT clang-headers
-   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
--  DESTINATION lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
-+  DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
- 
- install(
-   FILES ${files} ${CMAKE_CURRENT_BINARY_DIR}/arm_fp16.h
-   COMPONENT clang-headers
-   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
--  DESTINATION lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
-+  DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
- 
- install(
-   FILES ${cuda_wrapper_files}
-   COMPONENT clang-headers
-   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
--  DESTINATION lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include/cuda_wrappers)
-+  DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include/cuda_wrappers)
- 
- if (NOT CMAKE_CONFIGURATION_TYPES) # don't add this for IDE's.
-   add_llvm_install_targets(install-clang-headers
-diff --git a/tools/c-index-test/CMakeLists.txt b/tools/c-index-test/CMakeLists.txt
-index 53e3421f1b35..79ae5bb4c399 100644
---- a/tools/c-index-test/CMakeLists.txt
-+++ b/tools/c-index-test/CMakeLists.txt
-@@ -54,7 +54,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-     set_property(TARGET c-index-test APPEND PROPERTY INSTALL_RPATH
-        "@executable_path/../../lib")
-   else()
--    set(INSTALL_DESTINATION bin)
-+    set(INSTALL_DESTINATION ${CMAKE_INSTALL_BINDIR})
-   endif()
- 
-   install(TARGETS c-index-test
-diff --git a/tools/clang-check/CMakeLists.txt b/tools/clang-check/CMakeLists.txt
-index b837b0a0a5d9..9e30bd5780a5 100644
---- a/tools/clang-check/CMakeLists.txt
-+++ b/tools/clang-check/CMakeLists.txt
-@@ -21,4 +21,4 @@ target_link_libraries(clang-check
-   )
- 
- install(TARGETS clang-check
--  RUNTIME DESTINATION bin)
-+  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
-diff --git a/tools/clang-extdef-mapping/CMakeLists.txt b/tools/clang-extdef-mapping/CMakeLists.txt
-index 6c81689a831a..dacc14737719 100644
---- a/tools/clang-extdef-mapping/CMakeLists.txt
-+++ b/tools/clang-extdef-mapping/CMakeLists.txt
-@@ -18,4 +18,4 @@ target_link_libraries(clang-extdef-mapping
-   )
- 
- install(TARGETS clang-extdef-mapping
--  RUNTIME DESTINATION bin)
-+  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
-diff --git a/tools/clang-format/CMakeLists.txt b/tools/clang-format/CMakeLists.txt
-index a295e8cd0b2a..1973ff82c7f6 100644
---- a/tools/clang-format/CMakeLists.txt
-+++ b/tools/clang-format/CMakeLists.txt
-@@ -21,20 +21,20 @@ if( LLVM_LIB_FUZZING_ENGINE OR LLVM_USE_SANITIZE_COVERAGE )
- endif()
- 
- install(PROGRAMS clang-format-bbedit.applescript
--  DESTINATION share/clang
-+  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
-   COMPONENT clang-format)
- install(PROGRAMS clang-format-diff.py
--  DESTINATION share/clang
-+  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
-   COMPONENT clang-format)
- install(PROGRAMS clang-format-sublime.py
--  DESTINATION share/clang
-+  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
-   COMPONENT clang-format)
- install(PROGRAMS clang-format.el
--  DESTINATION share/clang
-+  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
-   COMPONENT clang-format)
- install(PROGRAMS clang-format.py
--  DESTINATION share/clang
-+  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
-   COMPONENT clang-format)
- install(PROGRAMS git-clang-format
--  DESTINATION bin
-+  DESTINATION ${CMAKE_INSTALL_BINDIR}
-   COMPONENT clang-format)
-diff --git a/tools/clang-offload-bundler/CMakeLists.txt b/tools/clang-offload-bundler/CMakeLists.txt
-index 8718015be76a..7a038f39622e 100644
---- a/tools/clang-offload-bundler/CMakeLists.txt
-+++ b/tools/clang-offload-bundler/CMakeLists.txt
-@@ -22,4 +22,4 @@ target_link_libraries(clang-offload-bundler
-   ${CLANG_OFFLOAD_BUNDLER_LIB_DEPS}
-   )
- 
--install(TARGETS clang-offload-bundler RUNTIME DESTINATION bin)
-+install(TARGETS clang-offload-bundler RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
-diff --git a/tools/clang-rename/CMakeLists.txt b/tools/clang-rename/CMakeLists.txt
-index 45cbd763425c..f534e022024a 100644
---- a/tools/clang-rename/CMakeLists.txt
-+++ b/tools/clang-rename/CMakeLists.txt
-@@ -19,8 +19,8 @@ target_link_libraries(clang-rename
-   )
- 
- install(PROGRAMS clang-rename.py
--  DESTINATION share/clang
-+  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
-   COMPONENT clang-rename)
- install(PROGRAMS clang-rename.el
--  DESTINATION share/clang
-+  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
-   COMPONENT clang-rename)
-diff --git a/tools/diagtool/CMakeLists.txt b/tools/diagtool/CMakeLists.txt
-index 96d1c390249c..41c762b37b76 100644
---- a/tools/diagtool/CMakeLists.txt
-+++ b/tools/diagtool/CMakeLists.txt
-@@ -21,7 +21,7 @@ target_link_libraries(diagtool
- if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-   install(TARGETS diagtool
-     COMPONENT diagtool
--    RUNTIME DESTINATION bin)
-+    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
- 
-   if (NOT CMAKE_CONFIGURATION_TYPES)
-     add_llvm_install_targets(install-diagtool
-diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt
-index 32333b011ad1..258dfb2d520c 100644
---- a/tools/libclang/CMakeLists.txt
-+++ b/tools/libclang/CMakeLists.txt
-@@ -131,7 +131,7 @@ endif()
- if(INTERNAL_INSTALL_PREFIX)
-   set(LIBCLANG_HEADERS_INSTALL_DESTINATION "${INTERNAL_INSTALL_PREFIX}/include")
- else()
--  set(LIBCLANG_HEADERS_INSTALL_DESTINATION include)
-+  set(LIBCLANG_HEADERS_INSTALL_DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
- endif()
- 
- install(DIRECTORY ../../include/clang-c
-@@ -162,7 +162,7 @@ foreach(PythonVersion ${CLANG_PYTHON_BINDINGS_VERSIONS})
-           COMPONENT
-             libclang-python-bindings
-           DESTINATION
--            "lib${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages")
-+            "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages")
- endforeach()
- if(NOT CMAKE_CONFIGURATION_TYPES)
-   add_custom_target(libclang-python-bindings)
-diff --git a/tools/scan-build/CMakeLists.txt b/tools/scan-build/CMakeLists.txt
-index 380379300b09..adfd58ed5f7d 100644
---- a/tools/scan-build/CMakeLists.txt
-+++ b/tools/scan-build/CMakeLists.txt
-@@ -41,7 +41,7 @@ if(CLANG_INSTALL_SCANBUILD)
-                          ${CMAKE_BINARY_DIR}/bin/
-                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
-     list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
--    install(PROGRAMS bin/${BinFile} DESTINATION bin)
-+    install(PROGRAMS bin/${BinFile} DESTINATION ${CMAKE_INSTALL_BINDIR})
-   endforeach()
- 
-   foreach(LibexecFile ${LibexecFiles})
-@@ -53,7 +53,7 @@ if(CLANG_INSTALL_SCANBUILD)
-                          ${CMAKE_BINARY_DIR}/libexec/
-                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/libexec/${LibexecFile})
-     list(APPEND Depends ${CMAKE_BINARY_DIR}/libexec/${LibexecFile})
--    install(PROGRAMS libexec/${LibexecFile} DESTINATION libexec)
-+    install(PROGRAMS libexec/${LibexecFile} DESTINATION ${CMAKE_INSTALL_LIBEXECDIR})
-   endforeach()
- 
-   foreach(ManPage ${ManPages})
-@@ -77,7 +77,7 @@ if(CLANG_INSTALL_SCANBUILD)
-                          ${CMAKE_BINARY_DIR}/share/scan-build/
-                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/scan-build/${ShareFile})
-     list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-build/${ShareFile})
--    install(FILES share/scan-build/${ShareFile} DESTINATION share/scan-build)
-+    install(FILES share/scan-build/${ShareFile} DESTINATION ${CMAKE_INSTALL_DATADIR}/scan-build)
-   endforeach()
- 
-   add_custom_target(scan-build ALL DEPENDS ${Depends})
-diff --git a/tools/scan-view/CMakeLists.txt b/tools/scan-view/CMakeLists.txt
-index b305ca562a72..554bcb379061 100644
---- a/tools/scan-view/CMakeLists.txt
-+++ b/tools/scan-view/CMakeLists.txt
-@@ -21,7 +21,7 @@ if(CLANG_INSTALL_SCANVIEW)
-                          ${CMAKE_BINARY_DIR}/bin/
-                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
-     list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
--    install(PROGRAMS bin/${BinFile} DESTINATION bin)
-+    install(PROGRAMS bin/${BinFile} DESTINATION ${CMAKE_INSTALL_BINDIR})
-   endforeach()
- 
-   foreach(ShareFile ${ShareFiles})
-@@ -33,7 +33,7 @@ if(CLANG_INSTALL_SCANVIEW)
-                          ${CMAKE_BINARY_DIR}/share/scan-view/
-                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/${ShareFile})
-     list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-view/${ShareFile})
--    install(FILES share/${ShareFile} DESTINATION share/scan-view)
-+    install(FILES share/${ShareFile} DESTINATION ${CMAKE_INSTALL_DATADIR}/scan-view)
-   endforeach()
- 
-   add_custom_target(scan-view ALL DEPENDS ${Depends})
-diff --git a/utils/hmaptool/CMakeLists.txt b/utils/hmaptool/CMakeLists.txt
-index 5573009d343a..24b3a90f233f 100644
---- a/utils/hmaptool/CMakeLists.txt
-+++ b/utils/hmaptool/CMakeLists.txt
-@@ -9,7 +9,7 @@ add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HM
-                    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${CLANG_HMAPTOOL})
- 
- list(APPEND Depends ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HMAPTOOL})
--install(PROGRAMS ${CLANG_HMAPTOOL} DESTINATION bin)
-+install(PROGRAMS ${CLANG_HMAPTOOL} DESTINATION ${CMAKE_INSTALL_BINDIR})
- 
- add_custom_target(hmaptool ALL DEPENDS ${Depends})
- set_target_properties(hmaptool PROPERTIES FOLDER "Utils")
diff --git a/pkgs/development/compilers/llvm/8/clang/static-pie.patch b/pkgs/development/compilers/llvm/8/clang/static-pie.patch
deleted file mode 100644
index d1f86a162327..000000000000
--- a/pkgs/development/compilers/llvm/8/clang/static-pie.patch
+++ /dev/null
@@ -1,157 +0,0 @@
-commit 7a9842bc92921e79b84630045276861be90b2d47
-Author: Siva Chandra <sivachandra@google.com>
-Date:   Wed Feb 20 19:07:04 2019 +0000
-
-    [Clang Driver] Add support for "-static-pie" argument to the Clang driver.
-    
-    Summary: This change mimics GCC's support for the "-static-pie" argument.
-    
-    Subscribers: cfe-commits
-    
-    Tags: #clang
-    
-    Differential Revision: https://reviews.llvm.org/D58307
-    
-    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@354502 91177308-0d34-0410-b5e6-96231b3b80d8
-    (cherry picked from commit 7d6cd7825e6883f8650e32b07f3750824c2cef62)
-
-diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td
-index d02d9744d7..75a21e66c7 100644
---- a/include/clang/Driver/Options.td
-+++ b/include/clang/Driver/Options.td
-@@ -2502,6 +2502,7 @@ def pthread : Flag<["-"], "pthread">, Flags<[CC1Option]>,
- def no_pthread : Flag<["-"], "no-pthread">, Flags<[CC1Option]>;
- def p : Flag<["-"], "p">;
- def pie : Flag<["-"], "pie">;
-+def static_pie : Flag<["-"], "static-pie">;
- def read__only__relocs : Separate<["-"], "read_only_relocs">;
- def remap : Flag<["-"], "remap">;
- def rewrite_objc : Flag<["-"], "rewrite-objc">, Flags<[DriverOption,CC1Option]>,
-diff --git a/lib/Driver/ToolChains/CommonArgs.cpp b/lib/Driver/ToolChains/CommonArgs.cpp
-index d7e316befa..85ffc1618d 100644
---- a/lib/Driver/ToolChains/CommonArgs.cpp
-+++ b/lib/Driver/ToolChains/CommonArgs.cpp
-@@ -1138,19 +1138,22 @@ static void AddLibgcc(const llvm::Triple &Triple, const Driver &D,
-   bool isCygMing = Triple.isOSCygMing();
-   bool IsIAMCU = Triple.isOSIAMCU();
-   bool StaticLibgcc = Args.hasArg(options::OPT_static_libgcc) ||
--                      Args.hasArg(options::OPT_static);
-+                      Args.hasArg(options::OPT_static) ||
-+                      Args.hasArg(options::OPT_static_pie);
- 
-   bool SharedLibgcc = Args.hasArg(options::OPT_shared_libgcc);
-   bool UnspecifiedLibgcc = !StaticLibgcc && !SharedLibgcc;
- 
-   // Gcc adds libgcc arguments in various ways:
-   //
--  // gcc <none>: -lgcc --as-needed -lgcc_s --no-as-needed
--  // g++ <none>:                   -lgcc_s               -lgcc
--  // gcc shared:                   -lgcc_s               -lgcc
--  // g++ shared:                   -lgcc_s               -lgcc
--  // gcc static: -lgcc             -lgcc_eh
--  // g++ static: -lgcc             -lgcc_eh
-+  // gcc <none>:     -lgcc --as-needed -lgcc_s --no-as-needed
-+  // g++ <none>:                       -lgcc_s               -lgcc
-+  // gcc shared:                       -lgcc_s               -lgcc
-+  // g++ shared:                       -lgcc_s               -lgcc
-+  // gcc static:     -lgcc             -lgcc_eh
-+  // g++ static:     -lgcc             -lgcc_eh
-+  // gcc static-pie: -lgcc             -lgcc_eh
-+  // g++ static-pie: -lgcc             -lgcc_eh
-   //
-   // Also, certain targets need additional adjustments.
- 
-diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp
-index 69dba8fec8..0faa0bb473 100644
---- a/lib/Driver/ToolChains/Gnu.cpp
-+++ b/lib/Driver/ToolChains/Gnu.cpp
-@@ -334,6 +334,7 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
-   const bool isAndroid = ToolChain.getTriple().isAndroid();
-   const bool IsIAMCU = ToolChain.getTriple().isOSIAMCU();
-   const bool IsPIE = getPIE(Args, ToolChain);
-+  const bool IsStaticPIE = Args.hasArg(options::OPT_static_pie);
-   const bool HasCRTBeginEndFiles =
-       ToolChain.getTriple().hasEnvironment() ||
-       (ToolChain.getTriple().getVendor() != llvm::Triple::MipsTechnologies);
-@@ -354,6 +355,12 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
-   if (IsPIE)
-     CmdArgs.push_back("-pie");
- 
-+  if (IsStaticPIE) {
-+    CmdArgs.push_back("-static");
-+    CmdArgs.push_back("-pie");
-+    CmdArgs.push_back("--no-dynamic-linker");
-+  }
-+
-   if (Args.hasArg(options::OPT_rdynamic))
-     CmdArgs.push_back("-export-dynamic");
- 
-@@ -415,6 +422,8 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
-           crt1 = "gcrt1.o";
-         else if (IsPIE)
-           crt1 = "Scrt1.o";
-+        else if (IsStaticPIE)
-+          crt1 = "rcrt1.o";
-         else
-           crt1 = "crt1.o";
-       }
-@@ -432,7 +441,7 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
-         crtbegin = isAndroid ? "crtbegin_static.o" : "crtbeginT.o";
-       else if (Args.hasArg(options::OPT_shared))
-         crtbegin = isAndroid ? "crtbegin_so.o" : "crtbeginS.o";
--      else if (IsPIE)
-+      else if (IsPIE || IsStaticPIE)
-         crtbegin = isAndroid ? "crtbegin_dynamic.o" : "crtbeginS.o";
-       else
-         crtbegin = isAndroid ? "crtbegin_dynamic.o" : "crtbegin.o";
-@@ -483,7 +492,7 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
- 
-   if (!Args.hasArg(options::OPT_nostdlib)) {
-     if (!Args.hasArg(options::OPT_nodefaultlibs)) {
--      if (Args.hasArg(options::OPT_static))
-+      if (Args.hasArg(options::OPT_static) || IsStaticPIE)
-         CmdArgs.push_back("--start-group");
- 
-       if (NeedsSanitizerDeps)
-@@ -518,7 +527,7 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
-       if (IsIAMCU)
-         CmdArgs.push_back("-lgloss");
- 
--      if (Args.hasArg(options::OPT_static))
-+      if (Args.hasArg(options::OPT_static) || IsStaticPIE)
-         CmdArgs.push_back("--end-group");
-       else
-         AddRunTimeLibs(ToolChain, D, CmdArgs, Args);
-@@ -535,7 +544,7 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
-       const char *crtend;
-       if (Args.hasArg(options::OPT_shared))
-         crtend = isAndroid ? "crtend_so.o" : "crtendS.o";
--      else if (IsPIE)
-+      else if (IsPIE || IsStaticPIE)
-         crtend = isAndroid ? "crtend_android.o" : "crtendS.o";
-       else
-         crtend = isAndroid ? "crtend_android.o" : "crtend.o";
-diff --git a/test/Driver/linux-ld.c b/test/Driver/linux-ld.c
-index 3ab81be490..800f782523 100644
---- a/test/Driver/linux-ld.c
-+++ b/test/Driver/linux-ld.c
-@@ -176,6 +176,19 @@
- // CHECK-CLANG-NO-LIBGCC-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
- // CHECK-CLANG-NO-LIBGCC-STATIC: "--start-group" "-lgcc" "-lgcc_eh" "-lc" "--end-group"
- //
-+// RUN: %clang -static-pie -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-+// RUN:     --target=x86_64-unknown-linux -rtlib=platform \
-+// RUN:     --gcc-toolchain="" \
-+// RUN:     --sysroot=%S/Inputs/basic_linux_tree \
-+// RUN:   | FileCheck --check-prefix=CHECK-CLANG-LD-STATIC-PIE %s
-+// CHECK-CLANG-LD-STATIC-PIE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
-+// CHECK-CLANG-LD-STATIC-PIE: "-static"
-+// CHECK-CLANG-LD-STATIC-PIE: "-pie"
-+// CHECK-CLANG-LD-STATIC-PIE: "--no-dynamic-linker"
-+// CHECK-CLANG-LD-STATIC-PIE: "-m" "elf_x86_64"
-+// CHECK-CLANG-LD-STATIC-PIE: "{{.*}}rcrt1.o"
-+// CHECK-CLANG-LD-STATIC-PIE: "--start-group" "-lgcc" "-lgcc_eh" "-lc" "--end-group"
-+//
- // RUN: %clang -dynamic -no-canonical-prefixes %s -### -o %t.o 2>&1 \
- // RUN:     --target=x86_64-unknown-linux -rtlib=platform \
- // RUN:     --gcc-toolchain="" \
diff --git a/pkgs/development/compilers/llvm/8/clang/unwindlib.patch b/pkgs/development/compilers/llvm/8/clang/unwindlib.patch
deleted file mode 100644
index 6958fce60cef..000000000000
--- a/pkgs/development/compilers/llvm/8/clang/unwindlib.patch
+++ /dev/null
@@ -1,372 +0,0 @@
-commit cd5603a4767277a29d3e67a9c3f2a5d2129cd973
-Author: Sterling Augustine <saugustine@google.com>
-Date:   Tue Mar 19 20:01:59 2019 +0000
-
-    Add --unwindlib=[libgcc|compiler-rt] to parallel --rtlib= [take 2]
-    
-    "clang++ hello.cc --rtlib=compiler-rt"
-    
-    now can works without specifying additional unwind or exception
-    handling libraries.
-    
-    This reworked version of the feature no longer modifies today's default
-    unwind library for compiler-rt: which is nothing. Rather, a user
-    can specify -DCLANG_DEFAULT_UNWINDLIB=libunwind when configuring
-    the compiler.
-    
-    This should address the issues from the previous version.
-    
-    Update tests for new --unwindlib semantics.
-    
-    Differential Revision: https://reviews.llvm.org/D59109
-    
-    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@356508 91177308-0d34-0410-b5e6-96231b3b80d8
-    (cherry picked from commit 344aa82a52f2fae527f58284567ae305a314f7a8)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index c2016a45ca..edeb2b66a1 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -261,6 +261,24 @@ if (NOT(CLANG_DEFAULT_RTLIB STREQUAL "" OR
-     "Default runtime library to use (\"libgcc\" or \"compiler-rt\", empty for platform default)" FORCE)
- endif()
- 
-+set(CLANG_DEFAULT_UNWINDLIB "" CACHE STRING
-+  "Default unwind library to use (\"none\" \"libgcc\" or \"libunwind\", empty to match runtime library.)")
-+if (CLANG_DEFAULT_UNWINDLIB STREQUAL "")
-+  if (CLANG_DEFAULT_RTLIB STREQUAL "libgcc")
-+    set (CLANG_DEFAULT_UNWINDLIB "libgcc" CACHE STRING "" FORCE)
-+  elseif (CLANG_DEFAULT_RTLIBS STREQUAL "libunwind")
-+    set (CLANG_DEFAULT_UNWINDLIB "none" CACHE STRING "" FORCE)
-+  endif()
-+endif()
-+
-+if (NOT(CLANG_DEFAULT_UNWINDLIB STREQUAL "none" OR
-+        CLANG_DEFAULT_UNWINDLIB STREQUAL "libgcc" OR
-+        CLANG_DEFAULT_UNWINDLIB STREQUAL "libunwind"))
-+  message(WARNING "Resetting default unwindlib to use platform default")
-+  set(CLANG_DEFAULT_UNWINDLIB "" CACHE STRING
-+    "Default unwind library to use (\"none\" \"libgcc\" or \"libunwind\", empty for none)" FORCE)
-+endif()
-+
- set(CLANG_DEFAULT_OBJCOPY "objcopy" CACHE STRING
-   "Default objcopy executable to use.")
- 
-diff --git a/include/clang/Basic/DiagnosticDriverKinds.td b/include/clang/Basic/DiagnosticDriverKinds.td
-index 5475e28ed7..15971210e4 100644
---- a/include/clang/Basic/DiagnosticDriverKinds.td
-+++ b/include/clang/Basic/DiagnosticDriverKinds.td
-@@ -52,6 +52,10 @@ def err_drv_invalid_rtlib_name : Error<
-   "invalid runtime library name in argument '%0'">;
- def err_drv_unsupported_rtlib_for_platform : Error<
-   "unsupported runtime library '%0' for platform '%1'">;
-+def err_drv_invalid_unwindlib_name : Error<
-+  "invalid unwind library name in argument '%0'">;
-+def err_drv_incompatible_unwindlib : Error<
-+  "--rtlib=libgcc requires --unwindlib=libgcc">;
- def err_drv_invalid_stdlib_name : Error<
-   "invalid library name in argument '%0'">;
- def err_drv_invalid_output_with_multiple_archs : Error<
-diff --git a/include/clang/Config/config.h.cmake b/include/clang/Config/config.h.cmake
-index 1d624450b9..2d4cb747e8 100644
---- a/include/clang/Config/config.h.cmake
-+++ b/include/clang/Config/config.h.cmake
-@@ -23,6 +23,9 @@
- /* Default runtime library to use. */
- #define CLANG_DEFAULT_RTLIB "${CLANG_DEFAULT_RTLIB}"
- 
-+/* Default unwind library to use. */
-+#define CLANG_DEFAULT_UNWINDLIB "${CLANG_DEFAULT_UNWINDLIB}"
-+
- /* Default objcopy to use */
- #define CLANG_DEFAULT_OBJCOPY "${CLANG_DEFAULT_OBJCOPY}"
- 
-diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td
-index 75a21e66c7..4da0e54965 100644
---- a/include/clang/Driver/Options.td
-+++ b/include/clang/Driver/Options.td
-@@ -2570,6 +2570,8 @@ def std_EQ : Joined<["-", "--"], "std=">, Flags<[CC1Option]>,
-   }]>;
- def stdlib_EQ : Joined<["-", "--"], "stdlib=">, Flags<[CC1Option]>,
-   HelpText<"C++ standard library to use">, Values<"libc++,libstdc++,platform">;
-+def unwindlib_EQ : Joined<["-", "--"], "unwindlib=">, Flags<[CC1Option]>,
-+  HelpText<"Unwind library to use">, Values<"libgcc,unwindlib,platform">;
- def sub__library : JoinedOrSeparate<["-"], "sub_library">;
- def sub__umbrella : JoinedOrSeparate<["-"], "sub_umbrella">;
- def system_header_prefix : Joined<["--"], "system-header-prefix=">,
-diff --git a/include/clang/Driver/ToolChain.h b/include/clang/Driver/ToolChain.h
-index d5f75b8271..4bedf760eb 100644
---- a/include/clang/Driver/ToolChain.h
-+++ b/include/clang/Driver/ToolChain.h
-@@ -100,6 +100,12 @@ public:
-     RLT_Libgcc
-   };
- 
-+  enum UnwindLibType {
-+    UNW_None,
-+    UNW_CompilerRT,
-+    UNW_Libgcc
-+  };
-+
-   enum RTTIMode {
-     RM_Enabled,
-     RM_Disabled,
-@@ -368,6 +374,10 @@ public:
-     return ToolChain::CST_Libstdcxx;
-   }
- 
-+  virtual UnwindLibType GetDefaultUnwindLibType() const {
-+    return ToolChain::UNW_None;
-+  }
-+
-   virtual std::string getCompilerRTPath() const;
- 
-   virtual std::string getCompilerRT(const llvm::opt::ArgList &Args,
-@@ -512,6 +522,10 @@ public:
-   // given compilation arguments.
-   virtual CXXStdlibType GetCXXStdlibType(const llvm::opt::ArgList &Args) const;
- 
-+  // GetUnwindLibType - Determine the unwind library type to use with the
-+  // given compilation arguments.
-+  virtual UnwindLibType GetUnwindLibType(const llvm::opt::ArgList &Args) const;
-+
-   /// AddClangCXXStdlibIncludeArgs - Add the clang -cc1 level arguments to set
-   /// the include paths to use for the given C++ standard library type.
-   virtual void
-diff --git a/lib/Driver/ToolChain.cpp b/lib/Driver/ToolChain.cpp
-index 88a627eab6..d82423f4a8 100644
---- a/lib/Driver/ToolChain.cpp
-+++ b/lib/Driver/ToolChain.cpp
-@@ -680,6 +680,33 @@ ToolChain::RuntimeLibType ToolChain::GetRuntimeLibType(
-   return GetDefaultRuntimeLibType();
- }
- 
-+ToolChain::UnwindLibType ToolChain::GetUnwindLibType(
-+    const ArgList &Args) const {
-+  const Arg *A = Args.getLastArg(options::OPT_unwindlib_EQ);
-+  StringRef LibName = A ? A->getValue() : CLANG_DEFAULT_UNWINDLIB;
-+
-+  if (LibName == "none")
-+    return ToolChain::UNW_None;
-+  else if (LibName == "platform" || LibName == "") {
-+    ToolChain::RuntimeLibType RtLibType = GetRuntimeLibType(Args);
-+    if (RtLibType == ToolChain::RLT_CompilerRT)
-+      return ToolChain::UNW_None;
-+    else if (RtLibType == ToolChain::RLT_Libgcc)
-+      return ToolChain::UNW_Libgcc;
-+  } else if (LibName == "libunwind") {
-+    if (GetRuntimeLibType(Args) == RLT_Libgcc)
-+      getDriver().Diag(diag::err_drv_incompatible_unwindlib);
-+    return ToolChain::UNW_CompilerRT;
-+  } else if (LibName == "libgcc")
-+    return ToolChain::UNW_Libgcc;
-+
-+  if (A)
-+    getDriver().Diag(diag::err_drv_invalid_unwindlib_name)
-+        << A->getAsString(Args);
-+
-+  return GetDefaultUnwindLibType();
-+}
-+
- ToolChain::CXXStdlibType ToolChain::GetCXXStdlibType(const ArgList &Args) const{
-   const Arg *A = Args.getLastArg(options::OPT_stdlib_EQ);
-   StringRef LibName = A ? A->getValue() : CLANG_DEFAULT_CXX_STDLIB;
-diff --git a/lib/Driver/ToolChains/CommonArgs.cpp b/lib/Driver/ToolChains/CommonArgs.cpp
-index 85ffc1618d..9fd29726a4 100644
---- a/lib/Driver/ToolChains/CommonArgs.cpp
-+++ b/lib/Driver/ToolChains/CommonArgs.cpp
-@@ -1132,47 +1132,80 @@ bool tools::isObjCAutoRefCount(const ArgList &Args) {
-   return Args.hasFlag(options::OPT_fobjc_arc, options::OPT_fno_objc_arc, false);
- }
- 
--static void AddLibgcc(const llvm::Triple &Triple, const Driver &D,
--                      ArgStringList &CmdArgs, const ArgList &Args) {
--  bool isAndroid = Triple.isAndroid();
--  bool isCygMing = Triple.isOSCygMing();
--  bool IsIAMCU = Triple.isOSIAMCU();
--  bool StaticLibgcc = Args.hasArg(options::OPT_static_libgcc) ||
--                      Args.hasArg(options::OPT_static) ||
--                      Args.hasArg(options::OPT_static_pie);
--
--  bool SharedLibgcc = Args.hasArg(options::OPT_shared_libgcc);
--  bool UnspecifiedLibgcc = !StaticLibgcc && !SharedLibgcc;
--
--  // Gcc adds libgcc arguments in various ways:
--  //
--  // gcc <none>:     -lgcc --as-needed -lgcc_s --no-as-needed
--  // g++ <none>:                       -lgcc_s               -lgcc
--  // gcc shared:                       -lgcc_s               -lgcc
--  // g++ shared:                       -lgcc_s               -lgcc
--  // gcc static:     -lgcc             -lgcc_eh
--  // g++ static:     -lgcc             -lgcc_eh
--  // gcc static-pie: -lgcc             -lgcc_eh
--  // g++ static-pie: -lgcc             -lgcc_eh
--  //
--  // Also, certain targets need additional adjustments.
-+enum class LibGccType { UnspecifiedLibGcc, StaticLibGcc, SharedLibGcc };
-+
-+static LibGccType getLibGccType(const ArgList &Args) {
-+  bool Static = Args.hasArg(options::OPT_static_libgcc) ||
-+                Args.hasArg(options::OPT_static) ||
-+                Args.hasArg(options::OPT_static_pie);
-+
-+  bool Shared = Args.hasArg(options::OPT_shared_libgcc);
-+  if (Shared)
-+    return LibGccType::SharedLibGcc;
-+  if (Static)
-+    return LibGccType::StaticLibGcc;
-+  return LibGccType::UnspecifiedLibGcc;
-+}
- 
--  bool LibGccFirst = (D.CCCIsCC() && UnspecifiedLibgcc) || StaticLibgcc;
--  if (LibGccFirst)
--    CmdArgs.push_back("-lgcc");
-+// Gcc adds libgcc arguments in various ways:
-+//
-+// gcc <none>:     -lgcc --as-needed -lgcc_s --no-as-needed
-+// g++ <none>:                       -lgcc_s               -lgcc
-+// gcc shared:                       -lgcc_s               -lgcc
-+// g++ shared:                       -lgcc_s               -lgcc
-+// gcc static:     -lgcc             -lgcc_eh
-+// g++ static:     -lgcc             -lgcc_eh
-+// gcc static-pie: -lgcc             -lgcc_eh
-+// g++ static-pie: -lgcc             -lgcc_eh
-+//
-+// Also, certain targets need additional adjustments.
-+
-+static void AddUnwindLibrary(const ToolChain &TC, const Driver &D,
-+                             ArgStringList &CmdArgs, const ArgList &Args) {
-+  ToolChain::UnwindLibType UNW = TC.GetUnwindLibType(Args);
-+  // Targets that don't use unwind libraries.
-+  if (TC.getTriple().isAndroid() || TC.getTriple().isOSIAMCU() ||
-+      TC.getTriple().isOSBinFormatWasm() ||
-+      UNW == ToolChain::UNW_None)
-+    return;
- 
--  bool AsNeeded = D.CCCIsCC() && UnspecifiedLibgcc && !isAndroid && !isCygMing;
-+  LibGccType LGT = getLibGccType(Args);
-+  bool AsNeeded = D.CCCIsCC() && LGT == LibGccType::UnspecifiedLibGcc &&
-+                  !TC.getTriple().isAndroid() && !TC.getTriple().isOSCygMing();
-   if (AsNeeded)
-     CmdArgs.push_back("--as-needed");
- 
--  if ((UnspecifiedLibgcc || SharedLibgcc) && !isAndroid)
--    CmdArgs.push_back("-lgcc_s");
--
--  else if (StaticLibgcc && !isAndroid && !IsIAMCU)
--    CmdArgs.push_back("-lgcc_eh");
-+  switch (UNW) {
-+  case ToolChain::UNW_None:
-+    return;
-+  case ToolChain::UNW_Libgcc: {
-+    LibGccType LGT = getLibGccType(Args);
-+    if (LGT == LibGccType::UnspecifiedLibGcc || LGT == LibGccType::SharedLibGcc)
-+      CmdArgs.push_back("-lgcc_s");
-+    else if (LGT == LibGccType::StaticLibGcc)
-+      CmdArgs.push_back("-lgcc_eh");
-+    break;
-+  }
-+  case ToolChain::UNW_CompilerRT:
-+    CmdArgs.push_back("-lunwind");
-+    break;
-+  }
- 
-   if (AsNeeded)
-     CmdArgs.push_back("--no-as-needed");
-+}
-+
-+static void AddLibgcc(const ToolChain &TC, const Driver &D,
-+                      ArgStringList &CmdArgs, const ArgList &Args) {
-+  bool isAndroid = TC.getTriple().isAndroid();
-+
-+  LibGccType LGT = getLibGccType(Args);
-+  bool LibGccFirst = (D.CCCIsCC() && LGT == LibGccType::UnspecifiedLibGcc) ||
-+                     LGT == LibGccType::StaticLibGcc;
-+  if (LibGccFirst)
-+    CmdArgs.push_back("-lgcc");
-+
-+  AddUnwindLibrary(TC, D, CmdArgs, Args);
- 
-   if (!LibGccFirst)
-     CmdArgs.push_back("-lgcc");
-@@ -1182,7 +1215,7 @@ static void AddLibgcc(const llvm::Triple &Triple, const Driver &D,
-   //
-   // NOTE: This fixes a link error on Android MIPS as well.  The non-static
-   // libgcc for MIPS relies on _Unwind_Find_FDE and dl_iterate_phdr from libdl.
--  if (isAndroid && !StaticLibgcc)
-+  if (isAndroid && getLibGccType(Args) != LibGccType::StaticLibGcc)
-     CmdArgs.push_back("-ldl");
- }
- 
-@@ -1194,6 +1227,7 @@ void tools::AddRunTimeLibs(const ToolChain &TC, const Driver &D,
-   switch (RLT) {
-   case ToolChain::RLT_CompilerRT:
-     CmdArgs.push_back(TC.getCompilerRTArgString(Args, "builtins"));
-+    AddUnwindLibrary(TC, D, CmdArgs, Args);
-     break;
-   case ToolChain::RLT_Libgcc:
-     // Make sure libgcc is not used under MSVC environment by default
-@@ -1205,7 +1239,7 @@ void tools::AddRunTimeLibs(const ToolChain &TC, const Driver &D,
-             << Args.getLastArg(options::OPT_rtlib_EQ)->getValue() << "MSVC";
-       }
-     } else
--      AddLibgcc(TC.getTriple(), D, CmdArgs, Args);
-+      AddLibgcc(TC, D, CmdArgs, Args);
-     break;
-   }
- }
-diff --git a/test/Driver/compiler-rt-unwind.c b/test/Driver/compiler-rt-unwind.c
-new file mode 100644
-index 0000000000..00024dfa7e
---- /dev/null
-+++ b/test/Driver/compiler-rt-unwind.c
-@@ -0,0 +1,49 @@
-+// General tests that the driver handles combinations of --rtlib=XXX and
-+// --unwindlib=XXX properly.
-+//
-+// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-+// RUN:     --target=x86_64-unknown-linux \
-+// RUN:     --gcc-toolchain="" \
-+// RUN:   | FileCheck --check-prefix=RTLIB-EMPTY %s
-+// RTLIB-EMPTY: "{{.*}}lgcc"
-+// RTLIB-EMPTY: "{{.*}}-lgcc_s"
-+//
-+// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-+// RUN:     --target=x86_64-unknown-linux -rtlib=libgcc \
-+// RUN:     --gcc-toolchain="" \
-+// RUN:   | FileCheck --check-prefix=RTLIB-GCC %s
-+// RTLIB-GCC: "{{.*}}lgcc"
-+// RTLIB-GCC: "{{.*}}lgcc_s"
-+//
-+// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-+// RUN:     --target=x86_64-unknown-linux -rtlib=libgcc --unwindlib=libunwind \
-+// RUN:     --gcc-toolchain="" \
-+// RUN:   | FileCheck --check-prefix=RTLIB-GCC-UNWINDLIB-COMPILER-RT %s
-+// RTLIB-GCC-UNWINDLIB-COMPILER-RT: "{{.*}}lgcc"
-+// RTLIB-GCC-UNWINDLIB-COMPILER-RT: "{{.*}}lunwind"
-+//
-+// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1   \
-+// RUN:     --target=x86_64-unknown-linux -rtlib=compiler-rt \
-+// RUN:     --gcc-toolchain="" \
-+// RUN:   | FileCheck --check-prefix=RTLIB-COMPILER-RT %s
-+// RTLIB-COMPILER-RT: "{{.*}}libclang_rt.builtins-x86_64.a"
-+//
-+// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1   \
-+// RUN:     --target=x86_64-unknown-linux -rtlib=compiler-rt --unwindlib=libgcc \
-+// RUN:     --gcc-toolchain="" \
-+// RUN:   | FileCheck --check-prefix=RTLIB-COMPILER-RT-UNWINDLIB-GCC %s
-+// RTLIB-COMPILER-RT-UNWINDLIB-GCC: "{{.*}}libclang_rt.builtins-x86_64.a"
-+// RTLIB-COMPILER-RT-UNWINDLIB-GCC: "{{.*}}lgcc_s"
-+//
-+// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1              \
-+// RUN:     --target=x86_64-unknown-linux -rtlib=compiler-rt --unwindlib=libgcc \
-+// RUN:     -static --gcc-toolchain="" \
-+// RUN:   | FileCheck --check-prefix=RTLIB-COMPILER-RT-UNWINDLIB-GCC-STATIC %s
-+// RTLIB-COMPILER-RT-UNWINDLIB-GCC-STATIC: "{{.*}}libclang_rt.builtins-x86_64.a"
-+// RTLIB-COMPILER-RT-UNWINDLIB-GCC-STATIC: "{{.*}}lgcc_eh"
-+//
-+// RUN: not %clang -no-canonical-prefixes %s -o %t.o 2> %t.err              \
-+// RUN:     --target=x86_64-unknown-linux -rtlib=libgcc --unwindlib=libunwind \
-+// RUN:     --gcc-toolchain="" \
-+// RUN: FileCheck --input-file=%t.err --check-prefix=RTLIB-GCC-UNWINDLIB-COMPILER_RT %s
-+// RTLIB-GCC-UNWINDLIB-COMPILER_RT: "{{[.|\\\n]*}}--rtlib=libgcc requires --unwindlib=libgcc"
diff --git a/pkgs/development/compilers/llvm/8/clang/xpc.patch b/pkgs/development/compilers/llvm/8/clang/xpc.patch
deleted file mode 100644
index eb57d3458228..000000000000
--- a/pkgs/development/compilers/llvm/8/clang/xpc.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 61c9b97d7b81cc2c013b423bf1763a92b14fcae3 Mon Sep 17 00:00:00 2001
-From: Jan Korous <jkorous@apple.com>
-Date: Tue, 26 Mar 2019 03:48:25 +0000
-Subject: [PATCH] [clangd][xpc][cmake] Respect explicit value of
- CLANGD_BUILD_XPC
-
-We shouldn't prevent user from disabling XPC framework build on Darwin.
-However, by keeping it on by default our CI systems also test
-it by default on macOS.
-
-Based on user request:
-http://lists.llvm.org/pipermail/cfe-dev/2019-March/061778.html
-
-Differential Revision: https://reviews.llvm.org/D59808
-
-git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@356974 91177308-0d34-0410-b5e6-96231b3b80d8
----
- CMakeLists.txt | 13 ++++++++++---
- 1 file changed, 10 insertions(+), 3 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 66ebeaeeaa..514b17fb3c 100644
---- a/tools/extra/CMakeLists.txt
-+++ b/tools/extra/CMakeLists.txt
-@@ -1,6 +1,13 @@
--option(CLANGD_BUILD_XPC "Build XPC Support For Clangd." OFF)
--if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
--  set(CLANGD_BUILD_XPC ON CACHE BOOL "" FORCE)
-+if (NOT DEFINED CLANGD_BUILD_XPC)
-+  if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
-+    set(CLANGD_BUILD_XPC_DEFAULT ON)
-+  else ()
-+    set(CLANGD_BUILD_XPC_DEFAULT OFF)
-+  endif ()
-+
-+  set(CLANGD_BUILD_XPC ${CLANGD_BUILD_XPC_DEFAULT} CACHE BOOL "Build XPC Support For Clangd." FORCE)
-+
-+  unset(CLANGD_BUILD_XPC_DEFAULT)
- endif ()
- 
- add_subdirectory(clang-apply-replacements)
\ No newline at end of file
diff --git a/pkgs/development/compilers/llvm/8/compiler-rt/armv7l.patch b/pkgs/development/compilers/llvm/8/compiler-rt/armv7l.patch
deleted file mode 100644
index 89d7f1aec918..000000000000
--- a/pkgs/development/compilers/llvm/8/compiler-rt/armv7l.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-diff -ur compiler-rt-7.1.0.src/cmake/builtin-config-ix.cmake compiler-rt-7.1.0.src-patched/cmake/builtin-config-ix.cmake
---- compiler-rt-7.1.0.src/cmake/builtin-config-ix.cmake	2018-05-25 06:36:27.000000000 +0900
-+++ compiler-rt-7.1.0.src-patched/cmake/builtin-config-ix.cmake	2020-05-09 20:26:33.030608692 +0900
-@@ -24,7 +24,7 @@
- 
- 
- set(ARM64 aarch64)
--set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k)
-+set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k armv7l)
- set(HEXAGON hexagon)
- set(X86 i386)
- set(X86_64 x86_64)
-diff -ur compiler-rt-7.1.0.src/lib/builtins/CMakeLists.txt compiler-rt-7.1.0.src-patched/lib/builtins/CMakeLists.txt
---- compiler-rt-7.1.0.src/lib/builtins/CMakeLists.txt	2018-07-31 03:18:59.000000000 +0900
-+++ compiler-rt-7.1.0.src-patched/lib/builtins/CMakeLists.txt	2020-05-09 20:27:38.893409318 +0900
-@@ -453,6 +453,7 @@
- set(armv7_SOURCES ${arm_SOURCES})
- set(armv7s_SOURCES ${arm_SOURCES})
- set(armv7k_SOURCES ${arm_SOURCES})
-+set(armv7l_SOURCES ${arm_SOURCES})
- set(arm64_SOURCES ${aarch64_SOURCES})
- 
- # macho_embedded archs
-@@ -563,12 +564,12 @@
-       set(_arch ${arch})
-       if("${arch}" STREQUAL "armv6m")
-         set(_arch "arm|armv6m")
--      elseif("${arch}" MATCHES "^(armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
-+      elseif("${arch}" MATCHES "^(armhf|armv7|armv7s|armv7k|armv7l|armv7m|armv7em)$")
-         set(_arch "arm")
-       endif()
- 
-       # For ARM archs, exclude any VFP builtins if VFP is not supported
--      if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
-+      if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7l|armv7m|armv7em)$")
-         string(REPLACE ";" " " _TARGET_${arch}_CFLAGS "${TARGET_${arch}_CFLAGS}")
-         check_compile_definition(__VFP_FP__ "${CMAKE_C_FLAGS} ${_TARGET_${arch}_CFLAGS}" COMPILER_RT_HAS_${arch}_VFP)
-         if(NOT COMPILER_RT_HAS_${arch}_VFP)
diff --git a/pkgs/development/compilers/llvm/8/compiler-rt/crtbegin-and-end.patch b/pkgs/development/compilers/llvm/8/compiler-rt/crtbegin-and-end.patch
deleted file mode 100644
index e63be181f95c..000000000000
--- a/pkgs/development/compilers/llvm/8/compiler-rt/crtbegin-and-end.patch
+++ /dev/null
@@ -1,595 +0,0 @@
-Get crtbegin and crtend without compiler GCC! PR is at https://reviews.llvm.org/D28791
-
-Index: compiler-rt/CMakeLists.txt
-===================================================================
---- compiler-rt/CMakeLists.txt
-+++ compiler-rt/CMakeLists.txt
-@@ -29,6 +29,8 @@
- 
- option(COMPILER_RT_BUILD_BUILTINS "Build builtins" ON)
- mark_as_advanced(COMPILER_RT_BUILD_BUILTINS)
-+option(COMPILER_RT_BUILD_CRT "Build crtbegin.o/crtend.o" ON)
-+mark_as_advanced(COMPILER_RT_BUILD_CRT)
- option(COMPILER_RT_BUILD_SANITIZERS "Build sanitizers" ON)
- mark_as_advanced(COMPILER_RT_BUILD_SANITIZERS)
- option(COMPILER_RT_BUILD_XRAY "Build xray" ON)
-Index: compiler-rt/cmake/Modules/AddCompilerRT.cmake
-===================================================================
---- compiler-rt/cmake/Modules/AddCompilerRT.cmake
-+++ compiler-rt/cmake/Modules/AddCompilerRT.cmake
-@@ -132,7 +132,7 @@
- # Adds static or shared runtime for a list of architectures and operating
- # systems and puts it in the proper directory in the build and install trees.
- # add_compiler_rt_runtime(<name>
--#                         {STATIC|SHARED}
-+#                         {OBJECT|STATIC|SHARED}
- #                         ARCHS <architectures>
- #                         OS <os list>
- #                         SOURCES <source files>
-@@ -144,8 +144,8 @@
- #                         PARENT_TARGET <convenience parent target>
- #                         ADDITIONAL_HEADERS <header files>)
- function(add_compiler_rt_runtime name type)
--  if(NOT type MATCHES "^(STATIC|SHARED)$")
--    message(FATAL_ERROR "type argument must be STATIC or SHARED")
-+  if(NOT type MATCHES "^(OBJECT|STATIC|SHARED)$")
-+    message(FATAL_ERROR "type argument must be OBJECT, STATIC or SHARED")
-     return()
-   endif()
-   cmake_parse_arguments(LIB
-@@ -204,7 +204,10 @@
-         message(FATAL_ERROR "Architecture ${arch} can't be targeted")
-         return()
-       endif()
--      if(type STREQUAL "STATIC")
-+      if(type STREQUAL "OBJECT")
-+        set(libname "${name}-${arch}")
-+        set(output_name_${libname} ${libname}${COMPILER_RT_OS_SUFFIX})
-+      elseif(type STREQUAL "STATIC")
-         set(libname "${name}-${arch}")
-         set_output_name(output_name_${libname} ${name} ${arch})
-       else()
-@@ -270,12 +273,34 @@
-       set(COMPONENT_OPTION COMPONENT ${libname})
-     endif()
- 
--    add_library(${libname} ${type} ${sources_${libname}})
--    set_target_compile_flags(${libname} ${extra_cflags_${libname}})
--    set_target_link_flags(${libname} ${extra_link_flags_${libname}})
--    set_property(TARGET ${libname} APPEND PROPERTY
--                COMPILE_DEFINITIONS ${LIB_DEFS})
--    set_target_output_directories(${libname} ${output_dir_${libname}})
-+    if(type STREQUAL "OBJECT")
-+      string(TOUPPER ${CMAKE_BUILD_TYPE} config)
-+      get_property(cflags SOURCE ${sources_${libname}} PROPERTY COMPILE_FLAGS)
-+      separate_arguments(cflags)
-+      add_custom_command(
-+          OUTPUT ${output_dir_${libname}}/${libname}.o
-+          COMMAND ${CMAKE_C_COMPILER} ${sources_${libname}} ${cflags} ${extra_cflags_${libname}} -c -o ${output_dir_${libname}}/${libname}.o
-+          DEPENDS ${sources_${libname}}
-+          COMMENT "Building C object ${libname}.o")
-+      add_custom_target(${libname} DEPENDS ${output_dir_${libname}}/${libname}.o)
-+      install(FILES ${output_dir_${libname}}/${libname}.o
-+        DESTINATION ${install_dir_${libname}}
-+        ${COMPONENT_OPTION})
-+    else()
-+      add_library(${libname} ${type} ${sources_${libname}})
-+      set_target_compile_flags(${libname} ${extra_cflags_${libname}})
-+      set_target_link_flags(${libname} ${extra_link_flags_${libname}})
-+      set_property(TARGET ${libname} APPEND PROPERTY
-+                   COMPILE_DEFINITIONS ${LIB_DEFS})
-+      set_target_output_directories(${libname} ${output_dir_${libname}})
-+      install(TARGETS ${libname}
-+        ARCHIVE DESTINATION ${install_dir_${libname}}
-+                ${COMPONENT_OPTION}
-+        LIBRARY DESTINATION ${install_dir_${libname}}
-+                ${COMPONENT_OPTION}
-+        RUNTIME DESTINATION ${install_dir_${libname}}
-+                ${COMPONENT_OPTION})
-+    endif()
-     set_target_properties(${libname} PROPERTIES
-         OUTPUT_NAME ${output_name_${libname}})
-     set_target_properties(${libname} PROPERTIES FOLDER "Compiler-RT Runtime")
-@@ -299,13 +324,6 @@
-         )
-       endif()
-     endif()
--    install(TARGETS ${libname}
--      ARCHIVE DESTINATION ${install_dir_${libname}}
--              ${COMPONENT_OPTION}
--      LIBRARY DESTINATION ${install_dir_${libname}}
--              ${COMPONENT_OPTION}
--      RUNTIME DESTINATION ${install_dir_${libname}}
--              ${COMPONENT_OPTION})
- 
-     # We only want to generate per-library install targets if you aren't using
-     # an IDE because the extra targets get cluttered in IDEs.
-Index: compiler-rt/cmake/config-ix.cmake
-===================================================================
---- compiler-rt/cmake/config-ix.cmake
-+++ compiler-rt/cmake/config-ix.cmake
-@@ -227,6 +227,7 @@
-     ${ARM32} ${ARM64} ${MIPS32} ${MIPS64} ${S390X})
- set(ALL_ASAN_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64}
-     ${MIPS32} ${MIPS64} ${PPC64} ${S390X})
-+set(ALL_CRT_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64})
- set(ALL_DFSAN_SUPPORTED_ARCH ${X86_64} ${MIPS64} ${ARM64})
- set(ALL_FUZZER_SUPPORTED_ARCH ${X86_64} ${ARM64})
- 
-@@ -474,6 +475,7 @@
-     SANITIZER_COMMON_SUPPORTED_ARCH)
- 
- else()
-+  filter_available_targets(CRT_SUPPORTED_ARCH ${ALL_CRT_SUPPORTED_ARCH})
-   # Architectures supported by compiler-rt libraries.
-   filter_available_targets(SANITIZER_COMMON_SUPPORTED_ARCH
-     ${ALL_SANITIZER_COMMON_SUPPORTED_ARCH})
-@@ -563,6 +565,12 @@
- 
- # TODO: Add builtins support.
- 
-+if (CRT_SUPPORTED_ARCH AND OS_NAME MATCHES "Linux")
-+  set(COMPILER_RT_HAS_CRT TRUE)
-+else()
-+  set(COMPILER_RT_HAS_CRT FALSE)
-+endif()
-+
- if (COMPILER_RT_HAS_SANITIZER_COMMON AND DFSAN_SUPPORTED_ARCH AND
-     OS_NAME MATCHES "Linux")
-   set(COMPILER_RT_HAS_DFSAN TRUE)
-Index: compiler-rt/lib/CMakeLists.txt
-===================================================================
---- compiler-rt/lib/CMakeLists.txt
-+++ compiler-rt/lib/CMakeLists.txt
-@@ -17,6 +17,10 @@
-   add_subdirectory(builtins)
- endif()
- 
-+if(COMPILER_RT_BUILD_CRT)
-+  add_subdirectory(crt)
-+endif()
-+
- function(compiler_rt_build_runtime runtime)
-   string(TOUPPER ${runtime} runtime_uppercase)
-   if(COMPILER_RT_HAS_${runtime_uppercase})
-Index: compiler-rt/lib/crt/CMakeLists.txt
-===================================================================
---- /dev/null
-+++ compiler-rt/lib/crt/CMakeLists.txt
-@@ -0,0 +1,102 @@
-+add_compiler_rt_component(crt)
-+
-+function(check_cxx_section_exists section output)
-+  cmake_parse_arguments(ARG "" "" "SOURCE;FLAGS" ${ARGN})
-+  if(NOT ARG_SOURCE)
-+    set(ARG_SOURCE "int main() { return 0; }\n")
-+  endif()
-+
-+  string(RANDOM TARGET_NAME)
-+  set(TARGET_NAME "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/cmTC_${TARGET_NAME}.dir")
-+  file(MAKE_DIRECTORY ${TARGET_NAME})
-+
-+  file(WRITE "${TARGET_NAME}/CheckSectionExists.c" "${ARG_SOURCE}\n")
-+
-+  string(REGEX MATCHALL "<[A-Za-z0-9_]*>" substitutions
-+         ${CMAKE_C_COMPILE_OBJECT})
-+
-+  set(try_compile_flags "${ARG_FLAGS}")
-+  if(CMAKE_C_COMPILER_ID MATCHES Clang AND CMAKE_C_COMPILER_TARGET)
-+    list(APPEND try_compile_flags "-target ${CMAKE_C_COMPILER_TARGET}")
-+  endif()
-+
-+  string(REPLACE ";" " " extra_flags "${try_compile_flags}")
-+
-+  set(test_compile_command "${CMAKE_C_COMPILE_OBJECT}")
-+  foreach(substitution ${substitutions})
-+    if(substitution STREQUAL "<CMAKE_C_COMPILER>")
-+      string(REPLACE "<CMAKE_C_COMPILER>"
-+             "${CMAKE_C_COMPILER}" test_compile_command ${test_compile_command})
-+    elseif(substitution STREQUAL "<OBJECT>")
-+      string(REPLACE "<OBJECT>" "${TARGET_NAME}/CheckSectionExists.o"
-+             test_compile_command ${test_compile_command})
-+    elseif(substitution STREQUAL "<SOURCE>")
-+      string(REPLACE "<SOURCE>" "${TARGET_NAME}/CheckSectionExists.c"
-+             test_compile_command ${test_compile_command})
-+    elseif(substitution STREQUAL "<FLAGS>")
-+      string(REPLACE "<FLAGS>" "${CMAKE_C_FLAGS} ${extra_flags}"
-+             test_compile_command ${test_compile_command})
-+    else()
-+      string(REPLACE "${substitution}" "" test_compile_command
-+             ${test_compile_command})
-+    endif()
-+  endforeach()
-+
-+  string(REPLACE " " ";" test_compile_command "${test_compile_command}")
-+
-+  execute_process(
-+    COMMAND ${test_compile_command}
-+    RESULT_VARIABLE TEST_RESULT
-+    OUTPUT_VARIABLE TEST_OUTPUT
-+    ERROR_VARIABLE TEST_ERROR
-+  )
-+
-+  execute_process(
-+    COMMAND ${CMAKE_OBJDUMP} -h "${TARGET_NAME}/CheckSectionExists.o"
-+    RESULT_VARIABLE CHECK_RESULT
-+    OUTPUT_VARIABLE CHECK_OUTPUT
-+    ERROR_VARIABLE CHECK_ERROR
-+  )
-+  string(FIND "${CHECK_OUTPUT}" "${section}" SECTION_FOUND)
-+
-+  if(NOT SECTION_FOUND EQUAL -1)
-+    set(${output} TRUE PARENT_SCOPE)
-+  else()
-+    set(${output} FALSE PARENT_SCOPE)
-+  endif()
-+
-+  file(REMOVE_RECURSE ${TARGET_NAME})
-+endfunction()
-+
-+check_cxx_section_exists(".init_array" COMPILER_RT_HAS_INITFINI_ARRAY
-+  SOURCE "__attribute__((constructor)) void f() {}\nint main() { return 0; }\n")
-+
-+append_list_if(COMPILER_RT_HAS_INITFINI_ARRAY -DCRT_HAS_INITFINI_ARRAY CRT_CFLAGS)
-+append_list_if(COMPILER_RT_HAS_FPIC_FLAG -fPIC CRT_CFLAGS)
-+
-+foreach(arch ${CRT_SUPPORTED_ARCH})
-+  add_compiler_rt_runtime(clang_rt.crtbegin
-+    OBJECT
-+    ARCHS ${arch}
-+    SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/crtbegin.c
-+    CFLAGS ${CRT_CFLAGS}
-+    PARENT_TARGET crt)
-+  add_compiler_rt_runtime(clang_rt.crtbegin_shared
-+    OBJECT
-+    ARCHS ${arch}
-+    SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/crtbegin.c
-+    CFLAGS ${CRT_CFLAGS} -DCRT_SHARED
-+    PARENT_TARGET crt)
-+  add_compiler_rt_runtime(clang_rt.crtend
-+    OBJECT
-+    ARCHS ${arch}
-+    SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/crtend.c
-+    CFLAGS ${CRT_CFLAGS}
-+    PARENT_TARGET crt)
-+  add_compiler_rt_runtime(clang_rt.crtend_shared
-+    OBJECT
-+    ARCHS ${arch}
-+    SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/crtend.c
-+    CFLAGS ${CRT_CFLAGS} -DCRT_SHARED
-+    PARENT_TARGET crt)
-+endforeach()
-Index: compiler-rt/lib/crt/crtbegin.c
-===================================================================
---- /dev/null
-+++ compiler-rt/lib/crt/crtbegin.c
-@@ -0,0 +1,108 @@
-+/* ===-- crtbegin.c - Start of constructors and destructors ----------------===
-+ *
-+ *      	       The LLVM Compiler Infrastructure
-+ *
-+ * This file is dual licensed under the MIT and the University of Illinois Open
-+ * Source Licenses. See LICENSE.TXT for details.
-+ *
-+ * ===----------------------------------------------------------------------===
-+ */
-+
-+#include <stddef.h>
-+
-+__attribute__((visibility("hidden")))
-+#ifdef CRT_SHARED
-+void *__dso_handle = &__dso_handle;
-+#else
-+void *__dso_handle = (void *)0;
-+#endif
-+
-+static long __EH_FRAME_LIST__[]
-+    __attribute__((section(".eh_frame"), aligned(sizeof(void *)))) = {};
-+
-+extern void __register_frame_info(const void *, void *) __attribute__((weak));
-+extern void *__deregister_frame_info(const void *) __attribute__((weak));
-+
-+#ifndef CRT_HAS_INITFINI_ARRAY
-+typedef void (*fp)(void);
-+
-+static fp __CTOR_LIST__[]
-+    __attribute__((section(".ctors"), aligned(sizeof(fp)), used)) = {(fp)-1};
-+extern fp __CTOR_LIST_END__[];
-+#endif
-+
-+#ifdef CRT_SHARED
-+extern void __cxa_finalize(void *) __attribute__((weak));
-+#endif
-+
-+static void __attribute__((used)) __do_init() {
-+  static _Bool __initialized;
-+  if (__builtin_expect(__initialized, 0))
-+    return;
-+  __initialized = 1;
-+
-+  static struct { void *p[8]; } __object;
-+  if (__register_frame_info)
-+    __register_frame_info(__EH_FRAME_LIST__, &__object);
-+
-+#ifndef CRT_HAS_INITFINI_ARRAY
-+  const size_t n = __CTOR_LIST_END__ - __CTOR_LIST__ - 1;
-+  for (size_t i = n; i >= 1; i--) __CTOR_LIST__[i]();
-+#endif
-+}
-+
-+#ifdef CRT_HAS_INITFINI_ARRAY
-+__attribute__((section(".init_array"),
-+               used)) static void (*__init)(void) = __do_init;
-+#else  // CRT_HAS_INITFINI_ARRAY
-+#if defined(__i386__) || defined(__x86_64__)
-+asm(".pushsection .init,\"ax\",@progbits\n\t"
-+    "call " __USER_LABEL_PREFIX__ "__do_init\n\t"
-+    ".popsection");
-+#elif defined(__arm__)
-+asm(".pushsection .init,\"ax\",%progbits\n\t"
-+    "bl " __USER_LABEL_PREFIX__ "__do_init\n\t"
-+    ".popsection");
-+#endif  // CRT_HAS_INITFINI_ARRAY
-+#endif
-+
-+#ifndef CRT_HAS_INITFINI_ARRAY
-+static fp __DTOR_LIST__[]
-+    __attribute__((section(".dtors"), aligned(sizeof(fp)), used)) = {(fp)-1};
-+extern fp __DTOR_LIST_END__[];
-+#endif
-+
-+static void __attribute__((used)) __do_fini() {
-+  static _Bool __finalized;
-+  if (__builtin_expect(__finalized, 0))
-+    return;
-+  __finalized = 1;
-+
-+#ifdef CRT_SHARED
-+  if (__cxa_finalize)
-+    __cxa_finalize(__dso_handle);
-+#endif
-+
-+#ifndef CRT_HAS_INITFINI_ARRAY
-+  if (__deregister_frame_info)
-+    __deregister_frame_info(__EH_FRAME_LIST__);
-+
-+  const size_t n = __DTOR_LIST_END__ - __DTOR_LIST__ - 1;
-+  for (size_t i = 1; i < n; i++) __DTOR_LIST__[i]();
-+#endif
-+}
-+
-+#ifdef CRT_HAS_INITFINI_ARRAY
-+__attribute__((section(".fini_array"),
-+               used)) static void (*__fini)(void) = __do_fini;
-+#else  // CRT_HAS_INITFINI_ARRAY
-+#if defined(__i386__) || defined(__x86_64__)
-+asm(".pushsection .fini,\"ax\",@progbits\n\t"
-+    "call " __USER_LABEL_PREFIX__ "__do_fini\n\t"
-+    ".popsection");
-+#elif defined(__arm__)
-+asm(".pushsection .fini,\"ax\",%progbits\n\t"
-+    "bl " __USER_LABEL_PREFIX__ "__do_fini\n\t"
-+    ".popsection");
-+#endif
-+#endif  // CRT_HAS_INIT_FINI_ARRAY
-Index: compiler-rt/lib/crt/crtend.c
-===================================================================
---- /dev/null
-+++ compiler-rt/lib/crt/crtend.c
-@@ -0,0 +1,24 @@
-+/* ===-- crtend.c - End of constructors and destructors --------------------===
-+ *
-+ *      	       The LLVM Compiler Infrastructure
-+ *
-+ * This file is dual licensed under the MIT and the University of Illinois Open
-+ * Source Licenses. See LICENSE.TXT for details.
-+ *
-+ * ===----------------------------------------------------------------------===
-+ */
-+
-+#include <stdint.h>
-+
-+// Put 4-byte zero which is the length field in FDE at the end as a terminator.
-+const int32_t __EH_FRAME_LIST_END__[]
-+    __attribute__((section(".eh_frame"), aligned(sizeof(int32_t)),
-+                   visibility("hidden"), used)) = {0};
-+
-+#ifndef CRT_HAS_INITFINI_ARRAY
-+typedef void (*fp)(void);
-+fp __CTOR_LIST_END__[]
-+    __attribute__((section(".ctors"), visibility("hidden"), used)) = {0};
-+fp __DTOR_LIST_END__[]
-+    __attribute__((section(".dtors"), visibility("hidden"), used)) = {0};
-+#endif
-Index: compiler-rt/test/CMakeLists.txt
-===================================================================
---- compiler-rt/test/CMakeLists.txt
-+++ compiler-rt/test/CMakeLists.txt
-@@ -73,6 +73,9 @@
-   if(COMPILER_RT_BUILD_XRAY)
-     compiler_rt_test_runtime(xray)
-   endif()
-+  if(COMPILER_RT_HAS_CRT)
-+    add_subdirectory(crt)
-+  endif()
-   # ShadowCallStack does not yet provide a runtime with compiler-rt, the tests
-   # include their own minimal runtime
-   add_subdirectory(shadowcallstack)
-Index: compiler-rt/test/crt/CMakeLists.txt
-===================================================================
---- /dev/null
-+++ compiler-rt/test/crt/CMakeLists.txt
-@@ -0,0 +1,31 @@
-+set(CRT_LIT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
-+
-+set(CRT_TESTSUITES)
-+
-+set(CRT_TEST_DEPS "")
-+
-+if(NOT COMPILER_RT_STANDALONE_BUILD AND COMPILER_RT_BUILD_CRT AND
-+   COMPILER_RT_HAS_CRT)
-+  list(APPEND CRT_TEST_DEPS crt)
-+endif()
-+
-+set(CRT_TEST_ARCH ${CRT_SUPPORTED_ARCH})
-+if (COMPILER_RT_BUILD_CRT AND COMPILER_RT_HAS_CRT)
-+  foreach(arch ${CRT_TEST_ARCH})
-+    set(CRT_TEST_TARGET_ARCH ${arch})
-+    string(TOLOWER "-${arch}-${OS_NAME}" CRT_TEST_CONFIG_SUFFIX)
-+    get_test_cc_for_arch(${arch} CRT_TEST_TARGET_CC CRT_TEST_TARGET_CFLAGS)
-+    string(TOUPPER ${arch} ARCH_UPPER_CASE)
-+    set(CONFIG_NAME ${ARCH_UPPER_CASE}${OS_NAME}Config)
-+
-+    configure_lit_site_cfg(
-+      ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-+      ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg)
-+    list(APPEND CRT_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME})
-+  endforeach()
-+endif()
-+
-+add_lit_testsuite(check-crt "Running the CRT tests"
-+  ${CRT_TESTSUITES}
-+  DEPENDS ${CRT_TEST_DEPS})
-+set_target_properties(check-crt PROPERTIES FOLDER "Compiler-RT Misc")
-Index: compiler-rt/test/crt/dso_handle.cpp
-===================================================================
---- /dev/null
-+++ compiler-rt/test/crt/dso_handle.cpp
-@@ -0,0 +1,33 @@
-+// RUN: %clangxx -g -DCRT_SHARED -c %s -fPIC -o %tshared.o
-+// RUN: %clangxx -g -c %s -fPIC -o %t.o
-+// RUN: %clangxx -g -shared -o %t.so -nostdlib %crti %shared_crtbegin %tshared.o %libstdcxx -lc -lm -lgcc_s %shared_crtend %crtn
-+// RUN: %clangxx -g -o %t -nostdlib %crt1 %crti %crtbegin %t.o %libstdcxx -lc -lm %libgcc %t.so %crtend %crtn
-+// RUN: %run %t 2>&1 | FileCheck %s
-+
-+#include <stdio.h>
-+
-+// CHECK: 1
-+// CHECK-NEXT: ~A()
-+
-+#ifdef CRT_SHARED
-+bool G;
-+void C() {
-+  printf("%d\n", G);
-+}
-+
-+struct A {
-+  A() { G = true; }
-+  ~A() {
-+    printf("~A()\n");
-+  }
-+};
-+
-+A a;
-+#else
-+void C();
-+
-+int main() {
-+  C();
-+  return 0;
-+}
-+#endif
-Index: compiler-rt/test/crt/lit.cfg
-===================================================================
---- /dev/null
-+++ compiler-rt/test/crt/lit.cfg
-@@ -0,0 +1,80 @@
-+# -*- Python -*-
-+
-+import os
-+import subprocess
-+
-+# Setup config name.
-+config.name = 'CRT' + config.name_suffix
-+
-+# Setup source root.
-+config.test_source_root = os.path.dirname(__file__)
-+
-+
-+def get_library_path(file):
-+    cmd = subprocess.Popen([config.clang.strip(),
-+                            config.target_cflags.strip(),
-+                            '-print-file-name=%s' % file],
-+                           stdout=subprocess.PIPE,
-+                           env=config.environment)
-+    if not cmd.stdout:
-+      lit_config.fatal("Couldn't find the library path for '%s'" % file)
-+    dir = cmd.stdout.read().strip()
-+    if sys.platform in ['win32'] and execute_external:
-+        # Don't pass dosish path separator to msys bash.exe.
-+        dir = dir.replace('\\', '/')
-+    # Ensure the result is an ascii string, across Python2.5+ - Python3.
-+    return str(dir.decode('ascii'))
-+
-+
-+def get_libgcc_file_name():
-+    cmd = subprocess.Popen([config.clang.strip(),
-+                            config.target_cflags.strip(),
-+                            '-print-libgcc-file-name'],
-+                           stdout=subprocess.PIPE,
-+                           env=config.environment)
-+    if not cmd.stdout:
-+      lit_config.fatal("Couldn't find the library path for '%s'" % file)
-+    dir = cmd.stdout.read().strip()
-+    if sys.platform in ['win32'] and execute_external:
-+        # Don't pass dosish path separator to msys bash.exe.
-+        dir = dir.replace('\\', '/')
-+    # Ensure the result is an ascii string, across Python2.5+ - Python3.
-+    return str(dir.decode('ascii'))
-+
-+
-+def build_invocation(compile_flags):
-+    return ' ' + ' '.join([config.clang] + compile_flags) + ' '
-+
-+
-+# Setup substitutions.
-+config.substitutions.append(
-+    ('%clang ', build_invocation([config.target_cflags])))
-+config.substitutions.append(
-+    ('%clangxx ',
-+     build_invocation(config.cxx_mode_flags + [config.target_cflags])))
-+
-+base_lib = os.path.join(
-+    config.compiler_rt_libdir, "clang_rt.%%s-%s.o" % config.target_arch)
-+config.substitutions.append(('%crtbegin', base_lib % "crtbegin"))
-+config.substitutions.append(('%shared_crtbegin', base_lib % "crtbegin_shared"))
-+config.substitutions.append(('%crtend', base_lib % "crtend"))
-+config.substitutions.append(('%shared_crtend', base_lib % "crtend_shared"))
-+
-+config.substitutions.append(
-+    ('%crt1', get_library_path('crt1.o')))
-+config.substitutions.append(
-+    ('%crti', get_library_path('crti.o')))
-+config.substitutions.append(
-+    ('%crtn', get_library_path('crtn.o')))
-+
-+config.substitutions.append(
-+    ('%libgcc', get_libgcc_file_name()))
-+
-+config.substitutions.append(
-+    ('%libstdcxx', '-l' + config.sanitizer_cxx_lib.lstrip('lib')))
-+
-+# Default test suffixes.
-+config.suffixes = ['.c', '.cc', '.cpp']
-+
-+if config.host_os not in ['Linux']:
-+    config.unsupported = True
-Index: compiler-rt/test/crt/lit.site.cfg.in
-===================================================================
---- /dev/null
-+++ compiler-rt/test/crt/lit.site.cfg.in
-@@ -0,0 +1,14 @@
-+@LIT_SITE_CFG_IN_HEADER@
-+
-+# Tool-specific config options.
-+config.name_suffix = "@CRT_TEST_CONFIG_SUFFIX@"
-+config.crt_lit_source_dir = "@CRT_LIT_SOURCE_DIR@"
-+config.target_cflags = "@CRT_TEST_TARGET_CFLAGS@"
-+config.target_arch = "@CRT_TEST_TARGET_ARCH@"
-+config.sanitizer_cxx_lib = "@SANITIZER_TEST_CXX_LIBNAME@"
-+
-+# Load common config for all compiler-rt lit tests
-+lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured")
-+
-+# Load tool-specific config that would do the real work.
-+lit_config.load_config(config, "@CRT_LIT_SOURCE_DIR@/lit.cfg")
diff --git a/pkgs/development/compilers/llvm/8/compiler-rt/default.nix b/pkgs/development/compilers/llvm/8/compiler-rt/default.nix
deleted file mode 100644
index 26cb5aa30617..000000000000
--- a/pkgs/development/compilers/llvm/8/compiler-rt/default.nix
+++ /dev/null
@@ -1,117 +0,0 @@
-{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, libllvm, libcxxabi
-, doFakeLibgcc ? stdenv.hostPlatform.isFreeBSD
-}:
-
-let
-
-  useLLVM = stdenv.hostPlatform.useLLVM or false;
-  bareMetal = stdenv.hostPlatform.parsed.kernel.name == "none";
-  haveLibc = stdenv.cc.libc != null;
-  inherit (stdenv.hostPlatform) isMusl;
-
-in
-
-stdenv.mkDerivation {
-  pname = "compiler-rt" + lib.optionalString (haveLibc) "-libc";
-  inherit version;
-  src = fetch "compiler-rt" "0dqqf8f930l8gag4d9qjgn1n0pj0nbv2anviqqhdi1rkhas8z0hi";
-
-  nativeBuildInputs = [ cmake python3 libllvm.dev ];
-  buildInputs = lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
-
-  env.NIX_CFLAGS_COMPILE = toString [
-    "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0"
-  ];
-
-  cmakeFlags = [
-    "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON"
-    "-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}"
-    "-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}"
-  ] ++ lib.optionals (useLLVM || bareMetal || isMusl) [
-    "-DCOMPILER_RT_BUILD_SANITIZERS=OFF"
-    "-DCOMPILER_RT_BUILD_XRAY=OFF"
-    "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF"
-  ] ++ lib.optionals (useLLVM || bareMetal) [
-    "-DCOMPILER_RT_BUILD_PROFILE=OFF"
-  ] ++ lib.optionals ((useLLVM || bareMetal) && !haveLibc) [
-    "-DCMAKE_C_COMPILER_WORKS=ON"
-    "-DCMAKE_CXX_COMPILER_WORKS=ON"
-    "-DCOMPILER_RT_BAREMETAL_BUILD=ON"
-    "-DCMAKE_SIZEOF_VOID_P=${toString (stdenv.hostPlatform.parsed.cpu.bits / 8)}"
-  ] ++ lib.optionals (useLLVM) [
-    "-DCOMPILER_RT_BUILD_BUILTINS=ON"
-    #https://stackoverflow.com/questions/53633705/cmake-the-c-compiler-is-not-able-to-compile-a-simple-test-program
-    "-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY"
-  ] ++ lib.optionals (bareMetal) [
-    "-DCOMPILER_RT_OS_DIR=baremetal"
-  ] ++ lib.optionals (stdenv.hostPlatform.isDarwin) [
-    # The compiler-rt build infrastructure sniffs supported platforms on Darwin
-    # and finds i386;x86_64;x86_64h. We only build for x86_64, so linking fails
-    # when it tries to use libc++ and libc++api for i386.
-    "-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.darwinArch}"
-  ];
-
-  outputs = [ "out" "dev" ];
-
-  patches = [
-    # https://github.com/llvm/llvm-project/commit/947f9692440836dcb8d88b74b69dd379d85974ce
-    ../../common/compiler-rt/glibc.patch
-    ../../common/compiler-rt/7-12-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
-    ./gnu-install-dirs.patch
-    ../../common/compiler-rt/libsanitizer-no-cyclades-9.patch
-  ] ++ lib.optional (useLLVM) ./crtbegin-and-end.patch
-    ++ lib.optional stdenv.hostPlatform.isAarch32 ./armv7l.patch;
-
-  # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks
-  # to get it, but they're unfree. Since LLVM is rather central to the stdenv, we patch out TSAN support so that Hydra
-  # can build this. If we didn't do it, basically the entire nixpkgs on Darwin would have an unfree dependency and we'd
-  # get no binary cache for the entire platform. If you really find yourself wanting the TSAN, make this controllable by
-  # a flag and turn the flag off during the stdenv build.
-  postPatch = lib.optionalString (!stdenv.isDarwin) ''
-    substituteInPlace cmake/builtin-config-ix.cmake \
-      --replace 'set(X86 i386)' 'set(X86 i386 i486 i586 i686)'
-  '' + lib.optionalString stdenv.isDarwin ''
-    substituteInPlace cmake/config-ix.cmake \
-      --replace 'set(COMPILER_RT_HAS_TSAN TRUE)' 'set(COMPILER_RT_HAS_TSAN FALSE)'
-  '' + lib.optionalString (useLLVM) ''
-    substituteInPlace lib/builtins/int_util.c \
-      --replace "#include <stdlib.h>" ""
-    substituteInPlace lib/builtins/clear_cache.c \
-      --replace "#include <assert.h>" ""
-    substituteInPlace lib/builtins/cpu_model.c \
-      --replace "#include <assert.h>" ""
-  '';
-
-  preConfigure = lib.optionalString (useLLVM && !haveLibc) ''
-    cmakeFlagsArray+=(-DCMAKE_C_FLAGS="-nodefaultlibs -ffreestanding")
-  '';
-
-  # Hack around weird upsream RPATH bug
-  postInstall = lib.optionalString (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isWasm) ''
-    ln -s "$out/lib"/*/* "$out/lib"
-  '' + lib.optionalString (useLLVM) ''
-    ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/crtbegin.o
-    ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtend.o
-    ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/crtbeginS.o
-    ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/crtendS.o
-  '' + lib.optionalString doFakeLibgcc ''
-    ln -s $out/lib/freebsd/libclang_rt.builtins-*.a $out/lib/libgcc.a
-  '';
-
-  meta = llvm_meta // {
-    homepage = "https://compiler-rt.llvm.org/";
-    description = "Compiler runtime libraries";
-    longDescription = ''
-      The compiler-rt project provides highly tuned implementations of the
-      low-level code generator support routines like "__fixunsdfdi" and other
-      calls generated when a target doesn't have a short sequence of native
-      instructions to implement a core IR operation. It also provides
-      implementations of run-time libraries for dynamic testing tools such as
-      AddressSanitizer, ThreadSanitizer, MemorySanitizer, and DataFlowSanitizer.
-    '';
-    # "All of the code in the compiler-rt project is dual licensed under the MIT
-    # license and the UIUC License (a BSD-like license)":
-    license = with lib.licenses; [ mit ncsa ];
-    broken = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64;
-  };
-}
diff --git a/pkgs/development/compilers/llvm/8/compiler-rt/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/8/compiler-rt/gnu-install-dirs.patch
deleted file mode 100644
index a25fa90f9800..000000000000
--- a/pkgs/development/compilers/llvm/8/compiler-rt/gnu-install-dirs.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index aa360a3ef36e..a39676148181 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -8,6 +8,7 @@ cmake_minimum_required(VERSION 3.4.3)
- # Check if compiler-rt is built as a standalone project.
- if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR COMPILER_RT_STANDALONE_BUILD)
-   project(CompilerRT C CXX ASM)
-+  include(GNUInstallDirs)
-   set(COMPILER_RT_STANDALONE_BUILD TRUE)
-   set_property(GLOBAL PROPERTY USE_FOLDERS ON)
- endif()
-diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake
-index 81b110203c27..df7598a11caf 100644
---- a/cmake/Modules/AddCompilerRT.cmake
-+++ b/cmake/Modules/AddCompilerRT.cmake
-@@ -479,7 +479,7 @@ macro(add_compiler_rt_resource_file target_name file_name component)
-   add_custom_target(${target_name} DEPENDS ${dst_file})
-   # Install in Clang resource directory.
-   install(FILES ${file_name}
--    DESTINATION ${COMPILER_RT_INSTALL_PATH}/share
-+    DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_DATADIR}
-     COMPONENT ${component})
-   add_dependencies(${component} ${target_name})
- 
-@@ -496,7 +496,7 @@ macro(add_compiler_rt_script name)
-   add_custom_target(${name} DEPENDS ${dst})
-   install(FILES ${dst}
-     PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
--    DESTINATION ${COMPILER_RT_INSTALL_PATH}/bin)
-+    DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_BINDIR})
- endmacro(add_compiler_rt_script src name)
- 
- # Builds custom version of libc++ and installs it in <prefix>.
-diff --git a/cmake/Modules/CompilerRTDarwinUtils.cmake b/cmake/Modules/CompilerRTDarwinUtils.cmake
-index 04cc955980fa..a99f6dfb2f82 100644
---- a/cmake/Modules/CompilerRTDarwinUtils.cmake
-+++ b/cmake/Modules/CompilerRTDarwinUtils.cmake
-@@ -377,7 +377,7 @@ macro(darwin_add_embedded_builtin_libraries)
-     set(DARWIN_macho_embedded_LIBRARY_OUTPUT_DIR
-       ${COMPILER_RT_OUTPUT_DIR}/lib/macho_embedded)
-     set(DARWIN_macho_embedded_LIBRARY_INSTALL_DIR
--      ${COMPILER_RT_INSTALL_PATH}/lib/macho_embedded)
-+      ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/macho_embedded)
-       
-     set(CFLAGS_armv7 "-target thumbv7-apple-darwin-eabi")
-     set(CFLAGS_i386 "-march=pentium")
-diff --git a/cmake/Modules/CompilerRTUtils.cmake b/cmake/Modules/CompilerRTUtils.cmake
-index 5348f2064b67..d7b8fe190789 100644
---- a/cmake/Modules/CompilerRTUtils.cmake
-+++ b/cmake/Modules/CompilerRTUtils.cmake
-@@ -363,7 +363,7 @@ endfunction()
- function(get_compiler_rt_install_dir arch install_dir)
-   if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
-     get_compiler_rt_target(${arch} target)
--    set(${install_dir} ${COMPILER_RT_INSTALL_PATH}/${target}/lib PARENT_SCOPE)
-+    set(${install_dir} ${COMPILER_RT_INSTALL_PATH}/${target}/${CMAKE_INSTALL_FULL_LIBDIR} PARENT_SCOPE)
-   else()
-     set(${install_dir} ${COMPILER_RT_LIBRARY_INSTALL_DIR} PARENT_SCOPE)
-   endif()
-diff --git a/cmake/base-config-ix.cmake b/cmake/base-config-ix.cmake
-index aeabf17653f5..0a927fbfc750 100644
---- a/cmake/base-config-ix.cmake
-+++ b/cmake/base-config-ix.cmake
-@@ -59,11 +59,11 @@ if (LLVM_TREE_AVAILABLE)
- else()
-     # Take output dir and install path from the user.
-   set(COMPILER_RT_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR} CACHE PATH
--    "Path where built compiler-rt libraries should be stored.")
-+    "Path where built compiler-rt build artifacts should be stored.")
-   set(COMPILER_RT_EXEC_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/bin CACHE PATH
-     "Path where built compiler-rt executables should be stored.")
--  set(COMPILER_RT_INSTALL_PATH ${CMAKE_INSTALL_PREFIX} CACHE PATH
--    "Path where built compiler-rt libraries should be installed.")
-+  set(COMPILER_RT_INSTALL_PATH "" CACHE PATH
-+    "Prefix where built compiler-rt artifacts should be installed, comes before CMAKE_INSTALL_PREFIX.")
-   option(COMPILER_RT_INCLUDE_TESTS "Generate and build compiler-rt unit tests." OFF)
-   option(COMPILER_RT_ENABLE_WERROR "Fail and stop if warning is triggered" OFF)
-   # Use a host compiler to compile/link tests.
-@@ -91,7 +91,7 @@ else(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR)
-   set(COMPILER_RT_LIBRARY_OUTPUT_DIR
-     ${COMPILER_RT_OUTPUT_DIR}/lib/${COMPILER_RT_OS_DIR})
-   set(COMPILER_RT_LIBRARY_INSTALL_DIR
--    ${COMPILER_RT_INSTALL_PATH}/lib/${COMPILER_RT_OS_DIR})
-+    ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/${COMPILER_RT_OS_DIR})
- endif()
- 
- if(APPLE)
-diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
-index c4b93b89a30c..3913dc3a1ee6 100644
---- a/include/CMakeLists.txt
-+++ b/include/CMakeLists.txt
-@@ -48,12 +48,12 @@ set_target_properties(compiler-rt-headers PROPERTIES FOLDER "Compiler-RT Misc")
- install(FILES ${SANITIZER_HEADERS}
-   COMPONENT compiler-rt-headers
-   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
--  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/sanitizer)
-+  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/sanitizer)
- # Install xray headers.
- install(FILES ${XRAY_HEADERS}
-   COMPONENT compiler-rt-headers
-   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
--  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/xray)
-+  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/xray)
- 
- if (NOT CMAKE_CONFIGURATION_TYPES) # don't add this for IDEs.
-   add_custom_target(install-compiler-rt-headers
-diff --git a/lib/dfsan/CMakeLists.txt b/lib/dfsan/CMakeLists.txt
-index b3ae713cf02c..52b364b900f5 100644
---- a/lib/dfsan/CMakeLists.txt
-+++ b/lib/dfsan/CMakeLists.txt
-@@ -54,4 +54,4 @@ add_custom_command(OUTPUT ${dfsan_abilist_filename}
-                    DEPENDS done_abilist.txt libc_ubuntu1404_abilist.txt)
- add_dependencies(dfsan dfsan_abilist)
- install(FILES ${dfsan_abilist_filename}
--        DESTINATION ${COMPILER_RT_INSTALL_PATH}/share)
-+        DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_DATADIR})
diff --git a/pkgs/development/compilers/llvm/8/default.nix b/pkgs/development/compilers/llvm/8/default.nix
deleted file mode 100644
index 0483916a620b..000000000000
--- a/pkgs/development/compilers/llvm/8/default.nix
+++ /dev/null
@@ -1,272 +0,0 @@
-{ lowPrio, newScope, pkgs, lib, stdenv, cmake
-, preLibcCrossHeaders
-, libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith
-, buildLlvmTools # tools, but from the previous stage, for cross
-, targetLlvmLibraries # libraries, but from the next stage, for cross
-, targetLlvm
-# This is the default binutils, but with *this* version of LLD rather
-# than the default LLVM version's, if LLD is the choice. We use these for
-# the `useLLVM` bootstrapping below.
-, bootBintoolsNoLibc ?
-    if stdenv.targetPlatform.linker == "lld"
-    then null
-    else pkgs.bintoolsNoLibc
-, bootBintools ?
-    if stdenv.targetPlatform.linker == "lld"
-    then null
-    else pkgs.bintools
-}:
-
-let
-  release_version = "8.0.1";
-  version = release_version; # differentiating these is important for rc's
-
-  fetch = name: sha256: fetchurl {
-    url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${release_version}/${name}-${version}.src.tar.xz";
-    inherit sha256;
-  };
-
-  clang-tools-extra_src = fetch "clang-tools-extra" "1qf3097bc5ia8p6cpmbx985rjr3yaah5s8fc0nv7pw742yv7jw8q";
-
-  inherit (import ../common/common-let.nix { inherit lib release_version; }) llvm_meta;
-
-  tools = lib.makeExtensible (tools: let
-    callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch buildLlvmTools; });
-    mkExtraBuildCommands0 = cc: ''
-      rsrc="$out/resource-root"
-      mkdir "$rsrc"
-      ln -s "${cc.lib}/lib/clang/${release_version}/include" "$rsrc"
-      echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
-    '';
-    mkExtraBuildCommands = cc: mkExtraBuildCommands0 cc + ''
-      ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
-      ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share"
-    '';
-
-  bintoolsNoLibc' =
-    if bootBintoolsNoLibc == null
-    then tools.bintoolsNoLibc
-    else bootBintoolsNoLibc;
-  bintools' =
-    if bootBintools == null
-    then tools.bintools
-    else bootBintools;
-
-  in {
-
-    libllvm = callPackage ./llvm {
-      inherit llvm_meta;
-    };
-
-    # `llvm` historically had the binaries.  When choosing an output explicitly,
-    # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get*
-    llvm = tools.libllvm;
-
-    libllvm-polly = callPackage ./llvm {
-      inherit llvm_meta;
-      enablePolly = true;
-    };
-
-    llvm-polly = tools.libllvm-polly.lib // { outputSpecified = false; };
-
-    libclang = callPackage ./clang {
-      inherit clang-tools-extra_src llvm_meta;
-    };
-
-    clang-unwrapped = tools.libclang;
-
-    clang-polly-unwrapped = callPackage ./clang {
-      inherit llvm_meta;
-      inherit clang-tools-extra_src;
-      libllvm = tools.libllvm-polly;
-      enablePolly = true;
-    };
-
-    # disabled until recommonmark supports sphinx 3
-    #llvm-manpages = lowPrio (tools.libllvm.override {
-    #  enableManpages = true;
-    #  python3 = pkgs.python3;  # don't use python-boot
-    #});
-
-    clang-manpages = lowPrio (tools.libclang.override {
-      enableManpages = true;
-      python3 = pkgs.python3;  # don't use python-boot
-    });
-
-    # pick clang appropriate for package set we are targeting
-    clang =
-      /**/ if stdenv.targetPlatform.libc == null then tools.clangNoLibc
-      else if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM
-      else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang
-      else tools.libcxxClang;
-
-    libstdcxxClang = wrapCCWith rec {
-      cc = tools.clang-unwrapped;
-      # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper.
-      libcxx = null;
-      extraPackages = [
-        targetLlvmLibraries.compiler-rt
-      ];
-      extraBuildCommands = mkExtraBuildCommands cc;
-    };
-
-    libcxxClang = wrapCCWith rec {
-      cc = tools.clang-unwrapped;
-      libcxx = targetLlvmLibraries.libcxx;
-      extraPackages = [
-        libcxx.cxxabi
-        targetLlvmLibraries.compiler-rt
-      ];
-      extraBuildCommands = mkExtraBuildCommands cc;
-    };
-
-    lld = callPackage ./lld {
-      inherit llvm_meta;
-    };
-
-    lldb = callPackage ./lldb {
-      inherit llvm_meta;
-    };
-
-    # Below, is the LLVM bootstrapping logic. It handles building a
-    # fully LLVM toolchain from scratch. No GCC toolchain should be
-    # pulled in. As a consequence, it is very quick to build different
-    # targets provided by LLVM and we can also build for what GCC
-    # doesn’t support like LLVM. Probably we should move to some other
-    # file.
-
-    bintools-unwrapped = callPackage ../common/bintools.nix { };
-
-    bintoolsNoLibc = wrapBintoolsWith {
-      bintools = tools.bintools-unwrapped;
-      libc = preLibcCrossHeaders;
-    };
-
-    bintools = wrapBintoolsWith {
-      bintools = tools.bintools-unwrapped;
-    };
-
-    clangUseLLVM = wrapCCWith rec {
-      cc = tools.clang-unwrapped;
-      libcxx = targetLlvmLibraries.libcxx;
-      bintools = bintools';
-      extraPackages = [
-        libcxx.cxxabi
-        targetLlvmLibraries.compiler-rt
-      ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [
-        targetLlvmLibraries.libunwind
-      ];
-      extraBuildCommands = ''
-        echo "-rtlib=compiler-rt -Wno-unused-command-line-argument" >> $out/nix-support/cc-cflags
-        echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
-      '' + lib.optionalString (!stdenv.targetPlatform.isWasm) ''
-        echo "--unwindlib=libunwind" >> $out/nix-support/cc-cflags
-      '' + lib.optionalString (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) ''
-        echo "-lunwind" >> $out/nix-support/cc-ldflags
-      '' + lib.optionalString stdenv.targetPlatform.isWasm ''
-        echo "-fno-exceptions" >> $out/nix-support/cc-cflags
-      '' + mkExtraBuildCommands cc;
-    };
-
-    clangNoLibcxx = wrapCCWith rec {
-      cc = tools.clang-unwrapped;
-      libcxx = null;
-      bintools = bintools';
-      extraPackages = [
-        targetLlvmLibraries.compiler-rt
-      ];
-      extraBuildCommands = ''
-        echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags
-        echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
-        echo "-nostdlib++" >> $out/nix-support/cc-cflags
-      '' + mkExtraBuildCommands cc;
-    };
-
-    clangNoLibc = wrapCCWith rec {
-      cc = tools.clang-unwrapped;
-      libcxx = null;
-      bintools = bintoolsNoLibc';
-      extraPackages = [
-        targetLlvmLibraries.compiler-rt
-      ];
-      extraBuildCommands = ''
-        echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags
-        echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
-      '' + mkExtraBuildCommands cc;
-    };
-
-    clangNoCompilerRt = wrapCCWith rec {
-      cc = tools.clang-unwrapped;
-      libcxx = null;
-      bintools = bintoolsNoLibc';
-      extraPackages = [ ];
-      extraBuildCommands = ''
-        echo "-nostartfiles" >> $out/nix-support/cc-cflags
-      '' + mkExtraBuildCommands0 cc;
-    };
-
-    clangNoCompilerRtWithLibc = wrapCCWith rec {
-      cc = tools.clang-unwrapped;
-      libcxx = null;
-      bintools = bintools';
-      extraPackages = [ ];
-      extraBuildCommands = mkExtraBuildCommands0 cc;
-    };
-
-  });
-
-  libraries = lib.makeExtensible (libraries: let
-    callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
-  in {
-
-    compiler-rt-libc = callPackage ./compiler-rt {
-      inherit llvm_meta;
-      stdenv = if stdenv.hostPlatform.useLLVM or false
-               then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc
-               else stdenv;
-    };
-
-    compiler-rt-no-libc = callPackage ./compiler-rt {
-      inherit llvm_meta;
-      stdenv = if stdenv.hostPlatform.useLLVM or false
-               then overrideCC stdenv buildLlvmTools.clangNoCompilerRt
-               else stdenv;
-    };
-
-    # N.B. condition is safe because without useLLVM both are the same.
-    compiler-rt = if stdenv.hostPlatform.isAndroid
-      then libraries.compiler-rt-libc
-      else libraries.compiler-rt-no-libc;
-
-    stdenv = overrideCC stdenv buildLlvmTools.clang;
-
-    libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang;
-
-    libcxx = callPackage ./libcxx {
-      inherit llvm_meta;
-      stdenv = if stdenv.hostPlatform.useLLVM or false
-               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
-               else stdenv;
-    };
-
-    libcxxabi = callPackage ./libcxxabi {
-      inherit llvm_meta;
-      stdenv = if stdenv.hostPlatform.useLLVM or false
-               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
-               else stdenv;
-    };
-
-    libunwind = callPackage ./libunwind {
-      inherit llvm_meta;
-      stdenv = if stdenv.hostPlatform.useLLVM or false
-               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
-               else stdenv;
-    };
-
-    openmp = callPackage ./openmp {
-      inherit llvm_meta targetLlvm;
-    };
-  });
-  noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ];
-
-in { inherit tools libraries release_version; } // (noExtend libraries) // (noExtend tools)
diff --git a/pkgs/development/compilers/llvm/8/libcxx/default.nix b/pkgs/development/compilers/llvm/8/libcxx/default.nix
deleted file mode 100644
index 967d4b748dbe..000000000000
--- a/pkgs/development/compilers/llvm/8/libcxx/default.nix
+++ /dev/null
@@ -1,92 +0,0 @@
-{ lib, stdenv, llvm_meta, fetch, cmake, python3, fixDarwinDylibNames, version
-, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else libcxxabi
-, libcxxabi, libcxxrt
-, enableShared ? !stdenv.hostPlatform.isStatic
-}:
-
-assert stdenv.isDarwin -> cxxabi.pname == "libcxxabi";
-
-stdenv.mkDerivation {
-  pname = "libcxx";
-  inherit version;
-
-  src = fetch "libcxx" "0y4vc9z36c1zlq15cnibdzxnc1xi5glbc6klnm8a41q3db4541kz";
-
-  postUnpack = ''
-    unpackFile ${libcxxabi.src}
-    export LIBCXXABI_INCLUDE_DIR="$PWD/$(ls -d libcxxabi-${version}*)/include"
-  '';
-
-  outputs = [ "out" "dev" ];
-
-  patches = [
-    ./gnu-install-dirs.patch
-  ] ++ lib.optionals stdenv.hostPlatform.isMusl [
-    ../../libcxx-0001-musl-hacks.patch
-  ];
-
-  # Prevent errors like "error: 'foo' is unavailable: introduced in macOS yy.zz"
-  postPatch = ''
-    substituteInPlace include/__config \
-      --replace "#    define _LIBCPP_USE_AVAILABILITY_APPLE" ""
-  '';
-
-  prePatch = ''
-    substituteInPlace lib/CMakeLists.txt --replace "/usr/lib/libc++" "\''${LIBCXX_LIBCXXABI_LIB_PATH}/libc++"
-  '';
-
-  preConfigure = ''
-    # Get headers from the cxxabi source so we can see private headers not installed by the cxxabi package
-    cmakeFlagsArray=($cmakeFlagsArray -DLIBCXX_CXX_ABI_INCLUDE_PATHS="$LIBCXXABI_INCLUDE_DIR")
-  '' + lib.optionalString stdenv.hostPlatform.isMusl ''
-    patchShebangs utils/cat_files.py
-  '';
-  nativeBuildInputs = [ cmake ]
-    ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) python3
-    ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
-
-  buildInputs = [ cxxabi ];
-
-  cmakeFlags = [
-    "-DLIBCXX_LIBCPPABI_VERSION=2"
-    "-DLIBCXX_CXX_ABI=${cxxabi.pname}"
-  ] ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1"
-    ++ lib.optional (cxxabi.pname == "libcxxabi") "-DLIBCXX_LIBCXXABI_LIB_PATH=${cxxabi}/lib"
-    ++ lib.optional (stdenv.hostPlatform.useLLVM or false) "-DLIBCXX_USE_COMPILER_RT=ON"
-    ++ lib.optionals stdenv.hostPlatform.isWasm [
-      "-DLIBCXX_ENABLE_THREADS=OFF"
-      "-DLIBCXX_ENABLE_FILESYSTEM=OFF"
-      "-DLIBCXX_ENABLE_EXCEPTIONS=OFF"
-    ] ++ lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF";
-
-  preInstall = lib.optionalString (stdenv.isDarwin) ''
-    for file in lib/*.dylib; do
-      if [ -L "$file" ]; then continue; fi
-
-      baseName=$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1))
-      installName="$out/lib/$baseName"
-      abiName=$(echo "$baseName" | sed -e 's/libc++/libc++abi/')
-
-      for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do
-        ${stdenv.cc.targetPrefix}install_name_tool -change $other ${cxxabi}/lib/$abiName $file
-      done
-    done
-  '';
-
-  passthru = {
-    isLLVM = true;
-    inherit cxxabi;
-  };
-
-  meta = llvm_meta // {
-    homepage = "https://libcxx.llvm.org/";
-    description = "C++ standard library";
-    longDescription = ''
-      libc++ is an implementation of the C++ standard library, targeting C++11,
-      C++14 and above.
-    '';
-    # "All of the code in libc++ is dual licensed under the MIT license and the
-    # UIUC License (a BSD-like license)":
-    license = with lib.licenses; [ mit ncsa ];
-  };
-}
diff --git a/pkgs/development/compilers/llvm/8/libcxx/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/8/libcxx/gnu-install-dirs.patch
deleted file mode 100644
index 6af403ac86b4..000000000000
--- a/pkgs/development/compilers/llvm/8/libcxx/gnu-install-dirs.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 6b83bce1ae72..63cda3e4e80c 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -26,6 +26,8 @@ set(CMAKE_MODULE_PATH
- if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
-   project(libcxx CXX C)
- 
-+  include(GNUInstallDirs)
-+
-   set(PACKAGE_NAME libcxx)
-   set(PACKAGE_VERSION 8.0.1)
-   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
-diff --git a/cmake/Modules/HandleLibCXXABI.cmake b/cmake/Modules/HandleLibCXXABI.cmake
-index 1c19d7e01af7..9c8aee8e8bb7 100644
---- a/cmake/Modules/HandleLibCXXABI.cmake
-+++ b/cmake/Modules/HandleLibCXXABI.cmake
-@@ -59,7 +59,7 @@ macro(setup_abi_lib abidefines abilib abifiles abidirs)
- 
-         if (LIBCXX_INSTALL_HEADERS)
-           install(FILES "${LIBCXX_BINARY_INCLUDE_DIR}/${fpath}"
--            DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1/${dstdir}
-+            DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1/${dstdir}
-             COMPONENT cxx-headers
-             PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
-             )
-diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
-index 73f7cfc4d8e3..92cf0864ac7e 100644
---- a/include/CMakeLists.txt
-+++ b/include/CMakeLists.txt
-@@ -243,7 +243,7 @@ if (LIBCXX_INSTALL_HEADERS)
-   foreach(file ${files})
-     get_filename_component(dir ${file} DIRECTORY)
-     install(FILES ${file}
--      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1/${dir}
-+      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1/${dir}
-       COMPONENT cxx-headers
-       PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
-     )
-@@ -252,7 +252,7 @@ if (LIBCXX_INSTALL_HEADERS)
-   if (LIBCXX_NEEDS_SITE_CONFIG)
-     # Install the generated header as __config.
-     install(FILES ${LIBCXX_BINARY_DIR}/__generated_config
--      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1
-+      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1
-       PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
-       RENAME __config
-       COMPONENT cxx-headers)
-diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
-index 24489e8fb5e8..7327e5ee4b85 100644
---- a/lib/CMakeLists.txt
-+++ b/lib/CMakeLists.txt
-@@ -414,8 +414,8 @@ if (LIBCXX_INSTALL_LIBRARY)
-     set(experimental_lib cxx_experimental)
-   endif()
-   install(TARGETS ${LIBCXX_INSTALL_TARGETS} ${filesystem_lib} ${experimental_lib}
--    LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}lib${LIBCXX_LIBDIR_SUFFIX} COMPONENT cxx
--    ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}lib${LIBCXX_LIBDIR_SUFFIX} COMPONENT cxx
-+    LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX} COMPONENT cxx
-+    ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX} COMPONENT cxx
-     )
-   # NOTE: This install command must go after the cxx install command otherwise
-   # it will not be executed after the library symlinks are installed.
-@@ -423,7 +423,7 @@ if (LIBCXX_INSTALL_LIBRARY)
-     # Replace the libc++ filename with $<TARGET_LINKER_FILE:cxx>
-     # after we required CMake 3.0.
-     install(FILES "${LIBCXX_LIBRARY_DIR}/libc++${CMAKE_SHARED_LIBRARY_SUFFIX}"
--      DESTINATION ${LIBCXX_INSTALL_PREFIX}lib${LIBCXX_LIBDIR_SUFFIX}
-+      DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX}
-       COMPONENT libcxx)
-   endif()
- endif()
diff --git a/pkgs/development/compilers/llvm/8/libcxxabi/default.nix b/pkgs/development/compilers/llvm/8/libcxxabi/default.nix
deleted file mode 100644
index 885d85b8c3e7..000000000000
--- a/pkgs/development/compilers/llvm/8/libcxxabi/default.nix
+++ /dev/null
@@ -1,85 +0,0 @@
-{ lib, stdenv, llvm_meta, cmake, fetch, libcxx, libunwind, llvm, version
-, enableShared ? !stdenv.hostPlatform.isStatic
-}:
-
-stdenv.mkDerivation {
-  pname = "libcxxabi";
-  inherit version;
-
-  src = fetch "libcxxabi" "1vznz8n1z1h8af0ga451m98lc2hjnv4fyzl71napsvjhvk4g6nxp";
-
-  outputs = [ "out" "dev" ];
-
-  postUnpack = ''
-    unpackFile ${libcxx.src}
-    unpackFile ${llvm.src}
-    cmakeFlags+=" -DLLVM_PATH=$PWD/$(ls -d llvm-*) -DLIBCXXABI_LIBCXX_PATH=$PWD/$(ls -d libcxx-*)"
-  '' + lib.optionalString stdenv.isDarwin ''
-    export TRIPLE=x86_64-apple-darwin
-  '' + lib.optionalString stdenv.hostPlatform.isMusl ''
-    patch -p1 -d $(ls -d libcxx-*) -i ${../../libcxx-0001-musl-hacks.patch}
-  '' + lib.optionalString stdenv.hostPlatform.isWasm ''
-    patch -p1 -d $(ls -d llvm-*) -i ${./wasm.patch}
-  '';
-
-  patches = [
-    ../../common/libcxxabi/no-threads.patch
-    ./gnu-install-dirs.patch
-  ];
-
-  nativeBuildInputs = [ cmake ];
-  buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.hostPlatform.isWasm) libunwind;
-
-  cmakeFlags = lib.optionals (stdenv.hostPlatform.useLLVM or false) [
-    "-DLLVM_ENABLE_LIBCXX=ON"
-    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
-  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
-    "-DLIBCXXABI_ENABLE_THREADS=OFF"
-    "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
-  ] ++ lib.optionals (!enableShared) [
-    "-DLIBCXXABI_ENABLE_SHARED=OFF"
-  ];
-
-  preInstall = lib.optionalString stdenv.isDarwin ''
-    for file in lib/*.dylib; do
-      if [ -L "$file" ]; then continue; fi
-
-      # Fix up the install name. Preserve the basename, just replace the path.
-      installName="$out/lib/$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1))"
-
-      # this should be done in CMake, but having trouble figuring out
-      # the magic combination of necessary CMake variables
-      # if you fancy a try, take a look at
-      # https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling
-      ${stdenv.cc.targetPrefix}install_name_tool -id $installName $file
-
-      # cc-wrapper passes '-lc++abi' to all c++ link steps, but that causes
-      # libcxxabi to sometimes link against a different version of itself.
-      # Here we simply make that second reference point to ourselves.
-      for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do
-        ${stdenv.cc.targetPrefix}install_name_tool -change $other $installName $file
-      done
-    done
-  '';
-
-  postInstall = ''
-    mkdir -p "$dev/include"
-    install -m 644 ../include/${if stdenv.isDarwin then "*" else "cxxabi.h"} "$dev/include"
-  '';
-
-  passthru = {
-    libName = "c++abi";
-  };
-
-  meta = llvm_meta // {
-    homepage = "https://libcxxabi.llvm.org/";
-    description = "Provides C++ standard library support";
-    longDescription = ''
-      libc++abi is a new implementation of low level support for a standard C++ library.
-    '';
-    # "All of the code in libc++abi is dual licensed under the MIT license and
-    # the UIUC License (a BSD-like license)":
-    license = with lib.licenses; [ mit ncsa ];
-    maintainers = llvm_meta.maintainers ++ [ lib.maintainers.vlstill ];
-  };
-}
diff --git a/pkgs/development/compilers/llvm/8/libcxxabi/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/8/libcxxabi/gnu-install-dirs.patch
deleted file mode 100644
index 3f924b0efbea..000000000000
--- a/pkgs/development/compilers/llvm/8/libcxxabi/gnu-install-dirs.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 92c7dc5dc557..556b3e05a042 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -20,6 +20,8 @@ set(CMAKE_MODULE_PATH
- if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
-   project(libcxxabi CXX C)
- 
-+  include(GNUInstallDirs)
-+
-   set(PACKAGE_NAME libcxxabi)
-   set(PACKAGE_VERSION 8.0.0)
-   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 7e21fb2d7926..30711099a19c 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -220,8 +220,8 @@ add_custom_target(cxxabi DEPENDS ${LIBCXXABI_BUILD_TARGETS})
- 
- if (LIBCXXABI_INSTALL_LIBRARY)
-   install(TARGETS ${LIBCXXABI_INSTALL_TARGETS}
--    LIBRARY DESTINATION ${LIBCXXABI_INSTALL_PREFIX}lib${LIBCXXABI_LIBDIR_SUFFIX} COMPONENT cxxabi
--    ARCHIVE DESTINATION ${LIBCXXABI_INSTALL_PREFIX}lib${LIBCXXABI_LIBDIR_SUFFIX} COMPONENT cxxabi
-+    LIBRARY DESTINATION ${LIBCXXABI_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX} COMPONENT cxxabi
-+    ARCHIVE DESTINATION ${LIBCXXABI_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX} COMPONENT cxxabi
-     )
- endif()
- 
diff --git a/pkgs/development/compilers/llvm/8/libunwind/default.nix b/pkgs/development/compilers/llvm/8/libunwind/default.nix
deleted file mode 100644
index 244b5775bdc8..000000000000
--- a/pkgs/development/compilers/llvm/8/libunwind/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ lib, stdenv, llvm_meta, version, fetch, cmake, fetchpatch
-, enableShared ? !stdenv.hostPlatform.isStatic
-}:
-
-stdenv.mkDerivation rec {
-  pname = "libunwind";
-  inherit version;
-
-  src = fetch pname "0vhgcgzsb33l83qaikrkj87ypqb48mi607rccczccwiiv8ficw0q";
-
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/llvm-mirror/libunwind/commit/34a45c630d4c79af403661d267db42fbe7de1178.patch";
-      sha256 = "0n0pv6jvcky8pn3srhrf9x5kbnd0d2kia9xlx2g590f5q0bgwfhv";
-    })
-    (fetchpatch {
-      url = "https://github.com/llvm-mirror/libunwind/commit/e050272d2eb57eb4e56a37b429a61df2ebb8aa3e.patch";
-      sha256 = "1sxyx5xnax8k713jjcxgq3jq3cpnxygs2rcdf5vfja0f2k9jzldl";
-    })
-    ./gnu-install-dirs.patch
-  ];
-
-  outputs = [ "out" "dev" ];
-
-  nativeBuildInputs = [ cmake ];
-
-  cmakeFlags = lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF";
-
-  meta = llvm_meta // {
-    # Details: https://github.com/llvm/llvm-project/blob/main/libunwind/docs/index.rst
-    homepage = "https://clang.llvm.org/docs/Toolchain.html#unwind-library";
-    description = "LLVM's unwinder library";
-    longDescription = ''
-      The unwind library provides a family of _Unwind_* functions implementing
-      the language-neutral stack unwinding portion of the Itanium C++ ABI (Level
-      I). It is a dependency of the C++ ABI library, and sometimes is a
-      dependency of other runtimes.
-    '';
-  };
-}
diff --git a/pkgs/development/compilers/llvm/8/libunwind/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/8/libunwind/gnu-install-dirs.patch
deleted file mode 100644
index ffabba8137d6..000000000000
--- a/pkgs/development/compilers/llvm/8/libunwind/gnu-install-dirs.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 3d06073cfe74..55c7d1635fcd 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -18,6 +18,8 @@ set(CMAKE_MODULE_PATH
- if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
-   project(libunwind)
- 
-+  include(GNUInstallDirs)
-+
-   # Rely on llvm-config.
-   set(CONFIG_OUTPUT)
-   if(NOT LLVM_CONFIG_PATH)
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index f7523f88b6ac..4060dad214de 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -151,8 +151,8 @@ add_custom_target(unwind DEPENDS ${LIBUNWIND_BUILD_TARGETS})
- 
- if (LIBUNWIND_INSTALL_LIBRARY)
-   install(TARGETS ${LIBUNWIND_INSTALL_TARGETS}
--    LIBRARY DESTINATION ${LIBUNWIND_INSTALL_PREFIX}lib${LIBUNWIND_LIBDIR_SUFFIX} COMPONENT unwind
--    ARCHIVE DESTINATION ${LIBUNWIND_INSTALL_PREFIX}lib${LIBUNWIND_LIBDIR_SUFFIX} COMPONENT unwind)
-+    LIBRARY DESTINATION ${LIBUNWIND_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX} COMPONENT unwind
-+    ARCHIVE DESTINATION ${LIBUNWIND_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX} COMPONENT unwind)
- endif()
- 
- if (NOT CMAKE_CONFIGURATION_TYPES AND LIBUNWIND_INSTALL_LIBRARY)
diff --git a/pkgs/development/compilers/llvm/8/lld/default.nix b/pkgs/development/compilers/llvm/8/lld/default.nix
deleted file mode 100644
index 9a3a49db7855..000000000000
--- a/pkgs/development/compilers/llvm/8/lld/default.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{ lib, stdenv, llvm_meta
-, buildLlvmTools
-, fetch
-, cmake
-, libxml2
-, libllvm
-, version
-}:
-
-stdenv.mkDerivation rec {
-  pname = "lld";
-  inherit version;
-
-  src = fetch pname "121xhxrlvwy3k5nf6p1wv31whxlb635ssfkci8z93mwv4ja1xflz";
-
-  patches = [
-    ./gnu-install-dirs.patch
-  ];
-
-  nativeBuildInputs = [ cmake ];
-  buildInputs = [ libllvm libxml2 ];
-
-  cmakeFlags = [
-    "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
-  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
-    "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
-  ];
-
-  # Musl's default stack size is too small for lld to be able to link Firefox.
-  LDFLAGS = lib.optionalString stdenv.hostPlatform.isMusl "-Wl,-z,stack-size=2097152";
-
-  outputs = [ "out" "lib" "dev" ];
-
-  meta = llvm_meta // {
-    homepage = "https://lld.llvm.org/";
-    description = "The LLVM linker (unwrapped)";
-    longDescription = ''
-      LLD is a linker from the LLVM project that is a drop-in replacement for
-      system linkers and runs much faster than them. It also provides features
-      that are useful for toolchain developers.
-      The linker supports ELF (Unix), PE/COFF (Windows), Mach-O (macOS), and
-      WebAssembly in descending order of completeness. Internally, LLD consists
-      of several different linkers.
-    '';
-  };
-}
diff --git a/pkgs/development/compilers/llvm/8/lld/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/8/lld/gnu-install-dirs.patch
deleted file mode 100644
index acc2d3d47760..000000000000
--- a/pkgs/development/compilers/llvm/8/lld/gnu-install-dirs.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index e2fbdbfbbb47..d601b231ebb8 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -6,6 +6,8 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
-   set(CMAKE_INCLUDE_CURRENT_DIR ON)
-   set(LLD_BUILT_STANDALONE TRUE)
- 
-+  include(GNUInstallDirs)
-+
-   find_program(LLVM_CONFIG_PATH "llvm-config" DOC "Path to llvm-config binary")
-   if(NOT LLVM_CONFIG_PATH)
-     message(FATAL_ERROR "llvm-config not found: specify LLVM_CONFIG_PATH")
-@@ -203,7 +205,7 @@ include_directories(BEFORE
- 
- if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-   install(DIRECTORY include/
--    DESTINATION include
-+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-     FILES_MATCHING
-     PATTERN "*.h"
-     PATTERN ".svn" EXCLUDE
-diff --git a/cmake/modules/AddLLD.cmake b/cmake/modules/AddLLD.cmake
-index fa48b428d26b..e7967aad3ceb 100644
---- a/cmake/modules/AddLLD.cmake
-+++ b/cmake/modules/AddLLD.cmake
-@@ -20,9 +20,9 @@ macro(add_lld_library name)
-     install(TARGETS ${name}
-       COMPONENT ${name}
-       ${export_to_lldtargets}
--      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
--      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
--      RUNTIME DESTINATION bin)
-+      LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
-+      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
-+      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
- 
-     if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES)
-       add_llvm_install_targets(install-${name}
-@@ -54,7 +54,7 @@ macro(add_lld_tool name)
- 
-     install(TARGETS ${name}
-       ${export_to_lldtargets}
--      RUNTIME DESTINATION bin
-+      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
-       COMPONENT ${name})
- 
-     if(NOT CMAKE_CONFIGURATION_TYPES)
-@@ -69,5 +69,5 @@ endmacro()
- macro(add_lld_symlink name dest)
-   add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE)
-   # Always generate install targets
--  llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE)
-+  llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE)
- endmacro()
-diff --git a/tools/lld/CMakeLists.txt b/tools/lld/CMakeLists.txt
-index d8829493fc22..df748a0e749b 100644
---- a/tools/lld/CMakeLists.txt
-+++ b/tools/lld/CMakeLists.txt
-@@ -16,7 +16,7 @@ target_link_libraries(lld
-   )
- 
- install(TARGETS lld
--  RUNTIME DESTINATION bin)
-+  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
- 
- if(NOT LLD_SYMLINKS_TO_CREATE)
-   set(LLD_SYMLINKS_TO_CREATE lld-link ld.lld ld64.lld wasm-ld)
diff --git a/pkgs/development/compilers/llvm/8/lldb/default.nix b/pkgs/development/compilers/llvm/8/lldb/default.nix
deleted file mode 100644
index 4e8cdcdf8ac2..000000000000
--- a/pkgs/development/compilers/llvm/8/lldb/default.nix
+++ /dev/null
@@ -1,109 +0,0 @@
-{ lib, stdenv, llvm_meta
-, fetch
-, cmake
-, zlib
-, ncurses
-, swig
-, which
-, libedit
-, libxml2
-, libllvm
-, libclang
-, python3
-, version
-, darwin
-, makeWrapper
-}:
-
-stdenv.mkDerivation rec {
-  pname = "lldb";
-  inherit version;
-
-  src = fetch "lldb" "1mriw4adrwm6kzabrjr7yqmdiylxd6glf6samd80dp8idnm9p9z8";
-
-  patches = [
-    ./gnu-install-dirs.patch
-
-    # Fix darwin build
-    ./lldb-gdb-remote-no-libcompress.patch
-  ];
-
-  postPatch = ''
-    # Fix up various paths that assume llvm and clang are installed in the same place
-    sed -i 's,".*ClangConfig.cmake","${libclang.dev}/lib/cmake/clang/ClangConfig.cmake",' \
-      cmake/modules/LLDBStandalone.cmake
-    sed -i 's,".*tools/clang/include","${libclang.dev}/include",' \
-      cmake/modules/LLDBStandalone.cmake
-    sed -i 's,"$.LLVM_LIBRARY_DIR.",${libllvm.lib}/lib ${libclang.lib}/lib,' \
-      cmake/modules/LLDBStandalone.cmake
-
-    substituteInPlace tools/CMakeLists.txt \
-      --replace "add_subdirectory(debugserver)" ""
-  '';
-
-  outputs = [ "out" "lib" "dev" ];
-
-  nativeBuildInputs = [
-    cmake python3 which swig makeWrapper
-  ];
-
-  buildInputs = [
-    ncurses zlib libedit libxml2 libllvm
-  ] ++ lib.optionals stdenv.isDarwin [
-    darwin.libobjc
-    darwin.apple_sdk.libs.xpc
-    darwin.apple_sdk.frameworks.Foundation
-    darwin.bootstrap_cmds
-    darwin.apple_sdk.frameworks.Carbon
-    darwin.apple_sdk.frameworks.Cocoa
-    darwin.apple_sdk.frameworks.DebugSymbols
-  ];
-
-  CXXFLAGS = "-fno-rtti";
-  hardeningDisable = [ "format" ];
-
-  cmakeFlags = [
-    "-DLLDB_INCLUDE_TESTS=${if doCheck then "YES" else "NO"}"
-    "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic
-  ] ++ lib.optionals stdenv.isDarwin [
-    # Building debugserver requires the proprietary libcompression
-    "-DLLDB_NO_DEBUGSERVER=ON"
-  ] ++ lib.optionals doCheck [
-    "-DLLDB_TEST_C_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc"
-    "-DLLDB_TEST_CXX_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++"
-  ];
-
-  doCheck = false;
-
-  doInstallCheck = true;
-
-  installCheckPhase = ''
-    if [ ! -e "$lib/${python3.sitePackages}/lldb/_lldb.so" ] ; then
-        echo "ERROR: python files not installed where expected!";
-        return 1;
-    fi
-  '';
-
-  postInstall = ''
-    wrapProgram $out/bin/lldb --prefix PYTHONPATH : $lib/${python3.sitePackages}/
-
-    mkdir -p $out/share/man/man1
-    cp ../docs/lldb.1 $out/share/man/man1/
-
-    install -D ../tools/lldb-vscode/package.json $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/package.json
-    mkdir -p $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin
-    ln -s $out/bin/llvm-vscode $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin
-  '';
-
-  meta = llvm_meta // {
-    broken = stdenv.isDarwin && stdenv.isAarch64;
-    homepage = "https://lldb.llvm.org/";
-    description = "A next-generation high-performance debugger";
-    longDescription = ''
-      LLDB is a next generation, high-performance debugger. It is built as a set
-      of reusable components which highly leverage existing libraries in the
-      larger LLVM Project, such as the Clang expression parser and LLVM
-      disassembler.
-    '';
-  };
-}
diff --git a/pkgs/development/compilers/llvm/8/lldb/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/8/lldb/gnu-install-dirs.patch
deleted file mode 100644
index 08b6fae654e5..000000000000
--- a/pkgs/development/compilers/llvm/8/lldb/gnu-install-dirs.patch
+++ /dev/null
@@ -1,120 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index cdf22c4b0fc8..8def776f2b4a 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -7,6 +7,8 @@ set(CMAKE_MODULE_PATH
-   "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules"
-   )
- 
-+include(GNUInstallDirs)
-+
- include(LLDBStandalone)
- include(LLDBConfig)
- include(AddLLDB)
-diff --git a/cmake/modules/AddLLDB.cmake b/cmake/modules/AddLLDB.cmake
-index f82c11d3d317..776e6d6ef9de 100644
---- a/cmake/modules/AddLLDB.cmake
-+++ b/cmake/modules/AddLLDB.cmake
-@@ -63,18 +63,18 @@ function(add_lldb_library name)
-             set(install_dir ".")
-           endif()
-         else()
--          set(install_dir lib${LLVM_LIBDIR_SUFFIX})
-+          set(install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
-         endif()
-         install(TARGETS ${name}
-           COMPONENT ${name}
--          RUNTIME DESTINATION bin
-+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
-           LIBRARY DESTINATION ${install_dir}
-           ARCHIVE DESTINATION ${install_dir})
-       else()
-         install(TARGETS ${name}
-           COMPONENT ${name}
--          LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
--          ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
-+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
-+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
-       endif()
-       if (NOT CMAKE_CONFIGURATION_TYPES)
-         add_llvm_install_targets(install-${name}
-@@ -122,7 +122,7 @@ function(add_lldb_executable name)
-   if(ARG_GENERATE_INSTALL)
-     install(TARGETS ${name}
-             COMPONENT ${name}
--            RUNTIME DESTINATION bin)
-+            RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
-     if (NOT CMAKE_CONFIGURATION_TYPES)
-       add_llvm_install_targets(install-${name}
-                                DEPENDS ${name}
-diff --git a/cmake/modules/LLDBConfig.cmake b/cmake/modules/LLDBConfig.cmake
-index 109c5132d3be..8b9092faa29d 100644
---- a/cmake/modules/LLDBConfig.cmake
-+++ b/cmake/modules/LLDBConfig.cmake
-@@ -319,7 +319,7 @@ include_directories(BEFORE
- if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-   install(DIRECTORY include/
-     COMPONENT lldb-headers
--    DESTINATION include
-+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-     FILES_MATCHING
-     PATTERN "*.h"
-     PATTERN ".svn" EXCLUDE
-@@ -329,7 +329,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
- 
-   install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/
-     COMPONENT lldb-headers
--    DESTINATION include
-+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-     FILES_MATCHING
-     PATTERN "*.h"
-     PATTERN ".svn" EXCLUDE
-diff --git a/tools/intel-features/CMakeLists.txt b/tools/intel-features/CMakeLists.txt
-index b5316540fdf3..3c3c882d503f 100644
---- a/tools/intel-features/CMakeLists.txt
-+++ b/tools/intel-features/CMakeLists.txt
-@@ -64,4 +64,4 @@ if (NOT LLDB_DISABLE_PYTHON AND LLDB_BUILD_INTEL_PT)
- endif()
- 
- install(TARGETS lldbIntelFeatures
--  LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX})
-+  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index cdf22c4..d56fc6a 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -146,7 +146,7 @@ if (NOT LLDB_DISABLE_PYTHON)
-                --cfgBldDir=${lldb_scripts_dir}
-                --prefix=${CMAKE_BINARY_DIR}
-                --cmakeBuildConfiguration=${CMAKE_CFG_INTDIR}
--               --lldbLibDir=lib${LLVM_LIBDIR_SUFFIX}
-+               --lldbLibDir=${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
-                ${use_python_wrapper_from_src_dir}
-                ${use_six_py_from_system}
-         VERBATIM
-diff --git a/cmake/modules/LLDBStandalone.cmake b/cmake/modules/LLDBStandalone.cmake
-index a9059dd..d76a47d 100644
---- a/cmake/modules/LLDBStandalone.cmake
-+++ b/cmake/modules/LLDBStandalone.cmake
-@@ -124,7 +124,7 @@ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
-   link_directories("${LLVM_LIBRARY_DIR}")
-
-   set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
--  set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX})
-+  set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_INSTALL_LIBDIR}/lib${LLVM_LIBDIR_SUFFIX})
-   set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX})
-
-   set(LLDB_BUILT_STANDALONE 1)
-diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt
-index 3598247..bd60451 100644
---- a/scripts/CMakeLists.txt
-+++ b/scripts/CMakeLists.txt
-@@ -47,7 +47,7 @@ if(NOT LLDB_BUILD_FRAMEWORK)
-   endif()
-
-   set(SWIG_PYTHON_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${swig_python_subdir})
--  set(SWIG_INSTALL_DIR lib${LLVM_LIBDIR_SUFFIX})
-+  set(SWIG_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
-
-   # Install the LLDB python module
-   install(DIRECTORY ${SWIG_PYTHON_DIR} DESTINATION ${SWIG_INSTALL_DIR})
diff --git a/pkgs/development/compilers/llvm/8/lldb/lldb-gdb-remote-no-libcompress.patch b/pkgs/development/compilers/llvm/8/lldb/lldb-gdb-remote-no-libcompress.patch
deleted file mode 100644
index e04d4ffb1060..000000000000
--- a/pkgs/development/compilers/llvm/8/lldb/lldb-gdb-remote-no-libcompress.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -ru a/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp b/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
---- a/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp	2019-01-09 19:46:09.000000000 -0500
-+++ b/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp	2021-11-27 00:23:08.000000000 -0500
-@@ -42,11 +42,6 @@
- #define DEBUGSERVER_BASENAME "lldb-server"
- #endif
- 
--#if defined(__APPLE__)
--#define HAVE_LIBCOMPRESSION
--#include <compression.h>
--#endif
--
- #if defined(HAVE_LIBZ)
- #include <zlib.h>
- #endif
-diff -ru a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
---- a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp	2018-12-18 18:02:50.000000000 -0500
-+++ b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp	2021-11-27 00:09:07.000000000 -0500
-@@ -37,11 +37,6 @@
- 
- #include "llvm/ADT/StringSwitch.h"
- 
--#if defined(__APPLE__)
--#define HAVE_LIBCOMPRESSION
--#include <compression.h>
--#endif
--
- using namespace lldb;
- using namespace lldb_private;
- using namespace lldb_private::process_gdb_remote;
diff --git a/pkgs/development/compilers/llvm/8/llvm/default.nix b/pkgs/development/compilers/llvm/8/llvm/default.nix
deleted file mode 100644
index 7cef04347429..000000000000
--- a/pkgs/development/compilers/llvm/8/llvm/default.nix
+++ /dev/null
@@ -1,329 +0,0 @@
-{ lib, stdenv, llvm_meta
-, pkgsBuildBuild
-, fetch
-, fetchpatch
-, cmake
-, python3
-, libffi
-, enableGoldPlugin ? libbfd.hasPluginAPI
-, libbfd
-, libpfm
-, libxml2
-, ncurses
-, version
-, release_version
-, zlib
-, buildLlvmTools
-, debugVersion ? false
-, doCheck ? stdenv.isLinux && (!stdenv.isx86_32)
-  && (stdenv.hostPlatform == stdenv.buildPlatform)
-, enableManpages ? false
-, enableSharedLibraries ? !stdenv.hostPlatform.isStatic
-# broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245
-# broken for the armv7l builder
-, enablePFM ? stdenv.isLinux && !stdenv.hostPlatform.isAarch
-, enablePolly ? false
-}:
-
-let
-  inherit (lib) optional optionals optionalString;
-
-  # Used when creating a version-suffixed symlink of libLLVM.dylib
-  shortVersion = with lib;
-    concatStringsSep "." (take 1 (splitVersion release_version));
-
-  # Ordinarily we would just the `doCheck` and `checkDeps` functionality
-  # `mkDerivation` gives us to manage our test dependencies (instead of breaking
-  # out `doCheck` as a package level attribute).
-  #
-  # Unfortunately `lit` does not forward `$PYTHONPATH` to children processes, in
-  # particular the children it uses to do feature detection.
-  #
-  # This means that python deps we add to `checkDeps` (which the python
-  # interpreter is made aware of via `$PYTHONPATH` – populated by the python
-  # setup hook) are not picked up by `lit` which causes it to skip tests.
-  #
-  # Adding `python3.withPackages (ps: [ ... ])` to `checkDeps` also doesn't work
-  # because this package is shadowed in `$PATH` by the regular `python3`
-  # package.
-  #
-  # So, we "manually" assemble one python derivation for the package to depend
-  # on, taking into account whether checks are enabled or not:
-  python = if doCheck then
-    let
-      checkDeps = ps: with ps; [ psutil ];
-    in python3.withPackages checkDeps
-  else python3;
-
-in stdenv.mkDerivation (rec {
-  pname = "llvm";
-  inherit version;
-
-  src = fetch "llvm" "1rvm5gqp5v8hfn17kqws3zhk94w4kxndal12bqa0y57p09nply24";
-  polly_src = fetch "polly" "1lfjdz3ilj5xmjxvicd8f5ykybks67ry2pdb777352r3mzlgg8g8";
-
-  unpackPhase = ''
-    unpackFile $src
-    mv llvm-${version}* llvm
-    sourceRoot=$PWD/llvm
-  '' + optionalString enablePolly ''
-    unpackFile $polly_src
-    mv polly-* $sourceRoot/tools/polly
-  '';
-
-  outputs = [ "out" "lib" "dev" "python" ];
-
-  nativeBuildInputs = [ cmake python ]
-    ++ optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ];
-
-  buildInputs = [ libxml2 libffi ]
-    ++ optional enablePFM libpfm; # exegesis
-
-  propagatedBuildInputs = [ ncurses zlib ];
-
-  patches = [
-    # When cross-compiling we configure llvm-config-native with an approximation
-    # of the flags used for the normal LLVM build. To avoid the need for building
-    # a native libLLVM.so (which would fail) we force llvm-config to be linked
-    # statically against the necessary LLVM components always.
-    ../../llvm-config-link-static.patch
-
-    # Fix missing includes for GCC 10
-    (fetchpatch {
-      url = "https://bugs.gentoo.org/attachment.cgi?id=612792";
-      sha256 = "0rwx6jpqq4xnf4mvfm8v2d4r34y1yi05am0mx5k2d5bha9j64lqg";
-    })
-    ./gnu-install-dirs.patch
-
-    # Fix missing includes for GCC 11
-    (fetchpatch {
-      name = "headers-gcc-11.patch";
-      url = "https://github.com/llvm/llvm-project/commit/b498303066a63a203d24f739b2d2e0e56dca70d1.patch";
-      sha256 = "0nh123kld0dgz2h941lng331dkj3wbm5lfxm375k1f569gv83hlk";
-      stripLen = 1;
-    })
-
-    # Fix invalid std::string(nullptr) for GCC 12
-    (fetchpatch {
-      name = "nvptx-gcc-12.patch";
-      url = "https://github.com/llvm/llvm-project/commit/99e64623ec9b31def9375753491cc6093c831809.patch";
-      sha256 = "0zjfjgavqzi2ypqwqnlvy6flyvdz8hi1anwv0ybwnm2zqixg7za3";
-      stripLen = 1;
-    })
-
-    # Fix musl build.
-    (fetchpatch {
-      url = "https://github.com/llvm/llvm-project/commit/5cd554303ead0f8891eee3cd6d25cb07f5a7bf67.patch";
-      relative = "llvm";
-      hash = "sha256-XPbvNJ45SzjMGlNUgt/IgEvM2dHQpDOe6woUJY+nUYA=";
-    })
-  ] ++ lib.optionals enablePolly [
-    ./gnu-install-dirs-polly.patch
-    # Add missing isl header includess required to build LLVM 8 + Polly with clang 16.
-    (fetchpatch {
-      name = "polly-ppcg-isl-headers.patch";
-      url = "https://repo.or.cz/ppcg.git/patch/098ba285306114dc71497f7b51c357f69c9b4472";
-      hash = "sha256-c9L30rDROYAMbUSuaK9U/ixyFMlH/Sa1n+VgLODzSCQ=";
-      extraPrefix = "tools/polly/lib/External/ppcg/";
-      stripLen = 1;
-    })
-  ];
-
-  postPatch = optionalString stdenv.isDarwin ''
-    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}" ''${extra_libdir})' ""
-  '' + ''
-    # FileSystem permissions tests fail with various special bits
-    substituteInPlace unittests/Support/CMakeLists.txt \
-      --replace "Path.cpp" ""
-    rm unittests/Support/Path.cpp
-  '' + 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
-  '' + ''
-    patchShebangs test/BugPoint/compile-custom.ll.py
-  '' + ''
-    # 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.
-    for f in \
-      test/Other/new-pass-manager.ll \
-      test/Other/new-pm-defaults.ll \
-      test/Other/new-pm-lto-defaults.ll \
-      test/Other/new-pm-thinlto-defaults.ll \
-      test/Other/pass-pipeline-parsing.ll \
-      test/Transforms/Inline/cgscc-incremental-invalidate.ll \
-      test/Transforms/Inline/clear-analyses.ll \
-      test/Transforms/LoopUnroll/unroll-loop-invalidation.ll \
-      test/Transforms/SCCP/ipsccp-preserve-analysis.ll \
-      test/Transforms/SCCP/preserve-analysis.ll \
-      test/Transforms/SROA/dead-inst.ll \
-      test/tools/gold/X86/new-pm.ll \
-      ; do
-      echo "PATCH: $f"
-      substituteInPlace $f \
-        --replace 'Starting llvm::' 'Starting {{.*}}' \
-        --replace 'Finished llvm::' 'Finished {{.*}}'
-    done
-  '';
-
-  preConfigure = ''
-    # Workaround for configure flags that need to have spaces
-    cmakeFlagsArray+=(
-      -DLLVM_LIT_ARGS='-svj''${NIX_BUILD_CORES} --no-progress-bar'
-    )
-  '';
-
-  # hacky fix: created binaries need to be run before installation
-  preBuild = ''
-    mkdir -p $out/
-    ln -sv $PWD/lib $out
-  '';
-
-  cmakeBuildType = if debugVersion then "Debug" else "Release";
-
-  cmakeFlags = with stdenv; let
-    # These flags influence llvm-config's BuildVariables.inc in addition to the
-    # general build. We need to make sure these are also passed via
-    # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native
-    # will return different results from the cross llvm-config.
-    #
-    # Some flags don't need to be repassed because LLVM already does so (like
-    # CMAKE_BUILD_TYPE), others are irrelevant to the result.
-    flagsForLlvmConfig = [
-      "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
-      "-DLLVM_ENABLE_RTTI=ON"
-    ] ++ optionals enableSharedLibraries [
-      "-DLLVM_LINK_LLVM_DYLIB=ON"
-    ];
-  in flagsForLlvmConfig ++ [
-    "-DLLVM_INSTALL_UTILS=ON"  # Needed by rustc
-    "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}"
-    "-DLLVM_ENABLE_FFI=ON"
-    "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
-    "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
-    "-DLLVM_ENABLE_DUMP=ON"
-  ] ++ optionals enableManpages [
-    "-DLLVM_BUILD_DOCS=ON"
-    "-DLLVM_ENABLE_SPHINX=ON"
-    "-DSPHINX_OUTPUT_MAN=ON"
-    "-DSPHINX_OUTPUT_HTML=OFF"
-    "-DSPHINX_WARNINGS_AS_ERRORS=OFF"
-  ] ++ optionals (enableGoldPlugin) [
-    "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
-  ] ++ optionals (isDarwin) [
-    "-DLLVM_ENABLE_LIBCXX=ON"
-    "-DCAN_TARGET_i386=false"
-  ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
-    "-DCMAKE_CROSSCOMPILING=True"
-    "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen"
-    (
-      let
-        nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc;
-        nativeBintools = nativeCC.bintools.bintools;
-        nativeToolchainFlags = [
-          "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc"
-          "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++"
-          "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar"
-          "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip"
-          "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib"
-        ];
-        # We need to repass the custom GNUInstallDirs values, otherwise CMake
-        # will choose them for us, leading to wrong results in llvm-config-native
-        nativeInstallFlags = [
-          "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}"
-          "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin"
-          "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include"
-          "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib"
-          "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec"
-        ];
-      in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list="
-      + lib.concatStringsSep ";" (lib.concatLists [
-        flagsForLlvmConfig
-        nativeToolchainFlags
-        nativeInstallFlags
-      ])
-    )
-  ];
-
-  postBuild = ''
-    rm -fR $out
-  '';
-
-  preCheck = ''
-    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD/lib
-  '';
-
-  postInstall = ''
-    mkdir -p $python/share
-    mv $out/share/opt-viewer $python/share/opt-viewer
-    moveToOutput "bin/llvm-config*" "$dev"
-    substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
-      --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \
-      --replace "$out/bin/llvm-config" "$dev/bin/llvm-config"
-    substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \
-      --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}'"$lib"'")'
-  ''
-  + optionalString (stdenv.isDarwin && enableSharedLibraries) ''
-    ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
-    ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
-  ''
-  + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
-    cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
-  '';
-
-  inherit doCheck;
-
-  checkTarget = "check-all";
-
-  requiredSystemFeatures = [ "big-parallel" ];
-  meta = llvm_meta // {
-    homepage = "https://llvm.org/";
-    description = "A collection of modular and reusable compiler and toolchain technologies";
-    longDescription = ''
-      The LLVM Project is a collection of modular and reusable compiler and
-      toolchain technologies. Despite its name, LLVM has little to do with
-      traditional virtual machines. The name "LLVM" itself is not an acronym; it
-      is the full name of the project.
-      LLVM began as a research project at the University of Illinois, with the
-      goal of providing a modern, SSA-based compilation strategy capable of
-      supporting both static and dynamic compilation of arbitrary programming
-      languages. Since then, LLVM has grown to be an umbrella project consisting
-      of a number of subprojects, many of which are being used in production by
-      a wide variety of commercial and open source projects as well as being
-      widely used in academic research. Code in the LLVM project is licensed
-      under the "Apache 2.0 License with LLVM exceptions".
-    '';
-  };
-} // lib.optionalAttrs enableManpages {
-  pname = "llvm-manpages";
-
-  buildPhase = ''
-    make docs-llvm-man
-  '';
-
-  propagatedBuildInputs = [];
-
-  installPhase = ''
-    make -C docs install
-  '';
-
-  postPatch = null;
-  postInstall = null;
-
-  outputs = [ "out" ];
-
-  doCheck = false;
-
-  meta = llvm_meta // {
-    description = "man pages for LLVM ${version}";
-  };
-})
diff --git a/pkgs/development/compilers/llvm/8/llvm/gnu-install-dirs-polly.patch b/pkgs/development/compilers/llvm/8/llvm/gnu-install-dirs-polly.patch
deleted file mode 100644
index 7c477c7df58a..000000000000
--- a/pkgs/development/compilers/llvm/8/llvm/gnu-install-dirs-polly.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-diff --git a/tools/polly/CMakeLists.txt b/tools/polly/CMakeLists.txt
-index 9939097f743e..8cc538da912a 100644
---- a/tools/polly/CMakeLists.txt
-+++ b/tools/polly/CMakeLists.txt
-@@ -2,7 +2,11 @@
- if (NOT DEFINED LLVM_MAIN_SRC_DIR)
-   project(Polly)
-   cmake_minimum_required(VERSION 3.4.3)
-+endif()
-+
-+include(GNUInstallDirs)
- 
-+if (NOT DEFINED LLVM_MAIN_SRC_DIR)
-   # Where is LLVM installed?
-   find_package(LLVM CONFIG REQUIRED)
-   set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${LLVM_CMAKE_DIR})
-@@ -145,14 +149,14 @@ include_directories(
- 
- if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-   install(DIRECTORY include/
--    DESTINATION include
-+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-     FILES_MATCHING
-     PATTERN "*.h"
-     PATTERN ".svn" EXCLUDE
-     )
- 
-   install(DIRECTORY ${POLLY_BINARY_DIR}/include/
--    DESTINATION include
-+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-     FILES_MATCHING
-     PATTERN "*.h"
-     PATTERN "CMakeFiles" EXCLUDE
-diff --git a/tools/polly/cmake/CMakeLists.txt b/tools/polly/cmake/CMakeLists.txt
-index 211f95512717..f9e04a4844b6 100644
---- a/tools/polly/cmake/CMakeLists.txt
-+++ b/tools/polly/cmake/CMakeLists.txt
-@@ -79,18 +79,18 @@ file(GENERATE
- 
- # Generate PollyConfig.cmake for the install tree.
- unset(POLLY_EXPORTS)
--set(POLLY_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
-+set(POLLY_INSTALL_PREFIX "")
- set(POLLY_CONFIG_LLVM_CMAKE_DIR "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
--set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}")
--set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}")
-+set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}")
-+set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
- if (POLLY_BUNDLED_ISL)
-   set(POLLY_CONFIG_INCLUDE_DIRS
--    "${POLLY_INSTALL_PREFIX}/include"
--    "${POLLY_INSTALL_PREFIX}/include/polly"
-+    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}"
-+    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}/polly"
-     )
- else()
-   set(POLLY_CONFIG_INCLUDE_DIRS
--    "${POLLY_INSTALL_PREFIX}/include"
-+    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_INCLUDEDIR}"
-     ${ISL_INCLUDE_DIRS}
-     )
- endif()
-@@ -100,12 +100,12 @@ endif()
- foreach(tgt IN LISTS POLLY_CONFIG_EXPORTED_TARGETS)
-   get_target_property(tgt_type ${tgt} TYPE)
-   if (tgt_type STREQUAL "EXECUTABLE")
--    set(tgt_prefix "bin/")
-+    set(tgt_prefix "${CMAKE_INSTALL_BINDIR}/")
-   else()
--    set(tgt_prefix "lib/")
-+    set(tgt_prefix "${CMAKE_INSTALL_LIBDIR}/")
-   endif()
- 
--  set(tgt_path "${CMAKE_INSTALL_PREFIX}/${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>")
-+  set(tgt_path "${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>")
-   file(RELATIVE_PATH tgt_path ${POLLY_CONFIG_CMAKE_DIR} ${tgt_path})
- 
-   if (NOT tgt_type STREQUAL "INTERFACE_LIBRARY")
-diff --git a/tools/polly/cmake/polly_macros.cmake b/tools/polly/cmake/polly_macros.cmake
-index e48203871884..5bc8a2a52541 100644
---- a/tools/polly/cmake/polly_macros.cmake
-+++ b/tools/polly/cmake/polly_macros.cmake
-@@ -44,8 +44,8 @@ macro(add_polly_library name)
-   if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LLVMPolly")
-     install(TARGETS ${name}
-       EXPORT LLVMExports
--      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
--      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
-+	  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
-+      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
-   endif()
-   set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
- endmacro(add_polly_library)
-diff --git a/tools/polly/lib/External/CMakeLists.txt b/tools/polly/lib/External/CMakeLists.txt
-index 8ffd984e542b..261cc19f3238 100644
---- a/tools/polly/lib/External/CMakeLists.txt
-+++ b/tools/polly/lib/External/CMakeLists.txt
-@@ -274,7 +274,7 @@ if (POLLY_BUNDLED_ISL)
-     install(DIRECTORY
-       ${ISL_SOURCE_DIR}/include/
-       ${ISL_BINARY_DIR}/include/
--      DESTINATION include/polly
-+      DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/polly
-       FILES_MATCHING
-       PATTERN "*.h"
-       PATTERN "CMakeFiles" EXCLUDE
diff --git a/pkgs/development/compilers/llvm/8/llvm/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/8/llvm/gnu-install-dirs.patch
deleted file mode 100644
index 027e43f7caca..000000000000
--- a/pkgs/development/compilers/llvm/8/llvm/gnu-install-dirs.patch
+++ /dev/null
@@ -1,394 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 81c2bab39ec9..075e68be6125 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -251,15 +251,21 @@ if (CMAKE_BUILD_TYPE AND
-   message(FATAL_ERROR "Invalid value for CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
- endif()
- 
-+include(GNUInstallDirs)
-+
- set(LLVM_LIBDIR_SUFFIX "" CACHE STRING "Define suffix of library directory name (32/64)" )
- 
--set(LLVM_TOOLS_INSTALL_DIR "bin" CACHE STRING "Path for binary subdirectory (defaults to 'bin')")
-+set(LLVM_TOOLS_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}" CACHE STRING
-+    "Path for binary subdirectory (defaults to 'bin')")
- mark_as_advanced(LLVM_TOOLS_INSTALL_DIR)
- 
- set(LLVM_UTILS_INSTALL_DIR "${LLVM_TOOLS_INSTALL_DIR}" CACHE STRING
-     "Path to install LLVM utilities (enabled by LLVM_INSTALL_UTILS=ON) (defaults to LLVM_TOOLS_INSTALL_DIR)")
- mark_as_advanced(LLVM_UTILS_INSTALL_DIR)
- 
-+set(LLVM_INSTALL_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/cmake/llvm" CACHE STRING
-+	"Path for CMake subdirectory (defaults to lib/cmake/llvm)" )
-+
- # They are used as destination of target generators.
- set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin)
- set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
-@@ -517,9 +523,9 @@ option (LLVM_ENABLE_SPHINX "Use Sphinx to generate llvm documentation." OFF)
- option (LLVM_ENABLE_OCAMLDOC "Build OCaml bindings documentation." ON)
- option (LLVM_ENABLE_BINDINGS "Build bindings." ON)
- 
--set(LLVM_INSTALL_DOXYGEN_HTML_DIR "share/doc/llvm/doxygen-html"
-+set(LLVM_INSTALL_DOXYGEN_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html"
-     CACHE STRING "Doxygen-generated HTML documentation install directory")
--set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "share/doc/llvm/ocaml-html"
-+set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html"
-     CACHE STRING "OCamldoc-generated HTML documentation install directory")
- 
- option (LLVM_BUILD_EXTERNAL_COMPILER_RT
-@@ -956,7 +962,7 @@ endif()
- 
- if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-   install(DIRECTORY include/llvm include/llvm-c
--    DESTINATION include
-+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-     COMPONENT llvm-headers
-     FILES_MATCHING
-     PATTERN "*.def"
-@@ -968,7 +974,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-     )
- 
-   install(DIRECTORY ${LLVM_INCLUDE_DIR}/llvm ${LLVM_INCLUDE_DIR}/llvm-c
--    DESTINATION include
-+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-     COMPONENT llvm-headers
-     FILES_MATCHING
-     PATTERN "*.def"
-@@ -983,13 +989,13 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
- 
-   if (LLVM_INSTALL_MODULEMAPS)
-     install(DIRECTORY include/llvm include/llvm-c
--            DESTINATION include
-+            DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-             COMPONENT llvm-headers
-             FILES_MATCHING
-             PATTERN "module.modulemap"
-             )
-     install(FILES include/llvm/module.install.modulemap
--            DESTINATION include/llvm
-+            DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm
-             COMPONENT llvm-headers
-             RENAME "module.extern.modulemap"
-             )
-diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
-index 1a417447278b..0c2aef338078 100644
---- a/cmake/modules/AddLLVM.cmake
-+++ b/cmake/modules/AddLLVM.cmake
-@@ -646,11 +646,11 @@ macro(add_llvm_library name)
-     if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LTO" OR
-         ${name} STREQUAL "OptRemarks" OR
-         (LLVM_LINK_LLVM_DYLIB AND ${name} STREQUAL "LLVM"))
--      set(install_dir lib${LLVM_LIBDIR_SUFFIX})
-+      set(install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
-       if(ARG_MODULE OR ARG_SHARED OR BUILD_SHARED_LIBS)
-         if(WIN32 OR CYGWIN OR MINGW)
-           set(install_type RUNTIME)
--          set(install_dir bin)
-+          set(install_dir ${CMAKE_INSTALL_BINDIR})
-         else()
-           set(install_type LIBRARY)
-         endif()
-@@ -898,7 +898,7 @@ macro(add_llvm_example name)
-   endif()
-   add_llvm_executable(${name} ${ARGN})
-   if( LLVM_BUILD_EXAMPLES )
--    install(TARGETS ${name} RUNTIME DESTINATION examples)
-+    install(TARGETS ${name} RUNTIME DESTINATION ${CMAKE_INSTALL_DOCDIR}/examples)
-   endif()
-   set_target_properties(${name} PROPERTIES FOLDER "Examples")
- endmacro(add_llvm_example name)
-@@ -1442,7 +1442,7 @@ function(llvm_install_library_symlink name dest type)
-   set(full_name ${CMAKE_${type}_LIBRARY_PREFIX}${name}${CMAKE_${type}_LIBRARY_SUFFIX})
-   set(full_dest ${CMAKE_${type}_LIBRARY_PREFIX}${dest}${CMAKE_${type}_LIBRARY_SUFFIX})
- 
--  set(output_dir lib${LLVM_LIBDIR_SUFFIX})
-+  set(output_dir ${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
-   if(WIN32 AND "${type}" STREQUAL "SHARED")
-     set(output_dir bin)
-   endif()
-@@ -1458,7 +1458,7 @@ function(llvm_install_library_symlink name dest type)
-   endif()
- endfunction()
- 
--function(llvm_install_symlink name dest)
-+function(llvm_install_symlink name dest output_dir)
-   cmake_parse_arguments(ARG "ALWAYS_GENERATE" "COMPONENT" "" ${ARGN})
-   foreach(path ${CMAKE_MODULE_PATH})
-     if(EXISTS ${path}/LLVMInstallSymlink.cmake)
-@@ -1481,7 +1481,7 @@ function(llvm_install_symlink name dest)
-   set(full_dest ${dest}${CMAKE_EXECUTABLE_SUFFIX})
- 
-   install(SCRIPT ${INSTALL_SYMLINK}
--          CODE "install_symlink(${full_name} ${full_dest} ${LLVM_TOOLS_INSTALL_DIR})"
-+          CODE "install_symlink(${full_name} ${full_dest} ${output_dir})"
-           COMPONENT ${component})
- 
-   if (NOT LLVM_ENABLE_IDE AND NOT ARG_ALWAYS_GENERATE)
-@@ -1563,7 +1563,8 @@ function(add_llvm_tool_symlink link_name target)
-     endif()
- 
-     if ((TOOL_IS_TOOLCHAIN OR NOT LLVM_INSTALL_TOOLCHAIN_ONLY) AND LLVM_BUILD_TOOLS)
--      llvm_install_symlink(${link_name} ${target})
-+      GNUInstallDirs_get_absolute_install_dir(output_dir LLVM_TOOLS_INSTALL_DIR)
-+      llvm_install_symlink(${link_name} ${target} ${output_dir})
-     endif()
-   endif()
- endfunction()
-@@ -1670,9 +1671,9 @@ function(llvm_setup_rpath name)
- 
-   if (APPLE)
-     set(_install_name_dir INSTALL_NAME_DIR "@rpath")
--    set(_install_rpath "@loader_path/../lib" ${extra_libdir})
-+    set(_install_rpath "@loader_path/../${CMAKE_INSTALL_LIBDIR}" ${extra_libdir})
-   elseif(UNIX)
--    set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
-+    set(_install_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
-     if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)")
-       set_property(TARGET ${name} APPEND_STRING PROPERTY
-                    LINK_FLAGS " -Wl,-z,origin ")
-diff --git a/cmake/modules/AddOCaml.cmake b/cmake/modules/AddOCaml.cmake
-index 02bab6846376..eff26adb2efc 100644
---- a/cmake/modules/AddOCaml.cmake
-+++ b/cmake/modules/AddOCaml.cmake
-@@ -140,9 +140,9 @@ function(add_ocaml_library name)
-   endforeach()
- 
-   if( APPLE )
--    set(ocaml_rpath "@executable_path/../../../lib${LLVM_LIBDIR_SUFFIX}")
-+    set(ocaml_rpath "@executable_path/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
-   elseif( UNIX )
--    set(ocaml_rpath "\\$ORIGIN/../../../lib${LLVM_LIBDIR_SUFFIX}")
-+    set(ocaml_rpath "\\$ORIGIN/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
-   endif()
-   list(APPEND ocaml_flags "-ldopt" "-Wl,-rpath,${ocaml_rpath}")
- 
-diff --git a/cmake/modules/AddSphinxTarget.cmake b/cmake/modules/AddSphinxTarget.cmake
-index 22e3dcb776aa..ba77b9c195e2 100644
---- a/cmake/modules/AddSphinxTarget.cmake
-+++ b/cmake/modules/AddSphinxTarget.cmake
-@@ -73,7 +73,7 @@ function (add_sphinx_target builder project)
- 
-       elseif (builder STREQUAL html)
-         string(TOUPPER "${project}" project_upper)
--        set(${project_upper}_INSTALL_SPHINX_HTML_DIR "share/doc/${project}/html"
-+        set(${project_upper}_INSTALL_SPHINX_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/html"
-             CACHE STRING "HTML documentation install directory for ${project}")
- 
-         # '/.' indicates: copy the contents of the directory directly into
-diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt
-index f5cc0006fa06..77698aeaf000 100644
---- a/cmake/modules/CMakeLists.txt
-+++ b/cmake/modules/CMakeLists.txt
-@@ -1,4 +1,4 @@
--set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm)
-+set(LLVM_INSTALL_PACKAGE_DIR ${LLVM_INSTALL_CMAKE_DIR} CACHE STRING "Path for CMake subdirectory (defaults to 'cmake/llvm')")
- set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
- 
- # First for users who use an installed LLVM, create the LLVMExports.cmake file.
-@@ -90,11 +90,11 @@ foreach(p ${_count})
-   set(LLVM_CONFIG_CODE "${LLVM_CONFIG_CODE}
- get_filename_component(LLVM_INSTALL_PREFIX \"\${LLVM_INSTALL_PREFIX}\" PATH)")
- endforeach(p)
--set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/include")
--set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/lib\${LLVM_LIBDIR_SUFFIX}")
-+set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}")
-+set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}\${LLVM_LIBDIR_SUFFIX}")
- set(LLVM_CONFIG_CMAKE_DIR "\${LLVM_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}")
- set(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}")
--set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/bin")
-+set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}")
- set(LLVM_CONFIG_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMExports.cmake")
- set(LLVM_CONFIG_EXPORTS "${LLVM_EXPORTS}")
- configure_file(
-diff --git a/cmake/modules/LLVMInstallSymlink.cmake b/cmake/modules/LLVMInstallSymlink.cmake
-index 1a04de931ff7..1c5ea4200635 100644
---- a/cmake/modules/LLVMInstallSymlink.cmake
-+++ b/cmake/modules/LLVMInstallSymlink.cmake
-@@ -10,7 +10,7 @@ function(install_symlink name target outdir)
-     set(LINK_OR_COPY copy)
-   endif()
- 
--  set(bindir "${DESTDIR}${CMAKE_INSTALL_PREFIX}/${outdir}/")
-+  set(bindir "${DESTDIR}${outdir}/")
- 
-   message("Creating ${name}")
- 
-diff --git a/docs/CMake.rst b/docs/CMake.rst
-index eb219c58560b..6f32532f8ebf 100644
---- a/docs/CMake.rst
-+++ b/docs/CMake.rst
-@@ -196,7 +196,7 @@ CMake manual, or execute ``cmake --help-variable VARIABLE_NAME``.
- **LLVM_LIBDIR_SUFFIX**:STRING
-   Extra suffix to append to the directory where libraries are to be
-   installed. On a 64-bit architecture, one could use ``-DLLVM_LIBDIR_SUFFIX=64``
--  to install libraries to ``/usr/lib64``.
-+  to install libraries to ``/usr/lib64``. See also ``CMAKE_INSTALL_LIBDIR``.
- 
- **CMAKE_C_FLAGS**:STRING
-   Extra flags to use when compiling C source files.
-@@ -479,8 +479,8 @@ LLVM-specific variables
- 
- **LLVM_INSTALL_DOXYGEN_HTML_DIR**:STRING
-   The path to install Doxygen-generated HTML documentation to. This path can
--  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
--  `share/doc/llvm/doxygen-html`.
-+  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
-+  `${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html`.
- 
- **LLVM_ENABLE_SPHINX**:BOOL
-   If specified, CMake will search for the ``sphinx-build`` executable and will make
-@@ -511,13 +511,33 @@ LLVM-specific variables
- 
- **LLVM_INSTALL_SPHINX_HTML_DIR**:STRING
-   The path to install Sphinx-generated HTML documentation to. This path can
--  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
--  `share/doc/llvm/html`.
-+  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
-+  `${CMAKE_INSTALL_DOCDIR}/${project}/html`.
- 
- **LLVM_INSTALL_OCAMLDOC_HTML_DIR**:STRING
-   The path to install OCamldoc-generated HTML documentation to. This path can
--  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
--  `share/doc/llvm/ocaml-html`.
-+  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
-+  `${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html`.
-+
-+**CMAKE_INSTALL_BINDIR**:STRING
-+  The path to install binary tools, relative to the ``CMAKE_INSTALL_PREFIX``.
-+  Defaults to `bin`.
-+
-+**CMAKE_INSTALL_LIBDIR**:STRING
-+  The path to install libraries, relative to the ``CMAKE_INSTALL_PREFIX``.
-+  Defaults to `lib`.
-+
-+**CMAKE_INSTALL_INCLUDEDIR**:STRING
-+  The path to install header files, relative to the ``CMAKE_INSTALL_PREFIX``.
-+  Defaults to `include`.
-+
-+**CMAKE_INSTALL_DOCDIR**:STRING
-+  The path to install documentation, relative to the ``CMAKE_INSTALL_PREFIX``.
-+  Defaults to `share/doc`.
-+
-+**CMAKE_INSTALL_MANDIR**:STRING
-+  The path to install manpage files, relative to the ``CMAKE_INSTALL_PREFIX``.
-+  Defaults to `share/man`.
- 
- **LLVM_CREATE_XCODE_TOOLCHAIN**:BOOL
-   OS X Only: If enabled CMake will generate a target named
-@@ -691,9 +711,11 @@ the ``cmake`` command or by setting it directly in ``ccmake`` or ``cmake-gui``).
- 
- This file is available in two different locations.
- 
--* ``<INSTALL_PREFIX>/lib/cmake/llvm/LLVMConfig.cmake`` where
--  ``<INSTALL_PREFIX>`` is the install prefix of an installed version of LLVM.
--  On Linux typically this is ``/usr/lib/cmake/llvm/LLVMConfig.cmake``.
-+* ``<LLVM_INSTALL_PACKAGE_DIR>LLVMConfig.cmake`` where
-+  ``<LLVM_INSTALL_PACKAGE_DIR>`` is the location where LLVM CMake modules are
-+  installed as part of an installed version of LLVM. This is typically
-+  ``cmake/llvm/`` within the lib directory. On Linux, this is typically
-+  ``/usr/lib/cmake/llvm/LLVMConfig.cmake``.
- 
- * ``<LLVM_BUILD_ROOT>/lib/cmake/llvm/LLVMConfig.cmake`` where
-   ``<LLVM_BUILD_ROOT>`` is the root of the LLVM build tree. **Note: this is only
-diff --git a/include/llvm/CMakeLists.txt b/include/llvm/CMakeLists.txt
-index 1d5ca3ba92b0..026f5453c1da 100644
---- a/include/llvm/CMakeLists.txt
-+++ b/include/llvm/CMakeLists.txt
-@@ -4,5 +4,5 @@ add_subdirectory(Support)
- # If we're doing an out-of-tree build, copy a module map for generated
- # header files into the build area.
- if (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
--  configure_file(module.modulemap.build module.modulemap COPYONLY)
-+  configure_file(module.modulemap.build ${LLVM_INCLUDE_DIR}/module.modulemap COPYONLY)
- endif (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
-diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in
-index f201e1f7bff0..4582ed556a02 100644
---- a/tools/llvm-config/BuildVariables.inc.in
-+++ b/tools/llvm-config/BuildVariables.inc.in
-@@ -24,6 +24,10 @@
- #define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@"
- #define LLVM_BUILDMODE "@LLVM_BUILDMODE@"
- #define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@"
-+#define LLVM_INSTALL_BINDIR "@CMAKE_INSTALL_BINDIR@"
-+#define LLVM_INSTALL_LIBDIR "@CMAKE_INSTALL_LIBDIR@"
-+#define LLVM_INSTALL_INCLUDEDIR "@CMAKE_INSTALL_INCLUDEDIR@"
-+#define LLVM_INSTALL_CMAKEDIR "@LLVM_INSTALL_CMAKE_DIR@"
- #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@"
- #define LLVM_SYSTEM_LIBS "@LLVM_SYSTEM_LIBS@"
- #define LLVM_BUILD_SYSTEM "@LLVM_BUILD_SYSTEM@"
-diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
-index bec89fef98ca..31d78f925d45 100644
---- a/tools/llvm-config/llvm-config.cpp
-+++ b/tools/llvm-config/llvm-config.cpp
-@@ -333,12 +333,26 @@ int main(int argc, char **argv) {
-         ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot + "/include");
-   } else {
-     ActivePrefix = CurrentExecPrefix;
--    ActiveIncludeDir = ActivePrefix + "/include";
--    SmallString<256> path(StringRef(LLVM_TOOLS_INSTALL_DIR));
--    sys::fs::make_absolute(ActivePrefix, path);
--    ActiveBinDir = path.str();
--    ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX;
--    ActiveCMakeDir = ActiveLibDir + "/cmake/llvm";
-+    {
-+      SmallString<256> path(StringRef(LLVM_INSTALL_INCLUDEDIR));
-+      sys::fs::make_absolute(ActivePrefix, path);
-+      ActiveIncludeDir = std::string(path.str());
-+    }
-+    {
-+      SmallString<256> path(StringRef(LLVM_INSTALL_BINDIR));
-+      sys::fs::make_absolute(ActivePrefix, path);
-+      ActiveBinDir = std::string(path.str());
-+    }
-+    {
-+      SmallString<256> path(StringRef(LLVM_INSTALL_LIBDIR LLVM_LIBDIR_SUFFIX));
-+      sys::fs::make_absolute(ActivePrefix, path);
-+      ActiveLibDir = std::string(path.str());
-+    }
-+    {
-+      SmallString<256> path(StringRef(LLVM_INSTALL_CMAKEDIR));
-+      sys::fs::make_absolute(ActivePrefix, path);
-+      ActiveCMakeDir = std::string(path.str());
-+    }
-     ActiveIncludeOption = "-I" + ActiveIncludeDir;
-   }
- 
-diff --git a/tools/lto/CMakeLists.txt b/tools/lto/CMakeLists.txt
-index 6e913519a809..85641eef721f 100644
---- a/tools/lto/CMakeLists.txt
-+++ b/tools/lto/CMakeLists.txt
-@@ -19,7 +19,7 @@ set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/lto.exports)
- add_llvm_library(LTO SHARED ${SOURCES} DEPENDS intrinsics_gen)
- 
- install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/lto.h
--  DESTINATION include/llvm-c
-+  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm-c
-   COMPONENT LTO)
- 
- if (APPLE)
-diff --git a/tools/opt-remarks/CMakeLists.txt b/tools/opt-remarks/CMakeLists.txt
-index a87beae1e893..149ea3d10168 100644
---- a/tools/opt-remarks/CMakeLists.txt
-+++ b/tools/opt-remarks/CMakeLists.txt
-@@ -11,7 +11,7 @@ set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/OptRemarks.exports)
- add_llvm_library(OptRemarks SHARED ${SOURCES})
- 
- install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/OptRemarks.h
--  DESTINATION include/llvm-c
-+  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm-c
-   COMPONENT OptRemarks)
- 
- if (APPLE)
-diff --git a/tools/opt-viewer/CMakeLists.txt b/tools/opt-viewer/CMakeLists.txt
-index 19b606933082..27b9f71b3d79 100644
---- a/tools/opt-viewer/CMakeLists.txt
-+++ b/tools/opt-viewer/CMakeLists.txt
-@@ -8,6 +8,6 @@ set (files
- 
- foreach (file ${files})
-   install(PROGRAMS ${file}
--    DESTINATION share/opt-viewer
-+    DESTINATION ${CMAKE_INSTALL_DATADIR}/opt-viewer
-     COMPONENT opt-viewer)
- endforeach (file)
diff --git a/pkgs/development/compilers/llvm/8/openmp/default.nix b/pkgs/development/compilers/llvm/8/openmp/default.nix
deleted file mode 100644
index 32b564ff0ecf..000000000000
--- a/pkgs/development/compilers/llvm/8/openmp/default.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ lib
-, stdenv
-, llvm_meta
-, fetch
-, cmake
-, llvm
-, targetLlvm
-, perl
-, version
-}:
-
-stdenv.mkDerivation {
-  pname = "openmp";
-  inherit version;
-
-  src = fetch "openmp" "0b3jlxhqbpyd1nqkpxjfggm5d9va5qpyf7d4i5y7n4a1mlydv19y";
-
-  nativeBuildInputs = [ cmake perl ];
-  buildInputs = [
-    (if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm)
-  ];
-
-  meta = llvm_meta // {
-    homepage = "https://openmp.llvm.org/";
-    description = "Support for the OpenMP language";
-    longDescription = ''
-      The OpenMP subproject of LLVM contains the components required to build an
-      executable OpenMP program that are outside the compiler itself.
-      Contains the code for the runtime library against which code compiled by
-      "clang -fopenmp" must be linked before it can run and the library that
-      supports offload to target devices.
-    '';
-    # "All of the code is dual licensed under the MIT license and the UIUC
-    # License (a BSD-like license)":
-    license = with lib.licenses; [ mit ncsa ];
-  };
-}
diff --git a/pkgs/development/compilers/llvm/9/compiler-rt/default.nix b/pkgs/development/compilers/llvm/9/compiler-rt/default.nix
index d03fcbc7f708..4dddbc67d7cb 100644
--- a/pkgs/development/compilers/llvm/9/compiler-rt/default.nix
+++ b/pkgs/development/compilers/llvm/9/compiler-rt/default.nix
@@ -115,6 +115,9 @@ stdenv.mkDerivation {
     # "All of the code in the compiler-rt project is dual licensed under the MIT
     # license and the UIUC License (a BSD-like license)":
     license = with lib.licenses; [ mit ncsa ];
-    broken = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64;
+    broken = stdenv.hostPlatform.system == "aarch64-darwin"
+      # compiler-rt requires a Clang stdenv on 32-bit RISC-V:
+      # https://reviews.llvm.org/D43106#1019077
+      || (stdenv.hostPlatform.isRiscV32 && !stdenv.cc.isClang);
   };
 }
diff --git a/pkgs/development/compilers/llvm/9/default.nix b/pkgs/development/compilers/llvm/9/default.nix
index fbd2e57805be..a6274c8b2b9c 100644
--- a/pkgs/development/compilers/llvm/9/default.nix
+++ b/pkgs/development/compilers/llvm/9/default.nix
@@ -161,6 +161,7 @@ let
         echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
       '' + lib.optionalString (!stdenv.targetPlatform.isWasm) ''
         echo "--unwindlib=libunwind" >> $out/nix-support/cc-cflags
+        echo "-L${targetLlvmLibraries.libunwind}/lib" >> $out/nix-support/cc-ldflags
       '' + lib.optionalString (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) ''
         echo "-lunwind" >> $out/nix-support/cc-ldflags
       '' + lib.optionalString stdenv.targetPlatform.isWasm ''
diff --git a/pkgs/development/compilers/llvm/9/llvm/default.nix b/pkgs/development/compilers/llvm/9/llvm/default.nix
index 75c786855973..c0ef7801c348 100644
--- a/pkgs/development/compilers/llvm/9/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/9/llvm/default.nix
@@ -237,7 +237,7 @@ in stdenv.mkDerivation (rec {
   ] ++ optionals (isDarwin) [
     "-DLLVM_ENABLE_LIBCXX=ON"
     "-DCAN_TARGET_i386=false"
-  ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+  ] ++ optionals ((stdenv.hostPlatform != stdenv.buildPlatform) && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) [
     "-DCMAKE_CROSSCOMPILING=True"
     "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen"
     (
diff --git a/pkgs/development/compilers/llvm/git/compiler-rt/default.nix b/pkgs/development/compilers/llvm/git/compiler-rt/default.nix
index 808df140e772..0f15a9e12cde 100644
--- a/pkgs/development/compilers/llvm/git/compiler-rt/default.nix
+++ b/pkgs/development/compilers/llvm/git/compiler-rt/default.nix
@@ -152,5 +152,8 @@ stdenv.mkDerivation {
     # "All of the code in the compiler-rt project is dual licensed under the MIT
     # license and the UIUC License (a BSD-like license)":
     license = with lib.licenses; [ mit ncsa ];
+    # compiler-rt requires a Clang stdenv on 32-bit RISC-V:
+    # https://reviews.llvm.org/D43106#1019077
+    broken = stdenv.hostPlatform.isRiscV32 && !stdenv.cc.isClang;
   };
 }
diff --git a/pkgs/development/compilers/llvm/git/default.nix b/pkgs/development/compilers/llvm/git/default.nix
index 41ce6076da5f..efa8daf5d98b 100644
--- a/pkgs/development/compilers/llvm/git/default.nix
+++ b/pkgs/development/compilers/llvm/git/default.nix
@@ -216,6 +216,7 @@ in let
           (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false)
           "-lunwind"
         ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions";
+      nixSupport.cc-ldflags = lib.optionals (!stdenv.targetPlatform.isWasm) [ "-L${targetLlvmLibraries.libunwind}/lib" ];
     };
 
     clangNoLibcxx = wrapCCWith rec {
diff --git a/pkgs/development/compilers/llvm/git/libcxx/default.nix b/pkgs/development/compilers/llvm/git/libcxx/default.nix
index 7b9996641663..8a5272ea07af 100644
--- a/pkgs/development/compilers/llvm/git/libcxx/default.nix
+++ b/pkgs/development/compilers/llvm/git/libcxx/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, llvm_meta
-, monorepoSrc, runCommand
+, monorepoSrc, runCommand, fetchpatch
 , cmake, ninja, python3, fixDarwinDylibNames, version
 , cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else libcxxabi
 , libcxxabi, libcxxrt, libunwind
@@ -45,6 +45,17 @@ stdenv.mkDerivation rec {
     chmod -R u+w .
   '';
 
+  patches = [
+    # fix for https://github.com/NixOS/nixpkgs/issues/269548
+    # https://github.com/llvm/llvm-project/pull/77218
+    (fetchpatch {
+      name = "darwin-system-libcxxabi-link-flags.patch";
+      url = "https://github.com/llvm/llvm-project/commit/c5b89b29ee6e3c444a355fd1cf733ce7ab2e316a.patch";
+      hash = "sha256-LNoPg1KCoP8RWxU/AzHR52f4Dww24I9BGQJedMhFxyQ=";
+      relative = "libcxx";
+    })
+  ];
+
   postPatch = ''
     cd ../runtimes
   '';
diff --git a/pkgs/development/compilers/llvm/git/llvm/default.nix b/pkgs/development/compilers/llvm/git/llvm/default.nix
index 36edfee8a091..a6e9f9289d03 100644
--- a/pkgs/development/compilers/llvm/git/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/git/llvm/default.nix
@@ -329,7 +329,7 @@ stdenv.mkDerivation (rec {
   ] ++ optionals isDarwin [
     "-DLLVM_ENABLE_LIBCXX=ON"
     "-DCAN_TARGET_i386=false"
-  ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+  ] ++ optionals ((stdenv.hostPlatform != stdenv.buildPlatform) && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) [
     "-DCMAKE_CROSSCOMPILING=True"
     "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen"
     (
diff --git a/pkgs/development/compilers/llvm/llvm-7-musl.patch b/pkgs/development/compilers/llvm/llvm-7-musl.patch
deleted file mode 100644
index 0dac12cc20d6..000000000000
--- a/pkgs/development/compilers/llvm/llvm-7-musl.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From 8c747d3157df2830eed9205e7caf1203b345de17 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 4 Feb 2023 13:54:41 -0800
-Subject: [PATCH] cmake: Enable 64bit off_t on 32bit glibc systems
-
-Pass -D_FILE_OFFSET_BITS=64 to compiler flags on 32bit glibc based
-systems. This will make sure that 64bit versions of LFS functions are
-used e.g. seek will behave same as lseek64. Also revert [1] partially
-because this added a cmake test to detect lseek64 but then forgot to
-pass the needed macro to actual compile, this test was incomplete too
-since libc implementations like musl has 64bit off_t by default on 32bit
-systems and does not bundle[2] -D_LARGEFILE64_SOURCE under -D_GNU_SOURCE
-like glibc, which means the compile now fails on musl because the cmake
-check passes but we do not have _LARGEFILE64_SOURCE defined. Using the
-*64 function was transitional anyways so use -D_FILE_OFFSET_BITS=64
-instead
-
-[1] https://github.com/llvm/llvm-project/commit/8db7e5e4eed4c4e697dc3164f2c9351d8c3e942b
-[2] https://git.musl-libc.org/cgit/musl/commit/?id=25e6fee27f4a293728dd15b659170e7b9c7db9bc
-
-Reviewed By: MaskRay
-
-Differential Revision: https://reviews.llvm.org/D139752
-
-(cherry picked from commit 5cd554303ead0f8891eee3cd6d25cb07f5a7bf67)
----
- cmake/config-ix.cmake              | 13 ++++++++++---
- include/llvm/Config/config.h.cmake |  3 ---
- lib/Support/raw_ostream.cpp        |  2 --
- 3 files changed, 10 insertions(+), 8 deletions(-)
-
-diff --git a/cmake/config-ix.cmake b/cmake/config-ix.cmake
-index 18977d9950ff..b558aa83fa62 100644
---- a/cmake/config-ix.cmake
-+++ b/cmake/config-ix.cmake
-@@ -197,9 +197,6 @@ check_symbol_exists(posix_fallocate fcntl.h HAVE_POSIX_FALLOCATE)
- if( HAVE_SIGNAL_H AND NOT LLVM_USE_SANITIZER MATCHES ".*Address.*" AND NOT APPLE )
-   check_symbol_exists(sigaltstack signal.h HAVE_SIGALTSTACK)
- endif()
--set(CMAKE_REQUIRED_DEFINITIONS "-D_LARGEFILE64_SOURCE")
--check_symbol_exists(lseek64 "sys/types.h;unistd.h" HAVE_LSEEK64)
--set(CMAKE_REQUIRED_DEFINITIONS "")
- check_symbol_exists(mallctl malloc_np.h HAVE_MALLCTL)
- check_symbol_exists(mallinfo malloc.h HAVE_MALLINFO)
- check_symbol_exists(malloc_zone_statistics malloc/malloc.h
-@@ -237,6 +234,16 @@ if( PURE_WINDOWS )
-   check_function_exists(__main HAVE___MAIN)
-   check_function_exists(__cmpdi2 HAVE___CMPDI2)
- endif()
-+
-+check_symbol_exists(__GLIBC__ stdio.h LLVM_USING_GLIBC)
-+if( LLVM_USING_GLIBC )
-+# enable 64bit off_t on 32bit systems using glibc
-+  if (CMAKE_SIZEOF_VOID_P EQUAL 4)
-+    add_compile_definitions(_FILE_OFFSET_BITS=64)
-+    list(APPEND CMAKE_REQUIRED_DEFINITIONS "-D_FILE_OFFSET_BITS=64")
-+  endif()
-+endif()
-+
- if( HAVE_DLFCN_H )
-   if( HAVE_LIBDL )
-     list(APPEND CMAKE_REQUIRED_LIBRARIES dl)
-diff --git a/include/llvm/Config/config.h.cmake b/include/llvm/Config/config.h.cmake
-index e934617d7ec7..3c39c373b3c1 100644
---- a/include/llvm/Config/config.h.cmake
-+++ b/include/llvm/Config/config.h.cmake
-@@ -112,9 +112,6 @@
- /* Define to 1 if you have the <link.h> header file. */
- #cmakedefine HAVE_LINK_H ${HAVE_LINK_H}
- 
--/* Define to 1 if you have the `lseek64' function. */
--#cmakedefine HAVE_LSEEK64 ${HAVE_LSEEK64}
--
- /* Define to 1 if you have the <mach/mach.h> header file. */
- #cmakedefine HAVE_MACH_MACH_H ${HAVE_MACH_MACH_H}
- 
-diff --git a/lib/Support/raw_ostream.cpp b/lib/Support/raw_ostream.cpp
-index 038ad00bd608..921ab8409008 100644
---- a/lib/Support/raw_ostream.cpp
-+++ b/lib/Support/raw_ostream.cpp
-@@ -677,8 +677,6 @@ uint64_t raw_fd_ostream::seek(uint64_t off) {
-   flush();
- #ifdef _WIN32
-   pos = ::_lseeki64(FD, off, SEEK_SET);
--#elif defined(HAVE_LSEEK64)
--  pos = ::lseek64(FD, off, SEEK_SET);
- #else
-   pos = ::lseek(FD, off, SEEK_SET);
- #endif
--- 
-2.37.1
-
diff --git a/pkgs/development/compilers/odin/default.nix b/pkgs/development/compilers/odin/default.nix
index 76824bc6ddc4..19489961a0d0 100644
--- a/pkgs/development/compilers/odin/default.nix
+++ b/pkgs/development/compilers/odin/default.nix
@@ -12,13 +12,13 @@ let
   inherit (llvmPackages) stdenv;
 in stdenv.mkDerivation rec {
   pname = "odin";
-  version = "dev-2024-01";
+  version = "dev-2024-02";
 
   src = fetchFromGitHub {
     owner = "odin-lang";
     repo = "Odin";
     rev = version;
-    hash = "sha256-ufIpnibY7rd76l0Mh+qXYXkc8W3cuTJ1cbmj4SgSUis=";
+    hash = "sha256-v9A0+kgREXALhnvFYWtE0+H4L7CYnyje+d2W5+/ZvHA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/compilers/osl/default.nix b/pkgs/development/compilers/osl/default.nix
index 281568487837..0d66b81b6ad1 100644
--- a/pkgs/development/compilers/osl/default.nix
+++ b/pkgs/development/compilers/osl/default.nix
@@ -24,13 +24,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "openshadinglanguage";
-  version = "1.12.14.0";
+  version = "1.13.6.1";
 
   src = fetchFromGitHub {
     owner = "AcademySoftwareFoundation";
     repo = "OpenShadingLanguage";
     rev = "v${version}";
-    hash = "sha256-x8t7uC4q29MkTCIS1rK0ICw78u5zZG+/zyhwttLOBr4=";
+    hash = "sha256-NSnM5/SyVkfZ4SyzRzVJc5O1t4/s2ax0koevRZsQ9q8=";
   };
 
   cmakeFlags = [
diff --git a/pkgs/development/compilers/rust/1_75.nix b/pkgs/development/compilers/rust/1_75.nix
index 829b26cac367..2ca1e2d294bc 100644
--- a/pkgs/development/compilers/rust/1_75.nix
+++ b/pkgs/development/compilers/rust/1_75.nix
@@ -10,11 +10,9 @@
 # 3. Firefox and Thunderbird should still build on x86_64-linux.
 
 { stdenv, lib
-, buildPackages
-, targetPackages
 , newScope, callPackage
 , CoreFoundation, Security, SystemConfiguration
-, pkgsBuildTarget, pkgsBuildBuild, pkgsBuildHost
+, pkgsBuildTarget, pkgsBuildBuild, pkgsBuildHost, pkgsTargetTarget
 , makeRustPlatform
 , wrapRustcWith
 , llvmPackages_17, llvm_17
@@ -58,4 +56,4 @@ import ./default.nix {
   rustcPatches = [ ];
 }
 
-(builtins.removeAttrs args [ "pkgsBuildTarget" "pkgsBuildHost" "llvmPackages_17" "llvm_17"])
+(builtins.removeAttrs args [ "llvmPackages_17" "llvm_17"])
diff --git a/pkgs/development/compilers/rust/clippy.nix b/pkgs/development/compilers/rust/clippy.nix
index 43a10c1c7374..d9506a4aed30 100644
--- a/pkgs/development/compilers/rust/clippy.nix
+++ b/pkgs/development/compilers/rust/clippy.nix
@@ -38,6 +38,7 @@ rustPlatform.buildRustPackage {
   meta = with lib; {
     homepage = "https://rust-lang.github.io/rust-clippy/";
     description = "A bunch of lints to catch common mistakes and improve your Rust code";
+    mainProgram = "cargo-clippy";
     maintainers = with maintainers; [ basvandijk ] ++ teams.rust.members;
     license = with licenses; [ mit asl20 ];
     platforms = platforms.unix;
diff --git a/pkgs/development/compilers/rust/default.nix b/pkgs/development/compilers/rust/default.nix
index c08ffa848ef5..31501e668c89 100644
--- a/pkgs/development/compilers/rust/default.nix
+++ b/pkgs/development/compilers/rust/default.nix
@@ -12,18 +12,21 @@
 , llvmPackages # Exposed through rustc for LTO in Firefox
 }:
 { stdenv, lib
-, buildPackages
-, targetPackages
 , newScope, callPackage
 , CoreFoundation, Security, SystemConfiguration
 , pkgsBuildBuild
+, pkgsBuildHost
+, pkgsBuildTarget
+, pkgsTargetTarget
 , makeRustPlatform
 , wrapRustcWith
 }:
 
 let
   # Use `import` to make sure no packages sneak in here.
-  lib' = import ../../../build-support/rust/lib { inherit lib stdenv buildPackages targetPackages; };
+  lib' = import ../../../build-support/rust/lib {
+    inherit lib stdenv pkgsBuildHost pkgsBuildTarget pkgsTargetTarget;
+  };
   # Allow faster cross compiler generation by reusing Build artifacts
   fastCross = (stdenv.buildPlatform == stdenv.hostPlatform) && (stdenv.hostPlatform != stdenv.targetPlatform);
 in
@@ -58,11 +61,11 @@ in
       else
         self.buildRustPackages.overrideScope (_: _:
         lib.optionalAttrs (stdenv.buildPlatform == stdenv.hostPlatform)
-          (selectRustPackage buildPackages).packages.prebuilt);
+          (selectRustPackage pkgsBuildHost).packages.prebuilt);
       bootRustPlatform = makeRustPlatform bootstrapRustPackages;
     in {
       # Packages suitable for build-time, e.g. `build.rs`-type stuff.
-      buildRustPackages = (selectRustPackage buildPackages).packages.stable // { __attrsFailEvaluation = true; };
+      buildRustPackages = (selectRustPackage pkgsBuildHost).packages.stable // { __attrsFailEvaluation = true; };
       # Analogous to stdenv
       rustPlatform = makeRustPlatform self.buildRustPackages;
       rustc-unwrapped = self.callPackage ./rustc.nix ({
diff --git a/pkgs/development/compilers/spirv-llvm-translator/default.nix b/pkgs/development/compilers/spirv-llvm-translator/default.nix
index 4db3b93217d7..88119d002808 100644
--- a/pkgs/development/compilers/spirv-llvm-translator/default.nix
+++ b/pkgs/development/compilers/spirv-llvm-translator/default.nix
@@ -28,10 +28,10 @@ let
       version = "15.0.0";
       rev = "v${version}";
       hash = "sha256-OsDohXRxovtEXaWiRGp8gJ0dXmoALyO+ZimeSO8aPVI=";
-    } else if llvmMajor == "14" then rec{
-      version = "14.0.0+unstable-2023-06-22";
-      rev = "23f398bf369093b1fd67459db8071ffcc6b92658";
-      hash = "sha256-o7cVj5/ZMER2CvfxL4pRb2qCIxC/HFUPiitf2fKtCyk=";
+    } else if llvmMajor == "14" then {
+      version = "14.0.0+unstable-2024-01-23";
+      rev = "582a3024c0c2d624a40fa2731d74b2c9ca3b94ab";
+      hash = "sha256-1IRX+5Xh8Fj+/1DIZQrN8ijb2y7H39Y3u+IdbqjQgCc=";
     } else if llvmMajor == "11" then {
       version = "11.0.0+unstable-2022-05-04";
       rev = "4ef524240833abfeee1c5b9fff6b1bd53f4806b3"; # 267 commits ahead of v11.0.0
@@ -48,7 +48,14 @@ disable-warnings-if-gcc13 (stdenv.mkDerivation {
     inherit (branch) rev hash;
   };
 
-  patches = lib.optionals (llvmMajor == "16") [
+  patches = lib.optionals (lib.versionAtLeast llvmMajor "15") [
+    # Fixes build after spirv-headers breaking change
+    (fetchpatch {
+      url = "https://github.com/KhronosGroup/SPIRV-LLVM-Translator/commit/0166a0fb86dc6c0e8903436bbc3a89bc3273ebc0.patch";
+      excludes = ["spirv-headers-tag.conf"];
+      hash = "sha256-17JJG8eCFVphElY5fVT/79hj0bByWxo8mVp1ZNjQk/M=";
+    })
+  ] ++ lib.optionals (llvmMajor == "16") [
     # Fixes builds that link against external LLVM dynamic library
     (fetchpatch {
       url = "https://github.com/KhronosGroup/SPIRV-LLVM-Translator/commit/f3b9b604d7eda18d0d1029d94a6eebd33aa3a3fe.patch";
diff --git a/pkgs/development/compilers/stanc/default.nix b/pkgs/development/compilers/stanc/default.nix
index ef3ed2141467..66671823d866 100644
--- a/pkgs/development/compilers/stanc/default.nix
+++ b/pkgs/development/compilers/stanc/default.nix
@@ -5,7 +5,7 @@
 
 ocamlPackages.buildDunePackage rec {
   pname = "stanc";
-  version = "2.33.1";
+  version = "2.34.0";
 
   minimalOCamlVersion = "4.12";
   duneVersion = "3";
@@ -14,7 +14,7 @@ ocamlPackages.buildDunePackage rec {
     owner = "stan-dev";
     repo = "stanc3";
     rev = "v${version}";
-    hash = "sha256-DeQOiYJ5OHIMXcYHTYlObJnxM2Rqf6pSN4T7sAGw+wg=";
+    hash = "sha256-ixZCix3oLZhzs08JbmbNCO0lhAu1Jf+KnpHNKlU/FaA=";
   };
 
   # Error: This expression has type [ `Use_Sys_unix ]
diff --git a/pkgs/development/compilers/tvm/default.nix b/pkgs/development/compilers/tvm/default.nix
index da6b2dc16700..3613ed55e084 100644
--- a/pkgs/development/compilers/tvm/default.nix
+++ b/pkgs/development/compilers/tvm/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "tvm";
-  version = "0.14.0";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = "apache";
     repo = "incubator-tvm";
     rev = "v${version}";
     fetchSubmodules = true;
-    sha256 = "sha256-ePBEiT7Yl54KQou/VP/aZEJ6BueH8ocB+/TUhZJkgH8=";
+    sha256 = "sha256-VbJptTUi12pJh1wz4I+xL6HVo/rSiUHCkvgEMPe1F6o=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/compilers/unison/default.nix b/pkgs/development/compilers/unison/default.nix
index ab1e8aeea6f2..56ca3a0104cf 100644
--- a/pkgs/development/compilers/unison/default.nix
+++ b/pkgs/development/compilers/unison/default.nix
@@ -11,17 +11,17 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "unison-code-manager";
-  version = "0.5.13";
+  version = "0.5.15";
 
   src = if stdenv.isDarwin then
     fetchurl {
       url = "https://github.com/unisonweb/unison/releases/download/release/${finalAttrs.version}/ucm-macos.tar.gz";
-      hash = "sha256-/iaL3jTwUeGhfPgZ08njopkOC5t4RY3zggn0n2zLTnw=";
+      hash = "sha256-Umpu9WQhg6ln6aBb6bPVUZSax1Zeh6vcYHwmQuFRx2Y=";
     }
   else
     fetchurl {
       url = "https://github.com/unisonweb/unison/releases/download/release/${finalAttrs.version}/ucm-linux.tar.gz";
-      hash = "sha256-ZxuHpcyt0zxXMiltue99Tzrlvsrrb1cL3LNcGIo5NsI=";
+      hash = "sha256-cFucBQcyye4F6Vep6O9buENFzqJ96q8/2cVr9NFvHB8=";
     };
 
   # The tarball is just the prebuilt binary, in the archive root.
diff --git a/pkgs/development/compilers/yosys/default.nix b/pkgs/development/compilers/yosys/default.nix
index dd08a92508db..850e02dc6e67 100644
--- a/pkgs/development/compilers/yosys/default.nix
+++ b/pkgs/development/compilers/yosys/default.nix
@@ -77,13 +77,13 @@ let
 
 in stdenv.mkDerivation (finalAttrs: {
   pname   = "yosys";
-  version = "0.36";
+  version = "0.37";
 
   src = fetchFromGitHub {
     owner = "YosysHQ";
     repo  = "yosys";
     rev   = "refs/tags/${finalAttrs.pname}-${finalAttrs.version}";
-    hash  = "sha256-jcaXn77OuKeC3AQTicILP3ABkJ3qBccM+uGbj1wn2Vw=";
+    hash  = "sha256-JRztXMZMBFhdZMeVHkRxFulRrFzyuNaLzcRlmgAz6Gc=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/compilers/yosys/fix-clang-build.patch b/pkgs/development/compilers/yosys/fix-clang-build.patch
index 2581f0abab9b..843ffd6d65af 100644
--- a/pkgs/development/compilers/yosys/fix-clang-build.patch
+++ b/pkgs/development/compilers/yosys/fix-clang-build.patch
@@ -1,5 +1,3 @@
-diff --git a/Makefile b/Makefile
-index fa95b7b70..4d15ed721 100644
 --- a/Makefile
 +++ b/Makefile
 @@ -215,7 +215,7 @@ ABC_ARCHFLAGS += "-DABC_NO_RLIMIT"
@@ -11,8 +9,17 @@ index fa95b7b70..4d15ed721 100644
  LD = clang++
  CXXFLAGS += -std=$(CXXSTD) -Os
  ABCMKARGS += ARCHFLAGS="-DABC_USE_STDINT_H -Wno-c++11-narrowing $(ABC_ARCHFLAGS)"
-diff --git a/tests/fmt/run-test.sh b/tests/fmt/run-test.sh
-index 914a72347..bc0b129d2 100644
+--- a/tests/cxxrtl/run-test.sh
++++ b/tests/cxxrtl/run-test.sh
+@@ -5,7 +5,7 @@ set -ex
+ run_subtest () {
+     local subtest=$1; shift
+ 
+-    ${CC:-gcc} -std=c++11 -O2 -o cxxrtl-test-${subtest} -I../../backends/cxxrtl/runtime test_${subtest}.cc -lstdc++
++    ${CXX:-gcc} -std=c++11 -O2 -o cxxrtl-test-${subtest} -I../../backends/cxxrtl/runtime test_${subtest}.cc -lstdc++
+     ./cxxrtl-test-${subtest}
+ }
+ 
 --- a/tests/fmt/run-test.sh
 +++ b/tests/fmt/run-test.sh
 @@ -51,7 +51,7 @@ test_cxxrtl () {
diff --git a/pkgs/development/compilers/yosys/plugins/synlig.nix b/pkgs/development/compilers/yosys/plugins/synlig.nix
index f6232c1a9dfa..665421af21f3 100644
--- a/pkgs/development/compilers/yosys/plugins/synlig.nix
+++ b/pkgs/development/compilers/yosys/plugins/synlig.nix
@@ -1,6 +1,7 @@
 { stdenv
 , lib
 , fetchFromGitHub
+, fetchpatch
 , pkg-config
 , antlr4
 , capnproto
@@ -29,6 +30,15 @@ stdenv.mkDerivation (finalAttrs: {
     fetchSubmodules = false;  # we use all dependencies from nix
   };
 
+  patches = [
+    (fetchpatch {
+      # Fixes https://github.com/chipsalliance/synlig/issues/2299
+      name = "make-compile-for-yosys-0.37.patch";
+      url = "https://github.com/chipsalliance/synlig/commit/3dd46d4769c20b6dd1163310f8e56560b351a211.patch";
+      hash = "sha256-OP/2HA/Ukt6o5aKgoBk19P6T/33btU/x6VnoIVXct1g=";
+    })
+  ];
+
   nativeBuildInputs = [
     pkg-config
   ];
diff --git a/pkgs/development/compilers/z88dk/default.nix b/pkgs/development/compilers/z88dk/default.nix
index 549d0c50c3d9..a3217f5732c2 100644
--- a/pkgs/development/compilers/z88dk/default.nix
+++ b/pkgs/development/compilers/z88dk/default.nix
@@ -1,14 +1,14 @@
-{ fetchFromGitHub, lib, stdenv, makeWrapper, unzip, libxml2, m4, uthash, which }:
+{ fetchFromGitHub, lib, stdenv, makeWrapper, unzip, libxml2, gmp, m4, uthash, which, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "z88dk";
-  version = "2.2";
+  version = "2.3";
 
   src = fetchFromGitHub {
     owner = "z88dk";
     repo = "z88dk";
     rev = "v${version}";
-    sha256 = "sha256-vf/hEmcl6R3nsc66G6eETNeW0SV/odk14XIpEPPAbKo=";
+    sha256 = "sha256-CHTORgK6FYIO6n+cvTUX4huY2Ek5FuHrs40QN5NZX44=";
     fetchSubmodules = true;
   };
 
@@ -40,8 +40,8 @@ stdenv.mkDerivation rec {
     "git_count=0"
   ];
 
-  nativeBuildInputs = [ which makeWrapper unzip ];
-  buildInputs = [ libxml2 m4 uthash ];
+  nativeBuildInputs = [ which makeWrapper unzip pkg-config ];
+  buildInputs = [ libxml2 m4 uthash gmp ];
 
   preInstall = ''
     mkdir -p $out/{bin,share}
diff --git a/pkgs/development/compilers/zulu/21.nix b/pkgs/development/compilers/zulu/21.nix
index 09b420d533a2..db2d3a397871 100644
--- a/pkgs/development/compilers/zulu/21.nix
+++ b/pkgs/development/compilers/zulu/21.nix
@@ -8,35 +8,35 @@ callPackage ./common.nix ({
   # Note that the latest build may differ by platform
   dists = {
     x86_64-linux = {
-      zuluVersion = "21.28.85";
-      jdkVersion = "21.0.0";
+      zuluVersion = "21.32.17";
+      jdkVersion = "21.0.2";
       hash =
-        if enableJavaFX then "sha256-ew/tgSdkrPdk1CTguk9nyl30w7se+YZYqyqOTaeketk="
-        else "sha256-DA6t+9xHp8pkrqtRucBh9xtuTSXS2HZ0US6bY4fp46Y=";
+        if enableJavaFX then "sha256-CEM2lMjyZLWS1tBcS1tBTUxBwAyzW3vrpRWFVVSFVGY="
+        else "sha256-Wtcw++5rtJv/8QvznoQ5LnKNiRA9NHSn5d7w/RNLMAo=";
     };
 
     aarch64-linux = {
-      zuluVersion = "21.28.85";
-      jdkVersion = "21.0.0";
+      zuluVersion = "21.32.17";
+      jdkVersion = "21.0.2";
       hash =
         if enableJavaFX then throw "JavaFX is not available for aarch64-linux"
-        else "sha256-H7ZLgDbF1GPYq1mvBr9bawBoEeYBLjsOtrzPV/HFWDU=";
+        else "sha256-zn3xr11EqfRVYXxLiJFEP74+Syacd32Lgu1m93Fnz+A=";
     };
 
     x86_64-darwin = {
-      zuluVersion = "21.28.85";
-      jdkVersion = "21.0.0";
+      zuluVersion = "21.32.17";
+      jdkVersion = "21.0.2";
       hash =
-        if enableJavaFX then "sha256-QrgEpLaNGc2aNFF38z2ckUTCpweKnuALYLOWATZFJPA="
-        else "sha256-ljm4fbWG0MifepiSrkf0IeRCxkuXuuvf8xeI++IyZb0=";
+        if enableJavaFX then "sha256-CbEKa9Z/ItFqVM4BqsWXyRf5ejQZXPK8OqkULr9Cpqk="
+        else "sha256-Otj+KI61fZdcJ4auRToDaqRuR6sqw9gVOOuuKlTTwCU=";
     };
 
     aarch64-darwin = {
-      zuluVersion = "21.28.85";
-      jdkVersion = "21.0.0";
+      zuluVersion = "21.32.17";
+      jdkVersion = "21.0.2";
       hash =
-        if enableJavaFX then "sha256-PUVB/R1K1dLTi1FsOYIvcI76M6EYYeMG1Bm+oMno//Y="
-        else "sha256-KnqZo+omPb2NMqZ9Hm42O6iyXGRcgm9eFnoCu6+v8fo=";
+        if enableJavaFX then "sha256-PK+cafgQsnK6acuQxun4IUiyYHQJsBfUawwfGV8OCfQ="
+        else "sha256-6CYFFt6LYGYUIqcl8d8sNu+Ij2+zU5NWawDnMl2z0E4=";
     };
   };
 } // builtins.removeAttrs args [ "callPackage" ])
diff --git a/pkgs/development/compilers/zulu/common.nix b/pkgs/development/compilers/zulu/common.nix
index d09555b00c9c..75925ed81bec 100644
--- a/pkgs/development/compilers/zulu/common.nix
+++ b/pkgs/development/compilers/zulu/common.nix
@@ -57,7 +57,7 @@ let
   isJdk8 = lib.versions.major dist.jdkVersion == "8";
 
   jdk = stdenv.mkDerivation rec {
-    pname = "zulu${dist.zuluVersion}-${javaPackage}";
+    pname = "zulu-${javaPackage}";
     version = dist.jdkVersion;
 
     src = fetchurl {
diff --git a/pkgs/development/coq-modules/ITree/default.nix b/pkgs/development/coq-modules/ITree/default.nix
index aee24225021c..c886dfd14981 100644
--- a/pkgs/development/coq-modules/ITree/default.nix
+++ b/pkgs/development/coq-modules/ITree/default.nix
@@ -5,7 +5,7 @@ mkCoqDerivation rec {
   owner = "DeepSpec";
   inherit version;
   defaultVersion = with lib.versions; lib.switch coq.version [
-    { case = range "8.13" "8.18";  out = "5.1.2"; }
+    { case = range "8.13" "8.19";  out = "5.1.2"; }
     { case = range "8.10" "8.16";  out = "4.0.0"; }
   ] null;
   release."5.1.2".sha256 = "sha256-uKJIjNXGWl0YS0WH52Rnr9Jz98Eo2k0X0qWB9hUYJMk=";
diff --git a/pkgs/development/coq-modules/QuickChick/default.nix b/pkgs/development/coq-modules/QuickChick/default.nix
index 5250a8f9b8b2..a39e29d25f88 100644
--- a/pkgs/development/coq-modules/QuickChick/default.nix
+++ b/pkgs/development/coq-modules/QuickChick/default.nix
@@ -6,7 +6,7 @@ let recent = lib.versions.isGe "8.7" coq.coq-version; in
   owner = "QuickChick";
   inherit version;
   defaultVersion = with lib; with versions; lib.switch [ coq.coq-version ssreflect.version ] [
-      { cases = [ (range "8.15" "8.18") pred.true  ]; out = "2.0.2"; }
+      { cases = [ (range "8.15" "8.19") pred.true  ]; out = "2.0.2"; }
       { cases = [ (range "8.13" "8.17") pred.true  ]; out = "1.6.5"; }
       { cases = [ "8.13" pred.true  ]; out = "1.5.0"; }
       { cases = [ "8.12" pred.true  ]; out = "1.4.0"; }
diff --git a/pkgs/development/coq-modules/coqeal/default.nix b/pkgs/development/coq-modules/coqeal/default.nix
index 89e3411bc332..60926e712ad7 100644
--- a/pkgs/development/coq-modules/coqeal/default.nix
+++ b/pkgs/development/coq-modules/coqeal/default.nix
@@ -8,6 +8,7 @@
 
   inherit version;
   defaultVersion = with lib.versions; lib.switch [ coq.version mathcomp.version ]  [
+      { cases = [ (range "8.16" "8.19") (isGe "2.0.0") ]; out = "2.0.1"; }
       { cases = [ (range "8.16" "8.17") (isGe "2.0.0") ]; out = "2.0.0"; }
       { cases = [ (range "8.15" "8.18") (range "1.15.0" "1.18.0") ]; out = "1.1.3"; }
       { cases = [ (range "8.13" "8.17") (range "1.13.0" "1.18.0") ]; out = "1.1.1"; }
@@ -17,6 +18,7 @@
       { cases = [ (isGe "8.7") "1.10.0" ]; out = "1.0.3"; }
     ] null;
 
+  release."2.0.1".sha256 = "sha256-d/IQ4IdS2tpyPewcGobj2S6m2HU+iXQmlvR+ITNIcjI=";
   release."2.0.0".sha256 = "sha256-SG/KVnRJz2P+ZxkWVp1dDOnc/JVgigoexKfRUh1Y0GM";
   release."1.1.3".sha256 = "sha256-xhqWpg86xbU1GbDtXXInNCTArjjPnWZctWiiasq1ScU=";
   release."1.1.1".sha256 = "sha256-ExAdC3WuArNxS+Sa1r4x5aT7ylbCvP/BZXfkdQNAvZ8=";
diff --git a/pkgs/development/coq-modules/coqprime/default.nix b/pkgs/development/coq-modules/coqprime/default.nix
index 9420d69cb4b0..1bd886941ec6 100644
--- a/pkgs/development/coq-modules/coqprime/default.nix
+++ b/pkgs/development/coq-modules/coqprime/default.nix
@@ -6,7 +6,7 @@ mkCoqDerivation {
   owner = "thery";
   inherit version;
   defaultVersion = with lib.versions; lib.switch coq.coq-version [
-    { case = range "8.14" "8.18"; out = "8.18"; }
+    { case = range "8.14" "8.19"; out = "8.18"; }
     { case = range "8.12" "8.16"; out = "8.15"; }
     { case = range "8.10" "8.11"; out = "8.10"; }
     { case = range "8.8"  "8.9";  out = "8.8"; }
diff --git a/pkgs/development/coq-modules/coquelicot/default.nix b/pkgs/development/coq-modules/coquelicot/default.nix
index e09eace71850..4ce063339f07 100644
--- a/pkgs/development/coq-modules/coquelicot/default.nix
+++ b/pkgs/development/coq-modules/coquelicot/default.nix
@@ -7,12 +7,14 @@ mkCoqDerivation {
   domain = "gitlab.inria.fr";
   inherit version;
   defaultVersion = with lib.versions; lib.switch coq.coq-version [
+    { case = range "8.12" "8.19"; out = "3.4.1"; }
     { case = range "8.12" "8.18"; out = "3.4.0"; }
     { case = range "8.12" "8.17"; out = "3.3.0"; }
     { case = range "8.8" "8.16"; out = "3.2.0"; }
     { case = range "8.8" "8.13"; out = "3.1.0"; }
     { case = range "8.5" "8.9";  out = "3.0.2"; }
   ] null;
+  release."3.4.1".sha256 = "sha256-REhvIBl3EaL8CQqI34Gn7Xjf9NhPI3nrUAO26pSLbm0=";
   release."3.4.0".sha256 = "sha256-LIj2SwTvVBxSAO58VYCQix/uxQQe8ey6hqFOSh3PNcg=";
   release."3.3.1".sha256 = "sha256-YCvd4aIt2BxLKBYSWzN7aqo0AuY7z8oADmKvybhYBQI=";
   release."3.3.0".sha256 = "sha256-bh9qP/EhWrHpTe2GMGG3S2vgBSSK088mFfhAIGejVoU=";
diff --git a/pkgs/development/coq-modules/deriving/default.nix b/pkgs/development/coq-modules/deriving/default.nix
index b55715213c9a..704b4f8123b0 100644
--- a/pkgs/development/coq-modules/deriving/default.nix
+++ b/pkgs/development/coq-modules/deriving/default.nix
@@ -9,7 +9,7 @@ mkCoqDerivation {
   inherit version;
   defaultVersion = with lib.versions; lib.switch [coq.coq-version ssreflect.version] [
     { cases = [(range "8.17" "8.19") (isGe "2.0.0")] ; out = "0.2.0"; }
-    { cases = [(range "8.11" "8.18") (isLe "2.0.0")] ; out = "0.1.1"; }
+    { cases = [(range "8.11" "8.19") (isLe "2.0.0")] ; out = "0.1.1"; }
   ] null;
 
   releaseRev = v: "v${v}";
diff --git a/pkgs/development/coq-modules/extructures/default.nix b/pkgs/development/coq-modules/extructures/default.nix
index 09b41f2cbc60..3cd742fdd337 100644
--- a/pkgs/development/coq-modules/extructures/default.nix
+++ b/pkgs/development/coq-modules/extructures/default.nix
@@ -10,7 +10,7 @@
   inherit version;
   defaultVersion = with lib.versions; lib.switch [coq.coq-version ssreflect.version] [
     { cases = [(range "8.17" "8.19") (isGe "2.0.0")  ]; out = "0.4.0"; }
-    { cases = [(range "8.11" "8.18") (range "1.12.0" "1.18.0") ]; out = "0.3.1"; }
+    { cases = [(range "8.11" "8.19") (range "1.12.0" "1.19.0") ]; out = "0.3.1"; }
     { cases = [(range "8.11" "8.14") (isLe "1.12.0") ]; out = "0.3.0"; }
     { cases = [(range "8.10" "8.12") (isLe "1.12.0") ]; out = "0.2.2"; }
   ] null;
diff --git a/pkgs/development/coq-modules/flocq/default.nix b/pkgs/development/coq-modules/flocq/default.nix
index bf8155e928fe..8be0213a46eb 100644
--- a/pkgs/development/coq-modules/flocq/default.nix
+++ b/pkgs/development/coq-modules/flocq/default.nix
@@ -7,12 +7,14 @@ mkCoqDerivation {
   domain = "gitlab.inria.fr";
   inherit version;
   defaultVersion = with lib.versions; lib.switch coq.coq-version [
+    { case = range "8.14" "8.19"; out = "4.1.4"; }
     { case = range "8.14" "8.18"; out = "4.1.3"; }
     { case = range "8.14" "8.17"; out = "4.1.1"; }
     { case = range "8.14" "8.16"; out = "4.1.0"; }
     { case = range "8.7" "8.15"; out = "3.4.3"; }
     { case = range "8.5" "8.8"; out = "2.6.1"; }
   ] null;
+  release."4.1.4".sha256 = "sha256-Use6Mlx79yef1CkCPyGoOItsD69B9KR+mQArCtmre4s=";
   release."4.1.3".sha256 = "sha256-os3cI885xNpxI+1p5rb8fSNnxKr7SFxqh83+3AM3t4I=";
   release."4.1.1".sha256 = "sha256-FbClxlV0ZaxITe7s9SlNbpeMNDJli+Dfh2TMrjaMtHo=";
   release."4.1.0".sha256 = "sha256:09rak9cha7q11yfqracbcq75mhmir84331h1218xcawza48rbjik";
diff --git a/pkgs/development/coq-modules/mathcomp-algebra-tactics/default.nix b/pkgs/development/coq-modules/mathcomp-algebra-tactics/default.nix
index a665ea0db30a..d913b34f0f79 100644
--- a/pkgs/development/coq-modules/mathcomp-algebra-tactics/default.nix
+++ b/pkgs/development/coq-modules/mathcomp-algebra-tactics/default.nix
@@ -9,14 +9,16 @@ mkCoqDerivation {
 
   defaultVersion = with lib.versions;
      lib.switch [ coq.coq-version mathcomp-algebra.version ] [
+       { cases = [ (range "8.16" "8.19") (isGe "2.0") ]; out = "1.2.3"; }
        { cases = [ (range "8.16" "8.18") (isGe "2.0") ]; out = "1.2.2"; }
-       { cases = [ (range "8.16" "8.18") (isGe "1.15") ]; out = "1.1.1"; }
+       { cases = [ (range "8.16" "8.19") (isGe "1.15") ]; out = "1.1.1"; }
        { cases = [ (range "8.13" "8.16") (isGe "1.12") ]; out = "1.0.0"; }
      ] null;
 
   release."1.0.0".sha256 = "sha256-kszARPBizWbxSQ/Iqpf2vLbxYc6AjpUCLnSNlPcNfls=";
   release."1.1.1".sha256 = "sha256-5wItMeeTRoJlRBH3zBNc2VUZn6pkDde60YAvXTx+J3U=";
   release."1.2.2".sha256 = "sha256-EU9RJGV3BvnmsX+mGH+6+MDXiGHgDI7aP5sIYiMUXTs=";
+  release."1.2.3".sha256 = "sha256-6uc1VEfDv+fExEfBR2c0/Q/KjrkX0TbEMCLgeYcpkls=";
 
   propagatedBuildInputs = [ mathcomp-algebra coq-elpi mathcomp-zify ];
 
diff --git a/pkgs/development/coq-modules/mathcomp-finmap/default.nix b/pkgs/development/coq-modules/mathcomp-finmap/default.nix
index 66b50ca66b83..c2f6ea02133c 100644
--- a/pkgs/development/coq-modules/mathcomp-finmap/default.nix
+++ b/pkgs/development/coq-modules/mathcomp-finmap/default.nix
@@ -7,7 +7,8 @@ mkCoqDerivation {
   owner = "math-comp";
   inherit version;
   defaultVersion = with lib.versions; lib.switch [ coq.version mathcomp.version ]  [
-      { cases = [ (range "8.16" "8.18")  (isGe "2.0") ];          out = "2.0.0"; }
+      { cases = [ (range "8.16" "8.19")  (isGe "2.0") ];          out = "2.1.0"; }
+      { cases = [ (range "8.16" "8.18")  (range "2.0" "2.1") ];   out = "2.0.0"; }
       { cases = [ (range "8.13" "8.19")  (range "1.12" "1.19") ]; out = "1.5.2"; }
       { cases = [ (isGe "8.10")          (range "1.11" "1.17") ]; out = "1.5.1"; }
       { cases = [ (range "8.7" "8.11")   "1.11.0" ];              out = "1.5.0"; }
@@ -18,6 +19,7 @@ mkCoqDerivation {
       { cases = [ (range "8.6" "8.7")    (range "1.6.1" "1.7") ]; out = "1.0.0"; }
     ] null;
   release = {
+    "2.1.0".sha256          = "sha256-gh0cnhdVDyo+D5zdtxLc10kGKQLQ3ITzHnMC45mCtpY=";
     "2.0.0".sha256          = "sha256-0Wr1ZUYVuZH74vawO4EZlZ+K3kq+s1xEz/BfzyKj+wk=";
     "1.5.2".sha256          = "sha256-0KmmSjc2AlUo6BKr9RZ4FjL9wlGISlTGU0X1Eu7l4sw=";
     "1.5.1".sha256          = "0ryfml4pf1dfya16d8ma80favasmrygvspvb923n06kfw9v986j7";
diff --git a/pkgs/development/coq-modules/mathcomp-real-closed/default.nix b/pkgs/development/coq-modules/mathcomp-real-closed/default.nix
index 240e265e3522..28ff7a56786f 100644
--- a/pkgs/development/coq-modules/mathcomp-real-closed/default.nix
+++ b/pkgs/development/coq-modules/mathcomp-real-closed/default.nix
@@ -21,7 +21,7 @@ mkCoqDerivation {
 
   defaultVersion = with lib.versions; lib.switch [ coq.version mathcomp.version ]  [
       { cases = [ (isGe "8.16")  (isGe "2.0.0") ]; out = "2.0.0"; }
-      { cases = [ (isGe "8.13")  (range "1.13.0" "1.18.0") ]; out = "1.1.4"; }
+      { cases = [ (isGe "8.13")  (range "1.13.0" "1.19.0") ]; out = "1.1.4"; }
       { cases = [ (isGe "8.13")  (range "1.12.0" "1.18.0") ]; out = "1.1.3"; }
       { cases = [ (isGe "8.10")  (range "1.12.0" "1.18.0") ]; out = "1.1.2"; }
       { cases = [ (isGe "8.7")   "1.11.0" ]; out = "1.1.1"; }
diff --git a/pkgs/development/coq-modules/multinomials/default.nix b/pkgs/development/coq-modules/multinomials/default.nix
index 38cc0139b8e0..5547e22bc59f 100644
--- a/pkgs/development/coq-modules/multinomials/default.nix
+++ b/pkgs/development/coq-modules/multinomials/default.nix
@@ -9,9 +9,10 @@
 
   inherit version;
   defaultVersion = with lib.versions; lib.switch [ coq.version mathcomp.version ] [
-      { cases = [ (range "8.16" "8.18") (isGe "2.1.0") ];       out = "2.1.0"; }
+      { cases = [ (range "8.17" "8.19") (isGe "2.1.0") ];       out = "2.2.0"; }
+      { cases = [ (range "8.16" "8.18") "2.1.0" ];              out = "2.1.0"; }
       { cases = [ (range "8.16" "8.18") "2.0.0" ];              out = "2.0.0"; }
-      { cases = [ (isGe "8.15") (range "1.15.0" "1.18.0") ];    out = "1.6.0"; }
+      { cases = [ (isGe "8.15") (range "1.15.0" "1.19.0") ];    out = "1.6.0"; }
       { cases = [ (isGe "8.10") (range "1.13.0" "1.17.0") ];    out = "1.5.6"; }
       { cases = [ (range "8.10" "8.16") (range "1.12.0" "1.15.0") ]; out = "1.5.5"; }
       { cases = [ (range "8.10" "8.12") "1.12.0" ];             out = "1.5.3"; }
@@ -21,6 +22,7 @@
       { cases = [ "8.6"                 (range "1.6" "1.7") ];  out = "1.1"; }
     ] null;
   release = {
+    "2.2.0".sha256 = "sha256-Cie6paweITwPZy6ej9+qIvHFWknVR382uJPW927t/fo=";
     "2.1.0".sha256 = "sha256-QT91SBJ6DXhyg4j/okTvPP6yj2DnnPbnSlJ/p8pvZbY=";
     "2.0.0".sha256 = "sha256-2zWHzMBsO2j8EjN7CgCmKQcku9Be8aVlme0LD5p4ab8=";
     "1.6.0".sha256 = "sha256-lEM+sjqajIOm1c3lspHqcSIARgMR9RHbTQH4veHLJfU=";
diff --git a/pkgs/development/coq-modules/paco/default.nix b/pkgs/development/coq-modules/paco/default.nix
index 0d394617aa32..717100ddfe25 100644
--- a/pkgs/development/coq-modules/paco/default.nix
+++ b/pkgs/development/coq-modules/paco/default.nix
@@ -5,7 +5,7 @@ mkCoqDerivation {
   owner = "snu-sf";
   inherit version;
   defaultVersion = with lib.versions; lib.switch coq.coq-version [
-    { case = range "8.13" "8.18"; out = "4.2.0"; }
+    { case = range "8.13" "8.19"; out = "4.2.0"; }
     { case = range "8.12" "8.17"; out = "4.1.2"; }
     { case = range "8.9" "8.13"; out = "4.1.1"; }
     { case = range "8.6" "8.13"; out = "4.0.2"; }
diff --git a/pkgs/development/coq-modules/reglang/default.nix b/pkgs/development/coq-modules/reglang/default.nix
index fd5a37c677e2..325b909d45e4 100644
--- a/pkgs/development/coq-modules/reglang/default.nix
+++ b/pkgs/development/coq-modules/reglang/default.nix
@@ -5,14 +5,16 @@ mkCoqDerivation {
 
   releaseRev = v: "v${v}";
 
+  release."1.2.1".sha256 = "sha256-giCRK8wzpVVzXAkFAieQDWqSsP7upSJSUUHkwG4QqO4=";
   release."1.2.0".sha256 = "sha256-gSqQ7D2HLwM4oYopTWkMFYfYXxsH/7VxI3AyrLwNf3o=";
   release."1.1.3".sha256 = "sha256-kaselYm8K0JBsTlcI6K24m8qpv8CZ9+VNDJrOtFaExg=";
   release."1.1.2".sha256 = "sha256-SEnMilLNxh6a3oiDNGLaBr8quQ/nO2T9Fwdf/1il2Yk=";
 
   inherit version;
   defaultVersion = with lib.versions; lib.switch [ coq.coq-version mathcomp.version ] [
-    { cases = [ (range "8.16" "8.18") (isGe "2.0.0") ]; out = "1.2.0"; }
-    { cases = [ (range "8.10" "8.18") (isLt "2.0.0") ]; out = "1.1.3"; }
+    { cases = [ (range "8.16" "8.19") (isGe "2.0.0") ]; out = "1.2.1"; }
+    { cases = [ (range "8.16" "8.18") (range "2.0.0" "2.1.0") ]; out = "1.2.0"; }
+    { cases = [ (range "8.10" "8.19") (isLt "2.0.0") ]; out = "1.1.3"; }
   ] null;
 
 
diff --git a/pkgs/development/coq-modules/vscoq-language-server/default.nix b/pkgs/development/coq-modules/vscoq-language-server/default.nix
new file mode 100644
index 000000000000..e70094b994eb
--- /dev/null
+++ b/pkgs/development/coq-modules/vscoq-language-server/default.nix
@@ -0,0 +1,32 @@
+{ metaFetch, mkCoqDerivation, coq, lib, glib, gnome, wrapGAppsHook,
+  version ? null }:
+
+let ocamlPackages = coq.ocamlPackages;
+    defaultVersion = lib.switch coq.coq-version [
+      { case = "8.18"; out = "2.0.3+coq8.18"; }
+    ] null;
+    location = { domain = "github.com"; owner = "coq-community"; repo = "vscoq"; };
+    fetch = metaFetch ({
+      release."2.0.3+coq8.18".sha256 = "sha256-VXhHCP6Ni5/OcsgoI1EbJfYCpXzwkuR8kbbKrl6dfjU=";
+      release."2.0.3+coq8.18".rev = "v2.0.3+coq8.18";
+      inherit location; });
+    fetched = fetch (if version != null then version else defaultVersion);
+in
+ocamlPackages.buildDunePackage {
+  pname = "vscoq-language-server";
+  inherit (fetched) version;
+  src = "${fetched.src}/language-server";
+  buildInputs =
+    [ coq glib gnome.adwaita-icon-theme wrapGAppsHook ] ++
+    (with ocamlPackages; [ findlib
+      lablgtk3-sourceview3 yojson zarith ppx_inline_test
+      ppx_assert ppx_sexp_conv ppx_deriving ppx_import sexplib
+      ppx_yojson_conv lsp sel ]);
+
+  meta = with lib; {
+    description = "Language server for the vscoq vscode/codium extension";
+    homepage = "https://github.com/coq-community/vscoq";
+    maintainers = with maintainers; [ cohencyril ];
+    license = licenses.mit;
+  } // optionalAttrs (fetched.broken or false) { coqFilter = true; broken = true; };
+}
diff --git a/pkgs/development/cuda-modules/backend-stdenv.nix b/pkgs/development/cuda-modules/backend-stdenv.nix
index 3b4c8d47c5e8..bcca7118b163 100644
--- a/pkgs/development/cuda-modules/backend-stdenv.nix
+++ b/pkgs/development/cuda-modules/backend-stdenv.nix
@@ -13,18 +13,14 @@ let
   gccMajorVersion = nvccCompatibilities.${cudaVersion}.gccMaxMajorVersion;
   cudaStdenv = stdenvAdapters.useLibsFrom stdenv pkgs."gcc${gccMajorVersion}Stdenv";
   passthruExtra = {
-    nixpkgsCompatibleLibstdcxx = lib.warn "cudaPackages.backendStdenv.nixpkgsCompatibleLibstdcxx is misnamed, deprecated, and will be removed after 24.05" cudaStdenv.cc.cxxStdlib.package;
-    # cc already exposed
+    # cudaPackages.backendStdenv.nixpkgsCompatibleLibstdcxx has been removed,
+    # if you need it you're likely doing something wrong. There has been a
+    # warning here for a month or so. Now we can no longer return any
+    # meaningful value in its place and drop the attribute entirely.
   };
   assertCondition = true;
 in
 
-# We should use libstdc++ at least as new as nixpkgs' stdenv's one.
-assert let
-  cxxStdlibCuda = cudaStdenv.cc.cxxStdlib.package;
-  cxxStdlibNixpkgs = stdenv.cc.cxxStdlib.package;
-in
-((stdenv.cc.cxxStdlib.kind or null) == "libstdc++")
--> lib.versionAtLeast cxxStdlibCuda.version cxxStdlibNixpkgs.version;
+  /* TODO: Consider testing whether we in fact use the newer libstdc++ */
 
 lib.extendDerivation assertCondition passthruExtra cudaStdenv
diff --git a/pkgs/development/cuda-modules/cuda/overrides.nix b/pkgs/development/cuda-modules/cuda/overrides.nix
index d8fab198208c..f43d649afbbf 100644
--- a/pkgs/development/cuda-modules/cuda/overrides.nix
+++ b/pkgs/development/cuda-modules/cuda/overrides.nix
@@ -112,7 +112,6 @@ attrsets.filterAttrs (attr: _: (builtins.hasAttr attr prev)) {
         useCcForLibs = true;
         gccForLibs = ccForLibs-wrapper.cc;
       };
-      cxxStdlibDir = ccForLibs-wrapper.cxxStdlib.solib;
     in
     {
 
@@ -149,7 +148,6 @@ attrsets.filterAttrs (attr: _: (builtins.hasAttr attr prev)) {
 
           # Fix a compatible backend compiler
           PATH += ${lib.getBin cc}/bin:
-          LIBRARIES += "-L${cxxStdlibDir}/lib"
 
           # Expose the split-out nvvm
           LIBRARIES =+ -L''${!outputBin}/nvvm/lib
diff --git a/pkgs/development/cuda-modules/cudatoolkit/default.nix b/pkgs/development/cuda-modules/cudatoolkit/default.nix
index 57d1a0461e13..aca0c7ad0b78 100644
--- a/pkgs/development/cuda-modules/cudatoolkit/default.nix
+++ b/pkgs/development/cuda-modules/cudatoolkit/default.nix
@@ -44,6 +44,7 @@
   rdma-core,
   ucx,
   rsync,
+  libglvnd,
 }:
 
 let
@@ -123,6 +124,7 @@ backendStdenv.mkDerivation rec {
       unixODBC
       alsa-lib
       wayland
+      libglvnd
     ]
     ++ lib.optionals (lib.versionAtLeast version "11.8") [
       (lib.getLib libtiff)
diff --git a/pkgs/development/cuda-modules/generic-builders/manifest.nix b/pkgs/development/cuda-modules/generic-builders/manifest.nix
index 38b80ff29f77..5e837fa36b5e 100644
--- a/pkgs/development/cuda-modules/generic-builders/manifest.nix
+++ b/pkgs/development/cuda-modules/generic-builders/manifest.nix
@@ -47,6 +47,8 @@ let
   # The redistArch is the name of the architecture for which the redistributable is built.
   # It is `"unsupported"` if the redistributable is not supported on the target platform.
   redistArch = flags.getRedistArch hostPlatform.system;
+
+  sourceMatchesHost = flags.getNixSystem redistArch == stdenv.hostPlatform.system;
 in
 backendStdenv.mkDerivation (
   finalAttrs: {
@@ -136,7 +138,9 @@ backendStdenv.mkDerivation (
     # badPlatformsConditions :: AttrSet Bool
     # Sets `meta.badPlatforms = meta.platforms` if any of the conditions are true.
     # Example: Broken on a specific architecture when some condition is met (like targeting Jetson).
-    badPlatformsConditions = { };
+    badPlatformsConditions = {
+      "No source" = !sourceMatchesHost;
+    };
 
     # src :: Optional Derivation
     src = trivial.pipe redistArch [
diff --git a/pkgs/development/cuda-modules/generic-builders/multiplex.nix b/pkgs/development/cuda-modules/generic-builders/multiplex.nix
index 6353b07545a4..f2a9c6840ecd 100644
--- a/pkgs/development/cuda-modules/generic-builders/multiplex.nix
+++ b/pkgs/development/cuda-modules/generic-builders/multiplex.nix
@@ -52,7 +52,7 @@ let
   # - Package: ../modules/${pname}/releases/package.nix
 
   # FIXME: do this at the module system level
-  propagatePlatforms = lib.mapAttrs (platform: subset: map (r: r // { inherit platform; }) subset);
+  propagatePlatforms = lib.mapAttrs (redistArch: packages: map (p: { inherit redistArch; } // p) packages);
 
   # All releases across all platforms
   # See ../modules/${pname}/releases/releases.nix
@@ -63,11 +63,11 @@ let
   # computeName :: Package -> String
   computeName = {version, ...}: mkVersionedPackageName pname version;
 
-  # Check whether a package supports our CUDA version
+  # Check whether a package supports our CUDA version and platform.
   # isSupported :: Package -> Bool
   isSupported =
     package:
-    !(strings.hasPrefix "unsupported" package.platform)
+    redistArch == package.redistArch
     && strings.versionAtLeast cudaVersion package.minCudaVersion
     && strings.versionAtLeast package.maxCudaVersion cudaVersion;
 
@@ -76,14 +76,22 @@ let
   # Value is `"unsupported"` if the platform is not supported.
   redistArch = flags.getRedistArch hostPlatform.system;
 
-  allReleases = lists.flatten (builtins.attrValues releaseSets);
+  preferable =
+    p1: p2: (isSupported p2 -> isSupported p1) && (strings.versionAtLeast p1.version p2.version);
 
   # All the supported packages we can build for our platform.
   # perSystemReleases :: List Package
-  perSystemReleases = releaseSets.${redistArch} or [ ];
+  allReleases = lib.pipe releaseSets
+    [
+      (lib.attrValues)
+      (lists.flatten)
+      (lib.groupBy (p: lib.versions.majorMinor p.version))
+      (lib.mapAttrs (_: builtins.sort preferable))
+      (lib.mapAttrs (_: lib.take 1))
+      (lib.attrValues)
+      (lib.concatMap lib.trivial.id)
+    ];
 
-  preferable =
-    p1: p2: (isSupported p2 -> isSupported p1) && (strings.versionAtLeast p1.version p2.version);
   newest = builtins.head (builtins.sort preferable allReleases);
 
   # A function which takes the `final` overlay and the `package` being built and returns
@@ -107,7 +115,7 @@ let
       buildPackage =
         package:
         let
-          shims = final.callPackage shimsFn {inherit package redistArch;};
+          shims = final.callPackage shimsFn {inherit package; inherit (package) redistArch; };
           name = computeName package;
           drv = final.callPackage ./manifest.nix {
             inherit pname;
@@ -119,7 +127,7 @@ let
         attrsets.nameValuePair name fixedDrv;
 
       # versionedDerivations :: AttrSet Derivation
-      versionedDerivations = builtins.listToAttrs (lists.map buildPackage perSystemReleases);
+      versionedDerivations = builtins.listToAttrs (lists.map buildPackage allReleases);
 
       defaultDerivation = { ${pname} = (buildPackage newest).value; };
     in
diff --git a/pkgs/development/embedded/arduino/arduino-cli/default.nix b/pkgs/development/embedded/arduino/arduino-cli/default.nix
index c41f884d4fe1..fcc4c84e7cba 100644
--- a/pkgs/development/embedded/arduino/arduino-cli/default.nix
+++ b/pkgs/development/embedded/arduino/arduino-cli/default.nix
@@ -4,13 +4,13 @@ let
 
   pkg = buildGoModule rec {
     pname = "arduino-cli";
-    version = "0.34.2";
+    version = "0.35.2";
 
     src = fetchFromGitHub {
       owner = "arduino";
       repo = pname;
-      rev = version;
-      hash = "sha256-X7vrcaJkVqzZoaIFLWJhhdlgRpckLG69uVmUUZd/XXY=";
+      rev = "v${version}";
+      hash = "sha256-ctgDuWbNLMyQrxnarTbCtGXM5G+bPeS4Xa7eTbkFo0k=";
     };
 
     nativeBuildInputs = [
@@ -23,7 +23,7 @@ let
 
     subPackages = [ "." ];
 
-    vendorHash = "sha256-cr5D7QDh65xWZJ4gq32ehklwrHWyQEWW/FZZ4gPTJBk=";
+    vendorHash = "sha256-y7YxcBFjKcQK6ilCKOyoszq64/0xG5GgTehKrKThknU=";
 
     postPatch = let
       skipTests = [
diff --git a/pkgs/development/embedded/platformio/core.nix b/pkgs/development/embedded/platformio/core.nix
index aa4e8e9600f6..d2d4418f13b9 100644
--- a/pkgs/development/embedded/platformio/core.nix
+++ b/pkgs/development/embedded/platformio/core.nix
@@ -72,7 +72,8 @@ with python3Packages; buildPythonApplication rec {
     uvicorn
     wsproto
     zeroconf
-
+  ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
+    chardet
   ];
 
   preCheck = ''
diff --git a/pkgs/development/embedded/rshell/default.nix b/pkgs/development/embedded/rshell/default.nix
index a537af3692b4..591331464e3a 100644
--- a/pkgs/development/embedded/rshell/default.nix
+++ b/pkgs/development/embedded/rshell/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonApplication rec {
   pname = "rshell";
-  version = "0.0.31";
+  version = "0.0.32";
 
   disabled = pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7942b758a9ae5c6ff46516b0317f437dfce9f0721f3a3b635ebd501c9cd38fb9";
+    sha256 = "sha256-frIwZ21JzVgxRS+KouBjDShHCP1lCoUwwySy2oFGcJ8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/embedded/svdtools/default.nix b/pkgs/development/embedded/svdtools/default.nix
index ad270e0ba651..c2b86d7bd66a 100644
--- a/pkgs/development/embedded/svdtools/default.nix
+++ b/pkgs/development/embedded/svdtools/default.nix
@@ -5,14 +5,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "svdtools";
-  version = "0.3.8";
+  version = "0.3.9";
 
   src = fetchCrate {
     inherit version pname;
-    hash = "sha256-daATz1bd5fwfYnfVbweJd/I6SsQyg2CC+MEZ5WLyZBw=";
+    hash = "sha256-agIr2jM0BqLSXod5V+p//bxcnrXe2+wW5RMq8GAAwnI=";
   };
 
-  cargoHash = "sha256-TSLUBkPRab6cwlXJw8tHpqYjhLtVa+QJZq13Qj/0UzU=";
+  cargoHash = "sha256-z9GmFjABgvh2xf4nujnZUgHvKvChfP4Guox89PuuxV8=";
 
   meta = with lib; {
     description = "Tools to handle vendor-supplied, often buggy SVD files";
diff --git a/pkgs/development/gnuradio-modules/ais/default.nix b/pkgs/development/gnuradio-modules/ais/default.nix
index 92abb23a5c57..1376fbe657a8 100644
--- a/pkgs/development/gnuradio-modules/ais/default.nix
+++ b/pkgs/development/gnuradio-modules/ais/default.nix
@@ -14,6 +14,7 @@
 , icu
 , gnuradio
 , thrift
+, gnuradioAtLeast
 }:
 
 mkDerivation rec {
@@ -25,7 +26,7 @@ mkDerivation rec {
     rev = "2162103226f3dae43c8c2ab23b79483b84346665";
     sha256 = "1vackka34722d8pcspfwj0j6gc9ic7dqq64sgkrpjm94sh3bmb0b";
   };
-  disabledForGRafter = "3.9";
+  disabled = gnuradioAtLeast "3.9";
 
   nativeBuildInputs = [
     cmake
diff --git a/pkgs/development/gnuradio-modules/grnet/default.nix b/pkgs/development/gnuradio-modules/grnet/default.nix
index 817205cc0ca6..77390e52340b 100644
--- a/pkgs/development/gnuradio-modules/grnet/default.nix
+++ b/pkgs/development/gnuradio-modules/grnet/default.nix
@@ -15,6 +15,7 @@
 , libpcap
 , icu
 , thrift
+, gnuradioAtLeast
 }:
 
 let
@@ -53,7 +54,7 @@ mkDerivation {
   pname = "gr-grnet";
   version = version.name;
   inherit src;
-  disabledForGRafter = "3.10";
+  disabled = gnuradioAtLeast "3.10";
 
   patches = [
     # Use cross platform struct ip instead of iphdr
@@ -73,7 +74,7 @@ mkDerivation {
     gmp
     libpcap
     icu
-  ] ++ (if lib.versionAtLeast gnuradio.versionAttr.major "3.9" then with python.pkgs; [
+  ] ++ (if gnuradioAtLeast "3.9" then with python.pkgs; [
     pybind11
     numpy
   ] else [
diff --git a/pkgs/development/gnuradio-modules/gsm/default.nix b/pkgs/development/gnuradio-modules/gsm/default.nix
index aef853943123..9f184b7be7fb 100644
--- a/pkgs/development/gnuradio-modules/gsm/default.nix
+++ b/pkgs/development/gnuradio-modules/gsm/default.nix
@@ -10,6 +10,7 @@
 , python
 , libosmocore
 , osmosdr
+, gnuradioAtLeast
 }:
 
 mkDerivation {
@@ -21,7 +22,7 @@ mkDerivation {
     rev = "3ca05e6914ef29eb536da5dbec323701fbc2050d";
     sha256 = "13nnq927kpf91iqccr8db9ripy5czjl5jiyivizn6bia0bam2pvx";
   };
-  disabledForGRafter = "3.8";
+  disabled = gnuradioAtLeast "3.8";
 
   nativeBuildInputs = [
     cmake
diff --git a/pkgs/development/gnuradio-modules/limesdr/default.nix b/pkgs/development/gnuradio-modules/limesdr/default.nix
index a9ed621cdf11..bdd541f04432 100644
--- a/pkgs/development/gnuradio-modules/limesdr/default.nix
+++ b/pkgs/development/gnuradio-modules/limesdr/default.nix
@@ -14,6 +14,7 @@
 , gmp
 , icu
 , limesuite
+, gnuradioAtLeast
 }:
 
 let
@@ -33,7 +34,7 @@ let
 in mkDerivation {
   pname = "gr-limesdr";
   inherit version src;
-  disabledForGRafter = "3.9";
+  disabled = gnuradioAtLeast "3.9";
 
   nativeBuildInputs = [
     cmake
diff --git a/pkgs/development/gnuradio-modules/mkDerivation.nix b/pkgs/development/gnuradio-modules/mkDerivation.nix
index 014968f82cc6..11ac506260ad 100644
--- a/pkgs/development/gnuradio-modules/mkDerivation.nix
+++ b/pkgs/development/gnuradio-modules/mkDerivation.nix
@@ -7,12 +7,18 @@ mkDerivation:
 args:
 
 # Check if it's supposed to not get built for the current gnuradio version
-if (builtins.hasAttr "disabledForGRafter" args) &&
-(lib.versionAtLeast unwrapped.versionAttr.major args.disabledForGRafter) then
+if (builtins.hasAttr "disabled" args) && args.disabled then
 let name = args.name or "${args.pname}"; in
 throw "Package ${name} is incompatible with GNURadio ${unwrapped.versionAttr.major}"
 else
 
+if builtins.hasAttr "disabledForGRafter" args then
+throw ''
+  `disabledForGRafter` is superseded by `disabled`.
+  Use `disabled = gnuradioAtLeast "${args.disabledForGRafter}";` instead.
+''
+else
+
 let
   args_ = {
     enableParallelBuilding = args.enableParallelBuilding or true;
diff --git a/pkgs/development/gnuradio-modules/nacl/default.nix b/pkgs/development/gnuradio-modules/nacl/default.nix
index 9f9175eae058..0900ca943b97 100644
--- a/pkgs/development/gnuradio-modules/nacl/default.nix
+++ b/pkgs/development/gnuradio-modules/nacl/default.nix
@@ -9,6 +9,7 @@
 , logLib
 , python
 , libsodium
+, gnuradioAtLeast
 }:
 
 mkDerivation {
@@ -20,7 +21,7 @@ mkDerivation {
     rev = "15276bb0fcabf5fe4de4e58df3d579b5be0e9765";
     sha256 = "018np0qlk61l7mlv3xxx5cj1rax8f1vqrsrch3higsl25yydbv7v";
   };
-  disabledForGRafter = "3.8";
+  disabled = gnuradioAtLeast "3.8";
 
   nativeBuildInputs = [
     cmake
diff --git a/pkgs/development/gnuradio-modules/osmosdr/default.nix b/pkgs/development/gnuradio-modules/osmosdr/default.nix
index 18b8229cebcc..8e46ac561493 100644
--- a/pkgs/development/gnuradio-modules/osmosdr/default.nix
+++ b/pkgs/development/gnuradio-modules/osmosdr/default.nix
@@ -22,6 +22,7 @@
 , libbladeRF
 , rtl-sdr
 , soapysdr-with-plugins
+, gnuradioAtLeast
 }:
 
 let
@@ -44,7 +45,7 @@ let
 in mkDerivation {
   pname = "gr-osmosdr";
   inherit version src;
-  disabledForGRafter = "3.11";
+  disabled = gnuradioAtLeast "3.11";
 
   outputs = [ "out" "dev" ];
 
diff --git a/pkgs/development/gnuradio-modules/rds/default.nix b/pkgs/development/gnuradio-modules/rds/default.nix
index 7ffdd206474a..9a6f2ccbbad4 100644
--- a/pkgs/development/gnuradio-modules/rds/default.nix
+++ b/pkgs/development/gnuradio-modules/rds/default.nix
@@ -12,6 +12,7 @@
 , boost
 , gmp
 , icu
+, gnuradioAtLeast
 }:
 
 let
@@ -33,7 +34,7 @@ let
 in mkDerivation {
   pname = "gr-rds";
   inherit version src;
-  disabledForGRafter = "3.9";
+  disabled = gnuradioAtLeast "3.9";
 
   buildInputs = [
     logLib
diff --git a/pkgs/development/haskell-modules/configuration-darwin.nix b/pkgs/development/haskell-modules/configuration-darwin.nix
index e306884cf4fd..e6400e2c46c8 100644
--- a/pkgs/development/haskell-modules/configuration-darwin.nix
+++ b/pkgs/development/haskell-modules/configuration-darwin.nix
@@ -345,7 +345,7 @@ self: super: ({
   }) (disableCabalFlag "fixity-th" super.fourmolu);
 
   # https://github.com/NixOS/nixpkgs/issues/149692
-  Agda = removeConfigureFlag "-foptimise-heavily" super.Agda;
+  Agda = disableCabalFlag "optimise-heavily" super.Agda;
 
 } // lib.optionalAttrs pkgs.stdenv.isx86_64 {  # x86_64-darwin
 
diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix
index 63029222cde4..3dcf3cf81949 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix
@@ -256,7 +256,9 @@ self: super: {
       sha256 = "sha256-b7u9GiIAd2xpOrM0MfILHNb6Nt7070lNRIadn2l3DfQ=";
     })];
   }) super.ConfigFile;
-
+}
+# super.ghc is required to break infinite recursion as Nix is strict in the attrNames
+// lib.optionalAttrs (pkgs.stdenv.hostPlatform.isAarch64 && lib.versionOlder super.ghc.version "9.6.4") {
   # The NCG backend for aarch64 generates invalid jumps in some situations,
   # the workaround on 9.6 is to revert to the LLVM backend (which is used
   # for these sorts of situations even on 9.2 and 9.4).
diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix
index 6e63cca2c154..abfd6ad38a5b 100644
--- a/pkgs/development/haskell-modules/configuration-nix.nix
+++ b/pkgs/development/haskell-modules/configuration-nix.nix
@@ -492,9 +492,6 @@ self: super: builtins.intersectAttrs super {
   # Uses OpenGL in testing
   caramia = dontCheck super.caramia;
 
-  # requires llvm 9 specifically https://github.com/llvm-hs/llvm-hs/#building-from-source
-  llvm-hs = super.llvm-hs.override { llvm-config = pkgs.llvm_9; };
-
   # llvm-ffi needs a specific version of LLVM which we hard code here. Since we
   # can't use pkg-config (LLVM has no official .pc files), we need to pass the
   # `dev` and `lib` output in, or Cabal will have trouble finding the library.
@@ -1117,10 +1114,16 @@ self: super: builtins.intersectAttrs super {
     preCheck = "export CI=true";
   }) super.aeson-typescript;
 
-  # Enable extra optimisations which increase build time, but also
-  # later compiler performance, so we should do this for user's benefit.
-  # Flag added in Agda 2.6.2
-  Agda = appendConfigureFlag "-foptimise-heavily" super.Agda;
+  Agda = lib.pipe super.Agda [
+    # Enable extra optimisations which increase build time, but also
+    # later compiler performance, so we should do this for user's benefit.
+    # Flag added in Agda 2.6.2
+    (enableCabalFlag "optimise-heavily")
+    # Enable debug printing, which worsens performance slightly but is
+    # very useful.
+    # Flag added in Agda 2.6.4.1, was always enabled before
+    (enableCabalFlag "debug")
+  ];
 
   # ats-format uses cli-setup in Setup.hs which is quite happy to write
   # to arbitrary files in $HOME. This doesn't either not achieve anything
diff --git a/pkgs/development/interpreters/babashka/clojure-tools.nix b/pkgs/development/interpreters/babashka/clojure-tools.nix
index 732b3631583b..afd170a41938 100644
--- a/pkgs/development/interpreters/babashka/clojure-tools.nix
+++ b/pkgs/development/interpreters/babashka/clojure-tools.nix
@@ -6,10 +6,10 @@
 }:
 clojure.overrideAttrs (previousAttrs: {
   pname = "babashka-clojure-tools";
-  version = "1.11.1.1413";
+  version = "1.11.1.1435";
 
   src = fetchurl {
     url = previousAttrs.src.url;
-    hash = "sha256-k8Olo63KUcWFgGNBmr9myD2/JOoV4f2S95v35mI4H+A=";
+    hash = "sha256-RS/FebIED8RYYXRXBKXZPRROO0HqyDo0zhb+p4Q5m8A=";
   };
 })
diff --git a/pkgs/development/interpreters/babashka/default.nix b/pkgs/development/interpreters/babashka/default.nix
index c56ca1ed252c..99528c2d7639 100644
--- a/pkgs/development/interpreters/babashka/default.nix
+++ b/pkgs/development/interpreters/babashka/default.nix
@@ -9,11 +9,11 @@
 let
   babashka-unwrapped = buildGraalvmNativeImage rec {
     pname = "babashka-unwrapped";
-    version = "1.3.186";
+    version = "1.3.188";
 
     src = fetchurl {
       url = "https://github.com/babashka/babashka/releases/download/v${version}/babashka-${version}-standalone.jar";
-      sha256 = "sha256-T7inTJHSnUySituU0fcgZ0xWjIY3yb8BlSakqym67ew=";
+      sha256 = "sha256-EjsSUPWiLQcCos2oyVXt3VzLlGEfiXK5CqJZ1NMvF/E=";
     };
 
     graalvmDrv = graalvmCEPackages.graalvm-ce;
@@ -36,6 +36,7 @@ let
       $out/bin/bb '(+ 1 2)' | fgrep '3'
       $out/bin/bb '(vec (dedupe *input*))' <<< '[1 1 1 1 2]' | fgrep '[1 2]'
       $out/bin/bb '(prn "bépo àê")' | fgrep 'bépo àê'
+      $out/bin/bb '(:out (babashka.process/sh "echo" "ä"))' | fgrep 'ä'
     '';
 
     postInstall = ''
diff --git a/pkgs/development/interpreters/elixir/1.16.nix b/pkgs/development/interpreters/elixir/1.16.nix
index 8a320eae7bb2..2f57e371e28b 100644
--- a/pkgs/development/interpreters/elixir/1.16.nix
+++ b/pkgs/development/interpreters/elixir/1.16.nix
@@ -1,7 +1,7 @@
 { mkDerivation }:
 mkDerivation {
-  version = "1.16.0";
-  sha256 = "sha256-nM3TpX18zdjDAFkljsAqwKx/1AQmwDMIQCeL75etTQc=";
+  version = "1.16.1";
+  sha256 = "sha256-rjUt3gCUszCbzGE7BriwH3ptrV81dqNB/d0nVOXrcGI=";
   # https://hexdocs.pm/elixir/1.16.0/compatibility-and-deprecations.html#compatibility-between-elixir-and-erlang-otp
   minimumOTPVersion = "24";
   escriptPath = "lib/elixir/scripts/generate_app.escript";
diff --git a/pkgs/development/interpreters/expr/default.nix b/pkgs/development/interpreters/expr/default.nix
index 2ff0ffd4f6a9..e81e56da9bf0 100644
--- a/pkgs/development/interpreters/expr/default.nix
+++ b/pkgs/development/interpreters/expr/default.nix
@@ -5,18 +5,18 @@
 
 buildGoModule rec {
   pname = "expr";
-  version = "1.15.8";
+  version = "1.16.0";
 
   src = fetchFromGitHub {
     owner = "antonmedv";
     repo = "expr";
     rev = "v${version}";
-    hash = "sha256-leZEP6RJv136z/bNc1S74tw+JQ3QD7NCMbo/Wo7q0ek=";
+    hash = "sha256-GLh4NayAbqGXI0Ekkk3lXCRwpLwGLbJIo7WjDfpKDhI=";
   };
 
   sourceRoot = "${src.name}/repl";
 
-  vendorHash = "sha256-Rs2tlno0vJo8FSdnnk3cxQCCxdByQD1jRzmePzMMfvs=";
+  vendorHash = "sha256-42kFO7kXIdqVrp2FQGELZ90OUobOp4zbdo533vresIw=";
 
   ldflags = [ "-s" "-w" ];
 
diff --git a/pkgs/development/interpreters/j/default.nix b/pkgs/development/interpreters/j/default.nix
index 2da499352b3e..97a8064cc60d 100644
--- a/pkgs/development/interpreters/j/default.nix
+++ b/pkgs/development/interpreters/j/default.nix
@@ -1,37 +1,34 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, bc
-, libedit
-, readline
-, avxSupport ? stdenv.hostPlatform.avxSupport
+, which
+, gmp
+, avx2Support ? stdenv.hostPlatform.avx2Support
 }:
 
 stdenv.mkDerivation rec {
   pname = "j";
-  version = "904-beta-c";
+  version = "9.5.1";
 
   src = fetchFromGitHub {
-    name = "${pname}-source";
     owner = "jsoftware";
     repo = "jsource";
-    rev = "j${version}";
-    hash = "sha256-MzEO/saHEBl1JwVlFC6P2UKm9RZnV7KVrNd9h4cPV/w=";
+    rev = "${version}";
+    hash = "sha256-QRQhE8138+zaGQOdq9xUOrifkVIprzbJWbmMK+WhEOU=";
   };
 
-  buildInputs = [
-    readline
-    libedit
-    bc
-  ];
+  nativeBuildInputs = [ which ];
+  buildInputs = [ gmp ];
 
   patches = [
     ./fix-install-path.patch
   ];
 
+  enableParallelBuilding = true;
+
   dontConfigure = true;
 
-  # emulating build_all.sh configuration variables
+  # Emulate jplatform64.sh configuration variables
   jplatform =
     if stdenv.isDarwin then "darwin"
     else if stdenv.hostPlatform.isAarch then "raspberry"
@@ -41,62 +38,39 @@ stdenv.mkDerivation rec {
   j64x =
     if stdenv.is32bit then "j32"
     else if stdenv.isx86_64 then
-      if (stdenv.isLinux && avxSupport) then "j64avx" else "j64"
+      if stdenv.isLinux && avx2Support then "j64avx2" else "j64"
     else if stdenv.isAarch64 then
       if stdenv.isDarwin then "j64arm" else "j64"
     else "unsupported";
 
+  env.NIX_LDFLAGS = "-lgmp";
+
   buildPhase = ''
     runHook preBuild
-
-    export SRCDIR=$(pwd)
-    export HOME=$TMPDIR
-    export JLIB=$SRCDIR/jlibrary
-    export CC=cc
-
-    cd make2
-
-    patchShebangs .
-
-    j64x="${j64x}" jplatform="${jplatform}" ./build_all.sh
-
-    cp -v $SRCDIR/bin/${jplatform}/${j64x}/* "$JLIB/bin"
-
+    MAKEFLAGS+=" ''${enableParallelBuilding:+-j$NIX_BUILD_CORES}" \
+      jplatform=${jplatform} j64x=${j64x} make2/build_all.sh
+    cp -v bin/${jplatform}/${j64x}/* jlibrary/bin/
     runHook postBuild
   '';
 
-  doCheck = true;
-
-  checkPhase = ''
-    runHook preCheck
-
-    echo "Smoke test"
-    echo 'i. 10' | $JLIB/bin/jconsole | fgrep "0 1 2 3 4 5 6 7 8 9"
-
-    # Now run the real tests
-    pushd $SRCDIR/test
-    for f in *.ijs
-    do
-      echo -n "test $f: "
-      $JLIB/bin/jconsole < $f > /dev/null || echo FAIL && echo PASS
-    done
-    popd
-
-    runHook postCheck
-  '';
-
   installPhase = ''
     runHook preInstall
+    mkdir -p $out/share/j
+    cp -r jlibrary/{addons,system} $out/share/j/
+    cp -r jlibrary/bin $out/
+    runHook postInstall
+  '';
 
-    mkdir -p "$out/share/j/"
-    cp -r $JLIB/{addons,system} "$out/share/j"
-    cp -r $JLIB/bin "$out"
+  doInstallCheck = false; # The "gregex" test fails due to not finding PCRE2
 
-    runHook postInstall
+  installCheckPhase = ''
+    runHook preInstallCheck
+    HOME="$TMPDIR" $out/bin/jconsole -lib $out/bin/libj* script/testga.ijs
+    runHook postInstallCheck
   '';
 
   meta = with lib; {
-    homepage = "http://jsoftware.com/";
+    homepage = "https://jsoftware.com/";
     description = "J programming language, an ASCII-based APL successor";
     longDescription = ''
       J is a high-level, general-purpose programming language that is
@@ -104,8 +78,10 @@ stdenv.mkDerivation rec {
       of data. It is a powerful tool for developing algorithms and exploring
       problems that are not already well understood.
     '';
-    license = licenses.gpl3Plus;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ raskin synthetica AndersonTorres ];
-    platforms = with platforms; unix;
+    broken = stdenv.isDarwin;
+    platforms = platforms.all;
+    mainProgram = "jconsole";
   };
 }
diff --git a/pkgs/development/interpreters/janet/default.nix b/pkgs/development/interpreters/janet/default.nix
index f186021eb3d6..8fd424ce153b 100644
--- a/pkgs/development/interpreters/janet/default.nix
+++ b/pkgs/development/interpreters/janet/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "janet";
-  version = "1.32.1";
+  version = "1.33.0";
 
   src = fetchFromGitHub {
     owner = "janet-lang";
     repo = "janet";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-24d9N59pTfQATWmAZN4dAFT8RTTlUlBPKokcQ/Fd2No=";
+    hash = "sha256-kXbJtWxvysC4hLkgVyPpkunFhN+2iVu+S+LCo5ikj5s=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/interpreters/lfe/2.1.nix b/pkgs/development/interpreters/lfe/2.1.nix
index 2dff2ade66c1..f239aa94b78f 100644
--- a/pkgs/development/interpreters/lfe/2.1.nix
+++ b/pkgs/development/interpreters/lfe/2.1.nix
@@ -1,7 +1,7 @@
 { fetchpatch, mkDerivation }:
 
 mkDerivation {
-  version = "2.1.1";
-  sha256 = "sha256-HUOVBzUaU0ixIfPPctwR2TPijxJjcFY3dJ8Z7Ot2bpE=";
-  maximumOTPVersion = "25";
+  version = "2.1.3";
+  hash = "sha256-HUOVBzUaU0ixIfPPctwR2TPijxJjcFY3dJ8Z7Ot2bpE=";
+  maximumOTPVersion = "26";
 }
diff --git a/pkgs/development/interpreters/lfe/generic-builder.nix b/pkgs/development/interpreters/lfe/generic-builder.nix
index 5e6016d4e97e..1589121d998d 100644
--- a/pkgs/development/interpreters/lfe/generic-builder.nix
+++ b/pkgs/development/interpreters/lfe/generic-builder.nix
@@ -3,9 +3,10 @@
 { baseName ? "lfe"
 , version
 , maximumOTPVersion
-, sha256 ? null
+, sha256 ? ""
+, hash ? ""
 , rev ? version
-, src ? fetchFromGitHub { inherit rev sha256; owner = "rvirding"; repo = "lfe"; }
+, src ? fetchFromGitHub { inherit hash rev sha256; owner = "lfe"; repo = "lfe"; }
 , patches ? []
 }:
 
diff --git a/pkgs/development/interpreters/luau/default.nix b/pkgs/development/interpreters/luau/default.nix
index 949ad6c3d45f..1457c065a971 100644
--- a/pkgs/development/interpreters/luau/default.nix
+++ b/pkgs/development/interpreters/luau/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "luau";
-  version = "0.607";
+  version = "0.611";
 
   src = fetchFromGitHub {
     owner = "luau-lang";
     repo = "luau";
     rev = version;
-    hash = "sha256-2O+nOgOWXPEbBJlRYnW8PlpG2oeQNZB7k08lFgF+ceE=";
+    hash = "sha256-gtY/dv+9+1OcxPaU/r01vgMDyfxdB36wgQ7WEGKW17c=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "luau";
   };
 }
diff --git a/pkgs/development/interpreters/lune/default.nix b/pkgs/development/interpreters/lune/default.nix
index cb6f532e2bc9..6622c572692a 100644
--- a/pkgs/development/interpreters/lune/default.nix
+++ b/pkgs/development/interpreters/lune/default.nix
@@ -6,30 +6,39 @@
 , darwin
 }:
 
+let
+  inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
+in
 rustPlatform.buildRustPackage rec {
   pname = "lune";
-  version = "0.7.11";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "filiptibell";
     repo = "lune";
     rev = "v${version}";
-    hash = "sha256-5agoAXeO16/CihsgvUHt+pgA+/ph6PualTY6xqDQbeU=";
+    hash = "sha256-ZVETw+GdkrR2V8RrHAWBR+avAuN0158DlJkYBquju8E=";
     fetchSubmodules = true;
   };
 
-  cargoHash = "sha256-kPBPxlsicoFDyOsuJWhvQHDC2uwYQqpd7S+kQPRd8DY=";
+  cargoHash = "sha256-zOjDT8Sn/p3YaG+dWyYxSWUOo11p9/WG3EyNagZRtQQ=";
 
   nativeBuildInputs = [
     pkg-config
   ];
 
   buildInputs = lib.optionals stdenv.isDarwin [
-    darwin.apple_sdk.frameworks.Security
+    Security
+    SystemConfiguration
   ];
 
+  # error: linker `aarch64-linux-gnu-gcc` not found
+  postPatch = ''
+    rm .cargo/config.toml
+  '';
+
   checkFlags = [
-    # these all require internet access
+    # require internet access
     "--skip=tests::net_request_codes"
     "--skip=tests::net_request_compression"
     "--skip=tests::net_request_methods"
@@ -40,15 +49,17 @@ rustPlatform.buildRustPackage rec {
     "--skip=tests::roblox_instance_custom_async"
     "--skip=tests::serde_json_decode"
 
-    # this tries to use the root directory as the CWD
+    # uses root as the CWD
     "--skip=tests::process_spawn_cwd"
   ];
 
   meta = with lib; {
     description = "A standalone Luau script runtime";
-    homepage = "https://github.com/filiptibell/lune";
-    changelog = "https://github.com/filiptibell/lune/blob/${src.rev}/CHANGELOG.md";
+    homepage = "https://github.com/lune-org/lune";
+    changelog = "https://github.com/lune-org/lune/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mpl20;
     maintainers = with maintainers; [ lammermann ];
+    # note: Undefined symbols for architecture x86_64
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/interpreters/nelua/default.nix b/pkgs/development/interpreters/nelua/default.nix
index 910ab76b0039..00b0422783a4 100644
--- a/pkgs/development/interpreters/nelua/default.nix
+++ b/pkgs/development/interpreters/nelua/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nelua";
-  version = "unstable-2024-01-13";
+  version = "unstable-2024-02-03";
 
   src = fetchFromGitHub {
     owner = "edubart";
     repo = "nelua-lang";
-    rev = "621cdbc918877f7a237d778be37298e7143dd2f0";
-    hash = "sha256-Lg5RFb2WHQ1037feJ8CJNv3HcX+Qe+H2NsA965NY+B0=";
+    rev = "05a2633a18dfdde7389394b9289da582c10e79bc";
+    hash = "sha256-oRW+pCB10T0A6fEPP3S+8iurQ2J5WMpQlCYScfIk07c=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/interpreters/nextflow/default.nix b/pkgs/development/interpreters/nextflow/default.nix
index e4885f985aba..ef0d4c42160a 100644
--- a/pkgs/development/interpreters/nextflow/default.nix
+++ b/pkgs/development/interpreters/nextflow/default.nix
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.nextflow.io/";
     changelog = "https://github.com/nextflow-io/nextflow/releases";
     license = licenses.asl20;
-    maintainers = [ maintainers.Etjean ];
+    maintainers = with maintainers; [ Etjean edmundmiller ];
     mainProgram = "nextflow";
     platforms = platforms.unix;
   };
diff --git a/pkgs/development/interpreters/php/8.1.nix b/pkgs/development/interpreters/php/8.1.nix
index 3082f8b85b62..ff76b64d71cf 100644
--- a/pkgs/development/interpreters/php/8.1.nix
+++ b/pkgs/development/interpreters/php/8.1.nix
@@ -1,9 +1,17 @@
-{ callPackage, ... }@_args:
+{ callPackage, fetchpatch, ... }@_args:
 
 let
-  base = callPackage ./generic.nix (_args // {
+  base = callPackage ./generic.nix ((removeAttrs _args [ "fetchpatch" ]) // {
     version = "8.1.27";
     hash = "sha256-oV/XPqRPLfMLB9JHhuB9GUiw6j7tC4uEVzXVANwov/E=";
+    extraPatches = [
+      # Fix build with libxml 2.12+.
+      # Patch from https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082
+      (fetchpatch {
+        url = "https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082.patch";
+        hash = "sha256-HvpTL7aXO9gr4glFdhqUWQPrG8TYTlvbNINq33M3zS0=";
+      })
+    ];
   });
 in
 base.withExtensions ({ all, ... }: with all; ([
diff --git a/pkgs/development/interpreters/php/8.2.nix b/pkgs/development/interpreters/php/8.2.nix
index b934647d9b8c..2d2a705c30e5 100644
--- a/pkgs/development/interpreters/php/8.2.nix
+++ b/pkgs/development/interpreters/php/8.2.nix
@@ -2,8 +2,8 @@
 
 let
   base = callPackage ./generic.nix (_args // {
-    version = "8.2.14";
-    hash = "sha256-+HHhMTM9YK5sU3sa3dvCrqVMQ2xWKvmG+4MJwGAEC54=";
+    version = "8.2.15";
+    hash = "sha256-UMPiILeqY6hXFiM8kC60TMCkZn7QuDNXIq4jkbE1Xno=";
   });
 in
 base.withExtensions ({ all, ... }: with all; ([
diff --git a/pkgs/development/interpreters/php/8.3.nix b/pkgs/development/interpreters/php/8.3.nix
index 942507d7d355..877bde775262 100644
--- a/pkgs/development/interpreters/php/8.3.nix
+++ b/pkgs/development/interpreters/php/8.3.nix
@@ -2,8 +2,8 @@
 
 let
   base = callPackage ./generic.nix (_args // {
-    version = "8.3.1";
-    hash = "sha256-xA+ukZf6aKUy9qBiwxba/jsExUUTa1S56tSTL8JsauE=";
+    version = "8.3.2";
+    hash = "sha256-WCs8g3qNlS7//idKXklwbEOojBYoMMKow1gIn+dEkoQ=";
   });
 in
 base.withExtensions ({ all, ... }: with all; ([
diff --git a/pkgs/development/interpreters/python/default.nix b/pkgs/development/interpreters/python/default.nix
index 2674971670fe..7f60ba036c5f 100644
--- a/pkgs/development/interpreters/python/default.nix
+++ b/pkgs/development/interpreters/python/default.nix
@@ -109,9 +109,9 @@ in {
       major = "3";
       minor = "13";
       patch = "0";
-      suffix = "a2";
+      suffix = "a3";
     };
-    hash = "sha256-ttRrRBkMTAJCHraaBC0WsMVUgb3agYxsQW3CRBE6nC0=";
+    hash = "sha256-IHhMgwTrHGnID5ZuvfB3W+LjfiPfO2JGHuwSqF3Pfq0=";
     inherit (darwin) configd;
     inherit passthruFun;
   };
diff --git a/pkgs/development/interpreters/python/python-packages-base.nix b/pkgs/development/interpreters/python/python-packages-base.nix
index 2126b796ca9d..e2bd6cd5a5ab 100644
--- a/pkgs/development/interpreters/python/python-packages-base.nix
+++ b/pkgs/development/interpreters/python/python-packages-base.nix
@@ -98,8 +98,4 @@ in {
   python = toPythonModule python;
   # Dont take pythonPackages from "global" pkgs scope to avoid mixing python versions
   pythonPackages = self;
-
-  # Remove?
-  recursivePthLoader = toPythonModule (callPackage ../../../development/python-modules/recursive-pth-loader { });
-
 }
diff --git a/pkgs/development/interpreters/rakudo/moarvm.nix b/pkgs/development/interpreters/rakudo/moarvm.nix
index d914b7a1fac2..dbe678079f02 100644
--- a/pkgs/development/interpreters/rakudo/moarvm.nix
+++ b/pkgs/development/interpreters/rakudo/moarvm.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, cctools-port
 , perl
 , CoreServices
 , ApplicationServices
@@ -9,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "moarvm";
-  version = "2023.10";
+  version = "2024.01";
 
   src = fetchFromGitHub {
     owner = "moarvm";
     repo = "moarvm";
     rev = version;
-    hash = "sha256-1w6oMoxDro/AHE+QvjKUx9cxNpYuVSXYrRMh31ksgoQ=";
+    hash = "sha256-vU1fhR6pKz2qnznrJ/mknt9DVx+I1kLaPStXKQvp59g=";
     fetchSubmodules = true;
   };
 
@@ -27,13 +26,9 @@ stdenv.mkDerivation rec {
       --replace '/usr/bin/arch' "$(type -P true)" \
       --replace '/usr/' '/nope/'
     substituteInPlace 3rdparty/dyncall/configure \
-      --replace '`sw_vers -productVersion`' '"$MACOSX_DEPLOYMENT_TARGET"'
+      --replace '`sw_vers -productVersion`' '"11.0"'
   '';
 
-  nativeBuildInputs = lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [
-    cctools-port
-  ];
-
   buildInputs = [ perl ] ++ lib.optionals stdenv.isDarwin [ CoreServices ApplicationServices ];
   doCheck = false; # MoarVM does not come with its own test suite
 
diff --git a/pkgs/development/interpreters/risor/default.nix b/pkgs/development/interpreters/risor/default.nix
index 1408b196f4a3..22bbe5b9c73b 100644
--- a/pkgs/development/interpreters/risor/default.nix
+++ b/pkgs/development/interpreters/risor/default.nix
@@ -1,23 +1,23 @@
 { lib
-, buildGo121Module
+, buildGoModule
 , fetchFromGitHub
 , testers
 , risor
 }:
 
-buildGo121Module rec {
+buildGoModule rec {
   pname = "risor";
-  version = "1.1.2";
+  version = "1.3.2";
 
   src = fetchFromGitHub {
     owner = "risor-io";
     repo = "risor";
     rev = "v${version}";
-    hash = "sha256-7/pGC2+7KKc+1JZrPnchG3/Zj15lfcvTppuFUcpu/aU=";
+    hash = "sha256-E4Huto3jvPziWEZqHwVBchZYDX/Tuq/TCBvoviin5UY=";
   };
 
   proxyVendor = true;
-  vendorHash = "sha256-6Zb30IXZsRQ0mvJOf4yDPkk7I+s18ok/V90mSKB/Ev4=";
+  vendorHash = "sha256-0NYvZhVkDX6WlKN4QFXyrNnEy0sjUQ1Us+iNEPIgNX0=";
 
   subPackages = [
     "cmd/risor"
diff --git a/pkgs/development/interpreters/ruby/rubygems/default.nix b/pkgs/development/interpreters/ruby/rubygems/default.nix
index 95a6fb077eb1..dd89e0cd41d7 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.3";
+  version = "3.5.5";
 
   src = fetchurl {
     url = "https://rubygems.org/rubygems/rubygems-${version}.tgz";
-    hash = "sha256-8xFe6AgJkvJXwBYbgR4HsBLyAXXtiTSfsayYl33cXJw=";
+    hash = "sha256-ErKsKMIEvs4oA8eS9v1ASfqlMOJOxeTVfCA99AIcTh0=";
   };
 
   patches = [
diff --git a/pkgs/development/interpreters/spidermonkey/common.nix b/pkgs/development/interpreters/spidermonkey/common.nix
index ff9bb39e0a29..46af4ec26bbe 100644
--- a/pkgs/development/interpreters/spidermonkey/common.nix
+++ b/pkgs/development/interpreters/spidermonkey/common.nix
@@ -125,7 +125,6 @@ stdenv.mkDerivation (finalAttrs: rec {
     "--disable-jemalloc"
     "--disable-strip"
     "--disable-tests"
-  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
     # Spidermonkey seems to use different host/build terminology for cross
     # compilation here.
     "--host=${stdenv.buildPlatform.config}"
diff --git a/pkgs/development/interpreters/starlark-rust/default.nix b/pkgs/development/interpreters/starlark-rust/default.nix
index bd30fb4f85ae..fdffaa549aa8 100644
--- a/pkgs/development/interpreters/starlark-rust/default.nix
+++ b/pkgs/development/interpreters/starlark-rust/default.nix
@@ -5,15 +5,15 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "starlark-rust";
-  version = "0.10.0";
+  version = "0.11.0";
 
   src = fetchCrate {
     pname = "starlark_bin";
     inherit version;
-    hash = "sha256-7AoNRTLyTYsUass9bMJMBUN+GrfUzEGM9cED5VsRESs=";
+    hash = "sha256-/dy9uzXLZipKzFaslOmlzeEsOD89pprwFTopYpsmHGM=";
   };
 
-  cargoHash = "sha256-Q00JJRiubrxnI0nFQqUTbxTTB70XV93HJycjdlvV+74=";
+  cargoHash = "sha256-Ict1Lh+JPZ5dmC+ul0phcQug9nYeaILLCtaHQOI6qBk=";
 
   meta = with lib; {
     description = "A Rust implementation of the Starlark language";
diff --git a/pkgs/development/interpreters/wamr/default.nix b/pkgs/development/interpreters/wamr/default.nix
index 56f8274828ca..d1d0796f5e97 100644
--- a/pkgs/development/interpreters/wamr/default.nix
+++ b/pkgs/development/interpreters/wamr/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "wamr";
-  version = "1.3.1";
+  version = "1.3.2";
 
   src = fetchFromGitHub {
     owner = "bytecodealliance";
     repo = "wasm-micro-runtime";
     rev = "WAMR-${finalAttrs.version}";
-    hash = "sha256-brQ0hYRN44kT/khlKagAmqgkE3ALkN5IqB3fj+YmtHE=";
+    hash = "sha256-4iH1PC0fEPehlez8YWgqPBxWnePFcMBzbGfd2CQjvd4=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/interpreters/wasmtime/default.nix b/pkgs/development/interpreters/wasmtime/default.nix
index 47790df5ec3f..3d97167d64dc 100644
--- a/pkgs/development/interpreters/wasmtime/default.nix
+++ b/pkgs/development/interpreters/wasmtime/default.nix
@@ -2,19 +2,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wasmtime";
-  version = "16.0.0";
+  version = "17.0.0";
 
   src = fetchFromGitHub {
     owner = "bytecodealliance";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-kySJme79RQMI8PP2Jhx1mjqJpUIf5jPn2TvbPEzw5hY=";
+    hash = "sha256-HGs82LMDJJZl1bPaFsVetpMR7ytBgGmOkH1tt7xmUMA=";
     fetchSubmodules = true;
   };
 
   # Disable cargo-auditable until https://github.com/rust-secure-code/cargo-auditable/issues/124 is solved.
   auditable = false;
-  cargoHash = "sha256-2XlnR4OBvdQyMUUOL6VvqDxf8jGYlhz2PDuPd24Ocxw=";
+  cargoHash = "sha256-bNGpBgAhLN4s90saQqIgFb6hXtfC9NIjOfy+hvkRJ6E=";
   cargoBuildFlags = [ "--package" "wasmtime-cli" "--package" "wasmtime-c-api" ];
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/CoinMP/default.nix b/pkgs/development/libraries/CoinMP/default.nix
index 25b9ba0fb574..0a2954f4a7dd 100644
--- a/pkgs/development/libraries/CoinMP/default.nix
+++ b/pkgs/development/libraries/CoinMP/default.nix
@@ -11,6 +11,10 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  env = lib.optionalAttrs stdenv.cc.isClang {
+    CXXFLAGS = "-std=c++14";
+  };
+
   hardeningDisable = [ "format" ];
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/abseil-cpp/202401.nix b/pkgs/development/libraries/abseil-cpp/202401.nix
new file mode 100644
index 000000000000..f540a7f8260a
--- /dev/null
+++ b/pkgs/development/libraries/abseil-cpp/202401.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, gtest
+, static ? stdenv.hostPlatform.isStatic
+, cxxStandard ? null
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "abseil-cpp";
+  version = "20240116.0";
+
+  src = fetchFromGitHub {
+    owner = "abseil";
+    repo = "abseil-cpp";
+    rev = "refs/tags/${finalAttrs.version}";
+    hash = "sha256-HtJh2oYGx87bNT6Ll3WLeYPPxH1f9JwVqCXGErykGnE=";
+  };
+
+  cmakeFlags = [
+    "-DABSL_BUILD_TEST_HELPERS=ON"
+    "-DABSL_USE_EXTERNAL_GOOGLETEST=ON"
+    "-DBUILD_SHARED_LIBS=${if static then "OFF" else "ON"}"
+  ] ++ lib.optionals (cxxStandard != null) [
+    "-DCMAKE_CXX_STANDARD=${cxxStandard}"
+  ];
+
+  strictDeps = true;
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ gtest ];
+
+  meta = with lib; {
+    description = "An open-source collection of C++ code designed to augment the C++ standard library";
+    homepage = "https://abseil.io/";
+    license = licenses.asl20;
+    platforms = platforms.all;
+    maintainers = [ maintainers.GaetanLepage ];
+  };
+})
diff --git a/pkgs/development/libraries/ada/spark2014/default.nix b/pkgs/development/libraries/ada/spark2014/default.nix
index b89a56a397b9..a52a5ac63f71 100644
--- a/pkgs/development/libraries/ada/spark2014/default.nix
+++ b/pkgs/development/libraries/ada/spark2014/default.nix
@@ -5,7 +5,6 @@
 , gnatcoll-core
 , gprbuild
 , python3
-, ocaml
 , ocamlPackages
 , makeWrapper
 }:
@@ -27,7 +26,7 @@ stdenv.mkDerivation rec {
     gnat12
     gprbuild
     python3
-    ocaml
+    ocamlPackages.ocaml
     makeWrapper
   ];
 
diff --git a/pkgs/development/libraries/agda/1lab/default.nix b/pkgs/development/libraries/agda/1lab/default.nix
index c158449aed16..89b0fb60c365 100644
--- a/pkgs/development/libraries/agda/1lab/default.nix
+++ b/pkgs/development/libraries/agda/1lab/default.nix
@@ -11,9 +11,13 @@ mkDerivation rec {
     hash = "sha256-0U6s6sXdynk2IWRBDXBJCf7Gc+gE8AhR1PXZl0DS4yU=";
   };
 
-  # We don't need anything in support; avoid installing LICENSE.agda
   postPatch = ''
+    # We don't need anything in support; avoid installing LICENSE.agda
     rm -rf support
+
+    # Remove verbosity options as they make Agda take longer and use more memory.
+    shopt -s globstar extglob
+    sed -Ei '/OPTIONS/s/ -v ?[^ #]+//g' src/**/*.@(agda|lagda.md)
   '';
 
   libraryName = "1lab";
diff --git a/pkgs/development/libraries/alembic/default.nix b/pkgs/development/libraries/alembic/default.nix
index afd0ad458bf7..6f73c47f49d1 100644
--- a/pkgs/development/libraries/alembic/default.nix
+++ b/pkgs/development/libraries/alembic/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, openexr, hdf5-threadsafe, ilmbase }:
+{ lib, stdenv, fetchFromGitHub, cmake, openexr, hdf5-threadsafe }:
 
 stdenv.mkDerivation rec
 {
@@ -20,13 +20,7 @@ stdenv.mkDerivation rec
 
   nativeBuildInputs = [ cmake ];
 
-  # NOTE: Alembic also support imath instead of ilmbase, but some users of Alembic (e.g. Blender)
-  # are incompatible with the imath version of Alembic
-  buildInputs = [ openexr hdf5-threadsafe ilmbase ];
-
-  # Downstream packages trying to use Alembic via CMake need ilmbase as well
-  # For some reason this won't be picked up correctly otherwise
-  propagatedBuildInputs = [ ilmbase ];
+  buildInputs = [ openexr hdf5-threadsafe ];
 
   # These flags along with the postPatch step ensure that all artifacts end up
   # in the correct output without needing to move anything
diff --git a/pkgs/development/libraries/allegro/5.nix b/pkgs/development/libraries/allegro/5.nix
index 3b9bbfeb244a..eaf227fa60d1 100644
--- a/pkgs/development/libraries/allegro/5.nix
+++ b/pkgs/development/libraries/allegro/5.nix
@@ -40,13 +40,13 @@
 
 stdenv.mkDerivation rec {
   pname = "allegro";
-  version = "5.2.9.0";
+  version = "5.2.9.1";
 
   src = fetchFromGitHub {
     owner = "liballeg";
     repo = "allegro5";
     rev = version;
-    sha256 = "sha256-lGaHhFlc9zcalRFx0Xcyd0pZdC9lln0ez5hdfRz6Kt8=";
+    sha256 = "sha256-n2OCmZmAqeXjtnCTqJgQ5q4j8/lnPfH+5tpWKIFKle0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/amf-headers/default.nix b/pkgs/development/libraries/amf-headers/default.nix
index b1b93d38cedc..07a76fcdfb12 100644
--- a/pkgs/development/libraries/amf-headers/default.nix
+++ b/pkgs/development/libraries/amf-headers/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "amf-headers";
-  version = "1.4.32";
+  version = "1.4.33";
 
   src = fetchFromGitHub {
     owner = "GPUOpen-LibrariesAndSDKs";
     repo = "AMF";
     rev = "v${version}";
-    sha256 = "sha256-3CdC/9o6ur2CeVLImz2QfaZAH2+KtDdxs5zRF7W5/oo=";
+    sha256 = "sha256-oho1EonWxgBmsQiX3wPhs0jQjLFwLe49C7/SOEptYiw=";
   };
 
   installPhase = ''
diff --git a/pkgs/development/libraries/atkmm/2.36.nix b/pkgs/development/libraries/atkmm/2.36.nix
index f03421619733..600ae449fd32 100644
--- a/pkgs/development/libraries/atkmm/2.36.nix
+++ b/pkgs/development/libraries/atkmm/2.36.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "atkmm";
-  version = "2.36.2";
+  version = "2.36.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-b2LdmfdGmF5XNgWTdXfM/JRDaPYGpxykY0LXDhza4Hk=";
+    sha256 = "sha256-bsJk6qDE3grbcgLGABcL3pp/vk1Ga/vpQOr3+qpsWXQ=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/atkmm/default.nix b/pkgs/development/libraries/atkmm/default.nix
index d26611f45073..a22e3fec16a6 100644
--- a/pkgs/development/libraries/atkmm/default.nix
+++ b/pkgs/development/libraries/atkmm/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "atkmm";
-  version = "2.28.3";
+  version = "2.28.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-fCCItIapCb6NorGDBOVsX5CITRNDyNpzZ+pc0yWLmWk=";
+    sha256 = "sha256-ChQqgSj4PAAe+4AU7kY+mnZgVO+EaGr5UxNeBNKP2rM=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/aws-c-auth/default.nix b/pkgs/development/libraries/aws-c-auth/default.nix
index 284671b43f17..f818e35c458e 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.7";
+  version = "0.7.10";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "aws-c-auth";
     rev = "v${version}";
-    sha256 = "sha256-GO3Sfbi1dwsqQM6rlnEHyE7wolQjdVwD5BAu5ychEuY=";
+    hash = "sha256-yJ0sgw0y9tIiIHgTPVnfYd8zAGjO83qfeeEzstGH9CE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/bobcat/default.nix b/pkgs/development/libraries/bobcat/default.nix
deleted file mode 100644
index 4e328fe2b2a9..000000000000
--- a/pkgs/development/libraries/bobcat/default.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ lib, stdenv, fetchFromGitLab, icmake
-, libmilter, libX11, openssl, readline
-, util-linux, yodl }:
-
-stdenv.mkDerivation rec {
-  pname = "bobcat";
-  version = "5.11.01";
-
-  src = fetchFromGitLab {
-    sha256 = "sha256-JLJKaJmztputIon9JkKzpm3Ch60iwm4Imh9p42crYzA=";
-    domain = "gitlab.com";
-    rev = version;
-    repo = "bobcat";
-    owner = "fbb-git";
-  };
-
-  buildInputs = [ libmilter libX11 openssl readline util-linux ];
-  nativeBuildInputs = [ icmake yodl ];
-
-  setSourceRoot = ''
-    sourceRoot=$(echo */bobcat)
-  '';
-
-  postPatch = ''
-    substituteInPlace INSTALL.im --replace /usr $out
-    patchShebangs .
-  '';
-
-  buildPhase = ''
-    ./build libraries all
-    ./build man
-  '';
-
-  installPhase = ''
-    ./build install x
-  '';
-
-  meta = with lib; {
-    description = "Brokken's Own Base Classes And Templates";
-    homepage = "https://fbb-git.gitlab.io/bobcat/";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/development/libraries/caf/default.nix b/pkgs/development/libraries/caf/default.nix
index 753dda572d4c..96593487bbeb 100644
--- a/pkgs/development/libraries/caf/default.nix
+++ b/pkgs/development/libraries/caf/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "actor-framework";
-  version = "0.19.4";
+  version = "0.19.5";
 
   src = fetchFromGitHub {
     owner = "actor-framework";
     repo = "actor-framework";
     rev = version;
-    hash = "sha256-Qi3nyUSwrYBy8lCP+R6/u/WtnZJcgSwb07pZVScAzcU=";
+    hash = "sha256-G69qZ8aoaRP9Ug+BIhXrYs6xteUG3Zhxbo2O09LEh3s=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/catch2/3.nix b/pkgs/development/libraries/catch2/3.nix
index f064eb7a4fdb..aa8bf62059bd 100644
--- a/pkgs/development/libraries/catch2/3.nix
+++ b/pkgs/development/libraries/catch2/3.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "catch2";
-  version = "3.4.0";
+  version = "3.5.2";
 
   src = fetchFromGitHub {
     owner = "catchorg";
     repo = "Catch2";
     rev = "v${version}";
-    hash = "sha256-DqGGfNjKPW9HFJrX9arFHyNYjB61uoL6NabZatTWrr0=";
+    hash = "sha256-xGPfXjk+oOnR7JqTrZd2pKJxalrlS8CMs7HWDClXaS8=";
   };
 
   nativeBuildInputs = [
@@ -29,6 +29,11 @@ stdenv.mkDerivation rec {
     "-DCMAKE_CTEST_ARGUMENTS=-E;ApprovalTests"
   ];
 
+  # Tests fail on x86_32 if compiled with x87 floats: https://github.com/catchorg/Catch2/issues/2796
+  env = lib.optionalAttrs stdenv.isx86_32 {
+    NIX_CFLAGS_COMPILE = "-msse2 -mfpmath=sse";
+  };
+
   doCheck = true;
 
   nativeCheckInputs = [
@@ -41,6 +46,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/catchorg/Catch2/blob/${src.rev}/docs/release-notes.md";
     license = lib.licenses.boost;
     maintainers = with lib.maintainers; [ dotlambda ];
-    platforms = lib.platforms.unix;
+    platforms = with lib.platforms; unix ++ windows;
   };
 }
diff --git a/pkgs/development/libraries/catch2/default.nix b/pkgs/development/libraries/catch2/default.nix
index 3c51fa9371d9..56b2016539be 100644
--- a/pkgs/development/libraries/catch2/default.nix
+++ b/pkgs/development/libraries/catch2/default.nix
@@ -20,6 +20,6 @@ stdenv.mkDerivation rec {
     homepage = "http://catch-lib.net";
     license = licenses.boost;
     maintainers = with maintainers; [ edwtjo knedlsepp ];
-    platforms = platforms.unix ++ [ "x86_64-windows" ];
+    platforms = with platforms; unix ++ windows;
   };
 }
diff --git a/pkgs/development/libraries/cglm/default.nix b/pkgs/development/libraries/cglm/default.nix
index f9bc0ebb9083..a4fab015db90 100644
--- a/pkgs/development/libraries/cglm/default.nix
+++ b/pkgs/development/libraries/cglm/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cglm";
-  version = "0.9.1";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "recp";
     repo = "cglm";
     rev = "v${version}";
-    sha256 = "sha256-qOPOJ+h1bq5yKkP3ZNeZnRwiOMSgS7bxTk7s/5tREQw=";
+    sha256 = "sha256-jaG+XGbSx5SaNhGFWLh+1WTB+ya3c5tBZYs9xKIRafI=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/clap/default.nix b/pkgs/development/libraries/clap/default.nix
index 1da0b31cb10c..e6c017cb7808 100644
--- a/pkgs/development/libraries/clap/default.nix
+++ b/pkgs/development/libraries/clap/default.nix
@@ -2,17 +2,18 @@
 , stdenv
 , fetchFromGitHub
 , cmake
+, testers
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "clap";
-  version = "1.1.10";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "free-audio";
     repo = "clap";
-    rev = version;
-    hash = "sha256-AH3kSCp4Q8Nw3To2vuPuMH/cWm3cmzj2OEH/Azcbdmo=";
+    rev = finalAttrs.version;
+    hash = "sha256-BNT2yWIlWk8kzhZteh7TaamliwJI+lzWVs/8XCFsuUc=";
   };
 
   postPatch = ''
@@ -22,11 +23,14 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
+  passthru.tests.pkg-config = testers.hasPkgConfigModules { package = finalAttrs.finalPackage; };
+
   meta = with lib; {
     description = "Clever Audio Plugin API interface headers";
     homepage = "https://cleveraudio.org/";
+    pkgConfigModules = [ "clap" ];
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ ris ];
   };
-}
+})
diff --git a/pkgs/development/libraries/cln/default.nix b/pkgs/development/libraries/cln/default.nix
index faa6fde2a7e8..a7094d18e6ea 100644
--- a/pkgs/development/libraries/cln/default.nix
+++ b/pkgs/development/libraries/cln/default.nix
@@ -2,11 +2,11 @@
 
 gccStdenv.mkDerivation rec {
   pname = "cln";
-  version = "1.3.6";
+  version = "1.3.7";
 
   src = fetchurl {
     url = "${meta.homepage}${pname}-${version}.tar.bz2";
-    sha256 = "0jlq9l4hphk7qqlgqj9ihjp4m3rwjbhk6q4v00lsbgbri07574pl";
+    sha256 = "sha256-fH7YR0lYM35N9btX6lF2rQNlAEy7mLYhdlvEYGoQ2Gs=";
   };
 
   buildInputs = [ gmp ];
diff --git a/pkgs/development/libraries/cmark/default.nix b/pkgs/development/libraries/cmark/default.nix
index 830791f6fb31..23d00769ee1b 100644
--- a/pkgs/development/libraries/cmark/default.nix
+++ b/pkgs/development/libraries/cmark/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cmark";
-  version = "0.30.3";
+  version = "0.31.0";
 
   src = fetchFromGitHub {
     owner = "commonmark";
     repo = pname;
     rev = version;
-    sha256 = "sha256-/7TzaZYP8lndkfRPgCpBbazUBytVLXxqWHYktIsGox0=";
+    sha256 = "sha256-GBesKTp9DqoFAmCc0RB+XePvzV9g+w+oyrD1nCgyklI=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/crossguid/default.nix b/pkgs/development/libraries/crossguid/default.nix
index bccba589e031..e8d85ec23dd5 100644
--- a/pkgs/development/libraries/crossguid/default.nix
+++ b/pkgs/development/libraries/crossguid/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, libuuid, unstableGitUpdater }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, libuuid, unstableGitUpdater }:
 
 stdenv.mkDerivation rec {
   pname = "crossguid";
@@ -11,6 +11,16 @@ stdenv.mkDerivation rec {
     hash = "sha256-37tKPDo4lukl/aaDWWSQYfsBNEnDjE7t6OnEZjBhcvQ=";
   };
 
+  patches = [
+    # Fix the build against gcc-13:
+    #   https://github.com/graeme-hill/crossguid/pull/67
+    (fetchpatch {
+      name = "gcc-13.patch";
+      url = "https://github.com/graeme-hill/crossguid/commit/1eb9bea38c320b2b588635cffceaaa2a8d434780.patch";
+      hash = "sha256-0qKZUeuNfc3gt+aFeaTt+IexO391GCdjS+9PVJmBKV4=";
+    })
+  ];
+
   nativeBuildInputs = [ cmake ];
   buildInputs = lib.optional stdenv.isLinux libuuid;
 
diff --git a/pkgs/development/libraries/dav1d/default.nix b/pkgs/development/libraries/dav1d/default.nix
index 9c5e5101c8af..670f568e0b6a 100644
--- a/pkgs/development/libraries/dav1d/default.nix
+++ b/pkgs/development/libraries/dav1d/default.nix
@@ -1,11 +1,20 @@
-{ lib, stdenv, fetchFromGitHub
-, meson, ninja, nasm, pkg-config
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, nasm
+, pkg-config
 , xxHash
 , withTools ? false # "dav1d" binary
-, withExamples ? false, SDL2 # "dav1dplay" binary
-, useVulkan ? false, libplacebo, vulkan-loader, vulkan-headers
+, withExamples ? false
+, SDL2 # "dav1dplay" binary
+, useVulkan ? false
+, libplacebo
+, vulkan-loader
+, vulkan-headers
 
-# for passthru.tests
+  # for passthru.tests
 , ffmpeg
 , gdal
 , handbrake
@@ -34,7 +43,7 @@ stdenv.mkDerivation rec {
     ++ lib.optional withExamples SDL2
     ++ lib.optionals useVulkan [ libplacebo vulkan-loader vulkan-headers ];
 
-  mesonFlags= [
+  mesonFlags = [
     "-Denable_tools=${lib.boolToString withTools}"
     "-Denable_examples=${lib.boolToString withExamples}"
   ];
@@ -62,7 +71,7 @@ stdenv.mkDerivation rec {
     changelog = "https://code.videolan.org/videolan/dav1d/-/tags/${version}";
     # More technical: https://code.videolan.org/videolan/dav1d/blob/${version}/NEWS
     license = licenses.bsd2;
-    platforms = platforms.unix;
+    platforms = platforms.unix ++ platforms.windows;
     maintainers = with maintainers; [ primeos ];
   };
 }
diff --git a/pkgs/development/libraries/dbus-cplusplus/default.nix b/pkgs/development/libraries/dbus-cplusplus/default.nix
index 7f6e747e6c36..2452f3e8f35c 100644
--- a/pkgs/development/libraries/dbus-cplusplus/default.nix
+++ b/pkgs/development/libraries/dbus-cplusplus/default.nix
@@ -32,6 +32,22 @@ stdenv.mkDerivation rec {
       url = "https://src.fedoraproject.org/rpms/dbus-c++/raw/9f515ace0594c8b2b9f0d41ffe71bc5b78d30eee/f/dbus-c++-template-operators.patch";
       hash = "sha256-B8S7z/YH2YEQgaRsBJBBVTx8vHQhHW7z171TZmogpL8=";
     })
+  ] ++ lib.optionals stdenv.hostPlatform.isMusl [
+    (fetchpatch {
+      name = "0001-src-eventloop.cpp-use-portable-method-for-initializi.patch";
+      url = "https://github.com/openembedded/meta-openembedded/raw/119e75e48dbf0539b4e440417901458ffff79b38/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/0001-src-eventloop.cpp-use-portable-method-for-initializi.patch";
+      hash = "sha256-GJWvp5F26c88OCGLrFcXaqUl2FMSDCluppMrRQO3rzc=";
+    })
+    (fetchpatch {
+      name = "0002-tools-generate_proxy.cpp-avoid-possibly-undefined-ui.patch";
+      url = "https://github.com/openembedded/meta-openembedded/raw/119e75e48dbf0539b4e440417901458ffff79b38/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/0002-tools-generate_proxy.cpp-avoid-possibly-undefined-ui.patch";
+      hash = "sha256-P9JuG/6k5L6NTiAGH9JRfNcwpNVOV29RQC6fTj0fKZE=";
+    })
+    (fetchpatch {
+      name = "0003-Fixed-undefined-ssize_t-for-clang-3.8.0-on-FreeBSD.patch";
+      url = "https://github.com/openembedded/meta-openembedded/raw/119e75e48dbf0539b4e440417901458ffff79b38/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/0003-Fixed-undefined-ssize_t-for-clang-3.8.0-on-FreeBSD.patch";
+      hash = "sha256-/RCpDvaLIw0kmuBvUGbfnVEvgTKjIQWcSKWheCfgSmM=";
+    })
   ];
 
   nativeBuildInputs = [ pkg-config ];
@@ -45,8 +61,5 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.goibhniu ];
-    # Broken for Musl at 2023-12-28:
-    # https://github.com/NixOS/nixpkgs/issues/277198
-    broken = stdenv.hostPlatform.isMusl;
   };
 }
diff --git a/pkgs/development/libraries/dbus/default.nix b/pkgs/development/libraries/dbus/default.nix
index a809eda31c0d..cb5fe9e4fbd3 100644
--- a/pkgs/development/libraries/dbus/default.nix
+++ b/pkgs/development/libraries/dbus/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
   '';
 
   outputs = [ "out" "dev" "lib" "doc" "man" ];
+  separateDebugInfo = true;
 
   strictDeps = true;
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/dlib/default.nix b/pkgs/development/libraries/dlib/default.nix
index 32356fd9ccab..50709cae8c0b 100644
--- a/pkgs/development/libraries/dlib/default.nix
+++ b/pkgs/development/libraries/dlib/default.nix
@@ -3,28 +3,27 @@
 , fetchFromGitHub
 , cmake
 , pkg-config
-, fftw
 , libpng
 , libjpeg
 , libwebp
-, openblas
+, blas
+, lapack
+, config
 , guiSupport ? false
 , libX11
-
-  # see http://dlib.net/compile.html
 , sse4Support ? stdenv.hostPlatform.sse4_1Support
 , avxSupport ? stdenv.hostPlatform.avxSupport
-, cudaSupport ? true
-}:
-
-stdenv.mkDerivation rec {
+, cudaSupport ? config.cudaSupport
+, cudaPackages
+}@inputs:
+(if cudaSupport then cudaPackages.backendStdenv else inputs.stdenv).mkDerivation rec {
   pname = "dlib";
   version = "19.24.2";
 
   src = fetchFromGitHub {
     owner = "davisking";
     repo = "dlib";
-    rev ="v${version}";
+    rev = "v${version}";
     sha256 = "sha256-Z1fScuaIHjj2L1uqLIvsZ7ARKNjM+iaA8SAtWUTPFZk=";
   };
 
@@ -33,20 +32,53 @@ stdenv.mkDerivation rec {
   '';
 
   cmakeFlags = [
-    (lib.cmakeBool "USE_DLIB_USE_CUDA" cudaSupport)
     (lib.cmakeBool "USE_SSE4_INSTRUCTIONS" sse4Support)
     (lib.cmakeBool "USE_AVX_INSTRUCTIONS" avxSupport)
+    (lib.cmakeBool "DLIB_USE_CUDA" cudaSupport)
+  ] ++ lib.optionals cudaSupport [
+    (lib.cmakeFeature "DLIB_USE_CUDA_COMPUTE_CAPABILITIES" (builtins.concatStringsSep "," (with cudaPackages.flags; map dropDot cudaCapabilities)))
   ];
 
-  nativeBuildInputs = [ cmake pkg-config ];
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ] ++ lib.optionals cudaSupport (with cudaPackages; [
+    cuda_nvcc
+  ]);
 
   buildInputs = [
-    fftw
     libpng
     libjpeg
     libwebp
-    openblas
-  ] ++ lib.optional guiSupport libX11;
+    blas
+    lapack
+  ]
+  ++ lib.optionals guiSupport [ libX11 ]
+  ++ lib.optionals config.cudaSupport (with cudaPackages; [
+    cuda_cudart.dev
+    cuda_cudart.lib
+    cuda_cudart.static
+    cuda_nvcc.dev
+    libcublas.dev
+    libcublas.lib
+    libcublas.static
+    libcurand.dev
+    libcurand.lib
+    libcurand.static
+    libcusolver.dev
+    libcusolver.lib
+    libcusolver.static
+    cudnn.dev
+    cudnn.lib
+    cudnn.static
+    cuda_cccl.dev
+  ]);
+
+  passthru = {
+    inherit
+      cudaSupport cudaPackages
+      sse4Support avxSupport;
+  };
 
   meta = with lib; {
     description = "A general purpose cross-platform C++ machine learning library";
diff --git a/pkgs/development/libraries/draco/default.nix b/pkgs/development/libraries/draco/default.nix
index ee2c5b8e5b72..c4ed0730cdac 100644
--- a/pkgs/development/libraries/draco/default.nix
+++ b/pkgs/development/libraries/draco/default.nix
@@ -16,14 +16,14 @@ let
   cmakeBool = b: if b then "ON" else "OFF";
 in
 stdenv.mkDerivation (finalAttrs: {
-  version = "1.5.6";
+  version = "1.5.7";
   pname = "draco";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "draco";
     rev = finalAttrs.version;
-    hash = "sha256-2YQMav0JJMbJ2bvnN/Xv90tjE/OWLbrZDO4WlaOvcfI=";
+    hash = "sha256-p0Mn4kGeBBKL7Hoz4IBgb6Go6MdkgE7WZgxAnt1tE/0=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/libraries/drogon/default.nix b/pkgs/development/libraries/drogon/default.nix
index b5aee15a3045..5919a45467dc 100644
--- a/pkgs/development/libraries/drogon/default.nix
+++ b/pkgs/development/libraries/drogon/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "drogon";
-  version = "1.9.1";
+  version = "1.9.2";
 
   src = fetchFromGitHub {
     owner = "drogonframework";
     repo = "drogon";
     rev = "v${finalAttrs.version}";
-    sha256 = "sha256-6F+LRcoBqHEbweqbVFHlR3I9nj1NaYty8zKcR4ZHKxg=";
+    sha256 = "sha256-/pLYBCwulHkHQAVEhuAlPUJSS/jc3uvGtU0Q0RWPNn0=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/libraries/editline/default.nix b/pkgs/development/libraries/editline/default.nix
index 15a056edb691..4f891a24f1f0 100644
--- a/pkgs/development/libraries/editline/default.nix
+++ b/pkgs/development/libraries/editline/default.nix
@@ -16,6 +16,14 @@ stdenv.mkDerivation rec {
       url = "https://github.com/troglobit/editline/commit/265c1fb6a0b99bedb157dc7c320f2c9629136518.patch";
       sha256 = "sha256-9fhQH0hT8BcykGzOUoT18HBtWjjoXnePSGDJQp8GH30=";
     })
+
+    # Pending autoconf-2.72 upstream support:
+    #   https://github.com/troglobit/editline/pull/64
+    (fetchpatch {
+      name = "autoconf-2.72.patch";
+      url = "https://github.com/troglobit/editline/commit/f444a316f5178b8e20fe31e7b2d979e651da077e.patch";
+      hash = "sha256-m3jExTkPvE+ZBwHzf/A+ugzzfbLmeWYn726l7Po7f10=";
+    })
   ];
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/development/libraries/enchant/2.x.nix b/pkgs/development/libraries/enchant/2.x.nix
index 43f9093848b8..c843fef4a0ef 100644
--- a/pkgs/development/libraries/enchant/2.x.nix
+++ b/pkgs/development/libraries/enchant/2.x.nix
@@ -22,6 +22,8 @@ stdenv.mkDerivation rec {
     hash = "sha256-wcVxnypZfOPgbJOM+5n7aX2gk96nuFfMAE3B3PG7oYI=";
   };
 
+  strictDeps = true;
+
   nativeBuildInputs = [
     groff
     pkg-config
@@ -33,7 +35,7 @@ stdenv.mkDerivation rec {
     nuspell
   ];
 
-  nativeCheckInputs = [
+  checkInputs = [
     unittest-cpp
   ];
 
diff --git a/pkgs/development/libraries/entt/default.nix b/pkgs/development/libraries/entt/default.nix
index 44e0b9ed1f05..2f7a86c7f113 100644
--- a/pkgs/development/libraries/entt/default.nix
+++ b/pkgs/development/libraries/entt/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchFromGitHub, cmake }:
 stdenv.mkDerivation rec {
   pname = "entt";
-  version = "3.12.2";
+  version = "3.13.1";
 
   src = fetchFromGitHub {
     owner = "skypjack";
     repo = "entt";
     rev = "v${version}";
-    sha256 = "sha256-gzoea3IbmpkIZYrfTZA6YgcnDU5EKdXF5Y7Yz2Uaj4A=";
+    hash = "sha256-TZuKgpLJCy3uct39SFSVi4b4lyldcfJ3AQNrz3OT3Ow=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/example-robot-data/default.nix b/pkgs/development/libraries/example-robot-data/default.nix
index 11b689838226..b2e665bbc4a9 100644
--- a/pkgs/development/libraries/example-robot-data/default.nix
+++ b/pkgs/development/libraries/example-robot-data/default.nix
@@ -8,14 +8,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "example-robot-data";
-  version = "4.0.9";
+  version = "4.1.0";
 
   src = fetchFromGitHub {
     owner = "Gepetto";
     repo = "example-robot-data";
     rev = "v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-dLW8QaQhTTDcE4QCP9uV4ykOqwc3nbPUmF1B77r8CHQ=";
+    hash = "sha256-Heq+c8SSYNO8ksTv5FphRBRStlTakm9T66jlPXon5tI=";
   };
 
   strictDeps = true;
diff --git a/pkgs/development/libraries/faudio/default.nix b/pkgs/development/libraries/faudio/default.nix
index 546824ec8e24..96734d7325c1 100644
--- a/pkgs/development/libraries/faudio/default.nix
+++ b/pkgs/development/libraries/faudio/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "faudio";
-  version = "24.01";
+  version = "24.02";
 
   src = fetchFromGitHub {
     owner = "FNA-XNA";
     repo = "FAudio";
     rev = version;
-    sha256 = "sha256-9/hgGrMtEz2CXZUPVMT1aSwDMlb+eQ9soTp1X1uME7I=";
+    sha256 = "sha256-xEieWgPNSpRJNYh65F2+NLXVZIlKA5ZE+959+s9zQ/I=";
   };
 
   nativeBuildInputs = [cmake];
diff --git a/pkgs/development/libraries/fbjni/default.nix b/pkgs/development/libraries/fbjni/default.nix
index 1a5228f4d860..20d47cac1fa3 100644
--- a/pkgs/development/libraries/fbjni/default.nix
+++ b/pkgs/development/libraries/fbjni/default.nix
@@ -19,12 +19,20 @@ stdenv.mkDerivation rec {
   };
 
   patches = [
+    # Upstram fix for builds on GCC 13. Should be removable with next release after 0.5.1
+    (fetchpatch {
+      name = "add-cstdint-include.patch";
+      url = "https://github.com/facebookincubator/fbjni/commit/59461eff6c7881d58e958287481e1f1cd99e08d3.patch";
+      hash = "sha256-r27C+ODTCZdd1tEz3cevnNNyZlrRhq1jOzwnIYlkglM=";
+    })
+
     # Part of https://github.com/facebookincubator/fbjni/pull/76
     # fix cmake file installation directory
     (fetchpatch {
       url = "https://github.com/facebookincubator/fbjni/commit/ab02e60b5da28647bfcc864b0bb1b9a90504cdb1.patch";
       sha256 = "sha256-/h6kosulRH/ZAU2u0zRSaNDK39jsnFt9TaSxyBllZqM=";
     })
+
     # install headers
     (fetchpatch {
       url = "https://github.com/facebookincubator/fbjni/commit/74e125caa9a815244f1e6bd08eaba57d015378b4.patch";
diff --git a/pkgs/development/libraries/ffmpeg/generic.nix b/pkgs/development/libraries/ffmpeg/generic.nix
index 9d4369003e47..0f5d88984566 100644
--- a/pkgs/development/libraries/ffmpeg/generic.nix
+++ b/pkgs/development/libraries/ffmpeg/generic.nix
@@ -44,7 +44,6 @@
 , withFreetype ? withHeadlessDeps # Needed for drawtext filter
 , withFrei0r ? withFullDeps # frei0r video filtering
 , withFribidi ? withFullDeps # Needed for drawtext filter
-, withGlslang ? withFullDeps && !stdenv.isDarwin && lib.versionAtLeast version "5.0"
 , withGme ? withFullDeps # Game Music Emulator
 , withGnutls ? withHeadlessDeps
 , withGsm ? withFullDeps # GSM de/encoder
@@ -73,6 +72,7 @@
 , withRtmp ? false # RTMP[E] support
 , withSamba ? withFullDeps && !stdenv.isDarwin # Samba protocol
 , withSdl2 ? withSmallDeps
+, withShaderc ? withFullDeps && !stdenv.isDarwin && lib.versionAtLeast version "5.0"
 , withSoxr ? withHeadlessDeps # Resampling via soxr
 , withSpeex ? withHeadlessDeps # Speex de/encoder
 , withSrt ? withHeadlessDeps # Secure Reliable Transport (SRT) protocol
@@ -189,7 +189,6 @@
 , frei0r
 , fribidi
 , game-music-emu
-, glslang
 , gnutls
 , gsm
 , intel-media-sdk
@@ -213,6 +212,7 @@
 , libopenmpt
 , libopus
 , libplacebo
+, libplacebo_5
 , libpulseaudio
 , libraw1394
 , librsvg
@@ -244,6 +244,7 @@
 , rtmpdump
 , samba
 , SDL2
+, shaderc
 , soxr
 , speex
 , srt
@@ -349,14 +350,14 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   patches = map (patch: fetchpatch patch) (extraPatches
-    ++ (lib.optional (lib.versionAtLeast version "6" && lib.versionOlder version "6.1")
+    ++ (lib.optional (lib.versionAtLeast finalAttrs.version "6" && lib.versionOlder finalAttrs.version "6.1")
       { # this can be removed post 6.1
         name = "fix_aacps_tablegen";
         url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/814178f92647be2411516bbb82f48532373d2554";
         hash = "sha256-FQV9/PiarPXCm45ldtCsxGHjlrriL8DKpn1LaKJ8owI=";
       }
     )
-    ++ (lib.optional (stdenv.isDarwin && lib.versionAtLeast version "6.1" && lib.versionOlder version "6.2")
+    ++ (lib.optional (lib.versionAtLeast finalAttrs.version "6.1" && lib.versionOlder finalAttrs.version "6.2")
       { # this can be removed post 6.1
         name = "fix_build_failure_due_to_PropertyKey_EncoderID";
         url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/cb049d377f54f6b747667a93e4b719380c3e9475";
@@ -416,7 +417,7 @@ stdenv.mkDerivation (finalAttrs: {
     (enableFeature buildAvdevice "avdevice")
     (enableFeature buildAvfilter "avfilter")
     (enableFeature buildAvformat "avformat")
-  ] ++ optionals (lib.versionOlder version "5") [
+  ] ++ optionals (lib.versionOlder finalAttrs.version "5") [
     # Ffmpeg > 4 doesn't know about the flag anymore
     (enableFeature buildAvresample "avresample")
   ] ++ [
@@ -476,7 +477,7 @@ stdenv.mkDerivation (finalAttrs: {
     (enableFeature withModplug "libmodplug")
     (enableFeature withMysofa "libmysofa")
     (enableFeature withOpus "libopus")
-    (optionalString (versionAtLeast version "5.0" && withLibplacebo) "--enable-libplacebo")
+    (optionalString (versionAtLeast finalAttrs.version "5.0" && withLibplacebo) "--enable-libplacebo")
     (enableFeature withSvg "librsvg")
     (enableFeature withSrt "libsrt")
     (enableFeature withSsh "libssh")
@@ -524,7 +525,7 @@ stdenv.mkDerivation (finalAttrs: {
     (enableFeature withZimg "libzimg")
     (enableFeature withZlib "zlib")
     (enableFeature withVulkan "vulkan")
-    (enableFeature withGlslang "libglslang")
+    (optionalString (lib.versionAtLeast finalAttrs.version "5") (enableFeature withShaderc "libshaderc"))
     (enableFeature withSamba "libsmbclient")
     /*
      * Developer flags
@@ -560,7 +561,7 @@ stdenv.mkDerivation (finalAttrs: {
   # TODO This was always in buildInputs before, why?
   buildInputs = optionals withFullDeps [ libdc1394 ]
   ++ optionals (withFullDeps && !stdenv.isDarwin) [ libraw1394 ] # TODO where does this belong to
-  ++ optionals (withNvdec || withNvenc) [ (if (lib.versionAtLeast version "6") then nv-codec-headers-12 else nv-codec-headers) ]
+  ++ optionals (withNvdec || withNvenc) [ (if (lib.versionAtLeast finalAttrs.version "6") then nv-codec-headers-12 else nv-codec-headers) ]
   ++ optionals withAlsa [ alsa-lib ]
   ++ optionals withAom [ libaom ]
   ++ optionals withAribcaption [ libaribcaption ]
@@ -577,14 +578,13 @@ stdenv.mkDerivation (finalAttrs: {
   ++ optionals withFreetype [ freetype ]
   ++ optionals withFrei0r [ frei0r ]
   ++ optionals withFribidi [ fribidi ]
-  ++ optionals withGlslang [ glslang ]
   ++ optionals withGme [ game-music-emu ]
   ++ optionals withGnutls [ gnutls ]
   ++ optionals withGsm [ gsm ]
   ++ optionals withIconv [ libiconv ] # On Linux this should be in libc, do we really need it?
   ++ optionals withJack [ libjack2 ]
   ++ optionals withLadspa [ ladspaH ]
-  ++ optionals withLibplacebo [ libplacebo vulkan-headers ]
+  ++ optionals withLibplacebo [ (if (lib.versionAtLeast finalAttrs.version "6.1") then libplacebo else libplacebo_5) vulkan-headers ]
   ++ optionals withLzma [ xz ]
   ++ optionals withMfx [ intel-media-sdk ]
   ++ optionals withModplug [ libmodplug ]
@@ -604,6 +604,7 @@ stdenv.mkDerivation (finalAttrs: {
   ++ optionals withRtmp [ rtmpdump ]
   ++ optionals withSamba [ samba ]
   ++ optionals withSdl2 [ SDL2 ]
+  ++ optionals withShaderc [ shaderc ]
   ++ optionals withSoxr [ soxr ]
   ++ optionals withSpeex [ speex ]
   ++ optionals withSrt [ srt ]
@@ -692,7 +693,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     description = "A complete, cross-platform solution to record, convert and stream audio and video";
     homepage = "https://www.ffmpeg.org/";
-    changelog = "https://github.com/FFmpeg/FFmpeg/blob/n${version}/Changelog";
+    changelog = "https://github.com/FFmpeg/FFmpeg/blob/n${finalAttrs.version}/Changelog";
     longDescription = ''
       FFmpeg is the leading multimedia framework, able to decode, encode, transcode,
       mux, demux, stream, filter and play pretty much anything that humans and machines
diff --git a/pkgs/development/libraries/folly/default.nix b/pkgs/development/libraries/folly/default.nix
index 4d98c163c6d3..22d395785434 100644
--- a/pkgs/development/libraries/folly/default.nix
+++ b/pkgs/development/libraries/folly/default.nix
@@ -4,7 +4,6 @@
 , boost
 , cmake
 , double-conversion
-, fetchpatch
 , fmt_8
 , gflags
 , glog
@@ -64,12 +63,21 @@ stdenv.mkDerivation rec {
     # temporary hack until folly builds work on aarch64,
     # see https://github.com/facebook/folly/issues/1880
     "-DCMAKE_LIBRARY_ARCHITECTURE=${if stdenv.isx86_64 then "x86_64" else "dummy"}"
+
+    # ensure correct dirs in $dev/lib/pkgconfig/libfolly.pc
+    # see https://github.com/NixOS/nixpkgs/issues/144170
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
   ];
 
+  # split outputs to reduce downstream closure sizes
+  outputs = [ "out" "dev" ];
+
+  # patch prefix issues again
+  # see https://github.com/NixOS/nixpkgs/issues/144170
   postFixup = ''
-    substituteInPlace "$out"/lib/pkgconfig/libfolly.pc \
-      --replace '=''${prefix}//' '=/' \
-      --replace '=''${exec_prefix}//' '=/'
+    substituteInPlace $dev/lib/cmake/${pname}/${pname}-targets-release.cmake  \
+      --replace '$'{_IMPORT_PREFIX}/lib/ $out/lib/
   '';
 
   # folly-config.cmake, will `find_package` these, thus there should be
diff --git a/pkgs/development/libraries/fontconfig/default.nix b/pkgs/development/libraries/fontconfig/default.nix
index eadb30352e9a..9ff72c202193 100644
--- a/pkgs/development/libraries/fontconfig/default.nix
+++ b/pkgs/development/libraries/fontconfig/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchurl
-, fetchpatch2
 , pkg-config
 , python3
 , freetype
@@ -15,25 +14,15 @@
 
 stdenv.mkDerivation rec {
   pname = "fontconfig";
-  version = "2.14.2";
+  version = "2.15.0";
 
   outputs = [ "bin" "dev" "lib" "out" ]; # $out contains all the config
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/fontconfig/release/${pname}-${version}.tar.xz";
-    hash = "sha256-26aVtXvOFQI9LO7e+CBiwrkl5R9dTMSu9zbPE/YKRos=";
+    hash = "sha256-Y6BljQ4G4PqIYQZFK1jvBPIfWCAuoCqUw53g0zNdfA4=";
   };
 
-  patches = [
-    # Provide 11-lcdfilter-none.conf for NixOS module
-    # https://gitlab.freedesktop.org/fontconfig/fontconfig/-/merge_requests/268
-    (fetchpatch2 {
-      name = "add-optional-11-lcdfilter-none-configuration.patch";
-      url = "https://gitlab.freedesktop.org/fontconfig/fontconfig/-/commit/c2666a6d9a6ed18b1bfcef8176e25f62993e24db.patch";
-      hash = "sha256-UBzkxy3uxFO+g0aQtPnBZv7OncgQdinwzNwWS8ngjcE=";
-    })
-  ];
-
   nativeBuildInputs = [
     autoreconfHook
     gperf
diff --git a/pkgs/development/libraries/fontconfig/make-fonts-conf.nix b/pkgs/development/libraries/fontconfig/make-fonts-conf.nix
index aa84de4dcecd..cfe0a21e1d35 100644
--- a/pkgs/development/libraries/fontconfig/make-fonts-conf.nix
+++ b/pkgs/development/libraries/fontconfig/make-fonts-conf.nix
@@ -1,16 +1,29 @@
-{ runCommand, stdenv, lib, libxslt, fontconfig, dejavu_fonts, fontDirectories }:
+{ runCommand, stdenv, lib, libxslt, fontconfig, dejavu_fonts, fontDirectories
+, impureFontDirectories ? [
+    # nix user profile
+    "~/.nix-profile/lib/X11/fonts" "~/.nix-profile/share/fonts"
+  ]
+  ++ lib.optional stdenv.isDarwin "~/Library/Fonts"
+  ++ [
+    # FHS paths for non-NixOS platforms
+    "/usr/share/fonts" "/usr/local/share/fonts"
+  ]
+  # darwin paths
+  ++ lib.optionals stdenv.isDarwin [ "/Library/Fonts" "/System/Library/Fonts" ]
+  # nix default profile
+  ++ [ "/nix/var/nix/profiles/default/lib/X11/fonts" "/nix/var/nix/profiles/default/share/fonts" ] }:
 
 runCommand "fonts.conf"
   {
     nativeBuildInputs = [ libxslt ];
     buildInputs = [ fontconfig ];
+    inherit fontDirectories;
     # Add a default font for non-nixos systems, <1MB and in nixos defaults.
-    fontDirectories = fontDirectories ++ [ dejavu_fonts.minimal ]
-      # further non-nixos fonts on darwin
-      ++ lib.optionals stdenv.isDarwin [ "/System/Library/Fonts" "/Library/Fonts" "~/Library/Fonts" ];
+    impureFontDirectories = impureFontDirectories ++ [ dejavu_fonts.minimal ];
   }
   ''
     xsltproc --stringparam fontDirectories "$fontDirectories" \
+      --stringparam impureFontDirectories "$impureFontDirectories" \
       --path ${fontconfig.out}/share/xml/fontconfig \
       ${./make-fonts-conf.xsl} ${fontconfig.out}/etc/fonts/fonts.conf \
       > $out
diff --git a/pkgs/development/libraries/fontconfig/make-fonts-conf.xsl b/pkgs/development/libraries/fontconfig/make-fonts-conf.xsl
index ed51b62a1d08..d04e4ffab967 100644
--- a/pkgs/development/libraries/fontconfig/make-fonts-conf.xsl
+++ b/pkgs/development/libraries/fontconfig/make-fonts-conf.xsl
@@ -15,6 +15,7 @@
   <xsl:output method='xml' encoding="UTF-8" doctype-system="urn:fontconfig:fonts.dtd" />
 
   <xsl:param name="fontDirectories" />
+  <xsl:param name="impureFontDirectories" />
 
   <xsl:template match="/fontconfig">
 
@@ -23,29 +24,26 @@
 
       <!-- the first cachedir will be used to store the cache -->
       <cachedir prefix="xdg">fontconfig</cachedir>
+      <xsl:text>&#0010;</xsl:text>
       <!-- /var/cache/fontconfig is useful for non-nixos systems -->
       <cachedir>/var/cache/fontconfig</cachedir>
+      <xsl:text>&#0010;</xsl:text>
 
       <!-- system-wide config -->
       <include ignore_missing="yes">/etc/fonts/conf.d</include>
+      <xsl:text>&#0010;</xsl:text>
 
       <dir prefix="xdg">fonts</dir>
+      <xsl:text>&#0010;</xsl:text>
       <xsl:for-each select="str:tokenize($fontDirectories)">
         <dir><xsl:value-of select="." /></dir>
         <xsl:text>&#0010;</xsl:text>
       </xsl:for-each>
 
-      <!-- nix user profile -->
-      <dir>~/.nix-profile/lib/X11/fonts</dir>
-      <dir>~/.nix-profile/share/fonts</dir>
-
-      <!-- FHS paths for non-NixOS platforms -->
-      <dir>/usr/share/fonts</dir>
-      <dir>/usr/local/share/fonts</dir>
-
-      <!-- nix default profile -->
-      <dir>/nix/var/nix/profiles/default/lib/X11/fonts</dir>
-      <dir>/nix/var/nix/profiles/default/share/fonts</dir>
+      <xsl:for-each select="str:tokenize($impureFontDirectories)">
+        <dir><xsl:value-of select="." /></dir>
+        <xsl:text>&#0010;</xsl:text>
+      </xsl:for-each>
 
     </fontconfig>
 
diff --git a/pkgs/development/libraries/functionalplus/default.nix b/pkgs/development/libraries/functionalplus/default.nix
index b456dd887344..af25030ab560 100644
--- a/pkgs/development/libraries/functionalplus/default.nix
+++ b/pkgs/development/libraries/functionalplus/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "functionalplus";
-  version = "0.2.20-p0";
+  version = "0.2.22";
 
   src = fetchFromGitHub {
     owner = "Dobiasd";
     repo = "FunctionalPlus";
     rev = "v${version}";
-    sha256 = "sha256-PKd3gx63VTxyq1q0v7WaKXVA0oICpZQfVsKsgUml9wk=";
+    sha256 = "sha256-y0IRmgG9lhWO4IR4G9/VP2a3B+ORTnF7MCf4FU5EuMk=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/gcr/default.nix b/pkgs/development/libraries/gcr/default.nix
index 0f03e9184e19..1fec6100bf2b 100644
--- a/pkgs/development/libraries/gcr/default.nix
+++ b/pkgs/development/libraries/gcr/default.nix
@@ -26,13 +26,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gcr";
-  version = "3.41.1";
+  version = "3.41.2";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "u3Eoo8L+u/7pwDuQ131JjQzrI3sHiYAtYBhcccS+ok8=";
+    sha256 = "utEPPFU6DhhUZJq1nFskNNoiyhpUrmE48fU5YVZ+Grc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/gd/default.nix b/pkgs/development/libraries/gd/default.nix
index c9845feb9678..af96d9d06d27 100644
--- a/pkgs/development/libraries/gd/default.nix
+++ b/pkgs/development/libraries/gd/default.nix
@@ -44,8 +44,8 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoconf automake pkg-config ];
 
-  buildInputs = [ zlib fontconfig freetype libpng libjpeg libwebp libtiff libavif ]
-    ++ lib.optional withXorg libXpm;
+  buildInputs = [ zlib freetype libpng libjpeg libwebp libtiff libavif ]
+    ++ lib.optionals withXorg [ fontconfig libXpm ];
 
   outputs = [ "bin" "dev" "out" ];
 
diff --git a/pkgs/development/libraries/gdcm/default.nix b/pkgs/development/libraries/gdcm/default.nix
index 2a4fdaca2725..9d6db6fca684 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.22";
+  version = "3.0.23";
 
   src = fetchFromGitHub {
     owner = "malaterre";
     repo = "GDCM";
     rev = "refs/tags/v${version}";
-    hash = "sha256-geWNGbBJGKPs5hNO42vtVOj0rOWyM6zmcocvRhWW4s0=";
+    hash = "sha256-zwIPWcjTrfbdNBzAqwV6lU2l6sx+e4Yi7dprdem6AeE=";
   };
 
   cmakeFlags = [
diff --git a/pkgs/development/libraries/glfw/3.x.nix b/pkgs/development/libraries/glfw/3.x.nix
index 4e01ca5c2b6e..01db789a60bd 100644
--- a/pkgs/development/libraries/glfw/3.x.nix
+++ b/pkgs/development/libraries/glfw/3.x.nix
@@ -6,14 +6,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "3.3.8";
+  version = "3.3.9";
   pname = "glfw";
 
   src = fetchFromGitHub {
     owner = "glfw";
     repo = "GLFW";
     rev = version;
-    sha256 = "sha256-4+H0IXjAwbL5mAWfsIVhW0BSJhcWjkQx4j2TrzZ3aIo=";
+    sha256 = "sha256-DlPRNGCBr6XF9Jn8kWs5lCRTyjPeDt/69PNDzBDhoyg=";
   };
 
   # Fix linkage issues on X11 (https://github.com/NixOS/nixpkgs/issues/142583)
diff --git a/pkgs/development/libraries/glibmm/2.68.nix b/pkgs/development/libraries/glibmm/2.68.nix
index 187ca8655962..c3c444f407e0 100644
--- a/pkgs/development/libraries/glibmm/2.68.nix
+++ b/pkgs/development/libraries/glibmm/2.68.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "glibmm";
-  version = "2.78.0";
+  version = "2.78.1";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-XS6HJWSZbwKgbYu6w2d+fDlK+LAN0VJq69R6+EKj71A=";
+    sha256 = "sha256-9HPyl10mw0CeES7RHtNkBvs4Q/qXXfV1wi1MuEMIX2E=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/gnutls/default.nix b/pkgs/development/libraries/gnutls/default.nix
index bbbdf19a1909..b8c95653e366 100644
--- a/pkgs/development/libraries/gnutls/default.nix
+++ b/pkgs/development/libraries/gnutls/default.nix
@@ -35,11 +35,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "gnutls";
-  version = "3.8.2";
+  version = "3.8.3";
 
   src = fetchurl {
     url = "mirror://gnupg/gnutls/v${lib.versions.majorMinor version}/gnutls-${version}.tar.xz";
-    hash = "sha256-52XlAW/6m53SQ+NjoEYNV3B0RE7iSRJn2y6WycKt73c=";
+    hash = "sha256-90/FlUsn1Oxt+7Ed6ph4iLWxJCiaNwOvytoO5SD0Fz4=";
   };
 
   outputs = [ "bin" "dev" "out" "man" "devdoc" ];
diff --git a/pkgs/development/libraries/gperftools/default.nix b/pkgs/development/libraries/gperftools/default.nix
index da40c66e9fe5..132ae64577a7 100644
--- a/pkgs/development/libraries/gperftools/default.nix
+++ b/pkgs/development/libraries/gperftools/default.nix
@@ -4,6 +4,7 @@
 , fetchpatch
 , autoreconfHook
 , libunwind
+, perl
 }:
 
 stdenv.mkDerivation rec {
@@ -29,7 +30,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook ];
 
   # tcmalloc uses libunwind in a way that works correctly only on non-ARM dynamically linked linux
-  buildInputs = lib.optional (stdenv.isLinux && !(stdenv.hostPlatform.isAarch || stdenv.hostPlatform.isStatic )) libunwind;
+  buildInputs = [ perl ]
+             ++ lib.optional (stdenv.isLinux && !(stdenv.hostPlatform.isAarch || stdenv.hostPlatform.isStatic )) libunwind;
 
   # Disable general dynamic TLS on AArch to support dlopen()'ing the library:
   # https://bugzilla.redhat.com/show_bug.cgi?id=1483558
diff --git a/pkgs/development/libraries/highfive/default.nix b/pkgs/development/libraries/highfive/default.nix
index de9dd9642499..364c99fa2923 100644
--- a/pkgs/development/libraries/highfive/default.nix
+++ b/pkgs/development/libraries/highfive/default.nix
@@ -12,13 +12,13 @@ assert mpiSupport -> mpi != null;
 
 stdenv.mkDerivation rec {
   pname = "highfive${lib.optionalString mpiSupport "-mpi"}";
-  version = "2.8.0";
+  version = "2.9.0";
 
   src = fetchFromGitHub {
     owner = "BlueBrain";
     repo = "HighFive";
     rev = "v${version}";
-    sha256 = "sha256-INDQ0RqPMSsKXQ/QVDhpCg4qzghLA3zQUViduflLUFY=";
+    sha256 = "sha256-4n7J0qf4josYVsbVF4u+NLdecpA9gqHXCfibr0QfyJ4=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/hpp-fcl/default.nix b/pkgs/development/libraries/hpp-fcl/default.nix
index 98748de393d5..c91d3cbaac4f 100644
--- a/pkgs/development/libraries/hpp-fcl/default.nix
+++ b/pkgs/development/libraries/hpp-fcl/default.nix
@@ -14,14 +14,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "hpp-fcl";
-  version = "2.4.0";
+  version = "2.4.1";
 
   src = fetchFromGitHub {
     owner = "humanoid-path-planner";
     repo = finalAttrs.pname;
     rev = "v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-qeAO1FV28L2nbQ/2mDeLMuWS2+FexQ1ORCtt+ztWHj0=";
+    hash = "sha256-Suow6dvDZI0uS/CkzfkWIxYjn+i4Fbyd2EnqlxM2gMY=";
   };
 
   strictDeps = true;
diff --git a/pkgs/development/libraries/httplib/default.nix b/pkgs/development/libraries/httplib/default.nix
index a65440848bee..ad27a98fa60b 100644
--- a/pkgs/development/libraries/httplib/default.nix
+++ b/pkgs/development/libraries/httplib/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "httplib";
-  version = "0.14.3";
+  version = "0.15.2";
 
   src = fetchFromGitHub {
     owner = "yhirose";
     repo = "cpp-httplib";
     rev = "v${version}";
-    hash = "sha256-53EBZTpz0INtjVSmjvg7XOQf0Bs2ADVe2//+nK6xRyE=";
+    hash = "sha256-DNktnRckqiZf0EQ96LfweDvBNgcX8u3Gry1LCs/Qj74=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/igraph/default.nix b/pkgs/development/libraries/igraph/default.nix
index f8232c35dc01..b0017e03ebc7 100644
--- a/pkgs/development/libraries/igraph/default.nix
+++ b/pkgs/development/libraries/igraph/default.nix
@@ -26,21 +26,17 @@ assert (blas.isILP64 == lapack.isILP64 &&
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "igraph";
-  version = "0.10.8";
+  version = "0.10.9";
 
   src = fetchFromGitHub {
     owner = "igraph";
     repo = finalAttrs.pname;
     rev = finalAttrs.version;
-    hash = "sha256-suma1iS9NdJwU/4EQl6qoFyD4bErLSkY+0yxgh3dHkw=";
+    hash = "sha256-Iaez6Rrd684vsraCkEH5a16rXfc53MyPXcYf3sOcaOY=";
   };
 
   postPatch = ''
     echo "${finalAttrs.version}" > IGRAPH_VERSION
-  ''
-  # https://github.com/igraph/igraph/issues/2340
-  + lib.optionalString stdenv.isDarwin ''
-    sed -i "/safelocale/d" tests/CMakeLists.txt
   '';
 
   outputs = [ "out" "dev" "doc" ];
@@ -92,7 +88,10 @@ stdenv.mkDerivation (finalAttrs: {
     cp -r doc "$out/share"
   '';
 
-  postFixup = lib.optionalString stdenv.isDarwin ''
+  postFixup = ''
+    substituteInPlace $dev/lib/cmake/igraph/igraph-targets.cmake \
+      --replace-fail "_IMPORT_PREFIX \"$out\"" "_IMPORT_PREFIX \"$dev\""
+  '' + lib.optionalString stdenv.isDarwin ''
     install_name_tool -change libblas.dylib ${blas}/lib/libblas.dylib $out/lib/libigraph.dylib
   '';
 
diff --git a/pkgs/development/libraries/imgui/default.nix b/pkgs/development/libraries/imgui/default.nix
index 73bc80ef9d5b..79186d9149f7 100644
--- a/pkgs/development/libraries/imgui/default.nix
+++ b/pkgs/development/libraries/imgui/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "imgui";
-  version = "1.90";
+  version = "1.90.1";
 
   src = fetchFromGitHub {
     owner = "ocornut";
     repo = "imgui";
     rev = "v${version}";
-    sha256 = "sha256-rJMWCPVhho34NcPvJZaB5d6EbZkJyLXEfeotplOOaiA=";
+    sha256 = "sha256-gf47uLeNiXQic43buB5ZnMqiotlUfIyAsP+3H7yJuFg=";
   };
 
   dontBuild = true;
diff --git a/pkgs/development/libraries/imtui/default.nix b/pkgs/development/libraries/imtui/default.nix
index e534a55ae5a4..86b488c1a888 100644
--- a/pkgs/development/libraries/imtui/default.nix
+++ b/pkgs/development/libraries/imtui/default.nix
@@ -8,6 +8,7 @@
 , withCurl ? (!withEmscripten), curl
 , withNcurses ? (!withEmscripten), ncurses
 , static ? withEmscripten
+, darwin
 }:
 
 stdenv.mkDerivation rec {
@@ -25,10 +26,14 @@ stdenv.mkDerivation rec {
 
   buildInputs = lib.optional withEmscripten emscripten
     ++ lib.optional withCurl curl
-    ++ lib.optional withNcurses ncurses;
+    ++ lib.optional withNcurses ncurses
+    ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Cocoa;
 
   postPatch = ''
     cp -r ${imgui}/include/imgui third-party/imgui
+  '' + lib.optionalString (lib.versionAtLeast imgui.version "1.90.1") ''
+    substituteInPlace src/imtui-impl-{emscripten,ncurses}.cpp \
+      --replace "ImGuiKey_KeyPadEnter" "ImGuiKey_KeypadEnter"
   '';
 
   cmakeFlags = [
@@ -54,5 +59,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/ggerganov/imtui/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ azahi ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/intel-gmmlib/default.nix b/pkgs/development/libraries/intel-gmmlib/default.nix
index 4cd31f74058b..58eba3ddc6d9 100644
--- a/pkgs/development/libraries/intel-gmmlib/default.nix
+++ b/pkgs/development/libraries/intel-gmmlib/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "intel-gmmlib";
-  version = "22.3.16";
+  version = "22.3.17";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "gmmlib";
     rev = "intel-gmmlib-${version}";
-    sha256 = "sha256-6cN7qnFpVe362u4o0bZMKlUq1/eCpPZF0nBgon9Eav4=";
+    sha256 = "sha256-9utlENByIQSayKTdSJapLBWMI2gFpOReNZe7bpbEoj8=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/isa-l/default.nix b/pkgs/development/libraries/isa-l/default.nix
index a8b0afa41d21..d81f1120742a 100644
--- a/pkgs/development/libraries/isa-l/default.nix
+++ b/pkgs/development/libraries/isa-l/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "isa-l";
-  version = "2.30.0";
+  version = "2.31.0";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "isa-l";
     rev = "v${version}";
-    sha256 = "sha256-AAuSdDQfDW4QFRu0jHwCZ+ZCSjoVqlQiSW1OOFye1Rs=";
+    sha256 = "sha256-xBBtpjtWyba0DogdLobtuWmiiAHTXMK4oRnjYuTUCNk=";
   };
 
   nativeBuildInputs = [ nasm autoreconfHook ];
diff --git a/pkgs/development/libraries/itk/generic.nix b/pkgs/development/libraries/itk/generic.nix
index e2db993707e2..652fce4a6797 100644
--- a/pkgs/development/libraries/itk/generic.nix
+++ b/pkgs/development/libraries/itk/generic.nix
@@ -1,6 +1,6 @@
 { version, rev, sourceSha256 }:
 
-{ lib, stdenv, fetchFromGitHub, cmake
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake
 , expat, fftw, gdcm, hdf5-cpp, libjpeg, libminc, libtiff, libpng
 , libX11, libuuid, xz, vtk, zlib, Cocoa }:
 
@@ -38,6 +38,14 @@ stdenv.mkDerivation {
     sha256 = sourceSha256;
   };
 
+  patches = [
+    (fetchpatch {
+      name = "fix-gcc13-build";
+      url = "https://github.com/InsightSoftwareConsortium/ITK/commit/9a719a0d2f5f489eeb9351b0ef913c3693147a4f.patch";
+      hash = "sha256-dDyqYOzo91afR8W7k2N64X6l7t6Ws1C9iuRkWHUe0fg=";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace CMake/ITKSetStandardCompilerFlags.cmake  \
       --replace "-march=corei7" ""  \
diff --git a/pkgs/development/libraries/jellyfin-ffmpeg/default.nix b/pkgs/development/libraries/jellyfin-ffmpeg/default.nix
index 7109a5d6dfd1..942f23cb10e6 100644
--- a/pkgs/development/libraries/jellyfin-ffmpeg/default.nix
+++ b/pkgs/development/libraries/jellyfin-ffmpeg/default.nix
@@ -15,6 +15,9 @@ ffmpeg_6-full.overrideAttrs (old: rec {
     hash = "sha256-LMwGxx++z6TpZLnpeRGraid4653Mp8T4pY5EP4Z7GXY=";
   };
 
+  # Clobber upstream patches as they don't apply to the Jellyfin fork
+  patches = [];
+
   buildInputs = old.buildInputs ++ [ chromaprint ];
 
   configureFlags = old.configureFlags ++ [
diff --git a/pkgs/development/libraries/kde-frameworks/fetch.sh b/pkgs/development/libraries/kde-frameworks/fetch.sh
index 590818546a4b..a6797786ee53 100644
--- a/pkgs/development/libraries/kde-frameworks/fetch.sh
+++ b/pkgs/development/libraries/kde-frameworks/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.kde.org/stable/frameworks/5.113/ -A '*.tar.xz' )
+WGET_ARGS=( https://download.kde.org/stable/frameworks/5.114/ -A '*.tar.xz' )
diff --git a/pkgs/development/libraries/kde-frameworks/srcs.nix b/pkgs/development/libraries/kde-frameworks/srcs.nix
index 06b5e6b04cfa..d51c74cc4e64 100644
--- a/pkgs/development/libraries/kde-frameworks/srcs.nix
+++ b/pkgs/development/libraries/kde-frameworks/srcs.nix
@@ -4,667 +4,667 @@
 
 {
   attica = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/attica-5.113.0.tar.xz";
-      sha256 = "0p6n2jvky5x9gpwmp31mdxf0bzywaljgnkszgbklyc35xk9i6j14";
-      name = "attica-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/attica-5.114.0.tar.xz";
+      sha256 = "0gkdsm1vyyyxxyl4rni9s2bdz5w6zphzjl58fddjl899da06hqfq";
+      name = "attica-5.114.0.tar.xz";
     };
   };
   baloo = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/baloo-5.113.0.tar.xz";
-      sha256 = "1jv7202dj2w0vcv49bgp0iv1sfy3kdqr974rcr77pcfzhhda9bix";
-      name = "baloo-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/baloo-5.114.0.tar.xz";
+      sha256 = "19sib1y0m5h2gnnpr9rfk810p6pdfm4zzxlm0a44r7910llp8i50";
+      name = "baloo-5.114.0.tar.xz";
     };
   };
   bluez-qt = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/bluez-qt-5.113.0.tar.xz";
-      sha256 = "1y6nkl9zc5298jc6klxz88h6srmma085w1q5l4jmjihgys2zkcx7";
-      name = "bluez-qt-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/bluez-qt-5.114.0.tar.xz";
+      sha256 = "1ni50jwnb5ww8mkql0p3q8660c0srj8p0ik27lvxakwdq4wf6l9s";
+      name = "bluez-qt-5.114.0.tar.xz";
     };
   };
   breeze-icons = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/breeze-icons-5.113.0.tar.xz";
-      sha256 = "0kb3wchx84dpi77zsi1b9pzlkhg3sjagxcsf1pdappagq3xn1p48";
-      name = "breeze-icons-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/breeze-icons-5.114.0.tar.xz";
+      sha256 = "0z5cpv10jyjdwjfkm7nj6hyp4vj29apm476hvbpb4gan27jyb91y";
+      name = "breeze-icons-5.114.0.tar.xz";
     };
   };
   extra-cmake-modules = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/extra-cmake-modules-5.113.0.tar.xz";
-      sha256 = "1i1vpf9860cwrq5b01yrgf94hmzk9dx637j638shgjmyxr058pi6";
-      name = "extra-cmake-modules-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/extra-cmake-modules-5.114.0.tar.xz";
+      sha256 = "0z4nqravsfzlsgvkg5rha2d0qxfr3pfncw7z2fxzzqvzj7mfk6im";
+      name = "extra-cmake-modules-5.114.0.tar.xz";
     };
   };
   frameworkintegration = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/frameworkintegration-5.113.0.tar.xz";
-      sha256 = "17i7frachq23kfg78ar33x5acwf7pmwl1a5c02qif44mml8b09hi";
-      name = "frameworkintegration-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/frameworkintegration-5.114.0.tar.xz";
+      sha256 = "1dqgzhhh8gnvl8jsvh2i6pjn935d61avh63b4z9kpllhvp9a2lnd";
+      name = "frameworkintegration-5.114.0.tar.xz";
     };
   };
   kactivities = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kactivities-5.113.0.tar.xz";
-      sha256 = "1d9lkhp344wdss9vab3gh9h31f1k6fifdhp17fblpkykgyvbb26y";
-      name = "kactivities-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kactivities-5.114.0.tar.xz";
+      sha256 = "10pyynqz8c22la9aqms080iqlisj3irbi1kwnn3s0vg5dsjxr1p3";
+      name = "kactivities-5.114.0.tar.xz";
     };
   };
   kactivities-stats = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kactivities-stats-5.113.0.tar.xz";
-      sha256 = "136z2njw3k2l71xp4vg10sm5q925xh8yfr9a784wnr0kwngdb71i";
-      name = "kactivities-stats-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kactivities-stats-5.114.0.tar.xz";
+      sha256 = "1zhrs2p3c831rwx7ww87i82k5i236vfywdxv7zhz93k3vffyqby7";
+      name = "kactivities-stats-5.114.0.tar.xz";
     };
   };
   kapidox = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kapidox-5.113.0.tar.xz";
-      sha256 = "05407c01wnjyslbbz0w5wipjpx6ng3izya41mg13g700ainj9q1x";
-      name = "kapidox-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kapidox-5.114.0.tar.xz";
+      sha256 = "0xxw3lvipyax8r1af3ypwjj6waarbp2z9n11fjb4kvyigsypglmb";
+      name = "kapidox-5.114.0.tar.xz";
     };
   };
   karchive = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/karchive-5.113.0.tar.xz";
-      sha256 = "03a3p85hmx4ycfp0y5l9yw4cy3i9jwy7jd27psmckr4q0538k91d";
-      name = "karchive-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/karchive-5.114.0.tar.xz";
+      sha256 = "015gc1zarny8r478p7g9m6r67l5dk3r0vcp28ilmfmznxy0k0hda";
+      name = "karchive-5.114.0.tar.xz";
     };
   };
   kauth = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kauth-5.113.0.tar.xz";
-      sha256 = "0ncpyq2l53p4yhhxkvk23x0ji9amrbnm6kbz8dp573cqww79pih2";
-      name = "kauth-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kauth-5.114.0.tar.xz";
+      sha256 = "1rkf9mc9718wn8pzd3d3wcg3lsn0vkr9a2cqnz86rbg3cf2qdbir";
+      name = "kauth-5.114.0.tar.xz";
     };
   };
   kbookmarks = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kbookmarks-5.113.0.tar.xz";
-      sha256 = "1fgnh8amy2ghn50i59al0iyqvj05pzdxai9qxqzbvi65f1pibi7d";
-      name = "kbookmarks-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kbookmarks-5.114.0.tar.xz";
+      sha256 = "06lnsyjhh80mdcqjww40glinmrjydbmkhv27a267vf34r7kam9rc";
+      name = "kbookmarks-5.114.0.tar.xz";
     };
   };
   kcalendarcore = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kcalendarcore-5.113.0.tar.xz";
-      sha256 = "18psjzqcfzaplcfjpjda983mrpv306il0j49q3rm9hj9ycj54wc2";
-      name = "kcalendarcore-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kcalendarcore-5.114.0.tar.xz";
+      sha256 = "0aimda01zqw4fz5ldvz4vh767bi10r00kvm62n89nxhsq46wlk7p";
+      name = "kcalendarcore-5.114.0.tar.xz";
     };
   };
   kcmutils = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kcmutils-5.113.0.tar.xz";
-      sha256 = "1xbfzw2zfl966zp70jzfp3hjzn334zf4hnwr82priffafgrin57s";
-      name = "kcmutils-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kcmutils-5.114.0.tar.xz";
+      sha256 = "1pblf3c60m0gn3vhdprw28f8y54kij02jwz91r2vnmng8d1xkrp9";
+      name = "kcmutils-5.114.0.tar.xz";
     };
   };
   kcodecs = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kcodecs-5.113.0.tar.xz";
-      sha256 = "1xvaq0yg4n4lwyq3yx2m8jrvfg7f0qrwgxxam4rmp2l245bvn34i";
-      name = "kcodecs-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kcodecs-5.114.0.tar.xz";
+      sha256 = "080zvcqd8iq05p5x3qaf3rryx75lg2l2j1dr18sp50ir50zfwh2w";
+      name = "kcodecs-5.114.0.tar.xz";
     };
   };
   kcompletion = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kcompletion-5.113.0.tar.xz";
-      sha256 = "016280h98j1ssvc3a4b3vyh4s93s9y9hn1jrpbfbkm9xxnvi7k79";
-      name = "kcompletion-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kcompletion-5.114.0.tar.xz";
+      sha256 = "0qvdxqlh1dklkbmqfjg5gc3dkdicgzn6q5lgvyf8cv46dinj6mwc";
+      name = "kcompletion-5.114.0.tar.xz";
     };
   };
   kconfig = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kconfig-5.113.0.tar.xz";
-      sha256 = "0fwhn3yp4gfwjiy5dx7gs0zd65yjlrrzkqpy7fpg7n97qf99q2a8";
-      name = "kconfig-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kconfig-5.114.0.tar.xz";
+      sha256 = "0hghdh4p6cq9ckp4g5jdgd8w47pdsxxvzimrdfjrs71lmy8ydiy2";
+      name = "kconfig-5.114.0.tar.xz";
     };
   };
   kconfigwidgets = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kconfigwidgets-5.113.0.tar.xz";
-      sha256 = "0bmk5qxiss7a71xpfsbqj831wkcf94b7wfbw9xisvnxlfmf60y4v";
-      name = "kconfigwidgets-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kconfigwidgets-5.114.0.tar.xz";
+      sha256 = "16layydkcwfbvzxqjzprkq8bbxifn0z0wm7mc9bzwrfxy761rjnj";
+      name = "kconfigwidgets-5.114.0.tar.xz";
     };
   };
   kcontacts = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kcontacts-5.113.0.tar.xz";
-      sha256 = "1y9cdv1g2ypwl4b0hk1sxk7lvb5qkbm4n1gh62plqsran62jsimm";
-      name = "kcontacts-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kcontacts-5.114.0.tar.xz";
+      sha256 = "0lyqvbs216p5zpssaf4pyccph7nbwkbvhpmhbi32y2rm23cmxlwf";
+      name = "kcontacts-5.114.0.tar.xz";
     };
   };
   kcoreaddons = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kcoreaddons-5.113.0.tar.xz";
-      sha256 = "1bhanzfjw2i49sx2hjnim8k72vvbs7gyig7nkqkgbaxzpa8qgwrf";
-      name = "kcoreaddons-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kcoreaddons-5.114.0.tar.xz";
+      sha256 = "1wv3s3xsiii96k17nzs2fb0ih2lyg52krf58v44nlk9wfi4wmnqx";
+      name = "kcoreaddons-5.114.0.tar.xz";
     };
   };
   kcrash = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kcrash-5.113.0.tar.xz";
-      sha256 = "1mg90xm6ckcd30s07psn30sgh81lx8kfs0p1h6cblg4q8bkgkndv";
-      name = "kcrash-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kcrash-5.114.0.tar.xz";
+      sha256 = "1avi4yd3kpjqxrvci1nicxbh9mjafj1w2vgfmqanq66b76s4kxj1";
+      name = "kcrash-5.114.0.tar.xz";
     };
   };
   kdav = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kdav-5.113.0.tar.xz";
-      sha256 = "1djng9c741xairr84nvjbkq4dk551p7yk91g8d4nndy8s1kiz1dv";
-      name = "kdav-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kdav-5.114.0.tar.xz";
+      sha256 = "11959fxz24snk2l31kw8w96wah0s2fjimimrxh6xhppiy5qp2fp2";
+      name = "kdav-5.114.0.tar.xz";
     };
   };
   kdbusaddons = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kdbusaddons-5.113.0.tar.xz";
-      sha256 = "101a406f8i0wgaxd0ilvfcb3plzjgvxw9bhhm5pin6fpr0xkjrnk";
-      name = "kdbusaddons-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kdbusaddons-5.114.0.tar.xz";
+      sha256 = "0pzzznyxhi48z5hhdsdxz3vaaihrdshpx65ha2v2nn2gh3ww7ikm";
+      name = "kdbusaddons-5.114.0.tar.xz";
     };
   };
   kdeclarative = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kdeclarative-5.113.0.tar.xz";
-      sha256 = "1wj9arkmjdrac04cq2w5bw5184jnlq5xn2cw6n7lajc31yrbc0rk";
-      name = "kdeclarative-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kdeclarative-5.114.0.tar.xz";
+      sha256 = "0w98pj8acxb4m9645963rzq5vja1fbih5czz24mf9zdqlg2dkz8g";
+      name = "kdeclarative-5.114.0.tar.xz";
     };
   };
   kded = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kded-5.113.0.tar.xz";
-      sha256 = "1vb3z7r2l206n7p70a4cbkrm7fvyk7hqqf0bz7514r4g86l4l5n4";
-      name = "kded-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kded-5.114.0.tar.xz";
+      sha256 = "00n4isc4ahii0ldrg761lkmnq27kmrfqs9zkmpvmgbg57259mvc3";
+      name = "kded-5.114.0.tar.xz";
     };
   };
   kdelibs4support = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/portingAids/kdelibs4support-5.113.0.tar.xz";
-      sha256 = "1z843zq1g5n3b8gb20y8266hyikvbzdsgc77gvcgzvqfdxk19l24";
-      name = "kdelibs4support-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/portingAids/kdelibs4support-5.114.0.tar.xz";
+      sha256 = "17473him2fjfcw5f88diarqac815wsakfyb9fka82a4qqh9l41mc";
+      name = "kdelibs4support-5.114.0.tar.xz";
     };
   };
   kdesignerplugin = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/portingAids/kdesignerplugin-5.113.0.tar.xz";
-      sha256 = "05hwq8rpm1f9ad5fyk2gjqxm6gvvx2gx2zdbklww9ghlh8qndl9i";
-      name = "kdesignerplugin-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/portingAids/kdesignerplugin-5.114.0.tar.xz";
+      sha256 = "0zlvkayv6zl5rp1076bscmdzyw93y7sxqb5848w11vs0g9amcj9n";
+      name = "kdesignerplugin-5.114.0.tar.xz";
     };
   };
   kdesu = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kdesu-5.113.0.tar.xz";
-      sha256 = "085d3d6qpl4m7z8smm0bq9khfjjglpb1gd9n8q0d541127y2cpq4";
-      name = "kdesu-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kdesu-5.114.0.tar.xz";
+      sha256 = "14dcf32izn4lxr8vx372rfznflc1rcxwanx06phkd8mx9zyg4jxr";
+      name = "kdesu-5.114.0.tar.xz";
     };
   };
   kdewebkit = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/portingAids/kdewebkit-5.113.0.tar.xz";
-      sha256 = "18bmg88xj07h8y5f3f2ckjs9m61mf8jrxrg4vg8hrf4nabxz20xn";
-      name = "kdewebkit-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/portingAids/kdewebkit-5.114.0.tar.xz";
+      sha256 = "04zc2qs13k04gsn124mnh6sqi3pax8c014jcb0qdh3h2r2y72bz3";
+      name = "kdewebkit-5.114.0.tar.xz";
     };
   };
   kdnssd = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kdnssd-5.113.0.tar.xz";
-      sha256 = "1hbb9zy1f13m45b6kzndxw619vnmx0s418brqgkdaxgsh12j5anq";
-      name = "kdnssd-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kdnssd-5.114.0.tar.xz";
+      sha256 = "1zw5rkprr54j05ic8zljk57zahp2v6333slr253r3n1679zqlv64";
+      name = "kdnssd-5.114.0.tar.xz";
     };
   };
   kdoctools = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kdoctools-5.113.0.tar.xz";
-      sha256 = "0cfs4znhp7psrz99j3brp8q39gg0bpzvkrdx90zl6vvrc06d2zaa";
-      name = "kdoctools-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kdoctools-5.114.0.tar.xz";
+      sha256 = "15s58r2zvdckw30x9q9ir8h1i8q2ncfgjn9h4jnmylwm79z3z27v";
+      name = "kdoctools-5.114.0.tar.xz";
     };
   };
   kemoticons = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kemoticons-5.113.0.tar.xz";
-      sha256 = "127frvsp1h9hg755vz2i609wxqqgzgsz15iqr7hcpbmmf6xvm8i2";
-      name = "kemoticons-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kemoticons-5.114.0.tar.xz";
+      sha256 = "0w87prkhdmba7y8ylbycdpwdzd2djmp7hvv5ljb9s4aqqhnn3vw4";
+      name = "kemoticons-5.114.0.tar.xz";
     };
   };
   kfilemetadata = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kfilemetadata-5.113.0.tar.xz";
-      sha256 = "1ap25y66y1r185fghvkkkkp4f6acnkazny8wxw5hv1gg25ilpsir";
-      name = "kfilemetadata-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kfilemetadata-5.114.0.tar.xz";
+      sha256 = "15va29chlsrxii02w1ax718hp1b14ym59lcfyzh7w30zlf681560";
+      name = "kfilemetadata-5.114.0.tar.xz";
     };
   };
   kglobalaccel = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kglobalaccel-5.113.0.tar.xz";
-      sha256 = "0ibm1wd7fhi3j5za0agyq2zrs9nx5a8b47iijkzgkpz9ylxniwrs";
-      name = "kglobalaccel-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kglobalaccel-5.114.0.tar.xz";
+      sha256 = "19mmav055fnzyl760fyhf0pdvaidd5i1h04l2hcnpin4p1jnpfap";
+      name = "kglobalaccel-5.114.0.tar.xz";
     };
   };
   kguiaddons = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kguiaddons-5.113.0.tar.xz";
-      sha256 = "1ykhxgx89x1qv916pcz3j0q14ylalg9v23jjw0dbwpg5hlj4qlyc";
-      name = "kguiaddons-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kguiaddons-5.114.0.tar.xz";
+      sha256 = "0riya9plcz9c1ndhdbsradssndshbm12705swn7vf7am17n7f947";
+      name = "kguiaddons-5.114.0.tar.xz";
     };
   };
   kholidays = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kholidays-5.113.0.tar.xz";
-      sha256 = "1wq397j3m3s9a45k9h5hsdsfansvb3a5q8biag2w3fsb1i84id0i";
-      name = "kholidays-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kholidays-5.114.0.tar.xz";
+      sha256 = "19r8dxglz5ll6iyvigsccil3ikvcsnyy5nwcpjvjr1c0brigcjmy";
+      name = "kholidays-5.114.0.tar.xz";
     };
   };
   khtml = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/portingAids/khtml-5.113.0.tar.xz";
-      sha256 = "0m284rwq8f49j71lcapzr4qi0f72a0adnv67mfg5blar867161mq";
-      name = "khtml-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/portingAids/khtml-5.114.0.tar.xz";
+      sha256 = "1mf84zs9hjvmi74f8rgqzrfkqjq597f9k64dn1bqcj13v0w10vry";
+      name = "khtml-5.114.0.tar.xz";
     };
   };
   ki18n = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/ki18n-5.113.0.tar.xz";
-      sha256 = "0hl0qp3653xiwa5ndk82ygy2kgrc0pygqkknb1cx5w54s56bm57w";
-      name = "ki18n-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/ki18n-5.114.0.tar.xz";
+      sha256 = "1yg03awcx5ay6lgbgwv91i0ankrm94z9m0wky4v03gnwnvw8pa0v";
+      name = "ki18n-5.114.0.tar.xz";
     };
   };
   kiconthemes = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kiconthemes-5.113.0.tar.xz";
-      sha256 = "0q2c1s8pwl7dnx9v7q061zn5n1prk0vv0j77kki9wfncjaf15g0g";
-      name = "kiconthemes-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kiconthemes-5.114.0.tar.xz";
+      sha256 = "0ndiqmcs1ybj4acc6k3p9jwq09slqc4nj12ifqvlxrfj3ak6sb28";
+      name = "kiconthemes-5.114.0.tar.xz";
     };
   };
   kidletime = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kidletime-5.113.0.tar.xz";
-      sha256 = "1cdfhn3mcxvizba1gpf0viba3g0mnva3l226lkca3p9ps8c4z3rm";
-      name = "kidletime-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kidletime-5.114.0.tar.xz";
+      sha256 = "06sc9w54g4n7s5gjkqz08rgcz6v3pr0bdgx3gbjgzass6l4m8w7p";
+      name = "kidletime-5.114.0.tar.xz";
     };
   };
   kimageformats = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kimageformats-5.113.0.tar.xz";
-      sha256 = "0gys83sazgbj7h3yiaacqr464z951ixygrhzcw16cnqjm8phic44";
-      name = "kimageformats-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kimageformats-5.114.0.tar.xz";
+      sha256 = "1nfzpgnrbwncx9zp9cwa169jlfv7i85p00a07d4jc5hrdyvvkn0w";
+      name = "kimageformats-5.114.0.tar.xz";
     };
   };
   kinit = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kinit-5.113.0.tar.xz";
-      sha256 = "1ydmgxyr5j9zi0a5vlb64kkjxka3rsyvzj10y3dww92qyapnn2bv";
-      name = "kinit-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kinit-5.114.0.tar.xz";
+      sha256 = "0b6z9gq05vz20hm5y9ai3sbqq3gxwm3a3z88dkvi7dywk7vbqcph";
+      name = "kinit-5.114.0.tar.xz";
     };
   };
   kio = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kio-5.113.0.tar.xz";
-      sha256 = "1bjmv3wdpmzqbv1xzzl0ydirccbknnjyqn6wzb057zgy7kpi1cd8";
-      name = "kio-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kio-5.114.0.tar.xz";
+      sha256 = "0nwmxbfhvfw69q07vxvflri7rkdczyc89xv4ll3nrzrhgf15kb2z";
+      name = "kio-5.114.0.tar.xz";
     };
   };
   kirigami2 = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kirigami2-5.113.0.tar.xz";
-      sha256 = "0zy3s841q2xw4d048a3qh4cfh9kb3qaqxml4ny5zi73crm173h8y";
-      name = "kirigami2-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kirigami2-5.114.0.tar.xz";
+      sha256 = "1bd232gs4394fa3aq31mjqrn8f3vjsghx7817szi7ryvnn6fnqkw";
+      name = "kirigami2-5.114.0.tar.xz";
     };
   };
   kitemmodels = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kitemmodels-5.113.0.tar.xz";
-      sha256 = "01i1s7rw7ndp3gnl3bg0pv8a9qz95rmz0jxkw97p72gcah2q2yvk";
-      name = "kitemmodels-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kitemmodels-5.114.0.tar.xz";
+      sha256 = "1bfmcrbcbrvp2rcaf32vzvarqwp41gn6s4xpf56hnxbwf9kgk1fl";
+      name = "kitemmodels-5.114.0.tar.xz";
     };
   };
   kitemviews = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kitemviews-5.113.0.tar.xz";
-      sha256 = "0wnmgm72kv7vxadsrkdbnjknb4lkzrmn6gk7car7jx2i91kz7xdd";
-      name = "kitemviews-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kitemviews-5.114.0.tar.xz";
+      sha256 = "00vl2ck0pq0sqcxvhlr2pimgr27hd9v7y9dz6w4arb5smi5q1ixg";
+      name = "kitemviews-5.114.0.tar.xz";
     };
   };
   kjobwidgets = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kjobwidgets-5.113.0.tar.xz";
-      sha256 = "0f5shrapjvwp8bc34vypzfsfl07pj7nmdflf9lcwc8h3kwf2rxqr";
-      name = "kjobwidgets-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kjobwidgets-5.114.0.tar.xz";
+      sha256 = "1ymlqi5cqcs79nj1vff8pqwgvy0dxj5vv7l529w3a3n315hkrny8";
+      name = "kjobwidgets-5.114.0.tar.xz";
     };
   };
   kjs = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/portingAids/kjs-5.113.0.tar.xz";
-      sha256 = "0h50jyd9mddnavafikn9haqqcq1mql2v8qcc1c233ffplkx1f6hb";
-      name = "kjs-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/portingAids/kjs-5.114.0.tar.xz";
+      sha256 = "08nh6yr6bqifpb5s9a4wbjwmwnm7zp5k8hcdmyb6mlcbam9qp6j7";
+      name = "kjs-5.114.0.tar.xz";
     };
   };
   kjsembed = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/portingAids/kjsembed-5.113.0.tar.xz";
-      sha256 = "0bwsj0n3d038vs3n2mw6x8srbg4da40bw59q14cpv70ws1sg2r2n";
-      name = "kjsembed-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/portingAids/kjsembed-5.114.0.tar.xz";
+      sha256 = "1xglisxv7nfsbj9lgpvc4c5ql4f6m7n71vf7vih5ff3aqybrkgxa";
+      name = "kjsembed-5.114.0.tar.xz";
     };
   };
   kmediaplayer = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/portingAids/kmediaplayer-5.113.0.tar.xz";
-      sha256 = "1nyn7x28j17yrb7zx31519h2ghp5h3pwk6baxais0q1mv9azyfay";
-      name = "kmediaplayer-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/portingAids/kmediaplayer-5.114.0.tar.xz";
+      sha256 = "092yvzvrkvr8xxncw7h5ghfd2bggzxsqfj67c2vhymhfw4i0c54x";
+      name = "kmediaplayer-5.114.0.tar.xz";
     };
   };
   knewstuff = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/knewstuff-5.113.0.tar.xz";
-      sha256 = "0fj17rxyp9wmmc9jh8zjpgwpia9r4xlvabvkb4ynd1vhy58k8w51";
-      name = "knewstuff-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/knewstuff-5.114.0.tar.xz";
+      sha256 = "15xmx7rnnrsz2cj044aviyr4hi9h8r0nnva9qzcjcq2hkkgj7wjj";
+      name = "knewstuff-5.114.0.tar.xz";
     };
   };
   knotifications = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/knotifications-5.113.0.tar.xz";
-      sha256 = "1yzpf12wsi3h3v7z68b42rjdrnfkah6avq4y611b0r004shgkl1x";
-      name = "knotifications-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/knotifications-5.114.0.tar.xz";
+      sha256 = "0cjd5ml9hyzprjgmrc132cmp7g9hnl0h5swlxw2ifqnxxyfkg72b";
+      name = "knotifications-5.114.0.tar.xz";
     };
   };
   knotifyconfig = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/knotifyconfig-5.113.0.tar.xz";
-      sha256 = "1gdzyxcc371lmnzc153k8wdyxgsv7r2y44j8d5srld36amssxnc6";
-      name = "knotifyconfig-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/knotifyconfig-5.114.0.tar.xz";
+      sha256 = "049n64qlr69zv1dc1dhgbsca37179hp06xfsxnhg97lblz3p3gds";
+      name = "knotifyconfig-5.114.0.tar.xz";
     };
   };
   kpackage = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kpackage-5.113.0.tar.xz";
-      sha256 = "04605kr2w0yhwx64lqq1qc1zmmip7vkxnxv3fs2846864814fkk2";
-      name = "kpackage-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kpackage-5.114.0.tar.xz";
+      sha256 = "0v165az3k5lfszxy0kl2464573y0dcq92fyfiklwnkkcjsvba69d";
+      name = "kpackage-5.114.0.tar.xz";
     };
   };
   kparts = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kparts-5.113.0.tar.xz";
-      sha256 = "0mx95xrr6pad4q5p0sn2iqmc59787bpfkvkyiz9li56wynh1jf48";
-      name = "kparts-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kparts-5.114.0.tar.xz";
+      sha256 = "1rrf765p554r7l8j23gx5zxdq6wimh0v91qdkwz7ilm2qr16vd5v";
+      name = "kparts-5.114.0.tar.xz";
     };
   };
   kpeople = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kpeople-5.113.0.tar.xz";
-      sha256 = "08g44hq1iywycf44imdqkql4gx2vyg87n1nxxqq6ssva0kybia7n";
-      name = "kpeople-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kpeople-5.114.0.tar.xz";
+      sha256 = "04v0s3amn6lbb16qvp1r6figckva6xk8z7djk8jda8fbnx8dx2r1";
+      name = "kpeople-5.114.0.tar.xz";
     };
   };
   kplotting = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kplotting-5.113.0.tar.xz";
-      sha256 = "16pfia711y9iqnl0svyg00g7a2x4ln8yaxmrmy74xj7y0dj5jcyj";
-      name = "kplotting-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kplotting-5.114.0.tar.xz";
+      sha256 = "17x58pplln0plqiyhjpzdiqxngylxq5gkc5gk7b91xzm783x2k0n";
+      name = "kplotting-5.114.0.tar.xz";
     };
   };
   kpty = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kpty-5.113.0.tar.xz";
-      sha256 = "0hzn18lidiiaxr08fjhk0r5zh0m01ls46w1fyjnv42bvf7vd7v5y";
-      name = "kpty-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kpty-5.114.0.tar.xz";
+      sha256 = "0fm7bfp89kvg1a64q8piiyal71p6vjnqcm13zak6r9fbfwcm0gs9";
+      name = "kpty-5.114.0.tar.xz";
     };
   };
   kquickcharts = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kquickcharts-5.113.0.tar.xz";
-      sha256 = "0v47c6mdx72rdz441zk4csc6a2bj6wi7772vlpz2yr3ay70l8f5d";
-      name = "kquickcharts-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kquickcharts-5.114.0.tar.xz";
+      sha256 = "1f91x92qdzxp31z7ixx9jn41hq9f3w9hjia94pab9vsnaz8prbd1";
+      name = "kquickcharts-5.114.0.tar.xz";
     };
   };
   kross = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/portingAids/kross-5.113.0.tar.xz";
-      sha256 = "1cqdcm086a4kjrb9k6cwqn05fg5ij3zppc8bi7dxrgrfxc494c8s";
-      name = "kross-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/portingAids/kross-5.114.0.tar.xz";
+      sha256 = "0bbpi63lxbb4ylx2jd172a2bqyxkd606n7w8zrvcjy466lkv3sz4";
+      name = "kross-5.114.0.tar.xz";
     };
   };
   krunner = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/krunner-5.113.0.tar.xz";
-      sha256 = "0z7d6nyvrlgr7aw9ibz1xgp62220iwzvhqpqikwlxhc9hjggmdlh";
-      name = "krunner-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/krunner-5.114.0.tar.xz";
+      sha256 = "1rjs9b87bi4f6pdm9fwnha2sj2mrq260l80iz2jq1zah83p546sw";
+      name = "krunner-5.114.0.tar.xz";
     };
   };
   kservice = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kservice-5.113.0.tar.xz";
-      sha256 = "09ph72jb40pkw1nzayvzzav4m6240amkj6jvx390dmsvr7jzn0nb";
-      name = "kservice-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kservice-5.114.0.tar.xz";
+      sha256 = "0jdvlplnsb9w628wh3ip6awxvhgyc097zh7ls9614ymkbnpc9xca";
+      name = "kservice-5.114.0.tar.xz";
     };
   };
   ktexteditor = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/ktexteditor-5.113.0.tar.xz";
-      sha256 = "02nclhfgqximsl8w6la5w0fshzcj71nrz5kjb2p1s28xdf1ahvgg";
-      name = "ktexteditor-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/ktexteditor-5.114.0.tar.xz";
+      sha256 = "06amzk6290imi2gj3v1k3f56zdlad7zbz4wwlf34v4iibj9mfgw8";
+      name = "ktexteditor-5.114.0.tar.xz";
     };
   };
   ktextwidgets = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/ktextwidgets-5.113.0.tar.xz";
-      sha256 = "060grfna4kj8nhxgk38yf3csqfgxg0358dkwmg8aw5y5k0jys2az";
-      name = "ktextwidgets-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/ktextwidgets-5.114.0.tar.xz";
+      sha256 = "0w1wwyd3fy351rmkhf3i55is5031j2zxvswm0b1sb3pd159v888v";
+      name = "ktextwidgets-5.114.0.tar.xz";
     };
   };
   kunitconversion = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kunitconversion-5.113.0.tar.xz";
-      sha256 = "1x7gwrz43wvd3r87x545bxxyzhqj87mhhx05dqh0b09vqk6gxzza";
-      name = "kunitconversion-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kunitconversion-5.114.0.tar.xz";
+      sha256 = "1qyqvl8fy105zwma5nrkz9zg5932w2f33daw0azhj322iffrm39n";
+      name = "kunitconversion-5.114.0.tar.xz";
     };
   };
   kwallet = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kwallet-5.113.0.tar.xz";
-      sha256 = "0aq8d5c5p9j19bzspd205gh297n7fh5f26m49826fx5mp1im4lwn";
-      name = "kwallet-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kwallet-5.114.0.tar.xz";
+      sha256 = "1cji8bvy5m77zljyrrgipsw8pxcds1sgikxlq3sdfxymcsw2wr36";
+      name = "kwallet-5.114.0.tar.xz";
     };
   };
   kwayland = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kwayland-5.113.0.tar.xz";
-      sha256 = "1anhvz4b1q835py451jznnfj9z2jh1fwnx4lfwhi67viaplpiwqg";
-      name = "kwayland-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kwayland-5.114.0.tar.xz";
+      sha256 = "1lzmlbv5vl656cigjj07hbc0gj6g1i2xqanvnhxj360109kzilf1";
+      name = "kwayland-5.114.0.tar.xz";
     };
   };
   kwidgetsaddons = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kwidgetsaddons-5.113.0.tar.xz";
-      sha256 = "01rabfl2v5l9r3fgwgy75krib1486mdc4k3kfi035s6dvg8iy015";
-      name = "kwidgetsaddons-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kwidgetsaddons-5.114.0.tar.xz";
+      sha256 = "1cc8lsk9v0cp2wiy1q26mlkf8np0yj01sq8a7w13ga5s6hv4sh2n";
+      name = "kwidgetsaddons-5.114.0.tar.xz";
     };
   };
   kwindowsystem = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kwindowsystem-5.113.0.tar.xz";
-      sha256 = "1hzavawsl14rsl9qb874zahvsvkrbcin7fg1xn1d7ssypphlis51";
-      name = "kwindowsystem-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kwindowsystem-5.114.0.tar.xz";
+      sha256 = "03xbsf1pmswd2kpn3pdszp4vndclsh7j02fp22npxaxllmfr4va9";
+      name = "kwindowsystem-5.114.0.tar.xz";
     };
   };
   kxmlgui = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/kxmlgui-5.113.0.tar.xz";
-      sha256 = "022l557z9jgrz2hj8hh9z7cjkvfhl5rdp81jhk2gd3wzmyf5zzmq";
-      name = "kxmlgui-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/kxmlgui-5.114.0.tar.xz";
+      sha256 = "0gvjf32ssc0r0bdpb1912ldsr5rjls8vrscwy5gm9g5gw504hmmr";
+      name = "kxmlgui-5.114.0.tar.xz";
     };
   };
   kxmlrpcclient = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/portingAids/kxmlrpcclient-5.113.0.tar.xz";
-      sha256 = "141vlxxnyll5q0wg2va5prg0wf0hpymlzfkg37h1ngjwjs2x2yc1";
-      name = "kxmlrpcclient-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/portingAids/kxmlrpcclient-5.114.0.tar.xz";
+      sha256 = "1fgjai3vj3yk67ynhd7blilyrdhdn5nvma3v3j1sbdg98pr7qzar";
+      name = "kxmlrpcclient-5.114.0.tar.xz";
     };
   };
   modemmanager-qt = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/modemmanager-qt-5.113.0.tar.xz";
-      sha256 = "069irg7ckws06qzq5mwkxvzx4r2xqwagwif6dq284hjihrz38l8b";
-      name = "modemmanager-qt-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/modemmanager-qt-5.114.0.tar.xz";
+      sha256 = "16jqhmcpsffl9a7c0bb4hwjy3bw5rakdsnc5n6y8djc6237jl9pi";
+      name = "modemmanager-qt-5.114.0.tar.xz";
     };
   };
   networkmanager-qt = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/networkmanager-qt-5.113.0.tar.xz";
-      sha256 = "03wdbw6dr9a49qcs1j2lm9q894rvdl8xqjpwm3yrrjb866yyhcg1";
-      name = "networkmanager-qt-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/networkmanager-qt-5.114.0.tar.xz";
+      sha256 = "10anjsnrzawrfjlznjvvl2sbxrajl2ddnq2kgl314b5dk7z3yk4n";
+      name = "networkmanager-qt-5.114.0.tar.xz";
     };
   };
   oxygen-icons = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/oxygen-icons-5.113.0.tar.xz";
-      sha256 = "0grdn0gz59lfp4n5mmlan71x3iwgm87dnhk8mla02dn7hv0fl0xx";
-      name = "oxygen-icons-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/oxygen-icons-5.114.0.tar.xz";
+      sha256 = "0f6hv5g8y2ggagrq9x9b78bqxqg6bqcpm1xxhf69ybgjikrqdf2r";
+      name = "oxygen-icons-5.114.0.tar.xz";
     };
   };
   plasma-framework = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/plasma-framework-5.113.0.tar.xz";
-      sha256 = "0iijawnh9ri1n6qgdrraf3lq5sy7z0jy5ihmfzk22pn10ba992ky";
-      name = "plasma-framework-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/plasma-framework-5.114.0.tar.xz";
+      sha256 = "058hl76q35bw3rzmv348azk1lmhkpgmfrxr3jd9s1hphijr8sgcx";
+      name = "plasma-framework-5.114.0.tar.xz";
     };
   };
   prison = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/prison-5.113.0.tar.xz";
-      sha256 = "18y4gxj5zml59a8i7gzr5cbbzi5wyknbva2ihfdpqf85vw3x2wdp";
-      name = "prison-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/prison-5.114.0.tar.xz";
+      sha256 = "1wbr1lryxmrx65ilq1bhqsdhhikrih977nhpb02fq0cqnvv7v9i7";
+      name = "prison-5.114.0.tar.xz";
     };
   };
   purpose = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/purpose-5.113.0.tar.xz";
-      sha256 = "0p5zcvrkaw71w8795x2a4lx3z977j6jcnwbi9wi1956gcx4avhhf";
-      name = "purpose-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/purpose-5.114.0.tar.xz";
+      sha256 = "1lj67f0x4gvbh9by3c3crbbwwnx7b9ifjna9ggziya4m6zj0m4z1";
+      name = "purpose-5.114.0.tar.xz";
     };
   };
   qqc2-desktop-style = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/qqc2-desktop-style-5.113.0.tar.xz";
-      sha256 = "0sk0sk7cq511m0rjmgsg1z8s4sy064qmbql472ljyblafm71wj6p";
-      name = "qqc2-desktop-style-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/qqc2-desktop-style-5.114.0.tar.xz";
+      sha256 = "1y5g91vybjvhwmzpfwrc70q5j7jxf5b972f9fh2vzb930jir6c8g";
+      name = "qqc2-desktop-style-5.114.0.tar.xz";
     };
   };
   solid = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/solid-5.113.0.tar.xz";
-      sha256 = "0vhhkn15axfvlwrf9np91hnipw1lb2x9zh0ajpngvxzcnj6kvn7r";
-      name = "solid-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/solid-5.114.0.tar.xz";
+      sha256 = "1slxlj5jhp8g745l328932934633nl81sq3n8fd73h655hymsk4s";
+      name = "solid-5.114.0.tar.xz";
     };
   };
   sonnet = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/sonnet-5.113.0.tar.xz";
-      sha256 = "17v3a2j0vhx7mzv0wfgqky248m57gasyv1xbjqpzjdr3x2f1zhy6";
-      name = "sonnet-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/sonnet-5.114.0.tar.xz";
+      sha256 = "0zxi96i3gfpx759qc1nyz7jqlswg5ivgr1w9gbbsm1x5fi9ikadx";
+      name = "sonnet-5.114.0.tar.xz";
     };
   };
   syndication = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/syndication-5.113.0.tar.xz";
-      sha256 = "1nzcfk4qsjvrgci3vk78jjpbig61pm0y73h3qs83yld1zw3az3jx";
-      name = "syndication-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/syndication-5.114.0.tar.xz";
+      sha256 = "13rjb1zm9yd8vbm9h7avqih5v0rr2srqwglm29l7mcnankqlh4n7";
+      name = "syndication-5.114.0.tar.xz";
     };
   };
   syntax-highlighting = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/syntax-highlighting-5.113.0.tar.xz";
-      sha256 = "1blifnqikvrlkcskwjdk54mvh8yd4r0vzz282mi64w7alimlilgl";
-      name = "syntax-highlighting-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/syntax-highlighting-5.114.0.tar.xz";
+      sha256 = "1skblg2m0sar63qrgkjsg0w9scixggm5qj7lp4gzjn4hwq6m3n63";
+      name = "syntax-highlighting-5.114.0.tar.xz";
     };
   };
   threadweaver = {
-    version = "5.113.0";
+    version = "5.114.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.113/threadweaver-5.113.0.tar.xz";
-      sha256 = "1x7i7mdg5v22y04m720k9fqj7xagm8qnlssb1xjs9nj0aqif8jgp";
-      name = "threadweaver-5.113.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.114/threadweaver-5.114.0.tar.xz";
+      sha256 = "1y07g58w6z3i11y3djg3aaxanhp9hzaciq61l4dn1gqwghn09xgh";
+      name = "threadweaver-5.114.0.tar.xz";
     };
   };
 }
diff --git a/pkgs/development/libraries/kdsoap/default.nix b/pkgs/development/libraries/kdsoap/default.nix
index c2f94b8e6927..5dc6b5f962e1 100644
--- a/pkgs/development/libraries/kdsoap/default.nix
+++ b/pkgs/development/libraries/kdsoap/default.nix
@@ -11,11 +11,11 @@ let
   cmakeName = if isQt6 then "KDSoap-qt6" else "KDSoap";
 in stdenv.mkDerivation rec {
   pname = "kdsoap";
-  version = "2.1.1";
+  version = "2.2.0";
 
   src = fetchurl {
     url = "https://github.com/KDAB/KDSoap/releases/download/kdsoap-${version}/kdsoap-${version}.tar.gz";
-    sha256 = "sha256-rtV/ayAN33YvXSiY9+kijdBwCIHESRrv5ABvf6X1xic=";
+    sha256 = "sha256-2e8RlIRCGXyfpEvW+63IQrcoCmDfxAV3r2b97WN681Y=";
   };
 
   outputs = [ "out" "dev" ];
@@ -28,10 +28,8 @@ in stdenv.mkDerivation rec {
 
   postInstall = ''
     moveToOutput bin/kdwsdl2cpp* "$dev"
-    sed -i "$out/lib/cmake/${cmakeName}/KDSoapTargets.cmake" \
-        -e "/^  INTERFACE_INCLUDE_DIRECTORIES/ c   INTERFACE_INCLUDE_DIRECTORIES \"$dev/include\""
-    sed -i "$out/lib/cmake/${cmakeName}/KDSoapTargets-release.cmake" \
-        -e "s@$out/bin@$dev/bin@"
+    substituteInPlace "$out/lib/cmake/${cmakeName}/KDSoapTargets-release.cmake" \
+      --replace $out/bin $dev/bin
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/khronos-ocl-icd-loader/default.nix b/pkgs/development/libraries/khronos-ocl-icd-loader/default.nix
index 37c007db20b4..57fe21a27c7b 100644
--- a/pkgs/development/libraries/khronos-ocl-icd-loader/default.nix
+++ b/pkgs/development/libraries/khronos-ocl-icd-loader/default.nix
@@ -1,26 +1,28 @@
 { lib, stdenv, fetchFromGitHub, opencl-headers, cmake, withTracing ? false }:
 
 stdenv.mkDerivation rec {
-  pname = "khronos-ocl-icd-loader";
-  version = "2022.01.04";
+  pname = "opencl-icd-loader";
+  version = "2023.12.14";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "OpenCL-ICD-Loader";
     rev = "v${version}";
-    sha256 = "sha256-T2tBoN0yv41W+UksFABVjsetdkXlnEFUINfxumGgC04=";
+    hash = "sha256-/4ixQAwJpygdg+qtR1ccBlz8hmtYYxRgUV5dlJabsg8=";
   };
 
-  patches = lib.optional withTracing ./tracing.patch;
-
   nativeBuildInputs = [ cmake ];
   buildInputs = [ opencl-headers ];
 
+  cmakeFlags = [
+    (lib.cmakeBool "OCL_ICD_ENABLE_TRACE" withTracing)
+  ];
+
   meta = with lib; {
     description = "Official Khronos OpenCL ICD Loader";
     homepage = "https://github.com/KhronosGroup/OpenCL-ICD-Loader";
     license = licenses.asl20;
-    platforms = platforms.linux;
     maintainers = with maintainers; [ davidtwco ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/khronos-ocl-icd-loader/tracing.patch b/pkgs/development/libraries/khronos-ocl-icd-loader/tracing.patch
deleted file mode 100644
index cef22457e5a1..000000000000
--- a/pkgs/development/libraries/khronos-ocl-icd-loader/tracing.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/loader/icd.h b/loader/icd.h
-index 34751e9..01a33fd 100644
---- a/loader/icd.h
-+++ b/loader/icd.h
-@@ -123,7 +123,7 @@ void khrIcdContextPropertiesGetPlatform(
-     cl_platform_id *outPlatform);
- 
- // internal tracing macros
--#if 0
-+#if 1
-     #include <stdio.h>
-     #define KHR_ICD_TRACE(...) \
-     do \
diff --git a/pkgs/development/libraries/leptonica/default.nix b/pkgs/development/libraries/leptonica/default.nix
index 08921c2ca3c0..12cd3f074fcb 100644
--- a/pkgs/development/libraries/leptonica/default.nix
+++ b/pkgs/development/libraries/leptonica/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "leptonica";
-  version = "1.84.0";
+  version = "1.84.1";
 
   src = fetchurl {
     url = "https://github.com/DanBloomberg/${pname}/releases/download/${version}/${pname}-${version}.tar.gz";
-    hash = "sha256-QqApMSod8M1WQBlal5voG/ZiMOFTFkysRWR4RU5yBtU=";
+    hash = "sha256-Kz4SVLHMo4HnfIGbWcqZd0/0NTAgm5rrUR4dRliKZPY=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/development/libraries/libaal/default.nix b/pkgs/development/libraries/libaal/default.nix
index e3c960681c5f..d5b0b95f9599 100644
--- a/pkgs/development/libraries/libaal/default.nix
+++ b/pkgs/development/libraries/libaal/default.nix
@@ -1,16 +1,14 @@
 { lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  version = "1.0.6";
+  version = "1.0.7";
   pname = "libaal";
 
   src = fetchurl {
     url = "mirror://sourceforge/reiser4/${pname}-${version}.tar.gz";
-    sha256 = "176f2sns6iyxv3h9zyirdinjwi05gdak48zqarhib2s38rvm98di";
+    sha256 = "sha256-fIVohp2PVCaNaQRVJ4zfW8mukiiqM3BgF8Vwu9qrmJE=";
   };
 
-  patches = [ ./libaal-1.0.6-glibc-2.26.patch ];
-
   preInstall = ''
     substituteInPlace Makefile --replace ./run-ldconfig true
   '';
@@ -21,7 +19,7 @@ stdenv.mkDerivation rec {
     homepage = "http://www.namesys.com/";
     description = "Support library for Reiser4";
     license = lib.licenses.gpl2;
-    maintainers = with lib.maintainers; [ ];
+    maintainers = with lib.maintainers; [ mglolenstine ];
     platforms = with lib.platforms; linux;
   };
 }
diff --git a/pkgs/development/libraries/libaal/libaal-1.0.6-glibc-2.26.patch b/pkgs/development/libraries/libaal/libaal-1.0.6-glibc-2.26.patch
deleted file mode 100644
index 6d49682f03ae..000000000000
--- a/pkgs/development/libraries/libaal/libaal-1.0.6-glibc-2.26.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-Date: 2017-09-02 13:03:15.353403096 +0200
-From: Jan Engelhardt <jengelh@inai.de>
-
-Stop redefining libc definitions that cause build failures under glibc-2.26.
-
-[   46s] In file included from /usr/include/sys/types.h:156:0,
-[   46s]                  from /usr/include/stdlib.h:279,
-[   46s]                  from malloc.c:15:
-[   46s] /usr/include/bits/stdint-intn.h:27:19: error: conflicting types for 'int64_t'
-[   46s]  typedef __int64_t int64_t;
-[   46s]                    ^~~~~~~
-[   46s] In file included from ../include/aal/libaal.h:17:0,
-[   46s]                  from malloc.c:6:
-[   46s] ../include/aal/types.h:35:33: note: previous declaration of 'int64_t' was here
-[   46s]  typedef long long int           int64_t;
-
-
----
- include/aal/types.h |   48 ++----------------------------------------------
- 1 file changed, 2 insertions(+), 46 deletions(-)
-
-Index: libaal-1.0.6/include/aal/types.h
-===================================================================
---- libaal-1.0.6.orig/include/aal/types.h
-+++ libaal-1.0.6/include/aal/types.h
-@@ -26,24 +26,7 @@
- #undef ESTRUCT
- #define ESTRUCT                 50
- 
--#ifndef __int8_t_defined
--#define __int8_t_defined
--typedef signed char             int8_t;
--typedef short int               int16_t;
--typedef int                     int32_t;
--__extension__
--typedef long long int           int64_t;
--#endif
-- 
--typedef unsigned char           uint8_t;
--typedef unsigned short int      uint16_t;
--#ifndef __uint32_t_defined
--#define __uint32_t_defined
--typedef unsigned int            uint32_t;
--__extension__
--typedef unsigned long long int  uint64_t;
--#endif
--
-+#include <stdint.h>
- #define MAX_UINT8  ((uint8_t)~0)
- #define MAX_UINT16 ((uint16_t)~0)
- #define MAX_UINT32 ((uint32_t)~0)
-@@ -53,36 +36,9 @@ typedef unsigned long long int  uint64_t
-    because we don't want use gcc builtins in minimal mode for achive as small
-    binary size as possible. */
- 
--#ifndef ENABLE_MINIMAL
- #  include <stdarg.h>
--#else
--#ifndef _VA_LIST_
--#define _VA_LIST_
--typedef char *va_list;
--#endif
--#undef va_arg
--#undef va_end
--#undef va_start
--
--#define va_end(ap)       \
--        do {} while(0);
--
--#define va_start(ap, p)  \
--        (ap = (char *)(&(p)+1))
--
--#define va_arg(ap, type) \
--        ((type *)(ap += sizeof(type)))[-1]
--#endif
--
--/* As libaal may be used without any standard headers, we need to declare NULL
--   macro here in order to avoid compilation errors. */
--#undef NULL
- 
--#if defined(__cplusplus)
--#  define NULL 0
--#else
--#  define NULL ((void *)0)
--#endif
-+#include <stdio.h>
- 
- /* Simple type for direction denoting */
- enum aal_dir {
diff --git a/pkgs/development/libraries/libbacktrace/default.nix b/pkgs/development/libraries/libbacktrace/default.nix
index b188a9cfc38c..288185f92281 100644
--- a/pkgs/development/libraries/libbacktrace/default.nix
+++ b/pkgs/development/libraries/libbacktrace/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation {
   pname = "libbacktrace";
-  version = "unstable-2022-12-16";
+  version = "unstable-2023-11-30";
 
   src = fetchFromGitHub {
     owner = "ianlancetaylor";
     repo = "libbacktrace";
-    rev = "da7eff2f37e38136c5a0c8922957b9dfab5483ef";
-    sha256 = "ADp8n1kUf8OysFY/Jv1ytxKjqgz1Nu2VRcFGlt1k/HM=";
+    rev = "14818b7783eeb9a56c3f0fca78cefd3143f8c5f6";
+    sha256 = "DQZQsqzeQ/0v87bfqs6sXqS2M5Tunc1OydTWRSB3PCw=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/libcamera/default.nix b/pkgs/development/libraries/libcamera/default.nix
index 076eccb1c26e..232fb29ecbe5 100644
--- a/pkgs/development/libraries/libcamera/default.nix
+++ b/pkgs/development/libraries/libcamera/default.nix
@@ -22,12 +22,12 @@
 
 stdenv.mkDerivation rec {
   pname = "libcamera";
-  version = "0.0.5";
+  version = "0.1.0";
 
   src = fetchgit {
     url = "https://git.libcamera.org/libcamera/libcamera.git";
     rev = "v${version}";
-    hash = "sha256-rd1YIEosg4+H/FJBYCoxdQlV9F0evU5fckHJrSdVPOE=";
+    hash = "sha256-icHZtv25QvJEv0DlELT3cDxho3Oz2BJAMNKr5W4bshk=";
   };
 
   outputs = [ "out" "dev" "doc" ];
diff --git a/pkgs/development/libraries/libcint/default.nix b/pkgs/development/libraries/libcint/default.nix
index e90078b0c840..caa7e51336a4 100644
--- a/pkgs/development/libraries/libcint/default.nix
+++ b/pkgs/development/libraries/libcint/default.nix
@@ -9,15 +9,19 @@
 
 stdenv.mkDerivation rec {
   pname = "libcint";
-  version = "5.4.0";
+  version = "6.1.2";
 
   src = fetchFromGitHub {
     owner = "sunqm";
     repo = "libcint";
     rev = "v${version}";
-    hash = "sha256-U+ZlD/I7RHtdYNbFhAmeU4qREe45dYJDIAC3Bup2tr0=";
+    hash = "sha256-URJcC0ib87ejrTCglCjhC2tQHNc5TRvo4CQ52N58n+4=";
   };
 
+  postPatch = ''
+    sed -i 's/libcint.so/libcint${stdenv.hostPlatform.extensions.sharedLibrary}/g' testsuite/*.py
+  '';
+
   nativeBuildInputs = [ cmake ];
   buildInputs = [ blas ];
   cmakeFlags = [
@@ -46,5 +50,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/sunqm/libcint/blob/master/ChangeLog";
     license = licenses.bsd2;
     maintainers = with maintainers; [ drewrisinger ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libdrm/default.nix b/pkgs/development/libraries/libdrm/default.nix
index 5cb8f2cbad8e..8d8a932f4994 100644
--- a/pkgs/development/libraries/libdrm/default.nix
+++ b/pkgs/development/libraries/libdrm/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libdrm";
-  version = "2.4.119";
+  version = "2.4.120";
 
   src = fetchurl {
     url = "https://dri.freedesktop.org/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-CknxLwm1tuaOqq/z8Cynz/mqkmk5shLTQxYdPorFYpE=";
+    hash = "sha256-O/VTY/dsclCUZEGrUdOmzArlGAVcD/AXMkq3bN77Mno=";
   };
 
   outputs = [ "out" "dev" "bin" ];
diff --git a/pkgs/development/libraries/libetpan/default.nix b/pkgs/development/libraries/libetpan/default.nix
index 1f7f52c70ab5..767b53c9d277 100644
--- a/pkgs/development/libraries/libetpan/default.nix
+++ b/pkgs/development/libraries/libetpan/default.nix
@@ -95,5 +95,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.etpan.org/libetpan.html";
     license = licenses.bsd3;
     maintainers = with maintainers; [ oxzi ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libewf-legacy/default.nix b/pkgs/development/libraries/libewf-legacy/default.nix
new file mode 100644
index 000000000000..4cfbceb0089c
--- /dev/null
+++ b/pkgs/development/libraries/libewf-legacy/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, fetchurl
+, fetchpatch
+, stdenv
+, zlib
+, openssl
+, libuuid
+, pkg-config
+, bzip2
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libewf-ewf";
+  version = "20140814";
+
+  src = fetchurl {
+    url = "https://github.com/libyal/libewf-legacy/releases/download/${version}/libewf-${version}.tar.gz";
+    hash = "sha256-OM3QXwnaIDeo66UNjzmu6to53SxgCMn/rE9VTPlX5BQ=";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ zlib openssl libuuid ]
+    ++ lib.optionals stdenv.isDarwin [ bzip2 ];
+
+  meta = {
+    description = "Legacy library for support of the Expert Witness Compression Format";
+    homepage = "https://sourceforge.net/projects/libewf/";
+    license = lib.licenses.lgpl3;
+    maintainers = with lib.maintainers; [ d3vil0p3r ];
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/pkgs/development/libraries/libfabric/default.nix b/pkgs/development/libraries/libfabric/default.nix
index 34089dbdcaa8..ab92befa9ed8 100644
--- a/pkgs/development/libraries/libfabric/default.nix
+++ b/pkgs/development/libraries/libfabric/default.nix
@@ -12,7 +12,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libfabric";
-  version = "1.20.0";
+  version = "1.20.1";
 
   enableParallelBuilding = true;
 
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     owner = "ofiwg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-woRkm/5kLIv1ypSlCosP/ewYgnSXQJYzkuOqdHvEH8I=";
+    sha256 = "sha256-rQzsh3Q2xaGwmmsfvUmFE8WbAb1e2JEvunSoqZYRHvE=";
   };
 
   outputs = [ "out" "dev" "man" ];
diff --git a/pkgs/development/libraries/libgig/default.nix b/pkgs/development/libraries/libgig/default.nix
index 26e3b46d5510..48d45797096b 100644
--- a/pkgs/development/libraries/libgig/default.nix
+++ b/pkgs/development/libraries/libgig/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libgig";
-  version = "4.3.0";
+  version = "4.4.0";
 
   src = fetchurl {
     url = "https://download.linuxsampler.org/packages/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-oG0Jh4eAxsGd2NucM1RNU6kzV/niexSpg6qrpo//p5Q=";
+    sha256 = "sha256-ZwQMrK8da12lFz7UAY2i+eW3rzPFhngdUfeV3hW65iI=";
   };
 
   nativeBuildInputs = [ autoconf automake libtool pkg-config ];
diff --git a/pkgs/development/libraries/libhdhomerun/default.nix b/pkgs/development/libraries/libhdhomerun/default.nix
index 96b8e3c02937..558e6d6fa894 100644
--- a/pkgs/development/libraries/libhdhomerun/default.nix
+++ b/pkgs/development/libraries/libhdhomerun/default.nix
@@ -6,34 +6,37 @@
 
 stdenv.mkDerivation rec {
   pname = "libhdhomerun";
-  version = "20220303";
+  version = "20231214";
 
   src = fetchurl {
     url = "https://download.silicondust.com/hdhomerun/libhdhomerun_${version}.tgz";
-    sha256 = "sha256-HlT/78LUiTkRUB2jHmYrnQY+bBiv4stcZlMyUnelSpc=";
+    hash = "sha256-VSoQLoqiq8xBYJDewvb4DaWfl/kfV5aOnp17PcAF268=";
   };
 
-  postPatch = lib.optionalString stdenv.isDarwin ''
-    substituteInPlace Makefile \
-      --replace "-arch x86_64" "-arch ${stdenv.hostPlatform.darwinArch}"
-  '';
+  patches = [
+    ./nixos-darwin-no-fat-dylib.patch
+  ];
 
   makeFlags = [
     "CC=${stdenv.cc.targetPrefix}cc"
   ];
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/{bin,lib,include/hdhomerun}
     install -Dm444 libhdhomerun${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib
     install -Dm555 hdhomerun_config $out/bin
     cp *.h $out/include/hdhomerun
+
+    runHook postInstall
   '';
 
   meta = with lib; {
     description = "Implements the libhdhomerun protocol for use with Silicondust HDHomeRun TV tuners";
     homepage = "https://www.silicondust.com/support/linux";
     license = licenses.lgpl21Only;
+    maintainers = with maintainers; [ sielicki titanous ];
     platforms = platforms.unix;
-    maintainers = [ maintainers.titanous ];
   };
 }
diff --git a/pkgs/development/libraries/libhdhomerun/nixos-darwin-no-fat-dylib.patch b/pkgs/development/libraries/libhdhomerun/nixos-darwin-no-fat-dylib.patch
new file mode 100644
index 000000000000..99c389a19434
--- /dev/null
+++ b/pkgs/development/libraries/libhdhomerun/nixos-darwin-no-fat-dylib.patch
@@ -0,0 +1,52 @@
+From 6b9ed19d7874b88b7db5b740dac3dcd7dcda6c8c Mon Sep 17 00:00:00 2001
+From: Nicholas Sielicki <git@opensource.nslick.com>
+Date: Sat, 25 Nov 2023 13:54:39 -0600
+Subject: [PATCH] nixos-darwin-no-fat-dylib
+
+Signed-off-by: Nicholas Sielicki <git@opensource.nslick.com>
+---
+ Makefile | 24 ++++--------------------
+ 1 file changed, 4 insertions(+), 20 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 1d8fb9f..35c7d15 100644
+--- a/Makefile
++++ b/Makefile
+@@ -42,30 +42,14 @@ LIBSRCS += hdhomerun_video.c
+ 
+ ifeq ($(OS),Darwin)
+ 
+-TARGET_X64 := -target x86_64-apple-macos10.11
+-TARGET_ARM64 := -target arm64-apple-macos11
+-
+ all : hdhomerun_config libhdhomerun.dylib
+ 
+-hdhomerun_config_x64 : hdhomerun_config.c $(LIBSRCS)
+-	$(CC) $(TARGET_X64) $(CFLAGS) $+ $(LDFLAGS) -o $@
+-	$(STRIP) $@
+-
+-hdhomerun_config_arm64 : hdhomerun_config.c $(LIBSRCS)
+-	$(CC) $(TARGET_ARM64) $(CFLAGS) $+ $(LDFLAGS) -o $@
++hdhomerun_config: hdhomerun_config.c $(LIBSRCS)
++	$(CC) $(CFLAGS) $+ $(LDFLAGS) -o $@
+ 	$(STRIP) $@
+ 
+-hdhomerun_config : hdhomerun_config_x64 hdhomerun_config_arm64
+-	lipo -create -output hdhomerun_config hdhomerun_config_x64 hdhomerun_config_arm64
+-
+-libhdhomerun_x64.dylib : $(LIBSRCS)
+-	$(CC) $(TARGET_X64) $(CFLAGS) -DDLL_EXPORT -fPIC -dynamiclib $+ $(LDFLAGS) -o $@
+-
+-libhdhomerun_arm64.dylib : $(LIBSRCS)
+-	$(CC) $(TARGET_ARM64) $(CFLAGS) -DDLL_EXPORT -fPIC -dynamiclib $+ $(LDFLAGS) -o $@
+-
+-libhdhomerun.dylib : libhdhomerun_x64.dylib libhdhomerun_arm64.dylib
+-	lipo -create -output libhdhomerun.dylib libhdhomerun_x64.dylib libhdhomerun_arm64.dylib
++libhdhomerun.dylib : $(LIBSRCS)
++	$(CC) $(CFLAGS) -DDLL_EXPORT -fPIC -dynamiclib $+ $(LDFLAGS) -o $@
+ 
+ else
+ 
+-- 
+2.42.0
+
diff --git a/pkgs/development/libraries/libhwy/default.nix b/pkgs/development/libraries/libhwy/default.nix
index b2f32cbe7252..664378d42b6d 100644
--- a/pkgs/development/libraries/libhwy/default.nix
+++ b/pkgs/development/libraries/libhwy/default.nix
@@ -4,6 +4,7 @@
 , ninja
 , gtest
 , fetchFromGitHub
+, fetchpatch
 }:
 
 stdenv.mkDerivation rec {
@@ -17,6 +18,15 @@ stdenv.mkDerivation rec {
     hash = "sha256-Z+mAR9nSAbCskUvo6oK79Yd85bu0HtI2aR5THS1EozM=";
   };
 
+  patches = lib.optional stdenv.hostPlatform.isRiscV
+    # Adds CMake option HWY_CMAKE_RVV
+    # https://github.com/google/highway/pull/1743
+    (fetchpatch {
+      name = "libhwy-add-rvv-optout.patch";
+      url = "https://github.com/google/highway/commit/5d58d233fbcec0c6a39df8186a877329147324b3.patch";
+      hash = "sha256-ileSNYddOt1F5rooRB0fXT20WkVlnG+gP5w7qJdBuww=";
+    });
+
   nativeBuildInputs = [ cmake ninja ];
 
   # Required for case-insensitive filesystems ("BUILD" exists)
@@ -43,6 +53,11 @@ stdenv.mkDerivation rec {
     #   HwyMathTestGroup/HwyMathTest.TestAllAtanh/EMU128
     #   HwyMathTestGroup/HwyMathTest.TestAllLog1p/EMU128
     "-DHWY_CMAKE_SSE2=ON"
+  ] ++ lib.optionals stdenv.hostPlatform.isRiscV [
+    # Runtime dispatch is not implemented https://github.com/google/highway/issues/838
+    # so tests (and likely normal operation) fail with SIGILL on processors without V.
+    # Until the issue is resolved, we disable RVV completely.
+    "-DHWY_CMAKE_RVV=OFF"
   ];
 
   # hydra's darwin machines run into https://github.com/libjxl/libjxl/issues/408
diff --git a/pkgs/development/libraries/libime/default.nix b/pkgs/development/libraries/libime/default.nix
index 4c12e261f442..5f914485993a 100644
--- a/pkgs/development/libraries/libime/default.nix
+++ b/pkgs/development/libraries/libime/default.nix
@@ -11,9 +11,10 @@
 }:
 
 let
+  tableVer = "20240108";
   table = fetchurl {
-    url = "https://download.fcitx-im.org/data/table.tar.gz";
-    sha256 = "1dw7mgbaidv3vqy0sh8dbfv8631d2zwv5mlb7npf69a1f8y0b5k1";
+    url = "https://download.fcitx-im.org/data/table-${tableVer}.tar.gz";
+    hash = "sha256-cpxZbYaQfecnx00Pw/0kHEBsXevStMt07v4CI4funa4=";
   };
   arpaVer = "20230712";
   arpa = fetchurl {
@@ -28,13 +29,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "libime";
-  version = "1.1.4";
+  version = "1.1.5";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = "libime";
     rev = version;
-    sha256 = "sha256-cjlclemt4xsQcpmZ8CflN79QkOE4m07O4hLOQcLF1nA=";
+    hash = "sha256-AvlQOpjrHSifUtWSTft2bywlWhwka26VcqqReqAlcv8=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/libraries/libjcat/default.nix b/pkgs/development/libraries/libjcat/default.nix
index bbcae6ab19d1..6d9481d1da2d 100644
--- a/pkgs/development/libraries/libjcat/default.nix
+++ b/pkgs/development/libraries/libjcat/default.nix
@@ -19,7 +19,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libjcat";
-  version = "0.2.0";
+  version = "0.2.1";
 
   outputs = [ "bin" "out" "dev" "devdoc" "man" "installedTests" ];
 
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     owner = "hughsie";
     repo = "libjcat";
     rev = version;
-    sha256 = "sha256-nLn2s9hX9f6I1Avxzs24ZPQHglJqKSUTpBpwskVyJKw=";
+    sha256 = "sha256-tCXz62MEqYBnrx2RxlTBwKGTahfhUCVdet4VnXw5klQ=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/libjxl/default.nix b/pkgs/development/libraries/libjxl/default.nix
index 820f466d8447..8454f3e1e83b 100644
--- a/pkgs/development/libraries/libjxl/default.nix
+++ b/pkgs/development/libraries/libjxl/default.nix
@@ -9,7 +9,7 @@
 , libjpeg
 , libpng
 , libwebp
-, openexr
+, openexr_3
 , pkg-config
 , zlib
 , buildDocs ? true
@@ -79,7 +79,7 @@ stdenv.mkDerivation rec {
     libjpeg
     libpng
     libwebp
-    openexr
+    openexr_3
     zlib
   ];
 
diff --git a/pkgs/development/libraries/libmbim/default.nix b/pkgs/development/libraries/libmbim/default.nix
index 9965771c1531..8ceb1b3b03bf 100644
--- a/pkgs/development/libraries/libmbim/default.nix
+++ b/pkgs/development/libraries/libmbim/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitLab
-, fetchpatch
 , meson
 , ninja
 , pkg-config
@@ -19,7 +18,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libmbim";
-  version = "1.28.4";
+  version = "1.30.0";
 
   outputs = [ "out" "dev" ]
     ++ lib.optionals withDocs [ "man" ];
@@ -29,27 +28,9 @@ stdenv.mkDerivation rec {
     owner = "mobile-broadband";
     repo = "libmbim";
     rev = version;
-    hash = "sha256-aaYjvJ2OMTzkUyqWCyHdmsKJ3VGqBmKQzb1DWK/1cPU=";
+    hash = "sha256-sHTpu9WeMZroT+1I18ObEHWSzcyj/Relyz8UNe+WawI=";
   };
 
-  patches = [
-    # Intel Mutual Authentication - FCC lock. Part of 1.30, backported to
-    # openSUSE and Fedora and ChromeOS.
-    # https://src.fedoraproject.org/rpms/libmbim/blob/rawhide/f/libmbim.spec
-    (fetchpatch {
-      url = "https://cgit.freedesktop.org/libmbim/libmbim/patch/?id=910db9cb2b6fde303d3b4720890cf6dc6fc00880";
-      hash = "sha256-412sXdWb8WsSexe1scI/C57dwENgNWoREGO1GxSF4hs=";
-    })
-
-    # Intel Tools. Allows tracing various commands. Part of 1.30, backported to
-    # openSUSE, Fedora and ChromeOS.
-    # https://src.fedoraproject.org/rpms/libmbim/blob/rawhide/f/libmbim.spec
-    (fetchpatch {
-      url = "https://cgit.freedesktop.org/libmbim/libmbim/patch/?id=8a6dec6ed11931601e605c9537da9904b3be5bc0";
-      hash = "sha256-tU4zkUl5aZJE+g/qbnWprUHe/PmZvqVKB9qecSaUBhk=";
-    })
-  ];
-
   mesonFlags = [
     "-Dudevdir=${placeholder "out"}/lib/udev"
     (lib.mesonBool "introspection" withIntrospection)
diff --git a/pkgs/development/libraries/libmilter/default.nix b/pkgs/development/libraries/libmilter/default.nix
index 3ff3a4ffa9fb..a06f3d4deca1 100644
--- a/pkgs/development/libraries/libmilter/default.nix
+++ b/pkgs/development/libraries/libmilter/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libmilter";
-  version = "8.17.2";
+  version = "8.18.1";
 
   src = fetchurl {
     url = "ftp://ftp.sendmail.org/pub/sendmail/sendmail.${version}.tar.gz";
-    sha256 = "sha256-kPWudMNahICIYZM7oJQgG5AbcMaykDaE3POb2uiloaI=";
+    sha256 = "sha256-y/HzCcOOSAb3zz6tJCYPF9H+j7YyVtE+2zzdGgmPB3A=";
   };
 
   buildPhase = ''
diff --git a/pkgs/development/libraries/libmysqlconnectorcpp/default.nix b/pkgs/development/libraries/libmysqlconnectorcpp/default.nix
index 9707435dcd29..a5a1983e615e 100644
--- a/pkgs/development/libraries/libmysqlconnectorcpp/default.nix
+++ b/pkgs/development/libraries/libmysqlconnectorcpp/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libmysqlconnectorcpp";
-  version = "8.2.0";
+  version = "8.3.0";
 
   src = fetchurl {
     url = "https://cdn.mysql.com/Downloads/Connector-C++/mysql-connector-c++-${version}-src.tar.gz";
-    hash = "sha256-lCRmgiXFpz97eAXNNtddhQLJqOIMoRyVJlMVXvbpCdo=";
+    hash = "sha256-oXvx+tErGrF/X2x3ZiifuHIA6RlFMjTD7BZk13NL6Pg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libnbd/default.nix b/pkgs/development/libraries/libnbd/default.nix
index ff90c9b116ad..5889c8ef12d5 100644
--- a/pkgs/development/libraries/libnbd/default.nix
+++ b/pkgs/development/libraries/libnbd/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch
 , bash-completion
 , pkg-config
 , perl
@@ -13,21 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libnbd";
-  version = "1.18.1";
+  version = "1.18.2";
 
   src = fetchurl {
     url = "https://download.libguestfs.org/libnbd/${lib.versions.majorMinor version}-stable/${pname}-${version}.tar.gz";
-    hash = "sha256-UNHRphDw1ycRnp0KClzHlSuLIxs5Mc4gcjB+EF/smbY=";
+    hash = "sha256-OYtNHAIGgwJuapoJNEMVkurUK9bQ7KO+V223bGC0TFI=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "CVE-2023-5871.patch";
-      url = "https://gitlab.com/nbdkit/libnbd/-/commit/4451e5b61ca07771ceef3e012223779e7a0c7701.patch";
-      hash = "sha256-zmg/kxSJtjp2w9917Sp33ezt7Ccj/inngzCUVesF1Tc=";
-    })
-  ];
-
   nativeBuildInputs = [
     bash-completion
     pkg-config
diff --git a/pkgs/development/libraries/libplacebo/default.nix b/pkgs/development/libraries/libplacebo/default.nix
index 60a3f8989578..cad556ee7a7e 100644
--- a/pkgs/development/libraries/libplacebo/default.nix
+++ b/pkgs/development/libraries/libplacebo/default.nix
@@ -10,21 +10,23 @@
 , shaderc
 , lcms2
 , libGL
-, xorg
+, libX11
 , libunwind
 , libdovi
+, xxHash
+, fast-float
 }:
 
 stdenv.mkDerivation rec {
   pname = "libplacebo";
-  version = "5.264.1";
+  version = "6.338.1";
 
   src = fetchFromGitLab {
     domain = "code.videolan.org";
     owner = "videolan";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-YEefuEfJURi5/wswQKskA/J1UGzessQQkBpltJ0Spq8=";
+    hash = "sha256-NZmwR3+lIC2PF+k+kqCjoMYkMM/PKOJmDwAq7t6YONY=";
   };
 
   nativeBuildInputs = [
@@ -41,18 +43,21 @@ stdenv.mkDerivation rec {
     shaderc
     lcms2
     libGL
-    xorg.libX11
+    libX11
     libunwind
     libdovi
+    xxHash
+  ] ++ lib.optionals (!stdenv.cc.isGNU) [
+    fast-float
   ];
 
-  mesonFlags = [
-    "-Dvulkan-registry=${vulkan-headers}/share/vulkan/registry/vk.xml"
-    "-Ddemos=false" # Don't build and install the demo programs
-    "-Dd3d11=disabled" # Disable the Direct3D 11 based renderer
-    "-Dglslang=disabled" # rely on shaderc for GLSL compilation instead
-  ] ++ lib.optionals stdenv.isDarwin [
-    "-Dunwind=disabled" # libplacebo doesn’t build with `darwin.libunwind`
+  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
+  ] ++ optionals stdenv.isDarwin [
+    (mesonEnable "unwind" false) # libplacebo doesn’t build with `darwin.libunwind`
   ];
 
   postPatch = ''
diff --git a/pkgs/development/libraries/libqmi/default.nix b/pkgs/development/libraries/libqmi/default.nix
index 6f7583d563b1..58fadd30ee8d 100644
--- a/pkgs/development/libraries/libqmi/default.nix
+++ b/pkgs/development/libraries/libqmi/default.nix
@@ -23,7 +23,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libqmi";
-  version = "1.32.4";
+  version = "1.34.0";
 
   outputs = [ "out" "dev" ]
     ++ lib.optional withIntrospection "devdoc";
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
     owner = "mobile-broadband";
     repo = "libqmi";
     rev = version;
-    hash = "sha256-cczGvoD+2+G6uiAt0Iv1BO4/FqzO9bkqhFsEwOfp7qw=";
+    hash = "sha256-l9ev9ZOWicVNZ/Wj//KNd3NHcefIrLVriqJhEpwWvtQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libraw/default.nix b/pkgs/development/libraries/libraw/default.nix
index b03be435aac5..d8e9f1f5a2f5 100644
--- a/pkgs/development/libraries/libraw/default.nix
+++ b/pkgs/development/libraries/libraw/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , autoreconfHook
 , lcms2
 , pkg-config
@@ -16,23 +15,15 @@
 
 stdenv.mkDerivation rec {
   pname = "libraw";
-  version = "0.21.1";
+  version = "0.21.2";
 
   src = fetchFromGitHub {
     owner = "LibRaw";
     repo = "LibRaw";
     rev = version;
-    sha256 = "sha256-K9mULf6V/TCl5Vu4iuIdSGF9HzQlgNQLRFHIpNbmAlY";
+    hash = "sha256-p9CmOCulvV7+KKn1lXwpcysOo0+mD5UgPqy2ki0cIFE=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "CVE-2023-1729.patch";
-      url = "https://github.com/LibRaw/LibRaw/commit/9ab70f6dca19229cb5caad7cc31af4e7501bac93.patch";
-      hash = "sha256-OAyqphxvtSM15NI77HwtGTmTmP9YNu3xhZ6D1CceJ7I=";
-    })
-  ];
-
   outputs = [ "out" "lib" "dev" "doc" ];
 
   propagatedBuildInputs = [ lcms2 ];
diff --git a/pkgs/development/libraries/libredwg/default.nix b/pkgs/development/libraries/libredwg/default.nix
index 9f530271771a..7759917d9750 100644
--- a/pkgs/development/libraries/libredwg/default.nix
+++ b/pkgs/development/libraries/libredwg/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , autoreconfHook
 , writeShellScript
 , pkg-config
@@ -27,6 +28,14 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
+  patches = [
+    (fetchpatch {
+      name = "CVE-2023-26157.patch";
+      url = "https://github.com/LibreDWG/libredwg/commit/c8cf03ce4c2315b146caf582ea061c0460193bcc.patch";
+      hash = "sha256-EEF3YYPW+6SvXRiAw3zz6tWU9w/qmGtc09Tf8wn7hVc=";
+    })
+  ];
+
   postPatch = let
     printVersion = writeShellScript "print-version" ''
       echo -n ${lib.escapeShellArg version}
diff --git a/pkgs/development/libraries/libremidi/default.nix b/pkgs/development/libraries/libremidi/default.nix
index d88ebeea3fb5..753bcef433fd 100644
--- a/pkgs/development/libraries/libremidi/default.nix
+++ b/pkgs/development/libraries/libremidi/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "A modern C++ MIDI real-time & file I/O library";
     homepage = "https://github.com/jcelerier/libremidi";
-    maintainers = [ lib.maintainers.paveloom ];
+    maintainers = [ ];
     license = lib.licenses.bsd2;
     platforms = lib.platforms.all;
   };
diff --git a/pkgs/development/libraries/libshumate/default.nix b/pkgs/development/libraries/libshumate/default.nix
index a7a9eda44f2f..30ee9803126e 100644
--- a/pkgs/development/libraries/libshumate/default.nix
+++ b/pkgs/development/libraries/libshumate/default.nix
@@ -79,7 +79,6 @@ stdenv.mkDerivation rec {
   passthru = {
     updateScript = gnome.updateScript {
       packageName = pname;
-      versionPolicy = "none";
     };
   };
 
diff --git a/pkgs/development/libraries/libsolv/default.nix b/pkgs/development/libraries/libsolv/default.nix
index 8f06936b5959..6af948f67828 100644
--- a/pkgs/development/libraries/libsolv/default.nix
+++ b/pkgs/development/libraries/libsolv/default.nix
@@ -16,14 +16,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "0.7.27";
+  version = "0.7.28";
   pname = "libsolv";
 
   src = fetchFromGitHub {
     owner = "openSUSE";
     repo = "libsolv";
     rev = version;
-    sha256 = "sha256-kVExzCHfPU/o+C5TTAv1J9H7GmYwVWCsIpVkkts42js=";
+    sha256 = "sha256-cL7SDwCzXM2qJQfiu/3nfAiFbcFNn1YXD23Sl3n9nzY=";
   };
 
   cmakeFlags = [
diff --git a/pkgs/development/libraries/libubox/default.nix b/pkgs/development/libraries/libubox/default.nix
index 2bcc5d0498c4..09837cd0c1d8 100644
--- a/pkgs/development/libraries/libubox/default.nix
+++ b/pkgs/development/libraries/libubox/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation {
   pname = "libubox";
-  version = "unstable-2023-11-28";
+  version = "unstable-2023-12-18";
 
   src = fetchgit {
     url = "https://git.openwrt.org/project/libubox.git";
-    rev = "e80dc00ee90c29ef56ae28f414b0e5bb361206e7";
-    hash = "sha256-R4Yz4C63LQTNBKyNyiLMQHfc5KJBPFldP1trmtEBb9U=";
+    rev = "6339204c212b2c3506554a8842030df5ec6fe9c6";
+    hash = "sha256-QgpORITt6MYgfzUpaI2T0Ge2a0iVHjDhdYI/nZ2HbJ8=";
   };
 
   cmakeFlags = [ "-DBUILD_EXAMPLES=OFF" (if with_lua then "-DLUAPATH=${placeholder "out"}/lib/lua" else "-DBUILD_LUA=OFF") ];
diff --git a/pkgs/development/libraries/libucl/default.nix b/pkgs/development/libraries/libucl/default.nix
index 9ba96644102e..f684b52a1105 100644
--- a/pkgs/development/libraries/libucl/default.nix
+++ b/pkgs/development/libraries/libucl/default.nix
@@ -25,13 +25,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "libucl";
-  version = "0.8.2";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "vstakhov";
     repo = pname;
     rev = version;
-    sha256 = "sha256-rpTc0gq8HquDow4NEkRSjyESEMrv8dAhX98yKKu/Fsk=";
+    sha256 = "sha256-uMkILLG2SC+Q+w7jb0PMsaTET2z1V9Ar0lQhXS1K2+g=";
   };
 
   nativeBuildInputs = [ pkg-config autoreconfHook ];
diff --git a/pkgs/development/libraries/libunwind/default.nix b/pkgs/development/libraries/libunwind/default.nix
index 6f05307381a0..cae3ebed89f6 100644
--- a/pkgs/development/libraries/libunwind/default.nix
+++ b/pkgs/development/libraries/libunwind/default.nix
@@ -1,22 +1,16 @@
-{ stdenv, lib, fetchurl, fetchpatch, autoreconfHook, xz, buildPackages }:
+{ stdenv, lib, fetchFromGitHub, fetchpatch, autoreconfHook, xz, buildPackages }:
 
 stdenv.mkDerivation rec {
   pname = "libunwind";
-  version = "1.6.2";
+  version = "1.7.2";
 
-  src = fetchurl {
-    url = "mirror://savannah/libunwind/${pname}-${version}.tar.gz";
-    sha256 = "sha256-SmrsZmmR+0XQiJxErt6K1usQgHHDVU/N/2cfnJR5SXY=";
+  src = fetchFromGitHub {
+    owner = "libunwind";
+    repo = "libunwind";
+    rev = "v${version}";
+    hash = "sha256-z5YCue0zadQnMEbGFniFvDjXNy6dSHQDQnXRXS6Uh/Y=";
   };
 
-  patches = [
-    # Fix for aarch64 and non-4K pages. Remove once upgraded past 1.6.2.
-    (fetchpatch {
-      url = "https://github.com/libunwind/libunwind/commit/e85b65cec757ef589f28957d0c6c21c498a03bdf.patch";
-      sha256 = "1lnlygvhqrdrjgw303pg2k2k4ms4gaghpjsgmhk47q83vy1yjwfg";
-    })
-  ];
-
   postPatch = if (stdenv.cc.isClang || stdenv.hostPlatform.isStatic) then ''
     substituteInPlace configure.ac --replace "-lgcc_s" ""
   '' else lib.optionalString stdenv.hostPlatform.isMusl ''
@@ -29,7 +23,11 @@ stdenv.mkDerivation rec {
 
   # Without latex2man, no man pages are installed despite being
   # prebuilt in the source tarball.
-  configureFlags = [ "LATEX2MAN=${buildPackages.coreutils}/bin/true" ];
+  configureFlags = [ "LATEX2MAN=${buildPackages.coreutils}/bin/true" ]
+  # See https://github.com/libunwind/libunwind/issues/693
+  ++ lib.optionals (with stdenv.hostPlatform; isAarch64 && isMusl && !isStatic) [
+    "CFLAGS=-mno-outline-atomics"
+  ];
 
   propagatedBuildInputs = [ xz ];
 
@@ -46,7 +44,19 @@ stdenv.mkDerivation rec {
     description = "A portable and efficient API to determine the call-chain of a program";
     maintainers = with maintainers; [ orivej ];
     # https://github.com/libunwind/libunwind#libunwind
-    platforms = [ "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux" "armv7l-linux" "i686-freebsd13" "i686-linux" "mips64el-linux" "mipsel-linux" "powerpc64-linux" "powerpc64le-linux" "riscv64-linux" "x86_64-freebsd13" "x86_64-linux" "x86_64-solaris" ];
+    platforms = [ "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux" "armv7l-linux" "i686-freebsd13" "i686-linux" "loongarch64-linux" "mips64el-linux" "mipsel-linux" "powerpc64-linux" "powerpc64le-linux" "riscv64-linux" "s390x-linux" "x86_64-freebsd13" "x86_64-linux" "x86_64-solaris" ];
+    # libunwind relies on getcontext/setcontext,
+    # and only has a musl implementation for some platforms
+    # https://github.com/libunwind/libunwind/issues/33
+    # https://github.com/libunwind/libunwind/issues/69
+    badPlatforms = [ {
+      isAarch64 = false;
+      isRiscV64 = false;
+      isS390x = false;
+      isx86_64 = false;
+      isMusl = true;
+      parsed = {};
+    } ];
     license = licenses.mit;
   };
 }
diff --git a/pkgs/development/libraries/libvgm/default.nix b/pkgs/development/libraries/libvgm/default.nix
index 31508b01fbd0..0d7c098255f2 100644
--- a/pkgs/development/libraries/libvgm/default.nix
+++ b/pkgs/development/libraries/libvgm/default.nix
@@ -40,15 +40,15 @@ let
   inherit (lib) optional optionals;
   onOff = val: if val then "ON" else "OFF";
 in
-stdenv.mkDerivation rec {
+stdenv.mkDerivation {
   pname = "libvgm";
-  version = "unstable-2023-08-14";
+  version = "unstable-2024-01-03";
 
   src = fetchFromGitHub {
     owner = "ValleyBell";
     repo = "libvgm";
-    rev = "079c4e737e6a73b38ae20125521d7d9eafda28e9";
-    sha256 = "hmaGIf9AQOYqrpnmKAB9I2vO+EXrzvoRaQ6Epdygy4o=";
+    rev = "223b6f9d629feda1982dc4bbeebd19fa63b987fb";
+    hash = "sha256-CrqgDuOsY+Hpp41De6oWJduj8d8ftMUanMEWJKh79rw=";
   };
 
   outputs = [
diff --git a/pkgs/development/libraries/libvirt/default.nix b/pkgs/development/libraries/libvirt/default.nix
index ff40c3693fff..17875c415b14 100644
--- a/pkgs/development/libraries/libvirt/default.nix
+++ b/pkgs/development/libraries/libvirt/default.nix
@@ -114,13 +114,13 @@ stdenv.mkDerivation rec {
   # NOTE: You must also bump:
   # <nixpkgs/pkgs/development/python-modules/libvirt/default.nix>
   # SysVirt in <nixpkgs/pkgs/top-level/perl-packages.nix>
-  version = "9.10.0";
+  version = "10.0.0";
 
   src = fetchFromGitLab {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-SYk3aseaVD31rnGKj/7eoLldGbOdJfKMw4tVDjtjcwY=";
+    hash = "sha256-xFl8AHcbeuydWzhJNnwZ3Bd7TQiTU8hjBxaALXvcLgE=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/libraries/libxmlb/default.nix b/pkgs/development/libraries/libxmlb/default.nix
index 391874e531d7..522d3546b8e0 100644
--- a/pkgs/development/libraries/libxmlb/default.nix
+++ b/pkgs/development/libraries/libxmlb/default.nix
@@ -18,7 +18,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libxmlb";
-  version = "0.3.14";
+  version = "0.3.15";
 
   outputs = [ "out" "lib" "dev" "devdoc" "installedTests" ];
 
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     owner = "hughsie";
     repo = "libxmlb";
     rev = version;
-    hash = "sha256-lpVXl/n/ecDLbbLQg9T+o4GdGZM7pNXGYTyVogNCl2E=";
+    hash = "sha256-S0wBVhfRa81mAmqpYYAKAyKLnfnVsXJEcGA21i5tdzo=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/libxslt/default.nix b/pkgs/development/libraries/libxslt/default.nix
index dbca7f7fc2b7..95ecbbc44dee 100644
--- a/pkgs/development/libraries/libxslt/default.nix
+++ b/pkgs/development/libraries/libxslt/default.nix
@@ -60,6 +60,8 @@ stdenv.mkDerivation rec {
     "--without-crypto"
   ];
 
+  enableParallelBuilding = true;
+
   postFixup = ''
     moveToOutput bin/xslt-config "$dev"
     moveToOutput lib/xsltConf.sh "$dev"
diff --git a/pkgs/development/libraries/libzip/default.nix b/pkgs/development/libraries/libzip/default.nix
index 14e2f4480824..b34318476033 100644
--- a/pkgs/development/libraries/libzip/default.nix
+++ b/pkgs/development/libraries/libzip/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , cmake
+, fetchpatch2
 , fetchurl
 , perl
 , zlib
@@ -24,6 +25,15 @@ stdenv.mkDerivation (finalAttrs: {
     sha256 = "sha256-lmmuXf46xbOJdTbchGaodMjPLA47H90I11snOIQpk2M=";
   };
 
+  patches = [
+    # https://github.com/nih-at/libzip/issues/404
+    (fetchpatch2 {
+      name = "Check-for-zstd_TARGET-before-using-it-in-a-regex.patch";
+      url = "https://github.com/nih-at/libzip/commit/c719428916b4d19e838f873b1a177b126a080d61.patch";
+      hash = "sha256-4ksbXEM8kNvs3wtbIaXLEQNSKaxl0es/sIg0EINaTHE=";
+    })
+  ];
+
   outputs = [ "out" "dev" "man" ];
 
   nativeBuildInputs = [ cmake perl groff ];
diff --git a/pkgs/development/libraries/live555/default.nix b/pkgs/development/libraries/live555/default.nix
deleted file mode 100644
index 369e9ff825f7..000000000000
--- a/pkgs/development/libraries/live555/default.nix
+++ /dev/null
@@ -1,75 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, darwin
-, openssl
-
-# major and only downstream dependency
-, vlc
-}:
-
-stdenv.mkDerivation rec {
-  pname = "live555";
-  version = "2023.05.10";
-
-  src = fetchurl {
-    urls = [
-      "http://www.live555.com/liveMedia/public/live.${version}.tar.gz"
-      "https://download.videolan.org/contrib/live555/live.${version}.tar.gz"
-      "mirror://sourceforge/slackbuildsdirectlinks/live.${version}.tar.gz"
-    ];
-    sha256 = "sha256-6ph9x4UYELkkJVIE9r25ycc5NOYbPcgAy9LRZebvGFY=";
-  };
-
-  nativeBuildInputs = lib.optional stdenv.isDarwin darwin.cctools;
-
-  buildInputs = [ openssl ];
-
-  postPatch = ''
-    substituteInPlace config.macosx-catalina \
-      --replace '/usr/lib/libssl.46.dylib' "${lib.getLib openssl}/lib/libssl.dylib" \
-      --replace '/usr/lib/libcrypto.44.dylib' "${lib.getLib openssl}/lib/libcrypto.dylib"
-    sed -i -e 's|/bin/rm|rm|g' genMakefiles
-    sed -i \
-      -e 's/$(INCLUDES) -I. -O2 -DSOCKLEN_T/$(INCLUDES) -I. -O2 -I. -fPIC -DRTSPCLIENT_SYNCHRONOUS_INTERFACE=1 -DSOCKLEN_T/g' \
-      config.linux
-  '' # condition from icu/base.nix
-    + lib.optionalString (stdenv.hostPlatform.libc == "glibc" || stdenv.hostPlatform.libc == "musl") ''
-    substituteInPlace liveMedia/include/Locale.hh \
-      --replace '<xlocale.h>' '<locale.h>'
-  '';
-
-  configurePhase = ''
-    runHook preConfigure
-
-    ./genMakefiles ${
-      if stdenv.isLinux then
-        "linux"
-      else if stdenv.isDarwin then
-        "macosx-catalina"
-      else
-        throw "Unsupported platform ${stdenv.hostPlatform.system}"}
-
-    runHook postConfigure
-  '';
-
-  makeFlags = [
-    "DESTDIR=${placeholder "out"}"
-    "PREFIX="
-  ];
-
-  enableParallelBuilding = true;
-
-  passthru.tests = {
-    inherit vlc;
-  };
-
-  meta = with lib; {
-    homepage = "http://www.live555.com/liveMedia/";
-    description = "Set of C++ libraries for multimedia streaming, using open standard protocols (RTP/RTCP, RTSP, SIP)";
-    changelog = "http://www.live555.com/liveMedia/public/changelog.txt";
-    license = licenses.lgpl21Plus;
-    maintainers = with maintainers; [ AndersonTorres ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/development/libraries/mailcore2/default.nix b/pkgs/development/libraries/mailcore2/default.nix
index 77e7669c0e12..86b4a320b68f 100644
--- a/pkgs/development/libraries/mailcore2/default.nix
+++ b/pkgs/development/libraries/mailcore2/default.nix
@@ -1,5 +1,6 @@
 { stdenv, lib, fetchFromGitHub, cmake, libetpan, icu, cyrus_sasl, libctemplate
 , libuchardet, pkg-config, glib, html-tidy, libxml2, libuuid, openssl
+, darwin
 }:
 
 stdenv.mkDerivation rec {
@@ -16,8 +17,14 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [
-    libetpan icu cyrus_sasl libctemplate libuchardet glib
-    html-tidy libxml2 libuuid openssl
+    libetpan cyrus_sasl libctemplate libuchardet
+    html-tidy libxml2 openssl
+  ] ++ lib.optionals stdenv.isLinux [
+    glib
+    icu
+    libuuid
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Foundation
   ];
 
   postPatch = ''
@@ -28,9 +35,14 @@ stdenv.mkDerivation rec {
        --replace "/usr/include/libxml2" "${libxml2.dev}/include/libxml2"
     substituteInPlace src/core/basetypes/MCHTMLCleaner.cpp \
       --replace buffio.h tidybuffio.h
+    substituteInPlace src/core/basetypes/MCString.cpp \
+      --replace "xmlErrorPtr" "const xmlError *"
+  '' + lib.optionalString (!stdenv.isDarwin) ''
+    substituteInPlace src/core/basetypes/MCICUTypes.h \
+      --replace "__CHAR16_TYPE__ UChar" "char16_t UChar"
   '';
 
-  cmakeFlags = [
+  cmakeFlags = lib.optionals (!stdenv.isDarwin) [
     "-DBUILD_SHARED_LIBS=ON"
   ];
 
@@ -39,10 +51,10 @@ stdenv.mkDerivation rec {
     cp -r src/include $out
 
     mkdir $out/lib
-    cp src/libMailCore.so $out/lib
+    cp src/libMailCore.* $out/lib
   '';
 
-  doCheck = true;
+  doCheck = !stdenv.isDarwin;
   checkPhase = ''
     (
       cd unittest
@@ -55,5 +67,6 @@ stdenv.mkDerivation rec {
     homepage    = "http://libmailcore.com";
     license     = licenses.bsd3;
     maintainers = with maintainers; [ ];
+    platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/maplibre-gl-native/default.nix b/pkgs/development/libraries/maplibre-gl-native/default.nix
index 65a5c266ee6a..3b2e988d4795 100644
--- a/pkgs/development/libraries/maplibre-gl-native/default.nix
+++ b/pkgs/development/libraries/maplibre-gl-native/default.nix
@@ -2,6 +2,7 @@
 , mkDerivation
 , fetchFromGitHub
 , fetchpatch
+, fetchpatch2
 , cmake
 , pkg-config
 , qtbase
@@ -30,6 +31,11 @@ mkDerivation rec {
       url = "https://git.alpinelinux.org/aports/plain/testing/mapbox-gl-native/0002-skip-license-check.patch?id=6751a93dca26b0b3ceec9eb151272253a2fe497e";
       sha256 = "1yybwzxbvn0lqb1br1fyg7763p2h117s6mkmywkl4l7qg9daa7ba";
     })
+    (fetchpatch2 {
+      name = "cstdint.patch";
+      url = "https://git.alpinelinux.org/aports/plain/community/maplibre-gl-native/cstdint.patch?id=ae8edc6b02df388ef37a69c12a5df25dd8550238";
+      hash = "sha256-o7wT/rk5vgwxEutAyIEAxwfKNxCoBtkhVcLjc7uTsYc=";
+    })
   ];
 
   postPatch = ''
diff --git a/pkgs/development/libraries/mbedtls/2.nix b/pkgs/development/libraries/mbedtls/2.nix
index 18793114c219..97d62fad3ced 100644
--- a/pkgs/development/libraries/mbedtls/2.nix
+++ b/pkgs/development/libraries/mbedtls/2.nix
@@ -1,6 +1,6 @@
 { callPackage }:
 
 callPackage ./generic.nix {
-  version = "2.28.5";
-  hash = "sha256-Gl4UQMSvAwYbOi2b/AUMz+zgkOl1o0UA2VveF/3ek8o=";
+  version = "2.28.7";
+  hash = "sha256-JI0Frbz4HkPqrLQNrSIj1ikN8201h4kd1wTwyPotERw=";
 }
diff --git a/pkgs/development/libraries/mbedtls/3.nix b/pkgs/development/libraries/mbedtls/3.nix
index ca069cca1ead..267349ac5d7b 100644
--- a/pkgs/development/libraries/mbedtls/3.nix
+++ b/pkgs/development/libraries/mbedtls/3.nix
@@ -1,6 +1,6 @@
 { callPackage }:
 
 callPackage ./generic.nix {
-  version = "3.5.0";
-  hash = "sha256-uHHQmaAmFS8Vd7PrAfRpK+aNi3pJ76XBC7rFWcd16NU=";
+  version = "3.5.2";
+  hash = "sha256-lVGmnSYccNmRS6vfF/fDiny5cYRPc/wJBpgciFLPUvM=";
 }
diff --git a/pkgs/development/libraries/mbedtls/generic.nix b/pkgs/development/libraries/mbedtls/generic.nix
index 3ca0b491fb89..2e79a593b7c3 100644
--- a/pkgs/development/libraries/mbedtls/generic.nix
+++ b/pkgs/development/libraries/mbedtls/generic.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.trustedfirmware.org/projects/mbed-tls/";
     changelog = "https://github.com/Mbed-TLS/mbedtls/blob/${pname}-${version}/ChangeLog";
     description = "Portable cryptographic and TLS library, formerly known as PolarSSL";
-    license = licenses.asl20;
+    license = [ licenses.asl20 /* or */ licenses.gpl2Plus ];
     platforms = platforms.all;
     maintainers = with maintainers; [ raphaelr ];
   };
diff --git a/pkgs/development/libraries/mdk-sdk/default.nix b/pkgs/development/libraries/mdk-sdk/default.nix
index 1bf8992f948c..711833cbda8a 100644
--- a/pkgs/development/libraries/mdk-sdk/default.nix
+++ b/pkgs/development/libraries/mdk-sdk/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mdk-sdk";
-  version = "0.23.1";
+  version = "0.24.0";
 
   src = fetchurl {
     url = "https://github.com/wang-bin/mdk-sdk/releases/download/v${version}/mdk-sdk-linux-x64.tar.xz";
-    hash = "sha256-qC6FL76MJZ2XrrYePQFpWk5VPLTeoRd5ns93AK3iZjw=";
+    hash = "sha256-kRihFM2+vPg6OAL4ARz0dLLUvAFvZsbrCu5TBI6b2RI=";
   };
 
   nativeBuildInputs = [ autoPatchelfHook ];
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index cb9d19c30c84..970081741b14 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -60,6 +60,7 @@
 , vulkanLayers ? lib.optionals (!stdenv.isDarwin) [ "device-select" "overlay" "intel-nullhw" ] # No Vulkan support on Darwin
 , OpenGL, Xplugin
 , withValgrind ? lib.meta.availableOn stdenv.hostPlatform valgrind-light && !valgrind-light.meta.broken, valgrind-light
+, withLibunwind ? lib.meta.availableOn stdenv.hostPlatform libunwind
 , enableGalliumNine ? stdenv.isLinux
 , enableOSMesa ? stdenv.isLinux
 , enableOpenCL ? stdenv.isLinux && stdenv.isx86_64
@@ -217,6 +218,8 @@ self = stdenv.mkDerivation {
     "-Dclang-libdir=${llvmPackages.clang-unwrapped.lib}/lib"
   ]  ++ lib.optionals (!withValgrind) [
     "-Dvalgrind=disabled"
+  ]  ++ lib.optionals (!withLibunwind) [
+    "-Dlibunwind=disabled"
   ] ++ lib.optional enablePatentEncumberedCodecs
     "-Dvideo-codecs=h264dec,h264enc,h265dec,h265enc,vc1dec"
   ++ lib.optional (vulkanLayers != []) "-D vulkan-layers=${builtins.concatStringsSep "," vulkanLayers}";
@@ -226,7 +229,10 @@ self = stdenv.mkDerivation {
     libX11 libXext libxcb libXt libXfixes libxshmfence libXrandr
     libffi libvdpau libelf libXvMC
     libpthreadstubs openssl /*or another sha1 provider*/
-    zstd libunwind
+    zstd
+  ] ++ lib.optionals withLibunwind [
+    libunwind
+  ] ++ [
     python3Packages.python # for shebang
   ] ++ lib.optionals haveWayland [ wayland wayland-protocols ]
     ++ lib.optionals stdenv.isLinux [ libomxil-bellagio libva-minimal udev lm_sensors ]
diff --git a/pkgs/development/libraries/mpdecimal/default.nix b/pkgs/development/libraries/mpdecimal/default.nix
index 3a2e4b1fe7d0..514c61ffcb0c 100644
--- a/pkgs/development/libraries/mpdecimal/default.nix
+++ b/pkgs/development/libraries/mpdecimal/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "mpdecimal";
-  version = "2.5.1";
+  version = "4.0.0";
   outputs = [ "out" "cxx" "doc" "dev" ];
 
   src = fetchurl {
     url = "https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-${version}.tar.gz";
-    hash = "sha256-n5zUwEH5m1xJ/7e1nZ8S2VtoPYhYVgiqVqYwdmeysh8=";
+    hash = "sha256-lCRFwyRbInMP1Bpnp8XCMdEcsbmTa5wPdjNPt9C0Row=";
   };
 
   configureFlags = [ "LD=${stdenv.cc.targetPrefix}cc" ];
diff --git a/pkgs/development/libraries/mpich/default.nix b/pkgs/development/libraries/mpich/default.nix
index f53a3268b739..d3bc279506f9 100644
--- a/pkgs/development/libraries/mpich/default.nix
+++ b/pkgs/development/libraries/mpich/default.nix
@@ -36,14 +36,16 @@ stdenv.mkDerivation  rec {
     "FFLAGS=-fallow-argument-mismatch" # https://github.com/pmodels/mpich/issues/4300
     "FCFLAGS=-fallow-argument-mismatch"
   ] ++ lib.optionals pmixSupport [
-    "--with-pmix=${lib.getDev pmix}"
+    "--with-pmix"
   ];
 
   enableParallelBuilding = true;
 
   nativeBuildInputs = [ gfortran python3 ];
   buildInputs = [ perl openssh hwloc ]
-    ++ lib.optional (!stdenv.isDarwin) ch4backend;
+    ++ lib.optional (!stdenv.isDarwin) ch4backend
+    ++ lib.optional pmixSupport pmix;
+
 
   doCheck = true;
 
diff --git a/pkgs/development/libraries/muparser/default.nix b/pkgs/development/libraries/muparser/default.nix
deleted file mode 100644
index 910a25134989..000000000000
--- a/pkgs/development/libraries/muparser/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{lib, stdenv, fetchurl, unzip, setfile}:
-
-stdenv.mkDerivation rec {
-  pname = "muparser";
-  version = "2.2.3";
-  url-version = lib.replaceStrings ["."] ["_"] version;
-
-  src = fetchurl {
-    url = "mirror://sourceforge/muparser/muparser_v${url-version}.zip";
-    sha256 = "00l92k231yb49wijzkspa2l58mapn6vh2dlxnlg0pawjjfv33s6z";
-  };
-
-  nativeBuildInputs = [ unzip ];
-  buildInputs = lib.optionals stdenv.isDarwin [setfile];
-
-  meta = {
-    homepage = "http://muparser.sourceforge.net";
-    description = "An extensible high performance math expression parser library written in C++";
-    license = lib.licenses.mit;
-    platforms = lib.platforms.linux ++ lib.platforms.darwin;
-  };
-}
diff --git a/pkgs/development/libraries/nanoflann/default.nix b/pkgs/development/libraries/nanoflann/default.nix
index bfd4b87dc07c..b740e83f4c25 100644
--- a/pkgs/development/libraries/nanoflann/default.nix
+++ b/pkgs/development/libraries/nanoflann/default.nix
@@ -6,20 +6,20 @@
 }:
 
 stdenv.mkDerivation (finalAttrs: {
-  version = "1.5.3";
+  version = "1.5.4";
   pname = "nanoflann";
 
   src = fetchFromGitHub {
     owner = "jlblancoc";
     repo = "nanoflann";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-cTi3Q+SUSNQkSgi2K7nPqfqEQFMkbchbn2+pE2ol9xQ=";
+    hash = "sha256-7Vt/x9jHRqtVTv0MbHxIwd1/cTUB4aIgOiI+7cz0iu0=";
   };
 
   nativeBuildInputs = [ cmake ];
 
   cmakeFlags = [
-    "-DBUILD_EXAMPLES=${if buildExamples then "ON" else "OFF"}"
+    (lib.cmakeBool "BUILD_EXAMPLES" buildExamples)
   ];
 
   doCheck = true;
diff --git a/pkgs/development/libraries/ncnn/cmakelists.patch b/pkgs/development/libraries/ncnn/cmakelists.patch
index bdb3063acec4..a43d7b0c4b72 100644
--- a/pkgs/development/libraries/ncnn/cmakelists.patch
+++ b/pkgs/development/libraries/ncnn/cmakelists.patch
@@ -1,18 +1,27 @@
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index c453d23e..66b4aa24 100644
+index 785e2cd..459024d 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -560,6 +560,8 @@ if(NCNN_VULKAN)
-                 message(WARNING "GLSLANG_TARGET_DIR must be defined! NCNN_SYSTEM_GLSLANG will be turned off.")
+@@ -589,7 +589,8 @@ endif()
+ if(NCNN_VULKAN)
+     if(NCNN_SYSTEM_GLSLANG)
+         find_package(Threads)
+-        find_package(glslang QUIET)
++        find_package(SPIRV-Tools-opt REQUIRED)
++        find_package(glslang REQUIRED)
+         if(glslang_FOUND)
+             add_library(glslang ALIAS glslang::glslang)
+             add_library(SPIRV ALIAS glslang::SPIRV)
+@@ -601,7 +602,6 @@ if(NCNN_VULKAN)
                  set(NCNN_SYSTEM_GLSLANG OFF)
              else()
-+                include("${GLSLANG_TARGET_DIR}/SPIRV-Tools/SPIRV-ToolsTarget.cmake")
-+                include("${GLSLANG_TARGET_DIR}/SPIRV-Tools-opt/SPIRV-Tools-optTargets.cmake")
                  include("${GLSLANG_TARGET_DIR}/OSDependentTargets.cmake")
-                 include("${GLSLANG_TARGET_DIR}/OGLCompilerTargets.cmake")
+-                include("${GLSLANG_TARGET_DIR}/OGLCompilerTargets.cmake")
                  if(EXISTS "${GLSLANG_TARGET_DIR}/HLSLTargets.cmake")
+                     # hlsl support can be optional
+                     include("${GLSLANG_TARGET_DIR}/HLSLTargets.cmake")
 diff --git a/src/ncnn.pc.in b/src/ncnn.pc.in
-index b580fcee..be2becd0 100644
+index b580fce..be2becd 100644
 --- a/src/ncnn.pc.in
 +++ b/src/ncnn.pc.in
 @@ -1,6 +1,6 @@
diff --git a/pkgs/development/libraries/ncnn/default.nix b/pkgs/development/libraries/ncnn/default.nix
index 69967eae160d..71b4bbc8fd42 100644
--- a/pkgs/development/libraries/ncnn/default.nix
+++ b/pkgs/development/libraries/ncnn/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ncnn";
-  version = "20231027";
+  version = "20240102";
 
   src = fetchFromGitHub {
     owner = "Tencent";
     repo = pname;
     rev = version;
-    sha256 = "sha256-ak/5QTOptg5M2I+3olnrBK6JZ01haIE6oh+sagEboAc=";
+    hash = "sha256-kk70oLY+2QJOkyYq10whLRMxBuibQMWMOBA9dcbKf/I=";
   };
 
   patches = [
@@ -33,8 +33,6 @@ stdenv.mkDerivation rec {
     "-DNCNN_BUILD_TOOLS=0"
     "-DNCNN_SYSTEM_GLSLANG=1"
     "-DNCNN_PYTHON=0" # Should be an attribute
-
-    "-DGLSLANG_TARGET_DIR=${glslang}/lib/cmake"
   ];
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/neatvnc/default.nix b/pkgs/development/libraries/neatvnc/default.nix
index f5efbdcc082e..281689c60b67 100644
--- a/pkgs/development/libraries/neatvnc/default.nix
+++ b/pkgs/development/libraries/neatvnc/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "neatvnc";
-  version = "0.7.1";
+  version = "0.7.2";
 
   src = fetchFromGitHub {
     owner = "any1";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-bRlz5RW+NUSTgzjRM9alZjSrzmF8/7p4IIXqK/HEcJo=";
+    sha256 = "sha256-S2LMD15MYd/t/Z8B1OQ0hVrZQLR6Gf4LB45mhmDwblg=";
   };
 
   strictDeps = true;
diff --git a/pkgs/development/libraries/ngtcp2/default.nix b/pkgs/development/libraries/ngtcp2/default.nix
index add6771e1bb9..948fb0c071f4 100644
--- a/pkgs/development/libraries/ngtcp2/default.nix
+++ b/pkgs/development/libraries/ngtcp2/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ngtcp2";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "ngtcp2";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-z6lvtfO5XL/bZgbE+Sak+32QzjEhAdOnkpIO731h+bk=";
+    hash = "sha256-/lHsHkSySKyZZdjTTYCo0a6cwcMcbOWNvAEcO36/kEw=";
   };
 
   outputs = [ "out" "dev" "doc" ];
diff --git a/pkgs/development/libraries/ngtcp2/gnutls.nix b/pkgs/development/libraries/ngtcp2/gnutls.nix
index f4760ea9e669..f8b31b703fcf 100644
--- a/pkgs/development/libraries/ngtcp2/gnutls.nix
+++ b/pkgs/development/libraries/ngtcp2/gnutls.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ngtcp2";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "ngtcp2";
     repo = "ngtcp2";
     rev = "v${version}";
-    hash = "sha256-z6lvtfO5XL/bZgbE+Sak+32QzjEhAdOnkpIO731h+bk=";
+    hash = "sha256-/lHsHkSySKyZZdjTTYCo0a6cwcMcbOWNvAEcO36/kEw=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/nss/latest.nix b/pkgs/development/libraries/nss/latest.nix
index 21c96d8bc923..43cb876fa884 100644
--- a/pkgs/development/libraries/nss/latest.nix
+++ b/pkgs/development/libraries/nss/latest.nix
@@ -5,6 +5,6 @@
 #       Example: nix-shell ./maintainers/scripts/update.nix --argstr package cacert
 
 import ./generic.nix {
-  version = "3.96.1";
-  hash = "sha256-HhN3wZEdi9R/KD0nl3+et+94LBJjGLDVqDX8v5qGrqQ=";
+  version = "3.97";
+  hash = "sha256-d26v8a+5EkQ6cFg5SZirT4L22AxfIteiUx4I42msyqw=";
 }
diff --git a/pkgs/development/libraries/ogre/default.nix b/pkgs/development/libraries/ogre/default.nix
index 83355c235f31..f6cd2987aa0d 100644
--- a/pkgs/development/libraries/ogre/default.nix
+++ b/pkgs/development/libraries/ogre/default.nix
@@ -6,7 +6,6 @@
 , unzip
 , SDL2
 , boost
-, freeimage
 , freetype
 , libpng
 , ois
@@ -55,7 +54,6 @@ let
     buildInputs = [
       SDL2
       boost
-      freeimage
       freetype
       libpng
       ois
diff --git a/pkgs/development/libraries/opencomposite/default.nix b/pkgs/development/libraries/opencomposite/default.nix
index 05d09fc1178e..b3b00e83142d 100644
--- a/pkgs/development/libraries/opencomposite/default.nix
+++ b/pkgs/development/libraries/opencomposite/default.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation {
   pname = "opencomposite";
-  version = "unstable-2023-09-11";
+  version = "unstable-2024-01-14";
 
   src = fetchFromGitLab {
     owner = "znixian";
     repo = "OpenOVR";
-    rev = "cca18158a4b6921df54e84a3b23ff459f76a2bde";
-    hash = "sha256-VREApt4juz283aJVLZoBbqg01PNs4XBxmpr/UIMlaK8=";
+    rev = "57ecdd2675fd1baeab7d9cf55b6e827f19a65530";
+    hash = "sha256-OOJNQzFRPSdLrIaDrGke12ubIiSjdD/vvHBz0WjGf3c=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/openexr/default.nix b/pkgs/development/libraries/openexr/default.nix
index 1a135fa6d4a8..6d45ca33e982 100644
--- a/pkgs/development/libraries/openexr/default.nix
+++ b/pkgs/development/libraries/openexr/default.nix
@@ -9,7 +9,7 @@
 
 stdenv.mkDerivation rec {
   pname = "openexr";
-  version = "2.5.8";
+  version = "2.5.10";
 
   outputs = [ "bin" "dev" "out" "doc" ];
 
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     owner = "AcademySoftwareFoundation";
     repo = "openexr";
     rev = "v${version}";
-    sha256 = "sha256-N7XdDaDsYdx4TXvHplQDTvhHNUmW5rntdaTKua4C0es=";
+    hash = "sha256-xdC+T79ZQBx/XhuIXtP93Roj0N9lF+E65ReEKQ4kIsg=";
   };
 
   patches = [
@@ -36,8 +36,7 @@ stdenv.mkDerivation rec {
       sha256 = "sha256-DrpldpNgN5pWKzIuuPIrynGX3EpP8YhJlu+lLfNFGxQ=";
     })
 
-    # Backport gcc-13 fix:
-    #   https://github.com/AcademySoftwareFoundation/openexr/pull/1264
+    # GCC 13 fixes
     ./gcc-13.patch
   ];
 
diff --git a/pkgs/development/libraries/openexr/gcc-13.patch b/pkgs/development/libraries/openexr/gcc-13.patch
index d508b6028f76..6264a8df2433 100644
--- a/pkgs/development/libraries/openexr/gcc-13.patch
+++ b/pkgs/development/libraries/openexr/gcc-13.patch
@@ -1,33 +1,25 @@
-https://github.com/AcademySoftwareFoundation/openexr/pull/1264
-https://github.com/AcademySoftwareFoundation/openexr/commit/d0088a3c6943a9a53fc24e29885414d082d531fe.patch
+From 8aa103fe6e815514990e59708468eabc36f7f332 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=A9clairevoyant?=
+ <848000+eclairevoyant@users.noreply.github.com>
+Date: Fri, 5 Jan 2024 18:12:16 -0500
+Subject: [PATCH] gcc13
 
---- a/OpenEXR/IlmImf/ImfDwaCompressor.cpp
-+++ b/OpenEXR/IlmImf/ImfDwaCompressor.cpp
-@@ -159,6 +159,7 @@
- #include <limits>
- 
- #include <cstddef>
-+#include <cstdint>
- 
- 
- // Windows specific addition to prevent the indirect import of the redefined min/max macros
---- a/OpenEXR/IlmImf/ImfHuf.cpp
-+++ b/OpenEXR/IlmImf/ImfHuf.cpp
-@@ -53,6 +53,7 @@
- #include <cstring>
- #include <cassert>
+---
+ OpenEXR/IlmImf/ImfTiledMisc.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/OpenEXR/IlmImf/ImfTiledMisc.cpp b/OpenEXR/IlmImf/ImfTiledMisc.cpp
+index 06ea3144..749537d4 100644
+--- a/OpenEXR/IlmImf/ImfTiledMisc.cpp
++++ b/OpenEXR/IlmImf/ImfTiledMisc.cpp
+@@ -46,6 +46,7 @@
+ #include <ImfTileDescription.h>
  #include <algorithm>
+ #include <limits>
 +#include <cstdint>
  
- 
- using namespace std;
---- a/OpenEXR/IlmImf/ImfMisc.cpp
-+++ b/OpenEXR/IlmImf/ImfMisc.cpp
-@@ -52,6 +52,7 @@
- #include <ImfConvert.h>
- #include <ImfPartType.h>
- #include <ImfTileDescription.h>
-+#include <cstdint>
  #include "ImfNamespace.h"
  
- OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_ENTER
+-- 
+2.42.0
+
diff --git a/pkgs/development/libraries/openimageio/default.nix b/pkgs/development/libraries/openimageio/default.nix
index f2e98e0d34b6..7d2e78794d8a 100644
--- a/pkgs/development/libraries/openimageio/default.nix
+++ b/pkgs/development/libraries/openimageio/default.nix
@@ -3,7 +3,6 @@
 , boost
 , cmake
 , giflib
-, ilmbase
 , libjpeg
 , libpng
 , libtiff
@@ -41,7 +40,6 @@ stdenv.mkDerivation rec {
   buildInputs = [
     boost
     giflib
-    ilmbase
     libjpeg
     libpng
     libtiff
diff --git a/pkgs/development/libraries/openturns/default.nix b/pkgs/development/libraries/openturns/default.nix
index 751f98aae6e5..a2fa42caea60 100644
--- a/pkgs/development/libraries/openturns/default.nix
+++ b/pkgs/development/libraries/openturns/default.nix
@@ -26,13 +26,13 @@
 
 stdenv.mkDerivation rec {
   pname = "openturns";
-  version = "1.21.2";
+  version = "1.22";
 
   src = fetchFromGitHub {
     owner = "openturns";
     repo = "openturns";
     rev = "v${version}";
-    sha256 = "sha256-Zq+Z3jLjdba3566H4RdwztqbRRID5K5yHvoGmgzq8QM=";
+    sha256 = "sha256-ku3/mPoa1YJVJB99R/kWlOubIO+OZAiKfPqS/DrtJQk=";
   };
 
   nativeBuildInputs = [ cmake ] ++ lib.optional enablePython python3Packages.sphinx;
diff --git a/pkgs/development/libraries/openvdb/default.nix b/pkgs/development/libraries/openvdb/default.nix
index 214149edad94..c5397b259a30 100644
--- a/pkgs/development/libraries/openvdb/default.nix
+++ b/pkgs/development/libraries/openvdb/default.nix
@@ -1,9 +1,9 @@
-{ lib, stdenv, fetchFromGitHub, cmake, openexr, boost, jemalloc, c-blosc, ilmbase, tbb }:
+{ lib, stdenv, fetchFromGitHub, cmake, boost, jemalloc, c-blosc, tbb, zlib }:
 
 stdenv.mkDerivation rec
 {
   pname = "openvdb";
-  version = "10.0.1";
+  version = "11.0.0";
 
   outputs = [ "out" "dev" ];
 
@@ -11,15 +11,20 @@ stdenv.mkDerivation rec
     owner = "AcademySoftwareFoundation";
     repo = "openvdb";
     rev = "v${version}";
-    sha256 = "sha256-kaf5gpGYVWinmnRwR/IafE1SJcwmP2psfe/UZdtH1Og=";
+    sha256 = "sha256-wDDjX0nKZ4/DIbEX33PoxR43dJDj2NF3fm+Egug62GQ=";
   };
 
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = [ openexr boost tbb jemalloc c-blosc ilmbase ];
+  buildInputs = [ boost tbb jemalloc c-blosc zlib ];
 
   cmakeFlags = [ "-DOPENVDB_CORE_STATIC=OFF" ];
 
+  # error: aligned deallocation function of type 'void (void *, std::align_val_t) noexcept' is only available on macOS 10.13 or newer
+  env = lib.optionalAttrs (stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13" && lib.versionAtLeast tbb.version "2021.8.0") {
+    NIX_CFLAGS_COMPILE = "-faligned-allocation";
+  };
+
   postFixup = ''
     substituteInPlace $dev/lib/cmake/OpenVDB/FindOpenVDB.cmake \
       --replace \''${OPENVDB_LIBRARYDIR} $out/lib \
diff --git a/pkgs/development/libraries/openvino/cmake.patch b/pkgs/development/libraries/openvino/cmake.patch
deleted file mode 100644
index 0918baba918f..000000000000
--- a/pkgs/development/libraries/openvino/cmake.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff --git a/cmake/developer_package/linux_name.cmake b/cmake/developer_package/linux_name.cmake
-index 3e8c775770..2d5e00fb8b 100644
---- a/cmake/developer_package/linux_name.cmake
-+++ b/cmake/developer_package/linux_name.cmake
-@@ -6,25 +6,7 @@ include(target_flags)
- 
- if(LINUX)
-     function(get_linux_name res_var)
--        if(EXISTS "/etc/lsb-release")
--            # linux version detection using cat /etc/lsb-release
--            file(READ "/etc/lsb-release" release_data)
--            set(name_regex "DISTRIB_ID=([^ \n]*)\n")
--            set(version_regex "DISTRIB_RELEASE=([0-9]+(\\.[0-9]+)?)")
--        else()
--            execute_process(COMMAND find -L /etc/ -maxdepth 1 -type f -name *-release -exec cat {} \;
--                            OUTPUT_VARIABLE release_data
--                            RESULT_VARIABLE result)
--            string(REPLACE "Red Hat" "CentOS" release_data "${release_data}")
--            set(name_regex "NAME=\"([^ \"\n]*).*\"\n")
--            set(version_regex "VERSION=\"([0-9]+(\\.[0-9]+)?)[^\n]*\"")
--        endif()
--
--        string(REGEX MATCH ${name_regex} name ${release_data})
--        set(os_name ${CMAKE_MATCH_1})
--
--        string(REGEX MATCH ${version_regex} version ${release_data})
--        set(os_name "${os_name} ${CMAKE_MATCH_1}")
-+        set(os_name "NixOS @version@")
- 
-         if(os_name)
-             set(${res_var} ${os_name} PARENT_SCOPE)
diff --git a/pkgs/development/libraries/openvino/default.nix b/pkgs/development/libraries/openvino/default.nix
index 26fac012948d..186e1048823a 100644
--- a/pkgs/development/libraries/openvino/default.nix
+++ b/pkgs/development/libraries/openvino/default.nix
@@ -1,8 +1,8 @@
 { lib
-, stdenv
+, gcc12Stdenv
 , fetchFromGitHub
+, fetchpatch2
 , fetchurl
-, substituteAll
 , cudaSupport ? opencv.cudaSupport or false
 
 # build
@@ -14,45 +14,62 @@
 , pkg-config
 , python
 , shellcheck
+, sphinx
 
 # runtime
+, flatbuffers
 , libusb1
 , libxml2
 , ocl-icd
 , opencv
 , protobuf
 , pugixml
+, snappy
 , tbb
 , cudaPackages
 }:
 
 let
+  inherit (lib)
+    cmakeBool
+  ;
+
+  stdenv = gcc12Stdenv;
+
   # See GNA_VERSION in cmake/dependencies.cmake
-  gna_version = "03.05.00.1906";
+  gna_version = "03.05.00.2116";
   gna = fetchurl {
     url = "https://storage.openvinotoolkit.org/dependencies/gna/gna_${gna_version}.zip";
-    hash = "sha256-SlvobZwCaw4Qr6wqV/x8mddisw49UGq7OjOA+8/icm4=";
+    hash = "sha256-lgNQVncCvaFydqxMBg11JPt8587XhQBL2GHIH/K/4sU=";
   };
 
   tbbbind_version = "2_5";
   tbbbind = fetchurl {
-    url = "https://storage.openvinotoolkit.org/dependencies/thirdparty/linux/tbbbind_${tbbbind_version}_static_lin_v3.tgz";
-    hash = "sha256-053rJiwGmBteLS48WT6fyb5izk/rkd1OZI6SdTZZprM=";
+    url = "https://storage.openvinotoolkit.org/dependencies/thirdparty/linux/tbbbind_${tbbbind_version}_static_lin_v4.tgz";
+    hash = "sha256-Tr8wJGUweV8Gb7lhbmcHxrF756ZdKdNRi1eKdp3VTuo=";
   };
 in
 
 stdenv.mkDerivation rec {
   pname = "openvino";
-  version = "2023.0.0";
+  version = "2023.3.0";
 
   src = fetchFromGitHub {
     owner = "openvinotoolkit";
     repo = "openvino";
     rev = "refs/tags/${version}";
     fetchSubmodules = true;
-    hash = "sha256-z88SgAZ0UX9X7BhBA7/NU/UhVLltb6ANKolruU8YiZQ=";
+    hash = "sha256-dXlQhar5gz+1iLmDYXUY0jZKh4rJ+khRpoZQphJXfcU=";
   };
 
+  patches = [
+    (fetchpatch2 {
+      name = "enable-js-toggle.patch";
+      url = "https://github.com/openvinotoolkit/openvino/commit/0a8f1383826d949c497fe3d05fef9ad2b662fa7e.patch";
+      hash = "sha256-mQYunouPo3tRlD5Yp4EUth324ccNnVX8zmjPHvJBYKw=";
+    })
+  ];
+
   outputs = [
     "out"
     "python"
@@ -71,17 +88,11 @@ stdenv.mkDerivation rec {
       setuptools
     ]))
     shellcheck
+    sphinx
   ] ++ lib.optionals cudaSupport [
     cudaPackages.cuda_nvcc
   ];
 
-  patches = [
-    (substituteAll {
-      src = ./cmake.patch;
-      inherit (lib) version;
-    })
-  ];
-
   postPatch = ''
     mkdir -p temp/gna_${gna_version}
     pushd temp/
@@ -100,30 +111,35 @@ stdenv.mkDerivation rec {
   dontUseCmakeBuildDir = true;
 
   cmakeFlags = [
-    "-DCMAKE_PREFIX_PATH:PATH=${placeholder "out"}"
+    "-Wno-dev"
     "-DCMAKE_MODULE_PATH:PATH=${placeholder "out"}/lib/cmake"
-    "-DENABLE_LTO:BOOL=ON"
-    # protobuf
-    "-DENABLE_SYSTEM_PROTOBUF:BOOL=OFF"
-    "-DProtobuf_LIBRARIES=${protobuf}/lib/libprotobuf${stdenv.hostPlatform.extensions.sharedLibrary}"
-    # tbb
-    "-DENABLE_SYSTEM_TBB:BOOL=ON"
-    # opencv
-    "-DENABLE_OPENCV:BOOL=ON"
+    "-DCMAKE_PREFIX_PATH:PATH=${placeholder "out"}"
     "-DOpenCV_DIR=${opencv}/lib/cmake/opencv4/"
-    # pugixml
-    "-DENABLE_SYSTEM_PUGIXML:BOOL=ON"
-    # onednn
-    "-DENABLE_ONEDNN_FOR_GPU:BOOL=OFF"
-    # intel gna
-    "-DENABLE_INTEL_GNA:BOOL=ON"
-    # python
-    "-DENABLE_PYTHON:BOOL=ON"
-    # tests
-    "-DENABLE_CPPLINT:BOOL=OFF"
-    "-DBUILD_TESTING:BOOL=OFF"
-    "-DENABLE_SAMPLES:BOOL=OFF"
-    (lib.cmakeBool "CMAKE_VERBOSE_MAKEFILE" true)
+    "-DProtobuf_LIBRARIES=${protobuf}/lib/libprotobuf${stdenv.hostPlatform.extensions.sharedLibrary}"
+
+    (cmakeBool "CMAKE_VERBOSE_MAKEFILE" true)
+    (cmakeBool "NCC_SYLE" false)
+    (cmakeBool "BUILD_TESTING" false)
+    (cmakeBool "ENABLE_CPPLINT" false)
+    (cmakeBool "ENABLE_TESTING" false)
+    (cmakeBool "ENABLE_SAMPLES" false)
+
+    # features
+    (cmakeBool "ENABLE_INTEL_CPU" true)
+    (cmakeBool "ENABLE_INTEL_GNA" true)
+    (cmakeBool "ENABLE_JS" false)
+    (cmakeBool "ENABLE_LTO" true)
+    (cmakeBool "ENABLE_ONEDNN_FOR_GPU" false)
+    (cmakeBool "ENABLE_OPENCV" true)
+    (cmakeBool "ENABLE_PYTHON" true)
+
+    # system libs
+    (cmakeBool "ENABLE_SYSTEM_FLATBUFFERS" true)
+    (cmakeBool "ENABLE_SYSTEM_OPENCL" true)
+    (cmakeBool "ENABLE_SYSTEM_PROTOBUF" false)
+    (cmakeBool "ENABLE_SYSTEM_PUGIXML" true)
+    (cmakeBool "ENABLE_SYSTEM_SNAPPY" true)
+    (cmakeBool "ENABLE_SYSTEM_TBB" true)
   ];
 
   env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isAarch64 "-Wno-narrowing";
@@ -133,12 +149,13 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    flatbuffers
     libusb1
     libxml2
     ocl-icd
     opencv.cxxdev
-    protobuf
     pugixml
+    snappy
     tbb
   ] ++ lib.optionals cudaSupport [
     cudaPackages.cuda_cudart
@@ -147,11 +164,9 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   postInstall = ''
-    pushd $out/python/python${lib.versions.majorMinor python.version}
     mkdir -p $python
-    mv ./* $python/
-    popd
-    rm -r $out/python
+    mv $out/python/* $python/
+    rmdir $out/python
   '';
 
   postFixup = ''
diff --git a/pkgs/development/libraries/openxr-loader/default.nix b/pkgs/development/libraries/openxr-loader/default.nix
index 32544bc327bc..3c739d30d386 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.0.32";
+  version = "1.0.33";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "OpenXR-SDK-Source";
     rev = "release-${version}";
-    sha256 = "sha256-Np91NevE0XiFSZ27cpwAUjm0XY2/IuugGDcfG17aV2c=";
+    sha256 = "sha256-26CRpxiTfZOq6sQSl0H53UmYzPY/6mP33EPObdkwnQs=";
   };
 
   nativeBuildInputs = [ cmake python3 pkg-config ];
diff --git a/pkgs/development/libraries/p11-kit/default.nix b/pkgs/development/libraries/p11-kit/default.nix
index 1e01ed4a607a..6127b83813c7 100644
--- a/pkgs/development/libraries/p11-kit/default.nix
+++ b/pkgs/development/libraries/p11-kit/default.nix
@@ -39,7 +39,9 @@ stdenv.mkDerivation rec {
     docbook-xsl-nons
     docbook_xml_dtd_43
     gettext
-  ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
+  ] ++ lib.optionals
+    (!stdenv.buildPlatform.canExecute stdenv.hostPlatform
+      && !stdenv.hostPlatform.isMinGW) [
     mesonEmulatorHook
   ];
 
diff --git a/pkgs/development/libraries/pangolin/default.nix b/pkgs/development/libraries/pangolin/default.nix
index 727f41ca344b..4618a6d43187 100644
--- a/pkgs/development/libraries/pangolin/default.nix
+++ b/pkgs/development/libraries/pangolin/default.nix
@@ -6,13 +6,13 @@
 stdenv.mkDerivation rec {
   pname = "pangolin";
 
-  version = "0.8";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "stevenlovegrove";
     repo = "Pangolin";
     rev = "v${version}";
-    sha256 = "sha256-X8TZWJOQOCItYt/F8E5ahiaPJXoppu9qBlEqfHP0vRc=";
+    sha256 = "sha256-B5YuNcJZHjR3dlVs66rySi68j29O3iMtlQvCjTUZBeY=";
   };
 
   nativeBuildInputs = [ cmake pkg-config doxygen ];
diff --git a/pkgs/development/libraries/pangomm/2.48.nix b/pkgs/development/libraries/pangomm/2.48.nix
index 52affe360f84..0e8bbe80dd84 100644
--- a/pkgs/development/libraries/pangomm/2.48.nix
+++ b/pkgs/development/libraries/pangomm/2.48.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pangomm";
-  version= "2.50.1";
+  version= "2.50.2";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-zMmSNBPkCMK/9jffZjJIMn1ygi8R45S0I+HFZSt9khQ=";
+    sha256 = "sha256-G8WrTqMoBEJYDWgxgibas2zu38Moj52DcRz3z6tQqfs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/pangomm/default.nix b/pkgs/development/libraries/pangomm/default.nix
index ccabdfdcfe8a..02a76869cf1e 100644
--- a/pkgs/development/libraries/pangomm/default.nix
+++ b/pkgs/development/libraries/pangomm/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pangomm";
-  version= "2.46.3";
+  version= "2.46.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-QQ/gTUcaYI8/AnPToX2EAkHZEe0P8sdYqYWcZsbyQ3k=";
+    sha256 = "sha256-uSAWZhUmQk3kuTd/FRL1l4H0H7FsnAJn1hM7oc1o2yI=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/pdfhummus/default.nix b/pkgs/development/libraries/pdfhummus/default.nix
index bc587d83f158..bfba4ad09620 100644
--- a/pkgs/development/libraries/pdfhummus/default.nix
+++ b/pkgs/development/libraries/pdfhummus/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pdfhummus";
-  version = "4.6.2";
+  version = "4.6.3";
 
   src = fetchFromGitHub {
     owner = "galkahana";
     repo = "PDF-Writer";
     rev = "v${version}";
-    hash = "sha256-PXiLP0lgqBdDbHHfvRT/d0M1jGjMVZZ3VDYnByzkKeI=";
+    hash = "sha256-6Hp5hacMpVdsiUvMSXBQ5432tPrkHSOiVoWa91sv38k=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/pinocchio/default.nix b/pkgs/development/libraries/pinocchio/default.nix
index 63ae2bcf62c9..add7ef6fde22 100644
--- a/pkgs/development/libraries/pinocchio/default.nix
+++ b/pkgs/development/libraries/pinocchio/default.nix
@@ -13,14 +13,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "pinocchio";
-  version = "2.6.21";
+  version = "2.7.0";
 
   src = fetchFromGitHub {
     owner = "stack-of-tasks";
     repo = finalAttrs.pname;
     rev = "v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-IaWAXzdzhU/wov+9ChzUeCp9SFNFV2/vGToXC35dkb8=";
+    hash = "sha256-yhrG+MilGJkvwLUNTAgNhDqUWGjPswjrbg38yOLsmHc=";
   };
 
   strictDeps = true;
@@ -48,7 +48,7 @@ stdenv.mkDerivation (finalAttrs: {
   ] ++ lib.optionals pythonSupport [
     "-DBUILD_WITH_LIBPYTHON=ON"
   ] ++ lib.optionals (pythonSupport && stdenv.isDarwin) [
-    # AssertionError: '.' != '/tmp/nix-build-pinocchio-2.6.21.drv/sou[84 chars].dae'
+    # AssertionError: '.' != '/tmp/nix-build-pinocchio-2.7.0.drv/sou[84 chars].dae'
     "-DCMAKE_CTEST_ARGUMENTS='--exclude-regex;test-py-bindings_geometry_model_urdf'"
   ] ++ lib.optionals (!pythonSupport) [
     "-DBUILD_PYTHON_INTERFACE=OFF"
diff --git a/pkgs/development/libraries/pipewire/default.nix b/pkgs/development/libraries/pipewire/default.nix
index fa5cb97b214f..0d1e3b03a09a 100644
--- a/pkgs/development/libraries/pipewire/default.nix
+++ b/pkgs/development/libraries/pipewire/default.nix
@@ -81,7 +81,7 @@ let
 
   self = stdenv.mkDerivation rec {
     pname = "pipewire";
-    version = "1.0.0";
+    version = "1.0.1";
 
     outputs = [
       "out"
@@ -97,7 +97,7 @@ let
       owner = "pipewire";
       repo = "pipewire";
       rev = version;
-      sha256 = "sha256-mfnMluxJAxDbB6JlIM6HJ0zg7e1q3ia3uFbht6zeHCk=";
+      sha256 = "sha256-rvf0sZRgDDLcqroLg7hcMUqXD/4JT+3lBRX6/m+3Ry8=";
     };
 
     patches = [
diff --git a/pkgs/development/libraries/pixman/default.nix b/pkgs/development/libraries/pixman/default.nix
index 76ec2244c833..121bb03f4cac 100644
--- a/pkgs/development/libraries/pixman/default.nix
+++ b/pkgs/development/libraries/pixman/default.nix
@@ -1,6 +1,8 @@
 { lib
 , stdenv
 , fetchurl
+, meson
+, ninja
 , pkg-config
 , libpng
 , glib /*just passthru*/
@@ -12,41 +14,57 @@
 , tigervnc
 , wlroots
 , xwayland
+
+, gitUpdater
 }:
 
 stdenv.mkDerivation rec {
   pname = "pixman";
-  version = "0.42.2";
+  version = "0.43.0";
 
   src = fetchurl {
     urls = [
       "mirror://xorg/individual/lib/${pname}-${version}.tar.gz"
       "https://cairographics.org/releases/${pname}-${version}.tar.gz"
     ];
-    hash = "sha256-6hSA762i/ZSLx1Nm98NJ4cltMpfQmj/mJibjjiNKYl4=";
+    hash = "sha256-plwoIJhY+xa+5Q2AnID5Co5BXA5P2DIQeKGCJ4WlVgo=";
   };
 
   separateDebugInfo = !stdenv.hostPlatform.isStatic;
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ meson ninja pkg-config ];
 
   buildInputs = [ libpng ];
 
-  configureFlags = lib.optional stdenv.isAarch32 "--disable-arm-iwmmxt"
-    # Disable until https://gitlab.freedesktop.org/pixman/pixman/-/issues/46 is resolved
-    ++ lib.optional (stdenv.isAarch64 && !stdenv.cc.isGNU) "--disable-arm-a64-neon";
+  # Default "enabled" value attempts to enable CPU features on all
+  # architectures and requires used to disable them:
+  #   https://gitlab.freedesktop.org/pixman/pixman/-/issues/88
+  mesonAutoFeatures = "auto";
+  mesonFlags = [
+    "-Diwmmxt=disabled"
+  ]
+  # Disable until https://gitlab.freedesktop.org/pixman/pixman/-/issues/46 is resolved
+  ++ lib.optional (stdenv.isAarch64 && !stdenv.cc.isGNU) "-Da64-neon=disabled";
 
   preConfigure = ''
     # https://gitlab.freedesktop.org/pixman/pixman/-/issues/62
     export OMP_NUM_THREADS=$((NIX_BUILD_CORES > 184 ? 184 : NIX_BUILD_CORES))
   '';
 
+  enableParallelBuilding = true;
+
   doCheck = true;
 
   postInstall = glib.flattenInclude;
 
-  passthru.tests = {
-    inherit cairo qemu scribus tigervnc wlroots xwayland;
+  passthru = {
+    tests = {
+      inherit cairo qemu scribus tigervnc wlroots xwayland;
+    };
+    updateScript = gitUpdater {
+      url = "https://gitlab.freedesktop.org/pixman/pixman.git";
+      rev-prefix = "pixman-";
+    };
   };
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/pmix/default.nix b/pkgs/development/libraries/pmix/default.nix
index f5fb65f7989b..78605179f710 100644
--- a/pkgs/development/libraries/pmix/default.nix
+++ b/pkgs/development/libraries/pmix/default.nix
@@ -1,5 +1,7 @@
 { lib, stdenv, fetchFromGitHub, perl, autoconf, automake
-, libtool, python3, flex, libevent, hwloc, munge, zlib, pandoc, gitMinimal
+, removeReferencesTo, libtool, python3, flex, libevent
+, targetPackages, makeWrapper
+, hwloc, munge, zlib, pandoc, gitMinimal
 } :
 
 stdenv.mkDerivation rec {
@@ -14,6 +16,8 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
+  outputs = [ "out" "dev" ];
+
   postPatch = ''
     patchShebangs ./autogen.pl
     patchShebangs ./config
@@ -28,6 +32,8 @@ stdenv.mkDerivation rec {
     flex
     gitMinimal
     python3
+    removeReferencesTo
+    makeWrapper
   ];
 
   buildInputs = [ libevent hwloc munge zlib ];
@@ -46,6 +52,27 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     find $out/lib/ -name "*.la" -exec rm -f \{} \;
+
+    moveToOutput "bin/pmix_info" "''${!outputDev}"
+    moveToOutput "bin/pmixcc" "''${!outputDev}"
+    moveToOutput "share/pmix/pmixcc-wrapper-data.txt" "''${!outputDev}"
+
+    # The path to the pmixcc-wrapper-data.txt is hard coded and
+    # points to $out instead of dev. Use wrapper to fix paths.
+    wrapProgram $dev/bin/pmixcc \
+      --set PMIX_INCLUDEDIR $dev/include \
+      --set PMIX_PKGDATADIR $dev/share/pmix
+  '';
+
+  postFixup = ''
+    # The build info (parameters to ./configure) are hardcoded
+    # into the library. This clears all references to $dev/include.
+    remove-references-to -t $dev $(readlink -f $out/lib/libpmix.so)
+
+    # Pin the compiler to the current version in a cross compiler friendly way.
+    # Same pattern as for openmpi (see https://github.com/NixOS/nixpkgs/pull/58964#discussion_r275059427).
+    sed -i 's:compiler=.*:compiler=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}cc:' \
+      $dev/share/pmix/pmixcc-wrapper-data.txt
   '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/poco/default.nix b/pkgs/development/libraries/poco/default.nix
index b4ba1790d58d..2358d19240a2 100644
--- a/pkgs/development/libraries/poco/default.nix
+++ b/pkgs/development/libraries/poco/default.nix
@@ -3,12 +3,12 @@
 stdenv.mkDerivation rec {
   pname = "poco";
 
-  version = "1.12.5";
+  version = "1.12.5p2";
 
   src = fetchFromGitHub {
     owner = "pocoproject";
     repo = "poco";
-    sha256 = "sha256-2macXa2pi5FebSrTIfSQbIiafNCXczNQEP+PFbFxylw=";
+    sha256 = "sha256-UAseNOC9n+OooDl4E67qcndJ02fAgmp2d8Ii/IyPvhg=";
     rev = "poco-${version}-release";
   };
 
diff --git a/pkgs/development/libraries/protobuf/25.nix b/pkgs/development/libraries/protobuf/25.nix
index b994f6060942..0b05e81cc029 100644
--- a/pkgs/development/libraries/protobuf/25.nix
+++ b/pkgs/development/libraries/protobuf/25.nix
@@ -1,6 +1,6 @@
 { callPackage, ... } @ args:
 
 callPackage ./generic.nix ({
-  version = "25.1";
-  hash = "sha256-w6556kxftVZ154LrZB+jv9qK+QmMiUOGj6EcNwiV+yo=";
+  version = "25.2";
+  hash = "sha256-Bw7xOgcGLshFppH4qD8E48D8v21ZJRaRkK19LPSATMg=";
 } // args)
diff --git a/pkgs/development/libraries/qrencode/default.nix b/pkgs/development/libraries/qrencode/default.nix
index a0e23813ade2..83c20fcd5120 100644
--- a/pkgs/development/libraries/qrencode/default.nix
+++ b/pkgs/development/libraries/qrencode/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, pkg-config, SDL2, libpng, libiconv, libobjc }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: rec {
   pname = "qrencode";
   version = "4.1.1";
 
@@ -16,13 +16,9 @@ stdenv.mkDerivation rec {
   buildInputs = [ libiconv libpng ]
     ++ lib.optionals stdenv.isDarwin [ libobjc ];
 
-  configureFlags = [
-    "--with-tests"
-  ];
-
   nativeCheckInputs = [ SDL2 ];
 
-  doCheck = true;
+  doCheck = false;
 
   checkPhase = ''
     runHook preCheck
@@ -34,6 +30,11 @@ stdenv.mkDerivation rec {
     runHook postCheck
   '';
 
+  passthru.tests = finalAttrs.finalPackage.overrideAttrs (_: {
+    configureFlags = [ "--with-tests" ];
+    doCheck = true;
+  });
+
   meta = with lib; {
     homepage = "https://fukuchi.org/works/qrencode/";
     description = "C library for encoding data in a QR Code symbol";
@@ -47,4 +48,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     mainProgram = "qrencode";
   };
-}
+})
diff --git a/pkgs/development/libraries/qt-5/5.15/default.nix b/pkgs/development/libraries/qt-5/5.15/default.nix
index 7a5ff60c9acb..b0e92290fe5b 100644
--- a/pkgs/development/libraries/qt-5/5.15/default.nix
+++ b/pkgs/development/libraries/qt-5/5.15/default.nix
@@ -51,6 +51,8 @@ let
       ./qtdeclarative.patch
       # prevent headaches from stale qmlcache data
       ./qtdeclarative-default-disable-qmlcache.patch
+      # add version specific QML import path
+      ./qtdeclarative-qml-paths.patch
     ];
     qtlocation = lib.optionals stdenv.cc.isClang [
       # Fix build with Clang 16
diff --git a/pkgs/development/libraries/qt-5/5.15/qtdeclarative-qml-paths.patch b/pkgs/development/libraries/qt-5/5.15/qtdeclarative-qml-paths.patch
new file mode 100644
index 000000000000..e207fa4df3bd
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.15/qtdeclarative-qml-paths.patch
@@ -0,0 +1,33 @@
+diff --git a/src/qml/qml/qqmlimport.cpp b/src/qml/qml/qqmlimport.cpp
+index 289f11d006..9b0a48c6c7 100644
+--- a/src/qml/qml/qqmlimport.cpp
++++ b/src/qml/qml/qqmlimport.cpp
+@@ -1897,17 +1897,22 @@ QQmlImportDatabase::QQmlImportDatabase(QQmlEngine *e)
+     addImportPath(installImportsPath);
+ 
+     // env import paths
+-    if (Q_UNLIKELY(!qEnvironmentVariableIsEmpty("QML2_IMPORT_PATH"))) {
+-        const QString envImportPath = qEnvironmentVariable("QML2_IMPORT_PATH");
++    auto addEnvImportPath = [this](const char *var) {
+ #if defined(Q_OS_WIN)
+         QLatin1Char pathSep(';');
+ #else
+         QLatin1Char pathSep(':');
+ #endif
+-        QStringList paths = envImportPath.split(pathSep, Qt::SkipEmptyParts);
+-        for (int ii = paths.count() - 1; ii >= 0; --ii)
+-            addImportPath(paths.at(ii));
+-    }
++        if (Q_UNLIKELY(!qEnvironmentVariableIsEmpty(var))) {
++            const QString envImportPath = qEnvironmentVariable(var);
++            QStringList paths = envImportPath.split(pathSep, Qt::SkipEmptyParts);
++            for (int ii = paths.count() - 1; ii >= 0; --ii)
++                addImportPath(paths.at(ii));
++        }
++    };
++
++    addEnvImportPath("QML2_IMPORT_PATH");
++    addEnvImportPath("NIXPKGS_QT5_QML_IMPORT_PATH");
+ 
+     addImportPath(QStringLiteral("qrc:/qt-project.org/imports"));
+     addImportPath(QCoreApplication::applicationDirPath());
diff --git a/pkgs/development/libraries/qt-5/hooks/wrap-qt-apps-hook.sh b/pkgs/development/libraries/qt-5/hooks/wrap-qt-apps-hook.sh
index 2127be5e0a2a..94df0a1a8e66 100644
--- a/pkgs/development/libraries/qt-5/hooks/wrap-qt-apps-hook.sh
+++ b/pkgs/development/libraries/qt-5/hooks/wrap-qt-apps-hook.sh
@@ -31,7 +31,7 @@ qtHostPathHook() {
     local qmlDir="$1/${qtQmlPrefix:?}"
     if [ -d "$qmlDir" ]
     then
-        qtWrapperArgs+=(--prefix QML2_IMPORT_PATH : "$qmlDir")
+        qtWrapperArgs+=(--prefix NIXPKGS_QT5_QML_IMPORT_PATH : "$qmlDir")
     fi
 }
 addEnvHooks "$targetOffset" qtHostPathHook
diff --git a/pkgs/development/libraries/qt-6/default.nix b/pkgs/development/libraries/qt-6/default.nix
index 2610c8463b2e..a1d597adcd1d 100644
--- a/pkgs/development/libraries/qt-6/default.nix
+++ b/pkgs/development/libraries/qt-6/default.nix
@@ -164,7 +164,7 @@ let
       qtwayland = callPackage ./modules/qtwayland.nix { };
       qtwebchannel = callPackage ./modules/qtwebchannel.nix { };
       qtwebengine = callPackage ./modules/qtwebengine.nix {
-        inherit (darwin) bootstrap_cmds cctools xnu;
+        inherit (darwin) autoSignDarwinBinariesHook bootstrap_cmds cctools xnu;
         inherit (darwin.apple_sdk_11_0) libpm libunwind;
         inherit (darwin.apple_sdk_11_0.libs) sandbox;
         inherit (darwin.apple_sdk_11_0.frameworks)
diff --git a/pkgs/development/libraries/qt-6/hooks/wrap-qt-apps-hook.sh b/pkgs/development/libraries/qt-6/hooks/wrap-qt-apps-hook.sh
index 8b135a7d7492..2d858055693c 100644
--- a/pkgs/development/libraries/qt-6/hooks/wrap-qt-apps-hook.sh
+++ b/pkgs/development/libraries/qt-6/hooks/wrap-qt-apps-hook.sh
@@ -31,7 +31,7 @@ if [[ -z "${__nix_wrapQtAppsHook-}" ]]; then
 
         local qmlDir="$1/${qtQmlPrefix:?}"
         if [ -d "$qmlDir" ]; then
-            qtWrapperArgs+=(--prefix QML2_IMPORT_PATH : "$qmlDir")
+            qtWrapperArgs+=(--prefix NIXPKGS_QT6_QML_IMPORT_PATH : "$qmlDir")
         fi
     }
     addEnvHooks "$targetOffset" qtHostPathHook
diff --git a/pkgs/development/libraries/qt-6/modules/qtdeclarative.nix b/pkgs/development/libraries/qt-6/modules/qtdeclarative.nix
index afdb24d1d291..697556e30edc 100644
--- a/pkgs/development/libraries/qt-6/modules/qtdeclarative.nix
+++ b/pkgs/development/libraries/qt-6/modules/qtdeclarative.nix
@@ -12,5 +12,7 @@ qtModule {
   patches = [
     # prevent headaches from stale qmlcache data
     ../patches/qtdeclarative-default-disable-qmlcache.patch
+    # add version specific QML import path
+    ../patches/qtdeclarative-qml-paths.patch
   ];
 }
diff --git a/pkgs/development/libraries/qt-6/modules/qtwebengine.nix b/pkgs/development/libraries/qt-6/modules/qtwebengine.nix
index affb512a22f2..564c5c60eb51 100644
--- a/pkgs/development/libraries/qt-6/modules/qtwebengine.nix
+++ b/pkgs/development/libraries/qt-6/modules/qtwebengine.nix
@@ -60,6 +60,7 @@
 , mesa
 , enableProprietaryCodecs ? true
   # darwin
+, autoSignDarwinBinariesHook
 , bootstrap_cmds
 , cctools
 , xcbuild
@@ -104,6 +105,8 @@ qtModule {
     which
     gn
     nodejs
+  ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
+    autoSignDarwinBinariesHook
   ] ++ lib.optionals stdenv.isDarwin [
     bootstrap_cmds
     cctools
@@ -185,16 +188,19 @@ qtModule {
     "-DQT_FEATURE_pdf_xfa_gif=ON"
     "-DQT_FEATURE_pdf_xfa_png=ON"
     "-DQT_FEATURE_pdf_xfa_tiff=ON"
-    "-DQT_FEATURE_webengine_system_icu=ON"
     "-DQT_FEATURE_webengine_system_libevent=ON"
-    "-DQT_FEATURE_webengine_system_libxml=ON"
     "-DQT_FEATURE_webengine_system_ffmpeg=ON"
     # android only. https://bugreports.qt.io/browse/QTBUG-100293
     # "-DQT_FEATURE_webengine_native_spellchecker=ON"
     "-DQT_FEATURE_webengine_sanitizer=ON"
     "-DQT_FEATURE_webengine_kerberos=ON"
   ] ++ lib.optionals stdenv.isLinux [
+    "-DQT_FEATURE_webengine_system_libxml=ON"
     "-DQT_FEATURE_webengine_webrtc_pipewire=ON"
+
+    # Appears not to work on some platforms
+    # https://github.com/Homebrew/homebrew-core/issues/104008
+    "-DQT_FEATURE_webengine_system_icu=ON"
   ] ++ lib.optionals enableProprietaryCodecs [
     "-DQT_FEATURE_webengine_proprietary_codecs=ON"
   ] ++ lib.optionals stdenv.isDarwin [
@@ -222,11 +228,9 @@ qtModule {
 
     # Text rendering
     harfbuzz
-    icu
 
     openssl
     glib
-    libxml2
     libxslt
     lcms2
 
@@ -241,6 +245,9 @@ qtModule {
     protobuf
     jsoncpp
 
+    icu
+    libxml2
+
     # Audio formats
     alsa-lib
     pulseaudio
diff --git a/pkgs/development/libraries/qt-6/patches/qtdeclarative-qml-paths.patch b/pkgs/development/libraries/qt-6/patches/qtdeclarative-qml-paths.patch
new file mode 100644
index 000000000000..39b7a30892cf
--- /dev/null
+++ b/pkgs/development/libraries/qt-6/patches/qtdeclarative-qml-paths.patch
@@ -0,0 +1,12 @@
+diff --git a/src/qml/qml/qqmlimport.cpp b/src/qml/qml/qqmlimport.cpp
+index 2e482c220d..4873809bec 100644
+--- a/src/qml/qml/qqmlimport.cpp
++++ b/src/qml/qml/qqmlimport.cpp
+@@ -1517,6 +1517,7 @@ QQmlImportDatabase::QQmlImportDatabase(QQmlEngine *e)
+     // env import paths
+     addEnvImportPath("QML_IMPORT_PATH");
+     addEnvImportPath("QML2_IMPORT_PATH");
++    addEnvImportPath("NIXPKGS_QT6_QML_IMPORT_PATH");
+ 
+     addImportPath(QStringLiteral("qrc:/qt/qml"));
+     addImportPath(QStringLiteral("qrc:/qt-project.org/imports"));
diff --git a/pkgs/development/libraries/qt-6/patches/qtwebengine-libxml-2.12.patch b/pkgs/development/libraries/qt-6/patches/qtwebengine-libxml-2.12.patch
index 1fc7d837f8f3..3c3d59b488da 100644
--- a/pkgs/development/libraries/qt-6/patches/qtwebengine-libxml-2.12.patch
+++ b/pkgs/development/libraries/qt-6/patches/qtwebengine-libxml-2.12.patch
@@ -1,22 +1,29 @@
 --- a/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor.h
 +++ b/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor.h
-@@ -77,7 +77,7 @@ class XSLTProcessor final : public ScriptWrappable {
+@@ -77,7 +77,12 @@ class XSLTProcessor final : public ScriptWrappable {
  
    void reset();
  
--  static void ParseErrorFunc(void* user_data, xmlError*);
++#if LIBXML_VERSION >= 21200
 +  static void ParseErrorFunc(void* user_data, const xmlError*);
++#else
+   static void ParseErrorFunc(void* user_data, xmlError*);
++#endif
++
    static void GenericErrorFunc(void* user_data, const char* msg, ...);
  
    // Only for libXSLT callbacks
 --- a/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc
 +++ b/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc
-@@ -66,7 +66,7 @@ void XSLTProcessor::GenericErrorFunc(void*, const char*, ...) {
+@@ -66,7 +66,11 @@ void XSLTProcessor::GenericErrorFunc(void*, const char*, ...) {
    // It would be nice to do something with this error message.
  }
  
--void XSLTProcessor::ParseErrorFunc(void* user_data, xmlError* error) {
++#if LIBXML_VERSION >= 21200
 +void XSLTProcessor::ParseErrorFunc(void* user_data, const xmlError* error) {
++#else
+ void XSLTProcessor::ParseErrorFunc(void* user_data, xmlError* error) {
++#endif
    FrameConsole* console = static_cast<FrameConsole*>(user_data);
    if (!console)
      return;
diff --git a/pkgs/development/libraries/qtkeychain/default.nix b/pkgs/development/libraries/qtkeychain/default.nix
index 1f9ffb373082..564eb31a7139 100644
--- a/pkgs/development/libraries/qtkeychain/default.nix
+++ b/pkgs/development/libraries/qtkeychain/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qtkeychain";
-  version = "0.14.1";
+  version = "0.14.2";
 
   src = fetchFromGitHub {
     owner = "frankosterfeld";
     repo = "qtkeychain";
     rev = version;
-    sha256 = "sha256-LclYOuIYn+jYCvg69uHFlV3VcZ2KWdr8lFyCSBIB7Kw=";
+    sha256 = "sha256-aRBhg4RwK2jUQWW/OmzNSMUScaFUPdbWbApD37CXPoI=";
   };
 
   dontWrapQtApps = true;
diff --git a/pkgs/development/libraries/qwlroots/default.nix b/pkgs/development/libraries/qwlroots/default.nix
new file mode 100644
index 000000000000..85282afb15b5
--- /dev/null
+++ b/pkgs/development/libraries/qwlroots/default.nix
@@ -0,0 +1,69 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, pkg-config
+, wrapQtAppsHook
+, wayland-scanner
+, qtbase
+, wayland
+, wayland-protocols
+, wlr-protocols
+, pixman
+, mesa
+, vulkan-loader
+, libinput
+, xorg
+, seatd
+, wlroots
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "qwlroots";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "vioken";
+    repo = "qwlroots";
+    rev = finalAttrs.version;
+    hash = "sha256-ev4oCKR43XaYNTavj9XI3RAtB6RFprChpBFsrA2nVsM=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    wrapQtAppsHook
+    wayland-scanner
+  ];
+
+  buildInputs = [
+    qtbase
+    wayland
+    wayland-protocols
+    wlr-protocols
+    pixman
+    mesa
+    vulkan-loader
+    libinput
+    xorg.libXdmcp
+    xorg.xcbutilerrors
+    seatd
+  ];
+
+  propagatedBuildInputs = [
+    wlroots
+  ];
+
+  cmakeFlags = [
+    (lib.cmakeBool "PREFER_QT_5" (lib.versionOlder qtbase.version "6"))
+  ];
+
+  meta = {
+    description = "Qt and QML bindings for wlroots";
+    homepage = "https://github.com/vioken/qwlroots";
+    license = with lib.licenses; [ gpl3Only lgpl3Only asl20 ];
+    platforms = wlroots.meta.platforms;
+    maintainers = with lib.maintainers; [ rewine ];
+  };
+})
+
diff --git a/pkgs/development/libraries/rapidfuzz-cpp/default.nix b/pkgs/development/libraries/rapidfuzz-cpp/default.nix
index 8375d55e4056..f24da2c899f1 100644
--- a/pkgs/development/libraries/rapidfuzz-cpp/default.nix
+++ b/pkgs/development/libraries/rapidfuzz-cpp/default.nix
@@ -3,17 +3,18 @@
 , fetchFromGitHub
 , cmake
 , catch2_3
+, python3Packages
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "rapidfuzz-cpp";
-  version = "2.2.3";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     owner = "maxbachmann";
     repo = "rapidfuzz-cpp";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-yEDihPvTGGL5gsd4QMYNRyfLucKLItIQM4pm6W0i2W8=";
+    hash = "sha256-N9yGOxlk1+wgRXWLbDIXWQz+/pwbnYVs3ub4/16Nzws=";
   };
 
   nativeBuildInputs = [
@@ -33,6 +34,13 @@ stdenv.mkDerivation (finalAttrs: {
     catch2_3
   ];
 
+  passthru = {
+    tests = {
+      /** `python3Packages.levenshtein` crucially depends on `rapidfuzz-cpp` */
+      inherit (python3Packages) levenshtein;
+    };
+  };
+
   meta = {
     description = "Rapid fuzzy string matching in C++ using the Levenshtein Distance";
     homepage = "https://github.com/maxbachmann/rapidfuzz-cpp";
diff --git a/pkgs/development/libraries/readline/readline-8.2-patches.nix b/pkgs/development/libraries/readline/readline-8.2-patches.nix
index bc075df237c7..77d5c495bac1 100644
--- a/pkgs/development/libraries/readline/readline-8.2-patches.nix
+++ b/pkgs/development/libraries/readline/readline-8.2-patches.nix
@@ -8,4 +8,7 @@ patch: [
 (patch "005" "16ac25jz1a1mgkpfp1sydqf6qpsfh0s0dcmrnjpqbhg5va3s6av2")
 (patch "006" "18gmh6y3klh0vv28cyqz4is3rlb32pl7f1kf5r482kfjq3w5zd67")
 (patch "007" "1xmnpahs983n4w0gn3j0wr8nh1dpva33yj7fvfmhm46ph2wsa4ar")
+(patch "008" "0smjjzhwxi2ibpdisnk53lh1pzgka6rhlqyh3662xy69v34ysxx1")
+(patch "009" "05m1fwbs7mbs3pz3pg87gbbayandrrcgaqawzliqb6g1jbk8b61x")
+(patch "010" "0k3vyrjs2g6y2cfs03l2gp37fhxgqpiwvxb1c7z4q88cbb32x3km")
 ]
diff --git a/pkgs/development/libraries/redis-plus-plus/default.nix b/pkgs/development/libraries/redis-plus-plus/default.nix
index 03a5c9ba3308..bd40330194a7 100644
--- a/pkgs/development/libraries/redis-plus-plus/default.nix
+++ b/pkgs/development/libraries/redis-plus-plus/default.nix
@@ -8,13 +8,13 @@ assert enableShared || enableStatic;
 
 stdenv.mkDerivation rec {
   pname = "redis-plus-plus";
-  version = "1.3.11";
+  version = "1.3.12";
 
   src = fetchFromGitHub {
     owner = "sewenew";
     repo = "redis-plus-plus";
     rev = version;
-    sha256 = "sha256-ZALnF2h+9LSeh1OA33fdVyT0PYcGen5j+qsufBv5t5I=";
+    sha256 = "sha256-RI7lLvRmS5BglvwRQ8OzSpYIyaKkf/DKrJ3fn1mWYfs=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/rlottie/default.nix b/pkgs/development/libraries/rlottie/default.nix
index 3d4e8a5a6641..cbc46f819e5f 100644
--- a/pkgs/development/libraries/rlottie/default.nix
+++ b/pkgs/development/libraries/rlottie/default.nix
@@ -2,7 +2,7 @@
 , stdenv
 , fetchFromGitHub
 , fetchpatch
-, meson
+, cmake
 , ninja
 , pkg-config
 }:
@@ -26,7 +26,11 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  nativeBuildInputs = [ meson ninja pkg-config ];
+  nativeBuildInputs = [ cmake ninja pkg-config ];
+
+  cmakeFlags = [
+    (lib.cmakeFeature "LIB_INSTALL_DIR" "${placeholder "out"}/lib")
+  ];
 
   env.NIX_CFLAGS_COMPILE = lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) "-U__ARM_NEON__";
 
diff --git a/pkgs/development/libraries/rubberband/default.nix b/pkgs/development/libraries/rubberband/default.nix
index d0d1a93ad462..7830e62ccb18 100644
--- a/pkgs/development/libraries/rubberband/default.nix
+++ b/pkgs/development/libraries/rubberband/default.nix
@@ -1,20 +1,26 @@
 { lib, stdenv, fetchurl, pkg-config, libsamplerate, libsndfile, fftw
+, lv2, jdk
 , vamp-plugin-sdk, ladspaH, meson, ninja, darwin }:
 
 stdenv.mkDerivation rec {
   pname = "rubberband";
-  version = "3.1.0";
+  version = "3.3.0";
 
   src = fetchurl {
     url = "https://breakfastquay.com/files/releases/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-uVp22lzbOWZ3DGARXs2Dj4QGESD4hMO/3JBPdZMeyao=";
+    hash = "sha256-2e+J4rjvn4WxOsPC+uww4grPLJ86nIxFzmN/K8leV2w=";
   };
 
-  nativeBuildInputs = [ pkg-config meson ninja ];
-  buildInputs = [ libsamplerate libsndfile fftw vamp-plugin-sdk ladspaH ] ++ lib.optionals stdenv.isDarwin
+  nativeBuildInputs = [ pkg-config meson ninja jdk ];
+  buildInputs = [ libsamplerate libsndfile fftw vamp-plugin-sdk ladspaH lv2 ] ++ lib.optionals stdenv.isDarwin
     (with darwin.apple_sdk.frameworks; [Accelerate CoreGraphics CoreVideo]);
   makeFlags = [ "AR:=$(AR)" ];
 
+  # TODO: package boost-test, so we can run the test suite. (Currently it fails
+  # to find libboost_unit_test_framework.a.)
+  mesonFlags = [ "-Dtests=disabled" ];
+  doCheck = false;
+
   meta = with lib; {
     description = "High quality software library for audio time-stretching and pitch-shifting";
     homepage = "https://breakfastquay.com/rubberband/";
diff --git a/pkgs/development/libraries/rure/Cargo.lock b/pkgs/development/libraries/rure/Cargo.lock
index 1dd2aeb38b4e..a5ba9527382e 100644
--- a/pkgs/development/libraries/rure/Cargo.lock
+++ b/pkgs/development/libraries/rure/Cargo.lock
@@ -13,9 +13,9 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.152"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "memchr"
@@ -25,9 +25,9 @@ checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "regex"
-version = "1.10.2"
+version = "1.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -37,9 +37,9 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.4.3"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
 dependencies = [
  "aho-corasick",
  "memchr",
diff --git a/pkgs/development/libraries/science/astronomy/indilib/default.nix b/pkgs/development/libraries/science/astronomy/indilib/default.nix
index 3fae85187deb..c38842f128c7 100644
--- a/pkgs/development/libraries/science/astronomy/indilib/default.nix
+++ b/pkgs/development/libraries/science/astronomy/indilib/default.nix
@@ -19,13 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "indilib";
-  version = "2.0.5";
+  version = "2.0.6";
 
   src = fetchFromGitHub {
     owner = "indilib";
     repo = "indi";
     rev = "v${version}";
-    hash = "sha256-n1zj1U26l30JYr5Tio5zwv8v/e2cjEeIRGsyncMtt9I=";
+    hash = "sha256-3MeF2G/rr//c7cgGzqDzmqoNKvR+7Kkbid1g8znKPkg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/science/biology/htslib/default.nix b/pkgs/development/libraries/science/biology/htslib/default.nix
index d89b6dbbe679..8b1aa7d01e81 100644
--- a/pkgs/development/libraries/science/biology/htslib/default.nix
+++ b/pkgs/development/libraries/science/biology/htslib/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "htslib";
-  version = "1.19";
+  version = "1.19.1";
 
   src = fetchurl {
     url = "https://github.com/samtools/htslib/releases/download/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-h1HEDE+n0fI6aGTFsgpzdE+L5oI5U1rncpxffTlNBzY=";
+    sha256 = "sha256-Ii1001dPtnsVjGmIyYDuqrqKBlb15P+3a1+lfwNZM+w=";
   };
 
   # perl is only used during the check phase.
diff --git a/pkgs/development/libraries/science/chemistry/simple-dftd3/python.nix b/pkgs/development/libraries/science/chemistry/simple-dftd3/python.nix
new file mode 100644
index 000000000000..74f24e10f55f
--- /dev/null
+++ b/pkgs/development/libraries/science/chemistry/simple-dftd3/python.nix
@@ -0,0 +1,42 @@
+{ buildPythonPackage
+, pkg-config
+, meson
+, simple-dftd3
+, cffi
+, numpy
+, toml
+, qcengine
+, pyscf
+, ase
+, pytestCheckHook
+}:
+
+buildPythonPackage {
+  inherit (simple-dftd3) pname version src meta;
+
+  # pytest is also required for installation, not only testing
+  nativeBuildInputs = [ pytestCheckHook ];
+
+  buildInputs = [ simple-dftd3 ];
+
+  propagatedBuildInputs = [
+    cffi
+    numpy
+    toml
+  ];
+
+  checkInputs = [
+    ase
+    qcengine
+    pyscf
+  ];
+
+  preConfigure = ''
+    cd python
+  '';
+
+  # The compiled CFFI is not placed correctly before pytest invocation
+  preCheck = ''
+    find . -name "_libdftd3*" -exec cp {} ./dftd3/. \;
+  '';
+}
diff --git a/pkgs/development/libraries/science/math/ipopt/default.nix b/pkgs/development/libraries/science/math/ipopt/default.nix
index cea4d5b4c6fa..a76c2f878ba7 100644
--- a/pkgs/development/libraries/science/math/ipopt/default.nix
+++ b/pkgs/development/libraries/science/math/ipopt/default.nix
@@ -12,13 +12,13 @@ assert (!blas.isILP64) && (!lapack.isILP64);
 
 stdenv.mkDerivation rec {
   pname = "ipopt";
-  version = "3.14.13";
+  version = "3.14.14";
 
   src = fetchFromGitHub {
     owner = "coin-or";
     repo = "Ipopt";
     rev = "releases/${version}";
-    sha256 = "sha256-51isH1hlzgbD0JVtGp3NuaGY5l2CeS1S7oVeRYG+vWI=";
+    sha256 = "sha256-qMPdJVLIXFePhTA6qRr1Pth/BjJ62cj9y8C1HKQJGDQ=";
   };
 
   CXXDEFS = [ "-DHAVE_RAND" "-DHAVE_CSTRING" "-DHAVE_CSTDIO" ];
diff --git a/pkgs/development/libraries/science/math/liblapack/default.nix b/pkgs/development/libraries/science/math/liblapack/default.nix
index 3bf16057f835..595ba2aa5713 100644
--- a/pkgs/development/libraries/science/math/liblapack/default.nix
+++ b/pkgs/development/libraries/science/math/liblapack/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "liblapack";
-  version = "3.11";
+  version = "3.12.0";
 
   src = fetchFromGitHub {
     owner = "Reference-LAPACK";
     repo = "lapack";
     rev = "v${finalAttrs.version}";
-    sha256 = "sha256-AYD78u70y8cY19hmM/aDjQEzxO8u9lPWhCFxRe5cqXI=";
+    sha256 = "sha256-xn9HL4YF8JPka1gwet5bGGo2k505H3RfWpxkUIYNecQ=";
   };
 
   nativeBuildInputs = [ gfortran cmake ];
diff --git a/pkgs/development/libraries/science/math/magma/generic.nix b/pkgs/development/libraries/science/math/magma/generic.nix
index b27b42bf3ae8..7ef60e0418ed 100644
--- a/pkgs/development/libraries/science/math/magma/generic.nix
+++ b/pkgs/development/libraries/science/math/magma/generic.nix
@@ -142,6 +142,8 @@ stdenv.mkDerivation {
   ] ++ lists.optionals rocmSupport [
     "-DCMAKE_C_COMPILER=${rocmPackages.clr}/bin/hipcc"
     "-DCMAKE_CXX_COMPILER=${rocmPackages.clr}/bin/hipcc"
+  ] ++ lists.optionals (cudaPackages.cudaAtLeast "12.0.0") [
+    (lib.cmakeBool "USE_FORTRAN" false)
   ];
 
   buildFlags = [
diff --git a/pkgs/development/libraries/science/math/mongoose/default.nix b/pkgs/development/libraries/science/math/mongoose/default.nix
index 728dff9aa3e5..29b901277f61 100644
--- a/pkgs/development/libraries/science/math/mongoose/default.nix
+++ b/pkgs/development/libraries/science/math/mongoose/default.nix
@@ -7,11 +7,11 @@
 }:
 
 let
-  suitesparseVersion = "7.4.0";
+  suitesparseVersion = "7.6.0";
 in
 stdenv.mkDerivation {
   pname = "mongoose";
-  version = "3.3.0";
+  version = "3.3.2";
 
   outputs = [ "bin" "out" "dev" ];
 
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
     owner = "DrTimothyAldenDavis";
     repo = "SuiteSparse";
     rev = "v${suitesparseVersion}";
-    hash = "sha256-oR/lISsa+0NGueJJyutswxOEQVl8MmSVgb/q3GMUCn4=";
+    hash = "sha256-zZXbUNXxVi4mpI4j4GjyVYraoPFWcuep9q5jl1XdqEo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/science/networking/ns-3/default.nix b/pkgs/development/libraries/science/networking/ns-3/default.nix
index dd28553d60e9..fa6e5e48f846 100644
--- a/pkgs/development/libraries/science/networking/ns-3/default.nix
+++ b/pkgs/development/libraries/science/networking/ns-3/default.nix
@@ -120,7 +120,7 @@ stdenv.mkDerivation rec {
     "-DPython3_EXECUTABLE=${pythonEnv}/bin/python"
     "-DNS3_PYTHON_BINDINGS=ON"
     "-DNS3_DES_METRICS=ON"
-    "-DNS3_BINDINGS_INSTALL_DIR=lib/${pythonEnv.libPrefix}/site-packages"
+    "-DNS3_BINDINGS_INSTALL_DIR=${pythonEnv.sitePackages}"
     "-DNS3_LOG=ON"
     "-DNS3_ASSERT=ON"
     "-DNS3_GTK3=ON"
diff --git a/pkgs/development/libraries/simdjson/default.nix b/pkgs/development/libraries/simdjson/default.nix
index 3a25dd22f203..768587534778 100644
--- a/pkgs/development/libraries/simdjson/default.nix
+++ b/pkgs/development/libraries/simdjson/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "simdjson";
-  version = "3.6.3";
+  version = "3.6.4";
 
   src = fetchFromGitHub {
     owner = "simdjson";
     repo = "simdjson";
     rev = "v${version}";
-    sha256 = "sha256-PRXFZvwod/n27Tx9OALHdSlKsbsrNi5ij70A4ZSoeGc=";
+    sha256 = "sha256-yIZKlKp4p1HJBAdba+57sGl0ri0gGtjSgZQ16/vDE34=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/spglib/default.nix b/pkgs/development/libraries/spglib/default.nix
index 724a9f52d509..4c7fac7e2918 100644
--- a/pkgs/development/libraries/spglib/default.nix
+++ b/pkgs/development/libraries/spglib/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "spglib";
-  version = "2.2.0"; # N.B: if you change this, please update: pythonPackages.spglib
+  version = "2.3.0"; # N.B: if you change this, please update: pythonPackages.spglib
 
   src = fetchFromGitHub {
     owner = "spglib";
     repo = "spglib";
     rev = "v${version}";
-    hash = "sha256-VaTW7n7DTeYBr/PrxPhfzfx/gLxzJikw5aL1tEbMtbs=";
+    hash = "sha256-S/i0sIg7VwgpnB2Uo0d4FdVcSIb5tcGJ+0URmkNkxe8=";
   };
 
   nativeBuildInputs = [ cmake gfortran gtest ];
diff --git a/pkgs/development/libraries/spirv-headers/default.nix b/pkgs/development/libraries/spirv-headers/default.nix
index 3e18424d6b74..64362243229b 100644
--- a/pkgs/development/libraries/spirv-headers/default.nix
+++ b/pkgs/development/libraries/spirv-headers/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "spirv-headers";
-  version = "1.3.268.0";
+  version = "1.3.275.0";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "SPIRV-Headers";
     rev = "vulkan-sdk-${version}";
-    hash = "sha256-uOnSTih14bUPtrJgp7vVb3/UfdKsF6jFQqjlFeJ81AI=";
+    hash = "sha256-/I9dJlBE0kvFvqooKuqMETtOE72Jmva3zIGnq0o4+aE=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/sqlite/default.nix b/pkgs/development/libraries/sqlite/default.nix
index eb4d975a6e01..952fc28eae4c 100644
--- a/pkgs/development/libraries/sqlite/default.nix
+++ b/pkgs/development/libraries/sqlite/default.nix
@@ -5,8 +5,6 @@
 
 # uses readline & ncurses for a better interactive experience if set to true
 , interactive ? false
-# TODO: can be removed since 3.36 since it is the default now.
-, enableDeserialize ? false
 
 , gitUpdater
 }:
@@ -54,9 +52,6 @@ stdenv.mkDerivation rec {
     "-DSQLITE_SECURE_DELETE"
     "-DSQLITE_MAX_VARIABLE_NUMBER=250000"
     "-DSQLITE_MAX_EXPR_DEPTH=10000"
-  ] ++ lib.optionals enableDeserialize [
-    # Can be removed in v3.36+, as this will become the default
-    "-DSQLITE_ENABLE_DESERIALIZE"
   ]);
 
   # Test for features which may not be available at compile time
diff --git a/pkgs/development/libraries/srt/default.nix b/pkgs/development/libraries/srt/default.nix
index 5ba8039ccff8..be81970413b8 100644
--- a/pkgs/development/libraries/srt/default.nix
+++ b/pkgs/development/libraries/srt/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "srt";
-  version = "1.5.2";
+  version = "1.5.3";
 
   src = fetchFromGitHub {
     owner = "Haivision";
     repo = "srt";
     rev = "v${version}";
-    sha256 = "sha256-HW5l26k9w4F6IJrtiahU/8/CPY6M/cKn8AgESsntC6A=";
+    sha256 = "sha256-HmfbBPyR+z5d9/XBvNhosk8pSSPToNtM+V0hEyb2G2w=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/talloc/default.nix b/pkgs/development/libraries/talloc/default.nix
index bfe38fd4719a..73cb8a65a162 100644
--- a/pkgs/development/libraries/talloc/default.nix
+++ b/pkgs/development/libraries/talloc/default.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation rec {
   pname = "talloc";
-  version = "2.4.1";
+  version = "2.4.2";
 
   src = fetchurl {
     url = "mirror://samba/talloc/${pname}-${version}.tar.gz";
-    sha256 = "sha256-QQpUfwhVcAe+DogZTyGIaDWO3Aq5jJi6jBZ5MNs9M/k=";
+    sha256 = "sha256-hez55GXiD5j5lQpS6aQR4UMgvFVfolfYdpe356mx2KY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/tclx/default.nix b/pkgs/development/libraries/tclx/default.nix
index 1e6098aa637a..5e3a73febe9b 100644
--- a/pkgs/development/libraries/tclx/default.nix
+++ b/pkgs/development/libraries/tclx/default.nix
@@ -5,13 +5,13 @@
 
 tcl.mkTclDerivation rec {
   pname = "tclx";
-  version = "8.6.2";
+  version = "8.6.3";
 
   src = fetchFromGitHub {
     owner = "flightaware";
     repo = "tclx";
     rev = "v${version}";
-    hash = "sha256-ZYJcaVBM5DQWBFYAcW6fx+ENMWJwHzTOUKYPkLsd6o8=";
+    hash = "sha256-bzLF6qOF9o24joWnGR7B4S+Doj7zv9iTh/mo50iFbUs=";
   };
 
   # required in order for tclx to properly detect tclx.tcl at runtime
diff --git a/pkgs/development/libraries/tdlib/default.nix b/pkgs/development/libraries/tdlib/default.nix
index f1c6a3d1b728..d6e3aa57e986 100644
--- a/pkgs/development/libraries/tdlib/default.nix
+++ b/pkgs/development/libraries/tdlib/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "tdlib";
-  version = "1.8.23";
+  version = "1.8.24";
 
   src = fetchFromGitHub {
     owner = "tdlib";
@@ -11,8 +11,8 @@ stdenv.mkDerivation rec {
     # 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 = "27c3eaeb4964bd5f18d8488e354abde1a4383e49";
-    hash = "sha256-TxgzZn/OF5b5FWzwnOWIozH+1d7O0RG3h+WKV10rxpE=";
+    rev = "c5c55092dd61b9eb15d6bbfd0f02c04c593450e7";
+    hash = "sha256-jqS3PGg42W15QBgpL1PNU3xJdk67g8u0THN/4hW5i88=";
   };
 
   buildInputs = [ gperf openssl readline zlib ];
diff --git a/pkgs/development/libraries/tiledb/default.nix b/pkgs/development/libraries/tiledb/default.nix
index f8540d4ffaa0..28b14d3a8a5b 100644
--- a/pkgs/development/libraries/tiledb/default.nix
+++ b/pkgs/development/libraries/tiledb/default.nix
@@ -58,6 +58,9 @@ stdenv.mkDerivation rec {
       cmake/Modules/FindOpenSSL_EP.cmake
   '';
 
+  # upstream will hopefully fix this in some newer release
+  env.CXXFLAGS = "-include random";
+
   # (bundled) blosc headers have a warning on some archs that it will be using
   # unaccelerated routines.
   cmakeFlags = [
diff --git a/pkgs/development/libraries/ubus/default.nix b/pkgs/development/libraries/ubus/default.nix
index 4419b4e67a66..2150ed7b0e82 100644
--- a/pkgs/development/libraries/ubus/default.nix
+++ b/pkgs/development/libraries/ubus/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation {
   pname = "ubus";
-  version = "unstable-2023-11-28";
+  version = "unstable-2023-12-18";
 
   src = fetchgit {
     url = "https://git.openwrt.org/project/ubus.git";
-    rev = "f84eb5998c6ea2d34989ca2d3254e56c66139313";
-    hash = "sha256-5pIovqIeJczWAA9KQPKFnTnGRrIZVdSNdxBR8AEFtO4=";
+    rev = "65bb027054def3b94a977229fd6ad62ddd32345b";
+    hash = "sha256-n82Ub0IiuvWbnlDCoN+0hjo/1PbplEbc56kuOYMrHxQ=";
   };
 
   cmakeFlags = [ "-DBUILD_LUA=OFF" ];
diff --git a/pkgs/development/libraries/utf8cpp/default.nix b/pkgs/development/libraries/utf8cpp/default.nix
index 1ca767d98cb6..60ae45d2cd8e 100644
--- a/pkgs/development/libraries/utf8cpp/default.nix
+++ b/pkgs/development/libraries/utf8cpp/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "utf8cpp";
-  version = "4.0.3";
+  version = "4.0.5";
 
   src = fetchFromGitHub {
     owner = "nemtrif";
     repo = "utfcpp";
     rev = "v${version}";
     fetchSubmodules = true;
-    hash = "sha256-oUr476HMBYzX64x28Kcudw0B1BVqLUPVVdRzRe82AOc=";
+    hash = "sha256-Z27/31obVErsmW1b1SVcr45nKlFu01RqqpTMwS0LqJ8=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/vigra/default.nix b/pkgs/development/libraries/vigra/default.nix
index 320b43f0e51b..677406d275a8 100644
--- a/pkgs/development/libraries/vigra/default.nix
+++ b/pkgs/development/libraries/vigra/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
     python
   ];
 
-  preConfigure = "cmakeFlags+=\" -DVIGRANUMPY_INSTALL_DIR=$out/lib/${python.libPrefix}/site-packages\"";
+  preConfigure = "cmakeFlags+=\" -DVIGRANUMPY_INSTALL_DIR=$out/${python.sitePackages}\"";
 
   cmakeFlags = [ "-DWITH_OPENEXR=1" ]
     ++ lib.optionals (stdenv.hostPlatform.system == "x86_64-linux")
diff --git a/pkgs/development/libraries/vulkan-headers/default.nix b/pkgs/development/libraries/vulkan-headers/default.nix
index f6c9dcb953e3..dc17404c8480 100644
--- a/pkgs/development/libraries/vulkan-headers/default.nix
+++ b/pkgs/development/libraries/vulkan-headers/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub, cmake }:
 stdenv.mkDerivation rec {
   pname = "vulkan-headers";
-  version = "1.3.268.0";
+  version = "1.3.275.0";
 
   nativeBuildInputs = [ cmake ];
 
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     owner = "KhronosGroup";
     repo = "Vulkan-Headers";
     rev = "vulkan-sdk-${version}";
-    hash = "sha256-CDjWTXXnUgj9QaLDNuSVy+wf8If5LehwOZ0t0Fuh2Ro=";
+    hash = "sha256-kBOkj7mr4stPXUCBhNJpNL3A+9BebEwrIBEIroxdH8Y=";
   };
 
   passthru.updateScript = ./update.sh;
diff --git a/pkgs/development/libraries/vulkan-headers/update.sh b/pkgs/development/libraries/vulkan-headers/update.sh
index da4e42ded84a..dd3fac2ee4dd 100755
--- a/pkgs/development/libraries/vulkan-headers/update.sh
+++ b/pkgs/development/libraries/vulkan-headers/update.sh
@@ -11,6 +11,7 @@ SDK_PACKAGES=(
     "vulkan-tools-lunarg"
     "vulkan-extension-layer"
     "vulkan-utility-libraries"
+    "vulkan-volk"
     "spirv-headers"
     "spirv-cross"
     "spirv-tools"
diff --git a/pkgs/development/libraries/vulkan-loader/default.nix b/pkgs/development/libraries/vulkan-loader/default.nix
index 068c1d3d2c2a..958cc2dadc7b 100644
--- a/pkgs/development/libraries/vulkan-loader/default.nix
+++ b/pkgs/development/libraries/vulkan-loader/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vulkan-loader";
-  version = "1.3.268.0";
+  version = "1.3.275.0";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "Vulkan-Loader";
     rev = "vulkan-sdk-${version}";
-    hash = "sha256-TDn8eVz1fhGfvUiGcxqOk2BN9tuIF5+ssIXtOo3weS0=";
+    hash = "sha256-53PUXAWiK38ciV6oMvD7ZHdXi4RU4r0RmDWUUHU3mE0=";
   };
 
   patches = [ ./fix-pkgconfig.patch ];
diff --git a/pkgs/development/libraries/vulkan-utility-libraries/default.nix b/pkgs/development/libraries/vulkan-utility-libraries/default.nix
index 41d1854692fd..301311e12412 100644
--- a/pkgs/development/libraries/vulkan-utility-libraries/default.nix
+++ b/pkgs/development/libraries/vulkan-utility-libraries/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "vulkan-utility-libraries";
-  version = "1.3.268";
+  version = "1.3.275.0";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "Vulkan-Utility-Libraries";
-    rev = "v${finalAttrs.version}";
-    hash = "sha256-l6PiHCre/JQg8PSs1k/0Zzfwwv55AqVdZtBbjeKLS6E=";
+    rev = "vulkan-sdk-${finalAttrs.version}";
+    hash = "sha256-gvia+Xb9BpOjPARKo3Sgp85Bfh1roFZ2PzCtXVFYeIU=";
   };
 
   nativeBuildInputs = [ cmake python3 ];
diff --git a/pkgs/development/libraries/wasilibc/default.nix b/pkgs/development/libraries/wasilibc/default.nix
index 4c49788464d4..c0714a78556a 100644
--- a/pkgs/development/libraries/wasilibc/default.nix
+++ b/pkgs/development/libraries/wasilibc/default.nix
@@ -8,7 +8,7 @@
 
 let
   pname = "wasilibc";
-  version = "20";
+  version = "21";
 in
 stdenv.mkDerivation {
   inherit pname version;
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
     owner = "WebAssembly";
     repo = "wasi-libc";
     rev = "refs/tags/wasi-sdk-${version}";
-    hash = "sha256-H92PDrH1FL7S3eMCK1+wqclryjhwghl21bOlRCAr1U4=";
+    hash = "sha256-1LsMpO29y79twVrUsuM/JvC7hK8O6Yey4Ard/S3Mvvc=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/libraries/waylib/default.nix b/pkgs/development/libraries/waylib/default.nix
new file mode 100644
index 000000000000..9aa211ffd3e0
--- /dev/null
+++ b/pkgs/development/libraries/waylib/default.nix
@@ -0,0 +1,74 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, pkg-config
+, wayland-scanner
+, wrapQtAppsHook
+, qtbase
+, qtquick3d
+, qwlroots
+, wayland
+, wayland-protocols
+, wlr-protocols
+, pixman
+, libdrm
+, nixos-artwork
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "waylib";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "vioken";
+    repo = "waylib";
+    rev = finalAttrs.version;
+    hash = "sha256-3IdrChuXQyQGhJ/7kTqmkV0PyuSNP53Y0Po01Fc9Qi0=";
+  };
+
+  postPatch = ''
+    substituteInPlace examples/tinywl/OutputDelegate.qml \
+      --replace "/usr/share/wallpapers/deepin/desktop.jpg" \
+                "${nixos-artwork.wallpapers.simple-blue}/share/backgrounds/nixos/nix-wallpaper-simple-blue.png"
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    wayland-scanner
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    qtbase
+    qtquick3d
+    wayland
+    wayland-protocols
+    wlr-protocols
+    pixman
+    libdrm
+  ];
+
+  propagatedBuildInputs = [
+    qwlroots
+  ];
+
+  cmakeFlags = [
+    (lib.cmakeBool "INSTALL_TINYWL" true)
+  ];
+
+  strictDeps = true;
+
+  outputs = [ "out" "dev" "bin" ];
+
+  meta = {
+    description = "A wrapper for wlroots based on Qt";
+    homepage = "https://github.com/vioken/waylib";
+    license = with lib.licenses; [ gpl3Only lgpl3Only asl20 ];
+    outputsToInstall = [ "out" ];
+    platforms = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ rewine ];
+  };
+})
+
diff --git a/pkgs/development/libraries/xapian/default.nix b/pkgs/development/libraries/xapian/default.nix
index 243ec53a3234..f9fe5bac07fe 100644
--- a/pkgs/development/libraries/xapian/default.nix
+++ b/pkgs/development/libraries/xapian/default.nix
@@ -28,7 +28,12 @@ let
     enableParallelBuilding = true;
 
     doCheck = true;
-    env.AUTOMATED_TESTING = true; # https://trac.xapian.org/changeset/8be35f5e1/git
+
+    env = {
+      AUTOMATED_TESTING = true; # https://trac.xapian.org/changeset/8be35f5e1/git
+    } // lib.optionalAttrs stdenv.is32bit {
+      NIX_CFLAGS_COMPILE = "-fpermissive";
+    };
 
     # the configure script thinks that Darwin has ___exp10
     # but it’s not available on my systems (or hydra apparently)
diff --git a/pkgs/development/libraries/xml-tooling-c/default.nix b/pkgs/development/libraries/xml-tooling-c/default.nix
index 8a415a4df77c..f58f50b4a72f 100644
--- a/pkgs/development/libraries/xml-tooling-c/default.nix
+++ b/pkgs/development/libraries/xml-tooling-c/default.nix
@@ -4,12 +4,12 @@
 
 stdenv.mkDerivation rec {
   pname = "xml-tooling-c";
-  version = "3.0.4";
+  version = "3.2.4";
 
   src = fetchgit {
     url = "https://git.shibboleth.net/git/cpp-xmltooling.git";
     rev = version;
-    sha256 = "0frj4w70l06nva6dvdcivgm1ax69rqbjdzzbgp0sxhiqhddslbas";
+    sha256 = "sha256-FQ109ahOSWj3hvaxu1r/0FTpCuWaLgSEKM8NBio+wqU=";
   };
 
   buildInputs = [ boost curl openssl log4shib xercesc xml-security-c ];
diff --git a/pkgs/development/libraries/xsimd/default.nix b/pkgs/development/libraries/xsimd/default.nix
index 87da2c546b86..d775cef4d673 100644
--- a/pkgs/development/libraries/xsimd/default.nix
+++ b/pkgs/development/libraries/xsimd/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
     description = "C++ wrappers for SIMD intrinsics";
     homepage = "https://github.com/xtensor-stack/xsimd";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ tobim ];
+    maintainers = with maintainers; [ tobim doronbehar ];
     platforms = platforms.all;
   };
 })
diff --git a/pkgs/development/libraries/xxHash/default.nix b/pkgs/development/libraries/xxHash/default.nix
index f7631de1bf29..c78fc302afe4 100644
--- a/pkgs/development/libraries/xxHash/default.nix
+++ b/pkgs/development/libraries/xxHash/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://github.com/Cyan4973/xxHash";
     license = with licenses; [ bsd2 gpl2 ];
+    mainProgram = "xxhsum";
     maintainers = with maintainers; [ orivej ];
     platforms = platforms.all;
   };
diff --git a/pkgs/development/libraries/zxing-cpp/default.nix b/pkgs/development/libraries/zxing-cpp/default.nix
index 1c010638693e..cd5d10551192 100644
--- a/pkgs/development/libraries/zxing-cpp/default.nix
+++ b/pkgs/development/libraries/zxing-cpp/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "zxing-cpp";
-  version = "2.1.0";
+  version = "2.2.1";
 
   src = fetchFromGitHub {
     owner = "zxing-cpp";
     repo = "zxing-cpp";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-B/jGsHImRfj0iEio2b6R6laWBI1LL3OI407O7sren8s=";
+    hash = "sha256-teFspdATn9M7Z1vSr/7PdJx/xAv+TVai8rIekxqpBZk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/lisp-modules/packages.nix b/pkgs/development/lisp-modules/packages.nix
index aef2b84b1c04..e2d2178f9c7d 100644
--- a/pkgs/development/lisp-modules/packages.nix
+++ b/pkgs/development/lisp-modules/packages.nix
@@ -362,7 +362,7 @@ let
 
   nyxt-gtk = build-asdf-system {
     pname = "nyxt";
-    version = "3.11.0";
+    version = "3.11.1";
 
     lispLibs = (with super; [
       alexandria
@@ -470,8 +470,8 @@ let
     src = pkgs.fetchFromGitHub {
       owner = "atlas-engineer";
       repo = "nyxt";
-      rev = "3.11.0";
-      hash = "sha256-Nw2r3FdqwxHlq8CrZo7Z423xe0rR5zu+U4dDPdG880M=";
+      rev = "3.11.1";
+      hash = "sha256-7qnelRTZBJ+1CbZv5Bpzd3uOjcSr/VLkcyo2yK/U/4A=";
     };
 
     nativeBuildInputs = [ pkgs.makeWrapper ];
@@ -507,7 +507,7 @@ let
     installPhase = ''
       mkdir -pv $out
       cp -r * $out
-      rm -v $out/nyxt
+      rm -fv $out/nyxt
       mkdir -p $out/bin
       cp -v nyxt $out/bin
       wrapProgram $out/bin/nyxt \
diff --git a/pkgs/development/misc/umr/default.nix b/pkgs/development/misc/umr/default.nix
index b83cb91a91b5..37177f926b68 100644
--- a/pkgs/development/misc/umr/default.nix
+++ b/pkgs/development/misc/umr/default.nix
@@ -1,28 +1,50 @@
-{ lib, stdenv, fetchgit, bash-completion, cmake, pkg-config
-, json_c, libdrm, libpciaccess, llvmPackages, nanomsg, ncurses, SDL2
+{ lib
+, stdenv
+
+, fetchFromGitLab
+
+, cmake
+, pkg-config
+
+, libdrm
+, mesa # libgbm
+, libpciaccess
+, llvmPackages
+, nanomsg
+, ncurses
+, SDL2
+, bash-completion
+
+, nix-update-script
 }:
 
 stdenv.mkDerivation rec {
   pname = "umr";
-  version = "unstable-2022-08-23";
+  version = "1.0.8";
 
-  src = fetchgit {
-    url = "https://gitlab.freedesktop.org/tomstdenis/umr";
-    rev = "87f814b1ffdbac8bfddd8529d344a7901cd7e112";
-    hash = "sha256-U1VP1AicSGWzBwzz99i7+3awATZocw5jaqtAxuRNaBE=";
+  src = fetchFromGitLab {
+    domain = "gitlab.freedesktop.org";
+    owner = "tomstdenis";
+    repo = "umr";
+    rev = version;
+    hash = "sha256-ODkTYHDrKWNvjiEeIyfsCByf7hyr5Ps9ytbKb3253bU=";
   };
 
-  nativeBuildInputs = [ cmake pkg-config llvmPackages.llvm.dev ];
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
 
   buildInputs = [
-    bash-completion
-    json_c
     libdrm
+    mesa
     libpciaccess
     llvmPackages.llvm
     nanomsg
     ncurses
     SDL2
+
+    bash-completion # Tries to create bash-completions in /var/empty otherwise?
   ];
 
   # Remove static libraries (there are no dynamic libraries in there)
@@ -30,6 +52,8 @@ stdenv.mkDerivation rec {
     rm -r $out/lib
   '';
 
+  passthru.updateScript = nix-update-script { };
+
   meta = with lib; {
     description = "A userspace debugging and diagnostic tool for AMD GPUs";
     homepage = "https://gitlab.freedesktop.org/tomstdenis/umr";
diff --git a/pkgs/development/mobile/genymotion/default.nix b/pkgs/development/mobile/genymotion/default.nix
index b3ebaf713058..a70000ca56a5 100644
--- a/pkgs/development/mobile/genymotion/default.nix
+++ b/pkgs/development/mobile/genymotion/default.nix
@@ -1,5 +1,6 @@
 { stdenv, lib, fetchurl, makeWrapper, which, zlib, libGL, glib, xorg, libxkbcommon
 , xdg-utils, libXrender, fontconfig, freetype, systemd, libpulseaudio
+, cairo, gdk-pixbuf, gtk3, pixman
 # For glewinfo
 , libXmu, libXi, libXext }:
 
@@ -19,6 +20,10 @@ let
     freetype
     systemd
     libpulseaudio
+    cairo
+    gdk-pixbuf
+    gtk3
+    pixman
   ];
   libPath = lib.makeLibraryPath packages;
 in
@@ -31,8 +36,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-CS1A9udt47bhgnYJqqkCG3z4XaPVHmz417VTsY2ccOA=";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ which xdg-utils ];
+  nativeBuildInputs = [ makeWrapper which xdg-utils ];
 
   unpackPhase = ''
     mkdir -p phony-home $out/share/applications
@@ -73,6 +77,8 @@ stdenv.mkDerivation rec {
 
     patchExecutable genymotion
     patchExecutable player
+    patchExecutable qemu/x86_64/bin/qemu-img
+    patchExecutable qemu/x86_64/bin/qemu-system-x86_64
 
     patchTool adb
     patchTool aapt
diff --git a/pkgs/development/node-packages/aliases.nix b/pkgs/development/node-packages/aliases.nix
index 84e2dfa1289b..34751db8f193 100644
--- a/pkgs/development/node-packages/aliases.nix
+++ b/pkgs/development/node-packages/aliases.nix
@@ -49,6 +49,8 @@ mapAliases {
   "@mermaid-js/mermaid-cli" = pkgs.mermaid-cli; # added 2023-10-01
   "@nerdwallet/shepherd" = pkgs.shepherd; # added 2023-09-30
   "@nestjs/cli" = pkgs.nest-cli; # Added 2023-05-06
+  "@tailwindcss/language-server" = pkgs.tailwindcss-language-server; # added 2024-01-22
+  "@withgraphite/graphite-cli" = pkgs.graphite-cli; # added 2024-01-25
   "@zwave-js/server" = pkgs.zwave-js-server; # Added 2023-09-09
   alloy = pkgs.titanium-alloy; # added 2023-08-17
   antennas = pkgs.antennas; # added 2023-07-30
@@ -81,12 +83,14 @@ mapAliases {
   inherit (pkgs) gitmoji-cli; # added 2023-09-23
   glob = pkgs.node-glob; # added 2023-08-18
   inherit (pkgs) gqlint; # added 2023-08-19
+  inherit (pkgs) graphite-cli; # added 2024-01-25
   inherit (pkgs) graphqurl; # added 2023-08-19
   gtop = pkgs.gtop; # added 2023-07-31
   hs-client = pkgs.hsd; # added 2023-08-20
   inherit (pkgs) hsd; # added 2023-08-19
   inherit (pkgs) html-minifier; # added 2023-08-19
   inherit (pkgs) htmlhint; # added 2023-08-19
+  inherit (pkgs) http-server; # added 2024-01-20
   hueadm = pkgs.hueadm; # added 2023-07-31
   inherit (pkgs) hyperpotamus; # added 2023-08-19
   immich = pkgs.immich-cli; # added 2023-08-19
@@ -109,6 +113,7 @@ mapAliases {
   ocaml-language-server = throw "ocaml-language-server was removed because it was abandoned upstream"; # added 2023-09-04
   parcel-bundler = parcel; # added 2023-09-04
   pkg = pkgs.vercel-pkg; # added 2023-10-04
+  inherit (pkgs) pm2; # added 2024-01-22
   prettier_d_slim = pkgs.prettier-d-slim; # added 2023-09-14
   inherit (pkgs) pxder; # added 2023-09-26
   inherit (pkgs) quicktype; # added 2023-09-09
diff --git a/pkgs/development/node-packages/main-programs.nix b/pkgs/development/node-packages/main-programs.nix
index 8c243736594b..77ce87da7aab 100644
--- a/pkgs/development/node-packages/main-programs.nix
+++ b/pkgs/development/node-packages/main-programs.nix
@@ -5,7 +5,6 @@
   "@electron-forge/cli" = "electron-forge";
   "@microsoft/rush" = "rush";
   "@webassemblyjs/cli-1.11.1" = "wasm2wast";
-  "@withgraphite/graphite-cli" = "gt";
 
   # Packages that provide a single executable.
   "@angular/cli" = "ng";
@@ -14,7 +13,6 @@
   "@commitlint/cli" = "commitlint";
   "@gitbeaker/cli" = "gitbeaker";
   "@prisma/language-server" = "prisma-language-server";
-  "@tailwindcss/language-server" = "tailwindcss-language-server";
   "@uppy/companion" = "companion";
   "@vue/cli" = "vue";
   "@webassemblyjs/repl-1.11.1" = "wasm";
@@ -47,8 +45,12 @@
   poor-mans-t-sql-formatter-cli = "sqlformat";
   postcss-cli = "postcss";
   prettier = "prettier";
+  pulp = "pulp";
+  purescript-language-server = "purescript-language-server";
   purescript-psa = "psa";
   purs-tidy = "purs-tidy";
+  purty = "purty";
+  pscid = "pscid";
   remod-cli = "remod";
   svelte-language-server = "svelteserver";
   teck-programmer = "teck-firmware-upgrade";
diff --git a/pkgs/development/node-packages/node-packages.json b/pkgs/development/node-packages/node-packages.json
index df6dc59e3c11..de10dd251f41 100644
--- a/pkgs/development/node-packages/node-packages.json
+++ b/pkgs/development/node-packages/node-packages.json
@@ -9,7 +9,6 @@
 , "@shopify/cli"
 , "@tailwindcss/aspect-ratio"
 , "@tailwindcss/forms"
-, "@tailwindcss/language-server"
 , "@tailwindcss/line-clamp"
 , "@tailwindcss/typography"
 , "@uppy/companion"
@@ -131,7 +130,6 @@
 , "gulp"
 , "gulp-cli"
 , "he"
-, "http-server"
 , "hs-airdrop"
 , "ijavascript"
 , "inliner"
@@ -188,7 +186,6 @@
 , "peerflix"
 , "peerflix-server"
 , {"pgrok-build-deps": "../../tools/networking/pgrok/build-deps"}
-, "pm2"
 , "pnpm"
 , "poor-mans-t-sql-formatter-cli"
 , "postcss"
@@ -302,7 +299,6 @@
 , "webpack-dev-server"
 , "copy-webpack-plugin"
 , "webtorrent-cli"
-, "@withgraphite/graphite-cli"
 , "wrangler"
 , "wring"
 , "@yaegassy/coc-nginx"
diff --git a/pkgs/development/node-packages/node-packages.nix b/pkgs/development/node-packages/node-packages.nix
index a7e1580f8d58..43dfa94a5c1a 100644
--- a/pkgs/development/node-packages/node-packages.nix
+++ b/pkgs/development/node-packages/node-packages.nix
@@ -4,15 +4,6 @@
 
 let
   sources = {
-    "2-thenable-1.0.0" = {
-      name = "2-thenable";
-      packageName = "2-thenable";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/2-thenable/-/2-thenable-1.0.0.tgz";
-        sha512 = "HqiDzaLDFCXkcCO/SwoyhRwqYtINFHF7t9BDRq4x90TOKNAJpiqUt9X5lQ08bwxYzc067HUywDjGySpebHcUpw==";
-      };
-    };
     "@0no-co/graphql.web-1.0.4" = {
       name = "_at_0no-co_slash_graphql.web";
       packageName = "@0no-co/graphql.web";
@@ -40,13 +31,13 @@ let
         sha512 = "DSzEEkbMYbAUVlhy7fg+BzccoRuSQzqHbIPGxGv19OJ2WKwS3/9ChAnQcII4g+GujcHhyJ8BUuOVAx/S5uAfQg==";
       };
     };
-    "@adobe/css-tools-4.3.1" = {
+    "@adobe/css-tools-4.3.2" = {
       name = "_at_adobe_slash_css-tools";
       packageName = "@adobe/css-tools";
-      version = "4.3.1";
+      version = "4.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.1.tgz";
-        sha512 = "/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg==";
+        url = "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.2.tgz";
+        sha512 = "DA5a1C0gD/pLOvhv33YMrbf2FK3oUzwNl9oOJqE4XVjuEtt6XIakRcsd7eLiOSPkp1kTRQGICTA8cKra/vFbjw==";
       };
     };
     "@akryum/winattr-3.0.0" = {
@@ -85,31 +76,31 @@ let
         sha512 = "lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==";
       };
     };
-    "@angular-devkit/architect-0.1700.2" = {
+    "@angular-devkit/architect-0.1700.9" = {
       name = "_at_angular-devkit_slash_architect";
       packageName = "@angular-devkit/architect";
-      version = "0.1700.2";
+      version = "0.1700.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1700.2.tgz";
-        sha512 = "N/m0KRdc0Bk3JIVTDKgVJ1f7rELE6ejaYaTanybZFD76lJfAeuTTzZ1HJfeeXso+O/9CGRD42bRowYv3hgM+eA==";
+        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1700.9.tgz";
+        sha512 = "B8OeUrvJj5JsfOJIibpoVjvuZzthPFxf1LvuUXTyQcqDUscJAe/RJBc2woT6ss13Iv/HWt8mgaMPP4CccckdNg==";
       };
     };
-    "@angular-devkit/core-17.0.2" = {
+    "@angular-devkit/core-17.0.9" = {
       name = "_at_angular-devkit_slash_core";
       packageName = "@angular-devkit/core";
-      version = "17.0.2";
+      version = "17.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-17.0.2.tgz";
-        sha512 = "wmQyiXIqmdm9KSiB7d5SnDaqqRZSsZ7Oy2kEI4gUyLr2y9icj/4zpTpYvsqKyhF1NMU8ElZ5b4s1ru2pirlDVg==";
+        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-17.0.9.tgz";
+        sha512 = "r5jqwpWOgowqe9KSDqJ3iSbmsEt2XPjSvRG4DSI2T9s31bReoMtreo8b7wkRa2B3hbcDnstFbn8q27VvJDqRaQ==";
       };
     };
-    "@angular-devkit/schematics-17.0.2" = {
+    "@angular-devkit/schematics-17.0.9" = {
       name = "_at_angular-devkit_slash_schematics";
       packageName = "@angular-devkit/schematics";
-      version = "17.0.2";
+      version = "17.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.0.2.tgz";
-        sha512 = "NOGC/TN6M+Vt2vSR3D1t3v8RNn2lm02nkm8UniACkwqnCjod5Npt1CfdweOSLEDaO5TR6xemG2+0gl0yGRXJ7w==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.0.9.tgz";
+        sha512 = "5ti7g45F2KjDJS0DbgnOGI1GyKxGpn4XsKTYJFJrSAWj6VpuvPy/DINRrXNuRVo09VPEkqA+IW7QwaG9icptQg==";
       };
     };
     "@apidevtools/json-schema-ref-parser-9.0.6" = {
@@ -283,6 +274,15 @@ let
         sha512 = "xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==";
       };
     };
+    "@asamuzakjp/dom-selector-2.0.1" = {
+      name = "_at_asamuzakjp_slash_dom-selector";
+      packageName = "@asamuzakjp/dom-selector";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-2.0.1.tgz";
+        sha512 = "QJAJffmCiymkv6YyQ7voyQb5caCth6jzZsQncYCpHXrJ7RqdYG5y43+is8mnFcYubdOkr7cn1+na9BdFMxqw7w==";
+      };
+    };
     "@astrojs/compiler-1.8.2" = {
       name = "_at_astrojs_slash_compiler";
       packageName = "@astrojs/compiler";
@@ -292,13 +292,13 @@ let
         sha512 = "o/ObKgtMzl8SlpIdzaxFnt7SATKPxu4oIP/1NL+HDJRzxfJcAkOTAb/ZKMRyULbz4q+1t2/DAebs2Z1QairkZw==";
       };
     };
-    "@astrojs/compiler-2.3.2" = {
+    "@astrojs/compiler-2.4.0" = {
       name = "_at_astrojs_slash_compiler";
       packageName = "@astrojs/compiler";
-      version = "2.3.2";
+      version = "2.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@astrojs/compiler/-/compiler-2.3.2.tgz";
-        sha512 = "jkY7bCVxl27KeZsSxIZ+pqACe+g8VQUdTiSJRj/sXYdIaZlW3ZMq4qF2M17P/oDt3LBq0zLNwQr4Cb7fSpRGxQ==";
+        url = "https://registry.npmjs.org/@astrojs/compiler/-/compiler-2.4.0.tgz";
+        sha512 = "LUN/iG8KcStfChHwTvCg/t91IQFQxguF3CkDLW3tdY2vBKZmOJy9MgtRl20ZGgPtgrykGCtnr4AellEm0bPuFg==";
       };
     };
     "@asyncapi/specs-4.3.1" = {
@@ -409,15 +409,6 @@ let
         sha512 = "9Sp4vXjoG99qI6sFe09MfgIzsKwiOR0atqxmAcJJLn6fUNXhJEoW04n3w/YcRlk7P4gC9cOMsEyvb8xu+fDEOQ==";
       };
     };
-    "@aws-sdk/client-cloudformation-3.454.0" = {
-      name = "_at_aws-sdk_slash_client-cloudformation";
-      packageName = "@aws-sdk/client-cloudformation";
-      version = "3.454.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/client-cloudformation/-/client-cloudformation-3.454.0.tgz";
-        sha512 = "CKOE5u2gLt/BjHYX6a0uKGsWPBic9uOzlTwqnpqXEmVSb25xv5ULHOUmYfmSyw2TWXwxEe4a6ZwBL0MYJGrEUw==";
-      };
-    };
     "@aws-sdk/client-s3-3.296.0" = {
       name = "_at_aws-sdk_slash_client-s3";
       packageName = "@aws-sdk/client-s3";
@@ -427,13 +418,13 @@ let
         sha512 = "PI6mjM0fmcV2fqkkRoivF3DYex4lnbEz7WIsOFAwpHJBbA9ykClQpiutCKcgl0x/yEWAeTNdQtrCVeAwbxYfvw==";
       };
     };
-    "@aws-sdk/client-s3-3.454.0" = {
+    "@aws-sdk/client-s3-3.485.0" = {
       name = "_at_aws-sdk_slash_client-s3";
       packageName = "@aws-sdk/client-s3";
-      version = "3.454.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.454.0.tgz";
-        sha512 = "vBx4iB1c4mEz+twMnl6angC1/IpnmXaT8L6Kl9uNiurFsb6N4tCyrJ24kECdsOSTM7ePXvE1fKst8zAh6MW5ZA==";
+        url = "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.485.0.tgz";
+        sha512 = "Vh8FRiXekwu1sSdfhS/wpNzjIljPmIXrUdEapR7EmaIwditR+mTTzNS+7y69YdPQhVEE2u9QxRlo4Eg1e1jD3w==";
       };
     };
     "@aws-sdk/client-sso-3.296.0" = {
@@ -445,13 +436,13 @@ let
         sha512 = "0P0x++jhlmhzViFPOHvTb7+Z6tSV9aONwB8CchIseg2enSPBbGfml7y5gQu1jdOTDS6pBUmrPZ+9sOI4/GvAfA==";
       };
     };
-    "@aws-sdk/client-sso-3.451.0" = {
+    "@aws-sdk/client-sso-3.485.0" = {
       name = "_at_aws-sdk_slash_client-sso";
       packageName = "@aws-sdk/client-sso";
-      version = "3.451.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.451.0.tgz";
-        sha512 = "KkYSke3Pdv3MfVH/5fT528+MKjMyPKlcLcd4zQb0x6/7Bl7EHrPh1JZYjzPLHelb+UY5X0qN8+cb8iSu1eiwIQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.485.0.tgz";
+        sha512 = "apN2bEn0PZs0jD4jAfvwO3dlWqw9YIQJ6TAudM1bd3S5vzWqlBBcLfQpK6taHoQaI+WqgUWXLuOf7gRFbGXKPg==";
       };
     };
     "@aws-sdk/client-sso-oidc-3.296.0" = {
@@ -472,13 +463,13 @@ let
         sha512 = "ew7hSVNpitnLCIRVhnI2L1HZB/yYpRQFReR62fOqCUnpKqm6WGga37bnvgYbY5y0Rv23C0VHARovwunVg1gabA==";
       };
     };
-    "@aws-sdk/client-sts-3.454.0" = {
+    "@aws-sdk/client-sts-3.485.0" = {
       name = "_at_aws-sdk_slash_client-sts";
       packageName = "@aws-sdk/client-sts";
-      version = "3.454.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.454.0.tgz";
-        sha512 = "0fDvr8WeB6IYO8BUCzcivWmahgGl/zDbaYfakzGnt4mrl5ztYaXE875WI6b7+oFcKMRvN+KLvwu5TtyFuNY+GQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.485.0.tgz";
+        sha512 = "PI4q36kVF0fpIPZyeQhrwwJZ6SRkOGvU3rX5Qn4b5UY5X+Ct1aLhqSX8/OB372UZIcnh6eSvERu8POHleDO7Jw==";
       };
     };
     "@aws-sdk/config-resolver-3.296.0" = {
@@ -490,13 +481,13 @@ let
         sha512 = "Ecdp7fmIitHo49NRCyIEHb9xlI43J7qkvhcwaKGGqN5jvoh0YhR2vNr195wWG8Ip/9PwsD4QV4g/XT5EY7XkMA==";
       };
     };
-    "@aws-sdk/core-3.451.0" = {
+    "@aws-sdk/core-3.485.0" = {
       name = "_at_aws-sdk_slash_core";
       packageName = "@aws-sdk/core";
-      version = "3.451.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/core/-/core-3.451.0.tgz";
-        sha512 = "SamWW2zHEf1ZKe3j1w0Piauryl8BQIlej0TBS18A4ACzhjhWXhCs13bO1S88LvPR5mBFXok3XOT6zPOnKDFktw==";
+        url = "https://registry.npmjs.org/@aws-sdk/core/-/core-3.485.0.tgz";
+        sha512 = "Yvi80DQcbjkYCft471ClE3HuetuNVqntCs6eFOomDcrJaqdOFrXv2kJAxky84MRA/xb7bGlDGAPbTuj1ICputg==";
       };
     };
     "@aws-sdk/credential-provider-env-3.296.0" = {
@@ -508,13 +499,13 @@ let
         sha512 = "eDWSU3p04gytkkVXnYn05YzrP5SEaj/DQiafd4y+iBl8IFfF3zM6982rs6qFhvpwrHeSbLqHNfKR1HDWVwfG5g==";
       };
     };
-    "@aws-sdk/credential-provider-env-3.451.0" = {
+    "@aws-sdk/credential-provider-env-3.485.0" = {
       name = "_at_aws-sdk_slash_credential-provider-env";
       packageName = "@aws-sdk/credential-provider-env";
-      version = "3.451.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.451.0.tgz";
-        sha512 = "9dAav7DcRgaF7xCJEQR5ER9ErXxnu/tdnVJ+UPmb1NPeIZdESv1A3lxFDEq1Fs8c4/lzAj9BpshGyJVIZwZDKg==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.485.0.tgz";
+        sha512 = "3XkFgwVU1XOB33dV7t9BKJ/ptdl2iS+0dxE7ecq8aqT2/gsfKmLCae1G17P8WmdD3z0kMDTvnqM2aWgUnSOkmg==";
       };
     };
     "@aws-sdk/credential-provider-imds-3.296.0" = {
@@ -535,13 +526,13 @@ let
         sha512 = "U0ecY0GX2jeDAgmTzaVO9YgjlLUfb8wgZSu1OwbOxCJscL/5eFkhcF0/xJQXDbRgcj4H4dlquqeSWsBVl/PgvQ==";
       };
     };
-    "@aws-sdk/credential-provider-ini-3.451.0" = {
+    "@aws-sdk/credential-provider-ini-3.485.0" = {
       name = "_at_aws-sdk_slash_credential-provider-ini";
       packageName = "@aws-sdk/credential-provider-ini";
-      version = "3.451.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.451.0.tgz";
-        sha512 = "TySt64Ci5/ZbqFw1F9Z0FIGvYx5JSC9e6gqDnizIYd8eMnn8wFRUscRrD7pIHKfrhvVKN5h0GdYovmMO/FMCBw==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.485.0.tgz";
+        sha512 = "cFYF/Bdw7EnT4viSxYpNIv3IBkri/Yb+JpQXl8uDq7bfVJfAN5qZmK07vRkg08xL6TC4F41wshhMSAucGdTwIw==";
       };
     };
     "@aws-sdk/credential-provider-node-3.296.0" = {
@@ -553,13 +544,13 @@ let
         sha512 = "oCkmh2b1DQhHkhd/qA9jiSIOkrBBK7cMg1/PVIgLw8e15NkzUHBObLJ/ZQw6ZzCxZzjlMYaFv9oCB8hyO8txmA==";
       };
     };
-    "@aws-sdk/credential-provider-node-3.451.0" = {
+    "@aws-sdk/credential-provider-node-3.485.0" = {
       name = "_at_aws-sdk_slash_credential-provider-node";
       packageName = "@aws-sdk/credential-provider-node";
-      version = "3.451.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.451.0.tgz";
-        sha512 = "AEwM1WPyxUdKrKyUsKyFqqRFGU70e4qlDyrtBxJnSU9NRLZI8tfEZ67bN7fHSxBUBODgDXpMSlSvJiBLh5/3pw==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.485.0.tgz";
+        sha512 = "2DwzO2azkSzngifKDT61W/DL0tSzewuaFHiLJWdfc8Et3mdAQJ9x3KAj8u7XFpjIcGNqk7FiKjN+zeGUuNiEhA==";
       };
     };
     "@aws-sdk/credential-provider-process-3.296.0" = {
@@ -571,13 +562,13 @@ let
         sha512 = "AY7sTX2dGi8ripuCpcJLYHOZB2wJ6NnseyK/kK5TfJn/pgboKwuGtz0hkJCVprNWomKa6IpHksm7vLQ4O2E+UA==";
       };
     };
-    "@aws-sdk/credential-provider-process-3.451.0" = {
+    "@aws-sdk/credential-provider-process-3.485.0" = {
       name = "_at_aws-sdk_slash_credential-provider-process";
       packageName = "@aws-sdk/credential-provider-process";
-      version = "3.451.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.451.0.tgz";
-        sha512 = "HQywSdKeD5PErcLLnZfSyCJO+6T+ZyzF+Lm/QgscSC+CbSUSIPi//s15qhBRVely/3KBV6AywxwNH+5eYgt4lQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.485.0.tgz";
+        sha512 = "X9qS6ZO/rDKYDgWqD1YmSX7sAUUHax9HbXlgGiTTdtfhZvQh1ZmnH6wiPu5WNliafHZFtZT2W07kgrDLPld/Ug==";
       };
     };
     "@aws-sdk/credential-provider-sso-3.296.0" = {
@@ -589,13 +580,13 @@ let
         sha512 = "zPFHDX/niXfcQrKQhmBv1XPYEe4b7im4vRKrzjYXgDRpG2M3LP0KaWIwN6Ap+GRYBNBthen86vhTlmKGzyU5YA==";
       };
     };
-    "@aws-sdk/credential-provider-sso-3.451.0" = {
+    "@aws-sdk/credential-provider-sso-3.485.0" = {
       name = "_at_aws-sdk_slash_credential-provider-sso";
       packageName = "@aws-sdk/credential-provider-sso";
-      version = "3.451.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.451.0.tgz";
-        sha512 = "Usm/N51+unOt8ID4HnQzxIjUJDrkAQ1vyTOC0gSEEJ7h64NSSPGD5yhN7il5WcErtRd3EEtT1a8/GTC5TdBctg==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.485.0.tgz";
+        sha512 = "l0oC8GTrWh+LFQQfSmG1Jai1PX7Mhj9arb/CaS1/tmeZE0hgIXW++tvljYs/Dds4LGXUlaWG+P7BrObf6OyIXA==";
       };
     };
     "@aws-sdk/credential-provider-web-identity-3.296.0" = {
@@ -607,13 +598,13 @@ let
         sha512 = "Rl6Ohoekxe+pccA55XXQDW5wApbg3rGWr6FkmPRcg7Ld6Vfe+HL8OtfsFf83/0eoFerevbif+00BdknXWT05LA==";
       };
     };
-    "@aws-sdk/credential-provider-web-identity-3.451.0" = {
+    "@aws-sdk/credential-provider-web-identity-3.485.0" = {
       name = "_at_aws-sdk_slash_credential-provider-web-identity";
       packageName = "@aws-sdk/credential-provider-web-identity";
-      version = "3.451.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.451.0.tgz";
-        sha512 = "Xtg3Qw65EfDjWNG7o2xD6sEmumPfsy3WDGjk2phEzVg8s7hcZGxf5wYwe6UY7RJvlEKrU0rFA+AMn6Hfj5oOzg==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.485.0.tgz";
+        sha512 = "WpBFZFE0iXtnibH5POMEKITj/hR0YV5l2n9p8BEvKjdJ63s3Xke1RN20ZdIyKDaRDwj8adnKDgNPEnAKdS4kLw==";
       };
     };
     "@aws-sdk/eventstream-codec-3.296.0" = {
@@ -715,13 +706,13 @@ let
         sha512 = "SCIt10cr5dud7hvwveU4wkLjvkGssJ3GrcbHCds2NwI+JHmpcaaNYLAqi305JAuT29T36U5ssTFDSmrrEOcfag==";
       };
     };
-    "@aws-sdk/lib-storage-3.454.0" = {
+    "@aws-sdk/lib-storage-3.485.0" = {
       name = "_at_aws-sdk_slash_lib-storage";
       packageName = "@aws-sdk/lib-storage";
-      version = "3.454.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.454.0.tgz";
-        sha512 = "UygsmdtIwty9GJqBoCqTQeX/dwE2Oo/m3P5UzuUr2veC6AEuYQyMIvmSgLVEO/ek3hfK86kmRBff7VTGWUuN8Q==";
+        url = "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.485.0.tgz";
+        sha512 = "d/DppujsMu2zg2K95wS2OZ+x+wY41OeZL0duROKZRzNtPyYzlOiSw00+zSz7/sdmUad1bYIEyDJ46zI/FV6AVg==";
       };
     };
     "@aws-sdk/md5-js-3.296.0" = {
@@ -742,13 +733,13 @@ let
         sha512 = "Xhzucs5psscjXJW7V6vMrjJWGmej8Xtw8XIKd91RLmbxdmecMy85/mQC3bIqxgTGhC/e3pKqWSp8z/YjV6iPZg==";
       };
     };
-    "@aws-sdk/middleware-bucket-endpoint-3.451.0" = {
+    "@aws-sdk/middleware-bucket-endpoint-3.485.0" = {
       name = "_at_aws-sdk_slash_middleware-bucket-endpoint";
       packageName = "@aws-sdk/middleware-bucket-endpoint";
-      version = "3.451.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.451.0.tgz";
-        sha512 = "KWyZ1JGnYz2QbHuJtYTP1BVnMOfVopR8rP8dTinVb/JR5HfAYz4imICJlJUbOYRjN7wpA3PrRI8dNRjrSBjWJg==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.485.0.tgz";
+        sha512 = "DptPuprsx9V1LH91ZvC/7a7B1UnuSAIi1ArJHlHqJL1ISo6sH1oeXP6KRa0tj8biGMDIx0b22wg8EEpFePMy3w==";
       };
     };
     "@aws-sdk/middleware-content-length-3.296.0" = {
@@ -778,13 +769,13 @@ let
         sha512 = "aVCv9CdAVWt9AlZKQZRweIywkAszRrZUCo8K5bBUJNdD4061DoDqLK/6jmqXmObas0j1wQr/eNzjYbv99MZBCg==";
       };
     };
-    "@aws-sdk/middleware-expect-continue-3.451.0" = {
+    "@aws-sdk/middleware-expect-continue-3.485.0" = {
       name = "_at_aws-sdk_slash_middleware-expect-continue";
       packageName = "@aws-sdk/middleware-expect-continue";
-      version = "3.451.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.451.0.tgz";
-        sha512 = "vwG8o2Uk6biLDlOZnqXemsO4dS2HvrprUdxyouwu6hlzLFskg8nL122butn19JqXJKgcVLuSSLzT+xwqBWy2Rg==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.485.0.tgz";
+        sha512 = "rOwJJWM1/ydwSiJJ1l/X5h91u2Xzb8/CwOW6ZY+E8iZA0HDCtlJnKNlhHb+NHGtDamd4+1qdGSRtPQevyS58Cg==";
       };
     };
     "@aws-sdk/middleware-flexible-checksums-3.296.0" = {
@@ -796,13 +787,13 @@ let
         sha512 = "F5wVMhLIgA86PKsK/Az7LGIiNVDdZjoSn0+boe6fYW/AIAmgJhPf//500Md0GsKsLOCcPcxiQC43a0hVT2zbew==";
       };
     };
-    "@aws-sdk/middleware-flexible-checksums-3.451.0" = {
+    "@aws-sdk/middleware-flexible-checksums-3.485.0" = {
       name = "_at_aws-sdk_slash_middleware-flexible-checksums";
       packageName = "@aws-sdk/middleware-flexible-checksums";
-      version = "3.451.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.451.0.tgz";
-        sha512 = "eOkpcC2zgAvqs1w7Yp5nsk9LBIj6qLU5kaZuZEBOiFbNKIrTnPo6dQuhgvDcKHD6Y5W/cUjSBiFMs/ROb5aoug==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.485.0.tgz";
+        sha512 = "5+OmVMbEwl1LDdWbaJxoSViw6vuMsdDQgASFUM37aG46q1zWSiPU171IXutEAFZZXN/t0HcOFi0AmNrS0o+dkQ==";
       };
     };
     "@aws-sdk/middleware-host-header-3.296.0" = {
@@ -814,13 +805,13 @@ let
         sha512 = "V47dFtfkX5lXWv9GDp71gZVCRws4fEdQ9QF9BQ/2UMSNrYjQLg6mFe7NibH+IJoNOid2FIwWIl94Eos636VGYQ==";
       };
     };
-    "@aws-sdk/middleware-host-header-3.451.0" = {
+    "@aws-sdk/middleware-host-header-3.485.0" = {
       name = "_at_aws-sdk_slash_middleware-host-header";
       packageName = "@aws-sdk/middleware-host-header";
-      version = "3.451.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.451.0.tgz";
-        sha512 = "j8a5jAfhWmsK99i2k8oR8zzQgXrsJtgrLxc3js6U+525mcZytoiDndkWTmD5fjJ1byU1U2E5TaPq+QJeDip05Q==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.485.0.tgz";
+        sha512 = "1mAUX9dQNGo2RIKseVj7SI/D5abQJQ/Os8hQ0NyVAyyVYF+Yjx5PphKgfhM5yoBwuwZUl6q71XPYEGNx7be6SA==";
       };
     };
     "@aws-sdk/middleware-location-constraint-3.296.0" = {
@@ -832,13 +823,13 @@ let
         sha512 = "KHkWaIrZOtJmV1/WO9KOf7kSK41ngfqts3YIun956NYglKTDKyrBIOPCgmXTT/03odnYsKVT/UfbEIh/v4RxGA==";
       };
     };
-    "@aws-sdk/middleware-location-constraint-3.451.0" = {
+    "@aws-sdk/middleware-location-constraint-3.485.0" = {
       name = "_at_aws-sdk_slash_middleware-location-constraint";
       packageName = "@aws-sdk/middleware-location-constraint";
-      version = "3.451.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.451.0.tgz";
-        sha512 = "R4U2G7mybP0BMiQBJWTcB47g49F4PSXTiCsvMDp5WOEhpWvGQuO1ZIhTxCl5s5lgTSne063Os8W6KSdK2yG2TQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.485.0.tgz";
+        sha512 = "Mrp4chtYliqCUSVjzLYPcZCPGmhL4QM7o6NhHBdA6omaIGdn4pJqFwN5ELZoWJDZMKyfrKi6s6u97jR9VtEXRg==";
       };
     };
     "@aws-sdk/middleware-logger-3.296.0" = {
@@ -850,13 +841,13 @@ let
         sha512 = "LzfEEFyBR9LXdWwLdtBrmi1vLdzgdJNntEgzqktVF8LwaCyY+9xIE6TGu/2V+9fJHAwECxjOC1eQbNQdAZ0Tmw==";
       };
     };
-    "@aws-sdk/middleware-logger-3.451.0" = {
+    "@aws-sdk/middleware-logger-3.485.0" = {
       name = "_at_aws-sdk_slash_middleware-logger";
       packageName = "@aws-sdk/middleware-logger";
-      version = "3.451.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.451.0.tgz";
-        sha512 = "0kHrYEyVeB2QBfP6TfbI240aRtatLZtcErJbhpiNUb+CQPgEL3crIjgVE8yYiJumZ7f0jyjo8HLPkwD1/2APaw==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.485.0.tgz";
+        sha512 = "O8IgJ0LHi5wTs5GlpI7nqmmSSagkVdd1shpGgQWY2h0kMSCII8CJZHBG97dlFFpGTvx5EDlhPNek7rl/6F4dRw==";
       };
     };
     "@aws-sdk/middleware-recursion-detection-3.296.0" = {
@@ -868,13 +859,13 @@ let
         sha512 = "UG7TLDPz9ImQG0uVklHTxE9Us7rTImwN+6el6qZCpoTBuGeXgOkfb0/p8izJyFgY/hMUR4cZqs7IdCDUkxQF3w==";
       };
     };
-    "@aws-sdk/middleware-recursion-detection-3.451.0" = {
+    "@aws-sdk/middleware-recursion-detection-3.485.0" = {
       name = "_at_aws-sdk_slash_middleware-recursion-detection";
       packageName = "@aws-sdk/middleware-recursion-detection";
-      version = "3.451.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.451.0.tgz";
-        sha512 = "J6jL6gJ7orjHGM70KDRcCP7so/J2SnkN4vZ9YRLTeeZY6zvBuHDjX8GCIgSqPn/nXFXckZO8XSnA7u6+3TAT0w==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.485.0.tgz";
+        sha512 = "ZeVNATGNFcqkWDut3luVszROTUzkU5u+rJpB/xmeMoenlDAjPRiHt/ca3WkI5wAnIJ1VSNGpD2sOFLMCH+EWag==";
       };
     };
     "@aws-sdk/middleware-retry-3.296.0" = {
@@ -895,13 +886,13 @@ let
         sha512 = "zH4uZKEqumo01wn+dTwrYnvOui9GjDiuBHdECnSjnA0Mkxo/tfMPYzYD7mE8kUlBz7HfQcXeXlyaApj9fPkxvg==";
       };
     };
-    "@aws-sdk/middleware-sdk-s3-3.451.0" = {
+    "@aws-sdk/middleware-sdk-s3-3.485.0" = {
       name = "_at_aws-sdk_slash_middleware-sdk-s3";
       packageName = "@aws-sdk/middleware-sdk-s3";
-      version = "3.451.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.451.0.tgz";
-        sha512 = "XF4Cw8HrYUwGLKOqKtWs6ss1WXoxvQUcgGLACGSqn9a0p51446NiS5671x7qJUsfBuygdKlIKcOc8pPr9a+5Ow==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.485.0.tgz";
+        sha512 = "3769c4e3UtvaNU5T6dHxhjGI1kEXymldqiP1PMZMX2jVffwSGhbvyLq0Kl6+9Jr51fj2oXN6Tex+8J9+5dzTgQ==";
       };
     };
     "@aws-sdk/middleware-sdk-sts-3.296.0" = {
@@ -913,15 +904,6 @@ let
         sha512 = "0EnHtiRzcRcXaF6zEgcRGUtVgX0RqczwlGXjtryHcxiqU/+adqbRuckC7bdMF4Zva6GVPS25XppvGF4M+UzAEw==";
       };
     };
-    "@aws-sdk/middleware-sdk-sts-3.451.0" = {
-      name = "_at_aws-sdk_slash_middleware-sdk-sts";
-      packageName = "@aws-sdk/middleware-sdk-sts";
-      version = "3.451.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.451.0.tgz";
-        sha512 = "UJ6UfVUEgp0KIztxpAeelPXI5MLj9wUtUCqYeIMP7C1ZhoEMNm3G39VLkGN43dNhBf1LqjsV9jkKMZbVfYXuwg==";
-      };
-    };
     "@aws-sdk/middleware-serde-3.296.0" = {
       name = "_at_aws-sdk_slash_middleware-serde";
       packageName = "@aws-sdk/middleware-serde";
@@ -940,13 +922,13 @@ let
         sha512 = "wyiG+WPDvugGTIPpKchGOdvvpcMZEN2IfP6iK//QAqGXsC6rDm5+SNZ3+elvduZjPUdVA06W0CcFYBAkVz8D7Q==";
       };
     };
-    "@aws-sdk/middleware-signing-3.451.0" = {
+    "@aws-sdk/middleware-signing-3.485.0" = {
       name = "_at_aws-sdk_slash_middleware-signing";
       packageName = "@aws-sdk/middleware-signing";
-      version = "3.451.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.451.0.tgz";
-        sha512 = "s5ZlcIoLNg1Huj4Qp06iKniE8nJt/Pj1B/fjhWc6cCPCM7XJYUCejCnRh6C5ZJoBEYodjuwZBejPc1Wh3j+znA==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.485.0.tgz";
+        sha512 = "41xzT2p1sOibhsLkdE5rwPJkNbBtKD8Gp36/ySfu0KE415wfXKacElSVxAaBw39/j7iSWDYqqybeEYbAzk+3GQ==";
       };
     };
     "@aws-sdk/middleware-ssec-3.296.0" = {
@@ -958,13 +940,13 @@ let
         sha512 = "vcSyXxEXAC9rWzUd7rq2/JxPdt87DKiA+wfiBrpGvFV+bacocIV0TFcpJncgZqMOoP8b6Osd+mW4BjlkwBamtA==";
       };
     };
-    "@aws-sdk/middleware-ssec-3.451.0" = {
+    "@aws-sdk/middleware-ssec-3.485.0" = {
       name = "_at_aws-sdk_slash_middleware-ssec";
       packageName = "@aws-sdk/middleware-ssec";
-      version = "3.451.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.451.0.tgz";
-        sha512 = "hDkeBUiRsvuDbvsPha0/uJHE680WDzjAOoE6ZnLBoWsw7ry+Bw1ULMj0sCmpBVrQ7Gpivi/6zbezhClVmt3ITw==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.485.0.tgz";
+        sha512 = "A59WTC0egT8zLnRzB+yWKq2AonugD1DgN4710RG70JY5XUmx5TYdECbUrVeG/zhNIKbBLLFjRcVk2uo4OZcgIA==";
       };
     };
     "@aws-sdk/middleware-stack-3.296.0" = {
@@ -985,13 +967,13 @@ let
         sha512 = "L7jacxSt6gxX1gD3tQtfwHqBDk5rT2wWD3rxBa6rs7f81b9ObgY/sPT2IgRT7JNCVzvKLYFxJaTklDj65mY1SQ==";
       };
     };
-    "@aws-sdk/middleware-user-agent-3.451.0" = {
+    "@aws-sdk/middleware-user-agent-3.485.0" = {
       name = "_at_aws-sdk_slash_middleware-user-agent";
       packageName = "@aws-sdk/middleware-user-agent";
-      version = "3.451.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.451.0.tgz";
-        sha512 = "8NM/0JiKLNvT9wtAQVl1DFW0cEO7OvZyLSUBLNLTHqyvOZxKaZ8YFk7d8PL6l76LeUKRxq4NMxfZQlUIRe0eSA==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.485.0.tgz";
+        sha512 = "CddCVOn+OPQ0CcchketIg+WF6v+MDLAf3GOYTR2htUxxIm7HABuRd6R3kvQ5Jny9CV8gMt22G1UZITsFexSJlQ==";
       };
     };
     "@aws-sdk/node-config-provider-3.296.0" = {
@@ -1048,22 +1030,22 @@ let
         sha512 = "nLNZKVQfK42euv7101cE5qfg17YCtGcfccx3B5XSAzvyTROR46kwYqbEvYSsWisbZoRhbQc905gB/5E0U5HDIw==";
       };
     };
-    "@aws-sdk/region-config-resolver-3.451.0" = {
+    "@aws-sdk/region-config-resolver-3.485.0" = {
       name = "_at_aws-sdk_slash_region-config-resolver";
       packageName = "@aws-sdk/region-config-resolver";
-      version = "3.451.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.451.0.tgz";
-        sha512 = "3iMf4OwzrFb4tAAmoROXaiORUk2FvSejnHIw/XHvf/jjR4EqGGF95NZP/n/MeFZMizJWVssrwS412GmoEyoqhg==";
+        url = "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.485.0.tgz";
+        sha512 = "2FB2EQ0sIE+YgFqGtkE1lDIMIL6nYe6MkOHBwBM7bommadKIrbbr2L22bPZGs3ReTsxiJabjzxbuCAVhrpHmhg==";
       };
     };
-    "@aws-sdk/s3-presigned-post-3.454.0" = {
+    "@aws-sdk/s3-presigned-post-3.485.0" = {
       name = "_at_aws-sdk_slash_s3-presigned-post";
       packageName = "@aws-sdk/s3-presigned-post";
-      version = "3.454.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/s3-presigned-post/-/s3-presigned-post-3.454.0.tgz";
-        sha512 = "R5xlC2GSX9SeAjuB4qhuavA+DDITm0cuwBKZwuAiwNMN1PkVzcsEjfHzqI4TCb3xQB2BKAsICAqsPTe/buaEVQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/s3-presigned-post/-/s3-presigned-post-3.485.0.tgz";
+        sha512 = "uu6PmQaIMrdovePeQi+DHiVuQcW4EXDcNgaL+sUeZjzPXV1/nTROgW+msMRB9nmWMhdEaVCNLUgJDf73BsYY5A==";
       };
     };
     "@aws-sdk/s3-request-presigner-3.296.0" = {
@@ -1075,13 +1057,13 @@ let
         sha512 = "BQv+oNA5EzJymrfh7cnMun/ougmTX3eo6bGCWn/bQdL1LyxodeVdRZacD5tN+lAUYtjhQ7yS23ozYh0lvWNEXw==";
       };
     };
-    "@aws-sdk/s3-request-presigner-3.454.0" = {
+    "@aws-sdk/s3-request-presigner-3.485.0" = {
       name = "_at_aws-sdk_slash_s3-request-presigner";
       packageName = "@aws-sdk/s3-request-presigner";
-      version = "3.454.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.454.0.tgz";
-        sha512 = "2Lr5bZkpSfl0Ixaylbv/ZGgimdzkw0I7akXwosWagnCAWRnWBnWGlWkAnHdnpHjQVamyVr0C6gST7+Y3fKh5Sg==";
+        url = "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.485.0.tgz";
+        sha512 = "5TCyl1H/PdBH0XDSILb9y1d/fU+tDEQ7Fkqeb2gIYENDG09dX68TtcZVGs0sMZtC9CLUFpmEp8R/3LtfuoeY6w==";
       };
     };
     "@aws-sdk/service-error-classification-3.296.0" = {
@@ -1111,13 +1093,13 @@ let
         sha512 = "NQyJ/FClty4VmF1WoV4rOkbN0Unn0zevzy8iJrYhqxE3Sc7lySM4Btnsd4Iqelm2dR6l+jNRApGgD8NvoGjGig==";
       };
     };
-    "@aws-sdk/signature-v4-crt-3.451.0" = {
+    "@aws-sdk/signature-v4-crt-3.485.0" = {
       name = "_at_aws-sdk_slash_signature-v4-crt";
       packageName = "@aws-sdk/signature-v4-crt";
-      version = "3.451.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/signature-v4-crt/-/signature-v4-crt-3.451.0.tgz";
-        sha512 = "bWoHFsAg6yF+3lpmQfYPlTbioOS+o5PfsewZn8OouAalkiRmNzuW6Pcw1ebHL7OLlp7AUAXLLO79ji+5F3NyJw==";
+        url = "https://registry.npmjs.org/@aws-sdk/signature-v4-crt/-/signature-v4-crt-3.485.0.tgz";
+        sha512 = "fQLUM/PG5o7zfDL2jt9MA3ZsygIYmuRsyhJ6oP1fnzky6uSlQlkZ3i9aCTn7fJn4rZe9KAkwX1+KvME5Y0dT2Q==";
       };
     };
     "@aws-sdk/signature-v4-multi-region-3.296.0" = {
@@ -1129,13 +1111,13 @@ let
         sha512 = "BNMXS0YJEgflPhO2KxXG4f0iTMOGdyxslDMNGmMWGGQm6bbwtqZ7Y9ZyMQYKfzk3GUPpfGQcaaSNiGfURPOCOg==";
       };
     };
-    "@aws-sdk/signature-v4-multi-region-3.451.0" = {
+    "@aws-sdk/signature-v4-multi-region-3.485.0" = {
       name = "_at_aws-sdk_slash_signature-v4-multi-region";
       packageName = "@aws-sdk/signature-v4-multi-region";
-      version = "3.451.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.451.0.tgz";
-        sha512 = "qQKY7/txeNUTLyRL3WxUWEwaZ5sf76EIZgu9kLaR96cAYSxwQi/qQB3ijbfD6u7sJIA8aROMxeYK0VmRsQg0CA==";
+        url = "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.485.0.tgz";
+        sha512 = "168ipXkbG75l9cKQmsBtx/4+AYjGsBoy724bXosW13t2/l/E3IzJAYUjDROiK0JXVMG85xAnGWbFwZkjxVXzrQ==";
       };
     };
     "@aws-sdk/smithy-client-3.296.0" = {
@@ -1156,13 +1138,13 @@ let
         sha512 = "yC1ku7A5S+o/CLlgbgDB2bx8+Wq43qj8xfohmTuIhpiP2m/NyUiRVv6S6ARONLI6bVeo1T2/BFk5Q9DfE2xzAQ==";
       };
     };
-    "@aws-sdk/token-providers-3.451.0" = {
+    "@aws-sdk/token-providers-3.485.0" = {
       name = "_at_aws-sdk_slash_token-providers";
       packageName = "@aws-sdk/token-providers";
-      version = "3.451.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.451.0.tgz";
-        sha512 = "ij1L5iUbn6CwxVOT1PG4NFjsrsKN9c4N1YEM0lkl6DwmaNOscjLKGSNyj9M118vSWsOs1ZDbTwtj++h0O/BWrQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.485.0.tgz";
+        sha512 = "kOXA1WKIVIFNRqHL8ynVZ3hCKLsgnEmGr2iDR6agDNw5fYIlCO/6N2xR6QdGcLTvUUbwOlz4OvKLUQnWMKAnnA==";
       };
     };
     "@aws-sdk/types-3.296.0" = {
@@ -1174,13 +1156,13 @@ let
         sha512 = "s0wIac64rrMEo2ioUxP9IarGiiCGmelCspNcoNTPSjGl25QqjhyfQqTeGgS58qJ4fHoQb07qra39930xp1IzJg==";
       };
     };
-    "@aws-sdk/types-3.451.0" = {
+    "@aws-sdk/types-3.485.0" = {
       name = "_at_aws-sdk_slash_types";
       packageName = "@aws-sdk/types";
-      version = "3.451.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/types/-/types-3.451.0.tgz";
-        sha512 = "rhK+qeYwCIs+laJfWCcrYEjay2FR/9VABZJ2NRM89jV/fKqGVQR52E5DQqrI+oEIL5JHMhhnr4N4fyECMS35lw==";
+        url = "https://registry.npmjs.org/@aws-sdk/types/-/types-3.485.0.tgz";
+        sha512 = "+QW32YQdvZRDOwrAQPo/qCyXoSjgXB6RwJwCwkd8ebJXRXw6tmGKIHaZqYHt/LtBymvnaBgBBADNa4+qFvlOFw==";
       };
     };
     "@aws-sdk/url-parser-3.296.0" = {
@@ -1201,13 +1183,13 @@ let
         sha512 = "kSSVymcbjyQQHvCZaTt1teKKW4MSSMPRdPNxSNO1aLsVwxrWdnAggDrpHwFjvPCRUcKtpThepATOz75PfUm9Bg==";
       };
     };
-    "@aws-sdk/util-arn-parser-3.310.0" = {
+    "@aws-sdk/util-arn-parser-3.465.0" = {
       name = "_at_aws-sdk_slash_util-arn-parser";
       packageName = "@aws-sdk/util-arn-parser";
-      version = "3.310.0";
+      version = "3.465.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.310.0.tgz";
-        sha512 = "jL8509owp/xB9+Or0pvn3Fe+b94qfklc2yPowZZIFAkFcCSIdkIglz18cPDWnYAcy9JGewpMS1COXKIUhZkJsA==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.465.0.tgz";
+        sha512 = "zOJ82vzDJFqBX9yZBlNeHHrul/kpx/DCoxzW5UBbZeb26kfV53QhMSoEmY8/lEbBqlqargJ/sgRC845GFhHNQw==";
       };
     };
     "@aws-sdk/util-base64-3.295.0" = {
@@ -1291,13 +1273,13 @@ let
         sha512 = "YraGGLJepXM6HCTaqEGTFf8RFRBdJ0C6uG5k0kVhiXmYxBkeupn8J07CVp9jfWqcPYWElAnMGVEZKU1OjRo4HQ==";
       };
     };
-    "@aws-sdk/util-endpoints-3.451.0" = {
+    "@aws-sdk/util-endpoints-3.485.0" = {
       name = "_at_aws-sdk_slash_util-endpoints";
       packageName = "@aws-sdk/util-endpoints";
-      version = "3.451.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.451.0.tgz";
-        sha512 = "giqLGBTnRIcKkDqwU7+GQhKbtJ5Ku35cjGQIfMyOga6pwTBUbaK0xW1Sdd8sBQ1GhApscnChzI9o/R9x0368vw==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.485.0.tgz";
+        sha512 = "dTd642F7nJisApF8YjniqQ6U59CP/DCtar11fXf1nG9YNBCBsNNVw5ZfZb5nSNzaIdy27mQioWTCV18JEj1mxg==";
       };
     };
     "@aws-sdk/util-format-url-3.296.0" = {
@@ -1309,13 +1291,13 @@ let
         sha512 = "CcYECzkUAnHL5q3uyPicafn2OY0GiklIYfuOUHPZ/4FMxIesd1BnCDDRjTlFxLWjuNuiihIdwB7Qb1pDzxc3Iw==";
       };
     };
-    "@aws-sdk/util-format-url-3.451.0" = {
+    "@aws-sdk/util-format-url-3.485.0" = {
       name = "_at_aws-sdk_slash_util-format-url";
       packageName = "@aws-sdk/util-format-url";
-      version = "3.451.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.451.0.tgz";
-        sha512 = "gmcqSFTIISU9iN6rSbc8HVqB9ACluPbo4mS0ztkk9DaDz5zK/YxoKBJSfqkZFidMzxYiXeWruDCxD8ZgYRn6ug==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.485.0.tgz";
+        sha512 = "CW82AQ8UD88jhI2OyAgT5yA8NH2KE0mgludRXYDT5uvwj6nlA7c2B+c2UJwbkMdlsUZip/XvN+jFoRR7AJH1GQ==";
       };
     };
     "@aws-sdk/util-hex-encoding-3.295.0" = {
@@ -1327,13 +1309,13 @@ let
         sha512 = "XJcoVo41kHzhe28PBm/rqt5mdCp8R6abwiW9ug1dA6FOoPUO8kBUxDv6xaOmA2hfRvd2ocFfBXaUCBqUowkGcQ==";
       };
     };
-    "@aws-sdk/util-locate-window-3.310.0" = {
+    "@aws-sdk/util-locate-window-3.465.0" = {
       name = "_at_aws-sdk_slash_util-locate-window";
       packageName = "@aws-sdk/util-locate-window";
-      version = "3.310.0";
+      version = "3.465.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.310.0.tgz";
-        sha512 = "qo2t/vBTnoXpjKxlsC2e1gBrRm80M3bId27r0BRB2VniSSe7bL1mmzM+/HFtujm0iAxtPM+aLEflLJlJeDPg0w==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.465.0.tgz";
+        sha512 = "f+QNcWGswredzC1ExNAB/QzODlxwaTdXkNT5cvke2RLX8SFU5pYk6h4uCtWC0vWPELzOfMfloBrJefBzlarhsw==";
       };
     };
     "@aws-sdk/util-middleware-3.296.0" = {
@@ -1390,13 +1372,13 @@ let
         sha512 = "MGGG+09VkF0N+8KEht8NNE6Q7bqmddgqLkUbvzSky0y18UPEZyq9LTC4JZtzDDOzf/swgbq2IQ/5wtB81iouog==";
       };
     };
-    "@aws-sdk/util-user-agent-browser-3.451.0" = {
+    "@aws-sdk/util-user-agent-browser-3.485.0" = {
       name = "_at_aws-sdk_slash_util-user-agent-browser";
       packageName = "@aws-sdk/util-user-agent-browser";
-      version = "3.451.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.451.0.tgz";
-        sha512 = "Ws5mG3J0TQifH7OTcMrCTexo7HeSAc3cBgjfhS/ofzPUzVCtsyg0G7I6T7wl7vJJETix2Kst2cpOsxygPgPD9w==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.485.0.tgz";
+        sha512 = "QliWbjg0uOhGTcWgWTKPMY0SBi07g253DjwrCINT1auqDrdQPxa10xozpZExBYjAK2KuhYDNUzni127ae6MHOw==";
       };
     };
     "@aws-sdk/util-user-agent-node-3.296.0" = {
@@ -1408,13 +1390,13 @@ let
         sha512 = "AMWac8aIBnaa9nxAEpZ752j29a/UQTViRfR5gnCX38ECBKGfOQMpgYnee5HdlMr4GHJj0WkOzQxBtInW4pV58g==";
       };
     };
-    "@aws-sdk/util-user-agent-node-3.451.0" = {
+    "@aws-sdk/util-user-agent-node-3.485.0" = {
       name = "_at_aws-sdk_slash_util-user-agent-node";
       packageName = "@aws-sdk/util-user-agent-node";
-      version = "3.451.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.451.0.tgz";
-        sha512 = "TBzm6P+ql4mkGFAjPlO1CI+w3yUT+NulaiALjl/jNX/nnUp6HsJsVxJf4nVFQTG5KRV0iqMypcs7I3KIhH+LmA==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.485.0.tgz";
+        sha512 = "QF+aQ9jnDlPUlFBxBRqOylPf86xQuD3aEPpOErR+50qJawVvKa94uiAFdvtI9jv6hnRZmuFsTj2rsyytnbAYBA==";
       };
     };
     "@aws-sdk/util-utf8-3.295.0" = {
@@ -1453,13 +1435,13 @@ let
         sha512 = "7VX3Due7Ip73yfYErFDHZvhgBohC4IyMTfW49DI4C/LFKFCcAoB888MdevUkB87GoiNaRLeT3ZMZ86IWlSEaow==";
       };
     };
-    "@aws-sdk/xml-builder-3.310.0" = {
+    "@aws-sdk/xml-builder-3.485.0" = {
       name = "_at_aws-sdk_slash_xml-builder";
       packageName = "@aws-sdk/xml-builder";
-      version = "3.310.0";
+      version = "3.485.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.310.0.tgz";
-        sha512 = "TqELu4mOuSIKQCqj63fGVs86Yh+vBx5nHRpWKNUNhB2nPTpfbziTs5c1X358be3peVWA4wPxW7Nt53KIg1tnNw==";
+        url = "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.485.0.tgz";
+        sha512 = "xQexPM6LINOIkf3NLFywplcbApifZRMWFN41TDWYSNgCUa5uC9fntfenw8N/HTx1n+McRCWSAFBTjDqY/2OLCQ==";
       };
     };
     "@azu/format-text-1.0.2" = {
@@ -1507,13 +1489,13 @@ let
         sha512 = "kleJ1iUTxcO32Y06dH9Pfi9K4U+Tlb111WXEnbt7R/ne+NLRwppZiTGJuTD5VVoxTMK5NTbEtm5t2vcdNCFe2g==";
       };
     };
-    "@azure/core-http-2.3.2" = {
+    "@azure/core-http-3.0.4" = {
       name = "_at_azure_slash_core-http";
       packageName = "@azure/core-http";
-      version = "2.3.2";
+      version = "3.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/core-http/-/core-http-2.3.2.tgz";
-        sha512 = "Z4dfbglV9kNZO177CNx4bo5ekFuYwwsvjLiKdZI4r84bYGv3irrbQz7JC3/rUfFH2l4T/W6OFleJaa2X0IaQqw==";
+        url = "https://registry.npmjs.org/@azure/core-http/-/core-http-3.0.4.tgz";
+        sha512 = "Fok9VVhMdxAFOtqiiAtg74fL0UJkt0z3D+ouUUxcRLzZNBioPRAMJFVxiWoJljYpXsRi4GDQHzQHDc9AiYaIUQ==";
       };
     };
     "@azure/core-lro-2.5.4" = {
@@ -1543,13 +1525,13 @@ let
         sha512 = "Kji9k6TOFRDB5ZMTw8qUf2IJ+CeJtsuMdAHox9eqpTf1cefiNMpzrfnF6sINEBZJsaVaWgQ0o48B6kcUH68niA==";
       };
     };
-    "@azure/core-rest-pipeline-1.12.2" = {
+    "@azure/core-rest-pipeline-1.13.0" = {
       name = "_at_azure_slash_core-rest-pipeline";
       packageName = "@azure/core-rest-pipeline";
-      version = "1.12.2";
+      version = "1.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.12.2.tgz";
-        sha512 = "wLLJQdL4v1yoqYtEtjKNjf8pJ/G/BqVomAWxcKOR1KbZJyCEnCv04yks7Y1NhJ3JzxbDs307W67uX0JzklFdCg==";
+        url = "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.13.0.tgz";
+        sha512 = "a62aP/wppgmnfIkJLfcB4ssPBcH94WzrzPVJ3tlJt050zX4lfmtnvy95D3igDo3f31StO+9BgPrzvkj4aOxnoA==";
       };
     };
     "@azure/core-tracing-1.0.0-preview.13" = {
@@ -1588,13 +1570,13 @@ let
         sha512 = "h5taHeySlsV9qxuK64KZxy4iln1BtMYlNt5jbuEFN3UFSAd1EwKg/Gjl5a6tZ/W8t6li3xPnutOx7zbDyXnPmQ==";
       };
     };
-    "@azure/identity-2.1.0" = {
+    "@azure/identity-4.0.0" = {
       name = "_at_azure_slash_identity";
       packageName = "@azure/identity";
-      version = "2.1.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/identity/-/identity-2.1.0.tgz";
-        sha512 = "BPDz1sK7Ul9t0l9YKLEa8PHqWU4iCfhGJ+ELJl6c8CP3TpJt2urNCbm0ZHsthmxRsYoMPbz2Dvzj30zXZVmAFw==";
+        url = "https://registry.npmjs.org/@azure/identity/-/identity-4.0.0.tgz";
+        sha512 = "gtPYxIL0kI39Dw4t3HvlbfhOdXqKD2MqDgynlklF0j728j51dcKgRo6FLX0QzpBw/1gGfLxjMXqq3nKOSQ2lmA==";
       };
     };
     "@azure/logger-1.0.4" = {
@@ -1606,40 +1588,31 @@ let
         sha512 = "ustrPY8MryhloQj7OWGe+HrYx+aoiOxzbXTtgblbV3xwCqpzUK36phH3XNHQKj3EPonyFUuDTfR3qFhTEAuZEg==";
       };
     };
-    "@azure/msal-browser-2.38.3" = {
+    "@azure/msal-browser-3.6.0" = {
       name = "_at_azure_slash_msal-browser";
       packageName = "@azure/msal-browser";
-      version = "2.38.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-2.38.3.tgz";
-        sha512 = "2WuLFnWWPR1IdvhhysT18cBbkXx1z0YIchVss5AwVA95g7CU5CpT3d+5BcgVGNXDXbUU7/5p0xYHV99V5z8C/A==";
-      };
-    };
-    "@azure/msal-common-13.3.1" = {
-      name = "_at_azure_slash_msal-common";
-      packageName = "@azure/msal-common";
-      version = "13.3.1";
+      version = "3.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/msal-common/-/msal-common-13.3.1.tgz";
-        sha512 = "Lrk1ozoAtaP/cp53May3v6HtcFSVxdFrg2Pa/1xu5oIvsIwhxW6zSPibKefCOVgd5osgykMi5jjcZHv8XkzZEQ==";
+        url = "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.6.0.tgz";
+        sha512 = "FrFBJXRJMyWXjAjg4cUNZwEKktzfzD/YD9+S1kj2ors67hKoveam4aL0bZuCZU/jTiHTn0xDQGQh2ksCMXTXtA==";
       };
     };
-    "@azure/msal-common-7.6.0" = {
+    "@azure/msal-common-14.5.0" = {
       name = "_at_azure_slash_msal-common";
       packageName = "@azure/msal-common";
-      version = "7.6.0";
+      version = "14.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/msal-common/-/msal-common-7.6.0.tgz";
-        sha512 = "XqfbglUTVLdkHQ8F9UQJtKseRr3sSnr9ysboxtoswvaMVaEfvyLtMoHv9XdKUfOc0qKGzNgRFd9yRjIWVepl6Q==";
+        url = "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.5.0.tgz";
+        sha512 = "Gx5rZbiZV/HiZ2nEKfjfAF/qDdZ4/QWxMvMo2jhIFVz528dVKtaZyFAOtsX2Ak8+TQvRsGCaEfuwJFuXB6tu1A==";
       };
     };
-    "@azure/msal-node-1.18.4" = {
+    "@azure/msal-node-2.6.0" = {
       name = "_at_azure_slash_msal-node";
       packageName = "@azure/msal-node";
-      version = "1.18.4";
+      version = "2.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/msal-node/-/msal-node-1.18.4.tgz";
-        sha512 = "Kc/dRvhZ9Q4+1FSfsTFDME/v6+R2Y1fuMty/TfwqE5p9GTPw08BPbKgeWinE8JRHRp+LemjQbUZsn4Q4l6Lszg==";
+        url = "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.6.0.tgz";
+        sha512 = "RWAWCYYrSldIYC47oWtofIun41e6SB9TBYgGYsezq6ednagwo9ZRFyRsvl1NabmdTkdDDXRAABIdveeN2Gtd8w==";
       };
     };
     "@azure/opentelemetry-instrumentation-azure-sdk-1.0.0-beta.5" = {
@@ -1651,13 +1624,13 @@ let
         sha512 = "fsUarKQDvjhmBO4nIfaZkfNSApm1hZBzcvpNbSrXdcUBxu7lRvKsV5DnwszX7cnhLyVOW9yl1uigtRQ1yDANjA==";
       };
     };
-    "@azure/storage-blob-12.11.0" = {
+    "@azure/storage-blob-12.17.0" = {
       name = "_at_azure_slash_storage-blob";
       packageName = "@azure/storage-blob";
-      version = "12.11.0";
+      version = "12.17.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.11.0.tgz";
-        sha512 = "na+FisoARuaOWaHWpmdtk3FeuTWf2VWamdJ9/TJJzj5ZdXPLC3juoDgFs6XVuJIoK30yuBpyFBEDXVRK4pB7Tg==";
+        url = "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.17.0.tgz";
+        sha512 = "sM4vpsCpcCApagRW5UIjQNlNylo02my2opgp0Emi8x888hZUvJ3dN69Oq20cEGXkMUWnoCrBaB0zyS3yeB87sQ==";
       };
     };
     "@babel/cli-7.23.4" = {
@@ -1696,31 +1669,31 @@ let
         sha512 = "TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==";
       };
     };
-    "@babel/code-frame-7.23.4" = {
+    "@babel/code-frame-7.23.5" = {
       name = "_at_babel_slash_code-frame";
       packageName = "@babel/code-frame";
-      version = "7.23.4";
+      version = "7.23.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz";
-        sha512 = "r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==";
+        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz";
+        sha512 = "CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==";
       };
     };
-    "@babel/compat-data-7.23.3" = {
+    "@babel/compat-data-7.23.5" = {
       name = "_at_babel_slash_compat-data";
       packageName = "@babel/compat-data";
-      version = "7.23.3";
+      version = "7.23.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz";
-        sha512 = "BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==";
+        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz";
+        sha512 = "uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==";
       };
     };
-    "@babel/core-7.23.3" = {
+    "@babel/core-7.23.7" = {
       name = "_at_babel_slash_core";
       packageName = "@babel/core";
-      version = "7.23.3";
+      version = "7.23.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz";
-        sha512 = "Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==";
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz";
+        sha512 = "+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==";
       };
     };
     "@babel/generator-7.17.7" = {
@@ -1741,13 +1714,13 @@ let
         sha512 = "W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==";
       };
     };
-    "@babel/generator-7.23.4" = {
+    "@babel/generator-7.23.6" = {
       name = "_at_babel_slash_generator";
       packageName = "@babel/generator";
-      version = "7.23.4";
+      version = "7.23.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.23.4.tgz";
-        sha512 = "esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==";
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz";
+        sha512 = "qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==";
       };
     };
     "@babel/helper-annotate-as-pure-7.22.5" = {
@@ -1768,22 +1741,22 @@ let
         sha512 = "QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==";
       };
     };
-    "@babel/helper-compilation-targets-7.22.15" = {
+    "@babel/helper-compilation-targets-7.23.6" = {
       name = "_at_babel_slash_helper-compilation-targets";
       packageName = "@babel/helper-compilation-targets";
-      version = "7.22.15";
+      version = "7.23.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz";
-        sha512 = "y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==";
+        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz";
+        sha512 = "9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==";
       };
     };
-    "@babel/helper-create-class-features-plugin-7.22.15" = {
+    "@babel/helper-create-class-features-plugin-7.23.7" = {
       name = "_at_babel_slash_helper-create-class-features-plugin";
       packageName = "@babel/helper-create-class-features-plugin";
-      version = "7.22.15";
+      version = "7.23.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz";
-        sha512 = "jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==";
+        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.7.tgz";
+        sha512 = "xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==";
       };
     };
     "@babel/helper-create-regexp-features-plugin-7.22.15" = {
@@ -1795,13 +1768,13 @@ let
         sha512 = "29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==";
       };
     };
-    "@babel/helper-define-polyfill-provider-0.4.3" = {
+    "@babel/helper-define-polyfill-provider-0.4.4" = {
       name = "_at_babel_slash_helper-define-polyfill-provider";
       packageName = "@babel/helper-define-polyfill-provider";
-      version = "0.4.3";
+      version = "0.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz";
-        sha512 = "WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==";
+        url = "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz";
+        sha512 = "QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==";
       };
     };
     "@babel/helper-environment-visitor-7.22.20" = {
@@ -1939,13 +1912,13 @@ let
         sha512 = "Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==";
       };
     };
-    "@babel/helper-validator-option-7.22.15" = {
+    "@babel/helper-validator-option-7.23.5" = {
       name = "_at_babel_slash_helper-validator-option";
       packageName = "@babel/helper-validator-option";
-      version = "7.22.15";
+      version = "7.23.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz";
-        sha512 = "bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==";
+        url = "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz";
+        sha512 = "85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==";
       };
     };
     "@babel/helper-wrap-function-7.22.20" = {
@@ -1957,13 +1930,13 @@ let
         sha512 = "pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==";
       };
     };
-    "@babel/helpers-7.23.4" = {
+    "@babel/helpers-7.23.7" = {
       name = "_at_babel_slash_helpers";
       packageName = "@babel/helpers";
-      version = "7.23.4";
+      version = "7.23.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.4.tgz";
-        sha512 = "HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==";
+        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.7.tgz";
+        sha512 = "6AMnjCoC8wjqBzDHkuqpa7jAKwvMo4dC+lr/TFBz+ucfulO1XMpDnwWPGBNwClOKZ8h6xn5N81W/R5OrcKtCbQ==";
       };
     };
     "@babel/highlight-7.23.4" = {
@@ -1993,13 +1966,13 @@ let
         sha512 = "FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==";
       };
     };
-    "@babel/parser-7.23.4" = {
+    "@babel/parser-7.23.6" = {
       name = "_at_babel_slash_parser";
       packageName = "@babel/parser";
-      version = "7.23.4";
+      version = "7.23.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.23.4.tgz";
-        sha512 = "vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==";
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz";
+        sha512 = "Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==";
       };
     };
     "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3" = {
@@ -2020,13 +1993,13 @@ let
         sha512 = "WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==";
       };
     };
-    "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3" = {
+    "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7" = {
       name = "_at_babel_slash_plugin-bugfix-v8-static-class-fields-redefine-readonly";
       packageName = "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly";
-      version = "7.23.3";
+      version = "7.23.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz";
-        sha512 = "XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==";
+        url = "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz";
+        sha512 = "LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==";
       };
     };
     "@babel/plugin-proposal-async-generator-functions-7.20.7" = {
@@ -2047,13 +2020,13 @@ let
         sha512 = "cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==";
       };
     };
-    "@babel/plugin-proposal-decorators-7.23.3" = {
+    "@babel/plugin-proposal-decorators-7.23.7" = {
       name = "_at_babel_slash_plugin-proposal-decorators";
       packageName = "@babel/plugin-proposal-decorators";
-      version = "7.23.3";
+      version = "7.23.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.3.tgz";
-        sha512 = "u8SwzOcP0DYSsa++nHd/9exlHb0NAlHCb890qtZZbSwPX2bFv8LBEztxwN7Xg/dS8oAFFidhrI9PBcLBJSkGRQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.7.tgz";
+        sha512 = "b1s5JyeMvqj7d9m9KhJNHKc18gEJiSyVzVX3bwbiPalQBQpuvfPh6lA9F7Kk/dWH0TIiXRpB9yicwijY6buPng==";
       };
     };
     "@babel/plugin-proposal-export-default-from-7.23.3" = {
@@ -2326,13 +2299,13 @@ let
         sha512 = "NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==";
       };
     };
-    "@babel/plugin-transform-async-generator-functions-7.23.4" = {
+    "@babel/plugin-transform-async-generator-functions-7.23.7" = {
       name = "_at_babel_slash_plugin-transform-async-generator-functions";
       packageName = "@babel/plugin-transform-async-generator-functions";
-      version = "7.23.4";
+      version = "7.23.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz";
-        sha512 = "efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.7.tgz";
+        sha512 = "PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA==";
       };
     };
     "@babel/plugin-transform-async-to-generator-7.23.3" = {
@@ -2380,13 +2353,13 @@ let
         sha512 = "nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==";
       };
     };
-    "@babel/plugin-transform-classes-7.23.3" = {
+    "@babel/plugin-transform-classes-7.23.5" = {
       name = "_at_babel_slash_plugin-transform-classes";
       packageName = "@babel/plugin-transform-classes";
-      version = "7.23.3";
+      version = "7.23.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.3.tgz";
-        sha512 = "FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz";
+        sha512 = "jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==";
       };
     };
     "@babel/plugin-transform-computed-properties-7.23.3" = {
@@ -2461,13 +2434,13 @@ let
         sha512 = "26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==";
       };
     };
-    "@babel/plugin-transform-for-of-7.23.3" = {
+    "@babel/plugin-transform-for-of-7.23.6" = {
       name = "_at_babel_slash_plugin-transform-for-of";
       packageName = "@babel/plugin-transform-for-of";
-      version = "7.23.3";
+      version = "7.23.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz";
-        sha512 = "X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz";
+        sha512 = "aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==";
       };
     };
     "@babel/plugin-transform-function-name-7.23.3" = {
@@ -2713,13 +2686,13 @@ let
         sha512 = "QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==";
       };
     };
-    "@babel/plugin-transform-runtime-7.23.4" = {
+    "@babel/plugin-transform-runtime-7.23.7" = {
       name = "_at_babel_slash_plugin-transform-runtime";
       packageName = "@babel/plugin-transform-runtime";
-      version = "7.23.4";
+      version = "7.23.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.4.tgz";
-        sha512 = "ITwqpb6V4btwUG0YJR82o2QvmWrLgDnx/p2A3CTPYGaRgULkDiC0DRA2C4jlRB9uXGUEfaSS/IGHfVW+ohzYDw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.7.tgz";
+        sha512 = "fa0hnfmiXc9fq/weK34MUV0drz2pOL/vfKWvN7Qw127hiUPabFCUMgAbYWcchRzMJit4o5ARsK/s+5h0249pLw==";
       };
     };
     "@babel/plugin-transform-shorthand-properties-7.23.3" = {
@@ -2767,13 +2740,13 @@ let
         sha512 = "4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==";
       };
     };
-    "@babel/plugin-transform-typescript-7.23.4" = {
+    "@babel/plugin-transform-typescript-7.23.6" = {
       name = "_at_babel_slash_plugin-transform-typescript";
       packageName = "@babel/plugin-transform-typescript";
-      version = "7.23.4";
+      version = "7.23.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.4.tgz";
-        sha512 = "39hCCOl+YUAyMOu6B9SmUTiHUU0t/CxJNUmY3qRdJujbqi+lrQcL11ysYUsAvFWPBdhihrv1z0oRG84Yr3dODQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz";
+        sha512 = "6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==";
       };
     };
     "@babel/plugin-transform-unicode-escapes-7.23.3" = {
@@ -2821,13 +2794,13 @@ let
         sha512 = "X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g==";
       };
     };
-    "@babel/preset-env-7.23.3" = {
+    "@babel/preset-env-7.23.7" = {
       name = "_at_babel_slash_preset-env";
       packageName = "@babel/preset-env";
-      version = "7.23.3";
+      version = "7.23.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.3.tgz";
-        sha512 = "ovzGc2uuyNfNAs/jyjIGxS8arOHS5FENZaNn4rtE7UdKMMkqHCvboHfcuhWLZNX5cB44QfcGNWjaevxMzzMf+Q==";
+        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.7.tgz";
+        sha512 = "SY27X/GtTz/L4UryMNJ6p4fH4nsgWbz84y9FE0bQeWJP6O5BhgVCt53CotQKHCOeXJel8VyhlhujhlltKms/CA==";
       };
     };
     "@babel/preset-flow-7.23.3" = {
@@ -2857,13 +2830,13 @@ let
         sha512 = "17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==";
       };
     };
-    "@babel/register-7.22.15" = {
+    "@babel/register-7.23.7" = {
       name = "_at_babel_slash_register";
       packageName = "@babel/register";
-      version = "7.22.15";
+      version = "7.23.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/register/-/register-7.22.15.tgz";
-        sha512 = "V3Q3EqoQdn65RCgTLwauZaTfd1ShhwPmbBv+1dkZV/HpCGMKVyn6oFcRlI7RaKqiDQjX2Qd3AuoEguBgdjIKlg==";
+        url = "https://registry.npmjs.org/@babel/register/-/register-7.23.7.tgz";
+        sha512 = "EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==";
       };
     };
     "@babel/regjsgen-0.8.0" = {
@@ -2875,13 +2848,13 @@ let
         sha512 = "x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==";
       };
     };
-    "@babel/runtime-7.23.4" = {
+    "@babel/runtime-7.23.7" = {
       name = "_at_babel_slash_runtime";
       packageName = "@babel/runtime";
-      version = "7.23.4";
+      version = "7.23.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.4.tgz";
-        sha512 = "2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==";
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.7.tgz";
+        sha512 = "w06OXVOFso7LcbzMiDGt+3X7Rh7Ho8MmgPoWU3rarH+8upf+wSU/grlGbWzQyr3DkdN6ZeuMFjpdwW0Q+HxobA==";
       };
     };
     "@babel/runtime-7.9.0" = {
@@ -2911,13 +2884,13 @@ let
         sha512 = "azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==";
       };
     };
-    "@babel/traverse-7.23.4" = {
+    "@babel/traverse-7.23.7" = {
       name = "_at_babel_slash_traverse";
       packageName = "@babel/traverse";
-      version = "7.23.4";
+      version = "7.23.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.4.tgz";
-        sha512 = "IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==";
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz";
+        sha512 = "tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==";
       };
     };
     "@babel/types-7.17.0" = {
@@ -2938,13 +2911,13 @@ let
         sha512 = "YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==";
       };
     };
-    "@babel/types-7.23.4" = {
+    "@babel/types-7.23.6" = {
       name = "_at_babel_slash_types";
       packageName = "@babel/types";
-      version = "7.23.4";
+      version = "7.23.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/types/-/types-7.23.4.tgz";
-        sha512 = "7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==";
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz";
+        sha512 = "+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==";
       };
     };
     "@bconnorwhite/module-2.0.2" = {
@@ -2983,13 +2956,13 @@ let
         sha512 = "s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A==";
       };
     };
-    "@bugsnag/browser-7.21.0" = {
+    "@bugsnag/browser-7.22.3" = {
       name = "_at_bugsnag_slash_browser";
       packageName = "@bugsnag/browser";
-      version = "7.21.0";
+      version = "7.22.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@bugsnag/browser/-/browser-7.21.0.tgz";
-        sha512 = "mJ6r6SXpts+hdSnDNmTR35lZ+95BthqXpgBrDwquDCoY++zQ4OuzrkA/HZYD/rfpdSpgb7lO+AAlD7qrd9IylA==";
+        url = "https://registry.npmjs.org/@bugsnag/browser/-/browser-7.22.3.tgz";
+        sha512 = "TWQSdsCqzxEVmaKzbtmqoBLWF58yjXi/ScC+6L5VNgSj+62jkIQuw5Evjs+7kLQX8WCnaG6XLiDmUJmPx6ZUrA==";
       };
     };
     "@bugsnag/core-7.19.0" = {
@@ -3019,13 +2992,13 @@ let
         sha512 = "fFTR7cRBSlLtwa1wPTse92igZUEX2V95KyGGCXq2qb2F2w6hJ6oJDxA0BMPS8qqsciYXRjbfn8HX+TFgO1oErg==";
       };
     };
-    "@bugsnag/node-7.19.0" = {
+    "@bugsnag/node-7.22.3" = {
       name = "_at_bugsnag_slash_node";
       packageName = "@bugsnag/node";
-      version = "7.19.0";
+      version = "7.22.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@bugsnag/node/-/node-7.19.0.tgz";
-        sha512 = "c4snyxx5d/fsMogmgehFBGc//daH6+4XCplia4zrEQYltjaQ+l8ud0dPx623DgJl/2j1+2zlRc7y7IHSd7Gm5w==";
+        url = "https://registry.npmjs.org/@bugsnag/node/-/node-7.22.3.tgz";
+        sha512 = "vDXu0mrduonyCjUkTp+zKSh1WHAtA2VjB49xK5s1f/HnTASiJvzUOQBRXrkqaj37sndYHUSMxUCPvLawyc75nA==";
       };
     };
     "@bugsnag/safe-json-stringify-6.0.0" = {
@@ -3037,40 +3010,40 @@ let
         sha512 = "htzFO1Zc57S8kgdRK9mLcPVTW1BY2ijfH7Dk2CeZmspTWKdKqSo1iwmqrq2WtRjFlo8aRZYgLX0wFrDXF/9DLA==";
       };
     };
-    "@cdktf/cli-core-0.19.1" = {
+    "@cdktf/cli-core-0.19.2" = {
       name = "_at_cdktf_slash_cli-core";
       packageName = "@cdktf/cli-core";
-      version = "0.19.1";
+      version = "0.19.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/cli-core/-/cli-core-0.19.1.tgz";
-        sha512 = "wWSz1qLviUs5ErpNg1kxc3Qx5o96wofnGTL4HQn9+SAZj7ta3dwNEojp1uSs4WnpY1tDq6H7vyXKh+FA8prW7g==";
+        url = "https://registry.npmjs.org/@cdktf/cli-core/-/cli-core-0.19.2.tgz";
+        sha512 = "kjgEUhrHx3kUPfL7KsTo6GrurVUPT77FmOUf7wWXt7ajNE5zCPvx/HKGmQruzt0n6eLZp1aKT+r/D6YRfXcIGA==";
       };
     };
-    "@cdktf/commons-0.19.1" = {
+    "@cdktf/commons-0.19.2" = {
       name = "_at_cdktf_slash_commons";
       packageName = "@cdktf/commons";
-      version = "0.19.1";
+      version = "0.19.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/commons/-/commons-0.19.1.tgz";
-        sha512 = "9X0rL5iOt3Q+CdtKeQeff09kEmZETAVbmFIZTFgdipFFR1eMQ0rGiTNFBr8ro23ZrVUbd74g/oBpc4eGirQe4A==";
+        url = "https://registry.npmjs.org/@cdktf/commons/-/commons-0.19.2.tgz";
+        sha512 = "5rOeb0cSREHQa5XVsGFEV6Ce8Zwo2WxE8GIhmGd/JzeSAByhK8scHFlD3+eENl83W/8lwIkm/nSl9oDHEkENIg==";
       };
     };
-    "@cdktf/hcl2cdk-0.19.1" = {
+    "@cdktf/hcl2cdk-0.19.2" = {
       name = "_at_cdktf_slash_hcl2cdk";
       packageName = "@cdktf/hcl2cdk";
-      version = "0.19.1";
+      version = "0.19.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/hcl2cdk/-/hcl2cdk-0.19.1.tgz";
-        sha512 = "oFMUadPnDrOaMSTX1dQPuk/GFtSrk9/6B4G4CAYp9iXumqK204U0wEZYDFFEz5ieYhR86n/8YxA1GOOr0DmRZA==";
+        url = "https://registry.npmjs.org/@cdktf/hcl2cdk/-/hcl2cdk-0.19.2.tgz";
+        sha512 = "v0UNRvvzuCi3SnmSAgBFAnWavT0ybR1AzkK8ndgfbB5JLDoNm0iJV0MOTURZF+I0O3V9u4RZsw4DVNPdil2EEA==";
       };
     };
-    "@cdktf/hcl2json-0.19.1" = {
+    "@cdktf/hcl2json-0.19.2" = {
       name = "_at_cdktf_slash_hcl2json";
       packageName = "@cdktf/hcl2json";
-      version = "0.19.1";
+      version = "0.19.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/hcl2json/-/hcl2json-0.19.1.tgz";
-        sha512 = "yQ5fTOK9aLuh3WsYV+ykqv0b1X+5KjqAgxaAU+f9pXNq3ght1Z6o7+jrBsPHpylcj318Bhl0Hc/PX3U/z6M2kg==";
+        url = "https://registry.npmjs.org/@cdktf/hcl2json/-/hcl2json-0.19.2.tgz";
+        sha512 = "gFj36AshWSyPKq/eNjQtMnWj0QM0tPtMulFpQ0FrB+eWj0GvxgWg9d65gGCZ8Y/o33VV/2Kv5l8VlDEYDW2S7Q==";
       };
     };
     "@cdktf/node-pty-prebuilt-multiarch-0.10.1-pre.11" = {
@@ -3082,22 +3055,22 @@ let
         sha512 = "qvga/nzEtdCJMu/6jJfDqpzbRejvXtNhWFnbubfuYyN5nMNORNXX+POT4j+mQSDQar5bIQ1a812szw/zr47cfw==";
       };
     };
-    "@cdktf/provider-generator-0.19.1" = {
+    "@cdktf/provider-generator-0.19.2" = {
       name = "_at_cdktf_slash_provider-generator";
       packageName = "@cdktf/provider-generator";
-      version = "0.19.1";
+      version = "0.19.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/provider-generator/-/provider-generator-0.19.1.tgz";
-        sha512 = "Gg1DbDxhZ+CVT1uzDtvn3Q8C7MVVH1qBCAw33dLT22Faajut0ZO+/Bdai3/e81/jt4W50fN5b49MeTYG1hHRkw==";
+        url = "https://registry.npmjs.org/@cdktf/provider-generator/-/provider-generator-0.19.2.tgz";
+        sha512 = "e8fY/FtvlwMupp8zGGzAeAyW5yq4jhY+azL5kfXAXck2kO7hpimKflhycGGBm2aVTuOAmsmrumgEkCa6+7vmSg==";
       };
     };
-    "@cdktf/provider-schema-0.19.1" = {
+    "@cdktf/provider-schema-0.19.2" = {
       name = "_at_cdktf_slash_provider-schema";
       packageName = "@cdktf/provider-schema";
-      version = "0.19.1";
+      version = "0.19.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/provider-schema/-/provider-schema-0.19.1.tgz";
-        sha512 = "31vX00P/fw+kgTVZ0hxKIfd6rTRsj6jc1BJaOOQd5yRM3NzbZdypNVkWsEyIAWp6kmPAHzHujpv5/F7IEPZCRA==";
+        url = "https://registry.npmjs.org/@cdktf/provider-schema/-/provider-schema-0.19.2.tgz";
+        sha512 = "d6YghOMsDPqQS8DRS+h5BMwg6I0QVwNi8iE9bX+pGXHa/hYggXE97sAMUGFcW3za+gSCOImHYvvKDVc3u3KsOA==";
       };
     };
     "@chemzqm/msgpack-lite-0.1.29" = {
@@ -3118,51 +3091,6 @@ let
         sha512 = "m7lZj00lP1fNMzXITOV1uNdsYXjsmMbFB7Sl8OXfhRWYDQuBr6EPNzIzAonzIcmvTA2JNs8WMq0ZU76XXzpP6w==";
       };
     };
-    "@chevrotain/cst-dts-gen-11.0.3" = {
-      name = "_at_chevrotain_slash_cst-dts-gen";
-      packageName = "@chevrotain/cst-dts-gen";
-      version = "11.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz";
-        sha512 = "BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==";
-      };
-    };
-    "@chevrotain/gast-11.0.3" = {
-      name = "_at_chevrotain_slash_gast";
-      packageName = "@chevrotain/gast";
-      version = "11.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz";
-        sha512 = "+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==";
-      };
-    };
-    "@chevrotain/regexp-to-ast-11.0.3" = {
-      name = "_at_chevrotain_slash_regexp-to-ast";
-      packageName = "@chevrotain/regexp-to-ast";
-      version = "11.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.0.3.tgz";
-        sha512 = "1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==";
-      };
-    };
-    "@chevrotain/types-11.0.3" = {
-      name = "_at_chevrotain_slash_types";
-      packageName = "@chevrotain/types";
-      version = "11.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz";
-        sha512 = "gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==";
-      };
-    };
-    "@chevrotain/utils-11.0.3" = {
-      name = "_at_chevrotain_slash_utils";
-      packageName = "@chevrotain/utils";
-      version = "11.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz";
-        sha512 = "YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==";
-      };
-    };
     "@cloudflare/kv-asset-handler-0.2.0" = {
       name = "_at_cloudflare_slash_kv-asset-handler";
       packageName = "@cloudflare/kv-asset-handler";
@@ -3190,139 +3118,139 @@ let
         sha512 = "Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==";
       };
     };
-    "@commitlint/config-validator-18.4.3" = {
+    "@commitlint/config-validator-18.4.4" = {
       name = "_at_commitlint_slash_config-validator";
       packageName = "@commitlint/config-validator";
-      version = "18.4.3";
+      version = "18.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-18.4.3.tgz";
-        sha512 = "FPZZmTJBARPCyef9ohRC9EANiQEKSWIdatx5OlgeHKu878dWwpyeFauVkhzuBRJFcCA4Uvz/FDtlDKs008IHcA==";
+        url = "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-18.4.4.tgz";
+        sha512 = "/QI8KIg/h7O0Eus36fPcEcO3QPBcdXuGfZeCF5m15k0EB2bcU8s6pHNTNEa6xz9PrAefHCL+yzRJj7w20T6Mow==";
       };
     };
-    "@commitlint/ensure-18.4.3" = {
+    "@commitlint/ensure-18.4.4" = {
       name = "_at_commitlint_slash_ensure";
       packageName = "@commitlint/ensure";
-      version = "18.4.3";
+      version = "18.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/ensure/-/ensure-18.4.3.tgz";
-        sha512 = "MI4fwD9TWDVn4plF5+7JUyLLbkOdzIRBmVeNlk4dcGlkrVA+/l5GLcpN66q9LkFsFv6G2X31y89ApA3hqnqIFg==";
+        url = "https://registry.npmjs.org/@commitlint/ensure/-/ensure-18.4.4.tgz";
+        sha512 = "KjD19p6julB5WrQL+Cd8p+AePwpl1XzGAjB0jnuFMKWtji9L7ucCZUKDstGjlkBZGGzH/nvdB8K+bh5K27EVUg==";
       };
     };
-    "@commitlint/execute-rule-18.4.3" = {
+    "@commitlint/execute-rule-18.4.4" = {
       name = "_at_commitlint_slash_execute-rule";
       packageName = "@commitlint/execute-rule";
-      version = "18.4.3";
+      version = "18.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-18.4.3.tgz";
-        sha512 = "t7FM4c+BdX9WWZCPrrbV5+0SWLgT3kCq7e7/GhHCreYifg3V8qyvO127HF796vyFql75n4TFF+5v1asOOWkV1Q==";
+        url = "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-18.4.4.tgz";
+        sha512 = "a37Nd3bDQydtg9PCLLWM9ZC+GO7X5i4zJvrggJv5jBhaHsXeQ9ZWdO6ODYR+f0LxBXXNYK3geYXJrCWUCP8JEg==";
       };
     };
-    "@commitlint/format-18.4.3" = {
+    "@commitlint/format-18.4.4" = {
       name = "_at_commitlint_slash_format";
       packageName = "@commitlint/format";
-      version = "18.4.3";
+      version = "18.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/format/-/format-18.4.3.tgz";
-        sha512 = "8b+ItXYHxAhRAXFfYki5PpbuMMOmXYuzLxib65z2XTqki59YDQJGpJ/wB1kEE5MQDgSTQWtKUrA8n9zS/1uIDQ==";
+        url = "https://registry.npmjs.org/@commitlint/format/-/format-18.4.4.tgz";
+        sha512 = "2v3V5hVlv0R3pe7p66IX5F7cjeVvGM5JqITRIbBCFvGHPJ/CG74rjTkAu0RBEiIhlk3eOaLjVGq3d5falPkLBA==";
       };
     };
-    "@commitlint/is-ignored-18.4.3" = {
+    "@commitlint/is-ignored-18.4.4" = {
       name = "_at_commitlint_slash_is-ignored";
       packageName = "@commitlint/is-ignored";
-      version = "18.4.3";
+      version = "18.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-18.4.3.tgz";
-        sha512 = "ZseOY9UfuAI32h9w342Km4AIaTieeFskm2ZKdrG7r31+c6zGBzuny9KQhwI9puc0J3GkUquEgKJblCl7pMnjwg==";
+        url = "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-18.4.4.tgz";
+        sha512 = "rXWes9owKBTjfTr6Od7YlflRg4N+ngkOH+dUZhk0qL/XQb26mHz0EgVgdixMVBac1OsohRwJaLmVHX+5F6vfmg==";
       };
     };
-    "@commitlint/lint-18.4.3" = {
+    "@commitlint/lint-18.4.4" = {
       name = "_at_commitlint_slash_lint";
       packageName = "@commitlint/lint";
-      version = "18.4.3";
+      version = "18.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/lint/-/lint-18.4.3.tgz";
-        sha512 = "18u3MRgEXNbnYkMOWoncvq6QB8/90m9TbERKgdPqVvS+zQ/MsuRhdvHYCIXGXZxUb0YI4DV2PC4bPneBV/fYuA==";
+        url = "https://registry.npmjs.org/@commitlint/lint/-/lint-18.4.4.tgz";
+        sha512 = "SoyQstVxMY5Z4GnFRtRzy+NWYb+yVseXgir+7BxnpB59oH05C9XztRrhDw6OnkNeXhjINTpi1HLnuY7So+CaAQ==";
       };
     };
-    "@commitlint/load-18.4.3" = {
+    "@commitlint/load-18.4.4" = {
       name = "_at_commitlint_slash_load";
       packageName = "@commitlint/load";
-      version = "18.4.3";
+      version = "18.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/load/-/load-18.4.3.tgz";
-        sha512 = "v6j2WhvRQJrcJaj5D+EyES2WKTxPpxENmNpNG3Ww8MZGik3jWRXtph0QTzia5ZJyPh2ib5aC/6BIDymkUUM58Q==";
+        url = "https://registry.npmjs.org/@commitlint/load/-/load-18.4.4.tgz";
+        sha512 = "RaDIa9qwOw2xRJ3Jr2DBXd14rmnHJIX2XdZF4kmoF1rgsg/+7cvrExLSUNAkQUNimyjCn1b/bKX2Omm+GdY0XQ==";
       };
     };
-    "@commitlint/message-18.4.3" = {
+    "@commitlint/message-18.4.4" = {
       name = "_at_commitlint_slash_message";
       packageName = "@commitlint/message";
-      version = "18.4.3";
+      version = "18.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/message/-/message-18.4.3.tgz";
-        sha512 = "ddJ7AztWUIoEMAXoewx45lKEYEOeOlBVWjk8hDMUGpprkuvWULpaXczqdjwVtjrKT3JhhN+gMs8pm5G3vB2how==";
+        url = "https://registry.npmjs.org/@commitlint/message/-/message-18.4.4.tgz";
+        sha512 = "lHF95mMDYgAI1LBXveJUyg4eLaMXyOqJccCK3v55ZOEUsMPrDi8upqDjd/NmzWmESYihaOMBTAnxm+6oD1WoDQ==";
       };
     };
-    "@commitlint/parse-18.4.3" = {
+    "@commitlint/parse-18.4.4" = {
       name = "_at_commitlint_slash_parse";
       packageName = "@commitlint/parse";
-      version = "18.4.3";
+      version = "18.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/parse/-/parse-18.4.3.tgz";
-        sha512 = "eoH7CXM9L+/Me96KVcfJ27EIIbA5P9sqw3DqjJhRYuhaULIsPHFs5S5GBDCqT0vKZQDx0DgxhMpW6AQbnKrFtA==";
+        url = "https://registry.npmjs.org/@commitlint/parse/-/parse-18.4.4.tgz";
+        sha512 = "99G7dyn/OoyNWXJni0Ki0K3aJd01pEb/Im/Id6y4X7PN+kGOahjz2z/cXYYHn7xDdooqFVdiVrVLeChfgpWZ2g==";
       };
     };
-    "@commitlint/read-18.4.3" = {
+    "@commitlint/read-18.4.4" = {
       name = "_at_commitlint_slash_read";
       packageName = "@commitlint/read";
-      version = "18.4.3";
+      version = "18.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/read/-/read-18.4.3.tgz";
-        sha512 = "H4HGxaYA6OBCimZAtghL+B+SWu8ep4X7BwgmedmqWZRHxRLcX2q0bWBtUm5FsMbluxbOfrJwOs/Z0ah4roP/GQ==";
+        url = "https://registry.npmjs.org/@commitlint/read/-/read-18.4.4.tgz";
+        sha512 = "r58JbWky4gAFPea/CZmvlqP9Ehbs+8gSEUqhIJOojKzTc3xlxFnZUDVPcEnnaqzQEEoV6C69VW7xuzdcBlu/FQ==";
       };
     };
-    "@commitlint/resolve-extends-18.4.3" = {
+    "@commitlint/resolve-extends-18.4.4" = {
       name = "_at_commitlint_slash_resolve-extends";
       packageName = "@commitlint/resolve-extends";
-      version = "18.4.3";
+      version = "18.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-18.4.3.tgz";
-        sha512 = "30sk04LZWf8+SDgJrbJCjM90gTg2LxsD9cykCFeFu+JFHvBFq5ugzp2eO/DJGylAdVaqxej3c7eTSE64hR/lnw==";
+        url = "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-18.4.4.tgz";
+        sha512 = "RRpIHSbRnFvmGifVk21Gqazf1QF/yeP+Kkg/e3PlkegcOKd/FGOXp/Kx9cvSO2K7ucSn4GD/oBvgasFoy+NCAw==";
       };
     };
-    "@commitlint/rules-18.4.3" = {
+    "@commitlint/rules-18.4.4" = {
       name = "_at_commitlint_slash_rules";
       packageName = "@commitlint/rules";
-      version = "18.4.3";
+      version = "18.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/rules/-/rules-18.4.3.tgz";
-        sha512 = "8KIeukDf45BiY+Lul1T0imSNXF0sMrlLG6JpLLKolkmYVQ6PxxoNOriwyZ3UTFFpaVbPy0rcITaV7U9JCAfDTA==";
+        url = "https://registry.npmjs.org/@commitlint/rules/-/rules-18.4.4.tgz";
+        sha512 = "6Uzlsnl/GljEI+80NWjf4ThOfR8NIsbm18IfXYuCEchlwMHSxiuYG4rHSK5DNmG/+MIo8eR5VdQ0gQyt7kWzAA==";
       };
     };
-    "@commitlint/to-lines-18.4.3" = {
+    "@commitlint/to-lines-18.4.4" = {
       name = "_at_commitlint_slash_to-lines";
       packageName = "@commitlint/to-lines";
-      version = "18.4.3";
+      version = "18.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-18.4.3.tgz";
-        sha512 = "fy1TAleik4Zfru1RJ8ZU6cOSvgSVhUellxd3WZV1D5RwHZETt1sZdcA4mQN2y3VcIZsUNKkW0Mq8CM9/L9harQ==";
+        url = "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-18.4.4.tgz";
+        sha512 = "mwe2Roa59NCz/krniAdCygFabg7+fQCkIhXqBHw00XQ8Y7lw4poZLLxeGI3p3bLpcEOXdqIDrEGLwHmG5lBdwQ==";
       };
     };
-    "@commitlint/top-level-18.4.3" = {
+    "@commitlint/top-level-18.4.4" = {
       name = "_at_commitlint_slash_top-level";
       packageName = "@commitlint/top-level";
-      version = "18.4.3";
+      version = "18.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/top-level/-/top-level-18.4.3.tgz";
-        sha512 = "E6fJPBLPFL5R8+XUNSYkj4HekIOuGMyJo3mIx2PkYc3clel+pcWQ7TConqXxNWW4x1ugigiIY2RGot55qUq1hw==";
+        url = "https://registry.npmjs.org/@commitlint/top-level/-/top-level-18.4.4.tgz";
+        sha512 = "PBwW1drgeavl9CadB7IPRUk6rkUP/O8jEkxjlC+ofuh3pw0bzJdAT+Kw7M1Yc9KtTb9xTaqUB8uvRtaybHa/tQ==";
       };
     };
-    "@commitlint/types-18.4.3" = {
+    "@commitlint/types-18.4.4" = {
       name = "_at_commitlint_slash_types";
       packageName = "@commitlint/types";
-      version = "18.4.3";
+      version = "18.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/types/-/types-18.4.3.tgz";
-        sha512 = "cvzx+vtY/I2hVBZHCLrpoh+sA0hfuzHwDc+BAFPimYLjJkpHnghQM+z8W/KyLGkygJh3BtI3xXXq+dKjnSWEmA==";
+        url = "https://registry.npmjs.org/@commitlint/types/-/types-18.4.4.tgz";
+        sha512 = "/FykLtodD8gKs3+VNkAUwofu4LBHankclj+I8fB2jTRvG6PV7k/OUt4P+VbM7ip853qS4F0g7Z6hLNa6JeMcAQ==";
       };
     };
     "@cronvel/get-pixels-3.4.1" = {
@@ -3334,58 +3262,58 @@ let
         sha512 = "gB5C5nDIacLUdsMuW8YsM9SzK3vaFANe4J11CVXpovpy7bZUGrcJKmc6m/0gWG789pKr6XSZY2aEetjFvSRw5g==";
       };
     };
-    "@cspell/cspell-bundled-dicts-8.0.0" = {
+    "@cspell/cspell-bundled-dicts-8.3.2" = {
       name = "_at_cspell_slash_cspell-bundled-dicts";
       packageName = "@cspell/cspell-bundled-dicts";
-      version = "8.0.0";
+      version = "8.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-8.0.0.tgz";
-        sha512 = "Phbb1ij1TQQuqxuuvxf5P6fvV9U+EVoATNLmDqFHvRZfUyuhgbJuCMzIPeBx4GfTTDWlPs51FYRvZ/Q8xBHsyA==";
+        url = "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-8.3.2.tgz";
+        sha512 = "3ubOgz1/MDixJbq//0rQ2omB3cSdhVJDviERZeiREGz4HOq84aaK1Fqbw5SjNZHvhpoq+AYXm6kJbIAH8YhKgg==";
       };
     };
-    "@cspell/cspell-json-reporter-8.0.0" = {
+    "@cspell/cspell-json-reporter-8.3.2" = {
       name = "_at_cspell_slash_cspell-json-reporter";
       packageName = "@cspell/cspell-json-reporter";
-      version = "8.0.0";
+      version = "8.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-8.0.0.tgz";
-        sha512 = "1ltK5N4xMGWjDSIkU+GJd3rXV8buXgO/lAgnpM1RhKWqAmG+u0k6pnhk2vIo/4qZQpgfK0l3J3h/Ky2FcE95vA==";
+        url = "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-8.3.2.tgz";
+        sha512 = "gHSz4jXMJPcxx+lOGfXhHuoyenAWQ8PVA/atHFrWYKo1LzKTbpkEkrsDnlX8QNJubc3EMH63Uy+lOIaFDVyHiQ==";
       };
     };
-    "@cspell/cspell-pipe-8.0.0" = {
+    "@cspell/cspell-pipe-8.3.2" = {
       name = "_at_cspell_slash_cspell-pipe";
       packageName = "@cspell/cspell-pipe";
-      version = "8.0.0";
+      version = "8.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-8.0.0.tgz";
-        sha512 = "1MH+9q3AmbzwK1BYhSGla8e4MAAYzzPApGvv8eyv0rWDmgmDTkGqJPTTvYj1wFvll5ximQ5OolpPQGv3JoWvtQ==";
+        url = "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-8.3.2.tgz";
+        sha512 = "GZmDwvQGOjQi3IjD4k9xXeVTDANczksOsgVKb3v2QZk9mR4Qj8c6Uarjd4AgSiIhu/wBliJfzr5rWFJu4X2VfQ==";
       };
     };
-    "@cspell/cspell-resolver-8.0.0" = {
+    "@cspell/cspell-resolver-8.3.2" = {
       name = "_at_cspell_slash_cspell-resolver";
       packageName = "@cspell/cspell-resolver";
-      version = "8.0.0";
+      version = "8.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-8.0.0.tgz";
-        sha512 = "gtALHFLT2vSZ7BZlIg26AY3W9gkiqxPGE75iypWz06JHJs05ngnAR+h6VOu0+rmgx98hNfzPPEh4g+Tjm8Ma0A==";
+        url = "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-8.3.2.tgz";
+        sha512 = "w2Tmb95bzdEz9L4W5qvsP5raZbyEzKL7N2ksU/+yh8NEJcTuExmAl/nMnb3aIk7m2b+kPHnMOcJuwfUMLmyv4A==";
       };
     };
-    "@cspell/cspell-service-bus-8.0.0" = {
+    "@cspell/cspell-service-bus-8.3.2" = {
       name = "_at_cspell_slash_cspell-service-bus";
       packageName = "@cspell/cspell-service-bus";
-      version = "8.0.0";
+      version = "8.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-8.0.0.tgz";
-        sha512 = "1EYhIHoZnhxpfEp6Bno6yVWYBuYfaQrwIfeDMntnezUcSmi7RyroQEcp5U7sLv69vhRD2c81o7r8iUaAbPSmIg==";
+        url = "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-8.3.2.tgz";
+        sha512 = "skTHNyVi74//W/O+f4IauDhm6twA9S2whkylonsIzPxEl4Pn3y2ZEMXNki/MWUwZfDIzKKSxlcREH61g7zCvhg==";
       };
     };
-    "@cspell/cspell-types-8.0.0" = {
+    "@cspell/cspell-types-8.3.2" = {
       name = "_at_cspell_slash_cspell-types";
       packageName = "@cspell/cspell-types";
-      version = "8.0.0";
+      version = "8.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-8.0.0.tgz";
-        sha512 = "dPdxQI8dLJoJEjylaPYfCJNnm2XNMYPuowHE2FMcsnFR9hEchQAhnKVc/aD63IUYnUtUrPxPlUJdoAoj569e+g==";
+        url = "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-8.3.2.tgz";
+        sha512 = "qS/gWd9ItOrN6ZX5pwC9lJjnBoyiAyhxYq0GUXuV892LQvwrBmECGk6KhsA1lPW7JJS7o57YTAS1jmXnmXMEpg==";
       };
     };
     "@cspell/dict-ada-4.0.2" = {
@@ -3406,13 +3334,13 @@ let
         sha512 = "K21CfB4ZpKYwwDQiPfic2zJA/uxkbsd4IQGejEvDAhE3z8wBs6g6BwwqdVO767M9NgZqc021yAVpr79N5pWe3w==";
       };
     };
-    "@cspell/dict-aws-4.0.0" = {
+    "@cspell/dict-aws-4.0.1" = {
       name = "_at_cspell_slash_dict-aws";
       packageName = "@cspell/dict-aws";
-      version = "4.0.0";
+      version = "4.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-aws/-/dict-aws-4.0.0.tgz";
-        sha512 = "1YkCMWuna/EGIDN/zKkW+j98/55mxigftrSFgsehXhPld+ZMJM5J9UuBA88YfL7+/ETvBdd7mwW6IwWsC+/ltQ==";
+        url = "https://registry.npmjs.org/@cspell/dict-aws/-/dict-aws-4.0.1.tgz";
+        sha512 = "NXO+kTPQGqaaJKa4kO92NAXoqS+i99dQzf3/L1BxxWVSBS3/k1f3uhmqIh7Crb/n22W793lOm0D9x952BFga3Q==";
       };
     };
     "@cspell/dict-bash-1.0.18" = {
@@ -3424,13 +3352,13 @@ let
         sha512 = "kJIqQ+FD2TCSgaaP5XLEDgy222+pVWTc+VhveNO++gnTWU3BCVjkD5LjfW7g/CmGONnz+nwXDueWspProaSdJw==";
       };
     };
-    "@cspell/dict-bash-4.1.2" = {
+    "@cspell/dict-bash-4.1.3" = {
       name = "_at_cspell_slash_dict-bash";
       packageName = "@cspell/dict-bash";
-      version = "4.1.2";
+      version = "4.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-bash/-/dict-bash-4.1.2.tgz";
-        sha512 = "AEBWjbaMaJEyAjOHW0F15P2izBjli2cNerG3NjuVH7xX/HUUeNoTj8FF1nwpMufKwGQCvuyO2hCmkVxhJ0y55Q==";
+        url = "https://registry.npmjs.org/@cspell/dict-bash/-/dict-bash-4.1.3.tgz";
+        sha512 = "tOdI3QVJDbQSwPjUkOiQFhYcu2eedmX/PtEpVWg0aFps/r6AyjUQINtTgpqMYnYuq8O1QUIQqnpx21aovcgZCw==";
       };
     };
     "@cspell/dict-companies-1.0.40" = {
@@ -3442,13 +3370,13 @@ let
         sha512 = "Aw07qiTroqSST2P5joSrC4uOA05zTXzI2wMb+me3q4Davv1D9sCkzXY0TGoC2vzhNv5ooemRi9KATGaBSdU1sw==";
       };
     };
-    "@cspell/dict-companies-3.0.28" = {
+    "@cspell/dict-companies-3.0.29" = {
       name = "_at_cspell_slash_dict-companies";
       packageName = "@cspell/dict-companies";
-      version = "3.0.28";
+      version = "3.0.29";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.0.28.tgz";
-        sha512 = "UinHkMYB/1pUkLKm1PGIm9PBFYxeAa6YvbB1Rq/RAAlrs0WDwiDBr3BAYdxydukG1IqqwT5z9WtU+8D/yV/5lw==";
+        url = "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.0.29.tgz";
+        sha512 = "F/8XnkqjU7jmSDAcD3LSSX+WxCVUWPssqlO4lzGMIK3MNIUt+d48eSIt3pFAIB/Z9y0ojoLHUtWX9HJ1ZtGrXQ==";
       };
     };
     "@cspell/dict-cpp-1.1.40" = {
@@ -3460,13 +3388,13 @@ let
         sha512 = "sscfB3woNDNj60/yGXAdwNtIRWZ89y35xnIaJVDMk5TPMMpaDvuk0a34iOPIq0g4V+Y8e3RyAg71SH6ADwSjGw==";
       };
     };
-    "@cspell/dict-cpp-5.0.9" = {
+    "@cspell/dict-cpp-5.1.1" = {
       name = "_at_cspell_slash_dict-cpp";
       packageName = "@cspell/dict-cpp";
-      version = "5.0.9";
+      version = "5.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-5.0.9.tgz";
-        sha512 = "ql9WPNp8c+fhdpVpjpZEUWmxBHJXs9CJuiVVfW/iwv5AX7VuMHyEwid+9/6nA8qnCxkUQ5pW83Ums1lLjn8ScA==";
+        url = "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-5.1.1.tgz";
+        sha512 = "Qy9fNsR/5RcQ6G85gDKFjvzh0AdgAilLQeSXPtqY21Fx1kCjUqdVVJYMmHUREgcxH6ptAxtn5knTWU4PIhQtOw==";
       };
     };
     "@cspell/dict-cryptocurrencies-1.0.10" = {
@@ -3478,13 +3406,13 @@ let
         sha512 = "47ABvDJOkaST/rXipNMfNvneHUzASvmL6K/CbOFpYKfsd0x23Jc9k1yaOC7JAm82XSC/8a7+3Yu+Fk2jVJNnsA==";
       };
     };
-    "@cspell/dict-cryptocurrencies-4.0.0" = {
+    "@cspell/dict-cryptocurrencies-5.0.0" = {
       name = "_at_cspell_slash_dict-cryptocurrencies";
       packageName = "@cspell/dict-cryptocurrencies";
-      version = "4.0.0";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-cryptocurrencies/-/dict-cryptocurrencies-4.0.0.tgz";
-        sha512 = "EiZp91ATyRxTmauIQfOX9adLYCunKjHEh092rrM7o2eMXP9n7zpXAL9BK7LviL+LbB8VDOm21q+s83cKrrRrsg==";
+        url = "https://registry.npmjs.org/@cspell/dict-cryptocurrencies/-/dict-cryptocurrencies-5.0.0.tgz";
+        sha512 = "Z4ARIw5+bvmShL+4ZrhDzGhnc9znaAGHOEMaB/GURdS/jdoreEDY34wdN0NtdLHDO5KO7GduZnZyqGdRoiSmYA==";
       };
     };
     "@cspell/dict-csharp-1.0.11" = {
@@ -3604,13 +3532,13 @@ let
         sha512 = "g+uKLWvOp9IEZvrIvBPTr/oaO6619uH/wyqypqvwpmnmpjcfi8+/hqZH8YNKt15oviK8k4CkINIqNhyndG9d9Q==";
       };
     };
-    "@cspell/dict-en-common-misspellings-1.0.2" = {
+    "@cspell/dict-en-common-misspellings-2.0.0" = {
       name = "_at_cspell_slash_dict-en-common-misspellings";
       packageName = "@cspell/dict-en-common-misspellings";
-      version = "1.0.2";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-1.0.2.tgz";
-        sha512 = "jg7ZQZpZH7+aAxNBlcAG4tGhYF6Ksy+QS5Df73Oo+XyckBjC9QS+PrRwLTeYoFIgXy5j3ICParK5r3MSSoL4gw==";
+        url = "https://registry.npmjs.org/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-2.0.0.tgz";
+        sha512 = "NOg8dlv37/YqLkCfBs5OXeJm/Wcfb/CzeOmOZJ2ZXRuxwsNuolb4TREUce0yAXRqMhawahY5TSDRJJBgKjBOdw==";
       };
     };
     "@cspell/dict-en-gb-1.1.33" = {
@@ -3631,13 +3559,13 @@ let
         sha512 = "UPwR4rfiJCxnS+Py+EK9E4AUj3aPZE4p/yBRSHN+5aBQConlI0lLDtMceH5wlupA/sQTU1ERZGPJA9L96jVSyQ==";
       };
     };
-    "@cspell/dict-en_us-4.3.11" = {
+    "@cspell/dict-en_us-4.3.13" = {
       name = "_at_cspell_slash_dict-en_us";
       packageName = "@cspell/dict-en_us";
-      version = "4.3.11";
+      version = "4.3.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.3.11.tgz";
-        sha512 = "GhdavZFlS2YbUNcRtPbgJ9j6aUyq116LmDQ2/Q5SpQxJ5/6vVs8Yj5WxV1JD+Zh/Zim1NJDcneTOuLsUGi+Czw==";
+        url = "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.3.13.tgz";
+        sha512 = "T6lHiGCjloGNE0d8CogF+efJZPCAP8zdzn+KnlI0Bmjaz5nvG2LTX7CXl1zkOl1nYYev0FuIk9WJ9YPVRjcFbQ==";
       };
     };
     "@cspell/dict-filetypes-1.1.8" = {
@@ -3712,13 +3640,13 @@ let
         sha512 = "hbDduNXlk4AOY0wFxcDMWBPpm34rpqJBeqaySeoUH70eKxpxm+dvjpoRLJgyu0TmymEICCQSl6lAHTHSDiWKZg==";
       };
     };
-    "@cspell/dict-git-2.0.0" = {
+    "@cspell/dict-git-3.0.0" = {
       name = "_at_cspell_slash_dict-git";
       packageName = "@cspell/dict-git";
-      version = "2.0.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-git/-/dict-git-2.0.0.tgz";
-        sha512 = "n1AxyX5Kgxij/sZFkxFJlzn3K9y/sCcgVPg/vz4WNJ4K9YeTsUmyGLA2OQI7d10GJeiuAo2AP1iZf2A8j9aj2w==";
+        url = "https://registry.npmjs.org/@cspell/dict-git/-/dict-git-3.0.0.tgz";
+        sha512 = "simGS/lIiXbEaqJu9E2VPoYW1OTC2xrwPPXNXFMa2uo/50av56qOuaxDrZ5eH1LidFXwoc8HROCHYeKoNrDLSw==";
       };
     };
     "@cspell/dict-golang-1.1.24" = {
@@ -3730,13 +3658,13 @@ let
         sha512 = "qq3Cjnx2U1jpeWAGJL1GL0ylEhUMqyaR36Xij6Y6Aq4bViCRp+HRRqk0x5/IHHbOrti45h3yy7ii1itRFo+Xkg==";
       };
     };
-    "@cspell/dict-golang-6.0.4" = {
+    "@cspell/dict-golang-6.0.5" = {
       name = "_at_cspell_slash_dict-golang";
       packageName = "@cspell/dict-golang";
-      version = "6.0.4";
+      version = "6.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-golang/-/dict-golang-6.0.4.tgz";
-        sha512 = "jOfewPEyN6U9Q80okE3b1PTYBfqZgHh7w4o271GSuAX+VKJ1lUDhdR4bPKRxSDdO5jHArw2u5C8nH2CWGuygbQ==";
+        url = "https://registry.npmjs.org/@cspell/dict-golang/-/dict-golang-6.0.5.tgz";
+        sha512 = "w4mEqGz4/wV+BBljLxduFNkMrd3rstBNDXmoX5kD4UTzIb4Sy0QybWCtg2iVT+R0KWiRRA56QKOvBsgXiddksA==";
       };
     };
     "@cspell/dict-haskell-1.0.13" = {
@@ -3865,13 +3793,13 @@ let
         sha512 = "YiHDt8kmHJ8nSBy0tHzaxiuitYp+oJ66ffCYuFWTNB3//Y0SI4OGHU3omLsQVeXIfCeVrO4DrVvRDoCls9B5zQ==";
       };
     };
-    "@cspell/dict-lua-4.0.2" = {
+    "@cspell/dict-lua-4.0.3" = {
       name = "_at_cspell_slash_dict-lua";
       packageName = "@cspell/dict-lua";
-      version = "4.0.2";
+      version = "4.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-lua/-/dict-lua-4.0.2.tgz";
-        sha512 = "eeC20Q+UnHcTVBK6pgwhSjGIVugO2XqU7hv4ZfXp2F9DxGx1RME0+1sKX4qAGhdFGwOBsEzb2fwUsAEP6Mibpg==";
+        url = "https://registry.npmjs.org/@cspell/dict-lua/-/dict-lua-4.0.3.tgz";
+        sha512 = "lDHKjsrrbqPaea13+G9s0rtXjMO06gPXPYRjRYawbNmo4E/e3XFfVzeci3OQDQNDmf2cPOwt9Ef5lu2lDmwfJg==";
       };
     };
     "@cspell/dict-makefile-1.0.0" = {
@@ -3910,13 +3838,13 @@ let
         sha512 = "RwkuZGcYBxL3Yux3cSG/IOWGlQ1e9HLCpHeyMtTVGYKAIkFAVUnGrz20l16/Q7zUG7IEktBz5O42kAozrEnqMQ==";
       };
     };
-    "@cspell/dict-npm-5.0.13" = {
+    "@cspell/dict-npm-5.0.14" = {
       name = "_at_cspell_slash_dict-npm";
       packageName = "@cspell/dict-npm";
-      version = "5.0.13";
+      version = "5.0.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.0.13.tgz";
-        sha512 = "uPb3DlQA/FvlmzT5RjZoy7fy91mxMRZW1B+K3atVM5A/cmP1QlDaSW/iCtde5kHET1MOV7uxz+vy0Yha2OI5pQ==";
+        url = "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.0.14.tgz";
+        sha512 = "k0kC7/W2qG5YII+SW6s+JtvKrkZg651vizi5dv/5G2HmJaeLNgDqBVeeDk/uV+ntBorM66XG4BPMjSxoaIlC5w==";
       };
     };
     "@cspell/dict-php-1.0.25" = {
@@ -3928,13 +3856,13 @@ let
         sha512 = "RoBIP5MRdByyPaXcznZMfOY1JdCMYPPLua5E9gkq0TJO7bX5mC9hyAKfYBSWVQunZydd82HZixjb5MPkDFU1uw==";
       };
     };
-    "@cspell/dict-php-4.0.4" = {
+    "@cspell/dict-php-4.0.5" = {
       name = "_at_cspell_slash_dict-php";
       packageName = "@cspell/dict-php";
-      version = "4.0.4";
+      version = "4.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-php/-/dict-php-4.0.4.tgz";
-        sha512 = "fRlLV730fJbulDsLIouZxXoxHt3KIH6hcLFwxaupHL+iTXDg0lo7neRpbqD5MScr/J3idEr7i9G8XWzIikKFug==";
+        url = "https://registry.npmjs.org/@cspell/dict-php/-/dict-php-4.0.5.tgz";
+        sha512 = "9r8ao7Z/mH9Z8pSB7yLtyvcCJWw+/MnQpj7xGVYzIV7V2ZWDRjXZAMgteHMJ37m8oYz64q5d4tiipD300QSetQ==";
       };
     };
     "@cspell/dict-powershell-1.0.19" = {
@@ -3946,13 +3874,13 @@ let
         sha512 = "zF/raM/lkhXeHf4I43OtK0gP9rBeEJFArscTVwLWOCIvNk21MJcNoTYoaGw+c056+Q+hJL0psGLO7QN+mxYH1A==";
       };
     };
-    "@cspell/dict-powershell-5.0.2" = {
+    "@cspell/dict-powershell-5.0.3" = {
       name = "_at_cspell_slash_dict-powershell";
       packageName = "@cspell/dict-powershell";
-      version = "5.0.2";
+      version = "5.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-powershell/-/dict-powershell-5.0.2.tgz";
-        sha512 = "IHfWLme3FXE7vnOmMncSBxOsMTdNWd1Vcyhag03WS8oANSgX8IZ+4lMI00mF0ptlgchf16/OU8WsV4pZfikEFw==";
+        url = "https://registry.npmjs.org/@cspell/dict-powershell/-/dict-powershell-5.0.3.tgz";
+        sha512 = "lEdzrcyau6mgzu1ie98GjOEegwVHvoaWtzQnm1ie4DyZgMr+N6D0Iyj1lzvtmt0snvsDFa5F2bsYzf3IMKcpcA==";
       };
     };
     "@cspell/dict-public-licenses-2.0.5" = {
@@ -3973,13 +3901,13 @@ let
         sha512 = "KuyOQaby9NID/pn7EkXilpUxjVIvvyLzhr7BPsDS6FcvUE8Yhss6bJowEDHSv6pa+W2387phoqbDf2rTicquAA==";
       };
     };
-    "@cspell/dict-python-4.1.10" = {
+    "@cspell/dict-python-4.1.11" = {
       name = "_at_cspell_slash_dict-python";
       packageName = "@cspell/dict-python";
-      version = "4.1.10";
+      version = "4.1.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-4.1.10.tgz";
-        sha512 = "ErF/Ohcu6Xk4QVNzFgo8p7CxkxvAKAmFszvso41qOOhu8CVpB35ikBRpGVDw9gsCUtZzi15Yl0izi4do6WcLkA==";
+        url = "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-4.1.11.tgz";
+        sha512 = "XG+v3PumfzUW38huSbfT15Vqt3ihNb462ulfXifpQllPok5OWynhszCLCRQjQReV+dgz784ST4ggRxW452/kVg==";
       };
     };
     "@cspell/dict-r-2.0.1" = {
@@ -4000,13 +3928,13 @@ let
         sha512 = "I76hJA///lc1pgmDTGUFHN/O8KLIZIU/8TgIYIGI6Ix/YzSEvWNdQYbANn6JbCynS0X+7IbZ2Ft+QqvmGtIWuA==";
       };
     };
-    "@cspell/dict-ruby-5.0.1" = {
+    "@cspell/dict-ruby-5.0.2" = {
       name = "_at_cspell_slash_dict-ruby";
       packageName = "@cspell/dict-ruby";
-      version = "5.0.1";
+      version = "5.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-ruby/-/dict-ruby-5.0.1.tgz";
-        sha512 = "rruTm7Emhty/BSYavSm8ZxRuVw0OBqzJkwIFXcV0cX7To8D1qbmS9HFHRuRg8IL11+/nJvtdDz+lMFBSmPUagQ==";
+        url = "https://registry.npmjs.org/@cspell/dict-ruby/-/dict-ruby-5.0.2.tgz";
+        sha512 = "cIh8KTjpldzFzKGgrqUX4bFyav5lC52hXDKo4LbRuMVncs3zg4hcSf4HtURY+f2AfEZzN6ZKzXafQpThq3dl2g==";
       };
     };
     "@cspell/dict-rust-1.0.23" = {
@@ -4054,22 +3982,22 @@ let
         sha512 = "pfF3Ys2gRffu5ElqkH7FQMDMi/iZMyOzpGMb3FSH0PJ2AnRQ5rRNWght1h2L36YxvXl0mWVaFrrfwiOyRIc8ZQ==";
       };
     };
-    "@cspell/dict-software-terms-3.3.10" = {
+    "@cspell/dict-software-terms-3.3.16" = {
       name = "_at_cspell_slash_dict-software-terms";
       packageName = "@cspell/dict-software-terms";
-      version = "3.3.10";
+      version = "3.3.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.3.10.tgz";
-        sha512 = "ifc9iLKXf8L6YCtUZMj2+59l+DONsjFd8SbjyceRxsGmhN/VID550qqI6xi4r4Fu+TIahKrRL0FRdN91ZX9fpQ==";
+        url = "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.3.16.tgz";
+        sha512 = "ixorEP80LGxAU+ODVSn/CYIDjV0XAlZ2VrBu7CT+PwUFJ7h8o3JX1ywKB4qnt0hHru3JjWFtBoBThmZdrXnREQ==";
       };
     };
-    "@cspell/dict-sql-2.1.2" = {
+    "@cspell/dict-sql-2.1.3" = {
       name = "_at_cspell_slash_dict-sql";
       packageName = "@cspell/dict-sql";
-      version = "2.1.2";
+      version = "2.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-sql/-/dict-sql-2.1.2.tgz";
-        sha512 = "Pi0hAcvsSGtZZeyyAN1VfGtQJbrXos5x2QjJU0niAQKhmITSOrXU/1II1Gogk+FYDjWyV9wP2De0U2f7EWs6oQ==";
+        url = "https://registry.npmjs.org/@cspell/dict-sql/-/dict-sql-2.1.3.tgz";
+        sha512 = "SEyTNKJrjqD6PAzZ9WpdSu6P7wgdNtGV2RV8Kpuw1x6bV+YsSptuClYG+JSdRExBTE6LwIe1bTklejUp3ZP8TQ==";
       };
     };
     "@cspell/dict-svelte-1.0.2" = {
@@ -4117,22 +4045,22 @@ let
         sha512 = "niiEMPWPV9IeRBRzZ0TBZmNnkK3olkOPYxC1Ny2AX4TGlYRajcW0WUtoSHmvvjZNfWLSg2L6ruiBeuPSbjnG6A==";
       };
     };
-    "@cspell/dynamic-import-8.0.0" = {
+    "@cspell/dynamic-import-8.3.2" = {
       name = "_at_cspell_slash_dynamic-import";
       packageName = "@cspell/dynamic-import";
-      version = "8.0.0";
+      version = "8.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-8.0.0.tgz";
-        sha512 = "HNkCepopgiEGuI1QGA6ob4+ayvoSMxvAqetLxP0u1sZzc50LH2DEWwotcNrpVdzZOtERHvIBcGaQKIBEx8pPRQ==";
+        url = "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-8.3.2.tgz";
+        sha512 = "4t0xM5luA3yQhar2xWvYK4wQSDB2r0u8XkpzzJqd57MnJXd7uIAxI0awGUrDXukadRaCo0tDIlMUBemH48SNVg==";
       };
     };
-    "@cspell/strong-weak-map-8.0.0" = {
+    "@cspell/strong-weak-map-8.3.2" = {
       name = "_at_cspell_slash_strong-weak-map";
       packageName = "@cspell/strong-weak-map";
-      version = "8.0.0";
+      version = "8.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-8.0.0.tgz";
-        sha512 = "fRlqPSdpdub52vFtulDgLPzGPGe75I04ScId1zOO9ABP7/ro8VmaG//m1k7hsPkm6h7FG4jWympoA3aXDAcXaA==";
+        url = "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-8.3.2.tgz";
+        sha512 = "Mte/2000ap278kRYOUhiGWI7MNr1+A7WSWJmlcdP4CAH5SO20sZI3/cyZLjJJEyapdhK5vaP1L5J9sUcVDHd3A==";
       };
     };
     "@cspotcode/source-map-support-0.8.1" = {
@@ -4279,112 +4207,112 @@ let
         sha512 = "hUMFbDQ/nZN+1TLMi6iMO1QFz9RSV8yGG8S42WFPFma1d7VSNE0eMdJUmwjmtav22/iQkzHMmu6oTSfAvRGS8g==";
       };
     };
-    "@electron-forge/core-7.1.0" = {
+    "@electron-forge/core-7.2.0" = {
       name = "_at_electron-forge_slash_core";
       packageName = "@electron-forge/core";
-      version = "7.1.0";
+      version = "7.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/core/-/core-7.1.0.tgz";
-        sha512 = "26VOiDNYylrln/pBO4gLbBlgks3iOBMONZmW0u9lkRkAie2hDmDDJr/LJcQIpLvHNJwexYUf3jBY1xR86HjNUA==";
+        url = "https://registry.npmjs.org/@electron-forge/core/-/core-7.2.0.tgz";
+        sha512 = "7Sh0KW79Z/y9MStU3sWTBbTkM4SvV6rL557/ndlfAbZrxcGMnmWHrzn/odAZW1eyfhKguBb7C1Ijw0YTpsdVsw==";
       };
     };
-    "@electron-forge/core-utils-7.1.0" = {
+    "@electron-forge/core-utils-7.2.0" = {
       name = "_at_electron-forge_slash_core-utils";
       packageName = "@electron-forge/core-utils";
-      version = "7.1.0";
+      version = "7.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/core-utils/-/core-utils-7.1.0.tgz";
-        sha512 = "cxUn2nK3Ejdm4+76GmD3+nCnc7zDgKiVihIH96sqhntkWc0qFfCO5kheQmt+v7lCWxvRDR8yYzwxt5nU4Bg6ag==";
+        url = "https://registry.npmjs.org/@electron-forge/core-utils/-/core-utils-7.2.0.tgz";
+        sha512 = "PI1wETlF/+Cxm1m/IgURQ9S3LzHU70/S4CHmkw4xJg4wYVRTfiKpH2XRE9VqEJU854hEnsCGynAIn7/Z2h6SIA==";
       };
     };
-    "@electron-forge/maker-base-7.1.0" = {
+    "@electron-forge/maker-base-7.2.0" = {
       name = "_at_electron-forge_slash_maker-base";
       packageName = "@electron-forge/maker-base";
-      version = "7.1.0";
+      version = "7.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-7.1.0.tgz";
-        sha512 = "W+u8y2D30vhY1xnX3g5cuwsbUV+W5zLR/I8XSfHNofu6+/LOjI2Mu9y0C/pLOMrnVbt1+F9MkxxmLNt0TRlAjg==";
+        url = "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-7.2.0.tgz";
+        sha512 = "5dCFiVo4WhSlLf/T9MP+jnMqP3qfmwvjCSiTRE08USeotNWhycztcFox94NbxMJkRt329tNeG2RRs7RzdCz21w==";
       };
     };
-    "@electron-forge/plugin-base-7.1.0" = {
+    "@electron-forge/plugin-base-7.2.0" = {
       name = "_at_electron-forge_slash_plugin-base";
       packageName = "@electron-forge/plugin-base";
-      version = "7.1.0";
+      version = "7.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/plugin-base/-/plugin-base-7.1.0.tgz";
-        sha512 = "DhCAWclTwfPZThrMTYOXPTnPn7q0TSNSTcIOfHcRCC0VJGFnp5zPYHIV4IV2RLKt0uLSMxrE+JvVjphTKm6HZQ==";
+        url = "https://registry.npmjs.org/@electron-forge/plugin-base/-/plugin-base-7.2.0.tgz";
+        sha512 = "c/pQK36BMBMKiemO68g1ZQOCXBA93x/aeX3lIXwK5bKVuaGt16Unfmby5Q7iIvY+/KsBuLYGkAder8HDN+4Nbw==";
       };
     };
-    "@electron-forge/publisher-base-7.1.0" = {
+    "@electron-forge/publisher-base-7.2.0" = {
       name = "_at_electron-forge_slash_publisher-base";
       packageName = "@electron-forge/publisher-base";
-      version = "7.1.0";
+      version = "7.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/publisher-base/-/publisher-base-7.1.0.tgz";
-        sha512 = "CsYeWGK7Pu+9E44e95AvQa79VI4/ECdK9Ptw+Y9zVTGA+wuuhf65aOLvhpu3mQuMjpFovdrIjls3pSWzxTquOA==";
+        url = "https://registry.npmjs.org/@electron-forge/publisher-base/-/publisher-base-7.2.0.tgz";
+        sha512 = "c0pwcQeMZi0S4iLlgA3pqm6ZdW2u7Ea4Ynat04Gw7su5GLtbrKRgYSL36ZRhzz7sgm4372niI0k91KaH5KToHg==";
       };
     };
-    "@electron-forge/shared-types-7.1.0" = {
+    "@electron-forge/shared-types-7.2.0" = {
       name = "_at_electron-forge_slash_shared-types";
       packageName = "@electron-forge/shared-types";
-      version = "7.1.0";
+      version = "7.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-7.1.0.tgz";
-        sha512 = "uKCrWrgNCwwZB1DUBwo4/YyqLQNL55/X9xWhOT1dyw8W1wQ/bxD33F73FYNdmoL6qgIywWGNRLdQ4e1YaSxnvg==";
+        url = "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-7.2.0.tgz";
+        sha512 = "d8i+pwPwBnlmFTRkq7QfaoRS9LywfyjDdHqQZuArFbL6NLAEbZ52irFiAE3NSLf4STew/BA6IK9sTPz3KRmvQw==";
       };
     };
-    "@electron-forge/template-base-7.1.0" = {
+    "@electron-forge/template-base-7.2.0" = {
       name = "_at_electron-forge_slash_template-base";
       packageName = "@electron-forge/template-base";
-      version = "7.1.0";
+      version = "7.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/template-base/-/template-base-7.1.0.tgz";
-        sha512 = "+i17exI14jTkx7G5pCYIkPdBaXogRdDChH7ly5HoM3rVoun3udyhvkYvHohG1eIM/NaxCCIW4CZb6moey+HnlQ==";
+        url = "https://registry.npmjs.org/@electron-forge/template-base/-/template-base-7.2.0.tgz";
+        sha512 = "X7JrgQctgN0saFih/kKWVJ3KxiI1BpzdrkW58vs5H0kXXmA6UObE16/dWuKYfB06j0yIsfMbZ32Md1yAkgdCfg==";
       };
     };
-    "@electron-forge/template-vite-7.1.0" = {
+    "@electron-forge/template-vite-7.2.0" = {
       name = "_at_electron-forge_slash_template-vite";
       packageName = "@electron-forge/template-vite";
-      version = "7.1.0";
+      version = "7.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/template-vite/-/template-vite-7.1.0.tgz";
-        sha512 = "j9Eyjot+QiTwXHUqXs/XJM0iRzbPNWMGPGMojOgbgkfzwFKSj3meR+vrdsvUFpTh7GCAil8bMMHIbo3DTjGj6Q==";
+        url = "https://registry.npmjs.org/@electron-forge/template-vite/-/template-vite-7.2.0.tgz";
+        sha512 = "Q5FSD+NVNMJKuAo/htQXpk3Q/eo116Xhx0zTzhSldAqpsgfxdAIJhl8TFmdVvCJIig1vEcLG2n/PgudxnuDuEQ==";
       };
     };
-    "@electron-forge/template-vite-typescript-7.1.0" = {
+    "@electron-forge/template-vite-typescript-7.2.0" = {
       name = "_at_electron-forge_slash_template-vite-typescript";
       packageName = "@electron-forge/template-vite-typescript";
-      version = "7.1.0";
+      version = "7.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/template-vite-typescript/-/template-vite-typescript-7.1.0.tgz";
-        sha512 = "HVNyaSBOxMLk/mozHnRSA8X6BSlYzSmG0sPtULl2gIqvXLwURb8RRUNf4NB21fsgm3jYZbmLQ3vRSQ94ZbUu1Q==";
+        url = "https://registry.npmjs.org/@electron-forge/template-vite-typescript/-/template-vite-typescript-7.2.0.tgz";
+        sha512 = "knN3lxJY6UyXa2u5957K4ZyItCoCw22wrUhQARvdHOcgXvMFAcwvfEDT8zOQy6ki6A9W3cMHhSTys7dC8/ChVw==";
       };
     };
-    "@electron-forge/template-webpack-7.1.0" = {
+    "@electron-forge/template-webpack-7.2.0" = {
       name = "_at_electron-forge_slash_template-webpack";
       packageName = "@electron-forge/template-webpack";
-      version = "7.1.0";
+      version = "7.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/template-webpack/-/template-webpack-7.1.0.tgz";
-        sha512 = "vDEV7svgyKvx7szLfDHz0dWkOGFMiGI6xUmp1s5CDdPb55B0Fg+apKxmY4/jp/D+8i+ZncK66SeMV7fYqQv4ew==";
+        url = "https://registry.npmjs.org/@electron-forge/template-webpack/-/template-webpack-7.2.0.tgz";
+        sha512 = "h2LQ3vAzIraRqLUM5fKOLXknp7n5hrQXudRjO/vEEbm1a0jbl4yjp6liKk3yx8MFFO4eAHVDrXwRSsLR3a2Wew==";
       };
     };
-    "@electron-forge/template-webpack-typescript-7.1.0" = {
+    "@electron-forge/template-webpack-typescript-7.2.0" = {
       name = "_at_electron-forge_slash_template-webpack-typescript";
       packageName = "@electron-forge/template-webpack-typescript";
-      version = "7.1.0";
+      version = "7.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/template-webpack-typescript/-/template-webpack-typescript-7.1.0.tgz";
-        sha512 = "ut/0YbTsQcpi0UHHm9hMSZDNxsMvnMyWZbkZbwWHL2fsCuqOAi0lopz0v0K9FGLALMsn2atBi8iDHdGGNX1diw==";
+        url = "https://registry.npmjs.org/@electron-forge/template-webpack-typescript/-/template-webpack-typescript-7.2.0.tgz";
+        sha512 = "eshvPcYXUgmpB+ts9/xRPvQexY46unfe0mGmLDaj8s/5fqCANgyUO5jusvMXlJdf3qwJ/rfi3jS0NuqnjsqskQ==";
       };
     };
-    "@electron-forge/tracer-7.1.0" = {
+    "@electron-forge/tracer-7.2.0" = {
       name = "_at_electron-forge_slash_tracer";
       packageName = "@electron-forge/tracer";
-      version = "7.1.0";
+      version = "7.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/tracer/-/tracer-7.1.0.tgz";
-        sha512 = "e3nWweJpWeFS7usi5d9GEEXiw38qreNz46I+yb4klNC/IPt8Xmmh2VsgUvuld8N9HcJ4eCU9CPLGjkeRQr9RiA==";
+        url = "https://registry.npmjs.org/@electron-forge/tracer/-/tracer-7.2.0.tgz";
+        sha512 = "EoJ07nptEuuY2fcs/bUWzIf11RQRx6Ch/dZ6A9WIRcFYe9cFrslQwvyUf0siY3jcqVvxETCz69JGuBxKGwak7A==";
       };
     };
     "@electron/asar-3.2.8" = {
@@ -4423,31 +4351,40 @@ let
         sha512 = "k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww==";
       };
     };
-    "@electron/packager-18.0.0" = {
+    "@electron/packager-18.1.3" = {
       name = "_at_electron_slash_packager";
       packageName = "@electron/packager";
-      version = "18.0.0";
+      version = "18.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron/packager/-/packager-18.0.0.tgz";
-        sha512 = "OihHRTSkMiAuiZISN8h6azFRXgWqLWY/S1OpGru3sBB9Q4lQ0gD3WbqP7MSpFKEFcOozDvIB4LZUyAsfJIRQBg==";
+        url = "https://registry.npmjs.org/@electron/packager/-/packager-18.1.3.tgz";
+        sha512 = "21T5MxUf7DwV07IIes3jO/571mXCjOGVPdmYJFPCVDTimFiHQSW0Oy+OIGQaKBiNIXfnP29KylsCQbmds6O6Iw==";
       };
     };
-    "@electron/rebuild-3.3.0" = {
+    "@electron/rebuild-3.4.1" = {
       name = "_at_electron_slash_rebuild";
       packageName = "@electron/rebuild";
-      version = "3.3.0";
+      version = "3.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.3.0.tgz";
-        sha512 = "S1vgpzIOS1wCJmsYjdLz97MTUV6UTLcMk/HE3w90HYtVxvW+PQdwxLbgsrECX2bysqcnmM5a0K6mXj/gwVgYtQ==";
+        url = "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.4.1.tgz";
+        sha512 = "iMKb6KJgKcdURbejs0j2GLEmrY8uY4rg1ESThXx9sFTgdWb8UOfJuTqW6LIEtcoY8FrbFqDmJrkWc4tBpdStXw==";
       };
     };
-    "@electron/universal-1.5.1" = {
+    "@electron/universal-2.0.1" = {
       name = "_at_electron_slash_universal";
       packageName = "@electron/universal";
-      version = "1.5.1";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@electron/universal/-/universal-2.0.1.tgz";
+        sha512 = "fKpv9kg4SPmt+hY7SVBnIYULE9QJl8L3sCfcBsnqbJwwBwAeTLokJ9TRt9y7bK0JAzIW2y78TVVjvnQEms/yyA==";
+      };
+    };
+    "@electron/windows-sign-1.0.0" = {
+      name = "_at_electron_slash_windows-sign";
+      packageName = "@electron/windows-sign";
+      version = "1.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron/universal/-/universal-1.5.1.tgz";
-        sha512 = "kbgXxyEauPJiQQUNG2VgUeyfQNFk6hBF11ISN2PNI6agUgPl55pv4eQmaqHzTAzchBvqZ2tQuRVaPStGf0mxGw==";
+        url = "https://registry.npmjs.org/@electron/windows-sign/-/windows-sign-1.0.0.tgz";
+        sha512 = "sdkQYAR/TQCEyYgz2jMbusL/ljdj6qA7vyIm/S9HICMAitXhXROFHUOLLgiORj1uiaf2EOB2U33DatGubUuZaQ==";
       };
     };
     "@emmetio/abbreviation-2.3.3" = {
@@ -4504,6 +4441,15 @@ let
         sha512 = "LXV7QsWJxRuMYvKbiznh+U1ilIop3g2TeKRzUxOG5X3YITc8JyyTa90BmLwqqv0YnX4v32CSlG+vsziZp9dMvA==";
       };
     };
+    "@esbuild/aix-ppc64-0.19.11" = {
+      name = "_at_esbuild_slash_aix-ppc64";
+      packageName = "@esbuild/aix-ppc64";
+      version = "0.19.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.11.tgz";
+        sha512 = "FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==";
+      };
+    };
     "@esbuild/android-arm-0.17.19" = {
       name = "_at_esbuild_slash_android-arm";
       packageName = "@esbuild/android-arm";
@@ -4522,13 +4468,13 @@ let
         sha512 = "fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==";
       };
     };
-    "@esbuild/android-arm-0.19.7" = {
+    "@esbuild/android-arm-0.19.11" = {
       name = "_at_esbuild_slash_android-arm";
       packageName = "@esbuild/android-arm";
-      version = "0.19.7";
+      version = "0.19.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.7.tgz";
-        sha512 = "YGSPnndkcLo4PmVl2tKatEn+0mlVMr3yEpOOT0BeMria87PhvoJb5dg5f5Ft9fbCVgtAz4pWMzZVgSEGpDAlww==";
+        url = "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.11.tgz";
+        sha512 = "5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==";
       };
     };
     "@esbuild/android-arm64-0.17.19" = {
@@ -4549,13 +4495,13 @@ let
         sha512 = "Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==";
       };
     };
-    "@esbuild/android-arm64-0.19.7" = {
+    "@esbuild/android-arm64-0.19.11" = {
       name = "_at_esbuild_slash_android-arm64";
       packageName = "@esbuild/android-arm64";
-      version = "0.19.7";
+      version = "0.19.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.7.tgz";
-        sha512 = "YEDcw5IT7hW3sFKZBkCAQaOCJQLONVcD4bOyTXMZz5fr66pTHnAet46XAtbXAkJRfIn2YVhdC6R9g4xa27jQ1w==";
+        url = "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.11.tgz";
+        sha512 = "aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==";
       };
     };
     "@esbuild/android-x64-0.17.19" = {
@@ -4576,13 +4522,13 @@ let
         sha512 = "8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==";
       };
     };
-    "@esbuild/android-x64-0.19.7" = {
+    "@esbuild/android-x64-0.19.11" = {
       name = "_at_esbuild_slash_android-x64";
       packageName = "@esbuild/android-x64";
-      version = "0.19.7";
+      version = "0.19.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.7.tgz";
-        sha512 = "jhINx8DEjz68cChFvM72YzrqfwJuFbfvSxZAk4bebpngGfNNRm+zRl4rtT9oAX6N9b6gBcFaJHFew5Blf6CvUw==";
+        url = "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.11.tgz";
+        sha512 = "eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==";
       };
     };
     "@esbuild/darwin-arm64-0.17.19" = {
@@ -4603,13 +4549,13 @@ let
         sha512 = "bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==";
       };
     };
-    "@esbuild/darwin-arm64-0.19.7" = {
+    "@esbuild/darwin-arm64-0.19.11" = {
       name = "_at_esbuild_slash_darwin-arm64";
       packageName = "@esbuild/darwin-arm64";
-      version = "0.19.7";
+      version = "0.19.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.7.tgz";
-        sha512 = "dr81gbmWN//3ZnBIm6YNCl4p3pjnabg1/ZVOgz2fJoUO1a3mq9WQ/1iuEluMs7mCL+Zwv7AY5e3g1hjXqQZ9Iw==";
+        url = "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.11.tgz";
+        sha512 = "ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==";
       };
     };
     "@esbuild/darwin-x64-0.17.19" = {
@@ -4630,13 +4576,13 @@ let
         sha512 = "pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==";
       };
     };
-    "@esbuild/darwin-x64-0.19.7" = {
+    "@esbuild/darwin-x64-0.19.11" = {
       name = "_at_esbuild_slash_darwin-x64";
       packageName = "@esbuild/darwin-x64";
-      version = "0.19.7";
+      version = "0.19.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.7.tgz";
-        sha512 = "Lc0q5HouGlzQEwLkgEKnWcSazqr9l9OdV2HhVasWJzLKeOt0PLhHaUHuzb8s/UIya38DJDoUm74GToZ6Wc7NGQ==";
+        url = "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.11.tgz";
+        sha512 = "fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==";
       };
     };
     "@esbuild/freebsd-arm64-0.17.19" = {
@@ -4657,13 +4603,13 @@ let
         sha512 = "yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==";
       };
     };
-    "@esbuild/freebsd-arm64-0.19.7" = {
+    "@esbuild/freebsd-arm64-0.19.11" = {
       name = "_at_esbuild_slash_freebsd-arm64";
       packageName = "@esbuild/freebsd-arm64";
-      version = "0.19.7";
+      version = "0.19.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.7.tgz";
-        sha512 = "+y2YsUr0CxDFF7GWiegWjGtTUF6gac2zFasfFkRJPkMAuMy9O7+2EH550VlqVdpEEchWMynkdhC9ZjtnMiHImQ==";
+        url = "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.11.tgz";
+        sha512 = "lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==";
       };
     };
     "@esbuild/freebsd-x64-0.17.19" = {
@@ -4684,13 +4630,13 @@ let
         sha512 = "tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==";
       };
     };
-    "@esbuild/freebsd-x64-0.19.7" = {
+    "@esbuild/freebsd-x64-0.19.11" = {
       name = "_at_esbuild_slash_freebsd-x64";
       packageName = "@esbuild/freebsd-x64";
-      version = "0.19.7";
+      version = "0.19.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.7.tgz";
-        sha512 = "CdXOxIbIzPJmJhrpmJTLx+o35NoiKBIgOvmvT+jeSadYiWJn0vFKsl+0bSG/5lwjNHoIDEyMYc/GAPR9jxusTA==";
+        url = "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.11.tgz";
+        sha512 = "JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==";
       };
     };
     "@esbuild/linux-arm-0.17.19" = {
@@ -4711,13 +4657,13 @@ let
         sha512 = "/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==";
       };
     };
-    "@esbuild/linux-arm-0.19.7" = {
+    "@esbuild/linux-arm-0.19.11" = {
       name = "_at_esbuild_slash_linux-arm";
       packageName = "@esbuild/linux-arm";
-      version = "0.19.7";
+      version = "0.19.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.7.tgz";
-        sha512 = "Y+SCmWxsJOdQtjcBxoacn/pGW9HDZpwsoof0ttL+2vGcHokFlfqV666JpfLCSP2xLxFpF1lj7T3Ox3sr95YXww==";
+        url = "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.11.tgz";
+        sha512 = "3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==";
       };
     };
     "@esbuild/linux-arm64-0.17.19" = {
@@ -4738,13 +4684,13 @@ let
         sha512 = "2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==";
       };
     };
-    "@esbuild/linux-arm64-0.19.7" = {
+    "@esbuild/linux-arm64-0.19.11" = {
       name = "_at_esbuild_slash_linux-arm64";
       packageName = "@esbuild/linux-arm64";
-      version = "0.19.7";
+      version = "0.19.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.7.tgz";
-        sha512 = "inHqdOVCkUhHNvuQPT1oCB7cWz9qQ/Cz46xmVe0b7UXcuIJU3166aqSunsqkgSGMtUCWOZw3+KMwI6otINuC9g==";
+        url = "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.11.tgz";
+        sha512 = "LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==";
       };
     };
     "@esbuild/linux-ia32-0.17.19" = {
@@ -4765,13 +4711,13 @@ let
         sha512 = "P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==";
       };
     };
-    "@esbuild/linux-ia32-0.19.7" = {
+    "@esbuild/linux-ia32-0.19.11" = {
       name = "_at_esbuild_slash_linux-ia32";
       packageName = "@esbuild/linux-ia32";
-      version = "0.19.7";
+      version = "0.19.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.7.tgz";
-        sha512 = "2BbiL7nLS5ZO96bxTQkdO0euGZIUQEUXMTrqLxKUmk/Y5pmrWU84f+CMJpM8+EHaBPfFSPnomEaQiG/+Gmh61g==";
+        url = "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.11.tgz";
+        sha512 = "caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==";
       };
     };
     "@esbuild/linux-loong64-0.17.19" = {
@@ -4792,13 +4738,13 @@ let
         sha512 = "nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==";
       };
     };
-    "@esbuild/linux-loong64-0.19.7" = {
+    "@esbuild/linux-loong64-0.19.11" = {
       name = "_at_esbuild_slash_linux-loong64";
       packageName = "@esbuild/linux-loong64";
-      version = "0.19.7";
+      version = "0.19.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.7.tgz";
-        sha512 = "BVFQla72KXv3yyTFCQXF7MORvpTo4uTA8FVFgmwVrqbB/4DsBFWilUm1i2Oq6zN36DOZKSVUTb16jbjedhfSHw==";
+        url = "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.11.tgz";
+        sha512 = "ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==";
       };
     };
     "@esbuild/linux-mips64el-0.17.19" = {
@@ -4819,13 +4765,13 @@ let
         sha512 = "d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==";
       };
     };
-    "@esbuild/linux-mips64el-0.19.7" = {
+    "@esbuild/linux-mips64el-0.19.11" = {
       name = "_at_esbuild_slash_linux-mips64el";
       packageName = "@esbuild/linux-mips64el";
-      version = "0.19.7";
+      version = "0.19.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.7.tgz";
-        sha512 = "DzAYckIaK+pS31Q/rGpvUKu7M+5/t+jI+cdleDgUwbU7KdG2eC3SUbZHlo6Q4P1CfVKZ1lUERRFP8+q0ob9i2w==";
+        url = "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.11.tgz";
+        sha512 = "B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==";
       };
     };
     "@esbuild/linux-ppc64-0.17.19" = {
@@ -4846,13 +4792,13 @@ let
         sha512 = "WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==";
       };
     };
-    "@esbuild/linux-ppc64-0.19.7" = {
+    "@esbuild/linux-ppc64-0.19.11" = {
       name = "_at_esbuild_slash_linux-ppc64";
       packageName = "@esbuild/linux-ppc64";
-      version = "0.19.7";
+      version = "0.19.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.7.tgz";
-        sha512 = "JQ1p0SmUteNdUaaiRtyS59GkkfTW0Edo+e0O2sihnY4FoZLz5glpWUQEKMSzMhA430ctkylkS7+vn8ziuhUugQ==";
+        url = "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.11.tgz";
+        sha512 = "MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==";
       };
     };
     "@esbuild/linux-riscv64-0.17.19" = {
@@ -4873,13 +4819,13 @@ let
         sha512 = "WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==";
       };
     };
-    "@esbuild/linux-riscv64-0.19.7" = {
+    "@esbuild/linux-riscv64-0.19.11" = {
       name = "_at_esbuild_slash_linux-riscv64";
       packageName = "@esbuild/linux-riscv64";
-      version = "0.19.7";
+      version = "0.19.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.7.tgz";
-        sha512 = "xGwVJ7eGhkprY/nB7L7MXysHduqjpzUl40+XoYDGC4UPLbnG+gsyS1wQPJ9lFPcxYAaDXbdRXd1ACs9AE9lxuw==";
+        url = "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.11.tgz";
+        sha512 = "f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==";
       };
     };
     "@esbuild/linux-s390x-0.17.19" = {
@@ -4900,13 +4846,13 @@ let
         sha512 = "+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==";
       };
     };
-    "@esbuild/linux-s390x-0.19.7" = {
+    "@esbuild/linux-s390x-0.19.11" = {
       name = "_at_esbuild_slash_linux-s390x";
       packageName = "@esbuild/linux-s390x";
-      version = "0.19.7";
+      version = "0.19.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.7.tgz";
-        sha512 = "U8Rhki5PVU0L0nvk+E8FjkV8r4Lh4hVEb9duR6Zl21eIEYEwXz8RScj4LZWA2i3V70V4UHVgiqMpszXvG0Yqhg==";
+        url = "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.11.tgz";
+        sha512 = "A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==";
       };
     };
     "@esbuild/linux-x64-0.17.19" = {
@@ -4927,13 +4873,13 @@ let
         sha512 = "UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==";
       };
     };
-    "@esbuild/linux-x64-0.19.7" = {
+    "@esbuild/linux-x64-0.19.11" = {
       name = "_at_esbuild_slash_linux-x64";
       packageName = "@esbuild/linux-x64";
-      version = "0.19.7";
+      version = "0.19.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.7.tgz";
-        sha512 = "ZYZopyLhm4mcoZXjFt25itRlocKlcazDVkB4AhioiL9hOWhDldU9n38g62fhOI4Pth6vp+Mrd5rFKxD0/S+7aQ==";
+        url = "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.11.tgz";
+        sha512 = "grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==";
       };
     };
     "@esbuild/netbsd-x64-0.17.19" = {
@@ -4954,13 +4900,13 @@ let
         sha512 = "iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==";
       };
     };
-    "@esbuild/netbsd-x64-0.19.7" = {
+    "@esbuild/netbsd-x64-0.19.11" = {
       name = "_at_esbuild_slash_netbsd-x64";
       packageName = "@esbuild/netbsd-x64";
-      version = "0.19.7";
+      version = "0.19.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.7.tgz";
-        sha512 = "/yfjlsYmT1O3cum3J6cmGG16Fd5tqKMcg5D+sBYLaOQExheAJhqr8xOAEIuLo8JYkevmjM5zFD9rVs3VBcsjtQ==";
+        url = "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.11.tgz";
+        sha512 = "13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==";
       };
     };
     "@esbuild/openbsd-x64-0.17.19" = {
@@ -4981,13 +4927,13 @@ let
         sha512 = "e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==";
       };
     };
-    "@esbuild/openbsd-x64-0.19.7" = {
+    "@esbuild/openbsd-x64-0.19.11" = {
       name = "_at_esbuild_slash_openbsd-x64";
       packageName = "@esbuild/openbsd-x64";
-      version = "0.19.7";
+      version = "0.19.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.7.tgz";
-        sha512 = "MYDFyV0EW1cTP46IgUJ38OnEY5TaXxjoDmwiTXPjezahQgZd+j3T55Ht8/Q9YXBM0+T9HJygrSRGV5QNF/YVDQ==";
+        url = "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.11.tgz";
+        sha512 = "ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==";
       };
     };
     "@esbuild/sunos-x64-0.17.19" = {
@@ -5008,13 +4954,13 @@ let
         sha512 = "kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==";
       };
     };
-    "@esbuild/sunos-x64-0.19.7" = {
+    "@esbuild/sunos-x64-0.19.11" = {
       name = "_at_esbuild_slash_sunos-x64";
       packageName = "@esbuild/sunos-x64";
-      version = "0.19.7";
+      version = "0.19.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.7.tgz";
-        sha512 = "JcPvgzf2NN/y6X3UUSqP6jSS06V0DZAV/8q0PjsZyGSXsIGcG110XsdmuWiHM+pno7/mJF6fjH5/vhUz/vA9fw==";
+        url = "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.11.tgz";
+        sha512 = "Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==";
       };
     };
     "@esbuild/win32-arm64-0.17.19" = {
@@ -5035,13 +4981,13 @@ let
         sha512 = "ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==";
       };
     };
-    "@esbuild/win32-arm64-0.19.7" = {
+    "@esbuild/win32-arm64-0.19.11" = {
       name = "_at_esbuild_slash_win32-arm64";
       packageName = "@esbuild/win32-arm64";
-      version = "0.19.7";
+      version = "0.19.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.7.tgz";
-        sha512 = "ZA0KSYti5w5toax5FpmfcAgu3ZNJxYSRm0AW/Dao5up0YV1hDVof1NvwLomjEN+3/GMtaWDI+CIyJOMTRSTdMw==";
+        url = "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.11.tgz";
+        sha512 = "0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==";
       };
     };
     "@esbuild/win32-ia32-0.17.19" = {
@@ -5062,13 +5008,13 @@ let
         sha512 = "Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==";
       };
     };
-    "@esbuild/win32-ia32-0.19.7" = {
+    "@esbuild/win32-ia32-0.19.11" = {
       name = "_at_esbuild_slash_win32-ia32";
       packageName = "@esbuild/win32-ia32";
-      version = "0.19.7";
+      version = "0.19.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.7.tgz";
-        sha512 = "CTOnijBKc5Jpk6/W9hQMMvJnsSYRYgveN6O75DTACCY18RA2nqka8dTZR+x/JqXCRiKk84+5+bRKXUSbbwsS0A==";
+        url = "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.11.tgz";
+        sha512 = "6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==";
       };
     };
     "@esbuild/win32-x64-0.17.19" = {
@@ -5089,13 +5035,13 @@ let
         sha512 = "kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==";
       };
     };
-    "@esbuild/win32-x64-0.19.7" = {
+    "@esbuild/win32-x64-0.19.11" = {
       name = "_at_esbuild_slash_win32-x64";
       packageName = "@esbuild/win32-x64";
-      version = "0.19.7";
+      version = "0.19.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.7.tgz";
-        sha512 = "gRaP2sk6hc98N734luX4VpF318l3w+ofrtTu9j5L8EQXF+FzQKV6alCOHMVoJJHvVK/mGbwBXfOL1HETQu9IGQ==";
+        url = "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.11.tgz";
+        sha512 = "vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==";
       };
     };
     "@eslint-community/eslint-utils-4.4.0" = {
@@ -5125,13 +5071,13 @@ let
         sha512 = "J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==";
       };
     };
-    "@eslint/eslintrc-2.1.3" = {
+    "@eslint/eslintrc-2.1.4" = {
       name = "_at_eslint_slash_eslintrc";
       packageName = "@eslint/eslintrc";
-      version = "2.1.3";
+      version = "2.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz";
-        sha512 = "yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==";
+        url = "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz";
+        sha512 = "269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==";
       };
     };
     "@eslint/js-8.44.0" = {
@@ -5143,13 +5089,13 @@ let
         sha512 = "Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==";
       };
     };
-    "@eslint/js-8.54.0" = {
+    "@eslint/js-8.56.0" = {
       name = "_at_eslint_slash_js";
       packageName = "@eslint/js";
-      version = "8.54.0";
+      version = "8.56.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz";
-        sha512 = "ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==";
+        url = "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz";
+        sha512 = "gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==";
       };
     };
     "@ethereumjs/rlp-4.0.1" = {
@@ -5260,13 +5206,13 @@ let
         sha512 = "4e7hzPj50mQIlsrzOH6XZ36O094mPfPTIDIH4yv49bWNMc7GFLTofB/lcT+QyxiLaJuC0Wlk9yOLB8DIqmtwug==";
       };
     };
-    "@expo/config-8.4.0" = {
+    "@expo/config-8.5.3" = {
       name = "_at_expo_slash_config";
       packageName = "@expo/config";
-      version = "8.4.0";
+      version = "8.5.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/config/-/config-8.4.0.tgz";
-        sha512 = "m3LkkONHrGsoFASyi3VuxJON/McRwMOtU9tw9PC/XEhRy1HfRALxdqTMl0W5X79ra7kCXd8H5EVTbTl9pvU+bw==";
+        url = "https://registry.npmjs.org/@expo/config/-/config-8.5.3.tgz";
+        sha512 = "wMX96aLo7AVl7voEkGXwEI2hPoMMHgxyq0CMC51I2jOnYHqB4HkG71YeXBPZR3zLnY33CNjVT+hF5CAPfiiliw==";
       };
     };
     "@expo/config-plugins-4.1.5" = {
@@ -5296,13 +5242,13 @@ let
         sha512 = "TItGwmKH1GDjA5GlMkXo1A8pqeqppSK40aSVRVQaGZraUj+nuvtpWxNgEWZxWFumiatP2ocWwyWVjfmH+rJY6g==";
       };
     };
-    "@expo/config-plugins-7.6.0" = {
+    "@expo/config-plugins-7.8.3" = {
       name = "_at_expo_slash_config-plugins";
       packageName = "@expo/config-plugins";
-      version = "7.6.0";
+      version = "7.8.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-7.6.0.tgz";
-        sha512 = "2YX5xQhxSWVFS2BzMo8SVJPGuc6R/Ci2o4oeMT5F/JvdUut56pBCZietkkAxX9gOcIYMMTYFJllMn/Ecb5v4yQ==";
+        url = "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-7.8.3.tgz";
+        sha512 = "ix0pNLZgR29mNI5pcNRjuEClvioVjWCNWDiAxgZd1BXEVn7d2bqztDKQj03KU88e0KM7zKt9AbmIqn5aANZ8pg==";
       };
     };
     "@expo/config-types-45.0.0" = {
@@ -5332,13 +5278,13 @@ let
         sha512 = "8eyREVi+K2acnMBe/rTIu1dOfyR2+AMnTLHlut+YpMV9OZPdeKV0Bs9BxAewGqBA2slslbQ9N39IS2CuTKpXkA==";
       };
     };
-    "@expo/config-types-50.0.0-alpha.3" = {
+    "@expo/config-types-50.0.0" = {
       name = "_at_expo_slash_config-types";
       packageName = "@expo/config-types";
-      version = "50.0.0-alpha.3";
+      version = "50.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/config-types/-/config-types-50.0.0-alpha.3.tgz";
-        sha512 = "dzJ49GOqFxcJX8WMn4zNc7ffEQEgJ93EfhwQZ6BHqkCgvnnkoBl8sO0a8Y+UzLCD1nGOV6j3vLvzLyRkD6buaA==";
+        url = "https://registry.npmjs.org/@expo/config-types/-/config-types-50.0.0.tgz";
+        sha512 = "0kkhIwXRT6EdFDwn+zTg9R2MZIAEYGn1MVkyRohAd+C9cXOb5RA8WLQi7vuxKF9m1SMtNAUrf0pO+ENK0+/KSw==";
       };
     };
     "@expo/dev-server-0.2.0" = {
@@ -5368,31 +5314,31 @@ let
         sha512 = "ghUVhNJQOCTdQckSGTHctNp/0jzvVoMMkVh+6SHn+TZj8sU15U/npXIDt8NtQp0HedlPaCgkVdMu8Sacne0aEA==";
       };
     };
-    "@expo/eas-build-job-1.0.48" = {
+    "@expo/eas-build-job-1.0.50" = {
       name = "_at_expo_slash_eas-build-job";
       packageName = "@expo/eas-build-job";
-      version = "1.0.48";
+      version = "1.0.50";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/eas-build-job/-/eas-build-job-1.0.48.tgz";
-        sha512 = "44N9fKrur7xOtY8DnHcFEzJTPenOBUkfpNous4xziG8u58oXvlraiNaTSi++4EpFfsBS3U+jQAW9UMlJqfu8WA==";
+        url = "https://registry.npmjs.org/@expo/eas-build-job/-/eas-build-job-1.0.50.tgz";
+        sha512 = "mG+U5hag4OLVI51Crbc1lxIeWgMBv9ZUm1eL/AkoA04NJFtVpwTCVqdpMsRWsXLFM8Poy/ktN9UOma06eXHWHQ==";
       };
     };
-    "@expo/eas-json-5.7.0" = {
+    "@expo/eas-json-5.9.3" = {
       name = "_at_expo_slash_eas-json";
       packageName = "@expo/eas-json";
-      version = "5.7.0";
+      version = "5.9.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/eas-json/-/eas-json-5.7.0.tgz";
-        sha512 = "JNg1vXZzQPxGmvq3BoP40b6k49KWaysNSLpJhGFGy5oHhIC7BOI5P0yTCSdluxhd0Rq5oLc03tnYbqoFGWUT8g==";
+        url = "https://registry.npmjs.org/@expo/eas-json/-/eas-json-5.9.3.tgz";
+        sha512 = "IxAudZQixCHNgMtMW1f3l/Ty7VH9jXKgQ5Gts1wQvMdwkWFR7ZxA6F7U8fFFdnIrYY0j46TkZj3gcYTfhtdELA==";
       };
     };
-    "@expo/fingerprint-0.4.1" = {
+    "@expo/fingerprint-0.6.0" = {
       name = "_at_expo_slash_fingerprint";
       packageName = "@expo/fingerprint";
-      version = "0.4.1";
+      version = "0.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.4.1.tgz";
-        sha512 = "OjL/moP9IV5fV0oQc/cOcNNTW/FlwK4fUHtgeka/Fk4A7L4evpXOt9hfQgDtY6Ig0QHINAYvKpWrfCkPxEh2/Q==";
+        url = "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.6.0.tgz";
+        sha512 = "KfpoVRTMwMNJ/Cf5o+Ou8M/Y0EGSTqK+rbi70M2Y0K2qgWNfMJ1gm6sYO9uc8lcTr7YSYM1Rme3dk7QXhpScNA==";
       };
     };
     "@expo/image-utils-0.3.21" = {
@@ -5440,13 +5386,22 @@ let
         sha512 = "YaH6rVg11JoTS2P6LsW7ybS2CULjf40AbnAHw2F1eDPuheprNjARZMnyHFPkKv7GuxCy+B9GPcbOKgc4cgA80Q==";
       };
     };
-    "@expo/logger-1.0.30" = {
+    "@expo/json-file-8.3.0" = {
+      name = "_at_expo_slash_json-file";
+      packageName = "@expo/json-file";
+      version = "8.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.0.tgz";
+        sha512 = "yROUeXJXR5goagB8c3muFLCzLmdGOvoPpR5yDNaXrnTp4euNykr9yW0wWhJx4YVRTNOPtGBnEbbJBW+a9q+S6g==";
+      };
+    };
+    "@expo/logger-1.0.37" = {
       name = "_at_expo_slash_logger";
       packageName = "@expo/logger";
-      version = "1.0.30";
+      version = "1.0.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/logger/-/logger-1.0.30.tgz";
-        sha512 = "8wEUDZNLAv+Wi4jvo0kFErQ7nc4ZFfArq5GDeSCoIrRfdKK8baot7YJoJVsmpQ9/JXnTEAgwGDP3vYaR5wzcyg==";
+        url = "https://registry.npmjs.org/@expo/logger/-/logger-1.0.37.tgz";
+        sha512 = "Xx3pt7FCsUkjsnu3lJoGp/LXYqoa5TyYx1/lgvfz4NSRgUT+5f6LNiYIowUjXab80PbW3gA/KqHYY9V7iZm8aQ==";
       };
     };
     "@expo/metro-config-0.6.0" = {
@@ -5539,22 +5494,31 @@ let
         sha512 = "UXQ4LXCfTZ580LDHGJ5q62jSTwJFFJ1GqBu8duQMThiHKWbMJ+gajJh6rsB6EJ3aLUr9wcauxneL5LVRFxwBEA==";
       };
     };
-    "@expo/plugin-help-5.1.22" = {
+    "@expo/plist-0.1.0" = {
+      name = "_at_expo_slash_plist";
+      packageName = "@expo/plist";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@expo/plist/-/plist-0.1.0.tgz";
+        sha512 = "xWD+8vIFif0wKyuqe3fmnmnSouXYucciZXFzS0ZD5OV9eSAS1RGQI5FaGGJ6zxJ4mpdy/4QzbLdBjnYE5vxA0g==";
+      };
+    };
+    "@expo/plugin-help-5.1.23" = {
       name = "_at_expo_slash_plugin-help";
       packageName = "@expo/plugin-help";
-      version = "5.1.22";
+      version = "5.1.23";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/plugin-help/-/plugin-help-5.1.22.tgz";
-        sha512 = "FhLc5Ukcxb6vZvWgge/aW0pEUb1bGkN1GQBEan8NlJfVYj/uhvgmcPu1fvihwARdcLCOeoQgUVbUX5Tu/SBABg==";
+        url = "https://registry.npmjs.org/@expo/plugin-help/-/plugin-help-5.1.23.tgz";
+        sha512 = "s0uH6cPplLj73ZVie40EYUhl7X7q9kRR+8IfZWDod3wUtVGOFInxuCPX9Jpv1UwwBgbRu2cLisqr8m45LrFgxw==";
       };
     };
-    "@expo/plugin-warn-if-update-available-2.5.0" = {
+    "@expo/plugin-warn-if-update-available-2.5.1" = {
       name = "_at_expo_slash_plugin-warn-if-update-available";
       packageName = "@expo/plugin-warn-if-update-available";
-      version = "2.5.0";
+      version = "2.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/plugin-warn-if-update-available/-/plugin-warn-if-update-available-2.5.0.tgz";
-        sha512 = "DNq+7mkAQFjOGGNDVwcWvr1/6FPvBrDAkhR92ul3cNaLmZ36WxnnQ/HEUUUEj0gMjwiPEER4mBqC4auMsbBp9g==";
+        url = "https://registry.npmjs.org/@expo/plugin-warn-if-update-available/-/plugin-warn-if-update-available-2.5.1.tgz";
+        sha512 = "B65QSIZ+TgFHnVXsTw+1Q6djsJByWwnIjYfoG8ZV9wizOC01gbAw1cOZ/YtrJ2BrDnzFQtM8qecjlmZ7C3MPLw==";
       };
     };
     "@expo/prebuild-config-4.0.3" = {
@@ -5647,13 +5611,13 @@ let
         sha512 = "QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew==";
       };
     };
-    "@expo/steps-1.0.34" = {
+    "@expo/steps-1.0.51" = {
       name = "_at_expo_slash_steps";
       packageName = "@expo/steps";
-      version = "1.0.34";
+      version = "1.0.51";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/steps/-/steps-1.0.34.tgz";
-        sha512 = "jQoxeMWWl2mUwLGyiUD38z/FNao2jbDP8Tjvkr/YAfIOHaro36E3Vmn1YsKTYmtc41TGcFdCzqly95faRNrhvQ==";
+        url = "https://registry.npmjs.org/@expo/steps/-/steps-1.0.51.tgz";
+        sha512 = "S+2ESok2+kMjqWqJIK6p7Uk3aXf0hEbl7x10n1QBQdFzpkQmcNmpyNguOiFYyaj9dRleG2aPbwCv942m37VQWw==";
       };
     };
     "@expo/timeago.js-1.0.0" = {
@@ -5683,13 +5647,13 @@ let
         sha512 = "P2P5MjbcIqSlepr8216eIy+rI8UK+K10r/3Y+eoV/pNABKXc/bjk/QSJICLayouxQSOp2YU6GipdfnwJRUsEUA==";
       };
     };
-    "@expo/xcpretty-4.2.2" = {
+    "@expo/xcpretty-4.3.0" = {
       name = "_at_expo_slash_xcpretty";
       packageName = "@expo/xcpretty";
-      version = "4.2.2";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-4.2.2.tgz";
-        sha512 = "Lke/geldJqUV0Dfxg5/QIOugOzdqZ/rQ9yHKSgGbjZtG1uiSqWyFwWvXmrdd3/sIdX33eykGvIcf+OrvvcXVUw==";
+        url = "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-4.3.0.tgz";
+        sha512 = "whBbvHZ2Q10T5TNmN0z5NbO6C9ZDw+XUTu8h6vVMnMzQrbGexc9oaCCZfz+L3Q7TEL5vfr+9L86nY62c3Bsm+g==";
       };
     };
     "@fast-csv/format-4.3.5" = {
@@ -5737,31 +5701,31 @@ let
         sha512 = "k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==";
       };
     };
-    "@gitbeaker/core-39.24.0" = {
+    "@gitbeaker/core-39.28.0" = {
       name = "_at_gitbeaker_slash_core";
       packageName = "@gitbeaker/core";
-      version = "39.24.0";
+      version = "39.28.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@gitbeaker/core/-/core-39.24.0.tgz";
-        sha512 = "Y6orjGI5F+0vRfHcpKxIouGylcjq8djKq6QCrOsEiKYvthhRu1KJruYf828OXncu5K1IZX6q+cTB+kwouQv/XA==";
+        url = "https://registry.npmjs.org/@gitbeaker/core/-/core-39.28.0.tgz";
+        sha512 = "5mbDeMnxz/hqIRo60TKMkIvteB2c3yv5kFRKdDVSuhPc/nbdGHEj0EermaMbQFvmvIWg10fSgPnAy3n5k7LHXg==";
       };
     };
-    "@gitbeaker/requester-utils-39.24.0" = {
+    "@gitbeaker/requester-utils-39.28.0" = {
       name = "_at_gitbeaker_slash_requester-utils";
       packageName = "@gitbeaker/requester-utils";
-      version = "39.24.0";
+      version = "39.28.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@gitbeaker/requester-utils/-/requester-utils-39.24.0.tgz";
-        sha512 = "K5x3ZWbHYLVu03c6tTclYgaRJhHsUP9FTAmea+XouM8mjSgHuZ145zxjCygWldTAGNgA/pt76hExnLlakbP7Mg==";
+        url = "https://registry.npmjs.org/@gitbeaker/requester-utils/-/requester-utils-39.28.0.tgz";
+        sha512 = "PhFSIwx/g45DtyKO9N483Hj8e2PJot3LLLDnQZPpiKyIPJMuO7Qred80wjNAHuxRnQ7PgSgvLpRiFjWmjO3yKQ==";
       };
     };
-    "@gitbeaker/rest-39.24.0" = {
+    "@gitbeaker/rest-39.28.0" = {
       name = "_at_gitbeaker_slash_rest";
       packageName = "@gitbeaker/rest";
-      version = "39.24.0";
+      version = "39.28.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@gitbeaker/rest/-/rest-39.24.0.tgz";
-        sha512 = "iBdRZdH4Z/Ip71rZZckrKB1EzXZCJxjlNl0eaLCXNCAEZ+QqnT1sD3Ux5JXrKIcp780SjsBAZYxAsNgHmW5qPQ==";
+        url = "https://registry.npmjs.org/@gitbeaker/rest/-/rest-39.28.0.tgz";
+        sha512 = "ArT/p2/LKfBMdTu/fH0nCOc7LpDUc+TQ9XwF2HegH95JQy+daZdE4+FIVZ6GYDZX6uExhkskemMDvnP9Mjqblg==";
       };
     };
     "@grammarly/sdk-1.11.0" = {
@@ -5854,22 +5818,22 @@ let
         sha512 = "llfLyRpmXqMX6kM3AvepviTxi06UTutphJljQupoU8FaTh0OcGFPjLjVSbgP7tOqI6lD1YbPR7qY83vDeYLarA==";
       };
     };
-    "@graphql-tools/executor-http-1.0.3" = {
+    "@graphql-tools/executor-http-1.0.6" = {
       name = "_at_graphql-tools_slash_executor-http";
       packageName = "@graphql-tools/executor-http";
-      version = "1.0.3";
+      version = "1.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/executor-http/-/executor-http-1.0.3.tgz";
-        sha512 = "5WZIMBevRaxMabZ8U2Ty0dTUPy/PpeYSlMNEmC/YJjKKykgSfc/AwSejx2sE4FFKZ0I2kxRKRenyoWMHRAV49Q==";
+        url = "https://registry.npmjs.org/@graphql-tools/executor-http/-/executor-http-1.0.6.tgz";
+        sha512 = "EKZ6b7EtP+oUs+jG4r5OUYRl4OolcRzQElAZofA4TFCK4k7HxlKh8DAwdD2eZHSt/s8q6uRG1dAE0lqfMAA9qQ==";
       };
     };
-    "@graphql-tools/executor-legacy-ws-1.0.4" = {
+    "@graphql-tools/executor-legacy-ws-1.0.5" = {
       name = "_at_graphql-tools_slash_executor-legacy-ws";
       packageName = "@graphql-tools/executor-legacy-ws";
-      version = "1.0.4";
+      version = "1.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-1.0.4.tgz";
-        sha512 = "b7aGuRekZDS+m3af3BIvMKxu15bmVPMt5eGQVuP2v5pxmbaPTh+iv5mx9b3Plt32z5Ke5tycBnNm5urSFtW8ng==";
+        url = "https://registry.npmjs.org/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-1.0.5.tgz";
+        sha512 = "w54AZ7zkNuvpyV09FH+eGHnnAmaxhBVHg4Yh2ICcsMfRg0brkLt77PlbjBuxZ4HY8XZnKJaYWf+tKazQZtkQtg==";
       };
     };
     "@graphql-tools/graphql-file-loader-6.2.7" = {
@@ -5944,13 +5908,13 @@ let
         sha512 = "FlQC50VELwRxoWUbJMMMs5gG0Dl8BaQYMrXUHTsxwqR7UmksUYnysC21rdousvs6jVZ7pf4unZfZFtBjz+8Edg==";
       };
     };
-    "@graphql-tools/load-8.0.0" = {
+    "@graphql-tools/load-8.0.1" = {
       name = "_at_graphql-tools_slash_load";
       packageName = "@graphql-tools/load";
-      version = "8.0.0";
+      version = "8.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/load/-/load-8.0.0.tgz";
-        sha512 = "Cy874bQJH0FP2Az7ELPM49iDzOljQmK1PPH6IuxsWzLSTxwTqd8dXA09dcVZrI7/LsN26heTY2R8q2aiiv0GxQ==";
+        url = "https://registry.npmjs.org/@graphql-tools/load/-/load-8.0.1.tgz";
+        sha512 = "qSMsKngJhDqRbuWyo3NvakEFqFL6+eSjy8ooJ1o5qYD26N7dqXkKzIMycQsX7rBK19hOuINAUSaRcVWH6hTccw==";
       };
     };
     "@graphql-tools/merge-6.2.17" = {
@@ -5980,13 +5944,13 @@ let
         sha512 = "XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==";
       };
     };
-    "@graphql-tools/merge-9.0.0" = {
+    "@graphql-tools/merge-9.0.1" = {
       name = "_at_graphql-tools_slash_merge";
       packageName = "@graphql-tools/merge";
-      version = "9.0.0";
+      version = "9.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.0.tgz";
-        sha512 = "J7/xqjkGTTwOJmaJQJ2C+VDBDOWJL3lKrHJN4yMaRLAJH3PosB7GiPRaSDZdErs0+F77sH2MKs2haMMkywzx7Q==";
+        url = "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.1.tgz";
+        sha512 = "hIEExWO9fjA6vzsVjJ3s0cCQ+Q/BEeMVJZtMXd7nbaVefVy0YDyYlEkeoYYNV3NVVvu1G9lr6DM1Qd0DGo9Caw==";
       };
     };
     "@graphql-tools/mock-8.7.20" = {
@@ -5998,13 +5962,13 @@ let
         sha512 = "ljcHSJWjC/ZyzpXd5cfNhPI7YljRVvabKHPzKjEs5ElxWu2cdlLGvyNYepApXDsM/OJG/2xuhGM+9GWu5gEAPQ==";
       };
     };
-    "@graphql-tools/schema-10.0.0" = {
+    "@graphql-tools/schema-10.0.2" = {
       name = "_at_graphql-tools_slash_schema";
       packageName = "@graphql-tools/schema";
-      version = "10.0.0";
+      version = "10.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.0.tgz";
-        sha512 = "kf3qOXMFcMs2f/S8Y3A8fm/2w+GaHAkfr3Gnhh2LOug/JgpY/ywgFVxO3jOeSpSEdoYcDKLcXVjMigNbY4AdQg==";
+        url = "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.2.tgz";
+        sha512 = "TbPsIZnWyDCLhgPGnDjt4hosiNU2mF/rNtSk5BVaXWnZqvKJ6gzJV4fcHcvhRIwtscDMW2/YTnK6dLVnk8pc4w==";
       };
     };
     "@graphql-tools/schema-7.1.5" = {
@@ -6043,22 +6007,22 @@ let
         sha512 = "DSDrbhQIv7fheQ60pfDpGD256ixUQIR6Hhf9Z5bRjVkXOCvO5XrkwoWLiU7iHL81GB1r0Ba31bf+sl+D4nyyfw==";
       };
     };
-    "@graphql-tools/url-loader-8.0.0" = {
+    "@graphql-tools/url-loader-8.0.1" = {
       name = "_at_graphql-tools_slash_url-loader";
       packageName = "@graphql-tools/url-loader";
-      version = "8.0.0";
+      version = "8.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-8.0.0.tgz";
-        sha512 = "rPc9oDzMnycvz+X+wrN3PLrhMBQkG4+sd8EzaFN6dypcssiefgWKToXtRKI8HHK68n2xEq1PyrOpkjHFJB+GwA==";
+        url = "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-8.0.1.tgz";
+        sha512 = "B2k8KQEkEQmfV1zhurT5GLoXo8jbXP+YQHUayhCSxKYlRV7j/1Fhp1b21PDM8LXIDGlDRXaZ0FbWKOs7eYXDuQ==";
       };
     };
-    "@graphql-tools/utils-10.0.8" = {
+    "@graphql-tools/utils-10.0.12" = {
       name = "_at_graphql-tools_slash_utils";
       packageName = "@graphql-tools/utils";
-      version = "10.0.8";
+      version = "10.0.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.8.tgz";
-        sha512 = "yjyA8ycSa1WRlJqyX/aLqXeE5DvF/H02+zXMUFnCzIDrj0UvLMUrxhmVFnMK0Q2n3bh4uuTeY3621m5za9ovXw==";
+        url = "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.12.tgz";
+        sha512 = "+yS1qlFwXlwU3Gv8ek/h2aJ95quog4yF22haC11M0zReMSTddbGJZ5yXKkE3sXoY2BcL1utilSFjylJ9uXpSNQ==";
       };
     };
     "@graphql-tools/utils-6.2.4" = {
@@ -6169,13 +6133,13 @@ let
         sha512 = "7TyMjRrZZMBPa+/5Y8lN0iyvUU/01PeMGX2+RE7cQWpEUIcb4QotzUObFkJDejj/HUH4qjP/eQ0gzzKs2f+6Yw==";
       };
     };
-    "@hpcc-js/wasm-2.14.1" = {
+    "@hpcc-js/wasm-2.15.3" = {
       name = "_at_hpcc-js_slash_wasm";
       packageName = "@hpcc-js/wasm";
-      version = "2.14.1";
+      version = "2.15.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@hpcc-js/wasm/-/wasm-2.14.1.tgz";
-        sha512 = "ncPvj0dEjoye8jD1NAwdThXlZ5mpuGRyRwaNWU6JVBgyT8TewVDmG+RAOXPysyaP1Ui8Lm7562W4KawZtPwa1A==";
+        url = "https://registry.npmjs.org/@hpcc-js/wasm/-/wasm-2.15.3.tgz";
+        sha512 = "enmVW4APrv6jBCRP5V/WdIjYvxidNgBbgdWOdLpiygoE0g0ZurM1qsysBo4TbZfdS81SCdkjRSU/URWf+gpQUA==";
       };
     };
     "@httptoolkit/websocket-stream-6.0.1" = {
@@ -6736,85 +6700,85 @@ let
         sha512 = "qqNS/YD0Nck5wtQLCPHAfGVgWbbGafxSPjNh0ekYPFSNNqnDH2kamnduzYly8IiADmeVx/MfAE1njMEjVeHTMA==";
       };
     };
-    "@joplin/fork-htmlparser2-4.1.49" = {
+    "@joplin/fork-htmlparser2-4.1.50" = {
       name = "_at_joplin_slash_fork-htmlparser2";
       packageName = "@joplin/fork-htmlparser2";
-      version = "4.1.49";
+      version = "4.1.50";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@joplin/fork-htmlparser2/-/fork-htmlparser2-4.1.49.tgz";
-        sha512 = "ouGO/xiSc1GP8QwjdZ0oUasIclany07cA8+YE1RYOWUPqe9g6hI3ogOmhFAbEK3Q8Ie8YuCw+9Oj+WwVd5sq0w==";
+        url = "https://registry.npmjs.org/@joplin/fork-htmlparser2/-/fork-htmlparser2-4.1.50.tgz";
+        sha512 = "wA2NE1/BhFWn4jYW07J/XOCblp+PnNoqcil82WkYvfJVxspje+pGToB99aH682BOGb/GIopC6i+UMphpvwj0hQ==";
       };
     };
-    "@joplin/fork-sax-1.2.53" = {
+    "@joplin/fork-sax-1.2.54" = {
       name = "_at_joplin_slash_fork-sax";
       packageName = "@joplin/fork-sax";
-      version = "1.2.53";
+      version = "1.2.54";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@joplin/fork-sax/-/fork-sax-1.2.53.tgz";
-        sha512 = "uyFQjVypfb7q4IzVT0NzO6qnwanpLSIqAeUobZO4/+UxPKRef0IB2Zou4UmYQWnAs06VdbTLoKIDQXE3IKgowA==";
+        url = "https://registry.npmjs.org/@joplin/fork-sax/-/fork-sax-1.2.54.tgz";
+        sha512 = "aruagwcNB2GZZ1eF3zoj2aeAybH6zuaRqnlmZm2Mk2Sy6F7mmXD/yjEUgs8UK5QvE4HCrS/uZ077DARK4J0c0A==";
       };
     };
-    "@joplin/fork-uslug-1.0.14" = {
+    "@joplin/fork-uslug-1.0.15" = {
       name = "_at_joplin_slash_fork-uslug";
       packageName = "@joplin/fork-uslug";
-      version = "1.0.14";
+      version = "1.0.15";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@joplin/fork-uslug/-/fork-uslug-1.0.14.tgz";
-        sha512 = "sy6/DvgjOC8SmEjSOv/UfOa8WnJY0G1kWH8wVLTay+5ScnqvB8k8yakYIg4iVI5U696WYj+OsnoVQm8tN2tF5w==";
+        url = "https://registry.npmjs.org/@joplin/fork-uslug/-/fork-uslug-1.0.15.tgz";
+        sha512 = "J/9y01glxS/mU0c81J/iX1apbQiZrBy58pWzQKotpZ7nFKIaFsJzDvibL0UYZfgTRs6FzM/4wE7g0Uqe3I/ZPQ==";
       };
     };
-    "@joplin/htmlpack-2.13.3" = {
+    "@joplin/htmlpack-2.13.4" = {
       name = "_at_joplin_slash_htmlpack";
       packageName = "@joplin/htmlpack";
-      version = "2.13.3";
+      version = "2.13.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@joplin/htmlpack/-/htmlpack-2.13.3.tgz";
-        sha512 = "WOKFpDMJy4NaGXBclEqkk0JreSsjmWKkiit1iK4dPLwkwnOOfNuCfCfzaU8Z+F52A/BJEPQhrQg6ABbX7HIwkA==";
+        url = "https://registry.npmjs.org/@joplin/htmlpack/-/htmlpack-2.13.4.tgz";
+        sha512 = "K4WmVIK+tLV5jLn0qoZUUHK8dwXhDU25vY4C20vMkncRM6JnRgRVGbd8iNQTQo04BY9KAB+C2mjJ1OKnwDbGLg==";
       };
     };
-    "@joplin/lib-2.13.3" = {
+    "@joplin/lib-2.13.4" = {
       name = "_at_joplin_slash_lib";
       packageName = "@joplin/lib";
-      version = "2.13.3";
+      version = "2.13.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@joplin/lib/-/lib-2.13.3.tgz";
-        sha512 = "ToZD39aPkrxABh5QevHPmDxtqliolSUj2y3lig/vMQwHPlkybYT+ySgpLaBG9sxBkh2abVZJcqkviujhs4JjIg==";
+        url = "https://registry.npmjs.org/@joplin/lib/-/lib-2.13.4.tgz";
+        sha512 = "QVbYwM+VT1B4g/th5w+nxWRhsghHp+/41iPaJKViEcBJFQUWUDjxNzKpvuxgJ5E2WHF3LD0/09pSgmYONMI2Vg==";
       };
     };
-    "@joplin/renderer-2.13.3" = {
+    "@joplin/renderer-2.13.4" = {
       name = "_at_joplin_slash_renderer";
       packageName = "@joplin/renderer";
-      version = "2.13.3";
+      version = "2.13.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@joplin/renderer/-/renderer-2.13.3.tgz";
-        sha512 = "LANLSOgVK/fcdfDDUGgnjGX2dNYgOR6U8h6BIF0SvnF38WakAZH1T1Ah8UnPWcWRcrXN5AkA/wR3wPM34Tk5kQ==";
+        url = "https://registry.npmjs.org/@joplin/renderer/-/renderer-2.13.4.tgz";
+        sha512 = "EgkNIpvZr8MHHcZBJxQjQDRk1snhyTZcNrqLiw0whr49EtsYk0MhFMEwWGhMQI56COQfHMgeK/woCvMaICSH5Q==";
       };
     };
-    "@joplin/turndown-4.0.71" = {
+    "@joplin/turndown-4.0.72" = {
       name = "_at_joplin_slash_turndown";
       packageName = "@joplin/turndown";
-      version = "4.0.71";
+      version = "4.0.72";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@joplin/turndown/-/turndown-4.0.71.tgz";
-        sha512 = "lnD6Z6lvjesPKWI/rZwkaFouSkSR9oAvAIQfTGzA30PB+DjaYxUbUvkm9dr2MrWNSZmCIyup9KuMNoPHgkSc7w==";
+        url = "https://registry.npmjs.org/@joplin/turndown/-/turndown-4.0.72.tgz";
+        sha512 = "FEfb4vunyMc574kIXoQTSgWY3DO+OKp9ljYhJLTh6fOeySHNGyAaQSeFcsqJCuMcssmfTlOuKYVOQRA8Louc2g==";
       };
     };
-    "@joplin/turndown-plugin-gfm-1.0.53" = {
+    "@joplin/turndown-plugin-gfm-1.0.54" = {
       name = "_at_joplin_slash_turndown-plugin-gfm";
       packageName = "@joplin/turndown-plugin-gfm";
-      version = "1.0.53";
+      version = "1.0.54";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@joplin/turndown-plugin-gfm/-/turndown-plugin-gfm-1.0.53.tgz";
-        sha512 = "oqwLDuEU9iDCY9py3cSO4dYWmtdq1/yjVh4Pgl68Vtb0HDx/eEtHgI1JmQevo8Jzi92sMXI5QA2Gw892YygUXg==";
+        url = "https://registry.npmjs.org/@joplin/turndown-plugin-gfm/-/turndown-plugin-gfm-1.0.54.tgz";
+        sha512 = "QoNPwP7CDJOn/pfehGrLTKl6fgcl/VIXQP1bNqm8tfx3bx3uedyjFE75ef8yRGwNIe+ukqPbDFo+EVBc7rE4+Q==";
       };
     };
-    "@joplin/utils-2.13.3" = {
+    "@joplin/utils-2.13.4" = {
       name = "_at_joplin_slash_utils";
       packageName = "@joplin/utils";
-      version = "2.13.3";
+      version = "2.13.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@joplin/utils/-/utils-2.13.3.tgz";
-        sha512 = "/Q1yl64gsV9c6X8uXTGgXsFBR/qW9qR754BGDIlXrpffL8lzfI69BM076gf32TH3iH/wME3LApmE0BCdMKHadQ==";
+        url = "https://registry.npmjs.org/@joplin/utils/-/utils-2.13.4.tgz";
+        sha512 = "jkWCfxLgUXpqBLMUnvuWnX0tDQyCRg3/SW9ITaJhu3QJFs653yfKIEZPztlxWapvmBM71SSJRJgBM+M7rTSnqw==";
       };
     };
     "@josephg/resolvable-1.0.1" = {
@@ -6898,13 +6862,13 @@ let
         sha512 = "4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==";
       };
     };
-    "@jsdoc/salty-0.2.6" = {
+    "@jsdoc/salty-0.2.7" = {
       name = "_at_jsdoc_slash_salty";
       packageName = "@jsdoc/salty";
-      version = "0.2.6";
+      version = "0.2.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.6.tgz";
-        sha512 = "aA+awb5yoml8TQ3CzI5Ue7sM3VMRC4l1zJJW4fgZ8OCL1wshJZhNzaf0PL85DSnOUw6QuFgeHGD/eq/xwwAF2g==";
+        url = "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.7.tgz";
+        sha512 = "mh8LbS9d4Jq84KLw8pzho7XC2q2/IJGiJss3xwRoLD1A+EE16SjN4PfaG4jRCzKegTFLlN0Zd8SdUPE6XdoPFg==";
       };
     };
     "@jsep-plugin/regex-1.0.3" = {
@@ -6925,22 +6889,31 @@ let
         sha512 = "qtLGzCNzPVJ3kdH6/zoLWDPjauHIKiLSBAR71Wa0+PWvGA8wODUQvRgxtpUA5YqAYL3CQ8S4qXhd/9WuWTZirg==";
       };
     };
-    "@jsii/check-node-1.92.0" = {
+    "@jsii/check-node-1.93.0" = {
       name = "_at_jsii_slash_check-node";
       packageName = "@jsii/check-node";
-      version = "1.92.0";
+      version = "1.93.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jsii/check-node/-/check-node-1.92.0.tgz";
-        sha512 = "MQnFvDIn/VOz4FzchobZ4dfrl6qfuZIlYviNbGXhPMSeJ92BVB2F+NEyem9Sg/Csy2ehhtO1FGaUj4mO9/7Ntg==";
+        url = "https://registry.npmjs.org/@jsii/check-node/-/check-node-1.93.0.tgz";
+        sha512 = "NLn1Js6wEG2hYjH7gE5Q8s/hPlp3I+KhK/T8ykGdYVod7iODnk/0QVSZsk2iEyuw8NzvvgXUDBWreadUIWSz+g==";
       };
     };
-    "@jsii/spec-1.92.0" = {
+    "@jsii/spec-1.93.0" = {
       name = "_at_jsii_slash_spec";
       packageName = "@jsii/spec";
-      version = "1.92.0";
+      version = "1.93.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jsii/spec/-/spec-1.93.0.tgz";
+        sha512 = "PIXcTHUsFOoxSE7KMpJ3iJ3iYGSo2x46ZX4bHDDD6C7M3ij+7Z3Ujumg/OsIrESCHKWXGXlgl9EmkNJraeYkRQ==";
+      };
+    };
+    "@kamilkisiela/fast-url-parser-1.1.4" = {
+      name = "_at_kamilkisiela_slash_fast-url-parser";
+      packageName = "@kamilkisiela/fast-url-parser";
+      version = "1.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jsii/spec/-/spec-1.92.0.tgz";
-        sha512 = "6jbwQ2uCVOUq6eddKQG/cPzuUsdJwaszQstTZtruhhjWNuoC4CjT5eHlzjeBqtxQZpGiKkRRwPHb1bCEGgffxA==";
+        url = "https://registry.npmjs.org/@kamilkisiela/fast-url-parser/-/fast-url-parser-1.1.4.tgz";
+        sha512 = "gbkePEBupNydxCelHCESvFSFM8XPh1Zs/OAVRW/rKpEqPAl5PbOM90Si8mv9bvnR53uPD2s/FiRxdvSejpRJew==";
       };
     };
     "@kwsites/file-exists-1.1.1" = {
@@ -6970,31 +6943,22 @@ let
         sha512 = "Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==";
       };
     };
-    "@lerna/child-process-7.4.2" = {
-      name = "_at_lerna_slash_child-process";
-      packageName = "@lerna/child-process";
-      version = "7.4.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/child-process/-/child-process-7.4.2.tgz";
-        sha512 = "je+kkrfcvPcwL5Tg8JRENRqlbzjdlZXyaR88UcnCdNW0AJ1jX9IfHRys1X7AwSroU2ug8ESNC+suoBw1vX833Q==";
-      };
-    };
-    "@lerna/create-7.4.2" = {
+    "@lerna/create-8.0.2" = {
       name = "_at_lerna_slash_create";
       packageName = "@lerna/create";
-      version = "7.4.2";
+      version = "8.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/create/-/create-7.4.2.tgz";
-        sha512 = "1wplFbQ52K8E/unnqB0Tq39Z4e+NEoNrpovEnl6GpsTUrC6WDp8+w0Le2uCBV0hXyemxChduCkLz4/y1H1wTeg==";
+        url = "https://registry.npmjs.org/@lerna/create/-/create-8.0.2.tgz";
+        sha512 = "AueSlfiYXqEmy9/EIc17mjlaHFuv734dfgVBegyoefIA7hdeoExtsXnACWf8Tw5af6gwyTL3KAp6QQyc1sTuZQ==";
       };
     };
-    "@lezer/common-1.1.1" = {
+    "@lezer/common-1.2.0" = {
       name = "_at_lezer_slash_common";
       packageName = "@lezer/common";
-      version = "1.1.1";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lezer/common/-/common-1.1.1.tgz";
-        sha512 = "aAPB9YbvZHqAW+bIwiuuTDGB4DG0sYNRObGLxud8cW7osw1ZQxfDuTZ8KQiqfZ0QJGcR34CvpTMDXEyo/+Htgg==";
+        url = "https://registry.npmjs.org/@lezer/common/-/common-1.2.0.tgz";
+        sha512 = "Wmvlm4q6tRpwiy20TnB3yyLTZim38Tkc50dPY8biQRwqE+ati/wD84rm3N15hikvdT4uSg9phs9ubjvcLmkpKg==";
       };
     };
     "@lezer/lr-1.3.14" = {
@@ -7168,13 +7132,13 @@ let
         sha512 = "W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA==";
       };
     };
-    "@microsoft/rush-lib-5.111.0" = {
+    "@microsoft/rush-lib-5.112.2" = {
       name = "_at_microsoft_slash_rush-lib";
       packageName = "@microsoft/rush-lib";
-      version = "5.111.0";
+      version = "5.112.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@microsoft/rush-lib/-/rush-lib-5.111.0.tgz";
-        sha512 = "lvrc6L2ByjVlDRSQ1iSHyCextvRWdb5m894qUSiQJnpTUlkzFnZ5AYGpVgnIjxr6L1WuXvjEWtNnl8QLial7wA==";
+        url = "https://registry.npmjs.org/@microsoft/rush-lib/-/rush-lib-5.112.2.tgz";
+        sha512 = "JcLIyxK8uVsB3P0xWBwTFXAN3gLxTio38m0hrAdNPK07eoVV9RdIOMMNeq9AbdUv4lTCVCP46Z6lTmKgj65d1g==";
       };
     };
     "@mischnic/json-sourcemap-0.1.1" = {
@@ -7186,6 +7150,42 @@ let
         sha512 = "iA7+tyVqfrATAIsIRWQG+a7ZLLD0VaOCKV2Wd/v4mqIU3J9c4jx9p7S0nw1XH3gJCKNBOOwACOPYYSUu9pgT+w==";
       };
     };
+    "@module-federation/runtime-0.0.0-next-20231225095220" = {
+      name = "_at_module-federation_slash_runtime";
+      packageName = "@module-federation/runtime";
+      version = "0.0.0-next-20231225095220";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@module-federation/runtime/-/runtime-0.0.0-next-20231225095220.tgz";
+        sha512 = "tsST3igVpXKclGpqq2NNm1wzROks29PGte7GCgSPhoaFVNg076Nl8XzFNPGflCF6g/z13oFw/vahYpBAHkEZgQ==";
+      };
+    };
+    "@module-federation/runtime-tools-0.0.0-next-20231225095220" = {
+      name = "_at_module-federation_slash_runtime-tools";
+      packageName = "@module-federation/runtime-tools";
+      version = "0.0.0-next-20231225095220";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@module-federation/runtime-tools/-/runtime-tools-0.0.0-next-20231225095220.tgz";
+        sha512 = "Rn4ntKEWR5FdT3IA2gd5vw71GhXiYbNev2F54iBiWHsF0z+J41lHQhNDXDAoTeNmJs64e9dsPhBM2U0VZKo8uA==";
+      };
+    };
+    "@module-federation/sdk-0.0.0-next-20231225095220" = {
+      name = "_at_module-federation_slash_sdk";
+      packageName = "@module-federation/sdk";
+      version = "0.0.0-next-20231225095220";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@module-federation/sdk/-/sdk-0.0.0-next-20231225095220.tgz";
+        sha512 = "0vS5UXCkbKyotZIXAsF+mrL8PQ+xKmKfaDYHdBxXR4kyGSRjSRRokSKkXZNVfPEhy1f1z/oAgUo5AZoOisrrQA==";
+      };
+    };
+    "@module-federation/webpack-bundler-runtime-0.0.0-next-20231225095220" = {
+      name = "_at_module-federation_slash_webpack-bundler-runtime";
+      packageName = "@module-federation/webpack-bundler-runtime";
+      version = "0.0.0-next-20231225095220";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@module-federation/webpack-bundler-runtime/-/webpack-bundler-runtime-0.0.0-next-20231225095220.tgz";
+        sha512 = "xzz2FUvj+/TMl2ua/EcFaiYmH54XedH5fU7zQ1/EBZDrt26uJR4vabmvPx3Eb06KfDEcGB2/zkzZNzcT8572CQ==";
+      };
+    };
     "@msgpack/msgpack-2.8.0" = {
       name = "_at_msgpack_slash_msgpack";
       packageName = "@msgpack/msgpack";
@@ -7222,58 +7222,58 @@ let
         sha512 = "fL1wpr8hhD5gT2dA1qifeVaoDFlQR5es8tFuKqjHX+kdOtdNHnxkVZbtIrR2rxnMFvehkjaZRNV2H/gPXlb0hw==";
       };
     };
-    "@node-red/editor-api-3.1.0" = {
+    "@node-red/editor-api-3.1.3" = {
       name = "_at_node-red_slash_editor-api";
       packageName = "@node-red/editor-api";
-      version = "3.1.0";
+      version = "3.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/editor-api/-/editor-api-3.1.0.tgz";
-        sha512 = "AUEw0KEelxcDKFsjTDWnTXHycbh75htxWWBgGuMsHKA/0aWLeiLOjTrdyLZmDqV/ytfxJ4ndBl9HO4T/YYKJdw==";
+        url = "https://registry.npmjs.org/@node-red/editor-api/-/editor-api-3.1.3.tgz";
+        sha512 = "Waj2cln+OtrrfgKq38JaGbfE0e9ntP5NbDQCxyh1s0dM/9SUrS+LDEuB50Q6CFzKO8JT6VuX2HC3u62slRy/Hw==";
       };
     };
-    "@node-red/editor-client-3.1.0" = {
+    "@node-red/editor-client-3.1.3" = {
       name = "_at_node-red_slash_editor-client";
       packageName = "@node-red/editor-client";
-      version = "3.1.0";
+      version = "3.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/editor-client/-/editor-client-3.1.0.tgz";
-        sha512 = "4hLeDNkNh+GPqF6XNJo+kDY8JkmEwfiVEbd0BEagmlf/Kcu7rHjGJzJceqGxwNXy4MS5rINsTHjziwbTgd/MXw==";
+        url = "https://registry.npmjs.org/@node-red/editor-client/-/editor-client-3.1.3.tgz";
+        sha512 = "eBtkXV6K46v1cc9glOKYRr7vNZLUJoFiR7c4Vl8g+1JLjNC+E0ZFwZ+E731VkXDONNn+gN2JsP61XuTgOg15Jg==";
       };
     };
-    "@node-red/nodes-3.1.0" = {
+    "@node-red/nodes-3.1.3" = {
       name = "_at_node-red_slash_nodes";
       packageName = "@node-red/nodes";
-      version = "3.1.0";
+      version = "3.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/nodes/-/nodes-3.1.0.tgz";
-        sha512 = "GxviusR8TY39j56KSOrBVj3/Jscs/MCn0+TDE0/9qI5K64+V4D52xwhwC5AMVWDUVB/xeXJRk+W6yOIcQb9FvQ==";
+        url = "https://registry.npmjs.org/@node-red/nodes/-/nodes-3.1.3.tgz";
+        sha512 = "df69zxOLzoQ4dud+O8FWDf5zGVzNFRintveIVBDd+cTvOLClzrRp52H7JBCEzRwZJk6NM3eevO7CMG98BRHSWA==";
       };
     };
-    "@node-red/registry-3.1.0" = {
+    "@node-red/registry-3.1.3" = {
       name = "_at_node-red_slash_registry";
       packageName = "@node-red/registry";
-      version = "3.1.0";
+      version = "3.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/registry/-/registry-3.1.0.tgz";
-        sha512 = "FMyDZ6kmB8EDaFLvA+vaLlz8wZVnlUMdahGpm+g8mDPIzN9Qs2pEEFfKxWy1146nzNzB4PSqvmxgp/9lsYT/Pg==";
+        url = "https://registry.npmjs.org/@node-red/registry/-/registry-3.1.3.tgz";
+        sha512 = "1vkBd438Mixg9VoVcNmX87W9mqc5ix1uCgSnE64atH9SExWzt72h+uoy+bFEQefuWOJ27hUcXZQ2SgBaUgZuCg==";
       };
     };
-    "@node-red/runtime-3.1.0" = {
+    "@node-red/runtime-3.1.3" = {
       name = "_at_node-red_slash_runtime";
       packageName = "@node-red/runtime";
-      version = "3.1.0";
+      version = "3.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/runtime/-/runtime-3.1.0.tgz";
-        sha512 = "KtX3Jua2qu4PwPhBlUGN+QQBwibjx1vyBRaKc4SlZeJos1V5a6MOpYS91soUfIpsJJBHVzisz69SZiRrmgXIHw==";
+        url = "https://registry.npmjs.org/@node-red/runtime/-/runtime-3.1.3.tgz";
+        sha512 = "tW1pOnzbNUgnHIop7eHiEGw6G2dR38bc0SRIp+9go2ewVHuIfpRBWlxyD6zpInJZ2Mszc0FrG7H5+o8lGwFlng==";
       };
     };
-    "@node-red/util-3.1.0" = {
+    "@node-red/util-3.1.3" = {
       name = "_at_node-red_slash_util";
       packageName = "@node-red/util";
-      version = "3.1.0";
+      version = "3.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/util/-/util-3.1.0.tgz";
-        sha512 = "VGU0rpt8r/OWeq8KxK9ML9MCi3/sm4Y82nznrUCET4STl+BUA5AtXsjhjffOB7gimAlsGTcmljZHqeWkEWn4oQ==";
+        url = "https://registry.npmjs.org/@node-red/util/-/util-3.1.3.tgz";
+        sha512 = "RWr5uY/xyL8NRFTR+Q8aniwce6cJQXsFZxniSyVxRwZJCfUaugR3juwOQMHq8adw9G1Og3lw1hkJ0uGceMfnKg==";
       };
     };
     "@nodelib/fs.scandir-2.1.5" = {
@@ -7321,13 +7321,13 @@ let
         sha512 = "/fQjIbuNVIT/PbXvw178Tm97bxV0E0nVUFKHivMKtSI2pcs8xKdaWkHJxf9dTI0G/y5hp/KuCvgcUu5HwAtI1w==";
       };
     };
-    "@npmcli/config-8.0.2" = {
+    "@npmcli/config-8.0.3" = {
       name = "_at_npmcli_slash_config";
       packageName = "@npmcli/config";
-      version = "8.0.2";
+      version = "8.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/config/-/config-8.0.2.tgz";
-        sha512 = "g+DAp7bUsiUDynRI4jTO0wPAXJpy3puhovHHg8S4iq54NF8zd00588GJOm5ARxDaDUdKCUYu9E5fNc+esYl5JA==";
+        url = "https://registry.npmjs.org/@npmcli/config/-/config-8.0.3.tgz";
+        sha512 = "rqRX7/UORvm2YRImY67kyfwD9rpi5+KXXb1j/cpTUKRcUqvpJ9/PMMc7Vv57JVqmrFj8siBBFEmXI3Gg7/TonQ==";
       };
     };
     "@npmcli/fs-1.1.1" = {
@@ -7357,22 +7357,13 @@ let
         sha512 = "7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==";
       };
     };
-    "@npmcli/git-4.1.0" = {
+    "@npmcli/git-5.0.4" = {
       name = "_at_npmcli_slash_git";
       packageName = "@npmcli/git";
-      version = "4.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/git/-/git-4.1.0.tgz";
-        sha512 = "9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==";
-      };
-    };
-    "@npmcli/git-5.0.3" = {
-      name = "_at_npmcli_slash_git";
-      packageName = "@npmcli/git";
-      version = "5.0.3";
+      version = "5.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/git/-/git-5.0.3.tgz";
-        sha512 = "UZp9NwK+AynTrKvHn5k3KviW/hA5eENmFsu3iAPe7sWRt0lFUdsY/wXIYjpDFe7cdSNwOIzbObfwgt6eL5/2zw==";
+        url = "https://registry.npmjs.org/@npmcli/git/-/git-5.0.4.tgz";
+        sha512 = "nr6/WezNzuYUppzXRaYu/W4aT5rLxdXqEFupbh6e/ovlYFQ8hpu1UUPV3Ir/YTl+74iXl2ZOMlGzudh9ZPUchQ==";
       };
     };
     "@npmcli/installed-package-contents-2.0.2" = {
@@ -7429,67 +7420,58 @@ let
         sha512 = "gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==";
       };
     };
-    "@npmcli/promise-spawn-6.0.2" = {
+    "@npmcli/promise-spawn-7.0.1" = {
       name = "_at_npmcli_slash_promise-spawn";
       packageName = "@npmcli/promise-spawn";
-      version = "6.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-6.0.2.tgz";
-        sha512 = "gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==";
-      };
-    };
-    "@npmcli/promise-spawn-7.0.0" = {
-      name = "_at_npmcli_slash_promise-spawn";
-      packageName = "@npmcli/promise-spawn";
-      version = "7.0.0";
+      version = "7.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.0.tgz";
-        sha512 = "wBqcGsMELZna0jDblGd7UXgOby45TQaMWmbFwWX+SEotk4HV6zG2t6rT9siyLhPk4P6YYqgfL1UO8nMWDBVJXQ==";
+        url = "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.1.tgz";
+        sha512 = "P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg==";
       };
     };
-    "@npmcli/run-script-6.0.2" = {
+    "@npmcli/run-script-7.0.2" = {
       name = "_at_npmcli_slash_run-script";
       packageName = "@npmcli/run-script";
-      version = "6.0.2";
+      version = "7.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.2.tgz";
-        sha512 = "NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==";
+        url = "https://registry.npmjs.org/@npmcli/run-script/-/run-script-7.0.2.tgz";
+        sha512 = "Omu0rpA8WXvcGeY6DDzyRoY1i5DkCBkzyJ+m2u7PD6quzb0TvSqdIPOkTn8ZBOj7LbbcbMfZ3c5skwSu6m8y2w==";
       };
     };
-    "@npmcli/run-script-7.0.2" = {
+    "@npmcli/run-script-7.0.3" = {
       name = "_at_npmcli_slash_run-script";
       packageName = "@npmcli/run-script";
-      version = "7.0.2";
+      version = "7.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/run-script/-/run-script-7.0.2.tgz";
-        sha512 = "Omu0rpA8WXvcGeY6DDzyRoY1i5DkCBkzyJ+m2u7PD6quzb0TvSqdIPOkTn8ZBOj7LbbcbMfZ3c5skwSu6m8y2w==";
+        url = "https://registry.npmjs.org/@npmcli/run-script/-/run-script-7.0.3.tgz";
+        sha512 = "ZMWGLHpzMq3rBGIwPyeaoaleaLMvrBrH8nugHxTi5ACkJZXTxXPtVuEH91ifgtss5hUwJQ2VDnzDBWPmz78rvg==";
       };
     };
-    "@nrwl/devkit-16.10.0" = {
+    "@nrwl/devkit-17.2.8" = {
       name = "_at_nrwl_slash_devkit";
       packageName = "@nrwl/devkit";
-      version = "16.10.0";
+      version = "17.2.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@nrwl/devkit/-/devkit-16.10.0.tgz";
-        sha512 = "fRloARtsDQoQgQ7HKEy0RJiusg/HSygnmg4gX/0n/Z+SUS+4KoZzvHjXc6T5ZdEiSjvLypJ+HBM8dQzIcVACPQ==";
+        url = "https://registry.npmjs.org/@nrwl/devkit/-/devkit-17.2.8.tgz";
+        sha512 = "l2dFy5LkWqSA45s6pee6CoqJeluH+sjRdVnAAQfjLHRNSx6mFAKblyzq5h1f4P0EUCVVVqLs+kVqmNx5zxYqvw==";
       };
     };
-    "@nrwl/tao-16.10.0" = {
+    "@nrwl/tao-17.2.8" = {
       name = "_at_nrwl_slash_tao";
       packageName = "@nrwl/tao";
-      version = "16.10.0";
+      version = "17.2.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@nrwl/tao/-/tao-16.10.0.tgz";
-        sha512 = "QNAanpINbr+Pod6e1xNgFbzK1x5wmZl+jMocgiEFXZ67KHvmbD6MAQQr0MMz+GPhIu7EE4QCTLTyCEMlAG+K5Q==";
+        url = "https://registry.npmjs.org/@nrwl/tao/-/tao-17.2.8.tgz";
+        sha512 = "Qpk5YKeJ+LppPL/wtoDyNGbJs2MsTi6qyX/RdRrEc8lc4bk6Cw3Oul1qTXCI6jT0KzTz+dZtd0zYD/G7okkzvg==";
       };
     };
-    "@nx/devkit-16.10.0" = {
+    "@nx/devkit-17.2.8" = {
       name = "_at_nx_slash_devkit";
       packageName = "@nx/devkit";
-      version = "16.10.0";
+      version = "17.2.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@nx/devkit/-/devkit-16.10.0.tgz";
-        sha512 = "IvKQqRJFDDiaj33SPfGd3ckNHhHi6ceEoqCbAP4UuMXOPPVOX6H0KVk+9tknkPb48B7jWIw6/AgOeWkBxPRO5w==";
+        url = "https://registry.npmjs.org/@nx/devkit/-/devkit-17.2.8.tgz";
+        sha512 = "6LtiQihtZwqz4hSrtT5cCG5XMCWppG6/B8c1kNksg97JuomELlWyUyVF+sxmeERkcLYFaKPTZytP0L3dmCFXaw==";
       };
     };
     "@oclif/color-1.0.13" = {
@@ -7537,15 +7519,6 @@ let
         sha512 = "cE3qfHWv8hGRCP31j7fIS7BfCflm/BNZ2HNqHexH+fDrdF2f1D5S8VmXWLC77ffv3oDvWyvE9AZeR0RfmHCCaA==";
       };
     };
-    "@oclif/core-1.23.2" = {
-      name = "_at_oclif_slash_core";
-      packageName = "@oclif/core";
-      version = "1.23.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/core/-/core-1.23.2.tgz";
-        sha512 = "NdaOaUDTRc6g1yTkOAKiEVOiQhc5CNcWNXa0QF4IS4yTjNqp4DOzgtF9Dwe585nPEKzSbTBiz1wyLOa4qIHSRQ==";
-      };
-    };
     "@oclif/core-1.26.2" = {
       name = "_at_oclif_slash_core";
       packageName = "@oclif/core";
@@ -7618,13 +7591,13 @@ let
         sha512 = "l04iSd0xoh/16TGVpXb81Gg3z7tlQGrEup16BrVLsZBK6SEYpYHRJZnM32BwZrHI97ZSFfuSwVlzoo6HdsaK8A==";
       };
     };
-    "@oclif/plugin-autocomplete-1.3.10" = {
+    "@oclif/plugin-autocomplete-2.3.10" = {
       name = "_at_oclif_slash_plugin-autocomplete";
       packageName = "@oclif/plugin-autocomplete";
-      version = "1.3.10";
+      version = "2.3.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/plugin-autocomplete/-/plugin-autocomplete-1.3.10.tgz";
-        sha512 = "oQl7ZqXhXJUOH26mDPcqcMGmcdIoK/uQPSpUBrfLa1iaQ30slTs0T7KOzg+vwKuPqIIF1nTCPuH67lE8GvUPTw==";
+        url = "https://registry.npmjs.org/@oclif/plugin-autocomplete/-/plugin-autocomplete-2.3.10.tgz";
+        sha512 = "Ow1AR8WtjzlyCtiWWPgzMyT8SbcDJFr47009riLioHa+MHX2BCDtVn2DVnN/E6b9JlPV5ptQpjefoRSNWBesmg==";
       };
     };
     "@oclif/plugin-commands-2.2.24" = {
@@ -8059,13 +8032,13 @@ let
         sha512 = "I6LrZvl1FF97FQXPR0iieWQmKnGxYtMbWA1GrAXnLUR+B1Hn2m8KqQNEIlZAucyv00GBgpWkpllmULmZfG8P3g==";
       };
     };
-    "@opentelemetry/core-1.18.1" = {
+    "@opentelemetry/core-1.19.0" = {
       name = "_at_opentelemetry_slash_core";
       packageName = "@opentelemetry/core";
-      version = "1.18.1";
+      version = "1.19.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/core/-/core-1.18.1.tgz";
-        sha512 = "kvnUqezHMhsQvdsnhnqTNfAJs3ox/isB0SVrM1dhVFw7SsB7TstuVa6fgWnN2GdPyilIFLUvvbTZoVRmx6eiRg==";
+        url = "https://registry.npmjs.org/@opentelemetry/core/-/core-1.19.0.tgz";
+        sha512 = "w42AukJh3TP8R0IZZOVJVM/kMWu8g+lm4LzT70WtuKqhwq7KVhcDzZZuZinWZa6TtQCl7Smt2wolEYzpHabOgw==";
       };
     };
     "@opentelemetry/exporter-metrics-otlp-http-0.43.0" = {
@@ -8122,13 +8095,13 @@ let
         sha512 = "M2e5emqg5I7qRKqlzKx0ROkcPyF8PbcSaWEdsm72od9txP7Z/Pl8PDYOyu80xWvbHAWk5mDxOF6v3vNdifzclA==";
       };
     };
-    "@opentelemetry/resources-1.18.1" = {
+    "@opentelemetry/resources-1.19.0" = {
       name = "_at_opentelemetry_slash_resources";
       packageName = "@opentelemetry/resources";
-      version = "1.18.1";
+      version = "1.19.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.18.1.tgz";
-        sha512 = "JjbcQLYMttXcIabflLRuaw5oof5gToYV9fuXbcsoOeQ0BlbwUn6DAZi++PNsSz2jjPeASfDls10iaO/8BRIPRA==";
+        url = "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.19.0.tgz";
+        sha512 = "RgxvKuuMOf7nctOeOvpDjt2BpZvZGr9Y0vf7eGtY5XYZPkh2p7e2qub1S2IArdBMf9kEbz0SfycqCviOu9isqg==";
       };
     };
     "@opentelemetry/sdk-logs-0.43.0" = {
@@ -8167,13 +8140,13 @@ let
         sha512 = "2T5HA1/1iE36Q9eg6D4zYlC4Y4GcycI1J6NsHPKZY9oWfAxWsoYnRlkPfUqyY5XVtocCo/xHpnJvGNHwzT70oQ==";
       };
     };
-    "@opentelemetry/sdk-trace-base-1.18.1" = {
+    "@opentelemetry/sdk-trace-base-1.19.0" = {
       name = "_at_opentelemetry_slash_sdk-trace-base";
       packageName = "@opentelemetry/sdk-trace-base";
-      version = "1.18.1";
+      version = "1.19.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.18.1.tgz";
-        sha512 = "tRHfDxN5dO+nop78EWJpzZwHsN1ewrZRVVwo03VJa3JQZxToRDH29/+MB24+yoa+IArerdr7INFJiX/iN4gjqg==";
+        url = "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.19.0.tgz";
+        sha512 = "+IRvUm+huJn2KqfFW3yW/cjvRwJ8Q7FzYHoUNx5Fr0Lws0LxjMJG1uVB8HDpLwm7mg5XXH2M5MF+0jj5cM8BpQ==";
       };
     };
     "@opentelemetry/semantic-conventions-1.17.0" = {
@@ -8194,409 +8167,409 @@ let
         sha512 = "xbR2U+2YjauIuo42qmE8XyJK6dYeRMLJuOlUP5SO4auET4VtOHOzgkRVOq+Ik18N+Xf3YPcqJs9dZMiDddz1eQ==";
       };
     };
-    "@opentelemetry/semantic-conventions-1.18.1" = {
+    "@opentelemetry/semantic-conventions-1.19.0" = {
       name = "_at_opentelemetry_slash_semantic-conventions";
       packageName = "@opentelemetry/semantic-conventions";
-      version = "1.18.1";
+      version = "1.19.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.18.1.tgz";
-        sha512 = "+NLGHr6VZwcgE/2lw8zDIufOCGnzsA5CbQIMleXZTrgkBd0TanCX+MiDYJ1TOS4KL/Tqk0nFRxawnaYr6pkZkA==";
+        url = "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.19.0.tgz";
+        sha512 = "14jRpC8f5c0gPSwoZ7SbEJni1PqI+AhAE8m1bMz6v+RPM4OlP1PT2UHBJj5Qh/ALLPjhVU/aZUK3YyjTUqqQVg==";
       };
     };
-    "@orval/angular-6.20.0" = {
+    "@orval/angular-6.23.0" = {
       name = "_at_orval_slash_angular";
       packageName = "@orval/angular";
-      version = "6.20.0";
+      version = "6.23.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@orval/angular/-/angular-6.20.0.tgz";
-        sha512 = "BXrK9NCFRw4+IbJUz30npAZQRPG3vpwHcf+tYiwAhFDJQVQOQy4429hLNBc2xPxsCilSQdQ1/by6AaVcTLe3VA==";
+        url = "https://registry.npmjs.org/@orval/angular/-/angular-6.23.0.tgz";
+        sha512 = "Exm5JF4xNzOApPvxi9V8U5nQwjW4ZiJJpNbuiIl/Oy+slcNL7Q1E83JHJ4pHlmzQPeksubpkPe9tsM5/01GbQw==";
       };
     };
-    "@orval/axios-6.20.0" = {
+    "@orval/axios-6.23.0" = {
       name = "_at_orval_slash_axios";
       packageName = "@orval/axios";
-      version = "6.20.0";
+      version = "6.23.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@orval/axios/-/axios-6.20.0.tgz";
-        sha512 = "Dfno2JM2FBKEVlcsI45FfoN6Cygv+Mz6VcXs6ptb+Biy9aUZ5XlWByFwIF/U7XFjV4bWBb6PJHDeBq4dlpplvQ==";
+        url = "https://registry.npmjs.org/@orval/axios/-/axios-6.23.0.tgz";
+        sha512 = "g0RwiY7DCrPHOxMzb1HMEfNc6n/zOBOv1BzGA7k64BQXw2X/ljoJqtyQrUL+lK7Ablh3pL640TrfzW8UMRfdpg==";
       };
     };
-    "@orval/core-6.20.0" = {
+    "@orval/core-6.23.0" = {
       name = "_at_orval_slash_core";
       packageName = "@orval/core";
-      version = "6.20.0";
+      version = "6.23.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@orval/core/-/core-6.20.0.tgz";
-        sha512 = "piX1w6wJSK6FYT1YCG8LCM7rraN3EQ0CUtKIi20UJ7EGBH7ss4OvHRSZMw81SER8zZ4uXlSdGFn5EQ9+8AkD1A==";
+        url = "https://registry.npmjs.org/@orval/core/-/core-6.23.0.tgz";
+        sha512 = "NLuCtabVUbR2XhKywiZ5+qt8vKnkHTd1lnIFhgtm1jFDyUi0p/pIHz33NJ0I94UkEdxlr+2rDiT9g1eSZC7auA==";
       };
     };
-    "@orval/msw-6.20.0" = {
-      name = "_at_orval_slash_msw";
-      packageName = "@orval/msw";
-      version = "6.20.0";
+    "@orval/mock-6.23.0" = {
+      name = "_at_orval_slash_mock";
+      packageName = "@orval/mock";
+      version = "6.23.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@orval/msw/-/msw-6.20.0.tgz";
-        sha512 = "0BGgM97HDv6gfZ9dtcdWx7MBTy/+Mjc5GbG5NE3gmRIl+A7QMRx0vB+0SDMhxg/eKmYNwruxpJeQWAkYHnClNA==";
+        url = "https://registry.npmjs.org/@orval/mock/-/mock-6.23.0.tgz";
+        sha512 = "chkXaQgslDF8KwnNOggc320SFWhv1Wu3EFLJf1cpliaYe9n3alvwKedRoTl3ZxvC8dcG3biOoFz4XGZivXktSQ==";
       };
     };
-    "@orval/query-6.20.0" = {
+    "@orval/query-6.23.0" = {
       name = "_at_orval_slash_query";
       packageName = "@orval/query";
-      version = "6.20.0";
+      version = "6.23.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@orval/query/-/query-6.20.0.tgz";
-        sha512 = "dZ10Mb9qIcIh83OjrjjWtzpQulHQMyYZgX7yG2YIp1MZ2GHEQdJTHgLe8CdnXB9LJqo2En0DzXSZZdWdxYqfHA==";
+        url = "https://registry.npmjs.org/@orval/query/-/query-6.23.0.tgz";
+        sha512 = "SSMj+4I8a9TzHfp0oGWvT7sZSmWrN9pmH/NTU7hgmk5cLS4qghTWL6b+nOfB8WRUOPqltnRu/qgDRHx8/xhZHg==";
       };
     };
-    "@orval/swr-6.20.0" = {
+    "@orval/swr-6.23.0" = {
       name = "_at_orval_slash_swr";
       packageName = "@orval/swr";
-      version = "6.20.0";
+      version = "6.23.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@orval/swr/-/swr-6.20.0.tgz";
-        sha512 = "6TnG72/evQTMoQ+LoVyF/BF4/issxuvpVWJQPKzsrYnyAP5mdyMyTSTmp85R+72VodB00DD6jHdlTu8Rd0NaQw==";
+        url = "https://registry.npmjs.org/@orval/swr/-/swr-6.23.0.tgz";
+        sha512 = "BTcUu7hZ1iqMlAY0fjAAleHTujzItBCpY4k9vyLcwsqS3JUimbYLmbaaTeSlbnGLM7TnpKfy7no4P543tU3J0Q==";
       };
     };
-    "@orval/zod-6.20.0" = {
+    "@orval/zod-6.23.0" = {
       name = "_at_orval_slash_zod";
       packageName = "@orval/zod";
-      version = "6.20.0";
+      version = "6.23.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@orval/zod/-/zod-6.20.0.tgz";
-        sha512 = "6fDfyHEBG/23h3ZTcQ26JFSgj6zJgnhYwZEr1B+zBpLewOYuOo8UAVWvVBLZGg1Mba1KDOmSj8Vfbaug7sGVXg==";
+        url = "https://registry.npmjs.org/@orval/zod/-/zod-6.23.0.tgz";
+        sha512 = "8dxFqj1EhJFWfyxd7xedU2YgXC1O+Y56y4jJ2UiZrwXNTstXiQM6A/C4oizvK2Pb8fHiWwUHjwnchpait+KBkA==";
       };
     };
-    "@parcel/bundler-default-2.10.3" = {
+    "@parcel/bundler-default-2.11.0" = {
       name = "_at_parcel_slash_bundler-default";
       packageName = "@parcel/bundler-default";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.10.3.tgz";
-        sha512 = "a+yq8zH8mrg6FBgUjrC+r3z6cfK7dQVMNzduEU/LF52Z4FVAmTR8gefl/YGmAbquJL3PFAHdhICrljYnQ1WQkg==";
+        url = "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.11.0.tgz";
+        sha512 = "ZIs0865Lp871ZK83k5I9L4DeeE26muNMrHa7j8bvls6fKBJKAn8djrhfU4XOLyziU4aAOobcPwXU0+npWqs52g==";
       };
     };
-    "@parcel/cache-2.10.3" = {
+    "@parcel/cache-2.11.0" = {
       name = "_at_parcel_slash_cache";
       packageName = "@parcel/cache";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/cache/-/cache-2.10.3.tgz";
-        sha512 = "fNNOFOl4dwOlzP8iAa+evZ+3BakX0sV+3+PiYA0zaps7EmPmkTSGDhCWzaYRSO8fhmNDlrUX9Xh7b/X738LFqA==";
+        url = "https://registry.npmjs.org/@parcel/cache/-/cache-2.11.0.tgz";
+        sha512 = "RSSkGNjO00lJPyftzaC9eaNVs4jMjPSAm0VJNWQ9JSm2n4A9BzQtTFAt1vhJOzzW1UsQvvBge9DdfkB7a2gIOw==";
       };
     };
-    "@parcel/codeframe-2.10.3" = {
+    "@parcel/codeframe-2.11.0" = {
       name = "_at_parcel_slash_codeframe";
       packageName = "@parcel/codeframe";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.10.3.tgz";
-        sha512 = "70ovUzeXBowDMjK+1xaLT4hm3jZUK7EbaCS6tN1cmmr0S1TDhU7g37jnpni+u9de9Lc/lErwTaDVXUf9WSQzQw==";
+        url = "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.11.0.tgz";
+        sha512 = "YHs9g/i5af/sd/JrWAojU9YFbKffcJ3Tx2EJaK0ME8OJsye91UaI/3lxSUYLmJG9e4WLNJtqci8V5FBMz//ZPg==";
       };
     };
-    "@parcel/compressor-raw-2.10.3" = {
+    "@parcel/compressor-raw-2.11.0" = {
       name = "_at_parcel_slash_compressor-raw";
       packageName = "@parcel/compressor-raw";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.10.3.tgz";
-        sha512 = "5SUZ80uwu7o0D+0RjhjBnSUXJRgaayfqVQtBRP3U7/W/Bb1Ixm1yDGXtDlyCbzimWqWVMMJ4/eVCEW7I8Ln4Bw==";
+        url = "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.11.0.tgz";
+        sha512 = "RArhBPRTCfz77soX2IECH09NUd76UBWujXiPRcXGPIHK+C3L1cRuzsNcA39QeSb3thz3b99JcozMJ1nkC2Bsgw==";
       };
     };
-    "@parcel/config-default-2.10.3" = {
+    "@parcel/config-default-2.11.0" = {
       name = "_at_parcel_slash_config-default";
       packageName = "@parcel/config-default";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.10.3.tgz";
-        sha512 = "gHVw5cKZVA9h/J4E33qQLg3QG3cYMyWVruyVzF8dFy/Rar5ebXMof1f38IhR2BIavpoThbnCnxgD4SVK8xOPag==";
+        url = "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.11.0.tgz";
+        sha512 = "1e2+qcZkm5/0f4eI20p/DemcYiSxq9d/eyjpTXA7PulJaHbL1wonwUAuy3mvnAvDnLOJmAk/obDVgX1ZfxMGtg==";
       };
     };
-    "@parcel/core-2.10.3" = {
+    "@parcel/core-2.11.0" = {
       name = "_at_parcel_slash_core";
       packageName = "@parcel/core";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/core/-/core-2.10.3.tgz";
-        sha512 = "b64FdqJi4CX6iWeLZNfmwdTrC1VLPXHMuFusf1sTZTuRBFw2oRpgJvuiqsrInaZ82o3lbLMo4a9/5LtNaZKa+Q==";
+        url = "https://registry.npmjs.org/@parcel/core/-/core-2.11.0.tgz";
+        sha512 = "Npe0S6hVaqWEwRL+HI7gtOYOaoE5bJQZTgUDhsDoppWbau51jOlRYOZTXuvRK/jxXnze4/S1sdM24xBYAQ5qkw==";
       };
     };
-    "@parcel/diagnostic-2.10.3" = {
+    "@parcel/diagnostic-2.11.0" = {
       name = "_at_parcel_slash_diagnostic";
       packageName = "@parcel/diagnostic";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.10.3.tgz";
-        sha512 = "Hf3xG9UVkDABDXWi89TjEP5U1CLUUj81kx/QFeupBXnzt5GEQZBhkxdBq6+4w17Mmuvk7H5uumNsSptkWq9PCA==";
+        url = "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.11.0.tgz";
+        sha512 = "4dJmOXVL5YGGQRRsQosQbSRONBcboB71mSwaeaEgz3pPdq9QXVPLACkGe/jTXSqa3OnAHu3g5vQLpE1g5xqBqw==";
       };
     };
-    "@parcel/events-2.10.3" = {
+    "@parcel/events-2.11.0" = {
       name = "_at_parcel_slash_events";
       packageName = "@parcel/events";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/events/-/events-2.10.3.tgz";
-        sha512 = "I3FsZYmKzgvo1f6frUWdF7hWwpeWTshPrFqpn9ICDXs/1Hjlf32jNXLBqon9b9XUDfMw4nSRMFMzMLJpbdheGA==";
+        url = "https://registry.npmjs.org/@parcel/events/-/events-2.11.0.tgz";
+        sha512 = "K6SOjOrQsz1GdNl2qKBktq7KJ3Q3yxK8WXdmQYo10wG39dr051xtMb38aqieTp4eVhL8Yaq2iJgGkdr11fuBnA==";
       };
     };
-    "@parcel/fs-2.10.3" = {
+    "@parcel/fs-2.11.0" = {
       name = "_at_parcel_slash_fs";
       packageName = "@parcel/fs";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/fs/-/fs-2.10.3.tgz";
-        sha512 = "0w4+Lc7B5VpwqX4GQfjnI5qN7tc9qbGPSPsf/6U2YPWU4dkGsMfPEmLBx7dZvJy3UiGxpsjMMuRHa14+jJ5QrQ==";
+        url = "https://registry.npmjs.org/@parcel/fs/-/fs-2.11.0.tgz";
+        sha512 = "zWckdnnovdrgdFX4QYuQV4bbKCsh6IYCkmwaB4yp47rhw1MP0lkBINLt4yFPHBxWXOpElCfxjL+z69c9xJQRBQ==";
       };
     };
-    "@parcel/graph-3.0.3" = {
+    "@parcel/graph-3.1.0" = {
       name = "_at_parcel_slash_graph";
       packageName = "@parcel/graph";
-      version = "3.0.3";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/graph/-/graph-3.0.3.tgz";
-        sha512 = "zUA8KsjR2+v2Q2bFBF7zBk33ejriDiRA/+LK5QE8LrFpkaDa+gjkx76h2x7JqGXIDHNos446KX4nz2OUCVwrNQ==";
+        url = "https://registry.npmjs.org/@parcel/graph/-/graph-3.1.0.tgz";
+        sha512 = "d1dTW5C7A52HgDtoXlyvlET1ypSlmIxSIZOJ1xp3R9L9hgo3h1u3jHNyaoTe/WPkGVe2QnFxh0h+UibVJhu9vg==";
       };
     };
-    "@parcel/logger-2.10.3" = {
+    "@parcel/logger-2.11.0" = {
       name = "_at_parcel_slash_logger";
       packageName = "@parcel/logger";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/logger/-/logger-2.10.3.tgz";
-        sha512 = "mAVTA0NgbbwEUzkzjBqjqyBBax+8bscRaZIAsEqMiSFWGcUmRgwVlH/jy3QDkFc7OHzwvdPK+XlMLV7s/3DJNw==";
+        url = "https://registry.npmjs.org/@parcel/logger/-/logger-2.11.0.tgz";
+        sha512 = "HtMEdCq3LKnvv4T2CIskcqlf2gpBvHMm3pkeUFB/hc/7hW/hE1k6/HA2VOQvc0tBsaMpmEx7PCrfrH56usQSyA==";
       };
     };
-    "@parcel/markdown-ansi-2.10.3" = {
+    "@parcel/markdown-ansi-2.11.0" = {
       name = "_at_parcel_slash_markdown-ansi";
       packageName = "@parcel/markdown-ansi";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.10.3.tgz";
-        sha512 = "uzN1AJmp1oYh/ZLdD9WA7xP5u/L3Bs/6AFZz5s695zus74RCx9OtQcF0Yyl1hbKVJDfuw9WFuzMfPL/9p/C5DQ==";
+        url = "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.11.0.tgz";
+        sha512 = "YA60EWbXi6cLOIzcwRC2wijotPauOGQbUi0vSbu0O6/mjQ68kWCMGz0hwZjDRQcPypQVJEIvTgMymLbvumxwhg==";
       };
     };
-    "@parcel/namer-default-2.10.3" = {
+    "@parcel/namer-default-2.11.0" = {
       name = "_at_parcel_slash_namer-default";
       packageName = "@parcel/namer-default";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.10.3.tgz";
-        sha512 = "s7kgB/x7TISIHhen9IK4+CBXgmRJYahVS+oiAbMm18vcUVuXeZDBeTedOco6zUQIKuB71vx/4DBIuiIp6Q9hpg==";
+        url = "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.11.0.tgz";
+        sha512 = "DEwBSKSClg4DA2xAWimYkw9bFi7MFb9TdT7/TYZStMTsfYHPWOyyjGR7aVr3Ra4wNb+XX6g4rR41yp3HD6KO7A==";
       };
     };
-    "@parcel/node-resolver-core-3.1.3" = {
+    "@parcel/node-resolver-core-3.2.0" = {
       name = "_at_parcel_slash_node-resolver-core";
       packageName = "@parcel/node-resolver-core";
-      version = "3.1.3";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-3.1.3.tgz";
-        sha512 = "o7XK1KiK3ymO39bhc5qfDQiZpKA1xQmKg0TEPDNiLIXHKLEBheqarhw3Nwwt9MOFibfwsisQtDTIS+2v9A640A==";
+        url = "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-3.2.0.tgz";
+        sha512 = "XJRSxCkNbGFWjfmwFdcQZ/qlzWZd35qLtvLz2va8euGL7M5OMEQOv7dsvEhl0R+CC2zcnfFzZwxk78q6ezs8AQ==";
       };
     };
-    "@parcel/optimizer-css-2.10.3" = {
+    "@parcel/optimizer-css-2.11.0" = {
       name = "_at_parcel_slash_optimizer-css";
       packageName = "@parcel/optimizer-css";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.10.3.tgz";
-        sha512 = "Pc8jwV3U9w5DJDNcRQML5FlKdpPGnuCTtk1P+9FfyEUjdxoVxC+YeMIQcE961clAgl47qh7eNObXtsX/lb04Dg==";
+        url = "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.11.0.tgz";
+        sha512 = "bV97PRxshHV3dMwOpLRgcP1QNhrVWh6VVDfm2gmWULpvsjoykcPS6vrCFksY5CpQsSvNHqJBzQjWS8FubUI76w==";
       };
     };
-    "@parcel/optimizer-htmlnano-2.10.3" = {
+    "@parcel/optimizer-htmlnano-2.11.0" = {
       name = "_at_parcel_slash_optimizer-htmlnano";
       packageName = "@parcel/optimizer-htmlnano";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.10.3.tgz";
-        sha512 = "KTIZOy19tYeG0j3JRv435A6jnTh3O1LPhsUfo6Xlea7Cz1yUUxAANl9MG8lHZKYbZCFFKbfk2I9QBycmcYxAAw==";
+        url = "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.11.0.tgz";
+        sha512 = "c20pz4EFF5DNFmqYgptlIj49eT6xjGLkDTdHH3RRzxKovuSXWfYSPs3GED3ZsjVuQyjNQif+/MAk9547F7hrdQ==";
       };
     };
-    "@parcel/optimizer-image-2.10.3" = {
+    "@parcel/optimizer-image-2.11.0" = {
       name = "_at_parcel_slash_optimizer-image";
       packageName = "@parcel/optimizer-image";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.10.3.tgz";
-        sha512 = "hbeI6+GoddJxib8MlK5iafbCm1oy3p0UL9bb8s5mjTZiHtj1PORlH8gP7mT1WlYOCgoy45QdHelcrmL9fJ8kBA==";
+        url = "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.11.0.tgz";
+        sha512 = "jCaJww5QFG2GuNzYW8nlSW+Ea+Cv47TRnOPJNquFIajgfTLJ5ddsWbaNal0GQsL8yNiCBKWd1AV4W0RH9tG0Jg==";
       };
     };
-    "@parcel/optimizer-svgo-2.10.3" = {
+    "@parcel/optimizer-svgo-2.11.0" = {
       name = "_at_parcel_slash_optimizer-svgo";
       packageName = "@parcel/optimizer-svgo";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.10.3.tgz";
-        sha512 = "STN7sdjz6wGnQnvy22SkQaLi5C1E+j7J0xy96T0/mCP9KoIsBDE7panCtf53p4sWCNRsXNVrXt5KrpCC+u0LHg==";
+        url = "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.11.0.tgz";
+        sha512 = "TQpvfBhjV2IsuFHXUolbDS6XWB3DDR2rYTlqlA8LMmuOY7jQd9Bnkl4JnapzWm/bRuzRlzdGjjVCPGL8iShFvA==";
       };
     };
-    "@parcel/optimizer-swc-2.10.3" = {
+    "@parcel/optimizer-swc-2.11.0" = {
       name = "_at_parcel_slash_optimizer-swc";
       packageName = "@parcel/optimizer-swc";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/optimizer-swc/-/optimizer-swc-2.10.3.tgz";
-        sha512 = "Cxy05CysiKbv/PtX++ETje4cbhCJySmN6EmFyQBs0jvzsUdWwqnsttavYRoMviUUK9mjm/i5q+cyewBO/8Oc5g==";
+        url = "https://registry.npmjs.org/@parcel/optimizer-swc/-/optimizer-swc-2.11.0.tgz";
+        sha512 = "ftf42F3JyZxJb6nnLlgNGyNQ273YOla4dFGH/tWC8iTwObHUpWe7cMbCGcrSJBvAlsLkZfLpFNAXFxUgxdKyHQ==";
       };
     };
-    "@parcel/package-manager-2.10.3" = {
+    "@parcel/package-manager-2.11.0" = {
       name = "_at_parcel_slash_package-manager";
       packageName = "@parcel/package-manager";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.10.3.tgz";
-        sha512 = "KqOW5oUmElrcb7d+hOC68ja1PI2qbPZTwdduduRvB90DAweMt7r1046+W2Df5bd+p9iv72DxGEn9xomX+qz9MA==";
+        url = "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.11.0.tgz";
+        sha512 = "QzdsrUYlAwIzb8by7WJjqYnbR1MoMKWbtE1MXUeYsZbFusV8B6pOH+lwqNJKS/BFtddZMRPYFueZS2N2fwzjig==";
       };
     };
-    "@parcel/packager-css-2.10.3" = {
+    "@parcel/packager-css-2.11.0" = {
       name = "_at_parcel_slash_packager-css";
       packageName = "@parcel/packager-css";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.10.3.tgz";
-        sha512 = "Jk165fFU2XyWjN7agKy+YvvRoOJbWIb57VlVDgBHanB5ptS7aCildambrljGNTivatr+zFrchE5ZDNUFXZhYnw==";
+        url = "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.11.0.tgz";
+        sha512 = "AyIxsp4eL8c22vp2oO2hSRnr3hSVNkARNZc9DG6uXxCc2Is5tUEX0I4PwxWnAx0EI44l+3zX/o414zT8yV9wwQ==";
       };
     };
-    "@parcel/packager-html-2.10.3" = {
+    "@parcel/packager-html-2.11.0" = {
       name = "_at_parcel_slash_packager-html";
       packageName = "@parcel/packager-html";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.10.3.tgz";
-        sha512 = "bEI6FhBvERuoqyi/h681qGImTRBUnqNW4sKoFO67q/bxWLevXtEGMFOeqridiVOjYQH9s1kKwM/ln/UwKVazZw==";
+        url = "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.11.0.tgz";
+        sha512 = "ho5AQ70naTV8IqkKIbKtK+jsXQ5TJfFgtBvmJlyB3YydRMbIc+3g4G0xgIvf15V4uCMw9Md0Sv1W65nQXHPQoA==";
       };
     };
-    "@parcel/packager-js-2.10.3" = {
+    "@parcel/packager-js-2.11.0" = {
       name = "_at_parcel_slash_packager-js";
       packageName = "@parcel/packager-js";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.10.3.tgz";
-        sha512 = "SjLSDw0juC7bEk/0geUtSVXaZqm2SgHL2IZaPnkoBQxVqzh2MdvAxJCrS2LxiR/cuQRfvQ5bnoJA7Kk1w2VNAg==";
+        url = "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.11.0.tgz";
+        sha512 = "SxjCsd0xQfg5H73YtVJj9VOpr9s0rwMsSoeykjkatbkEla9NsZajsUkd/bfYf+/0WvEKOrB8oUBo15HkGOgKug==";
       };
     };
-    "@parcel/packager-raw-2.10.3" = {
+    "@parcel/packager-raw-2.11.0" = {
       name = "_at_parcel_slash_packager-raw";
       packageName = "@parcel/packager-raw";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.10.3.tgz";
-        sha512 = "d236tnP2ViOnUJR0+qG6EHw7MUWSA14fLKnYYzL5SRQ4BVo5XC+CM9HKN5O4YCCVu3+9Su2X1+RESo5sxbFq7w==";
+        url = "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.11.0.tgz";
+        sha512 = "2/0JQ8DZrz7cVNXwD6OYoUUtSSnlr4dsz8ZkpFDKsBJhvMHtC78Sq+1EDixDGOMiUcalSEjNsoHtkpq9uNh+Xw==";
       };
     };
-    "@parcel/packager-svg-2.10.3" = {
+    "@parcel/packager-svg-2.11.0" = {
       name = "_at_parcel_slash_packager-svg";
       packageName = "@parcel/packager-svg";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.10.3.tgz";
-        sha512 = "Rk/GokkNs9uLwiy6Ux/xXpD8nMVhA9LN9eIbVqi8+eR42xUmICmEoUoSm+CnekkXxY2a5e3mKpL7JZbT9vOEhA==";
+        url = "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.11.0.tgz";
+        sha512 = "2wQBkzLwcaWFGWz8TP+bgsXgiueWPzrjKsWugWdDfq0FbXh8XVeR/599qnus3RFHZy4cH6L6yq/7zxcljtxK8A==";
       };
     };
-    "@parcel/packager-wasm-2.10.3" = {
+    "@parcel/packager-wasm-2.11.0" = {
       name = "_at_parcel_slash_packager-wasm";
       packageName = "@parcel/packager-wasm";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/packager-wasm/-/packager-wasm-2.10.3.tgz";
-        sha512 = "j6VmU84LKy+XRHgZQFoASG98P50a9tkeT3LYRrol3RGGQrvx7PT3/D6rOqbnQjR2iGnaHzYoAlgg9jIMmWXYiA==";
+        url = "https://registry.npmjs.org/@parcel/packager-wasm/-/packager-wasm-2.11.0.tgz";
+        sha512 = "tTy4EbDXeeiZ0oB7L2FWaHSD1mbmYZP6R5HXqkvc5dECGUKPU5Jz6ek2C5AM+HfQdQLKXPQ/Xw3eJnI/AmctVg==";
       };
     };
-    "@parcel/plugin-2.10.3" = {
+    "@parcel/plugin-2.11.0" = {
       name = "_at_parcel_slash_plugin";
       packageName = "@parcel/plugin";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.10.3.tgz";
-        sha512 = "FgsfGKSdtSV1EcO2NWFCZaY14W0PnEEF8vZaRCTML3vKfUbilYs/biaqf5geFOu4DwRuCC8unOTqFy7dLwcK/A==";
+        url = "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.11.0.tgz";
+        sha512 = "9npuKBlhnPn7oeUpLJGecceg16GkXbvzbr6MNSZiHhkx3IBeITHQXlZnp2zAjUOFreNsYOfifwEF2S4KsARfBQ==";
       };
     };
-    "@parcel/profiler-2.10.3" = {
+    "@parcel/profiler-2.11.0" = {
       name = "_at_parcel_slash_profiler";
       packageName = "@parcel/profiler";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/profiler/-/profiler-2.10.3.tgz";
-        sha512 = "yikaM6/vsvjDCcBHAXTKmDsWUF3UvC0lMG8RpnuVSN+R40MGH1vyrR4vNnqhkiCcs0RkVXm7bpuz3cDJLNLYSQ==";
+        url = "https://registry.npmjs.org/@parcel/profiler/-/profiler-2.11.0.tgz";
+        sha512 = "s10SS09prOdwnaAcjK8M5zO8o+zPJJW5oOqXPNdf6KH4NGD/ue7iOk2xM8QLw6ulSwxE7NDt++lyfW3AXgCZwg==";
       };
     };
-    "@parcel/reporter-cli-2.10.3" = {
+    "@parcel/reporter-cli-2.11.0" = {
       name = "_at_parcel_slash_reporter-cli";
       packageName = "@parcel/reporter-cli";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.10.3.tgz";
-        sha512 = "p5xQTPRuB1K3eI3Ro90vcdxpdt0VqIgrUP/VJKtSI8I3fLLGgPBNmSZejqqLup3jFRzUttQPHYkWl/R14LHjAQ==";
+        url = "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.11.0.tgz";
+        sha512 = "hY0iO0f+LifgJHDUIjGQJnxLFSkk2jlbfy+kIaft5oI3/IM+UljecfGO+14XH8mYlqRXXPsT09TJe8ZKQzp4ZQ==";
       };
     };
-    "@parcel/reporter-dev-server-2.10.3" = {
+    "@parcel/reporter-dev-server-2.11.0" = {
       name = "_at_parcel_slash_reporter-dev-server";
       packageName = "@parcel/reporter-dev-server";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.10.3.tgz";
-        sha512 = "1Kzb2TrlnOYhGwFXZYCeoO18hpVhI3pRXnN22li9ZmdpeugZ0zZJamfPV8Duj4sBvBoSajbZhiPAe/6tQgWDSA==";
+        url = "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.11.0.tgz";
+        sha512 = "T4ue1+oLFNdcd9maw8QWQuxzOS2kX2jOrSvYKwYd9oGnqiAr1rpiHYYKJhHng+PF5ybwWkj8dUJfGh2NoQysJA==";
       };
     };
-    "@parcel/reporter-tracer-2.10.3" = {
+    "@parcel/reporter-tracer-2.11.0" = {
       name = "_at_parcel_slash_reporter-tracer";
       packageName = "@parcel/reporter-tracer";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/reporter-tracer/-/reporter-tracer-2.10.3.tgz";
-        sha512 = "53T9VPJvCi4Co0iTmNN+nqFD+Fkt3QFW8CPXBVlmlQzOtufVjDb01VsE1NPD8/J7O0jd548HJX/s5uqT0380jg==";
+        url = "https://registry.npmjs.org/@parcel/reporter-tracer/-/reporter-tracer-2.11.0.tgz";
+        sha512 = "33q4ftO26OPWHkUpEm0bzzSjW2kHEh6q/JFePwf8W6APTQVruj4mV46+Fh6rxX42ixs92K/QoiE0gYgWZQVDHA==";
       };
     };
-    "@parcel/resolver-default-2.10.3" = {
+    "@parcel/resolver-default-2.11.0" = {
       name = "_at_parcel_slash_resolver-default";
       packageName = "@parcel/resolver-default";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.10.3.tgz";
-        sha512 = "TQc1LwpvEKyF3CnU9ifHOKV2usFLVYmMAVAkxyKKGTbnJGEqBDQ0ITqTapA6bJLvZ6d2eUT7guqd4nrBEjeZpw==";
+        url = "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.11.0.tgz";
+        sha512 = "suZNN2lE5W48LPTwAbG7gnj1IeubkCVEm0XspWXcXUtCzglimNJ8PVVBGx171o5CqDpdbGF3AqHjG9N3uOwXag==";
       };
     };
-    "@parcel/runtime-browser-hmr-2.10.3" = {
+    "@parcel/runtime-browser-hmr-2.11.0" = {
       name = "_at_parcel_slash_runtime-browser-hmr";
       packageName = "@parcel/runtime-browser-hmr";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.10.3.tgz";
-        sha512 = "+6+mlJiLL3aNVIEyXMUPbPSgljYgnbl9JNMbEXikDQpGGiXTZ7gNNKsqwYeYzgQBYwgqRfR2ir6Bznc2R7dvxg==";
+        url = "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.11.0.tgz";
+        sha512 = "uVwNBtoLMrlPHLvRS05BVhLseduMOpZT36yiIjS0YSBJcC6/otI9AY7ZiDPYmrB5xTqM0R+D554JhPaJHCuocw==";
       };
     };
-    "@parcel/runtime-js-2.10.3" = {
+    "@parcel/runtime-js-2.11.0" = {
       name = "_at_parcel_slash_runtime-js";
       packageName = "@parcel/runtime-js";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.10.3.tgz";
-        sha512 = "EMLgZzBGf5ylOT5U/N2rBK5ZZxnmEM4aJsissEAxcE/2cgE8TyhSng6p3A88vVJlO/unHcwRuFGlxKCueugGsQ==";
+        url = "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.11.0.tgz";
+        sha512 = "fH3nJoexINz7s4cDzp0Vjsx0k1pMYSa5ch38LbbNqCKTermy0pS0zZuvgfLfHFFP+AMRpFQenrF7h7N3bgDmHw==";
       };
     };
-    "@parcel/runtime-react-refresh-2.10.3" = {
+    "@parcel/runtime-react-refresh-2.11.0" = {
       name = "_at_parcel_slash_runtime-react-refresh";
       packageName = "@parcel/runtime-react-refresh";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.10.3.tgz";
-        sha512 = "l03mni8XJq3fmeAV8UYlKJ/+u0LYRuk6ZVP0VLYLwgK4O0mlRuxwaZWYUeB8r/kTsEjB3gF/9AAtUZdAC7Swow==";
+        url = "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.11.0.tgz";
+        sha512 = "Kfnc7gLjhoephLMnjABrkIkzVfzPrpJlxiJFIleY2Fm57YhmCfKsEYxm3lHOutNaYl1VArW0LKClPH/VHG9vfQ==";
       };
     };
-    "@parcel/runtime-service-worker-2.10.3" = {
+    "@parcel/runtime-service-worker-2.11.0" = {
       name = "_at_parcel_slash_runtime-service-worker";
       packageName = "@parcel/runtime-service-worker";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.10.3.tgz";
-        sha512 = "NjhS80t+O5iBgKXIQ+i07ZEh/VW8XHzanwTHmznJXEoIjLoBpELZ9r6bV/eUD3mYgM1vmW9Aijdu5xtsd0JW6A==";
+        url = "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.11.0.tgz";
+        sha512 = "c8MaSpSbXIKuN5sA/g4UsrsH1BtBZ6Em+eSxt9AYbdPtWrW+qwCioNVZj9lugBRUzDMjVfJz0yK59nS42hABvw==";
       };
     };
-    "@parcel/rust-2.10.3" = {
+    "@parcel/rust-2.11.0" = {
       name = "_at_parcel_slash_rust";
       packageName = "@parcel/rust";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/rust/-/rust-2.10.3.tgz";
-        sha512 = "s1dD1QI/6JkWLICsFh8/iUvO7W1aj/avx+2mCSzuwEIsMywexpBf56qhVYMa3D9D50hS1h5FMk9RrSnSiPf8WA==";
+        url = "https://registry.npmjs.org/@parcel/rust/-/rust-2.11.0.tgz";
+        sha512 = "UkLWdHOD8Md2YmJDPsqd3yIs9chhdl/ATfV/B/xdPKGmqtNouYpDCRlq+WxMt3mLoYgHEg9UwrWLTebo2rr2iQ==";
       };
     };
     "@parcel/source-map-2.1.1" = {
@@ -8608,130 +8581,121 @@ let
         sha512 = "Ejx1P/mj+kMjQb8/y5XxDUn4reGdr+WyKYloBljpppUy8gs42T+BNoEOuRYqDVdgPc6NxduzIDoJS9pOFfV5Ew==";
       };
     };
-    "@parcel/transformer-babel-2.10.3" = {
+    "@parcel/transformer-babel-2.11.0" = {
       name = "_at_parcel_slash_transformer-babel";
       packageName = "@parcel/transformer-babel";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.10.3.tgz";
-        sha512 = "SDTyDZX3WTkX7WS5Dg5cBLjWtIkUeeHezIjeOI4cw40tBjj5bXRR2TBfPsqwOnpTHr5jhNSicD6DN+XfTI2MMw==";
+        url = "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.11.0.tgz";
+        sha512 = "WKGblnp7r426VG+cpeQzc6dj/30EoUaYwyl4OEaigQSJizyuPWTBWTz6FUw+ih1/sg37h+D1BIh9C2FsVzpzbw==";
       };
     };
-    "@parcel/transformer-css-2.10.3" = {
+    "@parcel/transformer-css-2.11.0" = {
       name = "_at_parcel_slash_transformer-css";
       packageName = "@parcel/transformer-css";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.10.3.tgz";
-        sha512 = "qlPYcwVgbqFHrec6CKcTQ4hY7EkjvH40Wyqf0xjAyIoIuOPmrpSUOp+VKjeRdbyFwH/4GBjrDZMBvCUsgeM2GA==";
+        url = "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.11.0.tgz";
+        sha512 = "nFmBulF/ErNoafO87JbVrBavjBMNwE/kahbCRVxc2Mvlphz4F4lBW4eDRS5l4xBqFJaNkHr9R55ehLBBilF4Jw==";
       };
     };
-    "@parcel/transformer-html-2.10.3" = {
+    "@parcel/transformer-html-2.11.0" = {
       name = "_at_parcel_slash_transformer-html";
       packageName = "@parcel/transformer-html";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.10.3.tgz";
-        sha512 = "u0uklWpliEcPADtBlboxhxBvlGrP0yPRZk/A2iL0VhfAi9ONFEuJkEoesispNhAg3KiojEh0Ddzu7bYp9U0yww==";
+        url = "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.11.0.tgz";
+        sha512 = "90vp7mbvvfqPr9XIINpMcELtywj56f1bxfOkLQgWU1bm22H0FT3i5dqdac++2My0IGDvMwhAEjQfbn4pA579NQ==";
       };
     };
-    "@parcel/transformer-image-2.10.3" = {
+    "@parcel/transformer-image-2.11.0" = {
       name = "_at_parcel_slash_transformer-image";
       packageName = "@parcel/transformer-image";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.10.3.tgz";
-        sha512 = "At7D7eMauE+/EnlXiDfNSap2te11L0TIW55SC9iTRTI/CqesWfT96ZB/LcH3HXckYy/GJi0xyTjYxC/YjUqDog==";
+        url = "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.11.0.tgz";
+        sha512 = "QiZj18UHf3lVFsi65Vz8YbS3ydx9Pe9x8ktMxE1oh9qpznN8lD7gE/Z9DxuTZB84EZ9pKytKwcv5WGXP25xIFg==";
       };
     };
-    "@parcel/transformer-js-2.10.3" = {
+    "@parcel/transformer-js-2.11.0" = {
       name = "_at_parcel_slash_transformer-js";
       packageName = "@parcel/transformer-js";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.10.3.tgz";
-        sha512 = "9pGqrCSLlipXvL7hOrLsaW5Pq4bjFBOTiZ5k5kizk1qeuHKMIHxySGdy0E35eSsJ6JzXP0lTXPywMPysSI6owQ==";
+        url = "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.11.0.tgz";
+        sha512 = "G1sv0n8/fJqHqwUs0iVnVdmRY0Kh8kWaDkuWcU/GJBHMGhUnLXKdNwxX2Av9UdBL14bU1nTINfr9qOfnQotXWg==";
       };
     };
-    "@parcel/transformer-json-2.10.3" = {
+    "@parcel/transformer-json-2.11.0" = {
       name = "_at_parcel_slash_transformer-json";
       packageName = "@parcel/transformer-json";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.10.3.tgz";
-        sha512 = "cPhiQNgrX92VEATuxf3GCPQnlfnZW1iCsOHMT1CzgmofE7tVlW1hOOokWw21/8spG44Zax0SrRW0udi9TdmpQA==";
+        url = "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.11.0.tgz";
+        sha512 = "Wt/wgSBaRWmPL4gpvjkV0bCBRxFOtsuLNzsm8vYA5poxTFhuLY+AoyQ8S2+xXU4VxwBfdppfIr2Ny3SwGs8xbQ==";
       };
     };
-    "@parcel/transformer-postcss-2.10.3" = {
+    "@parcel/transformer-postcss-2.11.0" = {
       name = "_at_parcel_slash_transformer-postcss";
       packageName = "@parcel/transformer-postcss";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.10.3.tgz";
-        sha512 = "SpTZQdGQ3aVvl6+3tLlw/txUyzZSsv8t+hcfc9PM0n1rd4mfjWxVKmgNC1Y3nFoSubLMp+03GbMq16ym8t89WQ==";
+        url = "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.11.0.tgz";
+        sha512 = "Ugy8XHBaUptGotsvwzq7gPCvkCopTIqqZ0JZ40Jmy9slGms8wnx06pNHA1Be/RcJwkJ2TbSu+7ncZdgmP5x5GQ==";
       };
     };
-    "@parcel/transformer-posthtml-2.10.3" = {
+    "@parcel/transformer-posthtml-2.11.0" = {
       name = "_at_parcel_slash_transformer-posthtml";
       packageName = "@parcel/transformer-posthtml";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.10.3.tgz";
-        sha512 = "k6pz0H/W1k+i9uDNXjum7XkaFYKvSSrgEsmhoh7OriXPrLunboIzMBXFQcQSCyxCpw/kLuKFBLP38mQnYC5BbQ==";
+        url = "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.11.0.tgz";
+        sha512 = "dMK4p1RRAoIJEjK/Wz9GOLqwHqdD/VQDhMPk+6sUKp5zf2MhSohUstpp5gKsSZivCM3PS2f8k9rgroacJ/ReuA==";
       };
     };
-    "@parcel/transformer-raw-2.10.3" = {
+    "@parcel/transformer-raw-2.11.0" = {
       name = "_at_parcel_slash_transformer-raw";
       packageName = "@parcel/transformer-raw";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.10.3.tgz";
-        sha512 = "r//P2Hg14m/vJK/XJyq0cmcS4RTRy4bPSL4c0FxbEdDRrSm0Hcd1gdfgl0HeqSQQfcz0Xu4nCM5zAhg6FUpiXQ==";
+        url = "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.11.0.tgz";
+        sha512 = "2ltp3TgS+cxEqSM1vk5gDtJrYx4KMuRRtbSgSvkdldyOgPhflnLU3/HRz72hXSNGqYOV0/JN0+ocsfPnqR00ug==";
       };
     };
-    "@parcel/transformer-react-refresh-wrap-2.10.3" = {
+    "@parcel/transformer-react-refresh-wrap-2.11.0" = {
       name = "_at_parcel_slash_transformer-react-refresh-wrap";
       packageName = "@parcel/transformer-react-refresh-wrap";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.10.3.tgz";
-        sha512 = "Sc6ExGQy/YhNYFxRgEyi4SikYmV3wbATYo/VzqUjvZ4vE9YXM0sC5CyJhcoWVHmMPhm5eowOwFA6UrTsgHd2+g==";
+        url = "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.11.0.tgz";
+        sha512 = "6pY0CdIgIpXC6XpsDWizf+zLgiuEsJ106HjWLwF7/R72BrvDhLPZ6jRu4UTrnd6bM89KahPw9fZZzjKoA5Efcw==";
       };
     };
-    "@parcel/transformer-svg-2.10.3" = {
+    "@parcel/transformer-svg-2.11.0" = {
       name = "_at_parcel_slash_transformer-svg";
       packageName = "@parcel/transformer-svg";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.10.3.tgz";
-        sha512 = "fjkTdPB8y467I/yHPEaNxNxoGtRIgEqNjVkBhtE/ibhF/YfqIEpDlJyI7G5G71pt2peLMLXZnJowzHqeoEUHOQ==";
+        url = "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.11.0.tgz";
+        sha512 = "GrTNi04OoQSXsyrB7FqQPeYREscEXFhIBPkyQ0q7WDG/yYynWljiA0kwITCtMjPfv2EDVks292dvM3EcnERRIA==";
       };
     };
-    "@parcel/types-2.10.3" = {
+    "@parcel/types-2.11.0" = {
       name = "_at_parcel_slash_types";
       packageName = "@parcel/types";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/types/-/types-2.10.3.tgz";
-        sha512 = "4ISgDKcbJsR7NKj2jquPUPQWc/b2x6zHb/jZVdHVzMQxJp98DX+cvQR137iOTXUAFtwkKVjFcHWfejwGdGf9bw==";
+        url = "https://registry.npmjs.org/@parcel/types/-/types-2.11.0.tgz";
+        sha512 = "lN5XlfV9b1s2rli8q1LqsLtu+D4ZwNI3sKmNcL/3tohSfQcF2EgF+MaiANGo9VzXOzoWFHt4dqWjO4OcdyC5tg==";
       };
     };
-    "@parcel/utils-2.10.3" = {
+    "@parcel/utils-2.11.0" = {
       name = "_at_parcel_slash_utils";
       packageName = "@parcel/utils";
-      version = "2.10.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/utils/-/utils-2.10.3.tgz";
-        sha512 = "l9pEQgq+D57t42m2sJkdU08Dpp0HVzDEwVrp/by/l37ZkYPJ2Me3oXtsJhvA+hej2kO8+FuKPm64FaUVaA2g+w==";
-      };
-    };
-    "@parcel/watcher-2.0.4" = {
-      name = "_at_parcel_slash_watcher";
-      packageName = "@parcel/watcher";
-      version = "2.0.4";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.4.tgz";
-        sha512 = "cTDi+FUDBIUOBKEtj+nhiJ71AZVlkAsQFuGQTun5tV9mwQBQgZvhCzG+URPQc8myeN32yRVZEfVAPCs1RW+Jvg==";
+        url = "https://registry.npmjs.org/@parcel/utils/-/utils-2.11.0.tgz";
+        sha512 = "AcL70cXlIyE7eQdvjQbYxegN5l+skqvlJllxTWg4YkIZe9p8Gmv74jLAeLWh5F+IGl5WRn0TSy9JhNJjIMQGwQ==";
       };
     };
     "@parcel/watcher-2.3.0" = {
@@ -8851,13 +8815,13 @@ let
         sha512 = "dLx+0XRdMnVI62kU3wbXvbIRhLck4aE28bIGKbRGS7BJNt54IIj9+c/Dkqb+7DJEbHUZAX1bwaoM8PqVlHJmCA==";
       };
     };
-    "@parcel/workers-2.10.3" = {
+    "@parcel/workers-2.11.0" = {
       name = "_at_parcel_slash_workers";
       packageName = "@parcel/workers";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/workers/-/workers-2.10.3.tgz";
-        sha512 = "qlN8G3VybPHVIbD6fsZr2gmrXG2UlROUQIPW/kkAvjQ29uRfFn7YEC8CHTICt8M1HhCNkr0cMXkuXQBi0l3kAg==";
+        url = "https://registry.npmjs.org/@parcel/workers/-/workers-2.11.0.tgz";
+        sha512 = "wjybqdSy6Nk0N9iBGsFcp7739W2zvx0WGfVxPVShqhz46pIkPOiFF/iSn+kFu5EmMKTRWeUif42+a6rRZ7pCnQ==";
       };
     };
     "@peculiar/asn1-schema-2.3.8" = {
@@ -8950,13 +8914,13 @@ let
         sha512 = "3ttOeHBpmWRbgJrpDQ8Nwd3W8s8iuiP5YZM0JRyKWaMtX8lu9d7/AKyxPmhYsMJuN+q/1dwHa7QFeDZJ53b0oA==";
       };
     };
-    "@pnpm/dependency-path-2.1.5" = {
+    "@pnpm/dependency-path-2.1.7" = {
       name = "_at_pnpm_slash_dependency-path";
       packageName = "@pnpm/dependency-path";
-      version = "2.1.5";
+      version = "2.1.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@pnpm/dependency-path/-/dependency-path-2.1.5.tgz";
-        sha512 = "Ki7v96NDlUzkIkgujSl+3sDY/nMjujOaDOTmjEeBebPiow53Y9Bw/UnxI8C2KKsnm/b7kUJPeFVbOhg3HMp7/Q==";
+        url = "https://registry.npmjs.org/@pnpm/dependency-path/-/dependency-path-2.1.7.tgz";
+        sha512 = "/q3xNNgAEKkG0FvU8o/6B06nrBhSl1i34ZMEQDOhHFMDzS0mWqnIogb54seVKySNxfdJdyqfedjNnNIzKrPbkg==";
       };
     };
     "@pnpm/error-1.4.0" = {
@@ -9049,13 +9013,13 @@ let
         sha512 = "3MYHYm8epnciApn6w5Fzx6sepawmsNU7l6lvIq+ER22/DPSrr83YMhU/EQWnf4lORn2YyiXFj0FJSyJzEtIGmw==";
       };
     };
-    "@pnpm/types-9.4.0" = {
+    "@pnpm/types-9.4.2" = {
       name = "_at_pnpm_slash_types";
       packageName = "@pnpm/types";
-      version = "9.4.0";
+      version = "9.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@pnpm/types/-/types-9.4.0.tgz";
-        sha512 = "IRDuIuNobLRQe0UyY2gbrrTzYS46tTNvOEfL6fOf0Qa8NyxUzeXz946v7fQuQE3LSBf8ENBC5SXhRmDl+mBEqA==";
+        url = "https://registry.npmjs.org/@pnpm/types/-/types-9.4.2.tgz";
+        sha512 = "g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==";
       };
     };
     "@pnpm/write-project-manifest-1.1.7" = {
@@ -9067,22 +9031,67 @@ let
         sha512 = "OLkDZSqkA1mkoPNPvLFXyI6fb0enCuFji6Zfditi/CLAo9kmIhQFmEUDu4krSB8i908EljG8YwL5Xjxzm5wsWA==";
       };
     };
-    "@prisma/engines-5.6.0" = {
+    "@polka/url-1.0.0-next.24" = {
+      name = "_at_polka_slash_url";
+      packageName = "@polka/url";
+      version = "1.0.0-next.24";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.24.tgz";
+        sha512 = "2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==";
+      };
+    };
+    "@prisma/debug-5.7.1" = {
+      name = "_at_prisma_slash_debug";
+      packageName = "@prisma/debug";
+      version = "5.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@prisma/debug/-/debug-5.7.1.tgz";
+        sha512 = "yrVSO/YZOxdeIxcBtZ5BaNqUfPrZkNsAKQIQg36cJKMxj/VYK3Vk5jMKkI+gQLl0KReo1YvX8GWKfV788SELjw==";
+      };
+    };
+    "@prisma/engines-5.7.1" = {
       name = "_at_prisma_slash_engines";
       packageName = "@prisma/engines";
-      version = "5.6.0";
+      version = "5.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@prisma/engines/-/engines-5.7.1.tgz";
+        sha512 = "R+Pqbra8tpLP2cvyiUpx+SIKglav3nTCpA+rn6826CThviQ8yvbNG0s8jNpo51vS9FuZO3pOkARqG062vKX7uA==";
+      };
+    };
+    "@prisma/engines-version-5.7.1-1.0ca5ccbcfa6bdc81c003cf549abe4269f59c41e5" = {
+      name = "_at_prisma_slash_engines-version";
+      packageName = "@prisma/engines-version";
+      version = "5.7.1-1.0ca5ccbcfa6bdc81c003cf549abe4269f59c41e5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@prisma/engines/-/engines-5.6.0.tgz";
-        sha512 = "Mt2q+GNJpU2vFn6kif24oRSBQv1KOkYaterQsi0k2/lA+dLvhRX6Lm26gon6PYHwUM8/h8KRgXIUMU0PCLB6bw==";
+        url = "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.7.1-1.0ca5ccbcfa6bdc81c003cf549abe4269f59c41e5.tgz";
+        sha512 = "dIR5IQK/ZxEoWRBDOHF87r1Jy+m2ih3Joi4vzJRP+FOj5yxCwS2pS5SBR3TWoVnEK1zxtLI/3N7BjHyGF84fgw==";
       };
     };
-    "@prisma/prisma-schema-wasm-5.6.0-32.e95e739751f42d8ca026f6b910f5a2dc5adeaeee" = {
+    "@prisma/fetch-engine-5.7.1" = {
+      name = "_at_prisma_slash_fetch-engine";
+      packageName = "@prisma/fetch-engine";
+      version = "5.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-5.7.1.tgz";
+        sha512 = "9ELauIEBkIaEUpMIYPRlh5QELfoC6pyHolHVQgbNxglaINikZ9w9X7r1TIePAcm05pCNp2XPY1ObQIJW5nYfBQ==";
+      };
+    };
+    "@prisma/get-platform-5.7.1" = {
+      name = "_at_prisma_slash_get-platform";
+      packageName = "@prisma/get-platform";
+      version = "5.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-5.7.1.tgz";
+        sha512 = "eDlswr3a1m5z9D/55Iyt/nZqS5UpD+DZ9MooBB3hvrcPhDQrcf9m4Tl7buy4mvAtrubQ626ECtb8c6L/f7rGSQ==";
+      };
+    };
+    "@prisma/prisma-schema-wasm-5.7.1-1.0ca5ccbcfa6bdc81c003cf549abe4269f59c41e5" = {
       name = "_at_prisma_slash_prisma-schema-wasm";
       packageName = "@prisma/prisma-schema-wasm";
-      version = "5.6.0-32.e95e739751f42d8ca026f6b910f5a2dc5adeaeee";
+      version = "5.7.1-1.0ca5ccbcfa6bdc81c003cf549abe4269f59c41e5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@prisma/prisma-schema-wasm/-/prisma-schema-wasm-5.6.0-32.e95e739751f42d8ca026f6b910f5a2dc5adeaeee.tgz";
-        sha512 = "ZBLFM21ICn5wA/uzvNEpzLsnUGud5P7+O5DjRVI5VRZ6+j/QEDQQkiNxVEmCGYQgVsD76PiI+/BmbruzX+uTbQ==";
+        url = "https://registry.npmjs.org/@prisma/prisma-schema-wasm/-/prisma-schema-wasm-5.7.1-1.0ca5ccbcfa6bdc81c003cf549abe4269f59c41e5.tgz";
+        sha512 = "woHCFsEQ8DyYT9mTlO++iWSw9WP7cVtH2d3P4VQ521qQlPCUpozEbFszyCLkRJPXcGi4ci9J6v4mw/v5RsdDzA==";
       };
     };
     "@protobufjs/aspromise-1.1.2" = {
@@ -9175,13 +9184,40 @@ let
         sha512 = "Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==";
       };
     };
-    "@putdotio/api-client-8.40.0" = {
+    "@puppeteer/browsers-1.3.0" = {
+      name = "_at_puppeteer_slash_browsers";
+      packageName = "@puppeteer/browsers";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.3.0.tgz";
+        sha512 = "an3QdbNPkuU6qpxpbssxAbjRLJcF+eP4L8UqIY3+6n0sbaVxw5pz7PiCLy9g32XEZuoamUlV5ZQPnA6FxvkIHA==";
+      };
+    };
+    "@puppeteer/browsers-1.4.6" = {
+      name = "_at_puppeteer_slash_browsers";
+      packageName = "@puppeteer/browsers";
+      version = "1.4.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.4.6.tgz";
+        sha512 = "x4BEjr2SjOPowNeiguzjozQbsc6h437ovD/wu+JpaenxVLm3jkgzHY2xOslMTp50HoTvQreMjiexiGQw1sqZlQ==";
+      };
+    };
+    "@puppeteer/browsers-1.9.1" = {
+      name = "_at_puppeteer_slash_browsers";
+      packageName = "@puppeteer/browsers";
+      version = "1.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.9.1.tgz";
+        sha512 = "PuvK6xZzGhKPvlx3fpfdM2kYY3P/hB1URtK8wA7XUJ6prn6pp22zvJHu48th0SGcHL9SutbPHrFuQgfXTFobWA==";
+      };
+    };
+    "@putdotio/api-client-8.42.0" = {
       name = "_at_putdotio_slash_api-client";
       packageName = "@putdotio/api-client";
-      version = "8.40.0";
+      version = "8.42.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@putdotio/api-client/-/api-client-8.40.0.tgz";
-        sha512 = "iPx7OWeafK/X6h2LZj20865fMWip7gZMxWeNCbs/m/j+B5zI7bGWTPK6mJivDBAcIvuMzYy4TqcG/t7PEVxQ+A==";
+        url = "https://registry.npmjs.org/@putdotio/api-client/-/api-client-8.42.0.tgz";
+        sha512 = "LaFaPMOO8WbvwzUlvuzBcBH9aSpqZIkA6MuoKJPNZ293kFSMZPyXkE/VddVXPNq0f5sp7HzdueCMIPOxcom9hg==";
       };
     };
     "@react-native/normalize-color-2.1.0" = {
@@ -9391,40 +9427,139 @@ let
         sha512 = "iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==";
       };
     };
-    "@rushstack/heft-config-file-0.14.2" = {
+    "@rspack/binding-0.4.5" = {
+      name = "_at_rspack_slash_binding";
+      packageName = "@rspack/binding";
+      version = "0.4.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@rspack/binding/-/binding-0.4.5.tgz";
+        sha512 = "XmSlt9ucpfebhkWI4guPEym0F+8JZGr8UyBVAtHN2/7SQRI8TL8G1BUQGVgmc7+UKA5RM1Qfps1QmtHYzjARBQ==";
+      };
+    };
+    "@rspack/binding-darwin-arm64-0.4.5" = {
+      name = "_at_rspack_slash_binding-darwin-arm64";
+      packageName = "@rspack/binding-darwin-arm64";
+      version = "0.4.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@rspack/binding-darwin-arm64/-/binding-darwin-arm64-0.4.5.tgz";
+        sha512 = "H7RaSPN9VEzZf4URZpVV0Is4I1mgOHCzYVxDUZ/9G5vMkTW5baktCxFwbmBPYKcZ8Zoj/hy/DE8fmt1L200NmQ==";
+      };
+    };
+    "@rspack/binding-darwin-x64-0.4.5" = {
+      name = "_at_rspack_slash_binding-darwin-x64";
+      packageName = "@rspack/binding-darwin-x64";
+      version = "0.4.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@rspack/binding-darwin-x64/-/binding-darwin-x64-0.4.5.tgz";
+        sha512 = "K5HgE4nHwVWizCr2pBLA8N3LXfn1lQCSV5sR+6xQQrVdvRJ5zBhPMwjPOzP+AdmGhrD14zz1j9mktzCvA7FUtg==";
+      };
+    };
+    "@rspack/binding-linux-arm64-gnu-0.4.5" = {
+      name = "_at_rspack_slash_binding-linux-arm64-gnu";
+      packageName = "@rspack/binding-linux-arm64-gnu";
+      version = "0.4.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@rspack/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.4.5.tgz";
+        sha512 = "JvESc3imqKbqwal5WesxlV3ix8eIO/07XCj+pkaZWaf4nj/ui02NGtLaeLVxwc1fxHekdLc+ROQrxpdOLhQ1jw==";
+      };
+    };
+    "@rspack/binding-linux-arm64-musl-0.4.5" = {
+      name = "_at_rspack_slash_binding-linux-arm64-musl";
+      packageName = "@rspack/binding-linux-arm64-musl";
+      version = "0.4.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@rspack/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.4.5.tgz";
+        sha512 = "ziYGYEoLsPEyC0pEAj5clU8XOFr3+r7IExm9/sq2gp+M1as/yTzouEuzO3D8kI0xVfub1WmiEktTBlgjS13CSA==";
+      };
+    };
+    "@rspack/binding-linux-x64-gnu-0.4.5" = {
+      name = "_at_rspack_slash_binding-linux-x64-gnu";
+      packageName = "@rspack/binding-linux-x64-gnu";
+      version = "0.4.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@rspack/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.4.5.tgz";
+        sha512 = "9cXOIswpSZYhEXeuIWdsQNrgpjHTD4I3v0NPm75cL6cdBtJMHOa/qejO5mdTLzoDdE7waGZAb4uSMfrJOEkwqQ==";
+      };
+    };
+    "@rspack/binding-linux-x64-musl-0.4.5" = {
+      name = "_at_rspack_slash_binding-linux-x64-musl";
+      packageName = "@rspack/binding-linux-x64-musl";
+      version = "0.4.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@rspack/binding-linux-x64-musl/-/binding-linux-x64-musl-0.4.5.tgz";
+        sha512 = "wClTj9mbVKprHIWsLEVJg+ZXT5slF93JsyAALIhAFkNMmn5z0B2NPD7+Oaii62edKMk2nS3dpoHu1JCLDmP0cw==";
+      };
+    };
+    "@rspack/binding-win32-arm64-msvc-0.4.5" = {
+      name = "_at_rspack_slash_binding-win32-arm64-msvc";
+      packageName = "@rspack/binding-win32-arm64-msvc";
+      version = "0.4.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@rspack/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.4.5.tgz";
+        sha512 = "8LNITZqPMKO69nc8hwdcweBXcAS4yAL5W/kZ6zKeb6Ly+X5SBZk7l0WPL7lPMib/vHFkjJjp1buGhzymLU0bzA==";
+      };
+    };
+    "@rspack/binding-win32-ia32-msvc-0.4.5" = {
+      name = "_at_rspack_slash_binding-win32-ia32-msvc";
+      packageName = "@rspack/binding-win32-ia32-msvc";
+      version = "0.4.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@rspack/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.4.5.tgz";
+        sha512 = "dndiXygG1ZmSO3unuZ9Mc+7IvqBtFqwvjFZGKUdIcufFr2CjZDL/KR1zJGTmFIzwHKMV2hEH4cZpa2TwisXvGQ==";
+      };
+    };
+    "@rspack/binding-win32-x64-msvc-0.4.5" = {
+      name = "_at_rspack_slash_binding-win32-x64-msvc";
+      packageName = "@rspack/binding-win32-x64-msvc";
+      version = "0.4.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@rspack/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.4.5.tgz";
+        sha512 = "SEu8+pQsnGP7A0/XX5vawsccR825UCOzK5phJ8INSC7Mse8FKzkZpv2Af3PsHl2+N17M0PRgBxTghXR35PXkiw==";
+      };
+    };
+    "@rspack/core-0.4.5" = {
+      name = "_at_rspack_slash_core";
+      packageName = "@rspack/core";
+      version = "0.4.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@rspack/core/-/core-0.4.5.tgz";
+        sha512 = "X29fvCqTJH9OYN5pqa2lYP9hBLGICGVugtpTIAyLtMxC7gqvjvZkG/qisaVsjPyg4p2eB0NvmosnHkRv0GJ4sg==";
+      };
+    };
+    "@rushstack/heft-config-file-0.14.3" = {
       name = "_at_rushstack_slash_heft-config-file";
       packageName = "@rushstack/heft-config-file";
-      version = "0.14.2";
+      version = "0.14.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/heft-config-file/-/heft-config-file-0.14.2.tgz";
-        sha512 = "X29DqXN6dyvkZm4hIewFkCCub1lxY8LPsyWSYqkuZ1E5f70ibKBp8P+nf2QzjQ7XcJzqDuq5fWrvPzi5N6M5lg==";
+        url = "https://registry.npmjs.org/@rushstack/heft-config-file/-/heft-config-file-0.14.3.tgz";
+        sha512 = "NjkqzE8A8wn+SHiVWH8BzWKH/dvu3L/8ISt/0ziMfeiNH+lT7hvH0mpTu/FPNQpEx6XqEuoWg0AWkLT7DIpWGw==";
       };
     };
-    "@rushstack/node-core-library-3.61.0" = {
+    "@rushstack/node-core-library-3.62.0" = {
       name = "_at_rushstack_slash_node-core-library";
       packageName = "@rushstack/node-core-library";
-      version = "3.61.0";
+      version = "3.62.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.61.0.tgz";
-        sha512 = "tdOjdErme+/YOu4gPed3sFS72GhtWCgNV9oDsHDnoLY5oDfwjKUc9Z+JOZZ37uAxcm/OCahDHfuu2ugqrfWAVQ==";
+        url = "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.62.0.tgz";
+        sha512 = "88aJn2h8UpSvdwuDXBv1/v1heM6GnBf3RjEy6ZPP7UnzHNCqOHA2Ut+ScYUbXcqIdfew9JlTAe3g+cnX9xQ/Aw==";
       };
     };
-    "@rushstack/package-deps-hash-4.1.12" = {
+    "@rushstack/package-deps-hash-4.1.14" = {
       name = "_at_rushstack_slash_package-deps-hash";
       packageName = "@rushstack/package-deps-hash";
-      version = "4.1.12";
+      version = "4.1.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/package-deps-hash/-/package-deps-hash-4.1.12.tgz";
-        sha512 = "zSW7koJEWo+GZNnAzwbMnLglSUsXm2kysOpEvErv9Z/+HzkCadfbc0t5fpObFK5Nb3ORe4aywxKM3SioTIVINQ==";
+        url = "https://registry.npmjs.org/@rushstack/package-deps-hash/-/package-deps-hash-4.1.14.tgz";
+        sha512 = "OhKs8KhuKvjs2e1YmKCLNfwEVrvziXT5nGvLbc0bZEqPMUpj3OFNARVt6DIdN3pTKqk+YIZeuEZ41GT0MM+cqg==";
       };
     };
-    "@rushstack/package-extractor-0.6.14" = {
+    "@rushstack/package-extractor-0.6.17" = {
       name = "_at_rushstack_slash_package-extractor";
       packageName = "@rushstack/package-extractor";
-      version = "0.6.14";
+      version = "0.6.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/package-extractor/-/package-extractor-0.6.14.tgz";
-        sha512 = "x+7054WlJSfzU8ItW3rHP2R3fqMep91Rpi1DINLNv5D0LqpkoPRzAY8go+WF7/pTZdXkYvCLMae+jkST/ZiK/g==";
+        url = "https://registry.npmjs.org/@rushstack/package-extractor/-/package-extractor-0.6.17.tgz";
+        sha512 = "cNHY0TdTNTaFM9+Lp1dlmNqgt6Wp4UKWldjnkIKudHguhfHFUeaUNi8IU5Q2P2sWnBMjMn+rBDAHO3+RZVkj5w==";
       };
     };
     "@rushstack/rig-package-0.5.1" = {
@@ -9436,58 +9571,58 @@ let
         sha512 = "pXRYSe29TjRw7rqxD4WS3HN/sRSbfr+tJs4a9uuaSIBAITbUggygdhuG0VrO0EO+QqH91GhYMN4S6KRtOEmGVA==";
       };
     };
-    "@rushstack/rush-amazon-s3-build-cache-plugin-5.111.0" = {
+    "@rushstack/rush-amazon-s3-build-cache-plugin-5.112.2" = {
       name = "_at_rushstack_slash_rush-amazon-s3-build-cache-plugin";
       packageName = "@rushstack/rush-amazon-s3-build-cache-plugin";
-      version = "5.111.0";
+      version = "5.112.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/rush-amazon-s3-build-cache-plugin/-/rush-amazon-s3-build-cache-plugin-5.111.0.tgz";
-        sha512 = "gVgA2hFwMBI1gQ1jMlkgbLW4w3I3UojvtYzsHNLRcDI2PEoxSNkltPZ3Q7xG8ckz2y8aKfS5HtLpLLnSVN9xWQ==";
+        url = "https://registry.npmjs.org/@rushstack/rush-amazon-s3-build-cache-plugin/-/rush-amazon-s3-build-cache-plugin-5.112.2.tgz";
+        sha512 = "5vOBZYywOHPOJjuPh3gRT7GxCyA153gBalaRBkXj3SMGEL5s3MSqgU86/YiLaFdkQqWhk9cliIlfhz0NNN5ZEw==";
       };
     };
-    "@rushstack/rush-azure-storage-build-cache-plugin-5.111.0" = {
+    "@rushstack/rush-azure-storage-build-cache-plugin-5.112.2" = {
       name = "_at_rushstack_slash_rush-azure-storage-build-cache-plugin";
       packageName = "@rushstack/rush-azure-storage-build-cache-plugin";
-      version = "5.111.0";
+      version = "5.112.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/rush-azure-storage-build-cache-plugin/-/rush-azure-storage-build-cache-plugin-5.111.0.tgz";
-        sha512 = "bB7ouTZ7EtauZnGF2mbaecZ2FQ2KuqMW8N9ssxPzmGyACKgcGiFCt0l4VloBTU+WkD/yr9ofzNIcUJc8WBZEEA==";
+        url = "https://registry.npmjs.org/@rushstack/rush-azure-storage-build-cache-plugin/-/rush-azure-storage-build-cache-plugin-5.112.2.tgz";
+        sha512 = "VAv42pO6CJZ83Odw6jdLWvxJ5sgKeNgz0NNtrQOQX+I6Tx1OdjV87/4Zz1tkLa1v3TFbOTThXfqXWwVs5lP/6w==";
       };
     };
-    "@rushstack/rush-http-build-cache-plugin-5.111.0" = {
+    "@rushstack/rush-http-build-cache-plugin-5.112.2" = {
       name = "_at_rushstack_slash_rush-http-build-cache-plugin";
       packageName = "@rushstack/rush-http-build-cache-plugin";
-      version = "5.111.0";
+      version = "5.112.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/rush-http-build-cache-plugin/-/rush-http-build-cache-plugin-5.111.0.tgz";
-        sha512 = "yeYTQw9PF2TXVxVKRe5YAgoFQdfjNXFJ944iZTSvwlTIoJU80VuVi/DFj4rltpvY/Zv+H2OkoYUNthAWZQfZig==";
+        url = "https://registry.npmjs.org/@rushstack/rush-http-build-cache-plugin/-/rush-http-build-cache-plugin-5.112.2.tgz";
+        sha512 = "s1Axj9RqHcjtUUwFzElmoKFonPxrs6dvExpF95+GKOO0pAu4cGlddUIkQ156t04y2Y60lelFFJavNEZew9U1dg==";
       };
     };
-    "@rushstack/rush-sdk-5.111.0" = {
+    "@rushstack/rush-sdk-5.112.2" = {
       name = "_at_rushstack_slash_rush-sdk";
       packageName = "@rushstack/rush-sdk";
-      version = "5.111.0";
+      version = "5.112.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/rush-sdk/-/rush-sdk-5.111.0.tgz";
-        sha512 = "gWg3O2sAarow573jBCG4npyzj49SRf6ItemCFD1SDt/tmepbE8uv88noj7PKGo0oh3Rk/24gO3m0NTwF/6huAw==";
+        url = "https://registry.npmjs.org/@rushstack/rush-sdk/-/rush-sdk-5.112.2.tgz";
+        sha512 = "m5XZwJjfA4vVbr0zBBaKXSuEiQ7rc3O2xSGekrwSsHrukMgkiF+J676/KwFrmt62glE+9JU/+RcV8eCfHGH4bA==";
       };
     };
-    "@rushstack/stream-collator-4.1.13" = {
+    "@rushstack/stream-collator-4.1.15" = {
       name = "_at_rushstack_slash_stream-collator";
       packageName = "@rushstack/stream-collator";
-      version = "4.1.13";
+      version = "4.1.15";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/stream-collator/-/stream-collator-4.1.13.tgz";
-        sha512 = "jE0MZSFtsrhYjig4XSuh3J+4R60tAUwpDt+PtD89z7OR6eQOpL19HrTuEaaPph9p0yyurGBRfafLs168wL/BIQ==";
+        url = "https://registry.npmjs.org/@rushstack/stream-collator/-/stream-collator-4.1.15.tgz";
+        sha512 = "CmrFt4LraAFtKOfXbNgAf1CgIa5vaRvWennGmf+h0YBpH6Q+7Jepv+8W17vbdGJolat1zrUgG7nsyoRrP4lZ0w==";
       };
     };
-    "@rushstack/terminal-0.7.12" = {
+    "@rushstack/terminal-0.7.14" = {
       name = "_at_rushstack_slash_terminal";
       packageName = "@rushstack/terminal";
-      version = "0.7.12";
+      version = "0.7.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.7.12.tgz";
-        sha512 = "wTiQvgcdxAmw29m6+2l3P2KnXYm9AL0DwgjOnBf5+yoiFq6sRYUlEZYGicbrjC/dhILd2cXK9vqnsvk36WRHYQ==";
+        url = "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.7.14.tgz";
+        sha512 = "hI5oWcuhqDwLChnv3zlyS9I0AzXYFTiub71CV51Bz+xa9pMyvMNMa/CkIzOzdWRmG9RACgDRPI6wITd0/CpGdA==";
       };
     };
     "@rushstack/ts-command-line-4.17.1" = {
@@ -9508,22 +9643,22 @@ let
         sha512 = "c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==";
       };
     };
-    "@schematics/angular-17.0.2" = {
+    "@schematics/angular-17.0.9" = {
       name = "_at_schematics_slash_angular";
       packageName = "@schematics/angular";
-      version = "17.0.2";
+      version = "17.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/angular/-/angular-17.0.2.tgz";
-        sha512 = "orJx36TzDBBNcKGi2POg4b2nHxypS0iM+cFAOQkrmuuXTdBvaPOp7WEUQYDGzVpleqXmkqhRyrhVCXBZ9MbekQ==";
+        url = "https://registry.npmjs.org/@schematics/angular/-/angular-17.0.9.tgz";
+        sha512 = "XPaHAhobxdQMswH8wSrfToKN7wmGJFh/K5jq/3J+78KeSBZStYxZkVIQbvJkSU8Y1MsdVaeMYKDE8rjFN83OYA==";
       };
     };
-    "@scure/base-1.1.3" = {
+    "@scure/base-1.1.5" = {
       name = "_at_scure_slash_base";
       packageName = "@scure/base";
-      version = "1.1.3";
+      version = "1.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@scure/base/-/base-1.1.3.tgz";
-        sha512 = "/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q==";
+        url = "https://registry.npmjs.org/@scure/base/-/base-1.1.5.tgz";
+        sha512 = "Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ==";
       };
     };
     "@scure/bip32-1.3.1" = {
@@ -9571,103 +9706,67 @@ let
         sha512 = "P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==";
       };
     };
-    "@sentry-internal/tracing-7.81.1" = {
+    "@sentry-internal/tracing-7.92.0" = {
       name = "_at_sentry-internal_slash_tracing";
       packageName = "@sentry-internal/tracing";
-      version = "7.81.1";
+      version = "7.92.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.81.1.tgz";
-        sha512 = "E5xm27xrLXL10knH2EWDQsQYh5nb4SxxZzJ3sJwDGG9XGKzBdlp20UUhKqx00wixooVX9uCj3e4Jg8SvNB1hKg==";
+        url = "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.92.0.tgz";
+        sha512 = "ur55vPcUUUWFUX4eVLNP71ohswK7ZZpleNZw9Y1GfLqyI+0ILQUwjtzqItJrdClvVsdRZJMRmDV40Hp9Lbb9mA==";
       };
     };
-    "@sentry/core-7.81.1" = {
+    "@sentry/core-7.92.0" = {
       name = "_at_sentry_slash_core";
       packageName = "@sentry/core";
-      version = "7.81.1";
+      version = "7.92.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sentry/core/-/core-7.81.1.tgz";
-        sha512 = "tU37yAmckOGCw/moWKSwekSCWWJP15O6luIq+u7wal22hE88F3Vc5Avo8SeF3upnPR+4ejaOFH+BJTr6bgrs6Q==";
+        url = "https://registry.npmjs.org/@sentry/core/-/core-7.92.0.tgz";
+        sha512 = "1Tly7YB2I1byI5xb0Cwrxs56Rhww+6mQ7m9P7rTmdC3/ijOzbEoohtYIUPwcooCEarpbEJe/tAayRx6BrH2UbQ==";
       };
     };
-    "@sentry/node-7.81.1" = {
+    "@sentry/node-7.92.0" = {
       name = "_at_sentry_slash_node";
       packageName = "@sentry/node";
-      version = "7.81.1";
+      version = "7.92.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sentry/node/-/node-7.81.1.tgz";
-        sha512 = "bKS3Mb95bar8AUEZSLKQ/RTSfFXo5sCSPNiBr5dDFuVljDFdkLq6NE3svG5bisrbENqfi0bqWsB4GZ7NHRTPbA==";
+        url = "https://registry.npmjs.org/@sentry/node/-/node-7.92.0.tgz";
+        sha512 = "LZeQL1r6kikEoOzA9K61OmMl32/lK/6PzmFNDH6z7UYwQopCZgVA6IP+CZuln8K2ys5c9hCyF7ICQMysXfpNJA==";
       };
     };
-    "@sentry/types-7.81.1" = {
+    "@sentry/types-7.92.0" = {
       name = "_at_sentry_slash_types";
       packageName = "@sentry/types";
-      version = "7.81.1";
+      version = "7.92.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sentry/types/-/types-7.81.1.tgz";
-        sha512 = "dvJvGyctiaPMIQqa46k56Re5IODWMDxiHJ1UjBs/WYDLrmWFPGrEbyJ8w8CYLhYA+7qqrCyIZmHbWSTRIxstHw==";
+        url = "https://registry.npmjs.org/@sentry/types/-/types-7.92.0.tgz";
+        sha512 = "APmSOuZuoRGpbPpPeYIbMSplPjiWNLZRQa73QiXuTflW4Tu/ItDlU8hOa2+A6JKVkJCuD2EN6yUrxDGSMyNXeg==";
       };
     };
-    "@sentry/utils-7.81.1" = {
+    "@sentry/utils-7.92.0" = {
       name = "_at_sentry_slash_utils";
       packageName = "@sentry/utils";
-      version = "7.81.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@sentry/utils/-/utils-7.81.1.tgz";
-        sha512 = "gq+MDXIirHKxNZ+c9/lVvCXd6y2zaZANujwlFggRH2u9SRiPaIXVilLpvMm4uJqmqBMEcY81ArujExtHvkbCqg==";
-      };
-    };
-    "@serverless/dashboard-plugin-7.2.0" = {
-      name = "_at_serverless_slash_dashboard-plugin";
-      packageName = "@serverless/dashboard-plugin";
-      version = "7.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/dashboard-plugin/-/dashboard-plugin-7.2.0.tgz";
-        sha512 = "Gqzgef+KmrX1OxJW9aubrIN6AvPrtDARMv+NegMNEe+pfkZA/IMuZiSyYUaHgARokdw2/IALOysTLgdFJIrXvA==";
-      };
-    };
-    "@serverless/event-mocks-1.1.1" = {
-      name = "_at_serverless_slash_event-mocks";
-      packageName = "@serverless/event-mocks";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/event-mocks/-/event-mocks-1.1.1.tgz";
-        sha512 = "YAV5V/y+XIOfd+HEVeXfPWZb8C6QLruFk9tBivoX2roQLWVq145s4uxf8D0QioCueuRzkukHUS4JIj+KVoS34A==";
-      };
-    };
-    "@serverless/platform-client-4.5.1" = {
-      name = "_at_serverless_slash_platform-client";
-      packageName = "@serverless/platform-client";
-      version = "4.5.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/platform-client/-/platform-client-4.5.1.tgz";
-        sha512 = "XltmO/029X76zi0LUFmhsnanhE2wnqH1xf+WBt5K8gumQA9LnrfwLgPxj+VA+mm6wQhy+PCp7H5SS0ZPu7F2Cw==";
-      };
-    };
-    "@serverless/utils-6.15.0" = {
-      name = "_at_serverless_slash_utils";
-      packageName = "@serverless/utils";
-      version = "6.15.0";
+      version = "7.92.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/utils/-/utils-6.15.0.tgz";
-        sha512 = "7eDbqKv/OBd11jjdZjUwFGN8sHWkeUqLeHXHQxQ1azja2IM7WIH+z/aLgzR6LhB3/MINNwtjesDpjGqTMj2JKQ==";
+        url = "https://registry.npmjs.org/@sentry/utils/-/utils-7.92.0.tgz";
+        sha512 = "3nEfrQ1z28b/2zgFGANPh5yMVtgwXmrasZxTvKbrAj+KWJpjrJHrIR84r9W277J44NMeZ5RhRW2uoDmuBslPnA==";
       };
     };
-    "@shopify/cli-kit-3.51.0" = {
+    "@shopify/cli-kit-3.53.0" = {
       name = "_at_shopify_slash_cli-kit";
       packageName = "@shopify/cli-kit";
-      version = "3.51.0";
+      version = "3.53.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@shopify/cli-kit/-/cli-kit-3.51.0.tgz";
-        sha512 = "9lnkgjKrgeV7mfEiM0uA+FotyvmNh9Op93dtkTgYSkyc4ungdrW6W8sMSGOqVWXUIkJvIZi1bNLOZ0Csk+B6WQ==";
+        url = "https://registry.npmjs.org/@shopify/cli-kit/-/cli-kit-3.53.0.tgz";
+        sha512 = "Rw5koF98VoiD5bbZ2Sd0UsmZY1aP6U6I+IUJKcu1V59BQgvHoVkIAnok7wkzUWbwjDQNH5kf/edwC8HgLpEXjA==";
       };
     };
-    "@shopify/plugin-did-you-mean-3.51.0" = {
+    "@shopify/plugin-did-you-mean-3.53.0" = {
       name = "_at_shopify_slash_plugin-did-you-mean";
       packageName = "@shopify/plugin-did-you-mean";
-      version = "3.51.0";
+      version = "3.53.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@shopify/plugin-did-you-mean/-/plugin-did-you-mean-3.51.0.tgz";
-        sha512 = "E7blfd/el4Xryg4cl3Hfwia2KrqYMdK0V5ccoyW/hVY4zlZJzdHRI2w9Ix1cETcCsMo/QQMN0+wWnHw80GZufQ==";
+        url = "https://registry.npmjs.org/@shopify/plugin-did-you-mean/-/plugin-did-you-mean-3.53.0.tgz";
+        sha512 = "DM48Z+oFKiU/01xgTPBjXwL6HYWSATEHKplHXb2rjPVF2IOtnf3hcgOCfaz+hmQk3W28BYLlocF2RcPNkDIASw==";
       };
     };
     "@sideway/address-4.1.4" = {
@@ -9850,13 +9949,22 @@ let
         sha512 = "TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==";
       };
     };
-    "@smithy/abort-controller-2.0.13" = {
+    "@sindresorhus/merge-streams-1.0.0" = {
+      name = "_at_sindresorhus_slash_merge-streams";
+      packageName = "@sindresorhus/merge-streams";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-1.0.0.tgz";
+        sha512 = "rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==";
+      };
+    };
+    "@smithy/abort-controller-2.0.16" = {
       name = "_at_smithy_slash_abort-controller";
       packageName = "@smithy/abort-controller";
-      version = "2.0.13";
+      version = "2.0.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-2.0.13.tgz";
-        sha512 = "eeOPD+GF9BzF/Mjy3PICLePx4l0f3rG/nQegQHRLTloN5p1lSJJNZsyn+FzDnW8P2AduragZqJdtKNCxXozB1Q==";
+        url = "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-2.0.16.tgz";
+        sha512 = "4foO7738k8kM9flMHu3VLabqu7nPgvIj8TB909S0CnKx0YZz/dcDH3pZ/4JHdatfxlZdKF1JWOYCw9+v3HVVsw==";
       };
     };
     "@smithy/chunked-blob-reader-2.0.0" = {
@@ -9877,112 +9985,121 @@ let
         sha512 = "N2oCZRglhWKm7iMBu7S6wDzXirjAofi7tAd26cxmgibRYOBS4D3hGfmkwCpHdASZzwZDD8rluh0Rcqw1JeZDRw==";
       };
     };
-    "@smithy/config-resolver-2.0.18" = {
+    "@smithy/config-resolver-2.0.23" = {
       name = "_at_smithy_slash_config-resolver";
       packageName = "@smithy/config-resolver";
-      version = "2.0.18";
+      version = "2.0.23";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-2.0.18.tgz";
-        sha512 = "761sJSgNbvsqcsKW6/WZbrZr4H+0Vp/QKKqwyrxCPwD8BsiPEXNHyYnqNgaeK9xRWYswjon0Uxbpe3DWQo0j/g==";
+        url = "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-2.0.23.tgz";
+        sha512 = "XakUqgtP2YY8Mi+Nlif5BiqJgWdvfxJafSpOSQeCOMizu+PUhE4fBQSy6xFcR+eInrwVadaABNxoJyGUMn15ew==";
       };
     };
-    "@smithy/credential-provider-imds-2.1.1" = {
+    "@smithy/core-1.2.2" = {
+      name = "_at_smithy_slash_core";
+      packageName = "@smithy/core";
+      version = "1.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@smithy/core/-/core-1.2.2.tgz";
+        sha512 = "uLjrskLT+mWb0emTR5QaiAIxVEU7ndpptDaVDrTwwhD+RjvHhjIiGQ3YL5jKk1a5VSDQUA2RGkXvJ6XKRcz6Dg==";
+      };
+    };
+    "@smithy/credential-provider-imds-2.1.5" = {
       name = "_at_smithy_slash_credential-provider-imds";
       packageName = "@smithy/credential-provider-imds";
-      version = "2.1.1";
+      version = "2.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.1.1.tgz";
-        sha512 = "gw5G3FjWC6sNz8zpOJgPpH5HGKrpoVFQpToNAwLwJVyI/LJ2jDJRjSKEsM6XI25aRpYjMSE/Qptxx305gN1vHw==";
+        url = "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.1.5.tgz";
+        sha512 = "VfvE6Wg1MUWwpTZFBnUD7zxvPhLY8jlHCzu6bCjlIYoWgXCDzZAML76IlZUEf45nib3rjehnFgg0s1rgsuN/bg==";
       };
     };
-    "@smithy/eventstream-codec-2.0.13" = {
+    "@smithy/eventstream-codec-2.0.16" = {
       name = "_at_smithy_slash_eventstream-codec";
       packageName = "@smithy/eventstream-codec";
-      version = "2.0.13";
+      version = "2.0.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-2.0.13.tgz";
-        sha512 = "CExbelIYp+DxAHG8RIs0l9QL7ElqhG4ym9BNoSpkPa4ptBQfzJdep3LbOSVJIE2VUdBAeObdeL6EDB3Jo85n3g==";
+        url = "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-2.0.16.tgz";
+        sha512 = "umYh5pdCE9GHgiMAH49zu9wXWZKNHHdKPm/lK22WYISTjqu29SepmpWNmPiBLy/yUu4HFEGJHIFrDWhbDlApaw==";
       };
     };
-    "@smithy/eventstream-serde-browser-2.0.13" = {
+    "@smithy/eventstream-serde-browser-2.0.16" = {
       name = "_at_smithy_slash_eventstream-serde-browser";
       packageName = "@smithy/eventstream-serde-browser";
-      version = "2.0.13";
+      version = "2.0.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.0.13.tgz";
-        sha512 = "OJ/2g/VxkzA+mYZxV102oX3CsiE+igTSmqq/ir3oEVG2kSIdRC00ryttj/lmL14W06ExNi0ysmfLxQkL8XrAZQ==";
+        url = "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.0.16.tgz";
+        sha512 = "W+BdiN728R57KuZOcG0GczpIOEFf8S5RP/OdVH7T3FMCy8HU2bBU0vB5xZZR5c00VRdoeWrohNv3XlHoZuGRoA==";
       };
     };
-    "@smithy/eventstream-serde-config-resolver-2.0.13" = {
+    "@smithy/eventstream-serde-config-resolver-2.0.16" = {
       name = "_at_smithy_slash_eventstream-serde-config-resolver";
       packageName = "@smithy/eventstream-serde-config-resolver";
-      version = "2.0.13";
+      version = "2.0.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.0.13.tgz";
-        sha512 = "2BI1CbnYuEvAYoWSeWJtPNygbIKiWeSLxCmDLnyM6wQV32Of7VptiQlaFXPxXp4zqn/rs3ocZ/T29rxE4s4Gsg==";
+        url = "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.0.16.tgz";
+        sha512 = "8qrE4nh+Tg6m1SMFK8vlzoK+8bUFTlIhXidmmQfASMninXW3Iu0T0bI4YcIk4nLznHZdybQ0qGydIanvVZxzVg==";
       };
     };
-    "@smithy/eventstream-serde-node-2.0.13" = {
+    "@smithy/eventstream-serde-node-2.0.16" = {
       name = "_at_smithy_slash_eventstream-serde-node";
       packageName = "@smithy/eventstream-serde-node";
-      version = "2.0.13";
+      version = "2.0.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.0.13.tgz";
-        sha512 = "7NbFwPafb924elFxCBDvm48jy/DeSrpFbFQN0uN2ThuY5HrEeubikS0t7WMva4Z4EnRoivpbuT0scb9vUIJKoA==";
+        url = "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.0.16.tgz";
+        sha512 = "NRNQuOa6mQdFSkqzY0IV37swHWx0SEoKxFtUfdZvfv0AVQPlSw4N7E3kcRSCpnHBr1kCuWWirdDlWcjWuD81MA==";
       };
     };
-    "@smithy/eventstream-serde-universal-2.0.13" = {
+    "@smithy/eventstream-serde-universal-2.0.16" = {
       name = "_at_smithy_slash_eventstream-serde-universal";
       packageName = "@smithy/eventstream-serde-universal";
-      version = "2.0.13";
+      version = "2.0.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.0.13.tgz";
-        sha512 = "j0yFd5UfftM+ia9dxLRbheJDCkCZBHpcEzCsPO8BxVOTbdcX/auVJCv6ov/yvpCKsf4Hv3mOqi0Is1YogM2g3Q==";
+        url = "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.0.16.tgz";
+        sha512 = "ZyLnGaYQMLc75j9kKEVMJ3X6bdBE9qWxhZdTXM5RIltuytxJC3FaOhawBxjE+IL1enmWSIohHGZCm/pLwEliQA==";
       };
     };
-    "@smithy/fetch-http-handler-2.2.6" = {
+    "@smithy/fetch-http-handler-2.3.2" = {
       name = "_at_smithy_slash_fetch-http-handler";
       packageName = "@smithy/fetch-http-handler";
-      version = "2.2.6";
+      version = "2.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.2.6.tgz";
-        sha512 = "PStY3XO1Ksjwn3wMKye5U6m6zxXpXrXZYqLy/IeCbh3nM9QB3Jgw/B0PUSLUWKdXg4U8qgEu300e3ZoBvZLsDg==";
+        url = "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.3.2.tgz";
+        sha512 = "O9R/OlnAOTsnysuSDjt0v2q6DcSvCz5cCFC/CFAWWcLyBwJDeFyGTCTszgpQTb19+Fi8uRwZE5/3ziAQBFeDMQ==";
       };
     };
-    "@smithy/hash-blob-browser-2.0.14" = {
+    "@smithy/hash-blob-browser-2.0.17" = {
       name = "_at_smithy_slash_hash-blob-browser";
       packageName = "@smithy/hash-blob-browser";
-      version = "2.0.14";
+      version = "2.0.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-2.0.14.tgz";
-        sha512 = "yWdghyPJIEqLYsaE7YVgd3YhM7jN4Pv6eJQvTomnMsz5K2qRBlpjUx3T9fKlElp1qdeQ7DNc3sAat4i9CUBO7Q==";
+        url = "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-2.0.17.tgz";
+        sha512 = "/mPpv1sRiRDdjO4zZuO8be6eeabmg5AVgKDfnmmqkpBtRyMGSJb968fjRuHt+FRAsIGywgIKJFmUUAYjhsi1oQ==";
       };
     };
-    "@smithy/hash-node-2.0.15" = {
+    "@smithy/hash-node-2.0.18" = {
       name = "_at_smithy_slash_hash-node";
       packageName = "@smithy/hash-node";
-      version = "2.0.15";
+      version = "2.0.18";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-2.0.15.tgz";
-        sha512 = "t/qjEJZu/G46A22PAk1k/IiJZT4ncRkG5GOCNWN9HPPy5rCcSZUbh7gwp7CGKgJJ7ATMMg+0Td7i9o1lQTwOfQ==";
+        url = "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-2.0.18.tgz";
+        sha512 = "gN2JFvAgnZCyDN9rJgcejfpK0uPPJrSortVVVVWsru9whS7eQey6+gj2eM5ln2i6rHNntIXzal1Fm9XOPuoaKA==";
       };
     };
-    "@smithy/hash-stream-node-2.0.15" = {
+    "@smithy/hash-stream-node-2.0.18" = {
       name = "_at_smithy_slash_hash-stream-node";
       packageName = "@smithy/hash-stream-node";
-      version = "2.0.15";
+      version = "2.0.18";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-2.0.15.tgz";
-        sha512 = "ZZ6kC/pHt5Dc2goXIIyC8uA7A4GUMSzdCynAabnZ3CSSaV6ctP8mlvVkqjPph0O3XzHlx/80gdLrNqi1GDPUsA==";
+        url = "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-2.0.18.tgz";
+        sha512 = "OuFk+ITpv8CtxGjQcS8GA04faNycu9UMm6YobvQzjeEoXZ0dLF6sRfuzD+3S8RHPKpTyLuXtKG1+GiJycZ5TcA==";
       };
     };
-    "@smithy/invalid-dependency-2.0.13" = {
+    "@smithy/invalid-dependency-2.0.16" = {
       name = "_at_smithy_slash_invalid-dependency";
       packageName = "@smithy/invalid-dependency";
-      version = "2.0.13";
+      version = "2.0.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-2.0.13.tgz";
-        sha512 = "XsGYhVhvEikX1Yz0kyIoLssJf2Rs6E0U2w2YuKdT4jSra5A/g8V2oLROC1s56NldbgnpesTYB2z55KCHHbKyjw==";
+        url = "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-2.0.16.tgz";
+        sha512 = "apEHakT/kmpNo1VFHP4W/cjfeP9U0x5qvfsLJubgp7UM/gq4qYp0GbqdE7QhsjUaYvEnrftRqs7+YrtWreV0wA==";
       };
     };
     "@smithy/is-array-buffer-2.0.0" = {
@@ -9994,166 +10111,166 @@ let
         sha512 = "z3PjFjMyZNI98JFRJi/U0nGoLWMSJlDjAW4QUX2WNZLas5C0CmVV6LJ01JI0k90l7FvpmixjWxPFmENSClQ7ug==";
       };
     };
-    "@smithy/md5-js-2.0.15" = {
+    "@smithy/md5-js-2.0.18" = {
       name = "_at_smithy_slash_md5-js";
       packageName = "@smithy/md5-js";
-      version = "2.0.15";
+      version = "2.0.18";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-2.0.15.tgz";
-        sha512 = "pAZaokib56XvhU0t/R9vAcr3L3bMhIakhF25X7EMSQ7LAURiLfce/tgON8I3x/dIbnZUyeRi8f2cx2azu6ATew==";
+        url = "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-2.0.18.tgz";
+        sha512 = "bHwZ8/m6RbERQdVW5rJ2LzeW8qxfXv6Q/S7Fiudhso4pWRrksqLx3nsGZw7bmqqfN4zLqkxydxSa9+4c7s5zxg==";
       };
     };
-    "@smithy/middleware-content-length-2.0.15" = {
+    "@smithy/middleware-content-length-2.0.18" = {
       name = "_at_smithy_slash_middleware-content-length";
       packageName = "@smithy/middleware-content-length";
-      version = "2.0.15";
+      version = "2.0.18";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-2.0.15.tgz";
-        sha512 = "xH4kRBw01gJgWiU+/mNTrnyFXeozpZHw39gLb3JKGsFDVmSrJZ8/tRqu27tU/ki1gKkxr2wApu+dEYjI3QwV1Q==";
+        url = "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-2.0.18.tgz";
+        sha512 = "ZJ9uKPTfxYheTKSKYB+GCvcj+izw9WGzRLhjn8n254q0jWLojUzn7Vw0l4R/Gq7Wdpf/qmk/ptD+6CCXHNVCaw==";
       };
     };
-    "@smithy/middleware-endpoint-2.2.0" = {
+    "@smithy/middleware-endpoint-2.3.0" = {
       name = "_at_smithy_slash_middleware-endpoint";
       packageName = "@smithy/middleware-endpoint";
-      version = "2.2.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.2.0.tgz";
-        sha512 = "tddRmaig5URk2106PVMiNX6mc5BnKIKajHHDxb7K0J5MLdcuQluHMGnjkv18iY9s9O0tF+gAcPd/pDXA5L9DZw==";
+        url = "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.3.0.tgz";
+        sha512 = "VsOAG2YQ8ykjSmKO+CIXdJBIWFo6AAvG6Iw95BakBTqk66/4BI7XyqLevoNSq/lZ6NgZv24sLmrcIN+fLDWBCg==";
       };
     };
-    "@smithy/middleware-retry-2.0.20" = {
+    "@smithy/middleware-retry-2.0.26" = {
       name = "_at_smithy_slash_middleware-retry";
       packageName = "@smithy/middleware-retry";
-      version = "2.0.20";
+      version = "2.0.26";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-2.0.20.tgz";
-        sha512 = "X2yrF/SHDk2WDd8LflRNS955rlzQ9daz9UWSp15wW8KtzoTXg3bhHM78HbK1cjr48/FWERSJKh9AvRUUGlIawg==";
+        url = "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-2.0.26.tgz";
+        sha512 = "Qzpxo0U5jfNiq9iD38U3e2bheXwvTEX4eue9xruIvEgh+UKq6dKuGqcB66oBDV7TD/mfoJi9Q/VmaiqwWbEp7A==";
       };
     };
-    "@smithy/middleware-serde-2.0.13" = {
+    "@smithy/middleware-serde-2.0.16" = {
       name = "_at_smithy_slash_middleware-serde";
       packageName = "@smithy/middleware-serde";
-      version = "2.0.13";
+      version = "2.0.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.0.13.tgz";
-        sha512 = "tBGbeXw+XsE6pPr4UaXOh+UIcXARZeiA8bKJWxk2IjJcD1icVLhBSUQH9myCIZLNNzJIH36SDjUX8Wqk4xJCJg==";
+        url = "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.0.16.tgz";
+        sha512 = "5EAd4t30pcc4M8TSSGq7q/x5IKrxfXR5+SrU4bgxNy7RPHQo2PSWBUco9C+D9Tfqp/JZvprRpK42dnupZafk2g==";
       };
     };
-    "@smithy/middleware-stack-2.0.7" = {
+    "@smithy/middleware-stack-2.0.10" = {
       name = "_at_smithy_slash_middleware-stack";
       packageName = "@smithy/middleware-stack";
-      version = "2.0.7";
+      version = "2.0.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-2.0.7.tgz";
-        sha512 = "L1KLAAWkXbGx1t2jjCI/mDJ2dDNq+rp4/ifr/HcC6FHngxho5O7A5bQLpKHGlkfATH6fUnOEx0VICEVFA4sUzw==";
+        url = "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-2.0.10.tgz";
+        sha512 = "I2rbxctNq9FAPPEcuA1ntZxkTKOPQFy7YBPOaD/MLg1zCvzv21CoNxR0py6J8ZVC35l4qE4nhxB0f7TF5/+Ldw==";
       };
     };
-    "@smithy/node-config-provider-2.1.5" = {
+    "@smithy/node-config-provider-2.1.9" = {
       name = "_at_smithy_slash_node-config-provider";
       packageName = "@smithy/node-config-provider";
-      version = "2.1.5";
+      version = "2.1.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.1.5.tgz";
-        sha512 = "3Omb5/h4tOCuKRx4p4pkYTvEYRCYoKk52bOYbKUyz/G/8gERbagsN8jFm4FjQubkrcIqQEghTpQaUw6uk+0edw==";
+        url = "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.1.9.tgz";
+        sha512 = "tUyW/9xrRy+s7RXkmQhgYkAPMpTIF8izK4orhHjNFEKR3QZiOCbWB546Y8iB/Fpbm3O9+q0Af9rpywLKJOwtaQ==";
       };
     };
-    "@smithy/node-http-handler-2.1.9" = {
+    "@smithy/node-http-handler-2.2.2" = {
       name = "_at_smithy_slash_node-http-handler";
       packageName = "@smithy/node-http-handler";
-      version = "2.1.9";
+      version = "2.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.1.9.tgz";
-        sha512 = "+K0q3SlNcocmo9OZj+fz67gY4lwhOCvIJxVbo/xH+hfWObvaxrMTx7JEzzXcluK0thnnLz++K3Qe7Z/8MDUreA==";
+        url = "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.2.2.tgz";
+        sha512 = "XO58TO/Eul/IBQKFKaaBtXJi0ItEQQCT+NI4IiKHCY/4KtqaUT6y/wC1EvDqlA9cP7Dyjdj7FdPs4DyynH3u7g==";
       };
     };
-    "@smithy/property-provider-2.0.14" = {
+    "@smithy/property-provider-2.0.17" = {
       name = "_at_smithy_slash_property-provider";
       packageName = "@smithy/property-provider";
-      version = "2.0.14";
+      version = "2.0.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.0.14.tgz";
-        sha512 = "k3D2qp9o6imTrLaXRj6GdLYEJr1sXqS99nLhzq8fYmJjSVOeMg/G+1KVAAc7Oxpu71rlZ2f8SSZxcSxkevuR0A==";
+        url = "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.0.17.tgz";
+        sha512 = "+VkeZbVu7qtQ2DjI48Qwaf9fPOr3gZIwxQpuLJgRRSkWsdSvmaTCxI3gzRFKePB63Ts9r4yjn4HkxSCSkdWmcQ==";
       };
     };
-    "@smithy/protocol-http-3.0.9" = {
+    "@smithy/protocol-http-3.0.12" = {
       name = "_at_smithy_slash_protocol-http";
       packageName = "@smithy/protocol-http";
-      version = "3.0.9";
+      version = "3.0.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.0.9.tgz";
-        sha512 = "U1wl+FhYu4/BC+rjwh1lg2gcJChQhytiNQSggREgQ9G2FzmoK9sACBZvx7thyWMvRyHQTE22mO2d5UM8gMKDBg==";
+        url = "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.0.12.tgz";
+        sha512 = "Xz4iaqLiaBfbQpB9Hgi3VcZYbP7xRDXYhd8XWChh4v94uw7qwmvlxdU5yxzfm6ACJM66phHrTbS5TVvj5uQ72w==";
       };
     };
-    "@smithy/querystring-builder-2.0.13" = {
+    "@smithy/querystring-builder-2.0.16" = {
       name = "_at_smithy_slash_querystring-builder";
       packageName = "@smithy/querystring-builder";
-      version = "2.0.13";
+      version = "2.0.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.0.13.tgz";
-        sha512 = "JhXKwp3JtsFUe96XLHy/nUPEbaXqn6r7xE4sNaH8bxEyytE5q1fwt0ew/Ke6+vIC7gP87HCHgQpJHg1X1jN2Fw==";
+        url = "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.0.16.tgz";
+        sha512 = "Q/GsJT0C0mijXMRs7YhZLLCP5FcuC4797lYjKQkME5CZohnLC4bEhylAd2QcD3gbMKNjCw8+T2I27WKiV/wToA==";
       };
     };
-    "@smithy/querystring-parser-2.0.13" = {
+    "@smithy/querystring-parser-2.0.16" = {
       name = "_at_smithy_slash_querystring-parser";
       packageName = "@smithy/querystring-parser";
-      version = "2.0.13";
+      version = "2.0.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.0.13.tgz";
-        sha512 = "TEiT6o8CPZVxJ44Rly/rrsATTQsE+b/nyBVzsYn2sa75xAaZcurNxsFd8z1haoUysONiyex24JMHoJY6iCfLdA==";
+        url = "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.0.16.tgz";
+        sha512 = "c4ueAuL6BDYKWpkubjrQthZKoC3L5kql5O++ovekNxiexRXTlLIVlCR4q3KziOktLIw66EU9SQljPXd/oN6Okg==";
       };
     };
-    "@smithy/service-error-classification-2.0.6" = {
+    "@smithy/service-error-classification-2.0.9" = {
       name = "_at_smithy_slash_service-error-classification";
       packageName = "@smithy/service-error-classification";
-      version = "2.0.6";
+      version = "2.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-2.0.6.tgz";
-        sha512 = "fCQ36frtYra2fqY2/DV8+3/z2d0VB/1D1hXbjRcM5wkxTToxq6xHbIY/NGGY6v4carskMyG8FHACxgxturJ9Pg==";
+        url = "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-2.0.9.tgz";
+        sha512 = "0K+8GvtwI7VkGmmInPydM2XZyBfIqLIbfR7mDQ+oPiz8mIinuHbV6sxOLdvX1Jv/myk7XTK9orgt3tuEpBu/zg==";
       };
     };
-    "@smithy/shared-ini-file-loader-2.2.4" = {
+    "@smithy/shared-ini-file-loader-2.2.8" = {
       name = "_at_smithy_slash_shared-ini-file-loader";
       packageName = "@smithy/shared-ini-file-loader";
-      version = "2.2.4";
+      version = "2.2.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.2.4.tgz";
-        sha512 = "9dRknGgvYlRIsoTcmMJXuoR/3ekhGwhRq4un3ns2/byre4Ql5hyUN4iS0x8eITohjU90YOnUCsbRwZRvCkbRfw==";
+        url = "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.2.8.tgz";
+        sha512 = "E62byatbwSWrtq9RJ7xN40tqrRKDGrEL4EluyNpaIDvfvet06a/QC58oHw2FgVaEgkj0tXZPjZaKrhPfpoU0qw==";
       };
     };
-    "@smithy/signature-v4-2.0.15" = {
+    "@smithy/signature-v4-2.0.19" = {
       name = "_at_smithy_slash_signature-v4";
       packageName = "@smithy/signature-v4";
-      version = "2.0.15";
+      version = "2.0.19";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-2.0.15.tgz";
-        sha512 = "SRTEJSEhQYVlBKIIdZ9SZpqW+KFqxqcNnEcBX+8xkDdWx+DItme9VcCDkdN32yTIrICC+irUufnUdV7mmHPjoA==";
+        url = "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-2.0.19.tgz";
+        sha512 = "nwc3JihdM+kcJjtORv/n7qRHN2Kfh7S2RJI2qr8pz9UcY5TD8rSCRGQ0g81HgyS3jZ5X9U/L4p014P3FonBPhg==";
       };
     };
-    "@smithy/smithy-client-2.1.15" = {
+    "@smithy/smithy-client-2.2.1" = {
       name = "_at_smithy_slash_smithy-client";
       packageName = "@smithy/smithy-client";
-      version = "2.1.15";
+      version = "2.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.1.15.tgz";
-        sha512 = "rngZcQu7Jvs9UbHihK1EI67RMPuzkc3CJmu4MBgB7D7yBnMGuFR86tq5rqHfL2gAkNnMelBN/8kzQVvZjNKefQ==";
+        url = "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.2.1.tgz";
+        sha512 = "SpD7FLK92XV2fon2hMotaNDa2w5VAy5/uVjP9WFmjGSgWM8pTPVkHcDl1yFs5Z8LYbij0FSz+DbCBK6i+uXXUA==";
       };
     };
-    "@smithy/types-2.5.0" = {
+    "@smithy/types-2.8.0" = {
       name = "_at_smithy_slash_types";
       packageName = "@smithy/types";
-      version = "2.5.0";
+      version = "2.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/types/-/types-2.5.0.tgz";
-        sha512 = "/a31lYofrMBkJb3BuPlYJTMKDj0hUmKUP6JFZQu6YVuQVoAjubiY0A52U9S0Uysd33n/djexCUSNJ+G9bf3/aA==";
+        url = "https://registry.npmjs.org/@smithy/types/-/types-2.8.0.tgz";
+        sha512 = "h9sz24cFgt/W1Re22OlhQKmUZkNh244ApgRsUDYinqF8R+QgcsBIX344u2j61TPshsTz3CvL6HYU1DnQdsSrHA==";
       };
     };
-    "@smithy/url-parser-2.0.13" = {
+    "@smithy/url-parser-2.0.16" = {
       name = "_at_smithy_slash_url-parser";
       packageName = "@smithy/url-parser";
-      version = "2.0.13";
+      version = "2.0.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.0.13.tgz";
-        sha512 = "okWx2P/d9jcTsZWTVNnRMpFOE7fMkzloSFyM53fA7nLKJQObxM2T4JlZ5KitKKuXq7pxon9J6SF2kCwtdflIrA==";
+        url = "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.0.16.tgz";
+        sha512 = "Wfz5WqAoRT91TjRy1JeLR0fXtkIXHGsMbgzKFTx7E68SrZ55TB8xoG+vm11Ru4gheFTMXjAjwAxv1jQdC+pAQA==";
       };
     };
     "@smithy/util-base64-2.0.1" = {
@@ -10165,13 +10282,13 @@ let
         sha512 = "DlI6XFYDMsIVN+GH9JtcRp3j02JEVuWIn/QOZisVzpIAprdsxGveFed0bjbMRCqmIFe8uetn5rxzNrBtIGrPIQ==";
       };
     };
-    "@smithy/util-body-length-browser-2.0.0" = {
+    "@smithy/util-body-length-browser-2.0.1" = {
       name = "_at_smithy_slash_util-body-length-browser";
       packageName = "@smithy/util-body-length-browser";
-      version = "2.0.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-2.0.0.tgz";
-        sha512 = "JdDuS4ircJt+FDnaQj88TzZY3+njZ6O+D3uakS32f2VNnDo3vyEuNdBOh/oFd8Df1zSZOuH1HEChk2AOYDezZg==";
+        url = "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-2.0.1.tgz";
+        sha512 = "NXYp3ttgUlwkaug4bjBzJ5+yIbUbUx8VsSLuHZROQpoik+gRkIBeEG9MPVYfvPNpuXb/puqodeeUXcKFe7BLOQ==";
       };
     };
     "@smithy/util-body-length-node-2.1.0" = {
@@ -10192,40 +10309,40 @@ let
         sha512 = "/YNnLoHsR+4W4Vf2wL5lGv0ksg8Bmk3GEGxn2vEQt52AQaPSCuaO5PM5VM7lP1K9qHRKHwrPGktqVoAHKWHxzw==";
       };
     };
-    "@smithy/util-config-provider-2.0.0" = {
+    "@smithy/util-config-provider-2.1.0" = {
       name = "_at_smithy_slash_util-config-provider";
       packageName = "@smithy/util-config-provider";
-      version = "2.0.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-2.0.0.tgz";
-        sha512 = "xCQ6UapcIWKxXHEU4Mcs2s7LcFQRiU3XEluM2WcCjjBtQkUN71Tb+ydGmJFPxMUrW/GWMgQEEGipLym4XG0jZg==";
+        url = "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-2.1.0.tgz";
+        sha512 = "S6V0JvvhQgFSGLcJeT1CBsaTR03MM8qTuxMH9WPCCddlSo2W0V5jIHimHtIQALMLEDPGQ0ROSRr/dU0O+mxiQg==";
       };
     };
-    "@smithy/util-defaults-mode-browser-2.0.19" = {
+    "@smithy/util-defaults-mode-browser-2.0.24" = {
       name = "_at_smithy_slash_util-defaults-mode-browser";
       packageName = "@smithy/util-defaults-mode-browser";
-      version = "2.0.19";
+      version = "2.0.24";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.0.19.tgz";
-        sha512 = "VHP8xdFR7/orpiABJwgoTB0t8Zhhwpf93gXhNfUBiwAE9O0rvsv7LwpQYjgvbOUDDO8JfIYQB2GYJNkqqGWsXw==";
+        url = "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.0.24.tgz";
+        sha512 = "TsP5mBuLgO2C21+laNG2nHYZEyUdkbGURv2tHvSuQQxLz952MegX95uwdxOY2jR2H4GoKuVRfdJq7w4eIjGYeg==";
       };
     };
-    "@smithy/util-defaults-mode-node-2.0.25" = {
+    "@smithy/util-defaults-mode-node-2.0.32" = {
       name = "_at_smithy_slash_util-defaults-mode-node";
       packageName = "@smithy/util-defaults-mode-node";
-      version = "2.0.25";
+      version = "2.0.32";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.0.25.tgz";
-        sha512 = "jkmep6/JyWmn2ADw9VULDeGbugR4N/FJCKOt+gYyVswmN1BJOfzF2umaYxQ1HhQDvna3kzm1Dbo1qIfBW4iuHA==";
+        url = "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.0.32.tgz";
+        sha512 = "d0S33dXA2cq1NyorVMroMrEtqKMr3MlyLITcfTBf9pXiigYiPMOtbSI7czHIfDbuVuM89Cg0urAgpt73QV9mPQ==";
       };
     };
-    "@smithy/util-endpoints-1.0.4" = {
+    "@smithy/util-endpoints-1.0.8" = {
       name = "_at_smithy_slash_util-endpoints";
       packageName = "@smithy/util-endpoints";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-1.0.4.tgz";
-        sha512 = "FPry8j1xye5yzrdnf4xKUXVnkQErxdN7bUIaqC0OFoGsv2NfD9b2UUMuZSSt+pr9a8XWAqj0HoyVNUfPiZ/PvQ==";
+        url = "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-1.0.8.tgz";
+        sha512 = "l8zVuyZZ61IzZBYp5NWvsAhbaAjYkt0xg9R4xUASkg5SEeTT2meHOJwJHctKMFUXe4QZbn9fR2MaBYjP2119+w==";
       };
     };
     "@smithy/util-hex-encoding-2.0.0" = {
@@ -10237,31 +10354,31 @@ let
         sha512 = "c5xY+NUnFqG6d7HFh1IFfrm3mGl29lC+vF+geHv4ToiuJCBmIfzx6IeHLg+OgRdPFKDXIw6pvi+p3CsscaMcMA==";
       };
     };
-    "@smithy/util-middleware-2.0.6" = {
+    "@smithy/util-middleware-2.0.9" = {
       name = "_at_smithy_slash_util-middleware";
       packageName = "@smithy/util-middleware";
-      version = "2.0.6";
+      version = "2.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.0.6.tgz";
-        sha512 = "7W4uuwBvSLgKoLC1x4LfeArCVcbuHdtVaC4g30kKsD1erfICyQ45+tFhhs/dZNeQg+w392fhunCm/+oCcb6BSA==";
+        url = "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.0.9.tgz";
+        sha512 = "PnCnBJ07noMX1lMDTEefmxSlusWJUiLfrme++MfK5TD0xz8NYmakgoXy5zkF/16zKGmiwOeKAztWT/Vjk1KRIQ==";
       };
     };
-    "@smithy/util-retry-2.0.6" = {
+    "@smithy/util-retry-2.0.9" = {
       name = "_at_smithy_slash_util-retry";
       packageName = "@smithy/util-retry";
-      version = "2.0.6";
+      version = "2.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-2.0.6.tgz";
-        sha512 = "PSO41FofOBmyhPQJwBQJ6mVlaD7Sp9Uff9aBbnfBJ9eqXOE/obrqQjn0PNdkfdvViiPXl49BINfnGcFtSP4kYw==";
+        url = "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-2.0.9.tgz";
+        sha512 = "46BFWe9RqB6g7f4mxm3W3HlqknqQQmWHKlhoqSFZuGNuiDU5KqmpebMbvC3tjTlUkqn4xa2Z7s3Hwb0HNs5scw==";
       };
     };
-    "@smithy/util-stream-2.0.20" = {
+    "@smithy/util-stream-2.0.24" = {
       name = "_at_smithy_slash_util-stream";
       packageName = "@smithy/util-stream";
-      version = "2.0.20";
+      version = "2.0.24";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-2.0.20.tgz";
-        sha512 = "tT8VASuD8jJu0yjHEMTCPt1o5E3FVzgdsxK6FQLAjXKqVv5V8InCnc0EOsYrijgspbfDqdAJg7r0o2sySfcHVg==";
+        url = "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-2.0.24.tgz";
+        sha512 = "hRpbcRrOxDriMVmbya+Mv77VZVupxRAsfxVDKS54XuiURhdiwCUXJP0X1iJhHinuUf6n8pBF0MkG9C8VooMnWw==";
       };
     };
     "@smithy/util-uri-escape-2.0.0" = {
@@ -10282,13 +10399,13 @@ let
         sha512 = "qOiVORSPm6Ce4/Yu6hbSgNHABLP2VMv8QOC3tTDNHHlWY19pPyc++fBTbZPtx6egPXi4HQxKDnMxVxpbtX2GoA==";
       };
     };
-    "@smithy/util-waiter-2.0.13" = {
+    "@smithy/util-waiter-2.0.16" = {
       name = "_at_smithy_slash_util-waiter";
       packageName = "@smithy/util-waiter";
-      version = "2.0.13";
+      version = "2.0.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-2.0.13.tgz";
-        sha512 = "YovIQatiuM7giEsRFotqJa2i3EbU2EE3PgtpXgtLgpx5rXiZMAwPxXYDFVFhuO0lbqvc/Zx4n+ZIisXOHPSqyg==";
+        url = "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-2.0.16.tgz";
+        sha512 = "5i4YONHQ6HoUWDd+X0frpxTXxSXgJhUFl+z0iMy/zpUmVeCQY2or3Vss6DzHKKMMQL4pmVHpQm9WayHDorFdZg==";
       };
     };
     "@socket.io/component-emitter-3.1.0" = {
@@ -10336,13 +10453,13 @@ let
         sha512 = "YNcWv3R3n3U6iQYBsFOiWSuRGE5su1tJSiX6pAPRVk7dP0L7lqCteXGzuVRQ0gMZqUl8v1P0+fAKxF6PLo9B5A==";
       };
     };
-    "@stoplight/ordered-object-literal-1.0.4" = {
+    "@stoplight/ordered-object-literal-1.0.5" = {
       name = "_at_stoplight_slash_ordered-object-literal";
       packageName = "@stoplight/ordered-object-literal";
-      version = "1.0.4";
+      version = "1.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@stoplight/ordered-object-literal/-/ordered-object-literal-1.0.4.tgz";
-        sha512 = "OF8uib1jjDs5/cCU+iOVy+GJjU3X7vk/qJIkIJFqwmlJKrrtijFmqwbu8XToXrwTYLQTP+Hebws5gtZEmk9jag==";
+        url = "https://registry.npmjs.org/@stoplight/ordered-object-literal/-/ordered-object-literal-1.0.5.tgz";
+        sha512 = "COTiuCU5bgMUtbIFBuyyh2/yVVzlr5Om0v5utQDgBCuQUOPgU1DwoffkTfg4UBQOvByi5foF4w4T+H9CoRe5wg==";
       };
     };
     "@stoplight/path-1.3.2" = {
@@ -10399,13 +10516,13 @@ let
         sha512 = "5baQIYL0NJTSVy8v6RxOR4U51xOUYM8wJri1YvlAT6bPN8m0EIxMwfVYi0xUZEMVeHcWx869nIkoqyWmOutF2A==";
       };
     };
-    "@stoplight/spectral-rulesets-1.18.0" = {
+    "@stoplight/spectral-rulesets-1.18.1" = {
       name = "_at_stoplight_slash_spectral-rulesets";
       packageName = "@stoplight/spectral-rulesets";
-      version = "1.18.0";
+      version = "1.18.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@stoplight/spectral-rulesets/-/spectral-rulesets-1.18.0.tgz";
-        sha512 = "7LiCteW5pofMuBtf1BO+Ig5pT1XV9oqGrUjqWwSqD6jcy8ejE45pOQpef4h4um9tj3Y+tewfdbthLjhu8sdoeA==";
+        url = "https://registry.npmjs.org/@stoplight/spectral-rulesets/-/spectral-rulesets-1.18.1.tgz";
+        sha512 = "buLzYi4rHjZOG2d5LC/s3YpySrCGrwR4irKDyrxLlbbqmB8BDOsrdO+7G9UGvRCJwAy/xs1VWcjokzGnG68K+Q==";
       };
     };
     "@stoplight/spectral-runtime-1.1.2" = {
@@ -10516,13 +10633,13 @@ let
         sha512 = "gqBJSmJMWomZFxlppaKea7NeAqFrDrrS0RMt24No92M3nJWcyI9YKGEQKl+EyJqZ5gh6w1s0cTklMHMzRwA1NA==";
       };
     };
-    "@swc/core-1.3.99" = {
+    "@swc/core-1.3.102" = {
       name = "_at_swc_slash_core";
       packageName = "@swc/core";
-      version = "1.3.99";
+      version = "1.3.102";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@swc/core/-/core-1.3.99.tgz";
-        sha512 = "8O996RfuPC4ieb4zbYMfbyCU9k4gSOpyCNnr7qBQ+o7IEmh8JCV6B8wwu+fT/Om/6Lp34KJe1IpJ/24axKS6TQ==";
+        url = "https://registry.npmjs.org/@swc/core/-/core-1.3.102.tgz";
+        sha512 = "OAjNLY/f6QWKSDzaM3bk31A+OYHu6cPa9P/rFIx8X5d24tHXUpRiiq6/PYI6SQRjUPlB72GjsjoEU8F+ALadHg==";
       };
     };
     "@swc/counter-0.1.2" = {
@@ -10534,6 +10651,15 @@ let
         sha512 = "9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==";
       };
     };
+    "@swc/helpers-0.5.1" = {
+      name = "_at_swc_slash_helpers";
+      packageName = "@swc/helpers";
+      version = "0.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.1.tgz";
+        sha512 = "sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==";
+      };
+    };
     "@swc/helpers-0.5.3" = {
       name = "_at_swc_slash_helpers";
       packageName = "@swc/helpers";
@@ -10552,13 +10678,13 @@ let
         sha512 = "myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==";
       };
     };
-    "@swc/wasm-1.3.99" = {
+    "@swc/wasm-1.3.102" = {
       name = "_at_swc_slash_wasm";
       packageName = "@swc/wasm";
-      version = "1.3.99";
+      version = "1.3.102";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@swc/wasm/-/wasm-1.3.99.tgz";
-        sha512 = "9TYR7Gdh5fWi019r5TaerZfdKCjSdgf+IM7XMJnSH7ZAWjTNw0TmXVxSOY+7xXHHFbY0+lzje1qJ+lfgdvZYag==";
+        url = "https://registry.npmjs.org/@swc/wasm/-/wasm-1.3.102.tgz";
+        sha512 = "aUnT4MVvNczw+VTflV4W0uP4Z7uSg6QgvGcY5RgLwmHnKxqMczduhDeIGJ9u6AIHfF3knskKfkHrcyF2YXX3nA==";
       };
     };
     "@szmarczak/http-timer-1.1.2" = {
@@ -10597,6 +10723,24 @@ let
         sha512 = "QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw==";
       };
     };
+    "@taplo/core-0.1.1" = {
+      name = "_at_taplo_slash_core";
+      packageName = "@taplo/core";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@taplo/core/-/core-0.1.1.tgz";
+        sha512 = "BG/zLGf5wiNXGEVPvUAAX/4ilB3PwDUY2o0MV0y47mZbDZ9ad9UK/cIQsILat3bqbPJsALVbU6k3cskNZ3vAQg==";
+      };
+    };
+    "@taplo/lib-0.4.0-alpha.2" = {
+      name = "_at_taplo_slash_lib";
+      packageName = "@taplo/lib";
+      version = "0.4.0-alpha.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@taplo/lib/-/lib-0.4.0-alpha.2.tgz";
+        sha512 = "DV/Re3DPVY+BhBtLZ3dmP4mP6YMLSsgq9qGLXwOV38lvNF/fBlgvQswzlXmzCEefL/3q2eMoefZpOI/+GLuCNA==";
+      };
+    };
     "@taplo/lsp-0.2.4" = {
       name = "_at_taplo_slash_lsp";
       packageName = "@taplo/lsp";
@@ -10606,13 +10750,13 @@ let
         sha512 = "/FcGQVvXAslhiC9aMG5gxKXJctg8N7XLZrP+wYrFTFccWEPZd/Xon5y7jUXpKOVSOFEA1MOKZKbPuK4ET5/T8Q==";
       };
     };
-    "@textlint/ast-node-types-13.4.0" = {
+    "@textlint/ast-node-types-13.4.1" = {
       name = "_at_textlint_slash_ast-node-types";
       packageName = "@textlint/ast-node-types";
-      version = "13.4.0";
+      version = "13.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-13.4.0.tgz";
-        sha512 = "roVeLjnf8UPntFICb1uEwE2dccC8V/T5N1x7eBxkT3VDmSQkyfIAuGtlpwyH0wNKEwJmjO/2gSm2fCjW5K/rbA==";
+        url = "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-13.4.1.tgz";
+        sha512 = "qrZyhCh8Ekk6nwArx3BROybm9BnX6vF7VcZbijetV/OM3yfS4rTYhoMWISmhVEP2H2re0CtWEyMl/XF+WdvVLQ==";
       };
     };
     "@textlint/ast-node-types-4.4.3" = {
@@ -10624,139 +10768,301 @@ let
         sha512 = "qi2jjgO6Tn3KNPGnm6B7p6QTEPvY95NFsIAaJuwbulur8iJUEenp1OnoUfiDaC/g2WPPEFkcfXpmnu8XEMFo2A==";
       };
     };
-    "@textlint/ast-tester-13.4.0" = {
+    "@textlint/ast-tester-13.4.1" = {
       name = "_at_textlint_slash_ast-tester";
       packageName = "@textlint/ast-tester";
-      version = "13.4.0";
+      version = "13.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-13.4.0.tgz";
-        sha512 = "dmqlPNxgQNaG63gTcMfF2b2VmQn7gnDN2ytF3c6sFB6YyTsiTh9wA/xsUBKqYWOMlYV5pLuO6TvItcUPCtVtZw==";
+        url = "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-13.4.1.tgz";
+        sha512 = "YSHUR1qDgMPGF5+nvrquEhif6zRJ667xUnfP/9rTNtThIhoTQINvczr5/7xa43F1PDWplL6Curw+2jrE1qHwGQ==";
       };
     };
-    "@textlint/ast-traverse-13.4.0" = {
+    "@textlint/ast-traverse-13.4.1" = {
       name = "_at_textlint_slash_ast-traverse";
       packageName = "@textlint/ast-traverse";
-      version = "13.4.0";
+      version = "13.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-13.4.0.tgz";
-        sha512 = "d64z9uJcyGRwZFNadkOTnSIMZEQfWiOEM4+RbakLF71kpmdMoF8pPK5mOgT0fsHoidGzlNxxUMThkIfSRMtG5w==";
+        url = "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-13.4.1.tgz";
+        sha512 = "uucuC7+NHWkXx2TX5vuyreuHeb+GFiA83V65I+FnYP5EC4dAMOQ86rTSPrZmCwLz+qIWgfDgihGzPccpj3EZGg==";
       };
     };
-    "@textlint/config-loader-13.4.0" = {
+    "@textlint/config-loader-13.4.1" = {
       name = "_at_textlint_slash_config-loader";
       packageName = "@textlint/config-loader";
-      version = "13.4.0";
+      version = "13.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-13.4.0.tgz";
-        sha512 = "uebTYdCZAw43BMWIB85EU6eoFe6aVArejeW6P+QR09aZvVIPoT6UJl1JYjGNiq0cVR5kR7bQS1w3Af55CvgOEQ==";
+        url = "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-13.4.1.tgz";
+        sha512 = "ggh6her5PdgcEsvgm3FfCY2+r7IhoQoBTGYxM+IbfkwyVoSoQ2CrXbCVlQkpLPFzhHVbIwgNxkiMr1o2npwfJQ==";
       };
     };
-    "@textlint/feature-flag-13.4.0" = {
+    "@textlint/feature-flag-13.4.1" = {
       name = "_at_textlint_slash_feature-flag";
       packageName = "@textlint/feature-flag";
-      version = "13.4.0";
+      version = "13.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-13.4.0.tgz";
-        sha512 = "L/p2rkuOg6rOS395TXUFIDfmoCyHpHKnA6YFCqNXkDcpxo0W+YXnEdXDMd9P+KlsU9MNTC9nFduO4nHOfFYlPg==";
+        url = "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-13.4.1.tgz";
+        sha512 = "qY8gKUf30XtzWMTkwYeKytCo6KPx6milpz8YZhuRsEPjT/5iNdakJp5USWDQWDrwbQf7RbRncQdU+LX5JbM9YA==";
       };
     };
-    "@textlint/fixer-formatter-13.4.0" = {
+    "@textlint/fixer-formatter-13.4.1" = {
       name = "_at_textlint_slash_fixer-formatter";
       packageName = "@textlint/fixer-formatter";
-      version = "13.4.0";
+      version = "13.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-13.4.0.tgz";
-        sha512 = "iosRUAhQ4bQkwpg6HOCfaLufR5X0ImCOnoy+jqHNQD37ziRQF43B/IMHOqwQdX7MLHp6jPYALFDnl64+gjmKbA==";
+        url = "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-13.4.1.tgz";
+        sha512 = "P195Soyxmzv7S5QyCJIjuDXl5t3EyOhYwxR4ukKBZ7bw5hp/P1+e4GEhzqrXWx3z7h0nZZ0TuTjepNxOMo6cAQ==";
       };
     };
-    "@textlint/kernel-13.4.0" = {
+    "@textlint/kernel-13.4.1" = {
       name = "_at_textlint_slash_kernel";
       packageName = "@textlint/kernel";
-      version = "13.4.0";
+      version = "13.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/kernel/-/kernel-13.4.0.tgz";
-        sha512 = "QRHbaKSeqXzfi+XNISOyNM7h68v6/4QaLfo7CZnBBKxatvVoXUF5B/8MmxYrVB1TX/X9sY50zcwfTaYwZTYCNQ==";
+        url = "https://registry.npmjs.org/@textlint/kernel/-/kernel-13.4.1.tgz";
+        sha512 = "r2sUhjPysFjl2Ax37x9AfWkJM8jgKN0bL4SX3xRzOukdcj69Dst5On5qBZtULaVMX1LDkwkdxA6ZEADmq27qQA==";
       };
     };
-    "@textlint/linter-formatter-13.4.0" = {
+    "@textlint/linter-formatter-13.4.1" = {
       name = "_at_textlint_slash_linter-formatter";
       packageName = "@textlint/linter-formatter";
-      version = "13.4.0";
+      version = "13.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-13.4.0.tgz";
-        sha512 = "vJGm0mM7TcsespHUxh4GnSWBOqdYyluHlLPLQwg4tCVYLjTgu2Vaz8BDCpwQ9BnRmEr484Qjug0RE1otQUFBrw==";
+        url = "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-13.4.1.tgz";
+        sha512 = "VDLnyHRO9hf6CGxMJLM5oi7NH9s0mqiWxtgi95nuXmJZWbQLZVfcxkD1Cp16pwk8zTvlbyMZFqamFCYZyD9Sww==";
       };
     };
-    "@textlint/markdown-to-ast-13.4.0" = {
+    "@textlint/markdown-to-ast-13.4.1" = {
       name = "_at_textlint_slash_markdown-to-ast";
       packageName = "@textlint/markdown-to-ast";
-      version = "13.4.0";
+      version = "13.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-13.4.0.tgz";
-        sha512 = "rF70kFestQHaqB+cRl4QrvjIn0bjR3birnAXjux9iEXWfrS7cxWyrEWmKkBPO5o8yoGF9q9JKBkDaypPzNsIhg==";
+        url = "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-13.4.1.tgz";
+        sha512 = "jUa5bTNmxjEgfCXW4xfn7eSJqzUXyNKiIDWLKtI4MUKRNhT3adEaa/NuQl0Mii3Hu3HraZR7hYhRHLh+eeM43w==";
       };
     };
-    "@textlint/module-interop-13.4.0" = {
+    "@textlint/module-interop-13.4.1" = {
       name = "_at_textlint_slash_module-interop";
       packageName = "@textlint/module-interop";
-      version = "13.4.0";
+      version = "13.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-13.4.0.tgz";
-        sha512 = "o3h/ths4OrqeT5XLfTED6R0tjp/DLvbL8eG8b7uUgIEhUlHcSHwEUC6bEX7AzQS6/2DedrCBKLknQcdhl/iQ2A==";
+        url = "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-13.4.1.tgz";
+        sha512 = "keM5zHwyifijEDqEvAFhhXHC5UbmZjfGytRJzPPJaW3C3UsGbIzDCnfOSE9jUVTWZcngHuSJ7aKGv42Rhy9nEg==";
       };
     };
-    "@textlint/source-code-fixer-13.4.0" = {
+    "@textlint/source-code-fixer-13.4.1" = {
       name = "_at_textlint_slash_source-code-fixer";
       packageName = "@textlint/source-code-fixer";
-      version = "13.4.0";
+      version = "13.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-13.4.0.tgz";
-        sha512 = "3jR5XPrSzJmSH8sg3XrkCu9sGSR7OOl78zrbX+1d84nDLdRdjLSa90COc4aJWwOMpKycwZhU6XltTqPJWI50rg==";
+        url = "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-13.4.1.tgz";
+        sha512 = "Sl29f3Tpimp0uVE3ysyJBjxaFTVYLOXiJX14eWCQ/kC5ZhIXGosEbStzkP1n8Urso1rs1W4p/2UemVAm3NH2ng==";
       };
     };
-    "@textlint/text-to-ast-13.4.0" = {
+    "@textlint/text-to-ast-13.4.1" = {
       name = "_at_textlint_slash_text-to-ast";
       packageName = "@textlint/text-to-ast";
-      version = "13.4.0";
+      version = "13.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-13.4.0.tgz";
-        sha512 = "oZQ20rA5VqqjUT689q/RDgHSI1ML6ySoEjfXMRBSXaN+7LXKFZdvLg4RQ5ECddNh3MIXcQHdjT7+qxuGyQzy6g==";
+        url = "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-13.4.1.tgz";
+        sha512 = "vCA7uMmbjRv06sEHPbwxTV5iS8OQedC5s7qwmXnWAn2LLWxg4Yp98mONPS1o4D5cPomzYyKNCSfbLwu6yJBUQA==";
       };
     };
-    "@textlint/textlint-plugin-markdown-13.4.0" = {
+    "@textlint/textlint-plugin-markdown-13.4.1" = {
       name = "_at_textlint_slash_textlint-plugin-markdown";
       packageName = "@textlint/textlint-plugin-markdown";
-      version = "13.4.0";
+      version = "13.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-13.4.0.tgz";
-        sha512 = "+bIOsbfQpdRzjkNDXY1ze4YyPGf1XKlkVVkkVpUlI7rehoVaUWKy2v41Y8gsQZjpBft31EXP1okA9qs7wTYr/w==";
+        url = "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-13.4.1.tgz";
+        sha512 = "OcLkFKYmbYeGJ0kj2487qcicCYTiE2vJLwfPcUDJrNoMYak5JtvHJfWffck8gON2mEM00DPkHH0UdxZpFjDfeg==";
       };
     };
-    "@textlint/textlint-plugin-text-13.4.0" = {
+    "@textlint/textlint-plugin-text-13.4.1" = {
       name = "_at_textlint_slash_textlint-plugin-text";
       packageName = "@textlint/textlint-plugin-text";
-      version = "13.4.0";
+      version = "13.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-13.4.0.tgz";
-        sha512 = "k9GAId9bjdZB3oLBfzAjRD+LCOFQILS5o9s8ESPPJhR5apvURr7WkR2bR5/dHuxa0ivvPjksVzS/jyE2kk618g==";
+        url = "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-13.4.1.tgz";
+        sha512 = "z0p5B8WUfTCIRmhjVHFfJv719oIElDDKWOIZei4CyYkfMGo0kq8fkrYBkUR6VZ6gofHwc+mwmIABdUf1rDHzYA==";
       };
     };
-    "@textlint/types-13.4.0" = {
+    "@textlint/types-13.4.1" = {
       name = "_at_textlint_slash_types";
       packageName = "@textlint/types";
-      version = "13.4.0";
+      version = "13.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/types/-/types-13.4.0.tgz";
-        sha512 = "K7JjP0gUOuRgc7xyfZv2NML7dmzcb9UjoBu0QCgCmJP861ikAd1bONH+qE/3brTi4n8MJq9gO9smGjB2upExMA==";
+        url = "https://registry.npmjs.org/@textlint/types/-/types-13.4.1.tgz";
+        sha512 = "1ApwQa31sFmiJeJ5yTNFqjbb2D1ICZvIDW0tFSM0OtmQCSDFNcKD3YrrwDBgSokZ6gWQq/FpNjlhi6iETUWt0Q==";
       };
     };
-    "@textlint/utils-13.4.0" = {
+    "@textlint/utils-13.4.1" = {
       name = "_at_textlint_slash_utils";
       packageName = "@textlint/utils";
-      version = "13.4.0";
+      version = "13.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@textlint/utils/-/utils-13.4.1.tgz";
+        sha512 = "wX8RT1ejHAPTDmqlzngf0zI5kYoe3QvGDcj+skoTxSv+m/wOs/NyEr92d+ahCP32YqFYzXlqU7aDx2FkULKT+g==";
+      };
+    };
+    "@tinyhttp/accepts-2.2.1" = {
+      name = "_at_tinyhttp_slash_accepts";
+      packageName = "@tinyhttp/accepts";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@tinyhttp/accepts/-/accepts-2.2.1.tgz";
+        sha512 = "2DHJLSJX1gqR5F6nKuu7+hyCNoPRNOxvnQ11m0X8klkSVoBFBO2HMf3bJ8P+fmNv1e6RjHzHF+G+hJ3dxXIQXQ==";
+      };
+    };
+    "@tinyhttp/app-2.2.3" = {
+      name = "_at_tinyhttp_slash_app";
+      packageName = "@tinyhttp/app";
+      version = "2.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@tinyhttp/app/-/app-2.2.3.tgz";
+        sha512 = "njr499Tx9BwlnIGfJjTuqfPwaUSTsjhUeRq/jVtHJpS95UgWECH7kiq8+bEx6TFRXiNKpARZ6KJUemlMyV+iCg==";
+      };
+    };
+    "@tinyhttp/content-disposition-2.2.0" = {
+      name = "_at_tinyhttp_slash_content-disposition";
+      packageName = "@tinyhttp/content-disposition";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/utils/-/utils-13.4.0.tgz";
-        sha512 = "cXm9L3Ol/R5DR0YtHCMBa2PicvOoR5YU8Dx7RDJWHfp2rQvMghd3ogDmeol28s/Ei5oXRHY5HE2rWhYLhwrtVg==";
+        url = "https://registry.npmjs.org/@tinyhttp/content-disposition/-/content-disposition-2.2.0.tgz";
+        sha512 = "w1dJaSAtcCinOlT/YQg35RnFCOBbCHBGDVhH4yLoiJVtecRAJ2cYMf5HP+UhfbXURa38GC8fkRXO0vODDTjmeg==";
+      };
+    };
+    "@tinyhttp/content-type-0.1.4" = {
+      name = "_at_tinyhttp_slash_content-type";
+      packageName = "@tinyhttp/content-type";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@tinyhttp/content-type/-/content-type-0.1.4.tgz";
+        sha512 = "dl6f3SHIJPYbhsW1oXdrqOmLSQF/Ctlv3JnNfXAE22kIP7FosqJHxkz/qj2gv465prG8ODKH5KEyhBkvwrueKQ==";
+      };
+    };
+    "@tinyhttp/cookie-2.1.0" = {
+      name = "_at_tinyhttp_slash_cookie";
+      packageName = "@tinyhttp/cookie";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@tinyhttp/cookie/-/cookie-2.1.0.tgz";
+        sha512 = "o56utxXvIuLTCtPm66r8lcyUufpw0RkO+u4wQrTbc6snyyGZZ9hHzGRxPyko0ks90ctOkLh0mNKn7YZaTWlvfw==";
+      };
+    };
+    "@tinyhttp/cookie-signature-2.1.0" = {
+      name = "_at_tinyhttp_slash_cookie-signature";
+      packageName = "@tinyhttp/cookie-signature";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@tinyhttp/cookie-signature/-/cookie-signature-2.1.0.tgz";
+        sha512 = "bpOXBGf9rKoajtEG75O7xjwW+u2I/NNPkJWJTDdr6j7Vx0lG5R9Hnl3ty80Af4jwyo90ywXVpZIxKLubPK6RzA==";
+      };
+    };
+    "@tinyhttp/cors-2.0.0" = {
+      name = "_at_tinyhttp_slash_cors";
+      packageName = "@tinyhttp/cors";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@tinyhttp/cors/-/cors-2.0.0.tgz";
+        sha512 = "IwQsPBnK+gRrhTsPA4FPOfbNzZZt8cVsOIMNFb6HzoScaiWcoLEogL0Bz/aBSm8KM13uieVXoVT6udMqhqUS2A==";
+      };
+    };
+    "@tinyhttp/encode-url-2.1.1" = {
+      name = "_at_tinyhttp_slash_encode-url";
+      packageName = "@tinyhttp/encode-url";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@tinyhttp/encode-url/-/encode-url-2.1.1.tgz";
+        sha512 = "AhY+JqdZ56qV77tzrBm0qThXORbsVjs/IOPgGCS7x/wWnsa/Bx30zDUU/jPAUcSzNOzt860x9fhdGpzdqbUeUw==";
+      };
+    };
+    "@tinyhttp/etag-2.1.1" = {
+      name = "_at_tinyhttp_slash_etag";
+      packageName = "@tinyhttp/etag";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@tinyhttp/etag/-/etag-2.1.1.tgz";
+        sha512 = "AcHGK1nMlKIHmlbg8bb8UY/KhiaAX17SAn3/6wlgwwdX4UizA8HETDfCH3KLdu2ZASokynuwVFNDJCo1DAawGw==";
+      };
+    };
+    "@tinyhttp/forwarded-2.1.2" = {
+      name = "_at_tinyhttp_slash_forwarded";
+      packageName = "@tinyhttp/forwarded";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@tinyhttp/forwarded/-/forwarded-2.1.2.tgz";
+        sha512 = "9H/eulJ68ElY/+zYpTpNhZ7vxGV+cnwaR6+oQSm7bVgZMyuQfgROW/qvZuhmgDTIxnGMXst+Ba4ij6w6Krcs3w==";
+      };
+    };
+    "@tinyhttp/proxy-addr-2.1.3" = {
+      name = "_at_tinyhttp_slash_proxy-addr";
+      packageName = "@tinyhttp/proxy-addr";
+      version = "2.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@tinyhttp/proxy-addr/-/proxy-addr-2.1.3.tgz";
+        sha512 = "Z0Q/0wEJpvall7LlBezXDy96CXLzPZb6xJawwEgsMXXQhmjb+r3EkpCBwMrWm2GlbJFL/UxKxpdumiNW3Ne06g==";
+      };
+    };
+    "@tinyhttp/req-2.2.2" = {
+      name = "_at_tinyhttp_slash_req";
+      packageName = "@tinyhttp/req";
+      version = "2.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@tinyhttp/req/-/req-2.2.2.tgz";
+        sha512 = "LaL/RFRro0qjOQ0g3vxE6i9bWl9hhv9en7opykzLU4NimFPg2C8wl7Qkoyc0mDuoRMQmWpq730PDWXSUmLiT2A==";
+      };
+    };
+    "@tinyhttp/res-2.2.2" = {
+      name = "_at_tinyhttp_slash_res";
+      packageName = "@tinyhttp/res";
+      version = "2.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@tinyhttp/res/-/res-2.2.2.tgz";
+        sha512 = "YeEYFwozag2qO5xoTj1Df+d5l6MXUefxz3xbcJD6ASVqUQytTEYtOC0FjhQKLpTLjMJKlS4mkKmeIdDLFO9btg==";
+      };
+    };
+    "@tinyhttp/router-2.2.2" = {
+      name = "_at_tinyhttp_slash_router";
+      packageName = "@tinyhttp/router";
+      version = "2.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@tinyhttp/router/-/router-2.2.2.tgz";
+        sha512 = "i+1ouhPyTqcuJuOsKqmo7i+YD++0RF2lQLhBpcTnsaegD2gTEa3xW2Pcz7spYQGo7K8PQYtOrL7m9b14+BEXqg==";
+      };
+    };
+    "@tinyhttp/send-2.2.1" = {
+      name = "_at_tinyhttp_slash_send";
+      packageName = "@tinyhttp/send";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@tinyhttp/send/-/send-2.2.1.tgz";
+        sha512 = "uFW0fxmYIPpB5RKP2vpL8QuafjUrCBmBWxZMIhFb7uBQky87t7x1QdpRB0vc+w11a2kok+Nc8ClD5kc6CRJCFg==";
+      };
+    };
+    "@tinyhttp/type-is-2.2.2" = {
+      name = "_at_tinyhttp_slash_type-is";
+      packageName = "@tinyhttp/type-is";
+      version = "2.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@tinyhttp/type-is/-/type-is-2.2.2.tgz";
+        sha512 = "DmTm0MkdrUxEPI2WBBoYJT0bitWx6+xeUd3lya1NGbKmYArzyUE+KVro/9y/h6Bxh+RaAKNeTCF4H/ksbe/ULQ==";
+      };
+    };
+    "@tinyhttp/url-2.1.1" = {
+      name = "_at_tinyhttp_slash_url";
+      packageName = "@tinyhttp/url";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@tinyhttp/url/-/url-2.1.1.tgz";
+        sha512 = "POJeq2GQ5jI7Zrdmj22JqOijB5/GeX+LEX7DUdml1hUnGbJOTWDx7zf2b5cCERj7RoXL67zTgyzVblBJC+NJWg==";
+      };
+    };
+    "@tinyhttp/vary-0.1.3" = {
+      name = "_at_tinyhttp_slash_vary";
+      packageName = "@tinyhttp/vary";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@tinyhttp/vary/-/vary-0.1.3.tgz";
+        sha512 = "SoL83sQXAGiHN1jm2VwLUWQSQeDAAl1ywOm6T0b0Cg1CZhVsjoiZadmjhxF6FHCCY7OHHVaLnTgSMxTPIDLxMg==";
       };
     };
     "@tokenizer/token-0.1.1" = {
@@ -10777,24 +11083,6 @@ let
         sha512 = "OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==";
       };
     };
-    "@toml-tools/lexer-1.0.0" = {
-      name = "_at_toml-tools_slash_lexer";
-      packageName = "@toml-tools/lexer";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@toml-tools/lexer/-/lexer-1.0.0.tgz";
-        sha512 = "rVoOC9FibF2CICwCBWQnYcjAEOmLCJExer178K2AsY0Nk9FjJNVoVJuR5UAtuq42BZOajvH+ainf6Gj2GpCnXQ==";
-      };
-    };
-    "@toml-tools/parser-1.0.0" = {
-      name = "_at_toml-tools_slash_parser";
-      packageName = "@toml-tools/parser";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@toml-tools/parser/-/parser-1.0.0.tgz";
-        sha512 = "j8cd3A3ccLHppGoWI69urbiVJslrpwI6sZ61ySDUPxM/FTkQWRx/JkkF8aipnl0Ds0feWXyjyvmWzn70mIohYg==";
-      };
-    };
     "@tootallnate/once-1.1.2" = {
       name = "_at_tootallnate_slash_once";
       packageName = "@tootallnate/once";
@@ -11056,6 +11344,24 @@ let
         sha512 = "IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==";
       };
     };
+    "@types/chai-4.3.11" = {
+      name = "_at_types_slash_chai";
+      packageName = "@types/chai";
+      version = "4.3.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/chai/-/chai-4.3.11.tgz";
+        sha512 = "qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==";
+      };
+    };
+    "@types/chai-subset-1.3.5" = {
+      name = "_at_types_slash_chai-subset";
+      packageName = "@types/chai-subset";
+      version = "1.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.5.tgz";
+        sha512 = "c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==";
+      };
+    };
     "@types/cli-progress-3.11.5" = {
       name = "_at_types_slash_cli-progress";
       packageName = "@types/cli-progress";
@@ -11209,13 +11515,13 @@ let
         sha512 = "qJ7LIFp06h1QE1aVxbVd+zJP2wdaugYXYfd6JxsyRMrYHaxb6itXPogW2tz+ylUJ1n1b+JF1PHyYCfYHm0dvUg==";
       };
     };
-    "@types/eslint-8.44.7" = {
+    "@types/eslint-8.56.1" = {
       name = "_at_types_slash_eslint";
       packageName = "@types/eslint";
-      version = "8.44.7";
+      version = "8.56.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.7.tgz";
-        sha512 = "f5ORu2hcBbKei97U73mf+l9t4zTGl74IqZ0GQk4oVea/VS8tQZYkUveSYojk+frraAVYId0V2WC9O4PTNru2FQ==";
+        url = "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.1.tgz";
+        sha512 = "18PLWRzhy9glDQp3+wOgfLYRWlhgX0azxgJ63rdpoUHyrC9z0f5CkFburjQx4uD7ZCruw85ZtMt6K+L+R8fLJQ==";
       };
     };
     "@types/eslint-scope-3.7.7" = {
@@ -11308,13 +11614,13 @@ let
         sha512 = "ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==";
       };
     };
-    "@types/hast-2.3.8" = {
+    "@types/hast-2.3.9" = {
       name = "_at_types_slash_hast";
       packageName = "@types/hast";
-      version = "2.3.8";
+      version = "2.3.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/hast/-/hast-2.3.8.tgz";
-        sha512 = "aMIqAlFd2wTIDZuvLbhUT+TGvMxrNC8ECUIVtH6xxy0sQLs3iu6NO8Kp/VT5je7i5ufnebXzdV1dNDMnvaH6IQ==";
+        url = "https://registry.npmjs.org/@types/hast/-/hast-2.3.9.tgz";
+        sha512 = "pTHyNlaMD/oKJmS+ZZUyFUcsZeBZpC0lmGquw98CqRVNgAdJZJeD7GoeLiT6Xbx5rU9VCjSt0RwEvDgzh4obFw==";
       };
     };
     "@types/html-minifier-terser-6.1.0" = {
@@ -11407,13 +11713,13 @@ let
         sha512 = "pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==";
       };
     };
-    "@types/jquery-3.5.28" = {
+    "@types/jquery-3.5.29" = {
       name = "_at_types_slash_jquery";
       packageName = "@types/jquery";
-      version = "3.5.28";
+      version = "3.5.29";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.28.tgz";
-        sha512 = "2o/vlzaDXiGWFrHz/PhX88cy68UDc8NBBT9i1nU+EtRkKgRxMWLTlUkEJb+MRfhIw6wKK8RDmfoEXClH2PsIyA==";
+        url = "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.29.tgz";
+        sha512 = "oXQQC9X9MOPRrMhPHHOsXqeQDnWeCDT3PelUIg/Oy8FAbzSZtFHRjc7IpbfFVmpLtJ+UOoywpRsuO5Jxjybyeg==";
       };
     };
     "@types/js-levenshtein-1.1.3" = {
@@ -11659,13 +11965,13 @@ let
         sha512 = "JkRpuVz3xCNCWaeQ5EHLR/6woMbHZz/jZ7Kmc63AkU+1HxnoUugzSWMck7dsR4DvNYX8jp9wTi9K7WvnxOIQZQ==";
       };
     };
-    "@types/node-16.18.63" = {
+    "@types/node-16.18.70" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "16.18.63";
+      version = "16.18.70";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-16.18.63.tgz";
-        sha512 = "Q2VSI/lVKza0Z5qeY/JrHcwi9fxzBktDvNHthr0TVA/D3yMdHDw9syggng+wJPlsBLgx4jPpOrcJ100wnpniTg==";
+        url = "https://registry.npmjs.org/@types/node/-/node-16.18.70.tgz";
+        sha512 = "8eIk20G5VVVQNZNouHjLA2b8utE2NvGybLjMaF4lyhA9uhGwnmXF8o+icdXKGSQSNANJewXva/sFUoZLwAaYAg==";
       };
     };
     "@types/node-16.9.1" = {
@@ -11677,40 +11983,40 @@ let
         sha512 = "QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==";
       };
     };
-    "@types/node-18.18.11" = {
+    "@types/node-18.18.8" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "18.18.11";
+      version = "18.18.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-18.18.11.tgz";
-        sha512 = "c1vku6qnTeujJneYH94/4aq73XrVcsJe35UPyAsSok1ijiKrkRzK+AxQPSpNMUnC03roWBBwJx/9I8V7lQoxmA==";
+        url = "https://registry.npmjs.org/@types/node/-/node-18.18.8.tgz";
+        sha512 = "OLGBaaK5V3VRBS1bAkMVP2/W9B+H8meUfl866OrMNQqt7wDgdpWPp5o6gmIc9pB+lIQHSq4ZL8ypeH1vPxcPaQ==";
       };
     };
-    "@types/node-18.18.8" = {
+    "@types/node-18.19.5" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "18.18.8";
+      version = "18.19.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-18.18.8.tgz";
-        sha512 = "OLGBaaK5V3VRBS1bAkMVP2/W9B+H8meUfl866OrMNQqt7wDgdpWPp5o6gmIc9pB+lIQHSq4ZL8ypeH1vPxcPaQ==";
+        url = "https://registry.npmjs.org/@types/node/-/node-18.19.5.tgz";
+        sha512 = "22MG6T02Hos2JWfa1o5jsIByn+bc5iOt1IS4xyg6OG68Bu+wMonVZzdrgCw693++rpLE9RUT/Bx15BeDzO0j+g==";
       };
     };
-    "@types/node-20.5.9" = {
+    "@types/node-20.10.7" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "20.5.9";
+      version = "20.10.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-20.5.9.tgz";
-        sha512 = "PcGNd//40kHAS3sTlzKB9C9XL4K0sTup8nbG5lC14kzEteTNuAFh9u5nA0o5TWnSG2r/JNPRXFVcHJIIeRlmqQ==";
+        url = "https://registry.npmjs.org/@types/node/-/node-20.10.7.tgz";
+        sha512 = "fRbIKb8C/Y2lXxB5eVMj4IU7xpdox0Lh8bUPEdtLysaylsml1hOOx1+STloRs/B9nf7C6kPRmmg/V7aQW7usNg==";
       };
     };
-    "@types/node-20.9.3" = {
+    "@types/node-20.5.9" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "20.9.3";
+      version = "20.5.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-20.9.3.tgz";
-        sha512 = "nk5wXLAXGBKfrhLB0cyHGbSqopS+nz0BUgZkUQqSHSSgdee0kssp1IAqlQOu333bW+gMNs2QREx7iynm19Abxw==";
+        url = "https://registry.npmjs.org/@types/node/-/node-20.5.9.tgz";
+        sha512 = "PcGNd//40kHAS3sTlzKB9C9XL4K0sTup8nbG5lC14kzEteTNuAFh9u5nA0o5TWnSG2r/JNPRXFVcHJIIeRlmqQ==";
       };
     };
     "@types/node-6.14.13" = {
@@ -11722,31 +12028,31 @@ let
         sha512 = "J1F0XJ/9zxlZel5ZlbeSuHW2OpabrUAqpFuC2sm2I3by8sERQ8+KCjNKUcq8QHuzpGMWiJpo9ZxeHrqrP2KzQw==";
       };
     };
-    "@types/node-fetch-2.6.2" = {
+    "@types/node-fetch-2.6.10" = {
       name = "_at_types_slash_node-fetch";
       packageName = "@types/node-fetch";
-      version = "2.6.2";
+      version = "2.6.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz";
-        sha512 = "DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==";
+        url = "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.10.tgz";
+        sha512 = "PPpPK6F9ALFTn59Ka3BaL+qGuipRfxNE8qVgkp0bVixeiR2c2/L+IVOiBdu9JhhT22sWnQEp6YyHGI2b2+CMcA==";
       };
     };
-    "@types/node-fetch-2.6.9" = {
+    "@types/node-fetch-2.6.2" = {
       name = "_at_types_slash_node-fetch";
       packageName = "@types/node-fetch";
-      version = "2.6.9";
+      version = "2.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.9.tgz";
-        sha512 = "bQVlnMLFJ2d35DkPNjEPmd9ueO/rh5EiaZt2bhqiSarPjZIuIV6bPQVqcrEyvNo+AfTrRGVazle1tl597w3gfA==";
+        url = "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz";
+        sha512 = "DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==";
       };
     };
-    "@types/node-forge-1.3.10" = {
+    "@types/node-forge-1.3.11" = {
       name = "_at_types_slash_node-forge";
       packageName = "@types/node-forge";
-      version = "1.3.10";
+      version = "1.3.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.10.tgz";
-        sha512 = "y6PJDYN4xYBxwd22l+OVH35N+1fCYWiuC3aiP2SlXVE6Lo7SS+rSx9r89hLxrP4pn6n1lBGhHJ12pj3F3Mpttw==";
+        url = "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz";
+        sha512 = "FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==";
       };
     };
     "@types/normalize-package-data-2.4.4" = {
@@ -11785,13 +12091,13 @@ let
         sha512 = "Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==";
       };
     };
-    "@types/qs-6.9.10" = {
+    "@types/qs-6.9.11" = {
       name = "_at_types_slash_qs";
       packageName = "@types/qs";
-      version = "6.9.10";
+      version = "6.9.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.10.tgz";
-        sha512 = "3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==";
+        url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz";
+        sha512 = "oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==";
       };
     };
     "@types/range-parser-1.2.7" = {
@@ -11803,22 +12109,22 @@ let
         sha512 = "hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==";
       };
     };
-    "@types/react-18.2.38" = {
+    "@types/react-18.2.47" = {
       name = "_at_types_slash_react";
       packageName = "@types/react";
-      version = "18.2.38";
+      version = "18.2.47";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/react/-/react-18.2.38.tgz";
-        sha512 = "cBBXHzuPtQK6wNthuVMV6IjHAFkdl/FOPFIlkd81/Cd1+IqkHu/A+w4g43kaQQoYHik/ruaQBDL72HyCy1vuMw==";
+        url = "https://registry.npmjs.org/@types/react/-/react-18.2.47.tgz";
+        sha512 = "xquNkkOirwyCgoClNk85BjP+aqnIS+ckAJ8i37gAbDs14jfW/J23f2GItAf33oiUPQnqNMALiFeoM9Y5mbjpVQ==";
       };
     };
-    "@types/react-dom-18.2.16" = {
+    "@types/react-dom-18.2.18" = {
       name = "_at_types_slash_react-dom";
       packageName = "@types/react-dom";
-      version = "18.2.16";
+      version = "18.2.18";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.16.tgz";
-        sha512 = "766c37araZ9vxtYs25gvY2wNdFWsT2ZiUvOd0zMhTaoGj6B911N8CKQWgXXJoPMLF3J82thpRqQA7Rf3rBwyJw==";
+        url = "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.18.tgz";
+        sha512 = "TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==";
       };
     };
     "@types/readdir-glob-1.1.5" = {
@@ -11857,13 +12163,13 @@ let
         sha512 = "3xSjTp3v03X/lSQLkczaN9UIEwJMoMCA1+Nb5HfbJEQWogdeQIyVtTvxPXDQjZ5zws8rFQfVfRdz03ARihPJgw==";
       };
     };
-    "@types/scheduler-0.16.7" = {
+    "@types/scheduler-0.16.8" = {
       name = "_at_types_slash_scheduler";
       packageName = "@types/scheduler";
-      version = "0.16.7";
+      version = "0.16.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.7.tgz";
-        sha512 = "8g25Nl3AuB1KulTlSUsUhUo/oBgBU6XIXQ+XURpeioEbEJvkO7qI4vDfREv3vJYHHzqXjcAHvoJy4pTtSQNZtA==";
+        url = "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz";
+        sha512 = "WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==";
       };
     };
     "@types/seedrandom-3.0.1" = {
@@ -11920,13 +12226,13 @@ let
         sha512 = "9Hp0ObzwwO57DpLFF0InUjUm/II8GmKAvzbefxQTihCb7KI6yc9yzf0nLc4mVdby5N4DRCgQM2wCup9KTieeww==";
       };
     };
-    "@types/sizzle-2.3.7" = {
+    "@types/sizzle-2.3.8" = {
       name = "_at_types_slash_sizzle";
       packageName = "@types/sizzle";
-      version = "2.3.7";
+      version = "2.3.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.7.tgz";
-        sha512 = "sU5MNKvSFdbT97qLSabU6jxceY9BfYQe9uF+b8E1rdTecpq9ROkkKoiHlblUlhgfaz9bdCByWjAI40Y3mHf1iQ==";
+        url = "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz";
+        sha512 = "0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==";
       };
     };
     "@types/sockjs-0.3.36" = {
@@ -12010,13 +12316,13 @@ let
         sha512 = "dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==";
       };
     };
-    "@types/urijs-1.19.24" = {
+    "@types/urijs-1.19.25" = {
       name = "_at_types_slash_urijs";
       packageName = "@types/urijs";
-      version = "1.19.24";
+      version = "1.19.25";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/urijs/-/urijs-1.19.24.tgz";
-        sha512 = "tvePREkvcnwDV5R4XZpHfX3t5Q57dfpdJJ0AEnFhRf5cb8PERFkBZUZBtMnG9Vp3U5T0aEXuOH7y3QlcuqPSLw==";
+        url = "https://registry.npmjs.org/@types/urijs/-/urijs-1.19.25.tgz";
+        sha512 = "XOfUup9r3Y06nFAZh3WvO0rBU4OtlfPB/vgxpjg+NRdGU6CN6djdc6OEiH+PcqHCY6eFLo9Ista73uarf4gnBg==";
       };
     };
     "@types/vscode-1.75.1" = {
@@ -12037,6 +12343,15 @@ let
         sha512 = "B5m9aq7cbbD/5/jThEr33nUY8WEfVi6A2YKCTOvw5Ldy7mtsOkqRvGjnzy6g7iMMDsgu7xREuCzqATLDLQVKcQ==";
       };
     };
+    "@types/which-2.0.2" = {
+      name = "_at_types_slash_which";
+      packageName = "@types/which";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/which/-/which-2.0.2.tgz";
+        sha512 = "113D3mDkZDjo+EeUEHCFy0qniNc1ZpecGiAU7WSo7YDoSzolZIQKpYFHrPpjkB2nuyahcKfrmLXeQlh7gqJYdw==";
+      };
+    };
     "@types/wrap-ansi-3.0.0" = {
       name = "_at_types_slash_wrap-ansi";
       packageName = "@types/wrap-ansi";
@@ -12109,13 +12424,13 @@ let
         sha512 = "xuv6ghKGoiq856Bww/yVYnXGsKa588kY3M0XK7uUW/3fJNNULKRfZfSBkMTSpqGG/8ZCXCadfh8G/z/B4aqS/A==";
       };
     };
-    "@typescript-eslint/eslint-plugin-6.12.0" = {
+    "@typescript-eslint/eslint-plugin-6.18.0" = {
       name = "_at_typescript-eslint_slash_eslint-plugin";
       packageName = "@typescript-eslint/eslint-plugin";
-      version = "6.12.0";
+      version = "6.18.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.12.0.tgz";
-        sha512 = "XOpZ3IyJUIV1b15M7HVOpgQxPPF7lGXgsfcEIu3yDxFPaf/xZKt7s9QO/pbk7vpWQyVulpJbu4E5LwpZiQo4kA==";
+        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.18.0.tgz";
+        sha512 = "3lqEvQUdCozi6d1mddWqd+kf8KxmGq2Plzx36BlkjuQe3rSTm/O98cLf0A4uDO+a5N1KD2SeEEl6fW97YHY+6w==";
       };
     };
     "@typescript-eslint/parser-6.0.0" = {
@@ -12127,13 +12442,13 @@ let
         sha512 = "TNaufYSPrr1U8n+3xN+Yp9g31vQDJqhXzzPSHfQDLcaO4tU+mCfODPxCwf4H530zo7aUBE3QIdxCXamEnG04Tg==";
       };
     };
-    "@typescript-eslint/parser-6.12.0" = {
+    "@typescript-eslint/parser-6.18.0" = {
       name = "_at_typescript-eslint_slash_parser";
       packageName = "@typescript-eslint/parser";
-      version = "6.12.0";
+      version = "6.18.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.12.0.tgz";
-        sha512 = "s8/jNFPKPNRmXEnNXfuo1gemBdVmpQsK1pcu+QIvuNJuhFzGrpD7WjOcvDc/+uEdfzSYpNu7U/+MmbScjoQ6vg==";
+        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.18.0.tgz";
+        sha512 = "v6uR68SFvqhNQT41frCMCQpsP+5vySy6IdgjlzUWoo7ALCnpaWYcz/Ij2k4L8cEsL0wkvOviCMpjmtRtHNOKzA==";
       };
     };
     "@typescript-eslint/scope-manager-6.0.0" = {
@@ -12145,13 +12460,13 @@ let
         sha512 = "o4q0KHlgCZTqjuaZ25nw5W57NeykZT9LiMEG4do/ovwvOcPnDO1BI5BQdCsUkjxFyrCL0cSzLjvIMfR9uo7cWg==";
       };
     };
-    "@typescript-eslint/scope-manager-6.12.0" = {
+    "@typescript-eslint/scope-manager-6.18.0" = {
       name = "_at_typescript-eslint_slash_scope-manager";
       packageName = "@typescript-eslint/scope-manager";
-      version = "6.12.0";
+      version = "6.18.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.12.0.tgz";
-        sha512 = "5gUvjg+XdSj8pcetdL9eXJzQNTl3RD7LgUiYTl8Aabdi8hFkaGSYnaS6BLc0BGNaDH+tVzVwmKtWvu0jLgWVbw==";
+        url = "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.18.0.tgz";
+        sha512 = "o/UoDT2NgOJ2VfHpfr+KBY2ErWvCySNUIX/X7O9g8Zzt/tXdpfEU43qbNk8LVuWUT2E0ptzTWXh79i74PP0twA==";
       };
     };
     "@typescript-eslint/type-utils-6.0.0" = {
@@ -12163,13 +12478,13 @@ let
         sha512 = "ah6LJvLgkoZ/pyJ9GAdFkzeuMZ8goV6BH7eC9FPmojrnX9yNCIsfjB+zYcnex28YO3RFvBkV6rMV6WpIqkPvoQ==";
       };
     };
-    "@typescript-eslint/type-utils-6.12.0" = {
+    "@typescript-eslint/type-utils-6.18.0" = {
       name = "_at_typescript-eslint_slash_type-utils";
       packageName = "@typescript-eslint/type-utils";
-      version = "6.12.0";
+      version = "6.18.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.12.0.tgz";
-        sha512 = "WWmRXxhm1X8Wlquj+MhsAG4dU/Blvf1xDgGaYCzfvStP2NwPQh6KBvCDbiOEvaE0filhranjIlK/2fSTVwtBng==";
+        url = "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.18.0.tgz";
+        sha512 = "ZeMtrXnGmTcHciJN1+u2CigWEEXgy1ufoxtWcHORt5kGvpjjIlK9MUhzHm4RM8iVy6dqSaZA/6PVkX6+r+ChjQ==";
       };
     };
     "@typescript-eslint/types-6.0.0" = {
@@ -12181,13 +12496,13 @@ let
         sha512 = "Zk9KDggyZM6tj0AJWYYKgF0yQyrcnievdhG0g5FqyU3Y2DRxJn4yWY21sJC0QKBckbsdKKjYDV2yVrrEvuTgxg==";
       };
     };
-    "@typescript-eslint/types-6.12.0" = {
+    "@typescript-eslint/types-6.18.0" = {
       name = "_at_typescript-eslint_slash_types";
       packageName = "@typescript-eslint/types";
-      version = "6.12.0";
+      version = "6.18.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.12.0.tgz";
-        sha512 = "MA16p/+WxM5JG/F3RTpRIcuOghWO30//VEOvzubM8zuOOBYXsP+IfjoCXXiIfy2Ta8FRh9+IO9QLlaFQUU+10Q==";
+        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.18.0.tgz";
+        sha512 = "/RFVIccwkwSdW/1zeMx3hADShWbgBxBnV/qSrex6607isYjj05t36P6LyONgqdUrNLl5TYU8NIKdHUYpFvExkA==";
       };
     };
     "@typescript-eslint/typescript-estree-6.0.0" = {
@@ -12199,13 +12514,13 @@ let
         sha512 = "2zq4O7P6YCQADfmJ5OTDQTP3ktajnXIRrYAtHM9ofto/CJZV3QfJ89GEaM2BNGeSr1KgmBuLhEkz5FBkS2RQhQ==";
       };
     };
-    "@typescript-eslint/typescript-estree-6.12.0" = {
+    "@typescript-eslint/typescript-estree-6.18.0" = {
       name = "_at_typescript-eslint_slash_typescript-estree";
       packageName = "@typescript-eslint/typescript-estree";
-      version = "6.12.0";
+      version = "6.18.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.12.0.tgz";
-        sha512 = "vw9E2P9+3UUWzhgjyyVczLWxZ3GuQNT7QpnIY3o5OMeLO/c8oHljGc8ZpryBMIyympiAAaKgw9e5Hl9dCWFOYw==";
+        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.18.0.tgz";
+        sha512 = "klNvl+Ql4NsBNGB4W9TZ2Od03lm7aGvTbs0wYaFYsplVPhr+oeXjlPZCDI4U9jgJIDK38W1FKhacCFzCC+nbIg==";
       };
     };
     "@typescript-eslint/utils-6.0.0" = {
@@ -12217,13 +12532,13 @@ let
         sha512 = "SOr6l4NB6HE4H/ktz0JVVWNXqCJTOo/mHnvIte1ZhBQ0Cvd04x5uKZa3zT6tiodL06zf5xxdK8COiDvPnQ27JQ==";
       };
     };
-    "@typescript-eslint/utils-6.12.0" = {
+    "@typescript-eslint/utils-6.18.0" = {
       name = "_at_typescript-eslint_slash_utils";
       packageName = "@typescript-eslint/utils";
-      version = "6.12.0";
+      version = "6.18.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.12.0.tgz";
-        sha512 = "LywPm8h3tGEbgfyjYnu3dauZ0U7R60m+miXgKcZS8c7QALO9uWJdvNoP+duKTk2XMWc7/Q3d/QiCuLN9X6SWyQ==";
+        url = "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.18.0.tgz";
+        sha512 = "wiKKCbUeDPGaYEYQh1S580dGxJ/V9HI7K5sbGAVklyf+o5g3O+adnS4UNJajplF4e7z2q0uVBaTdT/yLb4XAVA==";
       };
     };
     "@typescript-eslint/visitor-keys-6.0.0" = {
@@ -12235,13 +12550,13 @@ let
         sha512 = "cvJ63l8c0yXdeT5POHpL0Q1cZoRcmRKFCtSjNGJxPkcP571EfZMcNbzWAc7oK3D1dRzm/V5EwtkANTZxqvuuUA==";
       };
     };
-    "@typescript-eslint/visitor-keys-6.12.0" = {
+    "@typescript-eslint/visitor-keys-6.18.0" = {
       name = "_at_typescript-eslint_slash_visitor-keys";
       packageName = "@typescript-eslint/visitor-keys";
-      version = "6.12.0";
+      version = "6.18.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.12.0.tgz";
-        sha512 = "rg3BizTZHF1k3ipn8gfrzDXXSFKyOEB5zxYXInQ6z0hUvmQlhaZQzK+YmHmNViMA9HzW5Q9+bPPt90bU6GQwyw==";
+        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.18.0.tgz";
+        sha512 = "1wetAlSZpewRDb2h9p/Q8kRjdGuqdTAQbkJIOUMLug2LBLG+QOjiWoSj6/3B/hA9/tVTFFdtiKvAYoYnSRW/RA==";
       };
     };
     "@ungap/structured-clone-1.2.0" = {
@@ -12289,13 +12604,13 @@ let
         sha512 = "1O/biKiVhhn0EtvDF4UOvz325K4RrLupfL8rHcmqD2TBLv4qVDWQuzx4JGa1FfqjjRb+C9TNZ6w19f32Mq85Ug==";
       };
     };
-    "@vercel/build-utils-7.2.5" = {
+    "@vercel/build-utils-7.4.1" = {
       name = "_at_vercel_slash_build-utils";
       packageName = "@vercel/build-utils";
-      version = "7.2.5";
+      version = "7.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/build-utils/-/build-utils-7.2.5.tgz";
-        sha512 = "rlXL7Kjwfl8c8CQ9fYpP/+AunFZbaXXf89OT+7G8E/CGRM+hAYrGF+N3Kz1X8TfwfNlSCqPs7VQriOKKajUS0g==";
+        url = "https://registry.npmjs.org/@vercel/build-utils/-/build-utils-7.4.1.tgz";
+        sha512 = "Tg35Zl3r68h/Tg4TVb+gIVUKGsL5XVbtSI7gUYNZyq/811CVX7zlCV5ZHAmEkG7J5+nBoaUJc/eoYP6HkzcNIg==";
       };
     };
     "@vercel/error-utils-2.0.2" = {
@@ -12325,22 +12640,22 @@ let
         sha512 = "iTEA0vY6RBPuEzkwUTVzSHDATo1aF6bdLLspI68mQ/BTbi5UQEGjpjyzdKOVcSYApDtFU6M6vypZ1t4vIEnHvw==";
       };
     };
-    "@vercel/gatsby-plugin-vercel-builder-2.0.11" = {
+    "@vercel/gatsby-plugin-vercel-builder-2.0.14" = {
       name = "_at_vercel_slash_gatsby-plugin-vercel-builder";
       packageName = "@vercel/gatsby-plugin-vercel-builder";
-      version = "2.0.11";
+      version = "2.0.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/gatsby-plugin-vercel-builder/-/gatsby-plugin-vercel-builder-2.0.11.tgz";
-        sha512 = "2G83Rj1gxL6X1/Cc0di+10xQ/ZYaaI1Mhi7kC8rUVApWY4cNJfFPsogB+DQ/fC6m+YAh3qajcbF6pnmVZk5K3Q==";
+        url = "https://registry.npmjs.org/@vercel/gatsby-plugin-vercel-builder/-/gatsby-plugin-vercel-builder-2.0.14.tgz";
+        sha512 = "KMJ9BwTIwvploWMnsYIC+PRBVoPzx9L+cWaaLeLbtnqaDyIbebcqDAcbasbiJu/7yvfq6tLU+Cgdz4Ih9CxvLw==";
       };
     };
-    "@vercel/go-3.0.3" = {
+    "@vercel/go-3.0.5" = {
       name = "_at_vercel_slash_go";
       packageName = "@vercel/go";
-      version = "3.0.3";
+      version = "3.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/go/-/go-3.0.3.tgz";
-        sha512 = "XhrmpsACxNo64ojhscL//Mq+XEfm3VXlx/UIUcHzJJXdvFnz7DEzh1zs0AtdpVgZbYhPQ7rW3GIejaHrIJnN5w==";
+        url = "https://registry.npmjs.org/@vercel/go/-/go-3.0.5.tgz";
+        sha512 = "+kEDI+hop3e8BuKisaEozxfzT6GBbp0OMBcgi0tlD5ZTmhGmpwi3vgK5mBQlB+RBXj7qlqDLW/uV2F1Y03FLcQ==";
       };
     };
     "@vercel/hydrogen-1.0.1" = {
@@ -12352,31 +12667,31 @@ let
         sha512 = "4PYk4LeIWPTjGtgnxvB0Hdw7aqCau843/96K2xX3z9pa0Hn//pUnZBMz2jrs5MRseCm1Li1LdQAK3u8/vaUnVQ==";
       };
     };
-    "@vercel/next-4.0.14" = {
+    "@vercel/next-4.0.17" = {
       name = "_at_vercel_slash_next";
       packageName = "@vercel/next";
-      version = "4.0.14";
+      version = "4.0.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/next/-/next-4.0.14.tgz";
-        sha512 = "29x93X278ElpbftrSgHvdY9OGVZkHurm3ST/WbdyE/AASEuqwOvShkpAoQl8idlFJFHPjd4c2v5xv1ZVyEb6sg==";
+        url = "https://registry.npmjs.org/@vercel/next/-/next-4.0.17.tgz";
+        sha512 = "FcMGiOdLMdxPX83goY8XTaUTKgkJ7ErL3RSUdODieBFhnYVRwUvAsIDWpfS+Y88DsNgedM3vBy+28VMVs3niMw==";
       };
     };
-    "@vercel/nft-0.24.2" = {
+    "@vercel/nft-0.26.2" = {
       name = "_at_vercel_slash_nft";
       packageName = "@vercel/nft";
-      version = "0.24.2";
+      version = "0.26.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/nft/-/nft-0.24.2.tgz";
-        sha512 = "KhY3Ky/lCqE+fHpOXiKOLnXYJ49PZh1dyDSfVtZhmYtmica0NQgyO6kPOAGDNWqD9IOBx8hb65upxxjfnfa1JA==";
+        url = "https://registry.npmjs.org/@vercel/nft/-/nft-0.26.2.tgz";
+        sha512 = "bxe2iShmKZi7476xYamyKvhhKwQ6JPEtQ2FSq1AjMUH2buMd8LQMkdoHinTqZYc+1sMTh3G0ARdjzNvV1FEisA==";
       };
     };
-    "@vercel/node-3.0.11" = {
+    "@vercel/node-3.0.15" = {
       name = "_at_vercel_slash_node";
       packageName = "@vercel/node";
-      version = "3.0.11";
+      version = "3.0.15";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/node/-/node-3.0.11.tgz";
-        sha512 = "J6ETfnfHNCnomEaEVTdbr/J1t1+SDYTx7nawCRux+Gn2JDrQ6y1K0YIi61FLLd7uIhShqJ4DzfImih7zKxxeeg==";
+        url = "https://registry.npmjs.org/@vercel/node/-/node-3.0.15.tgz";
+        sha512 = "jdds+p+RkTY0ji2eGOxsZcHHQi/cx04QX4xl0fnY2oBq3LvGYKyw3oWzvrzgxTBaK+zK5MbrmjsvoikJBRR0Hw==";
       };
     };
     "@vercel/python-4.1.0" = {
@@ -12388,22 +12703,22 @@ let
         sha512 = "EIQXK5zL6fce0Barh74gc7xyLtRyvgmLZDIVQ8yJLtFxPlPCRY3GXkdJ7Jdcw8Pd0uuVF0vIHatv18xSLbcwtg==";
       };
     };
-    "@vercel/redwood-2.0.5" = {
+    "@vercel/redwood-2.0.6" = {
       name = "_at_vercel_slash_redwood";
       packageName = "@vercel/redwood";
-      version = "2.0.5";
+      version = "2.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/redwood/-/redwood-2.0.5.tgz";
-        sha512 = "9iWTxfMkC7yNnwN2xxOdptiIDAgXe1V1fh3aw92MWt5PBRcFY9RqgIPF7Q3Qa7yzQFgpbHwCnSTqWO+HCEuFtw==";
+        url = "https://registry.npmjs.org/@vercel/redwood/-/redwood-2.0.6.tgz";
+        sha512 = "bH8z/0peYlEdFGxyPWwOScTV75eb47H8IK9u0EZ3LtC7hKwiqEkQIRg2CtyH5FmILlGN9nRxEB5XWsboigHByw==";
       };
     };
-    "@vercel/remix-builder-2.0.11" = {
+    "@vercel/remix-builder-2.0.16" = {
       name = "_at_vercel_slash_remix-builder";
       packageName = "@vercel/remix-builder";
-      version = "2.0.11";
+      version = "2.0.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/remix-builder/-/remix-builder-2.0.11.tgz";
-        sha512 = "blp+PPXFZ4KWLHrh0PZfR9Er/yOQAzPJLbmvJtfJIBnes8SVmIWB89xl+P89HVruknK+FNvCotEFCU41DUjoWw==";
+        url = "https://registry.npmjs.org/@vercel/remix-builder/-/remix-builder-2.0.16.tgz";
+        sha512 = "yuGKt/SlynEckJYvdRmEKeXcSv762Okw/ZvzpTOSe1HKJUa/WjxChNrUg7ZpqoE77k+OjG+rwdE34AybANuIkg==";
       };
     };
     "@vercel/routing-utils-3.1.0" = {
@@ -12415,22 +12730,22 @@ let
         sha512 = "Ci5xTjVTJY/JLZXpCXpLehMft97i9fH34nu9PGav6DtwkVUF6TOPX86U0W0niQjMZ5n6/ZP0BwcJK2LOozKaGw==";
       };
     };
-    "@vercel/ruby-2.0.2" = {
+    "@vercel/ruby-2.0.4" = {
       name = "_at_vercel_slash_ruby";
       packageName = "@vercel/ruby";
-      version = "2.0.2";
+      version = "2.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/ruby/-/ruby-2.0.2.tgz";
-        sha512 = "MqFynhtZ905L210DWAbgkiEQEK39LTtp9eL2Nm6PjzhjNzU6hV0UfK8Z24vU9CC6J4mrUTTZx396fH7XTYJWqg==";
+        url = "https://registry.npmjs.org/@vercel/ruby/-/ruby-2.0.4.tgz";
+        sha512 = "EpZyfF6wFGzFDmubFIh/EZtYpKindmXx/69xSfKEBTVU0afgljyOOICbyZePe5tvigfOEBLSLgrt/2nN+MlLtA==";
       };
     };
-    "@vercel/static-build-2.0.12" = {
+    "@vercel/static-build-2.0.16" = {
       name = "_at_vercel_slash_static-build";
       packageName = "@vercel/static-build";
-      version = "2.0.12";
+      version = "2.0.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/static-build/-/static-build-2.0.12.tgz";
-        sha512 = "7X7fhkdoxOInbjvXcswiv7AtAj9a1A/DojJuHh8iDNBMOti/umNSjEp1Orzm7sr7qmLEuSAcZrGoBa8R5jVKEQ==";
+        url = "https://registry.npmjs.org/@vercel/static-build/-/static-build-2.0.16.tgz";
+        sha512 = "pI1b7ZaXI2r2TITvjQtqObBoZoSTSS/pzmNPZ/QnS/e80gxeCgiDwro4w8ICMKdJDMdLpVt3vhcPzeZrIaEGxg==";
       };
     };
     "@vercel/static-config-3.0.0" = {
@@ -12451,6 +12766,114 @@ let
         sha512 = "7wU921ABnNYkETiMaZy7XqpueMnpu5VxvVps13MjmCo+utBdD79sZzrApHawHtVX66cCJQQTXFcjH0y9dSUK8g==";
       };
     };
+    "@vitest/browser-1.1.3" = {
+      name = "_at_vitest_slash_browser";
+      packageName = "@vitest/browser";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vitest/browser/-/browser-1.1.3.tgz";
+        sha512 = "ksI0V8YqonFYfjVYMPTvDR84i7ix7QPL2Sc8G2mHirVGAf4jJS3uC/CsifRLe5/E2r8QUhHbAdZQpvMCqBJV5w==";
+      };
+    };
+    "@vitest/expect-0.34.6" = {
+      name = "_at_vitest_slash_expect";
+      packageName = "@vitest/expect";
+      version = "0.34.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vitest/expect/-/expect-0.34.6.tgz";
+        sha512 = "QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==";
+      };
+    };
+    "@vitest/expect-1.1.3" = {
+      name = "_at_vitest_slash_expect";
+      packageName = "@vitest/expect";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vitest/expect/-/expect-1.1.3.tgz";
+        sha512 = "MnJqsKc1Ko04lksF9XoRJza0bGGwTtqfbyrsYv5on4rcEkdo+QgUdITenBQBUltKzdxW7K3rWh+nXRULwsdaVg==";
+      };
+    };
+    "@vitest/runner-0.34.6" = {
+      name = "_at_vitest_slash_runner";
+      packageName = "@vitest/runner";
+      version = "0.34.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vitest/runner/-/runner-0.34.6.tgz";
+        sha512 = "1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==";
+      };
+    };
+    "@vitest/runner-1.1.3" = {
+      name = "_at_vitest_slash_runner";
+      packageName = "@vitest/runner";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vitest/runner/-/runner-1.1.3.tgz";
+        sha512 = "Va2XbWMnhSdDEh/OFxyUltgQuuDRxnarK1hW5QNN4URpQrqq6jtt8cfww/pQQ4i0LjoYxh/3bYWvDFlR9tU73g==";
+      };
+    };
+    "@vitest/snapshot-0.34.6" = {
+      name = "_at_vitest_slash_snapshot";
+      packageName = "@vitest/snapshot";
+      version = "0.34.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-0.34.6.tgz";
+        sha512 = "B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==";
+      };
+    };
+    "@vitest/snapshot-1.1.3" = {
+      name = "_at_vitest_slash_snapshot";
+      packageName = "@vitest/snapshot";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.1.3.tgz";
+        sha512 = "U0r8pRXsLAdxSVAyGNcqOU2H3Z4Y2dAAGGelL50O0QRMdi1WWeYHdrH/QWpN1e8juWfVKsb8B+pyJwTC+4Gy9w==";
+      };
+    };
+    "@vitest/spy-0.34.6" = {
+      name = "_at_vitest_slash_spy";
+      packageName = "@vitest/spy";
+      version = "0.34.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vitest/spy/-/spy-0.34.6.tgz";
+        sha512 = "xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==";
+      };
+    };
+    "@vitest/spy-1.1.3" = {
+      name = "_at_vitest_slash_spy";
+      packageName = "@vitest/spy";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vitest/spy/-/spy-1.1.3.tgz";
+        sha512 = "Ec0qWyGS5LhATFQtldvChPTAHv08yHIOZfiNcjwRQbFPHpkih0md9KAbs7TfeIfL7OFKoe7B/6ukBTqByubXkQ==";
+      };
+    };
+    "@vitest/ui-1.1.3" = {
+      name = "_at_vitest_slash_ui";
+      packageName = "@vitest/ui";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vitest/ui/-/ui-1.1.3.tgz";
+        sha512 = "JKGgftXZgTtK7kfQNicE9Q2FuiUlYvCGyUENkA2/S1VBThtfQyGUwaJmiDFVAKBOrW305cNgjP67vsxMm9/SDQ==";
+      };
+    };
+    "@vitest/utils-0.34.6" = {
+      name = "_at_vitest_slash_utils";
+      packageName = "@vitest/utils";
+      version = "0.34.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vitest/utils/-/utils-0.34.6.tgz";
+        sha512 = "IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==";
+      };
+    };
+    "@vitest/utils-1.1.3" = {
+      name = "_at_vitest_slash_utils";
+      packageName = "@vitest/utils";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vitest/utils/-/utils-1.1.3.tgz";
+        sha512 = "Dyt3UMcdElTll2H75vhxfpZu03uFpXRCHxWnzcrFjZxT1kTbq8ALUYIeBgGolo1gldVdI0YSlQRacsqxTwNqwg==";
+      };
+    };
     "@volar-plugins/css-2.0.0" = {
       name = "_at_volar-plugins_slash_css";
       packageName = "@volar-plugins/css";
@@ -12631,15 +13054,6 @@ let
         sha512 = "2uZPvDfo8Bspq9u+RaQhsdONFhu35HBS7/ZDXhhmhyMfcN327e1vnvAhHPDfOb8XNFg/Cj54rVKegANpKZJTOg==";
       };
     };
-    "@vscode/emmet-helper-2.8.4" = {
-      name = "_at_vscode_slash_emmet-helper";
-      packageName = "@vscode/emmet-helper";
-      version = "2.8.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@vscode/emmet-helper/-/emmet-helper-2.8.4.tgz";
-        sha512 = "lUki5QLS47bz/U8IlG9VQ+1lfxMtxMZENmU5nu4Z71eOD5j9FK0SmYGL5NiVJg9WBWeAU0VxRADMY2Qpq7BfVg==";
-      };
-    };
     "@vscode/emmet-helper-2.9.2" = {
       name = "_at_vscode_slash_emmet-helper";
       packageName = "@vscode/emmet-helper";
@@ -12667,13 +13081,13 @@ let
         sha512 = "JT5CvrIYYCrmB+dCana8sUqJEcGB1ZDXNLMQ2+42bW995WmNoenijWMUdZfwmuQUTQcEVVIa2OecZzTYWUW9Cg==";
       };
     };
-    "@vscode/test-electron-2.3.6" = {
+    "@vscode/test-electron-2.3.8" = {
       name = "_at_vscode_slash_test-electron";
       packageName = "@vscode/test-electron";
-      version = "2.3.6";
+      version = "2.3.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-2.3.6.tgz";
-        sha512 = "M31xGH0RgqNU6CZ4/9g39oUMJ99nLzfjA+4UbtIQ6TcXQ6+2qkjOOxedmPBDDCg26/3Al5ubjY80hIoaMwKYSw==";
+        url = "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-2.3.8.tgz";
+        sha512 = "b4aZZsBKtMGdDljAsOPObnAi7+VWIaYl3ylCz1jTs+oV6BZ4TNHcVNC3xUn0azPeszBmwSBDQYfFESIaUQnrOg==";
       };
     };
     "@vscode/vsce-2.22.0" = {
@@ -12721,76 +13135,121 @@ let
         sha512 = "jNYQ+3z7HDZ3IR3Z3Dlo3yOPbHexpygkn2IJ7sjA62oGolnNWeF7kvpLwni18l8N5InhS66m9w31an1Fs5pCZA==";
       };
     };
-    "@vue/compiler-core-3.3.8" = {
+    "@vue/compiler-core-3.4.5" = {
       name = "_at_vue_slash_compiler-core";
       packageName = "@vue/compiler-core";
-      version = "3.3.8";
+      version = "3.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.8.tgz";
-        sha512 = "hN/NNBUECw8SusQvDSqqcVv6gWq8L6iAktUR0UF3vGu2OhzRqcOiAno0FmBJWwxhYEXRlQJT5XnoKsVq1WZx4g==";
+        url = "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.5.tgz";
+        sha512 = "Daka7P1z2AgKjzuueWXhwzIsKu0NkLB6vGbNVEV2iJ8GJTrzraZo/Sk4GWCMRtd/qVi3zwnk+Owbd/xSZbwHtQ==";
       };
     };
-    "@vue/compiler-dom-3.3.8" = {
+    "@vue/compiler-dom-3.4.5" = {
       name = "_at_vue_slash_compiler-dom";
       packageName = "@vue/compiler-dom";
-      version = "3.3.8";
+      version = "3.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.8.tgz";
-        sha512 = "+PPtv+p/nWDd0AvJu3w8HS0RIm/C6VGBIRe24b9hSyNWOAPEUosFZ5diwawwP8ip5sJ8n0Pe87TNNNHnvjs0FQ==";
+        url = "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.5.tgz";
+        sha512 = "J8YlxknJVd90SXFJ4HwGANSAXsx5I0lK30sO/zvYV7s5gXf7gZR7r/1BmZ2ju7RGH1lnc6bpBc6nL61yW+PsAQ==";
       };
     };
-    "@vue/compiler-sfc-2.7.15" = {
+    "@vue/compiler-sfc-2.7.16" = {
       name = "_at_vue_slash_compiler-sfc";
       packageName = "@vue/compiler-sfc";
-      version = "2.7.15";
+      version = "2.7.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.15.tgz";
-        sha512 = "FCvIEevPmgCgqFBH7wD+3B97y7u7oj/Wr69zADBf403Tui377bThTjBvekaZvlRr4IwUAu3M6hYZeULZFJbdYg==";
+        url = "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz";
+        sha512 = "KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==";
       };
     };
-    "@vue/compiler-sfc-3.3.8" = {
+    "@vue/compiler-sfc-3.4.5" = {
       name = "_at_vue_slash_compiler-sfc";
       packageName = "@vue/compiler-sfc";
-      version = "3.3.8";
+      version = "3.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.8.tgz";
-        sha512 = "WMzbUrlTjfYF8joyT84HfwwXo+8WPALuPxhy+BZ6R4Aafls+jDBnSz8PDz60uFhuqFbl3HxRfxvDzrUf3THwpA==";
+        url = "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.5.tgz";
+        sha512 = "jauvkDuSSUbP0ebhfNqljhShA90YEfX/0wZ+w40oZF43IjGyWYjqYaJbvMJwGOd+9+vODW6eSvnk28f0SGV7OQ==";
       };
     };
-    "@vue/compiler-ssr-3.3.8" = {
+    "@vue/compiler-ssr-3.4.5" = {
       name = "_at_vue_slash_compiler-ssr";
       packageName = "@vue/compiler-ssr";
-      version = "3.3.8";
+      version = "3.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.8.tgz";
-        sha512 = "hXCqQL/15kMVDBuoBYpUnSYT8doDNwsjvm3jTefnXr+ytn294ySnT8NlsFHmTgKNjwpuFy7XVV8yTeLtNl/P6w==";
+        url = "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.5.tgz";
+        sha512 = "DDdEcDzj2lWTMfUMMtEpLDhURai9LhM0zSZ219jCt7b2Vyl0/jy3keFgCPMitG0V1S1YG4Cmws3lWHWdxHQOpg==";
       };
     };
-    "@vue/reactivity-3.3.8" = {
+    "@vue/reactivity-3.4.5" = {
       name = "_at_vue_slash_reactivity";
       packageName = "@vue/reactivity";
-      version = "3.3.8";
+      version = "3.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.8.tgz";
-        sha512 = "ctLWitmFBu6mtddPyOKpHg8+5ahouoTCRtmAHZAXmolDtuZXfjL2T3OJ6DL6ezBPQB1SmMnpzjiWjCiMYmpIuw==";
+        url = "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.5.tgz";
+        sha512 = "BcWkKvjdvqJwb7BhhFkXPLDCecX4d4a6GATvCduJQDLv21PkPowAE5GKuIE5p6RC07/Lp9FMkkq4AYCTVF5KlQ==";
       };
     };
-    "@vue/reactivity-transform-3.3.8" = {
-      name = "_at_vue_slash_reactivity-transform";
-      packageName = "@vue/reactivity-transform";
-      version = "3.3.8";
+    "@vue/shared-3.4.5" = {
+      name = "_at_vue_slash_shared";
+      packageName = "@vue/shared";
+      version = "3.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.8.tgz";
-        sha512 = "49CvBzmZNtcHua0XJ7GdGifM8GOXoUMOX4dD40Y5DxI3R8OUhMlvf2nvgUAcPxaXiV5MQQ1Nwy09ADpnLQUqRw==";
+        url = "https://registry.npmjs.org/@vue/shared/-/shared-3.4.5.tgz";
+        sha512 = "6XptuzlMvN4l4cDnDw36pdGEV+9njYkQ1ZE0Q6iZLwrKefKaOJyiFmcP3/KBDHbt72cJZGtllAc1GaHe6XGAyg==";
       };
     };
-    "@vue/shared-3.3.8" = {
-      name = "_at_vue_slash_shared";
-      packageName = "@vue/shared";
-      version = "3.3.8";
+    "@wdio/config-8.27.0" = {
+      name = "_at_wdio_slash_config";
+      packageName = "@wdio/config";
+      version = "8.27.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@wdio/config/-/config-8.27.0.tgz";
+        sha512 = "zYM5daeiBVVAbQj0ASymAt0RUsocLVIwKiUHNa8gg/1GsZnztGjetXExSp1gXlxtMVM5xWUSKjh6ceFK79gWDQ==";
+      };
+    };
+    "@wdio/logger-8.24.12" = {
+      name = "_at_wdio_slash_logger";
+      packageName = "@wdio/logger";
+      version = "8.24.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/shared/-/shared-3.3.8.tgz";
-        sha512 = "8PGwybFwM4x8pcfgqEQFy70NaQxASvOC5DJwLQfpArw1UDfUXrJkdxD3BhVTMS+0Lef/TU7YO0Jvr0jJY8T+mw==";
+        url = "https://registry.npmjs.org/@wdio/logger/-/logger-8.24.12.tgz";
+        sha512 = "QisOiVIWKTUCf1H7S+DOtC+gruhlpimQrUXfWMTeeh672PvAJYnTpOJDWA+BtXfsikkUYFAzAaq8SeMJk8rqKg==";
+      };
+    };
+    "@wdio/protocols-8.24.12" = {
+      name = "_at_wdio_slash_protocols";
+      packageName = "@wdio/protocols";
+      version = "8.24.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@wdio/protocols/-/protocols-8.24.12.tgz";
+        sha512 = "QnVj3FkapmVD3h2zoZk+ZQ8gevSj9D9MiIQIy8eOnY4FAneYZ9R9GvoW+mgNcCZO8S8++S/jZHetR8n+8Q808g==";
+      };
+    };
+    "@wdio/repl-8.24.12" = {
+      name = "_at_wdio_slash_repl";
+      packageName = "@wdio/repl";
+      version = "8.24.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@wdio/repl/-/repl-8.24.12.tgz";
+        sha512 = "321F3sWafnlw93uRTSjEBVuvWCxTkWNDs7ektQS15drrroL3TMeFOynu4rDrIz0jXD9Vas0HCD2Tq/P0uxFLdw==";
+      };
+    };
+    "@wdio/types-8.27.0" = {
+      name = "_at_wdio_slash_types";
+      packageName = "@wdio/types";
+      version = "8.27.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@wdio/types/-/types-8.27.0.tgz";
+        sha512 = "LbP9FKh8r0uW9/dKhTIUCC1Su8PsP9TmzGKXkWt6/IMacgJiB/zW3u1CgyaLw9lG0UiQORHGoeJX9zB2HZAh4w==";
+      };
+    };
+    "@wdio/utils-8.27.0" = {
+      name = "_at_wdio_slash_utils";
+      packageName = "@wdio/utils";
+      version = "8.27.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@wdio/utils/-/utils-8.27.0.tgz";
+        sha512 = "4BY+JBQssVn003P5lA289uDMie3LtGinHze5btkcW9timB6VaU+EeZS4eKTPC0pziizLhteVvXYxv3YTpeeRfA==";
       };
     };
     "@webassemblyjs/ast-1.11.1" = {
@@ -13261,22 +13720,22 @@ let
         sha512 = "AyQEn5hIPV7Ze+xFoXVU3QTHXVbWPrzaOkxtENMPMuNL6VVHrp4hHfDt9nrQpjO7BgvuM95dMtkycX5M/DZR3w==";
       };
     };
-    "@whatwg-node/fetch-0.9.14" = {
+    "@whatwg-node/fetch-0.9.15" = {
       name = "_at_whatwg-node_slash_fetch";
       packageName = "@whatwg-node/fetch";
-      version = "0.9.14";
+      version = "0.9.15";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.9.14.tgz";
-        sha512 = "wurZC82zzZwXRDSW0OS9l141DynaJQh7Yt0FD1xZ8niX7/Et/7RoiLiltbVU1fSF1RR9z6ndEaTUQBAmddTm1w==";
+        url = "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.9.15.tgz";
+        sha512 = "2wIUcolUthZt0nsPRj+pT7K9h/EO3t/j09IBuq0FtITCsASc2fRCmRw2JHS6hk9fzUQrz2+YYrA1ZDpV7+vLsQ==";
       };
     };
-    "@whatwg-node/node-fetch-0.5.0" = {
+    "@whatwg-node/node-fetch-0.5.3" = {
       name = "_at_whatwg-node_slash_node-fetch";
       packageName = "@whatwg-node/node-fetch";
-      version = "0.5.0";
+      version = "0.5.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.5.0.tgz";
-        sha512 = "q76lDAafvHNGWedNAVHrz/EyYTS8qwRLcwne8SJQdRN5P3HydxU6XROFvJfTML6KZXQX2FDdGY4/SnaNyd7M0Q==";
+        url = "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.5.3.tgz";
+        sha512 = "toMC8N53RxgprcuU7Fc05KOrJhZV49njJCHPZvXBsjZMQBKrDm9o14Y56CsrUC85cvjQu862MaYOjd8rKgHdDw==";
       };
     };
     "@xmldom/xmldom-0.7.13" = {
@@ -13810,13 +14269,13 @@ let
         sha512 = "nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==";
       };
     };
-    "acorn-8.11.2" = {
+    "acorn-8.11.3" = {
       name = "acorn";
       packageName = "acorn";
-      version = "8.11.2";
+      version = "8.11.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz";
-        sha512 = "nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==";
+        url = "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz";
+        sha512 = "Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==";
       };
     };
     "acorn-8.8.2" = {
@@ -13855,6 +14314,15 @@ let
         sha512 = "cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==";
       };
     };
+    "acorn-import-attributes-1.9.2" = {
+      name = "acorn-import-attributes";
+      packageName = "acorn-import-attributes";
+      version = "1.9.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.2.tgz";
+        sha512 = "O+nfJwNolEA771IYJaiLWK1UAwjNsQmZbTRqqwBYxCgVQTmpFEMvBw6LOIQV0Me339L5UMVYFyRohGnGlQDdIQ==";
+      };
+    };
     "acorn-jsx-3.0.1" = {
       name = "acorn-jsx";
       packageName = "acorn-jsx";
@@ -13891,13 +14359,13 @@ let
         sha512 = "8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==";
       };
     };
-    "acorn-typescript-1.4.11" = {
+    "acorn-typescript-1.4.13" = {
       name = "acorn-typescript";
       packageName = "acorn-typescript";
-      version = "1.4.11";
+      version = "1.4.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/acorn-typescript/-/acorn-typescript-1.4.11.tgz";
-        sha512 = "cRGgp+4HMxMZAiMS61ZmQ3iuU/+A4g4ZYZsyLZdmvrEVN/TOwfJ40rPWcLqi3H5ut75SYAdOOJj6QGCcrkK57w==";
+        url = "https://registry.npmjs.org/acorn-typescript/-/acorn-typescript-1.4.13.tgz";
+        sha512 = "xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==";
       };
     };
     "acorn-walk-6.2.0" = {
@@ -13927,13 +14395,13 @@ let
         sha512 = "k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==";
       };
     };
-    "acorn-walk-8.3.0" = {
+    "acorn-walk-8.3.1" = {
       name = "acorn-walk";
       packageName = "acorn-walk";
-      version = "8.3.0";
+      version = "8.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz";
-        sha512 = "FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==";
+        url = "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz";
+        sha512 = "TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==";
       };
     };
     "add-stream-1.0.0" = {
@@ -13963,15 +14431,6 @@ let
         sha512 = "4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==";
       };
     };
-    "adm-zip-0.5.10" = {
-      name = "adm-zip";
-      packageName = "adm-zip";
-      version = "0.5.10";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz";
-        sha512 = "x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==";
-      };
-    };
     "adverb-where-0.2.6" = {
       name = "adverb-where";
       packageName = "adverb-where";
@@ -14206,13 +14665,13 @@ let
         sha512 = "GrTZLRpmp6wIC2ztrWW9MjjTgSKccffgFagbNDOX95/dcjEcYZibYTeaOntySQLcdw1ztBoFkviiUvTMbb9MYg==";
       };
     };
-    "all-package-names-2.0.784" = {
+    "all-package-names-2.0.818" = {
       name = "all-package-names";
       packageName = "all-package-names";
-      version = "2.0.784";
+      version = "2.0.818";
       src = fetchurl {
-        url = "https://registry.npmjs.org/all-package-names/-/all-package-names-2.0.784.tgz";
-        sha512 = "PKS1+uAFHnruBTrbTfg34khsZdFDEVePhJ/XWZ0GTCwF6XLSxDYiQCNyo0rs0ny1YWpqN4FHgerctBstAaeYMg==";
+        url = "https://registry.npmjs.org/all-package-names/-/all-package-names-2.0.818.tgz";
+        sha512 = "8Hb3aYHuAAl7zCgmIqabhaudBhdYbjgcP+5bf3s44vrOvie0OO3pC1QzPaxe8RktX6cImlgWpXkI4+c4Q53EQA==";
       };
     };
     "amdefine-1.0.1" = {
@@ -14773,6 +15232,15 @@ let
         sha512 = "+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==";
       };
     };
+    "archiver-6.0.1" = {
+      name = "archiver";
+      packageName = "archiver";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/archiver/-/archiver-6.0.1.tgz";
+        sha512 = "CXGy4poOLBKptiZH//VlWdFuUC1RESbdZjGjILwBuZ73P7WkAUN0htfSfBq/7k6FRFlpu7bg4JOkj1vU9G6jcQ==";
+      };
+    };
     "archiver-utils-2.1.0" = {
       name = "archiver-utils";
       packageName = "archiver-utils";
@@ -14791,6 +15259,15 @@ let
         sha512 = "KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==";
       };
     };
+    "archiver-utils-4.0.1" = {
+      name = "archiver-utils";
+      packageName = "archiver-utils";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/archiver-utils/-/archiver-utils-4.0.1.tgz";
+        sha512 = "Q4Q99idbvzmgCTEAAhi32BkOyq8iVI5EwdO0PmBDSGIzzjYNdcFn7Q7k3OzbLy4kLUPXfJtG6fO2RjftXbobBg==";
+      };
+    };
     "archy-1.0.0" = {
       name = "archy";
       packageName = "archy";
@@ -15403,6 +15880,15 @@ let
         sha512 = "/mttty5Xh7wE4o7ttKaUpBJl0l04xWe3y6muy1j27gyzSsnceK0AYU9owPtUoL9z8+9hnPxztmuhdFZ7jRoyWw==";
       };
     };
+    "assertion-error-1.1.0" = {
+      name = "assertion-error";
+      packageName = "assertion-error";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz";
+        sha512 = "jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==";
+      };
+    };
     "assign-symbols-1.0.0" = {
       name = "assign-symbols";
       packageName = "assign-symbols";
@@ -15772,13 +16258,13 @@ let
         sha512 = "d1W2aNSYcz/sxYO4pMGX9vq65qOTu0P800epMud+6cYYX0QcT7zyqcxec3VWzpgvdXo57UWmVbZpLMjX2m1I7Q==";
       };
     };
-    "aws-crt-1.19.0" = {
+    "aws-crt-1.20.1" = {
       name = "aws-crt";
       packageName = "aws-crt";
-      version = "1.19.0";
+      version = "1.20.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws-crt/-/aws-crt-1.19.0.tgz";
-        sha512 = "pBRSpy4TsL/fxW7Lp1xpN1FhnxvtBXFYx3Njo/j/m8GSV3Ytq/mBetYq7vhDb7CJQmFJCWod9I0yShqjiSUuyQ==";
+        url = "https://registry.npmjs.org/aws-crt/-/aws-crt-1.20.1.tgz";
+        sha512 = "Vs2Sz5LGgCDflmaPL2VPtsqc3sGGQfevU6NSeX0egPnI7R9NeNH1j3KFEhSuhRyzfynwBHJO7jM5hYiEm+GiPw==";
       };
     };
     "aws-sdk-2.1340.0" = {
@@ -15799,15 +16285,6 @@ let
         sha512 = "U7kAHRbvTy753IXKV8Oom/AqlqnsbXG+Kw5gRbKi6VcsZ3hR/EpNMzdRXTWO5U415bnLWGo8WAqIz67PIaaKsw==";
       };
     };
-    "aws-sdk-2.1500.0" = {
-      name = "aws-sdk";
-      packageName = "aws-sdk";
-      version = "2.1500.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1500.0.tgz";
-        sha512 = "e6ISdnxgHbq+QWYYILdSMfTuTJgLSR9PLKEz4RCxaybKIe05z75jYgc2WSPt9++3rQPSdqSc4wYSlwuE0m7jjA==";
-      };
-    };
     "aws-sign2-0.7.0" = {
       name = "aws-sign2";
       packageName = "aws-sign2";
@@ -15880,13 +16357,13 @@ let
         sha512 = "S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==";
       };
     };
-    "axios-1.6.2" = {
+    "axios-1.6.5" = {
       name = "axios";
       packageName = "axios";
-      version = "1.6.2";
+      version = "1.6.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz";
-        sha512 = "7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==";
+        url = "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz";
+        sha512 = "Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==";
       };
     };
     "axobject-query-3.2.1" = {
@@ -15970,31 +16447,31 @@ let
         sha512 = "MlX10UDheRr3lb3P0WcaIdtCSRlxdQsB1sBqL7W0raF070bGl1HQQq5K3T2vf2XAYie+ww+5AKC/WrkjRO2knA==";
       };
     };
-    "babel-plugin-polyfill-corejs2-0.4.6" = {
+    "babel-plugin-polyfill-corejs2-0.4.7" = {
       name = "babel-plugin-polyfill-corejs2";
       packageName = "babel-plugin-polyfill-corejs2";
-      version = "0.4.6";
+      version = "0.4.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz";
-        sha512 = "jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==";
+        url = "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz";
+        sha512 = "LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==";
       };
     };
-    "babel-plugin-polyfill-corejs3-0.8.6" = {
+    "babel-plugin-polyfill-corejs3-0.8.7" = {
       name = "babel-plugin-polyfill-corejs3";
       packageName = "babel-plugin-polyfill-corejs3";
-      version = "0.8.6";
+      version = "0.8.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz";
-        sha512 = "leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==";
+        url = "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz";
+        sha512 = "KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==";
       };
     };
-    "babel-plugin-polyfill-regenerator-0.5.3" = {
+    "babel-plugin-polyfill-regenerator-0.5.4" = {
       name = "babel-plugin-polyfill-regenerator";
       packageName = "babel-plugin-polyfill-regenerator";
-      version = "0.5.3";
+      version = "0.5.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz";
-        sha512 = "8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==";
+        url = "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz";
+        sha512 = "S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==";
       };
     };
     "babel-plugin-react-native-web-0.18.12" = {
@@ -16213,13 +16690,13 @@ let
         sha512 = "lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==";
       };
     };
-    "bash-language-server-5.0.0" = {
+    "bash-language-server-5.1.1" = {
       name = "bash-language-server";
       packageName = "bash-language-server";
-      version = "5.0.0";
+      version = "5.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bash-language-server/-/bash-language-server-5.0.0.tgz";
-        sha512 = "1S5PMQO4PwXDIiPHUE6dYd8vZF1NZqb3i4Astd7UXD4lSWnSo71MqSmTpTs/dTYcvo2/9z2IymbNPPyn/VuM2w==";
+        url = "https://registry.npmjs.org/bash-language-server/-/bash-language-server-5.1.1.tgz";
+        sha512 = "olPB+r2ewiPWeK4ZgcU2Pn9MqjHpSVROaXgFwWiVMEu3UKKhy+Wkltn0ZoIwCKTz6O+qt+lLk/oS3thTP51dZQ==";
       };
     };
     "basic-auth-2.0.1" = {
@@ -16231,13 +16708,13 @@ let
         sha512 = "NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==";
       };
     };
-    "basic-ftp-5.0.3" = {
+    "basic-ftp-5.0.4" = {
       name = "basic-ftp";
       packageName = "basic-ftp";
-      version = "5.0.3";
+      version = "5.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.3.tgz";
-        sha512 = "QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g==";
+        url = "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.4.tgz";
+        sha512 = "8PzkB0arJFV4jJWSGOYR+OEic6aeKMu/osRhBULN6RY0ykby6LKhbmuQ5ublvaas5BOwboah5D87nrHyuh8PPA==";
       };
     };
     "batch-0.6.1" = {
@@ -16402,13 +16879,22 @@ let
         sha512 = "BhbmCLqDC+u8rPSeB/I8bRC8luQoUt+wD326CECXYXtE5GyTWL/q/OkNp58aH7XEREguEItvqM18s9vXLvg6fw==";
       };
     };
-    "big-integer-1.6.51" = {
+    "bidi-js-1.0.3" = {
+      name = "bidi-js";
+      packageName = "bidi-js";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz";
+        sha512 = "RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==";
+      };
+    };
+    "big-integer-1.6.52" = {
       name = "big-integer";
       packageName = "big-integer";
-      version = "1.6.51";
+      version = "1.6.52";
       src = fetchurl {
-        url = "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz";
-        sha512 = "GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==";
+        url = "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz";
+        sha512 = "QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==";
       };
     };
     "big.js-5.2.2" = {
@@ -16501,13 +16987,13 @@ let
         sha512 = "M15ypXCxXd81FSOWL2ejHpB1TDKmz7Y55/VuqfExJi72sHW0JzE5dfV+hrSZafZtWRg/tdMsdte5dgwrlOM7nA==";
       };
     };
-    "bitfield-4.1.0" = {
+    "bitfield-4.2.0" = {
       name = "bitfield";
       packageName = "bitfield";
-      version = "4.1.0";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bitfield/-/bitfield-4.1.0.tgz";
-        sha512 = "6cEDG3K+PK9f+B7WyhWYjp09bqSa+uaAaecVA7Y5giFixyVe1s6HKGnvOqYNR4Mi4fBMjfDPLBpHkKvzzgP7kg==";
+        url = "https://registry.npmjs.org/bitfield/-/bitfield-4.2.0.tgz";
+        sha512 = "kUTatQb/mBd8uhvdLrUkouGDBUQiJaIOvPlptUwOWp6MFqih4d1MiVf0m3ATxfZSzu+LjW/awFeABltYa62uIA==";
       };
     };
     "bittorrent-dht-10.0.7" = {
@@ -16834,13 +17320,13 @@ let
         sha512 = "RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg==";
       };
     };
-    "bonjour-service-1.1.1" = {
+    "bonjour-service-1.2.0" = {
       name = "bonjour-service";
       packageName = "bonjour-service";
-      version = "1.1.1";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz";
-        sha512 = "Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==";
+        url = "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.0.tgz";
+        sha512 = "xdzMA6JGckxyJzZByjEWRcfKmDxXaGXZWVftah3FkCqdlePNS9DjHSUN5zkP4oEfz/t0EXXlro88EIhzwMB4zA==";
       };
     };
     "boolbase-1.0.0" = {
@@ -17122,22 +17608,22 @@ let
         sha512 = "qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==";
       };
     };
-    "browser-sync-client-2.29.3" = {
+    "browser-sync-client-3.0.2" = {
       name = "browser-sync-client";
       packageName = "browser-sync-client";
-      version = "2.29.3";
+      version = "3.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.29.3.tgz";
-        sha512 = "4tK5JKCl7v/3aLbmCBMzpufiYLsB1+UI+7tUXCCp5qF0AllHy/jAqYu6k7hUF3hYtlClKpxExWaR+rH+ny07wQ==";
+        url = "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-3.0.2.tgz";
+        sha512 = "tBWdfn9L0wd2Pjuz/NWHtNEKthVb1Y67vg8/qyGNtCqetNz5lkDkFnrsx5UhPNPYUO8vci50IWC/BhYaQskDiQ==";
       };
     };
-    "browser-sync-ui-2.29.3" = {
+    "browser-sync-ui-3.0.2" = {
       name = "browser-sync-ui";
       packageName = "browser-sync-ui";
-      version = "2.29.3";
+      version = "3.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.29.3.tgz";
-        sha512 = "kBYOIQjU/D/3kYtUIJtj82e797Egk1FB2broqItkr3i4eF1qiHbFCG6srksu9gWhfmuM/TNG76jMfzAdxEPakg==";
+        url = "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-3.0.2.tgz";
+        sha512 = "V3FwWAI+abVbFLTyJjXJlCMBwjc3GXf/BPGfwO2fMFACWbIGW9/4SrBOFYEOOtqzCjQE0Di+U3VIb7eES4omNA==";
       };
     };
     "browserify-16.5.2" = {
@@ -17230,13 +17716,13 @@ let
         sha512 = "Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==";
       };
     };
-    "browserslist-4.22.1" = {
+    "browserslist-4.22.2" = {
       name = "browserslist";
       packageName = "browserslist";
-      version = "4.22.1";
+      version = "4.22.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz";
-        sha512 = "FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==";
+        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz";
+        sha512 = "0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==";
       };
     };
     "brq-0.1.10" = {
@@ -17716,13 +18202,13 @@ let
         sha512 = "/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==";
       };
     };
-    "cacache-18.0.0" = {
+    "cacache-18.0.2" = {
       name = "cacache";
       packageName = "cacache";
-      version = "18.0.0";
+      version = "18.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cacache/-/cacache-18.0.0.tgz";
-        sha512 = "I7mVOPl3PUCeRub1U8YoGz2Lqv9WOBpobZ8RyWFXmReuILz+3OAyTa5oH3QPdtKZD7N0Yk00aLfzn0qvp8dZ1w==";
+        url = "https://registry.npmjs.org/cacache/-/cacache-18.0.2.tgz";
+        sha512 = "r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw==";
       };
     };
     "cache-base-1.0.1" = {
@@ -17806,15 +18292,6 @@ let
         sha512 = "WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==";
       };
     };
-    "cachedir-2.4.0" = {
-      name = "cachedir";
-      packageName = "cachedir";
-      version = "2.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz";
-        sha512 = "9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==";
-      };
-    };
     "caching-transform-4.0.0" = {
       name = "caching-transform";
       packageName = "caching-transform";
@@ -18076,13 +18553,22 @@ let
         sha512 = "bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==";
       };
     };
-    "caniuse-lite-1.0.30001563" = {
+    "caniuse-lite-1.0.30001575" = {
+      name = "caniuse-lite";
+      packageName = "caniuse-lite";
+      version = "1.0.30001575";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001575.tgz";
+        sha512 = "VE+TSRJsWdtwTheYnrQikhGWlvJp+4lunXBadY66YIc+itIHm7y9d0NSA150Eh6mNY6d1S/B+fitPr9OzHJc6Q==";
+      };
+    };
+    "caniuse-lite-1.0.30001576" = {
       name = "caniuse-lite";
       packageName = "caniuse-lite";
-      version = "1.0.30001563";
+      version = "1.0.30001576";
       src = fetchurl {
-        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001563.tgz";
-        sha512 = "na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw==";
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz";
+        sha512 = "ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==";
       };
     };
     "canvas-2.11.2" = {
@@ -18211,31 +18697,31 @@ let
         sha512 = "eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==";
       };
     };
-    "cdk8s-2.68.10" = {
+    "cdk8s-2.68.23" = {
       name = "cdk8s";
       packageName = "cdk8s";
-      version = "2.68.10";
+      version = "2.68.23";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cdk8s/-/cdk8s-2.68.10.tgz";
-        sha512 = "y0ZwGvWln5y0hc/8NmB/GBjy4AIbvXhztfnncLhhPz9FWy1B6VjEi3LRLT3OrPwtONWKOmWe6d5KwideevBsrw==";
+        url = "https://registry.npmjs.org/cdk8s/-/cdk8s-2.68.23.tgz";
+        sha512 = "ckLBVynhm7waLVd7iJXQoR3R9j57dc9bbTKuiUlHVBKa/YOVpVITHtMKUX0HnuQHFiKICTc1ZFVt7mm9CkJBtw==";
       };
     };
-    "cdk8s-plus-25-2.22.64" = {
+    "cdk8s-plus-25-2.22.68" = {
       name = "cdk8s-plus-25";
       packageName = "cdk8s-plus-25";
-      version = "2.22.64";
+      version = "2.22.68";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cdk8s-plus-25/-/cdk8s-plus-25-2.22.64.tgz";
-        sha512 = "lzjrEAyoX38+jM9Y8lao5CMsL2WFgi9L5KxrXk8Bfgj6Wre/L9xw0sQC7nsNF0XOdgiHs+s3JIBqJP5W0V8mMA==";
+        url = "https://registry.npmjs.org/cdk8s-plus-25/-/cdk8s-plus-25-2.22.68.tgz";
+        sha512 = "jMwQjmKOgogIHE4i8zgBYWKalGC+a95uuZ3ycafk0671l01FDX53zIyIZfEQrLgZfpXVqwRe/13k1DsFWrbuXg==";
       };
     };
-    "cdktf-0.19.1" = {
+    "cdktf-0.19.2" = {
       name = "cdktf";
       packageName = "cdktf";
-      version = "0.19.1";
+      version = "0.19.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cdktf/-/cdktf-0.19.1.tgz";
-        sha512 = "scZhp2+FEgNUd+l5vaDCHABdwFApB1Lcknn2+dUw8aYwNsMoYT0tWs4AzPg22Z4jQFOIQLIXmBxifhr+RahdRg==";
+        url = "https://registry.npmjs.org/cdktf/-/cdktf-0.19.2.tgz";
+        sha512 = "FHOERDO7i2g/+pUaaZCVDKsbXEBtWYOgELL1UKjNp37DyEmtFlltdsgutVfouoil0C7W5za2IydD6sSeoH5aUw==";
       };
     };
     "center-align-0.1.3" = {
@@ -18247,6 +18733,15 @@ let
         sha512 = "Baz3aNe2gd2LP2qk5U+sDk/m4oSuwSDcBfayTCTBoWpfIGO5XFxPmjILQII4NGiZjD6DoDI6kf7gKaxkf7s3VQ==";
       };
     };
+    "chai-4.4.0" = {
+      name = "chai";
+      packageName = "chai";
+      version = "4.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chai/-/chai-4.4.0.tgz";
+        sha512 = "x9cHNq1uvkCdU+5xTkNh5WtgD4e4yDFCsp9jVc7N7qVeKeftv3gO/ZrviX5d+3ZfxdYnZXZYujjRInu1RogU6A==";
+      };
+    };
     "chainsaw-0.1.0" = {
       name = "chainsaw";
       packageName = "chainsaw";
@@ -18499,6 +18994,15 @@ let
         sha512 = "/Bw+avucqqZ7PjKCVDod1QDGyZjo7Ht2701pdgcpTXzK5jI73/OUh3VR+m18jNUoJx5DSOUv0AxELZF7FYtcDA==";
       };
     };
+    "check-error-1.0.3" = {
+      name = "check-error";
+      packageName = "check-error";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz";
+        sha512 = "iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==";
+      };
+    };
     "cheerio-0.17.0" = {
       name = "cheerio";
       packageName = "cheerio";
@@ -18571,33 +19075,6 @@ let
         sha512 = "9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==";
       };
     };
-    "chevrotain-11.0.3" = {
-      name = "chevrotain";
-      packageName = "chevrotain";
-      version = "11.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz";
-        sha512 = "ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==";
-      };
-    };
-    "child-process-ext-2.1.1" = {
-      name = "child-process-ext";
-      packageName = "child-process-ext";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/child-process-ext/-/child-process-ext-2.1.1.tgz";
-        sha512 = "0UQ55f51JBkOFa+fvR76ywRzxiPwQS3Xe8oe5bZRphpv+dIMeerW5Zn5e4cUy4COJwVtJyU0R79RMnw+aCqmGA==";
-      };
-    };
-    "child-process-ext-3.0.2" = {
-      name = "child-process-ext";
-      packageName = "child-process-ext";
-      version = "3.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/child-process-ext/-/child-process-ext-3.0.2.tgz";
-        sha512 = "oBePsLbQpTJFxzwyCvs9yWWF0OEM6vGGepHwt1stqmX7QQqOuDc8j2ywdvAs9Tvi44TT7d9ackqhR4Q10l1u8w==";
-      };
-    };
     "chokidar-1.7.0" = {
       name = "chokidar";
       packageName = "chokidar";
@@ -18679,6 +19156,15 @@ let
         sha512 = "HqsYJgIc8ljJJOqOzLphjAs79EUuWSX3nzZi2LNkzlw3GIzAeZbaSektC8iT/tKvLqZq8yl1GJu5o6doA4TRbg==";
       };
     };
+    "chrome-launcher-1.1.0" = {
+      name = "chrome-launcher";
+      packageName = "chrome-launcher";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-1.1.0.tgz";
+        sha512 = "rJYWeEAERwWIr3c3mEVXwNiODPEdMRlRxHc47B1qHPOolHZnkj7rMv1QSUfPoG6MgatWj5AxSpnKKR4QEwEQIQ==";
+      };
+    };
     "chrome-net-3.3.4" = {
       name = "chrome-net";
       packageName = "chrome-net";
@@ -18706,6 +19192,24 @@ let
         sha512 = "Pa5nrrCMWukBafWxQ8wwmeRuqs/6nVFAdhRXYcxpDePduAbZZ8lXNZhtGZ5/mmWI1rzrSR6tpRR9J3BtR84yUw==";
       };
     };
+    "chromium-bidi-0.4.16" = {
+      name = "chromium-bidi";
+      packageName = "chromium-bidi";
+      version = "0.4.16";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.16.tgz";
+        sha512 = "7ZbXdWERxRxSwo3txsBjjmc/NLxqb1Bk30mRb0BMS4YIaiV6zvKZqL/UAH+DdqcDYayDWk2n/y8klkBDODrPvA==";
+      };
+    };
+    "chromium-bidi-0.4.9" = {
+      name = "chromium-bidi";
+      packageName = "chromium-bidi";
+      version = "0.4.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.9.tgz";
+        sha512 = "u3DC6XwgLCA9QJ5ak1voPslCmacQdulZNCPsI3qNXxSnEcZS7DFIbww+5RM2bznMEje7cc0oydavRLRvOIZtHw==";
+      };
+    };
     "chunk-store-stream-4.3.0" = {
       name = "chunk-store-stream";
       packageName = "chunk-store-stream";
@@ -18814,13 +19318,13 @@ let
         sha512 = "EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==";
       };
     };
-    "clean-css-5.3.2" = {
+    "clean-css-5.3.3" = {
       name = "clean-css";
       packageName = "clean-css";
-      version = "5.3.2";
+      version = "5.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz";
-        sha512 = "JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==";
+        url = "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz";
+        sha512 = "D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==";
       };
     };
     "clean-regexp-1.0.0" = {
@@ -18922,15 +19426,6 @@ let
         sha512 = "/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==";
       };
     };
-    "cli-color-2.0.3" = {
-      name = "cli-color";
-      packageName = "cli-color";
-      version = "2.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cli-color/-/cli-color-2.0.3.tgz";
-        sha512 = "OkoZnxyC4ERN3zLzZaY9Emb7f/MhBOIpePv0Ycok0fJYT+Ouo00UBEIwsVsr0yoow++n5YWlSUgST9GKhNHiRQ==";
-      };
-    };
     "cli-cursor-1.0.2" = {
       name = "cli-cursor";
       packageName = "cli-cursor";
@@ -18985,15 +19480,6 @@ let
         sha512 = "tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==";
       };
     };
-    "cli-progress-footer-2.3.2" = {
-      name = "cli-progress-footer";
-      packageName = "cli-progress-footer";
-      version = "2.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cli-progress-footer/-/cli-progress-footer-2.3.2.tgz";
-        sha512 = "uzHGgkKdeA9Kr57eyH1W5HGiNShP8fV1ETq04HDNM1Un6ShXbHhwi/H8LNV9L1fQXKjEw0q5FUkEVNuZ+yZdSw==";
-      };
-    };
     "cli-spinners-1.3.1" = {
       name = "cli-spinners";
       packageName = "cli-spinners";
@@ -19021,22 +19507,13 @@ let
         sha512 = "qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==";
       };
     };
-    "cli-spinners-2.9.1" = {
+    "cli-spinners-2.9.2" = {
       name = "cli-spinners";
       packageName = "cli-spinners";
-      version = "2.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.1.tgz";
-        sha512 = "jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==";
-      };
-    };
-    "cli-sprintf-format-1.1.1" = {
-      name = "cli-sprintf-format";
-      packageName = "cli-sprintf-format";
-      version = "1.1.1";
+      version = "2.9.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cli-sprintf-format/-/cli-sprintf-format-1.1.1.tgz";
-        sha512 = "BbEjY9BEdA6wagVwTqPvmAwGB24U93rQPBFZUT8lNCDxXzre5LFHQUTJc70czjgUomVg8u8R5kW8oY9DYRFNeg==";
+        url = "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz";
+        sha512 = "ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==";
       };
     };
     "cli-table-0.3.11" = {
@@ -19543,13 +20020,13 @@ let
         sha512 = "7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==";
       };
     };
-    "codemaker-1.92.0" = {
+    "codemaker-1.93.0" = {
       name = "codemaker";
       packageName = "codemaker";
-      version = "1.92.0";
+      version = "1.93.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/codemaker/-/codemaker-1.92.0.tgz";
-        sha512 = "h9LW/YFYMAXHvv4aHNxVfawza/8GHL0Nw0zFpqdURXsjRlsCtG+SzqRvYLOJoFqxzZ9+rkXJf8fODImC6WHa8g==";
+        url = "https://registry.npmjs.org/codemaker/-/codemaker-1.93.0.tgz";
+        sha512 = "n9AdncxhGti20YhA7HI2oAYhELh/qlDnW9JIAYQW9iULXdeaKtsxHgvcwBCltpieOcQrq10bt+sUawBs62vxLg==";
       };
     };
     "coffeescript-2.7.0" = {
@@ -20065,6 +20542,15 @@ let
         sha512 = "W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==";
       };
     };
+    "compare-versions-6.0.0-rc.1" = {
+      name = "compare-versions";
+      packageName = "compare-versions";
+      version = "6.0.0-rc.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/compare-versions/-/compare-versions-6.0.0-rc.1.tgz";
+        sha512 = "cFhkjbGY1jLFWIV7KegECbfuyYPxSGvgGkdkfM+ibboQDoPwg2FRHm5BSNTOApiauRBzJIQH7qvOJs2sW5ueKQ==";
+      };
+    };
     "compare-versions-6.1.0" = {
       name = "compare-versions";
       packageName = "compare-versions";
@@ -20146,6 +20632,15 @@ let
         sha512 = "D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==";
       };
     };
+    "compress-commons-5.0.1" = {
+      name = "compress-commons";
+      packageName = "compress-commons";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/compress-commons/-/compress-commons-5.0.1.tgz";
+        sha512 = "MPh//1cERdLtqwO3pOFLeXtpuai0Y2WCd5AhtKxznqM7WtaMYaOEMSgn45d9D10sIHSfIKE603HlOp8OPGrvag==";
+      };
+    };
     "compressible-2.0.18" = {
       name = "compressible";
       packageName = "compressible";
@@ -20858,22 +21353,22 @@ let
         sha512 = "Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==";
       };
     };
-    "core-js-3.33.3" = {
+    "core-js-3.35.0" = {
       name = "core-js";
       packageName = "core-js";
-      version = "3.33.3";
+      version = "3.35.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js/-/core-js-3.33.3.tgz";
-        sha512 = "lo0kOocUlLKmm6kv/FswQL8zbkH7mVsLJ/FULClOhv8WRVmKLVcs6XPNQAzstfeJTCHMyButEwG+z1kHxHoDZw==";
+        url = "https://registry.npmjs.org/core-js/-/core-js-3.35.0.tgz";
+        sha512 = "ntakECeqg81KqMueeGJ79Q5ZgQNR+6eaE8sxGCx62zMbAIj65q+uYvatToew3m6eAGdU4gNZwpZ34NMe4GYswg==";
       };
     };
-    "core-js-compat-3.33.3" = {
+    "core-js-compat-3.35.0" = {
       name = "core-js-compat";
       packageName = "core-js-compat";
-      version = "3.33.3";
+      version = "3.35.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.3.tgz";
-        sha512 = "cNzGqFsh3Ot+529GIXacjTJ7kegdt5fPXxCBVS1G0iaZpuo/tBz399ymceLJveQhFFZ8qThHiP3fzuoQjKN2ow==";
+        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.0.tgz";
+        sha512 = "5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw==";
       };
     };
     "core-util-is-1.0.2" = {
@@ -20957,15 +21452,6 @@ let
         sha512 = "AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==";
       };
     };
-    "cosmiconfig-8.0.0" = {
-      name = "cosmiconfig";
-      packageName = "cosmiconfig";
-      version = "8.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz";
-        sha512 = "da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==";
-      };
-    };
     "cosmiconfig-8.3.6" = {
       name = "cosmiconfig";
       packageName = "cosmiconfig";
@@ -21056,6 +21542,15 @@ let
         sha512 = "NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==";
       };
     };
+    "crc32-stream-5.0.0" = {
+      name = "crc32-stream";
+      packageName = "crc32-stream";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/crc32-stream/-/crc32-stream-5.0.0.tgz";
+        sha512 = "B0EPa1UK+qnpBZpG+7FgPCu0J2ETLpXq09o9BkLkEAhdB6Z61Qo4pJ3JYu0c+Qi+/SAL7QThqnzS06pmSSyZaw==";
+      };
+    };
     "create-ecdh-4.0.4" = {
       name = "create-ecdh";
       packageName = "create-ecdh";
@@ -21074,13 +21569,13 @@ let
         sha512 = "gYTKKexFO3kh200H1Nit76sRwRtOY32vQd3jpAQKpLtZqyNsSQNfI4N7o3eP2wUjV35pTWKRYqFUDBvUha/Pkw==";
       };
     };
-    "create-gatsby-3.12.3" = {
+    "create-gatsby-3.13.0" = {
       name = "create-gatsby";
       packageName = "create-gatsby";
-      version = "3.12.3";
+      version = "3.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/create-gatsby/-/create-gatsby-3.12.3.tgz";
-        sha512 = "N0K/Z/MD5LMRJcBy669WpSgrn+31zBV72Lv0RHolX0fXa77Yx58HsEiLWz83j/dtciGMQfEOEHFRetUqZhOggA==";
+        url = "https://registry.npmjs.org/create-gatsby/-/create-gatsby-3.13.0.tgz";
+        sha512 = "LioljItQuXjGOmla7tmpaPQ452mO8FYlEzEvhF6oMy+aureMLjiYHrO1BlpNQoaRQxIPp85iMnhliy4cQwDVwg==";
       };
     };
     "create-graphback-1.0.1" = {
@@ -21182,6 +21677,15 @@ let
         sha512 = "lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==";
       };
     };
+    "cross-fetch-3.1.6" = {
+      name = "cross-fetch";
+      packageName = "cross-fetch";
+      version = "3.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.6.tgz";
+        sha512 = "riRvo06crlE8HiqOwIpQhxwdOk4fOeR7FVM/wXoxchFEqMNUjvbs3bfo4OTgMEMHzppd4DxFBDbyySj8Cv781g==";
+      };
+    };
     "cross-fetch-3.1.8" = {
       name = "cross-fetch";
       packageName = "cross-fetch";
@@ -21191,6 +21695,15 @@ let
         sha512 = "cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==";
       };
     };
+    "cross-fetch-4.0.0" = {
+      name = "cross-fetch";
+      packageName = "cross-fetch";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz";
+        sha512 = "e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==";
+      };
+    };
     "cross-inspect-1.0.0" = {
       name = "cross-inspect";
       packageName = "cross-inspect";
@@ -21299,6 +21812,15 @@ let
         sha512 = "x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==";
       };
     };
+    "cspell-config-lib-8.3.2" = {
+      name = "cspell-config-lib";
+      packageName = "cspell-config-lib";
+      version = "8.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-8.3.2.tgz";
+        sha512 = "Wc98XhBNLwDxnxCzMtgRJALI9a69cu3C5Gf1rGjNTKSFo9JYiQmju0Ur3z25Pkx9Sa86f+2IjvNCf33rUDSoBQ==";
+      };
+    };
     "cspell-dict-vimlang-1.0.1" = {
       name = "cspell-dict-vimlang";
       packageName = "cspell-dict-vimlang";
@@ -21308,22 +21830,22 @@ let
         sha512 = "pP2W2BvLrRKggS1fUk8qQw2FG8PhyV969dlwF3M0jAg/HH83n76H+KGdzGsmEut6VJFlJYQkd1ZZskjaeVWnrA==";
       };
     };
-    "cspell-dictionary-8.0.0" = {
+    "cspell-dictionary-8.3.2" = {
       name = "cspell-dictionary";
       packageName = "cspell-dictionary";
-      version = "8.0.0";
+      version = "8.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-8.0.0.tgz";
-        sha512 = "R/AzUj7W7F4O4fAOL8jvIiUqPYGy6jIBlDkxO9SZe/A6D2kOICZZzGSXMZ0M7OKYqxc6cioQUMKOJsLkDXfDXw==";
+        url = "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-8.3.2.tgz";
+        sha512 = "xyK95hO2BMPFxIo8zBwGml8035qOxSBdga1BMhwW/p2wDrQP8S4Cdm/54//tCDmKn6uRkFQvyOfWGaX2l8WMEg==";
       };
     };
-    "cspell-gitignore-8.0.0" = {
+    "cspell-gitignore-8.3.2" = {
       name = "cspell-gitignore";
       packageName = "cspell-gitignore";
-      version = "8.0.0";
+      version = "8.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-8.0.0.tgz";
-        sha512 = "Uv+ENdUm+EXwQuG9187lKmE1t8b2KW+6VaQHP7r01WiuhkwhfzmWA7C30iXVcwRcsMw07wKiWvMEtG6Zlzi6lQ==";
+        url = "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-8.3.2.tgz";
+        sha512 = "3Qc9P5BVvl/cg//s2s+zIMGKcoH5v7oOtRgwn4UQry8yiyo19h0tiTKkSR574FMhF5NtcShTnwIwPSIXVBPFHA==";
       };
     };
     "cspell-glob-0.1.25" = {
@@ -21335,22 +21857,22 @@ let
         sha512 = "/XaSHrGBpMJa+duFz3GKOWfrijrfdHT7a/XGgIcq3cymCSpOH+DPho42sl0jLI/hjM+8yv2m8aEoxRT8yVSnlg==";
       };
     };
-    "cspell-glob-8.0.0" = {
+    "cspell-glob-8.3.2" = {
       name = "cspell-glob";
       packageName = "cspell-glob";
-      version = "8.0.0";
+      version = "8.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-glob/-/cspell-glob-8.0.0.tgz";
-        sha512 = "wOkRA1OTIPhyN7a+k9Qq45yFXM+tBFi9DS5ObiLv6t6VTBIeMQpwRK0KLViHmjTgiA6eWx53Dnr+DZfxcAkcZA==";
+        url = "https://registry.npmjs.org/cspell-glob/-/cspell-glob-8.3.2.tgz";
+        sha512 = "KtIFxE+3l5dGEofND4/CdZffXP8XN1+XGQKxJ96lIzWsc01mkotfhxTkla6mgvfH039t7BsY/SWv0460KyGslQ==";
       };
     };
-    "cspell-grammar-8.0.0" = {
+    "cspell-grammar-8.3.2" = {
       name = "cspell-grammar";
       packageName = "cspell-grammar";
-      version = "8.0.0";
+      version = "8.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-8.0.0.tgz";
-        sha512 = "uxpRvbBxOih6SjFQvKTBPTA+YyqYM5UFTNTFuRnA6g6WZeg+NJaTkbQrTgXja4B2r8MJ6XU22YrKTtHNNcP7bQ==";
+        url = "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-8.3.2.tgz";
+        sha512 = "tYCkOmRzJe1a6/R+8QGSwG7TwTgznLPqsHtepKzLmnS4YX54VXjKRI9zMARxXDzUVfyCSVdW5MyiY/0WTNoy+A==";
       };
     };
     "cspell-io-4.1.7" = {
@@ -21362,13 +21884,13 @@ let
         sha512 = "V0/tUu9FnIS3v+vAvDT6NNa14Nc/zUNX8+YUUOfFAiDJJTdqefmvcWjOJBIMYBf3wIk9iWLmLbMM+bNHqr7DSQ==";
       };
     };
-    "cspell-io-8.0.0" = {
+    "cspell-io-8.3.2" = {
       name = "cspell-io";
       packageName = "cspell-io";
-      version = "8.0.0";
+      version = "8.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-io/-/cspell-io-8.0.0.tgz";
-        sha512 = "NVdVmQd7SU/nxYwWtO/6gzux/kp1Dt36zKds0+QHZhQ18JJjXduF5e+WUttqKi2oj/vvmjiG4HGFKQVDBcBz3w==";
+        url = "https://registry.npmjs.org/cspell-io/-/cspell-io-8.3.2.tgz";
+        sha512 = "WYpKsyBCQP0SY4gXnhW5fPuxcYchKYKG1PIXVV3ezFU4muSgW6GuLNbGuSfwv/8YNXRgFSN0e3hYH0rdBK2Aow==";
       };
     };
     "cspell-lib-4.3.12" = {
@@ -21380,13 +21902,13 @@ let
         sha512 = "yCCb6MoW1K8Tsr/WVEQoO4dfYhH9bCsjQayccb8MlyDaNNuWJHuX+gUGHsZSXSuChSh8PrTWKXJzs13/uM977g==";
       };
     };
-    "cspell-lib-8.0.0" = {
+    "cspell-lib-8.3.2" = {
       name = "cspell-lib";
       packageName = "cspell-lib";
-      version = "8.0.0";
+      version = "8.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-lib/-/cspell-lib-8.0.0.tgz";
-        sha512 = "X/BzUjrzHOx7YlhvSph/OlMu1RmCTnybeZvIE67d1Pd7wT1TmZhFTnmvruUhoHxWEudOEe4HjzuNL9ph6Aw+aA==";
+        url = "https://registry.npmjs.org/cspell-lib/-/cspell-lib-8.3.2.tgz";
+        sha512 = "wTvdaev/TyGB/ln6CVD1QbVs2D7/+QiajQ67S7yj1suLHM6YcNQQb/5sPAM8VPtj0E7PgwgPXf3bq18OtPvnFg==";
       };
     };
     "cspell-trie-lib-4.2.8" = {
@@ -21398,13 +21920,13 @@ let
         sha512 = "Nt3c0gxOYXIc3/yhALDukpje1BgR6guvlUKWQO2zb0r7qRWpwUw2j2YM4dWbHQeH/3Hx5ei4Braa6cMaiJ5YBw==";
       };
     };
-    "cspell-trie-lib-8.0.0" = {
+    "cspell-trie-lib-8.3.2" = {
       name = "cspell-trie-lib";
       packageName = "cspell-trie-lib";
-      version = "8.0.0";
+      version = "8.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-8.0.0.tgz";
-        sha512 = "0rC5e1C0uM78uuS+lC1T18EojWZyNvq4bPOPCisnwuhuWrAfCqrFrX/qDNslWk3VTOPbsEMlFj6OnIGQnfwSKg==";
+        url = "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-8.3.2.tgz";
+        sha512 = "8qh2FqzkLMwzlTlvO/5Z+89fhi30rrfekocpight/BmqKbE2XFJQD7wS2ml24e7q/rdHJLXVpJbY/V5mByucCA==";
       };
     };
     "cspell-util-bundle-4.1.11" = {
@@ -21434,6 +21956,15 @@ let
         sha512 = "rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==";
       };
     };
+    "css-declaration-sorter-7.1.1" = {
+      name = "css-declaration-sorter";
+      packageName = "css-declaration-sorter";
+      version = "7.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.1.1.tgz";
+        sha512 = "dZ3bVTEEc1vxr3Bek9vGwfB5Z6ESPULhcRvO472mfjVnj8jRcTnKO8/JTczlvxM10Myb+wBM++1MtdO76eWcaQ==";
+      };
+    };
     "css-loader-6.8.1" = {
       name = "css-loader";
       packageName = "css-loader";
@@ -21488,6 +22019,15 @@ let
         sha512 = "nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==";
       };
     };
+    "css-shorthand-properties-1.1.1" = {
+      name = "css-shorthand-properties";
+      packageName = "css-shorthand-properties";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-shorthand-properties/-/css-shorthand-properties-1.1.1.tgz";
+        sha512 = "Md+Juc7M3uOdbAFwOYlTrccIZ7oCFuzrhKYQjdeUEW/sE1hv17Jp/Bws+ReOPpGVBTYCBoYo+G17V5Qo8QQ75A==";
+      };
+    };
     "css-tree-1.1.3" = {
       name = "css-tree";
       packageName = "css-tree";
@@ -21515,6 +22055,15 @@ let
         sha512 = "6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==";
       };
     };
+    "css-value-0.0.1" = {
+      name = "css-value";
+      packageName = "css-value";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-value/-/css-value-0.0.1.tgz";
+        sha512 = "FUV3xaJ63buRLgHrLQVlVgQnQdR4yqdLGaDu7g8CQcWjInDfM9plBTPI9FRfpahju1UBSaMckeb2/46ApS/V1Q==";
+      };
+    };
     "css-what-1.0.0" = {
       name = "css-what";
       packageName = "css-what";
@@ -21542,6 +22091,15 @@ let
         sha512 = "HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==";
       };
     };
+    "css.escape-1.5.1" = {
+      name = "css.escape";
+      packageName = "css.escape";
+      version = "1.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz";
+        sha512 = "YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==";
+      };
+    };
     "cssauron-1.4.0" = {
       name = "cssauron";
       packageName = "cssauron";
@@ -21578,13 +22136,13 @@ let
         sha512 = "j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==";
       };
     };
-    "cssnano-6.0.1" = {
+    "cssnano-6.0.3" = {
       name = "cssnano";
       packageName = "cssnano";
-      version = "6.0.1";
+      version = "6.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cssnano/-/cssnano-6.0.1.tgz";
-        sha512 = "fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg==";
+        url = "https://registry.npmjs.org/cssnano/-/cssnano-6.0.3.tgz";
+        sha512 = "MRq4CIj8pnyZpcI2qs6wswoYoDD1t0aL28n+41c1Ukcpm56m1h6mCexIHBGjfZfnTqtGSSCP4/fB1ovxgjBOiw==";
       };
     };
     "cssnano-preset-default-5.2.14" = {
@@ -21596,13 +22154,13 @@ let
         sha512 = "t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==";
       };
     };
-    "cssnano-preset-default-6.0.1" = {
+    "cssnano-preset-default-6.0.3" = {
       name = "cssnano-preset-default";
       packageName = "cssnano-preset-default";
-      version = "6.0.1";
+      version = "6.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.0.1.tgz";
-        sha512 = "7VzyFZ5zEB1+l1nToKyrRkuaJIx0zi/1npjvZfbBwbtNTzhLtlvYraK/7/uqmX2Wb2aQtd983uuGw79jAjLSuQ==";
+        url = "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.0.3.tgz";
+        sha512 = "4y3H370aZCkT9Ev8P4SO4bZbt+AExeKhh8wTbms/X7OLDo5E7AYUUy6YPxa/uF5Grf+AJwNcCnxKhZynJ6luBA==";
       };
     };
     "cssnano-utils-3.1.0" = {
@@ -21614,13 +22172,13 @@ let
         sha512 = "JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==";
       };
     };
-    "cssnano-utils-4.0.0" = {
+    "cssnano-utils-4.0.1" = {
       name = "cssnano-utils";
       packageName = "cssnano-utils";
-      version = "4.0.0";
+      version = "4.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.0.tgz";
-        sha512 = "Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==";
+        url = "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.1.tgz";
+        sha512 = "6qQuYDqsGoiXssZ3zct6dcMxiqfT6epy7x4R0TQJadd4LWO3sPR6JH6ZByOvVLoZ6EdwPGgd7+DR1EmX3tiXQQ==";
       };
     };
     "csso-2.0.0" = {
@@ -21695,13 +22253,22 @@ let
         sha512 = "N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==";
       };
     };
-    "csstype-3.1.2" = {
+    "cssstyle-4.0.1" = {
+      name = "cssstyle";
+      packageName = "cssstyle";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cssstyle/-/cssstyle-4.0.1.tgz";
+        sha512 = "8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==";
+      };
+    };
+    "csstype-3.1.3" = {
       name = "csstype";
       packageName = "csstype";
-      version = "3.1.2";
+      version = "3.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz";
-        sha512 = "I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==";
+        url = "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz";
+        sha512 = "M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==";
       };
     };
     "csv-0.4.6" = {
@@ -21731,13 +22298,13 @@ let
         sha512 = "byxnDBxM1AVF3YfmsK7Smop9/usNz7gAZYSo9eYp61TGcNXraJby1rAiLyJSt1/8Iho2qaxZOtZCOvQMXogPtg==";
       };
     };
-    "csv-parse-5.5.2" = {
+    "csv-parse-5.5.3" = {
       name = "csv-parse";
       packageName = "csv-parse";
-      version = "5.5.2";
+      version = "5.5.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/csv-parse/-/csv-parse-5.5.2.tgz";
-        sha512 = "YRVtvdtUNXZCMyK5zd5Wty1W6dNTpGKdqQd4EQ8tl/c6KW1aMBB1Kg1ppky5FONKmEqGJ/8WjLlTNLPne4ioVA==";
+        url = "https://registry.npmjs.org/csv-parse/-/csv-parse-5.5.3.tgz";
+        sha512 = "v0KW6C0qlZzoGjk6u5tLmVfyZxNgPGXZsWTXshpAgKVGmGXzaVWGdlCFxNx5iuzcXT/oJN1HHM9DZKwtAtYa+A==";
       };
     };
     "csv-stream-0.2.0" = {
@@ -21839,13 +22406,13 @@ let
         sha512 = "w8a8nQk9YSCkMmH2wDbFqpH1XMz7l409mSvWnnG6Iu6D0Ydhvq61XASE7QIaA46FxfG2Ag524ZuGgAy2cXPfsw==";
       };
     };
-    "cytoscape-3.27.0" = {
+    "cytoscape-3.28.1" = {
       name = "cytoscape";
       packageName = "cytoscape";
-      version = "3.27.0";
+      version = "3.28.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cytoscape/-/cytoscape-3.27.0.tgz";
-        sha512 = "pPZJilfX9BxESwujODz5pydeGi+FBrXq1rcaB1mfhFXXFJ9GjE6CNndAk+8jPzoXGD+16LtSS4xlYEIUiW4Abg==";
+        url = "https://registry.npmjs.org/cytoscape/-/cytoscape-3.28.1.tgz";
+        sha512 = "xyItz4O/4zp9/239wCcH8ZcFuuZooEeF8KHRmzjDfGdXsj3OG9MFSMA0pJE0uX3uCN/ygof6hHf4L7lst+JaDg==";
       };
     };
     "cytoscape-cose-bilkent-4.1.0" = {
@@ -22334,6 +22901,15 @@ let
         sha512 = "/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==";
       };
     };
+    "data-urls-5.0.0" = {
+      name = "data-urls";
+      packageName = "data-urls";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz";
+        sha512 = "ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==";
+      };
+    };
     "dataloader-2.0.0" = {
       name = "dataloader";
       packageName = "dataloader";
@@ -22757,6 +23333,15 @@ let
         sha512 = "OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==";
       };
     };
+    "deep-eql-4.1.3" = {
+      name = "deep-eql";
+      packageName = "deep-eql";
+      version = "4.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz";
+        sha512 = "WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==";
+      };
+    };
     "deep-equal-1.1.2" = {
       name = "deep-equal";
       packageName = "deep-equal";
@@ -22829,6 +23414,15 @@ let
         sha512 = "3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==";
       };
     };
+    "deepmerge-ts-5.1.0" = {
+      name = "deepmerge-ts";
+      packageName = "deepmerge-ts";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deepmerge-ts/-/deepmerge-ts-5.1.0.tgz";
+        sha512 = "eS8dRJOckyo9maw9Tu5O5RUi/4inFLrnoLkBe3cPfDMx3WZioXtmOew4TXQaxq7Rhl4xjDtR7c6x8nNTxOvbFw==";
+      };
+    };
     "default-browser-4.0.0" = {
       name = "default-browser";
       packageName = "default-browser";
@@ -22919,15 +23513,6 @@ let
         sha512 = "4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==";
       };
     };
-    "deferred-0.7.11" = {
-      name = "deferred";
-      packageName = "deferred";
-      version = "0.7.11";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/deferred/-/deferred-0.7.11.tgz";
-        sha512 = "8eluCl/Blx4YOGwMapBvXRKxHXhA8ejDXYzEaK8+/gtcm8hRMhSLmXSqDmNUKNc/C8HNSmuyyp/hflhqDAvK2A==";
-      };
-    };
     "define-data-property-1.1.1" = {
       name = "define-data-property";
       packageName = "define-data-property";
@@ -23288,6 +23873,42 @@ let
         sha512 = "RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==";
       };
     };
+    "devtools-8.27.0" = {
+      name = "devtools";
+      packageName = "devtools";
+      version = "8.27.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/devtools/-/devtools-8.27.0.tgz";
+        sha512 = "yvCfYN/TUlYoeIhW+eYnPnHLR7C0z+SBEGi0jEWk7q7Gr+/s8SvDR+GHNYRkihffkdnDwkM6Ew2nBOWqtczlug==";
+      };
+    };
+    "devtools-protocol-0.0.1120988" = {
+      name = "devtools-protocol";
+      packageName = "devtools-protocol";
+      version = "0.0.1120988";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1120988.tgz";
+        sha512 = "39fCpE3Z78IaIPChJsP6Lhmkbf4dWXOmzLk/KFTdRkNk/0JymRIfUynDVRndV9HoDz8PyalK1UH21ST/ivwW5Q==";
+      };
+    };
+    "devtools-protocol-0.0.1147663" = {
+      name = "devtools-protocol";
+      packageName = "devtools-protocol";
+      version = "0.0.1147663";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1147663.tgz";
+        sha512 = "hyWmRrexdhbZ1tcJUGpO95ivbRhWXz++F4Ko+n21AY5PNln2ovoJw+8ZMNDTtip+CNFQfrtLVh/w4009dXO/eQ==";
+      };
+    };
+    "devtools-protocol-0.0.1237913" = {
+      name = "devtools-protocol";
+      packageName = "devtools-protocol";
+      version = "0.0.1237913";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1237913.tgz";
+        sha512 = "Pxtmz2ZIqBkpU82HaIdsvCQBG94yTC4xajrEsWx9p38QKEfBCJktSazsHkrjf9j3dVVNPhg5LR21F6KWeXpjiQ==";
+      };
+    };
     "devtools-protocol-0.0.981744" = {
       name = "devtools-protocol";
       packageName = "devtools-protocol";
@@ -23405,13 +24026,13 @@ let
         sha512 = "EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==";
       };
     };
-    "diff2html-3.4.45" = {
+    "diff2html-3.4.46" = {
       name = "diff2html";
       packageName = "diff2html";
-      version = "3.4.45";
+      version = "3.4.46";
       src = fetchurl {
-        url = "https://registry.npmjs.org/diff2html/-/diff2html-3.4.45.tgz";
-        sha512 = "1SxsjYZYbxX0GGMYJJM7gM0SpMSHqzvvG0UJVROCDpz4tylH2T+EGiinm2boDmTrMlLueVxGfKNxGNLZ9zDlkQ==";
+        url = "https://registry.npmjs.org/diff2html/-/diff2html-3.4.46.tgz";
+        sha512 = "z1SkrH7jDLfmsOYgwJmGiDTdzsbpw7p4vx084kNzeYqER+/Kqp8+v/L7lMsIWpFzlX3NaJDJna280Y/HFqel+Q==";
       };
     };
     "diffie-hellman-5.0.3" = {
@@ -23423,13 +24044,13 @@ let
         sha512 = "kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==";
       };
     };
-    "dir-compare-3.3.0" = {
+    "dir-compare-4.2.0" = {
       name = "dir-compare";
       packageName = "dir-compare";
-      version = "3.3.0";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dir-compare/-/dir-compare-3.3.0.tgz";
-        sha512 = "J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg==";
+        url = "https://registry.npmjs.org/dir-compare/-/dir-compare-4.2.0.tgz";
+        sha512 = "2xMCmOoMrdQIPHdsTawECdNPwlVFB9zGcz3kuhmBO6U3oU+UQjsue0i8ayLKpgBcm+hcXPMVSGUN9d+pvJ6+VQ==";
       };
     };
     "dir-glob-2.2.2" = {
@@ -23792,13 +24413,13 @@ let
         sha512 = "3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ==";
       };
     };
-    "dompurify-3.0.6" = {
+    "dompurify-3.0.8" = {
       name = "dompurify";
       packageName = "dompurify";
-      version = "3.0.6";
+      version = "3.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dompurify/-/dompurify-3.0.6.tgz";
-        sha512 = "ilkD8YEnnGh1zJ240uJsW7AzE+2qpbOUYjacomn3AvJ6J4JhKGSZ2nh4wUIXPZrEPppaCLx5jFe8T89Rk8tQ7w==";
+        url = "https://registry.npmjs.org/dompurify/-/dompurify-3.0.8.tgz";
+        sha512 = "b7uwreMYL2eZhrSCRC4ahLTeZcPZxSmYfmcQGXGkXiZSNW1X85v+SDM5KsWcpivIiUBH47Ji7NtyUdpLeF5JZQ==";
       };
     };
     "domutils-1.4.3" = {
@@ -23900,6 +24521,15 @@ let
         sha512 = "Ol/IPXUARn9CSbkrdV4VJo7uCy1I3VuSiWCaFSg+8BdUOzF9n3jefIpcgAydvUZbTdEBZs2vEiTiS9m61ssiDA==";
       };
     };
+    "dot-prop-8.0.2" = {
+      name = "dot-prop";
+      packageName = "dot-prop";
+      version = "8.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dot-prop/-/dot-prop-8.0.2.tgz";
+        sha512 = "xaBe6ZT4DHPkg0k4Ytbvn5xoxgpG0jOS1dYxSOwAHPuNLjP3/OzN0gH55SrLqpx8cBfSaVt91lXYkApjb+nYdQ==";
+      };
+    };
     "dotenv-10.0.0" = {
       name = "dotenv";
       packageName = "dotenv";
@@ -24107,15 +24737,6 @@ let
         sha512 = "fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==";
       };
     };
-    "duration-0.2.2" = {
-      name = "duration";
-      packageName = "duration";
-      version = "0.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/duration/-/duration-0.2.2.tgz";
-        sha512 = "06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg==";
-      };
-    };
     "e-prime-0.10.4" = {
       name = "e-prime";
       packageName = "e-prime";
@@ -24197,6 +24818,15 @@ let
         sha512 = "8E4ZLK4uRuB9pwywGpy/B9vcz4gCp6IY7u4cMbeCINr/fjb1v+0wf0Ae2XlfSnG8xZYnE4uaJBjFkYI0bqcIdw==";
       };
     };
+    "edge-paths-3.0.5" = {
+      name = "edge-paths";
+      packageName = "edge-paths";
+      version = "3.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/edge-paths/-/edge-paths-3.0.5.tgz";
+        sha512 = "sB7vSrDnFa4ezWQk9nZ/n0FdpdUuC6R1EOrlU3DL+bovcNFK28rqu2emmAUjujYEJTWIgQGqgVVWUZXMnc8iWg==";
+      };
+    };
     "edge-runtime-2.5.7" = {
       name = "edge-runtime";
       packageName = "edge-runtime";
@@ -24206,6 +24836,15 @@ let
         sha512 = "gA4qSVP0sNwJlkdQ2nahDPASlSl8twUd17o+JolPa1EtXpLTGzIpOETvodgJwXIxa+zaD8bnAXCdsWrx2PhlVQ==";
       };
     };
+    "edgedriver-5.3.9" = {
+      name = "edgedriver";
+      packageName = "edgedriver";
+      version = "5.3.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/edgedriver/-/edgedriver-5.3.9.tgz";
+        sha512 = "G0wNgFMFRDnFfKaXG2R6HiyVHqhKwdQ3EgoxW3wPlns2wKqem7F+HgkWBcevN7Vz0nN4AXtskID7/6jsYDXcKw==";
+      };
+    };
     "editorconfig-1.0.4" = {
       name = "editorconfig";
       packageName = "editorconfig";
@@ -24233,13 +24872,13 @@ let
         sha512 = "rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==";
       };
     };
-    "electron-to-chromium-1.4.589" = {
+    "electron-to-chromium-1.4.623" = {
       name = "electron-to-chromium";
       packageName = "electron-to-chromium";
-      version = "1.4.589";
+      version = "1.4.623";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.589.tgz";
-        sha512 = "zF6y5v/YfoFIgwf2dDfAqVlPPsyQeWNpEWXbAlDUS8Ax4Z2VoiiZpAPC0Jm9hXEkJm2vIZpwB6rc4KnLTQffbQ==";
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.623.tgz";
+        sha512 = "lKoz10iCYlP1WtRYdh5MvocQPWVRoI7ysp6qf18bmeBgR8abE6+I2CsfyNKztRDZvhdWc+krKT6wS7Neg8sw3A==";
       };
     };
     "elegant-spinner-1.0.1" = {
@@ -24576,6 +25215,15 @@ let
         sha512 = "n6e4bsCpzsP0OB76X+vEWhySUQI8GHPVFVK+3QkX35tbryy2WoeGeK5kQ+oxzgDVHjIZyz5fyS60Mi3EpQLc0Q==";
       };
     };
+    "enhanced-resolve-5.12.0" = {
+      name = "enhanced-resolve";
+      packageName = "enhanced-resolve";
+      version = "5.12.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz";
+        sha512 = "QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==";
+      };
+    };
     "enhanced-resolve-5.15.0" = {
       name = "enhanced-resolve";
       packageName = "enhanced-resolve";
@@ -24828,6 +25476,15 @@ let
         sha512 = "wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==";
       };
     };
+    "es-escape-html-0.1.1" = {
+      name = "es-escape-html";
+      packageName = "es-escape-html";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es-escape-html/-/es-escape-html-0.1.1.tgz";
+        sha512 = "yUx1o+8RsG7UlszmYPtks+dm6Lho2m8lgHMOsLJQsFI0R8XwUJwiMhM1M4E/S8QLeGyf6MkDV/pWgjQ0tdTSyQ==";
+      };
+    };
     "es-get-iterator-1.1.3" = {
       name = "es-get-iterator";
       packageName = "es-get-iterator";
@@ -24882,6 +25539,15 @@ let
         sha512 = "QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==";
       };
     };
+    "es-vary-0.1.2" = {
+      name = "es-vary";
+      packageName = "es-vary";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es-vary/-/es-vary-0.1.2.tgz";
+        sha512 = "pLqqZoOutAXQXyBJrUYVNM5fZngiOJYi1Xl4svQMrluTsqDUOQlBMw9EYgLrsWL6niDYn/Yd1y2Pj6GC+j/yjA==";
+      };
+    };
     "es5-ext-0.10.62" = {
       name = "es5-ext";
       packageName = "es5-ext";
@@ -25017,13 +25683,13 @@ let
         sha512 = "ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==";
       };
     };
-    "esbuild-0.19.7" = {
+    "esbuild-0.19.11" = {
       name = "esbuild";
       packageName = "esbuild";
-      version = "0.19.7";
+      version = "0.19.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/esbuild/-/esbuild-0.19.7.tgz";
-        sha512 = "6brbTZVqxhqgbpqBR5MzErImcpA0SQdoKOkcWK/U30HtQxnokIpG3TX2r0IJqbFUzqLjhU/zC1S5ndgakObVCQ==";
+        url = "https://registry.npmjs.org/esbuild/-/esbuild-0.19.11.tgz";
+        sha512 = "HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==";
       };
     };
     "esbuild-android-64-0.14.47" = {
@@ -25206,13 +25872,13 @@ let
         sha512 = "HFSW2lnp62fl86/qPQlqw6asIwCnEsEoNIL1h2uVMgakddf+vUuMcCbtUY1i8sst7KkgHrVKCJQB33YhhOweCQ==";
       };
     };
-    "esc-exit-3.0.0" = {
+    "esc-exit-3.0.1" = {
       name = "esc-exit";
       packageName = "esc-exit";
-      version = "3.0.0";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/esc-exit/-/esc-exit-3.0.0.tgz";
-        sha512 = "b/3X0RwP3Oq0C/SLVwsGkdOWIAigA1BRpF1ArZSI6+KCqp7kgtxh0lB57jhDIYOyRxlP3QPtI8DHxOrPvnFbRg==";
+        url = "https://registry.npmjs.org/esc-exit/-/esc-exit-3.0.1.tgz";
+        sha512 = "flJEhtHCj5qEJi9zY3Taq2YHHJ2WgowI6Krmrr32lbeEBwBxGOJoZ7s9fxzHTq5sMkz8d95o25Y7hhV1lzM4Gg==";
       };
     };
     "escalade-3.1.1" = {
@@ -25359,13 +26025,13 @@ let
         sha512 = "pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==";
       };
     };
-    "eslint-8.54.0" = {
+    "eslint-8.56.0" = {
       name = "eslint";
       packageName = "eslint";
-      version = "8.54.0";
+      version = "8.56.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz";
-        sha512 = "NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==";
+        url = "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz";
+        sha512 = "Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==";
       };
     };
     "eslint-config-prettier-8.10.0" = {
@@ -25431,13 +26097,13 @@ let
         sha512 = "oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==";
       };
     };
-    "eslint-plugin-react-refresh-0.4.4" = {
+    "eslint-plugin-react-refresh-0.4.5" = {
       name = "eslint-plugin-react-refresh";
       packageName = "eslint-plugin-react-refresh";
-      version = "0.4.4";
+      version = "0.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.4.tgz";
-        sha512 = "eD83+65e8YPVg6603Om2iCIwcQJf/y7++MWm4tACtEswFLYMwxwVWAfwN+e19f5Ad/FOyyNg9Dfi5lXhH3Y3rA==";
+        url = "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.5.tgz";
+        sha512 = "D53FYKJa+fDmZMtriODxvhwrO+IOqrxoEo21gMA0sjHdU6dPVH4OhyFip9ypl8HOF5RV5KdTo+rBQLvnY2cO8w==";
       };
     };
     "eslint-plugin-unicorn-48.0.1" = {
@@ -25458,13 +26124,13 @@ let
         sha512 = "oVNDqzBC9h3GO+NTgWeLMhhGigy6/bQaQbHS+0z7C4YEu/qK/yxHvca/2PTZtGNPsCrHwOTgKMrwu02A9iPBmw==";
       };
     };
-    "eslint-plugin-vue-9.18.1" = {
+    "eslint-plugin-vue-9.19.2" = {
       name = "eslint-plugin-vue";
       packageName = "eslint-plugin-vue";
-      version = "9.18.1";
+      version = "9.19.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.18.1.tgz";
-        sha512 = "7hZFlrEgg9NIzuVik2I9xSnJA5RsmOfueYgsUGUokEDLJ1LHtxO0Pl4duje1BriZ/jDWb+44tcIlC3yi0tdlZg==";
+        url = "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.19.2.tgz";
+        sha512 = "CPDqTOG2K4Ni2o4J5wixkLVNwgctKXFu6oBpVJlpNq7f38lh9I80pRTouZSJ2MAebPJlINU/KTFSXyQfBUlymA==";
       };
     };
     "eslint-rule-docs-1.1.235" = {
@@ -25539,15 +26205,6 @@ let
         sha512 = "Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==";
       };
     };
-    "esniff-1.1.0" = {
-      name = "esniff";
-      packageName = "esniff";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/esniff/-/esniff-1.1.0.tgz";
-        sha512 = "vmHXOeOt7FJLsqofvFk4WB3ejvcHizCd8toXXwADmYfd02p2QwHRgkUbhYDX54y08nqk818CUTWipgZGlyN07g==";
-      };
-    };
     "espree-3.5.4" = {
       name = "espree";
       packageName = "espree";
@@ -25611,13 +26268,13 @@ let
         sha512 = "YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==";
       };
     };
-    "esrap-1.1.1" = {
+    "esrap-1.2.1" = {
       name = "esrap";
       packageName = "esrap";
-      version = "1.1.1";
+      version = "1.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/esrap/-/esrap-1.1.1.tgz";
-        sha512 = "PIgHGLP8VAG4Iao4CbOc+/5tgn+TpzGhyAuVCR5qgcFgPOUk9Ds61bH7hD2lbjDuu86lagofx3lVrRFWcIF+Gg==";
+        url = "https://registry.npmjs.org/esrap/-/esrap-1.2.1.tgz";
+        sha512 = "dhkcOLfN/aDdMFI1iwPEcy/XqAZzGNfgfEJjZozy2tia6u0dQoZyXzkRshHTckuNsM+c0CYQndY+uRFe3N+AIQ==";
       };
     };
     "esrecurse-4.3.0" = {
@@ -25629,15 +26286,6 @@ let
         sha512 = "KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==";
       };
     };
-    "essentials-1.2.0" = {
-      name = "essentials";
-      packageName = "essentials";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/essentials/-/essentials-1.2.0.tgz";
-        sha512 = "kP/j7Iw7KeNE8b/o7+tr9uX2s1wegElGOoGZ2Xm35qBr4BbbEcH3/bxR2nfH9l9JANCq9AUrvKw+gRuHtZp0HQ==";
-      };
-    };
     "estraverse-4.3.0" = {
       name = "estraverse";
       packageName = "estraverse";
@@ -25710,6 +26358,15 @@ let
         sha512 = "kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==";
       };
     };
+    "eta-3.2.0" = {
+      name = "eta";
+      packageName = "eta";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eta/-/eta-3.2.0.tgz";
+        sha512 = "Qzc3it7nLn49dbOb9+oHV9rwtt9qN8oShRztqkZ3gXPqQflF0VLin5qhWk0g/2ioibBwT4DU6OIMVft7tg/rVg==";
+      };
+    };
     "etag-1.8.1" = {
       name = "etag";
       packageName = "etag";
@@ -26061,13 +26718,13 @@ let
         sha512 = "eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==";
       };
     };
-    "exit-hook-3.2.0" = {
+    "exit-hook-4.0.0" = {
       name = "exit-hook";
       packageName = "exit-hook";
-      version = "3.2.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/exit-hook/-/exit-hook-3.2.0.tgz";
-        sha512 = "aIQN7Q04HGAV/I5BszisuHTZHXNoC23WtLkxdCLuYZMdWviRD0TMIt2bnUBi9MrHaF/hH8b3gwG9iaAUHKnJGA==";
+        url = "https://registry.npmjs.org/exit-hook/-/exit-hook-4.0.0.tgz";
+        sha512 = "Fqs7ChZm72y40wKjOFXBKg7nJZvQJmewP5/7LtePDdnah/+FH9Hp5sgMujSCMPXlxOAW2//1jrW9pnsY7o20vQ==";
       };
     };
     "expand-brackets-0.1.5" = {
@@ -26214,13 +26871,13 @@ let
         sha512 = "QOPh/iXykNDCAzUual1imSrn2aDakzCGUp2QmxVREr0llajXygroUWlT9sQXh1zKzbNp+a+i/xK375ZeBFiNJA==";
       };
     };
-    "expo-modules-autolinking-1.8.0" = {
+    "expo-modules-autolinking-1.9.0" = {
       name = "expo-modules-autolinking";
       packageName = "expo-modules-autolinking";
-      version = "1.8.0";
+      version = "1.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-1.8.0.tgz";
-        sha512 = "vU92J+T+Rd0YNEYjvWZkoEjZ+B2/nkyc0aewdCgcbkJj7z001xozbr4EdlnrvZLIWmlknjNPE25Ut2Jl7POaZA==";
+        url = "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-1.9.0.tgz";
+        sha512 = "FVRuclmR7w6FZRXZmTwPdIr9PNCP7FUWMhpzaxbKU/xm7DbNw5ORAv2gaM8t9OaMxYjIAMSNYi0NnmLIinzBKA==";
       };
     };
     "expo-modules-core-1.2.7" = {
@@ -26358,15 +27015,6 @@ let
         sha512 = "4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw==";
       };
     };
-    "express-urlrewrite-1.4.0" = {
-      name = "express-urlrewrite";
-      packageName = "express-urlrewrite";
-      version = "1.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/express-urlrewrite/-/express-urlrewrite-1.4.0.tgz";
-        sha512 = "PI5h8JuzoweS26vFizwQl6UTF25CAHSggNv0J25Dn/IKZscJHWZzPrI5z2Y2jgOzIaw2qh8l6+/jUcig23Z2SA==";
-      };
-    };
     "express-validator-6.15.0" = {
       name = "express-validator";
       packageName = "express-validator";
@@ -26619,6 +27267,15 @@ let
         sha512 = "WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==";
       };
     };
+    "fast-deep-equal-2.0.1" = {
+      name = "fast-deep-equal";
+      packageName = "fast-deep-equal";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz";
+        sha512 = "bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==";
+      };
+    };
     "fast-deep-equal-3.1.3" = {
       name = "fast-deep-equal";
       packageName = "fast-deep-equal";
@@ -26673,15 +27330,6 @@ let
         sha512 = "DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==";
       };
     };
-    "fast-glob-3.3.0" = {
-      name = "fast-glob";
-      packageName = "fast-glob";
-      version = "3.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz";
-        sha512 = "ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==";
-      };
-    };
     "fast-glob-3.3.1" = {
       name = "fast-glob";
       packageName = "fast-glob";
@@ -26763,13 +27411,13 @@ let
         sha512 = "g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==";
       };
     };
-    "fast-readable-async-iterator-1.1.1" = {
+    "fast-readable-async-iterator-1.1.2" = {
       name = "fast-readable-async-iterator";
       packageName = "fast-readable-async-iterator";
-      version = "1.1.1";
+      version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fast-readable-async-iterator/-/fast-readable-async-iterator-1.1.1.tgz";
-        sha512 = "xEHkLUEmStETI+15zhglJLO9TjXxNkkp2ldEfYVZdcqxFhM172EfGl1irI6mVlTxXspYKH1/kjevnt/XSsPeFA==";
+        url = "https://registry.npmjs.org/fast-readable-async-iterator/-/fast-readable-async-iterator-1.1.2.tgz";
+        sha512 = "RvoeUNYOmXLr3j6ZcThapEWw8xoXZe0DHHIOvqJH2VOzbJ9lYLDSIpJg0hqoSkh9yzFPvR1aocuWl67ECPZrdQ==";
       };
     };
     "fast-safe-stringify-2.1.1" = {
@@ -26835,13 +27483,13 @@ let
         sha512 = "eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==";
       };
     };
-    "fastq-1.15.0" = {
+    "fastq-1.16.0" = {
       name = "fastq";
       packageName = "fastq";
-      version = "1.15.0";
+      version = "1.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz";
-        sha512 = "wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==";
+        url = "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz";
+        sha512 = "ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==";
       };
     };
     "fault-1.0.4" = {
@@ -26961,6 +27609,15 @@ let
         sha512 = "e6eB7zN6UBSwGVwrbWVH+gdLnkW9WwHhmq2YDK1Sh30pzx1onRVGBvogTlUeWxwTa+L86NYdo4hFkh7O8ZjSnA==";
       };
     };
+    "fflate-0.8.1" = {
+      name = "fflate";
+      packageName = "fflate";
+      version = "0.8.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fflate/-/fflate-0.8.1.tgz";
+        sha512 = "/exOvEuc+/iaUm105QIiOt4LpBdMTWsXxqR0HDF35vx3fmaKzw7354gTilCh5rkzEt8WYyG//ku3h3nRmd7CHQ==";
+      };
+    };
     "fifo-0.1.4" = {
       name = "fifo";
       packageName = "fifo";
@@ -27051,13 +27708,13 @@ let
         sha512 = "7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==";
       };
     };
-    "file-entry-cache-7.0.2" = {
+    "file-entry-cache-8.0.0" = {
       name = "file-entry-cache";
       packageName = "file-entry-cache";
-      version = "7.0.2";
+      version = "8.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.2.tgz";
-        sha512 = "TfW7/1iI4Cy7Y8L6iqNdZQVvdXn0f8B4QcIXmkIbtTIe/Okm/nSlHb4IwGzRVOd3WfSieCgvf5cMzEfySAIl0g==";
+        url = "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz";
+        sha512 = "XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==";
       };
     };
     "file-or-stdin-1.0.2" = {
@@ -27213,15 +27870,6 @@ let
         sha512 = "hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==";
       };
     };
-    "filesize-10.1.0" = {
-      name = "filesize";
-      packageName = "filesize";
-      version = "10.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/filesize/-/filesize-10.1.0.tgz";
-        sha512 = "GTLKYyBSDz3nPhlLVPjPWZCnhkd9TrrRArNcy8Z+J2cqScB7h2McAzR6NBX6nYOoWafql0roY8hrocxnZBv9CQ==";
-      };
-    };
     "filesize-6.4.0" = {
       name = "filesize";
       packageName = "filesize";
@@ -27357,15 +28005,6 @@ let
         sha512 = "/U4CYp1214Xrp3u3Fqr9yNynUrr5Le4y0SsJh2lMDDSbpwYSz3M2SMWQC+wqcx79cN8PQtHQIL8KnuY9M66fdg==";
       };
     };
-    "find-requires-1.0.0" = {
-      name = "find-requires";
-      packageName = "find-requires";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/find-requires/-/find-requires-1.0.0.tgz";
-        sha512 = "UME7hNwBfzeISSFQcBEDemEEskpOjI/shPrpJM5PI4DSdn6hX0dmz+2dL70blZER2z8tSnTRL+2rfzlYgtbBoQ==";
-      };
-    };
     "find-up-1.1.2" = {
       name = "find-up";
       packageName = "find-up";
@@ -27420,6 +28059,15 @@ let
         sha512 = "v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==";
       };
     };
+    "find-up-simple-1.0.0" = {
+      name = "find-up-simple";
+      packageName = "find-up-simple";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.0.tgz";
+        sha512 = "q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==";
+      };
+    };
     "find-versions-5.1.0" = {
       name = "find-versions";
       packageName = "find-versions";
@@ -27564,6 +28212,15 @@ let
         sha512 = "CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==";
       };
     };
+    "flat-cache-4.0.0" = {
+      name = "flat-cache";
+      packageName = "flat-cache";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.0.tgz";
+        sha512 = "EryKbCE/wxpxKniQlyas6PY1I9vwtF3uCBweX+N8KYTCn3Y12RTGtQAJ/bd5pl7kxUAc8v/R3Ake/N17OZiFqA==";
+      };
+    };
     "flatiron-0.4.3" = {
       name = "flatiron";
       packageName = "flatiron";
@@ -27609,13 +28266,13 @@ let
         sha512 = "dz4HxH6pOvbUzZpZ/yXhafjbR2I8cenK5xL0KtBFb7U2ADsR+OwXifnxZjij/pZWF775uSCMzWVd+jDik2H2IA==";
       };
     };
-    "flow-parser-0.222.0" = {
+    "flow-parser-0.225.1" = {
       name = "flow-parser";
       packageName = "flow-parser";
-      version = "0.222.0";
+      version = "0.225.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.222.0.tgz";
-        sha512 = "Fq5OkFlFRSMV2EOZW+4qUYMTE0uj8pcLsYJMxXYriSBDpHAF7Ofx3PibCTy3cs5P6vbsry7eYj7Z7xFD49GIOQ==";
+        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.225.1.tgz";
+        sha512 = "50fjR6zbLQcpq5IFNkheUSY/AFPxVeeLiBM5B3NQBSKId2G0cUuExOlDDOguxc49dl9lnh8hI1xcYlPJWNp4KQ==";
       };
     };
     "fluent-ffmpeg-2.1.2" = {
@@ -27663,6 +28320,15 @@ let
         sha512 = "1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==";
       };
     };
+    "follow-redirects-1.15.4" = {
+      name = "follow-redirects";
+      packageName = "follow-redirects";
+      version = "1.15.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz";
+        sha512 = "Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==";
+      };
+    };
     "follow-redirects-1.5.10" = {
       name = "follow-redirects";
       packageName = "follow-redirects";
@@ -27897,13 +28563,13 @@ let
         sha512 = "buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==";
       };
     };
-    "fp-ts-2.16.1" = {
+    "fp-ts-2.16.2" = {
       name = "fp-ts";
       packageName = "fp-ts";
-      version = "2.16.1";
+      version = "2.16.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fp-ts/-/fp-ts-2.16.1.tgz";
-        sha512 = "by7U5W8dkIzcvDofUcO42yl9JbnHTEDBrzu3pt5fKT+Z4Oy85I21K80EYJYdjQGC2qum4Vo55Ag57iiIK4FYuA==";
+        url = "https://registry.npmjs.org/fp-ts/-/fp-ts-2.16.2.tgz";
+        sha512 = "CkqAjnIKFqvo3sCyoBTqgJvF+bHrSik584S9nhTjtBESLx26cbtVMR/T9a6ApChOcSDAaM3JydDmWDUn4EEXng==";
       };
     };
     "fraction.js-4.3.7" = {
@@ -28059,6 +28725,15 @@ let
         sha512 = "MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==";
       };
     };
+    "fs-extra-11.2.0" = {
+      name = "fs-extra";
+      packageName = "fs-extra";
+      version = "11.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz";
+        sha512 = "PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==";
+      };
+    };
     "fs-extra-3.0.1" = {
       name = "fs-extra";
       packageName = "fs-extra";
@@ -28185,15 +28860,6 @@ let
         sha512 = "OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==";
       };
     };
-    "fs2-0.3.9" = {
-      name = "fs2";
-      packageName = "fs2";
-      version = "0.3.9";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fs2/-/fs2-0.3.9.tgz";
-        sha512 = "WsOqncODWRlkjwll+73bAxVW3JPChDgaPX3DT4iTTm73UmG4VgALa7LaFblP232/DN60itkOrPZ8kaP1feksGQ==";
-      };
-    };
     "fsevents-1.2.13" = {
       name = "fsevents";
       packageName = "fsevents";
@@ -28320,22 +28986,22 @@ let
         sha512 = "R1fam6D4CyKQGNlvJne4dkNF+PvUUl7TAJInvTGa9fti9qAv95quQz29GXapA4d8Ec266mJJxFVh82M4GIIGDQ==";
       };
     };
-    "gatsby-core-utils-4.12.1" = {
+    "gatsby-core-utils-4.13.0" = {
       name = "gatsby-core-utils";
       packageName = "gatsby-core-utils";
-      version = "4.12.1";
+      version = "4.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.12.1.tgz";
-        sha512 = "YW7eCK2M6yGQerT5LkdOHLZTNYMsDvcgeDMRy0q66FWKj7twPZX428I6NaLCMeF5dYoj1HOOO0u96iNlW5jcKQ==";
+        url = "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.13.0.tgz";
+        sha512 = "+oJJsADfcEnzpQpof+L5qtP4iSeMaEPn1QSjXENlg/go9Pi/4eqb+Nn3y3q8bC/zy4hMWFWrPdMJmdW581uNvA==";
       };
     };
-    "gatsby-telemetry-4.12.1" = {
+    "gatsby-telemetry-4.13.0" = {
       name = "gatsby-telemetry";
       packageName = "gatsby-telemetry";
-      version = "4.12.1";
+      version = "4.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-4.12.1.tgz";
-        sha512 = "MTHcKt5Cl68DveBpsduwfJdRjoXg48fcjITo1TspbxS2R0WnTZPRohGbA+JmQdY+O1eUSysdrONIjf6r86nhiA==";
+        url = "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-4.13.0.tgz";
+        sha512 = "tUtXF782y4AlQd8hMMOcwoqB4vT+umjApXi4RefWy6vc45Zi/oB3x6IYYgoTuTeZigL0OZWbXyiNLur9vFebVw==";
       };
     };
     "gauge-2.7.4" = {
@@ -28383,6 +29049,15 @@ let
         sha512 = "4FcCj9e8j8rCjvLkqRpGZBLgTC/xr9XEf5By3x77cDucWWB3pJK6FEwXZCTCbb4z8xdaOoi4owBNrvn3ciDdxA==";
       };
     };
+    "geckodriver-4.3.0" = {
+      name = "geckodriver";
+      packageName = "geckodriver";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/geckodriver/-/geckodriver-4.3.0.tgz";
+        sha512 = "QfpvxFsMORwKpvnLslkHCr3NTCczHAvkte6+pQGsiUZXKBe6mO4TTb727b+9KMVSK6XZqhR6ZwImKdP+F5vS6A==";
+      };
+    };
     "gelf-stream-1.1.1" = {
       name = "gelf-stream";
       packageName = "gelf-stream";
@@ -28518,6 +29193,15 @@ let
         sha512 = "2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==";
       };
     };
+    "get-func-name-2.0.2" = {
+      name = "get-func-name";
+      packageName = "get-func-name";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz";
+        sha512 = "8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==";
+      };
+    };
     "get-installed-path-2.1.1" = {
       name = "get-installed-path";
       packageName = "get-installed-path";
@@ -28590,6 +29274,15 @@ let
         sha512 = "g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==";
       };
     };
+    "get-port-7.0.0" = {
+      name = "get-port";
+      packageName = "get-port";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-port/-/get-port-7.0.0.tgz";
+        sha512 = "mDHFgApoQd+azgMdwylJrv2DX47ywGq1i5VFJE7fZ0dttNq3iQMfsU4IvEgBHojA3KqEudyu7Vq+oN8kNaNkWw==";
+      };
+    };
     "get-port-please-3.0.1" = {
       name = "get-port-please";
       packageName = "get-port-please";
@@ -28806,15 +29499,6 @@ let
         sha512 = "zs9rlfa7HyaJAKG9o+V7C6qfMzyc+tb1IIXdUFcOBcR1U7siKy/uPdauLlrH1mc0vOgUwIv4BF+QxPiiTYz3Rw==";
       };
     };
-    "git-clone-0.2.0" = {
-      name = "git-clone";
-      packageName = "git-clone";
-      version = "0.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/git-clone/-/git-clone-0.2.0.tgz";
-        sha512 = "1UAkEPIFbyjHaddljUKvPhhLRnrKaImT71T7rdvSvWLXw95nLdhdi6Qmlx0KOWoV1qqvHGLq5lMLJEZM0JXk8A==";
-      };
-    };
     "git-config-path-2.0.0" = {
       name = "git-config-path";
       packageName = "git-config-path";
@@ -29202,6 +29886,15 @@ let
         sha512 = "PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==";
       };
     };
+    "global-directory-4.0.1" = {
+      name = "global-directory";
+      packageName = "global-directory";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz";
+        sha512 = "wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==";
+      };
+    };
     "global-dirs-0.1.1" = {
       name = "global-dirs";
       packageName = "global-dirs";
@@ -29275,13 +29968,13 @@ let
         sha512 = "WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==";
       };
     };
-    "globals-13.23.0" = {
+    "globals-13.24.0" = {
       name = "globals";
       packageName = "globals";
-      version = "13.23.0";
+      version = "13.24.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz";
-        sha512 = "XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==";
+        url = "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz";
+        sha512 = "AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==";
       };
     };
     "globals-9.18.0" = {
@@ -29338,6 +30031,15 @@ let
         sha512 = "Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==";
       };
     };
+    "globby-14.0.0" = {
+      name = "globby";
+      packageName = "globby";
+      version = "14.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globby/-/globby-14.0.0.tgz";
+        sha512 = "/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ==";
+      };
+    };
     "globby-6.1.0" = {
       name = "globby";
       packageName = "globby";
@@ -29761,13 +30463,13 @@ let
         sha512 = "sHkK9+lUm20/BGawNEWNtVAeJzhZeBg21VmvmLoT5NdGVeZWv5PdIhkcayQIAgjSyyQ17WMKmbDijIPG2On+Ag==";
       };
     };
-    "graphql-ws-5.14.2" = {
+    "graphql-ws-5.14.3" = {
       name = "graphql-ws";
       packageName = "graphql-ws";
-      version = "5.14.2";
+      version = "5.14.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.14.2.tgz";
-        sha512 = "LycmCwhZ+Op2GlHz4BZDsUYHKRiiUz+3r9wbhBATMETNlORQJAaFlAgTFoeRh6xQoQegwYwIylVD1Qns9/DA3w==";
+        url = "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.14.3.tgz";
+        sha512 = "F/i2xNIVbaEF2xWggID0X/UZQa2V8kqKDPO8hwmu53bVOcTL7uNkxnexeEgSCVxYBQUTUNEI8+e4LO1FOhKPKQ==";
       };
     };
     "growly-1.3.0" = {
@@ -29842,6 +30544,15 @@ let
         sha512 = "vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==";
       };
     };
+    "happy-dom-12.10.3" = {
+      name = "happy-dom";
+      packageName = "happy-dom";
+      version = "12.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/happy-dom/-/happy-dom-12.10.3.tgz";
+        sha512 = "JzUXOh0wdNGY54oKng5hliuBkq/+aT1V3YpTM+lrN/GoLQTANZsMaIvmHiHe612rauHvPJnDZkZ+5GZR++1Abg==";
+      };
+    };
     "har-schema-2.0.0" = {
       name = "har-schema";
       packageName = "har-schema";
@@ -30328,6 +31039,15 @@ let
         sha512 = "H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==";
       };
     };
+    "header-range-parser-1.1.3" = {
+      name = "header-range-parser";
+      packageName = "header-range-parser";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/header-range-parser/-/header-range-parser-1.1.3.tgz";
+        sha512 = "B9zCFt3jH8g09LR1vHL4pcAn8yMEtlSlOUdQemzHMRKMImNIhhszdeosYFfNW0WXKQtXIlWB+O4owHJKvEJYaA==";
+      };
+    };
     "heap-0.2.7" = {
       name = "heap";
       packageName = "heap";
@@ -30535,6 +31255,15 @@ let
         sha512 = "oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==";
       };
     };
+    "html-encoding-sniffer-4.0.0" = {
+      name = "html-encoding-sniffer";
+      packageName = "html-encoding-sniffer";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz";
+        sha512 = "Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==";
+      };
+    };
     "html-entities-1.4.0" = {
       name = "html-entities";
       packageName = "html-entities";
@@ -30616,13 +31345,13 @@ let
         sha512 = "qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==";
       };
     };
-    "html-webpack-plugin-5.5.3" = {
+    "html-webpack-plugin-5.6.0" = {
       name = "html-webpack-plugin";
       packageName = "html-webpack-plugin";
-      version = "5.5.3";
+      version = "5.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz";
-        sha512 = "6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg==";
+        url = "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz";
+        sha512 = "iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==";
       };
     };
     "htmlescape-1.1.1" = {
@@ -31219,13 +31948,13 @@ let
         sha512 = "yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==";
       };
     };
-    "ignore-walk-6.0.3" = {
+    "ignore-walk-6.0.4" = {
       name = "ignore-walk";
       packageName = "ignore-walk";
-      version = "6.0.3";
+      version = "6.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.3.tgz";
-        sha512 = "C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA==";
+        url = "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.4.tgz";
+        sha512 = "t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==";
       };
     };
     "image-data-uri-2.0.1" = {
@@ -31435,15 +32164,6 @@ let
         sha512 = "f8KcQ1D80V7RnqVm+/lirO9zkOxjGxhaTC1IPrBGd3MEfNgmNG67tSUO9gTi2F3Blr2Az6g1vocaxzkVnWl9MA==";
       };
     };
-    "import-meta-resolve-3.1.1" = {
-      name = "import-meta-resolve";
-      packageName = "import-meta-resolve";
-      version = "3.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-3.1.1.tgz";
-        sha512 = "qeywsE/KC3w9Fd2ORrRDUw6nS/nLwZpXgfrOc2IILvZYnCaEMd+D56Vfg9k4G29gIeVi3XKql1RQatME8iYsiw==";
-      };
-    };
     "import-meta-resolve-4.0.0" = {
       name = "import-meta-resolve";
       packageName = "import-meta-resolve";
@@ -31498,6 +32218,15 @@ let
         sha512 = "m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==";
       };
     };
+    "index-to-position-0.1.2" = {
+      name = "index-to-position";
+      packageName = "index-to-position";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/index-to-position/-/index-to-position-0.1.2.tgz";
+        sha512 = "MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==";
+      };
+    };
     "indexed-filter-1.0.3" = {
       name = "indexed-filter";
       packageName = "indexed-filter";
@@ -31543,6 +32272,15 @@ let
         sha512 = "CnfUJe5o2S9aAQWXGMhDZI4UL39MAJV3guOTfHHIdos4tuVHkl1j/J+1XLQn+CLIvqcpgQR/p+xXYXzcrhCe5w==";
       };
     };
+    "inflection-3.0.0" = {
+      name = "inflection";
+      packageName = "inflection";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inflection/-/inflection-3.0.0.tgz";
+        sha512 = "1zEJU1l19SgJlmwqsEyFTbScw/tkMHFenUo//Y0i+XEP83gDFdMvPizAD/WGcE+l1ku12PcTVHQhO6g5E0UCMw==";
+      };
+    };
     "inflight-1.0.6" = {
       name = "inflight";
       packageName = "inflight";
@@ -31660,13 +32398,13 @@ let
         sha512 = "uJ4nbH00MM9fjTJ5xdw0zzvtXMkeGb0WV6dzSWvFv2/+ks6FIhpkt+Ge/eLdh0Ah6Vjw5pLMyNfoHQpRDRVFbQ==";
       };
     };
-    "ink-table-3.0.0" = {
+    "ink-table-3.1.0" = {
       name = "ink-table";
       packageName = "ink-table";
-      version = "3.0.0";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ink-table/-/ink-table-3.0.0.tgz";
-        sha512 = "RtcYjenHKZWjnwVNQ6zSYWMOLKwkWscDAJsqUQXftyjkYho1gGrluGss87NOoIzss0IKr74lKasd6MtlQYALiA==";
+        url = "https://registry.npmjs.org/ink-table/-/ink-table-3.1.0.tgz";
+        sha512 = "qxVb4DIaEaJryvF9uZGydnmP9Hkmas3DCKVpEcBYC0E4eJd3qNgNe+PZKuzgCERFe9LfAS1TNWxCr9+AU4v3YA==";
       };
     };
     "ink-testing-library-2.1.0" = {
@@ -32749,6 +33487,15 @@ let
         sha512 = "eoGsQVAAyvLFRKnbt4jo7Il56agsH5I04pDymPoxRp/tnna5yiIpdNzvKPOy5G1Ff0zY/jfN2hClb7ju+sOrdA==";
       };
     };
+    "is-in-ci-0.1.0" = {
+      name = "is-in-ci";
+      packageName = "is-in-ci";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-in-ci/-/is-in-ci-0.1.0.tgz";
+        sha512 = "d9PXLEY0v1iJ64xLiQMJ51J128EYHAaOR4yZqQi8aHGfw6KgifM3/Viw1oZZ1GCVmb3gBuyhLyHj0HgR2DhSXQ==";
+      };
+    };
     "is-inside-container-1.0.0" = {
       name = "is-inside-container";
       packageName = "is-inside-container";
@@ -32767,6 +33514,15 @@ let
         sha512 = "iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==";
       };
     };
+    "is-installed-globally-1.0.0" = {
+      name = "is-installed-globally";
+      packageName = "is-installed-globally";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-1.0.0.tgz";
+        sha512 = "K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ==";
+      };
+    };
     "is-interactive-1.0.0" = {
       name = "is-interactive";
       packageName = "is-interactive";
@@ -34297,6 +35053,15 @@ let
         sha512 = "/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==";
       };
     };
+    "jsdom-23.2.0" = {
+      name = "jsdom";
+      packageName = "jsdom";
+      version = "23.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsdom/-/jsdom-23.2.0.tgz";
+        sha512 = "L88oL7D/8ufIES+Zjz7v0aes+oBMh2Xnh3ygWvL0OaICOomKEPKuPnIfBJekiXr+BHbbMjrWn/xqrDQuxFTeyA==";
+      };
+    };
     "jsep-1.3.8" = {
       name = "jsep";
       packageName = "jsep";
@@ -34333,67 +35098,76 @@ let
         sha512 = "xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==";
       };
     };
-    "jsii-1.92.0" = {
+    "jsii-1.93.0" = {
+      name = "jsii";
+      packageName = "jsii";
+      version = "1.93.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsii/-/jsii-1.93.0.tgz";
+        sha512 = "J6In5MDWcmVosOwZxdwcW+NisQZ2p9g2zWFwCO3RpMoHmpzYasChZSvRvpgR5iFB7m10QRebU+45R2WCGsadfg==";
+      };
+    };
+    "jsii-5.2.44" = {
       name = "jsii";
       packageName = "jsii";
-      version = "1.92.0";
+      version = "5.2.44";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii/-/jsii-1.92.0.tgz";
-        sha512 = "UHuPVMkUXBcbnSAsylQSea7BFNkr6hkx6NhGGoZ5Xnb3fZV7wwr9DHnE14yQJUIsrCL8WcqhCU79QTbWmnKpag==";
+        url = "https://registry.npmjs.org/jsii/-/jsii-5.2.44.tgz";
+        sha512 = "Z7sTqYzQ5yoJU/ie+svjqSzrOF5rl4pW/bojvCb/7MfJ+SaGqhMUQMxQGTfqmSvauME8JoVYqwMH89x6qreJ8A==";
       };
     };
-    "jsii-5.2.32" = {
+    "jsii-5.3.2" = {
       name = "jsii";
       packageName = "jsii";
-      version = "5.2.32";
+      version = "5.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii/-/jsii-5.2.32.tgz";
-        sha512 = "91g2+havdNomPRVmkkhv7SDxb66t8UybdkWkDH7ESK1SenZZ5VrAievYDSNQG16tBO0YBn1mTCy4G1pbFhPvfQ==";
+        url = "https://registry.npmjs.org/jsii/-/jsii-5.3.2.tgz";
+        sha512 = "wwwp47+6orlMXpny4dlTOP6776cBo2WFDgxZyGjQaV4VWNydsJiTcinuJzCj1XVZicBhpAnkuBMr89+2aT8Dcg==";
       };
     };
-    "jsii-pacmak-1.92.0" = {
+    "jsii-pacmak-1.93.0" = {
       name = "jsii-pacmak";
       packageName = "jsii-pacmak";
-      version = "1.92.0";
+      version = "1.93.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.92.0.tgz";
-        sha512 = "LIwXYTYjX5APnb6qzu5TDMEkSJXq5ntE71fT5Lpj3KMpOGGOrYlCAuP1lxpf1oWfIZeuyC4orRafuE7AECEa/A==";
+        url = "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.93.0.tgz";
+        sha512 = "A2rn4seHN+1/VzwQ0H8t6zxAz9HpZWbF+kVi9MpNgqd2iiNYxS1XNyirzyQ8D3e5ZNWoPAyFVuGqkXrtdo4etg==";
       };
     };
-    "jsii-reflect-1.92.0" = {
+    "jsii-reflect-1.93.0" = {
       name = "jsii-reflect";
       packageName = "jsii-reflect";
-      version = "1.92.0";
+      version = "1.93.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.92.0.tgz";
-        sha512 = "9ZLaygpYXG7UBqcUtgINd4pDL43l2gdUwOqWUrMz5beVOgp1ccvbihVPW6LtWGcTDfC+A2oNzjEP6roUvWvDDw==";
+        url = "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.93.0.tgz";
+        sha512 = "obf74y7RFXFNfPmgJYMQoRVPeR40czub0MM+rKfyEape5+qqvTU1pyUN384kVzpEzUfFIRsFMWqfxrW4zqwuPQ==";
       };
     };
-    "jsii-rosetta-1.92.0" = {
+    "jsii-rosetta-1.93.0" = {
       name = "jsii-rosetta";
       packageName = "jsii-rosetta";
-      version = "1.92.0";
+      version = "1.93.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-1.92.0.tgz";
-        sha512 = "TKrCq3FToJ3rgCUzDEOWHIoYEs4CvtyXNNE2dPkX5YYv3+18vP8qiftGpyHGcgyslx2E7gm1g/8uPkAxeAEP+A==";
+        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-1.93.0.tgz";
+        sha512 = "5HFoC6Cp3Y3usCGuTRDTL/ovgz9MxI6/kY4Re8agVShXR6MPSX6F6Sc1qGMUjf3ynFfPz+DMsBY0Z164cxVKBA==";
       };
     };
-    "jsii-rosetta-5.2.3" = {
+    "jsii-rosetta-5.3.2" = {
       name = "jsii-rosetta";
       packageName = "jsii-rosetta";
-      version = "5.2.3";
+      version = "5.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-5.2.3.tgz";
-        sha512 = "W4uUf1IMW9ZVDXWc/DsfJqn07SuhC19+g7IvmPd7W/Qs1kIRu7nvqGS8DrHO0SVa4A5uCb3w+fSGUGb/7KjcfQ==";
+        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-5.3.2.tgz";
+        sha512 = "pY5wm72XcT9RdTWh/UpIVnyLScz381GtmlW4ey9ojJdHUoxvtni0vdGdSl+ZaojqEQR7TLdUM+ocLgB8Xnujxw==";
       };
     };
-    "jsii-srcmak-0.1.972" = {
+    "jsii-srcmak-0.1.999" = {
       name = "jsii-srcmak";
       packageName = "jsii-srcmak";
-      version = "0.1.972";
+      version = "0.1.999";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-srcmak/-/jsii-srcmak-0.1.972.tgz";
-        sha512 = "4rdxujs2DUXZbJ6cr7L7yW1rD4jn8228qmq+GRzOkI8P/DzkeMeyO89Vk7MB8JTjUtbYAU50fIEZyFElPzwdxA==";
+        url = "https://registry.npmjs.org/jsii-srcmak/-/jsii-srcmak-0.1.999.tgz";
+        sha512 = "8jhGRjceKdvYlW3rujnrZWTa1bss7TUhcsVrRsT7Q+MDYxRZan0FsqyHKrjfb8GYpgSh5DVpc9iYCwmn6VgXsw==";
       };
     };
     "json-buffer-3.0.0" = {
@@ -34414,24 +35188,6 @@ let
         sha512 = "4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==";
       };
     };
-    "json-colorizer-2.2.2" = {
-      name = "json-colorizer";
-      packageName = "json-colorizer";
-      version = "2.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/json-colorizer/-/json-colorizer-2.2.2.tgz";
-        sha512 = "56oZtwV1piXrQnRNTtJeqRv+B9Y/dXAYLqBBaYl/COcUdoZxgLBLAO88+CnkbT6MxNs0c5E9mPBIb2sFcNz3vw==";
-      };
-    };
-    "json-cycle-1.5.0" = {
-      name = "json-cycle";
-      packageName = "json-cycle";
-      version = "1.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/json-cycle/-/json-cycle-1.5.0.tgz";
-        sha512 = "GOehvd5PO2FeZ5T4c+RxobeT5a1PiGpF4u9/3+UvrMU4bhnVqzJY7hm39wg8PDCqkU91fWGH8qjWR4bn+wgq9w==";
-      };
-    };
     "json-parse-better-errors-1.0.2" = {
       name = "json-parse-better-errors";
       packageName = "json-parse-better-errors";
@@ -34450,13 +35206,13 @@ let
         sha512 = "xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==";
       };
     };
-    "json-parse-even-better-errors-3.0.0" = {
+    "json-parse-even-better-errors-3.0.1" = {
       name = "json-parse-even-better-errors";
       packageName = "json-parse-even-better-errors";
-      version = "3.0.0";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz";
-        sha512 = "iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==";
+        url = "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz";
+        sha512 = "aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==";
       };
     };
     "json-parse-helpfulerror-1.0.3" = {
@@ -34621,13 +35377,13 @@ let
         sha512 = "ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==";
       };
     };
-    "json2jsii-0.4.0" = {
+    "json2jsii-0.4.3" = {
       name = "json2jsii";
       packageName = "json2jsii";
-      version = "0.4.0";
+      version = "0.4.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/json2jsii/-/json2jsii-0.4.0.tgz";
-        sha512 = "4I5ip2aG7e7LN1pa1aiFgUYAGXmhq4Ggbk6KJRXlaAdewGfYyOK2YlpUI0Dqpfs84kuEsbSTwDO4P6oEs2YEdQ==";
+        url = "https://registry.npmjs.org/json2jsii/-/json2jsii-0.4.3.tgz";
+        sha512 = "9PNmX7v94XVR5RiblCvtoCbFy3HALnRqZWLT8LSXEE7wujudmMXzdSFyyK0YwYd7dxpzNXirPf6eoQG5xL9N5A==";
       };
     };
     "json3-3.2.6" = {
@@ -34990,15 +35746,6 @@ let
         sha512 = "86GgN2vzfUu7m9Wcj63iUkuDzFNYFVmjeDm2GzWpUk+opB0pEpMsw6ePCMrhYkumz2C1ihqtZzOMAg7FiXcNoQ==";
       };
     };
-    "jwt-decode-3.1.2" = {
-      name = "jwt-decode";
-      packageName = "jwt-decode";
-      version = "3.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz";
-        sha512 = "UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==";
-      };
-    };
     "k-bucket-0.6.0" = {
       name = "k-bucket";
       packageName = "k-bucket";
@@ -35296,6 +36043,15 @@ let
         sha512 = "Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==";
       };
     };
+    "ky-0.33.3" = {
+      name = "ky";
+      packageName = "ky";
+      version = "0.33.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ky/-/ky-0.33.3.tgz";
+        sha512 = "CasD9OCEQSFIam2U8efFK81Yeg8vNMTBUqtMOHlrcWQHqUX3HeCl9Dr31u4toV7emlH8Mymk5+9p0lL6mKb/Xw==";
+      };
+    };
     "labeled-stream-splicer-2.0.2" = {
       name = "labeled-stream-splicer";
       packageName = "labeled-stream-splicer";
@@ -35638,6 +36394,15 @@ let
         sha512 = "yRHaiQDizWSzoXk3APcA71eOI/UuhEkNN9DiW2Tt44mhYzX4joFoCZlxsSOF7RyeLlfqzFLQI1ngFq3ggMPhOw==";
       };
     };
+    "lighthouse-logger-2.0.1" = {
+      name = "lighthouse-logger";
+      packageName = "lighthouse-logger";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-2.0.1.tgz";
+        sha512 = "ioBrW3s2i97noEmnXxmUq7cjIcVRjT5HBpAYy8zE11CxU9HqlWHHeRxfeN1tn8F7OEMVPIC9x1f8t3Z7US9ehQ==";
+      };
+    };
     "lightningcss-1.22.1" = {
       name = "lightningcss";
       packageName = "lightningcss";
@@ -35980,6 +36745,24 @@ let
         sha512 = "uxKD2HIj042/HBx77NBcmEPsD+hxCgAtjEWlYNScuUjIsh/62Uyu39GOR68TBR68v+jqDL9zfftCWoUo4y03sQ==";
       };
     };
+    "local-pkg-0.4.3" = {
+      name = "local-pkg";
+      packageName = "local-pkg";
+      version = "0.4.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz";
+        sha512 = "SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==";
+      };
+    };
+    "local-pkg-0.5.0" = {
+      name = "local-pkg";
+      packageName = "local-pkg";
+      version = "0.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz";
+        sha512 = "ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==";
+      };
+    };
     "localforage-1.10.0" = {
       name = "localforage";
       packageName = "localforage";
@@ -35989,13 +36772,13 @@ let
         sha512 = "14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==";
       };
     };
-    "localtunnel-2.0.2" = {
-      name = "localtunnel";
-      packageName = "localtunnel";
-      version = "2.0.2";
+    "locate-app-2.2.5" = {
+      name = "locate-app";
+      packageName = "locate-app";
+      version = "2.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.2.tgz";
-        sha512 = "n418Cn5ynvJd7m/N1d9WVJISLJF/ellZnfsLnx8WBWGzxv/ntNcFkJ1o6se5quUhCplfLGBNL5tYHiq5WF3Nug==";
+        url = "https://registry.npmjs.org/locate-app/-/locate-app-2.2.5.tgz";
+        sha512 = "3/Gyrt5xmwUT/Pz1A951XI0a03yEs7Wph3nuxrl00BTdFWogFONK/YTR+SM9Hc7/lpvuYvk2J6GTaSje4COR+A==";
       };
     };
     "locate-character-3.0.0" = {
@@ -36133,15 +36916,6 @@ let
         sha512 = "mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==";
       };
     };
-    "lodash-id-0.14.1" = {
-      name = "lodash-id";
-      packageName = "lodash-id";
-      version = "0.14.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lodash-id/-/lodash-id-0.14.1.tgz";
-        sha512 = "ikQPBTiq/d5m6dfKQlFdIXFzvThPi2Be9/AHxktOnDSfSxE1j9ICbBT5Elk1ke7HSTgM38LHTpmJovo9/klnLg==";
-      };
-    };
     "lodash._arraycopy-3.0.0" = {
       name = "lodash._arraycopy";
       packageName = "lodash._arraycopy";
@@ -36979,15 +37753,6 @@ let
         sha512 = "C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg==";
       };
     };
-    "log-6.3.1" = {
-      name = "log";
-      packageName = "log";
-      version = "6.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/log/-/log-6.3.1.tgz";
-        sha512 = "McG47rJEWOkXTDioZzQNydAVvZNeEkSyLJ1VWkFwfW+o1knW+QSi8D1KjPn/TnctV+q99lkvJNe1f0E1IjfY2A==";
-      };
-    };
     "log-chopper-1.0.2" = {
       name = "log-chopper";
       packageName = "log-chopper";
@@ -37006,15 +37771,6 @@ let
         sha512 = "U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==";
       };
     };
-    "log-node-8.0.3" = {
-      name = "log-node";
-      packageName = "log-node";
-      version = "8.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/log-node/-/log-node-8.0.3.tgz";
-        sha512 = "1UBwzgYiCIDFs8A0rM2QdBFo8Wd8UQ0HrSTu/MNI+/2zN3NoHRj2fhplurAyuxTYUXu3Oohugq1jAn5s05u1MQ==";
-      };
-    };
     "log-symbols-1.0.2" = {
       name = "log-symbols";
       packageName = "log-symbols";
@@ -37051,6 +37807,15 @@ let
         sha512 = "l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==";
       };
     };
+    "log-symbols-6.0.0" = {
+      name = "log-symbols";
+      packageName = "log-symbols";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz";
+        sha512 = "i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==";
+      };
+    };
     "log-update-2.3.0" = {
       name = "log-update";
       packageName = "log-update";
@@ -37213,6 +37978,15 @@ let
         sha512 = "RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==";
       };
     };
+    "loupe-2.3.7" = {
+      name = "loupe";
+      packageName = "loupe";
+      version = "2.3.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz";
+        sha512 = "zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==";
+      };
+    };
     "lowdb-0.13.1" = {
       name = "lowdb";
       packageName = "lowdb";
@@ -37231,6 +38005,15 @@ let
         sha512 = "2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ==";
       };
     };
+    "lowdb-7.0.1" = {
+      name = "lowdb";
+      packageName = "lowdb";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lowdb/-/lowdb-7.0.1.tgz";
+        sha512 = "neJAj8GwF0e8EpycYIDFqEPcx9Qz4GUho20jWFR7YiFeXzF1YMLdxB36PypcTSPMA+4+LvgyMacYhlr18Zlymw==";
+      };
+    };
     "lower-case-1.1.4" = {
       name = "lower-case";
       packageName = "lower-case";
@@ -37321,6 +38104,15 @@ let
         sha512 = "B7gr+F6MkqB3uzINHXNctGieGsRTMwIBgxkp0yq/5BwcuDzD4A8wQpHQW6vDAm1uKSLQghmRdD9sKqf2vJ1cEg==";
       };
     };
+    "lru-cache-10.1.0" = {
+      name = "lru-cache";
+      packageName = "lru-cache";
+      version = "10.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz";
+        sha512 = "/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==";
+      };
+    };
     "lru-cache-2.2.0" = {
       name = "lru-cache";
       packageName = "lru-cache";
@@ -37384,15 +38176,6 @@ let
         sha512 = "jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==";
       };
     };
-    "lru-queue-0.1.0" = {
-      name = "lru-queue";
-      packageName = "lru-queue";
-      version = "0.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz";
-        sha512 = "BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==";
-      };
-    };
     "lt_donthave-1.0.1" = {
       name = "lt_donthave";
       packageName = "lt_donthave";
@@ -37448,15 +38231,6 @@ let
         sha512 = "RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==";
       };
     };
-    "magic-string-0.27.0" = {
-      name = "magic-string";
-      packageName = "magic-string";
-      version = "0.27.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz";
-        sha512 = "8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==";
-      };
-    };
     "magic-string-0.30.5" = {
       name = "magic-string";
       packageName = "magic-string";
@@ -37889,6 +38663,15 @@ let
         sha512 = "PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==";
       };
     };
+    "marky-1.2.5" = {
+      name = "marky";
+      packageName = "marky";
+      version = "1.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz";
+        sha512 = "q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==";
+      };
+    };
     "mastodon-api-1.3.0" = {
       name = "mastodon-api";
       packageName = "mastodon-api";
@@ -38456,15 +39239,6 @@ let
         sha512 = "EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ==";
       };
     };
-    "memoizee-0.4.15" = {
-      name = "memoizee";
-      packageName = "memoizee";
-      version = "0.4.15";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz";
-        sha512 = "UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==";
-      };
-    };
     "memory-cache-0.2.0" = {
       name = "memory-cache";
       packageName = "memory-cache";
@@ -38654,15 +39428,6 @@ let
         sha512 = "Ks2/7e+3JuwQcpLybc6wTHyqg13HDjOhLcE+YaAEub9DbSxF+ieMvxUlybmWW9luRMh9Cd0rO9aNtzUT51xfNQ==";
       };
     };
-    "method-override-3.0.0" = {
-      name = "method-override";
-      packageName = "method-override";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/method-override/-/method-override-3.0.0.tgz";
-        sha512 = "IJ2NNN/mSl9w3kzWB92rcdHpz+HjkxhDJWNDBqSlas+zQdP8wBiJzITPg08M/k2uVvMow7Sk41atndNtt/PHSA==";
-      };
-    };
     "methods-1.1.2" = {
       name = "methods";
       packageName = "methods";
@@ -39347,6 +40112,15 @@ let
         sha512 = "115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==";
       };
     };
+    "milliparsec-2.3.0" = {
+      name = "milliparsec";
+      packageName = "milliparsec";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/milliparsec/-/milliparsec-2.3.0.tgz";
+        sha512 = "b+6KYJw+DwQjk24qCUuq+lZvRXDpXJ02qsllKgKaDurHpQ0v7D5op9VAkdYM/pXRhFeh7uLYHmnwFnYvdXGa3A==";
+      };
+    };
     "mime-1.2.4" = {
       name = "mime";
       packageName = "mime";
@@ -39392,6 +40166,15 @@ let
         sha512 = "jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==";
       };
     };
+    "mime-4.0.1" = {
+      name = "mime";
+      packageName = "mime";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime/-/mime-4.0.1.tgz";
+        sha512 = "5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==";
+      };
+    };
     "mime-db-1.33.0" = {
       name = "mime-db";
       packageName = "mime-db";
@@ -39527,6 +40310,15 @@ let
         sha512 = "vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==";
       };
     };
+    "mimic-function-5.0.0" = {
+      name = "mimic-function";
+      packageName = "mimic-function";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.0.tgz";
+        sha512 = "RBfQ+9X9DpXdEoK7Bu+KeEU6vFhumEIiXKWECPzRBmDserEq4uR2b/VCm0LwpMSosoq2k+Zuxj/GzOr0Fn6h/g==";
+      };
+    };
     "mimic-response-1.0.1" = {
       name = "mimic-response";
       packageName = "mimic-response";
@@ -39599,13 +40391,13 @@ let
         sha512 = "r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==";
       };
     };
-    "miniflare-3.20231030.0" = {
+    "miniflare-3.20231218.1" = {
       name = "miniflare";
       packageName = "miniflare";
-      version = "3.20231030.0";
+      version = "3.20231218.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/miniflare/-/miniflare-3.20231030.0.tgz";
-        sha512 = "iCg1dNauUG+kNp7jizcNmV/1XFItuTDvD/6xIC34PrszgKxYCbBO2R72y5NEDJTwaqr5ohQI/320wuJ8GEe7nQ==";
+        url = "https://registry.npmjs.org/miniflare/-/miniflare-3.20231218.1.tgz";
+        sha512 = "rl/wADgaRLpbl7EMobwbAt6BgVqkOoWsVQJAliIIUCRzC0s0xg7ZVeoV+DuQD4ffN4RySXsPnP97hp7ksc7ylA==";
       };
     };
     "minilog-3.1.0" = {
@@ -39851,6 +40643,15 @@ let
         sha512 = "6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==";
       };
     };
+    "minipass-collect-2.0.1" = {
+      name = "minipass-collect";
+      packageName = "minipass-collect";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz";
+        sha512 = "D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==";
+      };
+    };
     "minipass-fetch-1.4.1" = {
       name = "minipass-fetch";
       packageName = "minipass-fetch";
@@ -39950,6 +40751,15 @@ let
         sha512 = "r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==";
       };
     };
+    "mitt-3.0.0" = {
+      name = "mitt";
+      packageName = "mitt";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz";
+        sha512 = "7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==";
+      };
+    };
     "mixin-deep-1.3.2" = {
       name = "mixin-deep";
       packageName = "mixin-deep";
@@ -40004,6 +40814,15 @@ let
         sha512 = "gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==";
       };
     };
+    "mlly-1.4.2" = {
+      name = "mlly";
+      packageName = "mlly";
+      version = "1.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mlly/-/mlly-1.4.2.tgz";
+        sha512 = "i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==";
+      };
+    };
     "mock-require-3.0.3" = {
       name = "mock-require";
       packageName = "mock-require";
@@ -40067,6 +40886,15 @@ let
         sha512 = "5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==";
       };
     };
+    "moment-2.30.1" = {
+      name = "moment";
+      packageName = "moment";
+      version = "2.30.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz";
+        sha512 = "uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==";
+      };
+    };
     "moment-2.7.0" = {
       name = "moment";
       packageName = "moment";
@@ -40085,6 +40913,15 @@ let
         sha512 = "72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ==";
       };
     };
+    "moment-timezone-0.5.44" = {
+      name = "moment-timezone";
+      packageName = "moment-timezone";
+      version = "0.5.44";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.44.tgz";
+        sha512 = "nv3YpzI/8lkQn0U6RkLd+f0W/zy/JnoR5/EyPz/dNkPTBjA2jNLCVxaiQ8QpeLymhSZvX0wCL5s27NQWdOPwAw==";
+      };
+    };
     "moo-0.5.2" = {
       name = "moo";
       packageName = "moo";
@@ -40148,6 +40985,15 @@ let
         sha512 = "ew3qwG/TJRorTz47eW46vZ5oBw5MEYbQZVaEji44j5lAUSQSqIEoul7Kua/BatBW0H0kKQcC9kwUHa1qzaWHSw==";
       };
     };
+    "mqtt-4.3.8" = {
+      name = "mqtt";
+      packageName = "mqtt";
+      version = "4.3.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mqtt/-/mqtt-4.3.8.tgz";
+        sha512 = "2xT75uYa0kiPEF/PE0VPdavmEkoBzMT/UL9moid0rAvlCtV48qBwxD62m7Ld/4j8tSkIO1E/iqRl/S72SEOhOw==";
+      };
+    };
     "mqtt-packet-6.10.0" = {
       name = "mqtt-packet";
       packageName = "mqtt-packet";
@@ -40175,6 +41021,15 @@ let
         sha512 = "hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==";
       };
     };
+    "mrmime-2.0.0" = {
+      name = "mrmime";
+      packageName = "mrmime";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz";
+        sha512 = "eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==";
+      };
+    };
     "ms-0.7.3" = {
       name = "ms";
       packageName = "ms";
@@ -40229,13 +41084,13 @@ let
         sha512 = "VoY2AaoowHZLLKyEb5FRzuhdSzXn5quGjcMKJOJHJPxp9baYZx5t6jiHUhp5aNRlqqlt+5GXQGovMLNKsrm1hg==";
       };
     };
-    "msgpackr-1.9.9" = {
+    "msgpackr-1.10.1" = {
       name = "msgpackr";
       packageName = "msgpackr";
-      version = "1.9.9";
+      version = "1.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/msgpackr/-/msgpackr-1.9.9.tgz";
-        sha512 = "sbn6mioS2w0lq1O6PpGtsv6Gy8roWM+o3o4Sqjd6DudrL/nOugY+KyJUimoWzHnf9OkO0T6broHFnYE/R05t9A==";
+        url = "https://registry.npmjs.org/msgpackr/-/msgpackr-1.10.1.tgz";
+        sha512 = "r5VRLv9qouXuLiIBrLpl2d5ZvPt8svdQTl5/vMvE4nzDMyEX4sgW5yWhuBBj5UmgwOTWj8CIdSXn5sAfsHAWIQ==";
       };
     };
     "muggle-string-0.2.2" = {
@@ -40409,6 +41264,15 @@ let
         sha512 = "S24aGsn+HLBxUGVAUFOwGpKs7LBcG4RudKU//eWzt/mQ97/NMKQxDWHyHx63UNWk/OOdihgmzoETn1tf5nQDzQ==";
       };
     };
+    "n12-1.8.8" = {
+      name = "n12";
+      packageName = "n12";
+      version = "1.8.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/n12/-/n12-1.8.8.tgz";
+        sha512 = "9iuAgbFD2NkHmPbgpR9NxW754cmQZJufhohk5z/8GcOv1TkHWH+a7ISEawBqyTtcB7EuhcoP4vTIwknxXi3kpg==";
+      };
+    };
     "nan-0.3.2" = {
       name = "nan";
       packageName = "nan";
@@ -40553,15 +41417,6 @@ let
         sha512 = "p7KTHxU0CUrcOXe62Zfrb5Z13nLvPhSWR/so3kFulUQU0sgUll2Z0LwpsLN351eOOD+hRGu/F1g+6xDfPeD++Q==";
       };
     };
-    "ncjsm-4.3.2" = {
-      name = "ncjsm";
-      packageName = "ncjsm";
-      version = "4.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ncjsm/-/ncjsm-4.3.2.tgz";
-        sha512 = "6d1VWA7FY31CpI4Ki97Fpm36jfURkVbpktizp8aoVViTZRQgr/0ddmlKerALSSlzfwQRBeSq1qwwVcBJK4Sk7Q==";
-      };
-    };
     "nconf-0.6.9" = {
       name = "nconf";
       packageName = "nconf";
@@ -40643,13 +41498,13 @@ let
         sha512 = "6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==";
       };
     };
-    "needle-3.2.0" = {
+    "needle-3.3.1" = {
       name = "needle";
       packageName = "needle";
-      version = "3.2.0";
+      version = "3.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/needle/-/needle-3.2.0.tgz";
-        sha512 = "oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==";
+        url = "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz";
+        sha512 = "6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==";
       };
     };
     "negotiator-0.5.3" = {
@@ -40887,13 +41742,13 @@ let
         sha512 = "3yZ1vfGKOcv0dyyhUeqA0Qa6RsQ4SfUnL6o2IWR4sVg8kdnJo48XTWbMLdtnfiZTbCUdsMttNwyJcihEdGCZBw==";
       };
     };
-    "node-abi-3.51.0" = {
+    "node-abi-3.54.0" = {
       name = "node-abi";
       packageName = "node-abi";
-      version = "3.51.0";
+      version = "3.54.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-abi/-/node-abi-3.51.0.tgz";
-        sha512 = "SQkEP4hmNWjlniS5zdnfIXTk1x7Ome85RDzHlTbBtzE97Gfwz/Ipw4v/Ryk20DWIy3yCNVLVlGKApCnmvYoJbA==";
+        url = "https://registry.npmjs.org/node-abi/-/node-abi-3.54.0.tgz";
+        sha512 = "p7eGEiQil0YUV3ItH4/tBb781L5impVmmx2E9FRKF7d18XXzp4PGT2tdYMFY6wQqgxD0IwNZOiSJ0/K0fSi/OA==";
       };
     };
     "node-abort-controller-3.1.1" = {
@@ -40923,15 +41778,6 @@ let
         sha512 = "ASCL5U13as7HhOExbT6OlWJJUV/lLzL2voOSP1UVehpRD8FbSrSDjfScK/KwAvVTI5AS6r4VwbOMlIqtvRidnA==";
       };
     };
-    "node-addon-api-3.2.1" = {
-      name = "node-addon-api";
-      packageName = "node-addon-api";
-      version = "3.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz";
-        sha512 = "mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==";
-      };
-    };
     "node-addon-api-4.3.0" = {
       name = "node-addon-api";
       packageName = "node-addon-api";
@@ -41058,15 +41904,6 @@ let
         sha512 = "V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==";
       };
     };
-    "node-fetch-2.6.12" = {
-      name = "node-fetch";
-      packageName = "node-fetch";
-      version = "2.6.12";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz";
-        sha512 = "C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==";
-      };
-    };
     "node-fetch-2.6.6" = {
       name = "node-fetch";
       packageName = "node-fetch";
@@ -41193,13 +42030,13 @@ let
         sha512 = "OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==";
       };
     };
-    "node-gyp-build-4.7.0" = {
+    "node-gyp-build-4.8.0" = {
       name = "node-gyp-build";
       packageName = "node-gyp-build";
-      version = "4.7.0";
+      version = "4.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.7.0.tgz";
-        sha512 = "PbZERfeFdrHQOOXiAKOY0VPbykZy90ndPKk0d+CFDegTKmWp1VgOTz2xACVbr1BjCWxrQp68CXtvNsveFhqDJg==";
+        url = "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz";
+        sha512 = "u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==";
       };
     };
     "node-gyp-build-optional-packages-5.0.3" = {
@@ -41310,13 +42147,13 @@ let
         sha512 = "DrjxZabGWfdV8pcj5i5XWyAlIUJye/0pJl34RVg6kCzltnDknRxFEGOIEOEwQYVQSE1Mv5maUCfg0RDSKhUPtQ==";
       };
     };
-    "node-releases-2.0.13" = {
+    "node-releases-2.0.14" = {
       name = "node-releases";
       packageName = "node-releases";
-      version = "2.0.13";
+      version = "2.0.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz";
-        sha512 = "uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==";
+        url = "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz";
+        sha512 = "y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==";
       };
     };
     "node-rsa-1.1.1" = {
@@ -41796,31 +42633,13 @@ let
         sha512 = "UfpSvQ5YKwctmodvPPkK6Fwk603aoVsf8AEbmVKAEECrfvL8SSe1A2YIwrJ6xmTHAITKPwwZsWo7WwEbNk0kxw==";
       };
     };
-    "npm-packlist-7.0.4" = {
-      name = "npm-packlist";
-      packageName = "npm-packlist";
-      version = "7.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-7.0.4.tgz";
-        sha512 = "d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==";
-      };
-    };
-    "npm-packlist-8.0.0" = {
+    "npm-packlist-8.0.1" = {
       name = "npm-packlist";
       packageName = "npm-packlist";
-      version = "8.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.0.tgz";
-        sha512 = "ErAGFB5kJUciPy1mmx/C2YFbvxoJ0QJ9uwkCZOeR6CqLLISPZBOiFModAbSXnjjlwW5lOhuhXva+fURsSGJqyw==";
-      };
-    };
-    "npm-pick-manifest-8.0.2" = {
-      name = "npm-pick-manifest";
-      packageName = "npm-pick-manifest";
-      version = "8.0.2";
+      version = "8.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-8.0.2.tgz";
-        sha512 = "1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==";
+        url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.1.tgz";
+        sha512 = "MQpL27ZrsJQ2kiAuQPpZb5LtJwydNRnI15QWXsf3WHERu4rzjRj6Zju/My2fov7tLuu3Gle/uoIX/DDZ3u4O4Q==";
       };
     };
     "npm-pick-manifest-9.0.0" = {
@@ -41859,15 +42678,6 @@ let
         sha512 = "PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw==";
       };
     };
-    "npm-registry-utilities-1.0.0" = {
-      name = "npm-registry-utilities";
-      packageName = "npm-registry-utilities";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-registry-utilities/-/npm-registry-utilities-1.0.0.tgz";
-        sha512 = "9xYfSJy2IFQw1i6462EJzjChL9e65EfSo2Cw6kl0EFeDp05VvU+anrQk3Fc0d1MbVCq7rWIxeer89O9SUQ/uOg==";
-      };
-    };
     "npm-run-path-2.0.2" = {
       name = "npm-run-path";
       packageName = "npm-run-path";
@@ -41895,13 +42705,13 @@ let
         sha512 = "S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==";
       };
     };
-    "npm-run-path-5.1.0" = {
+    "npm-run-path-5.2.0" = {
       name = "npm-run-path";
       packageName = "npm-run-path";
-      version = "5.1.0";
+      version = "5.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz";
-        sha512 = "sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==";
+        url = "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz";
+        sha512 = "W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==";
       };
     };
     "npmconf-2.1.3" = {
@@ -42039,13 +42849,13 @@ let
         sha512 = "ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==";
       };
     };
-    "nx-16.10.0" = {
+    "nx-17.2.8" = {
       name = "nx";
       packageName = "nx";
-      version = "16.10.0";
+      version = "17.2.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nx/-/nx-16.10.0.tgz";
-        sha512 = "gZl4iCC0Hx0Qe1VWmO4Bkeul2nttuXdPpfnlcDKSACGu3ZIo+uySqwOF8yBAxSTIf8xe2JRhgzJN1aFkuezEBg==";
+        url = "https://registry.npmjs.org/nx/-/nx-17.2.8.tgz";
+        sha512 = "rM5zXbuXLEuqQqcjVjClyvHwRJwt+NVImR2A6KFNG40Z60HP6X12wAxxeLHF5kXXTDRU0PFhf/yACibrpbPrAw==";
       };
     };
     "nyc-15.1.0" = {
@@ -42255,13 +43065,13 @@ let
         sha512 = "GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==";
       };
     };
-    "object.assign-4.1.4" = {
+    "object.assign-4.1.5" = {
       name = "object.assign";
       packageName = "object.assign";
-      version = "4.1.4";
+      version = "4.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz";
-        sha512 = "1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==";
+        url = "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz";
+        sha512 = "byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==";
       };
     };
     "object.defaults-1.1.0" = {
@@ -42498,6 +43308,15 @@ let
         sha512 = "1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==";
       };
     };
+    "onetime-7.0.0" = {
+      name = "onetime";
+      packageName = "onetime";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz";
+        sha512 = "VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==";
+      };
+    };
     "onml-2.1.0" = {
       name = "onml";
       packageName = "onml";
@@ -42507,13 +43326,13 @@ let
         sha512 = "fvaSZRzprpwLFge/mcwE0CItfniNisVNamDdMK1FQUjh4ArQZ8ZWSkDaJbZc3XaANKZHq0xIa8NJpZ2HSe3oXA==";
       };
     };
-    "oo-ascii-tree-1.92.0" = {
+    "oo-ascii-tree-1.93.0" = {
       name = "oo-ascii-tree";
       packageName = "oo-ascii-tree";
-      version = "1.92.0";
+      version = "1.93.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.92.0.tgz";
-        sha512 = "rLSPbnakn5Wb3dOIVtrmn8jfHKqWv7bROpyBiw6DExq+dOG7qC49EIs89hBhyHkvLolX0oC+0a/RMPAyHEZ+1w==";
+        url = "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.93.0.tgz";
+        sha512 = "zbmrGCL/UsvxV2WlnsSrqdkdxEggxH7eA1HOk+hmimLQu+eLO4Y3VGqwt0VK04Nfe6iG6GnzRL5/XjH0j1v8bQ==";
       };
     };
     "open-0.0.2" = {
@@ -42768,13 +43587,13 @@ let
         sha512 = "0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw==";
       };
     };
-    "ordered-binary-1.4.1" = {
+    "ordered-binary-1.5.1" = {
       name = "ordered-binary";
       packageName = "ordered-binary";
-      version = "1.4.1";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.4.1.tgz";
-        sha512 = "9LtiGlPy982CsgxZvJGNNp2/NnrgEr6EAyN3iIEP3/8vd3YLgAZQHbQ75ZrkfBRGrNg37Dk3U6tuVb+B4Xfslg==";
+        url = "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.1.tgz";
+        sha512 = "5VyHfHY3cd0iza71JepYG50My+YUbrFtGoUz2ooEydPyPM7Aai/JW098juLr+RG6+rDJuzNNTsEQu2DZa1A41A==";
       };
     };
     "ordered-read-streams-1.0.1" = {
@@ -42930,15 +43749,6 @@ let
         sha512 = "NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==";
       };
     };
-    "p-event-4.2.0" = {
-      name = "p-event";
-      packageName = "p-event";
-      version = "4.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz";
-        sha512 = "KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==";
-      };
-    };
     "p-event-5.0.1" = {
       name = "p-event";
       packageName = "p-event";
@@ -43047,6 +43857,15 @@ let
         sha512 = "5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==";
       };
     };
+    "p-limit-5.0.0" = {
+      name = "p-limit";
+      packageName = "p-limit";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz";
+        sha512 = "/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==";
+      };
+    };
     "p-locate-2.0.0" = {
       name = "p-locate";
       packageName = "p-locate";
@@ -43407,22 +44226,22 @@ let
         sha512 = "DPBNWSUWC0wPofXeNThao0uP4a93J7r90UyhagmJS0QcacTTkorZwXYsOop70phn1hKdcf/2e9lJIhazS8bx5A==";
       };
     };
-    "pacote-15.2.0" = {
+    "pacote-17.0.4" = {
       name = "pacote";
       packageName = "pacote";
-      version = "15.2.0";
+      version = "17.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pacote/-/pacote-15.2.0.tgz";
-        sha512 = "rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==";
+        url = "https://registry.npmjs.org/pacote/-/pacote-17.0.4.tgz";
+        sha512 = "eGdLHrV/g5b5MtD5cTPyss+JxOlaOloSMG3UwPMAvL8ywaLJ6beONPF40K4KKl/UI6q5hTKCJq5rCu8tkF+7Dg==";
       };
     };
-    "pacote-17.0.4" = {
+    "pacote-17.0.5" = {
       name = "pacote";
       packageName = "pacote";
-      version = "17.0.4";
+      version = "17.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pacote/-/pacote-17.0.4.tgz";
-        sha512 = "eGdLHrV/g5b5MtD5cTPyss+JxOlaOloSMG3UwPMAvL8ywaLJ6beONPF40K4KKl/UI6q5hTKCJq5rCu8tkF+7Dg==";
+        url = "https://registry.npmjs.org/pacote/-/pacote-17.0.5.tgz";
+        sha512 = "TAE0m20zSDMnchPja9vtQjri19X3pZIyRpm2TJVeI+yU42leJBBDTRYhOcWFsPhaMxf+3iwQkFiKz16G9AEeeA==";
       };
     };
     "pako-0.2.9" = {
@@ -43659,6 +44478,15 @@ let
         sha512 = "SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==";
       };
     };
+    "parse-json-8.1.0" = {
+      name = "parse-json";
+      packageName = "parse-json";
+      version = "8.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-json/-/parse-json-8.1.0.tgz";
+        sha512 = "rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==";
+      };
+    };
     "parse-json-object-1.1.0" = {
       name = "parse-json-object";
       packageName = "parse-json-object";
@@ -44307,13 +45135,13 @@ let
         sha512 = "gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==";
       };
     };
-    "path2-0.1.0" = {
-      name = "path2";
-      packageName = "path2";
-      version = "0.1.0";
+    "path-type-5.0.0" = {
+      name = "path-type";
+      packageName = "path-type";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/path2/-/path2-0.1.0.tgz";
-        sha512 = "TX+cz8Jk+ta7IvRy2FAej8rdlbrP0+uBIkP/5DTODez/AuL/vSb30KuAdDxGVREXzn8QfAiu5mJYJ1XjbOhEPA==";
+        url = "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz";
+        sha512 = "5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==";
       };
     };
     "pathe-1.1.1" = {
@@ -44325,6 +45153,15 @@ let
         sha512 = "d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==";
       };
     };
+    "pathval-1.1.1" = {
+      name = "pathval";
+      packageName = "pathval";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz";
+        sha512 = "Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==";
+      };
+    };
     "pause-0.0.1" = {
       name = "pause";
       packageName = "pause";
@@ -44640,13 +45477,13 @@ let
         sha512 = "NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==";
       };
     };
-    "pkg-dir-7.0.0" = {
+    "pkg-dir-8.0.0" = {
       name = "pkg-dir";
       packageName = "pkg-dir";
-      version = "7.0.0";
+      version = "8.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz";
-        sha512 = "Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==";
+        url = "https://registry.npmjs.org/pkg-dir/-/pkg-dir-8.0.0.tgz";
+        sha512 = "4peoBq4Wks0riS0z8741NVv+/8IiTvqnZAr8QGgtdifrtpdXbNw/FxRS1l6NFqm4EMzuS0EDqNNx4XGaz8cuyQ==";
       };
     };
     "pkg-fetch-3.4.2" = {
@@ -44658,6 +45495,15 @@ let
         sha512 = "0+uijmzYcnhC0hStDjm/cl2VYdrmVVBpe7Q8k9YBojxmR5tG8mvR9/nooQq3QSXiQqORDVOTY3XqMEqJVIzkHA==";
       };
     };
+    "pkg-types-1.0.3" = {
+      name = "pkg-types";
+      packageName = "pkg-types";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz";
+        sha512 = "nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==";
+      };
+    };
     "pkg-up-3.1.0" = {
       name = "pkg-up";
       packageName = "pkg-up";
@@ -44685,6 +45531,24 @@ let
         sha512 = "yO5feByMzAp96LtP58wvPKSbaKAi/1C4kV9XpTctr6EepnP6F33RBNOiVrdz9BrPA98U2BMFsTNHo44TWcbQ2A==";
       };
     };
+    "playwright-1.40.1" = {
+      name = "playwright";
+      packageName = "playwright";
+      version = "1.40.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/playwright/-/playwright-1.40.1.tgz";
+        sha512 = "2eHI7IioIpQ0bS1Ovg/HszsN/XKNwEG1kbzSDDmADpclKc7CyqkHw7Mg2JCz/bbCxg25QUPcjksoMW7JcIFQmw==";
+      };
+    };
+    "playwright-core-1.40.1" = {
+      name = "playwright-core";
+      packageName = "playwright-core";
+      version = "1.40.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/playwright-core/-/playwright-core-1.40.1.tgz";
+        sha512 = "+hkOycxPiV534c4HhpfX6yrlawqVUzITRKwHAmYfmsVreltEl6fAZJ3DPfLMOODw0H3s1Itd6MDCWmP1fl/QvQ==";
+      };
+    };
     "please-upgrade-node-3.2.0" = {
       name = "please-upgrade-node";
       packageName = "please-upgrade-node";
@@ -44892,13 +45756,13 @@ let
         sha512 = "yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==";
       };
     };
-    "postcss-8.4.31" = {
+    "postcss-8.4.33" = {
       name = "postcss";
       packageName = "postcss";
-      version = "8.4.31";
+      version = "8.4.33";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz";
-        sha512 = "PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==";
+        url = "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz";
+        sha512 = "Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==";
       };
     };
     "postcss-calc-8.2.4" = {
@@ -44928,13 +45792,13 @@ let
         sha512 = "UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==";
       };
     };
-    "postcss-colormin-6.0.0" = {
+    "postcss-colormin-6.0.2" = {
       name = "postcss-colormin";
       packageName = "postcss-colormin";
-      version = "6.0.0";
+      version = "6.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.0.0.tgz";
-        sha512 = "EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw==";
+        url = "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.0.2.tgz";
+        sha512 = "TXKOxs9LWcdYo5cgmcSHPkyrLAh86hX1ijmyy6J8SbOhyv6ua053M3ZAM/0j44UsnQNIWdl8gb5L7xX2htKeLw==";
       };
     };
     "postcss-convert-values-5.1.3" = {
@@ -44946,13 +45810,13 @@ let
         sha512 = "82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==";
       };
     };
-    "postcss-convert-values-6.0.0" = {
+    "postcss-convert-values-6.0.2" = {
       name = "postcss-convert-values";
       packageName = "postcss-convert-values";
-      version = "6.0.0";
+      version = "6.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.0.0.tgz";
-        sha512 = "U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw==";
+        url = "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.0.2.tgz";
+        sha512 = "aeBmaTnGQ+NUSVQT8aY0sKyAD/BaLJenEKZ03YK0JnDE1w1Rr8XShoxdal2V2H26xTJKr3v5haByOhJuyT4UYw==";
       };
     };
     "postcss-discard-comments-5.1.2" = {
@@ -44964,13 +45828,13 @@ let
         sha512 = "+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==";
       };
     };
-    "postcss-discard-comments-6.0.0" = {
+    "postcss-discard-comments-6.0.1" = {
       name = "postcss-discard-comments";
       packageName = "postcss-discard-comments";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.0.tgz";
-        sha512 = "p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==";
+        url = "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.1.tgz";
+        sha512 = "f1KYNPtqYLUeZGCHQPKzzFtsHaRuECe6jLakf/RjSRqvF5XHLZnM2+fXLhb8Qh/HBFHs3M4cSLb1k3B899RYIg==";
       };
     };
     "postcss-discard-duplicates-5.1.0" = {
@@ -44982,13 +45846,13 @@ let
         sha512 = "zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==";
       };
     };
-    "postcss-discard-duplicates-6.0.0" = {
+    "postcss-discard-duplicates-6.0.1" = {
       name = "postcss-discard-duplicates";
       packageName = "postcss-discard-duplicates";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.0.tgz";
-        sha512 = "bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==";
+        url = "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.1.tgz";
+        sha512 = "1hvUs76HLYR8zkScbwyJ8oJEugfPV+WchpnA+26fpJ7Smzs51CzGBHC32RS03psuX/2l0l0UKh2StzNxOrKCYg==";
       };
     };
     "postcss-discard-empty-5.1.1" = {
@@ -45000,13 +45864,13 @@ let
         sha512 = "zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==";
       };
     };
-    "postcss-discard-empty-6.0.0" = {
+    "postcss-discard-empty-6.0.1" = {
       name = "postcss-discard-empty";
       packageName = "postcss-discard-empty";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.0.tgz";
-        sha512 = "b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==";
+        url = "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.1.tgz";
+        sha512 = "yitcmKwmVWtNsrrRqGJ7/C0YRy53i0mjexBDQ9zYxDwTWVBgbU4+C9jIZLmQlTDT9zhml+u0OMFJh8+31krmOg==";
       };
     };
     "postcss-discard-overridden-5.1.0" = {
@@ -45018,13 +45882,13 @@ let
         sha512 = "21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==";
       };
     };
-    "postcss-discard-overridden-6.0.0" = {
+    "postcss-discard-overridden-6.0.1" = {
       name = "postcss-discard-overridden";
       packageName = "postcss-discard-overridden";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.0.tgz";
-        sha512 = "4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==";
+        url = "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.1.tgz";
+        sha512 = "qs0ehZMMZpSESbRkw1+inkf51kak6OOzNRaoLd/U7Fatp0aN2HQ1rxGOrJvYcRAN9VpX8kUF13R2ofn8OlvFVA==";
       };
     };
     "postcss-html-0.36.0" = {
@@ -45072,6 +45936,15 @@ let
         sha512 = "bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==";
       };
     };
+    "postcss-load-config-5.0.2" = {
+      name = "postcss-load-config";
+      packageName = "postcss-load-config";
+      version = "5.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-5.0.2.tgz";
+        sha512 = "Q8QR3FYbqOKa0bnC1UQ2bFq9/ulHX5Bi34muzitMr8aDtUelO5xKeJEYC/5smE0jNE9zdB/NBnOwXKexELbRlw==";
+      };
+    };
     "postcss-media-query-parser-0.2.3" = {
       name = "postcss-media-query-parser";
       packageName = "postcss-media-query-parser";
@@ -45090,13 +45963,13 @@ let
         sha512 = "YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==";
       };
     };
-    "postcss-merge-longhand-6.0.0" = {
+    "postcss-merge-longhand-6.0.2" = {
       name = "postcss-merge-longhand";
       packageName = "postcss-merge-longhand";
-      version = "6.0.0";
+      version = "6.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.0.tgz";
-        sha512 = "4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg==";
+        url = "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.2.tgz";
+        sha512 = "+yfVB7gEM8SrCo9w2lCApKIEzrTKl5yS1F4yGhV3kSim6JzbfLGJyhR1B6X+6vOT0U33Mgx7iv4X9MVWuaSAfw==";
       };
     };
     "postcss-merge-rules-5.1.4" = {
@@ -45108,13 +45981,13 @@ let
         sha512 = "0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==";
       };
     };
-    "postcss-merge-rules-6.0.1" = {
+    "postcss-merge-rules-6.0.3" = {
       name = "postcss-merge-rules";
       packageName = "postcss-merge-rules";
-      version = "6.0.1";
+      version = "6.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.0.1.tgz";
-        sha512 = "a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw==";
+        url = "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.0.3.tgz";
+        sha512 = "yfkDqSHGohy8sGYIJwBmIGDv4K4/WrJPX355XrxQb/CSsT4Kc/RxDi6akqn5s9bap85AWgv21ArcUWwWdGNSHA==";
       };
     };
     "postcss-minify-font-values-5.1.0" = {
@@ -45126,13 +45999,13 @@ let
         sha512 = "el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==";
       };
     };
-    "postcss-minify-font-values-6.0.0" = {
+    "postcss-minify-font-values-6.0.1" = {
       name = "postcss-minify-font-values";
       packageName = "postcss-minify-font-values";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.0.tgz";
-        sha512 = "zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==";
+        url = "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.1.tgz";
+        sha512 = "tIwmF1zUPoN6xOtA/2FgVk1ZKrLcCvE0dpZLtzyyte0j9zUeB8RTbCqrHZGjJlxOvNWKMYtunLrrl7HPOiR46w==";
       };
     };
     "postcss-minify-gradients-5.1.1" = {
@@ -45144,13 +46017,13 @@ let
         sha512 = "VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==";
       };
     };
-    "postcss-minify-gradients-6.0.0" = {
+    "postcss-minify-gradients-6.0.1" = {
       name = "postcss-minify-gradients";
       packageName = "postcss-minify-gradients";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.0.tgz";
-        sha512 = "wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==";
+        url = "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.1.tgz";
+        sha512 = "M1RJWVjd6IOLPl1hYiOd5HQHgpp6cvJVLrieQYS9y07Yo8itAr6jaekzJphaJFR0tcg4kRewCk3kna9uHBxn/w==";
       };
     };
     "postcss-minify-params-5.1.4" = {
@@ -45162,13 +46035,13 @@ let
         sha512 = "+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==";
       };
     };
-    "postcss-minify-params-6.0.0" = {
+    "postcss-minify-params-6.0.2" = {
       name = "postcss-minify-params";
       packageName = "postcss-minify-params";
-      version = "6.0.0";
+      version = "6.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.0.0.tgz";
-        sha512 = "Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==";
+        url = "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.0.2.tgz";
+        sha512 = "zwQtbrPEBDj+ApELZ6QylLf2/c5zmASoOuA4DzolyVGdV38iR2I5QRMsZcHkcdkZzxpN8RS4cN7LPskOkTwTZw==";
       };
     };
     "postcss-minify-selectors-5.2.1" = {
@@ -45180,13 +46053,13 @@ let
         sha512 = "nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==";
       };
     };
-    "postcss-minify-selectors-6.0.0" = {
+    "postcss-minify-selectors-6.0.2" = {
       name = "postcss-minify-selectors";
       packageName = "postcss-minify-selectors";
-      version = "6.0.0";
+      version = "6.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.0.tgz";
-        sha512 = "ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==";
+        url = "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.2.tgz";
+        sha512 = "0b+m+w7OAvZejPQdN2GjsXLv5o0jqYHX3aoV0e7RBKPCsB7TYG5KKWBFhGnB/iP3213Ts8c5H4wLPLMm7z28Sg==";
       };
     };
     "postcss-modules-extract-imports-3.0.0" = {
@@ -45207,13 +46080,13 @@ let
         sha512 = "2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==";
       };
     };
-    "postcss-modules-scope-3.0.0" = {
+    "postcss-modules-scope-3.1.0" = {
       name = "postcss-modules-scope";
       packageName = "postcss-modules-scope";
-      version = "3.0.0";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz";
-        sha512 = "hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==";
+        url = "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.1.0.tgz";
+        sha512 = "SaIbK8XW+MZbd0xHPf7kdfA/3eOt7vxJ72IRecn3EzuZVLr1r0orzf0MX/pN8m+NMDoo6X/SQd8oeKqGZd8PXg==";
       };
     };
     "postcss-modules-values-4.0.0" = {
@@ -45243,13 +46116,13 @@ let
         sha512 = "mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==";
       };
     };
-    "postcss-normalize-charset-6.0.0" = {
+    "postcss-normalize-charset-6.0.1" = {
       name = "postcss-normalize-charset";
       packageName = "postcss-normalize-charset";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.0.tgz";
-        sha512 = "cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ==";
+        url = "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.1.tgz";
+        sha512 = "aW5LbMNRZ+oDV57PF9K+WI1Z8MPnF+A8qbajg/T8PP126YrGX1f9IQx21GI2OlGz7XFJi/fNi0GTbY948XJtXg==";
       };
     };
     "postcss-normalize-display-values-5.1.0" = {
@@ -45261,13 +46134,13 @@ let
         sha512 = "WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==";
       };
     };
-    "postcss-normalize-display-values-6.0.0" = {
+    "postcss-normalize-display-values-6.0.1" = {
       name = "postcss-normalize-display-values";
       packageName = "postcss-normalize-display-values";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.0.tgz";
-        sha512 = "Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==";
+        url = "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.1.tgz";
+        sha512 = "mc3vxp2bEuCb4LgCcmG1y6lKJu1Co8T+rKHrcbShJwUmKJiEl761qb/QQCfFwlrvSeET3jksolCR/RZuMURudw==";
       };
     };
     "postcss-normalize-positions-5.1.1" = {
@@ -45279,13 +46152,13 @@ let
         sha512 = "6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==";
       };
     };
-    "postcss-normalize-positions-6.0.0" = {
+    "postcss-normalize-positions-6.0.1" = {
       name = "postcss-normalize-positions";
       packageName = "postcss-normalize-positions";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.0.tgz";
-        sha512 = "mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==";
+        url = "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.1.tgz";
+        sha512 = "HRsq8u/0unKNvm0cvwxcOUEcakFXqZ41fv3FOdPn916XFUrympjr+03oaLkuZENz3HE9RrQE9yU0Xv43ThWjQg==";
       };
     };
     "postcss-normalize-repeat-style-5.1.1" = {
@@ -45297,13 +46170,13 @@ let
         sha512 = "mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==";
       };
     };
-    "postcss-normalize-repeat-style-6.0.0" = {
+    "postcss-normalize-repeat-style-6.0.1" = {
       name = "postcss-normalize-repeat-style";
       packageName = "postcss-normalize-repeat-style";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.0.tgz";
-        sha512 = "50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==";
+        url = "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.1.tgz";
+        sha512 = "Gbb2nmCy6tTiA7Sh2MBs3fj9W8swonk6lw+dFFeQT68B0Pzwp1kvisJQkdV6rbbMSd9brMlS8I8ts52tAGWmGQ==";
       };
     };
     "postcss-normalize-string-5.1.0" = {
@@ -45315,13 +46188,13 @@ let
         sha512 = "oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==";
       };
     };
-    "postcss-normalize-string-6.0.0" = {
+    "postcss-normalize-string-6.0.1" = {
       name = "postcss-normalize-string";
       packageName = "postcss-normalize-string";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.0.tgz";
-        sha512 = "KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==";
+        url = "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.1.tgz";
+        sha512 = "5Fhx/+xzALJD9EI26Aq23hXwmv97Zfy2VFrt5PLT8lAhnBIZvmaT5pQk+NuJ/GWj/QWaKSKbnoKDGLbV6qnhXg==";
       };
     };
     "postcss-normalize-timing-functions-5.1.0" = {
@@ -45333,13 +46206,13 @@ let
         sha512 = "DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==";
       };
     };
-    "postcss-normalize-timing-functions-6.0.0" = {
+    "postcss-normalize-timing-functions-6.0.1" = {
       name = "postcss-normalize-timing-functions";
       packageName = "postcss-normalize-timing-functions";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.0.tgz";
-        sha512 = "tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==";
+        url = "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.1.tgz";
+        sha512 = "4zcczzHqmCU7L5dqTB9rzeqPWRMc0K2HoR+Bfl+FSMbqGBUcP5LRfgcH4BdRtLuzVQK1/FHdFoGT3F7rkEnY+g==";
       };
     };
     "postcss-normalize-unicode-5.1.1" = {
@@ -45351,13 +46224,13 @@ let
         sha512 = "qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==";
       };
     };
-    "postcss-normalize-unicode-6.0.0" = {
+    "postcss-normalize-unicode-6.0.2" = {
       name = "postcss-normalize-unicode";
       packageName = "postcss-normalize-unicode";
-      version = "6.0.0";
+      version = "6.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.0.tgz";
-        sha512 = "ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==";
+        url = "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.2.tgz";
+        sha512 = "Ff2VdAYCTGyMUwpevTZPZ4w0+mPjbZzLLyoLh/RMpqUqeQKZ+xMm31hkxBavDcGKcxm6ACzGk0nBfZ8LZkStKA==";
       };
     };
     "postcss-normalize-url-5.1.0" = {
@@ -45369,13 +46242,13 @@ let
         sha512 = "5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==";
       };
     };
-    "postcss-normalize-url-6.0.0" = {
+    "postcss-normalize-url-6.0.1" = {
       name = "postcss-normalize-url";
       packageName = "postcss-normalize-url";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.0.tgz";
-        sha512 = "98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==";
+        url = "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.1.tgz";
+        sha512 = "jEXL15tXSvbjm0yzUV7FBiEXwhIa9H88JOXDGQzmcWoB4mSjZIsmtto066s2iW9FYuIrIF4k04HA2BKAOpbsaQ==";
       };
     };
     "postcss-normalize-whitespace-5.1.1" = {
@@ -45387,13 +46260,13 @@ let
         sha512 = "83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==";
       };
     };
-    "postcss-normalize-whitespace-6.0.0" = {
+    "postcss-normalize-whitespace-6.0.1" = {
       name = "postcss-normalize-whitespace";
       packageName = "postcss-normalize-whitespace";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.0.tgz";
-        sha512 = "7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==";
+        url = "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.1.tgz";
+        sha512 = "76i3NpWf6bB8UHlVuLRxG4zW2YykF9CTEcq/9LGAiz2qBuX5cBStadkk0jSkg9a9TCIXbMQz7yzrygKoCW9JuA==";
       };
     };
     "postcss-ordered-values-5.1.3" = {
@@ -45405,13 +46278,13 @@ let
         sha512 = "9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==";
       };
     };
-    "postcss-ordered-values-6.0.0" = {
+    "postcss-ordered-values-6.0.1" = {
       name = "postcss-ordered-values";
       packageName = "postcss-ordered-values";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.0.tgz";
-        sha512 = "K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==";
+        url = "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.1.tgz";
+        sha512 = "XXbb1O/MW9HdEhnBxitZpPFbIvDgbo9NK4c/5bOfiKpnIGZDoL2xd7/e6jW5DYLsWxBbs+1nZEnVgnjnlFViaA==";
       };
     };
     "postcss-reduce-initial-5.1.2" = {
@@ -45423,13 +46296,13 @@ let
         sha512 = "dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==";
       };
     };
-    "postcss-reduce-initial-6.0.0" = {
+    "postcss-reduce-initial-6.0.2" = {
       name = "postcss-reduce-initial";
       packageName = "postcss-reduce-initial";
-      version = "6.0.0";
+      version = "6.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.0.0.tgz";
-        sha512 = "s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==";
+        url = "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.0.2.tgz";
+        sha512 = "YGKalhNlCLcjcLvjU5nF8FyeCTkCO5UtvJEt0hrPZVCTtRLSOH4z00T1UntQPj4dUmIYZgMj8qK77JbSX95hSw==";
       };
     };
     "postcss-reduce-transforms-5.1.0" = {
@@ -45441,13 +46314,13 @@ let
         sha512 = "2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==";
       };
     };
-    "postcss-reduce-transforms-6.0.0" = {
+    "postcss-reduce-transforms-6.0.1" = {
       name = "postcss-reduce-transforms";
       packageName = "postcss-reduce-transforms";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.0.tgz";
-        sha512 = "FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==";
+        url = "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.1.tgz";
+        sha512 = "fUbV81OkUe75JM+VYO1gr/IoA2b/dRiH6HvMwhrIBSUrxq3jNZQZitSnugcTLDi1KkQh1eR/zi+iyxviUNBkcQ==";
       };
     };
     "postcss-reporter-7.0.5" = {
@@ -45504,13 +46377,13 @@ let
         sha512 = "IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==";
       };
     };
-    "postcss-selector-parser-6.0.13" = {
+    "postcss-selector-parser-6.0.15" = {
       name = "postcss-selector-parser";
       packageName = "postcss-selector-parser";
-      version = "6.0.13";
+      version = "6.0.15";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz";
-        sha512 = "EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==";
+        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz";
+        sha512 = "rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==";
       };
     };
     "postcss-selector-parser-6.0.2" = {
@@ -45531,13 +46404,13 @@ let
         sha512 = "D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==";
       };
     };
-    "postcss-svgo-6.0.0" = {
+    "postcss-svgo-6.0.2" = {
       name = "postcss-svgo";
       packageName = "postcss-svgo";
-      version = "6.0.0";
+      version = "6.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.0.tgz";
-        sha512 = "r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==";
+        url = "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.2.tgz";
+        sha512 = "IH5R9SjkTkh0kfFOQDImyy1+mTCb+E830+9SV1O+AaDcoHTvfsvt6WwJeo7KwcHbFnevZVCsXhDmjFiGVuwqFQ==";
       };
     };
     "postcss-syntax-0.36.2" = {
@@ -45558,13 +46431,13 @@ let
         sha512 = "5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==";
       };
     };
-    "postcss-unique-selectors-6.0.0" = {
+    "postcss-unique-selectors-6.0.2" = {
       name = "postcss-unique-selectors";
       packageName = "postcss-unique-selectors";
-      version = "6.0.0";
+      version = "6.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.0.tgz";
-        sha512 = "EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==";
+        url = "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.2.tgz";
+        sha512 = "8IZGQ94nechdG7Y9Sh9FlIY2b4uS8/k8kdKRX040XHsS3B6d1HrJAkXrBSsSu4SuARruSsUjW3nlSw8BHkaAYQ==";
       };
     };
     "postcss-value-parser-4.2.0" = {
@@ -45720,13 +46593,13 @@ let
         sha512 = "L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==";
       };
     };
-    "prettier-3.1.0" = {
+    "prettier-3.1.1" = {
       name = "prettier";
       packageName = "prettier";
-      version = "3.1.0";
+      version = "3.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz";
-        sha512 = "TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==";
+        url = "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz";
+        sha512 = "22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==";
       };
     };
     "prettier-bytes-1.0.4" = {
@@ -45738,22 +46611,22 @@ let
         sha512 = "dLbWOa4xBn+qeWeIF60qRoB6Pk2jX5P3DIVgOQyMyvBpu931Q+8dXz8X0snJiFkQdohDDLnZQECjzsAj75hgZQ==";
       };
     };
-    "prettier-plugin-astro-0.12.2" = {
+    "prettier-plugin-astro-0.12.3" = {
       name = "prettier-plugin-astro";
       packageName = "prettier-plugin-astro";
-      version = "0.12.2";
+      version = "0.12.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prettier-plugin-astro/-/prettier-plugin-astro-0.12.2.tgz";
-        sha512 = "1OXSEht27zrnX7rCa0bEpLdspeumFW4hnj4+JzPuG5bRlSOAhD0rbXBNZfRD9q0Qbr00EcCcnjd6k6M8q+GfTA==";
+        url = "https://registry.npmjs.org/prettier-plugin-astro/-/prettier-plugin-astro-0.12.3.tgz";
+        sha512 = "GthUSu3zCvmtVyqlArosez0xE08vSJ0R1sWurxIWpABaCkNGYFANoUdFkqmIo54EV2uPLGcVJzOucWvCjPBWvg==";
       };
     };
-    "prettier-plugin-svelte-2.10.1" = {
+    "prettier-plugin-svelte-3.1.2" = {
       name = "prettier-plugin-svelte";
       packageName = "prettier-plugin-svelte";
-      version = "2.10.1";
+      version = "3.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-2.10.1.tgz";
-        sha512 = "Wlq7Z5v2ueCubWo0TZzKc9XHcm7TDxqcuzRuGd0gcENfzfT4JZ9yDlCbEgxWgiPmLHkBjfOtpAWkcT28MCDpUQ==";
+        url = "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.1.2.tgz";
+        sha512 = "7xfMZtwgAWHMT0iZc8jN4o65zgbAQ3+O32V6W7pXrqNvKnHnkoyQCGCbKeUyXKZLbYE0YhFRnamfxfkEGxm8qA==";
       };
     };
     "pretty-bytes-5.6.0" = {
@@ -45954,15 +46827,6 @@ let
         sha512 = "1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==";
       };
     };
-    "process-utils-4.0.0" = {
-      name = "process-utils";
-      packageName = "process-utils";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/process-utils/-/process-utils-4.0.0.tgz";
-        sha512 = "fMyMQbKCxX51YxR7YGCzPjLsU3yDzXFkP4oi1/Mt5Ixnk7GO/7uUTj8mrCHUwuvozWzI+V7QSJR9cZYnwNOZPg==";
-      };
-    };
     "progress-1.1.8" = {
       name = "progress";
       packageName = "progress";
@@ -46044,15 +46908,6 @@ let
         sha512 = "7nJ6v5lnJsXwGprnGXga4wx6d1POjvi5Qmf1ivTRxTjH4Z/9Czja/UCMLVmB9N93GeWOU93XaFaEt6jbuoagNw==";
       };
     };
-    "promise-queue-2.2.5" = {
-      name = "promise-queue";
-      packageName = "promise-queue";
-      version = "2.2.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/promise-queue/-/promise-queue-2.2.5.tgz";
-        sha512 = "p/iXrPSVfnqPft24ZdNNLECw/UrtLTpT3jpAAMzl/o5/rDsGCPo3/CQS2611flL6LkoEJ3oQZw7C8Q80ZISXRQ==";
-      };
-    };
     "promise-retry-2.0.1" = {
       name = "promise-retry";
       packageName = "promise-retry";
@@ -46215,6 +47070,15 @@ let
         sha512 = "llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==";
       };
     };
+    "proxy-agent-6.3.0" = {
+      name = "proxy-agent";
+      packageName = "proxy-agent";
+      version = "6.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.0.tgz";
+        sha512 = "0LdR757eTj/JfuU7TL2YCuAZnxWXu3tkJbg4Oq3geW/qFNT/32T0sp2HnZ9O0lMR4q3vwAt0+xCA8SR0WAD0og==";
+      };
+    };
     "proxy-agent-6.3.1" = {
       name = "proxy-agent";
       packageName = "proxy-agent";
@@ -46530,6 +47394,24 @@ let
         sha512 = "U1uufzBjz3+PkpCxFrWzh4OrMIdIb2ztzCu0YEPfRHjHswcSwHZswnK+WdsOQJsRV8WeTg3jLhJR4D867+fjsA==";
       };
     };
+    "puppeteer-core-20.3.0" = {
+      name = "puppeteer-core";
+      packageName = "puppeteer-core";
+      version = "20.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-20.3.0.tgz";
+        sha512 = "264pBrIui5bO6NJeOcbJrLa0OCwmA4+WK00JMrLIKTfRiqe2gx8KWTzLsjyw/bizErp3TKS7vt/I0i5fTC+mAw==";
+      };
+    };
+    "puppeteer-core-20.9.0" = {
+      name = "puppeteer-core";
+      packageName = "puppeteer-core";
+      version = "20.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-20.9.0.tgz";
+        sha512 = "H9fYZQzMTRrkboEfPmf7m3CLDN6JvbxXA3qTtS+dFt27tR+CsFHzPsT6pzp6lYL6bJbAPaR0HaPO6uSi+F94Pg==";
+      };
+    };
     "purgecss-5.0.0" = {
       name = "purgecss";
       packageName = "purgecss";
@@ -46557,13 +47439,13 @@ let
         sha512 = "pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==";
       };
     };
-    "pyright-1.1.336" = {
+    "pyright-1.1.344" = {
       name = "pyright";
       packageName = "pyright";
-      version = "1.1.336";
+      version = "1.1.344";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pyright/-/pyright-1.1.336.tgz";
-        sha512 = "PE/ArjnfS5dKon05zAX2eMzSQmu4ftCITzLqKgFKuwLIRnKJ+l4QGwkCKtYvWoXKm1fWr+TjqYpdRejrYkolyg==";
+        url = "https://registry.npmjs.org/pyright/-/pyright-1.1.344.tgz";
+        sha512 = "K0nhCxUqoACGgyZO1VfWSx5NkT5VTe0VKblLu09RMPmrzdblZi8DbfU6Hy9OXMSe2sBbAEtK685QRVi05V98tA==";
       };
     };
     "q-1.5.1" = {
@@ -46692,6 +47574,15 @@ let
         sha512 = "IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==";
       };
     };
+    "query-selector-shadow-dom-1.0.1" = {
+      name = "query-selector-shadow-dom";
+      packageName = "query-selector-shadow-dom";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/query-selector-shadow-dom/-/query-selector-shadow-dom-1.0.1.tgz";
+        sha512 = "lT5yCqEBgfoMYpf3F2xQRK7zEr1rhIIZuceDK6+xRkJQ4NMbHTwXqk4NkwDwQMNqXgG9r9fyHnzwNVs6zV5KRw==";
+      };
+    };
     "query-string-5.1.1" = {
       name = "query-string";
       packageName = "query-string";
@@ -46827,13 +47718,13 @@ let
         sha512 = "b3w19IEXnt5auacLAbePVsqPyVQUwmuhJQrrWnVhm4pP8PAMg2U9vFHbAD9XYXXbMDjdLJs0x5NLqwTV8uFK4g==";
       };
     };
-    "quotation-2.0.2" = {
+    "quotation-2.0.3" = {
       name = "quotation";
       packageName = "quotation";
-      version = "2.0.2";
+      version = "2.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/quotation/-/quotation-2.0.2.tgz";
-        sha512 = "FeUlLe40ROXHVWLZkzmeR2PNYWdkvTXEXhW6FX8axRv1ODt8Gxed3APrE1Qb5i1n70ZzZGRmvs0jY3v/BRcJQQ==";
+        url = "https://registry.npmjs.org/quotation/-/quotation-2.0.3.tgz";
+        sha512 = "yEc24TEgCFLXx7D4JHJJkK4JFVtatO8fziwUxY4nB/Jbea9o9CVS3gt22mA0W7rPYAGW2fWzYDSOtD94PwOyqA==";
       };
     };
     "raf-3.3.2" = {
@@ -47259,6 +48150,15 @@ let
         sha512 = "DI1drPHbmBcUDWrJ7ull/F2Qb8HkwBncVx8/RpKYFSIACYaVRQReISYPdZz/mt1y1+qMCOrfReTopERmaxtP6w==";
       };
     };
+    "read-binary-file-arch-1.0.6" = {
+      name = "read-binary-file-arch";
+      packageName = "read-binary-file-arch";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read-binary-file-arch/-/read-binary-file-arch-1.0.6.tgz";
+        sha512 = "BNg9EN3DD3GsDXX7Aa8O4p92sryjkmzYYgmgTAc6CA4uGLEDzFfxOxugu21akOxpcXHiEgsYkC6nPsQvLLLmEg==";
+      };
+    };
     "read-cache-1.0.0" = {
       name = "read-cache";
       packageName = "read-cache";
@@ -47376,6 +48276,15 @@ let
         sha512 = "FCX1aT3GWyY658wzDICef4p+n0dB+ENRct8E/Qyvppj6xVpOYerBHfUu7OP5Rt1/393Tdglguf5ju5DEX4wZNg==";
       };
     };
+    "read-package-up-11.0.0" = {
+      name = "read-package-up";
+      packageName = "read-package-up";
+      version = "11.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read-package-up/-/read-package-up-11.0.0.tgz";
+        sha512 = "MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==";
+      };
+    };
     "read-pkg-1.1.0" = {
       name = "read-pkg";
       packageName = "read-pkg";
@@ -47439,6 +48348,15 @@ let
         sha512 = "PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==";
       };
     };
+    "read-pkg-9.0.1" = {
+      name = "read-pkg";
+      packageName = "read-pkg";
+      version = "9.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz";
+        sha512 = "9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==";
+      };
+    };
     "read-pkg-up-1.0.1" = {
       name = "read-pkg-up";
       packageName = "read-pkg-up";
@@ -47772,13 +48690,13 @@ let
         sha512 = "LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==";
       };
     };
-    "reflect-metadata-0.1.13" = {
+    "reflect-metadata-0.1.14" = {
       name = "reflect-metadata";
       packageName = "reflect-metadata";
-      version = "0.1.13";
+      version = "0.1.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz";
-        sha512 = "Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==";
+        url = "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.14.tgz";
+        sha512 = "ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==";
       };
     };
     "reflect.getprototypeof-1.0.4" = {
@@ -47826,13 +48744,13 @@ let
         sha512 = "kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==";
       };
     };
-    "regenerator-runtime-0.14.0" = {
+    "regenerator-runtime-0.14.1" = {
       name = "regenerator-runtime";
       packageName = "regenerator-runtime";
-      version = "0.14.0";
+      version = "0.14.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz";
-        sha512 = "srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==";
+        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz";
+        sha512 = "dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==";
       };
     };
     "regenerator-transform-0.15.2" = {
@@ -47880,6 +48798,15 @@ let
         sha512 = "sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==";
       };
     };
+    "regexparam-2.0.2" = {
+      name = "regexparam";
+      packageName = "regexparam";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regexparam/-/regexparam-2.0.2.tgz";
+        sha512 = "A1PeDEYMrkLrfyOwv2jwihXbo9qxdGD3atBYQA9JJgreAx8/7rC6IUkWOw2NQlOxLp2wL0ifQbh1HuidDfYA6w==";
+      };
+    };
     "regexpp-3.2.0" = {
       name = "regexpp";
       packageName = "regexpp";
@@ -49158,6 +50085,15 @@ let
         sha512 = "40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==";
       };
     };
+    "resq-1.11.0" = {
+      name = "resq";
+      packageName = "resq";
+      version = "1.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resq/-/resq-1.11.0.tgz";
+        sha512 = "G10EBz+zAAy3zUd/CDoBbXRL6ia9kOo3xRHrMDsHljI0GDkhYlyjwoCx5+3eCC4swi1uCoZQhskuJkj7Gp57Bw==";
+      };
+    };
     "restify-4.0.3" = {
       name = "restify";
       packageName = "restify";
@@ -49320,6 +50256,15 @@ let
         sha512 = "V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==";
       };
     };
+    "rgb2hex-0.2.5" = {
+      name = "rgb2hex";
+      packageName = "rgb2hex";
+      version = "0.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rgb2hex/-/rgb2hex-0.2.5.tgz";
+        sha512 = "22MOP1Rh7sAo1BZpDG6R5RFYzR2lYEgwq7HEmyW2qcsOqR2lQKmn+O//xV3YG/0rrhMC6KVX2hU+ZXuaw9a5bw==";
+      };
+    };
     "right-align-0.1.3" = {
       name = "right-align";
       packageName = "right-align";
@@ -49383,6 +50328,15 @@ let
         sha512 = "Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==";
       };
     };
+    "rimraf-5.0.5" = {
+      name = "rimraf";
+      packageName = "rimraf";
+      version = "5.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz";
+        sha512 = "CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==";
+      };
+    };
     "ripemd160-2.0.2" = {
       name = "ripemd160";
       packageName = "ripemd160";
@@ -49428,6 +50382,15 @@ let
         sha512 = "oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==";
       };
     };
+    "rollup-4.9.4" = {
+      name = "rollup";
+      packageName = "rollup";
+      version = "4.9.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rollup/-/rollup-4.9.4.tgz";
+        sha512 = "2ztU7pY/lrQyXSCnnoU4ICjT/tCG9cdH3/G25ERqE3Lst6vl2BCM5hL2Nw+sslAvAf+ccKsAq1SkKQALyqhR7g==";
+      };
+    };
     "rollup-plugin-inject-3.0.2" = {
       name = "rollup-plugin-inject";
       packageName = "rollup-plugin-inject";
@@ -49689,6 +50652,15 @@ let
         sha512 = "xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==";
       };
     };
+    "safaridriver-0.1.2" = {
+      name = "safaridriver";
+      packageName = "safaridriver";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safaridriver/-/safaridriver-0.1.2.tgz";
+        sha512 = "4R309+gWflJktzPXBQCobbWEHlzC4aK3a+Ov3tz2Ib2aBxiwd11phkdIBH1l0EO22x24CJMUQkpKFumRriCSRg==";
+      };
+    };
     "safe-array-concat-1.0.1" = {
       name = "safe-array-concat";
       packageName = "safe-array-concat";
@@ -49833,13 +50805,13 @@ let
         sha512 = "pVlvK5ysevz8MzybRnDIa2YMxn0OJ7b9lDiWhMoaKPoJ7YkAg/7YtNjUgaYzElkwHxsw8dBMhaEn7UP6zxEwPg==";
       };
     };
-    "sass-1.69.5" = {
+    "sass-1.69.7" = {
       name = "sass";
       packageName = "sass";
-      version = "1.69.5";
+      version = "1.69.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sass/-/sass-1.69.5.tgz";
-        sha512 = "qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==";
+        url = "https://registry.npmjs.org/sass/-/sass-1.69.7.tgz";
+        sha512 = "rzj2soDeZ8wtE2egyLXgOOHQvaC2iosZrkF6v3EUG+tBwEvhqUCzm0VP3k9gHF9LXbSrRhT5SksoI56Iw8NPnQ==";
       };
     };
     "sass-formatter-0.7.8" = {
@@ -50175,13 +51147,13 @@ let
         sha512 = "Ny/iyOzSSa8M5ML46IAx3iXc6tfOsYU2R4AXi2UpHk60Zrgyq6eqPj/xiOfS0rRl/iiQ/rdJkVjw/5cdUyCntQ==";
       };
     };
-    "semver-intersect-1.4.0" = {
+    "semver-intersect-1.5.0" = {
       name = "semver-intersect";
       packageName = "semver-intersect";
-      version = "1.4.0";
+      version = "1.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.4.0.tgz";
-        sha512 = "d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==";
+        url = "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.5.0.tgz";
+        sha512 = "BDjWX7yCC0haX4W/zrnV2JaMpVirwaEkGOBmgRQtH++F1N3xl9v7k9H44xfTqwl+yLNNSbMKosoVSTIiJVQ2Pw==";
       };
     };
     "semver-regex-4.0.5" = {
@@ -50247,13 +51219,31 @@ let
         sha512 = "eDqaz4MasTn6Mp3dagKzIbiNsJpgpueMEQqCJeN9F9XQRFLDGFJ0kX8R3uMp+mU7J58dWjr4q6eks/nUX/vnJQ==";
       };
     };
-    "sentence-splitter-4.3.0" = {
+    "sentence-splitter-4.4.1" = {
       name = "sentence-splitter";
       packageName = "sentence-splitter";
-      version = "4.3.0";
+      version = "4.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sentence-splitter/-/sentence-splitter-4.3.0.tgz";
-        sha512 = "srJOMqv7JeEmsbVa/N64ULey2N6/OuZzeKWn2Zrj0DiTBlU930JGr/rKKlKQRigzXtLMOtl32/Gm5G3HW8/ULA==";
+        url = "https://registry.npmjs.org/sentence-splitter/-/sentence-splitter-4.4.1.tgz";
+        sha512 = "4Jks7qn5nOeY5g++wlWbLCKclo2XxT7DBrLYo68UNdP8UEWUpUNH5VgKTEd0QlTo2cYBggtVk0NkvsRhoCZdsA==";
+      };
+    };
+    "sentence-splitter-5.0.0" = {
+      name = "sentence-splitter";
+      packageName = "sentence-splitter";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sentence-splitter/-/sentence-splitter-5.0.0.tgz";
+        sha512 = "9Mvf7L8vwpPzkH0/HtXzCbmVkyj4aQXdeG7h8ighRvO0hvcZEy2OUEjeIlnM/z4EX4vBacEfpESC65Oa2rWOig==";
+      };
+    };
+    "serialize-error-11.0.3" = {
+      name = "serialize-error";
+      packageName = "serialize-error";
+      version = "11.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serialize-error/-/serialize-error-11.0.3.tgz";
+        sha512 = "2G2y++21dhj2R7iHAdd0FIzjGwuKZld+7Pl/bTU6YIkrC2ZMbVUjm+luj6A6V34Rv9XfKJDKpTWu9W4Gse1D9g==";
       };
     };
     "serialize-error-2.1.0" = {
@@ -50697,6 +51687,15 @@ let
         sha512 = "q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==";
       };
     };
+    "siginfo-2.0.0" = {
+      name = "siginfo";
+      packageName = "siginfo";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz";
+        sha512 = "ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==";
+      };
+    };
     "signal-exit-3.0.7" = {
       name = "signal-exit";
       packageName = "signal-exit";
@@ -50814,15 +51813,6 @@ let
         sha512 = "Ck+rcjVaE1HotraRAS8u/+xgTvToTuoMkT9/l9lvuP5jftwnYUp6DwuJzsKErHgfyRk8IB8pqGHWEbM3tLgV1w==";
       };
     };
-    "simple-git-3.21.0" = {
-      name = "simple-git";
-      packageName = "simple-git";
-      version = "3.21.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/simple-git/-/simple-git-3.21.0.tgz";
-        sha512 = "oTzw9248AF5bDTMk9MrxsRzEzivMlY+DWH0yWS4VYpMhNLhDWnN06pCtaUyPnqv/FpsdeNmRqmZugMABHRPdDA==";
-      };
-    };
     "simple-peer-6.4.4" = {
       name = "simple-peer";
       packageName = "simple-peer";
@@ -50922,6 +51912,15 @@ let
         sha512 = "awzaaIPtYFdexLr6TBpcZSGPB6D1RInNO/qNetgaJloPDF/D0GkVtLvGEp8InfmLV7CyLyQ5fIRP+tVN/JmWQA==";
       };
     };
+    "sirv-2.0.4" = {
+      name = "sirv";
+      packageName = "sirv";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz";
+        sha512 = "94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==";
+      };
+    };
     "sisteransi-1.0.5" = {
       name = "sisteransi";
       packageName = "sisteransi";
@@ -51201,13 +52200,13 @@ let
         sha512 = "KMcaAi4l/8+xEjkRICl6ak8ySoxsYG+gG6/XfRCPJPQ/haCRIJBTL4wIl8YCsmtaBovcAXGLOShyVWQ/FG8GZA==";
       };
     };
-    "socket.io-4.7.2" = {
+    "socket.io-4.7.3" = {
       name = "socket.io";
       packageName = "socket.io";
-      version = "4.7.2";
+      version = "4.7.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socket.io/-/socket.io-4.7.2.tgz";
-        sha512 = "bvKVS29/I5fl2FGLNHuXlQaUH/BlzX1IN6S+NKLNZpBsPZIDH+90eQmCs2Railn4YUiww4SzUedJ6+uzwFnKLw==";
+        url = "https://registry.npmjs.org/socket.io/-/socket.io-4.7.3.tgz";
+        sha512 = "SE+UIQXBQE+GPG2oszWMlsEmWtHVqw/h1VrYJGK5/MC7CH5p58N448HwIrtREcvR4jfdOJAY4ieQfxMr55qbbw==";
       };
     };
     "socket.io-adapter-0.2.0" = {
@@ -51264,13 +52263,13 @@ let
         sha512 = "lOO9clmdgssDykiOmVQQitwBAF3I6mYcQAo7hQ7AM6Ny5X7fp8hIJ3HcQs3Rjz4SoggoxA1OgrQyY8EgTbcPYw==";
       };
     };
-    "socket.io-client-4.7.2" = {
+    "socket.io-client-4.7.3" = {
       name = "socket.io-client";
       packageName = "socket.io-client";
-      version = "4.7.2";
+      version = "4.7.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.2.tgz";
-        sha512 = "vtA0uD4ibrYD793SOIAwlo8cj6haOeMHrGvwPxJsxH7CeIksqJ+3Zc06RvWTIFgiSqx4A3sOnTXpfAEE2Zyz6w==";
+        url = "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.3.tgz";
+        sha512 = "nU+ywttCyBitXIl9Xe0RSEfek4LneYkJxCeNnKCuhwoH4jGXO1ipIUw/VA/+Vvv2G1MTym11fzFC0SxkrcfXDw==";
       };
     };
     "socket.io-parser-2.1.2" = {
@@ -51462,6 +52461,15 @@ let
         sha512 = "GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==";
       };
     };
+    "sort-on-6.0.0" = {
+      name = "sort-on";
+      packageName = "sort-on";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sort-on/-/sort-on-6.0.0.tgz";
+        sha512 = "d51VlJWoFQjp+cIZRyNusCyJdP5pLAw+H+sC4C2q6RhPBv+RAb/QXXck5q3Kdm7h/ot/kD2AlpGPDee8v+0qiA==";
+      };
+    };
     "sorted-array-functions-1.3.0" = {
       name = "sorted-array-functions";
       packageName = "sorted-array-functions";
@@ -51903,15 +52911,6 @@ let
         sha512 = "Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==";
       };
     };
-    "sprintf-kit-2.0.1" = {
-      name = "sprintf-kit";
-      packageName = "sprintf-kit";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/sprintf-kit/-/sprintf-kit-2.0.1.tgz";
-        sha512 = "2PNlcs3j5JflQKcg4wpdqpZ+AjhQJ2OZEo34NXDtlB0tIPG84xaaXhpA8XFacFiwjKA4m49UOYG83y3hbMn/gQ==";
-      };
-    };
     "sqlite3-4.1.0" = {
       name = "sqlite3";
       packageName = "sqlite3";
@@ -52065,6 +53064,15 @@ let
         sha512 = "XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==";
       };
     };
+    "stackback-0.0.2" = {
+      name = "stackback";
+      packageName = "stackback";
+      version = "0.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz";
+        sha512 = "1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==";
+      };
+    };
     "stackframe-1.3.4" = {
       name = "stackframe";
       packageName = "stackframe";
@@ -52137,6 +53145,15 @@ let
         sha512 = "RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==";
       };
     };
+    "std-env-3.7.0" = {
+      name = "std-env";
+      packageName = "std-env";
+      version = "3.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz";
+        sha512 = "JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==";
+      };
+    };
     "stdin-discarder-0.1.0" = {
       name = "stdin-discarder";
       packageName = "stdin-discarder";
@@ -52164,6 +53181,15 @@ let
         sha512 = "EEHMVYHNXFHfGtgjNITnka0aHhiAlo93F7z2/Pwd+g0teG9CnM3JIINM7hVVB5/rhw9voufD7Wukwgtw2uqh6w==";
       };
     };
+    "steno-4.0.2" = {
+      name = "steno";
+      packageName = "steno";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/steno/-/steno-4.0.2.tgz";
+        sha512 = "yhPIQXjrlt1xv7dyPQg2P17URmXbuM5pdGkpiMB3RenprfiBlvK415Lctfe0eshk90oA7/tNq7WEiMK8RSP39A==";
+      };
+    };
     "stop-iteration-iterator-1.0.0" = {
       name = "stop-iteration-iterator";
       packageName = "stop-iteration-iterator";
@@ -52299,15 +53325,6 @@ let
         sha512 = "bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==";
       };
     };
-    "stream-promise-3.2.0" = {
-      name = "stream-promise";
-      packageName = "stream-promise";
-      version = "3.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/stream-promise/-/stream-promise-3.2.0.tgz";
-        sha512 = "P+7muTGs2C8yRcgJw/PPt61q7O517tDHiwYEzMWo1GSBCcZedUMT/clz7vUNsSxFphIlJ6QUL4GexQKlfJoVtA==";
-      };
-    };
     "stream-shift-1.0.1" = {
       name = "stream-shift";
       packageName = "stream-shift";
@@ -52416,13 +53433,13 @@ let
         sha512 = "Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==";
       };
     };
-    "streamx-2.15.5" = {
+    "streamx-2.15.6" = {
       name = "streamx";
       packageName = "streamx";
-      version = "2.15.5";
+      version = "2.15.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/streamx/-/streamx-2.15.5.tgz";
-        sha512 = "9thPGMkKC2GctCzyCUjME3yR03x2xNo0GPKGkRw2UMYN+gqWa9uqpyNWhmsNCutU5zHmkUum0LsCRQTXUgUCAg==";
+        url = "https://registry.npmjs.org/streamx/-/streamx-2.15.6.tgz";
+        sha512 = "q+vQL4AAz+FdfT137VF69Cc/APqUbxy+MDOImRrMvchJpigHj9GksgDU2LYbO9rx7RX6osWgxJB2WxhYv4SZAw==";
       };
     };
     "strict-uri-encode-1.1.0" = {
@@ -52884,6 +53901,15 @@ let
         sha512 = "6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==";
       };
     };
+    "strip-literal-1.3.0" = {
+      name = "strip-literal";
+      packageName = "strip-literal";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz";
+        sha512 = "PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==";
+      };
+    };
     "strip-outer-1.0.1" = {
       name = "strip-outer";
       packageName = "strip-outer";
@@ -52983,13 +54009,13 @@ let
         sha512 = "sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==";
       };
     };
-    "stylehacks-6.0.0" = {
+    "stylehacks-6.0.2" = {
       name = "stylehacks";
       packageName = "stylehacks";
-      version = "6.0.0";
+      version = "6.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stylehacks/-/stylehacks-6.0.0.tgz";
-        sha512 = "+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==";
+        url = "https://registry.npmjs.org/stylehacks/-/stylehacks-6.0.2.tgz";
+        sha512 = "00zvJGnCu64EpMjX8b5iCZ3us2Ptyw8+toEkb92VdmkEaRaSGBNKAoK6aWZckhXxmQP8zWiTaFaiMGIU8Ve8sg==";
       };
     };
     "stylelint-13.13.1" = {
@@ -53001,13 +54027,13 @@ let
         sha512 = "Mv+BQr5XTUrKqAXmpqm6Ddli6Ief+AiPZkRsIrAoUKFuq/ElkUh9ZMYxXD0iQNZ5ADghZKLOWz1h7hTClB7zgQ==";
       };
     };
-    "stylis-4.3.0" = {
+    "stylis-4.3.1" = {
       name = "stylis";
       packageName = "stylis";
-      version = "4.3.0";
+      version = "4.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stylis/-/stylis-4.3.0.tgz";
-        sha512 = "E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==";
+        url = "https://registry.npmjs.org/stylis/-/stylis-4.3.1.tgz";
+        sha512 = "EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==";
       };
     };
     "stylus-0.55.0" = {
@@ -53055,13 +54081,13 @@ let
         sha512 = "dxdemxFFB0ppCLg10FTtRqH/31FNRL1y1BQv8209MK5I4CwALb7iihQg+7p65lFcIl8MHatINWBLOqpgU4Kyyw==";
       };
     };
-    "sucrase-3.34.0" = {
+    "sucrase-3.35.0" = {
       name = "sucrase";
       packageName = "sucrase";
-      version = "3.34.0";
+      version = "3.35.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz";
-        sha512 = "70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==";
+        url = "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz";
+        sha512 = "8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==";
       };
     };
     "sudo-prompt-8.2.5" = {
@@ -53163,15 +54189,6 @@ let
         sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==";
       };
     };
-    "supports-color-6.1.0" = {
-      name = "supports-color";
-      packageName = "supports-color";
-      version = "6.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz";
-        sha512 = "qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==";
-      };
-    };
     "supports-color-7.2.0" = {
       name = "supports-color";
       packageName = "supports-color";
@@ -53244,40 +54261,40 @@ let
         sha512 = "vzSyuGr3eEoAtT/A6bmajosJZIUWySzY2CzB3w2pgPvnkUjGqlDnsNnA0PMO+mMAhuyMul6C2uuZzY6ELSkzyA==";
       };
     };
-    "svelte-4.2.7" = {
+    "svelte-4.2.8" = {
       name = "svelte";
       packageName = "svelte";
-      version = "4.2.7";
+      version = "4.2.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/svelte/-/svelte-4.2.7.tgz";
-        sha512 = "UExR1KS7raTdycsUrKLtStayu4hpdV3VZQgM0akX8XbXgLBlosdE/Sf3crOgyh9xIjqSYB3UEBuUlIQKRQX2hg==";
+        url = "https://registry.npmjs.org/svelte/-/svelte-4.2.8.tgz";
+        sha512 = "hU6dh1MPl8gh6klQZwK/n73GiAHiR95IkFsesLPbMeEZi36ydaXL/ZAb4g9sayT0MXzpxyZjR28yderJHxcmYA==";
       };
     };
-    "svelte-5.0.0-next.9" = {
+    "svelte-5.0.0-next.29" = {
       name = "svelte";
       packageName = "svelte";
-      version = "5.0.0-next.9";
+      version = "5.0.0-next.29";
       src = fetchurl {
-        url = "https://registry.npmjs.org/svelte/-/svelte-5.0.0-next.9.tgz";
-        sha512 = "IX41fQvu56U1XHR1oMaq8S5B23HWK2j4jvcZv4+85xO9xpRoT9i7cX7K272USUgsjzYqCp3I/w5dg6Xrx51aWQ==";
+        url = "https://registry.npmjs.org/svelte/-/svelte-5.0.0-next.29.tgz";
+        sha512 = "YO1LZH41YzVgSXlLVLu/rqhNjMTY6Exh85rjOIhu56B2uNzFrDkQ7unz9rCR4ln4I8Y6vMSIEe+BwTIvjnWU1A==";
       };
     };
-    "svelte-preprocess-5.1.0" = {
+    "svelte-preprocess-5.1.3" = {
       name = "svelte-preprocess";
       packageName = "svelte-preprocess";
-      version = "5.1.0";
+      version = "5.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.1.0.tgz";
-        sha512 = "EkErPiDzHAc0k2MF5m6vBNmRUh338h2myhinUw/xaqsLs7/ZvsgREiLGj03VrSzbY/TB5ZXgBOsKraFee5yceA==";
+        url = "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.1.3.tgz";
+        sha512 = "xxAkmxGHT+J/GourS5mVJeOXZzne1FR5ljeOUAMXUkfEhkLEllRreXpbl3dIYJlcJRfL1LO1uIAPpBpBfiqGPw==";
       };
     };
-    "svelte2tsx-0.6.25" = {
+    "svelte2tsx-0.6.27" = {
       name = "svelte2tsx";
       packageName = "svelte2tsx";
-      version = "0.6.25";
+      version = "0.6.27";
       src = fetchurl {
-        url = "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.6.25.tgz";
-        sha512 = "hhBKL5X9gGvKQAZ9xLoHnbE9Yb00HxEZJlxcj2drxWK+Tpqcs/bnodjSfCGbqEhvNaUXYNbVL7s4dEXT+o0f6w==";
+        url = "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.6.27.tgz";
+        sha512 = "E1uPW1o6VsbRz+nUk3fznZ2lSmCITAJoNu8AYefWSvIwE2pSB01i5sId4RMbWNzfcwCQl1DcgGShCPcldl4rvg==";
       };
     };
     "sver-compat-1.5.0" = {
@@ -53325,13 +54342,13 @@ let
         sha512 = "+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==";
       };
     };
-    "svgo-3.0.4" = {
+    "svgo-3.2.0" = {
       name = "svgo";
       packageName = "svgo";
-      version = "3.0.4";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/svgo/-/svgo-3.0.4.tgz";
-        sha512 = "T+Xul3JwuJ6VGXKo/p2ndqx1ibxNKnLTvRc1ZTWKCfyKS/GgNjRZcYsK84fxTsy/izr91g/Rwx6fGnVgaFSI5g==";
+        url = "https://registry.npmjs.org/svgo/-/svgo-3.2.0.tgz";
+        sha512 = "4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==";
       };
     };
     "swagger2openapi-7.0.8" = {
@@ -53415,13 +54432,13 @@ let
         sha512 = "ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==";
       };
     };
-    "systeminformation-5.21.17" = {
+    "systeminformation-5.21.22" = {
       name = "systeminformation";
       packageName = "systeminformation";
-      version = "5.21.17";
+      version = "5.21.22";
       src = fetchurl {
-        url = "https://registry.npmjs.org/systeminformation/-/systeminformation-5.21.17.tgz";
-        sha512 = "JZYRCbIjk3WuBV59A9/rTla2rROX+aAJ9uo2Z1dI+bjieORcukClN8rlM1zE9NYKpULSbaGc+KKct/870lO0DA==";
+        url = "https://registry.npmjs.org/systeminformation/-/systeminformation-5.21.22.tgz";
+        sha512 = "gNHloAJSyS+sKWkwvmvozZ1eHrdVTEsynWMTY6lvLGBB70gflkBQFw8drXXr1oEXY84+Vr9tOOrN8xHZLJSycA==";
       };
     };
     "sywac-1.3.0" = {
@@ -53470,13 +54487,22 @@ let
         sha256 = "c824206b33da96cf5c01c21f1b133a0e3568e07ee4dcc9beefa8226864cd0272";
       };
     };
-    "tailwindcss-3.3.5" = {
+    "tailwindcss-3.3.7" = {
       name = "tailwindcss";
       packageName = "tailwindcss";
-      version = "3.3.5";
+      version = "3.3.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.5.tgz";
-        sha512 = "5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA==";
+        url = "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.7.tgz";
+        sha512 = "pjgQxDZPvyS/nG3ZYkyCvsbONJl7GdOejfm24iMt2ElYQQw8Jc4p0m8RdMp7mznPD0kUhfzwV3zAwa80qI0zmQ==";
+      };
+    };
+    "tailwindcss-3.4.1" = {
+      name = "tailwindcss";
+      packageName = "tailwindcss";
+      version = "3.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz";
+        sha512 = "qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==";
       };
     };
     "tapable-0.2.9" = {
@@ -53803,22 +54829,22 @@ let
         sha512 = "flFL3m4wuixmf6IfhFJd1YPiLiMuxEc8uHRM1buzIeZPm22Au2pDqBJQgdo7n1WfPU1ONFGv7YDwpFBmHGF6lg==";
       };
     };
-    "terser-5.24.0" = {
+    "terser-5.26.0" = {
       name = "terser";
       packageName = "terser";
-      version = "5.24.0";
+      version = "5.26.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/terser/-/terser-5.24.0.tgz";
-        sha512 = "ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==";
+        url = "https://registry.npmjs.org/terser/-/terser-5.26.0.tgz";
+        sha512 = "dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==";
       };
     };
-    "terser-webpack-plugin-5.3.9" = {
+    "terser-webpack-plugin-5.3.10" = {
       name = "terser-webpack-plugin";
       packageName = "terser-webpack-plugin";
-      version = "5.3.9";
+      version = "5.3.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz";
-        sha512 = "ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==";
+        url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz";
+        sha512 = "BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==";
       };
     };
     "test-exclude-6.0.0" = {
@@ -53884,22 +54910,22 @@ let
         sha512 = "yJmVbmyuUPOndKsxOijpx/G7mwybXXf4M10U2up0BeIZSN+6drUl+aSKAoC+RUHY7bG4ogLwRcmWoNG1lSrRIQ==";
       };
     };
-    "textlint-rule-helper-2.3.0" = {
+    "textlint-rule-helper-2.3.1" = {
       name = "textlint-rule-helper";
       packageName = "textlint-rule-helper";
-      version = "2.3.0";
+      version = "2.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/textlint-rule-helper/-/textlint-rule-helper-2.3.0.tgz";
-        sha512 = "Ug78Saahb/qVImttL0NSFyT5/JJ5wXvOPepR2pYAjNi54BsQAAz/hAyyEgKuYeR0+yjFb0KPhby4f880X5vqHA==";
+        url = "https://registry.npmjs.org/textlint-rule-helper/-/textlint-rule-helper-2.3.1.tgz";
+        sha512 = "b1bijvyiUmKinfFE5hkQMSXs3Ky8jyZ3Y6SOoTRJKV9HLL2LWUVFAUezO7z4FpAkVvYruDYWCwA5qWV8GmvyUw==";
       };
     };
-    "textlint-util-to-string-3.3.2" = {
+    "textlint-util-to-string-3.3.4" = {
       name = "textlint-util-to-string";
       packageName = "textlint-util-to-string";
-      version = "3.3.2";
+      version = "3.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/textlint-util-to-string/-/textlint-util-to-string-3.3.2.tgz";
-        sha512 = "TCnHX5xGDWIGQpcusLrctodid+n5t5G6ft9+KAVad+GmrOOkk9IiPej8FwH9Vq/uk1j44yTB20YYja0YnQ+z/w==";
+        url = "https://registry.npmjs.org/textlint-util-to-string/-/textlint-util-to-string-3.3.4.tgz";
+        sha512 = "XF4Qfw0ES+czKy03BwuvBUoXC8NAg920VuRxW0pd72fW76zMeMbPI/bRN5PHq3SbCdOm7U69/Pk+DX34xqIYqA==";
       };
     };
     "thelounge-3.3.0" = {
@@ -53992,15 +55018,6 @@ let
         sha512 = "IdMH1bUkVJdJjM7o8v83Mv4QvVPdkAofur20STl2Bbw9uMuuS/bT/PZURkEdZsy9XC/1ZXWgZ1wIL9nvouGaEg==";
       };
     };
-    "throat-5.0.0" = {
-      name = "throat";
-      packageName = "throat";
-      version = "5.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz";
-        sha512 = "fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==";
-      };
-    };
     "throat-6.0.2" = {
       name = "throat";
       packageName = "throat";
@@ -54163,15 +55180,6 @@ let
         sha512 = "PIxwAupJZiYU4JmVZYwXp9FKsHMXb5h0ZEFyuXTAn8WLHOlcij+FEcbrvDsom1o5dr1YggEtFbECvGCW2sT53Q==";
       };
     };
-    "timers-ext-0.1.7" = {
-      name = "timers-ext";
-      packageName = "timers-ext";
-      version = "0.1.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz";
-        sha512 = "b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==";
-      };
-    };
     "timm-1.7.1" = {
       name = "timm";
       packageName = "timm";
@@ -54190,6 +55198,15 @@ let
         sha512 = "qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==";
       };
     };
+    "tinybench-2.5.1" = {
+      name = "tinybench";
+      packageName = "tinybench";
+      version = "2.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tinybench/-/tinybench-2.5.1.tgz";
+        sha512 = "65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==";
+      };
+    };
     "tinycolor-0.0.1" = {
       name = "tinycolor";
       packageName = "tinycolor";
@@ -54217,6 +55234,33 @@ let
         sha512 = "8nIfc2vgQ4TeLnk2lFj4tRLvvJwEfQuabdsmvDdQPT0xlk9TaNtpGd6nNRxXoK6vQhN6RSzj+Cnp5tTQmpxmbw==";
       };
     };
+    "tinypool-0.7.0" = {
+      name = "tinypool";
+      packageName = "tinypool";
+      version = "0.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tinypool/-/tinypool-0.7.0.tgz";
+        sha512 = "zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==";
+      };
+    };
+    "tinypool-0.8.1" = {
+      name = "tinypool";
+      packageName = "tinypool";
+      version = "0.8.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tinypool/-/tinypool-0.8.1.tgz";
+        sha512 = "zBTCK0cCgRROxvs9c0CGK838sPkeokNGdQVUUwHAbynHFlmyJYj825f/oRs528HaIJ97lo0pLIlDUzwN+IorWg==";
+      };
+    };
+    "tinyspy-2.2.0" = {
+      name = "tinyspy";
+      packageName = "tinyspy";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.0.tgz";
+        sha512 = "d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==";
+      };
+    };
     "titleize-3.0.0" = {
       name = "titleize";
       packageName = "titleize";
@@ -54514,6 +55558,15 @@ let
         sha512 = "F+3tYmXnpO2gyhZQ7o8yakELJH3FtKISI/FU0iWvchOWFUXiFnjbEBoumSzfcK1P71Qxzx2az4lVK4Dkq4KSew==";
       };
     };
+    "totalist-3.0.1" = {
+      name = "totalist";
+      packageName = "totalist";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz";
+        sha512 = "sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==";
+      };
+    };
     "touch-3.1.0" = {
       name = "touch";
       packageName = "touch";
@@ -54586,6 +55639,15 @@ let
         sha512 = "2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==";
       };
     };
+    "tr46-5.0.0" = {
+      name = "tr46";
+      packageName = "tr46";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz";
+        sha512 = "tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==";
+      };
+    };
     "trash-8.1.1" = {
       name = "trash";
       packageName = "trash";
@@ -54604,13 +55666,13 @@ let
         sha512 = "iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==";
       };
     };
-    "traverse-0.6.7" = {
+    "traverse-0.6.8" = {
       name = "traverse";
       packageName = "traverse";
-      version = "0.6.7";
+      version = "0.6.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/traverse/-/traverse-0.6.7.tgz";
-        sha512 = "/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==";
+        url = "https://registry.npmjs.org/traverse/-/traverse-0.6.8.tgz";
+        sha512 = "aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==";
       };
     };
     "tree-kill-1.2.2" = {
@@ -54793,6 +55855,15 @@ let
         sha512 = "NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==";
       };
     };
+    "ts-node-10.9.2" = {
+      name = "ts-node";
+      packageName = "ts-node";
+      version = "10.9.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz";
+        sha512 = "f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==";
+      };
+    };
     "ts-toolbelt-6.15.5" = {
       name = "ts-toolbelt";
       packageName = "ts-toolbelt";
@@ -54811,13 +55882,13 @@ let
         sha512 = "ghqN1b0puy3MhhviwO2kGF8SeMDNhEbnKxjK7h6+fvY9JAxqvXi8y5NAHSQv687OVboS2uZIByzGd45/YxrRHg==";
       };
     };
-    "tsconfig-paths-3.14.2" = {
+    "tsconfig-paths-3.15.0" = {
       name = "tsconfig-paths";
       packageName = "tsconfig-paths";
-      version = "3.14.2";
+      version = "3.15.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz";
-        sha512 = "o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==";
+        url = "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz";
+        sha512 = "2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==";
       };
     };
     "tsconfig-paths-4.2.0" = {
@@ -55036,13 +56107,13 @@ let
         sha512 = "vwz9tfvF7XN/jE0dGoBei3FXWuvll78ohzCZQuOb+ZjWrs3a0XhQVomJEb2Qh4VHTPNRO4GPZh0V7VRbiWwkRg==";
       };
     };
-    "tus-js-client-3.1.1" = {
+    "tus-js-client-3.1.3" = {
       name = "tus-js-client";
       packageName = "tus-js-client";
-      version = "3.1.1";
+      version = "3.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tus-js-client/-/tus-js-client-3.1.1.tgz";
-        sha512 = "SZzWP62jEFLmROSRZx+uoGLKqsYWMGK/m+PiNehPVWbCm7/S9zRIMaDxiaOcKdMnFno4luaqP5E+Y1iXXPjP0A==";
+        url = "https://registry.npmjs.org/tus-js-client/-/tus-js-client-3.1.3.tgz";
+        sha512 = "n9k6rI/nPOuP2TaqPG6Ogz3a3V1cSH9en7N0VH4gh95jmG8JA58TJzLms2lBfb7aKVb3fdUunqYEG3WnQnZRvQ==";
       };
     };
     "tv4-1.3.0" = {
@@ -55126,6 +56197,15 @@ let
         sha512 = "XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==";
       };
     };
+    "type-detect-4.0.8" = {
+      name = "type-detect";
+      packageName = "type-detect";
+      version = "4.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz";
+        sha512 = "0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==";
+      };
+    };
     "type-fest-0.12.0" = {
       name = "type-fest";
       packageName = "type-fest";
@@ -55225,6 +56305,15 @@ let
         sha512 = "yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==";
       };
     };
+    "type-fest-2.13.0" = {
+      name = "type-fest";
+      packageName = "type-fest";
+      version = "2.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-2.13.0.tgz";
+        sha512 = "lPfAm42MxE4/456+QyIaaVBAwgpJb6xZ8PRu09utnhPdWwcyj9vgy6Sq0Z5yNbJ21EdxB5dRU/Qg8bsyAMtlcw==";
+      };
+    };
     "type-fest-2.19.0" = {
       name = "type-fest";
       packageName = "type-fest";
@@ -55243,13 +56332,13 @@ let
         sha512 = "tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==";
       };
     };
-    "type-fest-4.8.2" = {
+    "type-fest-4.9.0" = {
       name = "type-fest";
       packageName = "type-fest";
-      version = "4.8.2";
+      version = "4.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/type-fest/-/type-fest-4.8.2.tgz";
-        sha512 = "mcvrCjixA5166hSrUoJgGb9gBQN4loMYyj9zxuMs/66ibHNEFd5JXMw37YVDx58L4/QID9jIzdTBB4mDwDJ6KQ==";
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-4.9.0.tgz";
+        sha512 = "KS/6lh/ynPGiHD/LnAobrEFq3Ad4pBzOlJ1wAnJx9N4EYoqFhMfLIBjUT2UEx4wg5ZE+cC1ob6DCSpppVo+rtg==";
       };
     };
     "type-is-1.6.18" = {
@@ -55414,22 +56503,22 @@ let
         sha512 = "mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==";
       };
     };
-    "typescript-5.3.2" = {
+    "typescript-5.3.3" = {
       name = "typescript";
       packageName = "typescript";
-      version = "5.3.2";
+      version = "5.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typescript/-/typescript-5.3.2.tgz";
-        sha512 = "6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==";
+        url = "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz";
+        sha512 = "pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==";
       };
     };
-    "typescript-5.4.0-dev.20231121" = {
+    "typescript-5.4.0-dev.20240107" = {
       name = "typescript";
       packageName = "typescript";
-      version = "5.4.0-dev.20231121";
+      version = "5.4.0-dev.20240107";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typescript/-/typescript-5.4.0-dev.20231121.tgz";
-        sha512 = "/JUU1WLbuTBKfivcYHR+gvBAjMdhj1r2+flrnh8z7wdy2MDQgxRzSlfktNsbaqoYsOVolVDAPAoHpxVIvJlEgA==";
+        url = "https://registry.npmjs.org/typescript/-/typescript-5.4.0-dev.20240107.tgz";
+        sha512 = "6EfwZFaO82JLhOUsgQ3+c4lHuYS4WAQ6xBC767qWwJGf7BKYYeSFUkSptSkNhWOdeCEhdooudx22mkU8LphAPg==";
       };
     };
     "typescript-auto-import-cache-0.2.1" = {
@@ -55441,13 +56530,13 @@ let
         sha512 = "FD5uYQSNkVTX4b3lvtifP+SR3bARWGmKe/uyp5BfuW2ZUCYG7vHKPddrteLU06Uh68woRaYIX+Sbs2nnySpGLw==";
       };
     };
-    "typescript-auto-import-cache-0.3.0" = {
+    "typescript-auto-import-cache-0.3.2" = {
       name = "typescript-auto-import-cache";
       packageName = "typescript-auto-import-cache";
-      version = "0.3.0";
+      version = "0.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typescript-auto-import-cache/-/typescript-auto-import-cache-0.3.0.tgz";
-        sha512 = "Rq6/q4O9iyqUdjvOoyas7x/Qf9nWUMeqpP3YeTaLA+uECgfy5wOhfOS+SW/+fZ/uI/ZcKaf+2/ZhFzXh8xfofQ==";
+        url = "https://registry.npmjs.org/typescript-auto-import-cache/-/typescript-auto-import-cache-0.3.2.tgz";
+        sha512 = "+laqe5SFL1vN62FPOOJSUDTZxtgsoOXjneYOXIpx5rQ4UMiN89NAtJLpqLqyebv9fgQ/IMeeTX+mQyRnwvJzvg==";
       };
     };
     "typescript-tslint-plugin-0.5.4" = {
@@ -55513,6 +56602,15 @@ let
         sha512 = "8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==";
       };
     };
+    "ufo-1.3.2" = {
+      name = "ufo";
+      packageName = "ufo";
+      version = "1.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz";
+        sha512 = "o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==";
+      };
+    };
     "uglify-js-2.8.29" = {
       name = "uglify-js";
       packageName = "uglify-js";
@@ -55747,13 +56845,13 @@ let
         sha512 = "cSb4bPFd5qgR7qr2jYAi0hlX9n5YKK2ONKkLFkxl+v/9BvC0sOpZjBHDBSXc5lWAf5ty9oZdRXytBIHzgUcerw==";
       };
     };
-    "undici-5.27.2" = {
+    "undici-5.28.2" = {
       name = "undici";
       packageName = "undici";
-      version = "5.27.2";
+      version = "5.28.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/undici/-/undici-5.27.2.tgz";
-        sha512 = "iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ==";
+        url = "https://registry.npmjs.org/undici/-/undici-5.28.2.tgz";
+        sha512 = "wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==";
       };
     };
     "undici-types-5.26.5" = {
@@ -55774,15 +56872,6 @@ let
         sha512 = "akOOQ/Yln8a2sgcLj4U0Jmx0R5jpIg2IUyRrWOzmEbjBtGzBdHtSeFKgoEcoH4KYIG/Pb8GQ/BwtYm0GCq1Sqg==";
       };
     };
-    "uni-global-1.0.0" = {
-      name = "uni-global";
-      packageName = "uni-global";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/uni-global/-/uni-global-1.0.0.tgz";
-        sha512 = "WWM3HP+siTxzIWPNUg7hZ4XO8clKi6NoCAJJWnuRL+BAqyFXF8gC03WNyTefGoUXYc47uYgXxpKLIEvo65PEHw==";
-      };
-    };
     "unicode-canonical-property-names-ecmascript-2.0.0" = {
       name = "unicode-canonical-property-names-ecmascript";
       packageName = "unicode-canonical-property-names-ecmascript";
@@ -55837,6 +56926,15 @@ let
         sha512 = "6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==";
       };
     };
+    "unicorn-magic-0.1.0" = {
+      name = "unicorn-magic";
+      packageName = "unicorn-magic";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz";
+        sha512 = "lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==";
+      };
+    };
     "unified-10.1.2" = {
       name = "unified";
       packageName = "unified";
@@ -55891,13 +56989,13 @@ let
         sha512 = "5+JDIs4hqKfHnJcVCxTid1yBoI/++FfF/1PFdSMpaftZZZY+qg2JFruRbf7PaIwa9KgLotXQV3gSjtY0IdcFGQ==";
       };
     };
-    "unified-engine-11.1.1" = {
+    "unified-engine-11.2.0" = {
       name = "unified-engine";
       packageName = "unified-engine";
-      version = "11.1.1";
+      version = "11.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unified-engine/-/unified-engine-11.1.1.tgz";
-        sha512 = "uVx/R+Q8V5wv5EPdPzBPPscSKpbqWeqqIc0lMfDcn3aS+QDENTpDY+wdPQ5oswuQSpPn/miuP0FspIwo19++IA==";
+        url = "https://registry.npmjs.org/unified-engine/-/unified-engine-11.2.0.tgz";
+        sha512 = "H9wEDpBSM0cpEUuuYAOIiPzLCVN0pjASZZ6FFNzgzYS/HHzl9tArk/ereOMGtcF8m8vgjzw+HrU3YN7oenT7Ww==";
       };
     };
     "unified-lint-rule-1.0.6" = {
@@ -56638,6 +57736,15 @@ let
         sha512 = "EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==";
       };
     };
+    "update-notifier-7.0.0" = {
+      name = "update-notifier";
+      packageName = "update-notifier";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/update-notifier/-/update-notifier-7.0.0.tgz";
+        sha512 = "Hv25Bh+eAbOLlsjJreVPOs4vd51rrtCrmhyOJtbpAojro34jS4KQaEp4/EvlHJX7jSO42VvEFpkastVyXyIsdQ==";
+      };
+    };
     "upnp-device-client-1.0.2" = {
       name = "upnp-device-client";
       packageName = "upnp-device-client";
@@ -56836,6 +57943,15 @@ let
         sha512 = "KMWqdlOcjCYdtIJpicDSFBQ8nFwS2i9sslAd6f4+CBGcU4gist2REnr2fxj2YocvJFxSF3ZOHLYLVZnUxv4BZQ==";
       };
     };
+    "userhome-1.0.0" = {
+      name = "userhome";
+      packageName = "userhome";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/userhome/-/userhome-1.0.0.tgz";
+        sha512 = "ayFKY3H+Pwfy4W98yPdtH1VqH4psDeyW8lYYFzfecR9d6hqLpqhecktvYR3SEEXt7vG0S1JEpciI3g94pMErig==";
+      };
+    };
     "username-5.1.0" = {
       name = "username";
       packageName = "username";
@@ -57106,15 +58222,6 @@ let
         sha512 = "+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==";
       };
     };
-    "v8-compile-cache-2.3.0" = {
-      name = "v8-compile-cache";
-      packageName = "v8-compile-cache";
-      version = "2.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz";
-        sha512 = "l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==";
-      };
-    };
     "v8-compile-cache-2.4.0" = {
       name = "v8-compile-cache";
       packageName = "v8-compile-cache";
@@ -57304,6 +58411,15 @@ let
         sha512 = "1IguabCfv5jGUwMg4d8V9Lf/yBxaUc1EXmRwHzV8pMSy6KUB0h7rh9gYU0ja+vOB7b5qygRwppqeL0cATrzLUw==";
       };
     };
+    "vega-5.27.0" = {
+      name = "vega";
+      packageName = "vega";
+      version = "5.27.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega/-/vega-5.27.0.tgz";
+        sha512 = "iYMQZYb2nlJBLCsUZ88pvun2sTcFcLE7GKJWisndLo+KYNMQIRePQ7X2FRuy8yvRRNxfO8XhjImh4OwxZvyYVA==";
+      };
+    };
     "vega-canvas-1.2.7" = {
       name = "vega-canvas";
       packageName = "vega-canvas";
@@ -57466,13 +58582,13 @@ let
         sha512 = "tyTlaaCpHN2Ik/PPKl/j9ThadBDjPtypqW1D7IsUSkzfoZ7RPlI2jwAaoj2C/YW5jFRbEOx3njmjogp48I5CvA==";
       };
     };
-    "vega-scenegraph-4.11.1" = {
+    "vega-scenegraph-4.11.2" = {
       name = "vega-scenegraph";
       packageName = "vega-scenegraph";
-      version = "4.11.1";
+      version = "4.11.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.11.1.tgz";
-        sha512 = "XXEy8zbLYATj6yuIz6PcSGxO/pob4DEYBHdwoN4tfB2Yz6/eModF0JJdlNsGWNxV27VO6EPtzpJEc5Ql/OOQNw==";
+        url = "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.11.2.tgz";
+        sha512 = "PXSvv/L7Ek+9mwOTPLpzgkXdfGCR+AcWV5aquPGrqCWoiIF49VJkKFNT1HWxj3RZJX0XKo2r7SuXvRBb9EJ1aA==";
       };
     };
     "vega-selections-5.4.2" = {
@@ -57502,13 +58618,13 @@ let
         sha512 = "z1qbgyX0Af2kQSGFbApwBbX2meenGvsoX8Nga8uyWN8VIbiySo/xqizz1KrP6NbB6R+x5egKmkjdnyNThPeEWA==";
       };
     };
-    "vega-transforms-4.11.0" = {
+    "vega-transforms-4.11.1" = {
       name = "vega-transforms";
       packageName = "vega-transforms";
-      version = "4.11.0";
+      version = "4.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.11.0.tgz";
-        sha512 = "BeDASz7s9pIFjcSBljJJb8Eg0to2VjU0DvS/UjCQQYtqlfmzz78/mZnHyC+mW06h58ZKN+1QrIfqTZ6uMB4ySw==";
+        url = "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.11.1.tgz";
+        sha512 = "DDbqEQnvy9/qEvv0bAKPqAuzgaNb7Lh2xKJFom2Yzx4tZHCl8dnKxC1lH9JnJlAMdtZuiNLPARUkf3pCNQ/olw==";
       };
     };
     "vega-typings-1.0.1" = {
@@ -57520,6 +58636,15 @@ let
         sha512 = "VYsezOoYU8lDWGX6m5g6+m48Icq5RhZ51ek4Gc2UJkz8WJpYlVeN81Ko/smQMLblcU5NTD4Ffu+Mb3EcnXpMZw==";
       };
     };
+    "vega-typings-1.1.0" = {
+      name = "vega-typings";
+      packageName = "vega-typings";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-typings/-/vega-typings-1.1.0.tgz";
+        sha512 = "uI6RWlMiGRhsgmw/LzJtjCc0kwhw2f0JpyNMTAnOy90kE4e4CiaZN5nJp8S9CcfcBoPEZHc166AOn2SSNrKn3A==";
+      };
+    };
     "vega-util-1.17.2" = {
       name = "vega-util";
       packageName = "vega-util";
@@ -57538,6 +58663,15 @@ let
         sha512 = "RoWxuoEMI7xVQJhPqNeLEHCezudsf3QkVMhH5tCovBqwBADQGqq9iWyax3ZzdyX1+P3eBgm7cnLvpqtN2hU8kA==";
       };
     };
+    "vega-view-5.12.0" = {
+      name = "vega-view";
+      packageName = "vega-view";
+      version = "5.12.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-view/-/vega-view-5.12.0.tgz";
+        sha512 = "T3GY7UJNVZGrCUrAmE/OCrkoJQyOT/2dCgXgy9EvDMVv/sdrn7o1TMKhSV18nIr0m5A7m4mgKwrmguAfROY85g==";
+      };
+    };
     "vega-view-transforms-4.5.9" = {
       name = "vega-view-transforms";
       packageName = "vega-view-transforms";
@@ -57799,13 +58933,22 @@ let
         sha512 = "NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==";
       };
     };
-    "vite-4.4.11" = {
+    "vite-4.4.12" = {
       name = "vite";
       packageName = "vite";
-      version = "4.4.11";
+      version = "4.4.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vite/-/vite-4.4.11.tgz";
-        sha512 = "ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==";
+        url = "https://registry.npmjs.org/vite/-/vite-4.4.12.tgz";
+        sha512 = "KtPlUbWfxzGVul8Nut8Gw2Qe8sBzWY+8QVc5SL8iRFnpnrcoCaNlzO40c1R6hPmcdTwIPEDkq0Y9+27a5tVbdQ==";
+      };
+    };
+    "vite-5.0.11" = {
+      name = "vite";
+      packageName = "vite";
+      version = "5.0.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vite/-/vite-5.0.11.tgz";
+        sha512 = "XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA==";
       };
     };
     "vite-code-inspector-plugin-0.1.9" = {
@@ -57817,6 +58960,42 @@ let
         sha512 = "49ZLkFS2ajDCZ0eXTKK0BG4G2yLMtXHjQUZ5ebx889sZm0O3qJzjhtzTITjOi37xjYFASWuIptqL98qEgYXhoA==";
       };
     };
+    "vite-node-0.34.6" = {
+      name = "vite-node";
+      packageName = "vite-node";
+      version = "0.34.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vite-node/-/vite-node-0.34.6.tgz";
+        sha512 = "nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==";
+      };
+    };
+    "vite-node-1.1.3" = {
+      name = "vite-node";
+      packageName = "vite-node";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vite-node/-/vite-node-1.1.3.tgz";
+        sha512 = "BLSO72YAkIUuNrOx+8uznYICJfTEbvBAmWClY3hpath5+h1mbPS5OMn42lrTxXuyCazVyZoDkSRnju78GiVCqA==";
+      };
+    };
+    "vitest-0.34.6" = {
+      name = "vitest";
+      packageName = "vitest";
+      version = "0.34.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vitest/-/vitest-0.34.6.tgz";
+        sha512 = "+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==";
+      };
+    };
+    "vitest-1.1.3" = {
+      name = "vitest";
+      packageName = "vitest";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vitest/-/vitest-1.1.3.tgz";
+        sha512 = "2l8om1NOkiA90/Y207PsEvJLYygddsOyr81wLQ20Ra8IlLKbyQncWsGZjnbkyG2KwwuTXLQjEPOJuxGMG8qJBQ==";
+      };
+    };
     "vizion-2.2.1" = {
       name = "vizion";
       packageName = "vizion";
@@ -57925,13 +59104,13 @@ let
         sha512 = "RWkO/c/A7iXhHEy3OuEqkCqavDjpD4NF2Ca8vjai+ZtEYNeHrm1ybTnBYLP4Ft1uXvvaaVtYA9HrDjD6+CUONg==";
       };
     };
-    "vscode-css-languageservice-6.2.10" = {
+    "vscode-css-languageservice-6.2.11" = {
       name = "vscode-css-languageservice";
       packageName = "vscode-css-languageservice";
-      version = "6.2.10";
+      version = "6.2.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.2.10.tgz";
-        sha512 = "sYUZPku4mQ06AWGCbMyjv2tdR6juBW6hTbVPFwbJvNVzdtEfBioQOgkdXg7yMJNWnXkvWSU1FL2kb4Vxu5Cdyw==";
+        url = "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.2.11.tgz";
+        sha512 = "qn49Wa6K94LnizpVxmlYrcPf1Cb36gq1nNueW0COhi4shylXBzET5wuDbH8ZWQlJD0HM5Mmnn7WE9vQVVs+ULA==";
       };
     };
     "vscode-emmet-helper-1.2.17" = {
@@ -57952,15 +59131,6 @@ let
         sha512 = "mIb5VMXM5jI97HzCk2eadI1K//rCEZXte0wBqA7PGXsyJH4KTyJUaYk9MR+mbfpUl2vMi3HZw9GUOLGYLc6l5w==";
       };
     };
-    "vscode-html-languageservice-5.0.7" = {
-      name = "vscode-html-languageservice";
-      packageName = "vscode-html-languageservice";
-      version = "5.0.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-5.0.7.tgz";
-        sha512 = "jX+7/kUXrdOaRT8vqYR/jLxrGDib+Far8I7n/A6apuEl88k+mhIHZPwc6ezuLeiCKUCaLG4b0dqFwjVa7QL3/w==";
-      };
-    };
     "vscode-html-languageservice-5.1.1" = {
       name = "vscode-html-languageservice";
       packageName = "vscode-html-languageservice";
@@ -58276,15 +59446,6 @@ let
         sha512 = "X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==";
       };
     };
-    "vscode-languageserver-textdocument-1.0.8" = {
-      name = "vscode-languageserver-textdocument";
-      packageName = "vscode-languageserver-textdocument";
-      version = "1.0.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz";
-        sha512 = "1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q==";
-      };
-    };
     "vscode-languageserver-types-3.14.0" = {
       name = "vscode-languageserver-types";
       packageName = "vscode-languageserver-types";
@@ -58447,13 +59608,13 @@ let
         sha512 = "AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==";
       };
     };
-    "vue-2.7.15" = {
+    "vue-2.7.16" = {
       name = "vue";
       packageName = "vue";
-      version = "2.7.15";
+      version = "2.7.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vue/-/vue-2.7.15.tgz";
-        sha512 = "a29fsXd2G0KMRqIFTpRgpSbWaNBK3lpCTOLuGLEDnlHWdjB8fwl6zyYZ8xCrqkJdatwZb4mGHiEfJjnw0Q6AwQ==";
+        url = "https://registry.npmjs.org/vue/-/vue-2.7.16.tgz";
+        sha512 = "4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==";
       };
     };
     "vue-codemod-0.0.5" = {
@@ -58501,13 +59662,13 @@ let
         sha512 = "q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg==";
       };
     };
-    "vue-template-compiler-2.7.15" = {
+    "vue-template-compiler-2.7.16" = {
       name = "vue-template-compiler";
       packageName = "vue-template-compiler";
-      version = "2.7.15";
+      version = "2.7.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.15.tgz";
-        sha512 = "yQxjxMptBL7UAog00O8sANud99C6wJF+7kgbcwqkvA38vCGF7HWE66w0ZFnS/kX5gSoJr/PQ4/oS3Ne2pW37Og==";
+        url = "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz";
+        sha512 = "AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==";
       };
     };
     "w3c-hr-time-1.0.2" = {
@@ -58546,6 +59707,24 @@ let
         sha512 = "d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==";
       };
     };
+    "w3c-xmlserializer-5.0.0" = {
+      name = "w3c-xmlserializer";
+      packageName = "w3c-xmlserializer";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz";
+        sha512 = "o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==";
+      };
+    };
+    "wait-port-1.1.0" = {
+      name = "wait-port";
+      packageName = "wait-port";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wait-port/-/wait-port-1.1.0.tgz";
+        sha512 = "3e04qkoN3LxTMLakdqeWth8nih8usyg+sf1Bgdf9wwUkp05iuK1eSY/QpLvscT/+F/gA89+LpUmmgBtesbqI2Q==";
+      };
+    };
     "walk-2.3.15" = {
       name = "walk";
       packageName = "walk";
@@ -58573,13 +59752,13 @@ let
         sha512 = "Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==";
       };
     };
-    "wavedrom-3.3.0" = {
+    "wavedrom-3.4.0" = {
       name = "wavedrom";
       packageName = "wavedrom";
-      version = "3.3.0";
+      version = "3.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/wavedrom/-/wavedrom-3.3.0.tgz";
-        sha512 = "vhX9+X8qYVD/Yeb/ERWbCl52GMuWJI/6zhOZVPgb9H9nGOTfNJSXjB8akuhtGrQolSzQVAuJ2DABGrgT750Z/Q==";
+        url = "https://registry.npmjs.org/wavedrom/-/wavedrom-3.4.0.tgz";
+        sha512 = "UJZsl5z0KXrrmsuz++ejKS+yuKMupni4/swLN7hA3LL+kyCE1PuiO1VOTe9I/RMlkbM2XsH3u88itQMYjxHp9w==";
       };
     };
     "wbuf-1.7.3" = {
@@ -58663,13 +59842,13 @@ let
         sha512 = "2njbTqZ6Q7ZqqK14YpK1GGmaZs3NmuGYF5b7abCXulUIWFSlSYcZ3NBJQRFcMiQDceD7vQknb8FUuvI1F7Qe/g==";
       };
     };
-    "web-streams-polyfill-3.2.1" = {
+    "web-streams-polyfill-3.3.2" = {
       name = "web-streams-polyfill";
       packageName = "web-streams-polyfill";
-      version = "3.2.1";
+      version = "3.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz";
-        sha512 = "e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==";
+        url = "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.2.tgz";
+        sha512 = "3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ==";
       };
     };
     "web-tree-sitter-0.20.5" = {
@@ -58699,13 +59878,13 @@ let
         sha512 = "6BjspCO9VriYy12z356nL6JBS0GYeEcA457YyRzD+dD6XYCQ75NKhcOHUMHentOE7OcVCIXXDvOm0jKFfQG2Gg==";
       };
     };
-    "web-worker-1.2.0" = {
+    "web-worker-1.3.0" = {
       name = "web-worker";
       packageName = "web-worker";
-      version = "1.2.0";
+      version = "1.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/web-worker/-/web-worker-1.2.0.tgz";
-        sha512 = "PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA==";
+        url = "https://registry.npmjs.org/web-worker/-/web-worker-1.3.0.tgz";
+        sha512 = "BSR9wyRsy/KOValMgd5kMyr3JzpdeoR9KVId8u5GVlTTAtNChlsE4yTxeY7zMdNSyOmoKBv8NH2qeRY9Tg+IaA==";
       };
     };
     "web3-utils-1.10.3" = {
@@ -58735,6 +59914,24 @@ let
         sha512 = "7FjigXNsBfopEj+5DV2nhNpfic2vumtjjgPmeDKk45z+MJwXKKfhPB7118Pfzrmh4jqOMST6Ch37iPAHoImg5g==";
       };
     };
+    "webdriver-8.27.0" = {
+      name = "webdriver";
+      packageName = "webdriver";
+      version = "8.27.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webdriver/-/webdriver-8.27.0.tgz";
+        sha512 = "n1IA+rR3u84XxU9swiKUM06BkEC0GDimfZkBML57cny+utQOUbdM/mBpqCUnkWX/RBz/p2EfHdKNyOs3/REaog==";
+      };
+    };
+    "webdriverio-8.27.0" = {
+      name = "webdriverio";
+      packageName = "webdriverio";
+      version = "8.27.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webdriverio/-/webdriverio-8.27.0.tgz";
+        sha512 = "Qh5VCiBjEmxnmXcL1QEFoDzFqTtaWKrXriuU5G0yHKCModGAt2G7IHTkAok3CpmkVJfZpEvY630aP1MvgDtFhw==";
+      };
+    };
     "webidl-conversions-3.0.1" = {
       name = "webidl-conversions";
       packageName = "webidl-conversions";
@@ -58906,13 +60103,22 @@ let
         sha512 = "p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==";
       };
     };
-    "whatwg-fetch-3.6.19" = {
+    "whatwg-encoding-3.1.1" = {
+      name = "whatwg-encoding";
+      packageName = "whatwg-encoding";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz";
+        sha512 = "6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==";
+      };
+    };
+    "whatwg-fetch-3.6.20" = {
       name = "whatwg-fetch";
       packageName = "whatwg-fetch";
-      version = "3.6.19";
+      version = "3.6.20";
       src = fetchurl {
-        url = "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.19.tgz";
-        sha512 = "d67JP4dHSbm2TrpFj8AbO8DnL1JXL5J9u0Kq2xW6d0TFDbCA3Muhdt8orXC22utleTVj7Prqt82baN6RBvnEgw==";
+        url = "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz";
+        sha512 = "EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==";
       };
     };
     "whatwg-mimetype-2.3.0" = {
@@ -58933,6 +60139,15 @@ let
         sha512 = "nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==";
       };
     };
+    "whatwg-mimetype-4.0.0" = {
+      name = "whatwg-mimetype";
+      packageName = "whatwg-mimetype";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz";
+        sha512 = "QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==";
+      };
+    };
     "whatwg-url-12.0.1" = {
       name = "whatwg-url";
       packageName = "whatwg-url";
@@ -58942,6 +60157,15 @@ let
         sha512 = "Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==";
       };
     };
+    "whatwg-url-14.0.0" = {
+      name = "whatwg-url";
+      packageName = "whatwg-url";
+      version = "14.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.0.0.tgz";
+        sha512 = "1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==";
+      };
+    };
     "whatwg-url-5.0.0" = {
       name = "whatwg-url";
       packageName = "whatwg-url";
@@ -58969,13 +60193,13 @@ let
         sha512 = "gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==";
       };
     };
-    "when-exit-2.1.1" = {
+    "when-exit-2.1.2" = {
       name = "when-exit";
       packageName = "when-exit";
-      version = "2.1.1";
+      version = "2.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/when-exit/-/when-exit-2.1.1.tgz";
-        sha512 = "XLipGldz/UcleuGaoQjbYuWwD+ICRnzIjlldtwTaTWr7aZz8yQW49rXk6MHQnh+KxOiWiJpM1vIyaxprOnlW4g==";
+        url = "https://registry.npmjs.org/when-exit/-/when-exit-2.1.2.tgz";
+        sha512 = "u9J+toaf3CCxCAzM/484qNAxQE75rFdVgiFEEV8Xps2gzYhf0tx73s1WXDQhkwV17E3MxRMz40m7Ekd2/121Lg==";
       };
     };
     "whet.extend-0.9.9" = {
@@ -59086,6 +60310,15 @@ let
         sha512 = "P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==";
       };
     };
+    "why-is-node-running-2.2.2" = {
+      name = "why-is-node-running";
+      packageName = "why-is-node-running";
+      version = "2.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz";
+        sha512 = "6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==";
+      };
+    };
     "wide-align-1.1.5" = {
       name = "wide-align";
       packageName = "wide-align";
@@ -59347,13 +60580,13 @@ let
         sha512 = "rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==";
       };
     };
-    "workerd-1.20231030.0" = {
+    "workerd-1.20231218.0" = {
       name = "workerd";
       packageName = "workerd";
-      version = "1.20231030.0";
+      version = "1.20231218.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workerd/-/workerd-1.20231030.0.tgz";
-        sha512 = "+FSW+d31f8RrjHanFf/R9A+Z0csf3OtsvzdPmAKuwuZm/5HrBv83cvG9fFeTxl7/nI6irUUXIRF9xcj/NomQzQ==";
+        url = "https://registry.npmjs.org/workerd/-/workerd-1.20231218.0.tgz";
+        sha512 = "AGIsDvqCrcwhoA9kb1hxOhVAe53/xJeaGZxL4FbYI9FvO17DZwrnqGq+6eqItJ6Cfw1ZLmf3BM+QdMWaL2bFWQ==";
       };
     };
     "workerpool-6.2.1" = {
@@ -59500,15 +60733,6 @@ let
         sha512 = "AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==";
       };
     };
-    "write-file-atomic-4.0.2" = {
-      name = "write-file-atomic";
-      packageName = "write-file-atomic";
-      version = "4.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz";
-        sha512 = "7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==";
-      };
-    };
     "write-file-atomic-5.0.1" = {
       name = "write-file-atomic";
       packageName = "write-file-atomic";
@@ -59653,13 +60877,13 @@ let
         sha512 = "x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==";
       };
     };
-    "ws-8.14.2" = {
+    "ws-8.16.0" = {
       name = "ws";
       packageName = "ws";
-      version = "8.14.2";
+      version = "8.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz";
-        sha512 = "wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==";
+        url = "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz";
+        sha512 = "HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==";
       };
     };
     "ws-8.5.0" = {
@@ -59815,6 +61039,15 @@ let
         sha512 = "ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==";
       };
     };
+    "xml-name-validator-5.0.0" = {
+      name = "xml-name-validator";
+      packageName = "xml-name-validator";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz";
+        sha512 = "EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==";
+      };
+    };
     "xml-parse-from-string-1.0.1" = {
       name = "xml-parse-from-string";
       packageName = "xml-parse-from-string";
@@ -60113,15 +61346,6 @@ let
         sha512 = "8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==";
       };
     };
-    "yaml-ast-parser-0.0.43" = {
-      name = "yaml-ast-parser";
-      packageName = "yaml-ast-parser";
-      version = "0.0.43";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz";
-        sha512 = "2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==";
-      };
-    };
     "yaml-front-matter-4.1.1" = {
       name = "yaml-front-matter";
       packageName = "yaml-front-matter";
@@ -60194,6 +61418,15 @@ let
         sha512 = "c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==";
       };
     };
+    "yargs-17.7.1" = {
+      name = "yargs";
+      packageName = "yargs";
+      version = "17.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz";
+        sha512 = "cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==";
+      };
+    };
     "yargs-17.7.2" = {
       name = "yargs";
       packageName = "yargs";
@@ -60536,13 +61769,13 @@ let
         sha512 = "9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==";
       };
     };
-    "zod-3.21.4" = {
-      name = "zod";
-      packageName = "zod";
-      version = "3.21.4";
+    "zip-stream-5.0.1" = {
+      name = "zip-stream";
+      packageName = "zip-stream";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/zod/-/zod-3.21.4.tgz";
-        sha512 = "m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==";
+        url = "https://registry.npmjs.org/zip-stream/-/zip-stream-5.0.1.tgz";
+        sha512 = "UfZ0oa0C8LI58wJ+moL46BDIMgCQbnsb+2PoiJYtonhBsMh2bq1eRBVkvjfVsqbEHd9/EgKPUuL9saSSsec8OA==";
       };
     };
     "zod-3.22.3" = {
@@ -60572,6 +61805,15 @@ let
         sha512 = "fjUZh4nQ1s6HMccgIeE0VP4QG/YRGPmyjO9sAh890aQKPEk3nqbfUXhMFaC+Dr5KvYBm8BCyvfpZf2jY9aGSsw==";
       };
     };
+    "zod-validation-error-1.3.1" = {
+      name = "zod-validation-error";
+      packageName = "zod-validation-error";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-1.3.1.tgz";
+        sha512 = "cNEXpla+tREtNdAnNKY4xKY1SGOn2yzyuZMu4O0RQylX9apRpUjNcPkEc3uHIAr5Ct7LenjZt6RzjEH6+JsqVQ==";
+      };
+    };
     "zwitch-1.0.5" = {
       name = "zwitch";
       packageName = "zwitch";
@@ -60596,15 +61838,15 @@ in
   "@angular/cli" = nodeEnv.buildNodePackage {
     name = "_at_angular_slash_cli";
     packageName = "@angular/cli";
-    version = "17.0.2";
+    version = "17.0.9";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@angular/cli/-/cli-17.0.2.tgz";
-      sha512 = "ebKFDtyRZHLKqr1f8cOKDWVybNPfo5JVctRWCJ+FghVDQARl6gsZaJG4twkf3DIgBaSShtHK4JSjTrHtG2RWjg==";
+      url = "https://registry.npmjs.org/@angular/cli/-/cli-17.0.9.tgz";
+      sha512 = "a1rLAu3TNU5d56ozBnx9UZchJDKC8qMvZL4ThJhcaTUJb0Cj//gqLJdNdMcB0p1Ve9lmmAQ3J17+2Xij1u3sNg==";
     };
     dependencies = [
-      sources."@angular-devkit/architect-0.1700.2"
-      sources."@angular-devkit/core-17.0.2"
-      sources."@angular-devkit/schematics-17.0.2"
+      sources."@angular-devkit/architect-0.1700.9"
+      sources."@angular-devkit/core-17.0.9"
+      sources."@angular-devkit/schematics-17.0.9"
       (sources."@isaacs/cliui-8.0.2" // {
         dependencies = [
           sources."ansi-regex-6.0.1"
@@ -60619,12 +61861,12 @@ in
       sources."@ljharb/through-2.3.11"
       sources."@npmcli/agent-2.2.0"
       sources."@npmcli/fs-3.1.0"
-      sources."@npmcli/git-5.0.3"
+      sources."@npmcli/git-5.0.4"
       sources."@npmcli/installed-package-contents-2.0.2"
       sources."@npmcli/node-gyp-3.0.0"
-      sources."@npmcli/promise-spawn-7.0.0"
-      sources."@npmcli/run-script-7.0.2"
-      sources."@schematics/angular-17.0.2"
+      sources."@npmcli/promise-spawn-7.0.1"
+      sources."@npmcli/run-script-7.0.3"
+      sources."@schematics/angular-17.0.9"
       sources."@sigstore/bundle-2.1.0"
       sources."@sigstore/protobuf-specs-0.2.1"
       sources."@sigstore/sign-2.2.0"
@@ -60654,7 +61896,7 @@ in
       sources."braces-3.0.2"
       sources."buffer-5.7.1"
       sources."builtins-5.0.1"
-      sources."cacache-18.0.0"
+      sources."cacache-18.0.2"
       sources."call-bind-1.0.5"
       sources."chalk-5.3.0"
       sources."chardet-0.7.0"
@@ -60662,7 +61904,7 @@ in
       sources."chownr-2.0.0"
       sources."clean-stack-2.2.0"
       sources."cli-cursor-3.1.0"
-      sources."cli-spinners-2.9.1"
+      sources."cli-spinners-2.9.2"
       sources."cli-width-4.1.0"
       (sources."cliui-8.0.1" // {
         dependencies = [
@@ -60718,7 +61960,7 @@ in
       sources."https-proxy-agent-7.0.2"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
-      sources."ignore-walk-6.0.3"
+      sources."ignore-walk-6.0.4"
       sources."imurmurhash-0.1.4"
       sources."indent-string-4.0.0"
       sources."inherits-2.0.4"
@@ -60738,7 +61980,7 @@ in
       sources."is-wsl-2.2.0"
       sources."isexe-3.1.1"
       sources."jackspeak-2.3.6"
-      sources."json-parse-even-better-errors-3.0.0"
+      sources."json-parse-even-better-errors-3.0.1"
       sources."json-schema-traverse-1.0.0"
       sources."jsonc-parser-3.2.0"
       sources."jsonparse-1.3.1"
@@ -60749,17 +61991,13 @@ in
           sources."is-unicode-supported-0.1.0"
         ];
       })
-      sources."lru-cache-10.0.3"
+      sources."lru-cache-10.1.0"
       sources."magic-string-0.30.5"
       sources."make-fetch-happen-13.0.0"
       sources."mimic-fn-2.1.0"
       sources."minimatch-9.0.3"
       sources."minipass-7.0.4"
-      (sources."minipass-collect-1.0.2" // {
-        dependencies = [
-          sources."minipass-3.3.6"
-        ];
-      })
+      sources."minipass-collect-2.0.1"
       sources."minipass-fetch-3.0.4"
       (sources."minipass-flush-1.0.5" // {
         dependencies = [
@@ -60798,7 +62036,7 @@ in
       sources."npm-install-checks-6.3.0"
       sources."npm-normalize-package-bin-3.0.1"
       sources."npm-package-arg-11.0.1"
-      sources."npm-packlist-8.0.0"
+      sources."npm-packlist-8.0.1"
       sources."npm-pick-manifest-9.0.0"
       sources."npm-registry-fetch-16.1.0"
       sources."onetime-5.1.2"
@@ -60907,10 +62145,10 @@ in
   "@antfu/ni" = nodeEnv.buildNodePackage {
     name = "_at_antfu_slash_ni";
     packageName = "@antfu/ni";
-    version = "0.21.10";
+    version = "0.21.12";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@antfu/ni/-/ni-0.21.10.tgz";
-      sha512 = "EHIUsdIKeBYSoo4rtLNl0Myzp0aMaaJHnx0i5OK9Q4HoYd82z21CyOghz7HAOQOxYVPy+zzLOUmM+L4SA5V/tQ==";
+      url = "https://registry.npmjs.org/@antfu/ni/-/ni-0.21.12.tgz";
+      sha512 = "2aDL3WUv8hMJb2L3r/PIQWsTLyq7RQr3v9xD16fiz6O8ys1xEyLhhTOv8gxtZvJiTzjTF5pHoArvRdesGL1DMQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -60925,13 +62163,13 @@ in
   "@astrojs/language-server" = nodeEnv.buildNodePackage {
     name = "_at_astrojs_slash_language-server";
     packageName = "@astrojs/language-server";
-    version = "2.5.2";
+    version = "2.5.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@astrojs/language-server/-/language-server-2.5.2.tgz";
-      sha512 = "O5SMzoQ65wSxA1KygreI9UJYmHpgt15bSYBxceHwqX7OCDM4Ek8mr6mZn45LGDtwM3dp1uup7kp8exfRPwIFbA==";
+      url = "https://registry.npmjs.org/@astrojs/language-server/-/language-server-2.5.5.tgz";
+      sha512 = "hk7a8S7bpf//BOA6mMjiYqi/eiYtGPfUfw59eVXdutdRFdwDHtu4jcsLu43ZaId56pAcE8qFjIvJxySvzcxiUA==";
     };
     dependencies = [
-      sources."@astrojs/compiler-2.3.2"
+      sources."@astrojs/compiler-2.4.0"
       sources."@emmetio/abbreviation-2.3.3"
       sources."@emmetio/css-abbreviation-2.1.8"
       sources."@emmetio/scanner-1.0.4"
@@ -60954,7 +62192,7 @@ in
       sources."braces-3.0.2"
       sources."emmet-2.4.6"
       sources."fast-glob-3.3.2"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."fill-range-7.0.1"
       sources."glob-parent-5.1.2"
       sources."is-extglob-2.1.1"
@@ -60967,8 +62205,8 @@ in
       sources."muggle-string-0.3.1"
       sources."path-browserify-1.0.1"
       sources."picomatch-2.3.1"
-      sources."prettier-3.1.0"
-      (sources."prettier-plugin-astro-0.12.2" // {
+      sources."prettier-3.1.1"
+      (sources."prettier-plugin-astro-0.12.3" // {
         dependencies = [
           sources."@astrojs/compiler-1.8.2"
         ];
@@ -60983,15 +62221,15 @@ in
       sources."suf-log-2.5.3"
       sources."to-regex-range-5.0.1"
       sources."typesafe-path-0.2.2"
-      sources."typescript-5.3.2"
-      sources."typescript-auto-import-cache-0.3.0"
+      sources."typescript-5.3.3"
+      sources."typescript-auto-import-cache-0.3.2"
       sources."volar-service-css-0.0.16"
       sources."volar-service-emmet-0.0.16"
       sources."volar-service-html-0.0.16"
       sources."volar-service-prettier-0.0.16"
       sources."volar-service-typescript-0.0.16"
       sources."volar-service-typescript-twoslash-queries-0.0.16"
-      sources."vscode-css-languageservice-6.2.10"
+      sources."vscode-css-languageservice-6.2.11"
       sources."vscode-html-languageservice-5.1.1"
       sources."vscode-jsonrpc-8.2.0"
       sources."vscode-languageserver-9.0.1"
@@ -61022,15 +62260,15 @@ in
     };
     dependencies = [
       sources."@ampproject/remapping-2.2.1"
-      sources."@babel/code-frame-7.23.4"
-      sources."@babel/compat-data-7.23.3"
-      (sources."@babel/core-7.23.3" // {
+      sources."@babel/code-frame-7.23.5"
+      sources."@babel/compat-data-7.23.5"
+      (sources."@babel/core-7.23.7" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
-      sources."@babel/generator-7.23.4"
-      (sources."@babel/helper-compilation-targets-7.22.15" // {
+      sources."@babel/generator-7.23.6"
+      (sources."@babel/helper-compilation-targets-7.23.6" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
@@ -61044,13 +62282,13 @@ in
       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.22.15"
-      sources."@babel/helpers-7.23.4"
+      sources."@babel/helper-validator-option-7.23.5"
+      sources."@babel/helpers-7.23.7"
       sources."@babel/highlight-7.23.4"
-      sources."@babel/parser-7.23.4"
+      sources."@babel/parser-7.23.6"
       sources."@babel/template-7.22.15"
-      sources."@babel/traverse-7.23.4"
-      sources."@babel/types-7.23.4"
+      sources."@babel/traverse-7.23.7"
+      sources."@babel/types-7.23.6"
       sources."@jridgewell/gen-mapping-0.3.3"
       sources."@jridgewell/resolve-uri-3.1.1"
       sources."@jridgewell/set-array-1.1.2"
@@ -61059,8 +62297,8 @@ in
       sources."ansi-styles-3.2.1"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."browserslist-4.22.1"
-      sources."caniuse-lite-1.0.30001563"
+      sources."browserslist-4.22.2"
+      sources."caniuse-lite-1.0.30001575"
       sources."chalk-2.4.2"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
@@ -61068,7 +62306,7 @@ in
       sources."concat-map-0.0.1"
       sources."convert-source-map-2.0.0"
       sources."debug-4.3.4"
-      sources."electron-to-chromium-1.4.589"
+      sources."electron-to-chromium-1.4.623"
       sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
       sources."fs-readdir-recursive-1.1.0"
@@ -61086,7 +62324,7 @@ in
       sources."make-dir-2.1.0"
       sources."minimatch-3.1.2"
       sources."ms-2.1.2"
-      sources."node-releases-2.0.13"
+      sources."node-releases-2.0.14"
       sources."once-1.4.0"
       sources."path-is-absolute-1.0.1"
       sources."picocolors-1.0.0"
@@ -61112,13 +62350,13 @@ in
   "@commitlint/cli" = nodeEnv.buildNodePackage {
     name = "_at_commitlint_slash_cli";
     packageName = "@commitlint/cli";
-    version = "18.4.3";
+    version = "18.4.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@commitlint/cli/-/cli-18.4.3.tgz";
-      sha512 = "zop98yfB3A6NveYAZ3P1Mb6bIXuCeWgnUfVNkH4yhIMQpQfzFwseadazOuSn0OOfTt0lWuFauehpm9GcqM5lww==";
+      url = "https://registry.npmjs.org/@commitlint/cli/-/cli-18.4.4.tgz";
+      sha512 = "Ro3wIo//fV3XiV1EkdpHog6huaEyNcUAVrSmtgKqYM5g982wOWmP4FXvEDFwRMVgz878CNBvvCc33dMZ5AQJ/g==";
     };
     dependencies = [
-      (sources."@babel/code-frame-7.23.4" // {
+      (sources."@babel/code-frame-7.23.5" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -61139,23 +62377,23 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."@commitlint/config-validator-18.4.3"
-      sources."@commitlint/ensure-18.4.3"
-      sources."@commitlint/execute-rule-18.4.3"
-      sources."@commitlint/format-18.4.3"
-      sources."@commitlint/is-ignored-18.4.3"
-      sources."@commitlint/lint-18.4.3"
-      sources."@commitlint/load-18.4.3"
-      sources."@commitlint/message-18.4.3"
-      sources."@commitlint/parse-18.4.3"
-      sources."@commitlint/read-18.4.3"
-      sources."@commitlint/resolve-extends-18.4.3"
-      sources."@commitlint/rules-18.4.3"
-      sources."@commitlint/to-lines-18.4.3"
-      sources."@commitlint/top-level-18.4.3"
-      sources."@commitlint/types-18.4.3"
+      sources."@commitlint/config-validator-18.4.4"
+      sources."@commitlint/ensure-18.4.4"
+      sources."@commitlint/execute-rule-18.4.4"
+      sources."@commitlint/format-18.4.4"
+      sources."@commitlint/is-ignored-18.4.4"
+      sources."@commitlint/lint-18.4.4"
+      sources."@commitlint/load-18.4.4"
+      sources."@commitlint/message-18.4.4"
+      sources."@commitlint/parse-18.4.4"
+      sources."@commitlint/read-18.4.4"
+      sources."@commitlint/resolve-extends-18.4.4"
+      sources."@commitlint/rules-18.4.4"
+      sources."@commitlint/to-lines-18.4.4"
+      sources."@commitlint/top-level-18.4.4"
+      sources."@commitlint/types-18.4.4"
       sources."@types/minimist-1.2.5"
-      sources."@types/node-18.18.11"
+      sources."@types/node-20.10.7"
       sources."@types/normalize-package-data-2.4.4"
       sources."JSONStream-1.3.5"
       sources."ajv-8.12.0"
@@ -61192,7 +62430,6 @@ in
       sources."execa-5.1.1"
       sources."fast-deep-equal-3.1.3"
       sources."find-up-5.0.0"
-      sources."fs-extra-11.1.1"
       sources."function-bind-1.1.2"
       sources."get-caller-file-2.0.5"
       sources."get-stream-6.0.1"
@@ -61203,7 +62440,6 @@ in
         ];
       })
       sources."global-dirs-0.1.1"
-      sources."graceful-fs-4.2.11"
       sources."hard-rejection-2.1.0"
       sources."has-flag-4.0.0"
       sources."hasown-2.0.0"
@@ -61230,7 +62466,6 @@ in
       sources."js-yaml-4.1.0"
       sources."json-parse-even-better-errors-2.3.1"
       sources."json-schema-traverse-1.0.0"
-      sources."jsonfile-6.1.0"
       sources."jsonparse-1.3.1"
       sources."kind-of-6.0.3"
       sources."lines-and-columns-1.2.4"
@@ -61314,9 +62549,8 @@ in
       sources."through2-4.0.2"
       sources."trim-newlines-3.0.1"
       sources."type-fest-0.18.1"
-      sources."typescript-5.3.2"
+      sources."typescript-5.3.3"
       sources."undici-types-5.26.5"
-      sources."universalify-2.0.1"
       sources."uri-js-4.4.1"
       sources."util-deprecate-1.0.2"
       sources."validate-npm-package-license-3.0.4"
@@ -61345,10 +62579,10 @@ in
   "@commitlint/config-conventional" = nodeEnv.buildNodePackage {
     name = "_at_commitlint_slash_config-conventional";
     packageName = "@commitlint/config-conventional";
-    version = "18.4.3";
+    version = "18.4.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-18.4.3.tgz";
-      sha512 = "729eRRaNta7JZF07qf6SAGSghoDEp9mH7yHU0m7ff0q89W97wDrWCyZ3yoV3mcQJwbhlmVmZPTkPcm7qiAu8WA==";
+      url = "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-18.4.4.tgz";
+      sha512 = "Bz3sPQSboBN+Et/KyZrR+OJ3z9PrHDw7Bls0/hv94PmuHBtMq1dCGxS9XzTGzxeMNlytCC4kxF083tbhPljl3Q==";
     };
     dependencies = [
       sources."array-ify-1.0.0"
@@ -61370,10 +62604,10 @@ in
   "@microsoft/rush" = nodeEnv.buildNodePackage {
     name = "_at_microsoft_slash_rush";
     packageName = "@microsoft/rush";
-    version = "5.111.0";
+    version = "5.112.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@microsoft/rush/-/rush-5.111.0.tgz";
-      sha512 = "n3VeYpUF33KQY8j1n7PD+SKhmJFiO2ycNiLvV19yDjnc5+MPl5dyveXnJeB0ISDvSN8Aj42RXPraMDnfQK/WJQ==";
+      url = "https://registry.npmjs.org/@microsoft/rush/-/rush-5.112.2.tgz";
+      sha512 = "5iyG0GWVA2POkoFSGinmTW36XqGZIDDUfLIRH4bMuYVMoYTa2ysfN/b4XBQ2zBqwVOPTmadGnCbU0Jkf3uZbFw==";
     };
     dependencies = [
       (sources."@azure/abort-controller-1.1.0" // {
@@ -61391,7 +62625,7 @@ in
           sources."tslib-2.6.2"
         ];
       })
-      (sources."@azure/core-http-2.3.2" // {
+      (sources."@azure/core-http-3.0.4" // {
         dependencies = [
           sources."@azure/core-tracing-1.0.0-preview.13"
           sources."form-data-4.0.0"
@@ -61408,9 +62642,8 @@ in
           sources."tslib-2.6.2"
         ];
       })
-      (sources."@azure/core-rest-pipeline-1.12.2" // {
+      (sources."@azure/core-rest-pipeline-1.13.0" // {
         dependencies = [
-          sources."form-data-4.0.0"
           sources."tslib-2.6.2"
         ];
       })
@@ -61424,7 +62657,7 @@ in
           sources."tslib-2.6.2"
         ];
       })
-      (sources."@azure/identity-2.1.0" // {
+      (sources."@azure/identity-4.0.0" // {
         dependencies = [
           sources."tslib-2.6.2"
         ];
@@ -61434,25 +62667,17 @@ in
           sources."tslib-2.6.2"
         ];
       })
-      (sources."@azure/msal-browser-2.38.3" // {
-        dependencies = [
-          sources."@azure/msal-common-13.3.1"
-        ];
-      })
-      sources."@azure/msal-common-7.6.0"
-      (sources."@azure/msal-node-1.18.4" // {
-        dependencies = [
-          sources."@azure/msal-common-13.3.1"
-        ];
-      })
-      (sources."@azure/storage-blob-12.11.0" // {
+      sources."@azure/msal-browser-3.6.0"
+      sources."@azure/msal-common-14.5.0"
+      sources."@azure/msal-node-2.6.0"
+      (sources."@azure/storage-blob-12.17.0" // {
         dependencies = [
           sources."@azure/core-tracing-1.0.0-preview.13"
           sources."tslib-2.6.2"
         ];
       })
-      sources."@babel/code-frame-7.23.4"
-      sources."@babel/generator-7.23.4"
+      sources."@babel/code-frame-7.23.5"
+      sources."@babel/generator-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"
@@ -61460,23 +62685,23 @@ in
       sources."@babel/helper-string-parser-7.23.4"
       sources."@babel/helper-validator-identifier-7.22.20"
       sources."@babel/highlight-7.23.4"
-      sources."@babel/parser-7.23.4"
+      sources."@babel/parser-7.23.6"
       sources."@babel/template-7.22.15"
-      sources."@babel/traverse-7.23.4"
-      sources."@babel/types-7.23.4"
+      sources."@babel/traverse-7.23.7"
+      sources."@babel/types-7.23.6"
       sources."@devexpress/error-stack-parser-2.0.6"
       sources."@jridgewell/gen-mapping-0.3.3"
       sources."@jridgewell/resolve-uri-3.1.1"
       sources."@jridgewell/set-array-1.1.2"
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@jridgewell/trace-mapping-0.3.20"
-      sources."@microsoft/rush-lib-5.111.0"
+      sources."@microsoft/rush-lib-5.112.2"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
       sources."@opentelemetry/api-1.7.0"
       sources."@pnpm/crypto.base32-hash-2.0.0"
-      sources."@pnpm/dependency-path-2.1.5"
+      sources."@pnpm/dependency-path-2.1.7"
       sources."@pnpm/error-1.4.0"
       (sources."@pnpm/link-bins-5.3.25" // {
         dependencies = [
@@ -61500,20 +62725,16 @@ in
           sources."graceful-fs-4.2.4"
         ];
       })
-      sources."@pnpm/types-9.4.0"
+      sources."@pnpm/types-9.4.2"
       (sources."@pnpm/write-project-manifest-1.1.7" // {
         dependencies = [
           sources."@pnpm/types-6.4.0"
         ];
       })
-      sources."@rushstack/heft-config-file-0.14.2"
-      (sources."@rushstack/node-core-library-3.61.0" // {
-        dependencies = [
-          sources."import-lazy-4.0.0"
-        ];
-      })
-      sources."@rushstack/package-deps-hash-4.1.12"
-      (sources."@rushstack/package-extractor-0.6.14" // {
+      sources."@rushstack/heft-config-file-0.14.3"
+      sources."@rushstack/node-core-library-3.62.0"
+      sources."@rushstack/package-deps-hash-4.1.14"
+      (sources."@rushstack/package-extractor-0.6.17" // {
         dependencies = [
           sources."brace-expansion-1.1.11"
           sources."minimatch-3.0.8"
@@ -61524,12 +62745,12 @@ in
           sources."strip-json-comments-3.1.1"
         ];
       })
-      sources."@rushstack/rush-amazon-s3-build-cache-plugin-5.111.0"
-      sources."@rushstack/rush-azure-storage-build-cache-plugin-5.111.0"
-      sources."@rushstack/rush-http-build-cache-plugin-5.111.0"
-      sources."@rushstack/rush-sdk-5.111.0"
-      sources."@rushstack/stream-collator-4.1.13"
-      sources."@rushstack/terminal-0.7.12"
+      sources."@rushstack/rush-amazon-s3-build-cache-plugin-5.112.2"
+      sources."@rushstack/rush-azure-storage-build-cache-plugin-5.112.2"
+      sources."@rushstack/rush-http-build-cache-plugin-5.112.2"
+      sources."@rushstack/rush-sdk-5.112.2"
+      sources."@rushstack/stream-collator-4.1.15"
+      sources."@rushstack/terminal-0.7.14"
       (sources."@rushstack/ts-command-line-4.17.1" // {
         dependencies = [
           sources."argparse-1.0.10"
@@ -61542,17 +62763,16 @@ in
       sources."@types/lodash-4.14.202"
       sources."@types/minimatch-3.0.5"
       sources."@types/minimist-1.2.5"
-      sources."@types/node-20.9.3"
+      sources."@types/node-20.10.7"
       sources."@types/node-fetch-2.6.2"
       sources."@types/normalize-package-data-2.4.4"
       sources."@types/parse-json-4.0.2"
       sources."@types/tunnel-0.0.3"
-      sources."@vue/compiler-core-3.3.8"
-      sources."@vue/compiler-dom-3.3.8"
-      sources."@vue/compiler-sfc-3.3.8"
-      sources."@vue/compiler-ssr-3.3.8"
-      sources."@vue/reactivity-transform-3.3.8"
-      sources."@vue/shared-3.3.8"
+      sources."@vue/compiler-core-3.4.5"
+      sources."@vue/compiler-dom-3.4.5"
+      sources."@vue/compiler-sfc-3.4.5"
+      sources."@vue/compiler-ssr-3.4.5"
+      sources."@vue/shared-3.4.5"
       sources."@yarnpkg/lockfile-1.0.2"
       sources."@zkochan/cmd-shim-5.4.1"
       sources."agent-base-6.0.2"
@@ -61613,7 +62833,7 @@ in
       sources."ci-info-2.0.0"
       sources."cli-boxes-2.2.1"
       sources."cli-cursor-3.1.0"
-      sources."cli-spinners-2.9.1"
+      sources."cli-spinners-2.9.2"
       (sources."cli-table-0.3.11" // {
         dependencies = [
           sources."colors-1.0.3"
@@ -61684,6 +62904,7 @@ in
         ];
       })
       sources."end-of-stream-1.4.4"
+      sources."entities-4.5.0"
       sources."error-ex-1.3.2"
       sources."escalade-3.1.1"
       sources."escape-goat-2.1.1"
@@ -61696,7 +62917,7 @@ in
       sources."external-editor-3.1.0"
       sources."fast-deep-equal-3.1.3"
       sources."fast-glob-3.3.2"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."figures-3.0.0"
       sources."fill-range-7.0.1"
       sources."find-up-4.1.0"
@@ -61707,11 +62928,7 @@ in
       })
       sources."findup-sync-5.0.0"
       sources."form-data-3.0.1"
-      (sources."fs-extra-7.0.1" // {
-        dependencies = [
-          sources."universalify-0.1.2"
-        ];
-      })
+      sources."fs-extra-7.0.1"
       sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.2"
@@ -61770,7 +62987,7 @@ in
           sources."resolve-from-4.0.0"
         ];
       })
-      sources."import-lazy-2.1.0"
+      sources."import-lazy-4.0.0"
       sources."imurmurhash-0.1.4"
       sources."indent-string-4.0.0"
       sources."inflight-1.0.6"
@@ -61998,7 +63215,7 @@ in
         ];
       })
       sources."please-upgrade-node-3.2.0"
-      sources."postcss-8.4.31"
+      sources."postcss-8.4.33"
       (sources."preferred-pm-3.1.2" // {
         dependencies = [
           sources."find-up-5.0.0"
@@ -62010,11 +63227,8 @@ in
       sources."prepend-http-2.0.0"
       sources."process-0.11.10"
       sources."process-nextick-args-2.0.1"
-      sources."psl-1.9.0"
       sources."pump-3.0.0"
-      sources."punycode-2.3.1"
       sources."pupa-2.1.1"
-      sources."querystringify-2.2.0"
       sources."queue-microtask-1.2.3"
       sources."quick-lru-4.0.1"
       sources."ramda-0.27.2"
@@ -62058,7 +63272,6 @@ in
       sources."require-directory-2.1.1"
       sources."require-from-string-2.0.2"
       sources."require-package-name-2.0.1"
-      sources."requires-port-1.0.0"
       sources."resolve-1.22.8"
       (sources."resolve-dir-1.0.1" // {
         dependencies = [
@@ -62124,7 +63337,6 @@ in
       sources."to-fast-properties-2.0.0"
       sources."to-readable-stream-1.0.0"
       sources."to-regex-range-5.0.1"
-      sources."tough-cookie-4.1.3"
       sources."tr46-0.0.3"
       sources."trim-newlines-3.0.1"
       sources."true-case-path-2.2.1"
@@ -62134,7 +63346,7 @@ in
       sources."typedarray-to-buffer-3.1.5"
       sources."undici-types-5.26.5"
       sources."unique-string-2.0.0"
-      sources."universalify-0.2.0"
+      sources."universalify-0.1.2"
       (sources."update-notifier-5.1.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -62142,10 +63354,10 @@ in
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
+          sources."import-lazy-2.1.0"
           sources."supports-color-7.2.0"
         ];
       })
-      sources."url-parse-1.5.10"
       sources."url-parse-lax-3.0.0"
       sources."util-deprecate-1.0.2"
       sources."uuid-8.3.2"
@@ -62197,10 +63409,10 @@ in
   "@shopify/cli" = nodeEnv.buildNodePackage {
     name = "_at_shopify_slash_cli";
     packageName = "@shopify/cli";
-    version = "3.51.0";
+    version = "3.53.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@shopify/cli/-/cli-3.51.0.tgz";
-      sha512 = "0cnXHjltH7ql/UpUBpIgjvxkZ8tzJz4mq7FapuFqGSX7uMkfAJrWWCCmZsFbO3EtojBJ0vV60dIX0wsfrTyDYg==";
+      url = "https://registry.npmjs.org/@shopify/cli/-/cli-3.53.0.tgz";
+      sha512 = "kWWg7yilH3SOzRdSFlJ7y4uSKqMuFGzM2/mUtF5NP5/WrVZ20EXZNAZmnHU5zW3t3yDJpi5gDn1SUSGAU0rGlg==";
     };
     dependencies = [
       (sources."@alcalzone/ansi-tokenize-0.1.3" // {
@@ -62209,11 +63421,11 @@ in
           sources."is-fullwidth-code-point-4.0.0"
         ];
       })
-      sources."@bugsnag/browser-7.21.0"
+      sources."@bugsnag/browser-7.22.3"
       sources."@bugsnag/core-7.19.0"
       sources."@bugsnag/cuid-3.0.2"
       sources."@bugsnag/js-7.21.0"
-      sources."@bugsnag/node-7.19.0"
+      sources."@bugsnag/node-7.22.3"
       sources."@bugsnag/safe-json-stringify-6.0.0"
       sources."@cspotcode/source-map-support-0.8.1"
       sources."@graphql-typed-document-node/core-3.2.0"
@@ -62288,7 +63500,7 @@ in
         ];
       })
       sources."@pnpm/npm-conf-2.2.2"
-      (sources."@shopify/cli-kit-3.51.0" // {
+      (sources."@shopify/cli-kit-3.53.0" // {
         dependencies = [
           sources."ansi-escapes-6.2.0"
           sources."ansi-regex-6.0.1"
@@ -62303,13 +63515,13 @@ in
           sources."type-fest-3.13.1"
         ];
       })
-      sources."@shopify/plugin-did-you-mean-3.51.0"
+      sources."@shopify/plugin-did-you-mean-3.53.0"
       sources."@sindresorhus/is-5.6.0"
-      sources."@swc/core-1.3.99"
+      sources."@swc/core-1.3.102"
       sources."@swc/counter-0.1.2"
       sources."@swc/helpers-0.5.3"
       sources."@swc/types-0.1.5"
-      sources."@swc/wasm-1.3.99"
+      sources."@swc/wasm-1.3.102"
       sources."@szmarczak/http-timer-5.0.1"
       sources."@tsconfig/node10-1.0.9"
       sources."@tsconfig/node12-1.0.11"
@@ -62318,15 +63530,15 @@ in
       sources."@types/archiver-5.3.2"
       sources."@types/cli-progress-3.11.5"
       sources."@types/http-cache-semantics-4.0.4"
-      sources."@types/node-20.9.3"
+      sources."@types/node-20.10.7"
       sources."@types/prop-types-15.7.11"
-      sources."@types/react-18.2.38"
+      sources."@types/react-18.2.47"
       sources."@types/readdir-glob-1.1.5"
-      sources."@types/scheduler-0.16.7"
+      sources."@types/scheduler-0.16.8"
       sources."@types/tinycolor2-1.4.6"
       sources."abort-controller-3.0.0"
-      sources."acorn-8.11.2"
-      sources."acorn-walk-8.3.0"
+      sources."acorn-8.11.3"
+      sources."acorn-walk-8.3.1"
       (sources."aggregate-error-3.1.0" // {
         dependencies = [
           sources."clean-stack-2.2.0"
@@ -62424,7 +63636,7 @@ in
           sources."type-fest-1.4.0"
         ];
       })
-      sources."csstype-3.1.2"
+      sources."csstype-3.1.3"
       sources."data-uri-to-buffer-4.0.1"
       sources."debounce-fn-5.1.2"
       sources."debug-4.3.4"
@@ -62462,14 +63674,14 @@ in
       (sources."execa-7.2.0" // {
         dependencies = [
           sources."is-stream-3.0.0"
-          sources."npm-run-path-5.1.0"
+          sources."npm-run-path-5.2.0"
           sources."path-key-4.0.0"
         ];
       })
       sources."extract-files-9.0.0"
       sources."fast-deep-equal-3.1.3"
       sources."fast-glob-3.3.2"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."fetch-blob-3.2.0"
       (sources."figures-5.0.0" // {
         dependencies = [
@@ -62646,7 +63858,7 @@ in
       sources."node-abort-controller-3.1.1"
       sources."node-domexception-1.0.0"
       sources."node-fetch-3.3.2"
-      sources."node-gyp-build-4.7.0"
+      sources."node-gyp-build-4.8.0"
       sources."normalize-path-3.0.0"
       sources."normalize-url-8.0.0"
       sources."npm-9.9.2"
@@ -62796,11 +64008,11 @@ in
       sources."to-regex-range-5.0.1"
       sources."tr46-0.0.3"
       sources."ts-error-1.0.6"
-      sources."ts-node-10.9.1"
+      sources."ts-node-10.9.2"
       sources."tslib-2.6.2"
       sources."tunnel-agent-0.6.0"
       sources."type-fest-0.21.3"
-      sources."typescript-5.3.2"
+      sources."typescript-5.3.3"
       sources."undici-types-5.26.5"
       sources."unique-string-3.0.0"
       sources."universalify-2.0.1"
@@ -62811,16 +64023,16 @@ in
       sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-lib-3.0.1"
       sources."validate-npm-package-name-5.0.0"
-      sources."web-streams-polyfill-3.2.1"
+      sources."web-streams-polyfill-3.3.2"
       sources."webidl-conversions-3.0.1"
       sources."whatwg-url-5.0.0"
-      sources."when-exit-2.1.1"
+      sources."when-exit-2.1.2"
       sources."which-2.0.2"
       sources."widest-line-3.1.0"
       sources."wordwrap-1.0.0"
       sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
-      sources."ws-8.14.2"
+      sources."ws-8.16.0"
       sources."yallist-4.0.0"
       sources."yarn-1.22.21"
       sources."yn-3.1.1"
@@ -62855,6 +64067,7 @@ in
     dependencies = [
       sources."@alloc/quick-lru-5.2.0"
       sources."@cspotcode/source-map-support-0.8.1"
+      sources."@isaacs/cliui-8.0.2"
       sources."@jridgewell/gen-mapping-0.3.3"
       sources."@jridgewell/resolve-uri-3.1.1"
       sources."@jridgewell/set-array-1.1.2"
@@ -62863,24 +64076,26 @@ in
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@swc/core-1.3.99"
+      sources."@swc/core-1.3.102"
       sources."@swc/counter-0.1.2"
       sources."@swc/helpers-0.5.3"
       sources."@swc/types-0.1.5"
-      sources."@swc/wasm-1.3.99"
+      sources."@swc/wasm-1.3.102"
       sources."@tsconfig/node10-1.0.9"
       sources."@tsconfig/node12-1.0.11"
       sources."@tsconfig/node14-1.0.3"
       sources."@tsconfig/node16-1.0.4"
-      sources."@types/node-20.9.3"
-      sources."acorn-8.11.2"
-      sources."acorn-walk-8.3.0"
+      sources."@types/node-20.10.7"
+      sources."acorn-8.11.3"
+      sources."acorn-walk-8.3.1"
+      sources."ansi-regex-5.0.1"
+      sources."ansi-styles-6.2.1"
       sources."any-promise-1.3.0"
       sources."anymatch-3.1.3"
       sources."arg-5.0.2"
       sources."balanced-match-1.0.2"
       sources."binary-extensions-2.2.0"
-      sources."brace-expansion-1.1.11"
+      sources."brace-expansion-2.0.1"
       sources."braces-3.0.2"
       sources."camelcase-css-2.0.1"
       (sources."chokidar-3.5.3" // {
@@ -62888,53 +64103,60 @@ in
           sources."glob-parent-5.1.2"
         ];
       })
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
       sources."commander-4.1.1"
-      sources."concat-map-0.0.1"
       sources."create-require-1.1.1"
+      sources."cross-spawn-7.0.3"
       sources."cssesc-3.0.0"
       sources."didyoumean-1.2.2"
       sources."diff-4.0.2"
       sources."dlv-1.1.3"
+      sources."eastasianwidth-0.2.0"
+      sources."emoji-regex-9.2.2"
       (sources."fast-glob-3.3.2" // {
         dependencies = [
           sources."glob-parent-5.1.2"
         ];
       })
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."fill-range-7.0.1"
-      sources."fs.realpath-1.0.0"
+      sources."foreground-child-3.1.1"
       sources."fsevents-2.3.3"
       sources."function-bind-1.1.2"
-      sources."glob-7.1.6"
+      sources."glob-10.3.10"
       sources."glob-parent-6.0.2"
       sources."hasown-2.0.0"
-      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-extglob-2.1.1"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
       sources."is-number-7.0.0"
+      sources."isexe-2.0.0"
+      sources."jackspeak-2.3.6"
       sources."jiti-1.21.0"
       sources."lilconfig-2.1.0"
       sources."lines-and-columns-1.2.4"
+      sources."lru-cache-10.1.0"
       sources."make-error-1.3.6"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.5"
-      sources."minimatch-3.1.2"
+      sources."minimatch-9.0.3"
+      sources."minipass-7.0.4"
       sources."mz-2.7.0"
       sources."nanoid-3.3.7"
       sources."normalize-path-3.0.0"
       sources."object-assign-4.1.1"
       sources."object-hash-3.0.0"
-      sources."once-1.4.0"
-      sources."path-is-absolute-1.0.1"
+      sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
+      sources."path-scurry-1.10.1"
       sources."picocolors-1.0.0"
       sources."picomatch-2.3.1"
       sources."pify-2.3.0"
       sources."pirates-4.0.6"
-      sources."postcss-8.4.31"
+      sources."postcss-8.4.33"
       sources."postcss-import-15.1.0"
       sources."postcss-js-4.0.1"
       (sources."postcss-load-config-4.0.2" // {
@@ -62943,7 +64165,7 @@ in
         ];
       })
       sources."postcss-nested-6.0.1"
-      sources."postcss-selector-parser-6.0.13"
+      sources."postcss-selector-parser-6.0.15"
       sources."postcss-value-parser-4.2.0"
       sources."queue-microtask-1.2.3"
       sources."read-cache-1.0.0"
@@ -62951,25 +64173,50 @@ in
       sources."resolve-1.22.8"
       sources."reusify-1.0.4"
       sources."run-parallel-1.2.0"
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
+      sources."signal-exit-4.1.0"
       sources."source-map-js-1.0.2"
-      sources."sucrase-3.34.0"
+      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."strip-ansi-7.1.0" // {
+        dependencies = [
+          sources."ansi-regex-6.0.1"
+        ];
+      })
+      sources."strip-ansi-cjs-6.0.1"
+      sources."sucrase-3.35.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
-      sources."tailwindcss-3.3.5"
+      sources."tailwindcss-3.4.1"
       sources."thenify-3.3.1"
       sources."thenify-all-1.6.0"
       sources."to-regex-range-5.0.1"
       sources."ts-interface-checker-0.1.13"
-      (sources."ts-node-10.9.1" // {
+      (sources."ts-node-10.9.2" // {
         dependencies = [
           sources."arg-4.1.3"
         ];
       })
       sources."tslib-2.6.2"
-      sources."typescript-5.3.2"
+      sources."typescript-5.3.3"
       sources."undici-types-5.26.5"
       sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-lib-3.0.1"
-      sources."wrappy-1.0.2"
+      sources."which-2.0.2"
+      sources."wrap-ansi-8.1.0"
+      (sources."wrap-ansi-cjs-7.0.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."emoji-regex-8.0.0"
+          sources."string-width-4.2.3"
+          sources."strip-ansi-6.0.1"
+        ];
+      })
       sources."yaml-2.3.4"
       sources."yn-3.1.1"
     ];
@@ -62994,6 +64241,7 @@ in
     dependencies = [
       sources."@alloc/quick-lru-5.2.0"
       sources."@cspotcode/source-map-support-0.8.1"
+      sources."@isaacs/cliui-8.0.2"
       sources."@jridgewell/gen-mapping-0.3.3"
       sources."@jridgewell/resolve-uri-3.1.1"
       sources."@jridgewell/set-array-1.1.2"
@@ -63002,24 +64250,26 @@ in
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@swc/core-1.3.99"
+      sources."@swc/core-1.3.102"
       sources."@swc/counter-0.1.2"
       sources."@swc/helpers-0.5.3"
       sources."@swc/types-0.1.5"
-      sources."@swc/wasm-1.3.99"
+      sources."@swc/wasm-1.3.102"
       sources."@tsconfig/node10-1.0.9"
       sources."@tsconfig/node12-1.0.11"
       sources."@tsconfig/node14-1.0.3"
       sources."@tsconfig/node16-1.0.4"
-      sources."@types/node-20.9.3"
-      sources."acorn-8.11.2"
-      sources."acorn-walk-8.3.0"
+      sources."@types/node-20.10.7"
+      sources."acorn-8.11.3"
+      sources."acorn-walk-8.3.1"
+      sources."ansi-regex-5.0.1"
+      sources."ansi-styles-6.2.1"
       sources."any-promise-1.3.0"
       sources."anymatch-3.1.3"
       sources."arg-5.0.2"
       sources."balanced-match-1.0.2"
       sources."binary-extensions-2.2.0"
-      sources."brace-expansion-1.1.11"
+      sources."brace-expansion-2.0.1"
       sources."braces-3.0.2"
       sources."camelcase-css-2.0.1"
       (sources."chokidar-3.5.3" // {
@@ -63027,54 +64277,61 @@ in
           sources."glob-parent-5.1.2"
         ];
       })
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
       sources."commander-4.1.1"
-      sources."concat-map-0.0.1"
       sources."create-require-1.1.1"
+      sources."cross-spawn-7.0.3"
       sources."cssesc-3.0.0"
       sources."didyoumean-1.2.2"
       sources."diff-4.0.2"
       sources."dlv-1.1.3"
+      sources."eastasianwidth-0.2.0"
+      sources."emoji-regex-9.2.2"
       (sources."fast-glob-3.3.2" // {
         dependencies = [
           sources."glob-parent-5.1.2"
         ];
       })
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."fill-range-7.0.1"
-      sources."fs.realpath-1.0.0"
+      sources."foreground-child-3.1.1"
       sources."fsevents-2.3.3"
       sources."function-bind-1.1.2"
-      sources."glob-7.1.6"
+      sources."glob-10.3.10"
       sources."glob-parent-6.0.2"
       sources."hasown-2.0.0"
-      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-extglob-2.1.1"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
       sources."is-number-7.0.0"
+      sources."isexe-2.0.0"
+      sources."jackspeak-2.3.6"
       sources."jiti-1.21.0"
       sources."lilconfig-2.1.0"
       sources."lines-and-columns-1.2.4"
+      sources."lru-cache-10.1.0"
       sources."make-error-1.3.6"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.5"
       sources."mini-svg-data-uri-1.4.4"
-      sources."minimatch-3.1.2"
+      sources."minimatch-9.0.3"
+      sources."minipass-7.0.4"
       sources."mz-2.7.0"
       sources."nanoid-3.3.7"
       sources."normalize-path-3.0.0"
       sources."object-assign-4.1.1"
       sources."object-hash-3.0.0"
-      sources."once-1.4.0"
-      sources."path-is-absolute-1.0.1"
+      sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
+      sources."path-scurry-1.10.1"
       sources."picocolors-1.0.0"
       sources."picomatch-2.3.1"
       sources."pify-2.3.0"
       sources."pirates-4.0.6"
-      sources."postcss-8.4.31"
+      sources."postcss-8.4.33"
       sources."postcss-import-15.1.0"
       sources."postcss-js-4.0.1"
       (sources."postcss-load-config-4.0.2" // {
@@ -63083,7 +64340,7 @@ in
         ];
       })
       sources."postcss-nested-6.0.1"
-      sources."postcss-selector-parser-6.0.13"
+      sources."postcss-selector-parser-6.0.15"
       sources."postcss-value-parser-4.2.0"
       sources."queue-microtask-1.2.3"
       sources."read-cache-1.0.0"
@@ -63091,25 +64348,50 @@ in
       sources."resolve-1.22.8"
       sources."reusify-1.0.4"
       sources."run-parallel-1.2.0"
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
+      sources."signal-exit-4.1.0"
       sources."source-map-js-1.0.2"
-      sources."sucrase-3.34.0"
+      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."strip-ansi-7.1.0" // {
+        dependencies = [
+          sources."ansi-regex-6.0.1"
+        ];
+      })
+      sources."strip-ansi-cjs-6.0.1"
+      sources."sucrase-3.35.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
-      sources."tailwindcss-3.3.5"
+      sources."tailwindcss-3.4.1"
       sources."thenify-3.3.1"
       sources."thenify-all-1.6.0"
       sources."to-regex-range-5.0.1"
       sources."ts-interface-checker-0.1.13"
-      (sources."ts-node-10.9.1" // {
+      (sources."ts-node-10.9.2" // {
         dependencies = [
           sources."arg-4.1.3"
         ];
       })
       sources."tslib-2.6.2"
-      sources."typescript-5.3.2"
+      sources."typescript-5.3.3"
       sources."undici-types-5.26.5"
       sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-lib-3.0.1"
-      sources."wrappy-1.0.2"
+      sources."which-2.0.2"
+      sources."wrap-ansi-8.1.0"
+      (sources."wrap-ansi-cjs-7.0.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."emoji-regex-8.0.0"
+          sources."string-width-4.2.3"
+          sources."strip-ansi-6.0.1"
+        ];
+      })
       sources."yaml-2.3.4"
       sources."yn-3.1.1"
     ];
@@ -63123,24 +64405,6 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
-  "@tailwindcss/language-server" = nodeEnv.buildNodePackage {
-    name = "_at_tailwindcss_slash_language-server";
-    packageName = "@tailwindcss/language-server";
-    version = "0.0.14";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/@tailwindcss/language-server/-/language-server-0.0.14.tgz";
-      sha512 = "WLkoJWzcYoysef/yPouukwpIB5pdAeXML0B+O2rCLAM/GmGT2jB3+431y7SLghy1ByscILcQt+iUpvTwNjJjPw==";
-    };
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "Tailwind CSS Language Server";
-      homepage = "https://github.com/tailwindlabs/tailwindcss-intellisense/tree/HEAD/packages/tailwindcss-language-server#readme";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
   "@tailwindcss/line-clamp" = nodeEnv.buildNodePackage {
     name = "_at_tailwindcss_slash_line-clamp";
     packageName = "@tailwindcss/line-clamp";
@@ -63152,6 +64416,7 @@ in
     dependencies = [
       sources."@alloc/quick-lru-5.2.0"
       sources."@cspotcode/source-map-support-0.8.1"
+      sources."@isaacs/cliui-8.0.2"
       sources."@jridgewell/gen-mapping-0.3.3"
       sources."@jridgewell/resolve-uri-3.1.1"
       sources."@jridgewell/set-array-1.1.2"
@@ -63160,24 +64425,26 @@ in
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@swc/core-1.3.99"
+      sources."@swc/core-1.3.102"
       sources."@swc/counter-0.1.2"
       sources."@swc/helpers-0.5.3"
       sources."@swc/types-0.1.5"
-      sources."@swc/wasm-1.3.99"
+      sources."@swc/wasm-1.3.102"
       sources."@tsconfig/node10-1.0.9"
       sources."@tsconfig/node12-1.0.11"
       sources."@tsconfig/node14-1.0.3"
       sources."@tsconfig/node16-1.0.4"
-      sources."@types/node-20.9.3"
-      sources."acorn-8.11.2"
-      sources."acorn-walk-8.3.0"
+      sources."@types/node-20.10.7"
+      sources."acorn-8.11.3"
+      sources."acorn-walk-8.3.1"
+      sources."ansi-regex-5.0.1"
+      sources."ansi-styles-6.2.1"
       sources."any-promise-1.3.0"
       sources."anymatch-3.1.3"
       sources."arg-5.0.2"
       sources."balanced-match-1.0.2"
       sources."binary-extensions-2.2.0"
-      sources."brace-expansion-1.1.11"
+      sources."brace-expansion-2.0.1"
       sources."braces-3.0.2"
       sources."camelcase-css-2.0.1"
       (sources."chokidar-3.5.3" // {
@@ -63185,53 +64452,60 @@ in
           sources."glob-parent-5.1.2"
         ];
       })
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
       sources."commander-4.1.1"
-      sources."concat-map-0.0.1"
       sources."create-require-1.1.1"
+      sources."cross-spawn-7.0.3"
       sources."cssesc-3.0.0"
       sources."didyoumean-1.2.2"
       sources."diff-4.0.2"
       sources."dlv-1.1.3"
+      sources."eastasianwidth-0.2.0"
+      sources."emoji-regex-9.2.2"
       (sources."fast-glob-3.3.2" // {
         dependencies = [
           sources."glob-parent-5.1.2"
         ];
       })
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."fill-range-7.0.1"
-      sources."fs.realpath-1.0.0"
+      sources."foreground-child-3.1.1"
       sources."fsevents-2.3.3"
       sources."function-bind-1.1.2"
-      sources."glob-7.1.6"
+      sources."glob-10.3.10"
       sources."glob-parent-6.0.2"
       sources."hasown-2.0.0"
-      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-extglob-2.1.1"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
       sources."is-number-7.0.0"
+      sources."isexe-2.0.0"
+      sources."jackspeak-2.3.6"
       sources."jiti-1.21.0"
       sources."lilconfig-2.1.0"
       sources."lines-and-columns-1.2.4"
+      sources."lru-cache-10.1.0"
       sources."make-error-1.3.6"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.5"
-      sources."minimatch-3.1.2"
+      sources."minimatch-9.0.3"
+      sources."minipass-7.0.4"
       sources."mz-2.7.0"
       sources."nanoid-3.3.7"
       sources."normalize-path-3.0.0"
       sources."object-assign-4.1.1"
       sources."object-hash-3.0.0"
-      sources."once-1.4.0"
-      sources."path-is-absolute-1.0.1"
+      sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
+      sources."path-scurry-1.10.1"
       sources."picocolors-1.0.0"
       sources."picomatch-2.3.1"
       sources."pify-2.3.0"
       sources."pirates-4.0.6"
-      sources."postcss-8.4.31"
+      sources."postcss-8.4.33"
       sources."postcss-import-15.1.0"
       sources."postcss-js-4.0.1"
       (sources."postcss-load-config-4.0.2" // {
@@ -63240,7 +64514,7 @@ in
         ];
       })
       sources."postcss-nested-6.0.1"
-      sources."postcss-selector-parser-6.0.13"
+      sources."postcss-selector-parser-6.0.15"
       sources."postcss-value-parser-4.2.0"
       sources."queue-microtask-1.2.3"
       sources."read-cache-1.0.0"
@@ -63248,25 +64522,50 @@ in
       sources."resolve-1.22.8"
       sources."reusify-1.0.4"
       sources."run-parallel-1.2.0"
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
+      sources."signal-exit-4.1.0"
       sources."source-map-js-1.0.2"
-      sources."sucrase-3.34.0"
+      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."strip-ansi-7.1.0" // {
+        dependencies = [
+          sources."ansi-regex-6.0.1"
+        ];
+      })
+      sources."strip-ansi-cjs-6.0.1"
+      sources."sucrase-3.35.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
-      sources."tailwindcss-3.3.5"
+      sources."tailwindcss-3.4.1"
       sources."thenify-3.3.1"
       sources."thenify-all-1.6.0"
       sources."to-regex-range-5.0.1"
       sources."ts-interface-checker-0.1.13"
-      (sources."ts-node-10.9.1" // {
+      (sources."ts-node-10.9.2" // {
         dependencies = [
           sources."arg-4.1.3"
         ];
       })
       sources."tslib-2.6.2"
-      sources."typescript-5.3.2"
+      sources."typescript-5.3.3"
       sources."undici-types-5.26.5"
       sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-lib-3.0.1"
-      sources."wrappy-1.0.2"
+      sources."which-2.0.2"
+      sources."wrap-ansi-8.1.0"
+      (sources."wrap-ansi-cjs-7.0.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."emoji-regex-8.0.0"
+          sources."string-width-4.2.3"
+          sources."strip-ansi-6.0.1"
+        ];
+      })
       sources."yaml-2.3.4"
       sources."yn-3.1.1"
     ];
@@ -63291,6 +64590,7 @@ in
     dependencies = [
       sources."@alloc/quick-lru-5.2.0"
       sources."@cspotcode/source-map-support-0.8.1"
+      sources."@isaacs/cliui-8.0.2"
       sources."@jridgewell/gen-mapping-0.3.3"
       sources."@jridgewell/resolve-uri-3.1.1"
       sources."@jridgewell/set-array-1.1.2"
@@ -63299,24 +64599,26 @@ in
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@swc/core-1.3.99"
+      sources."@swc/core-1.3.102"
       sources."@swc/counter-0.1.2"
       sources."@swc/helpers-0.5.3"
       sources."@swc/types-0.1.5"
-      sources."@swc/wasm-1.3.99"
+      sources."@swc/wasm-1.3.102"
       sources."@tsconfig/node10-1.0.9"
       sources."@tsconfig/node12-1.0.11"
       sources."@tsconfig/node14-1.0.3"
       sources."@tsconfig/node16-1.0.4"
-      sources."@types/node-20.9.3"
-      sources."acorn-8.11.2"
-      sources."acorn-walk-8.3.0"
+      sources."@types/node-20.10.7"
+      sources."acorn-8.11.3"
+      sources."acorn-walk-8.3.1"
+      sources."ansi-regex-5.0.1"
+      sources."ansi-styles-6.2.1"
       sources."any-promise-1.3.0"
       sources."anymatch-3.1.3"
       sources."arg-5.0.2"
       sources."balanced-match-1.0.2"
       sources."binary-extensions-2.2.0"
-      sources."brace-expansion-1.1.11"
+      sources."brace-expansion-2.0.1"
       sources."braces-3.0.2"
       sources."camelcase-css-2.0.1"
       (sources."chokidar-3.5.3" // {
@@ -63324,56 +64626,63 @@ in
           sources."glob-parent-5.1.2"
         ];
       })
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
       sources."commander-4.1.1"
-      sources."concat-map-0.0.1"
       sources."create-require-1.1.1"
+      sources."cross-spawn-7.0.3"
       sources."cssesc-3.0.0"
       sources."didyoumean-1.2.2"
       sources."diff-4.0.2"
       sources."dlv-1.1.3"
+      sources."eastasianwidth-0.2.0"
+      sources."emoji-regex-9.2.2"
       (sources."fast-glob-3.3.2" // {
         dependencies = [
           sources."glob-parent-5.1.2"
         ];
       })
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."fill-range-7.0.1"
-      sources."fs.realpath-1.0.0"
+      sources."foreground-child-3.1.1"
       sources."fsevents-2.3.3"
       sources."function-bind-1.1.2"
-      sources."glob-7.1.6"
+      sources."glob-10.3.10"
       sources."glob-parent-6.0.2"
       sources."hasown-2.0.0"
-      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-extglob-2.1.1"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
       sources."is-number-7.0.0"
+      sources."isexe-2.0.0"
+      sources."jackspeak-2.3.6"
       sources."jiti-1.21.0"
       sources."lilconfig-2.1.0"
       sources."lines-and-columns-1.2.4"
       sources."lodash.castarray-4.4.0"
       sources."lodash.isplainobject-4.0.6"
       sources."lodash.merge-4.6.2"
+      sources."lru-cache-10.1.0"
       sources."make-error-1.3.6"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.5"
-      sources."minimatch-3.1.2"
+      sources."minimatch-9.0.3"
+      sources."minipass-7.0.4"
       sources."mz-2.7.0"
       sources."nanoid-3.3.7"
       sources."normalize-path-3.0.0"
       sources."object-assign-4.1.1"
       sources."object-hash-3.0.0"
-      sources."once-1.4.0"
-      sources."path-is-absolute-1.0.1"
+      sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
+      sources."path-scurry-1.10.1"
       sources."picocolors-1.0.0"
       sources."picomatch-2.3.1"
       sources."pify-2.3.0"
       sources."pirates-4.0.6"
-      sources."postcss-8.4.31"
+      sources."postcss-8.4.33"
       sources."postcss-import-15.1.0"
       sources."postcss-js-4.0.1"
       (sources."postcss-load-config-4.0.2" // {
@@ -63383,7 +64692,7 @@ in
       })
       (sources."postcss-nested-6.0.1" // {
         dependencies = [
-          sources."postcss-selector-parser-6.0.13"
+          sources."postcss-selector-parser-6.0.15"
         ];
       })
       sources."postcss-selector-parser-6.0.10"
@@ -63394,29 +64703,54 @@ in
       sources."resolve-1.22.8"
       sources."reusify-1.0.4"
       sources."run-parallel-1.2.0"
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
+      sources."signal-exit-4.1.0"
       sources."source-map-js-1.0.2"
-      sources."sucrase-3.34.0"
+      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."strip-ansi-7.1.0" // {
+        dependencies = [
+          sources."ansi-regex-6.0.1"
+        ];
+      })
+      sources."strip-ansi-cjs-6.0.1"
+      sources."sucrase-3.35.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
-      (sources."tailwindcss-3.3.5" // {
+      (sources."tailwindcss-3.4.1" // {
         dependencies = [
-          sources."postcss-selector-parser-6.0.13"
+          sources."postcss-selector-parser-6.0.15"
         ];
       })
       sources."thenify-3.3.1"
       sources."thenify-all-1.6.0"
       sources."to-regex-range-5.0.1"
       sources."ts-interface-checker-0.1.13"
-      (sources."ts-node-10.9.1" // {
+      (sources."ts-node-10.9.2" // {
         dependencies = [
           sources."arg-4.1.3"
         ];
       })
       sources."tslib-2.6.2"
-      sources."typescript-5.3.2"
+      sources."typescript-5.3.3"
       sources."undici-types-5.26.5"
       sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-lib-3.0.1"
-      sources."wrappy-1.0.2"
+      sources."which-2.0.2"
+      sources."wrap-ansi-8.1.0"
+      (sources."wrap-ansi-cjs-7.0.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."emoji-regex-8.0.0"
+          sources."string-width-4.2.3"
+          sources."strip-ansi-6.0.1"
+        ];
+      })
       sources."yaml-2.3.4"
       sources."yn-3.1.1"
     ];
@@ -63433,10 +64767,10 @@ in
   "@uppy/companion" = nodeEnv.buildNodePackage {
     name = "_at_uppy_slash_companion";
     packageName = "@uppy/companion";
-    version = "4.11.0";
+    version = "4.12.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@uppy/companion/-/companion-4.11.0.tgz";
-      sha512 = "TycDEH1WPvMj5oEz76eq+iioCzamb5ml1KmfR9KLHsoAucTbj6NGiWNjCCKdduxefbeKP0PQtvVZUnjZnIPafg==";
+      url = "https://registry.npmjs.org/@uppy/companion/-/companion-4.12.0.tgz";
+      sha512 = "Q/1c7HZ/XwMiy0vY978fgFsfOumW8M2AHSIDnAceFKrLkBVQVL+SXj8DnkUTgsxzI/TLShCmuj0kU4oTeC+4rg==";
     };
     dependencies = [
       (sources."@aws-crypto/crc32-3.0.0" // {
@@ -63479,47 +64813,46 @@ in
           sources."tslib-1.14.1"
         ];
       })
-      sources."@aws-sdk/client-s3-3.454.0"
-      sources."@aws-sdk/client-sso-3.451.0"
-      sources."@aws-sdk/client-sts-3.454.0"
-      sources."@aws-sdk/core-3.451.0"
-      sources."@aws-sdk/credential-provider-env-3.451.0"
-      sources."@aws-sdk/credential-provider-ini-3.451.0"
-      sources."@aws-sdk/credential-provider-node-3.451.0"
-      sources."@aws-sdk/credential-provider-process-3.451.0"
-      sources."@aws-sdk/credential-provider-sso-3.451.0"
-      sources."@aws-sdk/credential-provider-web-identity-3.451.0"
-      (sources."@aws-sdk/lib-storage-3.454.0" // {
+      sources."@aws-sdk/client-s3-3.485.0"
+      sources."@aws-sdk/client-sso-3.485.0"
+      sources."@aws-sdk/client-sts-3.485.0"
+      sources."@aws-sdk/core-3.485.0"
+      sources."@aws-sdk/credential-provider-env-3.485.0"
+      sources."@aws-sdk/credential-provider-ini-3.485.0"
+      sources."@aws-sdk/credential-provider-node-3.485.0"
+      sources."@aws-sdk/credential-provider-process-3.485.0"
+      sources."@aws-sdk/credential-provider-sso-3.485.0"
+      sources."@aws-sdk/credential-provider-web-identity-3.485.0"
+      (sources."@aws-sdk/lib-storage-3.485.0" // {
         dependencies = [
           sources."buffer-5.6.0"
         ];
       })
-      sources."@aws-sdk/middleware-bucket-endpoint-3.451.0"
-      sources."@aws-sdk/middleware-expect-continue-3.451.0"
-      sources."@aws-sdk/middleware-flexible-checksums-3.451.0"
-      sources."@aws-sdk/middleware-host-header-3.451.0"
-      sources."@aws-sdk/middleware-location-constraint-3.451.0"
-      sources."@aws-sdk/middleware-logger-3.451.0"
-      sources."@aws-sdk/middleware-recursion-detection-3.451.0"
-      sources."@aws-sdk/middleware-sdk-s3-3.451.0"
-      sources."@aws-sdk/middleware-sdk-sts-3.451.0"
-      sources."@aws-sdk/middleware-signing-3.451.0"
-      sources."@aws-sdk/middleware-ssec-3.451.0"
-      sources."@aws-sdk/middleware-user-agent-3.451.0"
-      sources."@aws-sdk/region-config-resolver-3.451.0"
-      sources."@aws-sdk/s3-presigned-post-3.454.0"
-      sources."@aws-sdk/s3-request-presigner-3.454.0"
-      sources."@aws-sdk/signature-v4-multi-region-3.451.0"
-      sources."@aws-sdk/token-providers-3.451.0"
-      sources."@aws-sdk/types-3.451.0"
-      sources."@aws-sdk/util-arn-parser-3.310.0"
-      sources."@aws-sdk/util-endpoints-3.451.0"
-      sources."@aws-sdk/util-format-url-3.451.0"
-      sources."@aws-sdk/util-locate-window-3.310.0"
-      sources."@aws-sdk/util-user-agent-browser-3.451.0"
-      sources."@aws-sdk/util-user-agent-node-3.451.0"
+      sources."@aws-sdk/middleware-bucket-endpoint-3.485.0"
+      sources."@aws-sdk/middleware-expect-continue-3.485.0"
+      sources."@aws-sdk/middleware-flexible-checksums-3.485.0"
+      sources."@aws-sdk/middleware-host-header-3.485.0"
+      sources."@aws-sdk/middleware-location-constraint-3.485.0"
+      sources."@aws-sdk/middleware-logger-3.485.0"
+      sources."@aws-sdk/middleware-recursion-detection-3.485.0"
+      sources."@aws-sdk/middleware-sdk-s3-3.485.0"
+      sources."@aws-sdk/middleware-signing-3.485.0"
+      sources."@aws-sdk/middleware-ssec-3.485.0"
+      sources."@aws-sdk/middleware-user-agent-3.485.0"
+      sources."@aws-sdk/region-config-resolver-3.485.0"
+      sources."@aws-sdk/s3-presigned-post-3.485.0"
+      sources."@aws-sdk/s3-request-presigner-3.485.0"
+      sources."@aws-sdk/signature-v4-multi-region-3.485.0"
+      sources."@aws-sdk/token-providers-3.485.0"
+      sources."@aws-sdk/types-3.485.0"
+      sources."@aws-sdk/util-arn-parser-3.465.0"
+      sources."@aws-sdk/util-endpoints-3.485.0"
+      sources."@aws-sdk/util-format-url-3.485.0"
+      sources."@aws-sdk/util-locate-window-3.465.0"
+      sources."@aws-sdk/util-user-agent-browser-3.485.0"
+      sources."@aws-sdk/util-user-agent-node-3.485.0"
       sources."@aws-sdk/util-utf8-browser-3.259.0"
-      sources."@aws-sdk/xml-builder-3.310.0"
+      sources."@aws-sdk/xml-builder-3.485.0"
       sources."@httptoolkit/websocket-stream-6.0.1"
       sources."@redis/bloom-1.0.2"
       sources."@redis/client-1.2.0"
@@ -63528,60 +64861,61 @@ in
       sources."@redis/search-1.0.6"
       sources."@redis/time-series-1.0.3"
       sources."@sindresorhus/is-4.6.0"
-      sources."@smithy/abort-controller-2.0.13"
+      sources."@smithy/abort-controller-2.0.16"
       sources."@smithy/chunked-blob-reader-2.0.0"
       sources."@smithy/chunked-blob-reader-native-2.0.1"
-      sources."@smithy/config-resolver-2.0.18"
-      sources."@smithy/credential-provider-imds-2.1.1"
-      sources."@smithy/eventstream-codec-2.0.13"
-      sources."@smithy/eventstream-serde-browser-2.0.13"
-      sources."@smithy/eventstream-serde-config-resolver-2.0.13"
-      sources."@smithy/eventstream-serde-node-2.0.13"
-      sources."@smithy/eventstream-serde-universal-2.0.13"
-      sources."@smithy/fetch-http-handler-2.2.6"
-      sources."@smithy/hash-blob-browser-2.0.14"
-      sources."@smithy/hash-node-2.0.15"
-      sources."@smithy/hash-stream-node-2.0.15"
-      sources."@smithy/invalid-dependency-2.0.13"
+      sources."@smithy/config-resolver-2.0.23"
+      sources."@smithy/core-1.2.2"
+      sources."@smithy/credential-provider-imds-2.1.5"
+      sources."@smithy/eventstream-codec-2.0.16"
+      sources."@smithy/eventstream-serde-browser-2.0.16"
+      sources."@smithy/eventstream-serde-config-resolver-2.0.16"
+      sources."@smithy/eventstream-serde-node-2.0.16"
+      sources."@smithy/eventstream-serde-universal-2.0.16"
+      sources."@smithy/fetch-http-handler-2.3.2"
+      sources."@smithy/hash-blob-browser-2.0.17"
+      sources."@smithy/hash-node-2.0.18"
+      sources."@smithy/hash-stream-node-2.0.18"
+      sources."@smithy/invalid-dependency-2.0.16"
       sources."@smithy/is-array-buffer-2.0.0"
-      sources."@smithy/md5-js-2.0.15"
-      sources."@smithy/middleware-content-length-2.0.15"
-      sources."@smithy/middleware-endpoint-2.2.0"
-      sources."@smithy/middleware-retry-2.0.20"
-      sources."@smithy/middleware-serde-2.0.13"
-      sources."@smithy/middleware-stack-2.0.7"
-      sources."@smithy/node-config-provider-2.1.5"
-      sources."@smithy/node-http-handler-2.1.9"
-      sources."@smithy/property-provider-2.0.14"
-      sources."@smithy/protocol-http-3.0.9"
-      sources."@smithy/querystring-builder-2.0.13"
-      sources."@smithy/querystring-parser-2.0.13"
-      sources."@smithy/service-error-classification-2.0.6"
-      sources."@smithy/shared-ini-file-loader-2.2.4"
-      sources."@smithy/signature-v4-2.0.15"
-      sources."@smithy/smithy-client-2.1.15"
-      sources."@smithy/types-2.5.0"
-      sources."@smithy/url-parser-2.0.13"
+      sources."@smithy/md5-js-2.0.18"
+      sources."@smithy/middleware-content-length-2.0.18"
+      sources."@smithy/middleware-endpoint-2.3.0"
+      sources."@smithy/middleware-retry-2.0.26"
+      sources."@smithy/middleware-serde-2.0.16"
+      sources."@smithy/middleware-stack-2.0.10"
+      sources."@smithy/node-config-provider-2.1.9"
+      sources."@smithy/node-http-handler-2.2.2"
+      sources."@smithy/property-provider-2.0.17"
+      sources."@smithy/protocol-http-3.0.12"
+      sources."@smithy/querystring-builder-2.0.16"
+      sources."@smithy/querystring-parser-2.0.16"
+      sources."@smithy/service-error-classification-2.0.9"
+      sources."@smithy/shared-ini-file-loader-2.2.8"
+      sources."@smithy/signature-v4-2.0.19"
+      sources."@smithy/smithy-client-2.2.1"
+      sources."@smithy/types-2.8.0"
+      sources."@smithy/url-parser-2.0.16"
       sources."@smithy/util-base64-2.0.1"
-      sources."@smithy/util-body-length-browser-2.0.0"
+      sources."@smithy/util-body-length-browser-2.0.1"
       sources."@smithy/util-body-length-node-2.1.0"
       sources."@smithy/util-buffer-from-2.0.0"
-      sources."@smithy/util-config-provider-2.0.0"
-      sources."@smithy/util-defaults-mode-browser-2.0.19"
-      sources."@smithy/util-defaults-mode-node-2.0.25"
-      sources."@smithy/util-endpoints-1.0.4"
+      sources."@smithy/util-config-provider-2.1.0"
+      sources."@smithy/util-defaults-mode-browser-2.0.24"
+      sources."@smithy/util-defaults-mode-node-2.0.32"
+      sources."@smithy/util-endpoints-1.0.8"
       sources."@smithy/util-hex-encoding-2.0.0"
-      sources."@smithy/util-middleware-2.0.6"
-      sources."@smithy/util-retry-2.0.6"
-      sources."@smithy/util-stream-2.0.20"
+      sources."@smithy/util-middleware-2.0.9"
+      sources."@smithy/util-retry-2.0.9"
+      sources."@smithy/util-stream-2.0.24"
       sources."@smithy/util-uri-escape-2.0.0"
       sources."@smithy/util-utf8-2.0.2"
-      sources."@smithy/util-waiter-2.0.13"
+      sources."@smithy/util-waiter-2.0.16"
       sources."@szmarczak/http-timer-4.0.6"
       sources."@types/cacheable-request-6.0.3"
       sources."@types/http-cache-semantics-4.0.4"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-20.9.3"
+      sources."@types/node-20.10.7"
       sources."@types/responselike-1.0.3"
       sources."@types/ws-8.5.10"
       sources."accepts-1.3.8"
@@ -63590,8 +64924,8 @@ in
       sources."asn1.js-5.4.1"
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
-      sources."aws-crt-1.19.0"
-      (sources."axios-1.6.2" // {
+      sources."aws-crt-1.20.1"
+      (sources."axios-1.6.5" // {
         dependencies = [
           sources."form-data-4.0.0"
         ];
@@ -63714,7 +65048,7 @@ in
           sources."ms-2.0.0"
         ];
       })
-      sources."follow-redirects-1.15.3"
+      sources."follow-redirects-1.15.4"
       sources."form-data-3.0.1"
       sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
@@ -63795,8 +65129,8 @@ in
       sources."minimalistic-crypto-utils-1.0.1"
       sources."minimatch-3.1.2"
       sources."minimist-1.2.8"
-      sources."moment-2.29.4"
-      sources."moment-timezone-0.5.43"
+      sources."moment-2.30.1"
+      sources."moment-timezone-0.5.44"
       (sources."morgan-1.10.0" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -63804,7 +65138,7 @@ in
           sources."on-finished-2.3.0"
         ];
       })
-      (sources."mqtt-4.3.7" // {
+      (sources."mqtt-4.3.8" // {
         dependencies = [
           sources."duplexify-4.1.2"
           sources."readable-stream-3.6.2"
@@ -63814,7 +65148,7 @@ in
       sources."mqtt-packet-6.10.0"
       sources."ms-2.1.3"
       sources."negotiator-0.6.3"
-      sources."node-gyp-build-4.7.0"
+      sources."node-gyp-build-4.8.0"
       sources."node-schedule-2.1.0"
       sources."normalize-url-6.1.0"
       sources."number-allocator-1.0.14"
@@ -63863,7 +65197,7 @@ in
       sources."rfdc-1.3.0"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.5.3"
+      sources."semver-7.5.4"
       (sources."send-0.18.0" // {
         dependencies = [
           (sources."debug-2.6.9" // {
@@ -63903,7 +65237,7 @@ in
       sources."tdigest-0.1.2"
       sources."toidentifier-1.0.1"
       sources."tslib-2.6.2"
-      sources."tus-js-client-3.1.1"
+      sources."tus-js-client-3.1.3"
       sources."type-is-1.6.18"
       sources."typedarray-0.0.6"
       sources."uid-safe-2.1.5"
@@ -63941,7 +65275,7 @@ in
       sha512 = "+/kSxBAkZbeVBePoG2qRSvCkVIslk1dNlU5wQHAcbzOFTi7pEQR6C+kjoj94I+vGXVGMFfDwOYm07sPsd8dM6w==";
     };
     dependencies = [
-      sources."@babel/parser-7.23.4"
+      sources."@babel/parser-7.23.6"
       sources."@emmetio/abbreviation-2.3.3"
       sources."@emmetio/css-abbreviation-2.1.8"
       sources."@emmetio/scanner-1.0.4"
@@ -63968,13 +65302,12 @@ in
         ];
       })
       sources."@vscode/l10n-0.0.11"
-      sources."@vue/compiler-core-3.3.8"
-      sources."@vue/compiler-dom-3.3.8"
-      sources."@vue/compiler-sfc-3.3.8"
-      sources."@vue/compiler-ssr-3.3.8"
-      sources."@vue/reactivity-3.3.8"
-      sources."@vue/reactivity-transform-3.3.8"
-      sources."@vue/shared-3.3.8"
+      sources."@vue/compiler-core-3.4.5"
+      sources."@vue/compiler-dom-3.4.5"
+      sources."@vue/compiler-sfc-3.4.5"
+      sources."@vue/compiler-ssr-3.4.5"
+      sources."@vue/reactivity-3.4.5"
+      sources."@vue/shared-3.4.5"
       sources."acorn-7.4.1"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-2.0.1"
@@ -63983,6 +65316,7 @@ in
       sources."de-indent-1.0.2"
       sources."define-data-property-1.1.1"
       sources."emmet-2.4.6"
+      sources."entities-4.5.0"
       sources."estree-walker-2.0.2"
       sources."function-bind-1.1.2"
       sources."get-intrinsic-1.2.2"
@@ -64003,7 +65337,7 @@ in
       sources."nanoid-3.3.7"
       sources."object-assign-4.1.1"
       sources."picocolors-1.0.0"
-      sources."postcss-8.4.31"
+      sources."postcss-8.4.33"
       sources."pug-error-2.0.0"
       sources."pug-lexer-5.0.1"
       sources."pug-parser-6.0.0"
@@ -64013,9 +65347,9 @@ in
       sources."source-map-js-1.0.2"
       sources."token-stream-1.0.0"
       sources."typesafe-path-0.2.2"
-      sources."typescript-5.3.2"
+      sources."typescript-5.3.3"
       sources."typescript-auto-import-cache-0.2.1"
-      (sources."vscode-css-languageservice-6.2.10" // {
+      (sources."vscode-css-languageservice-6.2.11" // {
         dependencies = [
           sources."@vscode/l10n-0.0.16"
         ];
@@ -64048,7 +65382,7 @@ in
       sources."vscode-uri-3.0.8"
       sources."vue-component-meta-1.6.5"
       sources."vue-component-type-helpers-1.6.5"
-      sources."vue-template-compiler-2.7.15"
+      sources."vue-template-compiler-2.7.16"
       sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
@@ -64088,7 +65422,7 @@ in
       sources."@apollo/utils.usagereporting-1.0.1"
       sources."@apollographql/apollo-tools-0.5.4"
       sources."@apollographql/graphql-playground-html-1.6.29"
-      (sources."@babel/code-frame-7.23.4" // {
+      (sources."@babel/code-frame-7.23.5" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -64098,23 +65432,23 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."@babel/compat-data-7.23.3"
-      (sources."@babel/core-7.23.3" // {
+      sources."@babel/compat-data-7.23.5"
+      (sources."@babel/core-7.23.7" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
-      sources."@babel/generator-7.23.4"
+      sources."@babel/generator-7.23.6"
       sources."@babel/helper-annotate-as-pure-7.22.5"
       sources."@babel/helper-builder-binary-assignment-operator-visitor-7.22.15"
-      (sources."@babel/helper-compilation-targets-7.22.15" // {
+      (sources."@babel/helper-compilation-targets-7.23.6" // {
         dependencies = [
           sources."lru-cache-5.1.1"
           sources."semver-6.3.1"
           sources."yallist-3.1.1"
         ];
       })
-      (sources."@babel/helper-create-class-features-plugin-7.22.15" // {
+      (sources."@babel/helper-create-class-features-plugin-7.23.7" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
@@ -64124,7 +65458,7 @@ in
           sources."semver-6.3.1"
         ];
       })
-      sources."@babel/helper-define-polyfill-provider-0.4.3"
+      sources."@babel/helper-define-polyfill-provider-0.4.4"
       sources."@babel/helper-environment-visitor-7.22.20"
       sources."@babel/helper-function-name-7.23.0"
       sources."@babel/helper-hoist-variables-7.22.5"
@@ -64140,9 +65474,9 @@ in
       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.22.15"
+      sources."@babel/helper-validator-option-7.23.5"
       sources."@babel/helper-wrap-function-7.22.20"
-      sources."@babel/helpers-7.23.4"
+      sources."@babel/helpers-7.23.7"
       (sources."@babel/highlight-7.23.4" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
@@ -64153,10 +65487,10 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."@babel/parser-7.23.4"
+      sources."@babel/parser-7.23.6"
       sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3"
-      sources."@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3"
+      sources."@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7"
       sources."@babel/plugin-proposal-class-properties-7.18.6"
       sources."@babel/plugin-proposal-nullish-coalescing-operator-7.18.6"
       sources."@babel/plugin-proposal-optional-chaining-7.21.0"
@@ -64183,13 +65517,13 @@ in
       sources."@babel/plugin-syntax-typescript-7.23.3"
       sources."@babel/plugin-syntax-unicode-sets-regex-7.18.6"
       sources."@babel/plugin-transform-arrow-functions-7.23.3"
-      sources."@babel/plugin-transform-async-generator-functions-7.23.4"
+      sources."@babel/plugin-transform-async-generator-functions-7.23.7"
       sources."@babel/plugin-transform-async-to-generator-7.23.3"
       sources."@babel/plugin-transform-block-scoped-functions-7.23.3"
       sources."@babel/plugin-transform-block-scoping-7.23.4"
       sources."@babel/plugin-transform-class-properties-7.23.3"
       sources."@babel/plugin-transform-class-static-block-7.23.4"
-      sources."@babel/plugin-transform-classes-7.23.3"
+      sources."@babel/plugin-transform-classes-7.23.5"
       sources."@babel/plugin-transform-computed-properties-7.23.3"
       sources."@babel/plugin-transform-destructuring-7.23.3"
       sources."@babel/plugin-transform-dotall-regex-7.23.3"
@@ -64198,7 +65532,7 @@ in
       sources."@babel/plugin-transform-exponentiation-operator-7.23.3"
       sources."@babel/plugin-transform-export-namespace-from-7.23.4"
       sources."@babel/plugin-transform-flow-strip-types-7.23.3"
-      sources."@babel/plugin-transform-for-of-7.23.3"
+      sources."@babel/plugin-transform-for-of-7.23.6"
       sources."@babel/plugin-transform-function-name-7.23.3"
       sources."@babel/plugin-transform-json-strings-7.23.4"
       sources."@babel/plugin-transform-literals-7.23.3"
@@ -64227,12 +65561,12 @@ in
       sources."@babel/plugin-transform-sticky-regex-7.23.3"
       sources."@babel/plugin-transform-template-literals-7.23.3"
       sources."@babel/plugin-transform-typeof-symbol-7.23.3"
-      sources."@babel/plugin-transform-typescript-7.23.4"
+      sources."@babel/plugin-transform-typescript-7.23.6"
       sources."@babel/plugin-transform-unicode-escapes-7.23.3"
       sources."@babel/plugin-transform-unicode-property-regex-7.23.3"
       sources."@babel/plugin-transform-unicode-regex-7.23.3"
       sources."@babel/plugin-transform-unicode-sets-regex-7.23.3"
-      (sources."@babel/preset-env-7.23.3" // {
+      (sources."@babel/preset-env-7.23.7" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
@@ -64240,7 +65574,7 @@ in
       sources."@babel/preset-flow-7.23.3"
       sources."@babel/preset-modules-0.1.6-no-external-plugins"
       sources."@babel/preset-typescript-7.23.3"
-      (sources."@babel/register-7.22.15" // {
+      (sources."@babel/register-7.23.7" // {
         dependencies = [
           sources."make-dir-2.1.0"
           sources."pify-4.0.1"
@@ -64248,10 +65582,10 @@ in
         ];
       })
       sources."@babel/regjsgen-0.8.0"
-      sources."@babel/runtime-7.23.4"
+      sources."@babel/runtime-7.23.7"
       sources."@babel/template-7.22.15"
-      sources."@babel/traverse-7.23.4"
-      sources."@babel/types-7.23.4"
+      sources."@babel/traverse-7.23.7"
+      sources."@babel/types-7.23.6"
       sources."@graphql-tools/merge-8.3.1"
       (sources."@graphql-tools/mock-8.7.20" // {
         dependencies = [
@@ -64307,9 +65641,9 @@ in
       })
       sources."@types/long-4.0.2"
       sources."@types/mime-3.0.4"
-      sources."@types/node-20.9.3"
+      sources."@types/node-20.10.7"
       sources."@types/normalize-package-data-2.4.4"
-      sources."@types/qs-6.9.10"
+      sources."@types/qs-6.9.11"
       sources."@types/range-parser-1.2.7"
       sources."@types/serve-static-1.15.5"
       sources."@types/through-0.0.33"
@@ -64321,10 +65655,14 @@ in
       })
       sources."@vue/cli-ui-addon-webpack-5.0.8"
       sources."@vue/cli-ui-addon-widgets-5.0.8"
-      sources."@vue/compiler-core-3.3.8"
-      sources."@vue/compiler-dom-3.3.8"
-      sources."@vue/compiler-sfc-2.7.15"
-      sources."@vue/shared-3.3.8"
+      (sources."@vue/compiler-core-3.4.5" // {
+        dependencies = [
+          sources."entities-4.5.0"
+        ];
+      })
+      sources."@vue/compiler-dom-3.4.5"
+      sources."@vue/compiler-sfc-2.7.16"
+      sources."@vue/shared-3.4.5"
       sources."accepts-1.3.8"
       sources."aggregate-error-3.1.0"
       sources."ansi-align-3.0.1"
@@ -64368,13 +65706,13 @@ in
       sources."at-least-node-1.0.0"
       sources."atob-2.1.2"
       sources."babel-core-7.0.0-bridge.0"
-      (sources."babel-plugin-polyfill-corejs2-0.4.6" // {
+      (sources."babel-plugin-polyfill-corejs2-0.4.7" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
-      sources."babel-plugin-polyfill-corejs3-0.8.6"
-      sources."babel-plugin-polyfill-regenerator-0.5.3"
+      sources."babel-plugin-polyfill-corejs3-0.8.7"
+      sources."babel-plugin-polyfill-regenerator-0.5.4"
       sources."backo2-1.0.2"
       sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
@@ -64397,7 +65735,7 @@ in
       })
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."browserslist-4.22.1"
+      sources."browserslist-4.22.2"
       sources."buffer-5.7.1"
       sources."buffer-alloc-1.2.0"
       sources."buffer-alloc-unsafe-1.1.0"
@@ -64416,7 +65754,7 @@ in
       })
       sources."call-bind-1.0.5"
       sources."camelcase-6.3.0"
-      sources."caniuse-lite-1.0.30001563"
+      sources."caniuse-lite-1.0.30001575"
       sources."caw-2.0.1"
       sources."chalk-4.1.2"
       sources."chardet-0.7.0"
@@ -64429,7 +65767,7 @@ in
       sources."clean-stack-2.2.0"
       sources."cli-boxes-2.2.1"
       sources."cli-cursor-3.1.0"
-      sources."cli-spinners-2.9.1"
+      sources."cli-spinners-2.9.2"
       sources."cli-width-3.0.0"
       sources."cliui-7.0.4"
       sources."clone-1.0.4"
@@ -64454,7 +65792,7 @@ in
       sources."cookie-0.5.0"
       sources."cookie-signature-1.0.6"
       sources."copy-descriptor-0.1.1"
-      sources."core-js-compat-3.33.3"
+      sources."core-js-compat-3.35.0"
       sources."core-util-is-1.0.3"
       sources."cors-2.8.5"
       (sources."cross-spawn-6.0.5" // {
@@ -64463,7 +65801,7 @@ in
         ];
       })
       sources."cssfilter-0.0.10"
-      sources."csstype-3.1.2"
+      sources."csstype-3.1.3"
       (sources."debug-4.3.4" // {
         dependencies = [
           sources."ms-2.1.2"
@@ -64516,7 +65854,7 @@ in
       sources."easy-stack-1.0.1"
       sources."ee-first-1.1.1"
       sources."ejs-3.1.9"
-      sources."electron-to-chromium-1.4.589"
+      sources."electron-to-chromium-1.4.623"
       sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
       sources."encoding-0.1.13"
@@ -64571,7 +65909,7 @@ in
       })
       sources."fast-glob-3.3.2"
       sources."fast-json-stable-stringify-2.1.0"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."fd-slicer-1.1.0"
       sources."figures-3.2.0"
       sources."file-type-8.1.0"
@@ -64616,7 +65954,7 @@ in
           sources."which-2.0.2"
         ];
       })
-      sources."flow-parser-0.222.0"
+      sources."flow-parser-0.225.1"
       sources."for-in-1.0.2"
       sources."forwarded-0.2.0"
       sources."fragment-cache-0.2.1"
@@ -64811,14 +66149,14 @@ in
       sources."node-abort-controller-3.1.1"
       sources."node-dir-0.1.17"
       sources."node-fetch-2.7.0"
-      sources."node-gyp-build-4.7.0"
+      sources."node-gyp-build-4.8.0"
       (sources."node-notifier-10.0.1" // {
         dependencies = [
           sources."uuid-8.3.2"
           sources."which-2.0.2"
         ];
       })
-      sources."node-releases-2.0.13"
+      sources."node-releases-2.0.14"
       (sources."normalize-package-data-2.5.0" // {
         dependencies = [
           sources."semver-5.7.2"
@@ -64898,12 +66236,13 @@ in
         ];
       })
       sources."posix-character-classes-0.1.1"
-      (sources."postcss-8.4.31" // {
+      (sources."postcss-8.4.33" // {
         dependencies = [
           sources."nanoid-3.3.7"
         ];
       })
       sources."prepend-http-2.0.0"
+      sources."prettier-2.8.8"
       sources."prismjs-1.29.0"
       sources."private-0.1.8"
       (sources."process-exists-4.1.0" // {
@@ -64930,7 +66269,7 @@ in
       sources."recast-0.20.5"
       sources."regenerate-1.4.2"
       sources."regenerate-unicode-properties-10.1.1"
-      sources."regenerator-runtime-0.14.0"
+      sources."regenerator-runtime-0.14.1"
       sources."regenerator-transform-0.15.2"
       sources."regex-not-1.0.2"
       sources."regexpu-core-5.3.2"
@@ -65124,7 +66463,7 @@ in
       sources."validate-npm-package-name-3.0.0"
       sources."value-or-promise-1.0.11"
       sources."vary-1.1.2"
-      sources."vue-2.7.15"
+      sources."vue-2.7.16"
       (sources."vue-codemod-0.0.5" // {
         dependencies = [
           sources."inquirer-7.3.3"
@@ -65298,14 +66637,14 @@ in
       sha512 = "7SWOLN+1eZ5e9gohQPVdA8XQstGIYei/70T5kmLP6vC41zy8BBYNt35OgLZmbpg3iOQ1vWT17ZMhVikSJySSRg==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.23.4"
-      sources."@babel/generator-7.23.4"
+      sources."@babel/code-frame-7.23.5"
+      sources."@babel/generator-7.23.6"
       sources."@babel/helper-string-parser-7.23.4"
       sources."@babel/helper-validator-identifier-7.22.20"
       sources."@babel/highlight-7.23.4"
-      sources."@babel/parser-7.23.4"
+      sources."@babel/parser-7.23.6"
       sources."@babel/template-7.22.15"
-      sources."@babel/types-7.23.4"
+      sources."@babel/types-7.23.6"
       sources."@jridgewell/gen-mapping-0.3.3"
       sources."@jridgewell/resolve-uri-3.1.1"
       sources."@jridgewell/set-array-1.1.2"
@@ -65383,7 +66722,7 @@ in
       sha512 = "rKLBZxD/lvuykdC6XB8ma9YjDl46j9ayHROZUtC1yJ2jlGpoP7RZR1tBBSjtlr260ixIW6iCkqAnHzmti5Q6CQ==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.23.4"
+      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"
@@ -65409,19 +66748,19 @@ in
       sources."@types/debug-4.1.12"
       sources."@types/estree-1.0.5"
       sources."@types/estree-jsx-1.0.3"
-      sources."@types/hast-2.3.8"
+      sources."@types/hast-2.3.9"
       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.18.11"
+      sources."@types/node-18.19.5"
       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.2"
+      sources."acorn-8.11.3"
       sources."acorn-jsx-5.3.2"
       (sources."ansi-align-3.0.1" // {
         dependencies = [
@@ -65699,7 +67038,7 @@ in
       sources."path-key-3.1.1"
       (sources."path-scurry-1.10.1" // {
         dependencies = [
-          sources."lru-cache-10.0.3"
+          sources."lru-cache-10.1.0"
         ];
       })
       sources."pause-stream-0.0.11"
@@ -65712,7 +67051,7 @@ in
       sources."pump-chain-1.0.0"
       sources."pupa-3.1.0"
       sources."quick-lru-6.1.2"
-      sources."quotation-2.0.2"
+      sources."quotation-2.0.3"
       (sources."rc-1.2.8" // {
         dependencies = [
           sources."ini-1.3.8"
@@ -65720,7 +67059,7 @@ in
       })
       (sources."read-package-json-fast-3.0.2" // {
         dependencies = [
-          sources."json-parse-even-better-errors-3.0.0"
+          sources."json-parse-even-better-errors-3.0.1"
         ];
       })
       (sources."read-pkg-7.1.0" // {
@@ -65972,16 +67311,16 @@ in
       sha512 = "7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==";
     };
     dependencies = [
-      sources."browserslist-4.22.1"
-      sources."caniuse-lite-1.0.30001563"
-      sources."electron-to-chromium-1.4.589"
+      sources."browserslist-4.22.2"
+      sources."caniuse-lite-1.0.30001575"
+      sources."electron-to-chromium-1.4.623"
       sources."escalade-3.1.1"
       sources."fraction.js-4.3.7"
       sources."nanoid-3.3.7"
-      sources."node-releases-2.0.13"
+      sources."node-releases-2.0.14"
       sources."normalize-range-0.1.2"
       sources."picocolors-1.0.0"
-      sources."postcss-8.4.31"
+      sources."postcss-8.4.33"
       sources."postcss-value-parser-4.2.0"
       sources."source-map-js-1.0.2"
       sources."update-browserslist-db-1.0.13"
@@ -66037,10 +67376,10 @@ in
   aws-cdk = nodeEnv.buildNodePackage {
     name = "aws-cdk";
     packageName = "aws-cdk";
-    version = "2.110.0";
+    version = "2.118.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.110.0.tgz";
-      sha512 = "ods6/Lh5hWv9qOMmifgg6ur/M6020Yi5mFXUolVSy/0gjzo9wFRcPAxKmQ3++Yz+rf5dadUZmmpc53evvUgR4A==";
+      url = "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.118.0.tgz";
+      sha512 = "va4F7fyj+l9oNV39supHeGr+oHBrVds6+3mruLxGmCRnGf3nKfPB8Jy/jd6TnljY8Y6yPZ6bmYFS3CiUZbOATA==";
     };
     dependencies = [
       sources."fsevents-2.3.2"
@@ -66058,13 +67397,13 @@ in
   awesome-lint = nodeEnv.buildNodePackage {
     name = "awesome-lint";
     packageName = "awesome-lint";
-    version = "1.0.0";
+    version = "1.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/awesome-lint/-/awesome-lint-1.0.0.tgz";
-      sha512 = "KNMSnpG0h7zqufvixv+lghJZEY3mvarXAfO9JuLTkziT6mSWj/jOhnq1thQsVn1gIcC9JV+pN+3uCxSELJqwVQ==";
+      url = "https://registry.npmjs.org/awesome-lint/-/awesome-lint-1.1.0.tgz";
+      sha512 = "ir+DFe1D3P2y18JP7E2xeOoBpO8dtB+NbS+oASU51FbeJs/PhC/XPNxw1spHuu9CJt3YfGJYZUYq+NafInWu+A==";
     };
     dependencies = [
-      (sources."@babel/code-frame-7.23.4" // {
+      (sources."@babel/code-frame-7.23.5" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
@@ -66081,10 +67420,10 @@ in
       sources."@sindresorhus/is-5.6.0"
       sources."@szmarczak/http-timer-5.0.1"
       sources."@types/debug-4.1.12"
-      sources."@types/eslint-8.44.7"
+      sources."@types/eslint-8.56.1"
       sources."@types/estree-1.0.5"
       sources."@types/estree-jsx-1.0.3"
-      (sources."@types/hast-2.3.8" // {
+      (sources."@types/hast-2.3.9" // {
         dependencies = [
           sources."@types/unist-2.0.10"
         ];
@@ -66123,7 +67462,7 @@ in
       sources."chalk-5.3.0"
       sources."character-entities-2.0.2"
       sources."cli-cursor-4.0.0"
-      sources."cli-spinners-2.9.1"
+      sources."cli-spinners-2.9.2"
       sources."co-3.1.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
@@ -66170,13 +67509,12 @@ in
       sources."execa-8.0.1"
       sources."extend-3.0.2"
       sources."fast-glob-3.3.2"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."fill-range-7.0.1"
       sources."form-data-encoder-2.1.4"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.2"
       sources."get-stream-8.0.1"
-      sources."git-clone-0.2.0"
       sources."github-slugger-2.0.0"
       sources."github-url-to-object-4.0.6"
       sources."glob-7.2.3"
@@ -66219,7 +67557,7 @@ in
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
       sources."json-buffer-3.0.1"
-      sources."json-parse-even-better-errors-3.0.0"
+      sources."json-parse-even-better-errors-3.0.1"
       sources."keyv-4.5.4"
       sources."kind-of-6.0.3"
       sources."kleur-4.1.5"
@@ -66228,7 +67566,7 @@ in
       sources."log-symbols-5.1.0"
       sources."longest-streak-3.1.0"
       sources."lowercase-keys-3.0.0"
-      sources."lru-cache-10.0.3"
+      sources."lru-cache-10.1.0"
       (sources."mdast-comment-marker-2.1.2" // {
         dependencies = [
           sources."@types/mdast-3.0.15"
@@ -66311,7 +67649,7 @@ in
       sources."ms-2.1.2"
       sources."normalize-package-data-6.0.0"
       sources."normalize-url-8.0.0"
-      (sources."npm-run-path-5.1.0" // {
+      (sources."npm-run-path-5.2.0" // {
         dependencies = [
           sources."path-key-4.0.0"
         ];
@@ -66948,7 +68286,7 @@ in
       sources."to-regex-range-5.0.1"
       sources."to-vfile-8.0.0"
       sources."trough-2.1.0"
-      sources."type-fest-4.8.2"
+      sources."type-fest-4.9.0"
       sources."unified-11.0.4"
       (sources."unified-lint-rule-2.1.2" // {
         dependencies = [
@@ -67051,10 +68389,10 @@ in
   bash-language-server = nodeEnv.buildNodePackage {
     name = "bash-language-server";
     packageName = "bash-language-server";
-    version = "5.0.0";
+    version = "5.1.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/bash-language-server/-/bash-language-server-5.0.0.tgz";
-      sha512 = "1S5PMQO4PwXDIiPHUE6dYd8vZF1NZqb3i4Astd7UXD4lSWnSo71MqSmTpTs/dTYcvo2/9z2IymbNPPyn/VuM2w==";
+      url = "https://registry.npmjs.org/bash-language-server/-/bash-language-server-5.1.1.tgz";
+      sha512 = "olPB+r2ewiPWeK4ZgcU2Pn9MqjHpSVROaXgFwWiVMEu3UKKhy+Wkltn0ZoIwCKTz6O+qt+lLk/oS3thTP51dZQ==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.5"
@@ -67063,8 +68401,8 @@ in
       sources."braces-3.0.2"
       sources."domino-2.1.6"
       sources."encoding-0.1.13"
-      sources."fast-glob-3.3.0"
-      sources."fastq-1.15.0"
+      sources."fast-glob-3.3.2"
+      sources."fastq-1.16.0"
       sources."fill-range-7.0.1"
       sources."fuzzy-search-3.2.1"
       sources."glob-parent-5.1.2"
@@ -67074,7 +68412,7 @@ in
       sources."is-number-7.0.0"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.5"
-      sources."node-fetch-2.6.12"
+      sources."node-fetch-2.7.0"
       sources."picomatch-2.3.1"
       sources."queue-microtask-1.2.3"
       sources."reusify-1.0.4"
@@ -67086,12 +68424,12 @@ in
       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.8"
+      sources."vscode-languageserver-textdocument-1.0.11"
       sources."vscode-languageserver-types-3.17.2"
       sources."web-tree-sitter-0.20.8"
       sources."webidl-conversions-3.0.1"
       sources."whatwg-url-5.0.0"
-      sources."zod-3.21.4"
+      sources."zod-3.22.4"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -67392,7 +68730,7 @@ in
       sources."module-deps-6.2.3"
       sources."object-inspect-1.13.1"
       sources."object-keys-1.1.1"
-      sources."object.assign-4.1.4"
+      sources."object.assign-4.1.5"
       sources."once-1.4.0"
       sources."os-browserify-0.3.0"
       sources."pako-1.0.11"
@@ -67477,37 +68815,36 @@ in
   browser-sync = nodeEnv.buildNodePackage {
     name = "browser-sync";
     packageName = "browser-sync";
-    version = "2.29.3";
+    version = "3.0.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/browser-sync/-/browser-sync-2.29.3.tgz";
-      sha512 = "NiM38O6XU84+MN+gzspVmXV2fTOoe+jBqIBx3IBdhZrdeURr6ZgznJr/p+hQ+KzkKEiGH/GcC4SQFSL0jV49bg==";
+      url = "https://registry.npmjs.org/browser-sync/-/browser-sync-3.0.2.tgz";
+      sha512 = "PC9c7aWJFVR4IFySrJxOqLwB9ENn3/TaXCXtAa0SzLwocLN3qMjN+IatbjvtCX92BjNXsY6YWg9Eb7F3Wy255g==";
     };
     dependencies = [
       sources."@socket.io/component-emitter-3.1.0"
       sources."@types/cookie-0.4.1"
       sources."@types/cors-2.8.17"
-      sources."@types/node-20.9.3"
+      sources."@types/node-20.10.7"
       sources."accepts-1.3.8"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
       sources."anymatch-3.1.3"
       sources."async-2.6.4"
       sources."async-each-series-0.1.1"
-      sources."axios-0.21.4"
       sources."balanced-match-1.0.2"
       sources."base64id-2.0.0"
       sources."batch-0.6.1"
       sources."binary-extensions-2.2.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."browser-sync-client-2.29.3"
-      sources."browser-sync-ui-2.29.3"
+      sources."browser-sync-client-3.0.2"
+      sources."browser-sync-ui-3.0.2"
       sources."bs-recipes-1.3.4"
       sources."bufferutil-4.0.8"
       sources."bytes-3.1.2"
       sources."chalk-4.1.2"
       sources."chokidar-3.5.3"
-      sources."cliui-7.0.4"
+      sources."cliui-8.0.1"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."commander-2.20.3"
@@ -67544,7 +68881,7 @@ in
           sources."ms-2.0.0"
         ];
       })
-      sources."follow-redirects-1.15.3"
+      sources."follow-redirects-1.15.4"
       sources."fresh-0.5.2"
       sources."fs-extra-3.0.1"
       sources."fsevents-2.3.3"
@@ -67570,12 +68907,6 @@ in
       sources."is-wsl-1.1.0"
       sources."jsonfile-3.0.1"
       sources."limiter-1.1.5"
-      (sources."localtunnel-2.0.2" // {
-        dependencies = [
-          sources."debug-4.3.2"
-          sources."yargs-17.1.1"
-        ];
-      })
       sources."lodash-4.17.21"
       sources."lodash.isfinite-3.3.2"
       sources."micromatch-4.0.5"
@@ -67586,11 +68917,10 @@ in
       sources."mitt-1.2.0"
       sources."ms-2.1.2"
       sources."negotiator-0.6.3"
-      sources."node-gyp-build-4.7.0"
+      sources."node-gyp-build-4.8.0"
       sources."normalize-path-3.0.0"
       sources."object-assign-4.1.1"
       sources."on-finished-2.3.0"
-      sources."openurl-1.1.1"
       sources."opn-5.3.0"
       sources."parseurl-1.3.3"
       sources."picomatch-2.3.1"
@@ -67633,9 +68963,9 @@ in
       sources."serve-static-1.13.2"
       sources."server-destroy-1.0.1"
       sources."setprototypeof-1.2.0"
-      sources."socket.io-4.7.2"
+      sources."socket.io-4.7.3"
       sources."socket.io-adapter-2.5.2"
-      sources."socket.io-client-4.7.2"
+      sources."socket.io-client-4.7.3"
       sources."socket.io-parser-4.2.4"
       sources."statuses-1.3.1"
       sources."stream-throttle-0.1.3"
@@ -67655,13 +68985,8 @@ in
       sources."ws-8.11.0"
       sources."xmlhttprequest-ssl-2.0.0"
       sources."y18n-5.0.8"
-      (sources."yargs-17.7.2" // {
-        dependencies = [
-          sources."cliui-8.0.1"
-          sources."yargs-parser-21.1.1"
-        ];
-      })
-      sources."yargs-parser-20.2.9"
+      sources."yargs-17.7.2"
+      sources."yargs-parser-21.1.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -67676,16 +69001,16 @@ in
   cdk8s-cli = nodeEnv.buildNodePackage {
     name = "cdk8s-cli";
     packageName = "cdk8s-cli";
-    version = "2.180.0";
+    version = "2.198.29";
     src = fetchurl {
-      url = "https://registry.npmjs.org/cdk8s-cli/-/cdk8s-cli-2.180.0.tgz";
-      sha512 = "kppg0iGrTMaFkJ9UAmgKMMUzwuHC2PpuvBBjUNn5AqxdQ58l2n9f16W88iJKYbxXXrRJehLW6F9upDJa5FpLyA==";
+      url = "https://registry.npmjs.org/cdk8s-cli/-/cdk8s-cli-2.198.29.tgz";
+      sha512 = "icTt1LNHgNMXDFsyCC9fn7YF5XiFkoTX3rL+OCVr4zDLlyHA61aHHN7cKC+RgaLDcky2+wu7Ftrq/DLsF5Mjcw==";
     };
     dependencies = [
       sources."@colors/colors-1.6.0"
       sources."@dabh/diagnostics-2.0.3"
-      sources."@jsii/check-node-1.92.0"
-      sources."@jsii/spec-1.92.0"
+      sources."@jsii/check-node-1.93.0"
+      sources."@jsii/spec-1.93.0"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
@@ -67701,7 +69026,7 @@ in
       sources."@octokit/request-error-2.1.0"
       sources."@octokit/rest-18.12.0"
       sources."@octokit/types-6.41.0"
-      sources."@types/node-16.18.63"
+      sources."@types/node-16.18.70"
       sources."@types/triple-beam-1.3.5"
       sources."@xmldom/xmldom-0.8.10"
       sources."aggregate-error-3.1.0"
@@ -67735,17 +69060,17 @@ in
       sources."buffer-5.7.1"
       sources."camelcase-6.3.0"
       sources."case-1.6.3"
-      sources."cdk8s-2.68.10"
-      sources."cdk8s-plus-25-2.22.64"
+      sources."cdk8s-2.68.23"
+      sources."cdk8s-plus-25-2.22.68"
       sources."chalk-4.1.2"
       sources."chardet-0.7.0"
       sources."clean-stack-2.2.0"
       sources."cli-cursor-3.1.0"
-      sources."cli-spinners-2.9.1"
+      sources."cli-spinners-2.9.2"
       sources."cli-width-3.0.0"
       sources."cliui-7.0.4"
       sources."clone-2.1.2"
-      (sources."codemaker-1.92.0" // {
+      (sources."codemaker-1.93.0" // {
         dependencies = [
           sources."fs-extra-10.1.0"
         ];
@@ -67784,7 +69109,7 @@ in
       sources."dotenv-16.3.1"
       (sources."downlevel-dts-0.11.0" // {
         dependencies = [
-          sources."typescript-5.4.0-dev.20231121"
+          sources."typescript-5.4.0-dev.20240107"
         ];
       })
       sources."emoji-regex-8.0.0"
@@ -67800,7 +69125,7 @@ in
       })
       sources."fast-deep-equal-3.1.3"
       sources."fast-glob-3.3.2"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."fecha-4.2.3"
       (sources."figures-3.2.0" // {
         dependencies = [
@@ -67811,7 +69136,7 @@ in
       sources."find-up-4.1.0"
       sources."flatted-3.2.9"
       sources."fn.name-1.1.0"
-      sources."follow-redirects-1.15.3"
+      sources."follow-redirects-1.15.4"
       sources."form-data-4.0.0"
       (sources."fs-extra-8.1.0" // {
         dependencies = [
@@ -67854,34 +69179,34 @@ in
       sources."is-plain-object-5.0.0"
       sources."is-stream-2.0.1"
       sources."is-unicode-supported-0.1.0"
-      (sources."jsii-1.92.0" // {
+      (sources."jsii-1.93.0" // {
         dependencies = [
           sources."fs-extra-10.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-pacmak-1.92.0" // {
+      (sources."jsii-pacmak-1.93.0" // {
         dependencies = [
           sources."fs-extra-10.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-reflect-1.92.0" // {
+      (sources."jsii-reflect-1.93.0" // {
         dependencies = [
           sources."fs-extra-10.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-rosetta-1.92.0" // {
+      (sources."jsii-rosetta-1.93.0" // {
         dependencies = [
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-srcmak-0.1.972" // {
+      (sources."jsii-srcmak-0.1.999" // {
         dependencies = [
           sources."cliui-8.0.1"
           sources."fs-extra-9.1.0"
-          (sources."jsii-5.2.32" // {
+          (sources."jsii-5.2.44" // {
             dependencies = [
               sources."yargs-17.7.2"
             ];
@@ -67892,7 +69217,7 @@ in
       })
       sources."json-schema-0.4.0"
       sources."json-schema-traverse-1.0.0"
-      sources."json2jsii-0.4.0"
+      sources."json2jsii-0.4.3"
       sources."jsonfile-6.1.0"
       sources."kuler-2.0.0"
       sources."locate-path-5.0.0"
@@ -67924,7 +69249,7 @@ in
       sources."once-1.4.0"
       sources."one-time-1.0.0"
       sources."onetime-5.1.2"
-      sources."oo-ascii-tree-1.92.0"
+      sources."oo-ascii-tree-1.93.0"
       sources."ora-5.4.1"
       sources."os-tmpdir-1.0.2"
       sources."p-limit-2.3.0"
@@ -67956,9 +69281,9 @@ in
       sources."safe-stable-stringify-2.4.3"
       sources."safer-buffer-2.1.2"
       sources."semver-7.5.4"
-      (sources."semver-intersect-1.4.0" // {
+      (sources."semver-intersect-1.5.0" // {
         dependencies = [
-          sources."semver-5.7.2"
+          sources."semver-6.3.1"
         ];
       })
       sources."set-blocking-2.0.0"
@@ -68038,13 +69363,13 @@ in
   cdktf-cli = nodeEnv.buildNodePackage {
     name = "cdktf-cli";
     packageName = "cdktf-cli";
-    version = "0.19.1";
+    version = "0.19.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/cdktf-cli/-/cdktf-cli-0.19.1.tgz";
-      sha512 = "itqPbZKIYpdCCIUGzX/yVSrcD0U16XqpNbnE8hX7E3Kg2Lus5/fjeXX2ijyZw3vp63ScS+5PStEyMNooCh84IA==";
+      url = "https://registry.npmjs.org/cdktf-cli/-/cdktf-cli-0.19.2.tgz";
+      sha512 = "rwd0yOJmHecOnQsnZxsKFgBO2r1AuPw34IfKSx+FSK6H7aO13Pak+tef6tlhn7f0K79Abk2ZGD3OLs8TeG+78w==";
     };
     dependencies = [
-      (sources."@babel/code-frame-7.23.4" // {
+      (sources."@babel/code-frame-7.23.5" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -68055,7 +69380,7 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."@babel/generator-7.23.4"
+      sources."@babel/generator-7.23.6"
       sources."@babel/helper-string-parser-7.23.4"
       sources."@babel/helper-validator-identifier-7.22.20"
       (sources."@babel/highlight-7.23.4" // {
@@ -68069,17 +69394,17 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."@babel/parser-7.23.4"
+      sources."@babel/parser-7.23.6"
       sources."@babel/template-7.22.15"
-      sources."@babel/types-7.23.4"
-      sources."@cdktf/cli-core-0.19.1"
-      (sources."@cdktf/commons-0.19.1" // {
+      sources."@babel/types-7.23.6"
+      sources."@cdktf/cli-core-0.19.2"
+      (sources."@cdktf/commons-0.19.2" // {
         dependencies = [
-          sources."fs-extra-11.1.1"
+          sources."fs-extra-11.2.0"
           sources."uuid-9.0.1"
         ];
       })
-      (sources."@cdktf/hcl2cdk-0.19.1" // {
+      (sources."@cdktf/hcl2cdk-0.19.2" // {
         dependencies = [
           sources."brace-expansion-2.0.1"
           sources."camelcase-6.3.0"
@@ -68087,60 +69412,60 @@ in
           sources."minimatch-9.0.3"
         ];
       })
-      (sources."@cdktf/hcl2json-0.19.1" // {
+      (sources."@cdktf/hcl2json-0.19.2" // {
         dependencies = [
-          sources."fs-extra-11.1.1"
+          sources."fs-extra-11.2.0"
         ];
       })
       sources."@cdktf/node-pty-prebuilt-multiarch-0.10.1-pre.11"
-      (sources."@cdktf/provider-generator-0.19.1" // {
+      (sources."@cdktf/provider-generator-0.19.2" // {
         dependencies = [
           sources."@types/node-18.18.8"
         ];
       })
-      (sources."@cdktf/provider-schema-0.19.1" // {
+      (sources."@cdktf/provider-schema-0.19.2" // {
         dependencies = [
-          sources."fs-extra-11.1.1"
+          sources."fs-extra-11.2.0"
         ];
       })
       (sources."@inquirer/checkbox-1.5.0" // {
         dependencies = [
           sources."@inquirer/core-5.1.1"
-          sources."cli-spinners-2.9.1"
+          sources."cli-spinners-2.9.2"
           sources."signal-exit-4.1.0"
         ];
       })
       (sources."@inquirer/confirm-2.0.15" // {
         dependencies = [
           sources."@inquirer/core-5.1.1"
-          sources."cli-spinners-2.9.1"
+          sources."cli-spinners-2.9.2"
           sources."signal-exit-4.1.0"
         ];
       })
       (sources."@inquirer/core-2.3.1" // {
         dependencies = [
           sources."@types/mute-stream-0.0.1"
-          sources."cli-spinners-2.9.1"
+          sources."cli-spinners-2.9.2"
         ];
       })
       (sources."@inquirer/editor-1.2.13" // {
         dependencies = [
           sources."@inquirer/core-5.1.1"
-          sources."cli-spinners-2.9.1"
+          sources."cli-spinners-2.9.2"
           sources."signal-exit-4.1.0"
         ];
       })
       (sources."@inquirer/expand-1.1.14" // {
         dependencies = [
           sources."@inquirer/core-5.1.1"
-          sources."cli-spinners-2.9.1"
+          sources."cli-spinners-2.9.2"
           sources."signal-exit-4.1.0"
         ];
       })
       (sources."@inquirer/input-1.2.14" // {
         dependencies = [
           sources."@inquirer/core-5.1.1"
-          sources."cli-spinners-2.9.1"
+          sources."cli-spinners-2.9.2"
           sources."signal-exit-4.1.0"
         ];
       })
@@ -68149,14 +69474,14 @@ in
       (sources."@inquirer/rawlist-1.2.14" // {
         dependencies = [
           sources."@inquirer/core-5.1.1"
-          sources."cli-spinners-2.9.1"
+          sources."cli-spinners-2.9.2"
           sources."signal-exit-4.1.0"
         ];
       })
       (sources."@inquirer/select-1.3.1" // {
         dependencies = [
           sources."@inquirer/core-5.1.1"
-          sources."cli-spinners-2.9.1"
+          sources."cli-spinners-2.9.2"
           sources."signal-exit-4.1.0"
         ];
       })
@@ -68176,21 +69501,21 @@ in
       sources."@jridgewell/set-array-1.1.2"
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@jridgewell/trace-mapping-0.3.20"
-      sources."@jsii/check-node-1.92.0"
-      sources."@jsii/spec-1.92.0"
+      sources."@jsii/check-node-1.93.0"
+      sources."@jsii/spec-1.93.0"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@sentry-internal/tracing-7.81.1"
-      sources."@sentry/core-7.81.1"
-      sources."@sentry/node-7.81.1"
-      sources."@sentry/types-7.81.1"
-      sources."@sentry/utils-7.81.1"
+      sources."@sentry-internal/tracing-7.92.0"
+      sources."@sentry/core-7.92.0"
+      sources."@sentry/node-7.92.0"
+      sources."@sentry/types-7.92.0"
+      sources."@sentry/utils-7.92.0"
       sources."@types/mute-stream-0.0.4"
-      sources."@types/node-20.9.3"
+      sources."@types/node-20.10.7"
       sources."@types/prop-types-15.7.11"
-      sources."@types/react-18.2.38"
-      sources."@types/scheduler-0.16.7"
+      sources."@types/react-18.2.47"
+      sources."@types/scheduler-0.16.8"
       sources."@types/wrap-ansi-3.0.0"
       sources."@types/yauzl-2.10.3"
       sources."@types/yoga-layout-1.9.2"
@@ -68233,7 +69558,7 @@ in
       sources."call-bind-1.0.5"
       sources."camelcase-5.3.1"
       sources."case-1.6.3"
-      sources."cdktf-0.19.1"
+      sources."cdktf-0.19.2"
       sources."chalk-4.1.2"
       sources."chardet-0.7.0"
       sources."chokidar-3.5.3"
@@ -68244,10 +69569,14 @@ in
       sources."cli-spinners-2.7.0"
       sources."cli-truncate-2.1.0"
       sources."cli-width-4.1.0"
-      sources."cliui-6.0.0"
+      (sources."cliui-8.0.1" // {
+        dependencies = [
+          sources."wrap-ansi-7.0.0"
+        ];
+      })
       sources."clone-2.1.2"
       sources."code-excerpt-3.0.0"
-      (sources."codemaker-1.92.0" // {
+      (sources."codemaker-1.93.0" // {
         dependencies = [
           sources."camelcase-6.3.0"
           sources."decamelize-5.0.1"
@@ -68266,7 +69595,7 @@ in
       sources."crc32-stream-4.0.3"
       sources."cross-fetch-3.1.8"
       sources."cross-spawn-7.0.3"
-      sources."csstype-3.1.2"
+      sources."csstype-3.1.3"
       sources."date-format-4.0.14"
       sources."debug-4.3.4"
       sources."decamelize-1.2.0"
@@ -68286,7 +69615,7 @@ in
       sources."detect-port-1.5.1"
       (sources."downlevel-dts-0.11.0" // {
         dependencies = [
-          sources."typescript-5.4.0-dev.20231121"
+          sources."typescript-5.4.0-dev.20240107"
         ];
       })
       sources."eastasianwidth-0.2.0"
@@ -68316,7 +69645,7 @@ in
       })
       sources."fast-deep-equal-3.1.3"
       sources."fast-glob-3.3.2"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."fd-slicer-1.1.0"
       (sources."figures-3.2.0" // {
         dependencies = [
@@ -68326,7 +69655,7 @@ in
       sources."fill-range-7.0.1"
       sources."find-up-4.1.0"
       sources."flatted-3.2.9"
-      sources."follow-redirects-1.15.3"
+      sources."follow-redirects-1.15.4"
       sources."for-each-0.3.3"
       (sources."foreground-child-3.1.1" // {
         dependencies = [
@@ -68380,7 +69709,7 @@ in
         ];
       })
       sources."ink-spinner-4.0.3"
-      sources."ink-table-3.0.0"
+      sources."ink-table-3.1.0"
       sources."ink-testing-library-2.1.0"
       sources."ink-use-stdout-dimensions-1.0.5"
       sources."internal-slot-1.0.6"
@@ -68421,36 +69750,53 @@ in
       sources."jackspeak-2.3.6"
       sources."js-tokens-4.0.0"
       sources."jsesc-2.5.2"
-      sources."jsii-5.2.32"
-      (sources."jsii-pacmak-1.92.0" // {
+      (sources."jsii-5.3.2" // {
+        dependencies = [
+          sources."typescript-5.3.3"
+        ];
+      })
+      (sources."jsii-pacmak-1.93.0" // {
         dependencies = [
           sources."cliui-7.0.4"
           sources."escape-string-regexp-4.0.0"
           sources."fs-extra-10.1.0"
-          sources."jsii-1.92.0"
-          sources."jsii-rosetta-1.92.0"
+          sources."jsii-1.93.0"
+          sources."jsii-rosetta-1.93.0"
           sources."typescript-3.9.10"
           sources."wrap-ansi-7.0.0"
-          sources."y18n-5.0.8"
           sources."yargs-16.2.0"
           sources."yargs-parser-20.2.9"
         ];
       })
-      (sources."jsii-reflect-1.92.0" // {
+      (sources."jsii-reflect-1.93.0" // {
         dependencies = [
           sources."cliui-7.0.4"
           sources."fs-extra-10.1.0"
           sources."wrap-ansi-7.0.0"
-          sources."y18n-5.0.8"
           sources."yargs-16.2.0"
           sources."yargs-parser-20.2.9"
         ];
       })
-      sources."jsii-rosetta-5.2.3"
-      (sources."jsii-srcmak-0.1.972" // {
+      (sources."jsii-rosetta-5.3.2" // {
+        dependencies = [
+          sources."typescript-5.3.3"
+        ];
+      })
+      (sources."jsii-srcmak-0.1.999" // {
         dependencies = [
           sources."fs-extra-9.1.0"
-          sources."yargs-15.4.1"
+          (sources."jsii-5.2.44" // {
+            dependencies = [
+              sources."yargs-17.7.2"
+            ];
+          })
+          (sources."yargs-15.4.1" // {
+            dependencies = [
+              sources."cliui-6.0.0"
+              sources."y18n-4.0.3"
+              sources."yargs-parser-18.1.3"
+            ];
+          })
         ];
       })
       sources."json-schema-traverse-1.0.0"
@@ -68492,9 +69838,9 @@ in
       sources."nan-2.18.0"
       sources."napi-build-utils-1.0.2"
       sources."ncp-2.0.0"
-      sources."node-abi-3.51.0"
+      sources."node-abi-3.54.0"
       sources."node-fetch-2.7.0"
-      sources."node-gyp-build-4.7.0"
+      sources."node-gyp-build-4.8.0"
       sources."normalize-path-3.0.0"
       sources."npm-run-path-4.0.1"
       sources."object-assign-4.1.1"
@@ -68502,11 +69848,11 @@ in
       sources."object-inspect-1.13.1"
       sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
-      sources."object.assign-4.1.4"
+      sources."object.assign-4.1.5"
       sources."obliterator-2.0.4"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
-      sources."oo-ascii-tree-1.92.0"
+      sources."oo-ascii-tree-1.93.0"
       sources."open-7.4.2"
       sources."os-tmpdir-1.0.2"
       sources."p-limit-2.3.0"
@@ -68520,7 +69866,7 @@ in
       sources."path-parse-1.0.7"
       (sources."path-scurry-1.10.1" // {
         dependencies = [
-          sources."lru-cache-10.0.3"
+          sources."lru-cache-10.1.0"
         ];
       })
       sources."pend-1.2.0"
@@ -68569,9 +69915,9 @@ in
       sources."sax-1.3.0"
       sources."scheduler-0.20.2"
       sources."semver-7.5.4"
-      (sources."semver-intersect-1.4.0" // {
+      (sources."semver-intersect-1.5.0" // {
         dependencies = [
-          sources."semver-5.7.2"
+          sources."semver-6.3.1"
         ];
       })
       sources."set-blocking-2.0.0"
@@ -68636,17 +69982,10 @@ in
       sources."xml-js-1.6.11"
       sources."xmlbuilder-15.1.1"
       sources."xstate-4.38.3"
-      sources."y18n-4.0.3"
+      sources."y18n-5.0.8"
       sources."yallist-4.0.0"
-      (sources."yargs-17.7.2" // {
-        dependencies = [
-          sources."cliui-8.0.1"
-          sources."wrap-ansi-7.0.0"
-          sources."y18n-5.0.8"
-          sources."yargs-parser-21.1.1"
-        ];
-      })
-      sources."yargs-parser-18.1.3"
+      sources."yargs-17.7.2"
+      sources."yargs-parser-21.1.1"
       sources."yauzl-2.10.0"
       sources."yoga-layout-prebuilt-1.10.0"
       (sources."zip-stream-4.1.1" // {
@@ -68690,7 +70029,7 @@ in
       sources."meow-12.1.1"
       sources."merge-stream-2.0.0"
       sources."mimic-fn-4.0.0"
-      (sources."npm-run-path-5.1.0" // {
+      (sources."npm-run-path-5.2.0" // {
         dependencies = [
           sources."path-key-4.0.0"
         ];
@@ -68717,10 +70056,10 @@ in
   coc-clangd = nodeEnv.buildNodePackage {
     name = "coc-clangd";
     packageName = "coc-clangd";
-    version = "0.29.3";
+    version = "0.30.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-clangd/-/coc-clangd-0.29.3.tgz";
-      sha512 = "saAVd3CJ8W/abJKJDiJ2UnzTii4qIbnUS7Stb+WHmpfSB2h7iGzjMWtgS1t8Gk7sWOBrJPdwOSHLFzVl8rtOEQ==";
+      url = "https://registry.npmjs.org/coc-clangd/-/coc-clangd-0.30.1.tgz";
+      sha512 = "FcVDRZd0DjxhQjCMecsSO0vTwiTu7n9+klNl6QJp/ehvTAuwDEU/p6bi3OiQ0KOq12btVUP134+aZBEEAdDHmA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -68980,10 +70319,10 @@ in
   coc-go = nodeEnv.buildNodePackage {
     name = "coc-go";
     packageName = "coc-go";
-    version = "1.3.29";
+    version = "1.3.33";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-go/-/coc-go-1.3.29.tgz";
-      sha512 = "3+fV9iJ8vQkfwHuQZKvUg4+47XbENWD5xdVX7nFHRXqXHr1OeAai8FVfoOK/pGrKsdr54NsgQNxGEuCO7Rszfg==";
+      url = "https://registry.npmjs.org/coc-go/-/coc-go-1.3.33.tgz";
+      sha512 = "+sO77p/teqfjWiAwfU9n6PU1XKXDOUOsvD9NKetySOjgew2++/oRvedUXLwOPJYV0DT7aIW5JjcrEIHLTiCeNQ==";
     };
     dependencies = [
       sources."isexe-2.0.0"
@@ -69167,10 +70506,10 @@ in
   coc-markdownlint = nodeEnv.buildNodePackage {
     name = "coc-markdownlint";
     packageName = "coc-markdownlint";
-    version = "1.32.0";
+    version = "1.32.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-markdownlint/-/coc-markdownlint-1.32.0.tgz";
-      sha512 = "RoHRpSp8OUVIwvp9gRYGiMnDp6CmHNfknO8UM0Z+3R9GXrnNcVFWKCsbUpgUJ3+y5zbTkQdpi8lW2osURpLYHQ==";
+      url = "https://registry.npmjs.org/coc-markdownlint/-/coc-markdownlint-1.32.1.tgz";
+      sha512 = "SWY6MMnXnoktF8pQtYbL09LGbqiyr2eqaUGbnk9jaMEQV5uYN2LthnEb3M1G5v6PA0xdTNaZyZ2Ixj3xnnHDCQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -69202,7 +70541,7 @@ in
       sources."available-typed-arrays-1.0.5"
       sources."await-semaphore-0.1.3"
       sources."balanced-match-1.0.2"
-      sources."big-integer-1.6.51"
+      sources."big-integer-1.6.52"
       sources."binary-0.3.0"
       sources."bluebird-3.4.7"
       sources."brace-expansion-1.1.11"
@@ -69240,9 +70579,9 @@ in
       sources."fast-diff-1.3.0"
       sources."fb-watchman-2.0.2"
       sources."flatted-3.2.9"
-      sources."follow-redirects-1.15.3"
+      sources."follow-redirects-1.15.4"
       sources."for-each-0.3.3"
-      sources."fp-ts-2.16.1"
+      sources."fp-ts-2.16.2"
       sources."fs-extra-8.1.0"
       (sources."fs-minipass-2.1.0" // {
         dependencies = [
@@ -69336,7 +70675,7 @@ in
       sources."npm-run-path-2.0.2"
       sources."object-inspect-1.13.1"
       sources."object-keys-1.1.1"
-      sources."object.assign-4.1.4"
+      sources."object.assign-4.1.5"
       sources."once-1.4.0"
       sources."p-finally-1.0.0"
       sources."path-is-absolute-1.0.1"
@@ -69461,13 +70800,13 @@ in
   coc-pyright = nodeEnv.buildNodePackage {
     name = "coc-pyright";
     packageName = "coc-pyright";
-    version = "1.1.336";
+    version = "1.1.342";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-pyright/-/coc-pyright-1.1.336.tgz";
-      sha512 = "libhILl9i1RRuCh0QWyurcOFxx4z9aT2tj1WLigEnbCzeHv2owl746XkQnavH6P66zAEjlDguVoSkWl3Zy3ihQ==";
+      url = "https://registry.npmjs.org/coc-pyright/-/coc-pyright-1.1.342.tgz";
+      sha512 = "iJUTiN0vyVcPWyAXJhURYfGqnNo8wKiX33xTHQ5NxPHx0ljBvBwwQBXI4Yw6nOxZi+RVtW2U5FEritydW3rUUg==";
     };
     dependencies = [
-      sources."pyright-1.1.336"
+      sources."pyright-1.1.344"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -69559,21 +70898,21 @@ in
   coc-sh = nodeEnv.buildNodePackage {
     name = "coc-sh";
     packageName = "coc-sh";
-    version = "1.2.0";
+    version = "1.2.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-sh/-/coc-sh-1.2.0.tgz";
-      sha512 = "CmCSQ8/L6KEBQ5/QuFk4irlLxhAdKnjpu5gMylHWdZL8QQVKamMadURMj/Pm2jTMtV4YCoWFvVnBCAR26pfROg==";
+      url = "https://registry.npmjs.org/coc-sh/-/coc-sh-1.2.2.tgz";
+      sha512 = "3aaCl62MAgDWDZ4McFobb4NcvHkg0XPsvDffZ7Ej6C7RUgSwPF9xJTGNjP+2KptIEm9o4H7TbBcxX7944+p2fQ==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."bash-language-server-5.0.0"
+      sources."bash-language-server-5.1.1"
       sources."braces-3.0.2"
       sources."domino-2.1.6"
       sources."encoding-0.1.13"
-      sources."fast-glob-3.3.0"
-      sources."fastq-1.15.0"
+      sources."fast-glob-3.3.2"
+      sources."fastq-1.16.0"
       sources."fill-range-7.0.1"
       sources."fuzzy-search-3.2.1"
       sources."glob-parent-5.1.2"
@@ -69583,7 +70922,7 @@ in
       sources."is-number-7.0.0"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.5"
-      sources."node-fetch-2.6.12"
+      sources."node-fetch-2.7.0"
       sources."picomatch-2.3.1"
       sources."queue-microtask-1.2.3"
       sources."reusify-1.0.4"
@@ -69596,12 +70935,12 @@ in
       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.8"
+      sources."vscode-languageserver-textdocument-1.0.11"
       sources."vscode-languageserver-types-3.17.2"
       sources."web-tree-sitter-0.20.8"
       sources."webidl-conversions-3.0.1"
       sources."whatwg-url-5.0.0"
-      sources."zod-3.21.4"
+      sources."zod-3.22.4"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -69810,15 +71149,15 @@ in
     };
     dependencies = [
       sources."@ampproject/remapping-2.2.1"
-      (sources."@babel/code-frame-7.23.4" // {
+      (sources."@babel/code-frame-7.23.5" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/compat-data-7.23.3"
-      sources."@babel/core-7.23.3"
-      sources."@babel/generator-7.23.4"
-      sources."@babel/helper-compilation-targets-7.22.15"
+      sources."@babel/compat-data-7.23.5"
+      sources."@babel/core-7.23.7"
+      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"
@@ -69828,17 +71167,17 @@ in
       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.22.15"
-      sources."@babel/helpers-7.23.4"
+      sources."@babel/helper-validator-option-7.23.5"
+      sources."@babel/helpers-7.23.7"
       (sources."@babel/highlight-7.23.4" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.23.4"
+      sources."@babel/parser-7.23.6"
       sources."@babel/template-7.22.15"
-      sources."@babel/traverse-7.23.4"
-      sources."@babel/types-7.23.4"
+      sources."@babel/traverse-7.23.7"
+      sources."@babel/types-7.23.6"
       sources."@jridgewell/gen-mapping-0.3.3"
       sources."@jridgewell/resolve-uri-3.1.1"
       sources."@jridgewell/set-array-1.1.2"
@@ -69873,11 +71212,11 @@ in
         ];
       })
       sources."braces-3.0.2"
-      sources."browserslist-4.22.1"
+      sources."browserslist-4.22.2"
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001563"
+      sources."caniuse-lite-1.0.30001575"
       (sources."chalk-4.1.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -69914,7 +71253,7 @@ in
       sources."domelementtype-1.3.1"
       sources."domhandler-2.4.2"
       sources."domutils-1.7.0"
-      sources."electron-to-chromium-1.4.589"
+      sources."electron-to-chromium-1.4.623"
       sources."emoji-regex-8.0.0"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
@@ -69926,7 +71265,7 @@ in
       sources."fast-diff-1.3.0"
       sources."fast-glob-3.3.2"
       sources."fastest-levenshtein-1.0.16"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."file-entry-cache-6.0.1"
       sources."fill-range-7.0.1"
       sources."find-up-4.1.0"
@@ -70017,7 +71356,7 @@ in
         ];
       })
       sources."ms-2.1.2"
-      sources."node-releases-2.0.13"
+      sources."node-releases-2.0.14"
       (sources."normalize-package-data-3.0.3" // {
         dependencies = [
           sources."lru-cache-6.0.0"
@@ -70054,7 +71393,7 @@ in
       sources."postcss-safe-parser-4.0.2"
       sources."postcss-sass-0.4.4"
       sources."postcss-scss-2.1.1"
-      sources."postcss-selector-parser-6.0.13"
+      sources."postcss-selector-parser-6.0.15"
       sources."postcss-syntax-0.36.2"
       sources."postcss-value-parser-4.2.0"
       sources."punycode-2.3.1"
@@ -70269,7 +71608,7 @@ in
       sha512 = "5Zxv2Adtb6Mlpv2YdKErhf8ntxiBl1UyrbEqo7gR9nFIAfi3o0Ue6TJTpZfOhQViFQxLjJAS65IQVRaNlbhkxw==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.23.4"
+      sources."@babel/code-frame-7.23.5"
       sources."@babel/helper-validator-identifier-7.22.20"
       sources."@babel/highlight-7.23.4"
       sources."ansi-styles-3.2.1"
@@ -70364,7 +71703,7 @@ in
       sha512 = "PItTyCjeAPF0V7wZO+viGCO2PxrDLujRcb4wN4TKUFLni8fw3p5czviA6JFl5s8WLdkfjH6XkrciTwcVWH2srQ==";
     };
     dependencies = [
-      sources."typescript-5.3.2"
+      sources."typescript-5.3.3"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -70494,7 +71833,7 @@ in
       sources."get-intrinsic-1.2.2"
       sources."glob-7.2.3"
       sources."glob-parent-5.1.2"
-      sources."globals-13.23.0"
+      sources."globals-13.24.0"
       sources."gopd-1.0.1"
       sources."has-flag-3.0.0"
       sources."has-property-descriptors-1.0.1"
@@ -70893,7 +72232,7 @@ in
       sources."colors-1.4.0"
       sources."commander-2.20.3"
       sources."escape-string-regexp-1.0.5"
-      sources."follow-redirects-1.15.3"
+      sources."follow-redirects-1.15.4"
       sources."has-flag-3.0.0"
       sources."is-fullwidth-code-point-2.0.0"
       sources."log-symbols-2.2.0"
@@ -70926,7 +72265,7 @@ in
       sha512 = "1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==";
     };
     dependencies = [
-      sources."@babel/runtime-7.23.4"
+      sources."@babel/runtime-7.23.7"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
       (sources."chalk-4.1.2" // {
@@ -70944,7 +72283,7 @@ in
       sources."has-flag-4.0.0"
       sources."is-fullwidth-code-point-3.0.0"
       sources."lodash-4.17.21"
-      sources."regenerator-runtime-0.14.0"
+      sources."regenerator-runtime-0.14.1"
       sources."require-directory-2.1.1"
       sources."rxjs-7.8.1"
       sources."shell-quote-1.8.1"
@@ -70978,7 +72317,7 @@ in
       sha512 = "MscvILWZ6nWOoC+p/3Nn3D2cVLkjeQjyZPUr0bQ+vUORE/SPrkClJh8BOoMNpS4yk+zFJ5LlgXACxH6XGQoRXA==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.23.4"
+      sources."@babel/code-frame-7.23.5"
       sources."@babel/helper-validator-identifier-7.22.20"
       sources."@babel/highlight-7.23.4"
       sources."@hutson/parse-repository-url-5.0.0"
@@ -71023,12 +72362,12 @@ in
       sources."is-obj-2.0.0"
       sources."is-text-path-2.0.0"
       sources."js-tokens-4.0.0"
-      sources."json-parse-even-better-errors-3.0.0"
+      sources."json-parse-even-better-errors-3.0.1"
       sources."json-stringify-safe-5.0.1"
       sources."jsonparse-1.3.1"
       sources."lines-and-columns-2.0.4"
       sources."locate-path-7.2.0"
-      sources."lru-cache-10.0.3"
+      sources."lru-cache-10.1.0"
       sources."meow-12.1.1"
       sources."minimist-1.2.8"
       sources."neo-async-2.6.2"
@@ -71059,7 +72398,7 @@ in
       sources."tempfile-5.0.0"
       sources."text-extensions-2.4.0"
       sources."through-2.3.8"
-      sources."type-fest-4.8.2"
+      sources."type-fest-4.9.0"
       sources."uglify-js-3.17.4"
       sources."validate-npm-package-license-3.0.4"
       sources."wordwrap-1.0.0"
@@ -71097,7 +72436,7 @@ in
       sources."dir-glob-3.0.1"
       sources."escape-string-regexp-5.0.0"
       sources."fast-glob-3.3.2"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."fill-range-7.0.1"
       sources."glob-parent-5.1.2"
       sources."globby-13.2.2"
@@ -71157,7 +72496,7 @@ in
       sources."@cycle/run-3.4.0"
       sources."@cycle/time-0.10.1"
       sources."@types/cookiejar-2.1.5"
-      sources."@types/node-20.9.3"
+      sources."@types/node-20.10.7"
       sources."@types/superagent-3.8.2"
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-2.1.1"
@@ -71332,35 +72671,24 @@ in
   cspell = nodeEnv.buildNodePackage {
     name = "cspell";
     packageName = "cspell";
-    version = "8.0.0";
+    version = "8.3.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/cspell/-/cspell-8.0.0.tgz";
-      sha512 = "Nayy25Dh+GAlDFDpVZaQhmidP947rpj1Pn9lmZ3nUFjD9W/yj0h0vrjMLMN4dbonddkmKh4t51C+7NuMP405hg==";
+      url = "https://registry.npmjs.org/cspell/-/cspell-8.3.2.tgz";
+      sha512 = "V8Ub3RO/a5lwSsltW/ib3Z3G/sczKtSpBBN1JChzbSCfEgaY2mJY8JW0BpkSV+Ug6uJitpXNOOaxa3Xr489i7g==";
     };
     dependencies = [
-      (sources."@babel/code-frame-7.23.4" // {
-        dependencies = [
-          sources."chalk-2.4.2"
-        ];
-      })
-      sources."@babel/helper-validator-identifier-7.22.20"
-      (sources."@babel/highlight-7.23.4" // {
-        dependencies = [
-          sources."chalk-2.4.2"
-        ];
-      })
-      sources."@cspell/cspell-bundled-dicts-8.0.0"
-      sources."@cspell/cspell-json-reporter-8.0.0"
-      sources."@cspell/cspell-pipe-8.0.0"
-      sources."@cspell/cspell-resolver-8.0.0"
-      sources."@cspell/cspell-service-bus-8.0.0"
-      sources."@cspell/cspell-types-8.0.0"
+      sources."@cspell/cspell-bundled-dicts-8.3.2"
+      sources."@cspell/cspell-json-reporter-8.3.2"
+      sources."@cspell/cspell-pipe-8.3.2"
+      sources."@cspell/cspell-resolver-8.3.2"
+      sources."@cspell/cspell-service-bus-8.3.2"
+      sources."@cspell/cspell-types-8.3.2"
       sources."@cspell/dict-ada-4.0.2"
-      sources."@cspell/dict-aws-4.0.0"
-      sources."@cspell/dict-bash-4.1.2"
-      sources."@cspell/dict-companies-3.0.28"
-      sources."@cspell/dict-cpp-5.0.9"
-      sources."@cspell/dict-cryptocurrencies-4.0.0"
+      sources."@cspell/dict-aws-4.0.1"
+      sources."@cspell/dict-bash-4.1.3"
+      sources."@cspell/dict-companies-3.0.29"
+      sources."@cspell/dict-cpp-5.1.1"
+      sources."@cspell/dict-cryptocurrencies-5.0.0"
       sources."@cspell/dict-csharp-4.0.2"
       sources."@cspell/dict-css-4.0.12"
       sources."@cspell/dict-dart-2.0.3"
@@ -71369,16 +72697,16 @@ in
       sources."@cspell/dict-docker-1.1.7"
       sources."@cspell/dict-dotnet-5.0.0"
       sources."@cspell/dict-elixir-4.0.3"
-      sources."@cspell/dict-en-common-misspellings-1.0.2"
+      sources."@cspell/dict-en-common-misspellings-2.0.0"
       sources."@cspell/dict-en-gb-1.1.33"
-      sources."@cspell/dict-en_us-4.3.11"
+      sources."@cspell/dict-en_us-4.3.13"
       sources."@cspell/dict-filetypes-3.0.3"
       sources."@cspell/dict-fonts-4.0.0"
       sources."@cspell/dict-fsharp-1.0.1"
       sources."@cspell/dict-fullstack-3.1.5"
       sources."@cspell/dict-gaming-terms-1.0.4"
-      sources."@cspell/dict-git-2.0.0"
-      sources."@cspell/dict-golang-6.0.4"
+      sources."@cspell/dict-git-3.0.0"
+      sources."@cspell/dict-golang-6.0.5"
       sources."@cspell/dict-haskell-4.0.1"
       sources."@cspell/dict-html-4.0.5"
       sources."@cspell/dict-html-symbol-entities-4.0.0"
@@ -71386,90 +72714,80 @@ in
       sources."@cspell/dict-k8s-1.0.2"
       sources."@cspell/dict-latex-4.0.0"
       sources."@cspell/dict-lorem-ipsum-4.0.0"
-      sources."@cspell/dict-lua-4.0.2"
+      sources."@cspell/dict-lua-4.0.3"
       sources."@cspell/dict-makefile-1.0.0"
       sources."@cspell/dict-node-4.0.3"
-      sources."@cspell/dict-npm-5.0.13"
-      sources."@cspell/dict-php-4.0.4"
-      sources."@cspell/dict-powershell-5.0.2"
+      sources."@cspell/dict-npm-5.0.14"
+      sources."@cspell/dict-php-4.0.5"
+      sources."@cspell/dict-powershell-5.0.3"
       sources."@cspell/dict-public-licenses-2.0.5"
-      sources."@cspell/dict-python-4.1.10"
+      sources."@cspell/dict-python-4.1.11"
       sources."@cspell/dict-r-2.0.1"
-      sources."@cspell/dict-ruby-5.0.1"
+      sources."@cspell/dict-ruby-5.0.2"
       sources."@cspell/dict-rust-4.0.1"
       sources."@cspell/dict-scala-5.0.0"
-      sources."@cspell/dict-software-terms-3.3.10"
-      sources."@cspell/dict-sql-2.1.2"
+      sources."@cspell/dict-software-terms-3.3.16"
+      sources."@cspell/dict-sql-2.1.3"
       sources."@cspell/dict-svelte-1.0.2"
       sources."@cspell/dict-swift-2.0.1"
       sources."@cspell/dict-typescript-3.1.2"
       sources."@cspell/dict-vue-3.0.0"
-      sources."@cspell/dynamic-import-8.0.0"
-      sources."@cspell/strong-weak-map-8.0.0"
+      sources."@cspell/dynamic-import-8.3.2"
+      sources."@cspell/strong-weak-map-8.3.2"
+      sources."@isaacs/cliui-8.0.2"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."ansi-regex-6.0.1"
-      sources."ansi-styles-3.2.1"
-      sources."argparse-2.0.1"
+      sources."ansi-regex-5.0.1"
+      sources."ansi-styles-6.2.1"
       sources."array-timsort-1.0.3"
       sources."balanced-match-1.0.2"
-      sources."brace-expansion-1.1.11"
+      sources."brace-expansion-2.0.1"
       sources."braces-3.0.2"
       sources."callsites-3.1.0"
       sources."chalk-5.3.0"
       sources."chalk-template-1.1.0"
       sources."clear-module-4.1.2"
-      sources."color-convert-1.9.3"
-      sources."color-name-1.1.3"
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
       sources."commander-11.1.0"
       sources."comment-json-4.2.3"
-      sources."concat-map-0.0.1"
       sources."configstore-6.0.0"
       sources."core-util-is-1.0.3"
-      sources."cosmiconfig-8.0.0"
+      sources."cross-spawn-7.0.3"
       sources."crypto-random-string-4.0.0"
-      (sources."cspell-dictionary-8.0.0" // {
-        dependencies = [
-          sources."fast-equals-4.0.3"
-        ];
-      })
-      sources."cspell-gitignore-8.0.0"
-      sources."cspell-glob-8.0.0"
-      sources."cspell-grammar-8.0.0"
-      sources."cspell-io-8.0.0"
-      (sources."cspell-lib-8.0.0" // {
-        dependencies = [
-          sources."find-up-6.3.0"
-          sources."locate-path-7.2.0"
-          sources."p-limit-4.0.0"
-          sources."p-locate-6.0.0"
-          sources."path-exists-5.0.0"
-          sources."yocto-queue-1.0.0"
-        ];
-      })
-      sources."cspell-trie-lib-8.0.0"
+      sources."cspell-config-lib-8.3.2"
+      sources."cspell-dictionary-8.3.2"
+      sources."cspell-gitignore-8.3.2"
+      sources."cspell-glob-8.3.2"
+      sources."cspell-grammar-8.3.2"
+      sources."cspell-io-8.3.2"
+      sources."cspell-lib-8.3.2"
+      sources."cspell-trie-lib-8.3.2"
       sources."dot-prop-6.0.1"
-      sources."error-ex-1.3.2"
-      sources."escape-string-regexp-1.0.5"
+      sources."eastasianwidth-0.2.0"
+      sources."emoji-regex-9.2.2"
       sources."esprima-4.0.1"
       sources."fast-equals-5.0.1"
       sources."fast-glob-3.3.2"
       sources."fast-json-stable-stringify-2.1.0"
-      sources."fastq-1.15.0"
-      sources."file-entry-cache-7.0.2"
+      sources."fastq-1.16.0"
+      sources."file-entry-cache-8.0.0"
       sources."fill-range-7.0.1"
-      sources."find-up-5.0.0"
-      sources."flat-cache-3.2.0"
+      sources."find-up-simple-1.0.0"
+      sources."flat-cache-4.0.0"
       sources."flatted-3.2.9"
-      sources."fs.realpath-1.0.0"
+      (sources."foreground-child-3.1.1" // {
+        dependencies = [
+          sources."signal-exit-4.1.0"
+        ];
+      })
       sources."gensequence-6.0.0"
       sources."get-stdin-9.0.0"
-      sources."glob-7.2.3"
+      sources."glob-10.3.10"
       sources."glob-parent-5.1.2"
-      sources."global-dirs-3.0.1"
+      sources."global-directory-4.0.1"
       sources."graceful-fs-4.2.11"
-      sources."has-flag-3.0.0"
       sources."has-own-prop-2.0.0"
       (sources."import-fresh-3.3.0" // {
         dependencies = [
@@ -71477,58 +72795,75 @@ in
           sources."resolve-from-4.0.0"
         ];
       })
-      sources."import-meta-resolve-3.1.1"
+      sources."import-meta-resolve-4.0.0"
       sources."imurmurhash-0.1.4"
-      sources."inflight-1.0.6"
-      sources."inherits-2.0.4"
-      sources."ini-2.0.0"
-      sources."is-arrayish-0.2.1"
+      sources."ini-4.1.1"
       sources."is-extglob-2.1.1"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
       sources."is-number-7.0.0"
       sources."is-obj-2.0.0"
       sources."is-typedarray-1.0.0"
-      sources."js-tokens-4.0.0"
-      sources."js-yaml-4.1.0"
+      sources."isexe-2.0.0"
+      sources."jackspeak-2.3.6"
       sources."json-buffer-3.0.1"
-      sources."json-parse-even-better-errors-2.3.1"
       sources."keyv-4.5.4"
-      sources."lines-and-columns-1.2.4"
-      sources."locate-path-6.0.0"
-      sources."lru-cache-6.0.0"
+      sources."lru-cache-10.1.0"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.5"
-      sources."minimatch-3.1.2"
-      sources."once-1.4.0"
-      sources."p-limit-3.1.0"
-      sources."p-locate-5.0.0"
+      sources."minimatch-9.0.3"
+      sources."minipass-7.0.4"
       sources."parent-module-2.0.0"
-      sources."parse-json-5.2.0"
-      sources."path-exists-4.0.0"
-      sources."path-is-absolute-1.0.1"
-      sources."path-type-4.0.0"
+      sources."path-key-3.1.1"
+      sources."path-scurry-1.10.1"
       sources."picomatch-2.3.1"
       sources."queue-microtask-1.2.3"
       sources."repeat-string-1.6.1"
       sources."resolve-from-5.0.0"
       sources."reusify-1.0.4"
-      sources."rimraf-3.0.2"
+      sources."rimraf-5.0.5"
       sources."run-parallel-1.2.0"
-      sources."semver-7.5.4"
+      (sources."semver-7.5.4" // {
+        dependencies = [
+          sources."lru-cache-6.0.0"
+        ];
+      })
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
       sources."signal-exit-3.0.7"
-      sources."strip-ansi-7.1.0"
-      sources."supports-color-5.5.0"
+      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."strip-ansi-7.1.0" // {
+        dependencies = [
+          sources."ansi-regex-6.0.1"
+        ];
+      })
+      sources."strip-ansi-cjs-6.0.1"
       sources."to-regex-range-5.0.1"
       sources."type-fest-1.4.0"
       sources."typedarray-to-buffer-3.1.5"
       sources."unique-string-3.0.0"
       sources."vscode-languageserver-textdocument-1.0.11"
       sources."vscode-uri-3.0.8"
-      sources."wrappy-1.0.2"
+      sources."which-2.0.2"
+      sources."wrap-ansi-8.1.0"
+      (sources."wrap-ansi-cjs-7.0.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."emoji-regex-8.0.0"
+          sources."string-width-4.2.3"
+          sources."strip-ansi-6.0.1"
+        ];
+      })
       sources."write-file-atomic-3.0.3"
       sources."xdg-basedir-5.1.0"
       sources."yallist-4.0.0"
-      sources."yocto-queue-0.1.0"
+      sources."yaml-2.3.4"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -71607,7 +72942,7 @@ in
       sources."del-6.1.1"
       sources."dir-glob-3.0.1"
       sources."fast-glob-3.3.2"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."fill-range-7.0.1"
       sources."find-up-4.1.0"
       sources."fs.realpath-1.0.0"
@@ -71682,7 +73017,7 @@ in
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
       sources."arch-2.2.0"
-      sources."big-integer-1.6.51"
+      sources."big-integer-1.6.52"
       sources."bplist-parser-0.2.0"
       sources."bundle-name-3.0.0"
       sources."clipboardy-3.0.0"
@@ -71697,7 +73032,7 @@ in
           sources."human-signals-4.3.1"
           sources."is-stream-3.0.0"
           sources."mimic-fn-4.0.0"
-          sources."npm-run-path-5.1.0"
+          sources."npm-run-path-5.2.0"
           sources."onetime-6.0.0"
           sources."path-key-4.0.0"
           sources."strip-final-newline-3.0.0"
@@ -71706,7 +73041,7 @@ in
       sources."default-browser-id-3.0.0"
       sources."define-lazy-prop-3.0.0"
       sources."diff-5.1.0"
-      sources."diff2html-3.4.45"
+      sources."diff2html-3.4.46"
       sources."emoji-regex-8.0.0"
       sources."escalade-3.1.1"
       sources."execa-5.1.1"
@@ -71746,7 +73081,7 @@ in
       sources."strip-final-newline-2.0.0"
       sources."titleize-3.0.0"
       sources."untildify-4.0.0"
-      sources."web-streams-polyfill-3.2.1"
+      sources."web-streams-polyfill-3.3.2"
       sources."which-2.0.2"
       sources."wrap-ansi-7.0.0"
       sources."y18n-5.0.8"
@@ -71830,19 +73165,19 @@ in
         ];
       })
       sources."@oclif/screen-3.0.8"
-      sources."@swc/core-1.3.99"
+      sources."@swc/core-1.3.102"
       sources."@swc/counter-0.1.2"
       sources."@swc/helpers-0.5.3"
       sources."@swc/types-0.1.5"
-      sources."@swc/wasm-1.3.99"
+      sources."@swc/wasm-1.3.102"
       sources."@tsconfig/node10-1.0.9"
       sources."@tsconfig/node12-1.0.11"
       sources."@tsconfig/node14-1.0.3"
       sources."@tsconfig/node16-1.0.4"
       sources."@types/cli-progress-3.11.5"
-      sources."@types/node-20.9.3"
-      sources."acorn-8.11.2"
-      sources."acorn-walk-8.3.0"
+      sources."@types/node-20.10.7"
+      sources."acorn-8.11.3"
+      sources."acorn-walk-8.3.1"
       sources."ansi-escapes-4.3.2"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
@@ -71873,7 +73208,7 @@ in
       sources."clean-stack-3.0.1"
       sources."cli-cursor-3.1.0"
       sources."cli-progress-3.12.0"
-      sources."cli-spinners-2.9.1"
+      sources."cli-spinners-2.9.2"
       sources."cli-width-3.0.0"
       sources."clone-1.0.4"
       sources."color-convert-2.0.1"
@@ -71899,7 +73234,7 @@ in
       sources."fast-glob-3.3.2"
       sources."fast-levenshtein-3.0.0"
       sources."fastest-levenshtein-1.0.16"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       (sources."figures-3.2.0" // {
         dependencies = [
           sources."escape-string-regexp-1.0.5"
@@ -71912,7 +73247,7 @@ in
       })
       sources."filesize-6.4.0"
       sources."fill-range-7.0.1"
-      sources."follow-redirects-1.15.3"
+      sources."follow-redirects-1.15.4"
       sources."form-data-4.0.0"
       sources."fs-constants-1.0.0"
       sources."fs-extra-9.1.0"
@@ -72014,11 +73349,11 @@ in
       sources."through-2.3.8"
       sources."tmp-0.0.33"
       sources."to-regex-range-5.0.1"
-      sources."ts-node-10.9.1"
+      sources."ts-node-10.9.2"
       sources."tslib-2.6.2"
       sources."tunnel-agent-0.6.0"
       sources."type-fest-0.21.3"
-      sources."typescript-5.3.2"
+      sources."typescript-5.3.3"
       sources."undici-types-5.26.5"
       sources."universalify-2.0.1"
       sources."util-deprecate-1.0.2"
@@ -72045,10 +73380,10 @@ in
   elasticdump = nodeEnv.buildNodePackage {
     name = "elasticdump";
     packageName = "elasticdump";
-    version = "6.108.1";
+    version = "6.110.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/elasticdump/-/elasticdump-6.108.1.tgz";
-      sha512 = "SazAOsEs5tVLY+mC50qBSf6Iqq8JJw8k9qE0c3hXM88waq3BBV8C/kZb+tkC3f80podsANNV9dpDgcGMiaBBRg==";
+      url = "https://registry.npmjs.org/elasticdump/-/elasticdump-6.110.0.tgz";
+      sha512 = "PxA3Q5OMndTlmFyrf7s/u+aAjOxQF+T5WIN3wzQUfwJ4gVSFC6qMuRT6Zhue24fDzE17v53voT572aooNCPYQw==";
     };
     dependencies = [
       sources."@fast-csv/format-4.3.5"
@@ -72231,24 +73566,24 @@ in
   "@electron-forge/cli" = nodeEnv.buildNodePackage {
     name = "_at_electron-forge_slash_cli";
     packageName = "@electron-forge/cli";
-    version = "7.1.0";
+    version = "7.2.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@electron-forge/cli/-/cli-7.1.0.tgz";
-      sha512 = "+4PEscQxNP9syHA1NFHp2v3KVBrNBbtBEPL+g7/E2yc5yHJr1tb5aHIJvhyfQqxL5sQlUdNjZI6N4r3vRer2KA==";
+      url = "https://registry.npmjs.org/@electron-forge/cli/-/cli-7.2.0.tgz";
+      sha512 = "FJ8XzT4w6bTC3trvHHWL67W1zp7g2xmCC5riNa1rjk8Gd2C1j8wf0ul4ch9kbcaEAFaXuXwv98QKXxhCn4aLtQ==";
     };
     dependencies = [
-      sources."@electron-forge/core-7.1.0"
-      sources."@electron-forge/core-utils-7.1.0"
-      sources."@electron-forge/maker-base-7.1.0"
-      sources."@electron-forge/plugin-base-7.1.0"
-      sources."@electron-forge/publisher-base-7.1.0"
-      sources."@electron-forge/shared-types-7.1.0"
-      sources."@electron-forge/template-base-7.1.0"
-      sources."@electron-forge/template-vite-7.1.0"
-      sources."@electron-forge/template-vite-typescript-7.1.0"
-      sources."@electron-forge/template-webpack-7.1.0"
-      sources."@electron-forge/template-webpack-typescript-7.1.0"
-      sources."@electron-forge/tracer-7.1.0"
+      sources."@electron-forge/core-7.2.0"
+      sources."@electron-forge/core-utils-7.2.0"
+      sources."@electron-forge/maker-base-7.2.0"
+      sources."@electron-forge/plugin-base-7.2.0"
+      sources."@electron-forge/publisher-base-7.2.0"
+      sources."@electron-forge/shared-types-7.2.0"
+      sources."@electron-forge/template-base-7.2.0"
+      sources."@electron-forge/template-vite-7.2.0"
+      sources."@electron-forge/template-vite-typescript-7.2.0"
+      sources."@electron-forge/template-webpack-7.2.0"
+      sources."@electron-forge/template-webpack-typescript-7.2.0"
+      sources."@electron-forge/tracer-7.2.0"
       (sources."@electron/asar-3.2.8" // {
         dependencies = [
           sources."commander-5.1.0"
@@ -72268,16 +73603,22 @@ in
         ];
       })
       sources."@electron/osx-sign-1.0.5"
-      (sources."@electron/packager-18.0.0" // {
+      (sources."@electron/packager-18.1.3" // {
         dependencies = [
-          sources."fs-extra-11.1.1"
+          sources."fs-extra-11.2.0"
         ];
       })
-      sources."@electron/rebuild-3.3.0"
-      (sources."@electron/universal-1.5.1" // {
+      sources."@electron/rebuild-3.4.1"
+      (sources."@electron/universal-2.0.1" // {
         dependencies = [
-          sources."@malept/cross-spawn-promise-1.1.1"
-          sources."fs-extra-9.1.0"
+          sources."brace-expansion-2.0.1"
+          sources."fs-extra-11.2.0"
+          sources."minimatch-9.0.3"
+        ];
+      })
+      (sources."@electron/windows-sign-1.0.0" // {
+        dependencies = [
+          sources."fs-extra-11.2.0"
         ];
       })
       sources."@gar/promisify-1.1.3"
@@ -72293,7 +73634,7 @@ in
       sources."@types/cacheable-request-6.0.3"
       sources."@types/http-cache-semantics-4.0.4"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-20.9.3"
+      sources."@types/node-20.10.7"
       sources."@types/responselike-1.0.3"
       sources."@types/yauzl-2.10.3"
       sources."@xmldom/xmldom-0.8.10"
@@ -72323,7 +73664,6 @@ in
       sources."braces-3.0.2"
       sources."buffer-5.7.1"
       sources."buffer-crc32-0.2.13"
-      sources."buffer-equal-1.0.1"
       sources."buffer-from-1.1.2"
       (sources."cacache-16.1.3" // {
         dependencies = [
@@ -72339,7 +73679,7 @@ in
       sources."chrome-trace-event-1.0.3"
       sources."clean-stack-2.2.0"
       sources."cli-cursor-3.1.0"
-      sources."cli-spinners-2.9.1"
+      sources."cli-spinners-2.9.2"
       sources."cli-truncate-2.1.0"
       sources."cliui-8.0.1"
       sources."clone-1.0.4"
@@ -72375,7 +73715,7 @@ in
       sources."delegates-1.0.0"
       sources."detect-libc-2.0.2"
       sources."detect-node-2.1.0"
-      sources."dir-compare-3.3.0"
+      sources."dir-compare-4.2.0"
       sources."emoji-regex-8.0.0"
       sources."encoding-0.1.13"
       sources."end-of-stream-1.4.4"
@@ -72401,7 +73741,7 @@ in
       sources."exponential-backoff-3.1.1"
       sources."extract-zip-2.0.1"
       sources."fast-glob-3.3.2"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."fd-slicer-1.1.0"
       sources."filename-reserved-regex-2.0.0"
       sources."filenamify-4.3.0"
@@ -72409,7 +73749,6 @@ in
       (sources."find-up-5.0.0" // {
         dependencies = [
           sources."locate-path-6.0.0"
-          sources."p-limit-3.1.0"
           sources."p-locate-5.0.0"
           sources."path-exists-4.0.0"
         ];
@@ -72525,7 +73864,7 @@ in
       sources."ms-2.0.0"
       sources."negotiator-0.6.3"
       sources."nice-try-1.0.5"
-      sources."node-abi-3.51.0"
+      sources."node-abi-3.54.0"
       sources."node-api-version-0.1.4"
       sources."node-fetch-2.7.0"
       sources."node-gyp-9.4.1"
@@ -72550,8 +73889,12 @@ in
       sources."p-defer-1.0.0"
       sources."p-finally-1.0.0"
       sources."p-is-promise-2.1.0"
-      sources."p-limit-1.3.0"
-      sources."p-locate-2.0.0"
+      sources."p-limit-3.1.0"
+      (sources."p-locate-2.0.0" // {
+        dependencies = [
+          sources."p-limit-1.3.0"
+        ];
+      })
       sources."p-map-4.0.0"
       sources."p-try-1.0.0"
       sources."parse-author-2.0.0"
@@ -72583,6 +73926,7 @@ in
       sources."queue-microtask-1.2.3"
       sources."quick-lru-5.1.1"
       sources."rcedit-4.0.1"
+      sources."read-binary-file-arch-1.0.6"
       sources."read-pkg-2.0.0"
       (sources."read-pkg-up-2.0.0" // {
         dependencies = [
@@ -72696,10 +74040,10 @@ in
   eas-cli = nodeEnv.buildNodePackage {
     name = "eas-cli";
     packageName = "eas-cli";
-    version = "5.9.1";
+    version = "5.9.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/eas-cli/-/eas-cli-5.9.1.tgz";
-      sha512 = "t8AACBvPl6W3BLSRLU9+fVXa1tig25SOumrSzwQ67gqJ7vZAOnVz8NNB6OLcml+GjVh5mis5+7jgGnPYqe4adQ==";
+      url = "https://registry.npmjs.org/eas-cli/-/eas-cli-5.9.3.tgz";
+      sha512 = "ky+FR7Gg2gjR+miDHc1jHtZ/JHk5/KBw+Go3gMHcEIJUX49ME+LIO9itKSnK+Mo+BnOio+GLAZFYAKN2r4Nm1Q==";
     };
     dependencies = [
       sources."@0no-co/graphql.web-1.0.4"
@@ -72710,6 +74054,11 @@ in
           sources."chalk-2.4.2"
         ];
       })
+      (sources."@cspotcode/source-map-support-0.8.1" // {
+        dependencies = [
+          sources."@jridgewell/trace-mapping-0.3.9"
+        ];
+      })
       sources."@expo/apple-utils-1.3.2"
       (sources."@expo/bunyan-4.0.0" // {
         dependencies = [
@@ -72728,18 +74077,18 @@ in
         ];
       })
       sources."@expo/config-types-49.0.0"
-      (sources."@expo/eas-build-job-1.0.48" // {
+      (sources."@expo/eas-build-job-1.0.50" // {
         dependencies = [
           sources."joi-17.11.0"
           sources."semver-7.5.4"
         ];
       })
-      (sources."@expo/eas-json-5.7.0" // {
+      (sources."@expo/eas-json-5.9.3" // {
         dependencies = [
           sources."@babel/code-frame-7.18.6"
         ];
       })
-      (sources."@expo/fingerprint-0.4.1" // {
+      (sources."@expo/fingerprint-0.6.0" // {
         dependencies = [
           sources."minimatch-3.1.2"
         ];
@@ -72747,13 +74096,22 @@ in
       (sources."@expo/image-utils-0.3.22" // {
         dependencies = [
           sources."@expo/spawn-async-1.5.0"
+          (sources."cross-spawn-6.0.5" // {
+            dependencies = [
+              sources."semver-5.7.2"
+            ];
+          })
           sources."fs-extra-9.0.0"
           sources."mime-2.6.0"
+          sources."path-key-2.0.1"
           sources."semver-7.3.2"
+          sources."shebang-command-1.2.0"
+          sources."shebang-regex-1.0.0"
+          sources."which-1.3.1"
         ];
       })
       sources."@expo/json-file-8.2.37"
-      sources."@expo/logger-1.0.30"
+      sources."@expo/logger-1.0.37"
       sources."@expo/multipart-body-parser-1.1.0"
       sources."@expo/osascript-2.0.33"
       sources."@expo/package-manager-1.1.2"
@@ -72764,8 +74122,39 @@ in
           sources."xmlbuilder-14.0.0"
         ];
       })
-      sources."@expo/plugin-help-5.1.22"
-      sources."@expo/plugin-warn-if-update-available-2.5.0"
+      (sources."@expo/plugin-help-5.1.23" // {
+        dependencies = [
+          sources."@oclif/core-2.15.0"
+          sources."ansi-styles-4.3.0"
+          sources."cli-progress-3.12.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."emoji-regex-8.0.0"
+          sources."has-flag-4.0.0"
+          sources."string-width-4.2.3"
+          sources."strip-ansi-6.0.1"
+          sources."supports-color-8.1.1"
+          sources."tslib-2.6.2"
+        ];
+      })
+      (sources."@expo/plugin-warn-if-update-available-2.5.1" // {
+        dependencies = [
+          (sources."@oclif/core-2.15.0" // {
+            dependencies = [
+              sources."tslib-2.6.2"
+            ];
+          })
+          sources."ansi-styles-4.3.0"
+          sources."cli-progress-3.12.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."emoji-regex-8.0.0"
+          sources."has-flag-4.0.0"
+          sources."string-width-4.2.3"
+          sources."strip-ansi-6.0.1"
+          sources."supports-color-8.1.1"
+        ];
+      })
       (sources."@expo/prebuild-config-6.2.5" // {
         dependencies = [
           sources."fs-extra-9.1.0"
@@ -72780,31 +74169,25 @@ in
         ];
       })
       sources."@expo/sdk-runtime-versions-1.0.0"
-      (sources."@expo/spawn-async-1.7.0" // {
-        dependencies = [
-          sources."cross-spawn-7.0.3"
-          sources."path-key-3.1.1"
-          sources."shebang-command-2.0.0"
-          sources."shebang-regex-3.0.0"
-          sources."which-2.0.2"
-        ];
-      })
-      (sources."@expo/steps-1.0.34" // {
+      sources."@expo/spawn-async-1.7.0"
+      (sources."@expo/steps-1.0.51" // {
         dependencies = [
           sources."@expo/spawn-async-1.7.2"
-          sources."cross-spawn-7.0.3"
-          sources."fs-extra-11.1.1"
+          sources."arg-5.0.2"
+          sources."fs-extra-11.2.0"
           sources."joi-17.11.0"
-          sources."path-key-3.1.1"
-          sources."shebang-command-2.0.0"
-          sources."shebang-regex-3.0.0"
           sources."universalify-2.0.1"
-          sources."which-2.0.2"
         ];
       })
       sources."@expo/timeago.js-1.0.0"
       sources."@hapi/hoek-9.3.0"
       sources."@hapi/topo-5.1.0"
+      (sources."@isaacs/cliui-8.0.2" // {
+        dependencies = [
+          sources."ansi-styles-6.2.1"
+          sources."wrap-ansi-8.1.0"
+        ];
+      })
       sources."@jridgewell/gen-mapping-0.3.3"
       sources."@jridgewell/resolve-uri-3.1.1"
       sources."@jridgewell/set-array-1.1.2"
@@ -72813,22 +74196,34 @@ in
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      (sources."@oclif/core-1.23.2" // {
+      (sources."@oclif/core-1.26.2" // {
         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."fs-extra-9.1.0"
           sources."has-flag-4.0.0"
+          sources."string-width-4.2.3"
+          sources."strip-ansi-6.0.1"
           sources."supports-color-8.1.1"
           sources."universalify-2.0.1"
         ];
       })
       sources."@oclif/linewrap-1.0.0"
-      (sources."@oclif/plugin-autocomplete-1.3.10" // {
+      (sources."@oclif/plugin-autocomplete-2.3.10" // {
         dependencies = [
-          sources."fs-extra-9.1.0"
-          sources."universalify-2.0.1"
+          sources."@oclif/core-2.15.0"
+          sources."ansi-styles-4.3.0"
+          sources."cli-progress-3.12.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."emoji-regex-8.0.0"
+          sources."has-flag-4.0.0"
+          sources."string-width-4.2.3"
+          sources."strip-ansi-6.0.1"
+          sources."supports-color-8.1.1"
+          sources."tslib-2.6.2"
         ];
       })
       sources."@oclif/screen-3.0.8"
@@ -72838,34 +74233,43 @@ in
       sources."@sideway/address-4.1.4"
       sources."@sideway/formula-3.0.1"
       sources."@sideway/pinpoint-2.0.0"
+      sources."@swc/core-1.3.102"
+      sources."@swc/counter-0.1.2"
+      sources."@swc/helpers-0.5.3"
+      sources."@swc/types-0.1.5"
+      sources."@swc/wasm-1.3.102"
+      sources."@tsconfig/node10-1.0.9"
+      sources."@tsconfig/node12-1.0.11"
+      sources."@tsconfig/node14-1.0.3"
+      sources."@tsconfig/node16-1.0.4"
       sources."@types/bunyan-1.8.11"
-      sources."@types/node-20.9.3"
+      sources."@types/cli-progress-3.11.5"
+      sources."@types/node-20.10.7"
       sources."@urql/core-4.0.11"
       sources."@urql/exchange-retry-1.2.0"
       sources."@xmldom/xmldom-0.8.10"
+      sources."acorn-8.11.3"
+      sources."acorn-walk-8.3.1"
       sources."agent-base-6.0.2"
       sources."ajv-8.11.0"
       sources."ajv-formats-2.1.1"
-      (sources."ansi-escapes-4.3.2" // {
-        dependencies = [
-          sources."type-fest-0.21.3"
-        ];
-      })
+      sources."ansi-escapes-4.3.2"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-3.2.1"
       sources."ansicolors-0.3.2"
       sources."any-promise-1.3.0"
-      sources."arg-5.0.2"
+      sources."arg-4.1.3"
       sources."argparse-1.0.10"
       sources."array-union-2.1.0"
       sources."asn1-0.2.6"
+      sources."astral-regex-2.0.0"
       sources."async-3.2.5"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."better-opn-3.0.2"
-      sources."big-integer-1.6.51"
+      sources."big-integer-1.6.52"
       sources."bplist-creator-0.1.1"
       sources."bplist-parser-0.3.2"
       sources."brace-expansion-1.1.11"
@@ -72890,8 +74294,14 @@ in
         ];
       })
       sources."cli-cursor-3.1.0"
-      sources."cli-progress-3.11.2"
-      sources."cli-spinners-2.9.1"
+      (sources."cli-progress-3.11.2" // {
+        dependencies = [
+          sources."emoji-regex-8.0.0"
+          sources."string-width-4.2.3"
+          sources."strip-ansi-6.0.1"
+        ];
+      })
+      sources."cli-spinners-2.9.2"
       sources."clone-1.0.4"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
@@ -72900,11 +74310,8 @@ in
       sources."component-type-1.2.2"
       sources."concat-map-0.0.1"
       sources."content-type-1.0.5"
-      (sources."cross-spawn-6.0.5" // {
-        dependencies = [
-          sources."semver-5.7.2"
-        ];
-      })
+      sources."create-require-1.1.1"
+      sources."cross-spawn-7.0.3"
       sources."crypt-0.0.2"
       sources."crypto-random-string-1.0.0"
       sources."dateformat-4.6.3"
@@ -72913,12 +74320,14 @@ in
       sources."define-lazy-prop-2.0.0"
       sources."delayed-stream-1.0.0"
       sources."dicer-0.3.1"
+      sources."diff-4.0.2"
       sources."dir-glob-3.0.1"
       sources."domino-2.1.6"
       sources."dotenv-16.0.3"
       sources."dtrace-provider-0.8.8"
+      sources."eastasianwidth-0.2.0"
       sources."ejs-3.1.9"
-      sources."emoji-regex-8.0.0"
+      sources."emoji-regex-9.2.2"
       sources."encoding-0.1.13"
       sources."env-paths-2.2.0"
       sources."env-string-1.0.1"
@@ -72928,26 +74337,31 @@ in
       sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
       sources."exec-async-2.2.0"
-      (sources."expo-modules-autolinking-1.8.0" // {
+      (sources."expo-modules-autolinking-1.9.0" // {
         dependencies = [
-          sources."@expo/config-8.4.0"
-          sources."@expo/config-plugins-7.6.0"
-          sources."@expo/config-types-50.0.0-alpha.3"
+          sources."@expo/config-8.5.3"
+          sources."@expo/config-plugins-7.8.3"
+          sources."@expo/config-types-50.0.0"
+          sources."@expo/json-file-8.3.0"
+          sources."@expo/plist-0.1.0"
+          sources."@xmldom/xmldom-0.7.13"
           sources."commander-7.2.0"
           sources."fs-extra-9.1.0"
           sources."semver-7.5.3"
           sources."universalify-2.0.1"
+          sources."xmlbuilder-14.0.0"
         ];
       })
       sources."fast-deep-equal-3.1.3"
       sources."fast-glob-3.2.12"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."fetch-retry-4.1.1"
       sources."figures-3.2.0"
       sources."filelist-1.0.4"
       sources."fill-range-7.0.1"
       sources."find-up-5.0.0"
       sources."find-yarn-workspace-root-2.0.0"
+      sources."foreground-child-3.1.1"
       sources."form-data-4.0.0"
       (sources."fs-extra-10.1.0" // {
         dependencies = [
@@ -72998,6 +74412,7 @@ in
       sources."is-unicode-supported-0.1.0"
       sources."is-wsl-2.2.0"
       sources."isexe-2.0.0"
+      sources."jackspeak-2.3.6"
       (sources."jake-10.8.7" // {
         dependencies = [
           sources."minimatch-3.1.2"
@@ -73026,6 +74441,7 @@ in
       sources."lodash.merge-4.6.2"
       sources."log-symbols-4.1.0"
       sources."lru-cache-6.0.0"
+      sources."make-error-1.3.6"
       sources."md5-2.3.0"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.5"
@@ -73039,14 +74455,14 @@ in
         ];
       })
       sources."minimist-1.2.8"
-      sources."minipass-4.2.8"
+      sources."minipass-7.0.4"
       (sources."minizlib-2.1.2" // {
         dependencies = [
           sources."minipass-3.3.6"
         ];
       })
       sources."mkdirp-0.5.6"
-      sources."moment-2.29.4"
+      sources."moment-2.30.1"
       sources."ms-2.1.2"
       sources."mute-stream-0.0.8"
       sources."mv-2.1.1"
@@ -73071,7 +74487,11 @@ in
       sources."once-1.4.0"
       sources."onetime-5.1.2"
       sources."open-8.4.2"
-      sources."ora-5.1.0"
+      (sources."ora-5.1.0" // {
+        dependencies = [
+          sources."strip-ansi-6.0.1"
+        ];
+      })
       sources."os-homedir-1.0.2"
       sources."os-tmpdir-1.0.2"
       sources."osenv-0.1.5"
@@ -73084,18 +74504,15 @@ in
           sources."pngjs-3.4.0"
         ];
       })
-      (sources."password-prompt-1.1.3" // {
+      sources."password-prompt-1.1.3"
+      sources."path-exists-4.0.0"
+      sources."path-is-absolute-1.0.1"
+      sources."path-key-3.1.1"
+      (sources."path-scurry-1.10.1" // {
         dependencies = [
-          sources."cross-spawn-7.0.3"
-          sources."path-key-3.1.1"
-          sources."shebang-command-2.0.0"
-          sources."shebang-regex-3.0.0"
-          sources."which-2.0.2"
+          sources."lru-cache-10.1.0"
         ];
       })
-      sources."path-exists-4.0.0"
-      sources."path-is-absolute-1.0.1"
-      sources."path-key-2.0.1"
       sources."path-type-4.0.0"
       sources."picomatch-2.3.1"
       sources."pirates-4.0.6"
@@ -73119,7 +74536,11 @@ in
       sources."remove-trailing-slash-0.1.1"
       sources."require-from-string-2.0.2"
       sources."resolve-from-5.0.0"
-      sources."restore-cursor-3.1.0"
+      (sources."restore-cursor-3.1.0" // {
+        dependencies = [
+          sources."signal-exit-3.0.7"
+        ];
+      })
       sources."retry-0.12.0"
       sources."reusify-1.0.4"
       (sources."rimraf-2.4.5" // {
@@ -73134,21 +74555,45 @@ in
       sources."safer-buffer-2.1.2"
       sources."sax-1.3.0"
       sources."semver-7.5.2"
-      sources."shebang-command-1.2.0"
-      sources."shebang-regex-1.0.0"
-      sources."signal-exit-3.0.7"
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
+      sources."signal-exit-4.1.0"
       sources."simple-plist-1.4.0"
       sources."sisteransi-1.0.5"
       sources."slash-3.0.0"
+      (sources."slice-ansi-4.0.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+        ];
+      })
       sources."slugify-1.6.6"
       sources."split-1.0.1"
       sources."sprintf-js-1.0.3"
       sources."stream-buffers-2.2.0"
       sources."streamsearch-1.1.0"
-      sources."string-width-4.2.3"
-      sources."strip-ansi-6.0.1"
+      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."strip-ansi-7.1.0" // {
+        dependencies = [
+          sources."ansi-regex-6.0.1"
+        ];
+      })
+      sources."strip-ansi-cjs-6.0.1"
       sources."structured-headers-0.4.1"
-      sources."sucrase-3.34.0"
+      (sources."sucrase-3.35.0" // {
+        dependencies = [
+          sources."brace-expansion-2.0.1"
+          sources."glob-10.3.10"
+          sources."minimatch-9.0.3"
+        ];
+      })
       sources."sudo-prompt-9.1.1"
       sources."supports-color-5.5.0"
       (sources."supports-hyperlinks-2.3.0" // {
@@ -73159,11 +74604,16 @@ in
       })
       (sources."tar-6.1.13" // {
         dependencies = [
+          sources."minipass-4.2.8"
           sources."mkdirp-1.0.4"
         ];
       })
       sources."temp-dir-1.0.0"
-      sources."tempy-0.3.0"
+      (sources."tempy-0.3.0" // {
+        dependencies = [
+          sources."type-fest-0.3.1"
+        ];
+      })
       sources."terminal-link-2.1.1"
       sources."thenify-3.3.1"
       sources."thenify-all-1.6.0"
@@ -73172,32 +74622,59 @@ in
       sources."to-regex-range-5.0.1"
       sources."tr46-0.0.3"
       sources."ts-interface-checker-0.1.13"
+      sources."ts-node-10.9.2"
       sources."tslib-2.4.1"
       sources."tunnel-agent-0.6.0"
       sources."turndown-7.1.1"
-      sources."type-fest-0.3.1"
+      sources."type-fest-0.21.3"
+      sources."typescript-5.3.3"
       sources."undici-types-5.26.5"
       sources."unique-string-1.0.0"
       sources."universalify-1.0.0"
       sources."untildify-4.0.0"
       sources."uri-js-4.4.1"
       sources."uuid-9.0.0"
+      sources."v8-compile-cache-lib-3.0.1"
       sources."validate-npm-package-name-3.0.0"
       sources."wcwidth-1.0.1"
       sources."webidl-conversions-3.0.1"
       sources."whatwg-url-5.0.0"
-      sources."which-1.3.1"
-      sources."widest-line-3.1.0"
+      sources."which-2.0.2"
+      (sources."widest-line-3.1.0" // {
+        dependencies = [
+          sources."emoji-regex-8.0.0"
+          sources."string-width-4.2.3"
+          sources."strip-ansi-6.0.1"
+        ];
+      })
       sources."wonka-6.3.4"
+      sources."wordwrap-1.0.0"
       (sources."wrap-ansi-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."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-2.4.3"
+      (sources."write-file-atomic-2.4.3" // {
+        dependencies = [
+          sources."signal-exit-3.0.7"
+        ];
+      })
       (sources."xcode-3.0.1" // {
         dependencies = [
           sources."uuid-7.0.3"
@@ -73211,6 +74688,7 @@ in
       sources."xmlbuilder-15.1.1"
       sources."yallist-4.0.0"
       sources."yaml-2.3.4"
+      sources."yn-3.1.1"
       sources."yocto-queue-0.1.0"
     ];
     buildInputs = globalBuildInputs;
@@ -73252,8 +74730,8 @@ in
     dependencies = [
       sources."@alcalzone/ansi-tokenize-0.1.3"
       sources."@types/prop-types-15.7.11"
-      sources."@types/react-18.2.38"
-      sources."@types/scheduler-0.16.7"
+      sources."@types/react-18.2.47"
+      sources."@types/scheduler-0.16.8"
       sources."ajv-8.12.0"
       sources."ajv-formats-2.1.1"
       (sources."ansi-escapes-6.2.0" // {
@@ -73280,7 +74758,7 @@ in
       sources."conf-11.0.2"
       sources."convert-to-spaces-2.0.1"
       sources."cross-spawn-7.0.3"
-      sources."csstype-3.1.2"
+      sources."csstype-3.1.3"
       sources."debounce-fn-5.1.2"
       sources."dot-prop-7.2.0"
       sources."eastasianwidth-0.2.0"
@@ -73325,8 +74803,8 @@ in
       sources."meow-12.1.1"
       sources."merge-stream-2.0.0"
       sources."mimic-fn-4.0.0"
-      sources."node-gyp-build-4.7.0"
-      (sources."npm-run-path-5.1.0" // {
+      sources."node-gyp-build-4.8.0"
+      (sources."npm-run-path-5.2.0" // {
         dependencies = [
           sources."path-key-4.0.0"
         ];
@@ -73372,11 +74850,11 @@ in
       sources."unicode-emoji-modifier-base-1.0.0"
       sources."uri-js-4.4.1"
       sources."utf-8-validate-6.0.3"
-      sources."when-exit-2.1.1"
+      sources."when-exit-2.1.2"
       sources."which-2.0.2"
       sources."widest-line-4.0.1"
       sources."wrap-ansi-8.1.0"
-      sources."ws-8.14.2"
+      sources."ws-8.16.0"
       sources."yallist-4.0.0"
       sources."yoga-wasm-web-0.3.3"
     ];
@@ -73428,17 +74906,17 @@ in
   eslint = nodeEnv.buildNodePackage {
     name = "eslint";
     packageName = "eslint";
-    version = "8.54.0";
+    version = "8.56.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz";
-      sha512 = "NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==";
+      url = "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz";
+      sha512 = "Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==";
     };
     dependencies = [
       sources."@aashutoshrathi/word-wrap-1.2.6"
       sources."@eslint-community/eslint-utils-4.4.0"
       sources."@eslint-community/regexpp-4.10.0"
-      sources."@eslint/eslintrc-2.1.3"
-      sources."@eslint/js-8.54.0"
+      sources."@eslint/eslintrc-2.1.4"
+      sources."@eslint/js-8.56.0"
       sources."@humanwhocodes/config-array-0.11.13"
       sources."@humanwhocodes/module-importer-1.0.1"
       sources."@humanwhocodes/object-schema-2.0.1"
@@ -73446,7 +74924,7 @@ in
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
       sources."@ungap/structured-clone-1.2.0"
-      sources."acorn-8.11.2"
+      sources."acorn-8.11.3"
       sources."acorn-jsx-5.3.2"
       sources."ajv-6.12.6"
       sources."ansi-regex-5.0.1"
@@ -73464,7 +74942,7 @@ in
       sources."deep-is-0.1.4"
       sources."doctrine-3.0.0"
       sources."escape-string-regexp-4.0.0"
-      sources."eslint-8.54.0"
+      sources."eslint-8.56.0"
       sources."eslint-scope-7.2.2"
       sources."eslint-visitor-keys-3.4.3"
       sources."espree-9.6.1"
@@ -73475,7 +74953,7 @@ in
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."file-entry-cache-6.0.1"
       sources."find-up-5.0.0"
       sources."flat-cache-3.2.0"
@@ -73483,7 +74961,7 @@ in
       sources."fs.realpath-1.0.0"
       sources."glob-7.2.3"
       sources."glob-parent-6.0.2"
-      sources."globals-13.23.0"
+      sources."globals-13.24.0"
       sources."graphemer-1.4.0"
       sources."has-flag-4.0.0"
       sources."ignore-5.3.0"
@@ -73572,26 +75050,26 @@ in
     dependencies = [
       sources."@ampproject/remapping-2.2.1"
       sources."@babel/code-frame-7.10.4"
-      sources."@babel/compat-data-7.23.3"
-      (sources."@babel/core-7.23.3" // {
+      sources."@babel/compat-data-7.23.5"
+      (sources."@babel/core-7.23.7" // {
         dependencies = [
-          sources."@babel/code-frame-7.23.4"
+          sources."@babel/code-frame-7.23.5"
           sources."chalk-2.4.2"
           sources."json5-2.2.3"
           sources."semver-6.3.1"
         ];
       })
-      sources."@babel/generator-7.23.4"
+      sources."@babel/generator-7.23.6"
       sources."@babel/helper-annotate-as-pure-7.22.5"
       sources."@babel/helper-builder-binary-assignment-operator-visitor-7.22.15"
-      (sources."@babel/helper-compilation-targets-7.22.15" // {
+      (sources."@babel/helper-compilation-targets-7.23.6" // {
         dependencies = [
           sources."lru-cache-5.1.1"
           sources."semver-6.3.1"
           sources."yallist-3.1.1"
         ];
       })
-      (sources."@babel/helper-create-class-features-plugin-7.22.15" // {
+      (sources."@babel/helper-create-class-features-plugin-7.23.7" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
@@ -73601,7 +75079,7 @@ in
           sources."semver-6.3.1"
         ];
       })
-      sources."@babel/helper-define-polyfill-provider-0.4.3"
+      sources."@babel/helper-define-polyfill-provider-0.4.4"
       sources."@babel/helper-environment-visitor-7.22.20"
       sources."@babel/helper-function-name-7.23.0"
       sources."@babel/helper-hoist-variables-7.22.5"
@@ -73617,21 +75095,21 @@ in
       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.22.15"
+      sources."@babel/helper-validator-option-7.23.5"
       sources."@babel/helper-wrap-function-7.22.20"
-      sources."@babel/helpers-7.23.4"
+      sources."@babel/helpers-7.23.7"
       (sources."@babel/highlight-7.23.4" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.23.4"
+      sources."@babel/parser-7.23.6"
       sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3"
-      sources."@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3"
+      sources."@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7"
       sources."@babel/plugin-proposal-async-generator-functions-7.20.7"
       sources."@babel/plugin-proposal-class-properties-7.18.6"
-      sources."@babel/plugin-proposal-decorators-7.23.3"
+      sources."@babel/plugin-proposal-decorators-7.23.7"
       sources."@babel/plugin-proposal-export-default-from-7.23.3"
       sources."@babel/plugin-proposal-nullish-coalescing-operator-7.18.6"
       sources."@babel/plugin-proposal-object-rest-spread-7.20.7"
@@ -73662,13 +75140,13 @@ in
       sources."@babel/plugin-syntax-typescript-7.23.3"
       sources."@babel/plugin-syntax-unicode-sets-regex-7.18.6"
       sources."@babel/plugin-transform-arrow-functions-7.23.3"
-      sources."@babel/plugin-transform-async-generator-functions-7.23.4"
+      sources."@babel/plugin-transform-async-generator-functions-7.23.7"
       sources."@babel/plugin-transform-async-to-generator-7.23.3"
       sources."@babel/plugin-transform-block-scoped-functions-7.23.3"
       sources."@babel/plugin-transform-block-scoping-7.23.4"
       sources."@babel/plugin-transform-class-properties-7.23.3"
       sources."@babel/plugin-transform-class-static-block-7.23.4"
-      sources."@babel/plugin-transform-classes-7.23.3"
+      sources."@babel/plugin-transform-classes-7.23.5"
       sources."@babel/plugin-transform-computed-properties-7.23.3"
       sources."@babel/plugin-transform-destructuring-7.23.3"
       sources."@babel/plugin-transform-dotall-regex-7.23.3"
@@ -73677,7 +75155,7 @@ in
       sources."@babel/plugin-transform-exponentiation-operator-7.23.3"
       sources."@babel/plugin-transform-export-namespace-from-7.23.4"
       sources."@babel/plugin-transform-flow-strip-types-7.23.3"
-      sources."@babel/plugin-transform-for-of-7.23.3"
+      sources."@babel/plugin-transform-for-of-7.23.6"
       sources."@babel/plugin-transform-function-name-7.23.3"
       sources."@babel/plugin-transform-json-strings-7.23.4"
       sources."@babel/plugin-transform-literals-7.23.3"
@@ -73705,7 +75183,7 @@ in
       sources."@babel/plugin-transform-react-jsx-source-7.23.3"
       sources."@babel/plugin-transform-regenerator-7.23.3"
       sources."@babel/plugin-transform-reserved-words-7.23.3"
-      (sources."@babel/plugin-transform-runtime-7.23.4" // {
+      (sources."@babel/plugin-transform-runtime-7.23.7" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
@@ -73715,12 +75193,12 @@ in
       sources."@babel/plugin-transform-sticky-regex-7.23.3"
       sources."@babel/plugin-transform-template-literals-7.23.3"
       sources."@babel/plugin-transform-typeof-symbol-7.23.3"
-      sources."@babel/plugin-transform-typescript-7.23.4"
+      sources."@babel/plugin-transform-typescript-7.23.6"
       sources."@babel/plugin-transform-unicode-escapes-7.23.3"
       sources."@babel/plugin-transform-unicode-property-regex-7.23.3"
       sources."@babel/plugin-transform-unicode-regex-7.23.3"
       sources."@babel/plugin-transform-unicode-sets-regex-7.23.3"
-      (sources."@babel/preset-env-7.23.3" // {
+      (sources."@babel/preset-env-7.23.7" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
@@ -73730,23 +75208,23 @@ in
       sources."@babel/runtime-7.9.0"
       (sources."@babel/template-7.22.15" // {
         dependencies = [
-          sources."@babel/code-frame-7.23.4"
+          sources."@babel/code-frame-7.23.5"
           sources."chalk-2.4.2"
         ];
       })
-      (sources."@babel/traverse-7.23.4" // {
+      (sources."@babel/traverse-7.23.7" // {
         dependencies = [
-          sources."@babel/code-frame-7.23.4"
+          sources."@babel/code-frame-7.23.5"
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/types-7.23.4"
+      sources."@babel/types-7.23.6"
       sources."@colors/colors-1.5.0"
       sources."@expo/apple-utils-1.0.0"
       sources."@expo/bunyan-4.0.0"
       (sources."@expo/cli-0.7.3" // {
         dependencies = [
-          sources."@babel/runtime-7.23.4"
+          sources."@babel/runtime-7.23.7"
           (sources."@expo/config-8.0.5" // {
             dependencies = [
               sources."semver-7.3.2"
@@ -73780,6 +75258,7 @@ in
               sources."universalify-2.0.1"
             ];
           })
+          sources."ansi-regex-5.0.1"
           sources."bplist-parser-0.3.2"
           sources."form-data-3.0.1"
           (sources."fs-extra-8.1.0" // {
@@ -73788,13 +75267,14 @@ in
             ];
           })
           sources."jsonfile-4.0.0"
+          sources."lru-cache-6.0.0"
           sources."node-forge-1.3.1"
           (sources."npm-package-arg-7.0.0" // {
             dependencies = [
               sources."semver-5.7.2"
             ];
           })
-          sources."regenerator-runtime-0.14.0"
+          sources."regenerator-runtime-0.14.1"
           sources."semver-6.3.1"
           sources."temp-dir-1.0.0"
           sources."type-fest-0.3.1"
@@ -73815,6 +75295,7 @@ in
         dependencies = [
           sources."@expo/json-file-8.2.36"
           sources."@expo/plist-0.0.18"
+          sources."lru-cache-6.0.0"
           sources."semver-7.5.4"
         ];
       })
@@ -73844,6 +75325,7 @@ in
           sources."@expo/config-8.0.5"
           sources."@expo/config-plugins-6.0.2"
           sources."@expo/config-types-48.0.0"
+          sources."lru-cache-6.0.0"
           sources."semver-7.5.4"
         ];
       })
@@ -73851,6 +75333,7 @@ in
       (sources."@expo/package-manager-0.0.56" // {
         dependencies = [
           sources."@expo/json-file-8.2.36"
+          sources."ansi-regex-5.0.1"
           sources."npm-package-arg-7.0.0"
           sources."rimraf-3.0.2"
           sources."semver-5.7.2"
@@ -73869,10 +75352,19 @@ in
         ];
       })
       sources."@expo/sdk-runtime-versions-1.0.0"
-      sources."@expo/spawn-async-1.5.0"
+      (sources."@expo/spawn-async-1.5.0" // {
+        dependencies = [
+          sources."cross-spawn-6.0.5"
+          sources."path-key-2.0.1"
+          sources."semver-5.7.2"
+          sources."shebang-command-1.2.0"
+          sources."shebang-regex-1.0.0"
+          sources."which-1.3.1"
+        ];
+      })
       sources."@expo/vector-icons-13.0.0"
       sources."@expo/webpack-config-18.1.0"
-      (sources."@expo/xcpretty-4.2.2" // {
+      (sources."@expo/xcpretty-4.3.0" // {
         dependencies = [
           sources."js-yaml-4.1.0"
         ];
@@ -73881,6 +75373,13 @@ in
       sources."@graphql-typed-document-node/core-3.2.0"
       sources."@hapi/hoek-9.3.0"
       sources."@hapi/topo-5.1.0"
+      (sources."@isaacs/cliui-8.0.2" // {
+        dependencies = [
+          sources."ansi-styles-6.2.1"
+          sources."strip-ansi-7.1.0"
+          sources."wrap-ansi-8.1.0"
+        ];
+      })
       sources."@jest/types-26.6.2"
       sources."@jridgewell/gen-mapping-0.3.3"
       sources."@jridgewell/resolve-uri-3.1.1"
@@ -73889,11 +75388,16 @@ in
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@jridgewell/trace-mapping-0.3.20"
       sources."@leichtgewicht/ip-codec-2.0.4"
+      sources."@module-federation/runtime-0.0.0-next-20231225095220"
+      sources."@module-federation/runtime-tools-0.0.0-next-20231225095220"
+      sources."@module-federation/sdk-0.0.0-next-20231225095220"
+      sources."@module-federation/webpack-bundler-runtime-0.0.0-next-20231225095220"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
       (sources."@npmcli/fs-1.1.1" // {
         dependencies = [
+          sources."lru-cache-6.0.0"
           sources."semver-7.5.4"
         ];
       })
@@ -73904,11 +75408,27 @@ in
         ];
       })
       sources."@react-native/normalize-color-2.1.0"
+      sources."@rspack/binding-0.4.5"
+      sources."@rspack/binding-darwin-arm64-0.4.5"
+      sources."@rspack/binding-darwin-x64-0.4.5"
+      sources."@rspack/binding-linux-arm64-gnu-0.4.5"
+      sources."@rspack/binding-linux-arm64-musl-0.4.5"
+      sources."@rspack/binding-linux-x64-gnu-0.4.5"
+      sources."@rspack/binding-linux-x64-musl-0.4.5"
+      sources."@rspack/binding-win32-arm64-msvc-0.4.5"
+      sources."@rspack/binding-win32-ia32-msvc-0.4.5"
+      sources."@rspack/binding-win32-x64-msvc-0.4.5"
+      (sources."@rspack/core-0.4.5" // {
+        dependencies = [
+          sources."graceful-fs-4.2.10"
+        ];
+      })
       sources."@segment/loosely-validate-event-2.0.0"
       sources."@sideway/address-4.1.4"
       sources."@sideway/formula-3.0.1"
       sources."@sideway/pinpoint-2.0.0"
       sources."@sindresorhus/is-4.6.0"
+      sources."@swc/helpers-0.5.1"
       sources."@szmarczak/http-timer-4.0.6"
       sources."@trysound/sax-0.2.0"
       sources."@types/body-parser-1.19.5"
@@ -73916,7 +75436,7 @@ in
       sources."@types/cacheable-request-6.0.3"
       sources."@types/connect-3.4.38"
       sources."@types/connect-history-api-fallback-1.5.4"
-      sources."@types/eslint-8.44.7"
+      sources."@types/eslint-8.56.1"
       sources."@types/eslint-scope-3.7.7"
       sources."@types/estree-1.0.5"
       sources."@types/express-4.17.21"
@@ -73933,9 +75453,9 @@ in
       sources."@types/keyv-3.1.4"
       sources."@types/mime-1.3.5"
       sources."@types/minimatch-5.1.2"
-      sources."@types/node-20.9.3"
-      sources."@types/node-forge-1.3.10"
-      sources."@types/qs-6.9.10"
+      sources."@types/node-20.10.7"
+      sources."@types/node-forge-1.3.11"
+      sources."@types/qs-6.9.11"
       sources."@types/range-parser-1.2.7"
       sources."@types/responselike-1.0.3"
       sources."@types/retry-0.12.5"
@@ -73968,7 +75488,7 @@ in
       sources."@xtuc/long-4.2.2"
       sources."abab-2.0.6"
       sources."accepts-1.3.8"
-      sources."acorn-8.11.2"
+      sources."acorn-8.11.3"
       sources."acorn-import-assertions-1.9.0"
       sources."agent-base-6.0.2"
       sources."aggregate-error-3.1.0"
@@ -73980,14 +75500,19 @@ in
           sources."json-schema-traverse-0.4.1"
         ];
       })
-      sources."ansi-align-3.0.1"
+      (sources."ansi-align-3.0.1" // {
+        dependencies = [
+          sources."emoji-regex-8.0.0"
+          sources."string-width-4.2.3"
+        ];
+      })
       (sources."ansi-escapes-4.3.2" // {
         dependencies = [
           sources."type-fest-0.21.3"
         ];
       })
       sources."ansi-html-community-0.0.8"
-      sources."ansi-regex-5.0.1"
+      sources."ansi-regex-6.0.1"
       sources."ansi-styles-3.2.1"
       sources."any-promise-1.3.0"
       sources."anymatch-3.1.3"
@@ -74005,20 +75530,20 @@ in
       sources."axios-0.21.1"
       sources."babel-loader-8.3.0"
       sources."babel-plugin-module-resolver-4.1.0"
-      (sources."babel-plugin-polyfill-corejs2-0.4.6" // {
+      (sources."babel-plugin-polyfill-corejs2-0.4.7" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
-      sources."babel-plugin-polyfill-corejs3-0.8.6"
-      sources."babel-plugin-polyfill-regenerator-0.5.3"
+      sources."babel-plugin-polyfill-corejs3-0.8.7"
+      sources."babel-plugin-polyfill-regenerator-0.5.4"
       sources."babel-plugin-react-native-web-0.18.12"
       sources."babel-preset-expo-9.3.2"
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."batch-0.6.1"
       sources."better-opn-3.0.2"
-      sources."big-integer-1.6.51"
+      sources."big-integer-1.6.52"
       sources."big.js-5.2.2"
       sources."binary-extensions-2.2.0"
       sources."blueimp-md5-2.19.0"
@@ -74028,14 +75553,12 @@ in
           sources."ms-2.0.0"
         ];
       })
-      (sources."bonjour-service-1.1.1" // {
-        dependencies = [
-          sources."array-flatten-2.1.2"
-        ];
-      })
+      sources."bonjour-service-1.2.0"
       sources."boolbase-1.0.0"
       (sources."boxen-5.1.2" // {
         dependencies = [
+          sources."emoji-regex-8.0.0"
+          sources."string-width-4.2.3"
           sources."type-fest-0.20.2"
         ];
       })
@@ -74043,7 +75566,7 @@ in
       sources."bplist-parser-0.2.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."browserslist-4.22.1"
+      sources."browserslist-4.22.2"
       sources."buffer-alloc-1.2.0"
       sources."buffer-alloc-unsafe-1.1.0"
       sources."buffer-fill-1.0.0"
@@ -74053,6 +75576,7 @@ in
       sources."bytes-3.1.2"
       (sources."cacache-15.3.0" // {
         dependencies = [
+          sources."lru-cache-6.0.0"
           sources."mkdirp-1.0.4"
           sources."rimraf-3.0.2"
         ];
@@ -74064,7 +75588,7 @@ in
       sources."camel-case-4.1.2"
       sources."camelcase-6.3.0"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001563"
+      sources."caniuse-lite-1.0.30001575"
       (sources."chalk-4.1.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -74079,7 +75603,7 @@ in
       sources."chownr-2.0.0"
       sources."chrome-trace-event-1.0.3"
       sources."ci-info-3.9.0"
-      sources."clean-css-5.3.2"
+      sources."clean-css-5.3.3"
       sources."clean-stack-2.2.0"
       (sources."clean-webpack-plugin-4.0.0" // {
         dependencies = [
@@ -74093,8 +75617,13 @@ in
       })
       sources."cli-boxes-2.2.1"
       sources."cli-cursor-2.1.0"
-      sources."cli-spinners-2.9.1"
-      sources."cli-table3-0.6.3"
+      sources."cli-spinners-2.9.2"
+      (sources."cli-table3-0.6.3" // {
+        dependencies = [
+          sources."emoji-regex-8.0.0"
+          sources."string-width-4.2.3"
+        ];
+      })
       sources."clone-1.0.4"
       sources."clone-response-1.0.3"
       sources."color-convert-1.9.3"
@@ -74105,7 +75634,7 @@ in
       sources."command-exists-1.2.9"
       sources."commander-2.17.1"
       sources."commondir-1.0.1"
-      sources."compare-versions-3.6.0"
+      sources."compare-versions-6.0.0-rc.1"
       sources."component-type-1.2.2"
       sources."compressible-2.0.18"
       (sources."compression-1.7.4" // {
@@ -74140,19 +75669,16 @@ in
           sources."slash-4.0.0"
         ];
       })
-      sources."core-js-compat-3.33.3"
+      sources."core-js-compat-3.35.0"
       sources."core-util-is-1.0.3"
       sources."cross-fetch-3.1.8"
-      (sources."cross-spawn-6.0.5" // {
-        dependencies = [
-          sources."semver-5.7.2"
-        ];
-      })
+      sources."cross-spawn-7.0.3"
       sources."crypt-0.0.2"
       sources."crypto-random-string-1.0.0"
       sources."css-declaration-sorter-6.4.1"
       (sources."css-loader-6.8.1" // {
         dependencies = [
+          sources."lru-cache-6.0.0"
           sources."semver-7.5.4"
         ];
       })
@@ -74196,7 +75722,6 @@ in
       sources."destroy-1.2.0"
       sources."detect-node-2.1.0"
       sources."dir-glob-3.0.1"
-      sources."dns-equal-1.0.0"
       sources."dns-packet-5.6.1"
       sources."dom-converter-0.2.0"
       sources."dom-serializer-1.4.1"
@@ -74206,9 +75731,10 @@ in
       sources."domutils-2.8.0"
       sources."dot-case-3.0.4"
       sources."duplexer3-0.1.5"
+      sources."eastasianwidth-0.2.0"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.4.589"
-      sources."emoji-regex-8.0.0"
+      sources."electron-to-chromium-1.4.623"
+      sources."emoji-regex-9.2.2"
       sources."emojis-list-3.0.0"
       sources."encodeurl-1.0.2"
       (sources."encoding-0.1.13" // {
@@ -74217,7 +75743,7 @@ in
         ];
       })
       sources."end-of-stream-1.4.4"
-      sources."enhanced-resolve-5.15.0"
+      sources."enhanced-resolve-5.12.0"
       sources."entities-2.2.0"
       sources."env-editor-0.4.2"
       sources."eol-0.9.1"
@@ -74240,13 +75766,19 @@ in
       sources."exec-async-2.2.0"
       (sources."execa-1.0.0" // {
         dependencies = [
+          sources."cross-spawn-6.0.5"
           sources."get-stream-4.1.0"
           sources."is-stream-1.1.0"
+          sources."path-key-2.0.1"
+          sources."semver-5.7.2"
+          sources."shebang-command-1.2.0"
+          sources."shebang-regex-1.0.0"
+          sources."which-1.3.1"
         ];
       })
       (sources."expo-48.0.21" // {
         dependencies = [
-          sources."@babel/runtime-7.23.4"
+          sources."@babel/runtime-7.23.7"
           (sources."@expo/config-8.0.5" // {
             dependencies = [
               sources."semver-7.3.2"
@@ -74255,11 +75787,21 @@ in
           sources."@expo/config-plugins-6.0.2"
           sources."@expo/config-types-48.0.0"
           sources."commander-7.2.0"
+          (sources."cross-spawn-6.0.5" // {
+            dependencies = [
+              sources."semver-5.7.2"
+            ];
+          })
           sources."expo-modules-autolinking-1.2.0"
           sources."fs-extra-9.1.0"
-          sources."regenerator-runtime-0.14.0"
+          sources."lru-cache-6.0.0"
+          sources."path-key-2.0.1"
+          sources."regenerator-runtime-0.14.1"
           sources."semver-7.5.4"
+          sources."shebang-command-1.2.0"
+          sources."shebang-regex-1.0.0"
           sources."uuid-3.4.0"
+          sources."which-1.3.1"
         ];
       })
       sources."expo-application-5.1.1"
@@ -74270,6 +75812,7 @@ in
           sources."@expo/config-types-48.0.0"
           sources."expo-constants-14.3.0"
           sources."expo-file-system-15.3.0"
+          sources."lru-cache-6.0.0"
           sources."semver-7.5.4"
           sources."uuid-3.4.0"
         ];
@@ -74279,6 +75822,7 @@ in
           sources."@expo/config-8.0.5"
           sources."@expo/config-plugins-6.0.2"
           sources."@expo/config-types-48.0.0"
+          sources."lru-cache-6.0.0"
           sources."semver-7.5.4"
           sources."uuid-3.4.0"
         ];
@@ -74296,7 +75840,11 @@ in
           sources."fs-extra-9.1.0"
         ];
       })
-      sources."expo-modules-core-1.2.7"
+      (sources."expo-modules-core-1.2.7" // {
+        dependencies = [
+          sources."compare-versions-3.6.0"
+        ];
+      })
       (sources."expo-pwa-0.0.125" // {
         dependencies = [
           sources."@expo/image-utils-0.3.23"
@@ -74331,7 +75879,7 @@ in
       sources."fast-deep-equal-3.1.3"
       sources."fast-glob-3.3.2"
       sources."fast-json-stable-stringify-2.1.0"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."faye-websocket-0.11.4"
       sources."fbemitter-3.0.0"
       sources."fbjs-3.0.5"
@@ -74355,8 +75903,13 @@ in
       sources."find-cache-dir-3.3.2"
       sources."find-up-5.0.0"
       sources."find-yarn-workspace-root-2.0.0"
-      sources."follow-redirects-1.15.3"
+      sources."follow-redirects-1.15.4"
       sources."fontfaceobserver-2.3.0"
+      (sources."foreground-child-3.1.1" // {
+        dependencies = [
+          sources."signal-exit-4.1.0"
+        ];
+      })
       sources."form-data-2.5.1"
       sources."forwarded-0.2.0"
       sources."freeport-async-2.0.0"
@@ -74395,7 +75948,11 @@ in
       sources."hashids-1.1.4"
       sources."hasown-2.0.0"
       sources."he-1.2.0"
-      sources."hosted-git-info-3.0.8"
+      (sources."hosted-git-info-3.0.8" // {
+        dependencies = [
+          sources."lru-cache-6.0.0"
+        ];
+      })
       sources."hpack.js-2.1.6"
       sources."html-entities-2.4.0"
       (sources."html-minifier-terser-6.1.0" // {
@@ -74403,7 +75960,7 @@ in
           sources."commander-8.3.0"
         ];
       })
-      sources."html-webpack-plugin-5.5.3"
+      sources."html-webpack-plugin-5.6.0"
       sources."htmlparser2-6.1.0"
       sources."http-cache-semantics-4.1.1"
       sources."http-deceiver-1.2.7"
@@ -74479,6 +76036,7 @@ in
       sources."is-wsl-2.2.0"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
+      sources."jackspeak-2.3.6"
       (sources."jest-worker-27.5.1" // {
         dependencies = [
           sources."has-flag-4.0.0"
@@ -74496,7 +76054,7 @@ in
       })
       sources."jsesc-2.5.2"
       sources."json-buffer-3.0.1"
-      sources."json-parse-even-better-errors-2.3.1"
+      sources."json-parse-even-better-errors-3.0.1"
       (sources."json-schema-deref-sync-0.13.0" // {
         dependencies = [
           sources."clone-2.1.2"
@@ -74534,7 +76092,7 @@ in
       sources."loose-envify-1.4.0"
       sources."lower-case-2.0.2"
       sources."lowercase-keys-2.0.0"
-      sources."lru-cache-6.0.0"
+      sources."lru-cache-10.1.0"
       (sources."make-dir-3.1.0" // {
         dependencies = [
           sources."semver-6.3.1"
@@ -74551,7 +76109,11 @@ in
       sources."merge-stream-2.0.0"
       sources."merge2-1.4.1"
       sources."methods-1.1.2"
-      sources."metro-react-native-babel-preset-0.73.9"
+      (sources."metro-react-native-babel-preset-0.73.9" // {
+        dependencies = [
+          sources."react-refresh-0.4.3"
+        ];
+      })
       sources."micromatch-4.0.5"
       sources."mime-2.6.0"
       sources."mime-db-1.52.0"
@@ -74591,9 +76153,9 @@ in
       sources."no-case-3.0.4"
       sources."node-fetch-2.7.0"
       sources."node-forge-0.10.0"
-      sources."node-gyp-build-4.7.0"
+      sources."node-gyp-build-4.8.0"
       sources."node-html-parser-5.4.2"
-      sources."node-releases-2.0.13"
+      sources."node-releases-2.0.14"
       sources."normalize-path-3.0.0"
       sources."normalize-url-6.1.0"
       (sources."npm-package-arg-6.1.0" // {
@@ -74602,7 +76164,11 @@ in
           sources."semver-5.7.2"
         ];
       })
-      sources."npm-run-path-2.0.2"
+      (sources."npm-run-path-2.0.2" // {
+        dependencies = [
+          sources."path-key-2.0.1"
+        ];
+      })
       sources."nth-check-2.1.1"
       sources."nullthrows-1.1.1"
       sources."object-assign-4.1.1"
@@ -74666,21 +76232,18 @@ in
       sources."parse-png-2.1.0"
       sources."parseurl-1.3.3"
       sources."pascal-case-3.1.2"
-      (sources."password-prompt-1.1.3" // {
-        dependencies = [
-          sources."cross-spawn-7.0.3"
-          sources."path-key-3.1.1"
-          sources."shebang-command-2.0.0"
-          sources."shebang-regex-3.0.0"
-          sources."which-2.0.2"
-        ];
-      })
+      sources."password-prompt-1.1.3"
       sources."path-browserify-1.0.1"
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-is-inside-1.0.2"
-      sources."path-key-2.0.1"
+      sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
+      (sources."path-scurry-1.10.1" // {
+        dependencies = [
+          sources."minipass-7.0.4"
+        ];
+      })
       sources."path-to-regexp-0.1.7"
       sources."path-type-4.0.0"
       sources."picocolors-1.0.0"
@@ -74713,7 +76276,7 @@ in
         ];
       })
       sources."pngjs-3.4.0"
-      sources."postcss-8.4.31"
+      sources."postcss-8.4.33"
       sources."postcss-calc-8.2.4"
       sources."postcss-colormin-5.3.1"
       sources."postcss-convert-values-5.1.3"
@@ -74729,7 +76292,7 @@ in
       sources."postcss-minify-selectors-5.2.1"
       sources."postcss-modules-extract-imports-3.0.0"
       sources."postcss-modules-local-by-default-4.0.3"
-      sources."postcss-modules-scope-3.0.0"
+      sources."postcss-modules-scope-3.1.0"
       sources."postcss-modules-values-4.0.0"
       sources."postcss-normalize-charset-5.1.0"
       sources."postcss-normalize-display-values-5.1.0"
@@ -74743,7 +76306,7 @@ in
       sources."postcss-ordered-values-5.1.3"
       sources."postcss-reduce-initial-5.1.2"
       sources."postcss-reduce-transforms-5.1.0"
-      sources."postcss-selector-parser-6.0.13"
+      sources."postcss-selector-parser-6.0.15"
       sources."postcss-svgo-5.1.0"
       sources."postcss-unique-selectors-5.1.1"
       sources."postcss-value-parser-4.2.0"
@@ -74752,6 +76315,7 @@ in
       sources."pretty-error-4.0.0"
       (sources."pretty-format-26.6.2" // {
         dependencies = [
+          sources."ansi-regex-5.0.1"
           sources."ansi-styles-4.3.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
@@ -74776,7 +76340,7 @@ in
       sources."raw-body-2.5.2"
       sources."rc-1.2.8"
       sources."react-is-17.0.2"
-      sources."react-refresh-0.4.3"
+      sources."react-refresh-0.14.0"
       sources."read-chunk-3.2.0"
       sources."read-last-lines-1.6.0"
       (sources."readable-stream-2.3.8" // {
@@ -74881,8 +76445,8 @@ in
       sources."set-function-length-1.1.1"
       sources."setimmediate-1.0.5"
       sources."setprototypeof-1.2.0"
-      sources."shebang-command-1.2.0"
-      sources."shebang-regex-1.0.0"
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
       sources."shell-quote-1.8.1"
       sources."side-channel-1.0.4"
       sources."signal-exit-3.0.7"
@@ -74926,22 +76490,44 @@ in
           sources."ms-2.0.0"
         ];
       })
-      sources."string-width-4.2.3"
+      (sources."string-width-5.1.2" // {
+        dependencies = [
+          sources."strip-ansi-7.1.0"
+        ];
+      })
+      (sources."string-width-cjs-4.2.3" // {
+        dependencies = [
+          sources."emoji-regex-8.0.0"
+        ];
+      })
       (sources."string_decoder-1.1.1" // {
         dependencies = [
           sources."safe-buffer-5.1.2"
         ];
       })
-      sources."strip-ansi-6.0.1"
+      (sources."strip-ansi-6.0.1" // {
+        dependencies = [
+          sources."ansi-regex-5.0.1"
+        ];
+      })
+      (sources."strip-ansi-cjs-6.0.1" // {
+        dependencies = [
+          sources."ansi-regex-5.0.1"
+        ];
+      })
       sources."strip-eof-1.0.0"
       sources."strip-final-newline-2.0.0"
       sources."strip-json-comments-2.0.1"
       sources."structured-headers-0.4.1"
       sources."style-loader-3.3.3"
       sources."stylehacks-5.1.1"
-      (sources."sucrase-3.34.0" // {
+      (sources."sucrase-3.35.0" // {
         dependencies = [
+          sources."brace-expansion-2.0.1"
           sources."commander-4.1.1"
+          sources."glob-10.3.10"
+          sources."minimatch-9.0.3"
+          sources."minipass-7.0.4"
         ];
       })
       sources."sudo-prompt-9.1.1"
@@ -74974,13 +76560,13 @@ in
         ];
       })
       sources."terminal-link-2.1.1"
-      (sources."terser-5.24.0" // {
+      (sources."terser-5.26.0" // {
         dependencies = [
           sources."commander-2.20.3"
           sources."source-map-support-0.5.21"
         ];
       })
-      (sources."terser-webpack-plugin-5.3.9" // {
+      (sources."terser-webpack-plugin-5.3.10" // {
         dependencies = [
           sources."ajv-6.12.6"
           sources."json-schema-traverse-0.4.1"
@@ -74998,7 +76584,7 @@ in
       sources."to-regex-range-5.0.1"
       sources."toidentifier-1.0.1"
       sources."tr46-0.0.3"
-      sources."traverse-0.6.7"
+      sources."traverse-0.6.8"
       sources."tree-kill-1.2.2"
       sources."ts-interface-checker-0.1.13"
       sources."tslib-2.6.2"
@@ -75043,9 +76629,10 @@ in
       (sources."webpack-5.89.0" // {
         dependencies = [
           sources."ajv-6.12.6"
+          sources."enhanced-resolve-5.15.0"
+          sources."json-parse-even-better-errors-2.3.1"
           sources."json-schema-traverse-0.4.1"
           sources."schema-utils-3.3.0"
-          sources."webpack-sources-3.2.3"
         ];
       })
       (sources."webpack-dev-middleware-5.3.3" // {
@@ -75061,7 +76648,6 @@ in
           sources."body-parser-1.20.1"
           sources."content-disposition-0.5.4"
           sources."cookie-0.5.0"
-          sources."cross-spawn-7.0.3"
           sources."debug-2.6.9"
           sources."default-gateway-6.0.3"
           sources."execa-5.1.1"
@@ -75074,24 +76660,29 @@ in
           sources."npm-run-path-4.0.1"
           sources."onetime-5.1.2"
           sources."p-retry-4.6.2"
-          sources."path-key-3.1.1"
           sources."raw-body-2.5.1"
           sources."retry-0.13.1"
           sources."rimraf-3.0.2"
           sources."schema-utils-4.2.0"
           sources."serve-static-1.15.0"
-          sources."shebang-command-2.0.0"
-          sources."shebang-regex-3.0.0"
-          sources."which-2.0.2"
         ];
       })
-      sources."webpack-manifest-plugin-4.1.1"
-      sources."webpack-sources-2.3.1"
+      (sources."webpack-manifest-plugin-4.1.1" // {
+        dependencies = [
+          sources."webpack-sources-2.3.1"
+        ];
+      })
+      sources."webpack-sources-3.2.3"
       sources."websocket-driver-0.7.4"
       sources."websocket-extensions-0.1.4"
       sources."whatwg-url-5.0.0"
-      sources."which-1.3.1"
-      sources."widest-line-3.1.0"
+      sources."which-2.0.2"
+      (sources."widest-line-3.1.0" // {
+        dependencies = [
+          sources."emoji-regex-8.0.0"
+          sources."string-width-4.2.3"
+        ];
+      })
       sources."with-open-file-0.1.7"
       sources."wonka-4.0.15"
       (sources."wrap-ansi-7.0.0" // {
@@ -75099,11 +76690,22 @@ in
           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."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."wrappy-1.0.2"
       sources."write-file-atomic-2.4.3"
-      sources."ws-8.14.2"
+      sources."ws-8.16.0"
       (sources."xcode-3.0.1" // {
         dependencies = [
           sources."uuid-7.0.3"
@@ -75125,6 +76727,8 @@ in
       sources."yallist-4.0.0"
       sources."yaml-1.10.2"
       sources."yocto-queue-0.1.0"
+      sources."zod-3.22.4"
+      sources."zod-validation-error-1.3.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -75146,12 +76750,12 @@ in
     };
     dependencies = [
       sources."@ampproject/remapping-2.2.1"
-      sources."@babel/code-frame-7.23.4"
-      sources."@babel/compat-data-7.23.3"
-      sources."@babel/core-7.23.3"
-      sources."@babel/generator-7.23.4"
+      sources."@babel/code-frame-7.23.5"
+      sources."@babel/compat-data-7.23.5"
+      sources."@babel/core-7.23.7"
+      sources."@babel/generator-7.23.6"
       sources."@babel/helper-annotate-as-pure-7.22.5"
-      sources."@babel/helper-compilation-targets-7.22.15"
+      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"
@@ -75162,10 +76766,10 @@ in
       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.22.15"
-      sources."@babel/helpers-7.23.4"
+      sources."@babel/helper-validator-option-7.23.5"
+      sources."@babel/helpers-7.23.7"
       sources."@babel/highlight-7.23.4"
-      sources."@babel/parser-7.23.4"
+      sources."@babel/parser-7.23.6"
       sources."@babel/plugin-proposal-object-rest-spread-7.20.7"
       sources."@babel/plugin-syntax-jsx-7.23.3"
       sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
@@ -75173,19 +76777,19 @@ in
       sources."@babel/plugin-transform-parameters-7.23.3"
       sources."@babel/plugin-transform-react-jsx-7.23.4"
       sources."@babel/template-7.22.15"
-      sources."@babel/traverse-7.23.4"
-      sources."@babel/types-7.23.4"
+      sources."@babel/traverse-7.23.7"
+      sources."@babel/types-7.23.6"
       sources."@jridgewell/gen-mapping-0.3.3"
       sources."@jridgewell/resolve-uri-3.1.1"
       sources."@jridgewell/set-array-1.1.2"
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@jridgewell/trace-mapping-0.3.20"
       sources."@types/minimist-1.2.5"
-      sources."@types/node-20.9.3"
+      sources."@types/node-20.10.7"
       sources."@types/normalize-package-data-2.4.4"
       sources."@types/prop-types-15.7.11"
-      sources."@types/react-18.2.38"
-      sources."@types/scheduler-0.16.7"
+      sources."@types/react-18.2.47"
+      sources."@types/scheduler-0.16.8"
       sources."@types/yauzl-2.10.3"
       sources."@types/yoga-layout-1.9.2"
       sources."agent-base-6.0.2"
@@ -75203,7 +76807,7 @@ in
       sources."base64-js-1.5.1"
       sources."bl-4.1.0"
       sources."brace-expansion-1.1.11"
-      sources."browserslist-4.22.1"
+      sources."browserslist-4.22.2"
       sources."buffer-5.7.1"
       sources."buffer-crc32-0.2.13"
       sources."bufferutil-4.0.8"
@@ -75212,13 +76816,13 @@ in
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001563"
+      sources."caniuse-lite-1.0.30001575"
       sources."chalk-2.4.2"
       sources."chownr-1.1.4"
       sources."ci-info-2.0.0"
       sources."cli-boxes-2.2.1"
       sources."cli-cursor-3.1.0"
-      sources."cli-spinners-2.9.1"
+      sources."cli-spinners-2.9.2"
       sources."cli-truncate-2.1.0"
       sources."code-excerpt-3.0.0"
       sources."color-convert-1.9.3"
@@ -75228,7 +76832,7 @@ in
       sources."convert-source-map-2.0.0"
       sources."convert-to-spaces-1.0.2"
       sources."cross-fetch-3.1.5"
-      sources."csstype-3.1.2"
+      sources."csstype-3.1.3"
       sources."debug-4.3.4"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.1" // {
@@ -75238,7 +76842,7 @@ in
       })
       sources."delay-5.0.0"
       sources."devtools-protocol-0.0.981744"
-      sources."electron-to-chromium-1.4.589"
+      sources."electron-to-chromium-1.4.623"
       sources."emoji-regex-8.0.0"
       sources."encoding-0.1.13"
       sources."end-of-stream-1.4.4"
@@ -75312,8 +76916,8 @@ in
       sources."mkdirp-classic-0.5.3"
       sources."ms-2.1.2"
       sources."node-fetch-2.6.7"
-      sources."node-gyp-build-4.7.0"
-      sources."node-releases-2.0.13"
+      sources."node-gyp-build-4.8.0"
+      sources."node-releases-2.0.14"
       (sources."normalize-package-data-3.0.3" // {
         dependencies = [
           sources."lru-cache-6.0.0"
@@ -75480,21 +77084,21 @@ in
       sources."@oclif/plugin-help-5.2.20"
       sources."@oclif/plugin-plugins-2.4.7"
       sources."@oclif/screen-1.0.4"
-      sources."@swc/core-1.3.99"
+      sources."@swc/core-1.3.102"
       sources."@swc/counter-0.1.2"
       sources."@swc/helpers-0.5.3"
       sources."@swc/types-0.1.5"
-      sources."@swc/wasm-1.3.99"
+      sources."@swc/wasm-1.3.102"
       sources."@tsconfig/node10-1.0.9"
       sources."@tsconfig/node12-1.0.11"
       sources."@tsconfig/node14-1.0.3"
       sources."@tsconfig/node16-1.0.4"
       sources."@types/cli-progress-3.11.5"
       sources."@types/mute-stream-0.0.4"
-      sources."@types/node-20.9.3"
+      sources."@types/node-20.10.7"
       sources."@types/wrap-ansi-3.0.0"
-      sources."acorn-8.11.2"
-      sources."acorn-walk-8.3.0"
+      sources."acorn-8.11.3"
+      sources."acorn-walk-8.3.1"
       sources."ansi-align-3.0.1"
       sources."ansi-escapes-4.3.2"
       sources."ansi-regex-5.0.1"
@@ -75536,7 +77140,7 @@ in
       sources."cli-boxes-2.2.1"
       sources."cli-cursor-3.1.0"
       sources."cli-progress-3.12.0"
-      sources."cli-spinners-2.9.1"
+      sources."cli-spinners-2.9.2"
       sources."cli-table-0.3.11"
       (sources."cli-ux-4.9.3" // {
         dependencies = [
@@ -75575,7 +77179,7 @@ in
       sources."create-require-1.1.1"
       sources."cross-fetch-3.1.8"
       sources."cross-spawn-7.0.3"
-      sources."csv-parse-5.5.2"
+      sources."csv-parse-5.5.3"
       sources."csv-stream-0.2.0"
       sources."debug-4.3.4"
       sources."deep-is-0.1.4"
@@ -75602,7 +77206,7 @@ in
       sources."extract-stack-1.0.0"
       sources."fast-glob-3.3.2"
       sources."fast-levenshtein-2.0.6"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."faunadb-4.8.0"
       sources."figures-3.2.0"
       (sources."filelist-1.0.4" // {
@@ -75670,7 +77274,7 @@ in
           sources."brace-expansion-1.1.11"
         ];
       })
-      sources."moment-2.29.4"
+      sources."moment-2.30.1"
       sources."ms-2.1.2"
       sources."mute-stream-1.0.0"
       sources."natural-orderby-2.0.3"
@@ -75732,12 +77336,12 @@ in
       sources."to-regex-range-5.0.1"
       sources."tr46-0.0.3"
       sources."treeify-1.1.0"
-      sources."ts-node-10.9.1"
+      sources."ts-node-10.9.2"
       sources."tslib-2.6.2"
       sources."tunnel-agent-0.6.0"
       sources."type-check-0.3.2"
       sources."type-fest-0.21.3"
-      sources."typescript-5.3.2"
+      sources."typescript-5.3.3"
       sources."undici-types-5.26.5"
       sources."universalify-2.0.1"
       sources."util-deprecate-1.0.2"
@@ -75835,7 +77439,7 @@ in
       sources."chardet-0.7.0"
       sources."clean-stack-5.2.0"
       sources."cli-cursor-3.1.0"
-      sources."cli-spinners-2.9.1"
+      sources."cli-spinners-2.9.2"
       sources."cli-truncate-4.0.0"
       sources."cli-width-4.1.0"
       sources."clone-1.0.4"
@@ -75845,7 +77449,7 @@ in
       sources."defaults-1.0.4"
       sources."define-data-property-1.1.1"
       sources."emoji-regex-10.3.0"
-      sources."esc-exit-3.0.0"
+      sources."esc-exit-3.0.1"
       sources."escape-string-regexp-5.0.0"
       sources."execa-8.0.1"
       sources."external-editor-3.1.0"
@@ -75900,7 +77504,7 @@ in
       sources."merge-stream-2.0.0"
       sources."mimic-fn-4.0.0"
       sources."mute-stream-1.0.0"
-      (sources."npm-run-path-5.1.0" // {
+      (sources."npm-run-path-5.2.0" // {
         dependencies = [
           sources."path-key-4.0.0"
         ];
@@ -75992,12 +77596,12 @@ in
       sources."@ethereumjs/util-8.1.0"
       sources."@noble/curves-1.1.0"
       sources."@noble/hashes-1.3.1"
-      sources."@scure/base-1.1.3"
+      sources."@scure/base-1.1.5"
       sources."@scure/bip32-1.3.1"
       sources."@scure/bip39-1.2.1"
       sources."@types/atob-2.1.4"
       sources."@types/inquirer-6.5.0"
-      sources."@types/node-20.9.3"
+      sources."@types/node-20.10.7"
       sources."@types/through-0.0.33"
       sources."ajv-6.12.6"
       sources."ansi-escapes-4.3.2"
@@ -76117,7 +77721,7 @@ in
       sources."qs-6.5.3"
       sources."querystring-0.2.1"
       sources."randombytes-2.1.0"
-      sources."reflect-metadata-0.1.13"
+      sources."reflect-metadata-0.1.14"
       sources."request-2.88.2"
       sources."request-promise-4.2.6"
       sources."request-promise-core-1.1.4"
@@ -76421,7 +78025,7 @@ in
       sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
-      sources."object.assign-4.1.4"
+      sources."object.assign-4.1.5"
       sources."object.pick-1.3.0"
       sources."once-1.4.0"
       sources."one-time-1.0.0"
@@ -76598,10 +78202,10 @@ in
   ganache = nodeEnv.buildNodePackage {
     name = "ganache";
     packageName = "ganache";
-    version = "7.9.1";
+    version = "7.9.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/ganache/-/ganache-7.9.1.tgz";
-      sha512 = "Tqhd4J3cpiLeYTD6ek/zlchSB107IVPMIm4ypyg+xz1sdkeALUnYYZnmY4Bdjqj3i6QwtlZPCu7U4qKy7HlWTA==";
+      url = "https://registry.npmjs.org/ganache/-/ganache-7.9.2.tgz";
+      sha512 = "7gsVVDpO9AhrFyDMWWl7SpMsPpqGcnAzjxz3k32LheIPNd64p2XsY9GYRdhWmKuryb60W1iaWPZWDkFKlbRWHA==";
     };
     dependencies = [
       (sources."@trufflesuite/uws-js-unofficial-20.30.0-unofficial.0" // {
@@ -76612,7 +78216,7 @@ in
       })
       sources."@types/bn.js-5.1.5"
       sources."@types/lru-cache-5.1.1"
-      sources."@types/node-20.9.3"
+      sources."@types/node-20.10.7"
       sources."@types/seedrandom-3.0.1"
       sources."abstract-level-1.0.3"
       (sources."abstract-leveldown-7.2.0" // {
@@ -76634,7 +78238,7 @@ in
       sources."level-transcoder-1.0.1"
       sources."lodash-4.17.21"
       sources."module-error-1.0.2"
-      sources."node-gyp-build-4.7.0"
+      sources."node-gyp-build-4.8.0"
       sources."queue-microtask-1.2.3"
       sources."undici-types-5.26.5"
       sources."utf-8-validate-5.0.7"
@@ -76653,32 +78257,32 @@ in
   gatsby-cli = nodeEnv.buildNodePackage {
     name = "gatsby-cli";
     packageName = "gatsby-cli";
-    version = "5.12.4";
+    version = "5.13.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-5.12.4.tgz";
-      sha512 = "GD+otyd5LlgSbYK4ODrKyAise/k32G7Qy7H/k+gJ2P8DCG9sU+j//2zNwF7mY8C5dl0SpROqFTL+I0Y1DK4tmQ==";
+      url = "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-5.13.1.tgz";
+      sha512 = "8BEdbNC8A6Q/s/WBRbRYiTE+B5OR+dB9Ka+qkYHIPBHmW0VuQnhWElYiPX7Nd3ffW3KNmL8BDU3Ns9Hhm66cyA==";
     };
     dependencies = [
       sources."@ampproject/remapping-2.2.1"
-      (sources."@babel/code-frame-7.23.4" // {
+      (sources."@babel/code-frame-7.23.5" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/compat-data-7.23.3"
-      (sources."@babel/core-7.23.3" // {
+      sources."@babel/compat-data-7.23.5"
+      (sources."@babel/core-7.23.7" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
-      sources."@babel/generator-7.23.4"
+      sources."@babel/generator-7.23.6"
       sources."@babel/helper-annotate-as-pure-7.22.5"
-      (sources."@babel/helper-compilation-targets-7.22.15" // {
+      (sources."@babel/helper-compilation-targets-7.23.6" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
-      (sources."@babel/helper-create-class-features-plugin-7.22.15" // {
+      (sources."@babel/helper-create-class-features-plugin-7.23.7" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
@@ -76697,23 +78301,23 @@ in
       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.22.15"
-      sources."@babel/helpers-7.23.4"
+      sources."@babel/helper-validator-option-7.23.5"
+      sources."@babel/helpers-7.23.7"
       (sources."@babel/highlight-7.23.4" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.23.4"
+      sources."@babel/parser-7.23.6"
       sources."@babel/plugin-syntax-jsx-7.23.3"
       sources."@babel/plugin-syntax-typescript-7.23.3"
       sources."@babel/plugin-transform-modules-commonjs-7.23.3"
-      sources."@babel/plugin-transform-typescript-7.23.4"
+      sources."@babel/plugin-transform-typescript-7.23.6"
       sources."@babel/preset-typescript-7.23.3"
-      sources."@babel/runtime-7.23.4"
+      sources."@babel/runtime-7.23.7"
       sources."@babel/template-7.22.15"
-      sources."@babel/traverse-7.23.4"
-      sources."@babel/types-7.23.4"
+      sources."@babel/traverse-7.23.7"
+      sources."@babel/types-7.23.6"
       sources."@hapi/hoek-9.3.0"
       sources."@hapi/topo-5.1.0"
       sources."@jridgewell/gen-mapping-0.3.3"
@@ -76739,8 +78343,8 @@ in
       sources."@types/common-tags-1.8.4"
       sources."@types/http-cache-semantics-4.0.4"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-20.9.3"
-      sources."@types/node-fetch-2.6.9"
+      sources."@types/node-20.10.7"
+      sources."@types/node-fetch-2.6.10"
       sources."@types/responselike-1.0.3"
       sources."@types/yoga-layout-1.9.2"
       sources."ansi-align-3.0.1"
@@ -76751,14 +78355,13 @@ in
       })
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-3.2.1"
-      sources."arch-2.2.0"
       sources."asynckit-0.4.0"
       sources."balanced-match-1.0.2"
       sources."better-opn-2.1.1"
       sources."boolbase-1.0.0"
       sources."boxen-5.1.2"
       sources."brace-expansion-1.1.11"
-      sources."browserslist-4.22.1"
+      sources."browserslist-4.22.2"
       sources."cacheable-lookup-5.0.4"
       (sources."cacheable-request-7.0.4" // {
         dependencies = [
@@ -76766,7 +78369,7 @@ in
         ];
       })
       sources."camelcase-6.3.0"
-      sources."caniuse-lite-1.0.30001563"
+      sources."caniuse-lite-1.0.30001575"
       (sources."chalk-4.1.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -76781,9 +78384,11 @@ in
       sources."cli-boxes-2.2.1"
       sources."cli-cursor-3.1.0"
       sources."cli-width-3.0.0"
-      (sources."clipboardy-2.3.0" // {
+      (sources."clipboardy-4.0.0" // {
         dependencies = [
-          sources."execa-1.0.0"
+          sources."execa-8.0.1"
+          sources."is-wsl-3.1.0"
+          sources."signal-exit-4.1.0"
         ];
       })
       (sources."cliui-6.0.0" // {
@@ -76803,12 +78408,8 @@ in
       sources."configstore-5.0.1"
       sources."convert-hrtime-3.0.0"
       sources."convert-source-map-2.0.0"
-      sources."create-gatsby-3.12.3"
-      (sources."cross-spawn-6.0.5" // {
-        dependencies = [
-          sources."semver-5.7.2"
-        ];
-      })
+      sources."create-gatsby-3.13.0"
+      sources."cross-spawn-7.0.3"
       sources."crypto-random-string-2.0.0"
       sources."css-select-4.3.0"
       sources."css-what-6.1.0"
@@ -76827,7 +78428,7 @@ in
       sources."domhandler-4.3.1"
       sources."domutils-2.8.0"
       sources."dot-prop-5.3.0"
-      sources."electron-to-chromium-1.4.589"
+      sources."electron-to-chromium-1.4.623"
       sources."emoji-regex-8.0.0"
       sources."encoding-0.1.13"
       sources."end-of-stream-1.4.4"
@@ -76837,14 +78438,13 @@ in
       sources."escape-string-regexp-1.0.5"
       (sources."execa-5.1.1" // {
         dependencies = [
-          sources."cross-spawn-7.0.3"
           sources."get-stream-6.0.1"
+          sources."human-signals-2.1.0"
           sources."is-stream-2.0.1"
+          sources."mimic-fn-2.1.0"
           sources."npm-run-path-4.0.1"
-          sources."path-key-3.1.1"
-          sources."shebang-command-2.0.0"
-          sources."shebang-regex-3.0.0"
-          sources."which-2.0.2"
+          sources."onetime-5.1.2"
+          sources."strip-final-newline-2.0.0"
         ];
       })
       (sources."external-editor-3.1.0" // {
@@ -76853,19 +78453,19 @@ in
           sources."tmp-0.0.33"
         ];
       })
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."figures-3.2.0"
       sources."file-type-16.5.4"
       sources."find-up-4.1.0"
       sources."form-data-4.0.0"
       sources."fs-exists-cached-1.0.0"
-      sources."fs-extra-11.1.1"
+      sources."fs-extra-11.2.0"
       sources."fs.realpath-1.0.0"
-      sources."gatsby-core-utils-4.12.1"
-      sources."gatsby-telemetry-4.12.1"
+      sources."gatsby-core-utils-4.13.0"
+      sources."gatsby-telemetry-4.13.0"
       sources."gensync-1.0.0-beta.2"
       sources."get-caller-file-2.0.5"
-      sources."get-stream-4.1.0"
+      sources."get-stream-8.0.1"
       sources."git-up-7.0.0"
       sources."glob-7.2.3"
       sources."globals-11.12.0"
@@ -76882,7 +78482,7 @@ in
       sources."htmlparser2-6.1.0"
       sources."http-cache-semantics-4.1.1"
       sources."http2-wrapper-1.0.3"
-      sources."human-signals-2.1.0"
+      sources."human-signals-5.0.0"
       sources."iconv-lite-0.6.3"
       sources."ieee754-1.2.1"
       sources."import-from-4.0.0"
@@ -76895,13 +78495,19 @@ in
       sources."is-extglob-1.0.0"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-2.0.1"
+      (sources."is-inside-container-1.0.0" // {
+        dependencies = [
+          sources."is-docker-3.0.0"
+        ];
+      })
       sources."is-invalid-path-0.1.0"
       sources."is-obj-2.0.0"
       sources."is-ssh-1.4.0"
-      sources."is-stream-1.1.0"
+      sources."is-stream-3.0.0"
       sources."is-typedarray-1.0.0"
       sources."is-valid-path-0.1.1"
       sources."is-wsl-2.2.0"
+      sources."is64bit-2.0.0"
       sources."isexe-2.0.0"
       sources."joi-17.11.0"
       sources."js-tokens-4.0.0"
@@ -76925,29 +78531,31 @@ in
       sources."merge-stream-2.0.0"
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
-      sources."mimic-fn-2.1.0"
+      sources."mimic-fn-4.0.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.1.2"
       sources."ms-2.1.2"
-      sources."msgpackr-1.9.9"
+      sources."msgpackr-1.10.1"
       sources."mute-stream-0.0.8"
-      sources."nice-try-1.0.5"
       sources."node-addon-api-4.3.0"
       sources."node-fetch-2.7.0"
       sources."node-gyp-build-optional-packages-5.0.3"
       sources."node-object-hash-2.3.10"
-      sources."node-releases-2.0.13"
+      sources."node-releases-2.0.14"
       sources."normalize-url-6.1.0"
-      sources."npm-run-path-2.0.2"
+      (sources."npm-run-path-5.2.0" // {
+        dependencies = [
+          sources."path-key-4.0.0"
+        ];
+      })
       sources."nth-check-2.1.1"
       sources."once-1.4.0"
-      sources."onetime-5.1.2"
+      sources."onetime-6.0.0"
       sources."open-7.4.2"
       sources."opentracing-0.14.7"
-      sources."ordered-binary-1.4.1"
+      sources."ordered-binary-1.5.1"
       sources."os-tmpdir-1.0.2"
       sources."p-cancelable-2.1.1"
-      sources."p-finally-1.0.0"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
       sources."p-try-2.2.0"
@@ -76955,7 +78563,7 @@ in
       sources."parse-url-8.1.0"
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
-      sources."path-key-2.0.1"
+      sources."path-key-3.1.1"
       sources."peek-readable-4.1.0"
       sources."picocolors-1.0.0"
       sources."pretty-error-2.1.2"
@@ -76969,7 +78577,7 @@ in
       sources."readable-stream-3.6.2"
       sources."readable-web-to-node-stream-3.0.2"
       sources."redux-4.2.1"
-      sources."regenerator-runtime-0.14.0"
+      sources."regenerator-runtime-0.14.1"
       (sources."renderkid-2.0.7" // {
         dependencies = [
           sources."strip-ansi-3.0.1"
@@ -76981,7 +78589,12 @@ in
       sources."resolve-cwd-3.0.0"
       sources."resolve-from-5.0.0"
       sources."responselike-2.0.1"
-      sources."restore-cursor-3.1.0"
+      (sources."restore-cursor-3.1.0" // {
+        dependencies = [
+          sources."mimic-fn-2.1.0"
+          sources."onetime-5.1.2"
+        ];
+      })
       sources."retry-0.12.0"
       sources."reusify-1.0.4"
       sources."rimraf-3.0.2"
@@ -76996,8 +78609,8 @@ in
         ];
       })
       sources."set-blocking-2.0.0"
-      sources."shebang-command-1.2.0"
-      sources."shebang-regex-1.0.0"
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
       sources."signal-exit-3.0.7"
       sources."sisteransi-1.0.5"
       sources."stack-trace-0.0.10"
@@ -77008,10 +78621,10 @@ in
           sources."ansi-regex-5.0.1"
         ];
       })
-      sources."strip-eof-1.0.0"
-      sources."strip-final-newline-2.0.0"
+      sources."strip-final-newline-3.0.0"
       sources."strtok3-6.3.0"
       sources."supports-color-5.5.0"
+      sources."system-architecture-0.1.0"
       sources."through-2.3.8"
       sources."tmp-0.2.1"
       sources."to-fast-properties-2.0.0"
@@ -77029,7 +78642,7 @@ in
       sources."weak-lru-cache-1.2.2"
       sources."webidl-conversions-3.0.1"
       sources."whatwg-url-5.0.0"
-      sources."which-1.3.1"
+      sources."which-2.0.2"
       sources."which-module-2.0.1"
       sources."widest-line-3.1.0"
       (sources."wrap-ansi-7.0.0" // {
@@ -77156,15 +78769,15 @@ in
   "@gitbeaker/cli" = nodeEnv.buildNodePackage {
     name = "_at_gitbeaker_slash_cli";
     packageName = "@gitbeaker/cli";
-    version = "39.24.0";
+    version = "39.28.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@gitbeaker/cli/-/cli-39.24.0.tgz";
-      sha512 = "YUDR6NfJ+UgmAX013i/ZjLVdXii8t50Z5Ip9JTWK90rIRqHKkXGGpEBN4Rj491vwFiG3TcaiqAGzHwWNGzEbng==";
+      url = "https://registry.npmjs.org/@gitbeaker/cli/-/cli-39.28.0.tgz";
+      sha512 = "7pF5QWOhP1iPJuKDKvd1CdoeRRMiNXNrZO7rOMmzaMYATaXKODWfqnLQTKFZYDc/wf07xAINS8vc2PlwEcmzww==";
     };
     dependencies = [
-      sources."@gitbeaker/core-39.24.0"
-      sources."@gitbeaker/requester-utils-39.24.0"
-      sources."@gitbeaker/rest-39.24.0"
+      sources."@gitbeaker/core-39.28.0"
+      sources."@gitbeaker/requester-utils-39.28.0"
+      sources."@gitbeaker/rest-39.28.0"
       sources."ansi-styles-4.3.0"
       sources."async-sema-3.1.1"
       sources."braces-3.0.2"
@@ -77346,7 +78959,7 @@ in
       sources."unbzip2-stream-1.4.3"
       sources."util-deprecate-1.0.2"
       sources."webidl-conversions-3.0.1"
-      sources."whatwg-fetch-3.6.19"
+      sources."whatwg-fetch-3.6.20"
       sources."whatwg-url-5.0.0"
       sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
@@ -77388,7 +79001,7 @@ in
       sources."idb-keyval-6.2.1"
       sources."inversify-6.0.2"
       sources."node-fetch-2.7.0"
-      sources."reflect-metadata-0.1.13"
+      sources."reflect-metadata-0.1.14"
       sources."safer-buffer-2.1.2"
       sources."tr46-0.0.3"
       sources."vscode-jsonrpc-6.0.0"
@@ -77438,7 +79051,7 @@ in
     };
     dependencies = [
       sources."@ardatan/aggregate-error-0.0.6"
-      (sources."@babel/code-frame-7.23.4" // {
+      (sources."@babel/code-frame-7.23.5" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -77556,7 +79169,7 @@ in
       sources."@nodelib/fs.walk-1.2.8"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@types/node-20.9.3"
+      sources."@types/node-20.10.7"
       sources."@types/parse-json-4.0.2"
       sources."@types/websocket-1.0.2"
       sources."abort-controller-3.0.0"
@@ -77607,7 +79220,7 @@ in
       sources."chownr-2.0.0"
       sources."clean-stack-2.2.0"
       sources."cli-cursor-2.1.0"
-      sources."cli-spinners-2.9.1"
+      sources."cli-spinners-2.9.2"
       sources."cli-width-3.0.0"
       (sources."cliui-8.0.1" // {
         dependencies = [
@@ -77673,7 +79286,7 @@ in
       sources."fast-glob-3.3.2"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-safe-stringify-2.1.1"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."figlet-1.5.0"
       sources."figures-3.2.0"
       sources."fill-range-7.0.1"
@@ -77847,7 +79460,7 @@ in
       sources."node-emoji-1.10.0"
       sources."node-fetch-2.6.1"
       sources."node-fetch-h2-2.3.0"
-      sources."node-gyp-build-4.7.0"
+      sources."node-gyp-build-4.8.0"
       sources."node-readfiles-0.2.0"
       sources."normalize-path-2.1.1"
       sources."normalize-url-4.5.1"
@@ -77865,7 +79478,7 @@ in
       sources."object-inspect-1.13.1"
       sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
-      sources."object.assign-4.1.4"
+      sources."object.assign-4.1.5"
       sources."once-1.4.0"
       sources."onetime-2.0.1"
       sources."open-7.3.0"
@@ -78042,11 +79655,11 @@ in
     dependencies = [
       sources."@ampproject/remapping-2.2.1"
       sources."@ardatan/sync-fetch-0.0.1"
-      sources."@babel/code-frame-7.23.4"
-      sources."@babel/compat-data-7.23.3"
-      sources."@babel/core-7.23.3"
-      sources."@babel/generator-7.23.4"
-      sources."@babel/helper-compilation-targets-7.22.15"
+      sources."@babel/code-frame-7.23.5"
+      sources."@babel/compat-data-7.23.5"
+      sources."@babel/core-7.23.7"
+      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"
@@ -78057,31 +79670,31 @@ in
       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.22.15"
-      sources."@babel/helpers-7.23.4"
+      sources."@babel/helper-validator-option-7.23.5"
+      sources."@babel/helpers-7.23.7"
       sources."@babel/highlight-7.23.4"
-      sources."@babel/parser-7.23.4"
+      sources."@babel/parser-7.23.6"
       sources."@babel/plugin-syntax-import-assertions-7.23.3"
       sources."@babel/polyfill-7.12.1"
       sources."@babel/template-7.22.15"
-      sources."@babel/traverse-7.23.4"
-      sources."@babel/types-7.23.4"
+      sources."@babel/traverse-7.23.7"
+      sources."@babel/types-7.23.6"
       sources."@graphql-tools/batch-execute-9.0.2"
       sources."@graphql-tools/code-file-loader-8.0.1"
       sources."@graphql-tools/delegate-10.0.3"
       sources."@graphql-tools/executor-1.2.0"
       sources."@graphql-tools/executor-graphql-ws-1.1.1"
-      sources."@graphql-tools/executor-http-1.0.3"
-      sources."@graphql-tools/executor-legacy-ws-1.0.4"
+      sources."@graphql-tools/executor-http-1.0.6"
+      sources."@graphql-tools/executor-legacy-ws-1.0.5"
       sources."@graphql-tools/graphql-file-loader-8.0.0"
       sources."@graphql-tools/graphql-tag-pluck-8.0.1"
       sources."@graphql-tools/import-7.0.0"
       sources."@graphql-tools/json-file-loader-8.0.0"
-      sources."@graphql-tools/load-8.0.0"
-      sources."@graphql-tools/merge-9.0.0"
-      sources."@graphql-tools/schema-10.0.0"
-      sources."@graphql-tools/url-loader-8.0.0"
-      sources."@graphql-tools/utils-10.0.8"
+      sources."@graphql-tools/load-8.0.1"
+      sources."@graphql-tools/merge-9.0.1"
+      sources."@graphql-tools/schema-10.0.2"
+      sources."@graphql-tools/url-loader-8.0.1"
+      sources."@graphql-tools/utils-10.0.12"
       sources."@graphql-tools/wrap-10.0.1"
       sources."@graphql-typed-document-node/core-3.2.0"
       sources."@iarna/toml-2.2.5"
@@ -78090,25 +79703,25 @@ in
       sources."@jridgewell/set-array-1.1.2"
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@jridgewell/trace-mapping-0.3.20"
+      sources."@kamilkisiela/fast-url-parser-1.1.4"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
       sources."@repeaterjs/repeater-3.0.5"
       sources."@types/estree-1.0.5"
-      sources."@types/node-20.9.3"
+      sources."@types/node-20.10.7"
       sources."@types/ws-8.5.10"
       sources."@types/yargs-16.0.5"
       sources."@types/yargs-parser-21.0.3"
-      sources."@vue/compiler-core-3.3.8"
-      sources."@vue/compiler-dom-3.3.8"
-      sources."@vue/compiler-sfc-3.3.8"
-      sources."@vue/compiler-ssr-3.3.8"
-      sources."@vue/reactivity-transform-3.3.8"
-      sources."@vue/shared-3.3.8"
+      sources."@vue/compiler-core-3.4.5"
+      sources."@vue/compiler-dom-3.4.5"
+      sources."@vue/compiler-sfc-3.4.5"
+      sources."@vue/compiler-ssr-3.4.5"
+      sources."@vue/shared-3.4.5"
       sources."@whatwg-node/events-0.1.1"
-      sources."@whatwg-node/fetch-0.9.14"
-      sources."@whatwg-node/node-fetch-0.5.0"
-      sources."acorn-8.11.2"
+      sources."@whatwg-node/fetch-0.9.15"
+      sources."@whatwg-node/node-fetch-0.5.3"
+      sources."acorn-8.11.3"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-3.2.1"
       sources."argparse-2.0.1"
@@ -78118,11 +79731,11 @@ in
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."browserslist-4.22.1"
+      sources."browserslist-4.22.2"
       sources."bufferutil-4.0.8"
       sources."busboy-1.6.0"
       sources."callsites-3.1.0"
-      sources."caniuse-lite-1.0.30001563"
+      sources."caniuse-lite-1.0.30001575"
       sources."chalk-2.4.2"
       sources."cliui-7.0.4"
       (sources."code-red-1.0.4" // {
@@ -78146,9 +79759,10 @@ in
       sources."dir-glob-3.0.1"
       sources."dotenv-10.0.0"
       sources."dset-3.1.3"
-      sources."electron-to-chromium-1.4.589"
+      sources."electron-to-chromium-1.4.623"
       sources."emoji-regex-8.0.0"
       sources."encoding-0.1.13"
+      sources."entities-4.5.0"
       sources."error-ex-1.3.2"
       sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
@@ -78157,8 +79771,7 @@ in
       sources."fast-decode-uri-component-1.0.1"
       sources."fast-glob-3.3.2"
       sources."fast-querystring-1.1.2"
-      sources."fast-url-parser-1.1.3"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."fill-range-7.0.1"
       sources."fs.realpath-1.0.0"
       sources."gensync-1.0.0-beta.2"
@@ -78175,7 +79788,7 @@ in
       })
       sources."graphql-language-service-5.2.0"
       sources."graphql-language-service-server-2.11.6"
-      sources."graphql-ws-5.14.2"
+      sources."graphql-ws-5.14.3"
       sources."has-flag-3.0.0"
       sources."iconv-lite-0.6.3"
       sources."ignore-5.3.0"
@@ -78215,8 +79828,8 @@ in
       sources."no-case-3.0.4"
       sources."node-abort-controller-3.1.1"
       sources."node-fetch-2.7.0"
-      sources."node-gyp-build-4.7.0"
-      sources."node-releases-2.0.13"
+      sources."node-gyp-build-4.8.0"
+      sources."node-releases-2.0.14"
       sources."normalize-path-2.1.1"
       sources."nullthrows-1.1.1"
       sources."once-1.4.0"
@@ -78233,8 +79846,7 @@ in
       })
       sources."picocolors-1.0.0"
       sources."picomatch-2.3.1"
-      sources."postcss-8.4.31"
-      sources."punycode-1.4.1"
+      sources."postcss-8.4.33"
       sources."queue-microtask-1.2.3"
       sources."regenerator-runtime-0.13.11"
       sources."remove-trailing-separator-1.1.0"
@@ -78251,17 +79863,17 @@ in
       sources."string-width-4.2.3"
       sources."strip-ansi-6.0.1"
       sources."supports-color-5.5.0"
-      (sources."svelte-4.2.7" // {
+      (sources."svelte-4.2.8" // {
         dependencies = [
           sources."estree-walker-3.0.3"
         ];
       })
-      sources."svelte2tsx-0.6.25"
+      sources."svelte2tsx-0.6.27"
       sources."to-fast-properties-2.0.0"
       sources."to-regex-range-5.0.1"
       sources."tr46-0.0.3"
       sources."tslib-2.6.2"
-      sources."typescript-5.3.2"
+      sources."typescript-5.3.3"
       sources."undici-types-5.26.5"
       sources."unixify-1.0.0"
       sources."update-browserslist-db-1.0.13"
@@ -78288,7 +79900,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-8.14.2"
+      sources."ws-8.16.0"
       sources."y18n-5.0.8"
       sources."yallist-3.1.1"
       sources."yargs-16.2.0"
@@ -78758,7 +80370,7 @@ in
       })
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
-      sources."object.assign-4.1.4"
+      sources."object.assign-4.1.5"
       sources."object.defaults-1.1.0"
       sources."object.map-1.0.1"
       sources."object.pick-1.3.0"
@@ -79134,7 +80746,7 @@ in
       })
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
-      sources."object.assign-4.1.4"
+      sources."object.assign-4.1.5"
       sources."object.defaults-1.1.0"
       sources."object.map-1.0.1"
       sources."object.pick-1.3.0"
@@ -79283,69 +80895,6 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
-  http-server = nodeEnv.buildNodePackage {
-    name = "http-server";
-    packageName = "http-server";
-    version = "14.1.1";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/http-server/-/http-server-14.1.1.tgz";
-      sha512 = "+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==";
-    };
-    dependencies = [
-      sources."ansi-styles-4.3.0"
-      sources."async-2.6.4"
-      sources."basic-auth-2.0.1"
-      sources."call-bind-1.0.5"
-      sources."chalk-4.1.2"
-      sources."color-convert-2.0.1"
-      sources."color-name-1.1.4"
-      sources."corser-2.0.1"
-      sources."debug-3.2.7"
-      sources."define-data-property-1.1.1"
-      sources."eventemitter3-4.0.7"
-      sources."follow-redirects-1.15.3"
-      sources."function-bind-1.1.2"
-      sources."get-intrinsic-1.2.2"
-      sources."gopd-1.0.1"
-      sources."has-flag-4.0.0"
-      sources."has-property-descriptors-1.0.1"
-      sources."has-proto-1.0.1"
-      sources."has-symbols-1.0.3"
-      sources."hasown-2.0.0"
-      sources."he-1.2.0"
-      sources."html-encoding-sniffer-3.0.0"
-      sources."http-proxy-1.18.1"
-      sources."iconv-lite-0.6.3"
-      sources."lodash-4.17.21"
-      sources."mime-1.6.0"
-      sources."minimist-1.2.8"
-      sources."mkdirp-0.5.6"
-      sources."ms-2.1.3"
-      sources."object-inspect-1.13.1"
-      sources."opener-1.5.2"
-      sources."portfinder-1.0.32"
-      sources."qs-6.11.2"
-      sources."requires-port-1.0.0"
-      sources."safe-buffer-5.1.2"
-      sources."safer-buffer-2.1.2"
-      sources."secure-compare-3.0.1"
-      sources."set-function-length-1.1.1"
-      sources."side-channel-1.0.4"
-      sources."supports-color-7.2.0"
-      sources."union-0.5.0"
-      sources."url-join-4.0.1"
-      sources."whatwg-encoding-2.0.0"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "A simple zero-configuration command-line http server";
-      homepage = "https://github.com/http-party/http-server#readme";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
   hs-airdrop = nodeEnv.buildNodePackage {
     name = "hs-airdrop";
     packageName = "hs-airdrop";
@@ -79386,7 +80935,7 @@ in
       sources."jp-kernel-2.0.0"
       sources."nan-2.17.0"
       sources."nel-1.3.0"
-      sources."node-gyp-build-4.7.0"
+      sources."node-gyp-build-4.8.0"
       sources."uuid-3.4.0"
       sources."zeromq-5.3.1"
     ];
@@ -79652,7 +81201,7 @@ in
           sources."minimist-1.2.8"
         ];
       })
-      sources."moment-2.29.4"
+      sources."moment-2.30.1"
       sources."mv-2.1.1"
       sources."nan-2.18.0"
       sources."ncp-2.0.0"
@@ -79693,8 +81242,8 @@ in
     };
     dependencies = [
       sources."@jcubic/lily-0.3.0"
-      sources."@types/jquery-3.5.28"
-      sources."@types/sizzle-2.3.7"
+      sources."@types/jquery-3.5.29"
+      sources."@types/sizzle-2.3.8"
       sources."ansidec-0.3.4"
       sources."arch-2.2.0"
       sources."clipboardy-2.3.0"
@@ -79745,10 +81294,10 @@ in
   intelephense = nodeEnv.buildNodePackage {
     name = "intelephense";
     packageName = "intelephense";
-    version = "1.10.1";
+    version = "1.10.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/intelephense/-/intelephense-1.10.1.tgz";
-      sha512 = "fzPdiPVsPfF+X3nMw/L4oI5d0pmXTkwTgCIo7O8HBideQ7/Vm/SMv+svLnh8++NpMT250QcGPwnc4rS5du9nLQ==";
+      url = "https://registry.npmjs.org/intelephense/-/intelephense-1.10.2.tgz";
+      sha512 = "bvN8aH5mHnuQH0yAr2ZFwQPtC6nE3MfxQvtzjCICxwAMvdngJyUPFvFR8aFKhwgRYMNzVmIMZSOlx+3DJWviUA==";
     };
     dependencies = [
       sources."@azure/abort-controller-1.1.0"
@@ -79773,11 +81322,11 @@ in
       sources."@nodelib/fs.walk-1.2.8"
       sources."@one-ini/wasm-0.1.1"
       sources."@opentelemetry/api-1.7.0"
-      sources."@opentelemetry/core-1.18.1"
+      sources."@opentelemetry/core-1.19.0"
       sources."@opentelemetry/instrumentation-0.41.2"
-      sources."@opentelemetry/resources-1.18.1"
-      sources."@opentelemetry/sdk-trace-base-1.18.1"
-      sources."@opentelemetry/semantic-conventions-1.18.1"
+      sources."@opentelemetry/resources-1.19.0"
+      sources."@opentelemetry/sdk-trace-base-1.19.0"
+      sources."@opentelemetry/semantic-conventions-1.19.0"
       sources."@protobufjs/aspromise-1.1.2"
       sources."@protobufjs/base64-1.1.2"
       sources."@protobufjs/codegen-2.0.4"
@@ -79790,11 +81339,11 @@ in
       sources."@protobufjs/utf8-1.1.0"
       sources."@selderee/plugin-htmlparser2-0.11.0"
       sources."@tootallnate/once-2.0.0"
-      sources."@types/node-20.9.3"
+      sources."@types/node-20.10.7"
       sources."@types/shimmer-1.0.5"
       sources."@vscode/l10n-0.0.16"
       sources."abbrev-2.0.0"
-      sources."acorn-8.11.2"
+      sources."acorn-8.11.3"
       sources."acorn-import-assertions-1.9.0"
       sources."agent-base-6.0.2"
       sources."ajv-6.12.6"
@@ -79863,7 +81412,7 @@ in
       sources."fast-deep-equal-3.1.3"
       sources."fast-glob-3.3.2"
       sources."fast-json-stable-stringify-2.1.0"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."fill-range-7.0.1"
       sources."foreground-child-3.1.1"
       sources."forever-agent-0.6.1"
@@ -80021,14 +81570,14 @@ in
       sources."turndown-7.1.2"
       sources."turndown-plugin-gfm-1.0.2"
       sources."tweetnacl-0.14.5"
-      sources."typescript-5.3.2"
+      sources."typescript-5.3.3"
       sources."undici-types-5.26.5"
       sources."universalify-2.0.1"
       sources."uri-js-4.4.1"
       sources."util-deprecate-1.0.2"
       sources."uuid-8.3.2"
       sources."verror-1.10.0"
-      sources."vscode-css-languageservice-6.2.10"
+      sources."vscode-css-languageservice-6.2.11"
       sources."vscode-html-languageservice-5.1.1"
       sources."vscode-jsonrpc-8.2.0"
       (sources."vscode-languageserver-8.2.0-next.3" // {
@@ -80077,10 +81626,10 @@ in
   joplin = nodeEnv.buildNodePackage {
     name = "joplin";
     packageName = "joplin";
-    version = "2.13.1";
+    version = "2.13.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/joplin/-/joplin-2.13.1.tgz";
-      sha512 = "BmVxMKSNYGe15lRSBr98zcXIvfI493Fqf86fpd17J9z1SEoyomWecoNlGB3J21y710EUo/R4Gt/51SvKX/NYbQ==";
+      url = "https://registry.npmjs.org/joplin/-/joplin-2.13.2.tgz";
+      sha512 = "xu3XOPUrA3MnmPfDdIkiLFPy/dZ2D2EtwA5jnYAKPkt9L9YP8ZpndQKRSIzIN03bTSS6RJ/h0JbqZWB9kxbxhQ==";
     };
     dependencies = [
       (sources."@aws-crypto/crc32-3.0.0" // {
@@ -80189,11 +81738,13 @@ in
       sources."@aws-sdk/service-error-classification-3.296.0"
       sources."@aws-sdk/shared-ini-file-loader-3.296.0"
       sources."@aws-sdk/signature-v4-3.296.0"
-      (sources."@aws-sdk/signature-v4-crt-3.451.0" // {
+      (sources."@aws-sdk/signature-v4-crt-3.485.0" // {
         dependencies = [
-          sources."@aws-sdk/signature-v4-multi-region-3.451.0"
-          sources."@aws-sdk/types-3.451.0"
-          sources."@aws-sdk/util-user-agent-node-3.451.0"
+          sources."@aws-sdk/middleware-sdk-s3-3.485.0"
+          sources."@aws-sdk/signature-v4-multi-region-3.485.0"
+          sources."@aws-sdk/types-3.485.0"
+          sources."@aws-sdk/util-arn-parser-3.465.0"
+          sources."@aws-sdk/util-user-agent-node-3.485.0"
         ];
       })
       sources."@aws-sdk/signature-v4-multi-region-3.296.0"
@@ -80213,7 +81764,7 @@ in
       sources."@aws-sdk/util-endpoints-3.296.0"
       sources."@aws-sdk/util-format-url-3.296.0"
       sources."@aws-sdk/util-hex-encoding-3.295.0"
-      sources."@aws-sdk/util-locate-window-3.310.0"
+      sources."@aws-sdk/util-locate-window-3.465.0"
       sources."@aws-sdk/util-middleware-3.296.0"
       sources."@aws-sdk/util-retry-3.296.0"
       sources."@aws-sdk/util-stream-browser-3.296.0"
@@ -80225,7 +81776,7 @@ in
       sources."@aws-sdk/util-utf8-browser-3.259.0"
       sources."@aws-sdk/util-waiter-3.296.0"
       sources."@aws-sdk/xml-builder-3.295.0"
-      sources."@babel/runtime-7.23.4"
+      sources."@babel/runtime-7.23.7"
       sources."@braintree/sanitize-url-6.0.4"
       sources."@cronvel/get-pixels-3.4.1"
       sources."@gar/promisify-1.1.3"
@@ -80238,15 +81789,15 @@ in
           sources."strip-ansi-7.1.0"
         ];
       })
-      sources."@joplin/fork-htmlparser2-4.1.49"
-      sources."@joplin/fork-sax-1.2.53"
-      sources."@joplin/fork-uslug-1.0.14"
-      sources."@joplin/htmlpack-2.13.3"
-      sources."@joplin/lib-2.13.3"
-      sources."@joplin/renderer-2.13.3"
-      sources."@joplin/turndown-4.0.71"
-      sources."@joplin/turndown-plugin-gfm-1.0.53"
-      (sources."@joplin/utils-2.13.3" // {
+      sources."@joplin/fork-htmlparser2-4.1.50"
+      sources."@joplin/fork-sax-1.2.54"
+      sources."@joplin/fork-uslug-1.0.15"
+      sources."@joplin/htmlpack-2.13.4"
+      sources."@joplin/lib-2.13.4"
+      sources."@joplin/renderer-2.13.4"
+      sources."@joplin/turndown-4.0.72"
+      sources."@joplin/turndown-plugin-gfm-1.0.54"
+      (sources."@joplin/utils-2.13.4" // {
         dependencies = [
           sources."brace-expansion-2.0.1"
           sources."glob-10.3.10"
@@ -80256,18 +81807,30 @@ in
       sources."@mapbox/node-pre-gyp-1.0.11"
       sources."@npmcli/fs-1.1.1"
       sources."@npmcli/move-file-1.1.2"
-      sources."@smithy/eventstream-codec-2.0.13"
+      sources."@smithy/abort-controller-2.0.16"
+      sources."@smithy/eventstream-codec-2.0.16"
+      sources."@smithy/fetch-http-handler-2.3.2"
       sources."@smithy/is-array-buffer-2.0.0"
-      sources."@smithy/node-config-provider-2.1.5"
-      sources."@smithy/property-provider-2.0.14"
-      sources."@smithy/protocol-http-3.0.9"
-      sources."@smithy/querystring-parser-2.0.13"
-      sources."@smithy/shared-ini-file-loader-2.2.4"
-      sources."@smithy/signature-v4-2.0.15"
-      sources."@smithy/types-2.5.0"
+      sources."@smithy/middleware-endpoint-2.3.0"
+      sources."@smithy/middleware-serde-2.0.16"
+      sources."@smithy/middleware-stack-2.0.10"
+      sources."@smithy/node-config-provider-2.1.9"
+      sources."@smithy/node-http-handler-2.2.2"
+      sources."@smithy/property-provider-2.0.17"
+      sources."@smithy/protocol-http-3.0.12"
+      sources."@smithy/querystring-builder-2.0.16"
+      sources."@smithy/querystring-parser-2.0.16"
+      sources."@smithy/shared-ini-file-loader-2.2.8"
+      sources."@smithy/signature-v4-2.0.19"
+      sources."@smithy/smithy-client-2.2.1"
+      sources."@smithy/types-2.8.0"
+      sources."@smithy/url-parser-2.0.16"
+      sources."@smithy/util-base64-2.0.1"
       sources."@smithy/util-buffer-from-2.0.0"
+      sources."@smithy/util-config-provider-2.1.0"
       sources."@smithy/util-hex-encoding-2.0.0"
-      sources."@smithy/util-middleware-2.0.6"
+      sources."@smithy/util-middleware-2.0.9"
+      sources."@smithy/util-stream-2.0.24"
       sources."@smithy/util-uri-escape-2.0.0"
       sources."@smithy/util-utf8-2.0.2"
       sources."@tootallnate/once-2.0.0"
@@ -80278,7 +81841,7 @@ in
       sources."@types/mdast-3.0.15"
       sources."@types/ms-0.7.34"
       sources."@types/nanoid-3.0.0"
-      sources."@types/node-20.9.3"
+      sources."@types/node-20.10.7"
       sources."@types/unist-2.0.10"
       sources."@types/ws-8.5.10"
       sources."abab-2.0.6"
@@ -80310,7 +81873,7 @@ in
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
       sources."available-typed-arrays-1.0.5"
-      sources."aws-crt-1.19.0"
+      sources."aws-crt-1.20.1"
       (sources."aws-sdk-2.1340.0" // {
         dependencies = [
           sources."buffer-4.9.2"
@@ -80323,7 +81886,11 @@ in
       })
       sources."aws-sign2-0.7.0"
       sources."aws4-1.12.0"
-      sources."axios-1.6.2"
+      (sources."axios-1.6.5" // {
+        dependencies = [
+          sources."follow-redirects-1.15.4"
+        ];
+      })
       sources."b4a-1.6.4"
       sources."balanced-match-1.0.2"
       sources."base-64-1.0.0"
@@ -80400,7 +81967,7 @@ in
       sources."css-3.0.0"
       sources."cssstyle-3.0.0"
       sources."cwise-compiler-1.1.3"
-      sources."cytoscape-3.27.0"
+      sources."cytoscape-3.28.1"
       sources."cytoscape-cose-bilkent-4.1.0"
       (sources."cytoscape-fcose-2.2.0" // {
         dependencies = [
@@ -80482,7 +82049,7 @@ in
       sources."domelementtype-2.3.0"
       sources."domexception-4.0.0"
       sources."domhandler-5.0.3"
-      sources."dompurify-3.0.6"
+      sources."dompurify-3.0.8"
       sources."domutils-3.1.0"
       sources."duplexify-3.7.1"
       sources."eastasianwidth-0.2.0"
@@ -80801,7 +82368,7 @@ in
       sources."mkdirp-1.0.4"
       sources."mkdirp-classic-0.5.3"
       sources."moment-2.29.4"
-      (sources."mqtt-4.3.7" // {
+      (sources."mqtt-4.3.8" // {
         dependencies = [
           sources."duplexify-4.1.2"
           sources."readable-stream-3.6.2"
@@ -80822,7 +82389,7 @@ in
       sources."negotiator-0.6.3"
       sources."nextgen-events-1.5.3"
       sources."no-case-2.3.2"
-      sources."node-abi-3.51.0"
+      sources."node-abi-3.54.0"
       sources."node-addon-api-4.3.0"
       sources."node-bitmap-0.0.1"
       sources."node-emoji-1.11.0"
@@ -80841,7 +82408,7 @@ in
           sources."readable-stream-3.6.2"
         ];
       })
-      sources."node-gyp-build-4.7.0"
+      sources."node-gyp-build-4.8.0"
       (sources."node-notifier-10.0.1" // {
         dependencies = [
           sources."uuid-8.3.2"
@@ -80883,7 +82450,7 @@ in
       sources."path-key-3.1.1"
       (sources."path-scurry-1.10.1" // {
         dependencies = [
-          sources."lru-cache-10.0.3"
+          sources."lru-cache-10.1.0"
         ];
       })
       sources."performance-now-2.1.0"
@@ -80926,7 +82493,7 @@ in
       sources."readdirp-3.6.0"
       sources."reduce-flatten-1.0.1"
       sources."redux-4.2.1"
-      sources."regenerator-runtime-0.14.0"
+      sources."regenerator-runtime-0.14.1"
       sources."reinterval-1.1.0"
       sources."relateurl-0.2.7"
       sources."relative-3.0.2"
@@ -81004,7 +82571,7 @@ in
       })
       sources."statuses-1.5.0"
       sources."stream-shift-1.0.1"
-      sources."streamx-2.15.5"
+      sources."streamx-2.15.6"
       sources."strict-uri-encode-2.0.0"
       sources."string-kit-0.17.10"
       sources."string-padding-1.0.2"
@@ -81038,7 +82605,7 @@ in
       sources."strip-final-newline-2.0.0"
       sources."strip-json-comments-2.0.1"
       sources."strnum-1.0.5"
-      sources."stylis-4.3.0"
+      sources."stylis-4.3.1"
       sources."supports-color-7.2.0"
       sources."symbol-tree-3.2.4"
       sources."table-layout-0.4.5"
@@ -81117,7 +82684,7 @@ in
         ];
       })
       sources."w3c-xmlserializer-4.0.0"
-      sources."web-worker-1.2.0"
+      sources."web-worker-1.3.0"
       sources."webidl-conversions-7.0.0"
       sources."whatwg-encoding-2.0.0"
       sources."whatwg-mimetype-3.0.0"
@@ -81143,7 +82710,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-8.14.2"
+      sources."ws-8.16.0"
       sources."xml-name-validator-4.0.0"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
@@ -81199,7 +82766,7 @@ in
       sources."path-key-3.1.1"
       (sources."path-scurry-1.10.1" // {
         dependencies = [
-          sources."lru-cache-10.0.3"
+          sources."lru-cache-10.1.0"
         ];
       })
       sources."proto-list-1.2.4"
@@ -81272,8 +82839,8 @@ in
       sha512 = "e8cIg2z62InH7azBBi3EsSEqrKx+nUtAS5bBcYTSpZFA+vhNPyhv8PTFZ0WsjOPDj04/dOLlm08EDcQJDqaGQg==";
     };
     dependencies = [
-      sources."@babel/parser-7.23.4"
-      sources."@jsdoc/salty-0.2.6"
+      sources."@babel/parser-7.23.6"
+      sources."@jsdoc/salty-0.2.7"
       sources."@types/linkify-it-3.0.5"
       sources."@types/markdown-it-12.2.3"
       sources."@types/mdurl-1.0.5"
@@ -81482,154 +83049,72 @@ in
   json-server = nodeEnv.buildNodePackage {
     name = "json-server";
     packageName = "json-server";
-    version = "0.17.4";
+    version = "1.0.0-alpha.12";
     src = fetchurl {
-      url = "https://registry.npmjs.org/json-server/-/json-server-0.17.4.tgz";
-      sha512 = "bGBb0WtFuAKbgI7JV3A864irWnMZSvBYRJbohaOuatHwKSRFUfqtQlrYMrB6WbalXy/cJabyjlb7JkHli6dYjQ==";
+      url = "https://registry.npmjs.org/json-server/-/json-server-1.0.0-alpha.12.tgz";
+      sha512 = "4Q2ULHOCUpmKEy9EtadkxjdNmhSxfvnSf/I9RUJYddfDyiheF7gmkYM8m8oKFW7sJdYzbgeKg7QdJO6myrgbLQ==";
     };
     dependencies = [
-      sources."accepts-1.3.8"
-      sources."ansi-regex-5.0.1"
-      sources."ansi-styles-4.3.0"
-      sources."array-flatten-1.1.1"
-      sources."basic-auth-2.0.1"
-      sources."body-parser-1.20.2"
-      sources."bytes-3.1.2"
-      sources."call-bind-1.0.5"
-      sources."chalk-4.1.2"
-      sources."cliui-8.0.1"
-      sources."color-convert-2.0.1"
-      sources."color-name-1.1.4"
-      sources."compressible-2.0.18"
-      (sources."compression-1.7.4" // {
-        dependencies = [
-          sources."bytes-3.0.0"
-        ];
-      })
-      sources."connect-pause-0.1.1"
-      (sources."content-disposition-0.5.4" // {
-        dependencies = [
-          sources."safe-buffer-5.2.1"
-        ];
-      })
-      sources."content-type-1.0.5"
-      sources."cookie-0.5.0"
-      sources."cookie-signature-1.0.6"
-      sources."cors-2.8.5"
-      sources."debug-2.6.9"
-      sources."define-data-property-1.1.1"
-      sources."depd-2.0.0"
-      sources."destroy-1.2.0"
-      sources."ee-first-1.1.1"
-      sources."emoji-regex-8.0.0"
-      sources."encodeurl-1.0.2"
-      sources."errorhandler-1.5.1"
-      sources."escalade-3.1.1"
-      sources."escape-html-1.0.3"
-      sources."etag-1.8.1"
-      (sources."express-4.18.2" // {
-        dependencies = [
-          sources."body-parser-1.20.1"
-          sources."raw-body-2.5.1"
-          sources."safe-buffer-5.2.1"
-        ];
-      })
-      (sources."express-urlrewrite-1.4.0" // {
-        dependencies = [
-          sources."path-to-regexp-1.8.0"
-        ];
-      })
-      sources."finalhandler-1.2.0"
-      sources."forwarded-0.2.0"
-      sources."fresh-0.5.2"
-      sources."function-bind-1.1.2"
-      sources."get-caller-file-2.0.5"
-      sources."get-intrinsic-1.2.2"
-      sources."gopd-1.0.1"
-      sources."graceful-fs-4.2.11"
-      sources."has-flag-4.0.0"
-      sources."has-property-descriptors-1.0.1"
-      sources."has-proto-1.0.1"
-      sources."has-symbols-1.0.3"
-      sources."hasown-2.0.0"
-      sources."http-errors-2.0.0"
-      sources."iconv-lite-0.4.24"
-      sources."inherits-2.0.4"
-      sources."ipaddr.js-1.9.1"
-      sources."is-fullwidth-code-point-3.0.0"
-      sources."is-promise-2.2.2"
-      sources."isarray-0.0.1"
-      sources."jju-1.4.0"
-      sources."json-parse-helpfulerror-1.0.3"
-      sources."lodash-4.17.21"
-      sources."lodash-id-0.14.1"
-      sources."lowdb-1.0.0"
-      sources."media-typer-0.3.0"
-      sources."merge-descriptors-1.0.1"
-      (sources."method-override-3.0.0" // {
-        dependencies = [
-          sources."debug-3.1.0"
-        ];
-      })
-      sources."methods-1.1.2"
-      sources."mime-1.6.0"
-      sources."mime-db-1.52.0"
-      sources."mime-types-2.1.35"
-      (sources."morgan-1.10.0" // {
-        dependencies = [
-          sources."on-finished-2.3.0"
-        ];
-      })
-      sources."ms-2.0.0"
-      sources."nanoid-3.3.7"
+      sources."@polka/url-1.0.0-next.24"
+      sources."@tinyhttp/accepts-2.2.1"
+      sources."@tinyhttp/app-2.2.3"
+      sources."@tinyhttp/content-disposition-2.2.0"
+      sources."@tinyhttp/content-type-0.1.4"
+      sources."@tinyhttp/cookie-2.1.0"
+      sources."@tinyhttp/cookie-signature-2.1.0"
+      sources."@tinyhttp/cors-2.0.0"
+      sources."@tinyhttp/encode-url-2.1.1"
+      sources."@tinyhttp/etag-2.1.1"
+      sources."@tinyhttp/forwarded-2.1.2"
+      sources."@tinyhttp/proxy-addr-2.1.3"
+      sources."@tinyhttp/req-2.2.2"
+      sources."@tinyhttp/res-2.2.2"
+      sources."@tinyhttp/router-2.2.2"
+      sources."@tinyhttp/send-2.2.1"
+      sources."@tinyhttp/type-is-2.2.2"
+      sources."@tinyhttp/url-2.1.1"
+      sources."@tinyhttp/vary-0.1.3"
+      sources."anymatch-3.1.3"
+      sources."binary-extensions-2.2.0"
+      sources."braces-3.0.2"
+      sources."chalk-5.3.0"
+      sources."chokidar-3.5.3"
+      sources."dot-prop-8.0.2"
+      sources."es-escape-html-0.1.1"
+      sources."es-vary-0.1.2"
+      sources."eta-3.2.0"
+      sources."fill-range-7.0.1"
+      sources."fsevents-2.3.3"
+      sources."glob-parent-5.1.2"
+      sources."header-range-parser-1.1.3"
+      sources."inflection-3.0.0"
+      sources."ipaddr.js-2.1.0"
+      sources."is-binary-path-2.1.0"
+      sources."is-extglob-2.1.1"
+      sources."is-glob-4.0.3"
+      sources."is-number-7.0.0"
+      sources."json5-2.2.3"
+      sources."lowdb-7.0.1"
+      sources."milliparsec-2.3.0"
+      sources."mime-4.0.1"
+      sources."mrmime-2.0.0"
       sources."negotiator-0.6.3"
-      sources."object-assign-4.1.1"
-      sources."object-inspect-1.13.1"
-      sources."on-finished-2.4.1"
-      sources."on-headers-1.0.2"
-      sources."parseurl-1.3.3"
-      sources."path-to-regexp-0.1.7"
-      sources."pify-3.0.0"
-      sources."please-upgrade-node-3.2.0"
-      sources."pluralize-8.0.0"
-      sources."proxy-addr-2.0.7"
-      sources."qs-6.11.0"
-      sources."range-parser-1.2.1"
-      sources."raw-body-2.5.2"
-      sources."require-directory-2.1.1"
-      sources."safe-buffer-5.1.2"
-      sources."safer-buffer-2.1.2"
-      sources."semver-compare-1.0.0"
-      (sources."send-0.18.0" // {
-        dependencies = [
-          sources."ms-2.1.3"
-        ];
-      })
-      sources."serve-static-1.15.0"
-      sources."server-destroy-1.0.1"
-      sources."set-function-length-1.1.1"
-      sources."setprototypeof-1.2.0"
-      sources."side-channel-1.0.4"
-      sources."statuses-2.0.1"
-      sources."steno-0.4.4"
-      sources."string-width-4.2.3"
-      sources."strip-ansi-6.0.1"
-      sources."supports-color-7.2.0"
-      sources."toidentifier-1.0.1"
-      sources."type-is-1.6.18"
-      sources."unpipe-1.0.0"
-      sources."utils-merge-1.0.1"
-      sources."vary-1.1.2"
-      sources."wrap-ansi-7.0.0"
-      sources."y18n-5.0.8"
-      sources."yargs-17.7.2"
-      sources."yargs-parser-21.1.1"
+      sources."normalize-path-3.0.0"
+      sources."picomatch-2.3.1"
+      sources."readdirp-3.6.0"
+      sources."regexparam-2.0.2"
+      sources."sirv-2.0.4"
+      sources."sort-on-6.0.0"
+      sources."steno-4.0.2"
+      sources."to-regex-range-5.0.1"
+      sources."totalist-3.0.1"
+      sources."type-fest-3.13.1"
+      sources."zod-3.22.4"
     ];
     buildInputs = globalBuildInputs;
     meta = {
-      description = "Get a full fake REST API with zero coding in less than 30 seconds";
-      homepage = "https://github.com/typicode/json-server";
-      license = "MIT";
+      description = "> [!IMPORTANT] > Viewing alpha v1 documentation – usable but expect breaking changes. For stable version, see [here](https://github.com/typicode/json-server/tree/v0)";
+      license = "SEE LICENSE IN ./LICENSE";
     };
     production = true;
     bypassCache = true;
@@ -82218,7 +83703,7 @@ in
         ];
       })
       sources."@oclif/screen-1.0.4"
-      (sources."@putdotio/api-client-8.40.0" // {
+      (sources."@putdotio/api-client-8.42.0" // {
         dependencies = [
           sources."axios-0.21.4"
         ];
@@ -82284,7 +83769,7 @@ in
       sources."fast-deep-equal-3.1.3"
       sources."fast-glob-3.3.2"
       sources."fast-json-stable-stringify-2.1.0"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       (sources."figures-3.2.0" // {
         dependencies = [
           sources."escape-string-regexp-1.0.5"
@@ -82292,7 +83777,7 @@ in
       })
       sources."fill-range-7.0.1"
       sources."find-up-3.0.0"
-      sources."follow-redirects-1.15.3"
+      sources."follow-redirects-1.15.4"
       sources."fs-extra-8.1.0"
       sources."function-bind-1.1.2"
       sources."get-intrinsic-1.2.2"
@@ -82336,7 +83821,7 @@ in
       sources."merge2-1.4.1"
       sources."micromatch-4.0.5"
       sources."mimic-fn-2.1.0"
-      sources."moment-2.29.4"
+      sources."moment-2.30.1"
       sources."ms-2.1.2"
       sources."mute-stream-0.0.8"
       sources."natural-orderby-2.0.3"
@@ -82439,16 +83924,16 @@ in
     dependencies = [
       sources."@ampproject/remapping-2.2.1"
       sources."@babel/cli-7.23.4"
-      sources."@babel/code-frame-7.23.4"
-      sources."@babel/compat-data-7.23.3"
-      (sources."@babel/core-7.23.3" // {
+      sources."@babel/code-frame-7.23.5"
+      sources."@babel/compat-data-7.23.5"
+      (sources."@babel/core-7.23.7" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
-      sources."@babel/generator-7.23.4"
+      sources."@babel/generator-7.23.6"
       sources."@babel/helper-annotate-as-pure-7.22.5"
-      (sources."@babel/helper-compilation-targets-7.22.15" // {
+      (sources."@babel/helper-compilation-targets-7.23.6" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
@@ -82463,17 +83948,17 @@ in
       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.22.15"
-      sources."@babel/helpers-7.23.4"
+      sources."@babel/helper-validator-option-7.23.5"
+      sources."@babel/helpers-7.23.7"
       sources."@babel/highlight-7.23.4"
       sources."@babel/node-7.22.19"
-      sources."@babel/parser-7.23.4"
+      sources."@babel/parser-7.23.6"
       sources."@babel/plugin-syntax-jsx-7.23.3"
       sources."@babel/plugin-transform-react-jsx-7.23.4"
-      sources."@babel/register-7.22.15"
+      sources."@babel/register-7.23.7"
       sources."@babel/template-7.22.15"
-      sources."@babel/traverse-7.23.4"
-      sources."@babel/types-7.23.4"
+      sources."@babel/traverse-7.23.7"
+      sources."@babel/types-7.23.6"
       sources."@jridgewell/gen-mapping-0.3.3"
       sources."@jridgewell/resolve-uri-3.1.1"
       sources."@jridgewell/set-array-1.1.2"
@@ -82530,7 +84015,7 @@ in
       sources."abab-2.0.6"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.8"
-      sources."acorn-8.11.2"
+      sources."acorn-8.11.3"
       (sources."acorn-globals-6.0.0" // {
         dependencies = [
           sources."acorn-7.4.1"
@@ -82573,13 +84058,13 @@ in
       sources."braces-3.0.2"
       sources."browser-or-node-1.3.0"
       sources."browser-process-hrtime-1.0.0"
-      sources."browserslist-4.22.1"
+      sources."browserslist-4.22.2"
       sources."buffer-5.7.1"
       sources."buffer-from-1.1.2"
       sources."bufferutil-4.0.8"
       sources."bytes-3.1.2"
       sources."call-bind-1.0.5"
-      sources."caniuse-lite-1.0.30001563"
+      sources."caniuse-lite-1.0.30001576"
       sources."canvas-2.11.2"
       sources."chalk-2.4.2"
       sources."chardet-1.6.1"
@@ -82600,7 +84085,7 @@ in
       sources."convert-source-map-2.0.0"
       sources."cookie-0.5.0"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.33.3"
+      sources."core-js-3.35.0"
       sources."core-util-is-1.0.3"
       sources."cors-2.8.5"
       sources."create-hash-1.2.0"
@@ -82639,7 +84124,7 @@ in
       })
       sources."dotenv-8.6.0"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.4.589"
+      sources."electron-to-chromium-1.4.623"
       sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
       sources."encoding-0.1.13"
@@ -82667,7 +84152,7 @@ in
       })
       sources."express-validator-6.15.0"
       sources."fast-glob-3.3.2"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."fill-range-7.0.1"
       sources."filter-obj-1.1.0"
       (sources."finalhandler-1.2.0" // {
@@ -82678,7 +84163,7 @@ in
       })
       sources."find-cache-dir-2.1.0"
       sources."find-up-3.0.0"
-      sources."follow-redirects-1.15.3"
+      sources."follow-redirects-1.15.4"
       sources."for-each-0.3.3"
       sources."form-data-3.0.1"
       sources."forwarded-0.2.0"
@@ -82830,7 +84315,7 @@ in
       sources."nan-2.18.0"
       sources."napi-build-utils-1.0.2"
       sources."negotiator-0.6.3"
-      (sources."node-abi-3.51.0" // {
+      (sources."node-abi-3.54.0" // {
         dependencies = [
           sources."lru-cache-6.0.0"
           sources."semver-7.5.4"
@@ -82839,7 +84324,7 @@ in
       })
       sources."node-environment-flags-1.0.6"
       sources."node-fetch-2.7.0"
-      sources."node-gyp-build-4.7.0"
+      sources."node-gyp-build-4.8.0"
       (sources."node-notifier-10.0.1" // {
         dependencies = [
           sources."lru-cache-6.0.0"
@@ -82847,14 +84332,14 @@ in
           sources."yallist-4.0.0"
         ];
       })
-      sources."node-releases-2.0.13"
+      sources."node-releases-2.0.14"
       sources."nopt-5.0.0"
       sources."npmlog-5.0.1"
       sources."nwsapi-2.2.7"
       sources."object-assign-4.1.1"
       sources."object-inspect-1.13.1"
       sources."object-keys-1.1.1"
-      sources."object.assign-4.1.4"
+      sources."object.assign-4.1.5"
       sources."object.getownpropertydescriptors-2.1.7"
       sources."on-finished-2.4.1"
       sources."once-1.4.0"
@@ -82930,7 +84415,7 @@ in
       })
       sources."rc-1.2.8"
       sources."readable-stream-3.6.2"
-      sources."regenerator-runtime-0.14.0"
+      sources."regenerator-runtime-0.14.1"
       sources."regexp.prototype.flags-1.5.1"
       sources."require-directory-2.1.1"
       sources."requires-port-1.0.0"
@@ -83058,7 +84543,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-8.14.2"
+      sources."ws-8.16.0"
       sources."xml-name-validator-3.0.0"
       sources."xmlchars-2.2.0"
       sources."y18n-5.0.8"
@@ -83097,7 +84582,7 @@ in
       sources."emoji-regex-8.0.0"
       sources."escalade-3.1.1"
       sources."fast-glob-3.3.2"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."fill-range-7.0.1"
       sources."get-caller-file-2.0.5"
       sources."glob-parent-5.1.2"
@@ -83133,13 +84618,13 @@ in
   lerna = nodeEnv.buildNodePackage {
     name = "lerna";
     packageName = "lerna";
-    version = "7.4.2";
+    version = "8.0.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/lerna/-/lerna-7.4.2.tgz";
-      sha512 = "gxavfzHfJ4JL30OvMunmlm4Anw7d7Tq6tdVHzUukLdS9nWnxCN/QB21qR+VJYp5tcyXogHKbdUEGh6qmeyzxSA==";
+      url = "https://registry.npmjs.org/lerna/-/lerna-8.0.2.tgz";
+      sha512 = "nnOIGI5V5Af9gfraNcMVoV1Fry/y7/h3nCQYk0/CMzBYDD+xbNL3DH8+c82AJkNR5ABslmpXjW4DLJ11/1b3CQ==";
     };
     dependencies = [
-      (sources."@babel/code-frame-7.23.4" // {
+      (sources."@babel/code-frame-7.23.5" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -83160,42 +84645,27 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."@gar/promisify-1.1.3"
       sources."@hutson/parse-repository-url-3.0.2"
-      (sources."@isaacs/cliui-8.0.2" // {
-        dependencies = [
-          sources."ansi-regex-6.0.1"
-          sources."ansi-styles-6.2.1"
-          sources."emoji-regex-9.2.2"
-          sources."string-width-5.1.2"
-          sources."strip-ansi-7.1.0"
-          sources."wrap-ansi-8.1.0"
-        ];
-      })
+      sources."@isaacs/cliui-8.0.2"
       sources."@jest/schemas-29.6.3"
-      sources."@lerna/child-process-7.4.2"
-      sources."@lerna/create-7.4.2"
+      sources."@lerna/create-8.0.2"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@npmcli/fs-2.1.2"
-      sources."@npmcli/git-4.1.0"
+      sources."@npmcli/agent-2.2.0"
+      sources."@npmcli/fs-3.1.0"
+      sources."@npmcli/git-5.0.4"
       (sources."@npmcli/installed-package-contents-2.0.2" // {
         dependencies = [
           sources."npm-bundled-3.0.0"
         ];
       })
-      (sources."@npmcli/move-file-2.0.1" // {
-        dependencies = [
-          sources."rimraf-3.0.2"
-        ];
-      })
       sources."@npmcli/node-gyp-3.0.0"
-      sources."@npmcli/promise-spawn-6.0.2"
-      sources."@npmcli/run-script-6.0.2"
-      sources."@nrwl/devkit-16.10.0"
-      sources."@nrwl/tao-16.10.0"
-      (sources."@nx/devkit-16.10.0" // {
+      sources."@npmcli/promise-spawn-7.0.1"
+      sources."@npmcli/run-script-7.0.2"
+      sources."@nrwl/devkit-17.2.8"
+      sources."@nrwl/tao-17.2.8"
+      (sources."@nx/devkit-17.2.8" // {
         dependencies = [
           sources."lru-cache-6.0.0"
           sources."semver-7.5.3"
@@ -83219,39 +84689,32 @@ in
       sources."@octokit/rest-19.0.11"
       sources."@octokit/tsconfig-1.0.2"
       sources."@octokit/types-9.3.2"
-      sources."@parcel/watcher-2.0.4"
       sources."@sigstore/bundle-1.1.0"
       sources."@sigstore/protobuf-specs-0.2.1"
       (sources."@sigstore/sign-1.0.0" // {
         dependencies = [
-          sources."@npmcli/fs-3.1.0"
-          sources."brace-expansion-2.0.1"
+          sources."agent-base-6.0.2"
           (sources."cacache-17.1.4" // {
             dependencies = [
               sources."minipass-7.0.4"
             ];
           })
-          (sources."fs-minipass-3.0.3" // {
-            dependencies = [
-              sources."minipass-7.0.4"
-            ];
-          })
-          sources."glob-10.3.10"
+          sources."http-proxy-agent-5.0.0"
+          sources."https-proxy-agent-5.0.1"
+          sources."lru-cache-7.18.3"
           sources."make-fetch-happen-11.1.1"
-          sources."minimatch-9.0.3"
           sources."minipass-5.0.0"
-          (sources."minipass-fetch-3.0.4" // {
+          (sources."minipass-collect-1.0.2" // {
             dependencies = [
-              sources."minipass-7.0.4"
+              sources."minipass-3.3.6"
             ];
           })
+          sources."socks-proxy-agent-7.0.0"
           (sources."ssri-10.0.5" // {
             dependencies = [
               sources."minipass-7.0.4"
             ];
           })
-          sources."unique-filename-3.0.0"
-          sources."unique-slug-4.0.0"
         ];
       })
       sources."@sigstore/tuf-1.0.3"
@@ -83259,7 +84722,7 @@ in
       sources."@swc-node/core-1.10.6"
       sources."@swc-node/register-1.6.8"
       sources."@swc-node/sourcemap-support-0.3.0"
-      sources."@swc/core-1.3.99"
+      sources."@swc/core-1.3.102"
       sources."@swc/counter-0.1.2"
       sources."@swc/helpers-0.5.3"
       sources."@swc/types-0.1.5"
@@ -83267,7 +84730,6 @@ in
       sources."@tufjs/canonical-json-1.0.0"
       (sources."@tufjs/models-1.0.4" // {
         dependencies = [
-          sources."brace-expansion-2.0.1"
           sources."minimatch-9.0.3"
         ];
       })
@@ -83283,9 +84745,9 @@ in
       })
       sources."@zkochan/js-yaml-0.0.6"
       sources."JSONStream-1.3.5"
-      sources."abbrev-1.1.1"
+      sources."abbrev-2.0.0"
       sources."add-stream-1.0.0"
-      sources."agent-base-6.0.2"
+      sources."agent-base-7.1.0"
       sources."agentkeepalive-4.5.0"
       sources."aggregate-error-3.1.0"
       sources."ansi-colors-4.1.3"
@@ -83295,7 +84757,7 @@ in
         ];
       })
       sources."ansi-regex-5.0.1"
-      sources."ansi-styles-4.3.0"
+      sources."ansi-styles-6.2.1"
       sources."aproba-2.0.0"
       sources."are-we-there-yet-3.0.1"
       sources."argparse-2.0.1"
@@ -83305,44 +84767,43 @@ in
       sources."arrify-1.0.1"
       sources."async-3.2.5"
       sources."asynckit-0.4.0"
-      sources."axios-1.6.2"
+      sources."axios-1.6.5"
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."before-after-hook-2.2.3"
       sources."bl-4.1.0"
-      sources."brace-expansion-1.1.11"
+      sources."brace-expansion-2.0.1"
       sources."braces-3.0.2"
       sources."buffer-5.7.1"
       sources."buffer-from-1.1.2"
       sources."builtins-1.0.3"
       sources."byte-size-8.1.1"
-      (sources."cacache-16.1.3" // {
+      (sources."cacache-18.0.2" // {
         dependencies = [
-          sources."brace-expansion-2.0.1"
-          sources."glob-8.1.0"
-          sources."minimatch-5.1.6"
-          (sources."rimraf-3.0.2" // {
-            dependencies = [
-              sources."brace-expansion-1.1.11"
-              sources."glob-7.2.3"
-              sources."minimatch-3.1.2"
-            ];
-          })
+          sources."ssri-10.0.5"
         ];
       })
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."chalk-4.1.0"
+      (sources."chalk-4.1.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+        ];
+      })
       sources."chardet-0.7.0"
       sources."chownr-2.0.0"
       sources."ci-info-3.9.0"
       sources."clean-stack-2.2.0"
       sources."cli-cursor-3.1.0"
-      sources."cli-spinners-2.9.1"
+      sources."cli-spinners-2.9.2"
       sources."cli-width-3.0.0"
-      (sources."cliui-8.0.1" // {
+      (sources."cliui-7.0.4" // {
         dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."emoji-regex-8.0.0"
+          sources."string-width-4.2.3"
+          sources."strip-ansi-6.0.1"
           sources."wrap-ansi-7.0.0"
         ];
       })
@@ -83357,7 +84818,11 @@ in
       sources."color-name-1.1.4"
       sources."color-support-1.1.3"
       sources."colorette-2.0.20"
-      sources."columnify-1.6.0"
+      (sources."columnify-1.6.0" // {
+        dependencies = [
+          sources."strip-ansi-6.0.1"
+        ];
+      })
       sources."combined-stream-1.0.8"
       sources."compare-func-2.0.0"
       sources."concat-map-0.0.1"
@@ -83383,11 +84848,7 @@ in
       })
       sources."dargs-7.0.0"
       sources."dateformat-3.0.3"
-      (sources."debug-4.3.4" // {
-        dependencies = [
-          sources."ms-2.1.2"
-        ];
-      })
+      sources."debug-4.3.4"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.1" // {
         dependencies = [
@@ -83413,8 +84874,12 @@ in
       sources."duplexer-0.1.2"
       sources."eastasianwidth-0.2.0"
       sources."ejs-3.1.9"
-      sources."emoji-regex-8.0.0"
-      sources."encoding-0.1.13"
+      sources."emoji-regex-9.2.2"
+      (sources."encoding-0.1.13" // {
+        dependencies = [
+          sources."iconv-lite-0.6.3"
+        ];
+      })
       sources."end-of-stream-1.4.4"
       sources."enquirer-2.3.6"
       sources."env-paths-2.2.1"
@@ -83429,23 +84894,21 @@ in
       sources."exponential-backoff-3.1.1"
       (sources."external-editor-3.1.0" // {
         dependencies = [
-          sources."iconv-lite-0.4.24"
           sources."tmp-0.0.33"
         ];
       })
       sources."fast-glob-3.3.2"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."figures-3.2.0"
       (sources."filelist-1.0.4" // {
         dependencies = [
-          sources."brace-expansion-2.0.1"
           sources."minimatch-5.1.6"
         ];
       })
       sources."fill-range-7.0.1"
       sources."find-up-4.1.0"
       sources."flat-5.0.2"
-      sources."follow-redirects-1.15.3"
+      sources."follow-redirects-1.15.4"
       (sources."foreground-child-3.1.1" // {
         dependencies = [
           sources."signal-exit-4.1.0"
@@ -83453,16 +84916,27 @@ in
       })
       sources."form-data-4.0.0"
       sources."fs-constants-1.0.0"
-      sources."fs-extra-11.1.1"
-      sources."fs-minipass-2.1.0"
+      sources."fs-extra-11.2.0"
+      sources."fs-minipass-3.0.3"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.2"
-      sources."gauge-4.0.4"
+      (sources."gauge-4.0.4" // {
+        dependencies = [
+          sources."emoji-regex-8.0.0"
+          sources."string-width-4.2.3"
+          sources."strip-ansi-6.0.1"
+        ];
+      })
       sources."get-caller-file-2.0.5"
       (sources."get-pkg-repo-4.2.1" // {
         dependencies = [
+          sources."emoji-regex-8.0.0"
           sources."hosted-git-info-4.1.0"
           sources."lru-cache-6.0.0"
+          sources."string-width-4.2.3"
+          sources."strip-ansi-6.0.1"
+          sources."yargs-16.2.0"
+          sources."yargs-parser-20.2.9"
         ];
       })
       sources."get-port-5.1.1"
@@ -83477,9 +84951,9 @@ in
       sources."git-up-7.0.0"
       sources."git-url-parse-13.1.0"
       sources."gitconfiglocal-1.0.0"
-      (sources."glob-7.2.3" // {
+      (sources."glob-10.3.10" // {
         dependencies = [
-          sources."minimatch-3.1.2"
+          sources."minimatch-9.0.3"
         ];
       })
       sources."glob-parent-5.1.2"
@@ -83492,16 +84966,15 @@ in
       sources."hasown-2.0.0"
       sources."hosted-git-info-2.8.9"
       sources."http-cache-semantics-4.1.1"
-      sources."http-proxy-agent-5.0.0"
-      sources."https-proxy-agent-5.0.1"
+      sources."http-proxy-agent-7.0.0"
+      sources."https-proxy-agent-7.0.2"
       sources."human-signals-2.1.0"
       sources."humanize-ms-1.2.1"
-      sources."iconv-lite-0.6.3"
+      sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
       sources."ignore-5.3.0"
       (sources."ignore-walk-5.0.1" // {
         dependencies = [
-          sources."brace-expansion-2.0.1"
           sources."minimatch-5.1.6"
         ];
       })
@@ -83513,20 +84986,25 @@ in
       sources."import-local-3.1.0"
       sources."imurmurhash-0.1.4"
       sources."indent-string-4.0.0"
-      sources."infer-owner-1.0.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
       (sources."init-package-json-5.0.0" // {
         dependencies = [
           sources."hosted-git-info-6.1.1"
+          sources."lru-cache-7.18.3"
           sources."npm-package-arg-10.1.0"
         ];
       })
       (sources."inquirer-8.2.6" // {
         dependencies = [
+          sources."ansi-styles-4.3.0"
           sources."chalk-4.1.2"
+          sources."emoji-regex-8.0.0"
           sources."mute-stream-0.0.8"
+          sources."string-width-4.2.3"
+          sources."strip-ansi-6.0.1"
+          sources."wrap-ansi-6.2.0"
         ];
       })
       sources."ip-2.0.0"
@@ -83554,6 +85032,7 @@ in
       sources."jackspeak-2.3.6"
       (sources."jake-10.8.7" // {
         dependencies = [
+          sources."brace-expansion-1.1.11"
           sources."minimatch-3.1.2"
         ];
       })
@@ -83562,7 +85041,7 @@ in
       sources."js-tokens-4.0.0"
       sources."js-yaml-4.1.0"
       sources."json-parse-better-errors-1.0.2"
-      sources."json-parse-even-better-errors-3.0.0"
+      sources."json-parse-even-better-errors-3.0.1"
       sources."json-stringify-safe-5.0.1"
       sources."json5-2.2.3"
       sources."jsonc-parser-3.2.0"
@@ -83572,13 +85051,14 @@ in
       (sources."libnpmaccess-7.0.2" // {
         dependencies = [
           sources."hosted-git-info-6.1.1"
+          sources."lru-cache-7.18.3"
           sources."npm-package-arg-10.1.0"
         ];
       })
       (sources."libnpmpublish-7.3.0" // {
         dependencies = [
           sources."hosted-git-info-6.1.1"
-          sources."minipass-7.0.4"
+          sources."lru-cache-7.18.3"
           sources."normalize-package-data-5.0.0"
           sources."npm-package-arg-10.1.0"
           sources."ssri-10.0.5"
@@ -83595,9 +85075,13 @@ in
       sources."lodash-4.17.21"
       sources."lodash.ismatch-4.4.0"
       sources."log-symbols-4.1.0"
-      sources."lru-cache-7.18.3"
+      sources."lru-cache-10.1.0"
       sources."make-dir-4.0.0"
-      sources."make-fetch-happen-10.2.1"
+      (sources."make-fetch-happen-13.0.0" // {
+        dependencies = [
+          sources."ssri-10.0.5"
+        ];
+      })
       sources."map-obj-4.3.0"
       (sources."meow-8.1.2" // {
         dependencies = [
@@ -83613,6 +85097,7 @@ in
             ];
           })
           sources."semver-5.7.2"
+          sources."yargs-parser-20.2.9"
         ];
       })
       sources."merge-stream-2.0.0"
@@ -83622,20 +85107,44 @@ in
       sources."mime-types-2.1.35"
       sources."mimic-fn-2.1.0"
       sources."min-indent-1.0.1"
-      sources."minimatch-3.0.5"
+      (sources."minimatch-3.0.5" // {
+        dependencies = [
+          sources."brace-expansion-1.1.11"
+        ];
+      })
       sources."minimist-1.2.8"
       sources."minimist-options-4.1.0"
-      sources."minipass-3.3.6"
-      sources."minipass-collect-1.0.2"
-      sources."minipass-fetch-2.1.2"
-      sources."minipass-flush-1.0.5"
-      sources."minipass-json-stream-1.0.1"
-      sources."minipass-pipeline-1.2.4"
-      sources."minipass-sized-1.0.3"
-      sources."minizlib-2.1.2"
+      sources."minipass-7.0.4"
+      sources."minipass-collect-2.0.1"
+      sources."minipass-fetch-3.0.4"
+      (sources."minipass-flush-1.0.5" // {
+        dependencies = [
+          sources."minipass-3.3.6"
+        ];
+      })
+      (sources."minipass-json-stream-1.0.1" // {
+        dependencies = [
+          sources."minipass-3.3.6"
+        ];
+      })
+      (sources."minipass-pipeline-1.2.4" // {
+        dependencies = [
+          sources."minipass-3.3.6"
+        ];
+      })
+      (sources."minipass-sized-1.0.3" // {
+        dependencies = [
+          sources."minipass-3.3.6"
+        ];
+      })
+      (sources."minizlib-2.1.2" // {
+        dependencies = [
+          sources."minipass-3.3.6"
+        ];
+      })
       sources."mkdirp-1.0.4"
       sources."modify-values-1.0.1"
-      sources."ms-2.1.3"
+      sources."ms-2.1.2"
       (sources."multimatch-5.0.0" // {
         dependencies = [
           sources."arrify-2.0.1"
@@ -83644,17 +85153,10 @@ in
       sources."mute-stream-1.0.0"
       sources."negotiator-0.6.3"
       sources."neo-async-2.6.2"
-      sources."node-addon-api-3.2.1"
       sources."node-fetch-2.6.7"
-      (sources."node-gyp-9.4.1" // {
-        dependencies = [
-          sources."rimraf-3.0.2"
-          sources."which-2.0.2"
-        ];
-      })
-      sources."node-gyp-build-4.7.0"
+      sources."node-gyp-10.0.1"
       sources."node-machine-id-1.1.12"
-      sources."nopt-6.0.0"
+      sources."nopt-7.2.0"
       (sources."normalize-package-data-3.0.3" // {
         dependencies = [
           sources."hosted-git-info-4.1.0"
@@ -83677,69 +85179,70 @@ in
       })
       (sources."npm-packlist-5.1.1" // {
         dependencies = [
-          sources."brace-expansion-2.0.1"
           sources."glob-8.1.0"
           sources."minimatch-5.1.6"
           sources."npm-normalize-package-bin-1.0.1"
         ];
       })
-      (sources."npm-pick-manifest-8.0.2" // {
+      (sources."npm-pick-manifest-9.0.0" // {
         dependencies = [
-          sources."hosted-git-info-6.1.1"
-          sources."npm-package-arg-10.1.0"
+          sources."hosted-git-info-7.0.1"
+          sources."npm-package-arg-11.0.1"
         ];
       })
       (sources."npm-registry-fetch-14.0.5" // {
         dependencies = [
-          sources."@npmcli/fs-3.1.0"
-          sources."brace-expansion-2.0.1"
+          sources."agent-base-6.0.2"
           (sources."cacache-17.1.4" // {
             dependencies = [
               sources."minipass-7.0.4"
             ];
           })
-          (sources."fs-minipass-3.0.3" // {
-            dependencies = [
-              sources."minipass-7.0.4"
-            ];
-          })
-          sources."glob-10.3.10"
           sources."hosted-git-info-6.1.1"
+          sources."http-proxy-agent-5.0.0"
+          sources."https-proxy-agent-5.0.1"
+          sources."lru-cache-7.18.3"
           sources."make-fetch-happen-11.1.1"
-          sources."minimatch-9.0.3"
           sources."minipass-5.0.0"
-          (sources."minipass-fetch-3.0.4" // {
+          (sources."minipass-collect-1.0.2" // {
             dependencies = [
-              sources."minipass-7.0.4"
+              sources."minipass-3.3.6"
             ];
           })
           sources."npm-package-arg-10.1.0"
+          sources."socks-proxy-agent-7.0.0"
           (sources."ssri-10.0.5" // {
             dependencies = [
               sources."minipass-7.0.4"
             ];
           })
-          sources."unique-filename-3.0.0"
-          sources."unique-slug-4.0.0"
         ];
       })
       sources."npm-run-path-4.0.1"
       sources."npmlog-6.0.2"
-      (sources."nx-16.10.0" // {
+      (sources."nx-17.2.8" // {
         dependencies = [
+          sources."ansi-styles-4.3.0"
           sources."cli-spinners-2.6.1"
+          sources."cliui-8.0.1"
+          sources."emoji-regex-8.0.0"
           sources."glob-7.1.4"
           sources."lines-and-columns-2.0.4"
           sources."lru-cache-6.0.0"
           sources."semver-7.5.3"
-          sources."yargs-17.7.2"
-          sources."yargs-parser-21.1.1"
+          sources."string-width-4.2.3"
+          sources."strip-ansi-6.0.1"
+          sources."wrap-ansi-7.0.0"
         ];
       })
       sources."once-1.4.0"
       sources."onetime-5.1.2"
       sources."open-8.4.2"
-      sources."ora-5.4.1"
+      (sources."ora-5.4.1" // {
+        dependencies = [
+          sources."strip-ansi-6.0.1"
+        ];
+      })
       sources."os-tmpdir-1.0.2"
       sources."p-finally-1.0.0"
       sources."p-limit-2.3.0"
@@ -83752,34 +85255,24 @@ in
       sources."p-timeout-3.2.0"
       sources."p-try-2.2.0"
       sources."p-waterfall-2.1.1"
-      (sources."pacote-15.2.0" // {
-        dependencies = [
-          sources."@npmcli/fs-3.1.0"
-          sources."brace-expansion-2.0.1"
-          (sources."cacache-17.1.4" // {
-            dependencies = [
-              sources."minipass-7.0.4"
-            ];
-          })
-          (sources."fs-minipass-3.0.3" // {
-            dependencies = [
-              sources."minipass-7.0.4"
-            ];
-          })
-          sources."glob-10.3.10"
-          sources."hosted-git-info-6.1.1"
-          sources."ignore-walk-6.0.3"
+      (sources."pacote-17.0.5" // {
+        dependencies = [
+          sources."@sigstore/bundle-2.1.0"
+          sources."@sigstore/sign-2.2.0"
+          sources."@sigstore/tuf-2.2.0"
+          sources."@tufjs/canonical-json-2.0.0"
+          sources."@tufjs/models-2.0.0"
+          sources."hosted-git-info-7.0.1"
+          sources."ignore-walk-6.0.4"
           sources."minimatch-9.0.3"
-          sources."minipass-5.0.0"
-          sources."npm-package-arg-10.1.0"
-          sources."npm-packlist-7.0.4"
-          (sources."ssri-10.0.5" // {
-            dependencies = [
-              sources."minipass-7.0.4"
-            ];
-          })
-          sources."unique-filename-3.0.0"
-          sources."unique-slug-4.0.0"
+          sources."normalize-package-data-6.0.0"
+          sources."npm-package-arg-11.0.1"
+          sources."npm-packlist-8.0.1"
+          sources."npm-registry-fetch-16.1.0"
+          sources."read-package-json-7.0.0"
+          sources."sigstore-2.1.0"
+          sources."ssri-10.0.5"
+          sources."tuf-js-2.1.0"
         ];
       })
       sources."parent-module-1.0.1"
@@ -83794,12 +85287,7 @@ in
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
-      (sources."path-scurry-1.10.1" // {
-        dependencies = [
-          sources."lru-cache-10.0.3"
-          sources."minipass-7.0.4"
-        ];
-      })
+      sources."path-scurry-1.10.1"
       (sources."path-type-3.0.0" // {
         dependencies = [
           sources."pify-3.0.0"
@@ -83828,11 +85316,8 @@ in
       sources."read-cmd-shim-4.0.0"
       (sources."read-package-json-6.0.4" // {
         dependencies = [
-          sources."brace-expansion-2.0.1"
-          sources."glob-10.3.10"
           sources."hosted-git-info-6.1.1"
-          sources."minimatch-9.0.3"
-          sources."minipass-7.0.4"
+          sources."lru-cache-7.18.3"
           sources."normalize-package-data-5.0.0"
         ];
       })
@@ -83867,7 +85352,6 @@ in
       sources."reusify-1.0.4"
       (sources."rimraf-4.4.1" // {
         dependencies = [
-          sources."brace-expansion-2.0.1"
           sources."glob-9.3.5"
           sources."minimatch-8.0.4"
           sources."minipass-4.2.8"
@@ -83890,40 +85374,34 @@ in
       sources."signal-exit-3.0.7"
       (sources."sigstore-1.9.0" // {
         dependencies = [
-          sources."@npmcli/fs-3.1.0"
-          sources."brace-expansion-2.0.1"
+          sources."agent-base-6.0.2"
           (sources."cacache-17.1.4" // {
             dependencies = [
               sources."minipass-7.0.4"
             ];
           })
-          (sources."fs-minipass-3.0.3" // {
-            dependencies = [
-              sources."minipass-7.0.4"
-            ];
-          })
-          sources."glob-10.3.10"
+          sources."http-proxy-agent-5.0.0"
+          sources."https-proxy-agent-5.0.1"
+          sources."lru-cache-7.18.3"
           sources."make-fetch-happen-11.1.1"
-          sources."minimatch-9.0.3"
           sources."minipass-5.0.0"
-          (sources."minipass-fetch-3.0.4" // {
+          (sources."minipass-collect-1.0.2" // {
             dependencies = [
-              sources."minipass-7.0.4"
+              sources."minipass-3.3.6"
             ];
           })
+          sources."socks-proxy-agent-7.0.0"
           (sources."ssri-10.0.5" // {
             dependencies = [
               sources."minipass-7.0.4"
             ];
           })
-          sources."unique-filename-3.0.0"
-          sources."unique-slug-4.0.0"
         ];
       })
       sources."slash-3.0.0"
       sources."smart-buffer-4.2.0"
       sources."socks-2.7.1"
-      sources."socks-proxy-agent-7.0.0"
+      sources."socks-proxy-agent-8.0.2"
       sources."sort-keys-2.0.0"
       sources."source-map-0.6.1"
       sources."source-map-support-0.5.21"
@@ -83934,11 +85412,24 @@ in
       sources."split-1.0.1"
       sources."split2-3.2.2"
       sources."sprintf-js-1.0.3"
-      sources."ssri-9.0.1"
-      sources."string-width-4.2.3"
-      sources."string-width-cjs-4.2.3"
+      (sources."ssri-9.0.1" // {
+        dependencies = [
+          sources."minipass-3.3.6"
+        ];
+      })
+      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-1.3.0"
-      sources."strip-ansi-6.0.1"
+      (sources."strip-ansi-7.1.0" // {
+        dependencies = [
+          sources."ansi-regex-6.0.1"
+        ];
+      })
       sources."strip-ansi-cjs-6.0.1"
       sources."strip-bom-3.0.0"
       sources."strip-final-newline-2.0.0"
@@ -83946,7 +85437,12 @@ in
       sources."strong-log-transformer-2.1.0"
       sources."supports-color-7.2.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
-      sources."tar-6.1.11"
+      (sources."tar-6.1.11" // {
+        dependencies = [
+          sources."fs-minipass-2.1.0"
+          sources."minipass-3.3.6"
+        ];
+      })
       sources."tar-stream-2.2.0"
       sources."temp-dir-1.0.0"
       sources."text-extensions-1.9.0"
@@ -83960,6 +85456,9 @@ in
       })
       (sources."tmp-0.2.1" // {
         dependencies = [
+          sources."brace-expansion-1.1.11"
+          sources."glob-7.2.3"
+          sources."minimatch-3.1.2"
           sources."rimraf-3.0.2"
         ];
       })
@@ -83970,48 +85469,41 @@ in
       sources."tslib-2.6.2"
       (sources."tuf-js-1.1.7" // {
         dependencies = [
-          sources."@npmcli/fs-3.1.0"
-          sources."brace-expansion-2.0.1"
+          sources."agent-base-6.0.2"
           (sources."cacache-17.1.4" // {
             dependencies = [
               sources."minipass-7.0.4"
             ];
           })
-          (sources."fs-minipass-3.0.3" // {
-            dependencies = [
-              sources."minipass-7.0.4"
-            ];
-          })
-          sources."glob-10.3.10"
+          sources."http-proxy-agent-5.0.0"
+          sources."https-proxy-agent-5.0.1"
+          sources."lru-cache-7.18.3"
           sources."make-fetch-happen-11.1.1"
-          sources."minimatch-9.0.3"
           sources."minipass-5.0.0"
-          (sources."minipass-fetch-3.0.4" // {
+          (sources."minipass-collect-1.0.2" // {
             dependencies = [
-              sources."minipass-7.0.4"
+              sources."minipass-3.3.6"
             ];
           })
+          sources."socks-proxy-agent-7.0.0"
           (sources."ssri-10.0.5" // {
             dependencies = [
               sources."minipass-7.0.4"
             ];
           })
-          sources."unique-filename-3.0.0"
-          sources."unique-slug-4.0.0"
         ];
       })
       sources."type-fest-0.18.1"
       sources."typedarray-0.0.6"
-      sources."typescript-5.3.2"
+      sources."typescript-5.3.3"
       sources."uglify-js-3.17.4"
-      sources."unique-filename-2.0.1"
-      sources."unique-slug-3.0.0"
+      sources."unique-filename-3.0.0"
+      sources."unique-slug-4.0.0"
       sources."universal-user-agent-6.0.1"
       sources."universalify-2.0.1"
       sources."upath-2.0.1"
       sources."util-deprecate-1.0.2"
       sources."uuid-9.0.1"
-      sources."v8-compile-cache-2.3.0"
       sources."validate-npm-package-license-3.0.4"
       (sources."validate-npm-package-name-5.0.0" // {
         dependencies = [
@@ -84021,11 +85513,28 @@ in
       sources."wcwidth-1.0.1"
       sources."webidl-conversions-3.0.1"
       sources."whatwg-url-5.0.0"
-      sources."which-3.0.1"
-      sources."wide-align-1.1.5"
+      (sources."which-4.0.0" // {
+        dependencies = [
+          sources."isexe-3.1.1"
+        ];
+      })
+      (sources."wide-align-1.1.5" // {
+        dependencies = [
+          sources."emoji-regex-8.0.0"
+          sources."string-width-4.2.3"
+          sources."strip-ansi-6.0.1"
+        ];
+      })
       sources."wordwrap-1.0.0"
-      sources."wrap-ansi-6.2.0"
-      sources."wrap-ansi-cjs-7.0.0"
+      sources."wrap-ansi-8.1.0"
+      (sources."wrap-ansi-cjs-7.0.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          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-5.0.1" // {
         dependencies = [
@@ -84048,13 +85557,17 @@ in
       sources."xtend-4.0.2"
       sources."y18n-5.0.8"
       sources."yallist-4.0.0"
-      (sources."yargs-16.2.0" // {
+      (sources."yargs-17.7.2" // {
         dependencies = [
-          sources."cliui-7.0.4"
+          sources."ansi-styles-4.3.0"
+          sources."cliui-8.0.1"
+          sources."emoji-regex-8.0.0"
+          sources."string-width-4.2.3"
+          sources."strip-ansi-6.0.1"
           sources."wrap-ansi-7.0.0"
         ];
       })
-      sources."yargs-parser-20.2.4"
+      sources."yargs-parser-21.1.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -84076,7 +85589,6 @@ in
     };
     dependencies = [
       sources."copy-anything-2.0.6"
-      sources."debug-3.2.7"
       sources."errno-0.1.8"
       sources."graceful-fs-4.2.11"
       sources."iconv-lite-0.6.3"
@@ -84084,8 +85596,7 @@ in
       sources."is-what-3.14.1"
       sources."make-dir-2.1.0"
       sources."mime-1.6.0"
-      sources."ms-2.1.3"
-      sources."needle-3.2.0"
+      sources."needle-3.3.1"
       sources."parse-node-version-1.0.1"
       sources."pify-4.0.1"
       sources."prr-1.0.1"
@@ -84656,7 +86167,7 @@ in
         ];
       })
       sources."negotiator-0.6.3"
-      sources."node-gyp-build-4.7.0"
+      sources."node-gyp-build-4.8.0"
       sources."normalize-path-2.1.1"
       sources."oauth-sign-0.9.0"
       (sources."object-copy-0.1.0" // {
@@ -84891,7 +86402,7 @@ in
       sources."debug-4.3.2"
       sources."emoji-regex-8.0.0"
       sources."escalade-3.1.1"
-      sources."follow-redirects-1.15.3"
+      sources."follow-redirects-1.15.4"
       sources."get-caller-file-2.0.5"
       sources."is-fullwidth-code-point-3.0.0"
       sources."ms-2.1.2"
@@ -84944,7 +86455,7 @@ in
       sources."@types/commander-2.12.2"
       sources."@types/diff-3.5.8"
       sources."@types/get-stdin-5.0.1"
-      sources."@types/node-20.9.3"
+      sources."@types/node-20.10.7"
       sources."commander-2.20.3"
       sources."diff-3.5.0"
       sources."get-stdin-5.0.1"
@@ -85030,7 +86541,6 @@ in
       sources."commander-10.0.1"
       sources."css-select-5.1.0"
       sources."css-what-6.1.0"
-      sources."debug-3.2.7"
       sources."dom-serializer-2.0.0"
       sources."domelementtype-2.3.0"
       sources."domhandler-5.0.3"
@@ -85047,7 +86557,7 @@ in
       sources."markdown-link-extractor-3.1.0"
       sources."marked-4.3.0"
       sources."ms-2.1.3"
-      sources."needle-3.2.0"
+      sources."needle-3.3.1"
       sources."nth-check-2.1.1"
       sources."parse5-7.1.2"
       sources."parse5-htmlparser2-tree-adapter-7.0.0"
@@ -85716,7 +87226,7 @@ in
       sources."ansi-styles-6.2.1"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-2.0.1"
-      sources."cacache-18.0.0"
+      sources."cacache-18.0.2"
       sources."chownr-2.0.0"
       sources."clean-stack-2.2.0"
       sources."color-convert-2.0.1"
@@ -85746,15 +87256,11 @@ in
       sources."is-lambda-1.0.1"
       sources."isexe-2.0.0"
       sources."jackspeak-2.3.6"
-      sources."lru-cache-10.0.3"
+      sources."lru-cache-10.1.0"
       sources."make-fetch-happen-13.0.0"
       sources."minimatch-9.0.3"
       sources."minipass-7.0.4"
-      (sources."minipass-collect-1.0.2" // {
-        dependencies = [
-          sources."minipass-3.3.6"
-        ];
-      })
+      sources."minipass-collect-2.0.1"
       sources."minipass-fetch-3.0.4"
       (sources."minipass-flush-1.0.5" // {
         dependencies = [
@@ -85852,10 +87358,10 @@ in
   node-gyp-build = nodeEnv.buildNodePackage {
     name = "node-gyp-build";
     packageName = "node-gyp-build";
-    version = "4.7.0";
+    version = "4.8.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.7.0.tgz";
-      sha512 = "PbZERfeFdrHQOOXiAKOY0VPbykZy90ndPKk0d+CFDegTKmWp1VgOTz2xACVbr1BjCWxrQp68CXtvNsveFhqDJg==";
+      url = "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz";
+      sha512 = "u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -85959,26 +87465,26 @@ in
   node-red = nodeEnv.buildNodePackage {
     name = "node-red";
     packageName = "node-red";
-    version = "3.1.0";
+    version = "3.1.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/node-red/-/node-red-3.1.0.tgz";
-      sha512 = "khGc+Fh8YeuDR2KZ7lCTEvAhbRDiXpmMSfvX6eKxt7TER+WVG0U8TdXyiFq6K+3ELnJz54vITJJ3DZ5hYzijoQ==";
+      url = "https://registry.npmjs.org/node-red/-/node-red-3.1.3.tgz";
+      sha512 = "NUihfCfMw9sPjiwe5pAHephFWW1QCv5v13CG/I6qtJ0wCSMtu5NKXrz53dmdnKJQsDMDOqipAMBcG2qmrVPmeA==";
     };
     dependencies = [
-      sources."@babel/runtime-7.23.4"
+      sources."@babel/runtime-7.23.7"
       sources."@mapbox/node-pre-gyp-1.0.11"
-      sources."@node-red/editor-api-3.1.0"
-      sources."@node-red/editor-client-3.1.0"
-      (sources."@node-red/nodes-3.1.0" // {
+      sources."@node-red/editor-api-3.1.3"
+      sources."@node-red/editor-client-3.1.3"
+      (sources."@node-red/nodes-3.1.3" // {
         dependencies = [
           sources."cookie-0.5.0"
           sources."iconv-lite-0.6.3"
           sources."media-typer-1.1.0"
         ];
       })
-      sources."@node-red/registry-3.1.0"
-      sources."@node-red/runtime-3.1.0"
-      sources."@node-red/util-3.1.0"
+      sources."@node-red/registry-3.1.3"
+      sources."@node-red/runtime-3.1.3"
+      sources."@node-red/util-3.1.3"
       sources."@sindresorhus/is-5.6.0"
       sources."@szmarczak/http-timer-5.0.1"
       sources."@types/http-cache-semantics-4.0.4"
@@ -86006,7 +87512,7 @@ in
       sources."array-flatten-1.1.1"
       sources."async-mutex-0.4.0"
       sources."asynckit-0.4.0"
-      sources."axios-1.6.2"
+      sources."axios-1.6.5"
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       (sources."basic-auth-2.0.1" // {
@@ -86104,7 +87610,7 @@ in
       sources."express-session-1.17.3"
       sources."fast-deep-equal-3.1.3"
       sources."finalhandler-1.2.0"
-      sources."follow-redirects-1.15.3"
+      sources."follow-redirects-1.15.4"
       sources."form-data-4.0.0"
       sources."form-data-encoder-2.1.4"
       sources."forwarded-0.2.0"
@@ -86229,7 +87735,7 @@ in
       sources."negotiator-0.6.3"
       sources."node-addon-api-5.1.0"
       sources."node-fetch-2.7.0"
-      sources."node-gyp-build-4.7.0"
+      sources."node-gyp-build-4.8.0"
       (sources."node-red-admin-3.1.1" // {
         dependencies = [
           sources."bcrypt-5.1.1"
@@ -86282,7 +87788,7 @@ in
           sources."safe-buffer-5.1.2"
         ];
       })
-      sources."regenerator-runtime-0.14.0"
+      sources."regenerator-runtime-0.14.1"
       sources."reinterval-1.1.0"
       sources."require-from-string-2.0.2"
       sources."requires-port-1.0.0"
@@ -86577,10 +88083,10 @@ in
   nodemon = nodeEnv.buildNodePackage {
     name = "nodemon";
     packageName = "nodemon";
-    version = "3.0.1";
+    version = "3.0.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/nodemon/-/nodemon-3.0.1.tgz";
-      sha512 = "g9AZ7HmkhQkqXkRc20w+ZfQ73cHLbE8hnPbtaFbFtCumZsjyMhKk9LajQ07U5Ux28lvFjZ5X7HvWR1xzU8jHVw==";
+      url = "https://registry.npmjs.org/nodemon/-/nodemon-3.0.2.tgz";
+      sha512 = "9qIN2LNTrEzpOPBaWHTm4Asy1LxXLSickZStAQ4IZe7zsoIpD/A7LWxhZV3t4Zu352uBcqVnRsDXSMR2Sc3lTA==";
     };
     dependencies = [
       sources."abbrev-1.1.1"
@@ -86591,7 +88097,7 @@ in
       sources."braces-3.0.2"
       sources."chokidar-3.5.3"
       sources."concat-map-0.0.1"
-      sources."debug-3.2.7"
+      sources."debug-4.3.4"
       sources."fill-range-7.0.1"
       sources."fsevents-2.3.3"
       sources."glob-parent-5.1.2"
@@ -86603,7 +88109,7 @@ in
       sources."is-number-7.0.0"
       sources."lru-cache-6.0.0"
       sources."minimatch-3.1.2"
-      sources."ms-2.1.3"
+      sources."ms-2.1.2"
       sources."nopt-1.0.10"
       sources."normalize-path-3.0.0"
       sources."picomatch-2.3.1"
@@ -86630,13 +88136,13 @@ in
   np = nodeEnv.buildNodePackage {
     name = "np";
     packageName = "np";
-    version = "8.0.4";
+    version = "9.2.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/np/-/np-8.0.4.tgz";
-      sha512 = "a4s1yESHcIwsrk/oaTekfbhb1R/2z2yyfVLX6Atl54w/9+QR01qeYyK3vMWgJ0UY+kYsGzQXausgvUX0pkmIMg==";
+      url = "https://registry.npmjs.org/np/-/np-9.2.0.tgz";
+      sha512 = "VYA8IKyx5XJqROr2vu8NAstfgBznrnOu3PUByFl3TBwzQVkeGC+gzOPzGbvYKM1QwlX6Gt7kVSPMzDP4qkSs1g==";
     };
     dependencies = [
-      (sources."@babel/code-frame-7.23.4" // {
+      (sources."@babel/code-frame-7.23.5" // {
         dependencies = [
           sources."chalk-2.4.2"
           sources."escape-string-regexp-1.0.5"
@@ -86675,11 +88181,11 @@ in
       sources."@types/cacheable-request-6.0.3"
       sources."@types/http-cache-semantics-4.0.4"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-20.9.3"
+      sources."@types/node-20.10.7"
       sources."@types/normalize-package-data-2.4.4"
       sources."@types/responselike-1.0.3"
       sources."aggregate-error-4.0.1"
-      sources."all-package-names-2.0.784"
+      sources."all-package-names-2.0.818"
       sources."ansi-align-3.0.1"
       sources."ansi-escapes-4.3.2"
       sources."ansi-regex-5.0.1"
@@ -86688,7 +88194,7 @@ in
       sources."argparse-2.0.1"
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
-      sources."big-integer-1.6.51"
+      sources."big-integer-1.6.52"
       sources."bl-4.1.0"
       (sources."boxen-7.1.1" // {
         dependencies = [
@@ -86717,12 +88223,12 @@ in
       sources."callsites-3.1.0"
       sources."camelcase-7.0.1"
       sources."chalk-5.3.0"
+      sources."chalk-template-1.1.0"
       sources."chardet-0.7.0"
-      sources."ci-info-3.9.0"
       sources."clean-stack-4.2.0"
       sources."cli-boxes-3.0.0"
       sources."cli-cursor-3.1.0"
-      sources."cli-spinners-2.9.1"
+      sources."cli-spinners-2.9.2"
       (sources."cli-truncate-0.2.1" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
@@ -86764,7 +88270,15 @@ in
         ];
       })
       sources."deep-extend-0.6.0"
-      sources."default-browser-4.0.0"
+      (sources."default-browser-4.0.0" // {
+        dependencies = [
+          sources."execa-7.2.0"
+          sources."get-stream-6.0.1"
+          sources."human-signals-4.3.1"
+          sources."onetime-6.0.0"
+          sources."signal-exit-3.0.7"
+        ];
+      })
       sources."default-browser-id-3.0.0"
       sources."defaults-1.0.4"
       sources."defer-to-connect-2.0.1"
@@ -86784,11 +88298,15 @@ in
       sources."error-ex-1.3.2"
       sources."escape-goat-4.0.0"
       sources."escape-string-regexp-5.0.0"
-      sources."execa-7.2.0"
-      sources."exit-hook-3.2.0"
+      (sources."execa-8.0.1" // {
+        dependencies = [
+          sources."onetime-6.0.0"
+        ];
+      })
+      sources."exit-hook-4.0.0"
       sources."external-editor-3.1.0"
       sources."fast-glob-3.3.2"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."figures-5.0.0"
       sources."fill-range-7.0.1"
       (sources."find-up-4.1.0" // {
@@ -86796,15 +88314,21 @@ in
           sources."path-exists-4.0.0"
         ];
       })
+      sources."find-up-simple-1.0.0"
       sources."form-data-encoder-2.1.4"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.2"
       sources."get-intrinsic-1.2.2"
-      sources."get-stream-6.0.1"
+      sources."get-stream-8.0.1"
       sources."github-url-from-git-1.5.0"
       sources."glob-7.2.3"
       sources."glob-parent-5.1.2"
-      sources."global-dirs-3.0.1"
+      sources."global-directory-4.0.1"
+      (sources."global-dirs-3.0.1" // {
+        dependencies = [
+          sources."ini-2.0.0"
+        ];
+      })
       sources."globby-13.2.2"
       sources."gopd-1.0.1"
       sources."got-11.8.6"
@@ -86820,14 +88344,14 @@ in
       sources."has-symbols-1.0.3"
       sources."has-yarn-3.0.0"
       sources."hasown-2.0.0"
-      sources."hosted-git-info-6.1.1"
+      sources."hosted-git-info-7.0.1"
       sources."http-cache-semantics-4.1.1"
       sources."http2-wrapper-1.0.3"
-      sources."human-signals-4.3.1"
+      sources."human-signals-5.0.0"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
       sources."ignore-5.3.0"
-      (sources."ignore-walk-6.0.3" // {
+      (sources."ignore-walk-6.0.4" // {
         dependencies = [
           sources."brace-expansion-2.0.1"
           sources."minimatch-9.0.3"
@@ -86842,9 +88366,10 @@ in
       })
       sources."imurmurhash-0.1.4"
       sources."indent-string-5.0.0"
+      sources."index-to-position-0.1.2"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-2.0.0"
+      sources."ini-4.1.1"
       sources."inquirer-9.2.12"
       (sources."inquirer-autosubmit-prompt-0.2.0" // {
         dependencies = [
@@ -86863,6 +88388,7 @@ in
           sources."restore-cursor-2.0.0"
           sources."run-async-2.4.1"
           sources."rxjs-6.6.7"
+          sources."signal-exit-3.0.7"
           (sources."string-width-2.1.1" // {
             dependencies = [
               sources."strip-ansi-4.0.0"
@@ -86876,18 +88402,14 @@ in
         ];
       })
       sources."is-arrayish-0.2.1"
-      sources."is-ci-3.0.1"
       sources."is-core-module-2.13.1"
       sources."is-docker-3.0.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
+      sources."is-in-ci-0.1.0"
       sources."is-inside-container-1.0.0"
-      (sources."is-installed-globally-0.4.0" // {
-        dependencies = [
-          sources."is-path-inside-3.0.3"
-        ];
-      })
+      sources."is-installed-globally-1.0.0"
       sources."is-interactive-2.0.0"
       sources."is-name-taken-2.0.0"
       sources."is-npm-6.0.0"
@@ -86911,7 +88433,6 @@ in
           sources."is-docker-2.2.1"
         ];
       })
-      sources."is-yarn-global-0.4.1"
       sources."isexe-2.0.0"
       sources."issue-regex-4.1.0"
       sources."js-tokens-4.0.0"
@@ -86968,13 +88489,14 @@ in
           sources."mimic-fn-1.2.0"
           sources."onetime-2.0.1"
           sources."restore-cursor-2.0.0"
+          sources."signal-exit-3.0.7"
         ];
       })
       sources."locate-path-5.0.0"
       sources."lodash-4.17.21"
       sources."lodash.isequal-4.5.0"
       sources."lodash.zip-4.2.0"
-      sources."log-symbols-5.1.0"
+      sources."log-symbols-6.0.0"
       (sources."log-update-2.3.0" // {
         dependencies = [
           sources."ansi-escapes-3.2.0"
@@ -86984,18 +88506,20 @@ in
           sources."mimic-fn-1.2.0"
           sources."onetime-2.0.1"
           sources."restore-cursor-2.0.0"
+          sources."signal-exit-3.0.7"
           sources."string-width-2.1.1"
           sources."strip-ansi-4.0.0"
           sources."wrap-ansi-3.0.1"
         ];
       })
       sources."lowercase-keys-2.0.0"
-      sources."lru-cache-7.18.3"
+      sources."lru-cache-10.1.0"
       sources."meow-12.1.1"
       sources."merge-stream-2.0.0"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.5"
-      sources."mimic-fn-2.1.0"
+      sources."mimic-fn-4.0.0"
+      sources."mimic-function-5.0.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.1.2"
       sources."minimist-1.2.8"
@@ -87005,15 +88529,10 @@ in
           sources."type-fest-2.19.0"
         ];
       })
-      (sources."normalize-package-data-3.0.3" // {
-        dependencies = [
-          sources."hosted-git-info-4.1.0"
-          sources."lru-cache-6.0.0"
-        ];
-      })
+      sources."normalize-package-data-6.0.0"
       sources."normalize-url-6.1.0"
       sources."npm-name-7.1.1"
-      (sources."npm-run-path-5.1.0" // {
+      (sources."npm-run-path-5.2.0" // {
         dependencies = [
           sources."path-key-4.0.0"
         ];
@@ -87021,11 +88540,7 @@ in
       sources."number-is-nan-1.0.1"
       sources."object-assign-4.1.1"
       sources."once-1.4.0"
-      (sources."onetime-6.0.0" // {
-        dependencies = [
-          sources."mimic-fn-4.0.0"
-        ];
-      })
+      sources."onetime-7.0.0"
       sources."open-9.1.0"
       (sources."ora-5.4.1" // {
         dependencies = [
@@ -87055,7 +88570,6 @@ in
       sources."p-map-5.5.0"
       (sources."p-memoize-7.1.1" // {
         dependencies = [
-          sources."mimic-fn-4.0.0"
           sources."type-fest-3.13.1"
         ];
       })
@@ -87067,6 +88581,7 @@ in
           sources."@szmarczak/http-timer-5.0.1"
           sources."cacheable-lookup-7.0.0"
           sources."cacheable-request-10.2.14"
+          sources."get-stream-6.0.1"
           sources."got-12.6.1"
           sources."http2-wrapper-2.2.1"
           sources."lowercase-keys-3.0.0"
@@ -87086,15 +88601,7 @@ in
       sources."path-key-3.1.1"
       sources."path-type-4.0.0"
       sources."picomatch-2.3.1"
-      (sources."pkg-dir-7.0.0" // {
-        dependencies = [
-          sources."find-up-6.3.0"
-          sources."locate-path-7.2.0"
-          sources."p-limit-4.0.0"
-          sources."p-locate-6.0.0"
-          sources."yocto-queue-1.0.0"
-        ];
-      })
+      sources."pkg-dir-8.0.0"
       sources."progress-2.0.3"
       sources."proto-list-1.2.4"
       sources."pump-3.0.0"
@@ -87112,19 +88619,15 @@ in
           sources."parse-json-object-1.1.0"
         ];
       })
-      (sources."read-pkg-7.1.0" // {
+      (sources."read-package-up-11.0.0" // {
         dependencies = [
-          sources."type-fest-2.19.0"
+          sources."type-fest-4.9.0"
         ];
       })
-      (sources."read-pkg-up-9.1.0" // {
+      (sources."read-pkg-9.0.1" // {
         dependencies = [
-          sources."find-up-6.3.0"
-          sources."locate-path-7.2.0"
-          sources."p-limit-4.0.0"
-          sources."p-locate-6.0.0"
-          sources."type-fest-2.19.0"
-          sources."yocto-queue-1.0.0"
+          sources."parse-json-8.1.0"
+          sources."type-fest-4.9.0"
         ];
       })
       sources."readable-stream-3.6.2"
@@ -87140,7 +88643,9 @@ in
       sources."responselike-2.0.1"
       (sources."restore-cursor-3.1.0" // {
         dependencies = [
+          sources."mimic-fn-2.1.0"
           sources."onetime-5.1.2"
+          sources."signal-exit-3.0.7"
         ];
       })
       sources."reusify-1.0.4"
@@ -87148,10 +88653,13 @@ in
       (sources."run-applescript-5.0.0" // {
         dependencies = [
           sources."execa-5.1.1"
+          sources."get-stream-6.0.1"
           sources."human-signals-2.1.0"
           sources."is-stream-2.0.1"
+          sources."mimic-fn-2.1.0"
           sources."npm-run-path-4.0.1"
           sources."onetime-5.1.2"
+          sources."signal-exit-3.0.7"
           sources."strip-final-newline-2.0.0"
         ];
       })
@@ -87174,7 +88682,7 @@ in
       sources."set-function-length-1.1.1"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
-      sources."signal-exit-3.0.7"
+      sources."signal-exit-4.1.0"
       sources."slash-4.0.0"
       sources."slice-ansi-0.0.4"
       sources."spdx-correct-3.2.0"
@@ -87210,11 +88718,17 @@ in
       sources."types-eslintrc-1.0.3"
       sources."types-json-1.2.2"
       sources."types-pkg-json-1.2.1"
-      sources."typescript-5.3.2"
+      sources."typescript-5.3.3"
       sources."undici-types-5.26.5"
+      sources."unicorn-magic-0.1.0"
       sources."unique-string-3.0.0"
       sources."untildify-4.0.0"
-      sources."update-notifier-6.0.2"
+      (sources."update-notifier-7.0.0" // {
+        dependencies = [
+          sources."is-installed-globally-0.4.0"
+          sources."is-path-inside-3.0.3"
+        ];
+      })
       sources."util-deprecate-1.0.2"
       sources."vali-date-1.0.0"
       sources."validate-npm-package-license-3.0.4"
@@ -87237,7 +88751,11 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."write-file-atomic-3.0.3"
+      (sources."write-file-atomic-3.0.3" // {
+        dependencies = [
+          sources."signal-exit-3.0.7"
+        ];
+      })
       sources."xdg-basedir-5.1.0"
       sources."yallist-4.0.0"
       sources."yocto-queue-0.1.0"
@@ -87255,10 +88773,10 @@ in
   npm = nodeEnv.buildNodePackage {
     name = "npm";
     packageName = "npm";
-    version = "10.2.4";
+    version = "10.2.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/npm/-/npm-10.2.4.tgz";
-      sha512 = "umEuYneVEYO9KoEEI8n2sSGmNQeqco/3BSeacRlqIkCzw4E7XGtYSWMeJobxzr6hZ2n9cM+u5TsMTcC5bAgoWA==";
+      url = "https://registry.npmjs.org/npm/-/npm-10.2.5.tgz";
+      sha512 = "lXdZ7titEN8CH5YJk9C/aYRU9JeDxQ4d8rwIIDsvH3SMjLjHTukB2CFstMiB30zXs4vCrPN2WH6cDq1yHBeJAw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -87327,59 +88845,94 @@ in
   orval = nodeEnv.buildNodePackage {
     name = "orval";
     packageName = "orval";
-    version = "6.20.0";
+    version = "6.23.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/orval/-/orval-6.20.0.tgz";
-      sha512 = "hBH0oRgV3Opwd0kOZa3An0+bPESlclzLqLA37jCGky4yNCwG3DTvhgGRqCgB0De6hBoOlOcRs/jh919LfaALIA==";
+      url = "https://registry.npmjs.org/orval/-/orval-6.23.0.tgz";
+      sha512 = "elAyEIIpf/1kydP5V33UtONfkuN3v7L8ogzF/eJNzhvv4zsq8TwEADiY8GAw5EyzOiFFF07SSJxtoY4ez1FmFg==";
     };
     dependencies = [
+      sources."@adobe/css-tools-4.3.2"
       sources."@apidevtools/json-schema-ref-parser-9.0.6"
       sources."@apidevtools/openapi-schemas-2.1.0"
       sources."@apidevtools/swagger-methods-3.0.2"
       sources."@apidevtools/swagger-parser-10.1.0"
+      sources."@asamuzakjp/dom-selector-2.0.1"
       sources."@asyncapi/specs-4.3.1"
-      sources."@esbuild/android-arm-0.19.7"
-      sources."@esbuild/android-arm64-0.19.7"
-      sources."@esbuild/android-x64-0.19.7"
-      sources."@esbuild/darwin-arm64-0.19.7"
-      sources."@esbuild/darwin-x64-0.19.7"
-      sources."@esbuild/freebsd-arm64-0.19.7"
-      sources."@esbuild/freebsd-x64-0.19.7"
-      sources."@esbuild/linux-arm-0.19.7"
-      sources."@esbuild/linux-arm64-0.19.7"
-      sources."@esbuild/linux-ia32-0.19.7"
-      sources."@esbuild/linux-loong64-0.19.7"
-      sources."@esbuild/linux-mips64el-0.19.7"
-      sources."@esbuild/linux-ppc64-0.19.7"
-      sources."@esbuild/linux-riscv64-0.19.7"
-      sources."@esbuild/linux-s390x-0.19.7"
-      sources."@esbuild/linux-x64-0.19.7"
-      sources."@esbuild/netbsd-x64-0.19.7"
-      sources."@esbuild/openbsd-x64-0.19.7"
-      sources."@esbuild/sunos-x64-0.19.7"
-      sources."@esbuild/win32-arm64-0.19.7"
-      sources."@esbuild/win32-ia32-0.19.7"
-      sources."@esbuild/win32-x64-0.19.7"
+      sources."@edge-runtime/primitives-4.0.5"
+      sources."@edge-runtime/vm-3.1.7"
+      sources."@esbuild/aix-ppc64-0.19.11"
+      sources."@esbuild/android-arm-0.19.11"
+      sources."@esbuild/android-arm64-0.19.11"
+      sources."@esbuild/android-x64-0.19.11"
+      sources."@esbuild/darwin-arm64-0.19.11"
+      sources."@esbuild/darwin-x64-0.19.11"
+      sources."@esbuild/freebsd-arm64-0.19.11"
+      sources."@esbuild/freebsd-x64-0.19.11"
+      sources."@esbuild/linux-arm-0.19.11"
+      sources."@esbuild/linux-arm64-0.19.11"
+      sources."@esbuild/linux-ia32-0.19.11"
+      sources."@esbuild/linux-loong64-0.19.11"
+      sources."@esbuild/linux-mips64el-0.19.11"
+      sources."@esbuild/linux-ppc64-0.19.11"
+      sources."@esbuild/linux-riscv64-0.19.11"
+      sources."@esbuild/linux-s390x-0.19.11"
+      sources."@esbuild/linux-x64-0.19.11"
+      sources."@esbuild/netbsd-x64-0.19.11"
+      sources."@esbuild/openbsd-x64-0.19.11"
+      sources."@esbuild/sunos-x64-0.19.11"
+      sources."@esbuild/win32-arm64-0.19.11"
+      sources."@esbuild/win32-ia32-0.19.11"
+      sources."@esbuild/win32-x64-0.19.11"
       sources."@exodus/schemasafe-1.3.0"
       sources."@ibm-cloud/openapi-ruleset-1.14.2"
       sources."@ibm-cloud/openapi-ruleset-utilities-1.3.0"
+      (sources."@isaacs/cliui-8.0.2" // {
+        dependencies = [
+          sources."ansi-regex-6.0.1"
+          sources."ansi-styles-6.2.1"
+          sources."emoji-regex-9.2.2"
+          sources."string-width-5.1.2"
+          sources."strip-ansi-7.1.0"
+          sources."wrap-ansi-8.1.0"
+        ];
+      })
+      sources."@jest/schemas-29.6.3"
+      sources."@jridgewell/gen-mapping-0.3.3"
+      sources."@jridgewell/resolve-uri-3.1.1"
+      sources."@jridgewell/set-array-1.1.2"
+      sources."@jridgewell/source-map-0.3.5"
+      sources."@jridgewell/sourcemap-codec-1.4.15"
+      sources."@jridgewell/trace-mapping-0.3.20"
       sources."@jsdevtools/ono-7.1.3"
       sources."@jsep-plugin/regex-1.0.3"
       sources."@jsep-plugin/ternary-1.1.3"
-      sources."@nodelib/fs.scandir-2.1.5"
-      sources."@nodelib/fs.stat-2.0.5"
-      sources."@nodelib/fs.walk-1.2.8"
-      sources."@orval/angular-6.20.0"
-      sources."@orval/axios-6.20.0"
-      (sources."@orval/core-6.20.0" // {
+      (sources."@mapbox/node-pre-gyp-1.0.11" // {
         dependencies = [
-          sources."fs-extra-11.1.1"
+          sources."agent-base-6.0.2"
+          sources."detect-libc-2.0.2"
+          sources."https-proxy-agent-5.0.1"
+          (sources."make-dir-3.1.0" // {
+            dependencies = [
+              sources."semver-6.3.1"
+            ];
+          })
+          sources."semver-7.5.4"
         ];
       })
-      sources."@orval/msw-6.20.0"
-      sources."@orval/query-6.20.0"
-      sources."@orval/swr-6.20.0"
-      sources."@orval/zod-6.20.0"
+      sources."@nodelib/fs.scandir-2.1.5"
+      sources."@nodelib/fs.stat-2.0.5"
+      sources."@nodelib/fs.walk-1.2.8"
+      sources."@orval/angular-6.23.0"
+      sources."@orval/axios-6.23.0"
+      sources."@orval/core-6.23.0"
+      sources."@orval/mock-6.23.0"
+      sources."@orval/query-6.23.0"
+      sources."@orval/swr-6.23.0"
+      sources."@orval/zod-6.23.0"
+      sources."@polka/url-1.0.0-next.24"
+      sources."@puppeteer/browsers-1.9.1"
+      sources."@sinclair/typebox-0.27.8"
+      sources."@sindresorhus/is-5.6.0"
       sources."@stoplight/better-ajv-errors-1.0.3"
       sources."@stoplight/json-3.21.0"
       (sources."@stoplight/json-ref-readers-1.2.2" // {
@@ -87388,7 +88941,7 @@ in
         ];
       })
       sources."@stoplight/json-ref-resolver-3.1.6"
-      sources."@stoplight/ordered-object-literal-1.0.4"
+      sources."@stoplight/ordered-object-literal-1.0.5"
       sources."@stoplight/path-1.3.2"
       (sources."@stoplight/spectral-core-1.18.3" // {
         dependencies = [
@@ -87400,7 +88953,7 @@ in
       sources."@stoplight/spectral-functions-1.7.2"
       sources."@stoplight/spectral-parsers-1.0.3"
       sources."@stoplight/spectral-ref-resolver-1.0.4"
-      sources."@stoplight/spectral-rulesets-1.18.0"
+      sources."@stoplight/spectral-rulesets-1.18.1"
       (sources."@stoplight/spectral-runtime-1.1.2" // {
         dependencies = [
           sources."@stoplight/types-12.5.0"
@@ -87409,13 +88962,83 @@ in
       sources."@stoplight/types-13.20.0"
       sources."@stoplight/yaml-4.2.3"
       sources."@stoplight/yaml-ast-parser-0.0.48"
+      sources."@szmarczak/http-timer-5.0.1"
+      sources."@tootallnate/once-2.0.0"
+      sources."@tootallnate/quickjs-emscripten-0.23.0"
+      sources."@types/chai-4.3.11"
+      sources."@types/chai-subset-1.3.5"
       sources."@types/es-aggregate-error-1.0.6"
+      sources."@types/estree-1.0.5"
+      sources."@types/http-cache-semantics-4.0.4"
       sources."@types/json-schema-7.0.15"
-      sources."@types/node-20.9.3"
-      sources."@types/urijs-1.19.24"
+      sources."@types/node-20.10.7"
+      sources."@types/urijs-1.19.25"
+      sources."@types/which-2.0.2"
+      sources."@types/ws-8.5.10"
+      sources."@types/yauzl-2.10.3"
+      (sources."@vitest/browser-1.1.3" // {
+        dependencies = [
+          sources."@vitest/expect-1.1.3"
+          sources."@vitest/runner-1.1.3"
+          sources."@vitest/snapshot-1.1.3"
+          sources."@vitest/spy-1.1.3"
+          sources."@vitest/utils-1.1.3"
+          sources."execa-8.0.1"
+          sources."local-pkg-0.5.0"
+          sources."p-limit-5.0.0"
+          sources."tinypool-0.8.1"
+          sources."vite-node-1.1.3"
+          sources."vitest-1.1.3"
+        ];
+      })
+      sources."@vitest/expect-0.34.6"
+      sources."@vitest/runner-0.34.6"
+      sources."@vitest/snapshot-0.34.6"
+      sources."@vitest/spy-0.34.6"
+      (sources."@vitest/ui-1.1.3" // {
+        dependencies = [
+          sources."@vitest/expect-1.1.3"
+          sources."@vitest/runner-1.1.3"
+          sources."@vitest/snapshot-1.1.3"
+          sources."@vitest/spy-1.1.3"
+          sources."@vitest/utils-1.1.3"
+          sources."execa-8.0.1"
+          sources."local-pkg-0.5.0"
+          sources."p-limit-5.0.0"
+          sources."tinypool-0.8.1"
+          sources."vite-node-1.1.3"
+          sources."vitest-1.1.3"
+        ];
+      })
+      sources."@vitest/utils-0.34.6"
+      (sources."@wdio/config-8.27.0" // {
+        dependencies = [
+          sources."brace-expansion-2.0.1"
+          sources."glob-10.3.10"
+          sources."minimatch-9.0.3"
+        ];
+      })
+      (sources."@wdio/logger-8.24.12" // {
+        dependencies = [
+          sources."ansi-regex-6.0.1"
+          sources."chalk-5.3.0"
+          sources."strip-ansi-7.1.0"
+        ];
+      })
+      sources."@wdio/protocols-8.24.12"
+      sources."@wdio/repl-8.24.12"
+      sources."@wdio/types-8.27.0"
+      sources."@wdio/utils-8.27.0"
+      sources."abbrev-1.1.1"
       sources."abort-controller-3.0.0"
-      sources."acorn-8.11.2"
-      sources."ajv-8.12.0"
+      sources."acorn-8.11.3"
+      sources."acorn-walk-8.3.1"
+      sources."agent-base-7.1.0"
+      (sources."ajv-8.12.0" // {
+        dependencies = [
+          sources."fast-deep-equal-3.1.3"
+        ];
+      })
       sources."ajv-draft-04-1.0.0"
       sources."ajv-errors-3.0.0"
       sources."ajv-formats-2.1.1"
@@ -87423,112 +89046,373 @@ in
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
       sources."anymatch-3.1.3"
+      sources."aproba-2.0.0"
+      sources."archiver-6.0.1"
+      (sources."archiver-utils-4.0.1" // {
+        dependencies = [
+          sources."brace-expansion-2.0.1"
+          sources."glob-8.1.0"
+          sources."minimatch-5.1.6"
+        ];
+      })
+      sources."are-we-there-yet-2.0.0"
       sources."argparse-1.0.10"
+      sources."aria-query-5.3.0"
       sources."array-buffer-byte-length-1.0.0"
       sources."array-union-2.1.0"
       sources."arraybuffer.prototype.slice-1.0.2"
+      sources."assertion-error-1.1.0"
+      sources."ast-types-0.13.4"
       sources."astring-1.8.6"
+      sources."async-3.2.5"
+      sources."asynckit-0.4.0"
       sources."available-typed-arrays-1.0.5"
+      sources."b4a-1.6.4"
       sources."balanced-match-1.0.2"
+      sources."base64-js-1.5.1"
+      sources."basic-ftp-5.0.4"
+      sources."bidi-js-1.0.3"
+      sources."big-integer-1.6.52"
+      sources."binary-0.3.0"
       sources."binary-extensions-2.2.0"
+      sources."bl-4.1.0"
+      sources."bluebird-3.4.7"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
+      sources."buffer-5.7.1"
+      sources."buffer-crc32-0.2.13"
+      sources."buffer-from-1.1.2"
+      sources."buffer-indexof-polyfill-1.0.2"
+      sources."buffers-0.1.1"
+      sources."bufferutil-4.0.8"
       sources."cac-6.7.14"
+      sources."cacheable-lookup-7.0.0"
+      (sources."cacheable-request-10.2.14" // {
+        dependencies = [
+          sources."get-stream-6.0.1"
+          sources."mimic-response-4.0.0"
+        ];
+      })
       sources."call-bind-1.0.5"
       sources."call-me-maybe-1.0.2"
+      sources."canvas-2.11.2"
+      sources."chai-4.4.0"
+      sources."chainsaw-0.1.0"
       sources."chalk-4.1.2"
+      sources."check-error-1.0.3"
       sources."chokidar-3.5.3"
+      sources."chownr-2.0.0"
+      sources."chrome-launcher-1.1.0"
+      sources."chromium-bidi-0.4.16"
       sources."cliui-8.0.1"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
+      sources."color-support-1.1.3"
+      sources."combined-stream-1.0.8"
+      sources."commander-2.20.3"
       sources."compare-versions-6.1.0"
+      sources."compress-commons-5.0.1"
       sources."concat-map-0.0.1"
+      sources."console-control-strings-1.1.0"
+      sources."copy-anything-2.0.6"
+      sources."core-util-is-1.0.3"
+      sources."crc-32-1.2.2"
+      sources."crc32-stream-5.0.0"
+      sources."cross-fetch-4.0.0"
       sources."cross-spawn-7.0.3"
+      sources."css-shorthand-properties-1.1.1"
+      sources."css-tree-2.3.1"
+      sources."css-value-0.0.1"
+      sources."css.escape-1.5.1"
+      sources."cssstyle-4.0.1"
+      sources."data-uri-to-buffer-6.0.1"
+      (sources."data-urls-5.0.0" // {
+        dependencies = [
+          sources."tr46-5.0.0"
+          sources."webidl-conversions-7.0.0"
+          sources."whatwg-mimetype-4.0.0"
+          sources."whatwg-url-14.0.0"
+        ];
+      })
       sources."debug-4.3.4"
+      sources."decamelize-6.0.0"
+      sources."decimal.js-10.4.3"
+      sources."decompress-response-4.2.1"
+      sources."deep-eql-4.1.3"
+      sources."deepmerge-ts-5.1.0"
+      sources."defer-to-connect-2.0.1"
       sources."define-data-property-1.1.1"
       sources."define-properties-1.2.1"
+      sources."degenerator-5.0.1"
+      sources."delayed-stream-1.0.0"
+      sources."delegates-1.0.0"
       sources."dependency-graph-0.11.0"
+      sources."dequal-2.0.3"
+      sources."detect-libc-1.0.3"
+      (sources."devtools-8.27.0" // {
+        dependencies = [
+          sources."@puppeteer/browsers-1.3.0"
+          sources."agent-base-6.0.2"
+          sources."chownr-1.1.4"
+          sources."chromium-bidi-0.4.9"
+          sources."cross-fetch-3.1.6"
+          sources."devtools-protocol-0.0.1120988"
+          sources."http-proxy-agent-5.0.0"
+          sources."https-proxy-agent-5.0.1"
+          sources."isexe-3.1.1"
+          sources."puppeteer-core-20.3.0"
+          sources."tar-fs-2.1.1"
+          sources."tar-stream-2.2.0"
+          sources."which-4.0.0"
+          sources."ws-8.13.0"
+          sources."yargs-17.7.1"
+        ];
+      })
+      sources."devtools-protocol-0.0.1237913"
+      sources."diff-sequences-29.6.3"
       sources."dir-glob-3.0.1"
+      (sources."duplexer2-0.1.4" // {
+        dependencies = [
+          sources."isarray-1.0.0"
+          sources."readable-stream-2.3.8"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      sources."eastasianwidth-0.2.0"
+      sources."edge-paths-3.0.5"
+      (sources."edgedriver-5.3.9" // {
+        dependencies = [
+          sources."data-uri-to-buffer-4.0.1"
+          sources."isexe-3.1.1"
+          sources."node-fetch-3.3.2"
+          sources."which-4.0.0"
+        ];
+      })
       sources."emoji-regex-8.0.0"
       sources."encoding-0.1.13"
+      sources."end-of-stream-1.4.4"
       sources."enquirer-2.4.1"
+      sources."entities-4.5.0"
+      sources."errno-0.1.8"
       sources."es-abstract-1.22.3"
       sources."es-aggregate-error-1.0.11"
       sources."es-set-tostringtag-2.0.2"
       sources."es-to-primitive-1.2.1"
       sources."es6-promise-3.3.1"
-      sources."esbuild-0.19.7"
+      sources."esbuild-0.19.11"
       sources."escalade-3.1.1"
+      sources."escape-string-regexp-4.0.0"
+      sources."escodegen-2.1.0"
       sources."esprima-4.0.1"
+      sources."estraverse-5.3.0"
+      sources."estree-walker-3.0.3"
       sources."esutils-2.0.3"
       sources."event-target-shim-5.0.1"
-      sources."execa-5.1.1"
-      sources."fast-deep-equal-3.1.3"
+      (sources."execa-5.1.1" // {
+        dependencies = [
+          sources."get-stream-6.0.1"
+          sources."human-signals-2.1.0"
+          sources."is-stream-2.0.1"
+          sources."mimic-fn-2.1.0"
+          sources."npm-run-path-4.0.1"
+          sources."onetime-5.1.2"
+          sources."signal-exit-3.0.7"
+          sources."strip-final-newline-2.0.0"
+        ];
+      })
+      (sources."extract-zip-2.0.1" // {
+        dependencies = [
+          sources."get-stream-5.2.0"
+        ];
+      })
+      sources."fast-deep-equal-2.0.1"
+      sources."fast-fifo-1.3.2"
       sources."fast-glob-3.3.2"
       sources."fast-memoize-2.5.2"
       sources."fast-safe-stringify-2.1.1"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
+      sources."fd-slicer-1.1.0"
+      sources."fetch-blob-3.2.0"
+      sources."fflate-0.8.1"
       sources."fill-range-7.0.1"
       sources."find-up-5.0.0"
+      sources."flatted-3.2.9"
       sources."for-each-0.3.3"
-      sources."fs-extra-10.1.0"
+      sources."foreground-child-3.1.1"
+      sources."form-data-4.0.0"
+      sources."form-data-encoder-2.1.4"
+      sources."formdata-polyfill-4.0.10"
+      sources."fs-constants-1.0.0"
+      (sources."fs-extra-11.2.0" // {
+        dependencies = [
+          sources."jsonfile-6.1.0"
+          sources."universalify-2.0.1"
+        ];
+      })
+      (sources."fs-minipass-2.1.0" // {
+        dependencies = [
+          sources."minipass-3.3.6"
+        ];
+      })
+      sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.3"
+      (sources."fstream-1.0.12" // {
+        dependencies = [
+          sources."mkdirp-0.5.6"
+          sources."rimraf-2.7.1"
+        ];
+      })
       sources."function-bind-1.1.2"
       sources."function.prototype.name-1.1.6"
       sources."functions-have-names-1.2.3"
+      (sources."gauge-3.0.2" // {
+        dependencies = [
+          sources."signal-exit-3.0.7"
+        ];
+      })
+      (sources."geckodriver-4.3.0" // {
+        dependencies = [
+          sources."data-uri-to-buffer-4.0.1"
+          sources."isexe-3.1.1"
+          sources."node-fetch-3.3.2"
+          sources."which-4.0.0"
+        ];
+      })
       sources."get-caller-file-2.0.5"
+      sources."get-func-name-2.0.2"
       sources."get-intrinsic-1.2.2"
-      sources."get-stream-6.0.1"
+      sources."get-port-7.0.0"
+      sources."get-stream-8.0.1"
       sources."get-symbol-description-1.0.0"
+      (sources."get-uri-6.0.2" // {
+        dependencies = [
+          sources."fs-extra-8.1.0"
+          sources."universalify-0.1.2"
+        ];
+      })
+      (sources."glob-7.2.3" // {
+        dependencies = [
+          sources."minimatch-3.1.2"
+        ];
+      })
       sources."glob-parent-5.1.2"
       sources."globalthis-1.0.3"
       sources."globby-11.1.0"
       sources."gopd-1.0.1"
+      (sources."got-12.6.1" // {
+        dependencies = [
+          sources."decompress-response-6.0.0"
+          sources."get-stream-6.0.1"
+          sources."mimic-response-3.1.0"
+        ];
+      })
       sources."graceful-fs-4.2.11"
+      sources."grapheme-splitter-1.0.4"
+      (sources."happy-dom-12.10.3" // {
+        dependencies = [
+          sources."webidl-conversions-7.0.0"
+        ];
+      })
       sources."has-bigints-1.0.2"
       sources."has-flag-4.0.0"
       sources."has-property-descriptors-1.0.1"
       sources."has-proto-1.0.1"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.0"
+      sources."has-unicode-2.0.1"
       sources."hasown-2.0.0"
+      (sources."html-encoding-sniffer-4.0.0" // {
+        dependencies = [
+          sources."whatwg-encoding-3.1.1"
+        ];
+      })
+      sources."http-cache-semantics-4.1.1"
+      sources."http-proxy-agent-7.0.0"
       sources."http2-client-1.3.5"
-      sources."human-signals-2.1.0"
+      sources."http2-wrapper-2.2.1"
+      sources."https-proxy-agent-7.0.2"
+      sources."human-signals-5.0.0"
       sources."iconv-lite-0.6.3"
+      sources."ieee754-1.2.1"
       sources."ignore-5.3.0"
+      sources."image-size-0.5.5"
       sources."immer-9.0.21"
+      sources."immutable-4.3.4"
+      sources."import-meta-resolve-4.0.0"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
       sources."internal-slot-1.0.6"
+      sources."ip-1.1.8"
       sources."is-array-buffer-3.0.2"
       sources."is-bigint-1.0.4"
       sources."is-binary-path-2.1.0"
       sources."is-boolean-object-1.1.2"
       sources."is-callable-1.2.7"
       sources."is-date-object-1.0.5"
+      sources."is-docker-2.2.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
       sources."is-negative-zero-2.0.2"
       sources."is-number-7.0.0"
       sources."is-number-object-1.0.7"
+      sources."is-plain-obj-4.1.0"
+      sources."is-potential-custom-element-name-1.0.1"
       sources."is-regex-1.1.4"
       sources."is-shared-array-buffer-1.0.2"
-      sources."is-stream-2.0.1"
+      sources."is-stream-3.0.0"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
       sources."is-typed-array-1.1.12"
       sources."is-weakref-1.0.2"
+      sources."is-what-3.14.1"
+      sources."is-wsl-2.2.0"
       sources."isarray-2.0.5"
       sources."isexe-2.0.0"
+      sources."jackspeak-2.3.6"
       sources."js-yaml-3.14.1"
+      (sources."jsdom-23.2.0" // {
+        dependencies = [
+          sources."tr46-5.0.0"
+          sources."webidl-conversions-7.0.0"
+          sources."whatwg-encoding-3.1.1"
+          sources."whatwg-mimetype-4.0.0"
+          sources."whatwg-url-14.0.0"
+        ];
+      })
       sources."jsep-1.3.8"
+      sources."json-buffer-3.0.1"
       sources."json-schema-traverse-1.0.0"
       sources."jsonc-parser-2.2.1"
-      sources."jsonfile-6.1.0"
+      sources."jsonfile-4.0.0"
       sources."jsonpath-plus-7.1.0"
       sources."jsonpointer-5.0.1"
+      sources."keyv-4.5.4"
+      sources."ky-0.33.3"
+      (sources."lazystream-1.0.1" // {
+        dependencies = [
+          sources."isarray-1.0.0"
+          sources."readable-stream-2.3.8"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      sources."less-4.2.0"
       sources."leven-3.1.0"
+      (sources."lighthouse-logger-2.0.1" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."lightningcss-1.22.1"
+      sources."listenercount-1.0.1"
+      sources."local-pkg-0.4.3"
+      sources."locate-app-2.2.5"
       sources."locate-path-6.0.0"
       sources."lodash-4.17.21"
+      sources."lodash.clonedeep-4.5.0"
       sources."lodash.get-4.4.2"
       sources."lodash.isempty-4.4.0"
       sources."lodash.omit-4.5.0"
@@ -87537,65 +89421,189 @@ in
       sources."lodash.uniq-4.5.0"
       sources."lodash.uniqby-4.7.0"
       sources."lodash.uniqwith-4.5.0"
+      sources."lodash.zip-4.2.0"
       sources."loglevel-1.8.1"
       sources."loglevel-plugin-prefix-0.8.4"
+      sources."loupe-2.3.7"
+      sources."lowercase-keys-3.0.0"
+      sources."lru-cache-6.0.0"
+      sources."magic-string-0.30.5"
+      sources."make-dir-2.1.0"
+      sources."marky-1.2.5"
+      sources."mdn-data-2.0.30"
       sources."merge-stream-2.0.0"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.5"
-      sources."mimic-fn-2.1.0"
+      sources."mime-1.6.0"
+      sources."mime-db-1.52.0"
+      sources."mime-types-2.1.35"
+      sources."mimic-fn-4.0.0"
+      sources."mimic-response-2.1.0"
       (sources."minimatch-6.2.0" // {
         dependencies = [
           sources."brace-expansion-2.0.1"
         ];
       })
+      sources."minimist-1.2.8"
+      sources."minipass-5.0.0"
+      (sources."minizlib-2.1.2" // {
+        dependencies = [
+          sources."minipass-3.3.6"
+        ];
+      })
+      sources."mitt-3.0.0"
+      sources."mkdirp-1.0.4"
+      sources."mkdirp-classic-0.5.3"
+      sources."mlly-1.4.2"
+      sources."mrmime-2.0.0"
       sources."ms-2.1.2"
+      sources."n12-1.8.8"
+      sources."nan-2.18.0"
+      sources."nanoid-3.3.7"
+      sources."needle-3.3.1"
+      sources."netmask-2.0.2"
       (sources."nimma-0.2.2" // {
         dependencies = [
           sources."jsonpath-plus-6.0.1"
         ];
       })
+      sources."node-domexception-1.0.0"
       sources."node-fetch-2.7.0"
       sources."node-fetch-h2-2.3.0"
+      sources."node-gyp-build-4.8.0"
       sources."node-readfiles-0.2.0"
+      sources."nopt-5.0.0"
       sources."normalize-path-3.0.0"
-      sources."npm-run-path-4.0.1"
+      sources."normalize-url-8.0.0"
+      (sources."npm-run-path-5.2.0" // {
+        dependencies = [
+          sources."path-key-4.0.0"
+        ];
+      })
+      sources."npmlog-5.0.1"
       sources."oas-kit-common-1.0.8"
       sources."oas-linter-3.2.2"
       sources."oas-resolver-2.5.6"
       sources."oas-schema-walker-1.1.5"
       sources."oas-validator-5.0.8"
+      sources."object-assign-4.1.1"
       sources."object-inspect-1.13.1"
       sources."object-keys-1.1.1"
-      sources."object.assign-4.1.4"
-      sources."onetime-5.1.2"
+      sources."object.assign-4.1.5"
+      sources."once-1.4.0"
+      sources."onetime-6.0.0"
       sources."openapi-types-12.1.3"
       (sources."openapi3-ts-3.2.0" // {
         dependencies = [
           sources."yaml-2.3.4"
         ];
       })
-      sources."p-limit-3.1.0"
-      sources."p-locate-5.0.0"
+      sources."p-cancelable-3.0.0"
+      sources."p-limit-4.0.0"
+      (sources."p-locate-5.0.0" // {
+        dependencies = [
+          sources."p-limit-3.1.0"
+          sources."yocto-queue-0.1.0"
+        ];
+      })
+      sources."pac-proxy-agent-7.0.1"
+      sources."pac-resolver-7.0.0"
+      sources."parse-node-version-1.0.1"
+      sources."parse5-7.1.2"
       sources."path-exists-4.0.0"
+      sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
+      (sources."path-scurry-1.10.1" // {
+        dependencies = [
+          sources."lru-cache-10.1.0"
+        ];
+      })
       sources."path-type-4.0.0"
+      sources."pathe-1.1.1"
+      sources."pathval-1.1.1"
+      sources."pend-1.2.0"
+      sources."picocolors-1.0.0"
       sources."picomatch-2.3.1"
+      sources."pify-4.0.1"
+      (sources."pkg-types-1.0.3" // {
+        dependencies = [
+          sources."jsonc-parser-3.2.0"
+        ];
+      })
+      sources."playwright-1.40.1"
+      sources."playwright-core-1.40.1"
       sources."pony-cause-1.1.1"
+      sources."postcss-8.4.33"
+      (sources."pretty-format-29.7.0" // {
+        dependencies = [
+          sources."ansi-styles-5.2.0"
+        ];
+      })
+      sources."process-nextick-args-2.0.1"
+      sources."progress-2.0.3"
+      (sources."proxy-agent-6.3.1" // {
+        dependencies = [
+          sources."lru-cache-7.18.3"
+        ];
+      })
+      sources."proxy-from-env-1.1.0"
+      sources."prr-1.0.1"
+      sources."psl-1.9.0"
+      sources."pump-3.0.0"
       sources."punycode-2.3.1"
+      (sources."puppeteer-core-20.9.0" // {
+        dependencies = [
+          sources."@puppeteer/browsers-1.4.6"
+          sources."devtools-protocol-0.0.1147663"
+          sources."lru-cache-7.18.3"
+          sources."proxy-agent-6.3.0"
+          sources."ws-8.13.0"
+          sources."yargs-17.7.1"
+        ];
+      })
+      sources."query-selector-shadow-dom-1.0.1"
+      sources."querystringify-2.2.0"
       sources."queue-microtask-1.2.3"
+      sources."queue-tick-1.0.1"
+      sources."quick-lru-5.1.1"
+      sources."react-is-18.2.0"
+      sources."readable-stream-3.6.2"
+      (sources."readdir-glob-1.1.3" // {
+        dependencies = [
+          sources."brace-expansion-2.0.1"
+          sources."minimatch-5.1.6"
+        ];
+      })
       sources."readdirp-3.6.0"
       sources."reftools-1.1.9"
       sources."regexp.prototype.flags-1.5.1"
       sources."require-directory-2.1.1"
       sources."require-from-string-2.0.2"
+      sources."requires-port-1.0.0"
+      sources."resolve-alpn-1.2.1"
+      sources."responselike-3.0.0"
+      sources."resq-1.11.0"
       sources."reusify-1.0.4"
+      sources."rgb2hex-0.2.5"
+      sources."rimraf-3.0.2"
+      sources."rollup-4.9.4"
+      sources."rrweb-cssom-0.6.0"
       sources."run-parallel-1.2.0"
+      sources."safaridriver-0.1.2"
       sources."safe-array-concat-1.0.1"
+      sources."safe-buffer-5.2.1"
       sources."safe-regex-test-1.0.0"
       sources."safe-stable-stringify-1.1.1"
       sources."safer-buffer-2.1.2"
+      sources."sass-1.69.7"
+      sources."sax-1.3.0"
+      sources."saxes-6.0.0"
+      sources."semver-5.7.2"
+      sources."serialize-error-11.0.3"
+      sources."set-blocking-2.0.0"
       sources."set-function-length-1.1.1"
       sources."set-function-name-2.0.1"
+      sources."setimmediate-1.0.5"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."should-13.2.3"
@@ -87605,46 +89613,133 @@ in
       sources."should-type-adaptors-1.1.0"
       sources."should-util-1.0.1"
       sources."side-channel-1.0.4"
-      sources."signal-exit-3.0.7"
+      sources."siginfo-2.0.0"
+      sources."signal-exit-4.1.0"
+      sources."simple-concat-1.0.1"
       sources."simple-eval-1.0.0"
+      sources."simple-get-3.1.1"
+      sources."sirv-2.0.4"
       sources."slash-3.0.0"
+      sources."smart-buffer-4.2.0"
+      (sources."socks-2.7.1" // {
+        dependencies = [
+          sources."ip-2.0.0"
+        ];
+      })
+      sources."socks-proxy-agent-8.0.2"
+      sources."source-map-0.6.1"
+      sources."source-map-js-1.0.2"
+      sources."source-map-support-0.5.21"
+      sources."split2-4.2.0"
       sources."sprintf-js-1.0.3"
+      sources."stackback-0.0.2"
+      sources."std-env-3.7.0"
+      sources."streamx-2.15.6"
       sources."string-argv-0.3.2"
       sources."string-width-4.2.3"
+      sources."string-width-cjs-4.2.3"
       sources."string.prototype.trim-1.2.8"
       sources."string.prototype.trimend-1.0.7"
       sources."string.prototype.trimstart-1.0.7"
+      sources."string_decoder-1.3.0"
       sources."strip-ansi-6.0.1"
-      sources."strip-final-newline-2.0.0"
+      sources."strip-ansi-cjs-6.0.1"
+      sources."strip-final-newline-3.0.0"
+      sources."strip-literal-1.3.0"
+      (sources."stylus-0.62.0" // {
+        dependencies = [
+          sources."source-map-0.7.4"
+        ];
+      })
+      sources."sugarss-4.0.1"
       sources."supports-color-7.2.0"
       sources."swagger2openapi-7.0.8"
+      sources."symbol-tree-3.2.4"
+      sources."tar-6.2.0"
+      sources."tar-fs-3.0.4"
+      sources."tar-stream-3.1.6"
+      sources."terser-5.26.0"
+      sources."through-2.3.8"
+      sources."tinybench-2.5.1"
+      sources."tinypool-0.7.0"
+      sources."tinyspy-2.2.0"
       sources."to-regex-range-5.0.1"
+      sources."totalist-3.0.1"
+      sources."tough-cookie-4.1.3"
       sources."tr46-0.0.3"
+      sources."traverse-0.3.9"
       sources."tsconfck-2.1.2"
       sources."tslib-2.6.2"
+      sources."type-detect-4.0.8"
+      sources."type-fest-2.13.0"
       sources."typed-array-buffer-1.0.0"
       sources."typed-array-byte-length-1.0.0"
       sources."typed-array-byte-offset-1.0.0"
       sources."typed-array-length-1.0.4"
-      sources."typescript-5.3.2"
+      sources."typescript-5.3.3"
+      sources."ua-parser-js-1.0.37"
+      sources."ufo-1.3.2"
       sources."unbox-primitive-1.0.2"
+      sources."unbzip2-stream-1.4.3"
       sources."undici-types-5.26.5"
-      sources."universalify-2.0.1"
+      sources."universalify-0.2.0"
+      (sources."unzipper-0.10.14" // {
+        dependencies = [
+          sources."isarray-1.0.0"
+          sources."readable-stream-2.3.8"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
       sources."uri-js-4.4.1"
       sources."urijs-1.19.11"
+      sources."url-parse-1.5.10"
+      sources."userhome-1.0.0"
+      sources."utf-8-validate-6.0.3"
+      sources."util-deprecate-1.0.2"
       sources."utility-types-3.10.0"
+      sources."uuid-9.0.1"
       sources."validator-13.11.0"
+      sources."vite-5.0.11"
+      sources."vite-node-0.34.6"
+      sources."vitest-0.34.6"
+      sources."w3c-xmlserializer-5.0.0"
+      (sources."wait-port-1.1.0" // {
+        dependencies = [
+          sources."commander-9.5.0"
+        ];
+      })
+      sources."web-streams-polyfill-3.3.2"
+      sources."webdriver-8.27.0"
+      (sources."webdriverio-8.27.0" // {
+        dependencies = [
+          sources."brace-expansion-2.0.1"
+          sources."minimatch-9.0.3"
+        ];
+      })
       sources."webidl-conversions-3.0.1"
+      sources."whatwg-encoding-2.0.0"
+      sources."whatwg-mimetype-3.0.0"
       sources."whatwg-url-5.0.0"
       sources."which-2.0.2"
       sources."which-boxed-primitive-1.0.2"
       sources."which-typed-array-1.1.13"
+      sources."why-is-node-running-2.2.2"
+      sources."wide-align-1.1.5"
       sources."wrap-ansi-7.0.0"
+      sources."wrap-ansi-cjs-7.0.0"
+      sources."wrappy-1.0.2"
+      sources."ws-8.16.0"
+      sources."xml-name-validator-5.0.0"
+      sources."xmlchars-2.2.0"
       sources."y18n-5.0.8"
+      sources."yallist-4.0.0"
       sources."yaml-1.10.2"
       sources."yargs-17.7.2"
       sources."yargs-parser-21.1.1"
-      sources."yocto-queue-0.1.0"
+      sources."yauzl-2.10.0"
+      sources."yocto-queue-1.0.0"
+      sources."zip-stream-5.0.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -87659,13 +89754,13 @@ in
   parcel = nodeEnv.buildNodePackage {
     name = "parcel";
     packageName = "parcel";
-    version = "2.10.3";
+    version = "2.11.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/parcel/-/parcel-2.10.3.tgz";
-      sha512 = "Ocx33N4ZVnotJTALhMZ0AqPIE9UN5uP6jjA+lYJ4FlEYuYYZsvOQXZQgeMa62pFj6jrOHWh7ho8uJhRdTNwVyg==";
+      url = "https://registry.npmjs.org/parcel/-/parcel-2.11.0.tgz";
+      sha512 = "H/RI1/DmuOkL8RuG/EpNPvtzrbF+7jA/R56ydEEm+lqFbYktKB4COR7JXdHkZXRgbSJyimrFB8d0r9+SaRnj0Q==";
     };
     dependencies = [
-      (sources."@babel/code-frame-7.23.4" // {
+      (sources."@babel/code-frame-7.23.5" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
@@ -87682,7 +89777,7 @@ in
       sources."@jridgewell/source-map-0.3.5"
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@jridgewell/trace-mapping-0.3.20"
-      sources."@lezer/common-1.1.1"
+      sources."@lezer/common-1.2.0"
       sources."@lezer/lr-1.3.14"
       sources."@lmdb/lmdb-darwin-arm64-2.8.5"
       sources."@lmdb/lmdb-darwin-x64-2.8.5"
@@ -87691,73 +89786,73 @@ in
       sources."@lmdb/lmdb-linux-x64-2.8.5"
       sources."@lmdb/lmdb-win32-x64-2.8.5"
       sources."@mischnic/json-sourcemap-0.1.1"
-      sources."@parcel/bundler-default-2.10.3"
-      sources."@parcel/cache-2.10.3"
-      sources."@parcel/codeframe-2.10.3"
-      sources."@parcel/compressor-raw-2.10.3"
-      sources."@parcel/config-default-2.10.3"
-      sources."@parcel/core-2.10.3"
-      sources."@parcel/diagnostic-2.10.3"
-      sources."@parcel/events-2.10.3"
-      sources."@parcel/fs-2.10.3"
-      sources."@parcel/graph-3.0.3"
-      sources."@parcel/logger-2.10.3"
-      sources."@parcel/markdown-ansi-2.10.3"
-      sources."@parcel/namer-default-2.10.3"
-      sources."@parcel/node-resolver-core-3.1.3"
-      sources."@parcel/optimizer-css-2.10.3"
-      sources."@parcel/optimizer-htmlnano-2.10.3"
-      sources."@parcel/optimizer-image-2.10.3"
-      sources."@parcel/optimizer-svgo-2.10.3"
-      sources."@parcel/optimizer-swc-2.10.3"
-      sources."@parcel/package-manager-2.10.3"
-      sources."@parcel/packager-css-2.10.3"
-      sources."@parcel/packager-html-2.10.3"
-      sources."@parcel/packager-js-2.10.3"
-      sources."@parcel/packager-raw-2.10.3"
-      sources."@parcel/packager-svg-2.10.3"
-      sources."@parcel/packager-wasm-2.10.3"
-      sources."@parcel/plugin-2.10.3"
-      sources."@parcel/profiler-2.10.3"
-      sources."@parcel/reporter-cli-2.10.3"
-      sources."@parcel/reporter-dev-server-2.10.3"
-      sources."@parcel/reporter-tracer-2.10.3"
-      sources."@parcel/resolver-default-2.10.3"
-      sources."@parcel/runtime-browser-hmr-2.10.3"
-      sources."@parcel/runtime-js-2.10.3"
-      sources."@parcel/runtime-react-refresh-2.10.3"
-      sources."@parcel/runtime-service-worker-2.10.3"
-      sources."@parcel/rust-2.10.3"
+      sources."@parcel/bundler-default-2.11.0"
+      sources."@parcel/cache-2.11.0"
+      sources."@parcel/codeframe-2.11.0"
+      sources."@parcel/compressor-raw-2.11.0"
+      sources."@parcel/config-default-2.11.0"
+      sources."@parcel/core-2.11.0"
+      sources."@parcel/diagnostic-2.11.0"
+      sources."@parcel/events-2.11.0"
+      sources."@parcel/fs-2.11.0"
+      sources."@parcel/graph-3.1.0"
+      sources."@parcel/logger-2.11.0"
+      sources."@parcel/markdown-ansi-2.11.0"
+      sources."@parcel/namer-default-2.11.0"
+      sources."@parcel/node-resolver-core-3.2.0"
+      sources."@parcel/optimizer-css-2.11.0"
+      sources."@parcel/optimizer-htmlnano-2.11.0"
+      sources."@parcel/optimizer-image-2.11.0"
+      sources."@parcel/optimizer-svgo-2.11.0"
+      sources."@parcel/optimizer-swc-2.11.0"
+      sources."@parcel/package-manager-2.11.0"
+      sources."@parcel/packager-css-2.11.0"
+      sources."@parcel/packager-html-2.11.0"
+      sources."@parcel/packager-js-2.11.0"
+      sources."@parcel/packager-raw-2.11.0"
+      sources."@parcel/packager-svg-2.11.0"
+      sources."@parcel/packager-wasm-2.11.0"
+      sources."@parcel/plugin-2.11.0"
+      sources."@parcel/profiler-2.11.0"
+      sources."@parcel/reporter-cli-2.11.0"
+      sources."@parcel/reporter-dev-server-2.11.0"
+      sources."@parcel/reporter-tracer-2.11.0"
+      sources."@parcel/resolver-default-2.11.0"
+      sources."@parcel/runtime-browser-hmr-2.11.0"
+      sources."@parcel/runtime-js-2.11.0"
+      sources."@parcel/runtime-react-refresh-2.11.0"
+      sources."@parcel/runtime-service-worker-2.11.0"
+      sources."@parcel/rust-2.11.0"
       (sources."@parcel/source-map-2.1.1" // {
         dependencies = [
           sources."detect-libc-1.0.3"
         ];
       })
-      sources."@parcel/transformer-babel-2.10.3"
-      sources."@parcel/transformer-css-2.10.3"
-      (sources."@parcel/transformer-html-2.10.3" // {
+      sources."@parcel/transformer-babel-2.11.0"
+      sources."@parcel/transformer-css-2.11.0"
+      (sources."@parcel/transformer-html-2.11.0" // {
         dependencies = [
           sources."posthtml-parser-0.10.2"
         ];
       })
-      sources."@parcel/transformer-image-2.10.3"
-      sources."@parcel/transformer-js-2.10.3"
-      sources."@parcel/transformer-json-2.10.3"
-      sources."@parcel/transformer-postcss-2.10.3"
-      (sources."@parcel/transformer-posthtml-2.10.3" // {
+      sources."@parcel/transformer-image-2.11.0"
+      sources."@parcel/transformer-js-2.11.0"
+      sources."@parcel/transformer-json-2.11.0"
+      sources."@parcel/transformer-postcss-2.11.0"
+      (sources."@parcel/transformer-posthtml-2.11.0" // {
         dependencies = [
           sources."posthtml-parser-0.10.2"
         ];
       })
-      sources."@parcel/transformer-raw-2.10.3"
-      sources."@parcel/transformer-react-refresh-wrap-2.10.3"
-      (sources."@parcel/transformer-svg-2.10.3" // {
+      sources."@parcel/transformer-raw-2.11.0"
+      sources."@parcel/transformer-react-refresh-wrap-2.11.0"
+      (sources."@parcel/transformer-svg-2.11.0" // {
         dependencies = [
           sources."posthtml-parser-0.10.2"
         ];
       })
-      sources."@parcel/types-2.10.3"
-      sources."@parcel/utils-2.10.3"
+      sources."@parcel/types-2.11.0"
+      sources."@parcel/utils-2.11.0"
       (sources."@parcel/watcher-2.3.0" // {
         dependencies = [
           sources."detect-libc-1.0.3"
@@ -87776,15 +89871,15 @@ in
       sources."@parcel/watcher-win32-arm64-2.3.0"
       sources."@parcel/watcher-win32-ia32-2.3.0"
       sources."@parcel/watcher-win32-x64-2.3.0"
-      sources."@parcel/workers-2.10.3"
-      sources."@swc/core-1.3.99"
+      sources."@parcel/workers-2.11.0"
+      sources."@swc/core-1.3.102"
       sources."@swc/counter-0.1.2"
       sources."@swc/helpers-0.5.3"
       sources."@swc/types-0.1.5"
       sources."@trysound/sax-0.2.0"
       sources."abab-2.0.6"
       sources."abortcontroller-polyfill-1.7.5"
-      sources."acorn-8.11.2"
+      sources."acorn-8.11.3"
       (sources."acorn-globals-4.3.4" // {
         dependencies = [
           sources."acorn-6.4.2"
@@ -87792,6 +89887,7 @@ in
       })
       sources."acorn-walk-6.2.0"
       sources."ajv-6.12.6"
+      sources."ansi-regex-5.0.1"
       sources."ansi-styles-3.2.1"
       sources."argparse-2.0.1"
       sources."array-equal-1.0.2"
@@ -87808,11 +89904,11 @@ in
       sources."brace-expansion-2.0.1"
       sources."braces-3.0.2"
       sources."browser-process-hrtime-1.0.0"
-      sources."browserslist-4.22.1"
+      sources."browserslist-4.22.2"
       sources."buffer-from-1.1.2"
       sources."callsites-3.1.0"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001563"
+      sources."caniuse-lite-1.0.30001576"
       sources."caseless-0.12.0"
       (sources."chalk-4.1.2" // {
         dependencies = [
@@ -87824,6 +89920,7 @@ in
         ];
       })
       sources."chrome-trace-event-1.0.3"
+      sources."cli-progress-3.12.0"
       sources."clone-2.1.2"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
@@ -87833,14 +89930,14 @@ in
       sources."concat-map-0.0.1"
       sources."core-util-is-1.0.2"
       sources."cosmiconfig-8.3.6"
-      sources."css-declaration-sorter-6.4.1"
+      sources."css-declaration-sorter-7.1.1"
       sources."css-select-5.1.0"
       sources."css-tree-2.3.1"
       sources."css-what-6.1.0"
       sources."cssesc-3.0.0"
-      sources."cssnano-6.0.1"
-      sources."cssnano-preset-default-6.0.1"
-      sources."cssnano-utils-4.0.0"
+      sources."cssnano-6.0.3"
+      sources."cssnano-preset-default-6.0.3"
+      sources."cssnano-utils-4.0.1"
       (sources."csso-5.0.5" // {
         dependencies = [
           sources."css-tree-2.2.1"
@@ -87862,7 +89959,8 @@ in
       sources."dotenv-7.0.0"
       sources."dotenv-expand-5.1.0"
       sources."ecc-jsbn-0.1.2"
-      sources."electron-to-chromium-1.4.589"
+      sources."electron-to-chromium-1.4.623"
+      sources."emoji-regex-8.0.0"
       sources."entities-4.5.0"
       sources."error-ex-1.3.2"
       sources."escalade-3.1.1"
@@ -87883,7 +89981,7 @@ in
       sources."get-port-4.2.0"
       sources."getpass-0.1.7"
       sources."glob-8.1.0"
-      sources."globals-13.23.0"
+      sources."globals-13.24.0"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-flag-3.0.0"
@@ -87891,7 +89989,7 @@ in
       sources."html-tags-1.2.0"
       (sources."htmlnano-2.1.0" // {
         dependencies = [
-          sources."svgo-3.0.4"
+          sources."svgo-3.2.0"
         ];
       })
       (sources."htmlparser2-7.2.0" // {
@@ -87915,6 +90013,7 @@ in
       sources."is-absolute-url-3.0.3"
       sources."is-arrayish-0.2.1"
       sources."is-extglob-2.1.1"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
       sources."is-html-1.1.0"
       sources."is-json-2.0.1"
@@ -87941,7 +90040,7 @@ in
           sources."detect-libc-1.0.3"
         ];
       })
-      sources."lilconfig-2.1.0"
+      sources."lilconfig-3.0.0"
       sources."lines-and-columns-1.2.4"
       sources."lmdb-2.8.5"
       sources."lodash-4.17.21"
@@ -87954,18 +90053,18 @@ in
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
       sources."minimatch-5.1.6"
-      sources."msgpackr-1.9.9"
+      sources."msgpackr-1.10.1"
       sources."nanoid-3.3.7"
       sources."node-addon-api-6.1.0"
       sources."node-gyp-build-optional-packages-5.1.1"
-      sources."node-releases-2.0.13"
+      sources."node-releases-2.0.14"
       sources."nth-check-2.1.1"
       sources."nullthrows-1.1.1"
       sources."nwsapi-2.2.7"
       sources."oauth-sign-0.9.0"
       sources."once-1.4.0"
       sources."optionator-0.8.3"
-      sources."ordered-binary-1.4.1"
+      sources."ordered-binary-1.5.1"
       sources."parent-module-1.0.1"
       sources."parse-json-5.2.0"
       sources."parse5-5.1.0"
@@ -87975,39 +90074,39 @@ in
       sources."picocolors-1.0.0"
       sources."picomatch-2.3.1"
       sources."pn-1.1.0"
-      sources."postcss-8.4.31"
+      sources."postcss-8.4.33"
       sources."postcss-calc-9.0.1"
-      sources."postcss-colormin-6.0.0"
-      sources."postcss-convert-values-6.0.0"
-      sources."postcss-discard-comments-6.0.0"
-      sources."postcss-discard-duplicates-6.0.0"
-      sources."postcss-discard-empty-6.0.0"
-      sources."postcss-discard-overridden-6.0.0"
-      sources."postcss-merge-longhand-6.0.0"
-      sources."postcss-merge-rules-6.0.1"
-      sources."postcss-minify-font-values-6.0.0"
-      sources."postcss-minify-gradients-6.0.0"
-      sources."postcss-minify-params-6.0.0"
-      sources."postcss-minify-selectors-6.0.0"
-      sources."postcss-normalize-charset-6.0.0"
-      sources."postcss-normalize-display-values-6.0.0"
-      sources."postcss-normalize-positions-6.0.0"
-      sources."postcss-normalize-repeat-style-6.0.0"
-      sources."postcss-normalize-string-6.0.0"
-      sources."postcss-normalize-timing-functions-6.0.0"
-      sources."postcss-normalize-unicode-6.0.0"
-      sources."postcss-normalize-url-6.0.0"
-      sources."postcss-normalize-whitespace-6.0.0"
-      sources."postcss-ordered-values-6.0.0"
-      sources."postcss-reduce-initial-6.0.0"
-      sources."postcss-reduce-transforms-6.0.0"
-      sources."postcss-selector-parser-6.0.13"
-      (sources."postcss-svgo-6.0.0" // {
-        dependencies = [
-          sources."svgo-3.0.4"
-        ];
-      })
-      sources."postcss-unique-selectors-6.0.0"
+      sources."postcss-colormin-6.0.2"
+      sources."postcss-convert-values-6.0.2"
+      sources."postcss-discard-comments-6.0.1"
+      sources."postcss-discard-duplicates-6.0.1"
+      sources."postcss-discard-empty-6.0.1"
+      sources."postcss-discard-overridden-6.0.1"
+      sources."postcss-merge-longhand-6.0.2"
+      sources."postcss-merge-rules-6.0.3"
+      sources."postcss-minify-font-values-6.0.1"
+      sources."postcss-minify-gradients-6.0.1"
+      sources."postcss-minify-params-6.0.2"
+      sources."postcss-minify-selectors-6.0.2"
+      sources."postcss-normalize-charset-6.0.1"
+      sources."postcss-normalize-display-values-6.0.1"
+      sources."postcss-normalize-positions-6.0.1"
+      sources."postcss-normalize-repeat-style-6.0.1"
+      sources."postcss-normalize-string-6.0.1"
+      sources."postcss-normalize-timing-functions-6.0.1"
+      sources."postcss-normalize-unicode-6.0.2"
+      sources."postcss-normalize-url-6.0.1"
+      sources."postcss-normalize-whitespace-6.0.1"
+      sources."postcss-ordered-values-6.0.1"
+      sources."postcss-reduce-initial-6.0.2"
+      sources."postcss-reduce-transforms-6.0.1"
+      sources."postcss-selector-parser-6.0.15"
+      (sources."postcss-svgo-6.0.2" // {
+        dependencies = [
+          sources."svgo-3.2.0"
+        ];
+      })
+      sources."postcss-unique-selectors-6.0.2"
       sources."postcss-value-parser-4.2.0"
       sources."posthtml-0.16.6"
       sources."posthtml-parser-0.11.0"
@@ -88040,7 +90139,9 @@ in
       sources."sshpk-1.18.0"
       sources."stable-0.1.8"
       sources."stealthy-require-1.1.1"
-      sources."stylehacks-6.0.0"
+      sources."string-width-4.2.3"
+      sources."strip-ansi-6.0.1"
+      sources."stylehacks-6.0.2"
       sources."supports-color-5.5.0"
       (sources."svgo-2.8.0" // {
         dependencies = [
@@ -88056,7 +90157,7 @@ in
       })
       sources."symbol-tree-3.2.4"
       sources."term-size-2.2.1"
-      (sources."terser-5.24.0" // {
+      (sources."terser-5.26.0" // {
         dependencies = [
           sources."commander-2.20.3"
         ];
@@ -88070,7 +90171,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
       sources."type-fest-0.20.2"
-      sources."typescript-5.3.2"
+      sources."typescript-5.3.3"
       (sources."uncss-0.17.3" // {
         dependencies = [
           sources."brace-expansion-1.1.11"
@@ -88277,7 +90378,7 @@ in
       sources."minimatch-3.1.2"
       sources."minimist-1.2.8"
       sources."mkdirp-0.5.6"
-      sources."moment-2.29.4"
+      sources."moment-2.30.1"
       sources."ms-2.0.0"
       sources."msgpack5-3.6.1"
       sources."mv-2.1.1"
@@ -88288,7 +90389,7 @@ in
       sources."oauth-sign-0.9.0"
       sources."object-inspect-1.13.1"
       sources."object-keys-1.1.1"
-      sources."object.assign-4.1.4"
+      sources."object.assign-4.1.5"
       sources."on-finished-2.4.1"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
@@ -88520,7 +90621,7 @@ in
       sources."base64-js-0.0.8"
       sources."bencode-2.0.3"
       sources."bep53-range-1.1.1"
-      sources."big-integer-1.6.51"
+      sources."big-integer-1.6.52"
       sources."bitfield-0.1.0"
       (sources."bittorrent-dht-6.4.2" // {
         dependencies = [
@@ -89056,7 +91157,7 @@ in
         ];
       })
       sources."negotiator-0.6.3"
-      sources."node-gyp-build-4.7.0"
+      sources."node-gyp-build-4.8.0"
       sources."normalize-path-3.0.0"
       sources."oauth-sign-0.9.0"
       sources."object-inspect-1.13.1"
@@ -89228,21 +91329,21 @@ in
     src = ../../tools/networking/pgrok/build-deps;
     dependencies = [
       sources."@aashutoshrathi/word-wrap-1.2.6"
-      sources."@adobe/css-tools-4.3.1"
+      sources."@adobe/css-tools-4.3.2"
       sources."@alloc/quick-lru-5.2.0"
       sources."@ampproject/remapping-2.2.1"
-      sources."@babel/code-frame-7.23.4"
-      sources."@babel/compat-data-7.23.3"
-      (sources."@babel/core-7.23.3" // {
+      sources."@babel/code-frame-7.23.5"
+      sources."@babel/compat-data-7.23.5"
+      (sources."@babel/core-7.23.7" // {
         dependencies = [
-          sources."@babel/generator-7.23.4"
-          sources."@babel/traverse-7.23.4"
-          sources."@babel/types-7.23.4"
+          sources."@babel/generator-7.23.6"
+          sources."@babel/traverse-7.23.7"
+          sources."@babel/types-7.23.6"
           sources."semver-6.3.1"
         ];
       })
       sources."@babel/generator-7.17.7"
-      (sources."@babel/helper-compilation-targets-7.22.15" // {
+      (sources."@babel/helper-compilation-targets-7.23.6" // {
         dependencies = [
           sources."lru-cache-5.1.1"
           sources."semver-6.3.1"
@@ -89252,54 +91353,54 @@ in
       sources."@babel/helper-environment-visitor-7.22.20"
       (sources."@babel/helper-function-name-7.23.0" // {
         dependencies = [
-          sources."@babel/types-7.23.4"
+          sources."@babel/types-7.23.6"
         ];
       })
       (sources."@babel/helper-hoist-variables-7.22.5" // {
         dependencies = [
-          sources."@babel/types-7.23.4"
+          sources."@babel/types-7.23.6"
         ];
       })
       (sources."@babel/helper-module-imports-7.22.15" // {
         dependencies = [
-          sources."@babel/types-7.23.4"
+          sources."@babel/types-7.23.6"
         ];
       })
       sources."@babel/helper-module-transforms-7.23.3"
       sources."@babel/helper-plugin-utils-7.22.5"
       (sources."@babel/helper-simple-access-7.22.5" // {
         dependencies = [
-          sources."@babel/types-7.23.4"
+          sources."@babel/types-7.23.6"
         ];
       })
       (sources."@babel/helper-split-export-declaration-7.22.6" // {
         dependencies = [
-          sources."@babel/types-7.23.4"
+          sources."@babel/types-7.23.6"
         ];
       })
       sources."@babel/helper-string-parser-7.23.4"
       sources."@babel/helper-validator-identifier-7.22.20"
-      sources."@babel/helper-validator-option-7.22.15"
-      (sources."@babel/helpers-7.23.4" // {
+      sources."@babel/helper-validator-option-7.23.5"
+      (sources."@babel/helpers-7.23.7" // {
         dependencies = [
-          sources."@babel/generator-7.23.4"
-          sources."@babel/traverse-7.23.4"
-          sources."@babel/types-7.23.4"
+          sources."@babel/generator-7.23.6"
+          sources."@babel/traverse-7.23.7"
+          sources."@babel/types-7.23.6"
         ];
       })
       sources."@babel/highlight-7.23.4"
-      sources."@babel/parser-7.23.4"
+      sources."@babel/parser-7.23.6"
       sources."@babel/plugin-transform-react-jsx-self-7.23.3"
       sources."@babel/plugin-transform-react-jsx-source-7.23.3"
       (sources."@babel/template-7.22.15" // {
         dependencies = [
-          sources."@babel/types-7.23.4"
+          sources."@babel/types-7.23.6"
         ];
       })
       (sources."@babel/traverse-7.23.2" // {
         dependencies = [
-          sources."@babel/generator-7.23.4"
-          sources."@babel/types-7.23.4"
+          sources."@babel/generator-7.23.6"
+          sources."@babel/types-7.23.6"
         ];
       })
       sources."@babel/types-7.17.0"
@@ -89332,9 +91433,9 @@ in
       sources."@esbuild/win32-x64-0.18.20"
       sources."@eslint-community/eslint-utils-4.4.0"
       sources."@eslint-community/regexpp-4.10.0"
-      (sources."@eslint/eslintrc-2.1.3" // {
+      (sources."@eslint/eslintrc-2.1.4" // {
         dependencies = [
-          sources."globals-13.23.0"
+          sources."globals-13.24.0"
         ];
       })
       sources."@eslint/js-8.44.0"
@@ -89343,6 +91444,12 @@ in
       sources."@humanwhocodes/config-array-0.11.13"
       sources."@humanwhocodes/module-importer-1.0.1"
       sources."@humanwhocodes/object-schema-2.0.1"
+      (sources."@isaacs/cliui-8.0.2" // {
+        dependencies = [
+          sources."ansi-regex-6.0.1"
+          sources."strip-ansi-7.1.0"
+        ];
+      })
       sources."@jridgewell/gen-mapping-0.3.3"
       sources."@jridgewell/resolve-uri-3.1.1"
       sources."@jridgewell/set-array-1.1.2"
@@ -89353,11 +91460,11 @@ in
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
       sources."@remix-run/router-1.8.0"
-      sources."@swc/core-1.3.99"
+      sources."@swc/core-1.3.102"
       sources."@swc/counter-0.1.2"
       sources."@swc/helpers-0.5.3"
       sources."@swc/types-0.1.5"
-      sources."@swc/wasm-1.3.99"
+      sources."@swc/wasm-1.3.102"
       sources."@tailwindcss/forms-0.5.7"
       sources."@trivago/prettier-plugin-sort-imports-4.2.1"
       sources."@tsconfig/node10-1.0.9"
@@ -89369,9 +91476,9 @@ in
       sources."@types/node-20.5.9"
       sources."@types/normalize-package-data-2.4.4"
       sources."@types/prop-types-15.7.11"
-      sources."@types/react-18.2.38"
-      sources."@types/react-dom-18.2.16"
-      sources."@types/scheduler-0.16.7"
+      sources."@types/react-18.2.47"
+      sources."@types/react-dom-18.2.18"
+      sources."@types/scheduler-0.16.8"
       sources."@types/semver-7.5.6"
       sources."@typescript-eslint/eslint-plugin-6.0.0"
       sources."@typescript-eslint/parser-6.0.0"
@@ -89382,15 +91489,14 @@ in
       sources."@typescript-eslint/utils-6.0.0"
       sources."@typescript-eslint/visitor-keys-6.0.0"
       sources."@vitejs/plugin-react-4.0.4"
-      sources."@vue/compiler-core-3.3.8"
-      sources."@vue/compiler-dom-3.3.8"
-      sources."@vue/compiler-sfc-3.3.8"
-      sources."@vue/compiler-ssr-3.3.8"
-      sources."@vue/reactivity-transform-3.3.8"
-      sources."@vue/shared-3.3.8"
-      sources."acorn-8.11.2"
+      sources."@vue/compiler-core-3.4.5"
+      sources."@vue/compiler-dom-3.4.5"
+      sources."@vue/compiler-sfc-3.4.5"
+      sources."@vue/compiler-ssr-3.4.5"
+      sources."@vue/shared-3.4.5"
+      sources."acorn-8.11.3"
       sources."acorn-jsx-5.3.2"
-      sources."acorn-walk-8.3.0"
+      sources."acorn-walk-8.3.1"
       sources."ajv-6.12.6"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-3.2.1"
@@ -89416,13 +91522,13 @@ in
       sources."binary-extensions-2.2.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."browserslist-4.22.1"
+      sources."browserslist-4.22.2"
       sources."buffer-from-1.1.2"
       sources."builtin-modules-3.3.0"
       sources."call-bind-1.0.5"
       sources."callsites-3.1.0"
       sources."camelcase-css-2.0.1"
-      sources."caniuse-lite-1.0.30001563"
+      sources."caniuse-lite-1.0.30001576"
       sources."chalk-2.4.2"
       sources."chokidar-3.5.3"
       sources."ci-info-3.9.0"
@@ -89458,7 +91564,7 @@ in
       sources."create-require-1.1.1"
       sources."cross-spawn-7.0.3"
       sources."cssesc-3.0.0"
-      sources."csstype-3.1.2"
+      sources."csstype-3.1.3"
       sources."debug-4.3.4"
       sources."deep-is-0.1.4"
       sources."define-data-property-1.1.1"
@@ -89470,7 +91576,10 @@ in
       sources."dir-glob-3.0.1"
       sources."dlv-1.1.3"
       sources."doctrine-3.0.0"
-      sources."electron-to-chromium-1.4.589"
+      sources."eastasianwidth-0.2.0"
+      sources."electron-to-chromium-1.4.623"
+      sources."emoji-regex-9.2.2"
+      sources."entities-4.5.0"
       sources."errno-0.1.8"
       sources."error-ex-1.3.2"
       sources."es-abstract-1.22.3"
@@ -89491,7 +91600,7 @@ in
           sources."eslint-scope-7.2.2"
           sources."estraverse-5.3.0"
           sources."glob-parent-6.0.2"
-          sources."globals-13.23.0"
+          sources."globals-13.24.0"
           sources."has-flag-4.0.0"
           sources."supports-color-7.2.0"
         ];
@@ -89522,7 +91631,7 @@ in
         ];
       })
       sources."eslint-plugin-react-hooks-4.6.0"
-      sources."eslint-plugin-react-refresh-0.4.4"
+      sources."eslint-plugin-react-refresh-0.4.5"
       (sources."eslint-plugin-unicorn-48.0.1" // {
         dependencies = [
           sources."jsesc-3.0.2"
@@ -89548,14 +91657,15 @@ in
       sources."fast-glob-3.3.2"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."file-entry-cache-6.0.1"
       sources."fill-range-7.0.1"
       sources."find-up-5.0.0"
       sources."flat-cache-3.2.0"
       sources."flatted-3.2.9"
-      sources."follow-redirects-1.15.3"
+      sources."follow-redirects-1.15.4"
       sources."for-each-0.3.3"
+      sources."foreground-child-3.1.1"
       sources."form-data-4.0.0"
       sources."fraction.js-4.3.7"
       sources."fs.realpath-1.0.0"
@@ -89606,6 +91716,7 @@ in
       sources."is-date-object-1.0.5"
       sources."is-extglob-2.1.1"
       sources."is-finalizationregistry-1.0.2"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."is-generator-function-1.0.10"
       sources."is-glob-4.0.3"
       sources."is-map-2.0.2"
@@ -89626,6 +91737,7 @@ in
       sources."isarray-2.0.5"
       sources."isexe-2.0.0"
       sources."iterator.prototype-1.1.2"
+      sources."jackspeak-2.3.6"
       sources."javascript-natural-sort-0.7.1"
       sources."jiti-1.21.0"
       sources."js-tokens-4.0.0"
@@ -89669,18 +91781,15 @@ in
       sources."mini-svg-data-uri-1.4.4"
       sources."minimatch-3.1.2"
       sources."minimist-1.2.8"
+      sources."minipass-7.0.4"
       sources."mkdirp-0.5.6"
       sources."ms-2.1.2"
       sources."mz-2.7.0"
       sources."nanoid-3.3.7"
       sources."natural-compare-1.4.0"
       sources."natural-compare-lite-1.4.0"
-      (sources."needle-3.2.0" // {
-        dependencies = [
-          sources."debug-3.2.7"
-        ];
-      })
-      sources."node-releases-2.0.13"
+      sources."needle-3.3.1"
+      sources."node-releases-2.0.14"
       (sources."normalize-package-data-2.5.0" // {
         dependencies = [
           sources."semver-5.7.2"
@@ -89692,7 +91801,7 @@ in
       sources."object-hash-3.0.0"
       sources."object-inspect-1.13.1"
       sources."object-keys-1.1.1"
-      sources."object.assign-4.1.4"
+      sources."object.assign-4.1.5"
       sources."object.entries-1.1.7"
       sources."object.fromentries-2.0.7"
       sources."object.groupby-1.0.1"
@@ -89710,6 +91819,11 @@ in
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
+      (sources."path-scurry-1.10.1" // {
+        dependencies = [
+          sources."lru-cache-10.1.0"
+        ];
+      })
       sources."path-type-4.0.0"
       sources."picocolors-1.0.0"
       sources."picomatch-2.3.1"
@@ -89721,7 +91835,7 @@ in
           sources."debug-3.2.7"
         ];
       })
-      sources."postcss-8.4.31"
+      sources."postcss-8.4.33"
       sources."postcss-import-15.1.0"
       sources."postcss-js-4.0.1"
       (sources."postcss-load-config-4.0.2" // {
@@ -89730,7 +91844,7 @@ in
         ];
       })
       sources."postcss-nested-6.0.1"
-      sources."postcss-selector-parser-6.0.13"
+      sources."postcss-selector-parser-6.0.15"
       sources."postcss-value-parser-4.2.0"
       sources."prelude-ls-1.2.1"
       sources."prettier-3.0.3"
@@ -89778,7 +91892,7 @@ in
       sources."safe-array-concat-1.0.1"
       sources."safe-regex-test-1.0.0"
       sources."safer-buffer-2.1.2"
-      sources."sass-1.69.5"
+      sources."sass-1.69.7"
       sources."sax-1.3.0"
       sources."scheduler-0.23.0"
       sources."semver-7.5.4"
@@ -89787,6 +91901,7 @@ in
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."side-channel-1.0.4"
+      sources."signal-exit-4.1.0"
       sources."slash-3.0.0"
       sources."source-map-0.5.7"
       sources."source-map-js-1.0.2"
@@ -89799,11 +91914,23 @@ in
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.16"
+      (sources."string-width-5.1.2" // {
+        dependencies = [
+          sources."ansi-regex-6.0.1"
+          sources."strip-ansi-7.1.0"
+        ];
+      })
+      (sources."string-width-cjs-4.2.3" // {
+        dependencies = [
+          sources."emoji-regex-8.0.0"
+        ];
+      })
       sources."string.prototype.matchall-4.0.10"
       sources."string.prototype.trim-1.2.8"
       sources."string.prototype.trimend-1.0.7"
       sources."string.prototype.trimstart-1.0.7"
       sources."strip-ansi-6.0.1"
+      sources."strip-ansi-cjs-6.0.1"
       sources."strip-bom-3.0.0"
       sources."strip-indent-3.0.0"
       sources."strip-json-comments-3.1.1"
@@ -89812,20 +91939,22 @@ in
           sources."source-map-0.7.4"
         ];
       })
-      (sources."sucrase-3.34.0" // {
+      (sources."sucrase-3.35.0" // {
         dependencies = [
-          sources."glob-7.1.6"
+          sources."brace-expansion-2.0.1"
+          sources."glob-10.3.10"
+          sources."minimatch-9.0.3"
         ];
       })
       sources."sugarss-4.0.1"
       sources."supports-color-5.5.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
-      (sources."tailwindcss-3.3.5" // {
+      (sources."tailwindcss-3.3.7" // {
         dependencies = [
           sources."glob-parent-6.0.2"
         ];
       })
-      (sources."terser-5.24.0" // {
+      (sources."terser-5.26.0" // {
         dependencies = [
           sources."commander-2.20.3"
         ];
@@ -89837,12 +91966,12 @@ in
       sources."to-regex-range-5.0.1"
       sources."ts-api-utils-1.0.3"
       sources."ts-interface-checker-0.1.13"
-      (sources."ts-node-10.9.1" // {
+      (sources."ts-node-10.9.2" // {
         dependencies = [
           sources."arg-4.1.3"
         ];
       })
-      (sources."tsconfig-paths-3.14.2" // {
+      (sources."tsconfig-paths-3.15.0" // {
         dependencies = [
           sources."json5-1.0.2"
         ];
@@ -89861,7 +91990,7 @@ in
       sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-lib-3.0.1"
       sources."validate-npm-package-license-3.0.4"
-      sources."vite-4.4.11"
+      sources."vite-4.4.12"
       sources."vite-code-inspector-plugin-0.1.9"
       sources."webpack-code-inspector-plugin-0.1.9"
       sources."which-2.0.2"
@@ -89869,233 +91998,30 @@ in
       sources."which-builtin-type-1.1.3"
       sources."which-collection-1.0.1"
       sources."which-typed-array-1.1.13"
-      sources."wrappy-1.0.2"
-      sources."yallist-4.0.0"
-      sources."yaml-2.3.4"
-      sources."yn-3.1.1"
-      sources."yocto-queue-0.1.0"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  pm2 = nodeEnv.buildNodePackage {
-    name = "pm2";
-    packageName = "pm2";
-    version = "5.3.0";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/pm2/-/pm2-5.3.0.tgz";
-      sha512 = "xscmQiAAf6ArVmKhjKTeeN8+Td7ZKnuZFFPw1DGkdFPR/0Iyx+m+1+OpCdf9+HQopX3VPc9/wqPQHqVOfHum9w==";
-    };
-    dependencies = [
-      (sources."@opencensus/core-0.0.9" // {
-        dependencies = [
-          sources."semver-5.7.2"
-        ];
-      })
-      (sources."@opencensus/propagation-b3-0.0.8" // {
-        dependencies = [
-          sources."@opencensus/core-0.0.8"
-          sources."semver-5.7.2"
-        ];
-      })
-      (sources."@pm2/agent-2.0.3" // {
-        dependencies = [
-          sources."dayjs-1.8.36"
-        ];
-      })
-      (sources."@pm2/io-5.0.2" // {
-        dependencies = [
-          sources."async-2.6.4"
-          sources."eventemitter2-6.4.9"
-          sources."tslib-1.9.3"
-        ];
-      })
-      (sources."@pm2/js-api-0.6.7" // {
-        dependencies = [
-          sources."async-2.6.4"
-          sources."eventemitter2-6.4.9"
-        ];
-      })
-      sources."@pm2/pm2-version-check-1.0.4"
-      sources."@tootallnate/quickjs-emscripten-0.23.0"
-      sources."agent-base-7.1.0"
-      sources."amp-0.3.1"
-      sources."amp-message-0.1.2"
-      sources."ansi-colors-4.1.3"
-      sources."ansi-styles-4.3.0"
-      sources."anymatch-3.1.3"
-      (sources."argparse-1.0.10" // {
-        dependencies = [
-          sources."sprintf-js-1.0.3"
-        ];
-      })
-      sources."ast-types-0.13.4"
-      sources."async-3.2.5"
-      (sources."async-listener-0.6.10" // {
-        dependencies = [
-          sources."semver-5.7.2"
-        ];
-      })
-      sources."axios-0.21.4"
-      sources."balanced-match-1.0.2"
-      sources."basic-ftp-5.0.3"
-      sources."binary-extensions-2.2.0"
-      sources."blessed-0.1.81"
-      sources."bodec-0.1.0"
-      sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
-      sources."buffer-from-1.1.2"
-      sources."bufferutil-4.0.8"
-      sources."chalk-3.0.0"
-      sources."charm-0.1.2"
-      sources."chokidar-3.5.3"
-      sources."cli-tableau-2.0.1"
-      sources."color-convert-2.0.1"
-      sources."color-name-1.1.4"
-      sources."commander-2.15.1"
-      sources."concat-map-0.0.1"
-      sources."continuation-local-storage-3.2.1"
-      sources."croner-4.1.97"
-      sources."culvert-0.1.2"
-      sources."data-uri-to-buffer-6.0.1"
-      sources."dayjs-1.11.10"
-      sources."debug-4.3.4"
-      sources."degenerator-5.0.1"
-      sources."emitter-listener-1.1.2"
-      sources."enquirer-2.3.6"
-      sources."escape-string-regexp-4.0.0"
-      sources."escodegen-2.1.0"
-      sources."esprima-4.0.1"
-      sources."estraverse-5.3.0"
-      sources."esutils-2.0.3"
-      sources."eventemitter2-5.0.1"
-      sources."fast-json-patch-3.1.1"
-      sources."fclone-1.0.11"
-      sources."fill-range-7.0.1"
-      sources."follow-redirects-1.15.3"
-      sources."fs-extra-8.1.0"
-      sources."fs.realpath-1.0.0"
-      sources."fsevents-2.3.3"
-      sources."function-bind-1.1.2"
-      sources."get-uri-6.0.2"
-      sources."git-node-fs-1.0.0"
-      sources."git-sha1-0.1.2"
-      sources."glob-7.2.3"
-      sources."glob-parent-5.1.2"
-      sources."graceful-fs-4.2.11"
-      sources."has-flag-4.0.0"
-      sources."hasown-2.0.0"
-      sources."http-proxy-agent-7.0.0"
-      sources."https-proxy-agent-7.0.2"
-      sources."iconv-lite-0.4.24"
-      sources."inflight-1.0.6"
-      sources."inherits-2.0.4"
-      sources."ini-1.3.8"
-      sources."ip-1.1.8"
-      sources."is-binary-path-2.1.0"
-      sources."is-core-module-2.13.1"
-      sources."is-extglob-2.1.1"
-      sources."is-glob-4.0.3"
-      sources."is-number-7.0.0"
-      sources."js-git-0.7.8"
-      sources."json-stringify-safe-5.0.1"
-      sources."jsonfile-4.0.0"
-      sources."lazy-1.0.11"
-      sources."lodash-4.17.21"
-      sources."log-driver-1.2.7"
-      sources."lru-cache-7.18.3"
-      sources."minimatch-3.1.2"
-      sources."mkdirp-1.0.4"
-      sources."module-details-from-path-1.0.3"
-      sources."ms-2.1.2"
-      sources."mute-stream-0.0.8"
-      (sources."needle-2.4.0" // {
-        dependencies = [
-          sources."debug-3.2.7"
-        ];
-      })
-      sources."netmask-2.0.2"
-      sources."node-gyp-build-4.7.0"
-      sources."normalize-path-3.0.0"
-      (sources."nssocket-0.6.0" // {
-        dependencies = [
-          sources."eventemitter2-0.4.14"
-        ];
-      })
-      sources."once-1.4.0"
-      sources."pac-proxy-agent-7.0.1"
-      sources."pac-resolver-7.0.0"
-      sources."pako-0.2.9"
-      sources."path-is-absolute-1.0.1"
-      sources."path-parse-1.0.7"
-      sources."picomatch-2.3.1"
-      sources."pidusage-3.0.2"
-      sources."pm2-axon-4.0.1"
-      sources."pm2-axon-rpc-0.7.1"
-      sources."pm2-deploy-1.0.2"
-      sources."pm2-multimeter-0.1.2"
-      (sources."pm2-sysmonit-1.2.8" // {
-        dependencies = [
-          sources."pidusage-2.0.21"
-        ];
-      })
-      sources."promptly-2.2.0"
-      sources."proxy-agent-6.3.1"
-      sources."proxy-from-env-1.1.0"
-      sources."read-1.0.7"
-      sources."readdirp-3.6.0"
-      sources."require-in-the-middle-5.2.0"
-      sources."resolve-1.22.8"
-      sources."run-series-1.1.9"
-      sources."safe-buffer-5.2.1"
-      sources."safer-buffer-2.1.2"
-      sources."sax-1.3.0"
-      (sources."semver-7.5.4" // {
-        dependencies = [
-          sources."lru-cache-6.0.0"
-        ];
-      })
-      sources."shimmer-1.2.1"
-      sources."signal-exit-3.0.7"
-      sources."smart-buffer-4.2.0"
-      (sources."socks-2.7.1" // {
+      (sources."wrap-ansi-8.1.0" // {
         dependencies = [
-          sources."ip-2.0.0"
+          sources."ansi-regex-6.0.1"
+          sources."ansi-styles-6.2.1"
+          sources."strip-ansi-7.1.0"
         ];
       })
-      sources."socks-proxy-agent-8.0.2"
-      sources."source-map-0.6.1"
-      sources."source-map-support-0.5.21"
-      sources."sprintf-js-1.1.2"
-      sources."supports-color-7.2.0"
-      sources."supports-preserve-symlinks-flag-1.0.0"
-      sources."systeminformation-5.21.17"
-      sources."to-regex-range-5.0.1"
-      sources."tslib-2.6.2"
-      sources."tv4-1.3.0"
-      sources."tx2-1.0.5"
-      sources."universalify-0.1.2"
-      sources."utf-8-validate-5.0.10"
-      sources."uuid-3.4.0"
-      (sources."vizion-2.2.1" // {
+      (sources."wrap-ansi-cjs-7.0.0" // {
         dependencies = [
-          sources."async-2.6.4"
+          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."wrappy-1.0.2"
-      sources."ws-7.4.6"
       sources."yallist-4.0.0"
-      sources."yamljs-0.3.0"
+      sources."yaml-2.3.4"
+      sources."yn-3.1.1"
+      sources."yocto-queue-0.1.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
-      description = "Production process manager for Node.JS applications with a built-in load balancer.";
-      homepage = "http://pm2.keymetrics.io/";
-      license = "AGPL-3.0";
     };
     production = true;
     bypassCache = true;
@@ -90104,10 +92030,10 @@ in
   pnpm = nodeEnv.buildNodePackage {
     name = "pnpm";
     packageName = "pnpm";
-    version = "8.10.5";
+    version = "8.14.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pnpm/-/pnpm-8.10.5.tgz";
-      sha512 = "nBYfQz2FVRxY8bOhCxjMPfcrWgLSyu5lZswFtvIK3e+UfnldkMOQM7+S3lUXfq1p2H9iqdqtyR56LjtY9JNToA==";
+      url = "https://registry.npmjs.org/pnpm/-/pnpm-8.14.0.tgz";
+      sha512 = "XUv5ezSfrxpRMYqhuoh+mdnDbiA9vLVZOKkf3dJFQkbLAHI9ZkL1TUY6D1KicB2t+N4AKjf8YTyc3JTtVnXdzg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -90150,10 +92076,10 @@ in
   postcss = nodeEnv.buildNodePackage {
     name = "postcss";
     packageName = "postcss";
-    version = "8.4.31";
+    version = "8.4.33";
     src = fetchurl {
-      url = "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz";
-      sha512 = "PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==";
+      url = "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz";
+      sha512 = "Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==";
     };
     dependencies = [
       sources."nanoid-3.3.7"
@@ -90173,60 +92099,37 @@ in
   postcss-cli = nodeEnv.buildNodePackage {
     name = "postcss-cli";
     packageName = "postcss-cli";
-    version = "10.1.0";
+    version = "11.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/postcss-cli/-/postcss-cli-10.1.0.tgz";
-      sha512 = "Zu7PLORkE9YwNdvOeOVKPmWghprOtjFQU3srMUGbdz3pHJiFh7yZ4geiZFMkjMfB0mtTFR3h8RemR62rPkbOPA==";
+      url = "https://registry.npmjs.org/postcss-cli/-/postcss-cli-11.0.0.tgz";
+      sha512 = "xMITAI7M0u1yolVcXJ9XTZiO9aO49mcoKQy6pCDFdMh9kGqhzLVpWxeD/32M/QBmkhcGypZFFOLNLmIW4Pg4RA==";
     };
     dependencies = [
-      sources."@cspotcode/source-map-support-0.8.1"
-      sources."@jridgewell/resolve-uri-3.1.1"
-      sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.9"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@swc/core-1.3.99"
-      sources."@swc/counter-0.1.2"
-      sources."@swc/helpers-0.5.3"
-      sources."@swc/types-0.1.5"
-      sources."@swc/wasm-1.3.99"
-      sources."@tsconfig/node10-1.0.9"
-      sources."@tsconfig/node12-1.0.11"
-      sources."@tsconfig/node14-1.0.3"
-      sources."@tsconfig/node16-1.0.4"
-      sources."@types/node-20.9.3"
-      sources."acorn-8.11.2"
-      sources."acorn-walk-8.3.0"
+      sources."@sindresorhus/merge-streams-1.0.0"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
       sources."anymatch-3.1.3"
-      sources."arg-4.1.3"
       sources."binary-extensions-2.2.0"
       sources."braces-3.0.2"
       sources."chokidar-3.5.3"
       sources."cliui-8.0.1"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."create-require-1.1.1"
       sources."dependency-graph-0.11.0"
-      sources."diff-4.0.2"
-      sources."dir-glob-3.0.1"
       sources."emoji-regex-8.0.0"
       sources."escalade-3.1.1"
       sources."fast-glob-3.3.2"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."fill-range-7.0.1"
-      sources."fs-extra-11.1.1"
+      sources."fs-extra-11.2.0"
       sources."fsevents-2.3.3"
       sources."get-caller-file-2.0.5"
       sources."get-stdin-9.0.0"
       sources."glob-parent-5.1.2"
-      (sources."globby-13.2.2" // {
-        dependencies = [
-          sources."slash-4.0.0"
-        ];
-      })
+      sources."globby-14.0.0"
       sources."graceful-fs-4.2.11"
       sources."ignore-5.3.0"
       sources."is-binary-path-2.1.0"
@@ -90234,19 +92137,19 @@ in
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
       sources."is-number-7.0.0"
+      sources."jiti-1.21.0"
       sources."jsonfile-6.1.0"
       sources."lilconfig-3.0.0"
-      sources."make-error-1.3.6"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.5"
       sources."nanoid-3.3.7"
       sources."normalize-path-3.0.0"
-      sources."path-type-4.0.0"
+      sources."path-type-5.0.0"
       sources."picocolors-1.0.0"
       sources."picomatch-2.3.1"
       sources."pify-2.3.0"
-      sources."postcss-8.4.31"
-      sources."postcss-load-config-4.0.2"
+      sources."postcss-8.4.33"
+      sources."postcss-load-config-5.0.2"
       sources."postcss-reporter-7.0.5"
       sources."pretty-hrtime-1.0.3"
       sources."queue-microtask-1.2.3"
@@ -90261,18 +92164,13 @@ in
       sources."strip-ansi-6.0.1"
       sources."thenby-1.3.4"
       sources."to-regex-range-5.0.1"
-      sources."ts-node-10.9.1"
-      sources."tslib-2.6.2"
-      sources."typescript-5.3.2"
-      sources."undici-types-5.26.5"
+      sources."unicorn-magic-0.1.0"
       sources."universalify-2.0.1"
-      sources."v8-compile-cache-lib-3.0.1"
       sources."wrap-ansi-7.0.0"
       sources."y18n-5.0.8"
       sources."yaml-2.3.4"
       sources."yargs-17.7.2"
       sources."yargs-parser-21.1.1"
-      sources."yn-3.1.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -90312,7 +92210,7 @@ in
       sources."minimist-1.2.8"
       sources."mkdirp-classic-0.5.3"
       sources."napi-build-utils-1.0.2"
-      sources."node-abi-3.51.0"
+      sources."node-abi-3.54.0"
       sources."once-1.4.0"
       sources."pump-3.0.0"
       sources."rc-1.2.8"
@@ -90343,10 +92241,10 @@ in
   prettier = nodeEnv.buildNodePackage {
     name = "prettier";
     packageName = "prettier";
-    version = "3.1.0";
+    version = "3.1.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz";
-      sha512 = "TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==";
+      url = "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz";
+      sha512 = "22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -90361,27 +92259,20 @@ in
   prettier-plugin-toml = nodeEnv.buildNodePackage {
     name = "prettier-plugin-toml";
     packageName = "prettier-plugin-toml";
-    version = "1.0.0";
+    version = "2.0.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/prettier-plugin-toml/-/prettier-plugin-toml-1.0.0.tgz";
-      sha512 = "YMn4Fqy/ANHommZh61s5qqtpfcgPB00Ty890bFPr73B0HAy77zgyH89SvAK+NyPPx3AdM56a4Yo66LH9GPnuZw==";
+      url = "https://registry.npmjs.org/prettier-plugin-toml/-/prettier-plugin-toml-2.0.1.tgz";
+      sha512 = "99z1YOkViECHtXQjGIigd3talI/ybUI1zB3yniAwUrlWBXupNXThB1hM6bwSMUEj2/+tomTlMtT98F5t4s8IWA==";
     };
     dependencies = [
-      sources."@chevrotain/cst-dts-gen-11.0.3"
-      sources."@chevrotain/gast-11.0.3"
-      sources."@chevrotain/regexp-to-ast-11.0.3"
-      sources."@chevrotain/types-11.0.3"
-      sources."@chevrotain/utils-11.0.3"
-      sources."@toml-tools/lexer-1.0.0"
-      sources."@toml-tools/parser-1.0.0"
-      sources."chevrotain-11.0.3"
-      sources."lodash-es-4.17.21"
-      sources."prettier-3.1.0"
+      sources."@taplo/core-0.1.1"
+      sources."@taplo/lib-0.4.0-alpha.2"
+      sources."prettier-3.1.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
-      description = "TOML Prettier Plugin";
-      homepage = "https://github.com/un-ts/toml-tools/tree/master#readme";
+      description = "An opinionated `toml` formatter plugin for Prettier";
+      homepage = "https://github.com/un-ts/prettier/tree/master/packages/prettier";
       license = "MIT";
     };
     production = true;
@@ -90391,13 +92282,17 @@ in
   prisma = nodeEnv.buildNodePackage {
     name = "prisma";
     packageName = "prisma";
-    version = "5.6.0";
+    version = "5.7.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/prisma/-/prisma-5.6.0.tgz";
-      sha512 = "EEaccku4ZGshdr2cthYHhf7iyvCcXqwJDvnoQRAJg5ge2Tzpv0e2BaMCp+CbbDUwoVTzwgOap9Zp+d4jFa2O9A==";
+      url = "https://registry.npmjs.org/prisma/-/prisma-5.7.1.tgz";
+      sha512 = "ekho7ziH0WEJvC4AxuJz+ewRTMskrebPcrKuBwcNzVDniYxx+dXOGcorNeIb9VEMO5vrKzwNYvhD271Ui2jnNw==";
     };
     dependencies = [
-      sources."@prisma/engines-5.6.0"
+      sources."@prisma/debug-5.7.1"
+      sources."@prisma/engines-5.7.1"
+      sources."@prisma/engines-version-5.7.1-1.0ca5ccbcfa6bdc81c003cf549abe4269f59c41e5"
+      sources."@prisma/fetch-engine-5.7.1"
+      sources."@prisma/get-platform-5.7.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -90412,22 +92307,22 @@ in
   "@prisma/language-server" = nodeEnv.buildNodePackage {
     name = "_at_prisma_slash_language-server";
     packageName = "@prisma/language-server";
-    version = "5.6.0";
+    version = "5.7.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@prisma/language-server/-/language-server-5.6.0.tgz";
-      sha512 = "SmDWr8K6UoX7v1NHngHJS4mnhp7QWQ7ahN1Yrib0lBXy91I64aBqERBKEsmGIYaFc/qybWEoX4UtsboH7bQ6jw==";
+      url = "https://registry.npmjs.org/@prisma/language-server/-/language-server-5.7.1.tgz";
+      sha512 = "mUg+W3CaTLhEFLYA4sm0nHA2ojnPC3vySU50XJXPJk0owaZBJK6243ujXuRnFjzv4EFvH0R3FdJFw/nIWQfEEA==";
     };
     dependencies = [
       sources."@ampproject/remapping-2.2.1"
-      sources."@babel/code-frame-7.23.4"
-      sources."@babel/compat-data-7.23.3"
-      (sources."@babel/core-7.23.3" // {
+      sources."@babel/code-frame-7.23.5"
+      sources."@babel/compat-data-7.23.5"
+      (sources."@babel/core-7.23.7" // {
         dependencies = [
           sources."convert-source-map-2.0.0"
         ];
       })
-      sources."@babel/generator-7.23.4"
-      sources."@babel/helper-compilation-targets-7.22.15"
+      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"
@@ -90437,13 +92332,13 @@ in
       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.22.15"
-      sources."@babel/helpers-7.23.4"
+      sources."@babel/helper-validator-option-7.23.5"
+      sources."@babel/helpers-7.23.7"
       sources."@babel/highlight-7.23.4"
-      sources."@babel/parser-7.23.4"
+      sources."@babel/parser-7.23.6"
       sources."@babel/template-7.22.15"
-      sources."@babel/traverse-7.23.4"
-      sources."@babel/types-7.23.4"
+      sources."@babel/traverse-7.23.7"
+      sources."@babel/types-7.23.6"
       sources."@istanbuljs/load-nyc-config-1.1.0"
       sources."@istanbuljs/schema-0.1.3"
       sources."@jridgewell/gen-mapping-0.3.3"
@@ -90451,7 +92346,7 @@ in
       sources."@jridgewell/set-array-1.1.2"
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@jridgewell/trace-mapping-0.3.20"
-      sources."@prisma/prisma-schema-wasm-5.6.0-32.e95e739751f42d8ca026f6b910f5a2dc5adeaeee"
+      sources."@prisma/prisma-schema-wasm-5.7.1-1.0ca5ccbcfa6bdc81c003cf549abe4269f59c41e5"
       sources."@types/js-levenshtein-1.1.3"
       sources."aggregate-error-3.1.0"
       sources."ansi-regex-5.0.1"
@@ -90461,10 +92356,10 @@ in
       sources."argparse-1.0.10"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."browserslist-4.22.1"
+      sources."browserslist-4.22.2"
       sources."caching-transform-4.0.0"
       sources."camelcase-5.3.1"
-      sources."caniuse-lite-1.0.30001563"
+      sources."caniuse-lite-1.0.30001576"
       sources."chalk-2.4.2"
       sources."clean-stack-2.2.0"
       sources."cliui-6.0.0"
@@ -90477,7 +92372,7 @@ in
       sources."debug-4.3.4"
       sources."decamelize-1.2.0"
       sources."default-require-extensions-3.0.1"
-      sources."electron-to-chromium-1.4.589"
+      sources."electron-to-chromium-1.4.623"
       sources."emoji-regex-8.0.0"
       sources."es6-error-4.1.1"
       sources."escalade-3.1.1"
@@ -90535,7 +92430,7 @@ in
       sources."minimatch-3.1.2"
       sources."ms-2.1.2"
       sources."node-preload-0.2.1"
-      sources."node-releases-2.0.13"
+      sources."node-releases-2.0.14"
       sources."nyc-15.1.0"
       sources."once-1.4.0"
       sources."p-limit-2.3.0"
@@ -90648,7 +92543,7 @@ in
       sources."jackspeak-2.3.6"
       sources."keypress-0.2.1"
       sources."lodash-4.17.21"
-      sources."lru-cache-10.0.3"
+      sources."lru-cache-10.1.0"
       sources."minimatch-3.0.8"
       sources."minipass-7.0.4"
       sources."once-1.4.0"
@@ -90874,7 +92769,7 @@ in
       sources."node-static-0.7.11"
       sources."object-inspect-1.13.1"
       sources."object-keys-1.1.1"
-      sources."object.assign-4.1.4"
+      sources."object.assign-4.1.5"
       sources."once-1.4.0"
       (sources."optimist-0.6.1" // {
         dependencies = [
@@ -91030,10 +92925,10 @@ in
   purs-tidy = nodeEnv.buildNodePackage {
     name = "purs-tidy";
     packageName = "purs-tidy";
-    version = "0.10.0";
+    version = "0.10.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/purs-tidy/-/purs-tidy-0.10.0.tgz";
-      sha512 = "ULbJfBHRngczYwcOzugytRiNy+Guy2VXoAG1jMtGaSFEaUZk1lZkKU11t8jIZTrDdOrkgqlWCZLi3mfcHvdimA==";
+      url = "https://registry.npmjs.org/purs-tidy/-/purs-tidy-0.10.1.tgz";
+      sha512 = "i1QvMaDEaZXv/GWZNFWs5CISiBOkwPhG4D1S4Rw6zUCGaE+NQNWTjvwY21rifynGa2N2TiBJRC61LkORbmGxrA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -91066,10 +92961,10 @@ in
   pyright = nodeEnv.buildNodePackage {
     name = "pyright";
     packageName = "pyright";
-    version = "1.1.336";
+    version = "1.1.344";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pyright/-/pyright-1.1.336.tgz";
-      sha512 = "PE/ArjnfS5dKon05zAX2eMzSQmu4ftCITzLqKgFKuwLIRnKJ+l4QGwkCKtYvWoXKm1fWr+TjqYpdRejrYkolyg==";
+      url = "https://registry.npmjs.org/pyright/-/pyright-1.1.344.tgz";
+      sha512 = "K0nhCxUqoACGgyZO1VfWSx5NkT5VTe0VKblLu09RMPmrzdblZi8DbfU6Hy9OXMSe2sBbAEtK685QRVi05V98tA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -91091,8 +92986,8 @@ in
     };
     dependencies = [
       sources."@types/prop-types-15.7.11"
-      sources."@types/react-18.2.38"
-      sources."@types/scheduler-0.16.7"
+      sources."@types/react-18.2.47"
+      sources."@types/scheduler-0.16.8"
       sources."@types/yoga-layout-1.9.2"
       sources."ansi-escapes-4.3.2"
       sources."ansi-regex-5.0.1"
@@ -91109,7 +93004,7 @@ in
       sources."cli-truncate-2.1.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."csstype-3.1.2"
+      sources."csstype-3.1.3"
       sources."currently-unhandled-0.4.1"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.1" // {
@@ -91229,10 +93124,10 @@ in
   "reveal.js" = nodeEnv.buildNodePackage {
     name = "reveal.js";
     packageName = "reveal.js";
-    version = "5.0.2";
+    version = "5.0.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/reveal.js/-/reveal.js-5.0.2.tgz";
-      sha512 = "G5dhsr/2wormdrYPtZBfRamvnPrHc/8TtYVH3EpIzfMyKSiTprFwn61nFZbcmeK4iKKdLq2MMiiMNqlRmkBU4A==";
+      url = "https://registry.npmjs.org/reveal.js/-/reveal.js-5.0.4.tgz";
+      sha512 = "480pVhre9SXWuE4QbDwG0nPrip3TkifflqaKQWF8Ynf4iYIUBfgu5leeMso0srubQsZQ+G2OzktAfAkrvBY0Ww==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -91268,7 +93163,7 @@ in
       sources."is-fullwidth-code-point-3.0.0"
       sources."isexe-2.0.0"
       sources."jackspeak-2.3.6"
-      sources."lru-cache-10.0.3"
+      sources."lru-cache-10.1.0"
       sources."minimatch-9.0.3"
       sources."minipass-7.0.4"
       sources."path-key-3.1.1"
@@ -91313,11 +93208,14 @@ in
   rollup = nodeEnv.buildNodePackage {
     name = "rollup";
     packageName = "rollup";
-    version = "4.5.0";
+    version = "4.9.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/rollup/-/rollup-4.5.0.tgz";
-      sha512 = "41xsWhzxqjMDASCxH5ibw1mXk+3c4TNI2UjKbLxe6iEzrSQnqOzmmK8/3mufCPbzHNJ2e04Fc1ddI35hHy+8zg==";
+      url = "https://registry.npmjs.org/rollup/-/rollup-4.9.4.tgz";
+      sha512 = "2ztU7pY/lrQyXSCnnoU4ICjT/tCG9cdH3/G25ERqE3Lst6vl2BCM5hL2Nw+sslAvAf+ccKsAq1SkKQALyqhR7g==";
     };
+    dependencies = [
+      sources."@types/estree-1.0.5"
+    ];
     buildInputs = globalBuildInputs;
     meta = {
       description = "Next-generation ES module bundler";
@@ -91337,15 +93235,15 @@ in
       sources."@aashutoshrathi/word-wrap-1.2.6"
       sources."@eslint-community/eslint-utils-4.4.0"
       sources."@eslint-community/regexpp-4.10.0"
-      (sources."@eslint/eslintrc-2.1.3" // {
+      (sources."@eslint/eslintrc-2.1.4" // {
         dependencies = [
           sources."brace-expansion-1.1.11"
           sources."minimatch-3.1.2"
           sources."strip-json-comments-3.1.1"
         ];
       })
-      sources."@eslint/js-8.54.0"
-      sources."@hpcc-js/wasm-2.14.1"
+      sources."@eslint/js-8.56.0"
+      sources."@hpcc-js/wasm-2.15.3"
       (sources."@humanwhocodes/config-array-0.11.13" // {
         dependencies = [
           sources."brace-expansion-1.1.11"
@@ -91363,16 +93261,20 @@ in
       sources."@types/node-16.11.68"
       sources."@types/semver-7.5.6"
       sources."@types/vscode-1.75.1"
-      sources."@typescript-eslint/eslint-plugin-6.12.0"
-      sources."@typescript-eslint/parser-6.12.0"
-      sources."@typescript-eslint/scope-manager-6.12.0"
-      sources."@typescript-eslint/type-utils-6.12.0"
-      sources."@typescript-eslint/types-6.12.0"
-      sources."@typescript-eslint/typescript-estree-6.12.0"
-      sources."@typescript-eslint/utils-6.12.0"
-      sources."@typescript-eslint/visitor-keys-6.12.0"
+      sources."@typescript-eslint/eslint-plugin-6.18.0"
+      sources."@typescript-eslint/parser-6.18.0"
+      sources."@typescript-eslint/scope-manager-6.18.0"
+      sources."@typescript-eslint/type-utils-6.18.0"
+      sources."@typescript-eslint/types-6.18.0"
+      (sources."@typescript-eslint/typescript-estree-6.18.0" // {
+        dependencies = [
+          sources."minimatch-9.0.3"
+        ];
+      })
+      sources."@typescript-eslint/utils-6.18.0"
+      sources."@typescript-eslint/visitor-keys-6.18.0"
       sources."@ungap/structured-clone-1.2.0"
-      sources."@vscode/test-electron-2.3.6"
+      sources."@vscode/test-electron-2.3.8"
       (sources."@vscode/vsce-2.22.0" // {
         dependencies = [
           sources."brace-expansion-1.1.11"
@@ -91380,7 +93282,7 @@ in
           sources."minimatch-3.1.2"
         ];
       })
-      sources."acorn-8.11.2"
+      sources."acorn-8.11.3"
       sources."acorn-jsx-5.3.2"
       sources."agent-base-6.0.2"
       sources."ajv-6.12.6"
@@ -91474,7 +93376,7 @@ in
       sources."entities-4.5.0"
       sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
-      (sources."eslint-8.54.0" // {
+      (sources."eslint-8.56.0" // {
         dependencies = [
           sources."brace-expansion-1.1.11"
           sources."chalk-4.1.2"
@@ -91498,14 +93400,14 @@ in
       sources."fast-glob-3.3.2"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."fd-slicer-1.1.0"
       sources."file-entry-cache-6.0.1"
       sources."fill-range-7.0.1"
       sources."find-up-5.0.0"
       sources."flat-cache-3.2.0"
       sources."flatted-3.2.9"
-      sources."follow-redirects-1.15.3"
+      sources."follow-redirects-1.15.4"
       sources."fs-constants-1.0.0"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.2"
@@ -91519,7 +93421,7 @@ in
         ];
       })
       sources."glob-parent-5.1.2"
-      sources."globals-13.23.0"
+      sources."globals-13.24.0"
       sources."globby-11.1.0"
       sources."gopd-1.0.1"
       sources."graphemer-1.4.0"
@@ -91582,7 +93484,7 @@ in
       sources."mute-stream-0.0.8"
       sources."napi-build-utils-1.0.2"
       sources."natural-compare-1.4.0"
-      sources."node-abi-3.51.0"
+      sources."node-abi-3.54.0"
       sources."node-addon-api-4.3.0"
       sources."nth-check-2.1.1"
       sources."object-inspect-1.13.1"
@@ -91612,7 +93514,7 @@ in
       sources."picomatch-2.3.1"
       sources."prebuild-install-7.1.1"
       sources."prelude-ls-1.2.1"
-      sources."prettier-3.1.0"
+      sources."prettier-3.1.1"
       sources."process-nextick-args-2.0.1"
       sources."pump-3.0.0"
       sources."punycode-2.3.1"
@@ -91661,7 +93563,7 @@ in
       sources."type-check-0.4.0"
       sources."type-fest-0.20.2"
       sources."typed-rest-client-1.8.11"
-      sources."typescript-5.3.2"
+      sources."typescript-5.3.3"
       sources."uc.micro-1.0.6"
       sources."underscore-1.13.6"
       sources."uri-js-4.4.1"
@@ -91694,10 +93596,10 @@ in
   sass = nodeEnv.buildNodePackage {
     name = "sass";
     packageName = "sass";
-    version = "1.69.5";
+    version = "1.69.7";
     src = fetchurl {
-      url = "https://registry.npmjs.org/sass/-/sass-1.69.5.tgz";
-      sha512 = "qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==";
+      url = "https://registry.npmjs.org/sass/-/sass-1.69.7.tgz";
+      sha512 = "rzj2soDeZ8wtE2egyLXgOOHQvaC2iosZrkF6v3EUG+tBwEvhqUCzm0VP3k9gHF9LXbSrRhT5SksoI56Iw8NPnQ==";
     };
     dependencies = [
       sources."anymatch-3.1.3"
@@ -92125,10 +94027,10 @@ in
   sloc = nodeEnv.buildNodePackage {
     name = "sloc";
     packageName = "sloc";
-    version = "0.3.0";
+    version = "0.3.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/sloc/-/sloc-0.3.0.tgz";
-      sha512 = "fKmMA8q5OyeZpFCxBa3FuFywQcziQXKBw9B8jwDJ/Ra3H/pkZpQJl9g5s3MIjUo2jwUDHUnaxXgVXObXFdiJBw==";
+      url = "https://registry.npmjs.org/sloc/-/sloc-0.3.1.tgz";
+      sha512 = "ImBLf1q0R7OHUqAVVjUkW8q1qqGL3hI4ThWbKd8EMe1l1gGmxu062zSHyD/kz8B0Wii5boVYJ3/ZnFatpikBkw==";
     };
     dependencies = [
       sources."async-3.2.5"
@@ -92304,16 +94206,16 @@ in
   "socket.io" = nodeEnv.buildNodePackage {
     name = "socket.io";
     packageName = "socket.io";
-    version = "4.7.2";
+    version = "4.7.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/socket.io/-/socket.io-4.7.2.tgz";
-      sha512 = "bvKVS29/I5fl2FGLNHuXlQaUH/BlzX1IN6S+NKLNZpBsPZIDH+90eQmCs2Railn4YUiww4SzUedJ6+uzwFnKLw==";
+      url = "https://registry.npmjs.org/socket.io/-/socket.io-4.7.3.tgz";
+      sha512 = "SE+UIQXBQE+GPG2oszWMlsEmWtHVqw/h1VrYJGK5/MC7CH5p58N448HwIrtREcvR4jfdOJAY4ieQfxMr55qbbw==";
     };
     dependencies = [
       sources."@socket.io/component-emitter-3.1.0"
       sources."@types/cookie-0.4.1"
       sources."@types/cors-2.8.17"
-      sources."@types/node-20.9.3"
+      sources."@types/node-20.10.7"
       sources."accepts-1.3.8"
       sources."base64id-2.0.0"
       sources."bufferutil-4.0.8"
@@ -92326,7 +94228,7 @@ in
       sources."mime-types-2.1.35"
       sources."ms-2.1.2"
       sources."negotiator-0.6.3"
-      sources."node-gyp-build-4.7.0"
+      sources."node-gyp-build-4.8.0"
       sources."object-assign-4.1.1"
       sources."socket.io-adapter-2.5.2"
       sources."socket.io-parser-4.2.4"
@@ -92354,7 +94256,7 @@ in
       sha512 = "CIlLQsG8ffQ2B+2A/s3rXiaTXDWlEKBMya64ajzDcpDZ8bpB5dOyznWQJB+lyUn6/lJ8P+5xe4jKO60S6yLoMw==";
     };
     dependencies = [
-      (sources."@babel/code-frame-7.23.4" // {
+      (sources."@babel/code-frame-7.23.5" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -92389,7 +94291,7 @@ in
       sources."camelcase-keys-7.0.2"
       sources."chalk-4.1.2"
       sources."cli-cursor-4.0.0"
-      sources."cli-spinners-2.9.1"
+      sources."cli-spinners-2.9.2"
       sources."clone-1.0.4"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
@@ -92520,10 +94422,10 @@ in
   sql-formatter = nodeEnv.buildNodePackage {
     name = "sql-formatter";
     packageName = "sql-formatter";
-    version = "14.0.0";
+    version = "15.0.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/sql-formatter/-/sql-formatter-14.0.0.tgz";
-      sha512 = "VcHYMRvZqg3RNjjxNB/puT9O1hR5QLXTvgTaBtxXcvmRQwSnH9M+oW2Ti+uFuVVU8HoNlOjU2uKHv8c0FQNsdQ==";
+      url = "https://registry.npmjs.org/sql-formatter/-/sql-formatter-15.0.2.tgz";
+      sha512 = "B8FTRc1dhb36lfuwSdiLhwrhkvT3PU/3es7YDPPQBOhbGHdXKlweAXTRS+QfCWk06ufAh118yFja6NcukBS4gg==";
     };
     dependencies = [
       sources."argparse-2.0.1"
@@ -92567,18 +94469,18 @@ in
   svelte-check = nodeEnv.buildNodePackage {
     name = "svelte-check";
     packageName = "svelte-check";
-    version = "3.6.0";
+    version = "3.6.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/svelte-check/-/svelte-check-3.6.0.tgz";
-      sha512 = "8VfqhfuRJ1sKW+o8isH2kPi0RhjXH1nNsIbCFGyoUHG+ZxVxHYRKcb+S8eaL/1tyj3VGvWYx3Y5+oCUsJgnzcw==";
+      url = "https://registry.npmjs.org/svelte-check/-/svelte-check-3.6.2.tgz";
+      sha512 = "E6iFh4aUCGJLRz6QZXH3gcN/VFfkzwtruWSRmlKrLWQTiO6VzLsivR6q02WYLGNAGecV3EocqZuCDrC2uttZ0g==";
     };
     dependencies = [
       sources."@ampproject/remapping-2.2.1"
-      sources."@babel/code-frame-7.23.4"
-      sources."@babel/compat-data-7.23.3"
-      sources."@babel/core-7.23.3"
-      sources."@babel/generator-7.23.4"
-      sources."@babel/helper-compilation-targets-7.22.15"
+      sources."@babel/code-frame-7.23.5"
+      sources."@babel/compat-data-7.23.5"
+      sources."@babel/core-7.23.7"
+      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"
@@ -92588,18 +94490,13 @@ in
       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.22.15"
-      sources."@babel/helpers-7.23.4"
+      sources."@babel/helper-validator-option-7.23.5"
+      sources."@babel/helpers-7.23.7"
       sources."@babel/highlight-7.23.4"
-      sources."@babel/parser-7.23.4"
+      sources."@babel/parser-7.23.6"
       sources."@babel/template-7.22.15"
-      sources."@babel/traverse-7.23.4"
-      sources."@babel/types-7.23.4"
-      (sources."@cspotcode/source-map-support-0.8.1" // {
-        dependencies = [
-          sources."@jridgewell/trace-mapping-0.3.9"
-        ];
-      })
+      sources."@babel/traverse-7.23.7"
+      sources."@babel/types-7.23.6"
       sources."@jridgewell/gen-mapping-0.3.3"
       sources."@jridgewell/resolve-uri-3.1.1"
       sources."@jridgewell/set-array-1.1.2"
@@ -92608,24 +94505,16 @@ in
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@swc/core-1.3.99"
-      sources."@swc/counter-0.1.2"
-      sources."@swc/helpers-0.5.3"
-      sources."@swc/types-0.1.5"
-      sources."@swc/wasm-1.3.99"
-      sources."@tsconfig/node10-1.0.9"
-      sources."@tsconfig/node12-1.0.11"
-      sources."@tsconfig/node14-1.0.3"
-      sources."@tsconfig/node16-1.0.4"
       sources."@types/estree-1.0.5"
-      sources."@types/node-20.9.3"
       sources."@types/pug-2.0.10"
-      sources."acorn-8.11.2"
-      sources."acorn-typescript-1.4.11"
-      sources."acorn-walk-8.3.0"
+      sources."acorn-7.4.1"
+      (sources."acorn-typescript-1.4.13" // {
+        dependencies = [
+          sources."acorn-8.11.3"
+        ];
+      })
       sources."ansi-styles-3.2.1"
       sources."anymatch-3.1.3"
-      sources."arg-4.1.3"
       sources."aria-query-5.3.0"
       sources."asap-2.0.6"
       sources."assert-never-1.2.1"
@@ -92636,11 +94525,11 @@ in
       sources."binary-extensions-2.2.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."browserslist-4.22.1"
+      sources."browserslist-4.22.2"
       sources."buffer-crc32-0.2.13"
       sources."call-bind-1.0.5"
       sources."callsites-3.1.0"
-      sources."caniuse-lite-1.0.30001563"
+      sources."caniuse-lite-1.0.30001576"
       sources."chalk-2.4.2"
       sources."character-parser-2.2.0"
       sources."chokidar-3.5.3"
@@ -92651,24 +94540,22 @@ in
       sources."constantinople-4.0.1"
       sources."convert-source-map-2.0.0"
       sources."copy-anything-2.0.6"
-      sources."create-require-1.1.1"
       sources."css-3.0.0"
       sources."debug-4.3.4"
       sources."decode-uri-component-0.2.2"
       sources."define-data-property-1.1.1"
       sources."dequal-2.0.3"
       sources."detect-indent-6.1.0"
-      sources."diff-4.0.2"
       sources."doctypes-1.1.0"
-      sources."electron-to-chromium-1.4.589"
+      sources."electron-to-chromium-1.4.623"
       sources."errno-0.1.8"
       sources."es6-promise-3.3.1"
       sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
       sources."esm-env-1.0.0"
-      sources."esrap-1.1.1"
+      sources."esrap-1.2.1"
       sources."fast-glob-3.3.2"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."fill-range-7.0.1"
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.3"
@@ -92694,11 +94581,7 @@ in
       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" // {
-        dependencies = [
-          sources."acorn-7.4.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"
@@ -92706,6 +94589,7 @@ in
       sources."is-reference-3.0.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"
@@ -92715,13 +94599,12 @@ in
       sources."lilconfig-3.0.0"
       sources."locate-character-3.0.0"
       sources."lru-cache-5.1.1"
-      sources."magic-string-0.27.0"
+      sources."magic-string-0.30.5"
       (sources."make-dir-2.1.0" // {
         dependencies = [
           sources."semver-5.7.2"
         ];
       })
-      sources."make-error-1.3.6"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.5"
       sources."mime-1.6.0"
@@ -92732,12 +94615,8 @@ in
       sources."mri-1.2.0"
       sources."ms-2.1.2"
       sources."nanoid-3.3.7"
-      (sources."needle-3.2.0" // {
-        dependencies = [
-          sources."debug-3.2.7"
-        ];
-      })
-      sources."node-releases-2.0.13"
+      sources."needle-3.3.1"
+      sources."node-releases-2.0.14"
       sources."normalize-path-3.0.0"
       sources."object-assign-4.1.1"
       sources."once-1.4.0"
@@ -92748,8 +94627,8 @@ in
       sources."picocolors-1.0.0"
       sources."picomatch-2.3.1"
       sources."pify-4.0.1"
-      sources."postcss-8.4.31"
-      sources."postcss-load-config-4.0.2"
+      sources."postcss-8.4.33"
+      sources."postcss-load-config-5.0.2"
       sources."promise-7.3.1"
       sources."prr-1.0.1"
       sources."pug-3.0.2"
@@ -92774,7 +94653,7 @@ in
       sources."sade-1.8.1"
       sources."safer-buffer-2.1.2"
       sources."sander-0.5.1"
-      sources."sass-1.69.5"
+      sources."sass-1.69.7"
       sources."sax-1.3.0"
       sources."semver-6.3.1"
       sources."set-function-length-1.1.1"
@@ -92795,27 +94674,23 @@ in
       sources."sugarss-4.0.1"
       sources."supports-color-5.5.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
-      (sources."svelte-5.0.0-next.9" // {
+      (sources."svelte-5.0.0-next.29" // {
         dependencies = [
-          sources."magic-string-0.30.5"
+          sources."acorn-8.11.3"
         ];
       })
-      sources."svelte-preprocess-5.1.0"
+      sources."svelte-preprocess-5.1.3"
       sources."to-fast-properties-2.0.0"
       sources."to-regex-range-5.0.1"
       sources."token-stream-1.0.0"
-      sources."ts-node-10.9.1"
       sources."tslib-2.6.2"
-      sources."typescript-5.3.2"
-      sources."undici-types-5.26.5"
+      sources."typescript-5.3.3"
       sources."update-browserslist-db-1.0.13"
-      sources."v8-compile-cache-lib-3.0.1"
       sources."void-elements-3.1.0"
       sources."with-7.0.2"
       sources."wrappy-1.0.2"
       sources."yallist-3.1.1"
       sources."yaml-2.3.4"
-      sources."yn-3.1.1"
       sources."zimmerframe-1.1.0"
     ];
     buildInputs = globalBuildInputs;
@@ -92831,18 +94706,18 @@ in
   svelte-language-server = nodeEnv.buildNodePackage {
     name = "svelte-language-server";
     packageName = "svelte-language-server";
-    version = "0.15.22";
+    version = "0.16.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/svelte-language-server/-/svelte-language-server-0.15.22.tgz";
-      sha512 = "puh1lEdc5TXC2bgpcJyn9p3x8gCUIqzkGBxXQWYfUtLNjFBeGTAOqY4yosQteHGSNuoWVuNrPpoXV0ILA+NB3g==";
+      url = "https://registry.npmjs.org/svelte-language-server/-/svelte-language-server-0.16.1.tgz";
+      sha512 = "nbP0fbqvm1HQ0oOyJDdb3OUeEpvgG5aOpa1eNaWJaVQ7+94ie6H8dv5+Zx9lkfV66ADjvEDS9tcTAM4jWTS+1Q==";
     };
     dependencies = [
       sources."@ampproject/remapping-2.2.1"
-      sources."@babel/code-frame-7.23.4"
-      sources."@babel/compat-data-7.23.3"
-      sources."@babel/core-7.23.3"
-      sources."@babel/generator-7.23.4"
-      sources."@babel/helper-compilation-targets-7.22.15"
+      sources."@babel/code-frame-7.23.5"
+      sources."@babel/compat-data-7.23.5"
+      sources."@babel/core-7.23.7"
+      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"
@@ -92852,18 +94727,13 @@ in
       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.22.15"
-      sources."@babel/helpers-7.23.4"
+      sources."@babel/helper-validator-option-7.23.5"
+      sources."@babel/helpers-7.23.7"
       sources."@babel/highlight-7.23.4"
-      sources."@babel/parser-7.23.4"
+      sources."@babel/parser-7.23.6"
       sources."@babel/template-7.22.15"
-      sources."@babel/traverse-7.23.4"
-      sources."@babel/types-7.23.4"
-      (sources."@cspotcode/source-map-support-0.8.1" // {
-        dependencies = [
-          sources."@jridgewell/trace-mapping-0.3.9"
-        ];
-      })
+      sources."@babel/traverse-7.23.7"
+      sources."@babel/types-7.23.6"
       sources."@emmetio/abbreviation-2.3.3"
       sources."@emmetio/css-abbreviation-2.1.8"
       sources."@emmetio/scanner-1.0.4"
@@ -92875,28 +94745,16 @@ in
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@swc/core-1.3.99"
-      sources."@swc/counter-0.1.2"
-      sources."@swc/helpers-0.5.3"
-      sources."@swc/types-0.1.5"
-      sources."@swc/wasm-1.3.99"
-      sources."@tsconfig/node10-1.0.9"
-      sources."@tsconfig/node12-1.0.11"
-      sources."@tsconfig/node14-1.0.3"
-      sources."@tsconfig/node16-1.0.4"
-      sources."@types/node-20.9.3"
       sources."@types/pug-2.0.10"
-      (sources."@vscode/emmet-helper-2.8.4" // {
+      (sources."@vscode/emmet-helper-2.9.2" // {
         dependencies = [
           sources."vscode-uri-2.1.2"
         ];
       })
       sources."@vscode/l10n-0.0.16"
-      sources."acorn-8.11.2"
-      sources."acorn-walk-8.3.0"
+      sources."acorn-7.4.1"
       sources."ansi-styles-3.2.1"
       sources."anymatch-3.1.3"
-      sources."arg-4.1.3"
       sources."asap-2.0.6"
       sources."assert-never-1.2.1"
       sources."atob-2.1.2"
@@ -92905,10 +94763,10 @@ in
       sources."binary-extensions-2.2.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."browserslist-4.22.1"
+      sources."browserslist-4.22.2"
       sources."buffer-crc32-0.2.13"
       sources."call-bind-1.0.5"
-      sources."caniuse-lite-1.0.30001563"
+      sources."caniuse-lite-1.0.30001576"
       sources."chalk-2.4.2"
       sources."character-parser-2.2.0"
       sources."chokidar-3.5.3"
@@ -92919,16 +94777,14 @@ in
       sources."constantinople-4.0.1"
       sources."convert-source-map-2.0.0"
       sources."copy-anything-2.0.6"
-      sources."create-require-1.1.1"
       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.1"
       sources."detect-indent-6.1.0"
-      sources."diff-4.0.2"
       sources."doctypes-1.1.0"
-      sources."electron-to-chromium-1.4.589"
+      sources."electron-to-chromium-1.4.623"
       sources."emmet-2.4.6"
       sources."errno-0.1.8"
       sources."es6-promise-3.3.1"
@@ -92936,7 +94792,7 @@ in
       sources."escape-string-regexp-1.0.5"
       sources."estree-walker-2.0.2"
       sources."fast-glob-3.3.2"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."fill-range-7.0.1"
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.3"
@@ -92961,17 +94817,14 @@ in
       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" // {
-        dependencies = [
-          sources."acorn-7.4.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"
@@ -92983,13 +94836,12 @@ in
       sources."lodash-4.17.21"
       sources."lower-case-2.0.2"
       sources."lru-cache-5.1.1"
-      sources."magic-string-0.27.0"
+      sources."magic-string-0.30.5"
       (sources."make-dir-2.1.0" // {
         dependencies = [
           sources."semver-5.7.2"
         ];
       })
-      sources."make-error-1.3.6"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.5"
       sources."mime-1.6.0"
@@ -92999,13 +94851,9 @@ in
       sources."mkdirp-0.5.6"
       sources."ms-2.1.2"
       sources."nanoid-3.3.7"
-      (sources."needle-3.2.0" // {
-        dependencies = [
-          sources."debug-3.2.7"
-        ];
-      })
+      sources."needle-3.3.1"
       sources."no-case-3.0.4"
-      sources."node-releases-2.0.13"
+      sources."node-releases-2.0.14"
       sources."normalize-path-3.0.0"
       sources."object-assign-4.1.1"
       sources."once-1.4.0"
@@ -93016,10 +94864,10 @@ in
       sources."picocolors-1.0.0"
       sources."picomatch-2.3.1"
       sources."pify-4.0.1"
-      sources."postcss-8.4.31"
-      sources."postcss-load-config-4.0.2"
-      sources."prettier-2.8.8"
-      sources."prettier-plugin-svelte-2.10.1"
+      sources."postcss-8.4.33"
+      sources."postcss-load-config-5.0.2"
+      sources."prettier-3.1.1"
+      sources."prettier-plugin-svelte-3.1.2"
       sources."promise-7.3.1"
       sources."prr-1.0.1"
       sources."pug-3.0.2"
@@ -93042,7 +94890,7 @@ in
       sources."run-parallel-1.2.0"
       sources."safer-buffer-2.1.2"
       sources."sander-0.5.1"
-      sources."sass-1.69.5"
+      sources."sass-1.69.7"
       sources."sax-1.3.0"
       sources."semver-6.3.1"
       sources."set-function-length-1.1.1"
@@ -93064,24 +94912,21 @@ in
       sources."supports-color-5.5.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
       sources."svelte-3.59.2"
-      sources."svelte-preprocess-5.1.0"
-      sources."svelte2tsx-0.6.25"
+      sources."svelte-preprocess-5.1.3"
+      sources."svelte2tsx-0.6.27"
       sources."to-fast-properties-2.0.0"
       sources."to-regex-range-5.0.1"
       sources."token-stream-1.0.0"
-      sources."ts-node-10.9.1"
       sources."tslib-2.6.2"
-      sources."typescript-5.3.2"
-      sources."undici-types-5.26.5"
+      sources."typescript-5.3.3"
       sources."update-browserslist-db-1.0.13"
-      sources."v8-compile-cache-lib-3.0.1"
       sources."void-elements-3.1.0"
-      (sources."vscode-css-languageservice-6.2.10" // {
+      (sources."vscode-css-languageservice-6.2.11" // {
         dependencies = [
           sources."vscode-languageserver-types-3.17.5"
         ];
       })
-      (sources."vscode-html-languageservice-5.0.7" // {
+      (sources."vscode-html-languageservice-5.1.1" // {
         dependencies = [
           sources."vscode-languageserver-types-3.17.5"
         ];
@@ -93091,13 +94936,11 @@ in
       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.3.4"
-      sources."yn-3.1.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -93112,10 +94955,10 @@ in
   svgo = nodeEnv.buildNodePackage {
     name = "svgo";
     packageName = "svgo";
-    version = "3.0.4";
+    version = "3.2.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/svgo/-/svgo-3.0.4.tgz";
-      sha512 = "T+Xul3JwuJ6VGXKo/p2ndqx1ibxNKnLTvRc1ZTWKCfyKS/GgNjRZcYsK84fxTsy/izr91g/Rwx6fGnVgaFSI5g==";
+      url = "https://registry.npmjs.org/svgo/-/svgo-3.2.0.tgz";
+      sha512 = "4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==";
     };
     dependencies = [
       sources."@trysound/sax-0.2.0"
@@ -93153,14 +94996,15 @@ in
   tailwindcss = nodeEnv.buildNodePackage {
     name = "tailwindcss";
     packageName = "tailwindcss";
-    version = "3.3.5";
+    version = "3.4.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.5.tgz";
-      sha512 = "5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA==";
+      url = "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz";
+      sha512 = "qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==";
     };
     dependencies = [
       sources."@alloc/quick-lru-5.2.0"
       sources."@cspotcode/source-map-support-0.8.1"
+      sources."@isaacs/cliui-8.0.2"
       sources."@jridgewell/gen-mapping-0.3.3"
       sources."@jridgewell/resolve-uri-3.1.1"
       sources."@jridgewell/set-array-1.1.2"
@@ -93169,24 +95013,26 @@ in
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@swc/core-1.3.99"
+      sources."@swc/core-1.3.102"
       sources."@swc/counter-0.1.2"
       sources."@swc/helpers-0.5.3"
       sources."@swc/types-0.1.5"
-      sources."@swc/wasm-1.3.99"
+      sources."@swc/wasm-1.3.102"
       sources."@tsconfig/node10-1.0.9"
       sources."@tsconfig/node12-1.0.11"
       sources."@tsconfig/node14-1.0.3"
       sources."@tsconfig/node16-1.0.4"
-      sources."@types/node-20.9.3"
-      sources."acorn-8.11.2"
-      sources."acorn-walk-8.3.0"
+      sources."@types/node-20.10.7"
+      sources."acorn-8.11.3"
+      sources."acorn-walk-8.3.1"
+      sources."ansi-regex-5.0.1"
+      sources."ansi-styles-6.2.1"
       sources."any-promise-1.3.0"
       sources."anymatch-3.1.3"
       sources."arg-5.0.2"
       sources."balanced-match-1.0.2"
       sources."binary-extensions-2.2.0"
-      sources."brace-expansion-1.1.11"
+      sources."brace-expansion-2.0.1"
       sources."braces-3.0.2"
       sources."camelcase-css-2.0.1"
       (sources."chokidar-3.5.3" // {
@@ -93194,53 +95040,60 @@ in
           sources."glob-parent-5.1.2"
         ];
       })
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
       sources."commander-4.1.1"
-      sources."concat-map-0.0.1"
       sources."create-require-1.1.1"
+      sources."cross-spawn-7.0.3"
       sources."cssesc-3.0.0"
       sources."didyoumean-1.2.2"
       sources."diff-4.0.2"
       sources."dlv-1.1.3"
+      sources."eastasianwidth-0.2.0"
+      sources."emoji-regex-9.2.2"
       (sources."fast-glob-3.3.2" // {
         dependencies = [
           sources."glob-parent-5.1.2"
         ];
       })
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."fill-range-7.0.1"
-      sources."fs.realpath-1.0.0"
+      sources."foreground-child-3.1.1"
       sources."fsevents-2.3.3"
       sources."function-bind-1.1.2"
-      sources."glob-7.1.6"
+      sources."glob-10.3.10"
       sources."glob-parent-6.0.2"
       sources."hasown-2.0.0"
-      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-extglob-2.1.1"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
       sources."is-number-7.0.0"
+      sources."isexe-2.0.0"
+      sources."jackspeak-2.3.6"
       sources."jiti-1.21.0"
       sources."lilconfig-2.1.0"
       sources."lines-and-columns-1.2.4"
+      sources."lru-cache-10.1.0"
       sources."make-error-1.3.6"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.5"
-      sources."minimatch-3.1.2"
+      sources."minimatch-9.0.3"
+      sources."minipass-7.0.4"
       sources."mz-2.7.0"
       sources."nanoid-3.3.7"
       sources."normalize-path-3.0.0"
       sources."object-assign-4.1.1"
       sources."object-hash-3.0.0"
-      sources."once-1.4.0"
-      sources."path-is-absolute-1.0.1"
+      sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
+      sources."path-scurry-1.10.1"
       sources."picocolors-1.0.0"
       sources."picomatch-2.3.1"
       sources."pify-2.3.0"
       sources."pirates-4.0.6"
-      sources."postcss-8.4.31"
+      sources."postcss-8.4.33"
       sources."postcss-import-15.1.0"
       sources."postcss-js-4.0.1"
       (sources."postcss-load-config-4.0.2" // {
@@ -93249,7 +95102,7 @@ in
         ];
       })
       sources."postcss-nested-6.0.1"
-      sources."postcss-selector-parser-6.0.13"
+      sources."postcss-selector-parser-6.0.15"
       sources."postcss-value-parser-4.2.0"
       sources."queue-microtask-1.2.3"
       sources."read-cache-1.0.0"
@@ -93257,24 +95110,49 @@ in
       sources."resolve-1.22.8"
       sources."reusify-1.0.4"
       sources."run-parallel-1.2.0"
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
+      sources."signal-exit-4.1.0"
       sources."source-map-js-1.0.2"
-      sources."sucrase-3.34.0"
+      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."strip-ansi-7.1.0" // {
+        dependencies = [
+          sources."ansi-regex-6.0.1"
+        ];
+      })
+      sources."strip-ansi-cjs-6.0.1"
+      sources."sucrase-3.35.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
       sources."thenify-3.3.1"
       sources."thenify-all-1.6.0"
       sources."to-regex-range-5.0.1"
       sources."ts-interface-checker-0.1.13"
-      (sources."ts-node-10.9.1" // {
+      (sources."ts-node-10.9.2" // {
         dependencies = [
           sources."arg-4.1.3"
         ];
       })
       sources."tslib-2.6.2"
-      sources."typescript-5.3.2"
+      sources."typescript-5.3.3"
       sources."undici-types-5.26.5"
       sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-lib-3.0.1"
-      sources."wrappy-1.0.2"
+      sources."which-2.0.2"
+      sources."wrap-ansi-8.1.0"
+      (sources."wrap-ansi-cjs-7.0.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."emoji-regex-8.0.0"
+          sources."string-width-4.2.3"
+          sources."strip-ansi-6.0.1"
+        ];
+      })
       sources."yaml-2.3.4"
       sources."yn-3.1.1"
     ];
@@ -93298,7 +95176,7 @@ in
     };
     dependencies = [
       sources."node-addon-api-4.3.0"
-      sources."node-gyp-build-4.7.0"
+      sources."node-gyp-build-4.8.0"
       sources."q-1.5.1"
       sources."usb-1.9.2"
     ];
@@ -93364,31 +95242,31 @@ in
   textlint = nodeEnv.buildNodePackage {
     name = "textlint";
     packageName = "textlint";
-    version = "13.4.0";
+    version = "13.4.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/textlint/-/textlint-13.4.0.tgz";
-      sha512 = "Op3Tt6J7yOJY8hbYkU6Pakw2tb37SlyS1F/KAVNSKHSeW9Kp/GF+9O6HDmdaM8dhGldy2vVBhxm9/nlXTU1p0w==";
+      url = "https://registry.npmjs.org/textlint/-/textlint-13.4.1.tgz";
+      sha512 = "ev6XkQEUMWcW90hTHJKlvt23ca1AtmmK2iw4mazqKnSVz8PTSMg45NB68ht3ev92lIPD+8Wt4D6JxCInZkh4GQ==";
     };
     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-13.4.0"
-      sources."@textlint/ast-tester-13.4.0"
-      sources."@textlint/ast-traverse-13.4.0"
-      sources."@textlint/config-loader-13.4.0"
-      sources."@textlint/feature-flag-13.4.0"
-      sources."@textlint/fixer-formatter-13.4.0"
-      sources."@textlint/kernel-13.4.0"
-      sources."@textlint/linter-formatter-13.4.0"
-      sources."@textlint/markdown-to-ast-13.4.0"
-      sources."@textlint/module-interop-13.4.0"
-      sources."@textlint/source-code-fixer-13.4.0"
-      sources."@textlint/text-to-ast-13.4.0"
-      sources."@textlint/textlint-plugin-markdown-13.4.0"
-      sources."@textlint/textlint-plugin-text-13.4.0"
-      sources."@textlint/types-13.4.0"
-      sources."@textlint/utils-13.4.0"
+      sources."@textlint/ast-node-types-13.4.1"
+      sources."@textlint/ast-tester-13.4.1"
+      sources."@textlint/ast-traverse-13.4.1"
+      sources."@textlint/config-loader-13.4.1"
+      sources."@textlint/feature-flag-13.4.1"
+      sources."@textlint/fixer-formatter-13.4.1"
+      sources."@textlint/kernel-13.4.1"
+      sources."@textlint/linter-formatter-13.4.1"
+      sources."@textlint/markdown-to-ast-13.4.1"
+      sources."@textlint/module-interop-13.4.1"
+      sources."@textlint/source-code-fixer-13.4.1"
+      sources."@textlint/text-to-ast-13.4.1"
+      sources."@textlint/textlint-plugin-markdown-13.4.1"
+      sources."@textlint/textlint-plugin-text-13.4.1"
+      sources."@textlint/types-13.4.1"
+      sources."@textlint/utils-13.4.1"
       sources."@types/mdast-3.0.15"
       sources."@types/unist-2.0.10"
       sources."ajv-8.12.0"
@@ -93547,7 +95425,7 @@ in
       sources."supports-preserve-symlinks-flag-1.0.0"
       sources."table-6.8.1"
       sources."text-table-0.2.0"
-      sources."traverse-0.6.7"
+      sources."traverse-0.6.8"
       sources."trough-1.0.5"
       sources."try-resolve-1.0.1"
       sources."type-check-0.4.0"
@@ -93641,7 +95519,7 @@ in
       sha512 = "WdDWGMuwqvj2HzFi7qZ/kyMFEH0wu7FlwXItZZBsH67azzmigMih3X8xxr3Gw5SBqQ4SZoqM/KJErqQ1jSCCBA==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.23.4"
+      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"
@@ -93662,25 +95540,25 @@ in
       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.0"
+      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.3"
-      sources."@types/hast-2.3.8"
+      sources."@types/hast-2.3.9"
       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.18.11"
+      sources."@types/node-18.19.5"
       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.2"
+      sources."acorn-8.11.3"
       sources."acorn-jsx-5.3.2"
       sources."alex-11.0.1"
       (sources."ansi-align-3.0.1" // {
@@ -93960,7 +95838,7 @@ in
       sources."path-key-3.1.1"
       (sources."path-scurry-1.10.1" // {
         dependencies = [
-          sources."lru-cache-10.0.3"
+          sources."lru-cache-10.1.0"
         ];
       })
       sources."pause-stream-0.0.11"
@@ -93973,7 +95851,7 @@ in
       sources."pump-chain-1.0.0"
       sources."pupa-3.1.0"
       sources."quick-lru-6.1.2"
-      sources."quotation-2.0.2"
+      sources."quotation-2.0.3"
       (sources."rc-1.2.8" // {
         dependencies = [
           sources."ini-1.3.8"
@@ -93981,7 +95859,7 @@ in
       })
       (sources."read-package-json-fast-3.0.2" // {
         dependencies = [
-          sources."json-parse-even-better-errors-3.0.0"
+          sources."json-parse-even-better-errors-3.0.1"
         ];
       })
       (sources."read-pkg-7.1.0" // {
@@ -94063,7 +95941,7 @@ in
       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.0" // {
+      (sources."textlint-rule-helper-2.3.1" // {
         dependencies = [
           sources."unist-util-is-4.1.0"
           sources."unist-util-visit-2.0.3"
@@ -94238,7 +96116,7 @@ in
       sha512 = "gZMxUU+/O8QIchBQoo50QryknmMKahb2vBj89wVvk+Dhvp70nAJKSkpt2vjZVYBWCxpIKysQlwheBjrFZWpkfg==";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-13.4.0"
+      sources."@textlint/ast-node-types-13.4.1"
       sources."@types/unist-2.0.10"
       sources."bail-1.0.5"
       sources."boundary-2.0.0"
@@ -94253,10 +96131,10 @@ in
       sources."parse5-5.1.1"
       sources."property-information-5.6.0"
       sources."rehype-parse-6.0.2"
-      sources."sentence-splitter-4.3.0"
+      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.2"
+      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"
@@ -94278,13 +96156,13 @@ in
   textlint-rule-max-comma = nodeEnv.buildNodePackage {
     name = "textlint-rule-max-comma";
     packageName = "textlint-rule-max-comma";
-    version = "3.0.1";
+    version = "4.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-max-comma/-/textlint-rule-max-comma-3.0.1.tgz";
-      sha512 = "VMht14U0+gxRhEnT3/Rfv7yUDF3YGhsSSODwXGnnicwe54Czs2CYALAZIlWA79R4LLqcYFc9pP1i8DeGWvaHeA==";
+      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.0"
+      sources."@textlint/ast-node-types-13.4.1"
       sources."@types/unist-2.0.10"
       sources."bail-1.0.5"
       sources."boundary-2.0.0"
@@ -94299,10 +96177,10 @@ in
       sources."parse5-5.1.1"
       sources."property-information-5.6.0"
       sources."rehype-parse-6.0.2"
-      sources."sentence-splitter-4.3.0"
+      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.2"
+      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"
@@ -94343,9 +96221,9 @@ in
       sources."sentence-splitter-3.2.3"
       sources."string_decoder-1.3.0"
       sources."structured-source-3.0.2"
-      (sources."textlint-rule-helper-2.3.0" // {
+      (sources."textlint-rule-helper-2.3.1" // {
         dependencies = [
-          sources."@textlint/ast-node-types-13.4.0"
+          sources."@textlint/ast-node-types-13.4.1"
           sources."boundary-2.0.0"
           sources."structured-source-4.0.0"
         ];
@@ -94397,13 +96275,13 @@ in
       sha512 = "vP99cbTyapn+Hviom2doO3pJtjlhKlZvlHTf21zoB22CxJx2w3S7Ie169neB5U4Xsei+NodHf5tnwT933mO19A==";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-13.4.0"
+      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.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"
@@ -94427,13 +96305,13 @@ in
       sha512 = "wKiVhc2B9HP2MFU4x7ZDx+oM5u43ETpKWTLHKvdhPRZ0+davi4M8mFmkZVovDIMO7igsGjixikcvFmnCMg3kmQ==";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-13.4.0"
+      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.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"
@@ -94499,7 +96377,7 @@ in
       sources."isarray-2.0.5"
       sources."object-inspect-1.13.1"
       sources."object-keys-1.1.1"
-      sources."object.assign-4.1.4"
+      sources."object.assign-4.1.5"
       sources."regexp.prototype.flags-1.5.1"
       sources."safe-array-concat-1.0.1"
       sources."safe-regex-test-1.0.0"
@@ -94536,7 +96414,7 @@ in
       sha512 = "yvOJavJD+PgyUzvsoLDDzDtgCVBva/HNhEvsFnYVugrWz0qy2hr+/4B4wkzjro4wfPbwz20GQe5h13N4DeUEeA==";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-13.4.0"
+      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"
@@ -94545,7 +96423,7 @@ in
       sources."no-cliches-0.3.6"
       sources."passive-voice-0.1.0"
       sources."structured-source-4.0.0"
-      sources."textlint-rule-helper-2.3.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"
@@ -94587,7 +96465,7 @@ in
       sources."@types/cors-2.8.17"
       sources."@types/http-cache-semantics-4.0.4"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-20.9.3"
+      sources."@types/node-20.10.7"
       sources."@types/responselike-1.0.3"
       sources."abbrev-1.1.1"
       sources."abstract-logging-2.0.1"
@@ -94646,7 +96524,7 @@ in
       sources."content-type-1.0.5"
       sources."cookie-0.4.2"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.33.3"
+      sources."core-js-3.35.0"
       sources."core-util-is-1.0.2"
       sources."cors-2.8.5"
       sources."css-select-4.3.0"
@@ -94842,7 +96720,7 @@ in
           sources."npmlog-6.0.2"
         ];
       })
-      sources."node-gyp-build-4.7.0"
+      sources."node-gyp-build-4.8.0"
       sources."nopt-5.0.0"
       sources."normalize-url-6.1.0"
       sources."npmlog-5.0.1"
@@ -95078,7 +96956,7 @@ in
       sources."content-type-1.0.5"
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.33.3"
+      sources."core-js-3.35.0"
       sources."core-util-is-1.0.2"
       sources."css-select-1.2.0"
       sources."css-what-2.1.3"
@@ -95259,7 +97137,7 @@ in
         ];
       })
       sources."negotiator-0.6.3"
-      sources."node-gyp-build-4.7.0"
+      sources."node-gyp-build-4.8.0"
       (sources."node-pre-gyp-0.11.0" // {
         dependencies = [
           sources."semver-5.7.2"
@@ -95677,7 +97555,7 @@ in
       sources."@types/cacheable-request-6.0.3"
       sources."@types/http-cache-semantics-4.0.4"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-20.9.3"
+      sources."@types/node-20.10.7"
       sources."@types/responselike-1.0.3"
       sources."abbrev-1.1.1"
       sources."abstract-logging-2.0.1"
@@ -95758,7 +97636,7 @@ in
       sources."content-type-1.0.5"
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.33.3"
+      sources."core-js-3.35.0"
       sources."core-util-is-1.0.2"
       sources."css-select-1.2.0"
       sources."css-what-2.1.3"
@@ -95934,7 +97812,7 @@ in
           sources."tar-2.2.2"
         ];
       })
-      sources."node-gyp-build-4.7.0"
+      sources."node-gyp-build-4.8.0"
       (sources."node-pre-gyp-0.11.0" // {
         dependencies = [
           sources."semver-5.7.2"
@@ -96146,7 +98024,7 @@ in
       sources."@types/cacheable-request-6.0.3"
       sources."@types/http-cache-semantics-4.0.4"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-20.9.3"
+      sources."@types/node-20.10.7"
       sources."@types/responselike-1.0.3"
       sources."abbrev-1.1.1"
       sources."abstract-logging-2.0.1"
@@ -96227,7 +98105,7 @@ in
       sources."content-type-1.0.5"
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.33.3"
+      sources."core-js-3.35.0"
       sources."core-util-is-1.0.2"
       sources."css-select-1.2.0"
       sources."css-what-2.1.3"
@@ -96403,7 +98281,7 @@ in
           sources."tar-2.2.2"
         ];
       })
-      sources."node-gyp-build-4.7.0"
+      sources."node-gyp-build-4.8.0"
       (sources."node-pre-gyp-0.11.0" // {
         dependencies = [
           sources."semver-5.7.2"
@@ -96729,10 +98607,10 @@ in
   thelounge-theme-mortified = nodeEnv.buildNodePackage {
     name = "thelounge-theme-mortified";
     packageName = "thelounge-theme-mortified";
-    version = "0.1.6";
+    version = "0.2.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/thelounge-theme-mortified/-/thelounge-theme-mortified-0.1.6.tgz";
-      sha512 = "5k7vJEyt1PstHo9rZi4flP9B4e1uC83KrneAi6uyI9R70uYCJtsqu36SD1V1NTpRdMGjAHcpK6ydbMai5fKN9A==";
+      url = "https://registry.npmjs.org/thelounge-theme-mortified/-/thelounge-theme-mortified-0.2.0.tgz";
+      sha512 = "EAZysq41Jx7Sq5bvNI8WtRbxto7MdkdnFO5smjlSB5wEKNLW1T1Dy56u2d452QBc7AzZ130q33P/a9tvCrtzYQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -96999,10 +98877,10 @@ in
   tiddlywiki = nodeEnv.buildNodePackage {
     name = "tiddlywiki";
     packageName = "tiddlywiki";
-    version = "5.3.1";
+    version = "5.3.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/tiddlywiki/-/tiddlywiki-5.3.1.tgz";
-      sha512 = "17uoTt8w3wvqaF1fqulHeeR86984N0eC8fgd0Ql1LIKgrHRu1+M3fBW8V/ikofU2s74xr6S1efREHaA2zyhe1w==";
+      url = "https://registry.npmjs.org/tiddlywiki/-/tiddlywiki-5.3.3.tgz";
+      sha512 = "PkgVfZNpFFHyMmfFw91igXOJn8Z7IWg3NGXOX5EBqJwzGNeYYOIUg4FqCNsWoqBece20HxtkDue/vTf2jDtdZQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -97050,7 +98928,7 @@ in
       sources."supports-color-2.0.0"
       sources."temp-0.8.4"
       sources."tslib-1.14.1"
-      sources."typescript-5.3.2"
+      sources."typescript-5.3.3"
       sources."wordwrap-0.0.3"
       sources."wrappy-1.0.2"
     ];
@@ -97067,34 +98945,34 @@ in
   ts-node = nodeEnv.buildNodePackage {
     name = "ts-node";
     packageName = "ts-node";
-    version = "10.9.1";
+    version = "10.9.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz";
-      sha512 = "NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==";
+      url = "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz";
+      sha512 = "f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==";
     };
     dependencies = [
       sources."@cspotcode/source-map-support-0.8.1"
       sources."@jridgewell/resolve-uri-3.1.1"
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@jridgewell/trace-mapping-0.3.9"
-      sources."@swc/core-1.3.99"
+      sources."@swc/core-1.3.102"
       sources."@swc/counter-0.1.2"
       sources."@swc/helpers-0.5.3"
       sources."@swc/types-0.1.5"
-      sources."@swc/wasm-1.3.99"
+      sources."@swc/wasm-1.3.102"
       sources."@tsconfig/node10-1.0.9"
       sources."@tsconfig/node12-1.0.11"
       sources."@tsconfig/node14-1.0.3"
       sources."@tsconfig/node16-1.0.4"
-      sources."@types/node-20.9.3"
-      sources."acorn-8.11.2"
-      sources."acorn-walk-8.3.0"
+      sources."@types/node-20.10.7"
+      sources."acorn-8.11.3"
+      sources."acorn-walk-8.3.1"
       sources."arg-4.1.3"
       sources."create-require-1.1.1"
       sources."diff-4.0.2"
       sources."make-error-1.3.6"
       sources."tslib-2.6.2"
-      sources."typescript-5.3.2"
+      sources."typescript-5.3.3"
       sources."undici-types-5.26.5"
       sources."v8-compile-cache-lib-3.0.1"
       sources."yn-3.1.1"
@@ -97133,10 +99011,10 @@ in
   typescript-language-server = nodeEnv.buildNodePackage {
     name = "typescript-language-server";
     packageName = "typescript-language-server";
-    version = "4.1.2";
+    version = "4.2.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/typescript-language-server/-/typescript-language-server-4.1.2.tgz";
-      sha512 = "RmTQUvlWmQ2y0x7DbOQuxEHtozKlWuhw8NhuLT7zL90rBjmeqjAMD/DlkcoQbkt3CEMMuBwZC+1OYQelw16cFA==";
+      url = "https://registry.npmjs.org/typescript-language-server/-/typescript-language-server-4.2.0.tgz";
+      sha512 = "1yKDqKeWLTQkN4mN+CT84aBr7ckp6sNVb8DZg+eXl0TDl14edn6Yh1wPqPA1rQ4AGVJc02fYbXTFsklaVYy4Uw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -97192,7 +99070,7 @@ in
       sha512 = "QuiszzQwHu8OOUHJpe7sM4UcF8C1zmjpvVZNPca2NE/jW2QVLmQ0iSyujdza/+spOoMwVmPIrv0Ws3Ew3RJO/w==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.23.4"
+      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"
@@ -97203,7 +99081,7 @@ in
       sources."@types/debug-4.1.12"
       sources."@types/is-empty-1.2.3"
       sources."@types/ms-0.7.34"
-      sources."@types/node-20.9.3"
+      sources."@types/node-20.10.7"
       sources."@types/supports-color-8.1.3"
       sources."@types/unist-3.0.2"
       sources."@ungap/structured-clone-1.2.0"
@@ -97245,11 +99123,11 @@ in
       sources."isexe-2.0.0"
       sources."jackspeak-2.3.6"
       sources."js-tokens-4.0.0"
-      sources."json-parse-even-better-errors-3.0.0"
+      sources."json-parse-even-better-errors-3.0.1"
       sources."lines-and-columns-2.0.4"
       sources."load-plugin-5.1.0"
       sources."locate-path-7.2.0"
-      sources."lru-cache-10.0.3"
+      sources."lru-cache-10.1.0"
       sources."minimatch-9.0.3"
       sources."minipass-7.0.4"
       sources."ms-2.1.2"
@@ -97292,9 +99170,9 @@ in
       sources."type-fest-3.13.1"
       sources."typedarray-0.0.6"
       sources."undici-types-5.26.5"
-      (sources."unified-engine-11.1.1" // {
+      (sources."unified-engine-11.2.0" // {
         dependencies = [
-          sources."@npmcli/config-8.0.2"
+          sources."@npmcli/config-8.0.3"
           sources."ci-info-4.0.0"
           sources."import-meta-resolve-4.0.0"
           sources."load-plugin-6.0.1"
@@ -97481,11 +99359,11 @@ in
       sources."vega-regression-1.2.0"
       sources."vega-runtime-6.1.4"
       sources."vega-scale-7.3.1"
-      sources."vega-scenegraph-4.11.1"
+      sources."vega-scenegraph-4.11.2"
       sources."vega-selections-5.4.2"
       sources."vega-statistics-1.9.0"
       sources."vega-time-2.1.1"
-      sources."vega-transforms-4.11.0"
+      sources."vega-transforms-4.11.1"
       sources."vega-typings-1.0.1"
       sources."vega-util-1.17.2"
       sources."vega-view-5.11.1"
@@ -97570,7 +99448,7 @@ in
       })
       sources."tr46-0.0.3"
       sources."tslib-2.6.2"
-      sources."vega-5.26.1"
+      sources."vega-5.27.0"
       sources."vega-canvas-1.2.7"
       sources."vega-crossfilter-4.1.1"
       sources."vega-dataflow-5.7.5"
@@ -97589,14 +99467,14 @@ in
       sources."vega-regression-1.2.0"
       sources."vega-runtime-6.1.4"
       sources."vega-scale-7.3.1"
-      sources."vega-scenegraph-4.11.1"
+      sources."vega-scenegraph-4.11.2"
       sources."vega-selections-5.4.2"
       sources."vega-statistics-1.9.0"
       sources."vega-time-2.1.1"
-      sources."vega-transforms-4.11.0"
-      sources."vega-typings-1.0.1"
+      sources."vega-transforms-4.11.1"
+      sources."vega-typings-1.1.0"
       sources."vega-util-1.17.2"
-      sources."vega-view-5.11.1"
+      sources."vega-view-5.12.0"
       sources."vega-view-transforms-4.5.9"
       sources."vega-voronoi-4.2.2"
       sources."vega-wordcloud-4.1.4"
@@ -97620,10 +99498,10 @@ in
   vercel = nodeEnv.buildNodePackage {
     name = "vercel";
     packageName = "vercel";
-    version = "32.5.5";
+    version = "33.0.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/vercel/-/vercel-32.5.5.tgz";
-      sha512 = "243EMaVsFyqrbbiD7kNfGTc+AYQ86k8PaQzFIELFzKRV7cbGWUGqmPiHNZR4XZlHd96S3FHGqWz5HNtzZKQNEQ==";
+      url = "https://registry.npmjs.org/vercel/-/vercel-33.0.2.tgz";
+      sha512 = "jcXl6PvyMb4Z8rk3ossj7yxi1gLKF8QtH9ytMWxFSkaBf5BSiaUduDZOwkCm4gTGE5gQ4NASa8yYpvOaQELyvw==";
     };
     dependencies = [
       sources."@cspotcode/source-map-support-0.8.1"
@@ -97660,11 +99538,11 @@ in
       sources."@nodelib/fs.walk-1.2.8"
       sources."@rollup/pluginutils-4.2.1"
       sources."@sinclair/typebox-0.25.24"
-      sources."@swc/core-1.3.99"
+      sources."@swc/core-1.3.102"
       sources."@swc/counter-0.1.2"
       sources."@swc/helpers-0.5.3"
       sources."@swc/types-0.1.5"
-      sources."@swc/wasm-1.3.99"
+      sources."@swc/wasm-1.3.102"
       sources."@tootallnate/once-2.0.0"
       (sources."@ts-morph/common-0.11.1" // {
         dependencies = [
@@ -97677,22 +99555,22 @@ in
       sources."@tsconfig/node16-1.0.4"
       sources."@types/json-schema-7.0.15"
       sources."@types/node-14.18.33"
-      sources."@vercel/build-utils-7.2.5"
+      sources."@vercel/build-utils-7.4.1"
       sources."@vercel/error-utils-2.0.2"
       sources."@vercel/fun-1.1.0"
       sources."@vercel/gatsby-plugin-vercel-analytics-1.0.11"
-      (sources."@vercel/gatsby-plugin-vercel-builder-2.0.11" // {
+      (sources."@vercel/gatsby-plugin-vercel-builder-2.0.14" // {
         dependencies = [
           sources."fs-extra-11.1.0"
           sources."jsonfile-6.1.0"
           sources."universalify-2.0.1"
         ];
       })
-      sources."@vercel/go-3.0.3"
+      sources."@vercel/go-3.0.5"
       sources."@vercel/hydrogen-1.0.1"
-      sources."@vercel/next-4.0.14"
-      sources."@vercel/nft-0.24.2"
-      (sources."@vercel/node-3.0.11" // {
+      sources."@vercel/next-4.0.17"
+      sources."@vercel/nft-0.26.2"
+      (sources."@vercel/node-3.0.15" // {
         dependencies = [
           sources."async-listen-3.0.0"
           sources."node-fetch-2.6.9"
@@ -97700,12 +99578,12 @@ in
         ];
       })
       sources."@vercel/python-4.1.0"
-      (sources."@vercel/redwood-2.0.5" // {
+      (sources."@vercel/redwood-2.0.6" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
-      sources."@vercel/remix-builder-2.0.11"
+      sources."@vercel/remix-builder-2.0.16"
       (sources."@vercel/routing-utils-3.1.0" // {
         dependencies = [
           sources."ajv-6.12.6"
@@ -97713,12 +99591,13 @@ in
           sources."path-to-regexp-6.1.0"
         ];
       })
-      sources."@vercel/ruby-2.0.2"
-      sources."@vercel/static-build-2.0.12"
+      sources."@vercel/ruby-2.0.4"
+      sources."@vercel/static-build-2.0.16"
       sources."@vercel/static-config-3.0.0"
       sources."abbrev-1.1.1"
-      sources."acorn-8.11.2"
-      sources."acorn-walk-8.3.0"
+      sources."acorn-8.11.3"
+      sources."acorn-import-attributes-1.9.2"
+      sources."acorn-walk-8.3.1"
       sources."agent-base-6.0.2"
       sources."ajv-8.6.3"
       sources."ansi-regex-5.0.1"
@@ -97789,11 +99668,10 @@ in
       sources."etag-1.8.1"
       sources."events-intercept-2.0.0"
       sources."execa-3.2.0"
-      sources."exit-hook-2.2.1"
       sources."fast-deep-equal-3.1.3"
       sources."fast-glob-3.3.2"
       sources."fast-json-stable-stringify-2.1.0"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."fd-slicer-1.1.0"
       sources."file-uri-to-path-1.0.0"
       sources."fill-range-7.0.1"
@@ -97849,7 +99727,7 @@ in
       sources."mri-1.2.0"
       sources."ms-2.1.1"
       sources."node-fetch-2.6.7"
-      sources."node-gyp-build-4.7.0"
+      sources."node-gyp-build-4.8.0"
       sources."nopt-5.0.0"
       sources."normalize-path-3.0.0"
       sources."npm-run-path-4.0.1"
@@ -97982,7 +99860,7 @@ in
     };
     dependencies = [
       sources."@aashutoshrathi/word-wrap-1.2.6"
-      (sources."@babel/code-frame-7.23.4" // {
+      (sources."@babel/code-frame-7.23.5" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -98007,8 +99885,8 @@ in
       })
       sources."@eslint-community/eslint-utils-4.4.0"
       sources."@eslint-community/regexpp-4.10.0"
-      sources."@eslint/eslintrc-2.1.3"
-      sources."@eslint/js-8.54.0"
+      sources."@eslint/eslintrc-2.1.4"
+      sources."@eslint/js-8.56.0"
       sources."@humanwhocodes/config-array-0.11.13"
       sources."@humanwhocodes/module-importer-1.0.1"
       sources."@humanwhocodes/object-schema-2.0.1"
@@ -98016,7 +99894,7 @@ in
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
       sources."@ungap/structured-clone-1.2.0"
-      sources."acorn-8.11.2"
+      sources."acorn-8.11.3"
       sources."acorn-jsx-5.3.2"
       sources."ajv-6.12.6"
       sources."ansi-regex-5.0.1"
@@ -98042,8 +99920,8 @@ in
       sources."diff-4.0.2"
       sources."doctrine-3.0.0"
       sources."escape-string-regexp-4.0.0"
-      sources."eslint-8.54.0"
-      sources."eslint-plugin-vue-9.18.1"
+      sources."eslint-8.56.0"
+      sources."eslint-plugin-vue-9.19.2"
       sources."eslint-scope-7.2.2"
       sources."eslint-visitor-keys-3.4.3"
       sources."espree-9.6.1"
@@ -98055,7 +99933,7 @@ in
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."file-entry-cache-6.0.1"
       sources."find-up-5.0.0"
       sources."flat-cache-3.2.0"
@@ -98065,7 +99943,7 @@ in
       sources."get-intrinsic-1.2.2"
       sources."glob-7.2.3"
       sources."glob-parent-6.0.2"
-      sources."globals-13.23.0"
+      sources."globals-13.24.0"
       sources."gopd-1.0.1"
       sources."graphemer-1.4.0"
       sources."has-flag-4.0.0"
@@ -98117,7 +99995,7 @@ in
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
-      sources."postcss-selector-parser-6.0.13"
+      sources."postcss-selector-parser-6.0.15"
       sources."prelude-ls-1.2.1"
       sources."prettier-2.8.8"
       sources."pug-error-2.0.0"
@@ -98347,9 +100225,9 @@ in
       sha512 = "EwAUg6706mBujMLbb4Czhe9Ax5Dw3x64t/X2hn+vIVvVexAANSifVg3yB7ILZmeRSGmv9uYo6kL5J1c/DiGdaw==";
     };
     dependencies = [
-      (sources."@babel/runtime-7.23.4" // {
+      (sources."@babel/runtime-7.23.7" // {
         dependencies = [
-          sources."regenerator-runtime-0.14.0"
+          sources."regenerator-runtime-0.14.1"
         ];
       })
       sources."@jimp/bmp-0.16.13"
@@ -98421,7 +100299,7 @@ in
       sources."estraverse-5.3.0"
       sources."exif-parser-0.1.12"
       sources."file-type-16.5.4"
-      sources."fs-extra-11.1.1"
+      sources."fs-extra-11.2.0"
       sources."get-caller-file-2.0.5"
       sources."gifwrap-0.9.4"
       sources."global-4.4.0"
@@ -98471,7 +100349,7 @@ in
       sources."universalify-2.0.1"
       sources."utif-2.0.1"
       sources."util-deprecate-1.0.2"
-      sources."wavedrom-3.3.0"
+      sources."wavedrom-3.4.0"
       sources."wrap-ansi-7.0.0"
       sources."xhr-2.6.0"
       sources."xml-parse-from-string-1.0.1"
@@ -98507,11 +100385,11 @@ in
       sources."@jridgewell/source-map-0.3.5"
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@jridgewell/trace-mapping-0.3.20"
-      sources."@types/eslint-8.44.7"
+      sources."@types/eslint-8.56.1"
       sources."@types/eslint-scope-3.7.7"
       sources."@types/estree-1.0.5"
       sources."@types/json-schema-7.0.15"
-      sources."@types/node-20.9.3"
+      sources."@types/node-20.10.7"
       sources."@webassemblyjs/ast-1.11.6"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.6"
       sources."@webassemblyjs/helper-api-error-1.11.6"
@@ -98529,16 +100407,16 @@ in
       sources."@webassemblyjs/wast-printer-1.11.6"
       sources."@xtuc/ieee754-1.2.0"
       sources."@xtuc/long-4.2.2"
-      sources."acorn-8.11.2"
+      sources."acorn-8.11.3"
       sources."acorn-import-assertions-1.9.0"
       sources."ajv-6.12.6"
       sources."ajv-keywords-3.5.2"
-      sources."browserslist-4.22.1"
+      sources."browserslist-4.22.2"
       sources."buffer-from-1.1.2"
-      sources."caniuse-lite-1.0.30001563"
+      sources."caniuse-lite-1.0.30001576"
       sources."chrome-trace-event-1.0.3"
       sources."commander-2.20.3"
-      sources."electron-to-chromium-1.4.589"
+      sources."electron-to-chromium-1.4.623"
       sources."enhanced-resolve-5.15.0"
       sources."es-module-lexer-1.4.1"
       sources."escalade-3.1.1"
@@ -98563,7 +100441,7 @@ in
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
       sources."neo-async-2.6.2"
-      sources."node-releases-2.0.13"
+      sources."node-releases-2.0.14"
       sources."picocolors-1.0.0"
       sources."punycode-2.3.1"
       sources."randombytes-2.1.0"
@@ -98574,8 +100452,8 @@ in
       sources."source-map-support-0.5.21"
       sources."supports-color-8.1.1"
       sources."tapable-2.2.1"
-      sources."terser-5.24.0"
-      sources."terser-webpack-plugin-5.3.9"
+      sources."terser-5.26.0"
+      sources."terser-webpack-plugin-5.3.10"
       sources."undici-types-5.26.5"
       sources."update-browserslist-db-1.0.13"
       sources."uri-js-4.4.1"
@@ -98609,11 +100487,11 @@ in
       sources."@jridgewell/source-map-0.3.5"
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@jridgewell/trace-mapping-0.3.20"
-      sources."@types/eslint-8.44.7"
+      sources."@types/eslint-8.56.1"
       sources."@types/eslint-scope-3.7.7"
       sources."@types/estree-1.0.5"
       sources."@types/json-schema-7.0.15"
-      sources."@types/node-20.9.3"
+      sources."@types/node-20.10.7"
       sources."@webassemblyjs/ast-1.11.6"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.6"
       sources."@webassemblyjs/helper-api-error-1.11.6"
@@ -98634,19 +100512,19 @@ in
       sources."@webpack-cli/serve-2.0.5"
       sources."@xtuc/ieee754-1.2.0"
       sources."@xtuc/long-4.2.2"
-      sources."acorn-8.11.2"
+      sources."acorn-8.11.3"
       sources."acorn-import-assertions-1.9.0"
       sources."ajv-6.12.6"
       sources."ajv-keywords-3.5.2"
-      sources."browserslist-4.22.1"
+      sources."browserslist-4.22.2"
       sources."buffer-from-1.1.2"
-      sources."caniuse-lite-1.0.30001563"
+      sources."caniuse-lite-1.0.30001576"
       sources."chrome-trace-event-1.0.3"
       sources."clone-deep-4.0.1"
       sources."colorette-2.0.20"
       sources."commander-10.0.1"
       sources."cross-spawn-7.0.3"
-      sources."electron-to-chromium-1.4.589"
+      sources."electron-to-chromium-1.4.623"
       sources."enhanced-resolve-5.15.0"
       sources."envinfo-7.11.0"
       sources."es-module-lexer-1.4.1"
@@ -98685,7 +100563,7 @@ in
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
       sources."neo-async-2.6.2"
-      sources."node-releases-2.0.13"
+      sources."node-releases-2.0.14"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
       sources."p-try-2.2.0"
@@ -98711,12 +100589,12 @@ in
       sources."supports-color-8.1.1"
       sources."supports-preserve-symlinks-flag-1.0.0"
       sources."tapable-2.2.1"
-      (sources."terser-5.24.0" // {
+      (sources."terser-5.26.0" // {
         dependencies = [
           sources."commander-2.20.3"
         ];
       })
-      sources."terser-webpack-plugin-5.3.9"
+      sources."terser-webpack-plugin-5.3.10"
       sources."undici-types-5.26.5"
       sources."update-browserslist-db-1.0.13"
       sources."uri-js-4.4.1"
@@ -98758,7 +100636,7 @@ in
       sources."@types/bonjour-3.5.13"
       sources."@types/connect-3.4.38"
       sources."@types/connect-history-api-fallback-1.5.4"
-      sources."@types/eslint-8.44.7"
+      sources."@types/eslint-8.56.1"
       sources."@types/eslint-scope-3.7.7"
       sources."@types/estree-1.0.5"
       sources."@types/express-4.17.21"
@@ -98767,9 +100645,9 @@ in
       sources."@types/http-proxy-1.17.14"
       sources."@types/json-schema-7.0.15"
       sources."@types/mime-1.3.5"
-      sources."@types/node-20.9.3"
-      sources."@types/node-forge-1.3.10"
-      sources."@types/qs-6.9.10"
+      sources."@types/node-20.10.7"
+      sources."@types/node-forge-1.3.11"
+      sources."@types/qs-6.9.11"
       sources."@types/range-parser-1.2.7"
       sources."@types/retry-0.12.0"
       sources."@types/send-0.17.4"
@@ -98795,14 +100673,14 @@ in
       sources."@xtuc/ieee754-1.2.0"
       sources."@xtuc/long-4.2.2"
       sources."accepts-1.3.8"
-      sources."acorn-8.11.2"
+      sources."acorn-8.11.3"
       sources."acorn-import-assertions-1.9.0"
       sources."ajv-8.12.0"
       sources."ajv-formats-2.1.1"
       sources."ajv-keywords-5.1.0"
       sources."ansi-html-community-0.0.8"
       sources."anymatch-3.1.3"
-      sources."array-flatten-2.1.2"
+      sources."array-flatten-1.1.1"
       sources."balanced-match-1.0.2"
       sources."batch-0.6.1"
       sources."binary-extensions-2.2.0"
@@ -98811,15 +100689,15 @@ in
           sources."bytes-3.1.2"
         ];
       })
-      sources."bonjour-service-1.1.1"
+      sources."bonjour-service-1.2.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."browserslist-4.22.1"
+      sources."browserslist-4.22.2"
       sources."buffer-from-1.1.2"
       sources."bufferutil-4.0.8"
       sources."bytes-3.0.0"
       sources."call-bind-1.0.5"
-      sources."caniuse-lite-1.0.30001563"
+      sources."caniuse-lite-1.0.30001576"
       sources."chokidar-3.5.3"
       sources."chrome-trace-event-1.0.3"
       sources."colorette-2.0.20"
@@ -98845,10 +100723,9 @@ in
       sources."depd-2.0.0"
       sources."destroy-1.2.0"
       sources."detect-node-2.1.0"
-      sources."dns-equal-1.0.0"
       sources."dns-packet-5.6.1"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.4.589"
+      sources."electron-to-chromium-1.4.623"
       sources."encodeurl-1.0.2"
       sources."enhanced-resolve-5.15.0"
       sources."es-module-lexer-1.4.1"
@@ -98867,7 +100744,6 @@ in
       sources."execa-5.1.1"
       (sources."express-4.18.2" // {
         dependencies = [
-          sources."array-flatten-1.1.1"
           sources."safe-buffer-5.2.1"
         ];
       })
@@ -98876,7 +100752,7 @@ in
       sources."faye-websocket-0.11.4"
       sources."fill-range-7.0.1"
       sources."finalhandler-1.2.0"
-      sources."follow-redirects-1.15.3"
+      sources."follow-redirects-1.15.4"
       sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
       sources."fs-monkey-1.0.5"
@@ -98944,8 +100820,8 @@ in
       sources."negotiator-0.6.3"
       sources."neo-async-2.6.2"
       sources."node-forge-1.3.1"
-      sources."node-gyp-build-4.7.0"
-      sources."node-releases-2.0.13"
+      sources."node-gyp-build-4.8.0"
+      sources."node-releases-2.0.14"
       sources."normalize-path-3.0.0"
       sources."npm-run-path-4.0.1"
       sources."object-inspect-1.13.1"
@@ -99031,8 +100907,8 @@ in
       sources."strip-final-newline-2.0.0"
       sources."supports-color-8.1.1"
       sources."tapable-2.2.1"
-      sources."terser-5.24.0"
-      (sources."terser-webpack-plugin-5.3.9" // {
+      sources."terser-5.26.0"
+      (sources."terser-webpack-plugin-5.3.10" // {
         dependencies = [
           sources."ajv-6.12.6"
           sources."ajv-keywords-3.5.2"
@@ -99069,7 +100945,7 @@ in
       sources."websocket-extensions-0.1.4"
       sources."which-2.0.2"
       sources."wrappy-1.0.2"
-      sources."ws-8.14.2"
+      sources."ws-8.16.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -99099,11 +100975,11 @@ in
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@types/eslint-8.44.7"
+      sources."@types/eslint-8.56.1"
       sources."@types/eslint-scope-3.7.7"
       sources."@types/estree-1.0.5"
       sources."@types/json-schema-7.0.15"
-      sources."@types/node-20.9.3"
+      sources."@types/node-20.10.7"
       sources."@webassemblyjs/ast-1.11.6"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.6"
       sources."@webassemblyjs/helper-api-error-1.11.6"
@@ -99121,19 +100997,19 @@ in
       sources."@webassemblyjs/wast-printer-1.11.6"
       sources."@xtuc/ieee754-1.2.0"
       sources."@xtuc/long-4.2.2"
-      sources."acorn-8.11.2"
+      sources."acorn-8.11.3"
       sources."acorn-import-assertions-1.9.0"
       sources."ajv-8.12.0"
       sources."ajv-formats-2.1.1"
       sources."ajv-keywords-5.1.0"
       sources."braces-3.0.2"
-      sources."browserslist-4.22.1"
+      sources."browserslist-4.22.2"
       sources."buffer-from-1.1.2"
-      sources."caniuse-lite-1.0.30001563"
+      sources."caniuse-lite-1.0.30001576"
       sources."chrome-trace-event-1.0.3"
       sources."commander-2.20.3"
       sources."dir-glob-3.0.1"
-      sources."electron-to-chromium-1.4.589"
+      sources."electron-to-chromium-1.4.623"
       sources."enhanced-resolve-5.15.0"
       sources."es-module-lexer-1.4.1"
       sources."escalade-3.1.1"
@@ -99152,7 +101028,7 @@ in
         ];
       })
       sources."fast-json-stable-stringify-2.1.0"
-      sources."fastq-1.15.0"
+      sources."fastq-1.16.0"
       sources."fill-range-7.0.1"
       sources."glob-parent-6.0.2"
       sources."glob-to-regexp-0.4.1"
@@ -99173,7 +101049,7 @@ in
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
       sources."neo-async-2.6.2"
-      sources."node-releases-2.0.13"
+      sources."node-releases-2.0.14"
       sources."normalize-path-3.0.0"
       sources."path-type-4.0.0"
       sources."picocolors-1.0.0"
@@ -99192,8 +101068,8 @@ in
       sources."source-map-support-0.5.21"
       sources."supports-color-8.1.1"
       sources."tapable-2.2.1"
-      sources."terser-5.24.0"
-      (sources."terser-webpack-plugin-5.3.9" // {
+      sources."terser-5.26.0"
+      (sources."terser-webpack-plugin-5.3.10" // {
         dependencies = [
           sources."ajv-6.12.6"
           sources."ajv-keywords-3.5.2"
@@ -99247,7 +101123,7 @@ in
       sources."@protobufjs/pool-1.1.0"
       sources."@protobufjs/utf8-1.1.0"
       sources."@types/long-4.0.2"
-      sources."@types/node-20.9.3"
+      sources."@types/node-20.10.7"
       sources."@webtorrent/http-node-1.3.0"
       sources."addr-to-ip-port-1.5.4"
       sources."airplay-js-0.3.0"
@@ -99259,7 +101135,7 @@ in
       sources."bencode-2.0.3"
       sources."bep53-range-1.1.1"
       sources."binary-search-1.3.6"
-      sources."bitfield-4.1.0"
+      sources."bitfield-4.2.0"
       (sources."bittorrent-dht-10.0.7" // {
         dependencies = [
           sources."debug-4.3.4"
@@ -99336,7 +101212,7 @@ in
         ];
       })
       sources."cli-cursor-3.1.0"
-      sources."cli-spinners-2.9.1"
+      sources."cli-spinners-2.9.2"
       sources."cli-width-3.0.0"
       (sources."cliui-8.0.1" // {
         dependencies = [
@@ -99380,7 +101256,7 @@ in
       sources."external-editor-3.1.0"
       sources."fast-blob-stream-1.1.1"
       sources."fast-fifo-1.3.2"
-      sources."fast-readable-async-iterator-1.1.1"
+      sources."fast-readable-async-iterator-1.1.2"
       sources."figures-3.2.0"
       sources."freelist-1.0.3"
       (sources."fs-chunk-store-3.0.1" // {
@@ -99448,7 +101324,7 @@ in
       sources."mimic-response-1.0.1"
       sources."minimist-1.2.8"
       sources."mkdirp-classic-0.5.3"
-      sources."moment-2.29.4"
+      sources."moment-2.30.1"
       sources."mp4-box-encoding-1.4.1"
       (sources."mp4-stream-3.1.3" // {
         dependencies = [
@@ -99466,7 +101342,7 @@ in
       sources."netmask-2.0.2"
       sources."network-address-1.1.2"
       sources."next-event-1.0.0"
-      sources."node-gyp-build-4.7.0"
+      sources."node-gyp-build-4.8.0"
       sources."node-ssdp-2.9.1"
       sources."nodebmc-0.0.7"
       sources."on-finished-2.4.1"
@@ -99558,7 +101434,7 @@ in
       sources."stream-to-blob-2.0.1"
       sources."stream-to-blob-url-3.0.2"
       sources."stream-with-known-length-to-buffer-1.0.4"
-      sources."streamx-2.15.5"
+      sources."streamx-2.15.6"
       sources."string-width-4.2.3"
       sources."string2compact-1.3.2"
       sources."string_decoder-1.1.1"
@@ -99635,58 +101511,17 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
-  "@withgraphite/graphite-cli" = nodeEnv.buildNodePackage {
-    name = "_at_withgraphite_slash_graphite-cli";
-    packageName = "@withgraphite/graphite-cli";
-    version = "1.0.9";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/@withgraphite/graphite-cli/-/graphite-cli-1.0.9.tgz";
-      sha512 = "RQj9MouC+o746pXW7p9IvYg2iehYQsd1xxi42BCR5MvSEPf7TQNmmAuxDsB1pthkL40e+bXktitXUtRFeKg/9g==";
-    };
-    dependencies = [
-      sources."ansi-regex-5.0.1"
-      sources."ansi-styles-4.3.0"
-      sources."bufferutil-4.0.8"
-      sources."chalk-4.1.2"
-      sources."cliui-8.0.1"
-      sources."color-convert-2.0.1"
-      sources."color-name-1.1.4"
-      sources."emoji-regex-8.0.0"
-      sources."escalade-3.1.1"
-      sources."get-caller-file-2.0.5"
-      sources."has-flag-4.0.0"
-      sources."is-fullwidth-code-point-3.0.0"
-      sources."node-gyp-build-4.7.0"
-      sources."require-directory-2.1.1"
-      sources."string-width-4.2.3"
-      sources."strip-ansi-6.0.1"
-      sources."supports-color-7.2.0"
-      sources."utf-8-validate-6.0.3"
-      sources."wrap-ansi-7.0.0"
-      sources."ws-8.14.2"
-      sources."y18n-5.0.8"
-      sources."yargs-17.7.2"
-      sources."yargs-parser-21.1.1"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      homepage = "https://github.com/withgraphite/graphite-cli";
-      license = "None";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
   wrangler = nodeEnv.buildNodePackage {
     name = "wrangler";
     packageName = "wrangler";
-    version = "3.16.0";
+    version = "3.22.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/wrangler/-/wrangler-3.16.0.tgz";
-      sha512 = "MIx35sSdFKE3hnfWB6xWUnrt3OiyKK+PQnc9kFLjksLESX0tLmEk1gdvThYHliY90kkelS+nbH48SUGTFAI5BA==";
+      url = "https://registry.npmjs.org/wrangler/-/wrangler-3.22.3.tgz";
+      sha512 = "EhGEQLoMcQm71v6XrtnKfMG2B8BTM7RxhoS9iWIkc1hc3l9cOWyoN0cJnoBqcGTgtQk5V7+cRECTfwh08IEjBQ==";
     };
     dependencies = [
       sources."@cloudflare/kv-asset-handler-0.2.0"
+      sources."@cspotcode/source-map-support-0.8.1"
       sources."@esbuild-plugins/node-globals-polyfill-0.2.3"
       sources."@esbuild-plugins/node-modules-polyfill-0.2.2"
       sources."@esbuild/android-arm-0.17.19"
@@ -99712,16 +101547,18 @@ in
       sources."@esbuild/win32-ia32-0.17.19"
       sources."@esbuild/win32-x64-0.17.19"
       sources."@fastify/busboy-2.1.0"
-      sources."@types/node-20.9.3"
-      sources."@types/node-forge-1.3.10"
-      sources."acorn-8.11.2"
-      sources."acorn-walk-8.3.0"
+      sources."@jridgewell/resolve-uri-3.1.1"
+      sources."@jridgewell/sourcemap-codec-1.4.15"
+      sources."@jridgewell/trace-mapping-0.3.9"
+      sources."@types/node-20.10.7"
+      sources."@types/node-forge-1.3.11"
+      sources."acorn-8.11.3"
+      sources."acorn-walk-8.3.1"
       sources."anymatch-3.1.3"
       sources."as-table-1.0.55"
       sources."binary-extensions-2.2.0"
       sources."blake3-wasm-2.1.5"
       sources."braces-3.0.2"
-      sources."buffer-from-1.1.2"
       sources."bufferutil-4.0.8"
       sources."capnp-ts-0.7.0"
       sources."chokidar-3.5.3"
@@ -99743,12 +101580,12 @@ in
       sources."is-number-7.0.0"
       sources."magic-string-0.25.9"
       sources."mime-3.0.0"
-      sources."miniflare-3.20231030.0"
+      sources."miniflare-3.20231218.1"
       sources."ms-2.1.2"
       sources."mustache-4.2.0"
       sources."nanoid-3.3.7"
       sources."node-forge-1.3.1"
-      sources."node-gyp-build-4.7.0"
+      sources."node-gyp-build-4.8.0"
       sources."normalize-path-3.0.0"
       sources."path-to-regexp-6.2.1"
       sources."picomatch-2.3.1"
@@ -99760,17 +101597,16 @@ in
       sources."rollup-pluginutils-2.8.2"
       sources."selfsigned-2.4.1"
       sources."source-map-0.6.1"
-      sources."source-map-support-0.5.21"
       sources."sourcemap-codec-1.4.8"
       sources."stacktracey-2.1.8"
       sources."stoppable-1.1.0"
       sources."to-regex-range-5.0.1"
       sources."tslib-2.6.2"
-      sources."undici-5.27.2"
+      sources."undici-5.28.2"
       sources."undici-types-5.26.5"
       sources."utf-8-validate-6.0.3"
-      sources."workerd-1.20231030.0"
-      sources."ws-8.14.2"
+      sources."workerd-1.20231218.0"
+      sources."ws-8.16.0"
       sources."xxhash-wasm-1.0.2"
       sources."youch-3.3.3"
       sources."zod-3.22.4"
diff --git a/pkgs/development/node-packages/overrides.nix b/pkgs/development/node-packages/overrides.nix
index 68f95a2f3b02..f49f09126e42 100644
--- a/pkgs/development/node-packages/overrides.nix
+++ b/pkgs/development/node-packages/overrides.nix
@@ -72,23 +72,6 @@ final: prev: {
     '';
   };
 
-
-  graphite-cli = prev."@withgraphite/graphite-cli".override (old: {
-    name = "graphite-cli";
-    nativeBuildInputs = with pkgs; [ installShellFiles pkg-config ];
-    buildInputs = with pkgs; [ cairo pango pixman ];
-    # 'gt completion' auto-detects zshell from environment variables:
-    # https://github.com/yargs/yargs/blob/2b6ba3139396b2e623aed404293f467f16590039/lib/completion.ts#L45
-    postInstall = ''
-      installShellCompletion --cmd gt \
-        --bash <($out/bin/gt completion) \
-        --zsh <(ZSH_NAME=zsh $out/bin/gt completion)
-    '';
-    meta = old.meta // {
-      license = lib.licenses.unfree; # no license specified
-    };
-  });
-
   graphql-language-service-cli = prev.graphql-language-service-cli.override {
     nativeBuildInputs = [ pkgs.buildPackages.makeWrapper ];
     postInstall = ''
@@ -400,9 +383,10 @@ final: prev: {
       };
   };
 
-  volar = final."@volar/vue-language-server".override {
+  volar = final."@volar/vue-language-server".override ({ meta, ... }: {
     name = "volar";
-  };
+    meta = meta // { mainProgram = "vue-language-server"; };
+  });
 
   wavedrom-cli = prev.wavedrom-cli.override {
     nativeBuildInputs = [ pkgs.pkg-config final.node-pre-gyp ];
diff --git a/pkgs/development/ocaml-modules/containers/default.nix b/pkgs/development/ocaml-modules/containers/default.nix
index ee3d7045d565..654e86ab1517 100644
--- a/pkgs/development/ocaml-modules/containers/default.nix
+++ b/pkgs/development/ocaml-modules/containers/default.nix
@@ -5,14 +5,16 @@
 }:
 
 buildDunePackage rec {
-  version = "3.12";
+  version = "3.13.1";
   pname = "containers";
 
+  minimalOCamlVersion = "4.08";
+
   src = fetchFromGitHub {
     owner = "c-cube";
     repo = "ocaml-containers";
     rev = "v${version}";
-    hash = "sha256-15Wd6k/NvjAvTmxlPlZPClODBtFXM6FG3VxniC66u88=";
+    hash = "sha256-jkXh/dBRotWXvA77M/+tm39qsCiBsH/HSs+Y9D9QCek=";
   };
 
   buildInputs = [ dune-configurator ];
diff --git a/pkgs/development/ocaml-modules/lambdapi/default.nix b/pkgs/development/ocaml-modules/lambdapi/default.nix
index ddb428f720ee..f4d1cdb717b7 100644
--- a/pkgs/development/ocaml-modules/lambdapi/default.nix
+++ b/pkgs/development/ocaml-modules/lambdapi/default.nix
@@ -19,8 +19,7 @@ buildDunePackage rec {
   pname = "lambdapi";
   version = "2.3.1";
 
-  minimalOCamlVersion = "4.08";
-  duneVersion = "3";
+  minimalOCamlVersion = "4.12";
 
   src = fetchurl {
     url = "https://github.com/Deducteam/lambdapi/releases/download/${version}/lambdapi-${version}.tbz";
diff --git a/pkgs/development/ocaml-modules/middleware/default.nix b/pkgs/development/ocaml-modules/middleware/default.nix
new file mode 100644
index 000000000000..2cdef2e5a3c4
--- /dev/null
+++ b/pkgs/development/ocaml-modules/middleware/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, alcotest
+}:
+
+buildDunePackage rec {
+  pname = "middleware";
+  version = "0.0.1";
+
+  minimalOCamlVersion = "4.14.0";
+
+  src = fetchurl {
+    url = "https://github.com/skolemlabs/middleware/releases/download/${version}/${pname}-${version}.tbz";
+    hash = "sha256-zhLEGvyZiKrdBKWcEbB4PHvYzBlkrp1Ldnon0mP2Ypg=";
+  };
+
+  checkInputs = [
+    alcotest
+  ];
+
+  doCheck = true;
+
+  meta = {
+    description = "Composable stacked functions, which can respond to inner calls";
+    homepage = "https://github.com/skolemlabs/middleware";
+    changelog = "https://github.com/skolemlabs/middleware/blob/${version}/CHANGES.md";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ sixstring982 ];
+  };
+}
+
diff --git a/pkgs/development/ocaml-modules/owl/default.nix b/pkgs/development/ocaml-modules/owl/default.nix
index 42bd4c1383fe..22aa70d9ff1c 100644
--- a/pkgs/development/ocaml-modules/owl/default.nix
+++ b/pkgs/development/ocaml-modules/owl/default.nix
@@ -1,5 +1,4 @@
-{ stdenv
-, buildDunePackage
+{ buildDunePackage
 , dune-configurator
 , fetchFromGitHub
 , alcotest
@@ -16,8 +15,6 @@ buildDunePackage rec {
 
   inherit (owl-base) version src meta;
 
-  duneVersion = "3";
-
   checkInputs = [ alcotest ];
   buildInputs = [ dune-configurator stdio ];
   propagatedBuildInputs = [
@@ -27,5 +24,7 @@ buildDunePackage rec {
     npy
   ];
 
-  doCheck = !stdenv.isDarwin; # https://github.com/owlbarn/owl/issues/462
+  doCheck = false;
+  # Tests fail with Clang: https://github.com/owlbarn/owl/issues/462
+  # and with GCC 13: https://github.com/owlbarn/owl/issues/653
 }
diff --git a/pkgs/development/ocaml-modules/ppx_deriving_yaml/default.nix b/pkgs/development/ocaml-modules/ppx_deriving_yaml/default.nix
index 9b9e72ed08db..8106f4619d13 100644
--- a/pkgs/development/ocaml-modules/ppx_deriving_yaml/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_deriving_yaml/default.nix
@@ -4,13 +4,13 @@
 
 buildDunePackage rec {
   pname = "ppx_deriving_yaml";
-  version = "0.2.1";
+  version = "0.2.2";
 
   minimalOCamlVersion = "4.08";
 
   src = fetchurl {
     url = "https://github.com/patricoferris/ppx_deriving_yaml/releases/download/v${version}/ppx_deriving_yaml-${version}.tbz";
-    hash = "sha256-3vmay8UY7d3j96VOQ+D3oYEotzVls91F51ebXWQ/9SQ=";
+    hash = "sha256-9xy43jaCpKo/On5sTTt8f0Mytyjj1JN2QuFMcoWYTBY=";
   };
 
   propagatedBuildInputs = [ ppxlib ppx_deriving yaml ];
diff --git a/pkgs/development/ocaml-modules/riot/default.nix b/pkgs/development/ocaml-modules/riot/default.nix
index e830e7034e10..81d1a48773ea 100644
--- a/pkgs/development/ocaml-modules/riot/default.nix
+++ b/pkgs/development/ocaml-modules/riot/default.nix
@@ -1,8 +1,9 @@
 { lib
-, bigstringaf
 , buildDunePackage
+, cstruct
 , fetchurl
-, iomux
+, mdx
+, poll
 , ptime
 , telemetry
 , uri
@@ -10,24 +11,29 @@
 
 buildDunePackage rec {
   pname = "riot";
-  version = "0.0.5";
+  version = "0.0.7";
 
   minimalOCamlVersion = "5.1";
 
   src = fetchurl {
     url = "https://github.com/leostera/riot/releases/download/${version}/riot-${version}.tbz";
-    hash = "sha256-Abe4LMxlaxK3MVlg2d8X60aCuPGvaOn+4zFx/uH5z4g=";
+    hash = "sha256-t+PMBh4rZXi82dUljv3nLzZX5o1iagBbQ9FfGnr/dp4=";
   };
 
   propagatedBuildInputs = [
-    bigstringaf
-    iomux
+    cstruct
+    poll
     ptime
     telemetry
     uri
   ];
 
-  doCheck = true;
+  checkInputs = [
+    mdx
+    mdx.bin
+  ];
+
+  doCheck = false; # fails on sandbox
 
   meta = {
     description = "An actor-model multi-core scheduler for OCaml 5";
diff --git a/pkgs/development/ocaml-modules/timedesc/default.nix b/pkgs/development/ocaml-modules/timedesc/default.nix
new file mode 100644
index 000000000000..b77f5af17b40
--- /dev/null
+++ b/pkgs/development/ocaml-modules/timedesc/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, fetchurl
+, buildDunePackage
+, angstrom
+, ptime
+, seq
+, timedesc-tzdb
+, timedesc-tzlocal
+}:
+
+buildDunePackage rec {
+  pname = "timedesc";
+  version = "2.0.0";
+
+  src = fetchurl {
+    url = "https://github.com/daypack-dev/timere/releases/download/timedesc-${version}/timedesc-${version}.tar.gz";
+    hash = "sha256-NnnQpWOE1mt/F5lkWRPdDwpqXCUlcNi+Z5GE6YQQLK8=";
+  };
+
+  sourceRoot = ".";
+
+  propagatedBuildInputs = [
+    angstrom
+    ptime
+    seq
+    timedesc-tzdb
+    timedesc-tzlocal
+  ];
+
+  meta = {
+    description = "OCaml date time handling library";
+    homepage = "https://github.com/daypack-dev/timere";
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.vbgl ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/timedesc/tzdb.nix b/pkgs/development/ocaml-modules/timedesc/tzdb.nix
new file mode 100644
index 000000000000..95fab02d11a0
--- /dev/null
+++ b/pkgs/development/ocaml-modules/timedesc/tzdb.nix
@@ -0,0 +1,15 @@
+{ lib
+, buildDunePackage
+, timedesc
+}:
+
+buildDunePackage {
+  pname = "timedesc-tzdb";
+
+  inherit (timedesc) version src sourceRoot;
+
+  meta = timedesc.meta // {
+    description = "Virtual library for Timedesc time zone database backends";
+  };
+}
+
diff --git a/pkgs/development/ocaml-modules/timedesc/tzlocal.nix b/pkgs/development/ocaml-modules/timedesc/tzlocal.nix
new file mode 100644
index 000000000000..6dcbfd741075
--- /dev/null
+++ b/pkgs/development/ocaml-modules/timedesc/tzlocal.nix
@@ -0,0 +1,16 @@
+{ lib
+, buildDunePackage
+, timedesc
+}:
+
+buildDunePackage {
+  pname = "timedesc-tzlocal";
+
+  inherit (timedesc) version src sourceRoot;
+
+  minimalOCamlVersion = "4.08";
+
+  meta = timedesc.meta // {
+    description = "Virtual library for Timedesc local time zone detection backends";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/tiny_httpd/default.nix b/pkgs/development/ocaml-modules/tiny_httpd/default.nix
index cb407ef585d9..2e8e537cba80 100644
--- a/pkgs/development/ocaml-modules/tiny_httpd/default.nix
+++ b/pkgs/development/ocaml-modules/tiny_httpd/default.nix
@@ -5,15 +5,15 @@
 
 buildDunePackage rec {
   pname = "tiny_httpd";
-  version = "0.12";
+  version = "0.16";
 
-  minimalOCamlVersion = "4.04";
+  minimalOCamlVersion = "4.08";
 
   src = fetchFromGitHub {
     owner = "c-cube";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256:1z9hzc0ib7pg9fsjmpggjqwrnip57izr2v0na7vc7s25lxsiag6a";
+    sha256 = "sha256-9L4WCduQNj5Jd/u3SozuXiGTkgojwfGIP5KgQmnWgQw=";
   };
 
   buildInputs = [ result ];
@@ -24,5 +24,6 @@ buildDunePackage rec {
     inherit (src.meta) homepage;
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.vbgl ];
+    mainProgram = "http_of_dir";
   };
 }
diff --git a/pkgs/development/ocaml-modules/type_eq/default.nix b/pkgs/development/ocaml-modules/type_eq/default.nix
new file mode 100644
index 000000000000..a1426789e3db
--- /dev/null
+++ b/pkgs/development/ocaml-modules/type_eq/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, alcotest
+}:
+
+buildDunePackage rec {
+  pname = "type_eq";
+  version = "0.0.1";
+
+  minimalOCamlVersion = "4.08.1";
+
+  src = fetchurl {
+    url = "https://github.com/skolemlabs/type_eq/releases/download/${version}/${pname}-${version}.tbz";
+    hash = "sha256-4u/HF92Hbf9Rcv+JTAMPhYZjoKZ1cS0mBMkzU/hxx38=";
+  };
+
+  checkInputs = [
+    alcotest
+  ];
+
+  doCheck = true;
+
+  meta = {
+    description = "Type equality proofs for OCaml 4";
+    homepage = "https://github.com/skolemlabs/type_eq";
+    changelog = "https://github.com/skolemlabs/type_eq/blob/${version}/CHANGES.md";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ sixstring982 ];
+  };
+}
+
diff --git a/pkgs/development/ocaml-modules/zipc/default.nix b/pkgs/development/ocaml-modules/zipc/default.nix
index a4b22de3e94b..a31d2644e668 100644
--- a/pkgs/development/ocaml-modules/zipc/default.nix
+++ b/pkgs/development/ocaml-modules/zipc/default.nix
@@ -7,11 +7,11 @@ lib.throwIfNot (lib.versionAtLeast ocaml.version "4.14")
 
 stdenv.mkDerivation rec {
   pname = "ocaml${ocaml.version}-zipc";
-  version = "0.1.0";
+  version = "0.2.0";
 
   src = fetchurl {
     url = "https://erratique.ch/software/zipc/releases/zipc-${version}.tbz";
-    hash = "sha256-vU4AGW1MjQ31xjwvyRKSn1AwS0X6gjLvaJGYKqzFRpk=";
+    hash = "sha256-YQqkCURwrJgFH0+zgfket25zJQ4w+Tcc1mTSrDuWRt0=";
   };
 
   strictDeps = true;
diff --git a/pkgs/development/perl-modules/ham/default.nix b/pkgs/development/perl-modules/ham/default.nix
index 8005322cff73..8d1fce1ab897 100644
--- a/pkgs/development/perl-modules/ham/default.nix
+++ b/pkgs/development/perl-modules/ham/default.nix
@@ -5,24 +5,24 @@
 , openssh
 , GitRepository
 , URI
-, XMLMini
+, XMLParser
 }:
 
 buildPerlPackage {
   pname = "ham-unstable";
-  version = "2022-10-26";
+  version = "2023-10-06";
 
   src = fetchFromGitHub {
     owner = "kernkonzept";
     repo = "ham";
-    rev = "f2f10516177d00a79fe81701351632df2544ba4e";
-    hash = "sha256-cxlZh1x8ycpZIwSeOwqB6BtwYaMoWtSPaeiyW41epdk=";
+    rev = "90d104ce481ee8f9b770be4b37d97f34eef5f82f";
+    hash = "sha256-DeHH7k9K7CmQW6eOyf8TCV/HNYS30oFnI1b8ztBDk/o=";
   };
 
   outputs = [ "out" ];
 
   nativeBuildInputs = [ makeWrapper ];
-  propagatedBuildInputs = [ openssh GitRepository URI XMLMini ];
+  propagatedBuildInputs = [ openssh GitRepository URI XMLParser ];
 
   preConfigure = ''
     patchShebangs .
@@ -38,8 +38,6 @@ buildPerlPackage {
       --prefix PATH : ${openssh}/bin
   '';
 
-  doCheck = false;
-
   meta = with lib; {
     description = "A tool to manage big projects consisting of multiple loosely-coupled git repositories";
     homepage = "https://github.com/kernkonzept/ham";
diff --git a/pkgs/development/php-packages/amqp/default.nix b/pkgs/development/php-packages/amqp/default.nix
index 5153c500f2ba..4d19fd758997 100644
--- a/pkgs/development/php-packages/amqp/default.nix
+++ b/pkgs/development/php-packages/amqp/default.nix
@@ -1,7 +1,7 @@
 { buildPecl, lib, rabbitmq-c, fetchFromGitHub }:
 
 let
-  version = "2.1.1";
+  version = "2.1.2";
 in buildPecl {
   inherit version;
   pname = "amqp";
@@ -10,7 +10,7 @@ in buildPecl {
     owner = "php-amqp";
     repo = "php-amqp";
     rev = "v${version}";
-    sha256 = "sha256-QHiQL3INd0zQpmCOcJx7HhN770m9ql0Cs63OTOLOrNQ=";
+    sha256 = "sha256-jVD5dq2kgFnprj190W9hnLG+9yPLWm19AjoGBBz6v8c=";
   };
 
   buildInputs = [ rabbitmq-c ];
diff --git a/pkgs/development/php-packages/castor/default.nix b/pkgs/development/php-packages/castor/default.nix
index 25ce4df5403f..70d07c1b8c70 100644
--- a/pkgs/development/php-packages/castor/default.nix
+++ b/pkgs/development/php-packages/castor/default.nix
@@ -8,16 +8,16 @@
 
 php.buildComposerProject (finalAttrs: {
   pname = "castor";
-  version = "0.10.0";
+  version = "0.11.1";
 
   src = fetchFromGitHub {
     owner = "jolicode";
     repo = "castor";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-/pUo3Lure5N6vsh8o8cQDqlWj8vgOC0ctenO/93K3zQ=";
+    hash = "sha256-FqFCKvhOEtDERNRLB3613geEiNDOlQuLeCa5uVvoMdM=";
   };
 
-  vendorHash = "sha256-l/paOQmJs8/7YN/XsY6wklojLE3z3GIV3jrgZvyQp/8=";
+  vendorHash = "sha256-+ORwa3+tkVJ9KU+9URg+1lyHoL1swxg6DG5ex8HjigE=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/development/php-packages/phalcon/default.nix b/pkgs/development/php-packages/phalcon/default.nix
index 8001d586f1b0..95bd2d894457 100644
--- a/pkgs/development/php-packages/phalcon/default.nix
+++ b/pkgs/development/php-packages/phalcon/default.nix
@@ -2,13 +2,13 @@
 
 buildPecl rec {
   pname = "phalcon";
-  version = "5.5.0";
+  version = "5.6.0";
 
   src = fetchFromGitHub {
     owner = "phalcon";
     repo = "cphalcon";
     rev = "v${version}";
-    hash = "sha256-ycE8A3ESV97COTdbjkrOJCZpEmP1l9nkmNnhjJGaBeE=";
+    hash = "sha256-EtwhWRBqJOMndmsy+Rgc4MVjFZg/Fm97qkSuTGxqHhI=";
   };
 
   internalDeps = [ php.extensions.session php.extensions.pdo ];
diff --git a/pkgs/development/php-packages/php-cs-fixer/default.nix b/pkgs/development/php-packages/php-cs-fixer/default.nix
index f7cfd3967771..611e5f263091 100644
--- a/pkgs/development/php-packages/php-cs-fixer/default.nix
+++ b/pkgs/development/php-packages/php-cs-fixer/default.nix
@@ -2,14 +2,14 @@
 
 let
   pname = "php-cs-fixer";
-  version = "3.45.0";
+  version = "3.49.0";
 in
 mkDerivation {
   inherit pname version;
 
   src = fetchurl {
     url = "https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v${version}/php-cs-fixer.phar";
-    sha256 = "sha256-0i5ES1BfekNAOJuGQ4q9lqle/RS3YxgLt+CJa/Ow5/k=";
+    sha256 = "sha256-cnH6SEEaEh7X9zlHgHD8eOpaSUDnqhL2SMnNGSj1nJQ=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/development/php-packages/relay/default.nix b/pkgs/development/php-packages/relay/default.nix
index d21667aa0622..ee393c91d568 100644
--- a/pkgs/development/php-packages/relay/default.nix
+++ b/pkgs/development/php-packages/relay/default.nix
@@ -13,42 +13,42 @@
 }:
 
 let
-  version = "0.6.8";
+  version = "0.7.0";
   hashes = {
     "aarch64-darwin" = {
       platform = "darwin-arm64";
       hash = {
-        "8.0" = "sha256-DDn5JcRux8DN1728cqMWL7eMwueiY+jO/+fw2+ND394=";
-        "8.1" = "sha256-4r954EKFUA45G55MpnnKcYONCNe45dIffiygs6r8OOI=";
-        "8.2" = "sha256-qB2IWSsyAKzbUxjt2nz5uLp7PkgPPna1mEBqvz8oTHc=";
-        "8.3" = "sha256-0s+4zNknH8lEfGS8oU3JjVEuX3mZEo9AULE0hlv11mQ=";
+        "8.0" = "sha256-pd/9TWZPgAfmVM0/QVYRHu5k4gANcxCSnfAl38irO0Y=";
+        "8.1" = "sha256-OpxE/nu8MZedTmKGQeyJm36pyyHlRpW11avuGcnGP68=";
+        "8.2" = "sha256-+CMPdXZotUr43Qda1FwGpuWPEE1K4RuBNE9fiokAtoY=";
+        "8.3" = "sha256-lbKVxOd5gK5VDGnJ42w7L5DFKsBQDZXgEZLR/Y0gP88=";
       };
     };
     "aarch64-linux" = {
       platform = "debian-aarch64+libssl3";
       hash = {
-        "8.0" = "sha256-tLrampq1BBrhC+F/v2vcNBJp+16wzjHC8CGFKSswPUo=";
-        "8.1" = "sha256-DQG3maP9ImwSCTEmP152l5wr7A964lg9kNFAmVQhPqA=";
-        "8.2" = "sha256-3Ygb2J+MFL+H1zsepBaQKg/ybqgXVwFWt2QrNRctT8o=";
-        "8.3" = "sha256-MKpN09+Ai9NFARUEL+pkxQxbpRpFTx78als8ViXMdB8=";
+        "8.0" = "sha256-NfeC3p0YLYz3NbjzjMRRuzMsnYe9JRwlBjddAG2WV7g=";
+        "8.1" = "sha256-kvO0PE3BSgFSfe1zHh3WnygQfVV+5V0YFfClBim1Kj4=";
+        "8.2" = "sha256-illxRqqwMKVNAp6BD+mktKDccM7B/Q1W1KF9UB6aMUQ=";
+        "8.3" = "sha256-QdB7g+ePJU8qt/BVo1CFnQ2vfkqR29WueBy3dLOOaR0=";
       };
     };
     "x86_64-darwin" = {
       platform = "darwin-x86-64";
       hash = {
-        "8.0" = "sha256-jYnhJowVgryKSec+rOfyBiH2gZyasr1h1I+sjPiLods=";
-        "8.1" = "sha256-VKvVo6so0NOfiq7JjnanBEUDa1Iqmkn9egKnOJSCHTg=";
-        "8.2" = "sha256-WXWhSljy199UbZiEjfC50XvnKfVEU54lPa6e2+jCqiQ=";
-        "8.3" = "sha256-CrJoONSm0aXlBWjsRqAJC39qB4tHkMuLAvM5d847DsE=";
+        "8.0" = "sha256-rd3pt2N22bF4a8OOwksI7KJjR91IoxHwk3LcKuHSpV0=";
+        "8.1" = "sha256-Y/moZrBe4rooQBSQKS8vPCTjviHKy4O7d4T1kD3udC4=";
+        "8.2" = "sha256-H3EWFk/ZmE+fSU98nLHyq1p1vtU/TYp28OzNLox6kYY=";
+        "8.3" = "sha256-vZTarrauo7U2JLOXUCwmu2h+vBtWZpm0Q39KkuLyVgY=";
       };
     };
     "x86_64-linux" = {
       platform = "debian-x86-64+libssl3";
       hash = {
-        "8.0" = "sha256-kzPlotJWsUIhYUFUwcXEBGv5eNfCNLDNgrs+IqZPH5c=";
-        "8.1" = "sha256-QBnKHXBW2XpD4GvphzyMPiIrOfs9pzyG2Fv/VyV+h9k=";
-        "8.2" = "sha256-yk+dkULtWVIccKurBdT96HOPbW8Q9l44iYpAAcoZYog=";
-        "8.3" = "sha256-MpMupGFGxipghoA57EOytSsDsm9b25rc/VPIza+QMfM=";
+        "8.0" = "sha256-jq/nHC9IGevYBqbM08nF71P9jH6z4NB8s1NdjHOfXQA=";
+        "8.1" = "sha256-vbFONNHpuSTQsZMrAIdGEoBl5ySchcFkSuhW5uZKbWg=";
+        "8.2" = "sha256-mXUAMkxwtuPZbIyCybBcxpmaBplr5h59pZEdgJ3PWtA=";
+        "8.3" = "sha256-YL0P8GtFkV0cmJX1y6wd/HtA0LFzeuOcKDLUCagxHxE=";
       };
     };
   };
diff --git a/pkgs/development/php-packages/spx/default.nix b/pkgs/development/php-packages/spx/default.nix
index 020927ccf491..b6f7598ffe5a 100644
--- a/pkgs/development/php-packages/spx/default.nix
+++ b/pkgs/development/php-packages/spx/default.nix
@@ -1,7 +1,7 @@
 { buildPecl, lib, fetchFromGitHub, zlib }:
 
 let
-  version = "0.4.14";
+  version = "0.4.15";
 in buildPecl {
   inherit version;
   pname = "spx";
@@ -10,7 +10,7 @@ in buildPecl {
     owner = "NoiseByNorthwest";
     repo = "php-spx";
     rev = "v${version}";
-    hash = "sha256-LdR3ilknSUuNTAb9wfIpNGdaR3uwd4C47nZYRzfTfx8=";
+    hash = "sha256-gw6wbPt1Qy0vNfT0flq7bxpnGU3SgJvPVhk8H0Imvx4=";
   };
 
   configureFlags = [
diff --git a/pkgs/development/php-packages/zstd/default.nix b/pkgs/development/php-packages/zstd/default.nix
new file mode 100644
index 000000000000..a9428ca477a0
--- /dev/null
+++ b/pkgs/development/php-packages/zstd/default.nix
@@ -0,0 +1,32 @@
+{ buildPecl, lib, zstd, pkg-config, fetchFromGitHub }:
+
+let
+  version = "0.13.3";
+in buildPecl {
+  inherit version;
+  pname = "zstd";
+
+  src = fetchFromGitHub {
+    owner = "kjdev";
+    repo = "php-ext-zstd";
+    rev = version;
+    hash = "sha256-jEuL93ScF0/FlfUvib6uZafOkIe0+VkWV/frpSjTkvY=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [ zstd ];
+
+  configureFlags = [
+    "--with-libzstd"
+  ];
+
+  meta = with lib; {
+    description = "Zstd Extension for PHP";
+    license = licenses.mit;
+    homepage = "https://github.com/kjdev/php-ext-zstd";
+    maintainers = with lib.maintainers; [ shyim ];
+  };
+}
diff --git a/pkgs/development/python-modules/acme/default.nix b/pkgs/development/python-modules/acme/default.nix
index 538b8dff964a..65e930e07414 100644
--- a/pkgs/development/python-modules/acme/default.nix
+++ b/pkgs/development/python-modules/acme/default.nix
@@ -3,7 +3,7 @@
 , cryptography
 , pyasn1
 , pyopenssl
-, pyRFC3339
+, pyrfc3339
 , josepy
 , pytz
 , requests
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   format = "setuptools";
 
   propagatedBuildInputs = [
-    cryptography pyasn1 pyopenssl pyRFC3339 pytz requests requests-toolbelt six
+    cryptography pyasn1 pyopenssl pyrfc3339 pytz requests requests-toolbelt six
     werkzeug ndg-httpsclient josepy
   ];
 
diff --git a/pkgs/development/python-modules/acquire/default.nix b/pkgs/development/python-modules/acquire/default.nix
index aabd6216c904..c2c4e125e328 100644
--- a/pkgs/development/python-modules/acquire/default.nix
+++ b/pkgs/development/python-modules/acquire/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "acquire";
-  version = "3.11";
+  version = "3.12";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "fox-it";
     repo = "acquire";
     rev = "refs/tags/${version}";
-    hash = "sha256-0aLPDh9lrKpHo97VFFwCmPXyXXNFGgkdjoppzm3BCTo=";
+    hash = "sha256-anRNCnLDKHAEfOWi6m1n4R9lvFTlZgw5xxh39exvzH0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/adafruit-platformdetect/default.nix b/pkgs/development/python-modules/adafruit-platformdetect/default.nix
index 138f339a17ac..baecca21fd5e 100644
--- a/pkgs/development/python-modules/adafruit-platformdetect/default.nix
+++ b/pkgs/development/python-modules/adafruit-platformdetect/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "adafruit-platformdetect";
-  version = "3.58.0";
+  version = "3.60.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "Adafruit-PlatformDetect";
     inherit version;
-    hash = "sha256-9pucdj4rXCLitoNqu1ddETY9XUmIlIfC0hIoKJ54Ks8=";
+    hash = "sha256-ZE3rETwAuhv7pHA/zYDKtStWONShFG8tWDeN9K8JdG8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/adjusttext/default.nix b/pkgs/development/python-modules/adjusttext/default.nix
index d8d82edb8a31..a97353baa987 100644
--- a/pkgs/development/python-modules/adjusttext/default.nix
+++ b/pkgs/development/python-modules/adjusttext/default.nix
@@ -4,27 +4,34 @@
 , matplotlib
 , numpy
 , packaging
+, pythonOlder
+, scipy
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "adjusttext";
-  version = "0.8.1";
-  format = "setuptools";
+  version = "1.0.4";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "Phlya";
-    repo = pname;
-    rev = "refs/tags/${version}";
+    repo = "adjusttext";
+    rev = "refs/tags/v${version}";
     hash = "sha256-Lhl6ykx5ynf+pBub5tBUaALm1w/88jbuSXPigE216NY=";
   };
 
   nativeBuildInputs = [
     packaging
+    setuptools
   ];
 
   propagatedBuildInputs = [
     matplotlib
     numpy
+    scipy
   ];
 
   # Project has no tests
@@ -37,6 +44,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Iteratively adjust text position in matplotlib plots to minimize overlaps";
     homepage = "https://github.com/Phlya/adjustText";
+    changelog = "https://github.com/Phlya/adjustText/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ samuela ];
   };
diff --git a/pkgs/development/python-modules/aesedb/default.nix b/pkgs/development/python-modules/aesedb/default.nix
index 5dd95fe9eae5..62f9b0dd5b94 100644
--- a/pkgs/development/python-modules/aesedb/default.nix
+++ b/pkgs/development/python-modules/aesedb/default.nix
@@ -12,16 +12,16 @@
 
 buildPythonPackage rec {
   pname = "aesedb";
-  version = "0.1.4";
-  format = "pyproject";
+  version = "0.1.6";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "skelsec";
-    repo = pname;
+    repo = "aesedb";
     rev = "refs/tags/${version}";
-    hash = "sha256-QqPy68rWabRY0Y98W+odwP/10gMtLAQ0Ah2+ZLkqHPI=";
+    hash = "sha256-nYuMWE03Rsw1XuD/bxccpu8rddeXgS/EKJcO1VBLTLU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/agate-sql/default.nix b/pkgs/development/python-modules/agate-sql/default.nix
index 0e339d0d2135..70cb2fbda688 100644
--- a/pkgs/development/python-modules/agate-sql/default.nix
+++ b/pkgs/development/python-modules/agate-sql/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "agate-sql";
-  version = "0.7.0";
+  version = "0.7.2";
   format = "setuptools";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-uyHkkc3KzuYulOtod9KkHQmszVh2mrrCOLwvQt6JTMk=";
+    hash = "sha256-mxswKEpXP9QWdZQ3Jz3MXIECK98vrLJLSqAppir9U7A=";
   };
 
   propagatedBuildInputs = [ agate sqlalchemy ];
diff --git a/pkgs/development/python-modules/aio-geojson-geonetnz-quakes/default.nix b/pkgs/development/python-modules/aio-geojson-geonetnz-quakes/default.nix
index f8daf10c3c1f..65973321f95b 100644
--- a/pkgs/development/python-modules/aio-geojson-geonetnz-quakes/default.nix
+++ b/pkgs/development/python-modules/aio-geojson-geonetnz-quakes/default.nix
@@ -1,29 +1,34 @@
 { lib
 , aio-geojson-client
 , aiohttp
-, aresponses
+, aioresponses
 , buildPythonPackage
 , fetchFromGitHub
 , pytest-asyncio
 , pytestCheckHook
 , pytz
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "aio-geojson-geonetnz-quakes";
-  version = "0.15";
-  format = "setuptools";
+  version = "0.16";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "exxamalte";
     repo = "python-aio-geojson-geonetnz-quakes";
     rev = "refs/tags/v${version}";
-    hash = "sha256-/EPPEGLtiZBorZMnVg0NqwnHCbCXyZzz4449MzAYQx8=";
+    hash = "sha256-8OpmA3yHjUY+N5Obri4RWeuJiW916xGSWUYUgdpmjkw=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     aio-geojson-client
     aiohttp
@@ -33,7 +38,7 @@ buildPythonPackage rec {
   __darwinAllowLocalNetworking = true;
 
   nativeCheckInputs = [
-    aresponses
+    aioresponses
     pytest-asyncio
     pytestCheckHook
   ];
diff --git a/pkgs/development/python-modules/aio-geojson-geonetnz-volcano/default.nix b/pkgs/development/python-modules/aio-geojson-geonetnz-volcano/default.nix
index d97070df5907..35e558fdc262 100644
--- a/pkgs/development/python-modules/aio-geojson-geonetnz-volcano/default.nix
+++ b/pkgs/development/python-modules/aio-geojson-geonetnz-volcano/default.nix
@@ -1,20 +1,22 @@
 { lib
 , aio-geojson-client
 , aiohttp
-, aresponses
+, aioresponses
 , mock
 , buildPythonPackage
 , fetchFromGitHub
 , pytest-asyncio
+, pytest-xdist
 , pytestCheckHook
 , pytz
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "aio-geojson-geonetnz-volcano";
-  version = "0.8";
-  format = "setuptools";
+  version = "0.9";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -22,9 +24,13 @@ buildPythonPackage rec {
     owner = "exxamalte";
     repo = "python-aio-geojson-geonetnz-volcano";
     rev = "refs/tags/v${version}";
-    hash = "sha256-wJVFjy6QgYb6GX9pZTylYFvCRWmD2lAFZKnodsa8Yqo=";
+    hash = "sha256-ZmGDO9EROFMlxdj5txNh719M+3l/0jRFbB2h2AyZAdI=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     aio-geojson-client
     aiohttp
@@ -34,9 +40,10 @@ buildPythonPackage rec {
   __darwinAllowLocalNetworking = true;
 
   nativeCheckInputs = [
-    aresponses
+    aioresponses
     mock
     pytest-asyncio
+    pytest-xdist
     pytestCheckHook
   ];
 
@@ -46,7 +53,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module for accessing the GeoNet NZ Volcanic GeoJSON feeds";
-    homepage = "https://github.com/exxamalte/pythonaio-geojson-geonetnz-volcano";
+    homepage = "https://github.com/exxamalte/python-aio-geojson-geonetnz-volcano";
     changelog = "https://github.com/exxamalte/python-aio-geojson-geonetnz-volcano/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
diff --git a/pkgs/development/python-modules/aio-geojson-nsw-rfs-incidents/default.nix b/pkgs/development/python-modules/aio-geojson-nsw-rfs-incidents/default.nix
index bf18c2bf184b..94724e800f58 100644
--- a/pkgs/development/python-modules/aio-geojson-nsw-rfs-incidents/default.nix
+++ b/pkgs/development/python-modules/aio-geojson-nsw-rfs-incidents/default.nix
@@ -1,29 +1,34 @@
 { lib
 , aio-geojson-client
 , aiohttp
-, aresponses
+, aioresponses
 , buildPythonPackage
 , fetchFromGitHub
 , pytest-asyncio
 , pytestCheckHook
-, pytz
 , pythonOlder
+, pytz
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "aio-geojson-nsw-rfs-incidents";
-  version = "0.6";
-  format = "setuptools";
+  version = "0.7";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "exxamalte";
     repo = "python-aio-geojson-nsw-rfs-incidents";
     rev = "refs/tags/v${version}";
-    hash = "sha256-pn0r5iLpNnK3xmAhq/oX90hdiHgFDuwDQqfAzkp5jmw=";
+    hash = "sha256-HksiKfXhLASAgU81x7YiOXFmBLIkqJ9ldWLLY1ZbZlk=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     aio-geojson-client
     aiohttp
@@ -33,7 +38,7 @@ buildPythonPackage rec {
   __darwinAllowLocalNetworking = true;
 
   nativeCheckInputs = [
-    aresponses
+    aioresponses
     pytest-asyncio
     pytestCheckHook
   ];
diff --git a/pkgs/development/python-modules/aio-geojson-usgs-earthquakes/default.nix b/pkgs/development/python-modules/aio-geojson-usgs-earthquakes/default.nix
index 89a1fd75b8f2..339481624a35 100644
--- a/pkgs/development/python-modules/aio-geojson-usgs-earthquakes/default.nix
+++ b/pkgs/development/python-modules/aio-geojson-usgs-earthquakes/default.nix
@@ -1,29 +1,34 @@
 { lib
 , aio-geojson-client
 , aiohttp
-, aresponses
+, aioresponses
 , buildPythonPackage
 , fetchFromGitHub
 , pytest-asyncio
 , pytestCheckHook
 , pytz
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "aio-geojson-usgs-earthquakes";
-  version = "0.2";
-  format = "setuptools";
+  version = "0.3";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "exxamalte";
     repo = "python-aio-geojson-usgs-earthquakes";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ET8wcOep4tSZJXyL+XvfW2j9eKp6LrBk/g18ZlgLIzc=";
+    hash = "sha256-Q9vBy5R5N5ihJdSMALo88qVYcFVs2/33lYRPdLej4S8=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     aio-geojson-client
     aiohttp
@@ -37,7 +42,7 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    aresponses
+    aioresponses
     pytest-asyncio
   ];
 
diff --git a/pkgs/development/python-modules/aio-pika/default.nix b/pkgs/development/python-modules/aio-pika/default.nix
index 574d386b95de..65f15fa639d5 100644
--- a/pkgs/development/python-modules/aio-pika/default.nix
+++ b/pkgs/development/python-modules/aio-pika/default.nix
@@ -7,36 +7,31 @@
 , poetry-core
 , pytestCheckHook
 , pythonOlder
-, setuptools
 , shortuuid
-, typing-extensions
 , yarl
 }:
 
 buildPythonPackage rec {
   pname = "aio-pika";
-  version = "9.3.1";
+  version = "9.4.0";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "mosquito";
     repo = "aio-pika";
     rev = "refs/tags/${version}";
-    hash = "sha256-RbDiJvbFNuXIqFvevLpk5sy5WDinwaWwSqa+XI6Dljo=";
+    hash = "sha256-EntV/CBvT4II4nxsVe3KjNA4EPV7Oc6h2G0fX0fHKTU=";
   };
 
   nativeBuildInputs = [
-    setuptools
     poetry-core
   ];
 
   propagatedBuildInputs = [
     aiormq
     yarl
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/aiocomelit/default.nix b/pkgs/development/python-modules/aiocomelit/default.nix
index 5f8ca91e7d41..77ebaa67b68f 100644
--- a/pkgs/development/python-modules/aiocomelit/default.nix
+++ b/pkgs/development/python-modules/aiocomelit/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "aiocomelit";
-  version = "0.7.3";
+  version = "0.8.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.10";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "chemelli74";
     repo = "aiocomelit";
     rev = "refs/tags/v${version}";
-    hash = "sha256-rtMR3j/DwHVgf4RYXx1Y+W/N8U5pSaLnRwnRmuLbFEY=";
+    hash = "sha256-SjyC/KiszQVVmctyqCn3i0DureuCtDlUhJTHC6+PQ2c=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/aioelectricitymaps/default.nix b/pkgs/development/python-modules/aioelectricitymaps/default.nix
index 1c13880ec497..753a108d93a7 100644
--- a/pkgs/development/python-modules/aioelectricitymaps/default.nix
+++ b/pkgs/development/python-modules/aioelectricitymaps/default.nix
@@ -2,8 +2,9 @@
 , aiohttp
 , aresponses
 , buildPythonPackage
-, dataclasses-json
 , fetchFromGitHub
+, mashumaro
+, orjson
 , poetry-core
 , pytest-asyncio
 , pytestCheckHook
@@ -13,25 +14,31 @@
 
 buildPythonPackage rec {
   pname = "aioelectricitymaps";
-  version = "0.1.6";
+  version = "0.3.0";
   pyproject = true;
 
-  disabled = pythonOlder "3.10";
+  disabled = pythonOlder "3.11";
 
   src = fetchFromGitHub {
     owner = "jpbede";
     repo = "aioelectricitymaps";
     rev = "refs/tags/v${version}";
-    hash = "sha256-SyI+2hxKOiSdx5e+vkHLsIk5xj4gNvmfZTYZ10oJhfc=";
+    hash = "sha256-saIzVbgYx5nIM5fk7i3wu4X1gOIj81L/rRNq5Xl4cnw=";
   };
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-warn "--cov" ""
+  '';
+
   nativeBuildInputs = [
     poetry-core
   ];
 
   propagatedBuildInputs = [
     aiohttp
-    dataclasses-json
+    mashumaro
+    orjson
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/aioftp/default.nix b/pkgs/development/python-modules/aioftp/default.nix
index 290935e8c2ce..6aa37699ca4a 100644
--- a/pkgs/development/python-modules/aioftp/default.nix
+++ b/pkgs/development/python-modules/aioftp/default.nix
@@ -6,32 +6,48 @@
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
+, setuptools
 , siosocks
 , trustme
 }:
 
 buildPythonPackage rec {
   pname = "aioftp";
-  version = "0.21.4";
-  format = "setuptools";
+  version = "0.22.3";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.11";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-KLsm1GFsfDgaFUMoH5hwUbjS0dW/rwI9nn4sIQXFG7k=";
+    hash = "sha256-uqKxMYaqAWIuS4LyfC9I9Nr7SORXprGPzamakl4NwnA=";
   };
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace " --cov" ""
+  '';
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     siosocks
   ];
 
+  passthru.optional-dependencies = {
+    socks = [
+      siosocks
+    ];
+  };
+
   nativeCheckInputs = [
     async-timeout
     pytest-asyncio
     pytestCheckHook
     trustme
-  ];
+  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
   disabledTests = lib.optionals stdenv.isDarwin [
     # uses 127.0.0.2, which macos doesn't like
@@ -44,7 +60,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python FTP client/server for asyncio";
-    homepage = "https://github.com/aio-libs/aioftp";
+    homepage = "https://aioftp.readthedocs.io/";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/aiogithubapi/default.nix b/pkgs/development/python-modules/aiogithubapi/default.nix
index 3eb23c4a6641..59367acb041a 100644
--- a/pkgs/development/python-modules/aiogithubapi/default.nix
+++ b/pkgs/development/python-modules/aiogithubapi/default.nix
@@ -15,23 +15,26 @@
 buildPythonPackage rec {
   pname = "aiogithubapi";
   version = "23.11.0";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "ludeeus";
-    repo = pname;
+    repo = "aiogithubapi";
     rev = "refs/tags/${version}";
     hash = "sha256-SbpfHKD4QJuCe3QG0GTvsffkuFiGPLEUXOVW9f1gyTI=";
   };
 
+  __darwinAllowLocalNetworking = true;
+
   postPatch = ''
     # Upstream is releasing with the help of a CI to PyPI, GitHub releases
     # are not in their focus
     substituteInPlace pyproject.toml \
       --replace 'version = "0"' 'version = "${version}"' \
-      --replace 'backoff = "^1.10.0"' 'backoff = "*"'
+      --replace 'backoff = "^1.10.0"' 'backoff = "*"' \
+      --replace 'sigstore = "<2"' 'sigstore = "*"'
   '';
 
   nativeBuildInputs = [
@@ -55,10 +58,19 @@ buildPythonPackage rec {
     "--asyncio-mode=auto"
   ];
 
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
   pythonImportsCheck = [
     "aiogithubapi"
   ];
 
+  disabledTests = [
+    # sigstore.errors.TUFError: Failed to refresh TUF metadata
+    "test_sigstore"
+  ];
+
   meta = with lib; {
     description = "Python client for the GitHub API";
     homepage = "https://github.com/ludeeus/aiogithubapi";
diff --git a/pkgs/development/python-modules/aiohomekit/default.nix b/pkgs/development/python-modules/aiohomekit/default.nix
index 106ba441f88c..8ea84581873a 100644
--- a/pkgs/development/python-modules/aiohomekit/default.nix
+++ b/pkgs/development/python-modules/aiohomekit/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "aiohomekit";
-  version = "3.1.3";
+  version = "3.1.4";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "Jc2k";
     repo = "aiohomekit";
     rev = "refs/tags/${version}";
-    hash = "sha256-LQplvI6P42dI2vIaWyL50cj9k543qeUoHUogDkBaPvI=";
+    hash = "sha256-hZhbmEEqmhvoxGD4hvy4SDQWG5Xk1cmzFDSNa742iMs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/aiomqtt/default.nix b/pkgs/development/python-modules/aiomqtt/default.nix
index c7d7b5dd7a99..634c031cbd74 100644
--- a/pkgs/development/python-modules/aiomqtt/default.nix
+++ b/pkgs/development/python-modules/aiomqtt/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "aiomqtt";
-  version = "1.2.1";
+  version = "2.0.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "sbtinstruments";
     repo = "aiomqtt";
     rev = "refs/tags/v${version}";
-    hash = "sha256-P8p21wjmFDvI0iobpQsWkKYleY4M0R3yod3/mJ7V+Og=";
+    hash = "sha256-Ww4NdCtT04b4tRmarJjB4xmfRBNIQekP8iARAdpmBH0=";
   };
 
   nativeBuildInputs = [
@@ -50,7 +50,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "The idiomatic asyncio MQTT client, wrapped around paho-mqtt";
     homepage = "https://github.com/sbtinstruments/aiomqtt";
-    changelog = "https://github.com/sbtinstruments/aiomqtt/blob/${version}/CHANGELOG.md";
+    changelog = "https://github.com/sbtinstruments/aiomqtt/blob/${src.rev}/CHANGELOG.md";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/aioopenexchangerates/default.nix b/pkgs/development/python-modules/aioopenexchangerates/default.nix
index 1cfee59a0003..6f18127ed167 100644
--- a/pkgs/development/python-modules/aioopenexchangerates/default.nix
+++ b/pkgs/development/python-modules/aioopenexchangerates/default.nix
@@ -1,7 +1,7 @@
 { lib
 , aiohttp
 , aioresponses
-, pydantic
+, pydantic_1
 , buildPythonPackage
 , fetchFromGitHub
 , poetry-core
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "aioopenexchangerates";
-  version = "0.4.5";
+  version = "0.4.8";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "MartinHjelmare";
     repo = "aioopenexchangerates";
     rev = "refs/tags/v${version}";
-    hash = "sha256-4mvd5G4qpebocg74Kz/+XtJovDnGJJYPigyhke9YDjA=";
+    hash = "sha256-qwqhbHp4JPsbA6g7SI2frtqhayCmA1s3pTW2S4r6gmw=";
   };
 
   postPatch = ''
@@ -35,7 +35,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     aiohttp
-    pydantic
+    pydantic_1
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/aiooss2/default.nix b/pkgs/development/python-modules/aiooss2/default.nix
index 0c0e512dae98..2d30e0422ef3 100644
--- a/pkgs/development/python-modules/aiooss2/default.nix
+++ b/pkgs/development/python-modules/aiooss2/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "aiooss2";
-  version = "0.2.8";
+  version = "0.2.9";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "karajan1001";
     repo = "aiooss2";
     rev = "refs/tags/${version}";
-    hash = "sha256-PwgbUZAuk2woEmLYDdWF5hTs19DASxxUv3Ga844ai7g=";
+    hash = "sha256-LdH04pRioxpHY1amRO90l9l5540IsDxmQcrEUVSq8dk=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/aiopvapi/default.nix b/pkgs/development/python-modules/aiopvapi/default.nix
index 710421cd366e..1a5689f3df43 100644
--- a/pkgs/development/python-modules/aiopvapi/default.nix
+++ b/pkgs/development/python-modules/aiopvapi/default.nix
@@ -1,16 +1,16 @@
 { lib
 , aiohttp
-, async-timeout
 , buildPythonPackage
 , fetchFromGitHub
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "aiopvapi";
   version = "3.0.1";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -21,9 +21,18 @@ buildPythonPackage rec {
     hash = "sha256-+jhfp8gLEmL8TGPPN7QY8lw1SkV4sMSDb4VSq2OJ6PU=";
   };
 
+  postPatch = ''
+    # https://github.com/sander76/aio-powerview-api/pull/31
+    substituteInPlace setup.py \
+      --replace '"asyncio", ' ""
+  '';
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     aiohttp
-    async-timeout
   ];
 
   nativeCheckInputs = [
@@ -34,9 +43,20 @@ buildPythonPackage rec {
     "aiopvapi"
   ];
 
+  disabledTestPaths = [
+    # https://github.com/sander76/aio-powerview-api/issues/32
+    "tests/test_shade.py"
+    "tests/test_scene.py"
+    "tests/test_room.py"
+    "tests/test_apiresource.py"
+    "tests/test_hub.py"
+    "tests/test_scene_members.py"
+  ];
+
   meta = with lib; {
     description = "Python API for the PowerView API";
     homepage = "https://github.com/sander76/aio-powerview-api";
+    changelog = "https://github.com/sander76/aio-powerview-api/releases/tag/v${version}";
     license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/aioquic/default.nix b/pkgs/development/python-modules/aioquic/default.nix
index fc0fe63de4e5..0d9801df1f82 100644
--- a/pkgs/development/python-modules/aioquic/default.nix
+++ b/pkgs/development/python-modules/aioquic/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , certifi
+, cryptography
 , fetchPypi
 , openssl
 , pylsqpack
@@ -13,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "aioquic";
-  version = "0.9.23";
+  version = "0.9.25";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-UsnaYO0IN/6LimoNfc8N++vsjpoCfhDr9yBPBWnFj6g=";
+    hash = "sha256-cHlceJBTJthVwq5SQHIjSq5YbHibgSkuJy0CHpsEMKM=";
   };
 
   nativeBuildInputs = [
@@ -29,6 +30,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     certifi
+    cryptography
     pylsqpack
     pyopenssl
     service-identity
diff --git a/pkgs/development/python-modules/aiormq/default.nix b/pkgs/development/python-modules/aiormq/default.nix
index 14c0d0f7b513..214ffc714ee6 100644
--- a/pkgs/development/python-modules/aiormq/default.nix
+++ b/pkgs/development/python-modules/aiormq/default.nix
@@ -3,6 +3,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
+, pythonRelaxDepsHook
 , pytestCheckHook
 , pamqp
 , yarl
@@ -11,21 +12,25 @@
 
 buildPythonPackage rec {
   pname = "aiormq";
-  version = "6.7.6";
-  format = "pyproject";
+  version = "6.8.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "mosquito";
     repo = "aiormq";
-    # https://github.com/mosquito/aiormq/issues/189
-    rev = "72c44f55313fc14e2a760a45a09831237b64c48d";
-    hash = "sha256-IIlna8aQY6bIA7OZHthfvMFFWnf3DDRBP1uiFCD7+Do=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-XD1g4JXQJlJyXuZbo4hYW7cwQhy8+p4/inwNw2WOD9Y=";
   };
 
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "pamqp"
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/aiortm/default.nix b/pkgs/development/python-modules/aiortm/default.nix
index dbbaea2d3903..e1e4f7fabaf7 100644
--- a/pkgs/development/python-modules/aiortm/default.nix
+++ b/pkgs/development/python-modules/aiortm/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "aiortm";
-  version = "0.8.7";
+  version = "0.8.10";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -24,12 +24,12 @@ buildPythonPackage rec {
     owner = "MartinHjelmare";
     repo = "aiortm";
     rev = "refs/tags/v${version}";
-    hash = "sha256-rWULiyQGBA01hWfRDulDuHX0c1LPo6CTZ9HFOn3MD+E=";
+    hash = "sha256-WkVuuvWWdj2McdXl+XwYukUcloehelFIi6QL5LSkfLk=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace " --cov=aiortm --cov-report=term-missing:skip-covered" ""
+      --replace-warn " --cov=aiortm --cov-report=term-missing:skip-covered" ""
   '';
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/aiorwlock/default.nix b/pkgs/development/python-modules/aiorwlock/default.nix
index b72d69e8fd31..87fab70a03f3 100644
--- a/pkgs/development/python-modules/aiorwlock/default.nix
+++ b/pkgs/development/python-modules/aiorwlock/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "aiorwlock";
-  version = "1.3.0";
+  version = "1.4.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-g/Eth99LlyiguP2hdWWFqw1lKxB7q1nGCE4bGtaSq0U=";
+    hash = "sha256-TOpb7E6dA1M6JpGSmTlIIqFCKqUZvKndCReOxJD40cw=";
   };
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/aiosql/default.nix b/pkgs/development/python-modules/aiosql/default.nix
index 8236533154c8..165342fec1d9 100644
--- a/pkgs/development/python-modules/aiosql/default.nix
+++ b/pkgs/development/python-modules/aiosql/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "aiosql";
-  version = "9.2";
+  version = "9.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "nackjicholson";
     repo = "aiosql";
     rev = "refs/tags/${version}";
-    hash = "sha256-x8ndLVIYAmixH4Fc1DIC1CK8ChYIPZc3b5VFdpT7JO8=";
+    hash = "sha256-7bCJykE+7/eA1h4L5MyH/zVPZVMt7cNLXZSWq+8mPtY=";
   };
 
   sphinxRoot = "docs/source";
diff --git a/pkgs/development/python-modules/aioswitcher/default.nix b/pkgs/development/python-modules/aioswitcher/default.nix
index 7cb513897cb1..245f9f44a3ae 100644
--- a/pkgs/development/python-modules/aioswitcher/default.nix
+++ b/pkgs/development/python-modules/aioswitcher/default.nix
@@ -14,8 +14,8 @@
 
 buildPythonPackage rec {
   pname = "aioswitcher";
-  version = "3.4.1";
-  format = "pyproject";
+  version = "3.4.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
@@ -23,9 +23,11 @@ buildPythonPackage rec {
     owner = "TomerFi";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-jam0pyVajk8z7s/Uk5yQZfbFQLDiJ2yRKDk7VMJpCKo=";
+    hash = "sha256-UpwIzwOl1yKqK8KxFDXAWoZFkQ+1r1sUcDfx6AxRdNw=";
   };
 
+  __darwinAllowLocalNetworking = true;
+
   nativeBuildInputs = [
     poetry-core
   ];
@@ -50,7 +52,6 @@ buildPythonPackage rec {
     "test_schedule_parser_with_a_daily_recurring_enabled_schedule_data"
     "test_schedule_parser_with_a_partial_daily_recurring_enabled_schedule_data"
     "test_schedule_parser_with_a_non_recurring_enabled_schedule_data"
-    "test_hexadecimale_timestamp_to_localtime_with_the_current_timestamp_should_return_a_time_string"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/aiovodafone/default.nix b/pkgs/development/python-modules/aiovodafone/default.nix
index bd9dc3ede2dc..cd19fc80327b 100644
--- a/pkgs/development/python-modules/aiovodafone/default.nix
+++ b/pkgs/development/python-modules/aiovodafone/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "aiovodafone";
-  version = "0.5.1";
+  version = "0.5.4";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "chemelli74";
     repo = "aiovodafone";
     rev = "refs/tags/v${version}";
-    hash = "sha256-4Pcdf5yAzjXbmWehon9DdZfaIdEjPLcdzf/EjYKEamk=";
+    hash = "sha256-J2VdRxCzIjRUOqQW4YzOC8RRth9tibBS9YuizveqhhI=";
   };
 
   postPatch = ''
@@ -47,7 +47,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Library to control Vodafon Station";
     homepage = "https://github.com/chemelli74/aiovodafone";
-    changelog = "https://github.com/chemelli74/aiovodafone/blob/${version}/CHANGELOG.md";
+    changelog = "https://github.com/chemelli74/aiovodafone/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/airthings-ble/default.nix b/pkgs/development/python-modules/airthings-ble/default.nix
index eec4830837f0..aa418733a6cc 100644
--- a/pkgs/development/python-modules/airthings-ble/default.nix
+++ b/pkgs/development/python-modules/airthings-ble/default.nix
@@ -1,16 +1,18 @@
 { lib
+, async-interrupt
 , bleak
 , bleak-retry-connector
 , buildPythonPackage
 , fetchFromGitHub
 , poetry-core
+, pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "airthings-ble";
-  version = "0.5.6-4";
-  format = "pyproject";
+  version = "0.6.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
@@ -18,12 +20,12 @@ buildPythonPackage rec {
     owner = "vincegio";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-Ft5A2ZGVH9VHoRDAqDcc0rBfnQRxoXMylCAwUSwmViE=";
+    hash = "sha256-A7Nrg0O+WVoHP+m8pz6idnNcxulwPYmMt9DfhKTHG24=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace 'bleak-retry-connector = "^0.15.1"' 'bleak = "*"'
+      --replace "-v -Wdefault --cov=airthings_ble --cov-report=term-missing:skip-covered" ""
   '';
 
   nativeBuildInputs = [
@@ -31,12 +33,14 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
+    async-interrupt
     bleak
     bleak-retry-connector
   ];
 
-  # Module has no tests
-  doCheck = false;
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
 
   pythonImportsCheck = [
     "airthings_ble"
diff --git a/pkgs/development/python-modules/ale-py/default.nix b/pkgs/development/python-modules/ale-py/default.nix
index 77978654e68f..9cc5f6105cf5 100644
--- a/pkgs/development/python-modules/ale-py/default.nix
+++ b/pkgs/development/python-modules/ale-py/default.nix
@@ -2,7 +2,7 @@
 , SDL2
 , cmake
 , fetchFromGitHub
-, git
+, fetchpatch
 , gym
 , importlib-metadata
 , importlib-resources
@@ -11,7 +11,6 @@
 , numpy
 , pybind11
 , pytestCheckHook
-, python
 , pythonOlder
 , setuptools
 , stdenv
@@ -23,10 +22,10 @@
 buildPythonPackage rec {
   pname = "ale-py";
   version = "0.8.1";
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchFromGitHub {
-    owner = "mgbellemare";
+    owner = "Farama-Foundation";
     repo = "Arcade-Learning-Environment";
     rev = "refs/tags/v${version}";
     hash = "sha256-B2AxhlzvBy1lJ3JttJjImgTjMtEUyZBv+xHU2IC7BVE=";
@@ -35,6 +34,20 @@ buildPythonPackage rec {
   patches = [
     # don't download pybind11, use local pybind11
     ./cmake-pybind11.patch
+    ./patch-sha-check-in-setup.patch
+
+    # The following two patches add the required `include <cstdint>` for compilation to work with GCC 13.
+    # See https://github.com/Farama-Foundation/Arcade-Learning-Environment/pull/503
+    (fetchpatch {
+      name = "fix-gcc13-compilation-1";
+      url = "https://github.com/Farama-Foundation/Arcade-Learning-Environment/commit/ebd64c03cdaa3d8df7da7c62ec3ae5795105e27a.patch";
+      hash = "sha256-NMz0hw8USOj88WryHRkMQNWznnP6+5aWovEYNuocQ2c=";
+    })
+    (fetchpatch {
+      name = "fix-gcc13-compilation-2";
+      url = "https://github.com/Farama-Foundation/Arcade-Learning-Environment/commit/4c99c7034f17810f3ff6c27436bfc3b40d08da21.patch";
+      hash = "sha256-66/bDCyMr1RsKk63T9GnFZGloLlkdr/bf5WHtWbX6VY=";
+    })
   ];
 
   nativeBuildInputs = [
@@ -67,7 +80,7 @@ buildPythonPackage rec {
     substituteInPlace pyproject.toml \
       --replace 'dynamic = ["version"]' 'version = "${version}"'
     substituteInPlace setup.py \
-      --replace 'subprocess.check_output(["git", "rev-parse", "--short", "HEAD"], cwd=here)' 'b"${src.rev}"'
+      --replace '@sha@' '"${version}"'
   '';
 
   dontUseCmakeConfigure = true;
diff --git a/pkgs/development/python-modules/ale-py/patch-sha-check-in-setup.patch b/pkgs/development/python-modules/ale-py/patch-sha-check-in-setup.patch
new file mode 100644
index 000000000000..f387346ded37
--- /dev/null
+++ b/pkgs/development/python-modules/ale-py/patch-sha-check-in-setup.patch
@@ -0,0 +1,17 @@
+diff --git a/setup.py b/setup.py
+index ff1b1c5..ce40df0 100644
+--- a/setup.py
++++ b/setup.py
+@@ -141,11 +141,7 @@ def parse_version(version_file):
+ 
+         version = ci_version
+     else:
+-        sha = (
+-            subprocess.check_output(["git", "rev-parse", "--short", "HEAD"], cwd=here)
+-            .decode("ascii")
+-            .strip()
+-        )
++        sha = @sha@
+         version += f"+{sha}"
+ 
+     return version
diff --git a/pkgs/development/python-modules/alive-progress/default.nix b/pkgs/development/python-modules/alive-progress/default.nix
index b10b056f292a..58ccedd26d6c 100644
--- a/pkgs/development/python-modules/alive-progress/default.nix
+++ b/pkgs/development/python-modules/alive-progress/default.nix
@@ -5,20 +5,28 @@
 , fetchFromGitHub
 , grapheme
 , pytestCheckHook
+, pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "alive-progress";
-  version = "3.1.4";
-  format = "setuptools";
+  version = "3.1.5";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "rsalmei";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-27PgxQ9nw8p5hfaSf/jPYG7419o3i8B8R09o93szSOk=";
+    repo = "alive-progress";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-yJhl0QrMHET9ISDc/D5AEQ7dTJkmcV2SWqy/xmG18uY=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     about-time
     grapheme
@@ -36,6 +44,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "A new kind of Progress Bar, with real-time throughput, ETA, and very cool animations";
     homepage = "https://github.com/rsalmei/alive-progress";
+    changelog = "https://github.com/rsalmei/alive-progress/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ thiagokokada ];
   };
diff --git a/pkgs/development/python-modules/aliyun-python-sdk-iot/default.nix b/pkgs/development/python-modules/aliyun-python-sdk-iot/default.nix
index 2a753b425103..2f08429d54d7 100644
--- a/pkgs/development/python-modules/aliyun-python-sdk-iot/default.nix
+++ b/pkgs/development/python-modules/aliyun-python-sdk-iot/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "aliyun-python-sdk-iot";
-  version = "8.57.0";
+  version = "8.59.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Ea0IUn2mlu0c7QYJZkUrBUrtjUuTHoTeuvZHw/il+4A=";
+    hash = "sha256-v0jTMKtYrbEBVjHQokpWSlcJBALZFsuoYHq8wCP8w1E=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/anova-wifi/default.nix b/pkgs/development/python-modules/anova-wifi/default.nix
index b6f885daf619..a94ef0e3d624 100644
--- a/pkgs/development/python-modules/anova-wifi/default.nix
+++ b/pkgs/development/python-modules/anova-wifi/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "anova-wifi";
-  version = "0.10.3";
+  version = "0.11.6";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "Lash-L";
     repo = "anova_wifi";
     rev = "refs/tags/v${version}";
-    hash = "sha256-tCmvp29KSCkc+g0w0odcB7vGjtDx6evac7XsHEF0syM=";
+    hash = "sha256-zRMs0GAsLgKt1R0SfRFPchjmk87K2d8vBeHJs66k9xc=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/ansi/default.nix b/pkgs/development/python-modules/ansi/default.nix
index 287bf13a5dee..3fb30ebf7255 100644
--- a/pkgs/development/python-modules/ansi/default.nix
+++ b/pkgs/development/python-modules/ansi/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "ansi";
-  version = "0.3.6";
+  version = "0.3.7";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "tehmaze";
     repo = pname;
-    rev = "${pname}-${version}";
-    hash = "sha256-2gu2Dba3LOjMhbCCZrBqzlOor5KqDYThhe8OP8J3O2M=";
+    rev = "refs/tags/ansi-${version}";
+    hash = "sha256-PmgB1glksu4roQeZ1o7uilMJNm9xaYqw680N2z+tUUM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/ansible/default.nix b/pkgs/development/python-modules/ansible/default.nix
index 42f4d0032cfd..957c36b8525e 100644
--- a/pkgs/development/python-modules/ansible/default.nix
+++ b/pkgs/development/python-modules/ansible/default.nix
@@ -21,7 +21,7 @@
 
 let
   pname = "ansible";
-  version = "9.0.1";
+  version = "9.1.0";
 in
 buildPythonPackage {
   inherit pname version;
@@ -31,7 +31,7 @@ buildPythonPackage {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-zAbCUfFCg3z1QLeXdyRZapTz0P6dqWGRdeneZTnNBwU=";
+    hash = "sha256-WtlJkfsODlOncKn/zxtoBH9hsigtlIp9JoLs2PuPob8=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/anthropic/default.nix b/pkgs/development/python-modules/anthropic/default.nix
index f7a0a8ba6372..0b15d85e2e36 100644
--- a/pkgs/development/python-modules/anthropic/default.nix
+++ b/pkgs/development/python-modules/anthropic/default.nix
@@ -6,6 +6,7 @@
 , distro
 , dirty-equals
 , httpx
+, google-auth
 , sniffio
 , pydantic
 , pytest-asyncio
@@ -18,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "anthropic";
-  version = "0.7.8";
+  version = "0.15.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -27,7 +28,7 @@ buildPythonPackage rec {
     owner = "anthropics";
     repo = "anthropic-sdk-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-1mpNwZJbYdKVmUeUM+PBL6vPhwe8tr2SnAP/t/MMKpI=";
+    hash = "sha256-cI+CbQir2QpHAb+72clLGG7ZBsrYT3fY14HzxjtKOsk=";
   };
 
   nativeBuildInputs = [
@@ -44,6 +45,10 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
+  passthru.optional-dependencies = {
+    vertex = [ google-auth ];
+  };
+
   nativeCheckInputs = [
     dirty-equals
     pytest-asyncio
@@ -51,8 +56,9 @@ buildPythonPackage rec {
     respx
   ];
 
-  disabledTests = [
-    "api_resources"
+  disabledTestPaths = [
+    # require network access
+    "tests/api_resources"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/anysqlite/default.nix b/pkgs/development/python-modules/anysqlite/default.nix
new file mode 100644
index 000000000000..bf6cb41a7916
--- /dev/null
+++ b/pkgs/development/python-modules/anysqlite/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, anyio
+, buildPythonPackage
+, fetchFromGitHub
+, hatch-fancy-pypi-readme
+, hatchling
+, pytestCheckHook
+, pythonOlder
+, trio
+}:
+
+buildPythonPackage rec {
+  pname = "anysqlite";
+  version = "0.0.5";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "karpetrosyan";
+    repo = "anysqlite";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-6kNN6kjkMHVNneMq/8zQxqMIXUxH/+eWLX8XhoHqFRU=";
+  };
+
+  nativeBuildInputs = [
+    hatch-fancy-pypi-readme
+    hatchling
+  ];
+
+  propagatedBuildInputs = [
+    anyio
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    trio
+  ];
+
+  pythonImportsCheck = [
+    "anysqlite"
+  ];
+
+  meta = with lib; {
+    description = "Sqlite3 for asyncio and trio";
+    homepage = "https://github.com/karpetrosyan/anysqlite";
+    changelog = "https://github.com/karpetrosyan/anysqlite/blob/${version}/CHANGELOG.md";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/anywidget/default.nix b/pkgs/development/python-modules/anywidget/default.nix
index 16bf2daaa4a4..4d449bbe0303 100644
--- a/pkgs/development/python-modules/anywidget/default.nix
+++ b/pkgs/development/python-modules/anywidget/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "anywidget";
-  version = "0.8.0";
+  version = "0.9.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-hHoP7OWOp6MtINzNVKAm3T3Sj3baprTwp0wlPlx8/uw=";
+    hash = "sha256-fV8yMQ6WGZyyf5c41B0MSwHusVx090SzukqX/WqbqG0=";
   };
 
   # We do not need the jupyterlab build dependency, because we do not need to
diff --git a/pkgs/development/python-modules/aocd-example-parser/default.nix b/pkgs/development/python-modules/aocd-example-parser/default.nix
new file mode 100644
index 000000000000..c2379aa914e1
--- /dev/null
+++ b/pkgs/development/python-modules/aocd-example-parser/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, flit-core
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "aocd-example-parser";
+  version = "unstable-2023-12-17";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "wimglenn";
+    repo = "aocd-example-parser";
+    rev = "07330183f3e43401444fe17b08d72eb6168504e1";
+    hash = "sha256-iOxqzZj29aY/xyigir1KOU6GcBBvnlxEOBLHChEQjf4=";
+  };
+
+  nativeBuildInputs = [
+    flit-core
+  ];
+
+  # Circular dependency with aocd
+  # pythonImportsCheck = [
+  #   "aocd_example_parser"
+  # ];
+
+  meta = with lib; {
+    description = "Default implementation of an example parser plugin for advent-of-code-data";
+    homepage = "https://github.com/wimglenn/aocd-example-parser";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/aocd/default.nix b/pkgs/development/python-modules/aocd/default.nix
index f1a31ee243b8..1b56736028b8 100644
--- a/pkgs/development/python-modules/aocd/default.nix
+++ b/pkgs/development/python-modules/aocd/default.nix
@@ -1,32 +1,33 @@
 { lib
 , stdenv
+, aocd-example-parser
+, beautifulsoup4
 , buildPythonPackage
 , fetchFromGitHub
-, requests
-, pytestCheckHook
-, tzlocal
-, pytest-mock
+, numpy
+, pebble
+, pook
 , pytest-freezegun
+, pytest-mock
 , pytest-raisin
 , pytest-socket
+, pytestCheckHook
+, python-dateutil
+, pythonOlder
+, requests
 , requests-mock
-, pook
-, numpy
 , rich
-, pebble
-, python-dateutil
-, termcolor
-, beautifulsoup4
 , setuptools
-, pythonOlder
+, termcolor
+, tzlocal
 }:
 
 buildPythonPackage rec {
   pname = "aocd";
   version = "2.0.1";
-  format = "pyproject";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "wimglenn";
@@ -35,15 +36,30 @@ buildPythonPackage rec {
     hash = "sha256-YZvcR97uHceloqwoP+azaBmj3GLusYNbItLIaeJ3QD0=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
+    aocd-example-parser
+    beautifulsoup4
+    pebble
     python-dateutil
     requests
+    rich # for example parser aoce. must either be here or checkInputs
     termcolor
-    beautifulsoup4
-    pebble
     tzlocal
-    setuptools
-    rich # for example parser aoce. must either be here or checkInputs
+  ];
+
+  nativeCheckInputs = [
+    numpy
+    pook
+    pytest-freezegun
+    pytest-mock
+    pytest-raisin
+    pytest-socket
+    pytestCheckHook
+    requests-mock
   ];
 
   # Too many failing tests
@@ -85,20 +101,6 @@ buildPythonPackage rec {
     "test_submit_float_warns"
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-    pytest-mock
-    pytest-freezegun
-    pytest-raisin
-    pytest-socket
-  ];
-
-  checkInputs = [
-    pook
-    numpy
-    requests-mock
-  ];
-
   pythonImportsCheck = [
     "aocd"
   ];
diff --git a/pkgs/development/python-modules/apache-beam/default.nix b/pkgs/development/python-modules/apache-beam/default.nix
index bd53a6f0b48a..2e267e2ef191 100644
--- a/pkgs/development/python-modules/apache-beam/default.nix
+++ b/pkgs/development/python-modules/apache-beam/default.nix
@@ -150,7 +150,7 @@ buildPythonPackage rec {
 
   # Make sure we're running the tests for the actually installed
   # package, so that cython's .so files are available.
-  preCheck = "cd $out/lib/${python.libPrefix}/site-packages";
+  preCheck = "cd $out/${python.sitePackages}";
 
   disabledTestPaths = [
     # Fails with
diff --git a/pkgs/development/python-modules/apispec-webframeworks/default.nix b/pkgs/development/python-modules/apispec-webframeworks/default.nix
index 3211eed5aa3f..171deeebda8c 100644
--- a/pkgs/development/python-modules/apispec-webframeworks/default.nix
+++ b/pkgs/development/python-modules/apispec-webframeworks/default.nix
@@ -3,6 +3,7 @@
 , bottle
 , buildPythonPackage
 , fetchFromGitHub
+, flit-core
 , flask
 , mock
 , pytestCheckHook
@@ -12,18 +13,22 @@
 
 buildPythonPackage rec {
   pname = "apispec-webframeworks";
-  version = "0.5.2";
-  format = "setuptools";
+  version = "1.0.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "marshmallow-code";
     repo = "apispec-webframeworks";
-    rev = version;
-    hash = "sha256-ByNmmBLO99njw9JrT+cCW/K4NJBH92smAiIgg47Cvkk=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-zrsqIZ5ZogZsK1ZOL2uy8igS4T8a+19IwL5dMhKw7OA=";
   };
 
+  nativeBuildInputs = [
+    flit-core
+  ];
+
   propagatedBuildInputs = [
     apispec
   ] ++ apispec.optional-dependencies.yaml;
diff --git a/pkgs/development/python-modules/apprise/default.nix b/pkgs/development/python-modules/apprise/default.nix
index d70a70d43eae..9d3f55bec283 100644
--- a/pkgs/development/python-modules/apprise/default.nix
+++ b/pkgs/development/python-modules/apprise/default.nix
@@ -19,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "apprise";
-  version = "1.7.1";
+  version = "1.7.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-jUOdCFUEcFJEJd7e5LyKcnZsIWwhjzdyw3QE6y/Yblo=";
+    hash = "sha256-CeFZspAI5sjpPX/8PBXUGcC7rkFiBAX48tNDK3Ki6b8=";
   };
 
   nativeBuildInputs = [
@@ -75,5 +75,6 @@ buildPythonPackage rec {
     changelog = "https://github.com/caronc/apprise/releases/tag/v${version}";
     license = licenses.bsd3;
     maintainers = with maintainers; [ marsam ];
+    mainProgram = "apprise";
   };
 }
diff --git a/pkgs/development/python-modules/approvaltests/default.nix b/pkgs/development/python-modules/approvaltests/default.nix
index 49e61e87731c..53ad86c4ea37 100644
--- a/pkgs/development/python-modules/approvaltests/default.nix
+++ b/pkgs/development/python-modules/approvaltests/default.nix
@@ -19,16 +19,16 @@
 
 buildPythonPackage rec {
   pname = "approvaltests";
-  version = "10.2.0";
+  version = "10.3.0";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "approvals";
     repo = "ApprovalTests.Python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-2NaqqgrHXJovoVExvbr0s86eRbcxy+DUrsdRH/vak3E=";
+    hash = "sha256-1f0iTwLREF20Khkd4/xEfxXINJIpc4LfszsvCblS/yM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix b/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix
index 336a08e0532f..5101f0fcc0d0 100644
--- a/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix
+++ b/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix
@@ -17,21 +17,21 @@
 
 buildPythonPackage rec {
   pname = "appthreat-vulnerability-db";
-  version = "5.5.8";
+  version = "5.6.1";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "AppThreat";
     repo = "vulnerability-db";
     rev = "refs/tags/v${version}";
-    hash = "sha256-C3A7mNsiTe50jKD98zjU37GL20zw5SNSVte+GtrvbFA=";
+    hash = "sha256-BkJ1hA4SXuXYkJnSNaZ/JeX+PHdJylfwKkRzQsBxc24=";
   };
 
   postPatch = ''
-    substituteInPlace pytest.ini \
-      --replace " --cov-append --cov-report term --cov vdb" ""
+    substituteInPlace pyproject.toml \
+      --replace-warn " --cov-report=term-missing --no-cov-on-fail --cov vdb" ""
   '';
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/aranet4/default.nix b/pkgs/development/python-modules/aranet4/default.nix
index dda10a9d6f22..49000324ac27 100644
--- a/pkgs/development/python-modules/aranet4/default.nix
+++ b/pkgs/development/python-modules/aranet4/default.nix
@@ -5,12 +5,13 @@
 , pytestCheckHook
 , pythonOlder
 , requests
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "aranet4";
-  version = "2.2.2";
-  format = "setuptools";
+  version = "2.2.3";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -18,9 +19,13 @@ buildPythonPackage rec {
     owner = "Anrijs";
     repo = "Aranet4-Python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-HiveHkGQUCvG4aqK2HSCbONObidT7yof4LzKSJPEOKU=";
+    hash = "sha256-Jd7yuddxwRrO7XFQsVGy5vRQxwIUZdwFSjiZZHdkE3g=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     bleak
     requests
diff --git a/pkgs/development/python-modules/argilla/default.nix b/pkgs/development/python-modules/argilla/default.nix
index 9450b6af44ae..884502a83683 100644
--- a/pkgs/development/python-modules/argilla/default.nix
+++ b/pkgs/development/python-modules/argilla/default.nix
@@ -65,7 +65,7 @@
 }:
 let
   pname = "argilla";
-  version = "1.22.0";
+  version = "1.23.0";
   optional-dependencies = {
     server = [
       fastapi
@@ -126,7 +126,7 @@ buildPythonPackage {
     owner = "argilla-io";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-aPq/ZPewQId5OZq5v+TgvWWBS03QDftYLEwhzNLzrFQ=";
+    hash = "sha256-+Yamol0o2dgQoXbi8RKLn3YOZ2mcTFikPkHZDd3Nnqo=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/asterisk-mbox/default.nix b/pkgs/development/python-modules/asterisk-mbox/default.nix
index 4347c42d47dd..0a08dc737449 100644
--- a/pkgs/development/python-modules/asterisk-mbox/default.nix
+++ b/pkgs/development/python-modules/asterisk-mbox/default.nix
@@ -1,19 +1,39 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, fetchpatch2
+, setuptools
+, packaging
 }:
 
 buildPythonPackage rec {
   pname = "asterisk-mbox";
   version = "0.5.0";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     pname = "asterisk_mbox";
     inherit version;
-    sha256 = "0624f9ab85ce9c4d43655f8653e8539fa10c81b60fd7b94b1a15dce306c20888";
+    hash = "sha256-BiT5q4XOnE1DZV+GU+hTn6EMgbYP17lLGhXc4wbCCIg=";
   };
 
+  patches = [
+    # https://github.com/PhracturedBlue/asterisk_mbox/pull/1
+    (fetchpatch2 {
+      name = "distutils-deprecated.patch";
+      url = "https://github.com/PhracturedBlue/asterisk_mbox/commit/bab84525306a0c41aadd3aab4ebba7c062253d07.patch";
+      hash = "sha256-2j7jIl3Ydn2dHJhEzu/77Zkxhw58NIebgULifpTVidY=";
+    })
+  ];
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    packaging
+  ];
+
   # no tests implemented
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/astropy-healpix/default.nix b/pkgs/development/python-modules/astropy-healpix/default.nix
index b25fb6e9eb43..23db660f951b 100644
--- a/pkgs/development/python-modules/astropy-healpix/default.nix
+++ b/pkgs/development/python-modules/astropy-healpix/default.nix
@@ -14,13 +14,13 @@
 
 buildPythonPackage rec {
   pname = "astropy-healpix";
-  version = "1.0.1";
+  version = "1.0.2";
   pyproject = true;
 
   src = fetchPypi {
     inherit version;
     pname = lib.replaceStrings ["-"] ["_"] pname;
-    hash = "sha256-74k4vfcpdXw4CowXNHlNc3StAOB2f8Si+mOma+8SYkI=";
+    hash = "sha256-BW+m7ZOWvtx3HTdNh3zeg9lGCj9ip4/gXb+boDlAMjo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/async-upnp-client/default.nix b/pkgs/development/python-modules/async-upnp-client/default.nix
index 426c0b5bd548..4d283d1d5ed8 100644
--- a/pkgs/development/python-modules/async-upnp-client/default.nix
+++ b/pkgs/development/python-modules/async-upnp-client/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "async-upnp-client";
-  version = "0.38.0";
+  version = "0.38.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "StevenLooman";
     repo = "async_upnp_client";
     rev = "refs/tags/${version}";
-    hash = "sha256-hCgZsoccrHCXTZPnFX5OFhCGnd2WufxWo84jW3k9KiY=";
+    hash = "sha256-tYGJwmzyVTry3KIMv1JjoBsE6kNw7FJb1nq1+39bEdU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/asyncclick/default.nix b/pkgs/development/python-modules/asyncclick/default.nix
index 2d0066a86e13..5847a55f8375 100644
--- a/pkgs/development/python-modules/asyncclick/default.nix
+++ b/pkgs/development/python-modules/asyncclick/default.nix
@@ -10,16 +10,16 @@
 
 buildPythonPackage rec {
   pname = "asyncclick";
-  version = "8.1.3.2";
-  format = "setuptools";
+  version = "8.1.7.1";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "python-trio";
-    repo = pname;
-    rev = version;
-    hash = "sha256-by1clF+WAfN/gjOg/F60O1tCZ3qAhWqiiJJY04iMzQ8=";
+    repo = "asyncclick";
+    rev = "refs/tags/${version}";
+    hash = "sha256-gx7s/HikvjsXalc0Z73JWMKc1SlhR+kohwk2sW4o19I=";
   };
 
   nativeBuildInputs = [
@@ -40,15 +40,18 @@ buildPythonPackage rec {
   ];
 
   disabledTests = [
-    # RuntimeWarning: coroutine 'Context.invoke' was never awaited
-    "test_context_invoke_type"
+    # AttributeError: 'Context' object has no attribute '_ctx_mgr'
+    "test_context_pushing"
   ];
 
-  pythonImportsCheck = [ "asyncclick" ];
+  pythonImportsCheck = [
+    "asyncclick"
+  ];
 
   meta = with lib; {
     description = "Python composable command line utility";
     homepage = "https://github.com/python-trio/asyncclick";
+    changelog = "https://github.com/python-trio/asyncclick/blob/${version}/CHANGES.rst";
     license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/asyncinotify/default.nix b/pkgs/development/python-modules/asyncinotify/default.nix
index feb778c729aa..6fe187bfc3cf 100644
--- a/pkgs/development/python-modules/asyncinotify/default.nix
+++ b/pkgs/development/python-modules/asyncinotify/default.nix
@@ -1,35 +1,45 @@
 { lib
 , buildPythonPackage
-, fetchFromGitLab
+, fetchFromGitHub
 , flit-core
-, python
+, pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "asyncinotify";
-  version = "4.0.2";
-  format = "pyproject";
+  version = "4.0.6";
+  pyproject = true;
 
-  src = fetchFromGitLab {
-    owner = "Taywee";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "absperf";
     repo = "asyncinotify";
-    rev = "v${version}";
-    hash = "sha256-Q7b406UENCmD9SGbaml+y2YLDi7VLZBmDkYMo8CLuVw=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-RXx6i5dIB2oySVaLoHPRGD9VKgiO5OAXmrzVBq8Ad18=";
   };
 
   nativeBuildInputs = [
     flit-core
   ];
 
-  checkPhase = ''
-    ${python.pythonOnBuildForHost.interpreter} ${src}/test.py
-  '';
-  pythonImportsCheck = ["asyncinotify"];
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "asyncinotify"
+  ];
+
+  pytestFlagsArray = [
+    "test.py"
+  ];
 
   meta = with lib; {
-    description = "A simple optionally-async python inotify library, focused on simplicity of use and operation, and leveraging modern Python features";
-    homepage = "https://pypi.org/project/asyncinotify/";
-    changelog = "https://gitlab.com/Taywee/asyncinotify/-/blob/master/CHANGELOG.md";
+    description = "Module for inotify";
+    homepage = "https://github.com/absperf/asyncinotify/";
+    changelog = "https://github.com/absperf/asyncinotify/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ cynerd ];
   };
diff --git a/pkgs/development/python-modules/asyncsleepiq/default.nix b/pkgs/development/python-modules/asyncsleepiq/default.nix
index 254423141ab4..25969661bf15 100644
--- a/pkgs/development/python-modules/asyncsleepiq/default.nix
+++ b/pkgs/development/python-modules/asyncsleepiq/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "asyncsleepiq";
-  version = "1.4.2";
+  version = "1.5.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-zvIEuPsko2CaImcdY55qwl+rAzrRT8gjLAovlpOR8Gk=";
+    hash = "sha256-TDHFKLifNmmAVvD5DjSopEXFbR+KPMIdSA+rLAKrfpI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/atom/default.nix b/pkgs/development/python-modules/atom/default.nix
index b6be40bc6c93..519fc3791d79 100644
--- a/pkgs/development/python-modules/atom/default.nix
+++ b/pkgs/development/python-modules/atom/default.nix
@@ -10,16 +10,16 @@
 
 buildPythonPackage rec {
   pname = "atom";
-  version = "0.10.3";
-  format = "pyproject";
+  version = "0.10.4";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "nucleic";
-    repo = pname;
+    repo = "atom";
     rev = "refs/tags/${version}";
-    hash = "sha256-NXjvRVYcWU9p7b8y2ICOzYe6TeMh1S70Edy/JvTG7a4=";
+    hash = "sha256-HoUKU6z+6PPBUsvI4earZG9UXN0PrugAxu/F7WUfUe8=";
   };
 
   nativeBuildInputs = [
@@ -45,6 +45,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Memory efficient Python objects";
     homepage = "https://github.com/nucleic/atom";
+    changelog = "https://github.com/nucleic/atom/releases/tag/${version}";
     license = licenses.bsd3;
     maintainers = with maintainers; [ bhipple ];
   };
diff --git a/pkgs/development/python-modules/auditwheel/default.nix b/pkgs/development/python-modules/auditwheel/default.nix
index 836bbaf1cd0f..9890a39e460c 100644
--- a/pkgs/development/python-modules/auditwheel/default.nix
+++ b/pkgs/development/python-modules/auditwheel/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "auditwheel";
-  version = "5.4.0";
+  version = "6.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-qvgVOreinMmaZjziSYgE2vGIfqG3oyMboNP+5oo8zxk=";
+    hash = "sha256-ZCLEq2Qh0j41XJHplGkmzVMrn99G8rX/2vGr/p7inmc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/authheaders/default.nix b/pkgs/development/python-modules/authheaders/default.nix
index 7d4a4075439e..6762e4b3ad7a 100644
--- a/pkgs/development/python-modules/authheaders/default.nix
+++ b/pkgs/development/python-modules/authheaders/default.nix
@@ -5,15 +5,15 @@
 , dnspython
 , fetchFromGitHub
 , publicsuffix2
-, pythonOlder
 , pytestCheckHook
+, pythonOlder
 , setuptools
 }:
 
 buildPythonPackage rec {
   pname = "authheaders";
-  version = "0.15.3";
-  format = "setuptools";
+  version = "0.16.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -21,9 +21,13 @@ buildPythonPackage rec {
     owner = "ValiMail";
     repo = "authentication-headers";
     rev = "refs/tags/${version}";
-    hash = "sha256-96fCx5uN7yegTrCN+LSjtu4u3RL+dcxV/Puyo0eziI8=";
+    hash = "sha256-/vxUUSWwysYQzcy2AmkF4f8R59FHRnBfFlPRpfM9e5o=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     authres
     dnspython
@@ -40,6 +44,11 @@ buildPythonPackage rec {
     "authheaders"
   ];
 
+  disabledTests = [
+    # Test fails with timeout even if the resolv.conf hack is present
+    "test_authenticate_dmarc_psdsub"
+  ];
+
   meta = with lib; {
     description = "Python library for the generation of email authentication headers";
     homepage = "https://github.com/ValiMail/authentication-headers";
diff --git a/pkgs/development/python-modules/autofaiss/default.nix b/pkgs/development/python-modules/autofaiss/default.nix
index 9f1bf2a6d818..0f6ab7dda159 100644
--- a/pkgs/development/python-modules/autofaiss/default.nix
+++ b/pkgs/development/python-modules/autofaiss/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "autofaiss";
-  version = "2.16.0";
+  version = "2.17.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "criteo";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-NpehDx67VyIkcqno2DB2NmUKKZhK1Owwd9BNh3nqOLY=";
+    hash = "sha256-pey3wrW7CDLMiPPKnmYrcSJqGuy6ecA2SE9m3Jtt6DU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/autopep8/default.nix b/pkgs/development/python-modules/autopep8/default.nix
index 9a177d7b4936..4bfffd8a780b 100644
--- a/pkgs/development/python-modules/autopep8/default.nix
+++ b/pkgs/development/python-modules/autopep8/default.nix
@@ -40,6 +40,7 @@ buildPythonPackage rec {
     description = "A tool that automatically formats Python code to conform to the PEP 8 style guide";
     homepage = "https://github.com/hhatto/autopep8";
     license = licenses.mit;
+    mainProgram = "autopep8";
     maintainers = with maintainers; [ bjornfor ];
   };
 }
diff --git a/pkgs/development/python-modules/awkward-cpp/default.nix b/pkgs/development/python-modules/awkward-cpp/default.nix
index 3ccfc393a988..18c0be822dea 100644
--- a/pkgs/development/python-modules/awkward-cpp/default.nix
+++ b/pkgs/development/python-modules/awkward-cpp/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "awkward-cpp";
-  version = "28";
+  version = "29";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ME67+QDFdzaP08SRpN3+aleQvex2orBr3MRygXYmRZI=";
+    hash = "sha256-r0t4kbeLkDFxvONB6I0q3YQFn6Fn8I6KmTAFmZ0bnRs=";
   };
 
   nativeBuildInputs = [
@@ -41,6 +41,7 @@ buildPythonPackage rec {
   meta = with lib; {
     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 ];
   };
diff --git a/pkgs/development/python-modules/awkward/default.nix b/pkgs/development/python-modules/awkward/default.nix
index fa31f3b5a4f7..0a5b78fc5cf6 100644
--- a/pkgs/development/python-modules/awkward/default.nix
+++ b/pkgs/development/python-modules/awkward/default.nix
@@ -24,7 +24,7 @@
 
 buildPythonPackage rec {
   pname = "awkward";
-  version = "2.5.2";
+  version = "2.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -33,7 +33,7 @@ buildPythonPackage rec {
     owner = "scikit-hep";
     repo = "awkward";
     rev = "refs/tags/v${version}";
-    hash = "sha256-n50REyU/aWx6rj+9TZ52S3sZS25/hIaNfOe+AQGaXVA=";
+    hash = "sha256-rSEGQqCbmB1IWm6gHjYEO1wiTUPlz1s/SwQ5BiI1YRc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/aws-adfs/default.nix b/pkgs/development/python-modules/aws-adfs/default.nix
index d583a97a41a0..2397b2462579 100644
--- a/pkgs/development/python-modules/aws-adfs/default.nix
+++ b/pkgs/development/python-modules/aws-adfs/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "aws-adfs";
-  version = "2.10.0";
+  version = "2.11.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     owner = "venth";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-CUWjD5b62pSvvMS5CFZix9GL4z0EhkGttxgfeOLKHqY=";
+    hash = "sha256-ZzQ92VBa8CApd0WkfPrUZsEZICK2fhwmt45P2sx2mK0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/awsipranges/default.nix b/pkgs/development/python-modules/awsipranges/default.nix
new file mode 100644
index 000000000000..036639c3cdb7
--- /dev/null
+++ b/pkgs/development/python-modules/awsipranges/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pyopenssl
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "awsipranges";
+  version = "0.3.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "aws-samples";
+    repo = "awsipranges";
+    rev = "refs/tags/${version}";
+    hash = "sha256-ve1+0zkDDUGswtQoXhfESMcBzoNgUutxEhz43HXL4H8=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  nativeCheckInputs = [
+    pyopenssl
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "awsipranges"
+  ];
+
+  disabledTestPaths = [
+    # Tests require network access
+    "tests/data/test_syntax_and_semantics.py"
+    "tests/integration/test_package_apis.py"
+    "tests/unit/test_data_loading.py"
+  ];
+
+  meta = with lib; {
+    description = "Module to work with the AWS IP address ranges";
+    homepage = "https://github.com/aws-samples/awsipranges";
+    changelog = "https://github.com/aws-samples/awsipranges/releases/tag/${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/awslambdaric/default.nix b/pkgs/development/python-modules/awslambdaric/default.nix
index 3e20875ac15d..788148d5e441 100644
--- a/pkgs/development/python-modules/awslambdaric/default.nix
+++ b/pkgs/development/python-modules/awslambdaric/default.nix
@@ -5,7 +5,7 @@
 , fetchpatch
 , isPy27
 , pytestCheckHook
-, autoconf
+, autoconf271
 , automake
 , cmake
 , gcc
@@ -44,7 +44,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ simplejson ];
 
-  nativeBuildInputs = [ autoconf automake cmake libtool perl setuptools ];
+  nativeBuildInputs = [ autoconf271 automake cmake libtool perl setuptools ];
 
   buildInputs = [ gcc ];
 
diff --git a/pkgs/development/python-modules/awswrangler/default.nix b/pkgs/development/python-modules/awswrangler/default.nix
index d3eee65f576a..274b88a9811b 100644
--- a/pkgs/development/python-modules/awswrangler/default.nix
+++ b/pkgs/development/python-modules/awswrangler/default.nix
@@ -25,7 +25,7 @@
 
 buildPythonPackage rec {
   pname = "awswrangler";
-  version = "3.5.1";
+  version = "3.5.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     owner = "aws";
     repo = "aws-sdk-pandas";
     rev = "refs/tags/${version}";
-    hash = "sha256-USHRs/NRCPACvVxsQyRF1yQsQefAXSTwdHJqQqKe6bQ=";
+    hash = "sha256-lIEitS/pyOq4RjyUqPzfKOcNtAIWp14sQcLfQ1FwEoE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-batch/default.nix b/pkgs/development/python-modules/azure-batch/default.nix
index 2ca6a6d743ca..041d79b5ebd0 100644
--- a/pkgs/development/python-modules/azure-batch/default.nix
+++ b/pkgs/development/python-modules/azure-batch/default.nix
@@ -1,29 +1,31 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, msrest
-, azure-common
 , msrestazure
+, azure-common
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "azure-batch";
-  version = "14.0.0";
-  format = "setuptools";
+  version = "14.1.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    extension = "zip";
-    hash = "sha256-FlsembhvghAkxProX7NIadQHqg67DKS5b7JthZwmyTQ=";
+    hash = "sha256-lhayyqYpx0ABItaF1VfrzQF5famImQgxj5pUdIQ5es0=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
-    msrest
-    msrestazure
     azure-common
+    msrestazure
   ];
 
   # Module has no tests
@@ -35,7 +37,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "This is the Microsoft Azure Batch Client Library";
-    homepage = "https://github.com/Azure/azure-sdk-for-python";
+    homepage = "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/batch/azure-batch";
+    changelog = "https://github.com/Azure/azure-sdk-for-python/blob/azure-batch_${version}/sdk/batch/azure-batch/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ maxwilson ];
   };
diff --git a/pkgs/development/python-modules/azure-common/default.nix b/pkgs/development/python-modules/azure-common/default.nix
index ed4cd5243abf..2b4caa102f79 100644
--- a/pkgs/development/python-modules/azure-common/default.nix
+++ b/pkgs/development/python-modules/azure-common/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   ] ++ lib.optionals (!isPy3k) [ setuptools ]; # need for namespace lookup
 
   postInstall = lib.optionalString (!isPy3k) ''
-    echo "__import__('pkg_resources').declare_namespace(__name__)" >> "$out/lib/${python.libPrefix}"/site-packages/azure/__init__.py
+    echo "__import__('pkg_resources').declare_namespace(__name__)" >> "$out/${python.sitePackages}"/azure/__init__.py
   '';
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/azure-data-tables/default.nix b/pkgs/development/python-modules/azure-data-tables/default.nix
index 783a792513be..42b8b1edb55d 100644
--- a/pkgs/development/python-modules/azure-data-tables/default.nix
+++ b/pkgs/development/python-modules/azure-data-tables/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "azure-data-tables";
-  version = "12.4.4";
+  version = "12.5.0";
   format = "setuptools";
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-HWjIQBWYmU43pSxKLcwx45EExn10jeEkyY9Hpbyn0vw=";
+    hash = "sha256-7qOTpjgMQusD6AeCXAN4MgA9CcgjKUgx2hXoEVWgtOY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-common/default.nix b/pkgs/development/python-modules/azure-mgmt-common/default.nix
index 7ce7ce2c3f00..5f0390708c7d 100644
--- a/pkgs/development/python-modules/azure-mgmt-common/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-common/default.nix
@@ -28,8 +28,8 @@ buildPythonPackage rec {
   ];
 
   postInstall = pkgs.lib.optionalString (!isPy3k) ''
-    echo "__import__('pkg_resources').declare_namespace(__name__)" >> "$out/lib/${python.libPrefix}"/site-packages/azure/mgmt/__init__.py
-    echo "__import__('pkg_resources').declare_namespace(__name__)" >> "$out/lib/${python.libPrefix}"/site-packages/azure/__init__.py
+    echo "__import__('pkg_resources').declare_namespace(__name__)" >> "$out/${python.sitePackages}"/azure/mgmt/__init__.py
+    echo "__import__('pkg_resources').declare_namespace(__name__)" >> "$out/${python.sitePackages}"/azure/__init__.py
   '';
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/azure-mgmt-compute/default.nix b/pkgs/development/python-modules/azure-mgmt-compute/default.nix
index eb95a00de2a0..7c6c6b7ff7da 100644
--- a/pkgs/development/python-modules/azure-mgmt-compute/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-compute/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-compute";
-  version = "30.4.0";
+  version = "30.5.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-C3Qo/YvRXHy9fGa5uwEOClyzeoBs7x9JSNkHGRV2kzQ=";
+    hash = "sha256-7T6jS3mdsNUu5V4vGrSw8J+koI814GHsuarZ+1ohiEQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix b/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
index c72c54ffbdce..ddb4b6987fac 100644
--- a/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-containerservice";
-  version = "28.0.0";
+  version = "29.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-tVYFpEUV9v0OOk3CK/oPRA8+fhYl668Gqz6wa/NabNs=";
+    hash = "sha256-0BiuK5JCj6rqfSYD8+GWca2k5SQ19MXEHR3TQcYzgoA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix b/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix
index a9c9da857478..7f8ab5b19a48 100644
--- a/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-recoveryservicesbackup";
-  version = "7.0.0";
+  version = "9.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-GuW6x8JGdBedywum4fDAQ8rwbVU9UgQWgHrFqJ6Uz9A=";
+    hash = "sha256-H/SsO/DnHXSsSyejYX7BFem1GqPh20DRGecrYVkIu1E=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-security/default.nix b/pkgs/development/python-modules/azure-mgmt-security/default.nix
index b760acc8c8a6..60271f7c0381 100644
--- a/pkgs/development/python-modules/azure-mgmt-security/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-security/default.nix
@@ -1,34 +1,33 @@
 { lib
-, buildPythonPackage
-, fetchPypi
 , azure-common
 , azure-mgmt-core
-, msrest
-, msrestazure
+, buildPythonPackage
+, fetchPypi
+, isodate
 , pythonOlder
-, typing-extensions
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-security";
-  version = "5.0.0";
-  format = "setuptools";
+  version = "6.0.0";
+  fpyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-OLA+/oLCNEzqID/alebQC3rCJ4L6HAtYXNDqLI/z5wI=";
-    extension = "zip";
+    hash = "sha256-zq/BhpiZBnEQvYMMXMmLybjzLY6oQMofaTsaX1Kl+LA=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     azure-common
     azure-mgmt-core
-    msrest
-    msrestazure
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
+    isodate
   ];
 
   # no tests included
@@ -42,6 +41,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Microsoft Azure Security Center Management Client Library for Python";
     homepage = "https://github.com/Azure/azure-sdk-for-python";
+    changelog = "https://github.com/Azure/azure-sdk-for-python/blob/azure-mgmt-security_${version}/sdk/security/azure-mgmt-security/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ jonringer ];
   };
diff --git a/pkgs/development/python-modules/b2sdk/default.nix b/pkgs/development/python-modules/b2sdk/default.nix
index 2e13666af140..0ff6214bf5b5 100644
--- a/pkgs/development/python-modules/b2sdk/default.nix
+++ b/pkgs/development/python-modules/b2sdk/default.nix
@@ -19,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "b2sdk";
-  version = "1.29.0";
+  version = "1.29.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-h/pXLGpQ2+ENxWqIb9yteroaudsS8Hz+sraON+65TMw=";
+    hash = "sha256-Talw1P0JnPdU+dDgC8J2TJSOV/LshgQyBbPYEqzKpfA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/backports-zoneinfo/default.nix b/pkgs/development/python-modules/backports-zoneinfo/default.nix
index ed0915eee522..ff5196855d34 100644
--- a/pkgs/development/python-modules/backports-zoneinfo/default.nix
+++ b/pkgs/development/python-modules/backports-zoneinfo/default.nix
@@ -46,7 +46,7 @@ buildPythonPackage rec {
     (substituteAll {
       name = "zoneinfo-path";
       src = ./zoneinfo.patch;
-      zoneinfo = "${tzdata}/lib/${python.libPrefix}/site-packages/tzdata/zoneinfo";
+      zoneinfo = "${tzdata}/${python.sitePackages}/tzdata/zoneinfo";
     })
   ];
 
diff --git a/pkgs/development/python-modules/bandit/default.nix b/pkgs/development/python-modules/bandit/default.nix
index 7d7464ec74da..f2f30079954d 100644
--- a/pkgs/development/python-modules/bandit/default.nix
+++ b/pkgs/development/python-modules/bandit/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "bandit";
-  version = "1.7.6";
+  version = "1.7.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-cs57yXQTdNlvsvHJqJYIKYhfEkP/3nQ95woZzuNT6PM=";
+    hash = "sha256-UnkGvsYIjLSZquMbyWKGS053Vp6dUp7lHfOpO0uKsoo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/base2048/default.nix b/pkgs/development/python-modules/base2048/default.nix
index 889ef9f81f17..8d75bd93e336 100644
--- a/pkgs/development/python-modules/base2048/default.nix
+++ b/pkgs/development/python-modules/base2048/default.nix
@@ -1,8 +1,10 @@
 { lib
+, stdenv
 , buildPythonPackage
 , cargo
 , fetchFromGitHub
 , frelatage
+, libiconv
 , maturin
 , pytestCheckHook
 , pythonOlder
@@ -39,6 +41,10 @@ buildPythonPackage rec {
     rustc
   ];
 
+  buildInputs = lib.optionals stdenv.isDarwin [
+    libiconv
+  ];
+
   passthru.optional-dependencies = {
     fuzz = [
       frelatage
diff --git a/pkgs/development/python-modules/betterproto/default.nix b/pkgs/development/python-modules/betterproto/default.nix
index f17fabec994f..f5cc7d9253ea 100644
--- a/pkgs/development/python-modules/betterproto/default.nix
+++ b/pkgs/development/python-modules/betterproto/default.nix
@@ -13,6 +13,7 @@
 , pytestCheckHook
 , pytest-asyncio
 , pytest-mock
+, typing-extensions
 , tomlkit
 , grpcio-tools
 }:
@@ -20,21 +21,25 @@
 buildPythonPackage rec {
   pname = "betterproto";
   version = "2.0.0b6";
-  format = "pyproject";
-  disabled = pythonOlder "3.7";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "danielgtaylor";
     repo = "python-betterproto";
-    rev = "v.${version}";
+    rev = "refs/tags/v.${version}";
     hash = "sha256-ZuVq4WERXsRFUPNNTNp/eisWX1MyI7UtwqEI8X93wYI=";
   };
 
-  nativeBuildInputs = [ poetry-core ];
+  nativeBuildInputs = [
+    poetry-core
+  ];
 
   propagatedBuildInputs = [
     grpclib
     python-dateutil
+    typing-extensions
   ];
 
   passthru.optional-dependencies.compiler = [
@@ -43,16 +48,18 @@ buildPythonPackage rec {
     isort
   ];
 
-  pythonImportsCheck = [ "betterproto" ];
-
   nativeCheckInputs = [
+    grpcio-tools
     pydantic
-    pytestCheckHook
     pytest-asyncio
     pytest-mock
+    pytestCheckHook
     tomlkit
-    grpcio-tools
-  ] ++ passthru.optional-dependencies.compiler;
+  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+
+  pythonImportsCheck = [
+    "betterproto"
+  ];
 
   # The tests require the generation of code before execution. This requires
   # the protoc-gen-python_betterproto script from the package to be on PATH.
@@ -62,14 +69,24 @@ buildPythonPackage rec {
     ${python.interpreter} -m tests.generate
   '';
 
+  disabledTestPaths = [
+    # https://github.com/danielgtaylor/python-betterproto/issues/530
+    "tests/inputs/oneof/test_oneof.py"
+  ];
+
+  disabledTests = [
+    "test_pydantic_no_value"
+  ];
+
   meta = with lib; {
-    description = "Clean, modern, Python 3.6+ code generator & library for Protobuf 3 and async gRPC";
+    description = "Code generator & library for Protobuf 3 and async gRPC";
     longDescription = ''
       This project aims to provide an improved experience when using Protobuf /
       gRPC in a modern Python environment by making use of modern language
       features and generating readable, understandable, idiomatic Python code.
     '';
     homepage = "https://github.com/danielgtaylor/python-betterproto";
+    changelog = "https://github.com/danielgtaylor/python-betterproto/blob/v.${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ nikstur ];
   };
diff --git a/pkgs/development/python-modules/biopython/default.nix b/pkgs/development/python-modules/biopython/default.nix
index cb27d3231d4f..2ec814f56aef 100644
--- a/pkgs/development/python-modules/biopython/default.nix
+++ b/pkgs/development/python-modules/biopython/default.nix
@@ -1,25 +1,43 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
+, setuptools
 , numpy
-, isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "biopython";
-  version = "1.82";
-  format = "setuptools";
+  version = "1.83";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-qbENlZroipdEqRxs42AfTIbn7EFnm8k8KfZ5IY9hZ7s=";
+    hash = "sha256-eOa/t43mMDQDev01/nfLbgqeW2Jwa+z3in2SKxbtg/c=";
   };
 
-  disabled = !isPy3k;
+  nativeBuildInputs = [
+    setuptools
+  ];
 
   propagatedBuildInputs = [ numpy ];
-  # Checks try to write to $HOME, which does not work with nix
-  doCheck = false;
+
+  pythonImportsCheck = [
+    "Bio"
+  ];
+
+  checkPhase = ''
+    runHook preCheck
+
+    export HOME=$(mktemp -d)
+    cd Tests
+    python run_tests.py --offline
+
+    runHook postCheck
+  '';
+
   meta = {
     description = "Python library for bioinformatics";
     longDescription = ''
diff --git a/pkgs/development/python-modules/bip-utils/default.nix b/pkgs/development/python-modules/bip-utils/default.nix
index 505c19cf1943..5666f7c1353a 100644
--- a/pkgs/development/python-modules/bip-utils/default.nix
+++ b/pkgs/development/python-modules/bip-utils/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "bip-utils";
-  version = "2.9.0";
+  version = "2.9.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "ebellocchia";
     repo = "bip_utils";
     rev = "refs/tags/v${version}";
-    hash = "sha256-PUWKpAn6Z1E7uMk8+XFm6FDtupzj6eMSkyXR9vN1w3I=";
+    hash = "sha256-D+LalbrwsjxwYW8l38D1l4tGAsjrZ+bS+/Ppgaxkzy4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/birch/default.nix b/pkgs/development/python-modules/birch/default.nix
index 3afd6d3df06a..1dd4848427e5 100644
--- a/pkgs/development/python-modules/birch/default.nix
+++ b/pkgs/development/python-modules/birch/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, fetchpatch
 , setuptools
 , strct
 , pytestCheckHook
@@ -19,11 +20,24 @@ buildPythonPackage rec {
     hash = "sha256-KdQZzQJvJ+logpcLQfaqqEEZJ/9VmNTQX/a4v0oBC98=";
   };
 
+  patches = [
+    # https://github.com/shaypal5/birch/pull/4
+    (fetchpatch {
+      name = "fix-versioneer-on-python312.patch";
+      url = "https://github.com/shaypal5/birch/commit/84d597b2251ebb76fb15fb70fc86c83baa19dc0b.patch";
+      hash = "sha256-xXADCSIhq1ARny2twzrhR1J8LkMFWFl6tmGxrM8RvkU=";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace pytest.ini \
       --replace  \
         "--cov" \
         "#--cov"
+
+    # configure correct version, which fails due to missing .git
+    substituteInPlace versioneer.py birch/_version.py \
+      --replace '"0+unknown"' '"${version}"'
   '';
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/blebox-uniapi/default.nix b/pkgs/development/python-modules/blebox-uniapi/default.nix
index f93ef838751f..7436f6309152 100644
--- a/pkgs/development/python-modules/blebox-uniapi/default.nix
+++ b/pkgs/development/python-modules/blebox-uniapi/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "blebox-uniapi";
-  version = "2.2.0";
+  version = "2.2.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.9";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "blebox";
     repo = "blebox_uniapi";
     rev = "refs/tags/v${version}";
-    hash = "sha256-cLSI6wa3gHE0QkSVVWMNpb5fyQy0TLDNSqOuGlDJGJc=";
+    hash = "sha256-aVYk/N8dH0jc9BLQ2nZXulMCUqwEWpSX/JTiAxdn2sM=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/blinkpy/default.nix b/pkgs/development/python-modules/blinkpy/default.nix
index 37b01b386055..f245b50d1343 100644
--- a/pkgs/development/python-modules/blinkpy/default.nix
+++ b/pkgs/development/python-modules/blinkpy/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "blinkpy";
-  version = "0.22.5";
+  version = "0.22.6";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "fronzbot";
     repo = "blinkpy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-u6FurFaAbkBOT2F+nTL/rGNdUhOpLq+nVKPF3ohuXEs=";
+    hash = "sha256-46REi+3dUY9dJrhXgKkQ1OfN6XCy1fV9cW6wk82ClOA=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/blocksat-cli/default.nix b/pkgs/development/python-modules/blocksat-cli/default.nix
index ac53b567e5a9..18437efceb4b 100644
--- a/pkgs/development/python-modules/blocksat-cli/default.nix
+++ b/pkgs/development/python-modules/blocksat-cli/default.nix
@@ -1,53 +1,50 @@
 { lib
 , buildPythonPackage
-, fetchPypi
 , distro
+, fetchFromGitHub
+, pyasyncore
 , pysnmp
+, pytestCheckHook
 , python-gnupg
+, pythonAtLeast
+, pythonOlder
 , qrcode
 , requests
-, sseclient-py
-, zfec
-, pytestCheckHook
-, pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "blocksat-cli";
-  version = "0.4.6";
-  format = "setuptools";
+  version = "2.4.6";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-uANAMNoAC4HUoUuR5ldxoiy+LLzZVpKosU5JttXLnqg=";
+  src = fetchFromGitHub {
+    owner = "Blockstream";
+    repo = "satellite";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-1gz2lAS/AHeY54AaVXGeofLC68KjAP7POsIaBL3v2EY=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     distro
     pysnmp
     python-gnupg
     qrcode
     requests
-    sseclient-py
-    zfec
+  ] ++ lib.optionals (pythonAtLeast "3.12") [
+    pyasyncore
   ];
 
   nativeCheckInputs = [
     pytestCheckHook
   ];
 
-  disabledTestPaths = [
-    # disable tests which require being connected to the satellite
-    "blocksatcli/test_satip.py"
-    "blocksatcli/api/test_listen.py"
-    "blocksatcli/api/test_msg.py"
-    "blocksatcli/api/test_net.py"
-    # disable tests which require being online
-    "blocksatcli/api/test_order.py"
-  ];
-
   disabledTests = [
     "test_monitor_get_stats"
     "test_monitor_update_with_reporting_enabled"
@@ -61,6 +58,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Blockstream Satellite CLI";
     homepage = "https://github.com/Blockstream/satellite";
+    changelog = "https://github.com/Blockstream/satellite/releases/tag/v${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ prusnak ];
   };
diff --git a/pkgs/development/python-modules/blurhash-python/default.nix b/pkgs/development/python-modules/blurhash-python/default.nix
new file mode 100644
index 000000000000..2b0232a7e9b9
--- /dev/null
+++ b/pkgs/development/python-modules/blurhash-python/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, cffi
+, pillow
+, pytestCheckHook
+, setuptools-scm
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "blurhash-python";
+  version = "1.2.2";
+
+  disabled = pythonOlder "3.8";
+
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "woltapp";
+    repo = "blurhash-python";
+    rev = "v${version}";
+    hash = "sha256-Cz+PkPp1knvT3U5ofyb1PstM9kzBOkgPbx03LgOLXgw=";
+  };
+
+  nativeBuildInputs = [
+    cffi
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    cffi
+    pillow
+    six
+  ];
+
+  pythonImportsCheck = [ "blurhash" ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  meta = {
+    description = "Compact representation of a placeholder for an image";
+    homepage = "https://github.com/woltapp/blurhash-python";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/boltztrap2/default.nix b/pkgs/development/python-modules/boltztrap2/default.nix
index b8b493258354..6f5155643432 100644
--- a/pkgs/development/python-modules/boltztrap2/default.nix
+++ b/pkgs/development/python-modules/boltztrap2/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "boltztrap2";
-  version = "22.12.1";
+  version = "24.1.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.5";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "BoltzTraP2";
     inherit version;
-    hash = "sha256-gzjWAMUJcF5AyDS1Qx7opVbYewaqGgmFMDGWCh/2Wz4=";
+    hash = "sha256-kgv4lPBxcBmRKihaTwPRz8bHTWAWUOGZADtJUb3y+C4=";
   };
 
   dontUseCmakeConfigure = true;
diff --git a/pkgs/development/python-modules/borb/default.nix b/pkgs/development/python-modules/borb/default.nix
index 2c8c84bbf20c..2c20e8ff7fb7 100644
--- a/pkgs/development/python-modules/borb/default.nix
+++ b/pkgs/development/python-modules/borb/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "borb";
-  version = "2.1.20";
+  version = "2.1.21";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-HvPwFtqAPtJrG+O+t8OyQmYHVo6DC7StAjSfAxtuFe4=";
+    hash = "sha256-gnsPsvchvcUlWwmhDIazuc8/83ZRKc29VKhIDFSoFlE=";
   };
 
   propagatedBuildInputs = [
@@ -44,6 +44,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Library for reading, creating and manipulating PDF files in Python";
     homepage = "https://borbpdf.com/";
+    changelog = "https://github.com/jorisschellekens/borb/releases/tag/v${version}";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ marsam ];
   };
diff --git a/pkgs/development/python-modules/boto3-stubs/default.nix b/pkgs/development/python-modules/boto3-stubs/default.nix
index 85a58ae3711c..1adb7e70c59a 100644
--- a/pkgs/development/python-modules/boto3-stubs/default.nix
+++ b/pkgs/development/python-modules/boto3-stubs/default.nix
@@ -365,14 +365,14 @@
 
 buildPythonPackage rec {
   pname = "boto3-stubs";
-  version = "1.34.20";
+  version = "1.34.33";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-QxhR6oK4WW+PpJ3nAUVUrg8vosxqCVRFl4ejuTh5bGg=";
+    hash = "sha256-WXuVCQ6rw+EI6AS24jVgYRwx0H6VGZzzVIzPdIIGK+Y=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/botocore-stubs/default.nix b/pkgs/development/python-modules/botocore-stubs/default.nix
index a8164c800530..d19a49f7a34d 100644
--- a/pkgs/development/python-modules/botocore-stubs/default.nix
+++ b/pkgs/development/python-modules/botocore-stubs/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "botocore-stubs";
-  version = "1.34.21";
+  version = "1.34.34";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "botocore_stubs";
     inherit version;
-    hash = "sha256-xc3pikb8lNUNTs1GXdXGRQEiHJT+KJWmBt5cReyDdkM=";
+    hash = "sha256-NPTURvnu2SvuYqD8MDtxLREqhKo1bj3M6ihjrHnZ7xQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/botorch/default.nix b/pkgs/development/python-modules/botorch/default.nix
index c62fef2478ae..d4503c85c988 100644
--- a/pkgs/development/python-modules/botorch/default.nix
+++ b/pkgs/development/python-modules/botorch/default.nix
@@ -11,6 +11,7 @@
 , torch
 , scipy
 , pytestCheckHook
+, pythonRelaxDepsHook
 }:
 
 buildPythonPackage rec {
@@ -26,6 +27,7 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
+    pythonRelaxDepsHook
     setuptools
     setuptools-scm
     wheel
@@ -40,6 +42,10 @@ buildPythonPackage rec {
     torch
   ];
 
+  pythonRelaxDeps = [
+    "linear-operator"
+  ];
+
   checkInputs = [
     pytestCheckHook
   ];
diff --git a/pkgs/development/python-modules/boxx/default.nix b/pkgs/development/python-modules/boxx/default.nix
index 7dd580c345a7..a42cc2c0ee55 100644
--- a/pkgs/development/python-modules/boxx/default.nix
+++ b/pkgs/development/python-modules/boxx/default.nix
@@ -19,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "boxx";
-  version = "0.10.12";
+  version = "0.10.13";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-pumkDVyotm8bJEl/rrpNSsP8KZIVIgThGFB/Sy4OdUs=";
+    hash = "sha256-Z1mmNTGjK77GNdlYAXQzp+9Z7TeiKZGvio4SXGwgOPk=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/branca/default.nix b/pkgs/development/python-modules/branca/default.nix
index 3bd46a26b83b..894ee421d208 100644
--- a/pkgs/development/python-modules/branca/default.nix
+++ b/pkgs/development/python-modules/branca/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "branca";
-  version = "0.7.0";
+  version = "0.7.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "python-visualization";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-DH+XBj+VcS56+nAOGjjrKG0dnSKrqiU6N5vkILm+vSE=";
+    hash = "sha256-OePOZvqXtsp73HsfFslI6F3kegbdk45lWY1CMQRTcoc=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/breezy/Cargo.lock b/pkgs/development/python-modules/breezy/Cargo.lock
index 6b1457497700..0c70fa49f4ee 100644
--- a/pkgs/development/python-modules/breezy/Cargo.lock
+++ b/pkgs/development/python-modules/breezy/Cargo.lock
@@ -4,9 +4,9 @@ version = 3
 
 [[package]]
 name = "aho-corasick"
-version = "1.0.5"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c378d78423fdad8089616f827526ee33c19f2fddbd5de1629152c9593ba4783"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
 dependencies = [
  "memchr",
 ]
@@ -25,7 +25,7 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "breezy"
-version = "3.3.4"
+version = "3.3.5"
 dependencies = [
  "pyo3",
 ]
@@ -37,10 +37,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
 name = "indoc"
-version = "1.0.9"
+version = "2.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306"
+checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8"
 
 [[package]]
 name = "lazy_static"
@@ -50,15 +56,15 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libc"
-version = "0.2.147"
+version = "0.2.152"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
 
 [[package]]
 name = "lock_api"
-version = "0.4.10"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -66,9 +72,9 @@ dependencies = [
 
 [[package]]
 name = "memchr"
-version = "2.6.3"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "memoffset"
@@ -81,9 +87,9 @@ dependencies = [
 
 [[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 = "parking_lot"
@@ -97,9 +103,9 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.8"
+version = "0.9.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
  "cfg-if",
  "libc",
@@ -110,18 +116,18 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.66"
+version = "1.0.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "pyo3"
-version = "0.19.2"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e681a6cfdc4adcc93b4d3cf993749a4552018ee0a9b65fc0ccfad74352c72a38"
+checksum = "9a89dc7a5850d0e983be1ec2a463a171d20990487c3cfcd68b5363f1ee3d6fe0"
 dependencies = [
  "cfg-if",
  "indoc",
@@ -136,9 +142,9 @@ dependencies = [
 
 [[package]]
 name = "pyo3-build-config"
-version = "0.19.2"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "076c73d0bc438f7a4ef6fdd0c3bb4732149136abd952b110ac93e4edb13a6ba5"
+checksum = "07426f0d8fe5a601f26293f300afd1a7b1ed5e78b2a705870c5f30893c5163be"
 dependencies = [
  "once_cell",
  "target-lexicon",
@@ -146,9 +152,9 @@ dependencies = [
 
 [[package]]
 name = "pyo3-ffi"
-version = "0.19.2"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e53cee42e77ebe256066ba8aa77eff722b3bb91f3419177cf4cd0f304d3284d9"
+checksum = "dbb7dec17e17766b46bca4f1a4215a85006b4c2ecde122076c562dd058da6cf1"
 dependencies = [
  "libc",
  "pyo3-build-config",
@@ -156,9 +162,9 @@ dependencies = [
 
 [[package]]
 name = "pyo3-macros"
-version = "0.19.2"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dfeb4c99597e136528c6dd7d5e3de5434d1ceaf487436a3f03b2d56b6fc9efd1"
+checksum = "05f738b4e40d50b5711957f142878cfa0f28e054aa0ebdfc3fd137a843f74ed3"
 dependencies = [
  "proc-macro2",
  "pyo3-macros-backend",
@@ -168,10 +174,11 @@ dependencies = [
 
 [[package]]
 name = "pyo3-macros-backend"
-version = "0.19.2"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "947dc12175c254889edc0c02e399476c2f652b4b9ebd123aa655c224de259536"
+checksum = "0fc910d4851847827daf9d6cdd4a823fbdaab5b8818325c5e97a86da79e8881f"
 dependencies = [
+ "heck",
  "proc-macro2",
  "quote",
  "syn",
@@ -179,27 +186,27 @@ dependencies = [
 
 [[package]]
 name = "quote"
-version = "1.0.33"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
 
 [[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",
 ]
 
 [[package]]
 name = "regex"
-version = "1.9.5"
+version = "1.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -209,9 +216,9 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.3.8"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795"
+checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -220,13 +227,13 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.5"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "rio-py"
-version = "3.3.4"
+version = "3.3.5"
 dependencies = [
  "lazy_static",
  "pyo3",
@@ -241,15 +248,15 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "smallvec"
-version = "1.11.0"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
 
 [[package]]
 name = "syn"
-version = "1.0.109"
+version = "2.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -258,21 +265,21 @@ dependencies = [
 
 [[package]]
 name = "target-lexicon"
-version = "0.12.11"
+version = "0.12.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a"
+checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae"
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.11"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unindent"
-version = "0.1.11"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c"
+checksum = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce"
 
 [[package]]
 name = "windows-targets"
diff --git a/pkgs/development/python-modules/breezy/default.nix b/pkgs/development/python-modules/breezy/default.nix
index 505137993b08..9861218d13c7 100644
--- a/pkgs/development/python-modules/breezy/default.nix
+++ b/pkgs/development/python-modules/breezy/default.nix
@@ -1,8 +1,7 @@
 { lib
 , stdenv
 , buildPythonPackage
-, fetchpatch
-, fetchPypi
+, fetchFromGitHub
 , cargo
 , configobj
 , cython
@@ -29,24 +28,18 @@
 
 buildPythonPackage rec {
   pname = "breezy";
-  version = "3.3.4";
-  format = "pyproject";
+  version = "3.3.5";
+  pyproject = true;
 
-  disabled = pythonOlder "3.5";
+  disabled = pythonOlder "3.7";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-fEEvOfo8YWhx+xuiqD/KNstlso5/K1XJnGY64tkLIwE=";
+  src = fetchFromGitHub {
+    owner = "breezy-team";
+    repo = "breezy";
+    rev = "brz-${version}";
+    hash = "sha256-z8NKb8gFgA6dufM12jnZIZ6b1ZMZRzFA3w7t7gECEts=";
   };
 
-  patches = [
-    # Explicitly track which URLs are used for GitLab
-    (fetchpatch {
-      url = "https://github.com/breezy-team/breezy/commit/cc9fdf3774253183f726127c2ee191c24640d898.patch";
-      hash = "sha256-HTDAW3CPEZ1YBe0wnv6ncWEd0QRHwHawfTplbVDiOGc=";
-    })
-  ];
-
   cargoDeps = rustPlatform.importCargoLock {
     lockFile = ./Cargo.lock;
   };
@@ -129,7 +122,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Friendly distributed version control system";
     homepage = "https://www.breezy-vcs.org/";
-    changelog = "https://github.com/breezy-team/breezy/blob/brz-${version}/doc/en/release-notes/brz-${versions.majorMinor version}.txt";
+    changelog = "https://github.com/breezy-team/breezy/blob/${src.rev}/doc/en/release-notes/brz-${versions.majorMinor version}.txt";
     license = licenses.gpl2Only;
     maintainers = [ maintainers.marsam ];
     mainProgram = "brz";
diff --git a/pkgs/development/python-modules/bthome-ble/default.nix b/pkgs/development/python-modules/bthome-ble/default.nix
index 746c918120ec..faa8582b6b22 100644
--- a/pkgs/development/python-modules/bthome-ble/default.nix
+++ b/pkgs/development/python-modules/bthome-ble/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "bthome-ble";
-  version = "3.4.1";
+  version = "3.5.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "Bluetooth-Devices";
     repo = "bthome-ble";
     rev = "refs/tags/v${version}";
-    hash = "sha256-1Srimb+MfWiX5NdmDQHJsmn6LatWd8nmXaB4uXdHKWY=";
+    hash = "sha256-7/09RasnW4cTUbwf3N+9DxsGG9pCaqAODX2UNWvlxZg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/bx-py-utils/default.nix b/pkgs/development/python-modules/bx-py-utils/default.nix
index 55d1c971cf21..582bc6b8ca0c 100644
--- a/pkgs/development/python-modules/bx-py-utils/default.nix
+++ b/pkgs/development/python-modules/bx-py-utils/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "bx-py-utils";
-  version = "88";
+  version = "91";
 
   disabled = pythonOlder "3.9";
 
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "boxine";
     repo = "bx_py_utils";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Ds7Ljgp6OdbFkEWl1E0X03o0oJ/Nk8U3pO/ztK42DbY=";
+    hash = "sha256-W8NP5h9fHyTJj6TIpBunoPcNOu8eWV1rA8ZaoGUnmBQ=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/cantools/default.nix b/pkgs/development/python-modules/cantools/default.nix
index d656c85dca01..05a52e2bca08 100644
--- a/pkgs/development/python-modules/cantools/default.nix
+++ b/pkgs/development/python-modules/cantools/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "cantools";
-  version = "39.4.2";
+  version = "39.4.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-gGmo9HO7FnmZC+oJA/OiLVjfVJWuu/CfWNSfYnURthk=";
+    hash = "sha256-eqo9JGvFMouynGgfyBYtKAC+Be4JWz7blHD6FHj55QY=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/celery/default.nix b/pkgs/development/python-modules/celery/default.nix
index 7c22634f2a3c..fa7ebb248adb 100644
--- a/pkgs/development/python-modules/celery/default.nix
+++ b/pkgs/development/python-modules/celery/default.nix
@@ -18,6 +18,7 @@
 , pytest-click
 , pytest-subtests
 , pytest-timeout
+, pytest-xdist
 , pytestCheckHook
 , python-dateutil
 , pythonOlder
@@ -63,6 +64,7 @@ buildPythonPackage rec {
     pytest-click
     pytest-subtests
     pytest-timeout
+    pytest-xdist
     pytestCheckHook
   ];
 
@@ -77,6 +79,10 @@ buildPythonPackage rec {
   disabledTests = [
     "msgpack"
     "test_check_privileges_no_fchown"
+    # fails with pytest-xdist
+    "test_itercapture_limit"
+    "test_stamping_headers_in_options"
+    "test_stamping_with_replace"
   ] ++ lib.optionals stdenv.isDarwin [
     # too many open files on hydra
     "test_cleanup"
diff --git a/pkgs/development/python-modules/censys/default.nix b/pkgs/development/python-modules/censys/default.nix
index f4b1f97f8cfa..901f70dddd2e 100644
--- a/pkgs/development/python-modules/censys/default.nix
+++ b/pkgs/development/python-modules/censys/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "censys";
-  version = "2.2.10";
+  version = "2.2.11";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "censys";
     repo = "censys-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-rjLTEaHSBB6igffNGt4qJZeSyIn1Cc1ZGEGfEoMj7OQ=";
+    hash = "sha256-/aB8rsyymNTXJLsf/IkA6o7M/mzyao10cl7kbxHEzGc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/certbot/default.nix b/pkgs/development/python-modules/certbot/default.nix
index 621a0f991856..0689319840e6 100644
--- a/pkgs/development/python-modules/certbot/default.nix
+++ b/pkgs/development/python-modules/certbot/default.nix
@@ -10,7 +10,7 @@
 , distro
 , josepy
 , parsedatetime
-, pyRFC3339
+, pyrfc3339
 , pyopenssl
 , pytz
 , requests
@@ -47,7 +47,7 @@ buildPythonPackage rec {
     distro
     josepy
     parsedatetime
-    pyRFC3339
+    pyrfc3339
     pyopenssl
     pytz
     requests
diff --git a/pkgs/development/python-modules/certipy-ad/default.nix b/pkgs/development/python-modules/certipy-ad/default.nix
index ce55ab982925..bccf5c066799 100644
--- a/pkgs/development/python-modules/certipy-ad/default.nix
+++ b/pkgs/development/python-modules/certipy-ad/default.nix
@@ -12,7 +12,7 @@
 , pyopenssl
 , pythonOlder
 , requests
-, requests_ntlm
+, requests-ntlm
 , unicrypto
 }:
 
@@ -47,7 +47,7 @@ buildPythonPackage rec {
     pycryptodome
     pyopenssl
     requests
-    requests_ntlm
+    requests-ntlm
     unicrypto
   ];
 
diff --git a/pkgs/development/python-modules/cirq-ft/default.nix b/pkgs/development/python-modules/cirq-ft/default.nix
index d307191dd9af..a0fbbc40da1f 100644
--- a/pkgs/development/python-modules/cirq-ft/default.nix
+++ b/pkgs/development/python-modules/cirq-ft/default.nix
@@ -7,15 +7,20 @@
 , nbconvert
 , nbformat
 , pytestCheckHook
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "cirq-ft";
-  format = "setuptools";
+  pyproject = true;
   inherit (cirq-core) version src meta;
 
   sourceRoot = "${src.name}/${pname}";
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     attrs
     cachetools
@@ -31,6 +36,11 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTests = [
+    # Upstream doesn't always adjust the version
+    "test_version"
+  ];
+
   # cirq's importlib hook doesn't work here
   #pythonImportsCheck = [ "cirq_ft" ];
 
diff --git a/pkgs/development/python-modules/cirq-google/default.nix b/pkgs/development/python-modules/cirq-google/default.nix
index 4f185c825c34..c2d36a4f796d 100644
--- a/pkgs/development/python-modules/cirq-google/default.nix
+++ b/pkgs/development/python-modules/cirq-google/default.nix
@@ -1,27 +1,23 @@
 { buildPythonPackage
 , cirq-core
+, freezegun
 , google-api-core
 , protobuf
 , pytestCheckHook
-, freezegun
 , pythonRelaxDepsHook
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "cirq-google";
-  format = "setuptools";
+  pyproject = true;
   inherit (cirq-core) version src meta;
 
   sourceRoot = "${src.name}/${pname}";
 
-  postPatch = ''
-    substituteInPlace requirements.txt \
-      --replace "google-api-core[grpc] >= 1.14.0, < 2.0.0dev" "google-api-core[grpc] >= 1.14.0, < 3.0.0dev" \
-      --replace "protobuf >= 3.15.0, < 4" "protobuf >= 3.15.0"
-  '';
-
   nativeBuildInputs = [
     pythonRelaxDepsHook
+    setuptools
   ];
 
   propagatedBuildInputs = [
@@ -40,6 +36,8 @@ buildPythonPackage rec {
     "cirq_google/_version_test.py"
     # Trace/BPT trap: 5
     "cirq_google/engine/calibration_test.py"
+    # Very time-consuming
+    "cirq_google/engine/*_test.py"
   ];
 
   disabledTests = [
diff --git a/pkgs/development/python-modules/clarifai-grpc/default.nix b/pkgs/development/python-modules/clarifai-grpc/default.nix
index dc0ad33f60ee..ea3bf5c530d3 100644
--- a/pkgs/development/python-modules/clarifai-grpc/default.nix
+++ b/pkgs/development/python-modules/clarifai-grpc/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "clarifai-grpc";
-  version = "10.0.3";
+  version = "10.0.10";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "Clarifai";
     repo = "clarifai-python-grpc";
     rev = "refs/tags/${version}";
-    hash = "sha256-mIiUwqagFlZXkm/diQlCXMBDAbnWNG4BNMHVedo5u/M=";
+    hash = "sha256-IcMnzfkq4eSXh2KsxSog64RQbJhXkEWjma6LNkzDX0Y=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/clickhouse-connect/default.nix b/pkgs/development/python-modules/clickhouse-connect/default.nix
index 9f6e4519c262..b44188ffcc71 100644
--- a/pkgs/development/python-modules/clickhouse-connect/default.nix
+++ b/pkgs/development/python-modules/clickhouse-connect/default.nix
@@ -23,7 +23,7 @@
 }:
 buildPythonPackage rec {
   pname = "clickhouse-connect";
-  version = "0.6.23";
+  version = "0.7.0";
 
   format = "setuptools";
 
@@ -33,7 +33,7 @@ buildPythonPackage rec {
     repo = "clickhouse-connect";
     owner = "ClickHouse";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Gaiq5t/u5LJeJR5nNNfBvdNaFEycqgxVCHFETIvsUUU=";
+    hash = "sha256-RpuBKdjjSjJJ9UU7VW20gD9Rouj0oxv72sZZaUa/BfY=";
   };
 
   nativeBuildInputs = [ cython_3 ];
diff --git a/pkgs/development/python-modules/cmdstanpy/default.nix b/pkgs/development/python-modules/cmdstanpy/default.nix
index 41f06c59cc2b..717f85dc8e54 100644
--- a/pkgs/development/python-modules/cmdstanpy/default.nix
+++ b/pkgs/development/python-modules/cmdstanpy/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , substituteAll
+, fetchpatch
 , cmdstan
 , pythonRelaxDepsHook
 , setuptools
@@ -11,6 +12,7 @@
 , stanio
 , xarray
 , pytestCheckHook
+, stdenv
 }:
 
 buildPythonPackage rec {
@@ -30,6 +32,11 @@ buildPythonPackage rec {
       src = ./use-nix-cmdstan-path.patch;
       cmdstan = "${cmdstan}/opt/cmdstan";
     })
+    (fetchpatch {
+      name = "stan-2.34-fix-parsing-of-unit_e-output-files.patch";
+      url = "https://github.com/stan-dev/cmdstanpy/commit/144d641739ccd1109055d13b5b96e4e76607305d.patch";
+      hash = "sha256-21hcbK3Xs7vGBNRs4hMfY5g7jIwEG49WYnsOxYJ6ccs=";
+    })
   ];
 
   postPatch = ''
@@ -75,6 +82,8 @@ buildPythonPackage rec {
     # These tests use the flag -DSTAN_THREADS which doesn't work in cmdstan (missing file)
     "test_multi_proc_threads"
     "test_compile_force"
+  ] ++ lib.optionals stdenv.isDarwin [
+    "test_init_types" # CmdStan error: error during processing Operation not permitted
   ];
 
   pythonImportsCheck = [ "cmdstanpy" ];
@@ -84,7 +93,6 @@ buildPythonPackage rec {
     description = "A lightweight interface to Stan for Python users";
     changelog = "https://github.com/stan-dev/cmdstanpy/releases/tag/v${version}";
     license = lib.licenses.bsd3;
-    platforms = lib.platforms.linux;
     maintainers = with lib.maintainers; [ tomasajt ];
   };
 }
diff --git a/pkgs/development/python-modules/coinmetrics-api-client/default.nix b/pkgs/development/python-modules/coinmetrics-api-client/default.nix
index 443d24d3f695..8c0a04f59cd2 100644
--- a/pkgs/development/python-modules/coinmetrics-api-client/default.nix
+++ b/pkgs/development/python-modules/coinmetrics-api-client/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "coinmetrics-api-client";
-  version = "2023.11.27.17";
+  version = "2024.1.17.17";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     inherit version;
     pname = "coinmetrics_api_client";
-    hash = "sha256-UDcegRnDtz6LYAN9S8wiW/TCsIsQHr5sSX+chEkeFnw=";
+    hash = "sha256-mYA67oiWWvEdNU2MrjtOPyDW3LbxH/mgh+MOuZg2ljo=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/comm/default.nix b/pkgs/development/python-modules/comm/default.nix
index e03eae5ffdbb..3c2fa837a8cd 100644
--- a/pkgs/development/python-modules/comm/default.nix
+++ b/pkgs/development/python-modules/comm/default.nix
@@ -8,7 +8,7 @@
 
 let
   pname = "comm";
-  version = "0.2.0";
+  version = "0.2.1";
 in
 buildPythonPackage {
   inherit pname version;
@@ -18,7 +18,7 @@ buildPythonPackage {
     owner = "ipython";
     repo = "comm";
     rev = "refs/tags/v${version}";
-    hash = "sha256-bErZNTm0spO0A/Lc8kq5u7sB0FMXm/WMWtFbCNGJVXE=";
+    hash = "sha256-iyO3q9E2lYU1rMYTnsa+ZJYh+Hq72LEvE9ynebFIBUk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/correctionlib/default.nix b/pkgs/development/python-modules/correctionlib/default.nix
index 15f48da9264f..81a9a1fdb972 100644
--- a/pkgs/development/python-modules/correctionlib/default.nix
+++ b/pkgs/development/python-modules/correctionlib/default.nix
@@ -18,12 +18,12 @@
 
 buildPythonPackage rec {
   pname = "correctionlib";
-  version = "2.4.0";
+  version = "2.5.0";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-bQKcS8vktvD62zvSeaBtoJw36TSpo0gEpKm0HI3AuXg=";
+    hash = "sha256-H8QCdU6piBdqJEJOGVbsz+6eyMhFVuwTpIHKUoKaf4A=";
   };
 
   nativeBuildInputs = [
@@ -62,6 +62,5 @@ buildPythonPackage rec {
     homepage = "https://cms-nanoaod.github.io/correctionlib/";
     license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ veprbl ];
-    broken = versionAtLeast pydantic.version "2";
   };
 }
diff --git a/pkgs/development/python-modules/cron-descriptor/default.nix b/pkgs/development/python-modules/cron-descriptor/default.nix
index bb946780009e..d4283b3af6ec 100644
--- a/pkgs/development/python-modules/cron-descriptor/default.nix
+++ b/pkgs/development/python-modules/cron-descriptor/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "cron_descriptor";
-  version = "1.2.35";
+  version = "1.4";
 
   src = fetchFromGitHub {
     owner = "Salamek";
     repo = "cron-descriptor";
     rev = "refs/tags/${version}";
-    hash = "sha256-m+h91cddmEPHCeUWWNpTvb89mFwm8ty8tTnw3YDjCFo=";
+    hash = "sha256-r5TMatjNYaPhPxhJbBGGshQf6VxKyBV6Za1lQoblxYA=";
   };
 
   # remove tests_require, as we don't do linting anyways
diff --git a/pkgs/development/python-modules/crontab/default.nix b/pkgs/development/python-modules/crontab/default.nix
new file mode 100644
index 000000000000..fea3e9909b70
--- /dev/null
+++ b/pkgs/development/python-modules/crontab/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+, python-dateutil
+, pytz
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "crontab";
+  version = "0.23.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "josiahcarlson";
+    repo = "parse-crontab";
+    rev = "refs/tags/${version}";
+    hash = "sha256-8vMkgBU1jIluo9+hAvk2KNM+Wn0+PvJqFNwX+JLXD+w=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    python-dateutil
+    pytz
+  ];
+
+  pythonImportsCheck = [
+    "crontab"
+  ];
+
+  meta = with lib; {
+    description = "Parse and use crontab schedules in Python";
+    homepage = "https://github.com/josiahcarlson/parse-crontab";
+    license = licenses.lgpl21Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/cryptodatahub/default.nix b/pkgs/development/python-modules/cryptodatahub/default.nix
index 734569297796..e19a4137e4f3 100644
--- a/pkgs/development/python-modules/cryptodatahub/default.nix
+++ b/pkgs/development/python-modules/cryptodatahub/default.nix
@@ -1,36 +1,38 @@
 { lib
-, buildPythonPackage
-, fetchFromGitLab
-
-# build-system
-, setuptools
-
-# dependencies
 , asn1crypto
 , attrs
+, beautifulsoup4
+, buildPythonPackage
+, fetchFromGitLab
 , pathlib2
+, pyfakefs
 , python-dateutil
+, pythonOlder
+, setuptools
 , six
-, urllib3
-
-# tests
-, beautifulsoup4
-, pyfakefs
 , unittestCheckHook
+, urllib3
 }:
 
 buildPythonPackage rec {
   pname = "cryptodatahub";
-  version = "0.10.1";
-  format = "pyproject";
+  version = "0.12.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitLab {
     owner = "coroner";
     repo = "cryptodatahub";
-    rev = "v${version}";
-    hash = "sha256-eLdK5gFrLnbIBB1NTeQzpdCLPdATVjzPn5LhhUsDuwo=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-zVHHBQYcl26zTtXPAs/AgKOojKQORu08rpkfY0l1zjM=";
   };
 
+  postPatch = ''
+    substituteInPlace requirements.txt  \
+      --replace-warn "attrs>=20.3.0,<22.0.1" "attrs>=20.3.0"
+  '';
+
   nativeBuildInputs = [
     setuptools
   ];
@@ -44,23 +46,28 @@ buildPythonPackage rec {
     urllib3
   ];
 
-  pythonImportsCheck = [ "cryptodatahub" ];
-
   nativeCheckInputs = [
     beautifulsoup4
     pyfakefs
     unittestCheckHook
   ];
 
+  pythonImportsCheck = [
+    "cryptodatahub"
+  ];
+
+
   preCheck = ''
     # failing tests
     rm test/updaters/test_common.py
+    # Tests require network access
+    rm test/common/test_utils.py
   '';
 
   meta = with lib; {
     description = "Repository of cryptography-related data";
     homepage = "https://gitlab.com/coroner/cryptodatahub";
-    changelog = "https://gitlab.com/coroner/cryptodatahub/-/blob/${src.rev}/CHANGELOG.rst";
+    changelog = "https://gitlab.com/coroner/cryptodatahub/-/blob/${version}/CHANGELOG.rst";
     license = licenses.mpl20;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/cryptography/default.nix b/pkgs/development/python-modules/cryptography/default.nix
index 4acb8c6dcd19..770561126fb3 100644
--- a/pkgs/development/python-modules/cryptography/default.nix
+++ b/pkgs/development/python-modules/cryptography/default.nix
@@ -4,6 +4,7 @@
 , callPackage
 , cargo
 , cffi
+, cryptography-vectors ? (callPackage ./vectors.nix { })
 , fetchPypi
 , hypothesis
 , iso8601
@@ -24,9 +25,6 @@
 , setuptoolsRustBuildHook
 }:
 
-let
-  cryptography-vectors = callPackage ./vectors.nix { };
-in
 buildPythonPackage rec {
   pname = "cryptography";
   version = "41.0.7"; # Also update the hash in vectors.nix
diff --git a/pkgs/development/python-modules/cryptolyzer/default.nix b/pkgs/development/python-modules/cryptolyzer/default.nix
index 27c5150f3715..61d5a4a3f664 100644
--- a/pkgs/development/python-modules/cryptolyzer/default.nix
+++ b/pkgs/development/python-modules/cryptolyzer/default.nix
@@ -1,35 +1,56 @@
 { lib
 , attrs
+, beautifulsoup4
 , buildPythonPackage
 , certvalidator
+, colorama
 , cryptoparser
+, dnspython
 , fetchPypi
+, pathlib2
+, pyfakefs
+, python-dateutil
 , pythonOlder
 , requests
-, six
+, setuptools
 , urllib3
 }:
 
 buildPythonPackage rec {
   pname = "cryptolyzer";
-  version = "0.12.1";
-  format = "setuptools";
+  version = "0.12.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     pname = "CryptoLyzer";
     inherit version;
-    hash = "sha256-1Ec57A5lCjy9FsA3vDmCyfOeHZaQz01FNiKyNV3eJfc=";
+    hash = "sha256-UffFdQ+MiB8kPzqnmWdnGRwAAM9wJwpUDK2bPvPvH0c=";
   };
 
+  postPatch = ''
+    substituteInPlace requirements.txt  \
+      --replace-warn "attrs>=20.3.0,<22.0.1" "attrs>=20.3.0" \
+      --replace-warn "bs4" "beautifulsoup4"
+  '';
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
-    certvalidator
     attrs
-    six
-    urllib3
+    beautifulsoup4
+    certvalidator
+    colorama
     cryptoparser
+    dnspython
+    pathlib2
+    pyfakefs
+    python-dateutil
     requests
+    urllib3
   ];
 
   # Tests require networking
diff --git a/pkgs/development/python-modules/cryptoparser/default.nix b/pkgs/development/python-modules/cryptoparser/default.nix
index a04c424e61e3..e377b35ee5be 100644
--- a/pkgs/development/python-modules/cryptoparser/default.nix
+++ b/pkgs/development/python-modules/cryptoparser/default.nix
@@ -12,15 +12,20 @@
 
 buildPythonPackage rec {
   pname = "cryptoparser";
-  version = "0.12.1";
-  format = "pyproject";
+  version = "0.12.2";
+  pyproject = true;
 
   src = fetchPypi {
     pname = "CryptoParser";
     inherit version;
-    hash = "sha256-Q05koDfVaVgiQYhULkwzl9uzUIumO8ZIGJPfxRBUsj0=";
+    hash = "sha256-SG7I/uOWZapjZ5zGW1HndGqaYc2k2aRWf3IWlartIJE=";
   };
 
+  postPatch = ''
+    substituteInPlace requirements.txt  \
+      --replace-warn "attrs>=20.3.0,<22.0.1" "attrs>=20.3.0"
+  '';
+
   nativeBuildInputs = [
     setuptools
   ];
diff --git a/pkgs/development/python-modules/crytic-compile/default.nix b/pkgs/development/python-modules/crytic-compile/default.nix
index 26e7080c2139..56dab1fbbb54 100644
--- a/pkgs/development/python-modules/crytic-compile/default.nix
+++ b/pkgs/development/python-modules/crytic-compile/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "crytic-compile";
-  version = "0.3.5";
+  version = "0.3.6";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "crytic";
     repo = "crytic-compile";
     rev = "refs/tags/${version}";
-    hash = "sha256-aO2K0lc3qjKK8CZAbu/lotI5QJ/R+8npSIRX4a6HdrI=";
+    hash = "sha256-dQynnILHt6YO5qtvVVwcxRwtBJgokyfsQ5ubH15dkuA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cvelib/default.nix b/pkgs/development/python-modules/cvelib/default.nix
index 0f9d292a5151..c269c351c1da 100644
--- a/pkgs/development/python-modules/cvelib/default.nix
+++ b/pkgs/development/python-modules/cvelib/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "cvelib";
-  version = "1.2.1";
+  version = "1.3.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "RedHatProductSecurity";
     repo = "cvelib";
     rev = "tags/${version}";
-    hash = "sha256-hJPcxnc4iQzsYNNVJ9fw6yQl+5K7pdtjHT6oMmBx/Zs=";
+    hash = "sha256-PCZUAKgE80PD//4qK8ap55IN9vtx9WdpRZUAC3UdaWM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cvss/default.nix b/pkgs/development/python-modules/cvss/default.nix
index 140852cb98be..120325a7b8e5 100644
--- a/pkgs/development/python-modules/cvss/default.nix
+++ b/pkgs/development/python-modules/cvss/default.nix
@@ -2,47 +2,44 @@
 , buildPythonPackage
 , fetchFromGitHub
 , jsonschema
-, pytestCheckHook
+, unittestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "cvss";
-  version = "2.6";
-  format = "setuptools";
+  version = "3.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "RedHatProductSecurity";
-    repo = pname;
+    repo = "cvss";
     rev = "refs/tags/v${version}";
-    hash = "sha256-gD9MreJQPaxziy02Wt3BGFiIoQ/+pW3KqiNfNlTijJY=";
+    hash = "sha256-xrkWpE13Y4KgQEZjitWE3Ka+IyfShqE2cj0/yzsAnX4=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   nativeCheckInputs = [
     jsonschema
-    pytestCheckHook
+    unittestCheckHook
   ];
 
   pythonImportsCheck = [
     "cvss"
   ];
 
-  disabledTests = [
-    # Tests require additional data
-    "test_calculator"
-    "test_cvsslib"
-    "test_json_ordering"
-    "test_json_schema_repr"
-    "test_random"
-    "test_rh_vector"
-    "test_simple"
-    "test_simple_31"
-  ];
+  preCheck = ''
+    cd tests
+  '';
 
   meta = with lib; {
-    description = "Library for CVSS2/3";
+    description = "Library for CVSS2/3/4";
     homepage = "https://github.com/RedHatProductSecurity/cvss";
     changelog = "https://github.com/RedHatProductSecurity/cvss/releases/tag/v${version}";
     license = with licenses; [ lgpl3Plus ];
diff --git a/pkgs/development/python-modules/cvxpy/default.nix b/pkgs/development/python-modules/cvxpy/default.nix
index b98e52695836..a8e4b6dc9618 100644
--- a/pkgs/development/python-modules/cvxpy/default.nix
+++ b/pkgs/development/python-modules/cvxpy/default.nix
@@ -19,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "cvxpy";
-  version = "1.4.1";
+  version = "1.4.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ep7zTjxX/4yETYbwo4NPtVda8ZIzlHY53guld8YSLj4=";
+    hash = "sha256-CjhqV4jb14t7IN0HFSTsY2yPpys2KOafGrxxTI+YEeU=";
   };
 
   # we need to patch out numpy version caps from upstream
diff --git a/pkgs/development/python-modules/cwl-upgrader/default.nix b/pkgs/development/python-modules/cwl-upgrader/default.nix
index cfd1cebd6620..874af6d65941 100644
--- a/pkgs/development/python-modules/cwl-upgrader/default.nix
+++ b/pkgs/development/python-modules/cwl-upgrader/default.nix
@@ -7,29 +7,33 @@
 , pythonOlder
 , ruamel-yaml
 , schema-salad
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "cwl-upgrader";
-  version = "1.2.10";
-  format = "setuptools";
+  version = "1.2.11";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "common-workflow-language";
-    repo = pname;
+    repo = "cwl-upgrader";
     rev = "refs/tags/v${version}";
-    hash = "sha256-D/MIvn/jyxK++CMgKM8EYDVo94WFgdlTtMZjsXoQ4W4=";
+    hash = "sha256-P8607Io/KIJqAnrValM+rRK59tQITcC/jyGwkge8qN0=";
   };
 
   postPatch = ''
-    substituteInPlace setup.py \
-      --replace "ruamel.yaml >= 0.15, < 0.17.22" "ruamel.yaml" \
-      --replace "setup_requires=PYTEST_RUNNER," ""
-    sed -i "/ruamel.yaml/d" setup.py
+    # Version detection doesn't work for schema_salad
+    substituteInPlace pyproject.toml \
+      --replace '"schema_salad",' ""
   '';
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     mypy-extensions
     ruamel-yaml
@@ -46,9 +50,9 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "Library to interface with Yolink";
-    homepage = "https://github.com/common-workflow-language/cwl-utils";
-    changelog = "https://github.com/common-workflow-language/cwl-utils/releases/tag/v${version}";
+    description = "Library to upgrade CWL syntax to a newer version";
+    homepage = "https://github.com/common-workflow-language/cwl-upgrader";
+    changelog = "https://github.com/common-workflow-language/cwl-upgrader/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/cx-freeze/default.nix b/pkgs/development/python-modules/cx-freeze/default.nix
index 91cae6b49d7f..a3c71a2776bc 100644
--- a/pkgs/development/python-modules/cx-freeze/default.nix
+++ b/pkgs/development/python-modules/cx-freeze/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "cx-freeze";
-  version = "6.15.12";
+  version = "6.15.13";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "cx_Freeze";
     inherit version;
-    hash = "sha256-Ak4OC94xD21daVdsbYSvFxO1YKJcccJ8xoCBk50cWww=";
+    hash = "sha256-VeOgoVrga9dPJ0W9S3Ye/9Ff5yEOlP2DlDf0sDUh1yo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/cyclonedx-python-lib/default.nix b/pkgs/development/python-modules/cyclonedx-python-lib/default.nix
index e4bd3686b161..6d5aa4032c2d 100644
--- a/pkgs/development/python-modules/cyclonedx-python-lib/default.nix
+++ b/pkgs/development/python-modules/cyclonedx-python-lib/default.nix
@@ -23,8 +23,8 @@
 
 buildPythonPackage rec {
   pname = "cyclonedx-python-lib";
-  version = "6.3.0";
-  format = "pyproject";
+  version = "6.4.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     owner = "CycloneDX";
     repo = "cyclonedx-python-lib";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Q4mz6qNqR7lkZqb70COBkrXsv0+z5TEC149dnSpzhtI=";
+    hash = "sha256-IhiH1Vk/Wf6cTxijxE1erkQozY+vOVd5pu6tAVUoDJM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/cypari2/default.nix b/pkgs/development/python-modules/cypari2/default.nix
index 5b5ca31e4d02..cf808fe263a4 100644
--- a/pkgs/development/python-modules/cypari2/default.nix
+++ b/pkgs/development/python-modules/cypari2/default.nix
@@ -5,24 +5,24 @@
 , fetchPypi
 , pari
 , gmp
-, cython
+, cython_3
 , cysignals
 }:
 
 buildPythonPackage rec {
   pname = "cypari2";
   # upgrade may break sage, please test the sage build or ping @timokau on upgrade
-  version = "2.1.3";
+  version = "2.1.4";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "17beb467d3cb39fffec3227c468f0dd8db8a09129faeb95a6bb4c84b2b6c6683";
+    sha256 = "sha256-76SkTZb2k8sRVtof1vzMEw2vz5wZr0GFz3cL9E0A2/w=";
   };
 
   patches = [
     # patch to avoid some segfaults in sage's totallyreal.pyx test.
-    # (https://trac.sagemath.org/ticket/27267). depends on Cython patch.
+    # (https://trac.sagemath.org/ticket/27267).
     (fetchpatch {
       name = "use-trashcan-for-gen.patch";
       url = "https://raw.githubusercontent.com/sagemath/sage/b6ea17ef8e4d652de0a85047bac8d41e90b25555/build/pkgs/cypari/patches/trashcan.patch";
@@ -30,20 +30,13 @@ buildPythonPackage rec {
     })
   ];
 
-  # This differs slightly from the default python installPhase in that it pip-installs
-  # "." instead of "*.whl".
-  # That is because while the default install phase succeeds to build the package,
-  # it fails to generate the file "auto_paridecl.pxd".
-  installPhase = ''
-    export PYTHONPATH="$out/${python.sitePackages}:$PYTHONPATH"
-
-    # install "." instead of "*.whl"
-    pip install . --no-index --no-warn-script-location --prefix="$out" --no-cache
+  preBuild = ''
+    # generate cythonized extensions (auto_paridecl.pxd is crucial)
+    ${python.pythonOnBuildForHost.interpreter} setup.py build_ext --inplace
   '';
 
   nativeBuildInputs = [
     pari
-    python.pythonOnBuildForHost.pkgs.pip
   ];
 
   buildInputs = [
@@ -52,10 +45,11 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     cysignals
-    cython
+    cython_3
   ];
 
   checkPhase = ''
+    test -f "$out/${python.sitePackages}/cypari2/auto_paridecl.pxd"
     make check
   '';
 
diff --git a/pkgs/development/python-modules/daiquiri/default.nix b/pkgs/development/python-modules/daiquiri/default.nix
index c7d6602de5fe..c3e5436de969 100644
--- a/pkgs/development/python-modules/daiquiri/default.nix
+++ b/pkgs/development/python-modules/daiquiri/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "daiquiri";
-  version = "3.2.3";
+  version = "3.2.5.1";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-P8rvN2/WgIi5I5E3R6t+4S2Lf7Kvf4xfIOWYCZfp6DU=";
+    hash = "sha256-Xy6G1vyovDjR6a36YFGE32/eo3AuB8oC0Wqj0AQ7Luw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/darkdetect/default.nix b/pkgs/development/python-modules/darkdetect/default.nix
index 534d9a0573ce..28e3c141a1ee 100644
--- a/pkgs/development/python-modules/darkdetect/default.nix
+++ b/pkgs/development/python-modules/darkdetect/default.nix
@@ -39,6 +39,6 @@ buildPythonPackage rec {
     description = "Detect OS Dark Mode from Python";
     homepage = "https://github.com/albertosottile/darkdetect";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ paveloom ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/dask-awkward/default.nix b/pkgs/development/python-modules/dask-awkward/default.nix
index a7b80faf973e..0875430cc383 100644
--- a/pkgs/development/python-modules/dask-awkward/default.nix
+++ b/pkgs/development/python-modules/dask-awkward/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "dask-awkward";
-  version = "2024.1.1";
+  version = "2024.2.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "dask-contrib";
     repo = "dask-awkward";
     rev = "refs/tags/${version}";
-    hash = "sha256-8nha0h1f/pLl7YmUc5HzlqwNRE/gRpRV2PudkddMHqg=";
+    hash = "sha256-oBGja1dt9UbHym0c5K/pAMXNErryr3u6IhDRuhwTvG0=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/dask-histogram/default.nix b/pkgs/development/python-modules/dask-histogram/default.nix
index c465baf23309..0931cf6060c0 100644
--- a/pkgs/development/python-modules/dask-histogram/default.nix
+++ b/pkgs/development/python-modules/dask-histogram/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "dask-histogram";
-  version = "2023.10.0";
-  format = "pyproject";
+  version = "2024.2.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "dask-contrib";
     repo = "dask-histogram";
     rev = "refs/tags/${version}";
-    hash = "sha256-ugAqNdvCROCCXURwsGLpnl/lBEAremvTI7MVa/TWt6c=";
+    hash = "sha256-YU5i7mGOZxj/pvpkZLwohoSuHJgS3zkHYVuj1Vtyrj4=";
   };
 
   nativeBuildInputs = [
@@ -41,6 +41,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Histograms with task scheduling";
     homepage = "https://dask-histogram.readthedocs.io/";
+    changelog = "https://github.com/dask-contrib/dask-histogram/releases/tag/${version}";
     license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ veprbl ];
   };
diff --git a/pkgs/development/python-modules/dask/default.nix b/pkgs/development/python-modules/dask/default.nix
index 70b15822cb65..77f702506136 100644
--- a/pkgs/development/python-modules/dask/default.nix
+++ b/pkgs/development/python-modules/dask/default.nix
@@ -38,7 +38,7 @@
 
 buildPythonPackage rec {
   pname = "dask";
-  version = "2023.12.0";
+  version = "2024.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -47,7 +47,7 @@ buildPythonPackage rec {
     owner = "dask";
     repo = "dask";
     rev = "refs/tags/${version}";
-    hash = "sha256-LMd55s8LT4m6Ym+LmXb4TKPnZ0jMkNBfcPJxmgruMDM=";
+    hash = "sha256-L8bRh2bx36CYrAFXYJF67rCeCRfm5ufhTkMFRJo0yYo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/databricks-sql-connector/default.nix b/pkgs/development/python-modules/databricks-sql-connector/default.nix
index 01b565df96e9..b0bd083085f3 100644
--- a/pkgs/development/python-modules/databricks-sql-connector/default.nix
+++ b/pkgs/development/python-modules/databricks-sql-connector/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "databricks-sql-connector";
-  version = "3.0.1";
+  version = "3.0.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "databricks";
     repo = "databricks-sql-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ymR/PL+LC7Bt+thtCJs5kfbJgKDgioUo+T79E7ZUQWY=";
+    hash = "sha256-Uvy5/a9YFdPKpZ3B+Yvrvp7uZCY/My45w1lDqX7zJvI=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/datadog/default.nix b/pkgs/development/python-modules/datadog/default.nix
index 9c314e6ea09a..1375dd7e780a 100644
--- a/pkgs/development/python-modules/datadog/default.nix
+++ b/pkgs/development/python-modules/datadog/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "datadog";
-  version = "0.47.0";
-  format = "pyproject";
+  version = "0.48.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-R747LD1wmn9bcJ6xJu1P5sx5d9YY/lwVjdicKp99mRY=";
+    hash = "sha256-1NZhNYw+f4Afv+FRGPXM8Iub2bH0W4uRBgWWUoPtrWQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/dataprep-ml/default.nix b/pkgs/development/python-modules/dataprep-ml/default.nix
index 6af89e238ccd..00a25158bc87 100644
--- a/pkgs/development/python-modules/dataprep-ml/default.nix
+++ b/pkgs/development/python-modules/dataprep-ml/default.nix
@@ -1,24 +1,28 @@
 { lib
 , buildPythonPackage
+, colorlog
+, dataclasses-json
 , fetchPypi
-, pythonOlder
-, poetry-core
+, nltk-data
 , numpy
 , pandas
+, poetry-core
+, pydantic
 , pydateinfer
 , python-dateutil
+, pythonOlder
+, pythonRelaxDepsHook
 , scipy
-, type-infer
-, dataclasses-json
-, colorlog
-, pydantic
-, nltk-data
 , symlinkJoin
+, type-infer
 }:
 let
   testNltkData = symlinkJoin {
     name = "nltk-test-data";
-    paths = [ nltk-data.punkt nltk-data.stopwords ];
+    paths = [
+      nltk-data.punkt
+      nltk-data.stopwords
+    ];
   };
 in
 buildPythonPackage rec {
@@ -35,20 +39,25 @@ buildPythonPackage rec {
     hash = "sha256-BtnRmj5JtgNdCFowgNdpIZn5vUdw8QYCWneHfDgC4/c=";
   };
 
+  pythonRelaxDeps = [
+    "pydantic"
+  ];
+
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
+    colorlog
+    dataclasses-json
     numpy
     pandas
+    pydantic
     pydateinfer
     python-dateutil
     scipy
     type-infer
-    dataclasses-json
-    colorlog
-    pydantic
   ];
 
   # PyPI tarball has no tests
diff --git a/pkgs/development/python-modules/deebot-client/default.nix b/pkgs/development/python-modules/deebot-client/default.nix
new file mode 100644
index 000000000000..7e394e8e27e4
--- /dev/null
+++ b/pkgs/development/python-modules/deebot-client/default.nix
@@ -0,0 +1,84 @@
+{ lib
+, aiohttp
+, aiomqtt
+, buildPythonPackage
+, cachetools
+, defusedxml
+, docker
+, fetchFromGitHub
+, numpy
+, pillow
+, pycountry
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+, setuptools
+, setuptools-scm
+, svg-py
+, testfixtures
+}:
+
+buildPythonPackage rec {
+  pname = "deebot-client";
+  version = "5.1.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.11";
+
+  src = fetchFromGitHub {
+    owner = "DeebotUniverse";
+    repo = "client.py";
+    rev = "refs/tags/${version}";
+    hash = "sha256-XKsS0Ty3n6rQW+f+4lLCc4i9DBqs3b6R5FEIr8L11UE=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    aiomqtt
+    cachetools
+    defusedxml
+    numpy
+    pillow
+    svg-py
+  ];
+
+  nativeCheckInputs = [
+    docker
+    pycountry
+    pytest-asyncio
+    pytestCheckHook
+    testfixtures
+  ];
+
+  pythonImportsCheck = [
+    "deebot_client"
+  ];
+
+  disabledTests = [
+    # Tests require running container
+    "test_last_message_received_at"
+    "test_client_bot_subscription"
+    "test_client_reconnect_manual"
+    "test_p2p_success"
+    "test_p2p_not_supported"
+    "test_p2p_data_type_not_supported"
+    "test_p2p_to_late"
+    "test_p2p_parse_error"
+    "test_mqtt_task_exceptions"
+    "test_mqtt_task_exceptions"
+    "test_client_reconnect_on_broker_error"
+  ];
+
+  meta = with lib; {
+    description = "Deebot client library";
+    homepage = "https://github.com/DeebotUniverse/client.py";
+    changelog = "https://github.com/DeebotUniverse/client.py/releases/tag/${version}";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/demetriek/default.nix b/pkgs/development/python-modules/demetriek/default.nix
index 42205ac652f9..68f2660f6bb7 100644
--- a/pkgs/development/python-modules/demetriek/default.nix
+++ b/pkgs/development/python-modules/demetriek/default.nix
@@ -1,23 +1,24 @@
 { lib
 , aiohttp
+, aresponses
 , awesomeversion
 , backoff
 , buildPythonPackage
-, pydantic
 , fetchFromGitHub
 , fetchpatch
 , poetry-core
-, yarl
-, aresponses
+, pydantic
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
+, pythonRelaxDepsHook
+, yarl
 }:
 
 buildPythonPackage rec {
   pname = "demetriek";
   version = "0.4.0";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
@@ -45,8 +46,13 @@ buildPythonPackage rec {
       --replace "--cov" ""
   '';
 
+  pythonRelaxDeps = [
+    "pydantic"
+  ];
+
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -72,6 +78,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python client for LaMetric TIME devices";
     homepage = "https://github.com/frenck/python-demetriek";
+    changelog = "https://github.com/frenck/python-demetriek/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/dict2xml/default.nix b/pkgs/development/python-modules/dict2xml/default.nix
index c032eef5f4e3..62fb5caa8efb 100644
--- a/pkgs/development/python-modules/dict2xml/default.nix
+++ b/pkgs/development/python-modules/dict2xml/default.nix
@@ -7,8 +7,8 @@
 
 buildPythonPackage rec {
   pname = "dict2xml";
-  version = "1.7.3";
-  format = "pyproject";
+  version = "1.7.4";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "delfick";
     repo = "python-dict2xml";
     rev = "refs/tags/release-${version}";
-    hash = "sha256-0Ahc+8pb1gHvcpnYhKAJYLIaQ5Wbp7Q8clzMVcnVdYs=";
+    hash = "sha256-58sWvdkbt+czo96RUxB2vdOl/wqSU3BNIozSEdixWO8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/diffusers/default.nix b/pkgs/development/python-modules/diffusers/default.nix
index 2d2c901a5016..2150fdabe66e 100644
--- a/pkgs/development/python-modules/diffusers/default.nix
+++ b/pkgs/development/python-modules/diffusers/default.nix
@@ -39,7 +39,7 @@
 
 buildPythonPackage rec {
   pname = "diffusers";
-  version = "0.25.0";
+  version = "0.25.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -48,7 +48,7 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = "diffusers";
     rev = "refs/tags/v${version}";
-    hash = "sha256-3IwBZWSbAMaOo76rUejt4YG7PA0RMLq4LYkNB6SvK6k=";
+    hash = "sha256-AvD/kiwKGojsLlJ0n/U6tTu7ON8Ujl0lZd1e/fDY+CM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/dissect-btrfs/default.nix b/pkgs/development/python-modules/dissect-btrfs/default.nix
new file mode 100644
index 000000000000..3d1bc5c20bac
--- /dev/null
+++ b/pkgs/development/python-modules/dissect-btrfs/default.nix
@@ -0,0 +1,62 @@
+{ lib
+, buildPythonPackage
+, dissect-cstruct
+, dissect-util
+, fetchFromGitHub
+, google-crc32c
+, python-lzo
+, pythonOlder
+, setuptools
+, setuptools-scm
+, zstandard
+}:
+
+buildPythonPackage rec {
+  pname = "dissect-btrfs";
+  version = "1.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "fox-it";
+    repo = "dissect.btrfs";
+    rev = "refs/tags/${version}";
+    hash = "sha256-3k0UUkce7bZ3mZ8Umjms4DX63QeBdRPUXpsdaK0VDyc=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    dissect-cstruct
+    dissect-util
+  ];
+
+  passthru.optional-dependencies = {
+    full = [
+      python-lzo
+      zstandard
+    ];
+    gcrc32 = [
+      google-crc32c
+    ];
+  };
+
+  # Issue with the test file handling
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "dissect.btrfs"
+  ];
+
+  meta = with lib; {
+    description = "Dissect module implementing a parser for the BTRFS file system";
+    homepage = "https://github.com/fox-it/dissect.btrfs";
+    changelog = "https://github.com/fox-it/dissect.btrfs/releases/tag/${version}";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/dissect-clfs/default.nix b/pkgs/development/python-modules/dissect-clfs/default.nix
index 0f44c587c746..03284d72cc93 100644
--- a/pkgs/development/python-modules/dissect-clfs/default.nix
+++ b/pkgs/development/python-modules/dissect-clfs/default.nix
@@ -11,9 +11,9 @@
 buildPythonPackage rec {
   pname = "dissect-clfs";
   version = "1.6";
-  format = "pyproject";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "fox-it";
diff --git a/pkgs/development/python-modules/dissect-cstruct/default.nix b/pkgs/development/python-modules/dissect-cstruct/default.nix
index cecc7dffef3f..bcc86b1f7588 100644
--- a/pkgs/development/python-modules/dissect-cstruct/default.nix
+++ b/pkgs/development/python-modules/dissect-cstruct/default.nix
@@ -9,16 +9,16 @@
 
 buildPythonPackage rec {
   pname = "dissect-cstruct";
-  version = "3.10";
-  format = "pyproject";
+  version = "3.12";
+  pyproject = true;
 
-  disabled = pythonOlder "3.10";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "fox-it";
     repo = "dissect.cstruct";
     rev = "refs/tags/${version}";
-    hash = "sha256-cdBojvFI0cN6mEZ98xLa3XldvIoR+Jv1c0/hvVkKVoQ=";
+    hash = "sha256-67s0Qr/YeQp/K9MZS+btKdp+9J6mIMCwiittIUB9p2w=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/dissect-esedb/default.nix b/pkgs/development/python-modules/dissect-esedb/default.nix
index 1253b9ebb9c8..b5ddf86dd548 100644
--- a/pkgs/development/python-modules/dissect-esedb/default.nix
+++ b/pkgs/development/python-modules/dissect-esedb/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "dissect-esedb";
-  version = "3.10";
+  version = "3.11";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "fox-it";
     repo = "dissect.esedb";
     rev = "refs/tags/${version}";
-    hash = "sha256-RlXnUD+KiBmntM/f7jEzdZ0Tdb8vPGvW0e3XoANaPnk=";
+    hash = "sha256-ynrZqP3QXe+SXFB0Uz+tdH2jGj+hpHfarbEN2P1+r/8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/dissect-extfs/default.nix b/pkgs/development/python-modules/dissect-extfs/default.nix
index 86206ee27ac1..0659372ca5cf 100644
--- a/pkgs/development/python-modules/dissect-extfs/default.nix
+++ b/pkgs/development/python-modules/dissect-extfs/default.nix
@@ -11,16 +11,16 @@
 
 buildPythonPackage rec {
   pname = "dissect-extfs";
-  version = "3.7";
+  version = "3.8";
   format = "pyproject";
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "fox-it";
     repo = "dissect.extfs";
     rev = "refs/tags/${version}";
-    hash = "sha256-RsAWqtoarn/2sZU5dkQYt794dXGOr5fe68VgMNDBst4=";
+    hash = "sha256-yM9PTMI4/8oU2bvOCKdh5tT0gw9+6esV1auKSbupL0U=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/dissect-hypervisor/default.nix b/pkgs/development/python-modules/dissect-hypervisor/default.nix
index 975526db7158..d8ccf0e0d8fb 100644
--- a/pkgs/development/python-modules/dissect-hypervisor/default.nix
+++ b/pkgs/development/python-modules/dissect-hypervisor/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "dissect-hypervisor";
-  version = "3.10";
+  version = "3.11";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "fox-it";
     repo = "dissect.hypervisor";
     rev = "refs/tags/${version}";
-    hash = "sha256-Ml5U7yc4iqqilL6Y9qF3VU+pa0AXnYVQjVas90TpG30=";
+    hash = "sha256-x7C2h9NZRlkJWAe0+PCmOhOpfHM2/4vc7oEGQqGEPq8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/dissect-jffs/default.nix b/pkgs/development/python-modules/dissect-jffs/default.nix
new file mode 100644
index 000000000000..1fdc2af6cc21
--- /dev/null
+++ b/pkgs/development/python-modules/dissect-jffs/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, dissect-cstruct
+, dissect-util
+, fetchFromGitHub
+, pythonOlder
+, setuptools
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "dissect-jffs";
+  version = "1.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "fox-it";
+    repo = "dissect.jffs";
+    rev = "refs/tags/${version}";
+    hash = "sha256-Rj8/WRHNl2IQ6zwvLhqEIEMzk8BH1fv7KQkw1NzoDjI=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    dissect-cstruct
+    dissect-util
+  ];
+
+  # Test file handling fails
+  doCheck = true;
+
+  pythonImportsCheck = [
+    "dissect.jffs"
+  ];
+
+  meta = with lib; {
+    description = "Dissect module implementing a parser for the JFFS2 file system";
+    homepage = "https://github.com/fox-it/dissect.jffs";
+    changelog = "https://github.com/fox-it/dissect.jffs/releases/tag/${version}";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/dissect-ntfs/default.nix b/pkgs/development/python-modules/dissect-ntfs/default.nix
index 4d69844c9884..97ebe80f18b8 100644
--- a/pkgs/development/python-modules/dissect-ntfs/default.nix
+++ b/pkgs/development/python-modules/dissect-ntfs/default.nix
@@ -11,16 +11,16 @@
 
 buildPythonPackage rec {
   pname = "dissect-ntfs";
-  version = "3.7";
+  version = "3.8";
   format = "pyproject";
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "fox-it";
     repo = "dissect.ntfs";
     rev = "refs/tags/${version}";
-    hash = "sha256-bnFimn5ektIKiX73NZ+1Iz3Uoew138a0nFJgypffC4o=";
+    hash = "sha256-BmXYnN8B7r/gz+zEWWS7ClOv29QOiHrm7g2ZNZXlnGU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/dissect-target/default.nix b/pkgs/development/python-modules/dissect-target/default.nix
index 62f4a745156c..786b29562874 100644
--- a/pkgs/development/python-modules/dissect-target/default.nix
+++ b/pkgs/development/python-modules/dissect-target/default.nix
@@ -39,7 +39,7 @@
 
 buildPythonPackage rec {
   pname = "dissect-target";
-  version = "3.14";
+  version = "3.15";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -48,9 +48,14 @@ buildPythonPackage rec {
     owner = "fox-it";
     repo = "dissect.target";
     rev = "refs/tags/${version}";
-    hash = "sha256-vp1upVwohMXFKxlHy5lWmigdq9MUk1UknSsPpCXt50s=";
+    hash = "sha256-1uWKlp0t1mVtt3lbjl4U1TMxE2YHN/GzGs8OuoVTRqc=";
   };
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-warn "flow.record~=" "flow.record>="
+  '';
+
   nativeBuildInputs = [
     setuptools
     setuptools-scm
@@ -105,12 +110,13 @@ buildPythonPackage rec {
     # Test requires rdump
     "test_exec_target_command"
     # Issue with tar file
-    "test_tar_sensitive_drive_letter"
     "test_dpapi_decrypt_blob"
-    "test_notifications_appdb"
     "test_md"
-    "test_notifications_wpndatabase"
     "test_nested_md_lvm"
+    "test_notifications_appdb"
+    "test_notifications_wpndatabase"
+    "test_tar_anonymous_filesystems"
+    "test_tar_sensitive_drive_letter"
     # Tests compare dates and times
     "yum"
     # Filesystem access, windows defender tests
diff --git a/pkgs/development/python-modules/dissect-util/default.nix b/pkgs/development/python-modules/dissect-util/default.nix
index 495294db9c3f..894b5e35f4e0 100644
--- a/pkgs/development/python-modules/dissect-util/default.nix
+++ b/pkgs/development/python-modules/dissect-util/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "dissect-util";
-  version = "3.13";
+  version = "3.14";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "fox-it";
     repo = "dissect.util";
     rev = "refs/tags/${version}";
-    hash = "sha256-GUDYr3lP0BV7zJaaUen78CplRA7jfn1zYes7kczNGEU=";
+    hash = "sha256-NzqQW6OFv+CtAxa5J2X/XGS9UCFfhMp4elvgcTrA1Wg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/dissect-volume/default.nix b/pkgs/development/python-modules/dissect-volume/default.nix
index 1a2ce1e27355..77f69a83730f 100644
--- a/pkgs/development/python-modules/dissect-volume/default.nix
+++ b/pkgs/development/python-modules/dissect-volume/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "dissect-volume";
-  version = "3.7";
+  version = "3.8";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "fox-it";
     repo = "dissect.volume";
     rev = "refs/tags/${version}";
-    hash = "sha256-5ZO++l6BWA085U5IkghjCT46YhKc85SB7sNU2h4Fpec=";
+    hash = "sha256-hEfURO4ITpjSpfHMlYfzO1cG+tjvqBP5QLYzo2uz8yo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/dissect-xfs/default.nix b/pkgs/development/python-modules/dissect-xfs/default.nix
index 1f46b745edc3..af83a91ec22f 100644
--- a/pkgs/development/python-modules/dissect-xfs/default.nix
+++ b/pkgs/development/python-modules/dissect-xfs/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "dissect-xfs";
-  version = "3.6";
+  version = "3.7";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "fox-it";
     repo = "dissect.xfs";
     rev = "refs/tags/${version}";
-    hash = "sha256-unrkmhLvjWWKHiqJWCEVEVcUjxWXMznjOytRbDwAxKw=";
+    hash = "sha256-bqpN4Ho5A9j8oLwErPErMVgkanIkdNTqcT3lkdQiw6M=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/dissect/default.nix b/pkgs/development/python-modules/dissect/default.nix
index 2d15c4f5a720..544deeace888 100644
--- a/pkgs/development/python-modules/dissect/default.nix
+++ b/pkgs/development/python-modules/dissect/default.nix
@@ -1,5 +1,6 @@
 { lib
 , buildPythonPackage
+, dissect-btrfs
 , dissect-cim
 , dissect-clfs
 , dissect-cobaltstrike
@@ -8,11 +9,12 @@
 , dissect-etl
 , dissect-eventlog
 , dissect-evidence
+, dissect-executable
 , dissect-extfs
 , dissect-fat
 , dissect-ffs
-, dissect-executable
 , dissect-hypervisor
+, dissect-jffs
 , dissect-ntfs
 , dissect-ole
 , dissect-regf
@@ -26,14 +28,15 @@
 , dissect-xfs
 , fetchFromGitHub
 , pythonOlder
+, pythonRelaxDepsHook
 , setuptools
 , setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "dissect";
-  version = "3.11";
-  format = "pyproject";
+  version = "3.12";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
@@ -41,15 +44,19 @@ buildPythonPackage rec {
     owner = "fox-it";
     repo = "dissect";
     rev = "refs/tags/${version}";
-    hash = "sha256-6y+p+Ulc1Viu5s1AL/ecVtO4YRnmem/ZleY8xC4CJrU=";
+    hash = "sha256-hy5Yr/yR7CC7cp6pA1JP+GKazu+N4AwPqFKwb7zM+N8=";
   };
 
+  pythonRelaxDeps = true;
+
   nativeBuildInputs = [
+    pythonRelaxDepsHook
     setuptools
     setuptools-scm
   ];
 
   propagatedBuildInputs = [
+    dissect-btrfs
     dissect-cim
     dissect-clfs
     dissect-cobaltstrike
@@ -63,6 +70,7 @@ buildPythonPackage rec {
     dissect-fat
     dissect-ffs
     dissect-hypervisor
+    dissect-jffs
     dissect-ntfs
     dissect-ole
     dissect-regf
diff --git a/pkgs/development/python-modules/distutils-cfg/default.nix b/pkgs/development/python-modules/distutils-cfg/default.nix
index cbf12c17582a..fb616c65d036 100644
--- a/pkgs/development/python-modules/distutils-cfg/default.nix
+++ b/pkgs/development/python-modules/distutils-cfg/default.nix
@@ -24,7 +24,7 @@ in stdenv.mkDerivation {
   dontUnpack = true;
 
   installPhase = ''
-    dest="$out/lib/${python.libPrefix}/site-packages/distutils"
+    dest="$out/${python.sitePackages}/distutils"
     mkdir -p $dest
     ln -s ${python}/lib/${python.libPrefix}/distutils/* $dest
     ln -s ${distutilsCfg} $dest/distutils.cfg
diff --git a/pkgs/development/python-modules/django-cleanup/default.nix b/pkgs/development/python-modules/django-cleanup/default.nix
index acc94865c02b..a465ffefc6a6 100644
--- a/pkgs/development/python-modules/django-cleanup/default.nix
+++ b/pkgs/development/python-modules/django-cleanup/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "django-cleanup";
-  version = "8.0.0";
+  version = "8.1.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-xzmgVUTh5I3ISIcchw2/FZX4Uz0kUjvGc2DkNWLtrw0=";
+    hash = "sha256-cN+QUHakTnoRGzEZgZmvYz3uCIduGZ5tzjbKjda4sQ8=";
   };
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/django-crispy-bootstrap5/default.nix b/pkgs/development/python-modules/django-crispy-bootstrap5/default.nix
new file mode 100644
index 000000000000..16609c82d34a
--- /dev/null
+++ b/pkgs/development/python-modules/django-crispy-bootstrap5/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, django
+, setuptools
+, pytestCheckHook
+, pytest-django
+, django-crispy-forms
+}:
+
+buildPythonPackage rec {
+  pname = "django-crispy-bootstrap5";
+  version = "2023.10";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "django-crispy-forms";
+    repo = "crispy-bootstrap5";
+    rev = "refs/tags/${version}";
+    hash = "sha256-AUMlLj3GmI+0vYw56Dw2+iF5s1l6GF+zV7PRD889ldg=";
+  };
+
+  propagatedBuildInputs = [
+    django
+    setuptools
+  ];
+
+  nativeCheckInputs = [
+    pytest-django
+    pytestCheckHook
+    django-crispy-forms
+  ];
+
+  pythonImportsCheck = [ "crispy_bootstrap5" ];
+
+  meta = with lib; {
+    description = "Bootstrap 5 template pack for django-crispy-forms";
+    homepage = "https://github.com/django-crispy-forms/crispy-bootstrap5";
+    license = licenses.mit;
+    maintainers = with maintainers; [ onny ];
+  };
+}
diff --git a/pkgs/development/python-modules/django-hijack/default.nix b/pkgs/development/python-modules/django-hijack/default.nix
index a5c85a485695..427a8e231139 100644
--- a/pkgs/development/python-modules/django-hijack/default.nix
+++ b/pkgs/development/python-modules/django-hijack/default.nix
@@ -20,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "django-hijack";
-  version = "3.4.3";
+  version = "3.4.5";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "django-hijack";
     repo = "django-hijack";
     rev = "refs/tags/${version}";
-    hash = "sha256-D9IyuM+ZsvFZL0nhMt1VQ1DYcKg4CS8FPAgSWLtsXeE=";
+    hash = "sha256-FXh5OFMTjsKgjEeIS+CiOwyGOs4AisJA+g49rCILDsQ=";
   };
 
   postPatch = ''
@@ -40,7 +40,7 @@ buildPythonPackage rec {
 
   npmDeps = fetchNpmDeps {
     inherit src;
-    hash = "sha256-X3bJ6STFq6zGIzXHSd2C67d4kSOVJJR5aBSM3o5T850=";
+    hash = "sha256-cZEr/7FW4vCR8gpraT+/rPwYK9Xn22b5WH7lnuK5L4U=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/django-import-export/default.nix b/pkgs/development/python-modules/django-import-export/default.nix
index d4c9940c6b04..4bff8bb8fd18 100644
--- a/pkgs/development/python-modules/django-import-export/default.nix
+++ b/pkgs/development/python-modules/django-import-export/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "django-import-export";
-  version = "3.3.5";
+  version = "3.3.6";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "django-import-export";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-bYb000KRnvuMSMTTicqrJ+0zU/XguQFcLATqxUvc5V0=";
+    hash = "sha256-1c+ZGCVrHqqT9aUua+7fI8fYZYBq4I/qq1yIjdVLJPY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/django-mailman3/default.nix b/pkgs/development/python-modules/django-mailman3/default.nix
index 6803c26b01c5..026788caf646 100644
--- a/pkgs/development/python-modules/django-mailman3/default.nix
+++ b/pkgs/development/python-modules/django-mailman3/default.nix
@@ -12,6 +12,7 @@
 , django
 , pytest-django
 , pytestCheckHook
+, nixosTests
 }:
 
 buildPythonPackage rec {
@@ -46,6 +47,8 @@ buildPythonPackage rec {
     "django_mailman3"
   ];
 
+  passthru.tests = { inherit (nixosTests) mailman; };
+
   meta = with lib; {
     description = "Django library for Mailman UIs";
     homepage = "https://gitlab.com/mailman/django-mailman3";
diff --git a/pkgs/development/python-modules/django-maintenance-mode/default.nix b/pkgs/development/python-modules/django-maintenance-mode/default.nix
index e6940c53b430..9cd0950d2547 100644
--- a/pkgs/development/python-modules/django-maintenance-mode/default.nix
+++ b/pkgs/development/python-modules/django-maintenance-mode/default.nix
@@ -1,33 +1,29 @@
 { lib
-, fetchFromGitHub
-, fetchpatch
 , buildPythonPackage
 , django
-, python-fsutil
+, fetchFromGitHub
 , python
+, python-fsutil
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "django-maintenance-mode";
   version = "0.19.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "fabiocaccamo";
-    repo = pname;
+    repo = "django-maintenance-mode";
     rev = "refs/tags/${version}";
     hash = "sha256-NAm3xMcHePTYxysihYj48bk7r9ykEtPcxPjSEju/zMM=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "fix-broken-test.patch";
-      url = "https://github.com/fabiocaccamo/django-maintenance-mode/commit/68cde8d9ceef00eeaa2068f420698c1c562fa9fc.patch";
-      hash = "sha256-K/zYYkcnmWGc7Knz4l9PgvUtT0IccPRXc3UFriC1ldc=";
-    })
+  nativeBuildInputs = [
+    setuptools
   ];
 
   propagatedBuildInputs = [
@@ -43,11 +39,15 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
+  pythonImportsCheck = [
+    "maintenance_mode"
+  ];
+
   meta = with lib; {
     description = "Shows a 503 error page when maintenance-mode is on";
     homepage = "https://github.com/fabiocaccamo/django-maintenance-mode";
     changelog = "https://github.com/fabiocaccamo/django-maintenance-mode/releases/tag/${version}";
-    maintainers = with maintainers; [ mrmebelman ];
     license = licenses.bsd3;
+    maintainers = with maintainers; [ mrmebelman ];
   };
 }
diff --git a/pkgs/development/python-modules/django-reversion/default.nix b/pkgs/development/python-modules/django-reversion/default.nix
index 7eaa9c3a7189..35d54194f07d 100644
--- a/pkgs/development/python-modules/django-reversion/default.nix
+++ b/pkgs/development/python-modules/django-reversion/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "django-reversion";
-  version = "5.0.10";
+  version = "5.0.12";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
 src = fetchPypi {
     inherit pname version;
-    hash = "sha256-wYdJpnwdtBZ8yszDY5XF/mB48xKGloPC89IUBR5aayk=";
+    hash = "sha256-wEfMmanxukqubbicOsJDR41t6Y7Ipgxwc/zIddicXNs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/django-sesame/default.nix b/pkgs/development/python-modules/django-sesame/default.nix
index b0671d789510..a8953369304a 100644
--- a/pkgs/development/python-modules/django-sesame/default.nix
+++ b/pkgs/development/python-modules/django-sesame/default.nix
@@ -10,16 +10,16 @@
 
 buildPythonPackage rec {
   pname = "django-sesame";
-  version = "3.2.1";
-  format = "pyproject";
+  version = "3.2.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "aaugustin";
-    repo = pname;
+    repo = "django-sesame";
     rev = "refs/tags/${version}";
-    hash = "sha256-R7ySuop7E1lkxtRSVNFfzyb3Ba1mW0o6PDiTxTztK/Y=";
+    hash = "sha256-8jbYhD/PfPnutJZonmdrqLIQdXiUHF12w0M9tuyyDz0=";
   };
 
   nativeBuildInputs = [
@@ -46,6 +46,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "URLs with authentication tokens for automatic login";
     homepage = "https://github.com/aaugustin/django-sesame";
+    changelog = "https://github.com/aaugustin/django-sesame/blob/${version}/docs/changelog.rst";
     license = licenses.bsd3;
     maintainers = with maintainers; [ elohmeier ];
   };
diff --git a/pkgs/development/python-modules/django-silk/default.nix b/pkgs/development/python-modules/django-silk/default.nix
index 9f91aee935ac..5cb38385284c 100644
--- a/pkgs/development/python-modules/django-silk/default.nix
+++ b/pkgs/development/python-modules/django-silk/default.nix
@@ -25,7 +25,7 @@
 
 buildPythonPackage rec {
   pname = "django-silk";
-  version = "5.0.3";
+  version = "5.1.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     owner = "jazzband";
     repo = "django-silk";
     rev = "refs/tags/${version}";
-    hash = "sha256-91FcOqAYZK7/RCKgXjbQEPUQ2cZRFi7NzVLQF+MMDRI=";
+    hash = "sha256-QqY1bRa0v4DZ2/gDbssyhJA9Kb+5jig4hZEBVKZiowY=";
   };
 
   # "test_time_taken" tests aren't suitable for reproducible execution, but Django's
diff --git a/pkgs/development/python-modules/django-simple-captcha/default.nix b/pkgs/development/python-modules/django-simple-captcha/default.nix
index d43892cb04d3..11c3e862804a 100644
--- a/pkgs/development/python-modules/django-simple-captcha/default.nix
+++ b/pkgs/development/python-modules/django-simple-captcha/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "django-simple-captcha";
-  version = "0.5.20";
+  version = "0.6.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ICcwCae+tEKX6fbHpr0hraPS+pPDFNL2v145TO62opc=";
+    hash = "sha256-0YhRbTJvrdLVrQduuJZJ1VwCyrr+P9zCFUrBjp9tS5c=";
   };
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/django-two-factor-auth/default.nix b/pkgs/development/python-modules/django-two-factor-auth/default.nix
index 7ca684149800..dfb726a55b01 100644
--- a/pkgs/development/python-modules/django-two-factor-auth/default.nix
+++ b/pkgs/development/python-modules/django-two-factor-auth/default.nix
@@ -17,8 +17,8 @@
 
 buildPythonPackage rec {
   pname = "django-two-factor-auth";
-  version = "1.15.1";
-  format = "setuptools";
+  version = "1.15.5";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "jazzband";
     repo = "django-two-factor-auth";
     rev = "refs/tags/${version}";
-    hash = "sha256-+E6kSD00ChPiRLT2i43dNlVkbvuR1vKkbSZfD1Bf3qc=";
+    hash = "sha256-Sr7L3ioeofyADHb1NSgs0GmVbzX7rro7yhhG9Gq6GJE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/django-versatileimagefield/default.nix b/pkgs/development/python-modules/django-versatileimagefield/default.nix
index bd0e45dee75f..89fd6e85c954 100644
--- a/pkgs/development/python-modules/django-versatileimagefield/default.nix
+++ b/pkgs/development/python-modules/django-versatileimagefield/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "django-versatileimagefield";
-  version = "3.0";
+  version = "3.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-FlHbLtNthDz7F4jyYBRyopPZuoZyk2m29uVZERI1esc=";
+    hash = "sha256-M5DiAEgJjol78pmwNgdj0QzQiWZbeu+OupAO7Lrq0Ng=";
   };
   propagatedBuildInputs = [ pillow python-magic ];
 
diff --git a/pkgs/development/python-modules/django-vite/default.nix b/pkgs/development/python-modules/django-vite/default.nix
index 5f4ee952e2f1..607d0b6e818f 100644
--- a/pkgs/development/python-modules/django-vite/default.nix
+++ b/pkgs/development/python-modules/django-vite/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "django-vite";
-  version = "3.0.2";
+  version = "3.0.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "MrBin99";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-Lnecxkn+E1Bce/EhP1AHH9/VrdzBiMGLv+eYld5+QKM=";
+    hash = "sha256-FH42auBm/YRfGgjL9TGQLed/p0P8POb7DOLmpUK1d9c=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/django-webpack-loader/default.nix b/pkgs/development/python-modules/django-webpack-loader/default.nix
index 3f1aa0138b90..3850c7cbd891 100644
--- a/pkgs/development/python-modules/django-webpack-loader/default.nix
+++ b/pkgs/development/python-modules/django-webpack-loader/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "django-webpack-loader";
-  version = "3.0.0";
+  version = "3.0.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-dND6btp4i4Sxq4KMLn786EFLBe7wpOsr8n0xGlDgpO0=";
+    hash = "sha256-UTMbM9p2aI60078+o7tWQ0sMHfstzYjL+wo5YY9o3Xo=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/django/4.nix b/pkgs/development/python-modules/django/4.nix
index 47c079328a17..66ea0f5c1cf8 100644
--- a/pkgs/development/python-modules/django/4.nix
+++ b/pkgs/development/python-modules/django/4.nix
@@ -45,7 +45,7 @@ buildPythonPackage rec {
   version = "4.2.9";
   format = "pyproject";
 
-  disabled = pythonOlder "3.10";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/dlms-cosem/default.nix b/pkgs/development/python-modules/dlms-cosem/default.nix
index d106d1295595..a285a538fa08 100644
--- a/pkgs/development/python-modules/dlms-cosem/default.nix
+++ b/pkgs/development/python-modules/dlms-cosem/default.nix
@@ -8,29 +8,36 @@
 , pytestCheckHook
 , python-dateutil
 , pythonOlder
+, setuptools
+, structlog
 , typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "dlms-cosem";
-  version = "21.3.2";
-  format = "setuptools";
+  version = "24.1.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "pwitab";
-    repo = pname;
+    repo = "dlms-cosem";
     rev = "refs/tags/${version}";
-    hash = "sha256-BrLanP+SIRRof15yzqwcDOxw92phbW7m9CfORz0xo7I=";
+    hash = "sha256-NeTaU8i18Zb39Y2JnYzr87Ozt7Rj074xusL4xaNe0q0=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     asn1crypto
     attrs
     cryptography
     pyserial
     python-dateutil
+    structlog
     typing-extensions
   ];
 
@@ -45,6 +52,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python module to parse DLMS/COSEM";
     homepage = "https://github.com/pwitab/dlms-cosem";
+    changelog = "https://github.com/pwitab/dlms-cosem/blob/${version}/HISTORY.md";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/dparse/default.nix b/pkgs/development/python-modules/dparse/default.nix
index 3c8b56a2c406..44649dd0e991 100644
--- a/pkgs/development/python-modules/dparse/default.nix
+++ b/pkgs/development/python-modules/dparse/default.nix
@@ -1,17 +1,19 @@
 { lib
 , buildPythonPackage
-, fetchPypi
 , pythonOlder
-, toml
-, pyyaml
+, fetchPypi
+, fetchpatch2
+, setuptools
 , packaging
+, tomli
+, pyyaml
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "dparse";
   version = "0.6.3";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
@@ -20,15 +22,32 @@ buildPythonPackage rec {
     hash = "sha256-J7uLS8rv7DmXaXuj9uBrJEcgC6JzwLCFw9ASoEVxtSg=";
   };
 
+  patches = [
+    (fetchpatch2 {
+      name = "fix-configparser-deprecation-warning.patch";
+      url = "https://github.com/pyupio/dparse/pull/69.patch";
+      hash = "sha256-RolD6xDJpI8/UHgAdcsXoyxOGLok7AogLMOTl1ZPKvw=";
+    })
+  ];
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
-    toml
-    pyyaml
     packaging
+  ] ++ lib.optionals (pythonOlder "3.11") [
+    tomli
   ];
 
+  passthru.optional-dependencies = {
+    # FIXME pipenv = [ pipenv ];
+    conda = [ pyyaml ];
+  };
+
   nativeCheckInputs = [
     pytestCheckHook
-  ];
+  ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
 
   pythonImportsCheck = [
     "dparse"
diff --git a/pkgs/development/python-modules/dploot/default.nix b/pkgs/development/python-modules/dploot/default.nix
new file mode 100644
index 000000000000..6b6dc6454cb6
--- /dev/null
+++ b/pkgs/development/python-modules/dploot/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildPythonPackage
+, poetry-core
+, pythonRelaxDepsHook
+, fetchPypi
+, impacket
+, cryptography
+, pyasn1
+, lxml
+}:
+
+buildPythonPackage rec {
+  pname = "dploot";
+  version = "2.2.4";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-40/5KOlEFvPL9ohCfR3kqoikpKFfJO22MToq3GhamKM=";
+  };
+
+  pythonRelaxDeps = true;
+
+  nativeBuildInputs = [
+    poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  propagatedBuildInputs = [
+    impacket
+    cryptography
+    pyasn1
+    lxml
+  ];
+
+  pythonImportsCheck = [ "dploot" ];
+
+  # No tests
+  doCheck = false;
+
+  meta = {
+    homepage = "https://github.com/zblurx/dploot";
+    description = "DPAPI looting remotely in Python";
+    changelog = "https://github.com/zblurx/dploot/releases/tag/${version}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ vncsb ];
+  };
+}
diff --git a/pkgs/development/python-modules/dramatiq/default.nix b/pkgs/development/python-modules/dramatiq/default.nix
index 84da4beadd79..35c2b79c438d 100644
--- a/pkgs/development/python-modules/dramatiq/default.nix
+++ b/pkgs/development/python-modules/dramatiq/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "dramatiq";
-  version = "1.15.0";
+  version = "1.16.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "Bogdanp";
     repo = "dramatiq";
     rev = "refs/tags/v${version}";
-    hash = "sha256-uhradhLIyfHf1meAr7ChuGnvm62mX/lkQQ2Pe7hBWtY=";
+    hash = "sha256-gC1vWnG3zDuFT61i2VgDrP/qIwmGN5GkGv6EVxqUf4U=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ducc0/default.nix b/pkgs/development/python-modules/ducc0/default.nix
index eee41de63bd4..f655aebf8910 100644
--- a/pkgs/development/python-modules/ducc0/default.nix
+++ b/pkgs/development/python-modules/ducc0/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "ducc0";
-  version = "0.32.0";
+  version = "0.33.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     owner = "mtr";
     repo = "ducc";
     rev = "ducc0_${lib.replaceStrings ["."] ["_"] version}";
-    hash = "sha256-D+Gt5RrzljZQHBijaPuCuNsK08VxxJoWhqxSDu4bjH0=";
+    hash = "sha256-MezcqQRitBkK4/1rRQM2c9w+iZb2kIsDdcNd6I8CPoI=";
   };
 
   buildInputs = [ pybind11 ];
diff --git a/pkgs/development/python-modules/dulwich/default.nix b/pkgs/development/python-modules/dulwich/default.nix
index fc9245f33777..97b27d14bd35 100644
--- a/pkgs/development/python-modules/dulwich/default.nix
+++ b/pkgs/development/python-modules/dulwich/default.nix
@@ -74,6 +74,8 @@ buildPythonPackage rec {
   disabledTestPaths = [
     # missing test inputs
     "dulwich/contrib/test_swift_smoke.py"
+    # flaky on high core count >4
+    "dulwich/tests/compat/test_client.py"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/dvc-data/default.nix b/pkgs/development/python-modules/dvc-data/default.nix
index c7b41c27823a..86f8cf2483e5 100644
--- a/pkgs/development/python-modules/dvc-data/default.nix
+++ b/pkgs/development/python-modules/dvc-data/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "dvc-data";
-  version = "3.7.0";
+  version = "3.9.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "iterative";
     repo = "dvc-data";
     rev = "refs/tags/${version}";
-    hash = "sha256-ycC6NWvU00yUEHu62H5VLKDEZEHyIo4+TBwj5XaswII=";
+    hash = "sha256-rgqSgNsqAGATzu3ZX8LWRiFJt0xTTLaF8bUNOgA3s2w=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/dvc-gdrive/default.nix b/pkgs/development/python-modules/dvc-gdrive/default.nix
new file mode 100644
index 000000000000..e7b2b0d7c499
--- /dev/null
+++ b/pkgs/development/python-modules/dvc-gdrive/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, dvc
+, fetchFromGitHub
+, pydrive2
+, pythonOlder
+, setuptools
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "dvc-gdrive";
+  version = "3.0.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "iterative";
+    repo = "dvc-gdrive";
+    rev = "refs/tags/${version}";
+    hash = "sha256-oqHSMmwfR24ydJlpXGI3cCxIlF0BwNdgje5zKa0c7FA=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    dvc
+    pydrive2
+  ];
+
+  # Circular dependency with dvc
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "dvc_gdrive"
+  ];
+
+  meta = with lib; {
+    description = "Google Drive plugin for DVC";
+    homepage = "https://github.com/iterative/dvc-gdrive";
+    changelog = "https://github.com/iterative/dvc-gdrive/releases/tag/${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/dvc-hdfs/default.nix b/pkgs/development/python-modules/dvc-hdfs/default.nix
new file mode 100644
index 000000000000..b532941e42ba
--- /dev/null
+++ b/pkgs/development/python-modules/dvc-hdfs/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, dvc
+, fetchFromGitHub
+, fsspec
+, pythonOlder
+, setuptools
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "dvc-hdfs";
+  version = "3.0.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "iterative";
+    repo = "dvc-hdfs";
+    rev = "refs/tags/${version}";
+    hash = "sha256-Bo8+El5GC7iyT8SxaJquWFG29BOeilmEMDtTG+RkDGI=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    dvc
+    fsspec
+  ] ++ fsspec.optional-dependencies.arrow;
+
+  # Circular dependency with dvc
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "dvc_hdfs"
+  ];
+
+  meta = with lib; {
+    description = "HDFS/WebHDFS plugin for dvc";
+    homepage = "https://github.com/iterative/dvc-hdfs";
+    changelog = "https://github.com/iterative/dvc-hdfs/releases/tag/${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/dvc-objects/default.nix b/pkgs/development/python-modules/dvc-objects/default.nix
index 34848b020c63..778bcf39fa27 100644
--- a/pkgs/development/python-modules/dvc-objects/default.nix
+++ b/pkgs/development/python-modules/dvc-objects/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "dvc-objects";
-  version = "3.0.3";
+  version = "3.0.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "iterative";
     repo = "dvc-objects";
     rev = "refs/tags/${version}";
-    hash = "sha256-JQ3UDUOpuxPavXkoJqbS0T7y3kpwuJ8NvqAl3DahoLU=";
+    hash = "sha256-os4MzxB4IuqJ9EsKZXGzOU23Qf6LLLiV6SLaNpMlEp8=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/dvc-render/default.nix b/pkgs/development/python-modules/dvc-render/default.nix
index a4527cd1b6c5..fc0a13004970 100644
--- a/pkgs/development/python-modules/dvc-render/default.nix
+++ b/pkgs/development/python-modules/dvc-render/default.nix
@@ -15,16 +15,16 @@
 
 buildPythonPackage rec {
   pname = "dvc-render";
-  version = "1.0.0";
-  format = "pyproject";
+  version = "1.0.1";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "iterative";
-    repo = pname;
+    repo = "dvc-render";
     rev = "refs/tags/${version}";
-    hash = "sha256-OrfepQuLBNa5m3Sy4NzFOArtFFvaNtNNVJ8DNN3yT6s=";
+    hash = "sha256-7rmmhf6Y6teoHR8u1+Ce1Xq0rdtC1/MWLXb282OOEnc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/dvc/default.nix b/pkgs/development/python-modules/dvc/default.nix
index a0ec57df359f..c469ffcb9754 100644
--- a/pkgs/development/python-modules/dvc/default.nix
+++ b/pkgs/development/python-modules/dvc/default.nix
@@ -1,24 +1,22 @@
 { lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pythonOlder
-, pythonRelaxDepsHook
-, setuptools-scm
 , appdirs
+, buildPythonPackage
 , colorama
 , configobj
 , distro
 , dpath
 , dvc-azure
 , dvc-data
+, dvc-gdrive
 , dvc-gs
+, dvc-hdfs
 , dvc-http
 , dvc-render
 , dvc-s3
 , dvc-ssh
 , dvc-studio-client
 , dvc-task
+, fetchFromGitHub
 , flatten-dict
 , flufl_lock
 , funcy
@@ -36,10 +34,13 @@
 , pydot
 , pygtrie
 , pyparsing
+, pythonOlder
+, pythonRelaxDepsHook
 , requests
 , rich
 , ruamel-yaml
 , scmrepo
+, setuptools-scm
 , shortuuid
 , shtab
 , tabulate
@@ -56,14 +57,16 @@
 
 buildPythonPackage rec {
   pname = "dvc";
-  version = "3.39.0";
+  version = "3.43.1";
   pyproject = true;
 
+  disabled = pythonOlder "3.8";
+
   src = fetchFromGitHub {
     owner = "iterative";
     repo = "dvc";
     rev = "refs/tags/${version}";
-    hash = "sha256-sFrbG9CKt8PaW9qdXBxEa516lnRWzFdTEbdCW6VFUuQ=";
+    hash = "sha256-9JS8N4BWikmXoo5TtpUD5El2vHST80NEOBdxkHfK4ME=";
   };
 
   pythonRelaxDeps = [
@@ -72,7 +75,8 @@ buildPythonPackage rec {
   ];
 
   postPatch = ''
-    substituteInPlace dvc/analytics.py --replace 'enabled = not os.getenv(DVC_NO_ANALYTICS)' 'enabled = False'
+    substituteInPlace dvc/analytics.py \
+      --replace 'enabled = not os.getenv(DVC_NO_ANALYTICS)' 'enabled = False'
     substituteInPlace dvc/daemon.py \
       --subst-var-by dvc "$out/bin/dcv"
   '';
@@ -135,9 +139,15 @@ buildPythonPackage rec {
     azure = [
       dvc-azure
     ];
+    gdrive = [
+      dvc-gdrive
+    ];
     gs = [
       dvc-gs
     ];
+    hdfs = [
+      dvc-hdfs
+    ];
     s3 = [
       dvc-s3
     ];
diff --git a/pkgs/development/python-modules/dvclive/default.nix b/pkgs/development/python-modules/dvclive/default.nix
index 67f70fffb3e0..f657ab37083c 100644
--- a/pkgs/development/python-modules/dvclive/default.nix
+++ b/pkgs/development/python-modules/dvclive/default.nix
@@ -1,21 +1,39 @@
 { lib
 , buildPythonPackage
+, datasets
 , dvc
+, dvc-render
 , dvc-studio-client
+, fastai
 , fetchFromGitHub
 , funcy
+, gto
+, jsonargparse
+, lightgbm
+, lightning
+, matplotlib
+, mmcv
+, numpy
+, optuna
+, pandas
+, pillow
 , pytestCheckHook
 , pythonOlder
 , ruamel-yaml
+, scikit-learn
 , scmrepo
 , setuptools-scm
 , tabulate
+, tensorflow
+, torch
+, transformers
+, xgboost
 }:
 
 buildPythonPackage rec {
   pname = "dvclive";
-  version = "3.5.1";
-  format = "pyproject";
+  version = "3.41.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -23,7 +41,7 @@ buildPythonPackage rec {
     owner = "iterative";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-QsA8HZ6wIWKvtQ+f3nyRKKZRNJS56eZ1sKw+KNHxfXc=";
+    hash = "sha256-PbgazRK3+CoJISh1ZXGjxDfbKHY/XqSvVrkpycvPi7c=";
   };
 
   nativeBuildInputs = [
@@ -32,12 +50,78 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     dvc
+    dvc-render
     dvc-studio-client
     funcy
+    gto
     ruamel-yaml
     scmrepo
   ];
 
+  passthru.optional-dependencies = {
+    all = [
+      jsonargparse
+      lightgbm
+      lightning
+      matplotlib
+      mmcv
+      numpy
+      optuna
+      pandas
+      pillow
+      scikit-learn
+      tensorflow
+      torch
+      transformers
+      xgboost
+    ] ++ jsonargparse.optional-dependencies.signatures;
+    image = [
+      numpy
+      pillow
+    ];
+    sklearn = [
+      scikit-learn
+    ];
+    plots = [
+      pandas
+      scikit-learn
+      numpy
+    ];
+    markdown = [
+      matplotlib
+    ];
+    mmcv = [
+      mmcv
+    ];
+    tf = [
+      tensorflow
+    ];
+    xgb = [
+      xgboost
+    ];
+    lgbm = [
+      lightgbm
+    ];
+    huggingface = [
+      datasets
+      transformers
+    ];
+    # catalyst = [
+    #   catalyst
+    # ];
+    fastai = [
+      fastai
+    ];
+    lightning = [
+      lightning
+      torch
+      jsonargparse
+    ] ++ jsonargparse.optional-dependencies.signatures;
+    optuna = [
+      optuna
+    ];
+  };
+
   # Circular dependency with dvc
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/dynalite-devices/default.nix b/pkgs/development/python-modules/dynalite-devices/default.nix
index b057158b731a..e07190f98104 100644
--- a/pkgs/development/python-modules/dynalite-devices/default.nix
+++ b/pkgs/development/python-modules/dynalite-devices/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
   ];
 
   # it would use the erroneous tag v0.47
-  passthru.skipBulkUpdate = false;
+  passthru.skipBulkUpdate = true;
 
   meta = with lib; {
     description = "An unofficial Dynalite DyNET interface creating devices";
diff --git a/pkgs/development/python-modules/ed25519-blake2b/default.nix b/pkgs/development/python-modules/ed25519-blake2b/default.nix
index 2fca4287a348..2783662ad2cf 100644
--- a/pkgs/development/python-modules/ed25519-blake2b/default.nix
+++ b/pkgs/development/python-modules/ed25519-blake2b/default.nix
@@ -1,20 +1,26 @@
 { lib
+, buildPythonPackage
 , fetchPypi
 , pythonOlder
-, buildPythonPackage }:
+, setuptools
+}:
 
 buildPythonPackage rec {
   pname = "ed25519-blake2b";
-  version = "1.4";
-  format = "setuptools";
+  version = "1.4.1";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-0aHLkDLsMHzpW0HGGUQP1NP87MGPIkA1zH1tx6fY70A=";
+    hash = "sha256-cx6fk80awaZGSVdfNRmpn/4LseTPe/X18L5ROjnfc2M=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   pythonImportsCheck = [
     "ed25519_blake2b"
   ];
@@ -22,6 +28,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Ed25519 public-key signatures (BLAKE2b fork)";
     homepage = "https://github.com/Matoking/python-ed25519-blake2b";
+    changelog = "https://github.com/Matoking/python-ed25519-blake2b/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ onny stargate01 ];
   };
diff --git a/pkgs/development/python-modules/edk2-pytool-library/default.nix b/pkgs/development/python-modules/edk2-pytool-library/default.nix
index a42b0cced7cf..2f4442161f55 100644
--- a/pkgs/development/python-modules/edk2-pytool-library/default.nix
+++ b/pkgs/development/python-modules/edk2-pytool-library/default.nix
@@ -10,12 +10,13 @@
 , cryptography
 , joblib
 , gitpython
+, sqlalchemy
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "edk2-pytool-library";
-  version = "0.19.9";
+  version = "0.20.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -24,7 +25,7 @@ buildPythonPackage rec {
     owner = "tianocore";
     repo = "edk2-pytool-library";
     rev = "refs/tags/v${version}";
-    hash = "sha256-eQcto4pd+y9fCjuiaSezA3okfW+xrR01Kc/N2tQdf5A=";
+    hash = "sha256-uqXQbSk/diyTq4d+J1ubc6ylJpETmJt699vfbSuY290=";
   };
 
   nativeBuildInputs = [
@@ -44,6 +45,7 @@ buildPythonPackage rec {
     cryptography
     joblib
     gitpython
+    sqlalchemy
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/eigenpy/default.nix b/pkgs/development/python-modules/eigenpy/default.nix
index 93ec1fc59b50..d3edf6748300 100644
--- a/pkgs/development/python-modules/eigenpy/default.nix
+++ b/pkgs/development/python-modules/eigenpy/default.nix
@@ -9,14 +9,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "eigenpy";
-  version = "3.2.0";
+  version = "3.3.0";
 
   src = fetchFromGitHub {
     owner = "stack-of-tasks";
     repo = finalAttrs.pname;
     rev = "v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-ApWz0La+weqczVj3EyBqTAFlTt8cylA3Dl0ZDP4/i5o=";
+    hash = "sha256-INOg1oL5APMI2YZDe4yOJadhMsG7b+NfEcSr9FsdqeU=";
   };
 
   strictDeps = true;
diff --git a/pkgs/development/python-modules/elasticsearch8/default.nix b/pkgs/development/python-modules/elasticsearch8/default.nix
index 23187eb603e9..84376cdbdb19 100644
--- a/pkgs/development/python-modules/elasticsearch8/default.nix
+++ b/pkgs/development/python-modules/elasticsearch8/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "elasticsearch8";
-  version = "8.11.1";
+  version = "8.12.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-nY+qZ94uVBLMPb0i0k7gEUfcR5lsE6lcbtFtGQkTKeo=";
+    hash = "sha256-YFsrdsAAelOest7Pw3+Zl3lV+Q/e7YMELmL3TodBKSM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/embedding-reader/default.nix b/pkgs/development/python-modules/embedding-reader/default.nix
index 739cad1e1714..9a1a8a0b1dfc 100644
--- a/pkgs/development/python-modules/embedding-reader/default.nix
+++ b/pkgs/development/python-modules/embedding-reader/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "embedding-reader";
-  version = "1.6.1";
+  version = "1.7.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "rom1504";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-51UQOqXZcI1VBQ1k6omMStI7GZXNDQ6/e3ThafpP61U=";
+    hash = "sha256-paN6rAyH3L7qCfWPr5kXo9Xl57gRMhdcDnoyLJ7II2w=";
   };
 
   nativeBuildInputs = [ pythonRelaxDepsHook ];
diff --git a/pkgs/development/python-modules/emoji/default.nix b/pkgs/development/python-modules/emoji/default.nix
index 3820b7a8eaf7..f2c036f7be02 100644
--- a/pkgs/development/python-modules/emoji/default.nix
+++ b/pkgs/development/python-modules/emoji/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "emoji";
-  version = "2.8.0";
+  version = "2.10.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "carpedm20";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-fnVY4KwiqvSVYijlDckLq6qDrBJj/rJGMwaQ1mMygek=";
+    hash = "sha256-cCYZ+0IFHIR9++RfUbFTRMKYB9nC5dBaPMH6dSiAXK0=";
   };
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/environs/default.nix b/pkgs/development/python-modules/environs/default.nix
index 529c940dd45c..8c179349e18e 100644
--- a/pkgs/development/python-modules/environs/default.nix
+++ b/pkgs/development/python-modules/environs/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "environs";
-  version = "10.1.0";
+  version = "10.3.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "sloria";
     repo = "environs";
     rev = "refs/tags/${version}";
-    hash = "sha256-G9dgOugmFRHSLlmVHs2H5XyF3UKghAGtuzTWn4IB4dI=";
+    hash = "sha256-D6Kp8aHiUls7+cACJ3DwrS4OftA5uMbAu4l5IyR4F5U=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/es-client/default.nix b/pkgs/development/python-modules/es-client/default.nix
index 7c72732f7499..c75e0ed25dee 100644
--- a/pkgs/development/python-modules/es-client/default.nix
+++ b/pkgs/development/python-modules/es-client/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , certifi
 , click
+, ecs-logging
 , elastic-transport
 , elasticsearch8
 , fetchFromGitHub
@@ -19,8 +20,8 @@
 
 buildPythonPackage rec {
   pname = "es-client";
-  version = "8.11.0";
-  format = "pyproject";
+  version = "8.12.4";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -28,7 +29,7 @@ buildPythonPackage rec {
     owner = "untergeek";
     repo = "es_client";
     rev = "refs/tags/v${version}";
-    hash = "sha256-VsHpWe37/CZvGm3PqVq4mJCBA9juvOD9FLmDeW8OjiM=";
+    hash = "sha256-IjpnukZRDpflk/lh9aSyeuoj/bzZD0jiS1prBKkZwLk=";
   };
 
   pythonRelaxDeps = true;
@@ -41,6 +42,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     certifi
     click
+    ecs-logging
     elastic-transport
     elasticsearch8
     pyyaml
@@ -62,7 +64,11 @@ buildPythonPackage rec {
   disabledTests = [
     # Tests require network access
     "test_bad_version_raises"
+    "test_basic_operation"
+    "test_basic_operation"
     "test_client_info"
+    "test_logging_options_ecs"
+    "test_logging_options_json"
     "test_multiple_hosts_raises"
     "test_non_dict_passed"
     "test_skip_version_check"
diff --git a/pkgs/development/python-modules/exchangelib/default.nix b/pkgs/development/python-modules/exchangelib/default.nix
index b7d4cda7df7c..9b4078ba47f6 100644
--- a/pkgs/development/python-modules/exchangelib/default.nix
+++ b/pkgs/development/python-modules/exchangelib/default.nix
@@ -17,7 +17,7 @@
 , pytz
 , pyyaml
 , requests
-, requests_ntlm
+, requests-ntlm
 , requests-oauthlib
 , requests-kerberos
 , requests-mock
@@ -57,7 +57,7 @@ buildPythonPackage rec {
     oauthlib
     pygments
     requests
-    requests_ntlm
+    requests-ntlm
     requests-oauthlib
     requests-kerberos
     tzdata
diff --git a/pkgs/development/python-modules/extruct/default.nix b/pkgs/development/python-modules/extruct/default.nix
index c2156965d08b..64873c94d324 100644
--- a/pkgs/development/python-modules/extruct/default.nix
+++ b/pkgs/development/python-modules/extruct/default.nix
@@ -1,38 +1,37 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, pythonRelaxDepsHook
 , html-text
 , jstyleson
 , lxml
 , mf2py
+, mock
 , pyrdfa3
+, pytestCheckHook
+, pythonOlder
+, pythonRelaxDepsHook
 , rdflib
+, setuptools
 , six
 , w3lib
-, pytestCheckHook
-, mock
 }:
 
 buildPythonPackage rec {
   pname = "extruct";
-  version = "0.13.0";
-  format = "setuptools";
+  version = "0.16.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "scrapinghub";
     repo = "extruct";
-    rev = "v${version}";
-    hash = "sha256-hf6b/tZLggHzgFmZ6aldZIBd17Ni7vCTIIzhNlyjvxw=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-6lAb17EoR0FKyIOb9hk1jcpmPtZ7vClfuCrDZ83XBeg=";
   };
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
-
-  # rdflib-jsonld functionality is part of rdblib from version 6 onwards
-  pythonRemoveDeps = [
-    "rdflib-jsonld"
+    setuptools
   ];
 
   propagatedBuildInputs = [
@@ -51,11 +50,20 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "extruct" ];
+  pythonImportsCheck = [
+    "extruct"
+  ];
+
+  disabledTests = [
+    # AssertionError: Lists differ
+    "test_microformat"
+    "test_umicroformat"
+  ];
 
   meta = with lib; {
     description = "Extract embedded metadata from HTML markup";
     homepage = "https://github.com/scrapinghub/extruct";
+    changelog = "https://github.com/scrapinghub/extruct/blob/v${version}/HISTORY.rst";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ambroisie ];
   };
diff --git a/pkgs/development/python-modules/ezyrb/default.nix b/pkgs/development/python-modules/ezyrb/default.nix
index faa7efa650f8..024509dad06b 100644
--- a/pkgs/development/python-modules/ezyrb/default.nix
+++ b/pkgs/development/python-modules/ezyrb/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "ezyrb";
-  version = "1.3.0.post2401";
+  version = "1.3.0.post2402";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "mathLab";
     repo = "EZyRB";
     rev = "refs/tags/v${version}";
-    hash = "sha256-mNpW9RSli7af0fHLh+cmBrOQaO0wlGOrcLigefMR2ww=";
+    hash = "sha256-MiFNTz3vrN4rMHK7e4ntE35wzgnPt6yczCv7XDcUlO8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/face-recognition/default.nix b/pkgs/development/python-modules/face-recognition/default.nix
index 8b06c83cf5aa..ef1d57e3eb67 100644
--- a/pkgs/development/python-modules/face-recognition/default.nix
+++ b/pkgs/development/python-modules/face-recognition/default.nix
@@ -2,15 +2,17 @@
 , fetchPypi
 , lib
 
-# propagates
+  # propagates
 , click
 , dlib
 , face-recognition-models
 , numpy
 , pillow
 
-# tests
+  # tests
 , pytestCheckHook
+, config
+, cudaSupport ? config.cudaSupport
 }:
 
 buildPythonPackage rec {
@@ -18,7 +20,7 @@ buildPythonPackage rec {
   version = "1.3.0";
   format = "setuptools";
 
-  src = fetchPypi  {
+  src = fetchPypi {
     pname = "face_recognition";
     inherit version;
     hash = "sha256-Xl790WhqpWavDTzBMTsTHksZdleo/9A2aebT+tknBew=";
@@ -36,6 +38,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  # Disables tests when running with cuda due to https://github.com/NixOS/nixpkgs/issues/225912
+  doCheck = !config.cudaSupport;
+
   meta = with lib; {
     license = licenses.mit;
     homepage = "https://github.com/ageitgey/face_recognition";
diff --git a/pkgs/development/python-modules/find-libpython/default.nix b/pkgs/development/python-modules/find-libpython/default.nix
index 21ce69e071d7..7a26be2b38ed 100644
--- a/pkgs/development/python-modules/find-libpython/default.nix
+++ b/pkgs/development/python-modules/find-libpython/default.nix
@@ -1,30 +1,42 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , pytestCheckHook
 , pythonOlder
+, setuptools
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "find-libpython";
-  version = "0.3.0";
-  format = "setuptools";
+  version = "0.3.1";
+  pyproject = true;
 
-  src = fetchPypi {
-    inherit version;
-    pname = "find_libpython";
-    sha256 = "sha256-bn/l2a9/rW3AZstVFaDpyQpx8f6yuy+OTNu0+DJ26eU=";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "ktbarrett";
+    repo = "find_libpython";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-DBBAgfYQ4UBFn5Osb1kpVBWbrZVBAvcVGQ/J4rJO/rQ=";
   };
 
-  disabled = pythonOlder "3.7";
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
 
-  pythonImportsCheck = [ "find_libpython" ];
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
 
-  nativeCheckInputs = [ pytestCheckHook ];
+  pythonImportsCheck = [
+    "find_libpython"
+  ];
 
   meta = with lib; {
     description = "Finds the libpython associated with your environment, wherever it may be hiding";
-    changelog = "https://github.com/ktbarrett/find_libpython/releases/tag/${version}";
+    changelog = "https://github.com/ktbarrett/find_libpython/releases/tag/v${version}";
     homepage = "https://github.com/ktbarrett/find_libpython";
     license = licenses.mit;
     maintainers = with maintainers; [ jleightcap ];
diff --git a/pkgs/development/python-modules/fingerprints/default.nix b/pkgs/development/python-modules/fingerprints/default.nix
index 00c2efe7e3f3..a4e3be44b06f 100644
--- a/pkgs/development/python-modules/fingerprints/default.nix
+++ b/pkgs/development/python-modules/fingerprints/default.nix
@@ -1,21 +1,30 @@
 { lib
-, fetchFromGitHub
 , buildPythonPackage
+, fetchFromGitHub
 , normality
 , pytestCheckHook
+, pythonOlder
+, setuptools
 }:
+
 buildPythonPackage rec {
   pname = "fingerprints";
-  version = "1.1.0";
-  format = "setuptools";
+  version = "1.2.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "alephdata";
     repo = "fingerprints";
     rev = version;
-    hash = "sha256-rptBM08dvivfglPvl3PZd9V/7u2SHbJ/BxfVHNGMt3A=";
+    hash = "sha256-U2UslCy1OagVTtllCKsEBX4zI/qIczbxs2Cxzy+/Xys=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     normality
   ];
@@ -32,6 +41,6 @@ buildPythonPackage rec {
     description = "A library to generate entity fingerprints";
     homepage = "https://github.com/alephdata/fingerprints";
     license = licenses.mit;
-    maintainers = [ ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/flake8-bugbear/default.nix b/pkgs/development/python-modules/flake8-bugbear/default.nix
index 3a24547016c2..841aac2be571 100644
--- a/pkgs/development/python-modules/flake8-bugbear/default.nix
+++ b/pkgs/development/python-modules/flake8-bugbear/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "flake8-bugbear";
-  version = "23.12.2";
+  version = "24.1.17";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "PyCQA";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-5l57t7TMtidp6j4tluz8/af5kgPdD8GKY7B7u/toc8I=";
+    hash = "sha256-dkegdW+yTZVmtDJDo67dSkLvEFaqvOw17FpZA4JgHN0=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/flask-caching/default.nix b/pkgs/development/python-modules/flask-caching/default.nix
index 08ff5d808f06..e9b1e3643bdb 100644
--- a/pkgs/development/python-modules/flask-caching/default.nix
+++ b/pkgs/development/python-modules/flask-caching/default.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "Flask-Caching";
-  version = "2.0.2";
+  version = "2.1.0";
   format = "setuptools";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-JLYMVS1ZqWBcwbakLFbNs5qCoo2rRTK77bkiKuVOy04=";
+    hash = "sha256-t1AMFFE1g2qVLj3jqAiB2WVOMnopyFLJJlYH9cRJI1w=";
   };
 
   postPatch = ''
@@ -47,6 +47,7 @@ buildPythonPackage rec {
     "Memcache"
   ] ++ lib.optionals stdenv.isDarwin [
     # ignore flaky test
+    "test_cache_timeout_dynamic"
     "test_cached_view_class"
   ];
 
diff --git a/pkgs/development/python-modules/flask-marshmallow/default.nix b/pkgs/development/python-modules/flask-marshmallow/default.nix
index 8f23f51fe979..0be4e2ffe251 100644
--- a/pkgs/development/python-modules/flask-marshmallow/default.nix
+++ b/pkgs/development/python-modules/flask-marshmallow/default.nix
@@ -2,9 +2,9 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
+, flit-core
 , flask
 , marshmallow
-, packaging
 , pytestCheckHook
 , flask-sqlalchemy
 , marshmallow-sqlalchemy
@@ -12,22 +12,25 @@
 
 buildPythonPackage rec {
   pname = "flask-marshmallow";
-  version = "0.15.0";
-  format = "setuptools";
+  version = "1.1.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "marshmallow-code";
     repo = "flask-marshmallow";
     rev = "refs/tags/${version}";
-    hash = "sha256-N21M/MzcvOaDh5BgbbZtNcpRAULtWGLTMberCfOUoEM=";
+    hash = "sha256-+5L4OfBRMkS6WRXT7dI/uuqloc/PZgu+DFvOCinByh8=";
   };
 
+  nativeBuildInputs = [
+    flit-core
+  ];
+
   propagatedBuildInputs = [
     flask
     marshmallow
-    packaging
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/flet-core/default.nix b/pkgs/development/python-modules/flet-core/default.nix
index 8c5bde07e016..2b84348f36f5 100644
--- a/pkgs/development/python-modules/flet-core/default.nix
+++ b/pkgs/development/python-modules/flet-core/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "flet-core";
-  version = "0.18.0";
-  format = "pyproject";
+  version = "0.19.0";
+  pyproject = true;
 
   src = fetchPypi {
     pname = "flet_core";
     inherit version;
-    hash = "sha256-PbAzbDK9DkQBdrym9H3uBvPeeK8Qocq+t8veF+7izOQ=";
+    hash = "sha256-JRV56SwIhrsJHX/fzQKI0R2o/I+H5xXCXVu7uBiyIP8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/flet-runtime/default.nix b/pkgs/development/python-modules/flet-runtime/default.nix
index 21c5934f8c4b..9f2a9a68de3d 100644
--- a/pkgs/development/python-modules/flet-runtime/default.nix
+++ b/pkgs/development/python-modules/flet-runtime/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , poetry-core
+, pythonRelaxDepsHook
 , flet-core
 , httpx
 , oauthlib
@@ -9,17 +10,22 @@
 
 buildPythonPackage rec {
   pname = "flet-runtime";
-  version = "0.18.0";
-  format = "pyproject";
+  version = "0.19.0";
+  pyproject = true;
 
   src = fetchPypi {
     pname = "flet_runtime";
     inherit version;
-    hash = "sha256-VfPTfCJXpRZsKM4ToFyl7zxbk58HT6eOYthfzAM4f88=";
+    hash = "sha256-no2oDGZG1svrOZLNAao279qeHwyk5SGibDG4UqpriiU=";
   };
 
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "httpx"
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/flet/default.nix b/pkgs/development/python-modules/flet/default.nix
index 815d43c18e03..1730e0515ce2 100644
--- a/pkgs/development/python-modules/flet/default.nix
+++ b/pkgs/development/python-modules/flet/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonRelaxDepsHook
 
 # build-system
 , poetry-core
@@ -21,16 +22,21 @@
 
 buildPythonPackage rec {
   pname = "flet";
-  version = "0.18.0";
-  format = "pyproject";
+  version = "0.19.0";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ix9O4wBq7/gwkV+23B+dnxTYv/VL6w8RmnvbYWcWqmc=";
+    hash = "sha256-YpML/NIUiL1WYg6zR6l60nJ6KRBfjMOjRbPDdjhR3/Q=";
   };
 
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "websockets"
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/fontparts/default.nix b/pkgs/development/python-modules/fontparts/default.nix
index e3113b8d1fb4..9f042cf1ef46 100644
--- a/pkgs/development/python-modules/fontparts/default.nix
+++ b/pkgs/development/python-modules/fontparts/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "fontParts";
-  version = "0.11.0";
+  version = "0.12.1";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-He3BAIWxwDIM80ixmYjyAHlwDK9bBe/qS8P4+TVEkEg=";
+    hash = "sha256-eeU13S1IcC+bsiK3YDlT4rVDeXDGcxx1wY/is8t5pCA=";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/fonttools/default.nix b/pkgs/development/python-modules/fonttools/default.nix
index db66e46f3d9d..e07ab3c0d953 100644
--- a/pkgs/development/python-modules/fonttools/default.nix
+++ b/pkgs/development/python-modules/fonttools/default.nix
@@ -60,7 +60,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ lib.concatLists (lib.attrVals ([
     "woff"
-    "interpolatable"
+    # "interpolatable" is not included because it only contains 2 tests at the time of writing but adds 270 extra dependencies
     "ufo"
   ] ++ lib.optionals (!skia-pathops.meta.broken) [
     "pathops" # broken
diff --git a/pkgs/development/python-modules/fpylll/default.nix b/pkgs/development/python-modules/fpylll/default.nix
index 2de77cfbd69d..97abc4562fe6 100644
--- a/pkgs/development/python-modules/fpylll/default.nix
+++ b/pkgs/development/python-modules/fpylll/default.nix
@@ -20,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "fpylll";
-  version = "0.6.0";
+  version = "0.6.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "fplll";
     repo = "fpylll";
     rev = "refs/tags/${version}";
-    hash = "sha256-EyReCkVRb3CgzIRal5H13OX/UdwWi+evDe7PoS1qP4A=";
+    hash = "sha256-M3ZnDL0Ui3UAa5Jn/Wr5pAHhghP7EAaQD/sx5QZ58ZQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/frigidaire/default.nix b/pkgs/development/python-modules/frigidaire/default.nix
index 1519347b8ba2..d8ddff87463b 100644
--- a/pkgs/development/python-modules/frigidaire/default.nix
+++ b/pkgs/development/python-modules/frigidaire/default.nix
@@ -6,28 +6,33 @@
 , idna
 , pythonOlder
 , requests
+, setuptools
 , urllib3
 }:
 
 buildPythonPackage rec {
   pname = "frigidaire";
-  version = "0.18.13";
-  format = "setuptools";
+  version = "0.18.15";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "bm1549";
-    repo = pname;
+    repo = "frigidaire";
     rev = "refs/tags/${version}";
-    hash = "sha256-FikBV4KjutQfupGPXcVT1h+BfQ099WRrmbrEJOaVCQI=";
+    hash = "sha256-5+epdQyeTGJp8iTrX6vyp4JgM45Fl5cb67Z8trNBe+8=";
   };
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace 'version = "SNAPSHOT"' 'version = "${version}"'
+      --replace-warn 'version = "SNAPSHOT"' 'version = "${version}"'
   '';
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     certifi
     chardet
diff --git a/pkgs/development/python-modules/fuse-python/default.nix b/pkgs/development/python-modules/fuse-python/default.nix
index 87f075460caf..8bcb486a6311 100644
--- a/pkgs/development/python-modules/fuse-python/default.nix
+++ b/pkgs/development/python-modules/fuse-python/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "fuse-python";
-  version = "1.0.5";
+  version = "1.0.7";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-dOX/szaCu6mlrypaBI9Ht+e0ZOv4QpG/WiWL+60Do6o=";
+    hash = "sha256-MhiAY2UkCM1HKuu2+S0135LIu0IAk3H4yJJ7s35r3Rs=";
   };
 
   buildInputs = [ fuse ];
diff --git a/pkgs/development/python-modules/galois/default.nix b/pkgs/development/python-modules/galois/default.nix
index cfb4ac57d563..8c927b96019f 100644
--- a/pkgs/development/python-modules/galois/default.nix
+++ b/pkgs/development/python-modules/galois/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "galois";
-  version = "0.3.7";
+  version = "0.3.8";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "mhostetter";
     repo = "galois";
     rev = "refs/tags/v${version}";
-    hash = "sha256-dWYnD+Byh0orRg20/nhu8ILooFBeHysxQ403boDVqYk=";
+    hash = "sha256-Nfr9gD2FLZ+KvHh1mcpReUWnzFr/NxpvperzZPoFeT4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/garminconnect/default.nix b/pkgs/development/python-modules/garminconnect/default.nix
index 43604aa29333..42363ecdcdd4 100644
--- a/pkgs/development/python-modules/garminconnect/default.nix
+++ b/pkgs/development/python-modules/garminconnect/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "garminconnect";
-  version = "0.2.12";
+  version = "0.2.13";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "cyberjunky";
     repo = "python-garminconnect";
     rev = "refs/tags/${version}";
-    hash = "sha256-uq3biWZvcORvrAMd/Ix0Cj1ol5fiqdDsO54zD82G2vA=";
+    hash = "sha256-9At9v+7jOt43qPOhZpFYBEXA2zUfp8MAGO4/676kcBU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/gehomesdk/default.nix b/pkgs/development/python-modules/gehomesdk/default.nix
index 9b66fc47bd64..3cbc255ec7a0 100644
--- a/pkgs/development/python-modules/gehomesdk/default.nix
+++ b/pkgs/development/python-modules/gehomesdk/default.nix
@@ -7,22 +7,27 @@
 , lxml
 , pythonOlder
 , requests
+, setuptools
 , slixmpp
 , websockets
 }:
 
 buildPythonPackage rec {
   pname = "gehomesdk";
-  version = "0.5.26";
-  format = "setuptools";
+  version = "0.5.27";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-eIpBVfkUIQBriZ4wxp8ii5YmuuKF8r0lNauBEEqoNV8=";
+    hash = "sha256-H76y784lYzETgq5XSsQOSGka/kvM+hyMHzUHEJuXTuk=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     aiohttp
     bidict
diff --git a/pkgs/development/python-modules/gentools/default.nix b/pkgs/development/python-modules/gentools/default.nix
index e4760c3fe958..7dd95925f4ba 100644
--- a/pkgs/development/python-modules/gentools/default.nix
+++ b/pkgs/development/python-modules/gentools/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "gentools";
-  version = "1.2.1";
+  version = "1.2.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "ariebovenberg";
     repo = "gentools";
     rev = "refs/tags/v${version}";
-    hash = "sha256-RBUIji3FOIRjfp4t7zBAVSeiWaYufz4ID8nTWmhDkf8=";
+    hash = "sha256-+6KTFxOpwvGOCqy6JU87gOZmDa6MvjR10qES5wIfrjI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/geometric/default.nix b/pkgs/development/python-modules/geometric/default.nix
index 0693e209b457..3178b959475a 100644
--- a/pkgs/development/python-modules/geometric/default.nix
+++ b/pkgs/development/python-modules/geometric/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "geometric";
-  version = "1.0.1";
+  version = "1.0.2";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "leeping";
     repo = "geomeTRIC";
-    rev = version;
-    hash = "sha256-3d4z1n8+e0HgdeKLNSsHLb3XHOk09uy+gP9AwNvNITE=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-DmrKLVQrPQDzTMxqEImnvRr3Wb2R3+hxtDVCN9XUcFM=";
   };
 
   patches = [ (fetchpatch {
diff --git a/pkgs/development/python-modules/georss-client/default.nix b/pkgs/development/python-modules/georss-client/default.nix
index d6529cbf9fec..51d895456da3 100644
--- a/pkgs/development/python-modules/georss-client/default.nix
+++ b/pkgs/development/python-modules/georss-client/default.nix
@@ -6,23 +6,28 @@
 , pytestCheckHook
 , pythonOlder
 , requests
+, setuptools
 , xmltodict
 }:
 
 buildPythonPackage rec {
   pname = "georss-client";
-  version = "0.15";
-  format = "setuptools";
+  version = "0.17";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "exxamalte";
     repo = "python-georss-client";
-    rev = "v${version}";
-    hash = "sha256-D1ggfEDU+vlFmi1USwdHj1due0PrCQCpKF4zaarHCFs=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-DvQifO/jirpacWZccK4WPxnm/iYs1qT5nAYQUDoleO4=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     haversine
     xmltodict
@@ -41,6 +46,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python library for accessing GeoRSS feeds";
     homepage = "https://github.com/exxamalte/python-georss-client";
+    changelog = "https://github.com/exxamalte/python-georss-client/releases/tag/v${version}";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/georss-ingv-centro-nazionale-terremoti-client/default.nix b/pkgs/development/python-modules/georss-ingv-centro-nazionale-terremoti-client/default.nix
index 273b67acfb7c..e74f3670f223 100644
--- a/pkgs/development/python-modules/georss-ingv-centro-nazionale-terremoti-client/default.nix
+++ b/pkgs/development/python-modules/georss-ingv-centro-nazionale-terremoti-client/default.nix
@@ -4,22 +4,27 @@
 , georss-client
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "georss-ingv-centro-nazionale-terremoti-client";
-  version = "0.6";
-  format = "setuptools";
+  version = "0.7";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "exxamalte";
     repo = "python-georss-ingv-centro-nazionale-terremoti-client";
-    rev = "v${version}";
-    hash = "sha256-zqjo70NzpUt5zNEar0P1sl/gMb+ZcS+7GX7QGuFjMYY=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-J72yd1D4mKCOsBRLMUXKnxmjr6g0IQApTTrWjklczN8=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     georss-client
   ];
@@ -35,6 +40,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python library for accessing the INGV Centro Nazionale Terremoti GeoRSS feed";
     homepage = "https://github.com/exxamalte/python-georss-ingv-centro-nazionale-terremoti-client";
+    changelog = "https://github.com/exxamalte/python-georss-ingv-centro-nazionale-terremoti-client/releases/tag/v${version}";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/git-annex-adapter/default.nix b/pkgs/development/python-modules/git-annex-adapter/default.nix
index 1279be5e9d3f..8af128e895a0 100644
--- a/pkgs/development/python-modules/git-annex-adapter/default.nix
+++ b/pkgs/development/python-modules/git-annex-adapter/default.nix
@@ -1,20 +1,31 @@
-{ lib, buildPythonPackage, isPy3k, fetchFromGitHub, fetchpatch, substituteAll
-, python, util-linux, pygit2, gitMinimal, git-annex, cacert
+{ lib
+, buildPythonPackage
+, cacert
+, fetchFromGitHub
+, fetchpatch
+, git-annex
+, gitMinimal
+, pygit2
+, pytestCheckHook
+, python
+, pythonOlder
+, setuptools
+, substituteAll
+, util-linux
 }:
 
 buildPythonPackage rec {
   pname = "git-annex-adapter";
   version = "0.2.2";
-  format = "setuptools";
+  pyproject = true;
 
-  disabled = !isPy3k;
+  disabled = pythonOlder "3.7";
 
-  # No tests in PyPI tarball
   src = fetchFromGitHub {
     owner = "alpernebbi";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "0666vqspgnvmfs6j3kifwyxr6zmxjs0wlwis7br4zcq0gk32zgdx";
+    repo = "git-annex-adapter";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-vb0vxnwAs0/yOjpyyoGWvX6Tu+cuziGNdnXbdzXexhg=";
   };
 
   patches = [
@@ -37,17 +48,31 @@ buildPythonPackage rec {
     })
   ];
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    pygit2
+    cacert
+  ];
+
   nativeCheckInputs = [
     gitMinimal
     util-linux # `rev` is needed in tests/test_process.py
+    pytestCheckHook
   ];
 
-  propagatedBuildInputs = [ pygit2 cacert ];
+  pythonImportsCheck = [
+    "git_annex_adapter"
+  ];
 
-  checkPhase = ''
-    ${python.interpreter} -m unittest
-  '';
-  pythonImportsCheck = [ "git_annex_adapter" ];
+  disabledTests = [
+    # KeyError and AssertionError
+    "test_jsonprocess_annex_metadata_batch"
+    "test_process_annex_metadata_batch"
+    "test_batchjson_metadata"
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/alpernebbi/git-annex-adapter";
diff --git a/pkgs/development/python-modules/githubkit/default.nix b/pkgs/development/python-modules/githubkit/default.nix
index 85509528bf35..50ec8128885c 100644
--- a/pkgs/development/python-modules/githubkit/default.nix
+++ b/pkgs/development/python-modules/githubkit/default.nix
@@ -1,37 +1,95 @@
 { lib
+, anyio
 , buildPythonPackage
-, fetchPypi
-, poetry-core
+, fetchFromGitHub
+, hishel
 , httpx
+, poetry-core
 , pydantic
+, pyjwt
+, pytestCheckHook
+, pythonOlder
+, pythonRelaxDepsHook
 , typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "githubkit";
-  version = "0.10.7";
+  version = "0.11.1";
   pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-sKikL+761mBP7j+qugHKDQ0hVXT51FV8FYbB3ZJtweA=";
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "yanyongyu";
+    repo = "githubkit";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-nPXs6thXAshDojgHSNyEeBN/jNJkfFECSuY5f51Zozo=";
   };
 
+  pythonRelaxDeps = [
+    "hishel"
+  ];
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace "--cov=githubkit --cov-append --cov-report=term-missing" ""
+  '';
+
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
+    hishel
     httpx
     pydantic
     typing-extensions
   ];
 
-  pythonImportsCheck = [ "githubkit" ];
+  passthru.optional-dependencies = {
+    all = [
+      anyio
+      pyjwt
+    ];
+    jwt = [
+      pyjwt
+    ];
+    auth-app = [
+      pyjwt
+    ];
+    auth-oauth-device = [
+      anyio
+    ];
+    auth = [
+      anyio
+      pyjwt
+    ];
+  };
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+
+  pythonImportsCheck = [
+    "githubkit"
+  ];
+
+  disabledTests = [
+    # Tests require network access
+    "test_graphql"
+    "test_async_graphql"
+    "test_call"
+    "test_async_call"
+    "test_versioned_call"
+    "test_versioned_async_call"
+  ];
 
   meta = {
     description = "GitHub SDK for Python";
     homepage = "https://github.com/yanyongyu/githubkit";
+    changelog = "https://github.com/yanyongyu/githubkit/releases/tag/v${version}";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ kranzes ];
   };
diff --git a/pkgs/development/python-modules/gitignore-parser/default.nix b/pkgs/development/python-modules/gitignore-parser/default.nix
index 7f3b41b5899e..50239a9b2653 100644
--- a/pkgs/development/python-modules/gitignore-parser/default.nix
+++ b/pkgs/development/python-modules/gitignore-parser/default.nix
@@ -2,13 +2,14 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
+, setuptools
 , unittestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "gitignore-parser";
-  version = "0.1.10";
-  format = "setuptools";
+  version = "0.1.11";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -16,9 +17,13 @@ buildPythonPackage rec {
     owner = "mherrmann";
     repo = "gitignore_parser";
     rev = "refs/tags/v${version}";
-    hash = "sha256-uILXtozXRTOJeVpF1lpM19xaibebiwIMyHzdrlnfoec=";
+    hash = "sha256-y8A8OLgJccYWvKTJs7um8RwFFM0CswbwRojknBmk3TY=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   nativeCheckInputs = [
     unittestCheckHook
   ];
diff --git a/pkgs/development/python-modules/gitlike-commands/default.nix b/pkgs/development/python-modules/gitlike-commands/default.nix
index f51adf2a184a..c5e8ab506696 100644
--- a/pkgs/development/python-modules/gitlike-commands/default.nix
+++ b/pkgs/development/python-modules/gitlike-commands/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "gitlike-commands";
-  version = "0.2.1";
+  version = "0.3.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "unixorn";
     repo = "gitlike-commands";
     rev = "refs/tags/v${version}";
-    hash = "sha256-VjweN4gigzCNvg6TccZx2Xw1p7SusKplxUTZjItTQc0=";
+    hash = "sha256-Z0l8nCKov1iMJvI3YTHvg0ey+oPju3rgaKtmk6OX44g=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/glean-parser/default.nix b/pkgs/development/python-modules/glean-parser/default.nix
index d85a0771a809..380ada5d33a6 100644
--- a/pkgs/development/python-modules/glean-parser/default.nix
+++ b/pkgs/development/python-modules/glean-parser/default.nix
@@ -15,15 +15,15 @@
 
 buildPythonPackage rec {
   pname = "glean-parser";
-  version = "10.0.3";
+  version = "11.0.1";
   format = "setuptools";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     pname = "glean_parser";
     inherit version;
-    hash = "sha256-1XNZYp0pX57lcAaKKEaWaJLj/ttyIlnsvNjMN20pm1E=";
+    hash = "sha256-eeUjtRsP3c6fbGMJ+oxkMou3BrLWyEelP4ipPQFpXkM=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/glfw/default.nix b/pkgs/development/python-modules/glfw/default.nix
index 31d6c0a275d8..667206fa58ea 100644
--- a/pkgs/development/python-modules/glfw/default.nix
+++ b/pkgs/development/python-modules/glfw/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "glfw";
-  version = "2.6.4";
+  version = "2.6.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "FlorianRhiem";
     repo = "pyGLFW";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ANydW+4uLIJelUdDCHZ6WJgIJHNXzdc9jK/nZbZHi+I=";
+    hash = "sha256-mh2l63Nt9YMCPM3AplKWPx5HQZi2/cm+dUS56JB8fGA=";
   };
 
   # Patch path to GLFW shared object
diff --git a/pkgs/development/python-modules/google-ai-generativelanguage/default.nix b/pkgs/development/python-modules/google-ai-generativelanguage/default.nix
index ac6dfc171933..69a56b278358 100644
--- a/pkgs/development/python-modules/google-ai-generativelanguage/default.nix
+++ b/pkgs/development/python-modules/google-ai-generativelanguage/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "google-ai-generativelanguage";
-  version = "0.4.0";
+  version = "0.5.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-yBmQZsCPdMTpEpB3gym7nzV7oepdb4LeK8DRBVK/T4w=";
+    hash = "sha256-fF7pjNpfSeCnhbDUz+gVn+NKBQKdCEAVLzlRQUEpXX8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-asset/default.nix b/pkgs/development/python-modules/google-cloud-asset/default.nix
index ddc78dc7cc57..4d090d6e738e 100644
--- a/pkgs/development/python-modules/google-cloud-asset/default.nix
+++ b/pkgs/development/python-modules/google-cloud-asset/default.nix
@@ -19,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-asset";
-  version = "3.22.0";
+  version = "3.24.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-S+rJ80pkphkPlNFUn8e0bxpnkBILRS9Uvoa0vlfrK8M=";
+    hash = "sha256-A9Ov5a6lpcJ+6diVEjFlLKMwROuSKO/lZOuGxN6Nn7U=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix b/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
index bf293c41541d..c975700ce1ef 100644
--- a/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery-datatransfer";
-  version = "3.13.0";
+  version = "3.14.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-J6hFyyJgWlEsBc4owokNLvl61O38mBevVVpz2AJOw7o=";
+    hash = "sha256-DZDp/aRhIe2bBcn8BVA8jwmDaUrbHAMMRG0LixuvGl0=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix b/pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix
index cbda1f2f254e..d6952abe84f0 100644
--- a/pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery-storage";
-  version = "2.23.0";
+  version = "2.24.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-hJbG0wV177IkwYlAVm+awAbTsSCudZACkYaXw0B5l+Y=";
+    hash = "sha256-tK9bmqzYOWuEB9G4d2AaN22O6m0ZKCOop4gb0v3Ads4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-bigquery/default.nix b/pkgs/development/python-modules/google-cloud-bigquery/default.nix
index 5eeb88cd9d0f..b59372f294a0 100644
--- a/pkgs/development/python-modules/google-cloud-bigquery/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigquery/default.nix
@@ -28,14 +28,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery";
-  version = "3.13.0";
+  version = "3.17.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-eUzPyTzLDgrWiUQviW+cgt5W2g/hihlVMbs3CWwmV9Y=";
+    hash = "sha256-CuB7kNUFK6OilqIhCiFEwoRpMA1x9vRViB+Uwt9UMFc=";
   };
 
   propagatedBuildInputs = [
@@ -127,8 +127,6 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    # Not compatible with pyarrow13 yet.
-    broken = true;
     description = "Google BigQuery API client library";
     homepage = "https://github.com/googleapis/python-bigquery";
     changelog = "https://github.com/googleapis/python-bigquery/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/google-cloud-container/default.nix b/pkgs/development/python-modules/google-cloud-container/default.nix
index 4d55bc739a23..f3f493768860 100644
--- a/pkgs/development/python-modules/google-cloud-container/default.nix
+++ b/pkgs/development/python-modules/google-cloud-container/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-container";
-  version = "2.37.0";
+  version = "2.39.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-kHWB2/iCAXFlHnifL+aPaU0i3xmgf1rOSsk8JhCx1Dk=";
+    hash = "sha256-qlnKOkdLM34R8Ly01+sElovrYTUk5ksiXcJUDn/GqAw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-datacatalog/default.nix b/pkgs/development/python-modules/google-cloud-datacatalog/default.nix
index 24eb50c01e60..f5bdde090be1 100644
--- a/pkgs/development/python-modules/google-cloud-datacatalog/default.nix
+++ b/pkgs/development/python-modules/google-cloud-datacatalog/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-datacatalog";
-  version = "3.17.2";
+  version = "3.18.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-kKRuakMZfmt2HrU7g4Ap1ZxFmYYSiRNKvRB/xHkyp1U=";
+    hash = "sha256-rqWuOJlyB2EN3+qydRMJHLwK7RAFxUT7eEUZiAfOseE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-dataproc/default.nix b/pkgs/development/python-modules/google-cloud-dataproc/default.nix
index 3b0fff422ce1..41c8122f9857 100644
--- a/pkgs/development/python-modules/google-cloud-dataproc/default.nix
+++ b/pkgs/development/python-modules/google-cloud-dataproc/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-dataproc";
-  version = "5.8.0";
+  version = "5.9.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-sDQS3WPLhNwLsIRM2emp7vQOHQ1xlkllkFLMzw0+ldc=";
+    hash = "sha256-flH5yQBbxfG8sjYnFx3pzWJGpEd1EYpIzGMoYSgKdt8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-monitoring/default.nix b/pkgs/development/python-modules/google-cloud-monitoring/default.nix
index 63060d008efd..c0cff664760a 100644
--- a/pkgs/development/python-modules/google-cloud-monitoring/default.nix
+++ b/pkgs/development/python-modules/google-cloud-monitoring/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-monitoring";
-  version = "2.18.0";
+  version = "2.19.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Bswdf7dcXlC1S8wASUHqSyCnqfCe1+bnU1FP2MQ2CWo=";
+    hash = "sha256-zhtDkpuJ4NH1lOFYmw+oO+R/H9gP6L+ud/4fdzIknwY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-redis/default.nix b/pkgs/development/python-modules/google-cloud-redis/default.nix
index 228545f62da4..451535149511 100644
--- a/pkgs/development/python-modules/google-cloud-redis/default.nix
+++ b/pkgs/development/python-modules/google-cloud-redis/default.nix
@@ -7,20 +7,25 @@
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-redis";
-  version = "2.14.0";
-  format = "setuptools";
+  version = "2.15.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-TzuRWGGdQrsmOLidvLiC80e9t9VVu8LUNhq2Ikk0Pco=";
+    hash = "sha256-EyThUipPk96q5TuJDMKugFSGXDdWi0vOH5EzP2zzcyI=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     google-api-core
     proto-plus
diff --git a/pkgs/development/python-modules/google-cloud-resource-manager/default.nix b/pkgs/development/python-modules/google-cloud-resource-manager/default.nix
index 50f605f5fc99..bc969f601b61 100644
--- a/pkgs/development/python-modules/google-cloud-resource-manager/default.nix
+++ b/pkgs/development/python-modules/google-cloud-resource-manager/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-resource-manager";
-  version = "1.10.4";
+  version = "1.11.0";
   format = "setuptools";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-RWsl3do9TNJ0iKcnNrvDrwTXE64v42VcAbZqM50o1nk=";
+    hash = "sha256-pkumu1lWNOzSRyuLAyLo8BKnYyd1Zlmi3enzktf6GvI=";
   };
 
   propagatedBuildInputs = [
@@ -48,8 +48,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Google Cloud Resource Manager API client library";
-    homepage = "https://github.com/googleapis/python-resource-manager";
-    changelog = "https://github.com/googleapis/python-resource-manager/blob/v${version}/CHANGELOG.md";
+    homepage = "https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-resource-manager";
+    changelog = "https://github.com/googleapis/google-cloud-python/blob/google-cloud-resource-manager-v${version}/packages/google-cloud-resource-manager/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix b/pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix
index 781218fa7a20..915f00961bca 100644
--- a/pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix
+++ b/pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-runtimeconfig";
-  version = "0.33.3";
+  version = "0.34.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-4sv5wua03gLd9YqwdD8P/VaKv4LcacB42fK5hUAt2vQ=";
+    hash = "sha256-hyxvTChxCGC6YjjvYGqaJDvgBbve7EjzfPELl+LB2D8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-secret-manager/default.nix b/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
index 5bb5940f55a4..6901c9dc3107 100644
--- a/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
+++ b/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-secret-manager";
-  version = "2.16.4";
+  version = "2.18.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Nx3HL5FFrzI+ioE8jlA4DmrEvWpdvNQtzzFi2PN+UIA=";
+    hash = "sha256-Tkmb0z/3rv8nG9Z0h+IdVAQpeobcSHPuhh1jewGzC04=";
   };
 
   propagatedBuildInputs = [
@@ -42,8 +42,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Secret Manager API API client library";
-    homepage = "https://github.com/googleapis/python-secret-manager";
-    changelog = "https://github.com/googleapis/python-secret-manager/blob/v${version}/CHANGELOG.md";
+    homepage = "https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-secret-manager";
+    changelog = "https://github.com/googleapis/google-cloud-python/blob/google-cloud-secret-manager-v${version}/packages/google-cloud-secret-manager/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ siriobalmelli ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-speech/default.nix b/pkgs/development/python-modules/google-cloud-speech/default.nix
index 8fa7bc16d6ce..a4f2ab9ae4b3 100644
--- a/pkgs/development/python-modules/google-cloud-speech/default.nix
+++ b/pkgs/development/python-modules/google-cloud-speech/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-speech";
-  version = "2.23.0";
+  version = "2.24.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-H4aDIHCF3cpsXgZIly+KBik30w5zqlVSDwgPSVMse/8=";
+    hash = "sha256-Z7x4xfCbeRPoCbinCrTwIAp9JIvfavFvA1c4/a5UbHQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-tasks/default.nix b/pkgs/development/python-modules/google-cloud-tasks/default.nix
index c5762819af6a..bc6cf42b27c7 100644
--- a/pkgs/development/python-modules/google-cloud-tasks/default.nix
+++ b/pkgs/development/python-modules/google-cloud-tasks/default.nix
@@ -9,20 +9,25 @@
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-tasks";
-  version = "2.15.0";
-  format = "setuptools";
+  version = "2.16.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-SpmTjbARHVU3hkG1I1uY5r12S8jip+JN9wb4uGO98nw=";
+    hash = "sha256-oybkbzeqE4sW6RN5P7AFJV3rahTCykwJndQ8uAmhiCE=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     google-api-core
     grpc-google-iam-v1
diff --git a/pkgs/development/python-modules/google-cloud-texttospeech/default.nix b/pkgs/development/python-modules/google-cloud-texttospeech/default.nix
index 7d89107c0d35..09237f9afbcd 100644
--- a/pkgs/development/python-modules/google-cloud-texttospeech/default.nix
+++ b/pkgs/development/python-modules/google-cloud-texttospeech/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-texttospeech";
-  version = "2.15.1";
+  version = "2.16.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-R4ReOtnO/auvNYlHyxlt3eovqkzfyvhkoBHbghpN6vs=";
+    hash = "sha256-flG/fsyx8DH/w49EF5ddckPZoVDvkPsz/SFI16CVWR8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-trace/default.nix b/pkgs/development/python-modules/google-cloud-trace/default.nix
index 98a62651013c..8c6085685f71 100644
--- a/pkgs/development/python-modules/google-cloud-trace/default.nix
+++ b/pkgs/development/python-modules/google-cloud-trace/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-trace";
-  version = "1.12.0";
+  version = "1.13.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-IvbMxHbOMQHUH7q86sP+/N/gV9KWez6OIMAmcTY6Uko=";
+    hash = "sha256-2oGGbqPLcPdMuSjVCG9yIV0moEToLUxjVFW22yHbRzc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-videointelligence/default.nix b/pkgs/development/python-modules/google-cloud-videointelligence/default.nix
index ef0a5971ebbb..e8ac6fa628f5 100644
--- a/pkgs/development/python-modules/google-cloud-videointelligence/default.nix
+++ b/pkgs/development/python-modules/google-cloud-videointelligence/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-videointelligence";
-  version = "2.12.0";
+  version = "2.13.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-SwGUkyzSYEGZuIBbwQhpLmoqJZ9Hd1FrnLyXi4hx4pU=";
+    hash = "sha256-ODRF08xxjUrj6PMzfTlcYLqGrgV71OA0VHT44ktQZ4k=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix b/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix
index d4c285c3f34e..87372d653845 100644
--- a/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix
+++ b/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-websecurityscanner";
-  version = "1.13.0";
+  version = "1.14.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-vktbTjzNYMa8otEGGq36fYOKcNuNasWql4SBWbk84Iw=";
+    hash = "sha256-tb8BCpQtEj/0/dGSqTf+c0V0NwGZYx8y0oEHpoJWqhM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/govee-ble/default.nix b/pkgs/development/python-modules/govee-ble/default.nix
index 6b5b23c6a8a8..5499af7a1f95 100644
--- a/pkgs/development/python-modules/govee-ble/default.nix
+++ b/pkgs/development/python-modules/govee-ble/default.nix
@@ -12,18 +12,23 @@
 
 buildPythonPackage rec {
   pname = "govee-ble";
-  version = "0.27.3";
-  format = "pyproject";
+  version = "0.31.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "Bluetooth-Devices";
-    repo = pname;
+    repo = "govee-ble";
     rev = "refs/tags/v${version}";
-    hash = "sha256-yMKZe2hEkBm9c/5QuFNQMVPsdHTx9lnEVysRlbntiVY=";
+    hash = "sha256-g4tOu4nrJx1DVk2KLfF6HIEM7vTkfBg2fd7R1j+Xwrk=";
   };
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace " --cov=govee_ble --cov-report=term-missing:skip-covered" ""
+  '';
+
   nativeBuildInputs = [
     poetry-core
   ];
@@ -39,11 +44,6 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace " --cov=govee_ble --cov-report=term-missing:skip-covered" ""
-  '';
-
   pythonImportsCheck = [
     "govee_ble"
   ];
diff --git a/pkgs/development/python-modules/gpaw/default.nix b/pkgs/development/python-modules/gpaw/default.nix
index e415c192511c..be43eb55857d 100644
--- a/pkgs/development/python-modules/gpaw/default.nix
+++ b/pkgs/development/python-modules/gpaw/default.nix
@@ -74,14 +74,14 @@ let
 
 in buildPythonPackage rec {
   pname = "gpaw";
-  version = "23.9.1";
+  version = "24.1.0";
   format = "setuptools";
 
   src = fetchFromGitLab {
     owner = "gpaw";
     repo = pname;
     rev = version;
-    hash = "sha256-9nnK4ksTFATO6HexnxfMiih/yoY/noyJZXZOaDG/2kc=";
+    hash = "sha256-8eX50F124R46dGN2rJS/dDvPeDmEm7XpVyTiOAjMKyI=";
   };
 
   # `inetutils` is required because importing `gpaw`, as part of
diff --git a/pkgs/development/python-modules/gradio-pdf/default.nix b/pkgs/development/python-modules/gradio-pdf/default.nix
index d2bbfecefdc3..f1758be6a76f 100644
--- a/pkgs/development/python-modules/gradio-pdf/default.nix
+++ b/pkgs/development/python-modules/gradio-pdf/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "gradio-pdf";
-  version = "0.0.3";
+  version = "0.0.4";
   format = "pyproject";
 
   src = fetchPypi {
     pname = "gradio_pdf";
     inherit version;
-    hash = "sha256-l9bcH/6paEdKk9Q7HM3ap9MI1Qi7rPZ/ucAibBUEPKI=";
+    hash = "sha256-lyZd8tH3SaTmE/7ooNaQJUYZRvjSOLx3+doWTCTXk9U=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/griffe/default.nix b/pkgs/development/python-modules/griffe/default.nix
index 74efbd0eb6d7..3c2ebb007713 100644
--- a/pkgs/development/python-modules/griffe/default.nix
+++ b/pkgs/development/python-modules/griffe/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "griffe";
-  version = "0.39.0";
+  version = "0.40.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "mkdocstrings";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-mVIGT7kb8+eQcTAF7/S+0KraQiDzS9VdyrBsxzqpBHI=";
+    hash = "sha256-VUQmyNO2e4SoXzGbd751l7TtRgvaiWOr75gSGwKGPUI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/grpcio-channelz/default.nix b/pkgs/development/python-modules/grpcio-channelz/default.nix
index 4c66dcc99031..522bf49fafd9 100644
--- a/pkgs/development/python-modules/grpcio-channelz/default.nix
+++ b/pkgs/development/python-modules/grpcio-channelz/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "grpcio-channelz";
-  version = "1.60.0";
+  version = "1.60.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-TRTHMDUm50cmFJ0BX1zwd34xCVsuyejqp7hHc33LYKA=";
+    hash = "sha256-eAYWHTlyThrJ9vTumXPDeEcyk5OC8tfI12K073heF6A=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/grpcio-health-checking/default.nix b/pkgs/development/python-modules/grpcio-health-checking/default.nix
index 573670a98c30..7873404d6514 100644
--- a/pkgs/development/python-modules/grpcio-health-checking/default.nix
+++ b/pkgs/development/python-modules/grpcio-health-checking/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "grpcio-health-checking";
-  version = "1.60.0";
+  version = "1.60.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-R4tTAHeBIP7Z9tE01ysVeln5wGaJeJIYy/9H+vyi8Rk=";
+    hash = "sha256-fC5Izp1b2xmtV7er40ONR+verVB4ZpORQHILPijGJbM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/grpcio-reflection/default.nix b/pkgs/development/python-modules/grpcio-reflection/default.nix
index dc4fb436fbb4..713fec8af4cd 100644
--- a/pkgs/development/python-modules/grpcio-reflection/default.nix
+++ b/pkgs/development/python-modules/grpcio-reflection/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "grpcio-reflection";
-  version = "1.60.0";
+  version = "1.60.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-P2wMc7qPINFCDF5y/E3QOJ+sNG7Y+zKijm4ZZ7RP/zU=";
+    hash = "sha256-v+1JYUE4IcEbTfECyesFWsjENUYm2dyxEKJz79TPfZg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/gruut-ipa/default.nix b/pkgs/development/python-modules/gruut-ipa/default.nix
index 26a7223b97e7..bca9611b7e21 100644
--- a/pkgs/development/python-modules/gruut-ipa/default.nix
+++ b/pkgs/development/python-modules/gruut-ipa/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   postPatch = ''
     patchShebangs bin/*
     substituteInPlace bin/speak-ipa \
-      --replace '${"\${src_dir}:"}' "$out/lib/${python.libPrefix}/site-packages:" \
+      --replace '${"\${src_dir}:"}' "$out/${python.sitePackages}:" \
       --replace "do espeak" "do ${espeak}/bin/espeak"
   '';
 
diff --git a/pkgs/development/python-modules/gsd/default.nix b/pkgs/development/python-modules/gsd/default.nix
index 3040102f8773..54062ec39f14 100644
--- a/pkgs/development/python-modules/gsd/default.nix
+++ b/pkgs/development/python-modules/gsd/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "gsd";
-  version = "3.2.0";
+  version = "3.2.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "glotzerlab";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-ceoHHEX44DrVgatV2EIS6gT9oVZkAx6OTFMZG/x4q64=";
+    hash = "sha256-huMM98An/DG8PIVblS3b6AxF6vJ5IoKOs1f9kBnR3ik=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/gtimelog/default.nix b/pkgs/development/python-modules/gtimelog/default.nix
deleted file mode 100644
index 6d6accc642a8..000000000000
--- a/pkgs/development/python-modules/gtimelog/default.nix
+++ /dev/null
@@ -1,60 +0,0 @@
-{ lib, fetchFromGitHub, makeWrapper
-, glibcLocales, gobject-introspection, gtk3, libsoup, libsecret
-, buildPythonPackage, python
-, pygobject3, freezegun, mock
-}:
-
-buildPythonPackage rec {
-  pname = "gtimelog";
-  version = "unstable-2020-05-16";
-  format = "setuptools";
-
-  src = fetchFromGitHub {
-    owner = pname;
-    repo = pname;
-    rev = "80682ddbf9e0d68b8c67257289784f3b49b543d8";
-    sha256 = "0qv2kv7vc3qqlzxsisgg31cmrkkqgnmxspbj10c5fhdmwzzwi0i9";
-  };
-
-  nativeBuildInputs = [ makeWrapper gobject-introspection ];
-  buildInputs = [
-    glibcLocales gtk3 libsoup libsecret
-  ];
-
-  propagatedBuildInputs = [
-    pygobject3 freezegun mock
-  ];
-
-  checkPhase = ''
-    substituteInPlace runtests --replace "/usr/bin/env python3" "${python.interpreter}"
-    ./runtests
-  '';
-
-  pythonImportsCheck = [ "gtimelog" ];
-
-  preFixup = ''
-    wrapProgram $out/bin/gtimelog \
-      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
-      --prefix LD_LIBRARY_PATH ":" "${gtk3.out}/lib" \
-  '';
-
-  meta = with lib; {
-    description = "A time tracking app";
-    longDescription = ''
-      GTimeLog is a small time tracking application for GNOME.
-      It's main goal is to be as unintrusive as possible.
-
-      To run gtimelog successfully on a system that does not have full GNOME 3
-      installed, the following NixOS options should be set:
-      - programs.dconf.enable = true;
-      - services.gnome.gnome-keyring.enable = true;
-
-      In addition, the following packages should be added to the environment:
-      - gnome.adwaita-icon-theme
-      - gnome.dconf
-    '';
-    homepage = "https://gtimelog.org/";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ oxzi ];
-  };
-}
diff --git a/pkgs/development/python-modules/gurobipy/linux.nix b/pkgs/development/python-modules/gurobipy/linux.nix
index e9a72cbb5cba..a7c519406e74 100644
--- a/pkgs/development/python-modules/gurobipy/linux.nix
+++ b/pkgs/development/python-modules/gurobipy/linux.nix
@@ -16,7 +16,7 @@ buildPythonPackage {
 
   postFixup = ''
     patchelf --set-rpath $out/lib \
-      $out/lib/${python.libPrefix}/site-packages/gurobipy/gurobipy.so
+      $out/${python.sitePackages}/gurobipy/gurobipy.so
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/gvm-tools/default.nix b/pkgs/development/python-modules/gvm-tools/default.nix
index 7cb78248c172..6f273d09a62b 100644
--- a/pkgs/development/python-modules/gvm-tools/default.nix
+++ b/pkgs/development/python-modules/gvm-tools/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "gvm-tools";
-  version = "23.11.0";
+  version = "24.1.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "greenbone";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-ZwImkTYYSscmGJYCpMWmZjToi41XjT4Znpo8j66BKIs=";
+    hash = "sha256-4uYOhsnprYybt5EB/b4LW8/9cn0Nahc1lYQ+DwPNlOU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/hahomematic/default.nix b/pkgs/development/python-modules/hahomematic/default.nix
index 9609365f7fef..72e8595ddb5c 100644
--- a/pkgs/development/python-modules/hahomematic/default.nix
+++ b/pkgs/development/python-modules/hahomematic/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "hahomematic";
-  version = "2024.1.7";
+  version = "2024.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "danielperna84";
     repo = "hahomematic";
     rev = "refs/tags/${version}";
-    hash = "sha256-98biJ/BXFZV55FMRvT8QexzWVB2rfF/YVa66+HU06mI=";
+    hash = "sha256-Q9cuazn07LCzCMkhnNl/h6QxrFBv4fybMaDi8zN7jy0=";
   };
 
   __darwinAllowLocalNetworking = true;
diff --git a/pkgs/development/python-modules/hatch-requirements-txt/default.nix b/pkgs/development/python-modules/hatch-requirements-txt/default.nix
index a6246b3a4746..999596680505 100644
--- a/pkgs/development/python-modules/hatch-requirements-txt/default.nix
+++ b/pkgs/development/python-modules/hatch-requirements-txt/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "hatch-requirements-txt";
-  version = "0.4.0";
+  version = "0.4.1";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "repo-helper";
     repo = "hatch-requirements-txt";
     rev = "refs/tags/v${version}";
-    hash = "sha256-qk+70o/41BLxCuz3SOXkGYSEmUZOG1oLYcFUmlarqmY=";
+    hash = "sha256-Kd3rDfTBn/t/NiSJMPkHRWD5solUF7MAN8EiZokxHrk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/heudiconv/default.nix b/pkgs/development/python-modules/heudiconv/default.nix
index 3cdf1463cd57..e8ce48aab0ad 100644
--- a/pkgs/development/python-modules/heudiconv/default.nix
+++ b/pkgs/development/python-modules/heudiconv/default.nix
@@ -19,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "heudiconv";
-  version = "1.0.0";
+  version = "1.0.1";
   format = "pyproject";
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-cW6G2NtPZiyqqJ3w9a3Y/6blEaXtR9eGG5epPknimsw=";
+    hash = "sha256-KMEvuxRFFbnyAez+cpcHKDDXdrHfeZcqlGNwy8RWTxg=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/hg-commitsigs/default.nix b/pkgs/development/python-modules/hg-commitsigs/default.nix
index a97c2be2b98c..7a97bff33316 100644
--- a/pkgs/development/python-modules/hg-commitsigs/default.nix
+++ b/pkgs/development/python-modules/hg-commitsigs/default.nix
@@ -20,9 +20,9 @@ stdenv.mkDerivation rec {
   dontBuild = true;
 
   installPhase = ''
-    mkdir -p $out/lib/${python.libPrefix}/site-packages/hgext3rd/
+    mkdir -p $out/${python.sitePackages}/hgext3rd/
     install -D $src/commitsigs.py \
-               $out/lib/${python.libPrefix}/site-packages/hgext3rd/
+               $out/${python.sitePackages}/hgext3rd/
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/hg-git/default.nix b/pkgs/development/python-modules/hg-git/default.nix
index e2b842091153..1e1803c9061f 100644
--- a/pkgs/development/python-modules/hg-git/default.nix
+++ b/pkgs/development/python-modules/hg-git/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "hg-git";
-  version = "1.0.3";
+  version = "1.1.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-HuFwRW/SuGrzMX9bttdqztFRB19dZZNF5Y8+e9gAQWw=";
+    hash = "sha256-btEamGLqCC5PRigxHbe49/bnJNVGm6Czf852JaAdB38=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/hishel/default.nix b/pkgs/development/python-modules/hishel/default.nix
new file mode 100644
index 000000000000..de75f1e46b17
--- /dev/null
+++ b/pkgs/development/python-modules/hishel/default.nix
@@ -0,0 +1,74 @@
+{ lib
+, anysqlite
+, buildPythonPackage
+, fetchFromGitHub
+, hatch-fancy-pypi-readme
+, hatchling
+, httpx
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+, pyyaml
+, redis
+, trio
+}:
+
+buildPythonPackage rec {
+  pname = "hishel";
+  version = "0.0.22";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "karpetrosyan";
+    repo = "hishel";
+    rev = "refs/tags/${version}";
+    hash = "sha256-2GboU1J0jvZUz20+KpDYnfDqc+qi0tmlypbWeOoYjX0=";
+  };
+
+  nativeBuildInputs = [
+    hatch-fancy-pypi-readme
+    hatchling
+  ];
+
+  propagatedBuildInputs = [
+    httpx
+  ];
+
+  passthru.optional-dependencies = {
+    redis = [
+      redis
+    ];
+    sqlite = [
+      anysqlite
+    ];
+    yaml = [
+      pyyaml
+    ];
+  };
+
+  nativeCheckInputs = [
+    pytest-asyncio
+    pytestCheckHook
+    trio
+  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+
+  pythonImportsCheck = [
+    "hishel"
+  ];
+
+  disabledTests = [
+    # Tests require a running Redis instance
+    "test_redis"
+  ];
+
+  meta = with lib; {
+    description = "HTTP Cache implementation for HTTPX and HTTP Core";
+    homepage = "https://github.com/karpetrosyan/hishel";
+    changelog = "https://github.com/karpetrosyan/hishel/blob/${version}/CHANGELOG.md";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fab ];
+  };
+}
+
diff --git a/pkgs/development/python-modules/http-sf/default.nix b/pkgs/development/python-modules/http-sf/default.nix
new file mode 100644
index 000000000000..f9ebde2b2b03
--- /dev/null
+++ b/pkgs/development/python-modules/http-sf/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, setuptools
+, typing-extensions
+}:
+
+buildPythonPackage rec {
+  pname = "http-sf";
+  version = "1.0.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "mnot";
+    repo = "http-sf";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-8xK8/IVrhqMDgkxZY10QqSGswCrttc29FZLCntmSUQ4=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    typing-extensions
+  ];
+
+  # Tests require external data (https://github.com/httpwg/structured-field-tests)
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "http_sf"
+  ];
+
+  meta = with lib; {
+    description = "Module to parse and serialise HTTP structured field values";
+    homepage = "https://github.com/mnot/http-sf";
+    changelog = "https://github.com/mnot/http-sf/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/http-sfv/default.nix b/pkgs/development/python-modules/http-sfv/default.nix
index 55b318ff40de..205b9c7423dd 100644
--- a/pkgs/development/python-modules/http-sfv/default.nix
+++ b/pkgs/development/python-modules/http-sfv/default.nix
@@ -8,8 +8,8 @@
 
 buildPythonPackage rec {
   pname = "http-sfv";
-  version = "0.9.8";
-  format = "pyproject";
+  version = "0.9.9";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "mnot";
     repo = "http_sfv";
     rev = "http_sfv-${version}";
-    hash = "sha256-zl0Rk4QbzCVmYZ6TnVq+C+oe27Imz5fEQY9Fco5lo5s=";
+    hash = "sha256-xf9bGDfsEcQnFQ2b1bLRGYug+H4e5jeV/LJstQtp6Bw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/httpie-ntlm/default.nix b/pkgs/development/python-modules/httpie-ntlm/default.nix
index 22a995ebd24b..cbf3b29bcf03 100644
--- a/pkgs/development/python-modules/httpie-ntlm/default.nix
+++ b/pkgs/development/python-modules/httpie-ntlm/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , httpie
-, requests_ntlm
+, requests-ntlm
 }:
 
 buildPythonPackage rec {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     sha256 = "b1f757180c0bd60741ea16cf91fc53d47df402a5c287c4a61a14b335ea0552b3";
   };
 
-  propagatedBuildInputs = [ httpie requests_ntlm ];
+  propagatedBuildInputs = [ httpie requests-ntlm ];
 
   # Package have no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/huggingface-hub/default.nix b/pkgs/development/python-modules/huggingface-hub/default.nix
index b76328f10303..17ad769329c7 100644
--- a/pkgs/development/python-modules/huggingface-hub/default.nix
+++ b/pkgs/development/python-modules/huggingface-hub/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "huggingface-hub";
-  version = "0.20.2";
+  version = "0.20.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = "huggingface_hub";
     rev = "refs/tags/v${version}";
-    hash = "sha256-LYfkZVoQ+Jph7cyJYOIaAjtH8+fC/w8V+IWAqc1lHp4=";
+    hash = "sha256-21Ay8RVS2vtQIh4bBUxE8jFk6F+yeFBJ3XgvRRNtNgI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/huum/default.nix b/pkgs/development/python-modules/huum/default.nix
index 72f65940a5e3..42a44a04a9eb 100644
--- a/pkgs/development/python-modules/huum/default.nix
+++ b/pkgs/development/python-modules/huum/default.nix
@@ -4,7 +4,6 @@
 , fetchFromGitHub
 , mashumaro
 , poetry-core
-, pydantic
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
@@ -12,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "huum";
-  version = "0.7.9";
+  version = "0.7.10";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -21,7 +20,7 @@ buildPythonPackage rec {
     owner = "frwickst";
     repo = "pyhuum";
     rev = "refs/tags/${version}";
-    hash = "sha256-wIroT1eMO9VXsPWQkpSBEVN/nR4pg2/Eo4ms81qMaew=";
+    hash = "sha256-INW6d/Zc5UZZOgN6wW+Xbm/wH1K/V6bviu3mID1R+BY=";
   };
 
   nativeBuildInputs = [
@@ -48,6 +47,5 @@ buildPythonPackage rec {
     changelog = "https://github.com/frwickst/pyhuum/releases/tag/${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
-    broken = versionAtLeast pydantic.version "2";
   };
 }
diff --git a/pkgs/development/python-modules/hvac/default.nix b/pkgs/development/python-modules/hvac/default.nix
index 5f15e359f35e..42f09f7266cc 100644
--- a/pkgs/development/python-modules/hvac/default.nix
+++ b/pkgs/development/python-modules/hvac/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "hvac";
-  version = "2.0.0";
+  version = "2.1.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-alHLmg0i/hPoJMsLChzi7qy5zmr2i30bZoniXsG+yvU=";
+    hash = "sha256-tIvNoRpKsKe2xHIyx7p8h/2jGK4tSnZigAxGWnh0KJQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/hwi/default.nix b/pkgs/development/python-modules/hwi/default.nix
index 046dbc7bb4ff..0f4c21e86e7c 100644
--- a/pkgs/development/python-modules/hwi/default.nix
+++ b/pkgs/development/python-modules/hwi/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "hwi";
-  version = "2.3.1";
+  version = "2.4.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "bitcoin-core";
     repo = "HWI";
     rev = "refs/tags/${version}";
-    hash = "sha256-V4BWB4mCONQ8kjAy6ySonAbCUTaKpBTvhSnHmoH8TQM=";
+    hash = "sha256-a1ppYDuY7CtNrKSvuAofS79nvDaYUMIm4FCHiiQYrtQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/hyperscan/default.nix b/pkgs/development/python-modules/hyperscan/default.nix
index 342dda967cfe..51ea23baf4a2 100644
--- a/pkgs/development/python-modules/hyperscan/default.nix
+++ b/pkgs/development/python-modules/hyperscan/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "hyperscan";
-  version = "0.6.0";
+  version = "0.7.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "darvid";
     repo = "python-hyperscan";
-    rev = "v${version}";
-    hash = "sha256-6PoV9rY9CkXkAMWN2QCnfU4S0OJD/6bzkqFgvEVqNjo=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-XIsYBu2YPbSIZGIhJjPap1ymg7cr0+ozwZtpOj8GFm8=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix b/pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix
index efa362c6fdd0..5d27b9d490e1 100644
--- a/pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix
+++ b/pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "ibm-cloud-sdk-core";
-  version = "3.18.2";
+  version = "3.19.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-0gjISrKELopSMEuZHL8fy8q7rMuMqzATkP+c4Y8I+9A=";
+    hash = "sha256-oPDcQSWNWG9wauSVW7srXN85+UeF6Q0CRlaSyqh2W/Q=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/imbalanced-learn/default.nix b/pkgs/development/python-modules/imbalanced-learn/default.nix
index 1ef8fea6a100..585e043e4eb3 100644
--- a/pkgs/development/python-modules/imbalanced-learn/default.nix
+++ b/pkgs/development/python-modules/imbalanced-learn/default.nix
@@ -1,43 +1,72 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, isPy27
+, pythonOlder
+, setuptools
+, joblib
+, keras
+, numpy
 , pandas
-, pytestCheckHook
 , scikit-learn
+, scipy
+, tensorflow
+, threadpoolctl
+, pytest-xdist
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "imbalanced-learn";
-  version = "0.11.0";
-  format = "setuptools";
-  disabled = isPy27; # scikit-learn>=0.21 doesn't work on python2
+  version = "0.12.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-dYKuiFjm2wuS/vl90IZgoYKX7hKNeMKr3ABri9hrj9w=";
+    hash = "sha256-uczZqqMChpkHnUOm1Nn8nQOfVTdnM7Mfh8fZsSXcwWU=";
   };
 
-  propagatedBuildInputs = [ scikit-learn ];
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    joblib
+    numpy
+    scikit-learn
+    scipy
+    threadpoolctl
+  ];
+
+  passthru.optional-dependencies = {
+    optional = [
+      keras
+      pandas
+      tensorflow
+    ];
+  };
+
+  pythonImportsCheck = [
+    "imblearn"
+  ];
+
   nativeCheckInputs = [ pytestCheckHook pandas ];
+
   preCheck = ''
     export HOME=$TMPDIR
   '';
-  disabledTests = [
-    "estimator"
-    "classification"
-    "_generator"
-    "show_versions"
-    "test_make_imbalanced_iris"
-    "test_rusboost[SAMME.R]"
-
-    # https://github.com/scikit-learn-contrib/imbalanced-learn/issues/824
-    "ValueDifferenceMetric"
+
+  disabledTestPaths = [
+    # require tensorflow and keras, but we don't want to
+    # add them to nativeCheckInputs just for this tests
+    "imblearn/keras/_generator.py"
   ];
 
   meta = with lib; {
     description = "Library offering a number of re-sampling techniques commonly used in datasets showing strong between-class imbalance";
     homepage = "https://github.com/scikit-learn-contrib/imbalanced-learn";
+    changelog = "https://github.com/scikit-learn-contrib/imbalanced-learn/releases/tag/${version}";
     license = licenses.mit;
     maintainers = [ maintainers.rmcgibbo ];
   };
diff --git a/pkgs/development/python-modules/img2pdf/default.nix b/pkgs/development/python-modules/img2pdf/default.nix
index 1a69525d8438..2dc389f70ecc 100644
--- a/pkgs/development/python-modules/img2pdf/default.nix
+++ b/pkgs/development/python-modules/img2pdf/default.nix
@@ -12,7 +12,7 @@
 , exiftool
 , ghostscript
 , imagemagick
-, mupdf
+, mupdf-headless
 , netpbm
 , numpy
 , poppler_utils
@@ -74,7 +74,7 @@ buildPythonPackage rec {
     exiftool
     ghostscript
     imagemagick
-    mupdf
+    mupdf-headless
     netpbm
     numpy
     poppler_utils
diff --git a/pkgs/development/python-modules/iminuit/default.nix b/pkgs/development/python-modules/iminuit/default.nix
index 3969b1c9ca51..675a751f0096 100644
--- a/pkgs/development/python-modules/iminuit/default.nix
+++ b/pkgs/development/python-modules/iminuit/default.nix
@@ -20,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "iminuit";
-  version = "2.24.0";
+  version = "2.25.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-JatjHDyOAksbzHyW9mM4yqxUpKIyTVXx47pWF4FuRP0=";
+    hash = "sha256-e99ZRg05Dy0DznVcAVGy7D0gMwC8UVQb+Ch7Q8EgTGY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/immutabledict/default.nix b/pkgs/development/python-modules/immutabledict/default.nix
index 5d762be3fb86..6a066fad36d8 100644
--- a/pkgs/development/python-modules/immutabledict/default.nix
+++ b/pkgs/development/python-modules/immutabledict/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "immutabledict";
-  version = "4.0.0";
+  version = "4.1.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "corenting";
     repo = "immutabledict";
     rev = "refs/tags/v${version}";
-    hash = "sha256-z03s2mOJiMVnvLmeFJFgCRvkP+9VUcALiIoIPBAHUPw=";
+    hash = "sha256-c76apNW6nlxL9paevqKpPw5RpDLMpYnbVabCCIrW3pw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/impacket/default.nix b/pkgs/development/python-modules/impacket/default.nix
index 7c7542252601..ba387cd8d06c 100644
--- a/pkgs/development/python-modules/impacket/default.nix
+++ b/pkgs/development/python-modules/impacket/default.nix
@@ -4,19 +4,21 @@
 , dsinternals
 , fetchPypi
 , flask
+, ldap3
 , ldapdomaindump
 , pyasn1
 , pycryptodomex
 , pyopenssl
 , pythonOlder
 , setuptools
+, pytestCheckHook
 , six
 }:
 
 buildPythonPackage rec {
   pname = "impacket";
   version = "0.11.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -25,25 +27,36 @@ buildPythonPackage rec {
     hash = "sha256-7kA5tNKu3o9fZEeLxZ+qyGA2eWviTeqNwY8An7CQXko=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     charset-normalizer
     dsinternals
     flask
+    ldap3
     ldapdomaindump
     pyasn1
     pycryptodomex
     pyopenssl
-    setuptools
     six
   ];
 
-  # RecursionError: maximum recursion depth exceeded
-  doCheck = false;
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
 
   pythonImportsCheck = [
     "impacket"
   ];
 
+  disabledTestPaths = [
+    # Skip all RPC related tests
+    "tests/dcerpc/"
+    "tests/SMB_RPC/"
+  ];
+
   meta = with lib; {
     description = "Network protocols Constructors and Dissectors";
     homepage = "https://github.com/SecureAuthCorp/impacket";
diff --git a/pkgs/development/python-modules/indexed-gzip/default.nix b/pkgs/development/python-modules/indexed-gzip/default.nix
index 73ad916f35f8..7b0bf177bf19 100644
--- a/pkgs/development/python-modules/indexed-gzip/default.nix
+++ b/pkgs/development/python-modules/indexed-gzip/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "indexed_gzip";
-  version = "1.8.5";
+  version = "1.8.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-h9JgYq9KxmknaRuMgq+5YWA8tUaFk+lclkqdNAnr/cI=";
+    hash = "sha256-dryq1LLC+lVHj/i+m60ubGGItlX5/clCnwNGrexI92I=";
   };
 
   nativeBuildInputs = [ cython ];
diff --git a/pkgs/development/python-modules/influxdb-client/default.nix b/pkgs/development/python-modules/influxdb-client/default.nix
index 8e0bd695c0f6..6fb8974642ee 100644
--- a/pkgs/development/python-modules/influxdb-client/default.nix
+++ b/pkgs/development/python-modules/influxdb-client/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "influxdb-client";
-  version = "1.39.0";
+  version = "1.40.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "influxdata";
     repo = "influxdb-client-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-cj3qeT5wE/RqrwOW1MV9sVG+khxyRAO5438omqbKbmY=";
+    hash = "sha256-+I5DxcxNxIRDwtfYXLvXPl8Z3FKcSWyaYtv1KHT9QO4=";
   };
 
   propagatedBuildInputs = [
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 2a6e9f0556a9..7c8536e1466a 100644
--- a/pkgs/development/python-modules/insteon-frontend-home-assistant/default.nix
+++ b/pkgs/development/python-modules/insteon-frontend-home-assistant/default.nix
@@ -4,33 +4,22 @@
 , fetchPypi
 , pythonOlder
 , setuptools
-, wheel
 }:
 
 buildPythonPackage rec {
   pname = "insteon-frontend-home-assistant";
-  version = "0.3.5-1";
-  format = "pyproject";
+  version = "0.5.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.10";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-R+P4pgKbLvf0mwpSDoujCvlJe/yS+nvSJ7ewLVOOg/0=";
+    hash = "sha256-NZwnx8tlXnsVCk4nvNjOg3cjSr2CnjqWcZG7xFTC2wA=";
   };
 
-  patches = [
-    # https://github.com/pyinsteon/insteon-panel/pull/33
-    (fetchpatch {
-      name = "unpin-setuptools.patch";
-      url = "https://github.com/pyinsteon/insteon-panel/commit/2297eb05668907edd03633f244e5876990e340c7.patch";
-      hash = "sha256-kTu1+IwDrcdqelyK/vfhxw8MQBis5I1jag7YTytKQhs=";
-    })
-  ];
-
   nativeBuildInputs = [
     setuptools
-    wheel
   ];
 
   # upstream has no tests
diff --git a/pkgs/development/python-modules/ipwhois/default.nix b/pkgs/development/python-modules/ipwhois/default.nix
index 676ec23081a6..c6e50535bad4 100644
--- a/pkgs/development/python-modules/ipwhois/default.nix
+++ b/pkgs/development/python-modules/ipwhois/default.nix
@@ -3,33 +3,47 @@
 , buildPythonPackage
 , dnspython
 , fetchFromGitHub
+, fetchpatch
 , iana-etc
 , libredirect
 , pytestCheckHook
 , pythonOlder
 , pythonRelaxDepsHook
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "ipwhois";
   version = "1.2.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "secynic";
-    repo = pname;
+    repo = "ipwhois";
     rev = "refs/tags/v${version}";
     hash = "sha256-2CfRRHlIIaycUtzKeMBKi6pVPeBCb1nW3/1hoxQU1YM=";
   };
 
+  patches = [
+    # Use assertEqual instead of assertEquals, https://github.com/secynic/ipwhois/pull/316
+    (fetchpatch {
+      name = "assert-equal.patch";
+      url = "https://github.com/secynic/ipwhois/commit/fce2761354af99bc169e6cd08057e838fcc40f75.patch";
+      hash = "sha256-7Ic4xWTAmklk6MvnZ/WsH9SW/4D9EG/jFKt5Wi89Xtc=";
+    })
+  ];
+
+  __darwinAllowLocalNetworking = true;
+
   pythonRelaxDeps = [
     "dnspython"
   ];
 
   nativeBuildInputs = [
     pythonRelaxDepsHook
+    setuptools
   ];
 
   propagatedBuildInputs = [
@@ -53,6 +67,8 @@ buildPythonPackage rec {
   disabledTestPaths = [
     # Tests require network access
     "ipwhois/tests/online/"
+    # Stress test
+    "ipwhois/tests/stress/test_experimental.py"
   ];
 
   disabledTests = [
diff --git a/pkgs/development/python-modules/ipykernel/default.nix b/pkgs/development/python-modules/ipykernel/default.nix
index d96ab023c87f..317f8a7fc2eb 100644
--- a/pkgs/development/python-modules/ipykernel/default.nix
+++ b/pkgs/development/python-modules/ipykernel/default.nix
@@ -22,14 +22,14 @@
 
 buildPythonPackage rec {
   pname = "ipykernel";
-  version = "6.28.0";
+  version = "6.29.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-acEUA9Jt5p3wIiWRb5FrN+pLmvQX2gqMgn+EMo2I5fM=";
+    hash = "sha256-td0wE8q3szDfcSiRyWzRq4aMJ6cVnmBvdiAV6b+M6z8=";
   };
 
   # debugpy is optional, see https://github.com/ipython/ipykernel/pull/767
diff --git a/pkgs/development/python-modules/ipython-sql/default.nix b/pkgs/development/python-modules/ipython-sql/default.nix
index 0aa7fa388c4f..a87c359c967a 100644
--- a/pkgs/development/python-modules/ipython-sql/default.nix
+++ b/pkgs/development/python-modules/ipython-sql/default.nix
@@ -1,32 +1,29 @@
 { lib
 , buildPythonPackage
-, fetchFromGitHub
+, fetchPypi
 , pythonOlder
+, setuptools
 , ipython
 , ipython-genutils
-, pandas
 , prettytable
-, pytest
 , sqlalchemy
 , sqlparse
 }:
 buildPythonPackage rec {
   pname = "ipython-sql";
-  version = "0.4.0";
-  format = "setuptools";
+  version = "0.5.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
-  src = fetchFromGitHub {
-    owner = "catherinedevlin";
-    repo = "ipython-sql";
-    rev = "117764caf099d80100ed4b09fc004b55eed6f121";
-    hash = "sha256-ScQihsvRSnC7VIgy8Tzi1z4x6KIZo0SAeLPvHAVdrfA=";
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-PbPOf5qV369Dh2+oCxa9u5oE3guhIELKsT6fWW/P/b4=";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py --replace 'prettytable<1' prettytable
-  '';
+  nativeBuildInputs = [
+    setuptools
+  ];
 
   propagatedBuildInputs = [
     ipython
@@ -36,17 +33,8 @@ buildPythonPackage rec {
     sqlparse
   ];
 
-  nativeCheckInputs = [ ipython pandas pytest ];
-
-  checkPhase = ''
-    runHook preCheck
-
-    # running with ipython is required because the tests use objects available
-    # only inside of ipython, for example the global `get_ipython()` function
-    ipython -c 'import pytest; pytest.main()'
-
-    runHook postCheck
-  '';
+  # pypi tarball has no tests
+  doCheck = false;
 
   pythonImportsCheck = [ "sql" ];
 
diff --git a/pkgs/development/python-modules/jinja2/default.nix b/pkgs/development/python-modules/jinja2/default.nix
index 1b154f90d386..1c260e37c7b0 100644
--- a/pkgs/development/python-modules/jinja2/default.nix
+++ b/pkgs/development/python-modules/jinja2/default.nix
@@ -9,79 +9,83 @@
 , pytestCheckHook
 , sphinxHook
 , pallets-sphinx-themes
+, setuptools
 , sphinxcontrib-log-cabinet
 , sphinx-issues
 }:
 
 buildPythonPackage rec {
-  pname = "Jinja2";
-  version = "3.1.2";
+  pname = "jinja2";
+  version = "3.1.3";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-MTUacCpAip51laj8YVD8P0O7a/fjGXcMvA2535Q36FI=";
+    pname = "Jinja2";
+    inherit version;
+    hash = "sha256-rIvWVE1Lssl5K/OhWegLuo/afwfoG8Ou1WVDLVklupA=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
-    babel
     markupsafe
   ];
 
+  passthru.optional-dependencies = {
+    i18n = [
+      babel
+    ];
+  };
+
   # Multiple tests run out of stack space on 32bit systems with python2.
   # See https://github.com/pallets/jinja/issues/1158
   doCheck = !stdenv.is32bit;
 
   nativeCheckInputs = [
     pytestCheckHook
-  ];
-
-  pytestFlagsArray = [
-    # Avoid failure due to deprecation warning
-    # Fixed in https://github.com/python/cpython/pull/28153
-    # Remove after cpython 3.9.8
-    "-p no:warnings"
-  ];
+  ] ++ passthru.optional-dependencies.i18n;
 
-  passthru = {
-    doc = stdenv.mkDerivation {
-      # Forge look and feel of multi-output derivation as best as we can.
-      #
-      # Using 'outputs = [ "doc" ];' breaks a lot of assumptions.
-      name = "${pname}-${version}-doc";
-      inherit src pname version;
+  passthru.doc = stdenv.mkDerivation {
+    # Forge look and feel of multi-output derivation as best as we can.
+    #
+    # Using 'outputs = [ "doc" ];' breaks a lot of assumptions.
+    name = "${pname}-${version}-doc";
+    inherit src pname version;
 
-      patches = [
-        # Fix import of "sphinxcontrib-log-cabinet"
-        ./patches/import-order.patch
-      ];
+    patches = [
+      # Fix import of "sphinxcontrib-log-cabinet"
+      ./patches/import-order.patch
+    ];
 
-      postInstallSphinx = ''
-        mv $out/share/doc/* $out/share/doc/python$pythonVersion-$pname-$version
-      '';
+    postInstallSphinx = ''
+      mv $out/share/doc/* $out/share/doc/python$pythonVersion-$pname-$version
+    '';
 
-      nativeBuildInputs = [
-        sphinxHook
-        sphinxcontrib-log-cabinet
-        pallets-sphinx-themes
-        sphinx-issues
-      ];
+    nativeBuildInputs = [
+      sphinxHook
+      sphinxcontrib-log-cabinet
+      pallets-sphinx-themes
+      sphinx-issues
+    ];
 
-      inherit (python) pythonVersion;
-      inherit meta;
-    };
+    inherit (python) pythonVersion;
+    inherit meta;
   };
 
   meta = with lib; {
-    homepage = "https://jinja.palletsprojects.com/";
-    description = "Stand-alone template engine";
+    changelog = "https://github.com/pallets/jinja/blob/${version}/CHANGES.rst";
+    description = "Very fast and expressive template engine";
+    downloadPage = "https://github.com/pallets/jinja";
+    homepage = "https://jinja.palletsprojects.com";
     license = licenses.bsd3;
     longDescription = ''
       Jinja is a fast, expressive, extensible templating engine. Special
       placeholders in the template allow writing code similar to Python
       syntax. Then the template is passed data to render the final document.
-      an optional sandboxed environment.
     '';
     maintainers = with maintainers; [ pierron ];
   };
diff --git a/pkgs/development/python-modules/jq/jq-py-setup.patch b/pkgs/development/python-modules/jq/jq-py-setup.patch
deleted file mode 100644
index 0894b776fef6..000000000000
--- a/pkgs/development/python-modules/jq/jq-py-setup.patch
+++ /dev/null
@@ -1,111 +0,0 @@
-diff --git a/setup.py b/setup.py
-index 01cc813..15e9048 100644
---- a/setup.py
-+++ b/setup.py
-@@ -1,97 +1,18 @@
- #!/usr/bin/env python
- 
- import os
--import subprocess
--import tarfile
--import shutil
--import sysconfig
- 
- from setuptools import setup
--from setuptools.command.build_ext import build_ext
- from setuptools.extension import Extension
- 
--
--def _path_in_dir(relative_path):
--    return os.path.abspath(os.path.join(os.path.dirname(__file__), relative_path))
--
--def _dep_source_path(relative_path):
--    return os.path.join(_path_in_dir("deps"), relative_path)
--
--def _dep_build_path(relative_path):
--    return os.path.join(_path_in_dir("_deps/build"), relative_path)
--
- def _read(fname):
-     return open(os.path.join(os.path.dirname(__file__), fname)).read()
- 
- 
--jq_lib_tarball_path = _dep_source_path("jq-1.6.tar.gz")
--jq_lib_dir = _dep_build_path("jq-1.6")
--
--oniguruma_version = "6.9.4"
--oniguruma_lib_tarball_path = _dep_source_path("onig-{}.tar.gz".format(oniguruma_version))
--oniguruma_lib_build_dir = _dep_build_path("onig-{}".format(oniguruma_version))
--oniguruma_lib_install_dir = _dep_build_path("onig-install-{}".format(oniguruma_version))
--
--class jq_build_ext(build_ext):
--    def run(self):
--        if not os.path.exists(_dep_build_path(".")):
--            os.makedirs(_dep_build_path("."))
--        self._build_oniguruma()
--        self._build_libjq()
--        build_ext.run(self)
--
--    def _build_oniguruma(self):
--        self._build_lib(
--            tarball_path=oniguruma_lib_tarball_path,
--            lib_dir=oniguruma_lib_build_dir,
--            commands=[
--                ["./configure", "CFLAGS=-fPIC", "--prefix=" + oniguruma_lib_install_dir],
--                ["make"],
--                ["make", "install"],
--            ])
--
--
--    def _build_libjq(self):
--        self._build_lib(
--            tarball_path=jq_lib_tarball_path,
--            lib_dir=jq_lib_dir,
--            commands=[
--                ["./configure", "CFLAGS=-fPIC -pthread", "--disable-maintainer-mode", "--with-oniguruma=" + oniguruma_lib_install_dir],
--                ["make"],
--            ])
--
--    def _build_lib(self, tarball_path, lib_dir, commands):
--        self._extract_tarball(
--            tarball_path=tarball_path,
--            lib_dir=lib_dir,
--        )
--
--        macosx_deployment_target = sysconfig.get_config_var("MACOSX_DEPLOYMENT_TARGET")
--        if macosx_deployment_target:
--            os.environ['MACOSX_DEPLOYMENT_TARGET'] = str(macosx_deployment_target)
--
--        def run_command(args):
--            print("Executing: %s" % ' '.join(args))
--            subprocess.check_call(args, cwd=lib_dir)
--
--        for command in commands:
--            run_command(command)
--
--    def _extract_tarball(self, tarball_path, lib_dir):
--        if os.path.exists(lib_dir):
--            shutil.rmtree(lib_dir)
--        tarfile.open(tarball_path, "r:gz").extractall(_dep_build_path("."))
--
--
- jq_extension = Extension(
-     "jq",
-     sources=["jq.c"],
--    include_dirs=[os.path.join(jq_lib_dir, "src")],
--    extra_link_args=["-lm"],
--    extra_objects=[
--        os.path.join(jq_lib_dir, ".libs/libjq.a"),
--        os.path.join(oniguruma_lib_install_dir, "lib/libonig.a"),
--    ],
-+    libraries=["jq"]
- )
- 
- setup(
-@@ -104,7 +25,6 @@ def _extract_tarball(self, tarball_path, lib_dir):
-     python_requires='>=3.5',
-     license='BSD 2-Clause',
-     ext_modules = [jq_extension],
--    cmdclass={"build_ext": jq_build_ext},
-     classifiers=[
-         'Development Status :: 5 - Production/Stable',
-         'Intended Audience :: Developers',
diff --git a/pkgs/development/python-modules/json-schema-for-humans/default.nix b/pkgs/development/python-modules/json-schema-for-humans/default.nix
index dfbe2d7d638e..9bd62060457c 100644
--- a/pkgs/development/python-modules/json-schema-for-humans/default.nix
+++ b/pkgs/development/python-modules/json-schema-for-humans/default.nix
@@ -11,6 +11,7 @@
 , pygments
 , pytestCheckHook
 , pythonOlder
+, pythonRelaxDepsHook
 , pytz
 , pyyaml
 , requests
@@ -18,20 +19,25 @@
 
 buildPythonPackage rec {
   pname = "json-schema-for-humans";
-  version = "0.46";
-  format = "pyproject";
+  version = "0.47";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "coveooss";
-    repo = pname;
+    repo = "json-schema-for-humans";
     rev = "refs/tags/v${version}";
-    hash = "sha256-wTO+d0O3SKT2jJ2zNubT2q76PdJ7+kT9RBEw5MMH1yg=";
+    hash = "sha256-yioYsCp+q5YWdIWDlNZkpaLqo++n+dV5jyEeIhUDHr4=";
   };
 
+  pythonRelaxDeps = [
+    "dataclasses-json"
+  ];
+
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/json-stream-rs-tokenizer/default.nix b/pkgs/development/python-modules/json-stream-rs-tokenizer/default.nix
index 6800635c0b2f..9609d68c6961 100644
--- a/pkgs/development/python-modules/json-stream-rs-tokenizer/default.nix
+++ b/pkgs/development/python-modules/json-stream-rs-tokenizer/default.nix
@@ -6,6 +6,7 @@
 , fetchFromGitHub
 , json-stream
 , json-stream-rs-tokenizer
+, pythonOlder
 , rustc
 , rustPlatform
 , setuptools
@@ -15,14 +16,16 @@
 
 buildPythonPackage rec {
   pname = "json-stream-rs-tokenizer";
-  version = "0.4.22";
-  format = "setuptools";
+  version = "0.4.25";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "smheidrich";
     repo = "py-json-stream-rs-tokenizer";
     rev = "refs/tags/v${version}";
-    hash = "sha256-EW726gUXTBX3gTxlFQ45RgkUa2Z4tIjUZxO4GBLXgEs=";
+    hash = "sha256-zo/jRAWSwcOnO8eU4KhDNz44P6xDGcrZf9CflwsSvF0=";
   };
 
   cargoDeps = rustPlatform.importCargoLock {
diff --git a/pkgs/development/python-modules/jsonargparse/default.nix b/pkgs/development/python-modules/jsonargparse/default.nix
new file mode 100644
index 000000000000..f52b6412a617
--- /dev/null
+++ b/pkgs/development/python-modules/jsonargparse/default.nix
@@ -0,0 +1,109 @@
+{ lib
+, argcomplete
+, attrs
+, buildPythonPackage
+, docstring-parser
+, fetchFromGitHub
+, fsspec
+, jsonnet
+, jsonschema
+, omegaconf
+, pydantic
+, pytest-subtests
+, pytestCheckHook
+, pythonOlder
+, pyyaml
+, reconplogger
+, requests
+, responses
+, ruyaml
+, setuptools
+, types-pyyaml
+, types-requests
+, typeshed-client
+}:
+
+buildPythonPackage rec {
+  pname = "jsonargparse";
+  version = "4.27.4";
+  pyproject = true;
+
+  disabled = pythonOlder "3.11";
+
+  src = fetchFromGitHub {
+    owner = "omni-us";
+    repo = "jsonargparse";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-MzcFsH1PyDAnPBEELHLRKfD3TR01INDFIvHc1y3dbng=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    pyyaml
+  ];
+
+  passthru.optional-dependencies = {
+    all = [
+      argcomplete
+      fsspec
+      jsonnet
+      jsonschema
+      omegaconf
+      ruyaml
+      docstring-parser
+      typeshed-client
+      requests
+    ];
+    argcomplete = [
+      argcomplete
+    ];
+    fsspec = [
+      fsspec
+    ];
+    jsonnet = [
+      jsonnet
+      # jsonnet-binary
+    ];
+    jsonschema = [
+      jsonschema
+    ];
+    omegaconf = [
+      omegaconf
+    ];
+    reconplogger = [
+      reconplogger
+    ];
+    ruyaml = [
+      ruyaml
+    ];
+    signatures = [
+      docstring-parser
+      typeshed-client
+    ];
+    urls = [
+      requests
+    ];
+  };
+
+  nativeCheckInputs = [
+    pytest-subtests
+    pytestCheckHook
+    types-pyyaml
+    types-requests
+  ];
+
+  pythonImportsCheck = [
+    "jsonargparse"
+  ];
+
+  meta = with lib; {
+    description = "Module to mplement minimal boilerplate CLIs derived from various sources";
+    homepage = "https://github.com/omni-us/jsonargparse";
+    changelog = "https://github.com/omni-us/jsonargparse/blob/${version}/CHANGELOG.rst";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/jsonrpc-base/default.nix b/pkgs/development/python-modules/jsonrpc-base/default.nix
index 42aa42638013..f10f9bbb8b82 100644
--- a/pkgs/development/python-modules/jsonrpc-base/default.nix
+++ b/pkgs/development/python-modules/jsonrpc-base/default.nix
@@ -4,22 +4,27 @@
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "jsonrpc-base";
-  version = "2.1.1";
-  format = "setuptools";
+  version = "2.2.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "emlove";
-    repo = pname;
-    rev = version;
-    hash = "sha256-C03m/zeLIFqsmEMSzt84LMOWAHUcpdEHhaa5hx2NsoQ=";
+    repo = "jsonrpc-base";
+    rev = "refs/tags/${version}";
+    hash = "sha256-AbpuAW+wuGc+Vj4FDFlyB2YbiwDxPLuyAGiNcmGU+Ss=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   nativeCheckInputs = [
     pytest-asyncio
     pytestCheckHook
diff --git a/pkgs/development/python-modules/jsonrpc-websocket/default.nix b/pkgs/development/python-modules/jsonrpc-websocket/default.nix
index 6c1569055b5d..eb50c3f3a32e 100644
--- a/pkgs/development/python-modules/jsonrpc-websocket/default.nix
+++ b/pkgs/development/python-modules/jsonrpc-websocket/default.nix
@@ -1,35 +1,42 @@
 { lib
+, aiohttp
+, async-timeout
 , buildPythonPackage
 , fetchFromGitHub
-, aiohttp
 , jsonrpc-base
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "jsonrpc-websocket";
-  version = "3.1.4";
-  format = "setuptools";
+  version = "3.1.5";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "emlove";
     repo = "jsonrpc-websocket";
-    rev = version;
-    hash = "sha256-xSOITOVtsNMEDrq610l8LNipLdyMWzKOQDedQEGaNOQ=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-CdYa4gcbG3EM1glxLU1hyqbNse87KJKjwSRQSFfDMM0=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     aiohttp
+    async-timeout
     jsonrpc-base
   ];
 
   nativeCheckInputs = [
-    pytestCheckHook
     pytest-asyncio
+    pytestCheckHook
   ];
 
   pytestFlagsArray = [
diff --git a/pkgs/development/python-modules/jupyter-book/default.nix b/pkgs/development/python-modules/jupyter-book/default.nix
index 69d0734bfa00..bdb7b5772941 100644
--- a/pkgs/development/python-modules/jupyter-book/default.nix
+++ b/pkgs/development/python-modules/jupyter-book/default.nix
@@ -3,13 +3,12 @@
 , fetchPypi
 , pythonOlder
 , flit-core
-, pythonRelaxDepsHook
 , click
-, docutils
 , jinja2
 , jsonschema
 , linkify-it-py
 , myst-nb
+, myst-parser
 , pyyaml
 , sphinx
 , sphinx-comments
@@ -26,29 +25,28 @@
 
 buildPythonPackage rec {
   pname = "jupyter-book";
-  version = "0.15.1";
+  version = "1.0.0";
+  pyproject = true;
 
-  format = "pyproject";
-
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.9";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-ihY07Bb37t7g0Rbx5ft8SCAyia2S2kLglRnccdlWwBA=";
+    inherit version;
+    pname = "jupyter_book";
+    hash = "sha256-U5xdBJNUYgDZ3ie9S1936uoDEV+JN/gl1P+Cs4AamH4=";
   };
 
   nativeBuildInputs = [
     flit-core
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
     click
-    docutils
     jinja2
     jsonschema
     linkify-it-py
     myst-nb
+    myst-parser
     pyyaml
     sphinx
     sphinx-comments
@@ -63,16 +61,9 @@ buildPythonPackage rec {
     sphinx-multitoc-numbering
   ];
 
-  pythonRelaxDeps = [
-    "docutils"
-    "myst-nb"
-    "sphinx"
-    "sphinx-thebe"
-    "sphinxcontrib-bibtex"
-  ];
-
   pythonImportsCheck = [
     "jupyter_book"
+    "jupyter_book.cli.main"
   ];
 
   meta = with lib; {
@@ -81,5 +72,6 @@ buildPythonPackage rec {
     changelog = "https://github.com/executablebooks/jupyter-book/blob/v${version}/CHANGELOG.md";
     license = licenses.bsd3;
     maintainers = with maintainers; [ marsam ];
+    mainProgram = "jupyter-book";
   };
 }
diff --git a/pkgs/development/python-modules/jupyter-lsp/default.nix b/pkgs/development/python-modules/jupyter-lsp/default.nix
index 1cc43ebc6001..51161435e917 100644
--- a/pkgs/development/python-modules/jupyter-lsp/default.nix
+++ b/pkgs/development/python-modules/jupyter-lsp/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "jupyter-lsp";
-  version = "2.2.1";
+  version = "2.2.2";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-sX+rbXD+g8iJawz/WSN2QAOCR8GWBWtDaEoJArap4Ps=";
+    hash = "sha256-JW0kYgVCrku6BKUPwfb/4ggJOgfY5pf+oKjRuMobfls=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/jupyter-server-terminals/default.nix b/pkgs/development/python-modules/jupyter-server-terminals/default.nix
index 3c9f3b0e043e..5dbb04fda092 100644
--- a/pkgs/development/python-modules/jupyter-server-terminals/default.nix
+++ b/pkgs/development/python-modules/jupyter-server-terminals/default.nix
@@ -16,14 +16,14 @@
 
 let self = buildPythonPackage rec {
   pname = "jupyter-server-terminals";
-  version = "0.5.1";
+  version = "0.5.2";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "jupyter-server";
     repo = "jupyter_server_terminals";
     rev = "refs/tags/v${version}";
-    hash = "sha256-d++WnroL9nq/G8K5nMl98pXYNpXgdWRfCNoIbVoiD7U=";
+    hash = "sha256-e4PtrK2DCJAK+LYmGguwU5hmxdqP5Dws1dPoPOv/WrM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/jupyter-server/default.nix b/pkgs/development/python-modules/jupyter-server/default.nix
index 240d2064168c..77993d24fd2c 100644
--- a/pkgs/development/python-modules/jupyter-server/default.nix
+++ b/pkgs/development/python-modules/jupyter-server/default.nix
@@ -34,14 +34,14 @@
 
 buildPythonPackage rec {
   pname = "jupyter-server";
-  version = "2.12.4";
+  version = "2.12.5";
   pyproject = true;
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     pname = "jupyter_server";
     inherit version;
-    hash = "sha256-QfSh5rkSzCSnxsaUhRs309hBKxgPQ9cjFf5CLLK4XMI=";
+    hash = "sha256-DttibJS6oigJvhMj+XcM8cAKlSsXCXWS5A0D5qOVFok=";
   };
 
   nativeBuildInputs = [
@@ -93,11 +93,11 @@ buildPythonPackage rec {
     "test_cull_idle"
     "test_server_extension_list"
     "test_subscribe_websocket"
+    # test is presumable broken in sandbox
+    "test_authorized_requests"
   ] ++ lib.optionals stdenv.isDarwin [
     # attempts to use trashcan, build env doesn't allow this
     "test_delete"
-    # test is presumable broken in sandbox
-    "test_authorized_requests"
     # Insufficient access privileges for operation
     "test_regression_is_hidden"
   ] ++ lib.optionals stdenv.isLinux [
diff --git a/pkgs/development/python-modules/jupyterlab-lsp/default.nix b/pkgs/development/python-modules/jupyterlab-lsp/default.nix
index 004bddfbe8ac..71012f747e47 100644
--- a/pkgs/development/python-modules/jupyterlab-lsp/default.nix
+++ b/pkgs/development/python-modules/jupyterlab-lsp/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab-lsp";
-  version = "5.0.1";
+  version = "5.0.2";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-jQ8mhTfZ+6F9EgDfBWVI6I/I3n2lIlJs+mM0OJ0MKTQ=";
+    hash = "sha256-JmiGhOkHUPjvikFimgpAUOc26IFVWqFBP7Xah54GNfE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/jupyterlab/default.nix b/pkgs/development/python-modules/jupyterlab/default.nix
index c00e171772e1..ed909d15f6a6 100644
--- a/pkgs/development/python-modules/jupyterlab/default.nix
+++ b/pkgs/development/python-modules/jupyterlab/default.nix
@@ -19,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab";
-  version = "4.0.10";
+  version = "4.0.12";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Rhd+uO3nDcc76SKsmfjvlDvcLfvGoxs1PEvehIo13uE=";
+    hash = "sha256-ll2S76gqU47XDMs5aNmqu6eIhA2oguE9ewYXgM3tw7c=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/kaa-base/default.nix b/pkgs/development/python-modules/kaa-base/default.nix
index 96c83a4ac81d..8d83bdb5b110 100644
--- a/pkgs/development/python-modules/kaa-base/default.nix
+++ b/pkgs/development/python-modules/kaa-base/default.nix
@@ -24,20 +24,20 @@ buildPythonPackage rec {
   installPhase = ''
     runHook preInstall
 
-    mkdir -p "$out/lib/${python.libPrefix}/site-packages"
+    mkdir -p "$out/${python.sitePackages}"
 
-    export PYTHONPATH="$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
+    export PYTHONPATH="$out/${python.sitePackages}:$PYTHONPATH"
 
     ${python}/bin/${python.executable} setup.py install \
-      --install-lib=$out/lib/${python.libPrefix}/site-packages \
+      --install-lib=$out/${python.sitePackages} \
       --prefix="$out"
 
-    eapth="$out/lib/${python.libPrefix}"/site-packages/easy-install.pth
+    eapth="$out/${python.sitePackages}/easy-install.pth"
     if [ -e "$eapth" ]; then
     mv "$eapth" $(dirname "$eapth")/${pname}-${version}.pth
     fi
 
-    rm -f "$out/lib/${python.libPrefix}"/site-packages/site.py*
+    rm -f "$out/${python.sitePackages}"/site.py*
 
     runHook postInstall
   '';
diff --git a/pkgs/development/python-modules/kaa-metadata/default.nix b/pkgs/development/python-modules/kaa-metadata/default.nix
index de71d207b876..20ae66f17a9d 100644
--- a/pkgs/development/python-modules/kaa-metadata/default.nix
+++ b/pkgs/development/python-modules/kaa-metadata/default.nix
@@ -29,20 +29,20 @@ buildPythonPackage rec {
   installPhase = ''
     runHook preInstall
 
-    mkdir -p "$out/lib/${python.libPrefix}/site-packages"
+    mkdir -p "$out/${python.sitePackages}"
 
-    export PYTHONPATH="$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
+    export PYTHONPATH="$out/${python.sitePackages}:$PYTHONPATH"
 
     ${python}/bin/${python.executable} setup.py install \
-      --install-lib=$out/lib/${python.libPrefix}/site-packages \
+      --install-lib=$out/${python.sitePackages} \
       --prefix="$out"
 
-    eapth="$out/lib/${python.libPrefix}"/site-packages/easy-install.pth
+    eapth="$out/${python.sitePackages}/easy-install.pth"
     if [ -e "$eapth" ]; then
     mv "$eapth" $(dirname "$eapth")/${pname}-${version}.pth
     fi
 
-    rm -f "$out/lib/${python.libPrefix}"/site-packages/site.py*
+    rm -f "$out/${python.sitePackages}"/site.py*
 
     runHook postInstall
   '';
diff --git a/pkgs/development/python-modules/kaggle/default.nix b/pkgs/development/python-modules/kaggle/default.nix
index e0b4ab4ef586..58098b37bf79 100644
--- a/pkgs/development/python-modules/kaggle/default.nix
+++ b/pkgs/development/python-modules/kaggle/default.nix
@@ -13,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "kaggle";
-  version = "1.6.1";
+  version = "1.6.3";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-AsdRYWbeG++zACCSVfnCPuy1hIdixLqNbxP0npmmabQ=";
+    sha256 = "sha256-J2FOzXJhO59Ya4cjE68WOK2MChfQx4rZ1KcYeb7NcuQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/keyring-pass/default.nix b/pkgs/development/python-modules/keyring-pass/default.nix
new file mode 100644
index 000000000000..c9ac11c9313a
--- /dev/null
+++ b/pkgs/development/python-modules/keyring-pass/default.nix
@@ -0,0 +1,78 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, gnupg
+, keyring
+, pass
+, poetry-core
+, pythonOlder
+}:
+buildPythonPackage rec {
+  pname = "keyring-pass";
+  version = "0.9.2";
+  disabled = pythonOlder "3.6";
+
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "nazarewk";
+    repo = "keyring_pass";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-Sf7eDOB3prH2s6BzdBtxewSweC0ibLXVxNHBJRRaJe4=";
+  };
+
+  postPatch = ''
+    substituteInPlace keyring_pass/__init__.py \
+      --replace 'pass_binary = "pass"' 'pass_binary = "${lib.getExe pass}"'
+  '';
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  nativeCheckInputs = [
+    keyring
+    gnupg
+  ];
+
+  checkPhase = ''
+    export HOME="$TMPDIR"
+
+    # generate temporary GPG identity
+    cat <<EOF | gpg --gen-key --batch /dev/stdin
+    %no-protection
+    %transient-key
+    Key-Type: 1
+    Key-Length: 1024
+    Subkey-Type: 1
+    Subkey-Length: 1024
+    Name-Real: test
+    Name-Email: test@example.com
+    Expire-Date: 1
+    EOF
+
+    # configure password store
+    ${lib.getExe pass} init test@example.com
+
+    # Configure `keyring` CLI
+    # first make sure `keyring-pass` is in "$PYTHONPATH"
+    [[ "$PYTHONPATH" == *"$out"/lib/python*/site-packages* ]]
+    export PYTHON_KEYRING_BACKEND="keyring_pass.PasswordStoreBackend"
+
+    # confirm set/get/del works
+    keyring set test-service test-username <<<"test-password"
+    test "$(keyring get test-service test-username)" == "test-password"
+    keyring del test-service test-username
+  '';
+
+  pythonImportsCheck = [
+    "keyring_pass"
+  ];
+
+  meta = {
+    description = "Password Store (pass) backend for python's keyring";
+    homepage = "https://github.com/nazarewk/keyring_pass";
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.nazarewk ];
+  };
+}
diff --git a/pkgs/development/python-modules/labgrid/default.nix b/pkgs/development/python-modules/labgrid/default.nix
index 15474fa5b659..31fc50197d20 100644
--- a/pkgs/development/python-modules/labgrid/default.nix
+++ b/pkgs/development/python-modules/labgrid/default.nix
@@ -6,6 +6,7 @@
 , jinja2
 , lib
 , mock
+, openssh
 , packaging
 , pexpect
 , psutil
@@ -13,6 +14,7 @@
 , pytestCheckHook
 , pytest-dependency
 , pytest-mock
+, pythonRelaxDepsHook
 , pyudev
 , pyusb
 , pyyaml
@@ -25,16 +27,17 @@
 
 buildPythonPackage rec {
   pname = "labgrid";
-  version = "23.0.4";
+  version = "23.0.5";
 
   src = fetchFromGitHub {
     owner = "labgrid-project";
     repo = "labgrid";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-EEPQSIHKAmLPudv7LLm9ol3Kukgz8edYKfDi+wvERpk=";
+    hash = "sha256-jrapbSrybuLT3V11rvV342tOr7/sRwBMgAdNWDG5obA=";
   };
 
   nativeBuildInputs = [
+    pythonRelaxDepsHook
     setuptools
     setuptools-scm
     wheel
@@ -57,8 +60,25 @@ buildPythonPackage rec {
     xmodem
   ];
 
+  pythonRelaxDeps = [
+    "attrs"
+    "autobahn"
+    "jinja2"
+    "packaging"
+    "pexpect"
+    "pytest"
+    "pyudev"
+    "requests"
+    "xmodem"
+  ];
+
+  pythonRemoveDeps = [
+    "pyserial-labgrid"
+  ];
+
   nativeCheckInputs = [
     mock
+    openssh
     psutil
     pytestCheckHook
     pytest-mock
diff --git a/pkgs/development/python-modules/langchain-community/default.nix b/pkgs/development/python-modules/langchain-community/default.nix
index c129f8c8a557..0d0046b216ee 100644
--- a/pkgs/development/python-modules/langchain-community/default.nix
+++ b/pkgs/development/python-modules/langchain-community/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "langchain-community";
-  version = "0.0.12";
+  version = "0.0.16";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "langchain_community";
     inherit version;
-    hash = "sha256-fP42xSsfuGwQldTewM9Gahx1KnRGEE6LOc8PcFEqSFE=";
+    hash = "sha256-wGUSqTAToG+6dnnNWhJU/4uSfN3S0fvgzERL97vfC4w=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/langchain-core/default.nix b/pkgs/development/python-modules/langchain-core/default.nix
index 8ac7bf9173a1..8e8309874f1e 100644
--- a/pkgs/development/python-modules/langchain-core/default.nix
+++ b/pkgs/development/python-modules/langchain-core/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "langchain-core";
-  version = "0.1.10";
+  version = "0.1.16";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "langchain_core";
     inherit version;
-    hash = "sha256-PJ4TgyZMEC/Mb4ZXANu5QWxJMaJdCsIZX2MRxrhnqhc=";
+    hash = "sha256-jLVG7tMYAJ7hqKOB0QgHTt3wOVrmHrJD2wDXbh4mXok=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/langchain/default.nix b/pkgs/development/python-modules/langchain/default.nix
index d39942c769ac..18936f7a9ca5 100644
--- a/pkgs/development/python-modules/langchain/default.nix
+++ b/pkgs/development/python-modules/langchain/default.nix
@@ -52,7 +52,7 @@
 
 buildPythonPackage rec {
   pname = "langchain";
-  version = "0.1.0";
+  version = "0.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -61,7 +61,7 @@ buildPythonPackage rec {
     owner = "langchain-ai";
     repo = "langchain";
     rev = "refs/tags/v${version}";
-    hash = "sha256-izaSah1S0INsskdzE9b7Iw4yWBsNmN5fBI6BQgaHgE4=";
+    hash = "sha256-cQz4u6FeVZLNbix4pyc6ulfj+nb/tARMJniusy7Q46A=";
   };
 
   sourceRoot = "${src.name}/libs/langchain";
diff --git a/pkgs/development/python-modules/langsmith/default.nix b/pkgs/development/python-modules/langsmith/default.nix
index 1fffd07adff8..21ee2b4ac871 100644
--- a/pkgs/development/python-modules/langsmith/default.nix
+++ b/pkgs/development/python-modules/langsmith/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "langsmith";
-  version = "0.0.80";
+  version = "0.0.83";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "langchain-ai";
     repo = "langsmith-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-YFXwM/YiQJzJ1Nf76kuq3WtFhU6dUIHzK4K33+VO/lQ=";
+    hash = "sha256-WRrwekh4pcn3I0U/A2Q91ePrRx2RUC3XX+z4bez0BzU=";
   };
 
   sourceRoot = "${src.name}/python";
diff --git a/pkgs/development/python-modules/ldfparser/default.nix b/pkgs/development/python-modules/ldfparser/default.nix
index f71543c828bb..b5a39128d786 100644
--- a/pkgs/development/python-modules/ldfparser/default.nix
+++ b/pkgs/development/python-modules/ldfparser/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "ldfparser";
-  version = "0.21.0";
+  version = "0.22.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "c4deszes";
     repo = "ldfparser";
     rev = "refs/tags/v${version}";
-    hash = "sha256-4uwze9TJYmNvhDiKYyUX6Ya+eQb0mbpQQaawUWmO3Gs=";
+    hash = "sha256-oHFfoeD2C69VIW82akbp0tmxZp5ImA+l5ZDnN9cjhhA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/leidenalg/default.nix b/pkgs/development/python-modules/leidenalg/default.nix
index 336fb029c476..661ac2c71597 100644
--- a/pkgs/development/python-modules/leidenalg/default.nix
+++ b/pkgs/development/python-modules/leidenalg/default.nix
@@ -1,9 +1,10 @@
 { lib
 , buildPythonPackage
 , ddt
-, fetchPypi
+, fetchFromGitHub
 , igraph
 , igraph-c
+, libleidenalg
 , pythonOlder
 , setuptools-scm
 , unittestCheckHook
@@ -11,31 +12,29 @@
 
 buildPythonPackage rec {
   pname = "leidenalg";
-  version = "0.10.1";
-  format = "setuptools";
+  version = "0.10.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-RXrZaYKoC9XGVxifQt/rd+6807dEoRDlosFhjS64C0c=";
+  src = fetchFromGitHub {
+    owner = "vtraag";
+    repo = "leidenalg";
+    rev = "refs/tags/${version}";
+    hash = "sha256-oaTV+BIB/YQBWKrVXuiIEMH/1MxPxeHhjUzbmxt6hlw=";
   };
 
-  postPatch = ''
-    substituteInPlace ./setup.py \
-      --replace "[\"/usr/include/igraph\", \"/usr/local/include/igraph\"]" \
-                "[\"${igraph-c.dev}/include/igraph\"]"
-
-    rm -r vendor
-  '';
-
   nativeBuildInputs = [
     setuptools-scm
   ];
 
+  buildInputs = [
+    igraph-c
+    libleidenalg
+  ];
+
   propagatedBuildInputs = [
     igraph
-    igraph-c
   ];
 
   checkInputs = [
@@ -46,8 +45,9 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "leidenalg" ];
 
   meta = with lib; {
+    changelog = "https://github.com/vtraag/leidenalg/blob/${version}/CHANGELOG";
     description = "Implementation of the Leiden algorithm for various quality functions to be used with igraph in Python";
-    homepage = "https://leidenalg.readthedocs.io";
+    homepage = "https://github.com/vtraag/leidenalg";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ jboy ];
   };
diff --git a/pkgs/development/python-modules/levenshtein/default.nix b/pkgs/development/python-modules/levenshtein/default.nix
index 037ae3cda69f..2a297571b3f1 100644
--- a/pkgs/development/python-modules/levenshtein/default.nix
+++ b/pkgs/development/python-modules/levenshtein/default.nix
@@ -22,7 +22,8 @@ buildPythonPackage rec {
     owner = "maxbachmann";
     repo = "Levenshtein";
     rev = "refs/tags/v${version}";
-    hash = "sha256-O39Xe26WKAGcv6DEvwuOL8NZJBem5SYZDX1TPAY7/uA=";
+    hash = "sha256-xQimslz/G6nf2uYerLSaRAK5gvmfDmWTzEx/fh+nqg0=";
+    fetchSubmodules = true; ## for vendored `rapidfuzz-cpp`
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/libknot/default.nix b/pkgs/development/python-modules/libknot/default.nix
index fd5b0451381b..f79e4d638eba 100644
--- a/pkgs/development/python-modules/libknot/default.nix
+++ b/pkgs/development/python-modules/libknot/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "libknot";
-  version = "3.3.3";
+  version = "3.3.4";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-w8VAA+llRg1xeAMRe7ISHo8H+qGi247jwOjTZHecFVM=";
+    hash = "sha256-KRxc34lqOGuYJM2mUsYrjfiVCQNBxcQyO30wPLf17+Q=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/librosa/default.nix b/pkgs/development/python-modules/librosa/default.nix
index a93b6b0d99cb..48eae549523f 100644
--- a/pkgs/development/python-modules/librosa/default.nix
+++ b/pkgs/development/python-modules/librosa/default.nix
@@ -106,6 +106,8 @@ buildPythonPackage rec {
     "test_example"
     "test_example_info"
     "test_load_resample"
+    # does not converge
+    "test_nnls_vector"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/libvirt/default.nix b/pkgs/development/python-modules/libvirt/default.nix
index de5a75ee9eea..e10f7c056c6b 100644
--- a/pkgs/development/python-modules/libvirt/default.nix
+++ b/pkgs/development/python-modules/libvirt/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "libvirt";
-  version = "9.10.0";
+  version = "10.0.0";
   format = "setuptools";
 
   src = fetchFromGitLab {
     owner = "libvirt";
     repo = "libvirt-python";
     rev = "v${version}";
-    hash = "sha256-7qJieTLPzyHvhOLUsti4Mbt94iba2eTZd6OvPn3uLEA=";
+    hash = "sha256-zl1Hfm7flRflNjIpLoLAlPDysYlieC05HEd/mzFW8pU=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/python-modules/linear-operator/default.nix b/pkgs/development/python-modules/linear-operator/default.nix
index 907cb9c44d73..8ebe174d199b 100644
--- a/pkgs/development/python-modules/linear-operator/default.nix
+++ b/pkgs/development/python-modules/linear-operator/default.nix
@@ -3,10 +3,12 @@
 , fetchFromGitHub
 , jaxtyping
 , pytestCheckHook
+, pythonRelaxDepsHook
 , scipy
 , setuptools
 , setuptools-scm
 , torch
+, typeguard
 , wheel
 }:
 
@@ -23,6 +25,7 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
+    pythonRelaxDepsHook
     setuptools
     setuptools-scm
     wheel
@@ -32,6 +35,11 @@ buildPythonPackage rec {
     jaxtyping
     scipy
     torch
+    typeguard
+  ];
+
+  pythonRelaxDeps = [
+    "typeguard"
   ];
 
   pythonImportsCheck = [ "linear_operator" ];
@@ -42,6 +50,7 @@ buildPythonPackage rec {
 
   disabledTests = [
     # flaky numerical tests
+    "test_matmul_matrix_broadcast"
     "test_svd"
   ];
 
diff --git a/pkgs/development/python-modules/linien-common/default.nix b/pkgs/development/python-modules/linien-common/default.nix
index de05fab7f74d..605fdd6f740e 100644
--- a/pkgs/development/python-modules/linien-common/default.nix
+++ b/pkgs/development/python-modules/linien-common/default.nix
@@ -4,7 +4,7 @@
 , setuptools
 , importlib-metadata
 , numpy
-, rpyc
+, rpyc4
 , scipy
 , appdirs
 , callPackage
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     importlib-metadata
     numpy
-    rpyc
+    rpyc4
     scipy
     appdirs
   ];
diff --git a/pkgs/development/python-modules/litellm/default.nix b/pkgs/development/python-modules/litellm/default.nix
index b6d29b5501f9..248fa5c47607 100644
--- a/pkgs/development/python-modules/litellm/default.nix
+++ b/pkgs/development/python-modules/litellm/default.nix
@@ -15,7 +15,7 @@
 , httpx
 }:
 let
-  version = "1.17.0";
+  version = "1.20.9";
 in
 buildPythonPackage rec {
   pname = "litellm";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "BerriAI";
     repo = "litellm";
     rev = "refs/tags/v${version}";
-    hash = "sha256-lH0J5QFjSHOkHZWZQaH5ig6d9vWm7Mj02ssVc6lE4Uo=";
+    hash = "sha256-Sb5vfaKFUjBWfR/SPHLJLPD/EpoEwW56xKqgbUgM0K4=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/lmcloud/default.nix b/pkgs/development/python-modules/lmcloud/default.nix
new file mode 100644
index 000000000000..5b048bf3e346
--- /dev/null
+++ b/pkgs/development/python-modules/lmcloud/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, authlib
+, bleak
+, buildPythonPackage
+, fetchFromGitHub
+, httpx
+, pythonOlder
+, setuptools
+, websockets
+}:
+
+buildPythonPackage rec {
+  pname = "lmcloud";
+  version = "0.4.35";
+  pyproject = true;
+
+  disabled = pythonOlder "3.11";
+
+  src = fetchFromGitHub {
+    owner = "zweckj";
+    repo = "lmcloud";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-TUve21yamtEmEceK/V1w7IZjnMgKConMfSY/GlqFpp8=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    authlib
+    bleak
+    httpx
+    websockets
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "lmcloud"
+  ];
+
+  meta = with lib; {
+    description = "Library to interface with La Marzocco's cloud";
+    homepage = "https://github.com/zweckj/lmcloud";
+    changelog = "https://github.com/zweckj/lmcloud/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/logilab/constraint.nix b/pkgs/development/python-modules/logilab/constraint.nix
index 80d6bcc2f546..3d6b2cc7897b 100644
--- a/pkgs/development/python-modules/logilab/constraint.nix
+++ b/pkgs/development/python-modules/logilab/constraint.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "logilab-constraint";
-  version = "0.7.1";
+  version = "1.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-5ayQBNjueFHSQIjCilgbfL8VdWNuRSMtkYDh3DouNZQ=";
+    hash = "sha256-UiE1FsHYJxvJd+lqCQKJQkAHXa5iRQYEzU9nDgrR6YY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/logmatic-python/default.nix b/pkgs/development/python-modules/logmatic-python/default.nix
new file mode 100644
index 000000000000..24416041f7b2
--- /dev/null
+++ b/pkgs/development/python-modules/logmatic-python/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, python-json-logger
+, pythonOlder
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "logmatic-python";
+  version = "0.1.7";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "logmatic";
+    repo = "logmatic-python";
+    rev = "refs/tags/${version}";
+    hash = "sha256-UYKm00KhXnPQDkKJVm7s0gOwZ3GNY07O0oKbzPhAdVE=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    python-json-logger
+  ];
+
+  # Only functional tests, no unit tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "logmatic"
+  ];
+
+  meta = with lib; {
+    description = "Python helpers to send logs to Logmatic.io";
+    homepage = "https://github.com/logmatic/logmatic-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/losant-rest/default.nix b/pkgs/development/python-modules/losant-rest/default.nix
index fbc65794da26..6587f99d8118 100644
--- a/pkgs/development/python-modules/losant-rest/default.nix
+++ b/pkgs/development/python-modules/losant-rest/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "losant-rest";
-  version = "1.19.3";
+  version = "1.19.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "Losant";
     repo = "losant-rest-python";
     rev = "v${version}";
-    hash = "sha256-Ppy7vOA7ix76nvzVEP+BkL8dsoN0oXNX/5IZyhXDoSw=";
+    hash = "sha256-aVOviCeYi/oj1Xv7I0d4U+JBU0w3wbjORXOim/g5S7U=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/lsprotocol/default.nix b/pkgs/development/python-modules/lsprotocol/default.nix
index 06776c0eec3e..c8c058f47c68 100644
--- a/pkgs/development/python-modules/lsprotocol/default.nix
+++ b/pkgs/development/python-modules/lsprotocol/default.nix
@@ -14,16 +14,16 @@
 
 buildPythonPackage rec {
   pname = "lsprotocol";
-  version = "2023.0.0";
-  format = "pyproject";
+  version = "2023.0.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "microsoft";
-    repo = pname;
+    repo = "lsprotocol";
     rev = "refs/tags/${version}";
-    hash = "sha256-K5jocKVxMNoUYYUi9YO2+N7hHWj0MFLprqGOzsg1QRs=";
+    hash = "sha256-PHjLKazMaT6W4Lve1xNxm6hEwqE3Lr2m5L7Q03fqb68=";
   };
 
   nativeBuildInputs = [
@@ -70,6 +70,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python implementation of the Language Server Protocol";
     homepage = "https://github.com/microsoft/lsprotocol";
+    changelog = "https://github.com/microsoft/lsprotocol/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar fab ];
   };
diff --git a/pkgs/development/python-modules/lupupy/default.nix b/pkgs/development/python-modules/lupupy/default.nix
index d2481a5bada9..7be84dae9bc3 100644
--- a/pkgs/development/python-modules/lupupy/default.nix
+++ b/pkgs/development/python-modules/lupupy/default.nix
@@ -5,20 +5,25 @@
 , fetchPypi
 , pythonOlder
 , requests
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "lupupy";
-  version = "0.3.1";
-  format = "setuptools";
+  version = "0.3.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-mij5WGIl60D7ya1SdIvZ8TEgIZhJ9Xd2kcUnnbO1dD4=";
+    hash = "sha256-A92Jk6WlRKep3dkbqLiYYHklEh0pyncipRW6swq0mvo=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     colorlog
     pyyaml
diff --git a/pkgs/development/python-modules/lxmf/default.nix b/pkgs/development/python-modules/lxmf/default.nix
index 6081f17c2727..a9bdff4e46df 100644
--- a/pkgs/development/python-modules/lxmf/default.nix
+++ b/pkgs/development/python-modules/lxmf/default.nix
@@ -1,14 +1,15 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, rns
 , pythonOlder
+, rns
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "lxmf";
-  version = "0.3.8";
-  format = "setuptools";
+  version = "0.3.9";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -16,9 +17,13 @@ buildPythonPackage rec {
     owner = "markqvist";
     repo = "lxmf";
     rev = "refs/tags/${version}";
-    hash = "sha256-tse2Hgu50KfxWLBkzyV4VpDj2YHgxIc5izgvwJAJ/7k=";
+    hash = "sha256-nZDcSVHR8IKlGBa5ljd3MmgzUPvG7Hv76WRfXxMsndY=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     rns
   ];
diff --git a/pkgs/development/python-modules/maestral/default.nix b/pkgs/development/python-modules/maestral/default.nix
index 3e871a90562b..4645174e122f 100644
--- a/pkgs/development/python-modules/maestral/default.nix
+++ b/pkgs/development/python-modules/maestral/default.nix
@@ -62,7 +62,7 @@ buildPythonPackage rec {
   makeWrapperArgs = [
     # Add the installed directories to the python path so the daemon can find them
     "--prefix PYTHONPATH : ${makePythonPath propagatedBuildInputs}"
-    "--prefix PYTHONPATH : $out/lib/${python.libPrefix}/site-packages"
+    "--prefix PYTHONPATH : $out/${python.sitePackages}"
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/maison/default.nix b/pkgs/development/python-modules/maison/default.nix
index 79be6d7b5bc7..d28c5cc6c69d 100644
--- a/pkgs/development/python-modules/maison/default.nix
+++ b/pkgs/development/python-modules/maison/default.nix
@@ -6,25 +6,31 @@
 , pydantic
 , pytestCheckHook
 , pythonOlder
+, pythonRelaxDepsHook
 , toml
 }:
 
 buildPythonPackage rec {
   pname = "maison";
-  version = "1.4.2";
+  version = "1.4.3";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "dbatten5";
     repo = "maison";
     rev = "refs/tags/v${version}";
-    hash = "sha256-XNo7QS8BCYzkDozLW0T+KMQPI667lDTCFtOqKq9q3hw=";
+    hash = "sha256-2hUmk91wr5o2cV3un2nMoXDG+3GT7SaIOKY+QaZY3nw=";
   };
 
+  pythonRelaxDeps = [
+    "pydantic"
+  ];
+
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -47,6 +53,5 @@ buildPythonPackage rec {
     changelog = "https://github.com/dbatten5/maison/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
-    broken = versionAtLeast pydantic.version "2";
   };
 }
diff --git a/pkgs/development/python-modules/marisa-trie/default.nix b/pkgs/development/python-modules/marisa-trie/default.nix
index 8b069fd235a3..544e2196326f 100644
--- a/pkgs/development/python-modules/marisa-trie/default.nix
+++ b/pkgs/development/python-modules/marisa-trie/default.nix
@@ -4,7 +4,7 @@
 , cython
 , pytestCheckHook
 , hypothesis
-, readme_renderer
+, readme-renderer
 , pythonOlder
 }:
 
@@ -26,7 +26,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     pytestCheckHook
-    readme_renderer
+    readme-renderer
     hypothesis
   ];
 
diff --git a/pkgs/development/python-modules/marshmallow-polyfield/default.nix b/pkgs/development/python-modules/marshmallow-polyfield/default.nix
index 24d117eb322e..dfdb85ebf9c7 100644
--- a/pkgs/development/python-modules/marshmallow-polyfield/default.nix
+++ b/pkgs/development/python-modules/marshmallow-polyfield/default.nix
@@ -4,22 +4,32 @@
 , marshmallow
 , pythonOlder
 , pytestCheckHook
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "marshmallow-polyfield";
-  version = "5.10";
-  format = "setuptools";
+  version = "5.11";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "Bachmann1234";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-oF5LBuDK4kqsAcKwidju+wFjigjy4CNbJ6bfWpGO1yQ=";
+    repo = "marshmallow-polyfield";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-jbpeyih2Ccw1Rk+QcXRO9AfN5B/DhZmxa/M6FzXHqqs=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "--cov=marshmallow_polyfield" ""
+  '';
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     marshmallow
   ];
@@ -28,11 +38,6 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  postPatch = ''
-    substituteInPlace setup.cfg \
-      --replace "--cov=marshmallow_polyfield" ""
-  '';
-
   pythonImportsCheck = [
     "marshmallow"
   ];
diff --git a/pkgs/development/python-modules/marshmallow/default.nix b/pkgs/development/python-modules/marshmallow/default.nix
index bbe9c9bf157d..880e3c869aab 100644
--- a/pkgs/development/python-modules/marshmallow/default.nix
+++ b/pkgs/development/python-modules/marshmallow/default.nix
@@ -6,22 +6,27 @@
 , pytz
 , simplejson
 , packaging
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "marshmallow";
-  version = "3.20.1";
-  format = "setuptools";
+  version = "3.20.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "marshmallow-code";
-    repo = pname;
+    repo = "marshmallow";
     rev = "refs/tags/${version}";
-    hash = "sha256-sPYiup7ontnubtBxv+rIT0up4IHPJNCUlH9J4FlHsss=";
+    hash = "sha256-z6Quf6uTelGwB/uYayVXtVmculwaoI5LL8I0kKiM/e8=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     packaging
   ];
diff --git a/pkgs/development/python-modules/matplotlib/default.nix b/pkgs/development/python-modules/matplotlib/default.nix
index 1100d1bdbc99..8fb5c7c292cf 100644
--- a/pkgs/development/python-modules/matplotlib/default.nix
+++ b/pkgs/development/python-modules/matplotlib/default.nix
@@ -6,10 +6,8 @@
 , isPyPy
 , pythonOlder
 
-# https://github.com/matplotlib/matplotlib/blob/main/doc/devel/dependencies.rst
 # build-system
 , certifi
-, oldest-supported-numpy
 , pkg-config
 , pybind11
 , setuptools
@@ -109,19 +107,11 @@ buildPythonPackage rec {
       substituteInPlace src/_c_internal_utils.c \
         --replace libX11.so.6 ${libX11}/lib/libX11.so.6 \
         --replace libwayland-client.so.0 ${wayland}/lib/libwayland-client.so.0
-    '' +
-    # bring our own system libraries
-    # https://github.com/matplotlib/matplotlib/blob/main/doc/devel/dependencies.rst#c-libraries
-    ''
-      echo "[libs]
-      system_freetype=true
-      system_qhull=true" > mplsetup.cfg
     '';
 
   nativeBuildInputs = [
     certifi
     numpy
-    oldest-supported-numpy # TODO remove after updating to 3.8.0
     pkg-config
     pybind11
     setuptools
@@ -184,16 +174,17 @@ buildPythonPackage rec {
     libs = {
       system_freetype = true;
       system_qhull = true;
-    } // lib.optionalAttrs stdenv.isDarwin {
       # LTO not working in darwin stdenv, see #19312
-      enable_lto = false;
+      enable_lto = !stdenv.isDarwin;
     };
   };
 
   env.MPLSETUPCFG = writeText "mplsetup.cfg" (lib.generators.toINI {} passthru.config);
 
-  # Matplotlib needs to be built against a specific version of freetype in
-  # order for all of the tests to pass.
+  # Encountering a ModuleNotFoundError, as describved and investigated at:
+  # https://github.com/NixOS/nixpkgs/issues/255262 . It could be that some of
+  # which may fail due to a freetype version that doesn't match the freetype
+  # version used by upstream.
   doCheck = false;
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/meep/default.nix b/pkgs/development/python-modules/meep/default.nix
index d99b5c3e2e0c..70a588f1c8aa 100644
--- a/pkgs/development/python-modules/meep/default.nix
+++ b/pkgs/development/python-modules/meep/default.nix
@@ -113,7 +113,7 @@ buildPythonPackage rec {
   checkPhase = ''
     runHook preCheck
 
-    export PYTHONPATH="$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
+    export PYTHONPATH="$out/${python.sitePackages}:$PYTHONPATH"
 
     # Generate a python test script
     cat > test.py << EOF
diff --git a/pkgs/development/python-modules/memory-allocator/default.nix b/pkgs/development/python-modules/memory-allocator/default.nix
index bb9b7dd47509..90c75d0bb7fe 100644
--- a/pkgs/development/python-modules/memory-allocator/default.nix
+++ b/pkgs/development/python-modules/memory-allocator/default.nix
@@ -1,7 +1,7 @@
 { lib
 , fetchPypi
 , buildPythonPackage
-, cython
+, cython_3
 }:
 
 buildPythonPackage rec {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     hash = "sha256-E4BcKuHAG3SJ+rXo6sk2FmK08sAkEuNlLuzkj/aVMWI=";
   };
 
-  propagatedBuildInputs = [ cython ];
+  propagatedBuildInputs = [ cython_3 ];
 
   pythonImportsCheck = [ "memory_allocator" ];
 
diff --git a/pkgs/development/python-modules/meraki/default.nix b/pkgs/development/python-modules/meraki/default.nix
index c29543a21dac..53d44ee85d74 100644
--- a/pkgs/development/python-modules/meraki/default.nix
+++ b/pkgs/development/python-modules/meraki/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "meraki";
-  version = "1.41.0";
+  version = "1.42.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-aXcGMRqkiVPnLEYrzIMLDiFXWurBRNlMg4OnRd5jlrY=";
+    hash = "sha256-PZ875cjJUUE92aBoKfgQ3tY8tVN3ksB7nITc8MK0g+w=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/meshtastic/default.nix b/pkgs/development/python-modules/meshtastic/default.nix
index 27e243ff61b8..534623abccdd 100644
--- a/pkgs/development/python-modules/meshtastic/default.nix
+++ b/pkgs/development/python-modules/meshtastic/default.nix
@@ -1,4 +1,5 @@
 { lib
+, bleak
 , buildPythonPackage
 , dotmap
 , fetchFromGitHub
@@ -20,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "meshtastic";
-  version = "2.2.18";
+  version = "2.2.20";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -29,7 +30,7 @@ buildPythonPackage rec {
     owner = "meshtastic";
     repo = "Meshtastic-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-r3Hs3oD6CyYa/Ew0wMiLeUj/R4aa8Wc/W65EXMrPGmw=";
+    hash = "sha256-0q8omX306iM3p52u39Dc7m6oxAPo9Fs6CEVicYdIMT4=";
   };
 
   nativeBuildInputs = [
@@ -37,6 +38,7 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
+    bleak
     dotmap
     pexpect
     protobuf
diff --git a/pkgs/development/python-modules/meson-python/default.nix b/pkgs/development/python-modules/meson-python/default.nix
index 9d34cb27c8cd..deaab05a6574 100644
--- a/pkgs/development/python-modules/meson-python/default.nix
+++ b/pkgs/development/python-modules/meson-python/default.nix
@@ -48,6 +48,6 @@ buildPythonPackage rec {
     description = "Meson Python build backend (PEP 517)";
     homepage = "https://github.com/mesonbuild/meson-python";
     license = [ lib.licenses.mit ];
-    maintainers = [ lib.maintainers.fridh ];
+    maintainers = with lib.maintainers; [ fridh doronbehar ];
   };
 }
diff --git a/pkgs/development/python-modules/mf2py/default.nix b/pkgs/development/python-modules/mf2py/default.nix
index cd72dc7d40b9..ce50d3662f46 100644
--- a/pkgs/development/python-modules/mf2py/default.nix
+++ b/pkgs/development/python-modules/mf2py/default.nix
@@ -1,26 +1,34 @@
 { lib
+, beautifulsoup4
 , buildPythonPackage
 , fetchFromGitHub
-, beautifulsoup4
 , html5lib
-, requests
 , lxml
 , mock
-, nose
+, poetry-core
+, pytestCheckHook
+, pythonOlder
+, requests
 }:
 
 buildPythonPackage rec {
   pname = "mf2py";
-  version = "1.1.3";
-  format = "setuptools";
+  version = "2.0.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "microformats";
     repo = "mf2py";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Ya8DND1Dqbygbf1hjIGMlPwyc/MYIWIj+KnWB6Bqu1k=";
+    hash = "sha256-mhJ+s1rtXEJ6DqVmiyWNEK+3cdDLpR63Q4QGmD9wVio=";
   };
 
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
   propagatedBuildInputs = [
     beautifulsoup4
     html5lib
@@ -30,14 +38,17 @@ buildPythonPackage rec {
   nativeCheckInputs = [
     lxml
     mock
-    nose
+    pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "mf2py" ];
+  pythonImportsCheck = [
+    "mf2py"
+  ];
 
   meta = with lib; {
     description = "Microformats2 parser written in Python";
     homepage = "https://microformats.org/wiki/mf2py";
+    changelog = "https://github.com/microformats/mf2py/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ ambroisie ];
   };
diff --git a/pkgs/development/python-modules/mitmproxy/default.nix b/pkgs/development/python-modules/mitmproxy/default.nix
index 283208e3500e..62fe35f10390 100644
--- a/pkgs/development/python-modules/mitmproxy/default.nix
+++ b/pkgs/development/python-modules/mitmproxy/default.nix
@@ -45,7 +45,7 @@
 
 buildPythonPackage rec {
   pname = "mitmproxy";
-  version = "10.2.1";
+  version = "10.2.2";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -54,7 +54,7 @@ buildPythonPackage rec {
     owner = "mitmproxy";
     repo = "mitmproxy";
     rev = "refs/tags/${version}";
-    hash = "sha256-BO7oQ4TVuZ4dCtROq2M24V6HVo0jzyBdQfb67dYA07U=";
+    hash = "sha256-oxhpaFW++on3eRXm0anXZDRo6g/X5IflTcZkFF8Kcps=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/mkdocs-material/default.nix b/pkgs/development/python-modules/mkdocs-material/default.nix
index e8df6bbc8253..317271a10d55 100644
--- a/pkgs/development/python-modules/mkdocs-material/default.nix
+++ b/pkgs/development/python-modules/mkdocs-material/default.nix
@@ -32,7 +32,7 @@
 
 buildPythonPackage rec {
   pname = "mkdocs-material";
-  version = "9.4.14";
+  version = "9.5.6";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -41,7 +41,7 @@ buildPythonPackage rec {
     owner = "squidfunk";
     repo = "mkdocs-material";
     rev = "refs/tags/${version}";
-    hash = "sha256-oP0DeSRgoLx6boEOa3if5BitGXmJ11DoUVZK16Sjlwg=";
+    hash = "sha256-t+kS/MZ6kfga+LPSBj0h+vkY/u/bd3iqRUyOHXfrwDU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/mkdocs-swagger-ui-tag/default.nix b/pkgs/development/python-modules/mkdocs-swagger-ui-tag/default.nix
index 85687b1882ba..60fe20c468af 100644
--- a/pkgs/development/python-modules/mkdocs-swagger-ui-tag/default.nix
+++ b/pkgs/development/python-modules/mkdocs-swagger-ui-tag/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "mkdocs-swagger-ui-tag";
-  version = "0.6.7";
+  version = "0.6.8";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "Blueswen";
     repo = "mkdocs-swagger-ui-tag";
     rev = "refs/tags/v${version}";
-    hash = "sha256-lvE/mN56X2fx835GFNDYQc7ptxBYqwjrJ9Z6Flcvufg=";
+    hash = "sha256-TV7V1PttzyLeVQ/Ag/tMV2aqtCys1mlYpj6i0x+ko/w=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/mmengine/default.nix b/pkgs/development/python-modules/mmengine/default.nix
index a73d1fff7d35..dd4e9095325f 100644
--- a/pkgs/development/python-modules/mmengine/default.nix
+++ b/pkgs/development/python-modules/mmengine/default.nix
@@ -20,16 +20,16 @@
 
 buildPythonPackage rec {
   pname = "mmengine";
-  version = "0.10.1";
-  format = "setuptools";
+  version = "0.10.3";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "open-mmlab";
-    repo = pname;
+    repo = "mmengine";
     rev = "refs/tags/v${version}";
-    hash = "sha256-PG6KSoM5VUyU84z66eZknQfMhS4YWAmyWCIIpRwUOpU=";
+    hash = "sha256-fKtPDdeKB3vX2mD+Tsicq8KOkPDSACzKK1XLyugdPQ4=";
   };
 
   propagatedBuildInputs = [
@@ -54,6 +54,12 @@ buildPythonPackage rec {
 
   preCheck = ''
     export HOME=$TMPDIR
+  ''
+  # Otherwise, the backprop hangs forever. More precisely, this exact line:
+  # https://github.com/open-mmlab/mmengine/blob/02f80e8bdd38f6713e04a872304861b02157905a/tests/test_runner/test_activation_checkpointing.py#L46
+  # Solution suggested in https://github.com/pytorch/pytorch/issues/91547#issuecomment-1370011188
+  + ''
+    export MKL_NUM_THREADS=1
   '';
 
   pythonImportsCheck = [
@@ -77,6 +83,14 @@ buildPythonPackage rec {
     "test_lazy_import"
     # AssertionError
     "test_lazy_module"
+
+    # Require unpackaged aim
+    "test_experiment"
+    "test_add_config"
+    "test_add_image"
+    "test_add_scalar"
+    "test_add_scalars"
+    "test_close"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/mmh3/default.nix b/pkgs/development/python-modules/mmh3/default.nix
index 73f38bbca258..9aff484888ab 100644
--- a/pkgs/development/python-modules/mmh3/default.nix
+++ b/pkgs/development/python-modules/mmh3/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "mmh3";
-  version = "4.0.1";
+  version = "4.1.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-rYvmldxORKeWMXSLpVYtgD8KxC02prl6U6yoSnCAk4U=";
+    hash = "sha256-oc8lNIuazSKd2kZKCU1hcPR9KFCh/Ldio7YXLSzmyko=";
   };
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/mobi/default.nix b/pkgs/development/python-modules/mobi/default.nix
index 262e724a7b53..fae5b97bb114 100644
--- a/pkgs/development/python-modules/mobi/default.nix
+++ b/pkgs/development/python-modules/mobi/default.nix
@@ -39,6 +39,6 @@ buildPythonPackage rec {
     description = "Library for unpacking unencrypted mobi files";
     homepage = "https://github.com/iscc/mobi";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ paveloom ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/moderngl/default.nix b/pkgs/development/python-modules/moderngl/default.nix
index 917e688d23cd..f2ff8760f02e 100644
--- a/pkgs/development/python-modules/moderngl/default.nix
+++ b/pkgs/development/python-modules/moderngl/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "moderngl";
-  version = "5.9.0";
+  version = "5.10.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-R7yZYSwhSJuhL1Qcna4k526KSSgzBk6P7p6zuumlZJo=";
+    hash = "sha256-EZyNNk3ePNjRwJ8jftSRZhe6dZlUoZUt9GlOUe5PZRE=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/monai-deploy/default.nix b/pkgs/development/python-modules/monai-deploy/default.nix
index e3a4f2418d16..74b88ca8dc73 100644
--- a/pkgs/development/python-modules/monai-deploy/default.nix
+++ b/pkgs/development/python-modules/monai-deploy/default.nix
@@ -1,13 +1,14 @@
 { lib
 , buildPythonPackage
+, colorama
 , fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, pytest-lazy-fixture
-, numpy
 , networkx
+, numpy
 , pydicom
-, colorama
+, pytest-lazy-fixture
+, pytestCheckHook
+, pythonOlder
+, setuptools
 , typeguard
 , versioneer
 }:
@@ -29,10 +30,14 @@ buildPythonPackage rec {
   postPatch = ''
     # Asked in https://github.com/Project-MONAI/monai-deploy-app-sdk/issues/450
     # if this patch can be incorporated upstream.
-    substituteInPlace pyproject.toml --replace 'versioneer-518' 'versioneer'
+    substituteInPlace pyproject.toml \
+      --replace 'versioneer-518' 'versioneer'
   '';
 
-  nativeBuildInputs = [ versioneer ];
+  nativeBuildInputs = [
+    versioneer
+    setuptools
+  ];
 
   propagatedBuildInputs = [
     numpy
@@ -41,11 +46,16 @@ buildPythonPackage rec {
     typeguard
   ];
 
-  nativeCheckInputs = [ pytestCheckHook pytest-lazy-fixture ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    pytest-lazy-fixture
+  ];
+
   disabledTests = [
     # requires Docker daemon:
     "test_packager"
   ];
+
   pythonImportsCheck = [
     "monai.deploy"
     "monai.deploy.core"
@@ -57,7 +67,8 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Framework and tools to design, develop and verify AI applications in healthcare imaging";
     homepage = "https://monai.io/deploy.html";
+    changelog = "https://github.com/Project-MONAI/monai-deploy-app-sdk/blob/main/docs/source/release_notes/v${version}.md";
     license = licenses.asl20;
-    maintainers = [ maintainers.bcdarwin ];
+    maintainers = with maintainers; [ bcdarwin ];
   };
 }
diff --git a/pkgs/development/python-modules/monty/default.nix b/pkgs/development/python-modules/monty/default.nix
index 8e9ac1b408d2..80256a11bfdb 100644
--- a/pkgs/development/python-modules/monty/default.nix
+++ b/pkgs/development/python-modules/monty/default.nix
@@ -9,22 +9,24 @@
 , pytestCheckHook
 , pythonOlder
 , ruamel-yaml
+, setuptools
+, setuptools-scm
 , torch
 , tqdm
 }:
 
 buildPythonPackage rec {
   pname = "monty";
-  version = "2023.11.3";
-  format = "setuptools";
+  version = "2024.2.2";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "materialsvirtuallab";
-    repo = pname;
+    repo = "monty";
     rev = "refs/tags/v${version}";
-    hash = "sha256-SENrAHCCWYEMWqPQSy61E8bMYkCBJepK5otb7B7UGXA=";
+    hash = "sha256-tKt0IMUmx1WvnQ27PyeyEEGekOKGY33YX4af1/ipbk4=";
   };
 
   postPatch = ''
@@ -32,6 +34,11 @@ buildPythonPackage rec {
       --replace 'self.assertEqual("/usr/bin/find", which("/usr/bin/find"))' '#'
   '';
 
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
   propagatedBuildInputs = [
     msgpack
     ruamel-yaml
diff --git a/pkgs/development/python-modules/mpi4py/default.nix b/pkgs/development/python-modules/mpi4py/default.nix
index f41519c00112..deb54ab149be 100644
--- a/pkgs/development/python-modules/mpi4py/default.nix
+++ b/pkgs/development/python-modules/mpi4py/default.nix
@@ -25,11 +25,11 @@ buildPythonPackage rec {
   configurePhase = "";
 
   installPhase = ''
-    mkdir -p "$out/lib/${python.libPrefix}/site-packages"
-    export PYTHONPATH="$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
+    mkdir -p "$out/${python.sitePackages}"
+    export PYTHONPATH="$out/${python.sitePackages}:$PYTHONPATH"
 
     ${python}/bin/${python.executable} setup.py install \
-      --install-lib=$out/lib/${python.libPrefix}/site-packages \
+      --install-lib=$out/${python.sitePackages} \
       --prefix="$out"
 
     # --install-lib:
diff --git a/pkgs/development/python-modules/mplhep/default.nix b/pkgs/development/python-modules/mplhep/default.nix
index c39b24a17f31..e550285ccaac 100644
--- a/pkgs/development/python-modules/mplhep/default.nix
+++ b/pkgs/development/python-modules/mplhep/default.nix
@@ -16,12 +16,12 @@
 
 buildPythonPackage rec {
   pname = "mplhep";
-  version = "0.3.31";
+  version = "0.3.32";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-aZwazbDljRncB2p7qD95Cms0uQBU8tciUrXcKpsyVTM=";
+    hash = "sha256-xwlrMZLJKRW6iqMsDKS5BDqejADSk/qGOAnQDZ2fTPc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/msal-extensions/default.nix b/pkgs/development/python-modules/msal-extensions/default.nix
index 65894b665cf2..0c7fad002e89 100644
--- a/pkgs/development/python-modules/msal-extensions/default.nix
+++ b/pkgs/development/python-modules/msal-extensions/default.nix
@@ -1,46 +1,47 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
-, isPy27
-
-# pythonPackages
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
 , msal
-, pathlib2
 , portalocker
+, setuptools
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "msal-extensions";
-  version = "1.0.0";
-  format = "setuptools";
+  version = "1.1.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-xnarpWsMzjeD3htcXs/oKNuZgWeHUSbKS0fcZDZFE1Q=";
+  src = fetchFromGitHub {
+    owner = "AzureAD";
+    repo = "microsoft-authentication-extensions-for-python";
+    rev = "refs/tags/${version}";
+    hash = "sha256-ScInTvOgFxP5mgep5FRu6YZHPTtXhrcZGFE7Wdvcm4c=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     msal
     portalocker
-  ] ++ lib.optionals isPy27 [
-    pathlib2
   ];
 
-  # upstream doesn't update this requirement probably because they use pip
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "portalocker~=1.0" "portalocker"
-  '';
-
   # No tests found
   doCheck = false;
 
+  pythonImportsCheck = [
+    "msal_extensions"
+  ];
+
   meta = with lib; {
     description = "The Microsoft Authentication Library Extensions (MSAL-Extensions) for Python";
     homepage = "https://github.com/AzureAD/microsoft-authentication-extensions-for-python";
+    changelog = "https://github.com/AzureAD/microsoft-authentication-extensions-for-python/releases/tag/${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [
-      kamadorueda
-    ];
+    maintainers = with maintainers; [ kamadorueda ];
   };
 }
diff --git a/pkgs/development/python-modules/msal/default.nix b/pkgs/development/python-modules/msal/default.nix
index c489f5b75b2d..fb6eff799fbf 100644
--- a/pkgs/development/python-modules/msal/default.nix
+++ b/pkgs/development/python-modules/msal/default.nix
@@ -1,24 +1,31 @@
 { lib
+, cryptography
 , buildPythonPackage
 , fetchPypi
 , pyjwt
 , pythonOlder
 , requests
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "msal";
-  version = "1.25.0";
-  format = "setuptools";
+  version = "1.26.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-9EMp/bWfTwRMd5Fko0R0uKRK2eSUCvvEw6Oiu+kDJNk=";
+    hash = "sha256-IkdWB5/jOL6DhzdoK0n468IKh8HF7q9ZDarkUyuD3hU=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
+    cryptography
     pyjwt
     requests
   ]
diff --git a/pkgs/development/python-modules/msgspec/default.nix b/pkgs/development/python-modules/msgspec/default.nix
index 5af0adeb0300..6dac69d22db8 100644
--- a/pkgs/development/python-modules/msgspec/default.nix
+++ b/pkgs/development/python-modules/msgspec/default.nix
@@ -4,22 +4,27 @@
 , msgpack
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "msgspec";
-  version = "0.18.5";
-  format = "setuptools";
+  version = "0.18.6";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "jcrist";
-    repo = pname;
+    repo = "msgspec";
     rev = "refs/tags/${version}";
-    hash = "sha256-BcENL1vPCspzYdAHicC5AHs/7xZPWf+Yys37vKgbris=";
+    hash = "sha256-xqtV60saQNINPMpOnZRSDnicedPSPBUQwPSE5zJGrTo=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   # Requires libasan to be accessible
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/msoffcrypto-tool/default.nix b/pkgs/development/python-modules/msoffcrypto-tool/default.nix
index 4e28e2002452..4bc2e80642e6 100644
--- a/pkgs/development/python-modules/msoffcrypto-tool/default.nix
+++ b/pkgs/development/python-modules/msoffcrypto-tool/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "msoffcrypto-tool";
-  version = "5.2.0";
+  version = "5.3.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "nolze";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-9qhTGf4IE8PtTfshnqu2fcctznA+2bWH4jz0dmKtoOo=";
+    hash = "sha256-aQtEJyG0JGe4eSIRI4OUjJZNDBni6FFyJXXkbeiotSY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/msprime/default.nix b/pkgs/development/python-modules/msprime/default.nix
index 2ec32c255dfa..cf0f8abb22be 100644
--- a/pkgs/development/python-modules/msprime/default.nix
+++ b/pkgs/development/python-modules/msprime/default.nix
@@ -1,42 +1,32 @@
 { lib
 , buildPythonPackage
+, demes
 , fetchPypi
-, fetchpatch
-, oldest-supported-numpy
-, setuptools-scm
-, wheel
-, pythonOlder
 , gsl
-, numpy
 , newick
-, tskit
-, demes
-, pytestCheckHook
+, numpy
+, oldest-supported-numpy
 , pytest-xdist
+, pytestCheckHook
+, pythonOlder
 , scipy
+, setuptools-scm
+, tskit
+, wheel
 }:
 
 buildPythonPackage rec {
   pname = "msprime";
-  version = "1.2.0";
-  format = "pyproject";
+  version = "1.3.0";
+  pyproject = true;
+
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-YAJa2f0w2CenKubnYLbP8HodDhabLB2hAkyw/CPkp6o=";
+    hash = "sha256-eYjGHvlJXDZ+gu/J+52AI8PbKiB6ZEXUORlTrzxCbCk=";
   };
 
-  patches = [
-    # upstream patch fixes 2 failing unittests. remove on update
-    (fetchpatch {
-      name = "python311.patch";
-      url = "https://github.com/tskit-dev/msprime/commit/639125ec942cb898cf4a80638f229e11ce393fbc.patch";
-      hash = "sha256-peli4tdu8Bv21xIa5H8SRdfjQnTMO72IPFqybmSBSO8=";
-      includes = [ "tests/test_ancestry.py" ];
-    })
-  ];
-
   nativeBuildInputs = [
     gsl
     oldest-supported-numpy
@@ -60,10 +50,12 @@ buildPythonPackage rec {
     pytest-xdist
     scipy
   ];
+
   disabledTests = [
     "tests/test_ancestry.py::TestSimulator::test_debug_logging"
     "tests/test_ancestry.py::TestSimulator::test_debug_logging_dtw"
   ];
+
   disabledTestPaths = [
     "tests/test_demography.py"
     "tests/test_algorithms.py"
@@ -86,6 +78,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Simulate genealogical trees and genomic sequence data using population genetic models";
     homepage = "https://github.com/tskit-dev/msprime";
+    changelog = "https://github.com/tskit-dev/msprime/blob/${version}/CHANGELOG.md";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ alxsimon ];
   };
diff --git a/pkgs/development/python-modules/mujoco/default.nix b/pkgs/development/python-modules/mujoco/default.nix
index 881253845ed6..3586cec51f60 100644
--- a/pkgs/development/python-modules/mujoco/default.nix
+++ b/pkgs/development/python-modules/mujoco/default.nix
@@ -1,20 +1,23 @@
-{ buildPythonPackage
+{ absl-py
+, buildPythonPackage
 , cmake
+, etils
 , fetchPypi
 , glfw
 , lib
 , mujoco
 , numpy
 , perl
-, pkgs
 , pybind11
+, pyopengl
 , python
 , setuptools
+, stdenv
 }:
 
 buildPythonPackage rec {
   pname = "mujoco";
-  version = "3.1.0";
+  version = "3.1.1";
 
   pyproject = true;
 
@@ -24,13 +27,19 @@ buildPythonPackage rec {
   # in the project's CI.
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-rZNVihIuvNJnQWqA5tV9DG5r3/LttWNW6fN2js+fDb8=";
+    hash = "sha256-ESEnPeL79O0wnllEo9s50B84WyINIOeMRg7E78BpRbM=";
   };
 
   nativeBuildInputs = [ cmake setuptools ];
   dontUseCmakeConfigure = true;
   buildInputs = [ mujoco pybind11 ];
-  propagatedBuildInputs = [ glfw numpy ];
+  propagatedBuildInputs = [
+    absl-py
+    etils
+    glfw
+    numpy
+    pyopengl
+  ];
 
   pythonImportsCheck = [ "${pname}" ];
 
@@ -48,11 +57,15 @@ buildPythonPackage rec {
       # E.g. 3.11.2 -> "311"
       pythonVersionMajorMinor = with lib.versions;
         "${major python.pythonVersion}${minor python.pythonVersion}";
+
+      # E.g. "linux-aarch64"
+      platform = with stdenv.hostPlatform.parsed;
+        "${kernel.name}-${cpu.name}";
     in ''
       ${perl}/bin/perl -0777 -i -pe "s/GIT_REPO\n.*\n.*GIT_TAG\n.*\n//gm" mujoco/CMakeLists.txt
       ${perl}/bin/perl -0777 -i -pe "s/(FetchContent_Declare\(\n.*lodepng\n.*)(GIT_REPO.*\n.*GIT_TAG.*\n)(.*\))/\1\3/gm" mujoco/simulate/CMakeLists.txt
 
-      build="/build/${pname}-${version}/build/temp.linux-x86_64-cpython-${pythonVersionMajorMinor}/"
+      build="/build/${pname}-${version}/build/temp.${platform}-cpython-${pythonVersionMajorMinor}/"
       mkdir -p $build/_deps
       ln -s ${mujoco.pin.lodepng} $build/_deps/lodepng-src
       ln -s ${mujoco.pin.eigen3} $build/_deps/eigen-src
@@ -63,6 +76,7 @@ buildPythonPackage rec {
     description =
       "Python bindings for MuJoCo: a general purpose physics simulator.";
     homepage = "https://mujoco.org/";
+    changelog = "https://github.com/google-deepmind/mujoco/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ tmplt ];
   };
diff --git a/pkgs/development/python-modules/myjwt/default.nix b/pkgs/development/python-modules/myjwt/default.nix
index a54ab560a235..c310c7efe1a1 100644
--- a/pkgs/development/python-modules/myjwt/default.nix
+++ b/pkgs/development/python-modules/myjwt/default.nix
@@ -12,6 +12,7 @@
 , pytest-mock
 , pytestCheckHook
 , pythonOlder
+, pythonRelaxDepsHook
 , questionary
 , requests
 , requests-mock
@@ -20,7 +21,7 @@
 buildPythonPackage rec {
   pname = "myjwt";
   version = "1.6.1";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -33,12 +34,17 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "1.6.0" "${version}" \
-      --replace 'cryptography = "^39.0.2"' 'cryptography = "^39.0.0"'
+      --replace-warn "1.6.0" "${version}"
   '';
 
+  pythonRelaxDeps = [
+    "cryptography"
+    "questionary"
+  ];
+
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/mypy-boto3-builder/default.nix b/pkgs/development/python-modules/mypy-boto3-builder/default.nix
index d63e6f9791e5..a51b5df67c23 100644
--- a/pkgs/development/python-modules/mypy-boto3-builder/default.nix
+++ b/pkgs/development/python-modules/mypy-boto3-builder/default.nix
@@ -9,17 +9,19 @@
 , md-toc
 , mdformat
 , newversion
+, pip
 , poetry-core
 , pyparsing
 , pytestCheckHook
 , pythonOlder
 , setuptools
+, typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "mypy-boto3-builder";
-  version = "7.21.0";
-  format = "pyproject";
+  version = "7.23.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.10";
 
@@ -27,7 +29,7 @@ buildPythonPackage rec {
     owner = "youtype";
     repo = "mypy_boto3_builder";
     rev = "refs/tags/${version}";
-    hash = "sha256-lj9Jkp1AGWIAdGzakpt0BMnmdwe1Uf04PI9sMfEBTbw=";
+    hash = "sha256-dbf2rHDQSeHEIN31yIm1142Z7AxTZzMf9FGvrWsJblA=";
   };
 
   nativeBuildInputs = [
@@ -43,8 +45,10 @@ buildPythonPackage rec {
     md-toc
     mdformat
     newversion
+    pip
     pyparsing
     setuptools
+    typing-extensions
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/nameko/default.nix b/pkgs/development/python-modules/nameko/default.nix
new file mode 100644
index 000000000000..aec20b0f43e7
--- /dev/null
+++ b/pkgs/development/python-modules/nameko/default.nix
@@ -0,0 +1,71 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+
+# install_requires
+, dnspython
+, eventlet
+, kombu
+, mock
+, packaging
+, path
+, pyyaml
+, requests
+, setuptools
+, six
+, werkzeug
+, wrapt
+}:
+
+buildPythonPackage rec {
+  pname = "nameko";
+  version = "2.14.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-J1NXi7Tca5KAGuozTSkwuX37dEhucF7daRmDBqlGjIg=";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py --replace "path.py" "path"
+  '';
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    dnspython
+    eventlet
+    kombu
+    mock
+    packaging
+    path
+    pyyaml
+    requests
+    setuptools
+    six
+    werkzeug
+    wrapt
+  ];
+
+  # tests depend on RabbitMQ being installed - https://nameko.readthedocs.io/en/stable/contributing.html#running-the-tests
+  # and most of the tests are network based
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "nameko"
+  ];
+
+  meta = with lib; {
+    description = "A microservices framework that lets service developers concentrate on application logic and encourages testability";
+    homepage = "https://www.nameko.io/";
+    changelog = "https://github.com/nameko/nameko/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ siddharthdhakane ];
+  };
+}
diff --git a/pkgs/development/python-modules/napari-npe2/default.nix b/pkgs/development/python-modules/napari-npe2/default.nix
index 64659858258b..95ae7bfb39bb 100644
--- a/pkgs/development/python-modules/napari-npe2/default.nix
+++ b/pkgs/development/python-modules/napari-npe2/default.nix
@@ -13,6 +13,7 @@
 , pyyaml
 , rich
 , typer
+, tomli-w
 }:
 
 buildPythonPackage rec {
@@ -46,6 +47,7 @@ buildPythonPackage rec {
     pyyaml
     rich
     typer
+    tomli-w
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/napari-svg/default.nix b/pkgs/development/python-modules/napari-svg/default.nix
index 9150abfb252b..3094327dd422 100644
--- a/pkgs/development/python-modules/napari-svg/default.nix
+++ b/pkgs/development/python-modules/napari-svg/default.nix
@@ -3,6 +3,7 @@
 , fetchFromGitHub
 , imageio
 , napari-plugin-engine
+, numpy
 , pythonOlder
 , setuptools-scm
 , vispy
@@ -10,16 +11,16 @@
 
 buildPythonPackage rec {
   pname = "napari-svg";
-  version = "0.1.6";
-  format = "setuptools";
+  version = "0.1.10";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "napari";
-    repo = pname;
+    repo = "napari-svg";
     rev = "refs/tags/v${version}";
-    hash = "sha256-lvI6RWT9oUE95vL6WO75CASc/Z+1G5UMm2p8vhqIjA0=";
+    hash = "sha256-ywN9lUwBFW8zP7ivP7MNTYFbTCcmaZxAuKr056uY68Q=";
   };
 
   nativeBuildInputs = [
@@ -27,9 +28,10 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
-    vispy
-    napari-plugin-engine
     imageio
+    napari-plugin-engine
+    numpy
+    vispy
   ];
 
   # Circular dependency: napari
@@ -38,6 +40,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "A plugin for writing svg files from napari";
     homepage = "https://github.com/napari/napari-svg";
+    changelog = "https://github.com/napari/napari-svg/releases/tag/v${version}";
     license = licenses.bsd3;
     maintainers = with maintainers; [ SomeoneSerge ];
   };
diff --git a/pkgs/development/python-modules/nbconvert/default.nix b/pkgs/development/python-modules/nbconvert/default.nix
index 1242d018adad..f816abc1d740 100644
--- a/pkgs/development/python-modules/nbconvert/default.nix
+++ b/pkgs/development/python-modules/nbconvert/default.nix
@@ -32,14 +32,14 @@ let
   };
 in buildPythonPackage rec {
   pname = "nbconvert";
-  version = "7.14.1";
+  version = "7.14.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-IMuhDgRI3Hazvr/hrfkjZj47mDONr3e5e0JRHvWohhg=";
+    hash = "sha256-p/iAj9TggkMWc6xThAAhjdRe/QdvvrB8xuWqWjpOlJ4=";
   };
 
   # Add $out/share/jupyter to the list of paths that are used to search for
diff --git a/pkgs/development/python-modules/ndeflib/default.nix b/pkgs/development/python-modules/ndeflib/default.nix
index 3699955627ec..165aed8942df 100644
--- a/pkgs/development/python-modules/ndeflib/default.nix
+++ b/pkgs/development/python-modules/ndeflib/default.nix
@@ -2,13 +2,15 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pytestCheckHook
+, pythonAtLeast
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "ndeflib";
   version = "0.3.3";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -19,6 +21,10 @@ buildPythonPackage rec {
     hash = "sha256-cpfztE+/AW7P0J7QeTDfVGYc2gEkr7gzA352hC9bdTM=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   nativeCheckInputs = [
     pytestCheckHook
   ];
@@ -30,11 +36,14 @@ buildPythonPackage rec {
   disabledTests = [
     # AssertionError caused due to wrong size
     "test_decode_error"
+  ] ++ lib.optionals (pythonAtLeast "3.12") [
+    "test_encode_error"
   ];
 
   meta = with lib; {
     description = "Python package for parsing and generating NFC Data Exchange Format messages";
     homepage = "https://github.com/nfcpy/ndeflib";
+    changelog = "https://github.com/nfcpy/ndeflib/releases/tag/v${version}";
     license = licenses.isc;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/neo/default.nix b/pkgs/development/python-modules/neo/default.nix
index 3db12e647838..d23d2fdc57ed 100644
--- a/pkgs/development/python-modules/neo/default.nix
+++ b/pkgs/development/python-modules/neo/default.nix
@@ -6,20 +6,23 @@
 , packaging
 , quantities
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "neo";
-  version = "0.12.0";
-  format = "setuptools";
+  version = "0.13.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-O2yk/AXf206VPiU+cJlL+7yP4ukJWPvaf6WGDK8/pjo=";
+    hash = "sha256-VnXR+jgaU8LH7ri16SnsA5neILsLUkU+G5nsbWbckfM=";
   };
 
+  nativeBuildInputs = [ setuptools ];
+
   propagatedBuildInputs = [
     numpy
     packaging
diff --git a/pkgs/development/python-modules/neo4j/default.nix b/pkgs/development/python-modules/neo4j/default.nix
index 5215da38339c..4db2398c25b5 100644
--- a/pkgs/development/python-modules/neo4j/default.nix
+++ b/pkgs/development/python-modules/neo4j/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "neo4j";
-  version = "5.16.0";
+  version = "5.17.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "neo4j";
     repo = "neo4j-python-driver";
     rev = "refs/tags/${version}";
-    hash = "sha256-ly/R2ufd5gEkUyfajpeMQblTiKipC9HFtxkWkh16zLo=";
+    hash = "sha256-BZo4TzFrH1ATl09zRXy+1AFJSBopmByDHe7oITZy7pA=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/niaaml/default.nix b/pkgs/development/python-modules/niaaml/default.nix
index 4a4f175a8943..bc5d712913b8 100644
--- a/pkgs/development/python-modules/niaaml/default.nix
+++ b/pkgs/development/python-modules/niaaml/default.nix
@@ -5,28 +5,34 @@
 , numpy
 , pandas
 , poetry-core
-, scikit-learn
-, toml-adapt
 , pytestCheckHook
 , pythonOlder
+, pythonRelaxDepsHook
+, scikit-learn
+, toml-adapt
 }:
 
 buildPythonPackage rec {
   pname = "niaaml";
   version = "1.1.12";
-  format = "pyproject";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "lukapecnik";
     repo = "NiaAML";
-    rev = version;
+    rev = "refs/tags/${version}";
     hash = "sha256-GAUXEkUOD04DQtRG/RAeeeLmenBd25h18Lmrxbm4X3A=";
   };
 
+  pythonRelaxDeps = [
+    "pandas"
+  ];
+
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
     toml-adapt
   ];
 
@@ -54,6 +60,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python automated machine learning framework";
     homepage = "https://github.com/lukapecnik/NiaAML";
+    changelog = "https://github.com/lukapecnik/NiaAML/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ firefly-cpp ];
   };
diff --git a/pkgs/development/python-modules/niaarm/default.nix b/pkgs/development/python-modules/niaarm/default.nix
index 3b0399365613..e69bdd6169f7 100644
--- a/pkgs/development/python-modules/niaarm/default.nix
+++ b/pkgs/development/python-modules/niaarm/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "niaarm";
-  version = "0.3.5";
+  version = "0.3.6";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "firefly-cpp";
     repo = "NiaARM";
     rev = "refs/tags/${version}";
-    hash = "sha256-E5G1uVDSErqwxTBNQ7qselemW9A3W8sr3ExPEh+1les=";
+    hash = "sha256-DOTeo5ZPZQR56E78pAKQ3DXarIUHhxXoZu0fISDr6fw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/niaclass/default.nix b/pkgs/development/python-modules/niaclass/default.nix
index 89d8ae746aed..eca766c67a0f 100644
--- a/pkgs/development/python-modules/niaclass/default.nix
+++ b/pkgs/development/python-modules/niaclass/default.nix
@@ -5,28 +5,34 @@
 , numpy
 , pandas
 , poetry-core
-, scikit-learn
-, toml-adapt
 , pytestCheckHook
 , pythonOlder
+, pythonRelaxDepsHook
+, scikit-learn
+, toml-adapt
 }:
 
 buildPythonPackage rec {
   pname = "niaclass";
   version = "0.1.4";
-  format = "pyproject";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "lukapecnik";
     repo = "NiaClass";
     rev = "refs/tags/${version}";
-    sha256 = "sha256-md1e/cOIOQKoB760E5hjzjCsC5tS1CzgqAPTeVtrmuo=";
+    hash = "sha256-md1e/cOIOQKoB760E5hjzjCsC5tS1CzgqAPTeVtrmuo=";
   };
 
+  pythonRelaxDeps = [
+    "pandas"
+  ];
+
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
     toml-adapt
   ];
 
@@ -42,7 +48,7 @@ buildPythonPackage rec {
     toml-adapt -path pyproject.toml -a change -dep scikit-learn -ver X
   '';
 
-  checkInputs = [
+  nativeCheckInputs = [
     pytestCheckHook
   ];
 
@@ -53,6 +59,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "A framework for solving classification tasks using Nature-inspired algorithms";
     homepage = "https://github.com/lukapecnik/NiaClass";
+    changelog = "https://github.com/lukapecnik/NiaClass/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ firefly-cpp ];
   };
diff --git a/pkgs/development/python-modules/nianet/default.nix b/pkgs/development/python-modules/nianet/default.nix
index 4adca2e5b701..d91f278a5906 100644
--- a/pkgs/development/python-modules/nianet/default.nix
+++ b/pkgs/development/python-modules/nianet/default.nix
@@ -9,26 +9,27 @@
 , pythonOlder
 , scikit-learn
 , toml-adapt
+, tomli
 , torch
 }:
 
 buildPythonPackage rec {
   pname = "nianet";
   version = "1.1.4";
-  format = "pyproject";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "SasoPavlic";
-    repo = pname;
-    rev = "version_${version}";
+    repo = "nianet";
+    rev = "refs/tags/version_${version}";
     sha256 = "sha256-FZipl6Z9AfiL6WH0kvUn8bVxt8JLdDVlmTSqnyxe0nY=";
   };
 
   nativeBuildInputs = [
-    toml-adapt
     poetry-core
+    toml-adapt
   ];
 
   propagatedBuildInputs = [
@@ -44,8 +45,9 @@ buildPythonPackage rec {
     toml-adapt -path pyproject.toml -a change -dep torch -ver X
   '';
 
-  checkInputs = [
+  nativeCheckInputs = [
     pytestCheckHook
+    tomli
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/nibabel/default.nix b/pkgs/development/python-modules/nibabel/default.nix
index 34066a583646..3bccab344741 100644
--- a/pkgs/development/python-modules/nibabel/default.nix
+++ b/pkgs/development/python-modules/nibabel/default.nix
@@ -20,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "nibabel";
-  version = "5.1.0";
-  format = "pyproject";
+  version = "5.2.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-znPKXpVyCechmiI8tx93I1yd8qz00/J/hhujjpSBrFM=";
+    hash = "sha256-Pfjxq5gdG9kvQzHVZVKNEmq5cX/b1M/mj0P80cK/P1I=";
   };
 
   nativeBuildInputs = [
@@ -77,13 +77,9 @@ buildPythonPackage rec {
     export PATH=$out/bin:$PATH
   '';
 
-  disabledTests = [
-    # https://github.com/nipy/nibabel/issues/951
-    "test_filenames"
-  ];
-
   meta = with lib; {
     homepage = "https://nipy.org/nibabel";
+    changelog = "https://github.com/nipy/nibabel/blob/${version}/Changelog";
     description = "Access a multitude of neuroimaging data formats";
     license = licenses.mit;
     maintainers = with maintainers; [ ashgillman ];
diff --git a/pkgs/development/python-modules/nipreps-versions/default.nix b/pkgs/development/python-modules/nipreps-versions/default.nix
new file mode 100644
index 000000000000..1c54ab9d905e
--- /dev/null
+++ b/pkgs/development/python-modules/nipreps-versions/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, flit-scm
+, packaging
+, setuptools-scm
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "nipreps-versions";
+  version = "1.0.4";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "nipreps";
+    repo = "version-schemes";
+    rev = "refs/tags/${version}";
+    hash = "sha256-B2wtLurzgk59kTooH51a2dewK7aEyA0dAm64Wp+tqhM=";
+  };
+
+  env.SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    flit-scm
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    packaging
+  ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+  pythonImportsCheck = [ "nipreps_versions" ];
+
+  meta = with lib; {
+    description = "Setuptools_scm plugin for nipreps version schemes";
+    homepage = "https://github.com/nipreps/version-schemes";
+    changelog = "https://github.com/nipreps/version-schemes/blob/${src.rev}/CHANGES.md";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/pkgs/development/python-modules/niworkflows/default.nix b/pkgs/development/python-modules/niworkflows/default.nix
new file mode 100644
index 000000000000..494a834c937a
--- /dev/null
+++ b/pkgs/development/python-modules/niworkflows/default.nix
@@ -0,0 +1,101 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, hatch-vcs
+, hatchling
+, pytestCheckHook
+, attrs
+, importlib-resources
+, jinja2
+, looseversion
+, matplotlib
+, nibabel
+, nilearn
+, nipype
+, nitransforms
+, numpy
+, packaging
+, pandas
+, pybids
+, pyyaml
+, scikit-image
+, scipy
+, seaborn
+, svgutils
+, templateflow
+, traits
+, transforms3d
+}:
+
+buildPythonPackage rec {
+  pname = "niworkflows";
+  version = "1.10.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "nipreps";
+    repo = "niworkflows";
+    rev = "refs/tags/${version}";
+    hash = "sha256-wQPk9imDvomg+NTWk+VeW1TE2QlvMyi1YYVVaznhktU=";
+  };
+
+  postPatch = ''
+    substituteInPlace pyproject.toml --replace '"traits < 6.4"' '"traits"'
+  '';
+
+  nativeBuildInputs = [
+    hatch-vcs
+    hatchling
+  ];
+
+  propagatedBuildInputs = [
+    attrs
+    importlib-resources
+    jinja2
+    looseversion
+    matplotlib
+    nibabel
+    nilearn
+    nipype
+    nitransforms
+    numpy
+    packaging
+    pandas
+    pybids
+    pyyaml
+    scikit-image
+    scipy
+    seaborn
+    svgutils
+    templateflow
+    traits
+    transforms3d
+  ];
+
+  env.SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeCheckInputs = [ pytestCheckHook ];
+  preCheck = ''export HOME=$(mktemp -d)'';
+  pytestFlagsArray = [ "niworkflows" ];
+  # try to download data:
+  disabledTests = [
+    "test_GenerateCifti"
+    "ROIsPlot"
+    "ROIsPlot2"
+    "test_SimpleShowMaskRPT"
+    "test_cifti_surfaces_plot"
+    "niworkflows.utils.misc.get_template_specs"
+    "niworkflows.interfaces.cifti._prepare_cifti"
+  ];
+  disabledTestPaths = [ "niworkflows/tests/test_registration.py" ];
+
+  pythonImportsCheck = [ "niworkflows" ];
+
+  meta = with lib; {
+    description = "Common workflows for MRI (anatomical, functional, diffusion, etc.)";
+    homepage = "https://github.com/nipreps/niworkflows";
+    changelog = "https://github.com/nipreps/niworkflows/blob/${src.rev}/CHANGES.rst";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/pkgs/development/python-modules/nomadnet/default.nix b/pkgs/development/python-modules/nomadnet/default.nix
index 68160474f078..19488765269b 100644
--- a/pkgs/development/python-modules/nomadnet/default.nix
+++ b/pkgs/development/python-modules/nomadnet/default.nix
@@ -1,17 +1,18 @@
 { lib
 , buildPythonPackage
-, rns
 , fetchFromGitHub
 , lxmf
-, urwid
 , pythonOlder
 , qrcode
+, rns
+, setuptools
+, urwid
 }:
 
 buildPythonPackage rec {
   pname = "nomadnet";
-  version = "0.4.4";
-  format = "setuptools";
+  version = "0.4.5";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -19,9 +20,13 @@ buildPythonPackage rec {
     owner = "markqvist";
     repo = "NomadNet";
     rev = "refs/tags/${version}";
-    hash = "sha256-k2KJSqOIBU1UwcmNgLek+XVI/C1YwOlAg+l/XJvTx5E=";
+    hash = "sha256-+w/Earu76mMJFp8ALvaDEkZOGJqlKbO7jfpW/xxvd1o=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     rns
     lxmf
diff --git a/pkgs/development/python-modules/nose2/default.nix b/pkgs/development/python-modules/nose2/default.nix
index 28dd8df3e263..de96b74709ed 100644
--- a/pkgs/development/python-modules/nose2/default.nix
+++ b/pkgs/development/python-modules/nose2/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "nose2";
-  version = "0.14.0";
+  version = "0.14.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-XCjXcKC5pwKGK9bDdVuizS95lN1RjJguXOKY1/N0ZqQ=";
+    hash = "sha256-f48Dohyd4sMwFZM6/O9yv45KLV3+w7QAkih95uQbCTo=";
   };
 
   nativeBuildInputs = [
@@ -45,13 +45,8 @@ buildPythonPackage rec {
     unittestCheckHook
   ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
 
-  preCheck = ''
-    # https://github.com/nose-devs/nose2/issues/588
-    substituteInPlace nose2/tests/functional/test_junitxml_plugin.py \
-      --replace "test_skip_reason_in_message" "dont_test_skip_reason_in_message"
-  '';
-
   meta = with lib; {
+    changelog = "https://github.com/nose-devs/nose2/blob/${version}/docs/changelog.rst";
     description = "Test runner for Python";
     homepage = "https://github.com/nose-devs/nose2";
     license = licenses.bsd0;
diff --git a/pkgs/development/python-modules/notebook/default.nix b/pkgs/development/python-modules/notebook/default.nix
index e26ec900682a..10b02d1bb620 100644
--- a/pkgs/development/python-modules/notebook/default.nix
+++ b/pkgs/development/python-modules/notebook/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "notebook";
-  version = "7.0.6";
+  version = "7.0.7";
   disabled = pythonOlder "3.8";
 
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-7GETsGUpAZ9/KHgZrwbJeiuvepWsIaj24yGSiY6fmlg=";
+    hash = "sha256-O8/wDBezrBQu9fQ21QY32TaydM+gtB9qwBdTY96bTgk=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/nototools/default.nix b/pkgs/development/python-modules/nototools/default.nix
index 1b515b486f5f..4b20eba21b0a 100644
--- a/pkgs/development/python-modules/nototools/default.nix
+++ b/pkgs/development/python-modules/nototools/default.nix
@@ -7,15 +7,15 @@
 
 buildPythonPackage rec {
   pname = "nototools";
-  version = "0.2.17";
+  version = "0.2.19";
 
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "googlefonts";
     repo = "nototools";
-    rev = "v${version}";
-    sha256 = "0jxydivqzggirc31jv7b4mrsjkg646zmra5m4h0pk4amgy65rvyp";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-anAz+5PIhGhpFunjV2EVk2CrbXq2U0e+LINYUnS0IKU=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/ocrmypdf/default.nix b/pkgs/development/python-modules/ocrmypdf/default.nix
index 1104bcc02f82..9b4e1d0287eb 100644
--- a/pkgs/development/python-modules/ocrmypdf/default.nix
+++ b/pkgs/development/python-modules/ocrmypdf/default.nix
@@ -25,15 +25,14 @@
 , tqdm
 , typing-extensions
 , unpaper
-, wheel
 , installShellFiles
 }:
 
 buildPythonPackage rec {
   pname = "ocrmypdf";
-  version = "15.4.4";
+  version = "16.0.4";
 
-  disabled = pythonOlder "3.9";
+  disabled = pythonOlder "3.10";
 
   pyproject = true;
 
@@ -47,7 +46,7 @@ buildPythonPackage rec {
     postFetch = ''
       rm "$out/.git_archival.txt"
     '';
-    hash = "sha256-Ff0OrSJFglVPpSNB0KvDMnatj+P57zWdcVAFaM+Sg0s=";
+    hash = "sha256-1Bg1R8c5VtJsd8NHd+WWdJRA39Jjgv9JUMcijZm942o=";
   };
 
   patches = [
@@ -64,7 +63,6 @@ buildPythonPackage rec {
   nativeBuildInputs = [
     setuptools
     setuptools-scm
-    wheel
     installShellFiles
   ];
 
diff --git a/pkgs/development/python-modules/oelint-parser/default.nix b/pkgs/development/python-modules/oelint-parser/default.nix
index 3b9afa0d6c93..eb3e76a5e518 100644
--- a/pkgs/development/python-modules/oelint-parser/default.nix
+++ b/pkgs/development/python-modules/oelint-parser/default.nix
@@ -2,23 +2,27 @@
 , nix-update-script
 , fetchPypi
 , buildPythonPackage
+, deprecated
 , regex
 , pip
 }:
 
 buildPythonPackage rec {
   pname = "oelint-parser";
-  version = "2.13.11";
+  version = "3.1.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit version;
     pname = "oelint_parser";
-    hash = "sha256-Hr+2S4AGx0W+rrMFdAlN7/OcDTFYivZVYknD/sHWMDs=";
+    hash = "sha256-uR90Af/3E8YVZ2ALSVFOkTr59iVw5NkLOnQBm4Us1vk=";
   };
 
   buildInputs = [ pip ];
-  propagatedBuildInputs = [ regex ];
+  propagatedBuildInputs = [
+    deprecated
+    regex
+  ];
   pythonImportsCheck = [ "oelint_parser" ];
 
   # Fail to run inside the code the build.
diff --git a/pkgs/development/python-modules/onnx/default.nix b/pkgs/development/python-modules/onnx/default.nix
index 810ddbf62cf2..7d5e27138ecc 100644
--- a/pkgs/development/python-modules/onnx/default.nix
+++ b/pkgs/development/python-modules/onnx/default.nix
@@ -7,13 +7,16 @@
 , nbval
 , numpy
 , parameterized
-, protobuf
+, protobuf_21
 , pybind11
 , pytestCheckHook
 , pythonOlder
 , tabulate
 , typing-extensions
 , abseil-cpp
+, google-re2
+, pillow
+, protobuf
 }:
 
 let
@@ -39,9 +42,13 @@ in buildPythonPackage rec {
 
   buildInputs = [
     abseil-cpp
+    protobuf
+    google-re2
+    pillow
   ];
 
   propagatedBuildInputs = [
+    protobuf_21
     protobuf
     numpy
     typing-extensions
@@ -66,10 +73,6 @@ in buildPythonPackage rec {
       --replace 'include(googletest)' ""
     substituteInPlace cmake/unittest.cmake \
       --replace 'googletest)' ')'
-  '' + ''
-      # remove this override in 1.15 that will enable to set the CMAKE_CXX_STANDARD with cmakeFlags
-      substituteInPlace CMakeLists.txt \
-        --replace 'CMAKE_CXX_STANDARD 11' 'CMAKE_CXX_STANDARD 17'
   '';
 
   preConfigure = ''
diff --git a/pkgs/development/python-modules/openai/default.nix b/pkgs/development/python-modules/openai/default.nix
index f2b0ea86006f..9093bfe73b5d 100644
--- a/pkgs/development/python-modules/openai/default.nix
+++ b/pkgs/development/python-modules/openai/default.nix
@@ -2,7 +2,6 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
-, pythonRelaxDepsHook
 , hatchling
 # propagated
 , httpx
@@ -11,6 +10,7 @@
 , anyio
 , distro
 , sniffio
+, cached-property
 , tqdm
 # optional
 , numpy
@@ -26,38 +26,32 @@
 
 buildPythonPackage rec {
   pname = "openai";
-  version = "1.7.1";
+  version = "1.10.0";
   pyproject = true;
 
-
   disabled = pythonOlder "3.7.1";
 
   src = fetchFromGitHub {
     owner = "openai";
     repo = "openai-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-NXZ+7gDA3gMGSrmgceHxcR45LrXdazXbYuhcoUsNXew=";
+    hash = "sha256-VffgHJLsfnT3xqELV7Ze1o1rqohKxscC3SDthP8TwzI=";
   };
 
   nativeBuildInputs = [
     hatchling
-    pythonRelaxDepsHook
-  ];
-
-  pythonRelaxDeps = [
-    # https://github.com/openai/openai-python/issues/921
-    "anyio"
   ];
 
   propagatedBuildInputs = [
     httpx
     pydantic
+    typing-extensions
     anyio
     distro
     sniffio
     tqdm
   ] ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
+    cached-property
   ];
 
   passthru.optional-dependencies = {
@@ -80,15 +74,13 @@ buildPythonPackage rec {
     dirty-equals
   ];
 
-  pytestFlagsArray = [
-    "-W" "ignore::DeprecationWarning"
+  disabledTests = [
+    # makes network requests
+    "test_streaming_response"
   ];
 
-  OPENAI_API_KEY = "sk-foo";
-
   disabledTestPaths = [
     # makes network requests
-    "tests/test_client.py"
     "tests/api_resources"
   ];
 
diff --git a/pkgs/development/python-modules/openerz-api/default.nix b/pkgs/development/python-modules/openerz-api/default.nix
index 7fe8de134b48..698816a62620 100644
--- a/pkgs/development/python-modules/openerz-api/default.nix
+++ b/pkgs/development/python-modules/openerz-api/default.nix
@@ -4,23 +4,28 @@
 , pytestCheckHook
 , pythonOlder
 , requests
+, setuptools
 , testfixtures
 }:
 
 buildPythonPackage rec {
   pname = "openerz-api";
-  version = "0.2.0";
-  format = "setuptools";
+  version = "0.3.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "misialq";
-    repo = pname;
+    repo = "openerz-api";
     rev = "refs/tags/v${version}";
-    hash = "sha256-6q0mKWyTTlNJ/DCeAsck1meM5dQovYBcV2EqmjlABvc=";
+    hash = "sha256-CwK61StspZJt0TALv76zfibUzlriwp9HRoYOtX9bU+c=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     requests
   ];
@@ -34,11 +39,6 @@ buildPythonPackage rec {
     "openerz_api"
   ];
 
-  disabledTests = [
-    # Assertion issue
-    "test_sensor_make_api_request"
-  ];
-
   meta = with lib; {
     description = "Python module to interact with the OpenERZ API";
     homepage = "https://github.com/misialq/openerz-api";
diff --git a/pkgs/development/python-modules/openpyxl/default.nix b/pkgs/development/python-modules/openpyxl/default.nix
index 82af53c55119..94252131d9a0 100644
--- a/pkgs/development/python-modules/openpyxl/default.nix
+++ b/pkgs/development/python-modules/openpyxl/default.nix
@@ -1,22 +1,20 @@
 { lib
 , buildPythonPackage
-, fetchFromGitLab
-, pythonOlder
-
-# dependencies
 , et-xmlfile
-
-# tests
+, fetchFromGitLab
 , lxml
 , pandas
 , pillow
 , pytestCheckHook
+, pythonAtLeast
+, pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "openpyxl";
   version = "3.1.2";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -24,10 +22,14 @@ buildPythonPackage rec {
     domain = "foss.heptapod.net";
     owner = "openpyxl";
     repo = "openpyxl";
-    rev = version;
+    rev = "refs/tags/${version}";
     hash = "sha256-SWRbjA83AOLrfe6on2CSb64pH5EWXkfyYcTqWJNBEP0=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     et-xmlfile
   ];
@@ -40,20 +42,29 @@ buildPythonPackage rec {
   ];
 
   pytestFlagsArray = [
-    # broken since lxml 2.12; https://foss.heptapod.net/openpyxl/openpyxl/-/issues/2116
-    "--deselect=openpyxl/chart/tests/test_reader.py::test_read"
-    "--deselect=openpyxl/comments/tests/test_comment_reader.py::test_read_comments"
-    "--deselect=openpyxl/drawing/tests/test_spreadsheet_drawing.py::TestSpreadsheetDrawing::test_ignore_external_blip"
-    "--deselect=openpyxl/packaging/tests/test_manifest.py::TestManifest::test_from_xml"
-    "--deselect=openpyxl/packaging/tests/test_manifest.py::TestManifest::test_filenames"
-    "--deselect=openpyxl/packaging/tests/test_manifest.py::TestManifest::test_exts"
-    "--deselect=openpyxl/styles/tests/test_stylesheet.py::TestStylesheet::test_from_complex"
-    "--deselect=openpyxl/styles/tests/test_stylesheet.py::TestStylesheet::test_merge_named_styles"
-    "--deselect=openpyxl/styles/tests/test_stylesheet.py::TestStylesheet::test_unprotected_cell"
-    "--deselect=openpyxl/styles/tests/test_stylesheet.py::TestStylesheet::test_none_values"
-    "--deselect=openpyxl/styles/tests/test_stylesheet.py::TestStylesheet::test_rgb_colors"
-    "--deselect=openpyxl/styles/tests/test_stylesheet.py::TestStylesheet::test_named_styles"
-    "--deselect=openpyxl/workbook/external_link/tests/test_external.py::test_read_ole_link"
+    "-W"
+    "ignore::DeprecationWarning"
+  ];
+  disabledTests = [
+    # Tests broken since lxml 2.12; https://foss.heptapod.net/openpyxl/openpyxl/-/issues/2116
+    "test_read"
+    "test_read_comments"
+    "test_ignore_external_blip"
+    "test_from_xml"
+    "test_filenames"
+    "test_exts"
+    "test_from_complex"
+    "test_merge_named_styles"
+    "test_unprotected_cell"
+    "test_none_values"
+    "test_rgb_colors"
+    "test_named_styles"
+    "test_read_ole_link"
+  ] ++ lib.optionals (pythonAtLeast "3.11") [
+    "test_broken_sheet_ref"
+    "test_name_invalid_index"
+    "test_defined_names_print_area"
+    "test_no_styles"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/openstacksdk/default.nix b/pkgs/development/python-modules/openstacksdk/default.nix
index 6ad0aeca07d9..1dca33bba9e1 100644
--- a/pkgs/development/python-modules/openstacksdk/default.nix
+++ b/pkgs/development/python-modules/openstacksdk/default.nix
@@ -19,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "openstacksdk";
-  version = "2.0.0";
+  version = "2.1.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-aXy2JRXFSNO3/Fyz+GXiebkw05433OsR2HH4H5+lkeg=";
+    hash = "sha256-dsm3QKLNYl/MbpJBYU7vKgk0y3I1SlxYcWj4+t7y5nQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/opentelemetry-api/default.nix b/pkgs/development/python-modules/opentelemetry-api/default.nix
index 72957901af41..5b59d43e7816 100644
--- a/pkgs/development/python-modules/opentelemetry-api/default.nix
+++ b/pkgs/development/python-modules/opentelemetry-api/default.nix
@@ -14,7 +14,7 @@
 let
   self = buildPythonPackage rec {
     pname = "opentelemetry-api";
-    version = "1.21.0";
+    version = "1.22.0";
     disabled = pythonOlder "3.7";
 
     # to avoid breakage, every package in opentelemetry-python must inherit this version, src, and meta
@@ -22,7 +22,7 @@ let
       owner = "open-telemetry";
       repo = "opentelemetry-python";
       rev = "refs/tags/v${version}";
-      hash = "sha256-igG0oHRa6M4d7pMp7fgBo13x5XADZeYgFAL8WzDXsyw=";
+      hash = "sha256-6BmBmooVaH1FOpgXpFlYth0r9XaNtmb9UezeP8hWEok=";
     };
 
     sourceRoot = "${src.name}/opentelemetry-api";
diff --git a/pkgs/development/python-modules/opentelemetry-instrumentation-flask/default.nix b/pkgs/development/python-modules/opentelemetry-instrumentation-flask/default.nix
new file mode 100644
index 000000000000..71860dd8fd74
--- /dev/null
+++ b/pkgs/development/python-modules/opentelemetry-instrumentation-flask/default.nix
@@ -0,0 +1,45 @@
+{ buildPythonPackage
+, flask
+, hatchling
+, opentelemetry-api
+, opentelemetry-instrumentation
+, opentelemetry-instrumentation-wsgi
+, opentelemetry-semantic-conventions
+, opentelemetry-test-utils
+, opentelemetry-util-http
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage {
+  inherit (opentelemetry-instrumentation) version src;
+  pname = "opentelemetry-instrumentation-flask";
+  disabled = pythonOlder "3.7";
+
+  sourceRoot = "${opentelemetry-instrumentation.src.name}/instrumentation/opentelemetry-instrumentation-flask";
+
+  format = "pyproject";
+
+  nativeBuildInputs = [ hatchling ];
+
+  propagatedBuildInputs = [
+    flask
+    opentelemetry-api
+    opentelemetry-instrumentation
+    opentelemetry-instrumentation-wsgi
+    opentelemetry-semantic-conventions
+    opentelemetry-util-http
+  ];
+
+  nativeCheckInputs = [
+    opentelemetry-test-utils
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "opentelemetry.instrumentation.flask" ];
+
+  meta = opentelemetry-instrumentation.meta // {
+    homepage = "https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/instrumentation/opentelemetry-instrumentation-flask";
+    description = "Flask Middleware for OpenTelemetry based on the WSGI middleware";
+  };
+}
diff --git a/pkgs/development/python-modules/opentelemetry-instrumentation/default.nix b/pkgs/development/python-modules/opentelemetry-instrumentation/default.nix
index 4ee758ea564d..f5e76507d3ab 100644
--- a/pkgs/development/python-modules/opentelemetry-instrumentation/default.nix
+++ b/pkgs/development/python-modules/opentelemetry-instrumentation/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "opentelemetry-instrumentation";
-  version = "1.16.0";
+  version = "0.43b0";
   disabled = pythonOlder "3.7";
 
   # to avoid breakage, every package in opentelemetry-python-contrib must inherit this version, src, and meta
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "open-telemetry";
     repo = "opentelemetry-python-contrib";
     rev = "refs/tags/v${version}";
-    hash = "sha256-6tGQjPBej2zv5yJN0S46le3kyD7q3TELYyDmyxlp5Wo=";
+    hash = "sha256-fUyA3cPXAxO506usEWxOUX9xiapc8Ocnbx73LP6ghRE=";
   };
 
   sourceRoot = "${src.name}/opentelemetry-instrumentation";
diff --git a/pkgs/development/python-modules/opentelemetry-util-http/default.nix b/pkgs/development/python-modules/opentelemetry-util-http/default.nix
index 85e28f2a6d49..e14338ffcbce 100644
--- a/pkgs/development/python-modules/opentelemetry-util-http/default.nix
+++ b/pkgs/development/python-modules/opentelemetry-util-http/default.nix
@@ -33,6 +33,12 @@ buildPythonPackage {
     pytestCheckHook
   ];
 
+  # https://github.com/open-telemetry/opentelemetry-python-contrib/issues/1940
+  disabledTests = [
+    "test_nonstandard_method"
+    "test_nonstandard_method_allowed"
+  ];
+
   pythonImportsCheck = [ "opentelemetry.util.http" ];
 
   meta = opentelemetry-instrumentation.meta // {
diff --git a/pkgs/development/python-modules/openusd/default.nix b/pkgs/development/python-modules/openusd/default.nix
index 70ae6eb5e08b..f97a9f425ecd 100644
--- a/pkgs/development/python-modules/openusd/default.nix
+++ b/pkgs/development/python-modules/openusd/default.nix
@@ -23,7 +23,7 @@
 , ptex
 , embree
 , alembic
-, openexr
+, imath
 , flex
 , bison
 , qt6
@@ -94,7 +94,7 @@ buildPythonPackage rec {
     ptex
     embree
     alembic.dev
-    openexr
+    imath
     flex
     bison
     boost
diff --git a/pkgs/development/python-modules/openwebifpy/default.nix b/pkgs/development/python-modules/openwebifpy/default.nix
index 48d5ba86ff75..3d2da5207656 100644
--- a/pkgs/development/python-modules/openwebifpy/default.nix
+++ b/pkgs/development/python-modules/openwebifpy/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "openwebifpy";
-  version = "4.0.4";
+  version = "4.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-mGCi3nFnyzA+yKD5qtpErXYjOA6liZRiy7qJTbTGGnQ=";
+    hash = "sha256-dCgbMyyVmYGPV8GyZUrMR+IO8nGoQ//dnmHmhFH2iJo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/opower/default.nix b/pkgs/development/python-modules/opower/default.nix
index 9c35a3c5491f..6e5225d17337 100644
--- a/pkgs/development/python-modules/opower/default.nix
+++ b/pkgs/development/python-modules/opower/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "opower";
-  version = "0.2.0";
+  version = "0.3.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "tronikos";
     repo = "opower";
     rev = "refs/tags/v${version}";
-    hash = "sha256-OT+QCbHQbL3vCfPuyzxBKqUJ2EtFn+PslrKGlrC6Ip8=";
+    hash = "sha256-YqNHjGJ0BkF8/1LVDqbw9QoJgPgwbA1sIPJUuP4TTJY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/optimum/default.nix b/pkgs/development/python-modules/optimum/default.nix
index 42fb645ed097..ad542017d1f0 100644
--- a/pkgs/development/python-modules/optimum/default.nix
+++ b/pkgs/development/python-modules/optimum/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "optimum";
-  version = "1.16.1";
+  version = "1.16.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = "optimum";
     rev = "refs/tags/v${version}";
-    hash = "sha256-UlxArfNK4Ialodpne5GY7GuWGUBcLbSjAidL67Li0S0=";
+    hash = "sha256-bEwCUPZJT1UTD8mQJKg+Nwag6kpn4076uyKocKI/+/M=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/oras/default.nix b/pkgs/development/python-modules/oras/default.nix
index 6dd42eeca3db..c43a92524e01 100644
--- a/pkgs/development/python-modules/oras/default.nix
+++ b/pkgs/development/python-modules/oras/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "oras";
-  version = "0.1.26";
+  version = "0.1.27";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "oras-project";
     repo = "oras-py";
     rev = "refs/tags/${version}";
-    hash = "sha256-t3098ZeAkwLhinyrFwmi7KKrFgZZKPN6qvp3REQNwG8=";
+    hash = "sha256-T2zuflew91UsEjhPKPjNxPBN+C//S1vWvXKVT602EVI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/oslo-db/default.nix b/pkgs/development/python-modules/oslo-db/default.nix
index 708bbd62c36f..0e7a5abedda5 100644
--- a/pkgs/development/python-modules/oslo-db/default.nix
+++ b/pkgs/development/python-modules/oslo-db/default.nix
@@ -2,14 +2,17 @@
 , buildPythonPackage
 , fetchPypi
 , alembic
+, debtcollector
 , oslo-config
 , oslo-context
+, oslo-i18n
 , oslo-utils
 , oslotest
 , pbr
+, psycopg2
 , setuptools
 , sqlalchemy
-, sqlalchemy-migrate
+, stevedore
 , stestr
 , testresources
 , testscenarios
@@ -33,18 +36,21 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     alembic
+    debtcollector
     oslo-config
-    oslo-context
+    oslo-i18n
     oslo-utils
     sqlalchemy
-    sqlalchemy-migrate
-    testresources
-    testscenarios
+    stevedore
   ];
 
   nativeCheckInputs = [
+    oslo-context
     oslotest
     stestr
+    psycopg2
+    testresources
+    testscenarios
   ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/pamqp/default.nix b/pkgs/development/python-modules/pamqp/default.nix
index 62c568e64818..b3ad60e7d1c8 100644
--- a/pkgs/development/python-modules/pamqp/default.nix
+++ b/pkgs/development/python-modules/pamqp/default.nix
@@ -2,24 +2,29 @@
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
+, setuptools
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
-  version = "3.2.1";
+  version = "3.3.0";
   pname = "pamqp";
 
   disabled = pythonOlder "3.7";
 
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "gmr";
     repo = "pamqp";
     rev = version;
-    hash = "sha256-zvvRoGMNP4NMy3Etjif5MYUPdRqmQXATbFgxaPp1TaM=";
+    hash = "sha256-0vjiPBLd8afnATjmV2sINsBd4j7L544u5DA3jLiLSsY=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   nativeCheckInputs = [
     pytestCheckHook
   ];
@@ -38,6 +43,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
+    changelog = "https://github.com/gmr/pamqp/blob/${src.rev}/docs/changelog.rst";
     description = "RabbitMQ Focused AMQP low-level library";
     homepage = "https://github.com/gmr/pamqp";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/param/default.nix b/pkgs/development/python-modules/param/default.nix
index c05f906d5b10..5988034f2019 100644
--- a/pkgs/development/python-modules/param/default.nix
+++ b/pkgs/development/python-modules/param/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "param";
-  version = "2.0.0";
+  version = "2.0.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "holoviz";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-8R1+utY3e3py4iJTgOVfzt5Y7bp2Rn6OfoITGuOsb5c=";
+    hash = "sha256-IJchqSXZ87WZUKGDY3ObfdYCRfXM++N//kM7kb1wFow=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/parsedmarc/default.nix b/pkgs/development/python-modules/parsedmarc/default.nix
index 576b54860557..ac859c0c825f 100644
--- a/pkgs/development/python-modules/parsedmarc/default.nix
+++ b/pkgs/development/python-modules/parsedmarc/default.nix
@@ -5,6 +5,7 @@
 , buildPythonPackage
 , dateparser
 , dnspython
+, elastic-transport
 , elasticsearch
 , elasticsearch-dsl
 , expiringdict
@@ -51,7 +52,8 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "elasticsearch<7.14.0" "elasticsearch"
+      --replace "elasticsearch<7.14.0" "elasticsearch" \
+      --replace "elasticsearch-dsl==7.4.0" "elasticsearch-dsl"
   '';
 
   nativeBuildInputs = [
@@ -64,6 +66,7 @@ buildPythonPackage rec {
     boto3
     dateparser
     dnspython
+    elastic-transport
     elasticsearch
     elasticsearch-dsl
     expiringdict
@@ -89,7 +92,9 @@ buildPythonPackage rec {
   # https://github.com/domainaware/parsedmarc/issues/426
   doCheck = false;
 
-  pythonImportsCheck = [ "parsedmarc" ];
+  pythonImportsCheck = [
+    "parsedmarc"
+  ];
 
   passthru = {
     inherit dashboard;
@@ -97,11 +102,11 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    changelog = "https://github.com/domainaware/parsedmarc/blob/master/CHANGELOG.md#${lib.replaceStrings [ "." ] [ "" ] version}";
     description = "Python module and CLI utility for parsing DMARC reports";
     homepage = "https://domainaware.github.io/parsedmarc/";
-    mainProgram = "parsedmarc";
-    maintainers = with maintainers; [ talyz ];
+    changelog = "https://github.com/domainaware/parsedmarc/blob/master/CHANGELOG.md#${lib.replaceStrings [ "." ] [ "" ] version}";
     license = licenses.asl20;
+    maintainers = with maintainers; [ talyz ];
+    mainProgram = "parsedmarc";
   };
 }
diff --git a/pkgs/development/python-modules/pastescript/default.nix b/pkgs/development/python-modules/pastescript/default.nix
index 27933066c7b7..70094b5aaafb 100644
--- a/pkgs/development/python-modules/pastescript/default.nix
+++ b/pkgs/development/python-modules/pastescript/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "pastescript";
-  version = "3.3.0";
+  version = "3.4.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "PasteScript";
     inherit version;
-    hash = "sha256-3eyAGhOsZn4JTt3ij5AhLN6nvcmhjUNxsI9abvfS66I=";
+    hash = "sha256-k0jvBlr/Is8ViMEt+wIMx1HGSC4hb4o8dRL6QKQ/kNw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/patool/default.nix b/pkgs/development/python-modules/patool/default.nix
index d36400970391..ab4ef91d07a0 100644
--- a/pkgs/development/python-modules/patool/default.nix
+++ b/pkgs/development/python-modules/patool/default.nix
@@ -37,7 +37,7 @@ let
 in
 buildPythonPackage rec {
   pname = "patool";
-  version = "2.0.0";
+  version = "2.1.1";
   format = "setuptools";
 
   #pypi doesn't have test data
@@ -45,7 +45,7 @@ buildPythonPackage rec {
     owner = "wummel";
     repo = pname;
     rev = "upstream/${version}";
-    hash = "sha256-Hjpifsi5Q1eoe/MFWuQBDyjoXi/aUG4VN84yNMkAZaE=";
+    hash = "sha256-B2P6JldMOAxr4WS+wST+kRVvEm41zH3Nh5LLKoFOws4=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pdfrw2/default.nix b/pkgs/development/python-modules/pdfrw2/default.nix
new file mode 100644
index 000000000000..6ed93640af7e
--- /dev/null
+++ b/pkgs/development/python-modules/pdfrw2/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pillow
+, pycryptodome
+, reportlab
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "pdfrw2";
+  version = "0.5.0";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-5qnMq4Pnaaeov+Lb3fD0ndfr5SAy6SlXTwG7v6IZce0=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    pillow
+    reportlab
+    pycryptodome
+  ];
+
+  pythonImportCheck = [ "pdfrw" ];
+
+  meta = with lib; {
+    description = "Pure Python library that reads and writes PDFs";
+    homepage = "https://github.com/sarnold/pdfrw";
+    maintainers = with maintainers; [ loicreynier ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/pglast/default.nix b/pkgs/development/python-modules/pglast/default.nix
index 883def3b068b..4a3e4794bd77 100644
--- a/pkgs/development/python-modules/pglast/default.nix
+++ b/pkgs/development/python-modules/pglast/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "pglast";
-  version = "5.8";
+  version = "6.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-+3ysQuGrAH5xCBKaP0T/PLfbmLuxiKHPB+76D32GG9E=";
+    hash = "sha256-mGP7o52Wun6AdE2jMAJBmLR10EmN50qzbMzB06BFXMg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pikepdf/default.nix b/pkgs/development/python-modules/pikepdf/default.nix
index 4ba20f5aef31..386f64718eb0 100644
--- a/pkgs/development/python-modules/pikepdf/default.nix
+++ b/pkgs/development/python-modules/pikepdf/default.nix
@@ -7,7 +7,7 @@
 , jbig2dec
 , deprecated
 , lxml
-, mupdf
+, mupdf-headless
 , numpy
 , packaging
 , pillow
@@ -20,12 +20,11 @@
 , qpdf
 , setuptools
 , substituteAll
-, wheel
 }:
 
 buildPythonPackage rec {
   pname = "pikepdf";
-  version = "8.9.0";
+  version = "8.11.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -40,14 +39,14 @@ buildPythonPackage rec {
     postFetch = ''
       rm "$out/.git_archival.txt"
     '';
-    hash = "sha256-ia+D0OeB/MQWRniYkBEWZsDCwEApYGgu0++I/HupK6w=";
+    hash = "sha256-mxUXXD7/ERC6mfmLLo+zdsVblIplrlcnzTNQ7YUk3Q4=";
   };
 
   patches = [
     (substituteAll {
       src = ./paths.patch;
-      jbig2dec = "${lib.getBin jbig2dec}/bin/jbig2dec";
-      mudraw = "${lib.getBin mupdf}/bin/mudraw";
+      jbig2dec = lib.getExe' jbig2dec "jbig2dec";
+      mutool = lib.getExe' mupdf-headless "mutool";
     })
   ];
 
@@ -63,7 +62,6 @@ buildPythonPackage rec {
   nativeBuildInputs = [
     pybind11
     setuptools
-    wheel
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/pikepdf/paths.patch b/pkgs/development/python-modules/pikepdf/paths.patch
index c9c61176aa6f..1bd030c186c2 100644
--- a/pkgs/development/python-modules/pikepdf/paths.patch
+++ b/pkgs/development/python-modules/pikepdf/paths.patch
@@ -1,18 +1,18 @@
 diff --git a/src/pikepdf/_methods.py b/src/pikepdf/_methods.py
-index d27c660..6796984 100644
+index da40043f..4f566f01 100644
 --- a/src/pikepdf/_methods.py
 +++ b/src/pikepdf/_methods.py
-@@ -72,7 +72,7 @@ def _mudraw(buffer, fmt) -> bytes:
+@@ -74,7 +74,7 @@ def _mudraw(buffer, fmt) -> bytes:
          tmp_in.flush()
  
          proc = run(
--            ['mudraw', '-F', fmt, '-o', '-', tmp_in.name],
-+            ['@mudraw@', '-F', fmt, '-o', '-', tmp_in.name],
+-            ['mutool', 'draw', '-F', fmt, '-o', '-', tmp_in.name],
++            ['@mutool@', 'draw', '-F', fmt, '-o', '-', tmp_in.name],
              capture_output=True,
              check=True,
          )
 diff --git a/src/pikepdf/jbig2.py b/src/pikepdf/jbig2.py
-index f89b4f9..f187ebd 100644
+index f89b4f90..f187ebdf 100644
 --- a/src/pikepdf/jbig2.py
 +++ b/src/pikepdf/jbig2.py
 @@ -63,7 +63,7 @@ class JBIG2Decoder(JBIG2DecoderInterface):
diff --git a/pkgs/development/python-modules/pinecone-client/default.nix b/pkgs/development/python-modules/pinecone-client/default.nix
index 2b7597499632..2715e1748051 100644
--- a/pkgs/development/python-modules/pinecone-client/default.nix
+++ b/pkgs/development/python-modules/pinecone-client/default.nix
@@ -2,6 +2,8 @@
 , buildPythonPackage
 , fetchPypi
 , setuptools
+, poetry-core
+, pythonRelaxDepsHook
 , numpy
 , pyyaml
 , python-dateutil
@@ -14,16 +16,19 @@
 }:
 buildPythonPackage rec {
   pname = "pinecone-client";
-  version = "2.2.5";
+  version = "3.0.2";
   pyproject = true;
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-F2mWUpFMn2ipopa3UjvzrmNZsHtdRrUwfkuHbDYBElo=";
+    pname = "pinecone_client";
+    inherit version;
+    hash = "sha256-+aCDAzPuzhB7TvERneI9rWphv/q38jjmGEFtUcRtKcg=";
   };
 
   nativeBuildInputs = [
     setuptools
+    poetry-core
+    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -38,12 +43,20 @@ buildPythonPackage rec {
     loguru
   ];
 
+  pythonRelaxDeps = [
+    "urllib3"
+  ];
+
   doCheck = false;
 
+  pythonImportsCheck = [
+    "pinecone"
+  ];
+
   meta = with lib; {
     homepage = "https://www.pinecone.io/";
     description = "The Pinecone python client";
     license = licenses.mit;
-    maintainers = with maintainers; [happysalada];
+    maintainers = with maintainers; [ happysalada ];
   };
 }
diff --git a/pkgs/development/python-modules/pins/default.nix b/pkgs/development/python-modules/pins/default.nix
new file mode 100644
index 000000000000..3d02d7b03728
--- /dev/null
+++ b/pkgs/development/python-modules/pins/default.nix
@@ -0,0 +1,104 @@
+{ lib
+, adlfs
+, appdirs
+, buildPythonPackage
+, fastparquet
+, fetchFromGitHub
+, fsspec
+, gcsfs
+, humanize
+, importlib-metadata
+, importlib-resources
+, jinja2
+, joblib
+, pandas
+, pyarrow
+, pytest-cases
+, pytest-parallel
+, pytestCheckHook
+, pythonOlder
+, pyyaml
+, requests
+, s3fs
+, setuptools
+, setuptools-scm
+, xxhash
+}:
+
+buildPythonPackage rec {
+  pname = "pins";
+  version = "0.8.4";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "rstudio";
+    repo = "pins-python";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-rNIjHwFELHoxDxC/T5vPzHA6Ifjz01rJpTK6kjUxOIM=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    appdirs
+    fsspec
+    humanize
+    importlib-metadata
+    importlib-resources
+    jinja2
+    joblib
+    pandas
+    pyyaml
+    requests
+    xxhash
+  ];
+
+  passthru.optional-dependencies = {
+    aws = [
+      s3fs
+    ];
+    azure = [
+      adlfs
+    ];
+    gcs = [
+      gcsfs
+    ];
+  };
+
+  nativeCheckInputs = [
+    fastparquet
+    pyarrow
+    pytest-cases
+    pytest-parallel
+    pytestCheckHook
+  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+
+  pythonImportsCheck = [
+    "pins"
+  ];
+
+  pytestFlagsArray = [
+    "pins/tests/"
+  ];
+
+  disabledTestPaths = [
+    # Tests require network access
+    "pins/tests/test_boards.py"
+    "pins/tests/test_compat.py"
+    "pins/tests/test_constructors.py"
+    "pins/tests/test_rsconnect_api.py"
+  ];
+
+  meta = with lib; {
+    description = "Module to publishes data, models and other Python objects";
+    homepage = "https://github.com/rstudio/pins-python";
+    changelog = "https://github.com/rstudio/pins-python/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pip-api/default.nix b/pkgs/development/python-modules/pip-api/default.nix
index 48edbf2480dc..c7819229ef16 100644
--- a/pkgs/development/python-modules/pip-api/default.nix
+++ b/pkgs/development/python-modules/pip-api/default.nix
@@ -1,25 +1,32 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , pip
 , pretend
 , pytestCheckHook
 , pythonOlder
+, setuptools
 , virtualenv
 }:
 
 buildPythonPackage rec {
   pname = "pip-api";
-  version = "0.0.30";
-  format = "setuptools";
+  version = "0.0.31";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-oF3yx6qbcVc3S89Cc1RCAaDHuuYKnGW8+E85We84lvM=";
+  src = fetchFromGitHub {
+    owner = "di";
+    repo = "pip-api";
+    rev = "refs/tags/${version}";
+    hash = "sha256-WFyrEEfrGwsITYzQaukwmz5ml+I6zlMddINTkGeNUTM=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     pip
   ];
@@ -46,6 +53,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Importable pip API";
     homepage = "https://github.com/di/pip-api";
+    changelog = "https://github.com/di/pip-api/blob/${version}/CHANGELOG";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/pip-tools/default.nix b/pkgs/development/python-modules/pip-tools/default.nix
index 1871ce74dd73..154a9c712c5a 100644
--- a/pkgs/development/python-modules/pip-tools/default.nix
+++ b/pkgs/development/python-modules/pip-tools/default.nix
@@ -66,6 +66,8 @@ buildPythonPackage rec {
     "test_bad_setup_file"
     # Assertion error
     "test_compile_recursive_extras"
+    "test_combine_different_extras_of_the_same_package"
+    "test_diff_should_not_uninstall"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/pipenv-poetry-migrate/default.nix b/pkgs/development/python-modules/pipenv-poetry-migrate/default.nix
index c40bcae0348e..f40be0758ba5 100644
--- a/pkgs/development/python-modules/pipenv-poetry-migrate/default.nix
+++ b/pkgs/development/python-modules/pipenv-poetry-migrate/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pipenv-poetry-migrate";
-  version = "0.5.2";
+  version = "0.5.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "yhino";
     repo = "pipenv-poetry-migrate";
     rev = "refs/tags/v${version}";
-    hash = "sha256-bTlDDg3iIab75QynAkXU5u4fgTylPeE6OdiQb8hqP8s=";
+    hash = "sha256-Figg5yaPo6QqB4lldmyJZtd/Ar584IyETVJfWZ+gjDE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/plaid-python/default.nix b/pkgs/development/python-modules/plaid-python/default.nix
index 109b72039b1d..388688c19f97 100644
--- a/pkgs/development/python-modules/plaid-python/default.nix
+++ b/pkgs/development/python-modules/plaid-python/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "plaid-python";
-  version = "18.3.0";
+  version = "18.4.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-0u1gj8ZpUL/eehsPNjq7JoDdVDDhlS9SGDw5xizxRlE=";
+    hash = "sha256-bspTjaTATICk58YHxnq2ZM1N5PNS2o0nVQDWUeUvVAc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/plugwise/default.nix b/pkgs/development/python-modules/plugwise/default.nix
index 5707f88cf69d..636976f3dbf5 100644
--- a/pkgs/development/python-modules/plugwise/default.nix
+++ b/pkgs/development/python-modules/plugwise/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "plugwise";
-  version = "0.36.2";
+  version = "0.36.3";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "plugwise";
     repo = "python-plugwise";
     rev = "refs/tags/v${version}";
-    hash = "sha256-3TTrfvhTQIhig0QUP56+IkciiboXZD4025FvotAZgzo=";
+    hash = "sha256-LhwrrGle9B2zGhlgPLH+uB6ZiWbNPm1GbPXuUh8RLyo=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/plyvel/default.nix b/pkgs/development/python-modules/plyvel/default.nix
index d8293f85a9bc..794585c54b80 100644
--- a/pkgs/development/python-modules/plyvel/default.nix
+++ b/pkgs/development/python-modules/plyvel/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "plyvel";
-  version = "1.5.0";
+  version = "1.5.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-zZGOCzFpCrzT0gKodCyvlRqy/hVz3nr3HDhFaEf5ICs=";
+    hash = "sha256-PK9gCeT8JPv4cS0/XvPaflZJXCakiN8hYSGPw05GAZw=";
   };
 
   buildInputs = [ pkgs.leveldb ] ++ lib.optional isPy3k pytest;
diff --git a/pkgs/development/python-modules/pmdarima/default.nix b/pkgs/development/python-modules/pmdarima/default.nix
index f1d152decc1f..2ddb03b8afe1 100644
--- a/pkgs/development/python-modules/pmdarima/default.nix
+++ b/pkgs/development/python-modules/pmdarima/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
   # Make sure we're running the tests for the actually installed
   # package, so that cython's compiled files are available.
   preCheck = ''
-    cd $out/lib/${python.libPrefix}/site-packages
+    cd $out/${python.sitePackages}
   '';
 
   nativeCheckInputs = [ pytestCheckHook ];
diff --git a/pkgs/development/python-modules/podman/default.nix b/pkgs/development/python-modules/podman/default.nix
index 3279c4212cee..e3174a0a93ac 100644
--- a/pkgs/development/python-modules/podman/default.nix
+++ b/pkgs/development/python-modules/podman/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "podman";
-  version = "4.8.2";
+  version = "4.9.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "containers";
     repo = "podman-py";
     rev = "refs/tags/v${version}";
-    hash = "sha256-XJ+KD3HM+Sygq8Oxht80G9DnZadvR3fFyXrJsWny65g=";
+    hash = "sha256-fLuWOfv4kW5a9h658s8pBgXsBfcYdkXNp9+bWtgKHv8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pomegranate/default.nix b/pkgs/development/python-modules/pomegranate/default.nix
index 93c42374876c..0c07483b0711 100644
--- a/pkgs/development/python-modules/pomegranate/default.nix
+++ b/pkgs/development/python-modules/pomegranate/default.nix
@@ -1,5 +1,4 @@
-{ stdenv
-, lib
+{ lib
 , buildPythonPackage
 , fetchFromGitHub
 
@@ -7,29 +6,25 @@
 , setuptools
 
 # dependencies
-, apricot-select
-, networkx
 , numpy
-, scikit-learn
+, joblib
+, networkx
 , scipy
-, torch
-
-# tests
-, pytestCheckHook
+, pyyaml
+, cython
 }:
 
-
 buildPythonPackage rec {
   pname = "pomegranate";
-  version = "1.0.0";
-  format = "pyproject";
+  version = "0.14.8";
+  pyproject = true;
 
   src = fetchFromGitHub {
     repo = pname;
     owner = "jmschrei";
     # no tags for recent versions: https://github.com/jmschrei/pomegranate/issues/974
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-EnxKlRRfsOIDLAhYOq7bUSbI/NvPoSyYCZ9D5VCXFGQ=";
+    hash = "sha256-PoDAtNm/snq4isotkoCTVYUuwr9AKKwiXIojUFMH/YE=";
   };
 
   nativeBuildInputs = [
@@ -37,20 +32,18 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
-    apricot-select
-    networkx
     numpy
-    scikit-learn
+    joblib
+    networkx
     scipy
-    torch
+    pyyaml
+    cython
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  # https://github.com/etal/cnvkit/issues/815
+  passthru.skipBulkUpdate = true;
 
   meta = with lib; {
-    broken = stdenv.isDarwin;
     description = "Probabilistic and graphical models for Python, implemented in cython for speed";
     homepage = "https://github.com/jmschrei/pomegranate";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pontos/default.nix b/pkgs/development/python-modules/pontos/default.nix
index 7166577d8c74..0ea724ed044b 100644
--- a/pkgs/development/python-modules/pontos/default.nix
+++ b/pkgs/development/python-modules/pontos/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "pontos";
-  version = "23.12.1";
+  version = "24.1.2";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "greenbone";
     repo = "pontos";
     rev = "refs/tags/v${version}";
-    hash = "sha256-N10Jn5jq/PktpmeRNlqZyN/rUyAeW+ghY3/RK9Aas7I=";
+    hash = "sha256-t8mfAi5EG/k5dXsEjC5IpBn/adpSOhqCIkpZ2IMzMkQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/posthog/default.nix b/pkgs/development/python-modules/posthog/default.nix
index 704a1f7ebf03..82bb7ffd57e4 100644
--- a/pkgs/development/python-modules/posthog/default.nix
+++ b/pkgs/development/python-modules/posthog/default.nix
@@ -14,7 +14,7 @@
 }:
 let
   pname = "posthog";
-  version = "3.3.1";
+  version = "3.3.4";
 in
 buildPythonPackage {
   inherit pname version;
@@ -24,7 +24,7 @@ buildPythonPackage {
     owner = "PostHog";
     repo = "posthog-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-aF2Q3ztoFV7j47edtHiLddw+PZyMz6EHj3Zu55rOcF8=";
+    hash = "sha256-xw6mbcEuW3bt5XmJ7ADE34Pm7MEOqJM08NBde8yqeBg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pot/default.nix b/pkgs/development/python-modules/pot/default.nix
index 663c0427a5ab..321ad2e2dba7 100644
--- a/pkgs/development/python-modules/pot/default.nix
+++ b/pkgs/development/python-modules/pot/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "pot";
-  version = "0.9.2";
+  version = "0.9.3";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "PythonOT";
     repo = "POT";
     rev = "refs/tags/${version}";
-    hash = "sha256-sq8jIWC2DD0T6675W4THbNethm7a//U8HuccKuK0Hjo=";
+    hash = "sha256-fdqDM0V6zTFe1lcqi53ZZNHAfmuR2I7fdX4SN9qeNn8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pplpy/default.nix b/pkgs/development/python-modules/pplpy/default.nix
index ec9bddb5ec99..c3a1f8192acf 100644
--- a/pkgs/development/python-modules/pplpy/default.nix
+++ b/pkgs/development/python-modules/pplpy/default.nix
@@ -5,7 +5,7 @@
 , mpfr
 , libmpc
 , ppl
-, cython
+, cython_3
 , cysignals
 , gmpy2
 , sphinx
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
-    cython
+    cython_3
     cysignals
     gmpy2
   ];
diff --git a/pkgs/development/python-modules/preshed/default.nix b/pkgs/development/python-modules/preshed/default.nix
index 557045649425..e0d37c51a2b1 100644
--- a/pkgs/development/python-modules/preshed/default.nix
+++ b/pkgs/development/python-modules/preshed/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "preshed";
-  version = "4.0.0";
+  version = "3.0.9";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-XisLKgfdGo3uqtZhIBmEXGAu4kkH9pNuqvF6q9VuVEw=";
+    hash = "sha256-chhjxSRP/NJlGtCSiVGix8d7EC9OEaJRrYXTfudiFmA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/primecountpy/default.nix b/pkgs/development/python-modules/primecountpy/default.nix
index 463a0cf50be6..6653a65671b3 100644
--- a/pkgs/development/python-modules/primecountpy/default.nix
+++ b/pkgs/development/python-modules/primecountpy/default.nix
@@ -2,7 +2,7 @@
 , fetchPypi
 , buildPythonPackage
 , primecount
-, cython
+, cython_3
 , cysignals
 }:
 
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   buildInputs = [ primecount ];
 
-  propagatedBuildInputs = [ cython cysignals ];
+  propagatedBuildInputs = [ cython_3 cysignals ];
 
   # depends on pytest-cython for "pytest --doctest-cython"
   doCheck = false;
diff --git a/pkgs/development/python-modules/prophet/default.nix b/pkgs/development/python-modules/prophet/default.nix
index 5a8e2dfc1fc6..07ee3e76021b 100644
--- a/pkgs/development/python-modules/prophet/default.nix
+++ b/pkgs/development/python-modules/prophet/default.nix
@@ -66,6 +66,5 @@ buildPythonPackage rec {
     homepage = "https://facebook.github.io/prophet/";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ tomasajt ];
-    platforms = lib.platforms.linux; # cmdstanpy doesn't currently build on darwin
   };
 }
diff --git a/pkgs/development/python-modules/psd-tools/default.nix b/pkgs/development/python-modules/psd-tools/default.nix
index efc6aa6d742c..efa364a09de0 100644
--- a/pkgs/development/python-modules/psd-tools/default.nix
+++ b/pkgs/development/python-modules/psd-tools/default.nix
@@ -2,9 +2,12 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
+, attrs
 , docopt
 , pillow
 , scikit-image
+, scipy
+, numpy
 , aggdraw
 , pytestCheckHook
 , ipython
@@ -31,10 +34,13 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     aggdraw
+    attrs
     docopt
     ipython
+    numpy
     pillow
     scikit-image
+    scipy
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/psycopg/default.nix b/pkgs/development/python-modules/psycopg/default.nix
index b651412571e6..ca237ed8bbd5 100644
--- a/pkgs/development/python-modules/psycopg/default.nix
+++ b/pkgs/development/python-modules/psycopg/default.nix
@@ -2,7 +2,6 @@
 , stdenv
 , buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
 , fetchurl
 , pythonOlder
 , substituteAll
@@ -35,13 +34,13 @@
 
 let
   pname = "psycopg";
-  version = "3.1.15";
+  version = "3.1.17";
 
   src = fetchFromGitHub {
     owner = "psycopg";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-8M2Rm9AtOvZwZhKGuR96XiOOmllqcWAZJuEmUXxzsRw=";
+    hash = "sha256-Paq4Wkvv6d6+fNcvRO/yfj7OWCMygqccKIdfsohHUMM=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/publicsuffixlist/default.nix b/pkgs/development/python-modules/publicsuffixlist/default.nix
index 3b94405d0445..c84d90683a47 100644
--- a/pkgs/development/python-modules/publicsuffixlist/default.nix
+++ b/pkgs/development/python-modules/publicsuffixlist/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "publicsuffixlist";
-  version = "0.10.0.20240108";
+  version = "0.10.0.20240203";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-LRUwHL70tezJv6R7OJWa9zNQkVdI1Esvkdsqj8O5jSQ=";
+    hash = "sha256-+AbNJqI31yZsvBtFyIuCjVsUWH/gtvOg+L05NroYCW0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pudb/default.nix b/pkgs/development/python-modules/pudb/default.nix
index 347d11341e14..160e74d5c7b6 100644
--- a/pkgs/development/python-modules/pudb/default.nix
+++ b/pkgs/development/python-modules/pudb/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "pudb";
-  version = "2023.1";
+  version = "2024.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Fd88YDq6h6kYpmbvjhv2P3ZCOMw1ids8W3pfGwHqLwM=";
+    hash = "sha256-/J1ql2pZtZB2TIN57CAP7NR/qoQlm2Tv2M2GBmoK8zg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pulp/default.nix b/pkgs/development/python-modules/pulp/default.nix
index 6ecd6d4ba8c0..ab55157ed207 100644
--- a/pkgs/development/python-modules/pulp/default.nix
+++ b/pkgs/development/python-modules/pulp/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pulp";
-  version = "2.7.0";
+  version = "2.8.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "coin-or";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-j0f6OiscJyTqPNyLp0qWRjCGLWuT3HdU1S/sxpnsiMo=";
+    hash = "sha256-lpbk1GeC8F/iLGV8G5RPHghnaM9eL82YekUYEt9+mvc=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pwlf/default.nix b/pkgs/development/python-modules/pwlf/default.nix
new file mode 100644
index 000000000000..8259a41e2e40
--- /dev/null
+++ b/pkgs/development/python-modules/pwlf/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, wheel
+, scipy
+, numpy
+, pydoe
+, unittestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pwlf";
+  version = "2.2.1";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "cjekel";
+    repo = "piecewise_linear_fit_py";
+    rev = "v${version}";
+    hash = "sha256-gjdahulpHjBmOlKOCPF9WmrWe4jn/+0oVI4o09EX7qE=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    wheel
+  ];
+
+  propagatedBuildInputs = [
+    scipy
+    numpy
+    pydoe
+  ];
+
+  nativeCheckInputs = [
+    unittestCheckHook
+  ];
+
+  pythonImportsCheck = [ "pwlf" ];
+
+  meta = with lib; {
+    description = "Fit piecewise linear data for a specified number of line segments";
+    homepage = "https://jekel.me/piecewise_linear_fit_py/";
+    changelog = "https://github.com/cjekel/piecewise_linear_fit_py/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ doronbehar ];
+  };
+}
diff --git a/pkgs/development/python-modules/py-serializable/default.nix b/pkgs/development/python-modules/py-serializable/default.nix
index 3f342a1469ca..12bdef693e20 100644
--- a/pkgs/development/python-modules/py-serializable/default.nix
+++ b/pkgs/development/python-modules/py-serializable/default.nix
@@ -11,16 +11,16 @@
 
 buildPythonPackage rec {
   pname = "py-serializable";
-  version = "0.17.1";
+  version = "1.0.0";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "madpah";
     repo = "serializable";
     rev = "refs/tags/v${version}";
-    hash = "sha256-G7bIsvWdL4qVg4akJ2KtXVS10DiJSFUYEzyQSp9ry9o=";
+    hash = "sha256-7WYe3X4wVUC7HyYoCVQYWm61C+J3r91Ci8IHNeWBTVE=";
   };
 
   nativeBuildInputs = [
@@ -50,7 +50,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Pythonic library to aid with serialisation and deserialisation to/from JSON and XML";
     homepage = "https://github.com/madpah/serializable";
-    changelog = "https://github.com/madpah/serializable/blob/${version}/CHANGELOG.md";
+    changelog = "https://github.com/madpah/serializable/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/py-sonic/default.nix b/pkgs/development/python-modules/py-sonic/default.nix
index ec0da2c3ab3b..826c23120ed9 100644
--- a/pkgs/development/python-modules/py-sonic/default.nix
+++ b/pkgs/development/python-modules/py-sonic/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "py-sonic";
-  version = "1.0.0";
+  version = "1.0.1";
   format = "setuptools";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-9ho0F5kf74pCsLujwLt+pU+Ikxu70/kk+WP7lnD7CiE=";
+    hash = "sha256-DU1T86T0jQ6ptkWdjuV70VC8MFx/rK5aQFYjbK6F2Hk=";
   };
 
   # package has no tests
diff --git a/pkgs/development/python-modules/py3status/default.nix b/pkgs/development/python-modules/py3status/default.nix
index 45ac825c6a56..00552787cc50 100644
--- a/pkgs/development/python-modules/py3status/default.nix
+++ b/pkgs/development/python-modules/py3status/default.nix
@@ -24,12 +24,12 @@
 
 buildPythonPackage rec {
   pname = "py3status";
-  version = "3.54";
+  version = "3.55";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-xRiXFCILZeiNYJMIJ8Qxga71/7WXeTUsdnRvfvDzpCY=";
+    hash = "sha256-HGOHJQWEvTTL+GXVb8ZS8DlL9dHWuS0PioP1bZ32PhI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyarrow-hotfix/default.nix b/pkgs/development/python-modules/pyarrow-hotfix/default.nix
new file mode 100644
index 000000000000..38a8dc4b6ea8
--- /dev/null
+++ b/pkgs/development/python-modules/pyarrow-hotfix/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, hatchling
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pyarrow-hotfix";
+  version = "0.6";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "pitrou";
+    repo = "pyarrow-hotfix";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-LlSbxIxvouzvlP6PB8J8fJaxWoRbxz4wTs7Gb5LbM4A=";
+  };
+
+  nativeBuildInputs = [
+    hatchling
+  ];
+
+  pythonImportsCheck = [
+    "pyarrow_hotfix"
+  ];
+
+  meta = with lib; {
+    description = "Hotfix for the PyArrow security vulnerability CVE-2023-47248";
+    homepage = "https://github.com/pitrou/pyarrow-hotfix";
+    changelog = "https://github.com/pitrou/pyarrow-hotfix/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyasyncore/default.nix b/pkgs/development/python-modules/pyasyncore/default.nix
index 2acdd9ba5396..d5ebd86a7d95 100644
--- a/pkgs/development/python-modules/pyasyncore/default.nix
+++ b/pkgs/development/python-modules/pyasyncore/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "pyasyncore";
-  version = "1.0.2";
+  version = "1.0.3";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "simonrob";
     repo = "pyasyncore";
-    rev = "v${version}";
-    hash = "sha256-8U46q1QIjBkFh04NkAHZ0XRutlzpJHZWAqDZJj3tdEk=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-e1iHC9mbQYlfpIdLk033wvoA5z5WcHjOZm6oFTfpRTA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyatem/default.nix b/pkgs/development/python-modules/pyatem/default.nix
index 5b7749ea57c9..1792d2699d80 100644
--- a/pkgs/development/python-modules/pyatem/default.nix
+++ b/pkgs/development/python-modules/pyatem/default.nix
@@ -18,14 +18,14 @@
 
 buildPythonPackage rec {
   pname = "pyatem";
-  version = "0.9.0"; # check latest version in setup.py
+  version = "0.10.0"; # check latest version in setup.py
   pyproject = true;
 
   src = fetchFromSourcehut {
     owner = "~martijnbraam";
     repo = "pyatem";
     rev = version;
-    hash = "sha256-ntwUhgC8Cgrim+kU3B3ckgPDmPe+aEHDP4wsB45KbJg=";
+    hash = "sha256-O+f1vVwfGJjLem25hsYE1Q1V4vzjrc0HxTBUCANCEwE=";
   };
 
   nativeBuildInputs = [
@@ -49,15 +49,6 @@ buildPythonPackage rec {
     pushd $TESTDIR
   '';
 
-  disabledTests = lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
-    # colorspace mapping has weird, but constant offsets on aarch64-linux
-    "test_blueramp"
-    "test_greenramp"
-    "test_hues"
-    "test_primaries"
-    "test_redramp"
-  ];
-
   postCheck = ''
     popd
   '';
diff --git a/pkgs/development/python-modules/pyatspi/default.nix b/pkgs/development/python-modules/pyatspi/default.nix
index fb7fedeaefc5..0fbd5b97f680 100644
--- a/pkgs/development/python-modules/pyatspi/default.nix
+++ b/pkgs/development/python-modules/pyatspi/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "pyatspi";
-  version = "2.46.0";
+  version = "2.46.1";
   format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1FSJzz1HqhULGjXolJs7MQNfjCB15YjSa278Yllwxi4=";
+    sha256 = "+R9qV0NOnAfRPVxL+BndeOjuYFqsKuRdjGTCgRT7BBs=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/python-modules/pyaudio/default.nix b/pkgs/development/python-modules/pyaudio/default.nix
index 048acc08e43d..2cab06e7c786 100644
--- a/pkgs/development/python-modules/pyaudio/default.nix
+++ b/pkgs/development/python-modules/pyaudio/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "PyAudio";
-  version = "0.2.13";
+  version = "0.2.14";
   disabled = isPyPy;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-JrzMgeQkPRwP9Uh+a0gd5jKfzWXHk2XCZ87zjzY6K1Y=";
+    hash = "sha256-eN//OHm0mU0fT8ZIVkald1XG7jwZZHpJH3kKCJW9L4c=";
   };
 
   buildInputs = [ pkgs.portaudio ];
diff --git a/pkgs/development/python-modules/pybase64/default.nix b/pkgs/development/python-modules/pybase64/default.nix
index d94cdf524d20..944247e1fac9 100644
--- a/pkgs/development/python-modules/pybase64/default.nix
+++ b/pkgs/development/python-modules/pybase64/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "pybase64";
-  version = "1.3.1";
+  version = "1.3.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-I0CC/dcDnLdQxkTi03/Ck+c0XqOl8nmrrC9PyWLZuZY=";
+    hash = "sha256-Mu+ZPFWCHayavXZ+5GVqUBOy7YvxElyruufoTSuZEDg=";
   };
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/pybids/default.nix b/pkgs/development/python-modules/pybids/default.nix
index 9519ca65e246..f6f5a8fc18ed 100644
--- a/pkgs/development/python-modules/pybids/default.nix
+++ b/pkgs/development/python-modules/pybids/default.nix
@@ -26,14 +26,17 @@ buildPythonPackage rec {
     hash = "sha256-pahl8wi6Sf8AuVqkvi7H90ViHr+9utb14ZVmKK3rFm4=";
   };
 
+  pythonRelaxDeps = [
+    "formulaic"
+    "sqlalchemy"
+  ];
+
   nativeBuildInputs = [
     pythonRelaxDepsHook
     setuptools
     versioneer
   ] ++ versioneer.optional-dependencies.toml;
 
-  pythonRelaxDeps = [ "sqlalchemy" ];
-
   propagatedBuildInputs = [
     bids-validator
     click
@@ -65,6 +68,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python tools for querying and manipulating BIDS datasets";
     homepage = "https://github.com/bids-standard/pybids";
+    changelog = "https://github.com/bids-standard/pybids/blob/${version}/CHANGELOG.rst";
     license = licenses.mit;
     maintainers = with maintainers; [ jonringer ];
   };
diff --git a/pkgs/development/python-modules/pycaption/default.nix b/pkgs/development/python-modules/pycaption/default.nix
index 7df7ed1f70ad..ea873940e416 100644
--- a/pkgs/development/python-modules/pycaption/default.nix
+++ b/pkgs/development/python-modules/pycaption/default.nix
@@ -13,17 +13,17 @@
 
 buildPythonPackage rec {
   pname = "pycaption";
-  version = "2.2.1";
+  version = "2.2.3";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.8";
 
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "pbs";
     repo = "pycaption";
-    rev = version;
-    hash = "sha256-IPCU9MsBY+Vsk6SrR9+3j4Izfhw5LeUrK0KUa3seSs4=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-uPzeMuYoNgluXnwSMQE5lSkduBzwi8mP8K5cAKdTZUw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pycryptodome/default.nix b/pkgs/development/python-modules/pycryptodome/default.nix
index 4b37a0765f0e..444d673100bb 100644
--- a/pkgs/development/python-modules/pycryptodome/default.nix
+++ b/pkgs/development/python-modules/pycryptodome/default.nix
@@ -10,14 +10,14 @@ let
 in
 buildPythonPackage rec {
   pname = "pycryptodome";
-  version = "3.19.0";
+  version = "3.19.1";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "Legrandin";
     repo = "pycryptodome";
     rev = "refs/tags/v${version}";
-    hash = "sha256-WD+OEjePVtqlmn7h1CIfraLuEQlodkvjmYQ8q7nNoGU=";
+    hash = "sha256-+m0gF47l3c9gZ9dLdOUNW0I2W1O+OGrmsdysu7QdjvI=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pyctr/default.nix b/pkgs/development/python-modules/pyctr/default.nix
index 7f1a8d6d01b1..ddb9937df356 100644
--- a/pkgs/development/python-modules/pyctr/default.nix
+++ b/pkgs/development/python-modules/pyctr/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "pyctr";
-  version = "0.7.1";
+  version = "0.7.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-SnCps5nzrl+dkbloRbjhaOGDzKOsi8OHX2JXgoJ/XG0=";
+    hash = "sha256-lpW2pcT5oG7tBUXRj7cTD9hCx51hVhVODq9RxP9GKIg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pycuda/default.nix b/pkgs/development/python-modules/pycuda/default.nix
index 4f4c9291ae39..129bd6269cd4 100644
--- a/pkgs/development/python-modules/pycuda/default.nix
+++ b/pkgs/development/python-modules/pycuda/default.nix
@@ -24,12 +24,12 @@ let
 in
 buildPythonPackage rec {
   pname = "pycuda";
-  version = "2023.1";
+  version = "2024.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-F1/2dfDPEOOOmtwD7V3z7Y2Kv32lE0yNzOx1LooKPpE=";
+    hash = "sha256-1Q0j/2NxSCz/fUuVPvQKuByd8DjsthRIT5/VNHMnMn4=";
   };
 
   preConfigure = with lib.versions; ''
diff --git a/pkgs/development/python-modules/pycurl/default.nix b/pkgs/development/python-modules/pycurl/default.nix
index 29c4a2034b2f..80a9458e32c6 100644
--- a/pkgs/development/python-modules/pycurl/default.nix
+++ b/pkgs/development/python-modules/pycurl/default.nix
@@ -70,6 +70,7 @@ buildPythonPackage rec {
     # https://github.com/pycurl/pycurl/issues/819
     "test_multi_socket_select"
     # https://github.com/pycurl/pycurl/issues/729
+    "test_easy_pause_unpause"
     "test_multi_socket_action"
     # https://github.com/pycurl/pycurl/issues/822
     "test_request_with_verifypeer"
diff --git a/pkgs/development/python-modules/pydash/default.nix b/pkgs/development/python-modules/pydash/default.nix
index 14e7ffdfcd6e..05ae5e165c27 100644
--- a/pkgs/development/python-modules/pydash/default.nix
+++ b/pkgs/development/python-modules/pydash/default.nix
@@ -1,47 +1,63 @@
-{ stdenv
-, lib
+{ lib
+, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , invoke
 , mock
 , pytestCheckHook
 , pythonOlder
+, setuptools
 , sphinx-rtd-theme
+, typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "pydash";
-  version = "5.1.1";
-  format = "pyproject";
+  version = "7.0.6";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "dgilland";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-VbuRzKwPMh5S4GZQYnh0sZOBi4LNFjMuol95tMC43b0=";
+    repo = "pydash";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-zwtUdP2fFFE5X0SDkBDetAQbKnZ1v24DGdzN3fQLa0A=";
   };
 
+  postPatch = ''
+    sed -i "/--cov/d" setup.cfg
+    sed -i "/--no-cov/d" setup.cfg
+  '';
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    typing-extensions
+  ];
+
   nativeCheckInputs = [
     invoke
     mock
-    sphinx-rtd-theme
     pytestCheckHook
+    sphinx-rtd-theme
   ];
 
-  postPatch = ''
-    sed -i "/--cov/d" setup.cfg
-    sed -i "/--no-cov/d" setup.cfg
-  '';
-
   pythonImportsCheck = [
     "pydash"
   ];
 
+  disabledTestPaths = [
+    # Disable mypy testing
+    "tests/pytest_mypy_testing/"
+  ];
+
   meta = with lib; {
     description = "Python utility libraries for doing stuff in a functional way";
     homepage = "https://pydash.readthedocs.io";
+    changelog = "https://github.com/dgilland/pydash/blob/v${version}/CHANGELOG.rst";
     license = licenses.mit;
     maintainers = with maintainers; [ ma27 ];
   };
diff --git a/pkgs/development/python-modules/pydata-sphinx-theme/default.nix b/pkgs/development/python-modules/pydata-sphinx-theme/default.nix
index f3f74623a4c5..337a7a4fca67 100644
--- a/pkgs/development/python-modules/pydata-sphinx-theme/default.nix
+++ b/pkgs/development/python-modules/pydata-sphinx-theme/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "pydata-sphinx-theme";
-  version = "0.15.1";
+  version = "0.15.2";
 
   format = "wheel";
 
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     dist = "py3";
     python = "py3";
     pname = "pydata_sphinx_theme";
-    hash = "sha256-Bk776WE3vQrKuAQTdZ8ds4pCtR4kKbFZr3XEOnWQMgs=";
+    hash = "sha256-DF+h+pipsm2uWQZm/1dvJ+Jse6cI/udU7Lngc1ntRYg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pydeps/default.nix b/pkgs/development/python-modules/pydeps/default.nix
index f84123163ccf..560a62348541 100644
--- a/pkgs/development/python-modules/pydeps/default.nix
+++ b/pkgs/development/python-modules/pydeps/default.nix
@@ -6,23 +6,28 @@
 , pytestCheckHook
 , pythonOlder
 , pyyaml
+, setuptools
 , toml
 }:
 
 buildPythonPackage rec {
   pname = "pydeps";
-  version = "1.12.17";
-  format = "setuptools";
+  version = "1.12.18";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "thebjorn";
-    repo = pname;
+    repo = "pydeps";
     rev = "refs/tags/v${version}";
-    hash = "sha256-DVSZeNuDz/y0jh/HimV+jFgNFevMhUKOu6EhZytMMqQ=";
+    hash = "sha256-89RrAf09n42mRiWOUdHFNP4JoCP9bXMofkISyVqd+4I=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   buildInputs = [
     graphviz
   ];
diff --git a/pkgs/development/python-modules/pydoe/default.nix b/pkgs/development/python-modules/pydoe/default.nix
new file mode 100644
index 000000000000..e361d09ced3b
--- /dev/null
+++ b/pkgs/development/python-modules/pydoe/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, wheel
+, scipy
+, numpy
+}:
+
+buildPythonPackage rec {
+  pname = "pyDOE";
+  version = "0.3.8";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-y9bxSuJtPJ9zYBMgX1PqEZGt1FZwM8Pud7fdNWVmxLY=";
+    extension = "zip";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    wheel
+  ];
+  propagatedBuildInputs = [
+    scipy
+    numpy
+  ];
+
+  pythonImportsCheck = [ "pyDOE" ];
+
+  meta = with lib; {
+    description = "Design of experiments for Python";
+    homepage = "https://github.com/tisimst/pyDOE";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ doronbehar ];
+  };
+}
diff --git a/pkgs/development/python-modules/pydrive2/default.nix b/pkgs/development/python-modules/pydrive2/default.nix
index ad2d80c0a5e8..32bb5d78984f 100644
--- a/pkgs/development/python-modules/pydrive2/default.nix
+++ b/pkgs/development/python-modules/pydrive2/default.nix
@@ -1,19 +1,25 @@
 { lib
+, appdirs
 , buildPythonPackage
 , fetchPypi
+, fsspec
+, funcy
 , google-api-python-client
 , oauth2client
 , pyopenssl
-, pyyaml
 , pythonOlder
+, pyyaml
+, setuptools
+, setuptools-scm
+, tqdm
 }:
 
 buildPythonPackage rec {
   pname = "pydrive2";
   version = "1.19.0";
-  format = "setuptools";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     pname = "PyDrive2";
@@ -21,6 +27,11 @@ buildPythonPackage rec {
     hash = "sha256-Ia6n2idjXCw/cFDgICBhkfOwMFxlUDFebo491Sb4tTE=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
   propagatedBuildInputs = [
     google-api-python-client
     oauth2client
@@ -28,6 +39,16 @@ buildPythonPackage rec {
     pyyaml
   ];
 
+  passthru.optional-dependencies = {
+    fsspec = [
+      appdirs
+      fsspec
+      funcy
+      tqdm
+    ];
+  };
+
+  # Tests require a account and network access
   doCheck = false;
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/pyduotecno/default.nix b/pkgs/development/python-modules/pyduotecno/default.nix
index 48f7aa8601e5..d3fbc87e25d8 100644
--- a/pkgs/development/python-modules/pyduotecno/default.nix
+++ b/pkgs/development/python-modules/pyduotecno/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "pyduotecno";
-  version = "2024.1.1";
+  version = "2024.1.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "Cereal2nd";
     repo = "pyDuotecno";
     rev = "refs/tags/${version}";
-    hash = "sha256-+mPbx678QIV567umbmVKqBTq696pFlFXhlb4cMv54ak=";
+    hash = "sha256-lwtCTzZJn3bamZWbJoeiyxnzrIRZAi9JPjVgiVR0LG8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyemvue/default.nix b/pkgs/development/python-modules/pyemvue/default.nix
new file mode 100644
index 000000000000..d8502aaf4333
--- /dev/null
+++ b/pkgs/development/python-modules/pyemvue/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+
+# build-system
+, hatchling
+
+# propagated modules
+, requests
+, python-dateutil
+, pycognito
+, typing-extensions
+}:
+
+buildPythonPackage rec {
+  pname = "pyemvue";
+  version = "0.18.0";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-s1Uuoiog3OkqOb6PSTqh79vgyLDGFIuZMCyQKH+qG3g=";
+  };
+
+  nativeBuildInputs = [
+    hatchling
+  ];
+
+  propagatedBuildInputs = [
+    requests
+    python-dateutil
+    pycognito
+    typing-extensions
+  ];
+
+  pythonImportsCheck = [ "pyemvue" ];
+
+  # has no tests
+  doCheck = false;
+
+  meta = with lib; {
+    changelog = "https://github.com/magico13/PyEmVue/releases/tag/v${version}";
+    description = "A Python library for reading data from the Emporia Vue energy monitoring system";
+    homepage = "https://github.com/magico13/PyEmVue";
+    license = licenses.mit;
+    maintainers = with maintainers; [ presto8 ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyenphase/default.nix b/pkgs/development/python-modules/pyenphase/default.nix
index 05fccad3a89d..4826806c19f1 100644
--- a/pkgs/development/python-modules/pyenphase/default.nix
+++ b/pkgs/development/python-modules/pyenphase/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "pyenphase";
-  version = "1.17.0";
+  version = "1.19.0";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "pyenphase";
     repo = "pyenphase";
     rev = "refs/tags/v${version}";
-    hash = "sha256-GNyhUk2/CSSdigrAJ0T2F1+49PkyPxMaec3nO9/cmNo=";
+    hash = "sha256-Wj2CkOvH5mS+DaIcbrqHjK+0mG3gfyF5M9tFImeJ/ko=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pyfaidx/default.nix b/pkgs/development/python-modules/pyfaidx/default.nix
index d16b02d1c3a4..ed7997a842ae 100644
--- a/pkgs/development/python-modules/pyfaidx/default.nix
+++ b/pkgs/development/python-modules/pyfaidx/default.nix
@@ -13,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "pyfaidx";
-  version = "0.7.2.2";
+  version = "0.8.1.1";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-O3aTwFLIJpEAD+SpJHXbgv/DtachoSsQ37yHEZxLTTA=";
+    hash = "sha256-bwSCNSYZ8sxWADyiIyG9sNB2S2VnlbweQGKx+psIaGs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyfireservicerota/default.nix b/pkgs/development/python-modules/pyfireservicerota/default.nix
index 7622f858959b..fcdfdd0442d4 100644
--- a/pkgs/development/python-modules/pyfireservicerota/default.nix
+++ b/pkgs/development/python-modules/pyfireservicerota/default.nix
@@ -1,6 +1,9 @@
 { lib
 , buildPythonPackage
+, pythonOlder
 , fetchPypi
+, fetchpatch2
+, pdm-backend
 , pytz
 , oauthlib
 , requests
@@ -9,14 +12,27 @@
 
 buildPythonPackage rec {
   pname = "pyfireservicerota";
-  version = "0.0.43";
-  format = "setuptools";
+  version = "0.0.44";
+  pyproject = true;
+
+  disabled = pythonOlder "3.10";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-3+QK1BVuWYii0oYT4xXMOYJZmVKrB4EmqE0EkdFlZvE=";
+    hash = "sha256-OknGX4xP+AHXRuhizbeTVAfiOX0uRGzAly7FJ1vopDI=";
   };
 
+  postPatch = ''
+    # https://github.com/cyberjunky/python-fireservicerota/pull/1
+    substituteInPlace pyproject.toml \
+      --replace-fail '"aiohttp",' '"requests",' \
+      --replace-fail '"aiohttp_retry",' ""
+  '';
+
+  nativeBuildInputs = [
+    pdm-backend
+  ];
+
   propagatedBuildInputs = [
     pytz
     oauthlib
diff --git a/pkgs/development/python-modules/pyformlang/default.nix b/pkgs/development/python-modules/pyformlang/default.nix
index d4a055d459cd..63bf98a0ea5f 100644
--- a/pkgs/development/python-modules/pyformlang/default.nix
+++ b/pkgs/development/python-modules/pyformlang/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "pyformlang";
-  version = "1.0.4";
+  version = "1.0.6";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ysX6c8q26bcQyq6GgKBKxTdp00j+4ypb3mgM2cqCmBs=";
+    hash = "sha256-LHQM+Vy8YVfTtpWaveYgBlp74AnS/IF3Y1EbgwVku7I=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pygit2/default.nix b/pkgs/development/python-modules/pygit2/default.nix
index 50211bda6400..0a2e73c3c18e 100644
--- a/pkgs/development/python-modules/pygit2/default.nix
+++ b/pkgs/development/python-modules/pygit2/default.nix
@@ -10,24 +10,29 @@
 , pycparser
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "pygit2";
-  version = "1.13.3";
-  format = "setuptools";
+  version = "1.14.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-AlfGJgEeSvuZvbIIdUQ/cG+EIB1MkmN/AiFbmOrBPe0=";
+    hash = "sha256-9SntlmDtv5tiXMrn5RCY73NmLmFJZgkAl3LUYnqCaqg=";
   };
 
   preConfigure = lib.optionalString stdenv.isDarwin ''
     export DYLD_LIBRARY_PATH="${libgit2}/lib"
   '';
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   buildInputs = [
     libgit2
   ];
@@ -65,6 +70,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "A set of Python bindings to the libgit2 shared library";
     homepage = "https://github.com/libgit2/pygit2";
+    changelog = "https://github.com/libgit2/pygit2/blob/v${version}/CHANGELOG.md";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/pygitguardian/default.nix b/pkgs/development/python-modules/pygitguardian/default.nix
index 3d3590a37104..ad97cd944250 100644
--- a/pkgs/development/python-modules/pygitguardian/default.nix
+++ b/pkgs/development/python-modules/pygitguardian/default.nix
@@ -5,6 +5,7 @@
 , marshmallow-dataclass
 , pytestCheckHook
 , pythonOlder
+, pythonRelaxDepsHook
 , requests
 , responses
 , setuptools
@@ -26,7 +27,12 @@ buildPythonPackage rec {
     hash = "sha256-ybl6QOLb1xE6v0D1C2wKMsSU+r2gWzj24Q4pPIMBsCY=";
   };
 
+  pythonRelaxDeps = [
+    "marshmallow-dataclass"
+  ];
+
   nativeBuildInputs = [
+    pythonRelaxDepsHook
     setuptools
   ];
 
diff --git a/pkgs/development/python-modules/pygls/default.nix b/pkgs/development/python-modules/pygls/default.nix
index 74e5b243e60b..9c4d50843e22 100644
--- a/pkgs/development/python-modules/pygls/default.nix
+++ b/pkgs/development/python-modules/pygls/default.nix
@@ -1,19 +1,21 @@
 { lib
 , stdenv
 , buildPythonPackage
-, pythonOlder
 , fetchFromGitHub
-, poetry-core
 , lsprotocol
-, typeguard
+, poetry-core
 , pytest-asyncio
 , pytestCheckHook
+, pythonOlder
+, pythonRelaxDepsHook
+, typeguard
+, websockets
 }:
 
 buildPythonPackage rec {
   pname = "pygls";
-  version = "1.2.1";
-  format = "pyproject";
+  version = "1.3.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -21,11 +23,17 @@ buildPythonPackage rec {
     owner = "openlawlibrary";
     repo = "pygls";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ARez9fs50kScfMp/W/aFIOcJonpFrcfyrzJuVwou7fk=";
+    hash = "sha256-6+SMlBTi+jw+bAUYqbaxXT5QygZFj4FeeEp6bch8M1s=";
   };
 
+  pythonRelaxDeps = [
+    # https://github.com/openlawlibrary/pygls/pull/432
+    "lsprotocol"
+  ];
+
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -33,6 +41,12 @@ buildPythonPackage rec {
     typeguard
   ];
 
+  passthru.optional-dependencies = {
+    ws = [
+      websockets
+    ];
+  };
+
   nativeCheckInputs = [
     pytest-asyncio
     pytestCheckHook
@@ -46,12 +60,14 @@ buildPythonPackage rec {
     ulimit -n 1024
   '';
 
-  pythonImportsCheck = [ "pygls" ];
+  pythonImportsCheck = [
+    "pygls"
+  ];
 
   meta = with lib; {
     description = "Pythonic generic implementation of the Language Server Protocol";
     homepage = "https://github.com/openlawlibrary/pygls";
-    changelog = "https://github.com/openlawlibrary/pygls/blob/${src.rev}/CHANGELOG.md";
+    changelog = "https://github.com/openlawlibrary/pygls/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ kira-bruneau ];
   };
diff --git a/pkgs/development/python-modules/pygmo/default.nix b/pkgs/development/python-modules/pygmo/default.nix
index 0ce6a2fd3f99..d311df0a4530 100644
--- a/pkgs/development/python-modules/pygmo/default.nix
+++ b/pkgs/development/python-modules/pygmo/default.nix
@@ -28,7 +28,7 @@ toPythonModule (stdenv.mkDerivation rec {
   };
 
   cmakeFlags = [
-    "-DPYGMO_INSTALL_PATH=${placeholder "out"}/lib/${python.libPrefix}/site-packages"
+    "-DPYGMO_INSTALL_PATH=${placeholder "out"}/${python.sitePackages}"
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pygmt/default.nix b/pkgs/development/python-modules/pygmt/default.nix
index 31b9fdd7c3a1..c455bbcfab16 100644
--- a/pkgs/development/python-modules/pygmt/default.nix
+++ b/pkgs/development/python-modules/pygmt/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "pygmt";
-  version = "0.10.0";
+  version = "0.11.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "GenericMappingTools";
     repo = "pygmt";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+bkjqHjJIwk44u226q6xqeGmwMWleyc4lRfMZdDjVBA=";
+    hash = "sha256-DbewB/lP44bpNSQ4ht7n0coS2Ml7qmEU4CP91p5YtZg=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pyhanko-certvalidator/default.nix b/pkgs/development/python-modules/pyhanko-certvalidator/default.nix
index 8d3037baa454..e55936a8e41c 100644
--- a/pkgs/development/python-modules/pyhanko-certvalidator/default.nix
+++ b/pkgs/development/python-modules/pyhanko-certvalidator/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "pyhanko-certvalidator";
-  version = "0.26.2";
+  version = "0.26.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "MatthiasValvekens";
     repo = "certvalidator";
     rev = "refs/tags/v${version}";
-    hash = "sha256-yGFaRpAOTbuVfY5UefC1sdJS4FFkgkIZnHHG35p3n3E=";
+    hash = "sha256-uUmsWiN182g+kxrCny7UNLDHdAdqKk64w6vnjmGBNjM=";
   };
 
   postPatch = ''
@@ -68,8 +68,8 @@ buildPythonPackage rec {
     "test_revocation_mode_hard_aiohttp_autofetch"
     # The path could not be validated because no revocation information could be found for intermediate certificate 1
     "test_revocation_mode_hard"
-    # certificate expired 2022-09-17
-    "test_revocation_mode_soft"
+    # ValueError: Hash algorithm not known for ed448
+    "test_ed"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/pykoplenti/default.nix b/pkgs/development/python-modules/pykoplenti/default.nix
index 99f90e17b028..a8930149b1bb 100644
--- a/pkgs/development/python-modules/pykoplenti/default.nix
+++ b/pkgs/development/python-modules/pykoplenti/default.nix
@@ -7,33 +7,33 @@
 , pycryptodome
 , pydantic
 , pythonOlder
+, pythonRelaxDepsHook
 , setuptools
 }:
 
 buildPythonPackage rec {
   pname = "pykoplenti";
   version = "1.2.2";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "stegm";
-    repo = pname;
+    repo = "pykoplenti";
     rev = "refs/tags/v${version}";
     hash = "sha256-2sGkHCIGo1lzLurvQBmq+16sodAaK8v+mAbIH/Gd3+E=";
   };
 
+  pythonRelaxDeps = [
+    "pydantic"
+  ];
+
   nativeBuildInputs = [
+    pythonRelaxDepsHook
     setuptools
   ];
 
-  postPatch = ''
-    # remove with 1.1.0
-    substituteInPlace setup.cfg \
-      --replace 'version = unreleased' 'version = ${version}'
-  '';
-
   propagatedBuildInputs = [
     aiohttp
     pycryptodome
@@ -50,11 +50,14 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [ "pykoplenti" ];
+  pythonImportsCheck = [
+    "pykoplenti"
+  ];
 
   meta = with lib; {
     description = "Python REST client API for Kostal Plenticore Inverters";
     homepage = "https://github.com/stegm/pykoplenti/";
+    changelog = "https://github.com/stegm/pykoplenti/releases/tag/v${version}";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/pykwalify/default.nix b/pkgs/development/python-modules/pykwalify/default.nix
index 790b41626bf0..a49967ee6c3e 100644
--- a/pkgs/development/python-modules/pykwalify/default.nix
+++ b/pkgs/development/python-modules/pykwalify/default.nix
@@ -1,10 +1,10 @@
 { lib
 , buildPythonPackage
+, fetchpatch
 , python-dateutil
 , docopt
 , fetchPypi
 , pytestCheckHook
-, pyyaml
 , ruamel-yaml
 , testfixtures
 }:
@@ -19,10 +19,18 @@ buildPythonPackage rec {
     hash = "sha256-eWsq0+1MuZuIMItTP7L1WcMPpu+0+p/aETR/SD0kWIQ=";
   };
 
+  patches = [
+    # fix test failures with ruamel.yaml 0.18+
+    (fetchpatch {
+      name = "pykwalify-fix-tests-ruamel-yaml-0.18.patch";
+      url = "https://github.com/Grokzen/pykwalify/commit/57bb2ba5c28b6928edb3f07ef581a5a807524baf.diff";
+      hash = "sha256-XUiebDzFSvNrPpRMoc2lv9m+30cfFh0N0rznMiSdQ/0=";
+    })
+  ];
+
   propagatedBuildInputs = [
     python-dateutil
     docopt
-    pyyaml
     ruamel-yaml
   ];
 
@@ -31,10 +39,6 @@ buildPythonPackage rec {
     testfixtures
   ];
 
-  disabledTests = [
-    "test_multi_file_support"
-  ];
-
   pythonImportsCheck = [ "pykwalify" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pylgnetcast/default.nix b/pkgs/development/python-modules/pylgnetcast/default.nix
index 1e18c9f93aea..f4811bf02dfc 100644
--- a/pkgs/development/python-modules/pylgnetcast/default.nix
+++ b/pkgs/development/python-modules/pylgnetcast/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pylgnetcast";
-  version = "0.3.8";
+  version = "0.3.9";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "Drafteed";
     repo = "python-lgnetcast";
     rev = "refs/tags/v${version}";
-    hash = "sha256-UxZ4XM7n0Ryd4D967fXPTA4sqTrZwS8Tj/Q8kNGdk8Q=";
+    hash = "sha256-5lzLknuGLQryLCc4YQJn8AGuWTiSM90+8UTQ/WYfASM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pylint-django/default.nix b/pkgs/development/python-modules/pylint-django/default.nix
index d12e7268a24f..d3f22e8532ef 100644
--- a/pkgs/development/python-modules/pylint-django/default.nix
+++ b/pkgs/development/python-modules/pylint-django/default.nix
@@ -1,8 +1,11 @@
 { lib
 , buildPythonPackage
 , django
+, django-tables2
+, django-tastypie
 , factory-boy
 , fetchFromGitHub
+, poetry-core
 , pylint-plugin-utils
 , pytestCheckHook
 , pythonOlder
@@ -11,33 +14,43 @@
 buildPythonPackage rec {
   pname = "pylint-django";
   version = "2.5.4";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "PyCQA";
-    repo = pname;
+    repo = "pylint-django";
     rev = "refs/tags/v${version}";
     hash = "sha256-MNgu3LvFoohXA+JzUiHIaYFw0ssEe+H5T8Ea56LcGuI=";
   };
 
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
   propagatedBuildInputs = [
-    django
     pylint-plugin-utils
   ];
 
+  passthru.optional-dependencies = {
+    with_django = [
+      django
+    ];
+  };
+
   nativeCheckInputs = [
+    django-tables2
+    django-tastypie
     factory-boy
     pytestCheckHook
   ];
 
   disabledTests = [
-    # AttributeError, AssertionError
-    "external_django_tables2_noerror_meta_class"
-    "external_tastypie_noerror_foreign_key"
+    # AttributeError: module 'pylint.interfaces' has no attribute 'IAstroidChecker'
+    "test_migrations_plugin"
     "func_noerror_model_unicode_lambda"
-    "0001_noerror_initial"
+    "test_linter_should_be_pickleable_with_pylint_django_plugin_installed"
   ];
 
   pythonImportsCheck = [
@@ -47,6 +60,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Pylint plugin to analyze Django applications";
     homepage = "https://github.com/PyCQA/pylint-django";
+    changelog = "https://github.com/pylint-dev/pylint-django/releases/tag/v${version}";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ kamadorueda ];
   };
diff --git a/pkgs/development/python-modules/pylint-plugin-utils/default.nix b/pkgs/development/python-modules/pylint-plugin-utils/default.nix
index a8cff3800960..cdc29eb19621 100644
--- a/pkgs/development/python-modules/pylint-plugin-utils/default.nix
+++ b/pkgs/development/python-modules/pylint-plugin-utils/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, poetry-core
 , pylint
 , pytestCheckHook
 , pythonOlder
@@ -9,18 +10,22 @@
 
 buildPythonPackage rec {
   pname = "pylint-plugin-utils";
-  version = "0.7";
-  format = "setuptools";
+  version = "0.8.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "PyCQA";
-    repo = pname;
-    rev = version;
-    hash = "sha256-uDsSSUWdlzuQz6umoYLbIotOYNEnLQu041ZZVMRd2ww=";
+    repo = "pylint-plugin-utils";
+    rev = "refs/tags/${version}";
+    hash = "sha256-xuPU1txfB+6+zJjtlfvNA950S5n7/PWPPFn1F3RtvCc=";
   };
 
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
   propagatedBuildInputs = [
     pylint
     toml
diff --git a/pkgs/development/python-modules/pylutron-caseta/default.nix b/pkgs/development/python-modules/pylutron-caseta/default.nix
index e069e902687f..c95a36aa8eca 100644
--- a/pkgs/development/python-modules/pylutron-caseta/default.nix
+++ b/pkgs/development/python-modules/pylutron-caseta/default.nix
@@ -1,37 +1,50 @@
 { lib
 , async-timeout
 , buildPythonPackage
+, click
 , cryptography
 , fetchFromGitHub
+, hatchling
 , pytest-asyncio
 , pytest-timeout
 , pytestCheckHook
 , pythonOlder
-, setuptools
+, xdg
+, zeroconf
 }:
 
 buildPythonPackage rec {
   pname = "pylutron-caseta";
-  version = "0.18.3";
-  format = "pyproject";
+  version = "0.19.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "gurumitts";
-    repo = pname;
+    repo = "pylutron-caseta";
     rev = "refs/tags/v${version}";
-    hash = "sha256-tjmMu7LUne+hLLTXGqHhci9/PZiuQ10mQaARvL2sdIM=";
+    hash = "sha256-/xTHtzXEFGL2/oP1oVxJj7GO3fSZ5CwjXDdp6OLhlzM=";
   };
 
   nativeBuildInputs = [
-    setuptools
+    hatchling
   ];
 
   propagatedBuildInputs = [
     cryptography
+  ] ++ lib.optionals (pythonOlder "3.11") [
+    async-timeout
   ];
 
+  passthru.optional-dependencies = {
+    cli = [
+      click
+      xdg
+      zeroconf
+    ];
+  };
+
   nativeCheckInputs = [
     pytest-asyncio
     pytest-timeout
diff --git a/pkgs/development/python-modules/pylutron/default.nix b/pkgs/development/python-modules/pylutron/default.nix
index b55696d840f9..f217b46179f9 100644
--- a/pkgs/development/python-modules/pylutron/default.nix
+++ b/pkgs/development/python-modules/pylutron/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "pylutron";
-  version = "0.2.10";
+  version = "0.2.11";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-DKwjBQXC7O/8bFxq5shJJxRV3HYgBeS7tJXg4m3vQMY=";
+    hash = "sha256-9M7bCZD3zGZM62ID0yB/neKkF+6UW8x5m2y5vj/mYes=";
   };
 
   # Project has no tests
diff --git a/pkgs/development/python-modules/pylxd/default.nix b/pkgs/development/python-modules/pylxd/default.nix
index f3965de56b85..ee860eb6f105 100644
--- a/pkgs/development/python-modules/pylxd/default.nix
+++ b/pkgs/development/python-modules/pylxd/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "pylxd";
-  version = "2.3.1";
+  version = "2.3.2";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "lxc";
     repo = "pylxd";
-    rev = version;
-    hash = "sha256-eDRCJYjmBndMnSNuS6HD/2p/KhzqJq2qPAzMk7kC5UM=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-Q4GMz7HFpJNPYlYgLhE0a7mVCwNpdbw4XVcUGQ2gUJ0=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pymatting/01-kdtree-signature.patch b/pkgs/development/python-modules/pymatting/01-kdtree-signature.patch
deleted file mode 100644
index 2193b260aea1..000000000000
--- a/pkgs/development/python-modules/pymatting/01-kdtree-signature.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/tests/test_kdtree.py b/tests/test_kdtree.py
-index 0110083..049fa07 100644
---- a/tests/test_kdtree.py
-+++ b/tests/test_kdtree.py
-@@ -23,7 +23,7 @@ def run_kdtree():
- 
-     tree = cKDTree(data_points)
- 
--    distances2, indices2 = tree.query(query_points, k=k, n_jobs=-1)
-+    distances2, indices2 = tree.query(query_points, k=k)
- 
-     t2 = time.perf_counter()
- 
diff --git a/pkgs/development/python-modules/pymatting/default.nix b/pkgs/development/python-modules/pymatting/default.nix
index 5e3b39dd523a..371a4a03c2f3 100644
--- a/pkgs/development/python-modules/pymatting/default.nix
+++ b/pkgs/development/python-modules/pymatting/default.nix
@@ -4,14 +4,15 @@
 , numba
 , numpy
 , pillow
-, scipy
 , pytestCheckHook
-,
+, scipy
+, setuptools
 }:
+
 buildPythonPackage rec {
   pname = "pymatting";
   version = "1.1.10";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "pymatting";
@@ -20,7 +21,9 @@ buildPythonPackage rec {
     hash = "sha256-wHCTqcBvVN/pTXH3iW57DPpMEsnehutRQB5NaugS6Zs=";
   };
 
-  patches = [ ./01-kdtree-signature.patch ];
+  nativeBuildInputs = [
+    setuptools
+  ];
 
   propagatedBuildInputs = [
     numba
@@ -29,12 +32,14 @@ buildPythonPackage rec {
     scipy
   ];
 
-  pythonImportsCheck = [ "pymatting" ];
-
   nativeCheckInputs = [
     pytestCheckHook
   ];
 
+  pythonImportsCheck = [
+    "pymatting"
+  ];
+
   disabledTests = [
     # no access to input data set
     # see: https://github.com/pymatting/pymatting/blob/master/tests/download_images.py
diff --git a/pkgs/development/python-modules/pymemcache/default.nix b/pkgs/development/python-modules/pymemcache/default.nix
index 68925fe7f4a9..74784a35ff95 100644
--- a/pkgs/development/python-modules/pymemcache/default.nix
+++ b/pkgs/development/python-modules/pymemcache/default.nix
@@ -5,6 +5,7 @@
 , mock
 , six
 , pytestCheckHook
+, python-memcached
 , pythonOlder
 , zstd
 , stdenv
@@ -32,6 +33,7 @@ buildPythonPackage rec {
     faker
     mock
     pytestCheckHook
+    python-memcached
     zstd
   ];
 
@@ -39,10 +41,7 @@ buildPythonPackage rec {
     sed -i "/--cov/d" setup.cfg
   '';
 
-  disabledTests = [
-    # python-memcached is not available (last release in 2017)
-    "TestClientSocketConnect"
-  ] ++ lib.optionals stdenv.is32bit [
+  disabledTests = lib.optionals stdenv.is32bit [
     # test_compressed_complex is broken on 32-bit platforms
     # this can be removed on the next version bump
     # see also https://github.com/pinterest/pymemcache/pull/480
diff --git a/pkgs/development/python-modules/pymilvus/default.nix b/pkgs/development/python-modules/pymilvus/default.nix
index f62b039bbb45..e0a68e2a4385 100644
--- a/pkgs/development/python-modules/pymilvus/default.nix
+++ b/pkgs/development/python-modules/pymilvus/default.nix
@@ -5,12 +5,14 @@
 , gitpython
 , grpcio
 , grpcio-testing
+, minio
 , mmh3
 , pandas
+, pyarrow
 , pytestCheckHook
-, python
 , pythonOlder
 , pythonRelaxDepsHook
+, requests
 , scikit-learn
 , setuptools-scm
 , ujson
@@ -19,19 +21,20 @@
 
 buildPythonPackage rec {
   pname = "pymilvus";
-  version = "2.3.3";
-  format = "pyproject";
+  version = "2.3.6";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "milvus-io";
-    repo = pname;
+    repo = "pymilvus";
     rev = "refs/tags/v${version}";
-    hash = "sha256-qnm6JaeF2Li2NgVGZ6yJ2yz1n3pVZqkF4Ee+q4v/kdA=";
+    hash = "sha256-K7k3MTOEm9+HDwMps9C8Al0Jmp1ptJw3pN1LEBOUz0U=";
   };
 
   pythonRelaxDeps = [
+    "environs"
     "grpcio"
   ];
 
@@ -45,8 +48,11 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     environs
     grpcio
+    minio
     mmh3
     pandas
+    pyarrow
+    requests
     ujson
   ];
 
diff --git a/pkgs/development/python-modules/pyngo/default.nix b/pkgs/development/python-modules/pyngo/default.nix
index 3616d5eaec6b..a52a09166c5e 100644
--- a/pkgs/development/python-modules/pyngo/default.nix
+++ b/pkgs/development/python-modules/pyngo/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "pyngo";
-  version = "2.0.0";
+  version = "2.0.1";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "yezz123";
     repo = "pyngo";
     rev = "refs/tags/${version}";
-    hash = "sha256-jHPZjS/J1VLpsLN2wg5UJCgavoSEs4Uogo4GI6bZMuY=";
+    hash = "sha256-wvy1L21AnQ4JP5seAh6DWksQU2OcbYTXKcixpFryH4w=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyngrok/default.nix b/pkgs/development/python-modules/pyngrok/default.nix
index 04f474a8aed5..ad2b427feadd 100644
--- a/pkgs/development/python-modules/pyngrok/default.nix
+++ b/pkgs/development/python-modules/pyngrok/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "pyngrok";
-  version = "7.0.5";
+  version = "7.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-YTe9n5cZLYQ9ghTOF8MHg/1d8iRElPHNnAQj0pnEjR4=";
+    hash = "sha256-M+yMx788hUfTmGX7gFyvUvd1fH/fK7tNWdFpiH3m2jA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pynitrokey/default.nix b/pkgs/development/python-modules/pynitrokey/default.nix
index c00032cb2c4e..58f54f148866 100644
--- a/pkgs/development/python-modules/pynitrokey/default.nix
+++ b/pkgs/development/python-modules/pynitrokey/default.nix
@@ -30,7 +30,7 @@
 
 let
   pname = "pynitrokey";
-  version = "0.4.44";
+  version = "0.4.45";
   mainProgram = "nitropy";
 in
 
@@ -40,7 +40,7 @@ buildPythonPackage {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-SWLxiUAE8AVa+EYjOk0kzOcW65TJbvUe627VmJY7nFY=";
+    hash = "sha256-iY4ThrmXP7pEjTYYU4lePVAbuJGTdHX3iKswXzuf7W8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pynndescent/default.nix b/pkgs/development/python-modules/pynndescent/default.nix
index 9817ba9935d9..2488222b5f4d 100644
--- a/pkgs/development/python-modules/pynndescent/default.nix
+++ b/pkgs/development/python-modules/pynndescent/default.nix
@@ -1,13 +1,13 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, fetchpatch
 , importlib-metadata
 , joblib
 , llvmlite
 , numba
 , scikit-learn
 , scipy
+, setuptools
 , pytestCheckHook
 , pythonOlder
 }:
@@ -15,7 +15,7 @@
 buildPythonPackage rec {
   pname = "pynndescent";
   version = "0.5.11";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
@@ -24,12 +24,8 @@ buildPythonPackage rec {
     hash = "sha256-b0TO2dWp2iyH2bL/8wu1MIVAwGV2BeTVzeftMnW7rVA=";
   };
 
-  patches = [
-    # https://github.com/lmcinnes/pynndescent/pull/224
-    (fetchpatch {
-      url = "https://github.com/lmcinnes/pynndescent/commit/86e0d716a3a4d5f4e6a0a3c2952f6fe339524e96.patch";
-      hash = "sha256-dfnT5P9Qsn/nSAr4Ysqo/olbLLfoZXvBRz33yzhN3J4=";
-    })
+  nativeBuildInputs = [
+    setuptools
   ];
 
   propagatedBuildInputs = [
@@ -46,16 +42,6 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  disabledTests = [
-    # numpy.core._exceptions._UFuncNoLoopError
-    "test_sparse_nn_descent_query_accuracy_angular"
-    "test_nn_descent_query_accuracy_angular"
-    "test_alternative_distances"
-    # scipy: ValueError: Unknown Distance Metric: wminkowski
-    # https://github.com/scikit-learn/scikit-learn/pull/21741
-    "test_weighted_minkowski"
-  ];
-
   pythonImportsCheck = [
     "pynndescent"
   ];
diff --git a/pkgs/development/python-modules/pyosohotwaterapi/default.nix b/pkgs/development/python-modules/pyosohotwaterapi/default.nix
new file mode 100644
index 000000000000..bd2b10976a07
--- /dev/null
+++ b/pkgs/development/python-modules/pyosohotwaterapi/default.nix
@@ -0,0 +1,63 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, loguru
+, numpy
+, pythonOlder
+, setuptools
+, unasync
+, urllib3
+}:
+
+buildPythonPackage rec {
+  pname = "pyosohotwaterapi";
+  version = "1.1.4";
+  pyproject = true;
+
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "osohotwateriot";
+    repo = "apyosohotwaterapi";
+    rev = "refs/tags/${version}";
+    hash = "sha256-7FLGmmndrFqSl4oC8QFIYNlFJPr+xbiZG5ZRt4vx8+s=";
+  };
+
+  postPatch = ''
+    # https://github.com/osohotwateriot/apyosohotwaterapi/pull/3
+    substituteInPlace requirements.txt \
+      --replace "pre-commit" ""
+  '';
+
+  nativeBuildInputs = [
+    setuptools
+    unasync
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    loguru
+    numpy
+    urllib3
+  ];
+
+  preBuild = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "apyosoenergyapi"
+  ];
+
+  meta = with lib; {
+    description = "Module for using the OSO Hotwater API";
+    homepage = "https://github.com/osohotwateriot/apyosohotwaterapi";
+    changelog = "https://github.com/osohotwateriot/apyosohotwaterapi/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyprusalink/default.nix b/pkgs/development/python-modules/pyprusalink/default.nix
index 0a1d8afc3bd1..0356f899594b 100644
--- a/pkgs/development/python-modules/pyprusalink/default.nix
+++ b/pkgs/development/python-modules/pyprusalink/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "pyprusalink";
-  version = "2.0.0";
+  version = "2.0.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "home-assistant-libs";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-wboyISggzC50cZ+J/NC0ytWXwCLBmBpP9/MtPkRb+Zs=";
+    hash = "sha256-wwH4LE8wi8eb7QwT7N1mNtVleoWscDEOu2vrXKDktwU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyqtwebengine/default.nix b/pkgs/development/python-modules/pyqtwebengine/default.nix
index 9dc076a5e8d1..4ad16f6ea0a6 100644
--- a/pkgs/development/python-modules/pyqtwebengine/default.nix
+++ b/pkgs/development/python-modules/pyqtwebengine/default.nix
@@ -10,14 +10,14 @@ let
   inherit (darwin) autoSignDarwinBinariesHook;
 in buildPythonPackage (rec {
   pname = "PyQtWebEngine";
-  version = "5.15.4";
+  version = "5.15.6";
   format = "pyproject";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06fc35hzg346a9c86dk7vzm1fakkgzn5l52jfq3bix3587sjip6f";
+    sha256 = "sha256-riQe8qYceCk5xYtSwq6lOtmbMPOTTINY1eCm67P9ByE=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pyradios/default.nix b/pkgs/development/python-modules/pyradios/default.nix
index 8f9b96e5d12a..42b46720fca2 100644
--- a/pkgs/development/python-modules/pyradios/default.nix
+++ b/pkgs/development/python-modules/pyradios/default.nix
@@ -2,26 +2,26 @@
 , buildPythonPackage
 , fetchPypi
 , appdirs
-, requests
+, httpx
 , setuptools
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pyradios";
-  version = "2.0.0";
+  version = "2.1.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Uqg/owmf2popAhyanAUIdSWpXAGCWkQja4P944BpNhc=";
+    hash = "sha256-XTpw8bgFZo35PJngr9oweU6fY3KAphJsrEhkKzWHLIA=";
   };
 
   propagatedBuildInputs = [
     appdirs
-    requests
+    httpx
     setuptools
   ];
 
diff --git a/pkgs/development/python-modules/pyrdfa3/default.nix b/pkgs/development/python-modules/pyrdfa3/default.nix
index ef6d33cb8e80..51f6411cb4fb 100644
--- a/pkgs/development/python-modules/pyrdfa3/default.nix
+++ b/pkgs/development/python-modules/pyrdfa3/default.nix
@@ -1,17 +1,19 @@
 { lib
 , buildPythonPackage
-, fetchPypi
 , fetchpatch
-, isPy27
-, rdflib
+, fetchPypi
 , html5lib
+, pythonOlder
+, rdflib
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "pyrdfa3";
   version = "3.5.3";
-  format = "setuptools";
-  disabled = isPy27;
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit version;
@@ -21,6 +23,7 @@ buildPythonPackage rec {
 
   patches = [
     (fetchpatch {
+      # https://github.com/RDFLib/pyrdfa3/pull/40
       name = "CVE-2022-4396.patch";
       url = "https://github.com/RDFLib/pyrdfa3/commit/ffd1d62dd50d5f4190013b39cedcdfbd81f3ce3e.patch";
       hash = "sha256-prRrOwylYcEqKLr/8LIpyJ5Yyt+6+HTUqH5sQXU8tqc=";
@@ -31,21 +34,28 @@ buildPythonPackage rec {
     substituteInPlace setup.py \
       --replace "'html = pyRdfa.rdflibparsers:StructuredDataParser'" "'html = pyRdfa.rdflibparsers:StructuredDataParser'," \
       --replace "'hturtle = pyRdfa.rdflibparsers:HTurtleParser'" "'hturtle = pyRdfa.rdflibparsers:HTurtleParser',"
+    # https://github.com/RDFLib/pyrdfa3/issues/31
+    substituteInPlace pyRdfa/utils.py \
+      --replace "imp," ""
   '';
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     rdflib
     html5lib
   ];
 
-  # Does not work with python3
-  doCheck = false;
-
-  pythonImportsCheck = [ "pyRdfa" ];
+  pythonImportsCheck = [
+    "pyRdfa"
+  ];
 
   meta = with lib; {
     description = "RDFa 1.1 distiller/parser library";
-    homepage = "https://www.w3.org/2012/pyRdfa/";
+    homepage = "https://github.com/prrvchr/pyrdfa3/";
+    changelog = "https://github.com/prrvchr/pyrdfa3/releases/tag/v${version}";
     license = licenses.w3c;
     maintainers = with maintainers; [ ambroisie ];
   };
diff --git a/pkgs/development/python-modules/pyrfc3339/default.nix b/pkgs/development/python-modules/pyrfc3339/default.nix
index 9345b819f75c..368f3cda24de 100644
--- a/pkgs/development/python-modules/pyrfc3339/default.nix
+++ b/pkgs/development/python-modules/pyrfc3339/default.nix
@@ -14,12 +14,13 @@
 }:
 
 buildPythonPackage rec {
-  pname = "pyRFC3339";
+  pname = "pyrfc3339";
   version = "1.1";
   pyproject = true;
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "pyRFC3339";
+    inherit version;
     sha256 = "06jv7ar7lpvvk0dixzwdr3wgm0g1lipxs429s2z7knwwa7hwpf41";
   };
 
diff --git a/pkgs/development/python-modules/pysigma-backend-elasticsearch/default.nix b/pkgs/development/python-modules/pysigma-backend-elasticsearch/default.nix
index e6b55788735a..a66a8cafce2b 100644
--- a/pkgs/development/python-modules/pysigma-backend-elasticsearch/default.nix
+++ b/pkgs/development/python-modules/pysigma-backend-elasticsearch/default.nix
@@ -10,8 +10,8 @@
 
 buildPythonPackage rec {
   pname = "pysigma-backend-elasticsearch";
-  version = "1.0.9";
-  format = "pyproject";
+  version = "1.0.10";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "SigmaHQ";
     repo = "pySigma-backend-elasticsearch";
     rev = "refs/tags/v${version}";
-    hash = "sha256-OZaUKEEvgEIukEcAHB9ci/XWCU+h1CvQTU3gwWBOBkY=";
+    hash = "sha256-oH+47J/7zpJDOAVQ27qIOFtlYfNlzIP6OSp7ogrmdpY=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pysnmplib/default.nix b/pkgs/development/python-modules/pysnmplib/default.nix
index 587bb4762716..abcbe70562de 100644
--- a/pkgs/development/python-modules/pysnmplib/default.nix
+++ b/pkgs/development/python-modules/pysnmplib/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pysnmplib";
-  version = "5.0.23";
+  version = "5.0.24";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "pysnmp";
     repo = "pysnmp";
     rev = "refs/tags/v${version}";
-    hash = "sha256-1h87fqaWMJN25SOD0xOkP3PFm1GPK99sT0o6ILCFVUI=";
+    hash = "sha256-AtQqXiy943cYhHDsyz9Yk5uA4xK7Q4p21CT3X3zYzrQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pysolcast/default.nix b/pkgs/development/python-modules/pysolcast/default.nix
index 5e740e78e6a8..1eab58761440 100644
--- a/pkgs/development/python-modules/pysolcast/default.nix
+++ b/pkgs/development/python-modules/pysolcast/default.nix
@@ -9,6 +9,7 @@
 , requests
 , responses
 , poetry-core
+, pythonRelaxDepsHook
 }:
 
 buildPythonPackage rec {
@@ -25,8 +26,13 @@ buildPythonPackage rec {
     hash = "sha256-jLhM47o6LvkPux0kusOrRk4TDS6VLWE0QMEiQxlBCwo=";
   };
 
+  pythonRelaxDeps = [
+    "responses"
+  ];
+
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyspellchecker/default.nix b/pkgs/development/python-modules/pyspellchecker/default.nix
index 0a8b0162ad74..ee8d980c1bb0 100644
--- a/pkgs/development/python-modules/pyspellchecker/default.nix
+++ b/pkgs/development/python-modules/pyspellchecker/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "pyspellchecker";
-  version = "0.7.3";
+  version = "0.8.1";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "barrust";
     repo = "pyspellchecker";
     rev = "refs/tags/v${version}";
-    hash = "sha256-DUFJGO0Ncobr36k0hQRgeHf77Mds53JJHOMlf4/zfAI=";
+    hash = "sha256-8IwTMj/RqMc9UqhzyvmrirPGuMEwj3iMr+FmF+8312U=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyswitchbot/default.nix b/pkgs/development/python-modules/pyswitchbot/default.nix
index 7f831e1d8e47..3ee728d7ef11 100644
--- a/pkgs/development/python-modules/pyswitchbot/default.nix
+++ b/pkgs/development/python-modules/pyswitchbot/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "pyswitchbot";
-  version = "0.44.0";
+  version = "0.44.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "Danielhiversen";
     repo = "pySwitchbot";
     rev = "refs/tags/${version}";
-    hash = "sha256-8F0mcZuGU3CiB3pGbAVReKAjvqFLMNa3EHLOOVujgAo=";
+    hash = "sha256-i3OQ2QOBMaiNTyq44wbnHZ2iqAXEYB16NWKWzOza1Jo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pytedee-async/default.nix b/pkgs/development/python-modules/pytedee-async/default.nix
index 96bb9bca21d8..f4ce2c7bcd89 100644
--- a/pkgs/development/python-modules/pytedee-async/default.nix
+++ b/pkgs/development/python-modules/pytedee-async/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "pytedee-async";
-  version = "0.2.11";
+  version = "0.2.13";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "zweckj";
     repo = "pytedee_async";
     rev = "refs/tags/v${version}";
-    hash = "sha256-mBTY2JU79Hk6P+oWQ+2FD0BYHL1c865EvnTUl6H+gnk=";
+    hash = "sha256-3W+eqkniDMoDKeute5w1QyklOc/aren/Q8txBEI/4ys=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pytest-ansible/default.nix b/pkgs/development/python-modules/pytest-ansible/default.nix
index 705c578f3bd5..b73ae05a8cce 100644
--- a/pkgs/development/python-modules/pytest-ansible/default.nix
+++ b/pkgs/development/python-modules/pytest-ansible/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "pytest-ansible";
-  version = "24.1.1";
+  version = "24.1.2";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "ansible";
     repo = "pytest-ansible";
     rev = "refs/tags/v${version}";
-    hash = "sha256-UPQx+CGJgaK4XVNngtzzncSueQN9LWh1gMmH5nGtPNk=";
+    hash = "sha256-NtGk+azpSZZm9PUf6Q1Qipo/zaUH+bed7k3oFnQyKjw=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pytest-cases/default.nix b/pkgs/development/python-modules/pytest-cases/default.nix
index bbc67a278855..1942a362a176 100644
--- a/pkgs/development/python-modules/pytest-cases/default.nix
+++ b/pkgs/development/python-modules/pytest-cases/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "pytest-cases";
-  version = "3.8.1";
+  version = "3.8.2";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Sdf2+K1TTlpuc/uPX9OJhmBvF7Ru5V9+vuB6VcZ3ygE=";
+    hash = "sha256-JM7AEoyCL1G19AL6zgnnBJlU2WddsspnX84e9/j3Seg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pytest-check/default.nix b/pkgs/development/python-modules/pytest-check/default.nix
index ed62f69d4818..efa2cc4049bc 100644
--- a/pkgs/development/python-modules/pytest-check/default.nix
+++ b/pkgs/development/python-modules/pytest-check/default.nix
@@ -8,20 +8,20 @@
 
 buildPythonPackage rec {
   pname = "pytest-check";
-  version = "2.2.4";
-  format = "pyproject";
+  version = "2.3.1";
+  pyproject = true;
 
   src = fetchPypi {
     pname = "pytest_check";
     inherit version;
-    hash = "sha256-0uaWYDFB9bLekFuTWD5FmE7DxhzscCZJ3rEL2XSFYLs=";
+    hash = "sha256-UbjxiozKpCbF2RPE4ORvAUqqdXlIHqA9Itfh9Jj2ibI=";
   };
 
   nativeBuildInputs = [
     flit-core
   ];
 
-  propagatedBuildInputs = [
+  buildInputs = [
     pytest
   ];
 
@@ -29,10 +29,15 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pythonImportsCheck = [
+    "pytest_check"
+  ];
+
   meta = with lib; {
     description = "pytest plugin allowing multiple failures per test";
     homepage = "https://github.com/okken/pytest-check";
+    changelog = "https://github.com/okken/pytest-check/releases/tag/${version}";
     license = licenses.mit;
-    maintainers = [ maintainers.flokli ];
+    maintainers = with maintainers; [ flokli ];
   };
 }
diff --git a/pkgs/development/python-modules/pytest-django/default.nix b/pkgs/development/python-modules/pytest-django/default.nix
index a9c8743badf8..531ad08dec46 100644
--- a/pkgs/development/python-modules/pytest-django/default.nix
+++ b/pkgs/development/python-modules/pytest-django/default.nix
@@ -7,7 +7,6 @@
 , django-configurations
 , pytest
 , pytestCheckHook
-, pytest-xdist
 }:
 buildPythonPackage rec {
   pname = "pytest-django";
@@ -35,7 +34,6 @@ buildPythonPackage rec {
   nativeCheckInputs = [
     django-configurations
     pytestCheckHook
-    pytest-xdist
   ];
 
   preCheck = ''
@@ -51,6 +49,8 @@ buildPythonPackage rec {
     "test_settings_restored"
   ];
 
+  __darwinAllowLocalNetworking = true;
+
   meta = with lib; {
     description = "py.test plugin for testing of Django applications";
     homepage = "https://pytest-django.readthedocs.org/en/latest/";
diff --git a/pkgs/development/python-modules/pytest-random-order/default.nix b/pkgs/development/python-modules/pytest-random-order/default.nix
index 5218f0a778e5..2b2b6624c099 100644
--- a/pkgs/development/python-modules/pytest-random-order/default.nix
+++ b/pkgs/development/python-modules/pytest-random-order/default.nix
@@ -1,28 +1,49 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pythonOlder
+, py
 , pytest
+, pytest-xdist
+, pytestCheckHook
+, pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
-  version = "1.1.0";
-  format = "setuptools";
   pname = "pytest-random-order";
+  version = "1.1.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-2+beu5NTp6+YTMnt2+s1d91Nu8wVKaeePSH2jtm0VgU=";
+    hash = "sha256-RHLX008fHF86NZxP/FwT7QZSMvMeyhnIhEwatAbnkIA=";
   };
 
-  disabled = pythonOlder "3.5";
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  buildInputs = [
+    pytest
+  ];
+
+  nativeCheckInputs = [
+    py
+    pytest-xdist
+    pytestCheckHook
+  ];
 
-  buildInputs = [ pytest ];
+  pythonImportsCheck = [
+    "random_order"
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/jbasko/pytest-random-order";
     description = "Randomise the order of tests with some control over the randomness";
+    changelog = "https://github.com/jbasko/pytest-random-order/releases/tag/v${version}";
     license = licenses.mit;
-    maintainers = [ maintainers.prusnak ];
+    maintainers = with maintainers; [ prusnak ];
   };
 }
diff --git a/pkgs/development/python-modules/python-benedict/default.nix b/pkgs/development/python-modules/python-benedict/default.nix
index 65a27c9b53cf..9b6ffe4e0fe8 100644
--- a/pkgs/development/python-modules/python-benedict/default.nix
+++ b/pkgs/development/python-modules/python-benedict/default.nix
@@ -7,6 +7,7 @@
 , openpyxl
 , orjson
 , phonenumbers
+, beautifulsoup4
 , pytestCheckHook
 , python-dateutil
 , python-decouple
@@ -16,7 +17,7 @@
 , pythonRelaxDepsHook
 , pyyaml
 , requests
-, six
+, setuptools
 , toml
 , xlrd
 , xmltodict
@@ -24,52 +25,94 @@
 
 buildPythonPackage rec {
   pname = "python-benedict";
-  version = "0.33.0";
-  format = "setuptools";
+  version = "0.33.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "fabiocaccamo";
-    repo = pname;
+    repo = "python-benedict";
     rev = "refs/tags/${version}";
-    hash = "sha256-SJBU7jMnyLBdWQPQ/UGbVklKUOrCM3fMnOkXKHQnyPI=";
+    hash = "sha256-QRWyMqHW4C3+718mgp9z/dQ1loesm0Vaf2TzW3yqF3A=";
   };
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
-
   pythonRelaxDeps = [
     "boto3"
   ];
 
+  nativeBuildInputs = [
+    pythonRelaxDepsHook
+    setuptools
+  ];
+
   propagatedBuildInputs = [
-    boto3
-    ftfy
-    mailchecker
-    openpyxl
-    phonenumbers
-    python-dateutil
     python-fsutil
     python-slugify
-    pyyaml
     requests
-    toml
-    xlrd
-    xmltodict
   ];
 
+  passthru.optional-dependencies = {
+    all = [
+      beautifulsoup4
+      boto3
+      ftfy
+      mailchecker
+      openpyxl
+      phonenumbers
+      python-dateutil
+      pyyaml
+      toml
+      xlrd
+      xmltodict
+    ];
+    html = [
+      beautifulsoup4
+      xmltodict
+    ];
+    io = [
+      beautifulsoup4
+      openpyxl
+      pyyaml
+      toml
+      xlrd
+      xmltodict
+    ];
+    parse = [
+      ftfy
+      mailchecker
+      phonenumbers
+      python-dateutil
+    ];
+    s3 = [
+      boto3
+    ];
+    toml = [
+      toml
+    ];
+    xls = [
+      openpyxl
+      xlrd
+    ];
+    xml = [
+      xmltodict
+    ];
+    yaml = [
+      pyyaml
+    ];
+  };
+
   nativeCheckInputs = [
     orjson
     pytestCheckHook
     python-decouple
-    six
-  ];
+  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
   disabledTests = [
     # Tests require network access
     "test_from_base64_with_valid_url_valid_content"
+    "test_from_html_with_valid_file_valid_content"
+    "test_from_html_with_valid_url_valid_content"
     "test_from_json_with_valid_url_valid_content"
     "test_from_pickle_with_valid_url_valid_content"
     "test_from_plist_with_valid_url_valid_content"
diff --git a/pkgs/development/python-modules/python-creole/default.nix b/pkgs/development/python-modules/python-creole/default.nix
index 52d13d452aff..7f27466fa2be 100644
--- a/pkgs/development/python-modules/python-creole/default.nix
+++ b/pkgs/development/python-modules/python-creole/default.nix
@@ -12,7 +12,7 @@
 
 # tests
 , pytestCheckHook
-, readme_renderer
+, readme-renderer
 , textile
 }:
 
@@ -58,7 +58,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     pytestCheckHook
-    readme_renderer
+    readme-renderer
     textile
   ];
 
diff --git a/pkgs/development/python-modules/python-docs-theme/default.nix b/pkgs/development/python-modules/python-docs-theme/default.nix
index 464697c35bfa..270df8b2accf 100644
--- a/pkgs/development/python-modules/python-docs-theme/default.nix
+++ b/pkgs/development/python-modules/python-docs-theme/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "python-docs-theme";
-  version = "2023.9";
+  version = "2024.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "python";
     repo = "python-docs-theme";
     rev = "refs/tags/${version}";
-    hash = "sha256-XVwMEfprTNdNnaW38HMCAu4CswdVjBXYtNWBgqXfbno=";
+    hash = "sha256-nU8KQu89/xWvR6xoIOKsGrOqDjFhA3TgHROHfbAqCRU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/python-frontmatter/default.nix b/pkgs/development/python-modules/python-frontmatter/default.nix
index c359d4ee87f7..eab892f49283 100644
--- a/pkgs/development/python-modules/python-frontmatter/default.nix
+++ b/pkgs/development/python-modules/python-frontmatter/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "python-frontmatter";
-  version = "1.0.1";
+  version = "1.1.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "eyeseast";
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-lkBCKZ1fZF580+4TnHYkfaGJjsWk7/Ksnk7VagZuef8=";
+    sha256 = "sha256-Sr0RbNVk87Zu01U7nkuPUSnl1bm6G72EZDP/eDn099s=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/python-fsutil/default.nix b/pkgs/development/python-modules/python-fsutil/default.nix
index 0e362ea35f18..5a347071f620 100644
--- a/pkgs/development/python-modules/python-fsutil/default.nix
+++ b/pkgs/development/python-modules/python-fsutil/default.nix
@@ -4,22 +4,27 @@
 , pytestCheckHook
 , pythonOlder
 , requests
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "python-fsutil";
-  version = "0.13.0";
-  format = "setuptools";
+  version = "0.13.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "fabiocaccamo";
-    repo = pname;
+    repo = "python-fsutil";
     rev = "refs/tags/${version}";
-    hash = "sha256-RbpbFd+GqFPl88FqKvYEE6HcwFRzPDUTs3vMYM6x7es=";
+    hash = "sha256-yY8hhw6uNKqrcj0geoQeGN/JCDJVja7pCPUHwoViL64=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     requests
   ];
diff --git a/pkgs/development/python-modules/python-gitlab/default.nix b/pkgs/development/python-modules/python-gitlab/default.nix
index 9c708b735ce2..6931a0d4ee45 100644
--- a/pkgs/development/python-modules/python-gitlab/default.nix
+++ b/pkgs/development/python-modules/python-gitlab/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "python-gitlab";
-  version = "4.2.0";
+  version = "4.4.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-+HDXb5jJXQXEM5nXOx6qtZxnGzJ5ODDNL53fMsyTVB4=";
+    hash = "sha256-HRF797QzroJV5ddOcsZgl49Q7oXrYiSMn7Uu9Dw+OBQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/python-homewizard-energy/default.nix b/pkgs/development/python-modules/python-homewizard-energy/default.nix
index ca6c2770db46..7ecd509f9b5d 100644
--- a/pkgs/development/python-modules/python-homewizard-energy/default.nix
+++ b/pkgs/development/python-modules/python-homewizard-energy/default.nix
@@ -13,8 +13,8 @@
 
 buildPythonPackage rec {
   pname = "python-homewizard-energy";
-  version = "4.1.1";
-  format = "pyproject";
+  version = "4.2.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
@@ -22,12 +22,12 @@ buildPythonPackage rec {
     owner = "DCSBL";
     repo = "python-homewizard-energy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-p7uwodjC+wTGrlKf4i4ZRTPg9Qh9krsmwPpWNdF6J4U=";
+    hash = "sha256-CNSZBH+D74Y71k7Ws0OlgN1/i/lWXlkz6MC3IXL5ycQ=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace 'version = "0.0.0"' 'version = "${version}"'
+      --replace-fail 'version = "0.0.0"' 'version = "${version}"'
   '';
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/python-kasa/default.nix b/pkgs/development/python-modules/python-kasa/default.nix
index dd2b64173794..2c5262a47ec1 100644
--- a/pkgs/development/python-modules/python-kasa/default.nix
+++ b/pkgs/development/python-modules/python-kasa/default.nix
@@ -1,8 +1,10 @@
 { lib
+, aiohttp
 , anyio
 , async-timeout
 , asyncclick
 , buildPythonPackage
+, cryptography
 , fetchFromGitHub
 , kasa-crypt
 , orjson
@@ -17,16 +19,16 @@
 
 buildPythonPackage rec {
   pname = "python-kasa";
-  version = "0.5.4";
-  format = "pyproject";
+  version = "0.6.2.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
-    owner = pname;
-    repo = pname;
+    owner = "python-kasa";
+    repo = "python-kasa";
     rev = "refs/tags/${version}";
-    hash = "sha256-wGPMrYaTtKkkNW88eyiiciFcBSTRqqChYi6e15WUCHo=";
+    hash = "sha256-iCqJY3qkA3ZVXTCfxvQoaZsaqGui8PwKGAmLXKZgLJs=";
   };
 
   nativeBuildInputs = [
@@ -34,9 +36,11 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
+    aiohttp
     anyio
     async-timeout
     asyncclick
+    cryptography
     pydantic
   ];
 
@@ -48,7 +52,7 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    speedup = [
+    speedups = [
       kasa-crypt
       orjson
     ];
diff --git a/pkgs/development/python-modules/python-lsp-server/default.nix b/pkgs/development/python-modules/python-lsp-server/default.nix
index 96ba4c367033..9d5630a22360 100644
--- a/pkgs/development/python-modules/python-lsp-server/default.nix
+++ b/pkgs/development/python-modules/python-lsp-server/default.nix
@@ -35,7 +35,7 @@
 
 buildPythonPackage rec {
   pname = "python-lsp-server";
-  version = "1.9.0";
+  version = "1.10.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -44,7 +44,7 @@ buildPythonPackage rec {
     owner = "python-lsp";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-9za0et/W+AwrjqUVoHwk8oqLXk4eqgRON8Z4F5GSKXM=";
+    hash = "sha256-dh33m7wgOwUETjdNqqDKZnpTgbrYCg9/XXC296tHm4w=";
   };
 
   postPatch = ''
@@ -144,6 +144,7 @@ buildPythonPackage rec {
     # https://github.com/python-lsp/python-lsp-server/issues/243
     "test_numpy_completions"
     "test_workspace_loads_pycodestyle_config"
+    "test_autoimport_code_actions_and_completions_for_notebook_document"
   ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
     # pyqt5 is broken on aarch64-darwin
     "test_pyqt_completion"
diff --git a/pkgs/development/python-modules/python-lzo/default.nix b/pkgs/development/python-modules/python-lzo/default.nix
index e3f1b0922a6a..f0652410828c 100644
--- a/pkgs/development/python-modules/python-lzo/default.nix
+++ b/pkgs/development/python-modules/python-lzo/default.nix
@@ -1,32 +1,50 @@
-{ lib, fetchPypi, buildPythonPackage, lzo, pytestCheckHook, setuptools, wheel }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, lzo
+, pytestCheckHook
+, pythonOlder
+, setuptools
+, wheel
+}:
 
 buildPythonPackage rec {
   pname = "python-lzo";
-  version = "1.15";
-  format = "pyproject";
+  version = "1.16";
+  pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-pXqqAMXDoFFd2fdCa6LPYBdn3BncAj2LmdShOwoye0k=";
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "jd-boyd";
+    repo = "python-lzo";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-iXAvOCzHPvNERMkE5y4QTHi4ZieW1wrYWYScs7zyb2c=";
   };
 
+
   nativeBuildInputs = [
     setuptools
     wheel
   ];
 
-  buildInputs = [ lzo ];
+  buildInputs = [
+    lzo
+  ];
 
-  nativeCheckInputs = [ pytestCheckHook ];
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
 
   pythonImportsCheck = [
     "lzo"
   ];
 
   meta = with lib; {
-    homepage = "https://github.com/jd-boyd/python-lzo";
     description = "Python bindings for the LZO data compression library";
+    homepage = "https://github.com/jd-boyd/python-lzo";
+    changelog = "https://github.com/jd-boyd/python-lzo/releases/tag/v${version}";
     license = licenses.gpl2Only;
-    maintainers = [ maintainers.jbedo ];
+    maintainers = with maintainers; [ jbedo ];
   };
 }
diff --git a/pkgs/development/python-modules/python-memcached/default.nix b/pkgs/development/python-modules/python-memcached/default.nix
index 27a9eed537bb..e82b6b51643a 100644
--- a/pkgs/development/python-modules/python-memcached/default.nix
+++ b/pkgs/development/python-modules/python-memcached/default.nix
@@ -1,25 +1,25 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, six
+, setuptools
 , mock
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "python-memcached";
-  version = "1.59";
-  format = "setuptools";
+  version = "1.61";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "linsomniac";
     repo = "python-memcached";
     rev = version;
-    hash = "sha256-tHqkwNloPTXOrEGtuDLu1cTw4SKJ4auv8UUbqdNp698=";
+    hash = "sha256-7bUCVAmOJ6znVmTZg9AJokOuym07NHL12gZgQ2uhfNo=";
   };
 
-  propagatedBuildInputs = [
-    six
+  nativeBuildInputs = [
+    setuptools
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/python-openstackclient/default.nix b/pkgs/development/python-modules/python-openstackclient/default.nix
index 670fdaad51c8..5efec4e8d712 100644
--- a/pkgs/development/python-modules/python-openstackclient/default.nix
+++ b/pkgs/development/python-modules/python-openstackclient/default.nix
@@ -16,12 +16,12 @@
 
 buildPythonPackage rec {
   pname = "python-openstackclient";
-  version = "6.3.0";
+  version = "6.4.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-m6C9+NAwh+WFtAqNzEKc673V/ewkwdYKECv58zEyDfE=";
+    hash = "sha256-DGq0AWjqUf7WiBmqJR+CU96aYdrMlt0bZHOfGJ/CGD8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/python_openzwave/cython.patch b/pkgs/development/python-modules/python-openzwave/cython.patch
index e01ffdbdc0d0..e01ffdbdc0d0 100644
--- a/pkgs/development/python-modules/python_openzwave/cython.patch
+++ b/pkgs/development/python-modules/python-openzwave/cython.patch
diff --git a/pkgs/development/python-modules/python_openzwave/default.nix b/pkgs/development/python-modules/python-openzwave/default.nix
index dbd9c3d8c469..4611039e34d9 100644
--- a/pkgs/development/python-modules/python_openzwave/default.nix
+++ b/pkgs/development/python-modules/python-openzwave/default.nix
@@ -4,14 +4,15 @@
 , six, pydispatcher, urwid }:
 
 buildPythonPackage rec {
-  pname = "python_openzwave";
+  pname = "python-openzwave";
   version = "0.4.19";
   format = "setuptools";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "python_openzwave";
+    inherit version;
     sha256 = "6b40c7711383eeb3535cf5504f1cf47cc1ac7018eb820f299642a5a2795aef84";
     extension = "zip";
   };
diff --git a/pkgs/development/python-modules/python-roborock/default.nix b/pkgs/development/python-modules/python-roborock/default.nix
index fe6d13423bc3..1346e9b35b7a 100644
--- a/pkgs/development/python-modules/python-roborock/default.nix
+++ b/pkgs/development/python-modules/python-roborock/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "python-roborock";
-  version = "0.39.0";
+  version = "0.39.1";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     owner = "humbertogontijo";
     repo = "python-roborock";
     rev = "refs/tags/v${version}";
-    hash = "sha256-t+ZjLsnsLcWYNlx2eRxDhQLw3levdiCk4FUrcjtSmq8=";
+    hash = "sha256-iFLzrjbCwBuV9RQSHoP5LOG0PIPjiTMCpvk3wqGtMgk=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/python-songpal/default.nix b/pkgs/development/python-modules/python-songpal/default.nix
index 3f73bf1e5a94..916288860fb5 100644
--- a/pkgs/development/python-modules/python-songpal/default.nix
+++ b/pkgs/development/python-modules/python-songpal/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "python-songpal";
-  version = "0.16";
+  version = "0.16.1";
 
   format = "pyproject";
 
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "rytilahti";
     repo = "python-songpal";
     rev = "refs/tags/release/${version}";
-    hash = "sha256-wHyq63RG0lhzG33ssWyvzLjc7s1OqquXMN26N2MBHU8=";
+    hash = "sha256-qlypUGrObvn6YyzFhJe2rJvVdI6v+PkWLfjMpc1Lm2k=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/python-sql/default.nix b/pkgs/development/python-modules/python-sql/default.nix
index 424c1635f91a..2605080729c7 100644
--- a/pkgs/development/python-modules/python-sql/default.nix
+++ b/pkgs/development/python-modules/python-sql/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "python-sql";
-  version = "1.4.2";
+  version = "1.4.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-stuHXGcgwblayCyD6lLOu5RMQHvmii7wN8zdi6ucxTw=";
+    hash = "sha256-YmC+/4NaNdOgrsTx2jUbC+nKoaDZSmy6lAp82Nz2Ymk=";
   };
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/python-tado/default.nix b/pkgs/development/python-modules/python-tado/default.nix
index 80687b9d3e1f..60247f15d95b 100644
--- a/pkgs/development/python-modules/python-tado/default.nix
+++ b/pkgs/development/python-modules/python-tado/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "python-tado";
-  version = "0.17.3";
+  version = "0.17.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.5";
@@ -16,9 +16,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "wmalgadey";
     repo = "PyTado";
-    # https://github.com/wmalgadey/PyTado/issues/62
     rev = "refs/tags/${version}";
-    hash = "sha256-whpNYiAb2cqKI4m0HJN2lPt51FLuEzrkrRTSWs6uznU=";
+    hash = "sha256-Wdd9HdsQjaYlL8knhMuO87+dom+aTsmrLRK0UdrpsbQ=";
   };
 
   propagatedBuildInputs = [
@@ -30,9 +29,9 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description =
-      "Python binding for Tado web API. Pythonize your central heating!";
+    description = "Python binding for Tado web API. Pythonize your central heating!";
     homepage = "https://github.com/wmalgadey/PyTado";
+    changelog = "https://github.com/wmalgadey/PyTado/releases/tag/${version}";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ jamiemagee ];
   };
diff --git a/pkgs/development/python-modules/python-trovo/default.nix b/pkgs/development/python-modules/python-trovo/default.nix
index b4e7194b842c..d76d5d4a2b97 100644
--- a/pkgs/development/python-modules/python-trovo/default.nix
+++ b/pkgs/development/python-modules/python-trovo/default.nix
@@ -14,7 +14,8 @@ buildPythonPackage rec {
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "python_trovo";
+    inherit version;
     hash = "sha256-3EVSF4+nLvvM2RocNM2xz9Us5VrRRTCu/MWCcqwwikw=";
   };
 
diff --git a/pkgs/development/python-modules/pythran/default.nix b/pkgs/development/python-modules/pythran/default.nix
index 047a4ea1af07..3e62fa882cc9 100644
--- a/pkgs/development/python-modules/pythran/default.nix
+++ b/pkgs/development/python-modules/pythran/default.nix
@@ -25,14 +25,14 @@ let
 
 in buildPythonPackage rec {
   pname = "pythran";
-  version = "0.14.0";
+  version = "0.15.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "serge-sans-paille";
     repo = "pythran";
     rev = version;
-    hash = "sha256-in0ty0aBAIx7Is13hjiHZGS8eKbhxb6TL3bENzfx5vQ=";
+    hash = "sha256-TpD8YZnnv48PKYrUqR0/qvJG1XRbcMBcrkcERh6Q4q0=";
   };
 
   patches = [
@@ -41,17 +41,12 @@ in buildPythonPackage rec {
       src = ./0001-hardcode-path-to-libgomp.patch;
       gomp = "${if stdenv.cc.isClang then openmp else stdenv.cc.cc.lib}/lib/libgomp${stdenv.hostPlatform.extensions.sharedLibrary}";
     })
-    (fetchpatch {
-      # Python 3.12 support
-      url = "https://github.com/serge-sans-paille/pythran/commit/258ab9aaf26172f669eab1bf2a346b5f65db3ac0.patch";
-      hash = "sha256-T+FLptDYIgzHBSXShULqHr/G8ttBFamq1M5JlB2HxDM=";
-    })
   ];
 
   # xsimd: unvendor this header-only C++ lib
   postPatch = ''
-    rm -r third_party/xsimd
-    ln -s '${lib.getDev xsimd}'/include/xsimd third_party/
+    rm -r pythran/xsimd
+    ln -s '${lib.getDev xsimd}'/include/xsimd pythran/
   '';
 
   nativeBuildInputs = [
@@ -84,5 +79,6 @@ in buildPythonPackage rec {
     description = "Ahead of Time compiler for numeric kernels";
     homepage = "https://github.com/serge-sans-paille/pythran";
     license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ doronbehar ];
   };
 }
diff --git a/pkgs/development/python-modules/pytoolconfig/default.nix b/pkgs/development/python-modules/pytoolconfig/default.nix
index 012a470c1b5f..1ba80dae8037 100644
--- a/pkgs/development/python-modules/pytoolconfig/default.nix
+++ b/pkgs/development/python-modules/pytoolconfig/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "pytoolconfig";
-  version = "1.3.0";
+  version = "1.3.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "bagel897";
     repo = "pytoolconfig";
     rev = "refs/tags/v${version}";
-    hash = "sha256-V7dANGnvhBhRy8IyO/gg73BMwpWRaV/xTF8JmRC7DPA=";
+    hash = "sha256-h21SDgVsnCDZQf5GS7sFE19L/p+OlAFZGEYKc0RHn30=";
   };
 
   outputs = [
diff --git a/pkgs/development/python-modules/pytrafikverket/default.nix b/pkgs/development/python-modules/pytrafikverket/default.nix
index 9a60920dd7b8..d880602a5123 100644
--- a/pkgs/development/python-modules/pytrafikverket/default.nix
+++ b/pkgs/development/python-modules/pytrafikverket/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "pytrafikverket";
-  version = "0.3.9.2";
+  version = "0.3.10";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-NxxuyLnzJ8T2jaQ761O943rpBbNwp/F4PygyQULkXzw=";
+    hash = "sha256-B3K9wDFj7uSgs6BsJUnD6r2JVcH7u7UrbVXUTMGqmQE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyupgrade/default.nix b/pkgs/development/python-modules/pyupgrade/default.nix
index 04e21f6e52ac..8d5bc83ed165 100644
--- a/pkgs/development/python-modules/pyupgrade/default.nix
+++ b/pkgs/development/python-modules/pyupgrade/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "pyupgrade";
-  version = "3.3.1";
+  version = "3.15.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "asottile";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-vg1eNxIkdHM1MMTkCof/ED6nqFhwSgEiKjYmqAyHMp0=";
+    hash = "sha256-n6WlJc7Hh7SArJ8Z0fikxidtpXaPQvKTDGn6HukL2q8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyutil/default.nix b/pkgs/development/python-modules/pyutil/default.nix
index 9b4023bc498d..91f5d0d89f89 100644
--- a/pkgs/development/python-modules/pyutil/default.nix
+++ b/pkgs/development/python-modules/pyutil/default.nix
@@ -1,33 +1,66 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, simplejson
+, isPyPy
 , mock
+, pytestCheckHook
+, pythonAtLeast
+, pythonOlder
+, setuptools
+, simplejson
 , twisted
-, isPyPy
+, versioneer
 }:
 
 buildPythonPackage rec {
   pname = "pyutil";
   version = "3.3.6";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-XcPWu5xbq6u10Ldz4JQEXXVxLos0ry0psOKGAmaCZ8A=";
   };
 
-  propagatedBuildInputs = [ simplejson ];
-
-  nativeCheckInputs = [ mock twisted ];
-
   prePatch = lib.optionalString isPyPy ''
     grep -rl 'utf-8-with-signature-unix' ./ | xargs sed -i -e "s|utf-8-with-signature-unix|utf-8|g"
   '';
 
-  meta = with lib; {
-    description = "Pyutil, a collection of mature utilities for Python programmers";
+  nativeBuildInputs = [
+    setuptools
+    versioneer
+  ];
 
+  passthru.optional-dependencies = {
+    jsonutil = [
+      simplejson
+    ];
+    # Module not available
+    # randcookie = [
+    #   zbase32
+    # ];
+  };
+
+  nativeCheckInputs = [
+    mock
+    twisted
+    pytestCheckHook
+  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+
+  pythonImportsCheck = [
+    "pyutil"
+  ];
+
+  disabledTests = lib.optionals (pythonAtLeast "3.12") [
+    # https://github.com/tpltnt/pyutil/issues/10
+    "test_decimal"
+    "test_float"
+  ];
+
+  meta = with lib; {
+    description = "Collection of mature utilities for Python programmers";
     longDescription = ''
       These are a few data structures, classes and functions which
       we've needed over many years of Python programming and which
@@ -37,7 +70,6 @@ buildPythonPackage rec {
       Python language or its standard library, thus showing that
       we're not alone in wanting tools like these.
     '';
-
     homepage = "https://github.com/tpltnt/pyutil";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ prusnak ];
diff --git a/pkgs/development/python-modules/pyvista/default.nix b/pkgs/development/python-modules/pyvista/default.nix
index 0493509e976b..f791db0dbd83 100644
--- a/pkgs/development/python-modules/pyvista/default.nix
+++ b/pkgs/development/python-modules/pyvista/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "pyvista";
-  version = "0.43.1";
+  version = "0.43.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-H7WkRK9lP92L47nFNDT1WusWfU0bLgXBA+KQqTyedL4=";
+    hash = "sha256-2gh5qpiHda611bWWZzRXu+tkiRk9x4qNehFP8MARtk0=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pywebpush/default.nix b/pkgs/development/python-modules/pywebpush/default.nix
index 501d0a56f783..38d605317a60 100644
--- a/pkgs/development/python-modules/pywebpush/default.nix
+++ b/pkgs/development/python-modules/pywebpush/default.nix
@@ -14,12 +14,12 @@
 
 buildPythonPackage rec {
   pname = "pywebpush";
-  version = "1.14.0";
+  version = "1.14.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-bDbhZ5JoIZ5pO6lA2yvyVMJAygJmTeECtyaa/DxUVzE=";
+    hash = "sha256-+I1+K/XofGFt+wS4yVwRkjjFEWWbAvc17nfMFoQoVe4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pywfa/default.nix b/pkgs/development/python-modules/pywfa/default.nix
index 529417db9896..2aca36a07da7 100644
--- a/pkgs/development/python-modules/pywfa/default.nix
+++ b/pkgs/development/python-modules/pywfa/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "kcleal";
     repo = "pywfa";
     rev = "refs/tags/v${version}";
-    hash = "sha256-oeVXK9uyH4E98tApKrA7dXifQYb41KuDTAZ40XgAaF8=";
+    hash = "sha256-TeJ7Jq4LR+I1+zeMeBtHZa9dR+CRJJG5sT99tB227P8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pywinrm/default.nix b/pkgs/development/python-modules/pywinrm/default.nix
index 40e8c70ba83b..2455b476a4d9 100644
--- a/pkgs/development/python-modules/pywinrm/default.nix
+++ b/pkgs/development/python-modules/pywinrm/default.nix
@@ -5,7 +5,7 @@
 , mock
 , pytestCheckHook
 , requests
-, requests_ntlm
+, requests-ntlm
 , six
 , xmltodict
 }:
@@ -24,7 +24,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     requests
-    requests_ntlm
+    requests-ntlm
     six
     xmltodict
   ];
diff --git a/pkgs/development/python-modules/qbittorrent-api/default.nix b/pkgs/development/python-modules/qbittorrent-api/default.nix
index d7b733f83322..3bbbbedf1d22 100644
--- a/pkgs/development/python-modules/qbittorrent-api/default.nix
+++ b/pkgs/development/python-modules/qbittorrent-api/default.nix
@@ -2,33 +2,31 @@
 , buildPythonPackage
 , fetchPypi
 , requests
-, six
 , urllib3
 , packaging
 , setuptools
-, wheel
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "qbittorrent-api";
-  version = "2023.11.57";
-  format = "pyproject";
+  version = "2024.1.58";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-fmFJW4PDQc7szu0ymE+fV9k6wUDLRHkOriEHDnzDSQg=";
+    hash = "sha256-6JyU9mr0xfRLB7AJOcnPc+PpF0EWi/R/Wy3lCKanAmA=";
   };
 
   propagatedBuildInputs = [
     requests
-    six
     urllib3
     packaging
   ];
 
   nativeBuildInputs = [
     setuptools
-    wheel
+    setuptools-scm
   ];
 
   # Tests require internet access
diff --git a/pkgs/development/python-modules/qcodes/default.nix b/pkgs/development/python-modules/qcodes/default.nix
index 779e7b390b21..b8b7ca6a5eb9 100644
--- a/pkgs/development/python-modules/qcodes/default.nix
+++ b/pkgs/development/python-modules/qcodes/default.nix
@@ -48,7 +48,7 @@
 
 buildPythonPackage rec {
   pname = "qcodes";
-  version = "0.42.1";
+  version = "0.44.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -57,7 +57,7 @@ buildPythonPackage rec {
     owner = "QCoDeS";
     repo = "Qcodes";
     rev = "refs/tags/v${version}";
-    hash = "sha256-oNQLIL5L3gtFS6yxqgLDI1s4s9UYqxGc8ASqHuZv6Rk=";
+    hash = "sha256-AggAVq/yfJUZRwoQb29QoIbVIAdV3solKCjivqucLZk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/qcs-api-client/default.nix b/pkgs/development/python-modules/qcs-api-client/default.nix
index 0b38510d6603..60ed1433794a 100644
--- a/pkgs/development/python-modules/qcs-api-client/default.nix
+++ b/pkgs/development/python-modules/qcs-api-client/default.nix
@@ -6,7 +6,7 @@
 , httpx
 , iso8601
 , poetry-core
-, pydantic
+, pydantic_1
 , pyjwt
 , pytest-asyncio
 , pytestCheckHook
@@ -23,7 +23,7 @@
 buildPythonPackage rec {
   pname = "qcs-api-client";
   version = "0.23.1";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -46,6 +46,7 @@ buildPythonPackage rec {
   pythonRelaxDeps = [
     "attrs"
     "httpx"
+    "iso8601"
   ];
 
   nativeBuildInputs = [
@@ -57,7 +58,7 @@ buildPythonPackage rec {
     attrs
     httpx
     iso8601
-    pydantic
+    pydantic_1
     pyjwt
     python-dateutil
     retrying
diff --git a/pkgs/development/python-modules/qdrant-client/default.nix b/pkgs/development/python-modules/qdrant-client/default.nix
index e57e607afcf3..8913cc5d64db 100644
--- a/pkgs/development/python-modules/qdrant-client/default.nix
+++ b/pkgs/development/python-modules/qdrant-client/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "qdrant-client";
-  version = "1.7.0";
+  version = "1.7.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "qdrant";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-fC28uQK4mAN21VdAeT4NbezZY1qZVOIK3rs3v31S39Q=";
+    hash = "sha256-nGZV8ORThVxH+Q1xfpqUwPGw6LUoTZXj4KgfTLCvUEc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/qingping-ble/default.nix b/pkgs/development/python-modules/qingping-ble/default.nix
index 7c7431b01e87..1a678a2db496 100644
--- a/pkgs/development/python-modules/qingping-ble/default.nix
+++ b/pkgs/development/python-modules/qingping-ble/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "qingping-ble";
-  version = "0.9.0";
+  version = "0.10.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "bluetooth-devices";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-h2PVrwesUaJfwJtuNf44bd1MefpSmOm7Q4A/URvd+IY=";
+    hash = "sha256-5w3KGJLdHFv6kURKTz3YImZNjaETiVqbbJTJpBSLSo8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix b/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix
index 24bee7d9dbc4..030f94efc852 100644
--- a/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix
+++ b/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix
@@ -6,7 +6,7 @@
 , nest-asyncio
 , qiskit-terra
 , requests
-, requests_ntlm
+, requests-ntlm
 , websocket-client
   # Visualization inputs
 , withVisualization ? true
@@ -57,7 +57,7 @@ buildPythonPackage rec {
     nest-asyncio
     qiskit-terra
     requests
-    requests_ntlm
+    requests-ntlm
     websocket-client
     websockets
   ] ++ lib.optionals withVisualization visualizationPackages;
diff --git a/pkgs/development/python-modules/qrcode/default.nix b/pkgs/development/python-modules/qrcode/default.nix
index 43379422263d..0b8f69889c33 100644
--- a/pkgs/development/python-modules/qrcode/default.nix
+++ b/pkgs/development/python-modules/qrcode/default.nix
@@ -1,20 +1,21 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, setuptools
+, mock
 , pillow
 , pypng
-, typing-extensions
-, mock
 , pytestCheckHook
-, testers
+, pythonAtLeast
 , qrcode
+, setuptools
+, testers
+, typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "qrcode";
   version = "7.4.2";
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
@@ -48,11 +49,15 @@ buildPythonPackage rec {
     };
   };
 
+  disabledTests = lib.optionals (pythonAtLeast "3.12") [
+    "test_change"
+  ];
+
   meta = with lib; {
     description = "Python QR Code image generator";
     homepage = "https://github.com/lincolnloop/python-qrcode";
     changelog = "https://github.com/lincolnloop/python-qrcode/blob/v${version}/CHANGES.rst";
     license = licenses.bsd3;
+    maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/qtile-extras/default.nix b/pkgs/development/python-modules/qtile-extras/default.nix
index aa6eed8ec573..1661918152f1 100644
--- a/pkgs/development/python-modules/qtile-extras/default.nix
+++ b/pkgs/development/python-modules/qtile-extras/default.nix
@@ -5,25 +5,27 @@
 , pytestCheckHook
 , xorgserver
 , imagemagick
+, gobject-introspection
 , pulseaudio
 , pytest-asyncio
 , pytest-lazy-fixture
 , qtile
 , keyring
 , requests
-, stravalib
+, librsvg
+, gtk3
 }:
 
 buildPythonPackage rec {
   pname = "qtile-extras";
-  version = "0.23.0";
+  version = "0.24.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "elParaguayo";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-WI1z8vrbZiJw6fDHK27mKA+1FyZEQTMttIDNzSIX+PU=";
+    hash = "sha256-DJmnJcqhfCfl39SF3Ypv0PGtI4r8heaVv9JmpiCBGJo=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
@@ -32,6 +34,7 @@ buildPythonPackage rec {
     pytestCheckHook
     xorgserver
     imagemagick
+    gobject-introspection
   ];
   checkInputs = [
     pytest-asyncio
@@ -40,59 +43,41 @@ buildPythonPackage rec {
     pulseaudio
     keyring
     requests
-    stravalib
+    # stravalib  # marked as broken due to https://github.com/stravalib/stravalib/issues/379
   ];
   disabledTests = [
-    # AttributeError: 'ImgMask' object has no attribute '_default_size'. Did you mean: 'default_size'?
-    # cairocffi.pixbuf.ImageLoadingError: Pixbuf error: Unrecognized image file format
-    "test_draw"
-    "test_icons"
-    "1-x11-GithubNotifications-kwargs3"
-    "1-x11-SnapCast-kwargs8"
-    "1-x11-TVHWidget-kwargs10"
-    "test_tvh_widget_not_recording"
-    "test_tvh_widget_recording"
-    "test_tvh_widget_popup"
-    "test_snapcast_options"
-    "test_snapcast_icon"
-    "test_snapcast_icon_colour"
-    "test_snapcast_http_error"
-    "test_syncthing_not_syncing"
-    "test_syncthing_is_syncing"
-    "test_syncthing_http_error"
-    "test_githubnotifications_colours"
-    "test_githubnotifications_logging"
-    "test_githubnotifications_icon"
-    "test_githubnotifications_reload_token"
-    "test_image_size_horizontal"
-    "test_image_size_vertical"
-    "test_image_size_mask"
-    # ValueError: Namespace Gdk not available
-    # AssertionError: Window never appeared...
-    "test_statusnotifier_menu"
-    # AttributeError: 'str' object has no attribute 'canonical'
-    "test_strava_widget_display"
-    "test_strava_widget_popup"
     # Needs a running DBUS
     "test_brightness_power_saving"
-    "test_upower_all_batteries"
-    "test_upower_named_battery"
-    "test_upower_low_battery"
-    "test_upower_critical_battery"
-    "test_upower_charging"
-    "test_upower_show_text"
     "test_global_menu"
     "test_mpris2_popup"
+    "test_statusnotifier_menu"
     # No network connection
     "test_wifiicon_internet_check"
-    # AssertionErrors
-    "test_widget_init_config"
+    # Image difference is outside tolerance
     "test_decoration_output"
+    # Needs github token
+    "test_githubnotifications_reload_token"
+    # AttributeError: 'NoneType' object has no attribute 'theta'
+    "test_image_size_horizontal"
+    "test_image_size_vertical"
+  ];
+  disabledTestPaths = [
+    # Needs a running DBUS
+    "test/widget/test_iwd.py"
+    "test/widget/test_upower.py"
+    # Marked as broken due to https://github.com/stravalib/stravalib/issues/379
+    "test/widget/test_strava.py"
   ];
   preCheck = ''
     export HOME=$(mktemp -d)
+    export GDK_PIXBUF_MODULE_FILE=${librsvg}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
+    sed -i 's#/usr/bin/sleep#sleep#' test/widget/test_snapcast.py
   '';
 
+  propagatedBuildInputs = [
+    gtk3
+  ];
+
   pythonImportsCheck = [ "qtile_extras" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/qtile/default.nix b/pkgs/development/python-modules/qtile/default.nix
index ef1df14b2184..43e6cb00bfe2 100644
--- a/pkgs/development/python-modules/qtile/default.nix
+++ b/pkgs/development/python-modules/qtile/default.nix
@@ -32,14 +32,14 @@
 
 buildPythonPackage rec {
   pname = "qtile";
-  version = "0.23.0";
+  version = "0.24.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "qtile";
     repo = "qtile";
     rev = "v${version}";
-    hash = "sha256-WxnpkKqYGGEsFTt/1iCSiCzdESJP6HFJ6BztaMsMbYo=";
+    hash = "sha256-mgMRkoKT0Gp5/OfVQbkeDTkg9QRFn4PU3ziM5E6V+oI=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/quaternion/default.nix b/pkgs/development/python-modules/quaternion/default.nix
index 4b7eef5c5ab2..3b3e6a1ea790 100644
--- a/pkgs/development/python-modules/quaternion/default.nix
+++ b/pkgs/development/python-modules/quaternion/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "quaternion";
-  version = "2022.4.4";
+  version = "2023.0.2";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "moble";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-fgyi50purfqUIe7zuz/52K6Sw3TjuvAX0EnzkXD//B4=";
+    hash = "sha256-G5Xbo6Ns98oqtY/AKz9CE7nt8j2b6+Hv14ZoKtlDCMQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/qutip/default.nix b/pkgs/development/python-modules/qutip/default.nix
index 0b58eafa398d..ddd3b18adbf0 100644
--- a/pkgs/development/python-modules/qutip/default.nix
+++ b/pkgs/development/python-modules/qutip/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "qutip";
-  version = "4.7.3";
+  version = "4.7.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-cpzUHjZBpAbNEnYRuY1wUZouAEAgBaN9rWdxRSfI3bs=";
+    hash = "sha256-gfWYlQoGESE+EryLVfsnmBq9xFf3d92xOmEz4A32iqU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/r2pipe/default.nix b/pkgs/development/python-modules/r2pipe/default.nix
index 67acfee32d73..ab043450e40e 100644
--- a/pkgs/development/python-modules/r2pipe/default.nix
+++ b/pkgs/development/python-modules/r2pipe/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "r2pipe";
-  version = "1.8.4";
+  version = "1.8.8";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-dy0+q1i/rE+eIQUZXX9S4y2RiOBM0Kc49PqdvtFAE90=";
+    hash = "sha256-wAOmO5bev1zgPcJoiqKlS4anUKayo8HsncQXM+b1clQ=";
   };
 
   # Tiny sanity check to make sure r2pipe finds radare2 (since r2pipe doesn't
diff --git a/pkgs/development/python-modules/rapidfuzz/default.nix b/pkgs/development/python-modules/rapidfuzz/default.nix
index 97f2a09e55e2..3dcffdd2ecc5 100644
--- a/pkgs/development/python-modules/rapidfuzz/default.nix
+++ b/pkgs/development/python-modules/rapidfuzz/default.nix
@@ -18,8 +18,8 @@
 
 buildPythonPackage rec {
   pname = "rapidfuzz";
-  version = "3.5.2";
-  format = "pyproject";
+  version = "3.6.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "maxbachmann";
     repo = "RapidFuzz";
     rev = "refs/tags/v${version}";
-    hash = "sha256-D7Z0xKqAJAPKSAEK+3Mpz/LaEKqKYczp+m6SqfzufwA=";
+    hash = "sha256-QJVRT+d/IIGxkWfSNoXFSmbW017+8CTKuWD4W+TzvBs=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/rdkit/default.nix b/pkgs/development/python-modules/rdkit/default.nix
index 7d0632ebc836..8a29bc837cfa 100644
--- a/pkgs/development/python-modules/rdkit/default.nix
+++ b/pkgs/development/python-modules/rdkit/default.nix
@@ -42,7 +42,7 @@ let
 in
 buildPythonPackage rec {
   pname = "rdkit";
-  version = "2023.09.3";
+  version = "2023.09.4";
   pyproject = false;
 
   src =
@@ -53,7 +53,7 @@ buildPythonPackage rec {
       owner = pname;
       repo = pname;
       rev = "Release_${versionTag}";
-      hash = "sha256-bewOdmpnm6cArD5iaMKNqT8z4GUIpih+JzJ+wdo/lrI=";
+      hash = "sha256-yPpt7F3w17tZEe+HECODZ7p27QidNt1sd5f/T2V87NE=";
     };
 
   unpackPhase = ''
@@ -141,7 +141,7 @@ buildPythonPackage rec {
   checkPhase = ''
     export QT_QPA_PLATFORM='offscreen'
     export RDBASE=$(realpath ..)
-    export PYTHONPATH="$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
+    export PYTHONPATH="$out/${python.sitePackages}:$PYTHONPATH"
     (cd $RDBASE/rdkit/Chem && python $RDBASE/rdkit/TestRunner.py test_list.py)
   '';
 
diff --git a/pkgs/development/python-modules/readmdict/default.nix b/pkgs/development/python-modules/readmdict/default.nix
index b7d61f8c8f57..d6ef1447a7b8 100644
--- a/pkgs/development/python-modules/readmdict/default.nix
+++ b/pkgs/development/python-modules/readmdict/default.nix
@@ -45,6 +45,6 @@ buildPythonPackage rec {
     description = "Read mdx/mdd files (repacking of readmdict from mdict-analysis)";
     homepage = "https://github.com/ffreemt/readmdict";
     license = licenses.mit;
-    maintainers = with maintainers; [ paveloom ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/readme_renderer/default.nix b/pkgs/development/python-modules/readme-renderer/default.nix
index 983de37f3932..983de37f3932 100644
--- a/pkgs/development/python-modules/readme_renderer/default.nix
+++ b/pkgs/development/python-modules/readme-renderer/default.nix
diff --git a/pkgs/development/python-modules/readme/default.nix b/pkgs/development/python-modules/readme/default.nix
index 3d18bb8df7f5..2e959bf26871 100644
--- a/pkgs/development/python-modules/readme/default.nix
+++ b/pkgs/development/python-modules/readme/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , pytest
-, readme_renderer
+, readme-renderer
 }:
 
 buildPythonPackage rec {
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
-    readme_renderer
+    readme-renderer
   ];
 
   checkPhase = ''
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   '';
 
   # tests are not included with pypi release
-  # package is not readme_renderer
+  # package is not readme-renderer
   doCheck = false;
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/recipe-scrapers/default.nix b/pkgs/development/python-modules/recipe-scrapers/default.nix
index b9f29be757fe..30d0efc83432 100644
--- a/pkgs/development/python-modules/recipe-scrapers/default.nix
+++ b/pkgs/development/python-modules/recipe-scrapers/default.nix
@@ -9,18 +9,21 @@
 , pytestCheckHook
 , responses
 , setuptools
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "recipe-scrapers";
-  version = "14.52.0";
-  format = "pyproject";
+  version = "14.54.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "hhursev";
     repo = "recipe-scrapers";
     rev = "refs/tags/${version}";
-    hash = "sha256-VdJZnwo+DwVDZuuuqk0X26CXs7ZrUFXqC8qEYaX74Zc=";
+    hash = "sha256-Q7ubT7SBHNxyvfqFhDmBjnW7ssoXBsMZR+eYg5CntHY=";
   };
 
   nativeBuildInputs = [
@@ -40,16 +43,19 @@ buildPythonPackage rec {
     responses
   ];
 
-  disabledTestPaths = [
-    # This is not actual code, just some pre-written boiler-plate template
-    "templates/test_scraper.py"
+  disabledTests = [
+    # Fixture is broken
+    "test_instructions"
   ];
 
-  pythonImportsCheck = [ "recipe_scrapers" ];
+  pythonImportsCheck = [
+    "recipe_scrapers"
+  ];
 
   meta = with lib; {
-    description = "Python package for scraping recipes data ";
+    description = "Python package for scraping recipes data";
     homepage = "https://github.com/hhursev/recipe-scrapers";
+    changelog = "https://github.com/hhursev/recipe-scrapers/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ ambroisie ];
   };
diff --git a/pkgs/development/python-modules/reconplogger/default.nix b/pkgs/development/python-modules/reconplogger/default.nix
new file mode 100644
index 000000000000..29f3c8b649aa
--- /dev/null
+++ b/pkgs/development/python-modules/reconplogger/default.nix
@@ -0,0 +1,63 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, flask
+, logmatic-python
+, pytestCheckHook
+, pythonOlder
+, pyyaml
+, requests
+, setuptools
+, testfixtures
+}:
+
+buildPythonPackage rec {
+  pname = "reconplogger";
+  version = "4.15.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "omni-us";
+    repo = "reconplogger";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-0+YOrMqyDK6uAni2h5b6P850veIkUiifX6aHzCnRHD0=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    logmatic-python
+    pyyaml
+  ];
+
+  passthru.optional-dependencies = {
+    all = [
+      flask
+      requests
+    ];
+  };
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    testfixtures
+  ];
+
+  pythonImportsCheck = [
+    "reconplogger"
+  ];
+
+  pytestFlagsArray = [
+    "reconplogger_tests.py"
+  ];
+
+  meta = with lib; {
+    description = "Module to ease the standardization of logging within omni:us";
+    homepage = "https://github.com/omni-us/reconplogger";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/recursive-pth-loader/default.nix b/pkgs/development/python-modules/recursive-pth-loader/default.nix
index 499ad3c23d07..e42988eeff9a 100644
--- a/pkgs/development/python-modules/recursive-pth-loader/default.nix
+++ b/pkgs/development/python-modules/recursive-pth-loader/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
 
   installPhase =
     ''
-      dst=$out/lib/${python.libPrefix}/site-packages
+      dst=$out/${python.sitePackages}
       mkdir -p $dst
       cp sitecustomize.* $dst/
     '';
diff --git a/pkgs/development/python-modules/redshift-connector/default.nix b/pkgs/development/python-modules/redshift-connector/default.nix
index f0845e50d519..01f2766216e2 100644
--- a/pkgs/development/python-modules/redshift-connector/default.nix
+++ b/pkgs/development/python-modules/redshift-connector/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "redshift-connector";
-  version = "2.0.917";
+  version = "2.0.918";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "aws";
     repo = "amazon-redshift-python-driver";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Qrh6ruB/e7ZeZ33fD9VmtAX+I6OUL5I/zjRv9oh1bO0=";
+    hash = "sha256-hGj/KZz3QYpA/MQE4TcX4wYazMs10RIJCDNyZ+puEYY=";
   };
 
   # remove addops as they add test directory and coverage parameters to pytest
diff --git a/pkgs/development/python-modules/regenmaschine/default.nix b/pkgs/development/python-modules/regenmaschine/default.nix
index e3fb2889470e..d76c06fe5d34 100644
--- a/pkgs/development/python-modules/regenmaschine/default.nix
+++ b/pkgs/development/python-modules/regenmaschine/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "regenmaschine";
-  version = "2023.12.0";
+  version = "2024.01.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "bachya";
     repo = "regenmaschine";
     rev = "refs/tags/${version}";
-    hash = "sha256-9VBqLmbWJCrfDw9T1qmE9KkdlS+MDnvoG8O9dPCuJDs=";
+    hash = "sha256-Vd8ACF2AXbT7FE/b0koIPUrNd9DgmjgS5unBuRiq784=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/regress/default.nix b/pkgs/development/python-modules/regress/default.nix
index 4526c735a189..b70e52008778 100644
--- a/pkgs/development/python-modules/regress/default.nix
+++ b/pkgs/development/python-modules/regress/default.nix
@@ -1,7 +1,9 @@
 { lib
+, stdenv
 , fetchPypi
 , buildPythonPackage
 , rustPlatform
+, libiconv
 }:
 
 buildPythonPackage rec {
@@ -17,6 +19,8 @@ buildPythonPackage rec {
 
   nativeBuildInputs = with rustPlatform; [ cargoSetupHook maturinBuildHook ];
 
+  buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ];
+
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
diff --git a/pkgs/development/python-modules/reproject/default.nix b/pkgs/development/python-modules/reproject/default.nix
index 488a045211a1..bbab3a462dbb 100644
--- a/pkgs/development/python-modules/reproject/default.nix
+++ b/pkgs/development/python-modules/reproject/default.nix
@@ -4,7 +4,7 @@
 , astropy-healpix
 , buildPythonPackage
 , cloudpickle
-, cython
+, cython_3
 , dask
 , fetchPypi
 , fsspec
@@ -21,9 +21,9 @@
 buildPythonPackage rec {
   pname = "reproject";
   version = "0.13.0";
-  format = "pyproject";
+  pyproject = true;
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
@@ -37,7 +37,7 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     astropy-extension-helpers
-    cython
+    cython_3
     numpy
     oldest-supported-numpy
     setuptools-scm
@@ -75,6 +75,7 @@ buildPythonPackage rec {
     description = "Reproject astronomical images";
     downloadPage = "https://github.com/astropy/reproject";
     homepage = "https://reproject.readthedocs.io";
+    changelog = "https://github.com/astropy/reproject/releases/tag/v${version}";
     license = licenses.bsd3;
     maintainers = with maintainers; [ smaret ];
   };
diff --git a/pkgs/development/python-modules/reptor/default.nix b/pkgs/development/python-modules/reptor/default.nix
index d48a84025e4c..1f35854766f0 100644
--- a/pkgs/development/python-modules/reptor/default.nix
+++ b/pkgs/development/python-modules/reptor/default.nix
@@ -15,6 +15,7 @@
 , pytest
 , pytestCheckHook
 , pythonOlder
+, pythonRelaxDepsHook
 , pyyaml
 , reptor
 , requests
@@ -22,16 +23,17 @@
 , setuptools
 , sqlparse
 , termcolor
-, toml
+, tomli
 , tomli-w
+, tomlkit
 , urllib3
 , xmltodict
 }:
 
 buildPythonPackage rec {
   pname = "reptor";
-  version = "0.7";
-  format = "pyproject";
+  version = "0.9";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -39,10 +41,13 @@ buildPythonPackage rec {
     owner = "Syslifters";
     repo = "reptor";
     rev = "refs/tags/${version}";
-    hash = "sha256-d76Hsf+leJKYOh7k/RVuo6adfjMW6yAYt+vh7KNh7sA=";
+    hash = "sha256-CjTedIl7ZkSFfKKhHmCadTd7zdz3gP7Q4uCscv5An38=";
   };
 
+  pythonRelaxDeps = true;
+
   nativeBuildInputs = [
+    pythonRelaxDepsHook
     setuptools
   ];
 
@@ -61,7 +66,8 @@ buildPythonPackage rec {
     rich
     sqlparse
     termcolor
-    toml
+    tomli
+    tomlkit
     tomli-w
     urllib3
     xmltodict
diff --git a/pkgs/development/python-modules/requests_download/default.nix b/pkgs/development/python-modules/requests-download/default.nix
index b31573a91ca0..0d1a5fb10a45 100644
--- a/pkgs/development/python-modules/requests_download/default.nix
+++ b/pkgs/development/python-modules/requests-download/default.nix
@@ -5,7 +5,7 @@
 }:
 
 buildPythonPackage rec {
-  pname = "requests_download";
+  pname = "requests-download";
   version = "0.1.2";
 
   format = "wheel";
@@ -16,7 +16,8 @@ buildPythonPackage rec {
   #};
 
   src = fetchPypi {
-    inherit pname version format;
+    pname = "requests_download";
+    inherit version format;
     sha256 = "1ballx1hljpdpyvqzqn79m0dc21z2smrnxk2ylb6dbpg5crrskcr";
   };
 
diff --git a/pkgs/development/python-modules/requests_ntlm/default.nix b/pkgs/development/python-modules/requests-ntlm/default.nix
index 43a002e1e19e..43a002e1e19e 100644
--- a/pkgs/development/python-modules/requests_ntlm/default.nix
+++ b/pkgs/development/python-modules/requests-ntlm/default.nix
diff --git a/pkgs/development/python-modules/requests-pkcs12/default.nix b/pkgs/development/python-modules/requests-pkcs12/default.nix
index 4c939064d759..87f20922a712 100644
--- a/pkgs/development/python-modules/requests-pkcs12/default.nix
+++ b/pkgs/development/python-modules/requests-pkcs12/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "requests-pkcs12";
-  version = "1.22";
+  version = "1.24";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "m-click";
     repo = "requests_pkcs12";
     rev = version;
-    hash = "sha256-YMFeWbPTwxP/+lYojXEbJf87FNHL6QrzOdOKF5JERSE=";
+    hash = "sha256-JLFUdg7kbjhlpGgrQ29U1TRTKhjDlvMGc/FRE+awfLc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/restview/default.nix b/pkgs/development/python-modules/restview/default.nix
index 43e877686beb..88004743d73b 100644
--- a/pkgs/development/python-modules/restview/default.nix
+++ b/pkgs/development/python-modules/restview/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , docutils
-, readme_renderer
+, readme-renderer
 , packaging
 , pygments
 , pytestCheckHook
@@ -23,7 +23,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     docutils
-    readme_renderer
+    readme-renderer
     packaging
     pygments
   ];
diff --git a/pkgs/development/python-modules/reuse/default.nix b/pkgs/development/python-modules/reuse/default.nix
index 572c29931ad3..ee96a52fc0eb 100644
--- a/pkgs/development/python-modules/reuse/default.nix
+++ b/pkgs/development/python-modules/reuse/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "reuse";
-  version = "2.1.0";
+  version = "3.0.1";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "fsfe";
     repo = "reuse-tool";
     rev = "refs/tags/v${version}";
-    hash = "sha256-MEQiuBxe/ctHlAnmLhQY4QH62uAcHb7CGfZz+iZCRSk=";
+    hash = "sha256-hDvOT9BP/E95FTa8rvtdxQoEDYgfMAkCSbX5KKV3qbQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/rich-pixels/default.nix b/pkgs/development/python-modules/rich-pixels/default.nix
index a086065725b5..7b77e59b6c9f 100644
--- a/pkgs/development/python-modules/rich-pixels/default.nix
+++ b/pkgs/development/python-modules/rich-pixels/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, fetchpatch
 , poetry-core
 , pytestCheckHook
 , syrupy
@@ -21,6 +22,14 @@ buildPythonPackage rec {
     hash = "sha256-fbpnHEfBPWLSYhgETqKbdmmzt7Lu/4oKgetjgNvv04c=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "fix-version.patch";
+      url = "https://github.com/darrenburns/rich-pixels/commit/ff1cc3fef789321831f29e9bf282ae6b337eddb2.patch";
+      hash = "sha256-58ZHBNg1RCuOfuE034qF1SbAgoiWMNlSG3c5pCSLUyI=";
+    })
+  ];
+
   nativeBuildInputs = [
     poetry-core
     pythonRelaxDepsHook
diff --git a/pkgs/development/python-modules/rich-rst/default.nix b/pkgs/development/python-modules/rich-rst/default.nix
index 91e8f2b34d22..5db47dfc65ea 100644
--- a/pkgs/development/python-modules/rich-rst/default.nix
+++ b/pkgs/development/python-modules/rich-rst/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "rich-rst";
-  version = "1.1.7";
+  version = "1.2.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "wasi-master";
     repo = pname;
-    rev = "v${version}";
-    hash = "sha256-s48hdJo1LIRXTf+PeSBa6y/AH1NLmnyAafFydJ+exDk=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-jFPboZ5/T2I6EuyVM+45lrLWen8Kqf94gWXS1WDf1qU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/ring-doorbell/default.nix b/pkgs/development/python-modules/ring-doorbell/default.nix
index 8065fea978bf..7b0695eb928e 100644
--- a/pkgs/development/python-modules/ring-doorbell/default.nix
+++ b/pkgs/development/python-modules/ring-doorbell/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "ring-doorbell";
-  version = "0.8.5";
+  version = "0.8.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "ring_doorbell";
     inherit version;
-    hash = "sha256-WYoElfkq0/uK3GPcIwDUP9w8l5zN9G2X/KDJbJNse9s=";
+    hash = "sha256-sjGN1I/SeI5POkACYBcUA76Fyk7XJln7A6ofg11ygrw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/riscv-config/default.nix b/pkgs/development/python-modules/riscv-config/default.nix
index f2ddbff5d43f..6cc0471b854b 100644
--- a/pkgs/development/python-modules/riscv-config/default.nix
+++ b/pkgs/development/python-modules/riscv-config/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "riscv-config";
-  version = "3.14.3";
+  version = "3.17.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "riscv-software-src";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-a6rTKCLAHrdfP/M8Q8YYSck4q+7tmospMFcCdIdNyy0=";
+    hash = "sha256-dMs900w5sXggqxU+2W8qKrKjGpyrXhA2QEbXQeaKZTs=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/rki-covid-parser/default.nix b/pkgs/development/python-modules/rki-covid-parser/default.nix
index d7e12ba2293f..4a9263f389c2 100644
--- a/pkgs/development/python-modules/rki-covid-parser/default.nix
+++ b/pkgs/development/python-modules/rki-covid-parser/default.nix
@@ -6,22 +6,27 @@
 , pytest-aiohttp
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "rki-covid-parser";
   version = "1.3.3";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "thebino";
-    repo = pname;
-    rev = "v${version}";
+    repo = "rki-covid-parser";
+    rev = "refs/tags/v${version}";
     hash = "sha256-e0MJjE4zgBPL+vt9EkgsdGrgqUyKK/1S9ZFxy56PUjc=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     aiohttp
   ];
@@ -45,6 +50,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python module for working with data from the Robert-Koch Institut";
     homepage = "https://github.com/thebino/rki-covid-parser";
+    changelog = "https://github.com/thebino/rki-covid-parser/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/rmrl/default.nix b/pkgs/development/python-modules/rmrl/default.nix
index 48a33ca47cde..3b93126aa73c 100644
--- a/pkgs/development/python-modules/rmrl/default.nix
+++ b/pkgs/development/python-modules/rmrl/default.nix
@@ -3,8 +3,10 @@
 , pythonOlder
 , fetchFromGitHub
 , poetry-core
+, pythonRelaxDepsHook
 , pdfrw
 , reportlab
+, rmscene
 , setuptools
 , svglib
 , xdg
@@ -12,26 +14,34 @@
 
 buildPythonPackage rec {
   pname = "rmrl";
-  version = "unstable-2022-12-11";
+  version = "0.2.1-unstable-2023-06-1";
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.10";
 
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchFromGitHub {
-    owner = "naturale0";
+    owner = "benneti";
     repo = "rmrl";
-    rev = "3c908536f11dfa92f81e7127ae76f18f0b2cc3e3";
-    hash = "sha256-13pMfRe2McWDpBTlJy/TBT0W5wyd0EXDoocxeIzmqCo=";
+    rev = "e6f20322c80c6551174da1826c78261dfb3b74fe";
+    hash = "sha256-jGWYrw6kcNSb4zhyCjap3l8+YCdOkk5kb5UCiBgW8u0=";
   };
 
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "reportlab"
+    "rmscene"
+    "xdg"
   ];
 
   propagatedBuildInputs = [
     pdfrw
     reportlab
+    rmscene
     setuptools
     svglib
     xdg
@@ -44,7 +54,7 @@ buildPythonPackage rec {
 
   meta = {
     description = "Render reMarkable documents to PDF";
-    homepage = "https://github.com/naturale0/rmrl";
+    homepage = "https://github.com/benneti/rmrl";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ dotlambda ];
   };
diff --git a/pkgs/development/python-modules/rmscene/default.nix b/pkgs/development/python-modules/rmscene/default.nix
new file mode 100644
index 000000000000..9e6bba74d05b
--- /dev/null
+++ b/pkgs/development/python-modules/rmscene/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, poetry-core
+, packaging
+, hypothesis
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "rmscene";
+  version = "0.5.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "ricklupton";
+    repo = "rmscene";
+    rev = "v${version}";
+    hash = "sha256-uIvoKdW7caOfc8OEGIcyDwyos9NLwtZ++CeZdUO/G8M=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    packaging
+  ];
+
+  pythonImportsCheck = [ "rmscene" ];
+
+  nativeCheckInputs = [
+    hypothesis
+    pytestCheckHook
+  ];
+
+  meta = {
+    changelog = "https://github.com/ricklupton/rmscene/blob/${src.rev}/README.md#changelog";
+    description = "Read v6 .rm files from the reMarkable tablet";
+    homepage = "https://github.com/ricklupton/rmscene";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/rns/default.nix b/pkgs/development/python-modules/rns/default.nix
index 4b1ccc9bad62..3fc348be7561 100644
--- a/pkgs/development/python-modules/rns/default.nix
+++ b/pkgs/development/python-modules/rns/default.nix
@@ -5,12 +5,13 @@
 , netifaces
 , pyserial
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "rns";
-  version = "0.6.9";
-  format = "setuptools";
+  version = "0.7.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -18,9 +19,13 @@ buildPythonPackage rec {
     owner = "markqvist";
     repo = "Reticulum";
     rev = "refs/tags/${version}";
-    hash = "sha256-L99eeDGbXXS9bff+r4j5AmmuICfeNKRD8+71+ojw320=";
+    hash = "sha256-iwW52jPSCwelfByerKHxKgH4NbWwCJLPyHXyBeJPwaM=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     cryptography
     netifaces
diff --git a/pkgs/development/python-modules/robotframework-databaselibrary/default.nix b/pkgs/development/python-modules/robotframework-databaselibrary/default.nix
index d24bcf5bfc7a..39b45d5816bd 100644
--- a/pkgs/development/python-modules/robotframework-databaselibrary/default.nix
+++ b/pkgs/development/python-modules/robotframework-databaselibrary/default.nix
@@ -1,8 +1,10 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , setuptools
 , robotframework
+, robotframework-excellib
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -10,9 +12,11 @@ buildPythonPackage rec {
   version = "1.4.1";
   pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "sha256-/n4+xA/eLrcVEwlWyLQLrkX5waYaJKRkphwT22b7hTU=";
+  src = fetchFromGitHub {
+    owner = "MarketSquare";
+    repo = "Robotframework-Database-Library";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-BCVXmlrYOaG+Dh67OytUfQnJ9Ak3MtHR3swOXdAN/HU=";
   };
 
   nativeBuildInputs = [
@@ -22,14 +26,18 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     robotframework
+    robotframework-excellib
   ];
 
-  # unit tests are impure
-  doCheck = false;
+  pythonImportsCheck = [ "DatabaseLibrary" ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
 
   meta = with lib; {
     description = "Database Library contains utilities meant for Robot Framework";
-    homepage = "https://github.com/franz-see/Robotframework-Database-Library";
+    homepage = "https://github.com/MarketSquare/Robotframework-Database-Library";
     license = licenses.asl20;
     maintainers = with maintainers; [ talkara ];
   };
diff --git a/pkgs/development/python-modules/robotframework-excellib/default.nix b/pkgs/development/python-modules/robotframework-excellib/default.nix
new file mode 100644
index 000000000000..550cc45e8ca3
--- /dev/null
+++ b/pkgs/development/python-modules/robotframework-excellib/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, openpyxl
+, robotframework
+}:
+
+buildPythonPackage rec {
+  pname = "robotframework-excellib";
+  version = "2.0.1";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-ZzAwlYM8DgWD1hfWRnY8u2RnZc3V368kgigBApeDZYg=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    openpyxl
+    robotframework
+  ];
+
+  pythonImportsCheck = [ "ExcelLibrary" ];
+
+  # upstream has no tests
+  doCheck = false;
+
+  meta = {
+    description = "Robot Framework library for working with Excel documents";
+    homepage = "https://github.com/peterservice-rnd/robotframework-excellib";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/robotframework-seleniumlibrary/default.nix b/pkgs/development/python-modules/robotframework-seleniumlibrary/default.nix
index d014d0441975..961d967b31e6 100644
--- a/pkgs/development/python-modules/robotframework-seleniumlibrary/default.nix
+++ b/pkgs/development/python-modules/robotframework-seleniumlibrary/default.nix
@@ -41,24 +41,9 @@ buildPythonPackage rec {
     robotstatuschecker
   ];
 
-  disabledTestPaths = [
-    # https://github.com/robotframework/SeleniumLibrary/issues/1804
-    "utest/test/keywords/test_webdrivercache.py"
-  ];
-
-  disabledTests = [
-    "test_create_opera_executable_path_not_set"
-    "test_create_opera_executable_path_set"
-    "test_create_opera_with_options"
-    "test_create_opera_with_service_log_path_real_path"
-    "test_get_executable_path"
-    "test_get_ff_profile_instance_FirefoxProfile"
-    "test_has_options"
-    "test_importer"
-    "test_log_file_with_index_exist"
-    "test_opera"
-    "test_single_method"
-  ];
+  preCheck = ''
+    mkdir utest/output_dir
+  '';
 
   meta = with lib; {
     changelog = "https://github.com/robotframework/SeleniumLibrary/blob/${src.rev}/docs/SeleniumLibrary-${version}.rst";
diff --git a/pkgs/development/python-modules/robotframework/default.nix b/pkgs/development/python-modules/robotframework/default.nix
index 31bd894f5c01..f87fe2bdd37a 100644
--- a/pkgs/development/python-modules/robotframework/default.nix
+++ b/pkgs/development/python-modules/robotframework/default.nix
@@ -1,24 +1,40 @@
-{ lib, fetchFromGitHub, buildPythonPackage, jsonschema }:
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, setuptools
+, jsonschema
+, python
+}:
 
 buildPythonPackage rec {
   pname = "robotframework";
-  version = "6.1.1";
-  format = "setuptools";
+  version = "7.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
-    owner = pname;
-    repo = pname;
+    owner = "robotframework";
+    repo = "robotframework";
     rev = "refs/tags/v${version}";
-    hash = "sha256-vtP0TVkCMrm0CRXlpZvVTBf7yd8+3p+nRArMWyQUn4k=";
+    hash = "sha256-IyOm2MTHj2rOew/IkyGIfI4XZSFU88+Tx8KHKIRT2G4=";
   };
 
-  nativeCheckInputs = [ jsonschema ];
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  nativeCheckInputs = [
+    jsonschema
+  ];
 
   checkPhase = ''
-    python3 utest/run.py
+    ${python.interpreter} utest/run.py
   '';
 
   meta = with lib; {
+    changelog = "https://github.com/robotframework/robotframework/blob/master/doc/releasenotes/rf-${version}.rst";
     description = "Generic test automation framework";
     homepage = "https://robotframework.org/";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/robotstatuschecker/default.nix b/pkgs/development/python-modules/robotstatuschecker/default.nix
index ef338ef0d341..fb0d137c9b06 100644
--- a/pkgs/development/python-modules/robotstatuschecker/default.nix
+++ b/pkgs/development/python-modules/robotstatuschecker/default.nix
@@ -1,9 +1,15 @@
-{ lib, buildPythonPackage, fetchFromGitHub, python, robotframework }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, robotframework
+, python
+}:
 
 buildPythonPackage rec {
-  version = "3.0.1";
-  format = "setuptools";
   pname = "robotstatuschecker";
+  version = "3.0.1";
+  pyproject = true;
 
   # no tests included in PyPI tarball
   src = fetchFromGitHub {
@@ -13,10 +19,24 @@ buildPythonPackage rec {
     hash = "sha256-yW6353gDwo/IzoWOB8oelaS6IUbvTtwwDT05yD7w6UA=";
   };
 
+  postPatch = ''
+    # https://github.com/robotframework/statuschecker/issues/46
+    substituteInPlace test/tests.robot \
+      --replace-fail BuiltIn.Log Log
+  '';
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [ robotframework ];
 
   checkPhase = ''
+    runHook preCheck
+
     ${python.interpreter} test/run.py
+
+    runHook postCheck
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/rokuecp/default.nix b/pkgs/development/python-modules/rokuecp/default.nix
index 34a5c17a4772..00f710060cc7 100644
--- a/pkgs/development/python-modules/rokuecp/default.nix
+++ b/pkgs/development/python-modules/rokuecp/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "rokuecp";
-  version = "0.18.2";
+  version = "0.19.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "ctalkington";
     repo = "python-rokuecp";
     rev = "refs/tags/${version}";
-    hash = "sha256-fgnR3TZh+cHvC8qJnvwfrrtxCdEr89Uw8ciACzaQPYE=";
+    hash = "sha256-e7BY0Y2SdAtECKqOCUZfq7PcCR2bhQ4lESQD9jTaqpI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/rpyc4/default.nix b/pkgs/development/python-modules/rpyc4/default.nix
new file mode 100644
index 000000000000..c883ebef4dc6
--- /dev/null
+++ b/pkgs/development/python-modules/rpyc4/default.nix
@@ -0,0 +1,74 @@
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, hatchling
+, plumbum
+, pytestCheckHook
+, pythonOlder
+, pythonAtLeast
+}:
+
+buildPythonPackage rec {
+  pname = "rpyc4";
+  # Pinned version for linien, see also:
+  # https://github.com/linien-org/pyrp3/pull/10#discussion_r1302816237
+  version = "4.1.5";
+  format = "pyproject";
+
+  # Since this is an outdated version, upstream might have fixed the
+  # compatibility issues with Python3.12, but we can't enjoy them yet.
+  disabled = pythonOlder "3.7" || pythonAtLeast "3.12";
+
+  src = fetchFromGitHub {
+    owner = "tomerfiliba";
+    repo = "rpyc";
+    rev = version;
+    hash = "sha256-8NOcXZDR3w0TNj1+LZ7lzQAt7yDgspjOp2zk1bsbVls=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    hatchling
+  ];
+
+  propagatedBuildInputs = [
+    plumbum
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # Disable tests that requires network access
+    "test_api"
+    "test_close_timeout"
+    "test_deploy"
+    "test_listing"
+    "test_pruning"
+    "test_rpyc"
+    # Test is outdated
+    # ssl.SSLError: [SSL: NO_CIPHERS_AVAILABLE] no ciphers available (_ssl.c:997)
+    "test_ssl_conenction"
+  ];
+  disabledTestPaths = [
+    "tests/test_ssh.py"
+    "tests/test_teleportation.py"
+  ];
+
+  pythonImportsCheck = [
+    "rpyc"
+  ];
+
+  doCheck = !stdenv.isDarwin;
+
+  meta = with lib; {
+    description = "Remote Python Call (RPyC), a transparent and symmetric RPC library";
+    homepage = "https://rpyc.readthedocs.org";
+    changelog = "https://github.com/tomerfiliba-org/rpyc/blob/${version}/CHANGELOG.rst";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/rtree/default.nix b/pkgs/development/python-modules/rtree/default.nix
index b4a2cc68ab8f..ff4b3b85e9cf 100644
--- a/pkgs/development/python-modules/rtree/default.nix
+++ b/pkgs/development/python-modules/rtree/default.nix
@@ -1,23 +1,27 @@
 { lib
 , stdenv
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , libspatialindex
 , numpy
 , pytestCheckHook
 , pythonOlder
+, setuptools
+, wheel
 }:
 
 buildPythonPackage rec {
   pname = "rtree";
-  version = "1.1.0";
-  format = "setuptools";
-  disabled = pythonOlder "3.7";
-
-  src = fetchPypi {
-    pname = "Rtree";
-    inherit version;
-    hash = "sha256-b47lBN3l0AWyWwiq9b4LNASvOtX+zm4d3N41kIp5ipU=";
+  version = "1.2.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "Toblerity";
+    repo = "rtree";
+    rev = "refs/tags/${version}";
+    hash = "sha256-RmAiyYrkUMBN/ebmo27WvFcRmYlKkywuQHLLUbluTTw=";
   };
 
   postPatch = ''
@@ -25,6 +29,11 @@ buildPythonPackage rec {
       'find_library("spatialindex_c")' '"${libspatialindex}/lib/libspatialindex_c${stdenv.hostPlatform.extensions.sharedLibrary}"'
   '';
 
+  nativeBuildInputs = [
+    setuptools
+    wheel
+  ];
+
   buildInputs = [ libspatialindex ];
 
   nativeCheckInputs = [
@@ -36,7 +45,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "R-Tree spatial index for Python GIS";
-    homepage = "https://toblerity.org/rtree/";
+    homepage = "https://github.com/Toblerity/rtree";
+    changelog = "https://github.com/Toblerity/rtree/blob/${version}/CHANGES.rst";
     license = licenses.mit;
     maintainers = with maintainers; [ bgamari ];
   };
diff --git a/pkgs/development/python-modules/ruyaml/default.nix b/pkgs/development/python-modules/ruyaml/default.nix
index e5b2108831df..4131200f2276 100644
--- a/pkgs/development/python-modules/ruyaml/default.nix
+++ b/pkgs/development/python-modules/ruyaml/default.nix
@@ -11,32 +11,23 @@
 buildPythonPackage rec {
   pname = "ruyaml";
   version = "0.91.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "pycontribs";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "0gxvwry7n1gczxkjzyfrr3fammllkvnnamja4yln8xrg3n1h89al";
+    repo = "ruyaml";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-A37L/voBrn2aZ7xT8+bWdZJxbWRjnxbstQtSyUeN1sA=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "remove-setuptools-scm-git-archive-from-setupcfg.patch";
-      url = "https://github.com/pycontribs/ruyaml/commit/8922dd826cbb97b29e9826b00fb28a65d584e985.patch";
-      includes = [ "setup.cfg" ];
-      hash = "sha256-XAsORoPvYRElHswlZ4S377UwuJNCU1JuCz5iyFXoXOQ=";
-    })
-
+  postPatch = ''
     # https://github.com/pycontribs/ruyaml/pull/107
-    (fetchpatch {
-      name = "remove-setuptools-scm-git-archive-from-pyproject.patch";
-      url = "https://github.com/pycontribs/ruyaml/commit/4d605bf63f799696c8ba3c1f0a0f505db0ca33ce.patch";
-      hash = "sha256-X6HWXBot5ZIo+odoSHhXMb03tgpQfRw/Ze8nFgH43ZI=";
-    })
-  ];
+    substituteInPlace pyproject.toml \
+      --replace '"pip >= 19.3.1",' "" \
+      --replace '"setuptools_scm_git_archive >= 1.1",' ""
+  '';
 
   nativeBuildInputs = [
     setuptools-scm
@@ -58,9 +49,17 @@ buildPythonPackage rec {
     "ruyaml"
   ];
 
+  disabledTests = [
+    # Assertion error
+    "test_issue_60"
+    "test_issue_60_1"
+    "test_issue_61"
+  ];
+
   meta = with lib; {
     description = "YAML 1.2 loader/dumper package for Python";
     homepage = "https://ruyaml.readthedocs.io/";
+    changelog = "https://github.com/pycontribs/ruyaml/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/safe-pysha3/default.nix b/pkgs/development/python-modules/safe-pysha3/default.nix
index a71cce569ce7..bb96ee1c2dcb 100644
--- a/pkgs/development/python-modules/safe-pysha3/default.nix
+++ b/pkgs/development/python-modules/safe-pysha3/default.nix
@@ -2,7 +2,6 @@
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
-, python
 }:
 
 buildPythonPackage rec {
@@ -16,6 +15,12 @@ buildPythonPackage rec {
     hash = "sha256-5CkUax7dGYssqTSiBGplZWxdMbDsiUu9YFUSf03q/xc=";
   };
 
+  # AttributeError: 'Keccak_224Tests' object has no attribute 'failIf'.
+  postPatch = ''
+    substituteInPlace tests.py \
+      --replace "failIf" "assertFalse"
+  '';
+
   pythonImportsCheck = [
     "sha3"
   ];
diff --git a/pkgs/development/python-modules/safetensors/default.nix b/pkgs/development/python-modules/safetensors/default.nix
index 976d6b9b3fa8..4005a620d8a6 100644
--- a/pkgs/development/python-modules/safetensors/default.nix
+++ b/pkgs/development/python-modules/safetensors/default.nix
@@ -16,22 +16,22 @@
 
 buildPythonPackage rec {
   pname = "safetensors";
-  version = "0.3.3";
-  format = "pyproject";
+  version = "0.4.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "huggingface";
-    repo = pname;
+    repo = "safetensors";
     rev = "refs/tags/v${version}";
-    hash = "sha256-U+indMoLFN6vMZkJTWFG08lsdXuK5gOfgaHmUVl6DPk=";
+    hash = "sha256-hdPUI8k7CCQwt2C/AsjUHRmAL6ob+yCN97KkWtqOQL8=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     sourceRoot = "${src.name}/bindings/python";
-    hash = "sha256-MhRs9tFCmVZI5O0EVRUbo4ZnUVRQ0EfQTU+E1K+qKZI=";
+    hash = "sha256-7n9aYlha6IaPsZ2zMfD5EIkrk8ENwMBwj41s6QU7ml0=";
   };
 
   sourceRoot = "${src.name}/bindings/python";
@@ -41,6 +41,7 @@ buildPythonPackage rec {
     cargo
     rustc
     rustPlatform.cargoSetupHook
+    rustPlatform.maturinBuildHook
   ];
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
@@ -54,6 +55,9 @@ buildPythonPackage rec {
     "tests/test_flax_comparison.py"
     "tests/test_paddle_comparison.py"
     "tests/test_tf_comparison.py"
+  ] ++ lib.optionals stdenv.isDarwin [
+    # don't require mlx (not in Nixpkgs) to run tests
+    "tests/test_mlx_comparison.py"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/sagemaker/default.nix b/pkgs/development/python-modules/sagemaker/default.nix
index db1d0b3f0abd..0710b82176e8 100644
--- a/pkgs/development/python-modules/sagemaker/default.nix
+++ b/pkgs/development/python-modules/sagemaker/default.nix
@@ -26,7 +26,7 @@
 
 buildPythonPackage rec {
   pname = "sagemaker";
-  version = "2.199.0";
+  version = "2.206.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -35,7 +35,7 @@ buildPythonPackage rec {
     owner = "aws";
     repo = "sagemaker-python-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-zAYO8zf3FpEI1sr6Iv9WP56NFmwYGH2dtRTSJhsSYC8=";
+    hash = "sha256-aKLv8bXH1lq6yBeFsR2odtTo4sbaHlSyeSUnKdIzW9Q=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/schema-salad/default.nix b/pkgs/development/python-modules/schema-salad/default.nix
index 2e617fa8c3fc..86a1ba65598d 100644
--- a/pkgs/development/python-modules/schema-salad/default.nix
+++ b/pkgs/development/python-modules/schema-salad/default.nix
@@ -2,29 +2,30 @@
 , black
 , buildPythonPackage
 , cachecontrol
-, fetchPypi
+, fetchFromGitHub
 , importlib-resources
-, lockfile
 , mistune
-, mypy
+, mypy-extensions
 , pytestCheckHook
 , pythonOlder
 , rdflib
+, requests
 , ruamel-yaml
-, setuptools
 , setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "schema-salad";
-  version = "8.5.20231201181309";
+  version = "8.5.20240102191336.dev7+g8e95468";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-q4djcBt+8PEUekWNKlivKnDXrJBAUKGZ1252ym/E4bI=";
+  src = fetchFromGitHub {
+    owner = "common-workflow-language";
+    repo = "schema_salad";
+    rev = "8e954684b08d222d54b7eff680eaa4d4e65920a9";
+    hash = "sha256-VoFFKe6XHDytj5UlmsN14RevKcgpl+DSDMGDVS2Ols4=";
   };
 
   nativeBuildInputs = [
@@ -33,14 +34,15 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     cachecontrol
-    importlib-resources
-    lockfile
     mistune
-    mypy
+    mypy-extensions
     rdflib
+    requests
     ruamel-yaml
-    setuptools # needs pkg_resources at runtime
-  ] ++ cachecontrol.optional-dependencies.filecache;
+  ] ++ cachecontrol.optional-dependencies.filecache
+  ++ lib.optionals (pythonOlder "3.9") [
+    importlib-resources
+  ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -51,6 +53,7 @@ buildPythonPackage rec {
   '';
 
   disabledTests = [
+    "test_load_by_yaml_metaschema"
     # Setup for these tests requires network access
     "test_secondaryFiles"
     "test_outputBinding"
@@ -75,7 +78,5 @@ buildPythonPackage rec {
     changelog = "https://github.com/common-workflow-language/schema_salad/releases/tag/${version}";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ veprbl ];
-    # https://github.com/common-workflow-language/schema_salad/issues/721
-    broken = versionAtLeast mistune.version "2.1";
   };
 }
diff --git a/pkgs/development/python-modules/schemdraw/default.nix b/pkgs/development/python-modules/schemdraw/default.nix
index bf4bcee43758..441e668f81fc 100644
--- a/pkgs/development/python-modules/schemdraw/default.nix
+++ b/pkgs/development/python-modules/schemdraw/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
+, setuptools
 , pyparsing
 , matplotlib
 , latex2mathml
@@ -13,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "schemdraw";
-  version = "0.17";
+  version = "0.18";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -22,9 +23,13 @@ buildPythonPackage rec {
     owner = "cdelker";
     repo = pname;
     rev = version;
-    hash = "sha256-wa/IeNGZynU/xKwyFwebXcFaruhBFqGWsrZYaIEVa8Q=";
+    hash = "sha256-JJc3LA+fqB+2g7pPIZ8YMV921EyYpLZrHSJCYyYThZg=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     pyparsing
   ];
diff --git a/pkgs/development/python-modules/schwifty/default.nix b/pkgs/development/python-modules/schwifty/default.nix
index 9f07bb88d58e..1a33c71f7ff5 100644
--- a/pkgs/development/python-modules/schwifty/default.nix
+++ b/pkgs/development/python-modules/schwifty/default.nix
@@ -21,14 +21,14 @@
 
 buildPythonPackage rec {
   pname = "schwifty";
-  version = "2023.11.2";
+  version = "2024.1.1.post0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-lyyAx8VDIRO72xW64gjcsZw2C31hV3YCLIGSmdlIJeI=";
+    hash = "sha256-ZFDu+stuKdsVc8bTuSZ4LZX8BuQhORjyEMosnrk1rX0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/scikit-hep-testdata/default.nix b/pkgs/development/python-modules/scikit-hep-testdata/default.nix
index de78e1dc9360..aadcf0b6b577 100644
--- a/pkgs/development/python-modules/scikit-hep-testdata/default.nix
+++ b/pkgs/development/python-modules/scikit-hep-testdata/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "scikit-hep-testdata";
-  version = "0.4.35";
+  version = "0.4.37";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "scikit-hep";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-1SROsrl7zBaZRDju1M6wlKLZypk9OswA8kromiJGeqw=";
+    hash = "sha256-/zg6B1vBDaHXRSMo+Wy+CuQaBXP7v1hX2X2cK/7Djlk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/scikit-learn/default.nix b/pkgs/development/python-modules/scikit-learn/default.nix
index cd66ed54be76..4b33027fb99b 100644
--- a/pkgs/development/python-modules/scikit-learn/default.nix
+++ b/pkgs/development/python-modules/scikit-learn/default.nix
@@ -24,14 +24,14 @@
 
 buildPythonPackage rec {
   pname = "scikit-learn";
-  version = "1.3.2";
+  version = "1.4.0";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ovVMdqzMFaNL+5Bm5selbB5yNd2ldiuZB5IzC1LM+wU=";
+    hash = "sha256-1Dc8mE66IOOTIW7dUaPj7t5Wy+k9QkdRbSBWQ8O5MSE=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/scipy/default.nix b/pkgs/development/python-modules/scipy/default.nix
index caca48153b72..ec6e966d79bf 100644
--- a/pkgs/development/python-modules/scipy/default.nix
+++ b/pkgs/development/python-modules/scipy/default.nix
@@ -13,6 +13,9 @@
 , pkg-config
 , pythran
 , wheel
+, nose
+, setuptools
+, hypothesis
 , pytestCheckHook
 , pytest-xdist
 , numpy
@@ -31,8 +34,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.11.4";
-  srcHash = "sha256-hNAZOMDFYqZpb67Pzg/WALWagFYvqYO1jOmcipDDRbE=";
+  version = "1.12.0";
+  srcHash = "sha256-PuiyYTgSegDTV9Kae5N68FOXT1jyJrNv9p2aFP70Z20=";
   datasetsHashes = {
     ascent = "1qjp35ncrniq9rhzb14icwwykqg2208hcssznn3hz27w39615kh3";
     ecg = "1bwbjp43b7znnwha5hv6wiz3g0bhwrpqpi75s12zidxrbwvd62pj";
@@ -75,13 +78,11 @@ in buildPythonPackage {
     })
   ];
 
-  # Relax deps a bit
+  # Upstream complicated numpy version pinning is causing issues in the
+  # configurePhase, so we pass on it.
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace 'meson-python>=0.12.1,<0.15.0' 'meson-python' \
-      --replace 'numpy==' 'numpy>=' \
-      --replace "pybind11>=2.10.4,<2.11.1" "pybind11>=2.10.4,<2.12.0" \
-      --replace 'wheel<0.41.0' 'wheel'
+      --replace-fail 'numpy==' 'numpy>=' \
   '';
 
   nativeBuildInputs = [
@@ -91,6 +92,7 @@ in buildPythonPackage {
     pythran
     pkg-config
     wheel
+    setuptools
   ];
 
   buildInputs = [
@@ -108,6 +110,8 @@ in buildPythonPackage {
   __darwinAllowLocalNetworking = true;
 
   nativeCheckInputs = [
+    nose
+    hypothesis
     pytestCheckHook
     pytest-xdist
   ];
@@ -157,42 +161,9 @@ in buildPythonPackage {
   #
   hardeningDisable = lib.optionals (stdenv.isAarch64 && stdenv.isDarwin) [ "stackprotector" ];
 
-  checkPhase = ''
-    runHook preCheck
-
-    # Adapted from pytestCheckHook because scipy uses a custom check phase.
-    # It needs to pass `$args` as a Python list to `scipy.test` rather than as
-    # arguments to pytest on the command-line.
-    args=""
-    if [ -n "$disabledTests" ]; then
-      disabledTestsString=$(_pytestComputeDisabledTestsString "''${disabledTests[@]}")
-      args+="'-k','$disabledTestsString'"
-    fi
-
-    if [ -n "''${disabledTestPaths-}" ]; then
-        eval "disabledTestPaths=($disabledTestPaths)"
-    fi
-
-    for path in ''${disabledTestPaths[@]}; do
-      if [ ! -e "$path" ]; then
-        echo "Disabled tests path \"$path\" does not exist. Aborting"
-        exit 1
-      fi
-      args+="''${args:+,}'--ignore=\"$path\"'"
-    done
-    args+="''${args:+,}$(printf \'%s\', "''${pytestFlagsArray[@]}")"
-    args=''${args%,}
-
-    pushd "$out"
+  preCheck = ''
     export OMP_NUM_THREADS=$(( $NIX_BUILD_CORES / 4 ))
-    ${python.interpreter} -c "import scipy, sys; sys.exit(scipy.test(
-        'fast',
-        verbose=10,
-        extra_argv=[$args],
-        parallel=$NIX_BUILD_CORES
-    ) != True)"
-    popd
-    runHook postCheck
+    cd $out
   '';
 
   requiredSystemFeatures = [ "big-parallel" ]; # the tests need lots of CPU time
diff --git a/pkgs/development/python-modules/scmrepo/default.nix b/pkgs/development/python-modules/scmrepo/default.nix
index 281ff4cb1814..611949ae6515 100644
--- a/pkgs/development/python-modules/scmrepo/default.nix
+++ b/pkgs/development/python-modules/scmrepo/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "scmrepo";
-  version = "2.0.3";
+  version = "2.1.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     owner = "iterative";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-P+Mbf8adSvQPkUgnTSPrqzvHc6lR0ns2mJ0/x9YGPKs=";
+    hash = "sha256-KG7Y+1qqsgDwgRYsb3XbZnF6FduHJCAEizfuugBi0Go=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/scs/default.nix b/pkgs/development/python-modules/scs/default.nix
index 5e95bed4cbdb..c1ca83ed4ba1 100644
--- a/pkgs/development/python-modules/scs/default.nix
+++ b/pkgs/development/python-modules/scs/default.nix
@@ -41,6 +41,13 @@ buildPythonPackage rec {
       url = "https://github.com/bodono/scs-python/commit/dd17e2e5282ebe85f2df8a7c6b25cfdeb894970d.patch";
       hash = "sha256-vSeSJeeu5Wx3RXPyB39YTo0RU8HtAojrUw85Q76/QzA=";
     })
+    # fix test_solve_random_cone_prob on linux after scipy 1.12 update
+    # https://github.com/bodono/scs-python/pull/82
+    (fetchpatch {
+      name = "scipy-1.12-fix.patch";
+      url = "https://github.com/bodono/scs-python/commit/4baf4effdc2ce7ac2dd1beaf864f1a5292eb06c6.patch";
+      hash = "sha256-U/F5MakwYZN5hCaeAkcCG38WQxX9mXy9OvhyEQqN038=";
+    })
   ];
 
   nativeBuildInputs = [
@@ -62,12 +69,6 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ pytestCheckHook ];
   pythonImportsCheck = [ "scs" ];
-  disabledTests = lib.lists.optional (stdenv.system == "x86_64-linux") [
-    # `test/test_scs_rand.py` hang on "x86_64-linux" (https://github.com/NixOS/nixpkgs/pull/244532#pullrequestreview-1598095858)
-    "test_feasible"
-    "test_infeasibl"
-    "test_unbounded"
-  ];
 
   meta = with lib; {
     description = "Python interface for SCS: Splitting Conic Solver";
diff --git a/pkgs/development/python-modules/seaborn/default.nix b/pkgs/development/python-modules/seaborn/default.nix
index fef58d973ccf..a296478b176c 100644
--- a/pkgs/development/python-modules/seaborn/default.nix
+++ b/pkgs/development/python-modules/seaborn/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "seaborn";
-  version = "0.13.0";
+  version = "0.13.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "mwaskom";
     repo = "seaborn";
     rev = "refs/tags/v${version}";
-    hash = "sha256-RbtBNKTjUHdCFe1V7IvACgbSNIPhVFMYmtE34GKVIzs=";
+    hash = "sha256-aGIVcdG/XN999nYBHh3lJqGa3QVt0j8kmzaxdkULznY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/selenium/default.nix b/pkgs/development/python-modules/selenium/default.nix
index 5a5c4304c636..09ddebebe240 100644
--- a/pkgs/development/python-modules/selenium/default.nix
+++ b/pkgs/development/python-modules/selenium/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   '';
 
   postInstall = ''
-    DST_PREFIX=$out/lib/${python.libPrefix}/site-packages/selenium/webdriver/
+    DST_PREFIX=$out/${python.sitePackages}/selenium/webdriver/
     DST_REMOTE=$DST_PREFIX/remote/
     DST_FF=$DST_PREFIX/firefox
     cp ../rb/lib/selenium/webdriver/atoms/getAttribute.js $DST_REMOTE
diff --git a/pkgs/development/python-modules/sense-energy/default.nix b/pkgs/development/python-modules/sense-energy/default.nix
index 35c0b4b6f4f8..cc91f276c0e7 100644
--- a/pkgs/development/python-modules/sense-energy/default.nix
+++ b/pkgs/development/python-modules/sense-energy/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, setuptools
 , aiohttp
 , ciso8601
 , async-timeout
@@ -14,8 +15,8 @@
 
 buildPythonPackage rec {
   pname = "sense-energy";
-  version = "0.12.2";
-  format = "setuptools";
+  version = "0.12.3";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -23,14 +24,18 @@ buildPythonPackage rec {
     owner = "scottbonline";
     repo = "sense";
     rev = "refs/tags/${version}";
-    hash = "sha256-OVFRM31LwHNeJUx+s/TN/1o4wvjMQEKaZEPI+y+S64s=";
+    hash = "sha256-aAPDYg5ttOAkKF5c1ft2apIQoReh4t22+78PtmLZNlI=";
   };
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "{{VERSION_PLACEHOLDER}}" "${version}"
+      --replace-fail "{{VERSION_PLACEHOLDER}}" "${version}"
   '';
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     aiohttp
     async-timeout
diff --git a/pkgs/development/python-modules/sentence-splitter/default.nix b/pkgs/development/python-modules/sentence-splitter/default.nix
index 7e7891433cd7..38ebc7fd6e2e 100644
--- a/pkgs/development/python-modules/sentence-splitter/default.nix
+++ b/pkgs/development/python-modules/sentence-splitter/default.nix
@@ -37,6 +37,6 @@ buildPythonPackage rec {
     description = "Text to sentence splitter using heuristic algorithm by Philipp Koehn and Josh Schroeder";
     homepage = "https://github.com/mediacloud/sentence-splitter";
     license = licenses.lgpl3Plus;
-    maintainers = with maintainers; [ paveloom ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/sentry-sdk/default.nix b/pkgs/development/python-modules/sentry-sdk/default.nix
index a4027953796b..11d1df937702 100644
--- a/pkgs/development/python-modules/sentry-sdk/default.nix
+++ b/pkgs/development/python-modules/sentry-sdk/default.nix
@@ -37,7 +37,7 @@
 
 buildPythonPackage rec {
   pname = "sentry-sdk";
-  version = "1.39.0";
+  version = "1.39.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -46,7 +46,7 @@ buildPythonPackage rec {
     owner = "getsentry";
     repo = "sentry-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-tYfnQ6L91KrRCR32dgzcDtA7eO+LHRAHBklxU8cXkK8=";
+    hash = "sha256-MC+9w53fsC5XB7CR9SS+z4bu2GgxkqdeYWERhk8lhcA=";
   };
 
   nativeBuildInputs = [
@@ -133,11 +133,12 @@ buildPythonPackage rec {
   disabledTests = [
     # Issue with the asseration
     "test_auto_enabling_integrations_catches_import_error"
+    "test_default_release"
   ];
 
   disabledTestPaths = [
     # Varius integration tests fail every once in a while when we
-    # upgrade depencies, so don't bother testing them.
+    # upgrade dependencies, so don't bother testing them.
     "tests/integrations/"
   ] ++ lib.optionals (stdenv.buildPlatform != "x86_64-linux") [
     # test crashes on aarch64
diff --git a/pkgs/development/python-modules/sharp-aquos-rc/default.nix b/pkgs/development/python-modules/sharp-aquos-rc/default.nix
new file mode 100644
index 000000000000..5dc7580467e8
--- /dev/null
+++ b/pkgs/development/python-modules/sharp-aquos-rc/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, pyyaml
+}:
+
+buildPythonPackage rec {
+  pname = "sharp-aquos-rc";
+  version = "0.4";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "jmoore987";
+    repo = "sharp_aquos_rc";
+    rev = "refs/tags/${version}";
+    hash = "sha256-w/XA58iT/pmNCy9up5fayjxBsevzgr8ImKgPiNtYHAM=";
+  };
+
+  nativeBuildInputs = [ setuptools ];
+
+  propagatedBuildInputs = [ pyyaml ];
+
+  # No tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "sharp_aquos_rc" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/jmoore987/sharp_aquos_rc";
+    description = "Control Sharp Aquos SmartTVs through the IP interface";
+    changelog = "https://github.com/jmoore987/sharp_aquos_rc/releases/tag/${version}";
+    maintainers = with maintainers; [ jamiemagee ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/sigstore/default.nix b/pkgs/development/python-modules/sigstore/default.nix
index ae64e1eb057b..24322a18723e 100644
--- a/pkgs/development/python-modules/sigstore/default.nix
+++ b/pkgs/development/python-modules/sigstore/default.nix
@@ -1,27 +1,23 @@
 { lib
+, appdirs
 , buildPythonPackage
+, cryptography
 , fetchFromGitHub
-
-# build-system
 , flit-core
-
-# dependencies
-, appdirs
-, cryptography
 , id
 , importlib-resources
+, pretend
 , pydantic
 , pyjwt
 , pyopenssl
+, pytestCheckHook
 , requests
 , rich
 , securesystemslib
 , sigstore-protobuf-specs
 , sigstore-rekor-types
 , tuf
-
-# tests
-, pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
@@ -29,10 +25,12 @@ buildPythonPackage rec {
   version = "2.1.0";
   pyproject = true;
 
+  disabled = pythonOlder "3.8";
+
   src = fetchFromGitHub {
     owner = "sigstore";
     repo = "sigstore-python";
-    rev = "v${version}";
+    rev = "refs/tags/v${version}";
     hash = "sha256-WH6Pme8ZbfW5xqBT056eVJ3HZP1D/lAULtyN6k0uMaA=";
   };
 
@@ -57,17 +55,35 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
+    pretend
     pytestCheckHook
   ];
 
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
   pythonImportsCheck = [
     "sigstore"
   ];
 
+  disabledTests = [
+    # Tests require network access
+    "test_fail_init_url"
+    "test_get_identity_token_bad_code"
+    "test_identity_proof_claim_lookup"
+    "test_init_url"
+    "test_production"
+    "test_sct_verify_keyring"
+    "test_sign_rekor_entry_consistent"
+    "test_verification_materials_retrieves_rekor_entry"
+    "test_verifier"
+  ];
+
   meta = with lib; {
     description = "A codesigning tool for Python packages";
     homepage = "https://github.com/sigstore/sigstore-python";
-    changelog = "https://github.com/sigstore/sigstore-python/blob/${src.rev}/CHANGELOG.md";
+    changelog = "https://github.com/sigstore/sigstore-python/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/simplemma/default.nix b/pkgs/development/python-modules/simplemma/default.nix
index 4c70b8a8df19..60cb7438e9fb 100644
--- a/pkgs/development/python-modules/simplemma/default.nix
+++ b/pkgs/development/python-modules/simplemma/default.nix
@@ -32,6 +32,6 @@ buildPythonPackage rec {
     description = "Simple multilingual lemmatizer for Python, especially useful for speed and efficiency";
     homepage = "https://github.com/adbar/simplemma";
     license = licenses.mit;
-    maintainers = with maintainers; [ paveloom ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/simplisafe-python/default.nix b/pkgs/development/python-modules/simplisafe-python/default.nix
index 59a24e96feb0..f417a5f6368d 100644
--- a/pkgs/development/python-modules/simplisafe-python/default.nix
+++ b/pkgs/development/python-modules/simplisafe-python/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "simplisafe-python";
-  version = "2023.12.0";
+  version = "2024.01.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "bachya";
     repo = "simplisafe-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-Nr4HvjIOLk/WMKCjj/ZX67OBSImRhs9SfZtLjFs81Sk=";
+    hash = "sha256-ewbR2FI0t2F8HF0ZL5omsclB9OPAjHygGLPtSkVlvgM=";
   };
 
 
diff --git a/pkgs/development/python-modules/sip/default.nix b/pkgs/development/python-modules/sip/default.nix
index 4053e20a08d0..c36e3acc30ea 100644
--- a/pkgs/development/python-modules/sip/default.nix
+++ b/pkgs/development/python-modules/sip/default.nix
@@ -9,17 +9,18 @@
 , ply
 , toml
 , tomli
+, poppler-qt5
 }:
 
 buildPythonPackage rec {
   pname = "sip";
-  version = "6.8.0";
+  version = "6.8.1";
 
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-LtGQSCDLZhtyB+sdzPrr7BpUY9ytkDukSK0ZRVAtCJw=";
+    hash = "sha256-MALfQV4WisP/45OULbxxMcuCreUAAOFSb0aoit4m9Zg=";
   };
 
   nativeBuildInputs = [
@@ -36,6 +37,10 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "sipbuild" ];
 
+  passthru.tests = {
+    inherit poppler-qt5;
+  };
+
   meta = with lib; {
     description = "Creates C++ bindings for Python modules";
     homepage    = "https://riverbankcomputing.com/";
diff --git a/pkgs/development/python-modules/slpp/default.nix b/pkgs/development/python-modules/slpp/default.nix
index d52ac84dad7a..74dbfcc834cd 100644
--- a/pkgs/development/python-modules/slpp/default.nix
+++ b/pkgs/development/python-modules/slpp/default.nix
@@ -36,6 +36,6 @@ buildPythonPackage rec {
     description = "Simple lua-python parser";
     homepage = "https://github.com/SirAnthony/slpp";
     license = licenses.mit;
-    maintainers = with maintainers; [ paveloom ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/snakemake-interface-common/default.nix b/pkgs/development/python-modules/snakemake-interface-common/default.nix
index bccad271d4a1..7b3cfd791219 100644
--- a/pkgs/development/python-modules/snakemake-interface-common/default.nix
+++ b/pkgs/development/python-modules/snakemake-interface-common/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "snakemake-interface-common";
-  version = "1.15.0";
+  version = "1.15.3";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "snakemake";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-Rf2eMkRvkTCR2swB53ekjv8U8DzTPgjhIkBVrn6gTTI=";
+    hash = "sha256-MiwdNr8+xX5oD1ilhDDhJcf4wWnfkayDMcnDyjYSWlo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/snakemake-interface-executor-plugins/default.nix b/pkgs/development/python-modules/snakemake-interface-executor-plugins/default.nix
index 358fdd614163..38b42fc9d1e8 100644
--- a/pkgs/development/python-modules/snakemake-interface-executor-plugins/default.nix
+++ b/pkgs/development/python-modules/snakemake-interface-executor-plugins/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "snakemake-interface-executor-plugins";
-  version = "8.1.3";
+  version = "8.2.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "snakemake";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-QBLdqhR6WrO/zT0Ux5xcUtr5HbrDy91qiWuSjAA5c3E=";
+    hash = "sha256-ZkhayXWy83/INRH7FYwFkhgHL+nSj7ReYC9I97SEeTM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/socialscan/default.nix b/pkgs/development/python-modules/socialscan/default.nix
index db9cd3c1f8ca..7a6cc52e3514 100644
--- a/pkgs/development/python-modules/socialscan/default.nix
+++ b/pkgs/development/python-modules/socialscan/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "socialscan";
-  version = "2.0.0";
+  version = "2.0.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "iojw";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-jiyTcpJ00DvfweChawj1ugdCVHHAdwDbHEp9jivH7gs=";
+    hash = "sha256-4JJVhB6x1NGagtfzE03Jae2GOr25hh+4l7gQ23zc7Ck=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/spglib/default.nix b/pkgs/development/python-modules/spglib/default.nix
index 95d73246aab9..b7d172c93cfd 100644
--- a/pkgs/development/python-modules/spglib/default.nix
+++ b/pkgs/development/python-modules/spglib/default.nix
@@ -19,12 +19,12 @@
 
 buildPythonPackage rec {
   pname = "spglib";
-  version = "2.1.0";
+  version = "2.2.0";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-gUNUX9/8EfvNpNcFpra81Iid6bw1JLeN+GajbdDeCks=";
+    hash = "sha256-Snxx9q24YMvhSs39bKQ9zSns2a7T84wCzXbagP+l0Bw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/sphinx-comments/default.nix b/pkgs/development/python-modules/sphinx-comments/default.nix
index 2ffed0c091fb..77f5b79519c1 100644
--- a/pkgs/development/python-modules/sphinx-comments/default.nix
+++ b/pkgs/development/python-modules/sphinx-comments/default.nix
@@ -1,19 +1,22 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, setuptools
 , sphinx
 }:
 
 buildPythonPackage rec {
   pname = "sphinx-comments";
   version = "0.0.3";
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "00170afff27019fad08e421da1ae49c681831fb2759786f07c826e89ac94cf21";
   };
 
+  nativeBuildInputs = [ setuptools ];
+
   propagatedBuildInputs = [ sphinx ];
 
   pythonImportsCheck = [ "sphinx_comments" ];
diff --git a/pkgs/development/python-modules/sphinx-markdown-parser/default.nix b/pkgs/development/python-modules/sphinx-markdown-parser/default.nix
index dc9ab56ed3fc..b67667ca804d 100644
--- a/pkgs/development/python-modules/sphinx-markdown-parser/default.nix
+++ b/pkgs/development/python-modules/sphinx-markdown-parser/default.nix
@@ -1,24 +1,27 @@
-{ stdenv
-, lib
+{ lib
+, stdenv
 , buildPythonPackage
+, commonmark
 , fetchFromGitHub
-, sphinx
 , markdown
-, commonmark
-, recommonmark
 , pydash
+, pytestCheckHook
+, pythonOlder
 , pyyaml
+, recommonmark
+, setuptools
+, sphinx
 , unify
 , yapf
-, python
 }:
 
 buildPythonPackage rec {
   pname = "sphinx-markdown-parser";
   version = "0.2.4";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
-  # PyPi release does not include requirements.txt
   src = fetchFromGitHub {
     owner = "clayrisser";
     repo = "sphinx-markdown-parser";
@@ -28,20 +31,44 @@ buildPythonPackage rec {
     sha256 = "0i0hhapmdmh83yx61lxi2h4bsmhnzddamz95844g2ghm132kw5mv";
   };
 
-  propagatedBuildInputs = [ sphinx markdown commonmark pydash pyyaml unify yapf recommonmark ];
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    commonmark
+    markdown
+    pydash
+    pyyaml
+    recommonmark
+    unify
+    yapf
+  ];
+
+  buildInputs = [
+    sphinx
+  ];
 
-  # Avoids running broken tests in test_markdown.py
-  checkPhase = ''
-    ${python.interpreter} -m unittest -v tests/test_basic.py tests/test_sphinx.py
-  '';
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
 
-  pythonImportsCheck = [ "sphinx_markdown_parser" ];
+  pythonImportsCheck = [
+    "sphinx_markdown_parser"
+  ];
+
+  disabledTests = [
+    # AssertionError
+    "test_heading"
+    "test_headings"
+    "test_integration"
+  ];
 
   meta = with lib; {
-    broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
     description = "Write markdown inside of docutils & sphinx projects";
     homepage = "https://github.com/clayrisser/sphinx-markdown-parser";
     license = licenses.mit;
     maintainers = with maintainers; [ FlorianFranzen ];
+    broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/python-modules/sphinx-notfound-page/default.nix b/pkgs/development/python-modules/sphinx-notfound-page/default.nix
index e9f5d9c4519d..0621c2867d03 100644
--- a/pkgs/development/python-modules/sphinx-notfound-page/default.nix
+++ b/pkgs/development/python-modules/sphinx-notfound-page/default.nix
@@ -3,6 +3,7 @@
 , fetchFromGitHub
 , flit-core
 , pythonImportsCheckHook
+, pythonOlder
 # documentation build dependencies
 , sphinxHook
 , sphinx-prompt
@@ -12,18 +13,25 @@
 , sphinxemoji
 # runtime dependencies
 , sphinx
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "sphinx-notfound-page";
   version = "1.0.0";
-  format = "pyproject";
-  outputs = [ "out" "doc" ];
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  outputs = [
+    "out"
+    "doc"
+  ];
 
   src = fetchFromGitHub {
     owner = "readthedocs";
     repo = "sphinx-notfound-page";
-    rev = version;
+    rev = "refs/tags/${version}";
     hash = "sha256-tG71UuYbdlWNgq6Y5xRH3aWc9/eTr/RlsRNWSUjrbBE=";
   };
 
@@ -38,13 +46,22 @@ buildPythonPackage rec {
     sphinxemoji
   ];
 
-  propagatedBuildInputs = [ sphinx ];
+  buildInputs = [
+    sphinx
+  ];
 
-  pythonImportsCheck = [ "notfound" ];
+  propagatedBuildInputs = [
+    setuptools
+  ];
+
+  pythonImportsCheck = [
+    "notfound"
+  ];
 
   meta = with lib; {
     description = "A sphinx extension to create a custom 404 page with absolute URLs hardcoded";
     homepage = "https://github.com/readthedocs/sphinx-notfound-page";
+    changelog = "https://github.com/readthedocs/sphinx-notfound-page/blob/${version}/CHANGELOG.rst";
     license = licenses.mit;
     maintainers = with maintainers; [ kaction ];
   };
diff --git a/pkgs/development/python-modules/sphinx-version-warning/default.nix b/pkgs/development/python-modules/sphinx-version-warning/default.nix
index 1fb89f3a2849..7561fcd0dba5 100644
--- a/pkgs/development/python-modules/sphinx-version-warning/default.nix
+++ b/pkgs/development/python-modules/sphinx-version-warning/default.nix
@@ -3,13 +3,15 @@
 , fetchFromGitHub
 , fetchpatch
 , pythonImportsCheckHook
+, pythonOlder
+, setuptools
 , sphinx
-, sphinxHook
 , sphinx-autoapi
+, sphinx-prompt
 , sphinx-rtd-theme
 , sphinx-tabs
-, sphinx-prompt
 , sphinxemoji
+, sphinxHook
 }:
 
 # Latest tagged release release "1.1.2" (Nov 2018) does not contain
@@ -18,9 +20,14 @@
 buildPythonPackage {
   pname = "sphinx-version-warning";
   version = "unstable-2019-08-10";
-  format = "pyproject";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
-  outputs = [ "out" "doc" ];
+  outputs = [
+    "out"
+    "doc"
+  ];
 
   src = fetchFromGitHub {
     owner = "humitos";
@@ -40,21 +47,27 @@ buildPythonPackage {
 
   nativeBuildInputs = [
     pythonImportsCheckHook
-    sphinxHook
     sphinx-autoapi
+    sphinx-prompt
     sphinx-rtd-theme
     sphinx-tabs
-    sphinx-prompt
     sphinxemoji
+    sphinxHook
+    setuptools
   ];
 
-  propagatedBuildInputs = [ sphinx ];
+  buildInputs = [
+    sphinx
+  ];
 
-  pythonImportsCheck = [ "versionwarning" ];
+  pythonImportsCheck = [
+    "versionwarning"
+  ];
 
   meta = with lib; {
     description = "A sphinx extension to show a warning banner at the top of your documentation";
     homepage = "https://github.com/humitos/sphinx-version-warning";
+    changelog = "https://github.com/humitos/sphinx-version-warning/blob/${version}/CHANGELOG.rst";
     license = licenses.mit;
     maintainers = with maintainers; [ kaction ];
   };
diff --git a/pkgs/development/python-modules/sphinxcontrib-apidoc/default.nix b/pkgs/development/python-modules/sphinxcontrib-apidoc/default.nix
index 3945f8bf4c4f..327ff267eebc 100644
--- a/pkgs/development/python-modules/sphinxcontrib-apidoc/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-apidoc/default.nix
@@ -2,12 +2,13 @@
 , buildPythonPackage
 , fetchPypi
 , pbr
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-apidoc";
   version = "0.4.0";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
@@ -19,8 +20,9 @@ buildPythonPackage rec {
     rm test-requirements.txt requirements.txt
   '';
 
-  propagatedBuildInputs = [
+  nativeBuildInputs = [
     pbr
+    setuptools
   ];
 
   # Check is disabled due to circular dependency of sphinx
diff --git a/pkgs/development/python-modules/sphinxcontrib-confluencebuilder/default.nix b/pkgs/development/python-modules/sphinxcontrib-confluencebuilder/default.nix
index dc7798015cb7..6b282371f22b 100644
--- a/pkgs/development/python-modules/sphinxcontrib-confluencebuilder/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-confluencebuilder/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-confluencebuilder";
-  version = "2.3.0";
+  version = "2.4.0";
   format = "pyproject";
 
   src = fetchPypi {
     pname = "sphinxcontrib_confluencebuilder";
     inherit version;
-    hash = "sha256-Zpe2n131afnq4IhQEEZtquvSEkkjv/uznXt2tQhGfZA=";
+    hash = "sha256-q3+GwMVWMRu4eWwbdXcbPQzpBhBXcZEMFTpbEO+teLk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/spyse-python/default.nix b/pkgs/development/python-modules/spyse-python/default.nix
index 0064454a1eaf..56ffdfe8c080 100644
--- a/pkgs/development/python-modules/spyse-python/default.nix
+++ b/pkgs/development/python-modules/spyse-python/default.nix
@@ -7,32 +7,23 @@
 , pythonOlder
 , requests
 , responses
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "spyse-python";
   version = "2.2.3";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "spyse-com";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "041k0037anwaxp2mh7mdk8rdsw9hdr3arigyyqfxfn35x8j41c3k";
+    repo = "spyse-python";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-c7BAJOplWNcd9v7FrEZuMHHdMpqtHljF7YpbdQYAMxA=";
   };
 
-  propagatedBuildInputs = [
-    requests
-    dataclasses-json
-    responses
-    limiter
-  ];
-
-  # Tests requires an API token
-  doCheck = false;
-
   patches = [
     # Update limiter import and rate limit, https://github.com/spyse-com/spyse-python/pull/11
     (fetchpatch {
@@ -45,11 +36,26 @@ buildPythonPackage rec {
   postPatch = ''
     substituteInPlace setup.py \
       --replace "'dataclasses~=0.6'," "" \
+      --replace "dataclasses-json~=0.5.4" "dataclasses-json>=0.5.4" \
       --replace "responses~=0.13.3" "responses>=0.13.3" \
       --replace "limiter~=0.1.2" "limiter>=0.1.2" \
       --replace "requests~=2.26.0" "requests>=2.26.0"
   '';
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    requests
+    dataclasses-json
+    responses
+    limiter
+  ];
+
+  # Tests requires an API token
+  doCheck = false;
+
   pythonImportsCheck = [
     "spyse"
   ];
@@ -57,6 +63,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python module for spyse.com API";
     homepage = "https://github.com/spyse-com/spyse-python";
+    changelog = "https://github.com/spyse-com/spyse-python/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/spython/default.nix b/pkgs/development/python-modules/spython/default.nix
new file mode 100644
index 000000000000..e5a2fdf161c8
--- /dev/null
+++ b/pkgs/development/python-modules/spython/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "spython";
+  version = "0.3.12";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "singularityhub";
+    repo = "singularity-cli";
+    rev = "refs/tags/${version}";
+    hash = "sha256-fRtqOpDgVMYlVDwbPkrnpd7PT4fV+2WS6RmpJoxaKdQ=";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace '"pytest-runner"' ""
+  '';
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "spython"
+  ];
+
+  disabledTests = [
+    # Assertion errors
+    "test_has_no_instances"
+    "test_check_install"
+    "test_check_get_singularity_version"
+  ];
+
+  disabledTestPaths = [
+    # Tests are looking for something that doesn't exist
+    "spython/tests/test_client.py"
+  ];
+
+  meta = with lib; {
+    description = "Streamlined singularity python client (spython) for singularity";
+    homepage = "https://github.com/singularityhub/singularity-cli";
+    changelog = "https://github.com/singularityhub/singularity-cli/blob/${version}/CHANGELOG.md";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/sqlglot/default.nix b/pkgs/development/python-modules/sqlglot/default.nix
index 76c6027fca4b..f02a32d0f64f 100644
--- a/pkgs/development/python-modules/sqlglot/default.nix
+++ b/pkgs/development/python-modules/sqlglot/default.nix
@@ -1,41 +1,56 @@
 { lib
 , buildPythonPackage
+, duckdb
 , fetchFromGitHub
-, pythonOlder
 , pytestCheckHook
 , python-dateutil
-, duckdb
+, pythonOlder
+, setuptools
 , setuptools-scm
 }:
+
 buildPythonPackage rec {
   pname = "sqlglot";
-  version = "17.14.2";
-  format = "setuptools";
+  version = "20.9.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     repo = "sqlglot";
     owner = "tobymao";
-    rev = "v${version}";
-    hash = "sha256-aImshQ5jf0k62ucpK4X8G7uHGAFQkhGgjMYo4mvSvew=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-4czhmAJUDRj0x8dCmIXg5BQ1Uvie5vx+UtWdSSY5mnM=";
   };
 
-  nativeBuildInputs = [ setuptools-scm ];
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
 
-  # optional dependency used in the sqlglot optimizer
-  propagatedBuildInputs = [ python-dateutil ];
+  propagatedBuildInputs = [
+    # Optional dependency used in the sqlglot optimizer
+    python-dateutil
+  ];
 
-  nativeCheckInputs = [ pytestCheckHook duckdb ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    duckdb
+  ];
 
-  # these integration tests assume a running Spark instance
-  disabledTestPaths = [ "tests/dataframe/integration" ];
+  disabledTestPaths = [
+    # These integration tests assume a running Spark instance
+    "tests/dataframe/integration"
+  ];
 
-  pythonImportsCheck = [ "sqlglot" ];
+  pythonImportsCheck = [
+    "sqlglot"
+  ];
 
   meta = with lib; {
     description = "A no dependency Python SQL parser, transpiler, and optimizer";
     homepage = "https://github.com/tobymao/sqlglot";
+    changelog = "https://github.com/tobymao/sqlglot/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ cpcloud ];
   };
diff --git a/pkgs/development/python-modules/stdlibs/default.nix b/pkgs/development/python-modules/stdlibs/default.nix
index 443dc56aee11..677d282f0653 100644
--- a/pkgs/development/python-modules/stdlibs/default.nix
+++ b/pkgs/development/python-modules/stdlibs/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "stdlibs";
-  version = "2023.12.15";
+  version = "2024.1.28";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "omnilib";
     repo = "stdlibs";
     rev = "refs/tags/v${version}";
-    hash = "sha256-1Av10FNJkCC2XGNx1LDqd0GwiNPIDPXPFatW8+2XoaI=";
+    hash = "sha256-xf46ih7viVUKNIT1tLs5MQPNjNtQlQ2N9BJIGPt4Srk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/stravalib/default.nix b/pkgs/development/python-modules/stravalib/default.nix
index df64dbebab50..b6845b5dce4d 100644
--- a/pkgs/development/python-modules/stravalib/default.nix
+++ b/pkgs/development/python-modules/stravalib/default.nix
@@ -1,57 +1,62 @@
 { lib
-, buildPythonPackage
-, fetchPypi
-, nose
-, setuptools
-, setuptools-scm
-, wheel
 , arrow
-, requests
-, units
+, buildPythonPackage
+, fetchFromGitHub
 , pint
-, pydantic
+, pydantic_1 # use pydantic 2 on next release
+, pythonOlder
 , pytz
-, six
+, requests
+, responses
+, setuptools
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "stravalib";
   version = "1.5";
-  format = "pyproject";
+  pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-OEdMRg3KjUrXt/CgJgsUqa/sVFAE0JONNZg5MBKtxmY=";
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "stravalib";
+    repo = "stravalib";
+    rev = "v${version}";
+    hash = "sha256-EQcLDU9id/DpUZKMI9prCJC9zEK1CuhOtSB4FAWLg/g=";
   };
 
+  postPatch = ''
+    # Remove on next release
+    sed -i 's/pydantic==1.10.9/pydantic/' pyproject.toml
+  '';
+
   nativeBuildInputs = [
     setuptools
     setuptools-scm
-    wheel
-  ];
-
-  nativeCheckInputs = [
-    nose
   ];
 
   propagatedBuildInputs = [
     arrow
-    requests
-    units
     pint
-    pydantic
+    pydantic_1
     pytz
-    six
+    requests
+    responses
   ];
 
-  # tests require network access
-  # testing strava api
+  # Tests require network access, testing strava API
   doCheck = false;
 
+  pythonImportsCheck = [
+    "stravalib"
+  ];
+
   meta = with lib; {
     description = "Python library for interacting with Strava v3 REST API";
     homepage = "https://github.com/stravalib/stravalib";
+    changelog = "https://github.com/stravalib/stravalib/releases/tag/v${version}";
     license = licenses.asl20;
-    maintainers = [ ];
+    maintainers = with maintainers; [ sikmir ];
   };
 }
diff --git a/pkgs/development/python-modules/strawberry-graphql/default.nix b/pkgs/development/python-modules/strawberry-graphql/default.nix
index 194d942669ad..8cdffc96759f 100644
--- a/pkgs/development/python-modules/strawberry-graphql/default.nix
+++ b/pkgs/development/python-modules/strawberry-graphql/default.nix
@@ -42,7 +42,7 @@
 
 buildPythonPackage rec {
   pname = "strawberry-graphql";
-  version = "0.215.1";
+  version = "0.217.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -51,7 +51,7 @@ buildPythonPackage rec {
     owner = "strawberry-graphql";
     repo = "strawberry";
     rev = "refs/tags/${version}";
-    hash = "sha256-7jWG9bk7NN3BhpzS2fi7OkAsxL0446hnqiNqhwiBGHc=";
+    hash = "sha256-Rorbqh/YwBlrkVgS7rV5vb4n773V/EmGAMGP0fuF6V4=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/strct/default.nix b/pkgs/development/python-modules/strct/default.nix
index 7244002d4169..061e2a90c07c 100644
--- a/pkgs/development/python-modules/strct/default.nix
+++ b/pkgs/development/python-modules/strct/default.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchFromGitHub
+, fetchpatch
 , buildPythonPackage
 , setuptools
 , pytestCheckHook
@@ -18,11 +19,24 @@ buildPythonPackage rec {
     hash = "sha256-ctafvdfSOdp7tlCUYg7d5XTXR1qBcWvOVtGtNUnhYIw=";
   };
 
+  patches = [
+    # https://github.com/shaypal5/strct/pull/4
+    (fetchpatch {
+      name = "fix-versioneer-on-python312.patch";
+      url = "https://github.com/shaypal5/strct/commit/a1e5b6ca9045b52efdfdbb3c82e12a01e251d41b.patch";
+      hash = "sha256-xXADCSIhq1ARny2twzrhR1J8LkMFWFl6tmGxrM8RvkU=";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace pytest.ini \
       --replace  \
         "--cov" \
         "#--cov"
+
+    # configure correct version, which fails due to missing .git
+    substituteInPlace versioneer.py strct/_version.py \
+      --replace '"0+unknown"' '"${version}"'
   '';
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/strenum/default.nix b/pkgs/development/python-modules/strenum/default.nix
index b7d2661ce2c8..b3ae130af270 100644
--- a/pkgs/development/python-modules/strenum/default.nix
+++ b/pkgs/development/python-modules/strenum/default.nix
@@ -1,14 +1,16 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, fetchpatch
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "strenum";
   version = "0.4.15";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -19,6 +21,15 @@ buildPythonPackage rec {
     hash = "sha256-LrDLIWiV/zIbl7CwKh7DAy4LoLyY7+hfUu8nqduclnA=";
   };
 
+  patches = [
+    # Replace SafeConfigParser and readfp, https://github.com/milanmeu/aioaseko/pull/6
+    (fetchpatch {
+      name = "replace-safeconfigparser.patch";
+      url = "https://github.com/irgeek/StrEnum/commit/896bef1b7e4a50c8b53d90c8d2fb5c0164f08ecd.patch";
+      hash = "sha256-dmmEzhy17huclo1wOubpBUDc2L7vqEU5b/6a5loM47A=";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace setup.py \
       --replace '"pytest-runner"' ""
@@ -26,6 +37,10 @@ buildPythonPackage rec {
       --replace " --cov=strenum --cov-report term-missing --black --pylint" ""
   '';
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   nativeCheckInputs = [
     pytestCheckHook
   ];
@@ -35,7 +50,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "MOdule for enum that inherits from str";
+    description = "Module for enum that inherits from str";
     homepage = "https://github.com/irgeek/StrEnum";
     changelog = "https://github.com/irgeek/StrEnum/releases/tag/v${version}";
     license = with licenses; [ mit ];
diff --git a/pkgs/development/python-modules/stupidartnet/default.nix b/pkgs/development/python-modules/stupidartnet/default.nix
new file mode 100644
index 000000000000..6092682d2afe
--- /dev/null
+++ b/pkgs/development/python-modules/stupidartnet/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "stupidartnet";
+  version = "1.4.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "cpvalente";
+    repo = "stupidArtnet";
+    rev = "refs/tags/${version}";
+    hash = "sha256-2LfK63FJcdnXfDLuUzYNlspj1jmtw00S6el49cH+RRM=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "stupidArtnet"
+  ];
+
+  meta = with lib; {
+    description = "Library implementation of the Art-Net protocol";
+    homepage = "https://github.com/cpvalente/stupidArtnet";
+    changelog = "https://github.com/cpvalente/stupidArtnet/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/subarulink/default.nix b/pkgs/development/python-modules/subarulink/default.nix
index 603acb73884b..9eeb7e99aaa0 100644
--- a/pkgs/development/python-modules/subarulink/default.nix
+++ b/pkgs/development/python-modules/subarulink/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "subarulink";
-  version = "0.7.9";
+  version = "0.7.10";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "G-Two";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-dRhZWV58tHoGpJ2bDWFov1timTHYnqTPILySauutyzg=";
+    hash = "sha256-OKZ55J294I3wPo2vL+wuMMCA4N1ejgtquA8Bf7wPiIs=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/subunit2sql/default.nix b/pkgs/development/python-modules/subunit2sql/default.nix
index d52180a3d0c4..7955ed3d8d89 100644
--- a/pkgs/development/python-modules/subunit2sql/default.nix
+++ b/pkgs/development/python-modules/subunit2sql/default.nix
@@ -7,6 +7,8 @@
 , pbr
 , python-dateutil
 , stestr
+, testresources
+, testscenarios
 }:
 
 buildPythonPackage rec {
@@ -29,6 +31,8 @@ buildPythonPackage rec {
     mock
     oslo-concurrency
     stestr
+    testresources
+    testscenarios
   ];
 
   checkPhase = ''
@@ -52,5 +56,7 @@ buildPythonPackage rec {
     homepage = "https://opendev.org/opendev/subunit2sql";
     license = licenses.asl20;
     maintainers = teams.openstack.members;
+    # version 1.10.0 is incomptaible with oslo-db 14.0.0
+    broken = true;
   };
 }
diff --git a/pkgs/development/python-modules/sudachidict/default.nix b/pkgs/development/python-modules/sudachidict/default.nix
index 72826908612c..41a359110474 100644
--- a/pkgs/development/python-modules/sudachidict/default.nix
+++ b/pkgs/development/python-modules/sudachidict/default.nix
@@ -2,6 +2,7 @@
 , fetchFromGitHub
 , sudachidict
 , setuptools
+, sudachipy
 }:
 
 buildPythonPackage rec {
@@ -33,6 +34,10 @@ buildPythonPackage rec {
     setuptools
   ];
 
+  propagatedBuildInputs = [
+    sudachipy
+  ];
+
   # we need to prepare some files before the build
   # https://github.com/WorksApplications/SudachiDict/blob/develop/package_python.sh
   preBuild = ''
diff --git a/pkgs/development/python-modules/sudachipy/default.nix b/pkgs/development/python-modules/sudachipy/default.nix
index bfaf9be85846..3e3bd5b4adf6 100644
--- a/pkgs/development/python-modules/sudachipy/default.nix
+++ b/pkgs/development/python-modules/sudachipy/default.nix
@@ -10,6 +10,7 @@
 , pytestCheckHook
 , sudachidict-core
 , tokenizers
+, sudachipy
 }:
 
 buildPythonPackage rec {
@@ -19,7 +20,7 @@ buildPythonPackage rec {
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-Am+ae2lgnndSDzf0GF8R1i6OPLdIlm2dLThqYqXbscA=";
+    hash = "sha256-ARwvThfATDdzBTjPFr9yjbE/0eYvp/TCZOEGbUupJmU=";
   };
 
   nativeBuildInputs = [
@@ -37,6 +38,9 @@ buildPythonPackage rec {
     cd python
   '';
 
+  # avoid infinite recursion due to sudachidict
+  doCheck = false;
+
   nativeCheckInputs = [
     pytestCheckHook
     sudachidict-core
@@ -47,6 +51,20 @@ buildPythonPackage rec {
     "sudachipy"
   ];
 
+  passthru = {
+    inherit (sudachi-rs) updateScript;
+    tests = {
+      pytest = sudachipy.overridePythonAttrs (
+        _: {
+          doCheck = true;
+          # avoid catchConflicts of sudachipy
+          # we don't need to install this package since it is just a test
+          dontInstall = true;
+        }
+      );
+    };
+  };
+
   meta = sudachi-rs.meta // {
     homepage = "https://github.com/WorksApplications/sudachi.rs/tree/develop/python";
     mainProgram = "sudachipy";
diff --git a/pkgs/development/python-modules/svg-py/default.nix b/pkgs/development/python-modules/svg-py/default.nix
new file mode 100644
index 000000000000..f2971a0b4144
--- /dev/null
+++ b/pkgs/development/python-modules/svg-py/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, flit-core
+, pytestCheckHook
+, pythonOlder
+, pyyaml
+}:
+
+buildPythonPackage rec {
+  pname = "svg-py";
+  version = "1.4.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "orsinium-labs";
+    repo = "svg.py";
+    rev = "refs/tags/${version}";
+    hash = "sha256-GbXPDYDq6zlsPJ/PAjR6OvarVrp7x3LGhseyTMwY8Dg=";
+  };
+
+  nativeBuildInputs = [
+    flit-core
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    pyyaml
+  ];
+
+  pythonImportsCheck = [
+    "svg"
+  ];
+
+  disabledTestPaths = [
+    # Tests need additional files
+    "tests/test_attributes.py"
+  ];
+
+  meta = with lib; {
+    description = "Type-safe Python library to generate SVG files";
+    homepage = "https://github.com/orsinium-labs/svg.py";
+    changelog = "https://github.com/orsinium-labs/svg.py/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/svg2tikz/default.nix b/pkgs/development/python-modules/svg2tikz/default.nix
index 257a901aa720..7e24071c9c7c 100644
--- a/pkgs/development/python-modules/svg2tikz/default.nix
+++ b/pkgs/development/python-modules/svg2tikz/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "svg2tikz";
-  version = "3.0.0";
+  version = "3.0.1";
 
   disabled = pythonOlder "3.7";
 
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "xyz2tex";
     repo = "svg2tikz";
     rev = "refs/tags/v${version}";
-    hash = "sha256-YnWkj4xvjGzpKQv+H+spage+dy+fC9fJkqsOaQ6C1Ho=";
+    hash = "sha256-hvGvJFxhu7llj+tFfZvz12dZ8QYjY7zcLzB5S44l+IM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/svgutils/default.nix b/pkgs/development/python-modules/svgutils/default.nix
new file mode 100644
index 000000000000..ea2c7c547e43
--- /dev/null
+++ b/pkgs/development/python-modules/svgutils/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, lxml
+, matplotlib
+, pytestCheckHook
+, nose
+}:
+
+buildPythonPackage rec {
+  pname = "svgutils";
+  version = "0.3.4";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "btel";
+    repo = "svg_utils";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-ITvZx+3HMbTyaRmCb7tR0LKqCxGjqDdV9/2taziUD0c=";
+  };
+
+  nativeBuildInputs = [ setuptools ];
+
+  propagatedBuildInputs = [
+    lxml
+    matplotlib
+  ];
+
+  nativeCheckInputs = [ pytestCheckHook nose ];
+
+  pythonImportsCheck = [ "svgutils" ];
+
+  meta = with lib; {
+    description = "Python tools to create and manipulate SVG files";
+    homepage = "https://github.com/btel/svg_utils";
+    license = licenses.mit;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/pkgs/development/python-modules/switchbot-api/default.nix b/pkgs/development/python-modules/switchbot-api/default.nix
new file mode 100644
index 000000000000..32df6d5185ca
--- /dev/null
+++ b/pkgs/development/python-modules/switchbot-api/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "switchbot-api";
+  version = "2.0.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "SeraphicCorp";
+    repo = "py-switchbot-api";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-QM8oVfd+hdVNdhOgI3ujyY82Im0Yr5Nl+OcqzEtZ7XE=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  # Module has no tests
+  doCheck= false;
+
+  pythonImportsCheck = [
+    "switchbot_api"
+  ];
+
+  meta = with lib; {
+    description = "An asynchronous library to use Switchbot API";
+    homepage = "https://github.com/SeraphicCorp/py-switchbot-api";
+    changelog = "https://github.com/SeraphicCorp/py-switchbot-api/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/synologydsm-api/default.nix b/pkgs/development/python-modules/synologydsm-api/default.nix
index e86361979c1b..52dc544acb4d 100644
--- a/pkgs/development/python-modules/synologydsm-api/default.nix
+++ b/pkgs/development/python-modules/synologydsm-api/default.nix
@@ -4,6 +4,7 @@
 , fetchFromGitHub
 , fetchpatch
 , poetry-core
+, pythonRelaxDepsHook
 , requests
 , urllib3
 , pytestCheckHook
@@ -13,7 +14,7 @@ buildPythonPackage rec {
   pname = "synologydsm-api";
   version = "1.0.2";
 
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -21,7 +22,7 @@ buildPythonPackage rec {
     owner = "hacf-fr";
     repo = "synologydsm-api";
     rev = "v${version}";
-    sha256 = "0gyahf1x6i6j9pslh1y3pyh3si5jvxb06r1w761b9gsxyk14y1si";
+    hash = "sha256-UQdPwvRdv7SCOTxkA1bfskQ9oL/DB0j1TdJE04ODyj8=";
   };
 
   patches = [
@@ -29,12 +30,17 @@ buildPythonPackage rec {
     (fetchpatch {
       name = "switch-to-poetry-core.patch";
       url = "https://github.com/hacf-fr/synologydsm-api/commit/f1ea2be927388bdff6d43d09027b82a854635e34.patch";
-      sha256 = "120pdgp2i4ds6y3rf9j372f9zdcf4y8rsgl1xjbkgdhkp76bkkgr";
+      hash = "sha256-+c25zLkTtjeX7IE+nZEnjrWfnDhDJpeHN7qRKO5rF4g=";
     })
   ];
 
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "urllib3"
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/tabcmd/default.nix b/pkgs/development/python-modules/tabcmd/default.nix
index 617968006843..3958ace5aacf 100644
--- a/pkgs/development/python-modules/tabcmd/default.nix
+++ b/pkgs/development/python-modules/tabcmd/default.nix
@@ -1,39 +1,69 @@
 { lib
+, appdirs
+, argparse
 , buildPythonPackage
-, python3
-, pythonOlder
+, doit
 , fetchPypi
 , ftfy
-, appdirs
+, mock
+, pyinstaller-versionfile
+, pytestCheckHook
+, python3
+, pythonOlder
 , requests
+, pythonRelaxDepsHook
+, setuptools
 , setuptools-scm
-, types-mock
+, tableauserverclient
 , types-appdirs
+, types-mock
 , types-requests
 , types-setuptools
-, argparse
-, doit
-, pyinstaller-versionfile
-, tableauserverclient
-, pytestCheckHook
-, mock
+, urllib3
 }:
 
 buildPythonPackage rec {
   pname = "tabcmd";
   version = "2.0.12";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-nsQJWDzSzSc1WRk5TBl/E7Mpfk8wGD1CsETAWILKxCM=";
+    hash = "sha256-nsQJWDzSzSc1WRk5TBl/E7Mpfk8wGD1CsETAWILKxCM=";
   };
 
-  propagatedBuildInputs = [ ftfy appdirs requests setuptools-scm types-mock types-appdirs argparse doit pyinstaller-versionfile types-requests types-setuptools tableauserverclient ];
+  pythonRelaxDeps = [
+    "tableauserverclient"
+    "urllib3"
+  ];
+
+  nativeBuildInputs = [
+    pythonRelaxDepsHook
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    appdirs
+    argparse
+    doit
+    ftfy
+    pyinstaller-versionfile
+    requests
+    setuptools-scm
+    tableauserverclient
+    types-appdirs
+    types-mock
+    types-requests
+    types-setuptools
+    urllib3
+  ];
 
-  nativeCheckInputs = [ pytestCheckHook mock ];
+  nativeCheckInputs = [
+    mock
+    pytestCheckHook
+  ];
 
   # Remove an unneeded dependency that can't be resolved
   prePatch = ''
@@ -58,10 +88,11 @@ buildPythonPackage rec {
   '';
 
 
-  meta = {
+  meta = with lib; {
     description = "A command line client for working with Tableau Server.";
-    homepage = "https://pypi.org/project/tabcmd/";
-    license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ ];
+    homepage = "https://github.com/tableau/tabcmd";
+    changelog = "https://github.com/tableau/tabcmd/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/tableauserverclient/default.nix b/pkgs/development/python-modules/tableauserverclient/default.nix
index 76a028fe2fc0..3ddf8c9a2d15 100644
--- a/pkgs/development/python-modules/tableauserverclient/default.nix
+++ b/pkgs/development/python-modules/tableauserverclient/default.nix
@@ -1,26 +1,44 @@
 { lib
 , buildPythonPackage
-, fetchPypi
 , defusedxml
-, requests
+, fetchPypi
 , packaging
-, requests-mock
 , pytestCheckHook
 , pythonOlder
+, pythonRelaxDepsHook
+, requests
+, requests-mock
+, setuptools
+, versioneer
 }:
 
 buildPythonPackage rec {
   pname = "tableauserverclient";
-  version = "0.29";
-  format = "setuptools";
+  version = "0.30";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-FVJeKt1+qL4XuxFNqhWRtCJu5yEmcP/RLeQQyXndU0c=";
+    hash = "sha256-MIE6V84xLEbgmTwvP6jQC0H//gBnMTO1sowL1HIMbpQ=";
   };
 
+  postPatch = ''
+    # Remove vendorized versioneer
+    rm versioneer.py
+  '';
+
+  pythonRelaxDeps = [
+    "urllib3"
+  ];
+
+  nativeBuildInputs = [
+    setuptools
+    pythonRelaxDepsHook
+    versioneer
+  ];
+
   propagatedBuildInputs = [
     defusedxml
     requests
diff --git a/pkgs/development/python-modules/tables/default.nix b/pkgs/development/python-modules/tables/default.nix
index 56cb2898bf1f..70a6f86231e8 100644
--- a/pkgs/development/python-modules/tables/default.nix
+++ b/pkgs/development/python-modules/tables/default.nix
@@ -1,6 +1,5 @@
 { lib
 , fetchPypi
-, fetchpatch
 , buildPythonPackage
 , pythonOlder
 , blosc2
@@ -23,7 +22,7 @@
 buildPythonPackage rec {
   pname = "tables";
   version = "3.9.2";
-  pyproject = true;
+  format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
@@ -32,20 +31,6 @@ buildPythonPackage rec {
     hash = "sha256-1HAmPC5QxLfIY1oNmawf8vnnBMJNceX6M8RSnn0K2cM=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "numpy-1.25-compatibility.patch";
-      url = "https://github.com/PyTables/PyTables/commit/337792561e5924124efd20d6fea6bbbd2428b2aa.patch";
-      hash = "sha256-pz3A/jTPWXXlzr+Yl5PRUvdSAinebFsoExfek4RUHkc=";
-    })
-    (fetchpatch {
-      name = "numexpr-2.8.5-compatibility.patch";
-      url = "https://github.com/PyTables/PyTables/commit/1a235490ebe1a138da1139cfa19829b5f0a2af37.patch";
-      includes = [ "tables/tests/test_queries.py" ];
-      hash = "sha256-uMS+Z2Zcz68ILMQaBdIDMnCyasozCaCGOiGIyw0+Evc=";
-    })
-  ];
-
   nativeBuildInputs = [
     blosc2
     cython
diff --git a/pkgs/development/python-modules/tcxreader/default.nix b/pkgs/development/python-modules/tcxreader/default.nix
index 1334708fc7f7..7509b02e94e2 100644
--- a/pkgs/development/python-modules/tcxreader/default.nix
+++ b/pkgs/development/python-modules/tcxreader/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "tcxreader";
-  version = "0.4.6";
+  version = "0.4.9";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "alenrajsp";
     repo = "tcxreader";
     rev = "refs/tags/v${version}";
-    hash = "sha256-J7yzJfJr2EK/0hZLVgk+Poqr/vY/9bsgA6cePTQ45U0=";
+    hash = "sha256-N/YsH1P8F9bSuzTgrYNU6xEO/yldXNIXMN0pQgIesfc=";
   };
 
   nativeBuildInputs = [
@@ -35,6 +35,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "A reader for Garmin’s TCX file format";
     homepage = "https://github.com/alenrajsp/tcxreader";
+    changelog = "https://github.com/alenrajsp/tcxreader/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ firefly-cpp ];
   };
diff --git a/pkgs/development/python-modules/telegram-text/default.nix b/pkgs/development/python-modules/telegram-text/default.nix
index b79cd78bf4b9..ca37dde8fb86 100644
--- a/pkgs/development/python-modules/telegram-text/default.nix
+++ b/pkgs/development/python-modules/telegram-text/default.nix
@@ -9,15 +9,15 @@
 
 buildPythonPackage rec {
   pname = "telegram-text";
-  version = "0.1.2";
+  version = "0.2.0";
   pyproject = true;
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "SKY-ALIN";
     repo = "telegram-text";
-    rev = "v${version}";
-    hash = "sha256-p8SVQq7IvkVuOFE8VDugROLY5Wk0L2HmXyacTzFFSP4=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-eUy4kyCmM/5Ag/0s9hYW2IIg+OTX2L7EsoOYivhd0pU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/templateflow/default.nix b/pkgs/development/python-modules/templateflow/default.nix
new file mode 100644
index 000000000000..c879b7064d0f
--- /dev/null
+++ b/pkgs/development/python-modules/templateflow/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, pytestCheckHook
+, setuptools-scm
+, nipreps-versions
+, pybids
+, requests
+, tqdm
+}:
+
+buildPythonPackage rec {
+  pname = "templateflow";
+  version = "23.1.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "templateflow";
+    repo = "python-client";
+    rev = "refs/tags/${version}";
+    hash = "sha256-8AdXC1IFGfYZ5cvCAyBz0tD3zia+KBILX0tL9IcO2NA=";
+  };
+
+  nativeBuildInputs = [ setuptools-scm ];
+  propagatedBuildInputs = [
+    nipreps-versions
+    pybids
+    requests
+    tqdm
+  ];
+
+  doCheck = false;  # most tests try to download data
+  #pythonImportsCheck = [ "templateflow" ];  # touches $HOME/.cache, hence needs https://github.com/NixOS/nixpkgs/pull/120300
+
+  meta = with lib; {
+    homepage = "https://templateflow.org/python-client";
+    description = "Python API to query TemplateFlow via pyBIDS";
+    changelog = "https://github.com/templateflow/python-client/releases/tag/${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/pkgs/development/python-modules/tensordict/default.nix b/pkgs/development/python-modules/tensordict/default.nix
new file mode 100644
index 000000000000..1c5bad17e8a0
--- /dev/null
+++ b/pkgs/development/python-modules/tensordict/default.nix
@@ -0,0 +1,63 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, setuptools
+, torch
+, wheel
+, which
+, cloudpickle
+, numpy
+, h5py
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "tensordict";
+  version = "0.3.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "pytorch";
+    repo = "tensordict";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-XTFUzPs/fqX3DPtu/qSE1hY+7r/HToPVPaTyVRzDT/E=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    torch
+    wheel
+    which
+  ];
+
+  propagatedBuildInputs = [
+    cloudpickle
+    numpy
+    torch
+  ];
+
+  pythonImportsCheck = [
+    "tensordict"
+  ];
+
+  # We have to delete the source because otherwise it is used instead of the installed package.
+  preCheck = ''
+    rm -rf tensordict
+  '';
+
+  nativeCheckInputs = [
+    h5py
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "A pytorch dedicated tensor container";
+    changelog = "https://github.com/pytorch/tensordict/releases/tag/v${version}";
+    homepage = "https://github.com/pytorch/tensordict";
+    license = licenses.mit;
+    maintainers = with maintainers; [ GaetanLepage ];
+  };
+}
diff --git a/pkgs/development/python-modules/tesla-fleet-api/default.nix b/pkgs/development/python-modules/tesla-fleet-api/default.nix
new file mode 100644
index 000000000000..e74f5b0c0edb
--- /dev/null
+++ b/pkgs/development/python-modules/tesla-fleet-api/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, pythonOlder
+, aiohttp
+}:
+
+buildPythonPackage rec {
+  pname = "tesla-fleet-api";
+  version = "0.2.5";
+  pyproject = true;
+
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "Teslemetry";
+    repo = "python-tesla-fleet-api";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-zQPaOmSGqOeJ5E+m60g4ftXWI9woTxblJjRIocphR5E=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  # Module has no tests
+  doCheck  =false;
+
+  pythonImportsCheck = [
+    "tesla_fleet_api"
+  ];
+
+  meta = with lib; {
+    description = "Python library for Tesla Fleet API and Teslemetry";
+    homepage = "https://github.com/Teslemetry/python-tesla-fleet-api";
+    changelog = "https://github.com/Teslemetry/python-tesla-fleet-api/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/teslajsonpy/default.nix b/pkgs/development/python-modules/teslajsonpy/default.nix
index 0c2b87bade1c..6113762d77a2 100644
--- a/pkgs/development/python-modules/teslajsonpy/default.nix
+++ b/pkgs/development/python-modules/teslajsonpy/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "teslajsonpy";
-  version = "3.9.9";
+  version = "3.9.10";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "zabuldon";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-9ySUgRz1Zp0tkHCEkDcygm97mji4mjA5ltrriP9zAiQ=";
+    hash = "sha256-DNac9rrHJkFWlYRLvDB49kjmJV2EMvs5Y2ndSGY7uvk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/thefuzz/default.nix b/pkgs/development/python-modules/thefuzz/default.nix
index 8d240fe19e3e..1297ef2895c1 100644
--- a/pkgs/development/python-modules/thefuzz/default.nix
+++ b/pkgs/development/python-modules/thefuzz/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "thefuzz";
-  version = "0.20.0";
+  version = "0.22.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ol5JeGscRgPH/G4taea8ZgmCopGWmLU2/4NU4GMcxA0=";
+    hash = "sha256-cTgDmn7PVA2jI3kthZLvmQKx1563jBR9TyBmTeefNoA=";
   };
 
   propagatedBuildInputs = [ levenshtein ];
diff --git a/pkgs/development/python-modules/thermopro-ble/default.nix b/pkgs/development/python-modules/thermopro-ble/default.nix
index b03038c4aa5f..3cf2170ed084 100644
--- a/pkgs/development/python-modules/thermopro-ble/default.nix
+++ b/pkgs/development/python-modules/thermopro-ble/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "thermopro-ble";
-  version = "0.5.0";
+  version = "0.8.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "bluetooth-devices";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-4lk/K9XW9naPDRXmuqKFBdOwMtLlQE8etJFEbNgfIvA=";
+    hash = "sha256-ENzFX0rD97hCnllFKjcSGbAbEksqln/Hj0MuDVOKGDo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/tilequant/default.nix b/pkgs/development/python-modules/tilequant/default.nix
index fe4a748fa238..220f40354dcc 100644
--- a/pkgs/development/python-modules/tilequant/default.nix
+++ b/pkgs/development/python-modules/tilequant/default.nix
@@ -4,6 +4,7 @@
 , click
 , ordered-set
 , pythonOlder
+, pythonRelaxDepsHook
 , pillow
 , sortedcollections
 , setuptools_dso
@@ -21,6 +22,14 @@ buildPythonPackage rec {
     hash = "sha256-uW1g3nlT6Y+1beifo/MOlGxsGL7on/jcAROxSddySHk=";
   };
 
+  nativeBuildInputs = [
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "pillow"
+  ];
+
   propagatedBuildInputs = [
     click
     ordered-set
diff --git a/pkgs/development/python-modules/timezonefinder/default.nix b/pkgs/development/python-modules/timezonefinder/default.nix
index a0a72de7bb17..9ad58a97ff4a 100644
--- a/pkgs/development/python-modules/timezonefinder/default.nix
+++ b/pkgs/development/python-modules/timezonefinder/default.nix
@@ -13,16 +13,16 @@
 
 buildPythonPackage rec {
   pname = "timezonefinder";
-  version = "6.2.0";
-  format = "pyproject";
+  version = "6.4.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "jannikmi";
-    repo = pname;
+    repo = "timezonefinder";
     rev = "refs/tags/${version}";
-    hash = "sha256-n6TcTezu5seKy34KDlzGikAVaqAud00gxywwJA3MaWM=";
+    hash = "sha256-6hcReAzqTp4Od/PJN/W1uz4VS129yMFqQYznbsC/TRY=";
   };
 
   nativeBuildInputs = [
@@ -42,11 +42,6 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace 'numpy = "^1.22"' 'numpy = "*"'
-  '';
-
   pythonImportsCheck = [
     "timezonefinder"
   ];
diff --git a/pkgs/development/python-modules/token-bucket/default.nix b/pkgs/development/python-modules/token-bucket/default.nix
index 497d10d84fe8..0805ee9dea39 100644
--- a/pkgs/development/python-modules/token-bucket/default.nix
+++ b/pkgs/development/python-modules/token-bucket/default.nix
@@ -2,14 +2,16 @@
 , stdenv
 , buildPythonPackage
 , fetchFromGitHub
+, fetchpatch
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "token-bucket";
   version = "0.3.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -20,11 +22,24 @@ buildPythonPackage rec {
     hash = "sha256-dazqJRpC8FUHOhgKFzDnIl5CT2L74J2o2Hsm0IQf4Cg=";
   };
 
+  patches = [
+    # Replace imp with importlib, https://github.com/falconry/token-bucket/pull/24
+    (fetchpatch {
+      name = "remove-imp.patch";
+      url = "https://github.com/falconry/token-bucket/commit/10a3c9f4de00f4933349f66b4c72b6c96db6e766.patch";
+      hash = "sha256-Hk5+i3xzeA3F1kXRaRarWT9mff2lT2WNmTfTZvYzGYI=";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace setup.py \
       --replace "'pytest-runner'" ""
   '';
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   nativeCheckInputs = [
     pytestCheckHook
   ];
diff --git a/pkgs/development/python-modules/torchrl/default.nix b/pkgs/development/python-modules/torchrl/default.nix
new file mode 100644
index 000000000000..371a178ab5c9
--- /dev/null
+++ b/pkgs/development/python-modules/torchrl/default.nix
@@ -0,0 +1,140 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, ninja
+, setuptools
+, wheel
+, which
+, cloudpickle
+, numpy
+, torch
+, ale-py
+, gym
+, pygame
+, gymnasium
+, mujoco
+, moviepy
+, git
+, hydra-core
+, tensorboard
+, tqdm
+, wandb
+, packaging
+, tensordict
+, imageio
+, pytest-rerunfailures
+, pytestCheckHook
+, pyyaml
+, scipy
+}:
+
+buildPythonPackage rec {
+  pname = "torchrl";
+  version = "0.3.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "pytorch";
+    repo = "rl";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-ngl/gbNm+62W6UFNo8GOhSaIuK9FERDxGBCr++7B4gw=";
+  };
+
+  nativeBuildInputs = [
+    ninja
+    setuptools
+    wheel
+    which
+  ];
+
+  propagatedBuildInputs = [
+    cloudpickle
+    numpy
+    packaging
+    tensordict
+    torch
+  ];
+
+  passthru.optional-dependencies = {
+    atari = [
+      ale-py
+      gym
+      pygame
+    ];
+    gym-continuous = [
+      gymnasium
+      mujoco
+    ];
+    rendering = [
+      moviepy
+    ];
+    utils = [
+      git
+      hydra-core
+      tensorboard
+      tqdm
+      wandb
+    ];
+  };
+
+  # torchrl needs to create a folder to store datasets
+  preBuild = ''
+    export D4RL_DATASET_DIR=$(mktemp -d)
+  '';
+
+  pythonImportsCheck = [
+    "torchrl"
+  ];
+
+  # We have to delete the source because otherwise it is used instead of the installed package.
+  preCheck = ''
+    rm -rf torchrl
+
+    export XDG_RUNTIME_DIR=$(mktemp -d)
+  '';
+
+  nativeCheckInputs = [
+    gymnasium
+    imageio
+    pytest-rerunfailures
+    pytestCheckHook
+    pyyaml
+    scipy
+  ]
+  ++ passthru.optional-dependencies.atari
+  ++ passthru.optional-dependencies.gym-continuous
+  ++ passthru.optional-dependencies.rendering;
+
+  disabledTests = [
+    # mujoco.FatalError: an OpenGL platform library has not been loaded into this process, this most likely means that a valid OpenGL context has not been created before mjr_makeContext was called
+    "test_vecenvs_env"
+
+    # ValueError: Can't write images with one color channel.
+    "test_log_video"
+
+    # Those tests require the ALE environments (provided by unpackaged shimmy)
+    "test_collector_env_reset"
+    "test_gym"
+    "test_gym_fake_td"
+    "test_recorder"
+    "test_recorder_load"
+    "test_rollout"
+    "test_parallel_trans_env_check"
+    "test_serial_trans_env_check"
+    "test_single_trans_env_check"
+    "test_td_creation_from_spec"
+    "test_trans_parallel_env_check"
+    "test_trans_serial_env_check"
+    "test_transform_env"
+  ];
+
+  meta = with lib; {
+    description = "A modular, primitive-first, python-first PyTorch library for Reinforcement Learning";
+    homepage = "https://github.com/pytorch/rl";
+    license = licenses.mit;
+    maintainers = with maintainers; [ GaetanLepage ];
+  };
+}
diff --git a/pkgs/development/python-modules/transformers/default.nix b/pkgs/development/python-modules/transformers/default.nix
index 98f7773e225e..ea72ad9f0424 100644
--- a/pkgs/development/python-modules/transformers/default.nix
+++ b/pkgs/development/python-modules/transformers/default.nix
@@ -53,7 +53,7 @@
 
 buildPythonPackage rec {
   pname = "transformers";
-  version = "4.36.2";
+  version = "4.37.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -62,7 +62,7 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = "transformers";
     rev = "refs/tags/v${version}";
-    hash = "sha256-sasaqgQ+CM344qJeD6PU9wbAmuZRpaSSvUjSNw5DQRk=";
+    hash = "sha256-O8A+6f6Qwr/OqwzA3i3MPCmcwg1BoQY6mvhozrLz16Y=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/trimesh/default.nix b/pkgs/development/python-modules/trimesh/default.nix
index 3199218ef659..d05cefe6ebe4 100644
--- a/pkgs/development/python-modules/trimesh/default.nix
+++ b/pkgs/development/python-modules/trimesh/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "trimesh";
-  version = "4.0.8";
+  version = "4.1.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-FvMFC1h3gu61jZPSPmxYHQmxnxYKmtYAecc/0IT9E8I=";
+    hash = "sha256-SIHIA6HKo3Ka6rmZrBZfSmN/sNfEjSImYUtbtQs3ozQ=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/trytond/default.nix b/pkgs/development/python-modules/trytond/default.nix
index bb1835ff7b9b..f196b3a3d472 100644
--- a/pkgs/development/python-modules/trytond/default.nix
+++ b/pkgs/development/python-modules/trytond/default.nix
@@ -25,14 +25,14 @@
 
 buildPythonPackage rec {
   pname = "trytond";
-  version = "7.0.2";
+  version = "7.0.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-/Xb6YOQ8nV+bXTdt/iAgYkBkmV6fRVFjR+86SfKU+aw=";
+    hash = "sha256-UTDONJrb28gnGkoV6Rb/2ChsgcLIxCmDhSd4gvFxq14=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/twilio/default.nix b/pkgs/development/python-modules/twilio/default.nix
index 3c9af2fd7652..328dd01f8565 100644
--- a/pkgs/development/python-modules/twilio/default.nix
+++ b/pkgs/development/python-modules/twilio/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "twilio";
-  version = "8.11.1";
+  version = "8.12.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "twilio";
     repo = "twilio-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-cByrE0/sKZ0dWnuQS1KOOCHbSYF6YJchqGrdkmVp9DM=";
+    hash = "sha256-I2ktLhlSFeQ3f7/zcm5NKLv5Pm1R7EPkeMPREMa9bBA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/twine/default.nix b/pkgs/development/python-modules/twine/default.nix
index 9bd98fd5adbe..e656970ef627 100644
--- a/pkgs/development/python-modules/twine/default.nix
+++ b/pkgs/development/python-modules/twine/default.nix
@@ -5,7 +5,7 @@
 , importlib-metadata
 , keyring
 , pkginfo
-, readme_renderer
+, readme-renderer
 , requests
 , requests-toolbelt
 , rich
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     importlib-metadata
     keyring
     pkginfo
-    readme_renderer
+    readme-renderer
     requests
     requests-toolbelt
     rfc3986
diff --git a/pkgs/development/python-modules/types-aiobotocore-packages/default.nix b/pkgs/development/python-modules/types-aiobotocore-packages/default.nix
index ada4762cffe8..17058a40a088 100644
--- a/pkgs/development/python-modules/types-aiobotocore-packages/default.nix
+++ b/pkgs/development/python-modules/types-aiobotocore-packages/default.nix
@@ -52,701 +52,701 @@ rec {
 
   types-aiobotocore-acm-pca = buildTypesAiobotocorePackage "acm-pca" "2.8.0" "sha256-ib044RjF+1projrSoyiMdj9LkbT1BJrfObxs1ukSNHo=";
 
-  types-aiobotocore-alexaforbusiness = buildTypesAiobotocorePackage "alexaforbusiness" "2.9.0" "sha256-lNp/rvyWKvD9jY9J9vU98CFyB/ysiS8JslXrjK2BtgE=";
+  types-aiobotocore-alexaforbusiness = buildTypesAiobotocorePackage "alexaforbusiness" "2.11.0" "sha256-FF1VOkekfT4cSx2y61smPVMTD5k3FBIsnslOTnxy+5o=";
 
-  types-aiobotocore-amp = buildTypesAiobotocorePackage "amp" "2.9.0" "sha256-OiejoMmWNnF3dBKPWInCurB2xe0hnKG/FAR8NVuIeiU=";
+  types-aiobotocore-amp = buildTypesAiobotocorePackage "amp" "2.11.0" "sha256-PzA8ooo026gvNYL+xgjJ1EJomCC+lq1QDbY54k067BM=";
 
-  types-aiobotocore-amplify = buildTypesAiobotocorePackage "amplify" "2.9.0" "sha256-LUW+yAw4K8kOxSqF3tJuqXqHc83+3thnCbdWcz/PnO0=";
+  types-aiobotocore-amplify = buildTypesAiobotocorePackage "amplify" "2.11.0" "sha256-RCC+fkQJMKYrv0TdAUGOXLyufeCJyV9luXKOXvjXc+s=";
 
-  types-aiobotocore-amplifybackend = buildTypesAiobotocorePackage "amplifybackend" "2.9.0" "sha256-TTmpkylWnRxNs+1s75qTdQ+GgWnyfyUZhfE1e1eSYXE=";
+  types-aiobotocore-amplifybackend = buildTypesAiobotocorePackage "amplifybackend" "2.11.0" "sha256-U5BemtvxVynvFaQ9gxiI3kFB5+HJjpFTZkXMLFaMeRE=";
 
-  types-aiobotocore-amplifyuibuilder = buildTypesAiobotocorePackage "amplifyuibuilder" "2.9.0" "sha256-ovLWirPFaMwFjk6e7zZbSoDxiXp0/ll6HnT9pxEJCaY=";
+  types-aiobotocore-amplifyuibuilder = buildTypesAiobotocorePackage "amplifyuibuilder" "2.11.0" "sha256-4oQMgEJD6RT8ukcdoDF7dWAnNj51gBWOYITKjzLGTBo=";
 
-  types-aiobotocore-apigateway = buildTypesAiobotocorePackage "apigateway" "2.9.0" "sha256-mexH2IJbHyMzKRL1jVUuqiUdHBOOHRhCDR29GVIOgmc=";
+  types-aiobotocore-apigateway = buildTypesAiobotocorePackage "apigateway" "2.11.0" "sha256-YGOdBuM5250bIoM2rJeJv51zF6kB1zvGYksmr56SW8g=";
 
-  types-aiobotocore-apigatewaymanagementapi = buildTypesAiobotocorePackage "apigatewaymanagementapi" "2.9.0" "sha256-ISlXwESp+llqSMTv2T7CwtTAuIXfiRTGwQnIejOb7aU=";
+  types-aiobotocore-apigatewaymanagementapi = buildTypesAiobotocorePackage "apigatewaymanagementapi" "2.11.0" "sha256-LFI4IJyDQnPYKq0WHk9y56LjdtW6nHHUN2GLGk+ZdLs=";
 
-  types-aiobotocore-apigatewayv2 = buildTypesAiobotocorePackage "apigatewayv2" "2.9.0" "sha256-h2C2CZVVH72OML31/f0Yl8Ril2uGEvFKwHnumP9FoVo=";
+  types-aiobotocore-apigatewayv2 = buildTypesAiobotocorePackage "apigatewayv2" "2.11.0" "sha256-3gJkB9xUtxHqGnl0BIt37bDpM5GJQhjtiHkwDVOWaP0=";
 
-  types-aiobotocore-appconfig = buildTypesAiobotocorePackage "appconfig" "2.9.0" "sha256-SO7ZAepv4lNrfZ6u3krEsN62LxLsK3p/hD3Bi68pYog=";
+  types-aiobotocore-appconfig = buildTypesAiobotocorePackage "appconfig" "2.11.0" "sha256-zGtX4wRie1PtMZAHH187+tr7sBKKDGI0rtmobYbuOMg=";
 
-  types-aiobotocore-appconfigdata = buildTypesAiobotocorePackage "appconfigdata" "2.9.0" "sha256-qApIy0bwsg3T5LY1CzqpKfg8F+5MU/1Ygt7qN+TYI4c=";
+  types-aiobotocore-appconfigdata = buildTypesAiobotocorePackage "appconfigdata" "2.11.0" "sha256-yh1GVL7P6yRVE3o4mKBFFKhrXRN+7dO6PAAcdFENci0=";
 
-  types-aiobotocore-appfabric = buildTypesAiobotocorePackage "appfabric" "2.9.0" "sha256-wolhhyFXsLIp8phvKat8baoUd6WJTv23J6eoThQ4QJ0=";
+  types-aiobotocore-appfabric = buildTypesAiobotocorePackage "appfabric" "2.11.0" "sha256-1HfybuUtT3ZPjOTgI2qOHZcXitlfzfVMFnHEvvpXYHI=";
 
-  types-aiobotocore-appflow = buildTypesAiobotocorePackage "appflow" "2.9.0" "sha256-QO6o0BPDJ/qOul8XkN+BW36aQomv//+1kG6sa8gljuE=";
+  types-aiobotocore-appflow = buildTypesAiobotocorePackage "appflow" "2.11.0" "sha256-7gCktOrsUm6y3KId+7i6rl7QA5vGhPletY6gKyJdG6k=";
 
-  types-aiobotocore-appintegrations = buildTypesAiobotocorePackage "appintegrations" "2.9.0" "sha256-/zUXglyQUewxMcRgoCLPHHrc8fIjm68C547o4DOn/j8=";
+  types-aiobotocore-appintegrations = buildTypesAiobotocorePackage "appintegrations" "2.11.0" "sha256-NUmmtV2RcREzC030heh5Vq2LvHCfTv25NMefwIk6hfA=";
 
-  types-aiobotocore-application-autoscaling = buildTypesAiobotocorePackage "application-autoscaling" "2.9.0" "sha256-G2pTcy4uLL7ypl3PcKvI1g5jD7Ytxu37jxWs+i1opHM=";
+  types-aiobotocore-application-autoscaling = buildTypesAiobotocorePackage "application-autoscaling" "2.11.0" "sha256-ag+5kqW+j0c9MC/Ua4yUPPW72Gbj1LbA1QWG9CwCC7U=";
 
-  types-aiobotocore-application-insights = buildTypesAiobotocorePackage "application-insights" "2.9.0" "sha256-YwwGYTwwFOsyfsyY8L5dKhFl+uGTT+oKYEXSgo1UPXE=";
+  types-aiobotocore-application-insights = buildTypesAiobotocorePackage "application-insights" "2.11.0" "sha256-pKLm6w1+j56QX+jxoywew8Polgeq4H2/xQpqQ71vQCA=";
 
-  types-aiobotocore-applicationcostprofiler = buildTypesAiobotocorePackage "applicationcostprofiler" "2.9.0" "sha256-ghooPwffm8YMs50MpYT82WJz7vHsMi/HZy0drnSXJUA=";
+  types-aiobotocore-applicationcostprofiler = buildTypesAiobotocorePackage "applicationcostprofiler" "2.11.0" "sha256-BnIdJmvh76xDITk+iEkoxTHeEBa9FZDV84fn1uvWz6g=";
 
-  types-aiobotocore-appmesh = buildTypesAiobotocorePackage "appmesh" "2.9.0" "sha256-tydjCV77K/EAyddwmiMDXsEC469GbgNcZRLMmy61Zh4=";
+  types-aiobotocore-appmesh = buildTypesAiobotocorePackage "appmesh" "2.11.0" "sha256-8f0vxVqWWdm8UYl7rtHBSDR5PJGd8bAC6DTopPUbdwk=";
 
-  types-aiobotocore-apprunner = buildTypesAiobotocorePackage "apprunner" "2.9.0" "sha256-nt2evZ5TqcCrwjGPornCrY27nlQX09RpYEHoYRb9XUA=";
+  types-aiobotocore-apprunner = buildTypesAiobotocorePackage "apprunner" "2.11.0" "sha256-uZtrlWm1Hc3RsgtAzYf+ZY9G/G56fhbgxq0Aqo0SmIU=";
 
-  types-aiobotocore-appstream = buildTypesAiobotocorePackage "appstream" "2.9.0" "sha256-q/LwAh7O9SZOXjGawKwCcZFwRGmztfRjZ0sUkS/QuOc=";
+  types-aiobotocore-appstream = buildTypesAiobotocorePackage "appstream" "2.11.0" "sha256-fI/BuF5aulwnH2IviGqp4PPcIInwGrBNyghiCu4AGzo=";
 
-  types-aiobotocore-appsync = buildTypesAiobotocorePackage "appsync" "2.9.0" "sha256-e4AE0rYgr61INMVTIuv3G35ywBnfnGo0+ZkAUbJCxS8=";
+  types-aiobotocore-appsync = buildTypesAiobotocorePackage "appsync" "2.11.0" "sha256-/eL7b7ZQp47BlLRGbxqwg6JnfYljXAtQOfRjnqWHndo=";
 
-  types-aiobotocore-arc-zonal-shift = buildTypesAiobotocorePackage "arc-zonal-shift" "2.9.0" "sha256-PM6yAXmqwLXs7NAC6hnFUVCnkWg3iNz8hCN7soWSxPE=";
+  types-aiobotocore-arc-zonal-shift = buildTypesAiobotocorePackage "arc-zonal-shift" "2.11.0" "sha256-WiWU20Yc3bWARmkbYnBA1Wy315vStIq16mLF4UHRksQ=";
 
-  types-aiobotocore-athena = buildTypesAiobotocorePackage "athena" "2.9.0" "sha256-uMKc1u/u3ppRCVVPZ05VTlXoEfxCY9tyLqYpxnl+CWc=";
+  types-aiobotocore-athena = buildTypesAiobotocorePackage "athena" "2.11.0" "sha256-UtJadPx8k7JfoOXexAY/Sz6bfsrapCsdYtz0L0zIXxc=";
 
-  types-aiobotocore-auditmanager = buildTypesAiobotocorePackage "auditmanager" "2.9.0" "sha256-gPzB/GSkjq44Q2SjjDWJyidFNzg4veag0PvQ7nFl+pY=";
+  types-aiobotocore-auditmanager = buildTypesAiobotocorePackage "auditmanager" "2.11.0" "sha256-Xe0Hn8XpfnmtObeKRtm0focC+s2eHLoTdERnDZmAs4g=";
 
-  types-aiobotocore-autoscaling = buildTypesAiobotocorePackage "autoscaling" "2.9.0" "sha256-AaCvm94dtOdLlOA1X8k5r2K1sbpTerX6cJEjdGs3L6Y=";
+  types-aiobotocore-autoscaling = buildTypesAiobotocorePackage "autoscaling" "2.11.0" "sha256-eJnuoN6ciE3k97/hLhr45ppWtq4jEpPcqpkZ2H+qd6Y=";
 
-  types-aiobotocore-autoscaling-plans = buildTypesAiobotocorePackage "autoscaling-plans" "2.9.0" "sha256-p43Kie/Ax1BNmIN2Sny05NlxHWuasbXLlRbTNpvI8eM=";
+  types-aiobotocore-autoscaling-plans = buildTypesAiobotocorePackage "autoscaling-plans" "2.11.0" "sha256-cESQHBGUvT8saQhqNsOqSpyO7gIZmnAb2jhGO0kt5AE=";
 
-  types-aiobotocore-backup = buildTypesAiobotocorePackage "backup" "2.9.0" "sha256-CO6ETR9Q1Lkj0o4d24iVfhvLyN3FBTpWQYrWStvPVP4=";
+  types-aiobotocore-backup = buildTypesAiobotocorePackage "backup" "2.11.0" "sha256-+r02pZW1xLqPlt5kHKrLXKFRwdSiHKWxZAxuji9TFvg=";
 
-  types-aiobotocore-backup-gateway = buildTypesAiobotocorePackage "backup-gateway" "2.9.0" "sha256-TGtFwgq00PrrVKxJYhiIWMzUGpsvFMYVjS5xBxEorWI=";
+  types-aiobotocore-backup-gateway = buildTypesAiobotocorePackage "backup-gateway" "2.11.0" "sha256-dEqYpn7xF5JRzFgVANFeXw/ukeoduvI4LBOEwYwjLxg=";
 
-  types-aiobotocore-backupstorage = buildTypesAiobotocorePackage "backupstorage" "2.9.0" "sha256-gNXODf0OIkG0Dw4JOZU0XuRKmf8CIc+GTcgZ8PUnRcY=";
+  types-aiobotocore-backupstorage = buildTypesAiobotocorePackage "backupstorage" "2.11.0" "sha256-65luTwPeI4SHfJUhWLR9YJQwbdcB6J1ON6EBhojok/k=";
 
-  types-aiobotocore-batch = buildTypesAiobotocorePackage "batch" "2.9.0" "sha256-x/sNVy1MmdBelRwb+ytT13K9FcgUdnoahgckniLN9Gs=";
+  types-aiobotocore-batch = buildTypesAiobotocorePackage "batch" "2.11.0" "sha256-A94x70FSnAUJSt5NM9yzhq4r7f2fsaHLx8oXeCq//PE=";
 
-  types-aiobotocore-billingconductor = buildTypesAiobotocorePackage "billingconductor" "2.9.0" "sha256-wsbM8GYdwDf1ILZZBM/lBQo/qTduA49pljwfVlNTPo8=";
+  types-aiobotocore-billingconductor = buildTypesAiobotocorePackage "billingconductor" "2.11.0" "sha256-Ze1Bsuw4fDgGJ8nVsRtmGQPH0ZPfxE+OUb6T8Q5hrBI=";
 
-  types-aiobotocore-braket = buildTypesAiobotocorePackage "braket" "2.9.0" "sha256-Wi8Y5Ue4xiVm+3Ol9e3nDOS8QL1LjcUQsySIWc1R16M=";
+  types-aiobotocore-braket = buildTypesAiobotocorePackage "braket" "2.11.0" "sha256-upNbHBQLQVlgHItd8NuFq1C7DkM/1F1BAxESQevmeZs=";
 
-  types-aiobotocore-budgets = buildTypesAiobotocorePackage "budgets" "2.9.0" "sha256-PU74F6DnMXB435pCmee7IAPS7YSR0pFBjDqgPMfORT4=";
+  types-aiobotocore-budgets = buildTypesAiobotocorePackage "budgets" "2.11.0" "sha256-SKgVqVkHPX9ytLBR+yUpnVz82AGdxpJ+BLO7kBGJ3/k=";
 
-  types-aiobotocore-ce = buildTypesAiobotocorePackage "ce" "2.9.0" "sha256-0drcozC0lKqYuHK3vSF2QG/7lywN6yKxbwJxqMIrIDM=";
+  types-aiobotocore-ce = buildTypesAiobotocorePackage "ce" "2.11.0" "sha256-th7HVQIlLgfwYgZ3GFlYU5Cg5jjfEJbulaOaLFnQbUk=";
 
-  types-aiobotocore-chime = buildTypesAiobotocorePackage "chime" "2.9.0" "sha256-IGF7YcjgZy99X4KZA0CYJDMcJP8S9GZHwInW8eqLsCc=";
+  types-aiobotocore-chime = buildTypesAiobotocorePackage "chime" "2.11.0" "sha256-s3VHCPLNHFHNYNHBzp2mhToY45+2bua8Wwy38rvNmjM=";
 
-  types-aiobotocore-chime-sdk-identity = buildTypesAiobotocorePackage "chime-sdk-identity" "2.9.0" "sha256-MwfvczW4j4IjZBPUTyA0WcT8sqSTYhrnEzkKrVXuIY4=";
+  types-aiobotocore-chime-sdk-identity = buildTypesAiobotocorePackage "chime-sdk-identity" "2.11.0" "sha256-BJsXT1lVo/Qfwc37nCGmxIFSN4nGtvVZZxOfLWDXj8U=";
 
-  types-aiobotocore-chime-sdk-media-pipelines = buildTypesAiobotocorePackage "chime-sdk-media-pipelines" "2.9.0" "sha256-PsEsAjsehN5w5pV+ZHajY+r+9+9SCSutEKA5UGvePeY=";
+  types-aiobotocore-chime-sdk-media-pipelines = buildTypesAiobotocorePackage "chime-sdk-media-pipelines" "2.11.0" "sha256-n5OniJhfpUA2ieVsaJasxyzV79sGG4QGR+bsy0XxqnQ=";
 
-  types-aiobotocore-chime-sdk-meetings = buildTypesAiobotocorePackage "chime-sdk-meetings" "2.9.0" "sha256-XDyk+ljdPfm8poC4A65rz30zviN5XqBo4Ud4K/SN8bY=";
+  types-aiobotocore-chime-sdk-meetings = buildTypesAiobotocorePackage "chime-sdk-meetings" "2.11.0" "sha256-KjhknFjnVlZpdKQQ7ggBlcTPEB/C9PKvta90oD84yTE=";
 
-  types-aiobotocore-chime-sdk-messaging = buildTypesAiobotocorePackage "chime-sdk-messaging" "2.9.0" "sha256-7MQKlLPYRS64OH0CA8SYXJhE52gT9v4BkCzoypV2I/k=";
+  types-aiobotocore-chime-sdk-messaging = buildTypesAiobotocorePackage "chime-sdk-messaging" "2.11.0" "sha256-gyvW6RoMv66Y7xIi1ak1f/9ivOFaNANQhgD08VlWGPM=";
 
-  types-aiobotocore-chime-sdk-voice = buildTypesAiobotocorePackage "chime-sdk-voice" "2.9.0" "sha256-Do/nRj4qmUABDW20dkTU+KK8O/C7yhRIEjV6bCbfjGs=";
+  types-aiobotocore-chime-sdk-voice = buildTypesAiobotocorePackage "chime-sdk-voice" "2.11.0" "sha256-fK2BzOdlvbacOePr7OacTRd+XEFEAjq6fKXC4nOzZeo=";
 
-  types-aiobotocore-cleanrooms = buildTypesAiobotocorePackage "cleanrooms" "2.9.0" "sha256-wfLyaQu2gfOe2+GT+Umwo6VBo70wjmhpKF3qGquaoZo=";
+  types-aiobotocore-cleanrooms = buildTypesAiobotocorePackage "cleanrooms" "2.11.0" "sha256-jri5DT8VP2J/mdsAR5uO+ZqZJdHexTiyER3tTAGLZd8=";
 
-  types-aiobotocore-cloud9 = buildTypesAiobotocorePackage "cloud9" "2.9.0" "sha256-tt+houhkHEPlRxagLzVKn/SVP4Uj9Sv1UsPyidSNLVM=";
+  types-aiobotocore-cloud9 = buildTypesAiobotocorePackage "cloud9" "2.11.0" "sha256-wh39UKjVcRoFpHZw6es7/iWMSqWr793WGJd1K0arxU4=";
 
-  types-aiobotocore-cloudcontrol = buildTypesAiobotocorePackage "cloudcontrol" "2.9.0" "sha256-QIsTkVZnkkzFvZAOFYvF/erH2ov/F01lRDWFglY3Tmw=";
+  types-aiobotocore-cloudcontrol = buildTypesAiobotocorePackage "cloudcontrol" "2.11.0" "sha256-O0UvfR9zN7G5VLXn3o++xj9NgPfF4HJfD22OiXjFV8c=";
 
-  types-aiobotocore-clouddirectory = buildTypesAiobotocorePackage "clouddirectory" "2.9.0" "sha256-gNcIZFG9zk+VZPcT9yxYYVjKPcqO2RJNFjpPNfbnK7E=";
+  types-aiobotocore-clouddirectory = buildTypesAiobotocorePackage "clouddirectory" "2.11.0" "sha256-z97kNaW0Ku6kdWNfEpVUbQSMA1RBoX3ekiZ/IjcEzxs=";
 
-  types-aiobotocore-cloudformation = buildTypesAiobotocorePackage "cloudformation" "2.9.0" "sha256-zdEa2iNNy8gFFkK15ifS3TO7lbauVxDfLyzM8a27NyI=";
+  types-aiobotocore-cloudformation = buildTypesAiobotocorePackage "cloudformation" "2.11.0" "sha256-uIdbpjOfxxe0+LsrZAg/ygqzvCRNRbivyDMjoaEr7ew=";
 
-  types-aiobotocore-cloudfront = buildTypesAiobotocorePackage "cloudfront" "2.9.0" "sha256-S7FeyJ8x4C+/PeeR4kXa1YhyDm5DX2XmoTk4AZMjxKo=";
+  types-aiobotocore-cloudfront = buildTypesAiobotocorePackage "cloudfront" "2.11.0" "sha256-1J4uH1XM3j7LgXQ8kmuGw0MMMPMh0sfIjGl5xlKbj6U=";
 
-  types-aiobotocore-cloudhsm = buildTypesAiobotocorePackage "cloudhsm" "2.9.0" "sha256-epgeZ3U179/91Qy4GZ/fLQGFyIQkn222wHoSOUE2+w0=";
+  types-aiobotocore-cloudhsm = buildTypesAiobotocorePackage "cloudhsm" "2.11.0" "sha256-NXW9PwF9skgzZ8nRUEqNw0RoO2p0f7PsSzwChG5hR80=";
 
-  types-aiobotocore-cloudhsmv2 = buildTypesAiobotocorePackage "cloudhsmv2" "2.9.0" "sha256-wDbY2WENp0RgQ7TwJztZApfUyRQG1hXeMSLInRh5Ot8=";
+  types-aiobotocore-cloudhsmv2 = buildTypesAiobotocorePackage "cloudhsmv2" "2.11.0" "sha256-/fKdFf3u1C75HiLoKV29Ao67+504P+CduF4BNGJObiE=";
 
-  types-aiobotocore-cloudsearch = buildTypesAiobotocorePackage "cloudsearch" "2.9.0" "sha256-c+W60cxtipCAW8sM4QyTRLmZo8xZBm3FCyzqGNwK/Zc=";
+  types-aiobotocore-cloudsearch = buildTypesAiobotocorePackage "cloudsearch" "2.11.0" "sha256-yfHcWilKZbtxZcJmrOgDJxMybo+GxvFLaoXSW0IxNj4=";
 
-  types-aiobotocore-cloudsearchdomain = buildTypesAiobotocorePackage "cloudsearchdomain" "2.9.0" "sha256-WR5b8vBbUxFmsH8tNnho4jqY6jrPsHYXljflL6y6JHc=";
+  types-aiobotocore-cloudsearchdomain = buildTypesAiobotocorePackage "cloudsearchdomain" "2.11.0" "sha256-vxc4o8AG+y0rA5yqadgOE8K3vCOLMs9uN2G2Xcq2vv4=";
 
-  types-aiobotocore-cloudtrail = buildTypesAiobotocorePackage "cloudtrail" "2.9.0" "sha256-roSPY8CJBwX/wCMRd7qLLjLSkk0ys2HT3n4ZFpEE+VU=";
+  types-aiobotocore-cloudtrail = buildTypesAiobotocorePackage "cloudtrail" "2.11.0" "sha256-FgxQugrLHvORUMcIKJaOJ0/C30WOSRJ9gPbQO3nIQCo=";
 
-  types-aiobotocore-cloudtrail-data = buildTypesAiobotocorePackage "cloudtrail-data" "2.9.0" "sha256-t+1vtSNNEBhMieXbkdoUBEXCTPd5me1fDOdHaI5tNfE=";
+  types-aiobotocore-cloudtrail-data = buildTypesAiobotocorePackage "cloudtrail-data" "2.11.0" "sha256-jc3/f4g5qKpgMhQPetRlfDv1Evh4/JZvzJaHSGhdAZE=";
 
-  types-aiobotocore-cloudwatch = buildTypesAiobotocorePackage "cloudwatch" "2.9.0" "sha256-LxuZoxlhUwRorUAGDxTfAIhgTzJm4jMTUS13zMnfaZY=";
+  types-aiobotocore-cloudwatch = buildTypesAiobotocorePackage "cloudwatch" "2.11.0" "sha256-SUmy1ZUCcLMverR5FoyGowraVQ22xjPLc9P2fDFjIDI=";
 
-  types-aiobotocore-codeartifact = buildTypesAiobotocorePackage "codeartifact" "2.9.0" "sha256-eEI1k5dZpy0TuuoYDRFGp9OPWzFXg0mtx0HwB2H4OsM=";
+  types-aiobotocore-codeartifact = buildTypesAiobotocorePackage "codeartifact" "2.11.0" "sha256-h/BcvTSIOPSN+RdP84UcPNi9pqvL+ITrxDNvH7X7/Pc=";
 
-  types-aiobotocore-codebuild = buildTypesAiobotocorePackage "codebuild" "2.9.0" "sha256-AyFoSrmu8DA8UFb7o8Bd4eoUSoTXvdHoADkKH5DBVxM=";
+  types-aiobotocore-codebuild = buildTypesAiobotocorePackage "codebuild" "2.11.0" "sha256-QBleKtvFchbE6liuxlmCYm55VWLa0Eu38ydTl9AAPrg=";
 
-  types-aiobotocore-codecatalyst = buildTypesAiobotocorePackage "codecatalyst" "2.9.0" "sha256-IT7jtWd5QrAaeRG+kgu21KVcWtKiAyEB04E2BsDTPzQ=";
+  types-aiobotocore-codecatalyst = buildTypesAiobotocorePackage "codecatalyst" "2.11.0" "sha256-OfmohOrk90MjqjmSu+0xiATJrh99myqaUbirDpMj/ag=";
 
-  types-aiobotocore-codecommit = buildTypesAiobotocorePackage "codecommit" "2.9.0" "sha256-8wsxzSNeMKOr1N0UJo9sn0Jcp+WCvLOufA67aL49FjQ=";
+  types-aiobotocore-codecommit = buildTypesAiobotocorePackage "codecommit" "2.11.0" "sha256-gWLVnH0Rm3jlcDff0tUKjmrKqJswkXybn/BbyX1ogxA=";
 
-  types-aiobotocore-codedeploy = buildTypesAiobotocorePackage "codedeploy" "2.9.0" "sha256-7NsJWQv4gw2zBYQTxm9p0hEis70WnTNgT5isd55mnt8=";
+  types-aiobotocore-codedeploy = buildTypesAiobotocorePackage "codedeploy" "2.11.0" "sha256-AIh+hTvPCxsQ1wML574FXpa95QYmcDB61tAL2zepZPA=";
 
-  types-aiobotocore-codeguru-reviewer = buildTypesAiobotocorePackage "codeguru-reviewer" "2.9.0" "sha256-zzl4ICc11BaNsYjJZG3lK8ehQlVFi8fWDxunVK4y6wA=";
+  types-aiobotocore-codeguru-reviewer = buildTypesAiobotocorePackage "codeguru-reviewer" "2.11.0" "sha256-QdYU6pjF9r7fWbqGwKgmsfkJw04Dwyq3zYM/Ffth6Is=";
 
-  types-aiobotocore-codeguru-security = buildTypesAiobotocorePackage "codeguru-security" "2.9.0" "sha256-gEYXn3oLTVMgskv43TJLnj4lC+RmiEQMO7ngz8a/dws=";
+  types-aiobotocore-codeguru-security = buildTypesAiobotocorePackage "codeguru-security" "2.11.0" "sha256-aQ0jJkHU7Unez+DsVae9ly7fBXC8VYaA+euec4zHvcg=";
 
-  types-aiobotocore-codeguruprofiler = buildTypesAiobotocorePackage "codeguruprofiler" "2.9.0" "sha256-mrEhrQcd/SmrBFs1AVv6ddPqWairhYHMdIxBeL/JiNI=";
+  types-aiobotocore-codeguruprofiler = buildTypesAiobotocorePackage "codeguruprofiler" "2.11.0" "sha256-Fh3+RnPI1DYqwRdiY5wphJ4/sa6phldf5Jw26EAy+yA=";
 
-  types-aiobotocore-codepipeline = buildTypesAiobotocorePackage "codepipeline" "2.9.0" "sha256-wLaqSsUgOosJ+0zUST9DVEPtW12QbPLQ4zHz6GAuJrQ=";
+  types-aiobotocore-codepipeline = buildTypesAiobotocorePackage "codepipeline" "2.11.0" "sha256-TqW+JQcWLUkH63lmTSgM2RBpxiUce8H4sYhuBsG/y3Q=";
 
-  types-aiobotocore-codestar = buildTypesAiobotocorePackage "codestar" "2.9.0" "sha256-TB+XKOtfpjEtyHpmlAggN8LlrPVU2J7J8dGOtNN0jGo=";
+  types-aiobotocore-codestar = buildTypesAiobotocorePackage "codestar" "2.11.0" "sha256-SKowg/6Z+XkwRYvqLMVv2DNuqjYWDGxfAH9qDIfIYQs=";
 
-  types-aiobotocore-codestar-connections = buildTypesAiobotocorePackage "codestar-connections" "2.9.0" "sha256-fI+dnGtR3w87Pkqgk8my60jiB03gsEYFHtGGoU1/uYY=";
+  types-aiobotocore-codestar-connections = buildTypesAiobotocorePackage "codestar-connections" "2.11.0" "sha256-HKd/vW31qD4NxoP3tpCVrWhFxzUx3WFmpSNXR5MUGNU=";
 
-  types-aiobotocore-codestar-notifications = buildTypesAiobotocorePackage "codestar-notifications" "2.9.0" "sha256-xwE39rQ720hvrqAPosru14lVIJ84GI8CvN80NQVQA8o=";
+  types-aiobotocore-codestar-notifications = buildTypesAiobotocorePackage "codestar-notifications" "2.11.0" "sha256-mp0wBISY78Or4TniwKFXbR/fiu5JWhEkccKrz14WlUY=";
 
-  types-aiobotocore-cognito-identity = buildTypesAiobotocorePackage "cognito-identity" "2.9.0" "sha256-XuqXsgCd+loZYn6TMZUALvNJJv0WUdLsQuO6c0KW/bs=";
+  types-aiobotocore-cognito-identity = buildTypesAiobotocorePackage "cognito-identity" "2.11.0" "sha256-fSGb8vmEdIjvfnm60Ib6iQtLt3vhvGyFA+bhv1RLYt4=";
 
-  types-aiobotocore-cognito-idp = buildTypesAiobotocorePackage "cognito-idp" "2.9.0" "sha256-/TKEYsj+xGxfw2FmQHdsXa5T96OIhiSukUjUStuW5eM=";
+  types-aiobotocore-cognito-idp = buildTypesAiobotocorePackage "cognito-idp" "2.11.0" "sha256-qK/97mzT5xbNHRBU1d7lbPPhAbmUZv4A12UxDO/NHOY=";
 
-  types-aiobotocore-cognito-sync = buildTypesAiobotocorePackage "cognito-sync" "2.9.0" "sha256-nceU9SKeGSl5JuiuKTpBAfijsReTn7dRyboy8f74ecw=";
+  types-aiobotocore-cognito-sync = buildTypesAiobotocorePackage "cognito-sync" "2.11.0" "sha256-KJiEL5qkQAsF1aW42M0WJNRkmY5kuz+y+x2zhPl++oI=";
 
-  types-aiobotocore-comprehend = buildTypesAiobotocorePackage "comprehend" "2.9.0" "sha256-meEKFbIuWqGrg9ZL7XJW8POWwgjiHxbIgXJPjIrkeU0=";
+  types-aiobotocore-comprehend = buildTypesAiobotocorePackage "comprehend" "2.11.0" "sha256-+4ZC5tDNqIVE/tpdjgq0OOxz8nP3nnXuChBn1vH+GmY=";
 
-  types-aiobotocore-comprehendmedical = buildTypesAiobotocorePackage "comprehendmedical" "2.9.0" "sha256-5NmX7q2dBWUFR+MZ3L37nSKUofJnjQ4CUNzJ0buxwYo=";
+  types-aiobotocore-comprehendmedical = buildTypesAiobotocorePackage "comprehendmedical" "2.11.0" "sha256-tgGh+wbiC5iUl89kqsPhW+ppYOa0el6D2aAF53e0OOU=";
 
-  types-aiobotocore-compute-optimizer = buildTypesAiobotocorePackage "compute-optimizer" "2.9.0" "sha256-66KGrkc1LMXyJqCl4hLhEqYd5f4x5n+A1aiNmEeY0Ic=";
+  types-aiobotocore-compute-optimizer = buildTypesAiobotocorePackage "compute-optimizer" "2.11.0" "sha256-SS7WVEni76ixWOMMGkuVpvBL46kzEtc+nZVXLgVR7qM=";
 
-  types-aiobotocore-config = buildTypesAiobotocorePackage "config" "2.9.0" "sha256-Jal8H6TgvHWBMkTtGM3Gcth77cJfkiew6uIGmCIoZqA=";
+  types-aiobotocore-config = buildTypesAiobotocorePackage "config" "2.11.0" "sha256-788nwZ08Yd7Jm9hbMtbikiekaCD5BJXGQizYA+C6v7s=";
 
-  types-aiobotocore-connect = buildTypesAiobotocorePackage "connect" "2.9.0" "sha256-iQgYO2rjkaMI0xRslJRVAQ2HPcvj8tYM+/g2xQySY7I=";
+  types-aiobotocore-connect = buildTypesAiobotocorePackage "connect" "2.11.0" "sha256-/DHba3kzpgIfMOdWDo9EqDTGsx6qliHkTcOqRvyqVQs=";
 
-  types-aiobotocore-connect-contact-lens = buildTypesAiobotocorePackage "connect-contact-lens" "2.9.0" "sha256-4dVbw+1XCJnxkJLNyxTpibr1u2KPnuM9aSzk1/UuBxc=";
+  types-aiobotocore-connect-contact-lens = buildTypesAiobotocorePackage "connect-contact-lens" "2.11.0" "sha256-oB6joxqVfw+dcdA1Fp/V3VqHKTV3AzSF87WQliIjZOM=";
 
-  types-aiobotocore-connectcampaigns = buildTypesAiobotocorePackage "connectcampaigns" "2.9.0" "sha256-SpQk9aatNLlOxwNTghJYoOqlmv8NQBxVyMPsx0kDhFY=";
+  types-aiobotocore-connectcampaigns = buildTypesAiobotocorePackage "connectcampaigns" "2.11.0" "sha256-LKzrXJ3glGOLyZd+Cvt+S8d4kmqfJwDmWOpO8jVtZ/k=";
 
-  types-aiobotocore-connectcases = buildTypesAiobotocorePackage "connectcases" "2.9.0" "sha256-CaU1bmYjX/4+rgDqkkoOihLpzTxOoiquriDEGxruxoE=";
+  types-aiobotocore-connectcases = buildTypesAiobotocorePackage "connectcases" "2.11.0" "sha256-/A13kQO/qzO1vnslZiMRgB1QWgF8ap0mZDFQzowOpck=";
 
-  types-aiobotocore-connectparticipant = buildTypesAiobotocorePackage "connectparticipant" "2.9.0" "sha256-AsHLSsmfYb4WC0068U1VLvsA/h/V+IPpSsshPDj0yD8=";
+  types-aiobotocore-connectparticipant = buildTypesAiobotocorePackage "connectparticipant" "2.11.0" "sha256-TY4kD0Fyb195X8vjFavszY4KIirBxdu5TsWdpcHvcqY=";
 
-  types-aiobotocore-controltower = buildTypesAiobotocorePackage "controltower" "2.9.0" "sha256-oUPutZNbGyiIOow0sjhdyCmrcymVtVUfmV22CTa3jk8=";
+  types-aiobotocore-controltower = buildTypesAiobotocorePackage "controltower" "2.11.0" "sha256-XQID3eh3curqT6wBJ//7giHl+ALEMtdIhM+Ns8Bm3i0=";
 
-  types-aiobotocore-cur = buildTypesAiobotocorePackage "cur" "2.9.0" "sha256-PGAEGW5hQNiSvUmaO1c9ruV4p/geuSXuKUBBqfCn9h0=";
+  types-aiobotocore-cur = buildTypesAiobotocorePackage "cur" "2.11.0" "sha256-TiXil9jLCdO/pCFDUNIJpH2NC1TTdr9j+82Azgcdtfw=";
 
-  types-aiobotocore-customer-profiles = buildTypesAiobotocorePackage "customer-profiles" "2.9.0" "sha256-6TkyPbfYX4l+rg5fYAxL7YRk+q7btyAnUmZsddEEMKI=";
+  types-aiobotocore-customer-profiles = buildTypesAiobotocorePackage "customer-profiles" "2.11.0" "sha256-M2hWm/UhFkEMaY/ZojmAgTHXYmwJUAqOyhn37WNwGWE=";
 
-  types-aiobotocore-databrew = buildTypesAiobotocorePackage "databrew" "2.9.0" "sha256-dMNEL+UBheYxenwHbopFigH8y/WaVN9W37Qsm8hj2LI=";
+  types-aiobotocore-databrew = buildTypesAiobotocorePackage "databrew" "2.11.0" "sha256-mH+/ZBD/wW5KRCmt5Fmg6Bmd6svZfQw8NZgB89A3oY0=";
 
-  types-aiobotocore-dataexchange = buildTypesAiobotocorePackage "dataexchange" "2.9.0" "sha256-+fQQWK+j80sUcm5+cm1x4dmexMyzYLj+/wwSs7doPGM=";
+  types-aiobotocore-dataexchange = buildTypesAiobotocorePackage "dataexchange" "2.11.0" "sha256-jykGzUF1W5pVg5mzAC4J3EkhYgMNnXyyj0VesOyJfh0=";
 
-  types-aiobotocore-datapipeline = buildTypesAiobotocorePackage "datapipeline" "2.9.0" "sha256-Xbqot0kb2uRuzVw4mBDwXgUyxJmXNb7s00DfE12gnK0=";
+  types-aiobotocore-datapipeline = buildTypesAiobotocorePackage "datapipeline" "2.11.0" "sha256-XKdSE4yJdaoaHoER/9ktK0gmSco5RcZNi0oAuSh7zVc=";
 
-  types-aiobotocore-datasync = buildTypesAiobotocorePackage "datasync" "2.9.0" "sha256-h1JZgAPPSynyE2R3ZFr94gql6NNBtAAZzT/vLu36974=";
+  types-aiobotocore-datasync = buildTypesAiobotocorePackage "datasync" "2.11.0" "sha256-t72a9Uy1pw/PgN80VR6aG7sgTE35EnLN1zToP9j9jcc=";
 
-  types-aiobotocore-dax = buildTypesAiobotocorePackage "dax" "2.9.0" "sha256-m5XoWZXVHsz/tnVJTJikanRovgdjn9YA6fqCih+J2FY=";
+  types-aiobotocore-dax = buildTypesAiobotocorePackage "dax" "2.11.0" "sha256-60GCMrXfcFO/mDm1ThuHZIajDhWheUXR/FGdkRNb8Oo=";
 
-  types-aiobotocore-detective = buildTypesAiobotocorePackage "detective" "2.9.0" "sha256-u/RH0O+wJ+zSxENwkZ34qsvRyCLxYVcaXUwJSrRoWa8=";
+  types-aiobotocore-detective = buildTypesAiobotocorePackage "detective" "2.11.0" "sha256-HEGUGjXjiQd0jkPYFHQ29ZN4M12Gy/l9VEUHnu/G4RI=";
 
-  types-aiobotocore-devicefarm = buildTypesAiobotocorePackage "devicefarm" "2.9.0" "sha256-yZiJ42Tux6ElMCAonjsrlHIvIRMF8TndCgj8m2dqPgI=";
+  types-aiobotocore-devicefarm = buildTypesAiobotocorePackage "devicefarm" "2.11.0" "sha256-L8PKB1DfzGiKd5dEBT5EkxcR3a+P9wx5k4/J3yD2mSQ=";
 
-  types-aiobotocore-devops-guru = buildTypesAiobotocorePackage "devops-guru" "2.9.0" "sha256-YG4OKgu+APHPvnPJxWhb7F8P7mAzhg//0A5I34mL2WA=";
+  types-aiobotocore-devops-guru = buildTypesAiobotocorePackage "devops-guru" "2.11.0" "sha256-YtSwdniKZHpoOAfGy7w7QtkwdDuNtlUiiAxEraSMn6Y=";
 
-  types-aiobotocore-directconnect = buildTypesAiobotocorePackage "directconnect" "2.9.0" "sha256-hSaANopHROSG3tI1Oo76m+MMCN/BwlhdkIil5ej47b8=";
+  types-aiobotocore-directconnect = buildTypesAiobotocorePackage "directconnect" "2.11.0" "sha256-Vglr/xHMsRHm5yKu98ufddszmFtT0LeBVxyJRbZXzEU=";
 
-  types-aiobotocore-discovery = buildTypesAiobotocorePackage "discovery" "2.9.0" "sha256-4bT4zpTZ7dS2dnfIRCQO9kx4LxMqct+sGX0RwFYm3q4=";
+  types-aiobotocore-discovery = buildTypesAiobotocorePackage "discovery" "2.11.0" "sha256-wlZo+BFJ1MfwO2gF0jKRf/aUNlU9PGL8BmIXnRY8mzU=";
 
-  types-aiobotocore-dlm = buildTypesAiobotocorePackage "dlm" "2.9.0" "sha256-3CJqMAU6V6BnwImfNmDdTvvcbbhLTC6txb1rYsroiW8=";
+  types-aiobotocore-dlm = buildTypesAiobotocorePackage "dlm" "2.11.0" "sha256-yehavKHvxjCDzDo8YB25tgKzmxAGjEtRQDxgHtaFxPo=";
 
-  types-aiobotocore-dms = buildTypesAiobotocorePackage "dms" "2.9.0" "sha256-4LLK2nScAVX2XtHIj0ajO7MZhz7OV+xarlCr5Y2bjXU=";
+  types-aiobotocore-dms = buildTypesAiobotocorePackage "dms" "2.11.0" "sha256-BJXDtvCyJK/LDiVXzgOEH8rnK/EhsC1i/wF7f4bcAgY=";
 
-  types-aiobotocore-docdb = buildTypesAiobotocorePackage "docdb" "2.9.0" "sha256-jBEpqZFqzAY8KOsG7RhBzg0HVEtfwkmc6KfrpOmHQJs=";
+  types-aiobotocore-docdb = buildTypesAiobotocorePackage "docdb" "2.11.0" "sha256-fMM1lBiBdBpiEX9LCOtK85QDgiduht3tu3xdv4Yu/DM=";
 
-  types-aiobotocore-docdb-elastic = buildTypesAiobotocorePackage "docdb-elastic" "2.9.0" "sha256-WnGjpT3cf+KucO+p2uoerdyMvnW2vPEpSiPtSrPwqWg=";
+  types-aiobotocore-docdb-elastic = buildTypesAiobotocorePackage "docdb-elastic" "2.11.0" "sha256-VmQrMq6ia+qw2Fk1DxZsHgjTNccY9LnOo855YEmFNKw=";
 
-  types-aiobotocore-drs = buildTypesAiobotocorePackage "drs" "2.9.0" "sha256-ZS7Ux9Oa24Yvwl2R4ahsJMJKK2+ZkB0Gl5vymbF1KuI=";
+  types-aiobotocore-drs = buildTypesAiobotocorePackage "drs" "2.11.0" "sha256-As0IUtS4mDeiGRDY1rsz3WLURzIuvyO0/dKNGC7UvqI=";
 
-  types-aiobotocore-ds = buildTypesAiobotocorePackage "ds" "2.9.0" "sha256-LyM6Mu6f0Ophm5D7li+RORL3pPKMF31FGAjhKifFgK0=";
+  types-aiobotocore-ds = buildTypesAiobotocorePackage "ds" "2.11.0" "sha256-psuIC2nu/K6kLi0v1s5vhq0CCAqvuPy+E8J362qTLM8=";
 
-  types-aiobotocore-dynamodb = buildTypesAiobotocorePackage "dynamodb" "2.9.0" "sha256-11VNAEeYMpdv1QeHzfZF8s6eELfHAf+6kwZ98lZVtss=";
+  types-aiobotocore-dynamodb = buildTypesAiobotocorePackage "dynamodb" "2.11.0" "sha256-3ItFb+9nzA0hNEg62peBcYEPEFZVxR0Qa9z5vXfjkzc=";
 
-  types-aiobotocore-dynamodbstreams = buildTypesAiobotocorePackage "dynamodbstreams" "2.9.0" "sha256-V3KpPB/ZFn4ekwqCzAYlCd7Sm2eOmDSErKrW5Inq6bw=";
+  types-aiobotocore-dynamodbstreams = buildTypesAiobotocorePackage "dynamodbstreams" "2.11.0" "sha256-2Bwhic0Jag/dXemObH0WC5ZJR98VmE9lqLRKLOLyTZ8=";
 
-  types-aiobotocore-ebs = buildTypesAiobotocorePackage "ebs" "2.9.0" "sha256-P/xyl8314GuciTxaWNDqBxvTNIgBrmgwEGnf3ndFhhY=";
+  types-aiobotocore-ebs = buildTypesAiobotocorePackage "ebs" "2.11.0" "sha256-/cu++CeWRlZ54fD6YRH/qRJLHI+nKzCIbjAKYFiM/Ak=";
 
-  types-aiobotocore-ec2 = buildTypesAiobotocorePackage "ec2" "2.9.0" "sha256-hZl7h0GbT4uW+xFrj+DrM78oBxVVkklUtdvPhiwD4IU=";
+  types-aiobotocore-ec2 = buildTypesAiobotocorePackage "ec2" "2.11.0" "sha256-Hco3i5jPJAzAsgKxFQP+MNRNNeiYfJCGIG8l+C7gWnc=";
 
-  types-aiobotocore-ec2-instance-connect = buildTypesAiobotocorePackage "ec2-instance-connect" "2.9.0" "sha256-bsREnDH2iIpXXJTaAeFpdqTFUW8NXFYrnilCldvsZeU=";
+  types-aiobotocore-ec2-instance-connect = buildTypesAiobotocorePackage "ec2-instance-connect" "2.11.0" "sha256-OhpF/CqFX3EkigzPqDIuIun2nr3F+gH0O+5hsB4jXWg=";
 
-  types-aiobotocore-ecr = buildTypesAiobotocorePackage "ecr" "2.9.0" "sha256-aRogeu240sXzGG3SqtgPlMro/VgfZ+ab8mN8llrd0BM=";
+  types-aiobotocore-ecr = buildTypesAiobotocorePackage "ecr" "2.11.0" "sha256-Kw4ZzkV/dXvhOiPeFLJxdSJvMy1cTR+KpxTc56ejhQ8=";
 
-  types-aiobotocore-ecr-public = buildTypesAiobotocorePackage "ecr-public" "2.9.0" "sha256-me4OICl7bpjD8So1+Fi3WAPStmHN03Iy/UpSKkJ9vjs=";
+  types-aiobotocore-ecr-public = buildTypesAiobotocorePackage "ecr-public" "2.11.0" "sha256-VE4bwmg1i9Nai6xGz9AK6gREkxSIBs3QiUCyR04O12g=";
 
-  types-aiobotocore-ecs = buildTypesAiobotocorePackage "ecs" "2.9.0" "sha256-j7Uii76S/VHqEaCwY0oazbiZPjhHGzgNpDftur9sAdQ=";
+  types-aiobotocore-ecs = buildTypesAiobotocorePackage "ecs" "2.11.0" "sha256-A4KkWqtwvvDSBdHB3xBdwmaC033AdMvoVY9yloXz++M=";
 
-  types-aiobotocore-efs = buildTypesAiobotocorePackage "efs" "2.9.0" "sha256-RglLUdWAGoXqlhDeJ5YDuKRGBuN3L4/bX1ooiextOGM=";
+  types-aiobotocore-efs = buildTypesAiobotocorePackage "efs" "2.11.0" "sha256-tW4UvAdlX0edPquPSPxJU4ktMEXism8ghUtwZS6J/2g=";
 
-  types-aiobotocore-eks = buildTypesAiobotocorePackage "eks" "2.9.0" "sha256-VrEKbEiAKCuBQyKBRCY/XYD/4akxVF/x2aHpwTsp/gk=";
+  types-aiobotocore-eks = buildTypesAiobotocorePackage "eks" "2.11.0" "sha256-CIsxmM4gJ5Ds6FyNRixuTOrn2iigVWVjfOhnySLIC8o=";
 
-  types-aiobotocore-elastic-inference = buildTypesAiobotocorePackage "elastic-inference" "2.9.0" "sha256-gkzqiodMq81O8d8WTwsSHcXVRdcsW+fcH0UDkWVm6NU=";
+  types-aiobotocore-elastic-inference = buildTypesAiobotocorePackage "elastic-inference" "2.11.0" "sha256-qY+Cr4xGjG2ULl+CTHwbH5ljGHJopNLfrbMdkuOI7IA=";
 
-  types-aiobotocore-elasticache = buildTypesAiobotocorePackage "elasticache" "2.9.0" "sha256-v27Lu2Oe+kTjXR82WcJ+ocSSiYcepLt8J4E0e3gTSQQ=";
+  types-aiobotocore-elasticache = buildTypesAiobotocorePackage "elasticache" "2.11.0" "sha256-MDGyOh+cwmUoNXs/bQNss5lgCzplAOVKcKC4djAGykw=";
 
-  types-aiobotocore-elasticbeanstalk = buildTypesAiobotocorePackage "elasticbeanstalk" "2.9.0" "sha256-2NBo1cUIyXTWkrMQaGt5oQfLovrhdZAtNIrA3KmyBNI=";
+  types-aiobotocore-elasticbeanstalk = buildTypesAiobotocorePackage "elasticbeanstalk" "2.11.0" "sha256-gQcy3oD2JDa/yncQP8wb1xl+WNDbQphO8YBQEeJ4BHQ=";
 
-  types-aiobotocore-elastictranscoder = buildTypesAiobotocorePackage "elastictranscoder" "2.9.0" "sha256-eDz+7wmr8LIkO1LtxvLoHrfVllycbcQRHA8HLfK/Aig=";
+  types-aiobotocore-elastictranscoder = buildTypesAiobotocorePackage "elastictranscoder" "2.11.0" "sha256-8MNsjca7iVgs5t7v0zvIXV26vL6gKxXlGzFEONlKgHs=";
 
-  types-aiobotocore-elb = buildTypesAiobotocorePackage "elb" "2.9.0" "sha256-nj8CLLrTrGS7GOC90xGxDqVLhxK3mvmWthUucwcf7VU=";
+  types-aiobotocore-elb = buildTypesAiobotocorePackage "elb" "2.11.0" "sha256-XXf6dX4HXJGjmEvexMOTb8Pv+lF4bXJyKE44kXJwlig=";
 
-  types-aiobotocore-elbv2 = buildTypesAiobotocorePackage "elbv2" "2.9.0" "sha256-ILngqOQ5oVsgGj6LRYlx/LrfKf85aakeRP+z96z2FnE=";
+  types-aiobotocore-elbv2 = buildTypesAiobotocorePackage "elbv2" "2.11.0" "sha256-oOPJPa6Tn9+BrlTENXFhmvN/KI+0w0BKrKnmYbu6x9Q=";
 
-  types-aiobotocore-emr = buildTypesAiobotocorePackage "emr" "2.9.0" "sha256-pazXV8RBOciYO4DT8N5Ztl+prpSMqY4PtHTw6fpDVrk=";
+  types-aiobotocore-emr = buildTypesAiobotocorePackage "emr" "2.11.0" "sha256-+xoCUWrwXEi8q+7Hm3b3kvEzXS/JymrP2fYJIPWLzRI=";
 
-  types-aiobotocore-emr-containers = buildTypesAiobotocorePackage "emr-containers" "2.9.0" "sha256-rgnCpxI5VF5PIks1ucO18odXbdJLY6avolYSSYM/ucs=";
+  types-aiobotocore-emr-containers = buildTypesAiobotocorePackage "emr-containers" "2.11.0" "sha256-F0hz9aHxAf/aHqhXsuA+mvHcFr/5pfVVKdsmmDW7rI4=";
 
-  types-aiobotocore-emr-serverless = buildTypesAiobotocorePackage "emr-serverless" "2.9.0" "sha256-ONqc3bBUEpKy6+GlOtZf8Sqf+NaQXbRvVdu/NtA8g/U=";
+  types-aiobotocore-emr-serverless = buildTypesAiobotocorePackage "emr-serverless" "2.11.0" "sha256-Ge3xhHySq3tXxe1JCj7hdaUjeAfzZkCncJb0Navz6Ic=";
 
-  types-aiobotocore-entityresolution = buildTypesAiobotocorePackage "entityresolution" "2.9.0" "sha256-du/tPdrQIaCvndaZMU5Bz3biL8GxT1PQGR/rRbSioTk=";
+  types-aiobotocore-entityresolution = buildTypesAiobotocorePackage "entityresolution" "2.11.0" "sha256-ey4rDsAWGsJrRECRbPousQb/NSGfwRRshWHqDrDBhqs=";
 
-  types-aiobotocore-es = buildTypesAiobotocorePackage "es" "2.9.0" "sha256-2zELfFO2ukQ3CIBA72Ktd67H+VtLSpXEJ8bAARb+Nas=";
+  types-aiobotocore-es = buildTypesAiobotocorePackage "es" "2.11.0" "sha256-6cDHUdWst+oatMZP9S13vySIyZUQ02GqRlfaOGUkPDQ=";
 
-  types-aiobotocore-events = buildTypesAiobotocorePackage "events" "2.9.0" "sha256-wluojbZEFpeJcLDmNqcBzVyAbXi2oe65MNDsSxizwbI=";
+  types-aiobotocore-events = buildTypesAiobotocorePackage "events" "2.11.0" "sha256-OIZdgxxmfz7HXfZbRlzqK6x1aITXN9NXRp4LBxFmlM4=";
 
-  types-aiobotocore-evidently = buildTypesAiobotocorePackage "evidently" "2.9.0" "sha256-y2ZTQ/N2YXFBylexjWfEoeUxlhSNEykUNqzhFvjDprE=";
+  types-aiobotocore-evidently = buildTypesAiobotocorePackage "evidently" "2.11.0" "sha256-1/YBIoqBgY1RPCrP/REd5iMYpqFXUXm3AFB6CfUo7F8=";
 
-  types-aiobotocore-finspace = buildTypesAiobotocorePackage "finspace" "2.9.0" "sha256-JJ1KeDC+sUkixipaE/eEPZLxu4e1IP+yaGrHr/eh2kQ=";
+  types-aiobotocore-finspace = buildTypesAiobotocorePackage "finspace" "2.11.0" "sha256-Zlv1GzIn79GTgvtOe+4loAHXwDaYX1BiQYG3Fg4y9c0=";
 
-  types-aiobotocore-finspace-data = buildTypesAiobotocorePackage "finspace-data" "2.9.0" "sha256-9KCNrLD1vKELitGKWmEKLDsniQTZ+CSLPqJIXU/Ndkg=";
+  types-aiobotocore-finspace-data = buildTypesAiobotocorePackage "finspace-data" "2.11.0" "sha256-Zb5qmBxMqvuxczqOcwQCL7T4Ur4w9ESiWHAu+Wdq2zM=";
 
-  types-aiobotocore-firehose = buildTypesAiobotocorePackage "firehose" "2.9.0" "sha256-NY8XyhCzze30cdDT76faqaFRuhwD43DjTc59h6LwN4M=";
+  types-aiobotocore-firehose = buildTypesAiobotocorePackage "firehose" "2.11.0" "sha256-O5is88jjNqe02YEXhxQojonvzXFCUW+YPl9DM5GmKjQ=";
 
-  types-aiobotocore-fis = buildTypesAiobotocorePackage "fis" "2.9.0" "sha256-oVOz3nStBFvOrlJEy4v9kKjkBbM/cubP/01KUnGGKIk=";
+  types-aiobotocore-fis = buildTypesAiobotocorePackage "fis" "2.11.0" "sha256-Vmtl3JWRi38gMtA0XEPObaROjUKjzv9LToWWOANx1Ds=";
 
-  types-aiobotocore-fms = buildTypesAiobotocorePackage "fms" "2.9.0" "sha256-YdsSwRZitM81L1VrQ8MWLAo5OzMVYHhHlLn0cr+rX1M=";
+  types-aiobotocore-fms = buildTypesAiobotocorePackage "fms" "2.11.0" "sha256-fIbCkSX6wG5J+IJQh2JXD6TtZOPTOIZQHXlHdVz1LcU=";
 
-  types-aiobotocore-forecast = buildTypesAiobotocorePackage "forecast" "2.9.0" "sha256-PSlAjO+J5FmGeerxaXGLblTsxCV/N3pgrp9YE+wbuLE=";
+  types-aiobotocore-forecast = buildTypesAiobotocorePackage "forecast" "2.11.0" "sha256-kISZKBx6dlTqXUZ6PO3nlZzccw8daR1EZpN0AaBpcbI=";
 
-  types-aiobotocore-forecastquery = buildTypesAiobotocorePackage "forecastquery" "2.9.0" "sha256-6wtsWxphhZX6EXACPnQoOEk5jhYU2F0O6uQWd4YcmMU=";
+  types-aiobotocore-forecastquery = buildTypesAiobotocorePackage "forecastquery" "2.11.0" "sha256-j9jlpZjefqX4sB5D0hnMTd0ZQ8ht+4rt9kJuAByBgGU=";
 
-  types-aiobotocore-frauddetector = buildTypesAiobotocorePackage "frauddetector" "2.9.0" "sha256-baWI2JgVwKt009qHelIWdlinITQx3PMmDL2GR4JYs7s=";
+  types-aiobotocore-frauddetector = buildTypesAiobotocorePackage "frauddetector" "2.11.0" "sha256-DJN85JyJyhX3JDahAmFQbwoKbGR1oYvUs9VsPuiHcrY=";
 
-  types-aiobotocore-fsx = buildTypesAiobotocorePackage "fsx" "2.9.0" "sha256-9U5ZyZVlovbMhAEpdxatXMdG+4UiNDzCgOPcolFVz+o=";
+  types-aiobotocore-fsx = buildTypesAiobotocorePackage "fsx" "2.11.0" "sha256-XCkjME0B8wKycmqHu+magBP6dtVdLRa9j4I9H7gwHKM=";
 
-  types-aiobotocore-gamelift = buildTypesAiobotocorePackage "gamelift" "2.9.0" "sha256-zMDERQRfFSDc1ULOKnxh0pCJFto19rc/S4MpPWp/AIQ=";
+  types-aiobotocore-gamelift = buildTypesAiobotocorePackage "gamelift" "2.11.0" "sha256-xolmKH6/Ea0JGBF8ZnNGxG31SDFiGIP4+l2hq7CAwTo=";
 
   types-aiobotocore-gamesparks = buildTypesAiobotocorePackage "gamesparks" "2.6.0" "sha256-9iV7bpGMnzz9TH+g1YpPjbKBSKY3rcL/OJvMOzwLC1M=";
 
-  types-aiobotocore-glacier = buildTypesAiobotocorePackage "glacier" "2.9.0" "sha256-gwWW/i5HfpPyNOTW+B2oXm8RiTMBWrlzfdrS15ysR3g=";
+  types-aiobotocore-glacier = buildTypesAiobotocorePackage "glacier" "2.11.0" "sha256-K96KMoNKQuVzQMsBg8PC+Vp0tZCmkgjuWXHc//hlS84=";
 
-  types-aiobotocore-globalaccelerator = buildTypesAiobotocorePackage "globalaccelerator" "2.9.0" "sha256-5w83+uCKnfu2JzAhyhNgyw2fJGHOzLOgS9ihuZ5mjXc=";
+  types-aiobotocore-globalaccelerator = buildTypesAiobotocorePackage "globalaccelerator" "2.11.0" "sha256-wneACGl4MR+jarW0rIqg15lHBFou/rnULzG2Jv8aI+k=";
 
-  types-aiobotocore-glue = buildTypesAiobotocorePackage "glue" "2.9.0" "sha256-UWnIh8+CcSpWPvAHnWJrLORqFKkMSHvxV2QIO2kLHxg=";
+  types-aiobotocore-glue = buildTypesAiobotocorePackage "glue" "2.11.0" "sha256-/RUFpcd1Jglx7Wxs74W7fFIPTbAVPhicCLfxl5Vtp8U=";
 
-  types-aiobotocore-grafana = buildTypesAiobotocorePackage "grafana" "2.9.0" "sha256-LWncyuBU2zDhoF5ob81cg+NWlOI8QiZkbpUSRRolh9E=";
+  types-aiobotocore-grafana = buildTypesAiobotocorePackage "grafana" "2.11.0" "sha256-Zat6MDfQ/rCSB5Ydn7FPO8LMKl2wRNYZCpVKoXLKrpo=";
 
-  types-aiobotocore-greengrass = buildTypesAiobotocorePackage "greengrass" "2.9.0" "sha256-pjBy3YHHblL5JWCycMfZxpFQdPyAGla9TVmLLceRsrY=";
+  types-aiobotocore-greengrass = buildTypesAiobotocorePackage "greengrass" "2.11.0" "sha256-hxGI5jMrscgxIF9Mke6s7tM0CDllDM4EHU57Q/EdK4Y=";
 
-  types-aiobotocore-greengrassv2 = buildTypesAiobotocorePackage "greengrassv2" "2.9.0" "sha256-IAlQveKtmaP02odHz8WQdNdWLFjz0gPr66HMSyOhnMs=";
+  types-aiobotocore-greengrassv2 = buildTypesAiobotocorePackage "greengrassv2" "2.11.0" "sha256-FiTsLALc/FvB4AsDWThiHfC2+M/J9mrS7GixrzqEv/M=";
 
-  types-aiobotocore-groundstation = buildTypesAiobotocorePackage "groundstation" "2.9.0" "sha256-qcjfgSR8lbOus3bcx/zlPSuGJ53B/Kuo1GCyU4VsYMo=";
+  types-aiobotocore-groundstation = buildTypesAiobotocorePackage "groundstation" "2.11.0" "sha256-aOvnThGfSamrhxPypI7MKIwd8zEMuhw/o/UeGxZmmDU=";
 
-  types-aiobotocore-guardduty = buildTypesAiobotocorePackage "guardduty" "2.9.0" "sha256-ecsB0KFITMENFwZX2EKpmToi1iYTeeRtrooAX3zXfpc=";
+  types-aiobotocore-guardduty = buildTypesAiobotocorePackage "guardduty" "2.11.0" "sha256-N1EyD7esyQYNdEk3qWcekH+/kpebR9kCgkBtiBuTLBU=";
 
-  types-aiobotocore-health = buildTypesAiobotocorePackage "health" "2.9.0" "sha256-nz7sUPMH8gVy5Oz+eatRd8iLfHKxcDHFRIqh80EuZWE=";
+  types-aiobotocore-health = buildTypesAiobotocorePackage "health" "2.11.0" "sha256-5P2n0Fgk2ESOm99uEdgZoe+Sba20vyCUsJdl0n5Aylk=";
 
-  types-aiobotocore-healthlake = buildTypesAiobotocorePackage "healthlake" "2.9.0" "sha256-S8Ds3s45HY0b007saVNSd0bfmvP3lbSNXEWUSBCsD/8=";
+  types-aiobotocore-healthlake = buildTypesAiobotocorePackage "healthlake" "2.11.0" "sha256-Y8+aQARCeYuIfuxLU31gjY5NGbp4p6Hpamgn0XtyuM0=";
 
-  types-aiobotocore-honeycode = buildTypesAiobotocorePackage "honeycode" "2.9.0" "sha256-+D9MESYNaP60NSl/5OKLVyHQQqikU4AHR6CV+wb1J58=";
+  types-aiobotocore-honeycode = buildTypesAiobotocorePackage "honeycode" "2.11.0" "sha256-E1L7Q11HLXscHOrxPss2fRNjEykdQRa28yKmGzvgIk4=";
 
-  types-aiobotocore-iam = buildTypesAiobotocorePackage "iam" "2.9.0" "sha256-b1VvcL7w/QC4svZCuDnP+OC+wOHWvrArUFLCw94S7Vw=";
+  types-aiobotocore-iam = buildTypesAiobotocorePackage "iam" "2.11.0" "sha256-/ukLk4kKSVtsJ8MNXw58bn6l+0mlAeDPVaO1EwiD9oA=";
 
-  types-aiobotocore-identitystore = buildTypesAiobotocorePackage "identitystore" "2.9.0" "sha256-qsU85n679BxZn3QgC0iSXnX+GANPhdUNQuSn5/WIjq4=";
+  types-aiobotocore-identitystore = buildTypesAiobotocorePackage "identitystore" "2.11.0" "sha256-JSGf1XwnNTVEEQR2KyI2krBqSEgEFw84IR1gdrdPdi0=";
 
-  types-aiobotocore-imagebuilder = buildTypesAiobotocorePackage "imagebuilder" "2.9.0" "sha256-U3PWbTbhSb48R1QPdzH1kLBI/Y6Iv1MnQz1IeuaQGj8=";
+  types-aiobotocore-imagebuilder = buildTypesAiobotocorePackage "imagebuilder" "2.11.0" "sha256-fOVxWpaqJVa1sjhEm4ZzgfdnxIQlIxUeORbLG5a4A0A=";
 
-  types-aiobotocore-importexport = buildTypesAiobotocorePackage "importexport" "2.9.0" "sha256-vnnAftGX1FxCdqz9ROaWcuaugIDXPfySRWVJieU33VA=";
+  types-aiobotocore-importexport = buildTypesAiobotocorePackage "importexport" "2.11.0" "sha256-YVcmN00t47DMu1L9toL4D33rWPfqkQa190RZJ9KcEbM=";
 
-  types-aiobotocore-inspector = buildTypesAiobotocorePackage "inspector" "2.9.0" "sha256-4tYe+EtujEhaVYbddCBuVSoGzai0+oiJPxkZ+fxxz9M=";
+  types-aiobotocore-inspector = buildTypesAiobotocorePackage "inspector" "2.11.0" "sha256-8A93fS8hGK8DMZB4t5fK68PDKzxrYmVDa+UCkhhMUxA=";
 
-  types-aiobotocore-inspector2 = buildTypesAiobotocorePackage "inspector2" "2.9.0" "sha256-VXniTrBibInkgj0jMWbb9RD8+Er9JUJ0xfAeWfwKdXE=";
+  types-aiobotocore-inspector2 = buildTypesAiobotocorePackage "inspector2" "2.11.0" "sha256-PqoT60G1gxTFoIx5ro2Q0aCnE9wCXTz5nZO+CVNzUKM=";
 
-  types-aiobotocore-internetmonitor = buildTypesAiobotocorePackage "internetmonitor" "2.9.0" "sha256-70lW/bzAirzq1ui/TtiFyKGesZMJ3Z8jwGgc3j0GoUk=";
+  types-aiobotocore-internetmonitor = buildTypesAiobotocorePackage "internetmonitor" "2.11.0" "sha256-YbIqecsNgBdG0ruscwRiPhOQHmejIDopHVDG7RfeYxA=";
 
-  types-aiobotocore-iot = buildTypesAiobotocorePackage "iot" "2.9.0" "sha256-j8i0uB5Ul4pxxMjyPdR94ssh1lus4MAR1Il31ueJiw0=";
+  types-aiobotocore-iot = buildTypesAiobotocorePackage "iot" "2.11.0" "sha256-XVJ6Te10TqF8y9+A7GN+fD751K4twpLvA4SmTSqc10I=";
 
-  types-aiobotocore-iot-data = buildTypesAiobotocorePackage "iot-data" "2.9.0" "sha256-9gblz4bopGjfFh3dgw0Jy7KVl8SNO+kE8l+l5mAgUws=";
+  types-aiobotocore-iot-data = buildTypesAiobotocorePackage "iot-data" "2.11.0" "sha256-XG1i5KepPmHiuCVPBK7YeQCEIM8ZqgnvIqEtcI90xN4=";
 
-  types-aiobotocore-iot-jobs-data = buildTypesAiobotocorePackage "iot-jobs-data" "2.9.0" "sha256-wykkgo48vdRg401bVR1TxCFFZXzESjeZM8Tc7wPVI6w=";
+  types-aiobotocore-iot-jobs-data = buildTypesAiobotocorePackage "iot-jobs-data" "2.11.0" "sha256-pPreUhwzaK65rZi/TjNX+HMFYF0pr53xKKrL7euxX84=";
 
-  types-aiobotocore-iot-roborunner = buildTypesAiobotocorePackage "iot-roborunner" "2.9.0" "sha256-ufnfEl+MjD/FAJ6ga2/rAvVrAbg+lCqwXxh58VDezxk=";
+  types-aiobotocore-iot-roborunner = buildTypesAiobotocorePackage "iot-roborunner" "2.11.0" "sha256-p3SLJJSU/dwGtZxRacLBVIagJ0b52j+IL4Mni2E0pVo=";
 
-  types-aiobotocore-iot1click-devices = buildTypesAiobotocorePackage "iot1click-devices" "2.9.0" "sha256-8TF24GJwZT8c0XBV15XOJqP4/pMPdanURcxnbVu8gRg=";
+  types-aiobotocore-iot1click-devices = buildTypesAiobotocorePackage "iot1click-devices" "2.11.0" "sha256-cTPED/zwtypKNxX2s3ZkOsVhGNvCRs26REiL+1EpCgI=";
 
-  types-aiobotocore-iot1click-projects = buildTypesAiobotocorePackage "iot1click-projects" "2.9.0" "sha256-IV8WCyvx2BVG5R3JUM2Q8r5n+qlVd/JiLUneW6DcQTw=";
+  types-aiobotocore-iot1click-projects = buildTypesAiobotocorePackage "iot1click-projects" "2.11.0" "sha256-vshDzMpLr67eVAXaQIFXk+EbLL9rnw0qTQDarvfXMk0=";
 
-  types-aiobotocore-iotanalytics = buildTypesAiobotocorePackage "iotanalytics" "2.9.0" "sha256-00lziwTYF800ejKy11K26LL1GpFi3e+57OQwQk4KN4s=";
+  types-aiobotocore-iotanalytics = buildTypesAiobotocorePackage "iotanalytics" "2.11.0" "sha256-pH5VdrjZbMgaPIzDdG02aUvTzfuQAVHt++Bf7V5pn68=";
 
-  types-aiobotocore-iotdeviceadvisor = buildTypesAiobotocorePackage "iotdeviceadvisor" "2.9.0" "sha256-/FnVwPFQTDi0XGYf1N5rzUUV9HLqy+xrDIdIlwbhEqY=";
+  types-aiobotocore-iotdeviceadvisor = buildTypesAiobotocorePackage "iotdeviceadvisor" "2.11.0" "sha256-fSlti+/6WF21b7wO24zK3PC4eftPnRvJM6MqFWMsnRU=";
 
-  types-aiobotocore-iotevents = buildTypesAiobotocorePackage "iotevents" "2.9.0" "sha256-Tsj+xTdDp2iP3suK6Y09hLwOOA80xJ/HH76f6rmbsSI=";
+  types-aiobotocore-iotevents = buildTypesAiobotocorePackage "iotevents" "2.11.0" "sha256-Nrx27vWS8QFcWGQ0fE/gUwbwJ8mj3seWnuauTuJvVDY=";
 
-  types-aiobotocore-iotevents-data = buildTypesAiobotocorePackage "iotevents-data" "2.9.0" "sha256-DPq/6llPXr+gUikXOqRuakoSL5pOLu21AXFabe2krk0=";
+  types-aiobotocore-iotevents-data = buildTypesAiobotocorePackage "iotevents-data" "2.11.0" "sha256-Rbw4qP/duKCSEvQMeGLMrT0dBiR9tTqzt9BOwgX0QYI=";
 
-  types-aiobotocore-iotfleethub = buildTypesAiobotocorePackage "iotfleethub" "2.9.0" "sha256-C56Ab8SK7LVCL0rQ0MaykTpfh+7q1GWvNpO1T6QLxYw=";
+  types-aiobotocore-iotfleethub = buildTypesAiobotocorePackage "iotfleethub" "2.11.0" "sha256-NNZk/u0xUBPZiWFtnwZRibnTVYVfHYFCBz4wZIsLOUM=";
 
-  types-aiobotocore-iotfleetwise = buildTypesAiobotocorePackage "iotfleetwise" "2.9.0" "sha256-Sdnl//LbfuifTiQXyvDprkaZi9/MG1i51QijsKNyvp0=";
+  types-aiobotocore-iotfleetwise = buildTypesAiobotocorePackage "iotfleetwise" "2.11.0" "sha256-x+dKJMb8cpGyFf3L2ErOrjt2xNEg9gasDbbdoVaTYSY=";
 
-  types-aiobotocore-iotsecuretunneling = buildTypesAiobotocorePackage "iotsecuretunneling" "2.9.0" "sha256-d4/KliyqdzNJRICYyU6aTs1rrzF+W7B7xpywPG5KDik=";
+  types-aiobotocore-iotsecuretunneling = buildTypesAiobotocorePackage "iotsecuretunneling" "2.11.0" "sha256-r4uPC1GPoGvoIs9+lJW5rjhgKSI5hJiTKBd4lpCuVxk=";
 
-  types-aiobotocore-iotsitewise = buildTypesAiobotocorePackage "iotsitewise" "2.9.0" "sha256-6+nlzU+QZYgNoaE39Md9hT0vYM3DLQoRl5jIEK2HiGQ=";
+  types-aiobotocore-iotsitewise = buildTypesAiobotocorePackage "iotsitewise" "2.11.0" "sha256-NUH187B29S4bnOdiJHFUnpVPIZHuf/IJ2Ejy4yZW6r0=";
 
-  types-aiobotocore-iotthingsgraph = buildTypesAiobotocorePackage "iotthingsgraph" "2.9.0" "sha256-Ou+3C8Gir/InKP5sLv08F6M9FOH51/bQSpqoAezjr44=";
+  types-aiobotocore-iotthingsgraph = buildTypesAiobotocorePackage "iotthingsgraph" "2.11.0" "sha256-Pr5O3c/zjCwBNdw8t17Rt5yrfeJFW9O5HvUohh/Xza4=";
 
-  types-aiobotocore-iottwinmaker = buildTypesAiobotocorePackage "iottwinmaker" "2.9.0" "sha256-9fi9KvxlvSjBSDBtpvzKUQ8AA1Bl+awBgA4kckOF5+w=";
+  types-aiobotocore-iottwinmaker = buildTypesAiobotocorePackage "iottwinmaker" "2.11.0" "sha256-NNd0gsoQzqZVUYYncNoqyP6OMl9J+ijBXKuApPiqkFY=";
 
-  types-aiobotocore-iotwireless = buildTypesAiobotocorePackage "iotwireless" "2.9.0" "sha256-GIPR7G7l1BTFVrURSJsJKwCwjXozrIyHZqdLzWrLj2A=";
+  types-aiobotocore-iotwireless = buildTypesAiobotocorePackage "iotwireless" "2.11.0" "sha256-RD48FPh2hh9A8Q2KdFkMGmqE8mzI5eKhhYFaOIo+tx4=";
 
-  types-aiobotocore-ivs = buildTypesAiobotocorePackage "ivs" "2.9.0" "sha256-XXUYFZqxU9K6UZEpFxQORvqmpC/b3/JFOI3P1IX08kc=";
+  types-aiobotocore-ivs = buildTypesAiobotocorePackage "ivs" "2.11.0" "sha256-IRhw8nWeCMzviscWn0ksaBcuW5K2Ha5S/zShZJ5RFw0=";
 
-  types-aiobotocore-ivs-realtime = buildTypesAiobotocorePackage "ivs-realtime" "2.9.0" "sha256-HFRzKZmGZQJO//hoP6Buha2KH1JVbwvQW8N4IG69ZdA=";
+  types-aiobotocore-ivs-realtime = buildTypesAiobotocorePackage "ivs-realtime" "2.11.0" "sha256-kfOtvZ/f5awN9x6Npbf6aMFcm5UlzlJiBewaeBsuRjo=";
 
-  types-aiobotocore-ivschat = buildTypesAiobotocorePackage "ivschat" "2.9.0" "sha256-P+PaFBQs24/KTvcmAU7AtLeKW/sfePbRj++m8lQdgLY=";
+  types-aiobotocore-ivschat = buildTypesAiobotocorePackage "ivschat" "2.11.0" "sha256-w9RDhBEeUPI/w3ZdlVUR6MkUQnh8lyJB6k+5txpS7TU=";
 
-  types-aiobotocore-kafka = buildTypesAiobotocorePackage "kafka" "2.9.0" "sha256-TCgBYbKAaohObSeBuJ8jOjHZASNJrS16RTVdSCFLOjc=";
+  types-aiobotocore-kafka = buildTypesAiobotocorePackage "kafka" "2.11.0" "sha256-gS3ehhl6Ff1py+SNktpEbfzCyZb0hYqpgI8IBr5zyug=";
 
-  types-aiobotocore-kafkaconnect = buildTypesAiobotocorePackage "kafkaconnect" "2.9.0" "sha256-w8XWZ2J7LKHe9fmS/bI0tzX/Pp8ezHYZs6bgSeI0CxI=";
+  types-aiobotocore-kafkaconnect = buildTypesAiobotocorePackage "kafkaconnect" "2.11.0" "sha256-8mM82WjPweo68zoeDPG+oBPaukE7HdfqNAgzAXwgEmw=";
 
-  types-aiobotocore-kendra = buildTypesAiobotocorePackage "kendra" "2.9.0" "sha256-4T9pwC8a61FQZgWj57NbH4uJBN3OeDAmOJLd/ZQOf04=";
+  types-aiobotocore-kendra = buildTypesAiobotocorePackage "kendra" "2.11.0" "sha256-ux8BoOOyqSN9IQGapfJMrAF1hOKQ2VnXUQtjWsn6Rgg=";
 
-  types-aiobotocore-kendra-ranking = buildTypesAiobotocorePackage "kendra-ranking" "2.9.0" "sha256-MYirajXde6U4Qy1gMT9WeZ8A778jVNeSV7ms4IWmwRA=";
+  types-aiobotocore-kendra-ranking = buildTypesAiobotocorePackage "kendra-ranking" "2.11.0" "sha256-qqT07tPM/7SUrMCzjJ1LnF6/q09+MjjdpClU+GEWOPY=";
 
-  types-aiobotocore-keyspaces = buildTypesAiobotocorePackage "keyspaces" "2.9.0" "sha256-VMRYuJ97TdlvfYLbnzIzh/bDrYM5JfMS0eEHltXT1Hc=";
+  types-aiobotocore-keyspaces = buildTypesAiobotocorePackage "keyspaces" "2.11.0" "sha256-Q9j7pWVHEsO94u6YIEJxpjqgGsamHGiaVUMR2R6r2EE=";
 
-  types-aiobotocore-kinesis = buildTypesAiobotocorePackage "kinesis" "2.9.0" "sha256-EV//x+21dM7Olz876nZlUZVFlabuCothyxFrT7MpcqA=";
+  types-aiobotocore-kinesis = buildTypesAiobotocorePackage "kinesis" "2.11.0" "sha256-8cSzwbzat/TVgRGca3ASOM+BkxkztRKKWth5nWoXwyE=";
 
-  types-aiobotocore-kinesis-video-archived-media = buildTypesAiobotocorePackage "kinesis-video-archived-media" "2.9.0" "sha256-lP+YgnzAB5e1F2OAwFyPHslYiNZswc6tSLZ4F9OpfD4=";
+  types-aiobotocore-kinesis-video-archived-media = buildTypesAiobotocorePackage "kinesis-video-archived-media" "2.11.0" "sha256-yYVAiUmpQgeeBGHFsjAGK1VrbbjOsQe82uq9JYgYnds=";
 
-  types-aiobotocore-kinesis-video-media = buildTypesAiobotocorePackage "kinesis-video-media" "2.9.0" "sha256-VvXlHziQ/ehNaZ7r8DRwXCviK1Zwi04805+josYiIjg=";
+  types-aiobotocore-kinesis-video-media = buildTypesAiobotocorePackage "kinesis-video-media" "2.11.0" "sha256-rdX7ZPvQBsmYDW/w6BD/e5O62FZ1RClg0icPnIlr8DU=";
 
-  types-aiobotocore-kinesis-video-signaling = buildTypesAiobotocorePackage "kinesis-video-signaling" "2.9.0" "sha256-essOlk7mViB1gaphCiybJncXX7USKk3K7Rt1r+ecTBk=";
+  types-aiobotocore-kinesis-video-signaling = buildTypesAiobotocorePackage "kinesis-video-signaling" "2.11.0" "sha256-Cs8FzA2hr4ZKLc5OVAtxIG46+yrYtSUwi8QHXAlkBD4=";
 
-  types-aiobotocore-kinesis-video-webrtc-storage = buildTypesAiobotocorePackage "kinesis-video-webrtc-storage" "2.9.0" "sha256-KGlU4WaBWQh7nvaqmktkpaSvyJSGtQ2//io9puKB9qA=";
+  types-aiobotocore-kinesis-video-webrtc-storage = buildTypesAiobotocorePackage "kinesis-video-webrtc-storage" "2.11.0" "sha256-TuhN5P8g8bFPeM3V6vqd5uikG5tDcmhxx28h5d/bb4I=";
 
-  types-aiobotocore-kinesisanalytics = buildTypesAiobotocorePackage "kinesisanalytics" "2.9.0" "sha256-2SnuovecO3+lQwNfA1+CtifQWkuall8zQbMNvH7fQGo=";
+  types-aiobotocore-kinesisanalytics = buildTypesAiobotocorePackage "kinesisanalytics" "2.11.0" "sha256-lBIa5TTvs10qxZX8v/Okkx2bNByYtJu+wqQmH6oPO4s=";
 
-  types-aiobotocore-kinesisanalyticsv2 = buildTypesAiobotocorePackage "kinesisanalyticsv2" "2.9.0" "sha256-O0W2jEiHV1XCmZq+DtrkRZXJSIiUulsX7Tt+oVLjOcY=";
+  types-aiobotocore-kinesisanalyticsv2 = buildTypesAiobotocorePackage "kinesisanalyticsv2" "2.11.0" "sha256-U0XmJlt1SAA2gsOB8uPGYci6xUxRCEKYNkEubZo0sj4=";
 
-  types-aiobotocore-kinesisvideo = buildTypesAiobotocorePackage "kinesisvideo" "2.9.0" "sha256-tv1mzlK2ccp6Ea9bBNrTHo5E6gCWr1OHR/M7119bM00=";
+  types-aiobotocore-kinesisvideo = buildTypesAiobotocorePackage "kinesisvideo" "2.11.0" "sha256-m0+AuxYJ4pkd4+vvIDbL00wky2+ni5ct7b1+G4TmorM=";
 
-  types-aiobotocore-kms = buildTypesAiobotocorePackage "kms" "2.9.0" "sha256-I3NUNatXbcd5bJJlwox92ZLHH8K0i7Eg05ygdPsgT8E=";
+  types-aiobotocore-kms = buildTypesAiobotocorePackage "kms" "2.11.0" "sha256-4d/xpDpgi35aYBw01TKs2HBtQlTTYJVogLiL/o8b6dI=";
 
-  types-aiobotocore-lakeformation = buildTypesAiobotocorePackage "lakeformation" "2.9.0" "sha256-jcCQw7bdwDGSkkPFI9t7vxvHpVRuqI99myHWzFG+ivc=";
+  types-aiobotocore-lakeformation = buildTypesAiobotocorePackage "lakeformation" "2.11.0" "sha256-v3ybODPtGQ6gYb21EDJhTY3z7y92lsk0oFzsr1KjSjQ=";
 
-  types-aiobotocore-lambda = buildTypesAiobotocorePackage "lambda" "2.9.0" "sha256-p0gG1HwHYTk7TuE6BiPPhxEcegoCqu4JLdXoFpyy5Ps=";
+  types-aiobotocore-lambda = buildTypesAiobotocorePackage "lambda" "2.11.0" "sha256-Q9aPKenHsfsdak1rrJ67nnG6qqyr+sQBxLTYN0Hiccs=";
 
-  types-aiobotocore-lex-models = buildTypesAiobotocorePackage "lex-models" "2.9.0" "sha256-iapgXNpWmUuQtDmSouZoBf770ZFFeBg2qCxkmhNR1lc=";
+  types-aiobotocore-lex-models = buildTypesAiobotocorePackage "lex-models" "2.11.0" "sha256-4H/KRmYnp41L4A2nU1h0DEmEDSZlxuciykDERYGjt70=";
 
-  types-aiobotocore-lex-runtime = buildTypesAiobotocorePackage "lex-runtime" "2.9.0" "sha256-9A47OeYzpWp+k02C77P8gHpdEHom7XmEH8JS2mh5TAA=";
+  types-aiobotocore-lex-runtime = buildTypesAiobotocorePackage "lex-runtime" "2.11.0" "sha256-sfeUFQBySYHD8m21P6UtcRxQi5TqfSIYgRraz5pMXL4=";
 
-  types-aiobotocore-lexv2-models = buildTypesAiobotocorePackage "lexv2-models" "2.9.0" "sha256-IqM3pr5JDBylz73YilEChhlEvvk1H9+lx24E0DvbPMA=";
+  types-aiobotocore-lexv2-models = buildTypesAiobotocorePackage "lexv2-models" "2.11.0" "sha256-ytU6H7PUtQXvxECRLYAc8VF344ttXAwmhCZyx+pPPLM=";
 
-  types-aiobotocore-lexv2-runtime = buildTypesAiobotocorePackage "lexv2-runtime" "2.9.0" "sha256-8Uuu8yCz7GkVoAyCAJGO8TdKyVAV9aScjLguHvPzMT0=";
+  types-aiobotocore-lexv2-runtime = buildTypesAiobotocorePackage "lexv2-runtime" "2.11.0" "sha256-BgGVEaDqaqQGZMMKNjlZ5AQvoQqjyTwrXh3DO47GKZo=";
 
-  types-aiobotocore-license-manager = buildTypesAiobotocorePackage "license-manager" "2.9.0" "sha256-LFojS+okyetuWB/i2NBXWb2rAkqziigx0cq5xj+YSsk=";
+  types-aiobotocore-license-manager = buildTypesAiobotocorePackage "license-manager" "2.11.0" "sha256-SePLjtNFOw0io9+IF9TOAZ75mK5LTjFqTyu9zgMIXII=";
 
-  types-aiobotocore-license-manager-linux-subscriptions = buildTypesAiobotocorePackage "license-manager-linux-subscriptions" "2.9.0" "sha256-XQC3AGX/PtX9/c5NmwuIBPsXIuaUobSf6Bn+WYgSvJw=";
+  types-aiobotocore-license-manager-linux-subscriptions = buildTypesAiobotocorePackage "license-manager-linux-subscriptions" "2.11.0" "sha256-Nvngx57lLhCHJe1J2kW9giuVqVlDTWt2G0/V+F3qhbQ=";
 
-  types-aiobotocore-license-manager-user-subscriptions = buildTypesAiobotocorePackage "license-manager-user-subscriptions" "2.9.0" "sha256-sdUnhXztbU0Ud39fzE/bWvOknrivY+qpLgSY5myURro=";
+  types-aiobotocore-license-manager-user-subscriptions = buildTypesAiobotocorePackage "license-manager-user-subscriptions" "2.11.0" "sha256-sogBe6kjxz5m5pWuMyoDnxAV57W1sLPa2hGLpfSBrx8=";
 
-  types-aiobotocore-lightsail = buildTypesAiobotocorePackage "lightsail" "2.9.0" "sha256-tTrZxkme+JeyXeuyWI3F7lr9mB+thfJaukNmIyaPBZc=";
+  types-aiobotocore-lightsail = buildTypesAiobotocorePackage "lightsail" "2.11.0" "sha256-qF/6aoOLZ6s9L+kemCc/F7+d0AgTRlfQws2YZAi3kVY=";
 
-  types-aiobotocore-location = buildTypesAiobotocorePackage "location" "2.9.0" "sha256-5Tiufq/wTJ89p3K4x1k/40cbL89M0O3dF6POFYMNr4A=";
+  types-aiobotocore-location = buildTypesAiobotocorePackage "location" "2.11.0" "sha256-w5B+PvK4s+oQN79qTBCp0FXnPNT9WqFuUHQEzPAamCU=";
 
-  types-aiobotocore-logs = buildTypesAiobotocorePackage "logs" "2.9.0" "sha256-FrDg0lFXFTwBE81DZ4VOICgZLvDscip0k5oOGVXdRQ0=";
+  types-aiobotocore-logs = buildTypesAiobotocorePackage "logs" "2.11.0" "sha256-D+loPH8h5FX9Hu47ITN10TleVofFJOHfid+GjdpL3mg=";
 
-  types-aiobotocore-lookoutequipment = buildTypesAiobotocorePackage "lookoutequipment" "2.9.0" "sha256-IhhEOxTZVrKs6HxrkjssZEjV33wYX9rCpPG7SdinTRw=";
+  types-aiobotocore-lookoutequipment = buildTypesAiobotocorePackage "lookoutequipment" "2.11.0" "sha256-EJ3cdEwiwcSorBLVGol94HKFyD+ChDBhPjJ7mnA32e8=";
 
-  types-aiobotocore-lookoutmetrics = buildTypesAiobotocorePackage "lookoutmetrics" "2.9.0" "sha256-TKzrgxj0rLBfeolbqKTSPjjZIJa7BC0wdpV2pY1K2BA=";
+  types-aiobotocore-lookoutmetrics = buildTypesAiobotocorePackage "lookoutmetrics" "2.11.0" "sha256-kuj4ZPqhtW3O7jpPEHwuAW5JsySJlyeno5P+azunwl4=";
 
-  types-aiobotocore-lookoutvision = buildTypesAiobotocorePackage "lookoutvision" "2.9.0" "sha256-TZKj6Vo0pEmwN7jlC2JxXhm9/IX58FJDRHqZSILF0zk=";
+  types-aiobotocore-lookoutvision = buildTypesAiobotocorePackage "lookoutvision" "2.11.0" "sha256-oz/Q5mpo1K9lX8M9JQ9vI6S1jxCpF/2MIZiecN46zAU=";
 
-  types-aiobotocore-m2 = buildTypesAiobotocorePackage "m2" "2.9.0" "sha256-7DFARf/Jd0cPLKl3sxttpLn2cBZpC/xMyzQZbIsiko0=";
+  types-aiobotocore-m2 = buildTypesAiobotocorePackage "m2" "2.11.0" "sha256-JIUQzdIxJHbzgELIy+EmYytNvv4efsi0YL7g44VAEk4=";
 
-  types-aiobotocore-machinelearning = buildTypesAiobotocorePackage "machinelearning" "2.9.0" "sha256-UPTKT53+mTHnVmuMSaGhBT+KEYsaTvOdBcQ1Em/SEis=";
+  types-aiobotocore-machinelearning = buildTypesAiobotocorePackage "machinelearning" "2.11.0" "sha256-KPyxVo5foHyKEMpjT0Su3PzD45TUBEb9FhcG2k/YA2k=";
 
   types-aiobotocore-macie = buildTypesAiobotocorePackage "macie" "2.6.0" "sha256-gbl7jEgjk4twoxGM+WRg4MZ/nkGg7btiPOsPptR7yfw=";
 
-  types-aiobotocore-macie2 = buildTypesAiobotocorePackage "macie2" "2.9.0" "sha256-GmSUlIinWqaxsQpTsIWNgEsZXUdheMiDs/qpHfbGAUs=";
+  types-aiobotocore-macie2 = buildTypesAiobotocorePackage "macie2" "2.11.0" "sha256-sCwedjPAwXdID4eCENDCbqqazrNFemM9OodgxaXqnas=";
 
-  types-aiobotocore-managedblockchain = buildTypesAiobotocorePackage "managedblockchain" "2.9.0" "sha256-8ZTWT2U0eMkXqCbOTCMkKWo7x2lIyEAbSYZ2P0ssp3c=";
+  types-aiobotocore-managedblockchain = buildTypesAiobotocorePackage "managedblockchain" "2.11.0" "sha256-njTF1fiVk8VezuzSRPNgA+HYZ089cXFTiGsci/yJ/RQ=";
 
-  types-aiobotocore-managedblockchain-query = buildTypesAiobotocorePackage "managedblockchain-query" "2.9.0" "sha256-0KUY9/My/m2dcxtw59yFZJHdCSZcrSfkdzHDgxBtEnE=";
+  types-aiobotocore-managedblockchain-query = buildTypesAiobotocorePackage "managedblockchain-query" "2.11.0" "sha256-reshSY32SwJFCMiT1lifRqQkxofXeDGwiEuVc+sA5jg=";
 
-  types-aiobotocore-marketplace-catalog = buildTypesAiobotocorePackage "marketplace-catalog" "2.9.0" "sha256-Bj1SMCXCljNw+1nakhnyvzqinyWliaE5YzvOaWrThfc=";
+  types-aiobotocore-marketplace-catalog = buildTypesAiobotocorePackage "marketplace-catalog" "2.11.0" "sha256-WM4dEyBqocZmCE3iG72SN6kR9u/InT3C2YY2PVl3drw=";
 
-  types-aiobotocore-marketplace-entitlement = buildTypesAiobotocorePackage "marketplace-entitlement" "2.9.0" "sha256-DDozTz6pHq/BHmU8ikS18G+uIXGldY2QsOOAMycvogA=";
+  types-aiobotocore-marketplace-entitlement = buildTypesAiobotocorePackage "marketplace-entitlement" "2.11.0" "sha256-HG7VV4MGdVbqNuLqM/es1WoKURm16hEI6soGUcTEOHY=";
 
-  types-aiobotocore-marketplacecommerceanalytics = buildTypesAiobotocorePackage "marketplacecommerceanalytics" "2.9.0" "sha256-/QjGbtwTKhmADkR2NXN304fDH3+oiB3I1Ykvsajexl4=";
+  types-aiobotocore-marketplacecommerceanalytics = buildTypesAiobotocorePackage "marketplacecommerceanalytics" "2.11.0" "sha256-FFe+imaR9rnLakPlGAZu/oSY4A7s/BO5InYKtkRx77A=";
 
-  types-aiobotocore-mediaconnect = buildTypesAiobotocorePackage "mediaconnect" "2.9.0" "sha256-kYZBNr9zEjtTFXgk69fw2ZpsDxw49XzmtCVoqmIRBpA=";
+  types-aiobotocore-mediaconnect = buildTypesAiobotocorePackage "mediaconnect" "2.11.0" "sha256-UOJmvsLMvq2PlCvWstIGs3sE8JPTYSsFY13xFhyLIB8=";
 
-  types-aiobotocore-mediaconvert = buildTypesAiobotocorePackage "mediaconvert" "2.9.0" "sha256-HnCyx0mhKwwyKKF1gsMkUbHUSBXJURtZKL2krl3wPyY=";
+  types-aiobotocore-mediaconvert = buildTypesAiobotocorePackage "mediaconvert" "2.11.0" "sha256-a+t4nGBLASBOZfuadcF/VRMpekjOyfiZXl81vE/ZfO0=";
 
-  types-aiobotocore-medialive = buildTypesAiobotocorePackage "medialive" "2.9.0" "sha256-VGqfVzvxAgF12UktAKEEvp7gdwF/Uvs1wF0Fv23/o7U=";
+  types-aiobotocore-medialive = buildTypesAiobotocorePackage "medialive" "2.11.0" "sha256-/+T6CRjrWy7ZDRJrqXB0urITj55s6OeJD8+BM65dMMg=";
 
-  types-aiobotocore-mediapackage = buildTypesAiobotocorePackage "mediapackage" "2.9.0" "sha256-E/5E4rIgle3Ge8h1jXg0EImztJamLWGTx3unCS3i3Wo=";
+  types-aiobotocore-mediapackage = buildTypesAiobotocorePackage "mediapackage" "2.11.0" "sha256-BxuwoFU+HEZDzh+PjmVK8NTqeBDMIThibFN0EMFwfTY=";
 
-  types-aiobotocore-mediapackage-vod = buildTypesAiobotocorePackage "mediapackage-vod" "2.9.0" "sha256-Ly2iBYcmbmfzFhjXwVpnVkLYiYBVnb2cIQLEQ1PHHPs=";
+  types-aiobotocore-mediapackage-vod = buildTypesAiobotocorePackage "mediapackage-vod" "2.11.0" "sha256-I9QfN8izkZyhtx5jlSCCKKUVtEqSXrTeXtmEvmLZU7o=";
 
-  types-aiobotocore-mediapackagev2 = buildTypesAiobotocorePackage "mediapackagev2" "2.9.0" "sha256-j7vEKKolHogemhfN8p3RDdLLUCIm4XK4LbgTN1RjHVc=";
+  types-aiobotocore-mediapackagev2 = buildTypesAiobotocorePackage "mediapackagev2" "2.11.0" "sha256-Z4QKqqeXtw1FihA9bJuUdbfah0bpUkuF80/MmMecgIo=";
 
-  types-aiobotocore-mediastore = buildTypesAiobotocorePackage "mediastore" "2.9.0" "sha256-sijOkeKG3EZU2aMkgVHhfnEVJCw/6LjCj3yn514BxHE=";
+  types-aiobotocore-mediastore = buildTypesAiobotocorePackage "mediastore" "2.11.0" "sha256-qpYMY/8FLidczmsGyurHHZT+gGq69GNmYzZOI1Qo33c=";
 
-  types-aiobotocore-mediastore-data = buildTypesAiobotocorePackage "mediastore-data" "2.9.0" "sha256-YmAiMfw/OPkzyFQCqutBCcPHLgGnTTd64zZA+IQktSQ=";
+  types-aiobotocore-mediastore-data = buildTypesAiobotocorePackage "mediastore-data" "2.11.0" "sha256-b8wIvWFHwQPwoMD3rsuQ00nNPvtGK41zlqTEsnIK4WU=";
 
-  types-aiobotocore-mediatailor = buildTypesAiobotocorePackage "mediatailor" "2.9.0" "sha256-fvf8n0wwbaJQd6T+zag7fLW4DYFs97YA7PS4LjvrK6g=";
+  types-aiobotocore-mediatailor = buildTypesAiobotocorePackage "mediatailor" "2.11.0" "sha256-l15NK1qBbxyTtSVIf6tafpn9ORXP++xIntIvfoJXMmw=";
 
-  types-aiobotocore-medical-imaging = buildTypesAiobotocorePackage "medical-imaging" "2.9.0" "sha256-APuySk3bcst59XgijDYhuphIM2jqUFpjwiI1B9IcVA8=";
+  types-aiobotocore-medical-imaging = buildTypesAiobotocorePackage "medical-imaging" "2.11.0" "sha256-xauRwOuUy/b0NolFHz/ieBts6rNxfJKW7l/kap3XKKo=";
 
-  types-aiobotocore-memorydb = buildTypesAiobotocorePackage "memorydb" "2.9.0" "sha256-k0gaSat1viRrS1vH+xuGxO8zUAY5BucpbKFshKR/Gv0=";
+  types-aiobotocore-memorydb = buildTypesAiobotocorePackage "memorydb" "2.11.0" "sha256-P0kuhYy6Eqfq2E4Zk1bJWIziNSdB42hQk4MnuGMyKNg=";
 
-  types-aiobotocore-meteringmarketplace = buildTypesAiobotocorePackage "meteringmarketplace" "2.9.0" "sha256-MS5ZMEW0iaHhjIgqTXLNNuYEBN9L5djCQupJfayNLx4=";
+  types-aiobotocore-meteringmarketplace = buildTypesAiobotocorePackage "meteringmarketplace" "2.11.0" "sha256-GyF+vCtU16QqjNX2CYCIzFDnOCkjDpMBYNnBx7n5uvg=";
 
-  types-aiobotocore-mgh = buildTypesAiobotocorePackage "mgh" "2.9.0" "sha256-g0uAmEucyImVVykA5g4BBclrd/n8Cl9hm2vkPpL21Vo=";
+  types-aiobotocore-mgh = buildTypesAiobotocorePackage "mgh" "2.11.0" "sha256-eeXyYEsc8+Z50Fi5BPXQ655IWnRb7V2ztUz6Dg4Bfl8=";
 
-  types-aiobotocore-mgn = buildTypesAiobotocorePackage "mgn" "2.9.0" "sha256-xNecFvFbcQGCeE4ImLQYAB+/gv7ThrQC/E0CPoslcdA=";
+  types-aiobotocore-mgn = buildTypesAiobotocorePackage "mgn" "2.11.0" "sha256-DosgEjRG1Yb0T8veRz4MhWtcNN7yeRAKWp5C81LKPJo=";
 
-  types-aiobotocore-migration-hub-refactor-spaces = buildTypesAiobotocorePackage "migration-hub-refactor-spaces" "2.9.0" "sha256-zPm3aK/YaBfrkcnU2l1zN1RMl+hdiqcsBke1zwlxbt4=";
+  types-aiobotocore-migration-hub-refactor-spaces = buildTypesAiobotocorePackage "migration-hub-refactor-spaces" "2.11.0" "sha256-D2U7NuLrjBn1j0NOpITmocfx/YVdqNZoZpLYpfk/5Dg=";
 
-  types-aiobotocore-migrationhub-config = buildTypesAiobotocorePackage "migrationhub-config" "2.9.0" "sha256-XG30N9nTD8JPdIsbRb3A1YgUpzZCFx4CH9Q6i5LOPJM=";
+  types-aiobotocore-migrationhub-config = buildTypesAiobotocorePackage "migrationhub-config" "2.11.0" "sha256-5xOjAO88phwD9WVgZBL9C3x9soNPN/45jtrqn51Fd2E=";
 
-  types-aiobotocore-migrationhuborchestrator = buildTypesAiobotocorePackage "migrationhuborchestrator" "2.9.0" "sha256-umzeHkjT+3mMucBJ8Md4V2RCuv7K51gZ/bJniv00+9Q=";
+  types-aiobotocore-migrationhuborchestrator = buildTypesAiobotocorePackage "migrationhuborchestrator" "2.11.0" "sha256-K5EXiQhluhNWYEnwom9E5I/rmrUv17CknO5ZVY5Dxig=";
 
-  types-aiobotocore-migrationhubstrategy = buildTypesAiobotocorePackage "migrationhubstrategy" "2.9.0" "sha256-AkZAtkQXJ9ygWVerPMbd2qLmeaXpe0tztITkVlSjuzU=";
+  types-aiobotocore-migrationhubstrategy = buildTypesAiobotocorePackage "migrationhubstrategy" "2.11.0" "sha256-uHg3yqEdNpjXLGPOX7JBDrYo/uxwc1M1pdBd46H/gDw=";
 
-  types-aiobotocore-mobile = buildTypesAiobotocorePackage "mobile" "2.9.0" "sha256-KLXvbCcc3OAEC5vBeDeBzaVaK1Kxw0jjhUS/1OdwOb8=";
+  types-aiobotocore-mobile = buildTypesAiobotocorePackage "mobile" "2.11.0" "sha256-e5dVP8R6EsEygjpvPZnfcapj0kqJocsa5aL4olZZrEc=";
 
-  types-aiobotocore-mq = buildTypesAiobotocorePackage "mq" "2.9.0" "sha256-mi26QEURtPYs0r1iCEOpDlcKl1ioESD3GDh6shUQUzw=";
+  types-aiobotocore-mq = buildTypesAiobotocorePackage "mq" "2.11.0" "sha256-dV1OwwWzWauCnF52N4JtpE01HzYPlCxsTBAKgFu7Czc=";
 
-  types-aiobotocore-mturk = buildTypesAiobotocorePackage "mturk" "2.9.0" "sha256-X9E9lrFhfRHqfPZmOj1PtAHMLlz+2elYsUrb10/Wgzc=";
+  types-aiobotocore-mturk = buildTypesAiobotocorePackage "mturk" "2.11.0" "sha256-QLDpZcvPwW1OggflukTSnhgR+l1xTeeepLuwdzztMCk=";
 
-  types-aiobotocore-mwaa = buildTypesAiobotocorePackage "mwaa" "2.9.0" "sha256-l0ObDU6cjOCZOdcs047zx/1yoaZ8KN/3HEjAwYe9VK8=";
+  types-aiobotocore-mwaa = buildTypesAiobotocorePackage "mwaa" "2.11.0" "sha256-x7p23ZzGvdJn01XEGWTSjx+HX/QUicfLiqMGF0ZV8Lg=";
 
-  types-aiobotocore-neptune = buildTypesAiobotocorePackage "neptune" "2.9.0" "sha256-cTEuEXJU/SzRNgxH1XjfFi/r7JCcB2Pru7mKckjBQ7U=";
+  types-aiobotocore-neptune = buildTypesAiobotocorePackage "neptune" "2.11.0" "sha256-Wg12l88mDmZuXgxZ+UFsdBVbbt2I0Nxxfi/2AH3QARA=";
 
-  types-aiobotocore-network-firewall = buildTypesAiobotocorePackage "network-firewall" "2.9.0" "sha256-WtJSxvpB1T9CCaKnjBpsOJSelZtP8ySwpWeYiaJD1MA=";
+  types-aiobotocore-network-firewall = buildTypesAiobotocorePackage "network-firewall" "2.11.0" "sha256-di9s15+U+nsgG9a5WTajYyucCNo86+8Bv2BI7OWGXQE=";
 
-  types-aiobotocore-networkmanager = buildTypesAiobotocorePackage "networkmanager" "2.9.0" "sha256-tDkjd34+PRsaypovhsY9AER8VbnyrrCx/njtxO7CJEk=";
+  types-aiobotocore-networkmanager = buildTypesAiobotocorePackage "networkmanager" "2.11.0" "sha256-2sGnCprlQQ00g4WjSu2N1CuENwyfGt+P/i5NfKd4Feg=";
 
-  types-aiobotocore-nimble = buildTypesAiobotocorePackage "nimble" "2.9.0" "sha256-JuAsL2FAqZL8n8ODVpmQo38YJKBKzHT2VRAWVmPgvzI=";
+  types-aiobotocore-nimble = buildTypesAiobotocorePackage "nimble" "2.11.0" "sha256-d4cjbqZRiK3VpLY7jxureug+nBtCTVQ2OUjXKQLufZw=";
 
-  types-aiobotocore-oam = buildTypesAiobotocorePackage "oam" "2.9.0" "sha256-GQVHH8NbG8Uzd0dPc5MaNpDIPGct/07JsokCwi3JfxY=";
+  types-aiobotocore-oam = buildTypesAiobotocorePackage "oam" "2.11.0" "sha256-lTKQ1xNAy9AqyPoRuk3ThwlMd4xlFjtm3jAcZjLmKCs=";
 
-  types-aiobotocore-omics = buildTypesAiobotocorePackage "omics" "2.9.0" "sha256-Aq/0h7leT1KU+nQZWjg+KNhgV3osRREQv+QTMpYTZek=";
+  types-aiobotocore-omics = buildTypesAiobotocorePackage "omics" "2.11.0" "sha256-ZB3c29FJiopBwP3NcMGErMMJj45IcQ1KnDFWXePaI2Q=";
 
-  types-aiobotocore-opensearch = buildTypesAiobotocorePackage "opensearch" "2.9.0" "sha256-lHZbMOVxTMolfPUCikFyK2REkgjnCMY49P5U4W4g/Iw=";
+  types-aiobotocore-opensearch = buildTypesAiobotocorePackage "opensearch" "2.11.0" "sha256-hNs5/R/dSV1GaNj83OMIYRiqmEsTHQ1lVjGqFqvRPBo=";
 
-  types-aiobotocore-opensearchserverless = buildTypesAiobotocorePackage "opensearchserverless" "2.9.0" "sha256-COWGlK+XlrEtq5Xqg7x+hrFO7HU7uCLEOXDE2p9U3aI=";
+  types-aiobotocore-opensearchserverless = buildTypesAiobotocorePackage "opensearchserverless" "2.11.0" "sha256-aum5y7noTMkaTc7Diz2lzlkqLJaN7schCQAmau19vAc=";
 
-  types-aiobotocore-opsworks = buildTypesAiobotocorePackage "opsworks" "2.9.0" "sha256-8W8uYZ/HqFcFgJubslCwIp1CpbrUNza3Ef0Pk7V76zg=";
+  types-aiobotocore-opsworks = buildTypesAiobotocorePackage "opsworks" "2.11.0" "sha256-QcLO5rG7Q+55XRszr2vNJsSkXamYvOEe3BTnsu8adzc=";
 
-  types-aiobotocore-opsworkscm = buildTypesAiobotocorePackage "opsworkscm" "2.9.0" "sha256-b5K01pxx7Mc5ykpssw/bxY7/PBSSa7a/nIcbcd3oz7w=";
+  types-aiobotocore-opsworkscm = buildTypesAiobotocorePackage "opsworkscm" "2.11.0" "sha256-t2K3hypn4E1sVoQn8JAIUuycQ2lizBXokpz4N+2XgH8=";
 
-  types-aiobotocore-organizations = buildTypesAiobotocorePackage "organizations" "2.9.0" "sha256-H92GHj8b2aeN2REWpG1EvyLv2HWjFZxg2DgQXH9BbPg=";
+  types-aiobotocore-organizations = buildTypesAiobotocorePackage "organizations" "2.11.0" "sha256-fGyv3mf9POvGFB+JpHldbxMfi1kUiS2YNkpVabgrDIw=";
 
-  types-aiobotocore-osis = buildTypesAiobotocorePackage "osis" "2.9.0" "sha256-0Dxf0aa76MBWX5TSdSWoFemHJ7wKqzj+vPDgZ9yMQTY=";
+  types-aiobotocore-osis = buildTypesAiobotocorePackage "osis" "2.11.0" "sha256-c6XSyeAa80f5TnoyMvsAmqESpqaq+y94sfRXF6cFpt8=";
 
-  types-aiobotocore-outposts = buildTypesAiobotocorePackage "outposts" "2.9.0" "sha256-62W37n830OMhhCTsEP1r5mrCY8MZZM+OPgvZ/ox4S70=";
+  types-aiobotocore-outposts = buildTypesAiobotocorePackage "outposts" "2.11.0" "sha256-cQNQz1xgCbLiKWR1i1sgDmc1unP+7IoF1c6ZwH1G7SI=";
 
-  types-aiobotocore-panorama = buildTypesAiobotocorePackage "panorama" "2.9.0" "sha256-OBQI+qRwV3nB29WFuIPxXIc2fV5RaMaaCiJtYTKp28A=";
+  types-aiobotocore-panorama = buildTypesAiobotocorePackage "panorama" "2.11.0" "sha256-h4R5ErD7YDqOYLxRgNioB4dhL9b+OwiA38AM3EoXapE=";
 
-  types-aiobotocore-payment-cryptography = buildTypesAiobotocorePackage "payment-cryptography" "2.9.0" "sha256-3qawANwA/wOWqNl3Q6RKS2CLb1pw8K6dbX4jW2MAHEc=";
+  types-aiobotocore-payment-cryptography = buildTypesAiobotocorePackage "payment-cryptography" "2.11.0" "sha256-VgJWOfWEdZI+9udvORUBl+cbAlBAb2YW3+rqyqOIGdk=";
 
-  types-aiobotocore-payment-cryptography-data = buildTypesAiobotocorePackage "payment-cryptography-data" "2.9.0" "sha256-adLvjvZNRcNM07nvr3Frh5a2X7wgOuxdZ21iLnw9crU=";
+  types-aiobotocore-payment-cryptography-data = buildTypesAiobotocorePackage "payment-cryptography-data" "2.11.0" "sha256-6S/4awBPSegC+GeEysxFmne+5K4I6UlQdnnK6q/7kBE=";
 
-  types-aiobotocore-personalize = buildTypesAiobotocorePackage "personalize" "2.9.0" "sha256-apNRfsAdZHuqs3SMUgnuZun8GbCog/5s7MSdyVIHz5Y=";
+  types-aiobotocore-personalize = buildTypesAiobotocorePackage "personalize" "2.11.0" "sha256-k78zJdv3w79v1ocoem8d1VuBKTga7iPpPYUw0QyjHkU=";
 
-  types-aiobotocore-personalize-events = buildTypesAiobotocorePackage "personalize-events" "2.9.0" "sha256-sxcApDREahAvxXswhv7iZkrYXcjdOGa//SFSvtlHMJ0=";
+  types-aiobotocore-personalize-events = buildTypesAiobotocorePackage "personalize-events" "2.11.0" "sha256-klAYYRH+DUBzs/JISvYAVNXedeje1yhyd80FASAOwzk=";
 
-  types-aiobotocore-personalize-runtime = buildTypesAiobotocorePackage "personalize-runtime" "2.9.0" "sha256-eurE8IY3eyuUjj3rhT59xu0KHRnbJy/OL05XKBov0Y8=";
+  types-aiobotocore-personalize-runtime = buildTypesAiobotocorePackage "personalize-runtime" "2.11.0" "sha256-HpVZnkJvQgK9Mz+J9ZmJfDGoj9REpZqFjJBkfkvI3Ww=";
 
-  types-aiobotocore-pi = buildTypesAiobotocorePackage "pi" "2.9.0" "sha256-bWg/J1JyM4pkKalsMqUMPMYJ+T+SSzR4P0+VJTSodWM=";
+  types-aiobotocore-pi = buildTypesAiobotocorePackage "pi" "2.11.0" "sha256-icSP1n2t7qcZAt0EK6/WK24T/JJfNzFzxmX3R8KMqYc=";
 
-  types-aiobotocore-pinpoint = buildTypesAiobotocorePackage "pinpoint" "2.9.0" "sha256-jKAsxMwQCI/DOY8HiRmmXdVqWAoVD4ULdwSoU18kmJs=";
+  types-aiobotocore-pinpoint = buildTypesAiobotocorePackage "pinpoint" "2.11.0" "sha256-UNBJarFF4t5NjLKLqdYbr7d+LPqanzZz5HtO0zr/hzQ=";
 
-  types-aiobotocore-pinpoint-email = buildTypesAiobotocorePackage "pinpoint-email" "2.9.0" "sha256-JgTZiFxdBNTAHT7X3LdTTEvI5Z+MjF6JcZ8zbjZxsSA=";
+  types-aiobotocore-pinpoint-email = buildTypesAiobotocorePackage "pinpoint-email" "2.11.0" "sha256-bxmMClb6G0+/Sc1c8YrhmPpTlfM26KiFxfIiRXm3zwY=";
 
-  types-aiobotocore-pinpoint-sms-voice = buildTypesAiobotocorePackage "pinpoint-sms-voice" "2.9.0" "sha256-HGsiBhxwTVKUFQgGlx17n0/HUEL7/FIHgxKxFg4Vsc8=";
+  types-aiobotocore-pinpoint-sms-voice = buildTypesAiobotocorePackage "pinpoint-sms-voice" "2.11.0" "sha256-0DafiqdMAXbuxVXg8vz3uHuiiDANvOLAMnClSt6yglY=";
 
-  types-aiobotocore-pinpoint-sms-voice-v2 = buildTypesAiobotocorePackage "pinpoint-sms-voice-v2" "2.9.0" "sha256-fXszL3FutdKRAkh3gWvu5xiGlvy3Nn/r0MCKYW5UAYg=";
+  types-aiobotocore-pinpoint-sms-voice-v2 = buildTypesAiobotocorePackage "pinpoint-sms-voice-v2" "2.11.0" "sha256-QRtJLMtoD7m7p+HPYzpPsaFapejDGjHPrZDFTbfAATc=";
 
-  types-aiobotocore-pipes = buildTypesAiobotocorePackage "pipes" "2.9.0" "sha256-Qs9ndgWnw7yUvKJcI36i8c1imwWvX3isJocEYjj93Ls=";
+  types-aiobotocore-pipes = buildTypesAiobotocorePackage "pipes" "2.11.0" "sha256-S774aDCAbVL40vFcerr3IrO8jejU3oM5ECTO62PvK+8=";
 
-  types-aiobotocore-polly = buildTypesAiobotocorePackage "polly" "2.9.0" "sha256-9PNsD5t7iZh+Bcnbqbq1RV7IMbDT/IptteaUsJB+AKs=";
+  types-aiobotocore-polly = buildTypesAiobotocorePackage "polly" "2.11.0" "sha256-h0MgZfxNlzEnqgN1AgX2mEbN45O+RToVEyEaM4SUrnA=";
 
-  types-aiobotocore-pricing = buildTypesAiobotocorePackage "pricing" "2.9.0" "sha256-zYgDgmqCshI/LbmZYO+X9+sq1Bi3xlBDugnqVfewu1Q=";
+  types-aiobotocore-pricing = buildTypesAiobotocorePackage "pricing" "2.11.0" "sha256-EUXjUigF6Ntifj0QGvEo/i99lZlIujbxNAPAJTCJi40=";
 
-  types-aiobotocore-privatenetworks = buildTypesAiobotocorePackage "privatenetworks" "2.9.0" "sha256-QX/fr036L4eVPdUnUexEDJc++oIx8WJRwI1YmnFuYqc=";
+  types-aiobotocore-privatenetworks = buildTypesAiobotocorePackage "privatenetworks" "2.11.0" "sha256-mnAD4olYuQG1hIurWbfWj8yVZipellgH9werYLZCVHc=";
 
-  types-aiobotocore-proton = buildTypesAiobotocorePackage "proton" "2.9.0" "sha256-zx4Zt8J/xgql2vu/tZgwmFLWq+2bhhq2u6q08L5nkBY=";
+  types-aiobotocore-proton = buildTypesAiobotocorePackage "proton" "2.11.0" "sha256-MlK0fPBPZzHheJ/oaL4ficKVUhQnm+ERN3G7fuqmG6s=";
 
-  types-aiobotocore-qldb = buildTypesAiobotocorePackage "qldb" "2.9.0" "sha256-0Ob22rt0ZfEuoez9knN5BegTWTI+T0cwH96rkKHWVWg=";
+  types-aiobotocore-qldb = buildTypesAiobotocorePackage "qldb" "2.11.0" "sha256-DqdxwO+VCX4eqcecT3kQSaUZa0XWJHICKeqE3CyuPOE=";
 
-  types-aiobotocore-qldb-session = buildTypesAiobotocorePackage "qldb-session" "2.9.0" "sha256-TVm24eYojgTrdWzFKgL2pkjekx9Bd8cqTKVGybs+2Bw=";
+  types-aiobotocore-qldb-session = buildTypesAiobotocorePackage "qldb-session" "2.11.0" "sha256-81KbDwWUcjY7frYXgpH2o+U8mi8fMxP1X0VzFUh7o3o=";
 
-  types-aiobotocore-quicksight = buildTypesAiobotocorePackage "quicksight" "2.9.0" "sha256-RTV8LwRM/lNYFCx4L2PnJhXHCjeDHKsMmHATcUOd2R8=";
+  types-aiobotocore-quicksight = buildTypesAiobotocorePackage "quicksight" "2.11.0" "sha256-riJj0umKScbQ9MCV88fNeHiuLcigzJqtWRgIhcuI3Ww=";
 
-  types-aiobotocore-ram = buildTypesAiobotocorePackage "ram" "2.9.0" "sha256-twdBnpMqPTyb+tVD7Qa37C29hds3UM7Y6/63qr4IBxM=";
+  types-aiobotocore-ram = buildTypesAiobotocorePackage "ram" "2.11.0" "sha256-taaVPQtZfF1L9bCSL0ppyGy8YZE4pvJA2hK0YAcE2Oc=";
 
-  types-aiobotocore-rbin = buildTypesAiobotocorePackage "rbin" "2.9.0" "sha256-FxYiwMon/E3g5uphHutjXsZ4gvhyoy4BE7gfX9v9KOY=";
+  types-aiobotocore-rbin = buildTypesAiobotocorePackage "rbin" "2.11.0" "sha256-nm1s53U2rmuw4Ko21DOW11neknjfBAyq4S0dBzJQRPc=";
 
-  types-aiobotocore-rds = buildTypesAiobotocorePackage "rds" "2.9.0" "sha256-4UwgKkbnHgSrDIjVgp729mt1LWtTTmr4Vqk+MGkyHDg=";
+  types-aiobotocore-rds = buildTypesAiobotocorePackage "rds" "2.11.0" "sha256-UlpkN8g+rBmf9hu0MrWTaH4S1SaNQK6mFeBw65hF4Nk=";
 
-  types-aiobotocore-rds-data = buildTypesAiobotocorePackage "rds-data" "2.9.0" "sha256-1bOOeQqg9AdlHIuznEUF2Q8+1iN4ZwvFfRMnzAew9xQ=";
+  types-aiobotocore-rds-data = buildTypesAiobotocorePackage "rds-data" "2.11.0" "sha256-rxdvCAEeoUqduN/56yMNxZnfadedkTaPpg7+XJhcHGc=";
 
-  types-aiobotocore-redshift = buildTypesAiobotocorePackage "redshift" "2.9.0" "sha256-uUhg8pu/tPO5ufx3oAA803ddLMIJb8ZRFqYYY7asprU=";
+  types-aiobotocore-redshift = buildTypesAiobotocorePackage "redshift" "2.11.0" "sha256-AHUOMZn6kUKnY9BAteySrzFr8KC8kE3nolHEZ+gn+Tk=";
 
-  types-aiobotocore-redshift-data = buildTypesAiobotocorePackage "redshift-data" "2.9.0" "sha256-HtJan10OMZZP0DTFw4b4iadl+ufHbbCGkypk6gTHevA=";
+  types-aiobotocore-redshift-data = buildTypesAiobotocorePackage "redshift-data" "2.11.0" "sha256-YsFxhXd2xxW4vT2zDCHRCzFOeINKL7JypENiTcoAJ+I=";
 
-  types-aiobotocore-redshift-serverless = buildTypesAiobotocorePackage "redshift-serverless" "2.9.0" "sha256-TL4NDdKm50bgUZV+bkxqRY1P5C48tT7+E4wiNMgMLG4=";
+  types-aiobotocore-redshift-serverless = buildTypesAiobotocorePackage "redshift-serverless" "2.11.0" "sha256-IuaCCYxuLrrg6JPQQD98EiW/VSxs9I0Aidiv+UDp/ow=";
 
-  types-aiobotocore-rekognition = buildTypesAiobotocorePackage "rekognition" "2.9.0" "sha256-zAYEPrQ5SexvufL2aSagLLWx2VPFURLRu+YwL/m4cWA=";
+  types-aiobotocore-rekognition = buildTypesAiobotocorePackage "rekognition" "2.11.0" "sha256-9hVBbXOYT+qn6JwUJyJFIsMemvcQ7DyxxlbBKxtTyIU=";
 
-  types-aiobotocore-resiliencehub = buildTypesAiobotocorePackage "resiliencehub" "2.9.0" "sha256-3C1PcG2DzbRT3Yrloipng73tZKdcGiYniU5n095Lodc=";
+  types-aiobotocore-resiliencehub = buildTypesAiobotocorePackage "resiliencehub" "2.11.0" "sha256-rshRL2vH9hHEeYbWbFlnDkotiQezo9kLIjnK+Kioocs=";
 
-  types-aiobotocore-resource-explorer-2 = buildTypesAiobotocorePackage "resource-explorer-2" "2.9.0" "sha256-UzzHOnTX2tLVEY+xJVrDu4I8/RP8/rx2rNZcINs4DOM=";
+  types-aiobotocore-resource-explorer-2 = buildTypesAiobotocorePackage "resource-explorer-2" "2.11.0" "sha256-yyoFe/7AqXu9H1hZs6yfTGt+d+peDu1GQEWQ6+G2gfE=";
 
-  types-aiobotocore-resource-groups = buildTypesAiobotocorePackage "resource-groups" "2.9.0" "sha256-w7MJhBAtOsbZqZQlJdFiP4q8qpk7nc1YEXCgbw3Fd20=";
+  types-aiobotocore-resource-groups = buildTypesAiobotocorePackage "resource-groups" "2.11.0" "sha256-v20pt5uv3Hj7xek3Xm8X2GLkRk+vRZpqZSENLOYx1hY=";
 
-  types-aiobotocore-resourcegroupstaggingapi = buildTypesAiobotocorePackage "resourcegroupstaggingapi" "2.9.0" "sha256-dkRibrcQpSnU4ChhRSibjQbosbOy6wd42P91MVrD7+o=";
+  types-aiobotocore-resourcegroupstaggingapi = buildTypesAiobotocorePackage "resourcegroupstaggingapi" "2.11.0" "sha256-qCVYQmM2F2uYY7+LbyrUGaFFf0/s6wyYilwrHckyPag=";
 
-  types-aiobotocore-robomaker = buildTypesAiobotocorePackage "robomaker" "2.9.0" "sha256-n5zLgWXRlVz+dXVOeEg4ZVq2mCiBDB/4pJfHeFF6Z5Q=";
+  types-aiobotocore-robomaker = buildTypesAiobotocorePackage "robomaker" "2.11.0" "sha256-2s48UBjDJqtQ1iBr2yV6rvqoGNsLBpNaEP1WNsp+qPg=";
 
-  types-aiobotocore-rolesanywhere = buildTypesAiobotocorePackage "rolesanywhere" "2.9.0" "sha256-HNjHfM7Oi4HKmYL5Sgwqjg2hWyKmLXYq1nDwhmVN6cs=";
+  types-aiobotocore-rolesanywhere = buildTypesAiobotocorePackage "rolesanywhere" "2.11.0" "sha256-ci+uWwMNglRm2inRUzGtX8F27Bv2KaRZNNjHxMT+gnk=";
 
-  types-aiobotocore-route53 = buildTypesAiobotocorePackage "route53" "2.9.0" "sha256-d54iOVNPFrwS9Cw/uDZO7CCIsj2QzeKkgKy+cWehfcQ=";
+  types-aiobotocore-route53 = buildTypesAiobotocorePackage "route53" "2.11.0" "sha256-e4jmows4W8JjUbBr0LhteSRp/V8LBk/em2SYWFTHhfk=";
 
-  types-aiobotocore-route53-recovery-cluster = buildTypesAiobotocorePackage "route53-recovery-cluster" "2.9.0" "sha256-MLPzjWP6xBrczesskwbvKVbjFT8ZC8MV7jgkR/AAxu0=";
+  types-aiobotocore-route53-recovery-cluster = buildTypesAiobotocorePackage "route53-recovery-cluster" "2.11.0" "sha256-mK5CXukLRr3978LJBAHn/KWOxiIf8zpBZ1ETiXIC/9Y=";
 
-  types-aiobotocore-route53-recovery-control-config = buildTypesAiobotocorePackage "route53-recovery-control-config" "2.9.0" "sha256-nl1PsCKbjiizg+oPVkYvkb1iuN/egoBQp6EN1BWcrQw=";
+  types-aiobotocore-route53-recovery-control-config = buildTypesAiobotocorePackage "route53-recovery-control-config" "2.11.0" "sha256-ISNRJ5/A+/QzuIqWoRQEnPeld7INZGvTcuqfQWK1FJY=";
 
-  types-aiobotocore-route53-recovery-readiness = buildTypesAiobotocorePackage "route53-recovery-readiness" "2.9.0" "sha256-cFWmcjptrX/infPksVRugvHdnKFU0SG/90OU+HPl5ZY=";
+  types-aiobotocore-route53-recovery-readiness = buildTypesAiobotocorePackage "route53-recovery-readiness" "2.11.0" "sha256-TwXt40LBCATVrunDjm17phBbcpMHU8HkWQ7/avBozvo=";
 
-  types-aiobotocore-route53domains = buildTypesAiobotocorePackage "route53domains" "2.9.0" "sha256-1LucO4/jgl1YpMlbYuIJXrhxkLx6tdKTMaoMAWTDybM=";
+  types-aiobotocore-route53domains = buildTypesAiobotocorePackage "route53domains" "2.11.0" "sha256-kxLh2DKFccRxmD2uHTlrf62qasZ/FuRQOLjhzTa7nX4=";
 
-  types-aiobotocore-route53resolver = buildTypesAiobotocorePackage "route53resolver" "2.9.0" "sha256-s8DoTrQEjGpqwwYlwEkoCNopDow+M7rbQZCqU2aBdZ4=";
+  types-aiobotocore-route53resolver = buildTypesAiobotocorePackage "route53resolver" "2.11.0" "sha256-jCqxuCWdgTbV+ul+vtauiWaA/cjiIpbjlYRrfaV6zQY=";
 
-  types-aiobotocore-rum = buildTypesAiobotocorePackage "rum" "2.9.0" "sha256-dRncp/7Z8FeJ/sBqHFHO7z4XZKgWeOuRPGzXf4djzg4=";
+  types-aiobotocore-rum = buildTypesAiobotocorePackage "rum" "2.11.0" "sha256-/jG0DPAYhycTN0VKAO2i2EO4htRnLMbUHwLxND5SiDw=";
 
-  types-aiobotocore-s3 = buildTypesAiobotocorePackage "s3" "2.9.0" "sha256-KwNH+X1Kl61L+iuK+XtZWGhTl71RpHyJhCfB+Hw1IyU=";
+  types-aiobotocore-s3 = buildTypesAiobotocorePackage "s3" "2.11.0" "sha256-287Znbh373X2EgFilTvFjQMYI8ol+EHmMS0krMsCMIo=";
 
-  types-aiobotocore-s3control = buildTypesAiobotocorePackage "s3control" "2.9.0" "sha256-/earpJzKe0zF+fjxUa/Z6JKmxxWfOlMngxlia6aTFxs=";
+  types-aiobotocore-s3control = buildTypesAiobotocorePackage "s3control" "2.11.0" "sha256-X//a8jbgKvgYb10yLsha5Ekw7JfBZ4ZJDpZtdj8DQy4=";
 
-  types-aiobotocore-s3outposts = buildTypesAiobotocorePackage "s3outposts" "2.9.0" "sha256-lLp/gUu5jrOJ6ZXQ4qKVfREsN4WYl/h9zgfgTUtYiiQ=";
+  types-aiobotocore-s3outposts = buildTypesAiobotocorePackage "s3outposts" "2.11.0" "sha256-SZO4Xo3+xZjtHGKCWMgcV9VgRkFsLEEqzWq3uKul340=";
 
-  types-aiobotocore-sagemaker = buildTypesAiobotocorePackage "sagemaker" "2.9.0" "sha256-kAunITSH13bGe6XWTlG/QSelzDFnINih/o/zuFR34us=";
+  types-aiobotocore-sagemaker = buildTypesAiobotocorePackage "sagemaker" "2.11.0" "sha256-fOqlUtOyJR5EpBc24tJwRJakp8OpnoxIfQgdEFlFNjw=";
 
-  types-aiobotocore-sagemaker-a2i-runtime = buildTypesAiobotocorePackage "sagemaker-a2i-runtime" "2.9.0" "sha256-U9cVOg2CkVclCqSqr4okJJSC0ZmGIH390KTNKMJUBhw=";
+  types-aiobotocore-sagemaker-a2i-runtime = buildTypesAiobotocorePackage "sagemaker-a2i-runtime" "2.11.0" "sha256-SCfymFM/imhxod2yTR4wWrm+bNQ4Ey+3GhXND1pigwk=";
 
-  types-aiobotocore-sagemaker-edge = buildTypesAiobotocorePackage "sagemaker-edge" "2.9.0" "sha256-Oe78n3fu201OmZpPb4cjhLY1x1KTT5MYLXdy9M4KkOE=";
+  types-aiobotocore-sagemaker-edge = buildTypesAiobotocorePackage "sagemaker-edge" "2.11.0" "sha256-vZd4RpmMnviYbcEwAff0DmMFsIcHiYV7to1K4bgP8D8=";
 
-  types-aiobotocore-sagemaker-featurestore-runtime = buildTypesAiobotocorePackage "sagemaker-featurestore-runtime" "2.9.0" "sha256-xmRI5TMR99TROVf1CPif60NeLhCqNpb6Lt662fGK+WY=";
+  types-aiobotocore-sagemaker-featurestore-runtime = buildTypesAiobotocorePackage "sagemaker-featurestore-runtime" "2.11.0" "sha256-+4g0HkfkBA2Vi7VHUJEWRyShCVool+21bEpn/t9QNUo=";
 
-  types-aiobotocore-sagemaker-geospatial = buildTypesAiobotocorePackage "sagemaker-geospatial" "2.9.0" "sha256-OPIq8UKHJNDe7lMbHkHt4z57k3L7y6ys0a9TSJiiFIg=";
+  types-aiobotocore-sagemaker-geospatial = buildTypesAiobotocorePackage "sagemaker-geospatial" "2.11.0" "sha256-SP4nUssP7jYS/huBwNf9vVcBKBKSH4X0jJEjWXNC3Fc=";
 
-  types-aiobotocore-sagemaker-metrics = buildTypesAiobotocorePackage "sagemaker-metrics" "2.9.0" "sha256-oyBG62dmdxbZaIAIb5cXq+qWYD/yDPHvHu6Z+wOg9Jc=";
+  types-aiobotocore-sagemaker-metrics = buildTypesAiobotocorePackage "sagemaker-metrics" "2.11.0" "sha256-e/NlinVQRHRIEqdN4MeK9yD2WkBMgIZazrGvfsXLiWk=";
 
-  types-aiobotocore-sagemaker-runtime = buildTypesAiobotocorePackage "sagemaker-runtime" "2.9.0" "sha256-KDkf3G/inaFjLe0jfgdUQ31ugbj8mmgYzJKvb1W15lA=";
+  types-aiobotocore-sagemaker-runtime = buildTypesAiobotocorePackage "sagemaker-runtime" "2.11.0" "sha256-a1yu68zlG6N+ezicX6aLH99A2kYLNCPV1cXMYEeI2ok=";
 
-  types-aiobotocore-savingsplans = buildTypesAiobotocorePackage "savingsplans" "2.9.0" "sha256-f4DbYsiuX1xrLMZ9foOyJC5NhVtMym3mnj8RD+MvlIo=";
+  types-aiobotocore-savingsplans = buildTypesAiobotocorePackage "savingsplans" "2.11.0" "sha256-Q3t3g2FiolXVGGlCAodY1dweI9WlNaYESvFLB7vzyCk=";
 
-  types-aiobotocore-scheduler = buildTypesAiobotocorePackage "scheduler" "2.9.0" "sha256-HuXw6MBuBzaDpf6HfR++F8LC+5WgpThF+BQz2nO1LHQ=";
+  types-aiobotocore-scheduler = buildTypesAiobotocorePackage "scheduler" "2.11.0" "sha256-bLwQkmNKbuqUyKh8QlVDsDfx1pcgC78K7B2vumrJZNc=";
 
-  types-aiobotocore-schemas = buildTypesAiobotocorePackage "schemas" "2.9.0" "sha256-du/fn168xn0Nzox8vbEOJXnIcRBWatgihJZRGTzy4pE=";
+  types-aiobotocore-schemas = buildTypesAiobotocorePackage "schemas" "2.11.0" "sha256-giit/TrRCMiaT/qJzyvKFS8dGnJh9VrTw4CRv76rXVo=";
 
-  types-aiobotocore-sdb = buildTypesAiobotocorePackage "sdb" "2.9.0" "sha256-zgWv9fUOlUWDeBSZwHLG1Oc8CRY7uK/Hu3EJAJsVcEQ=";
+  types-aiobotocore-sdb = buildTypesAiobotocorePackage "sdb" "2.11.0" "sha256-yZw/D6C+Cj/du6j2ii2muxXOp8lrpXfPgZp0xit7uyM=";
 
-  types-aiobotocore-secretsmanager = buildTypesAiobotocorePackage "secretsmanager" "2.9.0" "sha256-fdnSUH7SuYoKqWohGCmJRbKVJwkNgalBIdL+ZSA95uY=";
+  types-aiobotocore-secretsmanager = buildTypesAiobotocorePackage "secretsmanager" "2.11.0" "sha256-5nj1I2OszOyuSvZtEnfrMlPBMmTrI4S5Qf2PK2aSesQ=";
 
-  types-aiobotocore-securityhub = buildTypesAiobotocorePackage "securityhub" "2.9.0" "sha256-i02XTjgEgzXFnsHqgReWb/p+OhWdXA90pduejrStXug=";
+  types-aiobotocore-securityhub = buildTypesAiobotocorePackage "securityhub" "2.11.0" "sha256-UMEnin0Gc9CRacjlG1e3h3IWJCrp4EsewTzk1GFMjck=";
 
-  types-aiobotocore-securitylake = buildTypesAiobotocorePackage "securitylake" "2.9.0" "sha256-tZq7D3UPg/G05ZHl0btwePfrKz69vfo4Kpwf5haepv4=";
+  types-aiobotocore-securitylake = buildTypesAiobotocorePackage "securitylake" "2.11.0" "sha256-vhu5PJX3NsaG2BXy39y930Bf+70zV7EfZpqlCbtZVhk=";
 
-  types-aiobotocore-serverlessrepo = buildTypesAiobotocorePackage "serverlessrepo" "2.9.0" "sha256-6Z4f/NRtoFtdiFFcVc+3a908H8JcRKNzcImAVPk4quo=";
+  types-aiobotocore-serverlessrepo = buildTypesAiobotocorePackage "serverlessrepo" "2.11.0" "sha256-AEb2dQnJ+QN0FAbDtjYfAwb7ZAeVqod+NIVE7iBVvBI=";
 
-  types-aiobotocore-service-quotas = buildTypesAiobotocorePackage "service-quotas" "2.9.0" "sha256-U3S8VoxZD2YIW9yHUU+jk9QqG6gI+wiJBaeXEx964p0=";
+  types-aiobotocore-service-quotas = buildTypesAiobotocorePackage "service-quotas" "2.11.0" "sha256-tVSi4HLeb/QiKs3uLfp19Kzuwi7BspYOh8W8xa/yjVM=";
 
-  types-aiobotocore-servicecatalog = buildTypesAiobotocorePackage "servicecatalog" "2.9.0" "sha256-xYV3AUOEcU1fuzntpgoNT2gFykL2CmvYi7AnVoTrtjA=";
+  types-aiobotocore-servicecatalog = buildTypesAiobotocorePackage "servicecatalog" "2.11.0" "sha256-01wTzG20lsCat32U3ewxYNUxVbHEJzLAxnodJRIqGBI=";
 
-  types-aiobotocore-servicecatalog-appregistry = buildTypesAiobotocorePackage "servicecatalog-appregistry" "2.9.0" "sha256-1fYP1lZcVAdtOjmN4hfLJbZ1526Gaf7xqxj0xmqZimA=";
+  types-aiobotocore-servicecatalog-appregistry = buildTypesAiobotocorePackage "servicecatalog-appregistry" "2.11.0" "sha256-kJ05BDT2EJBRNmWbm9PUY0yh5H/PHonvIvQQyHg6Nak=";
 
-  types-aiobotocore-servicediscovery = buildTypesAiobotocorePackage "servicediscovery" "2.9.0" "sha256-SPAmhlm5j8zhyJeERoHo4oaJ73PSdTpQWbseY21jJw8=";
+  types-aiobotocore-servicediscovery = buildTypesAiobotocorePackage "servicediscovery" "2.11.0" "sha256-a/BkGzBQLhgQmPdXQx90VSxLgrr7wVitI0zeefC14vA=";
 
-  types-aiobotocore-ses = buildTypesAiobotocorePackage "ses" "2.9.0" "sha256-GM3RaxZuprL1PBlTbk3UOO9M5pu1nQekIcUzrCbSXC8=";
+  types-aiobotocore-ses = buildTypesAiobotocorePackage "ses" "2.11.0" "sha256-vsEfls5Rf8vWb96jB1WTcAwAXP3GDIkmNwL+dEhBlJ8=";
 
-  types-aiobotocore-sesv2 = buildTypesAiobotocorePackage "sesv2" "2.9.0" "sha256-bn0DLwQuzoyrZ8odMQcDfFApt/GTnPNdeT693yF/k3s=";
+  types-aiobotocore-sesv2 = buildTypesAiobotocorePackage "sesv2" "2.11.0" "sha256-ZE1VA2mExcHfHwJ9pIJRlXeV0NDH5Lkvm9yOS+nDFoM=";
 
-  types-aiobotocore-shield = buildTypesAiobotocorePackage "shield" "2.9.0" "sha256-g2WTDLMdIrSJLQj87lHT9aO54Nuo8IVSzqkpuQqqJBE=";
+  types-aiobotocore-shield = buildTypesAiobotocorePackage "shield" "2.11.0" "sha256-MzlJ9CeaHiwEKd+miQO4TdIr9JG/u1XW4P1l/kGVgkI=";
 
-  types-aiobotocore-signer = buildTypesAiobotocorePackage "signer" "2.9.0" "sha256-4izCsd6sv53hqImdd5eYJmBg8zSvHkQ6rcqOLfKJF44=";
+  types-aiobotocore-signer = buildTypesAiobotocorePackage "signer" "2.11.0" "sha256-k6rcuFumGuas7qOMa5vhp6rfxK+J5wWq47Gwfo54p30=";
 
-  types-aiobotocore-simspaceweaver = buildTypesAiobotocorePackage "simspaceweaver" "2.9.0" "sha256-3cJaY6BwMo1G6BguoEYjbUHNb0OkWOIcyh8kxN06t3E=";
+  types-aiobotocore-simspaceweaver = buildTypesAiobotocorePackage "simspaceweaver" "2.11.0" "sha256-l9jFLw3A6yIQ8JsRJO66CUetSeitYx3hE1fTTAPCKh0=";
 
-  types-aiobotocore-sms = buildTypesAiobotocorePackage "sms" "2.9.0" "sha256-PsLWqcPoKDgofkcIeC1P9DKzFVdkhq9A9IjA7uavoIk=";
+  types-aiobotocore-sms = buildTypesAiobotocorePackage "sms" "2.11.0" "sha256-sUkTUxkwSClz09NZ3TxkKyLUWENJt1L0on4Nva2ZQ7U=";
 
-  types-aiobotocore-sms-voice = buildTypesAiobotocorePackage "sms-voice" "2.9.0" "sha256-+AyzDu7C0wnniV5dphcvlswRDjktAJS9JPc52Jy5Mqk=";
+  types-aiobotocore-sms-voice = buildTypesAiobotocorePackage "sms-voice" "2.11.0" "sha256-EMZGeA34sNVNqv3AJSabyz1HoMbic617CQPp8O2droY=";
 
-  types-aiobotocore-snow-device-management = buildTypesAiobotocorePackage "snow-device-management" "2.9.0" "sha256-boSrX4EczJXDyxYFDFcn4uaTJ1GJfWHV47Mt0iWUYXY=";
+  types-aiobotocore-snow-device-management = buildTypesAiobotocorePackage "snow-device-management" "2.11.0" "sha256-651JlGJYbt7VAdIkk57nxH0PWvi1voTruVzz8tC7rbc=";
 
-  types-aiobotocore-snowball = buildTypesAiobotocorePackage "snowball" "2.9.0" "sha256-5ofD5IlGtmtd4k0Tja/qXOn2cWddeqMSvorIAv0mfIE=";
+  types-aiobotocore-snowball = buildTypesAiobotocorePackage "snowball" "2.11.0" "sha256-Np8fPiIjW5F+co1s20R3hDZS/fb8U0pYoKNC1hzEQrU=";
 
-  types-aiobotocore-sns = buildTypesAiobotocorePackage "sns" "2.9.0" "sha256-6yF9zXzRUyi+EvmIeEt1sjsyOkwoT0bKdr3Dtz4q9oE=";
+  types-aiobotocore-sns = buildTypesAiobotocorePackage "sns" "2.11.0" "sha256-EXqbUM4pYsmprvd04fDghy5Sy8u4jgP+OWSg7sWRr1c=";
 
-  types-aiobotocore-sqs = buildTypesAiobotocorePackage "sqs" "2.9.0" "sha256-bN1OXfRr0M9TGdOxZ3hzF4yVRo8qLtdJ1GIqp1WwY8g=";
+  types-aiobotocore-sqs = buildTypesAiobotocorePackage "sqs" "2.11.0" "sha256-POwMTLFUjTNa+nLi8Fxq8UihOkX0z1NuFaETuI6uLns=";
 
-  types-aiobotocore-ssm = buildTypesAiobotocorePackage "ssm" "2.9.0" "sha256-IdkwP86TCIY2v6ZV35SYMmxUqW204y7HXTFtoA3Z/A4=";
+  types-aiobotocore-ssm = buildTypesAiobotocorePackage "ssm" "2.11.0" "sha256-gEIBYw1ncrS8R6bSS5uMCpSGMpDvItAyeXuMJN6vsi4=";
 
-  types-aiobotocore-ssm-contacts = buildTypesAiobotocorePackage "ssm-contacts" "2.9.0" "sha256-xyQkxMnmInrwXdTcjv+2V5BUYS1OrQXbZLPjgMOIvwQ=";
+  types-aiobotocore-ssm-contacts = buildTypesAiobotocorePackage "ssm-contacts" "2.11.0" "sha256-6HCfXbZ7hO63x+N6n9jA48+UshaHgKHsvEGYgZh2qAY=";
 
-  types-aiobotocore-ssm-incidents = buildTypesAiobotocorePackage "ssm-incidents" "2.9.0" "sha256-DhGvTnJzNCZgSSZ63kjWhPYnH/SF+S2QHMU/0fgx8Mg=";
+  types-aiobotocore-ssm-incidents = buildTypesAiobotocorePackage "ssm-incidents" "2.11.0" "sha256-mEVJMqWKv6u5Idw+stqcTcOB6RVOfExMXYnuuExEhNU=";
 
-  types-aiobotocore-ssm-sap = buildTypesAiobotocorePackage "ssm-sap" "2.9.0" "sha256-j1QoIAprz33FLjIAmHj+v+2SYFQnL4XFEc+hyMLt78U=";
+  types-aiobotocore-ssm-sap = buildTypesAiobotocorePackage "ssm-sap" "2.11.0" "sha256-m5l6ewMNnOnDUN9Y0h5rxjAyaO6OZK2BdzxXM4Vox3k=";
 
-  types-aiobotocore-sso = buildTypesAiobotocorePackage "sso" "2.9.0" "sha256-TQxkfWv0SiS1smEPwlBKgtbhJhU+7ieokyx5zilAlNU=";
+  types-aiobotocore-sso = buildTypesAiobotocorePackage "sso" "2.11.0" "sha256-hv8XkRsnIgvLGr2XIjyYm2upv8Vj4i42UF8BpKil+S4=";
 
-  types-aiobotocore-sso-admin = buildTypesAiobotocorePackage "sso-admin" "2.9.0" "sha256-1vMwGFdAnCgwgwlV1fS0/w+o9gza4bokOIRmnse+Zh0=";
+  types-aiobotocore-sso-admin = buildTypesAiobotocorePackage "sso-admin" "2.11.0" "sha256-m92lE8qaVgwKQFA/gv9saL6a7Zey7MtO9dzGbahVx5k=";
 
-  types-aiobotocore-sso-oidc = buildTypesAiobotocorePackage "sso-oidc" "2.9.0" "sha256-iTJyIepGMJ5NUX/khzrdliVl4/uJkDmXfTBdHk4k9mo=";
+  types-aiobotocore-sso-oidc = buildTypesAiobotocorePackage "sso-oidc" "2.11.0" "sha256-LPqXAPzwkTt0maMEyZE1JTYVYzxEeN/ST7+B6Fbw5dk=";
 
-  types-aiobotocore-stepfunctions = buildTypesAiobotocorePackage "stepfunctions" "2.9.0" "sha256-mdunNfOw87uR9BYgy/XILp5KoJRIUHWQvdoYTPY4i0M=";
+  types-aiobotocore-stepfunctions = buildTypesAiobotocorePackage "stepfunctions" "2.11.0" "sha256-t4Pdd0mLzw08rWQG55Sz5rHJJApuiVSBDyT5IejqlX0=";
 
-  types-aiobotocore-storagegateway = buildTypesAiobotocorePackage "storagegateway" "2.9.0" "sha256-Ag1LkXIdiQGyMP5V3c1M5DFtarjcnUX5+UN6oEPf8nk=";
+  types-aiobotocore-storagegateway = buildTypesAiobotocorePackage "storagegateway" "2.11.0" "sha256-PXigzc5hHwKFKzGf4UHMUbX6Rh6DTdm+Rh74O+3SP+0=";
 
-  types-aiobotocore-sts = buildTypesAiobotocorePackage "sts" "2.9.0" "sha256-51P6hpVcVTUtLxN9/QGVCAWnv5Lnb9pMNE7WzKq5U9w=";
+  types-aiobotocore-sts = buildTypesAiobotocorePackage "sts" "2.11.0" "sha256-JkWCjmi5SWKdwqnNUUW6t8iGwc8NjWoQQUQo1pCqeoY=";
 
-  types-aiobotocore-support = buildTypesAiobotocorePackage "support" "2.9.0" "sha256-c1Nip/gBkVabW4oFq4B6fdi9DauiYZfOLHD4LUR9fLw=";
+  types-aiobotocore-support = buildTypesAiobotocorePackage "support" "2.11.0" "sha256-/KrG8QIZkSKPGOEe4nJlCzdgvdChKU5Xrop2JnUkdGA=";
 
-  types-aiobotocore-support-app = buildTypesAiobotocorePackage "support-app" "2.9.0" "sha256-8A6p38j1R6e/2ptWRfKkvpAnjeZPUWgciHpj7Sg0N60=";
+  types-aiobotocore-support-app = buildTypesAiobotocorePackage "support-app" "2.11.0" "sha256-u2O7hDKAVfXcgX8JY+m0WgeEwoCyqfQbwp5xlfUSmCk=";
 
-  types-aiobotocore-swf = buildTypesAiobotocorePackage "swf" "2.9.0" "sha256-1QtnA3BohFWVLso1DdbNO0ZOOAODhXmfT6r/Espp/vI=";
+  types-aiobotocore-swf = buildTypesAiobotocorePackage "swf" "2.11.0" "sha256-/+7mljg9y9FMwwbJ8NYi9k7bs2fxsmhR9Vvin/Y2JJc=";
 
-  types-aiobotocore-synthetics = buildTypesAiobotocorePackage "synthetics" "2.9.0" "sha256-1Cr8kzYLGroxGtHxx9eiyRW3I6sbyNIRweW6pAW6pFQ=";
+  types-aiobotocore-synthetics = buildTypesAiobotocorePackage "synthetics" "2.11.0" "sha256-N0FrmOkrt8aLx4tfzAmuwRW6/oy3XHVRT96/IXtSUyY=";
 
-  types-aiobotocore-textract = buildTypesAiobotocorePackage "textract" "2.9.0" "sha256-hSWUOXPsqVpQ0a6jOMll17W43wEbKv6i4fllIo0xLzw=";
+  types-aiobotocore-textract = buildTypesAiobotocorePackage "textract" "2.11.0" "sha256-c53Wqgux7PN4xV7c2/nsksQkDQ4wI9cXcF2QLajNqC8=";
 
-  types-aiobotocore-timestream-query = buildTypesAiobotocorePackage "timestream-query" "2.9.0" "sha256-a+fTXaX82nlaUvDmkDUIW+t/wsNXWZx7BqQj7H/jnVM=";
+  types-aiobotocore-timestream-query = buildTypesAiobotocorePackage "timestream-query" "2.11.0" "sha256-Sz2Q9OPDWeI5i3F4vWbcYqjoEsnclAYUu2I7jIJA4KI=";
 
-  types-aiobotocore-timestream-write = buildTypesAiobotocorePackage "timestream-write" "2.9.0" "sha256-YGZa1FOkq9snM5K1DZQv7efgBvMx8axCKbsoviJWSrE=";
+  types-aiobotocore-timestream-write = buildTypesAiobotocorePackage "timestream-write" "2.11.0" "sha256-JUIL7o1dC8slMcUla3NFPsjSAy/D2RjTNcqJY/1a2VE=";
 
-  types-aiobotocore-tnb = buildTypesAiobotocorePackage "tnb" "2.9.0" "sha256-afMNaqyMd84FTSTTLTpBQ/jfUuCvVmpyg7rdXavOJPQ=";
+  types-aiobotocore-tnb = buildTypesAiobotocorePackage "tnb" "2.11.0" "sha256-BiRk9QfVBLHQTfq3v6QdZAVewO8QZvTQl1ARcnEouao=";
 
-  types-aiobotocore-transcribe = buildTypesAiobotocorePackage "transcribe" "2.9.0" "sha256-jFdJigP2fLlRtw9WzhaSFicg4TBTfD3wVZEV8PeOqcM=";
+  types-aiobotocore-transcribe = buildTypesAiobotocorePackage "transcribe" "2.11.0" "sha256-2UBVBsFZsk4Zo3JNo9WThqzY8SUaEecMYD0c05pd5Io=";
 
-  types-aiobotocore-transfer = buildTypesAiobotocorePackage "transfer" "2.9.0" "sha256-rXLszhZTZBPCMlGwqZWsdCnoNy2MTyzzH+IrQ75Jxu0=";
+  types-aiobotocore-transfer = buildTypesAiobotocorePackage "transfer" "2.11.0" "sha256-c0GwHy3OHQrBMLhxyIaKPoHvtF79ySSL//NFOngfeL0=";
 
-  types-aiobotocore-translate = buildTypesAiobotocorePackage "translate" "2.9.0" "sha256-6CJeDPdwIWQMGBkAtxO8PJclkXGeY5iTbpNlWgGFcKs=";
+  types-aiobotocore-translate = buildTypesAiobotocorePackage "translate" "2.11.0" "sha256-MqggOwWPYz1wTDvGL+64dukGHNisK1S/ZJnkec9WOkc=";
 
-  types-aiobotocore-verifiedpermissions = buildTypesAiobotocorePackage "verifiedpermissions" "2.9.0" "sha256-abQQMTXvqkZ4V/82XnYRA4HXqPqYVDFlyn97stA6/6Y=";
+  types-aiobotocore-verifiedpermissions = buildTypesAiobotocorePackage "verifiedpermissions" "2.11.0" "sha256-/+83iitPdMoKHY8sbYoBgN+KtMd3GjcBtiBdM0vnbbc=";
 
-  types-aiobotocore-voice-id = buildTypesAiobotocorePackage "voice-id" "2.9.0" "sha256-f66AVRU3jXSzWWiDO1CWS+F742WmhcGlf2IXvAOPwjI=";
+  types-aiobotocore-voice-id = buildTypesAiobotocorePackage "voice-id" "2.11.0" "sha256-iEy+2H7bRE/kbX3EMpdLWu4DYMNv4ksyfANaY/Tc6x0=";
 
-  types-aiobotocore-vpc-lattice = buildTypesAiobotocorePackage "vpc-lattice" "2.9.0" "sha256-sA6mKo/co3Z9hPha4kHHUud9AO/CLhEijh66wlp2uOk=";
+  types-aiobotocore-vpc-lattice = buildTypesAiobotocorePackage "vpc-lattice" "2.11.0" "sha256-MSLS2rEhdAHWxjdU+ZRWVPR9ZtAeMcwyifULhx0CTno=";
 
-  types-aiobotocore-waf = buildTypesAiobotocorePackage "waf" "2.9.0" "sha256-Js6x76EgqKu4IJcgG8FpMge4nfhlKj/7HRZjgi/f5tA=";
+  types-aiobotocore-waf = buildTypesAiobotocorePackage "waf" "2.11.0" "sha256-A/YgoRKpFSfE5/eu2Gts1u0U/p4D+j2xLXa2fU+f1Kc=";
 
-  types-aiobotocore-waf-regional = buildTypesAiobotocorePackage "waf-regional" "2.9.0" "sha256-YCTW8axxeeDNCH57xUSKsRXNyproIYsUqHN7Kb/c9Lc=";
+  types-aiobotocore-waf-regional = buildTypesAiobotocorePackage "waf-regional" "2.11.0" "sha256-WTsE8VJc4EWTA5G/5B7mHje4VDZCSbBsFxwIDkExq2A=";
 
-  types-aiobotocore-wafv2 = buildTypesAiobotocorePackage "wafv2" "2.9.0" "sha256-8lZTtK93+IQyfQ/QQ3WSgpD3VlzPq5aQn/Avife21nI=";
+  types-aiobotocore-wafv2 = buildTypesAiobotocorePackage "wafv2" "2.11.0" "sha256-Zzr96zjueB5KT37r0feaTj18kd0IwVp9jXMjsIuWhCE=";
 
-  types-aiobotocore-wellarchitected = buildTypesAiobotocorePackage "wellarchitected" "2.9.0" "sha256-BzafdUAL6TrYMuP1TwPXTS/aOlhjZbM99ZtEQ3wxQV0=";
+  types-aiobotocore-wellarchitected = buildTypesAiobotocorePackage "wellarchitected" "2.11.0" "sha256-p/WikTCNYa/Bwv7PXOKzsHX5rBBtquKWf+RPD5fnbxE=";
 
-  types-aiobotocore-wisdom = buildTypesAiobotocorePackage "wisdom" "2.9.0" "sha256-WkpW8vk7U4WkqeX13RhzahEtZrdQ49X2NoeSIpRQMQM=";
+  types-aiobotocore-wisdom = buildTypesAiobotocorePackage "wisdom" "2.11.0" "sha256-CqBfDmR5WUUTK0jH+ihiJpugjEZtY5zvL9hZ9Wk+Jy8=";
 
-  types-aiobotocore-workdocs = buildTypesAiobotocorePackage "workdocs" "2.9.0" "sha256-kLp8nHOB6A47nmAd9jXwr+nXS8xnv10eGkI/zd53wRI=";
+  types-aiobotocore-workdocs = buildTypesAiobotocorePackage "workdocs" "2.11.0" "sha256-XEbZfg7jxW9PwZdsQ9XzY3/i2DIV9yUBlaCbubDcFjU=";
 
-  types-aiobotocore-worklink = buildTypesAiobotocorePackage "worklink" "2.9.0" "sha256-4g39qn3h//b4/Dd+C0zasVvmyENfkvhPIj+EklHf9iY=";
+  types-aiobotocore-worklink = buildTypesAiobotocorePackage "worklink" "2.11.0" "sha256-nNQ7Dq1qENRdoIfzVULZZ3JDvc6EEMJF2yJO6iXCMVg=";
 
-  types-aiobotocore-workmail = buildTypesAiobotocorePackage "workmail" "2.9.0" "sha256-WSAQekT3lmS/2miTbK0eYWde7eDIleY7yP+1HdMcCXM=";
+  types-aiobotocore-workmail = buildTypesAiobotocorePackage "workmail" "2.11.0" "sha256-abkID9Xww52uDpNABuUI9v3fknUNBkZ+fMjAr9mWv+0=";
 
-  types-aiobotocore-workmailmessageflow = buildTypesAiobotocorePackage "workmailmessageflow" "2.9.0" "sha256-Y7scQU1qMyGMrkOdmpJuRKdxR9nlsKsoiDCBT1Qa1F4=";
+  types-aiobotocore-workmailmessageflow = buildTypesAiobotocorePackage "workmailmessageflow" "2.11.0" "sha256-57+QvrdJTJK9psRohrA4HfPuTVy1AKVK7YUWGHOX0jU=";
 
-  types-aiobotocore-workspaces = buildTypesAiobotocorePackage "workspaces" "2.9.0" "sha256-AIIU5d6D+hVd36Qo0hpq8tNakoCVpmqjYKVgGUjtVOU=";
+  types-aiobotocore-workspaces = buildTypesAiobotocorePackage "workspaces" "2.11.0" "sha256-xs8/fAuglhlUQcHKC5m+tbkjYKvN5EEUQV7lzrnaFUc=";
 
-  types-aiobotocore-workspaces-web = buildTypesAiobotocorePackage "workspaces-web" "2.9.0" "sha256-fchpLQ4yB6LzpzvKJBraHIFEMKsMltWoMzihUkwUedg=";
+  types-aiobotocore-workspaces-web = buildTypesAiobotocorePackage "workspaces-web" "2.11.0" "sha256-RvEVbetUhE54iLlEvloG5F+9tkmmSFCUgwoXVRSDfX0=";
 
-  types-aiobotocore-xray = buildTypesAiobotocorePackage "xray" "2.9.0" "sha256-L+y55NnvYeTgXVp+DJ/dgKPQYBIFsu48qgRjwAX7nBs=";
+  types-aiobotocore-xray = buildTypesAiobotocorePackage "xray" "2.11.0" "sha256-COUTKrzFCLI8VSa/MBNPAeBkgGAlhBvOayyYqnYHaNQ=";
 }
diff --git a/pkgs/development/python-modules/types-aiobotocore/default.nix b/pkgs/development/python-modules/types-aiobotocore/default.nix
index 4bfe70497175..e69d9ab8e5df 100644
--- a/pkgs/development/python-modules/types-aiobotocore/default.nix
+++ b/pkgs/development/python-modules/types-aiobotocore/default.nix
@@ -364,12 +364,12 @@
 
 buildPythonPackage rec {
   pname = "types-aiobotocore";
-  version = "2.9.0";
+  version = "2.11.2";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-QSZDFXiVEXFHTE7FrLZVUeLOOyPTG96PIMg9lziiwDc=";
+    hash = "sha256-bnYg/u2BvG3/iBJ5xKQwiMG/n8vREpnOGHYaSlwlnRs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/types-aiobotocore/update.sh b/pkgs/development/python-modules/types-aiobotocore/update.sh
index 455488fb793e..84fd0c612801 100644
--- a/pkgs/development/python-modules/types-aiobotocore/update.sh
+++ b/pkgs/development/python-modules/types-aiobotocore/update.sh
@@ -5,7 +5,7 @@ set -eu -o pipefail
 
 source_file=pkgs/development/python-modules/types-aiobotocore-packages/default.nix
 
-version="2.9.0"
+version="2.11.0"
 
 nix-update python311Packages.types-aiobotocore --commit --build
 
diff --git a/pkgs/development/python-modules/types-awscrt/default.nix b/pkgs/development/python-modules/types-awscrt/default.nix
index d35cfcc2afe9..c2adf4dd7b7b 100644
--- a/pkgs/development/python-modules/types-awscrt/default.nix
+++ b/pkgs/development/python-modules/types-awscrt/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "types-awscrt";
-  version = "0.20.0";
+  version = "0.20.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "types_awscrt";
     inherit version;
-    hash = "sha256-mXeMlS4erhDMelNGhBMAEXcCbJQ0NFvwASC7LqW3kQk=";
+    hash = "sha256-BqhZGJoynKjmbVbO7vI5FIjjm4ePvSFB8RXqtNQW/iI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/types-docutils/default.nix b/pkgs/development/python-modules/types-docutils/default.nix
index 5962e0083910..13cd4f61f93c 100644
--- a/pkgs/development/python-modules/types-docutils/default.nix
+++ b/pkgs/development/python-modules/types-docutils/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "types-docutils";
-  version = "0.20.0.20240106";
+  version = "0.20.0.20240201";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-A5kuyXb74IDbWI4eVqg8Xkq6XHMwIrJbsmy4Q5e5YEk=";
+    hash = "sha256-ukv9T/bdGWQLp6tdk5ADk6ZYl4gPNlCZeWSpQ/Tnmms=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/types-markdown/default.nix b/pkgs/development/python-modules/types-markdown/default.nix
index 8b65e9c05945..e0b1301062a6 100644
--- a/pkgs/development/python-modules/types-markdown/default.nix
+++ b/pkgs/development/python-modules/types-markdown/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "types-markdown";
-  version = "3.5.0.20240106";
+  version = "3.5.0.20240129";
   pyproject = true;
 
   src = fetchPypi {
     pname = "types-Markdown";
     inherit version;
-    hash = "sha256-vkfTXL5h1Fi9F67BJ/HaIzzW7Zb6mhMccQN4pOiFcDA=";
+    hash = "sha256-ms02/vJk2e1aljRcRffYDw2WcFnpIhOZizBG+7ZPZ/w=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/types-protobuf/default.nix b/pkgs/development/python-modules/types-protobuf/default.nix
index 841edf89f4c6..362681861f59 100644
--- a/pkgs/development/python-modules/types-protobuf/default.nix
+++ b/pkgs/development/python-modules/types-protobuf/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "types-protobuf";
-  version = "4.24.0.20240106";
+  version = "4.24.0.20240129";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Ak8DTzteK7K7/1XrxNWR7Q0igNkPrO7csUi55xSj8+4=";
+    hash = "sha256-ioPdO5t2oz4I2GNsXaohKs4TlkGO2Rg3Y1/NVkpiSJE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/types-psycopg2/default.nix b/pkgs/development/python-modules/types-psycopg2/default.nix
index ba256ebc78de..c22fec8de7dd 100644
--- a/pkgs/development/python-modules/types-psycopg2/default.nix
+++ b/pkgs/development/python-modules/types-psycopg2/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "types-psycopg2";
-  version = "2.9.21.20240106";
+  version = "2.9.21.20240201";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-DQo1BElxS6KESMTxCgo67Dbp4+/RRQcw4ifhe3BKS+o=";
+    hash = "sha256-daknNfYro2OXQJrkdY8CQcvEqbsw8fldO0pmD+p+dxE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/types-pyopenssl/default.nix b/pkgs/development/python-modules/types-pyopenssl/default.nix
index 3af4ba92b01a..7a0a60049296 100644
--- a/pkgs/development/python-modules/types-pyopenssl/default.nix
+++ b/pkgs/development/python-modules/types-pyopenssl/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "types-pyopenssl";
-  version = "23.3.0.20240106";
+  version = "24.0.0.20240130";
   format = "setuptools";
 
   src = fetchPypi {
     pname = "types-pyOpenSSL";
     inherit version;
-    hash = "sha256-PW80Yr7AwmDKrfk/uzdyJcEmZht3nH2auZttrVyhDbk=";
+    hash = "sha256-yBLlwcNSSfde9ZNXCLKpl9Yqv5dFviIuX5S5WVRyqyU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/types-requests/default.nix b/pkgs/development/python-modules/types-requests/default.nix
index 74ebca264a61..25538aa7c897 100644
--- a/pkgs/development/python-modules/types-requests/default.nix
+++ b/pkgs/development/python-modules/types-requests/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "types-requests";
-  version = "2.31.0.20240106";
+  version = "2.31.0.20240125";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-DhxzHBfzNhjsWOAithShouzCX33IaACzbvNBOAQCxhI=";
+    hash = "sha256-A6KM4dfNVBmRSOBDsgec3e0i1nldGaLCpnkaSyteLrU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/types-setuptools/default.nix b/pkgs/development/python-modules/types-setuptools/default.nix
index d98aea408b94..0b7e0d91b2a6 100644
--- a/pkgs/development/python-modules/types-setuptools/default.nix
+++ b/pkgs/development/python-modules/types-setuptools/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "types-setuptools";
-  version = "68.2.0.2";
+  version = "69.0.0.20240115";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Ce/DgK1cf3jjC8oVRvcGRpVozyYITPq3Ps+D3qHShEY=";
+    hash = "sha256-GpyGOJn0DL4gU9DNHQDd7wMwtJIzVGfQGPc8H+yUYqM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/typeshed-client/default.nix b/pkgs/development/python-modules/typeshed-client/default.nix
new file mode 100644
index 000000000000..03877756e572
--- /dev/null
+++ b/pkgs/development/python-modules/typeshed-client/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, importlib-resources
+, pytestCheckHook
+, pythonOlder
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "typeshed-client";
+  version = "2.4.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "JelleZijlstra";
+    repo = "typeshed_client";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-g3FECKebKeM3JPWem6+Y9T27PcAxVxj1SiBd5siLSJ4=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    importlib-resources
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "typeshed_client"
+  ];
+
+  pytestFlagsArray = [
+    "tests/test.py"
+  ];
+
+  meta = with lib; {
+    description = "Retrieve information from typeshed and other typing stubs";
+    homepage = "https://github.com/JelleZijlstra/typeshed_client";
+    changelog = "https://github.com/JelleZijlstra/typeshed_client/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/python-modules/uamqp/default.nix b/pkgs/development/python-modules/uamqp/default.nix
index 2e69e4568f82..68c72fe80fed 100644
--- a/pkgs/development/python-modules/uamqp/default.nix
+++ b/pkgs/development/python-modules/uamqp/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "uamqp";
-  version = "1.6.5";
+  version = "1.6.8";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "Azure";
     repo = "azure-uamqp-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-q8FxM4PBXLD5q68nrUJ+TGkui1yQJ3HHNF7jn+e+HkA=";
+    hash = "sha256-L4E7nnsVZ/VrOM0t4KtztU9ALmtGfi1vDzUi0ogtZOc=";
   };
 
   patches = lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [
diff --git a/pkgs/development/python-modules/ufo2ft/default.nix b/pkgs/development/python-modules/ufo2ft/default.nix
index f0d517732805..6daa54a31e81 100644
--- a/pkgs/development/python-modules/ufo2ft/default.nix
+++ b/pkgs/development/python-modules/ufo2ft/default.nix
@@ -1,28 +1,25 @@
 { lib
-, buildPythonPackage
-, fetchPypi
-
-# build
-, setuptools-scm
-
-# runtime
 , booleanoperations
+, buildPythonPackage
 , cffsubr
 , compreffor
 , cu2qu
 , defcon
+, fetchPypi
 , fonttools
+, pytestCheckHook
+, pythonOlder
+, setuptools-scm
 , skia-pathops
 , ufolib2
-
-# tests
-, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "ufo2ft";
   version = "2.33.4";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
@@ -50,19 +47,27 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
+  disabledTests = [
     # Do not depend on skia.
-    "--deselect=tests/integration_test.py::IntegrationTest::test_removeOverlaps_CFF_pathops"
-    "--deselect=tests/integration_test.py::IntegrationTest::test_removeOverlaps_pathops"
-    "--deselect=tests/preProcessor_test.py::TTFPreProcessorTest::test_custom_filters_as_argument"
-    "--deselect=tests/preProcessor_test.py::TTFInterpolatablePreProcessorTest::test_custom_filters_as_argument"
+    "test_removeOverlaps_CFF_pathops"
+    "test_removeOverlaps_pathops"
+    "test_custom_filters_as_argument"
+    "test_custom_filters_as_argument"
+    # Some integration tests fail
+    "test_compileVariableCFF2"
+    "test_compileVariableTTF"
+    "test_drop_glyph_names_variable"
+    "test_drop_glyph_names_variable"
   ];
 
-  pythonImportsCheck = [ "ufo2ft" ];
+  pythonImportsCheck = [
+    "ufo2ft"
+  ];
 
   meta = with lib; {
     description = "Bridge from UFOs to FontTools objects";
     homepage = "https://github.com/googlefonts/ufo2ft";
+    changelog = "https://github.com/googlefonts/ufo2ft/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/unearth/default.nix b/pkgs/development/python-modules/unearth/default.nix
index 7af5740fe315..649e305aeeb3 100644
--- a/pkgs/development/python-modules/unearth/default.nix
+++ b/pkgs/development/python-modules/unearth/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "unearth";
-  version = "0.12.1";
+  version = "0.14.0";
   format = "pyproject";
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-TKrZQbYPUeUP3BCYZiNNQHkQrvd/EjOqG2tdFox0J+4=";
+    hash = "sha256-883fuUrA+GX7z5ZCMVVu9xgwEDecALASBVF6UMeKGG0=";
   };
 
   nativeBuildInputs = [
@@ -32,8 +32,6 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     packaging
     requests
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    cached-property
   ];
 
   __darwinAllowLocalNetworking = true;
diff --git a/pkgs/development/python-modules/unify/default.nix b/pkgs/development/python-modules/unify/default.nix
index 58bee2b6e52e..fc0cd0d4f67e 100644
--- a/pkgs/development/python-modules/unify/default.nix
+++ b/pkgs/development/python-modules/unify/default.nix
@@ -1,26 +1,47 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, pythonOlder
+, setuptools
+, pytestCheckHook
 , untokenize
-, unittestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "unify";
   version = "0.5";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
 
-  # PyPi release is missing tests (see https://github.com/myint/unify/pull/18)
   src = fetchFromGitHub {
     owner = "myint";
     repo = "unify";
-    rev = "v${version}";
-    sha256 = "1l6xxygaigacsxf0g5f7w5gpqha1ava6mcns81kqqy6vw91pyrbi";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-cWV/Q+LbeIxnQNqyatRWQUF8X+HHlQdc10y9qJ7v3dA=";
   };
 
-  propagatedBuildInputs = [ untokenize ];
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    untokenize
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "unify"
+  ];
 
-  nativeCheckInputs = [ unittestCheckHook ];
+  disabledTests = [
+    # https://github.com/myint/unify/issues/21
+    "test_format_code"
+    "test_format_code_with_backslash_in_comment"
+  ];
 
   meta = with lib; {
     description = "Modifies strings to all use the same quote where possible";
diff --git a/pkgs/development/python-modules/uproot/default.nix b/pkgs/development/python-modules/uproot/default.nix
index 79c925c012a5..288758dfb34a 100644
--- a/pkgs/development/python-modules/uproot/default.nix
+++ b/pkgs/development/python-modules/uproot/default.nix
@@ -3,10 +3,12 @@
 , fetchFromGitHub
 , pythonOlder
 , awkward
+, hatch-vcs
 , hatchling
 , numpy
 , fsspec
 , packaging
+, pandas
 , pytestCheckHook
 , lz4
 , pytest-timeout
@@ -18,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "uproot";
-  version = "5.2.1";
+  version = "5.2.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -27,10 +29,11 @@ buildPythonPackage rec {
     owner = "scikit-hep";
     repo = "uproot5";
     rev = "refs/tags/v${version}";
-    hash = "sha256-3BGGtA99MoagFtGcCeGiDyvzqixf+lbEu9Dn/62RQto=";
+    hash = "sha256-7X8oIMvOSC1JXQrZTPXLiqsUnfSc2Rx3KCvxKbhvPzM=";
   };
 
   nativeBuildInputs = [
+    hatch-vcs
     hatchling
   ];
 
@@ -42,6 +45,7 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
+    pandas
     pytestCheckHook
     lz4
     pytest-timeout
diff --git a/pkgs/development/python-modules/urwid/default.nix b/pkgs/development/python-modules/urwid/default.nix
index 66a8d830cc2d..cf42463c19b2 100644
--- a/pkgs/development/python-modules/urwid/default.nix
+++ b/pkgs/development/python-modules/urwid/default.nix
@@ -1,26 +1,32 @@
 { lib
 , buildPythonPackage
+, exceptiongroup
 , fetchFromGitHub
-
-# build-system
-, setuptools
-, setuptools-scm
-
-# tests
 , glibcLocales
+, pygobject3
+, pyserial
 , pytestCheckHook
+, pythonOlder
+, pyzmq
+, setuptools
+, setuptools-scm
+, tornado
+, trio
+, twisted
 }:
 
 buildPythonPackage rec {
   pname = "urwid";
-  version = "2.2.3";
-  format = "pyproject";
+  version = "2.4.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "urwid";
     repo = "urwid";
     rev = "refs/tags/${version}";
-    hash = "sha256-oPb2h/+gaqkZTXIiESjExMfBNnOzDvoMkXvkZ/+KVwo=";
+    hash = "sha256-raDsUZaXBC4s/48KNH8Thrpm8Bq8wj9+Rahk+LkxcDo=";
   };
 
   postPatch = ''
@@ -32,10 +38,35 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
+  passthru.optional-dependencies = {
+    glib = [
+      pygobject3
+    ];
+    tornado = [
+      tornado
+    ];
+    trio = [
+      exceptiongroup
+      trio
+    ];
+    twisted = [
+      twisted
+    ];
+    zmq = [
+      pyzmq
+    ];
+    serial = [
+      pyserial
+    ];
+    lcd = [
+      pyserial
+    ];
+  };
+
   nativeCheckInputs = [
     glibcLocales
     pytestCheckHook
-  ];
+  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
   env.LC_ALL = "en_US.UTF8";
 
@@ -53,8 +84,8 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    changelog = "https://github.com/urwid/urwid/releases/tag/${version}";
     description = "A full-featured console (xterm et al.) user interface library";
+    changelog = "https://github.com/urwid/urwid/releases/tag/${version}";
     downloadPage = "https://github.com/urwid/urwid";
     homepage = "https://urwid.org/";
     license = licenses.lgpl21Plus;
diff --git a/pkgs/development/python-modules/vncdo/default.nix b/pkgs/development/python-modules/vncdo/default.nix
index 51b5abbe9ea2..2fbee9f2d65a 100644
--- a/pkgs/development/python-modules/vncdo/default.nix
+++ b/pkgs/development/python-modules/vncdo/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "vncdo";
-  version = "1.1.0";
+  version = "1.2.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "sibson";
     repo = "vncdotool";
     rev = "refs/tags/v${version}";
-    hash = "sha256-m8msWa8uUuDEjEUlXHCgYi0HFPKXLVXpXLyuQ3quNbA=";
+    hash = "sha256-QrD6z/g85FwaZCJ1PRn8CBKCOQcbVjQ9g0NpPIxguqk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/vtjp/default.nix b/pkgs/development/python-modules/vtjp/default.nix
new file mode 100644
index 000000000000..4e193ea2eb48
--- /dev/null
+++ b/pkgs/development/python-modules/vtjp/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, requests
+, setuptools
+, tabulate
+}:
+
+buildPythonPackage rec {
+  pname = "vtjp";
+  version = "0.2.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "Miicroo";
+    repo = "python-vasttrafik";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-3/toHY2PkG87J5bIMNJZHF/4mUvWaeHamMzPa1St7Xo=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    requests
+    tabulate
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "vasttrafik"
+  ];
+
+  meta = with lib; {
+    description = "A Python wrapper and cli for Västtrafik public API";
+    homepage = "https://github.com/Miicroo/python-vasttrafik";
+    changelog = "https://github.com/Miicroo/python-vasttrafik/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/python-modules/vulture/default.nix b/pkgs/development/python-modules/vulture/default.nix
index 5578b54ccd28..43d6f8b00fcd 100644
--- a/pkgs/development/python-modules/vulture/default.nix
+++ b/pkgs/development/python-modules/vulture/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "vulture";
-  version = "2.10";
+  version = "2.11";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-KlwxYL/7p3WVtubfzEEgFr0qCc1LZs33+7qRNoSJn28=";
+    hash = "sha256-8Pu2C85lEarYfuBzbFAkVnN0kKgtkZpE5tkiYss18cI=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/wagtail/default.nix b/pkgs/development/python-modules/wagtail/default.nix
index f2f924b5c124..0e7bf3a3f185 100644
--- a/pkgs/development/python-modules/wagtail/default.nix
+++ b/pkgs/development/python-modules/wagtail/default.nix
@@ -37,7 +37,9 @@ buildPythonPackage rec {
   postPatch = ''
     substituteInPlace setup.py \
       --replace "beautifulsoup4>=4.8,<4.12" "beautifulsoup4>=4.8" \
-      --replace "draftjs_exporter>=2.1.5,<3.0" "draftjs_exporter>=2.1.5,<6.0"
+      --replace "draftjs_exporter>=2.1.5,<3.0" "draftjs_exporter>=2.1.5,<6.0" \
+      --replace "django-taggit>=2.0,<5.0" "django-taggit>=2.0,<6.0" \
+      --replace "Willow[heif]>=1.6.2,<1.7" "Willow[heif]>=1.6.2,<2"
   '';
 
   propagatedBuildInputs = [
@@ -64,7 +66,9 @@ buildPythonPackage rec {
   # on wagtail (wagtail-factories)
   doCheck = false;
 
-  passthru.tests.wagtail = callPackage ./tests.nix {};
+  passthru.tests.wagtail = callPackage ./tests.nix { };
+
+  pythonImportsCheck = [ "wagtail" ];
 
   meta = with lib; {
     description = "A Django content management system focused on flexibility and user experience";
diff --git a/pkgs/development/python-modules/watermark/default.nix b/pkgs/development/python-modules/watermark/default.nix
index 6e9e169ace5e..daac4416fc08 100644
--- a/pkgs/development/python-modules/watermark/default.nix
+++ b/pkgs/development/python-modules/watermark/default.nix
@@ -29,7 +29,6 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     ipython
-  ] ++ lib.optionals (pythonOlder "3.8") [
     importlib-metadata
   ];
 
diff --git a/pkgs/development/python-modules/weaviate-client/default.nix b/pkgs/development/python-modules/weaviate-client/default.nix
index e87694dfe50e..35a4c5527533 100644
--- a/pkgs/development/python-modules/weaviate-client/default.nix
+++ b/pkgs/development/python-modules/weaviate-client/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "weaviate-client";
-  version = "3.26.0";
+  version = "3.26.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-7oCb8tH1pQDJpoxe3C6xdKtRQqNoAuJ0qySv5nX/sos=";
+    hash = "sha256-Y+xwg5tkkJgQpkqns+W4UIhGLpPH4u08MuvvtwLzZyM=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/webargs/default.nix b/pkgs/development/python-modules/webargs/default.nix
index acee1e965f8d..800649a09388 100644
--- a/pkgs/development/python-modules/webargs/default.nix
+++ b/pkgs/development/python-modules/webargs/default.nix
@@ -4,13 +4,13 @@
 
 buildPythonPackage rec {
   pname = "webargs";
-  version = "8.3.0";
+  version = "8.4.0";
   format = "setuptools";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-yrIHlBsGhsTQhsgjYy3c1DQxUWRDQaMvz1C46qceMcc=";
+    hash = "sha256-6pk2ghSkzmE5JL6Z1x21jCaWMele/0+gm3NU5S3ABqU=";
   };
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/wheel-inspect/default.nix b/pkgs/development/python-modules/wheel-inspect/default.nix
index c8ce155c788f..7d79d18f443b 100644
--- a/pkgs/development/python-modules/wheel-inspect/default.nix
+++ b/pkgs/development/python-modules/wheel-inspect/default.nix
@@ -8,7 +8,7 @@
 , packaging
 , pytestCheckHook
 , pythonOlder
-, readme_renderer
+, readme-renderer
 , wheel-filename
 }:
 
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     entry-points-txt
     headerparser
     packaging
-    readme_renderer
+    readme-renderer
     wheel-filename
   ];
 
diff --git a/pkgs/development/python-modules/wheezy-captcha/default.nix b/pkgs/development/python-modules/wheezy-captcha/default.nix
index 4006bedf14e1..fc0701704d79 100644
--- a/pkgs/development/python-modules/wheezy-captcha/default.nix
+++ b/pkgs/development/python-modules/wheezy-captcha/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "wheezy.captcha";
-  version = "3.0.2";
+  version = "3.2.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-PdtOhoVOopQsX2raPqh0P8meM8/MysgKsIe27HNtl3s=";
+    hash = "sha256-UtTpgrPK5eRr7sq97jptjdJyvAyrM2oU07+GZr2Ad7s=";
   };
 
   propagatedBuildInputs = [ pillow ];
diff --git a/pkgs/development/python-modules/whispers/default.nix b/pkgs/development/python-modules/whispers/default.nix
index bba0f14e159b..5106ee3b0556 100644
--- a/pkgs/development/python-modules/whispers/default.nix
+++ b/pkgs/development/python-modules/whispers/default.nix
@@ -4,6 +4,7 @@
 , buildPythonPackage
 , crossplane
 , fetchFromGitHub
+, fetchpatch
 , jellyfish
 , jproperties
 , luhn
@@ -12,22 +13,52 @@
 , pytestCheckHook
 , pythonOlder
 , pyyaml
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "whispers";
   version = "2.2.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "adeptex";
-    repo = pname;
+    repo = "whispers";
     rev = "refs/tags/${version}";
     hash = "sha256-9vXku8BWJtlf+lmAcQ8a7qTisRNc+xVw0T0Eunc4lt4=";
   };
 
+  patches = [
+    # Support astroid > 3, https://github.com/adeptex/whispers/pull/117
+    (fetchpatch {
+      url = "https://github.com/adeptex/whispers/commit/ff25e81cb3d775e5fb186c2d135b77c27d9ed43a.patch";
+      hash = "sha256-jKm7fs04mGUD7MZYAA/3xt01e9knuLun3c3u8PlLebg=";
+    })
+    (fetchpatch {
+      url = "https://github.com/adeptex/whispers/commit/ba6a56dddb12d1cb62f94dd7659ba24fdc4363ee.patch";
+      hash = "sha256-eHWnXHT0lzS7BqneMqfvV3w6GfrCiTJ5i+av82J+fpk=";
+    })
+    (fetchpatch {
+      url = "https://github.com/adeptex/whispers/commit/8b7b1593eb86abfc09b3581d463fc7d0e06309dc.patch";
+      hash = "sha256-JcRdv5eIyXKWaVqbJZlYqiSieE4z0MKF4dvO/hRBBMs=";
+    })
+    (fetchpatch {
+      url = "https://github.com/adeptex/whispers/commit/71dcb614e4d9e0247afc50cd4214659739f8844e.patch";
+      hash = "sha256-7XIFuc8Rf2ValN3BoAJOjSqjgmiOauxCFonMgGljFg0=";
+    })
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace '"pytest-runner"' ""
+  '';
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     astroid
     beautifulsoup4
@@ -44,11 +75,6 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace '"pytest-runner"' ""
-  '';
-
   preCheck = ''
     # Some tests need the binary available in PATH
     export PATH=$out/bin:$PATH
@@ -60,7 +86,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Tool to identify hardcoded secrets in static structured text";
-    homepage = "https://github.com/Skyscanner/whispers";
+    homepage = "https://github.com/adeptex/whispers";
+    changelog = "https://github.com/adeptex/whispers/releases/tag/${version}";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/willow/default.nix b/pkgs/development/python-modules/willow/default.nix
index 7f5b06223ee6..2b0058357d88 100644
--- a/pkgs/development/python-modules/willow/default.nix
+++ b/pkgs/development/python-modules/willow/default.nix
@@ -23,7 +23,7 @@
 
 buildPythonPackage rec {
   pname = "willow";
-  version = "1.7.0";
+  version = "1.8.0";
   format = "pyproject";
 
   disabled = pythonOlder "2.7";
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     owner = "wagtail";
     repo = "Willow";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+ubylc/Zuw3DSSgtTg2dO3Zj0gpTJcLbb1J++caxS7w=";
+    hash = "sha256-g9/v56mdo0sJe5Pl/to/R/kXayaKK3qaYbnnPXpFjXE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/withings-sync/default.nix b/pkgs/development/python-modules/withings-sync/default.nix
index 3f20703baaf3..bf6c2153c7e0 100644
--- a/pkgs/development/python-modules/withings-sync/default.nix
+++ b/pkgs/development/python-modules/withings-sync/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "withings-sync";
-  version = "4.2.2";
+  version = "4.2.4";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -19,8 +19,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "jaroslawhartman";
     repo = "withings-sync";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-p1coGTbMQ+zptFKVLW5qgSdoudo2AggGT8Xu+cSCCs4=";
+    rev = "refs/tags/v.${version}";
+    hash = "sha256-nFYEtQob3x6APWDKCVP5p+qkKmgvXIcmegp/6ZRbDQA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/wled/default.nix b/pkgs/development/python-modules/wled/default.nix
index c1a5f51956d1..7d90c554907c 100644
--- a/pkgs/development/python-modules/wled/default.nix
+++ b/pkgs/development/python-modules/wled/default.nix
@@ -9,6 +9,7 @@
 , yarl
 , aresponses
 , pytest-asyncio
+, pytest-xdist
 , pytestCheckHook
 , pythonOlder
 }:
@@ -49,6 +50,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [
     aresponses
     pytest-asyncio
+    pytest-xdist
     pytestCheckHook
   ];
 
diff --git a/pkgs/development/python-modules/xdoctest/default.nix b/pkgs/development/python-modules/xdoctest/default.nix
index 357e605d8534..68eb1a0f426b 100644
--- a/pkgs/development/python-modules/xdoctest/default.nix
+++ b/pkgs/development/python-modules/xdoctest/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "xdoctest";
-  version = "1.1.2";
+  version = "1.1.3";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "Erotemic";
     repo = "xdoctest";
     rev = "refs/tags/v${version}";
-    hash = "sha256-yTu5ldr9TkpYRP8hjgUPpexBVLjaK2gfPvISjMJLY74=";
+    hash = "sha256-MOjT8adJoSxigSG2Gy5gqRfYswjUsgbBOV1ZU0LBDN8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/xformers/0001-fix-allow-building-without-git.patch b/pkgs/development/python-modules/xformers/0001-fix-allow-building-without-git.patch
new file mode 100644
index 000000000000..54b79e3e2f69
--- /dev/null
+++ b/pkgs/development/python-modules/xformers/0001-fix-allow-building-without-git.patch
@@ -0,0 +1,25 @@
+From 4c2b65c47d328c2f20cc74adcec2286fee6cb5de Mon Sep 17 00:00:00 2001
+From: Yaroslav Bolyukin <iam@lach.pw>
+Date: Tue, 30 Jan 2024 18:18:35 +0100
+Subject: [PATCH] fix: allow building without git
+
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index e01c008..92eca62 100644
+--- a/setup.py
++++ b/setup.py
+@@ -71,7 +71,7 @@ def get_flash_version() -> str:
+             ["git", "describe", "--tags", "--always"],
+             cwd=flash_dir,
+         ).decode("ascii")[:-1]
+-    except subprocess.CalledProcessError:
++    except Exception:
+         version = flash_dir / "version.txt"
+         if version.is_file():
+             return version.read_text().strip()
+-- 
+2.43.0
+
diff --git a/pkgs/development/python-modules/xformers/default.nix b/pkgs/development/python-modules/xformers/default.nix
index 164513da94c8..c909559ca59a 100644
--- a/pkgs/development/python-modules/xformers/default.nix
+++ b/pkgs/development/python-modules/xformers/default.nix
@@ -25,7 +25,8 @@
 #, flash-attn
 }:
 let
-  version = "0.03";
+  inherit (torch) cudaCapabilities cudaPackages cudaSupport;
+  version = "0.0.23.post1";
 in
 buildPythonPackage {
   pname = "xformers";
@@ -38,17 +39,34 @@ buildPythonPackage {
     owner = "facebookresearch";
     repo = "xformers";
     rev = "refs/tags/v${version}";
-    hash = "sha256-G8f7tny5B8SAQ6+2uOjhY7nD0uOT4sskIwtTdwivQXo=";
+    hash = "sha256-AJXow8MmX4GxtEE2jJJ/ZIBr+3i+uS4cA6vofb390rY=";
     fetchSubmodules = true;
   };
 
+  patches = [
+    ./0001-fix-allow-building-without-git.patch
+  ];
+
   preBuild = ''
     cat << EOF > ./xformers/version.py
     # noqa: C801
     __version__ = "${version}"
     EOF
+  '' + lib.optionalString cudaSupport ''
+    export CUDA_HOME=${cudaPackages.cuda_nvcc}
+    export TORCH_CUDA_ARCH_LIST="${lib.concatStringsSep ";" cudaCapabilities}"
   '';
 
+  buildInputs = lib.optionals cudaSupport (with cudaPackages; [
+    # flash-attn build
+    cuda_cudart # cuda_runtime_api.h
+    libcusparse.dev # cusparse.h
+    cuda_cccl.dev # nv/target
+    libcublas.dev # cublas_v2.h
+    libcusolver.dev # cusolverDn.h
+    libcurand.dev # curand_kernel.h
+  ]);
+
   nativeBuildInputs = [
     which
   ];
diff --git a/pkgs/development/python-modules/xiaomi-ble/default.nix b/pkgs/development/python-modules/xiaomi-ble/default.nix
index c79e41d82545..52946718a6c7 100644
--- a/pkgs/development/python-modules/xiaomi-ble/default.nix
+++ b/pkgs/development/python-modules/xiaomi-ble/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "xiaomi-ble";
-  version = "0.21.2";
+  version = "0.24.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "Bluetooth-Devices";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-x9FQk3oGSxFrFj/F+QU9n7UMRTn0N4HsGonuNEEe9ug=";
+    hash = "sha256-hKrvV/OzWq07Rb6pU5otNg/A86WnxMKFfs8oA04VvqI=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/xstatic/default.nix b/pkgs/development/python-modules/xstatic/default.nix
index 39e5f233ccd2..d9d6e0398355 100644
--- a/pkgs/development/python-modules/xstatic/default.nix
+++ b/pkgs/development/python-modules/xstatic/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "XStatic";
-  version = "1.0.2";
+  version = "1.0.3";
 
   src = fetchPypi {
     inherit version pname;
-    sha256 = "80b78dfe37bce6dee4343d64c65375a80bcf399b46dd47c0c7d56161568a23a8";
+    sha256 = "sha256-QCVEzJ4XlIlEEFTwnIB4BOEV6iRpB96HwDVftPWjEmg=";
   };
 
   # no tests implemented
diff --git a/pkgs/development/python-modules/yalexs/default.nix b/pkgs/development/python-modules/yalexs/default.nix
index 19d40b4f8051..7f7c86af09cb 100644
--- a/pkgs/development/python-modules/yalexs/default.nix
+++ b/pkgs/development/python-modules/yalexs/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "yalexs";
-  version = "1.10.0";
+  version = "1.11.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.9";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "bdraco";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-7LFKqC8IHzXKKU5Pw6Qud9jqJFc0lSEJFn636T6CsfQ=";
+    hash = "sha256-PQPcD2klwXA/7uH1RrdCd26WGaLpcchp7r1M1RXxQ9Y=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/yamlfix/default.nix b/pkgs/development/python-modules/yamlfix/default.nix
index 122a39d82615..26b39ed87ed5 100644
--- a/pkgs/development/python-modules/yamlfix/default.nix
+++ b/pkgs/development/python-modules/yamlfix/default.nix
@@ -3,7 +3,8 @@
 , click
 , fetchFromGitHub
 , maison
-, pdm-pep517
+, pdm-backend
+, pytest-freezegun
 , pytest-xdist
 , pytestCheckHook
 , pythonOlder
@@ -13,21 +14,21 @@
 
 buildPythonPackage rec {
   pname = "yamlfix";
-  version = "1.13.0";
-  format = "pyproject";
+  version = "1.16.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "lyz-code";
-    repo = pname;
+    repo = "yamlfix";
     rev = "refs/tags/${version}";
-    hash = "sha256-GoCQtanQHYOFrhRvZjzk/cCPnUFwYUAclZuYGZfNg5E=";
+    hash = "sha256-nadyBIzXHbWm0QvympRaYU38tuPJ3TPJg8EbvVv+4L0=";
   };
 
   nativeBuildInputs = [
     setuptools
-    pdm-pep517
+    pdm-backend
   ];
 
   propagatedBuildInputs = [
@@ -37,14 +38,39 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
+    pytest-freezegun
     pytest-xdist
     pytestCheckHook
   ];
 
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
   pythonImportsCheck = [
     "yamlfix"
   ];
 
+  disabledTests = [
+    # AssertionError: assert ... Fixed <stdin> in...
+    "test_check_one_file_no_changes"
+    "test_config_parsing"
+    "test_corrects_code_from_stdin"
+    "test_corrects_one_file"
+    "test_corrects_three_files"
+    "test_empty_list_inline_comment_indentation"
+    "test_find_files"
+    "test_fix_code_converts_non_valid_false_booleans"
+    "test_ignores_correct_files"
+    "test_include_exclude_files"
+    "test_read_prefixed_environment_variables"
+    "test_section_whitelines"
+    "test_whitelines"
+    "test_sequence_style_env_enum_parsing"
+    "test_verbose_option"
+    "test_enforcing_flow_style_together_with_adjustable_newlines"
+  ];
+
   meta = with lib; {
     description = "Python YAML formatter that keeps your comments";
     homepage = "https://github.com/lyz-code/yamlfix";
diff --git a/pkgs/development/python-modules/yappi/default.nix b/pkgs/development/python-modules/yappi/default.nix
index cb12c4f63f37..1e20c1ba2eab 100644
--- a/pkgs/development/python-modules/yappi/default.nix
+++ b/pkgs/development/python-modules/yappi/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "yappi";
-  version = "1.4.0";
+  version = "1.6.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "sumerc";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-AogBnqhLcwsyTHLP+Uxc+EOgYzhdwX5rbi9RMCuC2IU=";
+    hash = "sha256-zA4apOGyrbjBOxUKBARiKmmM9rSVFVGWsDpOaItOoLU=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/yara-python/default.nix b/pkgs/development/python-modules/yara-python/default.nix
index 403ee6df52bd..cff5b329e6ca 100644
--- a/pkgs/development/python-modules/yara-python/default.nix
+++ b/pkgs/development/python-modules/yara-python/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, setuptools
 , pytestCheckHook
 , pythonOlder
 , yara
@@ -8,8 +9,8 @@
 
 buildPythonPackage rec {
   pname = "yara-python";
-  version = "4.3.1";
-  format = "setuptools";
+  version = "4.4.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -17,9 +18,20 @@ buildPythonPackage rec {
     owner = "VirusTotal";
     repo = "yara-python";
     rev = "v${version}";
-    hash = "sha256-WjH27pOOBXmbj8ghr42TLTp8eAKiTq4eRTYnim56J/8=";
+    hash = "sha256-Fl/0ordXDKC1CBBmPx0fEwZZjqSiMxnwNvQqD98MjRo=";
   };
 
+  # 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']"
+  '';
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   buildInputs = [
     yara
   ];
diff --git a/pkgs/development/python-modules/yaramod/default.nix b/pkgs/development/python-modules/yaramod/default.nix
index 1f459858dfa0..78920969bc95 100644
--- a/pkgs/development/python-modules/yaramod/default.nix
+++ b/pkgs/development/python-modules/yaramod/default.nix
@@ -20,7 +20,7 @@ let
 in
   buildPythonPackage rec {
     pname = "yaramod";
-    version = "3.20.2";
+    version = "3.21.0";
     format = "setuptools";
 
     disabled = pythonOlder "3.7";
@@ -29,7 +29,7 @@ in
       owner = "avast";
       repo = pname;
       rev = "refs/tags/v${version}";
-      hash = "sha256-OLsTvG+qaUJlKdHwswGBifzoT/uNunrrVWQg7hJxkhE=";
+      hash = "sha256-YkMDoFwWPrDhAgDnPpNCU1NlnAPhwYQF/KFaRFn+juQ=";
     };
 
     postPatch = ''
diff --git a/pkgs/development/python-modules/yfinance/default.nix b/pkgs/development/python-modules/yfinance/default.nix
index b8ec40d9e03b..fb771047db11 100644
--- a/pkgs/development/python-modules/yfinance/default.nix
+++ b/pkgs/development/python-modules/yfinance/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "yfinance";
-  version = "0.2.35";
+  version = "0.2.36";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "ranaroussi";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-uLcnTH3teLxW6LZCJUD3jOPLm1a2jAK1bg4tKSSNXKU=";
+    hash = "sha256-oBpkWKQZ5FA+nyNWVOlRzoEyShCfh6SqCCrkFZBu1rQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/yolink-api/default.nix b/pkgs/development/python-modules/yolink-api/default.nix
index ceff77e4d2b7..5ad89d0bced2 100644
--- a/pkgs/development/python-modules/yolink-api/default.nix
+++ b/pkgs/development/python-modules/yolink-api/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "yolink-api";
-  version = "0.3.4";
+  version = "0.3.6";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "YoSmart-Inc";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-wDZlzl178SIXxo5SacbbXWHhF4wOsjBU4a9h0jBYA4c=";
+    hash = "sha256-KqQUaPac0nv8L3mrGn+nlzlB6mzqa5uMAceHlVKS1Ew=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/ytmusicapi/default.nix b/pkgs/development/python-modules/ytmusicapi/default.nix
index d0aebbc5138c..700a250130aa 100644
--- a/pkgs/development/python-modules/ytmusicapi/default.nix
+++ b/pkgs/development/python-modules/ytmusicapi/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "ytmusicapi";
-  version = "1.4.2";
+  version = "1.5.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "sigma67";
     repo = "ytmusicapi";
     rev = "refs/tags/${version}";
-    hash = "sha256-Ho8JEARmw9Pd7A/sYM6Fkp3gfYx4bXbFIvh9pSE7f5c=";
+    hash = "sha256-3dJ9Mu1cblBJh3BVEyxdfO+RD8kSxpdvnvox7ljMWT4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/zcbor/default.nix b/pkgs/development/python-modules/zcbor/default.nix
index 1525a7610c73..9bce9e925c1d 100644
--- a/pkgs/development/python-modules/zcbor/default.nix
+++ b/pkgs/development/python-modules/zcbor/default.nix
@@ -13,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "zcbor";
-  version = "0.8.0";
+  version = "0.8.1";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-47HwITfFcHNze3tt4vJxHB4BQ7oyl17DM8IV0WomM5Q=";
+    hash = "sha256-U3Y/r3tBhzK6bGnMxdqKzS7bLHyAzgpGZ5PVK9pw7Pk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/zconfig/default.nix b/pkgs/development/python-modules/zconfig/default.nix
index c8e852135764..8947badb91bf 100644
--- a/pkgs/development/python-modules/zconfig/default.nix
+++ b/pkgs/development/python-modules/zconfig/default.nix
@@ -1,32 +1,62 @@
 { lib
 , stdenv
-, fetchPypi
 , buildPythonPackage
-, zope-testrunner
-, manuel
 , docutils
+, fetchPypi
+, manuel
 , pygments
+, pytestCheckHook
+, pythonOlder
+, setuptools
+, zope-testrunner
 }:
 
 buildPythonPackage rec {
-  pname = "ZConfig";
-  version = "3.6.1";
+  pname = "zconfig";
+  version = "4.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-RCLH1mOvdizXeVd1NmvGpnq0QKGreW6w90JbDpA08HY=";
+    pname = "ZConfig";
+    inherit version;
+    hash = "sha256-+NZC+6a6mNCGMb4sH3GtGVfAUf70qj0/ufHgjcYdAVY=";
   };
 
   patches = lib.optional stdenv.hostPlatform.isMusl ./remove-setlocale-test.patch;
 
-  buildInputs = [ manuel docutils ];
-  propagatedBuildInputs = [ zope-testrunner ];
-  nativeCheckInputs = [ pygments ];
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  buildInputs = [
+    docutils
+    manuel
+  ];
+
+  propagatedBuildInputs = [
+    zope-testrunner
+  ];
+
+  nativeCheckInputs = [
+    pygments
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "ZConfig"
+  ];
+
+  pytestFlagsArray = [
+    "-s"
+  ];
 
   meta = with lib; {
     description = "Structured Configuration Library";
-    homepage = "https://pypi.python.org/pypi/ZConfig";
+    homepage = "https://github.com/zopefoundation/ZConfig";
+    changelog = "https://github.com/zopefoundation/ZConfig/blob/${version}/CHANGES.rst";
     license = licenses.zpl20;
-    maintainers = [ maintainers.goibhniu ];
+    maintainers = with maintainers; [ goibhniu ];
   };
 }
diff --git a/pkgs/development/python-modules/zfec/default.nix b/pkgs/development/python-modules/zfec/default.nix
index fc3b710919bc..1e135da34b3a 100644
--- a/pkgs/development/python-modules/zfec/default.nix
+++ b/pkgs/development/python-modules/zfec/default.nix
@@ -1,8 +1,9 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, setuptools
+, hypothesis
 , pyutil
+, setuptools
 , twisted
 }:
 
@@ -20,17 +21,26 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  propagatedBuildInputs = [ pyutil ];
+  propagatedBuildInputs = [
+    pyutil
+  ];
 
-  nativeCheckInputs = [ twisted ];
+  nativeCheckInputs = [
+    hypothesis
+    twisted
+  ];
 
-  checkPhase = "trial zfec";
+  checkPhase = ''
+    trial zfec
+  '';
 
-  pythonImportsCheck = [ "zfec" ];
+  pythonImportsCheck = [
+    "zfec"
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/tahoe-lafs/zfec";
-    description = "Zfec, a fast erasure codec which can be used with the command-line, C, Python, or Haskell";
+    description = "Fast erasure codec which can be used with the command-line, C, Python, or Haskell";
     longDescription = ''
       Fast, portable, programmable erasure coding a.k.a. "forward
       error correction": the generation of redundant blocks of
diff --git a/pkgs/development/python-modules/ziafont/default.nix b/pkgs/development/python-modules/ziafont/default.nix
index 4e55583b211b..788dda332941 100644
--- a/pkgs/development/python-modules/ziafont/default.nix
+++ b/pkgs/development/python-modules/ziafont/default.nix
@@ -2,13 +2,14 @@
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
+, setuptools
 , pytestCheckHook
 , nbval
 }:
 
 buildPythonPackage rec {
   pname = "ziafont";
-  version = "0.6";
+  version = "0.7";
 
   format = "pyproject";
 
@@ -18,9 +19,13 @@ buildPythonPackage rec {
     owner = "cdelker";
     repo = pname;
     rev = version;
-    hash = "sha256-3ZVj1ZxbFkFDDYbsIPzo7GMWGx7f5qWZQlcGCVXv73M=";
+    hash = "sha256-DQEVWYOgiGSP3WlmZzEweyRa0UY7fxjjpbued+5EH5I=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   nativeCheckInputs = [
     pytestCheckHook
     nbval
diff --git a/pkgs/development/python-modules/ziamath/default.nix b/pkgs/development/python-modules/ziamath/default.nix
index 5e24f3c41670..c2d72a25f810 100644
--- a/pkgs/development/python-modules/ziamath/default.nix
+++ b/pkgs/development/python-modules/ziamath/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
+, setuptools
 , ziafont
 , pytestCheckHook
 , nbval
@@ -10,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "ziamath";
-  version = "0.8.1";
+  version = "0.9";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -19,9 +20,13 @@ buildPythonPackage rec {
     owner = "cdelker";
     repo = pname;
     rev = version;
-    hash = "sha256-Bbwq4Ods3P/724KO94jSmMLD1ubfaMHP/gTlOL/2pnE=";
+    hash = "sha256-ISd+J7R8qZ0NXdlyHMj+torzr+541UAhNCSaUH8ytSQ=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     ziafont
   ];
diff --git a/pkgs/development/python-modules/zigpy-deconz/default.nix b/pkgs/development/python-modules/zigpy-deconz/default.nix
index ac6cf8901e04..721905fb17b8 100644
--- a/pkgs/development/python-modules/zigpy-deconz/default.nix
+++ b/pkgs/development/python-modules/zigpy-deconz/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "zigpy-deconz";
-  version = "0.22.4";
+  version = "0.23.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "zigpy";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-MtF9k7Ogsv7gjeZSBvFLsh9LHUFy5z+qYleUI9BC2es=";
+    hash = "sha256-8U/3YzXyrQ6pOklvfuVFAk2r/mpcUM7HokfBJUhtyh4=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/zigpy-znp/default.nix b/pkgs/development/python-modules/zigpy-znp/default.nix
index 94fa9cdb0d38..4378570f77f9 100644
--- a/pkgs/development/python-modules/zigpy-znp/default.nix
+++ b/pkgs/development/python-modules/zigpy-znp/default.nix
@@ -8,6 +8,7 @@
 , pytest-mock
 , pytest-rerunfailures
 , pytest-timeout
+, pytest-xdist
 , pytestCheckHook
 , pythonOlder
 , setuptools
@@ -53,6 +54,7 @@ buildPythonPackage rec {
     pytest-mock
     pytest-rerunfailures
     pytest-timeout
+    pytest-xdist
     pytestCheckHook
   ];
 
diff --git a/pkgs/development/python2-modules/pygtk/default.nix b/pkgs/development/python2-modules/pygtk/default.nix
index c3960dd5309d..003474ee8582 100644
--- a/pkgs/development/python2-modules/pygtk/default.nix
+++ b/pkgs/development/python2-modules/pygtk/default.nix
@@ -64,8 +64,8 @@ buildPythonPackage rec {
   postInstall = ''
     rm $out/bin/pygtk-codegen-2.0
     ln -s ${pygobject2}/bin/pygobject-codegen-2.0  $out/bin/pygtk-codegen-2.0
-    ln -s ${pygobject2}/lib/${python.libPrefix}/site-packages/pygobject-${pygobject2.version}.pth \
-                  $out/lib/${python.libPrefix}/site-packages/${pname}-${version}.pth
+    ln -s ${pygobject2}/${python.sitePackages}/pygobject-${pygobject2.version}.pth \
+                  $out/${python.sitePackages}/${pname}-${version}.pth
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/r-modules/cran-packages.nix b/pkgs/development/r-modules/cran-packages.nix
index ae5396237ad2..6fba505f8092 100644
--- a/pkgs/development/r-modules/cran-packages.nix
+++ b/pkgs/development/r-modules/cran-packages.nix
@@ -7209,7 +7209,7 @@ in with self; {
   bssn = derive2 { name="bssn"; version="1.0"; sha256="1brxbvcvqy8n9xpvp5kz47x5ps8hdqgnh6s49051qaylp95qm432"; depends=[ClusterR mvtnorm sn ssmn]; };
   bst = derive2 { name="bst"; version="0.3-24"; sha256="1x297sv9px7ipd7a6xprlff8rgkdr2z379xsm8rfqd8xal9nxnb4"; depends=[doParallel foreach gbm rpart]; };
   bstrl = derive2 { name="bstrl"; version="1.0.2"; sha256="10ncaicda2rwwrl2ykbrdhh51fziy3ahwp8z859cr2k4v19lviv0"; depends=[BRL doParallel extraDistr foreach]; };
-  bsts = derive2 { name="bsts"; version="0.9.9"; sha256="0zaic91yw214bq3285kw7wj8h1jf4g1z9lahgpmikvlqhgy5744g"; depends=[Boom BoomSpikeSlab xts zoo]; };
+  bsts = derive2 { name="bsts"; version="0.9.10"; sha256="1cbiha8pgb2xmpwqbgb16d1dpjj9x41wx3dzly1xxy2fs04bq0m3"; depends=[Boom BoomSpikeSlab xts zoo]; };
   bsub = derive2 { name="bsub"; version="1.1.0"; sha256="112hlvg15jlzg3drfzkslaly42vnvsycn9vif0w3iaw5fzsaa954"; depends=[clisymbols crayon digest GetoptLong GlobalOptions]; };
   bsvars = derive2 { name="bsvars"; version="2.1.0"; sha256="1gnjl27ik6p8zsis8fdqhwdzp2jp0kyqnidil4jgy02fiwdww6c5"; depends=[GIGrvg R6 Rcpp RcppArmadillo RcppProgress RcppTN stochvol]; };
   btb = derive2 { name="btb"; version="0.2.0"; sha256="1gm03md6ky134nzmnnp054mi2w8kl4bgcgg4k65zf2cyniz4arxq"; depends=[BH dplyr magrittr mapsf Rcpp RcppArmadillo RcppParallel sf]; };
diff --git a/pkgs/development/r-modules/default.nix b/pkgs/development/r-modules/default.nix
index 43d64f98639b..d39d0c5b8441 100644
--- a/pkgs/development/r-modules/default.nix
+++ b/pkgs/development/r-modules/default.nix
@@ -1304,7 +1304,7 @@ let
         substituteInPlace R/zzz.R \
           --replace ".onLoad <- function(...) {" \
             ".onLoad <- function(...) {
-          Sys.setenv(\"SPARK_HOME\" = Sys.getenv(\"SPARK_HOME\", unset = \"${pkgs.python3Packages.pyspark}/lib/${pkgs.python3Packages.python.libPrefix}/site-packages/pyspark\"))
+          Sys.setenv(\"SPARK_HOME\" = Sys.getenv(\"SPARK_HOME\", unset = \"${pkgs.python3Packages.pyspark}/${pkgs.python3Packages.python.sitePackages}/pyspark\"))
           Sys.setenv(\"JAVA_HOME\" = Sys.getenv(\"JAVA_HOME\", unset = \"${pkgs.jdk}\"))"
       '';
     });
diff --git a/pkgs/development/ruby-modules/bundler/default.nix b/pkgs/development/ruby-modules/bundler/default.nix
index 05d1bfbf64e6..04e6a6d35a11 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.3";
-  source.sha256 = "sha256-JJzQdaxPM1rnD3iMm+D0wYgJOk2n0FvVO+K67z8l58s=";
+  version = "2.5.5";
+  source.sha256 = "sha256-E8f+JpAw4qZAKmVMBt7/Aa72dM7WSds76YtVA6CApGI=";
   dontPatchShebangs = true;
 
   postFixup = ''
diff --git a/pkgs/development/ruby-modules/gem-config/default.nix b/pkgs/development/ruby-modules/gem-config/default.nix
index 97715659be0d..a0f4effd1fbf 100644
--- a/pkgs/development/ruby-modules/gem-config/default.nix
+++ b/pkgs/development/ruby-modules/gem-config/default.nix
@@ -312,7 +312,9 @@ in
           cp -R ext/fast_mmaped_file_rs $out
         '';
       };
-      hash = "sha256-XuQZPbFWqPHlrJvllkvLl1FjKeoAUbi8oKDrS2rY1KM=";
+      hash = if lib.versionAtLeast attrs.version "1.1.0"
+        then "sha256-tSyoCEBtMMkFfPynaMx8oc9bO7I+Pf6Y/f3Ld8uwlEE="
+        else "sha256-XuQZPbFWqPHlrJvllkvLl1FjKeoAUbi8oKDrS2rY1KM=";
     };
     nativeBuildInputs = [
       cargo
@@ -320,10 +322,16 @@ in
       rustPlatform.cargoSetupHook
       rustPlatform.bindgenHook
     ];
+    disallowedReferences = [
+      rustc.unwrapped
+    ];
     preBuild = ''
       cat ../.cargo/config > ext/fast_mmaped_file_rs/.cargo/config.toml
       sed -i "s|cargo-vendor-dir|$PWD/../cargo-vendor-dir|" ext/fast_mmaped_file_rs/.cargo/config.toml
     '';
+    postInstall = ''
+      find $out -type f -name .rustc_info.json -delete
+    '';
   };
 
   glib2 = attrs: {
diff --git a/pkgs/development/ruby-modules/gem/default.nix b/pkgs/development/ruby-modules/gem/default.nix
index 7ae9168975ab..409c2c9d027b 100644
--- a/pkgs/development/ruby-modules/gem/default.nix
+++ b/pkgs/development/ruby-modules/gem/default.nix
@@ -34,7 +34,7 @@ lib.makeOverridable (
 , stdenv ? ruby.stdenv
 , namePrefix ? (let
     rubyName = builtins.parseDrvName ruby.name;
-  in "${rubyName.name}${rubyName.version}-")
+  in "${rubyName.name}${lib.versions.majorMinor rubyName.version}-")
 , nativeBuildInputs ? []
 , buildInputs ? []
 , meta ? {}
diff --git a/pkgs/development/tools/allure/default.nix b/pkgs/development/tools/allure/default.nix
index f12f35b66a4d..9580a6431fd2 100644
--- a/pkgs/development/tools/allure/default.nix
+++ b/pkgs/development/tools/allure/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "allure";
-  version = "2.26.0";
+  version = "2.27.0";
 in
 stdenv.mkDerivation rec {
   inherit pname version;
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://github.com/allure-framework/allure2/releases/download/${version}/allure-${version}.tgz";
-    sha256 = "sha256-db4pfbJOEkw0P/e3EB4XV3xnRnzcVHXDSn0M0fdHgDQ=";
+    sha256 = "sha256-gasOVDCNxuZlyeDbloV6iL6DAInHPEXHAvnfUfoj+gA=";
   };
   dontConfigure = true;
   dontBuild = true;
diff --git a/pkgs/development/tools/analysis/brakeman/Gemfile.lock b/pkgs/development/tools/analysis/brakeman/Gemfile.lock
index bb45178f79d4..dcc9920bd534 100644
--- a/pkgs/development/tools/analysis/brakeman/Gemfile.lock
+++ b/pkgs/development/tools/analysis/brakeman/Gemfile.lock
@@ -1,7 +1,9 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    brakeman (6.1.0)
+    brakeman (6.1.1)
+      racc
+    racc (1.7.3)
 
 PLATFORMS
   ruby
@@ -10,4 +12,4 @@ DEPENDENCIES
   brakeman
 
 BUNDLED WITH
-   2.4.22
+   2.5.3
diff --git a/pkgs/development/tools/analysis/brakeman/gemset.nix b/pkgs/development/tools/analysis/brakeman/gemset.nix
index 31705fe31a6d..fdee80a9ff75 100644
--- a/pkgs/development/tools/analysis/brakeman/gemset.nix
+++ b/pkgs/development/tools/analysis/brakeman/gemset.nix
@@ -1,12 +1,23 @@
 {
   brakeman = {
+    dependencies = ["racc"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00vlip5z1gc1npj1nxvcy2gvwya4fk01xzyhazkhz3ymdn9nch0d";
+      sha256 = "1ahkss5xpdw7vwykyd5kba74cs4r987fcn7ad5qvzhzhqdariqvy";
       type = "gem";
     };
-    version = "6.1.0";
+    version = "6.1.1";
+  };
+  racc = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01b9662zd2x9bp4rdjfid07h09zxj7kvn7f5fghbqhzc625ap1dp";
+      type = "gem";
+    };
+    version = "1.7.3";
   };
 }
diff --git a/pkgs/development/tools/analysis/checkov/default.nix b/pkgs/development/tools/analysis/checkov/default.nix
index 3d6b7b06ac83..41239585bbec 100644
--- a/pkgs/development/tools/analysis/checkov/default.nix
+++ b/pkgs/development/tools/analysis/checkov/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "checkov";
-  version = "3.1.66";
+  version = "3.2.5";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "bridgecrewio";
     repo = "checkov";
     rev = "refs/tags/${version}";
-    hash = "sha256-hvl29/K4qHvDiXM0Ufmi3ExMq+2JXQbSzaFYCCP0OhU=";
+    hash = "sha256-28DvlExTH1YELQAgY3d3HrNLCaX2pWiL7l+Y/WQ3z5s=";
   };
 
   patches = [
diff --git a/pkgs/development/tools/analysis/checkstyle/default.nix b/pkgs/development/tools/analysis/checkstyle/default.nix
index 0e881d29fdbb..84730b829751 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.12.6";
+  version = "10.13.0";
   pname = "checkstyle";
 
   src = fetchurl {
     url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-${version}/checkstyle-${version}-all.jar";
-    sha256 = "sha256-4oxCnop4ImJs9ltDWso83EsDGeu9WrETEkQzMft5V58=";
+    sha256 = "sha256-VhEMyn20ubXbsDMHnNS4/E2Aeeyby3U3OV29/uXEQw4=";
   };
 
   nativeBuildInputs = [ makeBinaryWrapper ];
diff --git a/pkgs/development/tools/analysis/codeql/default.nix b/pkgs/development/tools/analysis/codeql/default.nix
index 05ee6c4019db..10634622fe5e 100644
--- a/pkgs/development/tools/analysis/codeql/default.nix
+++ b/pkgs/development/tools/analysis/codeql/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "codeql";
-  version = "2.15.5";
+  version = "2.16.1";
 
   dontConfigure = true;
   dontBuild = true;
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   src = fetchzip {
     url = "https://github.com/github/codeql-cli-binaries/releases/download/v${version}/codeql.zip";
-    hash = "sha256-FkiGyug8kYxiVdsnljwka4PJz5BSFVRVlOOf5pjTvM8=";
+    hash = "sha256-y9tSG/SxCeyFdWF6gKuPSBgfG5H2uB/XRmQkfMBdKQU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/tools/analysis/cppcheck/default.nix b/pkgs/development/tools/analysis/cppcheck/default.nix
index 1a7a1c0f4c95..92256e845a44 100644
--- a/pkgs/development/tools/analysis/cppcheck/default.nix
+++ b/pkgs/development/tools/analysis/cppcheck/default.nix
@@ -14,7 +14,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "cppcheck";
-  version = "2.13.0";
+  version = "2.13.2";
 
   outputs = [ "out" "man" ];
 
@@ -22,7 +22,7 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "danmar";
     repo = "cppcheck";
     rev = finalAttrs.version;
-    hash = "sha256-+z8mMwI4hHpE3enIriTsxZEocqifppYgjZz3UPGswIo=";
+    hash = "sha256-jmfZ0OwDdG3s2f5a5UXc1U3utKiSYwUORXfXeZL+LFg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/tools/analysis/flow/default.nix b/pkgs/development/tools/analysis/flow/default.nix
index 2f3820c555fd..21811bd668c7 100644
--- a/pkgs/development/tools/analysis/flow/default.nix
+++ b/pkgs/development/tools/analysis/flow/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "flow";
-  version = "0.226.0";
+  version = "0.228.0";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "flow";
     rev = "v${version}";
-    hash = "sha256-mWC98FLh5m2gYFlFUjrJBeaFBuNx8fm5ojiidE7c2rU=";
+    hash = "sha256-JUmDnpa9hvaGBcZR+OOD9R4P06x94zAdXW1SotXlcMc=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/tools/analysis/frama-c/default.nix b/pkgs/development/tools/analysis/frama-c/default.nix
index 4b6cadfcfa82..1bf477cf3d16 100644
--- a/pkgs/development/tools/analysis/frama-c/default.nix
+++ b/pkgs/development/tools/analysis/frama-c/default.nix
@@ -20,7 +20,7 @@ let
     ppx_deriving_yojson
     ppx_import
     stdlib-shims
-    why3
+    why3.dev
     re
     result
     seq
@@ -45,6 +45,10 @@ stdenv.mkDerivation rec {
     hash = "sha256-KWEogjMOy27d0LTKOvwEkrcND+szeaG46JMZTG4XOYM=";
   };
 
+  preConfigure = ''
+    substituteInPlace src/dune --replace " bytes " " "
+  '';
+
   postConfigure = "patchShebangs src/plugins/eva/gen-api.sh";
 
   strictDeps = true;
diff --git a/pkgs/development/tools/analysis/ikos/default.nix b/pkgs/development/tools/analysis/ikos/default.nix
index 65d5f0e91bd8..50f4f552e0ff 100644
--- a/pkgs/development/tools/analysis/ikos/default.nix
+++ b/pkgs/development/tools/analysis/ikos/default.nix
@@ -20,10 +20,18 @@ stdenv.mkDerivation rec {
     hash = "sha256-scaFkUhCkIi41iR6CGPbEndzXkgqTKMb3PDNvhgVbCE=";
   };
 
-  patches = fetchpatch {
+  patches = [ (fetchpatch {
     url = "https://github.com/NASA-SW-VnV/ikos/commit/2e647432427b3f0dbb639e0371d976ab6406f290.patch";
     hash = "sha256-ffzjlqEp4qp76Kwl5zpyQlg/xUMt8aLDSSP4XA4ndS8=";
-  };
+  })
+  # Fix build with GCC 13
+  # https://github.com/NASA-SW-VnV/ikos/pull/262
+  (fetchpatch {
+    name = "gcc-13.patch";
+    url = "https://github.com/NASA-SW-VnV/ikos/commit/73c816641fb9780f0d3b5e448510363a3cf21ce2.patch";
+    hash = "sha256-bkeSAtxrL+z+6QNiGOWSg7kN8XiZqMxlJiu5Dquhca0=";
+  })
+  ];
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ boost tbb gmp clang llvm sqlite python
diff --git a/pkgs/development/tools/analysis/snyk/default.nix b/pkgs/development/tools/analysis/snyk/default.nix
index 10175b1cec6f..fc5db92cb161 100644
--- a/pkgs/development/tools/analysis/snyk/default.nix
+++ b/pkgs/development/tools/analysis/snyk/default.nix
@@ -2,16 +2,16 @@
 
 buildNpmPackage rec {
   pname = "snyk";
-  version = "1.1266.0";
+  version = "1.1276.0";
 
   src = fetchFromGitHub {
     owner = "snyk";
     repo = "cli";
     rev = "v${version}";
-    hash = "sha256-K+62BbiP4GVjxqadIllDBn8pH+cJkbEUVWJTMO7Mn3M=";
+    hash = "sha256-l5Xx6z3NbtwdtKe8MmRWTJoKaEH3AZjHKXqoLv3rHfU=";
   };
 
-  npmDepsHash = "sha256-9FLXsIFrNzH42v5y537GrS3C1X91LLh3qu4sPoprNK4=";
+  npmDepsHash = "sha256-FJGxCEhBADH4c1khJaVFHL4e25Mq4PHrez+2NPFBx0w=";
 
   postPatch = ''
     substituteInPlace package.json --replace '"version": "1.0.0-monorepo"' '"version": "${version}"'
diff --git a/pkgs/development/tools/analysis/tflint/default.nix b/pkgs/development/tools/analysis/tflint/default.nix
index afdd4fe022b5..ea7bbb242d36 100644
--- a/pkgs/development/tools/analysis/tflint/default.nix
+++ b/pkgs/development/tools/analysis/tflint/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "tflint";
-  version = "0.50.1";
+  version = "0.50.2";
 
   src = fetchFromGitHub {
     owner = "terraform-linters";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-r/mVLgJudHyNvQa9H9pQ1qhiFx11RikIg4IIz5tC6Us=";
+    hash = "sha256-MZx8lJTUWrKDXWGlmsCDT4Fjf56GrTJ/byn+htXOFfg=";
   };
 
-  vendorHash = "sha256-iyJx5dp+NYbaJhZL67ZjFd28ms3vyF38z9P8qJscryQ=";
+  vendorHash = "sha256-N8J9s9gJEooqrsAUMcC9BZ65qlmpERPoqdknzYZxIIk=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/api-linter/default.nix b/pkgs/development/tools/api-linter/default.nix
index 197628dfafc4..97bda5410596 100644
--- a/pkgs/development/tools/api-linter/default.nix
+++ b/pkgs/development/tools/api-linter/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "api-linter";
-  version = "1.63.1";
+  version = "1.63.3";
 
   src = fetchFromGitHub {
     owner = "googleapis";
     repo = "api-linter";
     rev = "v${version}";
-    hash = "sha256-S2SP/Q4iVVrsvTo5pedOwkOXsPGwstz+NM0bltWBa1Y=";
+    hash = "sha256-mcmp3M9KhZp3j18jh+3v5fwPPLRs2hkrRUN3RM/zCmo=";
   };
 
-  vendorHash = "sha256-vr/HLcOdzkKGdKJXROaKo070mwg1r2D2m0C3sT2CeQc=";
+  vendorHash = "sha256-/z2FqMyZnn2A5aajimTS2zw3A1v5v0uYZY81acuQOnw=";
 
   subPackages = [ "cmd/api-linter" ];
 
@@ -23,14 +23,6 @@ buildGoModule rec {
     "-w"
   ];
 
-  # reference: https://github.com/googleapis/api-linter/blob/v1.63.1/.github/workflows/release.yaml#L76
-  preBuild = ''
-    cat > cmd/api-linter/version.go <<EOF
-    package main
-    const version = "${version}"
-    EOF
-  '';
-
   meta = with lib; {
     description = "Linter for APIs defined in protocol buffers";
     homepage = "https://github.com/googleapis/api-linter/";
diff --git a/pkgs/development/tools/apktool/default.nix b/pkgs/development/tools/apktool/default.nix
index b8f252f17923..f475fb54d1cb 100644
--- a/pkgs/development/tools/apktool/default.nix
+++ b/pkgs/development/tools/apktool/default.nix
@@ -8,14 +8,14 @@
 
 stdenv.mkDerivation rec {
   pname = "apktool";
-  version = "2.9.2";
+  version = "2.9.3";
 
   src = fetchurl {
     urls = [
       "https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_${version}.jar"
       "https://github.com/iBotPeaches/Apktool/releases/download/v${version}/apktool_${version}.jar"
     ];
-    hash = "sha256-gx8P/Je28g9RHWGDy/Z4VGTTQarLD7fm8i7wx7IokRo=";
+    hash = "sha256-eVbrBBlDAM4NCoStGHce68lLifuNHdzOjqTAVoGGRvQ=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/development/tools/avro-tools/default.nix b/pkgs/development/tools/avro-tools/default.nix
index 59ea3f5b15e6..0868ab8e7f8c 100644
--- a/pkgs/development/tools/avro-tools/default.nix
+++ b/pkgs/development/tools/avro-tools/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "avro-tools";
-  version = "1.11.1";
+  version = "1.11.3";
 
   src = fetchurl {
     url =
     "mirror://maven/org/apache/avro/avro-tools/${version}/${pname}-${version}.jar";
-    sha256 = "sha256-uVTnWXbCS3JQkHWxopixhNue/ihzvukJ0CNDL5gm24g=";
+    sha256 = "sha256-dPaV1rZxxE+G/gB7hEDyiMI7ZbzkTpNEtexp/Y6hrPI=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/development/tools/azcopy/default.nix b/pkgs/development/tools/azcopy/default.nix
index 17be1edca98f..ed7db536bd83 100644
--- a/pkgs/development/tools/azcopy/default.nix
+++ b/pkgs/development/tools/azcopy/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "azure-storage-azcopy";
-  version = "10.22.2";
+  version = "10.23.0";
 
   src = fetchFromGitHub {
     owner = "Azure";
     repo = "azure-storage-azcopy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-mC6iAsUmnJeVIJPkoI/pNN6mujALW9qvQ4M7Wk9eLnQ=";
+    hash = "sha256-Df45DHGA7EM4hx3iAmYNNUHjrUrkW6QniJkHaN7wNZM=";
   };
 
   subPackages = [ "." ];
diff --git a/pkgs/development/tools/b4/default.nix b/pkgs/development/tools/b4/default.nix
index 24da485d863d..8999d3f4b62a 100644
--- a/pkgs/development/tools/b4/default.nix
+++ b/pkgs/development/tools/b4/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "b4";
-  version = "0.12.3";
+  version = "0.12.4";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-tk4VBvSnHE6VnUAa3QYCqFLQbsHTJ6Bfqwa1wKEC6mI=";
+    hash = "sha256-n3mLtthtTN1uAmsmM6dX+Nc7iEo5KzzHiH8iAJmV/Q0=";
   };
 
   # tests make dns requests and fails
diff --git a/pkgs/development/tools/backblaze-b2/default.nix b/pkgs/development/tools/backblaze-b2/default.nix
index e37fd54832c2..e82c32940891 100644
--- a/pkgs/development/tools/backblaze-b2/default.nix
+++ b/pkgs/development/tools/backblaze-b2/default.nix
@@ -1,4 +1,7 @@
-{ lib, python3Packages, fetchPypi, installShellFiles, testers, backblaze-b2 }:
+{ lib, python3Packages, fetchPypi, installShellFiles, testers, backblaze-b2
+# executable is renamed to backblaze-b2 by default, to avoid collision with boost's 'b2'
+, execName ? "backblaze-b2"
+}:
 
 python3Packages.buildPythonApplication rec {
   pname = "backblaze-b2";
@@ -68,17 +71,18 @@ python3Packages.buildPythonApplication rec {
     "test/unit/console_tool"
   ];
 
-  postInstall = ''
-    mv "$out/bin/b2" "$out/bin/backblaze-b2"
-
-    installShellCompletion --cmd backblaze-b2 \
-      --bash <(${python3Packages.argcomplete}/bin/register-python-argcomplete backblaze-b2) \
-      --zsh <(${python3Packages.argcomplete}/bin/register-python-argcomplete backblaze-b2)
+  postInstall = lib.optionalString (execName != "b2") ''
+    mv "$out/bin/b2" "$out/bin/${execName}"
+  ''
+  + ''
+    installShellCompletion --cmd ${execName} \
+      --bash <(${python3Packages.argcomplete}/bin/register-python-argcomplete ${execName}) \
+      --zsh <(${python3Packages.argcomplete}/bin/register-python-argcomplete ${execName})
   '';
 
   passthru.tests.version = (testers.testVersion {
     package = backblaze-b2;
-    command = "backblaze-b2 version --short";
+    command = "${execName} version --short";
   }).overrideAttrs (old: {
     # workaround the error: Permission denied: '/homeless-shelter'
     # backblaze-b2 fails to create a 'b2' directory under the XDG config path
diff --git a/pkgs/development/tools/bazel-watcher/default.nix b/pkgs/development/tools/bazel-watcher/default.nix
index 3805111268e4..23d2c904022d 100644
--- a/pkgs/development/tools/bazel-watcher/default.nix
+++ b/pkgs/development/tools/bazel-watcher/default.nix
@@ -16,8 +16,8 @@ let
   rulesProto = fetchFromGitHub {
     owner = "bazelbuild";
     repo = "rules_proto";
-    rev = "4.0.0-3.19.2";
-    sha256 = "sha256-wdmp+Tmf63PPr7G4X5F7rDas45WEETU3eKb47PFVI6o=";
+    rev = "4.0.0";
+    hash = "sha256-WVPZx14thneAC4PdiDhBibnPwlCKEF9c93CHR0t1Efo=";
     postFetch = ''
       sed -i 's|name = "protoc"|name = "_protoc_original"|' $out/proto/private/BUILD.release
       cat <<EOF >>$out/proto/private/BUILD.release
@@ -29,13 +29,13 @@ let
 in
 buildBazelPackage rec {
   pname = "bazel-watcher";
-  version = "0.23.1";
+  version = "0.24.0";
 
   src = fetchFromGitHub {
     owner = "bazelbuild";
     repo = "bazel-watcher";
     rev = "v${version}";
-    sha256 = "sha256-fnhbxrgwffFQDIRLGisi1Wk3EjfkN8Mi8wtWT/Gy+78=";
+    hash = "sha256-ebNHAYKyE3226KiCc2/VSz1OSITuPwuYlAIS3JrWzj0=";
   };
 
   nativeBuildInputs = [ go git python3 ];
@@ -63,7 +63,7 @@ buildBazelPackage rec {
       # currently present in PATH. Without removing the go_sdk from the marker
       # file, the hash of it will change anytime the Go derivation changes and
       # that would lead to impurities in the marker files which would result in
-      # a different sha256 for the fetch phase.
+      # a different hash for the fetch phase.
       rm -rf $bazelOut/external/{go_sdk,\@go_sdk.marker}
       sed -e '/^FILE:@go_sdk.*/d' -i $bazelOut/external/\@*.marker
 
@@ -81,7 +81,7 @@ buildBazelPackage rec {
       rm -rf $bazelOut/external/com_google_protobuf
     '';
 
-    sha256 = "sha256-7/sLGgUCG4SU2nbK0596467dlrKylewiewhIvNFTMvY=";
+    sha256 = "sha256-B2KVD/FmkAa7MNhLaH286gF3uA20qjN3CoA83KRB9E8=";
   };
 
   buildAttrs = {
diff --git a/pkgs/development/tools/bearer/default.nix b/pkgs/development/tools/bearer/default.nix
index c05f6694a2fa..bc7412c1d72c 100644
--- a/pkgs/development/tools/bearer/default.nix
+++ b/pkgs/development/tools/bearer/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "bearer";
-  version = "1.34.0";
+  version = "1.37.0";
 
   src = fetchFromGitHub {
     owner = "bearer";
     repo = "bearer";
     rev = "refs/tags/v${version}";
-    hash = "sha256-JNYjBcuA2KDdhd1yF0E7mEhNJ7xQRT+wFlnAnal/P9I=";
+    hash = "sha256-b4EQAAPYMoL1MP5sVr3Fu0/znWxlVzpeGbghommCpUg=";
   };
 
-  vendorHash = "sha256-DykY1PFKsJ++F8ToAhyss5nAmsTOfXQXJpSo21oEhYc=";
+  vendorHash = "sha256-jE1DUANd1PgSWbwz/PV1pIMgzvRm0ApaJaLCljMw4ig=";
 
   subPackages = [
     "cmd/bearer"
diff --git a/pkgs/development/tools/buf/default.nix b/pkgs/development/tools/buf/default.nix
index 5a1a1508b42e..85ad114c93df 100644
--- a/pkgs/development/tools/buf/default.nix
+++ b/pkgs/development/tools/buf/default.nix
@@ -10,20 +10,21 @@
 
 buildGoModule rec {
   pname = "buf";
-  version = "1.27.0";
+  version = "1.29.0";
 
   src = fetchFromGitHub {
     owner = "bufbuild";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-QBU04/w7Z8yaTzDqhiVcxC8xEuDpDJs7rNRpOtwodGg=";
+    hash = "sha256-X3/t+hMcZXR3X+XtbW2eItTgeP1NIuqrkMT4bX5VJog=";
   };
 
-  vendorHash = "sha256-4JSmn/TUojZjCQMZCgJic0y84VMP26J7uBybB5/BCoE=";
+  vendorHash = "sha256-0wW938eU9my92dpwHEJ0Obt4XSIK5vuDa1P27nbhzao=";
 
   patches = [
-    # Skip a test that requires networking to be available to work.
-    ./skip_test_requiring_network.patch
+    # Skip a test that requires networking to be available to work,
+    # and a test which requires the source checkout to be part of a git repository
+    ./skip_broken_tests.patch
   ];
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/development/tools/buf/skip_broken_tests.patch b/pkgs/development/tools/buf/skip_broken_tests.patch
new file mode 100644
index 000000000000..c25f8c8c9304
--- /dev/null
+++ b/pkgs/development/tools/buf/skip_broken_tests.patch
@@ -0,0 +1,28 @@
+diff --git a/private/buf/cmd/buf/workspace_unix_test.go b/private/buf/cmd/buf/workspace_unix_test.go
+index 22c84385..22548555 100644
+--- a/private/buf/cmd/buf/workspace_unix_test.go
++++ b/private/buf/cmd/buf/workspace_unix_test.go
+@@ -93,6 +93,8 @@ func TestWorkspaceAbsoluteFail(t *testing.T) {
+ // Workflow run: https://github.com/bufbuild/buf/actions/runs/6510804063/job/17685247791.
+ // Potential fix: https://stackoverflow.com/questions/22575662/filename-too-long-in-git-for-windows.
+ func TestWorkspaceGit(t *testing.T) {
++	// Fails because the source checkout is not part of a git repository while building with nix
++	t.Skip()
+ 	// Directory paths specified as a git reference within a workspace.
+ 	t.Parallel()
+ 	testRunStdout(
+diff --git a/private/bufpkg/buftesting/buftesting.go b/private/bufpkg/buftesting/buftesting.go
+index d9e1fdc6..6e08c439 100644
+--- a/private/bufpkg/buftesting/buftesting.go
++++ b/private/bufpkg/buftesting/buftesting.go
+@@ -104,6 +104,10 @@ func RunActualProtoc(
+ 
+ // GetGoogleapisDirPath gets the path to a clone of googleapis.
+ func GetGoogleapisDirPath(t *testing.T, buftestingDirPath string) string {
++	// Requires network access, which is not available during
++	// the nixpkgs sandboxed build
++	t.Skip()
++
+ 	googleapisDirPath := filepath.Join(buftestingDirPath, testGoogleapisDirPath)
+ 	require.NoError(
+ 		t,
diff --git a/pkgs/development/tools/buf/skip_test_requiring_network.patch b/pkgs/development/tools/buf/skip_test_requiring_network.patch
deleted file mode 100644
index 1b0cdfb12c03..000000000000
--- a/pkgs/development/tools/buf/skip_test_requiring_network.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/private/bufpkg/buftesting/buftesting.go b/private/bufpkg/buftesting/buftesting.go
-index 82b3ec4..ef8263a 100644
---- a/private/bufpkg/buftesting/buftesting.go
-+++ b/private/bufpkg/buftesting/buftesting.go
-@@ -99,6 +99,10 @@ func RunActualProtoc(
- 
- // GetGoogleapisDirPath gets the path to a clone of googleapis.
- func GetGoogleapisDirPath(t *testing.T, buftestingDirPath string) string {
-+	// Requires network access, which is not available during
-+	// the nixpkgs sandboxed build
-+	t.Skip()
-+
- 	googleapisDirPath := filepath.Join(buftestingDirPath, testGoogleapisDirPath)
- 	require.NoError(
- 		t,
diff --git a/pkgs/development/tools/build-managers/bear/default.nix b/pkgs/development/tools/build-managers/bear/default.nix
index 880184880db1..431f7b1773f6 100644
--- a/pkgs/development/tools/build-managers/bear/default.nix
+++ b/pkgs/development/tools/build-managers/bear/default.nix
@@ -2,6 +2,7 @@
 , fetchFromGitHub
 , fetchpatch
 , cmake
+, ninja
 , pkg-config
 , grpc
 , protobuf
@@ -13,6 +14,9 @@
 , zlib
 , sqlite
 , re2
+, lit
+, python3
+, coreutils
 }:
 
 stdenv.mkDerivation rec {
@@ -26,7 +30,15 @@ stdenv.mkDerivation rec {
     hash = "sha256-1nZPzgLWcmaRkOUXdm16IW2Nw/p1w8GBGEfZX/v+En0=";
   };
 
-  nativeBuildInputs = [ cmake pkg-config ];
+  nativeBuildInputs = [
+    cmake
+    ninja
+    pkg-config
+
+    # Used for functional tests, which run during buildPhase.
+    lit
+    python3
+  ];
 
   buildInputs = [
     grpc
@@ -41,13 +53,32 @@ stdenv.mkDerivation rec {
     re2
   ];
 
+  cmakeFlags = [
+    # Build system and generated files concatenate install prefix and
+    # CMAKE_INSTALL_{BIN,LIB}DIR, which breaks if these are absolute paths.
+    "-DCMAKE_INSTALL_BINDIR=bin"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    (lib.cmakeBool "ENABLE_UNIT_TESTS" false)
+    (lib.cmakeBool "ENABLE_FUNC_TESTS" false)
+  ];
+
   patches = [
-    # Default libexec would be set to /nix/store/*-bear//nix/store/*-bear/libexec/...
-    ./no-double-relative.patch
+    # Fix toolchain environment variable handling and the Darwin SIP check.
+    ./fix-functional-tests.patch
   ];
 
+  postPatch = ''
+    patchShebangs test/bin
+
+    # /usr/bin/env is used in test commands and embedded scripts.
+    find test -name '*.sh' \
+      -exec sed -ie 's|/usr/bin/env|${coreutils}/bin/env|g' {} +
+  '';
+
+  # Functional tests use loopback networking.
+  __darwinAllowLocalNetworking = true;
+
   meta = with lib; {
-    broken = stdenv.isDarwin;
     description = "Tool that generates a compilation database for clang tooling";
     longDescription = ''
       Note: the bear command is very useful to generate compilation commands
@@ -57,6 +88,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/rizsotto/Bear";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ babariviere qyliss ];
+    maintainers = with maintainers; [ babariviere ];
   };
 }
diff --git a/pkgs/development/tools/build-managers/bear/fix-functional-tests.patch b/pkgs/development/tools/build-managers/bear/fix-functional-tests.patch
new file mode 100644
index 000000000000..99d64f26d077
--- /dev/null
+++ b/pkgs/development/tools/build-managers/bear/fix-functional-tests.patch
@@ -0,0 +1,32 @@
+diff --git a/test/lit.cfg b/test/lit.cfg
+index 118c979..b69fecc 100644
+--- a/test/lit.cfg
++++ b/test/lit.cfg
+@@ -207,13 +207,8 @@ def is_preload_disabled():
+     if is_windows:
+         return True
+     elif sys.platform == 'darwin':
+-        command = ['csrutil', 'status']
+-        pattern = re.compile(r'System Integrity Protection status:\s+enabled')
+-        try:
+-            output = subprocess.check_output(command, stderr=subprocess.STDOUT)
+-            return any(pattern.match(line) for line in output.decode('utf-8').splitlines())
+-        except (OSError, subprocess.CalledProcessError):
+-            return False
++        # csrutil(8) isn't available in the Nix build sandbox.
++        return True
+     else:
+         return False
+ 
+@@ -221,6 +216,11 @@ def is_preload_disabled():
+ if not is_preload_disabled():
+     config.available_features.add('preload')
+ 
++# Preserve the variables required for the Nix toolchain wrappers.
++for var, value in os.environ.items():
++    if var.startswith('NIX_'):
++        config.environment[var] = value
++
+ print(config.substitutions)
+ print(config.environment)
+ print(config.available_features)
diff --git a/pkgs/development/tools/build-managers/bear/no-double-relative.patch b/pkgs/development/tools/build-managers/bear/no-double-relative.patch
deleted file mode 100644
index e8087feb1afb..000000000000
--- a/pkgs/development/tools/build-managers/bear/no-double-relative.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff --git a/source/config.h.in b/source/config.h.in
-index 6b659c2..f7bdf22 100644
---- a/source/config.h.in
-+++ b/source/config.h.in
-@@ -108,8 +108,8 @@ namespace cmd {
-     }
- 
-     namespace wrapper {
--        constexpr char DEFAULT_PATH[] = "@ROOT_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/bear/wrapper";
--        constexpr char DEFAULT_DIR_PATH[] = "@ROOT_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/bear/wrapper.d";
-+        constexpr char DEFAULT_PATH[] = "@CMAKE_INSTALL_LIBDIR@/bear/wrapper";
-+        constexpr char DEFAULT_DIR_PATH[] = "@CMAKE_INSTALL_LIBDIR@/bear/wrapper.d";
- 
-         constexpr char FLAG_VERBOSE[] = "--verbose";
-         constexpr char FLAG_DESTINATION[] = "--destination";
-@@ -134,9 +134,9 @@ namespace cmd {
-         // And use the `libexec.so` path default value with a single path,
-         // that matches both. (The match can be achieved by the $LIB token
-         // expansion from the dynamic loader. See `man ld.so` for more.)
--        constexpr char DEFAULT_PATH[] = "@ROOT_INSTALL_PREFIX@/$LIB/bear/@CMAKE_SHARED_LIBRARY_PREFIX@exec@CMAKE_SHARED_LIBRARY_SUFFIX@";
-+        constexpr char DEFAULT_PATH[] = "$LIB/bear/@CMAKE_SHARED_LIBRARY_PREFIX@exec@CMAKE_SHARED_LIBRARY_SUFFIX@";
- #else
--        constexpr char DEFAULT_PATH[] = "@ROOT_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/bear/@CMAKE_SHARED_LIBRARY_PREFIX@exec@CMAKE_SHARED_LIBRARY_SUFFIX@";
-+        constexpr char DEFAULT_PATH[] = "@CMAKE_INSTALL_LIBDIR@/bear/@CMAKE_SHARED_LIBRARY_PREFIX@exec@CMAKE_SHARED_LIBRARY_SUFFIX@";
- #endif
-         constexpr char KEY_REPORTER[] = "INTERCEPT_REPORT_COMMAND";
-         constexpr char KEY_DESTINATION[] = "INTERCEPT_REPORT_DESTINATION";
diff --git a/pkgs/development/tools/build-managers/buck2/default.nix b/pkgs/development/tools/build-managers/buck2/default.nix
index 5ae28b1512c2..20b1d184e8e1 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 = "2023-10-15";
+  version = "2024-01-15";
 
   # the platform-specific, statically linked binary — which is also
   # zstd-compressed
@@ -63,7 +63,7 @@ let
   # tooling
   prelude-src =
     let
-      prelude-hash = "880be565178cf1e08ce9badef52b215f91e48479";
+      prelude-hash = "ccf6f5d1693cfa215b60212cf9863d27c6fd6a69";
       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 b444cfeeae04..687a2f585f02 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-mm9jU74rsLpiMzuDmSih6tzY4+NOiR15j+W96BVe/OI="
-, "x86_64-linux": "sha256-qxymUjsSwCf6ev5TwlkWVGtMc9tj6Vt4yMIPaLHFAMM="
-, "x86_64-darwin": "sha256-DGfpByvL4gmP+CR7VLCZS8IGSJ3esHhuKxHUfXJb/6k="
-, "aarch64-linux": "sha256-zc9LEYmpVJttCTI6Qxm25KZRX8CJVJzVtSbouw0LB6g="
-, "aarch64-darwin": "sha256-HUzpKJQN/22IQYmHLhW0fVQs0f86rREMTlp+yOfK0+Y="
+, "_prelude": "sha256-Bsd545xKass+Sua1sTFRNJgOokaHS62AKvhiLuqL58w="
+, "x86_64-linux": "sha256-Oxgz96x9INVDybJIRlBvIa76V7ngUxYh9Uo6Hdo/3pQ="
+, "x86_64-darwin": "sha256-tOlp6LKdQZg6TK2Ki8yf/e38Ibrx3fDrzOzC6bzGtrQ="
+, "aarch64-linux": "sha256-LmMbh/4tckZN1J8GJzMt8GyPmQbk3zc9DwXqJ004O7c="
+, "aarch64-darwin": "sha256-qsdHCxtJzu+UMVl1AcQh3cgDWQAITQNJEnfEN9A1W5M="
 }
diff --git a/pkgs/development/tools/build-managers/corrosion/default.nix b/pkgs/development/tools/build-managers/corrosion/default.nix
index 8cff324d9d91..22222a8f88cf 100644
--- a/pkgs/development/tools/build-managers/corrosion/default.nix
+++ b/pkgs/development/tools/build-managers/corrosion/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "corrosion";
-  version = "0.4.6";
+  version = "0.4.7";
 
   src = fetchFromGitHub {
     owner = "corrosion-rs";
     repo = "corrosion";
     rev = "v${version}";
-    hash = "sha256-WPMxewswSRc1ULBgGTrdZmWeFDWVzHk2jzqGChkRYKE=";
+    hash = "sha256-6jjcBBc1gtMG2sYppOIRa/tYjmUgW4kFxAuoGj7Tpgw=";
   };
 
   cargoRoot = "generator";
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
     inherit src;
     sourceRoot = "${src.name}/${cargoRoot}";
     name = "${pname}-${version}";
-    hash = "sha256-R09sgCjwqc22zXg1T7iMx9qmyMz9xlnEuOelPB4O7jw=";
+    hash = "sha256-M5Wnx+SfVvdhC5bHVZa0Di2up3Qt5z1jog8yxIKvG/Y=";
   };
 
   buildInputs = lib.optional stdenv.isDarwin libiconv;
diff --git a/pkgs/development/tools/build-managers/gradle/default.nix b/pkgs/development/tools/build-managers/gradle/default.nix
index 1e1b50f142ec..7252511af92d 100644
--- a/pkgs/development/tools/build-managers/gradle/default.nix
+++ b/pkgs/development/tools/build-managers/gradle/default.nix
@@ -128,9 +128,9 @@ rec {
   # https://docs.gradle.org/current/userguide/compatibility.html
 
   gradle_8 = gen {
-    version = "8.5";
+    version = "8.6";
     nativeVersion = "0.22-milestone-25";
-    hash = "sha256-nZJnhwZqCBc56CAIWDOLSmnoN8OoIaM6yp2wndSkECY=";
+    hash = "sha256-ljHVPPPnS/pyaJOu4fiZT+5OBgxAEzWUbbohVvRA8kw=";
     defaultJava = jdk21;
   };
 
diff --git a/pkgs/development/tools/build-managers/gup/default.nix b/pkgs/development/tools/build-managers/gup/default.nix
index c051b34dea35..202fdf4d296f 100644
--- a/pkgs/development/tools/build-managers/gup/default.nix
+++ b/pkgs/development/tools/build-managers/gup/default.nix
@@ -1,18 +1,17 @@
 { stdenv, fetchFromGitHub, nix-update-source, lib, python3
-, which, runtimeShell, pychecker ? null }:
+, which, runtimeShell, pylint }:
 stdenv.mkDerivation rec {
-  version = "0.8.4";
+  version = "0.9.0";
   src = fetchFromGitHub {
     owner = "timbertson";
     repo = "gup";
     rev = "version-${version}";
-    sha256 = "0b8q9mrr7b9silwc4mp733j1z18g4lp6ppdi8p2rxzgb2fb4bkvp";
+    sha256 = "12ck047jminfwb4cfzmvfc9dpxg25xian11jgly534rlcbmgmkgq";
   };
   pname = "gup";
-  nativeBuildInputs = [ python3 which pychecker ];
+  nativeBuildInputs = [ python3 which pylint ];
   buildInputs = [ python3 ];
   strictDeps = true;
-  SKIP_PYCHECKER = pychecker == null;
   buildPhase = "make python";
   installPhase = ''
     mkdir $out
diff --git a/pkgs/development/tools/build-managers/moon/default.nix b/pkgs/development/tools/build-managers/moon/default.nix
index 30f3c14c9d40..b8dc4d27b2b9 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.19.0";
+  version = "1.20.1";
 
   src = fetchFromGitHub {
     owner = "moonrepo";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-BjSe5N9rFsVL5EueCbBTcnIJM4TYd5q/1wrsANCyniU=";
+    hash = "sha256-wAY5jifyjK5jp5nlrwt/Krp96in06SnayTKx8inrf0A=";
   };
 
-  cargoHash = "sha256-tMqk0aI+ObxlgAOa1inL8mba9ti9Gxhg9mckmyNsuv8=";
+  cargoHash = "sha256-qfDw+zmhk0M3gItiB7qfgiQCBRvOYBOirJFMyNRr714=";
 
   env = {
     RUSTFLAGS = "-C strip=symbols";
diff --git a/pkgs/development/tools/build-managers/sbt/default.nix b/pkgs/development/tools/build-managers/sbt/default.nix
index 7e70d0c04afa..e554268e102a 100644
--- a/pkgs/development/tools/build-managers/sbt/default.nix
+++ b/pkgs/development/tools/build-managers/sbt/default.nix
@@ -32,7 +32,9 @@ stdenv.mkDerivation (finalAttrs: {
     mkdir -p $out/share/sbt $out/bin
     cp -ra . $out/share/sbt
     ln -sT ../share/sbt/bin/sbt $out/bin/sbt
-    ln -sT ../share/sbt/bin/sbtn-x86_64-${
+    ln -sT ../share/sbt/bin/sbtn-${
+      if (stdenv.hostPlatform.isAarch64) then "aarch64" else "x86_64"
+    }-${
       if (stdenv.isDarwin) then "apple-darwin" else "pc-linux"
     } $out/bin/sbtn
 
diff --git a/pkgs/development/tools/buildah/default.nix b/pkgs/development/tools/buildah/default.nix
index 81d00d6304e0..f67dba03c365 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.33.2";
+  version = "1.34.0";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "buildah";
     rev = "v${version}";
-    hash = "sha256-jkUEGaECBNidKreoyezWw7LN38uHqyYo40dOwfuuuI4=";
+    hash = "sha256-LX7yc2FnCiquHV/tESJV/VkuUYXbRNSxmMzVpSz/F8w=";
   };
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/development/tools/buildkit/default.nix b/pkgs/development/tools/buildkit/default.nix
index 8898ff89f371..19f418b543a1 100644
--- a/pkgs/development/tools/buildkit/default.nix
+++ b/pkgs/development/tools/buildkit/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "buildkit";
-  version = "0.12.4";
+  version = "0.12.5";
 
   src = fetchFromGitHub {
     owner = "moby";
     repo = "buildkit";
     rev = "v${version}";
-    hash = "sha256-nQvrd2W9xWWGTlwN5Q2E3rs67OUxZ4bIp+rK2W2PUww=";
+    hash = "sha256-LESaOrUxV/BHGW9JSZfTXpbedp1aegPFWu9/tRx2ArM=";
   };
 
   vendorHash = null;
diff --git a/pkgs/development/tools/buildpack/default.nix b/pkgs/development/tools/buildpack/default.nix
index 2d39fd93559d..57d10c8f1865 100644
--- a/pkgs/development/tools/buildpack/default.nix
+++ b/pkgs/development/tools/buildpack/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "pack";
-  version = "0.32.1";
+  version = "0.33.0";
 
   src = fetchFromGitHub {
     owner = "buildpacks";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-U3dSGTn9dV0Iiu0DtLCWF/BFHYhRGxirA5T067riA0w=";
+    hash = "sha256-c/8pKuFO4lii/Z32mYbTHiEedxDzB3wb6lQGOrLQfYM=";
   };
 
-  vendorHash = "sha256-42CrWLwBcv2GE+hEgJJOd7hFQu7rjYrXkPhhUykqIQw=";
+  vendorHash = "sha256-UCNpKBsdwWmllgIi/3Dr6lWJLOh6okYwOHmRfRW0iAQ=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/development/tools/capnproto-java/default.nix b/pkgs/development/tools/capnproto-java/default.nix
index cbda8c2cc97e..b96aa44a779c 100644
--- a/pkgs/development/tools/capnproto-java/default.nix
+++ b/pkgs/development/tools/capnproto-java/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "capnproto-java";
-  version = "0.1.15";
+  version = "0.1.16";
 
   src = fetchFromGitHub {
     owner = "capnproto";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256:IcmzI1G0mXOlpzmiyeLD7o1p/eOeVpwkiGsgy5OIjxw=";
+    hash = "sha256-7uYtRHKsJvbE1b0HbNXGbRXpkUHHLjMDIWLlOUcQWDk=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/tools/castxml/default.nix b/pkgs/development/tools/castxml/default.nix
index 9bfe91677a2e..1a7c15d9a963 100644
--- a/pkgs/development/tools/castxml/default.nix
+++ b/pkgs/development/tools/castxml/default.nix
@@ -17,13 +17,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "castxml";
-  version = "0.6.2";
+  version = "0.6.4";
 
   src = fetchFromGitHub {
     owner = "CastXML";
     repo = "CastXML";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-x27koa0q+rDqPmfHMf7v7KTx3bfDgqS/FkPAX5auqaw=";
+    hash = "sha256-6xeMkqsFchZxrAsE2DLaIzGU4VMwyDckm00s69wahOo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/tools/cddl/Gemfile.lock b/pkgs/development/tools/cddl/Gemfile.lock
index 796a7743cac5..24afe0d41838 100644
--- a/pkgs/development/tools/cddl/Gemfile.lock
+++ b/pkgs/development/tools/cddl/Gemfile.lock
@@ -1,23 +1,33 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    abnc (0.1.0)
-    cbor-diag (0.5.6)
-      json
+    abnc (0.1.1)
+    abnftt (0.2.4)
+    base32 (0.3.4)
+    cbor-canonical (0.1.2)
+    cbor-deterministic (0.1.3)
+    cbor-diag (0.8.7)
+      cbor-canonical
+      cbor-deterministic
+      cbor-packed
+      json_pure
       neatjson
       treetop (~> 1)
-    cddl (0.8.9)
+    cbor-packed (0.1.5)
+    cddl (0.10.3)
       abnc
+      abnftt
+      base32 (~> 0.3)
       cbor-diag
       colorize
-      json
+      json_pure
       regexp-examples
-    colorize (0.8.1)
-    json (2.2.0)
-    neatjson (0.9)
+    colorize (1.1.0)
+    json_pure (2.7.1)
+    neatjson (0.10.5)
     polyglot (0.3.5)
-    regexp-examples (1.5.0)
-    treetop (1.6.10)
+    regexp-examples (1.5.1)
+    treetop (1.6.12)
       polyglot (~> 0.3)
 
 PLATFORMS
@@ -27,4 +37,4 @@ DEPENDENCIES
   cddl
 
 BUNDLED WITH
-   2.1.4
+   2.3.25
diff --git a/pkgs/development/tools/cddl/default.nix b/pkgs/development/tools/cddl/default.nix
index 8fdae4b1c441..f99e547435ce 100644
--- a/pkgs/development/tools/cddl/default.nix
+++ b/pkgs/development/tools/cddl/default.nix
@@ -1,18 +1,41 @@
-{ lib, bundlerApp, bundlerUpdateScript }:
+{ lib
+, bundlerApp
+, bundlerUpdateScript
+, makeBinaryWrapper
+}:
 
-bundlerApp {
+bundlerApp rec {
   pname = "cddl";
 
-  gemdir = ./.;
+  gemfile = ./Gemfile;
+  lockfile = ./Gemfile.lock;
+
+  gemset = lib.recursiveUpdate (import ./gemset.nix) ({
+    "cddl" = {
+      dontBuild = false;
+      # setting env vars is not supported by patchShebangs
+      postPatch = ''
+        sed -i 's\#!/usr/bin/env RUBY_THREAD_VM_STACK_SIZE=5000000\#!/usr/bin/env\' bin/cddl
+      '';
+    };
+  });
+
   exes = [ "cddl" ];
 
+  nativeBuildInputs = [ makeBinaryWrapper ];
+
+  postBuild = ''
+    wrapProgram $out/bin/cddl \
+      --set RUBY_THREAD_VM_STACK_SIZE 5000000
+  '';
+
   passthru.updateScript = bundlerUpdateScript "cddl";
 
   meta = with lib; {
     description = "A parser, generator, and validator for CDDL";
     homepage    = "https://rubygems.org/gems/cddl";
     license     = with licenses; mit;
-    maintainers = with maintainers; [ fdns nicknovitski ];
+    maintainers = with maintainers; [ fdns nicknovitski amesgen ];
     platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/cddl/gemset.nix b/pkgs/development/tools/cddl/gemset.nix
index c1f1c64495e3..1f19c3920bdf 100644
--- a/pkgs/development/tools/cddl/gemset.nix
+++ b/pkgs/development/tools/cddl/gemset.nix
@@ -4,62 +4,112 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13nvzrk72nj130fs8bq8q3cfm48939rdzh7l31ncj5c4969hrbig";
+      sha256 = "0yj09gc9w208wsy0d45vzha4zfwxdpsqvkm9vms0chm4lxdwdg9x";
       type = "gem";
     };
-    version = "0.1.0";
+    version = "0.1.1";
+  };
+  abnftt = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1z7ibh0xv9mqk61rvvmz9fnfk6hffvnppqd8fx61vazjhisi9bcs";
+      type = "gem";
+    };
+    version = "0.2.4";
+  };
+  base32 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fjs0l3c5g9qxwp43kcnhc45slx29yjb6m6jxbb2x1krgjmi166b";
+      type = "gem";
+    };
+    version = "0.3.4";
+  };
+  cbor-canonical = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fhj51s5d9b9spw096sb0p92bgilw9hrsay383563dh913j2jn11";
+      type = "gem";
+    };
+    version = "0.1.2";
+  };
+  cbor-deterministic = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1w1mg4mn1dhlxlbijxpzja8m8ggrjs0hzkzvnaazw9zm1ji6dpba";
+      type = "gem";
+    };
+    version = "0.1.3";
   };
   cbor-diag = {
-    dependencies = ["json" "neatjson" "treetop"];
+    dependencies = ["cbor-canonical" "cbor-deterministic" "cbor-packed" "json_pure" "neatjson" "treetop"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rwd88xngbjamgydj9rg3wvgl53pfzhal2n702s9afa1yp8mjm51";
+      type = "gem";
+    };
+    version = "0.8.7";
+  };
+  cbor-packed = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pd0k4malg1l7w3ck5glh9w0hrsvknk8rp32vrir74yww1g6yplv";
+      sha256 = "1dijyj7rivi39h34f32fx7k4xvngldf569i0372n1z6w01nv761l";
       type = "gem";
     };
-    version = "0.5.6";
+    version = "0.1.5";
   };
   cddl = {
-    dependencies = ["abnc" "cbor-diag" "colorize" "json" "regexp-examples"];
+    dependencies = ["abnc" "abnftt" "base32" "cbor-diag" "colorize" "json_pure" "regexp-examples"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "16rmcrsxwx33pj25g1si0dhjdl2brfhy2vlpfwdb6qqkaikmzhpz";
+      sha256 = "1qll1qvn3g75r742kr4da7240zdk2qj4vh325965rrjqp8brz23q";
       type = "gem";
     };
-    version = "0.8.9";
+    version = "0.10.3";
   };
   colorize = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "133rqj85n400qk6g3dhf2bmfws34mak1wqihvh3bgy9jhajw580b";
+      sha256 = "0dy8ryhcdzgmbvj7jpa1qq3bhhk1m7a2pz6ip0m6dxh30rzj7d9h";
       type = "gem";
     };
-    version = "0.8.1";
+    version = "1.1.0";
   };
-  json = {
+  json_pure = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0sx97bm9by389rbzv8r1f43h06xcz8vwi3h5jv074gvparql7lcx";
+      sha256 = "09w7f7xlcas9irlaavhz0rnh17cjvjmmqm07drgghx5gwjcrar31";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "2.7.1";
   };
   neatjson = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0fa2v7b6433j0iqh5iq9r71v7a5xabgjvqwsbl21vcsac7vf3ncw";
+      sha256 = "0wm1lq8yl6rzysh3wg6fa55w5534k6ppiz0qb7jyvdy582mk5i0s";
       type = "gem";
     };
-    version = "0.9";
+    version = "0.10.5";
   };
   polyglot = {
     groups = ["default"];
@@ -76,10 +126,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08s5d327i9dw5yjwv9vfss3qb7lwasjyc75wvh7vrdi5v4vm1y2k";
+      sha256 = "0wfkwczjn62qq3z96dxk43m0gh6d5cajx9pxkanvk88d3yqnx29v";
       type = "gem";
     };
-    version = "1.5.0";
+    version = "1.5.1";
   };
   treetop = {
     dependencies = ["polyglot"];
@@ -87,9 +137,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g31pijhnv7z960sd09lckmw9h8rs3wmc8g4ihmppszxqm99zpv7";
+      sha256 = "0adc8qblz8ii668r3rksjx83p675iryh52rvdvysimx2hkbasj7d";
       type = "gem";
     };
-    version = "1.6.10";
+    version = "1.6.12";
   };
 }
diff --git a/pkgs/development/tools/changie/default.nix b/pkgs/development/tools/changie/default.nix
index 7b155d4c40ba..bd52641f2be5 100644
--- a/pkgs/development/tools/changie/default.nix
+++ b/pkgs/development/tools/changie/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "changie";
-  version = "1.17.0";
+  version = "1.18.0";
 
   src = fetchFromGitHub {
     owner = "miniscruff";
     repo = "changie";
     rev = "v${version}";
-    hash = "sha256-IS4KKvAi4VutJADSpst56ZdeqoqVkSMQ1TyQR12pqNg=";
+    hash = "sha256-pZe9T/WALFX5xwCiZKbf8fpaG3wmBJbqgM7FTPqlN2k=";
   };
 
-  vendorHash = "sha256-JmK7bcS8UYCOUvJGs0PAYPNc8iwvCSFzjLlkBEVUa40=";
+  vendorHash = "sha256-SdaDu9LXgelSEXdOCAbtvt1LnrSVpAIoN6MDSjTeEOs=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/development/tools/check-jsonschema/default.nix b/pkgs/development/tools/check-jsonschema/default.nix
index 3731e3e7e5f3..3591e5a2515f 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.27.3";
+  version = "0.27.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -12,8 +12,8 @@ buildPythonApplication rec {
   src = fetchFromGitHub {
     owner = "python-jsonschema";
     repo = "check-jsonschema";
-    rev = version;
-    hash = "sha256-WXvhlkU1dRNKhW3sMakd644W56xv8keMjSZL4MrQEc8=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-xOLS2AQlVrL9b7VVCbnDyjHhQYmcD2DvPmEs+nn7Gm4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/tools/cloudsmith-cli/default.nix b/pkgs/development/tools/cloudsmith-cli/default.nix
index ee3cd5ac33a3..48952c0616fb 100644
--- a/pkgs/development/tools/cloudsmith-cli/default.nix
+++ b/pkgs/development/tools/cloudsmith-cli/default.nix
@@ -5,13 +5,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "cloudsmith-cli";
-  version = "0.35.2";
+  version = "1.1.1";
   format = "wheel";
 
   src = fetchPypi {
     pname = "cloudsmith_cli";
     inherit format version;
-    hash = "sha256-+M4CPveS9dltMI291Atm84T/cf4dPOO3wPvPI15E73Y=";
+    hash = "sha256-evwXXGmGa6V2LhgkmX04E5VvdPxeZzvl4F28auXcSng=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/development/tools/continuous-integration/buildbot/master.nix b/pkgs/development/tools/continuous-integration/buildbot/master.nix
index d57e11fb07ab..d2554713109c 100644
--- a/pkgs/development/tools/continuous-integration/buildbot/master.nix
+++ b/pkgs/development/tools/continuous-integration/buildbot/master.nix
@@ -70,14 +70,14 @@ let
 
   package = buildPythonApplication rec {
     pname = "buildbot";
-    version = "3.10.1";
+    version = "3.11.0";
     format = "pyproject";
 
     disabled = pythonOlder "3.8";
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-/J4jWoIZEObSZKw04Ib6h4AvJtfNwzwozRu+gFek1Dk=";
+      hash = "sha256-0TW14K0Cp3Ylk+JDNV9x7a8Ul7EC5FTTVvSGccXv6JU=";
     };
 
     propagatedBuildInputs = [
diff --git a/pkgs/development/tools/continuous-integration/buildbot/pkg.nix b/pkgs/development/tools/continuous-integration/buildbot/pkg.nix
index 88b03f46a362..80c417066428 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-6lJW1XNwKXeTTn0jDOIsVHUrmxSWc4iK3gINvTFX2XU=";
+    hash = "sha256-ImXiBIFSj0of2SFX01sXB5BI4TYA2IAGmfPofC8ERZQ=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/tools/continuous-integration/buildbot/plugins.nix b/pkgs/development/tools/continuous-integration/buildbot/plugins.nix
index 5e9f056f3708..4d2253c54d61 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-W0NRRS0z02/31eyqVRGJUZlUaI77I9WuAI3d3FlWHOQ=";
+      hash = "sha256-bu22WXJ2yBGe89GL3RBxkUN/yPu2GEYURk6C+2LIpns=";
     };
 
     # Remove unnecessary circular dependency on buildbot
@@ -35,7 +35,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-NfpgTZ0+sP2U8rkf+C4WTpXKVBvO8T+ijs8xIPe49tA=";
+      hash = "sha256-WDtw4wSAPsmIRcoZS1PIRzQR4OJnHVyc19Q7MnU5VSs=";
     };
 
     # Remove unnecessary circular dependency on buildbot
@@ -62,7 +62,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-ykzzvsxP8e0TIHnZJPSnFJoZNNZDvbZ7vZ6hCZyd0iA=";
+      hash = "sha256-HGlKu9ptej35GJYBBWted/YtsH/uigckAoFAjYTh3gY=";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -84,7 +84,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-U0j/ovoP3A83BzQWF4dtwisJxs00mZz0yyT12mlxfGo=";
+      hash = "sha256-oFbR4NvI/6oPXY8TospkHS1j/5KzXd1fguazFtDPIko=";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -106,7 +106,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-cu0+66DHf8Hfvfx/IvVyexwl3I0MmLjJrNDBPLxo7Bg=";
+      hash = "sha256-O4scYAKpoEOXsPIodkKUrfwCGNYHlOGfvDnguaM12U0=";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -128,7 +128,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-vt7ea0IWIKn4i8sBUUMsoOMi1gPzzFssQ6wORDClJqs=";
+      hash = "sha256-DlYqK32lVdZ8qby/1+JCo6m81/0dsxqiAfWMIZ1OAPQ=";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -150,7 +150,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-Fd8r2+jV4YSuYu6zUl0fDjEdUGkzuHckR+PTSEyoXio=";
+      hash = "sha256-cK+uZU7rG423IT8xvwrpMPiUXfu1oPpGB5onmWNK4fs=";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -172,7 +172,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-Q8gwqUfMy+D9dPBSw60BhNV12iu9mjhc7KXKYjtO23s=";
+      hash = "sha256-Gbc0T1fsmke1pO/LiXCzQYrjWzYG1WhHZgypLyzhfok=";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -194,7 +194,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-LzsdHTABtHJzEfkyJ6LbmLE0QmKA3DVjY8VP90O3jT4=";
+      hash = "sha256-eFfOYhKw575VWlwD5dKRnqjSUV6kdPrv3UXBs/3AREo=";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -210,13 +210,35 @@
     };
   };
 
+  react-wsgi-dashboards = buildPythonPackage rec {
+    pname = "buildbot-react-wsgi-dashboards";
+    inherit (buildbot-pkg) version;
+
+    src = fetchPypi {
+      inherit pname version;
+      hash = "sha256-0CCD1Zrj1xodUITvLzTDrLgLGaEVqt8y26f+exsP4N8=";
+    };
+
+    buildInputs = [ buildbot-pkg ];
+
+    # tests fail
+    doCheck = false;
+
+    meta = with lib; {
+      homepage = "https://buildbot.net/";
+      description = "Buildbot WSGI dashboards Plugin (React)";
+      maintainers = teams.buildbot.members;
+      license = licenses.gpl2;
+    };
+  };
+
   badges = buildPythonPackage rec {
     pname = "buildbot-badges";
     inherit (buildbot-pkg) version;
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-tVMXGYTZlkchfeEcHh3B/wGEZb8xUemtnbFzX65tvb8=";
+      hash = "sha256-FNMspluhQlGgQ4X7gJisakHTTmn/5PtQ+obK26PrXdg=";
     };
 
     buildInputs = [ buildbot-pkg ];
diff --git a/pkgs/development/tools/continuous-integration/buildbot/worker.nix b/pkgs/development/tools/continuous-integration/buildbot/worker.nix
index c87b8db563c9..eb613858f463 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-jihAPEzeegUEa/BZ93De7728IXjL7BkrwfPk5G6rnUw=";
+    hash = "sha256-7zpf1Xl5dYPJk8V5PQCx/v+sE9kH23UWM9QbE0fH4tA=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/tools/continuous-integration/cirrus-cli/default.nix b/pkgs/development/tools/continuous-integration/cirrus-cli/default.nix
index a9fdd32470bf..4972f2cd90b1 100644
--- a/pkgs/development/tools/continuous-integration/cirrus-cli/default.nix
+++ b/pkgs/development/tools/continuous-integration/cirrus-cli/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "cirrus-cli";
-  version = "0.108.2";
+  version = "0.110.0";
 
   src = fetchFromGitHub {
     owner = "cirruslabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-3vlhT/BevVg0GSHNT/g4aomdgj/6Od3WiUywhdsfySE=";
+    sha256 = "sha256-5BMaOuiXz8SMfaB7qFvCyboGFKxzenkEVwj25Qh4MKw=";
   };
 
-  vendorHash = "sha256-2PlgTvGCNB7kfpM4CeBQJkSmtvX1zkA53pSvh8VwuEk=";
+  vendorHash = "sha256-xJnBMSfYwx6uHuMjyR9IWGHwt3fNajDr6DW8o+J+lj8=";
 
   ldflags = [
     "-X github.com/cirruslabs/cirrus-cli/internal/version.Version=v${version}"
diff --git a/pkgs/development/tools/continuous-integration/drone-cli/default.nix b/pkgs/development/tools/continuous-integration/drone-cli/default.nix
index ce5849048a66..84432b82d495 100644
--- a/pkgs/development/tools/continuous-integration/drone-cli/default.nix
+++ b/pkgs/development/tools/continuous-integration/drone-cli/default.nix
@@ -4,7 +4,7 @@
 }:
 
 buildGoModule rec {
-  version = "1.7.0";
+  version = "1.8.0";
   pname = "drone-cli";
   revision = "v${version}";
 
@@ -12,10 +12,10 @@ buildGoModule rec {
     owner = "harness";
     repo = "drone-cli";
     rev = revision;
-    hash = "sha256-PZ0M79duSctPepD5O+NdJZKhkyR21g/4P6loJtoWZiU=";
+    hash = "sha256-moxsGlm7Q9E0q9SZ2gZotn3tRbnbtwhDc9UNCCSb3pY=";
   };
 
-  vendorHash = "sha256-JC7OR4ySDsVWmrBBTjpwZrkJlM8RJehbsvXW/VtA4VA=";
+  vendorHash = "sha256-rKZq2vIXvw4bZ6FXPqOip9dLiV5rSb1fWDJe3oxOBjw=";
 
   # patch taken from https://patch-diff.githubusercontent.com/raw/harness/drone-cli/pull/179.patch
   # but with go.mod changes removed due to conflict
diff --git a/pkgs/development/tools/continuous-integration/fly/default.nix b/pkgs/development/tools/continuous-integration/fly/default.nix
index 55df9269f927..8c07f2ebb910 100644
--- a/pkgs/development/tools/continuous-integration/fly/default.nix
+++ b/pkgs/development/tools/continuous-integration/fly/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "fly";
-  version = "7.11.0";
+  version = "7.11.1";
 
   src = fetchFromGitHub {
     owner = "concourse";
     repo = "concourse";
     rev = "v${version}";
-    hash = "sha256-lp6EXdwmgmjhFxRQXn2P4iRrtJS1QTvg4225V/6E7MI=";
+    hash = "sha256-zbE81vsO3rhXrPGL11lBqg3lryndaHEbW+CBxP6PlPA=";
   };
 
-  vendorHash = "sha256-p3EhXrRjAFG7Ayfj/ArAWO7KL3S/iR/nwFwXcDc+DSs=";
+  vendorHash = "sha256-Os76Kim+qznVtSY+GF3jgKz7Vmf7mRTcjZ6v8NnFY2U=";
 
   subPackages = [ "fly" ];
 
diff --git a/pkgs/development/tools/continuous-integration/github-runner/default.nix b/pkgs/development/tools/continuous-integration/github-runner/default.nix
index c0c15a121738..04dde366d8ad 100644
--- a/pkgs/development/tools/continuous-integration/github-runner/default.nix
+++ b/pkgs/development/tools/continuous-integration/github-runner/default.nix
@@ -23,13 +23,13 @@ assert builtins.all (x: builtins.elem x [ "node20" ]) nodeRuntimes;
 
 buildDotnetModule rec {
   pname = "github-runner";
-  version = "2.311.0";
+  version = "2.312.0";
 
   src = fetchFromGitHub {
     owner = "actions";
     repo = "runner";
     rev = "v${version}";
-    hash = "sha256-71SwPuX1XZygT/TdAHECudxFxsQuXrl/tcAYVAxfxfI=";
+    hash = "sha256-gSxo73o/5B6RsR5fNQ8pCv/adXrZdVPwFK4Sjwa3ZIQ=";
     leaveDotGit = true;
     postFetch = ''
       git -C $out rev-parse --short HEAD > $out/.git-revision
@@ -160,6 +160,11 @@ buildDotnetModule rec {
       "UseExternalsTrimmedPackage"
       "ValidateHash"
     ]
+    ++ map (x: "GitHub.Runner.Common.Tests.Listener.SelfUpdaterV2L0.${x}") [
+      "TestSelfUpdateAsync_DownloadRetry"
+      "TestSelfUpdateAsync_ValidateHash"
+      "TestSelfUpdateAsync"
+    ]
     ++ map (x: "GitHub.Runner.Common.Tests.Worker.ActionManagerL0.PrepareActions_${x}") [
       "CompositeActionWithActionfile_CompositeContainerNested"
       "CompositeActionWithActionfile_CompositePrestepNested"
diff --git a/pkgs/development/tools/continuous-integration/github-runner/deps.nix b/pkgs/development/tools/continuous-integration/github-runner/deps.nix
index eef1830e147b..d2db24600350 100644
--- a/pkgs/development/tools/continuous-integration/github-runner/deps.nix
+++ b/pkgs/development/tools/continuous-integration/github-runner/deps.nix
@@ -2,8 +2,12 @@
 # Please dont edit it manually, your changes might get overwritten!
 
 { fetchNuGet }: [
+  (fetchNuGet { pname = "Azure.Core"; version = "1.36.0"; sha256 = "14lsc6zik7s5by3gp86pf77wh58fcqrjy2xhx5p03gmhdn6iz2cn"; })
+  (fetchNuGet { pname = "Azure.Storage.Blobs"; version = "12.19.1"; sha256 = "0rdgvlbqkcyc356xs0wzwbm92lf95621mf2shk30i3ahp0k0gd0k"; })
+  (fetchNuGet { pname = "Azure.Storage.Common"; version = "12.18.1"; sha256 = "1hjzggfv24598601jhcdfcaflbd5b97aglhxy7a5ymy1aszhwp9k"; })
   (fetchNuGet { pname = "Castle.Core"; version = "4.4.0"; sha256 = "0rpcbmyhckvlvp6vbzpj03c1gqz56ixc6f15vgmxmyf1g40c24pf"; })
   (fetchNuGet { pname = "Microsoft.AspNet.WebApi.Client"; version = "5.2.9"; sha256 = "1sy1q36bm9fz3gi780w4jgysw3dwaz2f3a5gcn6jxw1gkmdasb08"; })
+  (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "1.1.1"; sha256 = "0a1ahssqds2ympr7s4xcxv5y8jgxs7ahd6ah6fbgglj4rki1f1vw"; })
   (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.2.0"; sha256 = "018yl113i037m5qhm3z6csb0c4l8kj412dxw2dagdbj07qbxwikj"; })
   (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
   (fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "5.2.1"; sha256 = "1gpka9jm2gl6f07pcwzwvaxw9xq1a19i9fskn0qs921c5grhlp3g"; })
@@ -109,6 +113,7 @@
   (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.0.11-rc2-24027"; sha256 = "11rz0kdzk4bw9yc85jmskxla7i1bs61kladqzvymrg8xn3lk488a"; })
   (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 = "6.0.1"; sha256 = "17h8bkcv0vf9a7gp9ajkd107zid98wql5kzlzwrjm5nm92nk0bsy"; })
   (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
   (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.0.1-rc2-24027"; sha256 = "080gd86c1pkfkzz67ispkzxc426lfh82zajayiizbgwd6yqa7fv5"; })
   (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; })
@@ -138,11 +143,13 @@
   (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; })
   (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.0.1-rc2-24027"; sha256 = "04q3sxrfxqgig9scmxblxlb6n6fypv535lby26pi20ixszs19dxc"; })
   (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
+  (fetchNuGet { pname = "System.IO.Hashing"; version = "6.0.0"; sha256 = "0lga30s3cllg2jkwldgabwrb0jg3dzj859bwj95xhnm3zcklnb41"; })
   (fetchNuGet { pname = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
   (fetchNuGet { pname = "System.Linq"; version = "4.1.0-rc2-24027"; sha256 = "0icbsy0vq07achclz32jvnnfdchkgylsjj67gra3fn5906s40n24"; })
   (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.Memory.Data"; version = "1.0.2"; sha256 = "1p8qdg0gzxhjvabryc3xws2629pj8w5zz2iqh86kw8sh0rann9ay"; })
   (fetchNuGet { pname = "System.Net.Http"; version = "4.3.0"; sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j"; })
   (fetchNuGet { pname = "System.Net.Http"; version = "4.3.4"; sha256 = "0kdp31b8819v88l719j6my0yas6myv9d1viql3qz5577mv819jhl"; })
   (fetchNuGet { pname = "System.Net.NameResolution"; version = "4.3.0"; sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq"; })
@@ -150,6 +157,7 @@
   (fetchNuGet { pname = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
   (fetchNuGet { pname = "System.Net.Sockets"; version = "4.1.0-rc2-24027"; sha256 = "062kbbvm17nhwmcxjnakfv3i23vrk6c9gmz6x8q79kcr5hxr40qs"; })
   (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.0.12-rc2-24027"; sha256 = "065p89awfiz9kb304hqs7wkfpykd9z9kkv84ihm813msv54i8lvj"; })
   (fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
@@ -180,6 +188,7 @@
   (fetchNuGet { pname = "System.Runtime"; version = "4.1.0-rc2-24027"; sha256 = "1g5ghiyfb8njzfz39cswizjbxgaamil7kgkzgab93fhgk7jksmyg"; })
   (fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
   (fetchNuGet { pname = "System.Runtime"; version = "4.3.1"; sha256 = "03ch4d2acf6q037a4njxpll2kkx3dwzlg07yxr4z5m6j1kqgmm27"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "6.0.0"; sha256 = "0qm741kh4rh57wky16sq4m0v05fxmkjjr87krycf5vp9f0zbahbc"; })
   (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; })
   (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.1.0-rc2-24027"; sha256 = "09k4c6is31dpccwgb749055m2ad0b84rnapk69fmj3wjswacg26p"; })
   (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
@@ -221,6 +230,8 @@
   (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
   (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.0.11-rc2-24027"; sha256 = "02xic3hhfy48s50bxh25as1l9v3afgrhlxqfnd5ki4qirxly7qs6"; })
   (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.Json"; version = "4.7.2"; sha256 = "10xj1pw2dgd42anikvj9qm23ccssrcp7dpznpj4j7xjp1ikhy3y4"; })
   (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.Text.RegularExpressions"; version = "4.3.1"; sha256 = "1hr4qqzrij3y2ayi8jj70yfg0i9imf6fpdam1gr8qgp795kh86qg"; })
@@ -235,6 +246,7 @@
   (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.0.0-rc2-24027"; sha256 = "108sdqpy3ga6gzksl59w1k21a3jlrh8x2igyxh3dm3212rca1pyg"; })
   (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
   (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.1"; sha256 = "1ikrplvw4m6pzjbq3bfbpr572n4i9mni577zvmrkaygvx85q3myw"; })
+  (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.0.1-rc2-24027"; sha256 = "06kwi42lgf3zw3b5yw668ammbjl6208y182wyqaaqrxgn5gs4yh7"; })
   (fetchNuGet { pname = "System.Threading.Timer"; version = "4.3.0"; sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56"; })
diff --git a/pkgs/development/tools/continuous-integration/jenkins/default.nix b/pkgs/development/tools/continuous-integration/jenkins/default.nix
index 0298fe20055a..e88c92d83b0d 100644
--- a/pkgs/development/tools/continuous-integration/jenkins/default.nix
+++ b/pkgs/development/tools/continuous-integration/jenkins/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "jenkins";
-  version = "2.426.2";
+  version = "2.426.3";
 
   src = fetchurl {
     url = "https://get.jenkins.io/war-stable/${version}/jenkins.war";
-    hash = "sha256-NzG59Elz+78+U1+YqAwhqtlxnLTuqKHlnpdMEf6EaEg=";
+    hash = "sha256-q0OSQ6agfi54/nw0CMWWCfe+O/JolHrCFGV6+Wq60QY=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/continuous-integration/woodpecker-plugin-git/default.nix b/pkgs/development/tools/continuous-integration/woodpecker-plugin-git/default.nix
index a3f27e533e7d..c05800237637 100644
--- a/pkgs/development/tools/continuous-integration/woodpecker-plugin-git/default.nix
+++ b/pkgs/development/tools/continuous-integration/woodpecker-plugin-git/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "woodpecker-plugin-git";
-  version = "2.4.0";
+  version = "2.5.0";
 
   src = fetchFromGitHub {
     owner = "woodpecker-ci";
     repo = "plugin-git";
     rev = "refs/tags/${version}";
-    hash = "sha256-9aK6c2uUBhTzBni6S4XwevdVRxswiMYGJKwmKOGHIbg=";
+    hash = "sha256-vQcHEsOJFMbrt5KpoHB59g5gIxwXQuJpudhu2qbgCY8=";
   };
 
-  vendorHash = "sha256-ol5k37gGFsyeEnGOVcJaerkIejShHyNCBu4RZ8WyHvU=";
+  vendorHash = "sha256-nPeF6Z+d69o1JwCUlzVREx8DyIqokHIfTRC1/S5XG6A=";
 
   CGO_ENABLED = "0";
 
diff --git a/pkgs/development/tools/continuous-integration/woodpecker/common.nix b/pkgs/development/tools/continuous-integration/woodpecker/common.nix
index cdb54fa07f71..bad183d98125 100644
--- a/pkgs/development/tools/continuous-integration/woodpecker/common.nix
+++ b/pkgs/development/tools/continuous-integration/woodpecker/common.nix
@@ -1,18 +1,17 @@
-{ lib, fetchFromGitHub }:
+{ lib, fetchzip }:
 let
-  version = "1.0.5";
-  srcHash = "sha256-tkgkhYuLHfmT42P+UMZ7uNB2wBKo0YGiw0a5RoMAu6M=";
-  vendorHash = "sha256-QTTnTPOgP+FlbqXNCGJc9VuBzQcMujpvFB3+DykYTPY=";
-  yarnHash = "sha256-TrcTc5svLLSedRC8gCwIBW7/mtHo+uSNZGImtRiVJ0w=";
+  version = "2.3.0";
+  srcHash = "sha256-r5TV5WJW2klSlrOG6EjfUgLyHhMI+BMUTY/2JIUgd0Q=";
+  # The tarball contains vendored dependencies
+  vendorHash = null;
 in
 {
-  inherit version yarnHash vendorHash;
+  inherit version vendorHash;
 
-  src = fetchFromGitHub {
-    owner = "woodpecker-ci";
-    repo = "woodpecker";
-    rev = "v${version}";
+  src = fetchzip {
+    url = "https://github.com/woodpecker-ci/woodpecker/releases/download/v${version}/woodpecker-src.tar.gz";
     hash = srcHash;
+    stripRoot = false;
   };
 
   postInstall = ''
@@ -26,7 +25,7 @@ in
   ldflags = [
     "-s"
     "-w"
-    "-X github.com/woodpecker-ci/woodpecker/version.Version=${version}"
+    "-X go.woodpecker-ci.org/woodpecker/v2/version.Version=${version}"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/tools/continuous-integration/woodpecker/frontend.nix b/pkgs/development/tools/continuous-integration/woodpecker/frontend.nix
deleted file mode 100644
index 01767d6fe00e..000000000000
--- a/pkgs/development/tools/continuous-integration/woodpecker/frontend.nix
+++ /dev/null
@@ -1,57 +0,0 @@
-{ lib, buildPackages, callPackage, fetchFromGitHub, fetchYarnDeps, mkYarnPackage }:
-let
-  common = callPackage ./common.nix { };
-
-  esbuild_0_17_19 = buildPackages.esbuild.overrideAttrs (_: rec {
-    version = "0.17.19";
-
-    src = fetchFromGitHub {
-      owner = "evanw";
-      repo = "esbuild";
-      rev = "v${version}";
-      hash = "sha256-PLC7OJLSOiDq4OjvrdfCawZPfbfuZix4Waopzrj8qsU=";
-    };
-
-    vendorHash = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ=";
-  });
-in
-mkYarnPackage {
-  pname = "woodpecker-frontend";
-  inherit (common) version;
-
-  src = "${common.src}/web";
-
-  packageJSON = ./woodpecker-package.json;
-  yarnLock = ./yarn.lock;
-
-  offlineCache = fetchYarnDeps {
-    yarnLock = ./yarn.lock;
-    hash = common.yarnHash;
-  };
-
-  ESBUILD_BINARY_PATH = lib.getExe esbuild_0_17_19;
-
-  buildPhase = ''
-    runHook preBuild
-
-    yarn --offline build
-
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-
-    cp -R deps/woodpecker-ci/dist $out
-    echo "${common.version}" > "$out/version"
-
-    runHook postInstall
-  '';
-
-  # Do not attempt generating a tarball for woodpecker-frontend again.
-  doDist = false;
-
-  meta = common.meta // {
-    description = "Woodpecker Continuous Integration server frontend";
-  };
-}
diff --git a/pkgs/development/tools/continuous-integration/woodpecker/server.nix b/pkgs/development/tools/continuous-integration/woodpecker/server.nix
index 874949dff2f4..fb232a19ba2e 100644
--- a/pkgs/development/tools/continuous-integration/woodpecker/server.nix
+++ b/pkgs/development/tools/continuous-integration/woodpecker/server.nix
@@ -1,4 +1,4 @@
-{ buildGoModule, callPackage, woodpecker-frontend }:
+{ buildGoModule, callPackage }:
 let
   common = callPackage ./common.nix { };
 in
@@ -6,17 +6,11 @@ buildGoModule {
   pname = "woodpecker-server";
   inherit (common) version src ldflags postInstall vendorHash;
 
-  postPatch = ''
-    cp -r ${woodpecker-frontend} web/dist
-  '';
-
   subPackages = "cmd/server";
 
   CGO_ENABLED = 1;
 
   passthru = {
-    inherit woodpecker-frontend;
-
     updateScript = ./update.sh;
   };
 
diff --git a/pkgs/development/tools/continuous-integration/woodpecker/update.sh b/pkgs/development/tools/continuous-integration/woodpecker/update.sh
index bfe948e8f507..4ee52f9aded2 100755
--- a/pkgs/development/tools/continuous-integration/woodpecker/update.sh
+++ b/pkgs/development/tools/continuous-integration/woodpecker/update.sh
@@ -1,5 +1,5 @@
 #!/usr/bin/env nix-shell
-#!nix-shell -i bash -p nix wget prefetch-yarn-deps nix-prefetch-github jq nix-prefetch pnpm-lock-export
+#!nix-shell -i bash -p nix wget jq nix-prefetch
 
 # shellcheck shell=bash
 
@@ -26,28 +26,9 @@ fi
 
 # strip leading "v"
 version="${version#v}"
+sed -i -E -e "s#version = \".*\"#version = \"$version\"#" common.nix
 
 # Woodpecker repository
-src_hash=$(nix-prefetch-github woodpecker-ci woodpecker --rev "v${version}" | jq -r .hash)
-
-# Go modules
-vendorHash=$(nix-prefetch '{ sha256 }: (callPackage (import ./cli.nix) { }).goModules.overrideAttrs (_: { modHash = sha256; })')
-
-# Front-end dependencies
-woodpecker_src="https://raw.githubusercontent.com/woodpecker-ci/woodpecker/v$version"
-wget "${TOKEN_ARGS[@]}" "$woodpecker_src/web/package.json" -O woodpecker-package.json
-
-trap 'rm -rf pnpm-lock.yaml' EXIT
-wget "${TOKEN_ARGS[@]}" "$woodpecker_src/web/pnpm-lock.yaml"
-pnpm-lock-export --schema yarn.lock@v1
-yarn_hash=$(prefetch-yarn-deps yarn.lock)
-
-# Use friendlier hashes
+src_hash=$(nix-prefetch-url --type sha256 --unpack "https://github.com/woodpecker-ci/woodpecker/releases/download/v$version/woodpecker-src.tar.gz")
 src_hash=$(nix hash to-sri --type sha256 "$src_hash")
-vendorHash=$(nix hash to-sri --type sha256 "$vendorHash")
-yarn_hash=$(nix hash to-sri --type sha256 "$yarn_hash")
-
-sed -i -E -e "s#version = \".*\"#version = \"$version\"#" common.nix
 sed -i -E -e "s#srcHash = \".*\"#srcHash = \"$src_hash\"#" common.nix
-sed -i -E -e "s#vendorHash = \".*\"#vendorHash = \"$vendorHash\"#" common.nix
-sed -i -E -e "s#yarnHash = \".*\"#yarnHash = \"$yarn_hash\"#" common.nix
diff --git a/pkgs/development/tools/continuous-integration/woodpecker/woodpecker-package.json b/pkgs/development/tools/continuous-integration/woodpecker/woodpecker-package.json
deleted file mode 100644
index 565c05aa8c2d..000000000000
--- a/pkgs/development/tools/continuous-integration/woodpecker/woodpecker-package.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
-  "name": "woodpecker-ci",
-  "author": "Woodpecker CI",
-  "version": "0.0.0",
-  "license": "Apache-2.0",
-  "engines": {
-    "node": ">=14"
-  },
-  "scripts": {
-    "start": "vite",
-    "build": "vite build --base=/BASE_PATH",
-    "serve": "vite preview",
-    "lint": "eslint --max-warnings 0 --ext .js,.ts,.vue,.json .",
-    "formatcheck": "prettier -c .",
-    "format:fix": "prettier --write .",
-    "typecheck": "vue-tsc --noEmit",
-    "test": "echo 'No tests configured' && exit 0"
-  },
-  "dependencies": {
-    "@intlify/unplugin-vue-i18n": "^0.10.1",
-    "@kyvg/vue3-notification": "^2.9.1",
-    "@vueuse/core": "^9.13.0",
-    "ansi_up": "^5.2.1",
-    "dayjs": "^1.11.9",
-    "floating-vue": "^2.0.0-beta.24",
-    "fuse.js": "^6.6.2",
-    "humanize-duration": "^3.28.0",
-    "javascript-time-ago": "^2.5.9",
-    "lodash": "^4.17.21",
-    "node-emoji": "^1.11.0",
-    "pinia": "^2.1.4",
-    "prismjs": "^1.29.0",
-    "vue": "^3.3.4",
-    "vue-i18n": "^9.2.2",
-    "vue-router": "^4.2.2"
-  },
-  "devDependencies": {
-    "@iconify/json": "^2.2.85",
-    "@types/humanize-duration": "^3.27.1",
-    "@types/javascript-time-ago": "^2.0.3",
-    "@types/lodash": "^4.14.195",
-    "@types/node": "^18.16.19",
-    "@types/node-emoji": "^1.8.2",
-    "@types/prismjs": "^1.26.0",
-    "@typescript-eslint/eslint-plugin": "^5.60.1",
-    "@typescript-eslint/parser": "^5.60.1",
-    "@vitejs/plugin-vue": "^4.2.3",
-    "@vue/compiler-sfc": "^3.3.4",
-    "eslint": "^8.44.0",
-    "eslint-config-airbnb-base": "^15.0.0",
-    "eslint-config-airbnb-typescript": "^17.0.0",
-    "eslint-config-prettier": "^8.8.0",
-    "eslint-plugin-import": "^2.27.5",
-    "eslint-plugin-prettier": "^4.2.1",
-    "eslint-plugin-promise": "^6.1.1",
-    "eslint-plugin-simple-import-sort": "^10.0.0",
-    "eslint-plugin-vue": "^9.15.1",
-    "eslint-plugin-vue-scoped-css": "^2.5.0",
-    "prettier": "^2.8.8",
-    "typescript": "5.0.3",
-    "unplugin-icons": "^0.16.3",
-    "unplugin-vue-components": "^0.24.1",
-    "vite": "^4.3.9",
-    "vite-plugin-prismjs": "^0.0.8",
-    "vite-plugin-windicss": "^1.9.0",
-    "vite-svg-loader": "^4.0.0",
-    "vue-eslint-parser": "^9.3.1",
-    "vue-tsc": "^1.8.3",
-    "windicss": "^3.5.6"
-  },
-  "pnpm": {
-    "overrides": {
-      "semver@<7.5.2": ">=7.5.2",
-      "postcss@<8.4.31": ">=8.4.31"
-    }
-  }
-}
diff --git a/pkgs/development/tools/continuous-integration/woodpecker/yarn.lock b/pkgs/development/tools/continuous-integration/woodpecker/yarn.lock
deleted file mode 100644
index cf7c076e748b..000000000000
--- a/pkgs/development/tools/continuous-integration/woodpecker/yarn.lock
+++ /dev/null
@@ -1,3219 +0,0 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-
-"@aashutoshrathi/word-wrap@1.2.6":
-  version "1.2.6"
-  resolved "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz"
-  integrity "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA=="
-
-"@ampproject/remapping@2.2.1":
-  version "2.2.1"
-  resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz"
-  integrity "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg=="
-  dependencies:
-    "@jridgewell/gen-mapping" "0.3.3"
-    "@jridgewell/trace-mapping" "0.3.18"
-
-"@antfu/install-pkg@0.1.1":
-  version "0.1.1"
-  resolved "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-0.1.1.tgz"
-  integrity "sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ=="
-  dependencies:
-    "execa" "5.1.1"
-    "find-up" "5.0.0"
-
-"@antfu/utils@0.7.4":
-  version "0.7.4"
-  resolved "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.4.tgz"
-  integrity "sha512-qe8Nmh9rYI/HIspLSTwtbMFPj6dISG6+dJnOguTlPNXtCvS2uezdxscVBb7/3DrmNbQK49TDqpkSQ1chbRGdpQ=="
-
-"@babel/code-frame@7.22.5":
-  version "7.22.5"
-  resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz"
-  integrity "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ=="
-  dependencies:
-    "@babel/highlight" "7.22.5"
-
-"@babel/compat-data@7.22.5":
-  version "7.22.5"
-  resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.5.tgz"
-  integrity "sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA=="
-
-"@babel/core@7.22.5":
-  version "7.22.5"
-  resolved "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz"
-  integrity "sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg=="
-  dependencies:
-    "@ampproject/remapping" "2.2.1"
-    "@babel/code-frame" "7.22.5"
-    "@babel/generator" "7.22.5"
-    "@babel/helper-compilation-targets" "7.22.5"
-    "@babel/helper-module-transforms" "7.22.5"
-    "@babel/helpers" "7.22.5"
-    "@babel/parser" "7.22.5"
-    "@babel/template" "7.22.5"
-    "@babel/traverse" "7.22.5"
-    "@babel/types" "7.22.5"
-    "convert-source-map" "1.9.0"
-    "debug" "4.3.4"
-    "gensync" "1.0.0-beta.2"
-    "json5" "2.2.3"
-    "semver" "7.5.3"
-
-"@babel/generator@7.22.5":
-  version "7.22.5"
-  resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz"
-  integrity "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA=="
-  dependencies:
-    "@babel/types" "7.22.5"
-    "@jridgewell/gen-mapping" "0.3.3"
-    "@jridgewell/trace-mapping" "0.3.18"
-    "jsesc" "2.5.2"
-
-"@babel/helper-compilation-targets@7.22.5":
-  version "7.22.5"
-  resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz"
-  integrity "sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw=="
-  dependencies:
-    "@babel/compat-data" "7.22.5"
-    "@babel/core" "7.22.5"
-    "@babel/helper-validator-option" "7.22.5"
-    "browserslist" "4.21.9"
-    "lru-cache" "5.1.1"
-    "semver" "7.5.3"
-
-"@babel/helper-environment-visitor@7.22.5":
-  version "7.22.5"
-  resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz"
-  integrity "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q=="
-
-"@babel/helper-function-name@7.22.5":
-  version "7.22.5"
-  resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz"
-  integrity "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ=="
-  dependencies:
-    "@babel/template" "7.22.5"
-    "@babel/types" "7.22.5"
-
-"@babel/helper-hoist-variables@7.22.5":
-  version "7.22.5"
-  resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz"
-  integrity "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw=="
-  dependencies:
-    "@babel/types" "7.22.5"
-
-"@babel/helper-module-imports@7.22.5":
-  version "7.22.5"
-  resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz"
-  integrity "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg=="
-  dependencies:
-    "@babel/types" "7.22.5"
-
-"@babel/helper-module-transforms@7.22.5":
-  version "7.22.5"
-  resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz"
-  integrity "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw=="
-  dependencies:
-    "@babel/helper-environment-visitor" "7.22.5"
-    "@babel/helper-module-imports" "7.22.5"
-    "@babel/helper-simple-access" "7.22.5"
-    "@babel/helper-split-export-declaration" "7.22.5"
-    "@babel/helper-validator-identifier" "7.22.5"
-    "@babel/template" "7.22.5"
-    "@babel/traverse" "7.22.5"
-    "@babel/types" "7.22.5"
-
-"@babel/helper-simple-access@7.22.5":
-  version "7.22.5"
-  resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz"
-  integrity "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w=="
-  dependencies:
-    "@babel/types" "7.22.5"
-
-"@babel/helper-split-export-declaration@7.22.5":
-  version "7.22.5"
-  resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz"
-  integrity "sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ=="
-  dependencies:
-    "@babel/types" "7.22.5"
-
-"@babel/helper-string-parser@7.22.5":
-  version "7.22.5"
-  resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz"
-  integrity "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw=="
-
-"@babel/helper-validator-identifier@7.22.5":
-  version "7.22.5"
-  resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz"
-  integrity "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ=="
-
-"@babel/helper-validator-option@7.22.5":
-  version "7.22.5"
-  resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz"
-  integrity "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw=="
-
-"@babel/helpers@7.22.5":
-  version "7.22.5"
-  resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.5.tgz"
-  integrity "sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q=="
-  dependencies:
-    "@babel/template" "7.22.5"
-    "@babel/traverse" "7.22.5"
-    "@babel/types" "7.22.5"
-
-"@babel/highlight@7.22.5":
-  version "7.22.5"
-  resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz"
-  integrity "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw=="
-  dependencies:
-    "@babel/helper-validator-identifier" "7.22.5"
-    "chalk" "2.4.2"
-    "js-tokens" "4.0.0"
-
-"@babel/parser@7.22.5":
-  version "7.22.5"
-  resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz"
-  integrity "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q=="
-  dependencies:
-    "@babel/types" "7.22.5"
-
-"@babel/template@7.22.5":
-  version "7.22.5"
-  resolved "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz"
-  integrity "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw=="
-  dependencies:
-    "@babel/code-frame" "7.22.5"
-    "@babel/parser" "7.22.5"
-    "@babel/types" "7.22.5"
-
-"@babel/traverse@7.22.5":
-  version "7.22.5"
-  resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.5.tgz"
-  integrity "sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ=="
-  dependencies:
-    "@babel/code-frame" "7.22.5"
-    "@babel/generator" "7.22.5"
-    "@babel/helper-environment-visitor" "7.22.5"
-    "@babel/helper-function-name" "7.22.5"
-    "@babel/helper-hoist-variables" "7.22.5"
-    "@babel/helper-split-export-declaration" "7.22.5"
-    "@babel/parser" "7.22.5"
-    "@babel/types" "7.22.5"
-    "debug" "4.3.4"
-    "globals" "11.12.0"
-
-"@babel/types@7.22.5":
-  version "7.22.5"
-  resolved "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz"
-  integrity "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA=="
-  dependencies:
-    "@babel/helper-string-parser" "7.22.5"
-    "@babel/helper-validator-identifier" "7.22.5"
-    "to-fast-properties" "2.0.0"
-
-"@esbuild/android-arm64@0.17.19":
-  version "0.17.19"
-  resolved "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz"
-  integrity "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA=="
-
-"@esbuild/android-arm@0.17.19":
-  version "0.17.19"
-  resolved "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz"
-  integrity "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A=="
-
-"@esbuild/android-x64@0.17.19":
-  version "0.17.19"
-  resolved "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz"
-  integrity "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww=="
-
-"@esbuild/darwin-arm64@0.17.19":
-  version "0.17.19"
-  resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz"
-  integrity "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg=="
-
-"@esbuild/darwin-x64@0.17.19":
-  version "0.17.19"
-  resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz"
-  integrity "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw=="
-
-"@esbuild/freebsd-arm64@0.17.19":
-  version "0.17.19"
-  resolved "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz"
-  integrity "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ=="
-
-"@esbuild/freebsd-x64@0.17.19":
-  version "0.17.19"
-  resolved "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz"
-  integrity "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ=="
-
-"@esbuild/linux-arm64@0.17.19":
-  version "0.17.19"
-  resolved "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz"
-  integrity "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg=="
-
-"@esbuild/linux-arm@0.17.19":
-  version "0.17.19"
-  resolved "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz"
-  integrity "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA=="
-
-"@esbuild/linux-ia32@0.17.19":
-  version "0.17.19"
-  resolved "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz"
-  integrity "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ=="
-
-"@esbuild/linux-loong64@0.17.19":
-  version "0.17.19"
-  resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz"
-  integrity "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ=="
-
-"@esbuild/linux-mips64el@0.17.19":
-  version "0.17.19"
-  resolved "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz"
-  integrity "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A=="
-
-"@esbuild/linux-ppc64@0.17.19":
-  version "0.17.19"
-  resolved "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz"
-  integrity "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg=="
-
-"@esbuild/linux-riscv64@0.17.19":
-  version "0.17.19"
-  resolved "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz"
-  integrity "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA=="
-
-"@esbuild/linux-s390x@0.17.19":
-  version "0.17.19"
-  resolved "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz"
-  integrity "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q=="
-
-"@esbuild/linux-x64@0.17.19":
-  version "0.17.19"
-  resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz"
-  integrity "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw=="
-
-"@esbuild/netbsd-x64@0.17.19":
-  version "0.17.19"
-  resolved "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz"
-  integrity "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q=="
-
-"@esbuild/openbsd-x64@0.17.19":
-  version "0.17.19"
-  resolved "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz"
-  integrity "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g=="
-
-"@esbuild/sunos-x64@0.17.19":
-  version "0.17.19"
-  resolved "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz"
-  integrity "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg=="
-
-"@esbuild/win32-arm64@0.17.19":
-  version "0.17.19"
-  resolved "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz"
-  integrity "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag=="
-
-"@esbuild/win32-ia32@0.17.19":
-  version "0.17.19"
-  resolved "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz"
-  integrity "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw=="
-
-"@esbuild/win32-x64@0.17.19":
-  version "0.17.19"
-  resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz"
-  integrity "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA=="
-
-"@eslint-community/eslint-utils@4.4.0":
-  version "4.4.0"
-  resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz"
-  integrity "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA=="
-  dependencies:
-    "eslint" "8.44.0"
-    "eslint-visitor-keys" "3.4.1"
-
-"@eslint-community/regexpp@4.5.1":
-  version "4.5.1"
-  resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz"
-  integrity "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ=="
-
-"@eslint/eslintrc@2.1.0":
-  version "2.1.0"
-  resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.0.tgz"
-  integrity "sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A=="
-  dependencies:
-    "ajv" "6.12.6"
-    "debug" "4.3.4"
-    "espree" "9.6.0"
-    "globals" "13.20.0"
-    "ignore" "5.2.4"
-    "import-fresh" "3.3.0"
-    "js-yaml" "4.1.0"
-    "minimatch" "3.1.2"
-    "strip-json-comments" "3.1.1"
-
-"@eslint/js@8.44.0":
-  version "8.44.0"
-  resolved "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz"
-  integrity "sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw=="
-
-"@floating-ui/core@1.3.1":
-  version "1.3.1"
-  resolved "https://registry.npmjs.org/@floating-ui/core/-/core-1.3.1.tgz"
-  integrity "sha512-Bu+AMaXNjrpjh41znzHqaz3r2Nr8hHuHZT6V2LBKMhyMl0FgKA62PNYbqnfgmzOhoWZj70Zecisbo4H1rotP5g=="
-
-"@floating-ui/dom@1.1.1":
-  version "1.1.1"
-  resolved "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.1.1.tgz"
-  integrity "sha512-TpIO93+DIujg3g7SykEAGZMDtbJRrmnYRCNYSjJlvIbGhBjRSNTLVbNeDQBrzy9qDgUbiWdc7KA0uZHZ2tJmiw=="
-  dependencies:
-    "@floating-ui/core" "1.3.1"
-
-"@humanwhocodes/config-array@0.11.10":
-  version "0.11.10"
-  resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz"
-  integrity "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ=="
-  dependencies:
-    "@humanwhocodes/object-schema" "1.2.1"
-    "debug" "4.3.4"
-    "minimatch" "3.1.2"
-
-"@humanwhocodes/module-importer@1.0.1":
-  version "1.0.1"
-  resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz"
-  integrity "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="
-
-"@humanwhocodes/object-schema@1.2.1":
-  version "1.2.1"
-  resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz"
-  integrity "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA=="
-
-"@iconify/json@^2.2.85", "@iconify/json@2.2.85":
-  version "2.2.85"
-  resolved "https://registry.npmjs.org/@iconify/json/-/json-2.2.85.tgz"
-  integrity "sha512-T72zjZlpP311ftbdzpOFbRCictazlrX1xR8lLu3swVvFo22b/SZNBN4r0cv+e+eVNZvMxhF/cFww2fkaZ3m7Pg=="
-  dependencies:
-    "@iconify/types" "2.0.0"
-    "pathe" "1.1.1"
-
-"@iconify/types@2.0.0":
-  version "2.0.0"
-  resolved "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz"
-  integrity "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg=="
-
-"@iconify/utils@2.1.7":
-  version "2.1.7"
-  resolved "https://registry.npmjs.org/@iconify/utils/-/utils-2.1.7.tgz"
-  integrity "sha512-P8S3z/L1LcV4Qem9AoCfVAaTFGySEMzFEY4CHZLkfRj0Fv9LiR+AwjDgrDrzyI93U2L2mg9JHsbTJ52mF8suNw=="
-  dependencies:
-    "@antfu/install-pkg" "0.1.1"
-    "@antfu/utils" "0.7.4"
-    "@iconify/types" "2.0.0"
-    "debug" "4.3.4"
-    "kolorist" "1.8.0"
-    "local-pkg" "0.4.3"
-
-"@intlify/bundle-utils@5.5.0":
-  version "5.5.0"
-  resolved "https://registry.npmjs.org/@intlify/bundle-utils/-/bundle-utils-5.5.0.tgz"
-  integrity "sha512-k5xe8oAoPXiH6unXvyyyCRbq+LtLn1tSi/6r5f6mF+MsX7mcOMtgYbyAQINsjFrf7EDu5Pg4BY00VWSt8bI9XQ=="
-  dependencies:
-    "@intlify/message-compiler" "9.3.0-beta.17"
-    "@intlify/shared" "9.3.0-beta.17"
-    "acorn" "8.9.0"
-    "escodegen" "2.1.0"
-    "estree-walker" "2.0.2"
-    "jsonc-eslint-parser" "1.4.1"
-    "magic-string" "0.30.0"
-    "source-map" "0.6.1"
-    "vue-i18n" "9.2.2"
-    "yaml-eslint-parser" "0.3.2"
-
-"@intlify/core-base@9.2.2":
-  version "9.2.2"
-  resolved "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.2.2.tgz"
-  integrity "sha512-JjUpQtNfn+joMbrXvpR4hTF8iJQ2sEFzzK3KIESOx+f+uwIjgw20igOyaIdhfsVVBCds8ZM64MoeNSx+PHQMkA=="
-  dependencies:
-    "@intlify/devtools-if" "9.2.2"
-    "@intlify/message-compiler" "9.2.2"
-    "@intlify/shared" "9.2.2"
-    "@intlify/vue-devtools" "9.2.2"
-
-"@intlify/devtools-if@9.2.2":
-  version "9.2.2"
-  resolved "https://registry.npmjs.org/@intlify/devtools-if/-/devtools-if-9.2.2.tgz"
-  integrity "sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg=="
-  dependencies:
-    "@intlify/shared" "9.2.2"
-
-"@intlify/message-compiler@9.2.2":
-  version "9.2.2"
-  resolved "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.2.2.tgz"
-  integrity "sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA=="
-  dependencies:
-    "@intlify/shared" "9.2.2"
-    "source-map" "0.6.1"
-
-"@intlify/message-compiler@9.3.0-beta.17":
-  version "9.3.0-beta.17"
-  resolved "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.3.0-beta.17.tgz"
-  integrity "sha512-i7hvVIRk1Ax2uKa9xLRJCT57to08OhFMhFXXjWN07rmx5pWQYQ23MfX1xgggv9drnWTNhqEiD+u4EJeHoS5+Ww=="
-  dependencies:
-    "@intlify/shared" "9.3.0-beta.17"
-    "source-map" "0.6.1"
-
-"@intlify/shared@9.2.2":
-  version "9.2.2"
-  resolved "https://registry.npmjs.org/@intlify/shared/-/shared-9.2.2.tgz"
-  integrity "sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q=="
-
-"@intlify/shared@9.3.0-beta.17":
-  version "9.3.0-beta.17"
-  resolved "https://registry.npmjs.org/@intlify/shared/-/shared-9.3.0-beta.17.tgz"
-  integrity "sha512-mscf7RQsUTOil35jTij4KGW1RC9SWQjYScwLxP53Ns6g24iEd5HN7ksbt9O6FvTmlQuX77u+MXpBdfJsGqizLQ=="
-
-"@intlify/unplugin-vue-i18n@^0.10.1", "@intlify/unplugin-vue-i18n@0.10.1":
-  version "0.10.1"
-  resolved "https://registry.npmjs.org/@intlify/unplugin-vue-i18n/-/unplugin-vue-i18n-0.10.1.tgz"
-  integrity "sha512-9ZzE0ddlDO06Xzg25JPiNbx6PJPDho5k/Np+uL9fJRZEKq2TxT3c+ZK+Pec6j0ybhhVXeda8/yE3tPUf4SOXZQ=="
-  dependencies:
-    "@intlify/bundle-utils" "5.5.0"
-    "@intlify/shared" "9.3.0-beta.17"
-    "@rollup/pluginutils" "5.0.2"
-    "@vue/compiler-sfc" "3.3.4"
-    "debug" "4.3.4"
-    "fast-glob" "3.3.0"
-    "js-yaml" "4.1.0"
-    "json5" "2.2.3"
-    "pathe" "1.1.1"
-    "picocolors" "1.0.0"
-    "source-map" "0.6.1"
-    "unplugin" "1.3.1"
-    "vue-i18n" "9.2.2"
-
-"@intlify/vue-devtools@9.2.2":
-  version "9.2.2"
-  resolved "https://registry.npmjs.org/@intlify/vue-devtools/-/vue-devtools-9.2.2.tgz"
-  integrity "sha512-+dUyqyCHWHb/UcvY1MlIpO87munedm3Gn6E9WWYdWrMuYLcoIoOEVDWSS8xSwtlPU+kA+MEQTP6Q1iI/ocusJg=="
-  dependencies:
-    "@intlify/core-base" "9.2.2"
-    "@intlify/shared" "9.2.2"
-
-"@jridgewell/gen-mapping@0.3.3":
-  version "0.3.3"
-  resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz"
-  integrity "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ=="
-  dependencies:
-    "@jridgewell/set-array" "1.1.2"
-    "@jridgewell/sourcemap-codec" "1.4.15"
-    "@jridgewell/trace-mapping" "0.3.18"
-
-"@jridgewell/resolve-uri@3.1.0":
-  version "3.1.0"
-  resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz"
-  integrity "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w=="
-
-"@jridgewell/set-array@1.1.2":
-  version "1.1.2"
-  resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz"
-  integrity "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw=="
-
-"@jridgewell/sourcemap-codec@1.4.14":
-  version "1.4.14"
-  resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz"
-  integrity "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
-
-"@jridgewell/sourcemap-codec@1.4.15":
-  version "1.4.15"
-  resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz"
-  integrity "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
-
-"@jridgewell/trace-mapping@0.3.18":
-  version "0.3.18"
-  resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz"
-  integrity "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA=="
-  dependencies:
-    "@jridgewell/resolve-uri" "3.1.0"
-    "@jridgewell/sourcemap-codec" "1.4.14"
-
-"@kyvg/vue3-notification@^2.9.1", "@kyvg/vue3-notification@2.9.1":
-  version "2.9.1"
-  resolved "https://registry.npmjs.org/@kyvg/vue3-notification/-/vue3-notification-2.9.1.tgz"
-  integrity "sha512-FsY8g25tQetr3etnarxHtCeNFKssH8sheFu13LyL2JJmOOel437QqKV5n4RBDDDTIo55iKgIVYXeojliXYdEhw=="
-  dependencies:
-    "vue" "3.3.4"
-
-"@nodelib/fs.scandir@2.1.5":
-  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.2.0"
-
-"@nodelib/fs.stat@2.0.5":
-  version "2.0.5"
-  resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
-  integrity "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="
-
-"@nodelib/fs.walk@1.2.8":
-  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.15.0"
-
-"@rollup/pluginutils@5.0.2":
-  version "5.0.2"
-  resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz"
-  integrity "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA=="
-  dependencies:
-    "@types/estree" "1.0.1"
-    "estree-walker" "2.0.2"
-    "picomatch" "2.3.1"
-
-"@trysound/sax@0.2.0":
-  version "0.2.0"
-  resolved "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz"
-  integrity "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA=="
-
-"@types/estree@1.0.1":
-  version "1.0.1"
-  resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz"
-  integrity "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA=="
-
-"@types/humanize-duration@^3.27.1", "@types/humanize-duration@3.27.1":
-  version "3.27.1"
-  resolved "https://registry.npmjs.org/@types/humanize-duration/-/humanize-duration-3.27.1.tgz"
-  integrity "sha512-K3e+NZlpCKd6Bd/EIdqjFJRFHbrq5TzPPLwREk5Iv/YoIjQrs6ljdAUCo+Lb2xFlGNOjGSE0dqsVD19cZL137w=="
-
-"@types/javascript-time-ago@^2.0.3", "@types/javascript-time-ago@2.0.3":
-  version "2.0.3"
-  resolved "https://registry.npmjs.org/@types/javascript-time-ago/-/javascript-time-ago-2.0.3.tgz"
-  integrity "sha512-G6SdYh6gHxgCTU0s4cMIRHwRO4p3f7jQSZbDPfUOZpUAG1od3rTjT0e8rxGThUiTTWQHwpBRws8eHO8D2QqfkA=="
-
-"@types/json-schema@7.0.12":
-  version "7.0.12"
-  resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz"
-  integrity "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA=="
-
-"@types/json5@0.0.29":
-  version "0.0.29"
-  resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz"
-  integrity "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
-
-"@types/lodash@^4.14.195", "@types/lodash@4.14.195":
-  version "4.14.195"
-  resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.195.tgz"
-  integrity "sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg=="
-
-"@types/node-emoji@^1.8.2", "@types/node-emoji@1.8.2":
-  version "1.8.2"
-  resolved "https://registry.npmjs.org/@types/node-emoji/-/node-emoji-1.8.2.tgz"
-  integrity "sha512-PfF1qL/9veo8BSHLV84C9ORNr3lHSlnWJ6yU8OdNufoftajeWHTLVbGHvp2B7e7DPDS9gMs6cfeSsqo5rqSitg=="
-
-"@types/node@^18.16.19", "@types/node@18.16.19":
-  version "18.16.19"
-  resolved "https://registry.npmjs.org/@types/node/-/node-18.16.19.tgz"
-  integrity "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA=="
-
-"@types/prismjs@^1.26.0", "@types/prismjs@1.26.0":
-  version "1.26.0"
-  resolved "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.0.tgz"
-  integrity "sha512-ZTaqn/qSqUuAq1YwvOFQfVW1AR/oQJlLSZVustdjwI+GZ8kr0MSHBj0tsXPW1EqHubx50gtBEjbPGsdZwQwCjQ=="
-
-"@types/semver@7.5.0":
-  version "7.5.0"
-  resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz"
-  integrity "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw=="
-
-"@types/web-bluetooth@0.0.16":
-  version "0.0.16"
-  resolved "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz"
-  integrity "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ=="
-
-"@typescript-eslint/eslint-plugin@^5.60.1", "@typescript-eslint/eslint-plugin@5.60.1":
-  version "5.60.1"
-  resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.60.1.tgz"
-  integrity "sha512-KSWsVvsJsLJv3c4e73y/Bzt7OpqMCADUO846bHcuWYSYM19bldbAeDv7dYyV0jwkbMfJ2XdlzwjhXtuD7OY6bw=="
-  dependencies:
-    "@eslint-community/regexpp" "4.5.1"
-    "@typescript-eslint/parser" "5.60.1"
-    "@typescript-eslint/scope-manager" "5.60.1"
-    "@typescript-eslint/type-utils" "5.60.1"
-    "@typescript-eslint/utils" "5.60.1"
-    "debug" "4.3.4"
-    "eslint" "8.44.0"
-    "grapheme-splitter" "1.0.4"
-    "ignore" "5.2.4"
-    "natural-compare-lite" "1.4.0"
-    "semver" "7.5.3"
-    "tsutils" "3.21.0"
-    "typescript" "5.0.3"
-
-"@typescript-eslint/parser@^5.60.1", "@typescript-eslint/parser@5.60.1":
-  version "5.60.1"
-  resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.60.1.tgz"
-  integrity "sha512-pHWlc3alg2oSMGwsU/Is8hbm3XFbcrb6P5wIxcQW9NsYBfnrubl/GhVVD/Jm/t8HXhA2WncoIRfBtnCgRGV96Q=="
-  dependencies:
-    "@typescript-eslint/scope-manager" "5.60.1"
-    "@typescript-eslint/types" "5.60.1"
-    "@typescript-eslint/typescript-estree" "5.60.1"
-    "debug" "4.3.4"
-    "eslint" "8.44.0"
-    "typescript" "5.0.3"
-
-"@typescript-eslint/scope-manager@5.60.1":
-  version "5.60.1"
-  resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.60.1.tgz"
-  integrity "sha512-Dn/LnN7fEoRD+KspEOV0xDMynEmR3iSHdgNsarlXNLGGtcUok8L4N71dxUgt3YvlO8si7E+BJ5Fe3wb5yUw7DQ=="
-  dependencies:
-    "@typescript-eslint/types" "5.60.1"
-    "@typescript-eslint/visitor-keys" "5.60.1"
-
-"@typescript-eslint/type-utils@5.60.1":
-  version "5.60.1"
-  resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.60.1.tgz"
-  integrity "sha512-vN6UztYqIu05nu7JqwQGzQKUJctzs3/Hg7E2Yx8rz9J+4LgtIDFWjjl1gm3pycH0P3mHAcEUBd23LVgfrsTR8A=="
-  dependencies:
-    "@typescript-eslint/typescript-estree" "5.60.1"
-    "@typescript-eslint/utils" "5.60.1"
-    "debug" "4.3.4"
-    "eslint" "8.44.0"
-    "tsutils" "3.21.0"
-    "typescript" "5.0.3"
-
-"@typescript-eslint/types@5.60.1":
-  version "5.60.1"
-  resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.60.1.tgz"
-  integrity "sha512-zDcDx5fccU8BA0IDZc71bAtYIcG9PowaOwaD8rjYbqwK7dpe/UMQl3inJ4UtUK42nOCT41jTSCwg76E62JpMcg=="
-
-"@typescript-eslint/typescript-estree@5.60.1":
-  version "5.60.1"
-  resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.60.1.tgz"
-  integrity "sha512-hkX70J9+2M2ZT6fhti5Q2FoU9zb+GeZK2SLP1WZlvUDqdMbEKhexZODD1WodNRyO8eS+4nScvT0dts8IdaBzfw=="
-  dependencies:
-    "@typescript-eslint/types" "5.60.1"
-    "@typescript-eslint/visitor-keys" "5.60.1"
-    "debug" "4.3.4"
-    "globby" "11.1.0"
-    "is-glob" "4.0.3"
-    "semver" "7.5.3"
-    "tsutils" "3.21.0"
-    "typescript" "5.0.3"
-
-"@typescript-eslint/utils@5.60.1":
-  version "5.60.1"
-  resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.60.1.tgz"
-  integrity "sha512-tiJ7FFdFQOWssFa3gqb94Ilexyw0JVxj6vBzaSpfN/8IhoKkDuSAenUKvsSHw2A/TMpJb26izIszTXaqygkvpQ=="
-  dependencies:
-    "@eslint-community/eslint-utils" "4.4.0"
-    "@types/json-schema" "7.0.12"
-    "@types/semver" "7.5.0"
-    "@typescript-eslint/scope-manager" "5.60.1"
-    "@typescript-eslint/types" "5.60.1"
-    "@typescript-eslint/typescript-estree" "5.60.1"
-    "eslint" "8.44.0"
-    "eslint-scope" "5.1.1"
-    "semver" "7.5.3"
-
-"@typescript-eslint/visitor-keys@5.60.1":
-  version "5.60.1"
-  resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.60.1.tgz"
-  integrity "sha512-xEYIxKcultP6E/RMKqube11pGjXH1DCo60mQoWhVYyKfLkwbIVVjYxmOenNMxILx0TjCujPTjjnTIVzm09TXIw=="
-  dependencies:
-    "@typescript-eslint/types" "5.60.1"
-    "eslint-visitor-keys" "3.4.1"
-
-"@vitejs/plugin-vue@^4.2.3", "@vitejs/plugin-vue@4.2.3":
-  version "4.2.3"
-  resolved "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.2.3.tgz"
-  integrity "sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw=="
-  dependencies:
-    "vite" "4.3.9"
-    "vue" "3.3.4"
-
-"@volar/language-core@1.7.10":
-  version "1.7.10"
-  resolved "https://registry.npmjs.org/@volar/language-core/-/language-core-1.7.10.tgz"
-  integrity "sha512-18Gmth5M0UI3hDDqhZngjMnb6WCslcfglkOdepRIhGxRYe7xR7DRRzciisYDMZsvOQxDYme+uaohg0dKUxLV2Q=="
-  dependencies:
-    "@volar/source-map" "1.7.10"
-
-"@volar/source-map@1.7.10":
-  version "1.7.10"
-  resolved "https://registry.npmjs.org/@volar/source-map/-/source-map-1.7.10.tgz"
-  integrity "sha512-FBpLEOKJpRxeh2nYbw1mTI5sZOPXYU8LlsCz6xuBY3yNtAizDTTIZtBHe1V8BaMpoSMgRysZe4gVxMEi3rDGVA=="
-  dependencies:
-    "muggle-string" "0.3.1"
-
-"@volar/typescript@1.7.10":
-  version "1.7.10"
-  resolved "https://registry.npmjs.org/@volar/typescript/-/typescript-1.7.10.tgz"
-  integrity "sha512-yqIov4wndLU3GE1iE25bU5W6T+P+exPePcE1dFPPBKzQIBki1KvmdQN5jBlJp3Wo+wp7UIxa/RsdNkXT+iFBjg=="
-  dependencies:
-    "@volar/language-core" "1.7.10"
-
-"@vue/compiler-core@3.3.4":
-  version "3.3.4"
-  resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz"
-  integrity "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g=="
-  dependencies:
-    "@babel/parser" "7.22.5"
-    "@vue/shared" "3.3.4"
-    "estree-walker" "2.0.2"
-    "source-map-js" "1.0.2"
-
-"@vue/compiler-dom@3.3.4":
-  version "3.3.4"
-  resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz"
-  integrity "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w=="
-  dependencies:
-    "@vue/compiler-core" "3.3.4"
-    "@vue/shared" "3.3.4"
-
-"@vue/compiler-sfc@^3.3.4", "@vue/compiler-sfc@3.3.4":
-  version "3.3.4"
-  resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz"
-  integrity "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ=="
-  dependencies:
-    "@babel/parser" "7.22.5"
-    "@vue/compiler-core" "3.3.4"
-    "@vue/compiler-dom" "3.3.4"
-    "@vue/compiler-ssr" "3.3.4"
-    "@vue/reactivity-transform" "3.3.4"
-    "@vue/shared" "3.3.4"
-    "estree-walker" "2.0.2"
-    "magic-string" "0.30.0"
-    "postcss" "8.4.31"
-    "source-map-js" "1.0.2"
-
-"@vue/compiler-ssr@3.3.4":
-  version "3.3.4"
-  resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz"
-  integrity "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ=="
-  dependencies:
-    "@vue/compiler-dom" "3.3.4"
-    "@vue/shared" "3.3.4"
-
-"@vue/devtools-api@6.5.0":
-  version "6.5.0"
-  resolved "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz"
-  integrity "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q=="
-
-"@vue/language-core@1.8.3":
-  version "1.8.3"
-  resolved "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.3.tgz"
-  integrity "sha512-AzhvMYoQkK/tg8CpAAttO19kx1zjS3+weYIr2AhlH/M5HebVzfftQoq4jZNFifjq+hyLKi8j9FiDMS8oqA89+A=="
-  dependencies:
-    "@volar/language-core" "1.7.10"
-    "@volar/source-map" "1.7.10"
-    "@vue/compiler-dom" "3.3.4"
-    "@vue/reactivity" "3.3.4"
-    "@vue/shared" "3.3.4"
-    "minimatch" "9.0.2"
-    "muggle-string" "0.3.1"
-    "typescript" "5.0.3"
-    "vue-template-compiler" "2.7.14"
-
-"@vue/reactivity-transform@3.3.4":
-  version "3.3.4"
-  resolved "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz"
-  integrity "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw=="
-  dependencies:
-    "@babel/parser" "7.22.5"
-    "@vue/compiler-core" "3.3.4"
-    "@vue/shared" "3.3.4"
-    "estree-walker" "2.0.2"
-    "magic-string" "0.30.0"
-
-"@vue/reactivity@3.3.4":
-  version "3.3.4"
-  resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz"
-  integrity "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ=="
-  dependencies:
-    "@vue/shared" "3.3.4"
-
-"@vue/runtime-core@3.3.4":
-  version "3.3.4"
-  resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz"
-  integrity "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA=="
-  dependencies:
-    "@vue/reactivity" "3.3.4"
-    "@vue/shared" "3.3.4"
-
-"@vue/runtime-dom@3.3.4":
-  version "3.3.4"
-  resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz"
-  integrity "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ=="
-  dependencies:
-    "@vue/runtime-core" "3.3.4"
-    "@vue/shared" "3.3.4"
-    "csstype" "3.1.2"
-
-"@vue/server-renderer@3.3.4":
-  version "3.3.4"
-  resolved "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz"
-  integrity "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ=="
-  dependencies:
-    "@vue/compiler-ssr" "3.3.4"
-    "@vue/shared" "3.3.4"
-    "vue" "3.3.4"
-
-"@vue/shared@3.3.4":
-  version "3.3.4"
-  resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz"
-  integrity "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ=="
-
-"@vue/typescript@1.8.3":
-  version "1.8.3"
-  resolved "https://registry.npmjs.org/@vue/typescript/-/typescript-1.8.3.tgz"
-  integrity "sha512-6bdgSnIFpRYHlt70pHmnmNksPU00bfXgqAISeaNz3W6d2cH0OTfH8h/IhligQ82sJIhsuyfftQJ5518ZuKIhtA=="
-  dependencies:
-    "@volar/typescript" "1.7.10"
-    "@vue/language-core" "1.8.3"
-
-"@vueuse/core@^9.13.0", "@vueuse/core@9.13.0":
-  version "9.13.0"
-  resolved "https://registry.npmjs.org/@vueuse/core/-/core-9.13.0.tgz"
-  integrity "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw=="
-  dependencies:
-    "@types/web-bluetooth" "0.0.16"
-    "@vueuse/metadata" "9.13.0"
-    "@vueuse/shared" "9.13.0"
-    "vue-demi" "0.14.5"
-
-"@vueuse/metadata@9.13.0":
-  version "9.13.0"
-  resolved "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.13.0.tgz"
-  integrity "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ=="
-
-"@vueuse/shared@9.13.0":
-  version "9.13.0"
-  resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-9.13.0.tgz"
-  integrity "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw=="
-  dependencies:
-    "vue-demi" "0.14.5"
-
-"@windicss/config@1.9.0":
-  version "1.9.0"
-  resolved "https://registry.npmjs.org/@windicss/config/-/config-1.9.0.tgz"
-  integrity "sha512-QO4+udbmDIgZwAi89tqUt5nGwBq3IgyELjLn83twZXiIqzOw+77ecCuM0oPSbzWmIbCqXq3wRQHd6Z1u5E/5zQ=="
-  dependencies:
-    "debug" "4.3.4"
-    "jiti" "1.18.2"
-    "windicss" "3.5.6"
-
-"@windicss/plugin-utils@1.9.0":
-  version "1.9.0"
-  resolved "https://registry.npmjs.org/@windicss/plugin-utils/-/plugin-utils-1.9.0.tgz"
-  integrity "sha512-omAacM5ExIr9XBUI2z47CyCXJBke4imJZqXW41YgHhRLbahTngbScFk5yxa6dXivDXUpUKqasOPXBJgA4bhHCg=="
-  dependencies:
-    "@antfu/utils" "0.7.4"
-    "@windicss/config" "1.9.0"
-    "debug" "4.3.4"
-    "fast-glob" "3.3.0"
-    "magic-string" "0.30.0"
-    "micromatch" "4.0.5"
-    "windicss" "3.5.6"
-
-"acorn-jsx@5.3.2":
-  version "5.3.2"
-  resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz"
-  integrity "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="
-  dependencies:
-    "acorn" "8.9.0"
-
-"acorn@7.4.1":
-  version "7.4.1"
-  resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz"
-  integrity "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="
-
-"acorn@8.9.0":
-  version "8.9.0"
-  resolved "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz"
-  integrity "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ=="
-
-"ajv@6.12.6":
-  version "6.12.6"
-  resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
-  integrity "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="
-  dependencies:
-    "fast-deep-equal" "3.1.3"
-    "fast-json-stable-stringify" "2.1.0"
-    "json-schema-traverse" "0.4.1"
-    "uri-js" "4.4.1"
-
-"ansi-regex@5.0.1":
-  version "5.0.1"
-  resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz"
-  integrity "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
-
-"ansi-styles@3.2.1":
-  version "3.2.1"
-  resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
-  integrity "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="
-  dependencies:
-    "color-convert" "1.9.3"
-
-"ansi-styles@4.3.0":
-  version "4.3.0"
-  resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
-  integrity "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="
-  dependencies:
-    "color-convert" "2.0.1"
-
-"ansi_up@^5.2.1", "ansi_up@5.2.1":
-  version "5.2.1"
-  resolved "https://registry.npmjs.org/ansi_up/-/ansi_up-5.2.1.tgz"
-  integrity "sha512-5bz5T/7FRmlxA37zDXhG6cAwlcZtfnmNLDJra66EEIT3kYlw5aPJdbkJEhm59D6kA4Wi5ict6u6IDYHJaQlH+g=="
-
-"anymatch@3.1.3":
-  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.3.1"
-
-"argparse@2.0.1":
-  version "2.0.1"
-  resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz"
-  integrity "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
-
-"array-buffer-byte-length@1.0.0":
-  version "1.0.0"
-  resolved "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz"
-  integrity "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A=="
-  dependencies:
-    "call-bind" "1.0.2"
-    "is-array-buffer" "3.0.2"
-
-"array-includes@3.1.6":
-  version "3.1.6"
-  resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz"
-  integrity "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw=="
-  dependencies:
-    "call-bind" "1.0.2"
-    "define-properties" "1.2.0"
-    "es-abstract" "1.21.2"
-    "get-intrinsic" "1.2.1"
-    "is-string" "1.0.7"
-
-"array-union@2.1.0":
-  version "2.1.0"
-  resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz"
-  integrity "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="
-
-"array.prototype.flat@1.3.1":
-  version "1.3.1"
-  resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz"
-  integrity "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA=="
-  dependencies:
-    "call-bind" "1.0.2"
-    "define-properties" "1.2.0"
-    "es-abstract" "1.21.2"
-    "es-shim-unscopables" "1.0.0"
-
-"array.prototype.flatmap@1.3.1":
-  version "1.3.1"
-  resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz"
-  integrity "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ=="
-  dependencies:
-    "call-bind" "1.0.2"
-    "define-properties" "1.2.0"
-    "es-abstract" "1.21.2"
-    "es-shim-unscopables" "1.0.0"
-
-"atob@2.1.2":
-  version "2.1.2"
-  resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz"
-  integrity "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
-
-"available-typed-arrays@1.0.5":
-  version "1.0.5"
-  resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz"
-  integrity "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw=="
-
-"babel-plugin-prismjs@2.1.0":
-  version "2.1.0"
-  resolved "https://registry.npmjs.org/babel-plugin-prismjs/-/babel-plugin-prismjs-2.1.0.tgz"
-  integrity "sha512-ehzSKYfeAz4U78zi/sfwsjDPlq0LvDKxNefcZTJ/iKBu+plsHsLqZhUeGf1+82LAcA35UZGbU6ksEx2Utphc/g=="
-  dependencies:
-    "prismjs" "1.29.0"
-
-"balanced-match@1.0.2":
-  version "1.0.2"
-  resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
-  integrity "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
-
-"binary-extensions@2.2.0":
-  version "2.2.0"
-  resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz"
-  integrity "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
-
-"boolbase@1.0.0":
-  version "1.0.0"
-  resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz"
-  integrity "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="
-
-"brace-expansion@1.1.11":
-  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.2"
-    "concat-map" "0.0.1"
-
-"brace-expansion@2.0.1":
-  version "2.0.1"
-  resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz"
-  integrity "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA=="
-  dependencies:
-    "balanced-match" "1.0.2"
-
-"braces@3.0.2":
-  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"
-
-"browserslist@4.21.9":
-  version "4.21.9"
-  resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz"
-  integrity "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg=="
-  dependencies:
-    "caniuse-lite" "1.0.30001509"
-    "electron-to-chromium" "1.4.447"
-    "node-releases" "2.0.12"
-    "update-browserslist-db" "1.0.11"
-
-"call-bind@1.0.2":
-  version "1.0.2"
-  resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz"
-  integrity "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA=="
-  dependencies:
-    "function-bind" "1.1.1"
-    "get-intrinsic" "1.2.1"
-
-"callsites@3.1.0":
-  version "3.1.0"
-  resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz"
-  integrity "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
-
-"caniuse-lite@1.0.30001509":
-  version "1.0.30001509"
-  resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001509.tgz"
-  integrity "sha512-2uDDk+TRiTX5hMcUYT/7CSyzMZxjfGu0vAUjS2g0LSD8UoXOv0LtpH4LxGMemsiPq6LCVIUjNwVM0erkOkGCDA=="
-
-"chalk@2.4.2":
-  version "2.4.2"
-  resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
-  integrity "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="
-  dependencies:
-    "ansi-styles" "3.2.1"
-    "escape-string-regexp" "1.0.5"
-    "supports-color" "5.5.0"
-
-"chalk@4.1.2":
-  version "4.1.2"
-  resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz"
-  integrity "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="
-  dependencies:
-    "ansi-styles" "4.3.0"
-    "supports-color" "7.2.0"
-
-"chokidar@3.5.3":
-  version "3.5.3"
-  resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz"
-  integrity "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw=="
-  dependencies:
-    "anymatch" "3.1.3"
-    "braces" "3.0.2"
-    "glob-parent" "5.1.2"
-    "is-binary-path" "2.1.0"
-    "is-glob" "4.0.3"
-    "normalize-path" "3.0.0"
-    "readdirp" "3.6.0"
-
-"color-convert@1.9.3":
-  version "1.9.3"
-  resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
-  integrity "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="
-  dependencies:
-    "color-name" "1.1.3"
-
-"color-convert@2.0.1":
-  version "2.0.1"
-  resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"
-  integrity "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="
-  dependencies:
-    "color-name" "1.1.4"
-
-"color-name@1.1.3":
-  version "1.1.3"
-  resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
-  integrity "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
-
-"color-name@1.1.4":
-  version "1.1.4"
-  resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
-  integrity "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
-
-"commander@7.2.0":
-  version "7.2.0"
-  resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz"
-  integrity "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="
-
-"concat-map@0.0.1":
-  version "0.0.1"
-  resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
-  integrity "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
-
-"confusing-browser-globals@1.0.11":
-  version "1.0.11"
-  resolved "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz"
-  integrity "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA=="
-
-"convert-source-map@1.9.0":
-  version "1.9.0"
-  resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz"
-  integrity "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="
-
-"cross-spawn@7.0.3":
-  version "7.0.3"
-  resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz"
-  integrity "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w=="
-  dependencies:
-    "path-key" "3.1.1"
-    "shebang-command" "2.0.0"
-    "which" "2.0.2"
-
-"css-select@5.1.0":
-  version "5.1.0"
-  resolved "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz"
-  integrity "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg=="
-  dependencies:
-    "boolbase" "1.0.0"
-    "css-what" "6.1.0"
-    "domhandler" "5.0.3"
-    "domutils" "3.1.0"
-    "nth-check" "2.1.1"
-
-"css-tree@2.2.1":
-  version "2.2.1"
-  resolved "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz"
-  integrity "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA=="
-  dependencies:
-    "mdn-data" "2.0.28"
-    "source-map-js" "1.0.2"
-
-"css-tree@2.3.1":
-  version "2.3.1"
-  resolved "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz"
-  integrity "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw=="
-  dependencies:
-    "mdn-data" "2.0.30"
-    "source-map-js" "1.0.2"
-
-"css-what@6.1.0":
-  version "6.1.0"
-  resolved "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz"
-  integrity "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw=="
-
-"css@3.0.0":
-  version "3.0.0"
-  resolved "https://registry.npmjs.org/css/-/css-3.0.0.tgz"
-  integrity "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ=="
-  dependencies:
-    "inherits" "2.0.4"
-    "source-map" "0.6.1"
-    "source-map-resolve" "0.6.0"
-
-"cssesc@3.0.0":
-  version "3.0.0"
-  resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz"
-  integrity "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="
-
-"csso@5.0.5":
-  version "5.0.5"
-  resolved "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz"
-  integrity "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ=="
-  dependencies:
-    "css-tree" "2.2.1"
-
-"csstype@3.1.2":
-  version "3.1.2"
-  resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz"
-  integrity "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
-
-"dayjs@^1.11.9", "dayjs@1.11.9":
-  version "1.11.9"
-  resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.9.tgz"
-  integrity "sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA=="
-
-"de-indent@1.0.2":
-  version "1.0.2"
-  resolved "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz"
-  integrity "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg=="
-
-"debug@3.2.7":
-  version "3.2.7"
-  resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz"
-  integrity "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="
-  dependencies:
-    "ms" "2.1.3"
-
-"debug@4.3.4":
-  version "4.3.4"
-  resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
-  integrity "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="
-  dependencies:
-    "ms" "2.1.2"
-
-"decode-uri-component@0.2.2":
-  version "0.2.2"
-  resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz"
-  integrity "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ=="
-
-"deep-is@0.1.4":
-  version "0.1.4"
-  resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz"
-  integrity "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
-
-"define-properties@1.2.0":
-  version "1.2.0"
-  resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz"
-  integrity "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA=="
-  dependencies:
-    "has-property-descriptors" "1.0.0"
-    "object-keys" "1.1.1"
-
-"dir-glob@3.0.1":
-  version "3.0.1"
-  resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz"
-  integrity "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA=="
-  dependencies:
-    "path-type" "4.0.0"
-
-"doctrine@2.1.0":
-  version "2.1.0"
-  resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz"
-  integrity "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw=="
-  dependencies:
-    "esutils" "2.0.3"
-
-"doctrine@3.0.0":
-  version "3.0.0"
-  resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz"
-  integrity "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w=="
-  dependencies:
-    "esutils" "2.0.3"
-
-"dom-serializer@2.0.0":
-  version "2.0.0"
-  resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz"
-  integrity "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg=="
-  dependencies:
-    "domelementtype" "2.3.0"
-    "domhandler" "5.0.3"
-    "entities" "4.5.0"
-
-"domelementtype@2.3.0":
-  version "2.3.0"
-  resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz"
-  integrity "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="
-
-"domhandler@5.0.3":
-  version "5.0.3"
-  resolved "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz"
-  integrity "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w=="
-  dependencies:
-    "domelementtype" "2.3.0"
-
-"domutils@3.1.0":
-  version "3.1.0"
-  resolved "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz"
-  integrity "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA=="
-  dependencies:
-    "dom-serializer" "2.0.0"
-    "domelementtype" "2.3.0"
-    "domhandler" "5.0.3"
-
-"electron-to-chromium@1.4.447":
-  version "1.4.447"
-  resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.447.tgz"
-  integrity "sha512-sxX0LXh+uL41hSJsujAN86PjhrV/6c79XmpY0TvjZStV6VxIgarf8SRkUoUTuYmFcZQTemsoqo8qXOGw5npWfw=="
-
-"entities@4.5.0":
-  version "4.5.0"
-  resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz"
-  integrity "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="
-
-"es-abstract@1.21.2":
-  version "1.21.2"
-  resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz"
-  integrity "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg=="
-  dependencies:
-    "array-buffer-byte-length" "1.0.0"
-    "available-typed-arrays" "1.0.5"
-    "call-bind" "1.0.2"
-    "es-set-tostringtag" "2.0.1"
-    "es-to-primitive" "1.2.1"
-    "function.prototype.name" "1.1.5"
-    "get-intrinsic" "1.2.1"
-    "get-symbol-description" "1.0.0"
-    "globalthis" "1.0.3"
-    "gopd" "1.0.1"
-    "has" "1.0.3"
-    "has-property-descriptors" "1.0.0"
-    "has-proto" "1.0.1"
-    "has-symbols" "1.0.3"
-    "internal-slot" "1.0.5"
-    "is-array-buffer" "3.0.2"
-    "is-callable" "1.2.7"
-    "is-negative-zero" "2.0.2"
-    "is-regex" "1.1.4"
-    "is-shared-array-buffer" "1.0.2"
-    "is-string" "1.0.7"
-    "is-typed-array" "1.1.10"
-    "is-weakref" "1.0.2"
-    "object-inspect" "1.12.3"
-    "object-keys" "1.1.1"
-    "object.assign" "4.1.4"
-    "regexp.prototype.flags" "1.5.0"
-    "safe-regex-test" "1.0.0"
-    "string.prototype.trim" "1.2.7"
-    "string.prototype.trimend" "1.0.6"
-    "string.prototype.trimstart" "1.0.6"
-    "typed-array-length" "1.0.4"
-    "unbox-primitive" "1.0.2"
-    "which-typed-array" "1.1.9"
-
-"es-set-tostringtag@2.0.1":
-  version "2.0.1"
-  resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz"
-  integrity "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg=="
-  dependencies:
-    "get-intrinsic" "1.2.1"
-    "has" "1.0.3"
-    "has-tostringtag" "1.0.0"
-
-"es-shim-unscopables@1.0.0":
-  version "1.0.0"
-  resolved "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz"
-  integrity "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w=="
-  dependencies:
-    "has" "1.0.3"
-
-"es-to-primitive@1.2.1":
-  version "1.2.1"
-  resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz"
-  integrity "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA=="
-  dependencies:
-    "is-callable" "1.2.7"
-    "is-date-object" "1.0.5"
-    "is-symbol" "1.0.4"
-
-"esbuild@0.17.19":
-  version "0.17.19"
-  resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz"
-  integrity "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw=="
-
-"escalade@3.1.1":
-  version "3.1.1"
-  resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz"
-  integrity "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
-
-"escape-string-regexp@1.0.5":
-  version "1.0.5"
-  resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
-  integrity "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="
-
-"escape-string-regexp@4.0.0":
-  version "4.0.0"
-  resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz"
-  integrity "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
-
-"escodegen@2.1.0":
-  version "2.1.0"
-  resolved "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz"
-  integrity "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w=="
-  dependencies:
-    "esprima" "4.0.1"
-    "estraverse" "5.3.0"
-    "esutils" "2.0.3"
-
-"eslint-config-airbnb-base@^15.0.0", "eslint-config-airbnb-base@15.0.0":
-  version "15.0.0"
-  resolved "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz"
-  integrity "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig=="
-  dependencies:
-    "confusing-browser-globals" "1.0.11"
-    "eslint" "8.44.0"
-    "eslint-plugin-import" "2.27.5"
-    "object.assign" "4.1.4"
-    "object.entries" "1.1.6"
-    "semver" "7.5.3"
-
-"eslint-config-airbnb-typescript@^17.0.0", "eslint-config-airbnb-typescript@17.0.0":
-  version "17.0.0"
-  resolved "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-17.0.0.tgz"
-  integrity "sha512-elNiuzD0kPAPTXjFWg+lE24nMdHMtuxgYoD30OyMD6yrW1AhFZPAg27VX7d3tzOErw+dgJTNWfRSDqEcXb4V0g=="
-  dependencies:
-    "@typescript-eslint/eslint-plugin" "5.60.1"
-    "@typescript-eslint/parser" "5.60.1"
-    "eslint" "8.44.0"
-    "eslint-config-airbnb-base" "15.0.0"
-    "eslint-plugin-import" "2.27.5"
-
-"eslint-config-prettier@^8.8.0", "eslint-config-prettier@8.8.0":
-  version "8.8.0"
-  resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz"
-  integrity "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA=="
-  dependencies:
-    "eslint" "8.44.0"
-
-"eslint-import-resolver-node@0.3.7":
-  version "0.3.7"
-  resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz"
-  integrity "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA=="
-  dependencies:
-    "debug" "3.2.7"
-    "is-core-module" "2.12.1"
-    "resolve" "1.22.2"
-
-"eslint-module-utils@2.8.0":
-  version "2.8.0"
-  resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz"
-  integrity "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw=="
-  dependencies:
-    "@typescript-eslint/parser" "5.60.1"
-    "debug" "3.2.7"
-    "eslint" "8.44.0"
-    "eslint-import-resolver-node" "0.3.7"
-
-"eslint-plugin-import@^2.27.5", "eslint-plugin-import@2.27.5":
-  version "2.27.5"
-  resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz"
-  integrity "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow=="
-  dependencies:
-    "@typescript-eslint/parser" "5.60.1"
-    "array-includes" "3.1.6"
-    "array.prototype.flat" "1.3.1"
-    "array.prototype.flatmap" "1.3.1"
-    "debug" "3.2.7"
-    "doctrine" "2.1.0"
-    "eslint" "8.44.0"
-    "eslint-import-resolver-node" "0.3.7"
-    "eslint-module-utils" "2.8.0"
-    "has" "1.0.3"
-    "is-core-module" "2.12.1"
-    "is-glob" "4.0.3"
-    "minimatch" "3.1.2"
-    "object.values" "1.1.6"
-    "resolve" "1.22.2"
-    "semver" "7.5.3"
-    "tsconfig-paths" "3.14.2"
-
-"eslint-plugin-prettier@^4.2.1", "eslint-plugin-prettier@4.2.1":
-  version "4.2.1"
-  resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz"
-  integrity "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ=="
-  dependencies:
-    "eslint" "8.44.0"
-    "eslint-config-prettier" "8.8.0"
-    "prettier" "2.8.8"
-    "prettier-linter-helpers" "1.0.0"
-
-"eslint-plugin-promise@^6.1.1", "eslint-plugin-promise@6.1.1":
-  version "6.1.1"
-  resolved "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz"
-  integrity "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig=="
-  dependencies:
-    "eslint" "8.44.0"
-
-"eslint-plugin-simple-import-sort@^10.0.0", "eslint-plugin-simple-import-sort@10.0.0":
-  version "10.0.0"
-  resolved "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-10.0.0.tgz"
-  integrity "sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw=="
-  dependencies:
-    "eslint" "8.44.0"
-
-"eslint-plugin-vue-scoped-css@^2.5.0", "eslint-plugin-vue-scoped-css@2.5.0":
-  version "2.5.0"
-  resolved "https://registry.npmjs.org/eslint-plugin-vue-scoped-css/-/eslint-plugin-vue-scoped-css-2.5.0.tgz"
-  integrity "sha512-vR+raYNE1aQ69lS1lZGiKoz8rXFI3MWf2fxrfns/XCQ0XT5sIguhDtQS+9JmUQJClenLDEe2CQx7P+eeSdF4cA=="
-  dependencies:
-    "eslint" "8.44.0"
-    "eslint-utils" "3.0.0"
-    "lodash" "4.17.21"
-    "postcss" "8.4.31"
-    "postcss-safe-parser" "6.0.0"
-    "postcss-scss" "4.0.6"
-    "postcss-selector-parser" "6.0.13"
-    "postcss-styl" "0.12.3"
-    "vue-eslint-parser" "9.3.1"
-
-"eslint-plugin-vue@^9.15.1", "eslint-plugin-vue@9.15.1":
-  version "9.15.1"
-  resolved "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.15.1.tgz"
-  integrity "sha512-CJE/oZOslvmAR9hf8SClTdQ9JLweghT6JCBQNrT2Iel1uVw0W0OLJxzvPd6CxmABKCvLrtyDnqGV37O7KQv6+A=="
-  dependencies:
-    "@eslint-community/eslint-utils" "4.4.0"
-    "eslint" "8.44.0"
-    "natural-compare" "1.4.0"
-    "nth-check" "2.1.1"
-    "postcss-selector-parser" "6.0.13"
-    "semver" "7.5.3"
-    "vue-eslint-parser" "9.3.1"
-    "xml-name-validator" "4.0.0"
-
-"eslint-scope@5.1.1":
-  version "5.1.1"
-  resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz"
-  integrity "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw=="
-  dependencies:
-    "esrecurse" "4.3.0"
-    "estraverse" "4.3.0"
-
-"eslint-scope@7.2.0":
-  version "7.2.0"
-  resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz"
-  integrity "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw=="
-  dependencies:
-    "esrecurse" "4.3.0"
-    "estraverse" "5.3.0"
-
-"eslint-utils@2.1.0":
-  version "2.1.0"
-  resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz"
-  integrity "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg=="
-  dependencies:
-    "eslint-visitor-keys" "1.3.0"
-
-"eslint-utils@3.0.0":
-  version "3.0.0"
-  resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz"
-  integrity "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA=="
-  dependencies:
-    "eslint" "8.44.0"
-    "eslint-visitor-keys" "2.1.0"
-
-"eslint-visitor-keys@1.3.0":
-  version "1.3.0"
-  resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz"
-  integrity "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ=="
-
-"eslint-visitor-keys@2.1.0":
-  version "2.1.0"
-  resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz"
-  integrity "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw=="
-
-"eslint-visitor-keys@3.4.1":
-  version "3.4.1"
-  resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz"
-  integrity "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA=="
-
-"eslint@^8.44.0", "eslint@8.44.0":
-  version "8.44.0"
-  resolved "https://registry.npmjs.org/eslint/-/eslint-8.44.0.tgz"
-  integrity "sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A=="
-  dependencies:
-    "@eslint-community/eslint-utils" "4.4.0"
-    "@eslint-community/regexpp" "4.5.1"
-    "@eslint/eslintrc" "2.1.0"
-    "@eslint/js" "8.44.0"
-    "@humanwhocodes/config-array" "0.11.10"
-    "@humanwhocodes/module-importer" "1.0.1"
-    "@nodelib/fs.walk" "1.2.8"
-    "ajv" "6.12.6"
-    "chalk" "4.1.2"
-    "cross-spawn" "7.0.3"
-    "debug" "4.3.4"
-    "doctrine" "3.0.0"
-    "escape-string-regexp" "4.0.0"
-    "eslint-scope" "7.2.0"
-    "eslint-visitor-keys" "3.4.1"
-    "espree" "9.6.0"
-    "esquery" "1.5.0"
-    "esutils" "2.0.3"
-    "fast-deep-equal" "3.1.3"
-    "file-entry-cache" "6.0.1"
-    "find-up" "5.0.0"
-    "glob-parent" "6.0.2"
-    "globals" "13.20.0"
-    "graphemer" "1.4.0"
-    "ignore" "5.2.4"
-    "import-fresh" "3.3.0"
-    "imurmurhash" "0.1.4"
-    "is-glob" "4.0.3"
-    "is-path-inside" "3.0.3"
-    "js-yaml" "4.1.0"
-    "json-stable-stringify-without-jsonify" "1.0.1"
-    "levn" "0.4.1"
-    "lodash.merge" "4.6.2"
-    "minimatch" "3.1.2"
-    "natural-compare" "1.4.0"
-    "optionator" "0.9.3"
-    "strip-ansi" "6.0.1"
-    "strip-json-comments" "3.1.1"
-    "text-table" "0.2.0"
-
-"espree@6.2.1":
-  version "6.2.1"
-  resolved "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz"
-  integrity "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw=="
-  dependencies:
-    "acorn" "7.4.1"
-    "acorn-jsx" "5.3.2"
-    "eslint-visitor-keys" "1.3.0"
-
-"espree@9.6.0":
-  version "9.6.0"
-  resolved "https://registry.npmjs.org/espree/-/espree-9.6.0.tgz"
-  integrity "sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A=="
-  dependencies:
-    "acorn" "8.9.0"
-    "acorn-jsx" "5.3.2"
-    "eslint-visitor-keys" "3.4.1"
-
-"esprima@4.0.1":
-  version "4.0.1"
-  resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz"
-  integrity "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
-
-"esquery@1.5.0":
-  version "1.5.0"
-  resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz"
-  integrity "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg=="
-  dependencies:
-    "estraverse" "5.3.0"
-
-"esrecurse@4.3.0":
-  version "4.3.0"
-  resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz"
-  integrity "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="
-  dependencies:
-    "estraverse" "5.3.0"
-
-"estraverse@4.3.0":
-  version "4.3.0"
-  resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz"
-  integrity "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
-
-"estraverse@5.3.0":
-  version "5.3.0"
-  resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz"
-  integrity "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="
-
-"estree-walker@2.0.2":
-  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=="
-
-"esutils@2.0.3":
-  version "2.0.3"
-  resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz"
-  integrity "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
-
-"execa@5.1.1":
-  version "5.1.1"
-  resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz"
-  integrity "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg=="
-  dependencies:
-    "cross-spawn" "7.0.3"
-    "get-stream" "6.0.1"
-    "human-signals" "2.1.0"
-    "is-stream" "2.0.1"
-    "merge-stream" "2.0.0"
-    "npm-run-path" "4.0.1"
-    "onetime" "5.1.2"
-    "signal-exit" "3.0.7"
-    "strip-final-newline" "2.0.0"
-
-"fast-deep-equal@3.1.3":
-  version "3.1.3"
-  resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
-  integrity "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
-
-"fast-diff@1.3.0":
-  version "1.3.0"
-  resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz"
-  integrity "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw=="
-
-"fast-glob@3.3.0":
-  version "3.3.0"
-  resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz"
-  integrity "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA=="
-  dependencies:
-    "@nodelib/fs.stat" "2.0.5"
-    "@nodelib/fs.walk" "1.2.8"
-    "glob-parent" "5.1.2"
-    "merge2" "1.4.1"
-    "micromatch" "4.0.5"
-
-"fast-json-stable-stringify@2.1.0":
-  version "2.1.0"
-  resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"
-  integrity "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
-
-"fast-levenshtein@2.0.6":
-  version "2.0.6"
-  resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"
-  integrity "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
-
-"fastq@1.15.0":
-  version "1.15.0"
-  resolved "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz"
-  integrity "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw=="
-  dependencies:
-    "reusify" "1.0.4"
-
-"file-entry-cache@6.0.1":
-  version "6.0.1"
-  resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz"
-  integrity "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg=="
-  dependencies:
-    "flat-cache" "3.0.4"
-
-"fill-range@7.0.1":
-  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"
-
-"find-up@5.0.0":
-  version "5.0.0"
-  resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz"
-  integrity "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="
-  dependencies:
-    "locate-path" "6.0.0"
-    "path-exists" "4.0.0"
-
-"flat-cache@3.0.4":
-  version "3.0.4"
-  resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz"
-  integrity "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg=="
-  dependencies:
-    "flatted" "3.2.7"
-    "rimraf" "3.0.2"
-
-"flatted@3.2.7":
-  version "3.2.7"
-  resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz"
-  integrity "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ=="
-
-"floating-vue@^2.0.0-beta.24", "floating-vue@2.0.0-beta.24":
-  version "2.0.0-beta.24"
-  resolved "https://registry.npmjs.org/floating-vue/-/floating-vue-2.0.0-beta.24.tgz"
-  integrity "sha512-URSzP6YXaF4u1oZ9XGL8Sn8puuM7ivp5jkOUrpy5Q1mfo9BfGppJOn+ierTmsSUfJEeHBae8KT7r5DeI3vQIEw=="
-  dependencies:
-    "@floating-ui/dom" "1.1.1"
-    "vue" "3.3.4"
-    "vue-resize" "2.0.0-alpha.1"
-
-"for-each@0.3.3":
-  version "0.3.3"
-  resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz"
-  integrity "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw=="
-  dependencies:
-    "is-callable" "1.2.7"
-
-"fs.realpath@1.0.0":
-  version "1.0.0"
-  resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
-  integrity "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
-
-"fsevents@2.3.2":
-  version "2.3.2"
-  resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz"
-  integrity "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA=="
-
-"function-bind@1.1.1":
-  version "1.1.1"
-  resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
-  integrity "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
-
-"function.prototype.name@1.1.5":
-  version "1.1.5"
-  resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz"
-  integrity "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA=="
-  dependencies:
-    "call-bind" "1.0.2"
-    "define-properties" "1.2.0"
-    "es-abstract" "1.21.2"
-    "functions-have-names" "1.2.3"
-
-"functions-have-names@1.2.3":
-  version "1.2.3"
-  resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz"
-  integrity "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="
-
-"fuse.js@^6.6.2", "fuse.js@6.6.2":
-  version "6.6.2"
-  resolved "https://registry.npmjs.org/fuse.js/-/fuse.js-6.6.2.tgz"
-  integrity "sha512-cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA=="
-
-"gensync@1.0.0-beta.2":
-  version "1.0.0-beta.2"
-  resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz"
-  integrity "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="
-
-"get-intrinsic@1.2.1":
-  version "1.2.1"
-  resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz"
-  integrity "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw=="
-  dependencies:
-    "function-bind" "1.1.1"
-    "has" "1.0.3"
-    "has-proto" "1.0.1"
-    "has-symbols" "1.0.3"
-
-"get-stream@6.0.1":
-  version "6.0.1"
-  resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz"
-  integrity "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="
-
-"get-symbol-description@1.0.0":
-  version "1.0.0"
-  resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz"
-  integrity "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw=="
-  dependencies:
-    "call-bind" "1.0.2"
-    "get-intrinsic" "1.2.1"
-
-"glob-parent@5.1.2":
-  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.3"
-
-"glob-parent@6.0.2":
-  version "6.0.2"
-  resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz"
-  integrity "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="
-  dependencies:
-    "is-glob" "4.0.3"
-
-"glob@7.2.3":
-  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.6"
-    "inherits" "2.0.4"
-    "minimatch" "3.1.2"
-    "once" "1.4.0"
-    "path-is-absolute" "1.0.1"
-
-"globals@11.12.0":
-  version "11.12.0"
-  resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz"
-  integrity "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
-
-"globals@13.20.0":
-  version "13.20.0"
-  resolved "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz"
-  integrity "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ=="
-  dependencies:
-    "type-fest" "0.20.2"
-
-"globalthis@1.0.3":
-  version "1.0.3"
-  resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz"
-  integrity "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA=="
-  dependencies:
-    "define-properties" "1.2.0"
-
-"globby@11.1.0":
-  version "11.1.0"
-  resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz"
-  integrity "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g=="
-  dependencies:
-    "array-union" "2.1.0"
-    "dir-glob" "3.0.1"
-    "fast-glob" "3.3.0"
-    "ignore" "5.2.4"
-    "merge2" "1.4.1"
-    "slash" "3.0.0"
-
-"gopd@1.0.1":
-  version "1.0.1"
-  resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz"
-  integrity "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA=="
-  dependencies:
-    "get-intrinsic" "1.2.1"
-
-"grapheme-splitter@1.0.4":
-  version "1.0.4"
-  resolved "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz"
-  integrity "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ=="
-
-"graphemer@1.4.0":
-  version "1.4.0"
-  resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz"
-  integrity "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="
-
-"has-bigints@1.0.2":
-  version "1.0.2"
-  resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz"
-  integrity "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ=="
-
-"has-flag@3.0.0":
-  version "3.0.0"
-  resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"
-  integrity "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
-
-"has-flag@4.0.0":
-  version "4.0.0"
-  resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"
-  integrity "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
-
-"has-property-descriptors@1.0.0":
-  version "1.0.0"
-  resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz"
-  integrity "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ=="
-  dependencies:
-    "get-intrinsic" "1.2.1"
-
-"has-proto@1.0.1":
-  version "1.0.1"
-  resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz"
-  integrity "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg=="
-
-"has-symbols@1.0.3":
-  version "1.0.3"
-  resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz"
-  integrity "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
-
-"has-tostringtag@1.0.0":
-  version "1.0.0"
-  resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz"
-  integrity "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ=="
-  dependencies:
-    "has-symbols" "1.0.3"
-
-"has@1.0.3":
-  version "1.0.3"
-  resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz"
-  integrity "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw=="
-  dependencies:
-    "function-bind" "1.1.1"
-
-"he@1.2.0":
-  version "1.2.0"
-  resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz"
-  integrity "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
-
-"human-signals@2.1.0":
-  version "2.1.0"
-  resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz"
-  integrity "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw=="
-
-"humanize-duration@^3.28.0", "humanize-duration@3.28.0":
-  version "3.28.0"
-  resolved "https://registry.npmjs.org/humanize-duration/-/humanize-duration-3.28.0.tgz"
-  integrity "sha512-jMAxraOOmHuPbffLVDKkEKi/NeG8dMqP8lGRd6Tbf7JgAeG33jjgPWDbXXU7ypCI0o+oNKJFgbSB9FKVdWNI2A=="
-
-"ignore@5.2.4":
-  version "5.2.4"
-  resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz"
-  integrity "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ=="
-
-"import-fresh@3.3.0":
-  version "3.3.0"
-  resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz"
-  integrity "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw=="
-  dependencies:
-    "parent-module" "1.0.1"
-    "resolve-from" "4.0.0"
-
-"imurmurhash@0.1.4":
-  version "0.1.4"
-  resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz"
-  integrity "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="
-
-"inflight@1.0.6":
-  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.4.0"
-    "wrappy" "1.0.2"
-
-"inherits@2.0.4":
-  version "2.0.4"
-  resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
-  integrity "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
-
-"internal-slot@1.0.5":
-  version "1.0.5"
-  resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz"
-  integrity "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ=="
-  dependencies:
-    "get-intrinsic" "1.2.1"
-    "has" "1.0.3"
-    "side-channel" "1.0.4"
-
-"is-array-buffer@3.0.2":
-  version "3.0.2"
-  resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz"
-  integrity "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w=="
-  dependencies:
-    "call-bind" "1.0.2"
-    "get-intrinsic" "1.2.1"
-    "is-typed-array" "1.1.10"
-
-"is-bigint@1.0.4":
-  version "1.0.4"
-  resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz"
-  integrity "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg=="
-  dependencies:
-    "has-bigints" "1.0.2"
-
-"is-binary-path@2.1.0":
-  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.2.0"
-
-"is-boolean-object@1.1.2":
-  version "1.1.2"
-  resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz"
-  integrity "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA=="
-  dependencies:
-    "call-bind" "1.0.2"
-    "has-tostringtag" "1.0.0"
-
-"is-callable@1.2.7":
-  version "1.2.7"
-  resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz"
-  integrity "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="
-
-"is-core-module@2.12.1":
-  version "2.12.1"
-  resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz"
-  integrity "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg=="
-  dependencies:
-    "has" "1.0.3"
-
-"is-date-object@1.0.5":
-  version "1.0.5"
-  resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz"
-  integrity "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ=="
-  dependencies:
-    "has-tostringtag" "1.0.0"
-
-"is-extglob@2.1.1":
-  version "2.1.1"
-  resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
-  integrity "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
-
-"is-glob@4.0.3":
-  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"
-
-"is-negative-zero@2.0.2":
-  version "2.0.2"
-  resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz"
-  integrity "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA=="
-
-"is-number-object@1.0.7":
-  version "1.0.7"
-  resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz"
-  integrity "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ=="
-  dependencies:
-    "has-tostringtag" "1.0.0"
-
-"is-number@7.0.0":
-  version "7.0.0"
-  resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
-  integrity "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
-
-"is-path-inside@3.0.3":
-  version "3.0.3"
-  resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz"
-  integrity "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ=="
-
-"is-regex@1.1.4":
-  version "1.1.4"
-  resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz"
-  integrity "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg=="
-  dependencies:
-    "call-bind" "1.0.2"
-    "has-tostringtag" "1.0.0"
-
-"is-shared-array-buffer@1.0.2":
-  version "1.0.2"
-  resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz"
-  integrity "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA=="
-  dependencies:
-    "call-bind" "1.0.2"
-
-"is-stream@2.0.1":
-  version "2.0.1"
-  resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz"
-  integrity "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
-
-"is-string@1.0.7":
-  version "1.0.7"
-  resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz"
-  integrity "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg=="
-  dependencies:
-    "has-tostringtag" "1.0.0"
-
-"is-symbol@1.0.4":
-  version "1.0.4"
-  resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz"
-  integrity "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg=="
-  dependencies:
-    "has-symbols" "1.0.3"
-
-"is-typed-array@1.1.10":
-  version "1.1.10"
-  resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz"
-  integrity "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A=="
-  dependencies:
-    "available-typed-arrays" "1.0.5"
-    "call-bind" "1.0.2"
-    "for-each" "0.3.3"
-    "gopd" "1.0.1"
-    "has-tostringtag" "1.0.0"
-
-"is-weakref@1.0.2":
-  version "1.0.2"
-  resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz"
-  integrity "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ=="
-  dependencies:
-    "call-bind" "1.0.2"
-
-"isexe@2.0.0":
-  version "2.0.0"
-  resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
-  integrity "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
-
-"javascript-time-ago@^2.5.9", "javascript-time-ago@2.5.9":
-  version "2.5.9"
-  resolved "https://registry.npmjs.org/javascript-time-ago/-/javascript-time-ago-2.5.9.tgz"
-  integrity "sha512-pQ8mNco/9g9TqWXWWjP0EWl6i/lAQScOyEeXy5AB+f7MfLSdgyV9BJhiOD1zrIac/lrxPYOWNbyl/IW8CW5n0A=="
-  dependencies:
-    "relative-time-format" "1.1.6"
-
-"jiti@1.18.2":
-  version "1.18.2"
-  resolved "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz"
-  integrity "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg=="
-
-"js-tokens@4.0.0":
-  version "4.0.0"
-  resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
-  integrity "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
-
-"js-yaml@4.1.0":
-  version "4.1.0"
-  resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz"
-  integrity "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="
-  dependencies:
-    "argparse" "2.0.1"
-
-"jsesc@2.5.2":
-  version "2.5.2"
-  resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz"
-  integrity "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="
-
-"json-schema-traverse@0.4.1":
-  version "0.4.1"
-  resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"
-  integrity "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
-
-"json-stable-stringify-without-jsonify@1.0.1":
-  version "1.0.1"
-  resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz"
-  integrity "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="
-
-"json5@1.0.2":
-  version "1.0.2"
-  resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz"
-  integrity "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA=="
-  dependencies:
-    "minimist" "1.2.8"
-
-"json5@2.2.3":
-  version "2.2.3"
-  resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz"
-  integrity "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="
-
-"jsonc-eslint-parser@1.4.1":
-  version "1.4.1"
-  resolved "https://registry.npmjs.org/jsonc-eslint-parser/-/jsonc-eslint-parser-1.4.1.tgz"
-  integrity "sha512-hXBrvsR1rdjmB2kQmUjf1rEIa+TqHBGMge8pwi++C+Si1ad7EjZrJcpgwym+QGK/pqTx+K7keFAtLlVNdLRJOg=="
-  dependencies:
-    "acorn" "7.4.1"
-    "eslint-utils" "2.1.0"
-    "eslint-visitor-keys" "1.3.0"
-    "espree" "6.2.1"
-    "semver" "7.5.3"
-
-"kolorist@1.8.0":
-  version "1.8.0"
-  resolved "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz"
-  integrity "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ=="
-
-"levn@0.4.1":
-  version "0.4.1"
-  resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz"
-  integrity "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="
-  dependencies:
-    "prelude-ls" "1.2.1"
-    "type-check" "0.4.0"
-
-"local-pkg@0.4.3":
-  version "0.4.3"
-  resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz"
-  integrity "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g=="
-
-"locate-path@6.0.0":
-  version "6.0.0"
-  resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz"
-  integrity "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="
-  dependencies:
-    "p-locate" "5.0.0"
-
-"lodash.merge@4.6.2":
-  version "4.6.2"
-  resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz"
-  integrity "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
-
-"lodash.sortedlastindex@4.1.0":
-  version "4.1.0"
-  resolved "https://registry.npmjs.org/lodash.sortedlastindex/-/lodash.sortedlastindex-4.1.0.tgz"
-  integrity "sha512-s8xEQdsp2Tu5zUqVdFSe9C0kR8YlnAJYLqMdkh+pIRBRxF6/apWseLdHl3/+jv2I61dhPwtI/Ff+EqvCpc+N8w=="
-
-"lodash@^4.17.21", "lodash@4.17.21":
-  version "4.17.21"
-  resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
-  integrity "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
-
-"lru-cache@5.1.1":
-  version "5.1.1"
-  resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz"
-  integrity "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="
-  dependencies:
-    "yallist" "3.1.1"
-
-"lru-cache@6.0.0":
-  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"
-
-"magic-string@0.30.0":
-  version "0.30.0"
-  resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz"
-  integrity "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ=="
-  dependencies:
-    "@jridgewell/sourcemap-codec" "1.4.15"
-
-"mdn-data@2.0.28":
-  version "2.0.28"
-  resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz"
-  integrity "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g=="
-
-"mdn-data@2.0.30":
-  version "2.0.30"
-  resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz"
-  integrity "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA=="
-
-"merge-stream@2.0.0":
-  version "2.0.0"
-  resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz"
-  integrity "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
-
-"merge2@1.4.1":
-  version "1.4.1"
-  resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
-  integrity "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
-
-"micromatch@4.0.5":
-  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"
-
-"mimic-fn@2.1.0":
-  version "2.1.0"
-  resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz"
-  integrity "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
-
-"minimatch@3.1.2":
-  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.11"
-
-"minimatch@7.4.6":
-  version "7.4.6"
-  resolved "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz"
-  integrity "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw=="
-  dependencies:
-    "brace-expansion" "2.0.1"
-
-"minimatch@9.0.2":
-  version "9.0.2"
-  resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.2.tgz"
-  integrity "sha512-PZOT9g5v2ojiTL7r1xF6plNHLtOeTpSlDI007As2NlA2aYBMfVom17yqa6QzhmDP8QOhn7LjHTg7DFCVSSa6yg=="
-  dependencies:
-    "brace-expansion" "2.0.1"
-
-"minimist@1.2.8":
-  version "1.2.8"
-  resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz"
-  integrity "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="
-
-"ms@2.1.2":
-  version "2.1.2"
-  resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
-  integrity "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
-
-"ms@2.1.3":
-  version "2.1.3"
-  resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
-  integrity "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
-
-"muggle-string@0.3.1":
-  version "0.3.1"
-  resolved "https://registry.npmjs.org/muggle-string/-/muggle-string-0.3.1.tgz"
-  integrity "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg=="
-
-"nanoid@3.3.6":
-  version "3.3.6"
-  resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz"
-  integrity "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA=="
-
-"natural-compare-lite@1.4.0":
-  version "1.4.0"
-  resolved "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz"
-  integrity "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g=="
-
-"natural-compare@1.4.0":
-  version "1.4.0"
-  resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz"
-  integrity "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
-
-"node-emoji@^1.11.0", "node-emoji@1.11.0":
-  version "1.11.0"
-  resolved "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz"
-  integrity "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A=="
-  dependencies:
-    "lodash" "4.17.21"
-
-"node-releases@2.0.12":
-  version "2.0.12"
-  resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz"
-  integrity "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ=="
-
-"normalize-path@3.0.0":
-  version "3.0.0"
-  resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"
-  integrity "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
-
-"npm-run-path@4.0.1":
-  version "4.0.1"
-  resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz"
-  integrity "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw=="
-  dependencies:
-    "path-key" "3.1.1"
-
-"nth-check@2.1.1":
-  version "2.1.1"
-  resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz"
-  integrity "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w=="
-  dependencies:
-    "boolbase" "1.0.0"
-
-"object-inspect@1.12.3":
-  version "1.12.3"
-  resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz"
-  integrity "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g=="
-
-"object-keys@1.1.1":
-  version "1.1.1"
-  resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz"
-  integrity "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
-
-"object.assign@4.1.4":
-  version "4.1.4"
-  resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz"
-  integrity "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ=="
-  dependencies:
-    "call-bind" "1.0.2"
-    "define-properties" "1.2.0"
-    "has-symbols" "1.0.3"
-    "object-keys" "1.1.1"
-
-"object.entries@1.1.6":
-  version "1.1.6"
-  resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz"
-  integrity "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w=="
-  dependencies:
-    "call-bind" "1.0.2"
-    "define-properties" "1.2.0"
-    "es-abstract" "1.21.2"
-
-"object.values@1.1.6":
-  version "1.1.6"
-  resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz"
-  integrity "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw=="
-  dependencies:
-    "call-bind" "1.0.2"
-    "define-properties" "1.2.0"
-    "es-abstract" "1.21.2"
-
-"once@1.4.0":
-  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.0.2"
-
-"onetime@5.1.2":
-  version "5.1.2"
-  resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz"
-  integrity "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg=="
-  dependencies:
-    "mimic-fn" "2.1.0"
-
-"optionator@0.9.3":
-  version "0.9.3"
-  resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz"
-  integrity "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg=="
-  dependencies:
-    "@aashutoshrathi/word-wrap" "1.2.6"
-    "deep-is" "0.1.4"
-    "fast-levenshtein" "2.0.6"
-    "levn" "0.4.1"
-    "prelude-ls" "1.2.1"
-    "type-check" "0.4.0"
-
-"p-limit@3.1.0":
-  version "3.1.0"
-  resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz"
-  integrity "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="
-  dependencies:
-    "yocto-queue" "0.1.0"
-
-"p-locate@5.0.0":
-  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=="
-  dependencies:
-    "p-limit" "3.1.0"
-
-"parent-module@1.0.1":
-  version "1.0.1"
-  resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz"
-  integrity "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="
-  dependencies:
-    "callsites" "3.1.0"
-
-"path-exists@4.0.0":
-  version "4.0.0"
-  resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz"
-  integrity "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
-
-"path-is-absolute@1.0.1":
-  version "1.0.1"
-  resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
-  integrity "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
-
-"path-key@3.1.1":
-  version "3.1.1"
-  resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz"
-  integrity "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
-
-"path-parse@1.0.7":
-  version "1.0.7"
-  resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz"
-  integrity "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
-
-"path-type@4.0.0":
-  version "4.0.0"
-  resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz"
-  integrity "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
-
-"pathe@1.1.1":
-  version "1.1.1"
-  resolved "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz"
-  integrity "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q=="
-
-"picocolors@1.0.0":
-  version "1.0.0"
-  resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz"
-  integrity "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
-
-"picomatch@2.3.1":
-  version "2.3.1"
-  resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
-  integrity "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
-
-"pinia@^2.1.4", "pinia@2.1.4":
-  version "2.1.4"
-  resolved "https://registry.npmjs.org/pinia/-/pinia-2.1.4.tgz"
-  integrity "sha512-vYlnDu+Y/FXxv1ABo1vhjC+IbqvzUdiUC3sfDRrRyY2CQSrqqaa+iiHmqtARFxJVqWQMCJfXx1PBvFs9aJVLXQ=="
-  dependencies:
-    "@vue/devtools-api" "6.5.0"
-    "typescript" "5.0.3"
-    "vue" "3.3.4"
-    "vue-demi" "0.14.5"
-
-"postcss-safe-parser@6.0.0":
-  version "6.0.0"
-  resolved "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz"
-  integrity "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ=="
-  dependencies:
-    "postcss" "8.4.31"
-
-"postcss-scss@4.0.6":
-  version "4.0.6"
-  resolved "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.6.tgz"
-  integrity "sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ=="
-  dependencies:
-    "postcss" "8.4.31"
-
-"postcss-selector-parser@6.0.13":
-  version "6.0.13"
-  resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz"
-  integrity "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ=="
-  dependencies:
-    "cssesc" "3.0.0"
-    "util-deprecate" "1.0.2"
-
-"postcss-styl@0.12.3":
-  version "0.12.3"
-  resolved "https://registry.npmjs.org/postcss-styl/-/postcss-styl-0.12.3.tgz"
-  integrity "sha512-8I7Cd8sxiEITIp32xBK4K/Aj1ukX6vuWnx8oY/oAH35NfQI4OZaY5nd68Yx8HeN5S49uhQ6DL0rNk0ZBu/TaLg=="
-  dependencies:
-    "debug" "4.3.4"
-    "fast-diff" "1.3.0"
-    "lodash.sortedlastindex" "4.1.0"
-    "postcss" "8.4.31"
-    "stylus" "0.57.0"
-
-"postcss@8.4.31":
-  version "8.4.31"
-  resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz"
-  integrity "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ=="
-  dependencies:
-    "nanoid" "3.3.6"
-    "picocolors" "1.0.0"
-    "source-map-js" "1.0.2"
-
-"prelude-ls@1.2.1":
-  version "1.2.1"
-  resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz"
-  integrity "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="
-
-"prettier-linter-helpers@1.0.0":
-  version "1.0.0"
-  resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz"
-  integrity "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w=="
-  dependencies:
-    "fast-diff" "1.3.0"
-
-"prettier@^2.8.8", "prettier@2.8.8":
-  version "2.8.8"
-  resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz"
-  integrity "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q=="
-
-"prismjs@^1.29.0", "prismjs@1.29.0":
-  version "1.29.0"
-  resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz"
-  integrity "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q=="
-
-"punycode@2.3.0":
-  version "2.3.0"
-  resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz"
-  integrity "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA=="
-
-"queue-microtask@1.2.3":
-  version "1.2.3"
-  resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz"
-  integrity "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
-
-"readdirp@3.6.0":
-  version "3.6.0"
-  resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz"
-  integrity "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="
-  dependencies:
-    "picomatch" "2.3.1"
-
-"regexp.prototype.flags@1.5.0":
-  version "1.5.0"
-  resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz"
-  integrity "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA=="
-  dependencies:
-    "call-bind" "1.0.2"
-    "define-properties" "1.2.0"
-    "functions-have-names" "1.2.3"
-
-"relative-time-format@1.1.6":
-  version "1.1.6"
-  resolved "https://registry.npmjs.org/relative-time-format/-/relative-time-format-1.1.6.tgz"
-  integrity "sha512-aCv3juQw4hT1/P/OrVltKWLlp15eW1GRcwP1XdxHrPdZE9MtgqFpegjnTjLhi2m2WI9MT/hQQtE+tjEWG1hgkQ=="
-
-"resolve-from@4.0.0":
-  version "4.0.0"
-  resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz"
-  integrity "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
-
-"resolve@1.22.2":
-  version "1.22.2"
-  resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz"
-  integrity "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g=="
-  dependencies:
-    "is-core-module" "2.12.1"
-    "path-parse" "1.0.7"
-    "supports-preserve-symlinks-flag" "1.0.0"
-
-"reusify@1.0.4":
-  version "1.0.4"
-  resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz"
-  integrity "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
-
-"rimraf@3.0.2":
-  version "3.0.2"
-  resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz"
-  integrity "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA=="
-  dependencies:
-    "glob" "7.2.3"
-
-"rollup@3.26.0":
-  version "3.26.0"
-  resolved "https://registry.npmjs.org/rollup/-/rollup-3.26.0.tgz"
-  integrity "sha512-YzJH0eunH2hr3knvF3i6IkLO/jTjAEwU4HoMUbQl4//Tnl3ou0e7P5SjxdDr8HQJdeUJShlbEHXrrnEHy1l7Yg=="
-
-"run-parallel@1.2.0":
-  version "1.2.0"
-  resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz"
-  integrity "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="
-  dependencies:
-    "queue-microtask" "1.2.3"
-
-"safe-regex-test@1.0.0":
-  version "1.0.0"
-  resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz"
-  integrity "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA=="
-  dependencies:
-    "call-bind" "1.0.2"
-    "get-intrinsic" "1.2.1"
-    "is-regex" "1.1.4"
-
-"safer-buffer@2.1.2":
-  version "2.1.2"
-  resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
-  integrity "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
-
-"sax@1.2.4":
-  version "1.2.4"
-  resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz"
-  integrity "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
-
-"semver@7.5.3":
-  version "7.5.3"
-  resolved "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz"
-  integrity "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ=="
-  dependencies:
-    "lru-cache" "6.0.0"
-
-"shebang-command@2.0.0":
-  version "2.0.0"
-  resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz"
-  integrity "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="
-  dependencies:
-    "shebang-regex" "3.0.0"
-
-"shebang-regex@3.0.0":
-  version "3.0.0"
-  resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz"
-  integrity "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
-
-"side-channel@1.0.4":
-  version "1.0.4"
-  resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz"
-  integrity "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw=="
-  dependencies:
-    "call-bind" "1.0.2"
-    "get-intrinsic" "1.2.1"
-    "object-inspect" "1.12.3"
-
-"signal-exit@3.0.7":
-  version "3.0.7"
-  resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz"
-  integrity "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
-
-"slash@3.0.0":
-  version "3.0.0"
-  resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz"
-  integrity "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
-
-"source-map-js@1.0.2":
-  version "1.0.2"
-  resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz"
-  integrity "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
-
-"source-map-resolve@0.6.0":
-  version "0.6.0"
-  resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz"
-  integrity "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w=="
-  dependencies:
-    "atob" "2.1.2"
-    "decode-uri-component" "0.2.2"
-
-"source-map@0.6.1":
-  version "0.6.1"
-  resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"
-  integrity "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
-
-"source-map@0.7.4":
-  version "0.7.4"
-  resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz"
-  integrity "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA=="
-
-"string.prototype.trim@1.2.7":
-  version "1.2.7"
-  resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz"
-  integrity "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg=="
-  dependencies:
-    "call-bind" "1.0.2"
-    "define-properties" "1.2.0"
-    "es-abstract" "1.21.2"
-
-"string.prototype.trimend@1.0.6":
-  version "1.0.6"
-  resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz"
-  integrity "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ=="
-  dependencies:
-    "call-bind" "1.0.2"
-    "define-properties" "1.2.0"
-    "es-abstract" "1.21.2"
-
-"string.prototype.trimstart@1.0.6":
-  version "1.0.6"
-  resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz"
-  integrity "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA=="
-  dependencies:
-    "call-bind" "1.0.2"
-    "define-properties" "1.2.0"
-    "es-abstract" "1.21.2"
-
-"strip-ansi@6.0.1":
-  version "6.0.1"
-  resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
-  integrity "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="
-  dependencies:
-    "ansi-regex" "5.0.1"
-
-"strip-bom@3.0.0":
-  version "3.0.0"
-  resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz"
-  integrity "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA=="
-
-"strip-final-newline@2.0.0":
-  version "2.0.0"
-  resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz"
-  integrity "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="
-
-"strip-json-comments@3.1.1":
-  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=="
-
-"stylus@0.57.0":
-  version "0.57.0"
-  resolved "https://registry.npmjs.org/stylus/-/stylus-0.57.0.tgz"
-  integrity "sha512-yOI6G8WYfr0q8v8rRvE91wbxFU+rJPo760Va4MF6K0I6BZjO4r+xSynkvyPBP9tV1CIEUeRsiidjIs2rzb1CnQ=="
-  dependencies:
-    "css" "3.0.0"
-    "debug" "4.3.4"
-    "glob" "7.2.3"
-    "safer-buffer" "2.1.2"
-    "sax" "1.2.4"
-    "source-map" "0.7.4"
-
-"supports-color@5.5.0":
-  version "5.5.0"
-  resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"
-  integrity "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="
-  dependencies:
-    "has-flag" "3.0.0"
-
-"supports-color@7.2.0":
-  version "7.2.0"
-  resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"
-  integrity "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="
-  dependencies:
-    "has-flag" "4.0.0"
-
-"supports-preserve-symlinks-flag@1.0.0":
-  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=="
-
-"svgo@3.0.2":
-  version "3.0.2"
-  resolved "https://registry.npmjs.org/svgo/-/svgo-3.0.2.tgz"
-  integrity "sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ=="
-  dependencies:
-    "@trysound/sax" "0.2.0"
-    "commander" "7.2.0"
-    "css-select" "5.1.0"
-    "css-tree" "2.3.1"
-    "csso" "5.0.5"
-    "picocolors" "1.0.0"
-
-"text-table@0.2.0":
-  version "0.2.0"
-  resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz"
-  integrity "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
-
-"to-fast-properties@2.0.0":
-  version "2.0.0"
-  resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz"
-  integrity "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog=="
-
-"to-regex-range@5.0.1":
-  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"
-
-"tsconfig-paths@3.14.2":
-  version "3.14.2"
-  resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz"
-  integrity "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g=="
-  dependencies:
-    "@types/json5" "0.0.29"
-    "json5" "1.0.2"
-    "minimist" "1.2.8"
-    "strip-bom" "3.0.0"
-
-"tslib@1.14.1":
-  version "1.14.1"
-  resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz"
-  integrity "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
-
-"tsutils@3.21.0":
-  version "3.21.0"
-  resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz"
-  integrity "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA=="
-  dependencies:
-    "tslib" "1.14.1"
-    "typescript" "5.0.3"
-
-"type-check@0.4.0":
-  version "0.4.0"
-  resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz"
-  integrity "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="
-  dependencies:
-    "prelude-ls" "1.2.1"
-
-"type-fest@0.20.2":
-  version "0.20.2"
-  resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz"
-  integrity "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
-
-"typed-array-length@1.0.4":
-  version "1.0.4"
-  resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz"
-  integrity "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng=="
-  dependencies:
-    "call-bind" "1.0.2"
-    "for-each" "0.3.3"
-    "is-typed-array" "1.1.10"
-
-"typescript@5.0.3":
-  version "5.0.3"
-  resolved "https://registry.npmjs.org/typescript/-/typescript-5.0.3.tgz"
-  integrity "sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA=="
-
-"unbox-primitive@1.0.2":
-  version "1.0.2"
-  resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz"
-  integrity "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw=="
-  dependencies:
-    "call-bind" "1.0.2"
-    "has-bigints" "1.0.2"
-    "has-symbols" "1.0.3"
-    "which-boxed-primitive" "1.0.2"
-
-"unplugin-icons@^0.16.3", "unplugin-icons@0.16.3":
-  version "0.16.3"
-  resolved "https://registry.npmjs.org/unplugin-icons/-/unplugin-icons-0.16.3.tgz"
-  integrity "sha512-hivVVr6++WHSj6Iz+rjTa14/ALMYT+PFd2sPtTBKlQR3cdzui1VwM72TzSu94NkDm/KVncvOIiBwoHwUPeL9bg=="
-  dependencies:
-    "@antfu/install-pkg" "0.1.1"
-    "@antfu/utils" "0.7.4"
-    "@iconify/utils" "2.1.7"
-    "@vue/compiler-sfc" "3.3.4"
-    "debug" "4.3.4"
-    "kolorist" "1.8.0"
-    "local-pkg" "0.4.3"
-    "unplugin" "1.3.1"
-
-"unplugin-vue-components@^0.24.1", "unplugin-vue-components@0.24.1":
-  version "0.24.1"
-  resolved "https://registry.npmjs.org/unplugin-vue-components/-/unplugin-vue-components-0.24.1.tgz"
-  integrity "sha512-T3A8HkZoIE1Cja95xNqolwza0yD5IVlgZZ1PVAGvVCx8xthmjsv38xWRCtHtwl+rvZyL9uif42SRkDGw9aCfMA=="
-  dependencies:
-    "@antfu/utils" "0.7.4"
-    "@rollup/pluginutils" "5.0.2"
-    "chokidar" "3.5.3"
-    "debug" "4.3.4"
-    "fast-glob" "3.3.0"
-    "local-pkg" "0.4.3"
-    "magic-string" "0.30.0"
-    "minimatch" "7.4.6"
-    "resolve" "1.22.2"
-    "unplugin" "1.3.1"
-    "vue" "3.3.4"
-
-"unplugin@1.3.1":
-  version "1.3.1"
-  resolved "https://registry.npmjs.org/unplugin/-/unplugin-1.3.1.tgz"
-  integrity "sha512-h4uUTIvFBQRxUKS2Wjys6ivoeofGhxzTe2sRWlooyjHXVttcVfV/JiavNd3d4+jty0SVV0dxGw9AkY9MwiaCEw=="
-  dependencies:
-    "acorn" "8.9.0"
-    "chokidar" "3.5.3"
-    "webpack-sources" "3.2.3"
-    "webpack-virtual-modules" "0.5.0"
-
-"update-browserslist-db@1.0.11":
-  version "1.0.11"
-  resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz"
-  integrity "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA=="
-  dependencies:
-    "browserslist" "4.21.9"
-    "escalade" "3.1.1"
-    "picocolors" "1.0.0"
-
-"uri-js@4.4.1":
-  version "4.4.1"
-  resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"
-  integrity "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="
-  dependencies:
-    "punycode" "2.3.0"
-
-"util-deprecate@1.0.2":
-  version "1.0.2"
-  resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
-  integrity "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
-
-"vite-plugin-prismjs@^0.0.8", "vite-plugin-prismjs@0.0.8":
-  version "0.0.8"
-  resolved "https://registry.npmjs.org/vite-plugin-prismjs/-/vite-plugin-prismjs-0.0.8.tgz"
-  integrity "sha512-mBPPMS/hwVUArdqCtp/oajZT7iq1qwJDDCciNZ3R5+Q5tQUuUHXtDKuZHYnklPLElNbENf2FyuOtC4FrgxQRAA=="
-  dependencies:
-    "@babel/core" "7.22.5"
-    "babel-plugin-prismjs" "2.1.0"
-
-"vite-plugin-windicss@^1.9.0", "vite-plugin-windicss@1.9.0":
-  version "1.9.0"
-  resolved "https://registry.npmjs.org/vite-plugin-windicss/-/vite-plugin-windicss-1.9.0.tgz"
-  integrity "sha512-w0unPfcbVU5eaISAsFTLgIb41SLhmXoUF75Othu8NqFioe8+DEqiuvJ7/k/LRuEuvI8Rt/OKrY6cNzrB+dykaA=="
-  dependencies:
-    "@windicss/plugin-utils" "1.9.0"
-    "debug" "4.3.4"
-    "kolorist" "1.8.0"
-    "vite" "4.3.9"
-    "windicss" "3.5.6"
-
-"vite-svg-loader@^4.0.0", "vite-svg-loader@4.0.0":
-  version "4.0.0"
-  resolved "https://registry.npmjs.org/vite-svg-loader/-/vite-svg-loader-4.0.0.tgz"
-  integrity "sha512-0MMf1yzzSYlV4MGePsLVAOqXsbF5IVxbn4EEzqRnWxTQl8BJg/cfwIzfQNmNQxZp5XXwd4kyRKF1LytuHZTnqA=="
-  dependencies:
-    "@vue/compiler-sfc" "3.3.4"
-    "svgo" "3.0.2"
-
-"vite@^4.3.9", "vite@4.3.9":
-  version "4.3.9"
-  resolved "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz"
-  integrity "sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg=="
-  dependencies:
-    "@types/node" "18.16.19"
-    "esbuild" "0.17.19"
-    "postcss" "8.4.31"
-    "rollup" "3.26.0"
-
-"vue-demi@0.14.5":
-  version "0.14.5"
-  resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.5.tgz"
-  integrity "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA=="
-  dependencies:
-    "vue" "3.3.4"
-
-"vue-eslint-parser@^9.3.1", "vue-eslint-parser@9.3.1":
-  version "9.3.1"
-  resolved "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.3.1.tgz"
-  integrity "sha512-Clr85iD2XFZ3lJ52/ppmUDG/spxQu6+MAeHXjjyI4I1NUYZ9xmenQp4N0oaHJhrA8OOxltCVxMRfANGa70vU0g=="
-  dependencies:
-    "debug" "4.3.4"
-    "eslint" "8.44.0"
-    "eslint-scope" "7.2.0"
-    "eslint-visitor-keys" "3.4.1"
-    "espree" "9.6.0"
-    "esquery" "1.5.0"
-    "lodash" "4.17.21"
-    "semver" "7.5.3"
-
-"vue-i18n@^9.2.2", "vue-i18n@9.2.2":
-  version "9.2.2"
-  resolved "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.2.2.tgz"
-  integrity "sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ=="
-  dependencies:
-    "@intlify/core-base" "9.2.2"
-    "@intlify/shared" "9.2.2"
-    "@intlify/vue-devtools" "9.2.2"
-    "@vue/devtools-api" "6.5.0"
-    "vue" "3.3.4"
-
-"vue-resize@2.0.0-alpha.1":
-  version "2.0.0-alpha.1"
-  resolved "https://registry.npmjs.org/vue-resize/-/vue-resize-2.0.0-alpha.1.tgz"
-  integrity "sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg=="
-  dependencies:
-    "vue" "3.3.4"
-
-"vue-router@^4.2.2", "vue-router@4.2.2":
-  version "4.2.2"
-  resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.2.2.tgz"
-  integrity "sha512-cChBPPmAflgBGmy3tBsjeoe3f3VOSG6naKyY5pjtrqLGbNEXdzCigFUHgBvp9e3ysAtFtEx7OLqcSDh/1Cq2TQ=="
-  dependencies:
-    "@vue/devtools-api" "6.5.0"
-    "vue" "3.3.4"
-
-"vue-template-compiler@2.7.14":
-  version "2.7.14"
-  resolved "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz"
-  integrity "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ=="
-  dependencies:
-    "de-indent" "1.0.2"
-    "he" "1.2.0"
-
-"vue-tsc@^1.8.3", "vue-tsc@1.8.3":
-  version "1.8.3"
-  resolved "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.3.tgz"
-  integrity "sha512-Ua4DHuYxjudlhCW2nRZtaXbhIDVncRGIbDjZhHpF8Z8vklct/G/35/kAPuGNSOmq0JcvhPAe28Oa7LWaUerZVA=="
-  dependencies:
-    "@vue/language-core" "1.8.3"
-    "@vue/typescript" "1.8.3"
-    "semver" "7.5.3"
-    "typescript" "5.0.3"
-
-"vue@^3.3.4", "vue@3.3.4":
-  version "3.3.4"
-  resolved "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz"
-  integrity "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw=="
-  dependencies:
-    "@vue/compiler-dom" "3.3.4"
-    "@vue/compiler-sfc" "3.3.4"
-    "@vue/runtime-dom" "3.3.4"
-    "@vue/server-renderer" "3.3.4"
-    "@vue/shared" "3.3.4"
-
-"webpack-sources@3.2.3":
-  version "3.2.3"
-  resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz"
-  integrity "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w=="
-
-"webpack-virtual-modules@0.5.0":
-  version "0.5.0"
-  resolved "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz"
-  integrity "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw=="
-
-"which-boxed-primitive@1.0.2":
-  version "1.0.2"
-  resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz"
-  integrity "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg=="
-  dependencies:
-    "is-bigint" "1.0.4"
-    "is-boolean-object" "1.1.2"
-    "is-number-object" "1.0.7"
-    "is-string" "1.0.7"
-    "is-symbol" "1.0.4"
-
-"which-typed-array@1.1.9":
-  version "1.1.9"
-  resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz"
-  integrity "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA=="
-  dependencies:
-    "available-typed-arrays" "1.0.5"
-    "call-bind" "1.0.2"
-    "for-each" "0.3.3"
-    "gopd" "1.0.1"
-    "has-tostringtag" "1.0.0"
-    "is-typed-array" "1.1.10"
-
-"which@2.0.2":
-  version "2.0.2"
-  resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz"
-  integrity "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="
-  dependencies:
-    "isexe" "2.0.0"
-
-"windicss@^3.5.6", "windicss@3.5.6":
-  version "3.5.6"
-  resolved "https://registry.npmjs.org/windicss/-/windicss-3.5.6.tgz"
-  integrity "sha512-P1mzPEjgFMZLX0ZqfFht4fhV/FX8DTG7ERG1fBLiWvd34pTLVReS5CVsewKn9PApSgXnVfPWwvq+qUsRwpnwFA=="
-
-"wrappy@1.0.2":
-  version "1.0.2"
-  resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
-  integrity "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
-
-"xml-name-validator@4.0.0":
-  version "4.0.0"
-  resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz"
-  integrity "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw=="
-
-"yallist@3.1.1":
-  version "3.1.1"
-  resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz"
-  integrity "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
-
-"yallist@4.0.0":
-  version "4.0.0"
-  resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"
-  integrity "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
-
-"yaml-eslint-parser@0.3.2":
-  version "0.3.2"
-  resolved "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-0.3.2.tgz"
-  integrity "sha512-32kYO6kJUuZzqte82t4M/gB6/+11WAuHiEnK7FreMo20xsCKPeFH5tDBU7iWxR7zeJpNnMXfJyXwne48D0hGrg=="
-  dependencies:
-    "eslint-visitor-keys" "1.3.0"
-    "lodash" "4.17.21"
-    "yaml" "1.10.2"
-
-"yaml@1.10.2":
-  version "1.10.2"
-  resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz"
-  integrity "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="
-
-"yocto-queue@0.1.0":
-  version "0.1.0"
-  resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz"
-  integrity "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="
diff --git a/pkgs/development/tools/ctlptl/default.nix b/pkgs/development/tools/ctlptl/default.nix
index 4d50a3395b25..576b3095922a 100644
--- a/pkgs/development/tools/ctlptl/default.nix
+++ b/pkgs/development/tools/ctlptl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "ctlptl";
-  version = "0.8.25";
+  version = "0.8.26";
 
   src = fetchFromGitHub {
     owner = "tilt-dev";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-rO3kOZGAI2K4+sFx2ka1lufTWauUY+qRWpoweT33cQw=";
+    hash = "sha256-Qi9fN66YLow8TO/4GmJBIcj8CnH7jbpyryjnMG6yp0U=";
   };
 
-  vendorHash = "sha256-hWmk/QmkSvRvjt9vcPG07sVwWlqfZrYvY0MGaeKhvTI=";
+  vendorHash = "sha256-gortoYTYGtvhM1XWVhI2bB+cKtbTADpKl5W9h1QSEPc=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/development/tools/database/atlas/default.nix b/pkgs/development/tools/database/atlas/default.nix
index 4832a1d28008..7d275071ee4a 100644
--- a/pkgs/development/tools/database/atlas/default.nix
+++ b/pkgs/development/tools/database/atlas/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "atlas";
-  version = "0.18.0";
+  version = "0.19.0";
 
   src = fetchFromGitHub {
     owner = "ariga";
     repo = "atlas";
     rev = "v${version}";
-    hash = "sha256-xbQ5ZhyCQY/IosBPMD8MKQ1KnIymPD8IhUKaIdXHAok=";
+    hash = "sha256-aTmEQFE+W8qRn7NlMYNr1yXYHLfmvg9Wrd8fzEeaYAo=";
   };
 
   modRoot = "cmd/atlas";
diff --git a/pkgs/development/tools/database/clickhouse-backup/default.nix b/pkgs/development/tools/database/clickhouse-backup/default.nix
index 97ebb25b1ba8..30de99ba968b 100644
--- a/pkgs/development/tools/database/clickhouse-backup/default.nix
+++ b/pkgs/development/tools/database/clickhouse-backup/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "clickhouse-backup";
-  version = "2.4.15";
+  version = "2.4.25";
 
   src = fetchFromGitHub {
     owner = "AlexAkulov";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-J56gew81ZdYZHfpBZcyCURFrVX0GGl/iMploXA1UllU=";
+    sha256 = "sha256-w5RImVi1Jyudu7G9uKRHKSgoEruvhkznm0MjYsgBBxo=";
   };
 
-  vendorHash = "sha256-P+EE5+GRBqBv5WgRgMYJc4bfHuHDh9q8kOIhlEswc3g=";
+  vendorHash = "sha256-DTykJR/dMIDKL5fTzDivsRf2DIfzJcm+AN3rQHflpJo=";
 
   ldflags = [
     "-X main.version=${version}"
diff --git a/pkgs/development/tools/database/dbmate/default.nix b/pkgs/development/tools/database/dbmate/default.nix
index 0c132a3c779b..84bd8d8235f2 100644
--- a/pkgs/development/tools/database/dbmate/default.nix
+++ b/pkgs/development/tools/database/dbmate/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "dbmate";
-  version = "2.10.0";
+  version = "2.11.0";
 
   src = fetchFromGitHub {
     owner = "amacneil";
     repo = "dbmate";
     rev = "refs/tags/v${version}";
-    hash = "sha256-gJ1kYedws20C669Gonmsui59a/TvPXawqkx5k4pPn8M=";
+    hash = "sha256-kY91ToCEl1bNdeIKDAAR3q7053oyFhx+THre7Syw96g=";
   };
 
-  vendorHash = "sha256-JjFBUjSbHnJE7FPa11lQBx7Dvv7uBkuvLYqeuaDkHJM=";
+  vendorHash = "sha256-z33Ayxc/ftNHh5zunDu0AlamuoSglX4aqOKQLuYT3+s=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/database/ephemeralpg/default.nix b/pkgs/development/tools/database/ephemeralpg/default.nix
index 0fb3ae81030b..b50d22d76e78 100644
--- a/pkgs/development/tools/database/ephemeralpg/default.nix
+++ b/pkgs/development/tools/database/ephemeralpg/default.nix
@@ -1,10 +1,10 @@
 { lib, stdenv, fetchurl, postgresql, getopt, makeWrapper }:
 stdenv.mkDerivation rec {
   pname = "ephemeralpg";
-  version = "3.1";
+  version = "3.3";
   src = fetchurl {
-    url = "http://ephemeralpg.org/code/${pname}-${version}.tar.gz";
-    sha256 = "1ap22ki8yz6agd0qybcjgs4b9izw1rwwcgpxn3jah2ccfyax34s6";
+    url = "https://eradman.com/ephemeralpg/code/${pname}-${version}.tar.gz";
+    hash = "sha256-pVQrfSpwJnxCRXAUpZQZsb0Z/wlLbjdaYmhVevgHrgo=";
   };
   nativeBuildInputs = [ makeWrapper ];
   installPhase = ''
@@ -15,8 +15,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Run tests on an isolated, temporary PostgreSQL database";
     license = licenses.isc;
-    homepage = "http://ephemeralpg.org/";
+    homepage = "https://eradman.com/ephemeralpg/";
     platforms = platforms.all;
-    maintainers = with maintainers; [ hrdinka ];
+    maintainers = with maintainers; [ hrdinka medv ];
   };
 }
diff --git a/pkgs/development/tools/database/liquibase/default.nix b/pkgs/development/tools/database/liquibase/default.nix
index 4880659c0438..b9928c41ba60 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.24.0";
+  version = "4.25.1";
 
   src = fetchurl {
     url = "https://github.com/liquibase/liquibase/releases/download/v${version}/${pname}-${version}.tar.gz";
-    hash = "sha256-bs9jinW1AbeYGJ2oJOFn8p25NHcYYQnyVJUIxiZtCyo=";
+    hash = "sha256-iyt6qOx1XU7lL6AhDNKiRP0W7WlfxKciRVYpUHdtKlY=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/database/litefs/default.nix b/pkgs/development/tools/database/litefs/default.nix
index d4077a2388ff..e1d66de4063a 100644
--- a/pkgs/development/tools/database/litefs/default.nix
+++ b/pkgs/development/tools/database/litefs/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "litefs";
-  version = "0.5.10";
+  version = "0.5.11";
 
   src = fetchFromGitHub {
     owner = "superfly";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-e7RBiUHMndOz1n8gWlx+4ifnueWgPu482KIAXaSEhl0=";
+    sha256 = "sha256-I12bKImZkvAMyfwb6r/NxE+BcUk+SalN+cIDXP0q4xA=";
   };
 
   vendorHash = "sha256-FcYPe4arb+jbxj4Tl6bRRAnkEvw0rkECIo8/zC79lOA=";
diff --git a/pkgs/development/tools/database/pg_activity/default.nix b/pkgs/development/tools/database/pg_activity/default.nix
index c3ec5f9d5802..b6b543125195 100644
--- a/pkgs/development/tools/database/pg_activity/default.nix
+++ b/pkgs/development/tools/database/pg_activity/default.nix
@@ -2,14 +2,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "pg_activity";
-  version = "3.0.3";
+  version = "3.4.2";
   disabled = python3Packages.pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "dalibo";
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-djpBdhCgtlm6+DiZVKSKh0nu30YVm/qZHlBHPtdObfU=";
+    sha256 = "sha256-7ML/xI1rQUqD9gm+1+yOdIesivAnl7fA8fgk67ru3Kc=";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/development/tools/database/pgweb/default.nix b/pkgs/development/tools/database/pgweb/default.nix
index affda7ff49e2..ef0f64a73a17 100644
--- a/pkgs/development/tools/database/pgweb/default.nix
+++ b/pkgs/development/tools/database/pgweb/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "pgweb";
-  version = "0.14.2";
+  version = "0.14.3";
 
   src = fetchFromGitHub {
     owner = "sosedoff";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-gM7hqFriXkcwNO+I3d138kfp1F4YsO/Qbq0NzMszkwM=";
+    hash = "sha256-We7MyKOdauf93tBihvjouEiZ4FnkvsUtfJpswK6ef7Q=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/tools/database/sqlcl/default.nix b/pkgs/development/tools/database/sqlcl/default.nix
index 324270ee7c23..60421c59ed49 100644
--- a/pkgs/development/tools/database/sqlcl/default.nix
+++ b/pkgs/development/tools/database/sqlcl/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "sqlcl";
-  version = "23.3.0.270.1251";
+  version = "23.4.0.023.2321";
 
   src = fetchurl {
     url = "https://download.oracle.com/otn_software/java/sqldeveloper/sqlcl-${finalAttrs.version}.zip";
-    hash = "sha256-TkQkMtCTKUdfVx9sfAJVJP4nAaQmG4SDcduwaFfAEGs=";
+    hash = "sha256-8K2yuLYMJI9fFeDcHpWHYmIxZGC06/heYBEW1z2tGc4=";
   };
 
   nativeBuildInputs = [ makeWrapper unzip ];
diff --git a/pkgs/development/tools/database/sqlite-web/default.nix b/pkgs/development/tools/database/sqlite-web/default.nix
index ee333ac02744..351c5475ea0e 100644
--- a/pkgs/development/tools/database/sqlite-web/default.nix
+++ b/pkgs/development/tools/database/sqlite-web/default.nix
@@ -5,11 +5,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "sqlite-web";
-  version = "0.3.6";
+  version = "0.6.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "17pymadm063358nji70xzma64zkfv26c3pai5i1whsfp9ahqzasg";
+    sha256 = "sha256-VIbmYN6KjCRpE+kvJyBV75deYmh+zRjcQXZ2/7mseYU=";
   };
 
   propagatedBuildInputs = with python3Packages; [ flask peewee pygments ];
diff --git a/pkgs/development/tools/detekt/default.nix b/pkgs/development/tools/detekt/default.nix
index 091fef564756..ff643693daec 100644
--- a/pkgs/development/tools/detekt/default.nix
+++ b/pkgs/development/tools/detekt/default.nix
@@ -1,13 +1,13 @@
 { detekt, lib, stdenv, fetchurl, makeWrapper, jre_headless, testers }:
 stdenv.mkDerivation rec {
   pname = "detekt";
-  version = "1.23.4";
+  version = "1.23.5";
 
   jarfilename = "${pname}-${version}-executable.jar";
 
   src = fetchurl {
     url = "https://github.com/detekt/detekt/releases/download/v${version}/detekt-cli-${version}-all.jar";
-    sha256 = "sha256-Kx6I0pe7Qz4JMZeBRVdka6wfoL9uQgZjCUGInZJeAOA=";
+    sha256 = "sha256-Pz+MaZimJMCjtGPy7coi6SSE7IdAQhtp2u8YV4s7KLY=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/development/tools/devbox/default.nix b/pkgs/development/tools/devbox/default.nix
index 8bfef1ff6303..e75c73ec9fa8 100644
--- a/pkgs/development/tools/devbox/default.nix
+++ b/pkgs/development/tools/devbox/default.nix
@@ -5,13 +5,13 @@
 }:
 buildGoModule rec {
   pname = "devbox";
-  version = "0.8.5";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "jetpack-io";
     repo = pname;
     rev = version;
-    hash = "sha256-Vgke4CTVU5KW7iDyzk6P1ab5nOyICblvJtUQTISc2jg=";
+    hash = "sha256-cM4PiNbfE2sEQHzklBgsJdN/iVK0nT9iZ1F/Cb5tLtM=";
   };
 
   ldflags = [
@@ -23,7 +23,7 @@ buildGoModule rec {
   # integration tests want file system access
   doCheck = false;
 
-  vendorHash = "sha256-rP3vktCfmUeZhc0DaU2osVryNabsnaWWyfFYFy7W1pc=";
+  vendorHash = "sha256-8G1JX4vdpDAicx6A9Butl8XTjszlHMbh34pJVQyzEs4=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/development/tools/devpi-client/default.nix b/pkgs/development/tools/devpi-client/default.nix
index 9a7c8dcccd97..a481bf8804fe 100644
--- a/pkgs/development/tools/devpi-client/default.nix
+++ b/pkgs/development/tools/devpi-client/default.nix
@@ -8,12 +8,12 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "devpi-client";
-  version = "7.0.0";
+  version = "7.0.2";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-AI/GNubb7+nwz/vM6v/JoUtWup6rBJieKXtFQzrdPkE=";
+    hash = "sha256-oOX5Z8WXgNJYsgXqHE2CsXdDnA3XmDF6axD1D318bPQ=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/tools/devpi-server/default.nix b/pkgs/development/tools/devpi-server/default.nix
index 00511c83801d..0b64f8c615af 100644
--- a/pkgs/development/tools/devpi-server/default.nix
+++ b/pkgs/development/tools/devpi-server/default.nix
@@ -20,6 +20,8 @@
 , strictyaml
 , waitress
 , webtest
+, testers
+, devpi-server
 }:
 
 
@@ -64,6 +66,7 @@ buildPythonApplication rec {
     setuptools
     strictyaml
     waitress
+    py
   ] ++ passlib.optional-dependencies.argon2;
 
   nativeCheckInputs = [
@@ -103,6 +106,10 @@ buildPythonApplication rec {
     "devpi_server"
   ];
 
+  passthru.tests.version = testers.testVersion {
+    package = devpi-server;
+  };
+
   meta = with lib;{
     homepage = "http://doc.devpi.net";
     description = "Github-style pypi index server and packaging meta tool";
diff --git a/pkgs/development/tools/distgen/default.nix b/pkgs/development/tools/distgen/default.nix
index 0a52eecc2579..083bc3ed854c 100644
--- a/pkgs/development/tools/distgen/default.nix
+++ b/pkgs/development/tools/distgen/default.nix
@@ -2,11 +2,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "distgen";
-  version = "1.5";
+  version = "1.17";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "08f9rw5irgv0gw7jizk5f9csn0yhrdnb84k40px1zbypsylvr5c5";
+    sha256 = "sha256-Md6R1thUtPQ7BFZsWmTDuNdD7UHMMFlEVksIJZAyjk4=";
   };
 
   nativeCheckInputs = with python3.pkgs; [
diff --git a/pkgs/development/tools/dive/default.nix b/pkgs/development/tools/dive/default.nix
index d7ce887c2819..6981e83f7086 100644
--- a/pkgs/development/tools/dive/default.nix
+++ b/pkgs/development/tools/dive/default.nix
@@ -11,25 +11,16 @@
 
 buildGoModule rec {
   pname = "dive";
-  version = "0.11.0";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "wagoodman";
     repo = "dive";
     rev = "v${version}";
-    hash = "sha256-9REthyb+bzsb7NBXkU9XyUZJFQHHrV1cG4//lTLgTgw=";
+    hash = "sha256-CuVRFybsn7PVPgz3fz5ghpjOEOsTYTv6uUAgRgFewFw=";
   };
 
-  patches = [
-    # fixes: unsafe.Slice requires go1.17 or later (-lang was set to go1.16; check go.mod)
-    # https://github.com/wagoodman/dive/pull/461
-    (fetchpatch {
-      url = "https://github.com/wagoodman/dive/commit/555555d777f961ad0a2d1bb843e87f434d731dba.patch";
-      hash = "sha256-tPSgvENiVgrlQSkT7LbQPRYhkkaYQeWRJ0P4bA3XOiI=";
-    })
-  ];
-
-  vendorHash = "sha256-6KIbTrkvdugsUKdFBqtPUFzs/6h2xslLFpr6S2nSBiY=";
+  vendorHash = "sha256-uzzawa/Doo6j/Fh9dJMzGKbpp24UTLAo9VGmuQ80IZE=";
 
   nativeBuildInputs = [ pkg-config ];
 
@@ -40,6 +31,7 @@ buildGoModule rec {
   meta = with lib; {
     description = "A tool for exploring each layer in a docker image";
     homepage = "https://github.com/wagoodman/dive";
+    changelog = "https://github.com/wagoodman/dive/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ marsam SuperSandro2000 ];
   };
diff --git a/pkgs/development/tools/djhtml/default.nix b/pkgs/development/tools/djhtml/default.nix
index a014c9722f2e..4e4342f36fb6 100644
--- a/pkgs/development/tools/djhtml/default.nix
+++ b/pkgs/development/tools/djhtml/default.nix
@@ -5,7 +5,7 @@
 }:
 buildPythonApplication rec {
   pname = "djhtml";
-  version = "3.0.5";
+  version = "3.0.6";
 
   format = "setuptools";
   disabled = pythonOlder "3.7";
@@ -13,8 +13,8 @@ buildPythonApplication rec {
   src = fetchFromGitHub {
     owner = "rtts";
     repo = pname;
-    rev = version;
-    hash = "sha256-m13lw1x+URAYuDc0gXRIxfRnd6kQxeAuLDqYXeOgQE0=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-3bviLyTLpHcAUWAaAmNZukWBDwFs8yFOAxl2bSk9GNY=";
   };
 
   pythonImportsCheck = [ "djhtml" ];
diff --git a/pkgs/development/tools/dockle/default.nix b/pkgs/development/tools/dockle/default.nix
index b3dad03301ee..a1f5d433646c 100644
--- a/pkgs/development/tools/dockle/default.nix
+++ b/pkgs/development/tools/dockle/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "dockle";
-  version = "0.4.13";
+  version = "0.4.14";
 
   src = fetchFromGitHub {
     owner = "goodwithtech";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-45VRA3IBGlbMoRbAh6F+KuAM5CIlU00ZzG7N62aikGE=";
+    hash = "sha256-ZAk51juPFSaDQYfzsf7HXigL4aIk8V+tGA9lZqHBOsY=";
   };
 
-  vendorHash = "sha256-t66SRFDJT32dwRFqborir+mSQJlpekbicDNhmkeqork=";
+  vendorHash = "sha256-+AtvnplvPWkUwmxfB7rjYcLTQibQsObFT1QRR0FXAe0=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ btrfs-progs lvm2 ];
diff --git a/pkgs/development/tools/documentation/antora/default.nix b/pkgs/development/tools/documentation/antora/default.nix
index 9a68837714af..6ac43313e962 100644
--- a/pkgs/development/tools/documentation/antora/default.nix
+++ b/pkgs/development/tools/documentation/antora/default.nix
@@ -2,16 +2,16 @@
 
 buildNpmPackage rec {
   pname = "antora";
-  version = "3.1.5";
+  version = "3.1.7";
 
   src = fetchFromGitLab {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-PCtYV5jPGFja26Dv4kXiaw8ITWR4xzVP/9hc45UWHeg=";
+    hash = "sha256-uGXXp6boS5yYsInSmkI9S0Tn85QGVp/5Fsh1u3G4oPk=";
   };
 
-  npmDepsHash = "sha256-//426AFUoJy7phqbbLdwkJvhOzcYsIumSaeAKefFsf4=";
+  npmDepsHash = "sha256-oWLRAuvWDk7w18qlDH14EE4elX5nhLKHSQANa/kXKvw=";
 
   # This is to stop tests from being ran, as some of them fail due to trying to query remote repositories
   postPatch = ''
diff --git a/pkgs/development/tools/documentation/doxygen/default.nix b/pkgs/development/tools/documentation/doxygen/default.nix
index 3b1a1fa0aa1f..ddf27b35dbd0 100644
--- a/pkgs/development/tools/documentation/doxygen/default.nix
+++ b/pkgs/development/tools/documentation/doxygen/default.nix
@@ -8,18 +8,18 @@
 , qt5
 , CoreServices
 , libiconv
-, withSqlite ? true, sqlite
+, sqlite
 }:
 
 stdenv.mkDerivation rec {
   pname = "doxygen";
-  version = "1.9.8";
+  version = "1.10.0";
 
   src = fetchFromGitHub {
     owner = "doxygen";
     repo = "doxygen";
     rev = "Release_${lib.replaceStrings [ "." ] [ "_" ] version}";
-    sha256 = "sha256-uQ1Fl2kmY7qmzy34NOmZCgPxVGwmqRqDvV6yEab5P4w=";
+    sha256 = "sha256-FPI5ICdn9Tne/g9SP6jAQS813AAyoDNooDR/Hyvq6R4=";
   };
 
   nativeBuildInputs = [
@@ -29,14 +29,14 @@ stdenv.mkDerivation rec {
     bison
   ];
 
-  buildInputs = [ libiconv ]
-    ++ lib.optionals withSqlite [ sqlite ]
+  buildInputs = [ libiconv sqlite ]
     ++ lib.optionals (qt5 != null) (with qt5; [ qtbase wrapQtAppsHook ])
     ++ lib.optionals stdenv.isDarwin [ CoreServices ];
 
-  cmakeFlags = [ "-DICONV_INCLUDE_DIR=${libiconv}/include" ]
-    ++ lib.optional withSqlite "-Duse_sqlite3=ON"
-    ++ lib.optional (qt5 != null) "-Dbuild_wizard=YES";
+  cmakeFlags = [
+    "-DICONV_INCLUDE_DIR=${libiconv}/include"
+    "-Duse_sys_sqlite3=ON"
+  ] ++ lib.optional (qt5 != null) "-Dbuild_wizard=YES";
 
   env.NIX_CFLAGS_COMPILE =
     lib.optionalString stdenv.isDarwin "-mmacosx-version-min=10.9";
diff --git a/pkgs/development/tools/earthly/default.nix b/pkgs/development/tools/earthly/default.nix
index fee62a7fd981..6bc18da18258 100644
--- a/pkgs/development/tools/earthly/default.nix
+++ b/pkgs/development/tools/earthly/default.nix
@@ -1,17 +1,17 @@
-{ lib, buildGoModule, fetchFromGitHub, stdenv }:
+{ lib, buildGoModule, fetchFromGitHub, stdenv, testers, earthly }:
 
 buildGoModule rec {
   pname = "earthly";
-  version = "0.7.23";
+  version = "0.8.3";
 
   src = fetchFromGitHub {
     owner = "earthly";
     repo = "earthly";
     rev = "v${version}";
-    hash = "sha256-YXfW+O7u97x8YoWLNFSU/OIB9DGsqWEIwUpfvnXySMg=";
+    hash = "sha256-xjehcMm7lW0t65j0hQxbqmMWt1uuK8I4/MB7mjr+axw=";
   };
 
-  vendorHash = "sha256-Tr9clCUS7T0295Oxe6wvQN0oXCg1G48rzGXBL3R9TYU=";
+  vendorHash = "sha256-NNOUo2X2rwvKRP/zgmTexyXFDNT/LO/kE4HiKwFWQUw=";
   subPackages = [ "cmd/earthly" "cmd/debugger" ];
 
   CGO_ENABLED = 0;
@@ -39,6 +39,13 @@ buildGoModule rec {
     mv $out/bin/debugger $out/bin/earthly-debugger
   '';
 
+  passthru = {
+    tests.version = testers.testVersion {
+      package = earthly;
+      version = "v${version}";
+    };
+  };
+
   meta = with lib; {
     description = "Build automation for the container era";
     homepage = "https://earthly.dev/";
diff --git a/pkgs/development/tools/eask/default.nix b/pkgs/development/tools/eask/default.nix
index 0c55933f5b21..a130ad9e82c1 100644
--- a/pkgs/development/tools/eask/default.nix
+++ b/pkgs/development/tools/eask/default.nix
@@ -5,16 +5,16 @@
 
 buildNpmPackage rec {
   pname = "eask";
-  version = "0.9.2";
+  version = "0.9.3";
 
   src = fetchFromGitHub {
     owner = "emacs-eask";
     repo = "cli";
     rev = version;
-    hash = "sha256-LUN2gnvdToVi6NOF5gKXVPG0Al1Y/gI66o8dI8bTIgM=";
+    hash = "sha256-MuNQyd4vpJ8Eu57TGPpXiHjwJfdo3FhMjPZYc0MmHRg=";
   };
 
-  npmDepsHash = "sha256-YNgLEe7voCFspOBefXYJ7NtAtbTc0mRmFUN0856j6KM=";
+  npmDepsHash = "sha256-t/DgLItOeD/tUofRlf9mpZg79pC/ml2ReIyp62izn6Y=";
 
   dontBuild = true;
 
diff --git a/pkgs/development/tools/efm-langserver/default.nix b/pkgs/development/tools/efm-langserver/default.nix
index 0c7ff5382f42..5bed978959cd 100644
--- a/pkgs/development/tools/efm-langserver/default.nix
+++ b/pkgs/development/tools/efm-langserver/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "efm-langserver";
-  version = "0.0.49";
+  version = "0.0.50";
 
   src = fetchFromGitHub {
     owner = "mattn";
     repo = "efm-langserver";
     rev = "v${version}";
-    sha256 = "sha256-sHdULnaLHe4FqP631c4ITNDn62nGJgAIIvO3C4kY3jI=";
+    sha256 = "sha256-3WnMEkDa1boExyOg30wiFqs1Nw/zMtBqoUmtjluTQ0Y=";
   };
 
   vendorHash = "sha256-ZChHQ0Bcu9sVHvhdrmTfLryRwsFQNQSFDOKRu0keUIo=";
diff --git a/pkgs/development/tools/electron/info.json b/pkgs/development/tools/electron/info.json
index f0ec96250977..909e83468d65 100644
--- a/pkgs/development/tools/electron/info.json
+++ b/pkgs/development/tools/electron/info.json
@@ -3,16 +3,16 @@
         "deps": {
             "src/electron": {
                 "fetcher": "fetchFromGitHub",
-                "hash": "sha256-QY0JaQVI60WAzWNWDXZRejFODA+p0LMjYvk2CMF8czs=",
+                "hash": "sha256-NncDuvceqh2QU7EeHaeyIBEp1kXpPLKkhXlqfqaRmGM=",
                 "owner": "electron",
                 "repo": "electron",
-                "rev": "v28.1.3"
+                "rev": "v28.1.4"
             },
             "src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-7tGDiHumIfb5ST8tCNUCN7pjlcU+R13j68vYKTu0wiQ=",
+                "hash": "sha256-4ET4+Yd0VwKS/Ze/KO3yhehAdmjCSswaoWmMTo+8KK8=",
                 "url": "https://chromium.googlesource.com/chromium/src.git",
-                "rev": "120.0.6099.199",
+                "rev": "120.0.6099.216",
                 "postFetch": "rm -r $out/third_party/blink/web_tests; rm -r $out/third_party/hunspell/tests; rm -r $out/content/test/data; rm -r $out/courgette/testdata; rm -r $out/extensions/test/data; rm -r $out/media/test/data; "
             },
             "src/third_party/clang-format/script": {
@@ -873,12 +873,12 @@
                 "rev": "78d3966b3c331292ea29ec38661b25df0a245948"
             }
         },
-        "version": "28.1.3",
+        "version": "28.1.4",
         "modules": "119",
-        "chrome": "120.0.6099.199",
+        "chrome": "120.0.6099.216",
         "node": "18.18.2",
         "chromium": {
-            "version": "120.0.6099.199",
+            "version": "120.0.6099.216",
             "deps": {
                 "gn": {
                     "version": "2023-10-23",
@@ -895,10 +895,10 @@
         "deps": {
             "src/electron": {
                 "fetcher": "fetchFromGitHub",
-                "hash": "sha256-C9Oj6xuPFnj5Wh+VeeXc9AJ3Pgxq+SGn624OFWseO4M=",
+                "hash": "sha256-UHrY5DOwkkVS7j5WgY4vTWIH747jX/gMM3AfnxHc+do=",
                 "owner": "electron",
                 "repo": "electron",
-                "rev": "v27.2.2"
+                "rev": "v27.2.3"
             },
             "src": {
                 "fetcher": "fetchFromGitiles",
@@ -1765,7 +1765,7 @@
                 "rev": "78d3966b3c331292ea29ec38661b25df0a245948"
             }
         },
-        "version": "27.2.2",
+        "version": "27.2.3",
         "modules": "118",
         "chrome": "118.0.5993.159",
         "node": "18.17.1",
@@ -1780,17 +1780,17 @@
                 }
             }
         },
-        "chromium_npm_hash": "sha256-5cjqpYB45nw2gop54VP+tL7/0w63nQGfQ4x6a6KS7XQ=",
-        "electron_yarn_hash": "1rxijv3fspjfan7mmw4cmxcb231ny7gn72yzsdnqs0225alrjac0"
+        "electron_yarn_hash": "1rxijv3fspjfan7mmw4cmxcb231ny7gn72yzsdnqs0225alrjac0",
+        "chromium_npm_hash": "sha256-5cjqpYB45nw2gop54VP+tL7/0w63nQGfQ4x6a6KS7XQ="
     },
     "26": {
         "deps": {
             "src/electron": {
                 "fetcher": "fetchFromGitHub",
-                "hash": "sha256-KTvbe8reOTqzqXoPHBQY24mxvUSokGh8JlxCJTdNxbc=",
+                "hash": "sha256-Y9SiwDHCkHi+s5zYWPtFPhxjpCQMrpZP+IBi/xYZFVo=",
                 "owner": "electron",
                 "repo": "electron",
-                "rev": "v26.6.5"
+                "rev": "v26.6.6"
             },
             "src": {
                 "fetcher": "fetchFromGitiles",
@@ -2609,7 +2609,7 @@
                 "rev": "78d3966b3c331292ea29ec38661b25df0a245948"
             }
         },
-        "version": "26.6.5",
+        "version": "26.6.6",
         "modules": "116",
         "chrome": "116.0.5845.228",
         "node": "18.16.1",
diff --git a/pkgs/development/tools/eliot-tree/default.nix b/pkgs/development/tools/eliot-tree/default.nix
index 9ef8dcad374d..21dfccd33e42 100644
--- a/pkgs/development/tools/eliot-tree/default.nix
+++ b/pkgs/development/tools/eliot-tree/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "eliot-tree";
-  version = "19.0.1";
+  version = "21.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "18gvijsm0vh3x83mv8dd80c3mpm80r7i111qsg4y7rj4i590phma";
+    sha256 = "sha256-hTl+r+QJPPQ7ss73lty3Wm7DLy2SKGmmgIuJx38ilO8=";
   };
 
   nativeCheckInputs = with python3Packages; [
diff --git a/pkgs/development/tools/esbuild/default.nix b/pkgs/development/tools/esbuild/default.nix
index 7d19b59638e5..75f103dec6cb 100644
--- a/pkgs/development/tools/esbuild/default.nix
+++ b/pkgs/development/tools/esbuild/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "esbuild";
-  version = "0.19.11";
+  version = "0.20.0";
 
   src = fetchFromGitHub {
     owner = "evanw";
     repo = "esbuild";
     rev = "v${version}";
-    hash = "sha256-NUwjzOpHA0Ijuh0E69KXx8YVS5GTnKmob9HepqugbIU=";
+    hash = "sha256-CJUBjDQAXSUFe37zYGbX6geeEk9goZ/aOalWDHPIZis=";
   };
 
   vendorHash = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ=";
diff --git a/pkgs/development/tools/espup/default.nix b/pkgs/development/tools/espup/default.nix
index 0e47b8e55658..145f681f1cbc 100644
--- a/pkgs/development/tools/espup/default.nix
+++ b/pkgs/development/tools/espup/default.nix
@@ -15,16 +15,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "espup";
-  version = "0.10.0";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "esp-rs";
     repo = "espup";
     rev = "v${version}";
-    hash = "sha256-MLr6Fh1KAvGry/fToJuLYOf36MKW2i5W4XiMIEeb52M=";
+    hash = "sha256-BW71yFX4jfx90KHdynkGSqWD4diyjEBQfdBNquVdDDI=";
   };
 
-  cargoHash = "sha256-AIM08tvt1w+TJgjxCxU+zN9eDBvgCv15WM+vQGbTF18=";
+  cargoHash = "sha256-iUVOU1P996hLC1rR/wWtsDBkKSB0rD7PPh6ZsQkHq3I=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/development/tools/extism-cli/default.nix b/pkgs/development/tools/extism-cli/default.nix
index 3ac24cb22936..67046d96e944 100644
--- a/pkgs/development/tools/extism-cli/default.nix
+++ b/pkgs/development/tools/extism-cli/default.nix
@@ -7,18 +7,18 @@
 
 buildGoModule rec {
   pname = "extism-cli";
-  version = "0.3.9";
+  version = "1.0.3";
 
   src = fetchFromGitHub {
     owner = "extism";
     repo = "cli";
     rev = "refs/tags/v${version}";
-    hash = "sha256-t53VJOc1umIwPyS6hkAm+u9KsKiYas4iRrlraofJSEY=";
+    hash = "sha256-szs5tLjGCavHerQQi0Abla0kaHYQ/xN0O36Wrc1MG4Y=";
   };
 
   modRoot = "./extism";
 
-  vendorHash = "sha256-Ukbg2CG2qeLmM9HijKXZY/fEY2QfJXTyaTIsEDT5W6E=";
+  vendorHash = "sha256-IRqn4XmFA6vyjtgTaxYh7ndHkQYuKC1eHKNoGC7Hh+U=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/development/tools/faas-cli/default.nix b/pkgs/development/tools/faas-cli/default.nix
index 8f42ed7250dc..9eaadd43cedb 100644
--- a/pkgs/development/tools/faas-cli/default.nix
+++ b/pkgs/development/tools/faas-cli/default.nix
@@ -18,13 +18,13 @@ let
 in
 buildGoModule rec {
   pname = "faas-cli";
-  version = "0.16.21";
+  version = "0.16.23";
 
   src = fetchFromGitHub {
     owner = "openfaas";
     repo = "faas-cli";
     rev = version;
-    sha256 = "sha256-1zdxxd27XXSDcOhQi/um7jQlLZ3x+T09N1p1JJ8qzkk=";
+    sha256 = "sha256-QbMwokFHaISvsNuHy/Do90bvXtwaJmie/hDLybuy2qk=";
   };
 
   vendorHash = null;
diff --git a/pkgs/development/tools/fable/default.nix b/pkgs/development/tools/fable/default.nix
index 93757b3cd8e2..10447afe20f3 100644
--- a/pkgs/development/tools/fable/default.nix
+++ b/pkgs/development/tools/fable/default.nix
@@ -2,9 +2,9 @@
 
 buildDotnetGlobalTool {
   pname = "fable";
-  version = "4.9.0";
+  version = "4.11.0";
 
-  nugetSha256 = "sha256-BB3jCsIz6Y9LjBhoEBzYLXttwLOBb4n1EpqJwImjo9A=";
+  nugetSha256 = "sha256-AOsCthGk4YiTcKjIdCE1nnADWLqfd80vPFMmo9YLGUA=";
   passthru.updateScript = ./update.sh;
 
   meta = with lib; {
diff --git a/pkgs/development/tools/fac/default.nix b/pkgs/development/tools/fac/default.nix
deleted file mode 100644
index c50fd834e031..000000000000
--- a/pkgs/development/tools/fac/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ lib, buildGoPackage, fetchFromGitHub, makeWrapper, git }:
-
-buildGoPackage rec {
-  pname = "fac";
-  version = "2.0.0";
-
-  goPackagePath = "github.com/mkchoi212/fac";
-
-  src = fetchFromGitHub {
-    owner = "mkchoi212";
-    repo = "fac";
-    rev = "v${version}";
-    sha256 = "054bbiw0slz9szy3ap2sh5dy97w3g7ms27rd3ww3i1zdhvnggwpc";
-  };
-
-  goDeps = ./deps.nix;
-
-  nativeBuildInputs = [ makeWrapper ];
-
-  postInstall = ''
-    wrapProgram $out/bin/fac \
-      --prefix PATH : ${git}/bin
-
-    # Install man page, not installed by default
-    install -D go/src/${goPackagePath}/assets/doc/fac.1 $out/share/man/man1/fac.1
-  '';
-
-  meta = with lib; {
-    description = "CUI for fixing git conflicts";
-    inherit (src.meta) homepage;
-    license = licenses.mit;
-    maintainers = with maintainers; [ dtzWill ];
-  };
-}
-
diff --git a/pkgs/development/tools/fac/deps.nix b/pkgs/development/tools/fac/deps.nix
deleted file mode 100644
index 8545bae7e22d..000000000000
--- a/pkgs/development/tools/fac/deps.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
-[
-  {
-    goPackagePath  = "github.com/alecthomas/chroma";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/chroma";
-      rev =  "0c0b382eca61a71c1eb4cb4dea2bc78aa4939d96";
-      sha256 = "0chpzs542s366vv01bfhrajdrbhmrvc3gi8jhpw3xgz6wfkivcp4";
-    };
-  }
-  {
-    goPackagePath  = "github.com/danwakefield/fnmatch";
-    fetch = {
-      type = "git";
-      url = "https://github.com/danwakefield/fnmatch";
-      rev =  "cbb64ac3d964b81592e64f957ad53df015803288";
-      sha256 = "0cbf511ppsa6hf59mdl7nbyn2b2n71y0bpkzbmfkdqjhanqh1lqz";
-    };
-  }
-  {
-    goPackagePath  = "github.com/dlclark/regexp2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dlclark/regexp2";
-      rev =  "7632a260cbaf5e7594fc1544a503456ecd0827f1";
-      sha256 = "0vhp5r0ywv9p1c74fm8xzclnwx2mg9f0764b3id7a9nwh0plisx2";
-    };
-  }
-  {
-    goPackagePath  = "github.com/jroimartin/gocui";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jroimartin/gocui";
-      rev =  "c055c87ae801372cd74a0839b972db4f7697ae5f";
-      sha256 = "1b1cbjg925l1c5v3ls8amni9716190yzf847cqs9wjnj82z8qa47";
-    };
-  }
-  {
-    goPackagePath  = "github.com/mattn/go-runewidth";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-runewidth";
-      rev =  "ce7b0b5c7b45a81508558cd1dba6bb1e4ddb51bb";
-      sha256 = "0lc39b6xrxv7h3v3y1kgz49cgi5qxwlygs715aam6ba35m48yi7g";
-    };
-  }
-  {
-    goPackagePath  = "github.com/nsf/termbox-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/nsf/termbox-go";
-      rev =  "5c94acc5e6eb520f1bcd183974e01171cc4c23b3";
-      sha256 = "1fi8imdgwvlsgifw2qfl3ww0lsrgkfsimkzz7bnrq41nar78s0fw";
-    };
-  }
-  {
-    goPackagePath  = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-yaml/yaml";
-      rev =  "5420a8b6744d3b0345ab293f6fcba19c978f1183";
-      sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1";
-    };
-  }
-]
diff --git a/pkgs/development/tools/fermyon-spin/default.nix b/pkgs/development/tools/fermyon-spin/default.nix
index a0ba21d60674..e7e1783e621f 100644
--- a/pkgs/development/tools/fermyon-spin/default.nix
+++ b/pkgs/development/tools/fermyon-spin/default.nix
@@ -17,20 +17,20 @@ let
   }.${system} or (throw "Unsupported system: ${system}");
 
   packageHash = {
-    x86_64-linux = "sha256-Fp1h1X5UFOHLqgaAcXXl3oSioCMVLJLaOURHd3uu8sA=";
-    aarch64-linux = "sha256-F6/h98qZvzImuxPOMYr1cGWBjr1qWGvoYztvZzw2GRg=";
-    x86_64-darwin = "sha256-WegiHPHi9Qw4PPTEB2a9AdIgMlyOzzSpTRdJH43IEjM=";
-    aarch64-darwin = "sha256-BJER3Fp4AItqtLNYh6pH/tNB98H3iTARr3fKyTXGcP8=";
+    x86_64-linux = "sha256-i06Zp176zl7y8P32Hss64QkMc/+vXtkQy/tkOPSX3dc=";
+    aarch64-linux = "sha256-HEm3TaLeaws8G73CU9BmxeplQdeF9nQbBSnbctaVhqI=";
+    x86_64-darwin = "sha256-mlshpN/4Od4qrXiqIEYo7G84Dtb+tp2nK2VnrRG2rto=";
+    aarch64-darwin = "sha256-aJH/vOidj0vbkttGDgelaAC/dMYguQPLjxl+V3pOVzI=";
   }.${system} or (throw "Unsupported system: ${system}");
 
 in stdenv.mkDerivation rec {
   pname = "fermyon-spin";
-  version = "1.2.1";
+  version = "2.1.0";
 
   src = fetchzip {
     url = "https://github.com/fermyon/spin/releases/download/v${version}/spin-v${version}-${platform}.tar.gz";
     stripRoot = false;
-    sha256 = packageHash;
+    hash = packageHash;
   };
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [
diff --git a/pkgs/development/tools/firebase-tools/default.nix b/pkgs/development/tools/firebase-tools/default.nix
index 35789463f5bb..895b018f50f7 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.0.3";
+  version = "13.1.0";
 
   src = fetchFromGitHub {
     owner = "firebase";
     repo = "firebase-tools";
     rev = "v${version}";
-    hash = "sha256-kq7ZrTh6cbrVCEW2/APtcdLqn9hCKXIxZmGgvgpfG4U=";
+    hash = "sha256-S8biY6aOCvz//SLdqFkPLCfQn9CtrVxKgp9A/Z2vRHo=";
   };
 
-  npmDepsHash = "sha256-VR+fpykY38JekzcBCK99qmiM3veuZ85BtGGTNf7TW5o=";
+  npmDepsHash = "sha256-SoRtQyGhKgaS1TK7ZmuIbNESQByQVJZkBUbvITiLF5w=";
 
   postPatch = ''
     ln -s npm-shrinkwrap.json package-lock.json
diff --git a/pkgs/development/tools/gauge/default.nix b/pkgs/development/tools/gauge/default.nix
index c95c33365732..9d164361de6b 100644
--- a/pkgs/development/tools/gauge/default.nix
+++ b/pkgs/development/tools/gauge/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gauge";
-  version = "1.5.6";
+  version = "1.5.7";
 
   src = fetchFromGitHub {
     owner = "getgauge";
     repo = "gauge";
     rev = "v${version}";
-    hash = "sha256-XWMv3H/NcEnX9+kCU6gzyrhpCtMWV3I+ZQ9Ia4XFpgY=";
+    hash = "sha256-9zoZKd/mubm64Pb95iUFZK622hTqm3A+U0OOX3uDtd8=";
   };
 
-  vendorHash = "sha256-dTPKdDEK3xdvKUqI4fUDlUi0q0sMCw5Nfaj71IXit9M=";
+  vendorHash = "sha256-BQkQ6huTm3hI1MQvq2VffCrxCQyDJb/S7yxvPpfQaGI=";
 
   excludedPackages = [ "build" "man" ];
 
diff --git a/pkgs/development/tools/ginkgo/default.nix b/pkgs/development/tools/ginkgo/default.nix
index f53879dc6e7f..a894a65271a3 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.14.0";
+  version = "2.15.0";
 
   src = fetchFromGitHub {
     owner = "onsi";
     repo = "ginkgo";
     rev = "v${version}";
-    sha256 = "sha256-enkWLhE6rsToL2bTElT+7ZMyQin0Go5FT8uDn79euKY=";
+    sha256 = "sha256-0Fwn62VORPmaufd7RqTkXjlXygXPVVixf8WwHgE57Lg=";
   };
   vendorHash = "sha256-F3z6gowVkei782qaSIOh7Ymeq1SFGxBaHM9fTSPG6qI=";
 
diff --git a/pkgs/development/tools/glslviewer/default.nix b/pkgs/development/tools/glslviewer/default.nix
index 06016bec25b5..4be67a29e399 100644
--- a/pkgs/development/tools/glslviewer/default.nix
+++ b/pkgs/development/tools/glslviewer/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   postPatch = ''
     sed '1i#include <cstring>' -i src/tools/text.cpp # gcc12
+    sed '8i#include <cstdint>' -i src/io/fs.cpp # gcc13
   '';
 
   nativeBuildInputs = [ pkg-config ensureNewerSourcesForZipFilesHook python3Packages.six ];
diff --git a/pkgs/development/tools/go-containerregistry/default.nix b/pkgs/development/tools/go-containerregistry/default.nix
index 956ded6b6edb..a6e0d9c47681 100644
--- a/pkgs/development/tools/go-containerregistry/default.nix
+++ b/pkgs/development/tools/go-containerregistry/default.nix
@@ -4,13 +4,13 @@ let bins = [ "crane" "gcrane" ]; in
 
 buildGoModule rec {
   pname = "go-containerregistry";
-  version = "0.17.0";
+  version = "0.19.0";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-spo8iRf3FqX7DyaTqIuiGOVrgv0PRqa05TQcanzB8FY=";
+    sha256 = "sha256-9sKJM1QnQcGF9d5oT1YEoSeIlg0wh2VOQ6cC1QCrcgY=";
   };
   vendorHash = null;
 
diff --git a/pkgs/development/tools/go-minimock/default.nix b/pkgs/development/tools/go-minimock/default.nix
index 344e8aa47965..279004b9c8c7 100644
--- a/pkgs/development/tools/go-minimock/default.nix
+++ b/pkgs/development/tools/go-minimock/default.nix
@@ -2,20 +2,20 @@
 
 buildGoModule rec {
   pname = "go-minimock";
-  version = "3.1.3";
+  version = "3.3.6";
 
   src = fetchFromGitHub {
     owner = "gojuno";
     repo = "minimock";
     rev = "v${version}";
-    sha256 = "sha256-6n5FOHTfsLYqnhlDO3etMnrypeOElmwdvoFQb3aSBts=";
+    sha256 = "sha256-ru3+MJ1GbzVDi6niiz7SpL0qa9mE89uhcH5/PHbVugE=";
   };
 
   ldflags = [
     "-s" "-w" "-X main.version=${version}"
   ];
 
-  vendorHash = "sha256-fiSU2NB9rWIPQLdnui5CB5VcadTVUg2JaO3ma7DAYqo=";
+  vendorHash = "sha256-eCM/EDdXZSa+pg35V6YiZ5gaC4rj8Wt8HhCgaMPoP+Y=";
 
   doCheck = true;
 
diff --git a/pkgs/development/tools/go-task/default.nix b/pkgs/development/tools/go-task/default.nix
index 2be4e63f3453..3c5e13473fc6 100644
--- a/pkgs/development/tools/go-task/default.nix
+++ b/pkgs/development/tools/go-task/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "go-task";
-  version = "3.33.1";
+  version = "3.34.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "task";
     rev = "refs/tags/v${version}";
-    hash = "sha256-GeAVI1jsYH66KIJsdC20j3HADl6y8gRezSWBUEF1Muw=";
+    hash = "sha256-ngDAItX7aTWDpf2lOiJYUC7QXXzrexPV3nvZ/esLb7g=";
   };
 
-  vendorHash = "sha256-kKYE8O+07ha35koSO+KG/K98rVbmDLqAhvaZsVHwUjY=";
+  vendorHash = "sha256-Czf7Bkld1NWJzU34NfDFL/Us9awnhlv8V9S4XxeoGxY=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/goa/default.nix b/pkgs/development/tools/goa/default.nix
index 0290eda782b9..e9a2f398a7bf 100644
--- a/pkgs/development/tools/goa/default.nix
+++ b/pkgs/development/tools/goa/default.nix
@@ -5,15 +5,15 @@
 
 buildGoModule rec {
   pname = "goa";
-  version = "3.14.1";
+  version = "3.14.4";
 
   src = fetchFromGitHub {
     owner = "goadesign";
     repo = "goa";
     rev = "v${version}";
-    sha256 = "sha256-acF9y0EHjALB+h/mf96MfCUlSTvp3QdhwEbu3gBA/y4=";
+    hash = "sha256-BwXO03q/vG6DWon0jhGNYckF8DHzaN9RtrX452VC6ls=";
   };
-  vendorHash = "sha256-RI2UMmdFCNo6iE9MnWwsJtholjF4jNbCNNLk8nylgtc=";
+  vendorHash = "sha256-z4oXiGEcXKZTS57p/3gHhCCUDKh/imNu2n5e6+6BjKg=";
 
   subPackages = [ "cmd/goa" ];
 
diff --git a/pkgs/development/tools/gocode/default.nix b/pkgs/development/tools/gocode/default.nix
deleted file mode 100644
index 687b69cf2027..000000000000
--- a/pkgs/development/tools/gocode/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
-
-buildGoPackage rec {
-  pname = "gocode-unstable";
-  version = "2020-04-06";
-  rev = "4acdcbdea79de6b3dee1c637eca5cbea0fdbe37c";
-
-  goPackagePath = "github.com/mdempsky/gocode";
-
-  # we must allow references to the original `go` package,
-  # because `gocode` needs to dig into $GOROOT to provide completions for the
-  # standard packages.
-  allowGoReference = true;
-
-  src = fetchFromGitHub {
-    inherit rev;
-
-    owner = "mdempsky";
-    repo = "gocode";
-    sha256 = "0i1hc089gb6a4mcgg56vn5l0q96wrlza2n08l4349s3dc2j559fb";
-  };
-
-  goDeps = ./deps.nix;
-
-  meta = with lib; {
-    description = "An autocompletion daemon for the Go programming language";
-    longDescription = ''
-      Gocode is a helper tool which is intended to be integrated with your
-      source code editor, like vim, neovim and emacs. It provides several
-      advanced capabilities, which currently includes:
-
-        - Context-sensitive autocompletion
-
-      It is called daemon, because it uses client/server architecture for
-      caching purposes. In particular, it makes autocompletions very fast.
-      Typical autocompletion time with warm cache is 30ms, which is barely
-      noticeable.
-    '';
-    homepage = "https://github.com/mdempsky/gocode";
-    license = licenses.mit;
-    maintainers = with maintainers; [ kalbasit ];
-  };
-}
diff --git a/pkgs/development/tools/gocode/deps.nix b/pkgs/development/tools/gocode/deps.nix
deleted file mode 100644
index b2518109171a..000000000000
--- a/pkgs/development/tools/gocode/deps.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-[
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "72e4a01eba4315301fd9ce00c8c2f492580ded8a";
-      sha256 = "0a8c7j4w784w441j3j3bh640vy1g6g214641qv485wyi0xj49anf";
-    };
-  }
-]
diff --git a/pkgs/development/tools/gofumpt/default.nix b/pkgs/development/tools/gofumpt/default.nix
index 6becc6f4002d..36e38163e2a7 100644
--- a/pkgs/development/tools/gofumpt/default.nix
+++ b/pkgs/development/tools/gofumpt/default.nix
@@ -21,7 +21,11 @@ buildGoModule rec {
 
   CGO_ENABLED = "0";
 
-  ldflags = "-s -w -X main.version=v${version}";
+  ldflags = [
+    "-s"
+    "-w"
+    "-X main.version=v${version}"
+  ];
 
   checkFlags = [
     # Requires network access (Error: module lookup disabled by GOPROXY=off).
diff --git a/pkgs/development/tools/goimports-reviser/default.nix b/pkgs/development/tools/goimports-reviser/default.nix
index 05243325b147..30cf393334c9 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.2";
+  version = "3.6.4";
 
   src = fetchFromGitHub {
     owner = "incu6us";
     repo = "goimports-reviser";
     rev = "v${version}";
-    hash = "sha256-mq18UXvA1YeM+Jw+xJXQrWayM3bMtIX2lztm2/iyMDc=";
+    hash = "sha256-+GVC/qJnqWm5tsn2Y5BPafapp7ct9kqHWlDNxukEZsM=";
   };
   vendorHash = "sha256-z+FeAXPXKi653im2X2WOP1R9gRl/x7UBnndoEXoxdwA=";
 
diff --git a/pkgs/development/tools/golines/default.nix b/pkgs/development/tools/golines/default.nix
index 986e68dd634d..68ee00ecb638 100644
--- a/pkgs/development/tools/golines/default.nix
+++ b/pkgs/development/tools/golines/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "golines";
-  version = "0.11.0";
+  version = "0.12.2";
 
   src = fetchFromGitHub {
     owner = "segmentio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-2K9KAg8iSubiTbujyFGN3yggrL+EDyeUCs9OOta/19A=";
+    sha256 = "sha256-D0gI9BA0vgM1DBqwolNTfPsTCWuOGrcu5gAVFEdyVGg=";
   };
 
-  vendorHash = "sha256-rxYuzn4ezAxaeDhxd8qdOzt+CKYIh03A9zKNdzILq18=";
+  vendorHash = "sha256-jI3/m1UdZMKrS3H9jPhcVAUCjc1G/ejzHi9SCTy24ak=";
 
   meta = with lib; {
     description = "A golang formatter that fixes long lines";
diff --git a/pkgs/development/tools/gomplate/default.nix b/pkgs/development/tools/gomplate/default.nix
index 307b568c833f..28f9d8341fb4 100644
--- a/pkgs/development/tools/gomplate/default.nix
+++ b/pkgs/development/tools/gomplate/default.nix
@@ -12,16 +12,16 @@
 # buildGoModule rec {
 buildGo120Module rec {
   pname = "gomplate";
-  version = "3.11.6";
+  version = "3.11.7";
 
   src = fetchFromGitHub {
     owner = "hairyhenderson";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-IXNI+VkmW7k+Hkx2gv8OCpfAe4qJ3sH9KT/mO8y3JcU=";
+    hash = "sha256-0cYQ44SF8fQ5Ml0tRUbqTFZ+zDVTV6elox1q6tNsG7Q=";
   };
 
-  vendorHash = "sha256-DAtgebWwGBYioKTvW2qtzy+GPxYE2SuXIYpex6M85Vc=";
+  vendorHash = "sha256-8siITXKIqDbph/74aBEvkbLVqHE30VyRompFL6z92zA=";
 
   postPatch = ''
     # some tests require network access
diff --git a/pkgs/development/tools/gptcommit/default.nix b/pkgs/development/tools/gptcommit/default.nix
index 3b7892022b85..19d18edf1c42 100644
--- a/pkgs/development/tools/gptcommit/default.nix
+++ b/pkgs/development/tools/gptcommit/default.nix
@@ -11,7 +11,7 @@
 
 let
   pname = "gptcommit";
-  version = "0.5.14";
+  version = "0.5.16";
 in
 rustPlatform.buildRustPackage {
   inherit pname version;
@@ -20,10 +20,10 @@ rustPlatform.buildRustPackage {
     owner = "zurawiki";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-xjaFr1y2Fd7IWbJlegnIsfS5/oMJYd6QTnwp7IK17xM=";
+    hash = "sha256-JhMkK2zw3VL9o7j8DJmjY/im+GyCjfV2TJI3GDo8T8c=";
   };
 
-  cargoHash = "sha256-VZrlEJi/UPQTGFiSpZs+Do+69CY3zdqGkAnUxMYvvaw=";
+  cargoHash = "sha256-ye9MAfG3m24ofV95Kr+KTP4FEqfrsm3aTQ464hG9q08=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/development/tools/gqlgenc/default.nix b/pkgs/development/tools/gqlgenc/default.nix
index 07ea00756e58..e103402fbb85 100644
--- a/pkgs/development/tools/gqlgenc/default.nix
+++ b/pkgs/development/tools/gqlgenc/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "gqlgenc";
-  version = "0.16.2";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "yamashou";
     repo = "gqlgenc";
     rev = "v${version}";
-    sha256 = "sha256-XNmCSkgJJ2notrv0Din4jlU9EoHJcznjEUiXQgQ5a7I=";
+    sha256 = "sha256-KAUdddVjX1yQLSqnvSAoYPaLL8N8SOfR/gvQ5In4Z/Y=";
   };
 
   excludedPackages = [ "example" ];
diff --git a/pkgs/development/tools/grpc-gateway/default.nix b/pkgs/development/tools/grpc-gateway/default.nix
index b278c846343a..85f6857f5c2c 100644
--- a/pkgs/development/tools/grpc-gateway/default.nix
+++ b/pkgs/development/tools/grpc-gateway/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "grpc-gateway";
-  version = "2.19.0";
+  version = "2.19.1";
 
   src = fetchFromGitHub {
     owner = "grpc-ecosystem";
     repo = "grpc-gateway";
     rev = "v${version}";
-    sha256 = "sha256-mppN8twrOTIVK3TDQcv5fYZtXKPA34EWGPo31JxME1g=";
+    sha256 = "sha256-CdGQpQfOSimeio8v1lZ7xzE/oAS2qFyu+uN+H9i7vpo=";
   };
 
-  vendorHash = "sha256-R/V3J9vCSQppm59RCaJrDIS0Juff5htPl/GjTwhHEfQ=";
+  vendorHash = "sha256-no7kZGpf/VOuceC3J+izGFQp5aMS3b+Rn+x4BFZ2zgs=";
 
   meta = with lib; {
     description =
diff --git a/pkgs/development/tools/hcloud/default.nix b/pkgs/development/tools/hcloud/default.nix
index 51d3c6f35385..6cfebf31ec89 100644
--- a/pkgs/development/tools/hcloud/default.nix
+++ b/pkgs/development/tools/hcloud/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "hcloud";
-  version = "1.41.1";
+  version = "1.42.0";
 
   src = fetchFromGitHub {
     owner = "hetznercloud";
     repo = "cli";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ZC71++aC0fUkUG0h5aRxU0FpR1eNruFWAB1e2e5c/Vo=";
+    hash = "sha256-cJNCp60OZBPXtda787PDT9iInxidTvzYmf9orifmS/A=";
   };
 
-  vendorHash = "sha256-T407Y4IZlJnrCGSWpuN1wv8Dng2F7++2cMfLGjYC2vM=";
+  vendorHash = "sha256-IIszQCAsNSQYieM1JQH1Dald9saUhZ2kPhwZ1p2GTp4=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/development/tools/hobbes/default.nix b/pkgs/development/tools/hobbes/default.nix
index 5c3eb84b2d5a..851d64545d8f 100644
--- a/pkgs/development/tools/hobbes/default.nix
+++ b/pkgs/development/tools/hobbes/default.nix
@@ -1,7 +1,8 @@
 { lib
 , stdenv
-, llvmPackages_10
+, llvmPackages
 , fetchFromGitHub
+, fetchpatch
 , cmake
 , llvm_12
 , ncurses
@@ -10,9 +11,9 @@
 , libxml2
 , python3
 }:
-llvmPackages_10.stdenv.mkDerivation {
+llvmPackages.stdenv.mkDerivation {
   pname = "hobbes";
-  version = "unstable-2023-06-03";
+  version = "0-unstable-2023-06-03";
 
   src = fetchFromGitHub {
     owner = "morganstanley";
@@ -21,6 +22,19 @@ llvmPackages_10.stdenv.mkDerivation {
     hash = "sha256-2v0yk35/cLKTjX0Qbc8cjc7Y6bamRSa9GpPvGoxL2Cw=";
   };
 
+  patches = [
+    # fix build for LLVM-12+
+    # https://github.com/morganstanley/hobbes/pull/452
+    (fetchpatch {
+      name = "include-cstdint.patch";
+      url = "https://github.com/morganstanley/hobbes/commit/924b71fca06c61e606792cc8db8521fb499d4237.patch";
+      hash = "sha256-/VsWtTYc3LBOnm4Obgx/MOqaaWZhUc8yzmkygtNz+mY=";
+    })
+  ];
+
+  # only one warning generated. try to remove on next update
+  env.CXXFLAGS = "-Wno-error=deprecated-copy";
+
   # TODO: re-enable Python tests once they work on Python 3
   # currently failing with "I don't know how to decode the primitive type: b'bool'"
   postPatch = ''
diff --git a/pkgs/development/tools/infisical/default.nix b/pkgs/development/tools/infisical/default.nix
index d007756cacf0..0f0c8e1ef89f 100644
--- a/pkgs/development/tools/infisical/default.nix
+++ b/pkgs/development/tools/infisical/default.nix
@@ -15,7 +15,7 @@ let
   buildHashes = builtins.fromJSON (builtins.readFile ./hashes.json);
 
   # the version of infisical
-  version = "0.16.7";
+  version = "0.16.10";
 
   # the platform-specific, statically linked binary
   src =
diff --git a/pkgs/development/tools/infisical/hashes.json b/pkgs/development/tools/infisical/hashes.json
index 11d5f4238f9b..4b631427a553 100644
--- a/pkgs/development/tools/infisical/hashes.json
+++ b/pkgs/development/tools/infisical/hashes.json
@@ -1,6 +1,6 @@
 { "_comment": "@generated by pkgs/development/tools/infisical/update.sh"
-, "x86_64-linux": "sha256-wN+NoIDl8B/ANxES2XVkQBpTK3zUL+Xh+4BxKlcSkr0="
-, "x86_64-darwin": "sha256-ZkIGzcQd+MMJjiHPubLnHcc3H7Qpahs5LyJ+ytrYgfo="
-, "aarch64-linux": "sha256-P/AMelaej8D3BlUQBjOxCn8DADkVsU7lBY5dLJ0Wz6I="
-, "aarch64-darwin": "sha256-jQkLwY6Sq9cN/ujz4wlzjTBjaIYzZKMh/J/5CMWuRf8="
+, "x86_64-linux": "sha256-EjAm8toawTRKlnVr/dXXvfZ7IubKgjJh5qkR5lwBga8="
+, "x86_64-darwin": "sha256-W2enmLucQpDLaUzsbSmQ2wq1nU5k5a93iqlAERJ/b/g="
+, "aarch64-linux": "sha256-i5irWQmZVqKuzgAmL1wvo/3V7czEiIG8yANDhdb0tPk="
+, "aarch64-darwin": "sha256-GjG8FBT3eulRYLyy4iiuXuQjiL+Au8Dd/h7buXDNlyQ="
 }
diff --git a/pkgs/development/tools/jaq/default.nix b/pkgs/development/tools/jaq/default.nix
index ae7c6b35bd7b..b95473aac745 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.2.0";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "01mf02";
     repo = "jaq";
     rev = "v${version}";
-    hash = "sha256-Jc/etdQtJfFmmdxWdJUVQqPjHTCY6ZUAO+ShNJboOq0=";
+    hash = "sha256-QXlHiVlKx9qmW5Cw4IGzjuUSUfoc9IvA5ZkTc1Ev37Q=";
   };
 
-  cargoHash = "sha256-TaWD9xpTsNWQt/Wz5PYY0mgFfP5d/Jn3EhcHUywUk3Q=";
+  cargoHash = "sha256-9fv8Z9AE9GV/Bq+iAsxUkD/CS25/kOBKKS4SAke/tFk=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.Security
diff --git a/pkgs/development/tools/jira-cli-go/default.nix b/pkgs/development/tools/jira-cli-go/default.nix
index 51b847769cbb..d031cd9394d7 100644
--- a/pkgs/development/tools/jira-cli-go/default.nix
+++ b/pkgs/development/tools/jira-cli-go/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "jira-cli-go";
-  version = "1.5.0";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "ankitpokhrel";
     repo = "jira-cli";
     rev = "v${version}";
-    hash = "sha256-FdDoKww/6WzKCZBrgvh72TRovMXLOOzlmoFreMGWAeo=";
+    hash = "sha256-edytj9hB8lDwy3qGSyLudu5G4DSRGKhD0vDoWz5eUgs=";
   };
 
   vendorHash = "sha256-DAdzbANqr0fa4uO8k/yJFoirgbZiKOQhOH8u8d+ncao=";
diff --git a/pkgs/development/tools/jql/default.nix b/pkgs/development/tools/jql/default.nix
index b69779e05d6b..98ff0d6bb5be 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.2";
+  version = "7.1.3";
 
   src = fetchFromGitHub {
     owner = "yamafaktory";
     repo = pname;
     rev = "jql-v${version}";
-    hash = "sha256-gdHxaQkJJw/cvnWhAodp57VIfW5oehNE7/zGs7B5Akg=";
+    hash = "sha256-UiIIPA4JREWniNOcqMW2jnfaEDpkT1jbdv3whr49Gqg=";
   };
 
-  cargoHash = "sha256-urFwYHlHhxOmSBSpfEJV/3sg40r8CTnAOjjLqQ/GXeY=";
+  cargoHash = "sha256-9ApucHYFHBritAdylzQuUDa47yG8dAeIQwPezXP3BXY=";
 
   meta = with lib; {
     description = "A JSON Query Language CLI tool built with Rust";
diff --git a/pkgs/development/tools/k6/default.nix b/pkgs/development/tools/k6/default.nix
index 06f8251f0993..c5c8f85e9126 100644
--- a/pkgs/development/tools/k6/default.nix
+++ b/pkgs/development/tools/k6/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "k6";
-  version = "0.48.0";
+  version = "0.49.0";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-6EiHLm69mBhv0ujFPdXUk1wPZwKk9TS250QHrdXfQD8=";
+    hash = "sha256-zlsHEAGsey+qe0s7sle9Kt/V0hTp6uzelJmRlATznUY=";
   };
 
   subPackages = [ "./" ];
diff --git a/pkgs/development/tools/kdash/default.nix b/pkgs/development/tools/kdash/default.nix
index 5af8543a4f64..73746875247d 100644
--- a/pkgs/development/tools/kdash/default.nix
+++ b/pkgs/development/tools/kdash/default.nix
@@ -12,13 +12,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "kdash";
-  version = "0.4.5";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "kdash-rs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-6jCbsF9Nl5A7PZM59Z1ozcJ3V0ajA/4V3A6hunrB9Xg=";
+    sha256 = "sha256-XY6aBqLHbif3RsytNm7JnDXspICJuhS7SJ+ApwTeqX4=";
   };
 
   nativeBuildInputs = [ perl python3 pkg-config ];
@@ -26,7 +26,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl xorg.xcbutil ]
     ++ lib.optional stdenv.isDarwin AppKit;
 
-  cargoHash = "sha256-EwlY4kBieFYxXGreeFb2VxLMwFZnYB6+d/Zv7fjsJls=";
+  cargoHash = "sha256-ODQf+Fvil+oBJcM38h1HdrcgtJw0b65f5auLuZtUgik=";
 
   meta = with lib; {
     description = "A simple and fast dashboard for Kubernetes";
diff --git a/pkgs/development/tools/kind/default.nix b/pkgs/development/tools/kind/default.nix
index 63f6fff66b62..1f58fd637a6d 100644
--- a/pkgs/development/tools/kind/default.nix
+++ b/pkgs/development/tools/kind/default.nix
@@ -20,7 +20,7 @@ buildGoModule rec {
 
   CGO_ENABLED = 0;
   GOFLAGS = [ "-trimpath" ];
-  ldflags = [ "-buildid=" "-w" ];
+  ldflags = [ "-w" ];
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/kube-linter/default.nix b/pkgs/development/tools/kube-linter/default.nix
index bcacc28214bf..141239c403f2 100644
--- a/pkgs/development/tools/kube-linter/default.nix
+++ b/pkgs/development/tools/kube-linter/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kube-linter";
-  version = "0.6.5";
+  version = "0.6.7";
 
   src = fetchFromGitHub {
     owner = "stackrox";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-gygzibpTpdVg1ZenAXIDHXYwAemlr6qkioE+GV52NkE=";
+    sha256 = "sha256-D9QJsYaYvGjDucr0Xedg2LEqfwTxzIQBBNNFZ1m5D/U=";
   };
 
-  vendorHash = "sha256-ZeAAvL5pOvHMAsDBe/0CBeayTsUrPDK5a5rAxHAu64o=";
+  vendorHash = "sha256-ARrMHjR/fOGS8EDMCKiEr3ubWjqDySb/AdX9jNYWOVA=";
 
   ldflags = [
     "-s" "-w" "-X golang.stackrox.io/kube-linter/internal/version.version=${version}"
diff --git a/pkgs/development/tools/kubedock/default.nix b/pkgs/development/tools/kubedock/default.nix
index ca0af78076f5..947054b44da2 100644
--- a/pkgs/development/tools/kubedock/default.nix
+++ b/pkgs/development/tools/kubedock/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kubedock";
-  version = "0.15.1";
+  version = "0.15.2";
 
   src = fetchFromGitHub {
     owner = "joyrex2001";
     repo = "kubedock";
     rev = version;
-    hash = "sha256-/uC/blvR6+F5Uyj1Fc5I5eSKucc0w76U0cwWKULfdyU=";
+    hash = "sha256-EewvlH+Coz/78AfZfj230BNzuPsKvB7pnV0sJtvYGnc=";
   };
 
   vendorHash = "sha256-rkn6JzPB1UNpaCon6LyYNUAsV88t3xbppDrtBwjBEHk=";
diff --git a/pkgs/development/tools/language-servers/beancount-language-server/default.nix b/pkgs/development/tools/language-servers/beancount-language-server/default.nix
index 9eb1d746c216..844bc89567d0 100644
--- a/pkgs/development/tools/language-servers/beancount-language-server/default.nix
+++ b/pkgs/development/tools/language-servers/beancount-language-server/default.nix
@@ -1,20 +1,26 @@
 { lib
 , fetchFromGitHub
 , rustPlatform
+, stdenv
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "beancount-language-server";
-  version = "1.3.1";
+  version = "1.3.4";
 
   src = fetchFromGitHub {
     owner = "polarmutex";
     repo = "beancount-language-server";
     rev = "v${version}";
-    hash = "sha256-9IkbEOG6xcmpowsLj/RHnMFGQxh02JMQsTVli4hvs/M=";
+    hash = "sha256-C44Z8JaEZvwgocaGjWT3rUAgIBtCRo0xZappMsydR7g=";
   };
 
-  cargoHash = "sha256-qhN2//hhCaKpm0HAiUL/CfdrtvAXgR34vXBECB8UDxE=";
+  cargoHash = "sha256-NMSNCURSO1iIWHH27FI5Y0q7+Ghds8VSxRGBOp+fH6A=";
+
+  # Workaround for https://github.com/NixOS/nixpkgs/issues/166205
+  env = lib.optionalAttrs (stdenv.cc.libcxx != null) {
+    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
+  };
 
   doInstallCheck = true;
   postInstallCheck = ''
diff --git a/pkgs/development/tools/language-servers/csharp-ls/default.nix b/pkgs/development/tools/language-servers/csharp-ls/default.nix
index f354b3220fc7..f3c412232136 100644
--- a/pkgs/development/tools/language-servers/csharp-ls/default.nix
+++ b/pkgs/development/tools/language-servers/csharp-ls/default.nix
@@ -3,17 +3,17 @@
 , dotnetCorePackages
 }:
 let
-  inherit (dotnetCorePackages) sdk_7_0;
+  inherit (dotnetCorePackages) sdk_8_0;
 in
 
 buildDotnetGlobalTool rec {
   pname = "csharp-ls";
-  version = "0.10.0";
+  version = "0.11.0";
 
-  nugetSha256 = "sha256-1t8U2Q4lIlj2QwbnevAMMGcqtpPh5zk0Bd7EHa7qvCI=";
+  nugetSha256 = "sha256-zB8uJqlf8kL8jh3WNsPQF7EJpONqi23co3O/iBzfEoU=";
 
-  dotnet-sdk = sdk_7_0;
-  dotnet-runtime = sdk_7_0;
+  dotnet-sdk = sdk_8_0;
+  dotnet-runtime = sdk_8_0;
 
   meta = with lib; {
     description = "Roslyn-based LSP language server for C#";
diff --git a/pkgs/development/tools/language-servers/helm-ls/default.nix b/pkgs/development/tools/language-servers/helm-ls/default.nix
index 5b39548aa65e..841546c176e6 100644
--- a/pkgs/development/tools/language-servers/helm-ls/default.nix
+++ b/pkgs/development/tools/language-servers/helm-ls/default.nix
@@ -8,13 +8,13 @@
 
 buildGoModule rec {
   pname = "helm-ls";
-  version = "0.0.9";
+  version = "0.0.10";
 
   src = fetchFromGitHub {
     owner = "mrjosh";
     repo = "helm-ls";
     rev = "v${version}";
-    hash = "sha256-DfFXKkYrJbO4stBM/5qewhy1etvJS6ey12jmd/NIs8Q=";
+    hash = "sha256-m+kr1NIrWqQGbWxOOu2mbPEk3AQPt8KqsByylUanbTM=";
   };
 
   vendorHash = "sha256-8mSX7fwgxwZ8aIXfv3WxLiVH5PjSFzcxM0oekod84tA=";
diff --git a/pkgs/development/tools/language-servers/jdt-language-server/default.nix b/pkgs/development/tools/language-servers/jdt-language-server/default.nix
deleted file mode 100644
index 3de28f65145f..000000000000
--- a/pkgs/development/tools/language-servers/jdt-language-server/default.nix
+++ /dev/null
@@ -1,102 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, makeWrapper
-, jdk
-}:
-
-stdenv.mkDerivation rec {
-  pname = "jdt-language-server";
-  version = "1.26.0";
-  timestamp = "202307271613";
-
-  src = fetchurl {
-    url = "https://download.eclipse.org/jdtls/milestones/${version}/jdt-language-server-${version}-${timestamp}.tar.gz";
-    sha256 = "sha256-ul/l7jsqg5UofiSu8gzm4Xg0z46HcRfmyqysamiKbFM=";
-  };
-
-  sourceRoot = ".";
-
-  buildInputs = [
-    jdk
-  ];
-
-  nativeBuildInputs = [
-    makeWrapper
-  ];
-
-  installPhase =
-    let
-      # The application ships with config directories for linux and mac
-      configDir = if stdenv.isDarwin then "config_mac" else "config_linux";
-    in
-      ''
-      # Copy jars
-      install -D -t $out/share/java/plugins/ plugins/*.jar
-
-      # Copy config directories for linux and mac
-      install -Dm 444 -t $out/share/config ${configDir}/*
-
-      # Get latest version of launcher jar
-      # e.g. org.eclipse.equinox.launcher_1.5.800.v20200727-1323.jar
-      launcher="$(ls $out/share/java/plugins/org.eclipse.equinox.launcher_* | sort -V | tail -n1)"
-
-      # The wrapper script will create a directory in the user's cache, copy in the config
-      # files since this dir can't be read-only, and by default use this as the runtime dir.
-      #
-      # The following options are required as per the upstream documentation:
-      #
-      #   -Declipse.application=org.eclipse.jdt.ls.core.id1
-      #   -Dosgi.bundles.defaultStartLevel=4
-      #   -Declipse.product=org.eclipse.jdt.ls.core.product
-      #   --add-modules=ALL-SYSTEM
-      #   --add-opens java.base/java.util=ALL-UNNAMED
-      #   --add-opens java.base/java.lang=ALL-UNNAMED
-      #
-      # The following options configure the server to run without writing logs to the nix store:
-      #
-      #   -Dosgi.sharedConfiguration.area.readOnly=true
-      #   -Dosgi.checkConfiguration=true
-      #   -Dosgi.configuration.cascaded=true
-      #   -Dosgi.sharedConfiguration.area=$out/share/config
-      #
-      # Other options which the caller may change:
-      #
-      #   -Dlog.level:
-      #     Log level.
-      #     This can be overidden by setting JAVA_OPTS.
-      #
-      # The caller must specify the following:
-      #
-      #   -data:
-      #     The application stores runtime data here. We set this to <cache-dir>/$PWD
-      #     so that projects don't collide with each other.
-      #     This can be overidden by specifying -configuration to the wrapper.
-      #
-      # Java options, such as -Xms and Xmx can be specified by setting JAVA_OPTS.
-      #
-      makeWrapper ${jdk}/bin/java $out/bin/jdt-language-server \
-        --add-flags "-Declipse.application=org.eclipse.jdt.ls.core.id1" \
-        --add-flags "-Dosgi.bundles.defaultStartLevel=4" \
-        --add-flags "-Declipse.product=org.eclipse.jdt.ls.core.product" \
-        --add-flags "-Dosgi.sharedConfiguration.area=$out/share/config" \
-        --add-flags "-Dosgi.sharedConfiguration.area.readOnly=true" \
-        --add-flags "-Dosgi.checkConfiguration=true" \
-        --add-flags "-Dosgi.configuration.cascaded=true" \
-        --add-flags "-Dlog.level=ALL" \
-        --add-flags "\$JAVA_OPTS" \
-        --add-flags "-jar $launcher" \
-        --add-flags "--add-modules=ALL-SYSTEM" \
-        --add-flags "--add-opens java.base/java.util=ALL-UNNAMED" \
-        --add-flags "--add-opens java.base/java.lang=ALL-UNNAMED"
-    '';
-
-  meta = with lib; {
-    homepage = "https://github.com/eclipse/eclipse.jdt.ls";
-    description = "Java language server";
-    sourceProvenance = with sourceTypes; [ binaryBytecode ];
-    license = licenses.epl20;
-    maintainers = with maintainers; [ matt-snider ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/development/tools/language-servers/jq-lsp/default.nix b/pkgs/development/tools/language-servers/jq-lsp/default.nix
index 08e83763fd09..13f852790662 100644
--- a/pkgs/development/tools/language-servers/jq-lsp/default.nix
+++ b/pkgs/development/tools/language-servers/jq-lsp/default.nix
@@ -3,18 +3,29 @@
 , fetchFromGitHub
 }:
 
-buildGoModule {
+buildGoModule rec {
   pname = "jq-lsp";
-  version = "unstable-2023-10-27";
+  version = "0.1.2";
 
   src = fetchFromGitHub {
     owner = "wader";
     repo = "jq-lsp";
-    rev = "b4707e7776a4eb3093b1a7533ebd41368240095a";
-    hash = "sha256-AU4xGweeFx+kSsrqkTtSjl+N77cITF/qvAVZGUZY5SE=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-a3ZqVWG7kjWQzL1efrKc4s4D14qD/+6JM26vaduxhWg=";
   };
 
-  vendorHash = "sha256-ppQ81uERHBgOr/bm/CoDSWcK+IqHwvcL6RFi0DgoLuw=";
+  vendorHash = "sha256-bIe006I1ryvIJ4hC94Ux2YVdlmDIM4oZaK/qXafYYe0=";
+
+  # based on https://github.com/wader/jq-lsp/blob/master/.goreleaser.yml
+  CGO_ENABLED = 0;
+  GOFLAGS = [ "-trimpath" ];
+  ldflags = [
+    "-s"
+    "-w"
+    "-X main.version=${version}"
+    "-X main.commit=${src.rev}"
+    "-X main.builtBy=Nix"
+  ];
 
   meta = with lib; {
     description = "jq language server";
diff --git a/pkgs/development/tools/language-servers/neocmakelsp/default.nix b/pkgs/development/tools/language-servers/neocmakelsp/default.nix
index 6397dabb1da4..0b8c3b5f7b49 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.17";
+  version = "0.6.19";
 
   src = fetchFromGitHub {
     owner = "Decodetalkers";
     repo = "neocmakelsp";
     rev = "v${version}";
-    hash = "sha256-0Rc5oPm6BAjPmoRHUO3gVivbQt2p2y62VbT5NIzHtpI=";
+    hash = "sha256-nYZ9H66sA5umOTn/w/P62kJy3WHLwYPWWs1B74bTAEM=";
   };
 
-  cargoHash = "sha256-7ifdmW9JBjz0jxpltn5gFa60oNsB4daA6cXCLnBne7o=";
+  cargoHash = "sha256-1jpKo/fSWLf0pFgzTvnkaghz/Fdy+MJhZsKQPaJHlfs=";
 
   meta = with lib; {
     description = "A cmake lsp based on tower-lsp and treesitter";
diff --git a/pkgs/development/tools/language-servers/nixd/default.nix b/pkgs/development/tools/language-servers/nixd/default.nix
index d5afaae1d81e..601a568554be 100644
--- a/pkgs/development/tools/language-servers/nixd/default.nix
+++ b/pkgs/development/tools/language-servers/nixd/default.nix
@@ -5,6 +5,7 @@
 , bison
 , boost182
 , flex
+, fmt
 , gtest
 , libbacktrace
 , lit
@@ -18,13 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nixd";
-  version = "1.2.2";
+  version = "1.2.3";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = "nixd";
     rev = version;
-    hash = "sha256-W44orkPZQ9gDUTogb8YVIaw4WHzUA+ExOXhTnZlJ6yY=";
+    hash = "sha256-i/z5VnsWPWloQfdk48i+a4XaGnTMPJ6QougChkT9IWw=";
   };
 
   mesonBuildType = "release";
@@ -45,6 +46,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     libbacktrace
     nix
+    fmt
     gtest
     boost182
     llvmPackages.llvm
diff --git a/pkgs/development/tools/language-servers/ruff-lsp/default.nix b/pkgs/development/tools/language-servers/ruff-lsp/default.nix
index 904798b8d472..7abb3ea9a64e 100644
--- a/pkgs/development/tools/language-servers/ruff-lsp/default.nix
+++ b/pkgs/development/tools/language-servers/ruff-lsp/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "ruff-lsp";
-  version = "0.0.49";
+  version = "0.0.51";
   pyproject = true;
   disabled = pythonOlder "3.7";
 
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "astral-sh";
     repo = "ruff-lsp";
     rev = "refs/tags/v${version}";
-    hash = "sha256-AL0p5NbhBxgw0mJYWcGb4EeztO7ermmcm5YrO/M8TKU=";
+    hash = "sha256-PEbDYVig0i1V8EF6ZDtdCTUz7Gz1HpZiOK0OZ1mbwjY=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/tools/language-servers/verible/default.nix b/pkgs/development/tools/language-servers/verible/default.nix
index e607713f49f8..4809b85e2e5b 100644
--- a/pkgs/development/tools/language-servers/verible/default.nix
+++ b/pkgs/development/tools/language-servers/verible/default.nix
@@ -18,8 +18,8 @@ buildBazelPackage rec {
   # These environment variables are read in bazel/build-version.py to create
   # a build string shown in the tools --version output.
   # If env variables not set, it would attempt to extract it from .git/.
-  GIT_DATE = "2023-12-23";
-  GIT_VERSION = "v0.0-3471-g9cb45092";
+  GIT_DATE = "2024-02-01";
+  GIT_VERSION = "v0.0-3515-g2d841599";
 
   # Derive nix package version from GIT_VERSION: "v1.2-345-abcde" -> "1.2.345"
   version = builtins.concatStringsSep "." (lib.take 3 (lib.drop 1 (builtins.splitVersion GIT_VERSION)));
@@ -28,16 +28,9 @@ buildBazelPackage rec {
     owner = "chipsalliance";
     repo  = "verible";
     rev   = "${GIT_VERSION}";
-    hash  = "sha256-nFt5TeFv63Igx8Zer2s/ZLj5DsHeZj5V/+3burnEm9g=";
+    hash  = "sha256-D/blcex/St1nLKvjzuKnmAJE8HVlGy8ampmXIxKK11M=";
   };
 
-  patches = [
-    # Patch WORKSPACE file to not include windows-related dependencies,
-    # as they are removed by bazel, breaking the fixed output derivation
-    # TODO: fix upstream
-    ./remove-unused-deps.patch
-  ];
-
   bazel = bazel_5;
   bazelFlags = [
     "--//bazel:use_local_flex_bison"
@@ -46,7 +39,7 @@ buildBazelPackage rec {
   ];
 
   fetchAttrs = {
-    sha256 = "sha256-gZzrgZsHQ9zMoIDooVo9nRQbkJ41igme8wcNFj5EzWc=";
+    sha256 = "sha256-2YruKvU7OZQ7mKNrqYITat+cmf/DEytDElYw7CvkxJk=";
   };
 
   nativeBuildInputs = [
@@ -98,6 +91,7 @@ buildBazelPackage rec {
     homepage = "https://github.com/chipsalliance/verible";
     license = licenses.asl20;
     maintainers = with maintainers; [ hzeller newam ];
+    # Platforms linux only currently; some LIBTOOL issue on Darwin w/ bazel
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/tools/language-servers/verible/remove-unused-deps.patch b/pkgs/development/tools/language-servers/verible/remove-unused-deps.patch
deleted file mode 100644
index 57b152d9db31..000000000000
--- a/pkgs/development/tools/language-servers/verible/remove-unused-deps.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/WORKSPACE b/WORKSPACE
-index ad16b3a1..52b66703 100644
---- a/WORKSPACE
-+++ b/WORKSPACE
-@@ -81,17 +81,6 @@ load("@com_github_google_rules_install//:setup.bzl", "install_rules_setup")
- 
- install_rules_setup()
- 
--# Need to load before rules_flex/rules_bison to make sure
--# win_flex_bison is the chosen toolchain on Windows
--load("//bazel:win_flex_bison.bzl", "win_flex_configure")
--
--win_flex_configure(
--    name = "win_flex_bison",
--    sha256 = "8d324b62be33604b2c45ad1dd34ab93d722534448f55a16ca7292de32b6ac135",
--    # bison 3.8.2, flex 2.6.4
--    url = "https://github.com/lexxmark/winflexbison/releases/download/v2.5.25/win_flex_bison-2.5.25.zip",
--)
--
- http_archive(
-     name = "rules_m4",
-     sha256 = "b0309baacfd1b736ed82dc2bb27b0ec38455a31a3d5d20f8d05e831ebeef1a8e",
diff --git a/pkgs/development/tools/melange/default.nix b/pkgs/development/tools/melange/default.nix
index 8c5bb751195a..0ee59814bf41 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.5.5";
+  version = "0.5.6";
 
   src = fetchFromGitHub {
     owner = "chainguard-dev";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Dzw49SCdZUtSZoh0I7d1qfqg4JCbl4VEtYUeHIw8Xng=";
+    hash = "sha256-/oQDtUL3gjm4BsUbx7p3AmM7hcrd8Ui5Dih0DFAl5rs=";
     # 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-YzKkmz/4KxP/pcdMrhhS7Owu6Nor8VZ3RFqdCsi7pRc=";
+  vendorHash = "sha256-qQm/a7pE7mwqvYFFUceqElV+Qg1G39/z048wxYrV7E4=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/development/tools/metal-cli/default.nix b/pkgs/development/tools/metal-cli/default.nix
index 5aa1c2e5698d..62bc61a98a25 100644
--- a/pkgs/development/tools/metal-cli/default.nix
+++ b/pkgs/development/tools/metal-cli/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "metal-cli";
-  version = "0.19.0";
+  version = "0.20.0";
 
   src = fetchFromGitHub {
     owner = "equinix";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-S3/VKK+ab6RMuhqP1RRQK7ATcZn37Nws3ya3v9ujZ5M=";
+    hash = "sha256-Y6zjEB7LKEb1CGQwNs8jAx1BFSw+EGwgXBMGyQUJhYc=";
   };
 
-  vendorHash = "sha256-tu3AryadBbvQzYCEefGAWOnpEki3VJVxFZAseHrXhD4=";
+  vendorHash = "sha256-FJ68j41Nb6KqiZPJE/u0TYDkXt43810Nx0p/JQDopn8=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/development/tools/micronaut/default.nix b/pkgs/development/tools/micronaut/default.nix
index 92db12ce89ac..8c0ed2e4bfd5 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.2.3";
+  version = "4.2.4";
 
   src = fetchzip {
     url = "https://github.com/micronaut-projects/micronaut-starter/releases/download/v${version}/micronaut-cli-${version}.zip";
-    sha256 = "sha256-+03wjNxIZr8vhvK3zfvFBwXC5WmEs5A6mydGXsmGuCI=";
+    sha256 = "sha256-Jhy1q+6VdLPScq882QU8dIUNNKs1i+3Mug5ycUWFp9U=";
   };
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
diff --git a/pkgs/development/tools/minizinc/ide.nix b/pkgs/development/tools/minizinc/ide.nix
index bacd769271e4..ce115971f944 100644
--- a/pkgs/development/tools/minizinc/ide.nix
+++ b/pkgs/development/tools/minizinc/ide.nix
@@ -1,26 +1,34 @@
-{ lib, mkDerivation, fetchFromGitHub, qtbase, qtwebengine, qtwebkit, qmake, minizinc }:
+{ lib, stdenv, fetchFromGitHub, qtbase, qmake, qtwebsockets, minizinc, makeWrapper, Cocoa }:
 
-mkDerivation rec {
+let
+  executableLoc = if stdenv.isDarwin then "$out/Applications/MiniZincIDE.app/Contents/MacOS/MiniZincIDE" else "$out/bin/MiniZincIDE";
+in
+stdenv.mkDerivation rec {
   pname = "minizinc-ide";
-  version = "2.5.5";
+  version = "2.8.2";
 
   src = fetchFromGitHub {
     owner = "MiniZinc";
     repo = "MiniZincIDE";
     rev = version;
-    sha256 = "sha256-0U3KFRDam8psbCaEOcrwqzICAy1oBgo8SFEiR/PMqZk=";
+    hash = "sha256-3L/hulNI7e2wE9gMt2h3mS0ubHZ4kcVpwALCmWQtv7A=";
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [ qmake ];
-  buildInputs = [ qtbase qtwebengine qtwebkit ];
+  nativeBuildInputs = [ qmake makeWrapper ];
+  buildInputs = [ qtbase qtwebsockets ] ++ lib.optionals stdenv.isDarwin [ Cocoa ];
 
   sourceRoot = "${src.name}/MiniZincIDE";
 
   dontWrapQtApps = true;
 
-  postInstall = ''
-    wrapProgram $out/bin/MiniZincIDE --prefix PATH ":" ${lib.makeBinPath [ minizinc ]}
+  postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
+    mkdir -p $out/Applications
+    mv $out/bin/MiniZincIDE.app $out/Applications/
+  '' + ''
+    wrapProgram ${executableLoc} \
+      --prefix PATH ":" ${lib.makeBinPath [ minizinc ]} \
+      --set QT_QPA_PLATFORM_PLUGIN_PATH "${qtbase}/lib/qt-6/plugins/platforms"
   '';
 
   meta = with lib; {
@@ -34,7 +42,7 @@ mkDerivation rec {
       It is a subset of the higher-level language Zinc.
     '';
     license = licenses.mpl20;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = [ maintainers.dtzWill ];
   };
 }
diff --git a/pkgs/development/tools/misc/act/default.nix b/pkgs/development/tools/misc/act/default.nix
index 5a22531dbcf5..c620ca1649f0 100644
--- a/pkgs/development/tools/misc/act/default.nix
+++ b/pkgs/development/tools/misc/act/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "act";
-  version = "0.2.57";
+  version = "0.2.59";
 
   src = fetchFromGitHub {
     owner = "nektos";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-lof3PWscGHQ9ZTF83wGyG0jMebYY2xec+HouQezr2d8=";
+    hash = "sha256-Y8g+eVZ0c0YPVL8E/JAqD6EheQX6sBHpw1tT88BkbtI=";
   };
 
-  vendorHash = "sha256-7nvUs1R2jybh+PR/cHml8lR5jU25b2liPKLH47WDVxQ=";
+  vendorHash = "sha256-0Sjj9+YJcIkigvJOXxtDVcUylZmVY/Xv/IYpEBN46Is=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/misc/autoconf/2.71.nix b/pkgs/development/tools/misc/autoconf/2.71.nix
new file mode 100644
index 000000000000..1fcb819bd4b7
--- /dev/null
+++ b/pkgs/development/tools/misc/autoconf/2.71.nix
@@ -0,0 +1,69 @@
+{ lib, stdenv, fetchurl, m4, perl, texinfo }:
+
+# Note: this package is used for bootstrapping fetchurl, and thus
+# cannot use fetchpatch! All mutable patches (generated by GitHub or
+# cgit) that are needed here should be included directly in Nixpkgs as
+# files.
+
+stdenv.mkDerivation rec {
+  pname = "autoconf";
+  version = "2.71";
+  outputs = [ "out" "doc" ];
+
+  src = fetchurl {
+    url = "mirror://gnu/autoconf/autoconf-${version}.tar.xz";
+    sha256 = "197sl23irn6s9pd54rxj5vcp5y8dv65jb9yfqgr2g56cxg7q6k7i";
+  };
+  patches = [
+    # fix stale autom4te cache race condition:
+    #  https://savannah.gnu.org/support/index.php?110521
+    ./2.71-fix-race.patch
+  ];
+
+  strictDeps = true;
+  nativeBuildInputs = [ m4 perl texinfo ];
+  buildInputs = [ m4 ];
+  postBuild = "
+    make html
+  ";
+
+  postInstall = "
+    make install-html
+  ";
+
+  # Work around a known issue in Cygwin.  See
+  # http://thread.gmane.org/gmane.comp.sysutils.autoconf.bugs/6822 for
+  # details.
+  # There are many test failures on `i386-pc-solaris2.11'.
+  doCheck = ((!stdenv.isCygwin) && (!stdenv.isSunOS));
+
+  # Don't fixup "#! /bin/sh" in Autoconf, otherwise it will use the
+  # "fixed" path in generated files!
+  dontPatchShebangs = true;
+
+  enableParallelBuilding = true;
+
+  # Make the Autotest test suite run in parallel.
+  preCheck =''
+    export TESTSUITEFLAGS="-j$NIX_BUILD_CORES"
+  '';
+
+  meta = {
+    homepage = "https://www.gnu.org/software/autoconf/";
+    description = "Part of the GNU Build System";
+
+    longDescription = ''
+      GNU Autoconf is an extensible package of M4 macros that produce
+      shell scripts to automatically configure software source code
+      packages.  These scripts can adapt the packages to many kinds of
+      UNIX-like systems without manual user intervention.  Autoconf
+      creates a configuration script for a package from a template
+      file that lists the operating system features that the package
+      can use, in the form of M4 macro calls.
+    '';
+
+    license = lib.licenses.gpl3Plus;
+
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/tools/misc/autoconf/default.nix b/pkgs/development/tools/misc/autoconf/default.nix
index 1fcb819bd4b7..8039e36a4f20 100644
--- a/pkgs/development/tools/misc/autoconf/default.nix
+++ b/pkgs/development/tools/misc/autoconf/default.nix
@@ -7,18 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "autoconf";
-  version = "2.71";
+  version = "2.72";
   outputs = [ "out" "doc" ];
 
   src = fetchurl {
     url = "mirror://gnu/autoconf/autoconf-${version}.tar.xz";
-    sha256 = "197sl23irn6s9pd54rxj5vcp5y8dv65jb9yfqgr2g56cxg7q6k7i";
+    hash = "sha256-uohcExlXjWyU1G6bDc60AUyq/iSQ5Deg28o/JwoiP1o=";
   };
-  patches = [
-    # fix stale autom4te cache race condition:
-    #  https://savannah.gnu.org/support/index.php?110521
-    ./2.71-fix-race.patch
-  ];
 
   strictDeps = true;
   nativeBuildInputs = [ m4 perl texinfo ];
diff --git a/pkgs/development/tools/misc/blackfire/default.nix b/pkgs/development/tools/misc/blackfire/default.nix
index 095727e5713e..a55f0d0edea9 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.24.2";
+  version = "2.25.0";
 
   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 = "8dcsXdisPlPx6glIw+cSTQ2UJ6hh9CfqmFj2kqZWkR8=";
+        sha256 = "F3OkFTHPO6zBOYu2umAQIPW7CQ+K+J2/mmL98H2xaCg=";
       };
       "i686-linux" = fetchurl {
         url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire/blackfire_${version}_i386.deb";
-        sha256 = "Kf4Cm9Zp9F4vKkOSqTf+zfTo9OlMd94HYbAy0cTjZ74=";
+        sha256 = "/rDH9dzSlqDSqkIHzDy/8rJQ+Ow9SAPn+/oRGP37lL8=";
       };
       "aarch64-linux" = fetchurl {
         url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire/blackfire_${version}_arm64.deb";
-        sha256 = "8ZKmONiFl5dKN4NsvY5bEmyHcn28KQCXl2lnv3giAU4=";
+        sha256 = "2fjRPrl9SYCS32lO4bFLam4IrigMjucVc/OVg4yrWsM=";
       };
       "aarch64-darwin" = fetchurl {
         url = "https://packages.blackfire.io/blackfire/${version}/blackfire-darwin_arm64.pkg.tar.gz";
-        sha256 = "zmbLDnQL2oJMEAclms1gNLOOAD68EsveEA0yzbDcFvM=";
+        sha256 = "GYjKOUDLCHPkI5k4nt2NB/R8IJhLP+4VNifEhRSsnu8=";
       };
       "x86_64-darwin" = fetchurl {
         url = "https://packages.blackfire.io/blackfire/${version}/blackfire-darwin_amd64.pkg.tar.gz";
-        sha256 = "1PejmLFwYXRetJ4WukQZ+m9HZuoxvUxU9h0EXlLHGOQ=";
+        sha256 = "/Uvwq3wxbIT0kqKJJfh9W55EguUoBdTQ426FI0XOD0o=";
       };
     };
 
diff --git a/pkgs/development/tools/misc/blackfire/php-probe.nix b/pkgs/development/tools/misc/blackfire/php-probe.nix
index 15c634357217..ca4bf4106dc1 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.6";
+  version = "1.92.8";
 
   hashes = {
     "x86_64-linux" = {
       system = "amd64";
       hash = {
-        "8.1" = "sha256-ygBgs6tGZyim69tCol+tTXV5Lt/JLuatmKAo9aomM1s=";
-        "8.2" = "sha256-TrT7H2Tbu4ZrfeCUjpqlTMw9DAxS62aLvzTbpAdsZOc=";
-        "8.3" = "sha256-AH/kYlpVjCwXxNa90Qe5XpzAdSyNn9jdeyYTLlXxfLI=";
+        "8.1" = "sha256-zN39X2hd++Z5cj9JN3Athiq9j12i7/Q5QCnohw8PVDk=";
+        "8.2" = "sha256-ZgzegspY+aXQDLfRvDBDm+FtY4VzM/OWJG0ZSr4OAag=";
+        "8.3" = "sha256-o0ARDtcn5m6z+Ll+QT1JOR1jH2wJNNz1URV9BePViTU=";
       };
     };
     "i686-linux" = {
       system = "i386";
       hash = {
-        "8.1" = "sha256-c1i6eq7l4LeUpuZCsYzS1N++IU4j0WydCxPokSJf6dI=";
-        "8.2" = "sha256-gWhyUQ3QP13klusSv7KWdHatnjy/4k17VvHJUCtqF1g=";
-        "8.3" = "sha256-kI3sVcI/bDVRMcjzPzlai1D2HvmBTXwQ3DF5zcp2GJk=";
+        "8.1" = "sha256-8Qr1H9lgf8FxBLPTbxueSqi1S5y3HC3kzRQupfQkTew=";
+        "8.2" = "sha256-exrpoA74Ikr3YWcUIB8ZTCkKnJ7YeK4yZ6oDfpcQ3Sg=";
+        "8.3" = "sha256-7JirGgtQj8+mtyhEJOiM480bQ+98tv59r4LbMX6/X9Q=";
       };
     };
     "aarch64-linux" = {
       system = "arm64";
       hash = {
-        "8.1" = "sha256-1QPKTNOsJTrx+Q0MigiMBDCC7X3YlSDB33gy8DU9KBg=";
-        "8.2" = "sha256-e3YUAOLWSmsiHczb44oRiOIafMSBWQaJY+m4OSUMzV8=";
-        "8.3" = "sha256-h0/ZEy6IkIpAfeL0Al7a+FpPeX2KMSd7zD1i1ew5rUk=";
+        "8.1" = "sha256-ubNi2WxOuZ10OZhVzroIjfpBxg1gC1s9Nddj+U4fx5M=";
+        "8.2" = "sha256-iUTCgJxmMtuNiT6+TqCqgKIVXF0THQgycxLiDUYdaeo=";
+        "8.3" = "sha256-EwVe/hlengd+87w9xpA+pWGu8iXQh5Ldr4tZVgGps2M=";
       };
     };
     "aarch64-darwin" = {
       system = "arm64";
       hash = {
-        "8.1" = "sha256-gLCPTTCfoBgp3GgKzVisfGlxQsYa+4x2WDwvhwcf1R8=";
-        "8.2" = "sha256-OtWUwkeLGfxkxjGSDMyv61UVoSwFo1puGjmwYOB51nI=";
-        "8.3" = "sha256-M3lz0TnTuJVgD32RS3ffcZsKVJdyx75AjSKFkkODiSE=";
+        "8.1" = "sha256-bSPOUxQpTIsC2pZ95kLvrWJVVUb1bf51ety26miyxy8=";
+        "8.2" = "sha256-lncGFHCENSoVMGvKgsE5yBhThsfZ2xdIVDoVgECDV+w=";
+        "8.3" = "sha256-6hVAlaN48OLrGEsoqBo+JdNV+NxWpmLwAdv9ymaWkHY=";
       };
     };
     "x86_64-darwin" = {
       system = "amd64";
       hash = {
-        "8.1" = "sha256-dVau4kieQsj4m97Sepw1jMRtf1VCUnvZEJjVsO+hFWs=";
-        "8.2" = "sha256-HRBVr4JTiZDRzIt6JfITD5N824Ivcag6DUyEhsc23co=";
-        "8.3" = "sha256-nRRG42/Yhsupln4j7nWlKvfQ067fwQ17un1yXplPf14=";
+        "8.1" = "sha256-aRLxX2FULffZHUNYyrpypLN+XINC+NTaRMIulh61M1o=";
+        "8.2" = "sha256-Ma9EgcoM4x3iK8ygcEte/Wtip+/Z4Prs2CvITxGoaLM=";
+        "8.3" = "sha256-6vPcc5ogaQs7Z/o4jMR0VX2r5Mq1vpxdf0hvMrQGxZE=";
       };
     };
   };
diff --git a/pkgs/development/tools/misc/circleci-cli/default.nix b/pkgs/development/tools/misc/circleci-cli/default.nix
index b4bc5fe48d6f..6e26a71ff38d 100644
--- a/pkgs/development/tools/misc/circleci-cli/default.nix
+++ b/pkgs/development/tools/misc/circleci-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "circleci-cli";
-  version = "0.1.29658";
+  version = "0.1.29936";
 
   src = fetchFromGitHub {
     owner = "CircleCI-Public";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-zubYAeVYddFC6J7kCjTlhNciy/X95yzEq2UyRWi2Jh8=";
+    sha256 = "sha256-PJy2kg727ZEsEbQzR5EE8SeYfM1ZqaIbS2FZxewn5J0=";
   };
 
   vendorHash = "sha256-mDpuoKOW2/PexZ/yJeQ2yzCjoKfD23J36pZ5BPDo/mg=";
diff --git a/pkgs/development/tools/misc/d-spy/default.nix b/pkgs/development/tools/misc/d-spy/default.nix
index 0c5ebe9afe6f..2d2ca20c0bc4 100644
--- a/pkgs/development/tools/misc/d-spy/default.nix
+++ b/pkgs/development/tools/misc/d-spy/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
   passthru = {
     updateScript = gnome.updateScript {
       packageName = "d-spy";
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/pkgs/development/tools/misc/dart-sass/default.nix b/pkgs/development/tools/misc/dart-sass/default.nix
index 14fef3a3306a..f4ca641267ff 100644
--- a/pkgs/development/tools/misc/dart-sass/default.nix
+++ b/pkgs/development/tools/misc/dart-sass/default.nix
@@ -10,22 +10,24 @@
 }:
 
 let
-  sass-language = fetchFromGitHub {
+  embedded-protocol-version = "2.4.0";
+
+  embedded-protocol = fetchFromGitHub {
     owner = "sass";
     repo = "sass";
-    rev = "refs/tags/embedded-protocol-2.3.0";
-    hash = "sha256-J2heASfIwj4lxjsRs/0zRHSaF2tij9bO7IgXp0u/eiI=";
+    rev = "refs/tags/embedded-protocol-${embedded-protocol-version}";
+    hash = "sha256-19YQTda5su2PI2vLzVRCn7fQoH5vEg3539gXEeLLvV8=";
   };
 in
 buildDartApplication rec {
   pname = "dart-sass";
-  version = "1.69.0";
+  version = "1.70.0";
 
   src = fetchFromGitHub {
     owner = "sass";
     repo = pname;
     rev = version;
-    hash = "sha256-kn3cwi1k2CkzbS+Q/JaYy8Nq3Ej0GyWifG1Bq5ZEVHA=";
+    hash = "sha256-JLVcoDAngP1y8EC4K6fIJdPu2Xm8LLAxUm8BTK5tSVk=";
   };
 
   pubspecLock = lib.importJSON ./pubspec.lock.json;
@@ -37,7 +39,7 @@ buildDartApplication rec {
 
   preConfigure = ''
     mkdir -p build
-    ln -s ${sass-language} build/language
+    ln -s ${embedded-protocol} build/language
     HOME="$TMPDIR" buf generate
   '';
 
@@ -51,31 +53,35 @@ buildDartApplication rec {
     maintainers = with maintainers; [ lelgenio ];
   };
 
-  passthru.tests = {
-    version = testers.testVersion {
-      package = dart-sass;
-      command = "dart-sass --version";
-    };
+  passthru = {
+    inherit embedded-protocol-version embedded-protocol;
+    updateScript = ./update.sh;
+    tests = {
+      version = testers.testVersion {
+        package = dart-sass;
+        command = "dart-sass --version";
+      };
 
-    simple = testers.testEqualContents {
-      assertion = "dart-sass compiles a basic scss file";
-      expected = writeText "expected" ''
-        body h1{color:#123}
-      '';
-      actual = runCommand "actual"
-        {
-          nativeBuildInputs = [ dart-sass ];
-          base = writeText "base" ''
-            body {
-              $color: #123;
-              h1 {
-                color: $color;
+      simple = testers.testEqualContents {
+        assertion = "dart-sass compiles a basic scss file";
+        expected = writeText "expected" ''
+          body h1{color:#123}
+        '';
+        actual = runCommand "actual"
+          {
+            nativeBuildInputs = [ dart-sass ];
+            base = writeText "base" ''
+              body {
+                $color: #123;
+                h1 {
+                  color: $color;
+                }
               }
-            }
-          '';
-        } ''
-        dart-sass --style=compressed $base > $out
-      '';
+            '';
+          } ''
+          dart-sass --style=compressed $base > $out
+        '';
+      };
     };
   };
 }
diff --git a/pkgs/development/tools/misc/dart-sass/pubspec.lock.json b/pkgs/development/tools/misc/dart-sass/pubspec.lock.json
index 9654b26e6d52..820f44ac9f31 100644
--- a/pkgs/development/tools/misc/dart-sass/pubspec.lock.json
+++ b/pkgs/development/tools/misc/dart-sass/pubspec.lock.json
@@ -4,31 +4,31 @@
       "dependency": "transitive",
       "description": {
         "name": "_fe_analyzer_shared",
-        "sha256": "ae92f5d747aee634b87f89d9946000c2de774be1d6ac3e58268224348cd0101a",
+        "sha256": "36a321c3d2cbe01cbcb3540a87b8843846e0206df3e691fa7b23e19e78de6d49",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "61.0.0"
+      "version": "65.0.0"
     },
     "analyzer": {
       "dependency": "direct dev",
       "description": {
         "name": "analyzer",
-        "sha256": "ea3d8652bda62982addfd92fdc2d0214e5f82e43325104990d4f4c4a2a313562",
+        "sha256": "dfe03b90ec022450e22513b5e5ca1f01c0c01de9c3fba2f7fd233cb57a6b9a07",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "5.13.0"
+      "version": "6.3.0"
     },
     "archive": {
       "dependency": "direct dev",
       "description": {
         "name": "archive",
-        "sha256": "e0902a06f0e00414e4e3438a084580161279f137aeb862274710f29ec10cf01e",
+        "sha256": "22600aa1e926be775fa5fe7e6894e7fb3df9efda8891c73f70fb3262399a432d",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.3.9"
+      "version": "3.4.10"
     },
     "args": {
       "dependency": "direct main",
@@ -84,11 +84,11 @@
       "dependency": "direct main",
       "description": {
         "name": "cli_pkg",
-        "sha256": "009e19944bbfb07c3b97f2f8c9941aa01ca70a7d3d0018e813303b4c3905c9b9",
+        "sha256": "7b088621eb3d486c17a4122389d8b3f36658450d5a405fa229166b1a71a7ce4a",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.5.0"
+      "version": "2.7.2"
     },
     "cli_repl": {
       "dependency": "direct main",
@@ -104,11 +104,11 @@
       "dependency": "direct dev",
       "description": {
         "name": "cli_util",
-        "sha256": "b8db3080e59b2503ca9e7922c3df2072cf13992354d5e944074ffa836fba43b7",
+        "sha256": "c05b7406fdabc7a49a3929d4af76bcaccbbffcbcdcf185b082e1ae07da323d19",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.4.0"
+      "version": "0.4.1"
     },
     "collection": {
       "dependency": "direct main",
@@ -134,11 +134,11 @@
       "dependency": "transitive",
       "description": {
         "name": "coverage",
-        "sha256": "2fb815080e44a09b85e0f2ca8a820b15053982b2e714b59267719e8a9ff17097",
+        "sha256": "8acabb8306b57a409bf4c83522065672ee13179297a6bb0cb9ead73948df7c76",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.6.3"
+      "version": "1.7.2"
     },
     "crypto": {
       "dependency": "direct dev",
@@ -164,21 +164,21 @@
       "dependency": "direct dev",
       "description": {
         "name": "dart_style",
-        "sha256": "1efa911ca7086affd35f463ca2fc1799584fb6aa89883cf0af8e3664d6a02d55",
+        "sha256": "40ae61a5d43feea6d24bd22c0537a6629db858963b99b4bc1c3db80676f32368",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.3.2"
+      "version": "2.3.4"
     },
     "dartdoc": {
       "dependency": "direct dev",
       "description": {
         "name": "dartdoc",
-        "sha256": "d9bab893c9f42615f62bf2d3ff2b89d5905952d1d42cc7890003537249cb472e",
+        "sha256": "cbc4520cf486395741209693c3e7ef70653b1879b5a73e010815bf50431d330c",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "6.3.0"
+      "version": "8.0.3"
     },
     "ffi": {
       "dependency": "transitive",
@@ -234,11 +234,11 @@
       "dependency": "direct dev",
       "description": {
         "name": "grinder",
-        "sha256": "48495acdb3df702c55c952c6536faf11631b8401a292eb0d182ef332fc568b56",
+        "sha256": "e1996e485d2b56bb164a8585679758d488fbf567273f51c432c8733fee1f6188",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.9.4"
+      "version": "0.9.5"
     },
     "html": {
       "dependency": "transitive",
@@ -314,11 +314,11 @@
       "dependency": "direct dev",
       "description": {
         "name": "lints",
-        "sha256": "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452",
+        "sha256": "cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.1.1"
+      "version": "3.0.0"
     },
     "logging": {
       "dependency": "transitive",
@@ -334,31 +334,31 @@
       "dependency": "transitive",
       "description": {
         "name": "markdown",
-        "sha256": "acf35edccc0463a9d7384e437c015a3535772e09714cf60e07eeef3a15870dcd",
+        "sha256": "1b134d9f8ff2da15cb298efe6cd8b7d2a78958c1b00384ebcbdf13fe340a6c90",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "7.1.1"
+      "version": "7.2.1"
     },
     "matcher": {
       "dependency": "transitive",
       "description": {
         "name": "matcher",
-        "sha256": "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e",
+        "sha256": "d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.12.16"
+      "version": "0.12.16+1"
     },
     "meta": {
       "dependency": "direct main",
       "description": {
         "name": "meta",
-        "sha256": "a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e",
+        "sha256": "d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.10.0"
+      "version": "1.11.0"
     },
     "mime": {
       "dependency": "transitive",
@@ -424,11 +424,11 @@
       "dependency": "direct main",
       "description": {
         "name": "path",
-        "sha256": "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917",
+        "sha256": "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.8.3"
+      "version": "1.9.0"
     },
     "petitparser": {
       "dependency": "transitive",
@@ -444,11 +444,11 @@
       "dependency": "transitive",
       "description": {
         "name": "pointycastle",
-        "sha256": "7c1e5f0d23c9016c5bbd8b1473d0d3fb3fc851b876046039509e18e0c7485f2c",
+        "sha256": "43ac87de6e10afabc85c445745a7b799e04de84cebaa4fd7bf55a5e1e9604d29",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.7.3"
+      "version": "3.7.4"
     },
     "pool": {
       "dependency": "direct main",
@@ -474,11 +474,11 @@
       "dependency": "direct dev",
       "description": {
         "name": "protoc_plugin",
-        "sha256": "a800528e47f6efd31a57213dd11b6036f36cbd6677785742a2121e96f7c7a2b9",
+        "sha256": "fb0554851c9eca30bd18405fbbfe81e39166d4a2f0e5b770606fd69da3da0b2f",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "21.1.1"
+      "version": "21.1.2"
     },
     "pub_api_client": {
       "dependency": "direct dev",
@@ -664,31 +664,31 @@
       "dependency": "direct dev",
       "description": {
         "name": "test",
-        "sha256": "9b0dd8e36af4a5b1569029949d50a52cb2a2a2fdaa20cebb96e6603b9ae241f9",
+        "sha256": "694c108e13c6b35b15fcb0f8f03eddf8373f93b044c9497b5e81ce09f7381bda",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.24.6"
+      "version": "1.25.1"
     },
     "test_api": {
       "dependency": "transitive",
       "description": {
         "name": "test_api",
-        "sha256": "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b",
+        "sha256": "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.6.1"
+      "version": "0.7.0"
     },
     "test_core": {
       "dependency": "transitive",
       "description": {
         "name": "test_core",
-        "sha256": "4bef837e56375537055fdbbbf6dd458b1859881f4c7e6da936158f77d61ab265",
+        "sha256": "2bc4b4ecddd75309300d8096f781c0e3280ca1ef85beda558d33fcbedc2eead4",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.5.6"
+      "version": "0.6.0"
     },
     "test_descriptor": {
       "dependency": "direct dev",
@@ -734,11 +734,11 @@
       "dependency": "transitive",
       "description": {
         "name": "vm_service",
-        "sha256": "c538be99af830f478718b51630ec1b6bee5e74e52c8a802d328d9e71d35d2583",
+        "sha256": "a2662fb1f114f4296cf3f5a50786a2d888268d7776cf681aa17d660ffa23b246",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "11.10.0"
+      "version": "14.0.0"
     },
     "watcher": {
       "dependency": "direct main",
@@ -792,6 +792,6 @@
     }
   },
   "sdks": {
-    "dart": ">=3.0.0 <4.0.0"
+    "dart": ">=3.1.0 <4.0.0"
   }
 }
diff --git a/pkgs/development/tools/misc/dart-sass/update.sh b/pkgs/development/tools/misc/dart-sass/update.sh
new file mode 100755
index 000000000000..595349e1387c
--- /dev/null
+++ b/pkgs/development/tools/misc/dart-sass/update.sh
@@ -0,0 +1,45 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p yq ripgrep common-updater-scripts dart
+
+set -xeu -o pipefail
+
+PACKAGE_DIR="$(realpath "$(dirname "$0")")"
+cd "$PACKAGE_DIR/.."
+while ! test -f default.nix; do cd .. ; done
+NIXPKGS_DIR="$PWD"
+
+dart_sass_version="$(
+  list-git-tags --url=https://github.com/sass/dart-sass \
+  | rg '^\d' \
+  | sort --version-sort \
+  | tail -n1
+)"
+
+embedded_protocol_version="$(
+  list-git-tags --url=https://github.com/sass/sass \
+  | rg '^embedded-protocol-(.*)' -r '$1' \
+  | sort --version-sort \
+  | tail -n1
+)"
+
+cd "$NIXPKGS_DIR"
+update-source-version dart-sass "$dart_sass_version"
+update-source-version dart-sass "$embedded_protocol_version" \
+  --version-key=embedded-protocol-version \
+  --source-key=embedded-protocol
+
+TMPDIR="$(mktemp -d)"
+cd "$TMPDIR"
+
+src="$(nix-build --no-link "$NIXPKGS_DIR" -A dart-sass.src)"
+cp $src/pubspec.* .
+
+# Maybe one day upstream will ship a pubspec.lock,
+# until then we must generate a fresh one
+if ! test -f pubspec.lock; then
+  dart pub update
+fi
+
+yq . pubspec.lock > "$PACKAGE_DIR/pubspec.lock.json"
+
+rm -rf "$TMPDIR"
diff --git a/pkgs/development/tools/misc/devspace/default.nix b/pkgs/development/tools/misc/devspace/default.nix
index af538e31f4fd..198e15370bf8 100644
--- a/pkgs/development/tools/misc/devspace/default.nix
+++ b/pkgs/development/tools/misc/devspace/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "devspace";
-  version = "6.3.8";
+  version = "6.3.10";
 
   src = fetchFromGitHub {
     owner = "devspace-sh";
     repo = "devspace";
     rev = "v${version}";
-    hash = "sha256-hB5foVVWVANX+Nmdl8layK5B08NQ11nIqt/d2du4bkQ=";
+    hash = "sha256-ExVetF5YP9gf5ifBsdPow7KA867+4iOxe/0OwZwctoc=";
   };
 
   vendorHash = null;
diff --git a/pkgs/development/tools/misc/edb/default.nix b/pkgs/development/tools/misc/edb/default.nix
index 2203863264f3..fdde4064698c 100644
--- a/pkgs/development/tools/misc/edb/default.nix
+++ b/pkgs/development/tools/misc/edb/default.nix
@@ -3,14 +3,14 @@
 
 mkDerivation rec {
   pname = "edb";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "eteran";
     repo = "edb-debugger";
-    rev = "1.3.0";
+    rev = version;
     fetchSubmodules = true;
-    sha256 = "fFUau8XnsRFjC83HEsqyhrwCCBOfDmV6oACf3txm7O8=";
+    hash = "sha256-1Q0eZS05L4sxzcPvEFdEaobO7JYHRu98Yf+n3ZnBi+E=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
@@ -26,12 +26,10 @@ mkDerivation rec {
     # The build script checks for the presence of .git to determine whether
     # submodules were fetched and will throw an error if it's not there.
     # Avoid using leaveDotGit in the fetchFromGitHub options as it is non-deterministic.
-    mkdir -p src/qhexview/.git
+    mkdir -p src/qhexview/.git lib/gdtoa-desktop/.git
 
     # Change default optional terminal program path to one that is more likely to work on NixOS.
     substituteInPlace ./src/Configuration.cpp --replace "/usr/bin/xterm" "xterm";
-
-    sed '1i#include <memory>' -i include/{RegisterViewModelBase,State,IState}.h # gcc12
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/tools/misc/editorconfig-checker/default.nix b/pkgs/development/tools/misc/editorconfig-checker/default.nix
index 57e7e79dfd3d..699f6c91978c 100644
--- a/pkgs/development/tools/misc/editorconfig-checker/default.nix
+++ b/pkgs/development/tools/misc/editorconfig-checker/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "editorconfig-checker";
-  version = "2.7.2";
+  version = "2.8.0";
 
   src = fetchFromGitHub {
     owner = "editorconfig-checker";
     repo = "editorconfig-checker";
     rev = version;
-    hash = "sha256-ktZeBj5feJMf4XR4hybKdNrNCIrQD6KPetZffAZjwqI=";
+    hash = "sha256-CVstdtFPt/OlvJE27O+CqqDpUqp9bQl18IGyf8nputM=";
   };
 
-  vendorHash = "sha256-dhvRZ+AYSmSzHsf3yOYBSvZbw7dfwQiILu+VSUX8N3s=";
+  vendorHash = "sha256-t2h9jtGfips+cpN1ckVhVgpg4egIYVXd89ahyDzV060=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/misc/fzf-make/default.nix b/pkgs/development/tools/misc/fzf-make/default.nix
index 433ec1073ae7..ec59149f5260 100644
--- a/pkgs/development/tools/misc/fzf-make/default.nix
+++ b/pkgs/development/tools/misc/fzf-make/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fzf-make";
-  version = "0.18.0";
+  version = "0.22.0";
 
   src = fetchFromGitHub {
     owner = "kyu08";
     repo = "fzf-make";
     rev = "v${version}";
-    hash = "sha256-6ijvj37BFPlFxd2SSe+X8hbYBGgex9IlpIhh1eQZUtM=";
+    hash = "sha256-MeJRXvMshhnNWNkEtOfxKMLLqoLjOREuDGcRHTnOxS8=";
   };
 
-  cargoHash = "sha256-d2O4H9gKQIDH8jhBP36Ra/hOi7SDSoJRI28lJj/PG3U=";
+  cargoHash = "sha256-pHunUez3bsGwcSuQzx3DEDSKxx6UlUcuU35frEsc0+8=";
 
   nativeBuildInputs = [ makeBinaryWrapper ];
 
diff --git a/pkgs/development/tools/misc/gdbgui/default.nix b/pkgs/development/tools/misc/gdbgui/default.nix
index 523cd85efb6a..d42639892062 100644
--- a/pkgs/development/tools/misc/gdbgui/default.nix
+++ b/pkgs/development/tools/misc/gdbgui/default.nix
@@ -12,7 +12,7 @@
 buildPythonApplication rec {
   pname = "gdbgui";
 
-  version = "0.15.1.0";
+  version = "0.15.2.0";
 
   buildInputs = [ gdb ];
   propagatedBuildInputs = [
@@ -25,7 +25,7 @@ buildPythonApplication rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-YcD3om7N6yddm02It6/fjXDsVHG0Cs46fdGof0PMJXM=";
+    sha256 = "sha256-vmMlRmjFqhs3Vf+IU9IDtJzt4dZ0yIOmXIVOx5chZPA=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/tools/misc/hydra/unstable.nix b/pkgs/development/tools/misc/hydra/unstable.nix
index 0877b4991265..3d5d81452af3 100644
--- a/pkgs/development/tools/misc/hydra/unstable.nix
+++ b/pkgs/development/tools/misc/hydra/unstable.nix
@@ -43,7 +43,6 @@
 , cacert
 , glibcLocales
 , fetchFromGitHub
-, fetchpatch2
 , nixosTests
 }:
 
@@ -133,17 +132,6 @@ stdenv.mkDerivation rec {
     hash = "sha256-hIXRgu2MGqFYCALDKAiP+8lE859zftRe4OVIgGOTkvc=";
   };
 
-  patches = [
-    # hydra-eval-jobs: don't use restrict-eval for Flakes
-    # https://github.com/NixOS/hydra/pull/1257
-    # should be removed when https://github.com/NixOS/nix/pull/9547
-    # lands in the nix version used by hydra
-    (fetchpatch2 {
-      url = "https://github.com/NixOS/hydra/commit/9370b0ef977bff7e84ac07a81a0e31e75989276b.patch";
-      hash = "sha256-BRenC0lpWPgzfx42MPJBQ9VBamh5hZXuuVe6TXYKkdE=";
-    })
-  ];
-
   buildInputs = [
     unzip
     libpqxx
diff --git a/pkgs/development/tools/misc/kool/default.nix b/pkgs/development/tools/misc/kool/default.nix
index 5b326beb1efc..f1d4b2b74654 100644
--- a/pkgs/development/tools/misc/kool/default.nix
+++ b/pkgs/development/tools/misc/kool/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "kool";
-  version = "2.2.0";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     owner = "kool-dev";
     repo = "kool";
     rev = version;
-    hash = "sha256-YVgUKA7bMcncZDYaxaN2kCbE3JUmM9aM3GoQkOXEWpA=";
+    hash = "sha256-+vdizU2/q2nrEanpRPy1scgfTYh/I7feW4jz8efelWY=";
   };
 
-  vendorHash = "sha256-zsrqppHl7Z8o+J1SzZnv1jOdPO04JaF1K38a//+uAxU=";
+  vendorHash = "sha256-PmS96KVhe9TDmtYBx2hROLCbGMQ0OY3MN405dUmxPzk=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/development/tools/misc/lttng-ust/default.nix b/pkgs/development/tools/misc/lttng-ust/default.nix
index 0c19b59c5c35..b1fb9c83e8d0 100644
--- a/pkgs/development/tools/misc/lttng-ust/default.nix
+++ b/pkgs/development/tools/misc/lttng-ust/default.nix
@@ -1,4 +1,4 @@
 import ./generic.nix {
-  version = "2.13.6";
-  sha256 = "sha256-5+BFlt1zrHqpnifNAA+UnbsP7VG9KQmfmwiiXB3wztU=";
+  version = "2.13.7";
+  sha256 = "sha256-X7TxfDB8jBt5xoVh6JvpVi0H50Jb9A5yjE1mdVNCpes=";
 }
diff --git a/pkgs/development/tools/misc/n98-magerun2/default.nix b/pkgs/development/tools/misc/n98-magerun2/default.nix
index 6aabcbffbb66..c04b3840a437 100644
--- a/pkgs/development/tools/misc/n98-magerun2/default.nix
+++ b/pkgs/development/tools/misc/n98-magerun2/default.nix
@@ -9,11 +9,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "n98-magerun2";
-  version = "7.2.0";
+  version = "7.3.1";
 
   src = fetchurl {
     url = "https://github.com/netz98/n98-magerun2/releases/download/${finalAttrs.version}/n98-magerun2.phar";
-    hash = "sha256-w+58TTyoS44Ouaz6KFIJLhSl/UeF1I7cSznlZH6fLXw=";
+    hash = "sha256-5G3sfyw8C3BwRqnK2o3upJTI/pENyaFCiMC4XGOkJT4=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/development/tools/misc/opengrok/default.nix b/pkgs/development/tools/misc/opengrok/default.nix
index 73f54dc24b8e..a2ade07c21c4 100644
--- a/pkgs/development/tools/misc/opengrok/default.nix
+++ b/pkgs/development/tools/misc/opengrok/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "opengrok";
-  version = "1.13.1";
+  version = "1.13.2";
 
   # binary distribution
   src = fetchurl {
     url = "https://github.com/oracle/opengrok/releases/download/${version}/${pname}-${version}.tar.gz";
-    hash = "sha256-3/BBLPoYX1/ft3MGiJD9OPtkB2PJM7bXkGRuXxTToXI=";
+    hash = "sha256-Er6f1KgMZ4e/o3TJkw6z96rxBGQ/KEc9gGI2W6m+b8U=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/misc/patchelf/0.13.nix b/pkgs/development/tools/misc/patchelf/0.13.nix
deleted file mode 100644
index 0111a4b065c4..000000000000
--- a/pkgs/development/tools/misc/patchelf/0.13.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ stdenv, fetchurl, patchelf }:
-
-# Note: this package is used for bootstrapping fetchurl, and thus
-# cannot use fetchpatch! All mutable patches (generated by GitHub or
-# cgit) that are needed here should be included directly in Nixpkgs as
-# files.
-
-stdenv.mkDerivation rec {
-  pname = "patchelf";
-  version = "0.13.1";
-
-  src = fetchurl {
-    url = "https://github.com/NixOS/${pname}/releases/download/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-OeiuzNdJXVTfCU0rSnwIAQ/3d3A2+q8k8o4Hd30VmOI=";
-  };
-
-  setupHook = [ ./setup-hook.sh ];
-
-  # fails 8 out of 24 tests, problems when loading libc.so.6
-  doCheck = stdenv.name == "stdenv-linux";
-
-  inherit (patchelf) meta;
-}
diff --git a/pkgs/development/tools/misc/reviewdog/default.nix b/pkgs/development/tools/misc/reviewdog/default.nix
index 42455639bb57..f3e6a8e8d67e 100644
--- a/pkgs/development/tools/misc/reviewdog/default.nix
+++ b/pkgs/development/tools/misc/reviewdog/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "reviewdog";
-  version = "0.16.0";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-aHxK1Wu6AHTYhhbW67e4Yb/uOArwsiZnW8qHXHFCu2w=";
+    hash = "sha256-zr98hzWU27d+HCKvzTch7FkpUOWkHvpuMIq2cfWNRHQ=";
   };
 
-  vendorHash = "sha256-htBy+ie1RjlWkr5z3BA9us5z5VxLtl4q1pyiESsyMFY=";
+  vendorHash = "sha256-S5SEM6EFXI2Vig8ze5kGOCIL5bLF6CMy/TKV+/3zAjI=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/misc/rsass/default.nix b/pkgs/development/tools/misc/rsass/default.nix
index da24ac06ca6d..1804c1301230 100644
--- a/pkgs/development/tools/misc/rsass/default.nix
+++ b/pkgs/development/tools/misc/rsass/default.nix
@@ -2,15 +2,15 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rsass";
-  version = "0.28.0";
+  version = "0.28.8";
 
   src = fetchCrate {
     pname = "rsass-cli";
     inherit version;
-    hash = "sha256-hBYZB/Jyzd89dylZn2tYdHr0IXCFgJi9TnvuoVqCR1A=";
+    hash = "sha256-eloTe7UHcPPmHEsGnfj3nIbZbBxSMFZdaSm5LpOh1S4=";
   };
 
-  cargoHash = "sha256-nVTYTjmHB/z5M5AyojbsuZNCa3JCiADWrgV5eb3bcUE=";
+  cargoHash = "sha256-57vqVKqwQOEB33cSzGiZwadTDi7EyBBRAS4X9Euwp5Q=";
 
   meta = with lib; {
     description = "Sass reimplemented in rust with nom";
diff --git a/pkgs/development/tools/misc/rsonpath/default.nix b/pkgs/development/tools/misc/rsonpath/default.nix
index 76d6e4d4291c..26b25b1b5d94 100644
--- a/pkgs/development/tools/misc/rsonpath/default.nix
+++ b/pkgs/development/tools/misc/rsonpath/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rsonpath";
-  version = "0.8.4";
+  version = "0.8.6";
 
   src = fetchFromGitHub {
     owner = "v0ldek";
     repo = "rsonpath";
     rev = "v${version}";
-    hash = "sha256-V7Ir1FGKjKYu/J2KSBaDwLdH/MHTS+aChHWcrVTu4dY=";
+    hash = "sha256-p1cbxEvnV5vR1fznNbglHfKa53DboIFJqEWAXBLoQ+s=";
   };
 
-  cargoHash = "sha256-eiYUlHA4vK/zhfULwekt3dRVx//u5mrQ6tRdQh0tmTc=";
+  cargoHash = "sha256-rVJbrHsbSF8ZF44gmCUFxlGGhloC/kLBT5vSJjglxHE=";
 
   cargoBuildFlags = [ "-p=rsonpath" ];
   cargoTestFlags = cargoBuildFlags;
diff --git a/pkgs/development/tools/misc/runme/default.nix b/pkgs/development/tools/misc/runme/default.nix
index 6e6914fbf156..c0f305a591e3 100644
--- a/pkgs/development/tools/misc/runme/default.nix
+++ b/pkgs/development/tools/misc/runme/default.nix
@@ -12,16 +12,16 @@
 
 buildGoModule rec {
   pname = "runme";
-  version = "2.0.7";
+  version = "2.2.2";
 
   src = fetchFromGitHub {
     owner = "stateful";
     repo = "runme";
     rev = "v${version}";
-    hash = "sha256-ip2td0PEMga7Egd/YEGdpoUV4tnNI27BUDPYynpFhhc=";
+    hash = "sha256-JEKfUrXCN2cvoVs2bScq1v/DfmqaUoew3PyGnNaTKN8=";
   };
 
-  vendorHash = "sha256-PLDsea/o067ifiX0RKFC7gDpORLVEQ0DV6sdBzzQCTs=";
+  vendorHash = "sha256-+g6vEgA+vbGzLnotmhk0gp1IcY3zpF71TdoB8d84W6A=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/development/tools/misc/sccache/default.nix b/pkgs/development/tools/misc/sccache/default.nix
index cd258f003cb7..5d19c21ee221 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.7.5";
+  version = "0.7.6";
   pname = "sccache";
 
   src = fetchFromGitHub {
     owner = "mozilla";
     repo = "sccache";
     rev = "v${version}";
-    sha256 = "sha256-rql5Nj/w7cNaO6UKK96vYYE2E19RIiCHYHTnbW+U4n8=";
+    sha256 = "sha256-dIUwooXphjXpFMZXpwQMSvXRvVt/y6J5X7oCrBBSvBM=";
   };
 
-  cargoHash = "sha256-VdI39DgQrUZhoawMqBC6ngTvldW+QbDjMjxjjbH9G1A=";
+  cargoHash = "sha256-GDODIAyTIZUHw2tUEQfNnnPH2S9pFHIjYEZLpM5E52A=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/development/tools/misc/scip/default.nix b/pkgs/development/tools/misc/scip/default.nix
index d960292641fe..176ddccbe34e 100644
--- a/pkgs/development/tools/misc/scip/default.nix
+++ b/pkgs/development/tools/misc/scip/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "scip";
-  version = "0.3.2";
+  version = "0.3.3";
 
   src = fetchFromGitHub {
     owner = "sourcegraph";
     repo = "scip";
     rev = "v${version}";
-    hash = "sha256-lZ3W2Z69P5QQN+PgF9+Apj/uEXWaTS+5QOg17m1mGPU=";
+    hash = "sha256-aSApi6fEKQP5bpuda2Zz6i/5xkyH+mxch803toJsZm8=";
   };
 
   vendorHash = "sha256-3Tq2cexcxHjaH6WIz2hneE1QeBSGoMINBncKbqxODxQ=";
diff --git a/pkgs/development/tools/misc/slint-lsp/default.nix b/pkgs/development/tools/misc/slint-lsp/default.nix
index ac26ead01cff..3fa33bbcb8da 100644
--- a/pkgs/development/tools/misc/slint-lsp/default.nix
+++ b/pkgs/development/tools/misc/slint-lsp/default.nix
@@ -25,14 +25,14 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "slint-lsp";
-  version = "1.3.2";
+  version = "1.4.0";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-zNTel91c1ECg4z7xIu37GcSWHTxTKtxpGjH3TpiFQ1k=";
+    sha256 = "sha256-ZX8ylDDyOWwEcupNg7u0RvmsKMC4RZNaKPg04PaCo3w=";
   };
 
-  cargoHash = "sha256-pT3z6t1W/DitH/GJJIJhQawslodKzIkCyO0yd9OlvAg=";
+  cargoHash = "sha256-BxiN2/PItU29H8btX5bjwfd9C6p8AEvxJunM8lMu3SI=";
 
   nativeBuildInputs = [ cmake pkg-config fontconfig ];
   buildInputs = rpathLibs ++ [ xorg.libxcb.dev ]
diff --git a/pkgs/development/tools/misc/strace/default.nix b/pkgs/development/tools/misc/strace/default.nix
index 591eaeaa1ae2..d851aa217b5f 100644
--- a/pkgs/development/tools/misc/strace/default.nix
+++ b/pkgs/development/tools/misc/strace/default.nix
@@ -1,12 +1,12 @@
-{ lib, stdenv, fetchurl, perl, libunwind, buildPackages, gitUpdater }:
+{ lib, stdenv, fetchurl, perl, libunwind, buildPackages, gitUpdater, elfutils }:
 
 stdenv.mkDerivation rec {
   pname = "strace";
-  version = "6.6";
+  version = "6.7";
 
   src = fetchurl {
     url = "https://strace.io/files/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-QhtBhsBrcFFj5k3IXycevc9nZgr4ZnKDFH1ehZ/IqWw=";
+    sha256 = "sha256-IJAgHho/8yhG9P5CHBFjsV9EC7OOMTVdCfgtOUmSKvc=";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   # On RISC-V platforms, LLVM's libunwind implementation is unsupported by strace.
   # The build will silently fall back and -k will not work on RISC-V.
-  buildInputs = [ libunwind ]; # support -k
+  buildInputs = [ libunwind elfutils ]; # support -k and -kk
 
   configureFlags = [ "--enable-mpers=check" ];
 
diff --git a/pkgs/development/tools/misc/terraform-ls/default.nix b/pkgs/development/tools/misc/terraform-ls/default.nix
index 39b36affaa1c..5887228e088f 100644
--- a/pkgs/development/tools/misc/terraform-ls/default.nix
+++ b/pkgs/development/tools/misc/terraform-ls/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "terraform-ls";
-  version = "0.32.5";
+  version = "0.32.6";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-ywqxme/dsMwREvgLa2iLaibYzXHqgXR4OO8V8UiSSjw=";
+    hash = "sha256-+1nmxjR1iVtQXjdsqXaYTh8kLGq9gqSDjt1drvR9KoY=";
   };
 
-  vendorHash = "sha256-+6yO4gQmMNzl/rMWWQnyhepEI5miSCyolOQxQXWqGng=";
+  vendorHash = "sha256-8taGEDJ+Qtw/4eOWYiWZmEbmCwqcFXYh3x/9wR3oBJ8=";
 
   ldflags = [ "-s" "-w" ];
 
diff --git a/pkgs/development/tools/misc/texlab/default.nix b/pkgs/development/tools/misc/texlab/default.nix
index 9e6b2bb850f7..4756be84a860 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.12.1";
+  version = "5.12.3";
 
   src = fetchFromGitHub {
     owner = "latex-lsp";
     repo = "texlab";
     rev = "refs/tags/v${version}";
-    hash = "sha256-/M6j33KNX4leLPJg6qLubejhjacXsd7NZ77wuGtdbw8=";
+    hash = "sha256-/QjaAzCPhXzsiRhnRRZcujmk1C9IONYlMfjp/a1iIDA=";
   };
 
-  cargoHash = "sha256-xslsj5mE7NOZYVwuxJ06hZAUWS3mhgzrl73P47mjkTY=";
+  cargoHash = "sha256-VDRLbhgQkPkeTpQxRsq8QEU53Zd4b5F0phoq2cAWIK8=";
 
   outputs = [ "out" ] ++ lib.optional (!isCross) "man";
 
diff --git a/pkgs/development/tools/misc/usbsdmux/default.nix b/pkgs/development/tools/misc/usbsdmux/default.nix
index 5fda623d819f..31d6566a4214 100644
--- a/pkgs/development/tools/misc/usbsdmux/default.nix
+++ b/pkgs/development/tools/misc/usbsdmux/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "usbsdmux";
-  version = "0.2.1";
+  version = "24.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-gCxwR5jxzkH22B6nxBwAd0HpwWMIj/zp5VROJ0IWq7c=";
+    sha256 = "sha256-OtGgToDGUr6pBu9+LS/DxaYw/9+Pd6jPhxVDAM22HB4=";
   };
 
   # usbsdmux is not meant to be used as an importable module and has no tests
diff --git a/pkgs/development/tools/misc/ycmd/default.nix b/pkgs/development/tools/misc/ycmd/default.nix
index aeca3c437ff4..ae741234a8e2 100644
--- a/pkgs/development/tools/misc/ycmd/default.nix
+++ b/pkgs/development/tools/misc/ycmd/default.nix
@@ -1,5 +1,4 @@
 { stdenv, lib, fetchFromGitHub, cmake, ninja, python
-, withGocode ? true, gocode
 , withGodef ? true, godef
 , withGotools? true, gotools
 , withTypescript ? true, typescript
@@ -63,10 +62,6 @@ stdenv.mkDerivation {
     mkdir -p $out/lib/ycmd/third_party
     cp -r third_party/* $out/lib/ycmd/third_party/
 
-  '' + lib.optionalString withGocode ''
-    TARGET=$out/lib/ycmd/third_party/gocode
-    mkdir -p $TARGET
-    ln -sf ${gocode}/bin/gocode $TARGET
   '' + lib.optionalString withGodef ''
     TARGET=$out/lib/ycmd/third_party/godef
     mkdir -p $TARGET
diff --git a/pkgs/development/tools/mix2nix/default.nix b/pkgs/development/tools/mix2nix/default.nix
index 694afbc81207..7c2d773884d9 100644
--- a/pkgs/development/tools/mix2nix/default.nix
+++ b/pkgs/development/tools/mix2nix/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mix2nix";
-  version = "0.1.8";
+  version = "0.1.9";
 
   src = fetchFromGitHub {
     owner = "ydlr";
     repo = "mix2nix";
     rev = version;
-    hash = "sha256-iWy5q6ERzg8hRZs+bFtR6drZ9yI8Qh1v+47q3q2fFTM=";
+    hash = "sha256-Wh3KFp1gNDOKOG/DZdftmgy/M+67ZGfdj6W3ETQpX/8=";
   };
 
   nativeBuildInputs = [ elixir ];
diff --git a/pkgs/development/tools/mongosh/package-lock.json b/pkgs/development/tools/mongosh/package-lock.json
index f4779128f3a0..4c59e94cee8e 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.1.1",
+  "version": "2.1.3",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "mongosh",
-      "version": "2.1.1",
+      "version": "2.1.3",
       "license": "Apache-2.0",
       "dependencies": {
-        "@mongosh/cli-repl": "2.1.1"
+        "@mongosh/cli-repl": "2.1.3"
       },
       "bin": {
         "mongosh": "bin/mongosh.js"
@@ -20,7 +20,7 @@
     },
     "node_modules/@ampproject/remapping": {
       "version": "2.2.1",
-      "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
+      "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.2.1.tgz",
       "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
       "dependencies": {
         "@jridgewell/gen-mapping": "^0.3.0",
@@ -32,7 +32,7 @@
     },
     "node_modules/@aws-crypto/crc32": {
       "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-3.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/@aws-crypto/crc32/-/crc32-3.0.0.tgz",
       "integrity": "sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==",
       "dependencies": {
         "@aws-crypto/util": "^3.0.0",
@@ -42,12 +42,12 @@
     },
     "node_modules/@aws-crypto/crc32/node_modules/tslib": {
       "version": "1.14.1",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz",
       "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
     },
     "node_modules/@aws-crypto/ie11-detection": {
       "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz",
       "integrity": "sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==",
       "dependencies": {
         "tslib": "^1.11.1"
@@ -55,12 +55,12 @@
     },
     "node_modules/@aws-crypto/ie11-detection/node_modules/tslib": {
       "version": "1.14.1",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz",
       "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
     },
     "node_modules/@aws-crypto/sha256-browser": {
       "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz",
       "integrity": "sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==",
       "dependencies": {
         "@aws-crypto/ie11-detection": "^3.0.0",
@@ -75,12 +75,12 @@
     },
     "node_modules/@aws-crypto/sha256-browser/node_modules/tslib": {
       "version": "1.14.1",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz",
       "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
     },
     "node_modules/@aws-crypto/sha256-js": {
       "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz",
       "integrity": "sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==",
       "dependencies": {
         "@aws-crypto/util": "^3.0.0",
@@ -90,12 +90,12 @@
     },
     "node_modules/@aws-crypto/sha256-js/node_modules/tslib": {
       "version": "1.14.1",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz",
       "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
     },
     "node_modules/@aws-crypto/supports-web-crypto": {
       "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz",
       "integrity": "sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==",
       "dependencies": {
         "tslib": "^1.11.1"
@@ -103,12 +103,12 @@
     },
     "node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib": {
       "version": "1.14.1",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz",
       "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
     },
     "node_modules/@aws-crypto/util": {
       "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-3.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/@aws-crypto/util/-/util-3.0.0.tgz",
       "integrity": "sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==",
       "dependencies": {
         "@aws-sdk/types": "^3.222.0",
@@ -118,52 +118,53 @@
     },
     "node_modules/@aws-crypto/util/node_modules/tslib": {
       "version": "1.14.1",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz",
       "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
     },
     "node_modules/@aws-sdk/client-cognito-identity": {
-      "version": "3.465.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.465.0.tgz",
-      "integrity": "sha512-Ku1034M9jjsXbLBS5DwQfcTwWwu2oxtmdbsxvEm4I7IUA/h1++hKPzZuJ6L9zo7I7GbA+WnCryviUdtbgCqTfA==",
+      "version": "3.504.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.504.0.tgz",
+      "integrity": "sha512-WsQY6CRDC9Y1rKjpsk187EHKES6nLmM9sD6iHAKZFLhi/DiYsy8SIafPFPEvluubYlheeLzgUB8Oxpj6Z69hlA==",
       "dependencies": {
         "@aws-crypto/sha256-browser": "3.0.0",
         "@aws-crypto/sha256-js": "3.0.0",
-        "@aws-sdk/client-sts": "3.465.0",
-        "@aws-sdk/core": "3.465.0",
-        "@aws-sdk/credential-provider-node": "3.465.0",
-        "@aws-sdk/middleware-host-header": "3.465.0",
-        "@aws-sdk/middleware-logger": "3.465.0",
-        "@aws-sdk/middleware-recursion-detection": "3.465.0",
-        "@aws-sdk/middleware-signing": "3.465.0",
-        "@aws-sdk/middleware-user-agent": "3.465.0",
-        "@aws-sdk/region-config-resolver": "3.465.0",
-        "@aws-sdk/types": "3.465.0",
-        "@aws-sdk/util-endpoints": "3.465.0",
-        "@aws-sdk/util-user-agent-browser": "3.465.0",
-        "@aws-sdk/util-user-agent-node": "3.465.0",
-        "@smithy/config-resolver": "^2.0.18",
-        "@smithy/fetch-http-handler": "^2.2.6",
-        "@smithy/hash-node": "^2.0.15",
-        "@smithy/invalid-dependency": "^2.0.13",
-        "@smithy/middleware-content-length": "^2.0.15",
-        "@smithy/middleware-endpoint": "^2.2.0",
-        "@smithy/middleware-retry": "^2.0.20",
-        "@smithy/middleware-serde": "^2.0.13",
-        "@smithy/middleware-stack": "^2.0.7",
-        "@smithy/node-config-provider": "^2.1.5",
-        "@smithy/node-http-handler": "^2.1.9",
-        "@smithy/protocol-http": "^3.0.9",
-        "@smithy/smithy-client": "^2.1.15",
-        "@smithy/types": "^2.5.0",
-        "@smithy/url-parser": "^2.0.13",
-        "@smithy/util-base64": "^2.0.1",
-        "@smithy/util-body-length-browser": "^2.0.0",
-        "@smithy/util-body-length-node": "^2.1.0",
-        "@smithy/util-defaults-mode-browser": "^2.0.19",
-        "@smithy/util-defaults-mode-node": "^2.0.25",
-        "@smithy/util-endpoints": "^1.0.4",
-        "@smithy/util-retry": "^2.0.6",
-        "@smithy/util-utf8": "^2.0.2",
+        "@aws-sdk/client-sts": "3.504.0",
+        "@aws-sdk/core": "3.496.0",
+        "@aws-sdk/credential-provider-node": "3.504.0",
+        "@aws-sdk/middleware-host-header": "3.502.0",
+        "@aws-sdk/middleware-logger": "3.502.0",
+        "@aws-sdk/middleware-recursion-detection": "3.502.0",
+        "@aws-sdk/middleware-signing": "3.502.0",
+        "@aws-sdk/middleware-user-agent": "3.502.0",
+        "@aws-sdk/region-config-resolver": "3.502.0",
+        "@aws-sdk/types": "3.502.0",
+        "@aws-sdk/util-endpoints": "3.502.0",
+        "@aws-sdk/util-user-agent-browser": "3.502.0",
+        "@aws-sdk/util-user-agent-node": "3.502.0",
+        "@smithy/config-resolver": "^2.1.1",
+        "@smithy/core": "^1.3.1",
+        "@smithy/fetch-http-handler": "^2.4.1",
+        "@smithy/hash-node": "^2.1.1",
+        "@smithy/invalid-dependency": "^2.1.1",
+        "@smithy/middleware-content-length": "^2.1.1",
+        "@smithy/middleware-endpoint": "^2.4.1",
+        "@smithy/middleware-retry": "^2.1.1",
+        "@smithy/middleware-serde": "^2.1.1",
+        "@smithy/middleware-stack": "^2.1.1",
+        "@smithy/node-config-provider": "^2.2.1",
+        "@smithy/node-http-handler": "^2.3.1",
+        "@smithy/protocol-http": "^3.1.1",
+        "@smithy/smithy-client": "^2.3.1",
+        "@smithy/types": "^2.9.1",
+        "@smithy/url-parser": "^2.1.1",
+        "@smithy/util-base64": "^2.1.1",
+        "@smithy/util-body-length-browser": "^2.1.1",
+        "@smithy/util-body-length-node": "^2.2.1",
+        "@smithy/util-defaults-mode-browser": "^2.1.1",
+        "@smithy/util-defaults-mode-node": "^2.1.1",
+        "@smithy/util-endpoints": "^1.1.1",
+        "@smithy/util-retry": "^2.1.1",
+        "@smithy/util-utf8": "^2.1.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -171,107 +172,166 @@
       }
     },
     "node_modules/@aws-sdk/client-sso": {
-      "version": "3.465.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.465.0.tgz",
-      "integrity": "sha512-JXDBa3Sl+LS0KEOs0PZoIjpNKEEGfeyFwdnRxi8Y1hMXNEKyJug1cI2Psqu2olpn4KeXwoP1BuITppZYdolOew==",
+      "version": "3.502.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-sso/-/client-sso-3.502.0.tgz",
+      "integrity": "sha512-OZAYal1+PQgUUtWiHhRayDtX0OD+XpXHKAhjYgEIPbyhQaCMp3/Bq1xDX151piWXvXqXLJHFKb8DUEqzwGO9QA==",
       "dependencies": {
         "@aws-crypto/sha256-browser": "3.0.0",
         "@aws-crypto/sha256-js": "3.0.0",
-        "@aws-sdk/core": "3.465.0",
-        "@aws-sdk/middleware-host-header": "3.465.0",
-        "@aws-sdk/middleware-logger": "3.465.0",
-        "@aws-sdk/middleware-recursion-detection": "3.465.0",
-        "@aws-sdk/middleware-user-agent": "3.465.0",
-        "@aws-sdk/region-config-resolver": "3.465.0",
-        "@aws-sdk/types": "3.465.0",
-        "@aws-sdk/util-endpoints": "3.465.0",
-        "@aws-sdk/util-user-agent-browser": "3.465.0",
-        "@aws-sdk/util-user-agent-node": "3.465.0",
-        "@smithy/config-resolver": "^2.0.18",
-        "@smithy/fetch-http-handler": "^2.2.6",
-        "@smithy/hash-node": "^2.0.15",
-        "@smithy/invalid-dependency": "^2.0.13",
-        "@smithy/middleware-content-length": "^2.0.15",
-        "@smithy/middleware-endpoint": "^2.2.0",
-        "@smithy/middleware-retry": "^2.0.20",
-        "@smithy/middleware-serde": "^2.0.13",
-        "@smithy/middleware-stack": "^2.0.7",
-        "@smithy/node-config-provider": "^2.1.5",
-        "@smithy/node-http-handler": "^2.1.9",
-        "@smithy/protocol-http": "^3.0.9",
-        "@smithy/smithy-client": "^2.1.15",
-        "@smithy/types": "^2.5.0",
-        "@smithy/url-parser": "^2.0.13",
-        "@smithy/util-base64": "^2.0.1",
-        "@smithy/util-body-length-browser": "^2.0.0",
-        "@smithy/util-body-length-node": "^2.1.0",
-        "@smithy/util-defaults-mode-browser": "^2.0.19",
-        "@smithy/util-defaults-mode-node": "^2.0.25",
-        "@smithy/util-endpoints": "^1.0.4",
-        "@smithy/util-retry": "^2.0.6",
-        "@smithy/util-utf8": "^2.0.2",
+        "@aws-sdk/core": "3.496.0",
+        "@aws-sdk/middleware-host-header": "3.502.0",
+        "@aws-sdk/middleware-logger": "3.502.0",
+        "@aws-sdk/middleware-recursion-detection": "3.502.0",
+        "@aws-sdk/middleware-user-agent": "3.502.0",
+        "@aws-sdk/region-config-resolver": "3.502.0",
+        "@aws-sdk/types": "3.502.0",
+        "@aws-sdk/util-endpoints": "3.502.0",
+        "@aws-sdk/util-user-agent-browser": "3.502.0",
+        "@aws-sdk/util-user-agent-node": "3.502.0",
+        "@smithy/config-resolver": "^2.1.1",
+        "@smithy/core": "^1.3.1",
+        "@smithy/fetch-http-handler": "^2.4.1",
+        "@smithy/hash-node": "^2.1.1",
+        "@smithy/invalid-dependency": "^2.1.1",
+        "@smithy/middleware-content-length": "^2.1.1",
+        "@smithy/middleware-endpoint": "^2.4.1",
+        "@smithy/middleware-retry": "^2.1.1",
+        "@smithy/middleware-serde": "^2.1.1",
+        "@smithy/middleware-stack": "^2.1.1",
+        "@smithy/node-config-provider": "^2.2.1",
+        "@smithy/node-http-handler": "^2.3.1",
+        "@smithy/protocol-http": "^3.1.1",
+        "@smithy/smithy-client": "^2.3.1",
+        "@smithy/types": "^2.9.1",
+        "@smithy/url-parser": "^2.1.1",
+        "@smithy/util-base64": "^2.1.1",
+        "@smithy/util-body-length-browser": "^2.1.1",
+        "@smithy/util-body-length-node": "^2.2.1",
+        "@smithy/util-defaults-mode-browser": "^2.1.1",
+        "@smithy/util-defaults-mode-node": "^2.1.1",
+        "@smithy/util-endpoints": "^1.1.1",
+        "@smithy/util-retry": "^2.1.1",
+        "@smithy/util-utf8": "^2.1.1",
         "tslib": "^2.5.0"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
+    "node_modules/@aws-sdk/client-sso-oidc": {
+      "version": "3.504.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.504.0.tgz",
+      "integrity": "sha512-ODA33/nm2srhV08EW0KZAP577UgV0qjyr7Xp2yEo8MXWL4ZqQZprk1c+QKBhjr4Djesrm0VPmSD/np0mtYP68A==",
+      "dependencies": {
+        "@aws-crypto/sha256-browser": "3.0.0",
+        "@aws-crypto/sha256-js": "3.0.0",
+        "@aws-sdk/client-sts": "3.504.0",
+        "@aws-sdk/core": "3.496.0",
+        "@aws-sdk/middleware-host-header": "3.502.0",
+        "@aws-sdk/middleware-logger": "3.502.0",
+        "@aws-sdk/middleware-recursion-detection": "3.502.0",
+        "@aws-sdk/middleware-signing": "3.502.0",
+        "@aws-sdk/middleware-user-agent": "3.502.0",
+        "@aws-sdk/region-config-resolver": "3.502.0",
+        "@aws-sdk/types": "3.502.0",
+        "@aws-sdk/util-endpoints": "3.502.0",
+        "@aws-sdk/util-user-agent-browser": "3.502.0",
+        "@aws-sdk/util-user-agent-node": "3.502.0",
+        "@smithy/config-resolver": "^2.1.1",
+        "@smithy/core": "^1.3.1",
+        "@smithy/fetch-http-handler": "^2.4.1",
+        "@smithy/hash-node": "^2.1.1",
+        "@smithy/invalid-dependency": "^2.1.1",
+        "@smithy/middleware-content-length": "^2.1.1",
+        "@smithy/middleware-endpoint": "^2.4.1",
+        "@smithy/middleware-retry": "^2.1.1",
+        "@smithy/middleware-serde": "^2.1.1",
+        "@smithy/middleware-stack": "^2.1.1",
+        "@smithy/node-config-provider": "^2.2.1",
+        "@smithy/node-http-handler": "^2.3.1",
+        "@smithy/protocol-http": "^3.1.1",
+        "@smithy/smithy-client": "^2.3.1",
+        "@smithy/types": "^2.9.1",
+        "@smithy/url-parser": "^2.1.1",
+        "@smithy/util-base64": "^2.1.1",
+        "@smithy/util-body-length-browser": "^2.1.1",
+        "@smithy/util-body-length-node": "^2.2.1",
+        "@smithy/util-defaults-mode-browser": "^2.1.1",
+        "@smithy/util-defaults-mode-node": "^2.1.1",
+        "@smithy/util-endpoints": "^1.1.1",
+        "@smithy/util-retry": "^2.1.1",
+        "@smithy/util-utf8": "^2.1.1",
+        "tslib": "^2.5.0"
+      },
+      "engines": {
+        "node": ">=14.0.0"
+      },
+      "peerDependencies": {
+        "@aws-sdk/credential-provider-node": "^3.504.0"
+      }
+    },
     "node_modules/@aws-sdk/client-sts": {
-      "version": "3.465.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.465.0.tgz",
-      "integrity": "sha512-rHi9ba6ssNbVjlWSdhi4C5newEhGhzkY9UE4KB+/Tj21zXfEP8r6uIltnQXPtun2SdA95Krh/yS1qQ4MRuzqyA==",
+      "version": "3.504.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-sts/-/client-sts-3.504.0.tgz",
+      "integrity": "sha512-IESs8FkL7B/uY+ml4wgoRkrr6xYo4PizcNw6JX17eveq1gRBCPKeGMjE6HTDOcIYZZ8rqz/UeuH3JD4UhrMOnA==",
       "dependencies": {
         "@aws-crypto/sha256-browser": "3.0.0",
         "@aws-crypto/sha256-js": "3.0.0",
-        "@aws-sdk/core": "3.465.0",
-        "@aws-sdk/credential-provider-node": "3.465.0",
-        "@aws-sdk/middleware-host-header": "3.465.0",
-        "@aws-sdk/middleware-logger": "3.465.0",
-        "@aws-sdk/middleware-recursion-detection": "3.465.0",
-        "@aws-sdk/middleware-sdk-sts": "3.465.0",
-        "@aws-sdk/middleware-signing": "3.465.0",
-        "@aws-sdk/middleware-user-agent": "3.465.0",
-        "@aws-sdk/region-config-resolver": "3.465.0",
-        "@aws-sdk/types": "3.465.0",
-        "@aws-sdk/util-endpoints": "3.465.0",
-        "@aws-sdk/util-user-agent-browser": "3.465.0",
-        "@aws-sdk/util-user-agent-node": "3.465.0",
-        "@smithy/config-resolver": "^2.0.18",
-        "@smithy/fetch-http-handler": "^2.2.6",
-        "@smithy/hash-node": "^2.0.15",
-        "@smithy/invalid-dependency": "^2.0.13",
-        "@smithy/middleware-content-length": "^2.0.15",
-        "@smithy/middleware-endpoint": "^2.2.0",
-        "@smithy/middleware-retry": "^2.0.20",
-        "@smithy/middleware-serde": "^2.0.13",
-        "@smithy/middleware-stack": "^2.0.7",
-        "@smithy/node-config-provider": "^2.1.5",
-        "@smithy/node-http-handler": "^2.1.9",
-        "@smithy/protocol-http": "^3.0.9",
-        "@smithy/smithy-client": "^2.1.15",
-        "@smithy/types": "^2.5.0",
-        "@smithy/url-parser": "^2.0.13",
-        "@smithy/util-base64": "^2.0.1",
-        "@smithy/util-body-length-browser": "^2.0.0",
-        "@smithy/util-body-length-node": "^2.1.0",
-        "@smithy/util-defaults-mode-browser": "^2.0.19",
-        "@smithy/util-defaults-mode-node": "^2.0.25",
-        "@smithy/util-endpoints": "^1.0.4",
-        "@smithy/util-retry": "^2.0.6",
-        "@smithy/util-utf8": "^2.0.2",
+        "@aws-sdk/core": "3.496.0",
+        "@aws-sdk/middleware-host-header": "3.502.0",
+        "@aws-sdk/middleware-logger": "3.502.0",
+        "@aws-sdk/middleware-recursion-detection": "3.502.0",
+        "@aws-sdk/middleware-user-agent": "3.502.0",
+        "@aws-sdk/region-config-resolver": "3.502.0",
+        "@aws-sdk/types": "3.502.0",
+        "@aws-sdk/util-endpoints": "3.502.0",
+        "@aws-sdk/util-user-agent-browser": "3.502.0",
+        "@aws-sdk/util-user-agent-node": "3.502.0",
+        "@smithy/config-resolver": "^2.1.1",
+        "@smithy/core": "^1.3.1",
+        "@smithy/fetch-http-handler": "^2.4.1",
+        "@smithy/hash-node": "^2.1.1",
+        "@smithy/invalid-dependency": "^2.1.1",
+        "@smithy/middleware-content-length": "^2.1.1",
+        "@smithy/middleware-endpoint": "^2.4.1",
+        "@smithy/middleware-retry": "^2.1.1",
+        "@smithy/middleware-serde": "^2.1.1",
+        "@smithy/middleware-stack": "^2.1.1",
+        "@smithy/node-config-provider": "^2.2.1",
+        "@smithy/node-http-handler": "^2.3.1",
+        "@smithy/protocol-http": "^3.1.1",
+        "@smithy/smithy-client": "^2.3.1",
+        "@smithy/types": "^2.9.1",
+        "@smithy/url-parser": "^2.1.1",
+        "@smithy/util-base64": "^2.1.1",
+        "@smithy/util-body-length-browser": "^2.1.1",
+        "@smithy/util-body-length-node": "^2.2.1",
+        "@smithy/util-defaults-mode-browser": "^2.1.1",
+        "@smithy/util-defaults-mode-node": "^2.1.1",
+        "@smithy/util-endpoints": "^1.1.1",
+        "@smithy/util-middleware": "^2.1.1",
+        "@smithy/util-retry": "^2.1.1",
+        "@smithy/util-utf8": "^2.1.1",
         "fast-xml-parser": "4.2.5",
         "tslib": "^2.5.0"
       },
       "engines": {
         "node": ">=14.0.0"
+      },
+      "peerDependencies": {
+        "@aws-sdk/credential-provider-node": "^3.504.0"
       }
     },
     "node_modules/@aws-sdk/core": {
-      "version": "3.465.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.465.0.tgz",
-      "integrity": "sha512-fHSIw/Rgex3KbrEKn6ZrUc2VcsOTpdBMeyYtfmsTOLSyDDOG9k3jelOvVbCbrK5N6uEUSM8hrnySEKg94UB0cg==",
-      "dependencies": {
-        "@smithy/smithy-client": "^2.1.15",
+      "version": "3.496.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/core/-/core-3.496.0.tgz",
+      "integrity": "sha512-yT+ug7Cw/3eJi7x2es0+46x12+cIJm5Xv+GPWsrTFD1TKgqO/VPEgfDtHFagDNbFmjNQA65Ygc/kEdIX9ICX/A==",
+      "dependencies": {
+        "@smithy/core": "^1.3.1",
+        "@smithy/protocol-http": "^3.1.1",
+        "@smithy/signature-v4": "^2.1.1",
+        "@smithy/smithy-client": "^2.3.1",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -279,14 +339,14 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-cognito-identity": {
-      "version": "3.465.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.465.0.tgz",
-      "integrity": "sha512-bvZNgA2Cx54eTSZm2bXCUbz5rQjcNqTONuvjNIl1CFK9lEj3o3rRU1EqAwX6AIrT1OIstnDr1Z6llxjwvTLqiA==",
-      "dependencies": {
-        "@aws-sdk/client-cognito-identity": "3.465.0",
-        "@aws-sdk/types": "3.465.0",
-        "@smithy/property-provider": "^2.0.0",
-        "@smithy/types": "^2.5.0",
+      "version": "3.504.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.504.0.tgz",
+      "integrity": "sha512-QRmKLl4wM7Yd1HBzUdHIA+QhQxLROXptQjwMNL+KNfl5vMFYOUt0FMXwg80DRHl7qEScvZZEDovcswuuw5Uo2w==",
+      "dependencies": {
+        "@aws-sdk/client-cognito-identity": "3.504.0",
+        "@aws-sdk/types": "3.502.0",
+        "@smithy/property-provider": "^2.1.1",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -294,13 +354,13 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-env": {
-      "version": "3.465.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.465.0.tgz",
-      "integrity": "sha512-fku37AgkB9KhCuWHE6mfvbWYU0X84Df6MQ60nYH7s/PiNEhkX2cVI6X6kOKjP1MNIwRcYt+oQDvplVKdHume+A==",
+      "version": "3.502.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.502.0.tgz",
+      "integrity": "sha512-KIB8Ae1Z7domMU/jU4KiIgK4tmYgvuXlhR54ehwlVHxnEoFPoPuGHFZU7oFn79jhhSLUFQ1lRYMxP0cEwb7XeQ==",
       "dependencies": {
-        "@aws-sdk/types": "3.465.0",
-        "@smithy/property-provider": "^2.0.0",
-        "@smithy/types": "^2.5.0",
+        "@aws-sdk/types": "3.502.0",
+        "@smithy/property-provider": "^2.1.1",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -308,18 +368,18 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-http": {
-      "version": "3.465.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.465.0.tgz",
-      "integrity": "sha512-Rj/zFgP0i0tpuaO+sm1csGU7NLQa1F9eE9c3VKbYECiXAZwrGJnY1TdG2iSsLpkMtyfOhRrRvAuYAUCUemWg3g==",
-      "dependencies": {
-        "@aws-sdk/types": "3.465.0",
-        "@smithy/fetch-http-handler": "^2.2.6",
-        "@smithy/node-http-handler": "^2.1.9",
-        "@smithy/property-provider": "^2.0.0",
-        "@smithy/protocol-http": "^3.0.9",
-        "@smithy/smithy-client": "^2.1.15",
-        "@smithy/types": "^2.5.0",
-        "@smithy/util-stream": "^2.0.20",
+      "version": "3.503.1",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.503.1.tgz",
+      "integrity": "sha512-rTdlFFGoPPFMF2YjtlfRuSgKI+XsF49u7d98255hySwhsbwd3Xp+utTTPquxP+CwDxMHbDlI7NxDzFiFdsoZug==",
+      "dependencies": {
+        "@aws-sdk/types": "3.502.0",
+        "@smithy/fetch-http-handler": "^2.4.1",
+        "@smithy/node-http-handler": "^2.3.1",
+        "@smithy/property-provider": "^2.1.1",
+        "@smithy/protocol-http": "^3.1.1",
+        "@smithy/smithy-client": "^2.3.1",
+        "@smithy/types": "^2.9.1",
+        "@smithy/util-stream": "^2.1.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -327,19 +387,20 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-ini": {
-      "version": "3.465.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.465.0.tgz",
-      "integrity": "sha512-B1MFufvdToAEMtfszilVnKer2S7P/OfMhkCizq2zuu8aU/CquRyHvKEQgWdvqunUDrFnVTc0kUZgsbBY0uPjLg==",
-      "dependencies": {
-        "@aws-sdk/credential-provider-env": "3.465.0",
-        "@aws-sdk/credential-provider-process": "3.465.0",
-        "@aws-sdk/credential-provider-sso": "3.465.0",
-        "@aws-sdk/credential-provider-web-identity": "3.465.0",
-        "@aws-sdk/types": "3.465.0",
-        "@smithy/credential-provider-imds": "^2.0.0",
-        "@smithy/property-provider": "^2.0.0",
-        "@smithy/shared-ini-file-loader": "^2.0.6",
-        "@smithy/types": "^2.5.0",
+      "version": "3.504.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.504.0.tgz",
+      "integrity": "sha512-ODICLXfr8xTUd3wweprH32Ge41yuBa+u3j0JUcLdTUO1N9ldczSMdo8zOPlP0z4doqD3xbnqMkjNQWgN/Q+5oQ==",
+      "dependencies": {
+        "@aws-sdk/client-sts": "3.504.0",
+        "@aws-sdk/credential-provider-env": "3.502.0",
+        "@aws-sdk/credential-provider-process": "3.502.0",
+        "@aws-sdk/credential-provider-sso": "3.504.0",
+        "@aws-sdk/credential-provider-web-identity": "3.504.0",
+        "@aws-sdk/types": "3.502.0",
+        "@smithy/credential-provider-imds": "^2.2.1",
+        "@smithy/property-provider": "^2.1.1",
+        "@smithy/shared-ini-file-loader": "^2.3.1",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -347,20 +408,21 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-node": {
-      "version": "3.465.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.465.0.tgz",
-      "integrity": "sha512-R3VA9yJ0BvezvrDxcgPTv9VHbVPbzchLTrX5jLFSVuW/lPPYLUi/Cjtyg9C9Y7qRfoQS4fNMvSRhwO5/TF68gA==",
-      "dependencies": {
-        "@aws-sdk/credential-provider-env": "3.465.0",
-        "@aws-sdk/credential-provider-ini": "3.465.0",
-        "@aws-sdk/credential-provider-process": "3.465.0",
-        "@aws-sdk/credential-provider-sso": "3.465.0",
-        "@aws-sdk/credential-provider-web-identity": "3.465.0",
-        "@aws-sdk/types": "3.465.0",
-        "@smithy/credential-provider-imds": "^2.0.0",
-        "@smithy/property-provider": "^2.0.0",
-        "@smithy/shared-ini-file-loader": "^2.0.6",
-        "@smithy/types": "^2.5.0",
+      "version": "3.504.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.504.0.tgz",
+      "integrity": "sha512-6+V5hIh+tILmUjf2ZQWQINR3atxQVgH/bFrGdSR/sHSp/tEgw3m0xWL3IRslWU1e4/GtXrfg1iYnMknXy68Ikw==",
+      "dependencies": {
+        "@aws-sdk/credential-provider-env": "3.502.0",
+        "@aws-sdk/credential-provider-http": "3.503.1",
+        "@aws-sdk/credential-provider-ini": "3.504.0",
+        "@aws-sdk/credential-provider-process": "3.502.0",
+        "@aws-sdk/credential-provider-sso": "3.504.0",
+        "@aws-sdk/credential-provider-web-identity": "3.504.0",
+        "@aws-sdk/types": "3.502.0",
+        "@smithy/credential-provider-imds": "^2.2.1",
+        "@smithy/property-provider": "^2.1.1",
+        "@smithy/shared-ini-file-loader": "^2.3.1",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -368,14 +430,14 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-process": {
-      "version": "3.465.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.465.0.tgz",
-      "integrity": "sha512-YE6ZrRYwvb8969hWQnr4uvOJ8RU0JrNsk3vWTe/czly37ioZUEhi8jmpQp4f2mX/6U6buoFGWu5Se3VCdw2SFQ==",
-      "dependencies": {
-        "@aws-sdk/types": "3.465.0",
-        "@smithy/property-provider": "^2.0.0",
-        "@smithy/shared-ini-file-loader": "^2.0.6",
-        "@smithy/types": "^2.5.0",
+      "version": "3.502.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.502.0.tgz",
+      "integrity": "sha512-fJJowOjQ4infYQX0E1J3xFVlmuwEYJAFk0Mo1qwafWmEthsBJs+6BR2RiWDELHKrSK35u4Pf3fu3RkYuCtmQFw==",
+      "dependencies": {
+        "@aws-sdk/types": "3.502.0",
+        "@smithy/property-provider": "^2.1.1",
+        "@smithy/shared-ini-file-loader": "^2.3.1",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -383,16 +445,16 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-sso": {
-      "version": "3.465.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.465.0.tgz",
-      "integrity": "sha512-tLIP/4JQIJpn8yIg6RZRQ2nmvj5i4wLZvYvY4RtaFv2JrQUkmmTfyOZJuOBrIFRwJjx0fHmFu8DJjcOhMzllIQ==",
-      "dependencies": {
-        "@aws-sdk/client-sso": "3.465.0",
-        "@aws-sdk/token-providers": "3.465.0",
-        "@aws-sdk/types": "3.465.0",
-        "@smithy/property-provider": "^2.0.0",
-        "@smithy/shared-ini-file-loader": "^2.0.6",
-        "@smithy/types": "^2.5.0",
+      "version": "3.504.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.504.0.tgz",
+      "integrity": "sha512-4MgH2or2SjPzaxM08DCW+BjaX4DSsEGJlicHKmz6fh+w9JmLh750oXcTnbvgUeVz075jcs6qTKjvUcsdGM/t8Q==",
+      "dependencies": {
+        "@aws-sdk/client-sso": "3.502.0",
+        "@aws-sdk/token-providers": "3.504.0",
+        "@aws-sdk/types": "3.502.0",
+        "@smithy/property-provider": "^2.1.1",
+        "@smithy/shared-ini-file-loader": "^2.3.1",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -400,13 +462,14 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-web-identity": {
-      "version": "3.465.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.465.0.tgz",
-      "integrity": "sha512-B4Y75fMTZIniEU0yyqat+9NsQbYlXdqP5Y3bShkaG3pGLOHzF/xMlWuG+D3kkQ806PLYi+BgfVls4BcO+NyVcA==",
-      "dependencies": {
-        "@aws-sdk/types": "3.465.0",
-        "@smithy/property-provider": "^2.0.0",
-        "@smithy/types": "^2.5.0",
+      "version": "3.504.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.504.0.tgz",
+      "integrity": "sha512-L1ljCvGpIEFdJk087ijf2ohg7HBclOeB1UgBxUBBzf4iPRZTQzd2chGaKj0hm2VVaXz7nglswJeURH5PFcS5oA==",
+      "dependencies": {
+        "@aws-sdk/client-sts": "3.504.0",
+        "@aws-sdk/types": "3.502.0",
+        "@smithy/property-provider": "^2.1.1",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -414,25 +477,25 @@
       }
     },
     "node_modules/@aws-sdk/credential-providers": {
-      "version": "3.465.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.465.0.tgz",
-      "integrity": "sha512-mtndyew33Fnv30zVCQLBkqvUeFvjAlgAe3yM/10U//dxsOW3pfYWZ6sMzDbuXHLCyROQXJqZfnsQKQs0rOaO0Q==",
-      "dependencies": {
-        "@aws-sdk/client-cognito-identity": "3.465.0",
-        "@aws-sdk/client-sso": "3.465.0",
-        "@aws-sdk/client-sts": "3.465.0",
-        "@aws-sdk/credential-provider-cognito-identity": "3.465.0",
-        "@aws-sdk/credential-provider-env": "3.465.0",
-        "@aws-sdk/credential-provider-http": "3.465.0",
-        "@aws-sdk/credential-provider-ini": "3.465.0",
-        "@aws-sdk/credential-provider-node": "3.465.0",
-        "@aws-sdk/credential-provider-process": "3.465.0",
-        "@aws-sdk/credential-provider-sso": "3.465.0",
-        "@aws-sdk/credential-provider-web-identity": "3.465.0",
-        "@aws-sdk/types": "3.465.0",
-        "@smithy/credential-provider-imds": "^2.0.0",
-        "@smithy/property-provider": "^2.0.0",
-        "@smithy/types": "^2.5.0",
+      "version": "3.504.1",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-providers/-/credential-providers-3.504.1.tgz",
+      "integrity": "sha512-D/ef7ZVxJVXC1qe6ZMS0dOWM92LNHJRHn9Biz5eRqRvRhNL+Rq68ZULlc0TQTVY71Fcc5TJ8OwFhaboPUiqWXA==",
+      "dependencies": {
+        "@aws-sdk/client-cognito-identity": "3.504.0",
+        "@aws-sdk/client-sso": "3.502.0",
+        "@aws-sdk/client-sts": "3.504.0",
+        "@aws-sdk/credential-provider-cognito-identity": "3.504.0",
+        "@aws-sdk/credential-provider-env": "3.502.0",
+        "@aws-sdk/credential-provider-http": "3.503.1",
+        "@aws-sdk/credential-provider-ini": "3.504.0",
+        "@aws-sdk/credential-provider-node": "3.504.0",
+        "@aws-sdk/credential-provider-process": "3.502.0",
+        "@aws-sdk/credential-provider-sso": "3.504.0",
+        "@aws-sdk/credential-provider-web-identity": "3.504.0",
+        "@aws-sdk/types": "3.502.0",
+        "@smithy/credential-provider-imds": "^2.2.1",
+        "@smithy/property-provider": "^2.1.1",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -440,13 +503,13 @@
       }
     },
     "node_modules/@aws-sdk/middleware-host-header": {
-      "version": "3.465.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.465.0.tgz",
-      "integrity": "sha512-nnGva8eplwEJqdVzcb+xF2Fwua0PpiwxMEvpnIy73gNbetbJdgFIprryMLYes00xzJEqnew+LWdpcd3YyS34ZA==",
+      "version": "3.502.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.502.0.tgz",
+      "integrity": "sha512-EjnG0GTYXT/wJBmm5/mTjDcAkzU8L7wQjOzd3FTXuTCNNyvAvwrszbOj5FlarEw5XJBbQiZtBs+I5u9+zy560w==",
       "dependencies": {
-        "@aws-sdk/types": "3.465.0",
-        "@smithy/protocol-http": "^3.0.9",
-        "@smithy/types": "^2.5.0",
+        "@aws-sdk/types": "3.502.0",
+        "@smithy/protocol-http": "^3.1.1",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -454,12 +517,12 @@
       }
     },
     "node_modules/@aws-sdk/middleware-logger": {
-      "version": "3.465.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.465.0.tgz",
-      "integrity": "sha512-aGMx1aSlzDDgjZ7fSxLhGD5rkyCfHwq04TSB5fQAgDBqUjj4IQXZwmNglX0sLRmArXZtDglUVESOfKvTANJTPg==",
+      "version": "3.502.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-logger/-/middleware-logger-3.502.0.tgz",
+      "integrity": "sha512-FDyv6K4nCoHxbjLGS2H8ex8I0KDIiu4FJgVRPs140ZJy6gE5Pwxzv6YTzZGLMrnqcIs9gh065Lf6DjwMelZqaw==",
       "dependencies": {
-        "@aws-sdk/types": "3.465.0",
-        "@smithy/types": "^2.5.0",
+        "@aws-sdk/types": "3.502.0",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -467,27 +530,13 @@
       }
     },
     "node_modules/@aws-sdk/middleware-recursion-detection": {
-      "version": "3.465.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.465.0.tgz",
-      "integrity": "sha512-ol3dlsTnryBhV5qkUvK5Yg3dRaV1NXIxYJaIkShrl8XAv4wRNcDJDmO5NYq5eVZ3zgV1nv6xIpZ//dDnnf6Z+g==",
+      "version": "3.502.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.502.0.tgz",
+      "integrity": "sha512-hvbyGJbxeuezxOu8VfFmcV4ql1hKXLxHTe5FNYfEBat2KaZXVhc1Hg+4TvB06/53p+E8J99Afmumkqbxs2esUA==",
       "dependencies": {
-        "@aws-sdk/types": "3.465.0",
-        "@smithy/protocol-http": "^3.0.9",
-        "@smithy/types": "^2.5.0",
-        "tslib": "^2.5.0"
-      },
-      "engines": {
-        "node": ">=14.0.0"
-      }
-    },
-    "node_modules/@aws-sdk/middleware-sdk-sts": {
-      "version": "3.465.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.465.0.tgz",
-      "integrity": "sha512-PmTM5ycUe1RLAPrQXLCR8JzKamJuKDB0aIW4rx4/skurzWsEGRI47WHggf9N7sPie41IBGUhRbXcf7sfPjvI3Q==",
-      "dependencies": {
-        "@aws-sdk/middleware-signing": "3.465.0",
-        "@aws-sdk/types": "3.465.0",
-        "@smithy/types": "^2.5.0",
+        "@aws-sdk/types": "3.502.0",
+        "@smithy/protocol-http": "^3.1.1",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -495,16 +544,16 @@
       }
     },
     "node_modules/@aws-sdk/middleware-signing": {
-      "version": "3.465.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.465.0.tgz",
-      "integrity": "sha512-d90KONWXSC3jA0kqJ6u8ygS4LoMg1TmSM7bPhHyibJVAEhnrlB4Aq1CWljNbbtphGpdKy5/XRM9O0/XCXWKQ4w==",
-      "dependencies": {
-        "@aws-sdk/types": "3.465.0",
-        "@smithy/property-provider": "^2.0.0",
-        "@smithy/protocol-http": "^3.0.9",
-        "@smithy/signature-v4": "^2.0.0",
-        "@smithy/types": "^2.5.0",
-        "@smithy/util-middleware": "^2.0.6",
+      "version": "3.502.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-signing/-/middleware-signing-3.502.0.tgz",
+      "integrity": "sha512-4hF08vSzJ7L6sB+393gOFj3s2N6nLusYS0XrMW6wYNFU10IDdbf8Z3TZ7gysDJJHEGQPmTAesPEDBsasGWcMxg==",
+      "dependencies": {
+        "@aws-sdk/types": "3.502.0",
+        "@smithy/property-provider": "^2.1.1",
+        "@smithy/protocol-http": "^3.1.1",
+        "@smithy/signature-v4": "^2.1.1",
+        "@smithy/types": "^2.9.1",
+        "@smithy/util-middleware": "^2.1.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -512,14 +561,14 @@
       }
     },
     "node_modules/@aws-sdk/middleware-user-agent": {
-      "version": "3.465.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.465.0.tgz",
-      "integrity": "sha512-1MvIWMj2nktLOJN8Kh4jiTK28oL85fTeoXHZ+V8xYMzont6C6Y8gQPtg7ka+RotHwqWMrovfnANisnX8EzEP/Q==",
-      "dependencies": {
-        "@aws-sdk/types": "3.465.0",
-        "@aws-sdk/util-endpoints": "3.465.0",
-        "@smithy/protocol-http": "^3.0.9",
-        "@smithy/types": "^2.5.0",
+      "version": "3.502.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.502.0.tgz",
+      "integrity": "sha512-TxbBZbRiXPH0AUxegqiNd9aM9zNSbfjtBs5MEfcBsweeT/B2O7K1EjP9+CkB8Xmk/5FLKhAKLr19b1TNoE27rw==",
+      "dependencies": {
+        "@aws-sdk/types": "3.502.0",
+        "@aws-sdk/util-endpoints": "3.502.0",
+        "@smithy/protocol-http": "^3.1.1",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -527,14 +576,15 @@
       }
     },
     "node_modules/@aws-sdk/region-config-resolver": {
-      "version": "3.465.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.465.0.tgz",
-      "integrity": "sha512-h0Phd2Ae873dsPSWuxqxz2yRC5NMeeWxQiJPh4j42HF8g7dZK7tMQPkYznAoA/BzSBsEX87sbr3MmigquSyUTA==",
-      "dependencies": {
-        "@smithy/node-config-provider": "^2.1.5",
-        "@smithy/types": "^2.5.0",
-        "@smithy/util-config-provider": "^2.0.0",
-        "@smithy/util-middleware": "^2.0.6",
+      "version": "3.502.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.502.0.tgz",
+      "integrity": "sha512-mxmsX2AGgnSM+Sah7mcQCIneOsJQNiLX0COwEttuf8eO+6cLMAZvVudH3BnWTfea4/A9nuri9DLCqBvEmPrilg==",
+      "dependencies": {
+        "@aws-sdk/types": "3.502.0",
+        "@smithy/node-config-provider": "^2.2.1",
+        "@smithy/types": "^2.9.1",
+        "@smithy/util-config-provider": "^2.2.1",
+        "@smithy/util-middleware": "^2.1.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -542,46 +592,15 @@
       }
     },
     "node_modules/@aws-sdk/token-providers": {
-      "version": "3.465.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.465.0.tgz",
-      "integrity": "sha512-NaZbsyLs3whzRHGV27hrRwEdXB/tEK6tqn/aCNBy862LhVzocY1A+eYLKrnrvpraOOd2vyAuOtvvB3RMIdiL6g==",
-      "dependencies": {
-        "@aws-crypto/sha256-browser": "3.0.0",
-        "@aws-crypto/sha256-js": "3.0.0",
-        "@aws-sdk/middleware-host-header": "3.465.0",
-        "@aws-sdk/middleware-logger": "3.465.0",
-        "@aws-sdk/middleware-recursion-detection": "3.465.0",
-        "@aws-sdk/middleware-user-agent": "3.465.0",
-        "@aws-sdk/region-config-resolver": "3.465.0",
-        "@aws-sdk/types": "3.465.0",
-        "@aws-sdk/util-endpoints": "3.465.0",
-        "@aws-sdk/util-user-agent-browser": "3.465.0",
-        "@aws-sdk/util-user-agent-node": "3.465.0",
-        "@smithy/config-resolver": "^2.0.18",
-        "@smithy/fetch-http-handler": "^2.2.6",
-        "@smithy/hash-node": "^2.0.15",
-        "@smithy/invalid-dependency": "^2.0.13",
-        "@smithy/middleware-content-length": "^2.0.15",
-        "@smithy/middleware-endpoint": "^2.2.0",
-        "@smithy/middleware-retry": "^2.0.20",
-        "@smithy/middleware-serde": "^2.0.13",
-        "@smithy/middleware-stack": "^2.0.7",
-        "@smithy/node-config-provider": "^2.1.5",
-        "@smithy/node-http-handler": "^2.1.9",
-        "@smithy/property-provider": "^2.0.0",
-        "@smithy/protocol-http": "^3.0.9",
-        "@smithy/shared-ini-file-loader": "^2.0.6",
-        "@smithy/smithy-client": "^2.1.15",
-        "@smithy/types": "^2.5.0",
-        "@smithy/url-parser": "^2.0.13",
-        "@smithy/util-base64": "^2.0.1",
-        "@smithy/util-body-length-browser": "^2.0.0",
-        "@smithy/util-body-length-node": "^2.1.0",
-        "@smithy/util-defaults-mode-browser": "^2.0.19",
-        "@smithy/util-defaults-mode-node": "^2.0.25",
-        "@smithy/util-endpoints": "^1.0.4",
-        "@smithy/util-retry": "^2.0.6",
-        "@smithy/util-utf8": "^2.0.2",
+      "version": "3.504.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/token-providers/-/token-providers-3.504.0.tgz",
+      "integrity": "sha512-YIJWWsZi2ClUiILS1uh5L6VjmCUSTI6KKMuL9DkGjYqJ0aI6M8bd8fT9Wm7QmXCyjcArTgr/Atkhia4T7oKvzQ==",
+      "dependencies": {
+        "@aws-sdk/client-sso-oidc": "3.504.0",
+        "@aws-sdk/types": "3.502.0",
+        "@smithy/property-provider": "^2.1.1",
+        "@smithy/shared-ini-file-loader": "^2.3.1",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -589,11 +608,11 @@
       }
     },
     "node_modules/@aws-sdk/types": {
-      "version": "3.465.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.465.0.tgz",
-      "integrity": "sha512-Clqu2eD50OOzwSftGpzJrIOGev/7VJhJpc02SeS4cqFgI9EVd+rnFKS/Ux0kcwjLQBMiPcCLtql3KAHApFHAIA==",
+      "version": "3.502.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/types/-/types-3.502.0.tgz",
+      "integrity": "sha512-M0DSPYe/gXhwD2QHgoukaZv5oDxhW3FfvYIrJptyqUq3OnPJBcDbihHjrE0PBtfh/9kgMZT60/fQ2NVFANfa2g==",
       "dependencies": {
-        "@smithy/types": "^2.5.0",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -601,12 +620,13 @@
       }
     },
     "node_modules/@aws-sdk/util-endpoints": {
-      "version": "3.465.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.465.0.tgz",
-      "integrity": "sha512-lDpBN1faVw8Udg5hIo+LJaNfllbBF86PCisv628vfcggO8/EArL/v2Eos0KeqVT8yaINXCRSagwfo5TNTuW0KQ==",
+      "version": "3.502.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/util-endpoints/-/util-endpoints-3.502.0.tgz",
+      "integrity": "sha512-6LKFlJPp2J24r1Kpfoz5ESQn+1v5fEjDB3mtUKRdpwarhm3syu7HbKlHCF3KbcCOyahobvLvhoedT78rJFEeeg==",
       "dependencies": {
-        "@aws-sdk/types": "3.465.0",
-        "@smithy/util-endpoints": "^1.0.4",
+        "@aws-sdk/types": "3.502.0",
+        "@smithy/types": "^2.9.1",
+        "@smithy/util-endpoints": "^1.1.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -614,9 +634,9 @@
       }
     },
     "node_modules/@aws-sdk/util-locate-window": {
-      "version": "3.465.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.465.0.tgz",
-      "integrity": "sha512-f+QNcWGswredzC1ExNAB/QzODlxwaTdXkNT5cvke2RLX8SFU5pYk6h4uCtWC0vWPELzOfMfloBrJefBzlarhsw==",
+      "version": "3.495.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/util-locate-window/-/util-locate-window-3.495.0.tgz",
+      "integrity": "sha512-MfaPXT0kLX2tQaR90saBT9fWQq2DHqSSJRzW+MZWsmF+y5LGCOhO22ac/2o6TKSQm7h0HRc2GaADqYYYor62yg==",
       "dependencies": {
         "tslib": "^2.5.0"
       },
@@ -625,24 +645,24 @@
       }
     },
     "node_modules/@aws-sdk/util-user-agent-browser": {
-      "version": "3.465.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.465.0.tgz",
-      "integrity": "sha512-RM+LjkIsmUCBJ4yQeBnkJWJTjPOPqcNaKv8bpZxatIHdvzGhXLnWLNi3qHlBsJB2mKtKRet6nAUmKmzZR1sDzA==",
+      "version": "3.502.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.502.0.tgz",
+      "integrity": "sha512-v8gKyCs2obXoIkLETAeEQ3AM+QmhHhst9xbM1cJtKUGsRlVIak/XyyD+kVE6kmMm1cjfudHpHKABWk9apQcIZQ==",
       "dependencies": {
-        "@aws-sdk/types": "3.465.0",
-        "@smithy/types": "^2.5.0",
+        "@aws-sdk/types": "3.502.0",
+        "@smithy/types": "^2.9.1",
         "bowser": "^2.11.0",
         "tslib": "^2.5.0"
       }
     },
     "node_modules/@aws-sdk/util-user-agent-node": {
-      "version": "3.465.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.465.0.tgz",
-      "integrity": "sha512-XsHbq7gLCiGdy6FQ7/5nGslK0ij3Iuh051djuIICvNurlds5cqKLiBe63gX3IUUwxJcrKh4xBGviQJ52KdVSeg==",
+      "version": "3.502.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.502.0.tgz",
+      "integrity": "sha512-9RjxpkGZKbTdl96tIJvAo+vZoz4P/cQh36SBUt9xfRfW0BtsaLyvSrvlR5wyUYhvRcC12Axqh/8JtnAPq//+Vw==",
       "dependencies": {
-        "@aws-sdk/types": "3.465.0",
-        "@smithy/node-config-provider": "^2.1.5",
-        "@smithy/types": "^2.5.0",
+        "@aws-sdk/types": "3.502.0",
+        "@smithy/node-config-provider": "^2.2.1",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -659,7 +679,7 @@
     },
     "node_modules/@aws-sdk/util-utf8-browser": {
       "version": "3.259.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz",
       "integrity": "sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==",
       "dependencies": {
         "tslib": "^2.3.1"
@@ -667,7 +687,7 @@
     },
     "node_modules/@babel/code-frame": {
       "version": "7.23.5",
-      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz",
+      "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.23.5.tgz",
       "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
       "dependencies": {
         "@babel/highlight": "^7.23.4",
@@ -679,27 +699,27 @@
     },
     "node_modules/@babel/compat-data": {
       "version": "7.23.5",
-      "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz",
+      "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.23.5.tgz",
       "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==",
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/core": {
-      "version": "7.23.5",
-      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.5.tgz",
-      "integrity": "sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g==",
+      "version": "7.23.9",
+      "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.23.9.tgz",
+      "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==",
       "dependencies": {
         "@ampproject/remapping": "^2.2.0",
         "@babel/code-frame": "^7.23.5",
-        "@babel/generator": "^7.23.5",
-        "@babel/helper-compilation-targets": "^7.22.15",
+        "@babel/generator": "^7.23.6",
+        "@babel/helper-compilation-targets": "^7.23.6",
         "@babel/helper-module-transforms": "^7.23.3",
-        "@babel/helpers": "^7.23.5",
-        "@babel/parser": "^7.23.5",
-        "@babel/template": "^7.22.15",
-        "@babel/traverse": "^7.23.5",
-        "@babel/types": "^7.23.5",
+        "@babel/helpers": "^7.23.9",
+        "@babel/parser": "^7.23.9",
+        "@babel/template": "^7.23.9",
+        "@babel/traverse": "^7.23.9",
+        "@babel/types": "^7.23.9",
         "convert-source-map": "^2.0.0",
         "debug": "^4.1.0",
         "gensync": "^1.0.0-beta.2",
@@ -708,26 +728,22 @@
       },
       "engines": {
         "node": ">=6.9.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/babel"
       }
     },
     "node_modules/@babel/core/node_modules/semver": {
       "version": "6.3.1",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+      "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz",
       "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
       "bin": {
         "semver": "bin/semver.js"
       }
     },
     "node_modules/@babel/generator": {
-      "version": "7.23.5",
-      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.5.tgz",
-      "integrity": "sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==",
+      "version": "7.23.6",
+      "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.23.6.tgz",
+      "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==",
       "dependencies": {
-        "@babel/types": "^7.23.5",
+        "@babel/types": "^7.23.6",
         "@jridgewell/gen-mapping": "^0.3.2",
         "@jridgewell/trace-mapping": "^0.3.17",
         "jsesc": "^2.5.1"
@@ -737,13 +753,13 @@
       }
     },
     "node_modules/@babel/helper-compilation-targets": {
-      "version": "7.22.15",
-      "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz",
-      "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==",
+      "version": "7.23.6",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz",
+      "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==",
       "dependencies": {
-        "@babel/compat-data": "^7.22.9",
-        "@babel/helper-validator-option": "^7.22.15",
-        "browserslist": "^4.21.9",
+        "@babel/compat-data": "^7.23.5",
+        "@babel/helper-validator-option": "^7.23.5",
+        "browserslist": "^4.22.2",
         "lru-cache": "^5.1.1",
         "semver": "^6.3.1"
       },
@@ -753,7 +769,7 @@
     },
     "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
       "version": "6.3.1",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+      "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz",
       "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
       "bin": {
         "semver": "bin/semver.js"
@@ -761,7 +777,7 @@
     },
     "node_modules/@babel/helper-environment-visitor": {
       "version": "7.22.20",
-      "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
       "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
       "engines": {
         "node": ">=6.9.0"
@@ -769,7 +785,7 @@
     },
     "node_modules/@babel/helper-function-name": {
       "version": "7.23.0",
-      "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
       "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
       "dependencies": {
         "@babel/template": "^7.22.15",
@@ -781,7 +797,7 @@
     },
     "node_modules/@babel/helper-hoist-variables": {
       "version": "7.22.5",
-      "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
       "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
       "dependencies": {
         "@babel/types": "^7.22.5"
@@ -792,7 +808,7 @@
     },
     "node_modules/@babel/helper-module-imports": {
       "version": "7.22.15",
-      "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
       "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
       "dependencies": {
         "@babel/types": "^7.22.15"
@@ -803,7 +819,7 @@
     },
     "node_modules/@babel/helper-module-transforms": {
       "version": "7.23.3",
-      "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz",
       "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==",
       "dependencies": {
         "@babel/helper-environment-visitor": "^7.22.20",
@@ -821,7 +837,7 @@
     },
     "node_modules/@babel/helper-plugin-utils": {
       "version": "7.22.5",
-      "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
       "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==",
       "engines": {
         "node": ">=6.9.0"
@@ -829,7 +845,7 @@
     },
     "node_modules/@babel/helper-simple-access": {
       "version": "7.22.5",
-      "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
+      "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==",
       "dependencies": {
         "@babel/types": "^7.22.5"
@@ -840,7 +856,7 @@
     },
     "node_modules/@babel/helper-split-export-declaration": {
       "version": "7.22.6",
-      "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
       "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
       "dependencies": {
         "@babel/types": "^7.22.5"
@@ -851,7 +867,7 @@
     },
     "node_modules/@babel/helper-string-parser": {
       "version": "7.23.4",
-      "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz",
       "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==",
       "engines": {
         "node": ">=6.9.0"
@@ -859,7 +875,7 @@
     },
     "node_modules/@babel/helper-validator-identifier": {
       "version": "7.22.20",
-      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
       "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
       "engines": {
         "node": ">=6.9.0"
@@ -867,20 +883,20 @@
     },
     "node_modules/@babel/helper-validator-option": {
       "version": "7.23.5",
-      "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz",
       "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==",
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/helpers": {
-      "version": "7.23.5",
-      "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.5.tgz",
-      "integrity": "sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg==",
+      "version": "7.23.9",
+      "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.23.9.tgz",
+      "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==",
       "dependencies": {
-        "@babel/template": "^7.22.15",
-        "@babel/traverse": "^7.23.5",
-        "@babel/types": "^7.23.5"
+        "@babel/template": "^7.23.9",
+        "@babel/traverse": "^7.23.9",
+        "@babel/types": "^7.23.9"
       },
       "engines": {
         "node": ">=6.9.0"
@@ -888,7 +904,7 @@
     },
     "node_modules/@babel/highlight": {
       "version": "7.23.4",
-      "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz",
+      "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.23.4.tgz",
       "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
       "dependencies": {
         "@babel/helper-validator-identifier": "^7.22.20",
@@ -900,9 +916,9 @@
       }
     },
     "node_modules/@babel/parser": {
-      "version": "7.23.5",
-      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.5.tgz",
-      "integrity": "sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==",
+      "version": "7.23.9",
+      "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.23.9.tgz",
+      "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==",
       "bin": {
         "parser": "bin/babel-parser.js"
       },
@@ -912,7 +928,7 @@
     },
     "node_modules/@babel/plugin-transform-destructuring": {
       "version": "7.23.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz",
       "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==",
       "dependencies": {
         "@babel/helper-plugin-utils": "^7.22.5"
@@ -926,7 +942,7 @@
     },
     "node_modules/@babel/plugin-transform-parameters": {
       "version": "7.23.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz",
       "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==",
       "dependencies": {
         "@babel/helper-plugin-utils": "^7.22.5"
@@ -940,7 +956,7 @@
     },
     "node_modules/@babel/plugin-transform-shorthand-properties": {
       "version": "7.23.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz",
       "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==",
       "dependencies": {
         "@babel/helper-plugin-utils": "^7.22.5"
@@ -953,32 +969,32 @@
       }
     },
     "node_modules/@babel/template": {
-      "version": "7.22.15",
-      "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz",
-      "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
+      "version": "7.23.9",
+      "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.23.9.tgz",
+      "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==",
       "dependencies": {
-        "@babel/code-frame": "^7.22.13",
-        "@babel/parser": "^7.22.15",
-        "@babel/types": "^7.22.15"
+        "@babel/code-frame": "^7.23.5",
+        "@babel/parser": "^7.23.9",
+        "@babel/types": "^7.23.9"
       },
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/traverse": {
-      "version": "7.23.5",
-      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.5.tgz",
-      "integrity": "sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==",
+      "version": "7.23.9",
+      "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.23.9.tgz",
+      "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==",
       "dependencies": {
         "@babel/code-frame": "^7.23.5",
-        "@babel/generator": "^7.23.5",
+        "@babel/generator": "^7.23.6",
         "@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.23.5",
-        "@babel/types": "^7.23.5",
-        "debug": "^4.1.0",
+        "@babel/parser": "^7.23.9",
+        "@babel/types": "^7.23.9",
+        "debug": "^4.3.1",
         "globals": "^11.1.0"
       },
       "engines": {
@@ -986,9 +1002,9 @@
       }
     },
     "node_modules/@babel/types": {
-      "version": "7.23.5",
-      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.5.tgz",
-      "integrity": "sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==",
+      "version": "7.23.9",
+      "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.23.9.tgz",
+      "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==",
       "dependencies": {
         "@babel/helper-string-parser": "^7.23.4",
         "@babel/helper-validator-identifier": "^7.22.20",
@@ -1000,12 +1016,12 @@
     },
     "node_modules/@hapi/hoek": {
       "version": "9.3.0",
-      "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
+      "resolved": "https://registry.npmmirror.com/@hapi/hoek/-/hoek-9.3.0.tgz",
       "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ=="
     },
     "node_modules/@hapi/topo": {
       "version": "5.1.0",
-      "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
+      "resolved": "https://registry.npmmirror.com/@hapi/topo/-/topo-5.1.0.tgz",
       "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
       "dependencies": {
         "@hapi/hoek": "^9.0.0"
@@ -1013,7 +1029,7 @@
     },
     "node_modules/@isaacs/cliui": {
       "version": "8.0.2",
-      "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+      "resolved": "https://registry.npmmirror.com/@isaacs/cliui/-/cliui-8.0.2.tgz",
       "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
       "dependencies": {
         "string-width": "^5.1.2",
@@ -1029,32 +1045,26 @@
     },
     "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
       "version": "6.0.1",
-      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.0.1.tgz",
       "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
       "engines": {
         "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/ansi-regex?sponsor=1"
       }
     },
     "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
       "version": "7.1.0",
-      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+      "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz",
       "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
       "dependencies": {
         "ansi-regex": "^6.0.1"
       },
       "engines": {
         "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/strip-ansi?sponsor=1"
       }
     },
     "node_modules/@jridgewell/gen-mapping": {
       "version": "0.3.3",
-      "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
+      "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
       "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
       "dependencies": {
         "@jridgewell/set-array": "^1.0.1",
@@ -1067,7 +1077,7 @@
     },
     "node_modules/@jridgewell/resolve-uri": {
       "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
+      "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
       "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
       "engines": {
         "node": ">=6.0.0"
@@ -1075,7 +1085,7 @@
     },
     "node_modules/@jridgewell/set-array": {
       "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
+      "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz",
       "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
       "engines": {
         "node": ">=6.0.0"
@@ -1083,13 +1093,13 @@
     },
     "node_modules/@jridgewell/sourcemap-codec": {
       "version": "1.4.15",
-      "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+      "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
       "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
     },
     "node_modules/@jridgewell/trace-mapping": {
-      "version": "0.3.20",
-      "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz",
-      "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==",
+      "version": "0.3.22",
+      "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz",
+      "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==",
       "dependencies": {
         "@jridgewell/resolve-uri": "^3.1.0",
         "@jridgewell/sourcemap-codec": "^1.4.14"
@@ -1097,7 +1107,7 @@
     },
     "node_modules/@mongodb-js/devtools-connect": {
       "version": "2.4.3",
-      "resolved": "https://registry.npmjs.org/@mongodb-js/devtools-connect/-/devtools-connect-2.4.3.tgz",
+      "resolved": "https://registry.npmmirror.com/@mongodb-js/devtools-connect/-/devtools-connect-2.4.3.tgz",
       "integrity": "sha512-JS288VVm/Mu8+kHL8ybKCpL2/AiA4CWhWun7FR3iRNH5NXbT9c6aovEc2pxjsCbmYUjzuTsRoIo9LTrNoCvNrQ==",
       "dependencies": {
         "lodash.merge": "^4.6.2",
@@ -1116,7 +1126,7 @@
     },
     "node_modules/@mongodb-js/mongodb-constants": {
       "version": "0.7.2",
-      "resolved": "https://registry.npmjs.org/@mongodb-js/mongodb-constants/-/mongodb-constants-0.7.2.tgz",
+      "resolved": "https://registry.npmmirror.com/@mongodb-js/mongodb-constants/-/mongodb-constants-0.7.2.tgz",
       "integrity": "sha512-ElaVCCQo80vQTX865RXbJoITaB6kHJmOWqv0ANO5I/S9nP5LaIEfA2QQuBmE4cHOmb3ZGfzLfyCCfwbeSBwE6w==",
       "dependencies": {
         "dedent": "^1.5.1",
@@ -1125,7 +1135,7 @@
     },
     "node_modules/@mongodb-js/oidc-plugin": {
       "version": "0.3.0",
-      "resolved": "https://registry.npmjs.org/@mongodb-js/oidc-plugin/-/oidc-plugin-0.3.0.tgz",
+      "resolved": "https://registry.npmmirror.com/@mongodb-js/oidc-plugin/-/oidc-plugin-0.3.0.tgz",
       "integrity": "sha512-XIriu5WYwBJWiHFpIpiXz7FkeA0+jUyGB4KBs6v0U8JGlkkoAJY9lWuzBt0surjcl/dBWvpsZYun6492fMb2kw==",
       "dependencies": {
         "abort-controller": "^3.0.0",
@@ -1138,20 +1148,20 @@
       }
     },
     "node_modules/@mongodb-js/saslprep": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.1.tgz",
-      "integrity": "sha512-t7c5K033joZZMspnHg/gWPE4kandgc2OxE74aYOtGKfgB9VPuVJPix0H6fhmm2erj5PBJ21mqcx34lpIGtUCsQ==",
+      "version": "1.1.4",
+      "resolved": "https://registry.npmmirror.com/@mongodb-js/saslprep/-/saslprep-1.1.4.tgz",
+      "integrity": "sha512-8zJ8N1x51xo9hwPh6AWnKdLGEC5N3lDa6kms1YHmFBoRhTpJR6HG8wWk0td1MVCu9cD4YBrvjZEtd5Obw0Fbnw==",
       "dependencies": {
         "sparse-bitfield": "^3.0.3"
       }
     },
     "node_modules/@mongosh/arg-parser": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/@mongosh/arg-parser/-/arg-parser-2.1.1.tgz",
-      "integrity": "sha512-D0+FiUc9lH/LWkyXLM2s1WXI9pzfX6tvafAOwY9Lk73zUITfGzPtmup2tOyH4nI6H2jgVEMFg0GdBnAb2i/m/g==",
+      "version": "2.1.3",
+      "resolved": "https://registry.npmmirror.com/@mongosh/arg-parser/-/arg-parser-2.1.3.tgz",
+      "integrity": "sha512-EcxL04M21mAoHonYHN3l+kurOOFqdCuAU9J3Bv70O7YqVmsI7cfOaZEyGQoAQCj2FkolzfTQ73xCGvl4q0pKSg==",
       "dependencies": {
-        "@mongosh/errors": "2.1.1",
-        "@mongosh/i18n": "2.1.1",
+        "@mongosh/errors": "2.1.3",
+        "@mongosh/i18n": "2.1.3",
         "mongodb-connection-string-url": "^3.0.0"
       },
       "engines": {
@@ -1159,9 +1169,9 @@
       }
     },
     "node_modules/@mongosh/async-rewriter2": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/@mongosh/async-rewriter2/-/async-rewriter2-2.1.1.tgz",
-      "integrity": "sha512-fm5s5uiH5oTVpvXZPgovjl/X3ZiL/lKDi2Plj0s1bOAPeWTQ6qaiPD1f/fbrEI2iVU+JyDk8clVMPV4duaOjvw==",
+      "version": "2.1.3",
+      "resolved": "https://registry.npmmirror.com/@mongosh/async-rewriter2/-/async-rewriter2-2.1.3.tgz",
+      "integrity": "sha512-ySJeI69E7E33wvpgiR1IrYi+kU7F2pkLmvpOrnwKExWdHgpw48LW2o2WrjQGfZBIGeTfgvby30+XbgA/kxj9NQ==",
       "dependencies": {
         "@babel/core": "^7.22.8",
         "@babel/plugin-transform-destructuring": "^7.22.5",
@@ -1178,12 +1188,12 @@
       }
     },
     "node_modules/@mongosh/autocomplete": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/@mongosh/autocomplete/-/autocomplete-2.1.1.tgz",
-      "integrity": "sha512-va1IXrQJ+3OcXbKIdQlBk0LeSgfTYdUbmc8vr/AwnTh+yZP+wd0viHE3l6KzO62H2d3aIfEcthfGReeRuISVHA==",
+      "version": "2.1.3",
+      "resolved": "https://registry.npmmirror.com/@mongosh/autocomplete/-/autocomplete-2.1.3.tgz",
+      "integrity": "sha512-WRvq9u70wyQeC7o6sgmZYGOTJPCi13XjnvW1E7yrw1jJke95l2QD4tb3kT/gRXUvpYfsulImwp4v2feqeaP5Yg==",
       "dependencies": {
         "@mongodb-js/mongodb-constants": "^0.7.1",
-        "@mongosh/shell-api": "2.1.1",
+        "@mongosh/shell-api": "2.1.3",
         "semver": "^7.5.4"
       },
       "engines": {
@@ -1191,24 +1201,24 @@
       }
     },
     "node_modules/@mongosh/cli-repl": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/@mongosh/cli-repl/-/cli-repl-2.1.1.tgz",
-      "integrity": "sha512-uZyFtIWwsoSrpDE5f07Xg0Dz76Gpstqum4GfhIpsKQzAO8i9w2YCTK5P7fozmrkwixN5gNqYvUP+DKHMid+olw==",
-      "dependencies": {
-        "@mongosh/arg-parser": "2.1.1",
-        "@mongosh/autocomplete": "2.1.1",
-        "@mongosh/editor": "2.1.1",
-        "@mongosh/errors": "2.1.1",
-        "@mongosh/history": "2.1.1",
-        "@mongosh/i18n": "2.1.1",
-        "@mongosh/js-multiline-to-singleline": "2.1.1",
-        "@mongosh/logging": "2.1.1",
-        "@mongosh/service-provider-core": "2.1.1",
-        "@mongosh/service-provider-server": "2.1.1",
-        "@mongosh/shell-api": "2.1.1",
-        "@mongosh/shell-evaluator": "2.1.1",
-        "@mongosh/snippet-manager": "2.1.1",
-        "@mongosh/types": "2.1.1",
+      "version": "2.1.3",
+      "resolved": "https://registry.npmmirror.com/@mongosh/cli-repl/-/cli-repl-2.1.3.tgz",
+      "integrity": "sha512-qGKqeLFvMLGt9NIF9ukE+N0OWBlycUsXl3bSCsQ/g9Oeeke2/4Zf9OTSwLA1bSK+QXBaeQzMtKwuwrXM5jXSTA==",
+      "dependencies": {
+        "@mongosh/arg-parser": "2.1.3",
+        "@mongosh/autocomplete": "2.1.3",
+        "@mongosh/editor": "2.1.3",
+        "@mongosh/errors": "2.1.3",
+        "@mongosh/history": "2.1.3",
+        "@mongosh/i18n": "2.1.3",
+        "@mongosh/js-multiline-to-singleline": "2.1.3",
+        "@mongosh/logging": "2.1.3",
+        "@mongosh/service-provider-core": "2.1.3",
+        "@mongosh/service-provider-server": "2.1.3",
+        "@mongosh/shell-api": "2.1.3",
+        "@mongosh/shell-evaluator": "2.1.3",
+        "@mongosh/snippet-manager": "2.1.3",
+        "@mongosh/types": "2.1.3",
         "analytics-node": "^5.1.2",
         "ansi-escape-sequences": "^5.1.2",
         "askcharacter": "^1.0.0",
@@ -1238,15 +1248,15 @@
       }
     },
     "node_modules/@mongosh/editor": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/@mongosh/editor/-/editor-2.1.1.tgz",
-      "integrity": "sha512-5AYuVbmXaUawa2yN/lUqkre4v5hCXuAj5ss4gVPz9ioOewLwFORO4gEPsnzKkQHXvFrtiolen2aSJDlneRLSKg==",
-      "dependencies": {
-        "@mongosh/js-multiline-to-singleline": "2.1.1",
-        "@mongosh/service-provider-core": "2.1.1",
-        "@mongosh/shell-api": "2.1.1",
-        "@mongosh/shell-evaluator": "2.1.1",
-        "@mongosh/types": "2.1.1",
+      "version": "2.1.3",
+      "resolved": "https://registry.npmmirror.com/@mongosh/editor/-/editor-2.1.3.tgz",
+      "integrity": "sha512-Dcr0UNcONp+4rGcVkgBtAvxjOZm+qjaHWLsa+/evHoE5APep1pfDM5LL59V+xz9zQMHrrlf62F90zaSeM2Yb7Q==",
+      "dependencies": {
+        "@mongosh/js-multiline-to-singleline": "2.1.3",
+        "@mongosh/service-provider-core": "2.1.3",
+        "@mongosh/shell-api": "2.1.3",
+        "@mongosh/shell-evaluator": "2.1.3",
+        "@mongosh/types": "2.1.3",
         "js-beautify": "^1.14.0"
       },
       "engines": {
@@ -1254,17 +1264,17 @@
       }
     },
     "node_modules/@mongosh/errors": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/@mongosh/errors/-/errors-2.1.1.tgz",
-      "integrity": "sha512-Dw0qb+h6QiO8/bhuyTBK0aANMamuQjpcjdA35H+L78CS4c5iog6rSd3x0RISivhRsvGgGxE+JLcOuUyQsu2v4Q==",
+      "version": "2.1.3",
+      "resolved": "https://registry.npmmirror.com/@mongosh/errors/-/errors-2.1.3.tgz",
+      "integrity": "sha512-+s1upI1R0zCcMQigIohrzFjnSD+wFC7amJqRQf64bFtXF0+y6ylfp1E5mNSGEZjbzEdrbmukEhJs68SbWIEwWA==",
       "engines": {
         "node": ">=14.15.1"
       }
     },
     "node_modules/@mongosh/history": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/@mongosh/history/-/history-2.1.1.tgz",
-      "integrity": "sha512-PFfyq3jGAoxTld/T8CrZpardch1IWtEAJnyOcVVgL+pdspmrowhIPBd8HOyOM5C2wjCjDmqhNtBLaJ5iuOMmPg==",
+      "version": "2.1.3",
+      "resolved": "https://registry.npmmirror.com/@mongosh/history/-/history-2.1.3.tgz",
+      "integrity": "sha512-oJT6ilvwZttmIzOub9ke7VBLKXBI48le3RrftIgGQ/MfVxzFsS3i+STGB24u2B+F8oh1DIPSEPCqED3dZYvAKA==",
       "dependencies": {
         "mongodb-connection-string-url": "^3.0.0",
         "mongodb-redact": "^0.2.2"
@@ -1274,11 +1284,11 @@
       }
     },
     "node_modules/@mongosh/i18n": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/@mongosh/i18n/-/i18n-2.1.1.tgz",
-      "integrity": "sha512-i6ff4kdtHSfErGkYrEj8lSh/LBFIiSD3wecppy1FUMuDHBPfqbL42cGNV771yoyNUM7FlYb3CiXMXFDmqma2Vw==",
+      "version": "2.1.3",
+      "resolved": "https://registry.npmmirror.com/@mongosh/i18n/-/i18n-2.1.3.tgz",
+      "integrity": "sha512-gJ7fr21al4cTie27qITk2DpoDVfow/WTLghgVnSa1t/iBH0la0kJbei20cURHaG8OKIB3a+iSdcrIkK2TGlJGA==",
       "dependencies": {
-        "@mongosh/errors": "2.1.1",
+        "@mongosh/errors": "2.1.3",
         "mustache": "^4.0.0"
       },
       "engines": {
@@ -1286,9 +1296,9 @@
       }
     },
     "node_modules/@mongosh/js-multiline-to-singleline": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/@mongosh/js-multiline-to-singleline/-/js-multiline-to-singleline-2.1.1.tgz",
-      "integrity": "sha512-hj6fZGOspeMOQVXTbm8ep2Rc+Rm9O6/I1dt5OpUaN4heyAlMLLugdZU+zYWksMo9NEnfNMHjHQUoQo0VBEJXEQ==",
+      "version": "2.1.3",
+      "resolved": "https://registry.npmmirror.com/@mongosh/js-multiline-to-singleline/-/js-multiline-to-singleline-2.1.3.tgz",
+      "integrity": "sha512-kNHsE28Qiosv7B7CZ/D80p4s97Myz39LVrVs73wkM2sNOYyZ2wEyVm8Pi6l3FrLgzzwHDkbb0nLNpQWSoRonvQ==",
       "dependencies": {
         "@babel/core": "^7.16.12",
         "@babel/types": "^7.21.2"
@@ -1298,14 +1308,14 @@
       }
     },
     "node_modules/@mongosh/logging": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/@mongosh/logging/-/logging-2.1.1.tgz",
-      "integrity": "sha512-g0ZcfvmukiGll/e06BlNZdUMq5oiQ5HhwNKsLuJADWcV76ebBjAhnyB00pPMhSfqszmn4dri1O3k1IVRDlwmag==",
+      "version": "2.1.3",
+      "resolved": "https://registry.npmmirror.com/@mongosh/logging/-/logging-2.1.3.tgz",
+      "integrity": "sha512-eCpWljCh7e9jNgeUiRqc4TcfQK0HUYBX/iosQDDDNvZZAdLsfuTOp2NF2LN4gwoaWp5ICgFqB0lCA0m9mbQn/g==",
       "dependencies": {
         "@mongodb-js/devtools-connect": "^2.4.3",
-        "@mongosh/errors": "2.1.1",
-        "@mongosh/history": "2.1.1",
-        "@mongosh/types": "2.1.1",
+        "@mongosh/errors": "2.1.3",
+        "@mongosh/history": "2.1.3",
+        "@mongosh/types": "2.1.3",
         "mongodb-log-writer": "^1.4.0",
         "mongodb-redact": "^0.2.2"
       },
@@ -1314,12 +1324,12 @@
       }
     },
     "node_modules/@mongosh/service-provider-core": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/@mongosh/service-provider-core/-/service-provider-core-2.1.1.tgz",
-      "integrity": "sha512-7UMymGS3sQopiR0WJetEp1//7ga10okdEg9c4fOvwjU22k4G8X+/ngnrcZLcTvPnASkYjMjq4puiem+QZY3mVQ==",
+      "version": "2.1.3",
+      "resolved": "https://registry.npmmirror.com/@mongosh/service-provider-core/-/service-provider-core-2.1.3.tgz",
+      "integrity": "sha512-dEj6ikteC2QGxuaY6/NFotriVCRVTaY/PcFSqCL/ssg26KTlpXqd2NqNh7UPHzlwEO1aM6Bhw/PfS3uP9l0tBg==",
       "dependencies": {
         "@aws-sdk/credential-providers": "^3.347.1",
-        "@mongosh/errors": "2.1.1",
+        "@mongosh/errors": "2.1.3",
         "bson": "^6.2.0",
         "mongodb": "^6.3.0",
         "mongodb-build-info": "^1.7.1"
@@ -1332,15 +1342,15 @@
       }
     },
     "node_modules/@mongosh/service-provider-server": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/@mongosh/service-provider-server/-/service-provider-server-2.1.1.tgz",
-      "integrity": "sha512-pAnz8VdBBEqCUTLztPELSIrWXxC5K9acdSosTg31vYK0fbg7nx5Q55amPXLRxNlXPa3wFHYGt1R9hCD5PwSA+A==",
+      "version": "2.1.3",
+      "resolved": "https://registry.npmmirror.com/@mongosh/service-provider-server/-/service-provider-server-2.1.3.tgz",
+      "integrity": "sha512-bN1CGAlQnLVb2JCWIm4TNt2+z5/4YWoGbS5AKY8uuisM49VWl21BM74eDTbym75tXbwu/2d5vyf20cHJeAVMGA==",
       "dependencies": {
         "@mongodb-js/devtools-connect": "^2.4.3",
         "@mongodb-js/oidc-plugin": "^0.3.0",
-        "@mongosh/errors": "2.1.1",
-        "@mongosh/service-provider-core": "2.1.1",
-        "@mongosh/types": "2.1.1",
+        "@mongosh/errors": "2.1.3",
+        "@mongosh/service-provider-core": "2.1.3",
+        "@mongosh/types": "2.1.3",
         "@types/sinon-chai": "^3.2.4",
         "aws4": "^1.11.0",
         "mongodb": "^6.3.0",
@@ -1356,15 +1366,15 @@
       }
     },
     "node_modules/@mongosh/shell-api": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/@mongosh/shell-api/-/shell-api-2.1.1.tgz",
-      "integrity": "sha512-uOEgd4bNah1QVeN6Sqxq+tCHmxlecul0AzL5829Axv3Aa1cZnERZMgbIPyo4JoMB0wTtsgjsJHngBBaDUdkuUQ==",
-      "dependencies": {
-        "@mongosh/arg-parser": "2.1.1",
-        "@mongosh/errors": "2.1.1",
-        "@mongosh/history": "2.1.1",
-        "@mongosh/i18n": "2.1.1",
-        "@mongosh/service-provider-core": "2.1.1",
+      "version": "2.1.3",
+      "resolved": "https://registry.npmmirror.com/@mongosh/shell-api/-/shell-api-2.1.3.tgz",
+      "integrity": "sha512-zq+qM+6Xfx8GFF+wM8saGzRcwxRqKYGPolKO0gulEhenOLlNiOeotfe7khKeKTahW28QzCjC36gli5G2cV7tgQ==",
+      "dependencies": {
+        "@mongosh/arg-parser": "2.1.3",
+        "@mongosh/errors": "2.1.3",
+        "@mongosh/history": "2.1.3",
+        "@mongosh/i18n": "2.1.3",
+        "@mongosh/service-provider-core": "2.1.3",
         "mongodb-redact": "^0.2.2"
       },
       "engines": {
@@ -1372,26 +1382,26 @@
       }
     },
     "node_modules/@mongosh/shell-evaluator": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/@mongosh/shell-evaluator/-/shell-evaluator-2.1.1.tgz",
-      "integrity": "sha512-h3OGG8r2dGt7xRuRwVVDcE8bMgzHe2XROdln8Cps/6Hb5mEDkg1JPT5HlJLmbk5j5IuEnr95dAxAzt/l5+461g==",
+      "version": "2.1.3",
+      "resolved": "https://registry.npmmirror.com/@mongosh/shell-evaluator/-/shell-evaluator-2.1.3.tgz",
+      "integrity": "sha512-+H+VrUmXtiF0aBLZZ2hAUyai5Cgm1FogyUDg0UE1LR7sboFTnEaHI7ReoLxabK/PoV56ZXjxByUgWAGVlTvQfA==",
       "dependencies": {
-        "@mongosh/async-rewriter2": "2.1.1",
-        "@mongosh/history": "2.1.1",
-        "@mongosh/shell-api": "2.1.1"
+        "@mongosh/async-rewriter2": "2.1.3",
+        "@mongosh/history": "2.1.3",
+        "@mongosh/shell-api": "2.1.3"
       },
       "engines": {
         "node": ">=14.15.1"
       }
     },
     "node_modules/@mongosh/snippet-manager": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/@mongosh/snippet-manager/-/snippet-manager-2.1.1.tgz",
-      "integrity": "sha512-1RyauOaXZAeTtbQJM3RaTciF3QWzM60e6gu4LS6uI7pm/l5TQlzFC2SWCu07Qm4Fp5SnLs7yKbW6WvNXj7Q6+w==",
+      "version": "2.1.3",
+      "resolved": "https://registry.npmmirror.com/@mongosh/snippet-manager/-/snippet-manager-2.1.3.tgz",
+      "integrity": "sha512-3OFSWP4A29gMKwlzOLHrwEvJRH2i2EFPTagi2edzZGnHnj+56kqOxBW1M9nPtFVeoWrb0j+UcjXZ7q5IDYuL1A==",
       "dependencies": {
-        "@mongosh/errors": "2.1.1",
-        "@mongosh/shell-api": "2.1.1",
-        "@mongosh/types": "2.1.1",
+        "@mongosh/errors": "2.1.3",
+        "@mongosh/shell-api": "2.1.3",
+        "@mongosh/types": "2.1.3",
         "bson": "^6.2.0",
         "cross-spawn": "^7.0.3",
         "escape-string-regexp": "^4.0.0",
@@ -1404,9 +1414,9 @@
       }
     },
     "node_modules/@mongosh/types": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/@mongosh/types/-/types-2.1.1.tgz",
-      "integrity": "sha512-YcaHfurVlVvlKBMYXkV+JYg24urEJa4cmp/cMF/fqoBi6F+MC6n/2BlG4eqwWyZ3KtUzqCCgocBebt7e61yHKA==",
+      "version": "2.1.3",
+      "resolved": "https://registry.npmmirror.com/@mongosh/types/-/types-2.1.3.tgz",
+      "integrity": "sha512-2E3lkUp5DM52KIZSSkgtxPQbb7zH8w3jvE1gvX7lx2EvrMcHVII52RL91k9JHFK/wL+dcqX83Etl9nLORWAjog==",
       "dependencies": {
         "@mongodb-js/devtools-connect": "^2.4.3"
       },
@@ -1416,12 +1426,12 @@
     },
     "node_modules/@one-ini/wasm": {
       "version": "0.1.1",
-      "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz",
+      "resolved": "https://registry.npmmirror.com/@one-ini/wasm/-/wasm-0.1.1.tgz",
       "integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw=="
     },
     "node_modules/@pkgjs/parseargs": {
       "version": "0.11.0",
-      "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+      "resolved": "https://registry.npmmirror.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
       "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
       "optional": true,
       "engines": {
@@ -1430,7 +1440,7 @@
     },
     "node_modules/@segment/loosely-validate-event": {
       "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz",
       "integrity": "sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==",
       "dependencies": {
         "component-type": "^1.2.1",
@@ -1438,29 +1448,29 @@
       }
     },
     "node_modules/@sideway/address": {
-      "version": "4.1.4",
-      "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz",
-      "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==",
+      "version": "4.1.5",
+      "resolved": "https://registry.npmmirror.com/@sideway/address/-/address-4.1.5.tgz",
+      "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==",
       "dependencies": {
         "@hapi/hoek": "^9.0.0"
       }
     },
     "node_modules/@sideway/formula": {
       "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/@sideway/formula/-/formula-3.0.1.tgz",
       "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg=="
     },
     "node_modules/@sideway/pinpoint": {
       "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
       "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ=="
     },
     "node_modules/@smithy/abort-controller": {
-      "version": "2.0.14",
-      "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-2.0.14.tgz",
-      "integrity": "sha512-zXtteuYLWbSXnzI3O6xq3FYvigYZFW8mdytGibfarLL2lxHto9L3ILtGVnVGmFZa7SDh62l39EnU5hesLN87Fw==",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/abort-controller/-/abort-controller-2.1.1.tgz",
+      "integrity": "sha512-1+qdrUqLhaALYL0iOcN43EP6yAXXQ2wWZ6taf4S2pNGowmOc5gx+iMQv+E42JizNJjB0+gEadOXeV1Bf7JWL1Q==",
       "dependencies": {
-        "@smithy/types": "^2.6.0",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -1468,14 +1478,32 @@
       }
     },
     "node_modules/@smithy/config-resolver": {
-      "version": "2.0.19",
-      "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-2.0.19.tgz",
-      "integrity": "sha512-JsghnQ5zjWmjEVY8TFOulLdEOCj09SjRLugrHlkPZTIBBm7PQitCFVLThbsKPZQOP7N3ME1DU1nKUc1UaVnBog==",
-      "dependencies": {
-        "@smithy/node-config-provider": "^2.1.6",
-        "@smithy/types": "^2.6.0",
-        "@smithy/util-config-provider": "^2.0.0",
-        "@smithy/util-middleware": "^2.0.7",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/config-resolver/-/config-resolver-2.1.1.tgz",
+      "integrity": "sha512-lxfLDpZm+AWAHPFZps5JfDoO9Ux1764fOgvRUBpHIO8HWHcSN1dkgsago1qLRVgm1BZ8RCm8cgv99QvtaOWIhw==",
+      "dependencies": {
+        "@smithy/node-config-provider": "^2.2.1",
+        "@smithy/types": "^2.9.1",
+        "@smithy/util-config-provider": "^2.2.1",
+        "@smithy/util-middleware": "^2.1.1",
+        "tslib": "^2.5.0"
+      },
+      "engines": {
+        "node": ">=14.0.0"
+      }
+    },
+    "node_modules/@smithy/core": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/core/-/core-1.3.1.tgz",
+      "integrity": "sha512-tf+NIu9FkOh312b6M9G4D68is4Xr7qptzaZGZUREELF8ysE1yLKphqt7nsomjKZVwW7WE5pDDex9idowNGRQ/Q==",
+      "dependencies": {
+        "@smithy/middleware-endpoint": "^2.4.1",
+        "@smithy/middleware-retry": "^2.1.1",
+        "@smithy/middleware-serde": "^2.1.1",
+        "@smithy/protocol-http": "^3.1.1",
+        "@smithy/smithy-client": "^2.3.1",
+        "@smithy/types": "^2.9.1",
+        "@smithy/util-middleware": "^2.1.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -1483,14 +1511,14 @@
       }
     },
     "node_modules/@smithy/credential-provider-imds": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.1.2.tgz",
-      "integrity": "sha512-Y62jBWdoLPSYjr9fFvJf+KwTa1EunjVr6NryTEWCnwIY93OJxwV4t0qxjwdPl/XMsUkq79ppNJSEQN6Ohnhxjw==",
+      "version": "2.2.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/credential-provider-imds/-/credential-provider-imds-2.2.1.tgz",
+      "integrity": "sha512-7XHjZUxmZYnONheVQL7j5zvZXga+EWNgwEAP6OPZTi7l8J4JTeNh9aIOfE5fKHZ/ee2IeNOh54ZrSna+Vc6TFA==",
       "dependencies": {
-        "@smithy/node-config-provider": "^2.1.6",
-        "@smithy/property-provider": "^2.0.15",
-        "@smithy/types": "^2.6.0",
-        "@smithy/url-parser": "^2.0.14",
+        "@smithy/node-config-provider": "^2.2.1",
+        "@smithy/property-provider": "^2.1.1",
+        "@smithy/types": "^2.9.1",
+        "@smithy/url-parser": "^2.1.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -1498,36 +1526,36 @@
       }
     },
     "node_modules/@smithy/eventstream-codec": {
-      "version": "2.0.14",
-      "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-2.0.14.tgz",
-      "integrity": "sha512-g/OU/MeWGfHDygoXgMWfG/Xb0QqDnAGcM9t2FRrVAhleXYRddGOEnfanR5cmHgB9ue52MJsyorqFjckzXsylaA==",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/eventstream-codec/-/eventstream-codec-2.1.1.tgz",
+      "integrity": "sha512-E8KYBxBIuU4c+zrpR22VsVrOPoEDzk35bQR3E+xm4k6Pa6JqzkDOdMyf9Atac5GPNKHJBdVaQ4JtjdWX2rl/nw==",
       "dependencies": {
         "@aws-crypto/crc32": "3.0.0",
-        "@smithy/types": "^2.6.0",
-        "@smithy/util-hex-encoding": "^2.0.0",
+        "@smithy/types": "^2.9.1",
+        "@smithy/util-hex-encoding": "^2.1.1",
         "tslib": "^2.5.0"
       }
     },
     "node_modules/@smithy/fetch-http-handler": {
-      "version": "2.2.7",
-      "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.2.7.tgz",
-      "integrity": "sha512-iSDBjxuH9TgrtMYAr7j5evjvkvgwLY3y+9D547uep+JNkZ1ZT+BaeU20j6I/bO/i26ilCWFImrlXTPsfQtZdIQ==",
-      "dependencies": {
-        "@smithy/protocol-http": "^3.0.10",
-        "@smithy/querystring-builder": "^2.0.14",
-        "@smithy/types": "^2.6.0",
-        "@smithy/util-base64": "^2.0.1",
+      "version": "2.4.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/fetch-http-handler/-/fetch-http-handler-2.4.1.tgz",
+      "integrity": "sha512-VYGLinPsFqH68lxfRhjQaSkjXM7JysUOJDTNjHBuN/ykyRb2f1gyavN9+VhhPTWCy32L4yZ2fdhpCs/nStEicg==",
+      "dependencies": {
+        "@smithy/protocol-http": "^3.1.1",
+        "@smithy/querystring-builder": "^2.1.1",
+        "@smithy/types": "^2.9.1",
+        "@smithy/util-base64": "^2.1.1",
         "tslib": "^2.5.0"
       }
     },
     "node_modules/@smithy/hash-node": {
-      "version": "2.0.16",
-      "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-2.0.16.tgz",
-      "integrity": "sha512-Wbi9A0PacMYUOwjAulQP90Wl3mQ6NDwnyrZQzFjDz+UzjXOSyQMgBrTkUBz+pVoYVlX3DUu24gWMZBcit+wOGg==",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/hash-node/-/hash-node-2.1.1.tgz",
+      "integrity": "sha512-Qhoq0N8f2OtCnvUpCf+g1vSyhYQrZjhSwvJ9qvR8BUGOtTXiyv2x1OD2e6jVGmlpC4E4ax1USHoyGfV9JFsACg==",
       "dependencies": {
-        "@smithy/types": "^2.6.0",
-        "@smithy/util-buffer-from": "^2.0.0",
-        "@smithy/util-utf8": "^2.0.2",
+        "@smithy/types": "^2.9.1",
+        "@smithy/util-buffer-from": "^2.1.1",
+        "@smithy/util-utf8": "^2.1.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -1535,18 +1563,18 @@
       }
     },
     "node_modules/@smithy/invalid-dependency": {
-      "version": "2.0.14",
-      "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-2.0.14.tgz",
-      "integrity": "sha512-d8ohpwZo9RzTpGlAfsWtfm1SHBSU7+N4iuZ6MzR10xDTujJJWtmXYHK1uzcr7rggbpUTaWyHpPFgnf91q0EFqQ==",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/invalid-dependency/-/invalid-dependency-2.1.1.tgz",
+      "integrity": "sha512-7WTgnKw+VPg8fxu2v9AlNOQ5yaz6RA54zOVB4f6vQuR0xFKd+RzlCpt0WidYTsye7F+FYDIaS/RnJW4pxjNInw==",
       "dependencies": {
-        "@smithy/types": "^2.6.0",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       }
     },
     "node_modules/@smithy/is-array-buffer": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.0.0.tgz",
-      "integrity": "sha512-z3PjFjMyZNI98JFRJi/U0nGoLWMSJlDjAW4QUX2WNZLas5C0CmVV6LJ01JI0k90l7FvpmixjWxPFmENSClQ7ug==",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/is-array-buffer/-/is-array-buffer-2.1.1.tgz",
+      "integrity": "sha512-xozSQrcUinPpNPNPds4S7z/FakDTh1MZWtRP/2vQtYB/u3HYrX2UXuZs+VhaKBd6Vc7g2XPr2ZtwGBNDN6fNKQ==",
       "dependencies": {
         "tslib": "^2.5.0"
       },
@@ -1555,12 +1583,12 @@
       }
     },
     "node_modules/@smithy/middleware-content-length": {
-      "version": "2.0.16",
-      "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-2.0.16.tgz",
-      "integrity": "sha512-9ddDia3pp1d3XzLXKcm7QebGxLq9iwKf+J1LapvlSOhpF8EM9SjMeSrMOOFgG+2TfW5K3+qz4IAJYYm7INYCng==",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/middleware-content-length/-/middleware-content-length-2.1.1.tgz",
+      "integrity": "sha512-rSr9ezUl9qMgiJR0UVtVOGEZElMdGFyl8FzWEF5iEKTlcWxGr2wTqGfDwtH3LAB7h+FPkxqv4ZU4cpuCN9Kf/g==",
       "dependencies": {
-        "@smithy/protocol-http": "^3.0.10",
-        "@smithy/types": "^2.6.0",
+        "@smithy/protocol-http": "^3.1.1",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -1568,16 +1596,16 @@
       }
     },
     "node_modules/@smithy/middleware-endpoint": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.2.1.tgz",
-      "integrity": "sha512-dVDS7HNJl/wb0lpByXor6whqDbb1YlLoaoWYoelyYzLHioXOE7y/0iDwJWtDcN36/tVCw9EPBFZ3aans84jLpg==",
-      "dependencies": {
-        "@smithy/middleware-serde": "^2.0.14",
-        "@smithy/node-config-provider": "^2.1.6",
-        "@smithy/shared-ini-file-loader": "^2.2.5",
-        "@smithy/types": "^2.6.0",
-        "@smithy/url-parser": "^2.0.14",
-        "@smithy/util-middleware": "^2.0.7",
+      "version": "2.4.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/middleware-endpoint/-/middleware-endpoint-2.4.1.tgz",
+      "integrity": "sha512-XPZTb1E2Oav60Ven3n2PFx+rX9EDsU/jSTA8VDamt7FXks67ekjPY/XrmmPDQaFJOTUHJNKjd8+kZxVO5Ael4Q==",
+      "dependencies": {
+        "@smithy/middleware-serde": "^2.1.1",
+        "@smithy/node-config-provider": "^2.2.1",
+        "@smithy/shared-ini-file-loader": "^2.3.1",
+        "@smithy/types": "^2.9.1",
+        "@smithy/url-parser": "^2.1.1",
+        "@smithy/util-middleware": "^2.1.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -1585,16 +1613,17 @@
       }
     },
     "node_modules/@smithy/middleware-retry": {
-      "version": "2.0.21",
-      "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-2.0.21.tgz",
-      "integrity": "sha512-EZS1EXv1k6IJX6hyu/0yNQuPcPaXwG8SWljQHYueyRbOxmqYgoWMWPtfZj0xRRQ4YtLawQSpBgAeiJltq8/MPw==",
-      "dependencies": {
-        "@smithy/node-config-provider": "^2.1.6",
-        "@smithy/protocol-http": "^3.0.10",
-        "@smithy/service-error-classification": "^2.0.7",
-        "@smithy/types": "^2.6.0",
-        "@smithy/util-middleware": "^2.0.7",
-        "@smithy/util-retry": "^2.0.7",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/middleware-retry/-/middleware-retry-2.1.1.tgz",
+      "integrity": "sha512-eMIHOBTXro6JZ+WWzZWd/8fS8ht5nS5KDQjzhNMHNRcG5FkNTqcKpYhw7TETMYzbLfhO5FYghHy1vqDWM4FLDA==",
+      "dependencies": {
+        "@smithy/node-config-provider": "^2.2.1",
+        "@smithy/protocol-http": "^3.1.1",
+        "@smithy/service-error-classification": "^2.1.1",
+        "@smithy/smithy-client": "^2.3.1",
+        "@smithy/types": "^2.9.1",
+        "@smithy/util-middleware": "^2.1.1",
+        "@smithy/util-retry": "^2.1.1",
         "tslib": "^2.5.0",
         "uuid": "^8.3.2"
       },
@@ -1603,11 +1632,11 @@
       }
     },
     "node_modules/@smithy/middleware-serde": {
-      "version": "2.0.14",
-      "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.0.14.tgz",
-      "integrity": "sha512-hFi3FqoYWDntCYA2IGY6gJ6FKjq2gye+1tfxF2HnIJB5uW8y2DhpRNBSUMoqP+qvYzRqZ6ntv4kgbG+o3pX57g==",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/middleware-serde/-/middleware-serde-2.1.1.tgz",
+      "integrity": "sha512-D8Gq0aQBeE1pxf3cjWVkRr2W54t+cdM2zx78tNrVhqrDykRA7asq8yVJij1u5NDtKzKqzBSPYh7iW0svUKg76g==",
       "dependencies": {
-        "@smithy/types": "^2.6.0",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -1615,11 +1644,11 @@
       }
     },
     "node_modules/@smithy/middleware-stack": {
-      "version": "2.0.8",
-      "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-2.0.8.tgz",
-      "integrity": "sha512-7/N59j0zWqVEKExJcA14MrLDZ/IeN+d6nbkN8ucs+eURyaDUXWYlZrQmMOd/TyptcQv0+RDlgag/zSTTV62y/Q==",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/middleware-stack/-/middleware-stack-2.1.1.tgz",
+      "integrity": "sha512-KPJhRlhsl8CjgGXK/DoDcrFGfAqoqvuwlbxy+uOO4g2Azn1dhH+GVfC3RAp+6PoL5PWPb+vt6Z23FP+Mr6qeCw==",
       "dependencies": {
-        "@smithy/types": "^2.6.0",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -1627,13 +1656,13 @@
       }
     },
     "node_modules/@smithy/node-config-provider": {
-      "version": "2.1.6",
-      "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.1.6.tgz",
-      "integrity": "sha512-HLqTs6O78m3M3z1cPLFxddxhEPv5MkVatfPuxoVO3A+cHZanNd/H5I6btcdHy6N2CB1MJ/lihJC92h30SESsBA==",
+      "version": "2.2.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/node-config-provider/-/node-config-provider-2.2.1.tgz",
+      "integrity": "sha512-epzK3x1xNxA9oJgHQ5nz+2j6DsJKdHfieb+YgJ7ATWxzNcB7Hc+Uya2TUck5MicOPhDV8HZImND7ZOecVr+OWg==",
       "dependencies": {
-        "@smithy/property-provider": "^2.0.15",
-        "@smithy/shared-ini-file-loader": "^2.2.5",
-        "@smithy/types": "^2.6.0",
+        "@smithy/property-provider": "^2.1.1",
+        "@smithy/shared-ini-file-loader": "^2.3.1",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -1641,14 +1670,14 @@
       }
     },
     "node_modules/@smithy/node-http-handler": {
-      "version": "2.1.10",
-      "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.1.10.tgz",
-      "integrity": "sha512-lkALAwtN6odygIM4nB8aHDahINM6WXXjNrZmWQAh0RSossySRT2qa31cFv0ZBuAYVWeprskRk13AFvvLmf1WLw==",
-      "dependencies": {
-        "@smithy/abort-controller": "^2.0.14",
-        "@smithy/protocol-http": "^3.0.10",
-        "@smithy/querystring-builder": "^2.0.14",
-        "@smithy/types": "^2.6.0",
+      "version": "2.3.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/node-http-handler/-/node-http-handler-2.3.1.tgz",
+      "integrity": "sha512-gLA8qK2nL9J0Rk/WEZSvgin4AppvuCYRYg61dcUo/uKxvMZsMInL5I5ZdJTogOvdfVug3N2dgI5ffcUfS4S9PA==",
+      "dependencies": {
+        "@smithy/abort-controller": "^2.1.1",
+        "@smithy/protocol-http": "^3.1.1",
+        "@smithy/querystring-builder": "^2.1.1",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -1656,11 +1685,11 @@
       }
     },
     "node_modules/@smithy/property-provider": {
-      "version": "2.0.15",
-      "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.0.15.tgz",
-      "integrity": "sha512-YbRFBn8oiiC3o1Kn3a4KjGa6k47rCM9++5W9cWqYn9WnkyH+hBWgfJAckuxpyA2Hq6Ys4eFrWzXq6fqHEw7iew==",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/property-provider/-/property-provider-2.1.1.tgz",
+      "integrity": "sha512-FX7JhhD/o5HwSwg6GLK9zxrMUrGnb3PzNBrcthqHKBc3dH0UfgEAU24xnJ8F0uow5mj17UeBEOI6o3CF2k7Mhw==",
       "dependencies": {
-        "@smithy/types": "^2.6.0",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -1668,11 +1697,11 @@
       }
     },
     "node_modules/@smithy/protocol-http": {
-      "version": "3.0.10",
-      "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.0.10.tgz",
-      "integrity": "sha512-6+tjNk7rXW7YTeGo9qwxXj/2BFpJTe37kTj3EnZCoX/nH+NP/WLA7O83fz8XhkGqsaAhLUPo/bB12vvd47nsmg==",
+      "version": "3.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/protocol-http/-/protocol-http-3.1.1.tgz",
+      "integrity": "sha512-6ZRTSsaXuSL9++qEwH851hJjUA0OgXdQFCs+VDw4tGH256jQ3TjYY/i34N4vd24RV3nrjNsgd1yhb57uMoKbzQ==",
       "dependencies": {
-        "@smithy/types": "^2.6.0",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -1680,12 +1709,12 @@
       }
     },
     "node_modules/@smithy/querystring-builder": {
-      "version": "2.0.14",
-      "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.0.14.tgz",
-      "integrity": "sha512-lQ4pm9vTv9nIhl5jt6uVMPludr6syE2FyJmHsIJJuOD7QPIJnrf9HhUGf1iHh9KJ4CUv21tpOU3X6s0rB6uJ0g==",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/querystring-builder/-/querystring-builder-2.1.1.tgz",
+      "integrity": "sha512-C/ko/CeEa8jdYE4gt6nHO5XDrlSJ3vdCG0ZAc6nD5ZIE7LBp0jCx4qoqp7eoutBu7VrGMXERSRoPqwi1WjCPbg==",
       "dependencies": {
-        "@smithy/types": "^2.6.0",
-        "@smithy/util-uri-escape": "^2.0.0",
+        "@smithy/types": "^2.9.1",
+        "@smithy/util-uri-escape": "^2.1.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -1693,11 +1722,11 @@
       }
     },
     "node_modules/@smithy/querystring-parser": {
-      "version": "2.0.14",
-      "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.0.14.tgz",
-      "integrity": "sha512-+cbtXWI9tNtQjlgQg3CA+pvL3zKTAxPnG3Pj6MP89CR3vi3QMmD0SOWoq84tqZDnJCxlsusbgIXk1ngMReXo+A==",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/querystring-parser/-/querystring-parser-2.1.1.tgz",
+      "integrity": "sha512-H4+6jKGVhG1W4CIxfBaSsbm98lOO88tpDWmZLgkJpt8Zkk/+uG0FmmqMuCAc3HNM2ZDV+JbErxr0l5BcuIf/XQ==",
       "dependencies": {
-        "@smithy/types": "^2.6.0",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -1705,22 +1734,22 @@
       }
     },
     "node_modules/@smithy/service-error-classification": {
-      "version": "2.0.7",
-      "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-2.0.7.tgz",
-      "integrity": "sha512-LLxgW12qGz8doYto15kZ4x1rHjtXl0BnCG6T6Wb8z2DI4PT9cJfOSvzbuLzy7+5I24PAepKgFeWHRd9GYy3Z9w==",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/service-error-classification/-/service-error-classification-2.1.1.tgz",
+      "integrity": "sha512-txEdZxPUgM1PwGvDvHzqhXisrc5LlRWYCf2yyHfvITWioAKat7srQvpjMAvgzf0t6t7j8yHrryXU9xt7RZqFpw==",
       "dependencies": {
-        "@smithy/types": "^2.6.0"
+        "@smithy/types": "^2.9.1"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@smithy/shared-ini-file-loader": {
-      "version": "2.2.5",
-      "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.2.5.tgz",
-      "integrity": "sha512-LHA68Iu7SmNwfAVe8egmjDCy648/7iJR/fK1UnVw+iAOUJoEYhX2DLgVd5pWllqdDiRbQQzgaHLcRokM+UFR1w==",
+      "version": "2.3.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.3.1.tgz",
+      "integrity": "sha512-2E2kh24igmIznHLB6H05Na4OgIEilRu0oQpYXo3LCNRrawHAcfDKq9004zJs+sAMt2X5AbY87CUCJ7IpqpSgdw==",
       "dependencies": {
-        "@smithy/types": "^2.6.0",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -1728,17 +1757,17 @@
       }
     },
     "node_modules/@smithy/signature-v4": {
-      "version": "2.0.16",
-      "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-2.0.16.tgz",
-      "integrity": "sha512-ilLY85xS2kZZzTb83diQKYLIYALvart0KnBaKnIRnMBHAGEio5aHSlANQoxVn0VsonwmQ3CnWhnCT0sERD8uTg==",
-      "dependencies": {
-        "@smithy/eventstream-codec": "^2.0.14",
-        "@smithy/is-array-buffer": "^2.0.0",
-        "@smithy/types": "^2.6.0",
-        "@smithy/util-hex-encoding": "^2.0.0",
-        "@smithy/util-middleware": "^2.0.7",
-        "@smithy/util-uri-escape": "^2.0.0",
-        "@smithy/util-utf8": "^2.0.2",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/signature-v4/-/signature-v4-2.1.1.tgz",
+      "integrity": "sha512-Hb7xub0NHuvvQD3YwDSdanBmYukoEkhqBjqoxo+bSdC0ryV9cTfgmNjuAQhTPYB6yeU7hTR+sPRiFMlxqv6kmg==",
+      "dependencies": {
+        "@smithy/eventstream-codec": "^2.1.1",
+        "@smithy/is-array-buffer": "^2.1.1",
+        "@smithy/types": "^2.9.1",
+        "@smithy/util-hex-encoding": "^2.1.1",
+        "@smithy/util-middleware": "^2.1.1",
+        "@smithy/util-uri-escape": "^2.1.1",
+        "@smithy/util-utf8": "^2.1.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -1746,13 +1775,15 @@
       }
     },
     "node_modules/@smithy/smithy-client": {
-      "version": "2.1.16",
-      "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.1.16.tgz",
-      "integrity": "sha512-Lw67+yQSpLl4YkDLUzI2KgS8TXclXmbzSeOJUmRFS4ueT56B4pw3RZRF/SRzvgyxM/HxgkUan8oSHXCujPDafQ==",
-      "dependencies": {
-        "@smithy/middleware-stack": "^2.0.8",
-        "@smithy/types": "^2.6.0",
-        "@smithy/util-stream": "^2.0.21",
+      "version": "2.3.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/smithy-client/-/smithy-client-2.3.1.tgz",
+      "integrity": "sha512-YsTdU8xVD64r2pLEwmltrNvZV6XIAC50LN6ivDopdt+YiF/jGH6PY9zUOu0CXD/d8GMB8gbhnpPsdrjAXHS9QA==",
+      "dependencies": {
+        "@smithy/middleware-endpoint": "^2.4.1",
+        "@smithy/middleware-stack": "^2.1.1",
+        "@smithy/protocol-http": "^3.1.1",
+        "@smithy/types": "^2.9.1",
+        "@smithy/util-stream": "^2.1.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -1760,9 +1791,9 @@
       }
     },
     "node_modules/@smithy/types": {
-      "version": "2.6.0",
-      "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.6.0.tgz",
-      "integrity": "sha512-PgqxJq2IcdMF9iAasxcqZqqoOXBHufEfmbEUdN1pmJrJltT42b0Sc8UiYSWWzKkciIp9/mZDpzYi4qYG1qqg6g==",
+      "version": "2.9.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/types/-/types-2.9.1.tgz",
+      "integrity": "sha512-vjXlKNXyprDYDuJ7UW5iobdmyDm6g8dDG+BFUncAg/3XJaN45Gy5RWWWUVgrzIK7S4R1KWgIX5LeJcfvSI24bw==",
       "dependencies": {
         "tslib": "^2.5.0"
       },
@@ -1771,21 +1802,21 @@
       }
     },
     "node_modules/@smithy/url-parser": {
-      "version": "2.0.14",
-      "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.0.14.tgz",
-      "integrity": "sha512-kbu17Y1AFXi5lNlySdDj7ZzmvupyWKCX/0jNZ8ffquRyGdbDZb+eBh0QnWqsSmnZa/ctyWaTf7n4l/pXLExrnw==",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/url-parser/-/url-parser-2.1.1.tgz",
+      "integrity": "sha512-qC9Bv8f/vvFIEkHsiNrUKYNl8uKQnn4BdhXl7VzQRP774AwIjiSMMwkbT+L7Fk8W8rzYVifzJNYxv1HwvfBo3Q==",
       "dependencies": {
-        "@smithy/querystring-parser": "^2.0.14",
-        "@smithy/types": "^2.6.0",
+        "@smithy/querystring-parser": "^2.1.1",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       }
     },
     "node_modules/@smithy/util-base64": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-2.0.1.tgz",
-      "integrity": "sha512-DlI6XFYDMsIVN+GH9JtcRp3j02JEVuWIn/QOZisVzpIAprdsxGveFed0bjbMRCqmIFe8uetn5rxzNrBtIGrPIQ==",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-base64/-/util-base64-2.1.1.tgz",
+      "integrity": "sha512-UfHVpY7qfF/MrgndI5PexSKVTxSZIdz9InghTFa49QOvuu9I52zLPLUHXvHpNuMb1iD2vmc6R+zbv/bdMipR/g==",
       "dependencies": {
-        "@smithy/util-buffer-from": "^2.0.0",
+        "@smithy/util-buffer-from": "^2.1.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -1793,17 +1824,17 @@
       }
     },
     "node_modules/@smithy/util-body-length-browser": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-2.0.0.tgz",
-      "integrity": "sha512-JdDuS4ircJt+FDnaQj88TzZY3+njZ6O+D3uakS32f2VNnDo3vyEuNdBOh/oFd8Df1zSZOuH1HEChk2AOYDezZg==",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-body-length-browser/-/util-body-length-browser-2.1.1.tgz",
+      "integrity": "sha512-ekOGBLvs1VS2d1zM2ER4JEeBWAvIOUKeaFch29UjjJsxmZ/f0L3K3x0dEETgh3Q9bkZNHgT+rkdl/J/VUqSRag==",
       "dependencies": {
         "tslib": "^2.5.0"
       }
     },
     "node_modules/@smithy/util-body-length-node": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-2.1.0.tgz",
-      "integrity": "sha512-/li0/kj/y3fQ3vyzn36NTLGmUwAICb7Jbe/CsWCktW363gh1MOcpEcSO3mJ344Gv2dqz8YJCLQpb6hju/0qOWw==",
+      "version": "2.2.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-body-length-node/-/util-body-length-node-2.2.1.tgz",
+      "integrity": "sha512-/ggJG+ta3IDtpNVq4ktmEUtOkH1LW64RHB5B0hcr5ZaWBmo96UX2cIOVbjCqqDickTXqBWZ4ZO0APuaPrD7Abg==",
       "dependencies": {
         "tslib": "^2.5.0"
       },
@@ -1812,11 +1843,11 @@
       }
     },
     "node_modules/@smithy/util-buffer-from": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.0.0.tgz",
-      "integrity": "sha512-/YNnLoHsR+4W4Vf2wL5lGv0ksg8Bmk3GEGxn2vEQt52AQaPSCuaO5PM5VM7lP1K9qHRKHwrPGktqVoAHKWHxzw==",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-buffer-from/-/util-buffer-from-2.1.1.tgz",
+      "integrity": "sha512-clhNjbyfqIv9Md2Mg6FffGVrJxw7bgK7s3Iax36xnfVj6cg0fUG7I4RH0XgXJF8bxi+saY5HR21g2UPKSxVCXg==",
       "dependencies": {
-        "@smithy/is-array-buffer": "^2.0.0",
+        "@smithy/is-array-buffer": "^2.1.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -1824,9 +1855,9 @@
       }
     },
     "node_modules/@smithy/util-config-provider": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-2.0.0.tgz",
-      "integrity": "sha512-xCQ6UapcIWKxXHEU4Mcs2s7LcFQRiU3XEluM2WcCjjBtQkUN71Tb+ydGmJFPxMUrW/GWMgQEEGipLym4XG0jZg==",
+      "version": "2.2.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-config-provider/-/util-config-provider-2.2.1.tgz",
+      "integrity": "sha512-50VL/tx9oYYcjJn/qKqNy7sCtpD0+s8XEBamIFo4mFFTclKMNp+rsnymD796uybjiIquB7VCB/DeafduL0y2kw==",
       "dependencies": {
         "tslib": "^2.5.0"
       },
@@ -1835,13 +1866,13 @@
       }
     },
     "node_modules/@smithy/util-defaults-mode-browser": {
-      "version": "2.0.20",
-      "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.0.20.tgz",
-      "integrity": "sha512-QJtnbTIl0/BbEASkx1MUFf6EaoWqWW1/IM90N++8NNscePvPf77GheYfpoPis6CBQawUWq8QepTP2QUSAdrVkw==",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.1.1.tgz",
+      "integrity": "sha512-lqLz/9aWRO6mosnXkArtRuQqqZBhNpgI65YDpww4rVQBuUT7qzKbDLG5AmnQTCiU4rOquaZO/Kt0J7q9Uic7MA==",
       "dependencies": {
-        "@smithy/property-provider": "^2.0.15",
-        "@smithy/smithy-client": "^2.1.16",
-        "@smithy/types": "^2.6.0",
+        "@smithy/property-provider": "^2.1.1",
+        "@smithy/smithy-client": "^2.3.1",
+        "@smithy/types": "^2.9.1",
         "bowser": "^2.11.0",
         "tslib": "^2.5.0"
       },
@@ -1850,16 +1881,16 @@
       }
     },
     "node_modules/@smithy/util-defaults-mode-node": {
-      "version": "2.0.26",
-      "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.0.26.tgz",
-      "integrity": "sha512-lGFPOFCHv1ql019oegYqa54BZH7HREw6EBqjDLbAr0wquMX0BDi2sg8TJ6Eq+JGLijkZbJB73m4+aK8OFAapMg==",
-      "dependencies": {
-        "@smithy/config-resolver": "^2.0.19",
-        "@smithy/credential-provider-imds": "^2.1.2",
-        "@smithy/node-config-provider": "^2.1.6",
-        "@smithy/property-provider": "^2.0.15",
-        "@smithy/smithy-client": "^2.1.16",
-        "@smithy/types": "^2.6.0",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.1.1.tgz",
+      "integrity": "sha512-tYVrc+w+jSBfBd267KDnvSGOh4NMz+wVH7v4CClDbkdPfnjvImBZsOURncT5jsFwR9KCuDyPoSZq4Pa6+eCUrA==",
+      "dependencies": {
+        "@smithy/config-resolver": "^2.1.1",
+        "@smithy/credential-provider-imds": "^2.2.1",
+        "@smithy/node-config-provider": "^2.2.1",
+        "@smithy/property-provider": "^2.1.1",
+        "@smithy/smithy-client": "^2.3.1",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -1867,12 +1898,12 @@
       }
     },
     "node_modules/@smithy/util-endpoints": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-1.0.5.tgz",
-      "integrity": "sha512-K7qNuCOD5K/90MjHvHm9kJldrfm40UxWYQxNEShMFxV/lCCCRIg8R4uu1PFAxRvPxNpIdcrh1uK6I1ISjDXZJw==",
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-endpoints/-/util-endpoints-1.1.1.tgz",
+      "integrity": "sha512-sI4d9rjoaekSGEtq3xSb2nMjHMx8QXcz2cexnVyRWsy4yQ9z3kbDpX+7fN0jnbdOp0b3KSTZJZ2Yb92JWSanLw==",
       "dependencies": {
-        "@smithy/node-config-provider": "^2.1.6",
-        "@smithy/types": "^2.6.0",
+        "@smithy/node-config-provider": "^2.2.1",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -1880,9 +1911,9 @@
       }
     },
     "node_modules/@smithy/util-hex-encoding": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-2.0.0.tgz",
-      "integrity": "sha512-c5xY+NUnFqG6d7HFh1IFfrm3mGl29lC+vF+geHv4ToiuJCBmIfzx6IeHLg+OgRdPFKDXIw6pvi+p3CsscaMcMA==",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-hex-encoding/-/util-hex-encoding-2.1.1.tgz",
+      "integrity": "sha512-3UNdP2pkYUUBGEXzQI9ODTDK+Tcu1BlCyDBaRHwyxhA+8xLP8agEKQq4MGmpjqb4VQAjq9TwlCQX0kP6XDKYLg==",
       "dependencies": {
         "tslib": "^2.5.0"
       },
@@ -1891,11 +1922,11 @@
       }
     },
     "node_modules/@smithy/util-middleware": {
-      "version": "2.0.7",
-      "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.0.7.tgz",
-      "integrity": "sha512-tRINOTlf1G9B0ECarFQAtTgMhpnrMPSa+5j4ZEwEawCLfTFTavk6757sxhE4RY5RMlD/I3x+DCS8ZUiR8ho9Pw==",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-middleware/-/util-middleware-2.1.1.tgz",
+      "integrity": "sha512-mKNrk8oz5zqkNcbcgAAepeJbmfUW6ogrT2Z2gDbIUzVzNAHKJQTYmH9jcy0jbWb+m7ubrvXKb6uMjkSgAqqsFA==",
       "dependencies": {
-        "@smithy/types": "^2.6.0",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -1903,12 +1934,12 @@
       }
     },
     "node_modules/@smithy/util-retry": {
-      "version": "2.0.7",
-      "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-2.0.7.tgz",
-      "integrity": "sha512-fIe5yARaF0+xVT1XKcrdnHKTJ1Vc4+3e3tLDjCuIcE9b6fkBzzGFY7AFiX4M+vj6yM98DrwkuZeHf7/hmtVp0Q==",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-retry/-/util-retry-2.1.1.tgz",
+      "integrity": "sha512-Mg+xxWPTeSPrthpC5WAamJ6PW4Kbo01Fm7lWM1jmGRvmrRdsd3192Gz2fBXAMURyXpaNxyZf6Hr/nQ4q70oVEA==",
       "dependencies": {
-        "@smithy/service-error-classification": "^2.0.7",
-        "@smithy/types": "^2.6.0",
+        "@smithy/service-error-classification": "^2.1.1",
+        "@smithy/types": "^2.9.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -1916,17 +1947,17 @@
       }
     },
     "node_modules/@smithy/util-stream": {
-      "version": "2.0.21",
-      "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-2.0.21.tgz",
-      "integrity": "sha512-0BUE16d7n1x7pi1YluXJdB33jOTyBChT0j/BlOkFa9uxfg6YqXieHxjHNuCdJRARa7AZEj32LLLEPJ1fSa4inA==",
-      "dependencies": {
-        "@smithy/fetch-http-handler": "^2.2.7",
-        "@smithy/node-http-handler": "^2.1.10",
-        "@smithy/types": "^2.6.0",
-        "@smithy/util-base64": "^2.0.1",
-        "@smithy/util-buffer-from": "^2.0.0",
-        "@smithy/util-hex-encoding": "^2.0.0",
-        "@smithy/util-utf8": "^2.0.2",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-stream/-/util-stream-2.1.1.tgz",
+      "integrity": "sha512-J7SMIpUYvU4DQN55KmBtvaMc7NM3CZ2iWICdcgaovtLzseVhAqFRYqloT3mh0esrFw+3VEK6nQFteFsTqZSECQ==",
+      "dependencies": {
+        "@smithy/fetch-http-handler": "^2.4.1",
+        "@smithy/node-http-handler": "^2.3.1",
+        "@smithy/types": "^2.9.1",
+        "@smithy/util-base64": "^2.1.1",
+        "@smithy/util-buffer-from": "^2.1.1",
+        "@smithy/util-hex-encoding": "^2.1.1",
+        "@smithy/util-utf8": "^2.1.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -1934,9 +1965,9 @@
       }
     },
     "node_modules/@smithy/util-uri-escape": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-2.0.0.tgz",
-      "integrity": "sha512-ebkxsqinSdEooQduuk9CbKcI+wheijxEb3utGXkCoYQkJnwTnLbH1JXGimJtUkQwNQbsbuYwG2+aFVyZf5TLaw==",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-uri-escape/-/util-uri-escape-2.1.1.tgz",
+      "integrity": "sha512-saVzI1h6iRBUVSqtnlOnc9ssU09ypo7n+shdQ8hBTZno/9rZ3AuRYvoHInV57VF7Qn7B+pFJG7qTzFiHxWlWBw==",
       "dependencies": {
         "tslib": "^2.5.0"
       },
@@ -1945,11 +1976,11 @@
       }
     },
     "node_modules/@smithy/util-utf8": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.0.2.tgz",
-      "integrity": "sha512-qOiVORSPm6Ce4/Yu6hbSgNHABLP2VMv8QOC3tTDNHHlWY19pPyc++fBTbZPtx6egPXi4HQxKDnMxVxpbtX2GoA==",
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-utf8/-/util-utf8-2.1.1.tgz",
+      "integrity": "sha512-BqTpzYEcUMDwAKr7/mVRUtHDhs6ZoXDi9NypMvMfOr/+u1NW7JgqodPDECiiLboEm6bobcPcECxzjtQh865e9A==",
       "dependencies": {
-        "@smithy/util-buffer-from": "^2.0.0",
+        "@smithy/util-buffer-from": "^2.1.1",
         "tslib": "^2.5.0"
       },
       "engines": {
@@ -1958,7 +1989,7 @@
     },
     "node_modules/@types/babel__core": {
       "version": "7.20.5",
-      "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
+      "resolved": "https://registry.npmmirror.com/@types/babel__core/-/babel__core-7.20.5.tgz",
       "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
       "dependencies": {
         "@babel/parser": "^7.20.7",
@@ -1969,16 +2000,16 @@
       }
     },
     "node_modules/@types/babel__generator": {
-      "version": "7.6.7",
-      "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz",
-      "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==",
+      "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.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
+      "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",
@@ -1986,29 +2017,29 @@
       }
     },
     "node_modules/@types/babel__traverse": {
-      "version": "7.20.4",
-      "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz",
-      "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==",
+      "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.11",
-      "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.11.tgz",
+      "resolved": "https://registry.npmmirror.com/@types/chai/-/chai-4.3.11.tgz",
       "integrity": "sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ=="
     },
     "node_modules/@types/sinon": {
-      "version": "17.0.2",
-      "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-17.0.2.tgz",
-      "integrity": "sha512-Zt6heIGsdqERkxctIpvN5Pv3edgBrhoeb3yHyxffd4InN0AX2SVNKSrhdDZKGQICVOxWP/q4DyhpfPNMSrpIiA==",
+      "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.npmjs.org/@types/sinon-chai/-/sinon-chai-3.2.12.tgz",
+      "resolved": "https://registry.npmmirror.com/@types/sinon-chai/-/sinon-chai-3.2.12.tgz",
       "integrity": "sha512-9y0Gflk3b0+NhQZ/oxGtaAJDvRywCa5sIyaVnounqLvmf93yBF4EgIRspePtkMs3Tr844nCclYMlcCNmLCvjuQ==",
       "dependencies": {
         "@types/chai": "*",
@@ -2017,25 +2048,25 @@
     },
     "node_modules/@types/sinonjs__fake-timers": {
       "version": "8.1.5",
-      "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz",
+      "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/@types/webidl-conversions": {
       "version": "7.0.3",
-      "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz",
+      "resolved": "https://registry.npmmirror.com/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz",
       "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA=="
     },
     "node_modules/@types/whatwg-url": {
-      "version": "11.0.3",
-      "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.3.tgz",
-      "integrity": "sha512-z1ELvMijRL1QmU7QuzDkeYXSF2+dXI0ITKoQsIoVKcNBOiK5RMmWy+pYYxJTHFt8vkpZe7UsvRErQwcxZkjoUw==",
+      "version": "11.0.4",
+      "resolved": "https://registry.npmmirror.com/@types/whatwg-url/-/whatwg-url-11.0.4.tgz",
+      "integrity": "sha512-lXCmTWSHJvf0TRSO58nm978b8HJ/EdsSsEKLd3ODHFjo+3VGAyyTp4v50nWvwtzBxSMQrVOK7tcuN0zGPLICMw==",
       "dependencies": {
         "@types/webidl-conversions": "*"
       }
     },
     "node_modules/abbrev": {
       "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/abbrev/-/abbrev-2.0.0.tgz",
       "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==",
       "engines": {
         "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
@@ -2043,7 +2074,7 @@
     },
     "node_modules/abort-controller": {
       "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/abort-controller/-/abort-controller-3.0.0.tgz",
       "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
       "dependencies": {
         "event-target-shim": "^5.0.0"
@@ -2054,7 +2085,7 @@
     },
     "node_modules/accepts": {
       "version": "1.3.8",
-      "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
+      "resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz",
       "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
       "dependencies": {
         "mime-types": "~2.1.34",
@@ -2065,9 +2096,9 @@
       }
     },
     "node_modules/acorn": {
-      "version": "8.11.2",
-      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz",
-      "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==",
+      "version": "8.11.3",
+      "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz",
+      "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
       "bin": {
         "acorn": "bin/acorn"
       },
@@ -2077,7 +2108,7 @@
     },
     "node_modules/acorn-class-fields": {
       "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/acorn-class-fields/-/acorn-class-fields-1.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/acorn-class-fields/-/acorn-class-fields-1.0.0.tgz",
       "integrity": "sha512-l+1FokF34AeCXGBHkrXFmml9nOIRI+2yBnBpO5MaVAaTIJ96irWLtcCxX+7hAp6USHFCe+iyyBB4ZhxV807wmA==",
       "dependencies": {
         "acorn-private-class-elements": "^1.0.0"
@@ -2091,7 +2122,7 @@
     },
     "node_modules/acorn-numeric-separator": {
       "version": "0.3.6",
-      "resolved": "https://registry.npmjs.org/acorn-numeric-separator/-/acorn-numeric-separator-0.3.6.tgz",
+      "resolved": "https://registry.npmmirror.com/acorn-numeric-separator/-/acorn-numeric-separator-0.3.6.tgz",
       "integrity": "sha512-jUr5esgChu4k7VzesH/Nww3EysuyGJJcTEEiXqILUFKpO96PNyEXmK21M6nE0TSqGA1PeEg1MzgqJaoFsn9JMw==",
       "deprecated": "acorn>=7.4 supports numeric separators",
       "engines": {
@@ -2103,7 +2134,7 @@
     },
     "node_modules/acorn-private-class-elements": {
       "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/acorn-private-class-elements/-/acorn-private-class-elements-1.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/acorn-private-class-elements/-/acorn-private-class-elements-1.0.0.tgz",
       "integrity": "sha512-zYNcZtxKgVCg1brS39BEou86mIao1EV7eeREG+6WMwKbuYTeivRRs6S2XdWnboRde6G9wKh2w+WBydEyJsJ6mg==",
       "engines": {
         "node": ">=4.8.2"
@@ -2114,7 +2145,7 @@
     },
     "node_modules/acorn-private-methods": {
       "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/acorn-private-methods/-/acorn-private-methods-1.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/acorn-private-methods/-/acorn-private-methods-1.0.0.tgz",
       "integrity": "sha512-Jou2L3nfwfPpFdmmHObI3yUpVPM1bPohTUAZCyVDw5Efyn9LSS6E36neRLCRfIr8QjskAfdxRdABOrvP4c/gwQ==",
       "dependencies": {
         "acorn-private-class-elements": "^1.0.0"
@@ -2128,7 +2159,7 @@
     },
     "node_modules/acorn-static-class-features": {
       "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/acorn-static-class-features/-/acorn-static-class-features-1.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/acorn-static-class-features/-/acorn-static-class-features-1.0.0.tgz",
       "integrity": "sha512-XZJECjbmMOKvMHiNzbiPXuXpLAJfN3dAKtfIYbk1eHiWdsutlek+gS7ND4B8yJ3oqvHo1NxfafnezVmq7NXK0A==",
       "dependencies": {
         "acorn-private-class-elements": "^1.0.0"
@@ -2142,7 +2173,7 @@
     },
     "node_modules/analytics-node": {
       "version": "5.1.2",
-      "resolved": "https://registry.npmjs.org/analytics-node/-/analytics-node-5.1.2.tgz",
+      "resolved": "https://registry.npmmirror.com/analytics-node/-/analytics-node-5.1.2.tgz",
       "integrity": "sha512-WZ8gkXtLuqD2Q2xEOr/2/LJiR0AnhWHfXZhfPnMZpB7vEwCsh3HapYAUmA1cPj1abrhAqBX7POWuWo/1wUu/Fw==",
       "dependencies": {
         "@segment/loosely-validate-event": "^2.0.0",
@@ -2160,7 +2191,7 @@
     },
     "node_modules/ansi-escape-sequences": {
       "version": "5.1.2",
-      "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-5.1.2.tgz",
+      "resolved": "https://registry.npmmirror.com/ansi-escape-sequences/-/ansi-escape-sequences-5.1.2.tgz",
       "integrity": "sha512-JcpoVp1W1bl1Qn4cVuiXEhD6+dyXKSOgCn2zlzE8inYgCJCBy1aPnUhlz6I4DFum8D4ovb9Qi/iAjUcGvG2lqw==",
       "dependencies": {
         "array-back": "^4.0.0"
@@ -2171,7 +2202,7 @@
     },
     "node_modules/ansi-regex": {
       "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz",
       "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
       "engines": {
         "node": ">=8"
@@ -2179,7 +2210,7 @@
     },
     "node_modules/ansi-styles": {
       "version": "3.2.1",
-      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz",
       "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
       "dependencies": {
         "color-convert": "^1.9.0"
@@ -2190,12 +2221,12 @@
     },
     "node_modules/argparse": {
       "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz",
       "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
     },
     "node_modules/array-back": {
       "version": "4.0.2",
-      "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz",
+      "resolved": "https://registry.npmmirror.com/array-back/-/array-back-4.0.2.tgz",
       "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==",
       "engines": {
         "node": ">=8"
@@ -2203,12 +2234,12 @@
     },
     "node_modules/array-flatten": {
       "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+      "resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz",
       "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
     },
     "node_modules/askcharacter": {
       "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/askcharacter/-/askcharacter-1.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/askcharacter/-/askcharacter-1.0.0.tgz",
       "integrity": "sha512-WsJcKyOh7iOWQSWcwPVE//yDUSXn3WvL+bgT9JYdEuiY/xeg1Vgwl5re72ZzufhXOwoiCrWWxW4CscRrxb3kZg==",
       "dependencies": {
         "hijack-stream": "^1.0.0"
@@ -2216,7 +2247,7 @@
     },
     "node_modules/askpassword": {
       "version": "1.2.4",
-      "resolved": "https://registry.npmjs.org/askpassword/-/askpassword-1.2.4.tgz",
+      "resolved": "https://registry.npmmirror.com/askpassword/-/askpassword-1.2.4.tgz",
       "integrity": "sha512-HR27ScUv/j6vHSKU0AN+y3pGA3iqXzD09qqJl6JjVqSJRk7QiKPJt+W4tFhozMbiTsOh/QrIkeRi+Okd97VkRA==",
       "dependencies": {
         "handle-backspaces": "^1.0.0",
@@ -2225,12 +2256,12 @@
     },
     "node_modules/aws4": {
       "version": "1.12.0",
-      "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz",
+      "resolved": "https://registry.npmmirror.com/aws4/-/aws4-1.12.0.tgz",
       "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg=="
     },
     "node_modules/axios": {
       "version": "0.21.4",
-      "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
+      "resolved": "https://registry.npmmirror.com/axios/-/axios-0.21.4.tgz",
       "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
       "dependencies": {
         "follow-redirects": "^1.14.0"
@@ -2238,7 +2269,7 @@
     },
     "node_modules/axios-retry": {
       "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/axios-retry/-/axios-retry-3.2.0.tgz",
+      "resolved": "https://registry.npmmirror.com/axios-retry/-/axios-retry-3.2.0.tgz",
       "integrity": "sha512-RK2cLMgIsAQBDhlIsJR5dOhODPigvel18XUv1dDXW+4k1FzebyfRk+C+orot6WPZOYFKSfhLwHPwVmTVOODQ5w==",
       "dependencies": {
         "is-retry-allowed": "^1.1.0"
@@ -2246,32 +2277,18 @@
     },
     "node_modules/balanced-match": {
       "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+      "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
       "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
     },
     "node_modules/base64-js": {
       "version": "1.5.1",
-      "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+      "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz",
       "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
-      "funding": [
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/feross"
-        },
-        {
-          "type": "patreon",
-          "url": "https://www.patreon.com/feross"
-        },
-        {
-          "type": "consulting",
-          "url": "https://feross.org/support"
-        }
-      ],
       "optional": true
     },
     "node_modules/big-integer": {
       "version": "1.6.52",
-      "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz",
+      "resolved": "https://registry.npmmirror.com/big-integer/-/big-integer-1.6.52.tgz",
       "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==",
       "engines": {
         "node": ">=0.6"
@@ -2279,7 +2296,7 @@
     },
     "node_modules/bindings": {
       "version": "1.5.0",
-      "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+      "resolved": "https://registry.npmmirror.com/bindings/-/bindings-1.5.0.tgz",
       "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
       "optional": true,
       "dependencies": {
@@ -2288,7 +2305,7 @@
     },
     "node_modules/bl": {
       "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+      "resolved": "https://registry.npmmirror.com/bl/-/bl-4.1.0.tgz",
       "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
       "optional": true,
       "dependencies": {
@@ -2299,7 +2316,7 @@
     },
     "node_modules/body-parser": {
       "version": "1.20.1",
-      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
+      "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.1.tgz",
       "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
       "dependencies": {
         "bytes": "3.1.2",
@@ -2322,7 +2339,7 @@
     },
     "node_modules/body-parser/node_modules/debug": {
       "version": "2.6.9",
-      "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+      "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
       "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
       "dependencies": {
         "ms": "2.0.0"
@@ -2330,17 +2347,17 @@
     },
     "node_modules/body-parser/node_modules/ms": {
       "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
       "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
     },
     "node_modules/bowser": {
       "version": "2.11.0",
-      "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz",
+      "resolved": "https://registry.npmmirror.com/bowser/-/bowser-2.11.0.tgz",
       "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA=="
     },
     "node_modules/bplist-parser": {
       "version": "0.2.0",
-      "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz",
+      "resolved": "https://registry.npmmirror.com/bplist-parser/-/bplist-parser-0.2.0.tgz",
       "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==",
       "dependencies": {
         "big-integer": "^1.6.44"
@@ -2351,33 +2368,19 @@
     },
     "node_modules/brace-expansion": {
       "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz",
       "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
       "dependencies": {
         "balanced-match": "^1.0.0"
       }
     },
     "node_modules/browserslist": {
-      "version": "4.22.2",
-      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz",
-      "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==",
-      "funding": [
-        {
-          "type": "opencollective",
-          "url": "https://opencollective.com/browserslist"
-        },
-        {
-          "type": "tidelift",
-          "url": "https://tidelift.com/funding/github/npm/browserslist"
-        },
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/ai"
-        }
-      ],
+      "version": "4.22.3",
+      "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.22.3.tgz",
+      "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==",
       "dependencies": {
-        "caniuse-lite": "^1.0.30001565",
-        "electron-to-chromium": "^1.4.601",
+        "caniuse-lite": "^1.0.30001580",
+        "electron-to-chromium": "^1.4.648",
         "node-releases": "^2.0.14",
         "update-browserslist-db": "^1.0.13"
       },
@@ -2389,31 +2392,17 @@
       }
     },
     "node_modules/bson": {
-      "version": "6.2.0",
-      "resolved": "https://registry.npmjs.org/bson/-/bson-6.2.0.tgz",
-      "integrity": "sha512-ID1cI+7bazPDyL9wYy9GaQ8gEEohWvcUl/Yf0dIdutJxnmInEEyCsb4awy/OiBfall7zBA179Pahi3vCdFze3Q==",
+      "version": "6.3.0",
+      "resolved": "https://registry.npmmirror.com/bson/-/bson-6.3.0.tgz",
+      "integrity": "sha512-balJfqwwTBddxfnidJZagCBPP/f48zj9Sdp3OJswREOgsJzHiQSaOIAtApSgDQFYgHqAvFkp53AFSqjMDZoTFw==",
       "engines": {
         "node": ">=16.20.1"
       }
     },
     "node_modules/buffer": {
       "version": "5.7.1",
-      "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+      "resolved": "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz",
       "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
-      "funding": [
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/feross"
-        },
-        {
-          "type": "patreon",
-          "url": "https://www.patreon.com/feross"
-        },
-        {
-          "type": "consulting",
-          "url": "https://feross.org/support"
-        }
-      ],
       "optional": true,
       "dependencies": {
         "base64-js": "^1.3.1",
@@ -2422,21 +2411,18 @@
     },
     "node_modules/bundle-name": {
       "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/bundle-name/-/bundle-name-3.0.0.tgz",
       "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==",
       "dependencies": {
         "run-applescript": "^5.0.0"
       },
       "engines": {
         "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/bytes": {
       "version": "3.1.2",
-      "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+      "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz",
       "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
       "engines": {
         "node": ">= 0.8"
@@ -2444,39 +2430,22 @@
     },
     "node_modules/call-bind": {
       "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
+      "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.5.tgz",
       "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
       "dependencies": {
         "function-bind": "^1.1.2",
         "get-intrinsic": "^1.2.1",
         "set-function-length": "^1.1.1"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
       }
     },
     "node_modules/caniuse-lite": {
-      "version": "1.0.30001566",
-      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001566.tgz",
-      "integrity": "sha512-ggIhCsTxmITBAMmK8yZjEhCO5/47jKXPu6Dha/wuCS4JePVL+3uiDEBuhu2aIoT+bqTOR8L76Ip1ARL9xYsEJA==",
-      "funding": [
-        {
-          "type": "opencollective",
-          "url": "https://opencollective.com/browserslist"
-        },
-        {
-          "type": "tidelift",
-          "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
-        },
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/ai"
-        }
-      ]
+      "version": "1.0.30001583",
+      "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001583.tgz",
+      "integrity": "sha512-acWTYaha8xfhA/Du/z4sNZjHUWjkiuoAi2LM+T/aL+kemKQgPT1xBb/YKjlQ0Qo8gvbHsGNplrEJ+9G3gL7i4Q=="
     },
     "node_modules/chalk": {
       "version": "2.4.2",
-      "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+      "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz",
       "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
       "dependencies": {
         "ansi-styles": "^3.2.1",
@@ -2489,7 +2458,7 @@
     },
     "node_modules/chalk/node_modules/escape-string-regexp": {
       "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+      "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
       "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
       "engines": {
         "node": ">=0.8.0"
@@ -2497,7 +2466,7 @@
     },
     "node_modules/charenc": {
       "version": "0.0.2",
-      "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
+      "resolved": "https://registry.npmmirror.com/charenc/-/charenc-0.0.2.tgz",
       "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==",
       "engines": {
         "node": "*"
@@ -2505,7 +2474,7 @@
     },
     "node_modules/chownr": {
       "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/chownr/-/chownr-2.0.0.tgz",
       "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
       "engines": {
         "node": ">=10"
@@ -2513,7 +2482,7 @@
     },
     "node_modules/color-convert": {
       "version": "1.9.3",
-      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz",
       "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
       "dependencies": {
         "color-name": "1.1.3"
@@ -2521,12 +2490,12 @@
     },
     "node_modules/color-name": {
       "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz",
       "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
     },
     "node_modules/commander": {
       "version": "10.0.1",
-      "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/commander/-/commander-10.0.1.tgz",
       "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
       "engines": {
         "node": ">=14"
@@ -2534,15 +2503,12 @@
     },
     "node_modules/component-type": {
       "version": "1.2.2",
-      "resolved": "https://registry.npmjs.org/component-type/-/component-type-1.2.2.tgz",
-      "integrity": "sha512-99VUHREHiN5cLeHm3YLq312p6v+HUEcwtLCAtelvUDI6+SH5g5Cr85oNR2S1o6ywzL0ykMbuwLzM2ANocjEOIA==",
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
+      "resolved": "https://registry.npmmirror.com/component-type/-/component-type-1.2.2.tgz",
+      "integrity": "sha512-99VUHREHiN5cLeHm3YLq312p6v+HUEcwtLCAtelvUDI6+SH5g5Cr85oNR2S1o6ywzL0ykMbuwLzM2ANocjEOIA=="
     },
     "node_modules/config-chain": {
       "version": "1.1.13",
-      "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz",
+      "resolved": "https://registry.npmmirror.com/config-chain/-/config-chain-1.1.13.tgz",
       "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==",
       "dependencies": {
         "ini": "^1.3.4",
@@ -2551,7 +2517,7 @@
     },
     "node_modules/content-disposition": {
       "version": "0.5.4",
-      "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
+      "resolved": "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz",
       "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
       "dependencies": {
         "safe-buffer": "5.2.1"
@@ -2562,7 +2528,7 @@
     },
     "node_modules/content-type": {
       "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
+      "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz",
       "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
       "engines": {
         "node": ">= 0.6"
@@ -2570,12 +2536,12 @@
     },
     "node_modules/convert-source-map": {
       "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz",
       "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="
     },
     "node_modules/cookie": {
       "version": "0.5.0",
-      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
+      "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.5.0.tgz",
       "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
       "engines": {
         "node": ">= 0.6"
@@ -2583,12 +2549,12 @@
     },
     "node_modules/cookie-signature": {
       "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+      "resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz",
       "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
     },
     "node_modules/cross-spawn": {
       "version": "7.0.3",
-      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+      "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz",
       "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
       "dependencies": {
         "path-key": "^3.1.0",
@@ -2601,7 +2567,7 @@
     },
     "node_modules/crypt": {
       "version": "0.0.2",
-      "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
+      "resolved": "https://registry.npmmirror.com/crypt/-/crypt-0.0.2.tgz",
       "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==",
       "engines": {
         "node": "*"
@@ -2609,7 +2575,7 @@
     },
     "node_modules/debug": {
       "version": "4.3.4",
-      "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+      "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz",
       "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
       "dependencies": {
         "ms": "2.1.2"
@@ -2625,12 +2591,12 @@
     },
     "node_modules/debug/node_modules/ms": {
       "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz",
       "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
     },
     "node_modules/decompress-response": {
       "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-6.0.0.tgz",
       "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
       "optional": true,
       "dependencies": {
@@ -2638,14 +2604,11 @@
       },
       "engines": {
         "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/dedent": {
       "version": "1.5.1",
-      "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz",
+      "resolved": "https://registry.npmmirror.com/dedent/-/dedent-1.5.1.tgz",
       "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==",
       "peerDependencies": {
         "babel-plugin-macros": "^3.1.0"
@@ -2658,7 +2621,7 @@
     },
     "node_modules/deep-extend": {
       "version": "0.6.0",
-      "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+      "resolved": "https://registry.npmmirror.com/deep-extend/-/deep-extend-0.6.0.tgz",
       "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
       "optional": true,
       "engines": {
@@ -2667,7 +2630,7 @@
     },
     "node_modules/default-browser": {
       "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/default-browser/-/default-browser-4.0.0.tgz",
       "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==",
       "dependencies": {
         "bundle-name": "^3.0.0",
@@ -2677,14 +2640,11 @@
       },
       "engines": {
         "node": ">=14.16"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/default-browser-id": {
       "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/default-browser-id/-/default-browser-id-3.0.0.tgz",
       "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==",
       "dependencies": {
         "bplist-parser": "^0.2.0",
@@ -2692,14 +2652,11 @@
       },
       "engines": {
         "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/define-data-property": {
       "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz",
+      "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.1.tgz",
       "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==",
       "dependencies": {
         "get-intrinsic": "^1.2.1",
@@ -2712,18 +2669,15 @@
     },
     "node_modules/define-lazy-prop": {
       "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
       "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==",
       "engines": {
         "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/depd": {
       "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz",
       "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
       "engines": {
         "node": ">= 0.8"
@@ -2731,7 +2685,7 @@
     },
     "node_modules/destroy": {
       "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
+      "resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz",
       "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
       "engines": {
         "node": ">= 0.8",
@@ -2740,7 +2694,7 @@
     },
     "node_modules/detect-libc": {
       "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz",
+      "resolved": "https://registry.npmmirror.com/detect-libc/-/detect-libc-2.0.2.tgz",
       "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==",
       "optional": true,
       "engines": {
@@ -2749,12 +2703,12 @@
     },
     "node_modules/eastasianwidth": {
       "version": "0.2.0",
-      "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+      "resolved": "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
       "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
     },
     "node_modules/editorconfig": {
       "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.4.tgz",
+      "resolved": "https://registry.npmmirror.com/editorconfig/-/editorconfig-1.0.4.tgz",
       "integrity": "sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==",
       "dependencies": {
         "@one-ini/wasm": "0.1.1",
@@ -2771,50 +2725,43 @@
     },
     "node_modules/ee-first": {
       "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+      "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz",
       "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
     },
     "node_modules/electron-to-chromium": {
-      "version": "1.4.603",
-      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.603.tgz",
-      "integrity": "sha512-Dvo5OGjnl7AZTU632dFJtWj0uJK835eeOVQIuRcmBmsFsTNn3cL05FqOyHAfGQDIoHfLhyJ1Tya3PJ0ceMz54g=="
+      "version": "1.4.655",
+      "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.655.tgz",
+      "integrity": "sha512-2yszojF7vIZ68adIOvzV4bku8OZad9w5H9xF3ZAMZjPuOjBarlflUkjN6DggdV+L71WZuKUfKUhov/34+G5QHg=="
     },
     "node_modules/emoji-regex": {
       "version": "9.2.2",
-      "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+      "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-9.2.2.tgz",
       "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
     },
     "node_modules/emphasize": {
       "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/emphasize/-/emphasize-4.2.0.tgz",
+      "resolved": "https://registry.npmmirror.com/emphasize/-/emphasize-4.2.0.tgz",
       "integrity": "sha512-yGKvcFUHlBsUPwlxTlzKLR8+zhpbitkFOMCUxN8fTJng9bdH3WNzUGkhdaGdjndSUgqmMPBN7umfwnUdLz5Axg==",
       "dependencies": {
         "chalk": "^4.0.0",
         "highlight.js": "~10.4.0",
         "lowlight": "~1.17.0"
-      },
-      "funding": {
-        "type": "github",
-        "url": "https://github.com/sponsors/wooorm"
       }
     },
     "node_modules/emphasize/node_modules/ansi-styles": {
       "version": "4.3.0",
-      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
       "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
       "dependencies": {
         "color-convert": "^2.0.1"
       },
       "engines": {
         "node": ">=8"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
       }
     },
     "node_modules/emphasize/node_modules/chalk": {
       "version": "4.1.2",
-      "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+      "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
       "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
       "dependencies": {
         "ansi-styles": "^4.1.0",
@@ -2822,14 +2769,11 @@
       },
       "engines": {
         "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/chalk?sponsor=1"
       }
     },
     "node_modules/emphasize/node_modules/color-convert": {
       "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
       "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
       "dependencies": {
         "color-name": "~1.1.4"
@@ -2840,12 +2784,12 @@
     },
     "node_modules/emphasize/node_modules/color-name": {
       "version": "1.1.4",
-      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
       "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
     },
     "node_modules/emphasize/node_modules/has-flag": {
       "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
       "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
       "engines": {
         "node": ">=8"
@@ -2853,7 +2797,7 @@
     },
     "node_modules/emphasize/node_modules/supports-color": {
       "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
       "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
       "dependencies": {
         "has-flag": "^4.0.0"
@@ -2864,7 +2808,7 @@
     },
     "node_modules/encodeurl": {
       "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+      "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz",
       "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
       "engines": {
         "node": ">= 0.8"
@@ -2872,7 +2816,7 @@
     },
     "node_modules/end-of-stream": {
       "version": "1.4.4",
-      "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+      "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz",
       "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
       "optional": true,
       "dependencies": {
@@ -2881,7 +2825,7 @@
     },
     "node_modules/escalade": {
       "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+      "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz",
       "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
       "engines": {
         "node": ">=6"
@@ -2889,23 +2833,20 @@
     },
     "node_modules/escape-html": {
       "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+      "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz",
       "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
     },
     "node_modules/escape-string-regexp": {
       "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
       "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
       "engines": {
         "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/etag": {
       "version": "1.8.1",
-      "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+      "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz",
       "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
       "engines": {
         "node": ">= 0.6"
@@ -2913,7 +2854,7 @@
     },
     "node_modules/event-target-shim": {
       "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/event-target-shim/-/event-target-shim-5.0.1.tgz",
       "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
       "engines": {
         "node": ">=6"
@@ -2921,7 +2862,7 @@
     },
     "node_modules/execa": {
       "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz",
+      "resolved": "https://registry.npmmirror.com/execa/-/execa-7.2.0.tgz",
       "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==",
       "dependencies": {
         "cross-spawn": "^7.0.3",
@@ -2936,19 +2877,16 @@
       },
       "engines": {
         "node": "^14.18.0 || ^16.14.0 || >=18.0.0"
-      },
-      "funding": {
-        "url": "https://github.com/sindresorhus/execa?sponsor=1"
       }
     },
     "node_modules/execa/node_modules/signal-exit": {
       "version": "3.0.7",
-      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+      "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz",
       "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
     },
     "node_modules/expand-template": {
       "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
+      "resolved": "https://registry.npmmirror.com/expand-template/-/expand-template-2.0.3.tgz",
       "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
       "optional": true,
       "engines": {
@@ -2957,7 +2895,7 @@
     },
     "node_modules/express": {
       "version": "4.18.2",
-      "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
+      "resolved": "https://registry.npmmirror.com/express/-/express-4.18.2.tgz",
       "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
       "dependencies": {
         "accepts": "~1.3.8",
@@ -2998,7 +2936,7 @@
     },
     "node_modules/express/node_modules/debug": {
       "version": "2.6.9",
-      "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+      "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
       "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
       "dependencies": {
         "ms": "2.0.0"
@@ -3006,23 +2944,13 @@
     },
     "node_modules/express/node_modules/ms": {
       "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
       "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
     },
     "node_modules/fast-xml-parser": {
       "version": "4.2.5",
-      "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz",
+      "resolved": "https://registry.npmmirror.com/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz",
       "integrity": "sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==",
-      "funding": [
-        {
-          "type": "paypal",
-          "url": "https://paypal.me/naturalintelligence"
-        },
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/NaturalIntelligence"
-        }
-      ],
       "dependencies": {
         "strnum": "^1.0.5"
       },
@@ -3032,25 +2960,21 @@
     },
     "node_modules/fault": {
       "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz",
+      "resolved": "https://registry.npmmirror.com/fault/-/fault-1.0.4.tgz",
       "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==",
       "dependencies": {
         "format": "^0.2.0"
-      },
-      "funding": {
-        "type": "github",
-        "url": "https://github.com/sponsors/wooorm"
       }
     },
     "node_modules/file-uri-to-path": {
       "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
       "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
       "optional": true
     },
     "node_modules/finalhandler": {
       "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
+      "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.2.0.tgz",
       "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
       "dependencies": {
         "debug": "2.6.9",
@@ -3067,7 +2991,7 @@
     },
     "node_modules/finalhandler/node_modules/debug": {
       "version": "2.6.9",
-      "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+      "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
       "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
       "dependencies": {
         "ms": "2.0.0"
@@ -3075,19 +2999,13 @@
     },
     "node_modules/finalhandler/node_modules/ms": {
       "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
       "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
     },
     "node_modules/follow-redirects": {
-      "version": "1.15.3",
-      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz",
-      "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==",
-      "funding": [
-        {
-          "type": "individual",
-          "url": "https://github.com/sponsors/RubenVerborgh"
-        }
-      ],
+      "version": "1.15.5",
+      "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.5.tgz",
+      "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==",
       "engines": {
         "node": ">=4.0"
       },
@@ -3099,7 +3017,7 @@
     },
     "node_modules/foreground-child": {
       "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
+      "resolved": "https://registry.npmmirror.com/foreground-child/-/foreground-child-3.1.1.tgz",
       "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
       "dependencies": {
         "cross-spawn": "^7.0.0",
@@ -3107,14 +3025,11 @@
       },
       "engines": {
         "node": ">=14"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/isaacs"
       }
     },
     "node_modules/format": {
       "version": "0.2.2",
-      "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz",
+      "resolved": "https://registry.npmmirror.com/format/-/format-0.2.2.tgz",
       "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==",
       "engines": {
         "node": ">=0.4.x"
@@ -3122,7 +3037,7 @@
     },
     "node_modules/forwarded": {
       "version": "0.2.0",
-      "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+      "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz",
       "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
       "engines": {
         "node": ">= 0.6"
@@ -3130,7 +3045,7 @@
     },
     "node_modules/fresh": {
       "version": "0.5.2",
-      "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+      "resolved": "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz",
       "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
       "engines": {
         "node": ">= 0.6"
@@ -3138,13 +3053,13 @@
     },
     "node_modules/fs-constants": {
       "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/fs-constants/-/fs-constants-1.0.0.tgz",
       "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
       "optional": true
     },
     "node_modules/fs-minipass": {
       "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
+      "resolved": "https://registry.npmmirror.com/fs-minipass/-/fs-minipass-2.1.0.tgz",
       "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
       "dependencies": {
         "minipass": "^3.0.0"
@@ -3155,7 +3070,7 @@
     },
     "node_modules/fs-minipass/node_modules/minipass": {
       "version": "3.3.6",
-      "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+      "resolved": "https://registry.npmmirror.com/minipass/-/minipass-3.3.6.tgz",
       "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
       "dependencies": {
         "yallist": "^4.0.0"
@@ -3166,20 +3081,17 @@
     },
     "node_modules/fs-minipass/node_modules/yallist": {
       "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
       "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
     },
     "node_modules/function-bind": {
       "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
-      "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
+      "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz",
+      "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="
     },
     "node_modules/gensync": {
       "version": "1.0.0-beta.2",
-      "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+      "resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz",
       "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
       "engines": {
         "node": ">=6.9.0"
@@ -3187,7 +3099,7 @@
     },
     "node_modules/get-console-process-list": {
       "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/get-console-process-list/-/get-console-process-list-1.0.4.tgz",
+      "resolved": "https://registry.npmmirror.com/get-console-process-list/-/get-console-process-list-1.0.4.tgz",
       "integrity": "sha512-vn5MA+CCTMgRuF9fxvJYLC2fMCuBPKQ7RwhA9H2TvMvy33oDivjIqA4mh2NJlUDoZXPcu/1moN3VfyukxxKwpA==",
       "hasInstallScript": true,
       "optional": true,
@@ -3201,38 +3113,32 @@
     },
     "node_modules/get-intrinsic": {
       "version": "1.2.2",
-      "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
+      "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
       "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
       "dependencies": {
         "function-bind": "^1.1.2",
         "has-proto": "^1.0.1",
         "has-symbols": "^1.0.3",
         "hasown": "^2.0.0"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
       }
     },
     "node_modules/get-stream": {
       "version": "6.0.1",
-      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz",
       "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
       "engines": {
         "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/github-from-package": {
       "version": "0.0.0",
-      "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/github-from-package/-/github-from-package-0.0.0.tgz",
       "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==",
       "optional": true
     },
     "node_modules/glob": {
       "version": "10.3.10",
-      "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
+      "resolved": "https://registry.npmmirror.com/glob/-/glob-10.3.10.tgz",
       "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
       "dependencies": {
         "foreground-child": "^3.1.0",
@@ -3246,14 +3152,11 @@
       },
       "engines": {
         "node": ">=16 || 14 >=14.17"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/isaacs"
       }
     },
     "node_modules/globals": {
       "version": "11.12.0",
-      "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+      "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz",
       "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
       "engines": {
         "node": ">=4"
@@ -3261,23 +3164,20 @@
     },
     "node_modules/gopd": {
       "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz",
       "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
       "dependencies": {
         "get-intrinsic": "^1.1.3"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
       }
     },
     "node_modules/handle-backspaces": {
       "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/handle-backspaces/-/handle-backspaces-1.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/handle-backspaces/-/handle-backspaces-1.0.0.tgz",
       "integrity": "sha512-w11NXUn51gVN50nTW5MOuhKuko9xZonnHDe5LlapaOZvuyxDXVDn9b1ZtG0IJTABGbL/UGeSitqHgo9Bb7nDhQ=="
     },
     "node_modules/has-flag": {
       "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz",
       "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
       "engines": {
         "node": ">=4"
@@ -3285,40 +3185,31 @@
     },
     "node_modules/has-property-descriptors": {
       "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz",
       "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==",
       "dependencies": {
         "get-intrinsic": "^1.2.2"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
       }
     },
     "node_modules/has-proto": {
       "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz",
       "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
       "engines": {
         "node": ">= 0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
       }
     },
     "node_modules/has-symbols": {
       "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+      "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz",
       "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
       "engines": {
         "node": ">= 0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
       }
     },
     "node_modules/hasown": {
       "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.0.tgz",
       "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
       "dependencies": {
         "function-bind": "^1.1.2"
@@ -3329,7 +3220,7 @@
     },
     "node_modules/heap-js": {
       "version": "2.3.0",
-      "resolved": "https://registry.npmjs.org/heap-js/-/heap-js-2.3.0.tgz",
+      "resolved": "https://registry.npmmirror.com/heap-js/-/heap-js-2.3.0.tgz",
       "integrity": "sha512-E5303mzwQ+4j/n2J0rDvEPBN7GKjhis10oHiYOgjxsmxYgqG++hz9NyLLOXttzH8as/DyiBHYpUrJTZWYaMo8Q==",
       "engines": {
         "node": ">=10.0.0"
@@ -3337,7 +3228,7 @@
     },
     "node_modules/highlight.js": {
       "version": "10.4.1",
-      "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.4.1.tgz",
+      "resolved": "https://registry.npmmirror.com/highlight.js/-/highlight.js-10.4.1.tgz",
       "integrity": "sha512-yR5lWvNz7c85OhVAEAeFhVCc/GV4C30Fjzc/rCP0aCWzc1UUOPUk55dK/qdwTZHBvMZo+eZ2jpk62ndX/xMFlg==",
       "engines": {
         "node": "*"
@@ -3345,12 +3236,12 @@
     },
     "node_modules/hijack-stream": {
       "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/hijack-stream/-/hijack-stream-1.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/hijack-stream/-/hijack-stream-1.0.0.tgz",
       "integrity": "sha512-9riBbIorIgSvsLQHL/rKEK6vJBexhgSRZC/tkieuei7a1U+CHgrXJVqW+RPswgEyuPbxcGCpx0QXO3iJuKRrrw=="
     },
     "node_modules/http-errors": {
       "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz",
       "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
       "dependencies": {
         "depd": "2.0.0",
@@ -3365,7 +3256,7 @@
     },
     "node_modules/human-signals": {
       "version": "4.3.1",
-      "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz",
+      "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-4.3.1.tgz",
       "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==",
       "engines": {
         "node": ">=14.18.0"
@@ -3373,7 +3264,7 @@
     },
     "node_modules/iconv-lite": {
       "version": "0.4.24",
-      "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+      "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz",
       "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
       "dependencies": {
         "safer-buffer": ">= 2.1.2 < 3"
@@ -3384,42 +3275,28 @@
     },
     "node_modules/ieee754": {
       "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+      "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz",
       "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
-      "funding": [
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/feross"
-        },
-        {
-          "type": "patreon",
-          "url": "https://www.patreon.com/feross"
-        },
-        {
-          "type": "consulting",
-          "url": "https://feross.org/support"
-        }
-      ],
       "optional": true
     },
     "node_modules/inherits": {
       "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+      "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz",
       "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
     },
     "node_modules/ini": {
       "version": "1.3.8",
-      "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+      "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz",
       "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
     },
     "node_modules/ip": {
       "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/ip/-/ip-2.0.0.tgz",
       "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ=="
     },
     "node_modules/ipaddr.js": {
       "version": "1.9.1",
-      "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+      "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
       "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
       "engines": {
         "node": ">= 0.10"
@@ -3427,32 +3304,29 @@
     },
     "node_modules/ipv6-normalize": {
       "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/ipv6-normalize/-/ipv6-normalize-1.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/ipv6-normalize/-/ipv6-normalize-1.0.1.tgz",
       "integrity": "sha512-Bm6H79i01DjgGTCWjUuCjJ6QDo1HB96PT/xCYuyJUP9WFbVDrLSbG4EZCvOCun2rNswZb0c3e4Jt/ws795esHA==",
       "optional": true
     },
     "node_modules/is-buffer": {
       "version": "1.1.6",
-      "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+      "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz",
       "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
     },
     "node_modules/is-docker": {
       "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/is-docker/-/is-docker-3.0.0.tgz",
       "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
       "bin": {
         "is-docker": "cli.js"
       },
       "engines": {
         "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "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",
+      "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
       "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
       "engines": {
         "node": ">=8"
@@ -3460,7 +3334,7 @@
     },
     "node_modules/is-inside-container": {
       "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/is-inside-container/-/is-inside-container-1.0.0.tgz",
       "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
       "dependencies": {
         "is-docker": "^3.0.0"
@@ -3470,14 +3344,11 @@
       },
       "engines": {
         "node": ">=14.16"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/is-recoverable-error": {
       "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/is-recoverable-error/-/is-recoverable-error-1.0.3.tgz",
+      "resolved": "https://registry.npmmirror.com/is-recoverable-error/-/is-recoverable-error-1.0.3.tgz",
       "integrity": "sha512-T06goBQXH5WCzWtzuU+kYhT3Ui0d3wgk8n4GR/3n9UjgO6cuphhel+W02ps/Z2PYZB8C+l//XAJk9tR5Txo6/w==",
       "dependencies": {
         "acorn": "^8.8.1",
@@ -3489,7 +3360,7 @@
     },
     "node_modules/is-retry-allowed": {
       "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz",
+      "resolved": "https://registry.npmmirror.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz",
       "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==",
       "engines": {
         "node": ">=0.10.0"
@@ -3497,18 +3368,15 @@
     },
     "node_modules/is-stream": {
       "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-3.0.0.tgz",
       "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
       "engines": {
         "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/is-wsl": {
       "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+      "resolved": "https://registry.npmmirror.com/is-wsl/-/is-wsl-2.2.0.tgz",
       "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
       "dependencies": {
         "is-docker": "^2.0.0"
@@ -3519,26 +3387,23 @@
     },
     "node_modules/is-wsl/node_modules/is-docker": {
       "version": "2.2.1",
-      "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
+      "resolved": "https://registry.npmmirror.com/is-docker/-/is-docker-2.2.1.tgz",
       "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
       "bin": {
         "is-docker": "cli.js"
       },
       "engines": {
         "node": ">=8"
-      },
-      "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",
+      "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz",
       "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
     },
     "node_modules/jackspeak": {
       "version": "2.3.6",
-      "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
+      "resolved": "https://registry.npmmirror.com/jackspeak/-/jackspeak-2.3.6.tgz",
       "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
       "dependencies": {
         "@isaacs/cliui": "^8.0.2"
@@ -3546,41 +3411,35 @@
       "engines": {
         "node": ">=14"
       },
-      "funding": {
-        "url": "https://github.com/sponsors/isaacs"
-      },
       "optionalDependencies": {
         "@pkgjs/parseargs": "^0.11.0"
       }
     },
     "node_modules/joi": {
-      "version": "17.11.0",
-      "resolved": "https://registry.npmjs.org/joi/-/joi-17.11.0.tgz",
-      "integrity": "sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==",
+      "version": "17.12.1",
+      "resolved": "https://registry.npmmirror.com/joi/-/joi-17.12.1.tgz",
+      "integrity": "sha512-vtxmq+Lsc5SlfqotnfVjlViWfOL9nt/avKNbKYizwf6gsCfq9NYY/ceYRMFD8XDdrjJ9abJyScWmhmIiy+XRtQ==",
       "dependencies": {
-        "@hapi/hoek": "^9.0.0",
-        "@hapi/topo": "^5.0.0",
-        "@sideway/address": "^4.1.3",
+        "@hapi/hoek": "^9.3.0",
+        "@hapi/topo": "^5.1.0",
+        "@sideway/address": "^4.1.5",
         "@sideway/formula": "^3.0.1",
         "@sideway/pinpoint": "^2.0.0"
       }
     },
     "node_modules/join-component": {
       "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/join-component/-/join-component-1.1.0.tgz",
+      "resolved": "https://registry.npmmirror.com/join-component/-/join-component-1.1.0.tgz",
       "integrity": "sha512-bF7vcQxbODoGK1imE2P9GS9aw4zD0Sd+Hni68IMZLj7zRnquH7dXUmMw9hDI5S/Jzt7q+IyTXN0rSg2GI0IKhQ=="
     },
     "node_modules/jose": {
       "version": "4.15.4",
-      "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.4.tgz",
-      "integrity": "sha512-W+oqK4H+r5sITxfxpSU+MMdr/YSWGvgZMQDIsNoBDGGy4i7GBPTtvFKibQzW06n3U3TqHjhvBJsirShsEJ6eeQ==",
-      "funding": {
-        "url": "https://github.com/sponsors/panva"
-      }
+      "resolved": "https://registry.npmmirror.com/jose/-/jose-4.15.4.tgz",
+      "integrity": "sha512-W+oqK4H+r5sITxfxpSU+MMdr/YSWGvgZMQDIsNoBDGGy4i7GBPTtvFKibQzW06n3U3TqHjhvBJsirShsEJ6eeQ=="
     },
     "node_modules/js-beautify": {
       "version": "1.14.11",
-      "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.11.tgz",
+      "resolved": "https://registry.npmmirror.com/js-beautify/-/js-beautify-1.14.11.tgz",
       "integrity": "sha512-rPogWqAfoYh1Ryqqh2agUpVfbxAhbjuN1SmU86dskQUKouRiggUTCO4+2ym9UPXllc2WAp0J+T5qxn7Um3lCdw==",
       "dependencies": {
         "config-chain": "^1.1.13",
@@ -3599,12 +3458,12 @@
     },
     "node_modules/js-tokens": {
       "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz",
       "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
     },
     "node_modules/js-yaml": {
       "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+      "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz",
       "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
       "dependencies": {
         "argparse": "^2.0.1"
@@ -3615,7 +3474,7 @@
     },
     "node_modules/jsesc": {
       "version": "2.5.2",
-      "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+      "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz",
       "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
       "bin": {
         "jsesc": "bin/jsesc"
@@ -3626,7 +3485,7 @@
     },
     "node_modules/json5": {
       "version": "2.2.3",
-      "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+      "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz",
       "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
       "bin": {
         "json5": "lib/cli.js"
@@ -3637,7 +3496,7 @@
     },
     "node_modules/kerberos": {
       "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/kerberos/-/kerberos-2.1.0.tgz",
+      "resolved": "https://registry.npmmirror.com/kerberos/-/kerberos-2.1.0.tgz",
       "integrity": "sha512-HvOl6O6cyEN/8Z4CAocHe/sekJtvt5UrxUdCuu7bXDZ2Hnsy6OpsQbISW+lpm03vrbO2ir+1QQ5Sx/vMEhHnog==",
       "hasInstallScript": true,
       "optional": true,
@@ -3652,41 +3511,37 @@
     },
     "node_modules/kerberos/node_modules/node-addon-api": {
       "version": "6.1.0",
-      "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
+      "resolved": "https://registry.npmmirror.com/node-addon-api/-/node-addon-api-6.1.0.tgz",
       "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==",
       "optional": true
     },
     "node_modules/lodash": {
       "version": "4.17.21",
-      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+      "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
       "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
     },
     "node_modules/lodash.isstring": {
       "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
       "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw=="
     },
     "node_modules/lodash.merge": {
       "version": "4.6.2",
-      "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+      "resolved": "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz",
       "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
     },
     "node_modules/lowlight": {
       "version": "1.17.0",
-      "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.17.0.tgz",
+      "resolved": "https://registry.npmmirror.com/lowlight/-/lowlight-1.17.0.tgz",
       "integrity": "sha512-vmtBgYKD+QVNy7tIa7ulz5d//Il9R4MooOVh4nkOf9R9Cb/Dk5TXMSTieg/vDulkBkIWj59/BIlyFQxT9X1oAQ==",
       "dependencies": {
         "fault": "^1.0.0",
         "highlight.js": "~10.4.0"
-      },
-      "funding": {
-        "type": "github",
-        "url": "https://github.com/sponsors/wooorm"
       }
     },
     "node_modules/lru-cache": {
       "version": "5.1.1",
-      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+      "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz",
       "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
       "dependencies": {
         "yallist": "^3.0.2"
@@ -3694,7 +3549,7 @@
     },
     "node_modules/macos-export-certificate-and-key": {
       "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/macos-export-certificate-and-key/-/macos-export-certificate-and-key-1.1.1.tgz",
+      "resolved": "https://registry.npmmirror.com/macos-export-certificate-and-key/-/macos-export-certificate-and-key-1.1.1.tgz",
       "integrity": "sha512-J2g0dJRLG3DghmdCkbJnif/zPmSylj6ql//xBYff5allzNlHPnWxRoyho9XznBYLbPJw4jZlKjMO69jtV8VC7Q==",
       "hasInstallScript": true,
       "optional": true,
@@ -3708,7 +3563,7 @@
     },
     "node_modules/md5": {
       "version": "2.3.0",
-      "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz",
+      "resolved": "https://registry.npmmirror.com/md5/-/md5-2.3.0.tgz",
       "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==",
       "dependencies": {
         "charenc": "0.0.2",
@@ -3718,7 +3573,7 @@
     },
     "node_modules/media-typer": {
       "version": "0.3.0",
-      "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+      "resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz",
       "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
       "engines": {
         "node": ">= 0.6"
@@ -3726,22 +3581,22 @@
     },
     "node_modules/memory-pager": {
       "version": "1.5.0",
-      "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
+      "resolved": "https://registry.npmmirror.com/memory-pager/-/memory-pager-1.5.0.tgz",
       "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg=="
     },
     "node_modules/merge-descriptors": {
       "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
       "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
     },
     "node_modules/merge-stream": {
       "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz",
       "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
     },
     "node_modules/methods": {
       "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+      "resolved": "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz",
       "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
       "engines": {
         "node": ">= 0.6"
@@ -3749,7 +3604,7 @@
     },
     "node_modules/mime": {
       "version": "1.6.0",
-      "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+      "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz",
       "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
       "bin": {
         "mime": "cli.js"
@@ -3760,7 +3615,7 @@
     },
     "node_modules/mime-db": {
       "version": "1.52.0",
-      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+      "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
       "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
       "engines": {
         "node": ">= 0.6"
@@ -3768,7 +3623,7 @@
     },
     "node_modules/mime-types": {
       "version": "2.1.35",
-      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+      "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
       "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
       "dependencies": {
         "mime-db": "1.52.0"
@@ -3779,53 +3634,41 @@
     },
     "node_modules/mimic-fn": {
       "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-4.0.0.tgz",
       "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
       "engines": {
         "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/mimic-response": {
       "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
+      "resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-3.1.0.tgz",
       "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
       "optional": true,
       "engines": {
         "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/minimatch": {
       "version": "9.0.1",
-      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.1.tgz",
       "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==",
       "dependencies": {
         "brace-expansion": "^2.0.1"
       },
       "engines": {
         "node": ">=16 || 14 >=14.17"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/isaacs"
       }
     },
     "node_modules/minimist": {
       "version": "1.2.8",
-      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+      "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz",
       "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
-      "optional": true,
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
+      "optional": true
     },
     "node_modules/minipass": {
       "version": "7.0.4",
-      "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
+      "resolved": "https://registry.npmmirror.com/minipass/-/minipass-7.0.4.tgz",
       "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
       "engines": {
         "node": ">=16 || 14 >=14.17"
@@ -3833,7 +3676,7 @@
     },
     "node_modules/minizlib": {
       "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
+      "resolved": "https://registry.npmmirror.com/minizlib/-/minizlib-2.1.2.tgz",
       "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
       "dependencies": {
         "minipass": "^3.0.0",
@@ -3845,7 +3688,7 @@
     },
     "node_modules/minizlib/node_modules/minipass": {
       "version": "3.3.6",
-      "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+      "resolved": "https://registry.npmmirror.com/minipass/-/minipass-3.3.6.tgz",
       "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
       "dependencies": {
         "yallist": "^4.0.0"
@@ -3856,12 +3699,12 @@
     },
     "node_modules/minizlib/node_modules/yallist": {
       "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
       "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
     },
     "node_modules/mkdirp": {
       "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+      "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz",
       "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
       "bin": {
         "mkdirp": "bin/cmd.js"
@@ -3872,13 +3715,13 @@
     },
     "node_modules/mkdirp-classic": {
       "version": "0.5.3",
-      "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+      "resolved": "https://registry.npmmirror.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
       "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
       "optional": true
     },
     "node_modules/mongodb": {
       "version": "6.3.0",
-      "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.3.0.tgz",
+      "resolved": "https://registry.npmmirror.com/mongodb/-/mongodb-6.3.0.tgz",
       "integrity": "sha512-tt0KuGjGtLUhLoU263+xvQmPHEGTw5LbcNC73EoFRYgSHwZt5tsoJC110hDyO1kjQzpgNrpdcSza9PknWN4LrA==",
       "dependencies": {
         "@mongodb-js/saslprep": "^1.1.0",
@@ -3923,7 +3766,7 @@
     },
     "node_modules/mongodb-build-info": {
       "version": "1.7.1",
-      "resolved": "https://registry.npmjs.org/mongodb-build-info/-/mongodb-build-info-1.7.1.tgz",
+      "resolved": "https://registry.npmmirror.com/mongodb-build-info/-/mongodb-build-info-1.7.1.tgz",
       "integrity": "sha512-he4lTotY5AkGSc4Js9Dtqvx4W7x5JSNa9xtvR08y1tUyhglHG1tV+NnuUTrysXA0hNHMMvOd/Hh4Ez9Po84p1g==",
       "dependencies": {
         "mongodb-connection-string-url": "^3.0.0"
@@ -3931,7 +3774,7 @@
     },
     "node_modules/mongodb-client-encryption": {
       "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/mongodb-client-encryption/-/mongodb-client-encryption-6.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/mongodb-client-encryption/-/mongodb-client-encryption-6.0.0.tgz",
       "integrity": "sha512-GtqkqlSq19acX006/U1odA3l+gwhvABeoTUlvvgtvSs6qcN3qSHPnur3Z5N4oKOv6fZ7EtT8rIsWP2riI0+Eyg==",
       "hasInstallScript": true,
       "optional": true,
@@ -3946,7 +3789,7 @@
     },
     "node_modules/mongodb-connection-string-url": {
       "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.0.tgz",
+      "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==",
       "dependencies": {
         "@types/whatwg-url": "^11.0.2",
@@ -3955,7 +3798,7 @@
     },
     "node_modules/mongodb-crypt-library-version": {
       "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/mongodb-crypt-library-version/-/mongodb-crypt-library-version-1.0.3.tgz",
+      "resolved": "https://registry.npmmirror.com/mongodb-crypt-library-version/-/mongodb-crypt-library-version-1.0.3.tgz",
       "integrity": "sha512-w+T89kF9fC7npcf7m/+OUeXasf5TSL0GlugOCxzdXQFykV5MdU2yvcuuDZz4MD1pJickvGxBcw41jGg2s4lJ0g==",
       "hasInstallScript": true,
       "optional": true,
@@ -3969,7 +3812,7 @@
     },
     "node_modules/mongodb-log-writer": {
       "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/mongodb-log-writer/-/mongodb-log-writer-1.4.0.tgz",
+      "resolved": "https://registry.npmmirror.com/mongodb-log-writer/-/mongodb-log-writer-1.4.0.tgz",
       "integrity": "sha512-hQrn8Xu58Z9uLmd2oncvu/b5KNxxKaW6MUrVRI/xObz/yzYNVWF3V4rgK9Ort72nOCmMD3PWOS+ZoZBtxgKibA==",
       "dependencies": {
         "bson": "^4.5.1 || ^5.0.0 || ^6.0.0",
@@ -3978,7 +3821,7 @@
     },
     "node_modules/mongodb-redact": {
       "version": "0.2.2",
-      "resolved": "https://registry.npmjs.org/mongodb-redact/-/mongodb-redact-0.2.2.tgz",
+      "resolved": "https://registry.npmmirror.com/mongodb-redact/-/mongodb-redact-0.2.2.tgz",
       "integrity": "sha512-tmgDpSBymFtKggsLzpa0vDYaqh2wEXOswBZtJkXvbPKP0ThfPwoFYXtOukactU6WZsC4RYmpSPM4P6582FR/Xw==",
       "dependencies": {
         "lodash": "^4.17.15"
@@ -3986,12 +3829,12 @@
     },
     "node_modules/ms": {
       "version": "2.1.3",
-      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
       "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
     },
     "node_modules/mustache": {
       "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz",
+      "resolved": "https://registry.npmmirror.com/mustache/-/mustache-4.2.0.tgz",
       "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==",
       "bin": {
         "mustache": "bin/mustache"
@@ -3999,22 +3842,22 @@
     },
     "node_modules/napi-build-utils": {
       "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
+      "resolved": "https://registry.npmmirror.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
       "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==",
       "optional": true
     },
     "node_modules/negotiator": {
       "version": "0.6.3",
-      "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
+      "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz",
       "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
       "engines": {
         "node": ">= 0.6"
       }
     },
     "node_modules/node-abi": {
-      "version": "3.52.0",
-      "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.52.0.tgz",
-      "integrity": "sha512-JJ98b02z16ILv7859irtXn4oUaFWADtvkzy2c0IAatNVX2Mc9Yoh8z6hZInn3QwvMEYhHuQloYi+TTQy67SIdQ==",
+      "version": "3.54.0",
+      "resolved": "https://registry.npmmirror.com/node-abi/-/node-abi-3.54.0.tgz",
+      "integrity": "sha512-p7eGEiQil0YUV3ItH4/tBb781L5impVmmx2E9FRKF7d18XXzp4PGT2tdYMFY6wQqgxD0IwNZOiSJ0/K0fSi/OA==",
       "optional": true,
       "dependencies": {
         "semver": "^7.3.5"
@@ -4025,13 +3868,13 @@
     },
     "node_modules/node-addon-api": {
       "version": "4.3.0",
-      "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz",
+      "resolved": "https://registry.npmmirror.com/node-addon-api/-/node-addon-api-4.3.0.tgz",
       "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==",
       "optional": true
     },
     "node_modules/node-fetch": {
       "version": "2.7.0",
-      "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+      "resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.7.0.tgz",
       "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
       "dependencies": {
         "whatwg-url": "^5.0.0"
@@ -4050,17 +3893,17 @@
     },
     "node_modules/node-fetch/node_modules/tr46": {
       "version": "0.0.3",
-      "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+      "resolved": "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz",
       "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
     },
     "node_modules/node-fetch/node_modules/webidl-conversions": {
       "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
       "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
     },
     "node_modules/node-fetch/node_modules/whatwg-url": {
       "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz",
       "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
       "dependencies": {
         "tr46": "~0.0.3",
@@ -4069,7 +3912,7 @@
     },
     "node_modules/node-forge": {
       "version": "1.3.1",
-      "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz",
+      "resolved": "https://registry.npmmirror.com/node-forge/-/node-forge-1.3.1.tgz",
       "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==",
       "optional": true,
       "engines": {
@@ -4078,12 +3921,12 @@
     },
     "node_modules/node-releases": {
       "version": "2.0.14",
-      "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
+      "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.14.tgz",
       "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw=="
     },
     "node_modules/nopt": {
       "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz",
+      "resolved": "https://registry.npmmirror.com/nopt/-/nopt-7.2.0.tgz",
       "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==",
       "dependencies": {
         "abbrev": "^2.0.0"
@@ -4096,33 +3939,27 @@
       }
     },
     "node_modules/npm-run-path": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz",
-      "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==",
+      "version": "5.2.0",
+      "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-5.2.0.tgz",
+      "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==",
       "dependencies": {
         "path-key": "^4.0.0"
       },
       "engines": {
         "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/npm-run-path/node_modules/path-key": {
       "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/path-key/-/path-key-4.0.0.tgz",
       "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
       "engines": {
         "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/numeral": {
       "version": "2.0.6",
-      "resolved": "https://registry.npmjs.org/numeral/-/numeral-2.0.6.tgz",
+      "resolved": "https://registry.npmmirror.com/numeral/-/numeral-2.0.6.tgz",
       "integrity": "sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==",
       "engines": {
         "node": "*"
@@ -4130,7 +3967,7 @@
     },
     "node_modules/object-hash": {
       "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz",
+      "resolved": "https://registry.npmmirror.com/object-hash/-/object-hash-2.2.0.tgz",
       "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==",
       "engines": {
         "node": ">= 6"
@@ -4138,15 +3975,12 @@
     },
     "node_modules/object-inspect": {
       "version": "1.13.1",
-      "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
-      "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
-      }
+      "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.1.tgz",
+      "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ=="
     },
     "node_modules/oidc-token-hash": {
       "version": "5.0.3",
-      "resolved": "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-5.0.3.tgz",
+      "resolved": "https://registry.npmmirror.com/oidc-token-hash/-/oidc-token-hash-5.0.3.tgz",
       "integrity": "sha512-IF4PcGgzAr6XXSff26Sk/+P4KZFJVuHAJZj3wgO3vX2bMdNVp/QXTP3P7CEm9V1IdG8lDLY3HhiqpsE/nOwpPw==",
       "engines": {
         "node": "^10.13.0 || >=12.0.0"
@@ -4154,7 +3988,7 @@
     },
     "node_modules/on-finished": {
       "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+      "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz",
       "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
       "dependencies": {
         "ee-first": "1.1.1"
@@ -4165,7 +3999,7 @@
     },
     "node_modules/once": {
       "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+      "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz",
       "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
       "optional": true,
       "dependencies": {
@@ -4174,21 +4008,18 @@
     },
     "node_modules/onetime": {
       "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/onetime/-/onetime-6.0.0.tgz",
       "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
       "dependencies": {
         "mimic-fn": "^4.0.0"
       },
       "engines": {
         "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/open": {
       "version": "9.1.0",
-      "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz",
+      "resolved": "https://registry.npmmirror.com/open/-/open-9.1.0.tgz",
       "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==",
       "dependencies": {
         "default-browser": "^4.0.0",
@@ -4198,28 +4029,22 @@
       },
       "engines": {
         "node": ">=14.16"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/openid-client": {
-      "version": "5.6.1",
-      "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-5.6.1.tgz",
-      "integrity": "sha512-PtrWsY+dXg6y8mtMPyL/namZSYVz8pjXz3yJiBNZsEdCnu9miHLB4ELVC85WvneMKo2Rg62Ay7NkuCpM0bgiLQ==",
+      "version": "5.6.4",
+      "resolved": "https://registry.npmmirror.com/openid-client/-/openid-client-5.6.4.tgz",
+      "integrity": "sha512-T1h3B10BRPKfcObdBklX639tVz+xh34O7GjofqrqiAQdm7eHsQ00ih18x6wuJ/E6FxdtS2u3FmUGPDeEcMwzNA==",
       "dependencies": {
-        "jose": "^4.15.1",
+        "jose": "^4.15.4",
         "lru-cache": "^6.0.0",
         "object-hash": "^2.2.0",
         "oidc-token-hash": "^5.0.3"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/panva"
       }
     },
     "node_modules/openid-client/node_modules/lru-cache": {
       "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
       "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
       "dependencies": {
         "yallist": "^4.0.0"
@@ -4230,13 +4055,13 @@
     },
     "node_modules/openid-client/node_modules/yallist": {
       "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
       "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
     },
     "node_modules/os-dns-native": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/os-dns-native/-/os-dns-native-1.2.0.tgz",
-      "integrity": "sha512-pnq7NYCsuZixeIOFjerXIXXFNpqJyDqiIHTu9TzefKtu+8ReUROA9OB2VQE+qk3uYhkXtxe1tf8b4dqPINtStw==",
+      "version": "1.2.1",
+      "resolved": "https://registry.npmmirror.com/os-dns-native/-/os-dns-native-1.2.1.tgz",
+      "integrity": "sha512-LbU43lWBxnZhy72Ngr+Vga0og5Q2+Ob8lvSHJkP2uYBkvdmAnK4CvaVaBhC1hk9AQV3YxAZ9fZWaJTuIyPEi+Q==",
       "hasInstallScript": true,
       "optional": true,
       "dependencies": {
@@ -4248,7 +4073,7 @@
     },
     "node_modules/parseurl": {
       "version": "1.3.3",
-      "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+      "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz",
       "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
       "engines": {
         "node": ">= 0.8"
@@ -4256,7 +4081,7 @@
     },
     "node_modules/path-key": {
       "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+      "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz",
       "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
       "engines": {
         "node": ">=8"
@@ -4264,7 +4089,7 @@
     },
     "node_modules/path-scurry": {
       "version": "1.10.1",
-      "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
+      "resolved": "https://registry.npmmirror.com/path-scurry/-/path-scurry-1.10.1.tgz",
       "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
       "dependencies": {
         "lru-cache": "^9.1.1 || ^10.0.0",
@@ -4272,32 +4097,29 @@
       },
       "engines": {
         "node": ">=16 || 14 >=14.17"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/isaacs"
       }
     },
     "node_modules/path-scurry/node_modules/lru-cache": {
-      "version": "10.1.0",
-      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz",
-      "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==",
+      "version": "10.2.0",
+      "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.2.0.tgz",
+      "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==",
       "engines": {
         "node": "14 || >=16.14"
       }
     },
     "node_modules/path-to-regexp": {
       "version": "0.1.7",
-      "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+      "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
       "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
     },
     "node_modules/picocolors": {
       "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz",
       "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
     },
     "node_modules/prebuild-install": {
       "version": "7.1.1",
-      "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz",
+      "resolved": "https://registry.npmmirror.com/prebuild-install/-/prebuild-install-7.1.1.tgz",
       "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==",
       "optional": true,
       "dependencies": {
@@ -4323,7 +4145,7 @@
     },
     "node_modules/pretty-repl": {
       "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/pretty-repl/-/pretty-repl-4.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/pretty-repl/-/pretty-repl-4.0.0.tgz",
       "integrity": "sha512-2WmwcEXvMDQ3UVb/emuYb0M7dVVU1NSm7L7lf9nwGxvzWovUbLaXWUve8VqOoAO34GQBQ2l+nYcXY0HGllNc5Q==",
       "dependencies": {
         "ansi-regex": "^5.0.1",
@@ -4337,21 +4159,18 @@
     },
     "node_modules/pretty-repl/node_modules/ansi-styles": {
       "version": "4.3.0",
-      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
       "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
       "dependencies": {
         "color-convert": "^2.0.1"
       },
       "engines": {
         "node": ">=8"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
       }
     },
     "node_modules/pretty-repl/node_modules/chalk": {
       "version": "4.1.2",
-      "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+      "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
       "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
       "dependencies": {
         "ansi-styles": "^4.1.0",
@@ -4359,14 +4178,11 @@
       },
       "engines": {
         "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/chalk?sponsor=1"
       }
     },
     "node_modules/pretty-repl/node_modules/color-convert": {
       "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
       "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
       "dependencies": {
         "color-name": "~1.1.4"
@@ -4377,12 +4193,12 @@
     },
     "node_modules/pretty-repl/node_modules/color-name": {
       "version": "1.1.4",
-      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
       "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
     },
     "node_modules/pretty-repl/node_modules/has-flag": {
       "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
       "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
       "engines": {
         "node": ">=8"
@@ -4390,7 +4206,7 @@
     },
     "node_modules/pretty-repl/node_modules/supports-color": {
       "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
       "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
       "dependencies": {
         "has-flag": "^4.0.0"
@@ -4401,12 +4217,12 @@
     },
     "node_modules/proto-list": {
       "version": "1.2.4",
-      "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
+      "resolved": "https://registry.npmmirror.com/proto-list/-/proto-list-1.2.4.tgz",
       "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA=="
     },
     "node_modules/proxy-addr": {
       "version": "2.0.7",
-      "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+      "resolved": "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz",
       "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
       "dependencies": {
         "forwarded": "0.2.0",
@@ -4418,7 +4234,7 @@
     },
     "node_modules/pump": {
       "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.0.tgz",
       "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
       "optional": true,
       "dependencies": {
@@ -4428,7 +4244,7 @@
     },
     "node_modules/punycode": {
       "version": "2.3.1",
-      "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+      "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz",
       "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
       "engines": {
         "node": ">=6"
@@ -4436,21 +4252,18 @@
     },
     "node_modules/qs": {
       "version": "6.11.0",
-      "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
+      "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz",
       "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
       "dependencies": {
         "side-channel": "^1.0.4"
       },
       "engines": {
         "node": ">=0.6"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
       }
     },
     "node_modules/range-parser": {
       "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+      "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz",
       "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
       "engines": {
         "node": ">= 0.6"
@@ -4458,7 +4271,7 @@
     },
     "node_modules/raw-body": {
       "version": "2.5.1",
-      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
+      "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.1.tgz",
       "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
       "dependencies": {
         "bytes": "3.1.2",
@@ -4472,7 +4285,7 @@
     },
     "node_modules/rc": {
       "version": "1.2.8",
-      "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+      "resolved": "https://registry.npmmirror.com/rc/-/rc-1.2.8.tgz",
       "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
       "optional": true,
       "dependencies": {
@@ -4487,7 +4300,7 @@
     },
     "node_modules/readable-stream": {
       "version": "3.6.2",
-      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+      "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz",
       "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
       "optional": true,
       "dependencies": {
@@ -4501,12 +4314,12 @@
     },
     "node_modules/remove-trailing-slash": {
       "version": "0.1.1",
-      "resolved": "https://registry.npmjs.org/remove-trailing-slash/-/remove-trailing-slash-0.1.1.tgz",
+      "resolved": "https://registry.npmmirror.com/remove-trailing-slash/-/remove-trailing-slash-0.1.1.tgz",
       "integrity": "sha512-o4S4Qh6L2jpnCy83ysZDau+VORNvnFw07CKSAymkd6ICNVEPisMyzlc00KlvvicsxKck94SEwhDnMNdICzO+tA=="
     },
     "node_modules/resolve-mongodb-srv": {
       "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/resolve-mongodb-srv/-/resolve-mongodb-srv-1.1.3.tgz",
+      "resolved": "https://registry.npmmirror.com/resolve-mongodb-srv/-/resolve-mongodb-srv-1.1.3.tgz",
       "integrity": "sha512-TrD4ebxN+1wfGhTl1uEKPSReCK13OscqpatIFKabCivrfQSDeVB4GYxpbm5F7yryyniuCxiEDxyyJO3a0UPQjw==",
       "optional": true,
       "dependencies": {
@@ -4518,21 +4331,18 @@
     },
     "node_modules/run-applescript": {
       "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/run-applescript/-/run-applescript-5.0.0.tgz",
       "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==",
       "dependencies": {
         "execa": "^5.0.0"
       },
       "engines": {
         "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/run-applescript/node_modules/execa": {
       "version": "5.1.1",
-      "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
+      "resolved": "https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz",
       "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
       "dependencies": {
         "cross-spawn": "^7.0.3",
@@ -4547,14 +4357,11 @@
       },
       "engines": {
         "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/sindresorhus/execa?sponsor=1"
       }
     },
     "node_modules/run-applescript/node_modules/human-signals": {
       "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
+      "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz",
       "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
       "engines": {
         "node": ">=10.17.0"
@@ -4562,18 +4369,15 @@
     },
     "node_modules/run-applescript/node_modules/is-stream": {
       "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz",
       "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
       "engines": {
         "node": ">=8"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/run-applescript/node_modules/mimic-fn": {
       "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+      "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz",
       "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
       "engines": {
         "node": ">=6"
@@ -4581,7 +4385,7 @@
     },
     "node_modules/run-applescript/node_modules/npm-run-path": {
       "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz",
       "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
       "dependencies": {
         "path-key": "^3.0.0"
@@ -4592,26 +4396,23 @@
     },
     "node_modules/run-applescript/node_modules/onetime": {
       "version": "5.1.2",
-      "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+      "resolved": "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz",
       "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
       "dependencies": {
         "mimic-fn": "^2.1.0"
       },
       "engines": {
         "node": ">=6"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/run-applescript/node_modules/signal-exit": {
       "version": "3.0.7",
-      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+      "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz",
       "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
     },
     "node_modules/run-applescript/node_modules/strip-final-newline": {
       "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
       "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
       "engines": {
         "node": ">=6"
@@ -4619,31 +4420,17 @@
     },
     "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==",
-      "funding": [
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/feross"
-        },
-        {
-          "type": "patreon",
-          "url": "https://www.patreon.com/feross"
-        },
-        {
-          "type": "consulting",
-          "url": "https://feross.org/support"
-        }
-      ]
+      "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
+      "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
     },
     "node_modules/safer-buffer": {
       "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+      "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz",
       "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
     },
     "node_modules/semver": {
       "version": "7.5.4",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+      "resolved": "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz",
       "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
       "dependencies": {
         "lru-cache": "^6.0.0"
@@ -4657,7 +4444,7 @@
     },
     "node_modules/semver/node_modules/lru-cache": {
       "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
       "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
       "dependencies": {
         "yallist": "^4.0.0"
@@ -4668,12 +4455,12 @@
     },
     "node_modules/semver/node_modules/yallist": {
       "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+      "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.npmjs.org/send/-/send-0.18.0.tgz",
+      "resolved": "https://registry.npmmirror.com/send/-/send-0.18.0.tgz",
       "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
       "dependencies": {
         "debug": "2.6.9",
@@ -4696,7 +4483,7 @@
     },
     "node_modules/send/node_modules/debug": {
       "version": "2.6.9",
-      "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+      "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
       "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
       "dependencies": {
         "ms": "2.0.0"
@@ -4704,12 +4491,12 @@
     },
     "node_modules/send/node_modules/debug/node_modules/ms": {
       "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
       "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
     },
     "node_modules/serve-static": {
       "version": "1.15.0",
-      "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
+      "resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-1.15.0.tgz",
       "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
       "dependencies": {
         "encodeurl": "~1.0.2",
@@ -4722,14 +4509,15 @@
       }
     },
     "node_modules/set-function-length": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz",
-      "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==",
+      "version": "1.2.0",
+      "resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.0.tgz",
+      "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==",
       "dependencies": {
         "define-data-property": "^1.1.1",
-        "get-intrinsic": "^1.2.1",
+        "function-bind": "^1.1.2",
+        "get-intrinsic": "^1.2.2",
         "gopd": "^1.0.1",
-        "has-property-descriptors": "^1.0.0"
+        "has-property-descriptors": "^1.0.1"
       },
       "engines": {
         "node": ">= 0.4"
@@ -4737,12 +4525,12 @@
     },
     "node_modules/setprototypeof": {
       "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+      "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz",
       "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
     },
     "node_modules/shebang-command": {
       "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz",
       "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
       "dependencies": {
         "shebang-regex": "^3.0.0"
@@ -4753,7 +4541,7 @@
     },
     "node_modules/shebang-regex": {
       "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz",
       "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
       "engines": {
         "node": ">=8"
@@ -4761,66 +4549,32 @@
     },
     "node_modules/side-channel": {
       "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+      "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz",
       "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
       "dependencies": {
         "call-bind": "^1.0.0",
         "get-intrinsic": "^1.0.2",
         "object-inspect": "^1.9.0"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb"
       }
     },
     "node_modules/signal-exit": {
       "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+      "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz",
       "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
       "engines": {
         "node": ">=14"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/isaacs"
       }
     },
     "node_modules/simple-concat": {
       "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/simple-concat/-/simple-concat-1.0.1.tgz",
       "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
-      "funding": [
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/feross"
-        },
-        {
-          "type": "patreon",
-          "url": "https://www.patreon.com/feross"
-        },
-        {
-          "type": "consulting",
-          "url": "https://feross.org/support"
-        }
-      ],
       "optional": true
     },
     "node_modules/simple-get": {
       "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/simple-get/-/simple-get-4.0.1.tgz",
       "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
-      "funding": [
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/feross"
-        },
-        {
-          "type": "patreon",
-          "url": "https://www.patreon.com/feross"
-        },
-        {
-          "type": "consulting",
-          "url": "https://feross.org/support"
-        }
-      ],
       "optional": true,
       "dependencies": {
         "decompress-response": "^6.0.0",
@@ -4830,7 +4584,7 @@
     },
     "node_modules/smart-buffer": {
       "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
+      "resolved": "https://registry.npmmirror.com/smart-buffer/-/smart-buffer-4.2.0.tgz",
       "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
       "engines": {
         "node": ">= 6.0.0",
@@ -4839,7 +4593,7 @@
     },
     "node_modules/socks": {
       "version": "2.7.1",
-      "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz",
+      "resolved": "https://registry.npmmirror.com/socks/-/socks-2.7.1.tgz",
       "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==",
       "dependencies": {
         "ip": "^2.0.0",
@@ -4852,7 +4606,7 @@
     },
     "node_modules/sparse-bitfield": {
       "version": "3.0.3",
-      "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
+      "resolved": "https://registry.npmmirror.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
       "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==",
       "dependencies": {
         "memory-pager": "^1.0.2"
@@ -4860,7 +4614,7 @@
     },
     "node_modules/statuses": {
       "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz",
       "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
       "engines": {
         "node": ">= 0.8"
@@ -4868,7 +4622,7 @@
     },
     "node_modules/string_decoder": {
       "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+      "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz",
       "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
       "optional": true,
       "dependencies": {
@@ -4877,7 +4631,7 @@
     },
     "node_modules/string-width": {
       "version": "5.1.2",
-      "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+      "resolved": "https://registry.npmmirror.com/string-width/-/string-width-5.1.2.tgz",
       "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
       "dependencies": {
         "eastasianwidth": "^0.2.0",
@@ -4886,15 +4640,12 @@
       },
       "engines": {
         "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/string-width-cjs": {
       "name": "string-width",
       "version": "4.2.3",
-      "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+      "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
       "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
       "dependencies": {
         "emoji-regex": "^8.0.0",
@@ -4907,37 +4658,31 @@
     },
     "node_modules/string-width-cjs/node_modules/emoji-regex": {
       "version": "8.0.0",
-      "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
       "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
     },
     "node_modules/string-width/node_modules/ansi-regex": {
       "version": "6.0.1",
-      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.0.1.tgz",
       "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
       "engines": {
         "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/ansi-regex?sponsor=1"
       }
     },
     "node_modules/string-width/node_modules/strip-ansi": {
       "version": "7.1.0",
-      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+      "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz",
       "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
       "dependencies": {
         "ansi-regex": "^6.0.1"
       },
       "engines": {
         "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/strip-ansi?sponsor=1"
       }
     },
     "node_modules/strip-ansi": {
       "version": "6.0.1",
-      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
       "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
       "dependencies": {
         "ansi-regex": "^5.0.1"
@@ -4949,7 +4694,7 @@
     "node_modules/strip-ansi-cjs": {
       "name": "strip-ansi",
       "version": "6.0.1",
-      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
       "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
       "dependencies": {
         "ansi-regex": "^5.0.1"
@@ -4960,18 +4705,15 @@
     },
     "node_modules/strip-final-newline": {
       "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
       "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
       "engines": {
         "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/strip-json-comments": {
       "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
       "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
       "optional": true,
       "engines": {
@@ -4980,12 +4722,12 @@
     },
     "node_modules/strnum": {
       "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz",
+      "resolved": "https://registry.npmmirror.com/strnum/-/strnum-1.0.5.tgz",
       "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA=="
     },
     "node_modules/supports-color": {
       "version": "5.5.0",
-      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz",
       "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
       "dependencies": {
         "has-flag": "^3.0.0"
@@ -4996,7 +4738,7 @@
     },
     "node_modules/system-ca": {
       "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/system-ca/-/system-ca-1.0.2.tgz",
+      "resolved": "https://registry.npmmirror.com/system-ca/-/system-ca-1.0.2.tgz",
       "integrity": "sha512-/6CCJOKB5Fpi0x7/DCbV7uiFPgwGCeJsAaSondXS2DjLBv7ER2worVGvQWJqPM0kgOKO6auaCcSWpJKnrDmXjw==",
       "optionalDependencies": {
         "macos-export-certificate-and-key": "^1.1.1",
@@ -5005,7 +4747,7 @@
     },
     "node_modules/tar": {
       "version": "6.2.0",
-      "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz",
+      "resolved": "https://registry.npmmirror.com/tar/-/tar-6.2.0.tgz",
       "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==",
       "dependencies": {
         "chownr": "^2.0.0",
@@ -5021,7 +4763,7 @@
     },
     "node_modules/tar-fs": {
       "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
+      "resolved": "https://registry.npmmirror.com/tar-fs/-/tar-fs-2.1.1.tgz",
       "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
       "optional": true,
       "dependencies": {
@@ -5033,13 +4775,13 @@
     },
     "node_modules/tar-fs/node_modules/chownr": {
       "version": "1.1.4",
-      "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+      "resolved": "https://registry.npmmirror.com/chownr/-/chownr-1.1.4.tgz",
       "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
       "optional": true
     },
     "node_modules/tar-stream": {
       "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
+      "resolved": "https://registry.npmmirror.com/tar-stream/-/tar-stream-2.2.0.tgz",
       "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
       "optional": true,
       "dependencies": {
@@ -5055,7 +4797,7 @@
     },
     "node_modules/tar/node_modules/minipass": {
       "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/minipass/-/minipass-5.0.0.tgz",
       "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
       "engines": {
         "node": ">=8"
@@ -5063,28 +4805,25 @@
     },
     "node_modules/tar/node_modules/yallist": {
       "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
       "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
     },
     "node_modules/text-table": {
       "version": "0.2.0",
-      "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+      "resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz",
       "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
     },
     "node_modules/titleize": {
       "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/titleize/-/titleize-3.0.0.tgz",
       "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==",
       "engines": {
         "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/to-fast-properties": {
       "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
       "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
       "engines": {
         "node": ">=4"
@@ -5092,7 +4831,7 @@
     },
     "node_modules/toidentifier": {
       "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz",
       "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
       "engines": {
         "node": ">=0.6"
@@ -5100,7 +4839,7 @@
     },
     "node_modules/tr46": {
       "version": "4.1.1",
-      "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz",
+      "resolved": "https://registry.npmmirror.com/tr46/-/tr46-4.1.1.tgz",
       "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==",
       "dependencies": {
         "punycode": "^2.3.0"
@@ -5111,12 +4850,12 @@
     },
     "node_modules/tslib": {
       "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
+      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz",
       "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
     },
     "node_modules/tunnel-agent": {
       "version": "0.6.0",
-      "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+      "resolved": "https://registry.npmmirror.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
       "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
       "optional": true,
       "dependencies": {
@@ -5128,7 +4867,7 @@
     },
     "node_modules/type-is": {
       "version": "1.6.18",
-      "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+      "resolved": "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz",
       "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
       "dependencies": {
         "media-typer": "0.3.0",
@@ -5140,7 +4879,7 @@
     },
     "node_modules/unpipe": {
       "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz",
       "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
       "engines": {
         "node": ">= 0.8"
@@ -5148,7 +4887,7 @@
     },
     "node_modules/untildify": {
       "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/untildify/-/untildify-4.0.0.tgz",
       "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==",
       "engines": {
         "node": ">=8"
@@ -5156,22 +4895,8 @@
     },
     "node_modules/update-browserslist-db": {
       "version": "1.0.13",
-      "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
+      "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
       "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
-      "funding": [
-        {
-          "type": "opencollective",
-          "url": "https://opencollective.com/browserslist"
-        },
-        {
-          "type": "tidelift",
-          "url": "https://tidelift.com/funding/github/npm/browserslist"
-        },
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/ai"
-        }
-      ],
       "dependencies": {
         "escalade": "^3.1.1",
         "picocolors": "^1.0.0"
@@ -5185,13 +4910,13 @@
     },
     "node_modules/util-deprecate": {
       "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+      "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz",
       "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
       "optional": true
     },
     "node_modules/utils-merge": {
       "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz",
       "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
       "engines": {
         "node": ">= 0.4.0"
@@ -5199,7 +4924,7 @@
     },
     "node_modules/uuid": {
       "version": "8.3.2",
-      "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+      "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz",
       "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
       "bin": {
         "uuid": "dist/bin/uuid"
@@ -5207,7 +4932,7 @@
     },
     "node_modules/vary": {
       "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+      "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz",
       "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
       "engines": {
         "node": ">= 0.8"
@@ -5215,7 +4940,7 @@
     },
     "node_modules/webidl-conversions": {
       "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
       "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
       "engines": {
         "node": ">=12"
@@ -5223,7 +4948,7 @@
     },
     "node_modules/whatwg-url": {
       "version": "13.0.0",
-      "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-13.0.0.tgz",
       "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==",
       "dependencies": {
         "tr46": "^4.1.1",
@@ -5235,7 +4960,7 @@
     },
     "node_modules/which": {
       "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+      "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz",
       "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
       "dependencies": {
         "isexe": "^2.0.0"
@@ -5249,7 +4974,7 @@
     },
     "node_modules/win-export-certificate-and-key": {
       "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/win-export-certificate-and-key/-/win-export-certificate-and-key-1.1.1.tgz",
+      "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==",
       "hasInstallScript": true,
       "optional": true,
@@ -5264,7 +4989,7 @@
     },
     "node_modules/wrap-ansi": {
       "version": "8.1.0",
-      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+      "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
       "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
       "dependencies": {
         "ansi-styles": "^6.1.0",
@@ -5273,15 +4998,12 @@
       },
       "engines": {
         "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
       }
     },
     "node_modules/wrap-ansi-cjs": {
       "name": "wrap-ansi",
       "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
       "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
       "dependencies": {
         "ansi-styles": "^4.0.0",
@@ -5290,28 +5012,22 @@
       },
       "engines": {
         "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
       }
     },
     "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
       "version": "4.3.0",
-      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
       "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
       "dependencies": {
         "color-convert": "^2.0.1"
       },
       "engines": {
         "node": ">=8"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
       }
     },
     "node_modules/wrap-ansi-cjs/node_modules/color-convert": {
       "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
       "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
       "dependencies": {
         "color-name": "~1.1.4"
@@ -5322,17 +5038,17 @@
     },
     "node_modules/wrap-ansi-cjs/node_modules/color-name": {
       "version": "1.1.4",
-      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
       "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
     },
     "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
       "version": "8.0.0",
-      "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+      "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
       "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
     },
     "node_modules/wrap-ansi-cjs/node_modules/string-width": {
       "version": "4.2.3",
-      "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+      "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
       "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
       "dependencies": {
         "emoji-regex": "^8.0.0",
@@ -5345,54 +5061,45 @@
     },
     "node_modules/wrap-ansi/node_modules/ansi-regex": {
       "version": "6.0.1",
-      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.0.1.tgz",
       "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
       "engines": {
         "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/ansi-regex?sponsor=1"
       }
     },
     "node_modules/wrap-ansi/node_modules/ansi-styles": {
       "version": "6.2.1",
-      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz",
       "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
       "engines": {
         "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
       }
     },
     "node_modules/wrap-ansi/node_modules/strip-ansi": {
       "version": "7.1.0",
-      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+      "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz",
       "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
       "dependencies": {
         "ansi-regex": "^6.0.1"
       },
       "engines": {
         "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/strip-ansi?sponsor=1"
       }
     },
     "node_modules/wrappy": {
       "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+      "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz",
       "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
       "optional": true
     },
     "node_modules/yallist": {
       "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+      "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz",
       "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
     },
     "node_modules/yargs-parser": {
       "version": "20.2.9",
-      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+      "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz",
       "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
       "engines": {
         "node": ">=10"
diff --git a/pkgs/development/tools/mongosh/source.json b/pkgs/development/tools/mongosh/source.json
index 091bbd27c998..d8b801e9055d 100644
--- a/pkgs/development/tools/mongosh/source.json
+++ b/pkgs/development/tools/mongosh/source.json
@@ -1,6 +1,6 @@
 {
-  "version": "2.1.1",
-  "integrity": "sha512-2Gw9fJp2ebK2Gx7QT6sg7FCEpTfFlRib7hJkRhUO92/irGDTDtH6lYU45A4jRRMwgYVyjCfcfeWC11JQCSfsvg==",
-  "filename": "mongosh-2.1.1.tgz",
-  "deps": "sha256-F/ACpX5BsnPttrYRabWsTgUN6uABQ6RHdGc2h6qMbp8="
+  "version": "2.1.3",
+  "integrity": "sha512-kyggXyuSbjsQDjabXvXlfXW6k7MD+hByNSn8Z30dAQd+OYeM63MvEZubav2+uQUIzCsSycBqYX9xH+4cssz9gQ==",
+  "filename": "mongosh-2.1.3.tgz",
+  "deps": "sha256-kuUahlM3QJKOrepzlZlapemgFmBcQDW83Zzgv5zCHOU="
 }
diff --git a/pkgs/development/tools/mysql-shell/default.nix b/pkgs/development/tools/mysql-shell/default.nix
index ba362d65a237..fe8ad46fe2f2 100644
--- a/pkgs/development/tools/mysql-shell/default.nix
+++ b/pkgs/development/tools/mysql-shell/default.nix
@@ -37,16 +37,16 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "mysql-shell";
-  version = "8.0.35";
+  version = "8.0.36";
 
   srcs = [
     (fetchurl {
       url = "https://cdn.mysql.com//Downloads/MySQL-${lib.versions.majorMinor finalAttrs.version}/mysql-${finalAttrs.version}.tar.gz";
-      hash = "sha256-kXxe04cE6ZIRGFzkviTjOowZyRJB7XOvQYGm840VdMI=";
+      hash = "sha256-9PJwa5WKinOA72yVjdlyMHvb7qRR76/DQuTEbim36d0=";
     })
     (fetchurl {
       url = "https://cdn.mysql.com//Downloads/MySQL-Shell/mysql-shell-${finalAttrs.version}-src.tar.gz";
-      hash = "sha256-2Dn/RR5BWHMsD/QzKYPo8tqyAQGmHCGwVl2+bzNfy5I=";
+      hash = "sha256-s0+7dbcLcgS8u/6p7vpVAV9sR2gf2j9VDnSCJvw77fQ=";
     })
   ];
 
@@ -95,7 +95,7 @@ stdenv.mkDerivation (finalAttrs: {
     # Build MySQL
     echo "Building mysqlclient mysqlxclient"
 
-    cmake -DWITH_BOOST=system -DWITH_SYSTEM_LIBS=ON -DWITH_ROUTER=OFF -DWITH_UNIT_TESTS=OFF \
+    cmake -DWITH_SYSTEM_LIBS=ON -DWITH_BOOST=system -DWITH_FIDO=system -DWITH_ROUTER=OFF -DWITH_UNIT_TESTS=OFF \
       -DFORCE_UNSUPPORTED_COMPILER=1 -S ../mysql -B ../mysql/build
 
     cmake --build ../mysql/build --parallel ''${NIX_BUILD_CORES:-1} --target mysqlclient mysqlxclient
diff --git a/pkgs/development/tools/mysql-shell/innovation.nix b/pkgs/development/tools/mysql-shell/innovation.nix
index 6104aadf0492..0755b2271c03 100644
--- a/pkgs/development/tools/mysql-shell/innovation.nix
+++ b/pkgs/development/tools/mysql-shell/innovation.nix
@@ -16,7 +16,6 @@
 , libssh
 , zstd
 , lz4
-, boost
 , readline
 , libtirpc
 , rpcsvc-proto
@@ -35,8 +34,8 @@
 let
   pythonDeps = with python3.pkgs; [ certifi paramiko pyyaml ];
 
-  mysqlShellVersion = "8.2.1";
-  mysqlServerVersion = "8.2.0";
+  mysqlShellVersion = "8.3.0";
+  mysqlServerVersion = "8.3.0";
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "mysql-shell-innovation";
@@ -45,11 +44,11 @@ stdenv.mkDerivation (finalAttrs: {
   srcs = [
     (fetchurl {
       url = "https://cdn.mysql.com//Downloads/MySQL-${lib.versions.majorMinor mysqlServerVersion}/mysql-${mysqlServerVersion}.tar.gz";
-      hash = "sha256-itPj8cWuIVS+Y4rPVW6JgfcC0FKsxZV+d23xciwhGXk=";
+      hash = "sha256-HyFJWgt6grJKRT1S4hU6gUs8pwTsz5mXZtVFvOUvOG4=";
     })
     (fetchurl {
       url = "https://cdn.mysql.com//Downloads/MySQL-Shell/mysql-shell-${finalAttrs.version}-src.tar.gz";
-      hash = "sha256-m6WdFow28bxW52q+m8PniZCU/1Ej4secdPQi8GKlziE=";
+      hash = "sha256-O0j/gvS9fR/xp9plytjj249H7LY/+eyst1IsFpy318U=";
     })
   ];
 
@@ -71,7 +70,6 @@ stdenv.mkDerivation (finalAttrs: {
     ++ lib.optionals stdenv.isDarwin [ cctools DarwinTools ];
 
   buildInputs = [
-    boost
     curl
     libedit
     libssh
@@ -98,7 +96,7 @@ stdenv.mkDerivation (finalAttrs: {
     # Build MySQL
     echo "Building mysqlclient mysqlxclient"
 
-    cmake -DWITH_BOOST=system -DWITH_SYSTEM_LIBS=ON -DWITH_ROUTER=OFF -DWITH_UNIT_TESTS=OFF \
+    cmake -DWITH_SYSTEM_LIBS=ON -DWITH_FIDO=system -DWITH_ROUTER=OFF -DWITH_UNIT_TESTS=OFF \
       -DFORCE_UNSUPPORTED_COMPILER=1 -S ../mysql -B ../mysql/build
 
     cmake --build ../mysql/build --parallel ''${NIX_BUILD_CORES:-1} --target mysqlclient mysqlxclient
diff --git a/pkgs/development/tools/norminette/default.nix b/pkgs/development/tools/norminette/default.nix
index 9e6c250aed87..0be1693d5d2a 100644
--- a/pkgs/development/tools/norminette/default.nix
+++ b/pkgs/development/tools/norminette/default.nix
@@ -5,13 +5,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "norminette";
-  version = "3.3.54";
+  version = "3.3.55";
 
   src = fetchFromGitHub {
     owner = "42School";
     repo = pname;
-    rev = version;
-    hash = "sha256-r7cFaETv2gxNRhfw/F3B+7r3JzwvFvIFVSQ6MHQuEi4=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-SaXOUpYEbc2QhZ8aKS+JeJ22MSXZ8HZuRmVQ9fWk7tM=";
   };
 
   nativeCheckInputs = with python3Packages; [
diff --git a/pkgs/development/tools/oh-my-posh/default.nix b/pkgs/development/tools/oh-my-posh/default.nix
index ffd29e81794d..ce6d63c418f0 100644
--- a/pkgs/development/tools/oh-my-posh/default.nix
+++ b/pkgs/development/tools/oh-my-posh/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "oh-my-posh";
-  version = "19.6.0";
+  version = "19.8.2";
 
   src = fetchFromGitHub {
     owner = "jandedobbeleer";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-/VkI/ACUTGRcFpJhUV068m8HdM44NiandS+2a+Ms6vs=";
+    hash = "sha256-Gc8pz+DFP0Wze6YC4hzhgZiSGi61j7Lzak/o3LhdcfI=";
   };
 
   vendorHash = "sha256-8ZupQe4b3uCX79Q0oYqggMWZE9CfX5OSFdLIrxT8CHY=";
diff --git a/pkgs/development/tools/okteto/default.nix b/pkgs/development/tools/okteto/default.nix
index 5e153e4a90f8..1c7ba093b6aa 100644
--- a/pkgs/development/tools/okteto/default.nix
+++ b/pkgs/development/tools/okteto/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "okteto";
-  version = "2.24.0";
+  version = "2.25.1";
 
   src = fetchFromGitHub {
     owner = "okteto";
     repo = "okteto";
     rev = version;
-    hash = "sha256-DnhUqnz+0VfZk5KCbVrQcQpsAI2ojVFMHw83UN2DzwQ=";
+    hash = "sha256-HBXp66chq+SzdEb463awolf4Uv0ScHN6MjoziYyh4kA=";
   };
 
-  vendorHash = "sha256-vSvHjQZFLzUIC9u+myI6Xi4YhetVkiQxBIkm5/RoV2U=";
+  vendorHash = "sha256-+Adnveutg8soqK2Zwn2SNq7SEHd/Z91diHbPYHrGVrA=";
 
   postPatch = ''
     # Disable some tests that need file system & network access.
diff --git a/pkgs/development/tools/omniorb/default.nix b/pkgs/development/tools/omniorb/default.nix
index 28c922f2bd6b..d9bca7061c1a 100644
--- a/pkgs/development/tools/omniorb/default.nix
+++ b/pkgs/development/tools/omniorb/default.nix
@@ -8,11 +8,11 @@
 stdenv.mkDerivation rec {
 
   pname = "omniorb";
-  version = "4.3.1";
+  version = "4.3.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/omniorb/omniORB/omniORB-${version}/omniORB-${version}.tar.bz2";
-    hash = "sha256-D0K8Prc3yuaA2vqFs645WOn1ajeRLF+2uHWTP4+3OQ0=";
+    hash = "sha256-HHRTMNAZBK/Xoe0KWJa5puU6waS4ZKSFA7k8fuy/H6g=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/tools/open-policy-agent/default.nix b/pkgs/development/tools/open-policy-agent/default.nix
index 2d5fae331142..ee249c2c7657 100644
--- a/pkgs/development/tools/open-policy-agent/default.nix
+++ b/pkgs/development/tools/open-policy-agent/default.nix
@@ -11,13 +11,13 @@ assert enableWasmEval && stdenv.isDarwin -> builtins.throw "building with wasm o
 
 buildGoModule rec {
   pname = "open-policy-agent";
-  version = "0.60.0";
+  version = "0.61.0";
 
   src = fetchFromGitHub {
     owner = "open-policy-agent";
     repo = "opa";
     rev = "v${version}";
-    hash = "sha256-E+94J83IDLuEayrlwIp8TL+GZeUCkQmSyNL8N7mvK6o=";
+    hash = "sha256-d0/S9XP/W6Mhs1b9IBzm7kerb6SJ7UzsYS0DnTDVfvY=";
   };
 
   vendorHash = null;
diff --git a/pkgs/development/tools/package-project-cmake/default.nix b/pkgs/development/tools/package-project-cmake/default.nix
index fa40335a1801..e768a74c427d 100644
--- a/pkgs/development/tools/package-project-cmake/default.nix
+++ b/pkgs/development/tools/package-project-cmake/default.nix
@@ -5,13 +5,13 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "package-project-cmake";
-  version = "1.11.1";
+  version = "1.11.2";
 
   src = fetchFromGitHub {
     owner = "TheLartians";
     repo = "PackageProject.cmake";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-E7WZSYDlss5bidbiWL1uX41Oh6JxBRtfhYsFU19kzIw=";
+    hash = "sha256-2u7H2ZR7eQ6eoRIVZ1WBxw9K93E8BVYErZNDe1Jl8rg=";
   };
 
   dontConfigure = true;
diff --git a/pkgs/development/tools/packer/default.nix b/pkgs/development/tools/packer/default.nix
index d02a32827c2c..cbdd003d9216 100644
--- a/pkgs/development/tools/packer/default.nix
+++ b/pkgs/development/tools/packer/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "packer";
-  version = "1.10.0";
+  version = "1.10.1";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "packer";
     rev = "v${version}";
-    hash = "sha256-pHqYO3a9JruOCbMbLLQ2BqS4bcCeaBf82cBxGVHgLoY=";
+    hash = "sha256-P7QG4ldOJn83w5XxIzC1dhVmn2e/gcwHBT9cZiQmsbo=";
   };
 
-  vendorHash = "sha256-ydG1nINW9uGYv5uNlJ6p8GHSkIW83qGpUAfRU+yQXmc=";
+  vendorHash = "sha256-KtMK6jZ9c84OVWJC1njgOh1U+wrFo4G6Qt/XfOFvIhE=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/development/tools/packet-sd/default.nix b/pkgs/development/tools/packet-sd/default.nix
index 5f61b584489c..a1418df2cc3a 100644
--- a/pkgs/development/tools/packet-sd/default.nix
+++ b/pkgs/development/tools/packet-sd/default.nix
@@ -1,4 +1,9 @@
-{ buildGoModule, fetchFromGitHub, lib }:
+{ buildGoModule
+, fetchFromGitHub
+, fetchpatch2
+, lib
+}:
+
 buildGoModule rec {
   pname = "prometheus-packet-sd";
   version = "0.0.3";
@@ -7,9 +12,23 @@ buildGoModule rec {
     owner = "packethost";
     repo = "prometheus-packet-sd";
     rev = "v${version}";
-    sha256 = "sha256-2k8AsmyhQNNZCzpVt6JdgvI8IFb5pRi4ic6Yn2NqHMM=";
+    hash = "sha256-2k8AsmyhQNNZCzpVt6JdgvI8IFb5pRi4ic6Yn2NqHMM=";
   };
 
+  patches = [
+    (fetchpatch2 {
+      # fix racy permissions on outfile
+      # https://github.com/packethost/prometheus-packet-sd/issues/15
+      url = "https://github.com/packethost/prometheus-packet-sd/commit/bf0ed3a1da4d0f797bd29e4a1857ac65a1d04750.patch";
+      hash = "sha256-ZLV9lyqZxpIQ1Cmzy/nY/85b4QWF5Ou0XcdrZXxck2E=";
+    })
+    (fetchpatch2 {
+      # restrict outfile to not be world/group writable
+      url = "https://github.com/packethost/prometheus-packet-sd/commit/a0afc2a4c3f49dc234d0d2c4901df25b4110b3ec.patch";
+      hash = "sha256-M5133+r77z21/Ulnbz+9sGbbuY5UpU1+22iY464UVAU=";
+    })
+  ];
+
   vendorHash = null;
 
   subPackages = [ "." ];
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix b/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix
index e3dde6251b1c..1544e737c0b9 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix
@@ -49,6 +49,7 @@
   tree-sitter-json5 = lib.importJSON ./tree-sitter-json5.json;
   tree-sitter-jsonnet = lib.importJSON ./tree-sitter-jsonnet.json;
   tree-sitter-julia = lib.importJSON ./tree-sitter-julia.json;
+  tree-sitter-just = lib.importJSON ./tree-sitter-just.json;
   tree-sitter-kotlin = lib.importJSON ./tree-sitter-kotlin.json;
   tree-sitter-latex = lib.importJSON ./tree-sitter-latex.json;
   tree-sitter-ledger = lib.importJSON ./tree-sitter-ledger.json;
@@ -90,6 +91,7 @@
   tree-sitter-supercollider = lib.importJSON ./tree-sitter-supercollider.json;
   tree-sitter-surface = lib.importJSON ./tree-sitter-surface.json;
   tree-sitter-svelte = lib.importJSON ./tree-sitter-svelte.json;
+  tree-sitter-templ = lib.importJSON ./tree-sitter-templ.json;
   tree-sitter-tiger = lib.importJSON ./tree-sitter-tiger.json;
   tree-sitter-tlaplus = lib.importJSON ./tree-sitter-tlaplus.json;
   tree-sitter-toml = lib.importJSON ./tree-sitter-toml.json;
@@ -101,9 +103,9 @@
   tree-sitter-verilog = lib.importJSON ./tree-sitter-verilog.json;
   tree-sitter-vim = lib.importJSON ./tree-sitter-vim.json;
   tree-sitter-vue = lib.importJSON ./tree-sitter-vue.json;
+  tree-sitter-wgsl = lib.importJSON ./tree-sitter-wgsl.json;
   tree-sitter-wing = lib.importJSON ./tree-sitter-wing.json;
   tree-sitter-yaml = lib.importJSON ./tree-sitter-yaml.json;
   tree-sitter-yang = lib.importJSON ./tree-sitter-yang.json;
   tree-sitter-zig = lib.importJSON ./tree-sitter-zig.json;
-  tree-sitter-wgsl = lib.importJSON ./tree-sitter-wgsl.json;
 }
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-just.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-just.json
new file mode 100644
index 000000000000..46e3c31dc394
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-just.json
@@ -0,0 +1,12 @@
+{
+  "url": "https://github.com/IndianBoy42/tree-sitter-just",
+  "rev": "f807ab33c36651ecb503a291aed933932754864d",
+  "date": "2024-01-11T04:53:14-05:00",
+  "path": "/nix/store/f6b4xvxkbzrwmxk8vr1gz4c3g3pqh2hz-tree-sitter-just",
+  "sha256": "1ng49slp5x98s9ydc7gha7gkcj93ks4iv0ixc7n0z9dr4akqrbw8",
+  "hash": "sha256-iK+MpyK5pQ/sYT2CHYmeI0k231HwHdZ80ij1cqlO5Nk=",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-templ.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-templ.json
new file mode 100644
index 000000000000..240368e1e55d
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-templ.json
@@ -0,0 +1,12 @@
+{
+  "url": "https://github.com/vrischmann/tree-sitter-templ",
+  "rev": "14d105789af342f7f0c32bff2fec1a6edec59f60",
+  "date": "2023-12-29T22:31:39+01:00",
+  "path": "/nix/store/8yixhjmhynryb79g3wff5kxgz35ncg3n-tree-sitter-templ",
+  "sha256": "1hr0l9ibm12ggiyk5m3h12fjgrdkfv7d2qlcfy6l6c10k4ghngf2",
+  "hash": "sha256-wj0LH5kgMEONd4xi0c52s+UnnQhw1DJ9fE+EumKiIMM=",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/update.nix b/pkgs/development/tools/parsing/tree-sitter/update.nix
index bd4074f933ba..aad4a6c9a029 100644
--- a/pkgs/development/tools/parsing/tree-sitter/update.nix
+++ b/pkgs/development/tools/parsing/tree-sitter/update.nix
@@ -108,6 +108,10 @@ let
       orga = "wilfred";
       repo = "tree-sitter-elisp";
     };
+    "tree-sitter-just" = {
+      orga = "IndianBoy42";
+      repo = "tree-sitter-just";
+    };
     "tree-sitter-nix" = {
       orga = "cstrahan";
       repo = "tree-sitter-nix";
@@ -401,6 +405,10 @@ let
       orga = "szebniok";
       repo = "tree-sitter-wgsl";
     };
+    "tree-sitter-templ" = {
+      orga = "vrischmann";
+      repo = "tree-sitter-templ";
+    };
   };
 
   allGrammars =
diff --git a/pkgs/development/tools/patatt/default.nix b/pkgs/development/tools/patatt/default.nix
index 847698f79954..aed80b94ac6b 100644
--- a/pkgs/development/tools/patatt/default.nix
+++ b/pkgs/development/tools/patatt/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "patatt";
-  version = "0.6.2";
+  version = "0.6.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-WaEq4qWL6xAZ3cJJ/lkJ5XTIrXcOMIESbytvWbsYx2s=";
+    sha256 = "sha256-mAgm9lKdJXbCZ8ofVk1b7wRstH5UIVu1mO1sS5stCig=";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/development/tools/postiats-utilities/default.nix b/pkgs/development/tools/postiats-utilities/default.nix
index 51d9d14efa17..6ac021e1ba09 100644
--- a/pkgs/development/tools/postiats-utilities/default.nix
+++ b/pkgs/development/tools/postiats-utilities/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   '';
 
   installPhase = ''
-    libdir="$out/lib/${python3.libPrefix}/site-packages"
+    libdir="$out/${python3.sitePackages}"
     mkdir -p "$libdir"
     cp -r postiats "$libdir"
 
diff --git a/pkgs/development/tools/protoc-gen-go-vtproto/default.nix b/pkgs/development/tools/protoc-gen-go-vtproto/default.nix
index d24ab86538af..e1e716eee13a 100644
--- a/pkgs/development/tools/protoc-gen-go-vtproto/default.nix
+++ b/pkgs/development/tools/protoc-gen-go-vtproto/default.nix
@@ -4,16 +4,16 @@
 }:
 buildGoModule rec {
   pname = "protoc-gen-go-vtproto";
-  version = "0.5.0";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "planetscale";
     repo = "vtprotobuf";
     rev = "v${version}";
-    sha256 = "sha256-2DpL8CYl0MWpr7TBJPwDlgKvOoa5RrVwMjOxrEP5Wio=";
+    sha256 = "sha256-ji6elc0hN49A4Ov/ckd8chPR4/8ZX11THzVz9HJGui4=";
   };
 
-  vendorHash = "sha256-JpSVO8h7+StLG9/dJQkmrIlh9zIHABoqP1hq+X5ajVs=";
+  vendorHash = "sha256-UMOEePOtOtmm9ShQy5LXcEUTv8/SIG9dU7/9vLhrBxQ=";
 
   excludedPackages = [ "conformance" ];
 
diff --git a/pkgs/development/tools/protoc-gen-validate/default.nix b/pkgs/development/tools/protoc-gen-validate/default.nix
index 005b6eac1f8b..b58988a4af59 100644
--- a/pkgs/development/tools/protoc-gen-validate/default.nix
+++ b/pkgs/development/tools/protoc-gen-validate/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "protoc-gen-validate";
-  version = "1.0.2";
+  version = "1.0.4";
 
   src = fetchFromGitHub {
     owner = "bufbuild";
     repo = "protoc-gen-validate";
     rev = "v${version}";
-    sha256 = "sha256-sztpUzrVvYT3GFVbfd91rOudj/PEHHizTOzTrH1fQts=";
+    sha256 = "sha256-NPjBVd5Ch8h2+48uymMRjjY6nepmGiY8z9Kwt+wN4lI=";
   };
 
-  vendorHash = "sha256-UPmeb36kF+z37+RcyXaOsJvAto1xrJUyJqcPyODAQrY=";
+  vendorHash = "sha256-1bR6cV7R9JEmayE3XN2fcrPQL6xspkKb+WYf+IrOhds=";
 
   excludedPackages = [ "tests" ];
 
diff --git a/pkgs/development/tools/protolint/default.nix b/pkgs/development/tools/protolint/default.nix
index e4121a02f580..02c5b18ad2e3 100644
--- a/pkgs/development/tools/protolint/default.nix
+++ b/pkgs/development/tools/protolint/default.nix
@@ -1,13 +1,13 @@
 { lib, buildGoModule, fetchFromGitHub }:
 buildGoModule rec {
   pname = "protolint";
-  version = "0.47.4";
+  version = "0.47.5";
 
   src = fetchFromGitHub {
     owner = "yoheimuta";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-OfAkqShUAC84buWhQffvIF5i6maPSWKa9nr5hhUwV6Y=";
+    hash = "sha256-xXl9MY0oBjyDlLVvpdV7nquxUxahfPslxJeOeUmwFgk=";
   };
 
   vendorHash = "sha256-62SxRvoN4ejmAczs823jftXUmeI4ozfb6plHYT1JwZ0=";
diff --git a/pkgs/development/tools/pscale/default.nix b/pkgs/development/tools/pscale/default.nix
index 055cfae346c1..98b6e7e0c3bf 100644
--- a/pkgs/development/tools/pscale/default.nix
+++ b/pkgs/development/tools/pscale/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "pscale";
-  version = "0.177.0";
+  version = "0.182.0";
 
   src = fetchFromGitHub {
     owner = "planetscale";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-nvtLUrJhxqMWi/NzKw1KYOEL+1DsWfJoLXoXQI7QP6M=";
+    sha256 = "sha256-zqwdTtNbPm9D0zfVI8zd3hFM6zLQVxXyxNOyEW1gSHY=";
   };
 
-  vendorHash = "sha256-n6vPeeOmSB/qHBGCdZHZtf3JD/wgFYD0+VO3Ir8MtqE=";
+  vendorHash = "sha256-93Eu38tDxV4pT4HtmssFckYwdnkOaW2IY6PsqT9W73c=";
 
   ldflags = [
     "-s" "-w"
diff --git a/pkgs/development/tools/pur/default.nix b/pkgs/development/tools/pur/default.nix
index 710dc9e71413..9f8527b34765 100644
--- a/pkgs/development/tools/pur/default.nix
+++ b/pkgs/development/tools/pur/default.nix
@@ -5,28 +5,32 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "pur";
-  version = "7.0.0";
+  version = "7.3.1";
+  format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "alanhamlett";
     repo = "pip-update-requirements";
     rev = "refs/tags/${version}";
-    hash = "sha256-JAjz9A9r1H6MJX7MSq7UvQKfULhB9UuPP3tI6Cggx9I=";
+    hash = "sha256-W6otdj1C3Nn3DUvwp9MPqMo2y4ITqgYrqlW/uxIj2YA=";
   };
 
-  propagatedBuildInputs = [
-    python3.pkgs.click
+  propagatedBuildInputs = with python3.pkgs; [
+    click
   ];
 
-  nativeCheckInputs = [
-    python3.pkgs.pytestCheckHook
+  nativeCheckInputs = with python3.pkgs; [
+    pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "pur" ];
+  pythonImportsCheck = [
+    "pur"
+  ];
 
   meta = with lib; {
     description = "Python library for update and track the requirements";
     homepage = "https://github.com/alanhamlett/pip-update-requirements";
+    changelog = "https://github.com/alanhamlett/pip-update-requirements/blob/${version}/HISTORY.rst";
     license = with licenses; [ bsd2 ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/tools/purescript/spago/default.nix b/pkgs/development/tools/purescript/spago/default.nix
index ada0eb350efa..82d3be2fd469 100644
--- a/pkgs/development/tools/purescript/spago/default.nix
+++ b/pkgs/development/tools/purescript/spago/default.nix
@@ -55,4 +55,7 @@ spago.overrideAttrs (oldAttrs: {
           touch $out
         '';
   };
+  meta = (oldAttrs.meta or {}) // {
+    mainProgram = "spago";
+  };
 })
diff --git a/pkgs/development/tools/pypi-mirror/default.nix b/pkgs/development/tools/pypi-mirror/default.nix
index d992ac23da02..f2a629042fd6 100644
--- a/pkgs/development/tools/pypi-mirror/default.nix
+++ b/pkgs/development/tools/pypi-mirror/default.nix
@@ -4,13 +4,13 @@
 }:
 python3.pkgs.buildPythonApplication rec {
   pname = "pypi-mirror";
-  version = "5.0.2";
+  version = "5.2.0";
 
   src = fetchFromGitHub {
     owner = "montag451";
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-AqE3lAcqWq5CGsgwm8jLa1wX93deFC4mKn+oaVhO508=";
+    sha256 = "sha256-bvnOieNs8pCDKuCSJx88vRxFPcOGWUj/i3mNS6E/nok=";
   };
 
   pythonImportsCheck = [ "pypi_mirror" ];
diff --git a/pkgs/development/tools/quick-lint-js/build-tools-install.patch b/pkgs/development/tools/quick-lint-js/build-tools-install.patch
deleted file mode 100644
index 2326170d5236..000000000000
--- a/pkgs/development/tools/quick-lint-js/build-tools-install.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 3923f0df76d24b73d57f15eec61ab190ea048093 Mon Sep 17 00:00:00 2001
-From: "Matthew \"strager\" Glazar" <strager.nds@gmail.com>
-Date: Thu, 26 Oct 2023 18:08:30 -0400
-Subject: [PATCH] fix(build): fix installing build tools for cross-compilation
-
-'cmake --install . --component build-tools' copies no files [1]. This
-was caused by commit 1f2e1a47 where the code calling install() became
-dead code on accident. Call install() so that 'cmake --install' copies
-the build artifacts as intended.
-
-[1] https://github.com/quick-lint/quick-lint-js/issues/1099
-
-Refs: 1f2e1a4701793cac24eaac44d7af81a8b820b1bc
----
- docs/CHANGELOG.md    | 7 +++++++
- tools/CMakeLists.txt | 1 -
- 2 files changed, 7 insertions(+), 1 deletion(-)
-
- (docs/CHANGELOG.md changes omitted to reduce conflicts.)
-
-diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
-index 71ccbdf1b..b541afb52 100644
---- a/tools/CMakeLists.txt
-+++ b/tools/CMakeLists.txt
-@@ -68,7 +68,6 @@ if (QUICK_LINT_JS_ENABLE_BUILD_TOOLS)
-     COMMENT "Building all quick-lint-js build-time tools"
-     DEPENDS ${QUICK_LINT_JS_BUILD_TOOL_TARGETS}
-   )
--elseif (QUICK_LINT_JS_ENABLE_BUILD_TOOLS)
-   install(
-     TARGETS ${QUICK_LINT_JS_BUILD_TOOL_TARGETS}
-     COMPONENT build-tools
diff --git a/pkgs/development/tools/quick-lint-js/default.nix b/pkgs/development/tools/quick-lint-js/default.nix
index 32c61c836b96..794e00f0908b 100644
--- a/pkgs/development/tools/quick-lint-js/default.nix
+++ b/pkgs/development/tools/quick-lint-js/default.nix
@@ -1,21 +1,19 @@
 { buildPackages, cmake, fetchFromGitHub, lib, ninja, stdenv, testers, quick-lint-js }:
 
 let
-  version = "2.17.0";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     owner = "quick-lint";
     repo = "quick-lint-js";
     rev = version;
-    sha256 = "sha256-5+Cyw1cLgBkTePNNFoNAF2oHnLQDHr4vHiaZHJrewug=";
+    hash = "sha256-7apzP37GK5ZbCxcWfjK1ID6sYa24uoS1GUH3CBDmcRA=";
   };
 
   quick-lint-js-build-tools = buildPackages.stdenv.mkDerivation {
     pname = "quick-lint-js-build-tools";
     inherit version src;
 
-    patches = [ ./build-tools-install.patch ];
-
     nativeBuildInputs = [ cmake ninja ];
     doCheck = false;
 
diff --git a/pkgs/development/tools/refinery-cli/default.nix b/pkgs/development/tools/refinery-cli/default.nix
index 1159c87e8a38..140efe5bfd1b 100644
--- a/pkgs/development/tools/refinery-cli/default.nix
+++ b/pkgs/development/tools/refinery-cli/default.nix
@@ -2,15 +2,15 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "refinery-cli";
-  version = "0.8.11";
+  version = "0.8.12";
 
   src = fetchCrate {
     pname = "refinery_cli";
     inherit version;
-    sha256 = "sha256-Dx0xcPQsq5fYrjgCrEjXyQJOpjEF9d1vavTo+LUKSyE=";
+    sha256 = "sha256-ftti/+Zl9/8CsrlEI5gZQF0M33vzl5aK3X/EfCujtY4=";
   };
 
-  cargoHash = "sha256-giD9yBbC3Fsgtch6lkMLGkYik/hivK48Um2qWI7EV+A=";
+  cargoHash = "sha256-KlZTgg/Y4cXy5DR8iT4olVTF0kq1g5AQm3Sjpmrl6lk=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/development/tools/refurb/default.nix b/pkgs/development/tools/refurb/default.nix
index 5eb52df0a0f1..17c32d78d288 100644
--- a/pkgs/development/tools/refurb/default.nix
+++ b/pkgs/development/tools/refurb/default.nix
@@ -5,14 +5,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "refurb";
-  version = "1.27.0";
+  version = "1.28.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "dosisod";
     repo = "refurb";
     rev = "refs/tags/v${version}";
-    hash = "sha256-v9zeip7dyEGbn4FVXkd713ybVyf9tvvflCeiS4H7lO0=";
+    hash = "sha256-b7Id2Oyjw3NZno56IMDIq7fn5u9+jn42nuae8ix90fM=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/tools/reindeer/default.nix b/pkgs/development/tools/reindeer/default.nix
index bcb022ee10bd..eaf4b1858814 100644
--- a/pkgs/development/tools/reindeer/default.nix
+++ b/pkgs/development/tools/reindeer/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "reindeer";
-  version = "unstable-2024-01-11";
+  version = "unstable-2024-01-30";
 
   src = fetchFromGitHub {
     owner = "facebookincubator";
     repo = pname;
-    rev = "ff28220b43defa70f8cae77d7aa139a2f6048bf3";
-    sha256 = "sha256-jh0Gq29OUp7QmSd3sT9pC9OlCnyx8lHJEAEG7eBw448=";
+    rev = "2fe0af4d3b637d3dfff41d26623a4596a7b5fdb0";
+    sha256 = "sha256-MUMqM6BZUECxdOkBdeNMEE88gJumKI/ODo+1hmmrCHY=";
   };
 
-  cargoSha256 = "sha256-3F1Df66JgZnQbt1zHNOClJPb6IB7crwvCdy7YA4UIKA=";
+  cargoSha256 = "sha256-fquvUq9MjC7J24wuZR+voUkm3F7eMy1ELxMuELlQaus=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs =
diff --git a/pkgs/development/tools/reshape/default.nix b/pkgs/development/tools/reshape/default.nix
index 9a4176313258..d0bf9110c14e 100644
--- a/pkgs/development/tools/reshape/default.nix
+++ b/pkgs/development/tools/reshape/default.nix
@@ -7,14 +7,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "reshape";
-  version = "0.6.1";
+  version = "0.7.0";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-pTEOVDeCE69dn005nj1ULGKjguCtC1uReI/l3WEz4+w=";
+    hash = "sha256-wv2gKyXCEH+tnZkUUAisMbuseth3dsFiJujH8VO1ii4=";
   };
 
-  cargoHash = "sha256-KYU5drTVHdWmlE01Fq1TxJZTe87yBpDKIGm4P+RRCGw=";
+  cargoHash = "sha256-VTJ3FNhVLgxo/VVBhk1yF9UUktLXcbrEkYwoyoWFhXA=";
 
   nativeCheckInputs = [
     postgresqlTestHook
diff --git a/pkgs/development/tools/revive/default.nix b/pkgs/development/tools/revive/default.nix
index bb6f498e5f8d..359d16ac187c 100644
--- a/pkgs/development/tools/revive/default.nix
+++ b/pkgs/development/tools/revive/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "revive";
-  version = "1.3.5";
+  version = "1.3.6";
 
   src = fetchFromGitHub {
     owner = "mgechev";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-yHsEELeBG/dgV1uaYTOfvVVZQZ+AG1kKx86tn9GI+RA=";
+    sha256 = "sha256-0s90Q07D/a0n/SVgMOnjje9pSCWJOzRx5jH+t9th4rs=";
     # 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;
@@ -18,7 +18,7 @@ buildGoModule rec {
       rm -rf $out/.git
     '';
   };
-  vendorHash = "sha256-hNLHVx3zuCheSfY6TSixfJj/76JQ9nOW+mBquIZCgSk=";
+  vendorHash = "sha256-rFFgh/BWEejqrhCzCeGWa2AfiNd8dYDvCKvcpXk42nY=";
 
   ldflags = [
     "-s"
@@ -35,7 +35,7 @@ buildGoModule rec {
 
   # The following tests fail when built by nix:
   #
-  # $ nix log /nix/store/build-revive.1.3.5.drv | grep FAIL
+  # $ nix log /nix/store/build-revive.1.3.6.drv | grep FAIL
   #
   # --- FAIL: TestAll (0.01s)
   # --- FAIL: TestTimeEqual (0.00s)
diff --git a/pkgs/development/tools/rojo/default.nix b/pkgs/development/tools/rojo/default.nix
index c15cb643c6ee..1eaeed08316a 100644
--- a/pkgs/development/tools/rojo/default.nix
+++ b/pkgs/development/tools/rojo/default.nix
@@ -8,21 +8,21 @@
 }:
 
 let
-  inherit (darwin.apple_sdk.frameworks) CoreServices;
+  inherit (darwin.apple_sdk.frameworks) CoreServices SystemConfiguration;
 in
 rustPlatform.buildRustPackage rec {
   pname = "rojo";
-  version = "7.2.1";
+  version = "7.4.0";
 
   src = fetchFromGitHub {
     owner = "rojo-rbx";
     repo = "rojo";
     rev = "v${version}";
-    sha256 = "sha256-Kmq/lBwayYkFU4mbjExj7M9wpg59OkIiTc+2ZrwpuBc=";
+    sha256 = "sha256-Eh1G0jX9KXVlMZLl8whxULywadblWml232qvcq4JLJ4=";
     fetchSubmodules = true;
   };
 
-  cargoSha256 = "sha256-qx6Ja0DMe4cEmDSpovtY9T3+0nJS9XivR92K3UKgacE=";
+  cargoSha256 = "sha256-aKfgylY9aspL1JpdYa6hOy/6lQoqO54OhZWqSlMPZ8o=";
 
   nativeBuildInputs = [
     pkg-config
@@ -32,8 +32,12 @@ rustPlatform.buildRustPackage rec {
     openssl
   ] ++ lib.optionals stdenv.isDarwin [
     CoreServices
+    SystemConfiguration
   ];
 
+  # reqwest's native-tls-vendored feature flag uses vendored openssl. this disables that
+  OPENSSL_NO_VENDOR = "1";
+
   # tests flaky on darwin on hydra
   doCheck = !stdenv.isDarwin;
 
diff --git a/pkgs/development/tools/rover/default.nix b/pkgs/development/tools/rover/default.nix
index 5fbde990df75..90b3d91413f7 100644
--- a/pkgs/development/tools/rover/default.nix
+++ b/pkgs/development/tools/rover/default.nix
@@ -1,5 +1,4 @@
 { lib
-, callPackage
 , fetchFromGitHub
 , perl
 , rustPlatform
@@ -9,20 +8,21 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rover";
-  version = "0.14.0";
+  version = "0.22.0";
 
   src = fetchFromGitHub {
     owner = "apollographql";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-fVgo5Ds/VK0kBpF+F2FdMvBnQj2IB+B5ToOK8ONdq6c=";
+    sha256 = "sha256-+BsD7SRinU57Alg71N3tdL9iFGGdomVA7SrBE6G1f4E=";
   };
 
-  cargoSha256 = "sha256-fNqnpLNENLJEhbqxLFUqyjAf8tEPCLoGSRV91gOY9LI=";
+  cargoSha256 = "sha256-SDvOxvfv8FNUebfwSFnBc6ormK2xpXPjmACwtllHfQE=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.Security
     darwin.apple_sdk.frameworks.CoreServices
+    darwin.apple_sdk.frameworks.SystemConfiguration
   ];
 
   nativeBuildInputs = [
@@ -36,15 +36,6 @@ rustPlatform.buildRustPackage rec {
     "-- --skip=latest_plugins_are_valid_versions"
   ];
 
-  # The rover-client's build script (xtask/src/commands/prep/schema.rs) will try to
-  # download the API's graphql schema at build time to our read-only filesystem.
-  # To avoid this we pre-download it to a location the build script checks.
-  preBuild = ''
-    cp ${./schema}/hash.id              crates/rover-client/.schema/
-    cp ${./schema}/etag.id              crates/rover-client/.schema/
-    cp ${./schema}/schema.graphql       crates/rover-client/.schema/
-  '';
-
   passthru.updateScript = ./update.sh;
 
   # Some tests try to write configuration data to a location in the user's home
diff --git a/pkgs/development/tools/rover/schema/etag.id b/pkgs/development/tools/rover/schema/etag.id
deleted file mode 100644
index 59331ac0df6d..000000000000
--- a/pkgs/development/tools/rover/schema/etag.id
+++ /dev/null
@@ -1 +0,0 @@
-d35f8c48cb89329f33656944fa9e997de1e778b043b9ca4d78c8accdecfd9046
diff --git a/pkgs/development/tools/rover/schema/hash.id b/pkgs/development/tools/rover/schema/hash.id
deleted file mode 100644
index d730728cfa77..000000000000
--- a/pkgs/development/tools/rover/schema/hash.id
+++ /dev/null
@@ -1 +0,0 @@
-ff145f12604d11312e6a2f8a61a3d226fcdb2ca79f6b7fbc24c5a22aa23ab1af
diff --git a/pkgs/development/tools/rover/schema/schema.graphql b/pkgs/development/tools/rover/schema/schema.graphql
deleted file mode 100644
index 8cc527f4f822..000000000000
--- a/pkgs/development/tools/rover/schema/schema.graphql
+++ /dev/null
@@ -1,1980 +0,0 @@
-schema {
-  query: Query
-  mutation: Mutation
-}
-
-"""An organization in Apollo Studio. Can have multiple members and graphs."""
-type Organization {
-  auditLogExports: [AuditLogExport!]
-  """Graphs belonging to this organization."""
-  graphs(includeDeleted: Boolean): [Graph!]!
-  """Globally unique identifier, which isn't guaranteed stable (can be changed by administrators)."""
-  id: ID!
-  """Name of the organization, which can change over time and isn't unique."""
-  name: String!
-  """Graphs belonging to this organization."""
-  services(includeDeleted: Boolean): [Graph!]! @deprecated(reason: "Use graphs field instead")
-}
-
-type OrganizationMutation {
-  """Trigger a request for an audit export"""
-  requestAuditExport(actors: [ActorInput!], from: Timestamp!, graphIds: [String!], to: Timestamp!): Organization
-}
-
-"""Represents an actor that performs actions in Apollo Studio. Most actors are either a `USER` or a `GRAPH` (based on a request's provided API key), and they have the corresponding `ActorType`."""
-type Actor {
-  actorId: ID!
-  type: ActorType!
-}
-
-"""Input type to provide when specifying an `Actor` in operation arguments. See also the `Actor` object type."""
-input ActorInput {
-  actorId: ID!
-  type: ActorType!
-}
-
-enum ActorType {
-  ANONYMOUS_USER
-  BACKFILL
-  CRON
-  GRAPH
-  INTERNAL_IDENTITY
-  SYNCHRONIZATION
-  SYSTEM
-  USER
-}
-
-union AddOperationCollectionEntriesResult = AddOperationCollectionEntriesSuccess | PermissionError | ValidationError
-
-type AddOperationCollectionEntriesSuccess {
-  operationCollectionEntries: [OperationCollectionEntry!]!
-}
-
-union AddOperationCollectionEntryResult = OperationCollectionEntry | PermissionError | ValidationError
-
-input AddOperationInput {
-  """The operation's fields."""
-  document: OperationCollectionEntryStateInput!
-  """The operation's name."""
-  name: String!
-}
-
-type AffectedQuery {
-  id: ID!
-  """First 128 characters of query signature for display"""
-  signature: String
-  """Name to display to the user for the operation"""
-  displayName: String
-  """Name provided for the operation, which can be empty string if it is an anonymous operation"""
-  name: String
-  """Determines if this query validates against the proposed schema"""
-  isValid: Boolean
-  """List of changes affecting this query. Returns null if queried from SchemaDiff.changes.affectedQueries.changes"""
-  changes: [ChangeOnOperation!]
-  """Whether this operation was ignored and its severity was downgraded for that reason"""
-  markedAsIgnored: Boolean
-  """Whether the changes were marked as safe and its severity was downgraded for that reason"""
-  markedAsSafe: Boolean
-  """If the operation would be approved if the check ran again. Returns null if queried from SchemaDiff.changes.affectedQueries.alreadyApproved"""
-  alreadyApproved: Boolean
-  """If the operation would be ignored if the check ran again"""
-  alreadyIgnored: Boolean
-}
-
-"""
-Represents an API key that's used to authenticate a
-particular Apollo user or graph.
-"""
-interface ApiKey {
-  """The API key's ID."""
-  id: ID!
-  """The API key's name, for distinguishing it from other keys."""
-  keyName: String
-  """The value of the API key. **This is a secret credential!**"""
-  token: String!
-}
-
-type ApiKeyProvision {
-  apiKey: ApiKey!
-  created: Boolean!
-}
-
-type AuditLogExport {
-  """The list of actors to filter the audit export"""
-  actors: [Identity!]
-  """The time when the audit export was completed"""
-  completedAt: Timestamp
-  """The time when the audit export was reqeusted"""
-  createdAt: Timestamp!
-  """List of URLs to download the audits for the requested range"""
-  downloadUrls: [String!]
-  """The starting point of audits to include in export"""
-  from: Timestamp!
-  """The list of graphs to filter the audit export"""
-  graphs: [Graph!]
-  """The id for the audit export"""
-  id: ID!
-  """The user that initiated the audit export"""
-  requester: User
-  """The status of the audit export"""
-  status: AuditStatus!
-  """The end point of audits to include in export"""
-  to: Timestamp!
-}
-
-enum AuditStatus {
-  CANCELLED
-  COMPLETED
-  EXPIRED
-  FAILED
-  IN_PROGRESS
-  QUEUED
-}
-
-"""The building of a Studio variant (including supergraph composition and any contract filtering) as part of a launch."""
-type Build {
-  """The inputs provided to the build, including subgraph and contract details."""
-  input: BuildInput!
-  """The result of the build. This value is null until the build completes."""
-  result: BuildResult
-}
-
-"""A single error that occurred during the failed execution of a build."""
-type BuildError {
-  code: String
-  locations: [SourceLocation!]!
-  message: String!
-}
-
-"""Contains the details of an executed build that failed."""
-type BuildFailure {
-  """A list of all errors that occurred during the failed build."""
-  errorMessages: [BuildError!]!
-}
-
-union BuildInput = CompositionBuildInput | FilterBuildInput
-
-union BuildResult = BuildFailure | BuildSuccess
-
-"""Contains the details of an executed build that succeeded."""
-type BuildSuccess {
-  """Contains the supergraph and API schemas created by composition."""
-  coreSchema: CoreSchema!
-}
-
-"""A single change that was made to a definition in a schema."""
-type Change {
-  """The severity of the change (e.g., `FAILURE` or `NOTICE`)"""
-  severity: ChangeSeverity!
-  """Indicates the type of change that was made, and to what (e.g., 'TYPE_REMOVED')."""
-  code: String!
-  """Indication of the category of the change (e.g. addition, removal, edit)."""
-  category: ChangeCategory!
-  """A human-readable description of the change."""
-  description: String!
-  affectedQueries: [AffectedQuery!]
-  """Top level node affected by the change."""
-  parentNode: NamedIntrospectionType
-  """
-  Node related to the top level node that was changed, such as a field in an object,
-  a value in an enum or the object of an interface.
-  """
-  childNode: NamedIntrospectionValue
-  """Target arg of change made."""
-  argNode: NamedIntrospectionArg
-}
-
-"""
-Defines a set of categories that a schema change
-can be grouped by.
-"""
-enum ChangeCategory {
-  ADDITION
-  EDIT
-  REMOVAL
-  DEPRECATION
-}
-
-"""
-These schema change codes represent all of the possible changes that can
-occur during the schema diff algorithm.
-"""
-enum ChangeCode {
-  """Field was removed from the type."""
-  FIELD_REMOVED
-  """Type (object or scalar) was removed from the schema."""
-  TYPE_REMOVED
-  """Argument to a field was removed."""
-  ARG_REMOVED
-  """Type is no longer included in the union."""
-  TYPE_REMOVED_FROM_UNION
-  """Field was removed from the input object."""
-  FIELD_REMOVED_FROM_INPUT_OBJECT
-  """Value was removed from the enum."""
-  VALUE_REMOVED_FROM_ENUM
-  """Type no longer implements the interface."""
-  TYPE_REMOVED_FROM_INTERFACE
-  """Non-nullable argument was added to the field."""
-  REQUIRED_ARG_ADDED
-  """Non-nullable field was added to the input object. (Deprecated.)"""
-  NON_NULLABLE_FIELD_ADDED_TO_INPUT_OBJECT
-  """Required field was added to the input object."""
-  REQUIRED_FIELD_ADDED_TO_INPUT_OBJECT
-  """Return type for the field was changed."""
-  FIELD_CHANGED_TYPE
-  """Type of the field in the input object was changed."""
-  FIELD_ON_INPUT_OBJECT_CHANGED_TYPE
-  """
-  Type was changed from one kind to another.
-  Ex: scalar to object or enum to union.
-  """
-  TYPE_CHANGED_KIND
-  """Type of the argument was changed."""
-  ARG_CHANGED_TYPE
-  """Argument was changed from nullable to non-nullable."""
-  ARG_CHANGED_TYPE_OPTIONAL_TO_REQUIRED
-  """A new value was added to the enum."""
-  VALUE_ADDED_TO_ENUM
-  """A new value was added to the enum."""
-  TYPE_ADDED_TO_UNION
-  """Type now implements the interface."""
-  TYPE_ADDED_TO_INTERFACE
-  """Default value added or changed for the argument."""
-  ARG_DEFAULT_VALUE_CHANGE
-  """Nullable argument was added to the field."""
-  OPTIONAL_ARG_ADDED
-  """Nullable field was added to the input type. (Deprecated.)"""
-  NULLABLE_FIELD_ADDED_TO_INPUT_OBJECT
-  """Optional field was added to the input type."""
-  OPTIONAL_FIELD_ADDED_TO_INPUT_OBJECT
-  """Field was added to the type."""
-  FIELD_ADDED
-  """Type was added to the schema."""
-  TYPE_ADDED
-  """Enum was deprecated."""
-  ENUM_DEPRECATED
-  """Enum deprecation was removed."""
-  ENUM_DEPRECATION_REMOVED
-  """Reason for enum deprecation changed."""
-  ENUM_DEPRECATED_REASON_CHANGE
-  """Field was deprecated."""
-  FIELD_DEPRECATED
-  """Field deprecation removed."""
-  FIELD_DEPRECATION_REMOVED
-  """Reason for field deprecation changed."""
-  FIELD_DEPRECATED_REASON_CHANGE
-  """Description was added, removed, or updated for type."""
-  TYPE_DESCRIPTION_CHANGE
-  """Description was added, removed, or updated for field."""
-  FIELD_DESCRIPTION_CHANGE
-  """Description was added, removed, or updated for enum value."""
-  ENUM_VALUE_DESCRIPTION_CHANGE
-  """Description was added, removed, or updated for argument."""
-  ARG_DESCRIPTION_CHANGE
-  """Directive was removed."""
-  DIRECTIVE_REMOVED
-  """Argument to the directive was removed."""
-  DIRECTIVE_ARG_REMOVED
-  """Location of the directive was removed."""
-  DIRECTIVE_LOCATION_REMOVED
-  """Repeatable flag was removed for directive."""
-  DIRECTIVE_REPEATABLE_REMOVED
-  """Non-nullable argument added to directive."""
-  REQUIRED_DIRECTIVE_ARG_ADDED
-}
-
-"""
-Represents the tuple of static information
-about a particular kind of schema change.
-"""
-type ChangeDefinition {
-  code: ChangeCode!
-  defaultSeverity: ChangeSeverity!
-  category: ChangeCategory!
-}
-
-"""An addition made to a Studio variant's changelog after a launch."""
-type ChangelogLaunchResult {
-  createdAt: Timestamp!
-  schemaTagID: ID!
-}
-
-"""Info about a change in the context of an operation it affects"""
-type ChangeOnOperation {
-  """The semantic info about this change, i.e. info about the change that doesn't depend on the operation"""
-  semanticChange: SemanticChange!
-  """Human-readable explanation of the impact of this change on the operation"""
-  impact: String
-}
-
-enum ChangeSeverity {
-  FAILURE
-  NOTICE
-}
-
-"""
-Summary of the changes for a schema diff, computed by placing the changes into categories and then
-counting the size of each category. This categorization can be done in different ways, and
-accordingly there are multiple fields here for each type of categorization.
-
-Note that if an object or interface field is added/removed, there won't be any addition/removal
-changes generated for its arguments or @deprecated usages. If an enum type is added/removed, there
-will be addition/removal changes generated for its values, but not for those values' @deprecated
-usages. Description changes won't be generated for a schema element if that element (or an
-ancestor) was added/removed.
-"""
-type ChangeSummary {
-  """
-  Counts for changes to non-field aspects of objects, input objects, and interfaces,
-  and all aspects of enums, unions, and scalars.
-  """
-  type: TypeChangeSummaryCounts!
-  """Counts for changes to fields of objects, input objects, and interfaces."""
-  field: FieldChangeSummaryCounts!
-  """Counts for all changes."""
-  total: TotalChangeSummaryCounts!
-}
-
-enum ChangeType {
-  FAILURE
-  NOTICE
-}
-
-"""Filter options available when listing checks."""
-input CheckFilterInput {
-  authors: [String!]
-  branches: [String!]
-  subgraphs: [String!]
-  status: CheckFilterInputStatusOption
-  variants: [String!]
-}
-
-"""Options for filtering CheckWorkflows by status"""
-enum CheckFilterInputStatusOption {
-  FAILED
-  PENDING
-  PASSED
-}
-
-"""The result of performing a subgraph check, including all steps."""
-type CheckPartialSchemaResult {
-  """Result of compostion run as part of the overall subgraph check."""
-  compositionValidationResult: CompositionCheckResult!
-  """Overall result of the check. This will be null if composition validation was unsuccessful."""
-  checkSchemaResult: CheckSchemaResult
-  """Whether any modifications were detected in the composed core schema."""
-  coreSchemaModified: Boolean!
-}
-
-"""The possible results of a request to initiate schema checks (either a success object or one of multiple `Error` objects)."""
-union CheckRequestResult = CheckRequestSuccess | InvalidInputError | PermissionError | PlanError
-
-"""Represents a successfully initiated execution of schema checks. This does not indicate the _result_ of the checks, only that they were initiated."""
-type CheckRequestSuccess {
-  """The URL of the Apollo Studio page for this check."""
-  targetURL: String!
-  """The unique ID for this execution of schema checks."""
-  workflowID: ID!
-}
-
-"""Input type to provide when running schema checks asynchronously for a non-federated graph."""
-input CheckSchemaAsyncInput {
-  """Configuration options for the check execution."""
-  config: HistoricQueryParametersInput!
-  """The GitHub context to associate with the check."""
-  gitContext: GitContextInput!
-  graphRef: ID @deprecated(reason: "This field is not required to be sent anymore")
-  """The URL of the GraphQL endpoint that Apollo Sandbox introspected to obtain the proposed schema. Required if `isSandbox` is `true`."""
-  introspectionEndpoint: String
-  """If `true`, the check was initiated by Apollo Sandbox."""
-  isSandbox: Boolean!
-  proposedSchemaDocument: String
-}
-
-"""The result of running schema checks on a graph variant."""
-type CheckSchemaResult {
-  """The schema diff and affected operations generated by the schema check."""
-  diffToPrevious: SchemaDiff!
-  """The URL to view the schema diff in Studio."""
-  targetUrl: String
-}
-
-type CheckWorkflow {
-  """
-  The variant provided as a base to check against. Only the differences from the
-  base schema will be tested in operations checks.
-  """
-  baseVariant: GraphVariant
-  """The timestamp when the check workflow completed."""
-  completedAt: Timestamp
-  id: ID!
-  """The name of the implementing service that was responsible for triggering the validation."""
-  implementingServiceName: String
-  """The timestamp when the check workflow started."""
-  startedAt: Timestamp
-  """Overall status of the workflow, based on the underlying task statuses."""
-  status: CheckWorkflowStatus!
-  """The set of check tasks associated with this workflow, e.g. composition, operations, etc."""
-  tasks: [CheckWorkflowTask!]!
-  """Contextual parameters supplied by the runtime environment where the check was run."""
-  gitContext: GitContext
-  createdAt: Timestamp!
-}
-
-enum CheckWorkflowStatus {
-  FAILED
-  PASSED
-  PENDING
-}
-
-interface CheckWorkflowTask {
-  completedAt: Timestamp
-  createdAt: Timestamp!
-  id: ID!
-  """
-  The status of this task. All tasks start with the PENDING status while initializing. If any
-   prerequisite task fails, then the task status becomes BLOCKED. Otherwise, if all prerequisite
-   tasks pass, then this task runs (still having the PENDING status). Once the task completes, the
-   task status will become either PASSED or FAILED.
-  """
-  status: CheckWorkflowTaskStatus!
-  """A studio UI url to view the details of this check workflow task"""
-  targetURL: String
-  """The workflow that this task belongs to."""
-  workflow: CheckWorkflow!
-}
-
-enum CheckWorkflowTaskStatus {
-  BLOCKED
-  FAILED
-  PASSED
-  PENDING
-}
-
-"""Filter options to exclude by client reference ID, client name, and client version."""
-input ClientInfoFilter {
-  name: String!
-  """Ignored"""
-  referenceID: ID
-  version: String
-}
-
-"""The result of supergraph composition that Studio performed in response to an attempted deletion of a subgraph."""
-type SubgraphRemovalResult {
-  """A list of errors that occurred during composition. Errors mean that Apollo was unable to compose the graph variant's subgraphs into a supergraph schema. If any errors are present, gateways / routers are not updated."""
-  errors: [SchemaCompositionError]!
-  """Whether this composition result resulted in a new supergraph schema passed to Uplink (`true`), or the build failed for any reason (`false`). For dry runs, this value is `true` if Uplink _would have_ been updated with the result."""
-  updatedGateway: Boolean!
-}
-
-"""The result of supergraph composition that Studio performed in response to an attempted publish of a subgraph."""
-type SubgraphPublicationResult {
-  """The generated composition config, or null if any errors occurred."""
-  compositionConfig: CompositionConfig
-  """A list of errors that occurred during composition. Errors mean that Apollo was unable to compose the graph variant's subgraphs into a supergraph schema. If any errors are present, gateways / routers are not updated."""
-  errors: [SchemaCompositionError]!
-  """Whether this composition result resulted in a new supergraph schema passed to Uplink (`true`), or the build failed for any reason (`false`). For dry runs, this value is `true` if Uplink _would have_ been updated with the result."""
-  updatedGateway: Boolean!
-  """Whether a new subgraph was created as part of this publish."""
-  wasCreated: Boolean!
-  """The URL of the Studio page for this update's associated launch, if available."""
-  launchUrl: String
-  """Human-readable text describing the launch result of the subgraph publish."""
-  launchCliCopy: String
-}
-
-type CompositionBuildInput {
-  subgraphs: [Subgraph!]!
-  version: String
-}
-
-type CompositionCheckTask implements CheckWorkflowTask {
-  completedAt: Timestamp
-  """
-  Whether the build's output supergraph core schema differs from that of the active publish for
-  the workflow's variant at the time this field executed (NOT at the time the check workflow
-  started).
-  """
-  coreSchemaModified: Boolean!
-  createdAt: Timestamp!
-  id: ID!
-  status: CheckWorkflowTaskStatus!
-  targetURL: String
-  workflow: CheckWorkflow!
-  """
-  An old version of buildResult that returns a very old GraphQL type that generally should be
-  avoided. This field will soon be deprecated.
-  """
-  result: CompositionResult
-}
-
-"""Composition configuration exposed to the gateway."""
-type CompositionConfig {
-  """The resulting API schema's SHA256 hash, represented as a hexadecimal string."""
-  schemaHash: String!
-}
-
-"""The result of supergraph composition that Studio performed."""
-type CompositionPublishResult implements CompositionResult {
-  """The unique ID for this instance of composition."""
-  graphCompositionID: ID!
-  """A list of errors that occurred during composition. Errors mean that Apollo was unable to compose the graph variant's subgraphs into a supergraph schema. If any errors are present, gateways / routers are not updated."""
-  errors: [SchemaCompositionError!]!
-  """The supergraph SDL generated by composition."""
-  supergraphSdl: GraphQLDocument
-}
-
-"""The result of supergraph composition performed by Apollo Studio, often as the result of a subgraph check or subgraph publish. See individual implementations for more details."""
-interface CompositionResult {
-  """The unique ID for this instance of composition."""
-  graphCompositionID: ID!
-  """A list of errors that occurred during composition. Errors mean that Apollo was unable to compose the graph variant's subgraphs into a supergraph schema. If any errors are present, gateways / routers are not updated."""
-  errors: [SchemaCompositionError!]!
-  """Supergraph SDL generated by composition."""
-  supergraphSdl: GraphQLDocument
-}
-
-"""The result of composition validation run by Apollo Studio during a subgraph check."""
-type CompositionCheckResult implements CompositionResult {
-  """The unique ID for this instance of composition."""
-  graphCompositionID: ID!
-  """A list of errors that occurred during composition. Errors mean that Apollo was unable to compose the graph variant's subgraphs into a supergraph schema. If any errors are present, gateways / routers are not updated."""
-  errors: [SchemaCompositionError!]!
-  """The supergraph schema document generated by composition."""
-  supergraphSdl: GraphQLDocument
-}
-
-type ContractVariantUpsertErrors {
-  """A list of all errors that occurred when attempting to create or update a contract variant."""
-  errorMessages: [String!]!
-}
-
-union ContractVariantUpsertResult = ContractVariantUpsertErrors | ContractVariantUpsertSuccess
-
-type ContractVariantUpsertSuccess {
-  """The updated contract variant"""
-  contractVariant: GraphVariant!
-  """Human-readable text describing the launch result of the contract update."""
-  launchCliCopy: String
-  """The URL of the Studio page for this update's associated launch, if available."""
-  launchUrl: String
-}
-
-"""Contains the supergraph and API schemas generated by composition."""
-type CoreSchema {
-  """The composed API schema document."""
-  apiDocument: GraphQLDocument!
-  """The composed supergraph schema document."""
-  coreDocument: GraphQLDocument!
-  """The supergraph schema document's SHA256 hash, represented as a hexadecimal string."""
-  coreHash: String!
-}
-
-union CreateOperationCollectionResult = OperationCollection | PermissionError | ValidationError
-
-"""
-Implement the DateTime<Utc> scalar
-
-The input/output is a string in RFC3339 format.
-"""
-scalar DateTime @specifiedBy(url: "https://datatracker.ietf.org/doc/html/rfc3339")
-
-union DeleteOperationCollectionResult = PermissionError
-
-"""The result of attempting to delete a graph variant."""
-type GraphVariantDeletionResult {
-  """Whether the variant was deleted or not."""
-  deleted: Boolean!
-}
-
-"""The result of a schema checks workflow that was run on a downstream variant as part of checks for the corresponding source variant. Most commonly, these downstream checks are [contract checks](https://www.apollographql.com/docs/studio/contracts#contract-checks)."""
-type DownstreamCheckResult {
-  """Whether the downstream check workflow blocks the upstream check workflow from completing."""
-  blocking: Boolean!
-  """The ID of the graph that the downstream variant belongs to."""
-  downstreamGraphID: String!
-  """The name of the downstream variant."""
-  downstreamVariantName: String!
-  """
-  The downstream checks workflow that this result corresponds to. This value is null
-  if the workflow hasn't been initialized yet, or if the downstream variant was deleted.
-  """
-  downstreamWorkflow: CheckWorkflow
-  """
-  Whether the downstream check workflow is causing the upstream check workflow to fail. This occurs
-  when the downstream check workflow is both blocking and failing. This may be null while the
-  downstream check workflow is pending.
-  """
-  failsUpstreamWorkflow: Boolean
-  """The downstream checks task that this result corresponds to."""
-  workflowTask: DownstreamCheckTask!
-}
-
-type DownstreamCheckTask implements CheckWorkflowTask {
-  completedAt: Timestamp
-  createdAt: Timestamp!
-  id: ID!
-  """
-  A list of results for all downstream checks triggered as part of the source variant's checks workflow.
-  This value is null if the task hasn't been initialized yet, or if the build task fails (the build task is a
-  prerequisite to this task). This value is _not_ null _while_ the task is running. The returned list is empty
-  if the source variant has no downstream variants.
-  """
-  results: [DownstreamCheckResult!]
-  status: CheckWorkflowTaskStatus!
-  targetURL: String
-  workflow: CheckWorkflow!
-}
-
-interface Error {
-  message: String!
-}
-
-"""A single subgraph in a supergraph. Every supergraph managed by Apollo Studio includes at least one subgraph. See https://www.apollographql.com/docs/federation/managed-federation/overview/ for more information."""
-type GraphVariantSubgraph {
-  """The subgraph's name."""
-  name: String!
-  """The URL of the subgraph's GraphQL endpoint."""
-  url: String
-  """The current user-provided version/edition of the subgraph. Typically a Git SHA or docker image ID."""
-  revision: String!
-  """The ID of the graph this subgraph belongs to."""
-  graphID: String!
-  """The name of the graph variant this subgraph belongs to."""
-  graphVariant: String!
-  """The subgraph's current active schema, used in supergraph composition for the the associated variant."""
-  activePartialSchema: SubgraphSchema!
-  """The timestamp when the subgraph was created."""
-  createdAt: Timestamp!
-  """The timestamp when the subgraph was most recently updated."""
-  updatedAt: Timestamp!
-}
-
-"""Container for a list of subgraphs composing a supergraph."""
-type GraphVariantSubgraphs {
-  """The list of underlying subgraphs."""
-  services: [GraphVariantSubgraph!]!
-}
-
-"""Counts of changes at the field level, including objects, interfaces, and input fields."""
-type FieldChangeSummaryCounts {
-  """Number of changes that are additions of fields to object, interface, and input types."""
-  additions: Int!
-  """Number of changes that are removals of fields from object, interface, and input types."""
-  removals: Int!
-  """
-  Number of changes that are field edits. This includes fields changing type and any field
-  deprecation and description changes, but also includes any argument changes and any input object
-  field changes.
-  """
-  edits: Int!
-}
-
-"""Inputs provided to the build for a contract variant, which filters types and fields from a source variant's schema."""
-type FilterBuildInput {
-  """Schema filtering rules for the build, such as tags to include or exclude from the source variant schema."""
-  filterConfig: FilterConfig!
-  """The source variant schema document's SHA256 hash, represented as a hexadecimal string."""
-  schemaHash: String!
-}
-
-type FilterCheckTask implements CheckWorkflowTask {
-  completedAt: Timestamp
-  createdAt: Timestamp!
-  id: ID!
-  status: CheckWorkflowTaskStatus!
-  targetURL: String
-  workflow: CheckWorkflow!
-}
-
-"""The filter configuration used to build a contract schema. The configuration consists of lists of tags for schema elements to include or exclude in the resulting schema."""
-type FilterConfig {
-  """Tags of schema elements to exclude from the contract schema."""
-  exclude: [String!]!
-  """Tags of schema elements to include in the contract schema."""
-  include: [String!]!
-}
-
-input FilterConfigInput {
-  """A list of tags for schema elements to exclude from the resulting contract schema."""
-  exclude: [String!]!
-  """
-  Whether to hide unreachable objects, interfaces, unions, inputs, enums and scalars from
-  the resulting contract schema. Defaults to `false`.
-  """
-  hideUnreachableTypes: Boolean! = false
-  """A list of tags for schema elements to include in the resulting contract schema."""
-  include: [String!]!
-}
-
-type GitContext {
-  commit: ID
-}
-
-"""Input type to provide when specifying the Git context for a run of schema checks."""
-input GitContextInput {
-  """The Git repository branch used in the check."""
-  branch: String
-  """The ID of the Git commit used in the check."""
-  commit: ID
-  """The username of the user who created the Git commit used in the check."""
-  committer: String
-  """The commit message of the Git commit used in the check."""
-  message: String
-  """The Git repository's remote URL."""
-  remoteUrl: String
-}
-
-"""
-Represents a graph API key, which has permissions scoped to a
-user role for a single Apollo graph.
-"""
-type GraphApiKey implements ApiKey {
-  """The timestamp when the API key was created."""
-  createdAt: Timestamp!
-  """Details of the user or graph that created the API key."""
-  createdBy: Identity
-  """The API key's ID."""
-  id: ID!
-  """The API key's name, for distinguishing it from other keys."""
-  keyName: String
-  """The permission level assigned to the API key upon creation."""
-  role: UserPermission!
-  """The value of the API key. **This is a secret credential!**"""
-  token: String!
-}
-
-"""A union of all containers that can comprise the components of a Studio graph"""
-union GraphImplementors = GraphVariantSubgraphs
-
-"""A GraphQL document, such as the definition of an operation or schema."""
-scalar GraphQLDocument
-
-"""A graph variant"""
-type GraphVariant {
-  """The variant's global identifier in the form `graphID@variant`."""
-  id: ID!
-  router: Router
-  """The filter configuration used to build a contract schema. The configuration consists of lists of tags for schema elements to include or exclude in the resulting schema."""
-  contractFilterConfig: FilterConfig
-  """
-  A human-readable description of the filter configuration of this contract variant, or null if this isn't a contract
-  variant.
-  """
-  contractFilterConfigDescription: String
-  """The graph that this variant belongs to."""
-  graph: Graph!
-  """Latest approved launch for the variant, and what is served through Uplink."""
-  latestApprovedLaunch: Launch
-  """Latest launch for the variant, whether successful or not."""
-  latestLaunch: Launch
-  """The variant's name (e.g., `staging`)."""
-  name: String!
-  """Which permissions the current user has for interacting with this variant"""
-  permissions: GraphVariantPermissions!
-  readme: Readme!
-  """The variant this variant is derived from. This property currently only exists on contract variants."""
-  sourceVariant: GraphVariant
-  """A list of the saved [operation collections](https://www.apollographql.com/docs/studio/explorer/operation-collections/) associated with this variant."""
-  operationCollections: [OperationCollection!]!
-  """The URL of the variant's GraphQL endpoint for query and mutation operations. For subscription operations, use `subscriptionUrl`."""
-  url: String
-  """The URL of the variant's GraphQL endpoint for subscription operations."""
-  subscriptionUrl: String
-  """The details of the variant's most recent publication."""
-  latestPublication: SchemaPublication
-  """A list of the subgraphs included in this variant. This value is null for non-federated variants. Set `includeDeleted` to `true` to include deleted subgraphs."""
-  subgraphs(includeDeleted: Boolean! = false): [GraphVariantSubgraph!]
-  """Returns the details of the subgraph with the provided `name`, or null if this variant doesn't include a subgraph with that name."""
-  subgraph(name: ID!): GraphVariantSubgraph
-}
-
-"""Result of looking up a variant by ref"""
-union GraphVariantLookup = GraphVariant | InvalidRefFormat
-
-"""Modifies a variant of a graph, also called a schema tag in parts of our product."""
-type GraphVariantMutation {
-  """
-  _Asynchronously_ kicks off operation checks for a proposed non-federated
-  schema change against its associated graph.
-
-  Returns a `CheckRequestSuccess` object with a workflow ID that you can use
-  to check status, or an error object if the checks workflow failed to start.
-  """
-  submitCheckSchemaAsync(input: CheckSchemaAsyncInput!): CheckRequestResult!
-  """
-  _Asynchronously_ kicks off composition and operation checks for a proposed subgraph schema change against its associated supergraph.
-
-  Returns a `CheckRequestSuccess` object with a workflow ID that you can use
-  to check status, or an error object if the checks workflow failed to start.
-  """
-  submitSubgraphCheckAsync(input: SubgraphCheckAsyncInput!): CheckRequestResult!
-  """Updates the [README](https://www.apollographql.com/docs/studio/org/graphs/#the-readme-page) of this variant."""
-  updateVariantReadme(
-    """The full new text of the README, as a Markdown-formatted string."""
-    readme: String!
-  ): GraphVariant
-  """Delete the variant."""
-  delete: GraphVariantDeletionResult!
-}
-
-"""Individual permissions for the current user when interacting with a particular Studio graph variant."""
-type GraphVariantPermissions {
-  """Whether the currently authenticated user is permitted to manage/update this variant's build configuration (e.g., build pipeline version)."""
-  canManageBuildConfig: Boolean!
-  """Whether the currently authenticated user is permitted to manage/update cloud routers"""
-  canManageCloudRouter: Boolean!
-  """Whether the currently authenticated user is permitted to update variant-level settings for the Apollo Studio Explorer."""
-  canManageExplorerSettings: Boolean!
-  """Whether the currently authenticated user is permitted to publish schemas to this variant."""
-  canPushSchemas: Boolean!
-  """Whether the currently authenticated user is permitted to view this variant's build configuration details (e.g., build pipeline version)."""
-  canQueryBuildConfig: Boolean!
-  """Whether the currently authenticated user is permitted to view details regarding cloud routers"""
-  canQueryCloudRouter: Boolean!
-  """Whether the currently authenticated user is permitted to view cloud router logs"""
-  canQueryCloudRouterLogs: Boolean!
-  """Whether the currently authenticated user is permitted to download schemas associated to this variant."""
-  canQuerySchemas: Boolean!
-  """Whether the currently authenticated user is permitted to update the README for this variant."""
-  canUpdateVariantReadme: Boolean!
-  canCreateCollectionInVariant: Boolean!
-  canShareCollectionInVariant: Boolean!
-}
-
-input HistoricQueryParameters {
-  from: String = "-86400"
-  to: String = "0"
-  """Minimum number of requests within the window for a query to be considered."""
-  queryCountThreshold: Int = 1
-  """
-  Number of requests within the window for a query to be considered, relative to
-  total request count. Expected values are between 0 and 0.05 (minimum 5% of total
-  request volume)
-  """
-  queryCountThresholdPercentage: Float = 0
-  """A list of operation IDs to filter out during validation."""
-  ignoredOperations: [ID!] = null
-  """A list of clients to filter out during validation."""
-  excludedClients: [ClientInfoFilter!] = null
-  """A list of operation names to filter out during validation."""
-  excludedOperationNames: [OperationNameFilterInput!] = null
-  """
-  A list of variants to include in the validation. If no variants are provided
-  then this defaults to the "current" variant along with the base variant. The
-  base variant indicates the schema that generates diff and marks the metrics that
-  are checked for broken queries. We union this base variant with the untagged values('',
-  same as null inside of `in`, and 'current') in this metrics fetch. This strategy
-  supports users who have not tagged their metrics or schema.
-  """
-  includedVariants: [String!] = null
-}
-
-"""Input type to provide when specifying configuration details for schema checks."""
-input HistoricQueryParametersInput {
-  """Clients to be excluded from check."""
-  excludedClients: [ClientInfoFilter!]
-  """Operations to be ignored in this schema check, specified by operation name."""
-  excludedOperationNames: [OperationNameFilterInput!]
-  """Start time for operations to be checked against. Specified as either a) an ISO formatted date/time string or b) a negative number of seconds relative to the time the check request was submitted."""
-  from: String
-  """Operations to be ignored in this schema check, specified by ID."""
-  ignoredOperations: [ID!]
-  """Graph variants to be included in check."""
-  includedVariants: [String!]
-  """Maximum number of queries to be checked against the change."""
-  queryCountThreshold: Int
-  """Only fail check if this percentage of operations would be negatively impacted."""
-  queryCountThresholdPercentage: Float
-  """End time for operations to be checked against. Specified as either a) an ISO formatted date/time string or b) a negative number of seconds relative to the time the check request was submitted."""
-  to: String
-}
-
-"""An identity (such as a `User` or `Graph`) in Apollo Studio. See implementing types for details."""
-interface Identity {
-  """Returns a representation of the identity as an `Actor` type."""
-  asActor: Actor!
-  """The identity's identifier, which is unique among objects of its type."""
-  id: ID!
-  """The identity's human-readable name."""
-  name: String!
-}
-
-type InternalIdentity implements Identity {
-  accounts: [Organization!]!
-  asActor: Actor!
-  email: String
-  id: ID!
-  name: String!
-}
-
-input IntrospectionDirectiveInput {
-  name: String!
-  description: String
-  locations: [IntrospectionDirectiveLocation!]!
-  args: [IntrospectionInputValueInput!]!
-  isRepeatable: Boolean
-}
-
-"""__DirectiveLocation introspection type"""
-enum IntrospectionDirectiveLocation {
-  """Location adjacent to a query operation."""
-  QUERY
-  """Location adjacent to a mutation operation."""
-  MUTATION
-  """Location adjacent to a subscription operation."""
-  SUBSCRIPTION
-  """Location adjacent to a field."""
-  FIELD
-  """Location adjacent to a fragment definition."""
-  FRAGMENT_DEFINITION
-  """Location adjacent to a fragment spread."""
-  FRAGMENT_SPREAD
-  """Location adjacent to an inline fragment."""
-  INLINE_FRAGMENT
-  """Location adjacent to a variable definition."""
-  VARIABLE_DEFINITION
-  """Location adjacent to a schema definition."""
-  SCHEMA
-  """Location adjacent to a scalar definition."""
-  SCALAR
-  """Location adjacent to an object type definition."""
-  OBJECT
-  """Location adjacent to a field definition."""
-  FIELD_DEFINITION
-  """Location adjacent to an argument definition."""
-  ARGUMENT_DEFINITION
-  """Location adjacent to an interface definition."""
-  INTERFACE
-  """Location adjacent to a union definition."""
-  UNION
-  """Location adjacent to an enum definition."""
-  ENUM
-  """Location adjacent to an enum value definition."""
-  ENUM_VALUE
-  """Location adjacent to an input object type definition."""
-  INPUT_OBJECT
-  """Location adjacent to an input object field definition."""
-  INPUT_FIELD_DEFINITION
-}
-
-"""__EnumValue introspection type"""
-input IntrospectionEnumValueInput {
-  name: String!
-  description: String
-  isDeprecated: Boolean!
-  deprecationReason: String
-}
-
-"""__Field introspection type"""
-input IntrospectionFieldInput {
-  name: String!
-  description: String
-  args: [IntrospectionInputValueInput!]!
-  type: IntrospectionTypeInput!
-  isDeprecated: Boolean!
-  deprecationReason: String
-}
-
-"""__Value introspection type"""
-input IntrospectionInputValueInput {
-  name: String!
-  description: String
-  type: IntrospectionTypeInput!
-  defaultValue: String
-  isDeprecated: Boolean
-  deprecationReason: String
-}
-
-"""__Schema introspection type"""
-input IntrospectionSchemaInput {
-  types: [IntrospectionTypeInput!]
-  queryType: IntrospectionTypeRefInput!
-  mutationType: IntrospectionTypeRefInput
-  subscriptionType: IntrospectionTypeRefInput
-  directives: [IntrospectionDirectiveInput!]!
-  description: String
-}
-
-"""__Type introspection type"""
-input IntrospectionTypeInput {
-  kind: IntrospectionTypeKind!
-  name: String
-  description: String
-  specifiedByUrl: String
-  fields: [IntrospectionFieldInput!]
-  interfaces: [IntrospectionTypeInput!]
-  possibleTypes: [IntrospectionTypeInput!]
-  enumValues: [IntrospectionEnumValueInput!]
-  inputFields: [IntrospectionInputValueInput!]
-  ofType: IntrospectionTypeInput
-}
-
-enum IntrospectionTypeKind {
-  """Indicates this type is a scalar."""
-  SCALAR
-  """Indicates this type is an object. 'fields' and 'interfaces' are valid fields."""
-  OBJECT
-  """
-  Indicates this type is an interface. 'fields' and 'possibleTypes' are valid
-  fields
-  """
-  INTERFACE
-  """Indicates this type is a union. 'possibleTypes' is a valid field."""
-  UNION
-  """Indicates this type is an enum. 'enumValues' is a valid field."""
-  ENUM
-  """Indicates this type is an input object. 'inputFields' is a valid field."""
-  INPUT_OBJECT
-  """Indicates this type is a list. 'ofType' is a valid field."""
-  LIST
-  """Indicates this type is a non-null. 'ofType' is a valid field."""
-  NON_NULL
-}
-
-"""Shallow __Type introspection type"""
-input IntrospectionTypeRefInput {
-  name: String!
-  kind: String
-}
-
-"""An error caused by providing invalid input for a task, such as schema checks."""
-type InvalidInputError {
-  """The error message."""
-  message: String!
-}
-
-"""This object is returned when a request to fetch a Studio graph variant provides an invalid graph ref."""
-type InvalidRefFormat implements Error {
-  message: String!
-}
-
-"""Represents the complete process of making a set of updates to a deployed graph variant."""
-type Launch {
-  """The unique identifier for this launch."""
-  id: ID!
-  """The ID of the launch's associated graph."""
-  graphId: String!
-  """The name of the launch's associated variant."""
-  graphVariant: String!
-  order: OrderOrError!
-  """The timestamp when the launch was approved."""
-  approvedAt: Timestamp
-  """The associated build for this launch (a build includes schema composition and contract filtering). This value is null until the build is initiated."""
-  build: Build
-  """The inputs provided to this launch's associated build, including subgraph schemas and contract filters."""
-  buildInput: BuildInput!
-  """The timestamp when the launch completed. This value is null until the launch completes."""
-  completedAt: Timestamp
-  """The timestamp when the launch was initiated."""
-  createdAt: Timestamp!
-  """Contract launches that were triggered by this launch."""
-  downstreamLaunches: [Launch!]!
-  """Whether the launch completed."""
-  isCompleted: Boolean
-  """Whether the result of the launch has been published to the associated graph and variant. This is always false for a failed launch."""
-  isPublished: Boolean
-  """The most recent launch sequence step that has started but not necessarily completed."""
-  latestSequenceStep: LaunchSequenceStep
-  """A specific publication of a graph variant pertaining to this launch."""
-  publication: SchemaPublication
-  """A list of results from the completed launch. The items included in this list vary depending on whether the launch succeeded, failed, or was superseded."""
-  results: [LaunchResult!]!
-  """Cloud router configuration associated with this build event. It will be non-null for any cloud-router variant, and null for any not cloudy variant/graph."""
-  routerConfig: String
-  """A list of all serial steps in the launch sequence. This list can change as the launch progresses. For example, a `LaunchCompletedStep` is appended after a launch completes."""
-  sequence: [LaunchSequenceStep!]!
-  """A shortened version of `Launch.id` that includes only the first 8 characters."""
-  shortenedID: String!
-  """The launch's status. If a launch is superseded, its status remains `LAUNCH_INITIATED`. To check for a superseded launch, use `supersededAt`."""
-  status: LaunchStatus!
-  """A list of subgraph changes that are included in this launch."""
-  subgraphChanges: [SubgraphChange!]
-  """The timestamp when this launch was superseded by another launch. If an active launch is superseded, it terminates."""
-  supersededAt: Timestamp
-  """The launch that superseded this launch, if any. If an active launch is superseded, it terminates."""
-  supersededBy: Launch
-  """The source variant launch that caused this launch to be initiated. This value is present only for contract variant launches. Otherwise, it's null."""
-  upstreamLaunch: Launch
-}
-
-"""Types of results that can be associated with a `Launch`"""
-union LaunchResult = ChangelogLaunchResult
-
-"""The timing details for the build step of a launch."""
-type LaunchSequenceBuildStep {
-  """The timestamp when the step completed."""
-  completedAt: Timestamp
-  """The timestamp when the step started."""
-  startedAt: Timestamp
-}
-
-"""The timing details for the checks step of a launch."""
-type LaunchSequenceCheckStep {
-  """The timestamp when the step completed."""
-  completedAt: Timestamp
-  """The timestamp when the step started."""
-  startedAt: Timestamp
-}
-
-"""The timing details for the completion step of a launch."""
-type LaunchSequenceCompletedStep {
-  """The timestamp when the step (and therefore the launch) completed."""
-  completedAt: Timestamp
-}
-
-"""The timing details for the initiation step of a launch."""
-type LaunchSequenceInitiatedStep {
-  """The timestamp when the step (and therefore the launch) started."""
-  startedAt: Timestamp
-}
-
-"""The timing details for the publish step of a launch."""
-type LaunchSequencePublishStep {
-  """The timestamp when the step completed."""
-  completedAt: Timestamp
-  """The timestamp when the step started."""
-  startedAt: Timestamp
-}
-
-"""Represents the various steps that occur in sequence during a single launch."""
-union LaunchSequenceStep = LaunchSequenceBuildStep | LaunchSequenceCheckStep | LaunchSequenceCompletedStep | LaunchSequenceInitiatedStep | LaunchSequencePublishStep | LaunchSequenceSupersededStep
-
-"""The timing details for the superseded step of a launch. This step occurs only if the launch is superseded by another launch."""
-type LaunchSequenceSupersededStep {
-  """The timestamp when the step completed, thereby ending the execution of this launch in favor of the superseding launch."""
-  completedAt: Timestamp
-}
-
-enum LaunchStatus {
-  LAUNCH_COMPLETED
-  LAUNCH_FAILED
-  LAUNCH_INITIATED
-}
-
-enum LogLevel {
-  WARN
-  INFO
-  ERROR
-  DEBUG
-}
-
-type LogMessage {
-  """Timestamp in UTC"""
-  timestamp: DateTime!
-  """Log message contents"""
-  message: String!
-  """Log level"""
-  level: LogLevel!
-}
-
-type Mutation {
-  """Provides access to mutation fields for modifying a Studio graph with the provided ID."""
-  graph(id: ID!): GraphMutation
-  """
-  Provides access to mutation fields for modifying an Apollo user with the
-  provided ID.
-  """
-  user(id: ID!): UserMutation
-  """Creates an [operation collection](https://www.apollographql.com/docs/studio/explorer/operation-collections/) for a given variant, or creates a [sandbox collection](https://www.apollographql.com/docs/studio/explorer/operation-collections/#sandbox-collections) without an associated variant."""
-  createOperationCollection(
-    """The collection's description."""
-    description: String
-    """Whether the collection is a [sandbox collection](https://www.apollographql.com/docs/studio/explorer/operation-collections/#sandbox-collections)."""
-    isSandbox: Boolean!
-    """Whether the collection is shared across its associated organization."""
-    isShared: Boolean!
-    """The minimum role a user needs to edit this collection. Valid values: null, CONSUMER, OBSERVER, DOCUMENTER, CONTRIBUTOR, GRAPH_ADMIN. This value is ignored if `isShared` is `false`. The default value is  `GRAPH_ADMIN`."""
-    minEditRole: UserPermission
-    """The collection's name."""
-    name: String!
-    """The [graph ref](https://www.apollographql.com/docs/rover/conventions/#graph-refs) of the graph variants to associate the collection with."""
-    variantRefs: [ID!]
-  ): CreateOperationCollectionResult!
-  operationCollection(id: ID!): OperationCollectionMutation
-}
-
-"""
-ISO 8601 combined date and time without timezone.
-
-# Examples
-
-* `2015-07-01T08:59:60.123`,
-"""
-scalar NaiveDateTime
-
-type NamedIntrospectionArg {
-  name: String
-  description: String
-}
-
-"""
-The shared fields for a named introspection type. Currently this is returned for the
-top level value affected by a change. In the future, we may update this
-type to be an interface, which is extended by the more specific types:
-scalar, object, input object, union, interface, and enum
-
-For an in-depth look at where these types come from, see:
-https://github.com/DefinitelyTyped/DefinitelyTyped/blob/659eb50d3/types/graphql/utilities/introspectionQuery.d.ts#L31-L37
-"""
-type NamedIntrospectionType {
-  kind: IntrospectionTypeKind
-  name: String
-  description: String
-}
-
-"""
-Introspection values that can be children of other types for changes, such
-as input fields, objects in interfaces, enum values. In the future, this
-value could become an interface to allow fields specific to the types
-returned.
-"""
-type NamedIntrospectionValue {
-  name: String
-  description: String
-  printedType: String
-}
-
-"""An error that occurs when a requested object is not found."""
-type NotFoundError implements Error {
-  """The error message."""
-  message: String!
-}
-
-"""A list of saved GraphQL operations."""
-type OperationCollection {
-  """The timestamp when the collection was created."""
-  createdAt: Timestamp!
-  """The user or other entity that created the collection."""
-  createdBy: Identity
-  """The collection's description. A `null` description was never set, and empty string description was set to be empty string by a user, or other entity."""
-  description: String
-  id: ID!
-  """Whether the current user has marked the collection as a favorite."""
-  isFavorite: Boolean!
-  """Whether the collection is a [sandbox collection](https://www.apollographql.com/docs/studio/explorer/operation-collections/#sandbox-collections)."""
-  isSandbox: Boolean!
-  """Whether the collection is shared across its associated organization."""
-  isShared: Boolean!
-  """The timestamp when the collection was most recently updated."""
-  lastUpdatedAt: Timestamp!
-  """The user or other entity that most recently updated the collection."""
-  lastUpdatedBy: Identity
-  """The minimum role a user needs to edit this collection. Valid values: null, CONSUMER, OBSERVER, DOCUMENTER, CONTRIBUTOR, GRAPH_ADMIN. This value is always `null` if `isShared` is `false`. If `null` when `isShared` is `true`, the minimum role is `GRAPH_ADMIN`."""
-  minEditRole: UserPermission
-  """The collection's name."""
-  name: String!
-  """Returns the operation in the collection with the specified ID, if any."""
-  operation(id: ID!): OperationCollectionEntryResult
-  """A list of the GraphQL operations that belong to the collection."""
-  operations: [OperationCollectionEntry!]!
-  """The permissions that the current user has for the collection."""
-  permissions: OperationCollectionPermissions!
-}
-
-"""A saved operation entry within an Operation Collection."""
-type OperationCollectionEntry {
-  """The timestamp when the entry was created."""
-  createdAt: Timestamp!
-  """The user or other entity that created the entry."""
-  createdBy: Identity
-  """Details of the entry's associated operation, such as its `body` and `variables`."""
-  currentOperationRevision: OperationCollectionEntryState!
-  id: ID!
-  """The timestamp when the entry was most recently updated."""
-  lastUpdatedAt: Timestamp!
-  """The user or other entity that most recently updated the entry."""
-  lastUpdatedBy: Identity
-  """The entry's name."""
-  name: String!
-  """The entry's lexicographical ordering index within its containing collection."""
-  orderingIndex: String!
-}
-
-"""Provides fields for modifying an operation in a collection."""
-type OperationCollectionEntryMutation {
-  """Updates the name of an operation."""
-  updateName(name: String!): UpdateOperationCollectionEntryResult
-  """Updates the body, headers, and/or variables of an operation."""
-  updateValues(operationInput: OperationCollectionEntryStateInput!): UpdateOperationCollectionEntryResult
-}
-
-union OperationCollectionEntryMutationResult = NotFoundError | OperationCollectionEntryMutation | PermissionError
-
-"""Possible return values when querying for an entry in an operation collection (either the entry object or an `Error` object)."""
-union OperationCollectionEntryResult = NotFoundError | OperationCollectionEntry
-
-"""The most recent body, variable and header values of a saved operation entry."""
-type OperationCollectionEntryState {
-  """The raw body of the entry's GraphQL operation."""
-  body: String!
-  """Headers for the entry's GraphQL operation."""
-  headers: [OperationHeader!]
-  """Variables for the entry's GraphQL operation, as a JSON string."""
-  variables: String
-}
-
-"""Fields for creating or modifying an operation collection entry."""
-input OperationCollectionEntryStateInput {
-  """The operation's query body."""
-  body: String!
-  """The operation's headers."""
-  headers: [OperationHeaderInput!]
-  """The operation's variables."""
-  variables: String
-}
-
-"""Provides fields for modifying an [operation collection](https://www.apollographql.com/docs/studio/explorer/operation-collections/)."""
-type OperationCollectionMutation {
-  """Adds an operation to this collection."""
-  addOperation(name: String!, operationInput: OperationCollectionEntryStateInput!): AddOperationCollectionEntryResult
-  """Adds operations to this collection."""
-  addOperations(operations: [AddOperationInput!]!): AddOperationCollectionEntriesResult
-  """Deletes this operation collection. This also deletes all of the collection's associated operations."""
-  delete: DeleteOperationCollectionResult
-  """Deletes an operation from this collection."""
-  deleteOperation(id: ID!): RemoveOperationCollectionEntryResult
-  operation(id: ID!): OperationCollectionEntryMutationResult
-  """Updates the minimum role a user needs to be able to modify this collection."""
-  setMinEditRole(editRole: UserPermission): UpdateOperationCollectionResult
-  """Updates this collection's description."""
-  updateDescription(description: String): UpdateOperationCollectionResult
-  """Updates whether the current user has marked this collection as a favorite."""
-  updateIsFavorite(isFavorite: Boolean!): UpdateOperationCollectionResult
-  """Updates whether this collection is shared across its associated organization."""
-  updateIsShared(isShared: Boolean!): UpdateOperationCollectionResult
-  """Updates this operation collection's name."""
-  updateName(name: String!): UpdateOperationCollectionResult
-}
-
-"""Whether the current user can perform various actions on the associated collection."""
-type OperationCollectionPermissions {
-  """Whether the current user can edit operations in the associated collection."""
-  canEditOperations: Boolean!
-  """Whether the current user can delete or update the associated collection's metadata, such as its name and description."""
-  canManage: Boolean!
-  """Whether the current user can read operations in the associated collection."""
-  canReadOperations: Boolean!
-}
-
-union OperationCollectionResult = NotFoundError | OperationCollection | PermissionError | ValidationError
-
-"""Saved headers on a saved operation."""
-type OperationHeader {
-  """The header's name."""
-  name: String!
-  """The header's value."""
-  value: String!
-}
-
-input OperationHeaderInput {
-  """The header's name."""
-  name: String!
-  """The header's value."""
-  value: String!
-}
-
-"""Options to filter by operation name."""
-input OperationNameFilterInput {
-  """name of the operation set by the user and reported alongside metrics"""
-  name: String!
-  version: String
-}
-
-type OperationsCheckResult {
-  id: ID!
-  """Indication of the success of the change, either failure, warning, or notice."""
-  checkSeverity: ChangeSeverity!
-  """Number of operations that were validated during schema diff"""
-  numberOfCheckedOperations: Int!
-  """List of schema changes with associated affected clients and operations"""
-  changes: [Change!]!
-  """Summary/counts for all changes in diff"""
-  changeSummary: ChangeSummary!
-  """Operations affected by all changes in diff"""
-  affectedQueries: [AffectedQuery!]
-  """Number of affected query operations that are neither marked as SAFE or IGNORED"""
-  numberOfAffectedOperations: Int!
-  createdAt: Timestamp!
-}
-
-type OperationsCheckTask implements CheckWorkflowTask {
-  completedAt: Timestamp
-  createdAt: Timestamp!
-  id: ID!
-  status: CheckWorkflowTaskStatus!
-  targetURL: String
-  workflow: CheckWorkflow!
-  """
-  The result of the operations check. This will be null when the task is initializing or running,
-  or when the build task fails (which is a prerequisite task to this one).
-  """
-  result: OperationsCheckResult
-}
-
-type Order {
-  id: ID!
-  orderType: OrderType!
-  status: OrderStatus!
-  reason: String
-  logs(first: Int, offset: Int): [LogMessage!]!
-  router: Router!
-}
-
-union OrderOrError = Order
-
-enum OrderStatus {
-  PENDING
-  COMPLETED
-  ROLLING_BACK
-  ERRORED
-  SUPERSEDED
-}
-
-enum OrderType {
-  CREATE_ROUTER
-  DESTROY_ROUTER
-  UPDATE_ROUTER
-}
-
-"""The schema for a single published subgraph in Studio."""
-type SubgraphSchema {
-  """The subgraph schema document as SDL."""
-  sdl: String!
-}
-
-"""
-Input for registering a partial schema to an implementing service.
-One of the fields must be specified (validated server-side).
-
-If a new partialSchemaSDL is passed in, this operation will store it before
-creating the association.
-
-If both the sdl and hash are specified, an error will be thrown if the provided
-hash doesn't match our hash of the sdl contents. If the sdl field is specified,
-the hash does not need to be and will be computed server-side.
-"""
-input PartialSchemaInput {
-  """
-  Contents of the partial schema in SDL syntax, but may reference types
-  that aren't defined in this document
-  """
-  sdl: String
-  """
-  Hash of the partial schema to associate; error is thrown if only the hash is
-  specified and the hash has not been seen before
-  """
-  hash: String
-}
-
-"""An error that occurs when the current user doesn't have sufficient permissions to perform an action."""
-type PermissionError implements Error {
-  """The error message."""
-  message: String!
-}
-
-"""An error related to an organization's Apollo Studio plan."""
-type PlanError {
-  """The error message."""
-  message: String!
-}
-
-type Query {
-  """Returns the root URL of the Apollo Studio frontend."""
-  frontendUrlRoot: String!
-  """Returns details of the graph with the provided ID."""
-  graph(id: ID!): Graph
-  """Returns details of the authenticated `User` or `Graph` executing this query. If this is an unauthenticated query (i.e., no API key is provided), this field returns null."""
-  me: Identity
-  """Returns details of the Studio organization with the provided ID."""
-  organization(id: ID!): Organization
-  """Returns details of the Apollo user with the provided ID."""
-  user(id: ID!): User
-  """Returns details of a Studio graph variant with the provided graph ref. A graph ref has the format `graphID@variantName` (or just `graphID` for the default variant `current`). Returns null if the graph or variant doesn't exist, or if the graph isn't accessible by the current actor."""
-  variant(ref: ID!): GraphVariantLookup
-  """Returns the [operation collection](https://www.apollographql.com/docs/studio/explorer/operation-collections/) for the provided ID."""
-  operationCollection(id: ID!): OperationCollectionResult!
-}
-
-"""The README documentation for a graph variant, which is displayed in Studio."""
-type Readme {
-  """The contents of the README in plaintext."""
-  content: String!
-  """The README's unique ID. `a15177c0-b003-4837-952a-dbfe76062eb1` for the default README"""
-  id: ID!
-  """The actor that most recently updated the README (usually a `User`). `null` for the default README, or if the `User` was deleted."""
-  lastUpdatedBy: Identity
-  """The timestamp when the README was most recently updated. `null` for the default README"""
-  lastUpdatedTime: Timestamp
-}
-
-union RemoveOperationCollectionEntryResult = OperationCollection | PermissionError
-
-type Router {
-  """
-  Last time when the Cloud Router was updated
-
-  If the Cloud Router was never updated, this value will be null
-  """
-  updatedAt: NaiveDateTime
-  """Current status of the Cloud Router"""
-  status: RouterStatus!
-  """Current version of the Cloud Router"""
-  routerVersion: RouterVersion!
-  """
-  URL where the Cloud Router can be found
-
-  This will be null if the Cloud Router is in a deleted status
-  """
-  routerUrl: String
-  """Retrieves a specific Order related to this Cloud Router"""
-  order(orderId: ID!): Order
-  """Retrieves all Orders related to this Cloud Router"""
-  orders(first: Int, offset: Int): [Order!]!
-  """Return the list of secrets for this Cloud Router with their hash values"""
-  secrets: [Secret!]!
-}
-
-enum RouterStatus {
-  CREATING
-  UPDATING
-  DELETING
-  ROLLING_BACK
-  RUNNING
-  DELETED
-}
-
-type RouterVersion {
-  version: String!
-  core: String!
-  build: String!
-  status: Status!
-  configVersion: String!
-  configSchema: String!
-}
-
-"""A GraphQL schema document and associated metadata."""
-type Schema {
-  """The GraphQL schema document's SHA256 hash, represented as a hexadecimal string."""
-  hash: ID!
-  """The GraphQL schema document."""
-  document: GraphQLDocument!
-}
-
-"""An error that occurred while running schema composition on a set of subgraph schemas."""
-type SchemaCompositionError {
-  """A human-readable message describing the error."""
-  message: String!
-  """Source locations related to the error."""
-  locations: [SourceLocation]!
-  """A machine-readable error code."""
-  code: String
-}
-
-"""The result of computing the difference between two schemas, usually as part of schema checks."""
-type SchemaDiff {
-  """Indicates the overall safety of the changes included in the diff, based on operation history (e.g., `FAILURE` or `NOTICE`)."""
-  severity: ChangeSeverity!
-  """A list of all schema changes in the diff, including their severity."""
-  changes: [Change!]!
-  """Numeric summaries for each type of change in the diff."""
-  changeSummary: ChangeSummary!
-  """Operations affected by all changes in the diff."""
-  affectedQueries: [AffectedQuery!]
-  """The number of GraphQL operations that were validated during the check."""
-  numberOfCheckedOperations: Int
-  """The number of GraphQL operations affected by the diff's changes that are neither marked as safe nor ignored."""
-  numberOfAffectedOperations: Int!
-}
-
-"""Contains details for an individual publication of an individual graph variant."""
-type SchemaPublication {
-  """
-  The variant that was published to."
-  """
-  variant: GraphVariant!
-  """The schema that was published to the variant."""
-  schema: Schema!
-  """The result of federated composition executed for this publication. This result includes either a supergraph schema or error details, depending on whether composition succeeded. This value is null when the publication is for a non-federated graph."""
-  compositionResult: CompositionResult
-  """The timestamp when the variant was published to."""
-  publishedAt: Timestamp!
-  """A schema diff comparing against the schema from the most recent previous successful publication."""
-  diffToPrevious: SchemaDiff
-}
-
-type Secret {
-  createdAt: DateTime!
-  name: String!
-  hash: String!
-}
-
-type SemanticChange {
-  """Semantic metadata about the type of change"""
-  definition: ChangeDefinition!
-  """Top level node affected by the change"""
-  parentNode: NamedIntrospectionType
-  """
-  Node related to the top level node that was changed, such as a field in an object,
-  a value in an enum or the object of an interface
-  """
-  childNode: NamedIntrospectionValue
-  """Target arg of change made."""
-  argNode: NamedIntrospectionArg
-}
-
-"""
-A graph in Apollo Studio represents a graph in your organization.
-Each graph has one or more variants, which correspond to the different environments where that graph runs (such as staging and production).
-Each variant has its own GraphQL schema, which means schemas can differ between environments.
-"""
-type Graph implements Identity {
-  """The organization that this graph belongs to."""
-  account: Organization
-  """A list of the graph API keys that are active for this graph."""
-  apiKeys: [GraphApiKey!]
-  """Provides a view of the graph as an `Actor` type."""
-  asActor: Actor!
-  """Get a check workflow for this graph by its ID"""
-  checkWorkflow(id: ID!): CheckWorkflow
-  """The graph's globally unique identifier."""
-  id: ID!
-  """Permissions of the current user in this graph."""
-  myRole: UserPermission
-  name: String!
-  """Describes the permissions that the active user has for this graph."""
-  roles: GraphRoles
-  """The graph's name."""
-  title: String!
-  """
-  Provides details of the graph variant with the provided `name`, if a variant
-  with that name exists for this graph. Otherwise, returns null.
-
-   For a list of _all_ variants associated with a graph, use `Graph.variants` instead.
-  """
-  variant(name: String!): GraphVariant
-  """A list of the variants for this graph."""
-  variants: [GraphVariant!]!
-  """Get a GraphQL document by hash"""
-  document(hash: SHA256): GraphQLDocument
-  """Get check workflows for this graph ordered by creation time, most recent first."""
-  checkWorkflows(limit: Int! = 100, filter: CheckFilterInput): [CheckWorkflow!]!
-}
-
-"""Provides access to mutation fields for managing Studio graphs and subgraphs."""
-type GraphMutation {
-  """Generates a new graph API key for this graph with the specified permission level."""
-  newKey(keyName: String, role: UserPermission! = GRAPH_ADMIN): GraphApiKey!
-  """Deletes the existing graph API key with the provided ID, if any."""
-  removeKey(
-    """API key ID"""
-    id: ID!
-  ): Void
-  """Sets a new name for the graph API key with the provided ID, if any. This does not invalidate the key or change its value."""
-  renameKey(id: ID!, newKeyName: String): GraphApiKey
-  """Creates a contract schema from a source variant and a set of filter configurations"""
-  upsertContractVariant(
-    """The name of the contract variant, e.g. `public-api`. Once set, this value cannot be changed."""
-    contractVariantName: String!
-    """The filter configuration used to build a contract schema. The configuration consists of lists of tags for schema elements to include or exclude in the resulting schema."""
-    filterConfig: FilterConfigInput!
-    """Whether a launch and schema publish should be initiated after updating configuration. Defaults to `true`."""
-    initiateLaunch: Boolean! = true
-    """The graphRef of the variant the contract will be derived from, e.g. `my-graph@production`. Once set, this value cannot be changed."""
-    sourceVariant: String
-  ): ContractVariantUpsertResult!
-  """Make changes to a graph variant."""
-  variant(name: String!): GraphVariantMutation
-  """Publish a schema to this variant, either via a document or an introspection query result."""
-  uploadSchema(schema: IntrospectionSchemaInput, schemaDocument: String, tag: String!, historicParameters: HistoricQueryParameters, overrideComposedSchema: Boolean! = false, errorOnBadRequest: Boolean! = true, gitContext: GitContextInput): SchemaPublicationResult
-  """
-  Checks a proposed schema against the schema that has been published to
-  a particular variant, using metrics corresponding to `historicParameters`.
-  Callers can set `historicParameters` directly or rely on defaults set in the
-  graph's check configuration (7 days by default).
-  If they do not set `historicParameters` but set `useMaximumRetention`,
-  validation will use the maximum retention the graph has access to.
-  """
-  checkSchema(
-    """
-    Only one of proposedSchema, proposedSchemaDocument, and proposedSchemaHash
-    may be specified
-    """
-    proposedSchema: IntrospectionSchemaInput
-    proposedSchemaDocument: String
-    proposedSchemaHash: String
-    baseSchemaTag: String = "current"
-    gitContext: GitContextInput
-    historicParameters: HistoricQueryParameters
-    useMaximumRetention: Boolean
-    isSandboxCheck: Boolean! = false
-    """If this check is triggered for an sdl fetched using introspection, this is the endpoint where that schema was being served."""
-    introspectionEndpoint: String
-    """Deprecated and ignored."""
-    frontend: String
-  ): CheckSchemaResult!
-  """Publish to a subgraph. If composition is successful, this will update running routers."""
-  publishSubgraph(graphVariant: String!, name: String!, url: String, revision: String!, activePartialSchema: PartialSchemaInput!, gitContext: GitContextInput): SubgraphPublicationResult
-  """Removes a subgraph. If composition is successful, this will update running routers."""
-  removeImplementingServiceAndTriggerComposition(
-    graphVariant: String!
-    name: String!
-    """Do not remove the service, but recompose without it and report any errors."""
-    dryRun: Boolean! = false
-  ): SubgraphRemovalResult!
-  """
-  Checks a proposed subgraph schema change against a published subgraph.
-  If the proposal composes successfully, perform a usage check for the resulting supergraph schema.
-  """
-  checkPartialSchema(
-    """The name of the graph variant to run the check against."""
-    graphVariant: String!
-    """Name of the implementing service to validate the partial schema against"""
-    implementingServiceName: String!
-    """The partial schema to validate against an implementing service"""
-    partialSchema: PartialSchemaInput!
-    gitContext: GitContextInput
-    historicParameters: HistoricQueryParameters
-    """Deprecated and ignored."""
-    frontend: String
-    """
-    Whether to use the maximum retention for historical validation. This only takes
-    effect if historicParameters is null.
-    """
-    useMaximumRetention: Boolean
-    isSandboxCheck: Boolean! = false
-    """If this check is triggered for an sdl fetched using introspection, this is the endpoint where that schema was being served."""
-    introspectionEndpoint: String
-  ): CheckPartialSchemaResult!
-}
-
-"""Individual permissions for the current user when interacting with a particular Studio graph."""
-type GraphRoles {
-  """Whether the currently authenticated user is permitted to perform schema checks (i.e., run `rover (sub)graph check`)."""
-  canCheckSchemas: Boolean!
-  """Whether the currently authenticated user is permitted to create new graph variants."""
-  canCreateVariants: Boolean!
-  """Whether the currently authenticated user is permitted to delete the graph in question"""
-  canDelete: Boolean!
-  """Whether the currently authenticated user is permitted to manage user access to the graph in question."""
-  canManageAccess: Boolean!
-  """Whether the currently authenticated user is permitted to manage the build configuration (e.g., build pipeline version)."""
-  canManageBuildConfig: Boolean!
-  """Whether the currently authenticated user is permitted to manage third-party integrations (e.g., Datadog forwarding)."""
-  canManageIntegrations: Boolean!
-  """Whether the currently authenticated user is permitted to manage graph-level API keys."""
-  canManageKeys: Boolean!
-  """Whether the currently authenticated user is permitted to perform basic administration of variants (e.g., make a variant public)."""
-  canManageVariants: Boolean!
-  """Whether the currently authenticated user is permitted to view details about the build configuration (e.g. build pipeline version)."""
-  canQueryBuildConfig: Boolean!
-  """Whether the currently authenticated user is permitted to view details of the check configuration for this graph."""
-  canQueryCheckConfiguration: Boolean!
-  """Whether the currently authenticated user is permitted to view which subgraphs the graph is composed of."""
-  canQueryImplementingServices: Boolean!
-  """Whether the currently authenticated user is permitted to download schemas owned by this graph."""
-  canQuerySchemas: Boolean!
-  """Whether the currently authenticated user is permitted to register operations (i.e. `apollo client:push`) for this graph."""
-  canRegisterOperations: Boolean!
-  """Whether the currently authenticated user is permitted to make updates to the check configuration for this graph."""
-  canWriteCheckConfiguration: Boolean!
-}
-
-"""A SHA-256 hash, represented as a lowercase hexadecimal string."""
-scalar SHA256
-
-"""A location in a source code file."""
-type SourceLocation {
-  """Column number."""
-  column: Int!
-  """Line number."""
-  line: Int!
-}
-
-enum Status {
-  STABLE
-  NEXT
-  DEPRECATED
-}
-
-"""A subgraph in a federated Studio supergraph."""
-type Subgraph {
-  """The subgraph schema document's SHA256 hash, represented as a hexadecimal string."""
-  hash: String!
-  """The subgraph's registered name."""
-  name: String!
-  """The number of fields in this subgraph"""
-  numberOfFields: Int
-  """The number of types in this subgraph"""
-  numberOfTypes: Int
-  """The subgraph's routing URL, provided to gateways that use managed federation."""
-  routingURL: String!
-  """Timestamp of when the subgraph was published."""
-  updatedAt: Timestamp
-}
-
-"""A change made to a subgraph as part of a launch."""
-type SubgraphChange {
-  """The subgraph's name."""
-  name: ID!
-  """The type of change that was made."""
-  type: SubgraphChangeType!
-}
-
-enum SubgraphChangeType {
-  ADDITION
-  DELETION
-  MODIFICATION
-}
-
-"""Input type to provide when running schema checks asynchronously for a federated supergraph."""
-input SubgraphCheckAsyncInput {
-  """Configuration options for the check execution."""
-  config: HistoricQueryParametersInput!
-  """The GitHub context to associate with the check."""
-  gitContext: GitContextInput!
-  """The graph ref of the Studio graph and variant to run checks against (such as `my-graph@current`)."""
-  graphRef: ID
-  """The URL of the GraphQL endpoint that Apollo Sandbox introspected to obtain the proposed schema. Required if `isSandbox` is `true`."""
-  introspectionEndpoint: String
-  """If `true`, the check was initiated by Apollo Sandbox."""
-  isSandbox: Boolean!
-  """The proposed subgraph schema to perform checks with."""
-  proposedSchema: GraphQLDocument!
-  """The name of the subgraph to check schema changes for."""
-  subgraphName: String!
-}
-
-"""ISO 8601, extended format with nanoseconds, Zulu (or "[+-]seconds" as a string or number relative to now)"""
-scalar Timestamp
-
-"""Counts of changes."""
-type TotalChangeSummaryCounts {
-  """
-  Number of changes that are additions. This includes adding types, adding fields to object, input
-  object, and interface types, adding values to enums, adding members to interfaces and unions, and
-  adding arguments.
-  """
-  additions: Int!
-  """
-  Number of changes that are removals. This includes removing types, removing fields from object,
-  input object, and interface types, removing values from enums, removing members from interfaces
-  and unions, and removing arguments. This also includes removing @deprecated usages.
-  """
-  removals: Int!
-  """
-  Number of changes that are edits. This includes types changing kind, fields and arguments
-  changing type, arguments changing default value, and any description changes. This also includes
-  edits to @deprecated reason strings.
-  """
-  edits: Int!
-  """Number of changes that are new usages of the @deprecated directive."""
-  deprecations: Int!
-}
-
-"""Counts of changes at the type level, including interfaces, unions, enums, scalars, input objects, etc."""
-type TypeChangeSummaryCounts {
-  """Number of changes that are additions of types."""
-  additions: Int!
-  """Number of changes that are removals of types."""
-  removals: Int!
-  """
-  Number of changes that are edits. This includes types changing kind and any type description
-  changes, but also includes adding/removing values from enums, adding/removing members from
-  interfaces and unions, and any enum value deprecation and description changes.
-  """
-  edits: Int!
-}
-
-union UpdateOperationCollectionEntryResult = OperationCollectionEntry | PermissionError | ValidationError
-
-union UpdateOperationCollectionResult = OperationCollection | PermissionError | ValidationError
-
-"""Describes the result of publishing a schema to a graph variant."""
-type SchemaPublicationResult {
-  """A machine-readable response code that indicates the type of result (e.g., `UPLOAD_SUCCESS` or `NO_CHANGES`)"""
-  code: String!
-  """Whether the schema publish operation succeeded (`true`) or encountered errors (`false`)."""
-  success: Boolean!
-  """A Human-readable message describing the type of result."""
-  message: String!
-  """If the publish operation succeeded, this contains its details. Otherwise, this is null."""
-  publication: SchemaPublication
-}
-
-"""A registered Apollo Studio user."""
-type User implements Identity {
-  """Returns a list of all active user API keys for the user."""
-  apiKeys(includeCookies: Boolean = false): [UserApiKey!]!
-  """Returns a representation of this user as an `Actor` type. Useful when determining which actor (usually a `User` or `Graph`) performed a particular action in Studio."""
-  asActor: Actor!
-  """The user's unique ID."""
-  id: ID!
-  """A list of the user's memberships in Apollo Studio organizations."""
-  memberships: [UserMembership!]!
-  """The user's first and last name."""
-  name: String!
-}
-
-"""
-Represents a user API key, which has permissions identical to
-its associated Apollo user.
-"""
-type UserApiKey implements ApiKey {
-  """The API key's ID."""
-  id: ID!
-  """The API key's name, for distinguishing it from other keys."""
-  keyName: String
-  """The value of the API key. **This is a secret credential!**"""
-  token: String!
-}
-
-"""A single user's membership in a single Apollo Studio organization."""
-type UserMembership {
-  """The organization that the user belongs to."""
-  account: Organization!
-  """The timestamp when the user was added to the organization."""
-  createdAt: Timestamp!
-  """The user's permission level within the organization."""
-  permission: UserPermission!
-  """The user that belongs to the organization."""
-  user: User!
-}
-
-type UserMutation {
-  """Creates a new user API key for this user."""
-  newKey(keyName: String!): UserApiKey!
-  """
-  If this user has no active user API keys, this creates one for the user.
-
-  If this user has at least one active user API key, this returns one of those keys at random and does _not_ create a new key.
-  """
-  provisionKey(keyName: String! = "add-a-name"): ApiKeyProvision
-  """Deletes the user API key with the provided ID, if any."""
-  removeKey(
-    """API key ID"""
-    id: ID!
-  ): Void
-  """Sets a new name for the user API key with the provided ID, if any. This does not invalidate the key or change its value."""
-  renameKey(id: ID!, newKeyName: String): UserApiKey
-}
-
-enum UserPermission {
-  BILLING_MANAGER
-  CONSUMER
-  CONTRIBUTOR
-  DOCUMENTER
-  GRAPH_ADMIN
-  LEGACY_GRAPH_KEY
-  OBSERVER
-  ORG_ADMIN
-}
-
-"""An error that occurs when an operation contains invalid user input."""
-type ValidationError implements Error {
-  """The error's details."""
-  message: String!
-}
-
-"""Always null"""
-scalar Void
diff --git a/pkgs/development/tools/rover/update.sh b/pkgs/development/tools/rover/update.sh
index fbf6fba989c4..3914c9acb540 100755
--- a/pkgs/development/tools/rover/update.sh
+++ b/pkgs/development/tools/rover/update.sh
@@ -49,27 +49,3 @@ cargoSha256=$(
 sed --in-place \
     "s|cargoSha256 = \".*\"|cargoSha256 = \"$cargoSha256\"|" \
     "$dirname/default.nix"
-
-# Update apollo api schema info
-response="$(mktemp)"
-schemaUrl=https://graphql.api.apollographql.com/api/schema
-
-mkdir -p "$dirname"/schema
-
-# Fetch schema info
-echo "Fetching Apollo GraphQL schema"
-# include response headers, and append terminating newline to response body
-curl --include --write-out "\n" "$schemaUrl" > "$response"
-
-# Parse response headers and write the etag to schema/etag.id
-grep \
-    --max-count=1 \
-    --only-matching \
-    --perl-regexp \
-    '^etag: \K\S*' \
-    "$response" \
-    > "$dirname"/schema/etag.id
-
-# Discard headers and blank line (terminated by carriage return), and write the
-# response body to schema/schema.graphql
-sed '1,/^\r/d' "$response" > "$dirname"/schema/schema.graphql
diff --git a/pkgs/development/tools/rufo/Gemfile.lock b/pkgs/development/tools/rufo/Gemfile.lock
index da772486670d..57951b5236e8 100644
--- a/pkgs/development/tools/rufo/Gemfile.lock
+++ b/pkgs/development/tools/rufo/Gemfile.lock
@@ -1,7 +1,7 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    rufo (0.16.2)
+    rufo (0.17.0)
 
 PLATFORMS
   ruby
@@ -10,4 +10,4 @@ DEPENDENCIES
   rufo
 
 BUNDLED WITH
-   2.4.20
+   2.5.3
diff --git a/pkgs/development/tools/rufo/gemset.nix b/pkgs/development/tools/rufo/gemset.nix
index c1d65faba63d..36b2d87637a9 100644
--- a/pkgs/development/tools/rufo/gemset.nix
+++ b/pkgs/development/tools/rufo/gemset.nix
@@ -4,9 +4,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11nm1vzr3vd85yy4rd7ndrrx1ygm3m2jmw9r0b9lfxlj8rc1rip2";
+      sha256 = "1rqq6mf7fvwvc9m3d5w5ysch3h7z4ml1vvdvy26064fb6lrnn5ai";
       type = "gem";
     };
-    version = "0.16.2";
+    version = "0.17.0";
   };
 }
diff --git a/pkgs/development/tools/rust/cargo-binstall/default.nix b/pkgs/development/tools/rust/cargo-binstall/default.nix
index 1e404f10eedb..da6cbe70f51f 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.5.0";
+  version = "1.6.2";
 
   src = fetchFromGitHub {
     owner = "cargo-bins";
     repo = "cargo-binstall";
     rev = "v${version}";
-    hash = "sha256-QPUZnqELncUCfm995NN0hYDGFZcKrYXskZIaN2ZRtzk=";
+    hash = "sha256-pUxCiVOFrn6ytzxYvaaWe6uBrSwXOSoKh3DyGNUl3rM=";
   };
 
-  cargoHash = "sha256-85r0jDBuvfrJq776MSbQT6w60/xWQkC9zLmZwjdanCk=";
+  cargoHash = "sha256-uoDH440vmupcz1jYyz8i3dVuPt+/W0H9mBZgriAPC0w=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/development/tools/rust/cargo-bisect-rustc/default.nix b/pkgs/development/tools/rust/cargo-bisect-rustc/default.nix
index 963c2d4b2a6e..da57b85e083e 100644
--- a/pkgs/development/tools/rust/cargo-bisect-rustc/default.nix
+++ b/pkgs/development/tools/rust/cargo-bisect-rustc/default.nix
@@ -12,13 +12,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-bisect-rustc";
-  version = "0.6.7";
+  version = "0.6.8";
 
   src = fetchFromGitHub {
     owner = "rust-lang";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-1edBGjnVsMNoP06HAEERQJ6HCkk0dRKlnt1b8GnJWsY=";
+    hash = "sha256-7HiM1oRuLSfRaum66duag/w8ncFdxRLF0yeSGlIey0Y=";
   };
 
   patches =
@@ -47,7 +47,7 @@ rustPlatform.buildRustPackage rec {
     Security
   ];
 
-  cargoHash = "sha256-HzqGSuobGuIuLwoAPQJ1d6xUO2VJ0rcjfOYz2wdIbCk=";
+  cargoHash = "sha256-CgEs0cejquFRY3VN6CgbE23Gipg+LEuWp/jSIkITrjw=";
 
   checkFlags = [
     "--skip test_github"  # requires internet
diff --git a/pkgs/development/tools/rust/cargo-component/default.nix b/pkgs/development/tools/rust/cargo-component/default.nix
index e55599ff9978..3543f5d10fb4 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.6.0";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "bytecodealliance";
     repo = "cargo-component";
     rev = "v${version}";
-    hash = "sha256-x5srXt9xTBkBNfG9r7GsDKVSbxJCKU3Y6HoBLvAHyi0=";
+    hash = "sha256-xOHu7sm06Phe2hc2oev1Am2VlhiSBaeH52aSiFBxuqw=";
   };
 
-  cargoHash = "sha256-/ZzcsC89U+SfyZaANX1rbytVlQ88p4g+HKRd6JerpQc=";
+  cargoHash = "sha256-5xencr+HxUBvCwn8rZr1tONUs6S24swE2hlT8jx8t/k=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/development/tools/rust/cargo-crev/default.nix b/pkgs/development/tools/rust/cargo-crev/default.nix
index 30a2fd44eab5..26606ecd5ee7 100644
--- a/pkgs/development/tools/rust/cargo-crev/default.nix
+++ b/pkgs/development/tools/rust/cargo-crev/default.nix
@@ -14,16 +14,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-crev";
-  version = "0.25.4";
+  version = "0.25.6";
 
   src = fetchFromGitHub {
     owner = "crev-dev";
     repo = "cargo-crev";
     rev = "v${version}";
-    sha256 = "sha256-cXGZhTLIxR9VHrQT+unbl69AviiQ6FCOJTdOP/4fRYI=";
+    sha256 = "sha256-kMbbUXiU549JwblLzcP4X5rs6Qu8vaLKB5rnZSpKHKQ=";
   };
 
-  cargoHash = "sha256-H/5OZCnshGOUKVaBTbFAiMpYdsNC/96gV+rOgiuwDYc=";
+  cargoHash = "sha256-gUHy8yXTiQd3/7IyVmiq0QqXKF4ZVhF+riryEj/w2NI=";
 
   preCheck = ''
     export HOME=$(mktemp -d)
diff --git a/pkgs/development/tools/rust/cargo-deb/default.nix b/pkgs/development/tools/rust/cargo-deb/default.nix
index 257819f4ad3b..e493cca002c7 100644
--- a/pkgs/development/tools/rust/cargo-deb/default.nix
+++ b/pkgs/development/tools/rust/cargo-deb/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-deb";
-  version = "2.0.0";
+  version = "2.0.4";
 
   src = fetchFromGitHub {
     owner = "kornelski";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-DgKGnIA2ovBLja+r+nYZ97UPaWO7a7RXeXa10guZBTc=";
+    hash = "sha256-vIWgkaAprbsdfPUZvyfxJm7wZxExKcV9jkz/A/G6tAo=";
   };
 
-  cargoHash = "sha256-Sv9i8f0ywMNvjA2yvCX+2ZhFuNCovEGiaMxkg/IV36g=";
+  cargoHash = "sha256-EMbqIpFWbUvZaszsYSJaOEl+vm3mrmub7mdfeJPEX7Y=";
 
   nativeBuildInputs = [
     makeWrapper
diff --git a/pkgs/development/tools/rust/cargo-deny/default.nix b/pkgs/development/tools/rust/cargo-deny/default.nix
index 915ae7a148c2..1610acb1c01f 100644
--- a/pkgs/development/tools/rust/cargo-deny/default.nix
+++ b/pkgs/development/tools/rust/cargo-deny/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-deny";
-  version = "0.14.3";
+  version = "0.14.10";
 
   src = fetchFromGitHub {
     owner = "EmbarkStudios";
     repo = "cargo-deny";
     rev = version;
-    hash = "sha256-syBf90xPcwp86xJDHtLMZXCsqh4P0mcaAcNnvjYudn8=";
+    hash = "sha256-9DqVd0EyfHB32hufz13TXdQZsLaiQWIVgTMQfWT5v1Q=";
   };
 
-  cargoHash = "sha256-YmHHuFubac0j0ptFGOr7GI1PYR4KhShrEwdqikG4RlQ=";
+  cargoHash = "sha256-KCJ2csFHIWuqHWCWRvTe++vKxHUkzv9tzrtEW6MUj5s=";
 
   nativeBuildInputs = [
     pkg-config
@@ -28,6 +28,7 @@ rustPlatform.buildRustPackage rec {
     zstd
   ] ++ lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.Security
+    darwin.apple_sdk.frameworks.SystemConfiguration
   ];
 
   env = {
diff --git a/pkgs/development/tools/rust/cargo-dist/default.nix b/pkgs/development/tools/rust/cargo-dist/default.nix
index b365ae528b59..5063a4baf40f 100644
--- a/pkgs/development/tools/rust/cargo-dist/default.nix
+++ b/pkgs/development/tools/rust/cargo-dist/default.nix
@@ -1,6 +1,7 @@
 { lib
 , rustPlatform
 , fetchFromGitHub
+, nix-update-script
 , pkg-config
 , bzip2
 , xz
@@ -13,16 +14,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-dist";
-  version = "0.5.0";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "axodotdev";
     repo = "cargo-dist";
     rev = "v${version}";
-    hash = "sha256-Km/vaEOna+RvckNawIQTSp+FW49P5jx9euKeMaLuOsw=";
+    hash = "sha256-Y4jXAZgJj0d1fUFuM94umlj/JsawWs3KxEQAucsT24s=";
   };
 
-  cargoHash = "sha256-ccVflBHwEAuG0Y9Mmit1X6FLsM4bbt8Kd7fB6zBwKMc=";
+  cargoHash = "sha256-Jza9U5vL45rvDPLb4/iELneKgy1OTCMBM1JxfuxZigQ=";
 
   nativeBuildInputs = [
     pkg-config
@@ -50,11 +51,13 @@ rustPlatform.buildRustPackage rec {
     rm cargo-dist/tests/integration-tests.rs
   '';
 
+  passthru.updateScript = nix-update-script { };
+
   meta = with lib; {
     description = "A tool for building final distributable artifacts and uploading them to an archive";
     homepage = "https://github.com/axodotdev/cargo-dist";
     changelog = "https://github.com/axodotdev/cargo-dist/blob/${src.rev}/CHANGELOG.md";
     license = with licenses; [ asl20 mit ];
-    maintainers = with maintainers; [ figsoda matthiasbeyer ];
+    maintainers = with maintainers; [ figsoda matthiasbeyer mistydemeo ];
   };
 }
diff --git a/pkgs/development/tools/rust/cargo-fuzz/default.nix b/pkgs/development/tools/rust/cargo-fuzz/default.nix
index 8dc49289f6ab..12fae7b15c38 100644
--- a/pkgs/development/tools/rust/cargo-fuzz/default.nix
+++ b/pkgs/development/tools/rust/cargo-fuzz/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-fuzz";
-  version = "0.11.3";
+  version = "0.11.4";
 
   src = fetchFromGitHub {
     owner = "rust-fuzz";
     repo = "cargo-fuzz";
     rev = version;
-    sha256 = "sha256-itChRuBl5n6lo/d7F5pVth5EbtWPleBcE8ReErmfv9M=";
+    hash = "sha256-+k1kHiHRQER/8JTOeQdxcbsfMvS6eC74Wkd9IlLldok=";
   };
 
-  cargoHash = "sha256-AWtycqlmCPISfgX47DXOE6l3jPM1gng9ALTiF87NozI=";
+  cargoHash = "sha256-N3niTnSSIfOVOGhcHHgTbLnpYNmM4bow7qX539P+kHQ=";
 
   buildInputs = lib.optional stdenv.isDarwin libiconv;
 
diff --git a/pkgs/development/tools/rust/cargo-hack/default.nix b/pkgs/development/tools/rust/cargo-hack/default.nix
index 9d3e0e279c3a..0d684a0c0ed2 100644
--- a/pkgs/development/tools/rust/cargo-hack/default.nix
+++ b/pkgs/development/tools/rust/cargo-hack/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-hack";
-  version = "0.6.15";
+  version = "0.6.17";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-yjaX4lqUj9aZPkRuiJC3yBwXvfvd+Okr87Ia2IQvxfM=";
+    hash = "sha256-suZkrbxhKFFGfRJDRw6MEc135Xk5Ace3MpKgN7lRnmc=";
   };
 
-  cargoHash = "sha256-6ogeqVN2V38N7mNBjimjNv/KK2JtV4aa5AorRfYMBx8=";
+  cargoHash = "sha256-9SQ45f5X3fQeYmemES4t6d4M+2/LEBkgQDYgjuy1J5I=";
 
   # some necessary files are absent in the crate version
   doCheck = false;
diff --git a/pkgs/development/tools/rust/cargo-license/default.nix b/pkgs/development/tools/rust/cargo-license/default.nix
index 085286a7eb0b..27798f4ca85e 100644
--- a/pkgs/development/tools/rust/cargo-license/default.nix
+++ b/pkgs/development/tools/rust/cargo-license/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-license";
-  version = "0.5.1";
+  version = "0.6.1";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-M/QGM8jPLrDIoF1TVYDoVcHni1qaRCyZwHlYgia24Ro=";
+    sha256 = "sha256-qwyWj0vPWQOZYib2ZZutX25a4wwnG1kFAiRCWqGyVms=";
   };
 
-  cargoSha256 = "sha256-2m+ornrQQzijyF30uQ6xpEiid6r6I1wTa8nn6Q0wNKo=";
+  cargoHash = "sha256-ifw/n7eejUWUqhieDLojuO3xgosn28NnjAKkq/ZSLEI=";
 
   meta = with lib; {
     description = "Cargo subcommand to see license of dependencies";
diff --git a/pkgs/development/tools/rust/cargo-llvm-cov/default.nix b/pkgs/development/tools/rust/cargo-llvm-cov/default.nix
index 6809aef43799..be81bb5ea788 100644
--- a/pkgs/development/tools/rust/cargo-llvm-cov/default.nix
+++ b/pkgs/development/tools/rust/cargo-llvm-cov/default.nix
@@ -26,7 +26,7 @@
 
 let
   pname = "cargo-llvm-cov";
-  version = "0.6.0";
+  version = "0.6.2";
 
   owner = "taiki-e";
   homepage = "https://github.com/${owner}/${pname}";
@@ -37,7 +37,7 @@ let
   cargoLock = fetchurl {
     name = "Cargo.lock";
     url = "https://crates.io/api/v1/crates/${pname}/${version}/download";
-    sha256 = "sha256-n/LMICQ+38Y9PrzFh9uJ0ljmUrAxfue2l1HculuZ1x8=";
+    sha256 = "sha256-iML16yjSJsyDsr9F3gyp4XTu5Z9petSUQ0jXotU5tmw=";
     downloadToTemp = true;
     postFetch = ''
       tar xzf $downloadedFile ${pname}-${version}/Cargo.lock
@@ -55,7 +55,7 @@ rustPlatform.buildRustPackage {
     inherit owner;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Q1Us7VhvWaCQP9Aik9Fd0rXLP/tuSHmc98+3HoY2YNY=";
+    sha256 = "sha256-1VfWs8f4i3YjH69A7X3/1WPxSIwPRF5osQ/1eqOUB8U=";
     leaveDotGit = true;
   };
 
@@ -64,7 +64,7 @@ rustPlatform.buildRustPackage {
     cp ${cargoLock} source/Cargo.lock
   '';
 
-  cargoSha256 = "sha256-42s/90clkRXkNIZZxZQRwhNxMdCvgiknkCs/hWsofw0=";
+  cargoSha256 = "sha256-9pOfhGnktEgyTbfK4roFU7t3qcgx2yRp17hJVKsvNqw=";
 
   # `cargo-llvm-cov` reads these environment variables to find these binaries,
   # which are needed to run the tests
diff --git a/pkgs/development/tools/rust/cargo-make/default.nix b/pkgs/development/tools/rust/cargo-make/default.nix
index ad01bae6f9d2..1971c81f4609 100644
--- a/pkgs/development/tools/rust/cargo-make/default.nix
+++ b/pkgs/development/tools/rust/cargo-make/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-make";
-  version = "0.37.5";
+  version = "0.37.9";
 
   src = fetchFromGitHub {
     owner = "sagiegurari";
     repo = "cargo-make";
     rev = version;
-    hash = "sha256-2kJdj1Ye6o/GQSWRIi/SvSEz0Yvdx9xDzsYdJm4I0GQ=";
+    hash = "sha256-pfLK9QGDS4KPIdXq/LI++/r1OxqmgF0qqVJNDSVrZFI=";
   };
 
-  cargoHash = "sha256-3Xo1JqqaEIEA18bsrLFOD4HMd/evdSEHL0DdqNNjJL8=";
+  cargoHash = "sha256-x8cx64B+skusk0LDRQT/1g57NBQMchy2HvvryoY0R/I=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/development/tools/rust/cargo-mutants/default.nix b/pkgs/development/tools/rust/cargo-mutants/default.nix
index cb2d5b036834..f80d4d2b0f02 100644
--- a/pkgs/development/tools/rust/cargo-mutants/default.nix
+++ b/pkgs/development/tools/rust/cargo-mutants/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-mutants";
-  version = "24.1.1";
+  version = "24.1.2";
 
   src = fetchFromGitHub {
     owner = "sourcefrog";
     repo = "cargo-mutants";
     rev = "v${version}";
-    hash = "sha256-n7fpfgbDvLMMA834BUSAEYD+mXVxGGFPLlLjDxpKuSA=";
+    hash = "sha256-V1BQJmwLhsh36Gyg1Zrxw5MCUQcyIKlnEsYmchu8K5A=";
   };
 
-  cargoHash = "sha256-lEeNIwNvq6K+xRCUTXs9Sh7o8q3u5GcBKntVMhPQqMU=";
+  cargoHash = "sha256-f2iJnBklzSgHqez6KSk1+ZqiY/t9iCdtsQze9PhG164=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.SystemConfiguration
diff --git a/pkgs/development/tools/rust/cargo-semver-checks/default.nix b/pkgs/development/tools/rust/cargo-semver-checks/default.nix
index e1b2f6867e1f..1d940aac1e27 100644
--- a/pkgs/development/tools/rust/cargo-semver-checks/default.nix
+++ b/pkgs/development/tools/rust/cargo-semver-checks/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-semver-checks";
-  version = "0.27.0";
+  version = "0.28.0";
 
   src = fetchFromGitHub {
     owner = "obi1kenobi";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-DN50syZ965MWXKg3lhEhvINeqZUtZgJNjusevf4EIUw=";
+    hash = "sha256-5QXTbsNp36jYrcSDmCXT5Nmhhr9TaWpF3QqaCKv5TTg=";
   };
 
-  cargoHash = "sha256-ulsU/QSSNqyZTjM77PQnr3HVUg2dS8SxHv2y6Lsvths=";
+  cargoHash = "sha256-uRgSNVleGzD75q16hd/AOl23DT1btWGuNgZ2IprGa7k=";
 
   nativeBuildInputs = [
     cmake
diff --git a/pkgs/development/tools/rust/cargo-show-asm/default.nix b/pkgs/development/tools/rust/cargo-show-asm/default.nix
index b32080683949..139ea6c7f068 100644
--- a/pkgs/development/tools/rust/cargo-show-asm/default.nix
+++ b/pkgs/development/tools/rust/cargo-show-asm/default.nix
@@ -9,14 +9,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-show-asm";
-  version = "0.2.25";
+  version = "0.2.29";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-jIOJr0saR+k++bPlYsf9LzWCJEDC/DHb6KjRonhAImA=";
+    hash = "sha256-9Q+BnzgoD95eKkMZrQF6+khbx5wqnER83PK3vbRrRv8=";
   };
 
-  cargoHash = "sha256-kp6bZQjmI4enJvxOX8L0c3ZlqohZn6uKYnjrrxd/Hjg=";
+  cargoHash = "sha256-cyFAilqpaO6TDtJUmweUHYEpWxUAhHDYgCUGSz5EBFU=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/development/tools/rust/cargo-show-asm/test-basic-x86_64.nix b/pkgs/development/tools/rust/cargo-show-asm/test-basic-x86_64.nix
index c0dd8b421b0a..ca1738f02185 100644
--- a/pkgs/development/tools/rust/cargo-show-asm/test-basic-x86_64.nix
+++ b/pkgs/development/tools/rust/cargo-show-asm/test-basic-x86_64.nix
@@ -9,7 +9,7 @@ name = "add"
 version = "0.0.0"
 EOF
   cat >src/lib.rs <<EOF
-pub fn add(a: u32, b: u32) -> u32 { a + b }
+#[inline(never)] pub fn add(a: u32, b: u32) -> u32 { a + b }
 EOF
 
   [[ "$(cargo asm add::add | tee /dev/stderr)" == *"lea eax, "* ]]
diff --git a/pkgs/development/tools/rust/cargo-tally/default.nix b/pkgs/development/tools/rust/cargo-tally/default.nix
index afbc4ad22ce7..9a1adef89190 100644
--- a/pkgs/development/tools/rust/cargo-tally/default.nix
+++ b/pkgs/development/tools/rust/cargo-tally/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-tally";
-  version = "1.0.34";
+  version = "1.0.35";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-8PlWRWP5ZsbZ3R/yqA9bUScG0w+gk5YLcIOqwWishVM=";
+    hash = "sha256-RtpOKngi8oTCnJFXSHHlBPpNoPcco06yyB2/+S5nG04=";
   };
 
-  cargoHash = "sha256-+Ti8un+y9aNPsz9rUjmTZ6nxVCeQObiZrCYrD6dwr4c=";
+  cargoHash = "sha256-CC4F7fsQsjNAVwslxVHG3scjqWvKfjlDve27LEGXSms=";
 
   buildInputs = lib.optionals stdenv.isDarwin (with darwin.apple_sdk_11_0.frameworks; [
     DiskArbitration
diff --git a/pkgs/development/tools/rust/cargo-udeps/default.nix b/pkgs/development/tools/rust/cargo-udeps/default.nix
index 6c0b02c189db..e82d9b01ce1f 100644
--- a/pkgs/development/tools/rust/cargo-udeps/default.nix
+++ b/pkgs/development/tools/rust/cargo-udeps/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-udeps";
-  version = "0.1.43";
+  version = "0.1.45";
 
   src = fetchFromGitHub {
     owner = "est31";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-aZzkVyRWxpSB0lPD7A8kbZc93h43OyPn0Pk9tCIZRnA=";
+    sha256 = "sha256-pfEvztV/DAPPOxm8An/PsBdoF8S/AK+/S+vllezYCeo=";
   };
 
-  cargoHash = "sha256-kQ1NQDvOBU8mmQQgNR4l1bBN0nr/ZSudJkL7Gf9hpgU=";
+  cargoHash = "sha256-SYlFENdnMeKxeDDHw73/edu1807rgrg8ncWTBsmgPtY=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/development/tools/rust/cargo-watch/default.nix b/pkgs/development/tools/rust/cargo-watch/default.nix
index aadecc823bbe..fe748a7dbeb5 100644
--- a/pkgs/development/tools/rust/cargo-watch/default.nix
+++ b/pkgs/development/tools/rust/cargo-watch/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-watch";
-  version = "8.5.1";
+  version = "8.5.2";
 
   src = fetchFromGitHub {
     owner = "watchexec";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-MzwifQsOSJt9wq8bhVAY6HqXP4Zs4+a2GcG79PdAiMY=";
+    hash = "sha256-Vf6BFr8MphaUJoHMtksbbVQb+jha7jowhktQCVFxlxQ=";
   };
 
-  cargoHash = "sha256-wyyIZ7i1icvD53hnUM4H/kvxj6K/pVzAAvKKp5LzwTE=";
+  cargoHash = "sha256-skUG1B6TCFEXeQSRwA6vWjXmNifk5bTR4+JESw7CZMo=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ Foundation Cocoa ];
 
diff --git a/pkgs/development/tools/rust/cargo-workspaces/default.nix b/pkgs/development/tools/rust/cargo-workspaces/default.nix
index 3f97405fb678..5cb3c4de96b1 100644
--- a/pkgs/development/tools/rust/cargo-workspaces/default.nix
+++ b/pkgs/development/tools/rust/cargo-workspaces/default.nix
@@ -12,14 +12,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-workspaces";
-  version = "0.3.0";
+  version = "0.3.1";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-1wNoMVfouuPRGFGB6XIhgeeWgknxMctrBl5Vfco6qug=";
+    hash = "sha256-1YFTBzFr11FUfwgdGJgyF1lWvrfQ6ZPIkYAG7vySfFA=";
   };
 
-  cargoHash = "sha256-OJGqIo6mYqXjmQb/2CVVTskecYZretw+K46Fvbu/PcQ=";
+  cargoHash = "sha256-wL1DKZ1QhBKB4Gy2rbwe4y/hR4A/wiiVqGAIcM+Om8E=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/development/tools/rust/cargo-zigbuild/default.nix b/pkgs/development/tools/rust/cargo-zigbuild/default.nix
index f454eec74cd3..adc845c67ea7 100644
--- a/pkgs/development/tools/rust/cargo-zigbuild/default.nix
+++ b/pkgs/development/tools/rust/cargo-zigbuild/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-zigbuild";
-  version = "0.18.1";
+  version = "0.18.3";
 
   src = fetchFromGitHub {
     owner = "messense";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-YAp3lH2qEhN6Bd9YyLWnSgmppsQY+ssamopWDE1bhiQ=";
+    hash = "sha256-wL6Rmw5hJI8cJDw2WO9CDOyeOuZv6QoFxrn81JrYBR4=";
   };
 
-  cargoHash = "sha256-g+uHOqHRCklrjv6uW/5wjfwn473GEXjricQa4qXeliY=";
+  cargoHash = "sha256-uCZYDh4+Pri77DzqZj12cav7o8eDY2+fgwIwVBdcbHg=";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/development/tools/rust/duckscript/default.nix b/pkgs/development/tools/rust/duckscript/default.nix
index 4b53eacb096c..3b8c27ddbb1a 100644
--- a/pkgs/development/tools/rust/duckscript/default.nix
+++ b/pkgs/development/tools/rust/duckscript/default.nix
@@ -13,11 +13,11 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "duckscript_cli";
-  version = "0.9.2";
+  version = "0.9.3";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-qvocz/7Fx2YkgPcOYQha5iHQmoU40joGamj/SMiYx+4=";
+    hash = "sha256-2ouEmI7BH9J+PEN7l3rE8nmd0Khe2Bjq1Bg9SgGnB4E=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl ]
     ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration libiconv ];
 
-  cargoHash = "sha256-SW3Q/+EhdMNLbhGQPpiIXuJv3ttyeCpjjvbVCrJzXlY=";
+  cargoHash = "sha256-bBqcHETEWooMgQeqPOZIK/77DdTtGq1JusBKoRj5K6w=";
 
   meta = with lib; {
     description = "Simple, extendable and embeddable scripting language.";
diff --git a/pkgs/development/tools/rust/maturin/default.nix b/pkgs/development/tools/rust/maturin/default.nix
index 37cec14ee4c4..fa17f4f03624 100644
--- a/pkgs/development/tools/rust/maturin/default.nix
+++ b/pkgs/development/tools/rust/maturin/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "maturin";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "PyO3";
     repo = "maturin";
     rev = "v${version}";
-    hash = "sha256-MVmu9m+9XhWuPBEEoaYmsSbMFziSZaM5Gg5kOr1DT54=";
+    hash = "sha256-mD/7wWeclV5Xqii9hcZMustvR6tf7MoyTZ3WsvEc61U=";
   };
 
-  cargoHash = "sha256-hrdrGFtL2vGczINnvDa4rclkXsNWnEqtTt3NVaRay8w=";
+  cargoHash = "sha256-w8XpCJ8GS2VszW/9/O2suy82zVO1UpWTrU1lFGYwhvw=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security libiconv ];
 
diff --git a/pkgs/development/tools/rust/probe-run/default.nix b/pkgs/development/tools/rust/probe-run/default.nix
index 0a1fa745dc35..30ca65f776b0 100644
--- a/pkgs/development/tools/rust/probe-run/default.nix
+++ b/pkgs/development/tools/rust/probe-run/default.nix
@@ -12,14 +12,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "probe-run";
-  version = "0.3.10";
+  version = "0.3.11";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-PIUL7aUIHyHuetkMbJsZ3x1coyzKGwI/AJE/R6uFBM4=";
+    hash = "sha256-RlmN2PV5Z/+NTYia7LhrAW437bsg6oUxlQ1qcbZuq0o=";
   };
 
-  cargoHash = "sha256-7q5M3huI7Qje5E3Rl2i/9I4g90R8vhJD9Hk78biewBE=";
+  cargoHash = "sha256-MG3xHArNEqXs0vC5sSyaBM3421yJ25nazvBNQVcs4v0=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/development/tools/rust/rtthost/default.nix b/pkgs/development/tools/rust/rtthost/default.nix
deleted file mode 100644
index 8352d4fe7142..000000000000
--- a/pkgs/development/tools/rust/rtthost/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ lib
-, stdenv
-, rustPlatform
-, fetchCrate
-, pkg-config
-, libusb1
-, DarwinTools
-, AppKit
-}:
-
-rustPlatform.buildRustPackage rec {
-  pname = "rtthost";
-  version = "0.22.0";
-
-  src = fetchCrate {
-    inherit pname version;
-    hash = "sha256-Pb7Df3JI6ACcJ81+9KZ8qMM5Y/VT0kO5kubC3g0Wtlk=";
-  };
-
-  cargoHash = "sha256-Wb+ZPUrNA3LW4huT1QnyW8RKkh4Ow6gBT1VByHlEwGg=";
-
-  nativeBuildInputs = [ pkg-config ] ++ lib.optionals stdenv.isDarwin [ DarwinTools ];
-
-  buildInputs = [ libusb1 ] ++ lib.optionals stdenv.isDarwin [ AppKit ];
-
-  meta = with lib; {
-    description = "RTT (Real-Time Transfer) client";
-    homepage = "https://probe.rs/";
-    changelog = "https://github.com/probe-rs/probe-rs/blob/v${version}/CHANGELOG.md";
-    license = with licenses; [ asl20 /* or */ mit ];
-    maintainers = with maintainers; [ samueltardieu ];
-  };
-}
diff --git a/pkgs/development/tools/rust/rust-analyzer/default.nix b/pkgs/development/tools/rust/rust-analyzer/default.nix
index c6adbd552d17..a1c8dd591e10 100644
--- a/pkgs/development/tools/rust/rust-analyzer/default.nix
+++ b/pkgs/development/tools/rust/rust-analyzer/default.nix
@@ -13,14 +13,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rust-analyzer-unwrapped";
-  version = "2024-01-08";
-  cargoSha256 = "sha256-TzY+A0QvtSionE1bL9NHFJzuovUW7N4HCGxLz81CInU=";
+  version = "2024-01-29";
+  cargoSha256 = "sha256-3f+Nc2HXCQsaZ+FFSH7ML0o1yikZWhsRZmA8JtBc2TY=";
 
   src = fetchFromGitHub {
     owner = "rust-lang";
     repo = "rust-analyzer";
     rev = version;
-    sha256 = "sha256-fVi0wlgFjp/bXz1LxvbiBB07Aj5ZnNq2xsvrCzDpIDc=";
+    sha256 = "sha256-6K5rK1b2APQfXOrC+Hm+0QcyfPVt+TV81Q6Fd/QjMlQ=";
   };
 
   cargoBuildFlags = [ "--bin" "rust-analyzer" "--bin" "rust-analyzer-proc-macro-srv" ];
diff --git a/pkgs/development/tools/rye/Cargo.lock b/pkgs/development/tools/rye/Cargo.lock
index b15cc181f4d5..f6e5b5d01966 100644
--- a/pkgs/development/tools/rye/Cargo.lock
+++ b/pkgs/development/tools/rye/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",
 ]
@@ -29,9 +29,9 @@ dependencies = [
 
 [[package]]
 name = "age"
-version = "0.9.1"
+version = "0.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9e4dfef09bebad6d85efa8b6e1b2f7a809c4419d7135ab573c4fd133c0e8ead"
+checksum = "6d55a4d912c80a92762ffd1c884065f3f9646467d22c95390e824a0ff7def472"
 dependencies = [
  "age-core",
  "base64 0.13.1",
@@ -74,44 +74,42 @@ dependencies = [
 
 [[package]]
 name = "ahash"
-version = "0.7.6"
+version = "0.8.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
+checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
 dependencies = [
- "getrandom 0.2.9",
+ "cfg-if",
  "once_cell",
  "version_check",
+ "zerocopy",
 ]
 
 [[package]]
 name = "aho-corasick"
-version = "0.7.20"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
-name = "aho-corasick"
-version = "1.0.1"
+name = "allocator-api2"
+version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04"
-dependencies = [
- "memchr",
-]
+checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
 
 [[package]]
 name = "anstyle"
-version = "1.0.0"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d"
+checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
 
 [[package]]
 name = "anyhow"
-version = "1.0.71"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8"
+checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
 dependencies = [
  "backtrace",
 ]
@@ -130,15 +128,15 @@ 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",
  "cfg-if",
  "libc",
- "miniz_oxide 0.6.2",
+ "miniz_oxide",
  "object",
  "rustc-demangle",
 ]
@@ -151,9 +149,9 @@ 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 = "bech32"
@@ -168,6 +166,12 @@ 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 = "block-buffer"
 version = "0.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -178,19 +182,25 @@ dependencies = [
 
 [[package]]
 name = "bstr"
-version = "1.4.0"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3d4260bcc2e8fc9df1eac4919a720effeb63a3f0952f5bf4944adfa18897f09"
+checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc"
 dependencies = [
  "memchr",
  "serde",
 ]
 
 [[package]]
+name = "bumpalo"
+version = "3.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+
+[[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 = "bzip2"
@@ -215,11 +225,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]]
@@ -275,9 +286,9 @@ dependencies = [
 
 [[package]]
 name = "chumsky"
-version = "0.9.2"
+version = "0.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23170228b96236b5a7299057ac284a321457700bc8c41a4476052f0f4ba5349d"
+checksum = "8eebd66744a15ded14960ab4ccdbfb51ad3b81f51f3f04a80adac98c985396c9"
 dependencies = [
  "hashbrown",
  "stacker",
@@ -296,71 +307,69 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.3.5"
+version = "4.4.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2686c4115cb0810d9a984776e197823d08ec94f176549a89a9efded477c456dc"
+checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c"
 dependencies = [
  "clap_builder",
  "clap_derive",
- "once_cell",
 ]
 
 [[package]]
 name = "clap_builder"
-version = "4.3.5"
+version = "4.4.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e53afce1efce6ed1f633cf0e57612fe51db54a1ee4fd8f8503d078fe02d69ae"
+checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7"
 dependencies = [
  "anstyle",
- "bitflags",
  "clap_lex",
  "terminal_size",
 ]
 
 [[package]]
 name = "clap_complete"
-version = "4.2.3"
+version = "4.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1594fe2312ec4abf402076e407628f5c313e54c32ade058521df4ee34ecac8a8"
+checksum = "df631ae429f6613fcd3a7c1adbdb65f637271e561b03680adaa6573015dfb106"
 dependencies = [
  "clap",
 ]
 
 [[package]]
 name = "clap_derive"
-version = "4.3.2"
+version = "4.4.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8cd2b2a819ad6eec39e8f1d6b53001af1e5469f8c177579cdaeb313115b825f"
+checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "clap_lex"
-version = "0.5.0"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
+checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
 
 [[package]]
 name = "configparser"
-version = "3.0.2"
+version = "3.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5458d9d1a587efaf5091602c59d299696a3877a439c8f6d461a2d3cce11df87a"
+checksum = "4ec6d3da8e550377a85339063af6e3735f4b1d9392108da4e083a1b3b9820288"
 
 [[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]]
@@ -371,15 +380,15 @@ checksum = "396de984970346b0d9e93d1415082923c679e5ae5c3ee3dcbd104f5610af126b"
 
 [[package]]
 name = "core-foundation-sys"
-version = "0.8.4"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.7"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e4c1eaa2012c47becbbad2ab175484c2a84d1185b566fb2cc5b8707343dfe58"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
 dependencies = [
  "libc",
 ]
@@ -394,47 +403,29 @@ dependencies = [
 ]
 
 [[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.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",
- "scopeguard",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.15"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b"
-dependencies = [
- "cfg-if",
-]
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
 
 [[package]]
 name = "crypto-common"
@@ -447,6 +438,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "ctrlc"
+version = "3.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b467862cc8610ca6fc9a1532d7777cee0804e678ab45410897b9396495994a0b"
+dependencies = [
+ "nix",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "curl"
 version = "0.4.44"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -463,9 +464,9 @@ dependencies = [
 
 [[package]]
 name = "curl-sys"
-version = "0.4.67+curl-8.3.0"
+version = "0.4.70+curl-8.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3cc35d066510b197a0f72de863736641539957628c8a42e70e27c66849e77c34"
+checksum = "3c0333d8849afe78a4c8102a429a446bfdd055832af071945520e835ae2d841e"
 dependencies = [
  "cc",
  "libc",
@@ -526,9 +527,9 @@ dependencies = [
 
 [[package]]
 name = "dashmap"
-version = "5.4.0"
+version = "5.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edc"
+checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
 dependencies = [
  "cfg-if",
  "hashbrown",
@@ -539,9 +540,9 @@ dependencies = [
 
 [[package]]
 name = "data-encoding"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308"
+checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
 
 [[package]]
 name = "decompress"
@@ -556,7 +557,16 @@ dependencies = [
  "regex",
  "tar",
  "thiserror",
- "zstd",
+ "zstd 0.12.4",
+]
+
+[[package]]
+name = "deranged"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
+dependencies = [
+ "powerfmt",
 ]
 
 [[package]]
@@ -592,9 +602,9 @@ dependencies = [
 
 [[package]]
 name = "deunicode"
-version = "0.4.3"
+version = "1.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "850878694b7933ca4c9569d30a34b55031b9b139ee1fc7b94a527c4ef960d690"
+checksum = "3ae2a35373c5c74340b79ae6780b498b2b183915ec5dacf263aac5a099bf485a"
 
 [[package]]
 name = "dialoguer"
@@ -619,9 +629,9 @@ dependencies = [
 
 [[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",
@@ -636,14 +646,14 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "either"
-version = "1.8.1"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
+checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
 
 [[package]]
 name = "encode_unicode"
@@ -653,32 +663,27 @@ checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
 
 [[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",
 ]
 
 [[package]]
-name = "errno"
-version = "0.3.1"
+name = "equivalent"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
-dependencies = [
- "errno-dragonfly",
- "libc",
- "windows-sys 0.48.0",
-]
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
+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]]
@@ -691,15 +696,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "fastrand"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+
+[[package]]
 name = "filetime"
-version = "0.2.21"
+version = "0.2.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cbc844cecaee9d4443931972e1289c8ff485cb4cc2767cb03ca139ed6885153"
+checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall 0.2.16",
- "windows-sys 0.48.0",
+ "redox_syscall",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -713,12 +724,12 @@ dependencies = [
 
 [[package]]
 name = "flate2"
-version = "1.0.26"
+version = "1.0.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
 dependencies = [
  "crc32fast",
- "miniz_oxide 0.7.1",
+ "miniz_oxide",
 ]
 
 [[package]]
@@ -742,7 +753,7 @@ dependencies = [
  "intl-memoizer",
  "intl_pluralrules",
  "rustc-hash",
- "self_cell",
+ "self_cell 0.10.3",
  "smallvec",
  "unic-langid",
 ]
@@ -773,18 +784,31 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[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 = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "fs2"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0845fa252299212f0389d64ba26f34fa32cfe41588355f21ed507c59a0f64541"
+checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213"
+dependencies = [
+ "libc",
+ "winapi",
+]
 
 [[package]]
 name = "generic-array"
@@ -809,9 +833,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.9"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if",
  "libc",
@@ -820,53 +844,53 @@ 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 = "git-testament"
-version = "0.2.4"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "986bf57c808270f3a0a0652c3bfce0f5d667aa5f5b465616dc697c7f390834b1"
+checksum = "710c78d2b68e46e62f5ba63ba0a7a2986640f37f9ecc07903b9ad4e7b2dbfc8e"
 dependencies = [
  "git-testament-derive",
- "no-std-compat",
 ]
 
 [[package]]
 name = "git-testament-derive"
-version = "0.1.14"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4a782db5866c7ab75f3552dda4cbf34e3e257cc64c963c6ed5af1e12818e8ae6"
+checksum = "9b31494efbbe1a6730f6943759c21b92c8dc431cb4df177e6f2a6429c3c96842"
 dependencies = [
  "log",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.48",
  "time",
 ]
 
 [[package]]
 name = "globset"
-version = "0.4.10"
+version = "0.4.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "029d74589adefde59de1a0c4f4732695c32805624aec7b68d91503d4dba79afc"
+checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1"
 dependencies = [
- "aho-corasick 0.7.20",
+ "aho-corasick",
  "bstr",
- "fnv",
  "log",
- "regex",
+ "regex-automata",
+ "regex-syntax",
 ]
 
 [[package]]
 name = "hashbrown"
-version = "0.12.3"
+version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 dependencies = [
  "ahash",
+ "allocator-api2",
 ]
 
 [[package]]
@@ -876,12 +900,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
-name = "hermit-abi"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
-
-[[package]]
 name = "hex"
 version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -889,9 +907,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",
 ]
@@ -902,28 +920,37 @@ version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
 dependencies = [
- "digest 0.10.6",
+ "digest 0.10.7",
+]
+
+[[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 = "i18n-config"
-version = "0.4.3"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d9f93ceee6543011739bc81699b5e0cf1f23f3a80364649b6d80de8636bc8df"
+checksum = "0c9ce3c48cbc21fd5b22b9331f32b5b51f6ad85d969b99e793427332e76e7640"
 dependencies = [
  "log",
  "serde",
  "serde_derive",
  "thiserror",
- "toml 0.5.11",
+ "toml 0.8.8",
  "unic-langid",
 ]
 
 [[package]]
 name = "i18n-embed"
-version = "0.13.8"
+version = "0.13.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2653dd1a8be0726315603f1c180b29f90e5b2a58f8b943d949d5170d9ad81101"
+checksum = "92a86226a7a16632de6723449ee5fe70bac5af718bc642ee9ca2f0f6e14fa1fa"
 dependencies = [
  "arc-swap",
  "fluent",
@@ -942,9 +969,9 @@ dependencies = [
 
 [[package]]
 name = "i18n-embed-fl"
-version = "0.6.6"
+version = "0.6.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b5809e2295beeb55013705c3b947cbbe83b8cadf3c73a1e6dca06381927212a"
+checksum = "d26a3d3569737dfaac7fc1c4078e6af07471c3060b8e570bcd83cdd5f4685395"
 dependencies = [
  "dashmap",
  "find-crate",
@@ -957,21 +984,21 @@ dependencies = [
  "proc-macro2",
  "quote",
  "strsim",
- "syn 1.0.109",
+ "syn 2.0.48",
  "unic-langid",
 ]
 
 [[package]]
 name = "i18n-embed-impl"
-version = "0.8.0"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0db2330e035808eb064afb67e6743ddce353763af3e0f2bdfc2476e00ce76136"
+checksum = "81093c4701672f59416582fe3145676126fd23ba5db910acad0793c1108aaa58"
 dependencies = [
  "find-crate",
  "i18n-config",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -982,9 +1009,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
 
 [[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",
@@ -992,23 +1019,24 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "1.9.3"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
+checksum = "cf2a4f498956c7723dc280afc6a37d0dec50b39a29e232c6187ce4503703e8c2"
 dependencies = [
- "autocfg",
+ "equivalent",
  "hashbrown",
 ]
 
 [[package]]
 name = "indicatif"
-version = "0.17.3"
+version = "0.17.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cef509aa9bc73864d6756f0d34d35504af3cf0844373afe9b8669a5b8005a729"
+checksum = "fb28741c9db9a713d93deb3bb9515c20788cef5815265bee4980e87bde7e0f25"
 dependencies = [
  "console",
+ "instant",
  "number_prefix",
- "portable-atomic 0.3.20",
+ "portable-atomic",
  "unicode-width",
 ]
 
@@ -1059,17 +1087,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "io-lifetimes"
-version = "1.0.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220"
-dependencies = [
- "hermit-abi",
- "libc",
- "windows-sys 0.48.0",
-]
-
-[[package]]
 name = "io_tee"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1077,15 +1094,15 @@ checksum = "4b3f7cef34251886990511df1c61443aa928499d598a9473929ab5a90a527304"
 
 [[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.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
+checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d"
 dependencies = [
  "libc",
 ]
@@ -1108,15 +1125,15 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libc"
-version = "0.2.144"
+version = "0.2.152"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1"
+checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
 
 [[package]]
 name = "libz-sys"
-version = "1.1.9"
+version = "1.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56ee889ecc9568871456d42f603d6a0ce59ff328d291063a45cbdf0036baf6db"
+checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6"
 dependencies = [
  "cc",
  "libc",
@@ -1126,9 +1143,9 @@ dependencies = [
 
 [[package]]
 name = "license"
-version = "3.1.1"
+version = "3.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b66615d42e949152327c402e03cd29dab8bff91ce470381ac2ca6d380d8d9946"
+checksum = "778718185117620a06e95d2b1e57d50166b1d6bfad93c8abfc1b3344c863ad8c"
 dependencies = [
  "reword",
  "serde",
@@ -1137,15 +1154,15 @@ dependencies = [
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.3.7"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ece97ea872ece730aed82664c424eb4c8291e1ff2480247ccf7409044bc6479f"
+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",
@@ -1153,44 +1170,32 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.17"
+version = "0.4.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-dependencies = [
- "cfg-if",
-]
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
 name = "mailparse"
-version = "0.14.0"
+version = "0.14.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b56570f5f8c0047260d1c8b5b331f62eb9c660b9dd4071a8c46f8c7d3f280aa"
+checksum = "2d096594926cab442e054e047eb8c1402f7d5b2272573b97ba68aa40629f9757"
 dependencies = [
  "charset",
  "data-encoding",
- "quoted_printable",
+ "quoted_printable 0.5.0",
 ]
 
 [[package]]
 name = "memchr"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
-
-[[package]]
-name = "memoffset"
-version = "0.9.0"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
-dependencies = [
- "autocfg",
-]
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "minijinja"
-version = "1.0.5"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f75e6f2b03d9292f6e18aaeeda21d58c91f6943a58ea19a2e8672dcf9d91d5b"
+checksum = "6fe0ff215195a22884d867b547c70a0c4815cbbcc70991f281dca604b20d10ce"
 dependencies = [
  "serde",
  "serde_json",
@@ -1204,15 +1209,6 @@ 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"
@@ -1223,37 +1219,39 @@ dependencies = [
 [[package]]
 name = "monotrail-utils"
 version = "0.0.1"
-source = "git+https://github.com/konstin/poc-monotrail#596c51ed1955ada7117b09b526eba6140cbdc288"
+source = "git+https://github.com/konstin/poc-monotrail?rev=136807e1fe87e9319e0223f76b602ba5db881322#136807e1fe87e9319e0223f76b602ba5db881322"
 dependencies = [
  "anyhow",
+ "cpufeatures",
  "fs-err",
+ "fs2",
  "pep508_rs",
+ "regex",
  "serde",
  "serde_json",
- "toml 0.7.3",
+ "tar",
+ "target-lexicon",
+ "tempfile",
+ "thiserror",
+ "toml 0.8.8",
  "tracing",
  "unscanny",
+ "ureq",
+ "zstd 0.13.0",
 ]
 
 [[package]]
 name = "nix"
-version = "0.26.2"
+version = "0.27.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a"
+checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
 dependencies = [
- "bitflags",
+ "bitflags 2.4.2",
  "cfg-if",
  "libc",
- "static_assertions",
 ]
 
 [[package]]
-name = "no-std-compat"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c"
-
-[[package]]
 name = "nom"
 version = "7.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1273,16 +1271,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "num_cpus"
-version = "1.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
-dependencies = [
- "hermit-abi",
- "libc",
-]
-
-[[package]]
 name = "number_prefix"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1290,18 +1278,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.17.1"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "opaque-debug"
@@ -1317,18 +1305,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-src"
-version = "111.25.3+1.1.1t"
+version = "300.2.1+3.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "924757a6a226bf60da5f7dd0311a34d2b52283dd82ddeb103208ddc66362f80c"
+checksum = "3fe476c29791a5ca0d1273c697e96085bbabbbea2ef7afd5617e78a4b40332d3"
 dependencies = [
  "cc",
 ]
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.87"
+version = "0.9.99"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e17f59264b2809d77ae94f0e1ebabc434773f370d6ca667bd223ea10e06cc7e"
+checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae"
 dependencies = [
  "cc",
  "libc",
@@ -1349,15 +1337,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]]
@@ -1372,27 +1360,26 @@ version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917"
 dependencies = [
- "digest 0.10.6",
+ "digest 0.10.7",
 ]
 
 [[package]]
 name = "pep440_rs"
-version = "0.3.9"
+version = "0.3.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe1d15693a11422cfa7d401b00dc9ae9fb8edbfbcb711a77130663f4ddf67650"
+checksum = "887f66cc62717ea72caac4f1eb4e6f392224da3ffff3f40ec13ab427802746d6"
 dependencies = [
  "lazy_static",
  "regex",
  "serde",
- "tracing",
  "unicode-width",
 ]
 
 [[package]]
 name = "pep508_rs"
-version = "0.2.1"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0713d7bb861ca2b7d4c50a38e1f31a4b63a2e2df35ef1e5855cc29e108453e2"
+checksum = "e4516b53d9ea6112ebb38b4af08d5707d30b994fb7f98ff133c5dcf7ed8fa854"
 dependencies = [
  "once_cell",
  "pep440_rs",
@@ -1406,41 +1393,41 @@ dependencies = [
 
 [[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 = "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 = "pkg-config"
-version = "0.3.27"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
 
 [[package]]
 name = "poly1305"
@@ -1455,18 +1442,15 @@ dependencies = [
 
 [[package]]
 name = "portable-atomic"
-version = "0.3.20"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e30165d31df606f5726b090ec7592c308a0eaf61721ff64c9a3018e344a8753e"
-dependencies = [
- "portable-atomic 1.3.2",
-]
+checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
 
 [[package]]
-name = "portable-atomic"
-version = "1.3.2"
+name = "powerfmt"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc59d1bcc64fc5d021d67521f818db868368028108d37f0e98d74e33f68297b5"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
 
 [[package]]
 name = "ppv-lite86"
@@ -1500,9 +1484,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.66"
+version = "1.0.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
 dependencies = [
  "unicode-ident",
 ]
@@ -1518,9 +1502,9 @@ dependencies = [
 
 [[package]]
 name = "python-pkginfo"
-version = "0.5.6"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e23988cc0f9fbe3c42ae6e399daa7c0273d6013784b744b1742c6e1060611b0e"
+checksum = "037469c164f08c891bf6d69ca02f1d56210011451e229618669777df82124cfa"
 dependencies = [
  "flate2",
  "fs-err",
@@ -1534,9 +1518,9 @@ dependencies = [
 
 [[package]]
 name = "quote"
-version = "1.0.33"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
@@ -1548,6 +1532,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5a3866219251662ec3b26fc217e3e05bf9c4f84325234dfb96bf0bf840889e49"
 
 [[package]]
+name = "quoted_printable"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79ec282e887b434b68c18fe5c121d38e72a5cf35119b59e54ec5b992ea9c8eb0"
+
+[[package]]
 name = "rand"
 version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1606,7 +1596,7 @@ version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
 dependencies = [
- "getrandom 0.2.9",
+ "getrandom 0.2.12",
 ]
 
 [[package]]
@@ -1620,9 +1610,9 @@ dependencies = [
 
 [[package]]
 name = "rayon"
-version = "1.7.0"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
+checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051"
 dependencies = [
  "either",
  "rayon-core",
@@ -1630,41 +1620,30 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.11.0"
+version = "1.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
 dependencies = [
- "crossbeam-channel",
  "crossbeam-deque",
  "crossbeam-utils",
- "num_cpus",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.2.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
-dependencies = [
- "bitflags",
 ]
 
 [[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",
+ "bitflags 1.3.2",
 ]
 
 [[package]]
 name = "regex"
-version = "1.9.1"
+version = "1.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
- "aho-corasick 1.0.1",
+ "aho-corasick",
  "memchr",
  "regex-automata",
  "regex-syntax",
@@ -1672,20 +1651,20 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.3.3"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310"
+checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
 dependencies = [
- "aho-corasick 1.0.1",
+ "aho-corasick",
  "memchr",
  "regex-syntax",
 ]
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.4"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "reword"
@@ -1702,19 +1681,33 @@ version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "61fc4b4e52897c3e30b12b7e9b04461215b647fbe66f6def60dd8edbce14ec2e"
 dependencies = [
- "base64 0.21.2",
+ "base64 0.21.7",
  "charset",
  "chumsky",
  "memchr",
- "quoted_printable",
+ "quoted_printable 0.4.8",
  "thiserror",
 ]
 
 [[package]]
+name = "ring"
+version = "0.17.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
+dependencies = [
+ "cc",
+ "getrandom 0.2.12",
+ "libc",
+ "spin",
+ "untrusted",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
 name = "rust-embed"
-version = "6.6.1"
+version = "6.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b68543d5527e158213414a92832d2aab11a84d2571a5eb021ebe22c43aab066"
+checksum = "a36224c3276f8c4ebc8c20f158eca7ca4359c8db89991c4925132aaaf6702661"
 dependencies = [
  "rust-embed-impl",
  "rust-embed-utils",
@@ -1723,22 +1716,22 @@ dependencies = [
 
 [[package]]
 name = "rust-embed-impl"
-version = "6.5.0"
+version = "6.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d4e0f0ced47ded9a68374ac145edd65a6c1fa13a96447b873660b2a568a0fd7"
+checksum = "49b94b81e5b2c284684141a2fb9e2a31be90638caf040bf9afbc5a0416afe1ac"
 dependencies = [
  "proc-macro2",
  "quote",
  "rust-embed-utils",
- "syn 1.0.109",
+ "syn 2.0.48",
  "walkdir",
 ]
 
 [[package]]
 name = "rust-embed-utils"
-version = "7.5.0"
+version = "7.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "512b0ab6853f7e14e3c8754acb43d6f748bb9ced66aa5915a6553ac8213f7731"
+checksum = "9d38ff6bf570dc3bb7100fce9f7b60c33fa71d80e88da3f2580df4ff2bdded74"
 dependencies = [
  "sha2",
  "walkdir",
@@ -1758,21 +1751,42 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
 
 [[package]]
 name = "rustix"
-version = "0.37.19"
+version = "0.38.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d"
+checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca"
 dependencies = [
- "bitflags",
+ "bitflags 2.4.2",
  "errno",
- "io-lifetimes",
  "libc",
  "linux-raw-sys",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "rustls"
+version = "0.21.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
+dependencies = [
+ "log",
+ "ring",
+ "rustls-webpki",
+ "sct",
+]
+
+[[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 = "rye"
-version = "0.17.0"
+version = "0.21.0"
 dependencies = [
  "age",
  "anyhow",
@@ -1781,6 +1795,7 @@ dependencies = [
  "clap_complete",
  "configparser",
  "console",
+ "ctrlc",
  "curl",
  "decompress",
  "dialoguer",
@@ -1788,6 +1803,7 @@ dependencies = [
  "git-testament",
  "globset",
  "hex",
+ "home",
  "indicatif",
  "junction",
  "license",
@@ -1807,7 +1823,6 @@ dependencies = [
  "serde_json",
  "sha2",
  "shlex",
- "simple-home-dir",
  "slug",
  "sysinfo",
  "tar",
@@ -1818,15 +1833,16 @@ dependencies = [
  "whattheshell",
  "which",
  "winapi",
+ "winreg",
  "zip",
- "zstd",
+ "zstd 0.13.0",
 ]
 
 [[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 = "salsa20"
@@ -1848,18 +1864,18 @@ 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]]
 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 = "scrypt"
@@ -1874,6 +1890,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "sct"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[package]]
 name = "secrecy"
 version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1884,46 +1910,55 @@ dependencies = [
 
 [[package]]
 name = "self-replace"
-version = "1.3.5"
+version = "1.3.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0e7c919783db74b5995f13506069227e4721d388bea4a8ac3055acac864ac16"
+checksum = "525db198616b2bcd0f245daf7bfd8130222f7ee6af9ff9984c19a61bf1160c55"
 dependencies = [
- "fastrand",
+ "fastrand 1.9.0",
  "tempfile",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "self_cell"
-version = "0.10.2"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e14e4d63b804dc0c7ec4a1e52bcb63f02c7ac94476755aa579edac21e01f915d"
+dependencies = [
+ "self_cell 1.0.3",
+]
+
+[[package]]
+name = "self_cell"
+version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ef965a420fe14fdac7dd018862966a4c14094f900e1650bbc71ddd7d580c8af"
+checksum = "58bf37232d3bb9a2c4e641ca2a11d83b5062066f88df7fed36c28772046d65ba"
 
 [[package]]
 name = "serde"
-version = "1.0.163"
+version = "1.0.196"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2"
+checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.163"
+version = "1.0.196"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e"
+checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.96"
+version = "1.0.112"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1"
+checksum = "4d1bd37ce2324cf3bf85e5a25f96eb4baf0d5aa6eba43e7ae8958870c4ec48ed"
 dependencies = [
  "itoa",
  "ryu",
@@ -1932,22 +1967,22 @@ dependencies = [
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.2"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93107647184f6027e3b7dcb2e11034cf95ffa1e3a682c67951963ac69c1c007d"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
 dependencies = [
  "serde",
 ]
 
 [[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",
- "digest 0.10.6",
+ "digest 0.10.7",
 ]
 
 [[package]]
@@ -1958,45 +1993,43 @@ checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
 
 [[package]]
 name = "shlex"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
-
-[[package]]
-name = "simple-home-dir"
-version = "0.1.2"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8cad354eef35a6c6020953afda6d4391d9fd41d6234d7bcd2f1d7c9f6f8105d"
-dependencies = [
- "windows-sys 0.48.0",
-]
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
 
 [[package]]
 name = "slug"
-version = "0.1.4"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3bc762e6a4b6c6fcaade73e77f9ebc6991b676f88bb2358bddb56560f073373"
+checksum = "3bd94acec9c8da640005f8e135a39fc0372e74535e6b368b7a04b875f784c8c4"
 dependencies = [
  "deunicode",
+ "wasm-bindgen",
 ]
 
 [[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 = "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.9.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
+
+[[package]]
 name = "stacker"
 version = "0.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2010,12 +2043,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "static_assertions"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
-
-[[package]]
 name = "strsim"
 version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2023,9 +2050,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[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"
@@ -2040,9 +2067,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.29"
+version = "2.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a"
+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2051,9 +2078,9 @@ dependencies = [
 
 [[package]]
 name = "sysinfo"
-version = "0.29.9"
+version = "0.29.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8d0e9cc2273cc8d31377bdd638d72e3ac3e5607b18621062b169d02787f1bab"
+checksum = "cd727fc423c2060f6c92d9534cef765c65a6ed3f428a03d7def74a8c4348e666"
 dependencies = [
  "cfg-if",
  "core-foundation-sys",
@@ -2066,9 +2093,9 @@ dependencies = [
 
 [[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",
@@ -2076,23 +2103,29 @@ dependencies = [
 ]
 
 [[package]]
+name = "target-lexicon"
+version = "0.12.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae"
+
+[[package]]
 name = "tempfile"
-version = "3.5.0"
+version = "3.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998"
+checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
 dependencies = [
  "cfg-if",
- "fastrand",
- "redox_syscall 0.3.5",
+ "fastrand 2.0.1",
+ "redox_syscall",
  "rustix",
- "windows-sys 0.45.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "terminal_size"
-version = "0.2.6"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237"
+checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
 dependencies = [
  "rustix",
  "windows-sys 0.48.0",
@@ -2100,31 +2133,33 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.47"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97a802ec30afc17eee47b2855fc72e0c4cd62be9b4efe6591edde0ec5bd68d8f"
+checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.47"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bb623b56e39ab7dcd4b1b98bb6c8f8d907ed255b18de254088016b27a8ee19b"
+checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "time"
-version = "0.3.21"
+version = "0.3.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f3403384eaacbca9923fa06940178ac13e4edb725486d70e8e15881d0c836cc"
+checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e"
 dependencies = [
+ "deranged",
  "itoa",
+ "powerfmt",
  "serde",
  "time-core",
  "time-macros",
@@ -2132,24 +2167,24 @@ dependencies = [
 
 [[package]]
 name = "time-core"
-version = "0.1.1"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.2.9"
+version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "372950940a5f07bf38dbe211d7283c9e6d7327df53794992d293e534c733d09b"
+checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f"
 dependencies = [
  "time-core",
 ]
 
 [[package]]
 name = "tinystr"
-version = "0.7.1"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ac3f5b6856e931e15e07b478e98c8045239829a65f9156d4fa7e7788197a5ef"
+checksum = "83c02bf3c538ab32ba913408224323915f4ef9a6d61c0e85d493f355921c0ece"
 dependencies = [
  "displaydoc",
 ]
@@ -2180,9 +2215,9 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.7.3"
+version = "0.8.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b403acf6f2bb0859c93c7f0d967cb4a75a7ac552100f9322faf64dc047669b21"
+checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
 dependencies = [
  "serde",
  "serde_spanned",
@@ -2192,18 +2227,18 @@ dependencies = [
 
 [[package]]
 name = "toml_datetime"
-version = "0.6.1"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "toml_edit"
-version = "0.19.8"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13"
+checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
 dependencies = [
  "indexmap",
  "serde",
@@ -2214,11 +2249,10 @@ dependencies = [
 
 [[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-attributes",
@@ -2227,20 +2261,20 @@ dependencies = [
 
 [[package]]
 name = "tracing-attributes"
-version = "0.1.24"
+version = "0.1.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "tracing-core"
-version = "0.1.31"
+version = "0.1.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
 dependencies = [
  "once_cell",
 ]
@@ -2256,24 +2290,24 @@ 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 = "unic-langid"
-version = "0.9.1"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "398f9ad7239db44fd0f80fe068d12ff22d78354080332a5077dc6f52f14dcf2f"
+checksum = "238722e6d794ed130f91f4ea33e01fcff4f188d92337a21297892521c72df516"
 dependencies = [
  "unic-langid-impl",
 ]
 
 [[package]]
 name = "unic-langid-impl"
-version = "0.9.1"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e35bfd2f2b8796545b55d7d3fd3e89a0613f68a0d1c8bc28cb7ff96b411a35ff"
+checksum = "4bd55a2063fdea4ef1f8633243a7b0524cbeef1905ae04c31a1c9b9775c55bc6"
 dependencies = [
  "serde",
  "tinystr",
@@ -2281,15 +2315,15 @@ dependencies = [
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.13"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+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-normalization"
@@ -2308,15 +2342,15 @@ checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
 
 [[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 = "universal-hash"
-version = "0.5.0"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5"
+checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"
 dependencies = [
  "crypto-common",
  "subtle",
@@ -2329,10 +2363,34 @@ 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.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8cdd25c339e200129fe4de81451814e5228c9b771d57378817d6117cc2b3f97"
+dependencies = [
+ "base64 0.21.7",
+ "flate2",
+ "log",
+ "once_cell",
+ "rustls",
+ "rustls-webpki",
+ "serde",
+ "serde_json",
+ "url",
+ "webpki-roots",
+]
+
+[[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",
@@ -2342,9 +2400,9 @@ dependencies = [
 
 [[package]]
 name = "uuid"
-version = "1.3.2"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dad5567ad0cf5b760e5665964bec1b47dfd077ba8a2544b513f3556d3d239a2"
+checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
 
 [[package]]
 name = "vcpkg"
@@ -2360,9 +2418,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[package]]
 name = "walkdir"
-version = "2.3.3"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
+checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
 dependencies = [
  "same-file",
  "winapi-util",
@@ -2381,10 +2439,70 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
+name = "wasm-bindgen"
+version = "0.2.90"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.90"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.90"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.90"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.90"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b"
+
+[[package]]
+name = "webpki-roots"
+version = "0.25.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10"
+
+[[package]]
 name = "whattheshell"
-version = "1.0.1"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d2a141eb1ec499706110282b3f2d2b44f28872b6efec92ee76e3b3fc900745d"
+checksum = "7c94d2698698cb1322e20292460fd158373af5fb2802afb6bea9ee17628efddb"
 dependencies = [
  "sysinfo",
  "thiserror",
@@ -2392,13 +2510,15 @@ dependencies = [
 
 [[package]]
 name = "which"
-version = "4.4.0"
+version = "6.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269"
+checksum = "7fa5e0c10bf77f44aac573e498d1a82d5fbd5e91f6fc0a99e7be4b38e85e101c"
 dependencies = [
  "either",
- "libc",
+ "home",
  "once_cell",
+ "rustix",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -2419,9 +2539,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",
 ]
@@ -2434,161 +2554,156 @@ 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 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-sys"
-version = "0.45.0"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 dependencies = [
- "windows-targets 0.42.2",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
 name = "windows-sys"
-version = "0.48.0"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.48.0",
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
 name = "windows-targets"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
 dependencies = [
- "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",
+ "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.48.0"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
+checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
 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.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.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.48.0"
+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.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.48.0"
+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.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.48.0"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.48.0"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.48.0"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.48.0"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.48.0"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
 
 [[package]]
 name = "winnow"
-version = "0.4.6"
+version = "0.5.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61de7bac303dc551fe038e2b3cef0f571087a47571ea6e79a87692ac99b99699"
+checksum = "1931d78a9c73861da0134f453bb1f790ce49b2e30eba8410b4b79bac72b46a2d"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
+name = "winreg"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5"
+dependencies = [
+ "cfg-if",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
 name = "x25519-dalek"
 version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2601,18 +2716,40 @@ 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",
+ "rustix",
+]
+
+[[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.48",
 ]
 
 [[package]]
 name = "zeroize"
-version = "1.6.0"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9"
+checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
 dependencies = [
  "zeroize_derive",
 ]
@@ -2625,14 +2762,14 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "zip"
-version = "0.6.5"
+version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e92305c174683d78035cbf1b70e18db6329cc0f1b9cae0a52ca90bf5bfe7125"
+checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261"
 dependencies = [
  "byteorder",
  "bzip2",
@@ -2644,30 +2781,47 @@ 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 = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c"
+dependencies = [
+ "zstd-safe 6.0.6",
+]
+
+[[package]]
+name = "zstd"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76eea132fb024e0e13fd9c2f5d5d595d8a967aa72382ac2f9d39fcc95afd0806"
+checksum = "bffb3309596d527cfcba7dfc6ed6052f1d39dfbd7c867aa2e865e4a449c10110"
 dependencies = [
- "zstd-safe",
+ "zstd-safe 7.0.0",
 ]
 
 [[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",
 ]
 
 [[package]]
+name = "zstd-safe"
+version = "7.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43747c7422e2924c11144d5229878b98180ef8b06cca4ab5af37afc8a8d8ea3e"
+dependencies = [
+ "zstd-sys",
+]
+
+[[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/development/tools/rye/default.nix b/pkgs/development/tools/rye/default.nix
index 44100627ca3d..6ed67fd5bdff 100644
--- a/pkgs/development/tools/rye/default.nix
+++ b/pkgs/development/tools/rye/default.nix
@@ -12,20 +12,20 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rye";
-  version = "0.17.0";
+  version = "0.21.0";
 
   src = fetchFromGitHub {
     owner = "mitsuhiko";
     repo = "rye";
     rev = "refs/tags/${version}";
-    hash = "sha256-4vf+jmEu78LYFAcRrGdC02y+NsLM7zoBpHKCeaS60bY=";
+    hash = "sha256-H41gJNNrelPyCP1EYXIjwEc+1v2lnw9xmm0J+12lENA=";
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
       "dialoguer-0.10.4" = "sha256-WDqUKOu7Y0HElpPxf2T8EpzAY3mY8sSn9lf0V0jyAFc=";
-      "monotrail-utils-0.0.1" = "sha256-4x5jnXczXnToU0QXpFalpG5A+7jeyaEBt8vBwxbFCKQ=";
+      "monotrail-utils-0.0.1" = "sha256-h2uxWsDrU9j2C5OWbYsfGz0S1VsPzYrfksQVEkwd2ys=";
     };
   };
 
diff --git a/pkgs/development/tools/schemacrawler/default.nix b/pkgs/development/tools/schemacrawler/default.nix
index 4328965c3cc3..5093011ca3dd 100644
--- a/pkgs/development/tools/schemacrawler/default.nix
+++ b/pkgs/development/tools/schemacrawler/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "schemacrawler";
-  version = "16.20.7";
+  version = "16.20.8";
 
   src = fetchzip {
     url = "https://github.com/schemacrawler/SchemaCrawler/releases/download/v${finalAttrs.version}/schemacrawler-${finalAttrs.version}-bin.zip";
-    hash = "sha256-5TyciQVrJhu8RlT6feHEH9H43fi1NWJX1dGipebf46k=";
+    hash = "sha256-uNk85AqdctxelImyx06yCsY15AxMFEEclOyao6Hu89A=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/sd-local/default.nix b/pkgs/development/tools/sd-local/default.nix
index 56fff1c2d56b..b8a01e2633b5 100644
--- a/pkgs/development/tools/sd-local/default.nix
+++ b/pkgs/development/tools/sd-local/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "sd-local";
-  version = "1.0.51";
+  version = "1.0.52";
 
   src = fetchFromGitHub {
     owner = "screwdriver-cd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-CKbOgZ9dnQ5ao5fQYMbPhMNS5ww4N54ECHKhhdBEII8=";
+    sha256 = "sha256-2EWLi42ztuohouhMZ3DXa2wHx1tgPAUH0IKbn6lQeF0=";
   };
 
   vendorHash = "sha256-uHu8jPPQCJAhXE+Lzw5/9wyw7sL5REQJsPsYII+Nusc=";
diff --git a/pkgs/development/tools/sem/default.nix b/pkgs/development/tools/sem/default.nix
index fc4b32785d39..76741e773110 100644
--- a/pkgs/development/tools/sem/default.nix
+++ b/pkgs/development/tools/sem/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "sem";
-  version = "0.28.5";
+  version = "0.28.6";
 
   src = fetchFromGitHub {
     owner = "semaphoreci";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-XprWg6JZBBqHQmbdNyKaNLFyxTGkaGzMPLanISYIjYY=";
+    sha256 = "sha256-8zGgqa0z3KYSYVaYlSnTET7QJ+Mdp+FVJ5MD2pyh7Ns=";
   };
 
   vendorHash = "sha256-p8+M+pRp12P7tYlFpXjU94JcJOugQpD8rFdowhonh74=";
diff --git a/pkgs/development/tools/semantic-release/default.nix b/pkgs/development/tools/semantic-release/default.nix
index 87533c0e3359..ee550a7c1f7a 100644
--- a/pkgs/development/tools/semantic-release/default.nix
+++ b/pkgs/development/tools/semantic-release/default.nix
@@ -8,16 +8,16 @@
 
 buildNpmPackage rec {
   pname = "semantic-release";
-  version = "22.0.12";
+  version = "23.0.0";
 
   src = fetchFromGitHub {
     owner = "semantic-release";
     repo = "semantic-release";
     rev = "v${version}";
-    hash = "sha256-enBfQapJdssMiwu07f3EZO80iTy+/XLot2W+rHfmN4I=";
+    hash = "sha256-UXh/3ziNuTvLjd54l7oUOZgbu0+Hy4+a5TUp9dEvAJw=";
   };
 
-  npmDepsHash = "sha256-8m6j4OHupcrU21MHvePmqNAAx2ANEu5YVV96WnTxTL4=";
+  npmDepsHash = "sha256-RgqerFVG0qdJ52zTvsgtczGcdKw6taiIpgA2LHPELws=";
 
   dontNpmBuild = true;
 
diff --git a/pkgs/development/tools/sentry-cli/default.nix b/pkgs/development/tools/sentry-cli/default.nix
index 242fc6b7329c..789b02112a4e 100644
--- a/pkgs/development/tools/sentry-cli/default.nix
+++ b/pkgs/development/tools/sentry-cli/default.nix
@@ -10,13 +10,13 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "sentry-cli";
-  version = "2.23.2";
+  version = "2.27.0";
 
   src = fetchFromGitHub {
     owner = "getsentry";
     repo = "sentry-cli";
     rev = version;
-    sha256 = "sha256-txxDA/8pQDiZsoxrdWz6JZmjpyeILWHl1rUHzPacJN8=";
+    sha256 = "sha256-dhIja1f+57QdgE0uYBNbgSsmFNE7h0GdcyBx4Z8bGpA=";
   };
   doCheck = false;
 
@@ -26,7 +26,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ CoreServices Security SystemConfiguration ];
   nativeBuildInputs = [ pkg-config ];
 
-  cargoHash = "sha256-KytXqILji1pbiMz7OX+O5B2bw5MMlKf/MYh13+nd+bg=";
+  cargoHash = "sha256-zLTdpbBy+41tVEItSjkHCu+D3YKiBJqlpAPMpUt5+VM=";
 
   meta = with lib; {
     homepage = "https://docs.sentry.io/cli/";
diff --git a/pkgs/development/tools/skopeo/default.nix b/pkgs/development/tools/skopeo/default.nix
index a875bacb36af..7afeb6313946 100644
--- a/pkgs/development/tools/skopeo/default.nix
+++ b/pkgs/development/tools/skopeo/default.nix
@@ -18,13 +18,13 @@
 
 buildGoModule rec {
   pname = "skopeo";
-  version = "1.14.0";
+  version = "1.14.2";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "containers";
     repo = "skopeo";
-    hash = "sha256-6PSxYM6u727vHf4FP0ju0TAuqj4R4bxQEdyZHvC4qBA=";
+    hash = "sha256-js1Y7EGXinzOMMX9LjsG6D57UhGtZcvesOw/JDEKvoU=";
   };
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/development/tools/snazy/default.nix b/pkgs/development/tools/snazy/default.nix
index a0cf2c7c97d8..7abe2fd98cfc 100644
--- a/pkgs/development/tools/snazy/default.nix
+++ b/pkgs/development/tools/snazy/default.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "snazy";
-  version = "0.52.1";
+  version = "0.52.17";
 
   src = fetchFromGitHub {
     owner = "chmouel";
     repo = pname;
     rev = version;
-    hash = "sha256-OoUu42vRe4wPaunb2vJ9ITd0Q76pBI/yC8FI0J+J+ts=";
+    hash = "sha256-0r5xhmU9a9I+q24mjJ+C4EKK1Nw/67YThuBFibAx3Dw=";
   };
 
-  cargoHash = "sha256-gUeKZNSo/zJ4Nqy4Fpk5JuvFylGBlKJu+Nw9XWXVx0g=";
+  cargoHash = "sha256-ljYsF5lBRqiTqx9nta5h/75052GWOBJ9uJnqZkWJvwI=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/development/tools/spirv-tools/default.nix b/pkgs/development/tools/spirv-tools/default.nix
index 8827d6b709e7..648b2615166c 100644
--- a/pkgs/development/tools/spirv-tools/default.nix
+++ b/pkgs/development/tools/spirv-tools/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "spirv-tools";
-  version = "1.3.268.0";
+  version = "1.3.275.0";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "SPIRV-Tools";
     rev = "vulkan-sdk-${version}";
-    hash = "sha256-Bned5Pa6zCFByfNvqD0M5t3l4uAJYkDlpe6wu8e7a3U=";
+    hash = "sha256-RzGvoDt1Qc+f6mZsfs99MxX4YB3yFc5FP92Yx/WGrsI=";
   };
 
   # The cmake options are sufficient for turning on static building, but not
diff --git a/pkgs/development/tools/spring-boot-cli/default.nix b/pkgs/development/tools/spring-boot-cli/default.nix
index fe4780176a67..5e92ac17f7bc 100644
--- a/pkgs/development/tools/spring-boot-cli/default.nix
+++ b/pkgs/development/tools/spring-boot-cli/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "spring-boot-cli";
-  version = "3.2.0";
+  version = "3.2.2";
 
   src = fetchzip {
     url = "mirror://maven/org/springframework/boot/${finalAttrs.pname}/${finalAttrs.version}/${finalAttrs.pname}-${finalAttrs.version}-bin.zip";
-    hash = "sha256-C9hWIH6lFDa9dzH5iYZlawt+7SSPt3gxcXM62qd0zbo=";
+    hash = "sha256-Jlczhy4Nfquhrm+SO/MRfBsHrHRHDkU4TUTTPTH7aVk=";
   };
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
diff --git a/pkgs/development/tools/sqlboiler/default.nix b/pkgs/development/tools/sqlboiler/default.nix
index 432582dbc46e..eccb479aa5a4 100644
--- a/pkgs/development/tools/sqlboiler/default.nix
+++ b/pkgs/development/tools/sqlboiler/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "sqlboiler";
-  version = "4.15.0";
+  version = "4.16.1";
 
   src = fetchFromGitHub {
     owner = "volatiletech";
     repo = "sqlboiler";
     rev = "refs/tags/v${version}";
-    hash = "sha256-MT1tjVCDaFB9HfjlGGnf6jTiPdKcrDamgp2nTpIarqY=";
+    hash = "sha256-MmZ2TZZ06eiz05bkEm6E8tmGRVkInBZJGHbuPN4fMMY=";
   };
 
-  vendorHash = "sha256-tZ1RQGmeDv4rtdF1WTRQV1K4Xy1AgIatLPPexnHJnkA=";
+  vendorHash = "sha256-BTrQPWThfJ7gWXi/Y1l/s2BmkW5lVYS/PP0WRwntQxA=";
 
   tags = [
     "mysql"
diff --git a/pkgs/development/tools/stylua/default.nix b/pkgs/development/tools/stylua/default.nix
index 23fac8ddac71..de4a20ee36fe 100644
--- a/pkgs/development/tools/stylua/default.nix
+++ b/pkgs/development/tools/stylua/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "stylua";
-  version = "0.19.1";
+  version = "0.20.0";
 
   src = fetchFromGitHub {
     owner = "johnnymorganz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Bw9+BUvZC4sRLFyU5K6FHsWVZ3PTlMAonRmTSwV5AwU=";
+    sha256 = "sha256-bqUmLtJLjImWqe06CeIWIU4FP+/Vxszp2yKMosVeyZM=";
   };
 
-  cargoSha256 = "sha256-bainEM4eRMNyecSBi5k1ifjDULWdXed6GP6i10IVA+w=";
+  cargoHash = "sha256-EMHt9oskPJCeAu/5VG6PaMt/4NTmNOaFTM5TMOy0BV8=";
 
   # remove cargo config so it can find the linker on aarch64-unknown-linux-gnu
   postPatch = ''
diff --git a/pkgs/development/tools/subxt/default.nix b/pkgs/development/tools/subxt/default.nix
index 9e95b7125661..fd557c96b04f 100644
--- a/pkgs/development/tools/subxt/default.nix
+++ b/pkgs/development/tools/subxt/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "subxt";
-  version = "0.33.0";
+  version = "0.34.0";
 
   src = fetchFromGitHub {
     owner = "paritytech";
     repo = "subxt";
     rev = "v${version}";
-    hash = "sha256-ZTBWGNbCwe6GyGXk/8QBGLiAp4ZO7VZuJvtZicJsvgA=";
+    hash = "sha256-1SkAYJ6YdZeaD3c1pekd/nwTEI9Zt/2fmA3Y7PPLxoE=";
   };
 
-  cargoHash = "sha256-FBtwmItzT5uFsKCx36POrYk5qDmlX9Nkx0E3hx17HqI=";
+  cargoHash = "sha256-a3LPvPCQklmrtC9XpxARgYeL4bmj2vFsLbiRGjNUGio=";
 
   # Only build the command line client
   cargoBuildFlags = [ "--bin" "subxt" ];
diff --git a/pkgs/development/tools/supabase-cli/default.nix b/pkgs/development/tools/supabase-cli/default.nix
index 3d80a27d59ad..ed4cb8b8fe5d 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.131.2";
+  version = "1.141.0";
 
   src = fetchFromGitHub {
     owner = "supabase";
     repo = "cli";
     rev = "v${version}";
-    hash = "sha256-6IjVROKxDiLod8XWWndnxHQGnk8DJc1sjzJxLWDkRL0=";
+    hash = "sha256-LyArcez2x2aGb8rH9IQX7E8HMyhpfjzBlwdLs15lKD8=";
   };
 
-  vendorHash = "sha256-/hfFydNHDK6shCC4iIkdP8r1ZO9niMIWZ/Ypj/DGj+c=";
+  vendorHash = "sha256-WKfR1HzgghuOF4brNiAAfOul0q4reg3YRxI3AzyOdFM=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/development/tools/symfony-cli/default.nix b/pkgs/development/tools/symfony-cli/default.nix
index db2a4165ac37..453b96242638 100644
--- a/pkgs/development/tools/symfony-cli/default.nix
+++ b/pkgs/development/tools/symfony-cli/default.nix
@@ -10,14 +10,14 @@
 
 buildGoModule rec {
   pname = "symfony-cli";
-  version = "5.8.2";
-  vendorHash = "sha256-bscRqFYV2qzTmu04l00/iMsFQR5ITPBFVr9BQwVGFU8=";
+  version = "5.8.6";
+  vendorHash = "sha256-ACK0JCaS1MOCgUi2DMEjIcKf/nMCcrdDyIdioBZv7qw=";
 
   src = fetchFromGitHub {
     owner = "symfony-cli";
     repo = "symfony-cli";
     rev = "v${version}";
-    hash = "sha256-P5VitZL6KYplMpWdwTkzJEqf5UoSB5HaH/0kL2CbUEA=";
+    hash = "sha256-lZ4jPmqPGyWp8xS156XXl6s4ZfNbU4M5xJy25nRL1Bs=";
   };
 
   ldflags = [
diff --git a/pkgs/development/tools/templ/default.nix b/pkgs/development/tools/templ/default.nix
index 76a006654fb2..ef54d183e48b 100644
--- a/pkgs/development/tools/templ/default.nix
+++ b/pkgs/development/tools/templ/default.nix
@@ -5,7 +5,7 @@
 
 buildGoModule rec {
   pname = "templ";
-  version = "0.2.513";
+  version = "0.2.543";
 
   subPackages = [ "cmd/templ" ];
 
@@ -21,10 +21,10 @@ buildGoModule rec {
     owner = "a-h";
     repo = "templ";
     rev = "refs/tags/v${version}";
-    hash = "sha256-LWvwtAX1KBK33FIyY6alkG0RBXL6Ce4fR0cklQfwaRk=";
+    hash = "sha256-A99GBzxmrAhjPzo5qj6V3YWkQJavs9j9beMtNYqGnqo=";
   };
 
-  vendorHash = "sha256-buJArvaaKGRg3yS7BdcVY0ydyi4zah57ABeo+CHkZQU=";
+  vendorHash = "sha256-4tHofTnSNI/MBmrGdGsLNoXjxUC0+Gwp3PzzUwfUkQU=";
 
   meta = with lib; {
     description = "A language for writing HTML user interfaces in Go";
diff --git a/pkgs/development/tools/the-way/default.nix b/pkgs/development/tools/the-way/default.nix
index a161728657ac..9418afb6cfa6 100644
--- a/pkgs/development/tools/the-way/default.nix
+++ b/pkgs/development/tools/the-way/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "the-way";
-  version = "0.20.2";
+  version = "0.20.3";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-jUo46NHjgSFOV7fsqh9Ki0QtTGfoaPjQ87/a66zBz1Q=";
+    sha256 = "sha256-/vG5LkQiA8iPP+UV1opLeJwbYfmzqYwpsoMizpGT98o=";
   };
 
-  cargoHash = "sha256-nmVsg8LX3di7ZAvvDuPQ3PXlLjs+L6YFTzwXRAkcxig=";
+  cargoHash = "sha256-iZxV099582LuZ8A3uOsKPyekAQG2cQusLZhW+W1wW/8=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/development/tools/trunk-io/default.nix b/pkgs/development/tools/trunk-io/default.nix
index 78b5247a4911..0428b8489547 100644
--- a/pkgs/development/tools/trunk-io/default.nix
+++ b/pkgs/development/tools/trunk-io/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "trunk-io";
-  version = "1.2.7";
+  version = "1.3.0";
 
   src = fetchurl {
     url = "https://trunk.io/releases/launcher/${finalAttrs.version}/trunk";
-    hash = "sha256-i2m+6Y6gvkHYwzESJv0DkLcHkXqz+g4e43TV6u1UTj8=";
+    hash = "sha256-v9WJb9oIs5k2ZIX80L83dRtEarTiVsXBtXBta0sP++A=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/development/tools/trunk/default.nix b/pkgs/development/tools/trunk/default.nix
index 1c933c6179c4..e7b06a18b3c1 100644
--- a/pkgs/development/tools/trunk/default.nix
+++ b/pkgs/development/tools/trunk/default.nix
@@ -12,13 +12,13 @@ SystemConfiguration
 
 rustPlatform.buildRustPackage rec {
   pname = "trunk";
-  version = "0.18.3";
+  version = "0.18.7";
 
   src = fetchFromGitHub {
     owner = "thedodd";
     repo = "trunk";
     rev = "v${version}";
-    hash = "sha256-R7i2tY8wd7Jhyx+zs+OqkZ+K+d/triBRqaAsATtCM+o=";
+    hash = "sha256-TNF1J/hQ/b89Qo5gkYkYNZ9EQ/21n2YD0fA8cLQic5g=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -28,7 +28,7 @@ rustPlatform.buildRustPackage rec {
   # requires network
   checkFlags = [ "--skip=tools::tests::download_and_install_binaries" ];
 
-  cargoHash = "sha256-70fzBqF/6bDStvhpc7IV4ekVEinBFqiCScK4X0HTkgY=";
+  cargoHash = "sha256-kqOaqhxBWcduu3Y1ShI7wko10dubJOs3W4FRZMaRNkc=";
 
   # the dependency css-minify contains both README.md and Readme.md,
   # which causes a hash mismatch on systems with a case-insensitive filesystem
diff --git a/pkgs/development/tools/ttfb/default.nix b/pkgs/development/tools/ttfb/default.nix
index 550a8f1a8762..f024280c0870 100644
--- a/pkgs/development/tools/ttfb/default.nix
+++ b/pkgs/development/tools/ttfb/default.nix
@@ -1,40 +1,35 @@
 { darwin
 , fetchCrate
 , lib
-, openssl
-, pkg-config
 , rustPlatform
 , stdenv
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "ttfb";
-  version = "1.7.0";
+  version = "1.10.0";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-GxjG8pyE2rY0h1dpAo+HRUbP31I5Pm4h1fAb6R7V+qU=";
+    hash = "sha256-94gBofb7H7+qU50+cp+rq14Vtbk2vuXFQksNITvICm4=";
   };
 
-  cargoHash = "sha256-YdbVtVKt0bKb1R5IQxf9J/0ZA3ZHH+oZ8ryX6f4cGsY=";
+  buildInputs = lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Security
+  ];
+
+  cargoHash = "sha256-CUisxtUQXkStqSZikIoAN0GwpUjvQqon7KqI0beHL5U=";
 
   # The bin feature activates all dependencies of the binary. Otherwise,
   # only the library is build.
   buildFeatures = [ "bin" ];
 
-  nativeBuildInputs = [ pkg-config ];
-
-  buildInputs = [
-    openssl
-  ] ++ lib.optionals stdenv.isDarwin [
-    darwin.apple_sdk.frameworks.Security
-  ];
-
   meta = {
     description = "CLI-Tool to measure the TTFB (time to first byte) of HTTP(S) requests";
     longDescription = ''
-      This crate measures the times of DNS lookup, TCP connect, TLS handshake, and HTTP's TTFB
-      for a given IP or domain.
+      ttfb measure the TTFB (time to first byte) of HTTP(S) requests. This includes data
+      of intermediate steps, such as the relative and absolute timings of DNS lookup, TCP
+      connect, and TLS handshake.
     '';
     homepage = "https://github.com/phip1611/ttfb";
     changelog = "https://github.com/phip1611/ttfb/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/development/tools/turso-cli/default.nix b/pkgs/development/tools/turso-cli/default.nix
index 1aacba1646b8..09f96c2d183a 100644
--- a/pkgs/development/tools/turso-cli/default.nix
+++ b/pkgs/development/tools/turso-cli/default.nix
@@ -1,20 +1,20 @@
 {
   lib,
   stdenv,
-  buildGo121Module,
+  buildGoModule,
   fetchFromGitHub,
   installShellFiles,
   nix-update-script,
 }:
-buildGo121Module rec {
+buildGoModule rec {
   pname = "turso-cli";
-  version = "0.87.8";
+  version = "0.88.3";
 
   src = fetchFromGitHub {
     owner = "tursodatabase";
     repo = "turso-cli";
     rev = "v${version}";
-    hash = "sha256-7JdWAMMNOBRWx2sU8mQ2kLZBVDsXaVszlOQos2Ybiy4=";
+    hash = "sha256-tPeoLGYJRMXFVI09fupspdQMSMjF2Trdo2GlkoWs7wA=";
   };
 
   vendorHash = "sha256-rTeW2RQhcdwJTAMQELm4cdObJbm8gk/I2Qz3Wk3+zpI=";
diff --git a/pkgs/development/tools/twilio-cli/default.nix b/pkgs/development/tools/twilio-cli/default.nix
index c7711151863e..36d2f2dccc67 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.17.0";
+  version = "5.17.1";
 
   src = fetchzip {
     url = "https://twilio-cli-prod.s3.amazonaws.com/twilio-v${finalAttrs.version}/twilio-v${finalAttrs.version}.tar.gz";
-    hash = "sha256-7BJ/9dqEKBjH89XDyIonRbfCn8cyjvgtV2PwdzGIUro=";
+    hash = "sha256-wgZdivfFjkX3bMmBLWY5vy32pXE7CqEkRGQqIhJrcdE=";
   };
 
   buildInputs = [ nodejs-slim ];
diff --git a/pkgs/development/tools/uftrace/default.nix b/pkgs/development/tools/uftrace/default.nix
index 128de43a9706..26bb1cf60e00 100644
--- a/pkgs/development/tools/uftrace/default.nix
+++ b/pkgs/development/tools/uftrace/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "uftrace";
-  version = "0.15";
+  version = "0.15.2";
 
   src = fetchFromGitHub {
     owner = "namhyung";
     repo = "uftrace";
     rev = "v${version}";
-    sha256 = "sha256-VK2lERzwsdXVOxgxRAA2RxeqBtOeINJDnsafnn461VQ=";
+    sha256 = "sha256-FfTt1S7X7FakKXWbmJJ1HMYcu/tG/UFknz8XmEPbPUo=";
   };
 
   postUnpack = ''
diff --git a/pkgs/development/tools/upbound/default.nix b/pkgs/development/tools/upbound/default.nix
index c4b2a421b431..cfb667d55842 100644
--- a/pkgs/development/tools/upbound/default.nix
+++ b/pkgs/development/tools/upbound/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "upbound";
-  version = "0.21.0";
+  version = "0.24.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "up";
     rev = "v${version}";
-    sha256 = "sha256-SvnmdpsdXbPSC+4inoMvu55az33Zucqf4c3yQ0g6EMw=";
+    sha256 = "sha256-AtaO4O9UbA44OnZl5ARQkyPHoBYnuwdFd91DEZPN+Co=";
   };
 
-  vendorHash = "sha256-ai+Mro/ooUElJJq8BbnCo9PupIAwlanDeh+oe5otJJ4=";
+  vendorHash = "sha256-jHVwI5fQbS/FhRptRXtNezG1djaZKHJgpPJfuEH/zO0=";
 
   subPackages = [ "cmd/docker-credential-up" "cmd/up" ];
 
diff --git a/pkgs/development/tools/vsce/default.nix b/pkgs/development/tools/vsce/default.nix
index 911ee57a6932..5ba007818e3b 100644
--- a/pkgs/development/tools/vsce/default.nix
+++ b/pkgs/development/tools/vsce/default.nix
@@ -12,16 +12,16 @@
 
 buildNpmPackage rec {
   pname = "vsce";
-  version = "2.22.0";
+  version = "2.23.0";
 
   src = fetchFromGitHub {
     owner = "microsoft";
     repo = "vscode-vsce";
     rev = "v${version}";
-    hash = "sha256-zpZ/PsqZ9yRDKTXkSrcBgSxYer7JdjNZqsseHwfzkEY=";
+    hash = "sha256-2s8hG3HNDQnuwFXZX1mCTSbKCm4n7YAzhHDaWVYTyys=";
   };
 
-  npmDepsHash = "sha256-Difk9a9TYmfwzP9SawEuaxm7iHVjdfO+FxFCE7aEMzM=";
+  npmDepsHash = "sha256-1PVUDEecFW+lFmZOZUTlgeKsLwLK9O4vFHi6gOLjBfo=";
 
   postPatch = ''
     substituteInPlace package.json --replace '"version": "0.0.0"' '"version": "${version}"'
@@ -44,5 +44,6 @@ buildNpmPackage rec {
     description = "Visual Studio Code Extension Manager";
     maintainers = with maintainers; [ aaronjheng ];
     license = licenses.mit;
+    mainProgram = "vsce";
   };
 }
diff --git a/pkgs/development/tools/vulkan-validation-layers/default.nix b/pkgs/development/tools/vulkan-validation-layers/default.nix
index 09a11cef84f4..1d0a39fb2b8b 100644
--- a/pkgs/development/tools/vulkan-validation-layers/default.nix
+++ b/pkgs/development/tools/vulkan-validation-layers/default.nix
@@ -23,13 +23,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "vulkan-validation-layers";
-  version = "1.3.268.0";
+  version = "1.3.275.0";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "Vulkan-ValidationLayers";
     rev = "vulkan-sdk-${version}";
-    hash = "sha256-DwkSUclStYKe54tC1H3jMv1KOSScgqf25tR5ajQZ6os=";
+    hash = "sha256-hJx8gn0zCN3+DhO6niylZJXPHgQ+VhQV5tL8qAeRaUg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/tools/vultr-cli/default.nix b/pkgs/development/tools/vultr-cli/default.nix
index 0cd9c6acd05f..e3be6f0366fd 100644
--- a/pkgs/development/tools/vultr-cli/default.nix
+++ b/pkgs/development/tools/vultr-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "vultr-cli";
-  version = "2.21.0";
+  version = "2.22.0";
 
   src = fetchFromGitHub {
     owner = "vultr";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-sIxAl4mI29RfJbGk/pvCSxUva8O9sXcwEIWBfY+h72Q=";
+    hash = "sha256-DdiMrmvLa2ZaZen//+Qz4UxZwvn8DNgH9mYp/Q8Z4Uw=";
   };
 
-  vendorHash = "sha256-d4EK9SLmIyt/N+29a7p7nxHkX0m0pAOMH7+G1tLbJGk=";
+  vendorHash = "sha256-3sXqpeOZSiysZYOv15c+ZkMZOwqy3UCkvBEB1szaWFA=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/development/tools/web-ext/default.nix b/pkgs/development/tools/web-ext/default.nix
index da414797c2bc..bb9cda866e7f 100644
--- a/pkgs/development/tools/web-ext/default.nix
+++ b/pkgs/development/tools/web-ext/default.nix
@@ -7,16 +7,16 @@
 
 buildNpmPackage rec {
   pname = "web-ext";
-  version = "7.10.0";
+  version = "7.11.0";
 
   src = fetchFromGitHub {
     owner = "mozilla";
     repo = "web-ext";
     rev = version;
-    hash = "sha256-VXvs4Z5cOt+lJ1JReApynpz/TufJgIVaO3dszS3Gvb4=";
+    hash = "sha256-tXYqAAzxAFQGREkNGgBrHLp7ukRDMtr0bPYW7hOEniY=";
   };
 
-  npmDepsHash = "sha256-ovLVWOrQ//aJPJqzCJQS+/Tnn4Z75OR69e7ACevKWCA=";
+  npmDepsHash = "sha256-uKAEWe28zUgE7Fv00sGXD5dKje/pHh22yJlYtk+7tN8=";
 
   npmBuildFlags = [ "--production" ];
 
diff --git a/pkgs/development/tools/xc/default.nix b/pkgs/development/tools/xc/default.nix
index 441c995517f6..0e09b77e453e 100644
--- a/pkgs/development/tools/xc/default.nix
+++ b/pkgs/development/tools/xc/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "xc";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "joerdav";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ndaffdU+DYuILZzAwsjLTNWFWbq7CrTcAYBA0j3T3gA=";
+    sha256 = "sha256-vTyCS85xbJnAgbasWD6LFxij9EezzlJ1pyvCJptqmOU=";
   };
 
-  vendorHash = "sha256-AwlXX79L69dv6wbFtlbHAeZRuOeDy/r6KSiWwjoIgWw=";
+  vendorHash = "sha256-EbIuktQ2rExa2DawyCamTrKRC1yXXMleRB8/pcKFY5c=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/development/tools/ytt/default.nix b/pkgs/development/tools/ytt/default.nix
index 1df8887afe68..fc050ab9c9b6 100644
--- a/pkgs/development/tools/ytt/default.nix
+++ b/pkgs/development/tools/ytt/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "ytt";
-  version = "0.46.3";
+  version = "0.47.0";
 
   src = fetchFromGitHub {
     owner = "vmware-tanzu";
     repo = "carvel-ytt";
     rev = "v${version}";
-    sha256 = "sha256-K2+5NplyQuvc78NnNDiQhfrewqn84jDbiAyN8J9iTm0=";
+    sha256 = "sha256-aoKgXagCygK4pzRHw5Nf8LCzpzZd2X77th9tJA5f1aA=";
   };
 
   vendorHash = null;
diff --git a/pkgs/development/tools/zed/default.nix b/pkgs/development/tools/zed/default.nix
index 68a84d53a502..6164b6d4c624 100644
--- a/pkgs/development/tools/zed/default.nix
+++ b/pkgs/development/tools/zed/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "zed";
-  version = "1.12.0";
+  version = "1.13.0";
 
   src = fetchFromGitHub {
     owner = "brimdata";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-mBJmAV7ax4F61gP8yeiJj/EQyJi3zaex6jT/CKzR3LU=";
+    sha256 = "sha256-xyTHCBvklK8x6V7WsWDYytnVEfLcja78crvs62WJJ9o=";
   };
 
-  vendorHash = "sha256-BWvMy1dc3PzAc3kDTXtI6Y8kjRGLWR+aUleItg5EgRU=";
+  vendorHash = "sha256-m8GOKBwXlNhjEIkkbaIOAGslX4WRVPZ0OknGEG29b4E=";
 
   subPackages = [ "cmd/zed" "cmd/zq" ];
 
diff --git a/pkgs/development/web/bootstrap-studio/default.nix b/pkgs/development/web/bootstrap-studio/default.nix
index 796095e109a5..757b9e8c206c 100644
--- a/pkgs/development/web/bootstrap-studio/default.nix
+++ b/pkgs/development/web/bootstrap-studio/default.nix
@@ -2,10 +2,10 @@
 
 let
   pname = "bootstrap-studio";
-  version = "6.5.1";
+  version = "6.6.1";
   src = fetchurl {
     url = "https://releases.bootstrapstudio.io/${version}/Bootstrap%20Studio.AppImage";
-    sha256 = "sha256-mx9KkMwFzdjhzofr+4l7MTerGfSSsI8+z8jmaoV8uvo=";
+    sha256 = "sha256-mMhjdAJfiDoK4b8TfawzxZHyQG2MUJHpG45MhuaCPqs=";
   };
   appimageContents = appimageTools.extractType2 { inherit pname version src; };
 in
diff --git a/pkgs/development/web/bun/default.nix b/pkgs/development/web/bun/default.nix
index 2f492ed603f5..c4779f96f5ea 100644
--- a/pkgs/development/web/bun/default.nix
+++ b/pkgs/development/web/bun/default.nix
@@ -12,7 +12,7 @@
 }:
 
 stdenvNoCC.mkDerivation rec {
-  version = "1.0.22";
+  version = "1.0.26";
   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-DbpDJe7QfWa+QK31mqmWUxJ9O/CUhDHk2RILBo5d1+A=";
+        hash = "sha256-UEYA6q83fxD3yQuHsQiO9bQ5gptQSipFGjE5eGUb+1c=";
       };
       "aarch64-linux" = fetchurl {
         url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-linux-aarch64.zip";
-        hash = "sha256-dROAnP6cTX4uteDdIXTFg/h+DX6IanRw2EuQgOev5xc=";
+        hash = "sha256-H+hmbZdRKjljskwNicLeFguo5STZ8fIxk7FHvOenuRc=";
       };
       "x86_64-darwin" = fetchurl {
         url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-darwin-x64.zip";
-        hash = "sha256-ZkFXtiUFsR2XX97vYHXvGVm0FulInL0d+44TvUZA+0U=";
+        hash = "sha256-mlKspcFpeYXJuINYDvCoDEuNHJDMcDqngPNIBpD39T4=";
       };
       "x86_64-linux" = fetchurl {
         url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-linux-x64.zip";
-        hash = "sha256-+TCpIiI1s84TxOq+5YPfETKqgPUxgkdZDeM5KNyoZfY=";
+        hash = "sha256-mWVe8BFGSXKJYnr2QXZah1XYfir5zN5+2wQ4HfgdOyE=";
       };
     };
     updateScript = writeShellScript "update-bun" ''
diff --git a/pkgs/development/web/deno/default.nix b/pkgs/development/web/deno/default.nix
index acc2a8c5c2dc..bae30f873a0f 100644
--- a/pkgs/development/web/deno/default.nix
+++ b/pkgs/development/web/deno/default.nix
@@ -13,16 +13,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "deno";
-  version = "1.39.2";
+  version = "1.40.2";
 
   src = fetchFromGitHub {
     owner = "denoland";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-R5LF3PwH8LZeBM7biR+QLo5+MJ9KvM41fk5IHR7oAOs=";
+    hash = "sha256-ycQN4BKuvK4FRYbHUKFFMVFg0LAG64xFiXbAkmQ46Cs=";
   };
 
-  cargoHash = "sha256-OPHQltS+3GZTIhMSg6ldLWy6L5skYzZxJLM06rLiDzs=";
+  cargoHash = "sha256-5OnYtVsuf6q4nQGO1+qL+2WFaKW0k13fNFS29gKaWhk=";
 
   postPatch = ''
     # upstream uses lld on aarch64-darwin for faster builds
diff --git a/pkgs/development/web/deno/librusty_v8.nix b/pkgs/development/web/deno/librusty_v8.nix
index 726a04dea474..60ce4616c014 100644
--- a/pkgs/development/web/deno/librusty_v8.nix
+++ b/pkgs/development/web/deno/librusty_v8.nix
@@ -10,11 +10,11 @@ let
   };
 in
 fetch_librusty_v8 {
-  version = "0.82.0";
+  version = "0.83.1";
   shas = {
-    x86_64-linux = "sha256-2nWOAUuzc7tr0KieeugIqI3zaRruvnLWBPn+ZdHTXsM=";
-    aarch64-linux = "sha256-vlc60ZoFtT2Ugp0npT0dep6WWnEBAznR7dYFRaMNAKM=";
-    x86_64-darwin = "sha256-CqyG/JOJe5kWzFJnnkU2Lz4VS/unWe1iucFxm+1HGsU=";
-    aarch64-darwin = "sha256-ps19JZqCpO3pEAMQZOO+l/Iz7u0dIXLnpYIsnOyAxYk=";
+    x86_64-linux = "sha256-0cCpFMPpFWTvoU3+HThYDDTQO7DdpdVDDer5k+3HQFY=";
+    aarch64-linux = "sha256-fOyJiD0raHxl+5tDWSpH/MbdBUqNY+HCKmTulYLXEYI=";
+    x86_64-darwin = "sha256-JwZ1FrU/MZeEnvSPDojvDdDxIF/bdZBPRCXrjbBb7WM=";
+    aarch64-darwin = "sha256-ajmr+SGj3L8TT+17NPkNcwQFESpIZuUul12Pp1oJAkY=";
   };
 }
diff --git a/pkgs/development/web/flyctl/default.nix b/pkgs/development/web/flyctl/default.nix
index 55e9a8aca38f..1fffbb6cd8c8 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.1.137";
+  version = "0.1.147";
 
   src = fetchFromGitHub {
     owner = "superfly";
     repo = "flyctl";
     rev = "v${version}";
-    hash = "sha256-JXrern3jDp9lc6HnsfTfjNDJ0mMaXDdYuhEAQ5mwmJo=";
+    hash = "sha256-lSDoviV2jI6jYAZyFt2SppmBzMamflisCizABrLXVw4=";
   };
 
-  vendorHash = "sha256-nXd0YUIccUkHJSy11KY14IgN6t0ntDe9lg8VxUn5buE=";
+  vendorHash = "sha256-x4lP0oLsII/auhr3DqlY9Tp75V4b0D9QwcDmGLy0ii4=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/development/web/function-runner/default.nix b/pkgs/development/web/function-runner/default.nix
index 7582800e25bd..a3526a0c5584 100644
--- a/pkgs/development/web/function-runner/default.nix
+++ b/pkgs/development/web/function-runner/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "function-runner";
-  version = "4.1.0";
+  version = "4.2.0";
 
   src = fetchFromGitHub {
     owner = "Shopify";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-o+fsIBH/vONlb57m3+upKG2Gss6s7yBNATkbKtSHf/0=";
+    sha256 = "sha256-33UVo7mPD/o3Z/R5PFhosiSLFLLpJ0pHqUbKtX6THJE=";
   };
 
-  cargoHash = "sha256-7ACi4orqpmWiaMYmOjICR6/d1kVySzaaCWIoUxqnhpI=";
+  cargoHash = "sha256-TNbGmqITCk1VKVuO46LxO+zjAG7Laguq7EAruuhJIxk=";
 
   meta = with lib; {
     description = "A CLI tool which allows you to run Wasm Functions intended for the Shopify Functions infrastructure";
diff --git a/pkgs/development/web/grails/default.nix b/pkgs/development/web/grails/default.nix
index 9990cf4553a4..95660e2f3d60 100644
--- a/pkgs/development/web/grails/default.nix
+++ b/pkgs/development/web/grails/default.nix
@@ -11,11 +11,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "grails";
-  version = "6.1.0";
+  version = "6.1.2";
 
   src = fetchurl {
     url = "https://github.com/grails/grails-core/releases/download/v${version}/grails-${version}.zip";
-    sha256 = "sha256-v+AAIDWRAgBXmhX2BecEio4s5dVA77K+YycZY1k9uvg=";
+    sha256 = "sha256-PoiXZuAJbKsyBRVaxwsKSDh1BzPYlgAwe/xC0qfeDgs=";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/pkgs/development/web/minify/default.nix b/pkgs/development/web/minify/default.nix
index bc8c9d9ff0d0..232f6dffaaa6 100644
--- a/pkgs/development/web/minify/default.nix
+++ b/pkgs/development/web/minify/default.nix
@@ -9,16 +9,16 @@
 
 buildGoModule rec {
   pname = "minify";
-  version = "2.20.10";
+  version = "2.20.16";
 
   src = fetchFromGitHub {
     owner = "tdewolff";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-HNb9Sf1do2VfqpXTW+EqizkOV4kcJz9ySAaji66xkAE=";
+    hash = "sha256-0RiSNRoRmN7X2udwgGaArXgIRTaxaGH4fo3usiCJNbA=";
   };
 
-  vendorHash = "sha256-SGjwRLzXnIr5EduPPJRgt+WSkgq0kxOAANH7cW03tBs=";
+  vendorHash = "sha256-8OEF2sAJZuGX4z/OsXCAkRR82JO3rYCEJQbidIjGOJ8=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/development/web/nodejs/v20.nix b/pkgs/development/web/nodejs/v20.nix
index 5868c5d9a990..d1a75dcdf7e5 100644
--- a/pkgs/development/web/nodejs/v20.nix
+++ b/pkgs/development/web/nodejs/v20.nix
@@ -8,8 +8,8 @@ let
 in
 buildNodejs {
   inherit enableNpm;
-  version = "20.10.0";
-  sha256 = "sha256-MuslbuvYys1VdOZjHlS0K+fsjr4lrUeoymhUA7rRVTU=";
+  version = "20.11.0";
+  sha256 = "sha256-MYB+vu6wScU/F2XkqVrtaUdqS2lt0QDLU5q2aNeVC0A=";
   patches = [
     ./revert-arm64-pointer-auth.patch
     ./disable-darwin-v8-system-instrumentation-node19.patch
diff --git a/pkgs/development/web/nodejs/v21.nix b/pkgs/development/web/nodejs/v21.nix
index 5747ad87b6b3..1a34a5c9cc75 100644
--- a/pkgs/development/web/nodejs/v21.nix
+++ b/pkgs/development/web/nodejs/v21.nix
@@ -8,8 +8,8 @@ let
 in
 buildNodejs {
   inherit enableNpm;
-  version = "21.6.0";
-  sha256 = "sha256-ICZb/PpzyLRrMjeGQdOLAJ38mA6ygZLD1at/aYb9seM=";
+  version = "21.6.1";
+  sha256 = "sha256-eoLzVtHcul12bw4dTHUOLhjWKQtxC30ZqHJSQeevH2A=";
   patches = [
     ./disable-darwin-v8-system-instrumentation-node19.patch
     ./bypass-darwin-xcrun-node16.patch
diff --git a/pkgs/development/web/protege-distribution/default.nix b/pkgs/development/web/protege-distribution/default.nix
index 3051c80f473b..b82f45692ee1 100644
--- a/pkgs/development/web/protege-distribution/default.nix
+++ b/pkgs/development/web/protege-distribution/default.nix
@@ -78,5 +78,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ nessdoor ];
     license = with licenses; [ asl20 bsd2 epl10 lgpl3 ];
     platforms = platforms.linux;
+    mainProgram = "run-protege";
   };
 }
diff --git a/pkgs/development/web/publii/default.nix b/pkgs/development/web/publii/default.nix
index 0a87fffbdd1d..5c5d776516ee 100644
--- a/pkgs/development/web/publii/default.nix
+++ b/pkgs/development/web/publii/default.nix
@@ -25,11 +25,11 @@
 
 stdenv.mkDerivation rec {
   pname = "publii";
-  version = "0.44.2";
+  version = "0.44.4";
 
   src = fetchurl {
     url = "https://getpublii.com/download/Publii-${version}.deb";
-    hash = "sha256-L54Aa/LiGtOEZ/ks62KckOnH042TfprOl+35AE1FwTM=";
+    hash = "sha256-Qk7Ix8VLfrgT4VbSIQFwB5oVfjgeSi8nttQWovptliw=";
   };
 
   dontConfigure = true;
diff --git a/pkgs/games/anki/default.nix b/pkgs/games/anki/default.nix
index ca6eaf15ac21..3cd623c4d6ef 100644
--- a/pkgs/games/anki/default.nix
+++ b/pkgs/games/anki/default.nix
@@ -292,7 +292,7 @@ python3.pkgs.buildPythonApplication {
     homepage = "https://apps.ankiweb.net";
     license = licenses.agpl3Plus;
     platforms = platforms.mesaPlatforms;
-    maintainers = with maintainers; [ euank oxij paveloom ];
+    maintainers = with maintainers; [ euank oxij ];
     # Reported to crash at launch on darwin (as of 2.1.65)
     broken = stdenv.isDarwin;
   };
diff --git a/pkgs/games/armagetronad/default.nix b/pkgs/games/armagetronad/default.nix
index fb0117f3e93e..6bcc30ac011f 100644
--- a/pkgs/games/armagetronad/default.nix
+++ b/pkgs/games/armagetronad/default.nix
@@ -129,6 +129,12 @@ let
       nativeBuildInputs = [ autoconf automake gnum4 pkg-config which python3 ]
         ++ extraNativeBuildInputs;
 
+      postInstall = lib.optionalString (!dedicatedServer) ''
+        mkdir -p $out/share/{applications,icons/hicolor}
+        ln -s $out/share/games/armagetronad/desktop/armagetronad*.desktop $out/share/applications/
+        ln -s $out/share/games/armagetronad/desktop/icons $out/share/icons/hicolor
+      '';
+
       doInstallCheck = true;
 
       installCheckPhase = ''
diff --git a/pkgs/games/bugdom/default.nix b/pkgs/games/bugdom/default.nix
index 01db213de985..52760d907986 100644
--- a/pkgs/games/bugdom/default.nix
+++ b/pkgs/games/bugdom/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bugdom";
-  version = "1.3.3";
+  version = "1.3.4";
 
   src = fetchFromGitHub {
     owner = "jorio";
     repo = pname;
     rev = version;
-    hash = "sha256-oe7xxvoL82YF+EoIJDK6AfN3PmpqeGRlIsbaGx8xGeM=";
+    hash = "sha256-0c7v5tSqYuqtLOFl4sqD7+naJNqX/wlKHVntkZQGJ8A=";
     fetchSubmodules = true;
   };
 
@@ -51,8 +51,8 @@ stdenv.mkDerivation rec {
     mv Data $out/share/bugdom
     install -Dm755 {.,$out/bin}/Bugdom
     wrapProgram $out/bin/Bugdom --run "cd $out/share/bugdom"
-    install -Dm644 $src/packaging/bugdom.desktop $out/share/applications/bugdom.desktop
-    install -Dm644 $src/packaging/bugdom-desktopicon.png $out/share/pixmaps/bugdom-desktopicon.png
+    install -Dm644 $src/packaging/io.jor.bugdom.desktop $out/share/applications/io.jor.bugdom.desktop
+    install -Dm644 $src/packaging/io.jor.bugdom.png $out/share/pixmaps/io.jor.bugdom.png
   '') + ''
 
     runHook postInstall
diff --git a/pkgs/games/ckan/default.nix b/pkgs/games/ckan/default.nix
index 2f36fa75581d..c19b1e20812d 100644
--- a/pkgs/games/ckan/default.nix
+++ b/pkgs/games/ckan/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ckan";
-  version = "1.34.2";
+  version = "1.34.4";
 
   src = fetchurl {
     url = "https://github.com/KSP-CKAN/CKAN/releases/download/v${version}/ckan.exe";
-    sha256 = "sha256-MUaKgtLHVsrUy55lHella2YCblLGdnj0530qC5la2IE=";
+    sha256 = "sha256-T3SBzGmTwFZsEkd3kCK7auINKPsFx2zIYR2/Zqt5ATM=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/games/ddnet/default.nix b/pkgs/games/ddnet/default.nix
index d94b7ae62b85..aabbc49ea51f 100644
--- a/pkgs/games/ddnet/default.nix
+++ b/pkgs/games/ddnet/default.nix
@@ -35,19 +35,19 @@
 
 stdenv.mkDerivation rec {
   pname = "ddnet";
-  version = "17.4.2";
+  version = "18.0.3";
 
   src = fetchFromGitHub {
     owner = "ddnet";
     repo = pname;
     rev = version;
-    hash = "sha256-cu6EmCaT8nMCcXUwvZdWog/4bvHQo9+DZHDHRvun2E4=";
+    hash = "sha256-XirN16XywTtF+gLQT3G3HjqStkNk+NVO7j+FEecq54E=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     name = "${pname}-${version}";
     inherit src;
-    hash = "sha256-O4ORWuTlmEMsTpMEhnauNfXOKWfg8hB32rZKRe8Nmp4=";
+    hash = "sha256-dFYrvnVxOelRIuqtTiSwBIFher/b/dCdyZvqIne3Lng=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/games/doom-ports/doomretro/default.nix b/pkgs/games/doom-ports/doomretro/default.nix
index 7216db3ee4f5..5ff5b502f653 100644
--- a/pkgs/games/doom-ports/doomretro/default.nix
+++ b/pkgs/games/doom-ports/doomretro/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "doomretro";
-  version = "5.2";
+  version = "5.2.1";
 
   src = fetchFromGitHub {
     owner = "bradharding";
     repo = "doomretro";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-1E3tAt4zOyaof2iBT3S9DfNIgpJj9U0rwGIZpM7cTbA=";
+    hash = "sha256-jM7SNZ8VsF0caB2Q2qOX8W6SuFxyZWpCo3+jD53R3qU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/games/factorio/default.nix b/pkgs/games/factorio/default.nix
index 7851cd6e8d1e..d5190aa1d945 100644
--- a/pkgs/games/factorio/default.nix
+++ b/pkgs/games/factorio/default.nix
@@ -199,6 +199,7 @@ let
       license = lib.licenses.unfree;
       maintainers = with lib.maintainers; [ Baughn elitak erictapen priegger lukegb ];
       platforms = [ "x86_64-linux" ];
+      mainProgram = "factorio";
     };
   };
 
diff --git a/pkgs/games/factorio/versions.json b/pkgs/games/factorio/versions.json
index 583d3ae3cbed..9e5f6d3e6533 100644
--- a/pkgs/games/factorio/versions.json
+++ b/pkgs/games/factorio/versions.json
@@ -10,12 +10,12 @@
         "version": "1.1.101"
       },
       "stable": {
-        "name": "factorio_alpha_x64-1.1.100.tar.xz",
+        "name": "factorio_alpha_x64-1.1.101.tar.xz",
         "needsAuth": true,
-        "sha256": "0ylr1x39x6x9d4zx5h0j4isgz5m56kznadf984bcvsl51plhh5wc",
+        "sha256": "07f8hcyf4hmf9lpa2ljm6ygpaaj2yd28da4krwa5yzjvqs88b4fq",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.100/alpha/linux64",
-        "version": "1.1.100"
+        "url": "https://factorio.com/get-download/1.1.101/alpha/linux64",
+        "version": "1.1.101"
       }
     },
     "demo": {
@@ -28,12 +28,12 @@
         "version": "1.1.101"
       },
       "stable": {
-        "name": "factorio_demo_x64-1.1.100.tar.xz",
+        "name": "factorio_demo_x64-1.1.101.tar.xz",
         "needsAuth": false,
-        "sha256": "08xrmik7z7p0pgrnscriqhssv2chrpp42gi2dw8fgjb4wf76wqc4",
+        "sha256": "14cnz4y1iqjv8ks0w1k60qy1nqjn33wajwzdpnmxgcz01rzfqd8a",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.100/demo/linux64",
-        "version": "1.1.100"
+        "url": "https://factorio.com/get-download/1.1.101/demo/linux64",
+        "version": "1.1.101"
       }
     },
     "headless": {
@@ -46,12 +46,12 @@
         "version": "1.1.101"
       },
       "stable": {
-        "name": "factorio_headless_x64-1.1.100.tar.xz",
+        "name": "factorio_headless_x64-1.1.101.tar.xz",
         "needsAuth": false,
-        "sha256": "0d6qphx6kpdmvyf40j45ih2s8q48i28nac86pal4vvlkdwadsl4q",
+        "sha256": "14l3cg8swl3l7lzp44j4zk9wldzf4g23vda67wyzfyx82pvad206",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.100/headless/linux64",
-        "version": "1.1.100"
+        "url": "https://factorio.com/get-download/1.1.101/headless/linux64",
+        "version": "1.1.101"
       }
     }
   }
diff --git a/pkgs/games/ferium/default.nix b/pkgs/games/ferium/default.nix
index 2cc48b6d8fbe..8c923d0b7bec 100644
--- a/pkgs/games/ferium/default.nix
+++ b/pkgs/games/ferium/default.nix
@@ -2,18 +2,18 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ferium";
-  version = "4.4.1";
+  version = "4.5.0";
 
   src = fetchFromGitHub {
     owner = "gorilla-devs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-3ILDR6CmR/CTzZfUEPD10TQZRSDKSqHmwxU3GPHIyK8=";
+    sha256 = "sha256-1avmzaIDz4/ARewB7yLYMBVtwdkY4FFfwcHAZSyg1Xc=";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
-  cargoHash = "sha256-00rzn8eWcxRfPvIT2+EVQLd6e8gnMWx78QrwURpxstg=";
+  cargoHash = "sha256-IOnTJ/0mul7buBDNHkeqMM9NrFiX58xa03bVGrbAdNg=";
 
   # Disable the GUI file picker so that GTK/XDG dependencies aren't used
   buildNoDefaultFeatures = true;
diff --git a/pkgs/games/gcs/default.nix b/pkgs/games/gcs/default.nix
deleted file mode 100644
index be8bb7017863..000000000000
--- a/pkgs/games/gcs/default.nix
+++ /dev/null
@@ -1,81 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, runCommand
-, jdk8, ant
-, jre8, makeWrapper
-}:
-
-let
-  gcs = fetchFromGitHub {
-    owner = "richardwilkes";
-    repo = "gcs";
-    rev = "gcs-4.8.0";
-    sha256 = "0k8am8vfwls5s2z4zj1p1aqy8gapn5vbr9zy66s5g048ch8ah1hm";
-  };
-  appleStubs = fetchFromGitHub {
-    owner = "richardwilkes";
-    repo = "apple_stubs";
-    rev = "gcs-4.3.0";
-    sha256 = "0m1qw30b19s04hj7nch1mbvv5s698g5dr1d1r7r07ykvk1yh7zsa";
-  };
-  toolkit = fetchFromGitHub {
-    owner = "richardwilkes";
-    repo = "toolkit";
-    rev = "gcs-4.8.0";
-    sha256 = "1ciwwh0wxk3pzsj6rbggsbg3l2f741qy7yx1ca4v7vflsma84f1n";
-  };
-  library = fetchFromGitHub {
-    owner = "richardwilkes";
-    repo = "gcs_library";
-    rev = "gcs-4.8.0";
-    sha256 = "085jpp9mpv5kw00zds9sywmfq31mrlbrgahnwcjkx0z9i22amz4g";
-  };
-in stdenv.mkDerivation rec {
-  pname = "gcs";
-  version = "4.8.0";
-
-  src = runCommand "${pname}-${version}-src" { preferLocalBuild = true; } ''
-    mkdir -p $out
-    cd $out
-
-    cp -r ${gcs} gcs
-    cp -r ${appleStubs} apple_stubs
-    cp -r ${toolkit} toolkit
-    cp -r ${library} gcs_library
-  '';
-
-  nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ jdk8 jre8 ant ];
-  buildPhase = ''
-    cd apple_stubs
-    ant
-
-    cd ../toolkit
-    ant
-
-    cd ../gcs
-    ant
-
-    cd ..
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin $out/share/java
-
-    find gcs/libraries toolkit/libraries apple_stubs/ \( -name '*.jar' -and -not -name '*-src.jar' \) -exec cp '{}' $out/share/java ';'
-
-    makeWrapper ${jre8}/bin/java $out/bin/gcs \
-      --set GCS_LIBRARY ${library} \
-      --add-flags "-cp $out/share/java/gcs-${version}.jar com.trollworks.gcs.app.GCS"
-  '';
-
-  meta = with lib; {
-    description = "A stand-alone, interactive, character sheet editor for the GURPS 4th Edition roleplaying game system";
-    homepage = "https://gurpscharactersheet.com/";
-    sourceProvenance = with sourceTypes; [
-      fromSource
-      binaryBytecode  # source bundles dependencies as jars
-    ];
-    license = licenses.mpl20;
-    platforms = platforms.all;
-    maintainers = with maintainers; [];
-  };
-}
diff --git a/pkgs/games/gogdl/default.nix b/pkgs/games/gogdl/default.nix
index d5b3d0a5a544..d6f5d6d10ae0 100644
--- a/pkgs/games/gogdl/default.nix
+++ b/pkgs/games/gogdl/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonApplication rec {
   pname = "gogdl";
-  version = "0.7.3";
+  version = "1.0.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "Heroic-Games-Launcher";
     repo = "heroic-gogdl";
-    rev = "89d15f1593cc26f15a5f8f409bb623764c095d37";
-    hash = "sha256-EECpXGVhcwihKB8fLObVvYzFD8uh7CxYKtFiGc0Jqbk=";
+    rev = "e1c3e5b98feda53ea88f54f9aa5c614ae9424ef0";
+    hash = "sha256-MGxpWfDGchZruVmSiea5s1JQV23F9QvQLWrxPmIsBEo=";
   };
 
   disabled = pythonOlder "3.8";
diff --git a/pkgs/games/heroic/default.nix b/pkgs/games/heroic/default.nix
index 583853b64cca..ef3f13dc1bf0 100644
--- a/pkgs/games/heroic/default.nix
+++ b/pkgs/games/heroic/default.nix
@@ -17,13 +17,13 @@
 let appName = "heroic";
 in stdenv.mkDerivation rec {
   pname = "heroic-unwrapped";
-  version = "2.12.0";
+  version = "2.12.1";
 
   src = fetchFromGitHub {
     owner = "Heroic-Games-Launcher";
     repo = "HeroicGamesLauncher";
     rev = "v${version}";
-    hash = "sha256-1+TqIExvZHE3X38Fh43CasmTyjIr2WcEw07ZJEFrcBw=";
+    hash = "sha256-dfyyxE2U5rSSoTY2L5bKsnjQ8u53GgAXa+V+idDr51Q=";
   };
 
   offlineCache = fetchYarnDeps {
diff --git a/pkgs/games/instawow/default.nix b/pkgs/games/instawow/default.nix
index 36e60d548842..7534f5f892a7 100644
--- a/pkgs/games/instawow/default.nix
+++ b/pkgs/games/instawow/default.nix
@@ -2,14 +2,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "instawow";
-  version = "v3.1.0";
+  version = "3.2.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "layday";
     repo = pname;
-    rev = version;
-    sha256 = "sha256-xJw/tgHBfOlv5JYsWWdEJ8vpel348YtXCQsaLqgp3Z0=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-eBpX+ojlrWwRXuMijnmb4lNlxIJ40Q9RUqS6txPBDiM=";
   };
 
   extras = [ ];  # Disable GUI, most dependencies are not packaged.
diff --git a/pkgs/games/lgames/lbreakouthd/default.nix b/pkgs/games/lgames/lbreakouthd/default.nix
index 0f25ff36fa86..64be757c35ad 100644
--- a/pkgs/games/lgames/lbreakouthd/default.nix
+++ b/pkgs/games/lgames/lbreakouthd/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "lbreakouthd";
-  version = "1.1.5";
+  version = "1.1.6";
 
   src = fetchurl {
     url = "mirror://sourceforge/lgames/lbreakouthd-${finalAttrs.version}.tar.gz";
-    hash = "sha256-dejGWf/UQaXHaT3Q79T7IO1WBFE1ZbqE9QW5nRPbDeo=";
+    hash = "sha256-Gor2LnM8vi6skJbzfR5023J13GxvqcpIrua9S+nT/S0=";
   };
 
   buildInputs = [
diff --git a/pkgs/games/lzwolf/default.nix b/pkgs/games/lzwolf/default.nix
index 37bcc7fc8e06..3f1e37c258a3 100644
--- a/pkgs/games/lzwolf/default.nix
+++ b/pkgs/games/lzwolf/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , lib
 , fetchFromBitbucket
+, fetchpatch
 , p7zip
 , cmake
 , SDL2
@@ -26,6 +27,16 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-CtBdvk6LXb/ll92Fxig/M4t4QNj8dNFJYd8F99b47kQ=";
   };
 
+  patches = [
+    # Pull fix pending upstream inclusion for `gcc-13` support:
+    #   https://bitbucket.org/linuxwolf6/lzwolf/pull-requests/5
+    (fetchpatch {
+      name = "gcc-13.patch";
+      url = "https://bitbucket.org/soturi/lzwolf/commits/41f212026dff4f089d1c0921cb49ab1a2b81e0d6/raw";
+      hash = "sha256-EgSdDaZovD7DyZ0BkuX8ZdsrX7J7v8/D6y5P1NWGJew=";
+    })
+  ];
+
   postPatch = ''
     # SDL2_net-2.2.0 changed CMake component name slightly.
     substituteInPlace src/CMakeLists.txt \
diff --git a/pkgs/games/maptool/default.nix b/pkgs/games/maptool/default.nix
index d5fcbc47529b..ed505b32eda3 100644
--- a/pkgs/games/maptool/default.nix
+++ b/pkgs/games/maptool/default.nix
@@ -12,11 +12,11 @@
 }:
 let
   pname = "maptool";
-  version = "1.13.2";
+  version = "1.14.3";
   repoBase = "https://github.com/RPTools/maptool";
   src = fetchurl {
     url = "${repoBase}/releases/download/${version}/maptool-${version}-x86_64.pkg.tar.zst";
-    hash = "sha256-Ntmro+t4qpP5BXW20t97ki0wt2NKaK5yQarsxDEKbb0=";
+    hash = "sha256-KjP6zugQw9r1hvdxqOgTrt4hYMYg+lgjkgkj3tfb38s=";
   };
 
   meta = with lib; {
diff --git a/pkgs/games/minesweep-rs/default.nix b/pkgs/games/minesweep-rs/default.nix
index 65b799508b7a..b2445fe904a5 100644
--- a/pkgs/games/minesweep-rs/default.nix
+++ b/pkgs/games/minesweep-rs/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "minesweep-rs";
-  version = "6.0.47";
+  version = "6.0.52";
 
   src = fetchFromGitHub {
     owner = "cpcloud";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-6BrFWJ7YGALdKaPAX8Z1W2Eyyj0kbegybmwdnNUmOYo=";
+    hash = "sha256-XSB0SrZCXnIeZGYAc/MEWe+rM5D36jkM2MJjx64r/bU=";
   };
 
-  cargoHash = "sha256-ju4tIie0Jrm9hh5Xoy4dqfPS8mqdN9Y0J1Nw4T9aN3Y=";
+  cargoHash = "sha256-zSEJsUKLfjZVZxQBtbUflYv4FXUpFCrAGI+6YUJrNnI=";
 
   meta = with lib; {
     description = "Sweep some mines for fun, and probably not for profit";
diff --git a/pkgs/games/mudlet/default.nix b/pkgs/games/mudlet/default.nix
index 39faa5d4fb9b..78a7eb901c50 100644
--- a/pkgs/games/mudlet/default.nix
+++ b/pkgs/games/mudlet/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , cmake
 , git
 , pkg-config
@@ -20,6 +21,7 @@
 , qtmultimedia
 , discord-rpc
 , yajl
+, AppKit
 }:
 
 let
@@ -64,6 +66,14 @@ stdenv.mkDerivation rec {
     hash = "sha256-K75frptePKfHeGQNXaX4lKsLwO6Rs6AAka6hvP8MA+k=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "darwin-AppKit.patch";
+      url = "https://github.com/Mudlet/Mudlet/commit/68cdd404f81a6d16c80068c45fe0f10802f08d9e.patch";
+      hash = "sha256-74FtcjOR/lu9ohtcoup0+gUfCQRznO48zMmb97INhdY=";
+    })
+  ];
+
   nativeBuildInputs = [
     cmake
     git
@@ -87,6 +97,8 @@ stdenv.mkDerivation rec {
     qtmultimedia
     yajl
     discord-rpc
+  ] ++ lib.optional stdenv.isDarwin [
+    AppKit
   ];
 
   cmakeFlags = [
@@ -101,34 +113,46 @@ stdenv.mkDerivation rec {
     runHook preInstall
 
     mkdir -pv $out/lib
-    cp 3rdparty/edbee-lib/edbee-lib/qslog/lib/libQsLog.so $out/lib
-    mkdir -pv $out/bin
-    cp src/mudlet $out
+    cp 3rdparty/edbee-lib/edbee-lib/qslog/lib/libQsLog${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib
     mkdir -pv $out/share/mudlet
     cp -r ../src/mudlet-lua/lua $out/share/mudlet/
 
-    mkdir -pv $out/share/applications
-    cp ../mudlet.desktop $out/share/applications/
-
     mkdir -pv $out/share/pixmaps
     cp -r ../mudlet.png $out/share/pixmaps/
 
     cp -r ../translations $out/share/
 
-    makeQtWrapper $out/mudlet $out/bin/mudlet \
+  '' + lib.optionalString stdenv.isDarwin ''
+    mkdir -p $out/Applications
+    cp -r src/mudlet.app/ $out/Applications/mudlet.app
+    mv $out/Applications/mudlet.app/Contents/MacOS/mudlet $out/Applications/mudlet.app/Contents/MacOS/mudlet-unwrapped
+    makeQtWrapper $out/Applications/Mudlet.app/Contents/MacOS/mudlet-unwrapped $out/Applications/Mudlet.app/Contents/MacOS/mudlet \
+      --set LUA_CPATH "${luaEnv}/lib/lua/${lua.luaversion}/?.so" \
+      --prefix LUA_PATH : "$NIX_LUA_PATH" \
+      --prefix DYLD_LIBRARY_PATH : "${lib.makeLibraryPath [ libsForQt5.qtkeychain discord-rpc ]}:$out/lib" \
+      --chdir "$out";
+
+  '' + lib.optionalString (!stdenv.isDarwin) ''
+    mkdir -pv $out/bin
+    cp src/mudlet $out/bin/mudlet-unwrapped
+    makeQtWrapper $out/bin/mudlet-unwrapped $out/bin/mudlet \
       --set LUA_CPATH "${luaEnv}/lib/lua/${lua.luaversion}/?.so" \
       --prefix LUA_PATH : "$NIX_LUA_PATH" \
       --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libsForQt5.qtkeychain discord-rpc ]}" \
       --chdir "$out";
 
+    mkdir -pv $out/share/applications
+    cp ../mudlet.desktop $out/share/applications/
+
+  '' + ''
     runHook postInstall
   '';
 
   meta = with lib; {
     description = "Crossplatform mud client";
     homepage = "https://www.mudlet.org/";
-    maintainers = with maintainers; [ wyvie pstn cpu ];
-    platforms = platforms.linux;
+    maintainers = with maintainers; [ wyvie pstn cpu felixalbrigtsen ];
+    platforms = platforms.linux ++ platforms.darwin;
     license = licenses.gpl2Plus;
     mainProgram = "mudlet";
   };
diff --git a/pkgs/games/naev/default.nix b/pkgs/games/naev/default.nix
index fae719b736f5..6be1d6700fc4 100644
--- a/pkgs/games/naev/default.nix
+++ b/pkgs/games/naev/default.nix
@@ -26,13 +26,13 @@
 
 stdenv.mkDerivation rec {
   pname = "naev";
-  version = "0.11.0";
+  version = "0.11.3";
 
   src = fetchFromGitHub {
     owner = "naev";
     repo = "naev";
     rev = "v${version}";
-    sha256 = "sha256-JTXZzxjfnD3OKZq1wms9bPwIBXyu9FuZB6hvH7HwvRI=";
+    sha256 = "sha256-2n7i5qCFdpjBpjeMv6aCd0zyD4c60FciHmSafbArnms=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/games/nethack/default.nix b/pkgs/games/nethack/default.nix
index 46e4dc9ca20b..fbbdfeabe31b 100644
--- a/pkgs/games/nethack/default.nix
+++ b/pkgs/games/nethack/default.nix
@@ -2,6 +2,7 @@
 , less
 , buildPackages
 , x11Mode ? false, qtMode ? false, libXaw, libXext, libXpm, bdftopcf, mkfontdir, pkg-config, qt5
+, copyDesktopItems, makeDesktopItem
 }:
 
 let
@@ -33,7 +34,7 @@ in stdenv.mkDerivation rec {
                 ++ lib.optionals x11Mode [ libXaw libXext libXpm ]
                 ++ lib.optionals qtMode [ gzip qt5.qtbase.bin qt5.qtmultimedia.bin ];
 
-  nativeBuildInputs = [ flex bison ]
+  nativeBuildInputs = [ flex bison copyDesktopItems ]
                       ++ lib.optionals x11Mode [ mkfontdir bdftopcf ]
                       ++ lib.optionals qtMode [
                            pkg-config mkfontdir qt5.qtbase.dev
@@ -144,11 +145,26 @@ in stdenv.mkDerivation rec {
     ${lib.optionalString (!(x11Mode || qtMode)) "install -Dm 555 util/dlb -t $out/libexec/nethack/"}
   '';
 
+  desktopItems = [
+    (makeDesktopItem {
+      name = "NetHack";
+      exec =
+         if x11Mode then "nethack-x11"
+         else if qtMode then "nethack-qt"
+         else "nethack";
+      icon = "nethack";
+      desktopName = "NetHack";
+      comment = "NetHack is a single player dungeon exploration game";
+      categories = [ "Game" "ActionGame" ];
+    })
+  ];
+
   meta = with lib; {
     description = "Rogue-like game";
     homepage = "http://nethack.org/";
     license = "nethack";
     platforms = if x11Mode then platforms.linux else platforms.unix;
     maintainers = with maintainers; [ abbradar ];
+    mainProgram = "nethack";
   };
 }
diff --git a/pkgs/games/nile/default.nix b/pkgs/games/nile/default.nix
index deae40acf064..a8e26ff6399a 100644
--- a/pkgs/games/nile/default.nix
+++ b/pkgs/games/nile/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonApplication rec {
   pname = "nile";
-  version = "unstable-2023-10-02";
+  version = "unstable-2024-01-27";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "imLinguin";
     repo = "nile";
-    rev = "8f7ab2650fc730efc8960b5fcd71421d724a4108";
-    hash = "sha256-Vhjp9JX8VX0PWsvEh5eOhz7vsIEaiCyPNPOjibE8GXo=";
+    rev = "f4eca37794b7c06affcf0bc28660de7c54eddc9a";
+    hash = "sha256-WsCR2xjQc4Kx1nUdApxbkkyX+nYoLl5IsSUVW3rjT1Q=";
   };
 
   disabled = pythonOlder "3.8";
diff --git a/pkgs/games/nxengine-evo/default.nix b/pkgs/games/nxengine-evo/default.nix
index 4660423a3509..ca57d11910aa 100644
--- a/pkgs/games/nxengine-evo/default.nix
+++ b/pkgs/games/nxengine-evo/default.nix
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
       gpl3                   # Game engine
       unfreeRedistributable  # Game assets, freeware
     ];
-    maintainers = [ lib.maintainers.scubed2 ];
+    maintainers = [ ];
     homepage = "https://github.com/nxengine/nxengine-evo";
     platforms = lib.platforms.linux;
   };
diff --git a/pkgs/games/openttd/nml.nix b/pkgs/games/openttd/nml.nix
index 5859f5132849..cf9de289f72e 100644
--- a/pkgs/games/openttd/nml.nix
+++ b/pkgs/games/openttd/nml.nix
@@ -6,13 +6,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "openttd-nml";
-  version = "0.7.1";
+  version = "0.7.4";
 
   src = fetchFromGitHub {
     owner = "OpenTTD";
     repo = "nml";
     rev = "refs/tags/${version}";
-    hash = "sha256-+TJZ6/JazxzXyKawFE4GVh0De1LTUI95vXQwryJ2NDk=";
+    hash = "sha256-7Q1H8BkLnVWoZU6/mdfgBPsMt9L7oLZK8GOvbw9TpzU=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/games/osu-lazer/bin.nix b/pkgs/games/osu-lazer/bin.nix
index c47792dd7cdf..43dafeae5f15 100644
--- a/pkgs/games/osu-lazer/bin.nix
+++ b/pkgs/games/osu-lazer/bin.nix
@@ -7,22 +7,22 @@
 
 let
   pname = "osu-lazer-bin";
-  version = "2024.114.0";
+  version = "2024.131.0";
 
   src = {
     aarch64-darwin = fetchzip {
       url = "https://github.com/ppy/osu/releases/download/${version}/osu.app.Apple.Silicon.zip";
-      hash = "sha256-T4xzggcz4T0kzLiQyGJfGo8lkAubG+miP2iMU9kxr5c=";
+      hash = "sha256-R25TAXU3gUcVKQMo8P+0/vTRzSoFrUdFz11inpch+7A=";
       stripRoot = false;
     };
     x86_64-darwin = fetchzip {
       url = "https://github.com/ppy/osu/releases/download/${version}/osu.app.Intel.zip";
-      hash = "sha256-1if+H4OAJt7BcgFyLoGe8dIgvkEQ5xT+wCIj03WVDLY=";
+      hash = "sha256-w7BK3pm0XrlzOv0oz+ZUfVRufzUCCfevlRL+RDLtoLU=";
       stripRoot = false;
     };
     x86_64-linux = fetchurl {
       url = "https://github.com/ppy/osu/releases/download/${version}/osu.AppImage";
-      hash = "sha256-TM+x+T3EL28Era5eRRmhnunF8aoJ2r6oTTvjND08p9I=";
+      hash = "sha256-aNG6s942iTKyvM1XolMqmMs8XxoRYC/ZddCCJl0OtTE=";
     };
   }.${stdenv.system} or (throw "${pname}-${version}: ${stdenv.system} is unsupported.");
 
diff --git a/pkgs/games/osu-lazer/default.nix b/pkgs/games/osu-lazer/default.nix
index 1bd769b472b9..cb1a11c330b6 100644
--- a/pkgs/games/osu-lazer/default.nix
+++ b/pkgs/games/osu-lazer/default.nix
@@ -16,13 +16,13 @@
 
 buildDotnetModule rec {
   pname = "osu-lazer";
-  version = "2024.114.0";
+  version = "2024.131.0";
 
   src = fetchFromGitHub {
     owner = "ppy";
     repo = "osu";
     rev = version;
-    hash = "sha256-6cvfKpBhJHCJ9XJ36YbgVRtRXIH9UL2lNW44LXj4mWM=";
+    hash = "sha256-fsXs/AzvEQ141y/DPRvg7a7b0K30IfjigbRj0qh88rs=";
   };
 
   projectFile = "osu.Desktop/osu.Desktop.csproj";
diff --git a/pkgs/games/osu-lazer/deps.nix b/pkgs/games/osu-lazer/deps.nix
index 82807ca692cc..669463431970 100644
--- a/pkgs/games/osu-lazer/deps.nix
+++ b/pkgs/games/osu-lazer/deps.nix
@@ -3,14 +3,14 @@
 
 { fetchNuGet }: [
   (fetchNuGet { pname = "AutoMapper"; version = "12.0.1"; sha256 = "0s0wjl4ck3sal8a50x786wxs9mbca7bxaqk3558yx5wpld4h4z3b"; })
-  (fetchNuGet { pname = "Clowd.Squirrel"; version = "2.10.2"; sha256 = "1kkvpflwmsr65blw22i8gn0bjzq7vvlndm4qa3qdiimckjsifa35"; })
+  (fetchNuGet { pname = "Clowd.Squirrel"; version = "2.11.1"; sha256 = "0s8ar0cl1pz1cbh3xm79cyaqdnfdm89mxd18qkhbyavhn6kqgnm0"; })
   (fetchNuGet { pname = "CodeFileSanity"; version = "0.0.37"; sha256 = "03ja3g66lb0smjmkr3yf28h7fy52wwbdnf6p268zfla3azh006pq"; })
   (fetchNuGet { pname = "DiffPlex"; version = "1.7.1"; sha256 = "1q78r70pirgb7j5wkh454ws237lihh0fig212cpbj02cz53c2h6j"; })
   (fetchNuGet { pname = "DiscordRichPresence"; version = "1.2.1.24"; sha256 = "0maw0yd6xgwy0cgk593z3zva0r5j267zpdmmpq8avj3zbna6n4x1"; })
   (fetchNuGet { pname = "FFmpeg.AutoGen"; version = "4.3.0.1"; sha256 = "0n6x57mnnvcjnrs8zyvy07h5zm4bcfy9gh4n4bvd9fx5ys4pxkvv"; })
   (fetchNuGet { pname = "Fody"; version = "6.8.0"; sha256 = "1y159433n5wzlvc8hjjrhjarf7mjvngbmh34jkd452zlrjqrhmns"; })
   (fetchNuGet { pname = "HidSharpCore"; version = "1.2.1.1"; sha256 = "1zkndglmz0s8rblfhnqcvv90rkq2i7lf4bc380g7z8h1avf2ikll"; })
-  (fetchNuGet { pname = "HtmlAgilityPack"; version = "1.11.54"; sha256 = "178sd0ym900knjz7dmy2bvggijbqfp4zbmscgkxfjq3agvjfap8a"; })
+  (fetchNuGet { pname = "HtmlAgilityPack"; version = "1.11.57"; sha256 = "0brswm659d2vb11021z7xylljlnaf344yf5q093bqxyhbxva8ijq"; })
   (fetchNuGet { pname = "Humanizer"; version = "2.14.1"; sha256 = "18cycx9gvbc3735chdi2r583x73m2fkz1ws03yi3g640j9zv00fp"; })
   (fetchNuGet { pname = "Humanizer.Core"; version = "2.14.1"; sha256 = "1ai7hgr0qwd7xlqfd92immddyi41j3ag91h3594yzfsgsy6yhyqi"; })
   (fetchNuGet { pname = "Humanizer.Core.af"; version = "2.14.1"; sha256 = "197lsky6chbmrixgsg6dvxbdbbpis0an8mn6vnwjcydhncis087h"; })
@@ -65,17 +65,17 @@
   (fetchNuGet { pname = "JetBrains.ReSharper.GlobalTools"; version = "2022.2.3"; sha256 = "0ck4nkk8wlj2gcgs7j4j6z4yqrnf2f5rs2pgwa8kar026sc29xsl"; })
   (fetchNuGet { pname = "managed-midi"; version = "1.10.0"; sha256 = "1rih8iq8k4j6n3206d2j7z4vygp725kzs95c6yc7p1mlhfiiimvq"; })
   (fetchNuGet { pname = "Markdig"; version = "0.23.0"; sha256 = "1bwn885w7balwncmr764vidyyp9bixqlq6r3lhsapj8ykrpxxa70"; })
-  (fetchNuGet { pname = "MessagePack"; version = "2.5.129"; sha256 = "08bpg5v467zyx5ni8pj9x2nkqx3r2vbfdh7v72laii0707163fb2"; })
-  (fetchNuGet { pname = "MessagePack.Annotations"; version = "2.5.129"; sha256 = "1q0pprliqr8wrn09k8sa2p9l28q30rk6sl47vlazgwc678f96vg7"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.Connections.Abstractions"; version = "7.0.12"; sha256 = "0dih84mzrgnf0zm2k8w9ivhlxx1vin9srir8jqcvhibw0xwrpzzw"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Connections.Client"; version = "7.0.12"; sha256 = "1k9xak1f13nb4kp3ld0azlx2mp7ya8rbnd23587yanzv4lwpgab8"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Connections.Common"; version = "7.0.12"; sha256 = "0xs23299gmnjf92jjbn3bgi7493a89zylhvm7gcraayin1g8prpc"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Client"; version = "7.0.12"; sha256 = "0yjqyn7kdq4nmysaj9lab870hxc07l5q5qgkj7ppmrq7vzf49lbf"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Client.Core"; version = "7.0.12"; sha256 = "1x5d3jh4vxvankxx6xp1937m6p3ryz39cwwiajnck1lj5mkwhw5h"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Common"; version = "7.0.12"; sha256 = "1zqidbidqa0jyrsfm5rna6h37q18acqxh0v5vwxp6cf65r39w1z1"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Protocols.Json"; version = "7.0.12"; sha256 = "1irln0dn89kls3k2h9j9hj616psl71xpid3vz7cllc0n0fjxkz0y"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Protocols.MessagePack"; version = "7.0.12"; sha256 = "1374x6j7r79piji2r8ppddyzgf9nadc6mmgabk3jgg9m4lc67z48"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson"; version = "7.0.12"; sha256 = "0zmvb48yvm1i6pysqbz63jk0y4c61nxapdwlb3c5nxwgjcy0n06k"; })
+  (fetchNuGet { pname = "MessagePack"; version = "2.5.140"; sha256 = "04iqlvcacbb37yf83xryd24n14dw780xx8dmc1zywi3x2nrqpjm9"; })
+  (fetchNuGet { pname = "MessagePack.Annotations"; version = "2.5.140"; sha256 = "0ihx5b1cjls2p4i56nz49i690y9zvqm01dh4whkn2q8w19j22vla"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Connections.Abstractions"; version = "7.0.15"; sha256 = "0r66wrg3xgqyh9fnjyzmdcbpmpxzwb81frpd8psszqm0rkc2mplf"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Connections.Client"; version = "7.0.15"; sha256 = "179b1b6h5zw4l25h0g0h6frwfz6kfzxl7ycnmasywzqh0k260xdg"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Connections.Common"; version = "7.0.15"; sha256 = "1vbr740sy40q1dh5zwvc8pr96b2kzyg3a47qg5mnmgg4ajj1kzy9"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Client"; version = "7.0.15"; sha256 = "1wzx888jsy72vczylzh1bg37badhjsf8zfm1jxv9kd7b68z0rhn0"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Client.Core"; version = "7.0.15"; sha256 = "1pzyravryrs3adwa6z1abnx53mq355c7adk62b7pckq3rcqqzxan"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Common"; version = "7.0.15"; sha256 = "14ycx96d164pq21131l3hijabh3y6kya62nlcs5c4j20vrlr0ymr"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Protocols.Json"; version = "7.0.15"; sha256 = "01gw0qf3k2yq0wwdb709yz63migwfhr0nr1blxla3dn38c8vagg1"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Protocols.MessagePack"; version = "7.0.15"; sha256 = "1ykvdjqgzqwld6zlifsm7mw42l8wdm952va2ha9sw1iz693h85s8"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson"; version = "7.0.15"; sha256 = "0bsh1aa5kva8cpaxn7n2i96975hbxcbpxydz3pjxaiav1f3ziq57"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.BannedApiAnalyzers"; version = "3.3.4"; sha256 = "1vzrni7n94f17bzc13lrvcxvgspx9s25ap1p005z6i1ikx6wgx30"; })
   (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.5.0"; sha256 = "01i28nvzccxbqmiz217fxs6hnjwmd5fafs37rd49a6qp53y6623l"; })
   (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; })
@@ -89,7 +89,7 @@
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "6.0.0-rc.1.21451.13"; sha256 = "11dg16x6g0gssb143qpghxz1s41himvhr7yhjwxs9hacx4ij2dm1"; })
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "7.0.0"; sha256 = "181d7mp9307fs17lyy42f8cxnjwysddmpsalky4m0pqxcimnr6g7"; })
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "2.0.3"; sha256 = "0dpyjp0hy9kkvk2dd4dclfmb10yq5avsw2a6v8nra9g6ii2p1nla"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Features"; version = "7.0.12"; sha256 = "0cdh6kchc9yjlid6vdx74p1r5i7x7dalys107hbj4aqcrqx0jnnd"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Features"; version = "7.0.15"; sha256 = "14fal431gw6957hvxp4x6rdny1y8priaf3pykcflpf51bfa9lyhj"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "7.0.0"; sha256 = "1bqd3pqn5dacgnkq0grc17cgb2i0w8z1raw12nwm3p3zhrfcvgxf"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "7.0.0"; sha256 = "1gn7d18i1wfy13vrwhmdv1rmsb4vrk26kqdld4cgvh77yigj90xs"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "7.0.1"; sha256 = "0xv3sqc1lbx5j4yy6g2w3kakzvrpwqs2ihax6lqasj5sz5map6fk"; })
@@ -124,7 +124,7 @@
   (fetchNuGet { pname = "NuGet.ProjectModel"; version = "5.11.0"; sha256 = "1i0dcak9qdj8s68c5f3zhrjs5sc4rsim92dy1qw4x9cavv5jrp05"; })
   (fetchNuGet { pname = "NuGet.Protocol"; version = "5.11.0"; sha256 = "041pva6ykc5h6az7bb87mkg32c95cvxlixgspnd34zbdldr4ypdb"; })
   (fetchNuGet { pname = "NuGet.Versioning"; version = "5.11.0"; sha256 = "041351n1rbyqpfxqyxbvjgfrcbbawymbq96givz5pvdbabvyf5vq"; })
-  (fetchNuGet { pname = "NUnit"; version = "3.13.3"; sha256 = "0wdzfkygqnr73s6lpxg5b1pwaqz9f414fxpvpdmf72bvh4jaqzv6"; })
+  (fetchNuGet { pname = "NUnit"; version = "3.14.0"; sha256 = "19p8911lrfds1k9rv47jk1bbn665s0pvghkd06gzbg78j6mzzqqa"; })
   (fetchNuGet { pname = "NVika"; version = "2.2.0"; sha256 = "1lxv5m5nf4hfwfdhcscrl8m0hhjkqxxn555wxwb95x0d5w2czx6x"; })
   (fetchNuGet { pname = "OpenTabletDriver"; version = "0.6.4"; sha256 = "14wc2rgnbi2ili6sx9iqnmcbn1zlmbsk49zbiz5cycib6rxkqfdm"; })
   (fetchNuGet { pname = "OpenTabletDriver.Configurations"; version = "0.6.4"; sha256 = "0l7vf607i54y1xilr7bmjy9zlxacm00wz42mfbvzjf9rr54sy2pm"; })
@@ -137,10 +137,10 @@
   (fetchNuGet { pname = "ppy.ManagedBass.Fx"; version = "2022.1216.0"; sha256 = "1vw573mkligpx9qiqasw1683cqaa1kgnxhlnbdcj9c4320b1pwjm"; })
   (fetchNuGet { pname = "ppy.ManagedBass.Mix"; version = "2022.1216.0"; sha256 = "185bpvgbnd8y20r7vxb1an4pd1aal9b7b5wvmv3knz0qg8j0chd9"; })
   (fetchNuGet { pname = "ppy.ManagedBass.Wasapi"; version = "2022.1216.0"; sha256 = "0h2ncf59sza8whvrwwqi8b6fcrkqrnfgfhd0vnhyw0s98nj74f0z"; })
-  (fetchNuGet { pname = "ppy.osu.Framework"; version = "2024.114.0"; sha256 = "1xyfc9j5qiy0skhy8xxxdyss6jpd0bcrbbigq2z3mx750mi77rif"; })
+  (fetchNuGet { pname = "ppy.osu.Framework"; version = "2024.131.0"; sha256 = "0pa80w67nnfp3y25l5a6f6p9x48lj8bw3b24vzi3l8ndgcmnpyxz"; })
   (fetchNuGet { pname = "ppy.osu.Framework.NativeLibs"; version = "2023.1225.0-nativelibs"; sha256 = "008kj91i9486ff2q7fcgb8mmpinskvnmfsqza2m5vafh295y3h7m"; })
   (fetchNuGet { pname = "ppy.osu.Framework.SourceGeneration"; version = "2023.720.0"; sha256 = "001vvxyv483ibid25fdknvij77x0y983mp4psx2lbg3x2al7yxax"; })
-  (fetchNuGet { pname = "ppy.osu.Game.Resources"; version = "2023.1228.0"; sha256 = "09qjfavp71nlzyl6fqgpjfpsilii2fbsjyjggdbq9hf9i49hwz7s"; })
+  (fetchNuGet { pname = "ppy.osu.Game.Resources"; version = "2024.129.0"; sha256 = "032jpqv86z4sc835063gzbshkdzx3qhnzxlyaggidmbwn6i9fja6"; })
   (fetchNuGet { pname = "ppy.osuTK.NS20"; version = "1.0.211"; sha256 = "0j4a9n39pqm0cgdcps47p5n2mqph3h94r7hmf0bs59imif4jxvjy"; })
   (fetchNuGet { pname = "ppy.SDL2-CS"; version = "1.0.693-alpha"; sha256 = "15fgd3j9cs3adldiscqm0ffixf68h06wqdz1xy1286z4gczhi954"; })
   (fetchNuGet { pname = "ppy.Veldrid"; version = "4.9.3-g91ce5a6cda"; sha256 = "0m96jkagz1ab3jgmz61d4z7jrxz058nzsamvqz93c90rlw802cvm"; })
@@ -193,18 +193,17 @@
   (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 = "Sentry"; version = "3.40.0"; sha256 = "1vijf4dfv842y2567sgs4bx51g7jyqsrmg689nj4nbbf44aay99a"; })
-  (fetchNuGet { pname = "SharpCompress"; version = "0.33.0"; sha256 = "1j94hfjvkygpp97svv75jay0rmnx9ygg86d5syyahl9hayns4ig9"; })
-  (fetchNuGet { pname = "SharpCompress"; version = "0.34.1"; sha256 = "0m02yk97fxafdqg6s8408vqcg1a0wll483sj4ff2m0dnxajffkii"; })
+  (fetchNuGet { pname = "Sentry"; version = "3.41.3"; sha256 = "1xrbl1q7qpkv60d5y9fd9a5g2d94nr51xiy31vksklzv011rdlj9"; })
+  (fetchNuGet { pname = "SharpCompress"; version = "0.36.0"; sha256 = "164ikphk4glldr73l247cjb65v064md0ccccm06rh0zvjq5iqlph"; })
   (fetchNuGet { pname = "SharpFNT"; version = "2.0.0"; sha256 = "1bgacgh9hbck0qvji6frbb50sdiqfdng2fvvfgfw8b9qaql91mx0"; })
   (fetchNuGet { pname = "SharpGen.Runtime"; version = "2.0.0-beta.13"; sha256 = "1250z6sa9ghf84czlkzvaysb29c0n229z1f0vh5qls89akrkl7h8"; })
   (fetchNuGet { pname = "SharpGen.Runtime.COM"; version = "2.0.0-beta.13"; sha256 = "1lmv3jp2g7mgy9j23pd3j0wr3p89qiq8v6c6qxqf688izyni1166"; })
   (fetchNuGet { pname = "SixLabors.ImageSharp"; version = "2.1.0"; sha256 = "0lmj3qs39v5jcf2rjwav43nqnc7g6sd4l226l2jw85nidzmpvkwr"; })
-  (fetchNuGet { pname = "SQLitePCLRaw.bundle_e_sqlite3"; version = "2.1.6"; sha256 = "0pzgdfl707pd9fz108xaff22w7c2y27yaix6wfp36phqkdnzz43m"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.bundle_e_sqlite3"; version = "2.1.7"; sha256 = "1pi9mpzy7wi0rcqpny0gkn7pxykg01b0x2pkv8sxl0ddzl8ywg7s"; })
   (fetchNuGet { pname = "SQLitePCLRaw.core"; version = "2.1.4"; sha256 = "09akxz92qipr1cj8mk2hw99i0b81wwbwx26gpk21471zh543f8ld"; })
-  (fetchNuGet { pname = "SQLitePCLRaw.core"; version = "2.1.6"; sha256 = "1w8zsgz2w2q0a9cw9cl1rzrpv48a04nhyq67ywan6xlgknds65a7"; })
-  (fetchNuGet { pname = "SQLitePCLRaw.lib.e_sqlite3"; version = "2.1.6"; sha256 = "0g959z7r3h43nwzm7z3jiib1xvyx146lxyv0x6fl8ll5wivpjyxq"; })
-  (fetchNuGet { pname = "SQLitePCLRaw.provider.e_sqlite3"; version = "2.1.6"; sha256 = "1vs1c7yhi0mdqrd35ji289cxkhg7dxdnn6wgjjbngvqxkdhkyxyc"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.core"; version = "2.1.7"; sha256 = "1y3jl4c76g2i13xss72nfvx5qr6mzsbjvjc5f9arybh53a0wavd6"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.lib.e_sqlite3"; version = "2.1.7"; sha256 = "1kbwf3fn8kcf1q3gm87m359yxmb6kcnclk2y469008yijvijwa26"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.provider.e_sqlite3"; version = "2.1.7"; sha256 = "0kcbn0s7n3ck1s1x30zf9y7x8n6c09qgj7n20h4zj2hyxcp3ag9b"; })
   (fetchNuGet { pname = "StbiSharp"; version = "1.1.0"; sha256 = "0wbw20m7nyhxj32k153l668sxigamlwig0qpz8l8d0jqz35vizm0"; })
   (fetchNuGet { pname = "System.AppContext"; version = "4.1.0"; sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz"; })
   (fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
@@ -235,7 +234,7 @@
   (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.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
-  (fetchNuGet { pname = "System.IO.Packaging"; version = "7.0.0"; sha256 = "16fgj2ab5ci217shmfsi6c0rnmkh90h6vyb60503nhpmh7y8di13"; })
+  (fetchNuGet { pname = "System.IO.Packaging"; version = "8.0.0"; sha256 = "1w1v3mswq9lzyh88046v0gmsb0pdl249hdazybsfxd9paqdrl4wh"; })
   (fetchNuGet { pname = "System.IO.Pipelines"; version = "7.0.0"; sha256 = "1ila2vgi1w435j7g2y7ykp2pdbh9c5a02vm85vql89az93b7qvav"; })
   (fetchNuGet { pname = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
   (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
@@ -309,7 +308,7 @@
   (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "5.0.0"; sha256 = "1bn2pzaaq4wx9ixirr8151vm5hynn3lmrljcgjx9yghmm4k677k0"; })
   (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
   (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "7.0.0"; sha256 = "1151hbyrcf8kyg1jz8k9awpbic98lwz9x129rg7zk1wrs6vjlpxl"; })
-  (fetchNuGet { pname = "System.Text.Json"; version = "7.0.3"; sha256 = "0zjrnc9lshagm6kdb9bdh45dmlnkpwcpyssa896sda93ngbmj8k9"; })
+  (fetchNuGet { pname = "System.Text.Json"; version = "7.0.4"; sha256 = "1khcg2r7i29rpbg4mqxncs6r88s9hbbjzxpj29d13zvd31wypyv9"; })
   (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"; })
@@ -329,5 +328,5 @@
   (fetchNuGet { pname = "Vortice.DirectX"; version = "2.4.2"; sha256 = "11yjyvyz922z1ygl8gxmdym3918df12nl7xxry4pdjpl8is33qic"; })
   (fetchNuGet { pname = "Vortice.DXGI"; version = "2.4.2"; sha256 = "17vsnm9ca6nqk3f1dfpfvd6i6fp8x8v41bn65rchrzwcv1zzi6pz"; })
   (fetchNuGet { pname = "Vortice.Mathematics"; version = "1.4.25"; sha256 = "0vl6g087disxyzskvkbnwym74s47lkza0ly3nk4y0y88zibcggrj"; })
-  (fetchNuGet { pname = "ZstdSharp.Port"; version = "0.7.2"; sha256 = "0ngngpjaxy3dnrz3mrfhkw52bp05n1xg4ckzf07yhc81hwzq1yi1"; })
+  (fetchNuGet { pname = "ZstdSharp.Port"; version = "0.7.4"; sha256 = "0087rymvclj96pscd8lbjidsdg1g4p83m6y20bcicz8sx7jnnzyg"; })
 ]
diff --git a/pkgs/games/path-of-building/default.nix b/pkgs/games/path-of-building/default.nix
index a889b6f7ea74..63394be1e99c 100644
--- a/pkgs/games/path-of-building/default.nix
+++ b/pkgs/games/path-of-building/default.nix
@@ -2,13 +2,13 @@
 let
   data = stdenv.mkDerivation(finalAttrs: {
     pname = "path-of-building-data";
-    version = "2.38.4";
+    version = "2.39.3";
 
     src = fetchFromGitHub {
       owner = "PathOfBuildingCommunity";
       repo = "PathOfBuilding";
       rev = "v${finalAttrs.version}";
-      hash = "sha256-fCKOmP0PxhK2trBA1lyE6kf128FrsuCmBrXMIGTIt0U=";
+      hash = "sha256-W4MmncDfeiuN7VeIeoPHEufTb9ncA3aA8F0JNhI9Z/o=";
     };
 
     nativeBuildInputs = [ unzip ];
diff --git a/pkgs/games/quakespasm/vulkan.nix b/pkgs/games/quakespasm/vulkan.nix
index 50862be46bd3..e9786a001e3a 100644
--- a/pkgs/games/quakespasm/vulkan.nix
+++ b/pkgs/games/quakespasm/vulkan.nix
@@ -36,6 +36,10 @@ stdenv.mkDerivation rec {
 
   makeFlags = [ "prefix=$(out) bindir=$(out)/bin" ];
 
+  env = lib.optionalAttrs stdenv.isDarwin {
+    NIX_CFLAGS_COMPILE = "-Wno-error=unused-but-set-variable";
+  };
+
   postFixup = ''
     wrapProgram $out/bin/vkquake \
       --prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib
diff --git a/pkgs/games/shattered-pixel-dungeon/default.nix b/pkgs/games/shattered-pixel-dungeon/default.nix
index 625fe5010833..47026485e9e6 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.2.1";
+  version = "2.3.0";
 
   src = fetchFromGitHub {
     owner = "00-Evan";
     repo = "shattered-pixel-dungeon";
     rev = "v${version}";
-    hash = "sha256-0wSlCazsy3TYckWc2bQJL1xBVN2DuYsBIbb9Ajnfl7M=";
+    hash = "sha256-PUAHsFW8rb4SZlZKCIx6SO3U7I7uJgfUal2VXzUjQNs=";
   };
 
   depsHash = "sha256-QfAV6LYD6S/8ptaqqKSDtOe4kStwp6LJp8WVc3sH8yc=";
diff --git a/pkgs/games/steam/runtime.nix b/pkgs/games/steam/runtime.nix
index 593d78afe0cc..8e0492b69af8 100644
--- a/pkgs/games/steam/runtime.nix
+++ b/pkgs/games/steam/runtime.nix
@@ -8,11 +8,11 @@ stdenv.mkDerivation rec {
 
   pname = "steam-runtime";
   # from https://repo.steampowered.com/steamrt-images-scout/snapshots/latest-steam-client-general-availability/VERSION.txt
-  version = "0.20220601.1";
+  version = "0.20231127.68515";
 
   src = fetchurl {
     url = "https://repo.steampowered.com/steamrt-images-scout/snapshots/${version}/steam-runtime.tar.xz";
-    sha256 = "sha256-uYauNtbUlvrnATGks7hWy1zt4Y7AEeADrCr1eVylPbY=";
+    sha256 = "sha256-invUOdJGNhrswsj9Vj/bSAkEigWtBQ554sBAyvPf0mk=";
     name = "scout-runtime-${version}.tar.gz";
   };
 
diff --git a/pkgs/games/stuntrally/default.nix b/pkgs/games/stuntrally/default.nix
index b4b2268c33e9..813701c6ccd1 100644
--- a/pkgs/games/stuntrally/default.nix
+++ b/pkgs/games/stuntrally/default.nix
@@ -48,6 +48,13 @@ stdenv.mkDerivation rec {
     hash = "sha256-fglm1FetFGHM/qGTtpxDb8+k2iAREn5DQR5GPujuLms=";
   };
 
+  postPatch = ''
+    substituteInPlace config/*-default.cfg \
+      --replace "screenshot_png = off" "screenshot_png = on"
+    substituteInPlace source/*/BaseApp_Create.cpp \
+      --replace "Codec_FreeImage" "Codec_STBI"
+  '';
+
   preConfigure = ''
     rmdir data/tracks
     ln -s ${tracks}/ data/tracks
diff --git a/pkgs/games/ultrastardx/default.nix b/pkgs/games/ultrastardx/default.nix
index 40c2f54c601a..7364b0a5e5b3 100644
--- a/pkgs/games/ultrastardx/default.nix
+++ b/pkgs/games/ultrastardx/default.nix
@@ -31,13 +31,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "ultrastardx";
-  version = "2023.12.0";
+  version = "2024.1.0";
 
   src = fetchFromGitHub {
     owner = "UltraStar-Deluxe";
     repo = "USDX";
     rev = "v${version}";
-    hash = "sha256-BR2TZMg5Xr8K2IEpQBbkR3SkyBQUXdYABjVOoe6GnJc=";
+    hash = "sha256-pyX2zQiCp9lHSV1sGz0GaM5jTaBtyw50I6bFVbSm5S4=";
   };
 
   nativeBuildInputs = [ pkg-config autoreconfHook ];
diff --git a/pkgs/games/unciv/default.nix b/pkgs/games/unciv/default.nix
index 497954a093e0..68bf0fc8feba 100644
--- a/pkgs/games/unciv/default.nix
+++ b/pkgs/games/unciv/default.nix
@@ -5,6 +5,7 @@
 , makeDesktopItem
 , makeWrapper
 , jre
+, libGL
 , libpulseaudio
 , libXxf86vm
 }:
@@ -17,19 +18,20 @@ let
     categories = [ "Game" ];
   };
 
-  envLibPath = lib.makeLibraryPath [
+  envLibPath = lib.makeLibraryPath (lib.optionals stdenv.isLinux [
+    libGL
     libpulseaudio
     libXxf86vm
-  ];
+  ]);
 
 in
 stdenv.mkDerivation rec {
   pname = "unciv";
-  version = "4.9.13";
+  version = "4.10.5";
 
   src = fetchurl {
     url = "https://github.com/yairm210/Unciv/releases/download/${version}/Unciv.jar";
-    hash = "sha256-AQHhqxnNTNArXYlqpNcUMDRVb/IAR3dCYue+y0wPAw8=";
+    hash = "sha256-XRm3V2JEwJJWMEVohkT+8JGcTJttYPcB1u0VNnMRxVY=";
   };
 
   dontUnpack = true;
@@ -40,7 +42,7 @@ stdenv.mkDerivation rec {
     runHook preInstall
 
     makeWrapper ${jre}/bin/java $out/bin/unciv \
-      --prefix LD_LIBRARY_PATH : ${envLibPath} \
+      --prefix LD_LIBRARY_PATH : "${envLibPath}" \
       --prefix PATH : ${lib.makeBinPath [ jre ]} \
       --add-flags "-jar ${src}"
 
diff --git a/pkgs/games/vassal/default.nix b/pkgs/games/vassal/default.nix
index 15453c8878ee..8395c4ac5fff 100644
--- a/pkgs/games/vassal/default.nix
+++ b/pkgs/games/vassal/default.nix
@@ -9,11 +9,11 @@
 
 stdenv.mkDerivation rec {
   pname = "VASSAL";
-  version = "3.7.6";
+  version = "3.7.8";
 
   src = fetchzip {
     url = "https://github.com/vassalengine/vassal/releases/download/${version}/${pname}-${version}-linux.tar.bz2";
-    sha256 = "sha256-t/GlLLokDxpHBO+ub1MOJ1yjK0tB/FSb6lCBMFVn0V8=";
+    sha256 = "sha256-KZIfgCOZbirstKotQhfcNvJdf3wP1L1o9Wt33ddFrfM=";
   };
 
   buildInputs = [
diff --git a/pkgs/games/vcmi/default.nix b/pkgs/games/vcmi/default.nix
index fc4ac89fb1b9..ec6905e2d130 100644
--- a/pkgs/games/vcmi/default.nix
+++ b/pkgs/games/vcmi/default.nix
@@ -27,13 +27,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vcmi";
-  version = "1.4.2";
+  version = "1.4.5";
 
   src = fetchFromGitHub {
     owner = "vcmi";
     repo = "vcmi";
     rev = version;
-    hash = "sha256-C8WzEidTanWKPI/J2bEsi7sTMhn+FmykC55EsXZLLQ0=";
+    hash = "sha256-nyYzG0O7tZwo77r7QwenVgaTffZ3ELEyUrkZmdvwm/w=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/games/vintagestory/default.nix b/pkgs/games/vintagestory/default.nix
index d2138759bca8..474b5e2ddbac 100644
--- a/pkgs/games/vintagestory/default.nix
+++ b/pkgs/games/vintagestory/default.nix
@@ -20,11 +20,11 @@
 
 stdenv.mkDerivation rec {
   pname = "vintagestory";
-  version = "1.18.15";
+  version = "1.19.3";
 
   src = fetchurl {
     url = "https://cdn.vintagestory.at/gamefiles/stable/vs_client_linux-x64_${version}.tar.gz";
-    hash = "sha256-luZwRKVptSd69tCaf6Jv0YOfwOeDOcuY7VoL+21tTEo=";
+    hash = "sha256-ULxwNdQLQCWJqCTiGtT1X/Y32f406FT/UPAJNBYrV/s=";
   };
 
 
diff --git a/pkgs/games/vvvvvv/default.nix b/pkgs/games/vvvvvv/default.nix
index 909bfa430d70..07f98d94f3e1 100644
--- a/pkgs/games/vvvvvv/default.nix
+++ b/pkgs/games/vvvvvv/default.nix
@@ -6,11 +6,10 @@
 , makeWrapper
 , copyDesktopItems
 , makeDesktopItem
+, faudio
 , physfs
 , SDL2
-, SDL2_mixer
 , tinyxml-2
-, utf8cpp
 , Foundation
 , IOKit
 , makeAndPlay ? false
@@ -18,19 +17,16 @@
 
 stdenv.mkDerivation rec {
   pname = "vvvvvv";
-  version = "2.3.6";
+  version = "2.4";
 
   src = fetchFromGitHub {
     owner = "TerryCavanagh";
     repo = "VVVVVV";
     rev = version;
-    sha256 = "sha256-sLNO4vkmlirsqJmCV9YWpyNnIiigU1KMls7rOgWgSmQ=";
+    sha256 = "sha256-AecaEWjWELRnCzTdMz+rDXVKnpPF+LNmxiKqMwQMm4k=";
+    fetchSubmodules = true;
   };
 
-  patches = [
-    ./utf8cpp.patch
-  ];
-
   dataZip = fetchurl {
     url = "https://thelettervsixtim.es/makeandplay/data.zip";
     name = "data.zip";
@@ -45,21 +41,16 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    faudio
     physfs
     SDL2
-    SDL2_mixer
     tinyxml-2
-    utf8cpp
   ] ++ lib.optionals stdenv.isDarwin [ Foundation IOKit ];
 
-  # Help CMake find SDL_mixer.h
-  env.NIX_CFLAGS_COMPILE = "-I${lib.getDev SDL2_mixer}/include/SDL2";
-
   cmakeDir = "../desktop_version";
 
   cmakeFlags = [
     "-DBUNDLE_DEPENDENCIES=OFF"
-    "-DCMAKE_CXX_FLAGS='-I${lib.getDev utf8cpp}/include/utf8cpp'"
   ] ++ lib.optional makeAndPlay "-DMAKEANDPLAY=ON";
 
   desktopItems = [
@@ -80,8 +71,13 @@ stdenv.mkDerivation rec {
 
     install -Dm755 VVVVVV $out/bin/${pname}
     install -Dm644 "$src/desktop_version/icon.ico" "$out/share/pixmaps/VVVVVV.png"
+    cp -r "$src/desktop_version/fonts/" "$out/share/"
+    cp -r "$src/desktop_version/lang/" "$out/share/"
 
-    wrapProgram $out/bin/${pname} --add-flags "-assets ${dataZip}"
+    wrapProgram $out/bin/${pname} \
+      --add-flags "-assets ${dataZip}" \
+      --add-flags "-langdir $out/share/lang" \
+      --add-flags "-fontsdir $out/share/fonts"
 
     runHook postInstall
   '';
diff --git a/pkgs/games/vvvvvv/utf8cpp.patch b/pkgs/games/vvvvvv/utf8cpp.patch
deleted file mode 100644
index fc279564e759..000000000000
--- a/pkgs/games/vvvvvv/utf8cpp.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/desktop_version/CMakeLists.txt b/desktop_version/CMakeLists.txt
-index 7405c122..68ba40e3 100644
---- a/desktop_version/CMakeLists.txt
-+++ b/desktop_version/CMakeLists.txt
-@@ -296,7 +296,7 @@ if(BUNDLE_DEPENDENCIES)
- else()
- 	find_package(utf8cpp CONFIG)
- 
--	target_link_libraries(VVVVVV physfs tinyxml2 utf8cpp lodepng-static)
-+	target_link_libraries(VVVVVV physfs tinyxml2 utf8cpp::utf8cpp lodepng-static)
- endif()
- 
- # SDL2 Dependency (Detection pulled from FAudio)
diff --git a/pkgs/misc/drivers/m33-linux/default.nix b/pkgs/misc/drivers/m33-linux/default.nix
index 84272898f52c..188013d0c644 100644
--- a/pkgs/misc/drivers/m33-linux/default.nix
+++ b/pkgs/misc/drivers/m33-linux/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch }:
 
 stdenv.mkDerivation {
   pname = "M33-Linux";
@@ -11,6 +11,16 @@ stdenv.mkDerivation {
     sha256 = "1bvbclkyfcv23vxb4s1zssvygklks1nhp4iwi4v90c1fvyz0356f";
   };
 
+  patches = [
+    # Pull the `gcc-13` build fix pending upstream inclusion:
+    #   https://github.com/donovan6000/M33-Linux/pull/6
+    (fetchpatch {
+      name = "gcc-13.patch";
+      url = "https://github.com/donovan6000/M33-Linux/commit/272e4488ef05cfd95fcc952becfc0ac982306d0c.patch";
+      hash = "sha256-ubdCwXFVljvOCzYrWVJgU6PY1j6Ei6aaclhXaGwZT2w=";
+    })
+  ];
+
   installPhase = ''
     install -Dm755 m33-linux $out/bin/m33-linux
     install -Dm755 90-micro-3d-local.rules $out/lib/udev/rules.d/90-micro-3d-local.rules
diff --git a/pkgs/misc/drivers/sc-controller/default.nix b/pkgs/misc/drivers/sc-controller/default.nix
index 009e08967453..48783b492387 100644
--- a/pkgs/misc/drivers/sc-controller/default.nix
+++ b/pkgs/misc/drivers/sc-controller/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonApplication rec {
   pname = "sc-controller";
-  version = "0.4.8.11";
+  version = "0.4.8.13";
 
   src = fetchFromGitHub {
     owner  = "Ryochan7";
     repo   = pname;
-    rev    = "v${version}";
-    sha256 = "xu9QqddJf0cXkhNPrOnE+L8CV5AfgcCyk9DSh+G94c0=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-vK/5S+GyqVfKTqn5PaPmOV/tXE9PIW57gqYxvhGaJSg=";
   };
 
   nativeBuildInputs = [ wrapGAppsHook gobject-introspection ];
diff --git a/pkgs/misc/fastly/default.nix b/pkgs/misc/fastly/default.nix
index b5a19d30b523..3a1efa9c15be 100644
--- a/pkgs/misc/fastly/default.nix
+++ b/pkgs/misc/fastly/default.nix
@@ -10,13 +10,13 @@
 
 buildGoModule rec {
   pname = "fastly";
-  version = "10.7.0";
+  version = "10.8.0";
 
   src = fetchFromGitHub {
     owner = "fastly";
     repo = "cli";
     rev = "refs/tags/v${version}";
-    hash = "sha256-KqFBsSoiKzvbSG5XanlFcU8NkveksnEbfqNuPeWEb48=";
+    hash = "sha256-XlfTtA4jYFrs1W8pyulkqbhrRt8vS+oPB/g9/tIW8Ws=";
     # The git commit is part of the `fastly version` original output;
     # leave that output the same in nixpkgs. Use the `.git` directory
     # to retrieve the commit SHA, and remove the directory afterwards,
@@ -33,7 +33,7 @@ buildGoModule rec {
     "cmd/fastly"
   ];
 
-  vendorHash = "sha256-Mh737emdQkIoNOAkaTafCoMQnLqXIGMKX6X5ClsmMzc=";
+  vendorHash = "sha256-sN6kJspIG3XKW71sTjINE+hoWHNbd8ZmVEXNcvuvThg=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/misc/jitsi-meet-prosody/default.nix b/pkgs/misc/jitsi-meet-prosody/default.nix
index c121d88941f7..a30856e42dc8 100644
--- a/pkgs/misc/jitsi-meet-prosody/default.nix
+++ b/pkgs/misc/jitsi-meet-prosody/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "jitsi-meet-prosody";
-  version = "1.0.7712";
+  version = "1.0.7762";
   src = fetchurl {
     url = "https://download.jitsi.org/stable/${pname}_${version}-1_all.deb";
-    sha256 = "MONg1CxLrfB+cmmXm4r3HqwF1on+vDZ0IODKSr7PsWo=";
+    sha256 = "AbIr+nJEccZFWDbuo+VeTEpLkreOBzKkrJFZFvY1ppI=";
   };
 
   dontBuild = true;
diff --git a/pkgs/misc/lilypond/unstable.nix b/pkgs/misc/lilypond/unstable.nix
index 77ac8c3e8d36..ad2560a751cb 100644
--- a/pkgs/misc/lilypond/unstable.nix
+++ b/pkgs/misc/lilypond/unstable.nix
@@ -1,10 +1,10 @@
 { lib, fetchurl, lilypond }:
 
 lilypond.overrideAttrs (oldAttrs: rec {
-  version = "2.25.11";
+  version = "2.25.12";
   src = fetchurl {
     url = "https://lilypond.org/download/sources/v${lib.versions.majorMinor version}/lilypond-${version}.tar.gz";
-    hash = "sha256-DDvo1LBTnDVSDyRDYF0aEToFsmvW1dlTaMHdpBEOdMI=";
+    hash = "sha256-6zOa+mvXN1SQYgUimdxkYQ/Eh+iaCb+FeXe/dglbHmk=";
   };
 
   passthru.updateScript = {
diff --git a/pkgs/misc/logging/beats/7.x.nix b/pkgs/misc/logging/beats/7.x.nix
index ad4d00a8149e..5d0629d1fb69 100644
--- a/pkgs/misc/logging/beats/7.x.nix
+++ b/pkgs/misc/logging/beats/7.x.nix
@@ -8,10 +8,10 @@ let beat = package: extraArgs: buildGoModule (rec {
     owner = "elastic";
     repo = "beats";
     rev = "v${version}";
-    hash = "sha256-Quq32/3NeGhrsy17GrIeBiB3LGQuMFTFl3lAyyU6GZM=";
+    hash = "sha256-0qwWHRIDLlnaPOCRmiiFGg+/jdanWuQtggM2QSaMR1o=";
   };
 
-  vendorHash = "sha256-UJjwCRxY1rrymroBqC/SfCVM9vmnQOtLlS3OONih3kM=";
+  vendorHash = "sha256-rwCCpptppkpvwQWUtqTjBUumP8GSpPHBTCaj0nYVQv8=";
 
   subPackages = [ package ];
 
diff --git a/pkgs/misc/rivalcfg/default.nix b/pkgs/misc/rivalcfg/default.nix
index f6b45af3af34..3633fa0878c1 100644
--- a/pkgs/misc/rivalcfg/default.nix
+++ b/pkgs/misc/rivalcfg/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonPackage rec {
   pname = "rivalcfg";
-  version = "4.8.0";
+  version = "4.10.0";
 
   src = fetchFromGitHub {
     owner = "flozz";
     repo = "rivalcfg";
-    rev = "v${version}";
-    sha256 = "sha256-fCl+XY+R+QF7jWLkqii4v0sbXr7xoX3A3upm+XoBAms=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-8/2jEwEKdBGv31eQKao631siyUDlbtcy0HwP4+OGSok=";
   };
 
   propagatedBuildInputs = with python3Packages; [ hidapi setuptools ];
diff --git a/pkgs/misc/tmux-plugins/default.nix b/pkgs/misc/tmux-plugins/default.nix
index 2490fada2233..9e6bf4911342 100644
--- a/pkgs/misc/tmux-plugins/default.nix
+++ b/pkgs/misc/tmux-plugins/default.nix
@@ -534,6 +534,23 @@ in rec {
     };
   };
 
+  rose-pine = mkTmuxPlugin {
+    pluginName = "rose-pine";
+    version = "unstable-2024-01-08";
+    rtpFilePath = "rose-pine.tmux";
+    src = fetchFromGitHub {
+      owner = "rose-pine";
+      repo = "tmux";
+      rev = "dd6d01338ac4afeb96542dcf24e4a7fe179b69e6";
+      sha256 = "sha256-Tccb4VjdotOSw7flJV4N0H4557NxRhXiCecZBPU9ICQ=";
+    };
+    meta = {
+      homepage = "https://github.com/rose-pine/tmux";
+      description = "Rosé Pine theme for tmux";
+      license = lib.licenses.mit;
+    };
+  };
+
   sensible = mkTmuxPlugin {
     pluginName = "sensible";
     version = "unstable-2017-09-05";
@@ -548,6 +565,39 @@ in rec {
     '';
   };
 
+  session-wizard = mkTmuxPlugin rec {
+    pluginName = "session-wizard";
+    rtpFilePath = "session-wizard.tmux";
+    version = "1.2.0";
+    src = pkgs.fetchFromGitHub {
+      owner = "27medkamal";
+      repo = "tmux-session-wizard";
+      rev = "V${version}";
+      sha256 = "sha256-IfSgX02vXdpzyu1GRF1EvzVCqqOEiTjeXtl1EvNr7EI=";
+    };
+    meta = with lib; {
+      homepage = "https://github.com/27medkamal/tmux-session-wizard";
+      description = "Tmux plugin for creating and switching between sessions based on recently accessed directories";
+      longDescription = ''
+        Session Wizard is using fzf and zoxide to do all the magic. Features:
+        * Creating a new session from a list of recently accessed directories
+        * Naming a session after a folder/project
+        * Switching sessions
+        * Viewing current or creating new sessions in one popup
+      '';
+      license = licenses.mit;
+      platforms = platforms.unix;
+      maintainers = with maintainers; [ mandos ];
+    };
+    nativeBuildInputs = [ pkgs.makeWrapper ];
+    postInstall = ''
+      substituteInPlace $target/session-wizard.tmux \
+        --replace  \$CURRENT_DIR/session-wizard.sh $target/session-wizard.sh
+      wrapProgram $target/session-wizard.sh \
+        --prefix PATH : ${with pkgs; lib.makeBinPath ([ fzf zoxide coreutils gnugrep gnused ])}
+    '';
+  };
+
   sessionist = mkTmuxPlugin {
     pluginName = "sessionist";
     version = "unstable-2017-12-03";
@@ -651,6 +701,28 @@ in rec {
     inherit mkTmuxPlugin;
   };
 
+  t-smart-tmux-session-manager = mkTmuxPlugin rec {
+    pluginName = "t-smart-tmux-session-manager";
+    version = "2.8.0";
+    rtpFilePath = "t-smart-tmux-session-manager.tmux";
+    src = pkgs.fetchFromGitHub {
+      owner = "joshmedeski";
+      repo = "t-smart-tmux-session-manager";
+      rev = "v${version}";
+      sha256 = "sha256-EMDEEIWJ+XFOk0WsQPAwj9BFBVDNwFUCyd1ScceqKpc=";
+    };
+    nativeBuildInputs = [ pkgs.makeWrapper ];
+    postInstall = ''
+      wrapProgram $out/share/tmux-plugins/t-smart-tmux-session-manager/bin/t \
+          --prefix PATH : ${with pkgs; lib.makeBinPath (
+            [ pkgs.fzf pkgs.zoxide ]
+          )}
+
+      find $target -type f -print0 | xargs -0 sed -i -e 's|fzf |${pkgs.fzf}/bin/fzf |g'
+      find $target -type f -print0 | xargs -0 sed -i -e 's|zoxide |${pkgs.zoxide}/bin/zoxide |g'
+    '';
+  };
+
   urlview = mkTmuxPlugin {
     pluginName = "urlview";
     version = "unstable-2016-01-06";
diff --git a/pkgs/misc/uboot/default.nix b/pkgs/misc/uboot/default.nix
index 6f32434afaac..5d661140d743 100644
--- a/pkgs/misc/uboot/default.nix
+++ b/pkgs/misc/uboot/default.nix
@@ -353,6 +353,15 @@ in {
     filesToInstall = ["u-boot-sunxi-with-spl.bin"];
   };
 
+  ubootOlimexA64Teres1 = buildUBoot {
+    defconfig = "teres_i_defconfig";
+    extraMeta.platforms = ["aarch64-linux"];
+    BL31 = "${armTrustedFirmwareAllwinner}/bl31.bin";
+    # Using /dev/null here is upstream-specified way that disables the inclusion of crust-firmware as it's not yet packaged and without which the build will fail -- https://docs.u-boot.org/en/latest/board/allwinner/sunxi.html#building-the-crust-management-processor-firmware
+    SCP = "/dev/null";
+    filesToInstall = ["u-boot-sunxi-with-spl.bin"];
+  };
+
   ubootOrangePiPc = buildUBoot {
     defconfig = "orangepi_pc_defconfig";
     extraMeta.platforms = ["armv7l-linux"];
diff --git a/pkgs/misc/vencord/default.nix b/pkgs/misc/vencord/default.nix
index 7431334b91ce..d1398d650627 100644
--- a/pkgs/misc/vencord/default.nix
+++ b/pkgs/misc/vencord/default.nix
@@ -5,8 +5,8 @@
 , buildWebExtension ? false
 }:
 let
-  version = "1.6.5";
-  gitHash = "d629281";
+  version = "1.6.7";
+  gitHash = "8a168bd";
 in
 buildNpmPackage rec {
   pname = "vencord";
@@ -16,7 +16,7 @@ buildNpmPackage rec {
     owner = "Vendicated";
     repo = "Vencord";
     rev = "v${version}";
-    hash = "sha256-/aZIjHWqk55Lo2fnu8Dx+iERRO8xOo/xjcmMmTPFj50=";
+    hash = "sha256-opQm0/nBt0O9iVPbLJAn5G2wPe20mhWroG0Y7ug3S7A=";
   };
 
   ESBUILD_BINARY_PATH = lib.getExe (esbuild.overrideAttrs (final: _: {
@@ -34,7 +34,7 @@ buildNpmPackage rec {
   npmRebuildFlags = [ "|| true" ];
 
   makeCacheWritable = true;
-  npmDepsHash = "sha256-n9RC1B0VKDQtY3jOH+ZZKD1E6yfszkYSwEnRzzruBjg=";
+  npmDepsHash = "sha256-78eZrnXRZwu365mKoBonrpy1fP/chVoQ2qIOhUkdWc8=";
   npmFlags = [ "--legacy-peer-deps" ];
   npmBuildScript = if buildWebExtension then "buildWeb" else "build";
   npmBuildFlags = [ "--" "--standalone" "--disable-updater" ];
diff --git a/pkgs/misc/vencord/package-lock.json b/pkgs/misc/vencord/package-lock.json
index abc52ec812b7..ee2e842aca57 100644
--- a/pkgs/misc/vencord/package-lock.json
+++ b/pkgs/misc/vencord/package-lock.json
@@ -1,12 +1,12 @@
 {
     "name": "vencord",
-    "version": "1.6.5",
+    "version": "1.6.7",
     "lockfileVersion": 3,
     "requires": true,
     "packages": {
         "": {
             "name": "vencord",
-            "version": "1.6.5",
+            "version": "1.6.7",
             "license": "GPL-3.0-or-later",
             "dependencies": {
                 "@sapphi-red/web-noise-suppressor": "0.3.3",
@@ -242,9 +242,9 @@
             }
         },
         "node_modules/@csstools/css-parser-algorithms": {
-            "version": "2.3.2",
-            "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.2.tgz",
-            "integrity": "sha512-sLYGdAdEY2x7TSw9FtmdaTrh2wFtRJO5VMbBrA8tEqEod7GEggFmxTSK9XqExib3yMuYNcvcTdCZIP6ukdjAIA==",
+            "version": "2.5.0",
+            "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.5.0.tgz",
+            "integrity": "sha512-abypo6m9re3clXA00eu5syw+oaPHbJTPapu9C4pzNsJ4hdZDzushT50Zhu+iIYXgEe1CxnRMn7ngsbV+MLrlpQ==",
             "dev": true,
             "funding": [
                 {
@@ -260,13 +260,13 @@
                 "node": "^14 || ^16 || >=18"
             },
             "peerDependencies": {
-                "@csstools/css-tokenizer": "^2.2.1"
+                "@csstools/css-tokenizer": "^2.2.3"
             }
         },
         "node_modules/@csstools/css-tokenizer": {
-            "version": "2.2.1",
-            "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.1.tgz",
-            "integrity": "sha512-Zmsf2f/CaEPWEVgw29odOj+WEVoiJy9s9NOv5GgNY9mZ1CZ7394By6wONrONrTsnNDv6F9hR02nvFihrGVGHBg==",
+            "version": "2.2.3",
+            "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.3.tgz",
+            "integrity": "sha512-pp//EvZ9dUmGuGtG1p+n17gTHEOqu9jO+FiCUjNN3BDmyhdA2Jq9QsVeR7K8/2QCK17HSsioPlTW9ZkzoWb3Lg==",
             "dev": true,
             "funding": [
                 {
@@ -283,9 +283,9 @@
             }
         },
         "node_modules/@csstools/media-query-list-parser": {
-            "version": "2.1.5",
-            "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.5.tgz",
-            "integrity": "sha512-IxVBdYzR8pYe89JiyXQuYk4aVVoCPhMJkz6ElRwlVysjwURTsTk/bmY/z4FfeRE+CRBMlykPwXEVUg8lThv7AQ==",
+            "version": "2.1.7",
+            "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.7.tgz",
+            "integrity": "sha512-lHPKJDkPUECsyAvD60joYfDmp8UERYxHGkFfyLJFTVK/ERJe0sVlIFLXU5XFxdjNDTerp5L4KeaKG+Z5S94qxQ==",
             "dev": true,
             "funding": [
                 {
@@ -301,14 +301,14 @@
                 "node": "^14 || ^16 || >=18"
             },
             "peerDependencies": {
-                "@csstools/css-parser-algorithms": "^2.3.2",
-                "@csstools/css-tokenizer": "^2.2.1"
+                "@csstools/css-parser-algorithms": "^2.5.0",
+                "@csstools/css-tokenizer": "^2.2.3"
             }
         },
         "node_modules/@csstools/selector-specificity": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.0.tgz",
-            "integrity": "sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g==",
+            "version": "3.0.1",
+            "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.1.tgz",
+            "integrity": "sha512-NPljRHkq4a14YzZ3YD406uaxh7s0g6eAq3L9aLOWywoqe8PkYamAvtsh7KNX6c++ihDrJ0RiU+/z7rGnhlZ5ww==",
             "dev": true,
             "funding": [
                 {
@@ -727,22 +727,22 @@
             }
         },
         "node_modules/@eslint/js": {
-            "version": "8.55.0",
-            "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz",
-            "integrity": "sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==",
+            "version": "8.56.0",
+            "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz",
+            "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==",
             "dev": true,
             "engines": {
                 "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
             }
         },
         "node_modules/@humanwhocodes/config-array": {
-            "version": "0.11.13",
-            "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz",
-            "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==",
+            "version": "0.11.14",
+            "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
+            "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
             "dev": true,
             "dependencies": {
-                "@humanwhocodes/object-schema": "^2.0.1",
-                "debug": "^4.1.1",
+                "@humanwhocodes/object-schema": "^2.0.2",
+                "debug": "^4.3.1",
                 "minimatch": "^3.0.5"
             },
             "engines": {
@@ -763,9 +763,9 @@
             }
         },
         "node_modules/@humanwhocodes/object-schema": {
-            "version": "2.0.1",
-            "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz",
-            "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==",
+            "version": "2.0.2",
+            "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
+            "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==",
             "dev": true
         },
         "node_modules/@nodelib/fs.scandir": {
@@ -864,9 +864,9 @@
             }
         },
         "node_modules/@types/filewriter": {
-            "version": "0.0.32",
-            "resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.32.tgz",
-            "integrity": "sha512-Kpi2GXQyYJdjL8mFclL1eDgihn1SIzorMZjD94kdPZh9E4VxGOeyjPxi5LpsM4Zku7P0reqegZTt2GxhmA9VBg==",
+            "version": "0.0.33",
+            "resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.33.tgz",
+            "integrity": "sha512-xFU8ZXTw4gd358lb2jw25nxY9QAgqn2+bKKjKOYfNCzN4DKCFetK7sPtrlpg66Ywe3vWY9FNxprZawAh9wfJ3g==",
             "dev": true
         },
         "node_modules/@types/har-format": {
@@ -894,9 +894,9 @@
             "dev": true
         },
         "node_modules/@types/node": {
-            "version": "18.19.3",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.3.tgz",
-            "integrity": "sha512-k5fggr14DwAytoA/t8rPrIz++lXK7/DqckthCmoZOKNsEbJkId4Z//BqgApXBUGrGddrigYa1oqheo/7YmW4rg==",
+            "version": "18.19.14",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.14.tgz",
+            "integrity": "sha512-EnQ4Us2rmOS64nHDWr0XqAD8DsO6f3XR6lf9UIIrZQpUzPVdN/oPuEzfDWNHSyXLvoGgjuEm/sPwFGSSs35Wtg==",
             "dev": true,
             "dependencies": {
                 "undici-types": "~5.26.4"
@@ -915,9 +915,9 @@
             "dev": true
         },
         "node_modules/@types/react": {
-            "version": "18.2.45",
-            "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.45.tgz",
-            "integrity": "sha512-TtAxCNrlrBp8GoeEp1npd5g+d/OejJHFxS3OWmrPBMFaVQMSN0OFySozJio5BHxTuTeug00AVXVAjfDSfk+lUg==",
+            "version": "18.2.51",
+            "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.51.tgz",
+            "integrity": "sha512-XeoMaU4CzyjdRr3c4IQQtiH7Rpo18V07rYZUucEZQwOUEtGgTXv7e6igQiQ+xnV6MbMe1qjEmKdgMNnfppnXfg==",
             "dev": true,
             "dependencies": {
                 "@types/prop-types": "*",
@@ -926,9 +926,9 @@
             }
         },
         "node_modules/@types/react-dom": {
-            "version": "18.2.17",
-            "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.17.tgz",
-            "integrity": "sha512-rvrT/M7Df5eykWFxn6MYt5Pem/Dbyc1N8Y0S9Mrkw2WFCRiqUgw9P7ul2NpwsXCSM1DVdENzdG9J5SreqfAIWg==",
+            "version": "18.2.18",
+            "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.18.tgz",
+            "integrity": "sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==",
             "dev": true,
             "dependencies": {
                 "@types/react": "*"
@@ -1178,9 +1178,9 @@
             }
         },
         "node_modules/acorn": {
-            "version": "8.11.2",
-            "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz",
-            "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==",
+            "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"
@@ -2327,15 +2327,15 @@
             }
         },
         "node_modules/eslint": {
-            "version": "8.55.0",
-            "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.55.0.tgz",
-            "integrity": "sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==",
+            "version": "8.56.0",
+            "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz",
+            "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==",
             "dev": true,
             "dependencies": {
                 "@eslint-community/eslint-utils": "^4.2.0",
                 "@eslint-community/regexpp": "^4.6.1",
                 "@eslint/eslintrc": "^2.1.4",
-                "@eslint/js": "8.55.0",
+                "@eslint/js": "8.56.0",
                 "@humanwhocodes/config-array": "^0.11.13",
                 "@humanwhocodes/module-importer": "^1.0.1",
                 "@nodelib/fs.walk": "^1.2.8",
@@ -2670,9 +2670,9 @@
             }
         },
         "node_modules/fastq": {
-            "version": "1.15.0",
-            "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
-            "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
+            "version": "1.17.0",
+            "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.0.tgz",
+            "integrity": "sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==",
             "dev": true,
             "dependencies": {
                 "reusify": "^1.0.4"
@@ -3130,9 +3130,9 @@
             ]
         },
         "node_modules/ignore": {
-            "version": "5.3.0",
-            "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz",
-            "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==",
+            "version": "5.3.1",
+            "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
+            "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
             "dev": true,
             "engines": {
                 "node": ">= 4"
@@ -3436,9 +3436,9 @@
             "dev": true
         },
         "node_modules/jsonc-parser": {
-            "version": "3.2.0",
-            "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
-            "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w=="
+            "version": "3.2.1",
+            "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
+            "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA=="
         },
         "node_modules/jszip": {
             "version": "2.7.0",
@@ -3701,9 +3701,9 @@
             "dev": true
         },
         "node_modules/moment": {
-            "version": "2.29.4",
-            "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
-            "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==",
+            "version": "2.30.1",
+            "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
+            "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
             "dev": true,
             "engines": {
                 "node": "*"
@@ -4052,9 +4052,9 @@
             }
         },
         "node_modules/postcss": {
-            "version": "8.4.32",
-            "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz",
-            "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==",
+            "version": "8.4.33",
+            "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz",
+            "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==",
             "dev": true,
             "funding": [
                 {
@@ -4102,9 +4102,9 @@
             }
         },
         "node_modules/postcss-selector-parser": {
-            "version": "6.0.13",
-            "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz",
-            "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==",
+            "version": "6.0.15",
+            "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz",
+            "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==",
             "dev": true,
             "dependencies": {
                 "cssesc": "^3.0.0",
@@ -4743,9 +4743,9 @@
             }
         },
         "node_modules/spdx-exceptions": {
-            "version": "2.3.0",
-            "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
-            "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
+            "version": "2.4.0",
+            "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.4.0.tgz",
+            "integrity": "sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==",
             "dev": true
         },
         "node_modules/spdx-expression-parse": {
diff --git a/pkgs/os-specific/darwin/airbuddy/default.nix b/pkgs/os-specific/darwin/airbuddy/default.nix
index 303311ccb105..374089c5aa1f 100644
--- a/pkgs/os-specific/darwin/airbuddy/default.nix
+++ b/pkgs/os-specific/darwin/airbuddy/default.nix
@@ -1,7 +1,7 @@
 { lib
 , stdenvNoCC
 , fetchurl
-, undmg
+, _7zz
 }:
 
 stdenvNoCC.mkDerivation (finalAttrs: {
@@ -19,18 +19,15 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   dontBuild = true;
   dontFixup = true;
 
-  nativeBuildInputs = [ undmg ];
+  nativeBuildInputs = [ _7zz ];
 
-  # AirBuddy.dmg is not HFS formatted, default unpackPhase fails
-  # https://discourse.nixos.org/t/help-with-error-only-hfs-file-systems-are-supported-on-ventura
+  # AirBuddy.dmg is APFS formatted, unpack with 7zz
   unpackCmd = ''
-    mnt=$(mktemp -d)
+    runHook preUnpack
 
-    /usr/bin/hdiutil attach -nobrowse -readonly $src -mountpoint $mnt
+    7zz x $src
 
-    shopt -s extglob
-    DEST="$PWD"
-    (cd "$mnt"; cp -a !(Applications) "$DEST/")
+    runHook postUnpack
   '';
 
   sourceRoot = "AirBuddy.app";
diff --git a/pkgs/os-specific/darwin/aldente/default.nix b/pkgs/os-specific/darwin/aldente/default.nix
index a67efd3367d4..e585d8877803 100644
--- a/pkgs/os-specific/darwin/aldente/default.nix
+++ b/pkgs/os-specific/darwin/aldente/default.nix
@@ -1,7 +1,7 @@
 { lib
 , stdenvNoCC
 , fetchurl
-, undmg
+, _7zz
 }:
 
 stdenvNoCC.mkDerivation (finalAttrs: {
@@ -16,24 +16,15 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   dontBuild = true;
   dontFixup = true;
 
-  nativeBuildInputs = [ undmg ];
+  nativeBuildInputs = [ _7zz ];
 
-  # AlDente.dmg is not HFS formatted, default unpackPhase fails
-  # https://discourse.nixos.org/t/help-with-error-only-hfs-file-systems-are-supported-on-ventura
+  # AlDente.dmg is APFS formatted, unpack with 7zz
   unpackCmd = ''
-    if ! [[ "$curSrc" =~ \.dmg$ ]]; then return 1; fi
-    mnt=$(mktemp -d -t ci-XXXXXXXXXX)
+    runHook preUnpack
 
-    function finish {
-      /usr/bin/hdiutil detach $mnt -force
-    }
-    trap finish EXIT
+    7zz x $src
 
-    /usr/bin/hdiutil attach -nobrowse -readonly $src -mountpoint $mnt
-
-    shopt -s extglob
-    DEST="$PWD"
-    (cd "$mnt"; cp -a !(Applications) "$DEST/")
+    runHook postUnpack
   '';
 
   sourceRoot = "AlDente.app";
diff --git a/pkgs/os-specific/darwin/moltenvk/MoltenVK.xcodeproj.patch b/pkgs/os-specific/darwin/moltenvk/MoltenVK.xcodeproj.patch
index e4b03dfe0cc3..83e020a1b848 100644
--- a/pkgs/os-specific/darwin/moltenvk/MoltenVK.xcodeproj.patch
+++ b/pkgs/os-specific/darwin/moltenvk/MoltenVK.xcodeproj.patch
@@ -16,7 +16,7 @@ index c23afce4..12ac12f4 100644
  		2FEA0D1B249040CA00EEF3AD /* PBXContainerItemProxy */ = {
  			isa = PBXContainerItemProxy;
  			containerPortal = A9C86CB61C55B8350096CAF2 /* MoltenVKShaderConverter.xcodeproj */;
-@@ -400,20 +393,6 @@
+@@ -400,27 +393,6 @@
  			remoteGlobalIDString = A93903C71C57E9ED00FE90DC;
  			remoteInfo = "MVKSPIRVToMSLConverter-macOS";
  		};
@@ -34,9 +34,16 @@ index c23afce4..12ac12f4 100644
 -			remoteGlobalIDString = A9092A8C1A81717B00051823;
 -			remoteInfo = MoltenVKShaderConverter;
 -		};
- /* End PBXContainerItemProxy section */
- 
- /* Begin PBXFileReference section */
+-		DCA2CEAE2A45DFD400FB75B6 /* PBXContainerItemProxy */ = {
+-			isa = PBXContainerItemProxy;
+-			containerPortal = A9C86CB61C55B8350096CAF2 /* MoltenVKShaderConverter.xcodeproj */;
+-			proxyType = 1;
+-			remoteGlobalIDString = DCFD7F6F2A45BDA0007BBBF7;
+-			remoteInfo = "MoltenVKShaderConverter-xrOS";
+-		};
+		DCBC41212A45DB1000F49BD1 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = A9C86CB61C55B8350096CAF2 /* MoltenVKShaderConverter.xcodeproj */;
 @@ -1019,7 +998,6 @@
  			buildRules = (
  			);
@@ -61,7 +68,7 @@ index c23afce4..12ac12f4 100644
  			);
  			name = "MoltenVK-macOS";
  			productName = MoltenVK;
-@@ -1476,24 +1452,6 @@
+@@ -1476,29 +1452,6 @@
  		};
  /* End PBXSourcesBuildPhase section */
  
@@ -81,6 +88,11 @@ index c23afce4..12ac12f4 100644
 -			name = MoltenVKShaderConverter;
 -			targetProxy = A9B1C7F4251AA5AF001D12CC /* PBXContainerItemProxy */;
 -		};
+-		DCA2CEAF2A45DFD400FB75B6 /* PBXTargetDependency */ = {
+-			isa = PBXTargetDependency;
+-			name = "MoltenVKShaderConverter-xrOS";
+-			targetProxy = DCA2CEAE2A45DFD400FB75B6 /* PBXContainerItemProxy */;
+-		};
 -/* End PBXTargetDependency section */
 -
  /* Begin XCBuildConfiguration section */
diff --git a/pkgs/os-specific/darwin/moltenvk/MoltenVKShaderConverter.xcodeproj.patch b/pkgs/os-specific/darwin/moltenvk/MoltenVKShaderConverter.xcodeproj.patch
index ecc5242684d9..3e48b2b5ba67 100644
--- a/pkgs/os-specific/darwin/moltenvk/MoltenVKShaderConverter.xcodeproj.patch
+++ b/pkgs/os-specific/darwin/moltenvk/MoltenVKShaderConverter.xcodeproj.patch
@@ -6,7 +6,7 @@ index c7842b63..d55f73ed 100644
  	archiveVersion = 1;
  	classes = {
  	};
--	objectVersion = 52;
+-	objectVersion = 54;
 +	objectVersion = 48;
  	objects = {
 
diff --git a/pkgs/os-specific/darwin/moltenvk/default.nix b/pkgs/os-specific/darwin/moltenvk/default.nix
index 2293720d7fab..c6ada1f55d5f 100644
--- a/pkgs/os-specific/darwin/moltenvk/default.nix
+++ b/pkgs/os-specific/darwin/moltenvk/default.nix
@@ -1,7 +1,6 @@
 { lib
 , overrideCC
 , stdenv
-, fetchurl
 , fetchFromGitHub
 , gitUpdater
 , cctools
@@ -24,7 +23,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "MoltenVK";
-  version = "1.2.4";
+  version = "1.2.7";
 
   buildInputs = [
     AppKit
@@ -47,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "KhronosGroup";
     repo = "MoltenVK";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-BL46BgZHUpk0dpzmeZ/2W0msHxFwieeGDjmVB8Nb1J4=";
+    hash = "sha256-0+S/kueV+AEVt+oFnh4cgcDRVtEbUH1QiHFPhGhimCA=";
   };
 
   patches = [
@@ -59,17 +58,18 @@ stdenv.mkDerivation (finalAttrs: {
   postPatch = ''
     # Move `mvkGitRevDerived.h` to a stable location
     substituteInPlace Scripts/gen_moltenvk_rev_hdr.sh \
-      --replace '$'''{BUILT_PRODUCTS_DIR}' "$NIX_BUILD_TOP/$sourceRoot/build/include" \
-      --replace '$(git rev-parse HEAD)' ${finalAttrs.src.rev}
+      --replace-fail '$'''{BUILT_PRODUCTS_DIR}' "$NIX_BUILD_TOP/$sourceRoot/build/include" \
+      --replace-fail '$(git rev-parse HEAD)' ${finalAttrs.src.rev}
     # Use the SPIRV-Cross packaged in nixpkgs instead of one built specifically for MoltenVK.
     substituteInPlace MoltenVK/MoltenVK.xcodeproj/project.pbxproj \
-      --replace SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross SPIRV_CROSS_NAMESPACE_OVERRIDE=spirv_cross
+      --replace-fail SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross SPIRV_CROSS_NAMESPACE_OVERRIDE=spirv_cross
     substituteInPlace MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj \
-      --replace SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross SPIRV_CROSS_NAMESPACE_OVERRIDE=spirv_cross
+      --replace-fail SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross SPIRV_CROSS_NAMESPACE_OVERRIDE=spirv_cross
     # Adding all of `usr/include` from the SDK results in header conflicts with `libcxx.dev`.
     # Work around it by symlinking just the SIMD stuff needed by MoltenVK.
     mkdir -p build/include
     ln -s "${MacOSX-SDK}/usr/include/simd" "build/include"
+    ln -s "${glslang.src}" "build/include/glslang"
   '';
 
   dontConfigure = true;
@@ -93,7 +93,6 @@ stdenv.mkDerivation (finalAttrs: {
     NIX_LDFLAGS+=" \
       -lMachineIndependent \
       -lGenericCodeGen \
-      -lOGLCompiler \
       -lglslang \
       -lOSDependent \
       -lSPIRV \
@@ -139,7 +138,7 @@ stdenv.mkDerivation (finalAttrs: {
     cp MoltenVK/MoltenVK/API/* "$dev/include/MoltenVK"
     install -m644 MoltenVK/icd/MoltenVK_icd.json "$out/share/vulkan/icd.d/MoltenVK_icd.json"
     substituteInPlace $out/share/vulkan/icd.d/MoltenVK_icd.json \
-      --replace ./libMoltenVK.dylib "$out/lib/libMoltenVK.dylib"
+      --replace-fail ./libMoltenVK.dylib "$out/lib/libMoltenVK.dylib"
   '';
 
   postFixup = ''
diff --git a/pkgs/os-specific/darwin/raycast/default.nix b/pkgs/os-specific/darwin/raycast/default.nix
index 6a466b6fd601..e45188f3e2cd 100644
--- a/pkgs/os-specific/darwin/raycast/default.nix
+++ b/pkgs/os-specific/darwin/raycast/default.nix
@@ -6,12 +6,12 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "raycast";
-  version = "1.64.4";
+  version = "1.66.2";
 
   src = fetchurl {
     name = "Raycast.dmg";
     url = "https://releases.raycast.com/releases/${finalAttrs.version}/download?build=universal";
-    hash = "sha256-ZnDr4kld4hHojkr5qDhtR6LH2mstimX+ImkD6zxk5Oc=";
+    hash = "sha256-HV3urzJX33dQjzUxtQhVgMaguGk8nqtXJJBXjHwaqC0=";
   };
 
   dontPatch = true;
diff --git a/pkgs/os-specific/darwin/sketchybar/default.nix b/pkgs/os-specific/darwin/sketchybar/default.nix
index 9b3ef924dd07..1d10749bf95a 100644
--- a/pkgs/os-specific/darwin/sketchybar/default.nix
+++ b/pkgs/os-specific/darwin/sketchybar/default.nix
@@ -22,13 +22,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "sketchybar";
-  version = "2.19.4";
+  version = "2.20.0";
 
   src = fetchFromGitHub {
     owner = "FelixKratz";
     repo = "SketchyBar";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-6MqTyCqFv5suQgQ5a9t1mDA2njjFFgk67Kp7xO5OXoA=";
+    hash = "sha256-Nyje2F2OXtojbAGNgGPGdX8SEH75SWWpBKLFULb96n4=";
   };
 
   buildInputs = [
diff --git a/pkgs/os-specific/darwin/yabai/default.nix b/pkgs/os-specific/darwin/yabai/default.nix
index f5bbf5407d50..54d307290925 100644
--- a/pkgs/os-specific/darwin/yabai/default.nix
+++ b/pkgs/os-specific/darwin/yabai/default.nix
@@ -17,7 +17,7 @@
 
 let
   pname = "yabai";
-  version = "6.0.6";
+  version = "6.0.7";
 
   test-version = testers.testVersion {
     package = yabai;
@@ -53,7 +53,7 @@ in
 
     src = fetchzip {
       url = "https://github.com/koekeishiya/yabai/releases/download/v${version}/yabai-v${version}.tar.gz";
-      hash = "sha256-G4BbYU4mgV8Jap8a872/YtoXU/hwUhFyLXdcuT1jldI=";
+      hash = "sha256-hZMBXSCiTlx/37jt2yLquCQ8AZ2LS3heIFPKolLub1c=";
     };
 
     nativeBuildInputs = [
@@ -89,7 +89,7 @@ in
       owner = "koekeishiya";
       repo = "yabai";
       rev = "v${version}";
-      hash = "sha256-wqGYVUDEDkrLSr0IoAO17wbtwaDeainnkDeR8O8oFqc=";
+      hash = "sha256-vWL2KA+Rhj78I2J1kGItJK+OdvhVo1ts0NoOHIK65Hg=";
     };
 
     nativeBuildInputs = [
diff --git a/pkgs/os-specific/linux/android-udev-rules/default.nix b/pkgs/os-specific/linux/android-udev-rules/default.nix
index 7765ce0aa52a..a99100ad8f4e 100644
--- a/pkgs/os-specific/linux/android-udev-rules/default.nix
+++ b/pkgs/os-specific/linux/android-udev-rules/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "android-udev-rules";
-  version = "20231207";
+  version = "20240114";
 
   src = fetchFromGitHub {
     owner = "M0Rf30";
     repo = "android-udev-rules";
     rev = version;
-    hash = "sha256-wNGIDOHbQ4qtKqtGqLOGEopWgnox3cATY77daRNVUFM=";
+    hash = "sha256-qf+KcEcWOsgLMifUOqNbi5t4s62p1gUfna45MyD01U0=";
   };
 
   installPhase = ''
diff --git a/pkgs/os-specific/linux/apfs/default.nix b/pkgs/os-specific/linux/apfs/default.nix
index 0c8d7cb989d4..28505f8c9eee 100644
--- a/pkgs/os-specific/linux/apfs/default.nix
+++ b/pkgs/os-specific/linux/apfs/default.nix
@@ -6,7 +6,7 @@
 }:
 
 let
-  tag = "0.3.6";
+  tag = "0.3.7";
 in
 stdenv.mkDerivation {
   pname = "apfs";
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
     owner = "linux-apfs";
     repo = "linux-apfs-rw";
     rev = "v${tag}";
-    hash = "sha256-k62PgUffBx6ZrWWLeX460adh/vv6XWxSmtEiwaWxiaU=";
+    hash = "sha256-LmUaIKZ1Msc4yAXNMzyDhPCPsQYeYnUbRF6pA9WvHYk=";
   };
 
   hardeningDisable = [ "pic" ];
diff --git a/pkgs/os-specific/linux/bluez/default.nix b/pkgs/os-specific/linux/bluez/default.nix
deleted file mode 100644
index d864f30096d7..000000000000
--- a/pkgs/os-specific/linux/bluez/default.nix
+++ /dev/null
@@ -1,164 +0,0 @@
-{ stdenv
-, lib
-, fetchurl
-, fetchpatch
-, alsa-lib
-, dbus
-, ell
-, glib
-, json_c
-, libical
-, docutils
-, pkg-config
-, python3
-, readline
-, systemdMinimal
-, udev
-, withExperimental ? false
-}: let
-  pythonPath = with python3.pkgs; [
-    dbus-python
-    pygobject3
-    recursivePthLoader
-  ];
-in stdenv.mkDerivation rec {
-  pname = "bluez";
-  version = "5.70";
-
-  src = fetchurl {
-    url = "mirror://kernel/linux/bluetooth/${pname}-${version}.tar.xz";
-    sha256 = "sha256-N+Ny6RaVXhRMuIL4iOS+QImPEK47fCE93N1V7pwAkng=";
-  };
-
-  patches = [
-    # replace use of a non-standard symbol to fix build with musl libc (pkgsMusl.bluez)
-    (fetchpatch {
-      url = "https://git.alpinelinux.org/aports/plain/main/bluez/max-input.patch?id=32b31b484cb13009bd8081c4106e4cf064ec2f1f";
-      sha256 = "sha256-SczbXtsxBkCO+izH8XOBcrJEO2f7MdtYVT3+2fCV8wU=";
-    })
-    # Fix device pairing regression
-    # FIXME: remove in next release
-    (fetchpatch {
-      url = "https://github.com/bluez/bluez/commit/3a9c637010f8dc1ba3e8382abe01065761d4f5bb.patch";
-      hash = "sha256-UUmYMHnxYrw663nEEC2mv3zj5e0omkLNejmmPUtgS3c=";
-    })
-    # CVE-2023-45866 / https://github.com/skysafe/reblog/tree/main/cve-2023-45866
-    (fetchpatch {
-      name = "CVE-2023-45866.patch";
-      url = "https://git.kernel.org/pub/scm/bluetooth/bluez.git/patch/profiles/input?id=25a471a83e02e1effb15d5a488b3f0085eaeb675";
-      sha256 = "sha256-IuPQ18yN0EO/PkqdT/JETyOxdZCKewBiDjGN4CG2GLo=";
-    })
-  ];
-
-  buildInputs = [
-    alsa-lib
-    dbus
-    ell
-    glib
-    json_c
-    libical
-    python3
-    readline
-    udev
-  ];
-
-  nativeBuildInputs = [
-    docutils
-    pkg-config
-    python3.pkgs.wrapPython
-  ];
-
-  outputs = [ "out" "dev" "test" ];
-
-  postPatch = ''
-    substituteInPlace tools/hid2hci.rules \
-      --replace /sbin/udevadm ${systemdMinimal}/bin/udevadm \
-      --replace "hid2hci " "$out/lib/udev/hid2hci "
-    # Disable some tests:
-    # - test-mesh-crypto depends on the following kernel settings:
-    #   CONFIG_CRYPTO_[USER|USER_API|USER_API_AEAD|USER_API_HASH|AES|CCM|AEAD|CMAC]
-    if [[ ! -f unit/test-mesh-crypto.c ]]; then echo "unit/test-mesh-crypto.c no longer exists"; false; fi
-    echo 'int main() { return 77; }' > unit/test-mesh-crypto.c
-  '';
-
-  configureFlags = [
-    "--localstatedir=/var"
-    "--enable-library"
-    "--enable-cups"
-    "--enable-pie"
-    "--enable-external-ell"
-    "--with-dbusconfdir=${placeholder "out"}/share"
-    "--with-dbussystembusdir=${placeholder "out"}/share/dbus-1/system-services"
-    "--with-dbussessionbusdir=${placeholder "out"}/share/dbus-1/services"
-    "--with-systemdsystemunitdir=${placeholder "out"}/etc/systemd/system"
-    "--with-systemduserunitdir=${placeholder "out"}/etc/systemd/user"
-    "--with-udevdir=${placeholder "out"}/lib/udev"
-    "--enable-health"
-    "--enable-mesh"
-    "--enable-midi"
-    "--enable-nfc"
-    "--enable-sixaxis"
-    "--enable-btpclient"
-    "--enable-hid2hci"
-    "--enable-logger"
-
-    # To provide ciptool, sdptool, and rfcomm (unmaintained)
-    # superseded by new D-Bus APIs
-    "--enable-deprecated"
-  ] ++ lib.optional withExperimental "--enable-experimental";
-
-
-  # Work around `make install' trying to create /var/lib/bluetooth.
-  installFlags = [ "statedir=$(TMPDIR)/var/lib/bluetooth" ];
-
-  makeFlags = [ "rulesdir=${placeholder "out"}/lib/udev/rules.d" ];
-
-  doCheck = stdenv.hostPlatform.isx86_64;
-
-  postInstall = ''
-    mkdir -p $test/{bin,test}
-    cp -a test $test
-    pushd $test/test
-    for a in \
-            simple-agent \
-            test-adapter \
-            test-device \
-            test-thermometer \
-            list-devices \
-            monitor-bluetooth \
-            ; do
-      ln -s ../test/$a $test/bin/bluez-$a
-    done
-    popd
-    wrapPythonProgramsIn $test/test "$test/test ${toString pythonPath}"
-  '' + ''
-    # for bluez4 compatibility for NixOS
-    mkdir $out/sbin
-    ln -s ../libexec/bluetooth/bluetoothd $out/sbin/bluetoothd
-    ln -s ../libexec/bluetooth/obexd $out/sbin/obexd
-
-    # Add extra configuration
-    mkdir $out/etc/bluetooth
-    ln -s /etc/bluetooth/main.conf $out/etc/bluetooth/main.conf
-
-    # https://github.com/NixOS/nixpkgs/issues/204418
-    ln -s /etc/bluetooth/input.conf $out/etc/bluetooth/input.conf
-    ln -s /etc/bluetooth/network.conf $out/etc/bluetooth/network.conf
-
-    # Add missing tools, ref https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/bluez
-    for files in `find tools/ -type f -perm -755`; do
-      filename=$(basename $files)
-      install -Dm755 tools/$filename $out/bin/$filename
-    done
-    install -Dm755 attrib/gatttool $out/bin/gatttool
-  '';
-
-  enableParallelBuilding = true;
-
-  meta = with lib; {
-    description = "Bluetooth support for Linux";
-    homepage = "http://www.bluez.org/";
-    license = with licenses; [ gpl2 lgpl21 ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/os-specific/linux/bpftrace/default.nix b/pkgs/os-specific/linux/bpftrace/default.nix
index ecb34c373b74..984eee759451 100644
--- a/pkgs/os-specific/linux/bpftrace/default.nix
+++ b/pkgs/os-specific/linux/bpftrace/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bpftrace";
-  version = "0.19.1";
+  version = "0.20.1";
 
   src = fetchFromGitHub {
     owner = "iovisor";
     repo  = "bpftrace";
     rev   = "v${version}";
-    hash  = "sha256-JyMogqyntSm2IDXzsOIjcUkf2YwG2oXKpqPpdx/eMNI=";
+    hash  = "sha256-jgM01G0zhaXNd2FiZwQb13O2/mXS971gUSGOAnrJLTQ=";
   };
 
 
diff --git a/pkgs/os-specific/linux/evdi/default.nix b/pkgs/os-specific/linux/evdi/default.nix
index bd34ac0db4d3..f4ad16523afb 100644
--- a/pkgs/os-specific/linux/evdi/default.nix
+++ b/pkgs/os-specific/linux/evdi/default.nix
@@ -7,13 +7,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "evdi";
-  version = "1.14.1";
+  version = "1.14.1-unstable-2024-01-30";
 
   src = fetchFromGitHub {
     owner = "DisplayLink";
     repo = pname;
-    rev = "v${version}";
-    hash = "sha256-em3Y56saB7K3Wr31Y0boc38xGb57gdveN0Cstgy8y20=";
+    rev = "d21a6ea3c69ba180457966a04b6545d321cf46ca";
+    hash = "sha256-Txa9yX9h3GfmHRRNvhrfrsUoQhqRWbBt4gJYAZTNe0w=";
   };
 
   env.NIX_CFLAGS_COMPILE = toString [
@@ -47,6 +47,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     license = with licenses; [ lgpl21Only gpl2Only ];
     homepage = "https://www.displaylink.com/";
-    broken = kernel.kernelOlder "4.19" || kernel.kernelAtLeast "6.6";
+    broken = kernel.kernelOlder "4.19";
   };
 }
diff --git a/pkgs/os-specific/linux/eventstat/default.nix b/pkgs/os-specific/linux/eventstat/default.nix
index 2c139cd3c865..0de1ded83543 100644
--- a/pkgs/os-specific/linux/eventstat/default.nix
+++ b/pkgs/os-specific/linux/eventstat/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "eventstat";
-  version = "0.05.01";
+  version = "0.06.00";
 
   src = fetchFromGitHub {
     owner = "ColinIanKing";
     repo = pname;
     rev = "V${version}";
-    hash = "sha256-raODDA1EKtZThFg0NV6EfrWj5mSQNaiekywfOfAvYXI=";
+    hash = "sha256-lCtXILpZn1/laRnsfE5DlQQQKKvfHxOJu87SkpWKeTE=";
   };
 
   buildInputs = [ ncurses ];
diff --git a/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix b/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix
index 70f9d7a6c69e..386df843971c 100644
--- a/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix
+++ b/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix
@@ -37,7 +37,7 @@ stdenvNoCC.mkDerivation {
     # Bluetooth firmware
     cp -rv "$NIX_BUILD_TOP/bluez-firmware/debian/firmware/broadcom/." "$out/lib/firmware/brcm"
 
-    # brcmfmac43455-stdio.bin is a symlink to the non-existent path: ../cypress/cyfmac43455-stdio.bin.
+    # brcmfmac43455-sdio.bin is a symlink to the non-existent path: ../cypress/cyfmac43455-sdio.bin.
     # See https://github.com/RPi-Distro/firmware-nonfree/issues/26
     ln -s "./cyfmac43455-sdio-standard.bin" "$out/lib/firmware/cypress/cyfmac43455-sdio.bin"
 
diff --git a/pkgs/os-specific/linux/firmware/sof-firmware/default.nix b/pkgs/os-specific/linux/firmware/sof-firmware/default.nix
index 2f33a139c9d3..737c7b936935 100644
--- a/pkgs/os-specific/linux/firmware/sof-firmware/default.nix
+++ b/pkgs/os-specific/linux/firmware/sof-firmware/default.nix
@@ -5,11 +5,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "sof-firmware";
-  version = "2.2.6";
+  version = "2023.12";
 
   src = fetchurl {
-    url = "https://github.com/thesofproject/sof-bin/releases/download/v${version}/sof-bin-v${version}.tar.gz";
-    sha256 = "sha256-kyLCp2NtAoRcOyaYTVirj3jWP/THZtCEwxlqWF4ACQU=";
+    url = "https://github.com/thesofproject/sof-bin/releases/download/v${version}/sof-bin-${version}.tar.gz";
+    sha256 = "sha256-VeR+tj5iSNvat9ojK7HjHKLnFVs33BFvbcWxc8ujUDs=";
   };
 
   dontFixup = true; # binaries must not be stripped or patchelfed
@@ -17,8 +17,10 @@ stdenvNoCC.mkDerivation rec {
   installPhase = ''
     runHook preInstall
     mkdir -p $out/lib/firmware/intel
-    cp -av sof-v${version} $out/lib/firmware/intel/sof
-    cp -av sof-tplg-v${version} $out/lib/firmware/intel/sof-tplg
+    cp -av sof $out/lib/firmware/intel/sof
+    cp -av sof-tplg $out/lib/firmware/intel/sof-tplg
+    cp -av sof-ace-tplg $out/lib/firmware/intel/sof-ace-tplg
+    cp -av sof-ipc4 $out/lib/firmware/intel/sof-ipc4
     runHook postInstall
   '';
 
diff --git a/pkgs/os-specific/linux/fwts/default.nix b/pkgs/os-specific/linux/fwts/default.nix
index bb4a1a1bd37c..f04b8fcd2108 100644
--- a/pkgs/os-specific/linux/fwts/default.nix
+++ b/pkgs/os-specific/linux/fwts/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "fwts";
-  version = "23.11.00";
+  version = "24.01.00";
 
   src = fetchzip {
     url = "https://fwts.ubuntu.com/release/${pname}-V${version}.tar.gz";
-    sha256 = "sha256-3cusxMFIYGKJ+ocQPc77bzHkyQhikLo1szSgE59aK9s=";
+    sha256 = "sha256-MXWmKxcxgSVCSeeGlWsa8JTBa5hLyvGPZ0811w+s+yA=";
     stripRoot = false;
   };
 
diff --git a/pkgs/os-specific/linux/health-check/default.nix b/pkgs/os-specific/linux/health-check/default.nix
index 4d1d634ff83d..b8737eb15302 100644
--- a/pkgs/os-specific/linux/health-check/default.nix
+++ b/pkgs/os-specific/linux/health-check/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "health-check";
-  version = "0.03.12";
+  version = "0.04.00";
 
   src = fetchFromGitHub {
     owner = "ColinIanKing";
     repo = pname;
     rev = "V${version}";
-    hash = "sha256-LuUCs6GLaxI5ywv6dr8dlvAXfcLbr1t7y6s/pb6JDpg=";
+    hash = "sha256-CPKXpPpdagq3UnTk8Z58WtSPek8L79totKX+Uh6foVg=";
   };
 
   buildInputs = [ json_c libbsd ];
diff --git a/pkgs/os-specific/linux/hwdata/default.nix b/pkgs/os-specific/linux/hwdata/default.nix
index 83dd82e6ab26..a705a9fb5d38 100644
--- a/pkgs/os-specific/linux/hwdata/default.nix
+++ b/pkgs/os-specific/linux/hwdata/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hwdata";
-  version = "0.377-2";
+  version = "0.378";
 
   src = fetchFromGitHub {
     owner = "vcrhonek";
     repo = "hwdata";
     rev = "v${version}";
-    hash = "sha256-Nh+EIsJ/98NnflndQeSgiV2iOC0icTEfgwAySPbG6Lo=";
+    hash = "sha256-YCx0b4crg8A7mGXwqk1XQZKsm/3TUE8C2bOYKnb/FSA=";
   };
 
   configureFlags = [ "--datadir=${placeholder "out"}/share" ];
diff --git a/pkgs/os-specific/linux/intel-compute-runtime/default.nix b/pkgs/os-specific/linux/intel-compute-runtime/default.nix
index 0deb493a49b7..a85eee05422c 100644
--- a/pkgs/os-specific/linux/intel-compute-runtime/default.nix
+++ b/pkgs/os-specific/linux/intel-compute-runtime/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "intel-compute-runtime";
-  version = "23.35.27191.9";
+  version = "23.48.27912.11";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "compute-runtime";
     rev = version;
-    hash = "sha256-yyuP9erK3bQ5oegLXPM+of6x7fslUXHPlX2q71lnGWA=";
+    hash = "sha256-9VKmD7FxvBrDVqT1TzKommjrTvalfR4diReaDRy+Lk0=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/os-specific/linux/iotop-c/default.nix b/pkgs/os-specific/linux/iotop-c/default.nix
index 1d7dc9e4d112..2003cc21d57b 100644
--- a/pkgs/os-specific/linux/iotop-c/default.nix
+++ b/pkgs/os-specific/linux/iotop-c/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
     description = "iotop identifies processes that use high amount of input/output requests on your machine";
     homepage = "https://github.com/Tomas-M/iotop";
     maintainers = [ maintainers.arezvov ];
+    mainProgram = "iotop-c";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
   };
diff --git a/pkgs/os-specific/linux/iotop/default.nix b/pkgs/os-specific/linux/iotop/default.nix
index 0376ff1a55ec..41647a2378e4 100644
--- a/pkgs/os-specific/linux/iotop/default.nix
+++ b/pkgs/os-specific/linux/iotop/default.nix
@@ -22,6 +22,7 @@ python3Packages.buildPythonApplication rec {
     description = "A tool to find out the processes doing the most IO";
     homepage = "http://guichaz.free.fr/iotop";
     license = licenses.gpl2;
+    mainProgram = "iotop";
     maintainers = [ maintainers.raskin ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix
index 2aacb88dc87e..69f16fd79cf6 100644
--- a/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/pkgs/os-specific/linux/kernel/common-config.nix
@@ -345,7 +345,7 @@ let
     };
 
     video = {
-      DRM_LEGACY = no;
+      DRM_LEGACY = whenOlder "6.8" no;
       NOUVEAU_LEGACY_CTX_SUPPORT = whenBetween "5.2" "6.3" no;
 
       # Allow specifying custom EDID on the kernel command line
@@ -381,6 +381,16 @@ let
       DRM_VC4_HDMI_CEC = yes;
     };
 
+    # Enables Rust support in the Linux kernel. This is currently not enabled by default, because it occasionally requires
+    # patching the Linux kernel for the specific Rust toolchain in nixpkgs. These patches usually take a bit
+    # of time to appear and this would hold up Linux kernel and Rust toolchain updates.
+    #
+    # Once Rust in the kernel has more users, we can reconsider enabling it by default.
+    rust = optionalAttrs ((features.rust or false) && versionAtLeast version "6.7") {
+      RUST = yes;
+      GCC_PLUGINS = no;
+    };
+
     sound = {
       SND_DYNAMIC_MINORS  = yes;
       SND_AC97_POWER_SAVE = yes; # AC97 Power-Saving Mode
@@ -685,23 +695,23 @@ let
       VBOXGUEST = option no;
       DRM_VBOXVIDEO = option no;
 
-      XEN                         = mkIf stdenv.is64bit (option yes);
-      XEN_DOM0                    = mkIf stdenv.is64bit (option yes);
-      PCI_XEN                     = mkIf stdenv.is64bit (option yes);
-      HVC_XEN                     = mkIf stdenv.is64bit (option yes);
-      HVC_XEN_FRONTEND            = mkIf stdenv.is64bit (option yes);
-      XEN_SYS_HYPERVISOR          = mkIf stdenv.is64bit (option yes);
-      SWIOTLB_XEN                 = mkIf stdenv.is64bit (option yes);
-      XEN_BACKEND                 = mkIf stdenv.is64bit (option yes);
-      XEN_BALLOON                 = mkIf stdenv.is64bit (option yes);
-      XEN_BALLOON_MEMORY_HOTPLUG  = mkIf stdenv.is64bit (option yes);
-      XEN_EFI                     = mkIf stdenv.is64bit (option yes);
-      XEN_HAVE_PVMMU              = mkIf stdenv.is64bit (option yes);
-      XEN_MCE_LOG                 = mkIf stdenv.is64bit (option yes);
-      XEN_PVH                     = mkIf stdenv.is64bit (option yes);
-      XEN_PVHVM                   = mkIf stdenv.is64bit (option yes);
-      XEN_SAVE_RESTORE            = mkIf stdenv.is64bit (option yes);
-      XEN_SELFBALLOONING          = mkIf stdenv.is64bit (whenOlder "5.3" yes);
+      XEN                         = option yes;
+      XEN_DOM0                    = option yes;
+      PCI_XEN                     = option yes;
+      HVC_XEN                     = option yes;
+      HVC_XEN_FRONTEND            = option yes;
+      XEN_SYS_HYPERVISOR          = option yes;
+      SWIOTLB_XEN                 = option yes;
+      XEN_BACKEND                 = option yes;
+      XEN_BALLOON                 = option yes;
+      XEN_BALLOON_MEMORY_HOTPLUG  = option yes;
+      XEN_EFI                     = option yes;
+      XEN_HAVE_PVMMU              = option yes;
+      XEN_MCE_LOG                 = option yes;
+      XEN_PVH                     = option yes;
+      XEN_PVHVM                   = option yes;
+      XEN_SAVE_RESTORE            = option yes;
+      XEN_SELFBALLOONING          = whenOlder "5.3" yes;
 
       # Enable device detection on virtio-mmio hypervisors
       VIRTIO_MMIO_CMDLINE_DEVICES = yes;
diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix
index df67005dd816..a2f80505cd95 100644
--- a/pkgs/os-specific/linux/kernel/generic.nix
+++ b/pkgs/os-specific/linux/kernel/generic.nix
@@ -9,6 +9,9 @@
 , pahole
 , lib
 , stdenv
+, rustc
+, rustPlatform
+, rust-bindgen
 
 , # The kernel source tarball.
   src
@@ -37,7 +40,7 @@
   modDirVersion ? null
 
 , # An attribute set whose attributes express the availability of
-  # certain features in this kernel.  E.g. `{iwlwifi = true;}'
+  # certain features in this kernel.  E.g. `{ia32Emulation = true;}'
   # indicates a kernel that provides Intel wireless support.  Used in
   # NixOS to implement kernel-specific behaviour.
   features ? {}
@@ -89,9 +92,7 @@ let
 
   # Combine the `features' attribute sets of all the kernel patches.
   kernelFeatures = lib.foldr (x: y: (x.features or {}) // y) ({
-    iwlwifi = true;
     efiBootStub = true;
-    needsCifsUtils = true;
     netfilterRPFilter = true;
     ia32Emulation = true;
   } // features) kernelPatches;
@@ -117,6 +118,8 @@ let
         map ({extraConfig ? "", ...}: extraConfig) kernelPatches;
     in lib.concatStringsSep "\n" ([baseConfigStr] ++ configFromPatches);
 
+  withRust = ((configfile.moduleStructuredConfig.settings.RUST or {}).tristate or null) == "y";
+
   configfile = stdenv.mkDerivation {
     inherit ignoreConfigErrors autoModules preferBuiltin kernelArch extraMakeFlags;
     pname = "linux-config";
@@ -130,7 +133,11 @@ let
     depsBuildBuild = [ buildPackages.stdenv.cc ];
     nativeBuildInputs = [ perl gmp libmpc mpfr ]
       ++ lib.optionals (lib.versionAtLeast version "4.16") [ bison flex ]
-      ++ lib.optional (lib.versionAtLeast version "5.2") pahole;
+      ++ lib.optional (lib.versionAtLeast version "5.2") pahole
+      ++ lib.optionals withRust [ rust-bindgen rustc ]
+    ;
+
+    RUST_LIB_SRC = lib.optionalString withRust rustPlatform.rustLibSrc;
 
     platformName = stdenv.hostPlatform.linux-kernel.name;
     # e.g. "defconfig"
@@ -202,7 +209,7 @@ let
     inherit kernelPatches randstructSeed extraMakeFlags extraMeta configfile;
     pos = builtins.unsafeGetAttrPos "version" args;
 
-    config = { CONFIG_MODULES = "y"; CONFIG_FW_LOADER = "m"; };
+    config = { CONFIG_MODULES = "y"; CONFIG_FW_LOADER = "m"; } // lib.optionalAttrs withRust { CONFIG_RUST = "y"; };
   } // lib.optionalAttrs (modDirVersion != null) { inherit modDirVersion; });
 
   passthru = basicArgs // {
diff --git a/pkgs/os-specific/linux/kernel/hardened/config.nix b/pkgs/os-specific/linux/kernel/hardened/config.nix
index 7aa9c5117352..ea49966f46dd 100644
--- a/pkgs/os-specific/linux/kernel/hardened/config.nix
+++ b/pkgs/os-specific/linux/kernel/hardened/config.nix
@@ -39,21 +39,33 @@ assert (versionAtLeast version "4.9");
   DEBUG_PI_LIST         = whenOlder "5.2" yes; # doesn't BUG()
   DEBUG_PLIST           = whenAtLeast "5.2" yes;
   DEBUG_SG              = yes;
+  DEBUG_VIRTUAL         = yes;
   SCHED_STACK_END_CHECK = yes;
 
   REFCOUNT_FULL = whenOlder "5.4.208" yes;
 
+  # tell EFI to wipe memory during reset
+  # https://lwn.net/Articles/730006/
+  RESET_ATTACK_MITIGATION = yes;
+
+  # restricts loading of line disciplines via TIOCSETD ioctl to CAP_SYS_MODULE
+  CONFIG_LDISC_AUTOLOAD = option no;
+
   # Randomize page allocator when page_alloc.shuffle=1
   SHUFFLE_PAGE_ALLOCATOR = whenAtLeast "5.2" yes;
 
-  # Allow enabling slub/slab free poisoning with slub_debug=P
-  SLUB_DEBUG = yes;
-
   # Wipe higher-level memory allocations on free() with page_poison=1
   PAGE_POISONING           = yes;
   PAGE_POISONING_NO_SANITY = whenOlder "5.11" yes;
   PAGE_POISONING_ZERO      = whenOlder "5.11" yes;
 
+  # Enable init_on_alloc and init_on_free by default
+  INIT_ON_ALLOC_DEFAULT_ON = yes;
+  INIT_ON_FREE_DEFAULT_ON  = yes;
+
+  # Wipe all caller-used registers on exit from a function
+  ZERO_CALL_USED_REGS = yes;
+
   # Enable the SafeSetId LSM
   SECURITY_SAFESETID = whenAtLeast "5.1" yes;
 
@@ -70,6 +82,16 @@ assert (versionAtLeast version "4.9");
   GCC_PLUGIN_RANDSTRUCT = whenOlder "5.19" yes; # A port of the PaX randstruct plugin
   GCC_PLUGIN_RANDSTRUCT_PERFORMANCE = whenOlder "5.19" yes;
 
+  # Runtime undefined behaviour checks
+  # https://www.kernel.org/doc/html/latest/dev-tools/ubsan.html
+  # https://developers.redhat.com/blog/2014/10/16/gcc-undefined-behavior-sanitizer-ubsan
+  UBSAN      = yes;
+  UBSAN_TRAP = yes;
+  UBSAN_BOUNDS = yes;
+  UBSAN_SANITIZE_ALL = yes;
+  UBSAN_LOCAL_BOUNDS = option yes; # clang only
+  CFI_CLANG = option yes; # clang only Control Flow Integrity since 6.1
+
   # Same as GCC_PLUGIN_RANDSTRUCT*, but has been renamed to `RANDSTRUCT*` in 5.19.
   RANDSTRUCT = whenAtLeast "5.19" yes;
   RANDSTRUCT_PERFORMANCE = whenAtLeast "5.19" yes;
@@ -97,4 +119,15 @@ assert (versionAtLeast version "4.9");
   # CONFIG_DEVMEM=n causes these to not exist anymore.
   STRICT_DEVMEM    = option no;
   IO_STRICT_DEVMEM = option no;
+
+  # stricter IOMMU TLB invalidation
+  IOMMU_DEFAULT_DMA_STRICT = option yes;
+  IOMMU_DEFAULT_DMA_LAZY = option no;
+
+  # not needed for less than a decade old glibc versions
+  LEGACY_VSYSCALL_NONE = yes;
+
+  # Straight-Line-Speculation
+  # https://lwn.net/Articles/877845/
+  SLS = option yes;
 }
diff --git a/pkgs/os-specific/linux/kernel/hardened/patches.json b/pkgs/os-specific/linux/kernel/hardened/patches.json
index 345d25e6e4c4..e057d8376609 100644
--- a/pkgs/os-specific/linux/kernel/hardened/patches.json
+++ b/pkgs/os-specific/linux/kernel/hardened/patches.json
@@ -2,52 +2,52 @@
     "4.19": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-4.19.304-hardened1.patch",
-            "sha256": "0bv6abcx8sknhsnijs176yq7q2mgrlyrv5xysnxa0l6wqpl2gqif",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.304-hardened1/linux-hardened-4.19.304-hardened1.patch"
+            "name": "linux-hardened-4.19.306-hardened1.patch",
+            "sha256": "0g38iy5vw9glqmqhmj5y8nnx8gbdj312yb14qnwcl21m78k63mxk",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.306-hardened1/linux-hardened-4.19.306-hardened1.patch"
         },
-        "sha256": "165mljr8v1cf4vf4a4b44hx089rprkssvi2azq5wbxxg3basbind",
-        "version": "4.19.304"
+        "sha256": "06dy270xw4frnrc9p2qjh8chgp02fr5ll5g2b0lx9xqzlq7y86xr",
+        "version": "4.19.306"
     },
     "5.10": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.10.206-hardened1.patch",
-            "sha256": "14xmp28grpwpgrsg88bnv164kk54k6akw5jydrs8447mqfyw7sqr",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.206-hardened1/linux-hardened-5.10.206-hardened1.patch"
+            "name": "linux-hardened-5.10.209-hardened1.patch",
+            "sha256": "1vccxrwi8a8fz3fcjxxqbkdbfjjhzwqpcibfg0nrydcix79ixgyw",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.209-hardened1/linux-hardened-5.10.209-hardened1.patch"
         },
-        "sha256": "0ns8qxcrxj9i76b93xcghl002l8vbkg7ksd435sikig62qr62gf4",
-        "version": "5.10.206"
+        "sha256": "1mc8rssk5aypgb58jz6i2bbflfr6qh1kgqpam0k8fqvwcjnjzqj4",
+        "version": "5.10.209"
     },
     "5.15": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.15.146-hardened1.patch",
-            "sha256": "0cd8gzixkc89n647g108f9r9dn8a3vw9ajdh4g7w7bq6vq71gglj",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.15.146-hardened1/linux-hardened-5.15.146-hardened1.patch"
+            "name": "linux-hardened-5.15.148-hardened1.patch",
+            "sha256": "0pryxvr058fisns01w52xsfbx4aqx2ssfk9n1r575lgywp6q03fj",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.15.148-hardened1/linux-hardened-5.15.148-hardened1.patch"
         },
-        "sha256": "14nijbspmzd4r38l8cpl4vn9dhawzcfnhyc0gnaxl2m8l9gpm02s",
-        "version": "5.15.146"
+        "sha256": "1n75lrck581mppx84cds1a1l5vj05cdkp8ahpry7dx6rgz4pb1f4",
+        "version": "5.15.148"
     },
     "5.4": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.4.266-hardened1.patch",
-            "sha256": "1gbyxz788j5lirjc62b56didnwq5s69cfindzndsj1r5wm0hknp4",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.266-hardened1/linux-hardened-5.4.266-hardened1.patch"
+            "name": "linux-hardened-5.4.268-hardened1.patch",
+            "sha256": "1lz9i5iaa6pchnk1bw9dg85n82j9hvjdh8pb7vxjg05fxvwgn7jh",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.268-hardened1/linux-hardened-5.4.268-hardened1.patch"
         },
-        "sha256": "1dmcn9i3nvf1gldm1a32gnl5ybwbk2lizb3wa4gc06g7dxz2y1ys",
-        "version": "5.4.266"
+        "sha256": "081695lgkdwlrp6gpp6pyflgh76zax1w52shys4s9zjnrfkarj5g",
+        "version": "5.4.268"
     },
     "6.1": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-6.1.72-hardened1.patch",
-            "sha256": "0zp6i44y3fi2xsk4jbwhk8w688ci34p5ymmk3kkb8s1cvhqzgddy",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.1.72-hardened1/linux-hardened-6.1.72-hardened1.patch"
+            "name": "linux-hardened-6.1.75-hardened1.patch",
+            "sha256": "157fl991y8fsllwa0ny851vij3418fcs4nng02qzkc1rqzj625dz",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.1.75-hardened1/linux-hardened-6.1.75-hardened1.patch"
         },
-        "sha256": "09h9kzv2xfrn369ynl09dfnjl9025b9vpkcxg75gyp63fy8fdp4q",
-        "version": "6.1.72"
+        "sha256": "0mis14ll6xmhw71vfpw1aahi5z207qysha7x316fq4qc6c899lbc",
+        "version": "6.1.75"
     },
     "6.5": {
         "patch": {
@@ -62,11 +62,21 @@
     "6.6": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-6.6.11-hardened1.patch",
-            "sha256": "07l4fvc115iqiwbaq916g1l1jpmcg8injr5z5dx6jp2h635w72n3",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.6.11-hardened1/linux-hardened-6.6.11-hardened1.patch"
+            "name": "linux-hardened-6.6.14-hardened1.patch",
+            "sha256": "1r8aw6lb43fgayhdnk10hkllh8kanfww5xzfi5qzkbly28wr8abv",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.6.14-hardened1/linux-hardened-6.6.14-hardened1.patch"
         },
-        "sha256": "0lhyczcj1fhh52fjf06ikp5yh7kxc1qymsw44rv6v25vc6kfbqmg",
-        "version": "6.6.11"
+        "sha256": "110mz8fjlg1j9wnhhq2ik5alayhf61adajd8jqmcsqprncnnpsgv",
+        "version": "6.6.14"
+    },
+    "6.7": {
+        "patch": {
+            "extra": "-hardened1",
+            "name": "linux-hardened-6.7.2-hardened1.patch",
+            "sha256": "1mkmqf8fc3dg77an9fkqp41141m01x93rydfmdn5ys5336mix8pi",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.7.2-hardened1/linux-hardened-6.7.2-hardened1.patch"
+        },
+        "sha256": "0wd6pxh7wy9bzjzwd0rdsdnghpr53qbs722fhg07bi19m8dy8kf3",
+        "version": "6.7.2"
     }
 }
diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json
index 197b5d638861..4df17a1a0e3e 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.7-rc8",
-        "hash": "sha256:02drhwl3f53y97gimgclz61zsa57v29vphkbrzr4cwmz4sh1vngk"
+        "version": "6.8-rc2",
+        "hash": "sha256:0zlk5kq06lan0x689dxrxnfpz2zmlmykm1h0cfpgiy05f52kbhlk"
     },
     "6.5": {
         "version": "6.5.13",
         "hash": "sha256:1dfbbydmayfj9npx3z0g38p574pmcx3qgs49dv0npigl48wd9yvq"
     },
     "6.1": {
-        "version": "6.1.73",
-        "hash": "sha256:11vyblm4nkjncdi3akcyizw7jkyxsqn2mjixc51f7kgiddq4ibbc"
+        "version": "6.1.76",
+        "hash": "sha256:1zdi4xbk7zyiab7x8z12xqg72zaw3j61slvrbwjfx6pzh47cr005"
     },
     "5.15": {
-        "version": "5.15.147",
-        "hash": "sha256:1m7wznqiakarpar4a0nbwxql0hkvds0s79zx3r1xn0fj4mbfdhan"
+        "version": "5.15.148",
+        "hash": "sha256:1n75lrck581mppx84cds1a1l5vj05cdkp8ahpry7dx6rgz4pb1f4"
     },
     "5.10": {
-        "version": "5.10.208",
-        "hash": "sha256:0vpvy47cmcinhs76cjl2n81zrlhbqgpi4v29izn2hzsl15x189ch"
+        "version": "5.10.209",
+        "hash": "sha256:1mc8rssk5aypgb58jz6i2bbflfr6qh1kgqpam0k8fqvwcjnjzqj4"
     },
     "5.4": {
-        "version": "5.4.267",
-        "hash": "sha256:0hqw8ww7y9mjrh1wgdkiwk8llxpf4lxwmsmzxm8j4l615kpqvlj2"
+        "version": "5.4.268",
+        "hash": "sha256:081695lgkdwlrp6gpp6pyflgh76zax1w52shys4s9zjnrfkarj5g"
     },
     "4.19": {
-        "version": "4.19.305",
-        "hash": "sha256:1s6srmhd3visqchshg566c7gq5wnxr3m74854kxksqhhfif450ns"
+        "version": "4.19.306",
+        "hash": "sha256:06dy270xw4frnrc9p2qjh8chgp02fr5ll5g2b0lx9xqzlq7y86xr"
     },
     "6.6": {
-        "version": "6.6.12",
-        "hash": "sha256:01a6czk6xz9syxvkb2yhbn3vypqy2mnjq7ni84x4nklw7n6frmqz"
+        "version": "6.6.15",
+        "hash": "sha256:1ajzby6isqji1xlp660m4qj2i2xs003vsjp1jspziwl7hrzhqadb"
     },
     "6.7": {
-        "version": "6.7",
-        "hash": "sha256:0s8hbcsg7fdvspqam8kzcxygjsznr4zfi60nqgc81l3n4m518cgg"
+        "version": "6.7.3",
+        "hash": "sha256:0i1bfkawyp917d9v3qa5nqzspzr3ixx7scbfl8x4lms74xjqrw5p"
     }
 }
diff --git a/pkgs/os-specific/linux/kernel/linux-libre.nix b/pkgs/os-specific/linux/kernel/linux-libre.nix
index 05b18383303f..e4716dfa6d96 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 = "19473";
-    sha256 = "0k9pgjg6k9j00x4m3g6chnhgznr5r1yyqd9x8q7a9q9j88vygszs";
+    rev = "19489";
+    sha256 = "1adnk4710iyq87bj48bfxzmzhv5hk0x3fmyz6ydk5af364fl87mk";
   }
 , ...
 }:
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 ffe37b8d5e7a..bf8148c35c11 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.70-rt21"; # updated by ./update-rt.sh
+  version = "6.1.75-rt23"; # 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 = "1vxgardfm2fi4c7zkxpljqicllfqqnp835a9lyb7dh2nchk6a4zd";
+    sha256 = "0mis14ll6xmhw71vfpw1aahi5z207qysha7x316fq4qc6c899lbc";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "03lb5s16f7j7s7qvh55mxiv6a6rdnx2j8cyy6c6v4naaq9s82lgn";
+      sha256 = "0y88g4acq9vcxb169zficcih1dgq7ssl6v3f9740jr6r4l9ycv1x";
     };
   }; 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 2ba31fbc9789..baf0231f13e1 100644
--- a/pkgs/os-specific/linux/kernel/manual-config.nix
+++ b/pkgs/os-specific/linux/kernel/manual-config.nix
@@ -1,6 +1,7 @@
 { lib, stdenv, buildPackages, runCommand, nettools, bc, bison, flex, perl, rsync, gmp, libmpc, mpfr, openssl
 , libelf, cpio, elfutils, zstd, python3Minimal, zlib, pahole, kmod, ubootTools
 , fetchpatch
+, rustc, rust-bindgen, rustPlatform
 }:
 
 let
@@ -56,15 +57,6 @@ let
   inherit (lib)
     hasAttr getAttr optional optionals optionalString optionalAttrs maintainers platforms;
 
-  # Dependencies that are required to build kernel modules
-  moduleBuildDependencies = [
-    pahole
-    perl
-    libelf
-    # module makefiles often run uname commands to find out the kernel version
-    (buildPackages.deterministic-uname.override { inherit modDirVersion; })
-  ] ++ optional (lib.versionAtLeast version "5.13") zstd;
-
   drvAttrs = config_: kernelConf: kernelPatches: configfile:
     let
       config = let attrName = attr: "CONFIG_" + attr; in {
@@ -84,14 +76,27 @@ let
       } // config_;
 
       isModular = config.isYes "MODULES";
+      withRust = config.isYes "RUST";
 
       buildDTBs = kernelConf.DTB or false;
 
+      # Dependencies that are required to build kernel modules
+      moduleBuildDependencies = [
+        pahole
+        perl
+        libelf
+        # module makefiles often run uname commands to find out the kernel version
+        (buildPackages.deterministic-uname.override { inherit modDirVersion; })
+      ]
+      ++ optional (lib.versionAtLeast version "5.13") zstd
+      ++ optionals withRust [ rustc rust-bindgen ]
+      ;
+
     in (optionalAttrs isModular { outputs = [ "out" "dev" ]; }) // {
       passthru = rec {
         inherit version modDirVersion config kernelPatches configfile
           moduleBuildDependencies stdenv;
-        inherit isZen isHardened isLibre;
+        inherit isZen isHardened isLibre withRust;
         isXen = lib.warn "The isXen attribute is deprecated. All Nixpkgs kernels that support it now have Xen enabled." true;
         baseVersion = lib.head (lib.splitString "-rc" version);
         kernelOlder = lib.versionOlder baseVersion;
@@ -100,6 +105,16 @@ let
 
       inherit src;
 
+      depsBuildBuild = [ buildPackages.stdenv.cc ];
+      nativeBuildInputs = [ perl bc nettools openssl rsync gmp libmpc mpfr zstd python3Minimal kmod ubootTools ]
+                          ++ optional  (lib.versionOlder version "5.8") libelf
+                          ++ optionals (lib.versionAtLeast version "4.16") [ bison flex ]
+                          ++ optionals (lib.versionAtLeast version "5.2")  [ cpio pahole zlib ]
+                          ++ optional  (lib.versionAtLeast version "5.8")  elfutils
+                          ++ optionals withRust [ rustc rust-bindgen ];
+
+      RUST_LIB_SRC = lib.optionalString withRust rustPlatform.rustLibSrc;
+
       patches =
         map (p: p.patch) kernelPatches
         # Required for deterministic builds along with some postPatch magic.
@@ -363,14 +378,6 @@ stdenv.mkDerivation ((drvAttrs config stdenv.hostPlatform.linux-kernel kernelPat
 
   enableParallelBuilding = true;
 
-  depsBuildBuild = [ buildPackages.stdenv.cc ];
-  nativeBuildInputs = [ perl bc nettools openssl rsync gmp libmpc mpfr zstd python3Minimal kmod ubootTools ]
-      ++ optional  (lib.versionOlder version "5.8") libelf
-      ++ optionals (lib.versionAtLeast version "4.16") [ bison flex ]
-      ++ optionals (lib.versionAtLeast version "5.2")  [ cpio pahole zlib ]
-      ++ optional  (lib.versionAtLeast version "5.8")  elfutils
-      ;
-
   hardeningDisable = [ "bindnow" "format" "fortify" "stackprotector" "pic" "pie" ];
 
   # Absolute paths for compilers avoid any PATH-clobbering issues.
diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix
index 5d4ebc214dc7..a7bf7128f5ef 100644
--- a/pkgs/os-specific/linux/kernel/patches.nix
+++ b/pkgs/os-specific/linux/kernel/patches.nix
@@ -65,4 +65,18 @@
     name = "export-rt-sched-migrate";
     patch = ./export-rt-sched-migrate.patch;
   };
+
+  rust_1_74 = {
+    name = "rust-1.74.patch";
+    patch = fetchpatch {
+      name = "rust-1.74.patch";
+      url = "https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/patch/?id=80fe9e51510b23472ad0f97175556490549ed714";
+      hash = "sha256-yGt7PwqN/G+ZtZSt6eARvVFdkC8tnUiu0Fz4cFCyguM=";
+    };
+  };
+
+  rust_1_75 = {
+    name = "rust-1.75.patch";
+    patch = ./rust-1.75.patch;
+  };
 }
diff --git a/pkgs/os-specific/linux/kernel/rust-1.75.patch b/pkgs/os-specific/linux/kernel/rust-1.75.patch
new file mode 100644
index 000000000000..9d6b1a3dcc75
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/rust-1.75.patch
@@ -0,0 +1,373 @@
+From 77007eef13d52d0a5df9706d47078c4e1390a0a9 Mon Sep 17 00:00:00 2001
+From: Miguel Ojeda <ojeda@kernel.org>
+Date: Sun, 24 Dec 2023 18:21:28 +0100
+Subject: [PATCH] rust: upgrade to Rust 1.75.0
+
+This is the next upgrade to the Rust toolchain, from 1.74.1 to 1.75.0
+(i.e. the latest) [1].
+
+See the upgrade policy [2] and the comments on the first upgrade in
+commit 3ed03f4da06e ("rust: upgrade to Rust 1.68.2").
+
+# Unstable features
+
+The `const_maybe_uninit_zeroed` unstable feature [3] was stabilized in
+Rust 1.75.0, which we were using in the PHYLIB abstractions.
+
+The only unstable features allowed to be used outside the `kernel` crate
+are still `new_uninit,offset_of`, though other code to be upstreamed
+may increase the list.
+
+Please see [4] for details.
+
+# Other improvements
+
+Rust 1.75.0 stabilized `pointer_byte_offsets` [5] which we could
+potentially use as an alternative for `ptr_metadata` in the future.
+
+# Required changes
+
+For this upgrade, no changes were required (i.e. on our side).
+
+# `alloc` upgrade and reviewing
+
+The vast majority of changes are due to our `alloc` fork being upgraded
+at once.
+
+There are two kinds of changes to be aware of: the ones coming from
+upstream, which we should follow as closely as possible, and the updates
+needed in our added fallible APIs to keep them matching the newer
+infallible APIs coming from upstream.
+
+Instead of taking a look at the diff of this patch, an alternative
+approach is reviewing a diff of the changes between upstream `alloc` and
+the kernel's. This allows to easily inspect the kernel additions only,
+especially to check if the fallible methods we already have still match
+the infallible ones in the new version coming from upstream.
+
+Another approach is reviewing the changes introduced in the additions in
+the kernel fork between the two versions. This is useful to spot
+potentially unintended changes to our additions.
+
+To apply these approaches, one may follow steps similar to the following
+to generate a pair of patches that show the differences between upstream
+Rust and the kernel (for the subset of `alloc` we use) before and after
+applying this patch:
+
+    # Get the difference with respect to the old version.
+    git -C rust checkout $(linux/scripts/min-tool-version.sh rustc)
+    git -C linux ls-tree -r --name-only HEAD -- rust/alloc |
+        cut -d/ -f3- |
+        grep -Fv README.md |
+        xargs -IPATH cp rust/library/alloc/src/PATH linux/rust/alloc/PATH
+    git -C linux diff --patch-with-stat --summary -R > old.patch
+    git -C linux restore rust/alloc
+
+    # Apply this patch.
+    git -C linux am rust-upgrade.patch
+
+    # Get the difference with respect to the new version.
+    git -C rust checkout $(linux/scripts/min-tool-version.sh rustc)
+    git -C linux ls-tree -r --name-only HEAD -- rust/alloc |
+        cut -d/ -f3- |
+        grep -Fv README.md |
+        xargs -IPATH cp rust/library/alloc/src/PATH linux/rust/alloc/PATH
+    git -C linux diff --patch-with-stat --summary -R > new.patch
+    git -C linux restore rust/alloc
+
+Now one may check the `new.patch` to take a look at the additions (first
+approach) or at the difference between those two patches (second
+approach). For the latter, a side-by-side tool is recommended.
+
+Link: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1750-2023-12-28 [1]
+Link: https://rust-for-linux.com/rust-version-policy [2]
+Link: https://github.com/rust-lang/rust/issues/91850 [3]
+Link: https://github.com/Rust-for-Linux/linux/issues/2 [4]
+Link: https://github.com/rust-lang/rust/issues/96283 [5]
+Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
+Link: https://lore.kernel.org/lkml/20231224172128.271447-1-ojeda@kernel.org/
+Signed-off-by: Alyssa Ross <hi@alyssa.is>
+---
+ Documentation/process/changes.rst |  2 +-
+ rust/alloc/alloc.rs               |  9 ++++++++-
+ rust/alloc/boxed.rs               | 20 ++++++++++++--------
+ rust/alloc/lib.rs                 |  7 ++++---
+ rust/alloc/raw_vec.rs             | 19 +++++++++++++++----
+ rust/alloc/vec/mod.rs             | 16 ++++++++++------
+ scripts/min-tool-version.sh       |  2 +-
+ 7 files changed, 51 insertions(+), 24 deletions(-)
+
+diff --git a/Documentation/process/changes.rst b/Documentation/process/changes.rst
+index 169f67773518..52284fdbaf23 100644
+--- a/Documentation/process/changes.rst
++++ b/Documentation/process/changes.rst
+@@ -31,7 +31,7 @@ you probably needn't concern yourself with pcmciautils.
+ ====================== ===============  ========================================
+ GNU C                  5.1              gcc --version
+ Clang/LLVM (optional)  11.0.0           clang --version
+-Rust (optional)        1.74.1           rustc --version
++Rust (optional)        1.75.0           rustc --version
+ bindgen (optional)     0.65.1           bindgen --version
+ GNU make               3.82             make --version
+ bash                   4.2              bash --version
+diff --git a/rust/alloc/alloc.rs b/rust/alloc/alloc.rs
+index 150e13750ff7..8a6be8c98173 100644
+--- a/rust/alloc/alloc.rs
++++ b/rust/alloc/alloc.rs
+@@ -379,13 +379,20 @@ const fn ct_error(_: Layout) -> ! {
+         panic!("allocation failed");
+     }
+ 
++    #[inline]
+     fn rt_error(layout: Layout) -> ! {
+         unsafe {
+             __rust_alloc_error_handler(layout.size(), layout.align());
+         }
+     }
+ 
+-    unsafe { core::intrinsics::const_eval_select((layout,), ct_error, rt_error) }
++    #[cfg(not(feature = "panic_immediate_abort"))]
++    unsafe {
++        core::intrinsics::const_eval_select((layout,), ct_error, rt_error)
++    }
++
++    #[cfg(feature = "panic_immediate_abort")]
++    ct_error(layout)
+ }
+ 
+ // For alloc test `std::alloc::handle_alloc_error` can be used directly.
+diff --git a/rust/alloc/boxed.rs b/rust/alloc/boxed.rs
+index 9620eba17268..f5f40778a193 100644
+--- a/rust/alloc/boxed.rs
++++ b/rust/alloc/boxed.rs
+@@ -161,7 +161,7 @@
+ use core::marker::Unsize;
+ use core::mem::{self, SizedTypeProperties};
+ use core::ops::{
+-    CoerceUnsized, Deref, DerefMut, DispatchFromDyn, Generator, GeneratorState, Receiver,
++    CoerceUnsized, Coroutine, CoroutineState, Deref, DerefMut, DispatchFromDyn, Receiver,
+ };
+ use core::pin::Pin;
+ use core::ptr::{self, NonNull, Unique};
+@@ -211,7 +211,7 @@ impl<T> Box<T> {
+     /// ```
+     /// let five = Box::new(5);
+     /// ```
+-    #[cfg(all(not(no_global_oom_handling)))]
++    #[cfg(not(no_global_oom_handling))]
+     #[inline(always)]
+     #[stable(feature = "rust1", since = "1.0.0")]
+     #[must_use]
+@@ -2110,28 +2110,28 @@ fn as_mut(&mut self) -> &mut T {
+ #[stable(feature = "pin", since = "1.33.0")]
+ impl<T: ?Sized, A: Allocator> Unpin for Box<T, A> where A: 'static {}
+ 
+-#[unstable(feature = "generator_trait", issue = "43122")]
+-impl<G: ?Sized + Generator<R> + Unpin, R, A: Allocator> Generator<R> for Box<G, A>
++#[unstable(feature = "coroutine_trait", issue = "43122")]
++impl<G: ?Sized + Coroutine<R> + Unpin, R, A: Allocator> Coroutine<R> for Box<G, A>
+ where
+     A: 'static,
+ {
+     type Yield = G::Yield;
+     type Return = G::Return;
+ 
+-    fn resume(mut self: Pin<&mut Self>, arg: R) -> GeneratorState<Self::Yield, Self::Return> {
++    fn resume(mut self: Pin<&mut Self>, arg: R) -> CoroutineState<Self::Yield, Self::Return> {
+         G::resume(Pin::new(&mut *self), arg)
+     }
+ }
+ 
+-#[unstable(feature = "generator_trait", issue = "43122")]
+-impl<G: ?Sized + Generator<R>, R, A: Allocator> Generator<R> for Pin<Box<G, A>>
++#[unstable(feature = "coroutine_trait", issue = "43122")]
++impl<G: ?Sized + Coroutine<R>, R, A: Allocator> Coroutine<R> for Pin<Box<G, A>>
+ where
+     A: 'static,
+ {
+     type Yield = G::Yield;
+     type Return = G::Return;
+ 
+-    fn resume(mut self: Pin<&mut Self>, arg: R) -> GeneratorState<Self::Yield, Self::Return> {
++    fn resume(mut self: Pin<&mut Self>, arg: R) -> CoroutineState<Self::Yield, Self::Return> {
+         G::resume((*self).as_mut(), arg)
+     }
+ }
+@@ -2448,4 +2448,8 @@ fn cause(&self) -> Option<&dyn core::error::Error> {
+     fn source(&self) -> Option<&(dyn core::error::Error + 'static)> {
+         core::error::Error::source(&**self)
+     }
++
++    fn provide<'b>(&'b self, request: &mut core::error::Request<'b>) {
++        core::error::Error::provide(&**self, request);
++    }
+ }
+diff --git a/rust/alloc/lib.rs b/rust/alloc/lib.rs
+index 9c7ea73da108..345cf5c9cf92 100644
+--- a/rust/alloc/lib.rs
++++ b/rust/alloc/lib.rs
+@@ -80,6 +80,8 @@
+     not(no_sync),
+     target_has_atomic = "ptr"
+ ))]
++#![cfg_attr(not(bootstrap), doc(rust_logo))]
++#![cfg_attr(not(bootstrap), feature(rustdoc_internals))]
+ #![no_std]
+ #![needs_allocator]
+ // Lints:
+@@ -115,7 +117,6 @@
+ #![feature(const_eval_select)]
+ #![feature(const_maybe_uninit_as_mut_ptr)]
+ #![feature(const_maybe_uninit_write)]
+-#![feature(const_maybe_uninit_zeroed)]
+ #![feature(const_pin)]
+ #![feature(const_refs_to_cell)]
+ #![feature(const_size_of_val)]
+@@ -141,7 +142,7 @@
+ #![feature(maybe_uninit_uninit_array)]
+ #![feature(maybe_uninit_uninit_array_transpose)]
+ #![feature(pattern)]
+-#![feature(pointer_byte_offsets)]
++#![feature(ptr_addr_eq)]
+ #![feature(ptr_internals)]
+ #![feature(ptr_metadata)]
+ #![feature(ptr_sub_ptr)]
+@@ -168,7 +169,7 @@
+ //
+ // Language features:
+ // tidy-alphabetical-start
+-#![cfg_attr(not(test), feature(generator_trait))]
++#![cfg_attr(not(test), feature(coroutine_trait))]
+ #![cfg_attr(test, feature(panic_update_hook))]
+ #![cfg_attr(test, feature(test))]
+ #![feature(allocator_internals)]
+diff --git a/rust/alloc/raw_vec.rs b/rust/alloc/raw_vec.rs
+index a7425582a323..f1b8cec8cc62 100644
+--- a/rust/alloc/raw_vec.rs
++++ b/rust/alloc/raw_vec.rs
+@@ -338,10 +338,13 @@ pub fn reserve_for_push(&mut self, len: usize) {
+     /// The same as `reserve`, but returns on errors instead of panicking or aborting.
+     pub fn try_reserve(&mut self, len: usize, additional: usize) -> Result<(), TryReserveError> {
+         if self.needs_to_grow(len, additional) {
+-            self.grow_amortized(len, additional)
+-        } else {
+-            Ok(())
++            self.grow_amortized(len, additional)?;
+         }
++        unsafe {
++            // Inform the optimizer that the reservation has succeeded or wasn't needed
++            core::intrinsics::assume(!self.needs_to_grow(len, additional));
++        }
++        Ok(())
+     }
+ 
+     /// The same as `reserve_for_push`, but returns on errors instead of panicking or aborting.
+@@ -378,7 +381,14 @@ pub fn try_reserve_exact(
+         len: usize,
+         additional: usize,
+     ) -> Result<(), TryReserveError> {
+-        if self.needs_to_grow(len, additional) { self.grow_exact(len, additional) } else { Ok(()) }
++        if self.needs_to_grow(len, additional) {
++            self.grow_exact(len, additional)?;
++        }
++        unsafe {
++            // Inform the optimizer that the reservation has succeeded or wasn't needed
++            core::intrinsics::assume(!self.needs_to_grow(len, additional));
++        }
++        Ok(())
+     }
+ 
+     /// Shrinks the buffer down to the specified capacity. If the given amount
+@@ -569,6 +579,7 @@ fn alloc_guard(alloc_size: usize) -> Result<(), TryReserveError> {
+ // ensure that the code generation related to these panics is minimal as there's
+ // only one location which panics rather than a bunch throughout the module.
+ #[cfg(not(no_global_oom_handling))]
++#[cfg_attr(not(feature = "panic_immediate_abort"), inline(never))]
+ fn capacity_overflow() -> ! {
+     panic!("capacity overflow");
+ }
+diff --git a/rust/alloc/vec/mod.rs b/rust/alloc/vec/mod.rs
+index 41ca71805ef0..0d95fd7ef337 100644
+--- a/rust/alloc/vec/mod.rs
++++ b/rust/alloc/vec/mod.rs
+@@ -1376,7 +1376,7 @@ pub fn as_mut_slice(&mut self) -> &mut [T] {
+     /// [`as_mut_ptr`]: Vec::as_mut_ptr
+     /// [`as_ptr`]: Vec::as_ptr
+     #[stable(feature = "vec_as_ptr", since = "1.37.0")]
+-    #[cfg_attr(not(bootstrap), rustc_never_returns_null_ptr)]
++    #[rustc_never_returns_null_ptr]
+     #[inline]
+     pub fn as_ptr(&self) -> *const T {
+         // We shadow the slice method of the same name to avoid going through
+@@ -1436,7 +1436,7 @@ pub fn as_ptr(&self) -> *const T {
+     /// [`as_mut_ptr`]: Vec::as_mut_ptr
+     /// [`as_ptr`]: Vec::as_ptr
+     #[stable(feature = "vec_as_ptr", since = "1.37.0")]
+-    #[cfg_attr(not(bootstrap), rustc_never_returns_null_ptr)]
++    #[rustc_never_returns_null_ptr]
+     #[inline]
+     pub fn as_mut_ptr(&mut self) -> *mut T {
+         // We shadow the slice method of the same name to avoid going through
+@@ -1565,7 +1565,8 @@ pub unsafe fn set_len(&mut self, new_len: usize) {
+     #[stable(feature = "rust1", since = "1.0.0")]
+     pub fn swap_remove(&mut self, index: usize) -> T {
+         #[cold]
+-        #[inline(never)]
++        #[cfg_attr(not(feature = "panic_immediate_abort"), inline(never))]
++        #[track_caller]
+         fn assert_failed(index: usize, len: usize) -> ! {
+             panic!("swap_remove index (is {index}) should be < len (is {len})");
+         }
+@@ -1606,7 +1607,8 @@ fn assert_failed(index: usize, len: usize) -> ! {
+     #[stable(feature = "rust1", since = "1.0.0")]
+     pub fn insert(&mut self, index: usize, element: T) {
+         #[cold]
+-        #[inline(never)]
++        #[cfg_attr(not(feature = "panic_immediate_abort"), inline(never))]
++        #[track_caller]
+         fn assert_failed(index: usize, len: usize) -> ! {
+             panic!("insertion index (is {index}) should be <= len (is {len})");
+         }
+@@ -1667,7 +1669,7 @@ fn assert_failed(index: usize, len: usize) -> ! {
+     #[track_caller]
+     pub fn remove(&mut self, index: usize) -> T {
+         #[cold]
+-        #[inline(never)]
++        #[cfg_attr(not(feature = "panic_immediate_abort"), inline(never))]
+         #[track_caller]
+         fn assert_failed(index: usize, len: usize) -> ! {
+             panic!("removal index (is {index}) should be < len (is {len})");
+@@ -2097,6 +2099,7 @@ pub fn pop(&mut self) -> Option<T> {
+         } else {
+             unsafe {
+                 self.len -= 1;
++                core::intrinsics::assume(self.len < self.capacity());
+                 Some(ptr::read(self.as_ptr().add(self.len())))
+             }
+         }
+@@ -2299,7 +2302,8 @@ pub fn split_off(&mut self, at: usize) -> Self
+         A: Clone,
+     {
+         #[cold]
+-        #[inline(never)]
++        #[cfg_attr(not(feature = "panic_immediate_abort"), inline(never))]
++        #[track_caller]
+         fn assert_failed(at: usize, len: usize) -> ! {
+             panic!("`at` split index (is {at}) should be <= len (is {len})");
+         }
+diff --git a/scripts/min-tool-version.sh b/scripts/min-tool-version.sh
+index c62066825f53..bcc7d4247290 100755
+--- a/scripts/min-tool-version.sh
++++ b/scripts/min-tool-version.sh
+@@ -31,7 +31,7 @@ llvm)
+ 	fi
+ 	;;
+ rustc)
+-	echo 1.74.1
++	echo 1.75.0
+ 	;;
+ bindgen)
+ 	echo 0.65.1
+-- 
+2.43.0
+
diff --git a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix
index bf163701f331..5b51de103320 100644
--- a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix
+++ b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix
@@ -6,14 +6,14 @@ let
   # NOTE: When updating these, please also take a look at the changes done to
   # kernel config in the xanmod version commit
   ltsVariant = {
-    version = "6.1.72";
-    hash = "sha256-S8Ilrce7xQb549NPIBRIMMIng4xY77Hbq58rE5LOow8=";
+    version = "6.1.74";
+    hash = "sha256-PqCojvh7JwTcavtQHB8l/WxCTg94ndOy9KGVXsmGO/Y=";
     variant = "lts";
   };
 
   mainVariant = {
-    version = "6.6.10";
-    hash = "sha256-5BymQhVWMHg4zlQIPxf40JQI9iSWQqTZfbDd6+G3RsQ=";
+    version = "6.6.13";
+    hash = "sha256-RTfa9eIGYDqnffFnOFNaghKoGcHVy4rGYQkYumcw6Tk=";
     variant = "main";
   };
 
diff --git a/pkgs/os-specific/linux/kernel/zen-kernels.nix b/pkgs/os-specific/linux/kernel/zen-kernels.nix
index 40538920d100..7a3beba7db33 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.7"; #zen
-    suffix = "zen3"; #zen
-    sha256 = "0iflyip1a70i7bhll5bpls513g3q1hwsi1irm42rmjsysh4fb188"; #zen
+    version = "6.7.3"; #zen
+    suffix = "zen1"; #zen
+    sha256 = "1qm1vhd1x8gd2klcasp8f0x9hqaci4b5ih1nn9qc7vqash14hxy6"; #zen
     isLqx = false;
   };
   # ./update-zen.py lqx
   lqxVariant = {
-    version = "6.6.12"; #lqx
-    suffix = "lqx1"; #lqx
-    sha256 = "13wj7w66mrkabf7f03svq8x9dqy7w3dnh9jqpkr2hdkd6l2nf6c3"; #lqx
+    version = "6.7.2"; #lqx
+    suffix = "lqx2"; #lqx
+    sha256 = "0w82k39rqps8xwxnp87b16nfh4nmiys8532vrc8akjl1ffj68bqd"; #lqx
     isLqx = true;
   };
   zenKernelsFor = { version, suffix, sha256, isLqx }: buildLinux (args // {
diff --git a/pkgs/os-specific/linux/libbpf/default.nix b/pkgs/os-specific/linux/libbpf/default.nix
index 995bfba34a7f..21712e76661a 100644
--- a/pkgs/os-specific/linux/libbpf/default.nix
+++ b/pkgs/os-specific/linux/libbpf/default.nix
@@ -4,7 +4,12 @@
 , stdenv
 , zlib
 , lib
+
+# for passthru.tests
+, knot-dns
 , nixosTests
+, systemd
+, tracee
 }:
 
 stdenv.mkDerivation rec {
@@ -25,7 +30,9 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=$(out)" "-C src" ];
 
   passthru.tests = {
+    inherit knot-dns tracee;
     bpf = nixosTests.bpf;
+    systemd = systemd.override { withLibBPF = true; };
   };
 
   postInstall = ''
diff --git a/pkgs/os-specific/linux/libcap-ng/default.nix b/pkgs/os-specific/linux/libcap-ng/default.nix
index 0f60a8655ced..59aa5bbc0e5d 100644
--- a/pkgs/os-specific/linux/libcap-ng/default.nix
+++ b/pkgs/os-specific/linux/libcap-ng/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libcap-ng";
-  version = "0.8.3";
+  version = "0.8.4";
 
   src = fetchurl {
     url = "https://people.redhat.com/sgrubb/libcap-ng/libcap-ng-${version}.tar.gz";
-    sha256 = "sha256-vtb2hI4iuy+Dtfdksq7w7TkwVOgDqOOocRyyo55rSS0=";
+    sha256 = "sha256-aFgdOzjnVTy29t33gTsfyZ5ShW8hQh97R3zlq9JgWoo=";
   };
 
   outputs = [ "out" "dev" "man" ];
diff --git a/pkgs/os-specific/linux/libnl-tiny/default.nix b/pkgs/os-specific/linux/libnl-tiny/default.nix
index ec39b560826d..8a8c84513f62 100644
--- a/pkgs/os-specific/linux/libnl-tiny/default.nix
+++ b/pkgs/os-specific/linux/libnl-tiny/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation {
   pname = "libnl-tiny";
-  version = "unstable-2023-07-27";
+  version = "unstable-2023-12-05";
 
   src = fetchgit {
     url = "https://git.openwrt.org/project/libnl-tiny.git";
-    rev = "bc92a280186f9becc53c0f17e4e43cfbdeec7e7b";
-    hash = "sha256-/d6so8hfBOyp8NbUhPZ0aRj6gXO/RLgwCQnAT7N/rF8=";
+    rev = "965c4bf49658342ced0bd6e7cb069571b4a1ddff";
+    hash = "sha256-kegTV7FXMERW7vjRZo/Xp4cbSBZmynBgge2lK71Fx94=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/os-specific/linux/linuxptp/default.nix b/pkgs/os-specific/linux/linuxptp/default.nix
index 27a9ccb3303f..de215024555d 100644
--- a/pkgs/os-specific/linux/linuxptp/default.nix
+++ b/pkgs/os-specific/linux/linuxptp/default.nix
@@ -15,7 +15,10 @@ stdenv.mkDerivation rec {
        '/usr/include/linux/' "${linuxHeaders}/include/linux/"
   '';
 
-  makeFlags = [ "prefix=" ];
+  makeFlags = [
+    "prefix="
+    "CROSS_COMPILE=${stdenv.cc.targetPrefix}"
+  ];
 
   preInstall = ''
     export DESTDIR=$out
diff --git a/pkgs/os-specific/linux/lvm2/2_03.nix b/pkgs/os-specific/linux/lvm2/2_03.nix
index b2f6b0aa8a23..fa0a2cc8a600 100644
--- a/pkgs/os-specific/linux/lvm2/2_03.nix
+++ b/pkgs/os-specific/linux/lvm2/2_03.nix
@@ -1,4 +1,4 @@
 import ./common.nix {
-  version = "2.03.22";
-  hash = "sha256-TFppI70aznzgRHRgioSTfOBTupGxrOnwsAFyaOcy3Hw=";
+  version = "2.03.23";
+  hash = "sha256-dOeUqene4bz4ogZfZbkZbET98yHiLWO5jtfejJqhel0=";
 }
diff --git a/pkgs/os-specific/linux/lvm2/common.nix b/pkgs/os-specific/linux/lvm2/common.nix
index 7b9cc10be167..97f1eb3a1771 100644
--- a/pkgs/os-specific/linux/lvm2/common.nix
+++ b/pkgs/os-specific/linux/lvm2/common.nix
@@ -103,8 +103,8 @@ stdenv.mkDerivation rec {
     }))
     # Musl fix from Alpine
     ./fix-stdio-usage.patch
-  ] ++ lib.optionals stdenv.hostPlatform.isStatic [
-    ./no-shared.patch
+    # https://gitlab.com/lvmteam/lvm2/-/merge_requests/8
+    ./fix-static.patch
   ];
 
   doCheck = false; # requires root
diff --git a/pkgs/os-specific/linux/lvm2/fix-static.patch b/pkgs/os-specific/linux/lvm2/fix-static.patch
new file mode 100644
index 000000000000..89192744adec
--- /dev/null
+++ b/pkgs/os-specific/linux/lvm2/fix-static.patch
@@ -0,0 +1,28 @@
+From 0cbe7f0adc86c92c61156c417b27b063f156b31b Mon Sep 17 00:00:00 2001
+From: Alyssa Ross <hi@alyssa.is>
+Date: Tue, 2 Jan 2024 18:15:20 +0100
+Subject: [PATCH] makefiles: fix disabling shared link
+
+LIB_SHARED still gets set when shared linking has been disabled, so
+the previous version of this check still attempted to build the
+shared library.
+---
+ libdm/make.tmpl.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libdm/make.tmpl.in b/libdm/make.tmpl.in
+index 2dd9625d4d..69ba2c35ab 100644
+--- a/libdm/make.tmpl.in
++++ b/libdm/make.tmpl.in
+@@ -436,7 +436,7 @@ DEFS+=-D_FILE_OFFSET_BITS=64
+ 	@echo "    [CC] $(<F)"
+ 	$(Q) $(CC) -c $(CFLAGS) $(CLDFLAGS) $< $(LIBS) -o $@
+ 
+-ifneq (,$(LIB_SHARED))
++ifeq ("@SHARED_LINK@", "yes")
+ 
+ TARGETS += $(LIB_SHARED).$(LIB_VERSION)
+ $(LIB_SHARED).$(LIB_VERSION): $(OBJECTS) $(LDDEPS)
+-- 
+GitLab
+
diff --git a/pkgs/os-specific/linux/lvm2/no-shared.patch b/pkgs/os-specific/linux/lvm2/no-shared.patch
deleted file mode 100644
index 23a82a0fa294..000000000000
--- a/pkgs/os-specific/linux/lvm2/no-shared.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-diff --git a/libdm/Makefile.in b/libdm/Makefile.in
-index 2758648e6..f305a12b0 100644
---- a/libdm/Makefile.in
-+++ b/libdm/Makefile.in
-@@ -47,7 +47,6 @@ endif
- 
- LIB_SHARED = $(interface)/libdevmapper.$(LIB_SUFFIX)
- LIB_VERSION = $(LIB_VERSION_DM)
--TARGETS = libdevmapper.$(LIB_SUFFIX) libdevmapper.$(LIB_SUFFIX).$(LIB_VERSION) .symver_check
- 
- CFLOW_LIST = $(SOURCES)
- CFLOW_LIST_TARGET = libdevmapper.cflow
-diff --git a/libdm/make.tmpl.in b/libdm/make.tmpl.in
-index a731687c2..9366cdf1c 100644
---- a/libdm/make.tmpl.in
-+++ b/libdm/make.tmpl.in
-@@ -314,7 +314,7 @@ SUBDIRS.cflow := $(SUBDIRS:=.cflow)
- SUBDIRS.clean := $(SUBDIRS:=.clean)
- SUBDIRS.distclean := $(SUBDIRS:=.distclean)
- 
--TARGETS += $(LIB_SHARED) $(LIB_STATIC)
-+TARGETS += $(LIB_STATIC)
- 
- all: $(SUBDIRS) $(TARGETS)
- 
-@@ -431,7 +431,6 @@ DEFS+=-D_FILE_OFFSET_BITS=64
- 
- ifneq (,$(LIB_SHARED))
- 
--TARGETS += $(LIB_SHARED).$(LIB_VERSION)
- $(LIB_SHARED).$(LIB_VERSION): $(OBJECTS) $(LDDEPS)
- 	@echo "    [CC] $@"
- ifeq ("@LIB_SUFFIX@","so")
-diff --git a/make.tmpl.in b/make.tmpl.in
-index b73176f5a..6100d0dfd 100644
---- a/make.tmpl.in
-+++ b/make.tmpl.in
-@@ -368,7 +368,7 @@ SUBDIRS.cflow := $(SUBDIRS:=.cflow)
- SUBDIRS.clean := $(SUBDIRS:=.clean)
- SUBDIRS.distclean := $(SUBDIRS:=.distclean)
- 
--TARGETS += $(LIB_SHARED) $(LIB_STATIC)
-+TARGETS += $(LIB_STATIC)
- 
- INTERNAL_LIBS = \
- 	$(top_builddir)/libdaemon/client/libdaemonclient.a \
diff --git a/pkgs/os-specific/linux/lxc/default.nix b/pkgs/os-specific/linux/lxc/default.nix
index 4caf5b9aa943..6724651bbaf7 100644
--- a/pkgs/os-specific/linux/lxc/default.nix
+++ b/pkgs/os-specific/linux/lxc/default.nix
@@ -12,7 +12,6 @@
   nix-update-script,
   nixosTests,
   openssl,
-  pam,
   pkg-config,
   systemd,
 }:
@@ -41,11 +40,16 @@ stdenv.mkDerivation rec {
     libseccomp
     libselinux
     openssl
-    pam
     systemd
   ];
 
-  patches = [ ./add-meson-options.patch ];
+  patches = [
+     # make build more nix compatible
+    ./add-meson-options.patch
+
+    # fix docbook2man version detection
+    ./docbook-hack.patch
+  ];
 
   mesonFlags = [
     "-Dinstall-init-files=false"
diff --git a/pkgs/os-specific/linux/lxc/docbook-hack.patch b/pkgs/os-specific/linux/lxc/docbook-hack.patch
new file mode 100644
index 000000000000..f758014efbaa
--- /dev/null
+++ b/pkgs/os-specific/linux/lxc/docbook-hack.patch
@@ -0,0 +1,21 @@
+diff --git a/meson.build b/meson.build
+index d1527679e..360824994 100644
+--- a/meson.build
++++ b/meson.build
+@@ -320,15 +320,7 @@ docconf.set('LXC_USERNIC_CONF', lxc_user_network_conf)
+ docconf.set('LXC_USERNIC_DB', lxc_user_network_db)
+ docconf.set('PACKAGE_VERSION', version_data.get('LXC_VERSION'))
+ docconf.set('docdtd', '"-//OASIS//DTD DocBook XML" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"')
+-sgml2man = find_program('docbook2X2man', 'docbook2x-man', 'db2x_docbook2man', 'docbook2man', 'docbook-to-man', required: false, version: '>=0.8')
+-if not sgml2man.found()
+-    sgml2man = find_program('docbook2man', required: false, version: '<0.8')
+-    if sgml2man.found()
+-        docconf.set('docdtd', '"-//Davenport//DTD DocBook V3.0//EN"')
+-    elif want_mans
+-        error('missing required docbook2x or docbook-utils dependency')
+-    endif
+-endif
++sgml2man = find_program('docbook2X2man', 'docbook2x-man', 'db2x_docbook2man', 'docbook2man', 'docbook-to-man', required: false)
+ 
+ ## Threads.
+ threads = dependency('threads')
diff --git a/pkgs/os-specific/linux/lxc/support-db2x.patch b/pkgs/os-specific/linux/lxc/support-db2x.patch
deleted file mode 100644
index 16715992d35f..000000000000
--- a/pkgs/os-specific/linux/lxc/support-db2x.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/configure.ac b/configure.ac
-index 84f8699..dce9033 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -192,9 +192,9 @@ if test "x$enable_doc" = "xyes" -o "x$enable_doc" = "xauto"; then
- 	AC_SUBST(db2xman)
- fi
- AM_CONDITIONAL([ENABLE_DOCBOOK], [test "x$db2xman" != "x"])
--AM_CONDITIONAL([USE_DOCBOOK2X], [test "x$db2xman" != "xdocbook2man"])
-+AM_CONDITIONAL([USE_DOCBOOK2X], [test "x$db2xman" != "no-no-no"])
- 
--if test "x$db2xman" = "xdocbook2man"; then
-+if test "x$db2xman" = "no-no-no"; then
- 	docdtd="\"-//Davenport//DTD DocBook V3.0//EN\""
- else
- 	docdtd="\"-//OASIS//DTD DocBook XML\" \"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd\""
diff --git a/pkgs/os-specific/linux/nixos-rebuild/default.nix b/pkgs/os-specific/linux/nixos-rebuild/default.nix
index 9a7cca68bfd7..4849ff75c54a 100644
--- a/pkgs/os-specific/linux/nixos-rebuild/default.nix
+++ b/pkgs/os-specific/linux/nixos-rebuild/default.nix
@@ -1,4 +1,5 @@
-{ substituteAll
+{ callPackage
+, substituteAll
 , runtimeShell
 , coreutils
 , gnused
@@ -36,6 +37,7 @@ substituteAll {
   # run some a simple installer tests to make sure nixos-rebuild still works for them
   passthru.tests = {
     install-bootloader = nixosTests.nixos-rebuild-install-bootloader;
+    repl = callPackage ./test/repl.nix {};
     simple-installer = nixosTests.installer.simple;
     specialisations = nixosTests.nixos-rebuild-specialisations;
     target-host = nixosTests.nixos-rebuild-target-host;
diff --git a/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh b/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh
index 006b5db6320c..2051368a49f6 100755
--- a/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh
+++ b/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh
@@ -407,6 +407,13 @@ fi
 
 tmpDir=$(mktemp -t -d nixos-rebuild.XXXXXX)
 
+if [[ ${#tmpDir} -ge 60 ]]; then
+    # Very long tmp dirs lead to "too long for Unix domain socket"
+    # SSH ControlPath errors. Especially macOS sets long TMPDIR paths.
+    rmdir "$tmpDir"
+    tmpDir=$(TMPDIR= mktemp -t -d nixos-rebuild.XXXXXX)
+fi
+
 cleanup() {
     for ctrl in "$tmpDir"/ssh-*; do
         ssh -o ControlPath="$ctrl" -O exit dummyhost 2>/dev/null || true
@@ -572,6 +579,7 @@ if [ "$action" = repl ]; then
                     - ${blue}config${reset}   All option values
                     - ${blue}options${reset}  Option data and metadata
                     - ${blue}pkgs${reset}     Nixpkgs package set
+                    - ${blue}lib${reset}      Nixpkgs library functions
                     - other module arguments
 
                     - ${blue}flake${reset}    Flake outputs, inputs and source info of $flake
@@ -592,6 +600,7 @@ if [ "$action" = repl ]; then
                 configuration._module.specialArgs //
                 {
                   inherit (configuration) config options;
+                  lib = configuration.lib or configuration.pkgs.lib;
                   inherit flake;
                 };
           in builtins.seq scope builtins.trace motd scope
diff --git a/pkgs/os-specific/linux/nixos-rebuild/test/repl.nix b/pkgs/os-specific/linux/nixos-rebuild/test/repl.nix
new file mode 100644
index 000000000000..1161ff84664d
--- /dev/null
+++ b/pkgs/os-specific/linux/nixos-rebuild/test/repl.nix
@@ -0,0 +1,146 @@
+{ lib,
+  expect,
+  nix,
+  nixos-rebuild,
+  path,
+  runCommand,
+  stdenv,
+  writeText,
+}:
+let
+  # Arguably not true, but it holds up for now.
+  escapeExpect = lib.strings.escapeNixString;
+
+  expectSetup = ''
+    set timeout 180
+    proc expect_simple { pattern } {
+      puts "Expecting: $pattern"
+      expect {
+        timeout {
+          puts "\nTimeout waiting for: $pattern\n"
+          exit 1
+        }
+        $pattern
+      }
+    }
+  '';
+
+  # In case we want/need to evaluate packages or the assertions or whatever,
+  # we want to have a linux system.
+  # TODO: make the non-flake test use thise.
+  linuxSystem = lib.replaceStrings ["darwin"] ["linux"] stdenv.hostPlatform.system;
+
+in
+runCommand "test-nixos-rebuild-repl" {
+  nativeBuildInputs = [
+    expect
+    nix
+    nixos-rebuild
+  ];
+  nixpkgs =
+    if builtins.pathExists (path + "/.git")
+    then lib.cleanSource path
+    else path;
+} ''
+  export HOME=$(mktemp -d)
+  export TEST_ROOT=$PWD/test-tmp
+
+  # Prepare for running Nix in sandbox
+  export NIX_BUILD_HOOK=
+  export NIX_CONF_DIR=$TEST_ROOT/etc
+  export NIX_LOCALSTATE_DIR=$TEST_ROOT/var
+  export NIX_LOG_DIR=$TEST_ROOT/var/log/nix
+  export NIX_STATE_DIR=$TEST_ROOT/var/nix
+  export NIX_STORE_DIR=$TEST_ROOT/store
+  export PAGER=cat
+  mkdir -p $TEST_ROOT $NIX_CONF_DIR
+
+  echo General setup
+  ##################
+
+  export NIX_PATH=nixpkgs=$nixpkgs:nixos-config=$HOME/configuration.nix
+  cat >> ~/configuration.nix <<EOF
+  {
+    boot.loader.grub.enable = false;
+    fileSystems."/".device = "x";
+    imports = [ ./hardware-configuration.nix ];
+  }
+  EOF
+
+  echo '{ }' > ~/hardware-configuration.nix
+
+
+  echo Test traditional NixOS configuration
+  #########################################
+
+  expect ${writeText "test-nixos-rebuild-repl-expect" ''
+    ${expectSetup}
+    spawn nixos-rebuild repl --fast
+
+    expect "nix-repl> "
+
+    send "config.networking.hostName\n"
+    expect "\"nixos\""
+  ''}
+
+
+  echo Test flake based NixOS configuration
+  #########################################
+
+  # Switch to flake flavored environment
+  unset NIX_PATH
+  cat > $NIX_CONF_DIR/nix.conf <<EOF
+  experimental-features = nix-command flakes
+  EOF
+
+  # Make the config pure
+  echo '{ nixpkgs.hostPlatform = "${linuxSystem}"; }' > ~/hardware-configuration.nix
+
+  cat >~/flake.nix <<EOF
+  {
+    inputs.nixpkgs.url = "path:$nixpkgs";
+    outputs = { nixpkgs, ... }: {
+      nixosConfigurations.testconf = nixpkgs.lib.nixosSystem {
+        modules = [
+          ./configuration.nix
+          # Let's change it up a bit
+          { networking.hostName = "itsme"; }
+        ];
+      };
+    };
+  }
+  EOF
+
+  # cat -n ~/flake.nix
+
+  expect ${writeText "test-nixos-rebuild-repl-expect" ''
+    ${expectSetup}
+    spawn sh -c "nixos-rebuild repl --fast --flake path:\$HOME#testconf"
+
+    expect_simple "nix-repl>"
+
+    send "config.networking.hostName\n"
+    expect_simple "itsme"
+
+    expect_simple "nix-repl>"
+    send "lib.version\n"
+    expect_simple ${escapeExpect (
+      # The version string is a bit different in the flake lib, so we expect a prefix and ignore the rest
+      # Furthermore, including the revision (suffix) would cause unnecessary rebuilds.
+      # Note that a length of 4 only matches e.g. "24.
+      lib.strings.substring 0 4 (lib.strings.escapeNixString lib.version))}
+
+    # Make sure it's the right lib - should be the flake lib, not Nixpkgs lib.
+    expect_simple "nix-repl>"
+    send "lib?nixosSystem\n"
+    expect_simple "true"
+    expect_simple "nix-repl>"
+    send "lib?nixos\n"
+    expect_simple "true"
+  ''}
+  echo
+
+  #########
+  echo Done
+  touch $out
+''
diff --git a/pkgs/os-specific/linux/nsncd/default.nix b/pkgs/os-specific/linux/nsncd/default.nix
index 81590a6f8692..01cb6695b330 100644
--- a/pkgs/os-specific/linux/nsncd/default.nix
+++ b/pkgs/os-specific/linux/nsncd/default.nix
@@ -7,19 +7,22 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nsncd";
-  version = "unstable-2023-10-26";
+  version = "unstable-2024-01-16";
 
-  # https://github.com/twosigma/nsncd/pull/71 has not been upstreamed
-  # to twosigma/nsncd yet. Using the nix-community fork in the
-  # meantime.
   src = fetchFromGitHub {
-    owner = "nix-community";
+    owner = "twosigma";
     repo = "nsncd";
-    rev =  "d6513421f420e407248c6d0aee39ae2f861a7cec";
-    hash = "sha256-PykzwpPxMDHJOr2HubXuw+Krk9Jbi0E3M2lEAOXhx2M=";
+    rev =  "f4706786f26d12c533035fb2916be9be5751150b";
+    hash = "sha256-GbKDWW00eZZwmslkaGIO8hjCyD5xi7h+S2WP6q5ekOQ=";
   };
 
-  cargoSha256 = "sha256-cUM7rYXWpJ0aMiurXBp15IlxAmf/x5uiodxEqBPCQT0=";
+  cargoSha256 = "sha256-jAxcyMPDTBFBrG0cuKm0Tm5p/UEnUgTPQKDgqY2yK7w=";
+  checkFlags = [
+    # Relies on the test environment to be able to resolve "localhost"
+    # on IPv4. That's not the case in the Nix sandbox somehow. Works
+    # when running cargo test impurely on a (NixOS|Debian) machine.
+    "--skip=ffi::test_gethostbyname2_r"
+  ];
 
   meta = with lib; {
     description = "the name service non-caching daemon";
diff --git a/pkgs/os-specific/linux/nvidia-x11/builder.sh b/pkgs/os-specific/linux/nvidia-x11/builder.sh
index fbb116ab42ad..aa614aec1283 100755
--- a/pkgs/os-specific/linux/nvidia-x11/builder.sh
+++ b/pkgs/os-specific/linux/nvidia-x11/builder.sh
@@ -14,6 +14,8 @@ unpackFile() {
 
 
 buildPhase() {
+    runHook preBuild
+
     if [ -n "$bin" ]; then
         # Create the module.
         echo "Building linux driver against kernel: $kernel";
@@ -23,10 +25,14 @@ buildPhase() {
 
         cd ..
     fi
+
+    runHook postBuild
 }
 
 
 installPhase() {
+    runHook preInstall
+
     # Install libGL and friends.
 
     # since version 391, 32bit libraries are bundled in the 32/ sub-directory
@@ -214,6 +220,8 @@ installPhase() {
         # FIXME: needs PATH and other fixes
         # install -Dm755 nvidia-bug-report.sh $bin/bin/nvidia-bug-report.sh
     fi
+
+    runHook postInstall
 }
 
 genericBuild
diff --git a/pkgs/os-specific/linux/nvidia-x11/default.nix b/pkgs/os-specific/linux/nvidia-x11/default.nix
index bd57c19db335..de3248c2dd59 100644
--- a/pkgs/os-specific/linux/nvidia-x11/default.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/default.nix
@@ -16,6 +16,12 @@ let
   selectHighestVersion = a: b: if lib.versionOlder a.version b.version
     then b
     else a;
+
+  # https://forums.developer.nvidia.com/t/linux-6-7-3-545-29-06-550-40-07-error-modpost-gpl-incompatible-module-nvidia-ko-uses-gpl-only-symbol-rcu-read-lock/280908/19
+  rcu_patch = fetchpatch {
+    url = "https://github.com/gentoo/gentoo/raw/c64caf53/x11-drivers/nvidia-drivers/files/nvidia-drivers-470.223.02-gpl-pfn_valid.patch";
+    hash = "sha256-eZiQQp2S/asE7MfGvfe6dA/kdCvek9SYa/FFGp24dVg=";
+  };
 in
 rec {
   mkDriver = generic;
@@ -33,6 +39,8 @@ rec {
     openSha256 = "sha256-wvRdHguGLxS0mR06P5Qi++pDJBCF8pJ8hr4T8O6TJIo=";
     settingsSha256 = "sha256-9wqoDEWY4I7weWW05F4igj1Gj9wjHsREFMztfEmqm10=";
     persistencedSha256 = "sha256-d0Q3Lk80JqkS1B54Mahu2yY/WocOqFFbZVBh+ToGhaE=";
+
+    patches = [ rcu_patch ];
   };
 
   latest = selectHighestVersion production (generic {
@@ -43,30 +51,35 @@ rec {
     settingsSha256 = "sha256-YBaKpRQWSdXG8Usev8s3GYHCPqL8PpJeF6gpa2droWY=";
     persistencedSha256 = "sha256-AiYrrOgMagIixu3Ss2rePdoL24CKORFvzgZY3jlNbwM=";
 
-    patchFlags = [ "-p1" "-d" "kernel" ];
-    patches = [];
+    patches = [ rcu_patch ];
+
+    brokenOpen = kernel.kernelAtLeast "6.7";
   });
 
   beta = selectHighestVersion latest (generic {
-    version = "545.23.06";
-    sha256_64bit = "sha256-QTnTKAGfcvKvKHik0BgAemV3PrRqRlM3B9jjZeupCC8=";
-    sha256_aarch64 = "sha256-qkVP6AiXNoRTqgqPvs/AfErEq8BTQw25rtJ6GS06JTM=";
-    openSha256 = "sha256-m7D5LZdhFCZYAIbhrgZ0pN2z19LsU3I3Q7qsKX7Z6mM=";
-    settingsSha256 = "sha256-+X6gDeU8Qlvprb05aB2quM55y0zEcBXtb65e3Rq9gKg=";
-    persistencedSha256 = "sha256-RQJAIwPqOUI5FB3uf0/Y4K/iwFfoLpU1/+BOK/KF5VA=";
+    version = "550.40.07";
+    sha256_64bit = "sha256-KYk2xye37v7ZW7h+uNJM/u8fNf7KyGTZjiaU03dJpK0=";
+    sha256_aarch64 = "sha256-AV7KgRXYaQGBFl7zuRcfnTGr8rS5n13nGUIe3mJTXb4=";
+    openSha256 = "sha256-mRUTEWVsbjq+psVe+kAT6MjyZuLkG2yRDxCMvDJRL1I=";
+    settingsSha256 = "sha256-c30AQa4g4a1EHmaEu1yc05oqY01y+IusbBuq+P6rMCs=";
+    persistencedSha256 = "sha256-11tLSY8uUIl4X/roNnxf5yS2PQvHvoNjnd2CB67e870=";
+
+    patches = [ rcu_patch ];
   });
 
   # Vulkan developer beta driver
   # See here for more information: https://developer.nvidia.com/vulkan-driver
   vulkan_beta = generic rec {
-    version = "535.43.22";
+    version = "535.43.25";
     persistencedVersion = "535.98";
     settingsVersion = "535.98";
-    sha256_64bit = "sha256-emam5bfYJeFi1+Z0Z1//luaY1JTKcQNYUP8GmG9480Q=";
-    openSha256 = "sha256-8Nz6LfEdAsm7d6Leqs+ikN0BpOPkLCcd7bckK0MOIFU=";
+    sha256_64bit = "sha256-Ir75rT1xs3Cycd1Wl7EqIUuU5bGfeSPYbGiq2Eqjlsw=";
+    openSha256 = "sha256-HnM4/sUKvZ8hGuwa0YSTAuC9HShw6on3+lk0TcqcPEQ=";
     settingsSha256 = "sha256-jCRfeB1w6/dA27gaz6t5/Qo7On0zbAPIi74LYLel34s=";
     persistencedSha256 = "sha256-WviDU6B50YG8dO64CGvU3xK8WFUX8nvvVYm/fuGyroM=";
     url = "https://developer.nvidia.com/downloads/vulkan-beta-${lib.concatStrings (lib.splitVersion version)}-linux";
+
+    patches = [ rcu_patch ];
   };
 
   # data center driver compatible with current default cudaPackages
@@ -79,6 +92,10 @@ rec {
     useSettings = false;
     usePersistenced = false;
     useFabricmanager = true;
+
+    patches = [ rcu_patch ];
+
+    broken = kernel.kernelAtLeast "6.5";
   };
 
   dc_535 = generic rec {
@@ -90,6 +107,8 @@ rec {
     useSettings = false;
     usePersistenced = true;
     useFabricmanager = true;
+
+    patches = [ rcu_patch ];
   };
 
   # Update note:
@@ -104,8 +123,7 @@ rec {
     settingsSha256 = "sha256-r6DuIH/rnsCm/y51iRgPNi5/kz+EFMVABREdTjBneZ0=";
     persistencedSha256 = "sha256-e71fpPBBv8S/aoeXxBXkzKy5bsMMbv8y024cSLc8DYc=";
 
-    patchFlags = [ "-p1" "-d" "kernel" ];
-    patches = [];
+    patches = [ rcu_patch ];
   };
 
   # Last one supporting x86
@@ -117,10 +135,18 @@ rec {
     persistencedSha256 = "sha256-NuqUQbVt80gYTXgIcu0crAORfsj9BCRooyH3Gp1y1ns=";
 
     broken = kernel.kernelAtLeast "6.2";
+
+    # fixes the bug described in https://bbs.archlinux.org/viewtopic.php?pid=2083439#p2083439
+    # see https://bbs.archlinux.org/viewtopic.php?pid=2083651#p2083651
+    # and https://bbs.archlinux.org/viewtopic.php?pid=2083699#p2083699
+    postInstall = ''
+      mv $out/lib/tls/* $out/lib
+      rmdir $out/lib/tls
+    '';
   };
 
   legacy_340 = let
-    # Source cooresponding to https://aur.archlinux.org/packages/nvidia-340xx-dkms
+    # Source corresponding to https://aur.archlinux.org/packages/nvidia-340xx-dkms
     aurPatches = fetchFromGitHub {
       owner = "archlinux-jerry";
       repo = "nvidia-340xx";
@@ -154,5 +180,13 @@ rec {
 
     broken = kernel.kernelAtLeast "6.7";
     patches = map (patch: "${aurPatches}/${patch}") patchset;
+
+    # fixes the bug described in https://bbs.archlinux.org/viewtopic.php?pid=2083439#p2083439
+    # see https://bbs.archlinux.org/viewtopic.php?pid=2083651#p2083651
+    # and https://bbs.archlinux.org/viewtopic.php?pid=2083699#p2083699
+    postInstall = ''
+      mv $out/lib/tls/* $out/lib
+      rmdir $out/lib/tls
+    '';
   };
 }
diff --git a/pkgs/os-specific/linux/nvidia-x11/generic.nix b/pkgs/os-specific/linux/nvidia-x11/generic.nix
index c60098ab899d..2cbc1846362b 100644
--- a/pkgs/os-specific/linux/nvidia-x11/generic.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/generic.nix
@@ -19,10 +19,12 @@
 , useFabricmanager ? false
 , ibtSupport ? false
 
-, prePatch ? ""
+, prePatch ? null
 , postPatch ? null
 , patchFlags ? null
 , patches ? [ ]
+, preInstall ? null
+, postInstall ? null
 , broken ? false
 , brokenOpen ? broken
 }@args:
@@ -58,7 +60,6 @@
 
 with lib;
 
-assert useSettings -> !libsOnly;
 assert !libsOnly -> kernel != null;
 assert versionOlder version "391" -> sha256_32bit != null;
 assert useSettings -> settingsSha256 != null;
@@ -145,6 +146,7 @@ let
 
     patches = if libsOnly then null else patches;
     inherit prePatch postPatch patchFlags;
+    inherit preInstall postInstall;
     inherit version useGLVND useProfiles;
     inherit (stdenv.hostPlatform) system;
     inherit i686bundled;
diff --git a/pkgs/os-specific/linux/pam/default.nix b/pkgs/os-specific/linux/pam/default.nix
index 10864df2597b..8660313a7189 100644
--- a/pkgs/os-specific/linux/pam/default.nix
+++ b/pkgs/os-specific/linux/pam/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation rec {
   pname = "linux-pam";
-  version = "1.5.2";
+  version = "1.5.3";
 
   src = fetchurl {
-    url    = "https://github.com/linux-pam/linux-pam/releases/download/v${version}/Linux-PAM-${version}.tar.xz";
-    sha256 = "sha256-5OxxMakdpEUSV0Jo9JPG2MoQXIcJFpG46bVspoXU+U0=";
+    url = "https://github.com/linux-pam/linux-pam/releases/download/v${version}/Linux-PAM-${version}.tar.xz";
+    hash = "sha256-esS1D+7gBKn6iPHf0tL6c4qCiWdjBQzXc7PFSwqBgoM=";
   };
 
   patches = [
@@ -24,7 +24,13 @@ stdenv.mkDerivation rec {
       url = "https://github.com/linux-pam/linux-pam/commit/77bd338125cde583ecdfb9fd69619bcd2baf15c2.patch";
       hash = "sha256-tlc9RcLZpEH315NFD4sdN9yOco8qhC6+bszl4OHm+AI=";
     })
-  ];
+  ]
+  ++ lib.optional stdenv.hostPlatform.isMusl (fetchpatch {
+      name = "missing-termio.patch";
+      url = "https://github.com/linux-pam/linux-pam/commit/5374f677e4cae669eb9accf2449178b602e8a40a.patch";
+      hash = "sha256-b6n8f16ETSNj5h+5/Yhn32XMfVO8xEnZRRhw+nuLP/8=";
+    })
+  ;
 
   # Case-insensitivity workaround for https://github.com/linux-pam/linux-pam/issues/569
   postPatch = if stdenv.buildPlatform.isDarwin && stdenv.buildPlatform != stdenv.hostPlatform then ''
@@ -57,6 +63,9 @@ stdenv.mkDerivation rec {
   configureFlags = [
     "--includedir=${placeholder "out"}/include/security"
     "--enable-sconfigdir=/etc/security"
+    # The module is deprecated. We re-enable it explicitly until NixOS
+    # module stops using it.
+    "--enable-lastlog"
   ];
 
   installFlags = [
diff --git a/pkgs/os-specific/linux/pcm/default.nix b/pkgs/os-specific/linux/pcm/default.nix
index 15f54fb360a4..7a86a58ffa12 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 = "202311";
+  version = "202401";
 
   src = fetchFromGitHub {
     owner = "opcm";
     repo = "pcm";
     rev = version;
-    hash = "sha256-lWE7Gz/+LLMr3UyqfwBWEwpSvtdjMgdxVqc9hrZAYfk=";
+    hash = "sha256-S4E9q4pdF9pT0ehKkeOMbJEFlTV9zB15BZA0R+cjVi8=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/os-specific/linux/power-calibrate/default.nix b/pkgs/os-specific/linux/power-calibrate/default.nix
index 7b8b4683cbd7..d4ae90cddd7c 100644
--- a/pkgs/os-specific/linux/power-calibrate/default.nix
+++ b/pkgs/os-specific/linux/power-calibrate/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "power-calibrate";
-  version = "0.01.35";
+  version = "0.01.36";
 
   src = fetchFromGitHub {
     owner = "ColinIanKing";
     repo = pname;
     rev = "V${version}";
-    hash = "sha256-6ggxerWWBfjVgkgwLmIv/kPb04JIsJxPcVBrRQAG/ZM=";
+    hash = "sha256-7NKR82waxooB62D59kRmJPqxoVHX9OIWKwLrmzsg9OQ=";
   };
 
   installFlags = [
diff --git a/pkgs/os-specific/linux/rdma-core/default.nix b/pkgs/os-specific/linux/rdma-core/default.nix
index 5d75249d616c..7014e3b095f4 100644
--- a/pkgs/os-specific/linux/rdma-core/default.nix
+++ b/pkgs/os-specific/linux/rdma-core/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "rdma-core";
-  version = "49.0";
+  version = "50.0";
 
   src = fetchFromGitHub {
     owner = "linux-rdma";
     repo = "rdma-core";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-4095U7fLIvixUY3K6l0iFJh7oWwwKAX/WcD3ziqdsLg=";
+    hash = "sha256-PJlbY7QR9b2eVaALpuq/67kRTc91HEhs9Wl7WXtSLmA=";
   };
 
   strictDeps = true;
diff --git a/pkgs/os-specific/linux/rtl8812au/default.nix b/pkgs/os-specific/linux/rtl8812au/default.nix
index adc197a1166e..ed330fc24637 100644
--- a/pkgs/os-specific/linux/rtl8812au/default.nix
+++ b/pkgs/os-specific/linux/rtl8812au/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation {
   pname = "rtl8812au";
-  version = "${kernel.version}-unstable-2023-07-22";
+  version = "${kernel.version}-unstable-2024-01-19";
 
   src = fetchFromGitHub {
     owner = "morrownr";
     repo = "8812au-20210629";
-    rev = "b5f4e6e894eca8fea38661e2fc22a2570e0274ad";
-    hash = "sha256-3uPowesJVh/cnagMz/Uadb+U5rDUAWfU39tZaDNCoqg=";
+    rev = "3b921c0beda8583c1d2d1b0b7e4692d11e7ea772";
+    hash = "sha256-Ji61Y23uGSTyj3Z5ia9iev5rVzSOv7XY/IfAClhz7Q8=";
   };
 
   nativeBuildInputs = [ bc nukeReferences ] ++ kernel.moduleBuildDependencies;
diff --git a/pkgs/os-specific/linux/rtl88x2bu/default.nix b/pkgs/os-specific/linux/rtl88x2bu/default.nix
index 73b098894b98..edb2feed6c61 100644
--- a/pkgs/os-specific/linux/rtl88x2bu/default.nix
+++ b/pkgs/os-specific/linux/rtl88x2bu/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation {
   pname = "rtl88x2bu";
-  version = "${kernel.version}-unstable-2023-09-24";
+  version = "${kernel.version}-unstable-2023-11-29";
 
   src = fetchFromGitHub {
     owner = "morrownr";
     repo = "88x2bu-20210702";
-    rev = "888ba1b309e6258a736ef5c37a68836cd0ea5517";
-    sha256 = "sha256-oLRGRKUNTmIw+Zn23TArGumo24AIH2YEMpnStyXBNw8=";
+    rev = "cd2b6cbd9c8fbfebee8a1f28fab8e4434450456c";
+    sha256 = "sha256-t1lLJSEDzY2zvgcKYaxUq/umrlLpxu4+4zWmG8R0Wz4=";
   };
 
   hardeningDisable = [ "pic" ];
diff --git a/pkgs/os-specific/linux/rust-out-of-tree-module/default.nix b/pkgs/os-specific/linux/rust-out-of-tree-module/default.nix
new file mode 100644
index 000000000000..fd6b85a4dbd6
--- /dev/null
+++ b/pkgs/os-specific/linux/rust-out-of-tree-module/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchFromGitHub, kernel }:
+kernel.stdenv.mkDerivation {
+  name = "rust-out-of-tree-module";
+
+  src = fetchFromGitHub {
+    owner = "Rust-for-linux";
+    repo = "rust-out-of-tree-module";
+
+    rev = "7addf9dafba795524f6179a557f7272ecbe1b165";
+    hash = "sha256-Bj7WonZ499W/FajbxjM7yBkU9iTxTW7CrRbCSzWbsSc=";
+  };
+
+  nativeBuildInputs = kernel.moduleBuildDependencies;
+  makeFlags = kernel.makeFlags ++ [ "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ];
+
+  installFlags = [ "INSTALL_MOD_PATH=${placeholder "out"}" ];
+  installTargets = [ "modules_install" ];
+
+  meta = {
+    broken = !kernel.withRust;
+    description = "A basic template for an out-of-tree Linux kernel module written in Rust";
+    homepage = "https://github.com/Rust-for-Linux/rust-out-of-tree-module";
+    license = lib.licenses.gpl2Only;
+    maintainers = [ lib.maintainers.blitz ];
+    platforms = lib.platforms.linux;
+  };
+
+}
diff --git a/pkgs/os-specific/linux/sasutils/default.nix b/pkgs/os-specific/linux/sasutils/default.nix
index d30e7f608c77..64d288117bf4 100644
--- a/pkgs/os-specific/linux/sasutils/default.nix
+++ b/pkgs/os-specific/linux/sasutils/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "sasutils";
-  version = "0.4.0";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "stanford-rc";
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-9JRw+UoxU0I5RHuimzYrM/3j8UWHuicVpoOdRRrj2Wc=";
+    sha256 = "sha256-DK0mEqlPf9UGtUxqbzB0l1xX0P4htYm2NYvV7zilhx0=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/os-specific/linux/setools/default.nix b/pkgs/os-specific/linux/setools/default.nix
index 2e554a0241b2..0819ae91fc87 100644
--- a/pkgs/os-specific/linux/setools/default.nix
+++ b/pkgs/os-specific/linux/setools/default.nix
@@ -8,18 +8,18 @@ with python3.pkgs;
 
 buildPythonApplication rec {
   pname = "setools";
-  version = "4.4.1";
+  version = "4.4.4";
 
   src = fetchFromGitHub {
     owner = "SELinuxProject";
     repo = pname;
     rev = "refs/tags/${version}";
-    sha256 = "sha256-4T5FIdnKi35JSm+IoYA2gIBBRV0nN0YLEw9xvDqNcgo=";
+    hash = "sha256-QCJfFdY4THBurx7G8q/WAzb7b9CwtNNGi5fn9D++BMU=";
   };
 
   nativeBuildInputs = [ cython ];
   buildInputs = [ libsepol ];
-  propagatedBuildInputs = [ enum34 libselinux networkx ]
+  propagatedBuildInputs = [ enum34 libselinux networkx setuptools ]
     ++ optionals withGraphics [ pyqt5 ];
 
   nativeCheckInputs = [ tox checkpolicy ];
diff --git a/pkgs/os-specific/linux/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch b/pkgs/os-specific/linux/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch
index 104a9dad959a..b08026278edb 100644
--- a/pkgs/os-specific/linux/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch
+++ b/pkgs/os-specific/linux/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch
@@ -13,10 +13,10 @@ unit.  (However, this ignores the fsck unit, so it's not perfect...)
  1 file changed, 4 deletions(-)
 
 diff --git a/rules.d/99-systemd.rules.in b/rules.d/99-systemd.rules.in
-index c0defc31de..8f80235731 100644
+index 0d68f31d36..6b52f7ed4b 100644
 --- a/rules.d/99-systemd.rules.in
 +++ b/rules.d/99-systemd.rules.in
-@@ -20,10 +20,6 @@ SUBSYSTEM=="block", TAG+="systemd"
+@@ -22,10 +22,6 @@ SUBSYSTEM=="block", TAG+="systemd"
  SUBSYSTEM=="block", ENV{DM_SUSPENDED}=="1", IMPORT{db}="SYSTEMD_READY", GOTO="systemd_end"
  SUBSYSTEM=="block", ACTION=="add", ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", ENV{SYSTEMD_READY}="0"
  
diff --git a/pkgs/os-specific/linux/systemd/0002-Don-t-try-to-unmount-nix-or-nix-store.patch b/pkgs/os-specific/linux/systemd/0002-Don-t-try-to-unmount-nix-or-nix-store.patch
index dda8524c498d..8507bb583c8a 100644
--- a/pkgs/os-specific/linux/systemd/0002-Don-t-try-to-unmount-nix-or-nix-store.patch
+++ b/pkgs/os-specific/linux/systemd/0002-Don-t-try-to-unmount-nix-or-nix-store.patch
@@ -14,10 +14,10 @@ Original-Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
  2 files changed, 6 insertions(+), 2 deletions(-)
 
 diff --git a/src/shared/fstab-util.c b/src/shared/fstab-util.c
-index 4ffec25c75..b99031c54e 100644
+index 55e76b6e16..015a608035 100644
 --- a/src/shared/fstab-util.c
 +++ b/src/shared/fstab-util.c
-@@ -43,6 +43,8 @@ bool fstab_is_extrinsic(const char *mount, const char *opts) {
+@@ -66,6 +66,8 @@ bool fstab_is_extrinsic(const char *mount, const char *opts) {
          /* Don't bother with the OS data itself */
          if (PATH_IN_SET(mount,
                          "/",
@@ -27,7 +27,7 @@ index 4ffec25c75..b99031c54e 100644
                          "/etc"))
                  return true;
 diff --git a/src/shutdown/umount.c b/src/shutdown/umount.c
-index 1586c2e214..fcae95f824 100644
+index 1a9b99d761..04ef9af1ea 100644
 --- a/src/shutdown/umount.c
 +++ b/src/shutdown/umount.c
 @@ -170,8 +170,10 @@ int mount_points_list_get(const char *mountinfo, MountPoint **head) {
diff --git a/pkgs/os-specific/linux/systemd/0003-Fix-NixOS-containers.patch b/pkgs/os-specific/linux/systemd/0003-Fix-NixOS-containers.patch
index 2d86d1e6957a..535ca3d86457 100644
--- a/pkgs/os-specific/linux/systemd/0003-Fix-NixOS-containers.patch
+++ b/pkgs/os-specific/linux/systemd/0003-Fix-NixOS-containers.patch
@@ -10,10 +10,10 @@ container, so checking early whether it exists will fail.
  1 file changed, 2 insertions(+)
 
 diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
-index e170958fc5..898a674631 100644
+index 38196ef3d6..57d1750b00 100644
 --- a/src/nspawn/nspawn.c
 +++ b/src/nspawn/nspawn.c
-@@ -5648,6 +5648,7 @@ static int run(int argc, char *argv[]) {
+@@ -5602,6 +5602,7 @@ static int run(int argc, char *argv[]) {
                                  goto finish;
                          }
                  } else {
@@ -21,7 +21,7 @@ index e170958fc5..898a674631 100644
                          _cleanup_free_ char *p = NULL;
  
                          if (arg_pivot_root_new)
-@@ -5662,6 +5663,7 @@ static int run(int argc, char *argv[]) {
+@@ -5618,6 +5619,7 @@ static int run(int argc, char *argv[]) {
                                                      "Directory %s doesn't look like it has an OS tree (/usr/ directory is missing). Refusing.", arg_directory);
                                  goto finish;
                          }
diff --git a/pkgs/os-specific/linux/systemd/0004-Add-some-NixOS-specific-unit-directories.patch b/pkgs/os-specific/linux/systemd/0004-Add-some-NixOS-specific-unit-directories.patch
index c905a4d812af..d2232765f71d 100644
--- a/pkgs/os-specific/linux/systemd/0004-Add-some-NixOS-specific-unit-directories.patch
+++ b/pkgs/os-specific/linux/systemd/0004-Add-some-NixOS-specific-unit-directories.patch
@@ -11,12 +11,12 @@ Also, remove /usr and /lib as these don't exist on NixOS.
 
 Original-Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
 ---
- src/basic/path-lookup.c | 17 ++---------------
+ src/basic/path-lookup.c | 18 ++----------------
  src/core/systemd.pc.in  |  8 ++++----
- 2 files changed, 6 insertions(+), 19 deletions(-)
+ 2 files changed, 6 insertions(+), 20 deletions(-)
 
 diff --git a/src/basic/path-lookup.c b/src/basic/path-lookup.c
-index 7d158a8295..f9bd62b631 100644
+index 4e3d59fc56..0d18b9a2d0 100644
 --- a/src/basic/path-lookup.c
 +++ b/src/basic/path-lookup.c
 @@ -92,11 +92,7 @@ int xdg_user_data_dir(char **ret, const char *suffix) {
@@ -31,7 +31,7 @@ index 7d158a8295..f9bd62b631 100644
          NULL
  };
  
-@@ -617,15 +613,13 @@ int lookup_paths_init(
+@@ -613,16 +609,13 @@ int lookup_paths_init(
                                          persistent_config,
                                          SYSTEM_CONFIG_UNIT_DIR,
                                          "/etc/systemd/system",
@@ -44,11 +44,12 @@ index 7d158a8295..f9bd62b631 100644
 -                                        "/usr/local/lib/systemd/system",
                                          SYSTEM_DATA_UNIT_DIR,
 -                                        "/usr/lib/systemd/system",
+-                                        /* To be used ONLY for images which might be legacy split-usr */
 -                                        STRV_IFNOTNULL(flags & LOOKUP_PATHS_SPLIT_USR ? "/lib/systemd/system" : NULL),
                                          STRV_IFNOTNULL(generator_late));
                          break;
  
-@@ -641,14 +635,11 @@ int lookup_paths_init(
+@@ -638,14 +631,11 @@ int lookup_paths_init(
                                          persistent_config,
                                          USER_CONFIG_UNIT_DIR,
                                          "/etc/systemd/user",
@@ -64,7 +65,7 @@ index 7d158a8295..f9bd62b631 100644
                                          STRV_IFNOTNULL(generator_late));
                          break;
  
-@@ -808,7 +799,6 @@ char **generator_binary_paths(RuntimeScope scope) {
+@@ -805,7 +795,6 @@ char **generator_binary_paths(RuntimeScope scope) {
                  case RUNTIME_SCOPE_SYSTEM:
                          add = strv_new("/run/systemd/system-generators",
                                         "/etc/systemd/system-generators",
@@ -72,7 +73,7 @@ index 7d158a8295..f9bd62b631 100644
                                         SYSTEM_GENERATOR_DIR);
                          break;
  
-@@ -816,7 +806,6 @@ char **generator_binary_paths(RuntimeScope scope) {
+@@ -813,7 +802,6 @@ char **generator_binary_paths(RuntimeScope scope) {
                  case RUNTIME_SCOPE_USER:
                          add = strv_new("/run/systemd/user-generators",
                                         "/etc/systemd/user-generators",
@@ -80,7 +81,7 @@ index 7d158a8295..f9bd62b631 100644
                                         USER_GENERATOR_DIR);
                          break;
  
-@@ -855,14 +844,12 @@ char **env_generator_binary_paths(RuntimeScope runtime_scope) {
+@@ -852,14 +840,12 @@ char **env_generator_binary_paths(RuntimeScope runtime_scope) {
                  case RUNTIME_SCOPE_SYSTEM:
                          add = strv_new("/run/systemd/system-environment-generators",
                                          "/etc/systemd/system-environment-generators",
@@ -96,10 +97,10 @@ index 7d158a8295..f9bd62b631 100644
                          break;
  
 diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in
-index 693433b34b..5932a21b5b 100644
+index f3b85b0190..8ae544b495 100644
 --- a/src/core/systemd.pc.in
 +++ b/src/core/systemd.pc.in
-@@ -38,10 +38,10 @@ systemdsystemconfdir=${systemd_system_conf_dir}
+@@ -43,10 +43,10 @@ systemdsystemconfdir=${systemd_system_conf_dir}
  systemd_user_conf_dir=${sysconfdir}/systemd/user
  systemduserconfdir=${systemd_user_conf_dir}
  
@@ -111,8 +112,8 @@ index 693433b34b..5932a21b5b 100644
 +systemd_user_unit_path=${systemd_user_conf_dir}:/etc/systemd/user:/nix/var/nix/profiles/default/lib/systemd/user:/run/systemd/user:${systemduserunitdir}
  systemduserunitpath=${systemd_user_unit_path}
  
- systemd_system_generator_dir=${root_prefix}/lib/systemd/system-generators
-@@ -50,10 +50,10 @@ systemdsystemgeneratordir=${systemd_system_generator_dir}
+ systemd_system_generator_dir=${prefix}/lib/systemd/system-generators
+@@ -55,10 +55,10 @@ systemdsystemgeneratordir=${systemd_system_generator_dir}
  systemd_user_generator_dir=${prefix}/lib/systemd/user-generators
  systemdusergeneratordir=${systemd_user_generator_dir}
  
@@ -124,4 +125,4 @@ index 693433b34b..5932a21b5b 100644
 +systemd_user_generator_path=/run/systemd/user-generators:/etc/systemd/user-generators:${systemd_user_generator_dir}
  systemdusergeneratorpath=${systemd_user_generator_path}
  
- systemd_sleep_dir=${root_prefix}/lib/systemd/system-sleep
+ systemd_sleep_dir=${prefix}/lib/systemd/system-sleep
diff --git a/pkgs/os-specific/linux/systemd/0005-Get-rid-of-a-useless-message-in-user-sessions.patch b/pkgs/os-specific/linux/systemd/0005-Get-rid-of-a-useless-message-in-user-sessions.patch
index 0a80d5ac4e83..a0bcc6afaa12 100644
--- a/pkgs/os-specific/linux/systemd/0005-Get-rid-of-a-useless-message-in-user-sessions.patch
+++ b/pkgs/os-specific/linux/systemd/0005-Get-rid-of-a-useless-message-in-user-sessions.patch
@@ -13,10 +13,10 @@ in containers.
  1 file changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/src/core/manager.c b/src/core/manager.c
-index 22ec6e79b1..771e8e7f16 100644
+index e61ebee253..22cc5cc843 100644
 --- a/src/core/manager.c
 +++ b/src/core/manager.c
-@@ -1559,7 +1559,8 @@ static unsigned manager_dispatch_stop_when_bound_queue(Manager *m) {
+@@ -1562,7 +1562,8 @@ static unsigned manager_dispatch_stop_when_bound_queue(Manager *m) {
                  if (!unit_is_bound_by_inactive(u, &culprit))
                          continue;
  
diff --git a/pkgs/os-specific/linux/systemd/0006-hostnamed-localed-timedated-disable-methods-that-cha.patch b/pkgs/os-specific/linux/systemd/0006-hostnamed-localed-timedated-disable-methods-that-cha.patch
index abc6c24dbf51..b350e36bc5c2 100644
--- a/pkgs/os-specific/linux/systemd/0006-hostnamed-localed-timedated-disable-methods-that-cha.patch
+++ b/pkgs/os-specific/linux/systemd/0006-hostnamed-localed-timedated-disable-methods-that-cha.patch
@@ -11,7 +11,7 @@ Subject: [PATCH] hostnamed, localed, timedated: disable methods that change
  3 files changed, 25 insertions(+)
 
 diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c
-index 9ef45f8e75..99b1ec2e36 100644
+index e1d53f2395..a224e6dadc 100644
 --- a/src/hostname/hostnamed.c
 +++ b/src/hostname/hostnamed.c
 @@ -1053,6 +1053,9 @@ static int method_set_static_hostname(sd_bus_message *m, void *userdata, sd_bus_
@@ -35,7 +35,7 @@ index 9ef45f8e75..99b1ec2e36 100644
  
          context_read_machine_info(c);
 diff --git a/src/locale/localed.c b/src/locale/localed.c
-index f544a73580..ce00c262cc 100644
+index 5d96237fae..9af35cd29c 100644
 --- a/src/locale/localed.c
 +++ b/src/locale/localed.c
 @@ -229,6 +229,9 @@ static int method_set_locale(sd_bus_message *m, void *userdata, sd_bus_error *er
@@ -69,10 +69,10 @@ index f544a73580..ce00c262cc 100644
  
          r = x11_context_verify_and_warn(&in, LOG_ERR, error);
 diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c
-index ad1d492d6b..331af34505 100644
+index c7be30f563..50f8aa8675 100644
 --- a/src/timedate/timedated.c
 +++ b/src/timedate/timedated.c
-@@ -665,6 +665,10 @@ static int method_set_timezone(sd_bus_message *m, void *userdata, sd_bus_error *
+@@ -659,6 +659,10 @@ static int method_set_timezone(sd_bus_message *m, void *userdata, sd_bus_error *
          if (r < 0)
                  return r;
  
@@ -83,7 +83,7 @@ index ad1d492d6b..331af34505 100644
          if (!timezone_is_valid(z, LOG_DEBUG))
                  return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid or not installed time zone '%s'", z);
  
-@@ -743,6 +747,9 @@ static int method_set_local_rtc(sd_bus_message *m, void *userdata, sd_bus_error
+@@ -737,6 +741,9 @@ static int method_set_local_rtc(sd_bus_message *m, void *userdata, sd_bus_error
          if (r < 0)
                  return r;
  
@@ -93,7 +93,7 @@ index ad1d492d6b..331af34505 100644
          if (lrtc == c->local_rtc && !fix_system)
                  return sd_bus_reply_method_return(m, NULL);
  
-@@ -923,6 +930,9 @@ static int method_set_ntp(sd_bus_message *m, void *userdata, sd_bus_error *error
+@@ -917,6 +924,9 @@ static int method_set_ntp(sd_bus_message *m, void *userdata, sd_bus_error *error
          if (r < 0)
                  return r;
  
diff --git a/pkgs/os-specific/linux/systemd/0008-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch b/pkgs/os-specific/linux/systemd/0007-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch
index 3150d97be2e1..30178675f7f9 100644
--- a/pkgs/os-specific/linux/systemd/0008-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch
+++ b/pkgs/os-specific/linux/systemd/0007-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch
@@ -35,10 +35,10 @@ index e486474c44..5f373d0723 100644
      <literal>Etc/UTC</literal>. The resulting link should lead to the
      corresponding binary
 diff --git a/src/basic/time-util.c b/src/basic/time-util.c
-index 1db630003a..31744c3e68 100644
+index f9014dc560..3ee0363369 100644
 --- a/src/basic/time-util.c
 +++ b/src/basic/time-util.c
-@@ -1350,7 +1350,7 @@ static int get_timezones_from_zone1970_tab(char ***ret) {
+@@ -1412,7 +1412,7 @@ static int get_timezones_from_zone1970_tab(char ***ret) {
  
          assert(ret);
  
@@ -47,7 +47,7 @@ index 1db630003a..31744c3e68 100644
          if (!f)
                  return -errno;
  
-@@ -1391,7 +1391,7 @@ static int get_timezones_from_tzdata_zi(char ***ret) {
+@@ -1453,7 +1453,7 @@ static int get_timezones_from_tzdata_zi(char ***ret) {
  
          assert(ret);
  
@@ -56,7 +56,7 @@ index 1db630003a..31744c3e68 100644
          if (!f)
                  return -errno;
  
-@@ -1503,7 +1503,7 @@ int verify_timezone(const char *name, int log_level) {
+@@ -1565,7 +1565,7 @@ int verify_timezone(const char *name, int log_level) {
          if (p - name >= PATH_MAX)
                  return -ENAMETOOLONG;
  
@@ -65,7 +65,7 @@ index 1db630003a..31744c3e68 100644
  
          fd = open(t, O_RDONLY|O_CLOEXEC);
          if (fd < 0)
-@@ -1563,7 +1563,7 @@ int get_timezone(char **ret) {
+@@ -1625,7 +1625,7 @@ int get_timezone(char **ret) {
          if (r < 0)
                  return r; /* returns EINVAL if not a symlink */
  
@@ -75,10 +75,10 @@ index 1db630003a..31744c3e68 100644
                  return -EINVAL;
  
 diff --git a/src/firstboot/firstboot.c b/src/firstboot/firstboot.c
-index 1956ab3b13..9ef356f8af 100644
+index f77a5f6266..63bac85b29 100644
 --- a/src/firstboot/firstboot.c
 +++ b/src/firstboot/firstboot.c
-@@ -630,7 +630,7 @@ static int process_timezone(int rfd) {
+@@ -632,7 +632,7 @@ static int process_timezone(int rfd) {
          if (isempty(arg_timezone))
                  return 0;
  
@@ -88,10 +88,10 @@ index 1956ab3b13..9ef356f8af 100644
          r = symlinkat_atomic_full(e, pfd, f, /* make_relative= */ false);
          if (r < 0)
 diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
-index 898a674631..c41a416e04 100644
+index e48ebe8342..41796f3358 100644
 --- a/src/nspawn/nspawn.c
 +++ b/src/nspawn/nspawn.c
-@@ -1924,8 +1924,8 @@ int userns_mkdir(const char *root, const char *path, mode_t mode, uid_t uid, gid
+@@ -1845,8 +1845,8 @@ int userns_mkdir(const char *root, const char *path, mode_t mode, uid_t uid, gid
  static const char *timezone_from_path(const char *path) {
          return PATH_STARTSWITH_SET(
                          path,
@@ -103,10 +103,10 @@ index 898a674631..c41a416e04 100644
  
  static bool etc_writable(void) {
 diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c
-index 331af34505..722c4b5b4f 100644
+index 50f8aa8675..aff156ab42 100644
 --- a/src/timedate/timedated.c
 +++ b/src/timedate/timedated.c
-@@ -282,7 +282,7 @@ static int context_read_data(Context *c) {
+@@ -276,7 +276,7 @@ static int context_read_data(Context *c) {
  
          r = get_timezone(&t);
          if (r == -EINVAL)
@@ -115,7 +115,7 @@ index 331af34505..722c4b5b4f 100644
          else if (r < 0)
                  log_warning_errno(r, "Failed to get target of /etc/localtime: %m");
  
-@@ -306,7 +306,7 @@ static int context_write_data_timezone(Context *c) {
+@@ -300,7 +300,7 @@ static int context_write_data_timezone(Context *c) {
  
          if (isempty(c->zone) || streq(c->zone, "UTC")) {
  
@@ -124,7 +124,7 @@ index 331af34505..722c4b5b4f 100644
  
                          if (unlink("/etc/localtime") < 0 && errno != ENOENT)
                                  return -errno;
-@@ -314,9 +314,9 @@ static int context_write_data_timezone(Context *c) {
+@@ -308,9 +308,9 @@ static int context_write_data_timezone(Context *c) {
                          return 0;
                  }
  
diff --git a/pkgs/os-specific/linux/systemd/0007-Fix-hwdb-paths.patch b/pkgs/os-specific/linux/systemd/0007-Fix-hwdb-paths.patch
deleted file mode 100644
index 7777ba7e4259..000000000000
--- a/pkgs/os-specific/linux/systemd/0007-Fix-hwdb-paths.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Nikolay Amiantov <ab@fmap.me>
-Date: Thu, 7 Jul 2016 02:47:13 +0300
-Subject: [PATCH] Fix hwdb paths
-
-Patch by vcunat.
----
- src/libsystemd/sd-hwdb/hwdb-internal.h | 6 +-----
- 1 file changed, 1 insertion(+), 5 deletions(-)
-
-diff --git a/src/libsystemd/sd-hwdb/hwdb-internal.h b/src/libsystemd/sd-hwdb/hwdb-internal.h
-index 5302679a62..39e59a527f 100644
---- a/src/libsystemd/sd-hwdb/hwdb-internal.h
-+++ b/src/libsystemd/sd-hwdb/hwdb-internal.h
-@@ -83,8 +83,4 @@ struct trie_value_entry2_f {
- } _packed_;
- 
- #define hwdb_bin_paths                          \
--        "/etc/systemd/hwdb/hwdb.bin\0"          \
--        "/etc/udev/hwdb.bin\0"                  \
--        "/usr/lib/systemd/hwdb/hwdb.bin\0"      \
--        _CONF_PATHS_SPLIT_USR_NULSTR("systemd/hwdb/hwdb.bin") \
--        UDEVLIBEXECDIR "/hwdb.bin\0"
-+        "/etc/udev/hwdb.bin\0"
diff --git a/pkgs/os-specific/linux/systemd/0009-localectl-use-etc-X11-xkb-for-list-x11.patch b/pkgs/os-specific/linux/systemd/0008-localectl-use-etc-X11-xkb-for-list-x11.patch
index c0f6afd7fc7b..fe0dca1863dd 100644
--- a/pkgs/os-specific/linux/systemd/0009-localectl-use-etc-X11-xkb-for-list-x11.patch
+++ b/pkgs/os-specific/linux/systemd/0008-localectl-use-etc-X11-xkb-for-list-x11.patch
@@ -10,7 +10,7 @@ NixOS has an option to link the xkb data files to /etc/X11, but not to
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/src/locale/localectl.c b/src/locale/localectl.c
-index d8db9d9d22..4601bb5431 100644
+index 32354027f1..1d231f1afc 100644
 --- a/src/locale/localectl.c
 +++ b/src/locale/localectl.c
 @@ -297,7 +297,7 @@ static int list_x11_keymaps(int argc, char **argv, void *userdata) {
diff --git a/pkgs/os-specific/linux/systemd/0011-add-rootprefix-to-lookup-dir-paths.patch b/pkgs/os-specific/linux/systemd/0009-add-rootprefix-to-lookup-dir-paths.patch
index fa201126ae27..15fe403c28fc 100644
--- a/pkgs/os-specific/linux/systemd/0011-add-rootprefix-to-lookup-dir-paths.patch
+++ b/pkgs/os-specific/linux/systemd/0009-add-rootprefix-to-lookup-dir-paths.patch
@@ -12,16 +12,16 @@ files that I might have missed.
  1 file changed, 4 insertions(+), 2 deletions(-)
 
 diff --git a/src/basic/constants.h b/src/basic/constants.h
-index 3f96786da9..6e8fb40c08 100644
+index 6bb5f3c281..678d13737d 100644
 --- a/src/basic/constants.h
 +++ b/src/basic/constants.h
-@@ -74,13 +74,15 @@
+@@ -65,13 +65,15 @@
+         "/etc/" n "\0"                          \
          "/run/" n "\0"                          \
          "/usr/local/lib/" n "\0"                \
-         "/usr/lib/" n "\0"                      \
--        _CONF_PATHS_SPLIT_USR_NULSTR(n)
-+        _CONF_PATHS_SPLIT_USR_NULSTR(n)         \
-+        ROOTPREFIX "/lib/" n "\0"
+-        "/usr/lib/" n "\0"
++        "/usr/lib/" n "\0"                      \
++        PREFIX "/lib/" n "\0"
  
  #define CONF_PATHS_USR(n)                       \
          "/etc/" n,                              \
@@ -29,7 +29,7 @@ index 3f96786da9..6e8fb40c08 100644
          "/usr/local/lib/" n,                    \
 -        "/usr/lib/" n
 +        "/usr/lib/" n,                          \
-+        ROOTPREFIX "/lib/" n
++        PREFIX "/lib/" n
  
  #define CONF_PATHS(n)                           \
-         CONF_PATHS_USR(n)                       \
+         CONF_PATHS_USR(n)
diff --git a/pkgs/os-specific/linux/systemd/0010-build-don-t-create-statedir-and-don-t-touch-prefixdi.patch b/pkgs/os-specific/linux/systemd/0010-build-don-t-create-statedir-and-don-t-touch-prefixdi.patch
deleted file mode 100644
index b8f97308acfb..000000000000
--- a/pkgs/os-specific/linux/systemd/0010-build-don-t-create-statedir-and-don-t-touch-prefixdi.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Franz Pletz <fpletz@fnordicwalking.de>
-Date: Sun, 11 Feb 2018 04:37:44 +0100
-Subject: [PATCH] build: don't create statedir and don't touch prefixdir
-
----
- meson.build | 3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index 395eca1943..082cd748bb 100644
---- a/meson.build
-+++ b/meson.build
-@@ -4707,9 +4707,6 @@ install_data('LICENSE.GPL2',
- install_subdir('LICENSES',
-                install_dir : docdir)
- 
--meson.add_install_script('sh', '-c', mkdir_p.format(systemdstatedir))
--meson.add_install_script('sh', '-c', 'touch $DESTDIR@0@'.format(prefixdir))
--
- ############################################################
- 
- # Ensure that changes to the docs/ directory do not break the
diff --git a/pkgs/os-specific/linux/systemd/0012-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch b/pkgs/os-specific/linux/systemd/0010-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch
index fde1e2b276c5..6f0b81a32aa7 100644
--- a/pkgs/os-specific/linux/systemd/0012-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch
+++ b/pkgs/os-specific/linux/systemd/0010-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch
@@ -10,10 +10,10 @@ This is needed for NixOS to use such scripts as systemd directory is immutable.
  1 file changed, 1 insertion(+)
 
 diff --git a/src/shutdown/shutdown.c b/src/shutdown/shutdown.c
-index 8395bb429d..14fbc85bb4 100644
+index b976b7d8cf..b1c02df6fd 100644
 --- a/src/shutdown/shutdown.c
 +++ b/src/shutdown/shutdown.c
-@@ -334,6 +334,7 @@ static void init_watchdog(void) {
+@@ -336,6 +336,7 @@ static void init_watchdog(void) {
  int main(int argc, char *argv[]) {
          static const char* const dirs[] = {
                  SYSTEM_SHUTDOWN_PATH,
diff --git a/pkgs/os-specific/linux/systemd/0013-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch b/pkgs/os-specific/linux/systemd/0011-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch
index d91150cfc490..a5ed574afa24 100644
--- a/pkgs/os-specific/linux/systemd/0013-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch
+++ b/pkgs/os-specific/linux/systemd/0011-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch
@@ -9,10 +9,10 @@ This is needed for NixOS to use such scripts as systemd directory is immutable.
  1 file changed, 1 insertion(+)
 
 diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c
-index de1f6c7ec1..d0cdebd80a 100644
+index 21af3e9e52..6d096e3c78 100644
 --- a/src/sleep/sleep.c
 +++ b/src/sleep/sleep.c
-@@ -224,6 +224,7 @@ static int execute(
+@@ -215,6 +215,7 @@ static int execute(
          };
          static const char* const dirs[] = {
                  SYSTEM_SLEEP_PATH,
diff --git a/pkgs/os-specific/linux/systemd/0014-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch b/pkgs/os-specific/linux/systemd/0012-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch
index 13dec1070ffc..55e556288c08 100644
--- a/pkgs/os-specific/linux/systemd/0014-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch
+++ b/pkgs/os-specific/linux/systemd/0012-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch
@@ -10,21 +10,19 @@ systemd itself uses extensively.
  1 file changed, 3 insertions(+), 3 deletions(-)
 
 diff --git a/src/basic/path-util.h b/src/basic/path-util.h
-index 97175bee11..3839704901 100644
+index 6d943e967f..d4380aa7e3 100644
 --- a/src/basic/path-util.h
 +++ b/src/basic/path-util.h
-@@ -25,11 +25,11 @@
+@@ -25,9 +25,9 @@
  #  define PATH_SBIN_BIN_NULSTR(x) PATH_NORMAL_SBIN_BIN_NULSTR(x)
  #endif
  
--#define DEFAULT_PATH_NORMAL PATH_SBIN_BIN("/usr/local/") ":" PATH_SBIN_BIN("/usr/")
--#define DEFAULT_PATH_NORMAL_NULSTR PATH_SBIN_BIN_NULSTR("/usr/local/") PATH_SBIN_BIN_NULSTR("/usr/")
-+#define DEFAULT_PATH_NORMAL "@defaultPathNormal@"
-+#define DEFAULT_PATH_NORMAL_NULSTR "@defaultPathNormal@\0"
- #define DEFAULT_PATH_SPLIT_USR DEFAULT_PATH_NORMAL ":" PATH_SBIN_BIN("/")
- #define DEFAULT_PATH_SPLIT_USR_NULSTR DEFAULT_PATH_NORMAL_NULSTR PATH_SBIN_BIN_NULSTR("/")
+-#define DEFAULT_PATH PATH_SBIN_BIN("/usr/local/") ":" PATH_SBIN_BIN("/usr/")
+-#define DEFAULT_PATH_NULSTR PATH_SBIN_BIN_NULSTR("/usr/local/") PATH_SBIN_BIN_NULSTR("/usr/")
 -#define DEFAULT_PATH_COMPAT PATH_SPLIT_SBIN_BIN("/usr/local/") ":" PATH_SPLIT_SBIN_BIN("/usr/") ":" PATH_SPLIT_SBIN_BIN("/")
-+#define DEFAULT_PATH_COMPAT DEFAULT_PATH_NORMAL
++#define DEFAULT_PATH "@defaultPathNormal@"
++#define DEFAULT_PATH_NULSTR "@defaultPathNormal@\0"
++#define DEFAULT_PATH_COMPAT DEFAULT_PATH
  
- #if HAVE_SPLIT_USR
- #  define DEFAULT_PATH DEFAULT_PATH_SPLIT_USR
+ #ifndef DEFAULT_USER_PATH
+ #  define DEFAULT_USER_PATH DEFAULT_PATH
diff --git a/pkgs/os-specific/linux/systemd/0016-inherit-systemd-environment-when-calling-generators.patch b/pkgs/os-specific/linux/systemd/0013-inherit-systemd-environment-when-calling-generators.patch
index d6640c87454a..8bccf5539058 100644
--- a/pkgs/os-specific/linux/systemd/0016-inherit-systemd-environment-when-calling-generators.patch
+++ b/pkgs/os-specific/linux/systemd/0013-inherit-systemd-environment-when-calling-generators.patch
@@ -16,10 +16,10 @@ executables that are being called from managers.
  1 file changed, 8 insertions(+)
 
 diff --git a/src/core/manager.c b/src/core/manager.c
-index 771e8e7f16..acf3ead8d7 100644
+index 22cc5cc843..5dc7d4504f 100644
 --- a/src/core/manager.c
 +++ b/src/core/manager.c
-@@ -3899,9 +3899,17 @@ static int build_generator_environment(Manager *m, char ***ret) {
+@@ -3914,9 +3914,17 @@ static int build_generator_environment(Manager *m, char ***ret) {
           * adjust generated units to that. Let's pass down some bits of information that are easy for us to
           * determine (but a bit harder for generator scripts to determine), as environment variables. */
  
diff --git a/pkgs/os-specific/linux/systemd/0017-core-don-t-taint-on-unmerged-usr.patch b/pkgs/os-specific/linux/systemd/0014-core-don-t-taint-on-unmerged-usr.patch
index 73b237a29602..8b862918500e 100644
--- a/pkgs/os-specific/linux/systemd/0017-core-don-t-taint-on-unmerged-usr.patch
+++ b/pkgs/os-specific/linux/systemd/0014-core-don-t-taint-on-unmerged-usr.patch
@@ -13,21 +13,20 @@ so showing the taint isn't really helpful.
 
 See also: https://github.com/systemd/systemd/issues/24191
 ---
- src/core/manager.c | 4 ----
- 1 file changed, 4 deletions(-)
+ src/core/manager.c | 3 ---
+ 1 file changed, 3 deletions(-)
 
 diff --git a/src/core/manager.c b/src/core/manager.c
-index acf3ead8d7..bdbab16829 100644
+index 5dc7d4504f..6208c9aa31 100644
 --- a/src/core/manager.c
 +++ b/src/core/manager.c
-@@ -4754,10 +4754,6 @@ char* manager_taint_string(const Manager *m) {
-         if (m->taint_usr)
-                 stage[n++] = "split-usr";
+@@ -4800,9 +4800,6 @@ char* manager_taint_string(const Manager *m) {
+         const char* stage[12] = {};
+         size_t n = 0;
  
 -        _cleanup_free_ char *usrbin = NULL;
 -        if (readlink_malloc("/bin", &usrbin) < 0 || !PATH_IN_SET(usrbin, "usr/bin", "/usr/bin"))
 -                stage[n++] = "unmerged-usr";
--
+ 
          if (access("/proc/cgroups", F_OK) < 0)
                  stage[n++] = "cgroups-missing";
- 
diff --git a/pkgs/os-specific/linux/systemd/0015-pkg-config-derive-prefix-from-prefix.patch b/pkgs/os-specific/linux/systemd/0015-pkg-config-derive-prefix-from-prefix.patch
deleted file mode 100644
index 3fbfd7f10ab4..000000000000
--- a/pkgs/os-specific/linux/systemd/0015-pkg-config-derive-prefix-from-prefix.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
-Date: Sun, 6 Dec 2020 08:34:19 +0100
-Subject: [PATCH] pkg-config: derive prefix from --prefix
-
-Point prefix to the one configured, instead of `/usr` `systemd` has limited
-support for making the pkgconfig prefix overridable, and interpolates those
-values later down.
-
-So we only need to patch this one value to get the correct paths.
-See systemd/systemd@bc4e6e27922a2873985ab9367d79fb099f70b505 for details.
-
-Co-Authored-By: Florian Klink <flokli@flokli.de>
----
- src/core/systemd.pc.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in
-index 5932a21b5b..20bf8e316d 100644
---- a/src/core/systemd.pc.in
-+++ b/src/core/systemd.pc.in
-@@ -11,7 +11,7 @@
- # considered deprecated (though there is no plan to remove them). New names
- # shall have underscores.
- 
--prefix=/usr
-+prefix={{PREFIX}}
- root_prefix={{ROOTPREFIX_NOSLASH}}
- rootprefix=${root_prefix}
- sysconf_dir={{SYSCONF_DIR}}
diff --git a/pkgs/os-specific/linux/systemd/0018-tpm2_context_init-fix-driver-name-checking.patch b/pkgs/os-specific/linux/systemd/0015-tpm2_context_init-fix-driver-name-checking.patch
index 6de01a0ae802..768f57e1335b 100644
--- a/pkgs/os-specific/linux/systemd/0018-tpm2_context_init-fix-driver-name-checking.patch
+++ b/pkgs/os-specific/linux/systemd/0015-tpm2_context_init-fix-driver-name-checking.patch
@@ -27,15 +27,15 @@ filename_is_valid with path_is_valid.
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/src/shared/tpm2-util.c b/src/shared/tpm2-util.c
-index ae8a8bc073..c284b244f8 100644
+index 5e07b88a89..8dd7315009 100644
 --- a/src/shared/tpm2-util.c
 +++ b/src/shared/tpm2-util.c
-@@ -582,7 +582,7 @@ int tpm2_context_new(const char *device, Tpm2Context **ret_context) {
+@@ -654,7 +654,7 @@ int tpm2_context_new(const char *device, Tpm2Context **ret_context) {
                  fn = strjoina("libtss2-tcti-", driver, ".so.0");
  
                  /* Better safe than sorry, let's refuse strings that cannot possibly be valid driver early, before going to disk. */
 -                if (!filename_is_valid(fn))
 +                if (!path_is_valid(fn))
-                         return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "TPM2 driver name '%s' not valid, refusing.", driver);
+                         return log_debug_errno(SYNTHETIC_ERRNO(EINVAL), "TPM2 driver name '%s' not valid, refusing.", driver);
  
                  context->tcti_dl = dlopen(fn, RTLD_NOW);
diff --git a/pkgs/os-specific/linux/systemd/0019-systemctl-edit-suggest-systemdctl-edit-runtime-on-sy.patch b/pkgs/os-specific/linux/systemd/0016-systemctl-edit-suggest-systemdctl-edit-runtime-on-sy.patch
index dd9af6738c4e..96cd420221e5 100644
--- a/pkgs/os-specific/linux/systemd/0019-systemctl-edit-suggest-systemdctl-edit-runtime-on-sy.patch
+++ b/pkgs/os-specific/linux/systemd/0016-systemctl-edit-suggest-systemdctl-edit-runtime-on-sy.patch
@@ -30,10 +30,10 @@ are written into `$XDG_CONFIG_HOME/systemd/user`.
  1 file changed, 3 insertions(+)
 
 diff --git a/src/systemctl/systemctl-edit.c b/src/systemctl/systemctl-edit.c
-index e3f25d52d5..81c9c6f6b7 100644
+index 367afa20f7..5777154d01 100644
 --- a/src/systemctl/systemctl-edit.c
 +++ b/src/systemctl/systemctl-edit.c
-@@ -323,6 +323,9 @@ int verb_edit(int argc, char *argv[], void *userdata) {
+@@ -322,6 +322,9 @@ int verb_edit(int argc, char *argv[], void *userdata) {
          sd_bus *bus;
          int r;
  
diff --git a/pkgs/os-specific/linux/systemd/0017-meson.build-do-not-create-systemdstatedir.patch b/pkgs/os-specific/linux/systemd/0017-meson.build-do-not-create-systemdstatedir.patch
new file mode 100644
index 000000000000..fd38aa9a2850
--- /dev/null
+++ b/pkgs/os-specific/linux/systemd/0017-meson.build-do-not-create-systemdstatedir.patch
@@ -0,0 +1,21 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: nikstur <nikstur@outlook.com>
+Date: Mon, 6 Nov 2023 22:51:38 +0100
+Subject: [PATCH] meson.build: do not create systemdstatedir
+
+---
+ meson.build | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 7419e2b0b0..c82a527976 100644
+--- a/meson.build
++++ b/meson.build
+@@ -2497,7 +2497,6 @@ install_data('LICENSE.GPL2',
+ install_subdir('LICENSES',
+                install_dir : docdir)
+ 
+-install_emptydir(systemdstatedir)
+ 
+ ############################################################
+ 
diff --git a/pkgs/os-specific/linux/systemd/0020-timesyncd-disable-NSCD-when-DNSSEC-validation-is-dis.patch b/pkgs/os-specific/linux/systemd/0018-timesyncd-disable-NSCD-when-DNSSEC-validation-is-dis.patch
index 68ae22644835..68ae22644835 100644
--- a/pkgs/os-specific/linux/systemd/0020-timesyncd-disable-NSCD-when-DNSSEC-validation-is-dis.patch
+++ b/pkgs/os-specific/linux/systemd/0018-timesyncd-disable-NSCD-when-DNSSEC-validation-is-dis.patch
diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix
index 23f875d2dc46..c084112a5bdc 100644
--- a/pkgs/os-specific/linux/systemd/default.nix
+++ b/pkgs/os-specific/linux/systemd/default.nix
@@ -5,7 +5,6 @@
 , nixosTests
 , pkgsCross
 , fetchFromGitHub
-, fetchpatch
 , fetchzip
 , buildPackages
 , makeBinaryWrapper
@@ -20,7 +19,6 @@
 
   # glib is only used during tests (test-bus-gvariant, test-bus-marshal)
 , glib
-, substituteAll
 , gettext
 , python3Packages
 
@@ -52,7 +50,6 @@
 , intltool
 , bzip2
 , pcre2
-, e2fsprogs
 , elfutils
 , linuxHeaders ? stdenv.cc.libc.linuxHeaders
 , gnutls
@@ -68,6 +65,8 @@
 , libmicrohttpd
 , libfido2
 , p11-kit
+, libpwquality
+, qrencode
 
   # the (optional) BPF feature requires bpftool, libbpf, clang and llvm-strip to be available during build time.
   # Only libbpf should be a runtime dependency.
@@ -89,7 +88,11 @@
 , withAnalyze ? true
 , withApparmor ? true
 , withAudit ? true
-, withBootloader ? withEfi && !stdenv.hostPlatform.isMusl # compiles systemd-boot, assumes EFI is available.
+  # compiles systemd-boot, assumes EFI is available.
+, withBootloader ? withEfi
+    && !stdenv.hostPlatform.isMusl
+    # "Unknown 64-bit data model"
+    && !stdenv.hostPlatform.isRiscV32
 , withCompression ? true  # adds bzip2, lz4, xz and zstd
 , withCoredump ? true
 , withCryptsetup ? true
@@ -102,12 +105,15 @@
 , withHostnamed ? true
 , withHwdb ? true
 , withImportd ? !stdenv.hostPlatform.isMusl
+, withIptables ? true
 , withKmod ? true
 , withLibBPF ? lib.versionAtLeast buildPackages.llvmPackages.clang.version "10.0"
     && (stdenv.hostPlatform.isAarch -> lib.versionAtLeast stdenv.hostPlatform.parsed.cpu.version "6") # assumes hard floats
     && !stdenv.hostPlatform.isMips64   # see https://github.com/NixOS/nixpkgs/pull/194149#issuecomment-1266642211
     # can't find gnu/stubs-32.h
     && (stdenv.hostPlatform.isPower64 -> stdenv.hostPlatform.isBigEndian)
+    # https://reviews.llvm.org/D43106#1019077
+    && (stdenv.hostPlatform.isRiscV32 -> stdenv.cc.isClang)
     # buildPackages.targetPackages.llvmPackages is the same as llvmPackages,
     # but we do it this way to avoid taking llvmPackages as an input, and
     # risking making it too easy to ignore the above comment about llvmPackages.
@@ -120,10 +126,11 @@
 , withNss ? !stdenv.hostPlatform.isMusl
 , withOomd ? true
 , withPam ? true
-, withPasswordQuality ? false
+, withPasswordQuality ? true
 , withPCRE2 ? true
 , withPolkit ? true
 , withPortabled ? !stdenv.hostPlatform.isMusl
+, withQrencode ? true
 , withRemote ? !stdenv.hostPlatform.isMusl
 , withResolved ? true
 , withShellCompletions ? true
@@ -135,6 +142,7 @@
 , withUkify ? false  # adds python to closure which is too much by default
 , withUserDb ? true
 , withUtmp ? !stdenv.hostPlatform.isMusl
+, withVmspawn ? true
   # tests assume too much system access for them to be feasible for us right now
 , withTests ? false
   # build only libudev and libsystemd
@@ -157,19 +165,17 @@ assert withHomed -> withPam;
 assert withUkify -> (withEfi && withBootloader);
 assert withRepart -> withCryptsetup;
 assert withBootloader -> withEfi;
-# passwdqc is not packaged in nixpkgs yet, if you want to fix this, please submit a PR.
-assert !withPasswordQuality;
 
 let
   wantCurl = withRemote || withImportd;
   wantGcrypt = withResolved || withImportd;
-  version = "254.6";
+  version = "255.2";
 
   # Bump this variable on every (major) version change. See below (in the meson options list) for why.
   # command:
   #  $ curl -s https://api.github.com/repos/systemd/systemd/releases/latest | \
   #     jq '.created_at|strptime("%Y-%m-%dT%H:%M:%SZ")|mktime'
-  releaseTimestamp = "1690536449";
+  releaseTimestamp = "1701895110";
 in
 stdenv.mkDerivation (finalAttrs: {
   inherit pname version;
@@ -180,7 +186,7 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "systemd";
     repo = "systemd-stable";
     rev = "v${version}";
-    hash = "sha256-Ku24ecDeQt0t7A8/adR3Jm47QZ19+wdMPyJRzCxU4uU=";
+    hash = "sha256-8SfJY/pcH4yrDeJi0GfIUpetTbpMwyswvSu+RSfgqfY=";
   };
 
   # On major changes, or when otherwise required, you *must* reformat the patches,
@@ -195,50 +201,49 @@ stdenv.mkDerivation (finalAttrs: {
     ./0004-Add-some-NixOS-specific-unit-directories.patch
     ./0005-Get-rid-of-a-useless-message-in-user-sessions.patch
     ./0006-hostnamed-localed-timedated-disable-methods-that-cha.patch
-    ./0007-Fix-hwdb-paths.patch
-    ./0008-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch
-    ./0009-localectl-use-etc-X11-xkb-for-list-x11.patch
-    ./0010-build-don-t-create-statedir-and-don-t-touch-prefixdi.patch
-    ./0011-add-rootprefix-to-lookup-dir-paths.patch
-    ./0012-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch
-    ./0013-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch
-    ./0014-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch
-    ./0015-pkg-config-derive-prefix-from-prefix.patch
-    ./0016-inherit-systemd-environment-when-calling-generators.patch
-    ./0017-core-don-t-taint-on-unmerged-usr.patch
-    ./0018-tpm2_context_init-fix-driver-name-checking.patch
-    ./0019-systemctl-edit-suggest-systemdctl-edit-runtime-on-sy.patch
+    ./0007-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch
+    ./0008-localectl-use-etc-X11-xkb-for-list-x11.patch
+    ./0009-add-rootprefix-to-lookup-dir-paths.patch
+    ./0010-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch
+    ./0011-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch
+    ./0012-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch
+    ./0013-inherit-systemd-environment-when-calling-generators.patch
+    ./0014-core-don-t-taint-on-unmerged-usr.patch
+    ./0015-tpm2_context_init-fix-driver-name-checking.patch
+    ./0016-systemctl-edit-suggest-systemdctl-edit-runtime-on-sy.patch
+    ./0017-meson.build-do-not-create-systemdstatedir.patch
   ] ++ lib.optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isGnu) [
-    ./0020-timesyncd-disable-NSCD-when-DNSSEC-validation-is-dis.patch
+    ./0018-timesyncd-disable-NSCD-when-DNSSEC-validation-is-dis.patch
   ] ++ lib.optional stdenv.hostPlatform.isMusl (
     let
       oe-core = fetchzip {
-        url = "https://git.openembedded.org/openembedded-core/snapshot/openembedded-core-eb8a86fee9eeae787cc0a58ef2ed087fd48d93eb.tar.gz";
-        sha256 = "tE2KpXLvOknIpEZFdOnNxvBmDvZrra3kvQp9tKxa51c=";
+        url = "https://git.openembedded.org/openembedded-core/snapshot/openembedded-core-6fdf03bd950e55ef7881041606f6e76141033716.tar.gz";
+        sha256 = "/+9aJdOxBY8Y4vJPftOCxmyK8L2nvR82KmJxil1a2aY=";
       };
       musl-patches = oe-core + "/meta/recipes-core/systemd/systemd";
     in
     [
-      (musl-patches + "/0001-Adjust-for-musl-headers.patch")
-      (musl-patches + "/0005-pass-correct-parameters-to-getdents64.patch")
-      (musl-patches + "/0006-test-bus-error-strerror-is-assumed-to-be-GNU-specifi.patch")
-      (musl-patches + "/0009-missing_type.h-add-comparison_fn_t.patch")
-      (musl-patches + "/0010-add-fallback-parse_printf_format-implementation.patch")
-      (musl-patches + "/0011-src-basic-missing.h-check-for-missing-strndupa.patch")
-      (musl-patches + "/0012-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch")
-      (musl-patches + "/0013-add-missing-FTW_-macros-for-musl.patch")
-      (musl-patches + "/0014-Use-uintmax_t-for-handling-rlim_t.patch")
-      (musl-patches + "/0016-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch")
-      (musl-patches + "/0017-Define-glibc-compatible-basename-for-non-glibc-syste.patch")
-      (musl-patches + "/0018-Do-not-disable-buffering-when-writing-to-oom_score_a.patch")
-      (musl-patches + "/0019-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch")
-      (musl-patches + "/0020-avoid-redefinition-of-prctl_mm_map-structure.patch")
-      (musl-patches + "/0021-do-not-disable-buffer-in-writing-files.patch")
-      (musl-patches + "/0022-Handle-__cpu_mask-usage.patch")
-      (musl-patches + "/0023-Handle-missing-gshadow.patch")
-      (musl-patches + "/0024-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch")
-      (musl-patches + "/0028-sd-event-Make-malloc_trim-conditional-on-glibc.patch")
-      (musl-patches + "/0029-shared-Do-not-use-malloc_info-on-musl.patch")
+      (musl-patches + "/0017-Adjust-for-musl-headers.patch")
+      (musl-patches + "/0016-pass-correct-parameters-to-getdents64.patch")
+      (musl-patches + "/0018-test-bus-error-strerror-is-assumed-to-be-GNU-specifi.patch")
+      (musl-patches + "/0001-missing_type.h-add-comparison_fn_t.patch")
+      (musl-patches + "/0002-add-fallback-parse_printf_format-implementation.patch")
+      (musl-patches + "/0003-src-basic-missing.h-check-for-missing-strndupa.patch")
+      (musl-patches + "/0004-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch")
+      (musl-patches + "/0005-add-missing-FTW_-macros-for-musl.patch")
+      (musl-patches + "/0006-Use-uintmax_t-for-handling-rlim_t.patch")
+      (musl-patches + "/0007-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch")
+      (musl-patches + "/0008-Define-glibc-compatible-basename-for-non-glibc-syste.patch")
+      (musl-patches + "/0009-Do-not-disable-buffering-when-writing-to-oom_score_a.patch")
+      (musl-patches + "/0010-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch")
+      (musl-patches + "/0011-avoid-redefinition-of-prctl_mm_map-structure.patch")
+      (musl-patches + "/0012-do-not-disable-buffer-in-writing-files.patch")
+      (musl-patches + "/0013-Handle-__cpu_mask-usage.patch")
+      (musl-patches + "/0014-Handle-missing-gshadow.patch")
+      (musl-patches + "/0015-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch")
+      (musl-patches + "/0020-sd-event-Make-malloc_trim-conditional-on-glibc.patch")
+      (musl-patches + "/0021-shared-Do-not-use-malloc_info-on-musl.patch")
+      (musl-patches + "/0022-avoid-missing-LOCK_EX-declaration.patch")
     ]
   );
 
@@ -293,14 +298,17 @@ stdenv.mkDerivation (finalAttrs: {
           { name = "libbpf.so.1"; pkg = opt withLibBPF libbpf; }
           { name = "libbpf.so.0"; pkg = null; }
 
-          # We did never provide support for libxkbcommon & qrencode
+          # We did never provide support for libxkbcommon
           { name = "libxkbcommon.so.0"; pkg = null; }
-          { name = "libqrencode.so.4"; pkg = null; }
+
+          # qrencode
+          { name = "libqrencode.so.4"; pkg = opt withQrencode qrencode; }
           { name = "libqrencode.so.3"; pkg = null; }
 
-          # We did not provide libpwquality before so it is safe to disable it for
-          # now.
-          { name = "libpwquality.so.1"; pkg = null; }
+          # Password quality
+          # We currently do not package passwdqc, only libpwquality.
+          { name = "libpwquality.so.1"; pkg = opt withPasswordQuality libpwquality; }
+          { name = "libpasswdqc.so.1"; pkg = null; }
 
           # Only include cryptsetup if it is enabled. We might not be able to
           # provide it during "bootstrap" in e.g. the minimal systemd build as
@@ -332,8 +340,7 @@ stdenv.mkDerivation (finalAttrs: {
           # Support for PKCS#11 in systemd-cryptsetup, systemd-cryptenroll and systemd-homed
           { name = "libp11-kit.so.0"; pkg = opt (withHomed || withCryptsetup) p11-kit; }
 
-          # Password quality support
-          { name = "libpasswdqc.so.1"; pkg = opt withPasswordQuality null; }
+          { name = "libip4tc.so.2"; pkg = opt withIptables iptables; }
         ];
 
       patchDlOpen = dl:
@@ -428,14 +435,14 @@ stdenv.mkDerivation (finalAttrs: {
     ++ lib.optional withApparmor libapparmor
     ++ lib.optional withAudit audit
     ++ lib.optional wantCurl (lib.getDev curl)
-    ++ lib.optionals withCompression [ bzip2 lz4 xz zstd ]
+    ++ lib.optionals withCompression [ zlib bzip2 lz4 xz zstd ]
     ++ lib.optional withCoredump elfutils
     ++ lib.optional withCryptsetup (lib.getDev cryptsetup.dev)
     ++ lib.optional withKexectools kexec-tools
     ++ lib.optional withKmod kmod
     ++ lib.optional withLibidn2 libidn2
     ++ lib.optional withLibseccomp libseccomp
-    ++ lib.optional withNetworkd iptables
+    ++ lib.optional withIptables iptables
     ++ lib.optional withPam pam
     ++ lib.optional withPCRE2 pcre2
     ++ lib.optional withSelinux libselinux
@@ -445,132 +452,167 @@ stdenv.mkDerivation (finalAttrs: {
     ++ lib.optionals withLibBPF [ libbpf ]
     ++ lib.optional withTpm2Tss tpm2-tss
     ++ lib.optional withUkify (python3Packages.python.withPackages (ps: with ps; [ pefile ]))
+    ++ lib.optionals withPasswordQuality [ libpwquality ]
+    ++ lib.optionals withQrencode [ qrencode ]
   ;
 
   mesonBuildType = "release";
 
   mesonFlags = [
-    "-Dversion-tag=${version}"
+    # Options
+
     # We bump this variable on every (major) version change to ensure
     # that we have known-good value for a timestamp that is in the (not so distant) past.
     # This serves as a lower bound for valid system timestamps during startup. Systemd will
     # reset the system timestamp if this date is +- 15 years from the system time.
     # See the systemd v250 release notes for further details:
     # https://github.com/systemd/systemd/blob/60e930fc3e6eb8a36fbc184773119eb8d2f30364/NEWS#L258-L266
-    "-Dtime-epoch=${releaseTimestamp}"
-
-    "-Dmode=release"
-    "-Ddbuspolicydir=${placeholder "out"}/share/dbus-1/system.d"
-    "-Ddbussessionservicedir=${placeholder "out"}/share/dbus-1/services"
-    "-Ddbussystemservicedir=${placeholder "out"}/share/dbus-1/system-services"
-    "-Dpam=${lib.boolToString withPam}"
-    "-Dpamconfdir=${placeholder "out"}/etc/pam.d"
-    "-Drootprefix=${placeholder "out"}"
-    "-Dpkgconfiglibdir=${placeholder "dev"}/lib/pkgconfig"
-    "-Dpkgconfigdatadir=${placeholder "dev"}/share/pkgconfig"
-    "-Dloadkeys-path=${kbd}/bin/loadkeys"
-    "-Dsetfont-path=${kbd}/bin/setfont"
-    "-Dtty-gid=3" # tty in NixOS has gid 3
-    "-Ddebug-shell=${bashInteractive}/bin/bash"
-    "-Dglib=${lib.boolToString withTests}"
-    # while we do not run tests we should also not build them. Removes about 600 targets
-    "-Dtests=false"
-    "-Dacl=${lib.boolToString withAcl}"
-    "-Danalyze=${lib.boolToString withAnalyze}"
-    "-Daudit=${lib.boolToString withAudit}"
-    "-Dgcrypt=${lib.boolToString wantGcrypt}"
-    "-Dimportd=${lib.boolToString withImportd}"
-    "-Dlz4=${lib.boolToString withCompression}"
-    "-Dhomed=${lib.boolToString withHomed}"
-    "-Dlogind=${lib.boolToString withLogind}"
-    "-Dlocaled=${lib.boolToString withLocaled}"
-    "-Dhostnamed=${lib.boolToString withHostnamed}"
-    "-Dmachined=${lib.boolToString withMachined}"
-    "-Dnetworkd=${lib.boolToString withNetworkd}"
-    "-Doomd=${lib.boolToString withOomd}"
-    "-Dpolkit=${lib.boolToString withPolkit}"
-    "-Dlibcryptsetup=${lib.boolToString withCryptsetup}"
-    "-Dportabled=${lib.boolToString withPortabled}"
-    "-Dhwdb=${lib.boolToString withHwdb}"
-    "-Dremote=${lib.boolToString withRemote}"
-    "-Dtimedated=${lib.boolToString withTimedated}"
-    "-Dtimesyncd=${lib.boolToString withTimesyncd}"
-    "-Duserdb=${lib.boolToString withUserDb}"
-    "-Dcoredump=${lib.boolToString withCoredump}"
-    "-Dfirstboot=false"
-    "-Dresolve=${lib.boolToString withResolved}"
-    "-Dsplit-usr=false"
-    "-Dlibcurl=${lib.boolToString wantCurl}"
-    "-Dlibidn=false"
-    "-Dlibidn2=${lib.boolToString withLibidn2}"
-    "-Dfirstboot=${lib.boolToString withFirstboot}"
-    "-Dsysusers=${lib.boolToString withSysusers}"
-    "-Drepart=${lib.boolToString withRepart}"
-    "-Dsysupdate=${lib.boolToString withSysupdate}"
-    "-Dquotacheck=false"
-    "-Dldconfig=false"
-    "-Dsmack=true"
-    "-Db_pie=true"
-    "-Dinstall-sysconfdir=false"
-    "-Dsbat-distro=nixos"
-    "-Dsbat-distro-summary=NixOS"
-    "-Dsbat-distro-url=https://nixos.org/"
-    "-Dsbat-distro-pkgname=${pname}"
-    "-Dsbat-distro-version=${version}"
-    /*
-      As of now, systemd doesn't allow runtime configuration of these values. So
-      the settings in /etc/login.defs have no effect on it. Many people think this
-      should be supported however, see
-      - https://github.com/systemd/systemd/issues/3855
-      - https://github.com/systemd/systemd/issues/4850
-      - https://github.com/systemd/systemd/issues/9769
-      - https://github.com/systemd/systemd/issues/9843
-      - https://github.com/systemd/systemd/issues/10184
-    */
-    "-Dsystem-uid-max=999"
-    "-Dsystem-gid-max=999"
-
-    "-Dsysvinit-path="
-    "-Dsysvrcnd-path="
-
-    "-Dsulogin-path=${util-linux.login}/bin/sulogin"
-    "-Dnologin-path=${util-linux.login}/bin/nologin"
-    "-Dmount-path=${lib.getOutput "mount" util-linux}/bin/mount"
-    "-Dumount-path=${lib.getOutput "mount" util-linux}/bin/umount"
-    "-Dcreate-log-dirs=false"
+    (lib.mesonOption "time-epoch" releaseTimestamp)
 
+    (lib.mesonOption "version-tag" version)
+    (lib.mesonOption "mode" "release")
+    (lib.mesonOption "tty-gid" "3") # tty in NixOS has gid 3
+    (lib.mesonOption "debug-shell" "${bashInteractive}/bin/bash")
+    (lib.mesonOption "pamconfdir" "${placeholder "out"}/etc/pam.d")
     # Use cgroupsv2. This is already the upstream default, but better be explicit.
-    "-Ddefault-hierarchy=unified"
-    # Upstream defaulted to disable manpages since they optimize for the much
-    # more frequent development builds
-    "-Dman=true"
-
-    "-Defi=${lib.boolToString withEfi}"
-    "-Dbootloader=${lib.boolToString withBootloader}"
+    (lib.mesonOption "default-hierarchy" "unified")
+    (lib.mesonOption "kmod-path" "${kmod}/bin/kmod")
+
+    # D-Bus
+    (lib.mesonOption "dbuspolicydir" "${placeholder "out"}/share/dbus-1/system.d")
+    (lib.mesonOption "dbussessionservicedir" "${placeholder "out"}/share/dbus-1/services")
+    (lib.mesonOption "dbussystemservicedir" "${placeholder "out"}/share/dbus-1/system-services")
+
+    # pkgconfig
+    (lib.mesonOption "pkgconfiglibdir" "${placeholder "dev"}/lib/pkgconfig")
+    (lib.mesonOption "pkgconfigdatadir" "${placeholder "dev"}/share/pkgconfig")
+
+    # Keyboard
+    (lib.mesonOption "loadkeys-path" "${kbd}/bin/loadkeys")
+    (lib.mesonOption "setfont-path" "${kbd}/bin/setfont")
+
+    # SBAT
+    (lib.mesonOption "sbat-distro" "nixos")
+    (lib.mesonOption "sbat-distro-summary" "NixOS")
+    (lib.mesonOption "sbat-distro-url" "https://nixos.org/")
+    (lib.mesonOption "sbat-distro-pkgname" pname)
+    (lib.mesonOption "sbat-distro-version" version)
+
+    # Users
+    (lib.mesonOption "system-uid-max" "999")
+    (lib.mesonOption "system-gid-max" "999")
+
+    # SysVinit
+    (lib.mesonOption "sysvinit-path" "")
+    (lib.mesonOption "sysvrcnd-path" "")
+
+    # Login
+    (lib.mesonOption "sulogin-path" "${util-linux.login}/bin/sulogin")
+    (lib.mesonOption "nologin-path" "${util-linux.login}/bin/nologin")
+
+    # Mount
+    (lib.mesonOption "mount-path" "${lib.getOutput "mount" util-linux}/bin/mount")
+    (lib.mesonOption "umount-path" "${lib.getOutput "mount" util-linux}/bin/umount")
+
+
+    # Features
+
+    # Tests
+    (lib.mesonBool "tests" withTests)
+    (lib.mesonEnable "glib" withTests)
+    (lib.mesonEnable "dbus" withTests)
+
+    # Compression
+    (lib.mesonEnable "bzip2" withCompression)
+    (lib.mesonEnable "lz4" withCompression)
+    (lib.mesonEnable "xz" withCompression)
+    (lib.mesonEnable "zstd" withCompression)
+    (lib.mesonEnable "zlib" withCompression)
+
+    # NSS
+    (lib.mesonEnable "nss-mymachines" withNss)
+    (lib.mesonEnable "nss-resolve" withNss)
+    (lib.mesonBool "nss-myhostname" withNss)
+    (lib.mesonBool "nss-systemd" withNss)
+
+    # Cryptsetup
+    (lib.mesonEnable "libcryptsetup" withCryptsetup)
+    (lib.mesonEnable "libcryptsetup-plugins" withCryptsetup)
+    (lib.mesonEnable "p11kit" (withHomed || withCryptsetup))
+
+    # FIDO2
+    (lib.mesonEnable "libfido2" withFido2)
+    (lib.mesonEnable "openssl" withFido2)
+
+    # Password Quality
+    (lib.mesonEnable "pwquality" withPasswordQuality)
+    (lib.mesonEnable "passwdqc" false)
+
+    # Remote
+    (lib.mesonEnable "remote" withRemote)
+    (lib.mesonEnable "microhttpd" withRemote)
+
+    (lib.mesonEnable "pam" withPam)
+    (lib.mesonEnable "acl" withAcl)
+    (lib.mesonEnable "audit" withAudit)
+    (lib.mesonEnable "apparmor" withApparmor)
+    (lib.mesonEnable "gcrypt" wantGcrypt)
+    (lib.mesonEnable "importd" withImportd)
+    (lib.mesonEnable "homed" withHomed)
+    (lib.mesonEnable "polkit" withPolkit)
+    (lib.mesonEnable "elfutils" withCoredump)
+    (lib.mesonEnable "libcurl" wantCurl)
+    (lib.mesonEnable "libidn" false)
+    (lib.mesonEnable "libidn2" withLibidn2)
+    (lib.mesonEnable "libiptc" withIptables)
+    (lib.mesonEnable "repart" withRepart)
+    (lib.mesonEnable "sysupdate" withSysupdate)
+    (lib.mesonEnable "selinux" withSelinux)
+    (lib.mesonEnable "tpm2" withTpm2Tss)
+    (lib.mesonEnable "pcre2" withPCRE2)
+    (lib.mesonEnable "bpf-framework" withLibBPF)
+    (lib.mesonEnable "bootloader" withBootloader)
+    (lib.mesonEnable "ukify" withUkify)
+    (lib.mesonEnable "kmod" withKmod)
+    (lib.mesonEnable "qrencode" withQrencode)
+    (lib.mesonEnable "vmspawn" withVmspawn)
+    (lib.mesonEnable "xenctrl" false)
+    (lib.mesonEnable "gnutls" false)
+    (lib.mesonEnable "xkbcommon" false)
+    (lib.mesonEnable "man" true)
+
+    (lib.mesonBool "analyze" withAnalyze)
+    (lib.mesonBool "logind" withLogind)
+    (lib.mesonBool "localed" withLocaled)
+    (lib.mesonBool "hostnamed" withHostnamed)
+    (lib.mesonBool "machined" withMachined)
+    (lib.mesonBool "networkd" withNetworkd)
+    (lib.mesonBool "oomd" withOomd)
+    (lib.mesonBool "portabled" withPortabled)
+    (lib.mesonBool "hwdb" withHwdb)
+    (lib.mesonBool "timedated" withTimedated)
+    (lib.mesonBool "timesyncd" withTimesyncd)
+    (lib.mesonBool "userdb" withUserDb)
+    (lib.mesonBool "coredump" withCoredump)
+    (lib.mesonBool "firstboot" withFirstboot)
+    (lib.mesonBool "resolve" withResolved)
+    (lib.mesonBool "sysusers" withSysusers)
+    (lib.mesonBool "efi" withEfi)
+    (lib.mesonBool "utmp" withUtmp)
+    (lib.mesonBool "log-trace" withLogTrace)
+    (lib.mesonBool "quotacheck" false)
+    (lib.mesonBool "ldconfig" false)
+    (lib.mesonBool "install-sysconfdir" false)
+    (lib.mesonBool "create-log-dirs" false)
+    (lib.mesonBool "smack" true)
+    (lib.mesonBool "b_pie" true)
 
-    "-Dukify=${lib.boolToString withUkify}"
   ] ++ lib.optionals (withShellCompletions == false) [
-    "-Dbashcompletiondir=no"
-    "-Dzshcompletiondir=no"
-  ] ++ lib.optionals (!withNss) [
-    "-Dnss-myhostname=false"
-    "-Dnss-mymachines=false"
-    "-Dnss-resolve=false"
-    "-Dnss-systemd=false"
-  ] ++ lib.optionals withLibBPF [
-    "-Dbpf-framework=true"
-  ] ++ lib.optionals withTpm2Tss [
-    "-Dtpm2=true"
-  ] ++ lib.optionals (!withUtmp) [
-    "-Dutmp=false"
+    (lib.mesonOption "bashcompletiondir" "no")
+    (lib.mesonOption "zshcompletiondir" "no")
   ] ++ lib.optionals stdenv.hostPlatform.isMusl [
-    "-Dgshadow=false"
-    "-Didn=false"
-  ] ++ lib.optionals withKmod [
-    "-Dkmod=true"
-    "-Dkmod-path=${kmod}/bin/kmod"
-  ] ++ lib.optionals withLogTrace [
-    "-Dlog-trace=true"
+    (lib.mesonBool "gshadow" false)
+    (lib.mesonBool "idn" false)
   ];
   preConfigure =
     let
@@ -747,7 +789,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   # Wrap in the correct path for LUKS2 tokens.
   postFixup = lib.optionalString withCryptsetup ''
-    for f in lib/systemd/systemd-cryptsetup bin/systemd-cryptenroll; do
+    for f in bin/systemd-cryptsetup bin/systemd-cryptenroll; do
       # This needs to be in LD_LIBRARY_PATH because rpath on a binary is not propagated to libraries using dlopen, in this case `libcryptsetup.so`
       wrapProgram $out/$f --prefix LD_LIBRARY_PATH : ${placeholder "out"}/lib/cryptsetup
     done
@@ -757,7 +799,7 @@ stdenv.mkDerivation (finalAttrs: {
     # To cross compile a derivation that builds a UKI with ukify, we need to wrap
     # ukify with the correct binutils. When wrapping, no splicing happens so we
     # have to explicitly pull binutils from targetPackages.
-    wrapProgram $out/lib/systemd/ukify --prefix PATH : ${lib.makeBinPath [ targetPackages.stdenv.cc.bintools ] }:${placeholder "out"}/lib/systemd
+    wrapProgram $out/bin/ukify --prefix PATH : ${lib.makeBinPath [ targetPackages.stdenv.cc.bintools ] }:${placeholder "out"}/lib/systemd
   '';
 
   disallowedReferences = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform)
diff --git a/pkgs/os-specific/linux/tailor-gui/default.nix b/pkgs/os-specific/linux/tailor-gui/default.nix
index ecbec75fd82d..d8aace99e4ef 100644
--- a/pkgs/os-specific/linux/tailor-gui/default.nix
+++ b/pkgs/os-specific/linux/tailor-gui/default.nix
@@ -17,7 +17,7 @@ let
   src = tuxedo-rs.src;
   sourceRoot = "source/tailor_gui";
   pname = "tailor_gui";
-  version = tuxedo-rs.version;
+  version = "0.2.3";
 in
 stdenv.mkDerivation {
 
@@ -54,7 +54,7 @@ stdenv.mkDerivation {
     '';
     homepage = "https://github.com/AaronErhardt/tuxedo-rs";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ mrcjkb ];
+    maintainers = with maintainers; [ mrcjkb xaverdh ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/os-specific/linux/tuxedo-rs/default.nix b/pkgs/os-specific/linux/tuxedo-rs/default.nix
index 04c1518aab83..ca48571b7933 100644
--- a/pkgs/os-specific/linux/tuxedo-rs/default.nix
+++ b/pkgs/os-specific/linux/tuxedo-rs/default.nix
@@ -1,29 +1,33 @@
 { lib
 , fetchFromGitHub
 , rustPlatform
+, testers
+, tuxedo-rs
 }:
-let
+rustPlatform.buildRustPackage rec {
+  pname = "tuxedo-rs";
+  version = "0.3.0";
 
   # NOTE: This src is shared with tailor-gui.
   # When updating, the tailor-gui.cargoDeps hash needs to be updated.
   src = fetchFromGitHub {
     owner = "AaronErhardt";
     repo = "tuxedo-rs";
-    rev = "74b863e6dcb1ec2e6c8fb02c16bb6f23b59e67f6";
-    hash = "sha256-Yujki2vGzaT8Ze5Usk8FPg8bn86MvyyPTiWuWwEw7Xs=";
+    rev = "tailor-v${version}";
+    hash = "sha256-5F9Xo+tnmYqmFiKrKMe+EEqypmG9iIvwai5yuKCm00Y=";
   };
 
-in
-rustPlatform.buildRustPackage {
-  pname = "tuxedo-rs";
-  version = "0.2.3";
-
-  inherit src;
 
   # Some of the tests are impure and rely on files in /etc/tailord
   doCheck = false;
 
-  cargoHash = "sha256-uYt442u/BIzw/lBu18LrsJf5D46oUOFzBJ5pUjCpK6w=";
+  cargoHash = "sha256-EPbh1elLOJKOrYLeBSaZ27zWGYFajiD60eFGEGaCJKw=";
+
+  passthru.tests.version = testers.testVersion {
+    package = tuxedo-rs;
+    command = "${meta.mainProgram} --version";
+    version = version;
+  };
 
   postInstall = ''
     install -Dm444 tailord/com.tux.Tailor.conf -t $out/share/dbus-1/system.d
@@ -40,8 +44,8 @@ rustPlatform.buildRustPackage {
     '';
     homepage = "https://github.com/AaronErhardt/tuxedo-rs";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ mrcjkb ];
+    maintainers = with maintainers; [ mrcjkb xaverdh ];
     platforms = platforms.linux;
+    mainProgram = "tailor";
   };
 }
-
diff --git a/pkgs/os-specific/linux/uhk-agent/default.nix b/pkgs/os-specific/linux/uhk-agent/default.nix
index c8af2563d622..8f829a59998e 100644
--- a/pkgs/os-specific/linux/uhk-agent/default.nix
+++ b/pkgs/os-specific/linux/uhk-agent/default.nix
@@ -11,12 +11,12 @@
 
 let
   pname = "uhk-agent";
-  version = "3.2.2";
+  version = "3.3.0";
 
   src = fetchurl {
     url = "https://github.com/UltimateHackingKeyboard/agent/releases/download/v${version}/UHK.Agent-${version}-linux-x86_64.AppImage";
     name = "${pname}-${version}.AppImage";
-    sha256 = "sha256-0kNcpdYktgzIPVvfSitJ5aIuhJvCEcbubumHhW00QUE=";
+    sha256 = "sha256-jkIuXKTm8imq1U7kbQhK7LkEeI2qz0Gu7rWuDn6Ex+c=";
   };
 
   appimageContents = appimageTools.extract {
@@ -39,6 +39,10 @@ stdenvNoCC.mkDerivation {
     libusb1
   ];
 
+  autoPatchelfIgnoreMissingDeps = [
+    "libc.musl-x86_64.so.1"
+  ];
+
   installPhase = ''
     runHook preInstall
 
diff --git a/pkgs/os-specific/linux/zfs/unstable.nix b/pkgs/os-specific/linux/zfs/unstable.nix
index 997cbe18ba7d..691fa523b522 100644
--- a/pkgs/os-specific/linux/zfs/unstable.nix
+++ b/pkgs/os-specific/linux/zfs/unstable.nix
@@ -17,23 +17,24 @@ callPackage ./generic.nix args {
   # check the release notes for compatible kernels
   kernelCompatible =
     if stdenv'.isx86_64 || removeLinuxDRM
-    then kernel.kernelOlder "6.7"
+    then kernel.kernelOlder "6.8"
     else kernel.kernelOlder "6.2";
 
   latestCompatibleLinuxPackages = if stdenv'.isx86_64 || removeLinuxDRM
-    then linuxKernel.packages.linux_6_6
+    then linuxKernel.packages.linux_6_7
     else linuxKernel.packages.linux_6_1;
 
   # this package should point to a version / git revision compatible with the latest kernel release
   # IMPORTANT: Always use a tagged release candidate or commits from the
   # zfs-<version>-staging branch, because this is tested by the OpenZFS
   # maintainers.
-  version = "2.2.2";
+  version = "2.2.3-unstable-2024-01-26";
+  rev = "3425484eb907d489c315cced2a1fdea08ef03fc4";
 
   isUnstable = true;
   tests = [
     nixosTests.zfs.unstable
   ];
 
-  hash = "sha256-CqhETAwhWMhbld5ib3Rz1dxms+GQbLwjEZw/V7U/2nE=";
+  hash = "sha256-P8PIp0qRHm/fxYdxWKVRX9LR5tKZR7fFUSY90QDE/lU=";
 }
diff --git a/pkgs/os-specific/windows/default.nix b/pkgs/os-specific/windows/default.nix
index dfd749dc2a9c..7d152a607b8e 100644
--- a/pkgs/os-specific/windows/default.nix
+++ b/pkgs/os-specific/windows/default.nix
@@ -17,9 +17,10 @@ lib.makeScope newScope (self: with self; {
     stdenv = crossLibcStdenv;
   };
 
+  # FIXME untested with llvmPackages_16 was using llvmPackages_8
   crossThreadsStdenv = overrideCC crossLibcStdenv
     (if stdenv.hostPlatform.useLLVM or false
-     then buildPackages.llvmPackages_8.clangNoLibcxx
+     then buildPackages.llvmPackages.clangNoLibcxx
      else buildPackages.gccWithoutTargetLibc.override (old: {
        bintools = old.bintools.override {
          libc = libcCross;
diff --git a/pkgs/os-specific/windows/mingw-w64/default.nix b/pkgs/os-specific/windows/mingw-w64/default.nix
index 3bfc7a58e727..706186c8e2f1 100644
--- a/pkgs/os-specific/windows/mingw-w64/default.nix
+++ b/pkgs/os-specific/windows/mingw-w64/default.nix
@@ -2,35 +2,20 @@
 , stdenv
 , windows
 , fetchurl
-, fetchpatch
 , autoreconfHook
 }:
 
 let
-  version = "10.0.0";
+  version = "11.0.1";
 in stdenv.mkDerivation {
   pname = "mingw-w64";
   inherit version;
 
   src = fetchurl {
     url = "mirror://sourceforge/mingw-w64/mingw-w64-v${version}.tar.bz2";
-    hash = "sha256-umtDCu1yxjo3aFMfaj/8Kw/eLFejslFFDc9ImolPCJQ=";
+    hash = "sha256-P2a84Gnui+10OaGhPafLkaXmfqYXDyExesf1eUYl7hA=";
   };
 
-  patches = [
-    # Upstream patches to fix build parallelism
-    (fetchpatch {
-      name = "crt-suff-make-4.4.patch";
-      url = "https://github.com/mirror/mingw-w64/commit/953bcd32ae470c4647e94de8548dda5a8f07d82d.patch";
-      hash = "sha256-lrS4ZDa/Uwsj5DXajOUv+knZXan0JVU70KHHdIjJ07Y=";
-    })
-    (fetchpatch {
-      name = "dll-dep-make-4.4.patch";
-      url = "https://github.com/mirror/mingw-w64/commit/e1b0c1420bbd52ef505c71737c57393ac1397b0a.patch";
-      hash = "sha256-/56Cmmy0UYTaDKIWG7CgXsThvCHK6lSbekbBOoOJSIQ=";
-    })
-  ];
-
   outputs = [ "out" "dev" ];
 
   configureFlags = [
diff --git a/pkgs/servers/amqp/rabbitmq-server/default.nix b/pkgs/servers/amqp/rabbitmq-server/default.nix
index 9466351a3a83..eaf32020ef48 100644
--- a/pkgs/servers/amqp/rabbitmq-server/default.nix
+++ b/pkgs/servers/amqp/rabbitmq-server/default.nix
@@ -38,12 +38,12 @@ in
 
 stdenv.mkDerivation rec {
   pname = "rabbitmq-server";
-  version = "3.12.11";
+  version = "3.12.12";
 
   # when updating, consider bumping elixir version in all-packages.nix
   src = fetchurl {
     url = "https://github.com/rabbitmq/rabbitmq-server/releases/download/v${version}/${pname}-${version}.tar.xz";
-    hash = "sha256-WGlSYRUrKhtku9+MXjNu1Gm+Ddox2iQ8rwZKUh1QPsM=";
+    hash = "sha256-lR/qwEoEH8v6oTTz6oAMlk2Tl2QSCEWV9rnU+gXX2KY=";
   };
 
   nativeBuildInputs = [ unzip xmlto docbook_xml_dtd_45 docbook_xsl zip rsync python3 ];
diff --git a/pkgs/servers/apache-airflow/python-package.nix b/pkgs/servers/apache-airflow/python-package.nix
index ac39c99ba7d1..29559cb60a31 100644
--- a/pkgs/servers/apache-airflow/python-package.nix
+++ b/pkgs/servers/apache-airflow/python-package.nix
@@ -265,7 +265,7 @@ buildPythonPackage rec {
   ];
 
   postInstall = ''
-    cp -rv ${airflow-frontend}/static/dist $out/lib/${python.libPrefix}/site-packages/airflow/www/static
+    cp -rv ${airflow-frontend}/static/dist $out/${python.sitePackages}/airflow/www/static
     # Needed for pythonImportsCheck below
     export HOME=$(mktemp -d)
   '';
diff --git a/pkgs/servers/atlassian/jira.nix b/pkgs/servers/atlassian/jira.nix
index d50873a83347..9d9c20d855e2 100644
--- a/pkgs/servers/atlassian/jira.nix
+++ b/pkgs/servers/atlassian/jira.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "atlassian-jira";
-  version = "9.11.1";
+  version = "9.13.0";
 
   src = fetchurl {
     url = "https://product-downloads.atlassian.com/software/jira/downloads/atlassian-jira-software-${version}.tar.gz";
-    sha256 = "sha256-ertaJrURAMViQ5WVa8JgCu9vlTNwGVRiPTt7grIrgZQ=";
+    sha256 = "sha256-WKb43gb8VUhnmm+Jvh7w/MHbyJVrYnxkpqfPk5hQk/w=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/baserow/default.nix b/pkgs/servers/baserow/default.nix
index ea46b4bfb8f2..37366183dba0 100644
--- a/pkgs/servers/baserow/default.nix
+++ b/pkgs/servers/baserow/default.nix
@@ -127,8 +127,8 @@ with python.pkgs; buildPythonApplication rec {
 
   fixupPhase = ''
     cp -r src/baserow/contrib/database/{api,action,trash,formula,file_import} \
-      $out/lib/${python.libPrefix}/site-packages/baserow/contrib/database/
-    cp -r src/baserow/core/management/backup $out/lib/${python.libPrefix}/site-packages/baserow/core/management/
+      $out/${python.sitePackages}/baserow/contrib/database/
+    cp -r src/baserow/core/management/backup $out/${python.sitePackages}/baserow/core/management/
   '';
 
   disabledTests = [
diff --git a/pkgs/servers/code-server/playwright.patch b/pkgs/servers/code-server/playwright.patch
deleted file mode 100644
index 95a74748189d..000000000000
--- a/pkgs/servers/code-server/playwright.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- ./vendor/modules/code-oss-dev/node_modules/playwright/install.js
-+++ ./vendor/modules/code-oss-dev/node_modules/playwright/install.js
-@@ -14,6 +14,4 @@
-  * limitations under the License.
-  */
- 
--const { installDefaultBrowsersForNpmInstall } = require('playwright-core/lib/utils/registry');
--
--installDefaultBrowsersForNpmInstall();
-+process.stdout.write('Browser install disabled by Nix build script\n');
diff --git a/pkgs/servers/computing/slurm/default.nix b/pkgs/servers/computing/slurm/default.nix
index 6e2b2e62d3b6..d3ef5324db86 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.1.1";
+  version = "23.11.3.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-dfCQKKw44bD5d7Sv7e40Qm3df9Mzz7WvmWf7SP8R1KQ=";
+    hash = "sha256-fSw7LaIEyExsdVgJ9pfWEBhnBUsczdJl0coEPDdKVzA=";
   };
 
   outputs = [ "out" "dev" ];
@@ -37,6 +37,13 @@ stdenv.mkDerivation rec {
   prePatch = ''
     substituteInPlace src/common/env.c \
         --replace "/bin/echo" "${coreutils}/bin/echo"
+
+    # Autoconf does not support split packages for pmix (libs and headers).
+    # Fix the path to the pmix libraries, so dlopen can find it.
+    substituteInPlace src/plugins/mpi/pmix/mpi_pmix.c \
+        --replace 'xstrfmtcat(full_path, "%s/", PMIXP_LIBPATH)' \
+                  'xstrfmtcat(full_path, "${lib.getLib pmix}/lib/")'
+
   '' + (lib.optionalString enableX11 ''
     substituteInPlace src/common/x11_util.c \
         --replace '"/usr/bin/xauth"' '"${xorg.xauth}/bin/xauth"'
@@ -68,7 +75,7 @@ stdenv.mkDerivation rec {
       "--with-yaml=${lib.getDev libyaml}"
       "--with-ofed=${lib.getDev rdma-core}"
       "--sysconfdir=/etc/slurm"
-      "--with-pmix=${pmix}"
+      "--with-pmix=${lib.getDev pmix}"
       "--with-bpf=${libbpf}"
       "--without-rpath" # Required for configure to pick up the right dlopen path
     ] ++ (optional enableGtk2  "--disable-gtktest")
diff --git a/pkgs/servers/consul/default.nix b/pkgs/servers/consul/default.nix
index bb90a3a26f89..bfc57cc1f10e 100644
--- a/pkgs/servers/consul/default.nix
+++ b/pkgs/servers/consul/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "consul";
-  version = "1.17.1";
+  version = "1.17.2";
   rev = "v${version}";
 
   # Note: Currently only release tags are supported, because they have the Consul UI
@@ -17,7 +17,7 @@ buildGoModule rec {
     owner = "hashicorp";
     repo = pname;
     inherit rev;
-    hash = "sha256-z6pO9+fQ+0jeYM3wCG8T/1C5aSeSZITj+f8TmGxR+Gw=";
+    hash = "sha256-zfJZUDR6GJlJbnLIXa5duq8VOG0WUN+FP5BLQ4EgPKM=";
   };
 
   passthru.tests.consul = nixosTests.consul;
@@ -26,7 +26,7 @@ buildGoModule rec {
   # has a split module structure in one repo
   subPackages = ["." "connect/certgen"];
 
-  vendorHash = "sha256-Xt7azJS65B53jYPWLytNaGQv3Poy+3j4ak1Jq68vZRI=";
+  vendorHash = "sha256-bKiKfLq/kbZYziUyD2v1o9X2Gs6uiqzPSYWE4cpeU9Q=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/db-rest/default.nix b/pkgs/servers/db-rest/default.nix
index 8eab440e523b..8594dccbbd00 100644
--- a/pkgs/servers/db-rest/default.nix
+++ b/pkgs/servers/db-rest/default.nix
@@ -7,7 +7,7 @@
 }:
 buildNpmPackage rec {
   pname = "db-rest";
-  version = "6.0.3";
+  version = "6.0.4";
 
   nodejs = nodejs_18;
 
@@ -15,19 +15,10 @@ buildNpmPackage rec {
     owner = "derhuerst";
     repo = pname;
     rev = version;
-    hash = "sha256-kHT8/8ivqcP6YRBvkZ4jpJ/xBMM1PddLgV1Z/MFmSTM=";
+    hash = "sha256-guiAtPOvU/yqspq+G+mTSIFqBp6Kl0JZBPfjPC+ZM1g=";
   };
 
-  patches = [
-    # add files and bin property to package.json
-    # keep until https://github.com/derhuerst/db-rest/pull/37 is merged and released
-    (fetchpatch {
-      url = "https://github.com/derhuerst/db-rest/commit/7d2c8bebdd5e8152b181748e3c36683ecf9e71c9.patch";
-      hash = "sha256-KyNcvSJLQrX8BO/4814wefeeC+s0pvM2ng44q6diU24=";
-    })
-  ];
-
-  npmDepsHash = "sha256-d/Qs194TU4ooy6GsBsZhrf5H1iPCUnlieBgtuqfAtkQ=";
+  npmDepsHash = "sha256-lJT344HpHJFN3QO6kVAj1NhRFTwS+EVkR0ePbtIguFo=";
 
   preConfigure = ''
     patchShebangs ./build/index.js
diff --git a/pkgs/servers/dcnnt/default.nix b/pkgs/servers/dcnnt/default.nix
index dff64f4f568a..6c55a28ae178 100644
--- a/pkgs/servers/dcnnt/default.nix
+++ b/pkgs/servers/dcnnt/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonApplication rec {
   pname = "dcnnt";
-  version = "0.9.0";
+  version = "0.9.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-YG+NLKI9cz8Uu2y+Ut2q+vn67ExTya00XjHlWRAksz8=";
+    sha256 = "sha256-mPZlQllIU4fkGtmnhK7ovc8CrAxUcgF0KgO7/fQBrkk=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/servers/dendrite/default.nix b/pkgs/servers/dendrite/default.nix
index 720b41a9350c..7b8ff4fae133 100644
--- a/pkgs/servers/dendrite/default.nix
+++ b/pkgs/servers/dendrite/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "matrix-dendrite";
-  version = "0.13.5";
+  version = "0.13.6";
 
   src = fetchFromGitHub {
     owner = "matrix-org";
     repo = "dendrite";
     rev = "v${version}";
-    hash = "sha256-tKywmFSSWc538i7raCrZnFpMDnFMT23hYVoYndnIKJ4=";
+    hash = "sha256-R/67y7ZiqH2Yg7JFsNYOuGocvR161srlWjRgjyZsqaE=";
   };
 
-  vendorHash = "sha256-eFoXUroJgrstNYjSYsP6o0vTEW2k/+6JjyVn6bb4um8=";
+  vendorHash = "sha256-/+JSL54y7u7mGeDwAJV17Ibjb/LffitUOgonUd9EzDA=";
 
   subPackages = [
     # The server
diff --git a/pkgs/servers/dex/default.nix b/pkgs/servers/dex/default.nix
index 65bbf51ba9d0..16a792f111f0 100644
--- a/pkgs/servers/dex/default.nix
+++ b/pkgs/servers/dex/default.nix
@@ -1,24 +1,24 @@
-{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
+{ lib, buildGoModule, fetchFromGitHub, nixosTests, testers, dex-oidc }:
 
 buildGoModule rec {
   pname = "dex";
-  version = "2.37.0";
+  version = "2.38.0";
 
   src = fetchFromGitHub {
     owner = "dexidp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-2u9UHummUpPljTzPNCQfHwYVeWgDOGLcGx10aVHUAZM=";
+    sha256 = "sha256-nk6llGXJSUA8BWz3S320klMJkOI9BE5oiKgPTuNZVyM=";
   };
 
-  vendorHash = "sha256-sSn3qpbo04DjyPD+Ogx9JUdJ/++fNYb0bAmudQjchQ0=";
+  vendorHash = "sha256-yQaoRV6nMHHNpyc2SgyYGJaeIR72dNAh1U3bPHlYEws=";
 
   subPackages = [
     "cmd/dex"
   ];
 
   ldflags = [
-    "-w" "-s" "-X github.com/dexidp/dex/version.Version=${src.rev}"
+    "-w" "-s" "-X main.version=${src.rev}"
   ];
 
   postInstall = ''
@@ -26,7 +26,14 @@ buildGoModule rec {
     cp -r $src/web $out/share/web
   '';
 
-  passthru.tests = { inherit (nixosTests) dex-oidc; };
+  passthru.tests = {
+    inherit (nixosTests) dex-oidc;
+    version = testers.testVersion {
+      package = dex-oidc;
+      command = "dex version";
+      version = "v${version}";
+    };
+  };
 
   meta = with lib; {
     description = "OpenID Connect and OAuth2 identity provider with pluggable connectors";
diff --git a/pkgs/servers/dns/knot-dns/default.nix b/pkgs/servers/dns/knot-dns/default.nix
index 41da27f2baa1..9e73c026b3f1 100644
--- a/pkgs/servers/dns/knot-dns/default.nix
+++ b/pkgs/servers/dns/knot-dns/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation rec {
   pname = "knot-dns";
-  version = "3.3.3";
+  version = "3.3.4";
 
   src = fetchurl {
     url = "https://secure.nic.cz/files/knot-dns/knot-${version}.tar.xz";
-    sha256 = "aab40aab2acd735c500f296bacaa5c84ff0488221a4068ce9946e973beacc5ae";
+    sha256 = "2a771b43ce96b6b48d53b29f2086528732e6ac067bc71a3be934f859d1302fc0";
   };
 
   outputs = [ "bin" "out" "dev" ];
@@ -46,9 +46,7 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  CFLAGS = [ "-O2" "-DNDEBUG" ]
-    # https://gitlab.nic.cz/knot/knot-dns/-/issues/909
-    ++ lib.optional stdenv.isDarwin "-D__APPLE_USE_RFC_3542";
+  CFLAGS = [ "-O2" "-DNDEBUG" ];
 
   doCheck = true;
   checkFlags = [ "V=1" ]; # verbose output in case some test fails
diff --git a/pkgs/servers/dns/knot-resolver/default.nix b/pkgs/servers/dns/knot-resolver/default.nix
index 28fe866dfdcc..d14c7450c8da 100644
--- a/pkgs/servers/dns/knot-resolver/default.nix
+++ b/pkgs/servers/dns/knot-resolver/default.nix
@@ -4,6 +4,7 @@
 # build+runtime deps.
 , knot-dns, luajitPackages, libuv, gnutls, lmdb
 , jemalloc, systemd, libcap_ng, dns-root-data, nghttp2 # optionals, in principle
+, fstrm, protobufc # more optionals
 # test-only deps.
 , cmocka, which, cacert
 , extraFeatures ? false /* catch-all if defaults aren't enough */
@@ -62,9 +63,10 @@ unwrapped = stdenv.mkDerivation rec {
 
   # http://knot-resolver.readthedocs.io/en/latest/build.html#requirements
   buildInputs = [ knot-dns lua.lua libuv gnutls lmdb ]
+    ## the rest are optional dependencies
     ++ optionals stdenv.isLinux [ /*lib*/systemd libcap_ng ]
     ++ [ jemalloc nghttp2 ]
-    ## optional dependencies; TODO: dnstap
+    ++ [ fstrm protobufc ] # dnstap support
     ;
 
   mesonFlags = [
diff --git a/pkgs/servers/domoticz/default.nix b/pkgs/servers/domoticz/default.nix
index 65c7debfd4d9..bcfb13ad0dec 100644
--- a/pkgs/servers/domoticz/default.nix
+++ b/pkgs/servers/domoticz/default.nix
@@ -19,13 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "domoticz";
-  version = "2023.2";
+  version = "2024.4";
 
   src = fetchFromGitHub {
     owner = "domoticz";
     repo = pname;
     rev = version;
-    sha256 = "sha256-DxY9rBeRc20wmt4pDdBS16vyoOjCzczuxhOdUX/Lxao=";
+    sha256 = "sha256-bIA7Dx8XV2zT2Cdm4CwKX6xfedBREhevE/bN76o4r78=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/servers/elasticmq-server-bin/default.nix b/pkgs/servers/elasticmq-server-bin/default.nix
index 91d8e6577fd0..7f83216cf909 100644
--- a/pkgs/servers/elasticmq-server-bin/default.nix
+++ b/pkgs/servers/elasticmq-server-bin/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "elasticmq-server";
-  version = "1.5.4";
+  version = "1.5.7";
 
   src = fetchurl {
     url = "https://s3-eu-west-1.amazonaws.com/softwaremill-public/${finalAttrs.pname}-${finalAttrs.version}.jar";
-    sha256 = "sha256-kkRHJuA9ogPzm8XFxmKNsakawcVVVj9b7gWicLZE/mM=";
+    sha256 = "sha256-J7LT1OwMIt0jV9lRwTVdkW2Mm9OqxyGUlte3VHZrTZ0=";
   };
 
   # don't do anything?
diff --git a/pkgs/servers/fastnetmon-advanced/default.nix b/pkgs/servers/fastnetmon-advanced/default.nix
index 6d4fed7a7356..8f11df7048ad 100644
--- a/pkgs/servers/fastnetmon-advanced/default.nix
+++ b/pkgs/servers/fastnetmon-advanced/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "fastnetmon-advanced";
-  version = "2.0.357";
+  version = "2.0.358";
 
   src = fetchurl {
     url = "https://repo.fastnetmon.com/fastnetmon_ubuntu_jammy/pool/fastnetmon/f/fastnetmon/fastnetmon_${version}_amd64.deb";
-    hash = "sha256-AiFJaTyMDCp1fFLhdwxnj5rK+RrZt5ZB0zgaf7YRFtw=";
+    hash = "sha256-qL+LxePCZnSpbeeNANvI/f8ntNStHe02fSqMA+XKFng=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/servers/firebird/default.nix b/pkgs/servers/firebird/default.nix
index e49f683da877..7e7387819ab0 100644
--- a/pkgs/servers/firebird/default.nix
+++ b/pkgs/servers/firebird/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, libedit, autoreconfHook, zlib, unzip, libtommath, libtomcrypt, icu, superServer ? false }:
+{ lib, stdenv, fetchFromGitHub, libedit, autoreconfHook271, zlib, unzip, libtommath, libtomcrypt, icu, superServer ? false }:
 
 let base = {
   pname = "firebird";
@@ -13,7 +13,7 @@ let base = {
     maintainers = with maintainers; [ marcweber ];
   };
 
-  nativeBuildInputs = [ autoreconfHook ];
+  nativeBuildInputs = [ autoreconfHook271 ];
 
   buildInputs = [ libedit icu ];
 
diff --git a/pkgs/servers/geospatial/fit-trackee/default.nix b/pkgs/servers/geospatial/fit-trackee/default.nix
index 5a3673244e30..0e7377f1258c 100644
--- a/pkgs/servers/geospatial/fit-trackee/default.nix
+++ b/pkgs/servers/geospatial/fit-trackee/default.nix
@@ -25,21 +25,19 @@ let
 in
 python.pkgs.buildPythonApplication rec {
   pname = "fit-trackee";
-  version = "0.7.22";
+  version = "0.7.29";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "SamR1";
     repo = "FitTrackee";
     rev = "v${version}";
-    hash = "sha256-aPQ8jLssN9nx0Bpd/44E3sQi2w0cR8ecG76DJjreeHA=";
+    hash = "sha256-NWWQ+lPUMaeF3UPglllaLGJnNgF54SXo4DcF3VAQbO4=";
   };
 
   postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace psycopg2-binary psycopg2 \
-      --replace 'poetry>=0.12' 'poetry-core' \
-      --replace 'poetry.masonry.api' 'poetry.core.masonry.api'
+    substituteInPlace pyproject.toml --replace psycopg2-binary psycopg2 \
+      --replace 'flask = "^3.0.0"' 'flask = "*"'
   '';
 
   nativeBuildInputs = [
@@ -55,6 +53,7 @@ python.pkgs.buildPythonApplication rec {
     flask-dramatiq
     flask-limiter
     flask-migrate
+    flask-sqlalchemy
     gpxpy
     gunicorn
     humanize
diff --git a/pkgs/servers/geospatial/geoserver/default.nix b/pkgs/servers/geospatial/geoserver/default.nix
index 8b2db14048ae..a58a3bb717e1 100644
--- a/pkgs/servers/geospatial/geoserver/default.nix
+++ b/pkgs/servers/geospatial/geoserver/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "geoserver";
-  version = "2.24.1";
+  version = "2.24.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/geoserver/GeoServer/${version}/geoserver-${version}-bin.zip";
-    sha256 = "sha256-3GdpM5BIH6+NME+/Zig0c7pYFWuWZywT6goD9JT6gZI=";
+    sha256 = "sha256-1ArG7CneJRY9y6rYaVjNU6L6RsUgVvjpwt07Rd+WGrE=";
   };
 
   patches = [
diff --git a/pkgs/servers/gpsd/default.nix b/pkgs/servers/gpsd/default.nix
index 662c4d530170..224ce41d185e 100644
--- a/pkgs/servers/gpsd/default.nix
+++ b/pkgs/servers/gpsd/default.nix
@@ -84,7 +84,7 @@ stdenv.mkDerivation rec {
     substituteInPlace SConscript --replace "env['CCVERSION']" "env['CC']"
 
     sconsFlags+=" udevdir=$out/lib/udev"
-    sconsFlags+=" python_libdir=$out/lib/${python3Packages.python.libPrefix}/site-packages"
+    sconsFlags+=" python_libdir=$out/${python3Packages.python.sitePackages}"
   '';
 
   # - leapfetch=no disables going online at build time to fetch leap-seconds
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index dd1a4c03e49f..4c663a1ad9f8 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.1.3";
+  version = "2024.1.6";
   components = {
     "3_day_blinds" = ps: with ps; [
     ];
@@ -226,7 +226,8 @@
       aqualogic
     ];
     "aquostv" = ps: with ps; [
-    ]; # missing inputs: sharp_aquos_rc
+      sharp-aquos-rc
+    ];
     "aranet" = ps: with ps; [
       aioesphomeapi
       aiohttp-cors
@@ -1675,6 +1676,7 @@
       aiohttp-zlib-ng
       fnv-hash-fast
       gcal-sync
+      ical
       oauth2client
       psutil-home-assistant
       sqlalchemy
@@ -4507,7 +4509,8 @@
       paho-mqtt
     ];
     "snmp" = ps: with ps; [
-    ]; # missing inputs: pysnmp-lextudio
+      pysnmp-lextudio
+    ];
     "snooz" = ps: with ps; [
       aioesphomeapi
       aiohttp-cors
@@ -4755,7 +4758,8 @@
       zeroconf
     ];
     "switchbot_cloud" = ps: with ps; [
-    ]; # missing inputs: switchbot-api
+      switchbot-api
+    ];
     "switcher_kis" = ps: with ps; [
       aioswitcher
     ];
@@ -5071,7 +5075,8 @@
       psutil-home-assistant
       python-kasa
       sqlalchemy
-    ]; # missing inputs: python-kasa.optional-dependencies.speedups
+    ]
+    ++ python-kasa.optional-dependencies.speedups;
     "tplink_lte" = ps: with ps; [
     ]; # missing inputs: tp-connected
     "tplink_omada" = ps: with ps; [
@@ -5254,7 +5259,8 @@
     "valve" = ps: with ps; [
     ];
     "vasttrafik" = ps: with ps; [
-    ]; # missing inputs: vtjp
+      vtjp
+    ];
     "velbus" = ps: with ps; [
       aiohttp-cors
       aiohttp-fast-url-dispatcher
@@ -6317,6 +6323,7 @@
     "smtp"
     "snapcast"
     "snips"
+    "snmp"
     "snooz"
     "solaredge"
     "solarlog"
@@ -6356,6 +6363,7 @@
     "switch_as_x"
     "switchbee"
     "switchbot"
+    "switchbot_cloud"
     "switcher_kis"
     "syncthing"
     "syncthru"
@@ -6396,6 +6404,7 @@
     "tomorrowio"
     "toon"
     "totalconnect"
+    "tplink"
     "tplink_omada"
     "traccar"
     "trace"
diff --git a/pkgs/servers/home-assistant/custom-components/default.nix b/pkgs/servers/home-assistant/custom-components/default.nix
index 310b4592b20f..c5c6ae60362e 100644
--- a/pkgs/servers/home-assistant/custom-components/default.nix
+++ b/pkgs/servers/home-assistant/custom-components/default.nix
@@ -6,6 +6,8 @@
 
   govee-lan = callPackage ./govee-lan {};
 
+  gpio = callPackage ./gpio {};
+
   miele = callPackage ./miele {};
 
   prometheus_sensor = callPackage ./prometheus_sensor {};
diff --git a/pkgs/servers/home-assistant/custom-components/gpio/default.nix b/pkgs/servers/home-assistant/custom-components/gpio/default.nix
new file mode 100644
index 000000000000..98cf56a3b52a
--- /dev/null
+++ b/pkgs/servers/home-assistant/custom-components/gpio/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildHomeAssistantComponent
+, fetchFromGitea
+, libgpiod
+}:
+
+buildHomeAssistantComponent rec {
+  owner = "raboof";
+  domain = "gpio";
+  version = "0.0.2";
+
+  src = fetchFromGitea {
+    domain = "codeberg.org";
+    owner = "raboof";
+    repo = "ha-gpio";
+    rev = "v${version}";
+    hash = "sha256-oito5W7uQYgxUQFIynW9G7jbIpmFONWC8FslRdX3gsE=";
+  };
+
+  propagatedBuildInputs = [ libgpiod ];
+
+  meta = with lib; {
+    description = "Home Assistant GPIO custom integration";
+    homepage = "https://codeberg.org/raboof/ha-gpio";
+    maintainers = with maintainers; [ raboof ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/servers/home-assistant/custom-lovelace-modules/light-entity-card/default.nix b/pkgs/servers/home-assistant/custom-lovelace-modules/light-entity-card/default.nix
index 38b071f16564..529e2f736bb2 100644
--- a/pkgs/servers/home-assistant/custom-lovelace-modules/light-entity-card/default.nix
+++ b/pkgs/servers/home-assistant/custom-lovelace-modules/light-entity-card/default.nix
@@ -5,13 +5,13 @@
 
 buildNpmPackage rec {
   pname = "light-entity-card";
-  version = "6.1.1";
+  version = "6.1.3";
 
   src = fetchFromGitHub {
     owner = "ljmerza";
     repo = "light-entity-card";
     rev = "refs/tags/${version}";
-    hash = "sha256-LoZt65oAw52NxVFgV9kVDr65CX5G6Xek2zDafDIxXmw=";
+    hash = "sha256-DtpNKcnxMWbKwfIwo9R2g2Vux9oAjTI0URixGC41qeA=";
   };
 
   npmDepsHash = "sha256-EZDTWtn3joikwiC5Kfn94+tXRDpBhMDHqHozfIkfbJ0=";
diff --git a/pkgs/servers/home-assistant/custom-lovelace-modules/mini-graph-card/default.nix b/pkgs/servers/home-assistant/custom-lovelace-modules/mini-graph-card/default.nix
index 60942d5f4ed2..68ec48997d5d 100644
--- a/pkgs/servers/home-assistant/custom-lovelace-modules/mini-graph-card/default.nix
+++ b/pkgs/servers/home-assistant/custom-lovelace-modules/mini-graph-card/default.nix
@@ -5,16 +5,16 @@
 
 buildNpmPackage rec {
   pname = "mini-graph-card";
-  version = "0.11.0";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "kalkih";
     repo = "mini-graph-card";
     rev = "refs/tags/v${version}";
-    hash = "sha256-AC4VawRtWTeHbFqDJ6oQchvUu08b4F3ManiPPXpyGPc=";
+    hash = "sha256-o87c1tqZAQDlzxsxVdPZj1ei37nx7dVIZDzoQIUkmPk=";
   };
 
-  npmDepsHash = "sha256-0ErOTkcCnMqMTsTkVL320SxZaET/izFj9GiNWC2tQtQ=";
+  npmDepsHash = "sha256-4GgFlSpqGxY7TCgyovqMSoLUin46bKN8tUQTdjv1eog=";
 
   installPhase = ''
     runHook preInstall
diff --git a/pkgs/servers/home-assistant/custom-lovelace-modules/mini-media-player/default.nix b/pkgs/servers/home-assistant/custom-lovelace-modules/mini-media-player/default.nix
index 96decc53eeb4..83f1dae71b9e 100644
--- a/pkgs/servers/home-assistant/custom-lovelace-modules/mini-media-player/default.nix
+++ b/pkgs/servers/home-assistant/custom-lovelace-modules/mini-media-player/default.nix
@@ -5,16 +5,16 @@
 
 buildNpmPackage rec {
   pname = "mini-media-player";
-  version = "1.16.8";
+  version = "1.16.9";
 
   src = fetchFromGitHub {
     owner = "kalkih";
     repo = "mini-media-player";
     rev = "v${version}";
-    hash = "sha256-mBxK/Y+gesaJwPYHB4P8FCkyfoV9lwC8jAzPZJV+B+M=";
+    hash = "sha256-tEG8xmqsPDssXmsCobHJoNK3qdRvBRe6FcTfm16r6+g=";
   };
 
-  npmDepsHash = "sha256-kuEgX5PX7RKhaJPzx+GW37TiSISvz+51tKGacvAMlfg=";
+  npmDepsHash = "sha256-pN6Hq0ECnmSZgKPoSfdAQsqNykUakLqRCTyLGVK57KQ=";
 
   installPhase = ''
     runHook preInstall
diff --git a/pkgs/servers/home-assistant/custom-lovelace-modules/mushroom/default.nix b/pkgs/servers/home-assistant/custom-lovelace-modules/mushroom/default.nix
index 6e8eab20b359..9c1df1db27db 100644
--- a/pkgs/servers/home-assistant/custom-lovelace-modules/mushroom/default.nix
+++ b/pkgs/servers/home-assistant/custom-lovelace-modules/mushroom/default.nix
@@ -5,16 +5,16 @@
 
 buildNpmPackage rec {
   pname = "mushroom";
-  version = "3.2.4";
+  version = "3.4.0";
 
   src = fetchFromGitHub {
     owner = "piitaya";
     repo = "lovelace-mushroom";
     rev = "v${version}";
-    hash = "sha256-UV/kqeVslB1lc1a9uvj8ocQKeAVINwo3aH8oHC9GLBQ=";
+    hash = "sha256-XVi+VPOVHfYBlIY9xN7x9Qe1bVw/qS9p8bcRZb0ksE0=";
   };
 
-  npmDepsHash = "sha256-p43ks6HM23LK3LOBOZA0uV+DTOj89/boBpjcXpbcw24=";
+  npmDepsHash = "sha256-XtSeO5+RaBCBLmq6paRX9KipkhcEdJhzrQeEDdysZE0=";
 
   installPhase = ''
     runHook preInstall
diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix
index bdd5ff488430..9585fa8c600b 100644
--- a/pkgs/servers/home-assistant/default.nix
+++ b/pkgs/servers/home-assistant/default.nix
@@ -46,6 +46,24 @@ let
         ];
       });
 
+      aiohttp = super.aiohttp.overridePythonAttrs (old: rec {
+        version = "3.9.3";
+        src = fetchFromGitHub {
+          owner = "aio-libs";
+          repo = "aiohttp";
+          rev = "refs/tags/v${version}";
+          hash = "sha256-dEeMHruFJ1o0J6VUJcpUk7LhEC8sV8hUKXoKcd618lE=";
+        };
+        nativeCheckInputs = with self; [
+          freezegun
+          gunicorn
+          pytest-mock
+          pytestCheckHook
+          python-on-whales
+          re-assert
+        ];
+      });
+
       aionotion = super.aionotion.overridePythonAttrs (oldAttrs: rec {
         version = "2023.05.5";
         src = fetchFromGitHub {
@@ -322,6 +340,16 @@ let
         };
       });
 
+      python-kasa = super.python-kasa.overridePythonAttrs (oldAttrs: rec {
+        version = "0.5.4";
+        src = fetchFromGitHub {
+          owner = "python-kasa";
+          repo = "python-kasa";
+          rev = "refs/tags/${version}";
+          hash = "sha256-wGPMrYaTtKkkNW88eyiiciFcBSTRqqChYi6e15WUCHo=";
+        };
+      });
+
       python-roborock = super.python-roborock.overridePythonAttrs (oldAttrs: rec {
         version = "0.38.0";
         src = fetchFromGitHub {
@@ -438,7 +466,7 @@ let
   extraBuildInputs = extraPackages python.pkgs;
 
   # Don't forget to run parse-requirements.py after updating
-  hassVersion = "2024.1.3";
+  hassVersion = "2024.1.6";
 
 in python.pkgs.buildPythonApplication rec {
   pname = "homeassistant";
@@ -456,13 +484,13 @@ in python.pkgs.buildPythonApplication rec {
     owner = "home-assistant";
     repo = "core";
     rev = "refs/tags/${version}";
-    hash = "sha256-Yrv7THolGNylSK1BKUvEzxL8uAQWkOBOWAX00fJBAuQ=";
+    hash = "sha256-zCpdOl16ZkO9mr0nYZg1mlnGNaPaX0RALFEDRHGfKvM=";
   };
 
   # Secondary source is pypi sdist for translations
   sdist = fetchPypi {
     inherit pname version;
-    hash = "sha256-Mj00aTkummsPpUtQ5iUG9xOJ4ra6Sfu8uklwroMXoy0=";
+    hash = "sha256-ipAw+vqePa5KA/Gqhl3WsQbzmzMXjmVx0NvbrM84SKg=";
   };
 
   nativeBuildInputs = with python.pkgs; [
@@ -476,6 +504,7 @@ in python.pkgs.buildPythonApplication rec {
     "cryptography"
     "home-assistant-bluetooth"
     "httpx"
+    "jinja2"
     "lru-dict"
     "orjson"
     "pyopenssl"
diff --git a/pkgs/servers/home-assistant/stubs.nix b/pkgs/servers/home-assistant/stubs.nix
index bd3c4154f067..6638a50683c4 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.1.3";
+  version = "2024.1.6";
   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-Bvjn4wqy0kxkL7rnfPwf2v2+Q3tGiTo8YuBv3WmQUc8=";
+    hash = "sha256-htFz3Cw5AvI1h2YvECOJdMA4N3JAQRRRhx1tfR4h5co=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/servers/home-automation/evcc/default.nix b/pkgs/servers/home-automation/evcc/default.nix
index 7be36afc6291..943286fa7a79 100644
--- a/pkgs/servers/home-automation/evcc/default.nix
+++ b/pkgs/servers/home-automation/evcc/default.nix
@@ -2,7 +2,6 @@
 , buildGoModule
 , fetchFromGitHub
 , fetchNpmDeps
-, fetchpatch
 , cacert
 , go
 , git
@@ -17,29 +16,20 @@
 
 buildGoModule rec {
   pname = "evcc";
-  version = "0.123.7";
+  version = "0.124.0";
 
   src = fetchFromGitHub {
     owner = "evcc-io";
     repo = "evcc";
     rev = version;
-    hash = "sha256-I8qcKrCuiUpDdsWDMiEZdo+PBkMELo5V6GW+nKFaD3Y=";
+    hash = "sha256-x6BsW4INahGFbFNprE1mZjlW/EoEMZgDIJACd9F+g6A=";
   };
 
-  patches = [
-    (fetchpatch {
-      # https://github.com/evcc-io/evcc/pull/11547
-      name = "evcc-mockgen.patch";
-      url = "https://github.com/evcc-io/evcc/commit/5ec02a9dba79a733f71fc02a9552eb01e4e08f0b.patch";
-      hash = "sha256-uxKdtwdhUcMFCMkG756OD9aSMP9rdOL4Tg0HBWwp3kw=";
-    })
-  ];
-
-  vendorHash = "sha256-FKF6+64mjrKgzFAb+O0QCURieOoRB//QNbpMFMcNG8s=";
+  vendorHash = "sha256-/TlbjyKGpVqkQAStx8QaAxpWsVYs0yxBMantqelYkhw=";
 
   npmDeps = fetchNpmDeps {
     inherit src;
-    hash = "sha256-a3AyqQ8GYP3g9KGbjtLHjHBrJGHg2sNjAQlMUa26pOY=";
+    hash = "sha256-Tl08gscv8WaMG4XfIVUWqj76xICWwUTBDK0VSs2kwMk=";
   };
 
   nativeBuildInputs = [
@@ -56,8 +46,6 @@ buildGoModule rec {
       mockgen
     ];
 
-    inherit patches;
-
     preBuild = ''
       make assets
     '';
diff --git a/pkgs/servers/homepage-dashboard/default.nix b/pkgs/servers/homepage-dashboard/default.nix
index ca35f31fc1fa..0a6a831414fa 100644
--- a/pkgs/servers/homepage-dashboard/default.nix
+++ b/pkgs/servers/homepage-dashboard/default.nix
@@ -13,13 +13,13 @@
 
 buildNpmPackage rec {
   pname = "homepage-dashboard";
-  version = "0.8.4";
+  version = "0.8.7";
 
   src = fetchFromGitHub {
     owner = "gethomepage";
     repo = "homepage";
     rev = "v${version}";
-    hash = "sha256-WjyOpR8DcjlJJgUkWortc0ApgpusknTSeVQlSa5rCRQ=";
+    hash = "sha256-H8BUyIsbn8UL6VuA2SEJXzJ77S/880rQIoNKFJNApqQ=";
   };
 
   npmDepsHash = "sha256-RC2Y4XZqO+mLEKQxq+j2ukZYi/uu9XIjYadxek9P+SM=";
diff --git a/pkgs/servers/honk/default.nix b/pkgs/servers/honk/default.nix
index cbe1d6d240e1..3dfbdeaaf8cd 100644
--- a/pkgs/servers/honk/default.nix
+++ b/pkgs/servers/honk/default.nix
@@ -8,11 +8,11 @@
 
 buildGoModule rec {
   pname = "honk";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchurl {
     url = "https://humungus.tedunangst.com/r/honk/d/honk-${version}.tgz";
-    hash = "sha256-kcrEg0KBdCaA4g8ivIgOWIGJVDCtY5rI4P7cp/ZyXe4=";
+    hash = "sha256-adBbJG45md7wUGzqYKA06RXzXul3Ltncrtz2eN4Ezqo=";
   };
   vendorHash = null;
 
diff --git a/pkgs/servers/http/apache-modules/mod_auth_mellon/default.nix b/pkgs/servers/http/apache-modules/mod_auth_mellon/default.nix
index 7a414096b98a..bc7d0d667b63 100644
--- a/pkgs/servers/http/apache-modules/mod_auth_mellon/default.nix
+++ b/pkgs/servers/http/apache-modules/mod_auth_mellon/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
 
   pname = "mod_auth_mellon";
-  version = "0.18.1";
+  version = "0.19.0";
 
   src = fetchFromGitHub {
     owner = "latchset";
     repo = "mod_auth_mellon";
     rev = "v${version}";
-    sha256 = "sha256-LIzJP+OAcrgNIo9KU2kMfZ8kjHC5qUg96kJw3qhqbvc=";
+    sha256 = "sha256-frSfhddLfEZ2xSI7/HPZkr5AiTJ9nnYmnJZY8aC3zwI=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config autoconf automake ];
diff --git a/pkgs/servers/http/apache-modules/mod_wsgi/default.nix b/pkgs/servers/http/apache-modules/mod_wsgi/default.nix
index 497cc5b1ea0a..01f953f7c80c 100644
--- a/pkgs/servers/http/apache-modules/mod_wsgi/default.nix
+++ b/pkgs/servers/http/apache-modules/mod_wsgi/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mod_wsgi";
-  version = "4.9.4";
+  version = "5.0.0";
 
   src = fetchFromGitHub {
     owner = "GrahamDumpleton";
     repo = "mod_wsgi";
     rev = version;
-    hash = "sha256-6rRHdgdTb94kqIpWJOJOwoIsaXb/c4XY3q331GwQyf0=";
+    hash = "sha256-/4swm4AYCN3xyz2+OH7XqH/dFC53wqGPZgEAdxZQvbs=";
   };
 
   buildInputs = [ apacheHttpd python3 ncurses ];
diff --git a/pkgs/servers/http/darkhttpd/default.nix b/pkgs/servers/http/darkhttpd/default.nix
index 81e963c5607b..57e1f8f1635c 100644
--- a/pkgs/servers/http/darkhttpd/default.nix
+++ b/pkgs/servers/http/darkhttpd/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "darkhttpd";
-  version = "1.14";
+  version = "1.15";
 
   src = fetchFromGitHub {
     owner = "emikulic";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-J/tjT3Rfhk5++jbmLBrZu9O4GgTBqeycuz82NliCBxw=";
+    sha256 = "sha256-G1lh3nHo2iU/dkiBykl5+DSIC2c6SCqqv42Bw0Frz3A=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/servers/http/jetty/11.x.nix b/pkgs/servers/http/jetty/11.x.nix
index 3196b24d7485..b6a1d4599c1e 100644
--- a/pkgs/servers/http/jetty/11.x.nix
+++ b/pkgs/servers/http/jetty/11.x.nix
@@ -1,4 +1,4 @@
 import ./common.nix {
-  version = "11.0.18";
-  hash = "sha256-HxtO2r6YWo6+MAYUgk7dNSPDqQZoyO9t/8NdI5pPkL4=";
+  version = "11.0.19";
+  hash = "sha256-CJpJSeIuFNiduCpiSoa52vYIncWn5/tMEgMVslJCcy0=";
 }
diff --git a/pkgs/servers/http/jetty/12.x.nix b/pkgs/servers/http/jetty/12.x.nix
index 4dba445b6b90..2115879b8a29 100644
--- a/pkgs/servers/http/jetty/12.x.nix
+++ b/pkgs/servers/http/jetty/12.x.nix
@@ -1,4 +1,4 @@
 import ./common.nix {
-  version = "12.0.3";
-  hash = "sha256-Z/jJKKzoqTPZnoFOMwbpSd/Kd1w+rXloKH+aw6aNrKs=";
+  version = "12.0.5";
+  hash = "sha256-TnKoDgn59t0m5dBuMISQPpQrIFcTsv77V/KXJabpsyA=";
 }
diff --git a/pkgs/servers/http/pomerium/default.nix b/pkgs/servers/http/pomerium/default.nix
index 7221011d2c38..e4443d93be20 100644
--- a/pkgs/servers/http/pomerium/default.nix
+++ b/pkgs/servers/http/pomerium/default.nix
@@ -14,15 +14,15 @@ let
 in
 buildGoModule rec {
   pname = "pomerium";
-  version = "0.24.0";
+  version = "0.25.0";
   src = fetchFromGitHub {
     owner = "pomerium";
     repo = "pomerium";
     rev = "v${version}";
-    hash = "sha256-MVyLHrVWpLVkvypMOZ7LvQJTGvawqb0/8fd2GbqC9Wk=";
+    hash = "sha256-mRAxqazTlNNPp54Q94TjhbCY+4Ul1Cw4VTCa1iuGOoY=";
   };
 
-  vendorHash = "sha256-j/6bssSkZu6KXtaNsYPJhqoepn3SDcoJwz4Dn6dYEME=";
+  vendorHash = "sha256-GdeZkKkENacc11FmEAFUfX9efInfhpv2Lz0/3CtixFQ=";
 
   ui = mkYarnPackage {
     inherit version;
@@ -122,7 +122,7 @@ buildGoModule rec {
     homepage = "https://pomerium.io";
     description = "Authenticating reverse proxy";
     license = licenses.asl20;
-    maintainers = with maintainers; [ lukegb ];
+    maintainers = with maintainers; [ lukegb devusb ];
     platforms = [ "x86_64-linux" "aarch64-linux" ];
   };
 }
diff --git a/pkgs/servers/http/router/default.nix b/pkgs/servers/http/router/default.nix
index 01f1415d0af8..f4903b2f31f7 100644
--- a/pkgs/servers/http/router/default.nix
+++ b/pkgs/servers/http/router/default.nix
@@ -2,6 +2,7 @@
 , callPackage
 , fetchFromGitHub
 , rustPlatform
+, cmake
 , pkg-config
 , protobuf
 , elfutils
@@ -9,18 +10,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "router";
-  version = "1.19.0";
+  version = "1.30.1";
 
   src = fetchFromGitHub {
     owner = "apollographql";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-IuS7NmlTNmHHnnSZ+YIbV6BnxJW2xprOQ5mkz5FuJEQ=";
+    sha256 = "sha256-mQtIjfXDcEy5HfZbWauL0NQLPneGq9EJt/yB8zMuhSU=";
   };
 
-  cargoHash = "sha256-yeb+4lgRDssjkEx6bYfGIbn4DJGpZZ/JDmuwFjQ+U+8=";
+  cargoHash = "sha256-XCDU6cXw+Wf5MR6m+HCI8/VFRRylMywktZbd5k7Lcwo=";
 
   nativeBuildInputs = [
+    cmake
     pkg-config
     protobuf
   ];
diff --git a/pkgs/servers/http/router/librusty_v8.nix b/pkgs/servers/http/router/librusty_v8.nix
index 3e3bf55c757e..1d5e334f2d07 100644
--- a/pkgs/servers/http/router/librusty_v8.nix
+++ b/pkgs/servers/http/router/librusty_v8.nix
@@ -9,11 +9,11 @@ let
   };
 in
 fetch_librusty_v8 {
-  version = "0.60.1";
+  version = "0.74.3";
   shas = {
-    x86_64-linux = "sha256-P8H+XJqrt9jdKM885L1epMldp+stwmEw+0Gtd2x3r4g=";
-    aarch64-linux = "sha256-frHpBP2pL3o4efFLHP2r3zsWJrNT93yYu2Qkxv+7m8Y=";
-    x86_64-darwin = "sha256-taewoYBkyikqWueLSD9dW1EDjzkV68Xplid1UaLZgRM=";
-    aarch64-darwin = "sha256-s2YEVbuYpiT/qrmE37aXk13MetrnJo6l+s1Q2y6b5kU=";
+    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=";
   };
 }
diff --git a/pkgs/servers/icingaweb2/default.nix b/pkgs/servers/icingaweb2/default.nix
index 83d482e251a1..25f1a419e0e3 100644
--- a/pkgs/servers/icingaweb2/default.nix
+++ b/pkgs/servers/icingaweb2/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "icingaweb2";
-  version = "2.11.4";
+  version = "2.12.1";
 
   src = fetchFromGitHub {
     owner = "Icinga";
     repo = "icingaweb2";
     rev = "v${version}";
-    hash = "sha256-UMC1puEM0PhIu+lJouOj81tI/E6fz1PzPN0FU7TNwTg=";
+    hash = "sha256-j101HsFvJZrzpK395TF4seztYfCCQKnqrpEpGj5xrtQ=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/icingaweb2/ipl.nix b/pkgs/servers/icingaweb2/ipl.nix
index b9623f47c91f..021876fa1d29 100644
--- a/pkgs/servers/icingaweb2/ipl.nix
+++ b/pkgs/servers/icingaweb2/ipl.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "icingaweb2-ipl";
-  version = "0.13.0";
+  version = "0.13.1";
 
   src = fetchFromGitHub {
     owner = "Icinga";
     repo = "icinga-php-library";
     rev = "v${version}";
-    hash = "sha256-U3SzjjYoalejPs5hqZP2QyvlKdgdpWk9o0DkFGtWC2w=";
+    hash = "sha256-4f0Xx4mnc+M2i97/TFQeg2rZaJUpKkx1SvpbLWmSYNo=";
   };
 
   installPhase = ''
diff --git a/pkgs/servers/icingaweb2/thirdparty.nix b/pkgs/servers/icingaweb2/thirdparty.nix
index cc3f2c502ad4..552842967fde 100644
--- a/pkgs/servers/icingaweb2/thirdparty.nix
+++ b/pkgs/servers/icingaweb2/thirdparty.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "icingaweb2-thirdparty";
-  version = "0.12.0";
+  version = "0.12.1";
 
   src = fetchFromGitHub {
     owner = "Icinga";
     repo = "icinga-php-thirdparty";
     rev = "v${version}";
-    sha256 = "sha256-ZKERh8lssN5TF6W2eUY1j+kSslxOmGj72dV45a23o7Q=";
+    sha256 = "sha256-T67DcsHVf3yDQveNtSPqLoOOPuT4ThkUSCJ9aCSVaIc=";
   };
 
   installPhase = ''
diff --git a/pkgs/servers/invidious/versions.json b/pkgs/servers/invidious/versions.json
index 24177680d770..73915248c706 100644
--- a/pkgs/servers/invidious/versions.json
+++ b/pkgs/servers/invidious/versions.json
@@ -4,9 +4,9 @@
     "sha256": "sha256-EU6T9yQCdOLx98Io8o01rEsgxDFF/Xoy42LgPopD2/A="
   },
   "invidious": {
-    "rev": "9e8baa35397671aabfc77f6b912c9f1829be52b6",
-    "sha256": "sha256-Mbdh/YMTOamYLZcQ8afKREMC/wTutVnkx8Q0ON8wovQ=",
-    "version": "unstable-2023-12-06"
+    "rev": "c005ada48723808e507d0a4d5a3363a1c14a4f07",
+    "sha256": "sha256-KbnBdAAjScwKV4uUzyBXAQx2C7MqCdCM3gSvgNIzKAU=",
+    "version": "unstable-2024-01-29"
   },
   "lsquic": {
     "sha256": "sha256-hG8cUvhbCNeMOsKkaJlgGpzUrIx47E/WhmPIdI5F3qM=",
diff --git a/pkgs/servers/jackett/default.nix b/pkgs/servers/jackett/default.nix
index 7d3000b409ab..0b951900e878 100644
--- a/pkgs/servers/jackett/default.nix
+++ b/pkgs/servers/jackett/default.nix
@@ -9,13 +9,13 @@
 
 buildDotnetModule rec {
   pname = "jackett";
-  version = "0.21.1468";
+  version = "0.21.1658";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    hash = "sha512-URVuhMjls3M453ogzrmZmditqOJAuM46erckUd75NKwp/44bPlZgoHvorNeuOxOwnEafYDoo+ExuWv9EiYAjUA==";
+    hash = "sha512-nhtCvuOoRiQxsuE4UCa2PdYNp0OzYRHPEwTIFGuRKIgrEGuGUECGGBHKDNCnOmMiGyxm495r+sKtHqTfhQSUng==";
   };
 
   projectFile = "src/Jackett.Server/Jackett.Server.csproj";
diff --git a/pkgs/servers/jicofo/default.nix b/pkgs/servers/jicofo/default.nix
index d8d85b8f6599..b567c701ff7e 100644
--- a/pkgs/servers/jicofo/default.nix
+++ b/pkgs/servers/jicofo/default.nix
@@ -2,10 +2,10 @@
 
 let
   pname = "jicofo";
-  version = "1.0-1059";
+  version = "1.0-1062";
   src = fetchurl {
     url = "https://download.jitsi.org/stable/${pname}_${version}-1_all.deb";
-    sha256 = "NlBRUI4j/5njFS/TtBTsaV/5ILFtqWd6SF+FqpGp1Uk=";
+    sha256 = "bU7h7kjs2yu1O+qhKcs6C63DH/omo/R1+Ms40KHkjHU=";
   };
 in
 stdenv.mkDerivation {
diff --git a/pkgs/servers/jitsi-videobridge/default.nix b/pkgs/servers/jitsi-videobridge/default.nix
index 96f5190e18f1..06aa43e5fce3 100644
--- a/pkgs/servers/jitsi-videobridge/default.nix
+++ b/pkgs/servers/jitsi-videobridge/default.nix
@@ -2,10 +2,10 @@
 
 let
   pname = "jitsi-videobridge2";
-  version = "2.3-64-g719465d1";
+  version = "2.3-67-gb2d4229f";
   src = fetchurl {
     url = "https://download.jitsi.org/stable/${pname}_${version}-1_all.deb";
-    sha256 = "zZYBSHaMhGzJfONyEUkPUCalxLyB/EjqLqIgJPg2Z8o=";
+    sha256 = "aE9QFzOJk3jMzNTEitcaBZVKpa1IJ55JahLfNDCujJI=";
   };
 in
 stdenv.mkDerivation {
diff --git a/pkgs/servers/keycloak/all-plugins.nix b/pkgs/servers/keycloak/all-plugins.nix
index f1e08dd46df9..f2f1117f2d84 100644
--- a/pkgs/servers/keycloak/all-plugins.nix
+++ b/pkgs/servers/keycloak/all-plugins.nix
@@ -5,4 +5,5 @@
   scim-keycloak-user-storage-spi = callPackage ./scim-keycloak-user-storage-spi {};
   keycloak-discord = callPackage ./keycloak-discord {};
   keycloak-metrics-spi = callPackage ./keycloak-metrics-spi {};
+  keycloak-restrict-client-auth = callPackage ./keycloak-restrict-client-auth {};
 }
diff --git a/pkgs/servers/keycloak/default.nix b/pkgs/servers/keycloak/default.nix
index 646d2d83ed1c..16e08aa82962 100644
--- a/pkgs/servers/keycloak/default.nix
+++ b/pkgs/servers/keycloak/default.nix
@@ -18,11 +18,11 @@ let
   '';
 in stdenv.mkDerivation rec {
   pname = "keycloak";
-  version = "23.0.4";
+  version = "23.0.6";
 
   src = fetchzip {
     url = "https://github.com/keycloak/keycloak/releases/download/${version}/keycloak-${version}.zip";
-    hash = "sha256-qvgYH/e+V++Tk39sgELTiUqyoEbBuUoCRNaCiM8ZuoA=";
+    hash = "sha256-Sw+6UloKSvYjkm7qYROmsZxKk/sky4DKvgupo+S61Q8=";
   };
 
   nativeBuildInputs = [ makeWrapper jre ];
diff --git a/pkgs/servers/keycloak/keycloak-restrict-client-auth/default.nix b/pkgs/servers/keycloak/keycloak-restrict-client-auth/default.nix
new file mode 100644
index 000000000000..bf5d38bca013
--- /dev/null
+++ b/pkgs/servers/keycloak/keycloak-restrict-client-auth/default.nix
@@ -0,0 +1,28 @@
+{ maven, lib, fetchFromGitHub }:
+
+maven.buildMavenPackage rec {
+  pname = "keycloak-restrict-client-auth";
+  version = "23.0.0";
+
+  src = fetchFromGitHub {
+    owner = "sventorben";
+    repo = "keycloak-restrict-client-auth";
+    rev = "v${version}";
+    hash = "sha256-JA3DvLdBKyn2VE1pYSCcRV9Cl7ZAWsRG5MAp548Rl+g=";
+  };
+
+  mvnHash = "sha256-W1YvX1P/mshGYoTUO5XMlOcpu2KiujwLludaC3miak4=";
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm444 -t "$out" target/keycloak-restrict-client-auth.jar
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/sventorben/keycloak-restrict-client-auth";
+    description = "A Keycloak authenticator to restrict authorization on clients";
+    license = licenses.mit;
+    maintainers = with maintainers; [ leona ];
+  };
+}
diff --git a/pkgs/servers/knxd/default.nix b/pkgs/servers/knxd/default.nix
index ad484a181c4e..9d92461d25ab 100644
--- a/pkgs/servers/knxd/default.nix
+++ b/pkgs/servers/knxd/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "knxd";
-  version = "0.14.59";
+  version = "0.14.60";
 
   src = fetchFromGitHub {
     owner = "knxd";
     repo = "knxd";
     rev = version;
-    hash = "sha256-m3119aD23XTViQJ2s7hwnJZ1ct4bcEFWuyUQajmqySQ=";
+    hash = "sha256-djcp3b0OSnyrNOkvaacjQ3Nw9H54HOfKeBo26tkz/Ew=";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/komga/default.nix b/pkgs/servers/komga/default.nix
index d86c7eff86c3..994428abb1b8 100644
--- a/pkgs/servers/komga/default.nix
+++ b/pkgs/servers/komga/default.nix
@@ -8,11 +8,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "komga";
-  version = "1.10.0";
+  version = "1.10.3";
 
   src = fetchurl {
     url = "https://github.com/gotson/${pname}/releases/download/${version}/${pname}-${version}.jar";
-    sha256 = "sha256-jTPG4QLDOPcdyR6v2z9MMeOsHWiK06Ri6xvFXAMuT44=";
+    sha256 = "sha256-t/nwqEVrsBeELJLLtizDI737VnODRsuPfQlnDUBfoKc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/servers/limesurvey/default.nix b/pkgs/servers/limesurvey/default.nix
index 40488aff18a6..791106ca3b0f 100644
--- a/pkgs/servers/limesurvey/default.nix
+++ b/pkgs/servers/limesurvey/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "limesurvey";
-  version = "6.1.2+230606";
+  version = "6.4.1+240108";
 
   src = fetchFromGitHub {
     owner = "LimeSurvey";
     repo = "LimeSurvey";
     rev = version;
-    hash = "sha256-a89Kdr9XV1TSCoWxYrU0j8ec7rAcIlU/bgLtRjdzqbg=";
+    hash = "sha256-Cpf8X6igF7LdRbFihGudFmx/8aY0Kf0BE7jHnEF1DYA=";
   };
 
   phpConfig = writeText "config.php" ''
diff --git a/pkgs/servers/maddy/default.nix b/pkgs/servers/maddy/default.nix
index 06094dde8bbc..b8f3000904c2 100644
--- a/pkgs/servers/maddy/default.nix
+++ b/pkgs/servers/maddy/default.nix
@@ -11,16 +11,16 @@
 
 buildGoModule rec {
   pname = "maddy";
-  version = "0.7.0";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "foxcpp";
     repo = "maddy";
     rev = "v${version}";
-    sha256 = "sha256-EMw07yTFP0aBSuGDWivB8amuxWLFHhYV6J9faTEW5z4=";
+    sha256 = "sha256-jVlIjeBvxc82GQn8vW2RqcAErxZqftGj32d+IbBxQxY=";
   };
 
-  vendorHash = "sha256-LyfkETZPkhJKN8CEivNp7Se4IBpzyAtmCM1xil4n2po=";
+  vendorHash = "sha256-bSBk68w6T/Wy5klj5oC/ZW5TqDESG3mW9cIQ3auNmCk=";
 
   tags = [ "libpam" ];
 
diff --git a/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix b/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix
index c82e919e7dc2..8f6ccf2fb66d 100644
--- a/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix
+++ b/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchFromGitHub, autoconf, automake, sqlite, pkg-config, dovecot, libtool, xapian, icu64 }:
 stdenv.mkDerivation rec {
   pname = "dovecot-fts-xapian";
-  version = "1.5.7";
+  version = "1.5.8";
 
   src = fetchFromGitHub {
     owner = "grosjo";
     repo = "fts-xapian";
     rev = version;
-    sha256 = "sha256-Kxc5mmnp4HBuaPeQUwDLYj3ga7PeF0WJFJFRwhNBZA4=";
+    sha256 = "sha256-K4ZtiKvTlFtqNQ+geFQnssaNIYp5pDmWYwdTQvwb8wc=";
   };
 
   buildInputs = [ dovecot xapian icu64 sqlite ];
diff --git a/pkgs/servers/mail/mailman/0001-Disable-broken-test_help_output-testcase.patch b/pkgs/servers/mail/mailman/0001-Disable-broken-test_help_output-testcase.patch
deleted file mode 100644
index 3b6094bd02f0..000000000000
--- a/pkgs/servers/mail/mailman/0001-Disable-broken-test_help_output-testcase.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 1a914beafe2b00770213fa4d146ffad9d897dc0c Mon Sep 17 00:00:00 2001
-From: Maximilian Bosch <maximilian@mbosch.me>
-Date: Sat, 12 Aug 2023 12:27:25 +0200
-Subject: [PATCH] Disable broken `test_help_output` testcase
-
-The assertion fails, but checking for the exact whereabouts of helptext
-doesn't bring too much value anyways, so it seems OK to just skip the
-test.
----
- .../tests/commands/test_attachments_to_file.py      | 13 -------------
- 1 file changed, 13 deletions(-)
-
-diff --git a/hyperkitty/tests/commands/test_attachments_to_file.py b/hyperkitty/tests/commands/test_attachments_to_file.py
-index b3e61f3a..8db7c4b2 100644
---- a/hyperkitty/tests/commands/test_attachments_to_file.py
-+++ b/hyperkitty/tests/commands/test_attachments_to_file.py
-@@ -83,16 +83,3 @@ class CommandTestCase(TestCase):
-             self.assertEqual(fp.getvalue(), """\
- 2 attachments moved.
- """)
--
--    def test_help_output(self):
--        with io.StringIO() as fp, redirect_stdout(fp):
--            with suppress(SystemExit):
--                call_command('attachments_to_file', '--help')
--
--            output_value = fp.getvalue()
--            assert (
--                "HYPERKITTY_ATTACHMENT_FOLDER" in output_value
--                and "-c CHUNK_SIZE" in output_value
--                and "-c CHUNK_SIZE, --chunk-size CHUNK_SIZE" in output_value
--                and "-v {0,1}, --verbosity {0,1}" in output_value
--            )
--- 
-2.40.1
-
diff --git a/pkgs/servers/mail/mailman/hyperkitty.nix b/pkgs/servers/mail/mailman/hyperkitty.nix
index 9c335f11820d..89195e593737 100644
--- a/pkgs/servers/mail/mailman/hyperkitty.nix
+++ b/pkgs/servers/mail/mailman/hyperkitty.nix
@@ -1,35 +1,24 @@
 { lib
 , python3
 , fetchPypi
-, fetchpatch
+, nixosTests
 }:
 
 with python3.pkgs;
 
 buildPythonPackage rec {
   pname = "HyperKitty";
-  version = "1.3.7";
-  disabled = pythonOlder "3.8";
+  version = "1.3.8";
+  disabled = pythonOlder "3.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-TXSso+wwVGdBymIzns5yOS4pj1EdConmm87b/NyBAss=";
+    hash = "sha256-j//Mrbos/g1BGenHRmOe5GvAza5nu/mchAgdLQu9h7g=";
   };
 
-  patches = [
-    ./0001-Disable-broken-test_help_output-testcase.patch
-    (fetchpatch {
-      url = "https://gitlab.com/mailman/hyperkitty/-/commit/5bb394662882bfc73c3e877458da44343aa06922.patch";
-      hash = "sha256-9vcY6nu3txDftH6aYpdh9qSrLzZceGjVFxuD1Ux18gw=";
-    })
-  ];
-
   postPatch = ''
     # isort is a development dependency
     sed -i '/isort/d' setup.py
-    # Fix mistune imports for mistune >= 2.0.0
-    # https://gitlab.com/mailman/hyperkitty/-/merge_requests/379
-    sed -i 's/mistune.scanner/mistune.util/' hyperkitty/lib/renderer.py
   '';
 
   propagatedBuildInputs = [
@@ -55,6 +44,7 @@ buildPythonPackage rec {
   # HyperKitty so they're not included for people who don't need them.
   nativeCheckInputs = [
     beautifulsoup4
+    elastic-transport
     elasticsearch
     mock
     whoosh
@@ -66,7 +56,10 @@ buildPythonPackage rec {
       --settings=hyperkitty.tests.settings_test hyperkitty
   '';
 
+  passthru.tests = { inherit (nixosTests) mailman; };
+
   meta = {
+    changelog = "https://docs.mailman3.org/projects/hyperkitty/en/latest/news.html";
     homepage = "https://www.gnu.org/software/mailman/";
     description = "Archiver for GNU Mailman v3";
     license = lib.licenses.gpl3;
diff --git a/pkgs/servers/mail/mailman/mailman-hyperkitty.nix b/pkgs/servers/mail/mailman/mailman-hyperkitty.nix
index 13f01c9919f0..dfec900b0214 100644
--- a/pkgs/servers/mail/mailman/mailman-hyperkitty.nix
+++ b/pkgs/servers/mail/mailman/mailman-hyperkitty.nix
@@ -2,6 +2,7 @@
 , python3
 , fetchPypi
 , mailman
+, nixosTests
 }:
 
 with python3.pkgs;
@@ -39,6 +40,8 @@ buildPythonPackage rec {
     "mailman_hyperkitty"
   ];
 
+  passthru.tests = { inherit (nixosTests) mailman; };
+
   meta = with lib; {
     description = "Mailman archiver plugin for HyperKitty";
     homepage = "https://gitlab.com/mailman/mailman-hyperkitty";
diff --git a/pkgs/servers/mail/mailman/package.nix b/pkgs/servers/mail/mailman/package.nix
index 6edfeacf8999..f38a182461ac 100644
--- a/pkgs/servers/mail/mailman/package.nix
+++ b/pkgs/servers/mail/mailman/package.nix
@@ -4,18 +4,19 @@
 , fetchPypi
 , postfix
 , lynx
+, nixosTests
 }:
 
 with python3.pkgs;
 
 buildPythonPackage rec {
   pname = "mailman";
-  version = "3.3.8";
+  version = "3.3.9";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-g6wH7lXqK0yJ8AxO1HFxMvBicBJ9NGWlPePFyxl9Qc4=";
+    hash = "sha256-GblXI6IwkLl+V1gEbMAe1baVyZOHMaYaYITXcTkp2Mo=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -51,18 +52,10 @@ buildPythonPackage rec {
       url = "https://gitlab.com/mailman/mailman/-/commit/9613154f3c04fa2383fbf017031ef263c291418d.patch";
       sha256 = "0vyw87s857vfxbf7kihwb6w094xyxmxbi1bpdqi3ybjamjycp55r";
     })
-    (fetchpatch {
-      url = "https://gitlab.com/mailman/mailman/-/commit/5e4431af6bb7d672a7ed7e3329f8fac7812d47f8.patch";
-      excludes = [ ".gitlab-ci.yml" ];
-      hash = "sha256-y2AE9hU4Z1BpBlJywxMWiuRvltWkk+R9YgMkpemvlIo=";
-    })
     ./log-stderr.patch
   ];
 
   postPatch = ''
-    substituteInPlace setup.py \
-      --replace "alembic>=1.6.2,<1.7" "alembic>=1.6.2"
-
     substituteInPlace src/mailman/config/postfix.cfg \
       --replace /usr/sbin/postmap ${postfix}/bin/postmap
     substituteInPlace src/mailman/config/schema.cfg \
@@ -78,6 +71,8 @@ buildPythonPackage rec {
   # 'runner' scripts.
   dontWrapPythonPrograms = true;
 
+  passthru.tests = { inherit (nixosTests) mailman; };
+
   meta = {
     homepage = "https://www.gnu.org/software/mailman/";
     description = "Free software for managing electronic mail discussion and newsletter lists";
diff --git a/pkgs/servers/mail/mailman/postorius.nix b/pkgs/servers/mail/mailman/postorius.nix
index 14a31b59da4c..1f3171f18a7f 100644
--- a/pkgs/servers/mail/mailman/postorius.nix
+++ b/pkgs/servers/mail/mailman/postorius.nix
@@ -1,22 +1,24 @@
-{ lib, python3, fetchPypi }:
+{ lib, python3, fetchPypi, nixosTests }:
 
 with python3.pkgs;
 
 buildPythonPackage rec {
   pname = "postorius";
-  version = "1.3.8";
+  version = "1.3.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-1mSt+PVx3xUJDc5JwrCmKiRNIDwbsjjbM2Fi5Sgz6h8=";
+    hash = "sha256-GmbIqO+03LgbUxJ1nTStXrYN3t2MfvzbeYRAipfTW1o=";
   };
 
-  propagatedBuildInputs = [ django-mailman3 readme_renderer ];
+  propagatedBuildInputs = [ django-mailman3 readme-renderer ];
   nativeCheckInputs = [ beautifulsoup4 vcrpy mock ];
 
   # Tries to connect to database.
   doCheck = false;
 
+  passthru.tests = { inherit (nixosTests) mailman; };
+
   meta = with lib; {
     homepage = "https://docs.mailman3.org/projects/postorius";
     description = "Web-based user interface for managing GNU Mailman";
diff --git a/pkgs/servers/mail/mailman/python.nix b/pkgs/servers/mail/mailman/python.nix
index e5eb2251b5e1..ebac15e443bf 100644
--- a/pkgs/servers/mail/mailman/python.nix
+++ b/pkgs/servers/mail/mailman/python.nix
@@ -18,14 +18,6 @@ python3.override {
         [1] 72a14ea563a3f5bf85db659349a533fe75a8b0ce
         [2] f931bc81d63f5cfda55ac73d754c87b3fd63b291
       */
-      elasticsearch = super.elasticsearch.overridePythonAttrs ({ pname, ... }: rec {
-        version = "7.17.9";
-        src = fetchPypi {
-          inherit pname version;
-          hash = "sha256-ZsTs4q3+fMEg4rameYof1cd3rs+C7sObuVzvfPx+orM=";
-        };
-      });
-
       # https://gitlab.com/mailman/hyperkitty/-/merge_requests/541
       mistune = super.mistune.overridePythonAttrs (old: rec {
         version = "2.0.5";
@@ -37,11 +29,12 @@ python3.override {
       });
 
       # django-q tests fail with redis 5.0.0.
+      # https://gitlab.com/mailman/hyperkitty/-/issues/493
       redis = super.redis.overridePythonAttrs ({ pname, ... }: rec {
-        version = "4.5.4";
+        version = "4.6.0";
         src = fetchPypi {
           inherit pname version;
-          hash = "sha256-c+w12k2iZ9aEfkf2hzD91fYuLKaePvWIXGp4qTdMOJM=";
+          hash = "sha256-WF3FFrnrBCphnvCjnD19Vf6BvbTfCaUsnN3g0Hvxqn0=";
         };
       });
     })
diff --git a/pkgs/servers/mail/mailman/web.nix b/pkgs/servers/mail/mailman/web.nix
index 21fa64085d57..d347f434ab50 100644
--- a/pkgs/servers/mail/mailman/web.nix
+++ b/pkgs/servers/mail/mailman/web.nix
@@ -1,26 +1,20 @@
-{ lib, python3, fetchPypi, fetchpatch
+{ lib, python3, fetchPypi
 , sassc, hyperkitty, postorius
+, nixosTests
 }:
 
 with python3.pkgs;
 
 buildPythonPackage rec {
   pname = "mailman-web";
-  version = "0.0.6";
+  version = "0.0.8";
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-UWdqrcx529r6kwgf0YEHiDrpZlGoUBR6OdYtHMTPMGY=";
+    hash = "sha256-nN/L+X2Rvm6rqkscns4Tn2TAr59O5lCJObvcJp6M0+Q=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://gitlab.com/mailman/mailman-web/-/commit/448bba249d39c09c0cef5e059415cc07a3ce569c.patch";
-      hash = "sha256-rs1vaV4YyLyJ0+EGY70CirvjArpGQr29DOTvgj68wgs=";
-    })
-  ];
-
   postPatch = ''
     # Django is depended on transitively by hyperkitty and postorius,
     # and mailman_web has overly restrictive version bounds on it, so
@@ -45,6 +39,8 @@ buildPythonPackage rec {
     "--suffix PATH : ${lib.makeBinPath [ sassc ]}"
   ];
 
+  passthru.tests = { inherit (nixosTests) mailman; };
+
   meta = with lib; {
     homepage = "https://gitlab.com/mailman/mailman-web";
     description = "Django project for Mailman 3 web interface";
diff --git a/pkgs/servers/mail/mailpit/default.nix b/pkgs/servers/mail/mailpit/default.nix
index 5f88dd97528d..55be7d208822 100644
--- a/pkgs/servers/mail/mailpit/default.nix
+++ b/pkgs/servers/mail/mailpit/default.nix
@@ -12,13 +12,13 @@
 }:
 
 let
-  version = "1.12.1";
+  version = "1.13.1";
 
   src = fetchFromGitHub {
     owner = "axllent";
     repo = "mailpit";
     rev = "v${version}";
-    hash = "sha256-Ez34JC8QhOCVS7itZAOtYcspbM9MjtZa+1BP2FEIt8U=";
+    hash = "sha256-50amJ4pFNVcV7WT303ObPJiCx6tNYWNks3oFnexHRoA=";
   };
 
   # Separate derivation, because if we mix this in buildGoModule, the separate
@@ -30,7 +30,7 @@ let
 
     npmDeps = fetchNpmDeps {
       inherit src;
-      hash = "sha256-TjlkWozbZlDOsCOdZnOM6axkBYi5G2BCOlvSY4dZg4c=";
+      hash = "sha256-KleFztYmbgIPg/3acXJTg1J5uyWsVZUQ0caK+hT1uxQ=";
     };
 
     env = lib.optionalAttrs (stdenv.isDarwin && stdenv.isx86_64) {
@@ -56,7 +56,7 @@ buildGoModule {
   pname = "mailpit";
   inherit src version;
 
-  vendorHash = "sha256-mJWSCqgIPChMR1iFS2rXXOCG+lF1HekmmAjwPPa140g=";
+  vendorHash = "sha256-iNNs9vLvOKqVpLKt65wVmffgq1l/9KOtnbRPg+2kbsM=";
 
   CGO_ENABLED = 0;
 
diff --git a/pkgs/servers/mail/postfix/default.nix b/pkgs/servers/mail/postfix/default.nix
index 4278abfb8248..61b69359d3c8 100644
--- a/pkgs/servers/mail/postfix/default.nix
+++ b/pkgs/servers/mail/postfix/default.nix
@@ -25,11 +25,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "postfix";
-  version = "3.8.4";
+  version = "3.8.5";
 
   src = fetchurl {
     url = "https://de.postfix.org/ftpmirror/official/${pname}-${version}.tar.gz";
-    hash = "sha256-b1hIxdi2p9LFrwqfdbC9PxA0UekSWRRkq4Z/3gheYjY=";
+    hash = "sha256-8+gnorLkEDWa0l0xNBlwQ0qwfjYTn5ou+TmBsOxWTIU=";
   };
 
   nativeBuildInputs = [ makeWrapper m4 ];
diff --git a/pkgs/servers/mail/rspamd/default.nix b/pkgs/servers/mail/rspamd/default.nix
index 5167c8aab8de..6cf520a1a54c 100644
--- a/pkgs/servers/mail/rspamd/default.nix
+++ b/pkgs/servers/mail/rspamd/default.nix
@@ -27,13 +27,13 @@ assert withHyperscan -> stdenv.isx86_64;
 
 stdenv.mkDerivation rec {
   pname = "rspamd";
-  version = "3.7.5";
+  version = "3.8.1";
 
   src = fetchFromGitHub {
     owner = "rspamd";
     repo = "rspamd";
     rev = version;
-    hash = "sha256-Y9Xq6mEq52AeTBGMQOh4jO4BUcSS9YfCs1/Wka5zkK4=";
+    hash = "sha256-XbsebaplhLWPXpdwZyMbxsRyuvaBHtO2WtMoFzN7yXA=";
   };
 
   hardeningEnable = [ "pie" ];
diff --git a/pkgs/servers/mastodon/default.nix b/pkgs/servers/mastodon/default.nix
index 25b6fc41a07b..dcd2a6dcae35 100644
--- a/pkgs/servers/mastodon/default.nix
+++ b/pkgs/servers/mastodon/default.nix
@@ -22,18 +22,6 @@ stdenv.mkDerivation rec {
     name = "${pname}-gems-${version}";
     inherit version gemset ruby;
     gemdir = src;
-    # This fix (copied from https://github.com/NixOS/nixpkgs/pull/76765) replaces the gem
-    # symlinks with directories, resolving this error when running rake:
-    #   /nix/store/451rhxkggw53h7253izpbq55nrhs7iv0-mastodon-gems-3.0.1/lib/ruby/gems/2.6.0/gems/bundler-1.17.3/lib/bundler/settings.rb:6:in `<module:Bundler>': uninitialized constant Bundler::Settings (NameError)
-    postBuild = ''
-      for gem in "$out"/lib/ruby/gems/*/gems/*; do
-        cp -a "$gem/" "$gem.new"
-        rm "$gem"
-        # needed on macOS, otherwise the mv yields permission denied
-        chmod +w "$gem.new"
-        mv "$gem.new" "$gem"
-      done
-    '';
   };
 
   mastodonModules = stdenv.mkDerivation {
diff --git a/pkgs/servers/mastodon/gemset.nix b/pkgs/servers/mastodon/gemset.nix
index ba743e6e37c7..537b865fc649 100644
--- a/pkgs/servers/mastodon/gemset.nix
+++ b/pkgs/servers/mastodon/gemset.nix
@@ -1870,10 +1870,10 @@
     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"];
@@ -2139,10 +2139,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x4dwx2shx0p7lsms97r85r7ji7zv57bjy3i1kmcpxc8bxvrr67c";
+      sha256 = "0i2vaww6qcazj0ywva1plmjnj6rk23b01szswc5jhcq7s2cikd1y";
       type = "gem";
     };
-    version = "6.3.1";
+    version = "6.4.2";
   };
   pundit = {
     dependencies = ["activesupport"];
diff --git a/pkgs/servers/mastodon/source.nix b/pkgs/servers/mastodon/source.nix
index 989bcaa6b3c6..06c07c09df5b 100644
--- a/pkgs/servers/mastodon/source.nix
+++ b/pkgs/servers/mastodon/source.nix
@@ -1,7 +1,7 @@
 # This file was generated by pkgs.mastodon.updateScript.
 { fetchFromGitHub, applyPatches, patches ? [] }:
 let
-  version = "4.2.3";
+  version = "4.2.5";
 in
 (
   applyPatches {
@@ -9,7 +9,7 @@ in
       owner = "mastodon";
       repo = "mastodon";
       rev = "v${version}";
-      hash = "sha256-e8O4kxsrHf+wEtl4S57xIL1VEvhUSjyCbmz4r9p8Zhw=";
+      hash = "sha256-dgC5V/CVE9F1ORTjPWUWc/JVcWCEj/pb4eWpDV0WliY=";
     };
     patches = patches ++ [];
   }) // {
diff --git a/pkgs/servers/matrix-synapse/default.nix b/pkgs/servers/matrix-synapse/default.nix
index 9f542ac98e76..b1ad448f0971 100644
--- a/pkgs/servers/matrix-synapse/default.nix
+++ b/pkgs/servers/matrix-synapse/default.nix
@@ -17,20 +17,20 @@ let
 in
 python3.pkgs.buildPythonApplication rec {
   pname = "matrix-synapse";
-  version = "1.99.0";
+  version = "1.100.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "element-hq";
     repo = "synapse";
     rev = "v${version}";
-    hash = "sha256-NS0in7zUkIS+fI5gQEua9y1UXspEHWNCntyZHZCtfPg=";
+    hash = "sha256-6YK/VV0ELvMJoA5ipmoB4S13HqA0UEOnQ6JbQdlkYWU=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-FQhHpbp8Rkkqp6Ngly/HP8iWGlWh5CDaztgAwKB/afI=";
+    hash = "sha256-oXIraayA6Dd8aYirRhM9Av8x7bj+WZI6o7dEr9OCtdk=";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/matrix-synapse/matrix-hookshot/package.json b/pkgs/servers/matrix-synapse/matrix-hookshot/package.json
index 0ff87211985f..8d3204fa2b4f 100644
--- a/pkgs/servers/matrix-synapse/matrix-hookshot/package.json
+++ b/pkgs/servers/matrix-synapse/matrix-hookshot/package.json
@@ -1,6 +1,6 @@
 {
   "name": "matrix-hookshot",
-  "version": "4.7.0",
+  "version": "5.1.2",
   "description": "A bridge between Matrix and multiple project management services, such as GitHub, GitLab and JIRA.",
   "main": "lib/app.js",
   "repository": "https://github.com/matrix-org/matrix-hookshot",
@@ -10,7 +10,7 @@
     "name": "matrix-hookshot-rs"
   },
   "engines": {
-    "node": ">=18"
+    "node": ">=20"
   },
   "scripts": {
     "build:web": "vite build",
@@ -32,6 +32,7 @@
     "start:matrixsender": "node --require source-map-support/register lib/App/MatrixSenderApp.js",
     "start:resetcrypto": "node --require source-map-support/register lib/App/ResetCryptoStore.js",
     "test": "mocha -r ts-node/register tests/init.ts tests/*.ts  tests/**/*.ts",
+    "test:e2e": "yarn node --experimental-vm-modules $(yarn bin jest)",
     "test:cover": "nyc --reporter=lcov --reporter=text yarn test",
     "lint": "yarn run lint:js && yarn run lint:rs",
     "lint:js": "eslint -c .eslintrc.js 'src/**/*.ts' 'tests/**/*.ts' 'web/**/*.ts' 'web/**/*.tsx'",
@@ -42,71 +43,77 @@
   },
   "dependencies": {
     "@alloc/quick-lru": "^5.2.0",
-    "@octokit/auth-app": "^3.3.0",
-    "@octokit/auth-token": "^2.4.5",
-    "@octokit/rest": "^18.10.0",
-    "@octokit/webhooks": "^9.1.2",
+    "@octokit/auth-app": "^6.0.2",
+    "@octokit/auth-token": "^4.0.0",
+    "@octokit/rest": "^20.0.2",
+    "@octokit/webhooks": "^12.0.10",
     "@sentry/node": "^7.52.1",
+    "@vector-im/compound-design-tokens": "^0.1.0",
+    "@vector-im/compound-web": "^0.9.4",
     "ajv": "^8.11.0",
-    "axios": "^1.6.2",
+    "axios": "^1.6.3",
     "cors": "^2.8.5",
-    "express": "^4.17.3",
+    "express": "^4.18.2",
     "figma-js": "^1.14.0",
     "http-status-codes": "^2.2.0",
     "ioredis": "^5.2.3",
-    "jira-client": "^8.0.0",
-    "markdown-it": "^12.3.2",
+    "jira-client": "^8.2.2",
+    "markdown-it": "^14.0.0",
     "matrix-appservice-bridge": "^9.0.1",
-    "matrix-bot-sdk": "npm:@vector-im/matrix-bot-sdk@^0.6.7-element.1",
-    "matrix-widget-api": "^1.0.0",
-    "micromatch": "^4.0.4",
-    "mime": "^3.0.0",
-    "node-emoji": "^1.11.0",
-    "nyc": "^15.1.0",
+    "matrix-bot-sdk": "npm:@vector-im/matrix-bot-sdk@^0.7.0-specific-device-2",
+    "matrix-widget-api": "^1.6.0",
+    "micromatch": "^4.0.5",
+    "mime": "^4.0.1",
+    "node-emoji": "^2.1.3",
     "p-queue": "^6.6.2",
-    "prom-client": "^14.2.0",
-    "quickjs-emscripten": "^0.23.0",
-    "reflect-metadata": "^0.1.13",
+    "preact-render-to-string": "^6.3.1",
+    "prom-client": "^15.1.0",
+    "quickjs-emscripten": "^0.26.0",
+    "reflect-metadata": "^0.2.1",
     "source-map-support": "^0.5.21",
     "string-argv": "^0.3.1",
     "tiny-typed-emitter": "^2.1.0",
-    "winston": "^3.3.3",
-    "xml2js": "^0.5.0",
-    "yaml": "^2.2.2"
+    "vite-plugin-magical-svg": "^1.1.1",
+    "winston": "^3.11.0",
+    "xml2js": "^0.6.2",
+    "yaml": "^2.3.4"
   },
   "devDependencies": {
     "@codemirror/lang-javascript": "^6.0.2",
     "@napi-rs/cli": "^2.13.2",
     "@preact/preset-vite": "^2.2.0",
-    "@tsconfig/node18": "^2.0.0",
+    "@rollup/plugin-alias": "^5.1.0",
+    "@tsconfig/node18": "^18.2.2",
     "@types/ajv": "^1.0.0",
     "@types/chai": "^4.2.22",
     "@types/cors": "^2.8.12",
     "@types/express": "^4.17.14",
+    "@types/jest": "^29.5.11",
     "@types/jira-client": "^7.1.0",
-    "@types/markdown-it": "^12.2.3",
+    "@types/markdown-it": "^13.0.7",
     "@types/micromatch": "^4.0.1",
-    "@types/mime": "^2.0.3",
-    "@types/mocha": "^9.0.0",
-    "@types/node": "18",
-    "@types/node-emoji": "^1.8.1",
-    "@types/uuid": "^8.3.3",
+    "@types/mime": "^3.0.4",
+    "@types/mocha": "^10.0.6",
+    "@types/node": "20.10.6",
     "@types/xml2js": "^0.4.11",
-    "@typescript-eslint/eslint-plugin": "^6.6.0",
-    "@typescript-eslint/parser": "^6.6.0",
+    "@typescript-eslint/eslint-plugin": "^6.17.0",
+    "@typescript-eslint/parser": "^6.17.0",
     "@uiw/react-codemirror": "^4.12.3",
     "chai": "^4.3.4",
     "eslint": "^8.49.0",
     "eslint-config-preact": "^1.3.0",
     "eslint-plugin-mocha": "^10.1.0",
+    "homerunner-client": "^1.0.0",
+    "jest": "^29.7.0",
     "mini.css": "^3.0.1",
-    "mocha": "^8.2.1",
+    "mocha": "^10.2.0",
+    "nyc": "^15.1.0",
     "preact": "^10.5.15",
-    "rimraf": "^3.0.2",
-    "sass": "^1.51.0",
+    "rimraf": "^5.0.5",
+    "sass": "^1.69.6",
+    "ts-jest": "^29.1.1",
     "ts-node": "^10.9.1",
-    "typescript": "^5.1.3",
-    "vite": "^4.1.5",
-    "vite-svg-loader": "^4.0.0"
+    "typescript": "^5.3.3",
+    "vite": "^5.0.10"
   }
 }
diff --git a/pkgs/servers/matrix-synapse/matrix-hookshot/pin.json b/pkgs/servers/matrix-synapse/matrix-hookshot/pin.json
index 64b40c341cc9..51dab75959ad 100644
--- a/pkgs/servers/matrix-synapse/matrix-hookshot/pin.json
+++ b/pkgs/servers/matrix-synapse/matrix-hookshot/pin.json
@@ -1,6 +1,6 @@
 {
-  "version": "4.7.0",
-  "srcHash": "sha256-27PBuLyk/1ER26pus5tbe9CxeYEZgZrYBYy5l3B/19c=",
-  "yarnHash": "05mh3q5zw1aiznvbkhp7spb1bgcv32ncdb4zpyvhhv74pyhjnsn2",
-  "cargoHash": "sha256-cAjsNVQfXfZbM1/MoiEh/Qp0uW/iXsxBVx7cRZY3tN0="
+  "version": "5.1.2",
+  "srcHash": "sha256-dBuk/kpU5/GnwoTDh8FdnetK2hEBBTwrUA3fP/L9mWU=",
+  "yarnHash": "100lfm0pr0l33j1bl9zmw1s7fm4ihrwppyvq6x8ahx1sjrr1m0lp",
+  "cargoHash": "sha256-4cFhV5y7tqUZ4pQWQKIbOZ0qXo0ya5gnMizCNcxYZS0="
 }
diff --git a/pkgs/servers/matrix-synapse/plugins/mjolnir-antispam.nix b/pkgs/servers/matrix-synapse/plugins/mjolnir-antispam.nix
index d1ab9ab538b3..e728e1cb013a 100644
--- a/pkgs/servers/matrix-synapse/plugins/mjolnir-antispam.nix
+++ b/pkgs/servers/matrix-synapse/plugins/mjolnir-antispam.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "matrix-synapse-mjolnir-antispam";
-  version = "1.6.4";
+  version = "1.6.5";
 
   src = fetchFromGitHub {
     owner = "matrix-org";
     repo = "mjolnir";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-/vnojWLpu/fktqPUhAdL1QTESxDwFrBVYAkyF79Fj9w=";
+    sha256 = "sha256-xejFKz2MmdjMFU0X0SdI+qXTBRAwIvkcfZPQqXB9LV0=";
   };
 
   sourceRoot = "${src.name}/synapse_antispam";
diff --git a/pkgs/servers/matrix-synapse/sliding-sync/default.nix b/pkgs/servers/matrix-synapse/sliding-sync/default.nix
index a491be8e6eca..107f2c1abb8b 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.14";
+  version = "0.99.15";
 
   src = fetchFromGitHub {
     owner = "matrix-org";
     repo = "sliding-sync";
     rev = "refs/tags/v${version}";
-    hash = "sha256-C6osjpmz6cpqtzi2GEkLgNeXsF/Cfj9p1pPqYqxVg3Y=";
+    hash = "sha256-9JYR9fBxtv+3E+l+l26jryqEstnOUm657VsKsDRzD9g=";
   };
 
   vendorHash = "sha256-THjvc0TepIBFOTte7t63Dmadf3HMuZ9m0YzQMI5e5Pw=";
diff --git a/pkgs/servers/matrix-synapse/wrapper.nix b/pkgs/servers/matrix-synapse/wrapper.nix
index 5b7ce47b367c..55d280e0ec65 100644
--- a/pkgs/servers/matrix-synapse/wrapper.nix
+++ b/pkgs/servers/matrix-synapse/wrapper.nix
@@ -41,4 +41,7 @@ stdenv.mkDerivation {
     # for backward compatibility
     inherit (matrix-synapse-unwrapped) plugins tools;
   };
+
+  # Carry the maintainer, licenses, and various useful information.
+  inherit (matrix-synapse-unwrapped) meta;
 }
diff --git a/pkgs/servers/mautrix-discord/default.nix b/pkgs/servers/mautrix-discord/default.nix
index 4ddb9abe9ecd..6ede276ec2b0 100644
--- a/pkgs/servers/mautrix-discord/default.nix
+++ b/pkgs/servers/mautrix-discord/default.nix
@@ -9,16 +9,16 @@
 
 buildGoModule rec {
   pname = "mautrix-discord";
-  version = "0.6.4";
+  version = "0.6.5";
 
   src = fetchFromGitHub {
     owner = "mautrix";
     repo = "discord";
     rev = "v${version}";
-    hash = "sha256-p2DQD2E9RmP6yZGD88Y15eTz06euhNDaxCnnrWzqaB4=";
+    hash = "sha256-kjIBjkRI0BrbMNkb1Tdv7d+ZFOKRkUL9KxtQMtvxpIM=";
   };
 
-  vendorHash = "sha256-rbz6bWBl2rmfHuszjKoWZP4/B4F90MUtR5nAIXCU3pg=";
+  vendorHash = "sha256-qRIgdkDp1pd/bA/AIU4PvoXcvrQam0kmr0hu4yAl+IY=";
 
   ldflags = [ "-s" "-w" ];
 
diff --git a/pkgs/servers/mautrix-signal/default.nix b/pkgs/servers/mautrix-signal/default.nix
index 3b913a2bd462..ce07debc24a8 100644
--- a/pkgs/servers/mautrix-signal/default.nix
+++ b/pkgs/servers/mautrix-signal/default.nix
@@ -6,13 +6,13 @@ buildGoModule {
   # which is broken for new devices, see https://github.com/mautrix/signal/issues/388.
   # The new Go version fixes this by using the official libsignal as a library and
   # can be upgraded to directly from the Python version.
-  version = "unstable-2023-12-30";
+  version = "unstable-2024-01-31";
 
   src = fetchFromGitHub {
     owner = "mautrix";
     repo = "signal";
-    rev = "6abe80e6c79b31b5dc37a484b65d346a1ffd4f05";
-    hash = "sha256-EDSP+kU0EmIaYbAB/hxAUTEay+H5aqn9ovBQFZg6wJk=";
+    rev = "103666990f30a692c63dd84a499b0dd390cef8a4";
+    hash = "sha256-UttLMI+jX5PNG02vs7Dty8pxdko2aM0sVB/90eWwmYw=";
   };
 
   buildInputs = [
@@ -22,7 +22,7 @@ buildGoModule {
     libsignal-ffi
   ];
 
-  vendorHash = "sha256-f3sWX+mBouuxVKu+fZIYTWLXT64fllUWpcUYAxjzQpI=";
+  vendorHash = "sha256-LKs/9yCJ7alKQh1VYQsPEg7y+ugZwUnnJh2l4IEjbaQ=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/mediamtx/default.nix b/pkgs/servers/mediamtx/default.nix
index 43a6d539750a..5cf96c768a2b 100644
--- a/pkgs/servers/mediamtx/default.nix
+++ b/pkgs/servers/mediamtx/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "mediamtx";
-  version = "1.4.2";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "bluenviron";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-bACcjqFHaF7nLT/6bvekdJezPZZoTasGLgR3fshHKkc=";
+    hash = "sha256-g4z6UMTdg5Vjrn6h/t42GpHiAgZtTEi3AdS3X8Ho3fI=";
   };
 
-  vendorHash = "sha256-H2ykDu54omxIkztZlcKUmRrJniFQitDEKviOCbJs1K0=";
+  vendorHash = "sha256-/TvKx0xUI6XktkvPoZFWINQXf2hckfOn4QxYpGfEPl4=";
 
   # Tests need docker
   doCheck = false;
diff --git a/pkgs/servers/memcached/default.nix b/pkgs/servers/memcached/default.nix
index a8beb4d4bed5..6ad1343645e8 100644
--- a/pkgs/servers/memcached/default.nix
+++ b/pkgs/servers/memcached/default.nix
@@ -1,12 +1,12 @@
 {lib, stdenv, fetchurl, cyrus_sasl, libevent, nixosTests }:
 
 stdenv.mkDerivation rec {
-  version = "1.6.22";
+  version = "1.6.23";
   pname = "memcached";
 
   src = fetchurl {
     url = "https://memcached.org/files/${pname}-${version}.tar.gz";
-    sha256 = "sha256-NHg6kKTM90xBBwhf2Stoh0nSOyds/a2fBOT3JaBdHKc=";
+    sha256 = "sha256-hbAzSQT0QClqaFzP2nXw9FF7+JIquO+m0MSzySw1TUw=";
   };
 
   configureFlags = [
diff --git a/pkgs/servers/metabase/default.nix b/pkgs/servers/metabase/default.nix
index f4fc546e3b47..24636e19a4c2 100644
--- a/pkgs/servers/metabase/default.nix
+++ b/pkgs/servers/metabase/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "metabase";
-  version = "0.48.1";
+  version = "0.48.4";
 
   src = fetchurl {
     url = "https://downloads.metabase.com/v${version}/metabase.jar";
-    hash = "sha256-lU9HrX4/OUQNyI6gi5AYbYhjwkK8mWAIsdM4Tq87JAw=";
+    hash = "sha256-megPu4HGVdfMzWkJJyse87EBLSi50yXXHfg7WIk3U10=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/minio/default.nix b/pkgs/servers/minio/default.nix
index 53fe4a2fc4c2..59d0270cef67 100644
--- a/pkgs/servers/minio/default.nix
+++ b/pkgs/servers/minio/default.nix
@@ -21,16 +21,16 @@ let
 in
 buildGoModule rec {
   pname = "minio";
-  version = "2023-12-23T07-19-11Z";
+  version = "2024-01-31T20-20-33Z";
 
   src = fetchFromGitHub {
     owner = "minio";
     repo = "minio";
     rev = "RELEASE.${version}";
-    sha256 = "sha256-1tgJraaF40GSBAnczzf0tdJMH8AXORmhpnEpVxe5yjc=";
+    hash = "sha256-cQqgLjUGjLGV9o1asMbZrmGZ2FPB0/08JaoYW6hgDPE=";
   };
 
-  vendorHash = "sha256-TGdMKzpMRAEE1TpEU6IJKu3A6A1uC2BtifDxCfH9Fd0=";
+  vendorHash = "sha256-v6Mn0f8xNsaV1ixnuVs9cPi5FghAGKjX5nWiBZLhBUU=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/misc/gobgpd/default.nix b/pkgs/servers/misc/gobgpd/default.nix
index 60360d26667a..a7b4b05b57cc 100644
--- a/pkgs/servers/misc/gobgpd/default.nix
+++ b/pkgs/servers/misc/gobgpd/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "gobgpd";
-  version = "3.22.0";
+  version = "3.23.0";
 
   src = fetchFromGitHub {
     owner = "osrg";
     repo = "gobgp";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ItzoknejTtVjm0FD+UdpCa+cL0i2uvcffTNIWCjBdVU=";
+    hash = "sha256-PUwYcwWgaV/DQl565fugppc+I/y7z7Ns3P4SspS88ts=";
   };
 
   vendorHash = "sha256-5eB3vFOo3LCsjMnWYFH0yq5+IunwKXp5C34x6NvpFZ8=";
diff --git a/pkgs/servers/misc/navidrome/default.nix b/pkgs/servers/misc/navidrome/default.nix
index 8c18b6769a13..09358c12e49c 100644
--- a/pkgs/servers/misc/navidrome/default.nix
+++ b/pkgs/servers/misc/navidrome/default.nix
@@ -18,23 +18,23 @@
 
 buildGoModule rec {
   pname = "navidrome";
-  version = "0.50.2";
+  version = "0.51.0";
 
   src = fetchFromGitHub {
     owner = "navidrome";
     repo = "navidrome";
     rev = "v${version}";
-    hash = "sha256-SZ9wVOHtmkrWfYGA0hNCXag2Yp17glOQpBsEQRK6Npg=";
+    hash = "sha256-AsDVU1J/lPjTY6R7khzorbBCWuL9FX6aZnMD2snBSys=";
   };
 
-  vendorHash = "sha256-PKj2zJhGR1yETLZ4as35cuwil3vfyFKfkKF/32YdAt8=";
+  vendorHash = "sha256-Q95OchWkxd/EmG7Vu0e/dge9nOIrGmcTgjGL5dBvEKA=";
 
   npmRoot = "ui";
 
   npmDeps = fetchNpmDeps {
     inherit src;
     sourceRoot = "${src.name}/ui";
-    hash = "sha256-7wMMBJE3zSm+eCIaLBjt+Q0OWh3u0XpS0XHnaH17Xsc=";
+    hash = "sha256-LrLswdt6RA55FQE/YWHNwtjxljjlCNSTLWJNqy1ohKo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/servers/misc/virtiofsd/default.nix b/pkgs/servers/misc/virtiofsd/default.nix
index 4a7a333f25c1..027235986c5e 100644
--- a/pkgs/servers/misc/virtiofsd/default.nix
+++ b/pkgs/servers/misc/virtiofsd/default.nix
@@ -2,18 +2,18 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "virtiofsd";
-  version = "1.9.0";
+  version = "1.10.1";
 
   src = fetchFromGitLab {
     owner = "virtio-fs";
     repo = "virtiofsd";
     rev = "v${version}";
-    sha256 = "sha256-wbfx6Ennyl4qWODRAtJ3eydSRFfE/ANCSl2GA9oq90A=";
+    sha256 = "sha256-qHrgNuPDEtFzucE6ACPemUcjEqOvbo4xV0ru4bP3ATE=";
   };
 
   separateDebugInfo = true;
 
-  cargoHash = "sha256-Vdvk700NjjCTSD0Lscr5ckxsYa4pDJdmV7Kgr++0GFY=";
+  cargoHash = "sha256-BVl4Inr7ZLnilkPVTD2cjJx9RuqB0Mg230o2c2TLw3I=";
 
   LIBCAPNG_LIB_PATH = "${lib.getLib libcap_ng}/lib";
   LIBCAPNG_LINK_TYPE =
diff --git a/pkgs/servers/monitoring/do-agent/default.nix b/pkgs/servers/monitoring/do-agent/default.nix
index 51502d9e1ba6..d13c48544898 100644
--- a/pkgs/servers/monitoring/do-agent/default.nix
+++ b/pkgs/servers/monitoring/do-agent/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "do-agent";
-  version = "3.16.7";
+  version = "3.16.8";
 
   src = fetchFromGitHub {
     owner = "digitalocean";
     repo = "do-agent";
     rev = version;
-    sha256 = "sha256-m1OHCaSY13L+184ju6rzJ/SO0OCIlOtMNAvdkGTXTFw=";
+    sha256 = "sha256-uMPR1vFu3NMvRyL7PCfjQTGEfUtRiyItOqt4HJ2L+Wo=";
   };
 
   ldflags = [
diff --git a/pkgs/servers/monitoring/grafana-agent/default.nix b/pkgs/servers/monitoring/grafana-agent/default.nix
index 02a263aa8e16..6ddaf2ba07a2 100644
--- a/pkgs/servers/monitoring/grafana-agent/default.nix
+++ b/pkgs/servers/monitoring/grafana-agent/default.nix
@@ -14,16 +14,16 @@
 
 buildGoModule rec {
   pname = "grafana-agent";
-  version = "0.39.0";
+  version = "0.39.2";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = "agent";
     rev = "v${version}";
-    hash = "sha256-mUPWww7RnrCwJKGWXIsX7vnTmxj2h31AzM8a0eKa15g=";
+    hash = "sha256-KwXkCTKnoXHL2RFpJjjwtIolEpqCM6te5wMk9xQNOqE=";
   };
 
-  vendorHash = "sha256-nOuinJXTiTumHlOWcuGTBcrw9ArIdb/R8jIT/5+i0vM=";
+  vendorHash = "sha256-aSHO5SoMem14Fc6DirqtYBVWJQtf5mzCT3T33mMyhkc=";
   proxyVendor = true; # darwin/linux hash mismatch
 
   frontendYarnOfflineCache = fetchYarnDeps {
diff --git a/pkgs/servers/monitoring/grafana/default.nix b/pkgs/servers/monitoring/grafana/default.nix
index 9dc861c75866..fcb3c1f2ed3b 100644
--- a/pkgs/servers/monitoring/grafana/default.nix
+++ b/pkgs/servers/monitoring/grafana/default.nix
@@ -1,8 +1,38 @@
-{ lib, buildGoModule, fetchurl, fetchFromGitHub, nixosTests, tzdata, wire }:
+{ lib, stdenv, buildGoModule, fetchFromGitHub, removeReferencesTo
+, tzdata, wire
+, yarn, nodejs, python3, cacert
+, jq, moreutils
+, nix-update-script, nixosTests
+}:
+
+let
+  # We need dev dependencies to run webpack, but patch away
+  # `cypress` (and @grafana/e2e which has a direct dependency on cypress).
+  # This attempts to download random blobs from the Internet in
+  # postInstall. Also, it's just a testing framework, so not worth the hassle.
+  patchAwayGrafanaE2E = ''
+    find . -name package.json | while IFS=$'\n' read -r pkg_json; do
+      <"$pkg_json" jq '. + {
+        "devDependencies": .devDependencies | del(."@grafana/e2e") | del(.cypress)
+      }' | sponge "$pkg_json"
+    done
+    rm -r packages/grafana-e2e
+  '';
 
+  # Injects a `t.Skip()` into a given test since
+  # there's apparently no other way to skip tests here.
+  skipTest = lineOffset: testCase: file:
+    let
+      jumpAndAppend = lib.concatStringsSep ";" (lib.replicate (lineOffset - 1) "n" ++ [ "a" ]);
+    in ''
+      sed -i -e '/${testCase}/{
+      ${jumpAndAppend} t.Skip();
+      }' ${file}
+    '';
+in
 buildGoModule rec {
   pname = "grafana";
-  version = "10.2.3";
+  version = "10.3.1";
 
   excludedPackages = [ "alert_webhook_listener" "clean-swagger" "release_publisher" "slow_proxy" "slow_proxy_mac" "macaron" "devenv" "modowners" ];
 
@@ -10,28 +40,47 @@ buildGoModule rec {
     owner = "grafana";
     repo = "grafana";
     rev = "v${version}";
-    hash = "sha256-F61RtPEjQ4uFVcJLG04CD4//w8X7uJinxzYyoW/MosA=";
+    hash = "sha256-UPIq7BWTlT0omt/SM5+vkfOHvsdcx/ikkjcW9X8pcw0=";
   };
 
-  srcStatic = fetchurl {
-    url = "https://dl.grafana.com/oss/release/grafana-${version}.linux-amd64.tar.gz";
-    hash = "sha256-xoZgaml1SB9PEI3kTE3zRlJR5O4tog58bua2blvc8to=";
+  offlineCache = stdenv.mkDerivation {
+    name = "${pname}-${version}-yarn-offline-cache";
+    inherit src;
+    nativeBuildInputs = [
+      yarn nodejs cacert
+      jq moreutils
+    ];
+    postPatch = ''
+      ${patchAwayGrafanaE2E}
+    '';
+    buildPhase = ''
+      runHook preBuild
+      export HOME="$(mktemp -d)"
+      yarn config set enableTelemetry 0
+      yarn config set cacheFolder $out
+      yarn config set --json supportedArchitectures.os '[ "linux" ]'
+      yarn config set --json supportedArchitectures.cpu '["arm", "arm64", "ia32", "x64"]'
+      yarn
+      runHook postBuild
+    '';
+    dontConfigure = true;
+    dontInstall = true;
+    dontFixup = true;
+    outputHashMode = "recursive";
+    outputHash = "sha256-70eMa8E483f/Bz7iy+4Seap1EfIdjD5krnt6W9CUows=";
   };
 
-  vendorHash = "sha256-rQOnuh6t+cUqyAAnUhGgxMaW88pawnauAGQd6w0T57Q=";
+  disallowedRequisites = [ offlineCache ];
+
+  vendorHash = "sha256-Gf2A22d7/8xU/ld7kveqGonVKGFCArGNansPRGhfyXM=";
+
+  nativeBuildInputs = [ wire yarn jq moreutils removeReferencesTo python3 ];
 
-  nativeBuildInputs = [ wire ];
+  postPatch = ''
+    ${patchAwayGrafanaE2E}
+  '';
 
-  postConfigure = let
-    skipTest = lineOffset: testCase: file:
-      let
-        jumpAndAppend = lib.concatStringsSep ";" (lib.replicate (lineOffset - 1) "n" ++ [ "a" ]);
-      in ''
-        sed -i -e '/${testCase}/{
-        ${jumpAndAppend} t.Skip();
-        }' ${file}
-      '';
-  in ''
+  postConfigure = ''
     # Generate DI code that's required to compile the package.
     # From https://github.com/grafana/grafana/blob/v8.2.3/Makefile#L33-L35
     wire gen -tags oss ./pkg/server
@@ -69,6 +118,29 @@ buildGoModule rec {
     # grafana> 2023/08/24 08:30:23 failed to copy objects, err: Post "https://storage.googleapis.com/upload/storage/v1/b/grafana-testing-repo/o?alt=json&name=test-path%2Fbuild%2FTestCopyLocalDir2194093976%2F001%2Ffile2.txt&prettyPrint=false&projection=full&uploadType=multipart": dial tcp: lookup storage.googleapis.com on [::1]:53: read udp [::1]:36436->[::1]:53: read: connection refused
     # grafana> panic: test timed out after 10m0s
     rm pkg/build/gcloud/storage/gsutil_test.go
+
+    # Setup node_modules
+    export HOME="$(mktemp -d)"
+
+    # Help node-gyp find Node.js headers
+    # (see https://github.com/NixOS/nixpkgs/blob/master/doc/languages-frameworks/javascript.section.md#pitfalls-javascript-yarn2nix-pitfalls)
+    mkdir -p $HOME/.node-gyp/${nodejs.version}
+    echo 9 > $HOME/.node-gyp/${nodejs.version}/installVersion
+    ln -sfv ${nodejs}/include $HOME/.node-gyp/${nodejs.version}
+    export npm_config_nodedir=${nodejs}
+
+    yarn config set enableTelemetry 0
+    yarn config set cacheFolder $offlineCache
+    yarn --immutable-cache
+
+    # The build OOMs on memory constrained aarch64 without this
+    export NODE_OPTIONS=--max_old_space_size=4096
+  '';
+
+  postBuild = ''
+    # After having built all the Go code, run the JS builders now.
+    yarn run build
+    yarn run plugins:build-bundled
   '';
 
   ldflags = [
@@ -86,16 +158,19 @@ buildGoModule rec {
   '';
 
   postInstall = ''
-    tar -xvf $srcStatic
     mkdir -p $out/share/grafana
-    mv grafana-*/{public,conf,tools} $out/share/grafana/
+    cp -r public conf $out/share/grafana/
+  '';
 
-    cp ./conf/defaults.ini $out/share/grafana/conf/
+  postFixup = ''
+    while read line; do
+      remove-references-to -t $offlineCache "$line"
+    done < <(find $out -type f -name '*.js.map' -or -name '*.js')
   '';
 
   passthru = {
     tests = { inherit (nixosTests) grafana; };
-    updateScript = ./update.sh;
+    updateScript = nix-update-script { };
   };
 
   meta = with lib; {
diff --git a/pkgs/servers/monitoring/grafana/update.sh b/pkgs/servers/monitoring/grafana/update.sh
deleted file mode 100755
index 3fd4fd56be7c..000000000000
--- a/pkgs/servers/monitoring/grafana/update.sh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -i bash -p curl common-updater-scripts jq nix nix-prefetch-scripts moreutils
-
-set -euxo pipefail
-
-FILE="$(nix-instantiate --eval -E 'with import ./. {}; (builtins.unsafeGetAttrPos "version" grafana).file' | tr -d '"')"
-replaceHash() {
-  old="${1?old hash missing}"
-  new="${2?new hash missing}"
-  awk -v OLD="$old" -v NEW="$new" '{
-    if (i=index($0, OLD)) {
-      $0 = substr($0, 1, i-1) NEW substr($0, i+length(OLD));
-    }
-    print $0;
-  }' "$FILE" | sponge "$FILE"
-}
-extractVendorHash() {
-  original="${1?original hash missing}"
-  result="$(nix-build -A grafana.goModules 2>&1 | tail -n3 | grep 'got:' | cut -d: -f2- | xargs echo || true)"
-  [ -z "$result" ] && { echo "$original"; } || { echo "$result"; }
-}
-
-oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion grafana" | tr -d '"')"
-latest="$(curl https://api.github.com/repos/grafana/grafana/releases/latest | jq '.tag_name' -r | tr -d 'v')"
-
-targetVersion="${1:-$latest}"
-if [ ! "${oldVersion}" = "${targetVersion}" ]; then
-  update-source-version grafana "${targetVersion#v}"
-  oldStaticHash="$(nix-instantiate --eval -A grafana.srcStatic.outputHash | tr -d '"')"
-  newStaticHash="$(nix-prefetch-url "https://dl.grafana.com/oss/release/grafana-${targetVersion#v}.linux-amd64.tar.gz")"
-  newStaticHash="$(nix hash to-sri --type sha256 $newStaticHash)"
-  replaceHash "$oldStaticHash" "$newStaticHash"
-  goHash="$(nix-instantiate --eval -A grafana.vendorHash | tr -d '"')"
-  emptyHash="$(nix-instantiate --eval -A lib.fakeHash | tr -d '"')"
-  replaceHash "$goHash" "$emptyHash"
-  replaceHash "$emptyHash" "$(extractVendorHash "$goHash")"
-  nix-build -A grafana
-else
-  echo "grafana is already up-to-date"
-fi
diff --git a/pkgs/servers/monitoring/icinga2/default.nix b/pkgs/servers/monitoring/icinga2/default.nix
index b1b00a32b4d6..165e6e186808 100644
--- a/pkgs/servers/monitoring/icinga2/default.nix
+++ b/pkgs/servers/monitoring/icinga2/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "icinga2${nameSuffix}";
-  version = "2.14.0";
+  version = "2.14.2";
 
   src = fetchFromGitHub {
     owner = "icinga";
     repo = "icinga2";
     rev = "v${version}";
-    sha256 = "sha256-MrNfkbbmID27Ht2sDSklrPvRvCmewOuOOBIFnHJz1zE=";
+    sha256 = "sha256-vUtLGkTLGObx3zbfRTboNVsl9AmpAkHc+IhWhnKupSM=";
   };
 
   patches = [
diff --git a/pkgs/servers/monitoring/loki/default.nix b/pkgs/servers/monitoring/loki/default.nix
index 00f6fbe7da9f..65f8c348b13c 100644
--- a/pkgs/servers/monitoring/loki/default.nix
+++ b/pkgs/servers/monitoring/loki/default.nix
@@ -8,14 +8,14 @@
 }:
 
 buildGoModule rec {
-  version = "2.9.3";
+  version = "2.9.4";
   pname = "grafana-loki";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = "loki";
     rev = "v${version}";
-    hash = "sha256-9EUlznnZczgHXUy784830FvUS6OwaFf7FmUJGeWeXP0=";
+    hash = "sha256-uT3rMvSW1eTBhXboA71QeIvuYvc017TxoGG3z3G4K4Y=";
   };
 
   vendorHash = null;
diff --git a/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix b/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix
index 8f1d6579158f..a5ccc82ccda5 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.78.0";
+  version = "2.79.0";
 
   src = fetchFromGitHub {
     owner = "matteocorti";
     repo = "check_ssl_cert";
     rev = "refs/tags/v${version}";
-    hash = "sha256-5a9mrRd3YqKuz/VG7/CheMWpy99PpnyPaA5/VFEvj3Y=";
+    hash = "sha256-2NraUEUGyvmEdWCQdzZ5kf+sx/CnSZ54N3zRcCSYhBA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/servers/monitoring/prometheus/domain-exporter.nix b/pkgs/servers/monitoring/prometheus/domain-exporter.nix
index e1b3200e4f0d..5f5ce702cebc 100644
--- a/pkgs/servers/monitoring/prometheus/domain-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/domain-exporter.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "domain-exporter";
-  version = "1.22.0";
+  version = "1.23.0";
 
   src = fetchFromGitHub {
     owner = "caarlos0";
     repo = "domain_exporter";
     rev = "v${version}";
-    hash = "sha256-tdAU4BY2jT3l/VMIthrJOPhPYi9UMYD7ZUVhwbO1oUA=";
+    hash = "sha256-5GyDQkd8zXZ9TtauWfW9uW8xkgtEICFm6f4Q/jVqOBc=";
   };
 
-  vendorHash = "sha256-6C1LfWF4tjCGW3iiEhD+qBJ+CjAv4A9KYKH/owTAYJ8=";
+  vendorHash = "sha256-EPpzrig40WXt5mo/vPTFjh+gYdFOlMknjNJHNChlQwk=";
 
   doCheck = false; # needs internet connection
 
diff --git a/pkgs/servers/monitoring/prometheus/exportarr/default.nix b/pkgs/servers/monitoring/prometheus/exportarr/default.nix
index 27e5da34efcf..1d56a749f33a 100644
--- a/pkgs/servers/monitoring/prometheus/exportarr/default.nix
+++ b/pkgs/servers/monitoring/prometheus/exportarr/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "exportarr";
-  version = "1.6.0";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "onedr0p";
     repo = "exportarr";
     rev = "v${version}";
-    hash = "sha256-jmvVhNaE0cVLHTLH6qKIi4ETr7Q8CTEhXPwzjWyfx5k=";
+    hash = "sha256-i5ia9GX/0wvLnIwSxZ50y3fTFHwkUzj00+NoEceXp84=";
   };
 
-  vendorHash = "sha256-AYuyOAU7T9YluX77zPu4o377L4wCQzVUrQunt0UIZlU=";
+  vendorHash = "sha256-2gzHX7XHzgvZXWm7mfakxnsRfpEysQwnZ0mJocLyyoA=";
 
   subPackages = [ "cmd/exportarr" ];
 
diff --git a/pkgs/servers/monitoring/prometheus/ipmi-exporter.nix b/pkgs/servers/monitoring/prometheus/ipmi-exporter.nix
index 11264a637983..1b1ac3c62420 100644
--- a/pkgs/servers/monitoring/prometheus/ipmi-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/ipmi-exporter.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "ipmi_exporter";
-  version = "1.7.0";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "prometheus-community";
     repo = "ipmi_exporter";
     rev = "v${version}";
-    hash = "sha256-yVFpYedWELqDNzmHQfMJa95iKQsn1N/wa82sQEQh1Uw=";
+    hash = "sha256-ZF5mBjq+IhSQrQ1dUfHlfyUMK2dkpZ5gu9djPkUYvRQ=";
   };
 
-  vendorHash = "sha256-1ntFcOmVN4I1aa/5gWnzkYNYxxFT9ZM1usNnE23KfR0=";
+  vendorHash = "sha256-q5MFAvFCrr24b1VO0Z03C08CGd+0pUerXZEKiu4r7cE=";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/servers/monitoring/prometheus/knot-exporter.nix b/pkgs/servers/monitoring/prometheus/knot-exporter.nix
index 8b2573db4f77..d51d9bd3f79c 100644
--- a/pkgs/servers/monitoring/prometheus/knot-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/knot-exporter.nix
@@ -6,13 +6,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "knot-exporter";
-  version = "3.3.2";
+  version = "3.3.4";
   pyproject = true;
 
   src = fetchPypi {
     pname = "knot_exporter";
     inherit version;
-    hash = "sha256-/TBzq9MhYb664TsSD46Ep7gOkLBmmPSK9d89xlgvbSw=";
+    hash = "sha256-jZNNJiJxq3pNSZFwu2UEHhrA0odIDY0UO+d4PJII1ZI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/servers/monitoring/prometheus/openvpn-exporter.nix b/pkgs/servers/monitoring/prometheus/openvpn-exporter.nix
deleted file mode 100644
index 635ca0936b77..000000000000
--- a/pkgs/servers/monitoring/prometheus/openvpn-exporter.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ lib, buildGoModule, fetchFromGitHub }:
-
-buildGoModule rec {
-  pname = "openvpn_exporter-unstable";
-  version = "0.3.0";
-
-  src = fetchFromGitHub {
-    owner = "kumina";
-    repo = "openvpn_exporter";
-    rev = "v${version}";
-    hash = "sha256-tIB4yujZj36APGAe4doKF4YlEUnieeC8bTV+FFKxpJI=";
-  };
-
-  vendorHash = "sha256-urxzQU0bBS49mBg2jm6jHNZA3MTS3DlQY7D5Fa0F/Mk=";
-
-  meta = with lib; {
-    inherit (src.meta) homepage;
-    description = "Prometheus exporter for OpenVPN";
-    broken = true;
-    license = licenses.asl20;
-    maintainers = with maintainers; [ ];
-  };
-}
diff --git a/pkgs/servers/monitoring/prometheus/pushgateway.nix b/pkgs/servers/monitoring/prometheus/pushgateway.nix
index 1b3818510076..ea194bccffb3 100644
--- a/pkgs/servers/monitoring/prometheus/pushgateway.nix
+++ b/pkgs/servers/monitoring/prometheus/pushgateway.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "pushgateway";
-  version = "1.6.2";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "prometheus";
     repo = "pushgateway";
     rev = "v${version}";
-    sha256 = "sha256-IwSzxpIBXIsOllAd0faP+uzpYZ8HcWJQBOgYZj9SZHM=";
+    sha256 = "sha256-yiLVLt1+Klr34rF+rj+T9SWNCiYi//g/e/kfJJokkYk=";
   };
 
-  vendorHash = "sha256-xpbGavt0gzOVZMHVdPtZ+rRVbovJ4xaqaAmYVipLzSs=";
+  vendorHash = "sha256-cbwTjjh4g5ISMuump6By0xmF3wKrdA3kToG7j8ZgHNs=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/servers/monitoring/prometheus/pve-exporter.nix b/pkgs/servers/monitoring/prometheus/pve-exporter.nix
index f3598304b89c..1b12f29bb942 100644
--- a/pkgs/servers/monitoring/prometheus/pve-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/pve-exporter.nix
@@ -6,11 +6,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "prometheus-pve-exporter";
-  version = "2.3.0";
+  version = "3.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-hL1+vP+/Xi3od+17906YARgg4APlFhRkdOCnRxDHJmM=";
+    sha256 = "sha256-ruJGp/juRxFJwnd0A7/qWgeJHFg9oIKekjWIe3kiUa4=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/servers/monitoring/prometheus/redis-exporter.nix b/pkgs/servers/monitoring/prometheus/redis-exporter.nix
index 42db8a165a55..177537588d63 100644
--- a/pkgs/servers/monitoring/prometheus/redis-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/redis-exporter.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "redis_exporter";
-  version = "1.56.0";
+  version = "1.57.0";
 
   src = fetchFromGitHub {
     owner = "oliver006";
     repo = "redis_exporter";
     rev = "v${version}";
-    sha256 = "sha256-7tnl8iItGegfRXLF3f+tmNxgJWkai6n8EOP00zyqyYs=";
+    sha256 = "sha256-M5Mv2gAQMR0j2zIX6OwePA9w7OtjJ0i2mR9I4BvUcXI=";
   };
 
-  vendorHash = "sha256-r+VJ2+4F3BQ0tmNTVHDOxKaKAPSIvgu7ZcQZ6BXt2kA=";
+  vendorHash = "sha256-32EjLEPeFsihdG83ru4SSf03F2XJGD8+tbO9ANaI1hs=";
 
   ldflags = [
     "-X main.BuildVersion=${version}"
diff --git a/pkgs/servers/monitoring/prometheus/sql-exporter.nix b/pkgs/servers/monitoring/prometheus/sql-exporter.nix
index cc87fd0d7633..b88534cb5ac7 100644
--- a/pkgs/servers/monitoring/prometheus/sql-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/sql-exporter.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "sql_exporter";
-  version = "0.5.2";
+  version = "0.5.3";
 
   src = fetchFromGitHub {
     owner = "justwatchcom";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-TkTxmumL7T8stNPWkVrMdB23jjMyQcv2x9F+rK6Vj6E=";
+    sha256 = "sha256-Cp8+vVGyAwYcrBiEN1SmUnHqWFGtuypvzfDROJgOn28=";
   };
 
   vendorHash = null;
diff --git a/pkgs/servers/monitoring/prometheus/unbound-exporter.nix b/pkgs/servers/monitoring/prometheus/unbound-exporter.nix
index a7575e809b3a..e683ca72b9e5 100644
--- a/pkgs/servers/monitoring/prometheus/unbound-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/unbound-exporter.nix
@@ -5,7 +5,7 @@
 }:
 
 let
-  version = "0.4.4";
+  version = "0.4.5";
 in
 buildGoModule {
   pname = "unbound_exporter";
@@ -15,10 +15,10 @@ buildGoModule {
     owner = "letsencrypt";
     repo = "unbound_exporter";
     rev = "refs/tags/v${version}";
-    hash = "sha256-0eo56z5b+hzKCY5OKg/9F7rjLyoSKPJoHLoXeMjCuFU=";
+    hash = "sha256-p2VSIQXTnNGgqUSvWQ4J3SbrnWGBO21ps4VCWOjioLM=";
   };
 
-  vendorHash = "sha256-4aWuf9UTPQseEwDJfWIcQW4uGMffRnWlHhiu0yMz4vk=";
+  vendorHash = "sha256-q3JqAGeEU5WZWTzdFE9hR2dAnsFjMM44JiYdodZrnhs=";
 
   passthru.tests = {
     inherit (nixosTests.prometheus-exporters) unbound;
diff --git a/pkgs/servers/monitoring/telegraf/default.nix b/pkgs/servers/monitoring/telegraf/default.nix
index 2a288e71ec87..b7c8cb2fcb9e 100644
--- a/pkgs/servers/monitoring/telegraf/default.nix
+++ b/pkgs/servers/monitoring/telegraf/default.nix
@@ -8,7 +8,7 @@
 
 buildGoModule rec {
   pname = "telegraf";
-  version = "1.29.2";
+  version = "1.29.4";
 
   subPackages = [ "cmd/telegraf" ];
 
@@ -16,10 +16,10 @@ buildGoModule rec {
     owner = "influxdata";
     repo = "telegraf";
     rev = "v${version}";
-    hash = "sha256-Z2+G4H1O4e77V9jfW+REK4PGdJgoPz+JgLxX/WqBoaY=";
+    hash = "sha256-XhGP5q0LbXaTgClZvRFV1Zjpi1mizoyFrzI7vobVaUo=";
   };
 
-  vendorHash = "sha256-mPw3KfQy9DRqv8E6zzYAbeUaLaNfiNPU77ic+JqqBuM=";
+  vendorHash = "sha256-DdE2r0M9/6aaq5c3m0AT82TNyIP2vBsaFCRP2um0hao=";
   proxyVendor = true;
 
   ldflags = [
diff --git a/pkgs/servers/monitoring/thanos/default.nix b/pkgs/servers/monitoring/thanos/default.nix
index 156bd4a6ec23..a1e7c4add953 100644
--- a/pkgs/servers/monitoring/thanos/default.nix
+++ b/pkgs/servers/monitoring/thanos/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "thanos";
-  version = "0.32.5";
+  version = "0.34.0";
 
   src = fetchFromGitHub {
     owner = "thanos-io";
     repo = "thanos";
     rev = "refs/tags/v${version}";
-    hash = "sha256-A4bDCyvctHmDBYzvWpeEO4u6KhoICN7BbRQK4aZCbIA=";
+    hash = "sha256-mbDjp8GAkFMkQnLd64A/nbYA/EIA4HpY6EshdDV+b1U=";
   };
 
-  vendorHash = "sha256-ZjkMvbWq96Rte9WoxAWzeouVA/6mBqanvY9yHr9F5MM=";
+  vendorHash = "sha256-ZAPaGDt+TnBUEng5EYIBNHN/o+gpaLzAO4kuSjx9S8U=";
 
   doCheck = true;
 
diff --git a/pkgs/servers/mpd/libmpdclient.nix b/pkgs/servers/mpd/libmpdclient.nix
deleted file mode 100644
index 72c3a37d97d6..000000000000
--- a/pkgs/servers/mpd/libmpdclient.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, meson
-, ninja
-, fixDarwinDylibNames
-}:
-
-stdenv.mkDerivation rec {
-  pname = "libmpdclient";
-  version = "2.20";
-
-  src = fetchFromGitHub {
-    owner  = "MusicPlayerDaemon";
-    repo   = pname;
-    rev    = "v${version}";
-    sha256 = "sha256-qEgdwG7ygVblIa3uRf1tddxHg7T1yvY17nbhZ7NRNvg=";
-  };
-
-  nativeBuildInputs = [ meson ninja ]
-  ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
-
-  meta = with lib; {
-    description = "Client library for MPD (music player daemon)";
-    homepage = "https://www.musicpd.org/libs/libmpdclient/";
-    license = licenses.bsd2;
-    maintainers = with maintainers; [ ehmry AndersonTorres ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/servers/mqtt/flashmq/default.nix b/pkgs/servers/mqtt/flashmq/default.nix
index 7ecad55000ab..eb4c607b7804 100644
--- a/pkgs/servers/mqtt/flashmq/default.nix
+++ b/pkgs/servers/mqtt/flashmq/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "flashmq";
-  version = "1.4.5";
+  version = "1.8.4";
 
   src = fetchFromGitHub {
     owner = "halfgaar";
     repo = "FlashMQ";
     rev = "v${version}";
-    hash = "sha256-DcxwwUNpnMeK8A3LuyfrWAMCng0yIcX9bKxNGY0uDSo=";
+    hash = "sha256-CMZim7FSTzjUaViVFq5OABOAUX3Aee+I3/HQhNIdIVM=";
   };
 
   nativeBuildInputs = [ cmake installShellFiles ];
diff --git a/pkgs/servers/nats-server/default.nix b/pkgs/servers/nats-server/default.nix
index 60073aef2a1d..d3e55fa00805 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.7";
+  version = "2.10.10";
 
   src = fetchFromGitHub {
     owner = "nats-io";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-DZ0a4gptTjuSVBlhDEWKTmU6Dgt36xulfjVK1kJtXhI=";
+    hash = "sha256-9iV3zw0PtncI6eJNJlQ9cCAIFWA2w+sKk0kH7fpQyOo=";
   };
 
-  vendorHash = "sha256-Q2wc4esu2H81ct9TUPs+ysT3LrW698+9JllbvdDa5Yc=";
+  vendorHash = "sha256-uhEjZcp3y+nFEChb2/Ac/eolOuJxF4WpAjKtXsfpRaw=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/nextcloud/default.nix b/pkgs/servers/nextcloud/default.nix
index 1b7620eb5f86..63f7162fc5d6 100644
--- a/pkgs/servers/nextcloud/default.nix
+++ b/pkgs/servers/nextcloud/default.nix
@@ -36,27 +36,27 @@ let
       homepage = "https://nextcloud.com";
       maintainers = with maintainers; [ schneefux bachp globin ma27 ];
       license = licenses.agpl3Plus;
-      platforms = with platforms; unix;
+      platforms = platforms.linux;
       knownVulnerabilities = extraVulnerabilities
         ++ (optional eol "Nextcloud version ${version} is EOL");
     };
   };
 in {
   nextcloud26 = generic {
-    version = "26.0.10";
-    hash = "sha256-yArkYMxOmvfQsJd6TJJX+t22a/V5OW9nwHfgLZsmlIw=";
+    version = "26.0.11";
+    hash = "sha256-Vc0QCCy495oYeRnpWaYwc4Nf4D/ko4VsODoKcS7YADA=";
     packages = nextcloud26Packages;
   };
 
   nextcloud27 = generic {
-    version = "27.1.5";
-    hash = "sha256-O1NMmOdrf+2Mo5NMrUGbEK9YViWfMTvsIs06e/pu+WE=";
+    version = "27.1.6";
+    hash = "sha256-rntyt/xSWsSXmMLeaml6TP8ls0ly1p1GmVmIXTNRvvo=";
     packages = nextcloud27Packages;
   };
 
   nextcloud28 = generic {
-    version = "28.0.1";
-    hash = "sha256-L4BzW0Qwgicv5qO14yE3lX8fxEjHU0K5S1IAspcl86Q=";
+    version = "28.0.2";
+    hash = "sha256-3jTWuvPszqz90TjoVSDNheHSzmeY2f+keKwX6x76HQg=";
     packages = nextcloud28Packages;
   };
 
diff --git a/pkgs/servers/nextcloud/notify_push.nix b/pkgs/servers/nextcloud/notify_push.nix
index c29547e57563..10ec5a6c6589 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.6";
+  version = "0.6.9";
 
   src = fetchFromGitHub {
     owner = "nextcloud";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-9wVH+msUh0t0PKz+5044PhT9lGsbfp4u44gX0O70Pbo=";
+    hash = "sha256-Bwneum3X4Gttb5fFhWyCIchGebxH9Rp0Dg10f0NkKCY=";
   };
 
-  cargoHash = "sha256-Q4KA+mc48OfmxYY7vDJ2ZU/Wd+101kbimwAw6ag3d+w=";
+  cargoHash = "sha256-HIt56r2sox9LD6kyJxyGFt9mrH/wrC7QkiycLdUDbPo=";
 
   passthru = rec {
     test_client = rustPlatform.buildRustPackage {
@@ -24,7 +24,7 @@ rustPlatform.buildRustPackage rec {
 
       buildAndTestSubdir = "test_client";
 
-      cargoHash = "sha256-XiaeCVgVjre7NmH/B+dNw0u2HV0vJwlgDjhLXXgJS+Y=";
+      cargoHash = "sha256-OUALNd64rr2qXyRNV/O+pi+dE0HYogwlbWx5DCACzyk=";
     };
     tests = {
       inherit (nixosTests.nextcloud)
@@ -36,9 +36,11 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
+    changelog = "https://github.com/nextcloud/notify_push/releases/tag/v${version}";
     description = "Update notifications for nextcloud clients";
     homepage = "https://github.com/nextcloud/notify_push";
     license = licenses.agpl3Plus;
+    platforms = platforms.linux;
     maintainers = teams.helsinki-systems.members;
   };
 }
diff --git a/pkgs/servers/nextcloud/packages/26.json b/pkgs/servers/nextcloud/packages/26.json
index 1d0023d86bae..2d12cddd6cb0 100644
--- a/pkgs/servers/nextcloud/packages/26.json
+++ b/pkgs/servers/nextcloud/packages/26.json
@@ -10,9 +10,9 @@
     ]
   },
   "calendar": {
-    "sha256": "0lz1sly8p2lhr425ggj3dacz0i28xg32041zdg3nl916yayvqj2p",
-    "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.6.3/calendar-v4.6.3.tar.gz",
-    "version": "4.6.3",
+    "sha256": "06blkrgc9jq8zizgchn8az2cj0s3yy8s05kyhiwj1nb1rx32682j",
+    "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.6.4/calendar-v4.6.4.tar.gz",
+    "version": "4.6.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": [
@@ -43,16 +43,16 @@
     "sha256": "0ygisjx3abxc2nsrwqrw9dbpvm38qxa0bk280962yh1bb54i04vs",
     "url": "https://github.com/julien-nc/cospend-nc/releases/download/v1.5.14/cospend-1.5.14.tar.gz",
     "version": "1.5.14",
-    "description": "# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share money with others.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be accessed and modified by people without a Nextcloud account. Each project has an ID and a password for guest access.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently being developped!\n\n## Features\n\n* ✎ create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ check member balances\n* 🗠 display project statistics\n* ♻ display settlement plan\n* 🎇 automatically create reimbursement bills from settlement plan\n* 🗓 create recurring bills (daily/weekly/monthly/yearly)\n* 📊 optionally provide custom amount for each member in new bills\n* 🔗 link bills with personal files (picture of physical bill for example)\n* 👩 guest access for people outside Nextcloud\n* 👫 share projects with Nextcloud users/groups/circles\n* 🖫 import/export projects as csv (compatible with csv files from IHateMoney)\n* 🔗 generate link/QRCode to easily import projects in MoneyBuster\n* 🗲 implement Nextcloud notifications and activity stream\n\nThis app is tested on Nextcloud 20+ with Firefox 57+ and Chromium.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://gitlab.com/eneiluj/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/eneiluj/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/eneiluj/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/eneiluj/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/eneiluj/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/eneiluj/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* it does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)",
+    "description": "# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Features\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)",
     "homepage": "https://github.com/julien-nc/cospend-nc",
     "licenses": [
       "agpl"
     ]
   },
   "deck": {
-    "sha256": "1dkvvk7n120hgk3pf03g2ixlylp7nxmi3wh9qsp8b0fimclpd5hz",
-    "url": "https://github.com/nextcloud-releases/deck/releases/download/v1.9.5/deck-v1.9.5.tar.gz",
-    "version": "1.9.5",
+    "sha256": "1vf4vmwzfyj5ylb571h1wgh8f3aiivzla11y14ggikg5fj9lgyqi",
+    "url": "https://github.com/nextcloud-releases/deck/releases/download/v1.9.6/deck-v1.9.6.tar.gz",
+    "version": "1.9.6",
     "description": "Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized",
     "homepage": "https://github.com/nextcloud/deck",
     "licenses": [
@@ -100,9 +100,9 @@
     ]
   },
   "gpoddersync": {
-    "sha256": "1b74l6j9w3xnjbb57viz4bfridkpyvq7rq29kfr8cm03jm2nzq3r",
-    "url": "https://github.com/thrillfall/nextcloud-gpodder/releases/download/3.8.2/gpoddersync.tar.gz",
-    "version": "3.8.2",
+    "sha256": "1lm8lqvs1mvb3i2a8b5j9g7b26f747jfp696b9ima0hgpw8ycbfs",
+    "url": "https://github.com/thrillfall/nextcloud-gpodder/releases/download/3.8.3/gpoddersync.tar.gz",
+    "version": "3.8.3",
     "description": "Expose GPodder API to sync podcast consumer apps like AntennaPod",
     "homepage": "https://github.com/thrillfall/nextcloud-gpodder",
     "licenses": [
@@ -129,20 +129,10 @@
       "agpl"
     ]
   },
-  "keeweb": {
-    "sha256": "11q15ajg1357y5y5a640dvsy6hhvvar7wp34zfsb07n7hqlmyci0",
-    "url": "https://github.com/jhass/nextcloud-keeweb/releases/download/v0.6.13/keeweb-0.6.13.tar.gz",
-    "version": "0.6.13",
-    "description": "Open Keepass stores inside Nextcloud with Keeweb just by clicking on an *.kdbx file in your\n        Nextcloud.",
-    "homepage": "https://github.com/jhass/nextcloud-keeweb",
-    "licenses": [
-      "agpl"
-    ]
-  },
   "mail": {
-    "sha256": "1r4vqxmzfzv9g29smqj14a3k97hwxb9dswg7z501wgq901959bx2",
-    "url": "https://github.com/nextcloud-releases/mail/releases/download/v3.5.2/mail-v3.5.2.tar.gz",
-    "version": "3.5.2",
+    "sha256": "15268xavb4wpkc12anz6wiry87hvy55nf141lc660wr22iivy79r",
+    "url": "https://github.com/nextcloud-releases/mail/releases/download/v3.5.5/mail-v3.5.5.tar.gz",
+    "version": "3.5.5",
     "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": [
@@ -170,9 +160,9 @@
     ]
   },
   "music": {
-    "sha256": "06w82v34csx4scl5n4k4fpdxiivrzjb3yvj3hh4bc15gdz68cis9",
-    "url": "https://github.com/owncloud/music/releases/download/v1.9.1/music_1.9.1_for_nextcloud.tar.gz",
-    "version": "1.9.1",
+    "sha256": "1afjqvmcim1r22bs5vpp2b2wd01df5xdchw6ifqf57vgb7nzzkbs",
+    "url": "https://github.com/owncloud/music/releases/download/v1.10.0/music_1.10.0_for_nextcloud.tar.gz",
+    "version": "1.10.0",
     "description": "A stand-alone music player app and a \"lite\" player for the Files app\n\n- On modern browsers, supports audio types .mp3, .ogg, .m4a, .m4b, .flac, .wav, and more\n- Playlist support with import from m3u, m3u8, and pls files\n- Browse by artists, albums, genres, or folders\n- Gapless play\n- Filter the shown content with the search function\n- Play internet radio and podcast channels\n- Setup Last.fm connection to see background information on artists, albums, and songs\n- Control with media control keys on the keyboard or OS\n- The app can handle libraries consisting of thousands of albums and tens of thousands of songs\n- Includes a server backend compatible with the Subsonic and Ampache protocols, allowing playback and browsing of your library on various external apps e.g. on Android or iPhone",
     "homepage": "https://github.com/owncloud/music",
     "licenses": [
@@ -200,9 +190,9 @@
     ]
   },
   "notify_push": {
-    "sha256": "1by9qw9bsf48cyczhfxpz9ifrg2dayvcn26m309dicqgjqkz91hd",
-    "url": "https://github.com/nextcloud-releases/notify_push/releases/download/v0.6.6/notify_push-v0.6.6.tar.gz",
-    "version": "0.6.6",
+    "sha256": "1inq39kdfynip4j9hfrgybiscgii7r0wkjb5pssvmqknbpqf7x4g",
+    "url": "https://github.com/nextcloud-releases/notify_push/releases/download/v0.6.9/notify_push-v0.6.9.tar.gz",
+    "version": "0.6.9",
     "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": [
@@ -270,9 +260,9 @@
     ]
   },
   "spreed": {
-    "sha256": "0s31s0qwwzrdqwmnwcykv5vpvc953nmpviy69qn0d7gmd5qknrdx",
-    "url": "https://github.com/nextcloud-releases/spreed/releases/download/v16.0.9/spreed-v16.0.9.tar.gz",
-    "version": "16.0.9",
+    "sha256": "0da0c6a30pfwpn4ly4dczxs68v2jmi9kzmqhrpj4fvaalsk1wa7w",
+    "url": "https://github.com/nextcloud-releases/spreed/releases/download/v16.0.10/spreed-v16.0.10.tar.gz",
+    "version": "16.0.10",
     "description": "Chat, video & audio-conferencing using WebRTC\n\n* 💬 **Chat integration!** Nextcloud Talk comes with a simple text chat. Allowing you to share files from your Nextcloud and mentioning other participants.\n* 👥 **Private, group, public and password protected calls!** Just invite somebody, a whole group or send a public link to invite to a call.\n* 💻 **Screen sharing!** Share your screen with participants of your call. You just need to use Firefox version 66 (or newer), latest Edge or Chrome 72 (or newer, also possible using Chrome 49 with this [Chrome extension](https://chrome.google.com/webstore/detail/screensharing-for-nextclo/kepnpjhambipllfmgmbapncekcmabkol)).\n* 🚀 **Integration with other Nextcloud apps** like Files, Contacts and Deck. More to come.\n\nAnd in the works for the [coming versions](https://github.com/nextcloud/spreed/milestones/):\n* ✋ [Federated calls](https://github.com/nextcloud/spreed/issues/21), to call people on other Nextclouds",
     "homepage": "https://github.com/nextcloud/spreed",
     "licenses": [
@@ -320,9 +310,9 @@
     ]
   },
   "user_oidc": {
-    "sha256": "0a9hkp69xpw5nzb533nfh56zs7rf2cvhi4yc6d1yjqv9jdak7vi4",
-    "url": "https://github.com/nextcloud-releases/user_oidc/releases/download/v1.3.5/user_oidc-v1.3.5.tar.gz",
-    "version": "1.3.5",
+    "sha256": "0iyd1lkzfl7nh2sy5k9a6p86mswm5p0cyqj3ia613sw2fm49sl1b",
+    "url": "https://github.com/nextcloud-releases/user_oidc/releases/download/v1.3.6/user_oidc-v1.3.6.tar.gz",
+    "version": "1.3.6",
     "description": "Allows flexible configuration of an OIDC server as Nextcloud login user backend.",
     "homepage": "https://github.com/nextcloud/user_oidc",
     "licenses": [
@@ -330,9 +320,9 @@
     ]
   },
   "user_saml": {
-    "sha256": "0q189wkh0nh5y4z9j4bpgn4xnwwn8y8m8y34bp5nbzfz05xpgr9f",
-    "url": "https://github.com/nextcloud-releases/user_saml/releases/download/v5.2.5/user_saml-v5.2.5.tar.gz",
-    "version": "5.2.5",
+    "sha256": "0rsrbbdvf8kb9l6afz86af33ri0ng9yj7d4xw28j50mfcx3kifg3",
+    "url": "https://github.com/nextcloud-releases/user_saml/releases/download/v5.2.6/user_saml-v5.2.6.tar.gz",
+    "version": "5.2.6",
     "description": "Using the SSO & SAML app of your Nextcloud you can make it easily possible to integrate your existing Single-Sign-On solution with Nextcloud. In addition, you can use the Nextcloud LDAP user provider to keep the convenience for users. (e.g. when sharing)\nThe following providers are supported and tested at the moment:\n\n* **SAML 2.0**\n\t* OneLogin\n\t* Shibboleth\n\t* Active Directory Federation Services (ADFS)\n\n* **Authentication via Environment Variable**\n\t* Kerberos (mod_auth_kerb)\n\t* Any other provider that authenticates using the environment variable\n\nWhile theoretically any other authentication provider implementing either one of those standards is compatible, we like to note that they are not part of any internal test matrix.",
     "homepage": "https://github.com/nextcloud/user_saml",
     "licenses": [
diff --git a/pkgs/servers/nextcloud/packages/27.json b/pkgs/servers/nextcloud/packages/27.json
index f39e22e4f09a..217430479d75 100644
--- a/pkgs/servers/nextcloud/packages/27.json
+++ b/pkgs/servers/nextcloud/packages/27.json
@@ -10,9 +10,9 @@
     ]
   },
   "calendar": {
-    "sha256": "0lz1sly8p2lhr425ggj3dacz0i28xg32041zdg3nl916yayvqj2p",
-    "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.6.3/calendar-v4.6.3.tar.gz",
-    "version": "4.6.3",
+    "sha256": "06blkrgc9jq8zizgchn8az2cj0s3yy8s05kyhiwj1nb1rx32682j",
+    "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.6.4/calendar-v4.6.4.tar.gz",
+    "version": "4.6.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": [
@@ -40,19 +40,19 @@
     ]
   },
   "cospend": {
-    "sha256": "0ygisjx3abxc2nsrwqrw9dbpvm38qxa0bk280962yh1bb54i04vs",
-    "url": "https://github.com/julien-nc/cospend-nc/releases/download/v1.5.14/cospend-1.5.14.tar.gz",
-    "version": "1.5.14",
-    "description": "# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share money with others.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be accessed and modified by people without a Nextcloud account. Each project has an ID and a password for guest access.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently being developped!\n\n## Features\n\n* ✎ create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ check member balances\n* 🗠 display project statistics\n* ♻ display settlement plan\n* 🎇 automatically create reimbursement bills from settlement plan\n* 🗓 create recurring bills (daily/weekly/monthly/yearly)\n* 📊 optionally provide custom amount for each member in new bills\n* 🔗 link bills with personal files (picture of physical bill for example)\n* 👩 guest access for people outside Nextcloud\n* 👫 share projects with Nextcloud users/groups/circles\n* 🖫 import/export projects as csv (compatible with csv files from IHateMoney)\n* 🔗 generate link/QRCode to easily import projects in MoneyBuster\n* 🗲 implement Nextcloud notifications and activity stream\n\nThis app is tested on Nextcloud 20+ with Firefox 57+ and Chromium.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://gitlab.com/eneiluj/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/eneiluj/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/eneiluj/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/eneiluj/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/eneiluj/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/eneiluj/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* it does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)",
+    "sha256": "1wxhhyd47gw14y3wl7c41agwa29k0nymys91p24x3dhd0nm61h1y",
+    "url": "https://github.com/julien-nc/cospend-nc/releases/download/v1.6.0/cospend-1.6.0.tar.gz",
+    "version": "1.6.0",
+    "description": "# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Features\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)",
     "homepage": "https://github.com/julien-nc/cospend-nc",
     "licenses": [
       "agpl"
     ]
   },
   "deck": {
-    "sha256": "0ykxfw9v89k4a3g6lbl75d0hwri85kf6jqx1n5v2jxibfr5n4bcp",
-    "url": "https://github.com/nextcloud-releases/deck/releases/download/v1.11.2/deck-v1.11.2.tar.gz",
-    "version": "1.11.2",
+    "sha256": "1bl7x3h91rcjd3xx8lq2rkx8khpw5f3n0kqi8mrs88hw0hin8sdi",
+    "url": "https://github.com/nextcloud-releases/deck/releases/download/v1.11.3/deck-v1.11.3.tar.gz",
+    "version": "1.11.3",
     "description": "Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized",
     "homepage": "https://github.com/nextcloud/deck",
     "licenses": [
@@ -100,9 +100,9 @@
     ]
   },
   "gpoddersync": {
-    "sha256": "1b74l6j9w3xnjbb57viz4bfridkpyvq7rq29kfr8cm03jm2nzq3r",
-    "url": "https://github.com/thrillfall/nextcloud-gpodder/releases/download/3.8.2/gpoddersync.tar.gz",
-    "version": "3.8.2",
+    "sha256": "1lm8lqvs1mvb3i2a8b5j9g7b26f747jfp696b9ima0hgpw8ycbfs",
+    "url": "https://github.com/thrillfall/nextcloud-gpodder/releases/download/3.8.3/gpoddersync.tar.gz",
+    "version": "3.8.3",
     "description": "Expose GPodder API to sync podcast consumer apps like AntennaPod",
     "homepage": "https://github.com/thrillfall/nextcloud-gpodder",
     "licenses": [
@@ -110,9 +110,9 @@
     ]
   },
   "groupfolders": {
-    "sha256": "1cxhffm4fav93rrlkw6bqjrqj8qyfx1dkwlpacqjy2k1yknv06ym",
-    "url": "https://github.com/nextcloud-releases/groupfolders/releases/download/v15.3.2/groupfolders-v15.3.2.tar.gz",
-    "version": "15.3.2",
+    "sha256": "1sihhcai7i7gnkl0adq1injlsvk5ainvy71a2373iqmpmi167pyf",
+    "url": "https://github.com/nextcloud-releases/groupfolders/releases/download/v15.3.4/groupfolders-v15.3.4.tar.gz",
+    "version": "15.3.4",
     "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": [
@@ -129,20 +129,10 @@
       "agpl"
     ]
   },
-  "keeweb": {
-    "sha256": "11q15ajg1357y5y5a640dvsy6hhvvar7wp34zfsb07n7hqlmyci0",
-    "url": "https://github.com/jhass/nextcloud-keeweb/releases/download/v0.6.13/keeweb-0.6.13.tar.gz",
-    "version": "0.6.13",
-    "description": "Open Keepass stores inside Nextcloud with Keeweb just by clicking on an *.kdbx file in your\n        Nextcloud.",
-    "homepage": "https://github.com/jhass/nextcloud-keeweb",
-    "licenses": [
-      "agpl"
-    ]
-  },
   "mail": {
-    "sha256": "1r4vqxmzfzv9g29smqj14a3k97hwxb9dswg7z501wgq901959bx2",
-    "url": "https://github.com/nextcloud-releases/mail/releases/download/v3.5.2/mail-v3.5.2.tar.gz",
-    "version": "3.5.2",
+    "sha256": "15268xavb4wpkc12anz6wiry87hvy55nf141lc660wr22iivy79r",
+    "url": "https://github.com/nextcloud-releases/mail/releases/download/v3.5.5/mail-v3.5.5.tar.gz",
+    "version": "3.5.5",
     "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": [
@@ -150,8 +140,8 @@
     ]
   },
   "maps": {
-    "sha256": "049hrp79fj1bp9nk9isjrk427k238974x7gsj68jplxfrgq3sdkz",
-    "url": "https://github.com/nextcloud/maps/releases/download/v1.2.0-2-nightly/maps-1.2.0-2-nightly.tar.gz",
+    "sha256": "1gyxg5xp4mpdrw8630nqcf5yk8cs7a0kvfik2q01p05d533phc4d",
+    "url": "https://github.com/nextcloud/maps/releases/download/v1.2.0/maps-1.2.0.tar.gz",
     "version": "1.2.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",
@@ -170,9 +160,9 @@
     ]
   },
   "music": {
-    "sha256": "06w82v34csx4scl5n4k4fpdxiivrzjb3yvj3hh4bc15gdz68cis9",
-    "url": "https://github.com/owncloud/music/releases/download/v1.9.1/music_1.9.1_for_nextcloud.tar.gz",
-    "version": "1.9.1",
+    "sha256": "1afjqvmcim1r22bs5vpp2b2wd01df5xdchw6ifqf57vgb7nzzkbs",
+    "url": "https://github.com/owncloud/music/releases/download/v1.10.0/music_1.10.0_for_nextcloud.tar.gz",
+    "version": "1.10.0",
     "description": "A stand-alone music player app and a \"lite\" player for the Files app\n\n- On modern browsers, supports audio types .mp3, .ogg, .m4a, .m4b, .flac, .wav, and more\n- Playlist support with import from m3u, m3u8, and pls files\n- Browse by artists, albums, genres, or folders\n- Gapless play\n- Filter the shown content with the search function\n- Play internet radio and podcast channels\n- Setup Last.fm connection to see background information on artists, albums, and songs\n- Control with media control keys on the keyboard or OS\n- The app can handle libraries consisting of thousands of albums and tens of thousands of songs\n- Includes a server backend compatible with the Subsonic and Ampache protocols, allowing playback and browsing of your library on various external apps e.g. on Android or iPhone",
     "homepage": "https://github.com/owncloud/music",
     "licenses": [
@@ -200,9 +190,9 @@
     ]
   },
   "notify_push": {
-    "sha256": "1by9qw9bsf48cyczhfxpz9ifrg2dayvcn26m309dicqgjqkz91hd",
-    "url": "https://github.com/nextcloud-releases/notify_push/releases/download/v0.6.6/notify_push-v0.6.6.tar.gz",
-    "version": "0.6.6",
+    "sha256": "1inq39kdfynip4j9hfrgybiscgii7r0wkjb5pssvmqknbpqf7x4g",
+    "url": "https://github.com/nextcloud-releases/notify_push/releases/download/v0.6.9/notify_push-v0.6.9.tar.gz",
+    "version": "0.6.9",
     "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": [
@@ -270,9 +260,9 @@
     ]
   },
   "spreed": {
-    "sha256": "00fw0v4ybdfirdp62qvrzihz95vxh1bnni1zjwz5j9d4jzzv2xnn",
-    "url": "https://github.com/nextcloud-releases/spreed/releases/download/v17.1.4/spreed-v17.1.4.tar.gz",
-    "version": "17.1.4",
+    "sha256": "0dpys4h9rn3sw46iiffghf3n10hda9jk7kz1vxy4jna1zczarw6j",
+    "url": "https://github.com/nextcloud-releases/spreed/releases/download/v17.1.5/spreed-v17.1.5.tar.gz",
+    "version": "17.1.5",
     "description": "Chat, video & audio-conferencing using WebRTC\n\n* 💬 **Chat integration!** Nextcloud Talk comes with a simple text chat. Allowing you to share files from your Nextcloud and mentioning other participants.\n* 👥 **Private, group, public and password protected calls!** Just invite somebody, a whole group or send a public link to invite to a call.\n* 💻 **Screen sharing!** Share your screen with participants of your call. You just need to use Firefox version 66 (or newer), latest Edge or Chrome 72 (or newer, also possible using Chrome 49 with this [Chrome extension](https://chrome.google.com/webstore/detail/screensharing-for-nextclo/kepnpjhambipllfmgmbapncekcmabkol)).\n* 🚀 **Integration with other Nextcloud apps** like Files, Contacts and Deck. More to come.\n\nAnd in the works for the [coming versions](https://github.com/nextcloud/spreed/milestones/):\n* ✋ [Federated calls](https://github.com/nextcloud/spreed/issues/21), to call people on other Nextclouds",
     "homepage": "https://github.com/nextcloud/spreed",
     "licenses": [
@@ -320,9 +310,9 @@
     ]
   },
   "user_oidc": {
-    "sha256": "0a9hkp69xpw5nzb533nfh56zs7rf2cvhi4yc6d1yjqv9jdak7vi4",
-    "url": "https://github.com/nextcloud-releases/user_oidc/releases/download/v1.3.5/user_oidc-v1.3.5.tar.gz",
-    "version": "1.3.5",
+    "sha256": "0iyd1lkzfl7nh2sy5k9a6p86mswm5p0cyqj3ia613sw2fm49sl1b",
+    "url": "https://github.com/nextcloud-releases/user_oidc/releases/download/v1.3.6/user_oidc-v1.3.6.tar.gz",
+    "version": "1.3.6",
     "description": "Allows flexible configuration of an OIDC server as Nextcloud login user backend.",
     "homepage": "https://github.com/nextcloud/user_oidc",
     "licenses": [
@@ -330,9 +320,9 @@
     ]
   },
   "user_saml": {
-    "sha256": "0q189wkh0nh5y4z9j4bpgn4xnwwn8y8m8y34bp5nbzfz05xpgr9f",
-    "url": "https://github.com/nextcloud-releases/user_saml/releases/download/v5.2.5/user_saml-v5.2.5.tar.gz",
-    "version": "5.2.5",
+    "sha256": "0rsrbbdvf8kb9l6afz86af33ri0ng9yj7d4xw28j50mfcx3kifg3",
+    "url": "https://github.com/nextcloud-releases/user_saml/releases/download/v5.2.6/user_saml-v5.2.6.tar.gz",
+    "version": "5.2.6",
     "description": "Using the SSO & SAML app of your Nextcloud you can make it easily possible to integrate your existing Single-Sign-On solution with Nextcloud. In addition, you can use the Nextcloud LDAP user provider to keep the convenience for users. (e.g. when sharing)\nThe following providers are supported and tested at the moment:\n\n* **SAML 2.0**\n\t* OneLogin\n\t* Shibboleth\n\t* Active Directory Federation Services (ADFS)\n\n* **Authentication via Environment Variable**\n\t* Kerberos (mod_auth_kerb)\n\t* Any other provider that authenticates using the environment variable\n\nWhile theoretically any other authentication provider implementing either one of those standards is compatible, we like to note that they are not part of any internal test matrix.",
     "homepage": "https://github.com/nextcloud/user_saml",
     "licenses": [
diff --git a/pkgs/servers/nextcloud/packages/28.json b/pkgs/servers/nextcloud/packages/28.json
index 03386b681dbb..a9112345e430 100644
--- a/pkgs/servers/nextcloud/packages/28.json
+++ b/pkgs/servers/nextcloud/packages/28.json
@@ -10,9 +10,9 @@
     ]
   },
   "calendar": {
-    "sha256": "0lz1sly8p2lhr425ggj3dacz0i28xg32041zdg3nl916yayvqj2p",
-    "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.6.3/calendar-v4.6.3.tar.gz",
-    "version": "4.6.3",
+    "sha256": "06blkrgc9jq8zizgchn8az2cj0s3yy8s05kyhiwj1nb1rx32682j",
+    "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.6.4/calendar-v4.6.4.tar.gz",
+    "version": "4.6.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": [
@@ -40,19 +40,19 @@
     ]
   },
   "cospend": {
-    "sha256": "0ygisjx3abxc2nsrwqrw9dbpvm38qxa0bk280962yh1bb54i04vs",
-    "url": "https://github.com/julien-nc/cospend-nc/releases/download/v1.5.14/cospend-1.5.14.tar.gz",
-    "version": "1.5.14",
-    "description": "# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share money with others.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be accessed and modified by people without a Nextcloud account. Each project has an ID and a password for guest access.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently being developped!\n\n## Features\n\n* ✎ create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ check member balances\n* 🗠 display project statistics\n* ♻ display settlement plan\n* 🎇 automatically create reimbursement bills from settlement plan\n* 🗓 create recurring bills (daily/weekly/monthly/yearly)\n* 📊 optionally provide custom amount for each member in new bills\n* 🔗 link bills with personal files (picture of physical bill for example)\n* 👩 guest access for people outside Nextcloud\n* 👫 share projects with Nextcloud users/groups/circles\n* 🖫 import/export projects as csv (compatible with csv files from IHateMoney)\n* 🔗 generate link/QRCode to easily import projects in MoneyBuster\n* 🗲 implement Nextcloud notifications and activity stream\n\nThis app is tested on Nextcloud 20+ with Firefox 57+ and Chromium.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://gitlab.com/eneiluj/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/eneiluj/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/eneiluj/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/eneiluj/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/eneiluj/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/eneiluj/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* it does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)",
+    "sha256": "1wxhhyd47gw14y3wl7c41agwa29k0nymys91p24x3dhd0nm61h1y",
+    "url": "https://github.com/julien-nc/cospend-nc/releases/download/v1.6.0/cospend-1.6.0.tar.gz",
+    "version": "1.6.0",
+    "description": "# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Features\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)",
     "homepage": "https://github.com/julien-nc/cospend-nc",
     "licenses": [
       "agpl"
     ]
   },
   "deck": {
-    "sha256": "0dkw59pv3yj21fs87sw2y4z1qplsgbfnr0nk9cjsb8vb3xjzd0rx",
-    "url": "https://github.com/nextcloud-releases/deck/releases/download/v1.12.0/deck-v1.12.0.tar.gz",
-    "version": "1.12.0",
+    "sha256": "08yxwrf5dx8fh70hcpr54ca5h6f2p2ck2hmjnxz5jymd6pnadsr6",
+    "url": "https://github.com/nextcloud-releases/deck/releases/download/v1.12.1/deck-v1.12.1.tar.gz",
+    "version": "1.12.1",
     "description": "Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized",
     "homepage": "https://github.com/nextcloud/deck",
     "licenses": [
@@ -80,9 +80,9 @@
     ]
   },
   "gpoddersync": {
-    "sha256": "1b74l6j9w3xnjbb57viz4bfridkpyvq7rq29kfr8cm03jm2nzq3r",
-    "url": "https://github.com/thrillfall/nextcloud-gpodder/releases/download/3.8.2/gpoddersync.tar.gz",
-    "version": "3.8.2",
+    "sha256": "1lm8lqvs1mvb3i2a8b5j9g7b26f747jfp696b9ima0hgpw8ycbfs",
+    "url": "https://github.com/thrillfall/nextcloud-gpodder/releases/download/3.8.3/gpoddersync.tar.gz",
+    "version": "3.8.3",
     "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": "024qll51hdsky6iad0acf3c00ny9k9mc303r2v4g4h53qx2gksys",
-    "url": "https://github.com/nextcloud-releases/groupfolders/releases/download/v16.0.1/groupfolders-v16.0.1.tar.gz",
-    "version": "16.0.1",
+    "sha256": "17v57z7fsbp2m3918x78zrm3ywnbm7vsrcb48x44v5pakdhca3gy",
+    "url": "https://github.com/nextcloud-releases/groupfolders/releases/download/v16.0.3/groupfolders-v16.0.3.tar.gz",
+    "version": "16.0.3",
     "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": [
@@ -109,20 +109,10 @@
       "agpl"
     ]
   },
-  "keeweb": {
-    "sha256": "1mi0cghf8f3sjn77gppf0mn46b8a5jkg7fkm91dd2firygaj1g7b",
-    "url": "https://github.com/jhass/nextcloud-keeweb/releases/download/v0.6.15/keeweb-0.6.15.tar.gz",
-    "version": "0.6.15",
-    "description": "Open Keepass stores inside Nextcloud with Keeweb just by clicking on an *.kdbx file in your\n        Nextcloud.",
-    "homepage": "https://github.com/jhass/nextcloud-keeweb",
-    "licenses": [
-      "agpl"
-    ]
-  },
   "mail": {
-    "sha256": "1r4vqxmzfzv9g29smqj14a3k97hwxb9dswg7z501wgq901959bx2",
-    "url": "https://github.com/nextcloud-releases/mail/releases/download/v3.5.2/mail-v3.5.2.tar.gz",
-    "version": "3.5.2",
+    "sha256": "15268xavb4wpkc12anz6wiry87hvy55nf141lc660wr22iivy79r",
+    "url": "https://github.com/nextcloud-releases/mail/releases/download/v3.5.5/mail-v3.5.5.tar.gz",
+    "version": "3.5.5",
     "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": [
@@ -149,6 +139,16 @@
       "agpl"
     ]
   },
+  "music": {
+    "sha256": "1afjqvmcim1r22bs5vpp2b2wd01df5xdchw6ifqf57vgb7nzzkbs",
+    "url": "https://github.com/owncloud/music/releases/download/v1.10.0/music_1.10.0_for_nextcloud.tar.gz",
+    "version": "1.10.0",
+    "description": "A stand-alone music player app and a \"lite\" player for the Files app\n\n- On modern browsers, supports audio types .mp3, .ogg, .m4a, .m4b, .flac, .wav, and more\n- Playlist support with import from m3u, m3u8, and pls files\n- Browse by artists, albums, genres, or folders\n- Gapless play\n- Filter the shown content with the search function\n- Play internet radio and podcast channels\n- Setup Last.fm connection to see background information on artists, albums, and songs\n- Control with media control keys on the keyboard or OS\n- The app can handle libraries consisting of thousands of albums and tens of thousands of songs\n- Includes a server backend compatible with the Subsonic and Ampache protocols, allowing playback and browsing of your library on various external apps e.g. on Android or iPhone",
+    "homepage": "https://github.com/owncloud/music",
+    "licenses": [
+      "agpl"
+    ]
+  },
   "notes": {
     "sha256": "02893azzq507frb3x7h13ypx09yn9rx740hgfw7q1a2il2ixww5f",
     "url": "https://github.com/nextcloud-releases/notes/releases/download/v4.9.2/notes.tar.gz",
@@ -160,9 +160,9 @@
     ]
   },
   "notify_push": {
-    "sha256": "1by9qw9bsf48cyczhfxpz9ifrg2dayvcn26m309dicqgjqkz91hd",
-    "url": "https://github.com/nextcloud-releases/notify_push/releases/download/v0.6.6/notify_push-v0.6.6.tar.gz",
-    "version": "0.6.6",
+    "sha256": "1inq39kdfynip4j9hfrgybiscgii7r0wkjb5pssvmqknbpqf7x4g",
+    "url": "https://github.com/nextcloud-releases/notify_push/releases/download/v0.6.9/notify_push-v0.6.9.tar.gz",
+    "version": "0.6.9",
     "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 @@
     ]
   },
   "spreed": {
-    "sha256": "0wppkdb5rq2128jr62i700jc8v1p0j8fq61wfmxkx3pf0x67nri9",
-    "url": "https://github.com/nextcloud-releases/spreed/releases/download/v18.0.1/spreed-v18.0.1.tar.gz",
-    "version": "18.0.1",
+    "sha256": "0nfjm8cjhgmkrr68gnnabma4z6v3rpc00c6yg22kq7shnk1cn6k1",
+    "url": "https://github.com/nextcloud-releases/spreed/releases/download/v18.0.3/spreed-v18.0.3.tar.gz",
+    "version": "18.0.3",
     "description": "Chat, video & audio-conferencing using WebRTC\n\n* 💬 **Chat integration!** Nextcloud Talk comes with a simple text chat. Allowing you to share files from your Nextcloud and mentioning other participants.\n* 👥 **Private, group, public and password protected calls!** Just invite somebody, a whole group or send a public link to invite to a call.\n* 💻 **Screen sharing!** Share your screen with participants of your call. You just need to use Firefox version 66 (or newer), latest Edge or Chrome 72 (or newer, also possible using Chrome 49 with this [Chrome extension](https://chrome.google.com/webstore/detail/screensharing-for-nextclo/kepnpjhambipllfmgmbapncekcmabkol)).\n* 🚀 **Integration with other Nextcloud apps** like Files, Contacts and Deck. More to come.\n\nAnd in the works for the [coming versions](https://github.com/nextcloud/spreed/milestones/):\n* ✋ [Federated calls](https://github.com/nextcloud/spreed/issues/21), to call people on other Nextclouds",
     "homepage": "https://github.com/nextcloud/spreed",
     "licenses": [
@@ -270,9 +270,9 @@
     ]
   },
   "user_oidc": {
-    "sha256": "0a9hkp69xpw5nzb533nfh56zs7rf2cvhi4yc6d1yjqv9jdak7vi4",
-    "url": "https://github.com/nextcloud-releases/user_oidc/releases/download/v1.3.5/user_oidc-v1.3.5.tar.gz",
-    "version": "1.3.5",
+    "sha256": "0iyd1lkzfl7nh2sy5k9a6p86mswm5p0cyqj3ia613sw2fm49sl1b",
+    "url": "https://github.com/nextcloud-releases/user_oidc/releases/download/v1.3.6/user_oidc-v1.3.6.tar.gz",
+    "version": "1.3.6",
     "description": "Allows flexible configuration of an OIDC server as Nextcloud login user backend.",
     "homepage": "https://github.com/nextcloud/user_oidc",
     "licenses": [
@@ -280,9 +280,9 @@
     ]
   },
   "user_saml": {
-    "sha256": "0y5l66ig38202mg5zhy6yi72fz8fbsr7410q6qclxivna3gvyzrc",
-    "url": "https://github.com/nextcloud-releases/user_saml/releases/download/v6.0.1/user_saml-v6.0.1.tar.gz",
-    "version": "6.0.1",
+    "sha256": "122bj8hqd4c554n07wjnwmqd4lp1j3440jbdjg45hwpnw2s8wlr5",
+    "url": "https://github.com/nextcloud-releases/user_saml/releases/download/v6.1.1/user_saml-v6.1.1.tar.gz",
+    "version": "6.1.1",
     "description": "Using the SSO & SAML app of your Nextcloud you can make it easily possible to integrate your existing Single-Sign-On solution with Nextcloud. In addition, you can use the Nextcloud LDAP user provider to keep the convenience for users. (e.g. when sharing)\nThe following providers are supported and tested at the moment:\n\n* **SAML 2.0**\n\t* OneLogin\n\t* Shibboleth\n\t* Active Directory Federation Services (ADFS)\n\n* **Authentication via Environment Variable**\n\t* Kerberos (mod_auth_kerb)\n\t* Any other provider that authenticates using the environment variable\n\nWhile theoretically any other authentication provider implementing either one of those standards is compatible, we like to note that they are not part of any internal test matrix.",
     "homepage": "https://github.com/nextcloud/user_saml",
     "licenses": [
diff --git a/pkgs/servers/nextcloud/packages/nextcloud-apps.json b/pkgs/servers/nextcloud/packages/nextcloud-apps.json
index 559ebd981824..971886287071 100644
--- a/pkgs/servers/nextcloud/packages/nextcloud-apps.json
+++ b/pkgs/servers/nextcloud/packages/nextcloud-apps.json
@@ -12,7 +12,6 @@
 , "gpoddersync": "agpl3Only"
 , "groupfolders": "agpl3Plus"
 , "impersonate": "agpl3Plus"
-, "keeweb": "agpl3Plus"
 , "mail": "agpl3Plus"
 , "maps": "agpl3Plus"
 , "memories": "agpl3Plus"
diff --git a/pkgs/servers/nominatim/default.nix b/pkgs/servers/nominatim/default.nix
index a666da35f4ca..db126863fe04 100644
--- a/pkgs/servers/nominatim/default.nix
+++ b/pkgs/servers/nominatim/default.nix
@@ -45,6 +45,7 @@ stdenv.mkDerivation rec {
       jinja2
       pyicu
       datrie
+      pyosmium
     ]))
     # python3Packages.pylint  # We don't want to run pylint because the package could break on pylint bumps which is really annoying.
     # python3Packages.pytest  # disabled since I can't get it to run tests anyway
diff --git a/pkgs/servers/nosql/aerospike/default.nix b/pkgs/servers/nosql/aerospike/default.nix
index 9c0d034d7b3a..301cb7de1aac 100644
--- a/pkgs/servers/nosql/aerospike/default.nix
+++ b/pkgs/servers/nosql/aerospike/default.nix
@@ -1,32 +1,30 @@
-{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, openssl, zlib }:
+{ lib, stdenv, fetchFromGitHub, autoconf, automake, cmake, libtool, openssl, zlib }:
 
 stdenv.mkDerivation rec {
   pname = "aerospike-server";
-  version = "4.2.0.4";
+  version = "7.0.0.3";
 
   src = fetchFromGitHub {
     owner = "aerospike";
     repo = "aerospike-server";
     rev = version;
-    sha256 = "1vqi3xir4l57v62q1ns3713vajxffs6crss8fpvbcs57p7ygx3s7";
+    hash = "sha256-qyVfoOnWIUY1np58HtpVrKNsgiXlvdgffyMGjk+G5qI=";
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [ autoconf automake libtool ];
+  nativeBuildInputs = [ autoconf automake cmake libtool ];
   buildInputs = [ openssl zlib ];
 
+  dontUseCmakeConfigure = true;
+
   preBuild = ''
     patchShebangs build/gen_version
     substituteInPlace build/gen_version --replace 'git describe' 'echo ${version}'
-
-    # drop blanket -Werror
-    substituteInPlace make_in/Makefile.in --replace '-Werror' ""
   '';
 
   installPhase = ''
-    mkdir -p $out/bin $out/share/udf
-    cp      target/Linux-x86_64/bin/asd $out/bin/asd
-    cp -dpR modules/lua-core/src        $out/share/udf/lua
+    mkdir -p $out/bin
+    cp target/Linux-x86_64/bin/asd $out/bin/asd
   '';
 
   meta = with lib; {
@@ -35,6 +33,5 @@ stdenv.mkDerivation rec {
     license = licenses.agpl3;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ kalbasit ];
-    knownVulnerabilities = [ "CVE-2020-13151" ];
   };
 }
diff --git a/pkgs/servers/nosql/ferretdb/default.nix b/pkgs/servers/nosql/ferretdb/default.nix
index 29a984ad4fde..69ee8650697f 100644
--- a/pkgs/servers/nosql/ferretdb/default.nix
+++ b/pkgs/servers/nosql/ferretdb/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "ferretdb";
-  version = "1.18.0";
+  version = "1.19.0";
 
   src = fetchFromGitHub {
     owner = "FerretDB";
     repo = "FerretDB";
     rev = "v${version}";
-    hash = "sha256-NNfX0WY3AynH5CtvBMaPcurom7r7suxKwn+kVnlxM/A=";
+    hash = "sha256-G2eQ0CjvZYYTFnx1U+qUGiZLqY8Xx70p7J1lkzbxmF8=";
   };
 
   postPatch = ''
@@ -20,7 +20,7 @@ buildGoModule rec {
     echo nixpkgs     > build/version/package.txt
   '';
 
-  vendorHash = "sha256-4AUTKZ4eJZkaSKq5norUDeGhIRygLSIuXxhs3z3uGxs=";
+  vendorHash = "sha256-27WwvhX4QHmhBbg8/OFA7MKo34jwngkDQ/ahqV3N4qY=";
 
   CGO_ENABLED = 0;
 
diff --git a/pkgs/servers/nosql/mongodb/mongodb.nix b/pkgs/servers/nosql/mongodb/mongodb.nix
index df7efb33b68e..f76236fc8be4 100644
--- a/pkgs/servers/nosql/mongodb/mongodb.nix
+++ b/pkgs/servers/nosql/mongodb/mongodb.nix
@@ -9,6 +9,8 @@
 , zlib
 , yaml-cpp
 , sasl
+, net-snmp
+, openldap
 , openssl
 , libpcap
 , python3
@@ -95,6 +97,8 @@ in stdenv.mkDerivation rec {
     libpcap
     yaml-cpp
     openssl
+    net-snmp
+    openldap
     pcre-cpp
     variants.python
     sasl
diff --git a/pkgs/servers/nosql/redis/default.nix b/pkgs/servers/nosql/redis/default.nix
index c3ac0ebbf969..923de9126b5f 100644
--- a/pkgs/servers/nosql/redis/default.nix
+++ b/pkgs/servers/nosql/redis/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, lua, jemalloc, pkg-config, nixosTests
+{ lib, stdenv, fetchurl, fetchpatch, 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
@@ -12,14 +12,21 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "redis";
-  version = "7.2.3";
+  version = "7.2.4";
 
   src = fetchurl {
     url = "https://download.redis.io/releases/redis-${finalAttrs.version}.tar.gz";
-    hash = "sha256-PisZbW603bnnQwiL/CkVzLtC1A9aij7djLaccW7DS+c=";
+    hash = "sha256-jRBMJqFUsp/WfWVotPN1ISISrUHgwsqj1mSA5429O1k=";
   };
 
-  patches = lib.optionals useSystemJemalloc [
+  patches = [
+    # fixes: make test [exception]: Executing test client: permission denied
+    # https://github.com/redis/redis/issues/12792
+    (fetchpatch {
+      url = "https://github.com/redis/redis/pull/12887.diff";
+      hash = "sha256-VZEMShW7Ckn5hLJHffQvE94Uly41WZW1bwvxny+Y3W8=";
+    })
+  ] ++ lib.optionals useSystemJemalloc [
     # use system jemalloc
     (fetchurl {
       url = "https://gitlab.archlinux.org/archlinux/packaging/packages/redis/-/raw/102cc861713c796756abd541bf341a4512eb06e6/redis-5.0-use-system-jemalloc.patch";
diff --git a/pkgs/servers/nosql/victoriametrics/default.nix b/pkgs/servers/nosql/victoriametrics/default.nix
index fe0d637e7452..f694aeef565d 100644
--- a/pkgs/servers/nosql/victoriametrics/default.nix
+++ b/pkgs/servers/nosql/victoriametrics/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "VictoriaMetrics";
-  version = "1.96.0";
+  version = "1.97.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-/YS0IDUdGIT3QuRbD+5c3VOqrzYvbcZefLSd+tYJ6dY=";
+    hash = "sha256-zaRXvktHqsM/pZd7DsCAXCSI2jaPZ3iKHLQqDILZ9pc=";
   };
 
   vendorHash = null;
diff --git a/pkgs/servers/osmocom/osmo-bsc/default.nix b/pkgs/servers/osmocom/osmo-bsc/default.nix
index 6d71b9ba8869..1f9a6cabbf18 100644
--- a/pkgs/servers/osmocom/osmo-bsc/default.nix
+++ b/pkgs/servers/osmocom/osmo-bsc/default.nix
@@ -16,13 +16,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "osmo-bsc";
-  version = "1.11.0";
+  version = "1.11.1";
 
   src = fetchFromGitHub {
     owner = "osmocom";
     repo = "osmo-bsc";
     rev = version;
-    hash = "sha256-9WXK2vw+SvAAaBzhpeB+sBux9cGWyPtJVczRfk4rI6E=";
+    hash = "sha256-pMdQcIFWiawXYnmHSjTk+3YcZNMrv3qmgWr4gkTknJA=";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/osmocom/osmo-bts/default.nix b/pkgs/servers/osmocom/osmo-bts/default.nix
index 6ba3e2f8f0ca..42a214f7ce45 100644
--- a/pkgs/servers/osmocom/osmo-bts/default.nix
+++ b/pkgs/servers/osmocom/osmo-bts/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "osmo-bts";
-  version = "1.7.1";
+  version = "1.7.2";
 
   src = fetchFromGitHub {
     owner = "osmocom";
     repo = "osmo-bts";
     rev = version;
-    hash = "sha256-Y972aa98bNU3IhuGMV80nh4ZjQKUdK6of1Q8H75Ips8=";
+    hash = "sha256-dje+B1jobsVdQZYyIkLTZzez4HQirCcjyosTQCo/v64=";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/osmocom/osmo-iuh/default.nix b/pkgs/servers/osmocom/osmo-iuh/default.nix
index 9047c7439724..56a94efbb02c 100644
--- a/pkgs/servers/osmocom/osmo-iuh/default.nix
+++ b/pkgs/servers/osmocom/osmo-iuh/default.nix
@@ -17,13 +17,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "osmo-iuh";
-  version = "1.5.0";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "osmocom";
     repo = "osmo-iuh";
     rev = version;
-    hash = "sha256-rAU2+NxD+j2jntZ7dHvakv2aTsfzAg0+SFDHtSJNpn8=";
+    hash = "sha256-1G5N74N3BH+XP4hr+w0a1wc2DaE/GXpSu3JiPo8UBhI=";
   };
 
   prePatch = ''
diff --git a/pkgs/servers/osmocom/osmo-mgw/default.nix b/pkgs/servers/osmocom/osmo-mgw/default.nix
index d08dfe52f942..fb94451aaadd 100644
--- a/pkgs/servers/osmocom/osmo-mgw/default.nix
+++ b/pkgs/servers/osmocom/osmo-mgw/default.nix
@@ -14,13 +14,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "osmo-mgw";
-  version = "1.12.0";
+  version = "1.12.2";
 
   src = fetchFromGitHub {
     owner = "osmocom";
     repo = "osmo-mgw";
     rev = version;
-    hash = "sha256-vsOaWlO6y6qV1XcH/jNjvFzApIHqNrPDzZtDoTIMA5k=";
+    hash = "sha256-RE16qzL8CXjGzoDniB8gBF0fsIaWzDuIvpdQ/5vUdug=";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/osmocom/osmo-msc/default.nix b/pkgs/servers/osmocom/osmo-msc/default.nix
index b469207d0169..1a46a010fbf9 100644
--- a/pkgs/servers/osmocom/osmo-msc/default.nix
+++ b/pkgs/servers/osmocom/osmo-msc/default.nix
@@ -19,13 +19,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "osmo-msc";
-  version = "1.11.0";
+  version = "1.11.1";
 
   src = fetchFromGitHub {
     owner = "osmocom";
     repo = "osmo-msc";
     rev = version;
-    hash = "sha256-e36k/uEajtQ3cnqn+xvPQPGWuA8ILIlkjOkd96IOvow=";
+    hash = "sha256-JsfZUkXCpyLucaj0NL+MRCr2sWSCbuZRsipi4O7kFRQ=";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/osmocom/osmo-pcu/default.nix b/pkgs/servers/osmocom/osmo-pcu/default.nix
index becbf8a04916..7349e03d9722 100644
--- a/pkgs/servers/osmocom/osmo-pcu/default.nix
+++ b/pkgs/servers/osmocom/osmo-pcu/default.nix
@@ -13,13 +13,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "osmo-pcu";
-  version = "1.3.1";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "osmocom";
     repo = "osmo-pcu";
     rev = version;
-    hash = "sha256-p5gBOHw/3NJ482EX5LcmaWkwz/ikcK7EEeio/puNTFo=";
+    hash = "sha256-rE5/wtzABEd6OVSRVrBvIJuo/CSfK19nf7tm+QQzljY=";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/pocketbase/default.nix b/pkgs/servers/pocketbase/default.nix
index fc12e6dd4071..8d8752f499e6 100644
--- a/pkgs/servers/pocketbase/default.nix
+++ b/pkgs/servers/pocketbase/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "pocketbase";
-  version = "0.20.5";
+  version = "0.21.1";
 
   src = fetchFromGitHub {
     owner = "pocketbase";
     repo = "pocketbase";
     rev = "v${version}";
-    hash = "sha256-a6UraZzl4mtacjrK3CbuJaOJ2jDw/8+t77w/JDMy9XA=";
+    hash = "sha256-f8lqDYu2tlwp+/00QaHfXvUO3CZuDWMpdVBrUW3bbio=";
   };
 
-  vendorHash = "sha256-Y70GNXThSZdG+28/ZQgxXhyZWAtMu0OM97Yhmo0Eigc=";
+  vendorHash = "sha256-u7VgZkv9Ajtra9ikeIxJRLZleH+rzs1g2SZO9zj/bes=";
 
   # This is the released subpackage from upstream repo
   subPackages = [ "examples/base" ];
diff --git a/pkgs/servers/polaris/Cargo.lock b/pkgs/servers/polaris/Cargo.lock
index 556faca98e8e..3a44683e8d2f 100644
--- a/pkgs/servers/polaris/Cargo.lock
+++ b/pkgs/servers/polaris/Cargo.lock
@@ -4,19 +4,19 @@ version = 3
 
 [[package]]
 name = "actix-codec"
-version = "0.5.0"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57a7559404a7f3573127aab53c08ce37a6c6a315c374a31070f3c91cd1b4a7fe"
+checksum = "617a8268e3537fe1d8c9ead925fca49ef6400927ee7bc26750e90ecee14ce4b8"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "bytes",
  "futures-core",
  "futures-sink",
- "log",
  "memchr",
  "pin-project-lite",
  "tokio",
  "tokio-util",
+ "tracing",
 ]
 
 [[package]]
@@ -30,7 +30,7 @@ dependencies = [
  "actix-utils",
  "actix-web",
  "askama_escape",
- "bitflags",
+ "bitflags 1.3.2",
  "bytes",
  "derive_more",
  "futures-core",
@@ -44,17 +44,17 @@ dependencies = [
 
 [[package]]
 name = "actix-http"
-version = "3.2.2"
+version = "3.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c83abf9903e1f0ad9973cc4f7b9767fd5a03a583f51a5b7a339e07987cd2724"
+checksum = "a92ef85799cba03f76e4f7c10f533e66d87c9a7e7055f3391f09000ad8351bc9"
 dependencies = [
  "actix-codec",
  "actix-rt",
  "actix-service",
  "actix-utils",
  "ahash",
- "base64",
- "bitflags",
+ "base64 0.21.3",
+ "bitflags 2.4.0",
  "brotli",
  "bytes",
  "bytestring",
@@ -75,15 +75,17 @@ dependencies = [
  "rand",
  "sha1 0.10.5",
  "smallvec",
+ "tokio",
+ "tokio-util",
  "tracing",
  "zstd",
 ]
 
 [[package]]
 name = "actix-http-test"
-version = "3.0.0"
+version = "3.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f40511826540d084fbcd68ee65b75b1849961c1760a193b09180a4851f20075b"
+checksum = "dff10f950882f80a9dc29fb5325db8f66a0692a7c9be3bf547f79e955b699b76"
 dependencies = [
  "actix-codec",
  "actix-rt",
@@ -92,7 +94,6 @@ dependencies = [
  "actix-tls",
  "actix-utils",
  "awc",
- "base64",
  "bytes",
  "futures-core",
  "http",
@@ -101,18 +102,18 @@ dependencies = [
  "serde_json",
  "serde_urlencoded",
  "slab",
- "socket2",
+ "socket2 0.4.9",
  "tokio",
 ]
 
 [[package]]
 name = "actix-macros"
-version = "0.2.3"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "465a6172cf69b960917811022d8f29bc0b7fa1398bc4f78b3c466673db1213b6"
+checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb"
 dependencies = [
  "quote",
- "syn",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -130,9 +131,9 @@ dependencies = [
 
 [[package]]
 name = "actix-rt"
-version = "2.7.0"
+version = "2.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ea16c295198e958ef31930a6ef37d0fb64e9ca3b6116e6b93a8bdae96ee1000"
+checksum = "28f32d40287d3f402ae0028a9d54bef51af15c8769492826a69d28f81893151d"
 dependencies = [
  "actix-macros",
  "futures-core",
@@ -141,9 +142,9 @@ dependencies = [
 
 [[package]]
 name = "actix-server"
-version = "2.1.1"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0da34f8e659ea1b077bb4637948b815cd3768ad5a188fdcd74ff4d84240cd824"
+checksum = "3eb13e7eef0423ea6eab0e59f6c72e7cb46d33691ad56a726b3cd07ddec2c2d4"
 dependencies = [
  "actix-rt",
  "actix-service",
@@ -151,8 +152,7 @@ dependencies = [
  "futures-core",
  "futures-util",
  "mio",
- "num_cpus",
- "socket2",
+ "socket2 0.5.3",
  "tokio",
  "tracing",
 ]
@@ -170,9 +170,9 @@ dependencies = [
 
 [[package]]
 name = "actix-test"
-version = "0.1.0"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "546b075f2ee13e081a040b60b95a08f0eceaac6bc759309026611234dc80abfe"
+checksum = "2173910d0c7d0a21730d3e1304576d9c969eead2b91f3257a7435f7face702e0"
 dependencies = [
  "actix-codec",
  "actix-http",
@@ -193,19 +193,22 @@ dependencies = [
 
 [[package]]
 name = "actix-tls"
-version = "3.0.3"
+version = "3.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9fde0cf292f7cdc7f070803cb9a0d45c018441321a78b1042ffbbb81ec333297"
+checksum = "72616e7fbec0aa99c6f3164677fa48ff5a60036d0799c98cab894a44f3e0efc3"
 dependencies = [
- "actix-codec",
  "actix-rt",
  "actix-service",
  "actix-utils",
  "futures-core",
  "http",
- "log",
+ "impl-more",
  "pin-project-lite",
+ "rustls 0.21.7",
+ "rustls-webpki 0.101.4",
+ "tokio",
  "tokio-util",
+ "tracing",
 ]
 
 [[package]]
@@ -220,9 +223,9 @@ dependencies = [
 
 [[package]]
 name = "actix-web"
-version = "4.2.1"
+version = "4.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d48f7b6534e06c7bfc72ee91db7917d4af6afe23e7d223b51e68fffbb21e96b9"
+checksum = "0e4a5b5e29603ca8c94a77c65cf874718ceb60292c5a5c3e5f4ace041af462b9"
 dependencies = [
  "actix-codec",
  "actix-http",
@@ -237,12 +240,11 @@ dependencies = [
  "bytes",
  "bytestring",
  "cfg-if",
- "cookie 0.16.1",
+ "cookie 0.16.2",
  "derive_more",
  "encoding_rs",
  "futures-core",
  "futures-util",
- "http",
  "itoa",
  "language-tags",
  "log",
@@ -254,21 +256,21 @@ dependencies = [
  "serde_json",
  "serde_urlencoded",
  "smallvec",
- "socket2",
- "time 0.3.17",
+ "socket2 0.5.3",
+ "time 0.3.28",
  "url",
 ]
 
 [[package]]
 name = "actix-web-codegen"
-version = "4.1.0"
+version = "4.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fa9362663c8643d67b2d5eafba49e4cb2c8a053a29ed00a0bea121f17c76b13"
+checksum = "eb1f50ebbb30eca122b188319a4398b3f7bb4a8cdf50ecfb73bfc6a3c3ce54f5"
 dependencies = [
  "actix-router",
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -279,7 +281,7 @@ checksum = "6dda62cf04bc3a9ad2ea8f314f721951cfdb4cdacec4e984d20e77c7bb170991"
 dependencies = [
  "actix-utils",
  "actix-web",
- "base64",
+ "base64 0.13.1",
  "futures-core",
  "futures-util",
  "log",
@@ -287,6 +289,15 @@ dependencies = [
 ]
 
 [[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"
@@ -294,10 +305,11 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
 name = "ahash"
-version = "0.7.6"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
+checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
 dependencies = [
+ "cfg-if",
  "getrandom",
  "once_cell",
  "version_check",
@@ -305,9 +317,9 @@ dependencies = [
 
 [[package]]
 name = "aho-corasick"
-version = "0.7.19"
+version = "1.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e"
+checksum = "0c378d78423fdad8089616f827526ee33c19f2fddbd5de1629152c9593ba4783"
 dependencies = [
  "memchr",
 ]
@@ -329,9 +341,9 @@ dependencies = [
 
 [[package]]
 name = "ape"
-version = "0.4.0"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38b10e5fe31529dbfc2d339c781d9951c94e97a791077273676ccc3041a01d4a"
+checksum = "1cdc864958f3a41f67f998dd2fe9635a525d2f232787d0268690b5e0876a2262"
 dependencies = [
  "byteorder",
 ]
@@ -350,9 +362,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
 name = "awc"
-version = "3.0.1"
+version = "3.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80ca7ff88063086d2e2c70b9f3b29b2fcd999bac68ac21731e66781970d68519"
+checksum = "7fa3c705a9c7917ac0f41c0757a0a747b43bbc29b0b364b081bd7c5fc67fb223"
 dependencies = [
  "actix-codec",
  "actix-http",
@@ -360,11 +372,10 @@ dependencies = [
  "actix-service",
  "actix-tls",
  "actix-utils",
- "ahash",
- "base64",
+ "base64 0.21.3",
  "bytes",
  "cfg-if",
- "cookie 0.16.1",
+ "cookie 0.16.2",
  "derive_more",
  "futures-core",
  "futures-util",
@@ -383,6 +394,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "backtrace"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+]
+
+[[package]]
 name = "base-x"
 version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -395,10 +421,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
 
 [[package]]
+name = "base64"
+version = "0.21.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "414dcefbc63d77c526a76b3afcf6fbb9b5e2791c19c3aa2297733208750c6e53"
+
+[[package]]
 name = "base64ct"
-version = "1.5.3"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b645a089122eccb6111b4f81cbc1a49f5900ac4666bb93ac027feaecf15607bf"
+checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
 
 [[package]]
 name = "bitflags"
@@ -407,21 +439,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
+name = "bitflags"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+
+[[package]]
 name = "block-buffer"
-version = "0.10.3"
+version = "0.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
 dependencies = [
  "generic-array",
 ]
 
 [[package]]
-name = "boxfnonce"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5988cb1d626264ac94100be357308f29ff7cbdd3b36bda27f450a4ee3f713426"
-
-[[package]]
 name = "branca"
 version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -445,9 +477,9 @@ dependencies = [
 
 [[package]]
 name = "brotli-decompressor"
-version = "2.3.2"
+version = "2.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59ad2d4653bf5ca36ae797b1f4bb4dbddb60ce49ca4aed8a2ce4829f60425b80"
+checksum = "4b6561fd3f895a11e8f72af2cb7d22e08366bebc2b6b57f7744c4bda27034744"
 dependencies = [
  "alloc-no-stdlib",
  "alloc-stdlib",
@@ -455,15 +487,15 @@ dependencies = [
 
 [[package]]
 name = "bumpalo"
-version = "3.11.1"
+version = "3.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba"
+checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
 
 [[package]]
 name = "bytemuck"
-version = "1.12.3"
+version = "1.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aaa3a8d9a1ca92e282c96a32d6511b695d7d994d1d102ba85d279f9b2756947f"
+checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
 
 [[package]]
 name = "byteorder"
@@ -473,26 +505,27 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
 
 [[package]]
 name = "bytes"
-version = "1.2.1"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db"
+checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
 
 [[package]]
 name = "bytestring"
-version = "1.2.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7f83e57d9154148e355404702e2694463241880b939570d7c97c014da7a69a1"
+checksum = "238e4886760d98c4f899360c834fa93e62cf7f721ac3c2da375cbdf4b8679aae"
 dependencies = [
  "bytes",
 ]
 
 [[package]]
 name = "cc"
-version = "1.0.74"
+version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "581f5dba903aac52ea3feb5ec4810848460ee833876f1f9b0fdeab1f19091574"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
 dependencies = [
  "jobserver",
+ "libc",
 ]
 
 [[package]]
@@ -503,9 +536,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "chunked_transfer"
-version = "1.4.0"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fff857943da45f546682664a79488be82e69e43c1a7a2307679ab9afb3a66d2e"
+checksum = "cca491388666e04d7248af3f60f0c40cfb0991c72205595d7c396e3510207d1a"
 
 [[package]]
 name = "color_quant"
@@ -538,12 +571,12 @@ dependencies = [
 
 [[package]]
 name = "cookie"
-version = "0.16.1"
+version = "0.16.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "344adc371239ef32293cb1c4fe519592fcf21206c79c02854320afcdf3ab4917"
+checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb"
 dependencies = [
  "percent-encoding",
- "time 0.3.17",
+ "time 0.3.28",
  "version_check",
 ]
 
@@ -565,9 +598,9 @@ dependencies = [
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.5"
+version = "0.2.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320"
+checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
 dependencies = [
  "libc",
 ]
@@ -583,9 +616,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.6"
+version = "0.5.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521"
+checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
 dependencies = [
  "cfg-if",
  "crossbeam-utils",
@@ -593,9 +626,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-deque"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc"
+checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
 dependencies = [
  "cfg-if",
  "crossbeam-epoch",
@@ -604,9 +637,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.11"
+version = "0.9.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f916dfc5d356b0ed9dae65f1db9fc9770aa2851d2662b988ccf4fe3516e86348"
+checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
 dependencies = [
  "autocfg",
  "cfg-if",
@@ -617,9 +650,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.12"
+version = "0.8.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac"
+checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
 dependencies = [
  "cfg-if",
 ]
@@ -642,15 +675,20 @@ checksum = "f3b7eb4404b8195a9abb6356f4ac07d8ba267045c8d6d220ac4dc992e6cc75df"
 
 [[package]]
 name = "daemonize"
-version = "0.4.1"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70c24513e34f53b640819f0ac9f705b673fcf4006d7aab8778bee72ebfc89815"
+checksum = "ab8bfdaacb3c887a54d41bdf48d3af8873b3f5566469f8ba21b92057509f116e"
 dependencies = [
- "boxfnonce",
  "libc",
 ]
 
 [[package]]
+name = "deranged"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946"
+
+[[package]]
 name = "derive_more"
 version = "0.99.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -660,37 +698,38 @@ dependencies = [
  "proc-macro2",
  "quote",
  "rustc_version 0.4.0",
- "syn",
+ "syn 1.0.109",
 ]
 
 [[package]]
 name = "diesel"
-version = "2.0.2"
+version = "2.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68c186a7418a2aac330bb76cde82f16c36b03a66fb91db32d20214311f9f6545"
+checksum = "d98235fdc2f355d330a8244184ab6b4b33c28679c0b4158f63138e51d6cf7e88"
 dependencies = [
  "diesel_derives",
  "libsqlite3-sys",
  "r2d2",
+ "time 0.3.28",
 ]
 
 [[package]]
 name = "diesel_derives"
-version = "2.0.1"
+version = "2.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "143b758c91dbc3fe1fdcb0dba5bd13276c6a66422f2ef5795b58488248a310aa"
+checksum = "e054665eaf6d97d1e7125512bb2d35d07c73ac86cc6920174cb42d1ab697a554"
 dependencies = [
- "proc-macro-error",
+ "diesel_table_macro_syntax",
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.31",
 ]
 
 [[package]]
 name = "diesel_migrations"
-version = "2.0.0"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e9ae22beef5e9d6fab9225ddb073c1c6c1a7a6ded5019d5da11d1e5c5adc34e2"
+checksum = "6036b3f0120c5961381b570ee20a02432d7e2d27ea60de9578799cf9156914ac"
 dependencies = [
  "diesel",
  "migrations_internals",
@@ -698,10 +737,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "diesel_table_macro_syntax"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc5557efc453706fed5e4fa85006fe9817c224c3f480a34c7e5959fd700921c5"
+dependencies = [
+ "syn 2.0.31",
+]
+
+[[package]]
 name = "digest"
-version = "0.10.5"
+version = "0.10.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
 dependencies = [
  "block-buffer",
  "crypto-common",
@@ -716,33 +764,48 @@ checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0"
 
 [[package]]
 name = "either"
-version = "1.8.0"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797"
+checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
 
 [[package]]
 name = "encoding_rs"
-version = "0.8.31"
+version = "0.8.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b"
+checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
 dependencies = [
  "cfg-if",
 ]
 
 [[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "fdeflate"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10"
+dependencies = [
+ "simd-adler32",
+]
+
+[[package]]
 name = "fiat-crypto"
-version = "0.1.17"
+version = "0.1.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a214f5bb88731d436478f3ae1f8a277b62124089ba9fb67f4f93fb100ef73c90"
+checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77"
 
 [[package]]
 name = "flate2"
-version = "1.0.24"
+version = "1.0.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6"
+checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010"
 dependencies = [
  "crc32fast",
- "miniz_oxide 0.5.4",
+ "miniz_oxide",
 ]
 
 [[package]]
@@ -753,53 +816,53 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
 name = "form_urlencoded"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
+checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
 dependencies = [
  "percent-encoding",
 ]
 
 [[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 = "futures-core"
-version = "0.3.25"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac"
+checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
 
 [[package]]
 name = "futures-macro"
-version = "0.3.25"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d"
+checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.31",
 ]
 
 [[package]]
 name = "futures-sink"
-version = "0.3.25"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9"
+checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
 
 [[package]]
 name = "futures-task"
-version = "0.3.25"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea"
+checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
 
 [[package]]
 name = "futures-util"
-version = "0.3.25"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6"
+checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
 dependencies = [
  "futures-core",
  "futures-macro",
@@ -812,9 +875,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",
@@ -831,9 +894,9 @@ dependencies = [
 
 [[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",
@@ -842,19 +905,25 @@ dependencies = [
 
 [[package]]
 name = "gif"
-version = "0.11.4"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3edd93c6756b4dfaf2709eafcc345ba2636565295c198a9cfbf75fa5e3e00b06"
+checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045"
 dependencies = [
  "color_quant",
  "weezl",
 ]
 
 [[package]]
+name = "gimli"
+version = "0.28.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
+
+[[package]]
 name = "h2"
-version = "0.3.15"
+version = "0.3.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4"
+checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833"
 dependencies = [
  "bytes",
  "fnv",
@@ -862,7 +931,7 @@ dependencies = [
  "futures-sink",
  "futures-util",
  "http",
- "indexmap",
+ "indexmap 1.9.3",
  "slab",
  "tokio",
  "tokio-util",
@@ -876,13 +945,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
 
 [[package]]
+name = "hashbrown"
+version = "0.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
+
+[[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",
- "bitflags",
+ "base64 0.21.3",
  "bytes",
  "headers-core",
  "http",
@@ -902,12 +976,9 @@ dependencies = [
 
 [[package]]
 name = "hermit-abi"
-version = "0.1.19"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-dependencies = [
- "libc",
-]
+checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
 
 [[package]]
 name = "hex"
@@ -926,9 +997,9 @@ dependencies = [
 
 [[package]]
 name = "http"
-version = "0.2.8"
+version = "0.2.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399"
+checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
 dependencies = [
  "bytes",
  "fnv",
@@ -949,16 +1020,17 @@ 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"
+checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
 
 [[package]]
 name = "id3"
-version = "1.4.0"
-source = "git+https://github.com/polyfloyd/rust-id3.git?rev=f3b5e3a#f3b5e3ac324c07c2cd5364469734ffb7a0228f77"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9389dd9c8c4671b1e4b2878a6329bccb573f9c24a75bc91c641c451ce5436501"
 dependencies = [
- "bitflags",
+ "bitflags 2.4.0",
  "byteorder",
  "flate2",
 ]
@@ -976,9 +1048,9 @@ dependencies = [
 
 [[package]]
 name = "idna"
-version = "0.3.0"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
+checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
 dependencies = [
  "unicode-bidi",
  "unicode-normalization",
@@ -986,9 +1058,9 @@ dependencies = [
 
 [[package]]
 name = "image"
-version = "0.24.4"
+version = "0.24.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd8e4fb07cf672b1642304e731ef8a6a4c7891d67bb4fd4f5ce58cd6ed86803c"
+checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711"
 dependencies = [
  "bytemuck",
  "byteorder",
@@ -1001,41 +1073,57 @@ dependencies = [
 ]
 
 [[package]]
+name = "impl-more"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "206ca75c9c03ba3d4ace2460e57b189f39f43de612c2f85836e65c929701bb2d"
+
+[[package]]
 name = "indexmap"
-version = "1.9.1"
+version = "1.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e"
+checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
 dependencies = [
  "autocfg",
- "hashbrown",
+ "hashbrown 0.12.3",
+]
+
+[[package]]
+name = "indexmap"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+dependencies = [
+ "equivalent",
+ "hashbrown 0.14.0",
 ]
 
 [[package]]
 name = "itoa"
-version = "1.0.4"
+version = "1.0.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc"
+checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
 
 [[package]]
 name = "jobserver"
-version = "0.1.25"
+version = "0.1.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "068b1ee6743e4d11fb9c6a1e6064b3693a1b600e7f5f5988047d98b3dc9fb90b"
+checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "jpeg-decoder"
-version = "0.2.6"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9478aa10f73e7528198d75109c8be5cd7d15fb530238040148d5f9a22d4c5b3b"
+checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e"
 
 [[package]]
 name = "js-sys"
-version = "0.3.60"
+version = "0.3.64"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47"
+checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -1065,15 +1153,15 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.137"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "libsqlite3-sys"
-version = "0.25.2"
+version = "0.26.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29f835d03d717946d28b1d1ed632eb6f0e24a299388ee623d0c23118d3e8a7fa"
+checksum = "afc22eff61b133b115c6e8c74e818c628d6d5e7a502afea6f64dee076dd94326"
 dependencies = [
  "cc",
  "pkg-config",
@@ -1100,9 +1188,9 @@ checksum = "e34f76eb3611940e0e7d53a9aaa4e6a3151f69541a282fd0dad5571420c53ff1"
 
 [[package]]
 name = "lock_api"
-version = "0.4.9"
+version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
+checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -1110,18 +1198,15 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.17"
+version = "0.4.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-dependencies = [
- "cfg-if",
-]
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
 name = "matches"
-version = "0.1.9"
+version = "0.1.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
+checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
 
 [[package]]
 name = "md5"
@@ -1131,15 +1216,15 @@ checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
 
 [[package]]
 name = "memchr"
-version = "2.5.0"
+version = "2.6.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c"
 
 [[package]]
 name = "memoffset"
-version = "0.6.5"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
+checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
 dependencies = [
  "autocfg",
 ]
@@ -1157,19 +1242,19 @@ dependencies = [
 
 [[package]]
 name = "migrations_internals"
-version = "2.0.0"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c493c09323068c01e54c685f7da41a9ccf9219735c3766fbfd6099806ea08fbc"
+checksum = "0f23f71580015254b020e856feac3df5878c2c7a8812297edd6c0a485ac9dada"
 dependencies = [
  "serde",
- "toml",
+ "toml 0.7.8",
 ]
 
 [[package]]
 name = "migrations_macros"
-version = "2.0.0"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a8ff27a350511de30cdabb77147501c36ef02e0451d957abea2f30caffb2b58"
+checksum = "cce3325ac70e67bbab5bd837a31cae01f1a6db64e0e744a33cb03a543469ef08"
 dependencies = [
  "migrations_internals",
  "proc-macro2",
@@ -1178,9 +1263,9 @@ dependencies = [
 
 [[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"
@@ -1194,27 +1279,19 @@ dependencies = [
 
 [[package]]
 name = "miniz_oxide"
-version = "0.5.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34"
-dependencies = [
- "adler",
-]
-
-[[package]]
-name = "miniz_oxide"
-version = "0.6.2"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa"
+checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
 dependencies = [
  "adler",
+ "simd-adler32",
 ]
 
 [[package]]
 name = "mio"
-version = "0.8.5"
+version = "0.8.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de"
+checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
 dependencies = [
  "libc",
  "log",
@@ -1256,7 +1333,7 @@ dependencies = [
  "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.109",
 ]
 
 [[package]]
@@ -1265,7 +1342,7 @@ version = "1.0.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4f7003a669f68deb6b7c57d74fff4f8e533c44a3f0b297492440ef4ff5a28454"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "lazy_static",
  "winapi",
  "winapi-build",
@@ -1294,18 +1371,18 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.15"
+version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
 dependencies = [
  "autocfg",
 ]
 
 [[package]]
 name = "num_cpus"
-version = "1.14.0"
+version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 dependencies = [
  "hermit-abi",
  "libc",
@@ -1321,6 +1398,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "object"
+version = "0.32.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
 name = "ogg"
 version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1331,9 +1417,9 @@ dependencies = [
 
 [[package]]
 name = "once_cell"
-version = "1.16.0"
+version = "1.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860"
+checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
 
 [[package]]
 name = "opus_headers"
@@ -1343,9 +1429,9 @@ checksum = "afbb993947f111397c2bc536944f8dac7f54a4e73383d478efe1990b56404b60"
 
 [[package]]
 name = "orion"
-version = "0.17.2"
+version = "0.17.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd6b8920e5d7662ee0578a19b322ff34ff56009e4c3730e2f90d75760002bfc9"
+checksum = "b11468cc6afd61a126fe3f91cc4cc8a0dbe7917d0a4b5e8357ba91cc47444462"
 dependencies = [
  "ct-codecs",
  "fiat-crypto",
@@ -1366,15 +1452,15 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.4"
+version = "0.9.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dc9e0dc2adc1c69d09143aff38d3d30c5c3f0df0dad82e6d25547af174ebec0"
+checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
 dependencies = [
  "cfg-if",
  "libc",
  "redox_syscall",
  "smallvec",
- "windows-sys",
+ "windows-targets",
 ]
 
 [[package]]
@@ -1390,9 +1476,9 @@ dependencies = [
 
 [[package]]
 name = "paste"
-version = "1.0.9"
+version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1"
+checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
 
 [[package]]
 name = "pbkdf2"
@@ -1408,15 +1494,15 @@ dependencies = [
 
 [[package]]
 name = "percent-encoding"
-version = "2.2.0"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
+checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
 
 [[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"
@@ -1426,32 +1512,33 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
 name = "pkg-config"
-version = "0.3.26"
+version = "0.3.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
+checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
 
 [[package]]
 name = "png"
-version = "0.17.7"
+version = "0.17.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d708eaf860a19b19ce538740d2b4bdeeb8337fa53f7738455e706623ad5c638"
+checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "crc32fast",
+ "fdeflate",
  "flate2",
- "miniz_oxide 0.6.2",
+ "miniz_oxide",
 ]
 
 [[package]]
 name = "polaris"
-version = "0.14.0"
+version = "0.14.1"
 dependencies = [
  "actix-files",
  "actix-test",
  "actix-web",
  "actix-web-httpauth",
  "ape",
- "base64",
+ "base64 0.21.3",
  "branca",
  "crossbeam-channel",
  "daemonize",
@@ -1486,9 +1573,8 @@ dependencies = [
  "serde_json",
  "simplelog",
  "thiserror",
- "tokio",
- "toml",
- "ureq",
+ "toml 0.7.8",
+ "ureq 2.7.1",
  "url",
  "winres",
 ]
@@ -1505,44 +1591,20 @@ version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
 dependencies = [
- "toml",
-]
-
-[[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",
- "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",
+ "toml 0.5.11",
 ]
 
 [[package]]
 name = "proc-macro-hack"
-version = "0.5.19"
+version = "0.5.20+deprecated"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
+checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.47"
+version = "1.0.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725"
+checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
 dependencies = [
  "unicode-ident",
 ]
@@ -1568,9 +1630,9 @@ dependencies = [
 
 [[package]]
 name = "quote"
-version = "1.0.21"
+version = "1.0.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
+checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
 dependencies = [
  "proc-macro2",
 ]
@@ -1618,21 +1680,19 @@ dependencies = [
 
 [[package]]
 name = "rayon"
-version = "1.5.3"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d"
+checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
 dependencies = [
- "autocfg",
- "crossbeam-deque",
  "either",
  "rayon-core",
 ]
 
 [[package]]
 name = "rayon-core"
-version = "1.9.3"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f"
+checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
 dependencies = [
  "crossbeam-channel",
  "crossbeam-deque",
@@ -1642,18 +1702,30 @@ dependencies = [
 
 [[package]]
 name = "redox_syscall"
-version = "0.2.16"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
 ]
 
 [[package]]
 name = "regex"
-version = "1.7.0"
+version = "1.9.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a"
+checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -1662,9 +1734,9 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.6.28"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
+checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
 
 [[package]]
 name = "ring"
@@ -1682,6 +1754,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "rustc-demangle"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+
+[[package]]
 name = "rustc_version"
 version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1696,7 +1774,7 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
 dependencies = [
- "semver 1.0.14",
+ "semver 1.0.18",
 ]
 
 [[package]]
@@ -1708,7 +1786,7 @@ dependencies = [
  "md5",
  "serde",
  "serde_json",
- "ureq",
+ "ureq 1.5.5",
  "wrapped-vec",
 ]
 
@@ -1718,33 +1796,65 @@ version = "0.19.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7"
 dependencies = [
- "base64",
+ "base64 0.13.1",
  "log",
  "ring",
- "sct",
+ "sct 0.6.1",
  "webpki",
 ]
 
 [[package]]
+name = "rustls"
+version = "0.21.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8"
+dependencies = [
+ "log",
+ "ring",
+ "rustls-webpki 0.101.4",
+ "sct 0.7.0",
+]
+
+[[package]]
+name = "rustls-webpki"
+version = "0.100.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e98ff011474fa39949b7e5c0428f9b4937eda7da7848bbb947786b7be0b27dab"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[package]]
+name = "rustls-webpki"
+version = "0.101.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d93931baf2d282fff8d3a532bbfd7653f734643161b87e3e01e59a04439bf0d"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[package]]
 name = "ryu"
-version = "1.0.11"
+version = "1.0.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09"
+checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
 
 [[package]]
 name = "scheduled-thread-pool"
-version = "0.2.6"
+version = "0.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "977a7519bff143a44f842fd07e80ad1329295bd71686457f18e496736f4bf9bf"
+checksum = "3cbc66816425a074528352f5789333ecff06ca41b36b0b0efdfbb29edc391a19"
 dependencies = [
  "parking_lot",
 ]
 
 [[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 = "sct"
@@ -1757,6 +1867,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "sct"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[package]]
 name = "sd-notify"
 version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1773,9 +1893,9 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.14"
+version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4"
+checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
 
 [[package]]
 name = "semver-parser"
@@ -1785,29 +1905,29 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
 
 [[package]]
 name = "serde"
-version = "1.0.147"
+version = "1.0.188"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965"
+checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.147"
+version = "1.0.188"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f1d362ca8fc9c3e3a7484440752472d68a6caa98f1ab81d99b5dfe517cec852"
+checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.31",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.87"
+version = "1.0.105"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ce777b7b150d76b9cf60d28b55f5847135a003f7d7350c6be7a773508ce7d45"
+checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360"
 dependencies = [
  "itoa",
  "ryu",
@@ -1815,6 +1935,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "serde_spanned"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
+dependencies = [
+ "serde",
+]
+
+[[package]]
 name = "serde_urlencoded"
 version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1854,9 +1983,9 @@ checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012"
 
 [[package]]
 name = "sha2"
-version = "0.10.6"
+version = "0.10.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
+checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -1865,50 +1994,66 @@ dependencies = [
 
 [[package]]
 name = "signal-hook-registry"
-version = "1.4.0"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0"
+checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
 dependencies = [
  "libc",
 ]
 
 [[package]]
+name = "simd-adler32"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
+
+[[package]]
 name = "simplelog"
-version = "0.12.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48dfff04aade74dd495b007c831cd6f4e0cee19c344dd9dc0884c0289b70a786"
+checksum = "acee08041c5de3d5048c8b3f6f13fafb3026b24ba43c6a695a0c76179b844369"
 dependencies = [
  "log",
  "termcolor",
- "time 0.3.17",
+ "time 0.3.28",
 ]
 
 [[package]]
 name = "slab"
-version = "0.4.7"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
 dependencies = [
  "autocfg",
 ]
 
 [[package]]
 name = "smallvec"
-version = "1.10.0"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
 
 [[package]]
 name = "socket2"
-version = "0.4.7"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd"
+checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
 dependencies = [
  "libc",
  "winapi",
 ]
 
 [[package]]
+name = "socket2"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877"
+dependencies = [
+ "libc",
+ "windows-sys",
+]
+
+[[package]]
 name = "spin"
 version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1947,7 +2092,7 @@ dependencies = [
  "quote",
  "serde",
  "serde_derive",
- "syn",
+ "syn 1.0.109",
 ]
 
 [[package]]
@@ -1963,7 +2108,7 @@ dependencies = [
  "serde_derive",
  "serde_json",
  "sha1 0.6.1",
- "syn",
+ "syn 1.0.109",
 ]
 
 [[package]]
@@ -1974,15 +2119,26 @@ checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0"
 
 [[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"
-version = "1.0.103"
+version = "1.0.109"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "718fa2415bcb8d8bd775917a1bf12a7931b6dfa890753378538118181e0cb398"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2000,22 +2156,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.37"
+version = "1.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e"
+checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.37"
+version = "1.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb"
+checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -2035,23 +2191,24 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.3.17"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376"
+checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48"
 dependencies = [
+ "deranged",
  "itoa",
  "libc",
  "num_threads",
  "serde",
  "time-core",
- "time-macros 0.2.6",
+ "time-macros 0.2.14",
 ]
 
 [[package]]
 name = "time-core"
-version = "0.1.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
+checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
 
 [[package]]
 name = "time-macros"
@@ -2065,9 +2222,9 @@ dependencies = [
 
 [[package]]
 name = "time-macros"
-version = "0.2.6"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d967f99f534ca7e495c575c62638eebc2898a8c84c119b89e250477bc4ba16b2"
+checksum = "1a942f44339478ef67935ab2bbaec2fb0322496cf3cbe84b261e06ac3814c572"
 dependencies = [
  "time-core",
 ]
@@ -2082,7 +2239,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "standback",
- "syn",
+ "syn 1.0.109",
 ]
 
 [[package]]
@@ -2096,33 +2253,32 @@ dependencies = [
 
 [[package]]
 name = "tinyvec_macros"
-version = "0.1.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.21.2"
+version = "1.32.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9e03c497dc955702ba729190dc4aac6f2a0ce97f913e5b1b5912fc5039d9099"
+checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9"
 dependencies = [
- "autocfg",
+ "backtrace",
  "bytes",
  "libc",
- "memchr",
  "mio",
  "parking_lot",
  "pin-project-lite",
  "signal-hook-registry",
- "socket2",
- "winapi",
+ "socket2 0.5.3",
+ "windows-sys",
 ]
 
 [[package]]
 name = "tokio-util"
-version = "0.7.4"
+version = "0.7.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740"
+checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d"
 dependencies = [
  "bytes",
  "futures-core",
@@ -2134,14 +2290,48 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.5.9"
+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",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7"
+checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
 dependencies = [
  "serde",
 ]
 
 [[package]]
+name = "toml_edit"
+version = "0.19.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
+dependencies = [
+ "indexmap 2.0.0",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
 name = "tracing"
 version = "0.1.37"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2155,39 +2345,39 @@ dependencies = [
 
 [[package]]
 name = "tracing-core"
-version = "0.1.30"
+version = "0.1.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a"
+checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
 dependencies = [
  "once_cell",
 ]
 
 [[package]]
 name = "typenum"
-version = "1.15.0"
+version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
+checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
 
 [[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.8"
+version = "0.3.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
+checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.5"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3"
+checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
 
 [[package]]
 name = "unicode-normalization"
@@ -2216,27 +2406,43 @@ version = "1.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2b8b063c2d59218ae09f22b53c42eaad0d53516457905f5235ca4bc9e99daa71"
 dependencies = [
- "base64",
+ "base64 0.13.1",
  "chunked_transfer",
  "cookie 0.14.4",
  "cookie_store",
  "log",
  "once_cell",
  "qstring",
- "rustls",
+ "rustls 0.19.1",
  "url",
  "webpki",
- "webpki-roots",
+ "webpki-roots 0.21.1",
+]
+
+[[package]]
+name = "ureq"
+version = "2.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b11c96ac7ee530603dcdf68ed1557050f374ce55a5a07193ebf8cbc9f8927e9"
+dependencies = [
+ "base64 0.21.3",
+ "flate2",
+ "log",
+ "once_cell",
+ "rustls 0.21.7",
+ "rustls-webpki 0.100.2",
+ "url",
+ "webpki-roots 0.23.1",
 ]
 
 [[package]]
 name = "url"
-version = "2.3.1"
+version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
+checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
 dependencies = [
  "form_urlencoded",
- "idna 0.3.0",
+ "idna 0.4.0",
  "percent-encoding",
 ]
 
@@ -2260,9 +2466,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.83"
+version = "0.2.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268"
+checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -2270,24 +2476,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.83"
+version = "0.2.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142"
+checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.31",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.83"
+version = "0.2.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810"
+checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -2295,28 +2501,28 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.83"
+version = "0.2.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c"
+checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.31",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.83"
+version = "0.2.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f"
+checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
 
 [[package]]
 name = "web-sys"
-version = "0.3.60"
+version = "0.3.64"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f"
+checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -2342,6 +2548,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "webpki-roots"
+version = "0.23.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338"
+dependencies = [
+ "rustls-webpki 0.100.2",
+]
+
+[[package]]
 name = "weezl"
 version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2386,9 +2601,18 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "windows-sys"
-version = "0.42.0"
+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 = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
 dependencies = [
  "windows_aarch64_gnullvm",
  "windows_aarch64_msvc",
@@ -2401,45 +2625,54 @@ dependencies = [
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.42.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.42.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.42.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.42.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.42.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.42.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.42.0"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "winnow"
+version = "0.5.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5"
+checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc"
+dependencies = [
+ "memchr",
+]
 
 [[package]]
 name = "winres"
@@ -2447,7 +2680,7 @@ version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b68db261ef59e9e52806f688020631e987592bd83619edccda9c47d42cde4f6c"
 dependencies = [
- "toml",
+ "toml 0.5.11",
 ]
 
 [[package]]
@@ -2458,29 +2691,29 @@ checksum = "b85e08702c1e919669e1e90213c9c75ea4bb689d0f3970347e2b37c04600b4e5"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.109",
 ]
 
 [[package]]
 name = "zeroize"
-version = "1.5.7"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f"
+checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9"
 
 [[package]]
 name = "zstd"
-version = "0.11.2+zstd.1.5.2"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4"
+checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c"
 dependencies = [
  "zstd-safe",
 ]
 
 [[package]]
 name = "zstd-safe"
-version = "5.0.2+zstd.1.5.2"
+version = "6.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db"
+checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581"
 dependencies = [
  "libc",
  "zstd-sys",
@@ -2488,10 +2721,11 @@ dependencies = [
 
 [[package]]
 name = "zstd-sys"
-version = "2.0.1+zstd.1.5.2"
+version = "2.0.8+zstd.1.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9fd07cbbc53846d9145dbffdf6dd09a7a0aa52be46741825f5c97bdd4f73f12b"
+checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c"
 dependencies = [
  "cc",
  "libc",
+ "pkg-config",
 ]
diff --git a/pkgs/servers/polaris/default.nix b/pkgs/servers/polaris/default.nix
index 68a767bb03ab..32435eefd20c 100644
--- a/pkgs/servers/polaris/default.nix
+++ b/pkgs/servers/polaris/default.nix
@@ -10,13 +10,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "polaris";
-  version = "0.14.0";
+  version = "0.14.1";
 
   src = fetchFromGitHub {
     owner = "agersant";
     repo = "polaris";
     rev = version;
-    hash = "sha256-mLugPi3Xp46Lh48JQVeyOEGiovSF26gUt25MGBPFfkM=";
+    hash = "sha256-YI2IBlZm+RIFcZgXYh9HdxVpSMjPN/s9oBXDrb2V3iE=";
 
     # The polaris version upstream in Cargo.lock is "0.0.0".
     # We're unable to simply patch it in the patch phase due to
@@ -32,9 +32,6 @@ rustPlatform.buildRustPackage rec {
 
   cargoLock = {
     lockFile = ./Cargo.lock;
-    outputHashes = {
-      "id3-1.4.0" = "sha256-0j2iOd/GkMqLu18Eu8nttmqez0G6fu2m19gsHWMmLds=";
-    };
   };
 
   buildInputs = lib.optionals stdenv.isDarwin [
diff --git a/pkgs/servers/polaris/web.nix b/pkgs/servers/polaris/web.nix
index 19d35103281d..1834c01a0547 100644
--- a/pkgs/servers/polaris/web.nix
+++ b/pkgs/servers/polaris/web.nix
@@ -5,13 +5,13 @@
 
 buildNpmPackage rec {
   pname = "polaris-web";
-  version = "68";
+  version = "69";
 
   src = fetchFromGitHub {
     owner = "agersant";
     repo = "polaris-web";
     rev = "build-${version}";
-    hash = "sha256-YvVNTqv/DQzRyMuDgDdtCyoQbt4EqVztGa0NO92pO/Q=";
+    hash = "sha256-/UmAOunc/79DpZByUrzqNA7q7JNugEceKRZvyTGhtVQ=";
   };
 
   npmDepsHash = "sha256-c11CWJB76gX+Bxmqac3VxWjJxQVzYCaaf+pmQQpnOds=";
diff --git a/pkgs/servers/readarr/default.nix b/pkgs/servers/readarr/default.nix
index d828050ba85c..67f24ed9204b 100644
--- a/pkgs/servers/readarr/default.nix
+++ b/pkgs/servers/readarr/default.nix
@@ -8,13 +8,13 @@ let
     x86_64-darwin = "x64";
   }."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
   hash = {
-    x64-linux_hash = "sha256-WMLxga9U8AhqLmFQ1PYD4J4HMAIZ/jrxZn8S2P6syHM=";
-    arm64-linux_hash = "sha256-wIn10t4Qv2m1JaTtovq8Urup1OMp7w5bizVMn8ve0U0=";
-    x64-osx_hash = "sha256-mQgfxprTHPrJHbZYoijhjmSxJKPWvlMuWAAnW9AyNpU=";
+    x64-linux_hash = "sha256-Li8q1JY9e7NkNUMly+hCLAHPibqIdVO9Eijcsc0YKEc=";
+    arm64-linux_hash = "sha256-kPZ5seqYzHjINzFzUbZm7L5Uh5saa+WDSwNpmcYnYX0=";
+    x64-osx_hash = "sha256-R2WZAAJs/XG8C0DTvSEZ2c9ao78FTS9B7lieOKkUWRs=";
   }."${arch}-${os}_hash";
 in stdenv.mkDerivation rec {
   pname = "readarr";
-  version = "0.3.14.2348";
+  version = "0.3.17.2409";
 
   src = fetchurl {
     url = "https://github.com/Readarr/Readarr/releases/download/v${version}/Readarr.develop.${version}.${os}-core-${arch}.tar.gz";
diff --git a/pkgs/servers/redpanda/default.nix b/pkgs/servers/redpanda/default.nix
index 0d293dbf1f0f..4a93a46c6a85 100644
--- a/pkgs/servers/redpanda/default.nix
+++ b/pkgs/servers/redpanda/default.nix
@@ -7,12 +7,12 @@
 , stdenv
 }:
 let
-  version = "23.3.1";
+  version = "23.3.4";
   src = fetchFromGitHub {
     owner = "redpanda-data";
     repo = "redpanda";
     rev = "v${version}";
-    sha256 = "sha256-xYUL681Ek3eJw5SPdMjlIjt7T87d09+xfJNCcC9tTpE=";
+    sha256 = "sha256-Bcr+bMqurwpd7IFTBR73RcgekkiuQQ3JPjvrp03fpJ0=";
   };
   server = callPackage ./server.nix { inherit src version; };
 in
diff --git a/pkgs/servers/roadrunner/default.nix b/pkgs/servers/roadrunner/default.nix
index bf4d9abc280d..0f47c6ebeb3a 100644
--- a/pkgs/servers/roadrunner/default.nix
+++ b/pkgs/servers/roadrunner/default.nix
@@ -6,12 +6,12 @@
 
 buildGoModule rec {
   pname = "roadrunner";
-  version = "2023.3.9";
+  version = "2023.3.10";
   src = fetchFromGitHub {
     repo = "roadrunner";
     owner = "roadrunner-server";
     rev = "v${version}";
-    hash = "sha256-nDtlOVbdCmo8U9w4glCeKjkk5s/IuxrpCaLxZ8TN4j4=";
+    hash = "sha256-8wcZWnRi+wIg78VdGV/38Oldwjry7QXxmdacjYfe3sw=";
   };
 
   nativeBuildInputs = [
@@ -44,7 +44,7 @@ buildGoModule rec {
       --replace "127.0.0.1:0" "127.0.0.1:55554"
   '';
 
-  vendorHash = "sha256-0O1gTRyV0YFuddFN1tEDBAUlegXF8vwBp6Y4dodE3XE=";
+  vendorHash = "sha256-xAzZdElu0rzoWnEQbhMO7DhQx3P7241yMy/Gvk9jnCA=";
 
   meta = {
     changelog = "https://github.com/roadrunner-server/roadrunner/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/servers/roundcube/default.nix b/pkgs/servers/roundcube/default.nix
index 959c9bf4633e..8e037e13497a 100644
--- a/pkgs/servers/roundcube/default.nix
+++ b/pkgs/servers/roundcube/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "roundcube";
-  version = "1.6.5";
+  version = "1.6.6";
 
   src = fetchurl {
     url = "https://github.com/roundcube/roundcubemail/releases/download/${version}/roundcubemail-${version}-complete.tar.gz";
-    sha256 = "sha256-Fktyy3jeidEEdB7pCQ9AJOY7+tpDlJA0hENl8/pwtf0=";
+    sha256 = "sha256-wbk6Ptvil0VzlrCgMdixPIpdwwyTcHBN+5ssEiUBfVI=";
   };
 
   patches = [ ./0001-Don-t-resolve-symlinks-when-trying-to-find-INSTALL_P.patch ];
diff --git a/pkgs/servers/routinator/default.nix b/pkgs/servers/routinator/default.nix
index 6864556fd55d..1fdf6d8fdba2 100644
--- a/pkgs/servers/routinator/default.nix
+++ b/pkgs/servers/routinator/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "routinator";
-  version = "0.13.0";
+  version = "0.13.1";
 
   src = fetchFromGitHub {
     owner = "NLnetLabs";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-gInJS7JpvEbmOuZecB4xjff2d7TnjcVV+8mPOmy5Oyo=";
+    hash = "sha256-ia9N2jZlFW0Gu5YDfwh023zorMyWWL/KggeBRvCD1W4=";
   };
 
-  cargoHash = "sha256-c5SQysjO821pfGhnyB4aGOZuwrHaN502PfkA1gBPtY4=";
+  cargoHash = "sha256-RHT6+zrY4SjoC/hgoMRal+cG8Ruip/6v7oVtKvR8doU=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
diff --git a/pkgs/servers/rustdesk-server/Cargo.lock b/pkgs/servers/rustdesk-server/Cargo.lock
index f8d7c9ae27f9..f62e537c154c 100644
--- a/pkgs/servers/rustdesk-server/Cargo.lock
+++ b/pkgs/servers/rustdesk-server/Cargo.lock
@@ -779,7 +779,7 @@ dependencies = [
 
 [[package]]
 name = "hbbs"
-version = "1.1.9"
+version = "1.1.10-3"
 dependencies = [
  "async-speed-limit",
  "async-trait",
@@ -1111,9 +1111,9 @@ dependencies = [
 
 [[package]]
 name = "mac_address"
-version = "1.1.3"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df1d1bc1084549d60725ccc53a2bfa07f67fe4689fda07b05a36531f2988104a"
+checksum = "4863ee94f19ed315bf3bc00299338d857d4b5bc856af375cc97d237382ad3856"
 dependencies = [
  "nix",
  "winapi",
diff --git a/pkgs/servers/rustdesk-server/default.nix b/pkgs/servers/rustdesk-server/default.nix
index 684017fdaef0..93a25b233883 100644
--- a/pkgs/servers/rustdesk-server/default.nix
+++ b/pkgs/servers/rustdesk-server/default.nix
@@ -13,13 +13,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rustdesk-server";
-  version = "1.1.9";
+  version = "1.1.10-3";
 
   src = fetchFromGitHub {
     owner = "rustdesk";
     repo = "rustdesk-server";
     rev = version;
-    hash = "sha256-bC1eraMSa9Lz5icvU7dPnEIeqE5TaW8HseBQMRmDCXQ=";
+    hash = "sha256-iXe5V99hvtdRi6t/2wUMQ/aSCWfscA1s48vrdO6H2Rw=";
   };
 
   cargoLock = {
diff --git a/pkgs/servers/sabnzbd/default.nix b/pkgs/servers/sabnzbd/default.nix
index 5601ae2f7d0f..a7035426fdf9 100644
--- a/pkgs/servers/sabnzbd/default.nix
+++ b/pkgs/servers/sabnzbd/default.nix
@@ -47,14 +47,14 @@ let
   ]);
   path = lib.makeBinPath [ coreutils par2cmdline-turbo unrar unzip p7zip util-linux ];
 in stdenv.mkDerivation rec {
-  version = "4.2.1";
+  version = "4.2.2";
   pname = "sabnzbd";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-M9DvwizNeCXkV07dkgiComdjoceUACCuccZb+y9RMdw=";
+    sha256 = "sha256-e5MjsBFUeQ1FMgMIuTDAmAUqf9BaM+ic2qpd1GVZEAw=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/seafile-server/default.nix b/pkgs/servers/seafile-server/default.nix
index e1c9d0b0858e..109484c467b4 100644
--- a/pkgs/servers/seafile-server/default.nix
+++ b/pkgs/servers/seafile-server/default.nix
@@ -1,6 +1,25 @@
-{ stdenv, lib, fetchFromGitHub, pkg-config, python3, autoreconfHook
-, libuuid, sqlite, glib, libevent, libsearpc, openssl, fuse, libarchive, which
-, vala, cmake, oniguruma, nixosTests }:
+{ stdenv
+, lib
+, fetchFromGitHub
+, pkg-config
+, python3
+, autoreconfHook
+, libuuid
+, sqlite
+, glib
+, libevent
+, libsearpc
+, openssl
+, fuse
+, libarchive
+, libjwt
+, curl
+, which
+, vala
+, cmake
+, oniguruma
+, nixosTests
+}:
 
 let
   # seafile-server relies on a specific version of libevhtp.
@@ -8,15 +27,16 @@ let
   libevhtp = import ./libevhtp.nix {
     inherit stdenv lib fetchFromGitHub cmake libevent;
   };
-in stdenv.mkDerivation rec {
+in
+stdenv.mkDerivation rec {
   pname = "seafile-server";
-  version = "9.0.10";
+  version = "10.0.1";
 
   src = fetchFromGitHub {
     owner = "haiwen";
     repo = "seafile-server";
-    rev = "079a8b65a543bfbc48e7671c3dbbffe19fd02944"; # using a fixed revision because upstream may re-tag releases :/
-    sha256 = "sha256-F1n4E6ajpri3CVM7B28UKoTV1oOLr5nTy6Lw0E5tCrc=";
+    rev = "db09baec1b88fc131bf4453a808ab63a3fc714c9"; # using a fixed revision because upstream may re-tag releases :/
+    sha256 = "sha256-a5vtJcbnaYzq6/3xmhbWk23BZ+Wil/Tb/q22ML4bDqs=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
@@ -31,6 +51,8 @@ in stdenv.mkDerivation rec {
     python3
     fuse
     libarchive
+    libjwt
+    curl
     which
     vala
     libevhtp
diff --git a/pkgs/servers/search/elasticsearch/7.x.nix b/pkgs/servers/search/elasticsearch/7.x.nix
index 9efa621e5b4b..f439b0ae4304 100644
--- a/pkgs/servers/search/elasticsearch/7.x.nix
+++ b/pkgs/servers/search/elasticsearch/7.x.nix
@@ -18,10 +18,10 @@ let
   plat = elemAt info 1;
   hashes =
     {
-      x86_64-linux   = "sha512-eiAT5Dx/w56GoxpzPMdMWH7yu6DAE/lc6HT5i0iKT48Ob7JUoe7dXAsOIQrtmgGV9zWPqWU8iQ4jRBP/kxkIBw==";
-      x86_64-darwin  = "sha512-5vSefA9Z4mCz49Q+Vzdck1KXbE9REYAF46kSf0G1n5XlHqFYzTGOmUEObZhGTqH4RDLJBdEqhLj2iyzjWQX5RA==";
-      aarch64-linux  = "sha512-8nkPSbecOBJGu/h0MZGUUq+Tqk/YqmvJwfkDHn7V2cZJ9bq4Z8KKfRYC4ihdP0pfePgJrAV0SwKtZ9aGELtnfQ==";
-      aarch64-darwin = "sha512-dbZrYGULuC3FF/SllPpAgW077Lkr87NJ8+gyTMayl8i8rOvAjnZhiR/U7eA6CZ/qVsFQkpGATdAzRXF8NlZBcg==";
+      x86_64-linux   = "sha512-OiWGRxaCdRxXuxE/W04v87ytzOeUEcHRjF5nyRkdqSbZSnLXUyKOYQ4fKmk4til0VBOaKZYId20XyPiu/XTXNw==";
+      x86_64-darwin  = "sha512-V/vKYL96+M1lp7ZJlvuneRBePWZmucUANfUrFPMuq+fnUP4nN69RStLWcgwgt65EspFMBwKVyQbak4swV8rWxw==";
+      aarch64-linux  = "sha512-fNgVRaIIGx01reNHOnGKhMOG1aYU7gC8HLpIESSbM3+9xO1q9IHIaL/ObI/w2RYj/lD22d7PAdX5N6Hd1pVSAA==";
+      aarch64-darwin = "sha512-DgexeyoxZ1YTPw9HjSUAM6eC8XtzIw7MY1WUVsIa8zl5j3RpCp25s3oI12BWefjYYCTjdtFDMsnoFSqZBabLig==";
     };
 in
 stdenv.mkDerivation rec {
diff --git a/pkgs/servers/search/elasticsearch/plugins.nix b/pkgs/servers/search/elasticsearch/plugins.nix
index c23b5ad7a2bd..58e74b746ee9 100644
--- a/pkgs/servers/search/elasticsearch/plugins.nix
+++ b/pkgs/servers/search/elasticsearch/plugins.nix
@@ -38,7 +38,7 @@ in
     src = fetchurl {
       url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
       hash =
-        if version == "7.17.10" then "sha256-D08CVW/qHpZZaKnploM4aCJ4bunvPjVmieDYr1d6jQA="
+        if version == "7.17.16" then "sha256-wgm6N5fofs5wTM25ZT3dJkg7iDesXsc3Up419IAY9gk="
         else throw "unsupported version ${version} for plugin ${pluginName}";
     };
     meta = with lib; {
@@ -54,7 +54,7 @@ in
     src = fetchurl {
       url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
       hash =
-        if version == "7.17.10" then "sha256-cpgr2zPCpsLrmshWJWoGNcGl0X+bO/K4A9bMqLv8+H8="
+        if version == "7.17.16" then "sha256-SShdBcWfm21XoVhghSSiWIhsoXzG7wz6162iOmuf5EU="
         else throw "unsupported version ${version} for plugin ${pluginName}";
     };
     meta = with lib; {
@@ -87,7 +87,7 @@ in
     src = fetchurl {
       url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
       hash =
-        if version == "7.17.10" then "sha256-UmykO+hZDvlFhEbf7zL2bdw4j6NhByRBu9eH3F6/EtM="
+        if version == "7.17.16" then "sha256-S/Cp9opeLitFh2/3Qw7/MFt6GcYKufxXKD6cJSi3SaQ="
         else throw "unsupported version ${version} for plugin ${pluginName}";
     };
     meta = with lib; {
@@ -103,7 +103,7 @@ in
     src = fetchurl {
       url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
       hash =
-        if version == "7.17.10" then "sha256-Y/AbLfHSdocX0NQbnKm63gTWgwzssb4kpSwRqLozD9w="
+        if version == "7.17.16" then "sha256-hMErTLd5fXg420Olz+j6Zv7WByA1aNq9FlEgCtkYIxY="
         else throw "unsupported version ${version} for plugin ${pluginName}";
     };
     meta = with lib; {
@@ -119,7 +119,7 @@ in
     src = fetchurl {
       url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
       hash =
-        if version == "7.17.10" then "sha256-QIYD7cGpJQg+csv/tekN6GFtdnuhYU6VyAXk7nY/uWs="
+        if version == "7.17.16" then "sha256-z0gfdx98urCzdQNlVn99CmteG6jweOmUDmGJW89twtU="
         else throw "unsupported version ${version} for plugin ${pluginName}";
     };
     meta = with lib; {
@@ -135,7 +135,7 @@ in
     src = fetchurl {
       url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${esVersion}.zip";
       hash =
-        if version == "7.17.10" then "sha256-L8lS+EPYuhNNTnP3ImeZsBQ5a5DAncs3qBFDWGWISRI="
+        if version == "7.17.16" then "sha256-TWMN8jzFjzBVTUB+zn4tJr47VMXHC8U+014BvnArK8M="
         else throw "unsupported version ${version} for plugin ${pluginName}";
     };
     meta = with lib; {
@@ -151,7 +151,7 @@ in
     src = fetchurl {
       url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${esVersion}.zip";
       hash =
-        if version == "7.17.10" then "sha256-eXstbxlyS8WzW8u5YiMFXGpILCcEWrIb/IxXVzAGFLU="
+        if version == "7.17.16" then "sha256-hG5wy1Xw4T1NzI7pja3CejwJg002/n6YqM1/QaVSWbg="
         else throw "unsupported version ${version} for plugin ${pluginName}";
     };
     meta = with lib; {
@@ -167,13 +167,13 @@ in
     pluginName = "search-guard";
     version =
       # https://docs.search-guard.com/latest/search-guard-versions
-      if esVersion == "7.17.10" then "${esVersion}-53.7.0"
+      if esVersion == "7.17.16" then "${esVersion}-53.8.0"
       else throw "unsupported version ${esVersion} for plugin ${pluginName}";
     src =
-      if esVersion == "7.17.10" then
+      if esVersion == "7.17.16" then
         fetchurl {
           url = "https://maven.search-guard.com/search-guard-suite-release/com/floragunn/search-guard-suite-plugin/${version}/search-guard-suite-plugin-${version}.zip";
-          hash = "sha256-FIF4O8z0U2giXVA2cNEdCDbpuJDJhaxHBOmv2fACucw=";
+          hash = "sha256-j8dz7rUKWqMvT6EksoFIuGJzYcgdMipKeg2d8UtzlDI=";
         }
       else throw "unsupported version ${version} for plugin ${pluginName}";
     meta = with lib; {
diff --git a/pkgs/servers/search/meilisearch/Cargo.lock b/pkgs/servers/search/meilisearch/Cargo.lock
index 72701288f8b3..acbeed1c710f 100644
--- a/pkgs/servers/search/meilisearch/Cargo.lock
+++ b/pkgs/servers/search/meilisearch/Cargo.lock
@@ -491,7 +491,7 @@ checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
 
 [[package]]
 name = "benchmarks"
-version = "1.6.0"
+version = "1.6.1"
 dependencies = [
  "anyhow",
  "bytes",
@@ -1402,7 +1402,7 @@ dependencies = [
 
 [[package]]
 name = "dump"
-version = "1.6.0"
+version = "1.6.1"
 dependencies = [
  "anyhow",
  "big_s",
@@ -1634,7 +1634,7 @@ dependencies = [
 
 [[package]]
 name = "file-store"
-version = "1.6.0"
+version = "1.6.1"
 dependencies = [
  "faux",
  "tempfile",
@@ -1656,7 +1656,7 @@ dependencies = [
 
 [[package]]
 name = "filter-parser"
-version = "1.6.0"
+version = "1.6.1"
 dependencies = [
  "insta",
  "nom",
@@ -1687,7 +1687,7 @@ dependencies = [
 
 [[package]]
 name = "flatten-serde-json"
-version = "1.6.0"
+version = "1.6.1"
 dependencies = [
  "criterion",
  "serde_json",
@@ -1805,7 +1805,7 @@ dependencies = [
 
 [[package]]
 name = "fuzzers"
-version = "1.6.0"
+version = "1.6.1"
 dependencies = [
  "arbitrary",
  "clap",
@@ -2763,7 +2763,7 @@ dependencies = [
 
 [[package]]
 name = "index-scheduler"
-version = "1.6.0"
+version = "1.6.1"
 dependencies = [
  "anyhow",
  "big_s",
@@ -2960,7 +2960,7 @@ dependencies = [
 
 [[package]]
 name = "json-depth-checker"
-version = "1.6.0"
+version = "1.6.1"
 dependencies = [
  "criterion",
  "serde_json",
@@ -3472,7 +3472,7 @@ checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
 
 [[package]]
 name = "meili-snap"
-version = "1.6.0"
+version = "1.6.1"
 dependencies = [
  "insta",
  "md5",
@@ -3481,7 +3481,7 @@ dependencies = [
 
 [[package]]
 name = "meilisearch"
-version = "1.6.0"
+version = "1.6.1"
 dependencies = [
  "actix-cors",
  "actix-http",
@@ -3572,7 +3572,7 @@ dependencies = [
 
 [[package]]
 name = "meilisearch-auth"
-version = "1.6.0"
+version = "1.6.1"
 dependencies = [
  "base64 0.21.5",
  "enum-iterator",
@@ -3591,7 +3591,7 @@ dependencies = [
 
 [[package]]
 name = "meilisearch-types"
-version = "1.6.0"
+version = "1.6.1"
 dependencies = [
  "actix-web",
  "anyhow",
@@ -3621,7 +3621,7 @@ dependencies = [
 
 [[package]]
 name = "meilitool"
-version = "1.6.0"
+version = "1.6.1"
 dependencies = [
  "anyhow",
  "clap",
@@ -3669,7 +3669,7 @@ dependencies = [
 
 [[package]]
 name = "milli"
-version = "1.6.0"
+version = "1.6.1"
 dependencies = [
  "arroy",
  "big_s",
@@ -4076,7 +4076,7 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "permissive-json-pointer"
-version = "1.6.0"
+version = "1.6.1"
 dependencies = [
  "big_s",
  "serde_json",
diff --git a/pkgs/servers/search/meilisearch/default.nix b/pkgs/servers/search/meilisearch/default.nix
index b1965bff52bf..45059659b97d 100644
--- a/pkgs/servers/search/meilisearch/default.nix
+++ b/pkgs/servers/search/meilisearch/default.nix
@@ -3,11 +3,12 @@
 , rustPlatform
 , fetchFromGitHub
 , Security
+, SystemConfiguration
 , nixosTests
 , nix-update-script
 }:
 
-let version = "1.6.0";
+let version = "1.6.1";
 in
 rustPlatform.buildRustPackage {
   pname = "meilisearch";
@@ -17,7 +18,7 @@ rustPlatform.buildRustPackage {
     owner = "meilisearch";
     repo = "MeiliSearch";
     rev = "refs/tags/v${version}";
-    hash = "sha256-B1psJeGWG0E5oPu+OVAxkdJNblqaBzB/CurpLxdESB8=";
+    hash = "sha256-bA0UWRX16HTB/XCuzRa1C71DxfMJx1fZ/xVZFkxq1SM=";
   };
 
   cargoBuildFlags = [
@@ -40,7 +41,7 @@ rustPlatform.buildRustPackage {
   buildNoDefaultFeatures = true;
 
   buildInputs = lib.optionals stdenv.isDarwin [
-    Security
+    Security SystemConfiguration
   ];
 
   passthru = {
diff --git a/pkgs/servers/search/qdrant/Cargo.lock b/pkgs/servers/search/qdrant/Cargo.lock
index bc8317de6157..bafcd96575f7 100644
--- a/pkgs/servers/search/qdrant/Cargo.lock
+++ b/pkgs/servers/search/qdrant/Cargo.lock
@@ -479,7 +479,7 @@ checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
 
 [[package]]
 name = "api"
-version = "1.7.3"
+version = "1.7.4"
 dependencies = [
  "chrono",
  "common",
@@ -3742,7 +3742,7 @@ dependencies = [
 
 [[package]]
 name = "qdrant"
-version = "1.7.3"
+version = "1.7.4"
 dependencies = [
  "actix-cors",
  "actix-files",
diff --git a/pkgs/servers/search/qdrant/default.nix b/pkgs/servers/search/qdrant/default.nix
index e7df375495a0..5e3c48053b56 100644
--- a/pkgs/servers/search/qdrant/default.nix
+++ b/pkgs/servers/search/qdrant/default.nix
@@ -13,13 +13,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "qdrant";
-  version = "1.7.3";
+  version = "1.7.4";
 
   src = fetchFromGitHub {
     owner = "qdrant";
     repo = "qdrant";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-5c8lQ1CTtYjzrIfHev5aq1FbfctKr5UXylZzzJtyo+o=";
+    sha256 = "sha256-BgsLmE50mGmB5fcUjov8wcAHRTKMYaoyoXjSUyIddlc=";
   };
 
   cargoLock = {
diff --git a/pkgs/servers/ser2net/default.nix b/pkgs/servers/ser2net/default.nix
index 8782e56fdb6d..a05791eb67fc 100644
--- a/pkgs/servers/ser2net/default.nix
+++ b/pkgs/servers/ser2net/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ser2net";
-  version = "4.6.0";
+  version = "4.6.1";
 
   src = fetchFromGitHub {
     owner = "cminyard";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-6G5kpMe58PaOII/8WzHTK2EkwD1cTUn7VP2EMlcuF14=";
+    hash = "sha256-1bEjmChoVB9WUAASz06U94YJ71BGvZfU6dObszXqwoA=";
   };
 
   passthru = {
diff --git a/pkgs/servers/sip/kamailio/default.nix b/pkgs/servers/sip/kamailio/default.nix
index 2732216cc15f..8cb83c608828 100644
--- a/pkgs/servers/sip/kamailio/default.nix
+++ b/pkgs/servers/sip/kamailio/default.nix
@@ -21,11 +21,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "kamailio";
-  version = "5.7.3";
+  version = "5.7.4";
 
   src = fetchurl {
     url = "https://www.kamailio.org/pub/kamailio/${finalAttrs.version}/src/kamailio-${finalAttrs.version}_src.tar.gz";
-    hash = "sha256-x6YgsDl05OBNQZ4Iancf0Leo4mnz1pwZocZghaSY/Yw=";
+    hash = "sha256-AP9zgGFuoM+gsVmoepfedFTwDOM3RpsRpO6gS/4AMfM=";
   };
 
   buildInputs = [
diff --git a/pkgs/servers/snac2/default.nix b/pkgs/servers/snac2/default.nix
index 11276aa3e216..0d3d17ad7c32 100644
--- a/pkgs/servers/snac2/default.nix
+++ b/pkgs/servers/snac2/default.nix
@@ -10,14 +10,14 @@
 
 stdenv.mkDerivation rec {
   pname = "snac2";
-  version = "2.44";
+  version = "2.46";
 
   src = fetchFromGitea {
     domain = "codeberg.org";
     owner = "grunfink";
     repo = pname;
     rev = version;
-    hash = "sha256-0bsXL6b41CchWrNZhQyPsj3JEjCLLdaOIi07icF6roQ=";
+    hash = "sha256-t2o1aNgVl5dKmwOO9W7mn2uIf/rrbag476y3H3ugCfc=";
   };
 
   buildInputs = [ curl openssl ];
diff --git a/pkgs/servers/snappymail/default.nix b/pkgs/servers/snappymail/default.nix
index d6de696d691d..e8120224990e 100644
--- a/pkgs/servers/snappymail/default.nix
+++ b/pkgs/servers/snappymail/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation rec {
   pname = "snappymail";
-  version = "2.32.0";
+  version = "2.33.0";
 
   src = fetchurl {
     url = "https://github.com/the-djmaze/snappymail/releases/download/v${version}/snappymail-${version}.tar.gz";
-    sha256 = "sha256-y77oFvVCE7eQoJbBWeyi+kldDDhAhAkoTNZ9CGWMvb8=";
+    sha256 = "sha256-71JgCkser7pGMVeSbiw97R2AoxQI76A6nPC7cTa2eow=";
   };
 
   sourceRoot = "snappymail";
diff --git a/pkgs/servers/sozu/default.nix b/pkgs/servers/sozu/default.nix
index 0735e6d85f25..705c5b935bfb 100644
--- a/pkgs/servers/sozu/default.nix
+++ b/pkgs/servers/sozu/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sozu";
-  version = "0.15.18";
+  version = "0.15.19";
 
   src = fetchFromGitHub {
     owner = "sozu-proxy";
     repo = pname;
     rev = version;
-    hash = "sha256-tmQgihbE4Ga2NXKwTQTaMP2ZKyL9G1zTojHG2mwFn0o=";
+    hash = "sha256-9TSu27s/rnO48zEhBzaHaU3pHyIJ0LVZC8LBRhn0PNM=";
   };
 
-  cargoHash = "sha256-93I9HcGCnli8gK7BkS4h4pecmN/yRpwbjFzqlMLMbM0=";
+  cargoHash = "sha256-h9igqV9YqMqRhqwsKYIji8WAVmcPQfErcPPm0PcDwss=";
 
   nativeBuildInputs = [ protobuf ];
 
diff --git a/pkgs/servers/spicedb/default.nix b/pkgs/servers/spicedb/default.nix
index 3f4d9ec47053..7d8b69f5e197 100644
--- a/pkgs/servers/spicedb/default.nix
+++ b/pkgs/servers/spicedb/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "spicedb";
-  version = "1.28.0";
+  version = "1.29.1";
 
   src = fetchFromGitHub {
     owner = "authzed";
     repo = "spicedb";
     rev = "v${version}";
-    hash = "sha256-Zbg5rcgOSgTeVDuZpvzXuo0DWx5PH+9xPxHZZJjqpKs=";
+    hash = "sha256-fUTJpdFFNf/r+NQYBU4y8sGdtEShF9Yi89aB0rU7Xd8=";
   };
 
-  vendorHash = "sha256-jzH9f/hN2S9MUtomIjPQ/VErDWyVjNN9G4W7hHiFRJs=";
+  vendorHash = "sha256-wPQ6RjDldO2m4myKcLtGoe5LurX6FI7yLoWLZUkex4o=";
 
   subPackages = [ "cmd/spicedb" ];
 
diff --git a/pkgs/servers/spicedb/zed.nix b/pkgs/servers/spicedb/zed.nix
index 34cad4f20940..32421450d758 100644
--- a/pkgs/servers/spicedb/zed.nix
+++ b/pkgs/servers/spicedb/zed.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "zed";
-  version = "0.15.2";
+  version = "0.16.4";
 
   src = fetchFromGitHub {
     owner = "authzed";
     repo = "zed";
     rev = "v${version}";
-    hash = "sha256-e9jgRvQ8eYy6eqweqQIyjEKZ4cfEq5DwGXBvBXB2Wk8=";
+    hash = "sha256-PLOzzsW0v4T12NFrQlOYcsC7Cd3OnGD0TYmuavqEtxw=";
   };
 
-  vendorHash = "sha256-VRWhhXgBnIkwkakhERm2iSKidPnk0e4iTXXJpJz4cRM=";
+  vendorHash = "sha256-KhtT0v0FJiOvYUhN/rBYxbkUKs0DdIc5HwlhVUAi9cA=";
 
   meta = with lib; {
     description = "Command line for managing SpiceDB";
diff --git a/pkgs/servers/sql/dolt/default.nix b/pkgs/servers/sql/dolt/default.nix
index f83982778055..1f5205b27607 100644
--- a/pkgs/servers/sql/dolt/default.nix
+++ b/pkgs/servers/sql/dolt/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "dolt";
-  version = "1.30.4";
+  version = "1.32.6";
 
   src = fetchFromGitHub {
     owner = "dolthub";
     repo = "dolt";
     rev = "v${version}";
-    sha256 = "sha256-c9NjwTCPMl694ijDbljoPaSf86NywLXuKpiG00whA1o=";
+    sha256 = "sha256-ftotZwRxcBErKzh1dZYqScTW12/tCOOHFJuruB5FOMU=";
   };
 
   modRoot = "./go";
   subPackages = [ "cmd/dolt" ];
-  vendorHash = "sha256-kLFANKOGTHcUtgEARm/GzVH5zPEv5ioHCTpgqSbO+pw=";
+  vendorHash = "sha256-RpwIPWzzAxXvDCf2CGnKo4NtsIe7QS4gVP1zeFgq+BQ=";
   proxyVendor = true;
   doCheck = false;
 
diff --git a/pkgs/servers/sql/mariadb/galera/default.nix b/pkgs/servers/sql/mariadb/galera/default.nix
index 720bb050be25..f934d6a00822 100644
--- a/pkgs/servers/sql/mariadb/galera/default.nix
+++ b/pkgs/servers/sql/mariadb/galera/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mariadb-galera";
-  version = "26.4.16";
+  version = "26.4.17";
 
   src = fetchFromGitHub {
     owner = "codership";
     repo = "galera";
     rev = "release_${version}";
-    hash = "sha256-bRkXux4vpnUGRYO4dYD6IuWsbMglsMf17tBw6qpvbDg=";
+    hash = "sha256-XcaHg0mqCGqP7VYb4jLSxuNxmBXJv2ivA/1spMyT4Tg=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/servers/sql/materialize/Cargo.lock b/pkgs/servers/sql/materialize/Cargo.lock
index c39f36cadb7a..9af5a20f6450 100644
--- a/pkgs/servers/sql/materialize/Cargo.lock
+++ b/pkgs/servers/sql/materialize/Cargo.lock
@@ -30,16 +30,18 @@ dependencies = [
 
 [[package]]
 name = "adler"
-version = "0.2.3"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
 name = "ahash"
-version = "0.7.4"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43bb833f0bf979d8475d38fbf09ed3b8a55e1885fe93ad3f93239fc6a4f17b98"
+checksum = "57e6e951cfbb2db8de1828d49073a113a29fd7117b1596caa781a258c7e38d72"
 dependencies = [
+ "cfg-if",
+ "const-random",
  "getrandom",
  "once_cell",
  "version_check",
@@ -47,70 +49,109 @@ dependencies = [
 
 [[package]]
 name = "aho-corasick"
-version = "0.7.18"
+version = "0.7.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
+checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
-name = "ansi_term"
-version = "0.12.1"
+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 = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
+checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
+
+[[package]]
+name = "android_system_properties"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
 dependencies = [
- "winapi",
+ "libc",
 ]
 
 [[package]]
+name = "anes"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
+
+[[package]]
 name = "anyhow"
-version = "1.0.52"
+version = "1.0.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84450d0b4a8bd1ba4144ce8ce718fbc5d071358b1e5384bace6536b3d1f2d5b3"
+checksum = "216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6"
+dependencies = [
+ "backtrace",
+]
 
 [[package]]
-name = "arbitrary"
-version = "1.0.0"
+name = "array-concat"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "698b65a961a9d730fb45b6b0327e20207810c9f61ee421b082b27ba003f49e2b"
+checksum = "e9180feb72ccbc07cfe5ef7fa8bbf86ca71490d5dc9ef8ea02c7298ba94e7f7d"
 
 [[package]]
-name = "arc-swap"
-version = "0.4.8"
+name = "array-init-cursor"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dabe5a181f83789739c194cbe5a897dde195078fac08568d09221fd6137a7ba8"
+checksum = "bf7d0a018de4f6aa429b9d33d69edf69072b1c5b1cb8d3e4a5f7ef898fc3eb76"
+
+[[package]]
+name = "arrayvec"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
 
 [[package]]
 name = "arrow-format"
-version = "0.3.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f7da2d9660bfaebbdb0a44a33b3bd1dcb5a952fafa02c0dfc6a51ea471fef2a"
+checksum = "bb83ada98f9d252a3c3642d96c53a357684a87d2e9a753ddf2a30bae20b91790"
 dependencies = [
- "flatbuffers",
+ "planus",
+ "serde",
 ]
 
 [[package]]
 name = "arrow2"
-version = "0.8.1"
+version = "0.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3452b2ae9727464a31a726c07ffec0c0da3b87831610d9ac99fc691c78b3a44"
+checksum = "7a4c5b03335bc1cb0fd9f5297f8fd3bbfd6fb04f3cb0bc7d6c91b7128cb8336a"
 dependencies = [
+ "ahash",
  "arrow-format",
- "base64",
+ "base64 0.13.1",
+ "bytemuck",
  "chrono",
+ "dyn-clone",
+ "either",
+ "ethnum",
+ "fallible-streaming-iterator",
+ "foreign_vec",
  "futures",
+ "getrandom",
  "hash_hasher",
+ "multiversion",
  "num-traits",
  "parquet2",
+ "rustc_version",
  "simdutf8",
+ "streaming-iterator",
 ]
 
 [[package]]
 name = "askama"
-version = "0.11.0"
+version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d8f355701c672c2ba3d718acbd213f740beea577cc4eae66accdffe15be1882"
+checksum = "fb98f10f371286b177db5eeb9a6e5396609555686a35e1d4f7b9a9c6d8af0139"
 dependencies = [
  "askama_derive",
  "askama_escape",
@@ -119,47 +160,46 @@ dependencies = [
 
 [[package]]
 name = "askama_derive"
-version = "0.11.0"
+version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84704cab5b7ae0fd3a9f78ee5eb7b27f3749df445f04623db6633459ae283267"
+checksum = "87bf87e6e8b47264efa9bde63d6225c6276a52e05e91bf37eaa8afd0032d6b71"
 dependencies = [
  "askama_shared",
  "proc-macro2",
- "syn",
+ "syn 1.0.107",
 ]
 
 [[package]]
 name = "askama_escape"
-version = "0.10.2"
+version = "0.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a1bb320f97e6edf9f756bf015900038e43c7700e059688e5724a928c8f3b8d5"
+checksum = "619743e34b5ba4e9703bba34deac3427c72507c7159f5fd030aea8cac0cfe341"
 
 [[package]]
 name = "askama_shared"
-version = "0.12.0"
+version = "0.12.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dae03eebba55a2697a376e58b573a29fe36893157173ac8df312ad85f3c0e012"
+checksum = "bf722b94118a07fcbc6640190f247334027685d4e218b794dbfe17c32bf38ed0"
 dependencies = [
  "askama_escape",
- "humansize",
+ "mime",
+ "mime_guess",
  "nom",
- "num-traits",
- "percent-encoding",
  "proc-macro2",
  "quote",
  "serde",
  "serde_json",
- "syn",
+ "syn 1.0.107",
  "toml",
 ]
 
 [[package]]
 name = "assert_cmd"
-version = "2.0.2"
+version = "2.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e996dc7940838b7ef1096b882e29ec30a3149a3a443cdc8dba19ed382eca1fe2"
+checksum = "d5c2ca00549910ec251e3bd15f87aeeb206c9456b9a77b43ff6c97c54042a472"
 dependencies = [
- "bstr",
+ "bstr 0.2.14",
  "doc-comment",
  "predicates",
  "predicates-core",
@@ -169,34 +209,24 @@ dependencies = [
 
 [[package]]
 name = "async-compression"
-version = "0.3.8"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5443ccbb270374a2b1055fc72da40e1f237809cd6bb0e97e66d264cd138473a6"
+checksum = "bc2d0cfb2a7388d34f590e76686704c494ed7aaceed62ee1ba35cbf363abc2a5"
 dependencies = [
  "flate2",
  "futures-core",
  "memchr",
  "pin-project-lite",
  "tokio",
-]
-
-[[package]]
-name = "async-native-tls"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d57d4cec3c647232e1094dc013546c0b33ce785d8aeb251e1f20dfaf8a9a13fe"
-dependencies = [
- "futures-util",
- "native-tls",
- "thiserror",
- "url",
+ "zstd 0.13.0",
+ "zstd-safe 7.0.0",
 ]
 
 [[package]]
 name = "async-stream"
-version = "0.3.2"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "171374e7e3b2504e0e5236e3b59260560f9fe94bfe9ac39ba5e4e929c5590625"
+checksum = "dad5c83079eae9969be7fadefe640a1c566901f05ff91ab221de4b6f68d9507e"
 dependencies = [
  "async-stream-impl",
  "futures-core",
@@ -204,31 +234,31 @@ dependencies = [
 
 [[package]]
 name = "async-stream-impl"
-version = "0.3.2"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "648ed8c8d2ce5409ccd57453d9d1b214b342a0d69376a6feda1fd6cae3299308"
+checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.107",
 ]
 
 [[package]]
 name = "async-trait"
-version = "0.1.52"
+version = "0.1.68"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "061a7acccaa286c011ddc30970520b98fa40e00c9d644633fb26b5fc63a265e3"
+checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.39",
 ]
 
 [[package]]
 name = "asynchronous-codec"
-version = "0.5.0"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb4401f0a3622dad2e0763fa79e0eb328bc70fb7dccfdd645341f00d671247d6"
+checksum = "f0de5164e5edbf51c45fb8c2d9664ae1c095cce1b265ecf7569093c0d66ef690"
 dependencies = [
  "bytes",
  "futures-sink",
@@ -243,254 +273,303 @@ version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
 dependencies = [
- "hermit-abi",
+ "hermit-abi 0.1.6",
  "libc",
  "winapi",
 ]
 
 [[package]]
-name = "autocfg"
-version = "1.0.1"
+name = "auto_impl"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
-
-[[package]]
-name = "avro-derive"
-version = "0.0.0"
+checksum = "fee3da8ef1276b0bee5dd1c7258010d8fffd31801447323115a25560e1327b89"
 dependencies = [
+ "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.107",
 ]
 
 [[package]]
-name = "aws-arn"
-version = "0.2.0"
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "autotools"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30ccc2d8a965d90b82f1517caadd1d261e28bdb3ab78c3fb1c4a44d4686fffa4"
+checksum = "c8138adefca3e5d2e73bfba83bd6eeaf904b26a7ac1b4a19892cfe16cc7e1701"
 dependencies = [
- "lazy_static",
- "serde",
+ "cc",
 ]
 
 [[package]]
 name = "aws-config"
-version = "0.4.0"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0cb6c465279db702be3388e9ee0d8cbc8cfb4b470ad1916981d1a0e2ff26f12d"
+checksum = "11382bd8ac4c6c182a9775990935f96c916a865f1414486595f18eb8cfa9d90b"
 dependencies = [
+ "aws-credential-types",
  "aws-http",
+ "aws-runtime",
+ "aws-sdk-sso",
+ "aws-sdk-ssooidc",
  "aws-sdk-sts",
  "aws-smithy-async",
- "aws-smithy-client",
  "aws-smithy-http",
- "aws-smithy-http-tower",
  "aws-smithy-json",
+ "aws-smithy-runtime",
+ "aws-smithy-runtime-api",
  "aws-smithy-types",
  "aws-types",
  "bytes",
+ "fastrand",
+ "hex",
  "http",
  "hyper",
+ "ring",
+ "time",
  "tokio",
- "tower",
  "tracing",
+ "zeroize",
 ]
 
 [[package]]
-name = "aws-endpoint"
-version = "0.4.0"
+name = "aws-credential-types"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72549a509836fa0dcdc2a4e291f5b3c732ebae1acf6564701e9cb779be43ed01"
+checksum = "70a1629320d319dc715c6189b172349186557e209d2a7b893ff3d14efd33a47c"
 dependencies = [
- "aws-smithy-http",
+ "aws-smithy-async",
+ "aws-smithy-runtime-api",
+ "aws-smithy-types",
+ "zeroize",
+]
+
+[[package]]
+name = "aws-http"
+version = "0.60.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30e4199d5d62ab09be6a64650c06cc5c4aa45806fed4c74bc4a5c8eaf039a6fa"
+dependencies = [
+ "aws-smithy-runtime-api",
+ "aws-smithy-types",
  "aws-types",
+ "bytes",
  "http",
- "regex",
+ "http-body",
+ "pin-project-lite",
  "tracing",
 ]
 
 [[package]]
-name = "aws-http"
-version = "0.4.0"
+name = "aws-runtime"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52ad8b6cda2e119df93b02a44fc86a1c56294aabd4f4469a299311436b8e9971"
+checksum = "87116d357c905b53f1828d15366363fd27b330a0393cbef349e653f686d36bad"
 dependencies = [
+ "aws-credential-types",
+ "aws-http",
+ "aws-sigv4",
+ "aws-smithy-async",
+ "aws-smithy-eventstream",
  "aws-smithy-http",
+ "aws-smithy-runtime-api",
  "aws-smithy-types",
  "aws-types",
+ "fastrand",
  "http",
- "lazy_static",
  "percent-encoding",
  "tracing",
+ "uuid",
 ]
 
 [[package]]
-name = "aws-sdk-kinesis"
-version = "0.4.0"
+name = "aws-sdk-s3"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8806c676d5106a992f95b1f3f5bac647fb6a2f22a9fc7faf9d182ab628654739"
+checksum = "56e78d98df174c479a7bb6a065a3314ccefe029c0c4a1cc49c0c012eea144264"
 dependencies = [
- "aws-endpoint",
+ "aws-credential-types",
  "aws-http",
- "aws-sig-auth",
+ "aws-runtime",
+ "aws-sigv4",
  "aws-smithy-async",
- "aws-smithy-client",
+ "aws-smithy-checksums",
+ "aws-smithy-eventstream",
  "aws-smithy-http",
- "aws-smithy-http-tower",
  "aws-smithy-json",
+ "aws-smithy-runtime",
+ "aws-smithy-runtime-api",
  "aws-smithy-types",
+ "aws-smithy-xml",
  "aws-types",
  "bytes",
  "http",
- "tokio-stream",
- "tower",
+ "http-body",
+ "once_cell",
+ "percent-encoding",
+ "regex-lite",
+ "tracing",
+ "url",
 ]
 
 [[package]]
-name = "aws-sdk-s3"
-version = "0.4.0"
+name = "aws-sdk-secretsmanager"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94c9432a07d9522115a0bc4c338a93585e99bbea2fde17b87c1cdf6e7ce58a06"
+checksum = "09a51b0a0838b8aa5b80677d73ba88e7b05c812540bd44aede473d6e65e712aa"
 dependencies = [
- "aws-endpoint",
+ "aws-credential-types",
  "aws-http",
- "aws-sig-auth",
- "aws-sigv4",
+ "aws-runtime",
  "aws-smithy-async",
- "aws-smithy-client",
- "aws-smithy-eventstream",
  "aws-smithy-http",
- "aws-smithy-http-tower",
+ "aws-smithy-json",
+ "aws-smithy-runtime",
+ "aws-smithy-runtime-api",
  "aws-smithy-types",
- "aws-smithy-xml",
  "aws-types",
  "bytes",
+ "fastrand",
  "http",
- "md5",
- "tokio-stream",
- "tower",
+ "once_cell",
+ "regex-lite",
+ "tracing",
 ]
 
 [[package]]
-name = "aws-sdk-sqs"
-version = "0.4.0"
+name = "aws-sdk-sso"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15121818fa602c682df3444451e1abd4f89eb6a3f1af6ee126baadf97951b5b9"
+checksum = "86b1779a72c60d45e5699512310d7f6fb965fecc8f7419ce1b993b716f0026fd"
 dependencies = [
- "aws-endpoint",
+ "aws-credential-types",
  "aws-http",
- "aws-sig-auth",
+ "aws-runtime",
  "aws-smithy-async",
- "aws-smithy-client",
  "aws-smithy-http",
- "aws-smithy-http-tower",
- "aws-smithy-query",
+ "aws-smithy-json",
+ "aws-smithy-runtime",
+ "aws-smithy-runtime-api",
  "aws-smithy-types",
- "aws-smithy-xml",
  "aws-types",
  "bytes",
  "http",
- "tokio-stream",
- "tower",
+ "once_cell",
+ "regex-lite",
+ "tracing",
 ]
 
 [[package]]
-name = "aws-sdk-sts"
-version = "0.4.0"
+name = "aws-sdk-ssooidc"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82f6ee7e1862da6c1f82222423a5dd19897af8a313b1fdad3016711d3f76d3fd"
+checksum = "56ba4a42aa91acecd5ca43b330b5c8eb7f8808d720b6a6f796a35faa302fc73d"
 dependencies = [
- "aws-endpoint",
+ "aws-credential-types",
  "aws-http",
- "aws-sig-auth",
+ "aws-runtime",
  "aws-smithy-async",
- "aws-smithy-client",
  "aws-smithy-http",
- "aws-smithy-http-tower",
- "aws-smithy-query",
+ "aws-smithy-json",
+ "aws-smithy-runtime",
+ "aws-smithy-runtime-api",
  "aws-smithy-types",
- "aws-smithy-xml",
  "aws-types",
  "bytes",
  "http",
- "tower",
+ "once_cell",
+ "regex-lite",
+ "tracing",
 ]
 
 [[package]]
-name = "aws-sig-auth"
-version = "0.4.0"
+name = "aws-sdk-sts"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b92d50e5ec810ecba45cde8b8287cbe670541c65a6d0def0fcda4b6bdf3b6d15"
+checksum = "d27259dcd835b6069260edec09487383f40f45c1cc7f02c74258eff8a22555a4"
 dependencies = [
- "aws-sigv4",
- "aws-smithy-eventstream",
+ "aws-credential-types",
+ "aws-http",
+ "aws-runtime",
+ "aws-smithy-async",
  "aws-smithy-http",
+ "aws-smithy-json",
+ "aws-smithy-query",
+ "aws-smithy-runtime",
+ "aws-smithy-runtime-api",
+ "aws-smithy-types",
+ "aws-smithy-xml",
  "aws-types",
  "http",
- "thiserror",
+ "once_cell",
+ "regex-lite",
  "tracing",
 ]
 
 [[package]]
 name = "aws-sigv4"
-version = "0.4.0"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "675a411b2afff9272c370a61322ceaae74c3102d70524c145e1d43f389ee5bbb"
+checksum = "d222297ca90209dc62245f0a490355795f29de362eb5c19caea4f7f55fe69078"
 dependencies = [
+ "aws-credential-types",
  "aws-smithy-eventstream",
  "aws-smithy-http",
+ "aws-smithy-runtime-api",
+ "aws-smithy-types",
  "bytes",
  "form_urlencoded",
  "hex",
+ "hmac",
  "http",
  "once_cell",
  "percent-encoding",
- "regex",
- "ring",
+ "sha2",
  "time",
  "tracing",
 ]
 
 [[package]]
 name = "aws-smithy-async"
-version = "0.34.0"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40f1fd575567cb5822e32c2d61aefe2d7afd14d4e49d4879b3efaf5372800de3"
+checksum = "1e9f65000917e3aa94c259d67fe01fa9e4cd456187d026067d642436e6311a81"
 dependencies = [
  "futures-util",
  "pin-project-lite",
  "tokio",
- "tokio-stream",
 ]
 
 [[package]]
-name = "aws-smithy-client"
-version = "0.34.0"
+name = "aws-smithy-checksums"
+version = "0.60.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06f2664795a1bb545d651089146f6033d3581ef198d96033a59ca1b2fd0cb6dd"
+checksum = "4c2a63681f82fb85ca58d566534b7dc619c782fee0c61c1aa51e2b560c21cb4f"
 dependencies = [
- "aws-smithy-async",
  "aws-smithy-http",
- "aws-smithy-http-tower",
  "aws-smithy-types",
  "bytes",
- "fastrand",
+ "crc32c",
+ "crc32fast",
+ "hex",
  "http",
  "http-body",
- "hyper",
- "hyper-tls",
- "pin-project",
+ "md-5",
  "pin-project-lite",
- "tokio",
- "tower",
+ "sha1",
+ "sha2",
  "tracing",
 ]
 
 [[package]]
 name = "aws-smithy-eventstream"
-version = "0.34.0"
+version = "0.60.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "790716b9e6a8aef428592921efd6d15dfdf556091015e15af6e6e62f9ae42d5f"
+checksum = "a85e16fa903c70c49ab3785e5f4ac2ad2171b36e0616f321011fa57962404bb6"
 dependencies = [
  "aws-smithy-types",
  "bytes",
@@ -499,97 +578,199 @@ dependencies = [
 
 [[package]]
 name = "aws-smithy-http"
-version = "0.34.0"
+version = "0.60.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "713ad03f7d51a02e8542d92c8674fb4a3b777acec967eb46018d1776bceca86c"
+checksum = "e4e816425a6b9caea4929ac97d0cb33674849bd5f0086418abc0d02c63f7a1bf"
 dependencies = [
  "aws-smithy-eventstream",
+ "aws-smithy-runtime-api",
  "aws-smithy-types",
  "bytes",
  "bytes-utils",
  "futures-core",
  "http",
  "http-body",
- "hyper",
+ "once_cell",
  "percent-encoding",
- "pin-project",
+ "pin-project-lite",
+ "pin-utils",
  "tracing",
 ]
 
 [[package]]
-name = "aws-smithy-http-tower"
-version = "0.34.0"
+name = "aws-smithy-json"
+version = "0.60.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2abf5583dbd165d39c1c31f7495c1a5d5cab93e8090689769ff12cc65dd23a71"
+checksum = "8ab3f6d49e08df2f8d05e1bb5b68998e1e67b76054d3c43e7b954becb9a5e9ac"
 dependencies = [
- "aws-smithy-http",
- "bytes",
- "http",
- "http-body",
- "pin-project",
- "tower",
- "tracing",
+ "aws-smithy-types",
 ]
 
 [[package]]
-name = "aws-smithy-json"
-version = "0.34.0"
+name = "aws-smithy-query"
+version = "0.60.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62d3931e5d170f66a8d84594ebceff66497f2227a4355ac5e25818b547ff9a9b"
+checksum = "0f94a7a3aa509ff9e8b8d80749851d04e5eee0954c43f2e7d6396c4740028737"
 dependencies = [
  "aws-smithy-types",
+ "urlencoding",
 ]
 
 [[package]]
-name = "aws-smithy-query"
-version = "0.34.0"
+name = "aws-smithy-runtime"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90645f9a051e9d33a8740493c691449bf45acc212797c1316c55ae076e1a0327"
+checksum = "8da5b0a3617390e769576321816112f711c13d7e1114685e022505cf51fe5e48"
 dependencies = [
+ "aws-smithy-async",
+ "aws-smithy-http",
+ "aws-smithy-runtime-api",
  "aws-smithy-types",
- "urlencoding",
+ "bytes",
+ "fastrand",
+ "h2",
+ "http",
+ "http-body",
+ "hyper",
+ "once_cell",
+ "pin-project-lite",
+ "pin-utils",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "aws-smithy-runtime-api"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2404c9eb08bfe9af255945254d9afc69a367b7ee008b8db75c05e3bca485fc65"
+dependencies = [
+ "aws-smithy-async",
+ "aws-smithy-types",
+ "bytes",
+ "http",
+ "pin-project-lite",
+ "tokio",
+ "tracing",
+ "zeroize",
 ]
 
 [[package]]
 name = "aws-smithy-types"
-version = "0.34.0"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7f35e1fc3f0bbd986d45d59d4e41d4f90cbb3762986f580ff0d08e069a8e1a5"
+checksum = "2aba8136605d14ac88f57dc3a693a9f8a4eab4a3f52bc03ff13746f0cd704e97"
 dependencies = [
- "itoa 1.0.1",
+ "base64-simd",
+ "bytes",
+ "bytes-utils",
+ "futures-core",
+ "http",
+ "http-body",
+ "itoa",
  "num-integer",
+ "pin-project-lite",
+ "pin-utils",
  "ryu",
+ "serde",
  "time",
+ "tokio",
+ "tokio-util",
 ]
 
 [[package]]
 name = "aws-smithy-xml"
-version = "0.34.0"
+version = "0.60.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9fc9be9d70d5884e334cd6a0ceac607953a70be4ec33e75a65fe939cf3b621ad"
+checksum = "2e8f03926587fc881b12b102048bb04305bf7fb8c83e776f0ccc51eaa2378263"
 dependencies = [
- "thiserror",
  "xmlparser",
 ]
 
 [[package]]
 name = "aws-types"
-version = "0.4.0"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97cb693d2383f85e22d5b131c9848059dbc552b0ed19121b249a920c71afe752"
+checksum = "4e5d5ee29077e0fcd5ddd0c227b521a33aaf02434b7cdba1c55eec5c1f18ac47"
 dependencies = [
+ "aws-credential-types",
  "aws-smithy-async",
+ "aws-smithy-runtime-api",
  "aws-smithy-types",
+ "http",
  "rustc_version",
  "tracing",
- "zeroize",
+]
+
+[[package]]
+name = "axum"
+version = "0.6.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf"
+dependencies = [
+ "async-trait",
+ "axum-core",
+ "base64 0.21.5",
+ "bitflags 1.3.2",
+ "bytes",
+ "futures-util",
+ "headers",
+ "http",
+ "http-body",
+ "hyper",
+ "itoa",
+ "matchit",
+ "memchr",
+ "mime",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustversion",
+ "serde",
+ "serde_json",
+ "serde_path_to_error",
+ "serde_urlencoded",
+ "sha1",
+ "sync_wrapper",
+ "tokio",
+ "tokio-tungstenite",
+ "tower",
+ "tower-layer",
+ "tower-service",
+]
+
+[[package]]
+name = "axum-core"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c"
+dependencies = [
+ "async-trait",
+ "bytes",
+ "futures-util",
+ "http",
+ "http-body",
+ "mime",
+ "rustversion",
+ "tower-layer",
+ "tower-service",
+]
+
+[[package]]
+name = "backoff"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1"
+dependencies = [
+ "getrandom",
+ "instant",
+ "rand",
 ]
 
 [[package]]
 name = "backtrace"
-version = "0.3.63"
+version = "0.3.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "321629d8ba6513061f26707241fa9bc89524ff1cd7a915a97ef0c62c666ce1b6"
+checksum = "cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7"
 dependencies = [
  "addr2line",
  "cc",
@@ -601,38 +782,40 @@ dependencies = [
 ]
 
 [[package]]
+name = "base16ct"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce"
+
+[[package]]
 name = "base64"
-version = "0.13.0"
+version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
+checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
 
 [[package]]
-name = "billing-demo"
-version = "0.0.0"
+name = "base64"
+version = "0.21.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
+
+[[package]]
+name = "base64-simd"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195"
 dependencies = [
- "anyhow",
- "bytes",
- "chrono",
- "clap",
- "csv",
- "env_logger",
- "futures",
- "futures-channel",
- "hex",
- "mz-protoc",
- "ore",
- "postgres-types",
- "protobuf",
- "rand",
- "rand_distr",
- "test-util",
- "tokio",
- "tokio-postgres",
- "tracing",
- "uuid",
+ "outref",
+ "vsimd",
 ]
 
 [[package]]
+name = "base64ct"
+version = "1.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3bdca834647821e0b13d9539a8634eb62d3501b6b6c2cec1722786ee6671b851"
+
+[[package]]
 name = "bincode"
 version = "1.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -642,18 +825,63 @@ dependencies = [
 ]
 
 [[package]]
+name = "bindgen"
+version = "0.65.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cfdf7b466f9a4903edc73f95d6d2bcd5baf8ae620638762244d3f60143643cc5"
+dependencies = [
+ "bitflags 1.3.2",
+ "cexpr",
+ "clang-sys",
+ "lazy_static",
+ "lazycell",
+ "peeking_take_while",
+ "prettyplease 0.2.4",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "rustc-hash",
+ "shlex",
+ "syn 2.0.39",
+]
+
+[[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 = "bitpacking"
-version = "0.8.4"
+name = "bitflags"
+version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8c7d2ac73c167c06af4a5f37e6e59d84148d57ccbe4480b76f0273eefea82d7"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+
+[[package]]
+name = "bitvec"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
 dependencies = [
- "crunchy",
+ "funty",
+ "radium",
+ "tap",
+ "wyz",
 ]
 
 [[package]]
@@ -673,22 +901,49 @@ checksum = "473fc6b38233f9af7baa94fb5852dca389e3d95b8e21c8e3719301462c5d9faf"
 dependencies = [
  "lazy_static",
  "memchr",
- "regex-automata",
+ "regex-automata 0.1.9",
+]
+
+[[package]]
+name = "bstr"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05"
+dependencies = [
+ "memchr",
+ "regex-automata 0.3.9",
  "serde",
 ]
 
 [[package]]
-name = "build-info"
-version = "0.0.0"
+name = "btoi"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9dd6407f73a9b8b6162d8a2ef999fe6afd7cc15902ebf42c5cd296addf17e0ad"
 dependencies = [
- "semver",
+ "num-traits",
+]
+
+[[package]]
+name = "built"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f346b6890a0dfa7266974910e7df2d5088120dd54721b9b0e5aae1ae5e05715"
+dependencies = [
+ "cargo-lock",
 ]
 
 [[package]]
 name = "bumpalo"
-version = "3.2.1"
+version = "3.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b1ce199063694f33ffb7dd4e0ee620741495c32833cde5aa08f02a0bf96f0c8"
+
+[[package]]
+name = "bytecount"
+version = "0.6.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12ae9db68ad7fac5fe51304d20f016c911539251075a214f8e663babefa35187"
+checksum = "2c676a478f63e9fa2dd5368a42f28bba0d6c560b775f38583c8bbaa7fcd67c9c"
 
 [[package]]
 name = "bytefmt"
@@ -700,6 +955,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "bytemuck"
+version = "1.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cdead85bdec19c194affaeeb670c0e41fe23de31459efd1c174d049269cf02cc"
+dependencies = [
+ "bytemuck_derive",
+]
+
+[[package]]
+name = "bytemuck_derive"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "562e382481975bc61d11275ac5e62a19abd00b0547d99516a415336f183dcd0e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.107",
+]
+
+[[package]]
 name = "byteorder"
 version = "1.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -707,9 +982,12 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
 
 [[package]]
 name = "bytes"
-version = "1.1.0"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8"
+checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
+dependencies = [
+ "serde",
+]
 
 [[package]]
 name = "bytes-utils"
@@ -722,37 +1000,88 @@ dependencies = [
 ]
 
 [[package]]
+name = "bytesize"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c58ec36aac5066d5ca17df51b3e70279f5670a72102f5752cb7e7c856adfc70"
+
+[[package]]
+name = "bzip2-sys"
+version = "0.1.11+1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+]
+
+[[package]]
+name = "camino"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88ad0e1e3e88dd237a156ab9f571021b8a158caa0ae44b1968a241efb5144c1e"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "cargo-lock"
+version = "7.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c408da54db4c50d4693f7e649c299bc9de9c23ead86249e5368830bb32a734b"
+dependencies = [
+ "semver",
+ "serde",
+ "toml",
+ "url",
+]
+
+[[package]]
+name = "cargo-platform"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "cargo_metadata"
+version = "0.14.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa"
+dependencies = [
+ "camino",
+ "cargo-platform",
+ "semver",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
 name = "cast"
-version = "0.2.2"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "926013f2860c46252efceabb19f4a6b308197505082c609025aa6706c011d427"
+checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
 
 [[package]]
 name = "cc"
-version = "1.0.72"
+version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
 dependencies = [
  "jobserver",
+ "libc",
 ]
 
 [[package]]
-name = "ccsr"
-version = "0.0.0"
+name = "cexpr"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
 dependencies = [
- "anyhow",
- "futures",
- "hyper",
- "lazy_static",
- "mz-http-proxy",
- "native-tls",
- "openssl",
- "reqwest",
- "serde",
- "serde_json",
- "tokio",
- "tracing",
- "url",
+ "nom",
 ]
 
 [[package]]
@@ -763,12 +1092,12 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "chrono"
-version = "0.4.19"
+version = "0.4.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
+checksum = "fdbc37d37da9e5bce8173f3a41b71d9bf3c674deebbaceacd0ebdabde76efb03"
 dependencies = [
- "libc",
- "num-integer",
+ "android-tzdata",
+ "iana-time-zone",
  "num-traits",
  "serde",
  "winapi",
@@ -776,9 +1105,9 @@ dependencies = [
 
 [[package]]
 name = "chrono-tz"
-version = "0.6.1"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58549f1842da3080ce63002102d5bc954c7bc843d4f47818e642abdc36253552"
+checksum = "fa48fa079165080f11d7753fd0bc175b7d391f276b965fe4b55bfad67856e463"
 dependencies = [
  "chrono",
  "chrono-tz-build",
@@ -789,9 +1118,9 @@ dependencies = [
 
 [[package]]
 name = "chrono-tz-build"
-version = "0.0.2"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db058d493fb2f65f41861bfed7e3fe6335264a9f0f92710cab5bdf01fef09069"
+checksum = "d9998fb9f7e9b2111641485bf8beb32f92945f97f92a3d061f744cfef335f751"
 dependencies = [
  "parse-zoneinfo",
  "phf",
@@ -800,17 +1129,61 @@ dependencies = [
 ]
 
 [[package]]
+name = "chunked_transfer"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fff857943da45f546682664a79488be82e69e43c1a7a2307679ab9afb3a66d2e"
+
+[[package]]
+name = "ciborium"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0c137568cc60b904a7724001b35ce2630fd00d5d84805fbb608ab89509d788f"
+dependencies = [
+ "ciborium-io",
+ "ciborium-ll",
+ "serde",
+]
+
+[[package]]
+name = "ciborium-io"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "346de753af073cc87b52b2083a506b38ac176a44cfb05497b622e27be899b369"
+
+[[package]]
+name = "ciborium-ll"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "213030a2b5a4e0c0892b6652260cf6ccac84827b83a85a534e178e3906c4cf1b"
+dependencies = [
+ "ciborium-io",
+ "half",
+]
+
+[[package]]
+name = "clang-sys"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa66045b9cb23c2e9c1520732030608b02ee07e5cfaa5a521ec15ded7fa24c90"
+dependencies = [
+ "glob",
+ "libc",
+ "libloading",
+]
+
+[[package]]
 name = "clap"
-version = "3.0.6"
+version = "3.2.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1957aa4a5fb388f0a0a73ce7556c5b42025b874e5cdc2c670775e346e97adec0"
+checksum = "eef2b3ded6a26dfaec672a742c93c8cf6b689220324da509ec5caa20de55dc83"
 dependencies = [
  "atty",
- "bitflags",
+ "bitflags 1.3.2",
  "clap_derive",
- "indexmap",
- "lazy_static",
- "os_str_bytes",
+ "clap_lex",
+ "indexmap 1.9.1",
+ "once_cell",
  "strsim",
  "termcolor",
  "terminal_size",
@@ -819,27 +1192,64 @@ dependencies = [
 
 [[package]]
 name = "clap_derive"
-version = "3.0.0"
+version = "3.2.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1b9752c030a14235a0bd5ef3ad60a1dcac8468c30921327fc8af36b20c790b9"
+checksum = "d756c5824fc5c0c1ee8e36000f576968dbcb2081def956c83fad6f40acd46f96"
 dependencies = [
  "heck",
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.107",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5538cd660450ebeb4234cfecf8f2284b844ffc4c50531e66d584ad5b91293613"
+dependencies = [
+ "os_str_bytes",
 ]
 
 [[package]]
 name = "cmake"
-version = "0.1.41"
+version = "0.1.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c84c596dcf125d6781f58e3f4254677ec2a6d8aa56e8501ac277100990b3229"
+checksum = "e8ad8cef104ac57b68b89df3208164d228503abbdce70f6880ffa3d970e7443a"
 dependencies = [
  "cc",
 ]
 
 [[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 = "columnation"
+version = "0.1.0"
+source = "git+https://github.com/MaterializeInc/columnation.git#2cd6d86e5ffabf98aef5cbef09a57f515eae7c55"
+dependencies = [
+ "paste",
+]
+
+[[package]]
+name = "compact_bytes"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de71a0422a777179ab4baef92325e56396443df4a680bc443b11f63d644ca019"
+dependencies = [
+ "serde",
+ "static_assertions",
+]
+
+[[package]]
 name = "compile-time-run"
 version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -847,116 +1257,97 @@ checksum = "43b5affba7c91c039a483065125dd8c6d4a0985e1e9ac5ab6dffdea4fe4e637f"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.107",
 ]
 
 [[package]]
 name = "connection-string"
-version = "0.1.13"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b97faeec45f49581c458f8bf81992c5e3ec17d82cda99f59d3cea14eff62698d"
-dependencies = [
- "wasm-bindgen",
-]
+checksum = "510ca239cf13b7f8d16a2b48f263de7b4f8c566f0af58d901031473c76afb1e3"
 
 [[package]]
 name = "console"
-version = "0.14.0"
+version = "0.15.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cc80946b3480f421c2f17ed1cb841753a371c7c5104f51d507e13f532c856aa"
+checksum = "c3d79fbe8970a77e3e34151cc13d3b3e248aa0faaecb9f6091fa07ebefe5ad60"
 dependencies = [
  "encode_unicode",
  "lazy_static",
  "libc",
- "terminal_size",
- "winapi",
+ "unicode-width",
+ "windows-sys 0.42.0",
 ]
 
 [[package]]
-name = "coord"
-version = "0.0.0"
+name = "console-api"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2895653b4d9f1538a83970077cb01dfc77a4810524e51a110944688e916b18e"
 dependencies = [
- "anyhow",
- "backtrace",
- "bincode",
- "build-info",
- "byteorder",
- "ccsr",
- "chrono",
+ "prost",
+ "prost-types",
+ "tonic",
+ "tracing-core",
+]
+
+[[package]]
+name = "console-subscriber"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4cf42660ac07fcebed809cfe561dd8730bcd35b075215e6479c516bcd0d11cb"
+dependencies = [
+ "console-api",
  "crossbeam-channel",
- "datadriven",
- "dataflow-types",
- "dec",
- "derivative",
- "differential-dataflow",
- "expr",
- "fail",
+ "crossbeam-utils",
  "futures",
- "interchange",
- "itertools",
- "kafka-util",
- "lazy_static",
- "log",
- "mz-avro",
- "mz-aws-util",
- "mz-protoc",
- "ore",
- "persist",
- "pgrepr",
- "postgres-types",
- "postgres-util",
- "prometheus",
- "protobuf",
- "rand",
- "rdkafka",
- "regex",
- "repr",
- "rusqlite",
- "semver",
+ "hdrhistogram",
+ "humantime",
+ "prost-types",
  "serde",
  "serde_json",
- "sql",
- "sql-parser",
- "tempfile",
- "timely",
+ "thread_local",
  "tokio",
- "tokio-postgres",
  "tokio-stream",
+ "tonic",
  "tracing",
- "transform",
- "uncased",
- "url",
- "uuid",
+ "tracing-core",
+ "tracing-subscriber",
 ]
 
 [[package]]
-name = "coordtest"
-version = "0.0.0"
+name = "const-oid"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3"
+
+[[package]]
+name = "const-random"
+version = "0.1.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "368a7a772ead6ce7e1de82bfb04c485f3db8ec744f72925af5735e29a22cc18e"
 dependencies = [
- "anyhow",
- "async-trait",
- "build-info",
- "clap",
- "coord",
- "datadriven",
- "dataflow",
- "dataflow-types",
- "expr",
- "futures",
- "ore",
- "repr",
- "serde_json",
- "sql-parser",
- "tempfile",
- "timely",
- "tokio",
+ "const-random-macro",
+ "proc-macro-hack",
+]
+
+[[package]]
+name = "const-random-macro"
+version = "0.1.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d7d6ab3c3a2282db210df5f02c4dab6e0a7057af0fb7ebd4070f30fe05c0ddb"
+dependencies = [
+ "getrandom",
+ "once_cell",
+ "proc-macro-hack",
+ "tiny-keccak",
 ]
 
 [[package]]
 name = "core-foundation"
-version = "0.9.1"
+version = "0.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a89e2ae426ea83155dccf10c0fa6b1463ef6d5fcb44cee0b224a408fa640a62"
+checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -964,18 +1355,28 @@ dependencies = [
 
 [[package]]
 name = "core-foundation-sys"
-version = "0.8.2"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
+
+[[package]]
+name = "core_affinity"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b"
+checksum = "4436406e93f52cce33bfba4be067a9f7229da44a634c385e4b22cdfaca5f84cc"
+dependencies = [
+ "libc",
+ "num_cpus",
+ "winapi",
+]
 
 [[package]]
 name = "cpp_demangle"
-version = "0.3.2"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44919ecaf6f99e8e737bc239408931c9a01e9a6c74814fee8242dd2506b65390"
+checksum = "b446fd40bcc17eddd6a4a78f24315eb90afdb3334999ddfd4909985c47722442"
 dependencies = [
  "cfg-if",
- "glob",
 ]
 
 [[package]]
@@ -988,24 +1389,36 @@ dependencies = [
 ]
 
 [[package]]
+name = "crc32c"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3dfea2db42e9927a3845fb268a10a72faed6d416065f77873f05e411457c363e"
+dependencies = [
+ "rustc_version",
+]
+
+[[package]]
 name = "crc32fast"
-version = "1.3.0"
+version = "1.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "738c290dfaea84fc1ca15ad9c168d083b05a714e1efddd8edaab678dc28d2836"
+checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
 dependencies = [
  "cfg-if",
 ]
 
 [[package]]
 name = "criterion"
-version = "0.3.5"
-source = "git+https://github.com/MaterializeInc/criterion.rs.git#db5acaae4314d3cb194129233689541c15d3935d"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7c76e09c1aae2bc52b3d2f29e13c6572553b30c4aa1b8a49fd70de6412654cb"
 dependencies = [
+ "anes",
  "atty",
  "cast",
+ "ciborium",
  "clap",
  "criterion-plot",
- "csv",
+ "futures",
  "itertools",
  "lazy_static",
  "num-traits",
@@ -1014,17 +1427,18 @@ dependencies = [
  "rayon",
  "regex",
  "serde",
- "serde_cbor",
  "serde_derive",
  "serde_json",
  "tinytemplate",
+ "tokio",
  "walkdir",
 ]
 
 [[package]]
 name = "criterion-plot"
-version = "0.4.4"
-source = "git+https://github.com/MaterializeInc/criterion.rs.git#db5acaae4314d3cb194129233689541c15d3935d"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"
 dependencies = [
  "cast",
  "itertools",
@@ -1032,9 +1446,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam"
-version = "0.8.1"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ae5588f6b3c3cb05239e90bd110f257254aecd01e4635400391aeae07497845"
+checksum = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c"
 dependencies = [
  "cfg-if",
  "crossbeam-channel",
@@ -1046,9 +1460,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.2"
+version = "0.5.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e54ea8bc3fb1ee042f5aace6e3c6e025d3874866da222930f70ce62aceba0bfa"
+checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
 dependencies = [
  "cfg-if",
  "crossbeam-utils",
@@ -1056,9 +1470,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-deque"
-version = "0.8.1"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e"
+checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
 dependencies = [
  "cfg-if",
  "crossbeam-epoch",
@@ -1067,13 +1481,13 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.5"
+version = "0.9.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd"
+checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a"
 dependencies = [
+ "autocfg",
  "cfg-if",
  "crossbeam-utils",
- "lazy_static",
  "memoffset",
  "scopeguard",
 ]
@@ -1090,9 +1504,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.6"
+version = "0.8.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cfcae03edb34f947e64acdb1c33ec169824e20657e9ecb61cef6c8c74dcb8120"
+checksum = "b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6"
 dependencies = [
  "cfg-if",
  "lazy_static",
@@ -1106,27 +1520,41 @@ checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
 
 [[package]]
 name = "crypto-common"
-version = "0.1.0"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "567569e659735adb39ff2d4c20600f7cd78be5471f8c58ab162bce3c03fdbc5f"
+checksum = "57952ca27b5e3606ff4dd79b0020231aaf9d6aa76dc05fd30137538c50bd3ce8"
 dependencies = [
  "generic-array",
+ "typenum",
 ]
 
 [[package]]
 name = "csv"
-version = "1.1.6"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22813a6dc45b335f9bade10bf7271dc477e81113e89eb251a0bc2a8a81c536e1"
+checksum = "0b015497079b9a9d69c02ad25de6c0a6edef051ea6360a327d0bd05802ef64ad"
 dependencies = [
- "bstr",
  "csv-core",
- "itoa 0.4.6",
+ "itoa",
  "ryu",
  "serde",
 ]
 
 [[package]]
+name = "csv-async"
+version = "1.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "71933d3f2d0481d5111cb2817b15b6961961458ec58adf8008194e6c850046f4"
+dependencies = [
+ "bstr 1.6.0",
+ "cfg-if",
+ "csv-core",
+ "futures",
+ "tokio",
+ "tokio-stream",
+]
+
+[[package]]
 name = "csv-core"
 version = "0.1.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1137,19 +1565,63 @@ dependencies = [
 
 [[package]]
 name = "ctor"
-version = "0.1.21"
+version = "0.1.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096"
+dependencies = [
+ "quote",
+ "syn 1.0.107",
+]
+
+[[package]]
+name = "cxx"
+version = "1.0.63"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccc0a48a9b826acdf4028595adc9db92caea352f7af011a3034acd172a52a0aa"
+checksum = "c949f4e2576a655698463c56dbc5c5ea4c00964becc9adb0458baa943e862a5b"
 dependencies = [
+ "cc",
+ "cxxbridge-flags",
+ "cxxbridge-macro",
+ "link-cplusplus",
+]
+
+[[package]]
+name = "cxx-build"
+version = "1.0.63"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "618f85c8f132bd8912aab124e15a38adc762bb7e3cef84524adde1692ef3e8bc"
+dependencies = [
+ "cc",
+ "codespan-reporting",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "scratch",
+ "syn 1.0.107",
+]
+
+[[package]]
+name = "cxxbridge-flags"
+version = "1.0.63"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b44dad556b0c83d86676135d6c684bdc2b1b9a1188052dd1cb5998246163536"
+
+[[package]]
+name = "cxxbridge-macro"
+version = "1.0.63"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2acc9305a8b69bc2308c2e17dbb98debeac984cdc89ac550c01507cc129433c3"
+dependencies = [
+ "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.107",
 ]
 
 [[package]]
 name = "darling"
-version = "0.12.4"
+version = "0.20.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f2c43f534ea4b0b049015d00269734195e6d3f0f6635cb692251aca6f9f8b3c"
+checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e"
 dependencies = [
  "darling_core",
  "darling_macro",
@@ -1157,30 +1629,47 @@ dependencies = [
 
 [[package]]
 name = "darling_core"
-version = "0.12.4"
+version = "0.20.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e91455b86830a1c21799d94524df0845183fa55bafd9aa137b01c7d1065fa36"
+checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621"
 dependencies = [
  "fnv",
  "ident_case",
  "proc-macro2",
  "quote",
  "strsim",
- "syn",
+ "syn 2.0.39",
 ]
 
 [[package]]
 name = "darling_macro"
-version = "0.12.4"
+version = "0.20.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29b5acf0dea37a7f66f7b25d2c5e93fd46f8f6968b1a5d7a3e02e97768afc95a"
+checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
 dependencies = [
  "darling_core",
  "quote",
- "syn",
+ "syn 2.0.39",
 ]
 
 [[package]]
+name = "dashmap"
+version = "5.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c8858831f7781322e539ea39e72449c46b059638250c14344fec8d0aa6e539c"
+dependencies = [
+ "cfg-if",
+ "num_cpus",
+ "parking_lot",
+]
+
+[[package]]
+name = "data-encoding"
+version = "2.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3ee2393c4a91429dffb4bedf19f4d6abf27d8a732c8ce4980305d782e5426d57"
+
+[[package]]
 name = "datadriven"
 version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1191,144 +1680,54 @@ dependencies = [
 ]
 
 [[package]]
-name = "dataflow"
-version = "0.0.0"
+name = "deadpool"
+version = "0.9.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "421fe0f90f2ab22016f32a9881be5134fdd71c65298917084b0c7477cbc3856e"
 dependencies = [
- "anyhow",
- "async-compression",
  "async-trait",
- "aws-sdk-kinesis",
- "aws-sdk-s3",
- "aws-sdk-sqs",
- "bincode",
- "byteorder",
- "ccsr",
- "chrono",
- "crossbeam-channel",
- "csv-core",
- "dataflow-types",
- "dec",
- "differential-dataflow",
- "dogsdogsdogs",
- "enum-iterator",
- "expr",
- "flate2",
- "futures",
- "globset",
- "inotify",
- "interchange",
- "itertools",
- "kafka-util",
- "lazy_static",
- "log",
- "mz-avro",
- "mz-aws-util",
- "mz-protoc",
- "ore",
- "pdqselect",
- "persist",
- "persist-types",
- "postgres-protocol",
- "postgres-util",
- "prometheus",
- "protobuf",
- "pubnub-hyper",
- "rand",
- "rdkafka",
- "regex",
- "repr",
- "scopeguard",
- "serde",
- "serde_json",
- "tempfile",
- "timely",
- "timely-util",
+ "deadpool-runtime",
+ "num_cpus",
+ "retain_mut",
  "tokio",
- "tokio-postgres",
- "tokio-util",
- "tracing",
- "url",
- "uuid",
-]
-
-[[package]]
-name = "dataflow-bin"
-version = "0.0.0"
-dependencies = [
- "clap",
- "ore",
- "timely",
 ]
 
 [[package]]
-name = "dataflow-types"
-version = "0.0.0"
+name = "deadpool-postgres"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e866e414e9e12fc988f0bfb89a0b86228e7ed196ca509fbc4dcbc738c56e753c"
 dependencies = [
- "anyhow",
- "async-trait",
- "aws-config",
- "aws-smithy-http",
- "aws-types",
- "ccsr",
- "crossbeam-channel",
- "enum-iterator",
- "enum-kinds",
- "expr",
- "futures",
- "globset",
- "http",
- "interchange",
- "kafka-util",
- "mz-aws-util",
- "num_enum",
- "ore",
- "persist",
- "persist-types",
- "regex",
- "repr",
- "serde",
- "serde_json",
- "serde_regex",
- "timely",
+ "deadpool",
+ "log",
  "tokio",
- "tracing",
- "url",
- "uuid",
+ "tokio-postgres",
 ]
 
 [[package]]
-name = "dataflowd"
-version = "0.0.0"
+name = "deadpool-runtime"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eaa37046cc0f6c3cc6090fbdbf73ef0b8ef4cfcc37f6befc0020f63e8cf121e1"
 dependencies = [
- "anyhow",
- "async-trait",
- "clap",
- "dataflow",
- "dataflow-types",
- "futures",
- "ore",
- "timely",
  "tokio",
- "tokio-serde",
- "tokio-util",
- "tracing",
- "tracing-subscriber",
 ]
 
 [[package]]
 name = "debugid"
-version = "0.7.2"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f91cf5a8c2f2097e2a32627123508635d47ce10563d999ec1a95addf08b502ba"
+checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d"
 dependencies = [
+ "serde",
  "uuid",
 ]
 
 [[package]]
 name = "dec"
-version = "0.4.7"
+version = "0.4.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58be07317881c8d6887c3d2e1a73778bf47f4e027d834ae0d105da8bfa3715c8"
+checksum = "cbdeb628adfc427c3f926528cf76daf4418453e103151739d48f79b8182cb41f"
 dependencies = [
  "decnumber-sys",
  "libc",
@@ -1347,57 +1746,51 @@ dependencies = [
 ]
 
 [[package]]
-name = "derivative"
-version = "2.2.0"
+name = "der"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
+checksum = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c"
 dependencies = [
- "proc-macro2",
- "quote",
- "syn",
+ "const-oid",
 ]
 
 [[package]]
-name = "derive_builder"
-version = "0.10.2"
+name = "derivative"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d13202debe11181040ae9063d739fa32cfcaaebe2275fe387703460ae2365b30"
+checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
 dependencies = [
- "derive_builder_macro",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.107",
 ]
 
 [[package]]
-name = "derive_builder_core"
-version = "0.10.2"
+name = "derive-getters"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "66e616858f6187ed828df7c64a6d71720d83767a7f19740b2d1b6fe6327b36e5"
+checksum = "7a2c35ab6e03642397cdda1dd58abbc05d418aef8e36297f336d5aba060fe8df"
 dependencies = [
- "darling",
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.107",
 ]
 
 [[package]]
-name = "derive_builder_macro"
-version = "0.10.2"
+name = "diff"
+version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58a94ace95092c5acb1e97a7e846b310cfbd499652f72297da7493f618a98d73"
-dependencies = [
- "derive_builder_core",
- "syn",
-]
+checksum = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499"
 
 [[package]]
 name = "differential-dataflow"
 version = "0.12.0"
-source = "git+https://github.com/TimelyDataflow/differential-dataflow.git#19808dc71b38d8a0c804ffae96d32868e64b20c1"
+source = "git+https://github.com/MaterializeInc/differential-dataflow.git#c5b9baca0283f4d96f7e6f914de8578fb5c521de"
 dependencies = [
  "abomonation",
  "abomonation_derive",
  "fnv",
  "serde",
- "serde_derive",
  "timely",
 ]
 
@@ -1409,17 +1802,37 @@ checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
 
 [[package]]
 name = "digest"
-version = "0.10.0"
+version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8549e6bfdecd113b7e221fe60b433087f6957387a20f8118ebca9b12af19143d"
+checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f"
 dependencies = [
  "block-buffer",
  "crypto-common",
- "generic-array",
  "subtle",
 ]
 
 [[package]]
+name = "dirs"
+version = "5.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
+dependencies = [
+ "dirs-sys",
+]
+
+[[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 = "doc-comment"
 version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1428,7 +1841,7 @@ checksum = "923dea538cea0aa3025e8685b20d6ee21ef99c4f77e954a30febbaac5ec73a97"
 [[package]]
 name = "dogsdogsdogs"
 version = "0.1.0"
-source = "git+https://github.com/TimelyDataflow/differential-dataflow.git#19808dc71b38d8a0c804ffae96d32868e64b20c1"
+source = "git+https://github.com/MaterializeInc/differential-dataflow.git#c5b9baca0283f4d96f7e6f914de8578fb5c521de"
 dependencies = [
  "abomonation",
  "abomonation_derive",
@@ -1439,36 +1852,21 @@ dependencies = [
 ]
 
 [[package]]
-name = "duct"
-version = "0.13.3"
+name = "dyn-clone"
+version = "1.0.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1607fa68d55be208e83bcfbcfffbc1ec65c9fbcf9eb1a5d548dc3ac0100743b0"
-dependencies = [
- "libc",
- "once_cell",
- "os_pipe",
- "shared_child",
-]
+checksum = "4f94fa09c2aeea5b8839e414b7b841bf429fd25b9c522116ac97ee87856d88b2"
 
 [[package]]
-name = "educe"
-version = "0.4.18"
+name = "either"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f86b50932a01e7ec5c06160492ab660fb19b6bb2a7878030dd6cd68d21df9d4d"
+checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797"
 dependencies = [
- "enum-ordinalize",
- "proc-macro2",
- "quote",
- "syn",
+ "serde",
 ]
 
 [[package]]
-name = "either"
-version = "1.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
-
-[[package]]
 name = "encode_unicode"
 version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1548,23 +1946,35 @@ dependencies = [
 ]
 
 [[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",
+ "quote",
+ "syn 1.0.107",
+]
+
+[[package]]
 name = "enum-iterator"
-version = "0.7.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4eeac5c5edb79e4e39fe8439ef35207780a11f69c52cbe424ce3dfad4cb78de6"
+checksum = "91a4ec26efacf4aeff80887a175a419493cb6f8b5480d26387eb0bd038976187"
 dependencies = [
  "enum-iterator-derive",
 ]
 
 [[package]]
 name = "enum-iterator-derive"
-version = "0.7.0"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c134c37760b27a871ba422106eedbb8247da973a09e82558bf26d619c882b159"
+checksum = "828de45d0ca18782232dfb8f3ea9cc428e8ced380eb26a520baaacfc70de39ce"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.107",
 ]
 
 [[package]]
@@ -1575,123 +1985,115 @@ checksum = "4e40a16955681d469ab3da85aaa6b42ff656b3c67b52e1d8d3dd36afe97fd462"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.107",
 ]
 
 [[package]]
-name = "enum-ordinalize"
-version = "3.1.10"
+name = "enum_dispatch"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b166c9e378360dd5a6666a9604bb4f54ae0cac39023ffbac425e917a2a04fef"
+checksum = "11f36e95862220b211a6e2aa5eca09b4fa391b13cd52ceb8035a24bf65a79de2"
 dependencies = [
- "num-bigint",
- "num-traits",
+ "once_cell",
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.107",
 ]
 
 [[package]]
 name = "enumflags2"
-version = "0.7.1"
+version = "0.7.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8672257d642ffdd235f6e9c723c2326ac1253c8f3c022e7cfd2e57da55b1131"
+checksum = "c041f5090df68b32bcd905365fd51769c8b9d553fe87fde0b683534f10c01bd2"
 dependencies = [
  "enumflags2_derive",
 ]
 
 [[package]]
 name = "enumflags2_derive"
-version = "0.7.0"
+version = "0.7.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33526f770a27828ce7c2792fdb7cb240220237e0ff12933ed6c23957fc5dd7cf"
+checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.39",
 ]
 
 [[package]]
-name = "env_logger"
-version = "0.9.0"
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "errno"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3"
+checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
 dependencies = [
- "atty",
- "humantime",
- "log",
- "regex",
- "termcolor",
+ "errno-dragonfly",
+ "libc",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
-name = "error-iter"
-version = "0.2.0"
+name = "errno-dragonfly"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e09bfe3000e5aaf2904d2c90e8f38de83dff06731c666d588d382f19da6606a9"
+checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+dependencies = [
+ "cc",
+ "libc",
+]
 
 [[package]]
-name = "expr"
-version = "0.0.0"
+name = "error-chain"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc"
 dependencies = [
- "aho-corasick",
- "anyhow",
- "chrono",
- "csv",
- "datadriven",
- "dec",
- "encoding",
- "enum-iterator",
- "expr_test_util",
- "hex",
- "hmac",
- "itertools",
- "lowertest",
- "md-5",
- "num",
- "num-iter",
- "num_enum",
- "ordered-float",
- "ore",
- "paste",
- "pdqselect",
- "pgrepr",
- "proc-macro2",
- "regex",
- "regex-syntax",
- "repr",
- "serde",
- "serde_json",
- "sha-1",
- "sha2",
- "uncased",
- "uuid",
+ "version_check",
 ]
 
 [[package]]
-name = "expr_test_util"
-version = "0.0.0"
+name = "ethnum"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2eac3c0b9fa6eb75255ebb42c0ba3e2210d102a66d2795afef6fed668f373311"
+
+[[package]]
+name = "eventsource-client"
+version = "0.11.0"
+source = "git+https://github.com/MaterializeInc/rust-eventsource-client#fb749fde693a9757289238ee71d4e9b3590fb24b"
 dependencies = [
- "datadriven",
- "expr",
- "lazy_static",
- "lowertest",
- "ore",
- "proc-macro2",
- "repr",
- "repr_test_util",
- "serde",
- "serde_json",
+ "futures",
+ "hyper",
+ "hyper-timeout",
+ "hyper-tls",
+ "log",
+ "pin-project",
+ "rand",
+ "tokio",
+]
+
+[[package]]
+name = "exclusion-set"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c3708c48ed7245587498d116a41566942d6d9943f5b3207fbf522e2bd0b72d0"
+dependencies = [
+ "loom",
 ]
 
 [[package]]
 name = "fail"
-version = "0.5.0"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec3245a0ca564e7f3c797d20d833a6870f57a728ac967d5225b3ffdef4465011"
+checksum = "fe5e43d0f78a42ad591453aedb1d7ae631ce7ee445c7643691055a9ed8d3b01c"
 dependencies = [
- "lazy_static",
  "log",
+ "once_cell",
  "rand",
 ]
 
@@ -1708,6 +2110,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
 
 [[package]]
+name = "fancy-regex"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2"
+dependencies = [
+ "bit-set",
+ "regex",
+]
+
+[[package]]
 name = "fast-float"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1715,12 +2127,9 @@ checksum = "95765f67b4b18863968b4a1bd5bb576f732b29a4a28c7cd84c09fa3e2875f33c"
 
 [[package]]
 name = "fastrand"
-version = "1.5.0"
+version = "2.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b394ed3d285a429378d3b384b9eb1285267e7df4b166df24b7a6939a04dc392e"
-dependencies = [
- "instant",
-]
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
 
 [[package]]
 name = "filetime"
@@ -1730,15 +2139,15 @@ checksum = "1d34cfa13a63ae058bfa601fe9e313bbdb3746427c1459185464ce0fcf62e1e8"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall",
+ "redox_syscall 0.2.10",
  "winapi",
 ]
 
 [[package]]
 name = "findshlibs"
-version = "0.10.1"
+version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d691fdb3f817632d259d09220d4cf0991dbb2c9e59e044a02a59194bf6e14484"
+checksum = "40b9e59cd0f7e0806cca4be089683ecb6434e602038df21fe6bf6711b2f07f64"
 dependencies = [
  "cc",
  "lazy_static",
@@ -1747,25 +2156,19 @@ dependencies = [
 ]
 
 [[package]]
-name = "flatbuffers"
-version = "2.0.0"
+name = "fixedbitset"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef4c5738bcd7fad10315029c50026f83c9da5e4a21f8ed66826f43e0e2bde5f6"
-dependencies = [
- "bitflags",
- "smallvec",
- "thiserror",
-]
+checksum = "279fb028e20b3c4c320317955b77c5e0c9701f05a1d309905d6fc702cdc5053e"
 
 [[package]]
 name = "flate2"
-version = "1.0.22"
+version = "1.0.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53f"
+checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6"
 dependencies = [
- "cfg-if",
  "crc32fast",
- "libc",
+ "libz-sys",
  "miniz_oxide",
 ]
 
@@ -1800,48 +2203,37 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
 
 [[package]]
+name = "foreign_vec"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee1b05cbd864bcaecbd3455d6d967862d446e4ebfc3c2e5e5b9841e53cba6673"
+
+[[package]]
 name = "form_urlencoded"
-version = "1.0.0"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ece68d15c92e84fa4f19d3780f1294e5ca82a78a6d515f1efaabcc144688be00"
+checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
 dependencies = [
- "matches",
  "percent-encoding",
 ]
 
 [[package]]
 name = "fs_extra"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f2a4a2034423744d2cc7ca2068453168dcdb82c438419e639a26bd87839c674"
-
-[[package]]
-name = "fstrings"
-version = "0.2.3"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7845a0f15da505ac36baad0486612dab57f8b8d34e19c5470a265bbcdd572ae6"
-dependencies = [
- "fstrings-proc-macro",
- "proc-macro-hack",
-]
+checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
 
 [[package]]
-name = "fstrings-proc-macro"
-version = "0.2.3"
+name = "funty"
+version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63b58c0e7581dc33478a32299182cbe5ae3b8c028be26728a47fb0a113c92d9d"
-dependencies = [
- "proc-macro-hack",
- "proc-macro2",
- "quote",
- "syn",
-]
+checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
 
 [[package]]
 name = "futures"
-version = "0.3.19"
+version = "0.3.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28560757fe2bb34e79f907794bb6b22ae8b0e5c669b638a1132f2592b19035b4"
+checksum = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -1854,9 +2246,9 @@ dependencies = [
 
 [[package]]
 name = "futures-channel"
-version = "0.3.19"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba3dda0b6588335f360afc675d0564c17a77a2bda81ca178a4b6081bd86c7f0b"
+checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -1864,15 +2256,15 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.19"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0c8ff0461b82559810cdccfde3215c3f373807f5e5232b71479bff7bb2583d7"
+checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.19"
+version = "0.3.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29d6d2ff5bb10fb95c85b8ce46538a2e5f5e7fdc755623a7d4529ab8a4ed9d2a"
+checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -1881,38 +2273,44 @@ dependencies = [
 
 [[package]]
 name = "futures-io"
-version = "0.3.19"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1f9d34af5a1aac6fb380f735fe510746c38067c5bf16c7fd250280503c971b2"
+checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
 
 [[package]]
 name = "futures-macro"
-version = "0.3.19"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6dbd947adfffb0efc70599b3ddcf7b5597bb5fa9e245eb99f62b3a5f7bb8bd3c"
+checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.39",
 ]
 
 [[package]]
 name = "futures-sink"
-version = "0.3.19"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3055baccb68d74ff6480350f8d6eb8fcfa3aa11bdc1a1ae3afdd0514617d508"
+checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
 
 [[package]]
 name = "futures-task"
-version = "0.3.19"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+
+[[package]]
+name = "futures-timer"
+version = "3.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ee7c6485c30167ce4dfb83ac568a849fe53274c831081476ee13e0dce1aad72"
+checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
 
 [[package]]
 name = "futures-util"
-version = "0.3.19"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b5cf40b47a271f77a8b1bec03ca09044d99d2372c0de244e66430761127164"
+checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -1927,12 +2325,16 @@ dependencies = [
 ]
 
 [[package]]
-name = "fuzz"
-version = "0.0.1"
+name = "generator"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5cc16584ff22b460a382b7feec54b23d2908d858152e5739a120b949293bd74e"
 dependencies = [
- "honggfuzz",
- "repr",
- "sql-parser",
+ "cc",
+ "libc",
+ "log",
+ "rustversion",
+ "windows",
 ]
 
 [[package]]
@@ -1956,25 +2358,15 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.1"
+version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4060f4657be78b8e766215b02b18a2e862d83745545de804638e2b545e81aee6"
+checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
 dependencies = [
  "cfg-if",
+ "js-sys",
  "libc",
  "wasi",
-]
-
-[[package]]
-name = "getset"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24b328c01a4d71d2d8173daa93562a73ab0fe85616876f02500f53d82948c504"
-dependencies = [
- "proc-macro-error",
- "proc-macro2",
- "quote",
- "syn",
+ "wasm-bindgen",
 ]
 
 [[package]]
@@ -1985,18 +2377,18 @@ checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4"
 
 [[package]]
 name = "glob"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
 name = "globset"
-version = "0.4.8"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10463d9ff00a2a068db14231982f5132edebad0d7660cd956a1c30292dbcbfbd"
+checksum = "0a1e17342619edbc21a964c2afbeb6c820c6a2560032872f397bb97ea127bd0a"
 dependencies = [
  "aho-corasick",
- "bstr",
+ "bstr 0.2.14",
  "fnv",
  "log",
  "regex",
@@ -2004,10 +2396,28 @@ dependencies = [
 ]
 
 [[package]]
+name = "governor"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "821239e5672ff23e2a7060901fa622950bbd80b649cdaadd78d1c1767ed14eb4"
+dependencies = [
+ "cfg-if",
+ "dashmap",
+ "futures",
+ "futures-timer",
+ "no-std-compat",
+ "nonzero_ext",
+ "parking_lot",
+ "quanta",
+ "rand",
+ "smallvec",
+]
+
+[[package]]
 name = "h2"
-version = "0.3.9"
+version = "0.3.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f072413d126e57991455e0a922b31e4c8ba7c2ffbebf6b78b4f8521397d65cd"
+checksum = "17f8a914c2987b688368b5138aa05321db91f4090cf26118185672ad588bce21"
 dependencies = [
  "bytes",
  "fnv",
@@ -2015,7 +2425,7 @@ dependencies = [
  "futures-sink",
  "futures-util",
  "http",
- "indexmap",
+ "indexmap 1.9.1",
  "slab",
  "tokio",
  "tokio-util",
@@ -2036,53 +2446,63 @@ checksum = "74721d007512d0cb3338cd20f0654ac913920061a4c4d0d8708edb3f2a698c0c"
 
 [[package]]
 name = "hashbrown"
-version = "0.11.2"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+
+[[package]]
+name = "hashbrown"
+version = "0.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
+checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
 dependencies = [
  "ahash",
+ "allocator-api2",
 ]
 
 [[package]]
-name = "hashlink"
-version = "0.7.0"
+name = "hdrhistogram"
+version = "7.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7249a3129cbc1ffccd74857f81464a323a152173cdb134e0fd81bc803b29facf"
+checksum = "6490be71f07a5f62b564bc58e36953f675833df11c7e4a0647bee7a07ca1ec5e"
 dependencies = [
- "hashbrown",
+ "base64 0.13.1",
+ "byteorder",
+ "flate2",
+ "nom",
+ "num-traits",
 ]
 
 [[package]]
 name = "headers"
-version = "0.3.5"
-source = "git+https://github.com/MaterializeInc/headers.git#b968d50f79907ea74ad42c8cc83c950314f1ca31"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584"
 dependencies = [
- "base64",
- "bitflags",
+ "base64 0.13.1",
+ "bitflags 1.3.2",
  "bytes",
  "headers-core",
  "http",
  "httpdate",
  "mime",
- "sha-1",
+ "sha1",
 ]
 
 [[package]]
 name = "headers-core"
 version = "0.2.0"
-source = "git+https://github.com/MaterializeInc/headers.git#b968d50f79907ea74ad42c8cc83c950314f1ca31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429"
 dependencies = [
  "http",
 ]
 
 [[package]]
 name = "heck"
-version = "0.3.1"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
-dependencies = [
- "unicode-segmentation",
-]
+checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
 
 [[package]]
 name = "hermit-abi"
@@ -2094,6 +2514,21 @@ 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"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
+
+[[package]]
 name = "hex"
 version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2106,41 +2541,59 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0"
 
 [[package]]
+name = "hibitset"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3ede5cfa60c958e60330d65163adbc4211e15a2653ad80eb0cce878de120121"
+dependencies = [
+ "rayon",
+]
+
+[[package]]
 name = "hmac"
-version = "0.12.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ddca131f3e7f2ce2df364b57949a9d47915cfbd35e46cfee355ccebbf794d6a2"
+checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
 dependencies = [
  "digest",
 ]
 
 [[package]]
-name = "honggfuzz"
-version = "0.5.54"
+name = "home"
+version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bea09577d948a98a5f59b7c891e274c4fb35ad52f67782b3d0cb53b9c05301f1"
+checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb"
 dependencies = [
- "arbitrary",
- "lazy_static",
- "memmap",
+ "windows-sys 0.48.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 = "http"
-version = "0.2.6"
+version = "0.2.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31f4c6746584866f0feabcc69893c5b51beef3831656a968ed7ae254cdc4fd03"
+checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
 dependencies = [
  "bytes",
  "fnv",
- "itoa 1.0.1",
+ "itoa",
 ]
 
 [[package]]
 name = "http-body"
-version = "0.4.4"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6"
+checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
 dependencies = [
  "bytes",
  "http",
@@ -2148,34 +2601,34 @@ dependencies = [
 ]
 
 [[package]]
-name = "httparse"
-version = "1.5.1"
+name = "http-range-header"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503"
+checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29"
 
 [[package]]
-name = "httpdate"
-version = "1.0.0"
+name = "httparse"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05842d0d43232b23ccb7060ecb0f0626922c21f30012e97b767b30afd4a5d4b9"
+checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
 
 [[package]]
-name = "humansize"
-version = "1.1.1"
+name = "httpdate"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02296996cb8796d7c6e3bc2d9211b7802812d36999a51bb754123ead7d37d026"
+checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
 
 [[package]]
 name = "humantime"
-version = "2.0.1"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c1ad908cc71012b7bea4d0c53ba96a8cba9962f048fa68d143376143d863b7a"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
 
 [[package]]
 name = "hyper"
-version = "0.14.16"
+version = "0.14.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7ec3e62bdc98a2f0393a5048e4c30ef659440ea6e0e572965103e72bd836f55"
+checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468"
 dependencies = [
  "bytes",
  "futures-channel",
@@ -2186,9 +2639,9 @@ dependencies = [
  "http-body",
  "httparse",
  "httpdate",
- "itoa 0.4.6",
+ "itoa",
  "pin-project-lite",
- "socket2",
+ "socket2 0.4.9",
  "tokio",
  "tower-service",
  "tracing",
@@ -2197,9 +2650,9 @@ dependencies = [
 
 [[package]]
 name = "hyper-openssl"
-version = "0.9.1"
+version = "0.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9d52322a69f0a93f177d76ca82073fcec8d5b4eb6e28525d5b3142fa718195c"
+checksum = "d6ee5d7a8f718585d1c3c61dfde28ef5b0bb14734b4db13f5ada856cdc6c612b"
 dependencies = [
  "http",
  "hyper",
@@ -2214,21 +2667,15 @@ dependencies = [
 ]
 
 [[package]]
-name = "hyper-proxy"
-version = "0.9.1"
+name = "hyper-timeout"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca815a891b24fdfb243fa3239c86154392b0953ee584aa1a2a1f66d20cbe75cc"
+checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1"
 dependencies = [
- "bytes",
- "futures",
- "headers",
- "http",
  "hyper",
- "hyper-tls",
- "native-tls",
+ "pin-project-lite",
  "tokio",
- "tokio-native-tls",
- "tower-service",
+ "tokio-io-timeout",
 ]
 
 [[package]]
@@ -2245,6 +2692,20 @@ dependencies = [
 ]
 
 [[package]]
+name = "iana-time-zone"
+version = "0.1.47"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c495f162af0bf17656d0014a0eded5f3cd2f365fdd204548c2869db89359dc7"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys",
+ "js-sys",
+ "once_cell",
+ "wasm-bindgen",
+ "winapi",
+]
+
+[[package]]
 name = "ident_case"
 version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2252,20 +2713,19 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
 
 [[package]]
 name = "idna"
-version = "0.2.0"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"
+checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
 dependencies = [
- "matches",
  "unicode-bidi",
  "unicode-normalization",
 ]
 
 [[package]]
 name = "include_dir"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "482a2e29200b7eed25d7fdbd14423326760b7f6658d21a4cf12d55a50713c69f"
+checksum = "18762faeff7122e89e0857b02f7ce6fcc0d101d5e9ad2ad7846cc01d61b7f19e"
 dependencies = [
  "include_dir_macros",
 ]
@@ -2282,128 +2742,90 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "1.7.0"
+version = "1.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5"
+checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e"
 dependencies = [
  "autocfg",
- "hashbrown",
+ "hashbrown 0.12.3",
+ "serde",
 ]
 
 [[package]]
-name = "indicatif"
-version = "0.16.2"
+name = "indexmap"
+version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d207dc617c7a380ab07ff572a6e52fa202a2a8f355860ac9c38e23f8196be1b"
+checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
 dependencies = [
- "console",
- "lazy_static",
- "number_prefix",
- "regex",
+ "equivalent",
+ "hashbrown 0.14.0",
 ]
 
 [[package]]
-name = "inotify"
-version = "0.10.0"
+name = "indicatif"
+version = "0.17.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abf888f9575c290197b2c948dc9e9ff10bd1a39ad1ea8585f734585fa6b9d3f9"
+checksum = "4295cbb7573c16d310e99e713cf9e75101eb190ab31fccd35f2d2691b4352b19"
 dependencies = [
- "bitflags",
- "futures-core",
- "inotify-sys",
- "libc",
- "tokio",
+ "console",
+ "number_prefix",
+ "portable-atomic",
+ "unicode-width",
 ]
 
 [[package]]
-name = "inotify-sys"
-version = "0.1.4"
+name = "insta"
+version = "1.33.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4563555856585ab3180a5bf0b2f9f8d301a728462afffc8195b3f5394229c55"
+checksum = "1aa511b2e298cd49b1856746f6bb73e17036bcd66b25f5e92cdcdbec9bd75686"
 dependencies = [
- "libc",
+ "console",
+ "lazy_static",
+ "linked-hash-map",
+ "similar",
+ "yaml-rust",
 ]
 
 [[package]]
 name = "instant"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b141fdc7836c525d4d594027d318c84161ca17aaf8113ab1f81ab93ae897485"
-
-[[package]]
-name = "integer-encoding"
-version = "3.0.2"
+version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90c11140ffea82edce8dcd74137ce9324ec24b3cf0175fc9d7e29164da9915b8"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
 dependencies = [
- "async-trait",
- "futures-util",
+ "cfg-if",
 ]
 
 [[package]]
-name = "interchange"
-version = "0.0.0"
+name = "io-lifetimes"
+version = "1.0.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220"
 dependencies = [
- "anyhow",
- "avro-derive",
- "base64",
- "byteorder",
- "ccsr",
- "chrono",
- "criterion",
- "dec",
- "differential-dataflow",
- "futures",
- "hex",
- "itertools",
- "lazy_static",
- "mz-avro",
- "mz-protoc",
- "num-traits",
- "ordered-float",
- "ore",
- "protobuf",
- "regex",
- "repr",
- "serde",
- "serde_json",
- "sha2",
- "smallvec",
- "sql-parser",
- "tempfile",
- "timely",
- "tokio",
- "tracing",
- "url",
- "uuid",
+ "hermit-abi 0.3.1",
+ "libc",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "ipnet"
-version = "2.3.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68f2d64f2edebec4ce84ad108148e67e1064789bee435edc5b60ad398714a3a9"
+checksum = "879d54834c8c76457ef4293a689b2a8c59b076067ad77b15efafbb05f92a592b"
 
 [[package]]
 name = "itertools"
-version = "0.10.3"
+version = "0.10.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3"
+checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
 dependencies = [
  "either",
 ]
 
 [[package]]
 name = "itoa"
-version = "0.4.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
-
-[[package]]
-name = "itoa"
-version = "1.0.1"
+version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35"
+checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
 
 [[package]]
 name = "jobserver"
@@ -2416,60 +2838,241 @@ dependencies = [
 
 [[package]]
 name = "js-sys"
-version = "0.3.51"
+version = "0.3.64"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "83bdfbace3a0e81a4253f73b49e960b053e396a11012cbd49b9b74d6a2b67062"
+checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
 dependencies = [
  "wasm-bindgen",
 ]
 
 [[package]]
-name = "json"
-version = "0.12.4"
+name = "json-patch"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f54898088ccb91df1b492cc80029a6fdf1c48ca0db7c6822a8babad69c94658"
+dependencies = [
+ "serde",
+ "serde_json",
+ "thiserror",
+ "treediff",
+]
+
+[[package]]
+name = "jsonpath_lib"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "078e285eafdfb6c4b434e0d31e8cfcb5115b651496faca5749b88fafd4f23bfd"
+checksum = "eaa63191d68230cccb81c5aa23abd53ed64d83337cacbb25a7b8c7979523774f"
+dependencies = [
+ "log",
+ "serde",
+ "serde_json",
+]
 
 [[package]]
-name = "json-flattened-view-gen"
-version = "0.1.0"
+name = "jsonwebtoken"
+version = "9.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c7ea04a7c5c055c175f189b6dc6ba036fd62306b58c66c9f6389036c503a3f4"
 dependencies = [
- "anyhow",
- "clap",
- "ore",
+ "base64 0.21.5",
+ "js-sys",
+ "pem",
+ "ring",
  "serde",
  "serde_json",
+ "simple_asn1",
 ]
 
 [[package]]
-name = "kafka-util"
-version = "0.0.0"
+name = "junit-report"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06c3a3342e6720a82d7d179f380e9841b73a1dd49344e33959fdfe571ce56b55"
 dependencies = [
- "anyhow",
- "ccsr",
+ "derive-getters",
+ "quick-xml",
+ "strip-ansi-escapes",
+ "time",
+]
+
+[[package]]
+name = "k8s-openapi"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "edc3606fd16aca7989db2f84bb25684d0270c6d6fa1dbcd0025af7b4130523a6"
+dependencies = [
+ "base64 0.21.5",
+ "bytes",
  "chrono",
- "clap",
- "crossbeam",
+ "schemars",
+ "serde",
+ "serde-value",
+ "serde_json",
+]
+
+[[package]]
+name = "keyed_priority_queue"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d63b6407b66fc81fc539dccf3ddecb669f393c5101b6a2be3976c95099a06e8"
+dependencies = [
+ "indexmap 1.9.1",
+]
+
+[[package]]
+name = "kube"
+version = "0.87.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e34392aea935145070dcd5b39a6dea689ac6534d7d117461316c3d157b1d0fc3"
+dependencies = [
+ "k8s-openapi",
+ "kube-client",
+ "kube-core",
+ "kube-derive",
+ "kube-runtime",
+]
+
+[[package]]
+name = "kube-client"
+version = "0.87.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7266548b9269d9fa19022620d706697e64f312fb2ba31b93e6986453fcc82c92"
+dependencies = [
+ "base64 0.21.5",
+ "bytes",
+ "chrono",
+ "either",
  "futures",
- "mz-avro",
- "num_cpus",
- "ore",
+ "home",
+ "http",
+ "http-body",
+ "hyper",
+ "hyper-openssl",
+ "hyper-timeout",
+ "jsonpath_lib",
+ "k8s-openapi",
+ "kube-core",
+ "openssl",
+ "pem",
+ "pin-project",
  "rand",
- "rdkafka",
+ "secrecy",
  "serde",
  "serde_json",
+ "serde_yaml",
+ "thiserror",
  "tokio",
+ "tokio-tungstenite",
+ "tokio-util",
+ "tower",
+ "tower-http",
  "tracing",
- "url",
 ]
 
 [[package]]
-name = "krb5-src"
-version = "0.3.1+1.19.2"
+name = "kube-core"
+version = "0.87.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57fe5be675c272d885d49be528b3b048e38974a0579b0e691da2fb3f3c41eaca"
+checksum = "b8321c315b96b59f59ef6b33f604b84b905ab8f9ff114a4f909d934c520227b1"
 dependencies = [
- "duct",
- "openssl-sys",
+ "chrono",
+ "form_urlencoded",
+ "http",
+ "json-patch",
+ "k8s-openapi",
+ "once_cell",
+ "schemars",
+ "serde",
+ "serde_json",
+ "thiserror",
+]
+
+[[package]]
+name = "kube-derive"
+version = "0.87.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d54591e1f37fc329d412c0fdaced010cc1305b546a39f283fc51700f8fb49421"
+dependencies = [
+ "darling",
+ "proc-macro2",
+ "quote",
+ "serde_json",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "kube-runtime"
+version = "0.87.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e511e2c1a368d9d4bf6e70db58197e535d818df355b5a2007a8aeb17a370a8ba"
+dependencies = [
+ "ahash",
+ "async-trait",
+ "backoff",
+ "derivative",
+ "futures",
+ "hashbrown 0.14.0",
+ "json-patch",
+ "k8s-openapi",
+ "kube-client",
+ "parking_lot",
+ "pin-project",
+ "serde",
+ "serde_json",
+ "smallvec",
+ "thiserror",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "launchdarkly-server-sdk"
+version = "1.0.0"
+source = "git+https://github.com/MaterializeInc/rust-server-sdk#df1440c8b93a192d50470d1b258615febe52f1f8"
+dependencies = [
+ "built",
+ "chrono",
+ "crossbeam-channel",
+ "data-encoding",
+ "eventsource-client",
+ "futures",
+ "hyper",
+ "hyper-tls",
+ "launchdarkly-server-sdk-evaluation",
+ "lazy_static",
+ "log",
+ "lru",
+ "moka",
+ "parking_lot",
+ "ring",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "tokio",
+ "tokio-stream",
+ "uuid",
+]
+
+[[package]]
+name = "launchdarkly-server-sdk-evaluation"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c27dd31ce69c55fca526d1c22c2dcca96fd0c98e496529d37eeef6c41652173"
+dependencies = [
+ "base16ct",
+ "chrono",
+ "itertools",
+ "lazy_static",
+ "log",
+ "maplit",
+ "regex",
+ "semver",
+ "serde",
+ "serde_json",
+ "serde_with",
+ "sha1",
+ "urlencoding",
 ]
 
 [[package]]
@@ -2479,33 +3082,60 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
-name = "libc"
-version = "0.2.112"
+name = "lazycell"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b03d17f364a3a042d5e5d46b053bbbf82c92c9430c592dd4c064dc6ee997125"
+checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
 
 [[package]]
-name = "libm"
-version = "0.2.1"
+name = "lgalloc"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a"
+checksum = "04e800ee9a186dfd634b56aac0814ab6281f87c962bc63087361fa73442e30e1"
+dependencies = [
+ "crossbeam-deque",
+ "libc",
+ "memmap2",
+ "tempfile",
+ "thiserror",
+]
 
 [[package]]
-name = "libsqlite3-sys"
-version = "0.23.1"
+name = "libc"
+version = "0.2.148"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b"
+
+[[package]]
+name = "libloading"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abd5850c449b40bacb498b2bbdfaff648b1b055630073ba8db499caf2d0ea9f2"
+checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd"
+dependencies = [
+ "cfg-if",
+ "winapi",
+]
+
+[[package]]
+name = "librocksdb-sys"
+version = "0.11.0+8.3.2"
+source = "git+https://github.com/MaterializeInc/rust-rocksdb?branch=master#3305d514d509c6b95b0c925c78157e5e4ae4b7ba"
 dependencies = [
+ "bindgen",
+ "bzip2-sys",
  "cc",
- "pkg-config",
- "vcpkg",
+ "glob",
+ "libc",
+ "libz-sys",
+ "lz4-sys",
+ "zstd-sys",
 ]
 
 [[package]]
 name = "libz-sys"
-version = "1.1.2"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "602113192b08db8f38796c4e85c39e960c145965140e918018bcde1952429655"
+checksum = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf"
 dependencies = [
  "cc",
  "libc",
@@ -2514,10 +3144,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "link-cplusplus"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8cae2cd7ba2f3f63938b9c724475dfb7b9861b545a90324476324ed21dbc8c8"
+dependencies = [
+ "cc",
+]
+
+[[package]]
 name = "linked-hash-map"
-version = "0.5.4"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3"
+checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
 
 [[package]]
 name = "linked_hash_set"
@@ -2529,44 +3168,87 @@ dependencies = [
 ]
 
 [[package]]
+name = "linux-raw-sys"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "36eb31c1778188ae1e64398743890d0877fef36d11521ac60406b42016e8c2cf"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456"
+
+[[package]]
 name = "lock_api"
-version = "0.4.2"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312"
+checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b"
 dependencies = [
  "scopeguard",
 ]
 
 [[package]]
 name = "log"
-version = "0.4.14"
+version = "0.4.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
+checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
 dependencies = [
  "cfg-if",
 ]
 
 [[package]]
-name = "lowertest"
-version = "0.0.0"
+name = "loom"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5"
 dependencies = [
- "anyhow",
- "datadriven",
- "lazy_static",
- "lowertest-derive",
- "ore",
- "proc-macro2",
+ "cfg-if",
+ "generator",
+ "scoped-tls",
+ "tracing",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "lru"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1efa59af2ddfad1854ae27d75009d538d0998b4b2fd47083e743ac1a10e46c60"
+dependencies = [
+ "hashbrown 0.14.0",
+]
+
+[[package]]
+name = "lsp-types"
+version = "0.94.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c66bfd44a06ae10647fe3f8214762e9369fd4248df1350924b4ef9e770a85ea1"
+dependencies = [
+ "bitflags 1.3.2",
  "serde",
  "serde_json",
+ "serde_repr",
+ "url",
 ]
 
 [[package]]
-name = "lowertest-derive"
-version = "0.0.0"
+name = "lz4-sys"
+version = "1.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57d27b317e207b10f69f5e75494119e391a96f48861ae870d1da6edac98ca900"
 dependencies = [
- "proc-macro2",
- "quote",
- "syn",
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "mach2"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d0d1830bcd151a6fc4aea1369af235b36c1528fe976b8ff678683c9995eade8"
+dependencies = [
+ "libc",
 ]
 
 [[package]]
@@ -2576,12 +3258,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
 
 [[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",
+ "regex-automata 0.1.9",
 ]
 
 [[package]]
@@ -2591,337 +3279,2911 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
 
 [[package]]
-name = "materialized"
-version = "0.17.0"
+name = "matchit"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b87248edafb776e59e6ee64a79086f65890d3510f2c656c000bf2a7e8a0aea40"
+
+[[package]]
+name = "md-5"
+version = "0.10.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca"
+dependencies = [
+ "digest",
+]
+
+[[package]]
+name = "memchr"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+
+[[package]]
+name = "memmap2"
+version = "0.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d5172b50c23043ff43dd53e51392f36519d9b35a8f3a410d30ece5d1aedd58ae"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memoffset"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
+dependencies = [
+ "autocfg",
+]
+
+[[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.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2684d4c2e97d99848d30b324b00c8fcc7e5c897b7cbb5819b09e7c90e8baf212"
+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.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2b29bd4bc3f33391105ebee3589c19197c4271e3e5a9ec9bfe8127eeff8f082"
+dependencies = [
+ "adler",
+]
+
+[[package]]
+name = "mio"
+version = "0.8.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
+dependencies = [
+ "libc",
+ "log",
+ "wasi",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "moka"
+version = "0.9.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b49a05f67020456541f4f29cbaa812016a266a86ec76f96d3873d459c68fe5e"
+dependencies = [
+ "crossbeam-channel",
+ "crossbeam-epoch",
+ "crossbeam-utils",
+ "num_cpus",
+ "once_cell",
+ "parking_lot",
+ "rustc_version",
+ "scheduled-thread-pool",
+ "skeptic",
+ "smallvec",
+ "tagptr",
+ "thiserror",
+ "triomphe",
+ "uuid",
+]
+
+[[package]]
+name = "multimap"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a"
+
+[[package]]
+name = "multiversion"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "025c962a3dd3cc5e0e520aa9c612201d127dcdf28616974961a649dca64f5373"
+dependencies = [
+ "multiversion-macros",
+]
+
+[[package]]
+name = "multiversion-macros"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8a3e2bde382ebf960c1f3e79689fa5941625fe9bf694a1cb64af3e85faff3af"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.107",
+]
+
+[[package]]
+name = "mysql_async"
+version = "0.33.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6750b17ce50f8f112ef1a8394121090d47c596b56a6a17569ca680a9626e2ef2"
+dependencies = [
+ "bytes",
+ "crossbeam",
+ "flate2",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "keyed_priority_queue",
+ "lazy_static",
+ "lru",
+ "mio",
+ "mysql_common",
+ "once_cell",
+ "pem",
+ "percent-encoding",
+ "pin-project",
+ "rand",
+ "serde",
+ "serde_json",
+ "socket2 0.5.3",
+ "thiserror",
+ "tokio",
+ "tokio-util",
+ "tracing",
+ "twox-hash",
+ "url",
+]
+
+[[package]]
+name = "mysql_common"
+version = "0.31.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06f19e4cfa0ab5a76b627cec2d81331c49b034988eaf302c3bafeada684eadef"
+dependencies = [
+ "base64 0.21.5",
+ "bindgen",
+ "bitflags 2.4.1",
+ "bitvec",
+ "btoi",
+ "byteorder",
+ "bytes",
+ "cc",
+ "cmake",
+ "crc32fast",
+ "flate2",
+ "lazy_static",
+ "num-bigint",
+ "num-traits",
+ "rand",
+ "regex",
+ "saturating",
+ "serde",
+ "serde_json",
+ "sha1",
+ "sha2",
+ "smallvec",
+ "subprocess",
+ "thiserror",
+ "uuid",
+ "zstd 0.12.4",
+]
+
+[[package]]
+name = "mz"
+version = "0.3.0"
+dependencies = [
+ "assert_cmd",
+ "axum",
+ "clap",
+ "csv",
+ "dirs",
+ "hyper",
+ "indicatif",
+ "maplit",
+ "mz-build-info",
+ "mz-cloud-api",
+ "mz-frontegg-auth",
+ "mz-frontegg-client",
+ "mz-ore",
+ "once_cell",
+ "open",
+ "openssl-probe",
+ "reqwest",
+ "rpassword",
+ "security-framework",
+ "semver",
+ "serde",
+ "serde-aux",
+ "serde_json",
+ "tabled",
+ "termcolor",
+ "thiserror",
+ "time",
+ "tokio",
+ "toml",
+ "toml_edit",
+ "url",
+ "uuid",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-adapter"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "bytes",
+ "bytesize",
+ "chrono",
+ "criterion",
+ "datadriven",
+ "deadpool-postgres",
+ "dec",
+ "derivative",
+ "differential-dataflow",
+ "enum-kinds",
+ "fail",
+ "futures",
+ "governor",
+ "hex",
+ "http",
+ "itertools",
+ "launchdarkly-server-sdk",
+ "maplit",
+ "mz-adapter-types",
+ "mz-audit-log",
+ "mz-build-info",
+ "mz-catalog",
+ "mz-ccsr",
+ "mz-cloud-resources",
+ "mz-cluster-client",
+ "mz-compute-client",
+ "mz-compute-types",
+ "mz-controller",
+ "mz-controller-types",
+ "mz-expr",
+ "mz-kafka-util",
+ "mz-orchestrator",
+ "mz-ore",
+ "mz-persist-client",
+ "mz-persist-types",
+ "mz-pgcopy",
+ "mz-pgrepr",
+ "mz-pgwire-common",
+ "mz-postgres-client",
+ "mz-postgres-util",
+ "mz-prof",
+ "mz-proto",
+ "mz-repr",
+ "mz-rocksdb-types",
+ "mz-secrets",
+ "mz-segment",
+ "mz-service",
+ "mz-sql",
+ "mz-sql-parser",
+ "mz-ssh-util",
+ "mz-stash",
+ "mz-storage-client",
+ "mz-storage-types",
+ "mz-timestamp-oracle",
+ "mz-tls-util",
+ "mz-tracing",
+ "mz-transform",
+ "once_cell",
+ "opentelemetry",
+ "prometheus",
+ "proptest",
+ "proptest-derive",
+ "prost",
+ "qcell",
+ "rand",
+ "rand_chacha",
+ "rdkafka",
+ "regex",
+ "reqwest",
+ "semver",
+ "serde",
+ "serde_json",
+ "serde_plain",
+ "smallvec",
+ "static_assertions",
+ "thiserror",
+ "timely",
+ "tokio",
+ "tokio-postgres",
+ "tokio-stream",
+ "tracing",
+ "tracing-core",
+ "tracing-opentelemetry",
+ "tracing-subscriber",
+ "uncased",
+ "url",
+ "uuid",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-adapter-types"
+version = "0.0.0"
+dependencies = [
+ "mz-ore",
+ "mz-repr",
+ "mz-storage-types",
+ "serde",
+ "timely",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-alloc"
+version = "0.0.0"
+dependencies = [
+ "mz-ore",
+ "mz-prof",
+ "mz-prof-http",
+ "tikv-jemallocator",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-audit-log"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "mz-ore",
+ "proptest",
+ "proptest-derive",
+ "serde",
+ "serde_json",
+ "serde_plain",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-avro"
+version = "0.7.0"
+dependencies = [
+ "anyhow",
+ "byteorder",
+ "chrono",
+ "crc32fast",
+ "digest",
+ "enum-kinds",
+ "flate2",
+ "itertools",
+ "mz-ore",
+ "once_cell",
+ "rand",
+ "regex",
+ "serde",
+ "serde_json",
+ "sha2",
+ "snap",
+ "tracing",
+ "uuid",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-avro-derive"
+version = "0.0.0"
+dependencies = [
+ "quote",
+ "syn 1.0.107",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-aws-secrets-controller"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "aws-config",
+ "aws-credential-types",
+ "aws-sdk-secretsmanager",
+ "aws-types",
+ "futures",
+ "mz-aws-util",
+ "mz-repr",
+ "mz-secrets",
+ "tracing",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-aws-util"
+version = "0.0.0"
+dependencies = [
+ "aws-config",
+ "aws-sdk-s3",
+ "aws-smithy-runtime",
+ "aws-smithy-runtime-api",
+ "aws-types",
+ "hyper-tls",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-balancerd"
+version = "0.84.2"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "axum",
+ "bytes",
+ "bytesize",
+ "clap",
+ "futures",
+ "hyper",
+ "hyper-openssl",
+ "jsonwebtoken",
+ "mz-build-info",
+ "mz-environmentd",
+ "mz-frontegg-auth",
+ "mz-frontegg-mock",
+ "mz-http-util",
+ "mz-orchestrator-tracing",
+ "mz-ore",
+ "mz-pgwire-common",
+ "mz-server-core",
+ "num_cpus",
+ "openssl",
+ "postgres",
+ "prometheus",
+ "semver",
+ "tokio",
+ "tokio-openssl",
+ "tokio-postgres",
+ "tokio-util",
+ "tracing",
+ "uuid",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-build-info"
+version = "0.0.0"
+dependencies = [
+ "compile-time-run",
+ "semver",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-catalog"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "base64 0.13.1",
+ "bytes",
+ "bytesize",
+ "chrono",
+ "derivative",
+ "differential-dataflow",
+ "fail",
+ "futures",
+ "insta",
+ "itertools",
+ "md-5",
+ "mz-adapter-types",
+ "mz-audit-log",
+ "mz-build-info",
+ "mz-cloud-resources",
+ "mz-compute-client",
+ "mz-controller",
+ "mz-controller-types",
+ "mz-expr",
+ "mz-orchestrator",
+ "mz-ore",
+ "mz-persist-client",
+ "mz-persist-types",
+ "mz-pgrepr",
+ "mz-pgtz",
+ "mz-postgres-util",
+ "mz-proto",
+ "mz-repr",
+ "mz-secrets",
+ "mz-sql",
+ "mz-sql-parser",
+ "mz-stash",
+ "mz-stash-types",
+ "mz-storage-client",
+ "mz-storage-types",
+ "once_cell",
+ "paste",
+ "postgres-openssl",
+ "prometheus",
+ "proptest",
+ "proptest-derive",
+ "prost",
+ "prost-build",
+ "protobuf-src",
+ "rand",
+ "serde",
+ "serde_json",
+ "serde_plain",
+ "sha2",
+ "similar-asserts",
+ "static_assertions",
+ "thiserror",
+ "timely",
+ "tokio",
+ "tokio-postgres",
+ "tracing",
+ "uuid",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-catalog-debug"
+version = "0.84.2"
+dependencies = [
+ "anyhow",
+ "clap",
+ "mz-adapter",
+ "mz-build-info",
+ "mz-catalog",
+ "mz-ore",
+ "mz-persist-client",
+ "mz-secrets",
+ "mz-sql",
+ "mz-stash",
+ "mz-storage-types",
+ "mz-tls-util",
+ "once_cell",
+ "serde",
+ "serde_json",
+ "tokio",
+ "tokio-postgres",
+ "url",
+ "uuid",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-ccsr"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "hyper",
+ "mz-ore",
+ "native-tls",
+ "once_cell",
+ "openssl",
+ "prost-build",
+ "protobuf-src",
+ "reqwest",
+ "serde",
+ "serde_json",
+ "tokio",
+ "tracing",
+ "url",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-cloud-api"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "chrono",
+ "mz-frontegg-auth",
+ "mz-frontegg-client",
+ "once_cell",
+ "reqwest",
+ "serde",
+ "thiserror",
+ "tokio",
+ "url",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-cloud-resources"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "chrono",
+ "futures",
+ "k8s-openapi",
+ "kube",
+ "mz-ore",
+ "mz-repr",
+ "schemars",
+ "serde",
+ "serde_json",
+ "uuid",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-cluster"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "bytesize",
+ "clap",
+ "crossbeam-channel",
+ "dec",
+ "differential-dataflow",
+ "futures",
+ "mz-build-info",
+ "mz-cluster-client",
+ "mz-ore",
+ "mz-persist-client",
+ "mz-persist-types",
+ "mz-pid-file",
+ "mz-repr",
+ "mz-service",
+ "mz-timely-util",
+ "once_cell",
+ "prometheus",
+ "regex",
+ "rocksdb",
+ "scopeguard",
+ "serde",
+ "smallvec",
+ "timely",
+ "tokio",
+ "tracing",
+ "uuid",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-cluster-client"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "chrono",
+ "futures",
+ "http",
+ "itertools",
+ "mz-ore",
+ "mz-proto",
+ "once_cell",
+ "prometheus",
+ "proptest",
+ "proptest-derive",
+ "prost",
+ "prost-build",
+ "protobuf-src",
+ "regex",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "tokio",
+ "tokio-stream",
+ "tonic",
+ "tonic-build",
+ "tracing",
+ "uuid",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-clusterd"
+version = "0.84.2"
+dependencies = [
+ "anyhow",
+ "axum",
+ "clap",
+ "fail",
+ "futures",
+ "mz-alloc",
+ "mz-build-info",
+ "mz-cloud-resources",
+ "mz-cluster",
+ "mz-compute",
+ "mz-compute-client",
+ "mz-http-util",
+ "mz-metrics",
+ "mz-orchestrator-tracing",
+ "mz-ore",
+ "mz-persist-client",
+ "mz-pid-file",
+ "mz-prof-http",
+ "mz-service",
+ "mz-storage",
+ "mz-storage-client",
+ "mz-storage-types",
+ "mz-timely-util",
+ "once_cell",
+ "timely",
+ "tokio",
+ "tracing",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-compute"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "bytesize",
+ "clap",
+ "core_affinity",
+ "crossbeam-channel",
+ "dec",
+ "differential-dataflow",
+ "dogsdogsdogs",
+ "futures",
+ "itertools",
+ "lgalloc",
+ "mz-build-info",
+ "mz-cluster",
+ "mz-cluster-client",
+ "mz-compute-client",
+ "mz-compute-types",
+ "mz-expr",
+ "mz-ore",
+ "mz-persist-client",
+ "mz-persist-txn",
+ "mz-persist-types",
+ "mz-pid-file",
+ "mz-prof",
+ "mz-repr",
+ "mz-service",
+ "mz-storage-operators",
+ "mz-storage-types",
+ "mz-timely-util",
+ "once_cell",
+ "prometheus",
+ "scopeguard",
+ "serde",
+ "smallvec",
+ "timely",
+ "tokio",
+ "tracing",
+ "uuid",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-compute-client"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "async-stream",
+ "async-trait",
+ "bytesize",
+ "chrono",
+ "crossbeam-channel",
+ "differential-dataflow",
+ "futures",
+ "http",
+ "mz-build-info",
+ "mz-cluster-client",
+ "mz-compute-types",
+ "mz-expr",
+ "mz-orchestrator",
+ "mz-ore",
+ "mz-persist",
+ "mz-persist-client",
+ "mz-persist-types",
+ "mz-proto",
+ "mz-repr",
+ "mz-service",
+ "mz-storage-client",
+ "mz-storage-types",
+ "mz-timely-util",
+ "mz-tracing",
+ "once_cell",
+ "prometheus",
+ "proptest",
+ "proptest-derive",
+ "prost",
+ "prost-build",
+ "protobuf-src",
+ "regex",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "timely",
+ "tokio",
+ "tokio-stream",
+ "tonic",
+ "tonic-build",
+ "tracing",
+ "uuid",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-compute-types"
+version = "0.0.0"
+dependencies = [
+ "columnation",
+ "differential-dataflow",
+ "itertools",
+ "mz-expr",
+ "mz-ore",
+ "mz-proto",
+ "mz-repr",
+ "mz-storage-types",
+ "proptest",
+ "proptest-derive",
+ "prost",
+ "prost-build",
+ "protobuf-src",
+ "serde",
+ "timely",
+ "tonic-build",
+ "tracing",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-controller"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "bytesize",
+ "chrono",
+ "differential-dataflow",
+ "futures",
+ "mz-build-info",
+ "mz-cluster-client",
+ "mz-compute-client",
+ "mz-compute-types",
+ "mz-controller-types",
+ "mz-orchestrator",
+ "mz-ore",
+ "mz-persist-client",
+ "mz-persist-types",
+ "mz-proto",
+ "mz-repr",
+ "mz-service",
+ "mz-stash-types",
+ "mz-storage-client",
+ "mz-storage-controller",
+ "mz-storage-types",
+ "once_cell",
+ "regex",
+ "serde",
+ "serde_json",
+ "timely",
+ "tokio",
+ "tokio-stream",
+ "tracing",
+ "uuid",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-controller-types"
+version = "0.0.0"
+dependencies = [
+ "mz-cluster-client",
+ "mz-compute-types",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-environmentd"
+version = "0.84.2"
 dependencies = [
  "anyhow",
  "askama",
- "askama_shared",
  "assert_cmd",
  "async-trait",
- "atty",
- "backtrace",
- "build-info",
+ "axum",
+ "base64 0.13.1",
  "bytes",
+ "bytesize",
  "cc",
- "cfg-if",
  "chrono",
  "clap",
- "compile-time-run",
- "coord",
- "coordtest",
- "crossbeam-channel",
  "datadriven",
- "dataflow",
- "dataflow-types",
- "dataflowd",
- "differential-dataflow",
  "fail",
  "fallible-iterator",
- "flate2",
  "futures",
- "hex",
- "hex-literal",
+ "headers",
+ "http",
+ "http-body",
+ "humantime",
  "hyper",
  "hyper-openssl",
+ "hyper-tls",
  "include_dir",
  "itertools",
- "kafka-util",
- "krb5-src",
- "lazy_static",
+ "jsonwebtoken",
  "libc",
- "mz-http-proxy",
- "mz-process-collector",
+ "mime",
+ "mz-adapter",
+ "mz-adapter-types",
+ "mz-alloc",
+ "mz-aws-secrets-controller",
+ "mz-build-info",
+ "mz-catalog",
+ "mz-cloud-resources",
+ "mz-controller",
+ "mz-environmentd",
+ "mz-expr",
+ "mz-frontegg-auth",
+ "mz-frontegg-mock",
+ "mz-http-util",
+ "mz-interchange",
+ "mz-metrics",
+ "mz-npm",
+ "mz-orchestrator",
+ "mz-orchestrator-kubernetes",
+ "mz-orchestrator-process",
+ "mz-orchestrator-tracing",
+ "mz-ore",
+ "mz-persist-client",
+ "mz-pgrepr",
+ "mz-pgtest",
+ "mz-pgwire",
+ "mz-pgwire-common",
+ "mz-prof-http",
+ "mz-repr",
+ "mz-secrets",
+ "mz-segment",
+ "mz-server-core",
+ "mz-service",
+ "mz-sql",
+ "mz-sql-parser",
+ "mz-stash",
+ "mz-stash-types",
+ "mz-storage-client",
+ "mz-storage-types",
+ "mz-tls-util",
+ "mz-tracing",
  "nix",
  "num_cpus",
+ "once_cell",
  "openssl",
  "openssl-sys",
- "ore",
- "os_info",
- "pgrepr",
- "pgtest",
- "pgwire",
- "pid-file",
+ "opentelemetry",
+ "opentelemetry_sdk",
+ "pin-project",
  "postgres",
  "postgres-openssl",
  "postgres-protocol",
  "postgres_array",
  "predicates",
- "prof",
  "prometheus",
+ "proptest",
  "rand",
  "rdkafka-sys",
- "repr",
+ "regex",
  "reqwest",
  "rlimit",
- "semver",
+ "sentry",
+ "sentry-tracing",
  "serde",
  "serde_json",
- "sha2",
+ "serde_urlencoded",
  "shell-words",
- "sql",
+ "similar-asserts",
  "sysctl",
- "sysinfo",
- "tar",
  "tempfile",
- "tikv-jemallocator",
+ "thiserror",
  "timely",
  "tokio",
  "tokio-openssl",
  "tokio-postgres",
  "tokio-stream",
+ "tower",
+ "tower-http",
  "tracing",
+ "tracing-core",
+ "tracing-opentelemetry",
  "tracing-subscriber",
+ "tungstenite",
  "url",
  "uuid",
- "walkdir",
+ "workspace-hack",
 ]
 
 [[package]]
-name = "mbta-to-mtrlz"
+name = "mz-expr"
 version = "0.0.0"
 dependencies = [
+ "aho-corasick",
  "anyhow",
- "byteorder",
+ "bytes",
+ "bytesize",
+ "chrono",
+ "chrono-tz",
+ "criterion",
+ "csv",
+ "datadriven",
+ "dec",
+ "derivative",
+ "encoding",
+ "enum-iterator",
+ "fallible-iterator",
+ "hex",
+ "hmac",
+ "itertools",
+ "md-5",
+ "mz-expr-test-util",
+ "mz-lowertest",
+ "mz-ore",
+ "mz-persist-types",
+ "mz-pgrepr",
+ "mz-pgtz",
+ "mz-proto",
+ "mz-regexp",
+ "mz-repr",
+ "mz-sql-parser",
+ "mz-sql-pretty",
+ "num",
+ "num_enum",
+ "once_cell",
+ "ordered-float",
+ "paste",
+ "proc-macro2",
+ "proptest",
+ "proptest-derive",
+ "prost",
+ "prost-build",
+ "protobuf-src",
+ "regex",
+ "regex-syntax",
+ "serde",
+ "serde_json",
+ "serde_regex",
+ "sha1",
+ "sha2",
+ "subtle",
+ "timely",
+ "tracing",
+ "uncased",
+ "uuid",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-expr-parser"
+version = "0.0.0"
+dependencies = [
+ "datadriven",
+ "mz-expr",
+ "mz-ore",
+ "mz-repr",
+ "proc-macro2",
+ "syn 2.0.39",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-expr-test-util"
+version = "0.0.0"
+dependencies = [
+ "datadriven",
+ "mz-expr",
+ "mz-lowertest",
+ "mz-ore",
+ "mz-repr",
+ "mz-repr-test-util",
+ "proc-macro2",
+ "serde",
+ "serde_json",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-fivetran-destination"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "async-compression",
+ "clap",
+ "csv-async",
+ "futures",
+ "itertools",
+ "mz-ore",
+ "mz-pgrepr",
+ "openssl",
+ "postgres-openssl",
+ "postgres-protocol",
+ "prost",
+ "prost-build",
+ "prost-types",
+ "protobuf-src",
+ "tokio",
+ "tokio-postgres",
+ "tonic",
+ "tonic-build",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-frontegg-auth"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "axum",
+ "base64 0.13.1",
  "clap",
+ "derivative",
  "futures",
- "json",
+ "jsonwebtoken",
+ "mz-ore",
+ "mz-repr",
+ "prometheus",
+ "reqwest",
+ "reqwest-middleware",
+ "reqwest-retry",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "tokio",
+ "tracing",
+ "uuid",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-frontegg-client"
+version = "0.0.0"
+dependencies = [
+ "jsonwebtoken",
+ "mz-frontegg-auth",
+ "mz-ore",
+ "once_cell",
+ "reqwest",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "tokio",
+ "url",
+ "uuid",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-frontegg-mock"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "clap",
+ "hyper",
+ "jsonwebtoken",
+ "mz-frontegg-auth",
+ "mz-ore",
+ "serde",
+ "serde_json",
+ "tokio",
+ "uuid",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-http-util"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "askama",
+ "axum",
+ "headers",
+ "http",
+ "hyper",
+ "include_dir",
+ "mz-ore",
+ "prometheus",
+ "serde",
+ "serde_json",
+ "tokio",
+ "tower",
+ "tower-http",
+ "tracing",
+ "tracing-subscriber",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-interchange"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "byteorder",
+ "chrono",
+ "clap",
+ "criterion",
+ "differential-dataflow",
+ "itertools",
+ "maplit",
+ "mz-avro",
+ "mz-avro-derive",
+ "mz-ccsr",
+ "mz-ore",
+ "mz-repr",
+ "once_cell",
  "ordered-float",
- "ore",
+ "prost",
+ "prost-build",
+ "prost-reflect",
+ "protobuf-src",
+ "serde_json",
+ "timely",
+ "tokio",
+ "tracing",
+ "uuid",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-kafka-util"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "chrono",
+ "clap",
+ "crossbeam",
+ "fancy-regex",
+ "futures",
+ "mz-avro",
+ "mz-ccsr",
+ "mz-ore",
+ "mz-ssh-util",
+ "num_cpus",
+ "prost",
+ "prost-build",
+ "protobuf-src",
+ "rand",
  "rdkafka",
- "repr",
+ "serde",
  "serde_json",
- "test-util",
+ "thiserror",
  "tokio",
+ "tracing",
+ "url",
+ "workspace-hack",
 ]
 
 [[package]]
-name = "md-5"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6a38fc55c8bbc10058782919516f88826e70320db6d206aebc49611d24216ae"
+name = "mz-lowertest"
+version = "0.0.0"
 dependencies = [
- "digest",
+ "anyhow",
+ "datadriven",
+ "mz-lowertest-derive",
+ "mz-ore",
+ "proc-macro2",
+ "serde",
+ "serde_json",
+ "workspace-hack",
 ]
 
 [[package]]
-name = "md5"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
+name = "mz-lowertest-derive"
+version = "0.0.0"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.107",
+ "workspace-hack",
+]
 
 [[package]]
-name = "memchr"
-version = "2.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
+name = "mz-lsp-server"
+version = "0.3.0"
+dependencies = [
+ "httparse",
+ "mz-build-info",
+ "mz-ore",
+ "mz-sql-lexer",
+ "mz-sql-parser",
+ "mz-sql-pretty",
+ "once_cell",
+ "regex",
+ "ropey",
+ "serde",
+ "serde_json",
+ "tokio",
+ "tower-lsp",
+ "workspace-hack",
+]
 
 [[package]]
-name = "memmap"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b"
+name = "mz-metabase"
+version = "0.0.0"
+dependencies = [
+ "reqwest",
+ "serde",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-metabase-smoketest"
+version = "0.0.0"
 dependencies = [
+ "anyhow",
+ "itertools",
+ "mz-metabase",
+ "mz-ore",
+ "tokio",
+ "tokio-postgres",
+ "tracing",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-metrics"
+version = "0.0.0"
+dependencies = [
+ "lgalloc",
  "libc",
- "winapi",
+ "mz-ore",
+ "paste",
+ "prometheus",
+ "tokio",
+ "workspace-hack",
 ]
 
 [[package]]
-name = "memoffset"
-version = "0.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9"
+name = "mz-mysql-util"
+version = "0.1.0"
 dependencies = [
- "autocfg",
+ "anyhow",
+ "indexmap 1.9.1",
+ "itertools",
+ "mysql_async",
+ "mz-ore",
+ "mz-proto",
+ "mz-repr",
+ "mz-ssh-util",
+ "once_cell",
+ "proptest",
+ "prost",
+ "prost-build",
+ "protobuf-src",
+ "serde",
+ "thiserror",
+ "tonic-build",
+ "tracing",
+ "uuid",
+ "workspace-hack",
 ]
 
 [[package]]
-name = "metabase"
+name = "mz-npm"
 version = "0.0.0"
 dependencies = [
+ "anyhow",
+ "flate2",
+ "hex",
+ "hex-literal",
  "reqwest",
+ "sha2",
+ "tar",
+ "walkdir",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-orchestrator"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "bytesize",
+ "chrono",
+ "derivative",
+ "futures-core",
+ "mz-ore",
+ "prost",
+ "protobuf-src",
+ "serde",
+ "tonic-build",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-orchestrator-kubernetes"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "chrono",
+ "clap",
+ "fail",
+ "futures",
+ "k8s-openapi",
+ "kube",
+ "maplit",
+ "mz-cloud-resources",
+ "mz-orchestrator",
+ "mz-repr",
+ "mz-secrets",
  "serde",
  "serde_json",
+ "sha2",
+ "tracing",
+ "workspace-hack",
 ]
 
 [[package]]
-name = "metabase-smoketest"
+name = "mz-orchestrator-process"
 version = "0.0.0"
 dependencies = [
  "anyhow",
+ "async-stream",
+ "async-trait",
+ "chrono",
+ "futures",
+ "hex",
  "itertools",
- "metabase",
- "ore",
+ "libc",
+ "maplit",
+ "mz-orchestrator",
+ "mz-ore",
+ "mz-pid-file",
+ "mz-repr",
+ "mz-secrets",
+ "nix",
+ "scopeguard",
+ "serde",
+ "serde_json",
+ "sha1",
+ "sysinfo",
+ "tokio",
+ "tracing",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-orchestrator-tracing"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "clap",
+ "futures-core",
+ "http",
+ "humantime",
+ "mz-build-info",
+ "mz-orchestrator",
+ "mz-ore",
+ "mz-repr",
+ "mz-service",
+ "mz-tracing",
+ "opentelemetry",
+ "opentelemetry_sdk",
+ "sentry-tracing",
+ "tracing",
+ "tracing-subscriber",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-ore"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "atty",
+ "bytes",
+ "chrono",
+ "clap",
+ "compact_bytes",
+ "console-subscriber",
+ "criterion",
+ "ctor",
+ "either",
+ "futures",
+ "hibitset",
+ "http",
+ "hyper",
+ "hyper-tls",
+ "lgalloc",
+ "mz-ore",
+ "mz-test-macro",
+ "native-tls",
+ "num",
+ "once_cell",
+ "openssl",
+ "opentelemetry",
+ "opentelemetry-otlp",
+ "opentelemetry_sdk",
+ "paste",
+ "pin-project",
+ "prometheus",
+ "proptest",
+ "rand",
+ "scopeguard",
+ "sentry",
+ "sentry-tracing",
+ "serde",
+ "serde_json",
+ "smallvec",
+ "stacker",
+ "tokio",
+ "tokio-native-tls",
+ "tokio-openssl",
+ "tokio-test",
+ "tonic",
+ "tracing",
+ "tracing-opentelemetry",
+ "tracing-subscriber",
+ "uuid",
+ "workspace-hack",
+ "yansi",
+]
+
+[[package]]
+name = "mz-persist"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "arrow2",
+ "async-stream",
+ "async-trait",
+ "aws-config",
+ "aws-credential-types",
+ "aws-sdk-s3",
+ "aws-types",
+ "base64 0.13.1",
+ "bytes",
+ "deadpool-postgres",
+ "differential-dataflow",
+ "fail",
+ "futures-util",
+ "md-5",
+ "mz-aws-util",
+ "mz-ore",
+ "mz-persist-types",
+ "mz-postgres-client",
+ "mz-proto",
+ "once_cell",
+ "openssl",
+ "openssl-sys",
+ "postgres-openssl",
+ "prometheus",
+ "proptest",
+ "proptest-derive",
+ "prost",
+ "prost-build",
+ "protobuf-src",
+ "rand",
+ "serde",
+ "serde_json",
+ "tempfile",
+ "timely",
  "tokio",
  "tokio-postgres",
  "tracing",
+ "url",
+ "uuid",
+ "workspace-hack",
 ]
 
 [[package]]
-name = "mime"
-version = "0.3.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
+name = "mz-persist-client"
+version = "0.84.2"
+dependencies = [
+ "anyhow",
+ "async-stream",
+ "async-trait",
+ "bytes",
+ "clap",
+ "criterion",
+ "datadriven",
+ "differential-dataflow",
+ "futures",
+ "futures-task",
+ "futures-util",
+ "h2",
+ "hex",
+ "mz-build-info",
+ "mz-ore",
+ "mz-persist",
+ "mz-persist-types",
+ "mz-postgres-client",
+ "mz-proto",
+ "mz-timely-util",
+ "num_cpus",
+ "once_cell",
+ "prometheus",
+ "proptest",
+ "proptest-derive",
+ "prost",
+ "prost-build",
+ "protobuf-src",
+ "semver",
+ "sentry-tracing",
+ "serde",
+ "serde_json",
+ "tempfile",
+ "thiserror",
+ "timely",
+ "tokio",
+ "tokio-metrics",
+ "tokio-stream",
+ "tonic",
+ "tonic-build",
+ "tracing",
+ "uuid",
+ "workspace-hack",
+]
 
 [[package]]
-name = "mime_guess"
-version = "2.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2684d4c2e97d99848d30b324b00c8fcc7e5c897b7cbb5819b09e7c90e8baf212"
+name = "mz-persist-txn"
+version = "0.0.0"
 dependencies = [
- "mime",
- "unicase",
+ "bytes",
+ "crossbeam-channel",
+ "differential-dataflow",
+ "futures",
+ "itertools",
+ "mz-ore",
+ "mz-persist-client",
+ "mz-persist-types",
+ "mz-timely-util",
+ "prometheus",
+ "prost",
+ "prost-build",
+ "protobuf-src",
+ "rand",
+ "serde",
+ "timely",
+ "tokio",
+ "tracing",
+ "uuid",
+ "workspace-hack",
 ]
 
 [[package]]
-name = "minimal-lexical"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+name = "mz-persist-types"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "arrow2",
+ "bytes",
+ "chrono",
+ "hex",
+ "mz-ore",
+ "mz-proto",
+ "parquet2",
+ "proptest",
+ "proptest-derive",
+ "prost",
+ "prost-build",
+ "protobuf-src",
+ "serde",
+ "serde_json",
+ "workspace-hack",
+]
 
 [[package]]
-name = "miniz_oxide"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be0f75932c1f6cfae3c04000e40114adf955636e19040f9c0a2c380702aa1c7f"
+name = "mz-pgcopy"
+version = "0.0.0"
 dependencies = [
- "adler",
+ "bytes",
+ "csv",
+ "mz-ore",
+ "mz-pgrepr",
+ "mz-repr",
+ "workspace-hack",
 ]
 
 [[package]]
-name = "mio"
-version = "0.7.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf80d3e903b34e0bd7282b218398aec54e082c840d9baf8339e0080a0c542956"
+name = "mz-pgrepr"
+version = "0.0.0"
 dependencies = [
- "libc",
- "log",
- "miow",
- "ntapi",
- "winapi",
+ "byteorder",
+ "bytes",
+ "chrono",
+ "dec",
+ "mz-ore",
+ "mz-pgrepr-consts",
+ "mz-pgwire-common",
+ "mz-repr",
+ "once_cell",
+ "postgres-types",
+ "uuid",
+ "workspace-hack",
 ]
 
 [[package]]
-name = "miow"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21"
+name = "mz-pgrepr-consts"
+version = "0.0.0"
 dependencies = [
- "winapi",
+ "workspace-hack",
 ]
 
 [[package]]
-name = "mz-avro"
-version = "0.6.5"
+name = "mz-pgtest"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "bytes",
+ "clap",
+ "datadriven",
+ "fallible-iterator",
+ "mz-ore",
+ "postgres-protocol",
+ "serde",
+ "serde_json",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-pgtz"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "chrono",
+ "chrono-tz",
+ "mz-lowertest",
+ "mz-ore",
+ "mz-proto",
+ "phf",
+ "phf_codegen",
+ "proptest",
+ "proptest-derive",
+ "prost",
+ "prost-build",
+ "protobuf-src",
+ "serde",
+ "uncased",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-pgwire"
+version = "0.0.0"
 dependencies = [
  "anyhow",
+ "async-trait",
  "byteorder",
+ "bytes",
+ "bytesize",
+ "futures",
+ "itertools",
+ "mz-adapter",
+ "mz-adapter-types",
+ "mz-expr",
+ "mz-frontegg-auth",
+ "mz-ore",
+ "mz-pgcopy",
+ "mz-pgrepr",
+ "mz-pgwire-common",
+ "mz-repr",
+ "mz-server-core",
+ "mz-sql",
+ "openssl",
+ "postgres",
+ "tokio",
+ "tokio-openssl",
+ "tokio-stream",
+ "tokio-util",
+ "tracing",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-pgwire-common"
+version = "0.0.0"
+dependencies = [
+ "async-trait",
+ "byteorder",
+ "bytes",
+ "bytesize",
+ "mz-ore",
+ "mz-server-core",
+ "tokio",
+ "tokio-openssl",
+ "tokio-postgres",
+ "tracing",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-pid-file"
+version = "0.0.0"
+dependencies = [
+ "cc",
+ "libc",
+ "mz-ore",
+ "tempfile",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-postgres-client"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "deadpool-postgres",
+ "mz-ore",
+ "mz-tls-util",
+ "prometheus",
+ "tokio",
+ "tracing",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-postgres-util"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "mz-cloud-resources",
+ "mz-ore",
+ "mz-proto",
+ "mz-repr",
+ "mz-ssh-util",
+ "mz-tls-util",
+ "openssh",
+ "openssl",
+ "postgres-openssl",
+ "postgres_array",
+ "proptest",
+ "prost",
+ "prost-build",
+ "protobuf-src",
+ "serde",
+ "thiserror",
+ "tokio",
+ "tokio-postgres",
+ "tonic-build",
+ "tracing",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-proc"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "libc",
+ "mz-ore",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-prof"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "backtrace",
+ "flate2",
+ "libc",
+ "mz-ore",
+ "mz-proc",
+ "once_cell",
+ "pprof",
+ "prost",
+ "prost-build",
+ "protobuf-src",
+ "tempfile",
+ "tikv-jemalloc-ctl",
+ "tokio",
+ "tracing",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-prof-http"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "askama",
+ "axum",
+ "bytesize",
+ "cfg-if",
+ "headers",
+ "http",
+ "include_dir",
+ "mime",
+ "mz-build-info",
+ "mz-http-util",
+ "mz-npm",
+ "mz-ore",
+ "mz-prof",
+ "once_cell",
+ "serde",
+ "tokio",
+ "tracing",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-proto"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
  "chrono",
- "crc32fast",
- "digest",
+ "chrono-tz",
+ "globset",
+ "http",
+ "mz-ore",
+ "num",
+ "proptest",
+ "prost",
+ "prost-build",
+ "protobuf-src",
+ "regex",
+ "serde_json",
+ "tokio-postgres",
+ "url",
+ "uuid",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-regexp"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "mz-ore",
+ "mz-repr",
+ "postgres",
+ "regex",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-repr"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "bitflags 1.3.2",
+ "bytes",
+ "cfg-if",
+ "chrono",
+ "chrono-tz",
+ "columnation",
+ "compact_bytes",
+ "criterion",
+ "dec",
+ "differential-dataflow",
  "enum-kinds",
- "flate2",
+ "enum_dispatch",
+ "fast-float",
+ "hex",
  "itertools",
- "lazy_static",
- "md-5",
+ "mz-lowertest",
+ "mz-ore",
+ "mz-persist",
+ "mz-persist-types",
+ "mz-pgtz",
+ "mz-proto",
+ "mz-sql-parser",
+ "num-traits",
+ "num_enum",
+ "once_cell",
+ "ordered-float",
+ "postgres-protocol",
+ "proptest",
+ "proptest-derive",
+ "prost",
+ "prost-build",
+ "protobuf-src",
  "rand",
  "regex",
+ "ryu",
  "serde",
  "serde_json",
- "sha2",
- "snap",
+ "smallvec",
+ "static_assertions",
+ "strsim",
+ "thiserror",
+ "timely",
+ "tokio-postgres",
  "tracing",
+ "tracing-core",
+ "tracing-subscriber",
+ "url",
  "uuid",
+ "workspace-hack",
 ]
 
 [[package]]
-name = "mz-aws-util"
+name = "mz-repr-test-util"
+version = "0.0.0"
+dependencies = [
+ "chrono",
+ "datadriven",
+ "mz-lowertest",
+ "mz-ore",
+ "mz-repr",
+ "proc-macro2",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-rocksdb"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "bincode",
+ "derivative",
+ "itertools",
+ "mz-ore",
+ "mz-proto",
+ "mz-rocksdb-types",
+ "num_cpus",
+ "once_cell",
+ "prometheus",
+ "proptest",
+ "proptest-derive",
+ "prost",
+ "prost-build",
+ "protobuf-src",
+ "rocksdb",
+ "serde",
+ "serde_json",
+ "tempfile",
+ "thiserror",
+ "tokio",
+ "tonic-build",
+ "tracing",
+ "uncased",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-rocksdb-types"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "mz-ore",
+ "mz-proto",
+ "num_cpus",
+ "proptest",
+ "proptest-derive",
+ "prost",
+ "prost-build",
+ "protobuf-src",
+ "serde",
+ "tonic-build",
+ "uncased",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-s3-datagen"
 version = "0.0.0"
 dependencies = [
  "anyhow",
  "aws-config",
- "aws-sdk-kinesis",
  "aws-sdk-s3",
- "aws-sdk-sqs",
- "aws-sdk-sts",
- "aws-smithy-client",
- "aws-smithy-http",
- "aws-types",
- "hyper",
- "mz-http-proxy",
+ "bytefmt",
+ "clap",
+ "futures",
+ "indicatif",
+ "mz-aws-util",
+ "mz-ore",
+ "tokio",
+ "tracing",
+ "tracing-subscriber",
+ "workspace-hack",
 ]
 
 [[package]]
-name = "mz-http-proxy"
-version = "0.1.0"
+name = "mz-secrets"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "mz-ore",
+ "mz-repr",
+ "tokio",
+ "tracing",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-segment"
+version = "0.0.0"
+dependencies = [
+ "mz-ore",
+ "segment",
+ "serde_json",
+ "tokio",
+ "tracing",
+ "uuid",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-server-core"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "clap",
+ "futures",
+ "mz-ore",
+ "openssl",
+ "socket2 0.5.3",
+ "tokio",
+ "tokio-stream",
+ "tracing",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-service"
+version = "0.0.0"
 dependencies = [
+ "anyhow",
+ "async-stream",
+ "async-trait",
+ "clap",
+ "crossbeam-channel",
+ "futures",
  "http",
- "hyper",
- "hyper-proxy",
- "hyper-tls",
- "ipnet",
- "lazy_static",
+ "itertools",
+ "mz-aws-secrets-controller",
+ "mz-build-info",
+ "mz-orchestrator-kubernetes",
+ "mz-orchestrator-process",
+ "mz-ore",
+ "mz-proto",
+ "mz-repr",
+ "mz-secrets",
+ "once_cell",
+ "os_info",
+ "proptest",
+ "proptest-derive",
+ "prost",
+ "prost-build",
+ "protobuf-src",
+ "semver",
+ "sentry-tracing",
+ "serde",
+ "sysinfo",
+ "timely",
+ "tokio",
+ "tokio-stream",
+ "tonic",
+ "tonic-build",
+ "tower",
+ "tracing",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-sql"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "array-concat",
+ "aws-sdk-sts",
+ "bitflags 1.3.2",
+ "chrono",
+ "clap",
+ "datadriven",
+ "enum-kinds",
+ "fail",
+ "globset",
+ "hex",
+ "http",
+ "itertools",
+ "maplit",
+ "mysql_async",
+ "mz-adapter-types",
+ "mz-build-info",
+ "mz-ccsr",
+ "mz-cloud-resources",
+ "mz-controller-types",
+ "mz-expr",
+ "mz-interchange",
+ "mz-kafka-util",
+ "mz-lowertest",
+ "mz-mysql-util",
+ "mz-orchestrator",
+ "mz-ore",
+ "mz-persist-client",
+ "mz-pgcopy",
+ "mz-pgrepr",
+ "mz-pgwire-common",
+ "mz-postgres-util",
+ "mz-proto",
+ "mz-repr",
+ "mz-rocksdb-types",
+ "mz-secrets",
+ "mz-sql-lexer",
+ "mz-sql-parser",
+ "mz-ssh-util",
+ "mz-storage-types",
+ "mz-tracing",
+ "num_enum",
+ "once_cell",
+ "paste",
+ "postgres_array",
+ "proptest",
+ "proptest-derive",
+ "prost",
+ "protobuf-native",
+ "rdkafka",
+ "regex",
  "reqwest",
+ "serde",
+ "serde_json",
+ "static_assertions",
+ "thiserror",
+ "tokio",
+ "tokio-postgres",
  "tracing",
+ "tracing-subscriber",
+ "uncased",
+ "uuid",
+ "workspace-hack",
 ]
 
 [[package]]
-name = "mz-process-collector"
+name = "mz-sql-lexer"
 version = "0.0.0"
 dependencies = [
- "lazy_static",
- "libc",
- "ore",
- "procfs",
+ "anyhow",
+ "datadriven",
+ "mz-ore",
+ "phf",
+ "phf_codegen",
+ "serde",
+ "uncased",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-sql-parser"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "bytesize",
+ "datadriven",
+ "enum-kinds",
+ "itertools",
+ "mz-ore",
+ "mz-sql-lexer",
+ "mz-sql-parser",
+ "mz-walkabout",
+ "phf",
+ "serde",
+ "thiserror",
+ "tracing",
+ "uncased",
+ "unicode-width",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-sql-pretty"
+version = "0.0.0"
+dependencies = [
+ "datadriven",
+ "mz-ore",
+ "mz-sql-parser",
+ "pretty",
+ "thiserror",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-sqllogictest"
+version = "0.0.1"
+dependencies = [
+ "anyhow",
+ "bytes",
+ "chrono",
+ "clap",
+ "dec",
+ "fallible-iterator",
+ "futures",
+ "itertools",
+ "junit-report",
+ "md-5",
+ "mz-build-info",
+ "mz-cloud-resources",
+ "mz-controller",
+ "mz-environmentd",
+ "mz-orchestrator",
+ "mz-orchestrator-process",
+ "mz-orchestrator-tracing",
+ "mz-ore",
+ "mz-persist-client",
+ "mz-pgrepr",
+ "mz-repr",
+ "mz-secrets",
+ "mz-service",
+ "mz-sql",
+ "mz-sql-parser",
+ "mz-stash-types",
+ "mz-storage-types",
+ "mz-tracing",
+ "once_cell",
+ "postgres-protocol",
+ "regex",
+ "reqwest",
+ "serde_json",
+ "shell-words",
+ "tempfile",
+ "time",
+ "tokio",
+ "tokio-postgres",
+ "tokio-stream",
+ "tower-http",
+ "tracing",
+ "uuid",
+ "walkdir",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-ssh-util"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "futures",
+ "mz-ore",
+ "openssh",
+ "openssh-mux-client",
+ "openssl",
+ "rand",
+ "scopeguard",
+ "serde",
+ "serde_json",
+ "ssh-key",
+ "tempfile",
+ "thiserror",
+ "tokio",
+ "tokio-stream",
+ "tracing",
+ "workspace-hack",
+ "zeroize",
+]
+
+[[package]]
+name = "mz-stash"
+version = "0.0.0"
+dependencies = [
+ "bytes",
+ "criterion",
+ "derivative",
+ "differential-dataflow",
+ "fail",
+ "futures",
+ "itertools",
+ "mz-ore",
+ "mz-proto",
+ "mz-stash-types",
+ "mz-tls-util",
+ "once_cell",
+ "paste",
+ "postgres-openssl",
+ "prometheus",
+ "proptest",
+ "prost",
+ "rand",
+ "serde",
+ "timely",
+ "tokio",
+ "tokio-postgres",
+ "tracing",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-stash-debug"
+version = "0.84.2"
+dependencies = [
+ "anyhow",
+ "clap",
+ "futures",
+ "mz-adapter",
+ "mz-build-info",
+ "mz-catalog",
+ "mz-ore",
+ "mz-secrets",
+ "mz-sql",
+ "mz-stash",
+ "mz-storage-controller",
+ "mz-storage-types",
+ "mz-tls-util",
+ "once_cell",
+ "prost",
+ "serde_json",
+ "tokio",
+ "tokio-postgres",
+ "tracing",
+ "tracing-subscriber",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-stash-types"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "mz-ore",
+ "mz-proto",
+ "paste",
  "prometheus",
+ "prost",
+ "serde",
+ "tokio-postgres",
+ "workspace-hack",
 ]
 
 [[package]]
-name = "mz-protoc"
+name = "mz-storage"
 version = "0.0.0"
 dependencies = [
  "anyhow",
+ "async-stream",
+ "async-trait",
+ "axum",
+ "bincode",
+ "bytes",
+ "bytesize",
+ "chrono",
  "clap",
- "ore",
- "protobuf",
- "protobuf-codegen",
- "protobuf-parse",
+ "crossbeam-channel",
+ "csv-core",
+ "datadriven",
+ "dec",
+ "differential-dataflow",
+ "either",
+ "fail",
+ "futures",
+ "globset",
+ "http",
+ "humantime",
+ "indexmap 2.0.0",
+ "itertools",
+ "maplit",
+ "mysql_async",
+ "mysql_common",
+ "mz-avro",
+ "mz-aws-util",
+ "mz-build-info",
+ "mz-ccsr",
+ "mz-cloud-resources",
+ "mz-cluster",
+ "mz-expr",
+ "mz-http-util",
+ "mz-interchange",
+ "mz-kafka-util",
+ "mz-mysql-util",
+ "mz-orchestrator-tracing",
+ "mz-ore",
+ "mz-persist",
+ "mz-persist-client",
+ "mz-persist-types",
+ "mz-pgcopy",
+ "mz-pid-file",
+ "mz-postgres-util",
+ "mz-repr",
+ "mz-rocksdb",
+ "mz-secrets",
+ "mz-service",
+ "mz-sql-parser",
+ "mz-ssh-util",
+ "mz-storage-client",
+ "mz-storage-operators",
+ "mz-storage-types",
+ "mz-timely-util",
+ "num_cpus",
+ "once_cell",
+ "postgres-protocol",
+ "prometheus",
+ "prost",
+ "protobuf-src",
+ "rand",
+ "rdkafka",
+ "regex",
+ "rocksdb",
+ "seahash",
+ "serde",
+ "serde_json",
+ "sha2",
  "tempfile",
+ "thiserror",
+ "timely",
+ "tokio",
+ "tokio-postgres",
+ "tokio-stream",
+ "tokio-util",
+ "tonic-build",
+ "tracing",
+ "tracing-subscriber",
+ "url",
+ "uuid",
+ "workspace-hack",
 ]
 
 [[package]]
-name = "mzcloud"
-version = "1.0.0"
-source = "git+https://github.com/MaterializeInc/cloud-sdks#b7886468ceb9e76d1c4b9e0b1b82a957ddd2b1c8"
+name = "mz-storage-client"
+version = "0.0.0"
 dependencies = [
- "reqwest",
+ "anyhow",
+ "async-trait",
+ "chrono",
+ "differential-dataflow",
+ "http",
+ "itertools",
+ "maplit",
+ "mz-ccsr",
+ "mz-cluster-client",
+ "mz-kafka-util",
+ "mz-ore",
+ "mz-persist-client",
+ "mz-persist-types",
+ "mz-proto",
+ "mz-repr",
+ "mz-service",
+ "mz-storage-types",
+ "mz-timely-util",
+ "once_cell",
+ "prometheus",
+ "proptest",
+ "prost",
+ "prost-build",
+ "protobuf-src",
+ "rdkafka",
+ "serde",
+ "serde_json",
+ "static_assertions",
+ "timely",
+ "tokio",
+ "tokio-stream",
+ "tonic",
+ "tonic-build",
+ "tracing",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-storage-controller"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "bytes",
+ "chrono",
+ "differential-dataflow",
+ "futures",
+ "itertools",
+ "mz-build-info",
+ "mz-cluster-client",
+ "mz-ore",
+ "mz-persist-client",
+ "mz-persist-txn",
+ "mz-persist-types",
+ "mz-proto",
+ "mz-repr",
+ "mz-service",
+ "mz-stash",
+ "mz-stash-types",
+ "mz-storage-client",
+ "mz-storage-types",
+ "mz-tls-util",
+ "once_cell",
+ "proptest",
+ "prost",
+ "serde",
+ "serde_json",
+ "timely",
+ "tokio",
+ "tokio-postgres",
+ "tokio-stream",
+ "tracing",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-storage-operators"
+version = "0.0.0"
+dependencies = [
+ "async-stream",
+ "differential-dataflow",
+ "futures",
+ "mz-expr",
+ "mz-ore",
+ "mz-persist-client",
+ "mz-persist-txn",
+ "mz-persist-types",
+ "mz-repr",
+ "mz-storage-types",
+ "mz-timely-util",
+ "prometheus",
+ "proptest",
+ "serde",
+ "timely",
+ "tokio",
+ "tracing",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-storage-types"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "aws-config",
+ "aws-credential-types",
+ "aws-sdk-sts",
+ "aws-types",
+ "base64 0.13.1",
+ "bytes",
+ "dec",
+ "derivative",
+ "differential-dataflow",
+ "fail",
+ "itertools",
+ "mysql_async",
+ "mz-aws-util",
+ "mz-ccsr",
+ "mz-cloud-resources",
+ "mz-expr",
+ "mz-interchange",
+ "mz-kafka-util",
+ "mz-mysql-util",
+ "mz-ore",
+ "mz-persist-client",
+ "mz-persist-txn",
+ "mz-persist-types",
+ "mz-postgres-util",
+ "mz-proto",
+ "mz-repr",
+ "mz-rocksdb-types",
+ "mz-secrets",
+ "mz-service",
+ "mz-ssh-util",
+ "mz-stash-types",
+ "mz-timely-util",
+ "mz-tracing",
+ "native-tls",
+ "num_enum",
+ "once_cell",
+ "openssl",
+ "proptest",
+ "proptest-derive",
+ "prost",
+ "prost-build",
+ "protobuf-src",
+ "rdkafka",
+ "scopeguard",
  "serde",
- "serde_derive",
  "serde_json",
+ "thiserror",
+ "timely",
+ "tokio",
+ "tokio-postgres",
+ "tonic-build",
+ "tracing",
  "url",
+ "uuid",
+ "workspace-hack",
 ]
 
 [[package]]
-name = "mzcloud-cli"
+name = "mz-test-macro"
 version = "0.1.0"
 dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.107",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-test-util"
+version = "0.0.0"
+dependencies = [
  "anyhow",
+ "chrono",
+ "mz-kafka-util",
+ "mz-ore",
+ "rand",
+ "rdkafka",
+ "tokio",
+ "tokio-postgres",
+ "tracing",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-testdrive"
+version = "0.84.2"
+dependencies = [
+ "anyhow",
+ "async-compression",
+ "async-trait",
+ "atty",
+ "aws-config",
+ "aws-credential-types",
+ "aws-sdk-sts",
+ "aws-types",
+ "byteorder",
+ "bytes",
+ "chrono",
  "clap",
- "mzcloud",
- "ore",
+ "flate2",
+ "futures",
+ "globset",
+ "hex",
+ "http",
+ "humantime",
+ "itertools",
+ "junit-report",
+ "maplit",
+ "md-5",
+ "mysql_async",
+ "mz-adapter",
+ "mz-avro",
+ "mz-aws-util",
+ "mz-build-info",
+ "mz-catalog",
+ "mz-ccsr",
+ "mz-expr",
+ "mz-interchange",
+ "mz-kafka-util",
+ "mz-ore",
+ "mz-persist-client",
+ "mz-persist-types",
+ "mz-pgrepr",
+ "mz-repr",
+ "mz-sql",
+ "mz-sql-parser",
+ "mz-stash",
+ "mz-storage-types",
+ "mz-tls-util",
+ "once_cell",
+ "postgres_array",
+ "prost",
+ "prost-reflect",
+ "protobuf-src",
+ "rand",
+ "rdkafka",
+ "regex",
  "reqwest",
  "serde",
  "serde_json",
+ "similar",
  "tempfile",
+ "termcolor",
+ "tiberius",
+ "time",
  "tokio",
- "zip",
+ "tokio-postgres",
+ "tokio-stream",
+ "tokio-util",
+ "tracing",
+ "tracing-subscriber",
+ "url",
+ "uuid",
+ "walkdir",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-timely-util"
+version = "0.0.0"
+dependencies = [
+ "ahash",
+ "differential-dataflow",
+ "futures-util",
+ "mz-ore",
+ "num-traits",
+ "proptest",
+ "serde",
+ "timely",
+ "tokio",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-timestamp-oracle"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "deadpool-postgres",
+ "dec",
+ "futures",
+ "mz-adapter-types",
+ "mz-ore",
+ "mz-pgrepr",
+ "mz-postgres-client",
+ "mz-repr",
+ "rand",
+ "serde",
+ "tokio",
+ "tracing",
+ "uuid",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-tls-util"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "openssl",
+ "openssl-sys",
+ "postgres-openssl",
+ "thiserror",
+ "tokio",
+ "tokio-postgres",
+ "tracing",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-tracing"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "mz-ore",
+ "mz-proto",
+ "proptest",
+ "prost",
+ "prost-build",
+ "protobuf-src",
+ "serde",
+ "tonic-build",
+ "tracing",
+ "tracing-subscriber",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-transform"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "datadriven",
+ "differential-dataflow",
+ "enum-kinds",
+ "itertools",
+ "mz-compute-types",
+ "mz-expr",
+ "mz-expr-parser",
+ "mz-expr-test-util",
+ "mz-lowertest",
+ "mz-ore",
+ "mz-persist-client",
+ "mz-repr",
+ "num-traits",
+ "ordered-float",
+ "paste",
+ "proc-macro2",
+ "serde_json",
+ "tracing",
+ "workspace-hack",
+]
+
+[[package]]
+name = "mz-walkabout"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "datadriven",
+ "itertools",
+ "mz-ore",
+ "quote",
+ "syn 1.0.107",
+ "tempfile",
+ "workspace-hack",
 ]
 
 [[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",
@@ -2937,29 +6199,41 @@ dependencies = [
 
 [[package]]
 name = "nix"
-version = "0.23.1"
+version = "0.26.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f866317acbd3a240710c63f065ffb1e4fd466259045ccb504130b7f668f35c6"
+checksum = "46a58d1d356c6597d08cde02c2f09d785b09e28711837b1ed667dc652c08a694"
 dependencies = [
- "bitflags",
- "cc",
+ "bitflags 1.3.2",
  "cfg-if",
  "libc",
  "memoffset",
+ "pin-utils",
+ "static_assertions",
 ]
 
 [[package]]
+name = "no-std-compat"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c"
+
+[[package]]
 name = "nom"
-version = "7.1.0"
+version = "7.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b1d11e1ef389c76fe5b81bcaf2ea32cf88b62bc494e19f493d0b30e7a930109"
+checksum = "e5507769c4919c998e69e49c839d9dc6e693ede4cc4290d6ad8b41d4f09c548c"
 dependencies = [
  "memchr",
  "minimal-lexical",
- "version_check",
 ]
 
 [[package]]
+name = "nonzero_ext"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21"
+
+[[package]]
 name = "normalize-line-endings"
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2967,14 +6241,24 @@ checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
 
 [[package]]
 name = "ntapi"
-version = "0.3.4"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a31937dea023539c72ddae0e3571deadc1414b300483fa7aaec176168cfa9d2"
+checksum = "bc51db7b362b205941f71232e56c625156eb9a929f8cf74a428fd5bc094a4afc"
 dependencies = [
  "winapi",
 ]
 
 [[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"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2990,9 +6274,9 @@ dependencies = [
 
 [[package]]
 name = "num-bigint"
-version = "0.4.2"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74e768dff5fb39a41b3bcd30bb25cf989706c90d028d1ad71971987aa309d535"
+checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
 dependencies = [
  "autocfg",
  "num-integer",
@@ -3043,43 +6327,42 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.14"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
+checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
 dependencies = [
  "autocfg",
- "libm",
 ]
 
 [[package]]
 name = "num_cpus"
-version = "1.13.1"
+version = "1.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
+checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
 dependencies = [
- "hermit-abi",
+ "hermit-abi 0.2.6",
  "libc",
 ]
 
 [[package]]
 name = "num_enum"
-version = "0.5.6"
+version = "0.5.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "720d3ea1055e4e4574c0c0b0f8c3fd4f24c4cdaf465948206dea090b57b526ad"
+checksum = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9"
 dependencies = [
  "num_enum_derive",
 ]
 
 [[package]]
 name = "num_enum_derive"
-version = "0.5.6"
+version = "0.5.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d992b768490d7fe0d8586d9b5745f6c49f557da6d81dc982b1d167ad4edbb21"
+checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.107",
 ]
 
 [[package]]
@@ -3090,18 +6373,18 @@ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
 
 [[package]]
 name = "object"
-version = "0.27.1"
+version = "0.29.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67ac1d3f9a1d3616fd9a60c8d74296f22406a238b6a72f5cc1e6f314df4ffbf9"
+checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53"
 dependencies = [
  "memchr",
 ]
 
 [[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 = "oorandom"
@@ -3110,20 +6393,74 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ebcec7c9c2a95cacc7cd0ecb89d8a8454eca13906f6deb55258ffff0adeb9405"
 
 [[package]]
+name = "open"
+version = "3.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2078c0039e6a54a0c42c28faa984e115fb4c2d5bf2208f77d1961002df8576f8"
+dependencies = [
+ "pathdiff",
+ "windows-sys 0.42.0",
+]
+
+[[package]]
+name = "openssh"
+version = "0.9.9"
+source = "git+https://github.com/MaterializeInc/openssh.git#34404a274c5e1a7addd48940656fa12b7531e793"
+dependencies = [
+ "dirs",
+ "libc",
+ "once_cell",
+ "openssh-mux-client",
+ "shell-escape",
+ "tempfile",
+ "thiserror",
+ "tokio",
+ "tokio-pipe",
+]
+
+[[package]]
+name = "openssh-mux-client"
+version = "0.15.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88eac793af6170bcd6d4f39c3b7ba3f4227cab5680d7189ba30f9d174600b75f"
+dependencies = [
+ "once_cell",
+ "sendfd",
+ "serde",
+ "ssh_format",
+ "thiserror",
+ "tokio",
+ "tokio-io-utility",
+ "typed-builder",
+]
+
+[[package]]
 name = "openssl"
-version = "0.10.38"
+version = "0.10.55"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c7ae222234c30df141154f159066c5093ff73b63204dcda7121eb082fc56a95"
+checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "cfg-if",
  "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",
+ "syn 1.0.107",
+]
+
+[[package]]
 name = "openssl-probe"
 version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3131,20 +6468,19 @@ checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
 
 [[package]]
 name = "openssl-src"
-version = "111.16.0+1.1.1l"
+version = "111.25.0+1.1.1t"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ab2173f69416cf3ec12debb5823d244127d23a9b127d5a5189aa97c5fa2859f"
+checksum = "3173cd3626c43e3854b1b727422a276e568d9ec5fe8cec197822cf52cfb743d6"
 dependencies = [
  "cc",
 ]
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.72"
+version = "0.9.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e46109c383602735fa0a2e48dd2b7c892b048e1bf69e5c3b1d804b7d9c203cb"
+checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6"
 dependencies = [
- "autocfg",
  "cc",
  "libc",
  "openssl-src",
@@ -3153,71 +6489,108 @@ dependencies = [
 ]
 
 [[package]]
-name = "opentls"
-version = "0.2.1"
+name = "opentelemetry"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f561874f8d6ecfb674fc08863414040c93cc90c0b6963fe679895fab8b65560"
+checksum = "1e32339a5dc40459130b3bd269e9892439f55b33e772d2a9d402a789baaf4e8a"
 dependencies = [
- "futures-util",
- "log",
- "openssl",
- "openssl-probe",
- "openssl-sys",
- "url",
+ "futures-core",
+ "futures-sink",
+ "indexmap 2.0.0",
+ "js-sys",
+ "once_cell",
+ "pin-project-lite",
+ "thiserror",
+ "urlencoding",
 ]
 
 [[package]]
-name = "ordered-float"
-version = "2.10.0"
+name = "opentelemetry-otlp"
+version = "0.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87"
+checksum = "f24cda83b20ed2433c68241f918d0f6fdec8b1d43b7a9590ab4420c5095ca930"
 dependencies = [
- "num-traits",
- "serde",
+ "async-trait",
+ "futures-core",
+ "http",
+ "opentelemetry",
+ "opentelemetry-proto",
+ "opentelemetry-semantic-conventions",
+ "opentelemetry_sdk",
+ "prost",
+ "thiserror",
+ "tokio",
+ "tonic",
 ]
 
 [[package]]
-name = "ore"
-version = "0.0.0"
+name = "opentelemetry-proto"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2e155ce5cc812ea3d1dffbd1539aed653de4bf4882d60e6e04dcf0901d674e1"
+dependencies = [
+ "opentelemetry",
+ "opentelemetry_sdk",
+ "prost",
+ "tonic",
+]
+
+[[package]]
+name = "opentelemetry-semantic-conventions"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f5774f1ef1f982ef2a447f6ee04ec383981a3ab99c8e77a1a7b30182e65bbc84"
+dependencies = [
+ "opentelemetry",
+]
+
+[[package]]
+name = "opentelemetry_sdk"
+version = "0.21.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2f16aec8a98a457a52664d69e0091bac3a0abd18ead9b641cb00202ba4e0efe4"
 dependencies = [
- "anyhow",
  "async-trait",
- "bytes",
- "chrono",
- "clap",
- "crossbeam-utils",
- "ctor",
- "either",
- "futures",
- "lazy_static",
- "openssl",
- "pin-project",
- "prometheus",
- "smallvec",
- "stacker",
+ "crossbeam-channel",
+ "futures-channel",
+ "futures-executor",
+ "futures-util",
+ "glob",
+ "once_cell",
+ "opentelemetry",
+ "ordered-float",
+ "percent-encoding",
+ "rand",
+ "thiserror",
  "tokio",
- "tokio-openssl",
- "tracing-subscriber",
+ "tokio-stream",
 ]
 
 [[package]]
-name = "os_info"
-version = "3.0.9"
+name = "option-ext"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b89dd55b8d8d97dabd0d1adc625d188378fcf87632825bfe9c956acc9a11a72a"
+checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
+
+[[package]]
+name = "ordered-float"
+version = "4.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a76df7075c7d4d01fdcb46c912dd17fba5b60c78ea480b475f2b6ab6f666584e"
 dependencies = [
- "log",
+ "num-traits",
+ "rand",
  "serde",
- "winapi",
 ]
 
 [[package]]
-name = "os_pipe"
-version = "0.9.1"
+name = "os_info"
+version = "3.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db4d06355a7090ce852965b2d08e11426c315438462638c6d721448d0b47aa22"
+checksum = "c4750134fb6a5d49afc80777394ad5d95b04bc12068c6abb92fae8f43817270f"
 dependencies = [
- "libc",
+ "log",
+ "serde",
  "winapi",
 ]
 
@@ -3226,57 +6599,82 @@ name = "os_str_bytes"
 version = "6.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8e22443d1643a904602595ba1cd8f7d896afe56d26712531c5ff73a15b2fbf64"
+
+[[package]]
+name = "output_vt100"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53cdc5b785b7a58c5aad8216b3dfa114df64b0b06ae6e1501cef91df2fbdf8f9"
 dependencies = [
- "memchr",
+ "winapi",
+]
+
+[[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 = "papergrid"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1526bb6aa9f10ec339fb10360f22c57edf81d5678d0278e93bc12a47ffbe4b01"
+dependencies = [
+ "bytecount",
+ "fnv",
+ "unicode-width",
 ]
 
 [[package]]
 name = "parking_lot"
-version = "0.11.1"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
 dependencies = [
- "instant",
  "lock_api",
  "parking_lot_core",
 ]
 
 [[package]]
 name = "parking_lot_core"
-version = "0.8.3"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa7a782938e745763fe6907fc6ba86946d72f49fe7e21de074e08128a99fb018"
+checksum = "4dc9e0dc2adc1c69d09143aff38d3d30c5c3f0df0dad82e6d25547af174ebec0"
 dependencies = [
  "cfg-if",
- "instant",
  "libc",
- "redox_syscall",
+ "redox_syscall 0.2.10",
  "smallvec",
- "winapi",
+ "windows-sys 0.42.0",
 ]
 
 [[package]]
-name = "parquet-format-async-temp"
-version = "0.2.0"
-source = "git+https://github.com/MaterializeInc/parquet-format-rs?branch=main#52ef597df1a4067f1d8b12766661ca9b32fd7310"
+name = "parquet-format-safe"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1131c54b167dd4e4799ce762e1ab01549ebb94d5bdd13e6ec1b467491c378e1f"
 dependencies = [
  "async-trait",
- "byteorder",
  "futures",
- "integer-encoding",
- "ordered-float",
 ]
 
 [[package]]
 name = "parquet2"
-version = "0.8.1"
+version = "0.17.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57e98d7da0076cead49c49580cc5771dfe0ba8a93cadff9b47c1681a4a78e1f9"
+checksum = "aefc53bedbf9bbe0ff8912befafaafe30ced83851fb0aebe86696a9289ebb29e"
 dependencies = [
  "async-stream",
- "bitpacking",
  "futures",
- "parquet-format-async-temp",
+ "parquet-format-safe",
+ "seq-macro",
  "streaming-decompression",
 ]
 
@@ -3291,158 +6689,102 @@ dependencies = [
 
 [[package]]
 name = "paste"
-version = "1.0.6"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0744126afe1a6dd7f394cb50a716dbe086cb06e255e53d8d0185d82828358fb5"
+checksum = "d01a5bd0424d00070b0098dd17ebca6f961a959dead1dbcbbbc1d1cd8d3deeba"
 
 [[package]]
-name = "pdqselect"
-version = "0.1.1"
+name = "pathdiff"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7778906d9321dd56cde1d1ffa69a73e59dcf5fda6d366f62727adf2bd4193aee"
+checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
 
 [[package]]
-name = "percent-encoding"
-version = "2.1.0"
+name = "peeking_take_while"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
+checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
 
 [[package]]
-name = "perf-kinesis"
-version = "0.0.0"
+name = "pem"
+version = "3.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3163d2912b7c3b52d651a055f2c7eec9ba5cd22d26ef75b8dd3a59980b185923"
 dependencies = [
- "anyhow",
- "aws-sdk-kinesis",
- "bytes",
- "chrono",
- "clap",
- "env_logger",
- "futures",
- "futures-channel",
- "mz-aws-util",
- "ore",
- "rand",
- "test-util",
- "tokio",
- "tokio-postgres",
- "tracing",
+ "base64 0.21.5",
+ "serde",
 ]
 
 [[package]]
-name = "persist"
-version = "0.0.0"
+name = "pem-rfc7468"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24d159833a9105500e0398934e205e0773f0b27529557134ecfc51c27646adac"
 dependencies = [
- "arrow2",
- "async-trait",
- "aws-config",
- "aws-sdk-s3",
- "aws-types",
- "base64",
- "bincode",
- "build-info",
- "criterion",
- "crossbeam-channel",
- "differential-dataflow",
- "fail",
- "futures-executor",
- "futures-util",
- "lazy_static",
- "md-5",
- "mz-aws-util",
- "mz-protoc",
- "ore",
- "parquet2",
- "persist-types",
- "protobuf",
- "rand",
- "semver",
- "serde",
- "serde_json",
- "tempfile",
- "timely",
- "tokio",
- "tracing",
- "uuid",
+ "base64ct",
 ]
 
 [[package]]
-name = "persist-types"
-version = "0.0.0"
-
-[[package]]
-name = "pgrepr"
-version = "0.0.0"
-dependencies = [
- "byteorder",
- "bytes",
- "chrono",
- "dec",
- "lazy_static",
- "ore",
- "postgres-types",
- "repr",
- "uuid",
-]
+name = "percent-encoding"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
 
 [[package]]
-name = "pgtest"
+name = "persistcli"
 version = "0.0.0"
 dependencies = [
  "anyhow",
+ "async-trait",
+ "axum",
  "bytes",
  "clap",
- "datadriven",
- "fallible-iterator",
- "ore",
- "postgres-protocol",
+ "differential-dataflow",
+ "futures",
+ "humantime",
+ "mz-http-util",
+ "mz-orchestrator-tracing",
+ "mz-ore",
+ "mz-persist",
+ "mz-persist-client",
+ "mz-persist-txn",
+ "mz-persist-types",
+ "num_cpus",
+ "num_enum",
+ "prometheus",
  "serde",
  "serde_json",
+ "timely",
+ "tokio",
+ "tracing",
+ "uuid",
+ "workspace-hack",
 ]
 
 [[package]]
-name = "pgwire"
-version = "0.0.0"
+name = "petgraph"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4a13a2fa9d0b63e5f22328828741e523766fff0ee9e779316902290dff3f824f"
 dependencies = [
- "anyhow",
- "async-trait",
- "byteorder",
- "bytes",
- "chrono",
- "coord",
- "csv",
- "dataflow-types",
- "expr",
- "futures",
- "itertools",
- "lazy_static",
- "openssl",
- "ordered-float",
- "ore",
- "pgrepr",
- "postgres",
- "repr",
- "sql",
- "tokio",
- "tokio-openssl",
- "tokio-stream",
- "tokio-util",
- "tracing",
+ "fixedbitset",
+ "indexmap 1.9.1",
 ]
 
 [[package]]
 name = "phf"
-version = "0.10.1"
+version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
+checksum = "928c6535de93548188ef63bb7c4036bd415cd8f36ad25af44b9789b2ee72a48c"
 dependencies = [
  "phf_shared",
 ]
 
 [[package]]
 name = "phf_codegen"
-version = "0.10.0"
+version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd"
+checksum = "a56ac890c5e3ca598bbdeaa99964edb5b0258a583a9eb6ef4e89fc85d9224770"
 dependencies = [
  "phf_generator",
  "phf_shared",
@@ -3450,9 +6792,9 @@ dependencies = [
 
 [[package]]
 name = "phf_generator"
-version = "0.10.0"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6"
+checksum = "5b450720b6f75cfbfabc195814bd3765f337a4f9a83186f8537297cac12f6705"
 dependencies = [
  "phf_shared",
  "rand",
@@ -3460,49 +6802,39 @@ dependencies = [
 
 [[package]]
 name = "phf_shared"
-version = "0.10.0"
+version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
+checksum = "e1fb5f6f826b772a8d4c0394209441e7d37cbbb967ae9c7e0e8134365c9ee676"
 dependencies = [
  "siphasher",
  "uncased",
 ]
 
 [[package]]
-name = "pid-file"
-version = "0.0.0"
-dependencies = [
- "cc",
- "libc",
- "ore",
- "tempfile",
-]
-
-[[package]]
 name = "pin-project"
-version = "1.0.10"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58ad3879ad3baf4e44784bc6a718a8698867bb991f8ce24d1bcbe2cfb4c3a75e"
+checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc"
 dependencies = [
  "pin-project-internal",
 ]
 
 [[package]]
 name = "pin-project-internal"
-version = "1.0.10"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "744b6f092ba29c3650faf274db506afd39944f48420f6c86b17cfe0ee1cb36bb"
+checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.107",
 ]
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.7"
+version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
 
 [[package]]
 name = "pin-utils"
@@ -3517,6 +6849,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7c9b1041b4387893b91ee6746cddfc28516aff326a3519fb2adf820932c5e6cb"
 
 [[package]]
+name = "planus"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc1691dd09e82f428ce8d6310bd6d5da2557c82ff17694d2a32cad7242aea89f"
+dependencies = [
+ "array-init-cursor",
+]
+
+[[package]]
 name = "plotters"
 version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3545,13 +6886,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "portable-atomic"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "15eb2c6e362923af47e13c23ca5afb859e83d54452c55b0b9ac763b8f7c1ac16"
+
+[[package]]
 name = "postgres"
-version = "0.19.1"
-source = "git+https://github.com/MaterializeInc/rust-postgres?branch=mz-0.7.2#4320cb7a1fedb1b6157f0dec51f84f4c990f4d98"
+version = "0.19.5"
+source = "git+https://github.com/MaterializeInc/rust-postgres#b759caa33610403aa74b1cfdd37f45eb3100c9af"
 dependencies = [
  "bytes",
  "fallible-iterator",
- "futures",
+ "futures-util",
  "log",
  "tokio",
  "tokio-postgres",
@@ -3560,9 +6907,8 @@ dependencies = [
 [[package]]
 name = "postgres-openssl"
 version = "0.5.0"
-source = "git+https://github.com/MaterializeInc/rust-postgres?branch=mz-0.7.2#4320cb7a1fedb1b6157f0dec51f84f4c990f4d98"
+source = "git+https://github.com/MaterializeInc/rust-postgres#b759caa33610403aa74b1cfdd37f45eb3100c9af"
 dependencies = [
- "futures",
  "openssl",
  "tokio",
  "tokio-openssl",
@@ -3571,10 +6917,10 @@ dependencies = [
 
 [[package]]
 name = "postgres-protocol"
-version = "0.6.1"
-source = "git+https://github.com/MaterializeInc/rust-postgres?branch=mz-0.7.2#4320cb7a1fedb1b6157f0dec51f84f4c990f4d98"
+version = "0.6.5"
+source = "git+https://github.com/MaterializeInc/rust-postgres#b759caa33610403aa74b1cfdd37f45eb3100c9af"
 dependencies = [
- "base64",
+ "base64 0.21.5",
  "byteorder",
  "bytes",
  "fallible-iterator",
@@ -3588,8 +6934,8 @@ dependencies = [
 
 [[package]]
 name = "postgres-types"
-version = "0.2.1"
-source = "git+https://github.com/MaterializeInc/rust-postgres?branch=mz-0.7.2#4320cb7a1fedb1b6157f0dec51f84f4c990f4d98"
+version = "0.2.5"
+source = "git+https://github.com/MaterializeInc/rust-postgres#b759caa33610403aa74b1cfdd37f45eb3100c9af"
 dependencies = [
  "bytes",
  "chrono",
@@ -3601,22 +6947,9 @@ dependencies = [
 ]
 
 [[package]]
-name = "postgres-util"
-version = "0.0.0"
-dependencies = [
- "anyhow",
- "openssl",
- "postgres-openssl",
- "repr",
- "sql-parser",
- "tokio",
- "tokio-postgres",
-]
-
-[[package]]
 name = "postgres_array"
 version = "0.11.0"
-source = "git+https://github.com/MaterializeInc/rust-postgres-array?branch=mz-0.7.2#c84fa6fc9e0cfdeb731a83d577f579ba1598ff4d"
+source = "git+https://github.com/MaterializeInc/rust-postgres-array#f58d0101e5198e04e8692629018d9b58f8543534"
 dependencies = [
  "bytes",
  "fallible-iterator",
@@ -3626,17 +6959,17 @@ dependencies = [
 
 [[package]]
 name = "pprof"
-version = "0.6.2"
+version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "55f35f865aa964be21fcde114cbd1cfbd9bf8a471460ed965b0f84f96c711401"
+checksum = "196ded5d4be535690899a4631cc9f18cdc41b7ebf24a79400f46f48e49a11059"
 dependencies = [
  "backtrace",
  "cfg-if",
  "findshlibs",
- "lazy_static",
  "libc",
  "log",
  "nix",
+ "once_cell",
  "parking_lot",
  "smallvec",
  "symbolic-demangle",
@@ -3652,9 +6985,9 @@ checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
 
 [[package]]
 name = "predicates"
-version = "2.1.0"
+version = "2.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95e5a7689e456ab905c22c2b48225bb921aba7c8dfa58440d68ba13f6222a715"
+checksum = "f54fc5dc63ed3bbf19494623db4f3af16842c0d975818e469022d09e53f0aa05"
 dependencies = [
  "difflib",
  "float-cmp",
@@ -3681,19 +7014,62 @@ dependencies = [
 ]
 
 [[package]]
+name = "pretty"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b55c4d17d994b637e2f4daf6e5dc5d660d209d5642377d675d7a1c3ab69fa579"
+dependencies = [
+ "arrayvec",
+ "typed-arena",
+ "unicode-width",
+]
+
+[[package]]
 name = "pretty-hex"
-version = "0.1.1"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c6fa0831dd7cc608c38a5e323422a0077678fa5744aa2be4ad91c4ece8eec8d5"
+
+[[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 = "prettyplease"
+version = "0.1.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86"
+dependencies = [
+ "proc-macro2",
+ "syn 1.0.107",
+]
+
+[[package]]
+name = "prettyplease"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be91bcc43e73799dc46a6c194a55e7aae1d86cc867c860fd4a436019af21bd8c"
+checksum = "1ceca8aaf45b5c46ec7ed39fff75f57290368c1846d33d24a122ca81416ab058"
+dependencies = [
+ "proc-macro2",
+ "syn 2.0.39",
+]
 
 [[package]]
 name = "proc-macro-crate"
-version = "1.0.0"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41fdbd1df62156fbc5945f4762632564d7d038153091c3fcf1067f6aef7cff92"
+checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
 dependencies = [
- "thiserror",
- "toml",
+ "once_cell",
+ "toml_edit",
 ]
 
 [[package]]
@@ -3705,7 +7081,7 @@ dependencies = [
  "proc-macro-error-attr",
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.107",
  "version_check",
 ]
 
@@ -3728,60 +7104,33 @@ checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.36"
+version = "1.0.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029"
-dependencies = [
- "unicode-xid",
-]
-
-[[package]]
-name = "procfs"
-version = "0.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0941606b9934e2d98a3677759a971756eb821f75764d0e0d26946d08e74d9104"
-dependencies = [
- "bitflags",
- "byteorder",
- "hex",
- "lazy_static",
- "libc",
-]
-
-[[package]]
-name = "prof"
-version = "0.0.0"
+checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
 dependencies = [
- "anyhow",
- "backtrace",
- "lazy_static",
- "pprof",
- "serde",
- "tempfile",
- "tikv-jemalloc-ctl",
- "tokio",
+ "unicode-ident",
 ]
 
 [[package]]
 name = "prometheus"
-version = "0.10.0"
-source = "git+https://github.com/MaterializeInc/rust-prometheus.git#8bd8207fd0ac3ebb594a0832e5e5a70ddd8e1a60"
+version = "0.13.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c"
 dependencies = [
  "cfg-if",
  "fnv",
  "lazy_static",
+ "memchr",
  "parking_lot",
- "regex",
  "thiserror",
 ]
 
 [[package]]
 name = "proptest"
 version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e0d9cc07f18492d879586c92b485def06bc850da3118075cd45d50e9c95b0e5"
+source = "git+https://github.com/MaterializeInc/proptest.git#4d8c406c32260484747c828050016de599b9f3a4"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "byteorder",
  "lazy_static",
  "num-traits",
@@ -3793,44 +7142,104 @@ dependencies = [
 ]
 
 [[package]]
-name = "protobuf"
-version = "3.0.0-alpha.2"
-source = "git+https://github.com/MaterializeInc/rust-protobuf.git#063964a8ab6fee98a9622a0c0a72a9765411025a"
+name = "proptest-derive"
+version = "0.3.0"
+source = "git+https://github.com/MaterializeInc/proptest.git#4d8c406c32260484747c828050016de599b9f3a4"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.107",
+]
 
 [[package]]
-name = "protobuf-codegen"
-version = "3.0.0-alpha.2"
-source = "git+https://github.com/MaterializeInc/rust-protobuf.git#063964a8ab6fee98a9622a0c0a72a9765411025a"
+name = "prost"
+version = "0.11.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd"
 dependencies = [
- "anyhow",
- "protobuf",
- "protobuf-parse",
- "protoc",
+ "bytes",
+ "prost-derive",
+]
+
+[[package]]
+name = "prost-build"
+version = "0.11.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270"
+dependencies = [
+ "bytes",
+ "heck",
+ "itertools",
+ "lazy_static",
+ "log",
+ "multimap",
+ "petgraph",
+ "prettyplease 0.1.25",
+ "prost",
+ "prost-types",
+ "regex",
+ "syn 1.0.107",
  "tempfile",
- "thiserror",
+ "which",
 ]
 
 [[package]]
-name = "protobuf-parse"
-version = "3.0.0-alpha.2"
-source = "git+https://github.com/MaterializeInc/rust-protobuf.git#063964a8ab6fee98a9622a0c0a72a9765411025a"
+name = "prost-derive"
+version = "0.11.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4"
 dependencies = [
  "anyhow",
- "protobuf",
- "protoc",
+ "itertools",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.107",
+]
+
+[[package]]
+name = "prost-reflect"
+version = "0.11.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "000e1e05ebf7b26e1eba298e66fe4eee6eb19c567d0ffb35e0dd34231cdac4c8"
+dependencies = [
+ "base64 0.21.5",
+ "once_cell",
+ "prost",
+ "prost-types",
+ "serde",
+ "serde-value",
+]
+
+[[package]]
+name = "prost-types"
+version = "0.11.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13"
+dependencies = [
+ "prost",
+]
+
+[[package]]
+name = "protobuf-native"
+version = "0.2.1+3.19.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86df76d0f2a6933036e8a9f28f1adc8b48081fa681dba07eaa30ac75663f7f4e"
+dependencies = [
+ "cxx",
+ "cxx-build",
+ "paste",
+ "pretty_assertions",
+ "protobuf-src",
  "tempfile",
- "thiserror",
 ]
 
 [[package]]
-name = "protoc"
-version = "3.0.0-alpha.2"
-source = "git+https://github.com/MaterializeInc/rust-protobuf.git#063964a8ab6fee98a9622a0c0a72a9765411025a"
+name = "protobuf-src"
+version = "1.1.0+21.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7ac8852baeb3cc6fb83b93646fb93c0ffe5d14bf138c945ceb4b9948ee0e3c1"
 dependencies = [
- "anyhow",
- "log",
- "thiserror",
- "which",
+ "autotools",
 ]
 
 [[package]]
@@ -3843,52 +7252,40 @@ dependencies = [
 ]
 
 [[package]]
-name = "pubnub-core"
-version = "0.1.0"
-source = "git+https://github.com/MaterializeInc/pubnub-rust#9da4f3e71b84a9200881612642cf4d18c078e169"
+name = "pulldown-cmark"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34f197a544b0c9ab3ae46c359a7ec9cbbb5c7bf97054266fecb7ead794a181d6"
 dependencies = [
- "async-trait",
- "bitflags",
- "error-iter",
- "futures-channel",
- "futures-core",
- "futures-util",
- "json",
- "log",
- "percent-encoding",
- "thiserror",
- "uuid",
+ "bitflags 1.3.2",
+ "memchr",
+ "unicase",
 ]
 
 [[package]]
-name = "pubnub-hyper"
-version = "0.1.0"
-source = "git+https://github.com/MaterializeInc/pubnub-rust#9da4f3e71b84a9200881612642cf4d18c078e169"
+name = "qcell"
+version = "0.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f6c04aa3dea4dab485f6d87449ba94d5664c388c0f1fe2b07c4891175513345"
 dependencies = [
- "async-trait",
- "derive_builder",
- "error-iter",
- "futures-util",
- "getset",
- "http",
- "hyper",
- "hyper-tls",
- "log",
- "pubnub-core",
- "pubnub-util",
- "thiserror",
- "tokio",
+ "exclusion-set",
+ "once_cell",
 ]
 
 [[package]]
-name = "pubnub-util"
-version = "0.1.0"
-source = "git+https://github.com/MaterializeInc/pubnub-rust#9da4f3e71b84a9200881612642cf4d18c078e169"
+name = "quanta"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a17e662a7a8291a865152364c20c7abc5e60486ab2001e8ec10b24862de0b9ab"
 dependencies = [
- "base64",
- "hmac",
- "sha2",
- "uritemplate-next",
+ "crossbeam-utils",
+ "libc",
+ "mach2",
+ "once_cell",
+ "raw-cpuid",
+ "wasi",
+ "web-sys",
+ "winapi",
 ]
 
 [[package]]
@@ -3898,24 +7295,48 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3ac73b1112776fc109b2e61909bc46c7e1bf0d7f690ffb1676553acce16d5cda"
 
 [[package]]
+name = "quick-xml"
+version = "0.31.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "quickcheck"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6"
+dependencies = [
+ "rand",
+]
+
+[[package]]
 name = "quote"
-version = "1.0.14"
+version = "1.0.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "47aa80447ce4daf1717500037052af176af5d38cc3e571d9ec1c7353fc10c87d"
+checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488"
 dependencies = [
  "proc-macro2",
 ]
 
 [[package]]
+name = "radium"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
+
+[[package]]
 name = "rand"
-version = "0.8.4"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
 dependencies = [
  "libc",
  "rand_chacha",
  "rand_core",
- "rand_hc",
+ "serde",
 ]
 
 [[package]]
@@ -3935,34 +7356,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7"
 dependencies = [
  "getrandom",
+ "serde",
 ]
 
 [[package]]
-name = "rand_distr"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "964d548f8e7d12e102ef183a0de7e98180c9f8729f555897a857b96e48122d2f"
-dependencies = [
- "num-traits",
- "rand",
-]
-
-[[package]]
-name = "rand_hc"
+name = "rand_xorshift"
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73"
+checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f"
 dependencies = [
  "rand_core",
 ]
 
 [[package]]
-name = "rand_xorshift"
-version = "0.3.0"
+name = "raw-cpuid"
+version = "10.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f"
+checksum = "6c297679cb867470fa8c9f67dbba74a78d78e3e98d7cf2b08d6d71540f797332"
 dependencies = [
- "rand_core",
+ "bitflags 1.3.2",
 ]
 
 [[package]]
@@ -3992,10 +7404,11 @@ dependencies = [
 
 [[package]]
 name = "rdkafka"
-version = "0.28.0"
-source = "git+https://github.com/fede1024/rust-rdkafka.git#a640a003fc957be0c43ab6b43f768c03df32db67"
+version = "0.29.0"
+source = "git+https://github.com/MaterializeInc/rust-rdkafka.git#8ea07c4d2b96636ff093e670bc921892aee0d56a"
 dependencies = [
- "futures",
+ "futures-channel",
+ "futures-util",
  "libc",
  "log",
  "rdkafka-sys",
@@ -4008,8 +7421,8 @@ dependencies = [
 
 [[package]]
 name = "rdkafka-sys"
-version = "4.2.0+1.8.2"
-source = "git+https://github.com/fede1024/rust-rdkafka.git#a640a003fc957be0c43ab6b43f768c03df32db67"
+version = "4.3.0+1.9.2"
+source = "git+https://github.com/MaterializeInc/rust-rdkafka.git#8ea07c4d2b96636ff093e670bc921892aee0d56a"
 dependencies = [
  "cmake",
  "libc",
@@ -4017,24 +7430,42 @@ dependencies = [
  "num_enum",
  "openssl-sys",
  "pkg-config",
- "sasl2-sys",
  "zstd-sys",
 ]
 
 [[package]]
 name = "redox_syscall"
-version = "0.2.4"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff"
+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"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05ec8ca9416c5ea37062b502703cd7fcb207736bc294f6e0cf367ac6fc234570"
+checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64"
 dependencies = [
- "bitflags",
+ "getrandom",
+ "redox_syscall 0.2.10",
 ]
 
 [[package]]
 name = "regex"
-version = "1.5.4"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"
+checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -4052,89 +7483,46 @@ dependencies = [
 ]
 
 [[package]]
-name = "regex-syntax"
-version = "0.6.25"
+name = "regex-automata"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
+checksum = "59b23e92ee4318893fa3fe3e6fb365258efbfe6ac6ab30f090cdcbb7aa37efa9"
 
 [[package]]
-name = "remove_dir_all"
-version = "0.5.1"
+name = "regex-lite"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5"
-dependencies = [
- "winapi",
-]
+checksum = "30b661b2f27137bdbc16f00eda72866a92bb28af1753ffbd56744fb6e2e9cd8e"
 
 [[package]]
-name = "repr"
-version = "0.0.0"
-dependencies = [
- "anyhow",
- "byteorder",
- "chrono",
- "chrono-tz",
- "criterion",
- "dec",
- "enum-kinds",
- "fast-float",
- "hex",
- "itertools",
- "lazy_static",
- "lowertest",
- "mz-protoc",
- "num-traits",
- "num_enum",
- "ordered-float",
- "ore",
- "persist-types",
- "proptest",
- "protobuf",
- "rand",
- "regex",
- "ryu",
- "serde",
- "serde_json",
- "serde_regex",
- "smallvec",
- "uuid",
-]
-
-[[package]]
-name = "repr_test_util"
-version = "0.0.0"
-dependencies = [
- "chrono",
- "datadriven",
- "lazy_static",
- "lowertest",
- "ore",
- "proc-macro2",
- "repr",
-]
+name = "regex-syntax"
+version = "0.6.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
 
 [[package]]
 name = "reqwest"
-version = "0.11.8"
+version = "0.11.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c4e0a76dc12a116108933f6301b95e83634e0c47b0afbed6abbaa0601e99258"
+checksum = "68cc60575865c7831548863cc02356512e3f1dc2f3f82cb837d7fc4cc8f3c97c"
 dependencies = [
- "base64",
+ "base64 0.13.1",
  "bytes",
  "encoding_rs",
  "futures-core",
  "futures-util",
+ "h2",
  "http",
  "http-body",
  "hyper",
  "hyper-tls",
  "ipnet",
  "js-sys",
- "lazy_static",
  "log",
  "mime",
  "mime_guess",
  "native-tls",
+ "once_cell",
  "percent-encoding",
  "pin-project-lite",
  "serde",
@@ -4142,6 +7530,7 @@ dependencies = [
  "serde_urlencoded",
  "tokio",
  "tokio-native-tls",
+ "tower-service",
  "url",
  "wasm-bindgen",
  "wasm-bindgen-futures",
@@ -4150,42 +7539,116 @@ dependencies = [
 ]
 
 [[package]]
+name = "reqwest-middleware"
+version = "0.2.3"
+source = "git+https://github.com/MaterializeInc/reqwest-middleware.git#1c44c7ddbf4954cc2d4de73a760b9a8d84827349"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "http",
+ "reqwest",
+ "serde",
+ "task-local-extensions",
+ "thiserror",
+]
+
+[[package]]
+name = "reqwest-retry"
+version = "0.2.2"
+source = "git+https://github.com/MaterializeInc/reqwest-middleware.git#1c44c7ddbf4954cc2d4de73a760b9a8d84827349"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "chrono",
+ "futures",
+ "http",
+ "hyper",
+ "reqwest",
+ "reqwest-middleware",
+ "retry-policies",
+ "task-local-extensions",
+ "tokio",
+ "tracing",
+]
+
+[[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.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e09bbcb5003282bcb688f0bae741b278e9c7e8f378f561522c9806c58e075d9b"
+dependencies = [
+ "anyhow",
+ "chrono",
+ "rand",
+]
+
+[[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",
- "web-sys",
- "winapi",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "rlimit"
-version = "0.6.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc0bf25554376fd362f54332b8410a625c71f15445bca32ffdfdf4ec9ac91726"
+checksum = "f7278a1ec8bfd4a4e07515c589f5ff7b309a373f987393aef44813d9dcf87aa3"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "rocksdb"
+version = "0.21.0"
+source = "git+https://github.com/MaterializeInc/rust-rocksdb?branch=master#3305d514d509c6b95b0c925c78157e5e4ae4b7ba"
 dependencies = [
  "libc",
+ "librocksdb-sys",
 ]
 
 [[package]]
-name = "rusqlite"
-version = "0.26.3"
+name = "ropey"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ba4d3462c8b2e4d7f4fcfcf2b296dc6b65404fbbc7b63daa37fd485c149daf7"
+checksum = "53ce7a2c43a32e50d666e33c5a80251b31147bb4b49024bcab11fb6f20c671ed"
 dependencies = [
- "bitflags",
- "fallible-iterator",
- "fallible-streaming-iterator",
- "hashlink",
- "libsqlite3-sys",
- "memchr",
  "smallvec",
+ "str_indices",
+]
+
+[[package]]
+name = "rpassword"
+version = "7.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6678cf63ab3491898c0d021b493c94c9b221d91295294a2a5746eacbe5928322"
+dependencies = [
+ "libc",
+ "rtoolbox",
+ "winapi",
+]
+
+[[package]]
+name = "rtoolbox"
+version = "0.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "034e22c514f5c0cb8a10ff341b9b048b5ceb21591f31c8f44c43b960f9b3524a"
+dependencies = [
+ "libc",
+ "winapi",
 ]
 
 [[package]]
@@ -4195,6 +7658,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
 
 [[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"
@@ -4204,29 +7673,45 @@ dependencies = [
 ]
 
 [[package]]
-name = "ryu"
-version = "1.0.9"
+name = "rustix"
+version = "0.37.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f"
+checksum = "a0661814f891c57c930a610266415528da53c4933e6dea5fb350cbfe048a9ece"
+dependencies = [
+ "bitflags 1.3.2",
+ "errno",
+ "io-lifetimes",
+ "libc",
+ "linux-raw-sys 0.3.4",
+ "windows-sys 0.48.0",
+]
 
 [[package]]
-name = "s3-datagen"
-version = "0.0.0"
+name = "rustix"
+version = "0.38.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3"
 dependencies = [
- "anyhow",
- "aws-sdk-s3",
- "bytefmt",
- "clap",
- "futures",
- "indicatif",
- "mz-aws-util",
- "ore",
- "tokio",
- "tracing",
- "tracing-subscriber",
+ "bitflags 2.4.1",
+ "errno",
+ "libc",
+ "linux-raw-sys 0.4.12",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
+name = "rustversion"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8"
+
+[[package]]
+name = "ryu"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde"
+
+[[package]]
 name = "same-file"
 version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4236,17 +7721,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "sasl2-sys"
-version = "0.1.16"
+name = "saturating"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c50936b766924ec8f5118bcd3d6e5dc7ac25263df4f2ea450fe7919281a4544"
-dependencies = [
- "cc",
- "duct",
- "krb5-src",
- "libc",
- "pkg-config",
-]
+checksum = "ece8e78b2f38ec51c51f5d475df0a7187ba5111b2a28bdc761ee05b075d40a71"
 
 [[package]]
 name = "schannel"
@@ -4259,18 +7737,90 @@ dependencies = [
 ]
 
 [[package]]
+name = "scheduled-thread-pool"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "977a7519bff143a44f842fd07e80ad1329295bd71686457f18e496736f4bf9bf"
+dependencies = [
+ "parking_lot",
+]
+
+[[package]]
+name = "schemars"
+version = "0.8.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a5fb6c61f29e723026dc8e923d94c694313212abbecbbe5f55a7748eec5b307"
+dependencies = [
+ "dyn-clone",
+ "schemars_derive",
+ "serde",
+ "serde_json",
+ "uuid",
+]
+
+[[package]]
+name = "schemars_derive"
+version = "0.8.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f188d036977451159430f3b8dc82ec76364a42b7e289c2b18a9a18f4470058e9"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "serde_derive_internals",
+ "syn 1.0.107",
+]
+
+[[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.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
 
 [[package]]
+name = "scratch"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96311ef4a16462c757bb6a39152c40f58f31cd2602a40fceb937e2bc34e6cbab"
+
+[[package]]
+name = "seahash"
+version = "4.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b"
+
+[[package]]
+name = "sec1"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08da66b8b0965a5555b6bd6639e68ccba85e1e2506f5fbb089e93f8a04e1a2d1"
+dependencies = [
+ "der",
+ "generic-array",
+]
+
+[[package]]
+name = "secrecy"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e"
+dependencies = [
+ "serde",
+ "zeroize",
+]
+
+[[package]]
 name = "security-framework"
-version = "2.0.0"
+version = "2.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1759c2e3c8580017a484a7ac56d3abc5a6c1feadf88db2f3633f12ae4268c69"
+checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "core-foundation",
  "core-foundation-sys",
  "libc",
@@ -4279,62 +7829,241 @@ dependencies = [
 
 [[package]]
 name = "security-framework-sys"
-version = "2.0.0"
+version = "2.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f99b9d5e26d2a71633cc4f2ebae7cc9f874044e0c351a27e17892d76dce5678b"
+checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556"
 dependencies = [
  "core-foundation-sys",
  "libc",
 ]
 
 [[package]]
+name = "segment"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24fc91c898e0487ff3e471d0849bbaf7d38a00ff5e3531009d386b0bab9b6b12"
+dependencies = [
+ "async-trait",
+ "reqwest",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "time",
+]
+
+[[package]]
 name = "semver"
-version = "1.0.4"
+version = "1.0.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "sendfd"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "604b71b8fc267e13bb3023a2c901126c8f349393666a6d98ac1ae5729b701798"
+dependencies = [
+ "libc",
+ "tokio",
+]
+
+[[package]]
+name = "sentry"
+version = "0.29.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17ad137b9df78294b98cab1a650bef237cc6c950e82e5ce164655e674d07c5cc"
+dependencies = [
+ "httpdate",
+ "native-tls",
+ "reqwest",
+ "sentry-backtrace",
+ "sentry-contexts",
+ "sentry-core",
+ "sentry-debug-images",
+ "sentry-panic",
+ "tokio",
+ "ureq",
+]
+
+[[package]]
+name = "sentry-backtrace"
+version = "0.29.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "afe4800806552aab314129761d5d3b3d422284eca3de2ab59e9fd133636cbd3d"
+dependencies = [
+ "backtrace",
+ "once_cell",
+ "regex",
+ "sentry-core",
+]
+
+[[package]]
+name = "sentry-contexts"
+version = "0.29.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a42938426670f6e7974989cd1417837a96dd8bbb01567094f567d6acb360bf88"
+dependencies = [
+ "hostname",
+ "libc",
+ "os_info",
+ "rustc_version",
+ "sentry-core",
+ "uname",
+]
+
+[[package]]
+name = "sentry-core"
+version = "0.29.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4df9b9d8de2658a1ecd4e45f7b06c80c5dd97b891bfbc7c501186189b7e9bbdf"
+dependencies = [
+ "once_cell",
+ "rand",
+ "sentry-types",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "sentry-debug-images"
+version = "0.29.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3995208135571444b7d5a247f42bd36677553bb64185d85b317acdc1789749b3"
+dependencies = [
+ "findshlibs",
+ "once_cell",
+ "sentry-core",
+]
+
+[[package]]
+name = "sentry-panic"
+version = "0.29.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0af37b8500f273e511ebd6eb0d342ff7937d64ce3f134764b2b4653112d48cb4"
+dependencies = [
+ "sentry-backtrace",
+ "sentry-core",
+]
+
+[[package]]
+name = "sentry-tracing"
+version = "0.29.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "63fc83ec2cf38726bd18cb1943ff11555b07fd5034cb68b10958ab32e2863a1f"
+dependencies = [
+ "sentry-core",
+ "tracing-core",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "sentry-types"
+version = "0.29.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "568a8e6258aa33c13358f81fd834adb854c6f7c9468520910a9b1e8fac068012"
+checksum = "ccc95faa4078768a6bf8df45e2b894bbf372b3dbbfb364e9429c1c58ab7545c6"
+dependencies = [
+ "debugid",
+ "getrandom",
+ "hex",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "time",
+ "url",
+ "uuid",
+]
+
+[[package]]
+name = "seq-macro"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0772c5c30e1a0d91f6834f8e545c69281c099dfa9a3ac58d96a9fd629c8d4898"
 
 [[package]]
 name = "serde"
-version = "1.0.133"
+version = "1.0.164"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97565067517b60e2d1ea8b268e59ce036de907ac523ad83a0475da04e818989a"
+checksum = "9e8c8cf938e98f769bc164923b06dce91cea1751522f46f8466461af04c9027d"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
-name = "serde_cbor"
-version = "0.11.1"
+name = "serde-aux"
+version = "4.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e18acfa2f90e8b735b2836ab8d538de304cbb6729a7360729ea5a895d15a622"
+checksum = "c3dfe1b7eb6f9dcf011bd6fad169cdeaae75eda0d61b1a99a3f015b41b0cae39"
 dependencies = [
- "half",
+ "chrono",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "serde-value"
+version = "0.7.0"
+source = "git+https://github.com/MaterializeInc/serde-value.git#a84c6b71825efaffb332c0d19f18c2bdf9ee7b40"
+dependencies = [
+ "ordered-float",
  "serde",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.133"
+version = "1.0.164"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed201699328568d8d08208fdd080e3ff594e6c422e438b6705905da01005d537"
+checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "serde_derive_internals"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.107",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.74"
+version = "1.0.99"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee2bb9cd061c5865d345bb02ca49fcef1391741b672b54a0bf7b679badec3142"
+checksum = "46266871c240a00b8f503b877622fe33430b3c7d963bdc0f2adc511e54a1eae3"
 dependencies = [
- "itoa 1.0.1",
+ "indexmap 2.0.0",
+ "itoa",
  "ryu",
  "serde",
 ]
 
 [[package]]
+name = "serde_path_to_error"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "184c643044780f7ceb59104cef98a5a6f12cb2288a7bc701ab93a362b49fd47d"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde_plain"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d6018081315db179d0ce57b1fe4b62a12a0028c9cf9bbef868c9cf477b3c34ae"
+dependencies = [
+ "serde",
+]
+
+[[package]]
 name = "serde_regex"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4345,22 +8074,83 @@ dependencies = [
 ]
 
 [[package]]
+name = "serde_repr"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f0a21fba416426ac927b1691996e82079f8b6156e920c85345f135b2e9ba2de"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "serde_spanned"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
+dependencies = [
+ "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 0.4.6",
+ "itoa",
  "ryu",
  "serde",
 ]
 
 [[package]]
-name = "sha-1"
-version = "0.10.0"
+name = "serde_with"
+version = "2.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe"
+dependencies = [
+ "base64 0.13.1",
+ "chrono",
+ "hex",
+ "indexmap 1.9.1",
+ "serde",
+ "serde_json",
+ "serde_with_macros",
+ "time",
+]
+
+[[package]]
+name = "serde_with_macros"
+version = "2.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f"
+dependencies = [
+ "darling",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "serde_yaml"
+version = "0.9.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f"
+checksum = "1a49e178e4452f45cb61d0cd8cebc1b0fafd3e41929e996cef79aa3aca91f574"
+dependencies = [
+ "indexmap 2.0.0",
+ "itoa",
+ "ryu",
+ "serde",
+ "unsafe-libyaml",
+]
+
+[[package]]
+name = "sha1"
+version = "0.10.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -4368,10 +8158,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "sha1_smol"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012"
+
+[[package]]
 name = "sha2"
-version = "0.10.1"
+version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99c3bd8169c58782adad9290a9af5939994036b76187f7b4f0e6de91dbbfc0ec"
+checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -4380,40 +8176,47 @@ dependencies = [
 
 [[package]]
 name = "sharded-slab"
-version = "0.1.1"
+version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79c719719ee05df97490f80a45acfc99e5a30ce98a1e4fb67aee422745ae14e3"
+checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31"
 dependencies = [
  "lazy_static",
 ]
 
 [[package]]
-name = "shared_child"
-version = "0.3.4"
+name = "shell-escape"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8cebcf3a403e4deafaf34dc882c4a1b6a648b43e5670aa2e4bb985914eaeb2d2"
-dependencies = [
- "libc",
- "winapi",
-]
+checksum = "45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f"
 
 [[package]]
 name = "shell-words"
-version = "1.0.0"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6fa3938c99da4914afedd13bf3d79bcb6c277d1b2c398d23257a304d9e1b074"
+checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
+
+[[package]]
+name = "shlex"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
 
 [[package]]
 name = "signal-hook-registry"
-version = "1.2.0"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94f478ede9f64724c5d173d7bb56099ec3e2d9fc2774aac65d34b8b890405f41"
+checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
 dependencies = [
- "arc-swap",
  "libc",
 ]
 
 [[package]]
+name = "signature"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f054c6c1a6e95179d6f23ed974060dcefb2d9388bb7256900badad682c499de4"
+
+[[package]]
 name = "simdutf8"
 version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4421,9 +8224,35 @@ checksum = "c970da16e7c682fa90a261cf0724dee241c9f7831635ecc4e988ae8f3b505559"
 
 [[package]]
 name = "similar"
-version = "2.1.0"
+version = "2.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "420acb44afdae038210c99e69aae24109f32f15500aa708e81d46c9f29d55fcf"
+dependencies = [
+ "bstr 0.2.14",
+ "unicode-segmentation",
+]
+
+[[package]]
+name = "similar-asserts"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbf644ad016b75129f01a34a355dcb8d66a5bc803e417c7a77cc5d5ee9fa0f18"
+dependencies = [
+ "console",
+ "similar",
+]
+
+[[package]]
+name = "simple_asn1"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e24979f63a11545f5f2c60141afe249d4f19f84581ea2138065e400941d83d3"
+checksum = "4a762b1c38b9b990c694b9c2f8abe3372ce6a9ceaae6bca39cfc46e054f45745"
+dependencies = [
+ "num-bigint",
+ "num-traits",
+ "thiserror",
+ "time",
+]
 
 [[package]]
 name = "siphasher"
@@ -4432,136 +8261,89 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fa8f3741c7372e75519bd9346068370c9cdaabcc1f9599cbcf2a2719352286b7"
 
 [[package]]
+name = "skeptic"
+version = "0.13.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16d23b015676c90a0f01c197bfdc786c20342c73a0afdda9025adb0bc42940a8"
+dependencies = [
+ "bytecount",
+ "cargo_metadata",
+ "error-chain",
+ "glob",
+ "pulldown-cmark",
+ "tempfile",
+ "walkdir",
+]
+
+[[package]]
 name = "slab"
-version = "0.4.2"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
+checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32"
 
 [[package]]
 name = "smallvec"
-version = "1.7.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ecab6c735a6bb4139c0caafd0cc3635748bbb3acf4550e8138122099251f309"
+checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "snap"
-version = "1.0.5"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45456094d1983e2ee2a18fdfebce3189fa451699d0502cb8e3b49dba5ba41451"
+checksum = "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831"
 
 [[package]]
 name = "socket2"
-version = "0.4.0"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e3dfc207c526015c632472a77be09cf1b6e46866581aecae5cc38fb4235dea2"
+checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
 dependencies = [
  "libc",
  "winapi",
 ]
 
 [[package]]
-name = "spin"
-version = "0.5.2"
+name = "socket2"
+version = "0.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
-
-[[package]]
-name = "sql"
-version = "0.0.0"
+checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877"
 dependencies = [
- "anyhow",
- "aws-arn",
- "build-info",
- "ccsr",
- "chrono",
- "csv",
- "datadriven",
- "dataflow-types",
- "dec",
- "enum-kinds",
- "expr",
- "expr_test_util",
- "futures",
- "globset",
- "interchange",
- "itertools",
- "kafka-util",
- "lazy_static",
- "lowertest",
- "mz-avro",
- "mz-aws-util",
- "mz-protoc",
- "ore",
- "pgrepr",
- "postgres-protocol",
- "postgres-types",
- "postgres-util",
- "protobuf",
- "rdkafka",
- "regex",
- "repr",
- "reqwest",
- "serde",
- "serde_json",
- "sql-parser",
- "tempfile",
- "tokio",
- "tokio-postgres",
- "tracing",
- "uncased",
- "url",
- "uuid",
+ "libc",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
-name = "sql-parser"
-version = "0.0.0"
+name = "spin"
+version = "0.9.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
+
+[[package]]
+name = "ssh-key"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f02d3730e8785e797a4552137d1acc0d7f7146dad3b5fe65ed83637711dfc6c5"
 dependencies = [
- "anyhow",
- "datadriven",
- "enum-kinds",
- "hex",
- "itertools",
- "lazy_static",
- "ore",
- "phf",
- "phf_codegen",
- "tracing",
- "uncased",
- "unicode-width",
- "walkabout",
+ "base64ct",
+ "pem-rfc7468",
+ "rand_core",
+ "sec1",
+ "sha2",
+ "signature",
+ "zeroize",
 ]
 
 [[package]]
-name = "sqllogictest"
-version = "0.0.1"
+name = "ssh_format"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8701239872766d43b8a5f9a560ff7f002b48064fadea87f44a70507069fb482"
 dependencies = [
- "anyhow",
- "chrono",
- "clap",
- "coord",
- "expr",
- "fallible-iterator",
- "futures",
- "lazy_static",
- "materialized",
- "md-5",
- "ore",
- "pgrepr",
- "postgres-protocol",
- "regex",
- "repr",
- "serde_json",
- "sql",
- "tempfile",
- "timely",
- "tokio",
- "tokio-postgres",
- "uuid",
- "walkdir",
+ "serde",
 ]
 
 [[package]]
@@ -4572,9 +8354,9 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
 
 [[package]]
 name = "stacker"
-version = "0.1.14"
+version = "0.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90939d5171a4420b3ff5fbc8954d641e7377335454c259dcb80786f3f21dc9b4"
+checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce"
 dependencies = [
  "cc",
  "cfg-if",
@@ -4590,6 +8372,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
 
 [[package]]
+name = "str_indices"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f026164926842ec52deb1938fae44f83dfdb82d0a5b0270c5bd5935ab74d6dd"
+
+[[package]]
 name = "streaming-decompression"
 version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4599,6 +8387,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "streaming-iterator"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "303235c177994a476226b80d076bd333b7b560fb05bd242a10609d11b07f81f5"
+
+[[package]]
 name = "stringprep"
 version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4609,12 +8403,31 @@ dependencies = [
 ]
 
 [[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 = "subprocess"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c2e86926081dda636c546d8c5e641661049d7562a68f5488be4a1f7f66f6086"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
 name = "subtle"
 version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4622,21 +8435,21 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
 
 [[package]]
 name = "symbolic-common"
-version = "8.0.0"
+version = "10.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0caab39ce6f074031b8fd3dd297bfda70a2d1f33c6e7cc1b737ac401f856448d"
+checksum = "c5d7c8cd6663e22c348c74cf0b2c77d196fd252c7efe5594ae05edb07d0475da"
 dependencies = [
  "debugid",
- "memmap",
+ "memmap2",
  "stable_deref_trait",
  "uuid",
 ]
 
 [[package]]
 name = "symbolic-demangle"
-version = "8.0.0"
+version = "10.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b77ecb5460a87faa37ed53521eed8f073c8339b7a5788c1f93efc09ce74e1b68"
+checksum = "86dc78e43163d342e72c0175113cf0c6ffc6b2540163c8680c4ed91c992af9e2"
 dependencies = [
  "cpp_demangle",
  "rustc-demangle",
@@ -4645,16 +8458,33 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "1.0.85"
+version = "1.0.107"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a684ac3dcd8913827e18cd09a68384ee66c1de24157e3c556c9ab16d85695fb7"
+checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
 dependencies = [
  "proc-macro2",
  "quote",
- "unicode-xid",
+ "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 = "sync_wrapper"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20518fe4a4c9acf048008599e464deb21beeae3d3578418951a189c235a7a9a8"
+
+[[package]]
 name = "synstructure"
 version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4662,18 +8492,19 @@ checksum = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.107",
  "unicode-xid",
 ]
 
 [[package]]
 name = "sysctl"
-version = "0.4.3"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "feb3f7a32e17639e3705d2e05da40f485877cb97fdf0f3240e519e525e6cdb4d"
+checksum = "ed66d6a2ccbd656659289bc90767895b7abbdec897a0fc6031aca3ed1cb51d3e"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "byteorder",
+ "enum-as-inner",
  "libc",
  "thiserror",
  "walkdir",
@@ -4681,9 +8512,9 @@ dependencies = [
 
 [[package]]
 name = "sysinfo"
-version = "0.22.5"
+version = "0.27.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f1bfab07306a27332451a662ca9c8156e3a9986f82660ba9c8e744fe8455d43"
+checksum = "17351d0e9eb8841897b14e9669378f3c69fb57779cc04f8ca9a9d512edfb2563"
 dependencies = [
  "cfg-if",
  "core-foundation-sys",
@@ -4695,6 +8526,42 @@ dependencies = [
 ]
 
 [[package]]
+name = "tabled"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56c3ee73732ffceaea7b8f6b719ce3bb17f253fa27461ffeaf568ebd0cdb4b85"
+dependencies = [
+ "papergrid",
+ "tabled_derive",
+ "unicode-width",
+]
+
+[[package]]
+name = "tabled_derive"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "beca1b4eaceb4f2755df858b88d9b9315b7ccfd1ffd0d7a48a52602301f01a57"
+dependencies = [
+ "heck",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.107",
+]
+
+[[package]]
+name = "tagptr"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417"
+
+[[package]]
+name = "tap"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
+
+[[package]]
 name = "tar"
 version = "0.4.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4706,157 +8573,90 @@ dependencies = [
 ]
 
 [[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.2.0"
+version = "3.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22"
+checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
 dependencies = [
  "cfg-if",
- "libc",
- "rand",
- "redox_syscall",
- "remove_dir_all",
- "winapi",
+ "fastrand",
+ "redox_syscall 0.4.1",
+ "rustix 0.38.21",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "termcolor"
-version = "1.1.2"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4"
+checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
 dependencies = [
  "winapi-util",
 ]
 
 [[package]]
 name = "terminal_size"
-version = "0.1.16"
+version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86ca8ced750734db02076f44132d802af0b33b09942331f4459dde8636fd2406"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "test-util"
-version = "0.0.0"
+checksum = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237"
 dependencies = [
- "anyhow",
- "chrono",
- "kafka-util",
- "ore",
- "rand",
- "rdkafka",
- "tokio",
- "tokio-postgres",
- "tracing",
-]
-
-[[package]]
-name = "testdrive"
-version = "0.0.0"
-dependencies = [
- "assert_cmd",
- "async-compression",
- "async-trait",
- "atty",
- "aws-config",
- "aws-sdk-kinesis",
- "aws-sdk-s3",
- "aws-sdk-sqs",
- "aws-smithy-http",
- "aws-types",
- "byteorder",
- "bytes",
- "ccsr",
- "chrono",
- "clap",
- "coord",
- "flate2",
- "futures",
- "http",
- "interchange",
- "itertools",
- "kafka-util",
- "krb5-src",
- "lazy_static",
- "maplit",
- "md-5",
- "mz-avro",
- "mz-aws-util",
- "mz-protoc",
- "ore",
- "pgrepr",
- "postgres_array",
- "predicates",
- "protobuf",
- "rand",
- "rdkafka",
- "regex",
- "repr",
- "reqwest",
- "serde",
- "serde_json",
- "similar",
- "sql",
- "sql-parser",
- "tempfile",
- "termcolor",
- "tiberius",
- "tokio",
- "tokio-postgres",
- "tokio-stream",
- "tokio-util",
- "url",
- "uuid",
+ "rustix 0.37.15",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "textwrap"
-version = "0.14.2"
+version = "0.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0066c8d12af8b5acd21e00547c3797fde4e8677254a7ee429176ccebbe93dd80"
+checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
 dependencies = [
  "terminal_size",
 ]
 
 [[package]]
 name = "thiserror"
-version = "1.0.30"
+version = "1.0.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417"
+checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.30"
+version = "1.0.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b"
+checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.39",
 ]
 
 [[package]]
 name = "thread_local"
-version = "1.0.1"
+version = "1.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
+checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180"
 dependencies = [
- "lazy_static",
+ "once_cell",
 ]
 
 [[package]]
 name = "tiberius"
-version = "0.7.1"
+version = "0.11.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00035fdbcee3e791e756d1831a1b9a89e414c320d3eccdae65aba4f388216c30"
+checksum = "66303a42b7c5daffb95c10cd8f3007a9c29b3e90128cf42b3738f58102aa2516"
 dependencies = [
- "async-native-tls",
  "async-trait",
  "asynchronous-codec",
  "byteorder",
@@ -4869,7 +8669,6 @@ dependencies = [
  "futures-util",
  "num-traits",
  "once_cell",
- "opentls",
  "pin-project-lite",
  "pretty-hex",
  "thiserror",
@@ -4879,9 +8678,9 @@ dependencies = [
 
 [[package]]
 name = "tikv-jemalloc-ctl"
-version = "0.4.2"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb833c46ecbf8b6daeccb347cefcabf9c1beb5c9b0f853e1cec45632d9963e69"
+checksum = "e37706572f4b151dff7a0146e040804e9c26fe3a3118591112f05cf12a4216c1"
 dependencies = [
  "libc",
  "paste",
@@ -4890,9 +8689,9 @@ dependencies = [
 
 [[package]]
 name = "tikv-jemalloc-sys"
-version = "0.4.2+5.2.1-patched.2"
+version = "0.5.2+5.3.0-patched"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5844e429d797c62945a566f8da4e24c7fe3fbd5d6617fd8bf7a0b7dc1ee0f22e"
+checksum = "ec45c14da997d0925c7835883e4d5c181f196fa142f8c19d7643d1e9af2592c3"
 dependencies = [
  "cc",
  "fs_extra",
@@ -4901,9 +8700,9 @@ dependencies = [
 
 [[package]]
 name = "tikv-jemallocator"
-version = "0.4.1"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c14a5a604eb8715bc5785018a37d00739b180bcf609916ddf4393d33d49ccdf"
+checksum = "20612db8a13a6c06d57ec83953694185a367e16945f66565e8028d2c0bd76979"
 dependencies = [
  "libc",
  "tikv-jemalloc-sys",
@@ -4911,17 +8710,36 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.3.5"
+version = "0.3.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41effe7cfa8af36f439fac33861b66b049edc6f9a32331e2312660529c1c24ad"
+checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376"
 dependencies = [
- "libc",
+ "itoa",
+ "quickcheck",
+ "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 = "timely"
 version = "0.12.0"
-source = "git+https://github.com/TimelyDataflow/timely-dataflow#1f09f660120d69f0c2534d04671b5f9d79162a39"
+source = "git+https://github.com/MaterializeInc/timely-dataflow.git#de20aa88cc6df3de910e9befbe68408d31e287be"
 dependencies = [
  "abomonation",
  "abomonation_derive",
@@ -4932,27 +8750,19 @@ dependencies = [
  "serde_derive",
  "timely_bytes",
  "timely_communication",
+ "timely_container",
  "timely_logging",
 ]
 
 [[package]]
-name = "timely-util"
-version = "0.0.0"
-dependencies = [
- "futures-util",
- "timely",
- "tokio",
-]
-
-[[package]]
 name = "timely_bytes"
 version = "0.12.0"
-source = "git+https://github.com/TimelyDataflow/timely-dataflow#1f09f660120d69f0c2534d04671b5f9d79162a39"
+source = "git+https://github.com/MaterializeInc/timely-dataflow.git#de20aa88cc6df3de910e9befbe68408d31e287be"
 
 [[package]]
 name = "timely_communication"
 version = "0.12.0"
-source = "git+https://github.com/TimelyDataflow/timely-dataflow#1f09f660120d69f0c2534d04671b5f9d79162a39"
+source = "git+https://github.com/MaterializeInc/timely-dataflow.git#de20aa88cc6df3de910e9befbe68408d31e287be"
 dependencies = [
  "abomonation",
  "abomonation_derive",
@@ -4966,9 +8776,27 @@ dependencies = [
 ]
 
 [[package]]
+name = "timely_container"
+version = "0.12.0"
+source = "git+https://github.com/MaterializeInc/timely-dataflow.git#de20aa88cc6df3de910e9befbe68408d31e287be"
+dependencies = [
+ "columnation",
+ "serde",
+]
+
+[[package]]
 name = "timely_logging"
 version = "0.12.0"
-source = "git+https://github.com/TimelyDataflow/timely-dataflow#1f09f660120d69f0c2534d04671b5f9d79162a39"
+source = "git+https://github.com/MaterializeInc/timely-dataflow.git#de20aa88cc6df3de910e9befbe68408d31e287be"
+
+[[package]]
+name = "tiny-keccak"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
+dependencies = [
+ "crunchy",
+]
 
 [[package]]
 name = "tinytemplate"
@@ -4981,33 +8809,80 @@ dependencies = [
 ]
 
 [[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
+
+[[package]]
 name = "tokio"
-version = "1.15.0"
+version = "1.32.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbbf1c778ec206785635ce8ad57fe52b3009ae9e0c9f574a728f3049d3e55838"
+checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9"
 dependencies = [
+ "backtrace",
  "bytes",
  "libc",
- "memchr",
  "mio",
  "num_cpus",
- "once_cell",
  "parking_lot",
  "pin-project-lite",
  "signal-hook-registry",
+ "socket2 0.5.3",
  "tokio-macros",
- "winapi",
+ "tracing",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "tokio-io-timeout"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90c49f106be240de154571dd31fbe48acb10ba6c6dd6f6517ad603abffa42de9"
+dependencies = [
+ "pin-project-lite",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-io-utility"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d672654d175710e52c7c41f6aec77c62b3c0954e2a7ebce9049d1e94ed7c263"
+dependencies = [
+ "tokio",
 ]
 
 [[package]]
 name = "tokio-macros"
-version = "1.7.0"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7"
+checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "tokio-metrics"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4b2fc67d5dec41db679b9b052eb572269616926040b7831e32c8a152df77b84"
+dependencies = [
+ "futures-util",
+ "pin-project-lite",
+ "tokio",
+ "tokio-stream",
 ]
 
 [[package]]
@@ -5033,15 +8908,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "tokio-pipe"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f213a84bffbd61b8fa0ba8a044b4bbe35d471d0b518867181e82bd5c15542784"
+dependencies = [
+ "libc",
+ "tokio",
+]
+
+[[package]]
 name = "tokio-postgres"
-version = "0.7.2"
-source = "git+https://github.com/MaterializeInc/rust-postgres?branch=mz-0.7.2#4320cb7a1fedb1b6157f0dec51f84f4c990f4d98"
+version = "0.7.8"
+source = "git+https://github.com/MaterializeInc/rust-postgres#b759caa33610403aa74b1cfdd37f45eb3100c9af"
 dependencies = [
  "async-trait",
  "byteorder",
  "bytes",
  "fallible-iterator",
- "futures",
+ "futures-channel",
+ "futures-util",
  "log",
  "parking_lot",
  "percent-encoding",
@@ -5049,72 +8935,173 @@ dependencies = [
  "pin-project-lite",
  "postgres-protocol",
  "postgres-types",
- "socket2",
+ "serde",
+ "socket2 0.5.3",
  "tokio",
  "tokio-util",
 ]
 
 [[package]]
-name = "tokio-serde"
-version = "0.8.0"
+name = "tokio-stream"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "911a61637386b789af998ee23f50aa30d5fd7edcec8d6d3dedae5e5815205466"
+checksum = "d660770404473ccd7bc9f8b28494a811bc18542b915c0855c51e8f419d5223ce"
 dependencies = [
- "bincode",
- "bytes",
- "educe",
  "futures-core",
- "futures-sink",
- "pin-project",
- "serde",
+ "pin-project-lite",
+ "tokio",
+ "tokio-util",
 ]
 
 [[package]]
-name = "tokio-stream"
-version = "0.1.8"
+name = "tokio-test"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50145484efff8818b5ccd256697f36863f587da82cf8b409c53adf1e840798e3"
+checksum = "53474327ae5e166530d17f2d956afcb4f8a004de581b3cae10f12006bc8163e3"
 dependencies = [
+ "async-stream",
+ "bytes",
  "futures-core",
- "pin-project-lite",
  "tokio",
+ "tokio-stream",
+]
+
+[[package]]
+name = "tokio-tungstenite"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b2dbec703c26b00d74844519606ef15d09a7d6857860f84ad223dec002ddea2"
+dependencies = [
+ "futures-util",
+ "log",
+ "tokio",
+ "tungstenite",
 ]
 
 [[package]]
 name = "tokio-util"
-version = "0.6.9"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0"
+checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740"
 dependencies = [
  "bytes",
  "futures-core",
  "futures-io",
  "futures-sink",
- "log",
  "pin-project-lite",
+ "slab",
  "tokio",
+ "tracing",
 ]
 
 [[package]]
 name = "toml"
-version = "0.5.8"
+version = "0.5.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa"
+checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7"
 dependencies = [
  "serde",
 ]
 
 [[package]]
+name = "toml_datetime"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.19.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a"
+dependencies = [
+ "indexmap 2.0.0",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "tonic"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a"
+dependencies = [
+ "async-trait",
+ "axum",
+ "base64 0.21.5",
+ "bytes",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "hyper",
+ "hyper-timeout",
+ "percent-encoding",
+ "pin-project",
+ "prost",
+ "tokio",
+ "tokio-stream",
+ "tower",
+ "tower-layer",
+ "tower-service",
+ "tracing",
+]
+
+[[package]]
+name = "tonic-build"
+version = "0.9.2"
+source = "git+https://github.com/MaterializeInc/tonic?rev=0d86e360ab45779770ca150c8487fe7940c299a9#0d86e360ab45779770ca150c8487fe7940c299a9"
+dependencies = [
+ "prettyplease 0.1.25",
+ "proc-macro2",
+ "prost-build",
+ "quote",
+ "syn 1.0.107",
+]
+
+[[package]]
 name = "tower"
-version = "0.4.10"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c00e500fff5fa1131c866b246041a6bf96da9c965f8fe4128cb1421f23e93c00"
+checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c"
 dependencies = [
  "futures-core",
  "futures-util",
+ "indexmap 1.9.1",
  "pin-project",
  "pin-project-lite",
+ "rand",
+ "slab",
  "tokio",
+ "tokio-util",
+ "tower-layer",
+ "tower-service",
+ "tracing",
+]
+
+[[package]]
+name = "tower-http"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55ae70283aba8d2a8b411c695c437fe25b8b5e44e23e780662002fc72fb47a82"
+dependencies = [
+ "base64 0.21.5",
+ "bitflags 2.4.1",
+ "bytes",
+ "futures-core",
+ "futures-util",
+ "http",
+ "http-body",
+ "http-range-header",
+ "mime",
+ "pin-project-lite",
+ "tower",
  "tower-layer",
  "tower-service",
  "tracing",
@@ -5122,21 +9109,55 @@ dependencies = [
 
 [[package]]
 name = "tower-layer"
-version = "0.3.1"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0"
+
+[[package]]
+name = "tower-lsp"
+version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "343bc9466d3fe6b0f960ef45960509f84480bf4fd96f92901afe7ff3df9d3a62"
+checksum = "d4ba052b54a6627628d9b3c34c176e7eda8359b7da9acd497b9f20998d118508"
+dependencies = [
+ "async-trait",
+ "auto_impl",
+ "bytes",
+ "dashmap",
+ "futures",
+ "httparse",
+ "lsp-types",
+ "memchr",
+ "serde",
+ "serde_json",
+ "tokio",
+ "tokio-util",
+ "tower",
+ "tower-lsp-macros",
+ "tracing",
+]
+
+[[package]]
+name = "tower-lsp-macros"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "84fd902d4e0b9a4b27f2f440108dc034e1758628a9b702f8ec61ad66355422fa"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
 
 [[package]]
 name = "tower-service"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860"
+checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6"
 
 [[package]]
 name = "tracing"
-version = "0.1.29"
+version = "0.1.37"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105"
+checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
 dependencies = [
  "cfg-if",
  "log",
@@ -5147,68 +9168,90 @@ dependencies = [
 
 [[package]]
 name = "tracing-attributes"
-version = "0.1.18"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4f480b8f81512e825f337ad51e94c1eb5d3bbdf2b363dcd01e2b19a9ffe3f8e"
+checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.107",
 ]
 
 [[package]]
 name = "tracing-core"
-version = "0.1.21"
+version = "0.1.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f4ed65637b8390770814083d20756f87bfa2c21bf2f110babdc5438351746e4"
+checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a"
 dependencies = [
- "lazy_static",
+ "once_cell",
+ "valuable",
 ]
 
 [[package]]
 name = "tracing-log"
-version = "0.1.2"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a6923477a48e41c1951f1999ef8bb5a3023eb723ceadafe78ffb65dc366761e3"
+checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
 dependencies = [
- "lazy_static",
  "log",
+ "once_cell",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-opentelemetry"
+version = "0.22.0"
+source = "git+https://github.com/MaterializeInc/tracing-opentelemetry.git#7035e641b683985cc3b8630f3b61d53c96f83695"
+dependencies = [
+ "js-sys",
+ "once_cell",
+ "opentelemetry",
+ "opentelemetry_sdk",
+ "smallvec",
+ "tracing",
+ "tracing-core",
+ "tracing-log",
+ "tracing-subscriber",
+ "web-time",
+]
+
+[[package]]
+name = "tracing-serde"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1"
+dependencies = [
+ "serde",
  "tracing-core",
 ]
 
 [[package]]
 name = "tracing-subscriber"
-version = "0.3.5"
+version = "0.3.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d81bfa81424cc98cb034b837c985b7a290f592e5b4322f353f94a0ab0f9f594"
+checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
 dependencies = [
- "ansi_term",
- "lazy_static",
  "matchers",
+ "nu-ansi-term",
+ "once_cell",
  "regex",
+ "serde",
+ "serde_json",
  "sharded-slab",
  "smallvec",
  "thread_local",
  "tracing",
  "tracing-core",
  "tracing-log",
+ "tracing-serde",
 ]
 
 [[package]]
-name = "transform"
-version = "0.0.0"
+name = "treediff"
+version = "4.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52984d277bdf2a751072b5df30ec0377febdb02f7696d64c2d7d54630bac4303"
 dependencies = [
- "anyhow",
- "datadriven",
- "dataflow-types",
- "differential-dataflow",
- "expr",
- "expr_test_util",
- "itertools",
- "lowertest",
- "ore",
- "proc-macro2",
- "repr",
  "serde_json",
 ]
 
@@ -5219,22 +9262,84 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41"
 
 [[package]]
+name = "triomphe"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1ee9bd9239c339d714d657fac840c6d2a4f9c45f4f9ec7b0975113458be78db"
+
+[[package]]
 name = "try-lock"
 version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382"
 
 [[package]]
+name = "tungstenite"
+version = "0.20.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9"
+dependencies = [
+ "byteorder",
+ "bytes",
+ "data-encoding",
+ "http",
+ "httparse",
+ "log",
+ "rand",
+ "sha1",
+ "thiserror",
+ "url",
+ "utf-8",
+]
+
+[[package]]
+name = "twox-hash"
+version = "1.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ee73e6e4924fe940354b8d4d98cad5231175d615cd855b758adc658c0aac6a0"
+dependencies = [
+ "cfg-if",
+ "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 = "typed-builder"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89851716b67b937e393b3daa8423e67ddfc4bbbf1654bcf05488e95e0828db0c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.107",
+]
+
+[[package]]
 name = "typenum"
-version = "1.12.0"
+version = "1.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33"
+checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
+
+[[package]]
+name = "uname"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b72f89f0ca32e4db1c04e2a72f5345d59796d4866a1ee0609084569f73683dc8"
+dependencies = [
+ "libc",
+]
 
 [[package]]
 name = "uncased"
-version = "0.9.6"
+version = "0.9.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5baeed7327e25054889b9bd4f975f32e5f4c5d434042d59ab6cd4142c0a76ed0"
+checksum = "09b01702b0fd0b3fadcf98e098780badda8742d4f4a7676615cad90e8ac73622"
 dependencies = [
  "version_check",
 ]
@@ -5258,77 +9363,112 @@ dependencies = [
 ]
 
 [[package]]
+name = "unicode-ident"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d22af068fba1eb5edcb4aea19d382b2a3deb4c8f9d475c589b6ada9e0fd493ee"
+
+[[package]]
 name = "unicode-normalization"
-version = "0.1.12"
+version = "0.1.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5479532badd04e128284890390c1e876ef7a993d0570b3597ae43dfa1d59afa4"
+checksum = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6"
 dependencies = [
- "smallvec",
+ "tinyvec",
 ]
 
 [[package]]
 name = "unicode-segmentation"
-version = "1.6.0"
+version = "1.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
+checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
 
 [[package]]
 name = "unicode-width"
-version = "0.1.9"
+version = "0.1.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
+checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
 
 [[package]]
 name = "unicode-xid"
-version = "0.2.0"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
+checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
+
+[[package]]
+name = "unsafe-libyaml"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa"
 
 [[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 = "uritemplate-next"
-version = "0.2.0"
+name = "ureq"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcde98d1fc3f528255b1ecb22fb688ee0d23deb672a8c57127df10b98b4bd18c"
+checksum = "b97acb4c28a254fd7a4aeec976c46a7fa404eac4d7c134b30c75144846d7cb8f"
 dependencies = [
- "regex",
+ "base64 0.13.1",
+ "chunked_transfer",
+ "log",
+ "native-tls",
+ "once_cell",
+ "url",
 ]
 
 [[package]]
 name = "url"
-version = "2.2.2"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c"
+checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
 dependencies = [
  "form_urlencoded",
  "idna",
- "matches",
  "percent-encoding",
  "serde",
 ]
 
 [[package]]
 name = "urlencoding"
-version = "1.3.3"
+version = "2.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8db7427f936968176eaa7cdf81b7f98b980b18495ec28f1b5791ac3bfe3eea9"
+
+[[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 = "5a1f0175e03a0973cf4afd476bef05c26e228520400eb1fd473ad417b1c00ffb"
+checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
 name = "uuid"
-version = "0.8.2"
+version = "1.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
+checksum = "422ee0de9031b5b948b97a8fc04e3aa35230001a722ddd27943e0be31564ce4c"
 dependencies = [
  "getrandom",
  "serde",
+ "sha1_smol",
 ]
 
 [[package]]
+name = "valuable"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+
+[[package]]
 name = "vcpkg"
 version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5336,31 +9476,43 @@ checksum = "3fc439f2794e98976c88a2a2dafce96b930fe8010b0a256b3c2199a773933168"
 
 [[package]]
 name = "version_check"
-version = "0.9.2"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[package]]
-name = "wait-timeout"
-version = "0.2.0"
+name = "vsimd"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
+checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64"
+
+[[package]]
+name = "vte"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f5022b5fbf9407086c180e9557be968742d839e68346af7792b8592489732197"
 dependencies = [
- "libc",
+ "utf8parse",
+ "vte_generate_state_changes",
 ]
 
 [[package]]
-name = "walkabout"
-version = "0.0.0"
+name = "vte_generate_state_changes"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff"
 dependencies = [
- "anyhow",
- "datadriven",
- "fstrings",
- "itertools",
- "ore",
+ "proc-macro2",
  "quote",
- "syn",
- "tempfile",
+]
+
+[[package]]
+name = "wait-timeout"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
+dependencies = [
+ "libc",
 ]
 
 [[package]]
@@ -5386,15 +9538,15 @@ dependencies = [
 
 [[package]]
 name = "wasi"
-version = "0.10.0+wasi-snapshot-preview1"
+version = "0.11.0+wasi-snapshot-preview1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.74"
+version = "0.2.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d54ee1d4ed486f78874278e63e4069fc1ab9f6a18ca492076ffb90c5eb2997fd"
+checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -5402,16 +9554,16 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.74"
+version = "0.2.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b33f6a0694ccfea53d94db8b2ed1c3a8a4c86dd936b13b9f0a15ec4a451b900"
+checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
 dependencies = [
  "bumpalo",
- "lazy_static",
  "log",
+ "once_cell",
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.39",
  "wasm-bindgen-shared",
 ]
 
@@ -5429,9 +9581,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.74"
+version = "0.2.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "088169ca61430fe1e58b8096c24975251700e7b1f6fd91cc9d59b04fb9b18bd4"
+checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -5439,22 +9591,22 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.74"
+version = "0.2.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be2241542ff3d9f241f5e2cb6dd09b37efe786df8851c54957683a49f0987a97"
+checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.39",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.74"
+version = "0.2.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7cff876b8f18eed75a66cf49b65e7f967cb354a7aa16003fb55dbfd25b44b4f"
+checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
 
 [[package]]
 name = "web-sys"
@@ -5467,6 +9619,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "web-time"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa30049b1c872b72c89866d458eae9f20380ab280ffd1b1e18df2d3e2d98cfe0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
 name = "which"
 version = "4.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5509,15 +9671,291 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
+name = "windows"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+dependencies = [
+ "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-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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
+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",
+]
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+
+[[package]]
+name = "winnow"
+version = "0.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acaaa1190073b2b101e15083c38ee8ec891b5e05cbee516521e94ec008f61e64"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
 name = "winreg"
-version = "0.7.0"
+version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69"
+checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d"
 dependencies = [
  "winapi",
 ]
 
 [[package]]
+name = "workspace-hack"
+version = "0.0.0"
+dependencies = [
+ "ahash",
+ "anyhow",
+ "async-compression",
+ "aws-config",
+ "aws-credential-types",
+ "aws-runtime",
+ "aws-sdk-sts",
+ "aws-sigv4",
+ "aws-smithy-async",
+ "aws-smithy-http",
+ "aws-smithy-runtime",
+ "aws-smithy-runtime-api",
+ "aws-smithy-types",
+ "axum",
+ "bitflags 2.4.1",
+ "bstr 0.2.14",
+ "byteorder",
+ "bytes",
+ "cc",
+ "chrono",
+ "clap",
+ "console",
+ "criterion",
+ "crossbeam-deque",
+ "crossbeam-epoch",
+ "crossbeam-utils",
+ "crypto-common",
+ "debugid",
+ "dec",
+ "digest",
+ "either",
+ "flate2",
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-io",
+ "futures-sink",
+ "futures-task",
+ "futures-util",
+ "globset",
+ "hashbrown 0.14.0",
+ "hyper",
+ "indexmap 1.9.1",
+ "itertools",
+ "k8s-openapi",
+ "kube",
+ "kube-client",
+ "kube-core",
+ "libc",
+ "libz-sys",
+ "log",
+ "memchr",
+ "mime_guess",
+ "mio",
+ "mysql_async",
+ "mysql_common",
+ "native-tls",
+ "nix",
+ "nom",
+ "num-bigint",
+ "num-integer",
+ "num-traits",
+ "once_cell",
+ "openssl",
+ "openssl-sys",
+ "ordered-float",
+ "parking_lot",
+ "phf",
+ "phf_shared",
+ "postgres",
+ "postgres-types",
+ "predicates",
+ "proc-macro2",
+ "prost",
+ "prost-reflect",
+ "prost-types",
+ "quote",
+ "rand",
+ "rand_chacha",
+ "rdkafka-sys",
+ "regex",
+ "regex-syntax",
+ "reqwest",
+ "ring",
+ "schemars",
+ "scopeguard",
+ "security-framework",
+ "semver",
+ "serde",
+ "serde_json",
+ "sha2",
+ "similar",
+ "smallvec",
+ "socket2 0.5.3",
+ "subtle",
+ "syn 1.0.107",
+ "syn 2.0.39",
+ "textwrap",
+ "tikv-jemalloc-sys",
+ "time",
+ "time-macros",
+ "timely",
+ "timely_communication",
+ "tokio",
+ "tokio-postgres",
+ "tokio-stream",
+ "tokio-util",
+ "toml_datetime",
+ "toml_edit",
+ "tower",
+ "tower-http",
+ "tracing",
+ "tracing-core",
+ "tracing-subscriber",
+ "tungstenite",
+ "uncased",
+ "url",
+ "uuid",
+ "zeroize",
+ "zstd-sys",
+]
+
+[[package]]
+name = "wyz"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed"
+dependencies = [
+ "tap",
+]
+
+[[package]]
 name = "xattr"
 version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5528,34 +9966,77 @@ dependencies = [
 
 [[package]]
 name = "xmlparser"
-version = "0.13.3"
+version = "0.13.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d25c75bf9ea12c4040a97f829154768bbbce366287e2dc044af160cd79a13fd"
+
+[[package]]
+name = "yaml-rust"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
+dependencies = [
+ "linked-hash-map",
+]
+
+[[package]]
+name = "yansi"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "114ba2b24d2167ef6d67d7d04c8cc86522b87f490025f39f0303b7db5bf5e3d8"
+checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
 
 [[package]]
 name = "zeroize"
-version = "1.4.2"
+version = "1.5.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf68b08513768deaa790264a7fac27a58cbf2705cfcdc9448362229217d7e970"
+checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f"
+dependencies = [
+ "serde",
+]
 
 [[package]]
-name = "zip"
-version = "0.5.13"
+name = "zstd"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93ab48844d61251bb3835145c521d88aa4031d7139e8485990f60ca911fa0815"
+checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c"
 dependencies = [
- "byteorder",
- "crc32fast",
- "flate2",
- "thiserror",
+ "zstd-safe 6.0.6",
+]
+
+[[package]]
+name = "zstd"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bffb3309596d527cfcba7dfc6ed6052f1d39dfbd7c867aa2e865e4a449c10110"
+dependencies = [
+ "zstd-safe 7.0.0",
+]
+
+[[package]]
+name = "zstd-safe"
+version = "6.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581"
+dependencies = [
+ "libc",
+ "zstd-sys",
+]
+
+[[package]]
+name = "zstd-safe"
+version = "7.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43747c7422e2924c11144d5229878b98180ef8b06cca4ab5af37afc8a8d8ea3e"
+dependencies = [
+ "zstd-sys",
 ]
 
 [[package]]
 name = "zstd-sys"
-version = "1.6.1+zstd.1.5.0"
+version = "2.0.9+zstd.1.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "615120c7a2431d16cf1cf979e7fc31ba7a5b5e5707b29c8a99e5dbf8a8392a33"
+checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656"
 dependencies = [
  "cc",
- "libc",
+ "pkg-config",
 ]
diff --git a/pkgs/servers/sql/materialize/default.nix b/pkgs/servers/sql/materialize/default.nix
index 5c39af8c1ce5..90297cfa81ae 100644
--- a/pkgs/servers/sql/materialize/default.nix
+++ b/pkgs/servers/sql/materialize/default.nix
@@ -10,7 +10,11 @@
 , libiconv
 , openssl
 , perl
-, pkg-config}:
+, pkg-config
+, protobuf
+, libclang
+, rdkafka
+}:
 
 let
   fetchNpmPackage = {name, version, hash, js_prod_file, js_dev_file, ...} @ args:
@@ -20,16 +24,19 @@ let
       inherit hash;
     };
 
-    static = "./src/materialized/src/http/static";
-    cssVendor = "./src/materialized/src/http/static/css/vendor";
-    jsProdVendor = "./src/materialized/src/http/static/js/vendor";
-    jsDevVendor = "./src/materialized/src/http/static-dev/js/vendor";
-
     files = with args; [
-      { src = js_prod_file; dst = "${jsProdVendor}/${name}.js"; }
-      { src = js_dev_file;  dst = "${jsDevVendor}/${name}.js"; }
-    ] ++ lib.optional (args ? css_file) { src = css_file; dst = "${cssVendor}/${name}.css"; }
-      ++ lib.optional (args ? extra_file) { src = extra_file.src; dst = "${static}/${extra_file.dst}"; };
+      { src = js_prod_file; dst = "./src/environmentd/src/http/static/js/vendor/${name}.js"; }
+      { src = js_prod_file; dst = "./src/prof-http/src/http/static/js/vendor/${name}.js"; }
+      { src = js_dev_file;  dst = "./src/environmentd/src/http/static-dev/js/vendor/${name}.js"; }
+      { src = js_dev_file;  dst = "./src/prof-http/src/http/static-dev/js/vendor/${name}.js"; }
+    ] ++ lib.optionals (args ? css_file) [
+     { src = css_file; dst = "./src/environmentd/src/http/static/css/vendor/${name}.css"; }
+     { src = css_file; dst = "./src/prof-http/src/http/static/css/vendor/${name}.css"; }
+    ]
+      ++ lib.optionals (args ? extra_file) [
+      { src = extra_file.src; dst = "./src/environmentd/src/http/static/${extra_file.dst}";}
+      { src = extra_file.src; dst = "./src/prof-http/src/http/static/${extra_file.dst}";}
+    ];
   in
     lib.concatStringsSep "\n" (lib.forEach files ({src, dst}: ''
       mkdir -p "${dirOf dst}"
@@ -40,44 +47,73 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "materialize";
-  version = "0.17.0";
+  version = "0.84.2";
   MZ_DEV_BUILD_SHA = "9f8cf75b461d288335cb6a7a73aaa670bab4a466";
 
   src = fetchFromGitHub {
     owner = "MaterializeInc";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-wKYU5S77VoOX7UA9/d21Puz9NYs/om08eNM69/m3Orc=";
+    hash = "sha256-+cvTCiTbuaPYPIyDxQlMWdJA5/6cbMoiTcSmjj5KPjs=";
+    fetchSubmodules = true;
   };
 
+  postPatch = ''
+    ${lib.concatStringsSep "\n" (map fetchNpmPackage npmPackages)}
+    substituteInPlace ./misc/dist/materialized.service \
+      --replace /usr/bin $out/bin \
+      --replace _Materialize root
+    substituteInPlace ./src/catalog/build.rs \
+      --replace '&[ ' '&["."'
+  '';
+
+  # needed for internal protobuf c wrapper library
+  env.PROTOC = "${protobuf}/bin/protoc";
+  env.PROTOC_INCLUDE = "${protobuf}/include";
+  env.LIBCLANG_PATH = "${libclang.lib}/lib";
+  # needed to dynamically link rdkafka
+  env.CARGO_FEATURE_DYNAMIC_LINKING=1;
+
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "criterion-0.3.5" = "sha256-gXhwLw99kC08zxHdY6l5LF5EVzAAFasI4GLnopLwhEU=";
-      "differential-dataflow-0.12.0" = "sha256-sDy4502XqCuXqRtwLWuaHSgfX7v9NNochhfpI6n8DrM=";
-      "headers-0.3.5" = "sha256-ipxMfuPgoeH2uR4Im/XBdnxT00+LGzTgW7Ed2armYOU=";
-      "mzcloud-1.0.0" = "sha256-Nt9YCG+DFCCOMbKaNhOD78WF/z3qB5ymUIp6Wep2A9A=";
-      "parquet-format-async-temp-0.2.0" = "sha256-UUQv/90egmwQK0CZCztinEskvWcZ40rKWbJoWYz2oLQ=";
-      "postgres-0.19.1" = "sha256-zH7PF4p7wJCSYpuydTL3HPcOjPU9SlTy6IJREOe2l7U=";
-      "postgres_array-0.11.0" = "sha256-M1nMsQfxK0ay4JxoPqm2cl4Cp8mVZlVUAfWDhhv9nA4=";
-      "prometheus-0.10.0" = "sha256-NTnKt1RGiZ8AxsU8UzhLhpfEi24Pos5kR9g22Mmt444=";
-      "protobuf-3.0.0-alpha.2" = "sha256-8gBGQqAtKJelcBCxnDESanlblBLQ1Th7khHxUkDw7To=";
-      "pubnub-core-0.1.0" = "sha256-YuGEFaStfrhb0ygjVFm2a2eJla9ABc5ifXKuvJxUvgk=";
-      "rdkafka-0.28.0" = "sha256-u2gBTzu+IvXTDvcZGzPaVpSVOgAKhTth7GLwob4urDs=";
-      "timely-0.12.0" = "sha256-PHaDRNm7MezXJWhILWJHTeiCWO3iLUp94Z0V2dreCMk=";
+      "columnation-0.1.0" = "sha256-VRDQqIVLayEnMHeth4cjsS/FYah3B3mwYEGnv8jpKs8=";
+      "differential-dataflow-0.12.0" = "sha256-cEmtDXOZSy4rDFZ7gCd7lx6wH+m1S9vphjb+wO4MSAM=";
+      "eventsource-client-0.11.0" = "sha256-FeEWV2yy1et5mna0TyAnakXlcIR42Aq97Lfjjlom8T0=";
+      "launchdarkly-server-sdk-1.0.0" = "sha256-fSWiV9mNf5WBkWDNckiUR3URQ8lJ4GZURxbYO/753sU=";
+      "librocksdb-sys-0.11.0+8.3.2" = "sha256-bnAvH2z9n26MYFhTN/+Yz+7lEdNKKmHJOoHkxTdZGvw=";
+      "openssh-0.9.9" = "sha256-2jaQN6PhavUtlWwqCn2VXEg213uj7BQ+FIrhnL3rb8Q=";
+      "postgres-0.19.5" = "sha256-i0mURHTCMrgaW1DD1CihWMdZ3zoNI14dCpq/ja8RW9E=";
+      "postgres_array-0.11.0" = "sha256-ealgPVExRIFUt0QVao8H7Q7u/PTuCbpGrk6Tm5jVwZ0=";
+      "proptest-1.0.0" = "sha256-sJbPQIVeHZZiRXssRpJWRbD9l8QnfwVcpGu6knjAe5o=";
+      "rdkafka-0.29.0" = "sha256-48CMvJ4PoVfKyiNMSpCGBtj36j2CF1E8a/QQ/urfiPc=";
+      "reqwest-middleware-0.2.3" = "sha256-zzlQycH5dmgM8ew1gy8m5r6Q2ib7LXnUeX69M3ih+sY=";
+      "serde-value-0.7.0" = "sha256-ewEYsf1+9MmLuSm5KbO326ngGB79i00lAp2NMHuuxw8=";
+      "timely-0.12.0" = "sha256-wJtHJ9ygPVusN5Io8SjZGo1r7lcrrcauESSC+9038AU=";
+      "tonic-build-0.9.2" = "sha256-cGvHjgmdr3NU1phwUfMvEE6uU12fOlhTlL2LoWeOO4I=";
+      "tracing-opentelemetry-0.22.0" = "sha256-mawDGrue/e3dPYVG0ANs9nZ+xmQyd1YTWH8QmE6VD0U=";
     };
   };
 
-  nativeBuildInputs = [ cmake perl pkg-config ]
+  nativeBuildInputs = [
+    cmake
+    perl
+    pkg-config
+    rustPlatform.bindgenHook
+  ]
     # Provides the mig command used by the krb5-src build script
     ++ lib.optional stdenv.isDarwin bootstrap_cmds;
 
   # Needed to get openssl-sys to use pkg-config.
   OPENSSL_NO_VENDOR = 1;
 
-  buildInputs = [ openssl ]
+  buildInputs = [ openssl rdkafka libclang ]
     ++ lib.optionals stdenv.isDarwin [ libiconv DiskArbitration Foundation ];
 
+  # the check phase requires linking with rocksdb which can be a problem since
+  # the rust rocksdb crate is not updated very often.
+  doCheck = false;
+
   # Skip tests that use the network
   checkFlags = [
     "--exact"
@@ -90,14 +126,7 @@ rustPlatform.buildRustPackage rec {
     "--skip test_tls"
   ];
 
-  postPatch = ''
-    ${lib.concatStringsSep "\n" (map fetchNpmPackage npmPackages)}
-    substituteInPlace ./misc/dist/materialized.service \
-      --replace /usr/bin $out/bin \
-      --replace _Materialize root
-  '';
-
-  cargoBuildFlags = [ "--bin materialized" ];
+  cargoBuildFlags = [ "--bin environmentd --bin clusterd" ];
 
   postInstall = ''
     install --mode=444 -D ./misc/dist/materialized.service $out/etc/systemd/system/materialized.service
diff --git a/pkgs/servers/sql/materialize/npm_deps.nix b/pkgs/servers/sql/materialize/npm_deps.nix
index a0fccb971c02..d7b500e202ea 100644
--- a/pkgs/servers/sql/materialize/npm_deps.nix
+++ b/pkgs/servers/sql/materialize/npm_deps.nix
@@ -3,7 +3,7 @@
 # files.
 #
 # The list of modules can be found in this file
-# https://github.com/MaterializeInc/materialize/blob/master/src/materialized/build/npm.rs
+# https://github.com/MaterializeInc/materialize/blob/master/src/npm/lib.rs
 [
   {
     name = "@hpcc-js/wasm";
@@ -17,9 +17,9 @@
     };
   }
   {
-    name = "babel-standalone";
-    version = "6.26.0";
-    hash = "sha256-zdeTj4aOEzWvrnh90T80jL+RD8qg8PaeG0Ceua82Dz4=";
+    name = "@babel/standalone";
+    version = "7.23.3";
+    hash = "sha256-yxhB4OVOdV8hYNPqcap+5/JXYeaVrNGOSOG8lKpiG9E=";
     js_prod_file = "babel.min.js";
     js_dev_file = "babel.js";
   }
diff --git a/pkgs/servers/sql/mysql/8.0.x.nix b/pkgs/servers/sql/mysql/8.0.x.nix
index e136f02757d9..521e748198a3 100644
--- a/pkgs/servers/sql/mysql/8.0.x.nix
+++ b/pkgs/servers/sql/mysql/8.0.x.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "mysql";
-  version = "8.0.35";
+  version = "8.0.36";
 
   src = fetchurl {
     url = "https://dev.mysql.com/get/Downloads/MySQL-${lib.versions.majorMinor finalAttrs.version}/mysql-${finalAttrs.version}.tar.gz";
-    hash = "sha256-kXxe04cE6ZIRGFzkviTjOowZyRJB7XOvQYGm840VdMI=";
+    hash = "sha256-9PJwa5WKinOA72yVjdlyMHvb7qRR76/DQuTEbim36d0=";
   };
 
   nativeBuildInputs = [ bison cmake pkg-config ]
diff --git a/pkgs/servers/sql/pgbouncer/default.nix b/pkgs/servers/sql/pgbouncer/default.nix
index dd47de907576..71afc98562af 100644
--- a/pkgs/servers/sql/pgbouncer/default.nix
+++ b/pkgs/servers/sql/pgbouncer/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pgbouncer";
-  version = "1.21.0";
+  version = "1.22.0";
 
   src = fetchurl {
     url = "https://www.pgbouncer.org/downloads/files/${version}/${pname}-${version}.tar.gz";
-    hash = "sha256-fh3WIMjYWoSQr/JQYdUFXXrvnPPov+LZ53GbjuWRFOI=";
+    hash = "sha256-xu43qNfdvrv4RC2PCOwHw9pGr7Kq45ZziMFIFpineFg=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/servers/sql/postgresql/ext/citus.nix b/pkgs/servers/sql/postgresql/ext/citus.nix
new file mode 100644
index 000000000000..3b6d58030c15
--- /dev/null
+++ b/pkgs/servers/sql/postgresql/ext/citus.nix
@@ -0,0 +1,52 @@
+{ lib
+, stdenv
+, curl
+, fetchFromGitHub
+, lz4
+, postgresql
+}:
+
+stdenv.mkDerivation rec {
+  pname = "citus";
+  version = "12.1.1";
+
+  src = fetchFromGitHub {
+    owner = "citusdata";
+    repo = "citus";
+    rev = "v${version}";
+    hash = "sha256-g2/PJ4H5N7XA0yWiT6GbgCRh8mBDAfNhW9hx8r3X1Cs=";
+  };
+
+  buildInputs = [
+    curl
+    lz4
+    postgresql
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -t $out/lib src/backend/columnar/citus_columnar${postgresql.dlSuffix}
+    install -D -t $out/share/postgresql/extension src/backend/columnar/build/sql/*.sql
+    install -D -t $out/share/postgresql/extension src/backend/columnar/*.control
+
+    install -D -t $out/lib src/backend/distributed/citus${postgresql.dlSuffix}
+    install -D -t $out/share/postgresql/extension src/backend/distributed/build/sql/*.sql
+    install -D -t $out/share/postgresql/extension src/backend/distributed/*.control
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    # "Our soft policy for Postgres version compatibilty is to support Citus'
+    # latest release with Postgres' 3 latest releases."
+    # https://www.citusdata.com/updates/v12-0/#deprecated_features
+    broken = versionOlder postgresql.version "14";
+    description = "Distributed PostgreSQL as an extension";
+    homepage = "https://www.citusdata.com/";
+    changelog = "https://github.com/citusdata/citus/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ marsam ];
+    inherit (postgresql.meta) platforms;
+  };
+}
diff --git a/pkgs/servers/sql/postgresql/ext/lantern.nix b/pkgs/servers/sql/postgresql/ext/lantern.nix
new file mode 100644
index 000000000000..b1b21174c8a8
--- /dev/null
+++ b/pkgs/servers/sql/postgresql/ext/lantern.nix
@@ -0,0 +1,79 @@
+{ lib
+, stdenv
+, cmake
+, fetchFromGitHub
+, postgresql
+, postgresqlTestHook
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "lantern";
+  version = "0.0.12";
+
+  src = fetchFromGitHub {
+    owner = "lanterndata";
+    repo = "lantern";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-PJLpRX5IuHBz7xywgD/lXfr6c6Kn1XmQ6MCGSuKPmlE=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  buildInputs = [
+    postgresql
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -t $out/lib lantern${postgresql.dlSuffix}
+    install -D -t $out/share/postgresql/extension lantern-*.sql
+    install -D -t $out/share/postgresql/extension lantern.control
+
+    runHook postInstall
+  '';
+
+  cmakeFlags = [
+    "-DBUILD_FOR_DISTRIBUTING=ON"
+  ];
+
+  passthru.tests.extension = stdenv.mkDerivation {
+    name = "lantern-pg-test";
+    dontUnpack = true;
+    doCheck = true;
+    buildInputs = [ postgresqlTestHook ];
+    nativeCheckInputs = [ (postgresql.withPackages (_: [ finalAttrs.finalPackage ])) ];
+    postgresqlTestUserOptions = "LOGIN SUPERUSER";
+    passAsFile = [ "sql" ];
+    sql = ''
+      CREATE EXTENSION lantern;
+
+      CREATE TABLE small_world (id integer, vector real[3]);
+      INSERT INTO small_world (id, vector) VALUES (0, '{0,0,0}'), (1, '{0,0,1}');
+
+      CREATE INDEX ON small_world USING hnsw (vector dist_l2sq_ops)
+      WITH (M=2, ef_construction=10, ef=4, dim=3);
+    '';
+    failureHook = "postgresqlStop";
+    checkPhase = ''
+      runHook preCheck
+      psql -a -v ON_ERROR_STOP=1 -f $sqlPath
+      runHook postCheck
+    '';
+    installPhase = "touch $out";
+  };
+
+  meta = with lib; {
+    description = "PostgreSQL vector database extension for building AI applications";
+    homepage = "https://lantern.dev/";
+    changelog = "https://github.com/lanterndata/lantern/blob/${finalAttrs.src.rev}/CHANGELOG.md";
+    license = licenses.bsl11;
+    maintainers = [ maintainers.marsam ];
+    platforms = postgresql.meta.platforms;
+    # error: use of undeclared identifier 'aligned_alloc'
+    broken = stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13";
+  };
+})
diff --git a/pkgs/servers/sql/postgresql/ext/pgsodium.nix b/pkgs/servers/sql/postgresql/ext/pgsodium.nix
new file mode 100644
index 000000000000..4057fd78fee8
--- /dev/null
+++ b/pkgs/servers/sql/postgresql/ext/pgsodium.nix
@@ -0,0 +1,73 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, libsodium
+, postgresql
+, postgresqlTestHook
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "pgsodium";
+  version = "3.1.9";
+
+  src = fetchFromGitHub {
+    owner = "michelp";
+    repo = "pgsodium";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-Y8xL3PxF1GQV1JIgolMI1e8oGcUvWAgrPv84om7wKP8=";
+  };
+
+  buildInputs = [
+    libsodium
+    postgresql
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -t $out/lib pgsodium${postgresql.dlSuffix}
+    install -D -t $out/share/postgresql/extension sql/pgsodium-*.sql
+    install -D -t $out/share/postgresql/extension pgsodium.control
+
+    install -D -t $out/share/pgsodium/getkey_scripts getkey_scripts/*
+    ln -s $out/share/pgsodium/getkey_scripts/pgsodium_getkey_urandom.sh $out/share/postgresql/extension/pgsodium_getkey
+
+    runHook postInstall
+  '';
+
+  passthru.tests.extension = stdenv.mkDerivation {
+    name = "pgsodium-test";
+    dontUnpack = true;
+    doCheck = true;
+    nativeCheckInputs = [ postgresqlTestHook (postgresql.withPackages (_: [ finalAttrs.finalPackage ])) ];
+    failureHook = "postgresqlStop";
+    postgresqlTestUserOptions = "LOGIN SUPERUSER";
+    postgresqlExtraSettings = ''
+      shared_preload_libraries=pgsodium
+    '';
+    passAsFile = [ "sql" ];
+    sql = ''
+      CREATE EXTENSION pgsodium;
+
+      SELECT pgsodium.version();
+      SELECT pgsodium.crypto_auth_keygen();
+      SELECT pgsodium.randombytes_random() FROM generate_series(0, 5);
+      SELECT * FROM pgsodium.crypto_box_new_keypair();
+    '';
+    checkPhase = ''
+      runHook preCheck
+      psql -a -v ON_ERROR_STOP=1 -f $sqlPath
+      runHook postCheck
+    '';
+    installPhase = "touch $out";
+  };
+
+  meta = with lib; {
+    description = "Modern cryptography for PostgreSQL using libsodium";
+    homepage = "https://github.com/michelp/pgsodium";
+    changelog = "https://github.com/michelp/pgsodium/releases/tag/v${finalAttrs.version}";
+    license = licenses.postgresql;
+    maintainers = [ maintainers.marsam ];
+    platforms = postgresql.meta.platforms;
+  };
+})
diff --git a/pkgs/servers/sql/postgresql/ext/pgvector.nix b/pkgs/servers/sql/postgresql/ext/pgvector.nix
index 26b330b3b5b2..f7754eb2377e 100644
--- a/pkgs/servers/sql/postgresql/ext/pgvector.nix
+++ b/pkgs/servers/sql/postgresql/ext/pgvector.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pgvector";
-  version = "0.5.1";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "pgvector";
     repo = "pgvector";
     rev = "v${version}";
-    hash = "sha256-ZNzq+dATZn9LUgeOczsaadr5hwdbt9y/+sAOPIdr77U=";
+    hash = "sha256-hXm+k0BZ9xZP1Tnek14jPoKCPQkA5ovscu9IX2mW7Kc=";
   };
 
   buildInputs = [ postgresql ];
diff --git a/pkgs/servers/sql/postgresql/ext/postgis.nix b/pkgs/servers/sql/postgresql/ext/postgis.nix
index fe6319d44f20..65541730d296 100644
--- a/pkgs/servers/sql/postgresql/ext/postgis.nix
+++ b/pkgs/servers/sql/postgresql/ext/postgis.nix
@@ -5,7 +5,7 @@
 , postgresql
 , geos
 , proj
-, gdal
+, gdalMinimal
 , json_c
 , pkg-config
 , file
@@ -14,6 +14,10 @@
 , pcre2
 , nixosTests
 }:
+
+let
+  gdal = gdalMinimal;
+in
 stdenv.mkDerivation rec {
   pname = "postgis";
   version = "3.4.1";
diff --git a/pkgs/servers/sql/postgresql/packages.nix b/pkgs/servers/sql/postgresql/packages.nix
index 52e4fc700c94..7d8c9cbf9de8 100644
--- a/pkgs/servers/sql/postgresql/packages.nix
+++ b/pkgs/servers/sql/postgresql/packages.nix
@@ -4,12 +4,16 @@ self: super: {
 
     apache_datasketches = super.callPackage ./ext/apache_datasketches.nix { };
 
+    citus = super.callPackage ./ext/citus.nix { };
+
     h3-pg = super.callPackage ./ext/h3-pg.nix { };
 
     hypopg = super.callPackage ./ext/hypopg.nix { };
 
     jsonb_deep_sum = super.callPackage ./ext/jsonb_deep_sum.nix { };
 
+    lantern = super.callPackage ./ext/lantern.nix { };
+
     periods = super.callPackage ./ext/periods.nix { };
 
     postgis = super.callPackage ./ext/postgis.nix { };
@@ -36,6 +40,8 @@ self: super: {
 
     pgroonga = super.callPackage ./ext/pgroonga.nix { };
 
+    pgsodium = super.callPackage ./ext/pgsodium.nix { };
+
     pgsql-http = super.callPackage ./ext/pgsql-http.nix { };
 
     pgvector = super.callPackage ./ext/pgvector.nix { };
diff --git a/pkgs/servers/sql/rqlite/default.nix b/pkgs/servers/sql/rqlite/default.nix
index f3d966ed1702..1683e2b4e000 100644
--- a/pkgs/servers/sql/rqlite/default.nix
+++ b/pkgs/servers/sql/rqlite/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "rqlite";
-  version = "8.13.2";
+  version = "8.18.7";
 
   src = fetchFromGitHub {
     owner = "rqlite";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-YwwA9oqMJuHWaJ7zcSLJjbq3urIyUe6aZZS4kEeq7/8=";
+    sha256 = "sha256-qG04sFy9aPMy9Ba1MKwUZc+8JdA7rvq/ezdBGlGiNwA=";
   };
 
-  vendorHash = "sha256-qNI3SJdgaBi78Tvsd+RJ52vKZrbUQdEaEG/zTDKX0J4=";
+  vendorHash = "sha256-FzxY6CTcFwSmW9LEKzPRtCsKxsGedwU9G3A3efYG9zk=";
 
   subPackages = [ "cmd/rqlite" "cmd/rqlited" "cmd/rqbench" ];
 
diff --git a/pkgs/servers/tailscale/default.nix b/pkgs/servers/tailscale/default.nix
index ac8a5b833e1d..2f36358e912c 100644
--- a/pkgs/servers/tailscale/default.nix
+++ b/pkgs/servers/tailscale/default.nix
@@ -1,7 +1,18 @@
-{ lib, stdenv, buildGoModule, fetchFromGitHub, makeWrapper, iptables, iproute2, procps, shadow, getent }:
+{ lib
+, stdenv
+, buildGoModule
+, fetchFromGitHub
+, makeWrapper
+, getent
+, iproute2
+, iptables
+, shadow
+, procps
+, nixosTests
+}:
 
 let
-  version = "1.56.1";
+  version = "1.58.2";
 in
 buildGoModule {
   pname = "tailscale";
@@ -11,9 +22,9 @@ buildGoModule {
     owner = "tailscale";
     repo = "tailscale";
     rev = "v${version}";
-    hash = "sha256-kMk5Q/KvNcsohHNLDMmpBm+gUxQEOeO8o/odukcJi0A=";
+    hash = "sha256-FiFFfUtse0CKR4XJ82HEjpZNxCaa4FnwSJfEzJ5kZgk=";
   };
-  vendorHash = "sha256-bG/ydsJf2UncOcDo8/BXdvQJO3Mk0tl8JGje1b6kto4=";
+  vendorHash = "sha256-BK1zugKGtx2RpWHDvFZaFqz/YdoewsG8SscGt25uwtQ=";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ makeWrapper ];
 
@@ -38,6 +49,10 @@ buildGoModule {
     install -D -m0444 -t $out/lib/systemd/system ./cmd/tailscaled/tailscaled.service
   '';
 
+  passthru.tests = {
+    inherit (nixosTests) headscale;
+  };
+
   meta = with lib; {
     homepage = "https://tailscale.com";
     description = "The node agent for Tailscale, a mesh VPN built on WireGuard";
diff --git a/pkgs/servers/ttyd/default.nix b/pkgs/servers/ttyd/default.nix
index 9741a23f9851..68731b6f717d 100644
--- a/pkgs/servers/ttyd/default.nix
+++ b/pkgs/servers/ttyd/default.nix
@@ -20,6 +20,10 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "man" ];
 
+  passthru.tests = {
+    inherit (nixosTests) ttyd;
+  };
+
   meta = {
     description = "Share your terminal over the web";
     homepage    = "https://github.com/tsl0922/ttyd";
diff --git a/pkgs/servers/unifi/default.nix b/pkgs/servers/unifi/default.nix
index 9a9df286dc3a..25693f657553 100644
--- a/pkgs/servers/unifi/default.nix
+++ b/pkgs/servers/unifi/default.nix
@@ -72,7 +72,7 @@ in rec {
   };
 
   unifi8 = generic {
-    version = "8.0.26";
-    sha256 = "96d79cad82656d490f99ea476b6e6b049836f705a9aad594572b46e5f0f535d1";
+    version = "8.0.28";
+    sha256 = "sha256-RA3R/iR3u/V+qU2sQTNtaQhYOI8tCQw8TvMWPUlitrw=";
   };
 }
diff --git a/pkgs/servers/unpackerr/default.nix b/pkgs/servers/unpackerr/default.nix
index 5ed52a37f62c..26ee095e951d 100644
--- a/pkgs/servers/unpackerr/default.nix
+++ b/pkgs/servers/unpackerr/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "unpackerr";
-  version = "0.12.0";
+  version = "0.13.1";
 
   src = fetchFromGitHub {
     owner = "davidnewhall";
     repo = "unpackerr";
     rev = "v${version}";
-    sha256 = "sha256-yMmn733j6k9r8I/lvVOZNL6o35eSPJZ5G8jw9xaJZRg=";
+    sha256 = "sha256-K6ZDRDtxeqtjToElix1qVgclHaEeOY0W6hOwehFNIgo=";
   };
 
-  vendorHash = "sha256-1VMeRB34JS9EwyGhPxFsRIgKaY6NyIMsa132PQKoPYY=";
+  vendorHash = "sha256-1OSZzs/hUvauRIE5lzlXPIS2EkHm4aNK1iddjKCb6zA=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ Cocoa WebKit ];
 
diff --git a/pkgs/servers/uxplay/default.nix b/pkgs/servers/uxplay/default.nix
index c453c63e6f08..0eecf8e8c59c 100644
--- a/pkgs/servers/uxplay/default.nix
+++ b/pkgs/servers/uxplay/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "uxplay";
-  version = "1.68.1";
+  version = "1.68.2";
 
   src = fetchFromGitHub {
     owner = "FDH2";
     repo = "UxPlay";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-9/fzEaOIgkBnEkmwemMEPTmxMOi1/PYhD9zbb/s2huM=";
+    hash = "sha256-Ax2RhIIWb7BvBvE8GQlR3lwTSA5P5Qpj45cOc8xZNtY=";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/varnish/default.nix b/pkgs/servers/varnish/default.nix
index 93b17c219a3e..a48005f1cbaf 100644
--- a/pkgs/servers/varnish/default.nix
+++ b/pkgs/servers/varnish/default.nix
@@ -53,12 +53,12 @@ in
 {
   # EOL (LTS) TBA
   varnish60 = common {
-    version = "6.0.11";
-    hash = "sha256-UVkA2+tH/9MOs5BlyuAzFnmD7Pm9A6lDWic2B+HRKNs=";
+    version = "6.0.12";
+    hash = "sha256-OHzr06uzQ3MGWsDibm8r2iFAxBCotSA+EV9aZysr1qU=";
   };
   # EOL 2024-09-15
   varnish74 = common {
-    version = "7.4.1";
-    hash = "sha256-h02Deq9JuPJxjLYLjIx5AOnqEMJk8hjIjNZy1Zb0uJ8=";
+    version = "7.4.2";
+    hash = "sha256-bT0DxnUU5rtOhYTkCjgfUecIYH05M3pj3ErkIGHZpG8=";
   };
 }
diff --git a/pkgs/servers/web-apps/bookstack/default.nix b/pkgs/servers/web-apps/bookstack/default.nix
index 6fe0974e4a88..141656ebfa4a 100644
--- a/pkgs/servers/web-apps/bookstack/default.nix
+++ b/pkgs/servers/web-apps/bookstack/default.nix
@@ -16,13 +16,13 @@ let
 
 in package.override rec {
   pname = "bookstack";
-  version = "23.12.1";
+  version = "23.12.2";
 
   src = fetchFromGitHub {
     owner = "bookstackapp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0ax3mwkypv1wkjh7p7cjpkzi72a4183hw77bjlcjlziw37vsv6kc";
+    sha256 = "sha256-ZS93Dk4uK2j55VHWV3d3uJtro3STtaWyuOwdXlXv9Ao=";
   };
 
   meta = with lib; {
diff --git a/pkgs/servers/web-apps/dolibarr/default.nix b/pkgs/servers/web-apps/dolibarr/default.nix
index 3f96b78391bd..f689aff626bf 100644
--- a/pkgs/servers/web-apps/dolibarr/default.nix
+++ b/pkgs/servers/web-apps/dolibarr/default.nix
@@ -36,6 +36,6 @@ stdenv.mkDerivation rec {
     description = "A enterprise resource planning (ERP) and customer relationship manager (CRM) server";
     homepage = "https://dolibarr.org/";
     license = licenses.gpl3Plus;
-    maintainers = [ maintainers.raitobezarius ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/servers/web-apps/jitsi-meet/default.nix b/pkgs/servers/web-apps/jitsi-meet/default.nix
index 0f3055361adb..f0e307dabb85 100644
--- a/pkgs/servers/web-apps/jitsi-meet/default.nix
+++ b/pkgs/servers/web-apps/jitsi-meet/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "jitsi-meet";
-  version = "1.0.7712";
+  version = "1.0.7762";
 
   src = fetchurl {
     url = "https://download.jitsi.org/jitsi-meet/src/jitsi-meet-${version}.tar.bz2";
-    sha256 = "NNO+lXSPGtEDN7cqBatH2l8jqaQnTdNXfo9uzc+SwUA=";
+    sha256 = "SsmMQdR6JczL63/o/LHbg5sjnBA+TuYPu4WR+tlGaC4=";
   };
 
   dontBuild = true;
diff --git a/pkgs/servers/web-apps/livebook/default.nix b/pkgs/servers/web-apps/livebook/default.nix
index f0eee2eed605..e1815a819bbf 100644
--- a/pkgs/servers/web-apps/livebook/default.nix
+++ b/pkgs/servers/web-apps/livebook/default.nix
@@ -22,15 +22,11 @@ beamPackages.mixRelease rec {
     hash = "sha256-dyKhrbb7vazBV6LFERtGHLQXEx29vTgn074mY4fsHy4=";
   };
 
-  installPhase = ''
-    mix escript.build
-    mkdir -p $out/bin
-    mv ./livebook $out/bin
-
+  postInstall = ''
     wrapProgram $out/bin/livebook \
-      --prefix PATH : ${lib.makeBinPath [ elixir ]} \
+      --prefix PATH : ${lib.makeBinPath [ elixir erlang ]} \
       --set MIX_REBAR3 ${rebar3}/bin/rebar3
-  '';
+    '';
 
   passthru.tests = {
     livebook-service = nixosTests.livebook-service;
diff --git a/pkgs/servers/web-apps/netbox/default.nix b/pkgs/servers/web-apps/netbox/default.nix
index 245c7591dc73..ea2981597496 100644
--- a/pkgs/servers/web-apps/netbox/default.nix
+++ b/pkgs/servers/web-apps/netbox/default.nix
@@ -3,17 +3,17 @@ let
   generic = import ./generic.nix;
 in
 lib.fix (self: {
-  netbox = self.netbox_3_6;
+  netbox = self.netbox_3_7;
 
-  netbox_3_5 = callPackage generic {
-    version = "3.5.9";
-    hash = "sha256-CJbcuCyTuihDXrObSGyJi2XF+zgWAwcJzjxtkX8pmKs=";
+  netbox_3_6 = callPackage generic {
+    version = "3.6.9";
+    hash = "sha256-R/hcBKrylW3GnEy10DkrLVr8YJtsSCvCP9H9LhafO9I=";
     extraPatches = [
       # Allow setting the STATIC_ROOT from within the configuration and setting a custom redis URL
       ./config.patch
     ];
     tests = {
-      netbox = nixosTests.netbox_3_5;
+      netbox = nixosTests.netbox_3_6;
       inherit (nixosTests) netbox-upgrade;
     };
 
@@ -21,15 +21,16 @@ lib.fix (self: {
     eol = true;
   };
 
-  netbox_3_6 = callPackage generic {
-    version = "3.6.9";
-    hash = "sha256-R/hcBKrylW3GnEy10DkrLVr8YJtsSCvCP9H9LhafO9I=";
+  netbox_3_7 = callPackage generic {
+    version = "3.7.1";
+    hash = "sha256-hAwkrrjrV+XVIYe3C8f/342SPlllXUhiFuaAp+TLMUw=";
     extraPatches = [
       # Allow setting the STATIC_ROOT from within the configuration and setting a custom redis URL
       ./config.patch
+      ./fix-doc-link.patch
     ];
     tests = {
-      netbox = nixosTests.netbox_3_6;
+      netbox = nixosTests.netbox_3_7;
       inherit (nixosTests) netbox-upgrade;
     };
 
diff --git a/pkgs/servers/web-apps/netbox/fix-doc-link.patch b/pkgs/servers/web-apps/netbox/fix-doc-link.patch
new file mode 100644
index 000000000000..0be5aee957f3
--- /dev/null
+++ b/pkgs/servers/web-apps/netbox/fix-doc-link.patch
@@ -0,0 +1,10 @@
+diff --git a/docs/plugins/development/data-backends.md b/docs/plugins/development/data-backends.md
+index feffa5bed..8b7226a41 100644
+--- a/docs/plugins/development/data-backends.md
++++ b/docs/plugins/development/data-backends.md
+@@ -20,4 +20,4 @@ backends = [MyDataBackend]
+ !!! tip
+     The path to the list of search indexes can be modified by setting `data_backends` in the PluginConfig instance.
+ 
+-::: core.data_backends.DataBackend
++::: netbox.data_backends.DataBackend
diff --git a/pkgs/servers/web-apps/netbox/generic.nix b/pkgs/servers/web-apps/netbox/generic.nix
index ec544b1e8772..ac705445499f 100644
--- a/pkgs/servers/web-apps/netbox/generic.nix
+++ b/pkgs/servers/web-apps/netbox/generic.nix
@@ -58,6 +58,7 @@
         pillow
         psycopg2
         pyyaml
+        requests
         sentry-sdk
         social-auth-core
         social-auth-app-django
diff --git a/pkgs/servers/web-apps/pict-rs/default.nix b/pkgs/servers/web-apps/pict-rs/default.nix
index 00975cc95fec..9a73f738e194 100644
--- a/pkgs/servers/web-apps/pict-rs/default.nix
+++ b/pkgs/servers/web-apps/pict-rs/default.nix
@@ -13,17 +13,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pict-rs";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchFromGitea {
     domain = "git.asonix.dog";
     owner = "asonix";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-0NlLCUOg7Uk10MCjeqJCTcNidLPddkIBBl5mO8yXCAY=";
+    sha256 = "sha256-m0je0SfyjeMDJP/OTx41Goc6mcNavnlSDBZS5Uqw0p0=";
   };
 
-  cargoHash = "sha256-IyVt+O+ISjJ2R//Na7z0HhDB6bGO/+Qpq34y1NUSufU=";
+  cargoHash = "sha256-O92m3Va8BAPZyDc4arufSkeHxGC8QpwOPx9FAG0A+TE=";
 
   # needed for internal protobuf c wrapper library
   PROTOC = "${protobuf}/bin/protoc";
diff --git a/pkgs/servers/web-apps/vikunja/api.nix b/pkgs/servers/web-apps/vikunja/api.nix
index 4658c6ece29f..f405391cf963 100644
--- a/pkgs/servers/web-apps/vikunja/api.nix
+++ b/pkgs/servers/web-apps/vikunja/api.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "vikunja-api";
-  version = "0.22.0";
+  version = "0.22.1";
 
   src = fetchFromGitHub {
     owner = "go-vikunja";
     repo = "api";
     rev = "v${version}";
-    hash = "sha256-hqyopIV/cLLC8An+ELN0a/cFAq6BoCZZjBRviaJ5ygI=";
+    hash = "sha256-tYhlAF1VuM/Xz4HP7DtI0hGsiNyYxzFiNIEbm8n9DC8=";
   };
 
   nativeBuildInputs =
@@ -24,7 +24,7 @@ buildGoModule rec {
     in
     [ fakeGit mage ];
 
-  vendorHash = "sha256-+V6a6h5pg8FU87pA4JxZo07HGBXIgCv4FjmtjIpQUP4=";
+  vendorHash = "sha256-OD/7RCCrRdlrsRW7CRT01cDUvNnedNdTZ8YgDFGaE4o=";
 
   # checks need to be disabled because of needed internet for some checks
   doCheck = false;
diff --git a/pkgs/servers/web-apps/vikunja/frontend.nix b/pkgs/servers/web-apps/vikunja/frontend.nix
index 65e3df5b47a7..bf09d830c872 100644
--- a/pkgs/servers/web-apps/vikunja/frontend.nix
+++ b/pkgs/servers/web-apps/vikunja/frontend.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "vikunja-frontend";
-  version = "0.22.0";
+  version = "0.22.1";
 
   src = fetchurl {
     url = "https://dl.vikunja.io/frontend/${pname}-${version}.zip";
-    hash = "sha256-LYU1IGAhSZOwMI44HW5IfcBKs9RkU/IXGVgPGDKnKAs=";
+    hash = "sha256-jkFF6sucLZWpWkPcovTdD9MOyJNPRWIBfK9388X5onc=";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/pkgs/servers/xmpp/prosody/default.nix b/pkgs/servers/xmpp/prosody/default.nix
index dc9df3e18898..2f237c1f2277 100644
--- a/pkgs/servers/xmpp/prosody/default.nix
+++ b/pkgs/servers/xmpp/prosody/default.nix
@@ -40,8 +40,8 @@ stdenv.mkDerivation rec {
   # version.
   communityModules = fetchhg {
     url = "https://hg.prosody.im/prosody-modules";
-    rev = "7c105277a9ca";
-    sha256 = "eiObn5Kw7dS+oxdQiJ8NhSC4P7EvILIOEnMoxCWIFro=";
+    rev = "b109773ce6fe";
+    hash = "sha256-N1vmShDWtWsHD4b1x7UjX6Sj28iPaDeCLSYeDOLLhzo=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -84,6 +84,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     homepage = "https://prosody.im";
     platforms = platforms.linux;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ toastal ];
   };
 }
diff --git a/pkgs/servers/zigbee2mqtt/default.nix b/pkgs/servers/zigbee2mqtt/default.nix
index 43ef277ffba3..725b8a34ed9d 100644
--- a/pkgs/servers/zigbee2mqtt/default.nix
+++ b/pkgs/servers/zigbee2mqtt/default.nix
@@ -2,25 +2,30 @@
 , buildNpmPackage
 , fetchFromGitHub
 , nodejs_18
+, systemdMinimal
 , nixosTests
 , nix-update-script
 }:
 
 buildNpmPackage rec {
   pname = "zigbee2mqtt";
-  version = "1.35.1";
+  version = "1.35.2";
 
   src = fetchFromGitHub {
     owner = "Koenkk";
     repo = "zigbee2mqtt";
     rev = version;
-    hash = "sha256-ZOIV7PLBnPbisIStC+MNMZgf+Hw/+n4lONpgomRkZEE=";
+    hash = "sha256-AesGq2pWb8e2CJxTmP7RmtNYoAsXLAWp65eUjfjBK/A=";
   };
 
-  npmDepsHash = "sha256-2WSuc9bmt5kK477c3AMOLFguvXZ2Nl+Qb67j5k7eL3o=";
+  npmDepsHash = "sha256-9mNUOidUmwOA+bFC8+pCerZ7JEYfQhYUM8D/WBW8IaE=";
 
   nodejs = nodejs_18;
 
+  buildInputs = [
+    systemdMinimal
+  ];
+
   passthru.tests.zigbee2mqtt = nixosTests.zigbee2mqtt;
   passthru.updateScript = nix-update-script { };
 
diff --git a/pkgs/shells/carapace/default.nix b/pkgs/shells/carapace/default.nix
index 744e6d8e6a48..de69944abf7a 100644
--- a/pkgs/shells/carapace/default.nix
+++ b/pkgs/shells/carapace/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "carapace";
-  version = "0.29.0";
+  version = "0.30.1";
 
   src = fetchFromGitHub {
     owner = "rsteube";
     repo = "${pname}-bin";
     rev = "v${version}";
-    hash = "sha256-eLdS3PIJYmG/U2LEU7C3vYoJsP6bpgSFUK8TH/HWekk=";
+    hash = "sha256-2sf/S6i7f6pkjPEe0LaOJL6GtVNuRpGKXoRP4ZfDfX0=";
   };
 
-  vendorHash = "sha256-16dzHcX6EZhV1wV4lhrJXNNT1ThR5RK47Y4FJr8kcXE=";
+  vendorHash = "sha256-iIDtq+wRtBEV/gmGm4xSP87PT3pyUtto1d+nbHPzB04=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/shells/hilbish/default.nix b/pkgs/shells/hilbish/default.nix
index f5450e1da5c3..57b7abc59e25 100644
--- a/pkgs/shells/hilbish/default.nix
+++ b/pkgs/shells/hilbish/default.nix
@@ -2,19 +2,19 @@
 
 buildGoModule rec {
   pname = "hilbish";
-  version = "2.1.2";
+  version = "2.2.1";
 
   src = fetchFromGitHub {
     owner = "Rosettea";
     repo = "Hilbish";
     rev = "v${version}";
-    hash = "sha256-OEuriFnVDS0POXoPeUk4IcLtV3JAMLDM2apDxmjg5cQ=";
+    hash = "sha256-pXl0emLY+W0DkW4HONv3qVZzCEZnx/SX3MjyBajsosg=";
     fetchSubmodules = true;
   };
 
   subPackages = [ "." ];
 
-  vendorHash = "sha256-Kiy1JR3X++naY2XNLpnGujrNQt7qlL0zxv8E96cHmHo=";
+  vendorHash = "sha256-nE+THN+Q7Ze36c0nd3oROoFPLIzH/kw9qBwMxv+j9uE=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/shells/hishtory/default.nix b/pkgs/shells/hishtory/default.nix
index 7459d23ddead..ac138a41f182 100644
--- a/pkgs/shells/hishtory/default.nix
+++ b/pkgs/shells/hishtory/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "hishtory";
-  version = "0.266";
+  version = "0.267";
 
   src = fetchFromGitHub {
     owner = "ddworken";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-AyUdmzrHBPXzDSOvhNz270D1AP7UdIpeaSqSyIFyQLY=";
+    hash = "sha256-wUfDJmwO96HulGTEh5YxTWPUSNAmPk9vpdPYujldIPE=";
   };
 
   vendorHash = "sha256-yk1ryXQ750xW7BYTMg0UQYb5DEIJ5ZWvoLLKSo3nx6k=";
diff --git a/pkgs/shells/nushell/nu_scripts/default.nix b/pkgs/shells/nushell/nu_scripts/default.nix
index bb38993d0ae9..742c3d6c9d2c 100644
--- a/pkgs/shells/nushell/nu_scripts/default.nix
+++ b/pkgs/shells/nushell/nu_scripts/default.nix
@@ -6,13 +6,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "nu_scripts";
-  version = "unstable-2024-01-05";
+  version = "unstable-2024-01-26";
 
   src = fetchFromGitHub {
     owner = "nushell";
     repo = pname;
-    rev = "06327787549c41c93f8079cb034305d666479587";
-    hash = "sha256-O7wBMsq1Ds5Re5PakxQoDNnJg0VOdz1yKKanv4Q42SA=";
+    rev = "302fd84fed8616d4b3259c3265c5b01554fe8d91";
+    hash = "sha256-XMHqjxkJo60nwjXNlS0SKWLV/Ffxz8+oImG8lG8GjkE=";
   };
 
   installPhase = ''
diff --git a/pkgs/shells/zsh/grml-zsh-config/default.nix b/pkgs/shells/zsh/grml-zsh-config/default.nix
index 1e2e9f29b25a..cff5a814bd13 100644
--- a/pkgs/shells/zsh/grml-zsh-config/default.nix
+++ b/pkgs/shells/zsh/grml-zsh-config/default.nix
@@ -5,13 +5,13 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "grml-zsh-config";
-  version = "0.19.6";
+  version = "0.19.7";
 
   src = fetchFromGitHub {
     owner = "grml";
     repo = "grml-etc-core";
     rev = "v${version}";
-    sha256 = "sha256-31BD5jUA54oLSsL4NzGaGAiOXMcZwy7uX65pD+jtE4M=";
+    sha256 = "sha256-XHuoafb1Wc8dUPrk/7jwYhlRQm76qcbQy2vHECm0Iuo=";
   };
 
   strictDeps = true;
diff --git a/pkgs/shells/zsh/zinit/default.nix b/pkgs/shells/zsh/zinit/default.nix
index 7b41d8505c21..c226b5565451 100644
--- a/pkgs/shells/zsh/zinit/default.nix
+++ b/pkgs/shells/zsh/zinit/default.nix
@@ -2,12 +2,12 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "zinit";
-  version = "3.12.1";
+  version = "3.13.1";
   src = fetchFromGitHub {
     owner = "zdharma-continuum";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-REd997dop9gAosG4QkEKIc3jYIRLeB3MYBPiYMlDGUs=";
+    hash = "sha256-fnBV0LmC/wJm0pOITJ1mhiBqsg2F8AQJWvn0p/Bgo5Q=";
   };
   # adapted from https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=zsh-zplugin-git
   dontBuild = true;
diff --git a/pkgs/shells/zsh/zsh-forgit/default.nix b/pkgs/shells/zsh/zsh-forgit/default.nix
index 9ec4277857b1..28847369a9c8 100644
--- a/pkgs/shells/zsh/zsh-forgit/default.nix
+++ b/pkgs/shells/zsh/zsh-forgit/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zsh-forgit";
-  version = "24.01.0";
+  version = "24.02.0";
 
   src = fetchFromGitHub {
     owner = "wfxr";
     repo = "forgit";
     rev = version;
-    sha256 = "sha256-WHhyllOr/PgR+vlrfMQs/3/d3xpmDylT6BlLCu50a2g=";
+    sha256 = "sha256-DoOtrnEJwSxkCZtsVek+3w9RZH7j7LTvdleBC88xyfI=";
   };
 
   strictDeps = true;
diff --git a/pkgs/shells/zsh/zsh-fzf-tab/default.nix b/pkgs/shells/zsh/zsh-fzf-tab/default.nix
index ac611c4a6b06..89e4fe783b93 100644
--- a/pkgs/shells/zsh/zsh-fzf-tab/default.nix
+++ b/pkgs/shells/zsh/zsh-fzf-tab/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, lib, fetchFromGitHub, ncurses }:
+{ stdenv, lib, fetchFromGitHub, ncurses, nix-update-script }:
 
 let
   INSTALL_PATH="${placeholder "out"}/share/fzf-tab";
 in stdenv.mkDerivation rec {
   pname = "zsh-fzf-tab";
-  version = "unstable-2023-06-11";
+  version = "unstable-2024-02-01";
 
   src = fetchFromGitHub {
     owner = "Aloxaf";
     repo = "fzf-tab";
-    rev = "c2b4aa5ad2532cca91f23908ac7f00efb7ff09c9";
-    sha256 = "sha256-gvZp8P3quOtcy1Xtt1LAW1cfZ/zCtnAmnWqcwrKel6w=";
+    rev = "b06e7574577cd729c629419a62029d31d0565a7a";
+    hash = "sha256-ilUavAIWmLiMh2PumtErMCpOcR71ZMlQkKhVOTDdHZw=";
   };
 
   strictDeps = true;
@@ -44,6 +44,12 @@ in stdenv.mkDerivation rec {
      install -D modules/Src/aloxaf/fzftab.so ${INSTALL_PATH}/modules/Src/aloxaf/fzftab.so
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      extraArgs = [ "--version" "branch=master" ];
+    };
+  };
+
   meta = with lib; {
     homepage = "https://github.com/Aloxaf/fzf-tab";
     description = "Replace zsh's default completion selection menu with fzf!";
diff --git a/pkgs/shells/zsh/zsh-powerlevel10k/default.nix b/pkgs/shells/zsh/zsh-powerlevel10k/default.nix
index bc357be79bb8..328360aa482e 100644
--- a/pkgs/shells/zsh/zsh-powerlevel10k/default.nix
+++ b/pkgs/shells/zsh/zsh-powerlevel10k/default.nix
@@ -23,13 +23,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "powerlevel10k";
-  version = "1.19.0";
+  version = "1.20.0";
 
   src = fetchFromGitHub {
     owner = "romkatv";
     repo = "powerlevel10k";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+hzjSbbrXr0w1rGHm6m2oZ6pfmD6UUDBfPd7uMg5l5c=";
+    hash = "sha256-ES5vJXHjAKw/VHjWs8Au/3R+/aotSbY7PWnWAMzCR8E=";
   };
 
   strictDeps = true;
diff --git a/pkgs/shells/zsh/zsh-prezto/default.nix b/pkgs/shells/zsh/zsh-prezto/default.nix
index 3645305d401c..8d0f68f49cfa 100644
--- a/pkgs/shells/zsh/zsh-prezto/default.nix
+++ b/pkgs/shells/zsh/zsh-prezto/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zsh-prezto";
-  version = "unstable-2023-11-30";
+  version = "unstable-2024-01-26";
 
   src = fetchFromGitHub {
     owner = "sorin-ionescu";
     repo = "prezto";
-    rev = "c0cdc12708803c4503cb1b3d7d42e5c1b8ba6e86";
-    sha256 = "gexMZEb2n3izZk0c7Q42S9s2ILevK0mn09pTCGQhp1M=";
+    rev = "d03bc03fddbd80ead45986b68880001ccbbb98c1";
+    sha256 = "qM+F4DDZbjARKnZK2mbBlvx2uV/X2CseayTGkFNpSsk=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/stdenv/darwin/bootstrap-files/aarch64-apple-darwin.nix b/pkgs/stdenv/darwin/bootstrap-files/aarch64-apple-darwin.nix
new file mode 100644
index 000000000000..8fd3537fa78a
--- /dev/null
+++ b/pkgs/stdenv/darwin/bootstrap-files/aarch64-apple-darwin.nix
@@ -0,0 +1,12 @@
+let
+  fetch = { file, sha256, executable ? true }: import <nix/fetchurl.nix> {
+    url = "http://tarballs.nixos.org/stdenv-darwin/aarch64/20acd4c4f14040485f40e55c0a76c186aa8ca4f3/${file}";
+    inherit sha256 executable;
+  }; in
+{
+  sh = fetch { file = "sh"; sha256 = "17m3xrlbl99j3vm7rzz3ghb47094dyddrbvs2a6jalczvmx7spnj"; };
+  bzip2 = fetch { file = "bzip2"; sha256 = "1khs8s5klf76plhlvlc1ma838r8pc1qigk9f5bdycwgbn0nx240q"; };
+  mkdir = fetch { file = "mkdir"; sha256 = "1m9nk90paazl93v43myv2ay68c1arz39pqr7lk5ddbgb177hgg8a"; };
+  cpio = fetch { file = "cpio"; sha256 = "17pxq61yjjvyd738fy9f392hc9cfzkl612sdr9rxr3v0dgvm8y09"; };
+  tarball = fetch { file = "bootstrap-tools.cpio.bz2"; sha256 = "1v2332k33akm6mrm4bj749rxnnmc2pkbgcslmd0bbkf76bz2ildy"; executable = false; };
+}
diff --git a/pkgs/stdenv/darwin/bootstrap-files/x86_64-apple-darwin.nix b/pkgs/stdenv/darwin/bootstrap-files/x86_64-apple-darwin.nix
new file mode 100644
index 000000000000..aed2285d8936
--- /dev/null
+++ b/pkgs/stdenv/darwin/bootstrap-files/x86_64-apple-darwin.nix
@@ -0,0 +1,12 @@
+let
+  fetch = { file, sha256, executable ? true }: import <nix/fetchurl.nix> {
+    url = "http://tarballs.nixos.org/stdenv-darwin/x86_64/c253216595572930316f2be737dc288a1da22558/${file}";
+    inherit sha256 executable;
+  }; in
+{
+  sh = fetch { file = "sh"; sha256 = "sha256-igMAVEfumFv/LUNTGfNi2nSehgTNIP4Sg+f3L7u6SMA="; };
+  bzip2 = fetch { file = "bzip2"; sha256 = "sha256-K3rhkJZipudT1Jgh+l41Y/fNsMkrPtiAsNRDha/lpZI="; };
+  mkdir = fetch { file = "mkdir"; sha256 = "sha256-VddFELwLDJGNADKB1fWwWPBtIAlEUgJv2hXRmC4NEeM="; };
+  cpio = fetch { file = "cpio"; sha256 = "sha256-SWkwvLaFyV44kLKL2nx720SvcL4ej/p2V/bX3uqAGO0="; };
+  tarball = fetch { file = "bootstrap-tools.cpio.bz2"; sha256 = "sha256-kRC/bhCmlD4L7KAvJQgcukk7AinkMz4IwmG1rqlh5tA="; executable = false; };
+}
diff --git a/pkgs/stdenv/darwin/default.nix b/pkgs/stdenv/darwin/default.nix
index c94c56daae1c..c47937d7bfad 100644
--- a/pkgs/stdenv/darwin/default.nix
+++ b/pkgs/stdenv/darwin/default.nix
@@ -15,33 +15,9 @@
 , crossOverlays ? [ ]
   # Allow passing in bootstrap files directly so we can test the stdenv bootstrap process when changing the bootstrap tools
 , bootstrapFiles ? if localSystem.isAarch64 then
-    let
-      fetch = { file, sha256, executable ? true }: import <nix/fetchurl.nix> {
-        url = "http://tarballs.nixos.org/stdenv-darwin/aarch64/20acd4c4f14040485f40e55c0a76c186aa8ca4f3/${file}";
-        inherit (localSystem) system;
-        inherit sha256 executable;
-      }; in
-    {
-      sh = fetch { file = "sh"; sha256 = "17m3xrlbl99j3vm7rzz3ghb47094dyddrbvs2a6jalczvmx7spnj"; };
-      bzip2 = fetch { file = "bzip2"; sha256 = "1khs8s5klf76plhlvlc1ma838r8pc1qigk9f5bdycwgbn0nx240q"; };
-      mkdir = fetch { file = "mkdir"; sha256 = "1m9nk90paazl93v43myv2ay68c1arz39pqr7lk5ddbgb177hgg8a"; };
-      cpio = fetch { file = "cpio"; sha256 = "17pxq61yjjvyd738fy9f392hc9cfzkl612sdr9rxr3v0dgvm8y09"; };
-      tarball = fetch { file = "bootstrap-tools.cpio.bz2"; sha256 = "1v2332k33akm6mrm4bj749rxnnmc2pkbgcslmd0bbkf76bz2ildy"; executable = false; };
-    }
+    import ./bootstrap-files/aarch64-apple-darwin.nix
   else
-    let
-      fetch = { file, sha256, executable ? true }: import <nix/fetchurl.nix> {
-        url = "http://tarballs.nixos.org/stdenv-darwin/x86_64/c253216595572930316f2be737dc288a1da22558/${file}";
-        inherit (localSystem) system;
-        inherit sha256 executable;
-      }; in
-    {
-      sh = fetch { file = "sh"; sha256 = "sha256-igMAVEfumFv/LUNTGfNi2nSehgTNIP4Sg+f3L7u6SMA="; };
-      bzip2 = fetch { file = "bzip2"; sha256 = "sha256-K3rhkJZipudT1Jgh+l41Y/fNsMkrPtiAsNRDha/lpZI="; };
-      mkdir = fetch { file = "mkdir"; sha256 = "sha256-VddFELwLDJGNADKB1fWwWPBtIAlEUgJv2hXRmC4NEeM="; };
-      cpio = fetch { file = "cpio"; sha256 = "sha256-SWkwvLaFyV44kLKL2nx720SvcL4ej/p2V/bX3uqAGO0="; };
-      tarball = fetch { file = "bootstrap-tools.cpio.bz2"; sha256 = "sha256-kRC/bhCmlD4L7KAvJQgcukk7AinkMz4IwmG1rqlh5tA="; executable = false; };
-    }
+    import ./bootstrap-files/x86_64-apple-darwin.nix
 }:
 
 assert crossSystem == localSystem;
diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh
index ec8df76f2c79..efb233312b57 100644
--- a/pkgs/stdenv/generic/setup.sh
+++ b/pkgs/stdenv/generic/setup.sh
@@ -815,6 +815,8 @@ fi
 ######################################################################
 # Textual substitution functions.
 
+# only log once, due to max logging limit on hydra
+_substituteStream_has_warned_replace_deprecation=""
 
 substituteStream() {
     local var=$1
@@ -822,8 +824,24 @@ substituteStream() {
     shift 2
 
     while (( "$#" )); do
+        local is_required=1
+        local is_quiet=""
         case "$1" in
+            --replace-quiet)
+                is_quiet=1
+                ;&
             --replace)
+                # deprecated 2023-11-22
+                # this will either get removed, or switch to the behaviour of --replace-fail in the future
+                if [ -z "$_substituteStream_has_warned_replace_deprecation" ]; then
+                    echo "substituteStream(): WARNING: '--replace' is deprecated, use --replace-{fail,warn,quiet}. ($description)" >&2
+                    _substituteStream_has_warned_replace_deprecation=1
+                fi
+                ;&
+            --replace-warn)
+                is_required=""
+                ;&
+            --replace-fail)
                 pattern="$2"
                 replacement="$3"
                 shift 3
@@ -832,7 +850,14 @@ substituteStream() {
                 eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}'
                 if [ "$pattern" != "$replacement" ]; then
                     if [ "${!var}" == "$savedvar" ]; then
-                        echo "substituteStream(): WARNING: pattern '$pattern' doesn't match anything in $description" >&2
+                        if [ -z "$is_required" ]; then
+                            if [ -z "$is_quiet" ]; then
+                                printf "substituteStream(): WARNING: pattern %q doesn't match anything in %s\n" "$pattern" "$description" >&2
+                            fi
+                        else
+                            printf "substituteStream(): ERROR: pattern %q doesn't match anything in %s\n" "$pattern" "$description" >&2
+                            return 1
+                        fi
                     fi
                 fi
                 ;;
diff --git a/pkgs/stdenv/linux/bootstrap-files/aarch64-unknown-linux-musl.nix b/pkgs/stdenv/linux/bootstrap-files/aarch64-unknown-linux-musl.nix
index 252783cce47c..c1a96e66013c 100644
--- a/pkgs/stdenv/linux/bootstrap-files/aarch64-unknown-linux-musl.nix
+++ b/pkgs/stdenv/linux/bootstrap-files/aarch64-unknown-linux-musl.nix
@@ -1,11 +1,25 @@
+#
+# Files came from this Hydra build:
+#
+#   https://hydra.nixos.org/build/246470544
+#
+# …which used nixpkgs revision dd5621df6dcb90122b50da5ec31c411a0de3e538
+# to instantiate:
+#
+#   /nix/store/g480ass2vjmakaq03z7k2j95xnxh206a-stdenv-bootstrap-tools.drv
+#
+# …and then built:
+#
+#   /nix/store/95lm0y33dayag4542s8bi83s31bw68dr-stdenv-bootstrap-tools
+#
 {
   busybox = import <nix/fetchurl.nix> {
-    url = "https://wdtz.org/files/wjzsj9cmdkc70f78yh072483x8656nci-stdenv-bootstrap-tools-aarch64-unknown-linux-musl/on-server/busybox";
-    sha256 = "01s6bwq84wyrjh3rdsgxni9gkzp7ss8rghg0cmp8zd87l79y8y4g";
+    url = "http://tarballs.nixos.org/stdenv/aarch64-unknown-linux-musl/dd5621df6dcb90122b50da5ec31c411a0de3e538/busybox";
+    sha256 = "sha256-WuOaun7U5enbOy8SuuCo6G1fbGwsO16jhy/oM8K0lAs=";
     executable = true;
   };
   bootstrapTools = import <nix/fetchurl.nix> {
-    url = "https://wdtz.org/files/wjzsj9cmdkc70f78yh072483x8656nci-stdenv-bootstrap-tools-aarch64-unknown-linux-musl/on-server/bootstrap-tools.tar.xz";
-    sha256 = "0pbqrw9z4ifkijpfpx15l2dzi00rq8c5zg9ghimz5qgr5dx7f7cl";
+    url = "http://tarballs.nixos.org/stdenv/aarch64-unknown-linux-musl/dd5621df6dcb90122b50da5ec31c411a0de3e538/bootstrap-tools.tar.xz";
+    hash = "sha256-ZY9IMOmx1VOn6uoFDpdJbTnPX59TEkrVCzWNtjQ8/QE=";
   };
 }
diff --git a/pkgs/stdenv/linux/bootstrap-files/riscv64-unknown-linux-gnu.nix b/pkgs/stdenv/linux/bootstrap-files/riscv64-unknown-linux-gnu.nix
index aaf1f153c787..2a3bf376ac64 100644
--- a/pkgs/stdenv/linux/bootstrap-files/riscv64-unknown-linux-gnu.nix
+++ b/pkgs/stdenv/linux/bootstrap-files/riscv64-unknown-linux-gnu.nix
@@ -1,12 +1,26 @@
+#
+# Files came from this Hydra build:
+#
+#   https://hydra.nixos.org/build/246376732
+#
+# Which used nixpkgs revision 160cedc144aced7a35a91440b46b74ffacd52682
+# to instantiate:
+#
+#   /nix/store/cpiajh4l83b08pynwiwkpxj53d78pcxr-stdenv-bootstrap-tools-riscv64-unknown-linux-gnu.drv
+#
+# and then built:
+#
+#   /nix/store/8a92pj40awdw585mcb9dvm4nyb03k3q3-stdenv-bootstrap-tools-riscv64-unknown-linux-gnu
+#
 {
   busybox = import <nix/fetchurl.nix> {
-    url = "http://tarballs.nixos.org/stdenv-linux/riscv64/9bd3cf0063b80428bd85a286205adab4b6ffcbd6/busybox";
-    sha256 = "6f61912f94bc4ef287d1ff48a9521ed16bd07d8d8ec775e471f32c64d346583d";
+    url = "http://tarballs.nixos.org/stdenv-linux/riscv64/160cedc144aced7a35a91440b46b74ffacd52682/busybox";
+    sha256 = "sha256-OGO96QUzs2n5pGipn/V87AxzUY9OWKZl417nE8HdZIE=";
     executable = true;
   };
 
   bootstrapTools = import <nix/fetchurl.nix> {
-    url = "http://tarballs.nixos.org/stdenv-linux/riscv64/9bd3cf0063b80428bd85a286205adab4b6ffcbd6/bootstrap-tools.tar.xz";
-    sha256 = "5466b19288e980125fc62ebb864d09908ffe0bc50cebe52cfee89acff14d5b9f";
+    url = "http://tarballs.nixos.org/stdenv-linux/riscv64/160cedc144aced7a35a91440b46b74ffacd52682/bootstrap-tools.tar.xz";
+    sha256 = "sha256-0LxRd7fdafQezNJ+N2tuOfm0KEwgfRSts5fhP0e0r0s=";
   };
 }
diff --git a/pkgs/test/buildFHSEnv/default.nix b/pkgs/test/buildFHSEnv/default.nix
new file mode 100644
index 000000000000..0a355e1aeeac
--- /dev/null
+++ b/pkgs/test/buildFHSEnv/default.nix
@@ -0,0 +1,84 @@
+{ lib
+, buildFHSEnv
+, runCommand
+, stdenv
+, fetchurl
+, dpkg
+, glibc
+, callPackage
+}:
+
+let
+  getSharedObjectFromDebian = sharedObjectName: src: stdenv.mkDerivation  {
+    name = "${sharedObjectName}-fetcher";
+    inherit src;
+    nativeBuildInputs = [
+      dpkg
+    ];
+    dontBuild = true;
+    dontConfigure = true;
+    dontFixup = true;
+    installPhase = ''
+      echo shared objects found are:
+      ls -l usr/lib/*/
+      cp usr/lib/*/${sharedObjectName} $out
+    '';
+  };
+
+  makeSharedObjectTest = sharedObject: targetPkgs: let
+    lddFHSEnv = buildFHSEnv {
+      name = "ldd-with-ncurses-FHS-env";
+      inherit targetPkgs;
+      runScript = "ldd";
+    };
+    ldd-in-FHS = "${lddFHSEnv}/bin/${lddFHSEnv.name}";
+    ldd = "${lib.getBin glibc}/bin/ldd";
+    find_libFHSEnv = buildFHSEnv {
+      name = "ls-with-ncurses-FHS-env";
+      targetPkgs = p: [
+        p.ncurses5
+      ];
+      runScript = "find /lib/ -executable";
+    };
+    find_lib-in-FHS = "${find_libFHSEnv}/bin/${find_libFHSEnv.name}";
+  in runCommand "FHS-lib-test" {} ''
+    echo original ldd output is:
+    ${ldd} ${sharedObject}
+    lddOutput="$(${ldd-in-FHS} ${sharedObject})"
+    echo ldd output inside FHS is:
+    echo "$lddOutput"
+    if echo $lddOutput | grep -q "not found"; then
+      echo "shared object could not find all dependencies in the FHS!"
+      echo The libraries below where found in the FHS:
+      ${find_lib-in-FHS}
+      exit 1
+    else
+      echo $lddOutput > $out
+    fi
+  '';
+
+in {
+  # This test proves an issue with buildFHSEnv - don't expect it to succeed,
+  # this is discussed in https://github.com/NixOS/nixpkgs/pull/279844 .
+  libtinfo = makeSharedObjectTest (getSharedObjectFromDebian "libedit.so.2.0.70" (fetchurl {
+    url = "mirror://debian/pool/main/libe/libedit/libedit2_3.1-20221030-2_amd64.deb";
+    hash = "sha256-HPFKvycW0yedsS0GV6VzfPcAdKHnHTvfcyBmJePInOY=";
+  })) (p: let
+    ncurses' = p.ncurses.overrideAttrs (old: {
+      configureFlags = old.configureFlags ++ [ "--with-termlib" ];
+      postFixup = "";
+    });
+  in [
+    (ncurses'.override { unicodeSupport = false; })
+    p.libbsd
+  ]);
+
+  liblzma = makeSharedObjectTest (getSharedObjectFromDebian "libxml2.so.2.9.14" (fetchurl {
+    url = "mirror://debian/pool/main/libx/libxml2/libxml2_2.9.14+dfsg-1.3~deb12u1_amd64.deb";
+    hash = "sha256-NbdstwOPwclAIEpPBfM/+3nQJzU85Gk5fZrc+Pmz4ac=";
+  })) (p: [
+    p.xz
+    p.zlib
+    p.icu72
+  ]);
+}
diff --git a/pkgs/test/cross/default.nix b/pkgs/test/cross/default.nix
index b4da2de5c5b8..bd233db4cd50 100644
--- a/pkgs/test/cross/default.nix
+++ b/pkgs/test/cross/default.nix
@@ -154,7 +154,7 @@ let
     pkgs.pkgsMusl.pkgsCross.gnu64.hello
 
     # Two web browsers -- exercises almost the entire packageset
-    pkgs.pkgsCross.aarch64-multiplatform.qt5.qutebrowser
+    pkgs.pkgsCross.aarch64-multiplatform.qutebrowser-qt5
     pkgs.pkgsCross.aarch64-multiplatform.firefox
 
     # Uses pkgsCross.riscv64-embedded; see https://github.com/NixOS/nixpkgs/issues/267859
diff --git a/pkgs/test/default.nix b/pkgs/test/default.nix
index 363b0a2e1519..b89fcc3ecb6d 100644
--- a/pkgs/test/default.nix
+++ b/pkgs/test/default.nix
@@ -9,10 +9,14 @@ with pkgs;
       pkgSets = lib.pipe pkgNames [
         (filter (lib.hasPrefix "llvmPackages"))
         (filter (n: n != "rocmPackages.llvm"))
-        # Is a throw alias.
+        # Are throw aliases.
         (filter (n: n != "llvmPackages_rocm"))
         (filter (n: n != "llvmPackages_latest"))
         (filter (n: n != "llvmPackages_git"))
+        (filter (n: n != "llvmPackages_6"))
+        (filter (n: n != "llvmPackages_7"))
+        (filter (n: n != "llvmPackages_8"))
+        (filter (n: n != "llvmPackages_10"))
       ];
       tests = lib.genAttrs pkgSets (name: recurseIntoAttrs {
         clang = callPackage ./cc-wrapper { stdenv = pkgs.${name}.stdenv; };
@@ -64,9 +68,7 @@ with pkgs;
             # libcxxStdenv broken
             # fix in https://github.com/NixOS/nixpkgs/pull/216273
           ] ++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) [
-            (filterAttrs (n: _: n != "llvmPackages_8"))
             (filterAttrs (n: _: n != "llvmPackages_9"))
-            (filterAttrs (n: _: n != "llvmPackages_10"))
           ]);
         in
         toJSON sets;
@@ -167,6 +169,8 @@ with pkgs;
 
   pkgs-lib = recurseIntoAttrs (import ../pkgs-lib/tests { inherit pkgs; });
 
+  buildFHSEnv = recurseIntoAttrs (callPackages ./buildFHSEnv { });
+
   nixpkgs-check-by-name = callPackage ./nixpkgs-check-by-name { };
 
   auto-patchelf-hook = callPackage ./auto-patchelf-hook { };
diff --git a/pkgs/test/nixpkgs-check-by-name/scripts/pinned-tool.json b/pkgs/test/nixpkgs-check-by-name/scripts/pinned-tool.json
index b703ce74771e..5b8777ca94b6 100644
--- a/pkgs/test/nixpkgs-check-by-name/scripts/pinned-tool.json
+++ b/pkgs/test/nixpkgs-check-by-name/scripts/pinned-tool.json
@@ -1,4 +1,4 @@
 {
-  "rev": "9b19f5e77dd906cb52dade0b7bd280339d2a1f3d",
-  "ci-path": "/nix/store/qlls5ca8q88qpyygg9ddi60gl1nmvpij-nixpkgs-check-by-name"
+  "rev": "ae5c332cbb5827f6b1f02572496b141021de335f",
+  "ci-path": "/nix/store/ghfxriicygwcrxvm45r0cm9g0vshpw01-nixpkgs-check-by-name"
 }
diff --git a/pkgs/test/nixpkgs-check-by-name/src/eval.rs b/pkgs/test/nixpkgs-check-by-name/src/eval.rs
index e4584f09d8cd..dd30cb9045e5 100644
--- a/pkgs/test/nixpkgs-check-by-name/src/eval.rs
+++ b/pkgs/test/nixpkgs-check-by-name/src/eval.rs
@@ -159,8 +159,8 @@ pub fn check_values(
                     let uses_by_name = match attribute_info {
                         // In these cases the package doesn't qualify for being in pkgs/by-name,
                         // so the UsesByName ratchet is already as tight as it can be
-                        NonAttributeSet => Success(Tight),
-                        NonCallPackage => Success(Tight),
+                        NonAttributeSet => Success(NonApplicable),
+                        NonCallPackage => Success(NonApplicable),
                         // This is the case when the `pkgs/by-name`-internal _internalCallByNamePackageFile
                         // is used for a package outside `pkgs/by-name`
                         CallPackage(CallPackageInfo {
@@ -176,14 +176,14 @@ pub fn check_values(
                             // In the future we could kind of abuse this behavior to have better
                             // enforcement of conditional aliases, but for now we just need to not
                             // give an error.
-                            Success(Tight)
+                            Success(NonApplicable)
                         }
                         // Only derivations can be in pkgs/by-name,
                         // so this attribute doesn't qualify
                         CallPackage(CallPackageInfo {
                             is_derivation: false,
                             ..
-                        }) => Success(Tight),
+                        }) => Success(NonApplicable),
 
                         // The case of an attribute that qualifies:
                         // - Uses callPackage
@@ -191,30 +191,35 @@ pub fn check_values(
                         CallPackage(CallPackageInfo {
                             is_derivation: true,
                             call_package_variant: Manual { path, empty_arg },
-                        }) => Success(Loose(ratchet::UsesByName {
+                        }) => Success(Loose(ratchet::CouldUseByName {
                             call_package_path: path,
                             empty_arg,
                         })),
                     };
                     uses_by_name.map(|x| ratchet::Package {
-                        empty_non_auto_called: Tight,
+                        manual_definition: Tight,
                         uses_by_name: x,
                     })
                 }
                 NonByName(EvalFailure) => {
-                    // This is a bit of an odd case: We don't even _know_ whether this attribute
-                    // would qualify for using pkgs/by-name. We can either:
-                    // - Assume it's not using pkgs/by-name, which has the problem that if a
-                    //   package evaluation gets broken temporarily, the fix can remove it from
-                    //   pkgs/by-name again
-                    // - Assume it's using pkgs/by-name already, which has the problem that if a
-                    //   package evaluation gets broken temporarily, fixing it requires a move to
-                    //   pkgs/by-name
-                    // We choose the latter, since we want to move towards pkgs/by-name, not away
-                    // from it
+                    // We don't know anything about this attribute really
                     Success(ratchet::Package {
-                        empty_non_auto_called: Tight,
-                        uses_by_name: Tight,
+                        // We'll assume that we can't remove any manual definitions, which has the
+                        // minimal drawback that if there was a manual definition that could've
+                        // been removed, fixing the package requires removing the definition, no
+                        // big deal, that's a minor edit.
+                        manual_definition: Tight,
+
+                        // Regarding whether this attribute could `pkgs/by-name`, we don't really
+                        // know, so return NonApplicable, which has the effect that if a
+                        // package evaluation gets broken temporarily, the fix can remove it from
+                        // pkgs/by-name again. For now this isn't our problem, but in the future we
+                        // might have another check to enforce that evaluation must not be broken.
+                        // The alternative of assuming that it's using `pkgs/by-name` already
+                        // has the problem that if a package evaluation gets broken temporarily,
+                        // fixing it requires a move to pkgs/by-name, which could happen more
+                        // often and isn't really justified.
+                        uses_by_name: NonApplicable,
                     })
                 }
                 ByName(Missing) => NixpkgsProblem::UndefinedAttr {
@@ -248,7 +253,7 @@ pub fn check_values(
 
                     check_result.and(match &call_package_variant {
                         Auto => Success(ratchet::Package {
-                            empty_non_auto_called: Tight,
+                            manual_definition: Tight,
                             uses_by_name: Tight,
                         }),
                         Manual { path, empty_arg } => {
@@ -261,11 +266,7 @@ pub fn check_values(
                             if correct_file {
                                 Success(ratchet::Package {
                                     // Empty arguments for non-auto-called packages are not allowed anymore.
-                                    empty_non_auto_called: if *empty_arg {
-                                        Loose(ratchet::EmptyNonAutoCalled)
-                                    } else {
-                                        Tight
-                                    },
+                                    manual_definition: if *empty_arg { Loose(()) } else { Tight },
                                     uses_by_name: Tight,
                                 })
                             } else {
diff --git a/pkgs/test/nixpkgs-check-by-name/src/ratchet.rs b/pkgs/test/nixpkgs-check-by-name/src/ratchet.rs
index f8c129626cc0..10ecc01d3580 100644
--- a/pkgs/test/nixpkgs-check-by-name/src/ratchet.rs
+++ b/pkgs/test/nixpkgs-check-by-name/src/ratchet.rs
@@ -33,7 +33,7 @@ impl Nixpkgs {
 /// The ratchet value for a top-level package
 pub struct Package {
     /// The ratchet value for the check for non-auto-called empty arguments
-    pub empty_non_auto_called: RatchetState<EmptyNonAutoCalled>,
+    pub manual_definition: RatchetState<ManualDefinition>,
 
     /// The ratchet value for the check for new packages using pkgs/by-name
     pub uses_by_name: RatchetState<UsesByName>,
@@ -43,10 +43,10 @@ impl Package {
     /// Validates the ratchet checks for a top-level package
     pub fn compare(name: &str, optional_from: Option<&Self>, to: &Self) -> Validation<()> {
         validation::sequence_([
-            RatchetState::<EmptyNonAutoCalled>::compare(
+            RatchetState::<ManualDefinition>::compare(
                 name,
-                optional_from.map(|x| &x.empty_non_auto_called),
-                &to.empty_non_auto_called,
+                optional_from.map(|x| &x.manual_definition),
+                &to.manual_definition,
             ),
             RatchetState::<UsesByName>::compare(
                 name,
@@ -58,55 +58,82 @@ impl Package {
 }
 
 /// The ratchet state of a generic ratchet check.
-pub enum RatchetState<Context> {
+pub enum RatchetState<Ratchet: ToNixpkgsProblem> {
     /// The ratchet is loose, it can be tightened more.
     /// In other words, this is the legacy state we're trying to move away from.
     /// Introducing new instances is not allowed but previous instances will continue to be allowed.
     /// The `Context` is context for error messages in case a new instance of this state is
     /// introduced
-    Loose(Context),
+    Loose(Ratchet::ToContext),
     /// The ratchet is tight, it can't be tightened any further.
     /// This is either because we already use the latest state, or because the ratchet isn't
     /// relevant.
     Tight,
+    /// This ratchet can't be applied.
+    /// State transitions from/to NonApplicable are always allowed
+    NonApplicable,
 }
 
 /// A trait that can convert an attribute-specific error context into a NixpkgsProblem
 pub trait ToNixpkgsProblem {
+    /// Context relating to the Nixpkgs that is being transitioned _to_
+    type ToContext;
+
     /// How to convert an attribute-specific error context into a NixpkgsProblem
-    fn to_nixpkgs_problem(name: &str, context: &Self, existed_before: bool) -> NixpkgsProblem;
+    fn to_nixpkgs_problem(
+        name: &str,
+        optional_from: Option<()>,
+        to: &Self::ToContext,
+    ) -> NixpkgsProblem;
 }
 
 impl<Context: ToNixpkgsProblem> RatchetState<Context> {
     /// Compare the previous ratchet state of an attribute to the new state.
     /// The previous state may be `None` in case the attribute is new.
     fn compare(name: &str, optional_from: Option<&Self>, to: &Self) -> Validation<()> {
-        // If we don't have a previous state, enforce a tight ratchet
-        let from = optional_from.unwrap_or(&RatchetState::Tight);
-        match (from, to) {
-            // Always okay to keep it tight or tighten the ratchet
-            (_, RatchetState::Tight) => Success(()),
-
-            // Grandfathering policy for a loose ratchet
-            (RatchetState::Loose { .. }, RatchetState::Loose { .. }) => Success(()),
-
+        match (optional_from, to) {
             // Loosening a ratchet is now allowed
-            (RatchetState::Tight, RatchetState::Loose(context)) => {
-                Context::to_nixpkgs_problem(name, context, optional_from.is_some()).into()
+            (Some(RatchetState::Tight), RatchetState::Loose(loose_context)) => {
+                Context::to_nixpkgs_problem(name, Some(()), loose_context).into()
             }
+
+            // Introducing a loose ratchet is also not allowed
+            (None, RatchetState::Loose(loose_context)) => {
+                Context::to_nixpkgs_problem(name, None, loose_context).into()
+            }
+
+            // Everything else is allowed, including:
+            // - Loose -> Loose (grandfathering policy for a loose ratchet)
+            // - -> Tight (always okay to keep or make the ratchet tight)
+            // - Anything involving NotApplicable, where we can't really make any good calls
+            _ => Success(()),
         }
     }
 }
 
-/// The ratchet value of an attribute
-/// for the non-auto-called empty argument check of a single.
+/// The ratchet to check whether a top-level attribute has/needs
+/// a manual definition, e.g. in all-packages.nix.
+///
+/// This ratchet is only tight for attributes that:
+/// - Are not defined in `pkgs/by-name`, and rely on a manual definition
+/// - Are defined in `pkgs/by-name` without any manual definition,
+///   (no custom argument overrides)
+/// - Are defined with `pkgs/by-name` with a manual definition that can't be removed
+///   because it provides custom argument overrides
 ///
-/// This checks that packages defined in `pkgs/by-name` cannot be overridden
-/// with an empty second argument like `callPackage ... { }`.
-pub struct EmptyNonAutoCalled;
+/// In comparison, this ratchet is loose for attributes that:
+/// - Are defined in `pkgs/by-name` with a manual definition
+///   that doesn't have any custom argument overrides
+pub enum ManualDefinition {}
+
+impl ToNixpkgsProblem for ManualDefinition {
+    type ToContext = ();
 
-impl ToNixpkgsProblem for EmptyNonAutoCalled {
-    fn to_nixpkgs_problem(name: &str, _context: &Self, _existed_before: bool) -> NixpkgsProblem {
+    fn to_nixpkgs_problem(
+        name: &str,
+        _optional_from: Option<()>,
+        _to: &Self::ToContext,
+    ) -> NixpkgsProblem {
         NixpkgsProblem::WrongCallPackage {
             relative_package_file: structure::relative_file_for_package(name),
             package_name: name.to_owned(),
@@ -119,8 +146,10 @@ impl ToNixpkgsProblem for EmptyNonAutoCalled {
 ///
 /// This checks that all new package defined using callPackage must be defined via pkgs/by-name
 /// It also checks that once a package uses pkgs/by-name, it can't switch back to all-packages.nix
+pub enum UsesByName {}
+
 #[derive(Clone)]
-pub struct UsesByName {
+pub struct CouldUseByName {
     /// The first callPackage argument, used for better errors
     pub call_package_path: Option<PathBuf>,
     /// Whether the second callPackage argument is empty, used for better errors
@@ -128,18 +157,24 @@ pub struct UsesByName {
 }
 
 impl ToNixpkgsProblem for UsesByName {
-    fn to_nixpkgs_problem(name: &str, a: &Self, existed_before: bool) -> NixpkgsProblem {
-        if existed_before {
+    type ToContext = CouldUseByName;
+
+    fn to_nixpkgs_problem(
+        name: &str,
+        optional_from: Option<()>,
+        to: &Self::ToContext,
+    ) -> NixpkgsProblem {
+        if let Some(()) = optional_from {
             NixpkgsProblem::MovedOutOfByName {
                 package_name: name.to_owned(),
-                call_package_path: a.call_package_path.clone(),
-                empty_arg: a.empty_arg,
+                call_package_path: to.call_package_path.clone(),
+                empty_arg: to.empty_arg,
             }
         } else {
             NixpkgsProblem::NewPackageNotUsingByName {
                 package_name: name.to_owned(),
-                call_package_path: a.call_package_path.clone(),
-                empty_arg: a.empty_arg,
+                call_package_path: to.call_package_path.clone(),
+                empty_arg: to.empty_arg,
             }
         }
     }
diff --git a/pkgs/test/nixpkgs-check-by-name/tests/manual-definition/all-packages.nix b/pkgs/test/nixpkgs-check-by-name/tests/manual-definition/all-packages.nix
new file mode 100644
index 000000000000..07b2caaab4e7
--- /dev/null
+++ b/pkgs/test/nixpkgs-check-by-name/tests/manual-definition/all-packages.nix
@@ -0,0 +1,10 @@
+self: super: {
+  nonAttributeSet = self.callPackage ({ someDrv }: someDrv) { };
+  nonCallPackage = self.callPackage ({ someDrv }: someDrv) { };
+  internalCallByName = self.callPackage ({ someDrv }: someDrv) { };
+  nonDerivation = self.callPackage ({ someDrv }: someDrv) { };
+
+  onlyMove = self.callPackage ./pkgs/by-name/on/onlyMove/package.nix { };
+
+  noEval = self.callPackage ./pkgs/by-name/no/noEval/package.nix { };
+}
diff --git a/pkgs/test/nixpkgs-check-by-name/tests/manual-definition/base/all-packages.nix b/pkgs/test/nixpkgs-check-by-name/tests/manual-definition/base/all-packages.nix
new file mode 100644
index 000000000000..75efb5952e7a
--- /dev/null
+++ b/pkgs/test/nixpkgs-check-by-name/tests/manual-definition/base/all-packages.nix
@@ -0,0 +1,9 @@
+self: super: {
+  nonAttributeSet = null;
+  nonCallPackage = self.someDrv;
+  internalCallByName = self._internalCallByNamePackageFile ./some-pkg.nix;
+  nonDerivation = self.callPackage ({ }: { }) { };
+
+  onlyMove = self.callPackage ({ someDrv }: someDrv) { };
+  noEval = throw "foo";
+}
diff --git a/pkgs/test/nixpkgs-check-by-name/tests/manual-definition/base/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/manual-definition/base/default.nix
new file mode 100644
index 000000000000..861260cdca4b
--- /dev/null
+++ b/pkgs/test/nixpkgs-check-by-name/tests/manual-definition/base/default.nix
@@ -0,0 +1 @@
+import <test-nixpkgs> { root = ./.; }
diff --git a/pkgs/test/nixpkgs-check-by-name/tests/manual-definition/base/pkgs/by-name/README.md b/pkgs/test/nixpkgs-check-by-name/tests/manual-definition/base/pkgs/by-name/README.md
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/pkgs/test/nixpkgs-check-by-name/tests/manual-definition/base/pkgs/by-name/README.md
diff --git a/pkgs/test/nixpkgs-check-by-name/tests/no-eval/pkgs/by-name/fo/foo/package.nix b/pkgs/test/nixpkgs-check-by-name/tests/manual-definition/base/some-pkg.nix
index a1b92efbbadb..a1b92efbbadb 100644
--- a/pkgs/test/nixpkgs-check-by-name/tests/no-eval/pkgs/by-name/fo/foo/package.nix
+++ b/pkgs/test/nixpkgs-check-by-name/tests/manual-definition/base/some-pkg.nix
diff --git a/pkgs/test/nixpkgs-check-by-name/tests/manual-definition/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/manual-definition/default.nix
new file mode 100644
index 000000000000..861260cdca4b
--- /dev/null
+++ b/pkgs/test/nixpkgs-check-by-name/tests/manual-definition/default.nix
@@ -0,0 +1 @@
+import <test-nixpkgs> { root = ./.; }
diff --git a/pkgs/test/nixpkgs-check-by-name/tests/manual-definition/expected b/pkgs/test/nixpkgs-check-by-name/tests/manual-definition/expected
new file mode 100644
index 000000000000..29d33f7dbdc0
--- /dev/null
+++ b/pkgs/test/nixpkgs-check-by-name/tests/manual-definition/expected
@@ -0,0 +1,2 @@
+pkgs.noEval: This attribute is manually defined (most likely in pkgs/top-level/all-packages.nix), which is only allowed if the definition is of the form `pkgs.callPackage pkgs/by-name/no/noEval/package.nix { ... }` with a non-empty second argument.
+pkgs.onlyMove: This attribute is manually defined (most likely in pkgs/top-level/all-packages.nix), which is only allowed if the definition is of the form `pkgs.callPackage pkgs/by-name/on/onlyMove/package.nix { ... }` with a non-empty second argument.
diff --git a/pkgs/test/nixpkgs-check-by-name/tests/manual-definition/pkgs/by-name/no/noEval/package.nix b/pkgs/test/nixpkgs-check-by-name/tests/manual-definition/pkgs/by-name/no/noEval/package.nix
new file mode 100644
index 000000000000..a1b92efbbadb
--- /dev/null
+++ b/pkgs/test/nixpkgs-check-by-name/tests/manual-definition/pkgs/by-name/no/noEval/package.nix
@@ -0,0 +1 @@
+{ someDrv }: someDrv
diff --git a/pkgs/test/nixpkgs-check-by-name/tests/manual-definition/pkgs/by-name/on/onlyMove/package.nix b/pkgs/test/nixpkgs-check-by-name/tests/manual-definition/pkgs/by-name/on/onlyMove/package.nix
new file mode 100644
index 000000000000..a1b92efbbadb
--- /dev/null
+++ b/pkgs/test/nixpkgs-check-by-name/tests/manual-definition/pkgs/by-name/on/onlyMove/package.nix
@@ -0,0 +1 @@
+{ someDrv }: someDrv
diff --git a/pkgs/test/nixpkgs-check-by-name/tests/no-eval/all-packages.nix b/pkgs/test/nixpkgs-check-by-name/tests/no-eval/all-packages.nix
index e2831c2d542e..38762c6de1cc 100644
--- a/pkgs/test/nixpkgs-check-by-name/tests/no-eval/all-packages.nix
+++ b/pkgs/test/nixpkgs-check-by-name/tests/no-eval/all-packages.nix
@@ -1,3 +1,5 @@
 self: super: {
   iDontEval = throw "I don't eval";
+
+  futureEval = self.callPackage ({ someDrv }: someDrv) { };
 }
diff --git a/pkgs/test/nixpkgs-check-by-name/tests/no-eval/base/all-packages.nix b/pkgs/test/nixpkgs-check-by-name/tests/no-eval/base/all-packages.nix
new file mode 100644
index 000000000000..ac763b454eb0
--- /dev/null
+++ b/pkgs/test/nixpkgs-check-by-name/tests/no-eval/base/all-packages.nix
@@ -0,0 +1,3 @@
+self: super: {
+  futureEval = throw "foo";
+}
diff --git a/pkgs/test/nixpkgs-check-by-name/tests/no-eval/base/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/no-eval/base/default.nix
new file mode 100644
index 000000000000..861260cdca4b
--- /dev/null
+++ b/pkgs/test/nixpkgs-check-by-name/tests/no-eval/base/default.nix
@@ -0,0 +1 @@
+import <test-nixpkgs> { root = ./.; }
diff --git a/pkgs/test/nixpkgs-check-by-name/tests/no-eval/base/pkgs/by-name/README.md b/pkgs/test/nixpkgs-check-by-name/tests/no-eval/base/pkgs/by-name/README.md
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/pkgs/test/nixpkgs-check-by-name/tests/no-eval/base/pkgs/by-name/README.md
diff --git a/pkgs/test/nixpkgs-check-by-name/tests/no-eval/pkgs/by-name/README.md b/pkgs/test/nixpkgs-check-by-name/tests/no-eval/pkgs/by-name/README.md
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/pkgs/test/nixpkgs-check-by-name/tests/no-eval/pkgs/by-name/README.md
diff --git a/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg/base/pkgs/by-name/README.md b/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg/base/pkgs/by-name/README.md
index b0d2b34e338a..e69de29bb2d1 100644
--- a/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg/base/pkgs/by-name/README.md
+++ b/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg/base/pkgs/by-name/README.md
@@ -1 +0,0 @@
-(this is just here so the directory can get tracked by git)
diff --git a/pkgs/test/texlive/default.nix b/pkgs/test/texlive/default.nix
index 12fdd5c45f8b..5f7067543932 100644
--- a/pkgs/test/texlive/default.nix
+++ b/pkgs/test/texlive/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, buildEnv, runCommand, fetchurl, file, texlive, writeShellScript, writeText, texliveInfraOnly, texliveSmall, texliveMedium, texliveFull }:
+{ lib, stdenv, buildEnv, runCommand, fetchurl, file, texlive, writeShellScript, writeText, texliveInfraOnly, texliveConTeXt, texliveSmall, texliveMedium, texliveFull }:
 
 rec {
 
@@ -70,10 +70,26 @@ rec {
       \end{document}
     '';
   } ''
-    chktex -v -nall -w1 "$input" 2>&1 | tee "$out"
+    # chktex is supposed to return 2 when it (successfully) finds warnings, but no errors,
+    # see http://git.savannah.nongnu.org/cgit/chktex.git/commit/?id=ec0fb9b58f02a62ff0bfec98b997208e9d7a5998
+    (set +e; chktex -v -nall -w1 "$input" 2>&1; [ $? = 2 ] || exit 1; set -e)  | tee "$out"
+    # also check that the output does indeed contain "One warning printed"
     grep "One warning printed" "$out"
   '';
 
+  context = mkTeXTest {
+    name = "texlive-test-context";
+    format = "context";
+    texLive = texliveConTeXt;
+    text = ''
+      \starttext
+      \startsection[title={ConTeXt test document}]
+        This is an {\em incredibly} simple ConTeXt document.
+      \stopsection
+      \stoptext
+    '';
+  };
+
   dvipng = lib.recurseIntoAttrs {
     # https://github.com/NixOS/nixpkgs/issues/75605
     basic = runCommand "texlive-test-dvipng-basic" {
@@ -414,6 +430,12 @@ rec {
         # crossrefware: require bibtexperllibs under TEXMFROOT
         "bbl2bib" "bibdoiadd" "bibmradd" "biburl2doi" "bibzbladd" "checkcites" "ltx2crossrefxml"
 
+        # epstopdf: requires kpsewhich
+        "epstopdf" "repstopdf"
+
+        # requires kpsewhich
+        "memoize-extract.pl" "memoize-extract.py"
+
         # require other texlive binaries in PATH
         "allcm" "allec" "chkweb" "fontinst" "ht*" "installfont-tl" "kanji-config-updmap-sys" "kanji-config-updmap-user"
         "kpse*" "latexfileversion" "mkocp" "mkofm" "mtxrunjit" "pdftex-quiet" "pslatex" "rumakeindex" "texconfig"
@@ -421,7 +443,7 @@ rec {
 
         # misc luatex binaries searching for luatex in PATH
         "citeproc-lua" "context" "contextjit" "ctanbib" "digestif" "epspdf" "l3build" "luafindfont" "luaotfload-tool"
-        "luatools" "make4ht" "pmxchords" "tex4ebook" "texdoc" "texlogsieve" "xindex"
+        "luatools" "make4ht" "pmxchords" "tex4ebook" "texblend" "texdoc" "texfindpkg" "texlogsieve" "xindex"
 
         # requires full TEXMFROOT (e.g. for config)
         "mktexfmt" "mktexmf" "mktexpk" "mktextfm" "psnup" "psresize" "pstops" "tlmgr" "updmap" "webquiz"
@@ -500,6 +522,13 @@ rec {
           args=
           ignoreExitCode=
           binCount=$((binCount + 1))
+
+          # ignore non-executable files (such as context.lua)
+          if [[ ! -x "$bin" ]] ; then
+            ignoredCount=$((ignoredCount + 1))
+            continue
+          fi
+
           case "$base" in
             ${lib.concatStringsSep "|" ignored})
               ignoredCount=$((ignoredCount + 1))
@@ -572,6 +601,7 @@ rec {
         (pkg: ''
           for bin in '${pkg.outPath}'/bin/* ; do
             grep -I -q . "$bin" || continue  # ignore binary files
+            [[ -x "$bin" ]] || continue # ignore non-executable files (such as context.lua)
             scriptCount=$((scriptCount + 1))
             read -r cmdline < "$bin"
             read -r interp <<< "$cmdline"
diff --git a/pkgs/tools/X11/ffcast/default.nix b/pkgs/tools/X11/ffcast/default.nix
index 9b2611dde210..c70ef9da2e3c 100644
--- a/pkgs/tools/X11/ffcast/default.nix
+++ b/pkgs/tools/X11/ffcast/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ffcast";
-  version = "2.5.0";
+  version = "2.5.1";
 
   src = fetchFromGitHub {
     owner = "ropery";
     repo = "FFcast";
     rev = version;
-    sha256 = "047y32bixhc8ksr98vwpgd0k1xxgsv2vs0n3kc2xdac4krc9454h";
+    sha256 = "sha256-kxqwDGEguFTFHkQzXctXqxslt0+bYnfUdQ8C/8+eTXo=";
   };
 
   nativeBuildInputs = [ autoreconfHook makeWrapper perl /*for pod2man*/ ];
diff --git a/pkgs/tools/X11/screen-message/default.nix b/pkgs/tools/X11/screen-message/default.nix
index 3701684af8d8..c049c3841ea6 100644
--- a/pkgs/tools/X11/screen-message/default.nix
+++ b/pkgs/tools/X11/screen-message/default.nix
@@ -1,12 +1,14 @@
-{ lib, stdenv, fetchurl, autoreconfHook, pkg-config, gtk3 }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, gtk3 }:
 
 stdenv.mkDerivation rec {
   pname = "screen-message";
-  version = "0.26";
+  version = "0.28";
 
-  src = fetchurl {
-    url = "mirror://debian/pool/main/s/screen-message/screen-message_${version}.orig.tar.gz";
-    sha256 = "sha256-vBKnuXOEQZDACmlNP9wjJ3NbIdixIx7I72a6Nj6pjzc=";
+  src = fetchFromGitHub {
+    owner = "nomeata";
+    repo = "screen-message";
+    rev = version;
+    hash = "sha256-KHJL1N72Hc1B1m0olxoZxBHIpq/d/T3m2VdS5XC9+tk=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/tools/admin/afterburn/default.nix b/pkgs/tools/admin/afterburn/default.nix
index 7cd637c28d9e..ddb8d0c9bfd4 100644
--- a/pkgs/tools/admin/afterburn/default.nix
+++ b/pkgs/tools/admin/afterburn/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "afterburn";
-  version = "5.4.3";
+  version = "5.5.1";
 
   src = fetchFromGitHub {
     owner = "coreos";
     repo = "afterburn";
     rev = "v${version}";
-    sha256 = "sha256-IxAmamWJjM8DAEihH3lYgOLKOcSRvh48GSIX797Nhjo=";
+    sha256 = "sha256-3+FlW/y8EScJKaFvxa/hOlDF18kEtz2XyMdrDZgcMXs=";
   };
 
-  cargoHash = "sha256-vQTxqAnnfjg4zFSOPLIcchRjqv0HJ3L2jBSNubpO9DM=";
+  cargoHash = "sha256-DTFvaXPr21qvx1FA1phueRxTgcrfhGgb9Vktah372Uo=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ];
diff --git a/pkgs/tools/admin/aliyun-cli/default.nix b/pkgs/tools/admin/aliyun-cli/default.nix
index 69b195a4b6c3..e45faef00cbe 100644
--- a/pkgs/tools/admin/aliyun-cli/default.nix
+++ b/pkgs/tools/admin/aliyun-cli/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "aliyun-cli";
-  version = "3.0.196";
+  version = "3.0.198";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "aliyun";
     repo = pname;
     fetchSubmodules = true;
-    sha256 = "sha256-VywkE1G8oobDp6D4lsTUzKvJ6eAo9J2r1/+HuM6u/J8=";
+    sha256 = "sha256-kIFB1wFVZTFr4tqSiBvgwqGLVq2UmG58vAqhug8giE0=";
   };
 
-  vendorHash = "sha256-ZcW0Ab7uPx8XUpo3tSSt2eKjUlRlbiMvrLGJK2StKf8=";
+  vendorHash = "sha256-NoismcBQtVv7QOIGOqRsmau9zY+MkCAl46ll2y0hbW4=";
 
   subPackages = [ "main" ];
 
diff --git a/pkgs/tools/admin/ansible/lint.nix b/pkgs/tools/admin/ansible/lint.nix
index e1c168f8bf53..24d595e4b51a 100644
--- a/pkgs/tools/admin/ansible/lint.nix
+++ b/pkgs/tools/admin/ansible/lint.nix
@@ -6,12 +6,12 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "ansible-lint";
-  version = "6.21.1";
+  version = "6.22.2";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Bf/G38jzy79W9/l3CzQ2/HkJutXB11Rw76BkUx8C324=";
+    hash = "sha256-L0Cf6Y762mHan4q3zfNKW2feQ+EzjO4GGfXVH0+LFd0=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/admin/aws-sso-creds/default.nix b/pkgs/tools/admin/aws-sso-creds/default.nix
index d4ca59da7137..caa1b05c1b1d 100644
--- a/pkgs/tools/admin/aws-sso-creds/default.nix
+++ b/pkgs/tools/admin/aws-sso-creds/default.nix
@@ -6,15 +6,15 @@
 }:
 buildGoModule rec {
   pname = "aws-sso-creds";
-  version = "1.4.1";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "jaxxstorm";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-V50t1L4+LZnMaET3LTp1nt7frNpu95KjgbQ5Onqt5sI=";
+    sha256 = "sha256-/zvXVDVlnDcgYpnumN7owN2fHexvQu5D4LvNmuQNS+w=";
   };
-  vendorHash = "sha256-0jXZpdiSHMn94MT3mPNtbfV7owluWhy1iAvQIBdebdE=";
+  vendorHash = "sha256-mJj5ilH4crlL5jesvg0y3RZaMgqlrenWgJApxUw6jEk=";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/tools/admin/awscli2/default.nix b/pkgs/tools/admin/awscli2/default.nix
index 6a9d9396df17..034b861f89c0 100644
--- a/pkgs/tools/admin/awscli2/default.nix
+++ b/pkgs/tools/admin/awscli2/default.nix
@@ -41,14 +41,14 @@ let
 in
 with py.pkgs; buildPythonApplication rec {
   pname = "awscli2";
-  version = "2.15.0"; # N.B: if you change this, check if overrides are still up-to-date
+  version = "2.15.15"; # N.B: if you change this, check if overrides are still up-to-date
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = "aws-cli";
     rev = "refs/tags/${version}";
-    hash = "sha256-02KGaYMVlNFPhWBhRIgwhm7FcwT7cBxKv6HDXjqpn5s=";
+    hash = "sha256-hJuJkCiKgSxfPVgS5II7BwpyQhjaRE2Ct3ZJQq6xWgg=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/admin/azure-cli/python-packages.nix b/pkgs/tools/admin/azure-cli/python-packages.nix
index 0f1c2f3d327b..176871f6fd50 100644
--- a/pkgs/tools/admin/azure-cli/python-packages.nix
+++ b/pkgs/tools/admin/azure-cli/python-packages.nix
@@ -173,7 +173,7 @@ let
       });
 
       azure-mgmt-devtestlabs = overrideAzureMgmtPackage super.azure-mgmt-devtestlabs "4.0.0" "zip"
-        "sha256-WVScTEBo8mRmsQl7V0qOUJn7LNbIvgoAOVsG07KeJ40=r";
+        "sha256-WVScTEBo8mRmsQl7V0qOUJn7LNbIvgoAOVsG07KeJ40=";
 
       azure-mgmt-loganalytics = overrideAzureMgmtPackage super.azure-mgmt-loganalytics "13.0.0b4" "zip"
         "sha256-Jm1t7v5vyFjNNM/evVaEI9sXJKNwJk6XAXuJSRSnKHk=";
diff --git a/pkgs/tools/admin/balena-cli/default.nix b/pkgs/tools/admin/balena-cli/default.nix
index b1eb3db82b1f..4ab5dadb1ecc 100644
--- a/pkgs/tools/admin/balena-cli/default.nix
+++ b/pkgs/tools/admin/balena-cli/default.nix
@@ -18,16 +18,16 @@ let
   };
 in buildNpmPackage' rec {
   pname = "balena-cli";
-  version = "17.4.11";
+  version = "17.5.1";
 
   src = fetchFromGitHub {
     owner = "balena-io";
     repo = "balena-cli";
     rev = "v${version}";
-    hash = "sha256-iDIbykHSI5mVi6wvQhsox+d/Eu03dJB3qOk664CHATY=";
+    hash = "sha256-DapVJAXfTdGjtVBIKuc+xKZ6yWw1eC2pxTwt5O0QrWk=";
   };
 
-  npmDepsHash = "sha256-D0vGwYl0oofeAZhIZDGZttjhjbKldGzDJmt1IRYqUCs=";
+  npmDepsHash = "sha256-yAcUGOSrQ+AB2b0eDKCMhZRP/LEKcmJmO5xNhVJcqX4=";
 
   postPatch = ''
     ln -s npm-shrinkwrap.json package-lock.json
diff --git a/pkgs/tools/admin/cjdns-tools/default.nix b/pkgs/tools/admin/cjdns-tools/default.nix
index 2468d329548c..7b314e1aa131 100644
--- a/pkgs/tools/admin/cjdns-tools/default.nix
+++ b/pkgs/tools/admin/cjdns-tools/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation {
     homepage = "https://github.com/cjdelisle/cjdns";
     description = "Tools for cjdns managment";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ mkg20001 ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/admin/copilot-cli/default.nix b/pkgs/tools/admin/copilot-cli/default.nix
index a391aa4777d3..ed75736224cd 100644
--- a/pkgs/tools/admin/copilot-cli/default.nix
+++ b/pkgs/tools/admin/copilot-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "copilot-cli";
-  version = "1.33.0";
+  version = "1.33.1";
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-4LDeilWi3FzvrvHjEyQKQi1GxouSlzDY96yBuMfpsXM=";
+    hash = "sha256-/xuS5tJBV67gXGHQ93FpMXMLXnhAgnicQnKx/pnwyAM=";
   };
 
-  vendorHash = "sha256-EqgOyjb2raE5hW3h+czbsi/F9SVNDwPWM1L6GC7v6IY=";
+  vendorHash = "sha256-ekAuvvLxk9cwIuElosc6QbsW7+3f/mO8vsA74DA82D0=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/admin/credhub-cli/default.nix b/pkgs/tools/admin/credhub-cli/default.nix
index 7b1bd3cd24a7..f53258574808 100644
--- a/pkgs/tools/admin/credhub-cli/default.nix
+++ b/pkgs/tools/admin/credhub-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "credhub-cli";
-  version = "2.9.24";
+  version = "2.9.25";
 
   src = fetchFromGitHub {
     owner = "cloudfoundry-incubator";
     repo = "credhub-cli";
     rev = version;
-    sha256 = "sha256-9SEdMK9KECte9QEfosju0PHxlDWwbQkn4QKi/XgFVuY=";
+    sha256 = "sha256-QGsnNQvER5IaWY4Zh9sFa7eOeLnDdNDrLLpwgBALGm8=";
   };
 
   # these tests require network access that we're not going to give them
diff --git a/pkgs/tools/admin/fits-cloudctl/default.nix b/pkgs/tools/admin/fits-cloudctl/default.nix
index 3c2a524c004d..c6aa0a2a7080 100644
--- a/pkgs/tools/admin/fits-cloudctl/default.nix
+++ b/pkgs/tools/admin/fits-cloudctl/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "fits-cloudctl";
-  version = "0.12.12";
+  version = "0.12.13";
 
   src = fetchFromGitHub {
     owner = "fi-ts";
     repo = "cloudctl";
     rev = "v${version}";
-    sha256 = "sha256-jNs1I6aVmyHbVghO30r6+gVg0vVLqHpddX1KVX1Xh+s=";
+    sha256 = "sha256-Vb7jBgk052WBnlUgS5lVooi/bY49rRqCWbOO4cPkPx4=";
   };
 
   vendorHash = "sha256-NR5Jw4zCYRg6xc9priCVNH+9wOVWx3bmstc3nkQDmv8=";
diff --git a/pkgs/tools/admin/gam/default.nix b/pkgs/tools/admin/gam/default.nix
index 6ea2b6c3da37..6cf340150ffb 100644
--- a/pkgs/tools/admin/gam/default.nix
+++ b/pkgs/tools/admin/gam/default.nix
@@ -52,8 +52,8 @@ python3.pkgs.buildPythonApplication rec {
     runHook preInstall
     mkdir -p $out/bin
     cp gam.py $out/bin/gam
-    mkdir -p $out/lib/${python3.libPrefix}/site-packages
-    cp -r gam $out/lib/${python3.libPrefix}/site-packages
+    mkdir -p $out/${python3.sitePackages}
+    cp -r gam $out/${python3.sitePackages}
     runHook postInstall
   '';
 
diff --git a/pkgs/tools/admin/granted/default.nix b/pkgs/tools/admin/granted/default.nix
index 116c8a118b94..79fc6358ed29 100644
--- a/pkgs/tools/admin/granted/default.nix
+++ b/pkgs/tools/admin/granted/default.nix
@@ -12,16 +12,16 @@
 
 buildGoModule rec {
   pname = "granted";
-  version = "0.20.6";
+  version = "0.20.7";
 
   src = fetchFromGitHub {
     owner = "common-fate";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-I+2KAj12iURPRBu2DoQysGcoBz2jooEw8JkB/sJAkkA=";
+    sha256 = "sha256-AGpR587vz1t5z/J09n4/XvFPgbwb66wRTfSVOTCWeSU=";
   };
 
-  vendorHash = "sha256-aPOWlXaZjmmj/iQqvlFSVFLQwQsWQ9q8yTElw5KBNIw=";
+  vendorHash = "sha256-yw/hl82RQPjZB0SsVr4OPDUsFH2TY6i4RpVE7wd4fwk=";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/tools/admin/manta/default.nix b/pkgs/tools/admin/manta/default.nix
index f768305d20a1..ef0d92150360 100644
--- a/pkgs/tools/admin/manta/default.nix
+++ b/pkgs/tools/admin/manta/default.nix
@@ -8,16 +8,16 @@
 
 buildNpmPackage rec {
   pname = "manta";
-  version = "5.4.1";
+  version = "5.4.2";
 
   src = fetchFromGitHub {
     owner = "TritonDataCenter";
     repo = "node-manta";
     rev = "v${version}";
-    hash = "sha256-C6O5yTCBABMsz2scot8v3IwPbdYvJyZbcPOLfeDXCoo=";
+    hash = "sha256-Uj3fNzeERiO++sW2uyAbtfN/1Ed6uRVBBvCecncq/QY=";
   };
 
-  npmDepsHash = "sha256-4Zz9sSUXE2dXdkIka2z5bQ2pNmCXXCBS2Sr0JHQOBQw=";
+  npmDepsHash = "sha256-Xk/K90K+X73ZTV6u2GJij8815GdBn6igXmpWLaCfKF4=";
 
   dontBuild = true;
 
@@ -50,6 +50,7 @@ buildNpmPackage rec {
   meta = with lib; {
     description = "Manta Object-Storage Client CLIs and Node.js SDK";
     homepage = "https://github.com/TritonDataCenter/node-manta";
+    changelog = "https://github.com/TritonDataCenter/node-manta/blob/v${version}/CHANGES.md";
     license = licenses.mit;
     maintainers = with maintainers; [ teutat3s ];
     mainProgram = "mls";
diff --git a/pkgs/tools/admin/meshcentral/default.nix b/pkgs/tools/admin/meshcentral/default.nix
index 46286926bb4e..745eb1048079 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.6";
+  version = "1.1.20";
 
   src = fetchzip {
-    url = "https://registry.npmjs.org/meshcentral/-/meshcentral-1.1.6.tgz";
-    sha256 = "03f2jyjrxmmr28949m3niwb437akyp6kg6h1m2jkaxfg5yj4hs4v";
+    url = "https://registry.npmjs.org/meshcentral/-/meshcentral-1.1.20.tgz";
+    sha256 = "1iykx1lrsd09z3jbykspjgibsbpcgrw5b60dmpzcc1i4fr0zpnz9";
   };
 
   patches = [ ./fix-js-include-paths.patch ];
@@ -21,7 +21,7 @@ yarn2nix-moretea.mkYarnPackage {
 
   offlineCache = fetchYarnDeps {
     yarnLock = ./yarn.lock;
-    hash = "sha256-aKWa6pvIi2JkOtpiWH19KZoncPuSIgvDk/j7PvXp2nw=";
+    hash = "sha256-zLbD0UhCRQNTka1WUjDuZLseS1PMURQSPFEa0SvwS7E=";
   };
 
   # Tarball has CRLF line endings. This makes patching difficult, so let's convert them.
@@ -45,7 +45,7 @@ yarn2nix-moretea.mkYarnPackage {
   meta = with lib; {
     description = "Computer management web app";
     homepage = "https://meshcentral.com/";
-    maintainers = [ maintainers.lheckemann ];
+    maintainers = with maintainers; [ ma27 ];
     license = licenses.asl20;
   };
 }
diff --git a/pkgs/tools/admin/meshcentral/package.json b/pkgs/tools/admin/meshcentral/package.json
index 1f618dd5686a..c7e328c6289c 100644
--- a/pkgs/tools/admin/meshcentral/package.json
+++ b/pkgs/tools/admin/meshcentral/package.json
@@ -1,6 +1,6 @@
 {
   "name": "meshcentral",
-  "version": "1.1.6",
+  "version": "1.1.20",
   "keywords": [
     "Remote Device Management",
     "Remote Device Monitoring",
@@ -37,24 +37,25 @@
     "sample-config-advanced.json"
   ],
   "dependencies": {
-    "archiver": "^5.3.1",
-    "body-parser": "^1.19.0",
-    "cbor": "~5.2.0",
-    "compression": "^1.7.4",
-    "cookie-session": "^2.0.0",
-    "express": "^4.17.0",
-    "express-handlebars": "^5.3.5",
-    "express-ws": "^4.0.0",
-    "ipcheck": "^0.1.0",
-    "minimist": "^1.2.5",
-    "multiparty": "^4.2.1",
-    "@yetzt/nedb": "^1.8.0",
-    "node-forge": "^1.0.0",
-    "ws": "^5.2.3",
-    "yauzl": "^2.10.0"
+    "archiver": "5.3.2",
+    "body-parser": "1.20.2",
+    "cbor": "5.2.0",
+    "compression": "1.7.4",
+    "cookie-session": "2.0.0",
+    "express": "4.18.2",
+    "express-handlebars": "5.3.5",
+    "express-ws": "4.0.0",
+    "ipcheck": "0.1.0",
+    "minimist": "1.2.8",
+    "multiparty": "4.2.3",
+    "@yetzt/nedb": "1.8.0",
+    "node-forge": "1.3.1",
+    "ua-parser-js": "1.0.37",
+    "ws": "8.14.2",
+    "yauzl": "2.10.0"
   },
   "engines": {
-    "node": ">=10.0.0"
+    "node": ">=11.0.0"
   },
   "repository": {
     "type": "git",
@@ -62,7 +63,7 @@
   },
   "readme": "readme.md",
   "optionalDependencies": {
-    "passport": "0.5.3",
+    "passport": "*",
     "passport-twitter": "*",
     "passport-google-oauth20": "*",
     "passport-github2": "*",
@@ -71,70 +72,72 @@
     "jwt-simple": "*",
     "@mstrhakr/passport-openidconnect": "*",
     "openid-client": "*",
+    "connect-flash": "*",
     "passport-saml": "*",
-    "ws": "5.2.3",
+    "archiver": "5.3.2",
+    "body-parser": "1.20.2",
     "cbor": "5.2.0",
-    "@yetzt/nedb": "*",
-    "https": "*",
-    "yauzl": "*",
-    "ipcheck": "*",
-    "express": "*",
-    "archiver": "5.3.1",
-    "multiparty": "*",
-    "node-forge": "*",
-    "express-ws": "4.0.0",
-    "compression": "*",
-    "body-parser": "*",
+    "compression": "1.7.4",
     "cookie-session": "2.0.0",
-    "express-handlebars": "*",
-    "node-windows": "0.1.4",
-    "loadavg-windows": "*",
-    "node-sspi": "*",
-    "ldapauth-fork": "*",
-    "ssh2": "*",
-    "svg-captcha": "*",
-    "image-size": "*",
+    "express": "4.18.2",
+    "express-handlebars": "5.3.5",
+    "express-ws": "4.0.0",
+    "ipcheck": "0.1.0",
+    "minimist": "1.2.8",
+    "multiparty": "4.2.3",
+    "@yetzt/nedb": "*",
+    "node-forge": "1.3.1",
+    "ua-parser-js": "1.0.37",
+    "ws": "8.14.2",
+    "yauzl": "2.10.0",
+    "node-windows": "0.1.14",
+    "loadavg-windows": "1.1.1",
+    "node-sspi": "0.2.10",
+    "ldapauth-fork": "5.0.5",
+    "ssh2": "1.15.0",
+    "svg-captcha": "1.4.0",
+    "image-size": "1.0.2",
     "acme-client": "4.2.5",
     "aedes": "0.39.0",
-    "mysql": "*",
-    "@mysql/xdevapi": "*",
+    "mysql2": "3.6.2",
+    "@mysql/xdevapi": "8.0.33",
     "mongodb": "4.13.0",
-    "saslprep": "*",
+    "saslprep": "1.0.3",
     "pg": "8.7.1",
     "pgtools": "0.3.2",
-    "mariadb": "*",
-    "acebase": "*",
-    "sqlite3": "*",
-    "node-vault": "*",
-    "semver": "*",
-    "https-proxy-agent": "*",
-    "mongojs": "*",
-    "nodemailer": "*",
+    "mariadb": "3.2.2",
+    "acebase": "1.29.5",
+    "sqlite3": "5.1.6",
+    "node-vault": "0.10.2",
+    "semver": "7.5.4",
+    "https-proxy-agent": "7.0.2",
+    "mongojs": "3.1.0",
+    "nodemailer": "6.9.8",
     "@sendgrid/mail": "*",
-    "jsdom": "*",
-    "esprima": "*",
-    "minify-js": "*",
-    "html-minifier": "*",
-    "@crowdsec/express-bouncer": "*",
-    "archiver-zip-encrypted": "*",
-    "googleapis": "*",
-    "webdav": "*",
+    "jsdom": "22.1.0",
+    "esprima": "4.0.1",
+    "minify-js": "0.0.4",
+    "html-minifier": "4.0.0",
+    "@crowdsec/express-bouncer": "0.1.0",
+    "archiver-zip-encrypted": "1.0.11",
+    "googleapis": "128.0.0",
+    "webdav": "4.11.3",
     "wildleek": "2.0.0",
-    "yubikeyotp": "*",
+    "yubikeyotp": "0.2.0",
     "otplib": "10.2.3",
-    "twilio": "*",
-    "plivo": "*",
-    "telnyx": "*",
-    "telegram": "*",
-    "input": "*",
+    "twilio": "4.19.0",
+    "plivo": "4.58.0",
+    "telnyx": "1.25.5",
+    "telegram": "2.19.8",
+    "input": "1.0.1",
     "discord.js": "14.6.0",
-    "@xmpp/client": "*",
-    "node-pushover": "*",
-    "zulip": "*",
-    "web-push": "*",
+    "@xmpp/client": "0.13.1",
+    "node-pushover": "1.0.0",
+    "zulip": "0.1.0",
+    "web-push": "3.6.6",
     "node-xcs": "0.1.7",
-    "modern-syslog": "*",
-    "syslog": "*",
-    "heapdump": "*"
+    "modern-syslog": "1.2.0",
+    "syslog": "0.1.1-1",
+    "heapdump": "0.3.15"
   }
 }
diff --git a/pkgs/tools/admin/meshcentral/update.sh b/pkgs/tools/admin/meshcentral/update.sh
index e51ce647b415..950fa617ce81 100755
--- a/pkgs/tools/admin/meshcentral/update.sh
+++ b/pkgs/tools/admin/meshcentral/update.sh
@@ -47,7 +47,7 @@ update-source-version meshcentral "$version" "$hash" "$tarball"
 new_yarn_hash=$(prefetch-yarn-deps "$expr_dir/yarn.lock")
 new_yarn_hash=$(nix-hash --type sha256 --to-sri "$new_yarn_hash")
 old_yarn_hash=$(nix-instantiate --eval -A meshcentral.offlineCache.outputHash | tr -d '"')
-sed -i "$expr_dir/default.nix" -re "s|\"$old_yarn_hash\"|\"$new_yarn_hash\"|"
+sed -i "$expr_dir/default.nix" -e "s|\"$old_yarn_hash\"|\"$new_yarn_hash\"|"
 
 # Only clean up if everything worked
 cd /
diff --git a/pkgs/tools/admin/meshcentral/yarn.lock b/pkgs/tools/admin/meshcentral/yarn.lock
index a013906a7852..b64e2e5b20f5 100644
--- a/pkgs/tools/admin/meshcentral/yarn.lock
+++ b/pkgs/tools/admin/meshcentral/yarn.lock
@@ -65,686 +65,429 @@
     "@aws-sdk/util-utf8-browser" "^3.0.0"
     tslib "^1.11.1"
 
-"@aws-sdk/abort-controller@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/abort-controller/-/abort-controller-3.347.0.tgz#8f1dc9f7e2030b3eabe2f05722d3d99e783e295f"
-  integrity sha512-P/2qE6ntYEmYG4Ez535nJWZbXqgbkJx8CMz7ChEuEg3Gp3dvVYEKg+iEUEvlqQ2U5dWP5J3ehw5po9t86IsVPQ==
-  dependencies:
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/client-cognito-identity@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.353.0.tgz#ae259cc66baaedf706172697728ef7b91ab7ec0d"
-  integrity sha512-N+dr4UALHjWIHfW1UgguinSjDqubIUWL2IkzMse6qCnhHRsLQrThGCw1ElKw4avKSSqERkGM3cVlQu3Si+8/Xw==
+"@aws-sdk/client-cognito-identity@3.501.0":
+  version "3.501.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.501.0.tgz#232543d91b1d236cfeac7c0168c56eddff1aafd3"
+  integrity sha512-ynWW9VVT7CTMQBh8l7WFt2SNekg3667gwjQmeGN8+DDMDqt2Z+L52717S0AN1pQDUMbh/DuKKPk+Sr30HBK3vA==
   dependencies:
     "@aws-crypto/sha256-browser" "3.0.0"
     "@aws-crypto/sha256-js" "3.0.0"
-    "@aws-sdk/client-sts" "3.353.0"
-    "@aws-sdk/config-resolver" "3.353.0"
-    "@aws-sdk/credential-provider-node" "3.353.0"
-    "@aws-sdk/fetch-http-handler" "3.353.0"
-    "@aws-sdk/hash-node" "3.347.0"
-    "@aws-sdk/invalid-dependency" "3.347.0"
-    "@aws-sdk/middleware-content-length" "3.347.0"
-    "@aws-sdk/middleware-endpoint" "3.347.0"
-    "@aws-sdk/middleware-host-header" "3.347.0"
-    "@aws-sdk/middleware-logger" "3.347.0"
-    "@aws-sdk/middleware-recursion-detection" "3.347.0"
-    "@aws-sdk/middleware-retry" "3.353.0"
-    "@aws-sdk/middleware-serde" "3.347.0"
-    "@aws-sdk/middleware-signing" "3.353.0"
-    "@aws-sdk/middleware-stack" "3.347.0"
-    "@aws-sdk/middleware-user-agent" "3.352.0"
-    "@aws-sdk/node-config-provider" "3.353.0"
-    "@aws-sdk/node-http-handler" "3.350.0"
-    "@aws-sdk/smithy-client" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    "@aws-sdk/url-parser" "3.347.0"
-    "@aws-sdk/util-base64" "3.310.0"
-    "@aws-sdk/util-body-length-browser" "3.310.0"
-    "@aws-sdk/util-body-length-node" "3.310.0"
-    "@aws-sdk/util-defaults-mode-browser" "3.353.0"
-    "@aws-sdk/util-defaults-mode-node" "3.353.0"
-    "@aws-sdk/util-endpoints" "3.352.0"
-    "@aws-sdk/util-retry" "3.347.0"
-    "@aws-sdk/util-user-agent-browser" "3.347.0"
-    "@aws-sdk/util-user-agent-node" "3.353.0"
-    "@aws-sdk/util-utf8" "3.310.0"
-    "@smithy/protocol-http" "^1.0.1"
-    "@smithy/types" "^1.0.0"
+    "@aws-sdk/client-sts" "3.501.0"
+    "@aws-sdk/core" "3.496.0"
+    "@aws-sdk/credential-provider-node" "3.501.0"
+    "@aws-sdk/middleware-host-header" "3.496.0"
+    "@aws-sdk/middleware-logger" "3.496.0"
+    "@aws-sdk/middleware-recursion-detection" "3.496.0"
+    "@aws-sdk/middleware-signing" "3.496.0"
+    "@aws-sdk/middleware-user-agent" "3.496.0"
+    "@aws-sdk/region-config-resolver" "3.496.0"
+    "@aws-sdk/types" "3.496.0"
+    "@aws-sdk/util-endpoints" "3.496.0"
+    "@aws-sdk/util-user-agent-browser" "3.496.0"
+    "@aws-sdk/util-user-agent-node" "3.496.0"
+    "@smithy/config-resolver" "^2.1.1"
+    "@smithy/core" "^1.3.1"
+    "@smithy/fetch-http-handler" "^2.4.1"
+    "@smithy/hash-node" "^2.1.1"
+    "@smithy/invalid-dependency" "^2.1.1"
+    "@smithy/middleware-content-length" "^2.1.1"
+    "@smithy/middleware-endpoint" "^2.4.1"
+    "@smithy/middleware-retry" "^2.1.1"
+    "@smithy/middleware-serde" "^2.1.1"
+    "@smithy/middleware-stack" "^2.1.1"
+    "@smithy/node-config-provider" "^2.2.1"
+    "@smithy/node-http-handler" "^2.3.1"
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/smithy-client" "^2.3.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/url-parser" "^2.1.1"
+    "@smithy/util-base64" "^2.1.1"
+    "@smithy/util-body-length-browser" "^2.1.1"
+    "@smithy/util-body-length-node" "^2.2.1"
+    "@smithy/util-defaults-mode-browser" "^2.1.1"
+    "@smithy/util-defaults-mode-node" "^2.1.1"
+    "@smithy/util-endpoints" "^1.1.1"
+    "@smithy/util-retry" "^2.1.1"
+    "@smithy/util-utf8" "^2.1.1"
     tslib "^2.5.0"
 
-"@aws-sdk/client-sso-oidc@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.353.0.tgz#afa0154bac752f1b9ffbc6dc3fcc61fd94338f84"
-  integrity sha512-V9g3oIjj3yEadHosyN+rmxtNXSMqqaHguBD1MuWwsW3AQRlkmInPzg052cKzl6Xm7FrpnZaKnadQPWSl/ZVa7w==
+"@aws-sdk/client-sso@3.496.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.496.0.tgz#765cbfb3afcbe7bc8f2430e40afd4d542a0d58fb"
+  integrity sha512-fuaMuxKg7CMUsP9l3kxYWCOxFsBjdA0xj5nlikaDm1661/gB4KkAiGqRY8LsQkpNXvXU8Nj+f7oCFADFyGYzyw==
   dependencies:
     "@aws-crypto/sha256-browser" "3.0.0"
     "@aws-crypto/sha256-js" "3.0.0"
-    "@aws-sdk/config-resolver" "3.353.0"
-    "@aws-sdk/fetch-http-handler" "3.353.0"
-    "@aws-sdk/hash-node" "3.347.0"
-    "@aws-sdk/invalid-dependency" "3.347.0"
-    "@aws-sdk/middleware-content-length" "3.347.0"
-    "@aws-sdk/middleware-endpoint" "3.347.0"
-    "@aws-sdk/middleware-host-header" "3.347.0"
-    "@aws-sdk/middleware-logger" "3.347.0"
-    "@aws-sdk/middleware-recursion-detection" "3.347.0"
-    "@aws-sdk/middleware-retry" "3.353.0"
-    "@aws-sdk/middleware-serde" "3.347.0"
-    "@aws-sdk/middleware-stack" "3.347.0"
-    "@aws-sdk/middleware-user-agent" "3.352.0"
-    "@aws-sdk/node-config-provider" "3.353.0"
-    "@aws-sdk/node-http-handler" "3.350.0"
-    "@aws-sdk/smithy-client" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    "@aws-sdk/url-parser" "3.347.0"
-    "@aws-sdk/util-base64" "3.310.0"
-    "@aws-sdk/util-body-length-browser" "3.310.0"
-    "@aws-sdk/util-body-length-node" "3.310.0"
-    "@aws-sdk/util-defaults-mode-browser" "3.353.0"
-    "@aws-sdk/util-defaults-mode-node" "3.353.0"
-    "@aws-sdk/util-endpoints" "3.352.0"
-    "@aws-sdk/util-retry" "3.347.0"
-    "@aws-sdk/util-user-agent-browser" "3.347.0"
-    "@aws-sdk/util-user-agent-node" "3.353.0"
-    "@aws-sdk/util-utf8" "3.310.0"
-    "@smithy/protocol-http" "^1.0.1"
-    "@smithy/types" "^1.0.0"
+    "@aws-sdk/core" "3.496.0"
+    "@aws-sdk/middleware-host-header" "3.496.0"
+    "@aws-sdk/middleware-logger" "3.496.0"
+    "@aws-sdk/middleware-recursion-detection" "3.496.0"
+    "@aws-sdk/middleware-user-agent" "3.496.0"
+    "@aws-sdk/region-config-resolver" "3.496.0"
+    "@aws-sdk/types" "3.496.0"
+    "@aws-sdk/util-endpoints" "3.496.0"
+    "@aws-sdk/util-user-agent-browser" "3.496.0"
+    "@aws-sdk/util-user-agent-node" "3.496.0"
+    "@smithy/config-resolver" "^2.1.1"
+    "@smithy/core" "^1.3.1"
+    "@smithy/fetch-http-handler" "^2.4.1"
+    "@smithy/hash-node" "^2.1.1"
+    "@smithy/invalid-dependency" "^2.1.1"
+    "@smithy/middleware-content-length" "^2.1.1"
+    "@smithy/middleware-endpoint" "^2.4.1"
+    "@smithy/middleware-retry" "^2.1.1"
+    "@smithy/middleware-serde" "^2.1.1"
+    "@smithy/middleware-stack" "^2.1.1"
+    "@smithy/node-config-provider" "^2.2.1"
+    "@smithy/node-http-handler" "^2.3.1"
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/smithy-client" "^2.3.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/url-parser" "^2.1.1"
+    "@smithy/util-base64" "^2.1.1"
+    "@smithy/util-body-length-browser" "^2.1.1"
+    "@smithy/util-body-length-node" "^2.2.1"
+    "@smithy/util-defaults-mode-browser" "^2.1.1"
+    "@smithy/util-defaults-mode-node" "^2.1.1"
+    "@smithy/util-endpoints" "^1.1.1"
+    "@smithy/util-retry" "^2.1.1"
+    "@smithy/util-utf8" "^2.1.1"
     tslib "^2.5.0"
 
-"@aws-sdk/client-sso@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.353.0.tgz#fbf75fac1f06f22f09a797aa2541ff44b92aa68c"
-  integrity sha512-/dP5jLvZYskk6eVxI/5uaC1AVEbE7B2yuQ+9O3Z9plPIlZXyZxzXHf06s4gwsS4hAc7TDs3DaB+AnfMVLOPHbQ==
+"@aws-sdk/client-sts@3.501.0":
+  version "3.501.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.501.0.tgz#f3ab15d11517f28f1fdd3bd2b0c4dcf15a88b5aa"
+  integrity sha512-Uwc/xuxsA46dZS5s+4U703LBNDrGpWF7RB4XYEEMD21BLfGuqntxLLQux8xxKt3Pcur0CsXNja5jXt3uLnE5MA==
   dependencies:
     "@aws-crypto/sha256-browser" "3.0.0"
     "@aws-crypto/sha256-js" "3.0.0"
-    "@aws-sdk/config-resolver" "3.353.0"
-    "@aws-sdk/fetch-http-handler" "3.353.0"
-    "@aws-sdk/hash-node" "3.347.0"
-    "@aws-sdk/invalid-dependency" "3.347.0"
-    "@aws-sdk/middleware-content-length" "3.347.0"
-    "@aws-sdk/middleware-endpoint" "3.347.0"
-    "@aws-sdk/middleware-host-header" "3.347.0"
-    "@aws-sdk/middleware-logger" "3.347.0"
-    "@aws-sdk/middleware-recursion-detection" "3.347.0"
-    "@aws-sdk/middleware-retry" "3.353.0"
-    "@aws-sdk/middleware-serde" "3.347.0"
-    "@aws-sdk/middleware-stack" "3.347.0"
-    "@aws-sdk/middleware-user-agent" "3.352.0"
-    "@aws-sdk/node-config-provider" "3.353.0"
-    "@aws-sdk/node-http-handler" "3.350.0"
-    "@aws-sdk/smithy-client" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    "@aws-sdk/url-parser" "3.347.0"
-    "@aws-sdk/util-base64" "3.310.0"
-    "@aws-sdk/util-body-length-browser" "3.310.0"
-    "@aws-sdk/util-body-length-node" "3.310.0"
-    "@aws-sdk/util-defaults-mode-browser" "3.353.0"
-    "@aws-sdk/util-defaults-mode-node" "3.353.0"
-    "@aws-sdk/util-endpoints" "3.352.0"
-    "@aws-sdk/util-retry" "3.347.0"
-    "@aws-sdk/util-user-agent-browser" "3.347.0"
-    "@aws-sdk/util-user-agent-node" "3.353.0"
-    "@aws-sdk/util-utf8" "3.310.0"
-    "@smithy/protocol-http" "^1.0.1"
-    "@smithy/types" "^1.0.0"
+    "@aws-sdk/core" "3.496.0"
+    "@aws-sdk/credential-provider-node" "3.501.0"
+    "@aws-sdk/middleware-host-header" "3.496.0"
+    "@aws-sdk/middleware-logger" "3.496.0"
+    "@aws-sdk/middleware-recursion-detection" "3.496.0"
+    "@aws-sdk/middleware-user-agent" "3.496.0"
+    "@aws-sdk/region-config-resolver" "3.496.0"
+    "@aws-sdk/types" "3.496.0"
+    "@aws-sdk/util-endpoints" "3.496.0"
+    "@aws-sdk/util-user-agent-browser" "3.496.0"
+    "@aws-sdk/util-user-agent-node" "3.496.0"
+    "@smithy/config-resolver" "^2.1.1"
+    "@smithy/core" "^1.3.1"
+    "@smithy/fetch-http-handler" "^2.4.1"
+    "@smithy/hash-node" "^2.1.1"
+    "@smithy/invalid-dependency" "^2.1.1"
+    "@smithy/middleware-content-length" "^2.1.1"
+    "@smithy/middleware-endpoint" "^2.4.1"
+    "@smithy/middleware-retry" "^2.1.1"
+    "@smithy/middleware-serde" "^2.1.1"
+    "@smithy/middleware-stack" "^2.1.1"
+    "@smithy/node-config-provider" "^2.2.1"
+    "@smithy/node-http-handler" "^2.3.1"
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/smithy-client" "^2.3.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/url-parser" "^2.1.1"
+    "@smithy/util-base64" "^2.1.1"
+    "@smithy/util-body-length-browser" "^2.1.1"
+    "@smithy/util-body-length-node" "^2.2.1"
+    "@smithy/util-defaults-mode-browser" "^2.1.1"
+    "@smithy/util-defaults-mode-node" "^2.1.1"
+    "@smithy/util-endpoints" "^1.1.1"
+    "@smithy/util-middleware" "^2.1.1"
+    "@smithy/util-retry" "^2.1.1"
+    "@smithy/util-utf8" "^2.1.1"
+    fast-xml-parser "4.2.5"
     tslib "^2.5.0"
 
-"@aws-sdk/client-sts@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.353.0.tgz#4c731c382a3c394096f869bf62fe52dc29e7ac70"
-  integrity sha512-jOnh242TtxG6st60AxLSav0MTgYlJn4c8ZDxk4Wk4+n5bypnXRrqgVXob99lyVnCRfP3OsDl1eilcVp94EXzVw==
+"@aws-sdk/core@3.496.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.496.0.tgz#ec1394753b6b2f6e38aea593e30b2db5c7390969"
+  integrity sha512-yT+ug7Cw/3eJi7x2es0+46x12+cIJm5Xv+GPWsrTFD1TKgqO/VPEgfDtHFagDNbFmjNQA65Ygc/kEdIX9ICX/A==
   dependencies:
-    "@aws-crypto/sha256-browser" "3.0.0"
-    "@aws-crypto/sha256-js" "3.0.0"
-    "@aws-sdk/config-resolver" "3.353.0"
-    "@aws-sdk/credential-provider-node" "3.353.0"
-    "@aws-sdk/fetch-http-handler" "3.353.0"
-    "@aws-sdk/hash-node" "3.347.0"
-    "@aws-sdk/invalid-dependency" "3.347.0"
-    "@aws-sdk/middleware-content-length" "3.347.0"
-    "@aws-sdk/middleware-endpoint" "3.347.0"
-    "@aws-sdk/middleware-host-header" "3.347.0"
-    "@aws-sdk/middleware-logger" "3.347.0"
-    "@aws-sdk/middleware-recursion-detection" "3.347.0"
-    "@aws-sdk/middleware-retry" "3.353.0"
-    "@aws-sdk/middleware-sdk-sts" "3.353.0"
-    "@aws-sdk/middleware-serde" "3.347.0"
-    "@aws-sdk/middleware-signing" "3.353.0"
-    "@aws-sdk/middleware-stack" "3.347.0"
-    "@aws-sdk/middleware-user-agent" "3.352.0"
-    "@aws-sdk/node-config-provider" "3.353.0"
-    "@aws-sdk/node-http-handler" "3.350.0"
-    "@aws-sdk/smithy-client" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    "@aws-sdk/url-parser" "3.347.0"
-    "@aws-sdk/util-base64" "3.310.0"
-    "@aws-sdk/util-body-length-browser" "3.310.0"
-    "@aws-sdk/util-body-length-node" "3.310.0"
-    "@aws-sdk/util-defaults-mode-browser" "3.353.0"
-    "@aws-sdk/util-defaults-mode-node" "3.353.0"
-    "@aws-sdk/util-endpoints" "3.352.0"
-    "@aws-sdk/util-retry" "3.347.0"
-    "@aws-sdk/util-user-agent-browser" "3.347.0"
-    "@aws-sdk/util-user-agent-node" "3.353.0"
-    "@aws-sdk/util-utf8" "3.310.0"
-    "@smithy/protocol-http" "^1.0.1"
-    "@smithy/types" "^1.0.0"
-    fast-xml-parser "4.2.4"
+    "@smithy/core" "^1.3.1"
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/signature-v4" "^2.1.1"
+    "@smithy/smithy-client" "^2.3.1"
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
-"@aws-sdk/config-resolver@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/config-resolver/-/config-resolver-3.353.0.tgz#0cd40ac60f87af417754fd2f05758369415b0723"
-  integrity sha512-rJJ1ebb8E4vfdGWym6jql1vodV+NUEATI1QqlwxQ0AZ8MGPIsT3uR52VyX7gp+yIrLZBJZdGYVNwrWSJgZ3B3w==
+"@aws-sdk/credential-provider-cognito-identity@3.501.0":
+  version "3.501.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.501.0.tgz#9df440eea01125130226fdd1619f5b728f4db9c0"
+  integrity sha512-U9fjzliKzMiPx/EWLNLCEoF5wWhVtlluTEc4/WhNtSryV2PyihqIAK8nK4+MFaXB4xOrlRnpYMd7oqm03wMGyw==
   dependencies:
-    "@aws-sdk/types" "3.347.0"
-    "@aws-sdk/util-config-provider" "3.310.0"
-    "@aws-sdk/util-middleware" "3.347.0"
+    "@aws-sdk/client-cognito-identity" "3.501.0"
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/property-provider" "^2.1.1"
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
-"@aws-sdk/credential-provider-cognito-identity@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.353.0.tgz#22917cd6b2eb8d30bd1a28c659aacb769d379b01"
-  integrity sha512-vHjl3a2y6KYCIckRXPYVUMCjNEZ4fcQP1q6URfUELUbj9E7ZDjOLXkYx/t5gJSod13kygMliMezLmLhGIheykg==
+"@aws-sdk/credential-provider-env@3.496.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.496.0.tgz#5055bd2e3a169e5c10b37c40e0f356046947e707"
+  integrity sha512-lukQMJ8SWWP5RqkRNOHi/H+WMhRvSWa3Fc5Jf/VP6xHiPLfF1XafcvthtV91e0VwPCiseI+HqChrcGq8pvnxHw==
   dependencies:
-    "@aws-sdk/client-cognito-identity" "3.353.0"
-    "@aws-sdk/property-provider" "3.353.0"
-    "@aws-sdk/types" "3.347.0"
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/property-provider" "^2.1.1"
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
-"@aws-sdk/credential-provider-env@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.353.0.tgz#ef8c72978af09f4582cf98325f7f328e8f41574d"
-  integrity sha512-Y4VsNS8O1FAD5J7S5itOhnOghQ5LIXlZ44t35nF8cbcF+JPvY3ToKzYpjYN1jM7DXKqU4shtqgYpzSqxlvEgKQ==
-  dependencies:
-    "@aws-sdk/property-provider" "3.353.0"
-    "@aws-sdk/types" "3.347.0"
+"@aws-sdk/credential-provider-http@3.496.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.496.0.tgz#7ff281bc0c80a041c69f0062e82b6def2e2a7de5"
+  integrity sha512-iphFlFX0qDFsE24XmFlcKmsR4uyNaqQrK+Y18mwSZMs1yWtL4Sck0rcTXU/cU2W3/xisjh7xFXK5L5aowjMZOg==
+  dependencies:
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/fetch-http-handler" "^2.4.1"
+    "@smithy/node-http-handler" "^2.3.1"
+    "@smithy/property-provider" "^2.1.1"
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/smithy-client" "^2.3.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/util-stream" "^2.1.1"
     tslib "^2.5.0"
 
-"@aws-sdk/credential-provider-imds@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.353.0.tgz#6f1f9ade03c49d5c13b921dfa259334aaefb7e96"
-  integrity sha512-n70yvXBN7E6NX7vA/wLTqyVayu/QKYsPvVn8Y+0A/j5oXXlVY+hQvjjEaNo0Zq1U8Z0L/kj3mutDpe57nTLKSg==
-  dependencies:
-    "@aws-sdk/node-config-provider" "3.353.0"
-    "@aws-sdk/property-provider" "3.353.0"
-    "@aws-sdk/types" "3.347.0"
-    "@aws-sdk/url-parser" "3.347.0"
+"@aws-sdk/credential-provider-ini@3.501.0":
+  version "3.501.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.501.0.tgz#66f56d56858267460614260b6bfd70cd18ba868b"
+  integrity sha512-6UXnwLtYIr298ljveumCVXsH+x7csGscK5ylY+veRFy514NqyloRdJt8JY26hhh5SF9MYnkW+JyWSJ2Ls3tOjQ==
+  dependencies:
+    "@aws-sdk/credential-provider-env" "3.496.0"
+    "@aws-sdk/credential-provider-process" "3.496.0"
+    "@aws-sdk/credential-provider-sso" "3.501.0"
+    "@aws-sdk/credential-provider-web-identity" "3.496.0"
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/credential-provider-imds" "^2.2.1"
+    "@smithy/property-provider" "^2.1.1"
+    "@smithy/shared-ini-file-loader" "^2.3.1"
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
-"@aws-sdk/credential-provider-ini@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.353.0.tgz#9bc70918885b2806083e9363af8376c9c456c6dc"
-  integrity sha512-qiA9dUAWmH3DLkVDNnR1VW7GTfGa5EazXSeIqXPM3qyf9Dqr4RPRyle8/BJXnAQXR01VEA+ZOmvp1fjs7uKiqw==
-  dependencies:
-    "@aws-sdk/credential-provider-env" "3.353.0"
-    "@aws-sdk/credential-provider-imds" "3.353.0"
-    "@aws-sdk/credential-provider-process" "3.353.0"
-    "@aws-sdk/credential-provider-sso" "3.353.0"
-    "@aws-sdk/credential-provider-web-identity" "3.353.0"
-    "@aws-sdk/property-provider" "3.353.0"
-    "@aws-sdk/shared-ini-file-loader" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
+"@aws-sdk/credential-provider-node@3.501.0":
+  version "3.501.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.501.0.tgz#6cb96dc5c1bfaf8dcb580063beeed9ef9db33961"
+  integrity sha512-NM62D8gYrQ1nyLYwW4k48B2/lMHDzHDcQccS1wJakr6bg5sdtG06CumwlVcY+LAa0o1xRnhHmh/yiwj/nN4avw==
+  dependencies:
+    "@aws-sdk/credential-provider-env" "3.496.0"
+    "@aws-sdk/credential-provider-ini" "3.501.0"
+    "@aws-sdk/credential-provider-process" "3.496.0"
+    "@aws-sdk/credential-provider-sso" "3.501.0"
+    "@aws-sdk/credential-provider-web-identity" "3.496.0"
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/credential-provider-imds" "^2.2.1"
+    "@smithy/property-provider" "^2.1.1"
+    "@smithy/shared-ini-file-loader" "^2.3.1"
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
-"@aws-sdk/credential-provider-node@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.353.0.tgz#edb117679040989f0f70111f1ec1af53319471f5"
-  integrity sha512-OIyZ7OG1OQJ1aQGAu78hggSkK4jiWO1/Sm6wj5wvwylbST8NnR+dHjikZGFB3hoYt1uEe2O2LeGW67bI54VIEQ==
-  dependencies:
-    "@aws-sdk/credential-provider-env" "3.353.0"
-    "@aws-sdk/credential-provider-imds" "3.353.0"
-    "@aws-sdk/credential-provider-ini" "3.353.0"
-    "@aws-sdk/credential-provider-process" "3.353.0"
-    "@aws-sdk/credential-provider-sso" "3.353.0"
-    "@aws-sdk/credential-provider-web-identity" "3.353.0"
-    "@aws-sdk/property-provider" "3.353.0"
-    "@aws-sdk/shared-ini-file-loader" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/credential-provider-process@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.353.0.tgz#c5c27b2e6fdada7040c4ba5f2b12dd593ceb1baf"
-  integrity sha512-IBkuxj3pCdmnTzIcRXhq+5sp1hsWACQLi9fHLK+mDEgaiaO+u2r3Th5tV3rJUfNhZY4qa62QNGsHwsVstVxGvw==
+"@aws-sdk/credential-provider-process@3.496.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.496.0.tgz#1d623bed61229767f389feab560e3a3117bf2d26"
+  integrity sha512-/YZscCTGOKVmGr916Th4XF8Sz6JDtZ/n2loHG9exok9iy/qIbACsTRNLP9zexPxhPoue/oZqecY5xbVljfY34A==
   dependencies:
-    "@aws-sdk/property-provider" "3.353.0"
-    "@aws-sdk/shared-ini-file-loader" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/property-provider" "^2.1.1"
+    "@smithy/shared-ini-file-loader" "^2.3.1"
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
-"@aws-sdk/credential-provider-sso@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.353.0.tgz#ce4916d00363635ee8284c812753d4040118c8f3"
-  integrity sha512-S16tpQ7Zra2O3PNCV4a89wn8wVEgv8oRwjF7p87AM902fXEuag4VHIhaI/TgANQT737JDA/ZCFL2XSilCbHxYQ==
-  dependencies:
-    "@aws-sdk/client-sso" "3.353.0"
-    "@aws-sdk/property-provider" "3.353.0"
-    "@aws-sdk/shared-ini-file-loader" "3.347.0"
-    "@aws-sdk/token-providers" "3.353.0"
-    "@aws-sdk/types" "3.347.0"
+"@aws-sdk/credential-provider-sso@3.501.0":
+  version "3.501.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.501.0.tgz#a96b859b59d3825f54158de8c692d69bd6edf5e6"
+  integrity sha512-y90dlvvZ55PwecODFdMx0NiNlJJfm7X6S61PKdLNCMRcu1YK+eWn0CmPHGHobBUQ4SEYhnFLcHSsf+VMim6BtQ==
+  dependencies:
+    "@aws-sdk/client-sso" "3.496.0"
+    "@aws-sdk/token-providers" "3.501.0"
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/property-provider" "^2.1.1"
+    "@smithy/shared-ini-file-loader" "^2.3.1"
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
-"@aws-sdk/credential-provider-web-identity@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.353.0.tgz#d551528b5aff1dea6a3fa4b37c97bd424b9576e0"
-  integrity sha512-l3TdZB6tEDhLIl0oLIIy1njlxogpyIXSMW9fpuHBt7LDUwfBdCwVPE6+JpGXra6tJAfRQSv5l0lYx5osSLq98g==
+"@aws-sdk/credential-provider-web-identity@3.496.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.496.0.tgz#7ad6d755445d1616a80dfa286a78c84dc1c3f14b"
+  integrity sha512-IbP+qLlvJSpNPj+zW6TtFuLRTK5Tf0hW+2pom4vFyi5YSH4pn8UOC136UdewX8vhXGS9BJQ5zBDMasIyl5VeGQ==
   dependencies:
-    "@aws-sdk/property-provider" "3.353.0"
-    "@aws-sdk/types" "3.347.0"
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/property-provider" "^2.1.1"
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
 "@aws-sdk/credential-providers@^3.186.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.353.0.tgz#b3f9afb8eca8b880462106c8b3893098026c3fd8"
-  integrity sha512-WAZP2vodrAjzHf79OpCuZ18cysgBDZWWItkcvuie+nyVsb6EHLgssT3aL1sZZWiBKiaQ+sCyYJwHSbg2i04nJw==
-  dependencies:
-    "@aws-sdk/client-cognito-identity" "3.353.0"
-    "@aws-sdk/client-sso" "3.353.0"
-    "@aws-sdk/client-sts" "3.353.0"
-    "@aws-sdk/credential-provider-cognito-identity" "3.353.0"
-    "@aws-sdk/credential-provider-env" "3.353.0"
-    "@aws-sdk/credential-provider-imds" "3.353.0"
-    "@aws-sdk/credential-provider-ini" "3.353.0"
-    "@aws-sdk/credential-provider-node" "3.353.0"
-    "@aws-sdk/credential-provider-process" "3.353.0"
-    "@aws-sdk/credential-provider-sso" "3.353.0"
-    "@aws-sdk/credential-provider-web-identity" "3.353.0"
-    "@aws-sdk/property-provider" "3.353.0"
-    "@aws-sdk/types" "3.347.0"
+  version "3.501.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.501.0.tgz#15321a2028e9ee36d5333da222386abb81e24553"
+  integrity sha512-nyfGzzYKcAny2kUyQjVDhSzfFTwkfZjGyJZ79WaLkNcCsVSsHBbptPRmRV2b4N0EoHTCfGqkbB02as4av/OQrw==
+  dependencies:
+    "@aws-sdk/client-cognito-identity" "3.501.0"
+    "@aws-sdk/client-sso" "3.496.0"
+    "@aws-sdk/client-sts" "3.501.0"
+    "@aws-sdk/credential-provider-cognito-identity" "3.501.0"
+    "@aws-sdk/credential-provider-env" "3.496.0"
+    "@aws-sdk/credential-provider-http" "3.496.0"
+    "@aws-sdk/credential-provider-ini" "3.501.0"
+    "@aws-sdk/credential-provider-node" "3.501.0"
+    "@aws-sdk/credential-provider-process" "3.496.0"
+    "@aws-sdk/credential-provider-sso" "3.501.0"
+    "@aws-sdk/credential-provider-web-identity" "3.496.0"
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/credential-provider-imds" "^2.2.1"
+    "@smithy/property-provider" "^2.1.1"
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
-"@aws-sdk/eventstream-codec@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-codec/-/eventstream-codec-3.347.0.tgz#4ba2c87a2f6e4bb10a833910a4427d16ceec09f0"
-  integrity sha512-61q+SyspjsaQ4sdgjizMyRgVph2CiW4aAtfpoH69EJFJfTxTR/OqnZ9Jx/3YiYi0ksrvDenJddYodfWWJqD8/w==
+"@aws-sdk/middleware-host-header@3.496.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.496.0.tgz#e17de11d553548872566c72669c5ea2e7164722b"
+  integrity sha512-jUdPpSJeqCYXf6hSjfwsfHway7peIV8Vz51w/BN91bF4vB/bYwAC5o9/iJiK/EoByp5asxA8fg9wFOyGjzdbLg==
   dependencies:
-    "@aws-crypto/crc32" "3.0.0"
-    "@aws-sdk/types" "3.347.0"
-    "@aws-sdk/util-hex-encoding" "3.310.0"
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
-"@aws-sdk/fetch-http-handler@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.353.0.tgz#0fe801aaf0ceeb21e878803b0e397464f1890537"
-  integrity sha512-8ic2+4E6jzfDevd++QS1rOR05QFkAhEFbi5Ja3/Zzp7TkWIS8wv5wwMATjNkbbdsXYuB5Lhl/OsjfZmIv5aqRw==
+"@aws-sdk/middleware-logger@3.496.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.496.0.tgz#96f867ae50144eb6bae91a427e315a0f0eb783b0"
+  integrity sha512-EwMVSY6iBMeGbVnvwdaFl/ClMS/YWtxCAo+bcEtgk8ltRuo7qgbJem8Km/fvWC1vdWvIbe4ArdJ8iGzq62ffAw==
   dependencies:
-    "@aws-sdk/protocol-http" "3.347.0"
-    "@aws-sdk/querystring-builder" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    "@aws-sdk/util-base64" "3.310.0"
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
-"@aws-sdk/hash-node@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/hash-node/-/hash-node-3.347.0.tgz#575b31227306c03b491b814178a72b0b79625ed5"
-  integrity sha512-96+ml/4EaUaVpzBdOLGOxdoXOjkPgkoJp/0i1fxOJEvl8wdAQSwc3IugVK9wZkCxy2DlENtgOe6DfIOhfffm/g==
+"@aws-sdk/middleware-recursion-detection@3.496.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.496.0.tgz#c14e1bbe609e4af3ec9037c2379e2b64d660e4dd"
+  integrity sha512-+IuOcFsfqg2WAnaEzH6KhVbicqCxtOq9w3DH2jwTpddRlCx2Kqf6wCzg8luhHRGyjBZdsbIS+OXwyMevoppawA==
   dependencies:
-    "@aws-sdk/types" "3.347.0"
-    "@aws-sdk/util-buffer-from" "3.310.0"
-    "@aws-sdk/util-utf8" "3.310.0"
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
-"@aws-sdk/invalid-dependency@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/invalid-dependency/-/invalid-dependency-3.347.0.tgz#2e5994cdd51dc3fe0310ce355e1ab115b66b7cb5"
-  integrity sha512-8imQcwLwqZ/wTJXZqzXT9pGLIksTRckhGLZaXT60tiBOPKuerTsus2L59UstLs5LP8TKaVZKFFSsjRIn9dQdmQ==
-  dependencies:
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/is-array-buffer@3.310.0":
-  version "3.310.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/is-array-buffer/-/is-array-buffer-3.310.0.tgz#f87a79f1b858c88744f07e8d8d0a791df204017e"
-  integrity sha512-urnbcCR+h9NWUnmOtet/s4ghvzsidFmspfhYaHAmSRdy9yDjdjBJMFjjsn85A1ODUktztm+cVncXjQ38WCMjMQ==
-  dependencies:
-    tslib "^2.5.0"
-
-"@aws-sdk/middleware-content-length@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-content-length/-/middleware-content-length-3.347.0.tgz#ee6063ebb0215355b7a7dacd0a3bbe2e1a8d108f"
-  integrity sha512-i4qtWTDImMaDUtwKQPbaZpXsReiwiBomM1cWymCU4bhz81HL01oIxOxOBuiM+3NlDoCSPr3KI6txZSz/8cqXCQ==
-  dependencies:
-    "@aws-sdk/protocol-http" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/middleware-endpoint@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.347.0.tgz#d577265e79cdc0241d863e2582820010ea942736"
-  integrity sha512-unF0c6dMaUL1ffU+37Ugty43DgMnzPWXr/Jup/8GbK5fzzWT5NQq6dj9KHPubMbWeEjQbmczvhv25JuJdK8gNQ==
-  dependencies:
-    "@aws-sdk/middleware-serde" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    "@aws-sdk/url-parser" "3.347.0"
-    "@aws-sdk/util-middleware" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/middleware-host-header@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.347.0.tgz#6166c137044672b2229e6ee0ce8a3e59fd8c49c4"
-  integrity sha512-kpKmR9OvMlnReqp5sKcJkozbj1wmlblbVSbnQAIkzeQj2xD5dnVR3Nn2ogQKxSmU1Fv7dEroBtrruJ1o3fY38A==
-  dependencies:
-    "@aws-sdk/protocol-http" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/middleware-logger@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.347.0.tgz#d75a6bbda38c85200219f4ef88e7696d72f94100"
-  integrity sha512-NYC+Id5UCkVn+3P1t/YtmHt75uED06vwaKyxDy0UmB2K66PZLVtwWbLpVWrhbroaw1bvUHYcRyQ9NIfnVcXQjA==
-  dependencies:
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/middleware-recursion-detection@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.347.0.tgz#00faf00d9346cb88dafdfddfd33e956ba563bf99"
-  integrity sha512-qfnSvkFKCAMjMHR31NdsT0gv5Sq/ZHTUD4yQsSLpbVQ6iYAS834lrzXt41iyEHt57Y514uG7F/Xfvude3u4icQ==
-  dependencies:
-    "@aws-sdk/protocol-http" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/middleware-retry@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-retry/-/middleware-retry-3.353.0.tgz#606604c3b23f4ddcaacf7c71f329b7a1d517fbb8"
-  integrity sha512-v81NEzDGGvnpvFUy388razpicn7STwBA5gItlr3Ukz8ZWWudfQarTBr0nfVyODXb+76du2LwzEQOd6YtfoOZ+w==
-  dependencies:
-    "@aws-sdk/protocol-http" "3.347.0"
-    "@aws-sdk/service-error-classification" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    "@aws-sdk/util-middleware" "3.347.0"
-    "@aws-sdk/util-retry" "3.347.0"
-    tslib "^2.5.0"
-    uuid "^8.3.2"
-
-"@aws-sdk/middleware-sdk-sts@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.353.0.tgz#5d2fd703f346e1df8c85f536033920bec8671b84"
-  integrity sha512-GDpjznRBjvCvBfyLEhWb/FSmsnFR+nhBQC0N7d8pqWRqI084sy2ZRyQ6hNDWnImi6AvOabTBSfDm6cB5RexDow==
-  dependencies:
-    "@aws-sdk/middleware-signing" "3.353.0"
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/middleware-serde@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-serde/-/middleware-serde-3.347.0.tgz#f20a63290e16d631a8aa7d9eb331b139bf2531ac"
-  integrity sha512-x5Foi7jRbVJXDu9bHfyCbhYDH5pKK+31MmsSJ3k8rY8keXLBxm2XEEg/AIoV9/TUF9EeVvZ7F1/RmMpJnWQsEg==
-  dependencies:
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/middleware-signing@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.353.0.tgz#085cbbb0b32e1f2475333e1dea6af4c9e97fc0e9"
-  integrity sha512-9WHgnIDavv7FRiDL1M7EVzGiTqqLjcCUW3ZX3oLJJvG4MuWpcStl9KmpnHs8RLabvGj6DSkeZRhh6ZC1r1M1gQ==
-  dependencies:
-    "@aws-sdk/property-provider" "3.353.0"
-    "@aws-sdk/protocol-http" "3.347.0"
-    "@aws-sdk/signature-v4" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    "@aws-sdk/util-middleware" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/middleware-stack@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-stack/-/middleware-stack-3.347.0.tgz#de8f94349273e1b30e19b6e8ace95a7982a24579"
-  integrity sha512-Izidg4rqtYMcKuvn2UzgEpPLSmyd8ub9+LQ2oIzG3mpIzCBITq7wp40jN1iNkMg+X6KEnX9vdMJIYZsPYMCYuQ==
-  dependencies:
-    tslib "^2.5.0"
-
-"@aws-sdk/middleware-user-agent@3.352.0":
-  version "3.352.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.352.0.tgz#ca32fc2296e9b4565c2878ff44c2756a952f42b4"
-  integrity sha512-QGqblMTsVDqeomy22KPm9LUW8PHZXBA2Hjk9Hcw8U1uFS8IKYJrewInG3ae2+9FAcTyug4LFWDf8CRr9YH2B3Q==
-  dependencies:
-    "@aws-sdk/protocol-http" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    "@aws-sdk/util-endpoints" "3.352.0"
+"@aws-sdk/middleware-signing@3.496.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.496.0.tgz#265cb5a9d7825c111c53bb555e5cb2619f804dd1"
+  integrity sha512-Oq73Brs4IConvWnRlh8jM1V7LHoTw9SVQklu/QW2FPlNrB3B8fuTdWHHYIWv7ybw1bykXoCY99v865Mmq/Or/g==
+  dependencies:
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/property-provider" "^2.1.1"
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/signature-v4" "^2.1.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/util-middleware" "^2.1.1"
     tslib "^2.5.0"
 
-"@aws-sdk/node-config-provider@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/node-config-provider/-/node-config-provider-3.353.0.tgz#c8a002a0ed0f652d44834db115c5ebd70feaad42"
-  integrity sha512-4j0dFHAIa0NwQOPZ/PgkyfCWRaaLhilGbL/cOHkndtUdV54WtG+9+21pKNtakfxncF0irtZvVOv/CW/5x909ZQ==
+"@aws-sdk/middleware-user-agent@3.496.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.496.0.tgz#82b49fd8613ae5a9ceafc9117c34271615d0f002"
+  integrity sha512-+iMtRxFk0GmFWNUF4ilxylOQd9PZdR4ZC9jkcPIh1PZlvKtpCyFywKlk5RRZKklSoJ/CttcqwhMvOXTNbWm/0w==
   dependencies:
-    "@aws-sdk/property-provider" "3.353.0"
-    "@aws-sdk/shared-ini-file-loader" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
+    "@aws-sdk/types" "3.496.0"
+    "@aws-sdk/util-endpoints" "3.496.0"
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
-"@aws-sdk/node-http-handler@3.350.0":
-  version "3.350.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/node-http-handler/-/node-http-handler-3.350.0.tgz#c3d3af4e24e7dc823bdb04c73dcae4d12d8a6221"
-  integrity sha512-oD96GAlmpzYilCdC8wwyURM5lNfNHZCjm/kxBkQulHKa2kRbIrnD9GfDqdCkWA5cTpjh1NzGLT4D6e6UFDjt9w==
+"@aws-sdk/region-config-resolver@3.496.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.496.0.tgz#133c8a4a6d5e7672077ba124751f40b2d6efc3ed"
+  integrity sha512-URrNVOPHPgEDm6QFu6lDC2cUFs+Jx23mA3jEwCvoKlXiEY/ZoWjH8wlX3OMUlLrF1qoUTuD03jjrJzF6zoCgug==
   dependencies:
-    "@aws-sdk/abort-controller" "3.347.0"
-    "@aws-sdk/protocol-http" "3.347.0"
-    "@aws-sdk/querystring-builder" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/node-config-provider" "^2.2.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/util-config-provider" "^2.2.1"
+    "@smithy/util-middleware" "^2.1.1"
     tslib "^2.5.0"
 
-"@aws-sdk/property-provider@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/property-provider/-/property-provider-3.353.0.tgz#a877ca6d4a165773609eb776483ffb8606f03b7e"
-  integrity sha512-Iu6J59hncaew7eBKroTcLjZ8cgrom0IWyZZ09rsow3rZDHVtw7LQSrUyuqsSbKGY9eRtL7Wa6ZtYHnXFiAE2kg==
+"@aws-sdk/token-providers@3.501.0":
+  version "3.501.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.501.0.tgz#33fc8130ffecfa99b88a54ebaa74ff3225f79875"
+  integrity sha512-MvLPhNxlStmQqVm2crGLUqYWvK/AbMmI9j4FbEfJ15oG/I+730zjSJQEy2MvdiqbJRDPZ/tRCL89bUedOrmi0g==
   dependencies:
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/protocol-http@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/protocol-http/-/protocol-http-3.347.0.tgz#9f61f4e0d892dc0a1e02211963827f386bc447b9"
-  integrity sha512-2YdBhc02Wvy03YjhGwUxF0UQgrPWEy8Iq75pfS42N+/0B/+eWX1aQgfjFxIpLg7YSjT5eKtYOQGlYd4MFTgj9g==
-  dependencies:
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/querystring-builder@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-builder/-/querystring-builder-3.347.0.tgz#9a6bb16441f32fa05c25dc7e57d4692858824574"
-  integrity sha512-phtKTe6FXoV02MoPkIVV6owXI8Mwr5IBN3bPoxhcPvJG2AjEmnetSIrhb8kwc4oNhlwfZwH6Jo5ARW/VEWbZtg==
-  dependencies:
-    "@aws-sdk/types" "3.347.0"
-    "@aws-sdk/util-uri-escape" "3.310.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/querystring-parser@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-parser/-/querystring-parser-3.347.0.tgz#c85213a835c0f02580e013d168d1ee2f6fee65a1"
-  integrity sha512-5VXOhfZz78T2W7SuXf2avfjKglx1VZgZgp9Zfhrt/Rq+MTu2D+PZc5zmJHhYigD7x83jLSLogpuInQpFMA9LgA==
-  dependencies:
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/service-error-classification@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/service-error-classification/-/service-error-classification-3.347.0.tgz#c5a242d953eae0ff0290c776d93b3f5ebd85d2e2"
-  integrity sha512-xZ3MqSY81Oy2gh5g0fCtooAbahqh9VhsF8vcKjVX8+XPbGC8y+kej82+MsMg4gYL8gRFB9u4hgYbNgIS6JTAvg==
-
-"@aws-sdk/shared-ini-file-loader@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.347.0.tgz#f44baf03f632f1a2f4188368ff0770852c0ac035"
-  integrity sha512-Xw+zAZQVLb+xMNHChXQ29tzzLqm3AEHsD8JJnlkeFjeMnWQtXdUfOARl5s8NzAppcKQNlVe2gPzjaKjoy2jz1Q==
-  dependencies:
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/signature-v4@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4/-/signature-v4-3.347.0.tgz#0f5eb4ec260eb0fe2fe5e3ee6cb011076f3582fa"
-  integrity sha512-58Uq1do+VsTHYkP11dTK+DF53fguoNNJL9rHRWhzP+OcYv3/mBMLoS2WPz/x9FO5mBg4ESFsug0I6mXbd36tjw==
-  dependencies:
-    "@aws-sdk/eventstream-codec" "3.347.0"
-    "@aws-sdk/is-array-buffer" "3.310.0"
-    "@aws-sdk/types" "3.347.0"
-    "@aws-sdk/util-hex-encoding" "3.310.0"
-    "@aws-sdk/util-middleware" "3.347.0"
-    "@aws-sdk/util-uri-escape" "3.310.0"
-    "@aws-sdk/util-utf8" "3.310.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/smithy-client@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/smithy-client/-/smithy-client-3.347.0.tgz#ec11b292917f6269eecc124dae723ac6e1203f8f"
-  integrity sha512-PaGTDsJLGK0sTjA6YdYQzILRlPRN3uVFyqeBUkfltXssvUzkm8z2t1lz2H4VyJLAhwnG5ZuZTNEV/2mcWrU7JQ==
-  dependencies:
-    "@aws-sdk/middleware-stack" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/token-providers@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.353.0.tgz#e7dfc4232d2eb252a1af660c24599909a3a95dfc"
-  integrity sha512-tGW36o1tVRf1FtT8HvQ7oCHuoV24XMsEnfErTZik19BZrfakDBeFvZUZ67av6/TBonHdbpBb7dDCJ+nqoG7XCg==
-  dependencies:
-    "@aws-sdk/client-sso-oidc" "3.353.0"
-    "@aws-sdk/property-provider" "3.353.0"
-    "@aws-sdk/shared-ini-file-loader" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/types@3.347.0", "@aws-sdk/types@^3.222.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.347.0.tgz#4affe91de36ef227f6375d64a6efda8d4ececd5d"
-  integrity sha512-GkCMy79mdjU9OTIe5KT58fI/6uqdf8UmMdWqVHmFJ+UpEzOci7L/uw4sOXWo7xpPzLs6cJ7s5ouGZW4GRPmHFA==
-  dependencies:
-    tslib "^2.5.0"
-
-"@aws-sdk/url-parser@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/url-parser/-/url-parser-3.347.0.tgz#b3c31fc9ffb1ac5586ab088f9b109386e6b4c7a8"
-  integrity sha512-lhrnVjxdV7hl+yCnJfDZOaVLSqKjxN20MIOiijRiqaWGLGEAiSqBreMhL89X1WKCifxAs4zZf9YB9SbdziRpAA==
-  dependencies:
-    "@aws-sdk/querystring-parser" "3.347.0"
-    "@aws-sdk/types" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/util-base64@3.310.0":
-  version "3.310.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-base64/-/util-base64-3.310.0.tgz#d0fd49aff358c5a6e771d0001c63b1f97acbe34c"
-  integrity sha512-v3+HBKQvqgdzcbL+pFswlx5HQsd9L6ZTlyPVL2LS9nNXnCcR3XgGz9jRskikRUuUvUXtkSG1J88GAOnJ/apTPg==
-  dependencies:
-    "@aws-sdk/util-buffer-from" "3.310.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/util-body-length-browser@3.310.0":
-  version "3.310.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.310.0.tgz#3fca9d2f73c058edf1907e4a1d99a392fdd23eca"
-  integrity sha512-sxsC3lPBGfpHtNTUoGXMQXLwjmR0zVpx0rSvzTPAuoVILVsp5AU/w5FphNPxD5OVIjNbZv9KsKTuvNTiZjDp9g==
-  dependencies:
-    tslib "^2.5.0"
-
-"@aws-sdk/util-body-length-node@3.310.0":
-  version "3.310.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-node/-/util-body-length-node-3.310.0.tgz#4846ae72834ab0636f29f89fc1878520f6543fed"
-  integrity sha512-2tqGXdyKhyA6w4zz7UPoS8Ip+7sayOg9BwHNidiGm2ikbDxm1YrCfYXvCBdwaJxa4hJfRVz+aL9e+d3GqPI9pQ==
-  dependencies:
-    tslib "^2.5.0"
-
-"@aws-sdk/util-buffer-from@3.310.0":
-  version "3.310.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-buffer-from/-/util-buffer-from-3.310.0.tgz#7a72cb965984d3c6a7e256ae6cf1621f52e54a57"
-  integrity sha512-i6LVeXFtGih5Zs8enLrt+ExXY92QV25jtEnTKHsmlFqFAuL3VBeod6boeMXkN2p9lbSVVQ1sAOOYZOHYbYkntw==
-  dependencies:
-    "@aws-sdk/is-array-buffer" "3.310.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/util-config-provider@3.310.0":
-  version "3.310.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-config-provider/-/util-config-provider-3.310.0.tgz#ff21f73d4774cfd7bd16ae56f905828600dda95f"
-  integrity sha512-xIBaYo8dwiojCw8vnUcIL4Z5tyfb1v3yjqyJKJWV/dqKUFOOS0U591plmXbM+M/QkXyML3ypon1f8+BoaDExrg==
-  dependencies:
-    tslib "^2.5.0"
-
-"@aws-sdk/util-defaults-mode-browser@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.353.0.tgz#b90b8b354bfb582a9cc7b87b67ce1508d57176ea"
-  integrity sha512-ushvOQKJIH7S6E//xMDPyf2/Bbu0K2A0GJRB88qQV6VKRBo4PEbeHTb6BbzPhYVX0IbY3uR/X7+Xwk4FeEkMWg==
-  dependencies:
-    "@aws-sdk/property-provider" "3.353.0"
-    "@aws-sdk/types" "3.347.0"
-    bowser "^2.11.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/util-defaults-mode-node@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.353.0.tgz#7d42f237f394f6606e41883ab7b1c41048e8cadd"
-  integrity sha512-wUmv1qr19kjjLwKoc/hVTrZCGTVNssnMWdq7cu6dQoz06kOpYrxLpdQEsj71Lh0+XYFBYUU5c3NRMasnFnl1DQ==
-  dependencies:
-    "@aws-sdk/config-resolver" "3.353.0"
-    "@aws-sdk/credential-provider-imds" "3.353.0"
-    "@aws-sdk/node-config-provider" "3.353.0"
-    "@aws-sdk/property-provider" "3.353.0"
-    "@aws-sdk/types" "3.347.0"
+    "@aws-crypto/sha256-browser" "3.0.0"
+    "@aws-crypto/sha256-js" "3.0.0"
+    "@aws-sdk/middleware-host-header" "3.496.0"
+    "@aws-sdk/middleware-logger" "3.496.0"
+    "@aws-sdk/middleware-recursion-detection" "3.496.0"
+    "@aws-sdk/middleware-user-agent" "3.496.0"
+    "@aws-sdk/region-config-resolver" "3.496.0"
+    "@aws-sdk/types" "3.496.0"
+    "@aws-sdk/util-endpoints" "3.496.0"
+    "@aws-sdk/util-user-agent-browser" "3.496.0"
+    "@aws-sdk/util-user-agent-node" "3.496.0"
+    "@smithy/config-resolver" "^2.1.1"
+    "@smithy/fetch-http-handler" "^2.4.1"
+    "@smithy/hash-node" "^2.1.1"
+    "@smithy/invalid-dependency" "^2.1.1"
+    "@smithy/middleware-content-length" "^2.1.1"
+    "@smithy/middleware-endpoint" "^2.4.1"
+    "@smithy/middleware-retry" "^2.1.1"
+    "@smithy/middleware-serde" "^2.1.1"
+    "@smithy/middleware-stack" "^2.1.1"
+    "@smithy/node-config-provider" "^2.2.1"
+    "@smithy/node-http-handler" "^2.3.1"
+    "@smithy/property-provider" "^2.1.1"
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/shared-ini-file-loader" "^2.3.1"
+    "@smithy/smithy-client" "^2.3.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/url-parser" "^2.1.1"
+    "@smithy/util-base64" "^2.1.1"
+    "@smithy/util-body-length-browser" "^2.1.1"
+    "@smithy/util-body-length-node" "^2.2.1"
+    "@smithy/util-defaults-mode-browser" "^2.1.1"
+    "@smithy/util-defaults-mode-node" "^2.1.1"
+    "@smithy/util-endpoints" "^1.1.1"
+    "@smithy/util-retry" "^2.1.1"
+    "@smithy/util-utf8" "^2.1.1"
     tslib "^2.5.0"
 
-"@aws-sdk/util-endpoints@3.352.0":
-  version "3.352.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.352.0.tgz#89c10e00a257f88fb72c4d3b362fbfbeb00513cf"
-  integrity sha512-PjWMPdoIUWfBPgAWLyOrWFbdSS/3DJtc0OmFb/JrE8C8rKFYl+VGW5f1p0cVdRWiDR0xCGr0s67p8itAakVqjw==
+"@aws-sdk/types@3.496.0", "@aws-sdk/types@^3.222.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.496.0.tgz#cdde44a94a57cf8f97cf05e4d0bdce2f56ce4eeb"
+  integrity sha512-umkGadK4QuNQaMoDICMm7NKRI/mYSXiyPjcn3d53BhsuArYU/52CebGQKdt4At7SwwsiVJZw9RNBHyN5Mm0HVw==
   dependencies:
-    "@aws-sdk/types" "3.347.0"
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
-"@aws-sdk/util-hex-encoding@3.310.0":
-  version "3.310.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.310.0.tgz#19294c78986c90ae33f04491487863dc1d33bd87"
-  integrity sha512-sVN7mcCCDSJ67pI1ZMtk84SKGqyix6/0A1Ab163YKn+lFBQRMKexleZzpYzNGxYzmQS6VanP/cfU7NiLQOaSfA==
+"@aws-sdk/util-endpoints@3.496.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.496.0.tgz#5ce7d3efd7ab67db556e2c199e73826c44d22ecd"
+  integrity sha512-1QzOiWHi383ZwqSi/R2KgKCd7M+6DxkxI5acqLPm8mvDRDP2jRjrnVaC0g9/tlttWousGEemDUWStwrD2mVYSw==
   dependencies:
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/types" "^2.9.1"
+    "@smithy/util-endpoints" "^1.1.1"
     tslib "^2.5.0"
 
 "@aws-sdk/util-locate-window@^3.0.0":
-  version "3.310.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.310.0.tgz#b071baf050301adee89051032bd4139bba32cc40"
-  integrity sha512-qo2t/vBTnoXpjKxlsC2e1gBrRm80M3bId27r0BRB2VniSSe7bL1mmzM+/HFtujm0iAxtPM+aLEflLJlJeDPg0w==
-  dependencies:
-    tslib "^2.5.0"
-
-"@aws-sdk/util-middleware@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-middleware/-/util-middleware-3.347.0.tgz#464b2e416486776fa39c926e7f04c2a0d822e8b5"
-  integrity sha512-8owqUA3ePufeYTUvlzdJ7Z0miLorTwx+rNol5lourGQZ9JXsVMo23+yGA7nOlFuXSGkoKpMOtn6S0BT2bcfeiw==
-  dependencies:
-    tslib "^2.5.0"
-
-"@aws-sdk/util-retry@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-retry/-/util-retry-3.347.0.tgz#9a24ebcd6c34888eee0ffb81c1529ea51a5cdecc"
-  integrity sha512-NxnQA0/FHFxriQAeEgBonA43Q9/VPFQa8cfJDuT2A1YZruMasgjcltoZszi1dvoIRWSZsFTW42eY2gdOd0nffQ==
-  dependencies:
-    "@aws-sdk/service-error-classification" "3.347.0"
-    tslib "^2.5.0"
-
-"@aws-sdk/util-uri-escape@3.310.0":
-  version "3.310.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-uri-escape/-/util-uri-escape-3.310.0.tgz#9f942f09a715d8278875013a416295746b6085ba"
-  integrity sha512-drzt+aB2qo2LgtDoiy/3sVG8w63cgLkqFIa2NFlGpUgHFWTXkqtbgf4L5QdjRGKWhmZsnqkbtL7vkSWEcYDJ4Q==
+  version "3.495.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.495.0.tgz#9034fd8db77991b28ed20e067acdd53e8b8f824b"
+  integrity sha512-MfaPXT0kLX2tQaR90saBT9fWQq2DHqSSJRzW+MZWsmF+y5LGCOhO22ac/2o6TKSQm7h0HRc2GaADqYYYor62yg==
   dependencies:
     tslib "^2.5.0"
 
-"@aws-sdk/util-user-agent-browser@3.347.0":
-  version "3.347.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.347.0.tgz#90bedd2031561b9d45aef54991eeca49ec8d950b"
-  integrity sha512-ydxtsKVtQefgbk1Dku1q7pMkjDYThauG9/8mQkZUAVik55OUZw71Zzr3XO8J8RKvQG8lmhPXuAQ0FKAyycc0RA==
+"@aws-sdk/util-user-agent-browser@3.496.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.496.0.tgz#494b086dd8b07acdd6be65034c51545e5bcee37b"
+  integrity sha512-4j2spN+h0I0qfSMsGvJXTfQBu1e18rPdekKvzsGJxhaAE1tNgUfUT4nbvc5uVn0sNjZmirskmJ3kfbzVOrqIFg==
   dependencies:
-    "@aws-sdk/types" "3.347.0"
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/types" "^2.9.1"
     bowser "^2.11.0"
     tslib "^2.5.0"
 
-"@aws-sdk/util-user-agent-node@3.353.0":
-  version "3.353.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.353.0.tgz#8ed12d7234bb161c201833304db0f9441c309c9a"
-  integrity sha512-wAviGE0NFqGnaBi6JdjCjp/3DA4AprXQayg9fGphRmP6ncOHNHGonPj/60l+Itu+m78V2CbIS76jqCdUtyAZEQ==
+"@aws-sdk/util-user-agent-node@3.496.0":
+  version "3.496.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.496.0.tgz#db14e02cf82af556c826570efc7db1e57de3262d"
+  integrity sha512-h0Ax0jlDc7UIo3KoSI4C4tVLBFoiAdx3+DhTVfgLS7x93d41dMlziPoBX2RgdcFn37qnzw6AQKTVTMwDbRCGpg==
   dependencies:
-    "@aws-sdk/node-config-provider" "3.353.0"
-    "@aws-sdk/types" "3.347.0"
+    "@aws-sdk/types" "3.496.0"
+    "@smithy/node-config-provider" "^2.2.1"
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
 "@aws-sdk/util-utf8-browser@^3.0.0":
@@ -754,22 +497,14 @@
   dependencies:
     tslib "^2.3.1"
 
-"@aws-sdk/util-utf8@3.310.0":
-  version "3.310.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8/-/util-utf8-3.310.0.tgz#4a7b9dcebb88e830d3811aeb21e9a6df4273afb4"
-  integrity sha512-DnLfFT8uCO22uOJc0pt0DsSNau1GTisngBCDw8jQuWT5CqogMJu4b/uXmwEqfj8B3GX6Xsz8zOd6JpRlPftQoA==
-  dependencies:
-    "@aws-sdk/util-buffer-from" "3.310.0"
-    tslib "^2.5.0"
-
 "@babel/cli@^7.16.0":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.22.5.tgz#eb323bd69f50297792c2b7c205a97306a305d703"
-  integrity sha512-N5d7MjzwsQ2wppwjhrsicVDhJSqF9labEP/swYiHhio4Ca2XjEehpgPmerjnLQl7BPE59BLud0PTWGYwqFl/cQ==
+  version "7.23.9"
+  resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.23.9.tgz#06b3e76376ee53f14ac8ac422c884950c69e1b9e"
+  integrity sha512-vB1UXmGDNEhcf1jNAHKT9IlYk1R+hehVTLFlCLHBi8gfuHQGP6uRjgXVYU0EVlI/qwAWpstqkBdf2aez3/z/5Q==
   dependencies:
     "@jridgewell/trace-mapping" "^0.3.17"
     commander "^4.0.1"
-    convert-source-map "^1.1.0"
+    convert-source-map "^2.0.0"
     fs-readdir-recursive "^1.1.0"
     glob "^7.2.0"
     make-dir "^2.1.0"
@@ -778,45 +513,46 @@
     "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3"
     chokidar "^3.4.0"
 
-"@babel/code-frame@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658"
-  integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==
+"@babel/code-frame@^7.23.5":
+  version "7.23.5"
+  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244"
+  integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==
   dependencies:
-    "@babel/highlight" "^7.22.5"
+    "@babel/highlight" "^7.23.4"
+    chalk "^2.4.2"
 
-"@babel/compat-data@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.5.tgz#b1f6c86a02d85d2dd3368a2b67c09add8cd0c255"
-  integrity sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==
+"@babel/compat-data@^7.23.5":
+  version "7.23.5"
+  resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98"
+  integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==
 
 "@babel/core@^7.16.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.5.tgz#d67d9747ecf26ee7ecd3ebae1ee22225fe902a89"
-  integrity sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==
+  version "7.23.9"
+  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.9.tgz#b028820718000f267870822fec434820e9b1e4d1"
+  integrity sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==
   dependencies:
     "@ampproject/remapping" "^2.2.0"
-    "@babel/code-frame" "^7.22.5"
-    "@babel/generator" "^7.22.5"
-    "@babel/helper-compilation-targets" "^7.22.5"
-    "@babel/helper-module-transforms" "^7.22.5"
-    "@babel/helpers" "^7.22.5"
-    "@babel/parser" "^7.22.5"
-    "@babel/template" "^7.22.5"
-    "@babel/traverse" "^7.22.5"
-    "@babel/types" "^7.22.5"
-    convert-source-map "^1.7.0"
+    "@babel/code-frame" "^7.23.5"
+    "@babel/generator" "^7.23.6"
+    "@babel/helper-compilation-targets" "^7.23.6"
+    "@babel/helper-module-transforms" "^7.23.3"
+    "@babel/helpers" "^7.23.9"
+    "@babel/parser" "^7.23.9"
+    "@babel/template" "^7.23.9"
+    "@babel/traverse" "^7.23.9"
+    "@babel/types" "^7.23.9"
+    convert-source-map "^2.0.0"
     debug "^4.1.0"
     gensync "^1.0.0-beta.2"
-    json5 "^2.2.2"
-    semver "^6.3.0"
+    json5 "^2.2.3"
+    semver "^6.3.1"
 
-"@babel/generator@^7.22.5", "@babel/generator@^7.4.0":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.5.tgz#1e7bf768688acfb05cf30b2369ef855e82d984f7"
-  integrity sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==
+"@babel/generator@^7.23.6", "@babel/generator@^7.4.0":
+  version "7.23.6"
+  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e"
+  integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==
   dependencies:
-    "@babel/types" "^7.22.5"
+    "@babel/types" "^7.23.6"
     "@jridgewell/gen-mapping" "^0.3.2"
     "@jridgewell/trace-mapping" "^0.3.17"
     jsesc "^2.5.1"
@@ -828,29 +564,29 @@
   dependencies:
     "@babel/types" "^7.22.5"
 
-"@babel/helper-compilation-targets@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz#fc7319fc54c5e2fa14b2909cf3c5fd3046813e02"
-  integrity sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==
+"@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==
   dependencies:
-    "@babel/compat-data" "^7.22.5"
-    "@babel/helper-validator-option" "^7.22.5"
-    browserslist "^4.21.3"
+    "@babel/compat-data" "^7.23.5"
+    "@babel/helper-validator-option" "^7.23.5"
+    browserslist "^4.22.2"
     lru-cache "^5.1.1"
-    semver "^6.3.0"
+    semver "^6.3.1"
 
-"@babel/helper-environment-visitor@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98"
-  integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==
+"@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.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be"
-  integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==
+"@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.5"
-    "@babel/types" "^7.22.5"
+    "@babel/template" "^7.22.15"
+    "@babel/types" "^7.23.0"
 
 "@babel/helper-hoist-variables@^7.22.5":
   version "7.22.5"
@@ -859,26 +595,23 @@
   dependencies:
     "@babel/types" "^7.22.5"
 
-"@babel/helper-module-imports@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c"
-  integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==
+"@babel/helper-module-imports@^7.22.15":
+  version "7.22.15"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0"
+  integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==
   dependencies:
-    "@babel/types" "^7.22.5"
+    "@babel/types" "^7.22.15"
 
-"@babel/helper-module-transforms@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz#0f65daa0716961b6e96b164034e737f60a80d2ef"
-  integrity sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==
+"@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.5"
-    "@babel/helper-module-imports" "^7.22.5"
+    "@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.5"
-    "@babel/helper-validator-identifier" "^7.22.5"
-    "@babel/template" "^7.22.5"
-    "@babel/traverse" "^7.22.5"
-    "@babel/types" "^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":
   version "7.22.5"
@@ -892,139 +625,132 @@
   dependencies:
     "@babel/types" "^7.22.5"
 
-"@babel/helper-split-export-declaration@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz#88cf11050edb95ed08d596f7a044462189127a08"
-  integrity sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==
-  dependencies:
-    "@babel/types" "^7.22.5"
-
-"@babel/helper-string-parser@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f"
-  integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==
-
-"@babel/helper-validator-identifier@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193"
-  integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==
-
-"@babel/helper-validator-option@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac"
-  integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==
-
-"@babel/helpers@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.5.tgz#74bb4373eb390d1ceed74a15ef97767e63120820"
-  integrity sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==
+"@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/template" "^7.22.5"
-    "@babel/traverse" "^7.22.5"
     "@babel/types" "^7.22.5"
 
-"@babel/highlight@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031"
-  integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==
-  dependencies:
-    "@babel/helper-validator-identifier" "^7.22.5"
-    chalk "^2.0.0"
+"@babel/helper-string-parser@^7.23.4":
+  version "7.23.4"
+  resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83"
+  integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==
+
+"@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.23.9":
+  version "7.23.9"
+  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.9.tgz#c3e20bbe7f7a7e10cb9b178384b4affdf5995c7d"
+  integrity sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==
+  dependencies:
+    "@babel/template" "^7.23.9"
+    "@babel/traverse" "^7.23.9"
+    "@babel/types" "^7.23.9"
+
+"@babel/highlight@^7.23.4":
+  version "7.23.4"
+  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b"
+  integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==
+  dependencies:
+    "@babel/helper-validator-identifier" "^7.22.20"
+    chalk "^2.4.2"
     js-tokens "^4.0.0"
 
 "@babel/node@^7.16.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/node/-/node-7.22.5.tgz#5632c6f5f5d06ac68e34dd1cbe461ef4d5f8e49c"
-  integrity sha512-rguSfZsRNsAhCQ/XjZhDK2CTWxp/jEKx2On8Ir+C6uCZERirg/Ae6fJaOSKQgTg11kA2LEvonpxY2Hb3zF5C8g==
+  version "7.23.9"
+  resolved "https://registry.yarnpkg.com/@babel/node/-/node-7.23.9.tgz#fc40dc371439f1a45535ebf515232f4f046ef7a9"
+  integrity sha512-/d4ju/POwlGIJlZ+NqWH1qu61wt6ZlTZZZutrK2MOSdaH1JCh726nLw/GSvAjG+LTY6CO9SsB8uWcttnFKm6yg==
   dependencies:
-    "@babel/register" "^7.22.5"
+    "@babel/register" "^7.23.7"
     commander "^4.0.1"
     core-js "^3.30.2"
     node-environment-flags "^1.0.5"
-    regenerator-runtime "^0.13.11"
+    regenerator-runtime "^0.14.0"
     v8flags "^3.1.1"
 
-"@babel/parser@^7.22.5", "@babel/parser@^7.4.3":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.5.tgz#721fd042f3ce1896238cf1b341c77eb7dee7dbea"
-  integrity sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==
+"@babel/parser@^7.23.9", "@babel/parser@^7.4.3":
+  version "7.23.9"
+  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.9.tgz#7b903b6149b0f8fa7ad564af646c4c38a77fc44b"
+  integrity sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==
 
-"@babel/plugin-syntax-jsx@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918"
-  integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==
+"@babel/plugin-syntax-jsx@^7.23.3":
+  version "7.23.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473"
+  integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==
   dependencies:
     "@babel/helper-plugin-utils" "^7.22.5"
 
 "@babel/plugin-transform-react-jsx@^7.16.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz#932c291eb6dd1153359e2a90cb5e557dcf068416"
-  integrity sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==
+  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==
   dependencies:
     "@babel/helper-annotate-as-pure" "^7.22.5"
-    "@babel/helper-module-imports" "^7.22.5"
+    "@babel/helper-module-imports" "^7.22.15"
     "@babel/helper-plugin-utils" "^7.22.5"
-    "@babel/plugin-syntax-jsx" "^7.22.5"
-    "@babel/types" "^7.22.5"
+    "@babel/plugin-syntax-jsx" "^7.23.3"
+    "@babel/types" "^7.23.4"
 
-"@babel/register@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.22.5.tgz#e4d8d0f615ea3233a27b5c6ada6750ee59559939"
-  integrity sha512-vV6pm/4CijSQ8Y47RH5SopXzursN35RQINfGJkmOlcpAtGuf94miFvIPhCKGQN7WGIcsgG1BHEX2KVdTYwTwUQ==
+"@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==
   dependencies:
     clone-deep "^4.0.1"
     find-cache-dir "^2.0.0"
     make-dir "^2.1.0"
-    pirates "^4.0.5"
+    pirates "^4.0.6"
     source-map-support "^0.5.16"
 
-"@babel/template@^7.22.5", "@babel/template@^7.4.0":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec"
-  integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==
+"@babel/template@^7.22.15", "@babel/template@^7.23.9", "@babel/template@^7.4.0":
+  version "7.23.9"
+  resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.23.9.tgz#f881d0487cba2828d3259dcb9ef5005a9731011a"
+  integrity sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==
   dependencies:
-    "@babel/code-frame" "^7.22.5"
-    "@babel/parser" "^7.22.5"
-    "@babel/types" "^7.22.5"
+    "@babel/code-frame" "^7.23.5"
+    "@babel/parser" "^7.23.9"
+    "@babel/types" "^7.23.9"
 
-"@babel/traverse@^7.22.5", "@babel/traverse@^7.4.3":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.5.tgz#44bd276690db6f4940fdb84e1cb4abd2f729ccd1"
-  integrity sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==
+"@babel/traverse@^7.23.9", "@babel/traverse@^7.4.3":
+  version "7.23.9"
+  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.9.tgz#2f9d6aead6b564669394c5ce0f9302bb65b9d950"
+  integrity sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==
   dependencies:
-    "@babel/code-frame" "^7.22.5"
-    "@babel/generator" "^7.22.5"
-    "@babel/helper-environment-visitor" "^7.22.5"
-    "@babel/helper-function-name" "^7.22.5"
+    "@babel/code-frame" "^7.23.5"
+    "@babel/generator" "^7.23.6"
+    "@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.5"
-    "@babel/parser" "^7.22.5"
-    "@babel/types" "^7.22.5"
-    debug "^4.1.0"
+    "@babel/helper-split-export-declaration" "^7.22.6"
+    "@babel/parser" "^7.23.9"
+    "@babel/types" "^7.23.9"
+    debug "^4.3.1"
     globals "^11.1.0"
 
-"@babel/types@^7.22.5", "@babel/types@^7.4.0":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe"
-  integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==
+"@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.4", "@babel/types@^7.23.6", "@babel/types@^7.23.9", "@babel/types@^7.4.0":
+  version "7.23.9"
+  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.9.tgz#1dd7b59a9a2b5c87f8b41e52770b5ecbf492e002"
+  integrity sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==
   dependencies:
-    "@babel/helper-string-parser" "^7.22.5"
-    "@babel/helper-validator-identifier" "^7.22.5"
+    "@babel/helper-string-parser" "^7.23.4"
+    "@babel/helper-validator-identifier" "^7.22.20"
     to-fast-properties "^2.0.0"
 
-"@buttercup/fetch@^0.1.1":
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/@buttercup/fetch/-/fetch-0.1.1.tgz#ccdffc74c9aaf95a0b99dd6807441f2019d5de42"
-  integrity sha512-RwBiPEmPaZv3oLOPY0fcmAGYdd3A4FDoYDc7JN+qxGTXumrYAYEC1RpyCM2pHSr6RYpuaAeg4A1fJy+PiigPIA==
-  optionalDependencies:
-    node-fetch "^3.3.0"
-
-"@colors/colors@1.5.0":
-  version "1.5.0"
-  resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9"
-  integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==
+"@colors/colors@1.6.0", "@colors/colors@^1.6.0":
+  version "1.6.0"
+  resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.6.0.tgz#ec6cd237440700bc23ca23087f513c75508958b0"
+  integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==
 
-"@crowdsec/express-bouncer@*":
+"@crowdsec/express-bouncer@0.1.0":
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/@crowdsec/express-bouncer/-/express-bouncer-0.1.0.tgz#458a604d7fad3ce2acf382bcb17e344fb74e9932"
   integrity sha512-cS5ATNInb914yOubWznMB02lheDLImtIZ8A7n99sn7q2YI+P3Zt6G/Mttp+d1NL1PDUkFBMFlBreOslkcWwLFQ==
@@ -1050,29 +776,29 @@
     kuler "^2.0.0"
 
 "@discordjs/builders@^1.3.0":
-  version "1.6.3"
-  resolved "https://registry.yarnpkg.com/@discordjs/builders/-/builders-1.6.3.tgz#994b4fe57e77b47096f74bb5a1f664870a930a43"
-  integrity sha512-CTCh8NqED3iecTNuiz49mwSsrc2iQb4d0MjMdmS/8pb69Y4IlzJ/DIy/p5GFlgOrFbNO2WzMHkWKQSiJ3VNXaw==
+  version "1.7.0"
+  resolved "https://registry.yarnpkg.com/@discordjs/builders/-/builders-1.7.0.tgz#e2478c7e55b0f4c40837edb8f102bce977323a37"
+  integrity sha512-GDtbKMkg433cOZur8Dv6c25EHxduNIBsxeHrsRoIM8+AwmEZ8r0tEpckx/sHwTLwQPOF3e2JWloZh9ofCaMfAw==
   dependencies:
-    "@discordjs/formatters" "^0.3.1"
-    "@discordjs/util" "^0.3.1"
-    "@sapphire/shapeshift" "^3.8.2"
-    discord-api-types "^0.37.41"
+    "@discordjs/formatters" "^0.3.3"
+    "@discordjs/util" "^1.0.2"
+    "@sapphire/shapeshift" "^3.9.3"
+    discord-api-types "0.37.61"
     fast-deep-equal "^3.1.3"
     ts-mixer "^6.0.3"
-    tslib "^2.5.0"
+    tslib "^2.6.2"
 
 "@discordjs/collection@^1.2.0", "@discordjs/collection@^1.5.1":
-  version "1.5.1"
-  resolved "https://registry.yarnpkg.com/@discordjs/collection/-/collection-1.5.1.tgz#bc7ca557838dc29247bf19860426637f103bc383"
-  integrity sha512-aWEc9DCf3TMDe9iaJoOnO2+JVAjeRNuRxPZQA6GVvBf+Z3gqUuWYBy2NWh4+5CLYq5uoc3MOvUQ5H5m8CJBqOA==
+  version "1.5.3"
+  resolved "https://registry.yarnpkg.com/@discordjs/collection/-/collection-1.5.3.tgz#5a1250159ebfff9efa4f963cfa7e97f1b291be18"
+  integrity sha512-SVb428OMd3WO1paV3rm6tSjM4wC+Kecaa1EUGX7vc6/fddvw/6lg90z4QtCqm21zvVe92vMMDt9+DkIvjXImQQ==
 
-"@discordjs/formatters@^0.3.1":
-  version "0.3.1"
-  resolved "https://registry.yarnpkg.com/@discordjs/formatters/-/formatters-0.3.1.tgz#81393cf25e6e3223361061629752ea727475e842"
-  integrity sha512-M7X4IGiSeh4znwcRGcs+49B5tBkNDn4k5bmhxJDAUhRxRHTiFAOTVUNQ6yAKySu5jZTnCbSvTYHW3w0rAzV1MA==
+"@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==
   dependencies:
-    discord-api-types "^0.37.41"
+    discord-api-types "0.37.61"
 
 "@discordjs/rest@^1.3.0":
   version "1.7.1"
@@ -1093,16 +819,38 @@
   resolved "https://registry.yarnpkg.com/@discordjs/util/-/util-0.1.0.tgz#e42ca1bf407bc6d9adf252877d1b206e32ba369a"
   integrity sha512-e7d+PaTLVQav6rOc2tojh2y6FE8S7REkqLldq1XF4soCx74XB/DIjbVbVLtBemf0nLW77ntz0v+o5DytKwFNLQ==
 
-"@discordjs/util@^0.3.0", "@discordjs/util@^0.3.1":
+"@discordjs/util@^0.3.0":
   version "0.3.1"
   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==
+
+"@fastify/busboy@^2.0.0":
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.0.tgz#0709e9f4cb252351c609c6e6d8d6779a8d25edff"
+  integrity sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==
+
 "@gar/promisify@^1.0.1":
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6"
   integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==
 
+"@hapi/hoek@^9.0.0", "@hapi/hoek@^9.3.0":
+  version "9.3.0"
+  resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb"
+  integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==
+
+"@hapi/topo@^5.1.0":
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012"
+  integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==
+  dependencies:
+    "@hapi/hoek" "^9.0.0"
+
 "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2":
   version "0.3.3"
   resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098"
@@ -1112,38 +860,33 @@
     "@jridgewell/sourcemap-codec" "^1.4.10"
     "@jridgewell/trace-mapping" "^0.3.9"
 
-"@jridgewell/resolve-uri@3.1.0":
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78"
-  integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==
+"@jridgewell/resolve-uri@^3.1.0":
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721"
+  integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==
 
 "@jridgewell/set-array@^1.0.1":
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
   integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
 
-"@jridgewell/sourcemap-codec@1.4.14":
-  version "1.4.14"
-  resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
-  integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
-
-"@jridgewell/sourcemap-codec@^1.4.10":
+"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14":
   version "1.4.15"
   resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
   integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
 
 "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9":
-  version "0.3.18"
-  resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6"
-  integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==
+  version "0.3.22"
+  resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz#72a621e5de59f5f1ef792d0793a82ee20f645e4c"
+  integrity sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==
   dependencies:
-    "@jridgewell/resolve-uri" "3.1.0"
-    "@jridgewell/sourcemap-codec" "1.4.14"
+    "@jridgewell/resolve-uri" "^3.1.0"
+    "@jridgewell/sourcemap-codec" "^1.4.14"
 
 "@mapbox/node-pre-gyp@^1.0.0":
-  version "1.0.10"
-  resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz#8e6735ccebbb1581e5a7e652244cadc8a844d03c"
-  integrity sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==
+  version "1.0.11"
+  resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz#417db42b7f5323d79e93b34a6d7a2a12c0df43fa"
+  integrity sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==
   dependencies:
     detect-libc "^2.0.0"
     https-proxy-agent "^5.0.0"
@@ -1163,7 +906,7 @@
     oauth "0.9.x"
     passport-strategy "1.x.x"
 
-"@mysql/xdevapi@*":
+"@mysql/xdevapi@8.0.33":
   version "8.0.33"
   resolved "https://registry.yarnpkg.com/@mysql/xdevapi/-/xdevapi-8.0.33.tgz#966f71563a2e2a27cb5279fdf72fa9ee41538ec2"
   integrity sha512-SXy+1CMtTb6qyKo/vzj/krWU4Ui6PnEtkkUjwdLpVdxkt0noZdDMmoGUxtMsm+Y2l15tme1MVuYvxMK7RJVfEA==
@@ -1193,60 +936,465 @@
     mkdirp "^1.0.4"
     rimraf "^3.0.2"
 
+"@postman/form-data@~3.1.1":
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/@postman/form-data/-/form-data-3.1.1.tgz#d0446d0d3639a291f5e800e89fa1d0d3723f9414"
+  integrity sha512-vjh8Q2a8S6UCm/KKs31XFJqEEgmbjBmpPNVV2eVav6905wyFAwaUOBGA1NPBI4ERH9MMZc6w0umFgM6WbEPMdg==
+  dependencies:
+    asynckit "^0.4.0"
+    combined-stream "^1.0.8"
+    mime-types "^2.1.12"
+
+"@postman/tough-cookie@~4.1.3-postman.1":
+  version "4.1.3-postman.1"
+  resolved "https://registry.yarnpkg.com/@postman/tough-cookie/-/tough-cookie-4.1.3-postman.1.tgz#9b2aa98f0b42f7e8381ee7e66277cd0253a91f11"
+  integrity sha512-txpgUqZOnWYnUHZpHjkfb0IwVH4qJmyq77pPnJLlfhMtdCLMFTEeQHlzQiK906aaNCe4NEB5fGJHo9uzGbFMeA==
+  dependencies:
+    psl "^1.1.33"
+    punycode "^2.1.1"
+    universalify "^0.2.0"
+    url-parse "^1.5.3"
+
+"@postman/tunnel-agent@^0.6.3":
+  version "0.6.3"
+  resolved "https://registry.yarnpkg.com/@postman/tunnel-agent/-/tunnel-agent-0.6.3.tgz#23048d8d8618d453c571f03189e944afdc2292b7"
+  integrity sha512-k57fzmAZ2PJGxfOA4SGR05ejorHbVAa/84Hxh/2nAztjNXc4ZjOm9NUIk6/Z6LCrBvJZqjRZbN8e/nROVUPVdg==
+  dependencies:
+    safe-buffer "^5.0.1"
+
 "@sapphire/async-queue@^1.5.0":
-  version "1.5.0"
-  resolved "https://registry.yarnpkg.com/@sapphire/async-queue/-/async-queue-1.5.0.tgz#2f255a3f186635c4fb5a2381e375d3dfbc5312d8"
-  integrity sha512-JkLdIsP8fPAdh9ZZjrbHWR/+mZj0wvKS5ICibcLrRI1j84UmLMshx5n9QmL8b95d4onJ2xxiyugTgSAX7AalmA==
+  version "1.5.2"
+  resolved "https://registry.yarnpkg.com/@sapphire/async-queue/-/async-queue-1.5.2.tgz#2982dce16e5b8b1ea792604d20c23c0585877b97"
+  integrity sha512-7X7FFAA4DngXUl95+hYbUF19bp1LGiffjJtu7ygrZrbdCSsdDDBaSjB7Akw0ZbOu6k0xpXyljnJ6/RZUvLfRdg==
 
-"@sapphire/shapeshift@^3.8.2":
-  version "3.9.2"
-  resolved "https://registry.yarnpkg.com/@sapphire/shapeshift/-/shapeshift-3.9.2.tgz#a9c12cd51e1bc467619bb56df804450dd14871ac"
-  integrity sha512-YRbCXWy969oGIdqR/wha62eX8GNHsvyYi0Rfd4rNW6tSVVa8p0ELiMEuOH/k8rgtvRoM+EMV7Csqz77YdwiDpA==
+"@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==
   dependencies:
     fast-deep-equal "^3.1.3"
     lodash "^4.17.21"
 
 "@sapphire/snowflake@^3.2.2", "@sapphire/snowflake@^3.4.2":
-  version "3.5.1"
-  resolved "https://registry.yarnpkg.com/@sapphire/snowflake/-/snowflake-3.5.1.tgz#254521c188b49e8b2d4cc048b475fb2b38737fec"
-  integrity sha512-BxcYGzgEsdlG0dKAyOm0ehLGm2CafIrfQTZGWgkfKYbj+pNNsorZ7EotuZukc2MT70E0UbppVbtpBrqpzVzjNA==
+  version "3.5.3"
+  resolved "https://registry.yarnpkg.com/@sapphire/snowflake/-/snowflake-3.5.3.tgz#0c102aa2ec5b34f806e9bc8625fc6a5e1d0a0c6a"
+  integrity sha512-jjmJywLAFoWeBi1W7994zZyiNWPIiqRRNAmSERxyg93xRGzNYvGjlZ0gR6x0F4gPRi2+0O6S71kOZYyr3cxaIQ==
 
-"@sendgrid/client@^7.7.0":
-  version "7.7.0"
-  resolved "https://registry.yarnpkg.com/@sendgrid/client/-/client-7.7.0.tgz#f8f67abd604205a0d0b1af091b61517ef465fdbf"
-  integrity sha512-SxH+y8jeAQSnDavrTD0uGDXYIIkFylCo+eDofVmZLQ0f862nnqbC3Vd1ej6b7Le7lboyzQF6F7Fodv02rYspuA==
+"@sendgrid/client@^8.1.0":
+  version "8.1.0"
+  resolved "https://registry.yarnpkg.com/@sendgrid/client/-/client-8.1.0.tgz#502865bbffe9442f778a14af1995892f5d4adf14"
+  integrity sha512-Kp2kKLr307v/HnR3uGuySt0AbCkeG7naDVOzfPOtWvKHVZIEHmKidQjJjzytVZNYWtoRdYgNfBw6GyUznGqa6w==
   dependencies:
-    "@sendgrid/helpers" "^7.7.0"
-    axios "^0.26.0"
+    "@sendgrid/helpers" "^8.0.0"
+    axios "^1.6.0"
 
-"@sendgrid/helpers@^7.7.0":
-  version "7.7.0"
-  resolved "https://registry.yarnpkg.com/@sendgrid/helpers/-/helpers-7.7.0.tgz#93fb4b6e2f0dc65080440d6a784cc93e8e148757"
-  integrity sha512-3AsAxfN3GDBcXoZ/y1mzAAbKzTtUZ5+ZrHOmWQ279AuaFXUNCh9bPnRpN504bgveTqoW+11IzPg3I0WVgDINpw==
+"@sendgrid/helpers@^8.0.0":
+  version "8.0.0"
+  resolved "https://registry.yarnpkg.com/@sendgrid/helpers/-/helpers-8.0.0.tgz#f74bf9743bacafe4c8573be46166130c604c0fc1"
+  integrity sha512-Ze7WuW2Xzy5GT5WRx+yEv89fsg/pgy3T1E3FS0QEx0/VvRmigMZ5qyVGhJz4SxomegDkzXv/i0aFPpHKN8qdAA==
   dependencies:
     deepmerge "^4.2.2"
 
 "@sendgrid/mail@*":
-  version "7.7.0"
-  resolved "https://registry.yarnpkg.com/@sendgrid/mail/-/mail-7.7.0.tgz#aba09f5ce2e9d8ceee92284c3ea8b4a90b0e38fe"
-  integrity sha512-5+nApPE9wINBvHSUxwOxkkQqM/IAAaBYoP9hw7WwgDNQPxraruVqHizeTitVtKGiqWCKm2mnjh4XGN3fvFLqaw==
+  version "8.1.0"
+  resolved "https://registry.yarnpkg.com/@sendgrid/mail/-/mail-8.1.0.tgz#873486233c511f41d98f69290f9664c1d14e205e"
+  integrity sha512-WkE0qwOrJMX9oQ+Xvtl3CdmucD6/iKw6go0VPoPieVlfXc43rbIf91wvtO6m7sKPnzxw3G+8rekBgXibmP4S8Q==
   dependencies:
-    "@sendgrid/client" "^7.7.0"
-    "@sendgrid/helpers" "^7.7.0"
+    "@sendgrid/client" "^8.1.0"
+    "@sendgrid/helpers" "^8.0.0"
 
-"@smithy/protocol-http@^1.0.1":
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-1.0.1.tgz#62fd73d73db285fd8e9a2287ed2904ac66e0d43f"
-  integrity sha512-9OrEn0WfOVtBNYJUjUAn9AOiJ4lzERCJJ/JeZs8E6yajTGxBaFRxUnNBHiNqoDJVg076hY36UmEnPx7xXrvUSg==
+"@sideway/address@^4.1.4":
+  version "4.1.4"
+  resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0"
+  integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==
   dependencies:
-    "@smithy/types" "^1.0.0"
+    "@hapi/hoek" "^9.0.0"
+
+"@sideway/formula@^3.0.1":
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.1.tgz#80fcbcbaf7ce031e0ef2dd29b1bfc7c3f583611f"
+  integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==
+
+"@sideway/pinpoint@^2.0.0":
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df"
+  integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==
+
+"@smithy/abort-controller@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-2.1.1.tgz#bb68596a7c8213c2ef259bc7fb0f0c118c67ea9d"
+  integrity sha512-1+qdrUqLhaALYL0iOcN43EP6yAXXQ2wWZ6taf4S2pNGowmOc5gx+iMQv+E42JizNJjB0+gEadOXeV1Bf7JWL1Q==
+  dependencies:
+    "@smithy/types" "^2.9.1"
     tslib "^2.5.0"
 
-"@smithy/types@^1.0.0":
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/@smithy/types/-/types-1.0.0.tgz#87ab6131fe5e19cbd4d383ffb94d2b806d027d38"
-  integrity sha512-kc1m5wPBHQCTixwuaOh9vnak/iJm21DrSf9UK6yDE5S3mQQ4u11pqAUiKWnlrZnYkeLfAI9UEHj9OaMT1v5Umg==
+"@smithy/config-resolver@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-2.1.1.tgz#fc6b036084b98fd26a8ff01a5d7eb676e41749c7"
+  integrity sha512-lxfLDpZm+AWAHPFZps5JfDoO9Ux1764fOgvRUBpHIO8HWHcSN1dkgsago1qLRVgm1BZ8RCm8cgv99QvtaOWIhw==
+  dependencies:
+    "@smithy/node-config-provider" "^2.2.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/util-config-provider" "^2.2.1"
+    "@smithy/util-middleware" "^2.1.1"
+    tslib "^2.5.0"
+
+"@smithy/core@^1.3.1":
+  version "1.3.1"
+  resolved "https://registry.yarnpkg.com/@smithy/core/-/core-1.3.1.tgz#ecedc564e68453b02c20db9e8435d59005c066d8"
+  integrity sha512-tf+NIu9FkOh312b6M9G4D68is4Xr7qptzaZGZUREELF8ysE1yLKphqt7nsomjKZVwW7WE5pDDex9idowNGRQ/Q==
+  dependencies:
+    "@smithy/middleware-endpoint" "^2.4.1"
+    "@smithy/middleware-retry" "^2.1.1"
+    "@smithy/middleware-serde" "^2.1.1"
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/smithy-client" "^2.3.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/util-middleware" "^2.1.1"
+    tslib "^2.5.0"
+
+"@smithy/credential-provider-imds@^2.2.1":
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-2.2.1.tgz#4805bf5e104718b959cf8699113fa9de6ddeeafa"
+  integrity sha512-7XHjZUxmZYnONheVQL7j5zvZXga+EWNgwEAP6OPZTi7l8J4JTeNh9aIOfE5fKHZ/ee2IeNOh54ZrSna+Vc6TFA==
+  dependencies:
+    "@smithy/node-config-provider" "^2.2.1"
+    "@smithy/property-provider" "^2.1.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/url-parser" "^2.1.1"
+    tslib "^2.5.0"
+
+"@smithy/eventstream-codec@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-2.1.1.tgz#4405ab0f9c77d439c575560c4886e59ee17d6d38"
+  integrity sha512-E8KYBxBIuU4c+zrpR22VsVrOPoEDzk35bQR3E+xm4k6Pa6JqzkDOdMyf9Atac5GPNKHJBdVaQ4JtjdWX2rl/nw==
   dependencies:
+    "@aws-crypto/crc32" "3.0.0"
+    "@smithy/types" "^2.9.1"
+    "@smithy/util-hex-encoding" "^2.1.1"
+    tslib "^2.5.0"
+
+"@smithy/fetch-http-handler@^2.4.1":
+  version "2.4.1"
+  resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-2.4.1.tgz#b4d73bbc1449f61234077d58c705b843a8587bf0"
+  integrity sha512-VYGLinPsFqH68lxfRhjQaSkjXM7JysUOJDTNjHBuN/ykyRb2f1gyavN9+VhhPTWCy32L4yZ2fdhpCs/nStEicg==
+  dependencies:
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/querystring-builder" "^2.1.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/util-base64" "^2.1.1"
+    tslib "^2.5.0"
+
+"@smithy/hash-node@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-2.1.1.tgz#0f8a22d97565ca948724f72267e4d3a2f33740a8"
+  integrity sha512-Qhoq0N8f2OtCnvUpCf+g1vSyhYQrZjhSwvJ9qvR8BUGOtTXiyv2x1OD2e6jVGmlpC4E4ax1USHoyGfV9JFsACg==
+  dependencies:
+    "@smithy/types" "^2.9.1"
+    "@smithy/util-buffer-from" "^2.1.1"
+    "@smithy/util-utf8" "^2.1.1"
+    tslib "^2.5.0"
+
+"@smithy/invalid-dependency@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-2.1.1.tgz#bd69fa24dd35e9bc65a160bd86becdf1399e4463"
+  integrity sha512-7WTgnKw+VPg8fxu2v9AlNOQ5yaz6RA54zOVB4f6vQuR0xFKd+RzlCpt0WidYTsye7F+FYDIaS/RnJW4pxjNInw==
+  dependencies:
+    "@smithy/types" "^2.9.1"
+    tslib "^2.5.0"
+
+"@smithy/is-array-buffer@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.1.1.tgz#07b4c77ae67ed58a84400c76edd482271f9f957b"
+  integrity sha512-xozSQrcUinPpNPNPds4S7z/FakDTh1MZWtRP/2vQtYB/u3HYrX2UXuZs+VhaKBd6Vc7g2XPr2ZtwGBNDN6fNKQ==
+  dependencies:
+    tslib "^2.5.0"
+
+"@smithy/middleware-content-length@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-2.1.1.tgz#df767de12d594bc5622009fb0fc8343522697d8c"
+  integrity sha512-rSr9ezUl9qMgiJR0UVtVOGEZElMdGFyl8FzWEF5iEKTlcWxGr2wTqGfDwtH3LAB7h+FPkxqv4ZU4cpuCN9Kf/g==
+  dependencies:
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/types" "^2.9.1"
+    tslib "^2.5.0"
+
+"@smithy/middleware-endpoint@^2.4.1":
+  version "2.4.1"
+  resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-2.4.1.tgz#9e500df4d944741808e92018ccd2e948b598a49f"
+  integrity sha512-XPZTb1E2Oav60Ven3n2PFx+rX9EDsU/jSTA8VDamt7FXks67ekjPY/XrmmPDQaFJOTUHJNKjd8+kZxVO5Ael4Q==
+  dependencies:
+    "@smithy/middleware-serde" "^2.1.1"
+    "@smithy/node-config-provider" "^2.2.1"
+    "@smithy/shared-ini-file-loader" "^2.3.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/url-parser" "^2.1.1"
+    "@smithy/util-middleware" "^2.1.1"
+    tslib "^2.5.0"
+
+"@smithy/middleware-retry@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-2.1.1.tgz#ddc749dd927f136714f76ca5a52dcfb0993ee162"
+  integrity sha512-eMIHOBTXro6JZ+WWzZWd/8fS8ht5nS5KDQjzhNMHNRcG5FkNTqcKpYhw7TETMYzbLfhO5FYghHy1vqDWM4FLDA==
+  dependencies:
+    "@smithy/node-config-provider" "^2.2.1"
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/service-error-classification" "^2.1.1"
+    "@smithy/smithy-client" "^2.3.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/util-middleware" "^2.1.1"
+    "@smithy/util-retry" "^2.1.1"
+    tslib "^2.5.0"
+    uuid "^8.3.2"
+
+"@smithy/middleware-serde@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-2.1.1.tgz#2c5750f76e276a5249720f6c3c24fac29abbee16"
+  integrity sha512-D8Gq0aQBeE1pxf3cjWVkRr2W54t+cdM2zx78tNrVhqrDykRA7asq8yVJij1u5NDtKzKqzBSPYh7iW0svUKg76g==
+  dependencies:
+    "@smithy/types" "^2.9.1"
+    tslib "^2.5.0"
+
+"@smithy/middleware-stack@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-2.1.1.tgz#67f992dc36e8a6861f881f80a81c1c30956a0396"
+  integrity sha512-KPJhRlhsl8CjgGXK/DoDcrFGfAqoqvuwlbxy+uOO4g2Azn1dhH+GVfC3RAp+6PoL5PWPb+vt6Z23FP+Mr6qeCw==
+  dependencies:
+    "@smithy/types" "^2.9.1"
+    tslib "^2.5.0"
+
+"@smithy/node-config-provider@^2.2.1":
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-2.2.1.tgz#c440c7948d58d72f0e212aa1967aa12f0729defd"
+  integrity sha512-epzK3x1xNxA9oJgHQ5nz+2j6DsJKdHfieb+YgJ7ATWxzNcB7Hc+Uya2TUck5MicOPhDV8HZImND7ZOecVr+OWg==
+  dependencies:
+    "@smithy/property-provider" "^2.1.1"
+    "@smithy/shared-ini-file-loader" "^2.3.1"
+    "@smithy/types" "^2.9.1"
+    tslib "^2.5.0"
+
+"@smithy/node-http-handler@^2.3.1":
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-2.3.1.tgz#77d23279ff0a12cbe7cde93c5e7c0e86ad56dd20"
+  integrity sha512-gLA8qK2nL9J0Rk/WEZSvgin4AppvuCYRYg61dcUo/uKxvMZsMInL5I5ZdJTogOvdfVug3N2dgI5ffcUfS4S9PA==
+  dependencies:
+    "@smithy/abort-controller" "^2.1.1"
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/querystring-builder" "^2.1.1"
+    "@smithy/types" "^2.9.1"
+    tslib "^2.5.0"
+
+"@smithy/property-provider@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-2.1.1.tgz#0f7ffc5e43829eaca5b2b5aae8554807a52b30f3"
+  integrity sha512-FX7JhhD/o5HwSwg6GLK9zxrMUrGnb3PzNBrcthqHKBc3dH0UfgEAU24xnJ8F0uow5mj17UeBEOI6o3CF2k7Mhw==
+  dependencies:
+    "@smithy/types" "^2.9.1"
+    tslib "^2.5.0"
+
+"@smithy/protocol-http@^3.1.1":
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-3.1.1.tgz#eee522d0ed964a72b735d64925e07bcfb7a7806f"
+  integrity sha512-6ZRTSsaXuSL9++qEwH851hJjUA0OgXdQFCs+VDw4tGH256jQ3TjYY/i34N4vd24RV3nrjNsgd1yhb57uMoKbzQ==
+  dependencies:
+    "@smithy/types" "^2.9.1"
+    tslib "^2.5.0"
+
+"@smithy/querystring-builder@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-2.1.1.tgz#b9693448ad3f8e0767d84cf5cae29f35514591fb"
+  integrity sha512-C/ko/CeEa8jdYE4gt6nHO5XDrlSJ3vdCG0ZAc6nD5ZIE7LBp0jCx4qoqp7eoutBu7VrGMXERSRoPqwi1WjCPbg==
+  dependencies:
+    "@smithy/types" "^2.9.1"
+    "@smithy/util-uri-escape" "^2.1.1"
+    tslib "^2.5.0"
+
+"@smithy/querystring-parser@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-2.1.1.tgz#a4282a66cc56844317dbff824e573f469bbfc032"
+  integrity sha512-H4+6jKGVhG1W4CIxfBaSsbm98lOO88tpDWmZLgkJpt8Zkk/+uG0FmmqMuCAc3HNM2ZDV+JbErxr0l5BcuIf/XQ==
+  dependencies:
+    "@smithy/types" "^2.9.1"
+    tslib "^2.5.0"
+
+"@smithy/service-error-classification@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-2.1.1.tgz#dd24e1ec529ae9ec8e87d8b15f0fc8f7e17f3d02"
+  integrity sha512-txEdZxPUgM1PwGvDvHzqhXisrc5LlRWYCf2yyHfvITWioAKat7srQvpjMAvgzf0t6t7j8yHrryXU9xt7RZqFpw==
+  dependencies:
+    "@smithy/types" "^2.9.1"
+
+"@smithy/shared-ini-file-loader@^2.3.1":
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.3.1.tgz#a2e28b4d85f8a8262a84403fa2b74a086b3a7703"
+  integrity sha512-2E2kh24igmIznHLB6H05Na4OgIEilRu0oQpYXo3LCNRrawHAcfDKq9004zJs+sAMt2X5AbY87CUCJ7IpqpSgdw==
+  dependencies:
+    "@smithy/types" "^2.9.1"
+    tslib "^2.5.0"
+
+"@smithy/signature-v4@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-2.1.1.tgz#6080171e3d694f40d3f553bbc236c5c433efd4d2"
+  integrity sha512-Hb7xub0NHuvvQD3YwDSdanBmYukoEkhqBjqoxo+bSdC0ryV9cTfgmNjuAQhTPYB6yeU7hTR+sPRiFMlxqv6kmg==
+  dependencies:
+    "@smithy/eventstream-codec" "^2.1.1"
+    "@smithy/is-array-buffer" "^2.1.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/util-hex-encoding" "^2.1.1"
+    "@smithy/util-middleware" "^2.1.1"
+    "@smithy/util-uri-escape" "^2.1.1"
+    "@smithy/util-utf8" "^2.1.1"
+    tslib "^2.5.0"
+
+"@smithy/smithy-client@^2.3.1":
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-2.3.1.tgz#0c3a4a0d3935c7ad2240cc23181f276705212b1f"
+  integrity sha512-YsTdU8xVD64r2pLEwmltrNvZV6XIAC50LN6ivDopdt+YiF/jGH6PY9zUOu0CXD/d8GMB8gbhnpPsdrjAXHS9QA==
+  dependencies:
+    "@smithy/middleware-endpoint" "^2.4.1"
+    "@smithy/middleware-stack" "^2.1.1"
+    "@smithy/protocol-http" "^3.1.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/util-stream" "^2.1.1"
+    tslib "^2.5.0"
+
+"@smithy/types@^2.9.1":
+  version "2.9.1"
+  resolved "https://registry.yarnpkg.com/@smithy/types/-/types-2.9.1.tgz#ed04d4144eed3b8bd26d20fc85aae8d6e357ebb9"
+  integrity sha512-vjXlKNXyprDYDuJ7UW5iobdmyDm6g8dDG+BFUncAg/3XJaN45Gy5RWWWUVgrzIK7S4R1KWgIX5LeJcfvSI24bw==
+  dependencies:
+    tslib "^2.5.0"
+
+"@smithy/url-parser@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-2.1.1.tgz#a30de227b6734650d740b6dff74d488b874e85e3"
+  integrity sha512-qC9Bv8f/vvFIEkHsiNrUKYNl8uKQnn4BdhXl7VzQRP774AwIjiSMMwkbT+L7Fk8W8rzYVifzJNYxv1HwvfBo3Q==
+  dependencies:
+    "@smithy/querystring-parser" "^2.1.1"
+    "@smithy/types" "^2.9.1"
+    tslib "^2.5.0"
+
+"@smithy/util-base64@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-2.1.1.tgz#af729085cc9d92ebd54a5d2c5d0aa5a0c31f83bf"
+  integrity sha512-UfHVpY7qfF/MrgndI5PexSKVTxSZIdz9InghTFa49QOvuu9I52zLPLUHXvHpNuMb1iD2vmc6R+zbv/bdMipR/g==
+  dependencies:
+    "@smithy/util-buffer-from" "^2.1.1"
+    tslib "^2.5.0"
+
+"@smithy/util-body-length-browser@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-2.1.1.tgz#1fc77072768013ae646415eedb9833cd252d055d"
+  integrity sha512-ekOGBLvs1VS2d1zM2ER4JEeBWAvIOUKeaFch29UjjJsxmZ/f0L3K3x0dEETgh3Q9bkZNHgT+rkdl/J/VUqSRag==
+  dependencies:
+    tslib "^2.5.0"
+
+"@smithy/util-body-length-node@^2.2.1":
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-2.2.1.tgz#a6f5c9911f1c3e23efb340d5ce7a590b62f2056e"
+  integrity sha512-/ggJG+ta3IDtpNVq4ktmEUtOkH1LW64RHB5B0hcr5ZaWBmo96UX2cIOVbjCqqDickTXqBWZ4ZO0APuaPrD7Abg==
+  dependencies:
+    tslib "^2.5.0"
+
+"@smithy/util-buffer-from@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-2.1.1.tgz#f9346bf8b23c5ba6f6bdb61dd9db779441ba8d08"
+  integrity sha512-clhNjbyfqIv9Md2Mg6FffGVrJxw7bgK7s3Iax36xnfVj6cg0fUG7I4RH0XgXJF8bxi+saY5HR21g2UPKSxVCXg==
+  dependencies:
+    "@smithy/is-array-buffer" "^2.1.1"
+    tslib "^2.5.0"
+
+"@smithy/util-config-provider@^2.2.1":
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-2.2.1.tgz#aea0a80236d6cedaee60473802899cff4a8cc0ba"
+  integrity sha512-50VL/tx9oYYcjJn/qKqNy7sCtpD0+s8XEBamIFo4mFFTclKMNp+rsnymD796uybjiIquB7VCB/DeafduL0y2kw==
+  dependencies:
+    tslib "^2.5.0"
+
+"@smithy/util-defaults-mode-browser@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.1.1.tgz#be9ac82acee6ec4821b610e7187b0e147f0ba8ff"
+  integrity sha512-lqLz/9aWRO6mosnXkArtRuQqqZBhNpgI65YDpww4rVQBuUT7qzKbDLG5AmnQTCiU4rOquaZO/Kt0J7q9Uic7MA==
+  dependencies:
+    "@smithy/property-provider" "^2.1.1"
+    "@smithy/smithy-client" "^2.3.1"
+    "@smithy/types" "^2.9.1"
+    bowser "^2.11.0"
+    tslib "^2.5.0"
+
+"@smithy/util-defaults-mode-node@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.1.1.tgz#0910ee00aac3e8a08aac3e6ae8794e52f3efef02"
+  integrity sha512-tYVrc+w+jSBfBd267KDnvSGOh4NMz+wVH7v4CClDbkdPfnjvImBZsOURncT5jsFwR9KCuDyPoSZq4Pa6+eCUrA==
+  dependencies:
+    "@smithy/config-resolver" "^2.1.1"
+    "@smithy/credential-provider-imds" "^2.2.1"
+    "@smithy/node-config-provider" "^2.2.1"
+    "@smithy/property-provider" "^2.1.1"
+    "@smithy/smithy-client" "^2.3.1"
+    "@smithy/types" "^2.9.1"
+    tslib "^2.5.0"
+
+"@smithy/util-endpoints@^1.1.1":
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-1.1.1.tgz#45426dba6fb42282a0ad955600b2b3ba050d118f"
+  integrity sha512-sI4d9rjoaekSGEtq3xSb2nMjHMx8QXcz2cexnVyRWsy4yQ9z3kbDpX+7fN0jnbdOp0b3KSTZJZ2Yb92JWSanLw==
+  dependencies:
+    "@smithy/node-config-provider" "^2.2.1"
+    "@smithy/types" "^2.9.1"
+    tslib "^2.5.0"
+
+"@smithy/util-hex-encoding@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-2.1.1.tgz#978252b9fb242e0a59bae4ead491210688e0d15f"
+  integrity sha512-3UNdP2pkYUUBGEXzQI9ODTDK+Tcu1BlCyDBaRHwyxhA+8xLP8agEKQq4MGmpjqb4VQAjq9TwlCQX0kP6XDKYLg==
+  dependencies:
+    tslib "^2.5.0"
+
+"@smithy/util-middleware@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-2.1.1.tgz#903ba19bb17704f4b476fb9ade9bf9eb0174bc3d"
+  integrity sha512-mKNrk8oz5zqkNcbcgAAepeJbmfUW6ogrT2Z2gDbIUzVzNAHKJQTYmH9jcy0jbWb+m7ubrvXKb6uMjkSgAqqsFA==
+  dependencies:
+    "@smithy/types" "^2.9.1"
+    tslib "^2.5.0"
+
+"@smithy/util-retry@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-2.1.1.tgz#f2d3566b6e5b841028c7240c852007d4037e49b2"
+  integrity sha512-Mg+xxWPTeSPrthpC5WAamJ6PW4Kbo01Fm7lWM1jmGRvmrRdsd3192Gz2fBXAMURyXpaNxyZf6Hr/nQ4q70oVEA==
+  dependencies:
+    "@smithy/service-error-classification" "^2.1.1"
+    "@smithy/types" "^2.9.1"
+    tslib "^2.5.0"
+
+"@smithy/util-stream@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-2.1.1.tgz#3ae0e88c3a1a45899e29c1655d2e5a3865b6c0a6"
+  integrity sha512-J7SMIpUYvU4DQN55KmBtvaMc7NM3CZ2iWICdcgaovtLzseVhAqFRYqloT3mh0esrFw+3VEK6nQFteFsTqZSECQ==
+  dependencies:
+    "@smithy/fetch-http-handler" "^2.4.1"
+    "@smithy/node-http-handler" "^2.3.1"
+    "@smithy/types" "^2.9.1"
+    "@smithy/util-base64" "^2.1.1"
+    "@smithy/util-buffer-from" "^2.1.1"
+    "@smithy/util-hex-encoding" "^2.1.1"
+    "@smithy/util-utf8" "^2.1.1"
+    tslib "^2.5.0"
+
+"@smithy/util-uri-escape@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-2.1.1.tgz#7eedc93b73ecda68f12fb9cf92e9fa0fbbed4d83"
+  integrity sha512-saVzI1h6iRBUVSqtnlOnc9ssU09ypo7n+shdQ8hBTZno/9rZ3AuRYvoHInV57VF7Qn7B+pFJG7qTzFiHxWlWBw==
+  dependencies:
+    tslib "^2.5.0"
+
+"@smithy/util-utf8@^2.1.1":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-2.1.1.tgz#690018dd28f47f014114497735e51417ea5900a6"
+  integrity sha512-BqTpzYEcUMDwAKr7/mVRUtHDhs6ZoXDi9NypMvMfOr/+u1NW7JgqodPDECiiLboEm6bobcPcECxzjtQh865e9A==
+  dependencies:
+    "@smithy/util-buffer-from" "^2.1.1"
     tslib "^2.5.0"
 
 "@tokenizer/token@^0.3.0":
@@ -1265,9 +1413,9 @@
   integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
 
 "@types/geojson@^7946.0.10":
-  version "7946.0.10"
-  resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.10.tgz#6dfbf5ea17142f7f9a043809f1cd4c448cb68249"
-  integrity sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==
+  version "7946.0.13"
+  resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.13.tgz#e6e77ea9ecf36564980a861e24e62a095988775e"
+  integrity sha512-bmrNrgKMOhM3WsafmbGmC+6dsF2Z308vLFsQ3a/bT8X8Sv5clVYpPars/UPq+sAaJP+5OoLAYgwbkS5QEJdLUQ==
 
 "@types/ldapjs@^2.2.2":
   version "2.2.5"
@@ -1277,14 +1425,16 @@
     "@types/node" "*"
 
 "@types/node@*":
-  version "20.3.1"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-20.3.1.tgz#e8a83f1aa8b649377bb1fb5d7bac5cb90e784dfe"
-  integrity sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==
+  version "20.11.9"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.9.tgz#959d436f20ce2ee3df897c3eaa0617c98fa70efb"
+  integrity sha512-CQXNuMoS/VcoAMISe5pm4JnEd1Br5jildbQEToEMQvutmv+EaQr90ry9raiudgpyDuqFiV9e4rnjSfLNq12M5w==
+  dependencies:
+    undici-types "~5.26.4"
 
 "@types/node@^14.14.14":
-  version "14.18.51"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.51.tgz#cb90935b89c641201c3d07a595c3e22d1cfaa417"
-  integrity sha512-P9bsdGFPpVtofEKlhWMVS2qqx1A/rt9QBfihWlklfHHpUpjtYse5AzFz6j4DWrARLYh6gRnw9+5+DJcrq3KvBA==
+  version "14.18.63"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.63.tgz#1788fa8da838dbb5f9ea994b834278205db6ca2b"
+  integrity sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==
 
 "@types/node@^17.0.45":
   version "17.0.45"
@@ -1292,14 +1442,14 @@
   integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==
 
 "@types/triple-beam@^1.3.2":
-  version "1.3.2"
-  resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.2.tgz#38ecb64f01aa0d02b7c8f4222d7c38af6316fef8"
-  integrity sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==
+  version "1.3.5"
+  resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.5.tgz#74fef9ffbaa198eb8b588be029f38b00299caa2c"
+  integrity sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==
 
 "@types/webidl-conversions@*":
-  version "7.0.0"
-  resolved "https://registry.yarnpkg.com/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz#2b8e60e33906459219aa587e9d1a612ae994cfe7"
-  integrity sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog==
+  version "7.0.3"
+  resolved "https://registry.yarnpkg.com/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz#1306dbfa53768bcbcfc95a1c8cde367975581859"
+  integrity sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==
 
 "@types/whatwg-url@^8.2.1":
   version "8.2.2"
@@ -1310,16 +1460,16 @@
     "@types/webidl-conversions" "*"
 
 "@types/ws@^8.5.3":
-  version "8.5.5"
-  resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.5.tgz#af587964aa06682702ee6dcbc7be41a80e4b28eb"
-  integrity sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==
+  version "8.5.10"
+  resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.10.tgz#4acfb517970853fa6574a3a6886791d04a396787"
+  integrity sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==
   dependencies:
     "@types/node" "*"
 
 "@xmldom/xmldom@^0.7.0", "@xmldom/xmldom@^0.7.6", "@xmldom/xmldom@^0.7.9":
-  version "0.7.11"
-  resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.7.11.tgz#adecc134521274711d071d5b0200907cc83b38ee"
-  integrity sha512-UDi3g6Jss/W5FnSzO9jCtQwEpfymt0M+sPPlmLhDH6h2TJ8j4ESE/LpmNPBij15J5NKkk4/cg/qoVMdWI3vnlQ==
+  version "0.7.13"
+  resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.7.13.tgz#ff34942667a4e19a9f4a0996a76814daac364cf3"
+  integrity sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g==
 
 "@xmpp/base64@^0.13.1":
   version "0.13.1"
@@ -1353,7 +1503,7 @@
     "@xmpp/jid" "^0.9.2"
     "@xmpp/xml" "^0.9.2"
 
-"@xmpp/client@*":
+"@xmpp/client@0.13.1":
   version "0.13.1"
   resolved "https://registry.yarnpkg.com/@xmpp/client/-/client-0.13.1.tgz#6c8db3cd308479ef17b8f78e2eda9a68b4ebd2d6"
   integrity sha512-DA+pOkWliTKN5C0Bod4rqlZ4hj/CiqQDHRhQgpx7Y/69qsUwK8M/9C02qylpyZSL2TFGzOM6ZMhr/jlMCsL9jQ==
@@ -1753,7 +1903,7 @@
   resolved "https://registry.yarnpkg.com/@yetzt/binary-search-tree/-/binary-search-tree-0.2.6.tgz#91b2d861c089da0bfbeceb5deeca57b81c4210ec"
   integrity sha512-e/8wt8AAumI8VK5sv09b3IgWuRoblXJ5z0SQYfrL2nap89oKihvVaP1zy3FzD5NaeRi1X0gdXZA9lB3QAZILBg==
 
-"@yetzt/nedb@^1.8.0":
+"@yetzt/nedb@1.8.0":
   version "1.8.0"
   resolved "https://registry.yarnpkg.com/@yetzt/nedb/-/nedb-1.8.0.tgz#c0e03bfd5f9e76045d4e4baacbebd271cb221258"
   integrity sha512-1hUV/eIPSCRb4Vs9dgLekBCCawWNtf29immIF9kvzxnnnEoWgyFSDZgFvlFCiQ3Bzo8ifXn92HDS3l9fNvmtzA==
@@ -1787,19 +1937,19 @@ accepts@~1.3.5, accepts@~1.3.8:
     mime-types "~2.1.34"
     negotiator "0.6.3"
 
-acebase-core@^1.27.1:
-  version "1.27.2"
-  resolved "https://registry.yarnpkg.com/acebase-core/-/acebase-core-1.27.2.tgz#4e33d27d9e1c3b60293bcdf84691414aeb4060fa"
-  integrity sha512-GlGVL3tjCUhGT5hMF9IO+mBWW7/xPmbKCKqPYvwJo8A8r4XIIdMwnOm+S357DregD516vZlVyXueBA9IYEVz7A==
+acebase-core@^1.27.5:
+  version "1.27.5"
+  resolved "https://registry.yarnpkg.com/acebase-core/-/acebase-core-1.27.5.tgz#58697bdeae60250d009619b07fb60fe8a8123d0e"
+  integrity sha512-mogTRyHg+5/TYp6puXcdhTUmupPLGyWSBpzf/1gXANEk/QffaPvEFGzolJ5fTIVFl3UhVoYcUj2jEDbQHmGGMQ==
   optionalDependencies:
     rxjs ">= 5.x <= 7.x"
 
-acebase@*:
-  version "1.29.0"
-  resolved "https://registry.yarnpkg.com/acebase/-/acebase-1.29.0.tgz#d2908bac7e7fe4e7f3286a90611af669b4b55007"
-  integrity sha512-BUNo73stR0BNxoKX1QJiz8xwz/K/yEHh7DRxNlsc2l/1QyEzFl97lRtf8dT+QQGHBBloiKW2YHjhpuOTikzrRQ==
+acebase@1.29.5:
+  version "1.29.5"
+  resolved "https://registry.yarnpkg.com/acebase/-/acebase-1.29.5.tgz#0b1303931528e11fe9274f9ef348c71f11fcb439"
+  integrity sha512-NLA+0nLm2+Rg10M4IKfCpIYQN1Fp3bb8meil+8ttDOUqydvr2OnmpxA5F9COzb3R+OH652IKEelUBTDQlsoAnw==
   dependencies:
-    acebase-core "^1.27.1"
+    acebase-core "^1.27.5"
     unidecode "^0.1.8"
 
 acme-client@4.2.5:
@@ -1881,12 +2031,10 @@ agent-base@^7.0.2:
     debug "^4.3.4"
 
 agentkeepalive@^4.1.3:
-  version "4.3.0"
-  resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.3.0.tgz#bb999ff07412653c1803b3ced35e50729830a255"
-  integrity sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==
+  version "4.5.0"
+  resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923"
+  integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==
   dependencies:
-    debug "^4.1.0"
-    depd "^2.0.0"
     humanize-ms "^1.2.1"
 
 aggregate-error@^3.0.0:
@@ -2031,7 +2179,23 @@ archiver-utils@^2.1.0:
     normalize-path "^3.0.0"
     readable-stream "^2.0.0"
 
-archiver-zip-encrypted@*:
+archiver-utils@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-3.0.4.tgz#a0d201f1cf8fce7af3b5a05aea0a337329e96ec7"
+  integrity sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==
+  dependencies:
+    glob "^7.2.3"
+    graceful-fs "^4.2.0"
+    lazystream "^1.0.0"
+    lodash.defaults "^4.2.0"
+    lodash.difference "^4.5.0"
+    lodash.flatten "^4.4.0"
+    lodash.isplainobject "^4.0.6"
+    lodash.union "^4.6.0"
+    normalize-path "^3.0.0"
+    readable-stream "^3.6.0"
+
+archiver-zip-encrypted@1.0.11:
   version "1.0.11"
   resolved "https://registry.yarnpkg.com/archiver-zip-encrypted/-/archiver-zip-encrypted-1.0.11.tgz#43a7b9ebba56c6689132b58e556df13e6ddd5878"
   integrity sha512-uXQzXSrZKW7TZ1g4BhfJFt1KjlKqY4SnCgDS6QhQKJoAriPXPKqhFQbvaIirWcR0pi5h3UF5Ktau7FVnS3AsGw==
@@ -2044,16 +2208,16 @@ archiver-zip-encrypted@*:
     crc32-stream "^4.0.2"
     zip-stream "^4.1.0"
 
-archiver@5.3.1, archiver@^5.3.0:
-  version "5.3.1"
-  resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.1.tgz#21e92811d6f09ecfce649fbefefe8c79e57cbbb6"
-  integrity sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==
+archiver@5.3.2, archiver@^5.3.0:
+  version "5.3.2"
+  resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.2.tgz#99991d5957e53bd0303a392979276ac4ddccf3b0"
+  integrity sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==
   dependencies:
     archiver-utils "^2.1.0"
-    async "^3.2.3"
+    async "^3.2.4"
     buffer-crc32 "^0.2.1"
     readable-stream "^3.6.0"
-    readdir-glob "^1.0.0"
+    readdir-glob "^1.1.2"
     tar-stream "^2.2.0"
     zip-stream "^4.1.0"
 
@@ -2172,21 +2336,29 @@ array-unique@^0.3.2:
   resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
   integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==
 
-array.prototype.reduce@^1.0.5:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz#6b20b0daa9d9734dd6bc7ea66b5bbce395471eac"
-  integrity sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q==
+array.prototype.reduce@^1.0.6:
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz#63149931808c5fc1e1354814923d92d45f7d96d5"
+  integrity sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==
   dependencies:
     call-bind "^1.0.2"
-    define-properties "^1.1.4"
-    es-abstract "^1.20.4"
+    define-properties "^1.2.0"
+    es-abstract "^1.22.1"
     es-array-method-boxes-properly "^1.0.0"
     is-string "^1.0.7"
 
-arrify@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa"
-  integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==
+arraybuffer.prototype.slice@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12"
+  integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==
+  dependencies:
+    array-buffer-byte-length "^1.0.0"
+    call-bind "^1.0.2"
+    define-properties "^1.2.0"
+    es-abstract "^1.22.1"
+    get-intrinsic "^1.2.1"
+    is-array-buffer "^3.0.2"
+    is-shared-array-buffer "^1.0.2"
 
 asap@~2.0.3:
   version "2.0.6"
@@ -2254,10 +2426,10 @@ async@^2.0.1:
   dependencies:
     lodash "^4.17.14"
 
-async@^3.2.0, async@^3.2.3, async@~3.2.0:
-  version "3.2.4"
-  resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c"
-  integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==
+async@^3.2.0, async@^3.2.3, async@^3.2.4, async@~3.2.0:
+  version "3.2.5"
+  resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66"
+  integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==
 
 async@~0.9.0:
   version "0.9.2"
@@ -2289,12 +2461,12 @@ aws-sign@~0.3.0:
   resolved "https://registry.yarnpkg.com/aws-sign/-/aws-sign-0.3.0.tgz#3d81ca69b474b1e16518728b51c24ff0bbedc6e9"
   integrity sha512-pEMJAknifcXqXqYVXzGPIu8mJvxtJxIdpVpAs8HNS+paT+9srRUDMQn+3hULS7WbLmttcmvgMvnDcFujqXJyPw==
 
-aws4@^1.8.0:
+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==
 
-axios@0.26.1, axios@^0.26.0, axios@^0.26.1:
+axios@0.26.1, axios@^0.26.1:
   version "0.26.1"
   resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9"
   integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==
@@ -2308,6 +2480,23 @@ axios@^0.21.1:
   dependencies:
     follow-redirects "^1.14.0"
 
+axios@^0.27.2:
+  version "0.27.2"
+  resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972"
+  integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==
+  dependencies:
+    follow-redirects "^1.14.9"
+    form-data "^4.0.0"
+
+axios@^1.6.0:
+  version "1.6.7"
+  resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.7.tgz#7b48c2e27c96f9c68a2f8f31e2ab19f59b06b0a7"
+  integrity sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==
+  dependencies:
+    follow-redirects "^1.15.4"
+    form-data "^4.0.0"
+    proxy-from-env "^1.1.0"
+
 babel-cli@^6.16.0:
   version "6.26.0"
   resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1"
@@ -2821,7 +3010,7 @@ base-64@^1.0.0:
   resolved "https://registry.yarnpkg.com/base-64/-/base-64-1.0.0.tgz#09d0f2084e32a3fd08c2475b973788eee6ae8f4a"
   integrity sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==
 
-base64-js@^1.3.0, base64-js@^1.3.1:
+base64-js@^1.1.2, base64-js@^1.3.0, base64-js@^1.3.1:
   version "1.5.1"
   resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
   integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
@@ -2857,19 +3046,14 @@ bcryptjs@^2.4.0:
   integrity sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==
 
 big-integer@^1.6.48:
-  version "1.6.51"
-  resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686"
-  integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==
-
-bignumber.js@9.0.0:
-  version "9.0.0"
-  resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.0.tgz#805880f84a329b5eac6e7cb6f8274b6d82bdf075"
-  integrity sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==
+  version "1.6.52"
+  resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.52.tgz#60a887f3047614a8e1bffe5d7173490a97dc8c85"
+  integrity sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==
 
 bignumber.js@^9.0.0, bignumber.js@^9.0.1:
-  version "9.1.1"
-  resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.1.tgz#c4df7dc496bd849d4c9464344c1aa74228b4dac6"
-  integrity sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==
+  version "9.1.2"
+  resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c"
+  integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==
 
 binary-extensions@^1.0.0:
   version "1.13.1"
@@ -2915,6 +3099,11 @@ bl@^4.0.2, bl@^4.0.3:
     inherits "^2.0.4"
     readable-stream "^3.4.0"
 
+bluebird@^2.6.2:
+  version "2.11.0"
+  resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1"
+  integrity sha512-UfFSr22dmHPQqPP9XWHRhq+gWnHCYguQGkXQlbyPtW5qTnhFWA8/iXg765tH0cAjy7l/zPJ1aBTO0g5XgA7kvQ==
+
 bluebird@^3.3.5, bluebird@^3.5.0:
   version "3.7.2"
   resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
@@ -2948,7 +3137,7 @@ body-parser@1.20.1:
     type-is "~1.6.18"
     unpipe "1.0.0"
 
-body-parser@^1.19.0:
+body-parser@1.20.2:
   version "1.20.2"
   resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd"
   integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==
@@ -3025,15 +3214,22 @@ braces@^3.0.2, braces@~3.0.2:
   dependencies:
     fill-range "^7.0.1"
 
-browserslist@^4.21.3:
-  version "4.21.9"
-  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.9.tgz#e11bdd3c313d7e2a9e87e8b4b0c7872b13897635"
-  integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==
+brotli@^1.3.3:
+  version "1.3.3"
+  resolved "https://registry.yarnpkg.com/brotli/-/brotli-1.3.3.tgz#7365d8cc00f12cf765d2b2c898716bcf4b604d48"
+  integrity sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==
   dependencies:
-    caniuse-lite "^1.0.30001503"
-    electron-to-chromium "^1.4.431"
-    node-releases "^2.0.12"
-    update-browserslist-db "^1.0.11"
+    base64-js "^1.1.2"
+
+browserslist@^4.22.2:
+  version "4.22.3"
+  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.3.tgz#299d11b7e947a6b843981392721169e27d60c5a6"
+  integrity sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==
+  dependencies:
+    caniuse-lite "^1.0.30001580"
+    electron-to-chromium "^1.4.648"
+    node-releases "^2.0.14"
+    update-browserslist-db "^1.0.13"
 
 bson@^1.1.4:
   version "1.1.6"
@@ -3084,9 +3280,9 @@ buffer@^6.0.3:
     ieee754 "^1.2.1"
 
 bufferutil@^4.0.1, bufferutil@^4.0.3:
-  version "4.0.7"
-  resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.7.tgz#60c0d19ba2c992dd8273d3f73772ffc894c153ad"
-  integrity sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==
+  version "4.0.8"
+  resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.8.tgz#1de6a71092d65d7766c4d8a522b261a6e787e8ea"
+  integrity sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==
   dependencies:
     node-gyp-build "^4.3.0"
 
@@ -3108,13 +3304,6 @@ bulk-write-stream@^2.0.0:
     inherits "^2.0.3"
     readable-stream "^3.1.1"
 
-busboy@^1.6.0:
-  version "1.6.0"
-  resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893"
-  integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==
-  dependencies:
-    streamsearch "^1.1.0"
-
 byte-length@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/byte-length/-/byte-length-1.0.2.tgz#ba5a5909240b0121c079b7f7b15248d6f08223cc"
@@ -3190,13 +3379,14 @@ caching-transform@^3.0.2:
     package-hash "^3.0.0"
     write-file-atomic "^2.4.2"
 
-call-bind@^1.0.0, call-bind@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
-  integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
+call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513"
+  integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==
   dependencies:
-    function-bind "^1.1.1"
-    get-intrinsic "^1.0.2"
+    function-bind "^1.1.2"
+    get-intrinsic "^1.2.1"
+    set-function-length "^1.1.1"
 
 camel-case@^3.0.0:
   version "3.0.0"
@@ -3221,10 +3411,10 @@ camelcase@^5.0.0:
   resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
   integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
 
-caniuse-lite@^1.0.30001503:
-  version "1.0.30001503"
-  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001503.tgz#88b6ff1b2cf735f1f3361dc1a15b59f0561aa398"
-  integrity sha512-Sf9NiF+wZxPfzv8Z3iS0rXM1Do+iOy2Lxvib38glFX+08TCYYYGR5fRJXk4d77C4AYwhUjgYgMsMudbh2TqCKw==
+caniuse-lite@^1.0.30001580:
+  version "1.0.30001581"
+  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz#0dfd4db9e94edbdca67d57348ebc070dece279f4"
+  integrity sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ==
 
 caseless@~0.12.0:
   version "0.12.0"
@@ -3265,7 +3455,7 @@ chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
     strip-ansi "^3.0.0"
     supports-color "^2.0.0"
 
-chalk@^2.0.0:
+chalk@^2.4.2:
   version "2.4.2"
   resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
   integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -3632,14 +3822,14 @@ commondir@^1.0.1:
   integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==
 
 component-emitter@^1.2.1:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
-  integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
+  version "1.3.1"
+  resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.1.tgz#ef1d5796f7d93f135ee6fb684340b26403c97d17"
+  integrity sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==
 
-compress-commons@^4.1.0, compress-commons@^4.1.1:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.1.tgz#df2a09a7ed17447642bad10a85cc9a19e5c42a7d"
-  integrity sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==
+compress-commons@^4.1.1, compress-commons@^4.1.2:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.2.tgz#6542e59cb63e1f46a8b21b0e06f9a32e4c8b06df"
+  integrity sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==
   dependencies:
     buffer-crc32 "^0.2.13"
     crc32-stream "^4.0.2"
@@ -3653,7 +3843,7 @@ compressible@~2.0.16:
   dependencies:
     mime-db ">= 1.43.0 < 2"
 
-compression@^1.7.4:
+compression@1.7.4:
   version "1.7.4"
   resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f"
   integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==
@@ -3680,6 +3870,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"
@@ -3697,11 +3892,16 @@ content-type@~1.0.4, content-type@~1.0.5:
   resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918"
   integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
 
-convert-source-map@^1.1.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
+convert-source-map@^1.5.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0:
   version "1.9.0"
   resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f"
   integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==
 
+convert-source-map@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
+  integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
+
 cookie-jar@~0.3.0:
   version "0.3.0"
   resolved "https://registry.yarnpkg.com/cookie-jar/-/cookie-jar-0.3.0.tgz#bc9a27d4e2b97e186cd57c9e2063cb99fa68cccc"
@@ -3746,9 +3946,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.31.0"
-  resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.31.0.tgz#4471dd33e366c79d8c0977ed2d940821719db344"
-  integrity sha512-NIp2TQSGfR6ba5aalZD+ZQ1fSxGhDo/s1w0nx3RYzf2pnJxt7YynxFlFScP6eV7+GZsKO95NSjGxyJsU3DZgeQ==
+  version "3.35.1"
+  resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.35.1.tgz#9c28f8b7ccee482796f8590cc8d15739eaaf980c"
+  integrity sha512-IgdsbxNyMskrTFxa9lWHyMwAJU5gXOPP+1yO+K59d50VLVAIDAbs7gIv705KzALModfK3ZrSZTPNpC0PQgIZuw==
 
 core-util-is@1.0.2:
   version "1.0.2"
@@ -3771,10 +3971,10 @@ cp-file@^6.2.0:
     pify "^4.0.1"
     safe-buffer "^5.0.1"
 
-cpu-features@~0.0.7:
-  version "0.0.8"
-  resolved "https://registry.yarnpkg.com/cpu-features/-/cpu-features-0.0.8.tgz#a2d464b023b8ad09004c8cdca23b33f192f63546"
-  integrity sha512-BbHBvtYhUhksqTjr6bhNOjGgMnhwhGTQmOoZGD+K7BCaQDCuZl/Ve1ZxUSMRwVC4D/rkCPQ2MAIeYzrWyK7eEg==
+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==
   dependencies:
     buildcheck "~0.0.6"
     nan "^2.17.0"
@@ -3785,9 +3985,9 @@ crc-32@^1.2.0:
   integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==
 
 crc32-stream@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.2.tgz#c922ad22b38395abe9d3870f02fa8134ed709007"
-  integrity sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.3.tgz#85dd677eb78fa7cad1ba17cc506a597d41fc6f33"
+  integrity sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==
   dependencies:
     crc-32 "^1.2.0"
     readable-stream "^3.4.0"
@@ -3862,11 +4062,6 @@ dashdash@^1.12.0:
   dependencies:
     assert-plus "^1.0.0"
 
-data-uri-to-buffer@^4.0.0:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e"
-  integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==
-
 data-urls@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-4.0.0.tgz#333a454eca6f9a5b7b0f1013ff89074c3f522dd4"
@@ -3881,10 +4076,10 @@ dateformat@~4.6.2:
   resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5"
   integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==
 
-dayjs@^1.8.29:
-  version "1.11.8"
-  resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.8.tgz#4282f139c8c19dd6d0c7bd571e30c2d0ba7698ea"
-  integrity sha512-LcgxzFoWMEPO7ggRv1Y2N31hUf2R0Vj7fuy/m+Bg1K8rr+KAs1AEy4y9jd5DXe8pbHgX+srkHNS7TH6Q6ZhYeQ==
+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==
 
 ddata@~0.1.25:
   version "0.1.28"
@@ -3907,13 +4102,6 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9:
   dependencies:
     ms "2.0.0"
 
-debug@3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
-  integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
-  dependencies:
-    ms "2.0.0"
-
 debug@3.2.7:
   version "3.2.7"
   resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
@@ -3921,7 +4109,7 @@ debug@3.2.7:
   dependencies:
     ms "^2.1.1"
 
-debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4:
+debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4:
   version "4.3.4"
   resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
   integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
@@ -3965,11 +4153,21 @@ defer-promise@^1.0.0:
   resolved "https://registry.yarnpkg.com/defer-promise/-/defer-promise-1.0.2.tgz#b79521c59cadadaed2d305385d30f8b05cbf9196"
   integrity sha512-5a0iWJvnon50nLLqHPW83pX45BLb4MmlSa1sIg05NBhZoK5EZGz1s8qoZ3888dVGGOT0Ni01NdETuAgdJUZknA==
 
-define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5"
-  integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==
+define-data-property@^1.0.1, define-data-property@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3"
+  integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==
+  dependencies:
+    get-intrinsic "^1.2.1"
+    gopd "^1.0.1"
+    has-property-descriptors "^1.0.0"
+
+define-properties@^1.1.3, 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==
   dependencies:
+    define-data-property "^1.0.1"
     has-property-descriptors "^1.0.0"
     object-keys "^1.1.1"
 
@@ -4020,7 +4218,7 @@ denque@^2.1.0:
   resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1"
   integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==
 
-depd@2.0.0, depd@^2.0.0, depd@~2.0.0:
+depd@2.0.0, depd@~2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
   integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
@@ -4048,9 +4246,9 @@ detect-indent@^4.0.0:
     repeating "^2.0.0"
 
 detect-libc@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd"
-  integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.2.tgz#8ccf2ba9315350e1241b88d0ac3b0e1fbd99605d"
+  integrity sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==
 
 dir_cache@^1.0.1:
   version "1.0.3"
@@ -4061,10 +4259,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.12, discord-api-types@^0.37.41:
-  version "0.37.45"
-  resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.37.45.tgz#83f91accfdf339658c60191108b9648d24a4eaf8"
-  integrity sha512-r9m/g+YQfo7XWMrl645jvMlYoWF8lvns/ch4NCxsz/FbingrECu97LFSD2zKOvgHaSc90BHP8wgshaMcA2/c6Q==
+  version "0.37.67"
+  resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.37.67.tgz#c4280aa122104ea74e103884ba27e8218210bef8"
+  integrity sha512-4HEzUEmwGPXWJdVhGZ/K+9eWs8kurdn5r/I8qD3/0hb14I0MZvx8K/JOyLhKLgcR4/8/jcr6Xej820BNgNXN7A==
 
 discord.js@14.6.0:
   version "14.6.0"
@@ -4168,10 +4371,10 @@ ee-first@1.1.1:
   resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
   integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
 
-electron-to-chromium@^1.4.431:
-  version "1.4.432"
-  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.432.tgz#154a69d5ead974347f534aea4d28b03c7149fd7b"
-  integrity sha512-yz3U/khQgAFT2HURJA3/F4fKIyO2r5eK09BQzBZFd6BvBSSaRuzKc2ZNBHtJcO75/EKiRYbVYJZ2RB0P4BuD2g==
+electron-to-chromium@^1.4.648:
+  version "1.4.648"
+  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.648.tgz#c7b46c9010752c37bb4322739d6d2dd82354fbe4"
+  integrity sha512-EmFMarXeqJp9cUKu/QEciEApn0S/xRcpZWuAm32U7NgoZCimjsilKXHRO9saeEW55eHZagIDg6XTUOv32w9pjg==
 
 emoji-regex@^7.0.1:
   version "7.0.3"
@@ -4234,25 +4437,26 @@ error-ex@^1.2.0, error-ex@^1.3.1:
   dependencies:
     is-arrayish "^0.2.1"
 
-es-abstract@^1.19.0, es-abstract@^1.20.4, es-abstract@^1.21.2:
-  version "1.21.2"
-  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff"
-  integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==
+es-abstract@^1.22.1:
+  version "1.22.3"
+  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32"
+  integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==
   dependencies:
     array-buffer-byte-length "^1.0.0"
+    arraybuffer.prototype.slice "^1.0.2"
     available-typed-arrays "^1.0.5"
-    call-bind "^1.0.2"
+    call-bind "^1.0.5"
     es-set-tostringtag "^2.0.1"
     es-to-primitive "^1.2.1"
-    function.prototype.name "^1.1.5"
-    get-intrinsic "^1.2.0"
+    function.prototype.name "^1.1.6"
+    get-intrinsic "^1.2.2"
     get-symbol-description "^1.0.0"
     globalthis "^1.0.3"
     gopd "^1.0.1"
-    has "^1.0.3"
     has-property-descriptors "^1.0.0"
     has-proto "^1.0.1"
     has-symbols "^1.0.3"
+    hasown "^2.0.0"
     internal-slot "^1.0.5"
     is-array-buffer "^3.0.2"
     is-callable "^1.2.7"
@@ -4260,19 +4464,23 @@ es-abstract@^1.19.0, es-abstract@^1.20.4, es-abstract@^1.21.2:
     is-regex "^1.1.4"
     is-shared-array-buffer "^1.0.2"
     is-string "^1.0.7"
-    is-typed-array "^1.1.10"
+    is-typed-array "^1.1.12"
     is-weakref "^1.0.2"
-    object-inspect "^1.12.3"
+    object-inspect "^1.13.1"
     object-keys "^1.1.1"
     object.assign "^4.1.4"
-    regexp.prototype.flags "^1.4.3"
+    regexp.prototype.flags "^1.5.1"
+    safe-array-concat "^1.0.1"
     safe-regex-test "^1.0.0"
-    string.prototype.trim "^1.2.7"
-    string.prototype.trimend "^1.0.6"
-    string.prototype.trimstart "^1.0.6"
+    string.prototype.trim "^1.2.8"
+    string.prototype.trimend "^1.0.7"
+    string.prototype.trimstart "^1.0.7"
+    typed-array-buffer "^1.0.0"
+    typed-array-byte-length "^1.0.0"
+    typed-array-byte-offset "^1.0.0"
     typed-array-length "^1.0.4"
     unbox-primitive "^1.0.2"
-    which-typed-array "^1.1.9"
+    which-typed-array "^1.1.13"
 
 es-array-method-boxes-properly@^1.0.0:
   version "1.0.0"
@@ -4280,13 +4488,13 @@ es-array-method-boxes-properly@^1.0.0:
   integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==
 
 es-set-tostringtag@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8"
-  integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9"
+  integrity sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==
   dependencies:
-    get-intrinsic "^1.1.3"
-    has "^1.0.3"
+    get-intrinsic "^1.2.2"
     has-tostringtag "^1.0.0"
+    hasown "^2.0.0"
 
 es-to-primitive@^1.2.1:
   version "1.2.1"
@@ -4351,7 +4559,7 @@ espree@~3.1.7:
     acorn "^3.3.0"
     acorn-jsx "^3.0.0"
 
-esprima@*, esprima@^4.0.0:
+esprima@4.0.1, esprima@^4.0.0:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
   integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
@@ -4420,7 +4628,7 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2:
   dependencies:
     homedir-polyfill "^1.0.1"
 
-express-handlebars@^5.3.5:
+express-handlebars@5.3.5:
   version "5.3.5"
   resolved "https://registry.yarnpkg.com/express-handlebars/-/express-handlebars-5.3.5.tgz#a04a1e670aa97d5b3a8080de8336f79228593540"
   integrity sha512-r9pzDc94ZNJ7FVvtsxLfPybmN0eFAUnR61oimNPRpD0D7nkLcezrkpZzoXS5TI75wYHRbflPLTU39B62pwB4DA==
@@ -4436,7 +4644,7 @@ express-ws@4.0.0:
   dependencies:
     ws "^5.2.0"
 
-express@^4.17.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==
@@ -4541,24 +4749,19 @@ fast-json-stable-stringify@^2.0.0:
   resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
   integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
 
-fast-text-encoding@^1.0.0:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz#0aa25f7f638222e3396d72bf936afcf1d42d6867"
-  integrity sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==
-
-fast-xml-parser@4.2.4:
-  version "4.2.4"
-  resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.2.4.tgz#6e846ede1e56ad9e5ef07d8720809edf0ed07e9b"
-  integrity sha512-fbfMDvgBNIdDJLdLOwacjFAPYt67tr31H9ZhWSm45CDAxvd0I6WTlSOUo7K2P/K5sA5JgMKG64PI3DMcaFdWpQ==
+fast-xml-parser@4.2.5:
+  version "4.2.5"
+  resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz#a6747a09296a6cb34f2ae634019bf1738f3b421f"
+  integrity sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==
   dependencies:
     strnum "^1.0.5"
 
-fast-xml-parser@^3.19.0:
-  version "3.21.1"
-  resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-3.21.1.tgz#152a1d51d445380f7046b304672dd55d15c9e736"
-  integrity sha512-FTFVjYoBOZTJekiUsawGsSYV9QL0A+zDYCRj7y34IO6Jg+2IMYEtQa+bbictpdpV8dHxXywqU7C0gRDEOFtBFg==
+fast-xml-parser@^4.2.4:
+  version "4.3.3"
+  resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.3.3.tgz#aeaf5778392329f17168c40c51bcbfec8ff965be"
+  integrity sha512-coV/D1MhrShMvU6D0I+VAK3umz6hUaxxhL0yp/9RjfiYUfAv14rDhGQL+PLForhMdr0wq3PiV07WtkkNjJjNHg==
   dependencies:
-    strnum "^1.0.4"
+    strnum "^1.0.5"
 
 fastfall@^1.5.1:
   version "1.5.1"
@@ -4602,14 +4805,6 @@ fecha@^4.2.0:
   resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd"
   integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==
 
-fetch-blob@^3.1.2, fetch-blob@^3.1.4:
-  version "3.2.0"
-  resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9"
-  integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==
-  dependencies:
-    node-domexception "^1.0.0"
-    web-streams-polyfill "^3.0.3"
-
 figures@^1.3.5:
   version "1.7.0"
   resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
@@ -4635,9 +4830,9 @@ file-set@~0.2.1:
     glob "^4"
 
 file-type@^18.3.0:
-  version "18.5.0"
-  resolved "https://registry.yarnpkg.com/file-type/-/file-type-18.5.0.tgz#604a001ba0d32577d4c3fa420ee104d656b914d2"
-  integrity sha512-yvpl5U868+V6PqXHMmsESpg6unQ5GfnPssl4dxdJudBrr9qy7Fddt7EVX1VLlddFfe8Gj9N7goCZH22FXuSQXQ==
+  version "18.7.0"
+  resolved "https://registry.yarnpkg.com/file-type/-/file-type-18.7.0.tgz#cddb16f184d6b94106cfc4bb56978726b25cb2a2"
+  integrity sha512-ihHtXRzXEziMrQ56VSgU7wkxh55iNchFkosu7Y9/S+tXHdKyrGjVK0ujbqNnsxzea+78MaLhN6PGmfYSAv1ACw==
   dependencies:
     readable-web-to-node-stream "^3.0.2"
     strtok3 "^7.0.0"
@@ -4774,10 +4969,10 @@ fn.name@1.x.x:
   resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc"
   integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==
 
-follow-redirects@^1.14.0, follow-redirects@^1.14.8:
-  version "1.15.2"
-  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13"
-  integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
+follow-redirects@^1.14.0, follow-redirects@^1.14.8, follow-redirects@^1.14.9, follow-redirects@^1.15.4:
+  version "1.15.5"
+  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020"
+  integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==
 
 for-each@^0.3.3:
   version "0.3.3"
@@ -4850,13 +5045,6 @@ form-data@~2.3.2:
     combined-stream "^1.0.6"
     mime-types "^2.1.12"
 
-formdata-polyfill@^4.0.10:
-  version "4.0.10"
-  resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423"
-  integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==
-  dependencies:
-    fetch-blob "^3.1.2"
-
 forwarded@0.2.0:
   version "0.2.0"
   resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
@@ -4920,26 +5108,26 @@ fsevents@^1.0.0:
     nan "^2.12.1"
 
 fsevents@~2.3.2:
-  version "2.3.2"
-  resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
-  integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
+  version "2.3.3"
+  resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
+  integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
 
-function-bind@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
-  integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
+function-bind@^1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
+  integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
 
-function.prototype.name@^1.1.5:
-  version "1.1.5"
-  resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621"
-  integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==
+function.prototype.name@^1.1.6:
+  version "1.1.6"
+  resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd"
+  integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==
   dependencies:
     call-bind "^1.0.2"
-    define-properties "^1.1.3"
-    es-abstract "^1.19.0"
-    functions-have-names "^1.2.2"
+    define-properties "^1.2.0"
+    es-abstract "^1.22.1"
+    functions-have-names "^1.2.3"
 
-functions-have-names@^1.2.2, functions-have-names@^1.2.3:
+functions-have-names@^1.2.3:
   version "1.2.3"
   resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834"
   integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
@@ -4973,24 +5161,31 @@ gauge@^4.0.3:
     strip-ansi "^6.0.1"
     wide-align "^1.1.5"
 
-gaxios@^5.0.0, gaxios@^5.0.1:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-5.1.0.tgz#133b77b45532be71eec72012b7e97c2320b6140a"
-  integrity sha512-aezGIjb+/VfsJtIcHGcBSerNEDdfdHeMros+RbYbGpmonKWQCOVOes0LVZhn1lDtIgq55qq0HaxymIoae3Fl/A==
+gaxios@^6.0.0, gaxios@^6.0.3, gaxios@^6.1.1:
+  version "6.1.1"
+  resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-6.1.1.tgz#549629f86a13e756b900f9ff7c94624670102938"
+  integrity sha512-bw8smrX+XlAoo9o1JAksBwX+hi/RG15J+NTSxmNPIclKC3ZVK6C2afwY8OSdRvOK0+ZLecUJYtj2MmjOt3Dm0w==
   dependencies:
     extend "^3.0.2"
-    https-proxy-agent "^5.0.0"
+    https-proxy-agent "^7.0.1"
     is-stream "^2.0.0"
-    node-fetch "^2.6.7"
+    node-fetch "^2.6.9"
 
-gcp-metadata@^5.2.0:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-5.2.0.tgz#b4772e9c5976241f5d3e69c4f446c906d25506ec"
-  integrity sha512-aFhhvvNycky2QyhG+dcfEdHBF0FRbYcf39s6WNHUDysKSrbJ5vuFbjydxBcmewtXeV248GP8dWT3ByPNxsyHCw==
+gcp-metadata@^6.1.0:
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-6.1.0.tgz#9b0dd2b2445258e7597f2024332d20611cbd6b8c"
+  integrity sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==
   dependencies:
-    gaxios "^5.0.0"
+    gaxios "^6.0.0"
     json-bigint "^1.0.0"
 
+generate-function@^2.3.1:
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f"
+  integrity sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==
+  dependencies:
+    is-property "^1.0.2"
+
 gensync@^1.0.0-beta.2:
   version "1.0.0-beta.2"
   resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
@@ -5006,15 +5201,15 @@ get-caller-file@^2.0.1:
   resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
   integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
 
-get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0:
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82"
-  integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==
+get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2:
+  version "1.2.2"
+  resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b"
+  integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==
   dependencies:
-    function-bind "^1.1.1"
-    has "^1.0.3"
+    function-bind "^1.1.2"
     has-proto "^1.0.1"
     has-symbols "^1.0.3"
+    hasown "^2.0.0"
 
 get-symbol-description@^1.0.0:
   version "1.0.0"
@@ -5073,7 +5268,7 @@ glob@^4:
     minimatch "^2.0.1"
     once "^1.3.0"
 
-glob@^7.1.0, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.2.0:
+glob@^7.1.0, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.2.0, glob@^7.2.3:
   version "7.2.3"
   resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
   integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
@@ -5134,52 +5329,42 @@ globalthis@^1.0.3:
   dependencies:
     define-properties "^1.1.3"
 
-google-auth-library@^8.0.2:
-  version "8.8.0"
-  resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-8.8.0.tgz#2e17494431cef56b571420d483a4debff6c481cd"
-  integrity sha512-0iJn7IDqObDG5Tu9Tn2WemmJ31ksEa96IyK0J0OZCpTh6CrC6FrattwKX87h3qKVuprCJpdOGKc1Xi8V0kMh8Q==
+google-auth-library@^9.0.0:
+  version "9.5.0"
+  resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-9.5.0.tgz#fd97b78bc1512025b9c9ad3998c60e2d75b6137e"
+  integrity sha512-OUbP509lWVlZxuMY+Cgomw49VzZFP9myIcVeYEpeBlbXJbPC4R+K4BmO9hd3ciYM5QIwm5W1PODcKjqxtkye9Q==
   dependencies:
-    arrify "^2.0.0"
     base64-js "^1.3.0"
     ecdsa-sig-formatter "^1.0.11"
-    fast-text-encoding "^1.0.0"
-    gaxios "^5.0.0"
-    gcp-metadata "^5.2.0"
-    gtoken "^6.1.0"
+    gaxios "^6.1.1"
+    gcp-metadata "^6.1.0"
+    gtoken "^7.0.0"
     jws "^4.0.0"
-    lru-cache "^6.0.0"
-
-google-p12-pem@^4.0.0:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-4.0.1.tgz#82841798253c65b7dc2a4e5fe9df141db670172a"
-  integrity sha512-WPkN4yGtz05WZ5EhtlxNDWPhC4JIic6G8ePitwUWy4l+XPVYec+a0j0Ts47PDtW59y3RwAhUd9/h9ZZ63px6RQ==
-  dependencies:
-    node-forge "^1.3.1"
 
 google-protobuf@3.19.4:
   version "3.19.4"
   resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.19.4.tgz#8d32c3e34be9250956f28c0fb90955d13f311888"
   integrity sha512-OIPNCxsG2lkIvf+P5FNfJ/Km95CsXOBecS9ZcAU6m2Rq3svc0Apl9nB3GMDNKfQ9asNv4KjyAqGwPQFrVle3Yg==
 
-googleapis-common@^6.0.0:
-  version "6.0.4"
-  resolved "https://registry.yarnpkg.com/googleapis-common/-/googleapis-common-6.0.4.tgz#bd968bef2a478bcd3db51b27655502a11eaf8bf4"
-  integrity sha512-m4ErxGE8unR1z0VajT6AYk3s6a9gIMM6EkDZfkPnES8joeOlEtFEJeF8IyZkb0tjPXkktUfYrE4b3Li1DNyOwA==
+googleapis-common@^7.0.0:
+  version "7.0.1"
+  resolved "https://registry.yarnpkg.com/googleapis-common/-/googleapis-common-7.0.1.tgz#c85d0ee605ff0be9f604b963c69dfd27e46f6dec"
+  integrity sha512-mgt5zsd7zj5t5QXvDanjWguMdHAcJmmDrF9RkInCecNsyV7S7YtGqm5v2IWONNID88osb7zmx5FtrAP12JfD0w==
   dependencies:
     extend "^3.0.2"
-    gaxios "^5.0.1"
-    google-auth-library "^8.0.2"
+    gaxios "^6.0.3"
+    google-auth-library "^9.0.0"
     qs "^6.7.0"
     url-template "^2.0.8"
     uuid "^9.0.0"
 
-googleapis@*:
-  version "118.0.0"
-  resolved "https://registry.yarnpkg.com/googleapis/-/googleapis-118.0.0.tgz#a8b9f84d283544b85927abeb989252cb2f3ec490"
-  integrity sha512-Ny6zJOGn5P/YDT6GQbJU6K0lSzEu4Yuxnsn45ZgBIeSQ1RM0FolEjUToLXquZd89DU9wUfqA5XYHPEctk1TFWg==
+googleapis@128.0.0:
+  version "128.0.0"
+  resolved "https://registry.yarnpkg.com/googleapis/-/googleapis-128.0.0.tgz#0005272f7f8730435d60ae0698d98910e16d0937"
+  integrity sha512-+sLtVYNazcxaSD84N6rihVX4QiGoqRdnlz2SwmQQkadF31XonDfy4ufk3maMg27+FiySrH0rd7V8p+YJG6cknA==
   dependencies:
-    google-auth-library "^8.0.2"
-    googleapis-common "^6.0.0"
+    google-auth-library "^9.0.0"
+    googleapis-common "^7.0.0"
 
 gopd@^1.0.1:
   version "1.0.1"
@@ -5266,13 +5451,12 @@ grunt@^1.0.1:
     minimatch "~3.0.4"
     nopt "~3.0.6"
 
-gtoken@^6.1.0:
-  version "6.1.2"
-  resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-6.1.2.tgz#aeb7bdb019ff4c3ba3ac100bbe7b6e74dce0e8bc"
-  integrity sha512-4ccGpzz7YAr7lxrT2neugmXQ3hP9ho2gcaityLVkiUecAiwiy60Ii8gRbZeOsXV19fYaRjgBSshs8kXw+NKCPQ==
+gtoken@^7.0.0:
+  version "7.0.1"
+  resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-7.0.1.tgz#b64bd01d88268ea3a3572c9076a85d1c48f1a455"
+  integrity sha512-KcFVtoP1CVFtQu0aSk3AyAt2og66PFhZAlkUOuWKwzMLoulHXG5W5wE5xAnHb+yl3/wEFoqGW7/cDGMU8igDZQ==
   dependencies:
-    gaxios "^5.0.1"
-    google-p12-pem "^4.0.0"
+    gaxios "^6.0.0"
     jws "^4.0.0"
 
 handlebars-array@^0.2.0:
@@ -5318,12 +5502,12 @@ handlebars@^3.0.0, handlebars@^3.0.3:
     uglify-js "^2.6"
 
 handlebars@^4.7.7:
-  version "4.7.7"
-  resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1"
-  integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==
+  version "4.7.8"
+  resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9"
+  integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==
   dependencies:
     minimist "^1.2.5"
-    neo-async "^2.6.0"
+    neo-async "^2.6.2"
     source-map "^0.6.1"
     wordwrap "^1.0.0"
   optionalDependencies:
@@ -5334,7 +5518,7 @@ har-schema@^2.0.0:
   resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
   integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==
 
-har-validator@~5.1.0, har-validator@~5.1.3:
+har-validator@~5.1.3:
   version "5.1.5"
   resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd"
   integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==
@@ -5364,12 +5548,12 @@ has-flag@^4.0.0:
   resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
   integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
 
-has-property-descriptors@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861"
-  integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==
+has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340"
+  integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==
   dependencies:
-    get-intrinsic "^1.1.1"
+    get-intrinsic "^1.2.2"
 
 has-proto@^1.0.1:
   version "1.0.1"
@@ -5424,13 +5608,6 @@ has-values@^1.0.0:
     is-number "^3.0.0"
     kind-of "^4.0.0"
 
-has@^1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
-  integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
-  dependencies:
-    function-bind "^1.1.1"
-
 hash-base@^3.0.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33"
@@ -5447,6 +5624,13 @@ hasha@^3.0.0:
   dependencies:
     is-stream "^1.0.1"
 
+hasown@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c"
+  integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==
+  dependencies:
+    function-bind "^1.1.2"
+
 hawk@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/hawk/-/hawk-1.0.0.tgz#b90bb169807285411da7ffcb8dd2598502d3b52d"
@@ -5462,7 +5646,7 @@ he@^1.2.0:
   resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
   integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
 
-heapdump@*:
+heapdump@0.3.15:
   version "0.3.15"
   resolved "https://registry.yarnpkg.com/heapdump/-/heapdump-0.3.15.tgz#631a8a2585588ea64778d8ec80a64c6c025f6a08"
   integrity sha512-n8aSFscI9r3gfhOcAECAtXFaQ1uy4QSke6bnaL+iymYZ/dWs9cqDqHM+rALfsHUwukUbxsdlECZ0pKmJdQ/4OA==
@@ -5504,10 +5688,10 @@ hosted-git-info@^2.1.4:
   resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
   integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
 
-hot-patcher@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/hot-patcher/-/hot-patcher-2.0.0.tgz#10a21b5bb4f5757316c41fc98794c11192a0a41e"
-  integrity sha512-rwJ0ZqSFgm+5oD0KiGBVinyPWRJESRSsHlEWDzZjyOe/OfhD9tynHqUyUIGX2fWuV+BihW4nXxeoZRJVHid64w==
+hot-patcher@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/hot-patcher/-/hot-patcher-1.0.0.tgz#7124d2dc4ca71bcb58b1551603cd13e4fc3fcecd"
+  integrity sha512-3H8VH0PreeNsKMZw16nTHbUp4YoHCnPlawpsPXGJUR4qENDynl79b6Xk9CIFvLcH1qungBsCuzKcWyzoPPalTw==
 
 html-encoding-sniffer@^3.0.0:
   version "3.0.0"
@@ -5521,7 +5705,7 @@ html-escaper@^2.0.0:
   resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
   integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
 
-html-minifier@*:
+html-minifier@4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-4.0.0.tgz#cca9aad8bce1175e02e17a8c33e46d8988889f56"
   integrity sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig==
@@ -5607,6 +5791,15 @@ http-signature@~1.2.0:
     jsprim "^1.2.2"
     sshpk "^1.7.0"
 
+http-signature@~1.3.1:
+  version "1.3.6"
+  resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.3.6.tgz#cb6fbfdf86d1c974f343be94e87f7fc128662cf9"
+  integrity sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==
+  dependencies:
+    assert-plus "^1.0.0"
+    jsprim "^2.0.2"
+    sshpk "^1.14.1"
+
 http_ece@1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/http_ece/-/http_ece-1.1.0.tgz#74780c6eb32d8ddfe9e36a83abcd81fe0cd4fb75"
@@ -5615,14 +5808,14 @@ http_ece@1.1.0:
     urlsafe-base64 "~1.0.0"
 
 httpreq@*:
-  version "0.5.2"
-  resolved "https://registry.yarnpkg.com/httpreq/-/httpreq-0.5.2.tgz#be6777292fa1038d7771d7c01d9a5e1219de951c"
-  integrity sha512-2Jm+x9WkExDOeFRrdBCBSpLPT5SokTcRHkunV3pjKmX/cx6av8zQ0WtHUMDrYb6O4hBFzNU6sxJEypvRUVYKnw==
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/httpreq/-/httpreq-1.1.1.tgz#b8818316cdfd6b1bfb0f68b822fa1306cd24be68"
+  integrity sha512-uhSZLPPD2VXXOSN8Cni3kIsoFHaU2pT/nySEU/fHr/ePbqHYr0jeiQRmUKLEirC09SFPsdMoA7LU7UXMd/w0Kw==
 
-https-proxy-agent@*:
-  version "7.0.0"
-  resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.0.tgz#75cb70d04811685667183b31ab158d006750418a"
-  integrity sha512-0euwPCRyAPSgGdzD1IVN9nJYHtBhJwb6XPfbpQcYbPCwrBidX6GzxmchnaF4sfF/jPb74Ojx5g4yTg3sixlyPw==
+https-proxy-agent@7.0.2, https-proxy-agent@^7.0.0, https-proxy-agent@^7.0.1:
+  version "7.0.2"
+  resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz#e2645b846b90e96c6e6f347fb5b2e41f1590b09b"
+  integrity sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==
   dependencies:
     agent-base "^7.0.2"
     debug "4"
@@ -5635,11 +5828,6 @@ https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1:
     agent-base "6"
     debug "4"
 
-https@*:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/https/-/https-1.0.0.tgz#3c37c7ae1a8eeb966904a2ad1e975a194b7ed3a4"
-  integrity sha512-4EC57ddXrkaF0x83Oj8sM6SLQHAWXw90Skqu2M4AEWENZ3F02dFJE/GARA8igO79tcgYqGrD7ae4f5L3um2lgg==
-
 humanize-ms@^1.2.1:
   version "1.2.1"
   resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed"
@@ -5666,7 +5854,7 @@ ieee754@^1.1.13, ieee754@^1.2.1:
   resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
   integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
 
-image-size@*:
+image-size@1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.0.2.tgz#d778b6d0ab75b2737c1556dd631652eb963bc486"
   integrity sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==
@@ -5711,7 +5899,7 @@ ini@^1.3.4:
   resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
   integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
 
-input@*:
+input@1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/input/-/input-1.0.1.tgz#26bfb5315959c403e9317175cf8f9894e97e5742"
   integrity sha512-5DKQKQ7Nm/CaPGYKF74uUvk5ftC3S04fLYWcDrNG2rOVhhRgB4E2J8JNb7AAh+RlQ/954ukas4bEbrRQ3/kPGA==
@@ -5741,12 +5929,12 @@ inquirer@^0.12.0:
     through "^2.3.6"
 
 internal-slot@^1.0.5:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986"
-  integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930"
+  integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==
   dependencies:
-    get-intrinsic "^1.2.0"
-    has "^1.0.3"
+    get-intrinsic "^1.2.2"
+    hasown "^2.0.0"
     side-channel "^1.0.4"
 
 interpret@~1.1.0:
@@ -5784,7 +5972,7 @@ ipaddr.js@1.9.1:
   resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
   integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
 
-ipcheck@^0.1.0:
+ipcheck@0.1.0:
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/ipcheck/-/ipcheck-0.1.0.tgz#a6f942228910010f1688117b7a774b39c5222f81"
   integrity sha512-NwhrmROU0iXKa+U1quGuQ+ag+K/1Bb5V/yh5Q4SylSu/LGymPZcWB7p4u7JgJH0qOR6cTLDO5VZlRbhoeekNzQ==
@@ -5797,19 +5985,12 @@ is-absolute@^1.0.0:
     is-relative "^1.0.0"
     is-windows "^1.0.1"
 
-is-accessor-descriptor@^0.1.6:
-  version "0.1.6"
-  resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
-  integrity sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==
-  dependencies:
-    kind-of "^3.0.2"
-
-is-accessor-descriptor@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
-  integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==
+is-accessor-descriptor@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz#3223b10628354644b86260db29b3e693f5ceedd4"
+  integrity sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==
   dependencies:
-    kind-of "^6.0.0"
+    hasown "^2.0.0"
 
 is-array-buffer@^3.0.1, is-array-buffer@^3.0.2:
   version "3.0.2"
@@ -5869,26 +6050,19 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7:
   resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
   integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
 
-is-core-module@^2.11.0:
-  version "2.12.1"
-  resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd"
-  integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==
-  dependencies:
-    has "^1.0.3"
-
-is-data-descriptor@^0.1.4:
-  version "0.1.4"
-  resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
-  integrity sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==
+is-core-module@^2.13.0:
+  version "2.13.1"
+  resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384"
+  integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==
   dependencies:
-    kind-of "^3.0.2"
+    hasown "^2.0.0"
 
-is-data-descriptor@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
-  integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==
+is-data-descriptor@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz#2109164426166d32ea38c405c1e0945d9e6a4eeb"
+  integrity sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==
   dependencies:
-    kind-of "^6.0.0"
+    hasown "^2.0.0"
 
 is-date-object@^1.0.1:
   version "1.0.5"
@@ -5898,22 +6072,20 @@ is-date-object@^1.0.1:
     has-tostringtag "^1.0.0"
 
 is-descriptor@^0.1.0:
-  version "0.1.6"
-  resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
-  integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
+  version "0.1.7"
+  resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.7.tgz#2727eb61fd789dcd5bdf0ed4569f551d2fe3be33"
+  integrity sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==
   dependencies:
-    is-accessor-descriptor "^0.1.6"
-    is-data-descriptor "^0.1.4"
-    kind-of "^5.0.0"
+    is-accessor-descriptor "^1.0.1"
+    is-data-descriptor "^1.0.1"
 
 is-descriptor@^1.0.0, is-descriptor@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
-  integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.3.tgz#92d27cb3cd311c4977a4db47df457234a13cb306"
+  integrity sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==
   dependencies:
-    is-accessor-descriptor "^1.0.0"
-    is-data-descriptor "^1.0.0"
-    kind-of "^6.0.2"
+    is-accessor-descriptor "^1.0.1"
+    is-data-descriptor "^1.0.1"
 
 is-dotfile@^1.0.0:
   version "1.0.3"
@@ -6048,6 +6220,11 @@ is-primitive@^2.0.0:
   resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
   integrity sha512-N3w1tFaRfk3UrPfqeRyD+GYDASU3W5VinKhlORy8EWVf/sIdDL9GAcew85XmktCfH+ngG7SRXEVDoO18WMdB/Q==
 
+is-property@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
+  integrity sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==
+
 is-regex@^1.1.4:
   version "1.1.4"
   resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"
@@ -6094,16 +6271,12 @@ is-symbol@^1.0.2, is-symbol@^1.0.3:
   dependencies:
     has-symbols "^1.0.2"
 
-is-typed-array@^1.1.10, is-typed-array@^1.1.9:
-  version "1.1.10"
-  resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f"
-  integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==
+is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9:
+  version "1.1.12"
+  resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a"
+  integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==
   dependencies:
-    available-typed-arrays "^1.0.5"
-    call-bind "^1.0.2"
-    for-each "^0.3.3"
-    gopd "^1.0.1"
-    has-tostringtag "^1.0.0"
+    which-typed-array "^1.1.11"
 
 is-typedarray@^1.0.0, is-typedarray@~1.0.0:
   version "1.0.0"
@@ -6226,10 +6399,21 @@ istanbul-reports@^2.2.4:
   dependencies:
     html-escaper "^2.0.0"
 
-jose@^4.14.1:
-  version "4.14.4"
-  resolved "https://registry.yarnpkg.com/jose/-/jose-4.14.4.tgz#59e09204e2670c3164ee24cbfe7115c6f8bff9ca"
-  integrity sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g==
+joi@^17.9.2:
+  version "17.12.0"
+  resolved "https://registry.yarnpkg.com/joi/-/joi-17.12.0.tgz#a3fb5715f198beb0471cd551dd26792089c308d5"
+  integrity sha512-HSLsmSmXz+PV9PYoi3p7cgIbj06WnEBNT28n+bbBNcPZXZFqCzzvGqpTBPujx/Z0nh1+KNQPDrNgdmQ8dq0qYw==
+  dependencies:
+    "@hapi/hoek" "^9.3.0"
+    "@hapi/topo" "^5.1.0"
+    "@sideway/address" "^4.1.4"
+    "@sideway/formula" "^3.0.1"
+    "@sideway/pinpoint" "^2.0.0"
+
+jose@^4.15.4:
+  version "4.15.4"
+  resolved "https://registry.yarnpkg.com/jose/-/jose-4.15.4.tgz#02a9a763803e3872cf55f29ecef0dfdcc218cc03"
+  integrity sha512-W+oqK4H+r5sITxfxpSU+MMdr/YSWGvgZMQDIsNoBDGGy4i7GBPTtvFKibQzW06n3U3TqHjhvBJsirShsEJ6eeQ==
 
 "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
   version "4.0.0"
@@ -6341,7 +6525,7 @@ jsdoc2md-stats@^1.0.3:
     app-usage-stats "^0.4.0"
     feature-detect-es6 "^1.3.1"
 
-jsdom@*:
+jsdom@22.1.0:
   version "22.1.0"
   resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-22.1.0.tgz#0fca6d1a37fbeb7f4aac93d1090d782c56b611c8"
   integrity sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==
@@ -6417,20 +6601,26 @@ json5@^0.5.1:
   resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
   integrity sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==
 
-json5@^2.2.2:
+json5@^2.2.3:
   version "2.2.3"
   resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
   integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
 
 jsonwebtoken@^9.0.0:
-  version "9.0.0"
-  resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz#d0faf9ba1cc3a56255fe49c0961a67e520c1926d"
-  integrity sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==
+  version "9.0.2"
+  resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz#65ff91f4abef1784697d40952bb1998c504caaf3"
+  integrity sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==
   dependencies:
     jws "^3.2.2"
-    lodash "^4.17.21"
+    lodash.includes "^4.3.0"
+    lodash.isboolean "^3.0.3"
+    lodash.isinteger "^4.0.4"
+    lodash.isnumber "^3.0.3"
+    lodash.isplainobject "^4.0.6"
+    lodash.isstring "^4.0.1"
+    lodash.once "^4.0.0"
     ms "^2.1.1"
-    semver "^7.3.8"
+    semver "^7.5.4"
 
 jsprim@^1.2.2:
   version "1.4.2"
@@ -6442,6 +6632,16 @@ jsprim@^1.2.2:
     json-schema "0.4.0"
     verror "1.10.0"
 
+jsprim@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-2.0.2.tgz#77ca23dbcd4135cd364800d22ff82c2185803d4d"
+  integrity sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==
+  dependencies:
+    assert-plus "1.0.0"
+    extsprintf "1.3.0"
+    json-schema "0.4.0"
+    verror "1.10.0"
+
 jwa@^1.4.1:
   version "1.4.1"
   resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a"
@@ -6502,11 +6702,6 @@ kind-of@^4.0.0:
   dependencies:
     is-buffer "^1.1.5"
 
-kind-of@^5.0.0:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
-  integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
-
 kind-of@^6.0.0, kind-of@^6.0.2:
   version "6.0.3"
   resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
@@ -6560,7 +6755,7 @@ ldap-filter@^0.3.3:
   dependencies:
     assert-plus "^1.0.0"
 
-ldapauth-fork@*:
+ldapauth-fork@5.0.5:
   version "5.0.5"
   resolved "https://registry.yarnpkg.com/ldapauth-fork/-/ldapauth-fork-5.0.5.tgz#984f98ffda8622a4dcf150533e2d3282372c2cb1"
   integrity sha512-LWUk76+V4AOZbny/3HIPQtGPWZyA3SW2tRhsWIBi9imP22WJktKLHV1ofd8Jo/wY7Ve6vAT7FCI5mEn3blZTjw==
@@ -6626,7 +6821,7 @@ load-json-file@^4.0.0:
     pify "^3.0.0"
     strip-bom "^3.0.0"
 
-loadavg-windows@*:
+loadavg-windows@1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/loadavg-windows/-/loadavg-windows-1.1.1.tgz#e384aa8107b4ebf851bec267dd4a0789c4c54bc4"
   integrity sha512-ncSyH121LuN6OENPSohTAS2W85J3NYVIfjsVcK4spViQbHlQUXhGKd8VYhrqWyjtwwSTw4g3rrDraNoSJWRLgw==
@@ -6673,11 +6868,41 @@ lodash.flattendeep@^4.4.0:
   resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2"
   integrity sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==
 
+lodash.includes@^4.3.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f"
+  integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==
+
+lodash.isboolean@^3.0.3:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6"
+  integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==
+
+lodash.isinteger@^4.0.4:
+  version "4.0.4"
+  resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343"
+  integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==
+
+lodash.isnumber@^3.0.3:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc"
+  integrity sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==
+
 lodash.isplainobject@^4.0.6:
   version "4.0.6"
   resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
   integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==
 
+lodash.isstring@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451"
+  integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==
+
+lodash.once@^4.0.0:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
+  integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==
+
 lodash.pick@^4.4.0:
   version "4.4.0"
   resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3"
@@ -6693,23 +6918,28 @@ lodash.union@^4.6.0:
   resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88"
   integrity sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==
 
-lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.6.1, lodash@~4.17.19, lodash@~4.17.21:
+lodash@^4.17.14, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.6.1, lodash@~4.17.19, lodash@~4.17.21:
   version "4.17.21"
   resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
   integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
 
 logform@^2.3.2, logform@^2.4.0:
-  version "2.5.1"
-  resolved "https://registry.yarnpkg.com/logform/-/logform-2.5.1.tgz#44c77c34becd71b3a42a3970c77929e52c6ed48b"
-  integrity sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg==
+  version "2.6.0"
+  resolved "https://registry.yarnpkg.com/logform/-/logform-2.6.0.tgz#8c82a983f05d6eaeb2d75e3decae7a768b2bf9b5"
+  integrity sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==
   dependencies:
-    "@colors/colors" "1.5.0"
+    "@colors/colors" "1.6.0"
     "@types/triple-beam" "^1.3.2"
     fecha "^4.2.0"
     ms "^2.1.1"
     safe-stable-stringify "^2.3.1"
     triple-beam "^1.3.0"
 
+long@^5.2.1:
+  version "5.2.3"
+  resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1"
+  integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==
+
 longest@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
@@ -6732,6 +6962,11 @@ 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:
+  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@^4.0.1:
   version "4.1.5"
   resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
@@ -6754,11 +6989,16 @@ lru-cache@^6.0.0:
   dependencies:
     yallist "^4.0.0"
 
-lru-cache@^7.10.1, lru-cache@^7.14.0:
+lru-cache@^7.10.1, lru-cache@^7.14.1:
   version "7.18.3"
   resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89"
   integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==
 
+lru-cache@^8.0.0:
+  version "8.0.5"
+  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-8.0.5.tgz#983fe337f3e176667f8e567cfcce7cb064ea214e"
+  integrity sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==
+
 ltx@^2.8.1:
   version "2.10.0"
   resolved "https://registry.yarnpkg.com/ltx/-/ltx-2.10.0.tgz#0b794b898e01d9dcc61b54b160e78869003bbb20"
@@ -6827,16 +7067,16 @@ map-visit@^1.0.0:
   dependencies:
     object-visit "^1.0.0"
 
-mariadb@*:
-  version "3.1.2"
-  resolved "https://registry.yarnpkg.com/mariadb/-/mariadb-3.1.2.tgz#96f9f6c3f280a3a3c37b56ff7974400edbb88bda"
-  integrity sha512-ILlC54fkXkvizTJZC1uP7f/REBxuu1k+OWzpiIITIEdS+dGIjFe/Ob3EW9KrdtBa38l3z+odz6elva0RG/y5og==
+mariadb@3.2.2:
+  version "3.2.2"
+  resolved "https://registry.yarnpkg.com/mariadb/-/mariadb-3.2.2.tgz#320a991c708c737e5ddeefa1852ddf925f2dcd8c"
+  integrity sha512-9ClJCFsLcK7WnPXVxuKGd7p0CBvNch3i5nwAf1HEqERj7RV60DG/0dJu4DfO33gpYQd9Cr4jq17O76/2VjSbkg==
   dependencies:
     "@types/geojson" "^7946.0.10"
     "@types/node" "^17.0.45"
     denque "^2.1.0"
     iconv-lite "^0.6.3"
-    lru-cache "^7.14.0"
+    lru-cache "^10.0.1"
 
 marked@~0.3.6:
   version "0.3.19"
@@ -6944,7 +7184,7 @@ mime-db@1.52.0, "mime-db@>= 1.43.0 < 2":
   resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
   integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
 
-mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34:
+mime-types@^2.1.12, mime-types@^2.1.35, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34:
   version "2.1.35"
   resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
   integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
@@ -6966,15 +7206,6 @@ mime@~1.2.11, mime@~1.2.9:
   resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10"
   integrity sha512-Ysa2F/nqTNGHhhm9MV8ure4+Hc+Y8AWiqUdHxsO7xu8zc92ND9f3kpALHjaP026Ft17UfxrMt95c50PLUeynBw==
 
-minify-js@*:
-  version "0.0.4"
-  resolved "https://registry.yarnpkg.com/minify-js/-/minify-js-0.0.4.tgz#e960cb61083f37af856944c512d0fca546d28dda"
-  integrity sha512-K7siyCl7QDUJhpyKWOCJmNQcghoPnk7BSbusljtOD9LwgqeQ/zVYe8qHKsYEBcyD44IdnhrgGkBiNRzsdh80/w==
-  dependencies:
-    async "^2.0.1"
-    dir_cache "^1.0.1"
-    utils-igor "^2.0.0"
-
 minify-js@0.0.2:
   version "0.0.2"
   resolved "https://registry.yarnpkg.com/minify-js/-/minify-js-0.0.2.tgz#833ba28645a1cfa942536bc6de4f0294d482f639"
@@ -6988,6 +7219,15 @@ minify-js@0.0.2:
     grunt-jsdoc-to-markdown "^1.2.1"
     utils-igor "^2.0.0"
 
+minify-js@0.0.4:
+  version "0.0.4"
+  resolved "https://registry.yarnpkg.com/minify-js/-/minify-js-0.0.4.tgz#e960cb61083f37af856944c512d0fca546d28dda"
+  integrity sha512-K7siyCl7QDUJhpyKWOCJmNQcghoPnk7BSbusljtOD9LwgqeQ/zVYe8qHKsYEBcyD44IdnhrgGkBiNRzsdh80/w==
+  dependencies:
+    async "^2.0.1"
+    dir_cache "^1.0.1"
+    utils-igor "^2.0.0"
+
 minimalistic-assert@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
@@ -7021,7 +7261,7 @@ minimatch@~3.0.4:
   dependencies:
     brace-expansion "^1.1.7"
 
-minimist@^1.2.5, minimist@^1.2.6:
+minimist@1.2.8, minimist@^1.2.5, minimist@^1.2.6:
   version "1.2.8"
   resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
   integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
@@ -7115,7 +7355,7 @@ mkdirp@^1.0.3, mkdirp@^1.0.4:
   resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
   integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
 
-modern-syslog@*:
+modern-syslog@1.2.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/modern-syslog/-/modern-syslog-1.2.0.tgz#6e419f640efe877f73ffea1c3e987132a69cd2a2"
   integrity sha512-dmFE23qpyZJf8MOdzuNKliW4j1PCqxaRtSzyNnv6QDUWjf1z8T4ZoQ7Qf0t6It2ewNv9/XJZSJoUgwpq3D0X7A==
@@ -7143,9 +7383,9 @@ mongodb@4.13.0:
     saslprep "^1.0.3"
 
 mongodb@^3.3.2:
-  version "3.7.3"
-  resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-3.7.3.tgz#b7949cfd0adc4cc7d32d3f2034214d4475f175a5"
-  integrity sha512-Psm+g3/wHXhjBEktkxXsFMZvd3nemI0r3IPsE0bU+4//PnvNWKkzhZcEsbPcYiWqe8XqXJJEg4Tgtr7Raw67Yw==
+  version "3.7.4"
+  resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-3.7.4.tgz#119530d826361c3e12ac409b769796d6977037a4"
+  integrity sha512-K5q8aBqEXMwWdVNh94UQTwZ6BejVbFhh1uB6c5FKtPE9eUMZPUO3sRZdgIEcHSrAWmxzpG/FeODDKL388sqRmw==
   dependencies:
     bl "^2.2.1"
     bson "^1.1.4"
@@ -7155,7 +7395,7 @@ mongodb@^3.3.2:
   optionalDependencies:
     saslprep "^1.0.0"
 
-mongojs@*:
+mongojs@3.1.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/mongojs/-/mongojs-3.1.0.tgz#4242e6f5218a7301c35393b64ba9130d1d9488ef"
   integrity sha512-aXJ4xfXwx9s1cqtKTZ24PypXiWhIgvgENObQzCGbV4QBxEVedy3yuErhx6znk959cF2dOzL2ClgXJvIhfgkpIQ==
@@ -7201,7 +7441,7 @@ ms@2.1.3, ms@^2.0.0, ms@^2.1.1:
   resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
   integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
 
-multiparty@^4.2.1:
+multiparty@4.2.3:
   version "4.2.3"
   resolved "https://registry.yarnpkg.com/multiparty/-/multiparty-4.2.3.tgz#6b14981badb5ad3f0929622868751810368d4633"
   integrity sha512-Ak6EUJZuhGS8hJ3c2fY6UW5MbkGUPMBEGd13djUzoY/BHqV/gTuFWtC6IuVA7A2+v3yjBS6c4or50xhzTQZImQ==
@@ -7210,30 +7450,41 @@ multiparty@^4.2.1:
     safe-buffer "5.2.1"
     uid-safe "2.1.5"
 
-mustache@^2.2.1:
-  version "2.3.2"
-  resolved "https://registry.yarnpkg.com/mustache/-/mustache-2.3.2.tgz#a6d4d9c3f91d13359ab889a812954f9230a3d0c5"
-  integrity sha512-KpMNwdQsYz3O/SBS1qJ/o3sqUJ5wSb8gb0pul8CO0S56b9Y2ALm8zCfsjPXsqGFfoNBkDwZuZIAjhsZI03gYVQ==
+mustache@^4.2.0:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64"
+  integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==
 
 mute-stream@0.0.5:
   version "0.0.5"
   resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0"
   integrity sha512-EbrziT4s8cWPmzr47eYVW3wimS4HsvlnV5ri1xw1aR6JQo/OrJX5rkl32K/QQHdxeabJETtfeaROGhd8W7uBgg==
 
-mysql@*:
-  version "2.18.1"
-  resolved "https://registry.yarnpkg.com/mysql/-/mysql-2.18.1.tgz#2254143855c5a8c73825e4522baf2ea021766717"
-  integrity sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==
+mysql2@3.6.2:
+  version "3.6.2"
+  resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.6.2.tgz#be2eeba80c5167ffb856c48d61be5ac0e5ef6c09"
+  integrity sha512-m5erE6bMoWfPXW1D5UrVwlT8PowAoSX69KcZzPuARQ3wY1RJ52NW9PdvdPo076XiSIkQ5IBTis7hxdlrQTlyug==
   dependencies:
-    bignumber.js "9.0.0"
-    readable-stream "2.3.7"
-    safe-buffer "5.1.2"
-    sqlstring "2.3.1"
+    denque "^2.1.0"
+    generate-function "^2.3.1"
+    iconv-lite "^0.6.3"
+    long "^5.2.1"
+    lru-cache "^8.0.0"
+    named-placeholders "^1.1.3"
+    seq-queue "^0.0.5"
+    sqlstring "^2.3.2"
+
+named-placeholders@^1.1.3:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/named-placeholders/-/named-placeholders-1.1.3.tgz#df595799a36654da55dda6152ba7a137ad1d9351"
+  integrity sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==
+  dependencies:
+    lru-cache "^7.14.1"
 
-nan@^2.12.1, nan@^2.13.2, nan@^2.17.0:
-  version "2.17.0"
-  resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb"
-  integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==
+nan@^2.12.1, nan@^2.13.2, nan@^2.17.0, nan@^2.18.0:
+  version "2.18.0"
+  resolved "https://registry.yarnpkg.com/nan/-/nan-2.18.0.tgz#26a6faae7ffbeb293a39660e88a76b82e30b7554"
+  integrity sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==
 
 nanoid@^2.1.0:
   version "2.1.11"
@@ -7262,7 +7513,7 @@ negotiator@0.6.3, negotiator@^0.6.2:
   resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
   integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
 
-neo-async@^2.6.0:
+neo-async@^2.6.2:
   version "2.6.2"
   resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
   integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
@@ -7299,11 +7550,6 @@ node-addon-api@^4.2.0:
   resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f"
   integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==
 
-node-domexception@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5"
-  integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==
-
 node-environment-flags@^1.0.5:
   version "1.0.6"
   resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.6.tgz#a30ac13621f6f7d674260a54dede048c3982c088"
@@ -7312,31 +7558,22 @@ node-environment-flags@^1.0.5:
     object.getownpropertydescriptors "^2.0.3"
     semver "^5.7.0"
 
-node-fetch@^2.3.0, node-fetch@^2.6.1, node-fetch@^2.6.6, node-fetch@^2.6.7:
-  version "2.6.11"
-  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.11.tgz#cde7fc71deef3131ef80a738919f999e6edfff25"
-  integrity sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==
+node-fetch@^2.3.0, node-fetch@^2.6.1, node-fetch@^2.6.6, node-fetch@^2.6.7, node-fetch@^2.6.9:
+  version "2.7.0"
+  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d"
+  integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==
   dependencies:
     whatwg-url "^5.0.0"
 
-node-fetch@^3.3.0:
-  version "3.3.1"
-  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.1.tgz#b3eea7b54b3a48020e46f4f88b9c5a7430d20b2e"
-  integrity sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==
-  dependencies:
-    data-uri-to-buffer "^4.0.0"
-    fetch-blob "^3.1.4"
-    formdata-polyfill "^4.0.10"
-
-node-forge@^1.0.0, node-forge@^1.3.0, node-forge@^1.3.1:
+node-forge@1.3.1, node-forge@^1.3.0:
   version "1.3.1"
   resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3"
   integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==
 
 node-gyp-build@^4.3.0:
-  version "4.6.0"
-  resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.6.0.tgz#0c52e4cbf54bbd28b709820ef7b6a3c2d6209055"
-  integrity sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==
+  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==
 
 node-gyp@8.x:
   version "8.4.1"
@@ -7361,19 +7598,19 @@ node-localstorage@^2.2.1:
   dependencies:
     write-file-atomic "^1.1.4"
 
-node-pushover@*:
+node-pushover@1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/node-pushover/-/node-pushover-1.0.0.tgz#d723fda9d9396f9714b30dcc380ac6bc44c64e96"
   integrity sha512-yIIt6a60obTco2/Yr0/9iR4+4sDbDzlM3qpaJ99xnAwFlDeg29V5ur19D2L+S9i5LaBao5yAQKAdpvQ+7kVIng==
   dependencies:
     httpreq "*"
 
-node-releases@^2.0.12:
-  version "2.0.12"
-  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039"
-  integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==
+node-releases@^2.0.14:
+  version "2.0.14"
+  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b"
+  integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==
 
-node-sspi@*:
+node-sspi@0.2.10:
   version "0.2.10"
   resolved "https://registry.yarnpkg.com/node-sspi/-/node-sspi-0.2.10.tgz#9e1f5ff2f0af24324023cef8471c06fcb24a5591"
   integrity sha512-IEm0OaTklsCCO9rzxvchkJvuU85yA7ouD723uRr3IabTXv/aOIZRwA3CVrZxU+sZ7/kOttIyrOsi7HqeHTH8eg==
@@ -7386,23 +7623,23 @@ node-uuid@~1.4.0:
   resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907"
   integrity sha512-TkCET/3rr9mUuRp+CpO7qfgT++aAxfDRaalQhwPFzI9BY/2rCDn6OfpZOVggi1AXfTPpfkTrg5f5WQx5G1uLxA==
 
-node-vault@*:
-  version "0.9.22"
-  resolved "https://registry.yarnpkg.com/node-vault/-/node-vault-0.9.22.tgz#052ab9b36c29d80d1ecfad61275259fe710d179e"
-  integrity sha512-/IR+YvINFhCzxJA5x/KHUDymJerFaeqvPUE2zwceRig8yEIA41qfVKusmO6bqRGFkr/2f6CaBVp7YfabzQyteg==
+node-vault@0.10.2:
+  version "0.10.2"
+  resolved "https://registry.yarnpkg.com/node-vault/-/node-vault-0.10.2.tgz#d5629c2e88744183474bba2ce54e1e08c4d15e8e"
+  integrity sha512-//uc9/YImE7Dx0QHdwMiAzLaOumiKUnOUP8DymgtkZ8nsq6/V2LKvEu6kw91Lcruw8lWUfj4DO7CIXNPRWBuuA==
   dependencies:
-    debug "3.1.0"
-    mustache "^2.2.1"
-    request "2.88.0"
-    request-promise-native "1.0.7"
-    tv4 "^1.2.7"
+    debug "^4.3.4"
+    mustache "^4.2.0"
+    postman-request "^2.88.1-postman.33"
+    tv4 "^1.3.0"
 
-node-windows@0.1.4:
-  version "0.1.4"
-  resolved "https://registry.yarnpkg.com/node-windows/-/node-windows-0.1.4.tgz#23d5ee98b6b8290e0a3da9998ee638845fedcb1b"
-  integrity sha512-BRRMRjnw7NuWEdEKMUTgXQ8YRppN+egmx0Aq6pzstexydkhK7Bd6kqSVuPTMqLHbQhQAivGWq0q0GSFhfCjYBg==
+node-windows@0.1.14:
+  version "0.1.14"
+  resolved "https://registry.yarnpkg.com/node-windows/-/node-windows-0.1.14.tgz#31bb0503da3bc637f2bfaa8b266640a2e92d891f"
+  integrity sha512-2sz0i+ckeX/+22Z4KcDVis1ukyGOYZWx2WG9nQYauUwzIxEye5QcMrExkH7OaRSHkwM5bN/jesxsiQqkUb1O/w==
   dependencies:
-    optimist "~0.3.5"
+    optimist "~0.6.0"
+    xml "0.0.12"
 
 node-xcs@0.1.7:
   version "0.1.7"
@@ -7412,10 +7649,10 @@ node-xcs@0.1.7:
     "@xmpp/client" "^0.9.2"
     "@xmpp/debug" "^0.9.2"
 
-nodemailer@*:
-  version "6.9.3"
-  resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.9.3.tgz#e4425b85f05d83c43c5cd81bf84ab968f8ef5cbe"
-  integrity sha512-fy9v3NgTzBngrMFkDsKEj0r02U7jm6XfC3b52eoNV+GCrGj+s8pt5OqhiJdWKuw51zCTdiNR/IUD1z33LIIGpg==
+nodemailer@6.9.8:
+  version "6.9.8"
+  resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.9.8.tgz#29601e80440f2af7aa62b32758fdac7c6b784143"
+  integrity sha512-cfrYUk16e67Ks051i4CntM9kshRYei1/o/Gi8K1d+R34OIs21xdFnW7Pt7EucmVKA0LKtqUGNcjMZ7ehjl49mQ==
 
 nofilter@^1.0.4:
   version "1.0.4"
@@ -7492,9 +7729,9 @@ number-is-nan@^1.0.0:
   integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==
 
 nwsapi@^2.2.4:
-  version "2.2.5"
-  resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.5.tgz#a52744c61b3889dd44b0a158687add39b8d935e2"
-  integrity sha512-6xpotnECFy/og7tKSBVmUNft7J3jyXAka4XvG6AUhFWRz+Q/Ljus7znJAA3bxColfQLdS+XsjoodtJfCgeTEFQ==
+  version "2.2.7"
+  resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30"
+  integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==
 
 nyc@^14.1.1:
   version "14.1.1"
@@ -7566,10 +7803,10 @@ object-hash@^2.2.0:
   resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5"
   integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==
 
-object-inspect@^1.12.3, object-inspect@^1.9.0:
-  version "1.12.3"
-  resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9"
-  integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==
+object-inspect@^1.13.1, object-inspect@^1.9.0:
+  version "1.13.1"
+  resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2"
+  integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==
 
 object-keys@^1.1.1:
   version "1.1.1"
@@ -7608,12 +7845,12 @@ object-visit@^1.0.0:
     isobject "^3.0.0"
 
 object.assign@^4.1.4:
-  version "4.1.4"
-  resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f"
-  integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==
+  version "4.1.5"
+  resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0"
+  integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==
   dependencies:
-    call-bind "^1.0.2"
-    define-properties "^1.1.4"
+    call-bind "^1.0.5"
+    define-properties "^1.2.1"
     has-symbols "^1.0.3"
     object-keys "^1.1.1"
 
@@ -7628,14 +7865,14 @@ object.defaults@^1.1.0:
     isobject "^3.0.0"
 
 object.getownpropertydescriptors@^2.0.3:
-  version "2.1.6"
-  resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz#5e5c384dd209fa4efffead39e3a0512770ccc312"
-  integrity sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ==
+  version "2.1.7"
+  resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz#7a466a356cd7da4ba8b9e94ff6d35c3eeab5d56a"
+  integrity sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==
   dependencies:
-    array.prototype.reduce "^1.0.5"
+    array.prototype.reduce "^1.0.6"
     call-bind "^1.0.2"
     define-properties "^1.2.0"
-    es-abstract "^1.21.2"
+    es-abstract "^1.22.1"
     safe-array-concat "^1.0.0"
 
 object.map@^1.0.1:
@@ -7698,11 +7935,11 @@ onetime@^1.0.0:
   integrity sha512-GZ+g4jayMqzCRMgB2sol7GiCLjKfS1PINkjmx8spcKce1LiVqcbQreXwqs2YAFXC6R03VIG28ZS31t8M866v6A==
 
 openid-client@*:
-  version "5.4.2"
-  resolved "https://registry.yarnpkg.com/openid-client/-/openid-client-5.4.2.tgz#8692bcc2a40ef3426c5ba5c11f7493599e93ccc7"
-  integrity sha512-lIhsdPvJ2RneBm3nGBBhQchpe3Uka//xf7WPHTIglery8gnckvW7Bd9IaQzekzXJvWthCMyi/xVEyGW0RFPytw==
+  version "5.6.4"
+  resolved "https://registry.yarnpkg.com/openid-client/-/openid-client-5.6.4.tgz#b2c25e6d5338ba3ce00e04341bb286798a196177"
+  integrity sha512-T1h3B10BRPKfcObdBklX639tVz+xh34O7GjofqrqiAQdm7eHsQ00ih18x6wuJ/E6FxdtS2u3FmUGPDeEcMwzNA==
   dependencies:
-    jose "^4.14.1"
+    jose "^4.15.4"
     lru-cache "^6.0.0"
     object-hash "^2.2.0"
     oidc-token-hash "^5.0.3"
@@ -7714,7 +7951,7 @@ opentype.js@^0.7.3:
   dependencies:
     tiny-inflate "^1.0.2"
 
-optimist@^0.6.1:
+optimist@^0.6.1, optimist@~0.6.0:
   version "0.6.1"
   resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
   integrity sha512-snN4O4TkigujZphWLN0E//nQmm7790RYaE53DdL7ZYwee2D8DDo9/EyYiKUfN3rneWUjhJnueija3G9I2i0h3g==
@@ -7722,13 +7959,6 @@ optimist@^0.6.1:
     minimist "~0.0.1"
     wordwrap "~0.0.2"
 
-optimist@~0.3.5:
-  version "0.3.7"
-  resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.3.7.tgz#c90941ad59e4273328923074d2cf2e7cbc6ec0d9"
-  integrity sha512-TCx0dXQzVtSCg2OgY/bO9hjM9cV4XYx09TVK+s3+FhkjT6LovsLe+pPMzpWf+6yXK/hUizs2gUoTw3jHM0VaTQ==
-  dependencies:
-    wordwrap "~0.0.2"
-
 optional-require@^1.1.8:
   version "1.1.8"
   resolved "https://registry.yarnpkg.com/optional-require/-/optional-require-1.1.8.tgz#16364d76261b75d964c482b2406cb824d8ec44b7"
@@ -7978,13 +8208,14 @@ passport-twitter@*:
     passport-oauth1 "1.x.x"
     xtraverse "0.1.x"
 
-passport@0.5.3:
-  version "0.5.3"
-  resolved "https://registry.yarnpkg.com/passport/-/passport-0.5.3.tgz#e69b46c9bb3290660bc2b3299330d78710b198cc"
-  integrity sha512-gGc+70h4gGdBWNsR3FuV3byLDY6KBTJAIExGFXTpQaYfbbcHCBlRRKx7RBQSpqEqc5Hh2qVzRs7ssvSfOpkUEA==
+passport@*:
+  version "0.7.0"
+  resolved "https://registry.yarnpkg.com/passport/-/passport-0.7.0.tgz#3688415a59a48cf8068417a8a8092d4492ca3a05"
+  integrity sha512-cPLl+qZpSc+ireUvt+IzqbED1cHHkDoVYMo30jbJIdOOjQ1MQYZBPiNvmi8UM6lJuOpTPXJGZQk0DtC4y61MYQ==
   dependencies:
     passport-strategy "1.x.x"
     pause "0.0.1"
+    utils-merge "^1.0.1"
 
 path-browserify@^1.0.1:
   version "1.0.1"
@@ -8071,25 +8302,25 @@ performance-now@^2.1.0:
   resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
   integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==
 
-pg-cloudflare@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.1.0.tgz#833d70870d610d14bf9df7afb40e1cba310c17a0"
-  integrity sha512-tGM8/s6frwuAIyRcJ6nWcIvd3+3NmUKIs6OjviIm1HPPFEt5MzQDOTBQyhPWg/m0kCl95M6gA1JaIXtS8KovOA==
+pg-cloudflare@^1.1.1:
+  version "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.0:
-  version "2.6.0"
-  resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.0.tgz#12a36cc4627df19c25cc1b9b736cc39ee1f73ae8"
-  integrity sha512-x14ibktcwlHKoHxx9X3uTVW9zIGR41ZB6QNhHb21OPNdCCO3NaRnpJuwKIQSR4u+Yqjx4HCvy7Hh7VSy1U4dGg==
+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-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.0:
-  version "3.6.0"
-  resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.6.0.tgz#3190df3e4747a0d23e5e9e8045bcd99bda0a712e"
-  integrity sha512-clFRf2ksqd+F497kWFyM21tMjeikn60oGDmqMT8UBrynEwVEX/5R5xd2sdvdo1cZCFlguORNpVuqxIj+aK4cfQ==
+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-protocol@^1.5.0, pg-protocol@^1.6.0:
   version "1.6.0"
@@ -8121,19 +8352,19 @@ pg@8.7.1:
     pgpass "1.x"
 
 pg@^8.4.0:
-  version "8.11.0"
-  resolved "https://registry.yarnpkg.com/pg/-/pg-8.11.0.tgz#a37e534e94b57a7ed811e926f23a7c56385f55d9"
-  integrity sha512-meLUVPn2TWgJyLmy7el3fQQVwft4gU5NGyvV0XbD41iU9Jbg8lCH4zexhIkihDzVHJStlt6r088G6/fWeNjhXA==
+  version "8.11.3"
+  resolved "https://registry.yarnpkg.com/pg/-/pg-8.11.3.tgz#d7db6e3fe268fcedd65b8e4599cda0b8b4bf76cb"
+  integrity sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==
   dependencies:
     buffer-writer "2.0.0"
     packet-reader "1.0.0"
-    pg-connection-string "^2.6.0"
-    pg-pool "^3.6.0"
+    pg-connection-string "^2.6.2"
+    pg-pool "^3.6.1"
     pg-protocol "^1.6.0"
     pg-types "^2.1.0"
     pgpass "1.x"
   optionalDependencies:
-    pg-cloudflare "^1.1.0"
+    pg-cloudflare "^1.1.1"
 
 pgpass@1.x:
   version "1.0.5"
@@ -8189,10 +8420,10 @@ pinkie@^2.0.0:
   resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
   integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==
 
-pirates@^4.0.5:
-  version "4.0.5"
-  resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b"
-  integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==
+pirates@^4.0.6:
+  version "4.0.6"
+  resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9"
+  integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==
 
 pkg-dir@^3.0.0:
   version "3.0.0"
@@ -8201,10 +8432,10 @@ pkg-dir@^3.0.0:
   dependencies:
     find-up "^3.0.0"
 
-plivo@*:
-  version "4.49.0"
-  resolved "https://registry.yarnpkg.com/plivo/-/plivo-4.49.0.tgz#0f7a34f538822fcfd4ca4d480e0306f0aaba5a15"
-  integrity sha512-PBxMmCzIhkkM2Efu+KsQ338y7SuNBgOvc48Cb5gKZZvzdvDgw00jbXvAJyjvgNy0ix2C4sHLPaUc3GZ9kMACMA==
+plivo@4.58.0:
+  version "4.58.0"
+  resolved "https://registry.yarnpkg.com/plivo/-/plivo-4.58.0.tgz#bd6b2ded17319049f6a1d2dde7985b2ff7ae93db"
+  integrity sha512-AFxxxYgVaqx+09aDZoLeg5Tv7xPI7CBU/f3DOtvOVbFnqZZZByPTkuGzUZ3oeit7+yTklzQt4o5DfpNDB9LgNA==
   dependencies:
     "@types/node" "^14.14.14"
     axios "^0.21.1"
@@ -8212,6 +8443,7 @@ plivo@*:
     build-url "^1.0.10"
     form-data "^4.0.0"
     https-proxy-agent "^5.0.0"
+    joi "^17.9.2"
     jsonwebtoken "^9.0.0"
     lodash "^4.17.4"
     querystring "^0.2.0"
@@ -8247,6 +8479,34 @@ postgres-interval@^1.1.0:
   dependencies:
     xtend "^4.0.0"
 
+postman-request@^2.88.1-postman.33:
+  version "2.88.1-postman.33"
+  resolved "https://registry.yarnpkg.com/postman-request/-/postman-request-2.88.1-postman.33.tgz#684147d61c9a263a28f148d3207b1593e0f01ec5"
+  integrity sha512-uL9sCML4gPH6Z4hreDWbeinKU0p0Ke261nU7OvII95NU22HN6Dk7T/SaVPaj6T4TsQqGKIFw6/woLZnH7ugFNA==
+  dependencies:
+    "@postman/form-data" "~3.1.1"
+    "@postman/tough-cookie" "~4.1.3-postman.1"
+    "@postman/tunnel-agent" "^0.6.3"
+    aws-sign2 "~0.7.0"
+    aws4 "^1.12.0"
+    brotli "^1.3.3"
+    caseless "~0.12.0"
+    combined-stream "~1.0.6"
+    extend "~3.0.2"
+    forever-agent "~0.6.1"
+    har-validator "~5.1.3"
+    http-signature "~1.3.1"
+    is-typedarray "~1.0.0"
+    isstream "~0.1.2"
+    json-stringify-safe "~5.0.1"
+    mime-types "^2.1.35"
+    oauth-sign "~0.9.0"
+    performance-now "^2.1.0"
+    qs "~6.5.3"
+    safe-buffer "^5.1.2"
+    stream-length "^1.0.2"
+    uuid "^8.3.2"
+
 precond@0.2:
   version "0.2.3"
   resolved "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz#aa9591bcaa24923f1e0f4849d240f47efc1075ac"
@@ -8300,12 +8560,17 @@ proxy-addr@~2.0.7:
     forwarded "0.2.0"
     ipaddr.js "1.9.1"
 
+proxy-from-env@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
+  integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
+
 pseudomap@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
   integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==
 
-psl@^1.1.24, psl@^1.1.28, psl@^1.1.33:
+psl@^1.1.28, psl@^1.1.33:
   version "1.9.0"
   resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7"
   integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==
@@ -8318,15 +8583,10 @@ pump@^3.0.0:
     end-of-stream "^1.1.0"
     once "^1.3.1"
 
-punycode@^1.4.1:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
-  integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==
-
 punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f"
-  integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
+  integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
 
 qlobber@^3.0.2, qlobber@^3.1.0:
   version "3.1.0"
@@ -8352,7 +8612,7 @@ qs@~0.6.0:
   resolved "https://registry.yarnpkg.com/qs/-/qs-0.6.6.tgz#6e015098ff51968b8a3c819001d5f2c89bc4b107"
   integrity sha512-kN+yNdAf29Jgp+AYHUmC7X4QdJPR8czuMWLNLc0aRxkQ7tB3vJQEONKKT9ou/rW7EbqVec11srC9q9BiVbcnHA==
 
-qs@~6.5.2:
+qs@~6.5.2, qs@~6.5.3:
   version "6.5.3"
   resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad"
   integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==
@@ -8463,19 +8723,6 @@ read-pkg@^3.0.0:
     string_decoder "^1.1.1"
     util-deprecate "^1.0.1"
 
-readable-stream@2.3.7:
-  version "2.3.7"
-  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
-  integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
-  dependencies:
-    core-util-is "~1.0.0"
-    inherits "~2.0.3"
-    isarray "~1.0.0"
-    process-nextick-args "~2.0.0"
-    safe-buffer "~5.1.1"
-    string_decoder "~1.1.1"
-    util-deprecate "~1.0.1"
-
 readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.3.5:
   version "2.3.8"
   resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b"
@@ -8496,7 +8743,7 @@ readable-web-to-node-stream@^3.0.2:
   dependencies:
     readable-stream "^3.6.0"
 
-readdir-glob@^1.0.0:
+readdir-glob@^1.1.2:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.3.tgz#c3d831f51f5e7bfa62fa2ffbe4b508c640f09584"
   integrity sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==
@@ -8579,10 +8826,10 @@ regenerator-runtime@^0.11.0:
   resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
   integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
 
-regenerator-runtime@^0.13.11:
-  version "0.13.11"
-  resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
-  integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
+regenerator-runtime@^0.14.0:
+  version "0.14.1"
+  resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f"
+  integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==
 
 regenerator-transform@^0.10.0:
   version "0.10.1"
@@ -8608,14 +8855,14 @@ regex-not@^1.0.0, regex-not@^1.0.2:
     extend-shallow "^3.0.2"
     safe-regex "^1.1.0"
 
-regexp.prototype.flags@^1.4.3:
-  version "1.5.0"
-  resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb"
-  integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==
+regexp.prototype.flags@^1.5.1:
+  version "1.5.1"
+  resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e"
+  integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==
   dependencies:
     call-bind "^1.0.2"
     define-properties "^1.2.0"
-    functions-have-names "^1.2.3"
+    set-function-name "^2.0.0"
 
 regexpu-core@^2.0.0:
   version "2.0.0"
@@ -8683,22 +8930,6 @@ req-then@0.5.1:
     lodash.pick "^4.4.0"
     typical "^2.6.0"
 
-request-promise-core@1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.2.tgz#339f6aababcafdb31c799ff158700336301d3346"
-  integrity sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==
-  dependencies:
-    lodash "^4.17.11"
-
-request-promise-native@1.0.7:
-  version "1.0.7"
-  resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.7.tgz#a49868a624bdea5069f1251d0a836e0d89aa2c59"
-  integrity sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==
-  dependencies:
-    request-promise-core "1.1.2"
-    stealthy-require "^1.1.1"
-    tough-cookie "^2.3.3"
-
 request@*:
   version "2.88.2"
   resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
@@ -8725,32 +8956,6 @@ request@*:
     tunnel-agent "^0.6.0"
     uuid "^3.3.2"
 
-request@2.88.0:
-  version "2.88.0"
-  resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef"
-  integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==
-  dependencies:
-    aws-sign2 "~0.7.0"
-    aws4 "^1.8.0"
-    caseless "~0.12.0"
-    combined-stream "~1.0.6"
-    extend "~3.0.2"
-    forever-agent "~0.6.1"
-    form-data "~2.3.2"
-    har-validator "~5.1.0"
-    http-signature "~1.2.0"
-    is-typedarray "~1.0.0"
-    isstream "~0.1.2"
-    json-stringify-safe "~5.0.1"
-    mime-types "~2.1.19"
-    oauth-sign "~0.9.0"
-    performance-now "^2.1.0"
-    qs "~6.5.2"
-    safe-buffer "^5.1.2"
-    tough-cookie "~2.4.3"
-    tunnel-agent "^0.6.0"
-    uuid "^3.3.2"
-
 request@~2.27.0:
   version "2.27.0"
   resolved "https://registry.yarnpkg.com/request/-/request-2.27.0.tgz#dfb1a224dd3a5a9bade4337012503d710e538668"
@@ -8820,11 +9025,11 @@ resolve-url@^0.2.1:
   integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==
 
 resolve@^1.10.0, resolve@^1.19.0, resolve@^1.9.0:
-  version "1.22.2"
-  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f"
-  integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==
+  version "1.22.8"
+  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d"
+  integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==
   dependencies:
-    is-core-module "^2.11.0"
+    is-core-module "^2.13.0"
     path-parse "^1.0.7"
     supports-preserve-symlinks-flag "^1.0.0"
 
@@ -8909,13 +9114,13 @@ rx-lite@^3.1.2:
   dependencies:
     tslib "^2.1.0"
 
-safe-array-concat@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.0.tgz#2064223cba3c08d2ee05148eedbc563cd6d84060"
-  integrity sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==
+safe-array-concat@^1.0.0, safe-array-concat@^1.0.1:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.0.tgz#8d0cae9cb806d6d1c06e08ab13d847293ebe0692"
+  integrity sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==
   dependencies:
-    call-bind "^1.0.2"
-    get-intrinsic "^1.2.0"
+    call-bind "^1.0.5"
+    get-intrinsic "^1.2.2"
     has-symbols "^1.0.3"
     isarray "^2.0.5"
 
@@ -8930,12 +9135,12 @@ safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, s
   integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
 
 safe-regex-test@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295"
-  integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.2.tgz#3ba32bdb3ea35f940ee87e5087c60ee786c3f6c5"
+  integrity sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==
   dependencies:
-    call-bind "^1.0.2"
-    get-intrinsic "^1.1.3"
+    call-bind "^1.0.5"
+    get-intrinsic "^1.2.2"
     is-regex "^1.1.4"
 
 safe-regex@^1.1.0:
@@ -8980,7 +9185,7 @@ saslmechanisms@^0.1.1:
   resolved "https://registry.yarnpkg.com/saslmechanisms/-/saslmechanisms-0.1.1.tgz#478be1429500fcfaa780be88b3343ced7d2a9182"
   integrity sha512-pVlvK5ysevz8MzybRnDIa2YMxn0OJ7b9lDiWhMoaKPoJ7YkAg/7YtNjUgaYzElkwHxsw8dBMhaEn7UP6zxEwPg==
 
-saslprep@*, saslprep@^1.0.0, saslprep@^1.0.3:
+saslprep@1.0.3, saslprep@^1.0.0, saslprep@^1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.3.tgz#4c02f946b56cf54297e347ba1093e7acac4cf226"
   integrity sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==
@@ -8988,9 +9193,9 @@ saslprep@*, saslprep@^1.0.0, saslprep@^1.0.3:
     sparse-bitfield "^3.0.3"
 
 sax@>=0.6.0:
-  version "1.2.4"
-  resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
-  integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/sax/-/sax-1.3.0.tgz#a5dbe77db3be05c9d1ee7785dbd3ea9de51593d0"
+  integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==
 
 saxes@^6.0.0:
   version "6.0.0"
@@ -9004,22 +9209,22 @@ scmp@^2.1.0:
   resolved "https://registry.yarnpkg.com/scmp/-/scmp-2.1.0.tgz#37b8e197c425bdeb570ab91cc356b311a11f9c9a"
   integrity sha512-o/mRQGk9Rcer/jEEw/yw4mwo3EU/NvYvp577/Btqrym9Qy5/MdWGBqipbALgd2lrdWTJ5/gqDusxfnQBxOxT2Q==
 
-semver@*, semver@^7.3.5, semver@^7.3.8:
-  version "7.5.2"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.2.tgz#5b851e66d1be07c1cdaf37dfc856f543325a2beb"
-  integrity sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==
+"semver@2 || 3 || 4 || 5", semver@^5.6.0, semver@^5.7.0:
+  version "5.7.2"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8"
+  integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==
+
+semver@7.5.4, semver@^7.3.5, semver@^7.5.4:
+  version "7.5.4"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
+  integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
   dependencies:
     lru-cache "^6.0.0"
 
-"semver@2 || 3 || 4 || 5", semver@^5.6.0, semver@^5.7.0:
-  version "5.7.1"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
-  integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
-
-semver@^6.0.0, semver@^6.3.0:
-  version "6.3.0"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
-  integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
+semver@^6.0.0, semver@^6.3.1:
+  version "6.3.1"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
+  integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
 
 send@0.18.0:
   version "0.18.0"
@@ -9040,6 +9245,11 @@ send@0.18.0:
     range-parser "~1.2.1"
     statuses "2.0.1"
 
+seq-queue@^0.0.5:
+  version "0.0.5"
+  resolved "https://registry.yarnpkg.com/seq-queue/-/seq-queue-0.0.5.tgz#d56812e1c017a6e4e7c3e3a37a1da6d78dd3c93e"
+  integrity sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==
+
 serve-static@1.15.0:
   version "1.15.0"
   resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540"
@@ -9055,6 +9265,26 @@ set-blocking@^2.0.0:
   resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
   integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==
 
+set-function-length@^1.1.1:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1"
+  integrity sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==
+  dependencies:
+    define-data-property "^1.1.1"
+    function-bind "^1.1.2"
+    get-intrinsic "^1.2.2"
+    gopd "^1.0.1"
+    has-property-descriptors "^1.0.1"
+
+set-function-name@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a"
+  integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==
+  dependencies:
+    define-data-property "^1.0.1"
+    functions-have-names "^1.2.3"
+    has-property-descriptors "^1.0.0"
+
 set-value@^2.0.0, set-value@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
@@ -9272,9 +9502,9 @@ spdx-correct@^3.0.0:
     spdx-license-ids "^3.0.0"
 
 spdx-exceptions@^2.1.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d"
-  integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==
+  version "2.4.0"
+  resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.4.0.tgz#c07a4ede25b16e4f78e6707bbd84b15a45c19c1b"
+  integrity sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==
 
 spdx-expression-parse@^3.0.0:
   version "3.0.1"
@@ -9285,9 +9515,9 @@ spdx-expression-parse@^3.0.0:
     spdx-license-ids "^3.0.0"
 
 spdx-license-ids@^3.0.0:
-  version "3.0.13"
-  resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz#7189a474c46f8d47c7b0da4b987bb45e908bd2d5"
-  integrity sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==
+  version "3.0.16"
+  resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz#a14f64e0954f6e25cc6587bd4f392522db0d998f"
+  integrity sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==
 
 split-string@^3.0.1, split-string@^3.0.2:
   version "3.1.0"
@@ -9301,17 +9531,22 @@ split2@^4.1.0:
   resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4"
   integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==
 
-sprintf-js@1.1.2, sprintf-js@^1.1.1:
+sprintf-js@1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673"
   integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==
 
+sprintf-js@^1.1.1:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a"
+  integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==
+
 sprintf-js@~1.0.2:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
   integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
 
-sqlite3@*:
+sqlite3@5.1.6:
   version "5.1.6"
   resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-5.1.6.tgz#1d4fbc90fe4fbd51e952e0a90fd8f6c2b9098e97"
   integrity sha512-olYkWoKFVNSSSQNvxVUfjiVbz3YtBwTJj+mfV5zpHmqW3sELx2Cf4QCdirMelhM5Zh+KDVaKgQHqCxrqiWHybw==
@@ -9322,26 +9557,26 @@ sqlite3@*:
   optionalDependencies:
     node-gyp "8.x"
 
-sqlstring@2.3.1:
-  version "2.3.1"
-  resolved "https://registry.yarnpkg.com/sqlstring/-/sqlstring-2.3.1.tgz#475393ff9e91479aea62dcaf0ca3d14983a7fb40"
-  integrity sha512-ooAzh/7dxIG5+uDik1z/Rd1vli0+38izZhGzSa34FwR7IbelPWCCKSNIl8jlL/F7ERvy8CB2jNeM1E9i9mXMAQ==
+sqlstring@^2.3.2:
+  version "2.3.3"
+  resolved "https://registry.yarnpkg.com/sqlstring/-/sqlstring-2.3.3.tgz#2ddc21f03bce2c387ed60680e739922c65751d0c"
+  integrity sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==
 
-ssh2@*:
-  version "1.13.0"
-  resolved "https://registry.yarnpkg.com/ssh2/-/ssh2-1.13.0.tgz#9b53a07534fa72283ada471b82395a3b3c875934"
-  integrity sha512-CIZBFRRY1y9mAZSqBGFE4EB4dNJad2ysT2PqO8OpkiI3UTB/gUZwE5EaN16qVyQ6s/M7EgC/iaV/MnjdlvnuzA==
+ssh2@1.15.0:
+  version "1.15.0"
+  resolved "https://registry.yarnpkg.com/ssh2/-/ssh2-1.15.0.tgz#2f998455036a7f89e0df5847efb5421748d9871b"
+  integrity sha512-C0PHgX4h6lBxYx7hcXwu3QWdh4tg6tZZsTfXcdvc5caW/EMxaB4H9dWsl7qk+F7LAW762hp8VbXOX7x4xUYvEw==
   dependencies:
     asn1 "^0.2.6"
     bcrypt-pbkdf "^1.0.2"
   optionalDependencies:
-    cpu-features "~0.0.7"
-    nan "^2.17.0"
+    cpu-features "~0.0.9"
+    nan "^2.18.0"
 
-sshpk@^1.7.0:
-  version "1.17.0"
-  resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5"
-  integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==
+sshpk@^1.14.1, sshpk@^1.7.0:
+  version "1.18.0"
+  resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.18.0.tgz#1663e55cddf4d688b86a46b77f0d5fe363aba028"
+  integrity sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==
   dependencies:
     asn1 "~0.2.3"
     assert-plus "^1.0.0"
@@ -9383,11 +9618,6 @@ statuses@2.0.1:
   resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
   integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
 
-stealthy-require@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b"
-  integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==
-
 store2@^2.13.0:
   version "2.14.2"
   resolved "https://registry.yarnpkg.com/store2/-/store2-2.14.2.tgz#56138d200f9fe5f582ad63bc2704dbc0e4a45068"
@@ -9408,6 +9638,13 @@ stream-handlebars@~0.1.6:
     handlebars "^3.0.0"
     object-tools "^1.2.1"
 
+stream-length@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/stream-length/-/stream-length-1.0.2.tgz#8277f3cbee49a4daabcfdb4e2f4a9b5e9f2c9f00"
+  integrity sha512-aI+qKFiwoDV4rsXiS7WRoCt+v2RX1nUj17+KJC5r2gfh5xoSJIfP6Y3Do/HtvesFcTSWthIuJ3l1cvKQY/+nZg==
+  dependencies:
+    bluebird "^2.6.2"
+
 stream-via@^1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/stream-via/-/stream-via-1.0.4.tgz#8dccbb0ac909328eb8bc8e2a4bd3934afdaf606c"
@@ -9418,11 +9655,6 @@ stream-via@~0.1.0:
   resolved "https://registry.yarnpkg.com/stream-via/-/stream-via-0.1.1.tgz#0cee5df9c959fb1d3f4eda4819f289d5f9205afc"
   integrity sha512-1U7icavM/2dRDSevxnJRZfKBWrnhmtdCh0zQTThwYchL2YWjbwZb2PEngEj9HKjgyJ2oDipz6TLud/AU6BAIzQ==
 
-streamsearch@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764"
-  integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==
-
 string-tools@^0.1.4:
   version "0.1.8"
   resolved "https://registry.yarnpkg.com/string-tools/-/string-tools-0.1.8.tgz#70884e86a26ee5103a078bef67033d558d36e337"
@@ -9460,32 +9692,32 @@ string-width@^3.0.0, string-width@^3.1.0:
     is-fullwidth-code-point "^2.0.0"
     strip-ansi "^5.1.0"
 
-string.prototype.trim@^1.2.7:
-  version "1.2.7"
-  resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533"
-  integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==
+string.prototype.trim@^1.2.8:
+  version "1.2.8"
+  resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd"
+  integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==
   dependencies:
     call-bind "^1.0.2"
-    define-properties "^1.1.4"
-    es-abstract "^1.20.4"
+    define-properties "^1.2.0"
+    es-abstract "^1.22.1"
 
-string.prototype.trimend@^1.0.6:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533"
-  integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==
+string.prototype.trimend@^1.0.7:
+  version "1.0.7"
+  resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e"
+  integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==
   dependencies:
     call-bind "^1.0.2"
-    define-properties "^1.1.4"
-    es-abstract "^1.20.4"
+    define-properties "^1.2.0"
+    es-abstract "^1.22.1"
 
-string.prototype.trimstart@^1.0.6:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4"
-  integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==
+string.prototype.trimstart@^1.0.7:
+  version "1.0.7"
+  resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298"
+  integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==
   dependencies:
     call-bind "^1.0.2"
-    define-properties "^1.1.4"
-    es-abstract "^1.20.4"
+    define-properties "^1.2.0"
+    es-abstract "^1.22.1"
 
 string_decoder@^1.1.1:
   version "1.3.0"
@@ -9539,7 +9771,7 @@ strip-json-comments@~2.0.1:
   resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
   integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==
 
-strnum@^1.0.4, strnum@^1.0.5:
+strnum@^1.0.5:
   version "1.0.5"
   resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db"
   integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==
@@ -9583,7 +9815,7 @@ supports-preserve-symlinks-flag@^1.0.0:
   resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
   integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
 
-svg-captcha@*, svg-captcha@^1.4.0:
+svg-captcha@1.4.0, svg-captcha@^1.4.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/svg-captcha/-/svg-captcha-1.4.0.tgz#32ead3c6463936c218bb3bc9ed04fea4eeffe492"
   integrity sha512-/fkkhavXPE57zRRCjNqAP3txRCSncpMx3NnNZL7iEoyAtYwUjPhJxW6FQTQPG5UPEmCrbFoXS10C3YdJlW7PDg==
@@ -9595,10 +9827,10 @@ symbol-tree@^3.2.4:
   resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
   integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
 
-syslog@*:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/syslog/-/syslog-0.1.1.tgz#675d8210898e785fd14c831de2d9a6aec0a35cbd"
-  integrity sha512-bWIVJ/f4F3GweVvnwpCbahsuargMRIQjFbw3fK+8SFtvZldAcOf4gpviRawuVVHtq5HabxC39poHuZNdqAs2Aw==
+syslog@0.1.1-1:
+  version "0.1.1-1"
+  resolved "https://registry.yarnpkg.com/syslog/-/syslog-0.1.1-1.tgz#f69f74b0baf8a25c725af97977a18eb11927a5e1"
+  integrity sha512-7fn4sikkTRrc4kZk/i/ItCktnPD2qG+nKmgTVcuLr2VrY2V9adNhw9fN02HL6rTthwu2Og9Icr1GxZlaLp39Lg==
 
 table-layout@^0.3.0:
   version "0.3.0"
@@ -9629,9 +9861,9 @@ tar-stream@^2.2.0:
     readable-stream "^3.1.1"
 
 tar@^6.0.2, tar@^6.1.11, tar@^6.1.2:
-  version "6.1.15"
-  resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.15.tgz#c9738b0b98845a3b344d334b8fa3041aaba53a69"
-  integrity sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==
+  version "6.2.0"
+  resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.0.tgz#b14ce49a79cb1cd23bc9b016302dea5474493f73"
+  integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==
   dependencies:
     chownr "^2.0.0"
     fs-minipass "^2.0.0"
@@ -9640,10 +9872,10 @@ tar@^6.0.2, tar@^6.1.11, tar@^6.1.2:
     mkdirp "^1.0.3"
     yallist "^4.0.0"
 
-telegram@*:
-  version "2.17.10"
-  resolved "https://registry.yarnpkg.com/telegram/-/telegram-2.17.10.tgz#521e88f16d0a0dc4190cf7258f5adcabc0c2d1ec"
-  integrity sha512-BeWrH6jrTjtmZtGi63mM2UWwciOivqQknhRIysULVRQkDbo+MW4I2jI6d3sPM5m8Ge9mhjeKg1aVZf2qG4vh2Q==
+telegram@2.19.8:
+  version "2.19.8"
+  resolved "https://registry.yarnpkg.com/telegram/-/telegram-2.19.8.tgz#d6c0217e67e2cc9513e4904c033ecd4b296293f7"
+  integrity sha512-yaBRPILM0FSEbKKcnMR4Q463DpasAGOvUEcGrlW7xmYMAEntxIdoFLXrZnpNDaubncx6lc1M9cecMvlTkg6taQ==
   dependencies:
     "@cryptography/aes" "^0.1.1"
     async-mutex "^0.3.0"
@@ -9663,10 +9895,10 @@ telegram@*:
     bufferutil "^4.0.3"
     utf-8-validate "^5.0.5"
 
-telnyx@*:
-  version "1.23.0"
-  resolved "https://registry.yarnpkg.com/telnyx/-/telnyx-1.23.0.tgz#0d949a11f7c819b0d5ce8ae8c36b80bd02e351c8"
-  integrity sha512-hmXxXVyj+Fi+ips7KwmgUYQrzHCIyGo8bjm/B8tsCAJ7PZ0V3LO330CVOk0gPdlcZxIkITaXWB51swrbK09Wew==
+telnyx@1.25.5:
+  version "1.25.5"
+  resolved "https://registry.yarnpkg.com/telnyx/-/telnyx-1.25.5.tgz#f4140459fa296c32dfa1847b0c0e70c5e02ff3c3"
+  integrity sha512-Kcb1eq/Fm9T45j1JMdcoQP1GgJqVKbQldv0C26DhCrZX5e3+17OXyQbmgtSI6EYFQ4I3HSbCfXudwDRpGDOC7Q==
   dependencies:
     lodash.isplainobject "^4.0.6"
     qs "^6.6.0"
@@ -9805,14 +10037,6 @@ token-types@^5.0.1:
     "@tokenizer/token" "^0.3.0"
     ieee754 "^1.2.1"
 
-tough-cookie@^2.3.3, tough-cookie@~2.5.0:
-  version "2.5.0"
-  resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
-  integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
-  dependencies:
-    psl "^1.1.28"
-    punycode "^2.1.1"
-
 tough-cookie@^4.1.2:
   version "4.1.3"
   resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf"
@@ -9823,13 +10047,13 @@ tough-cookie@^4.1.2:
     universalify "^0.2.0"
     url-parse "^1.5.3"
 
-tough-cookie@~2.4.3:
-  version "2.4.3"
-  resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781"
-  integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==
+tough-cookie@~2.5.0:
+  version "2.5.0"
+  resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
+  integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
   dependencies:
-    psl "^1.1.24"
-    punycode "^1.4.1"
+    psl "^1.1.28"
+    punycode "^2.1.1"
 
 tr46@^3.0.0:
   version "3.0.0"
@@ -9856,9 +10080,9 @@ trim-right@^1.0.1:
   integrity sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==
 
 triple-beam@^1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9"
-  integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.4.1.tgz#6fde70271dc6e5d73ca0c3b24e2d92afb7441984"
+  integrity sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==
 
 ts-custom-error@^3.2.0:
   version "3.3.1"
@@ -9875,10 +10099,10 @@ tslib@^1.11.1:
   resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
   integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
 
-tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0:
-  version "2.5.3"
-  resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913"
-  integrity sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==
+tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.2:
+  version "2.6.2"
+  resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
+  integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
 
 tsscmp@1.0.6:
   version "1.0.6"
@@ -9897,7 +10121,7 @@ tunnel-agent@~0.3.0:
   resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.3.0.tgz#ad681b68f5321ad2827c4cfb1b7d5df2cfe942ee"
   integrity sha512-jlGqHGoKzyyjhwv/c9omAgohntThMcGtw8RV/RDLlkbbc08kni/akVxO62N8HaXMVbVsK1NCnpSK3N2xCt22ww==
 
-tv4@^1.2.7:
+tv4@^1.3.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/tv4/-/tv4-1.3.0.tgz#d020c846fadd50c855abb25ebaecc68fc10f7963"
   integrity sha512-afizzfpJgvPr+eDkREK4MxJ/+r8nEEHcmitwgnPUqpaP+FpwQyadnxNoSACbgc/b1LsZYtODGoPiFxQrgJgjvw==
@@ -9912,13 +10136,13 @@ tweetnacl@^1.0.1:
   resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596"
   integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==
 
-twilio@*:
-  version "4.12.0"
-  resolved "https://registry.yarnpkg.com/twilio/-/twilio-4.12.0.tgz#7775936c0309e07b842806c5a7837b55ba25d7f3"
-  integrity sha512-h04AQTL6Kcvvmj2ZmdQUNPmXvjaAHf123d6/v+XUBKQ66oifRklnGOTrBLF6jbWAKTfeDrL0KEH2MnAC6zhkZg==
+twilio@4.19.0:
+  version "4.19.0"
+  resolved "https://registry.yarnpkg.com/twilio/-/twilio-4.19.0.tgz#b0cc25eb397490ed3e41f031ab5c79697a9065ee"
+  integrity sha512-4tM1LNM5LeUvnko4kIqIreY6vmjIo5Ag5jMEhjTDPj+GES82MnkfSkJv8N1k5/ZmeSvIdk5hjI87GB/DpDDePQ==
   dependencies:
     axios "^0.26.1"
-    dayjs "^1.8.29"
+    dayjs "^1.11.9"
     https-proxy-agent "^5.0.0"
     jsonwebtoken "^9.0.0"
     qs "^6.9.4"
@@ -9944,6 +10168,36 @@ type@^2.7.2:
   resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0"
   integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==
 
+typed-array-buffer@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60"
+  integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==
+  dependencies:
+    call-bind "^1.0.2"
+    get-intrinsic "^1.2.1"
+    is-typed-array "^1.1.10"
+
+typed-array-byte-length@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0"
+  integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==
+  dependencies:
+    call-bind "^1.0.2"
+    for-each "^0.3.3"
+    has-proto "^1.0.1"
+    is-typed-array "^1.1.10"
+
+typed-array-byte-offset@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b"
+  integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==
+  dependencies:
+    available-typed-arrays "^1.0.5"
+    call-bind "^1.0.2"
+    for-each "^0.3.3"
+    has-proto "^1.0.1"
+    is-typed-array "^1.1.10"
+
 typed-array-length@^1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb"
@@ -9965,6 +10219,11 @@ typical@^2.1, typical@^2.2, typical@^2.3.0, typical@^2.4.2, typical@^2.5.0, typi
   resolved "https://registry.yarnpkg.com/typical/-/typical-2.6.1.tgz#5c080e5d661cbbe38259d2e70a3c7253e873881d"
   integrity sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==
 
+ua-parser-js@1.0.37:
+  version "1.0.37"
+  resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.37.tgz#b5dc7b163a5c1f0c510b08446aed4da92c46373f"
+  integrity sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==
+
 uglify-js@^2.6:
   version "2.8.29"
   resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
@@ -10030,12 +10289,17 @@ underscore@~1.8.3:
   resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022"
   integrity sha512-5WsVTFcH1ut/kkhAaHf4PVgI8c7++GiVcpCGxPouI6ZVjsqPnSDf8h/8HtVqc0t4fzRXwnMK70EcZeAs3PIddg==
 
+undici-types@~5.26.4:
+  version "5.26.5"
+  resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
+  integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
+
 undici@^5.11.0, undici@^5.22.0:
-  version "5.22.1"
-  resolved "https://registry.yarnpkg.com/undici/-/undici-5.22.1.tgz#877d512effef2ac8be65e695f3586922e1a57d7b"
-  integrity sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==
+  version "5.28.2"
+  resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.2.tgz#fea200eac65fc7ecaff80a023d1a0543423b4c91"
+  integrity sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==
   dependencies:
-    busboy "^1.6.0"
+    "@fastify/busboy" "^2.0.0"
 
 unidecode@^0.1.8:
   version "0.1.8"
@@ -10084,10 +10348,10 @@ unset-value@^1.0.0:
     has-value "^0.3.1"
     isobject "^3.0.0"
 
-update-browserslist-db@^1.0.11:
-  version "1.0.11"
-  resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940"
-  integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==
+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==
   dependencies:
     escalade "^3.1.1"
     picocolors "^1.0.0"
@@ -10191,7 +10455,7 @@ utils-igor@^2.0.0:
   dependencies:
     minify-js "0.0.2"
 
-utils-merge@1.0.1, utils-merge@1.x.x:
+utils-merge@1.0.1, utils-merge@1.x.x, utils-merge@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
   integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==
@@ -10207,9 +10471,9 @@ uuid@^8.3.2:
   integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
 
 uuid@^9.0.0:
-  version "9.0.0"
-  resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5"
-  integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==
+  version "9.0.1"
+  resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30"
+  integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==
 
 v8flags@^2.1.1:
   version "2.1.1"
@@ -10280,33 +10544,28 @@ weak-daemon@1.0.3:
   resolved "https://registry.yarnpkg.com/weak-daemon/-/weak-daemon-1.0.3.tgz#d922b7c0dfb8f6bf027c463ea875584d2b085f19"
   integrity sha512-9OLYp5qQSxpnTIyuA1zJ7at3DV2DSBcbdXduC/3QFPeYjF30Lh1nfBrG+VLf4QUvZPz2lXFPu08oIRzWQfucVQ==
 
-web-push@*:
-  version "3.6.2"
-  resolved "https://registry.yarnpkg.com/web-push/-/web-push-3.6.2.tgz#15f3d648ce747f56a527ffa8bcacdfdd96fa1610"
-  integrity sha512-mqDSr+YAiee6URZwcJ2Qx2RPD7fo9hC/Ryj4rWN1TsvSDt29AEFuZ5/h5JjH+AgG4qk47t6JkRtfh8Dx4Kok/Q==
+web-push@3.6.6:
+  version "3.6.6"
+  resolved "https://registry.yarnpkg.com/web-push/-/web-push-3.6.6.tgz#592facb26116187136b0d543768ef85675791ac8"
+  integrity sha512-SyteEck9fiCskNmPxs/GFhJsZrIyLfRvjWNmcUwULLJyCU0f1oxo2sWTokXA1mDAq9vxk4e4gVcb/8agq73NkQ==
   dependencies:
     asn1.js "^5.3.0"
     http_ece "1.1.0"
-    https-proxy-agent "^5.0.0"
+    https-proxy-agent "^7.0.0"
     jws "^4.0.0"
     minimist "^1.2.5"
 
-web-streams-polyfill@^3.0.3:
-  version "3.2.1"
-  resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6"
-  integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==
-
-webdav@*:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/webdav/-/webdav-5.1.0.tgz#959cb5c34379cd0202adcce58c8a71266d9c2d35"
-  integrity sha512-66OP2/PkVe3tkVy5wO/XsGebKuWhn2ebywA7a11ViHNls8Y6pgop6hU9j7god+GbZv/zVQeTs9w3ZS7JhHhE7g==
+webdav@4.11.3:
+  version "4.11.3"
+  resolved "https://registry.yarnpkg.com/webdav/-/webdav-4.11.3.tgz#c8bf9b5ed1799d432d58958433925b0fa91db08e"
+  integrity sha512-NIuREBXYo5xb+zB4zy502snynbhugWjepg5Oke0ByEb7J/Ofmbk+JgFYM+sZdnKG3+XQ87rictDIF+SHUJkwlg==
   dependencies:
-    "@buttercup/fetch" "^0.1.1"
+    axios "^0.27.2"
     base-64 "^1.0.0"
     byte-length "^1.0.2"
-    fast-xml-parser "^3.19.0"
+    fast-xml-parser "^4.2.4"
     he "^1.2.0"
-    hot-patcher "^2.0.0"
+    hot-patcher "^1.0.0"
     layerr "^0.1.2"
     md5 "^2.3.0"
     minimatch "^5.1.0"
@@ -10345,9 +10604,9 @@ whatwg-encoding@^2.0.0:
     iconv-lite "0.6.3"
 
 whatwg-fetch@^3.4.1:
-  version "3.6.2"
-  resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c"
-  integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==
+  version "3.6.20"
+  resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz#580ce6d791facec91d37c72890995a0b48d31c70"
+  integrity sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==
 
 whatwg-mimetype@^3.0.0:
   version "3.0.0"
@@ -10399,17 +10658,16 @@ which-module@^2.0.0:
   resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409"
   integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==
 
-which-typed-array@^1.1.9:
-  version "1.1.9"
-  resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6"
-  integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==
+which-typed-array@^1.1.11, which-typed-array@^1.1.13:
+  version "1.1.13"
+  resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36"
+  integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==
   dependencies:
     available-typed-arrays "^1.0.5"
-    call-bind "^1.0.2"
+    call-bind "^1.0.4"
     for-each "^0.3.3"
     gopd "^1.0.1"
     has-tostringtag "^1.0.0"
-    is-typed-array "^1.1.10"
 
 which@^1.2.14, which@^1.2.9, which@^1.3.0:
   version "1.3.1"
@@ -10450,20 +10708,20 @@ window-size@^0.2.0:
   integrity sha512-UD7d8HFA2+PZsbKyaOCEy8gMh1oDtHgJh1LfgjQ4zVXmYjAT/kvz3PueITKuqDiIXQe7yzpPnxX3lNc+AhQMyw==
 
 winston-transport@^4.5.0:
-  version "4.5.0"
-  resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.5.0.tgz#6e7b0dd04d393171ed5e4e4905db265f7ab384fa"
-  integrity sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==
+  version "4.6.0"
+  resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.6.0.tgz#f1c1a665ad1b366df72199e27892721832a19e1b"
+  integrity sha512-wbBA9PbPAHxKiygo7ub7BYRiKxms0tpfU2ljtWzb3SjRjv5yl6Ozuy/TkXf00HTAt+Uylo3gSkNwzc4ME0wiIg==
   dependencies:
     logform "^2.3.2"
     readable-stream "^3.6.0"
     triple-beam "^1.3.0"
 
 winston@^3.3.3:
-  version "3.9.0"
-  resolved "https://registry.yarnpkg.com/winston/-/winston-3.9.0.tgz#2bbdeb8167a75fac6d9a0c6d002890cd908016c2"
-  integrity sha512-jW51iW/X95BCW6MMtZWr2jKQBP4hV5bIDq9QrIjfDk6Q9QuxvTKEAlpUNAzP+HYHFFCeENhph16s0zEunu4uuQ==
+  version "3.11.0"
+  resolved "https://registry.yarnpkg.com/winston/-/winston-3.11.0.tgz#2d50b0a695a2758bb1c95279f0a88e858163ed91"
+  integrity sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==
   dependencies:
-    "@colors/colors" "1.5.0"
+    "@colors/colors" "^1.6.0"
     "@dabh/diagnostics" "^2.0.2"
     async "^3.2.3"
     is-stream "^2.0.0"
@@ -10548,7 +10806,12 @@ write-file-atomic@^2.4.2:
     imurmurhash "^0.1.4"
     signal-exit "^3.0.2"
 
-ws@5.2.3, ws@^5.2.0:
+ws@8.14.2:
+  version "8.14.2"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f"
+  integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==
+
+ws@^5.2.0:
   version "5.2.3"
   resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.3.tgz#05541053414921bc29c63bee14b8b0dd50b07b3d"
   integrity sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==
@@ -10561,9 +10824,9 @@ ws@^7.0.0:
   integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==
 
 ws@^8.13.0, ws@^8.4.0, ws@^8.9.0:
-  version "8.13.0"
-  resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0"
-  integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==
+  version "8.16.0"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4"
+  integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==
 
 xml-crypto@^2.1.3:
   version "2.1.5"
@@ -10603,6 +10866,11 @@ xml2js@^0.5.0:
     sax ">=0.6.0"
     xmlbuilder "~11.0.0"
 
+xml@0.0.12:
+  version "0.0.12"
+  resolved "https://registry.yarnpkg.com/xml/-/xml-0.0.12.tgz#f08b347109912be00285785f46f15ad8e50a5f67"
+  integrity sha512-vXz2nTtS+bQYemYFzbTxjlmdMOmIhmP+frdnJi3M2Ul/ezrwcW9IYwiwqvecY3PtHNXGKBDrA+DNAEky0zY7Xg==
+
 xmlbuilder@^13.0.2:
   version "13.0.2"
   resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-13.0.2.tgz#02ae33614b6a047d1c32b5389c1fdacb2bce47a7"
@@ -10742,7 +11010,7 @@ yargs@~3.10.0:
     decamelize "^1.0.0"
     window-size "0.1.0"
 
-yauzl@^2.10.0:
+yauzl@2.10.0:
   version "2.10.0"
   resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
   integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==
@@ -10750,7 +11018,7 @@ yauzl@^2.10.0:
     buffer-crc32 "~0.2.3"
     fd-slicer "~1.1.0"
 
-yubikeyotp@*:
+yubikeyotp@0.2.0:
   version "0.2.0"
   resolved "https://registry.yarnpkg.com/yubikeyotp/-/yubikeyotp-0.2.0.tgz#8bdc51122cd00ed8c919b9c9caeba851b272aa7d"
   integrity sha512-sWfjjYm95OVmKVGAZgGcIpY8D8f0s/dOQW/keE509ppfUizKpMZc8lL5ny/ywe5yihRu3/ZeYLcD7V3CQi2n4Q==
@@ -10758,15 +11026,15 @@ yubikeyotp@*:
     request "*"
 
 zip-stream@^4.1.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.0.tgz#51dd326571544e36aa3f756430b313576dc8fc79"
-  integrity sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.1.tgz#1337fe974dbaffd2fa9a1ba09662a66932bd7135"
+  integrity sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==
   dependencies:
-    archiver-utils "^2.1.0"
-    compress-commons "^4.1.0"
+    archiver-utils "^3.0.4"
+    compress-commons "^4.1.2"
     readable-stream "^3.6.0"
 
-zulip@*:
+zulip@0.1.0:
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/zulip/-/zulip-0.1.0.tgz#62f52b245f4749bac59258592db4bae978b44720"
   integrity sha512-zsnsxRN0tcR3Qc6GEPg3t2ZrCoLtERE5VqdjHWxTH7Uq+A2hPSfxWEPKbsntpXHgsmywfDMo+P+IdeOcVdX6HA==
diff --git a/pkgs/tools/admin/okta-aws-cli/default.nix b/pkgs/tools/admin/okta-aws-cli/default.nix
index 2e86adb1bdb6..805683df8d51 100644
--- a/pkgs/tools/admin/okta-aws-cli/default.nix
+++ b/pkgs/tools/admin/okta-aws-cli/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "okta-aws-cli";
-  version = "1.2.2";
+  version = "2.0.1";
 
   subPackages = [ "cmd/okta-aws-cli" ];
 
@@ -10,10 +10,10 @@ buildGoModule rec {
     owner  = "okta";
     repo   = "okta-aws-cli";
     rev    = "v${version}";
-    sha256 = "sha256-GF+2xPoc9dztB7w6pOLwiZ6D9b4P1YEJrZxL33j4aew=";
+    sha256 = "sha256-A49TpwvF7zQFCqffLeb1FOxbRwe4yhKSGs7YKNfpNSY=";
   };
 
-  vendorHash = "sha256-AJmQxMRj602yodzIdhZV+R22KxnEIbT9iSz/5G5T6r8=";
+  vendorHash = "sha256-SjABVO6tHYRc/1pYjOqfZP+NfnK1/WnAcY5NQ4hMssE=";
 
   ldflags = [ "-s" "-w" ];
 
diff --git a/pkgs/tools/admin/qovery-cli/default.nix b/pkgs/tools/admin/qovery-cli/default.nix
index a84c916a1408..05db6491b0d6 100644
--- a/pkgs/tools/admin/qovery-cli/default.nix
+++ b/pkgs/tools/admin/qovery-cli/default.nix
@@ -8,13 +8,13 @@
 
 buildGoModule rec {
   pname = "qovery-cli";
-  version = "0.81.0";
+  version = "0.82.0";
 
   src = fetchFromGitHub {
     owner = "Qovery";
     repo = "qovery-cli";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Me2UIyBJ/TFP6M7zqQvJ/NDYoiOWop8Lkh8e1KbD9eU=";
+    hash = "sha256-jdYCJU+oQtfG79iJEvnbrDZUIcV06b1SNQv3d6aW+Bo=";
   };
 
   vendorHash = "sha256-IDKJaWnQsOtghpCh7UyO6RzWgSZS0S0jdF5hVV7xVbs=";
diff --git a/pkgs/tools/admin/salt/default.nix b/pkgs/tools/admin/salt/default.nix
index e88f9aee4038..a08e4c5a812a 100644
--- a/pkgs/tools/admin/salt/default.nix
+++ b/pkgs/tools/admin/salt/default.nix
@@ -11,12 +11,12 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "salt";
-  version = "3006.4";
+  version = "3006.6";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-0JeIXDPCz6oMzcYnylcNZ2kMjQN9x4Ab6IeIvMoQNq4=";
+    hash = "sha256-X6tojYa3Dh6ExRtMqlZfNnGVBQaBPDcp1EQIzC9a+8M=";
   };
 
   patches = [
diff --git a/pkgs/tools/admin/simplotask/default.nix b/pkgs/tools/admin/simplotask/default.nix
index f8a4e4462c16..6f8c96c2eb72 100644
--- a/pkgs/tools/admin/simplotask/default.nix
+++ b/pkgs/tools/admin/simplotask/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "simplotask";
-  version = "1.12.0";
+  version = "1.13.0";
 
   src = fetchFromGitHub {
     owner = "umputun";
     repo = "spot";
     rev = "v${version}";
-    hash = "sha256-bbn6RLkAAlQeHsaMmb34FFrhaYvouf8rSOJpGdYE7Y4=";
+    hash = "sha256-PuyM2WhBww6SqlI5VptTNNS61401c1R0DOsHmOcfLCI=";
   };
 
   vendorHash = null;
diff --git a/pkgs/tools/admin/stripe-cli/default.nix b/pkgs/tools/admin/stripe-cli/default.nix
index 3dcf7d855715..9adb2d326e0b 100644
--- a/pkgs/tools/admin/stripe-cli/default.nix
+++ b/pkgs/tools/admin/stripe-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "stripe-cli";
-  version = "1.19.1";
+  version = "1.19.2";
 
   src = fetchFromGitHub {
     owner = "stripe";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-4xyJZKFkijgemNwGC8pi7zF9MgtwgSKIvDRZ8jJ2h8o=";
+    hash = "sha256-ohxTEHm5qGFQ1mJNL/Fh5qNc/De1TUtsEcuOIaJvGLc=";
   };
   vendorHash = "sha256-DYA6cu2KzEBZ4wsT7wjcdY1endQQOZlj2aOwu6iGLew=";
 
diff --git a/pkgs/tools/admin/syft/default.nix b/pkgs/tools/admin/syft/default.nix
index 438a09567f5d..5cf4bb92fee3 100644
--- a/pkgs/tools/admin/syft/default.nix
+++ b/pkgs/tools/admin/syft/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "syft";
-  version = "0.100.0";
+  version = "0.103.1";
 
   src = fetchFromGitHub {
     owner = "anchore";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-NF+Cjf3EZ9nNi10ckEuL6CnUJZssSuv3cq95QIoj+e8=";
+    hash = "sha256-b50+O9Tx9CgXDW7JuCyo//ye7T0puwq6jryH6bQ4Ytw=";
     # 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;
@@ -22,7 +22,7 @@ buildGoModule rec {
   };
   # hash mismatch with darwin
   proxyVendor = true;
-  vendorHash = "sha256-C6I9NGIt++FesC86NgZc2jrPHQvS5Xmgdc/tlvPJzMo=";
+  vendorHash = "sha256-CCkAxMg3J+F6xhKiB7iMCn5CNQ0IU0EW4cNn3b4eRWY=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/admin/trivy/default.nix b/pkgs/tools/admin/trivy/default.nix
index c3a8a71947af..9f077c1fd853 100644
--- a/pkgs/tools/admin/trivy/default.nix
+++ b/pkgs/tools/admin/trivy/default.nix
@@ -10,19 +10,19 @@
 
 buildGoModule rec {
   pname = "trivy";
-  version = "0.48.3";
+  version = "0.49.0";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-zWv/4dDzWfR9qbbBaMaHFMId1OVhcOja7lTy3gcm77w=";
+    hash = "sha256-Kx+84kI/8KOOz2p7xGvjOSyMa1Co9u5c0lWOtfi8SVE=";
   };
 
   # Hash mismatch on across Linux and Darwin
   proxyVendor = true;
 
-  vendorHash = "sha256-EOu4VHfrQbIP1vSWF3UkZDMyEIcbjQKjzdch9c6cVg4=";
+  vendorHash = "sha256-Ldv71C4d9/IO1u+eDKKTHc0pjY8lfnIjQZ57IMWv7Qk=";
 
   subPackages = [ "cmd/trivy" ];
 
diff --git a/pkgs/tools/admin/wander/default.nix b/pkgs/tools/admin/wander/default.nix
index c3b086806ca1..14b89311df1a 100644
--- a/pkgs/tools/admin/wander/default.nix
+++ b/pkgs/tools/admin/wander/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "wander";
-  version = "1.0.0";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "robinovitch61";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-zz9DqRrylCbUCSBl4wspb8BYfmCyQhMmmYwdsbTExbo=";
+    sha256 = "sha256-7/5NcrS5VR3APhv5LEpd4U0+E4PwM9cU9bb1q6UDfoI=";
   };
 
   vendorHash = "sha256-0S8tzP5yNUrH6fp+v7nbUPTMWzYXyGw+ZNcXkSN+tWY=";
diff --git a/pkgs/tools/archivers/xarchiver/default.nix b/pkgs/tools/archivers/xarchiver/default.nix
index 1de4e91ead73..9c0f4685fa0f 100644
--- a/pkgs/tools/archivers/xarchiver/default.nix
+++ b/pkgs/tools/archivers/xarchiver/default.nix
@@ -2,14 +2,14 @@
   coreutils, zip, unzip, p7zip, unar, gnutar, bzip2, gzip, lhasa, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
-  version = "0.5.4.21";
+  version = "0.5.4.22";
   pname = "xarchiver";
 
   src = fetchFromGitHub {
     owner = "ib";
     repo = "xarchiver";
     rev = version;
-    sha256 = "sha256-pYrF9fyEbay+iboL9EuoTETTI3RTcgv3yeVtAWvAe1Q=";
+    sha256 = "sha256-wB1l1OcLK9rh6cpcDprXZBXLXRSwBFV9aueBI57kjJI=";
   };
 
   nativeBuildInputs = [ intltool pkg-config makeWrapper wrapGAppsHook ];
diff --git a/pkgs/tools/audio/abcmidi/default.nix b/pkgs/tools/audio/abcmidi/default.nix
index 5154fccc81c0..f4d51e481583 100644
--- a/pkgs/tools/audio/abcmidi/default.nix
+++ b/pkgs/tools/audio/abcmidi/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "abcMIDI";
-  version = "2023.12.28";
+  version = "2024.01.04";
 
   src = fetchzip {
     url = "https://ifdo.ca/~seymour/runabc/${pname}-${version}.zip";
-    hash = "sha256-HOwHmn67ZT2h0MKV1wxv1pINUv/5S4AgafGBM1PEBzY=";
+    hash = "sha256-IsQ+lAmQQGitKRlQUc7PgRKgwlEgYsR5q2XHp9k7tEM=";
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/audio/asap/default.nix b/pkgs/tools/audio/asap/default.nix
index ccdb5ed93039..3eb2e8ea7ca9 100644
--- a/pkgs/tools/audio/asap/default.nix
+++ b/pkgs/tools/audio/asap/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "asap";
-  version = "6.0.1";
+  version = "6.0.2";
 
   src = fetchzip {
     url = "mirror://sourceforge/project/asap/asap/${version}/asap-${version}.tar.gz";
-    sha256 = "sha256-nTnnRDYOkTmXfXPS1XIHaC2LHFfZz+gVInQ3satuyDM=";
+    sha256 = "sha256-hVZODnm2GxSUKglOyQ8uObeKkAKrupPTftEP0dck9a8=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/tools/audio/audiowaveform/default.nix b/pkgs/tools/audio/audiowaveform/default.nix
index a5fff36322e4..8f194df4d936 100644
--- a/pkgs/tools/audio/audiowaveform/default.nix
+++ b/pkgs/tools/audio/audiowaveform/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "audiowaveform";
-  version = "1.9.1";
+  version = "1.10.1";
 
   src = fetchFromGitHub {
     owner = "bbc";
     repo = "audiowaveform";
     rev = version;
-    sha256 = "sha256-qnidR+V2CwDnztUv73k72lVyH+B1yfb3c7BLus4P6Wk=";
+    sha256 = "sha256-FcQq0xWs3jH2MfhFQ5r5Vaz8B3akBHBSg8Z/k9An/Wg=";
   };
 
   nativeBuildInputs = [ cmake gtest ];
diff --git a/pkgs/tools/audio/beets/builtin-plugins.nix b/pkgs/tools/audio/beets/builtin-plugins.nix
index e3bc10210441..c6ae24dc6906 100644
--- a/pkgs/tools/audio/beets/builtin-plugins.nix
+++ b/pkgs/tools/audio/beets/builtin-plugins.nix
@@ -9,11 +9,13 @@
 , mp3gain
 , mp3val
 , python3Packages
+, version
 , ...
 }: {
   absubmit = {
     enable = lib.elem stdenv.hostPlatform.system essentia-extractor.meta.platforms;
     wrapperBins = [ essentia-extractor ];
+    testPaths = [ ];
   };
   acousticbrainz.propagatedBuildInputs = [ python3Packages.requests ];
   albumtypes = { };
@@ -122,4 +124,16 @@
   unimported.testPaths = [ ];
   web.propagatedBuildInputs = [ python3Packages.flask ];
   zero = { };
+  # NOTE: Condition can be removed once stable beets updates
+} // lib.optionalAttrs ((lib.versions.majorMinor version) != "1.6") {
+  limit = { };
+  substitute = {
+    testPaths = [ ];
+  };
+  advancedrewrite = {
+    testPaths = [ ];
+  };
+  autobpm = {
+    testPaths = [ ];
+  };
 }
diff --git a/pkgs/tools/audio/beets/common.nix b/pkgs/tools/audio/beets/common.nix
index d4e589f098e4..fb8b6be0ed8a 100644
--- a/pkgs/tools/audio/beets/common.nix
+++ b/pkgs/tools/audio/beets/common.nix
@@ -36,7 +36,21 @@
 let
   inherit (lib) attrNames attrValues concatMap;
 
-  mkPlugin = { name, enable ? !disableAllPlugins, builtin ? false, propagatedBuildInputs ? [ ], testPaths ? [ "test/test_${name}.py" ], wrapperBins ? [ ] }: {
+  mkPlugin = { name
+  , enable ? !disableAllPlugins
+  , builtin ? false
+  , propagatedBuildInputs ? [ ]
+  , testPaths ? [
+    # NOTE: This conditional can be removed when beets-stable is updated and
+    # the default plugins test path is changed
+    (if (lib.versions.majorMinor version) == "1.6" then
+      "test/test_${name}.py"
+    else
+      "test/plugins/test_${name}.py"
+    )
+  ]
+  , wrapperBins ? [ ]
+  }: {
     inherit name enable builtin propagatedBuildInputs testPaths wrapperBins;
   };
 
diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix
index ba468895cc41..391974c4a4fd 100644
--- a/pkgs/tools/audio/beets/default.nix
+++ b/pkgs/tools/audio/beets/default.nix
@@ -22,6 +22,8 @@ lib.makeExtensible (self: {
 
   beets-stable = callPackage ./common.nix rec {
     inherit python3Packages;
+    # NOTE: ./builtin-plugins.nix and ./common.nix can have some conditionals
+    # be removed when stable version updates
     version = "1.6.0";
     src = fetchFromGitHub {
       owner = "beetbox";
diff --git a/pkgs/tools/audio/kaldi/default.nix b/pkgs/tools/audio/kaldi/default.nix
index a13238c0143e..e841b1291013 100644
--- a/pkgs/tools/audio/kaldi/default.nix
+++ b/pkgs/tools/audio/kaldi/default.nix
@@ -19,13 +19,13 @@
 assert blas.implementation == "openblas" && lapack.implementation == "openblas";
 stdenv.mkDerivation (finalAttrs: {
   pname = "kaldi";
-  version = "unstable-2023-11-13";
+  version = "unstable-2024-01-31";
 
   src = fetchFromGitHub {
     owner = "kaldi-asr";
     repo = "kaldi";
-    rev = "21ae411fd46282726d893e53c05fef5baea64fef";
-    sha256 = "sha256-oPP5znyWI9mYHpwLqHu5aiz5DOIZLcTbgaLiBjFiwrg=";
+    rev = "8c451e28582f5d91f84ea3d64bb76c794c3b1683";
+    sha256 = "sha256-iW/2gDZ/ib0M+bfWtZ9XuMWXMwTGoKCRLVl2lHLNh6c=";
   };
 
   cmakeFlags = [
diff --git a/pkgs/tools/audio/patray/default.nix b/pkgs/tools/audio/patray/default.nix
index e6800d943725..90c8719b48b3 100644
--- a/pkgs/tools/audio/patray/default.nix
+++ b/pkgs/tools/audio/patray/default.nix
@@ -6,11 +6,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "patray";
-  version = "0.1.1";
+  version = "0.1.2";
 
   src = fetchPypi {
     inherit version pname;
-    sha256 = "0vaapn2p4257m1d5nbnwnh252b7lhl00560gr9pqh2b7xqm1bh6g";
+    sha256 = "sha256-O8CBUexL2V1qI7bB/Lns3yjUvFOpC6spd/6asXa5+pw=";
   };
 
   patchPhase = ''
diff --git a/pkgs/tools/audio/tts/default.nix b/pkgs/tools/audio/tts/default.nix
index 48c936ca632f..d761e4605190 100644
--- a/pkgs/tools/audio/tts/default.nix
+++ b/pkgs/tools/audio/tts/default.nix
@@ -128,7 +128,7 @@ python.pkgs.buildPythonApplication rec {
 
     for file in $(grep -rl 'python TTS/bin' tests); do
       substituteInPlace "$file" \
-        --replace "python TTS/bin" "${python.interpreter} $out/lib/${python.libPrefix}/site-packages/TTS/bin"
+        --replace "python TTS/bin" "${python.interpreter} $out/${python.sitePackages}/TTS/bin"
     done
   '';
 
diff --git a/pkgs/tools/audio/video2midi/default.nix b/pkgs/tools/audio/video2midi/default.nix
index 3d8661da3cab..ca7e2ec45abe 100644
--- a/pkgs/tools/audio/video2midi/default.nix
+++ b/pkgs/tools/audio/video2midi/default.nix
@@ -8,15 +8,15 @@ let
   });
 in pythonPackages.buildPythonApplication rec {
   pname = "video2midi";
-  version = "0.4.6.5";
+  version = "0.4.7.2";
 
   format = "other";
 
   src = fetchFromGitHub {
     owner = "svsdval";
     repo = pname;
-    rev = version;
-    sha256 = "0qzrxqhsxn0h71nfrsi9g78hx3pqm3b8sr6fjq01k4k6dd2nwfam";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-lM3SBgGUW5MTUtsywy57fBiHEg58a8Fcpqb+EcRaYQ4=";
   };
 
   propagatedBuildInputs = with pythonPackages; [ opencv4_ midiutil pygame pyopengl ];
diff --git a/pkgs/tools/backup/gphotos-sync/default.nix b/pkgs/tools/backup/gphotos-sync/default.nix
index 74c442c09583..9fefd79c3c62 100644
--- a/pkgs/tools/backup/gphotos-sync/default.nix
+++ b/pkgs/tools/backup/gphotos-sync/default.nix
@@ -5,41 +5,26 @@
 }:
 python3.pkgs.buildPythonApplication rec {
   pname = "gphotos-sync";
-  version = "3.1.2";
+  version = "3.2.1";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "gilesknap";
     repo = "gphotos-sync";
     rev = version;
-    hash = "sha256-lLw450Rk7tIENFTZWHoinkhv3VtctDv18NKxhox+NgI=";
+    hash = "sha256-iTqD/oUQqC7Fju8SEPkSZX7FC9tE4eRCewiJR8STmEw=";
   };
 
   patches = [
     ./skip-network-tests.patch
   ];
 
-  # Consider fixing this upstream by following up on:
-  # https://github.com/gilesknap/gphotos-sync/issues/441
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace "setuptools<57" "setuptools" \
-      --replace "wheel==0.33.1" "wheel"
-  '';
-
   nativeBuildInputs = with python3.pkgs; [
-    pythonRelaxDepsHook
     setuptools
     setuptools-scm
     wheel
   ];
 
-  pythonRelaxDeps = [
-    "psutil"
-    "exif"
-    "pyyaml"
-  ];
-
   propagatedBuildInputs = with python3.pkgs; [
     appdirs
     attrs
@@ -63,9 +48,8 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   preCheck = ''
+    export PY_IGNORE_IMPORTMISMATCH=1
     export HOME=$(mktemp -d)
-    substituteInPlace setup.cfg \
-      --replace "--cov=gphotos_sync --cov-report term --cov-report xml:cov.xml" ""
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/backup/gyb/default.nix b/pkgs/tools/backup/gyb/default.nix
index 260ca6eafcd8..fedf02a9b7e6 100644
--- a/pkgs/tools/backup/gyb/default.nix
+++ b/pkgs/tools/backup/gyb/default.nix
@@ -6,14 +6,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "gyb";
-  version = "1.74";
+  version = "1.80";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "GAM-team";
     repo = "got-your-back";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-JUI9BIDg7Z6z5ZtwBMsgTbYXp9w0jd1DKFAa1XjeEtQ=";
+    sha256 = "sha256-4xElzhf9R6qnzr4oyZktQy/ym2vEjR9MrHnLYxBiAOg=";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/tools/backup/monolith/default.nix b/pkgs/tools/backup/monolith/default.nix
index d89ad0d1dc10..10859512ef80 100644
--- a/pkgs/tools/backup/monolith/default.nix
+++ b/pkgs/tools/backup/monolith/default.nix
@@ -5,24 +5,25 @@
 , openssl
 , libiconv
 , Security
+, SystemConfiguration
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "monolith";
-  version = "2.7.0";
+  version = "2.8.1";
 
   src = fetchFromGitHub {
     owner = "Y2Z";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-pljMWAfmDQUxQEyFGVhXqLjRq6P7D+YUB/e1h66WnDE=";
+    sha256 = "sha256-qMB4Tok0tYAqj8r9LEkjhBV5ko+hwagFS7MsL8AYJnc=";
   };
 
-  cargoSha256 = "sha256-kFDyjiupjN1cuhzE16v6JP/yyXdtwL3srZVtSimnahA=";
+  cargoHash = "sha256-FeD0+s79orFDUVsb205W0pdXgDI+p1UrH3GIfKwUqDQ=";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ pkg-config ];
   buildInputs = lib.optionals stdenv.isLinux [ openssl ]
-    ++ lib.optionals stdenv.isDarwin [ libiconv Security ];
+    ++ lib.optionals stdenv.isDarwin [ libiconv Security SystemConfiguration ];
 
   checkFlagsArray = [ "--skip=tests::cli" ];
 
diff --git a/pkgs/tools/backup/pgbackrest/default.nix b/pkgs/tools/backup/pgbackrest/default.nix
index 50ab894de89e..a2c727332554 100644
--- a/pkgs/tools/backup/pgbackrest/default.nix
+++ b/pkgs/tools/backup/pgbackrest/default.nix
@@ -13,13 +13,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "pgbackrest";
-  version = "2.49";
+  version = "2.50";
 
   src = fetchFromGitHub {
     owner = "pgbackrest";
     repo = "pgbackrest";
     rev = "release/${version}";
-    sha256 = "sha256-i1IcBNrobhgu+B/ezKFknTiqiZe6LktBxf9YU8JS2Wc=";
+    sha256 = "sha256-RjkTg80LAUndSVfTrol9hvgNOG6PMC+OkMVjdtjpdbI=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/tools/backup/sigtop/default.nix b/pkgs/tools/backup/sigtop/default.nix
index ab46893b0d21..ce6c7fde8d6d 100644
--- a/pkgs/tools/backup/sigtop/default.nix
+++ b/pkgs/tools/backup/sigtop/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   name = "sigtop";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "tbvdm";
     repo = "sigtop";
     rev = "v${version}";
-    sha256 = "sha256-goGvgn1QyWqipcrBvO27BjzFbp7cIPFWzWJaOpp2/1Q=";
+    sha256 = "sha256-vFs6/b2ypwMXDgmkZDgfKPqW0GRh9A2t4QQvkUdhYQw=";
   };
 
-  vendorHash = "sha256-K33VZeyOFoLLo64FuYt9bxJvaESSlHEy/2O8kLxxL5U=";
+  vendorHash = "sha256-H43XOupVicLpYfkWNjArpSxQWcFqh9h2Zb6zGZ5xtfs=";
 
   makeFlags = [
     "PREFIX=\${out}"
diff --git a/pkgs/tools/backup/tarsnapper/default.nix b/pkgs/tools/backup/tarsnapper/default.nix
index 447057448f87..b4d731984f71 100644
--- a/pkgs/tools/backup/tarsnapper/default.nix
+++ b/pkgs/tools/backup/tarsnapper/default.nix
@@ -1,20 +1,35 @@
 { lib
 , python3Packages
 , fetchFromGitHub
+, fetchpatch
 , tarsnap
 }:
 
 python3Packages.buildPythonApplication rec {
   pname = "tarsnapper";
-  version = "0.4";
+  version = "0.5";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "miracle2k";
     repo = pname;
     rev = version;
-    sha256 = "03db49188f4v1946c8mqqj30ah10x68hbg3a58js0syai32v12pm";
+    hash = "sha256-5i9eum9hbh6VFhvEIDq5Uapy6JtIbf9jZHhRYZVoC1w=";
   };
 
+  patches = [
+    # Fix failing tests when default_deltas is None
+    (fetchpatch {
+      url = "https://github.com/miracle2k/tarsnapper/commit/2ee33ce748b9bb42d559cc2c0104115732cb4150.patch";
+      hash = "sha256-fEXGhzlfB+J5lw1pcsC5Ne7I8UMnDzwyyCx/zm15+fU=";
+    })
+  ];
+
+  nativeBuildInputs = with python3Packages; [
+    pythonRelaxDepsHook
+    setuptools
+  ];
+
   propagatedBuildInputs = with python3Packages; [
     pyyaml
     python-dateutil
@@ -22,28 +37,22 @@ python3Packages.buildPythonApplication rec {
   ];
 
   nativeCheckInputs = with python3Packages; [
+    pytestCheckHook
     nose
   ];
 
-  patches = [
-    # Remove standard module argparse from requirements
-    ./remove-argparse.patch
-  ];
+  # Remove standard module argparse from requirements
+  pythonRemoveDeps = [ "argparse" ];
 
   makeWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ tarsnap ]}" ];
 
-  checkPhase = ''
-    runHook preCheck
-    nosetests tests
-    runHook postCheck
-  '';
-
   pythonImportsCheck = [ "tarsnapper" ];
 
   meta = with lib; {
     description = "Wrapper which expires backups using a gfs-scheme";
     homepage = "https://github.com/miracle2k/tarsnapper";
     license = licenses.bsd2;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ gmacon ];
+    mainProgram = "tarsnapper";
   };
 }
diff --git a/pkgs/tools/backup/tarsnapper/remove-argparse.patch b/pkgs/tools/backup/tarsnapper/remove-argparse.patch
deleted file mode 100644
index 19c7f9f172e2..000000000000
--- a/pkgs/tools/backup/tarsnapper/remove-argparse.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- tarsnapper-0.4-src.org/setup.py	1980-01-02 00:00:00.000000000 +0000
-+++ tarsnapper-0.4-src/setup.py	2017-07-16 10:54:36.596499451 +0100
-@@ -45,6 +45,6 @@
-       url='https://github.com/miracle2k/tarsnapper',
-       license='BSD',
-       packages=['tarsnapper'],
--      install_requires = ['argparse>=1.1', 'pyyaml>=3.09', 'python-dateutil>=2.4.0', 'pexpect>=3.1'],
-+      install_requires = ['pyyaml>=3.09', 'python-dateutil>=2.4.0', 'pexpect>=3.1'],
-       **kw
- )
diff --git a/pkgs/tools/backup/zfs-autobackup/default.nix b/pkgs/tools/backup/zfs-autobackup/default.nix
index abbc413278be..5999508fabf2 100644
--- a/pkgs/tools/backup/zfs-autobackup/default.nix
+++ b/pkgs/tools/backup/zfs-autobackup/default.nix
@@ -2,12 +2,12 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "zfs-autobackup";
-  version = "3.1.3";
+  version = "3.2";
 
   src = fetchPypi {
     inherit version;
     pname = "zfs_autobackup";
-    sha256 = "sha256-ckikq8Am81O0wkL4ozRBFTCa15PrmkD54A2qEY6kA5c=";
+    sha256 = "sha256-rvtY7fsn2K2hueAsQkaPXcwxUAgE8j+GsQFF3eJKG2o=";
   };
 
   nativeBuildInputs = with python3Packages; [ pythonRelaxDepsHook ];
diff --git a/pkgs/tools/backup/zfs-replicate/default.nix b/pkgs/tools/backup/zfs-replicate/default.nix
index b5cd6b9e50c2..3c148572a169 100644
--- a/pkgs/tools/backup/zfs-replicate/default.nix
+++ b/pkgs/tools/backup/zfs-replicate/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonApplication rec {
   pname = "zfs_replicate";
-  version = "3.1.4";
+  version = "3.2.5";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-mRINo20/uFlWtP5W7w+D2E9o89hlAsqZmBjuv0qWP9k=";
+    hash = "sha256-3rIbPXoI2eQCoLU/l1pXEmMJh5NAzrqwZSkn9jzfUoc=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/compression/lziprecover/default.nix b/pkgs/tools/compression/lziprecover/default.nix
index 38051d8efbad..c3f2ca738c7d 100644
--- a/pkgs/tools/compression/lziprecover/default.nix
+++ b/pkgs/tools/compression/lziprecover/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "lziprecover";
-  version = "1.23";
+  version = "1.24";
 
   src = fetchurl {
     url = "mirror://savannah/lzip/lziprecover/${pname}-${version}.tar.gz";
-    sha256 = "sha256-8pgEF38G3VHD+lJhWuGYp2ACts6Nlhw1dVRsN0D0tXI=";
+    sha256 = "sha256-HWmc+u/pLrJiSjZSWAvK/gu7mP54GMJebegjvN0NRY8=";
   };
 
   configureFlags = [
diff --git a/pkgs/tools/filesystems/apfs-fuse/default.nix b/pkgs/tools/filesystems/apfs-fuse/default.nix
index 0beffca1a54e..5881d361c549 100644
--- a/pkgs/tools/filesystems/apfs-fuse/default.nix
+++ b/pkgs/tools/filesystems/apfs-fuse/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, fuse, fuse3, bzip2, zlib, attr, cmake }:
 
 stdenv.mkDerivation {
-  pname = "apfs-fuse-unstable";
-  version = "2023-01-04";
+  pname = "apfs-fuse";
+  version = "unstable-2023-03-12";
 
   src = fetchFromGitHub {
     owner  = "sgan81";
     repo   = "apfs-fuse";
-    rev    = "1f041d7af5df5423832e54e9f358fd9234773fcc";
-    hash = "sha256-EmhCvIwyVJvib/ZHzCsULh8bOjhzKRu47LojX+L40qQ=";
+    rev    = "66b86bd525e8cb90f9012543be89b1f092b75cf3";
+    hash = "sha256-uYAlqnQp0K880XEWuH1548DUA3ii53+hfsuh/T3Vwzg=";
     fetchSubmodules = true;
   };
 
@@ -37,8 +37,8 @@ stdenv.mkDerivation {
     homepage    = "https://github.com/sgan81/apfs-fuse";
     description = "FUSE driver for APFS (Apple File System)";
     license     = licenses.gpl2Plus;
+    mainProgram = "apfs-fuse";
     maintainers = with maintainers; [ ealasu ];
     platforms   = platforms.unix;
   };
-
 }
diff --git a/pkgs/tools/filesystems/bashmount/default.nix b/pkgs/tools/filesystems/bashmount/default.nix
index ef7bfd492e37..dbd573d5f012 100644
--- a/pkgs/tools/filesystems/bashmount/default.nix
+++ b/pkgs/tools/filesystems/bashmount/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/jamielinux/bashmount";
     description = "A menu-driven bash script for the management of removable media with udisks";
+    mainProgram = "bashmount";
     maintainers = [ maintainers.koral ];
     license = licenses.gpl2;
     platforms = platforms.all;
diff --git a/pkgs/tools/filesystems/bcachefs-tools/default.nix b/pkgs/tools/filesystems/bcachefs-tools/default.nix
index 17b438ac46b8..36566dc71002 100644
--- a/pkgs/tools/filesystems/bcachefs-tools/default.nix
+++ b/pkgs/tools/filesystems/bcachefs-tools/default.nix
@@ -19,6 +19,7 @@
 , rustPlatform
 , makeWrapper
 , writeScript
+, python3
 , fuseSupport ? false
 }:
 
@@ -26,7 +27,6 @@ stdenv.mkDerivation (finalAttrs: {
   pname = "bcachefs-tools";
   version = "1.4.1";
 
-
   src = fetchFromGitHub {
     owner = "koverstreet";
     repo = "bcachefs-tools";
@@ -65,20 +65,32 @@ stdenv.mkDerivation (finalAttrs: {
     udev
   ] ++ lib.optional fuseSupport fuse3;
 
+  # FIXME: Try enabling this once the default linux kernel is at least 6.7
   doCheck = false; # needs bcachefs module loaded on builder
   checkFlags = [ "BCACHEFS_TEST_USE_VALGRIND=no" ];
 
   makeFlags = [
-    "DESTDIR=${placeholder "out"}"
-    "PREFIX="
+    "PREFIX=${placeholder "out"}"
     "VERSION=${finalAttrs.version}"
     "INITRAMFS_DIR=${placeholder "out"}/etc/initramfs-tools"
+    "BCACHEFS_FUSE=${toString fuseSupport}"
   ];
 
   preCheck = lib.optionalString (!fuseSupport) ''
     rm tests/test_fuse.py
   '';
 
+  # Tries to install to the 'systemd-minimal' and 'udev' nix installation paths
+  installFlags = [
+    "PKGCONFIG_SERVICEDIR=$(out)/lib/systemd/system"
+    "PKGCONFIG_UDEVDIR=$(out)/lib/udev"
+  ];
+
+  postInstall = ''
+    substituteInPlace $out/libexec/bcachefsck_all \
+      --replace "/usr/bin/python3" "${python3}/bin/python3"
+  '';
+
   passthru = {
     tests = {
       smoke-test = nixosTests.bcachefs;
diff --git a/pkgs/tools/filesystems/btrfs-progs/default.nix b/pkgs/tools/filesystems/btrfs-progs/default.nix
index dc9f8a0a27d6..ef3ba227ea6b 100644
--- a/pkgs/tools/filesystems/btrfs-progs/default.nix
+++ b/pkgs/tools/filesystems/btrfs-progs/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "btrfs-progs";
-  version = "6.6.3";
+  version = "6.7";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v${version}.tar.xz";
-    hash = "sha256-9BzlP2Zz/1Ue5KP+fclgHloN3mttCRd9H6ticYq8bZo=";
+    hash = "sha256-wn91UYW58tqzH0LoowPTa+0qPzNBzG117migplCiR2c=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/filesystems/ceph/default.nix b/pkgs/tools/filesystems/ceph/default.nix
index f38cd4be880c..fa87a6abfe75 100644
--- a/pkgs/tools/filesystems/ceph/default.nix
+++ b/pkgs/tools/filesystems/ceph/default.nix
@@ -50,6 +50,9 @@
 , zlib
 , zstd
 
+# Dependencies of overridden Python dependencies, hopefully we can remove these soon.
+, rustPlatform
+
 # Optional Dependencies
 , curl ? null
 , expat ? null
@@ -166,7 +169,67 @@ let
 
   # Watch out for python <> boost compatibility
   python = python310.override {
-    packageOverrides = self: super: {
+    packageOverrides = self: super: let cryptographyOverrideVersion = "40.0.1"; in {
+      # Ceph does not support `cryptography` > 40 yet:
+      # * https://github.com/NixOS/nixpkgs/pull/281858#issuecomment-1899358602
+      # * Upstream issue: https://tracker.ceph.com/issues/63529
+      #   > Python Sub-Interpreter Model Used by ceph-mgr Incompatible With Python Modules Based on PyO3
+      #
+      # We pin the older `cryptography` 40 here;
+      # this also forces us to pin an older `pyopenssl` because the current one
+      # is not compatible with older `cryptography`, see:
+      #     https://github.com/pyca/pyopenssl/blob/d9752e44127ba36041b045417af8a0bf16ec4f1e/CHANGELOG.rst#2320-2023-05-30
+      cryptography = super.cryptography.overridePythonAttrs (old: rec {
+        version = cryptographyOverrideVersion;
+
+        src = fetchPypi {
+          inherit (old) pname;
+          version = cryptographyOverrideVersion;
+          hash = "sha256-KAPy+LHpX2FEGZJsfm9V2CivxhTKXtYVQ4d65mjMNHI=";
+        };
+
+        cargoDeps = rustPlatform.fetchCargoTarball {
+          inherit src;
+          sourceRoot = let cargoRoot = "src/rust"; in "${old.pname}-${cryptographyOverrideVersion}/${cargoRoot}";
+          name = "${old.pname}-${cryptographyOverrideVersion}";
+          hash = "sha256-gFfDTc2QWBWHBCycVH1dYlCsWQMVcRZfOBIau+njtDU=";
+        };
+
+        patches = (old.patches or []) ++ [
+          # Fix https://nvd.nist.gov/vuln/detail/CVE-2023-49083 which has no upstream backport.
+          # See https://github.com/pyca/cryptography/commit/f09c261ca10a31fe41b1262306db7f8f1da0e48a#diff-f5134bf8f3cf0a5cc8601df55e50697acc866c603a38caff98802bd8e17976c5R1893
+          ./python-cryptography-Cherry-pick-fix-for-CVE-2023-49083-on-cryptography-40.patch
+        ];
+
+        # Tests would require overriding `cryptography-vectors`, which is not currently
+        # possible/desired, see: https://github.com/NixOS/nixpkgs/pull/281858#pullrequestreview-1841421866
+        doCheck = false;
+      });
+
+      # This is the most recent version of `pyopenssl` that's still compatible with `cryptography` 40.
+      # See https://github.com/NixOS/nixpkgs/pull/281858#issuecomment-1899358602
+      pyopenssl = super.pyopenssl.overridePythonAttrs (old: rec {
+        version = "23.1.1";
+        src = fetchPypi {
+          pname = "pyOpenSSL";
+          inherit version;
+          hash = "sha256-hBSYub7GFiOxtsR+u8AjZ8B9YODhlfGXkIF/EMyNsLc=";
+        };
+      });
+
+      # Ceph does not support `kubernetes` >= 19, see:
+      #     https://github.com/NixOS/nixpkgs/pull/281858#issuecomment-1900324090
+      kubernetes = super.kubernetes.overridePythonAttrs (old: rec {
+        version = "18.20.0";
+        src = fetchFromGitHub {
+          owner = "kubernetes-client";
+          repo = "python";
+          rev = "v${version}";
+          sha256 = "1sawp62j7h0yksmg9jlv4ik9b9i1a1w9syywc9mv8x89wibf5ql1";
+          fetchSubmodules = true;
+        };
+      });
+
     };
   };
 
diff --git a/pkgs/tools/filesystems/ceph/python-cryptography-Cherry-pick-fix-for-CVE-2023-49083-on-cryptography-40.patch b/pkgs/tools/filesystems/ceph/python-cryptography-Cherry-pick-fix-for-CVE-2023-49083-on-cryptography-40.patch
new file mode 100644
index 000000000000..7ca05cf7450f
--- /dev/null
+++ b/pkgs/tools/filesystems/ceph/python-cryptography-Cherry-pick-fix-for-CVE-2023-49083-on-cryptography-40.patch
@@ -0,0 +1,44 @@
+commit 08dbad8552ecca85d3e38072f94eb864b143d218
+Author: Niklas Hambüchen <mail@nh2.me>
+Date:   Mon Jan 22 12:52:06 2024 +0000
+
+    Cherry-pick fix for CVE-2023-49083
+    
+    Cherry-Picked-From: f09c261ca10a31fe41b1262306db7f8f1da0e48a
+    Cherry-Picked-By: Niklas Hambüchen <mail@nh2.me>
+
+diff --git a/src/cryptography/hazmat/backends/openssl/backend.py b/src/cryptography/hazmat/backends/openssl/backend.py
+index a3fe1bce4..58e7207c4 100644
+--- a/src/cryptography/hazmat/backends/openssl/backend.py
++++ b/src/cryptography/hazmat/backends/openssl/backend.py
+@@ -2383,9 +2383,12 @@ class Backend:
+                 _Reasons.UNSUPPORTED_SERIALIZATION,
+             )
+ 
++        certs: list[x509.Certificate] = []
++        if p7.d.sign == self._ffi.NULL:
++            return certs
++
+         sk_x509 = p7.d.sign.cert
+         num = self._lib.sk_X509_num(sk_x509)
+-        certs = []
+         for i in range(num):
+             x509 = self._lib.sk_X509_value(sk_x509, i)
+             self.openssl_assert(x509 != self._ffi.NULL)
+diff --git a/tests/hazmat/primitives/test_pkcs7.py b/tests/hazmat/primitives/test_pkcs7.py
+index 4e61c5ef5..d8170bfb9 100644
+--- a/tests/hazmat/primitives/test_pkcs7.py
++++ b/tests/hazmat/primitives/test_pkcs7.py
+@@ -89,6 +89,12 @@ class TestPKCS7Loading:
+                 mode="rb",
+             )
+ 
++    def test_load_pkcs7_empty_certificates(self, backend):
++        der = b"\x30\x0B\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x07\x02"
++
++        certificates = pkcs7.load_der_pkcs7_certificates(der)
++        assert certificates == []
++
+ 
+ # We have no public verification API and won't be adding one until we get
+ # some requirements from users so this function exists to give us basic
diff --git a/pkgs/tools/filesystems/convoy/default.nix b/pkgs/tools/filesystems/convoy/default.nix
deleted file mode 100644
index 774568fdde17..000000000000
--- a/pkgs/tools/filesystems/convoy/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-# This file was generated by go2nix.
-{ lib, buildGoPackage, fetchFromGitHub, lvm2 }:
-
-buildGoPackage rec {
-  pname = "convoy";
-  version = "0.5.2";
-
-  goPackagePath = "github.com/rancher/convoy";
-
-  src = fetchFromGitHub {
-    rev = "v${version}";
-    owner = "rancher";
-    repo = "convoy";
-    sha256 = "09nygrxd5hril4xcfsvgjg74xxhhimznqq4sdk0f360c5ra0dbhj";
-  };
-
-  buildInputs = [lvm2];
-
-  meta = with lib; {
-    homepage = "https://github.com/rancher/convoy";
-    description = "A Docker volume plugin, managing persistent container volumes";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ offline ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/tools/filesystems/garage/default.nix b/pkgs/tools/filesystems/garage/default.nix
index 894840d2dd04..e34822845b40 100644
--- a/pkgs/tools/filesystems/garage/default.nix
+++ b/pkgs/tools/filesystems/garage/default.nix
@@ -24,6 +24,12 @@ let
       inherit sha256;
     };
 
+    postPatch = ''
+      # Starting in 0.9.x series, Garage is using mold in local development
+      # and this leaks in this packaging, we remove it to use the default linker.
+      rm .cargo/config.toml || true
+    '';
+
     inherit cargoSha256;
 
     nativeBuildInputs = [ protobuf pkg-config ];
@@ -68,6 +74,7 @@ let
 
     meta = {
       description = "S3-compatible object store for small self-hosted geo-distributed deployments";
+      changelog = "https://git.deuxfleurs.fr/Deuxfleurs/garage/releases/tag/v${version}";
       homepage = "https://garagehq.deuxfleurs.fr";
       license = lib.licenses.agpl3Only;
       maintainers = with lib.maintainers; [ nickcao _0x4A6F teutat3s raitobezarius ];
@@ -82,28 +89,22 @@ rec {
   # we have to keep all the numbers in the version to handle major/minor/patch level.
   # for <1.0.
 
-  garage_0_8_4 = generic {
-    version = "0.8.4";
-    sha256 = "sha256-YgMw41ofM59h7OnHK1H8+Se5mZEdYypPIdkqbyX9qfs=";
-    cargoSha256 = "sha256-dEtksOVqy5wAPoqCuXJj3c4TB6UbR8PTaB70fbL6iR8=";
+  garage_0_8_5 = generic {
+    version = "0.8.5";
+    sha256 = "sha256-YRxkjETSmI1dcHP9qTPLcOMqXx9B2uplVR3bBjJWn3I=";
+    cargoSha256 = "sha256-VOcymlvqqQRdT1MFzRcMuD+Xo3fc3XTuRA12tW7ZjdI=";
+    broken = stdenv.isDarwin;
   };
 
-  garage_0_8 = garage_0_8_4;
-
-  garage_0_9_0 = (generic {
-    version = "0.9.0";
-    sha256 = "sha256-Bw7ohMAfnbkhl43k8KxYu2OJd5689PqDS0vAcgU09W8=";
-    cargoSha256 = "sha256-JqCt/8p24suQMRzEyTE2OkbzZCGUDLuGq32kCq3eZ7o=";
-  }).overrideAttrs (oldAttrs: {
-    patches = oldAttrs.patches or [ ] ++ [
-      (fetchpatch {
-        url = "https://git.deuxfleurs.fr/Deuxfleurs/garage/commit/c7f5dcd953ff1fdfa002a8bccfb43eafcc6fddd4.patch";
-        sha256 = "sha256-q7E6gtPjnj5O/K837LMP6LPEFcgdkifxRFrYzBuqkk0=";
-      })
-    ];
-  });
+  garage_0_8 = garage_0_8_5;
+
+  garage_0_9_1 = generic {
+    version = "0.9.1";
+    sha256 = "sha256-AXLaifVmZU4j5D/wKn/0TzhjHZBzZW1+tMyhsAo2eBU=";
+    cargoSha256 = "sha256-4/+OsM73TroBB1TGqare2xASO5KhqVyNkkss0Y0JZXg=";
+  };
 
-  garage_0_9 = garage_0_9_0;
+  garage_0_9 = garage_0_9_1;
 
   garage = garage_0_9;
 }
diff --git a/pkgs/tools/filesystems/gcsfuse/default.nix b/pkgs/tools/filesystems/gcsfuse/default.nix
index 500d5cb1f1f5..145fddb9222b 100644
--- a/pkgs/tools/filesystems/gcsfuse/default.nix
+++ b/pkgs/tools/filesystems/gcsfuse/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "gcsfuse";
-  version = "1.4.0";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "googlecloudplatform";
     repo = "gcsfuse";
     rev = "v${version}";
-    hash = "sha256-IrLbKBCguj2B1PvtUwCaPP+4NoLbJZRtcsNGMDDC8b8=";
+    hash = "sha256-xQWkrFuMvwloDjnIU2T1Fmfpc/2w3ISbyDhFmN/ETFA=";
   };
 
   vendorHash = "sha256-cIOjgoS3cW6GA697K0Loi76ed64Ev2jZbuOIPNRM1HU=";
diff --git a/pkgs/tools/filesystems/genimage/default.nix b/pkgs/tools/filesystems/genimage/default.nix
index ab93f4233d8f..34500447b875 100644
--- a/pkgs/tools/filesystems/genimage/default.nix
+++ b/pkgs/tools/filesystems/genimage/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "genimage";
-  version = "16";
+  version = "17";
 
   src = fetchurl {
     url = "https://public.pengutronix.de/software/genimage/genimage-${version}.tar.xz";
-    sha256 = "sha256-hp+WYtO3eMabHR/nDfZY4cnpCu2iart1P2/lXosMbnM=";
+    sha256 = "sha256-qHVuNWeg1NgsNrCMzB4IglC5AG1WcMaysBQYXm7GBnE=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/tools/filesystems/mergerfs/default.nix b/pkgs/tools/filesystems/mergerfs/default.nix
index 46c62b7ae4b0..edc5708a6119 100644
--- a/pkgs/tools/filesystems/mergerfs/default.nix
+++ b/pkgs/tools/filesystems/mergerfs/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mergerfs";
-  version = "2.38.0";
+  version = "2.39.0";
 
   src = fetchFromGitHub {
     owner = "trapexit";
     repo = pname;
     rev = version;
-    sha256 = "sha256-eENtsN9OqPpUQM+O8tPTBzDk26/F/zc2hZ4ZiXiDp2I=";
+    sha256 = "sha256-48ArTS1Gd1z7WUX1RjiHMuyp3K3p9FJPU2XO4bj292I=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/filesystems/rmfuse/default.nix b/pkgs/tools/filesystems/rmfuse/default.nix
index a75ed9429c13..04a4d6273878 100644
--- a/pkgs/tools/filesystems/rmfuse/default.nix
+++ b/pkgs/tools/filesystems/rmfuse/default.nix
@@ -7,7 +7,7 @@ python3.pkgs.buildPythonApplication rec {
   pname = "rmfuse";
   version = "unstable-2021-06-06";
 
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "rschroll";
@@ -16,13 +16,15 @@ python3.pkgs.buildPythonApplication rec {
     hash = "sha256-W3kS6Kkmp8iWMOYFL7r1GyjSQvFotBXQCuTMK0vyHQ8=";
   };
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace 'bidict = "^' 'bidict = ">='
-  '';
-
   nativeBuildInputs = with python3.pkgs; [
     poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "bidict"
+    "rmrl"
+    "xdg"
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/filesystems/snapraid/default.nix b/pkgs/tools/filesystems/snapraid/default.nix
index 3afabf8cd643..89be607027f2 100644
--- a/pkgs/tools/filesystems/snapraid/default.nix
+++ b/pkgs/tools/filesystems/snapraid/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "snapraid";
-  version = "12.2";
+  version = "12.3";
 
   src = fetchFromGitHub {
     owner = "amadvance";
     repo = "snapraid";
     rev = "v${version}";
-    sha256 = "sha256-3wy442tv3m1CSOAj1cngTWRiqX934c/7V2YL6j30+3U=";
+    sha256 = "sha256-pkLooA3JZV/rPlE5+JeJN1QW2xAdNu7c/iFFtT4M4vc=";
   };
 
   VERSION = version;
diff --git a/pkgs/tools/filesystems/ssdfs-utils/default.nix b/pkgs/tools/filesystems/ssdfs-utils/default.nix
index 7fd837ddbe77..46d2c8ed9293 100644
--- a/pkgs/tools/filesystems/ssdfs-utils/default.nix
+++ b/pkgs/tools/filesystems/ssdfs-utils/default.nix
@@ -12,13 +12,13 @@ stdenv.mkDerivation {
   # as ssdfs-utils, not ssdfs-tools.
   pname = "ssdfs-utils";
   # The version is taken from `configure.ac`, there are no tags.
-  version = "4.37";
+  version = "4.38";
 
   src = fetchFromGitHub {
     owner = "dubeyko";
     repo = "ssdfs-tools";
-    rev = "f83f70409c5e4fa81e9a67f8ed7f824368aba063";
-    hash = "sha256-OuGQ876HRjjSyxMbd/l8yySxmEjW1Yo1PTyO9zEt8+Q=";
+    rev = "14c0e9eb63f75c100a711493a16665c313c7bcf7";
+    hash = "sha256-s8HWuUub7EzDVZTFSitW/Zg2u0PSrXnmb5fnfOyrNL0=";
   };
 
   strictDeps = true;
diff --git a/pkgs/tools/filesystems/stratis-cli/default.nix b/pkgs/tools/filesystems/stratis-cli/default.nix
index 3a1838ef303e..4c27b888bbaa 100644
--- a/pkgs/tools/filesystems/stratis-cli/default.nix
+++ b/pkgs/tools/filesystems/stratis-cli/default.nix
@@ -7,7 +7,7 @@
 python3Packages.buildPythonApplication rec {
   pname = "stratis-cli";
   version = "3.6.0";
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "stratis-storage";
@@ -16,6 +16,10 @@ python3Packages.buildPythonApplication rec {
     hash = "sha256-mLmjMofdr0U+Bfnkde7lJqPXkd1ICPYdlcsOm2nOcQA=";
   };
 
+  nativeBuildInputs = with python3Packages; [
+    setuptools
+  ];
+
   propagatedBuildInputs = with python3Packages; [
     dbus-client-gen
     dbus-python-client-gen
diff --git a/pkgs/tools/filesystems/stratisd/Cargo.lock b/pkgs/tools/filesystems/stratisd/Cargo.lock
index 1406bc0aea3f..ddca983aa1cb 100644
--- a/pkgs/tools/filesystems/stratisd/Cargo.lock
+++ b/pkgs/tools/filesystems/stratisd/Cargo.lock
@@ -413,17 +413,6 @@ 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.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
@@ -676,9 +665,9 @@ dependencies = [
 
 [[package]]
 name = "itertools"
-version = "0.11.0"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
+checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0"
 dependencies = [
  "either",
 ]
@@ -837,12 +826,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
 
 [[package]]
-name = "loopdev"
-version = "0.4.0"
-source = "git+https://github.com/mulkieran/loopdev?branch=bump-bindgen-reduce-version-0.68.1#63e6105d5599d9df00041de873d7fc91f53b9f20"
+name = "loopdev-3"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "378e7ca4e85e592564e6a96c362303972b5c7860367014383aadc10a8704fc38"
 dependencies = [
  "bindgen",
- "errno 0.2.8",
+ "errno",
  "libc",
 ]
 
@@ -862,6 +852,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "memoffset"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
 name = "minimal-lexical"
 version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -900,12 +899,24 @@ dependencies = [
  "bitflags 1.3.2",
  "cfg-if 1.0.0",
  "libc",
- "memoffset",
+ "memoffset 0.7.1",
  "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.0",
+ "cfg-if 1.0.0",
+ "libc",
+ "memoffset 0.9.0",
+]
+
+[[package]]
 name = "nom"
 version = "7.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1010,9 +1021,9 @@ dependencies = [
 
 [[package]]
 name = "pretty-hex"
-version = "0.3.0"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6fa0831dd7cc608c38a5e323422a0077678fa5744aa2be4ad91c4ece8eec8d5"
+checksum = "bbc83ee4a840062f368f9096d80077a9841ec117e17e7f700df81958f1451254"
 
 [[package]]
 name = "proc-macro2"
@@ -1154,7 +1165,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d4eb579851244c2c03e7c24f501c3432bed80b8f720af1d6e5b0e0f01555a035"
 dependencies = [
  "bitflags 1.3.2",
- "errno 0.3.1",
+ "errno",
  "io-lifetimes",
  "libc",
  "linux-raw-sys",
@@ -1229,9 +1240,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 = "signal-hook-registry"
@@ -1269,7 +1280,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
 
 [[package]]
 name = "stratisd"
-version = "3.6.3"
+version = "3.6.4"
 dependencies = [
  "assert_cmd",
  "assert_matches",
@@ -1287,7 +1298,7 @@ dependencies = [
  "env_logger",
  "futures",
  "iocuddle",
- "itertools 0.11.0",
+ "itertools 0.12.0",
  "lazy_static",
  "libblkid-rs",
  "libc",
@@ -1296,8 +1307,8 @@ dependencies = [
  "libmount",
  "libudev",
  "log",
- "loopdev",
- "nix 0.26.2",
+ "loopdev-3",
+ "nix 0.27.1",
  "pkg-config",
  "predicates",
  "pretty-hex",
diff --git a/pkgs/tools/filesystems/stratisd/default.nix b/pkgs/tools/filesystems/stratisd/default.nix
index cd6ee0884637..d299a1dc93ff 100644
--- a/pkgs/tools/filesystems/stratisd/default.nix
+++ b/pkgs/tools/filesystems/stratisd/default.nix
@@ -27,20 +27,17 @@
 
 stdenv.mkDerivation rec {
   pname = "stratisd";
-  version = "3.6.3";
+  version = "3.6.4";
 
   src = fetchFromGitHub {
     owner = "stratis-storage";
     repo = pname;
     rev = "refs/tags/stratisd-v${version}";
-    hash = "sha256-Wu3SkuHyMCBape+pMymQntXRtdMIlF5wz75kKxaZlms=";
+    hash = "sha256-0zSMFjAzTtTmpSCqlIq5GXk3/AhlhtECFZXmo6xcjWA=";
   };
 
   cargoDeps = rustPlatform.importCargoLock {
     lockFile = ./Cargo.lock;
-    outputHashes = {
-      "loopdev-0.4.0" = "sha256-YS0hqxphxbbImT/mn/XBzkgabK2kbIym5VqG3XDVAx8=";
-    };
   };
 
   postPatch = ''
@@ -99,10 +96,10 @@ stdenv.mkDerivation rec {
   # remove files for supporting dracut
   postInstall = ''
     mkdir -p "$initrd/bin"
-    cp "dracut/90stratis/stratis-rootfs-setup" "$initrd/bin"
+    cp "$out/lib/dracut/modules.d/90stratis/stratis-rootfs-setup" "$initrd/bin"
     mkdir -p "$initrd/lib/systemd/system"
-    substitute "dracut/90stratis/stratisd-min.service" "$initrd/lib/systemd/system/stratisd-min.service" \
-      --replace /usr "$out" \
+    substitute "$out/lib/dracut/modules.d/90stratis/stratisd-min.service" \
+      "$initrd/lib/systemd/system/stratisd-min.service" \
       --replace mkdir "${coreutils}/bin/mkdir"
     mkdir -p "$initrd/lib/udev/rules.d"
     cp udev/61-stratisd.rules "$initrd/lib/udev/rules.d"
@@ -110,7 +107,9 @@ stdenv.mkDerivation rec {
     rm -r "$out/lib/systemd/system-generators"
   '';
 
-  passthru.tests = nixosTests.stratis;
+  passthru.tests = nixosTests.stratis // {
+    inherit (nixosTests.installer-systemd-stage-1) stratisRoot;
+  };
 
   meta = with lib; {
     description = "Easy to use local storage management for Linux";
diff --git a/pkgs/tools/games/er-patcher/default.nix b/pkgs/tools/games/er-patcher/default.nix
index 66c0b5a07845..6e7920bce0a0 100644
--- a/pkgs/tools/games/er-patcher/default.nix
+++ b/pkgs/tools/games/er-patcher/default.nix
@@ -6,13 +6,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "er-patcher";
-  version = "1.10-1";
+  version = "1.10.1-1";
 
   src = fetchFromGitHub {
     owner = "gurrgur";
     repo = "er-patcher";
     rev = "v${version}";
-    sha256 = "sha256-Hpe+z7xtiDN7u2qrLYib6pQfZIMvWkf/G7hdHy2htIE=";
+    sha256 = "sha256-vSCZQBI9Q+7m+TT9pS7R5Fw3BgTxznbFAArJ7J6+tUQ=";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/games/minecraft/mcaselector/default.nix b/pkgs/tools/games/minecraft/mcaselector/default.nix
index 0cf48dbe0b6b..395be450f65c 100644
--- a/pkgs/tools/games/minecraft/mcaselector/default.nix
+++ b/pkgs/tools/games/minecraft/mcaselector/default.nix
@@ -7,11 +7,11 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "mcaselector";
-  version = "2.2.2";
+  version = "2.3";
 
   src = fetchurl {
     url = "https://github.com/Querz/mcaselector/releases/download/${finalAttrs.version}/mcaselector-${finalAttrs.version}.jar";
-    hash = "sha256-tOSdzLFxvEJ9LXliwfosMkgcrQLsrW7qDS8vrgPzQoI=";
+    hash = "sha256-8ivqTqgO6hvEgwnAfnPXuruFGS3s/wD/WKt+5Bg/5Z0=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/tools/graphics/gfxreconstruct/default.nix b/pkgs/tools/graphics/gfxreconstruct/default.nix
index 633c1202fafc..b166f82c6294 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.1";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "LunarG";
     repo = "gfxreconstruct";
     rev = "v${version}";
-    hash = "sha256-+h7r6uLRw08c1CHRHxGCdkPYqI10i2Q/Oep617rLhx0=";
+    hash = "sha256-4jFHnDiLO2BrfXzxKXU3FGhvcmkUXCT2k/7A+DJPz90=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/tools/graphics/lsix/default.nix b/pkgs/tools/graphics/lsix/default.nix
index 7cbe2ee8626c..b054351bf9ab 100644
--- a/pkgs/tools/graphics/lsix/default.nix
+++ b/pkgs/tools/graphics/lsix/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenvNoCC, fetchFromGitHub, makeWrapper, imagemagick }:
 
-stdenvNoCC.mkDerivation rec {
+stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "lsix";
   version = "1.8.2";
 
   src = fetchFromGitHub {
     owner = "hackerb9";
-    repo = pname;
-    rev = version;
+    repo = "lsix";
+    rev = finalAttrs.version;
     sha256 = "sha256-xlOlAfZonSo/RERt5WxPqMvppVrY5/Yhh7SgCCsYDQE=";
   };
 
@@ -23,7 +23,7 @@ stdenvNoCC.mkDerivation rec {
 
   postFixup = ''
     wrapProgram $out/bin/lsix \
-      --prefix PATH : ${lib.makeBinPath [ imagemagick ]}
+      --prefix PATH : ${lib.makeBinPath [ (imagemagick.override { ghostscriptSupport = true;}) ]}
   '';
 
   meta = with lib; {
@@ -31,7 +31,7 @@ stdenvNoCC.mkDerivation rec {
     homepage = "https://github.com/hackerb9/lsix";
     license = licenses.gpl3Only;
     platforms = platforms.all;
-    maintainers = with maintainers; [ kidonng ];
+    maintainers = with maintainers; [ justinlime kidonng ];
     mainProgram = "lsix";
   };
-}
+})
diff --git a/pkgs/tools/graphics/maskromtool/default.nix b/pkgs/tools/graphics/maskromtool/default.nix
index 77a4d9e268bb..b2506bfa9df8 100644
--- a/pkgs/tools/graphics/maskromtool/default.nix
+++ b/pkgs/tools/graphics/maskromtool/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "maskromtool";
-  version = "2024-01-1";
+  version = "2024-01-28";
 
   src = fetchFromGitHub {
     owner = "travisgoodspeed";
     repo = "maskromtool";
     rev = "v${version}";
-    hash = "sha256-iKzq0hH45uHtWr2QZsVSPUZjmU6rXUGqVQ8SlIhOuJ0=";
+    hash = "sha256-jYnJgZ4bn5NDSzNyhb46xnmzbF9Y59shw8y/2zmxiVM=";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/graphics/resvg/default.nix b/pkgs/tools/graphics/resvg/default.nix
index 734ac97fdc73..d82b4befd7a0 100644
--- a/pkgs/tools/graphics/resvg/default.nix
+++ b/pkgs/tools/graphics/resvg/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "resvg";
-  version = "0.37.0";
+  version = "0.38.0";
 
   src = fetchFromGitHub {
     owner = "RazrFalcon";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-IRIyxQk0BqFufZafq7klUHAW1lculqbcH67kf3jtjwo=";
+    hash = "sha256-j3/Vjic1/ESOeISxOWf+vF63a4KfWp/Wy9lVkyc1PPA=";
   };
 
-  cargoHash = "sha256-yKQRjY+aEXU5C3LhAyavtX8PazbAvAHQ7fykmK7LAQ8=";
+  cargoHash = "sha256-kZUQ1uHF1xp5hUiY0byjiUuWXsIFq52zducbSnNFl5U=";
 
   cargoBuildFlags = [
     "--package=resvg"
@@ -29,5 +29,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/RazrFalcon/resvg/blob/v${version}/CHANGELOG.md";
     license = licenses.mpl20;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "resvg";
   };
 }
diff --git a/pkgs/tools/graphics/spirv-cross/default.nix b/pkgs/tools/graphics/spirv-cross/default.nix
index cd7489be9aec..73413c1aee4c 100644
--- a/pkgs/tools/graphics/spirv-cross/default.nix
+++ b/pkgs/tools/graphics/spirv-cross/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "spirv-cross";
-  version = "1.3.268.0";
+  version = "1.3.275.0";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "SPIRV-Cross";
     rev = "vulkan-sdk-${finalAttrs.version}";
-    hash = "sha256-UIk5hihUPjXNzEeO2laS4dUef/rEExxXAZjMcftx+3A=";
+    hash = "sha256-Mhr3Yxm5MeLLQFmxWmtXLsq+ZcOE+KMs+3iiTYF8t30=";
   };
 
   nativeBuildInputs = [ cmake python3 ];
diff --git a/pkgs/tools/graphics/textplots/default.nix b/pkgs/tools/graphics/textplots/default.nix
index 81d9b5de3e36..79787ec7e7d2 100644
--- a/pkgs/tools/graphics/textplots/default.nix
+++ b/pkgs/tools/graphics/textplots/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "textplots";
-  version = "0.8.4";
+  version = "0.8.5";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-DtDxD3b8idYOBcHKkLbOy6NUU0bjWzDySGoW8uOT4xc=";
+    hash = "sha256-83EAe6O8ETsuGJ5MK6kt68OnJL+r+BAYkFzvzlxHyp4=";
   };
 
-  cargoHash = "sha256-tXqonC4qawS6eu9dPt/6/TVYCjTroG+9XikmYQHCLdA=";
+  cargoHash = "sha256-O47b00PGRXTWWxywitS2V15gXahzgjNvFKUvE+VMXaM=";
 
   buildFeatures = [ "tool" ];
 
diff --git a/pkgs/tools/graphics/timg/default.nix b/pkgs/tools/graphics/timg/default.nix
index 2379e3c8188e..5811cbba25e1 100644
--- a/pkgs/tools/graphics/timg/default.nix
+++ b/pkgs/tools/graphics/timg/default.nix
@@ -8,6 +8,9 @@
 , libjpeg
 , libsixel
 , openslide
+, poppler
+, librsvg
+, cairo
 , pkg-config
 , stb
 , qoi
@@ -16,13 +19,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "timg";
-  version = "1.5.3";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "hzeller";
     repo = "timg";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-u52ipc3I57ldKXjmXqFuIXIYIrs5c9TSvgs1HfIu44U=";
+    hash = "sha256-rTqToWgCPQeRYnMUmhPd/lJPX6L9PstFs1NczyecaB0=";
   };
 
   buildInputs = [
@@ -33,6 +36,9 @@ stdenv.mkDerivation (finalAttrs: {
     libjpeg
     libsixel
     openslide
+    poppler
+    librsvg
+    cairo
     qoi.dev
     stb
   ];
diff --git a/pkgs/tools/graphics/vips/default.nix b/pkgs/tools/graphics/vips/default.nix
index c16ba635f504..5c59971f955c 100644
--- a/pkgs/tools/graphics/vips/default.nix
+++ b/pkgs/tools/graphics/vips/default.nix
@@ -42,7 +42,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "vips";
-  version = "8.15.0";
+  version = "8.15.1";
 
   outputs = [ "bin" "out" "man" "dev" ] ++ lib.optionals (!stdenv.isDarwin) [ "devdoc" ];
 
@@ -50,7 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "libvips";
     repo = "libvips";
     rev = "refs/tags/v${finalAttrs.version}";
-    hash = "sha256-WfKq+maLcAXyjk1sq66wSU92ALv4MfRDPKe4Mki0KRQ=";
+    hash = "sha256-0zfYpOawH7XnTH9k8BdNDtZEKpYUlCXp7GY+fdXalsE=";
     # Remove unicode file names which leads to different checksums on HFS+
     # vs. other filesystems because of unicode normalisation.
     postFetch = ''
diff --git a/pkgs/tools/graphics/vulkan-caps-viewer/default.nix b/pkgs/tools/graphics/vulkan-caps-viewer/default.nix
index b2a9781f23ec..f5962d9aa6c4 100644
--- a/pkgs/tools/graphics/vulkan-caps-viewer/default.nix
+++ b/pkgs/tools/graphics/vulkan-caps-viewer/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vulkan-caps-viewer";
-  version = "3.32";
+  version = "3.33";
 
   src = fetchFromGitHub {
     owner = "SaschaWillems";
     repo = "VulkanCapsViewer";
     rev = version;
-    hash = "sha256-SPz8AurANjNwtsPHdZ2lCaC3VEcEAKn93st/7DJ0oyU=";
+    hash = "sha256-eKUgsT3KDua+whO0JdtnniKqoRmBt58LELeUz24goPM=";
     # Note: this derivation strictly requires vulkan-header to be the same it was developed against.
     # To help us, they've put it in a git-submodule.
     # The result will work with any vulkan-loader version.
diff --git a/pkgs/tools/graphics/vulkan-extension-layer/default.nix b/pkgs/tools/graphics/vulkan-extension-layer/default.nix
index dae55225a0b3..336c31811aa2 100644
--- a/pkgs/tools/graphics/vulkan-extension-layer/default.nix
+++ b/pkgs/tools/graphics/vulkan-extension-layer/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vulkan-extension-layer";
-  version = "1.3.268.0";
+  version = "1.3.275.0";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "Vulkan-ExtensionLayer";
     rev = "vulkan-sdk-${version}";
-    hash = "sha256-rSKPTeTDOz6IeJGRt9aIu1VH8VfVzXNYZfjdiSXEJxg=";
+    hash = "sha256-zQycF3yKoa54KBUIuG1BqFGB00yc6oZQzdcDel2rXN0=";
   };
 
   nativeBuildInputs = [ cmake pkg-config jq ];
diff --git a/pkgs/tools/graphics/vulkan-tools-lunarg/default.nix b/pkgs/tools/graphics/vulkan-tools-lunarg/default.nix
index 0db3cf159771..778b13655886 100644
--- a/pkgs/tools/graphics/vulkan-tools-lunarg/default.nix
+++ b/pkgs/tools/graphics/vulkan-tools-lunarg/default.nix
@@ -26,13 +26,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vulkan-tools-lunarg";
-  version = "1.3.268.0";
+  version = "1.3.275.0";
 
   src = fetchFromGitHub {
    owner = "LunarG";
    repo = "VulkanTools";
    rev = "vulkan-sdk-${version}";
-   hash = "sha256-2ZUD+RBsl35QV3250JOPCIoJb4sJcBsiRE4SZaS6ROs=";
+   hash = "sha256-MEQX90HL90jyVBWWcvOF7QLzm1+fNE5TW3MWdK4w53M=";
  };
 
   nativeBuildInputs = [ cmake python3 jq which pkg-config libsForQt5.qt5.wrapQtAppsHook ];
diff --git a/pkgs/tools/graphics/vulkan-tools/default.nix b/pkgs/tools/graphics/vulkan-tools/default.nix
index d590ac7d340c..e084f7e2285b 100644
--- a/pkgs/tools/graphics/vulkan-tools/default.nix
+++ b/pkgs/tools/graphics/vulkan-tools/default.nix
@@ -14,6 +14,7 @@
 , libXrandr
 , vulkan-headers
 , vulkan-loader
+, vulkan-volk
 , wayland
 , wayland-protocols
 , moltenvk
@@ -23,13 +24,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vulkan-tools";
-  version = "1.3.268.0";
+  version = "1.3.275.0";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "Vulkan-Tools";
     rev = "vulkan-sdk-${version}";
-    hash = "sha256-IsMxiAR4ak6kC3BNYhtI+JVNkEka4ZceSElxk39THXg=";
+    hash = "sha256-0sAwO8gXzpMst+7l7LS1oiDLo9E6otDktCti+v8jwDw=";
   };
 
   nativeBuildInputs = [
@@ -42,6 +43,7 @@ stdenv.mkDerivation rec {
     glslang
     vulkan-headers
     vulkan-loader
+    vulkan-volk
   ] ++ lib.optionals (!stdenv.isDarwin) [
     libffi
     libX11
@@ -58,17 +60,6 @@ stdenv.mkDerivation rec {
     Cocoa
   ];
 
-  postPatch = lib.optionalString stdenv.isDarwin ''
-    # Modify mac_common.cmake to find the ICD where nixpkgs puts it.
-    substituteInPlace mac_common.cmake \
-      --replace MoltenVK/icd/MoltenVK_icd.json MoltenVK_icd.json
-    # Remove the unconditional check for `ibtool` since the cube demo that needs it won’t be built.
-    sed -e '/#.*Interface Builder/,/^endif()/d' -i mac_common.cmake
-    # Install `vulkaninfo` to $out/bin even on Darwin.
-    substituteInPlace vulkaninfo/CMakeLists.txt \
-      --replace 'install(TARGETS vulkaninfo RUNTIME DESTINATION "vulkaninfo")' 'install(TARGETS vulkaninfo)'
-  '';
-
   libraryPath = lib.strings.makeLibraryPath [ vulkan-loader ];
 
   dontPatchELF = true;
diff --git a/pkgs/tools/inputmethods/fcitx5/default.nix b/pkgs/tools/inputmethods/fcitx5/default.nix
index 356fd28e977b..a3b5e180bcfb 100644
--- a/pkgs/tools/inputmethods/fcitx5/default.nix
+++ b/pkgs/tools/inputmethods/fcitx5/default.nix
@@ -44,13 +44,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "fcitx5";
-  version = "5.1.6";
+  version = "5.1.7";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    hash = "sha256-UZr+Ee8oNSKTv0zzuhVKDzjNaai9QaFHYMpAqzcbwrE=";
+    hash = "sha256-XI4E+fWDIYDiYBv6HezytaZmhzv4NUaNam1T5Fyx+LI=";
   };
 
   prePatch = ''
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix
index 539c263b9ac2..0320fa5c4f01 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-table-extra";
-  version = "5.1.2";
+  version = "5.1.3";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    sha256 = "sha256-QkOEycKFDvrT+iOQM8/7JUb4iBlX7ZA9av5flZijNDI=";
+    hash = "sha256-w4JFZvYFL3fHrDgZqYND2bl3lT9/O1GXgfOwR7WyzWY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-libpinyin/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-libpinyin/default.nix
index ccabc9b58444..b00ca264bc15 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-libpinyin/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-libpinyin/default.nix
@@ -20,13 +20,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ibus-libpinyin";
-  version = "1.15.6";
+  version = "1.15.7";
 
   src = fetchFromGitHub {
     owner = "libpinyin";
     repo = "ibus-libpinyin";
     rev = version;
-    hash = "sha256-cfV/VBCVtwI4qDwuU2563jMjxQqDs7VXGxkFn4w8IqM=";
+    hash = "sha256-Sr0zB6VeEYGDu1gx2kTVoaTm131F4K+/QH/+ibcbMT8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix
index 7333558aaaef..220c89ca175d 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix
@@ -1,89 +1,86 @@
-{ lib, stdenv, fetchFromGitHub, which, ninja, pkg-config, protobuf
-, ibus, gtk2, zinnia, qt5, libxcb, tegaki-zinnia-japanese, python3Packages }:
-
-stdenv.mkDerivation rec {
+{ lib
+, buildBazelPackage
+, fetchFromGitHub
+, qt6
+, pkg-config
+, bazel
+, ibus
+, unzip
+, xdg-utils
+}:
+let
+  zip-codes = fetchFromGitHub {
+    owner = "musjj";
+    repo = "jp-zip-codes";
+    rev = "a1eed9bae0ba909c8c8f5387008b08ff490f5e57";
+    hash = "sha256-VfI8qAMPPCC2H4vjm4a6sAmSwc1YkXlMyLm1cnufvrU=";
+  };
+in
+buildBazelPackage rec {
   pname = "ibus-mozc";
-  version = "2.26.4660.102";
+  version = "2.29.5268.102";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "mozc";
-    rev = "refs/tags/${version}";
-    hash = "sha256-sgsfJZALpPHFB5bXu4OkRssViRDaPcgLfEyGhbqvJbI=";
+    rev = version;
+    hash = "sha256-B7hG8OUaQ1jmmcOPApJlPVcB8h1Rw06W5LAzlTzI9rU=";
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [
-    which ninja python3Packages.python python3Packages.six
-    python3Packages.gyp pkg-config qt5.wrapQtAppsHook
-  ];
+  nativeBuildInputs = [ qt6.wrapQtAppsHook pkg-config unzip ];
 
-  buildInputs = [ protobuf ibus gtk2 zinnia qt5.qtbase libxcb ];
+  buildInputs = [ ibus qt6.qtbase ];
 
-  postUnpack = lib.optionalString stdenv.isLinux ''
-    sed -i 's/-lc++/-lstdc++/g' $sourceRoot/src/gyp/common.gypi
-  '';
+  dontAddBazelOpts = true;
+  removeRulesCC = false;
 
-  configurePhase = ''
-    runHook preConfigure
+  inherit bazel;
 
-    export GYP_DEFINES="document_dir=$out/share/doc/mozc use_libzinnia=1 use_libprotobuf=1 ibus_mozc_path=$out/lib/ibus-mozc/ibus-engine-mozc zinnia_model_file=${tegaki-zinnia-japanese}/share/tegaki/models/zinnia/handwriting-ja.model"
-    cd src && python build_mozc.py gyp --gypdir=${python3Packages.gyp}/bin --server_dir=$out/lib/mozc
+  fetchAttrs = {
+    sha256 = "sha256-17QHh1MJUu8OK/T+WSpLXEx83DmRORLN7yLzILqP7vw=";
 
-    runHook postConfigure
-  '';
+    # remove references of buildInputs
+    preInstall = ''
+      rm -rv $bazelOut/external/{ibus,qt_linux}
+    '';
+  };
 
-  buildPhase = ''
-    runHook preBuild
+  bazelFlags = [ "--config" "oss_linux" "--compilation_mode" "opt" ];
 
-    PYTHONPATH="$PWD:$PYTHONPATH" python build_mozc.py build -c Release \
-      unix/ibus/ibus.gyp:ibus_mozc \
-      unix/emacs/emacs.gyp:mozc_emacs_helper \
-      server/server.gyp:mozc_server \
-      gui/gui.gyp:mozc_tool \
-      renderer/renderer.gyp:mozc_renderer
+  bazelTargets = [ "package" ];
 
-    runHook postBuild
+  postPatch = ''
+    substituteInPlace src/config.bzl \
+      --replace-fail "/usr/bin/xdg-open" "${xdg-utils}/bin/xdg-open" \
+      --replace-fail "/usr" "$out"
+    substituteInPlace src/WORKSPACE.bazel \
+      --replace-fail "https://www.post.japanpost.jp/zipcode/dl/kogaki/zip/ken_all.zip" "file://${zip-codes}/ken_all.zip" \
+      --replace-fail "https://www.post.japanpost.jp/zipcode/dl/jigyosyo/zip/jigyosyo.zip" "file://${zip-codes}/jigyosyo.zip"
   '';
 
-  installPhase = ''
+  preConfigure = ''
+    cd src
+  '';
+
+  buildAttrs.installPhase = ''
     runHook preInstall
 
-    install -d        $out/share/licenses/mozc
-    head -n 29 server/mozc_server.cc > $out/share/licenses/mozc/LICENSE
-    install -m 644    data/installer/*.html $out/share/licenses/mozc/
-
-    install -D -m 755 out_linux/Release/mozc_server $out/lib/mozc/mozc_server
-    install    -m 755 out_linux/Release/mozc_tool   $out/lib/mozc/mozc_tool
-    wrapQtApp $out/lib/mozc/mozc_tool
-
-    install -d        $out/share/doc/mozc
-    install -m 644    data/installer/*.html $out/share/doc/mozc/
-
-    install -D -m 755 out_linux/Release/ibus_mozc           $out/lib/ibus-mozc/ibus-engine-mozc
-    install -D -m 644 out_linux/Release/gen/unix/ibus/mozc.xml $out/share/ibus/component/mozc.xml
-    install -D -m 644 data/images/unix/ime_product_icon_opensource-32.png $out/share/ibus-mozc/product_icon.png
-    install    -m 644 data/images/unix/ui-tool.png          $out/share/ibus-mozc/tool.png
-    install    -m 644 data/images/unix/ui-properties.png    $out/share/ibus-mozc/properties.png
-    install    -m 644 data/images/unix/ui-dictionary.png    $out/share/ibus-mozc/dictionary.png
-    install    -m 644 data/images/unix/ui-direct.png        $out/share/ibus-mozc/direct.png
-    install    -m 644 data/images/unix/ui-hiragana.png      $out/share/ibus-mozc/hiragana.png
-    install    -m 644 data/images/unix/ui-katakana_half.png $out/share/ibus-mozc/katakana_half.png
-    install    -m 644 data/images/unix/ui-katakana_full.png $out/share/ibus-mozc/katakana_full.png
-    install    -m 644 data/images/unix/ui-alpha_half.png    $out/share/ibus-mozc/alpha_half.png
-    install    -m 644 data/images/unix/ui-alpha_full.png    $out/share/ibus-mozc/alpha_full.png
-    install -D -m 755 out_linux/Release/mozc_renderer       $out/lib/mozc/mozc_renderer
-    install -D -m 755 out_linux/Release/mozc_emacs_helper   $out/lib/mozc/mozc_emacs_helper
+    unzip bazel-bin/unix/mozc.zip -x "tmp/*" -d /
 
     runHook postInstall
   '';
 
+  passthru = {
+    inherit zip-codes;
+  };
+
   meta = with lib; {
     isIbusEngine = true;
     description = "Japanese input method from Google";
     homepage = "https://github.com/google/mozc";
     license = licenses.free;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ gebner ericsagnes ];
+    maintainers = with maintainers; [ gebner ericsagnes pineapplehunter ];
   };
 }
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 8a6a7217dea6..96d532db725f 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.24.11";
+  version = "2.24.12";
 
   src = fetchFromGitHub {
     owner = "mike-fabian";
     repo = "ibus-typing-booster";
     rev = version;
-    hash = "sha256-qksAtEUdvRddkl1tLfDqGhJDGwT605/IJOuIFVxgI0s=";
+    hash = "sha256-RHmU+wcorC78Pa21DrhOLz3ztv8kByWo5l1i8F/LZO4=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config wrapGAppsHook gobject-introspection ];
diff --git a/pkgs/tools/inputmethods/interception-tools/dual-function-keys.nix b/pkgs/tools/inputmethods/interception-tools/dual-function-keys.nix
index bd06d07b4170..022e7dfa0389 100644
--- a/pkgs/tools/inputmethods/interception-tools/dual-function-keys.nix
+++ b/pkgs/tools/inputmethods/interception-tools/dual-function-keys.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "dual-function-keys";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchFromGitLab {
     group = "interception";
     owner = "linux/plugins";
     repo = pname;
     rev = version;
-    sha256 = "sha256-xlplbkeptXMBlRnSsc5NgGJfT8aoZxTRgTwTOd7aiWg=";
+    hash = "sha256-m/oEczUNKqj0gs/zMOIBxoQaffNg+YyPINMXArkATJ4=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/tools/inputmethods/m17n-lib/default.nix b/pkgs/tools/inputmethods/m17n-lib/default.nix
index c526f6a844d7..ca586a449703 100644
--- a/pkgs/tools/inputmethods/m17n-lib/default.nix
+++ b/pkgs/tools/inputmethods/m17n-lib/default.nix
@@ -7,11 +7,11 @@
 }:
 stdenv.mkDerivation rec {
   pname = "m17n-lib";
-  version = "1.8.2";
+  version = "1.8.4";
 
   src = fetchurl {
     url = "https://download.savannah.gnu.org/releases/m17n/m17n-lib-${version}.tar.gz";
-    hash = "sha256-5bA0SvnxFdlJV6P5ud68T45nG2n4wf1eC2iKeU16J/I=";
+    hash = "sha256-xqJYLG5PKowueihE+lx+s2Oq0lOLBS8gPHEGSd1CHMg=";
   };
 
   strictDeps = true;
diff --git a/pkgs/tools/inputmethods/remote-touchpad/default.nix b/pkgs/tools/inputmethods/remote-touchpad/default.nix
index b4e781575e3c..aef0afc576ab 100644
--- a/pkgs/tools/inputmethods/remote-touchpad/default.nix
+++ b/pkgs/tools/inputmethods/remote-touchpad/default.nix
@@ -9,19 +9,19 @@
 
 buildGoModule rec {
   pname = "remote-touchpad";
-  version = "1.4.3";
+  version = "1.4.5";
 
   src = fetchFromGitHub {
     owner = "unrud";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-EfZ8h65jFVdy/U7I2YDoIMHgnnYpUcrOYUAMCPOmK6U=";
+    sha256 = "sha256-usJAiGjUGGO4Gb9LMGWR6mG3r8C++llteqn5WpwqqFk=";
   };
 
   buildInputs = [ libXi libXrandr libXt libXtst ];
   tags = [ "portal,x11" ];
 
-  vendorHash = "sha256-UX366UWROeorwYV4l1A3R03J10Gm7EajM+wEczIJEJM=";
+  vendorHash = "sha256-vL6kSm0yPEn5TNpB6E+2+Xjm/ANNUxgA8XEWz9n7kHI=";
 
   meta = with lib; {
     description = "Control mouse and keyboard from the web browser of a smartphone";
diff --git a/pkgs/tools/misc/asdf-vm/default.nix b/pkgs/tools/misc/asdf-vm/default.nix
index 1247039e8c64..c9b7f27c42b0 100644
--- a/pkgs/tools/misc/asdf-vm/default.nix
+++ b/pkgs/tools/misc/asdf-vm/default.nix
@@ -37,13 +37,13 @@ ${asdfReshimFile}
   '';
 in stdenv.mkDerivation rec {
   pname = "asdf-vm";
-  version = "0.13.1";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "asdf-vm";
     repo = "asdf";
     rev = "v${version}";
-    sha256 = "sha256-9Levs1Wr7Lohhvpy+1Xq3AYyf7+VsBalvAAA7qq6heI=";
+    sha256 = "sha256-DmwKzW0oHjokMxj2RMT4iogurEMKeAcl7MWlPTOqMmg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/audible-cli/default.nix b/pkgs/tools/misc/audible-cli/default.nix
index e7f073451b5d..297917b6a92a 100644
--- a/pkgs/tools/misc/audible-cli/default.nix
+++ b/pkgs/tools/misc/audible-cli/default.nix
@@ -2,14 +2,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "audible-cli";
-  version = "0.2.5";
+  version = "0.2.6";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "mkb79";
     repo = "audible-cli";
     rev = "refs/tags/v${version}";
-    hash = "sha256-YGvnye6YSp/H/2HAw6A8z5VzzCqa3ktJucq+3cXPUpc=";
+    hash = "sha256-J81RcehFokOpsQBJLvmeihSrlMyX0geHPl3PPxvGjmY=";
   };
 
   nativeBuildInputs = with python3Packages; [
diff --git a/pkgs/tools/misc/barman/default.nix b/pkgs/tools/misc/barman/default.nix
index f310b99f811f..b4bf50437218 100644
--- a/pkgs/tools/misc/barman/default.nix
+++ b/pkgs/tools/misc/barman/default.nix
@@ -6,13 +6,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "barman";
-  version = "3.7.0";
+  version = "3.10.0";
 
   src = fetchFromGitHub {
     owner = "EnterpriseDB";
     repo = pname;
     rev = "refs/tags/release/${version}";
-    hash = "sha256-5mecCg5c+fu6WUgmNEL4BR+JCild02YAuYgLwO1MGnI=";
+    hash = "sha256-NcDW1SLeP2BVH+TQp1M03Otg75axSFXfwQzlEJ1JOxo=";
   };
 
   patches = [
diff --git a/pkgs/tools/misc/birdfont/xmlbird.nix b/pkgs/tools/misc/birdfont/xmlbird.nix
index 10aec3834351..2fbdbcf777a5 100644
--- a/pkgs/tools/misc/birdfont/xmlbird.nix
+++ b/pkgs/tools/misc/birdfont/xmlbird.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "xmlbird";
-  version = "1.2.14";
+  version = "1.2.15";
 
   src = fetchurl {
     url = "https://birdfont.org/${pname}-releases/lib${pname}-${version}.tar.xz";
-    sha256 = "sha256-qygvJC1glSfvwWL7oQPFykgitvnWXwHMhycSjSBGksU=";
+    sha256 = "sha256-8GX4ijF+AxaGGFlSxRPOAoUezRG6592jOrifz/mWTRM=";
   };
 
   nativeBuildInputs = [ python3 pkg-config vala gobject-introspection ];
diff --git a/pkgs/tools/misc/bkt/default.nix b/pkgs/tools/misc/bkt/default.nix
index 61926352ce33..beef0b8412ca 100644
--- a/pkgs/tools/misc/bkt/default.nix
+++ b/pkgs/tools/misc/bkt/default.nix
@@ -4,16 +4,16 @@
 }: rustPlatform.buildRustPackage rec {
 
   pname = "bkt";
-  version = "0.7.1";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "dimo414";
     repo = pname;
     rev = version;
-    sha256 = "sha256-CMCO1afTWhXlWpy9D7txqI1FHxGDgdVdkKtyei6oFJU=";
+    sha256 = "sha256-XQK7oZfutqCvFoGzMH5G5zoGvqB8YaXSdrwjS/SVTNU=";
   };
 
-  cargoHash = "sha256-T4JT8GzKqsQQfe3zfst6gNEvdY7zs2h2H3s6slaRhYY=";
+  cargoHash = "sha256-Pl+a+ZpxaguRloH8R7x4FmYpTwTUwFrYy7AS/5K3L+8=";
 
   meta = {
     description = "A subprocess caching utility";
diff --git a/pkgs/tools/misc/bonk/default.nix b/pkgs/tools/misc/bonk/default.nix
index e7dab4f657e1..cfd815d66b31 100644
--- a/pkgs/tools/misc/bonk/default.nix
+++ b/pkgs/tools/misc/bonk/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "bonk";
-  version = "0.3.2";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "elliot40404";
     repo = "bonk";
     rev = "v${version}";
-    hash = "sha256-Y6Hia+B7kIvdvpuZwWGJBsn+pOBmMynXai4KWkNs4ck=";
+    hash = "sha256-sAMIteNkGRqmE7BQD/TNC01K3eQQTLKuc0jcxHxtKF8=";
   };
 
-  cargoHash = "sha256-XphSjB49zFB3zXYpdjjcVRdTAW2Bvg91aZkxDLvFy3M=";
+  cargoHash = "sha256-/qBuIG5ETUWMv2iOGpW3/awuhZb35qsBAflNJv3xTUs=";
 
   meta = {
     description = "The blazingly fast touch alternative written in Rust";
diff --git a/pkgs/tools/misc/bonsai/default.nix b/pkgs/tools/misc/bonsai/default.nix
deleted file mode 100644
index 1148eb6e98d3..000000000000
--- a/pkgs/tools/misc/bonsai/default.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-{ stdenv
-, lib
-, fetchFromSourcehut
-, gitUpdater
-, hare
-, hareThirdParty
-}:
-
-stdenv.mkDerivation rec {
-  pname = "bonsai";
-  version = "1.0.2";
-
-  src = fetchFromSourcehut {
-    owner = "~stacyharper";
-    repo = "bonsai";
-    rev = "v${version}";
-    hash = "sha256-Yosf07KUOQv4O5111tLGgI270g0KVGwzdTPtPOsTcP8=";
-  };
-
-  postPatch = ''
-    substituteInPlace Makefile \
-      --replace 'hare build' 'hare build $(HARE_TARGET_FLAGS)'
-  '';
-
-  nativeBuildInputs = [
-    hare
-  ];
-
-  buildInputs = with hareThirdParty; [
-    hare-ev
-    hare-json
-  ];
-
-  env.HARE_TARGET_FLAGS =
-    if stdenv.hostPlatform.isAarch64 then
-      "-a aarch64"
-    else if stdenv.hostPlatform.isRiscV64 then
-      "-a riscv64"
-    else if stdenv.hostPlatform.isx86_64 then
-      "-a x86_64"
-    else
-      "";
-  # TODO: hare setup-hook is supposed to do this for us.
-  # It does it correctly for native compilation, but not cross compilation: wrong offset?
-  env.HAREPATH = with hareThirdParty; "${hare-json}/src/hare/third-party:${hare-ev}/src/hare/third-party";
-
-  preConfigure = ''
-    export HARECACHE=$(mktemp -d)
-  '';
-
-  installFlags = [ "PREFIX=$(out)" ];
-
-  doCheck = true;
-
-  passthru.updateScript = gitUpdater {
-    rev-prefix = "v";
-  };
-
-  meta = with lib; {
-    description = "Finite State Machine structured as a tree";
-    homepage = "https://git.sr.ht/~stacyharper/bonsai";
-    license = licenses.agpl3;
-    maintainers = with maintainers; [ colinsane ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/tools/misc/btrfs-assistant/default.nix b/pkgs/tools/misc/btrfs-assistant/default.nix
index 936409c3c019..474a5e5dc5b4 100644
--- a/pkgs/tools/misc/btrfs-assistant/default.nix
+++ b/pkgs/tools/misc/btrfs-assistant/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "btrfs-assistant";
-  version = "1.8";
+  version = "1.9";
 
   src = fetchFromGitLab {
     owner = "btrfs-assistant";
     repo = "btrfs-assistant";
     rev = finalAttrs.version;
-    hash = "sha256-Ay2wxDVue+tG09RgAo4Zg2ktlq6dk7GdIwAlbuVULB4=";
+    hash = "sha256-a854WI8f9/G/BRU5rn1FKC6WRZyXNYsUL4p258C8ppw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/chafa/default.nix b/pkgs/tools/misc/chafa/default.nix
index 828877acbdae..2ba80d7565d3 100644
--- a/pkgs/tools/misc/chafa/default.nix
+++ b/pkgs/tools/misc/chafa/default.nix
@@ -4,14 +4,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.12.5";
+  version = "1.14.0";
   pname = "chafa";
 
   src = fetchFromGitHub {
     owner = "hpjansson";
     repo = "chafa";
     rev = version;
-    sha256 = "sha256-2li2Vp+W4Q2/8WY8FJ519BuVR9KzddIJ1j/GY/hLMZo=";
+    sha256 = "sha256-7l8+WD5/5uBXVnhwqiEScIEQ1dg0W2zqqZJ2AeKCZRU=";
   };
 
   nativeBuildInputs = [ autoconf
diff --git a/pkgs/tools/misc/chatgpt-cli/default.nix b/pkgs/tools/misc/chatgpt-cli/default.nix
index 661e38a02595..b823eb997e84 100644
--- a/pkgs/tools/misc/chatgpt-cli/default.nix
+++ b/pkgs/tools/misc/chatgpt-cli/default.nix
@@ -5,22 +5,18 @@
 }:
 buildGoModule rec {
   pname = "chatgpt";
-  version = "1.2.0";
+  version = "1.3.4";
 
   src = fetchFromGitHub {
     owner = "j178";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-5tEtkEDQxWFVWyK7uipm20yccCPkCDaMLzS25MmGRbE=";
+    hash = "sha256-PwC/LyWGgFdj1aye8A/W9wc78z9mEbvz4DNsB0eHtl0=";
   };
 
-  vendorHash = "sha256-q1+4KExXth7+UC8h0+M6ChnW7T1j468umi7Q1jwnzgo=";
+  vendorHash = "sha256-hmg301m4Zn7BzlOJ6VVySkxwFt7CDT7MS9EH1JqeW/E=";
 
-  subPackages = [ "cmd" ];
-
-  postInstall = ''
-    mv $out/bin/cmd $out/bin/$pname
-  '';
+  subPackages = [ "cmd/chatgpt" ];
 
   meta = with lib; {
     description = "Interactive CLI for ChatGPT";
diff --git a/pkgs/tools/misc/chezmoi/default.nix b/pkgs/tools/misc/chezmoi/default.nix
index 59eb121fefb6..52bbd78bef63 100644
--- a/pkgs/tools/misc/chezmoi/default.nix
+++ b/pkgs/tools/misc/chezmoi/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "chezmoi";
-  version = "2.45.0";
+  version = "2.46.0";
 
   src = fetchFromGitHub {
     owner = "twpayne";
     repo = "chezmoi";
     rev = "v${version}";
-    hash = "sha256-h17qbuicwYo2/ygJbhJbLqdcFWgZO/Sz8WQC/Addasc=";
+    hash = "sha256-A296BsUyZFgVUsoplkBJ1Xrr21VRjcRSqjk2JU44ilg=";
   };
 
-  vendorHash = "sha256-NqCNP+oG8+x6vYaV9bDfn8+Q1nbxV3L3vs8L4iYgypU=";
+  vendorHash = "sha256-EGc4l02by6K0j0RZZ7YuGkpJ8UaZ4cYcxBd+ECHdwq4=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/misc/colord/default.nix b/pkgs/tools/misc/colord/default.nix
index 2a4c2c001668..989f7d57e0b8 100644
--- a/pkgs/tools/misc/colord/default.nix
+++ b/pkgs/tools/misc/colord/default.nix
@@ -32,13 +32,13 @@
 
 stdenv.mkDerivation rec {
   pname = "colord";
-  version = "1.4.6";
+  version = "1.4.7";
 
   outputs = [ "out" "dev" "devdoc" "man" "installedTests" ];
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/colord/releases/${pname}-${version}.tar.xz";
-    sha256 = "dAdjGie/5dG2cueuQndwAcEF2GC3tzkig8jGMA3ojm8=";
+    hash = "sha256-3gLZkQY0rhWVR1hc7EFORQ9xHCcjVFO0+bOKnyNhplM=";
   };
 
   patches = [
diff --git a/pkgs/tools/misc/copier/default.nix b/pkgs/tools/misc/copier/default.nix
index c1e8568dfd50..2b1a65cf99eb 100644
--- a/pkgs/tools/misc/copier/default.nix
+++ b/pkgs/tools/misc/copier/default.nix
@@ -2,7 +2,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "copier";
-  version = "8.1.0";
+  version = "9.1.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
@@ -13,7 +13,7 @@ python3.pkgs.buildPythonApplication rec {
     postFetch = ''
       rm $out/tests/demo/doc/ma*ana.txt
     '';
-    hash = "sha256-PxyXlmEZ9cqZgDWcdeNznEC4F1J4NFMiwy0D7g+YZUs=";
+    hash = "sha256-x5r7Xv4lAOMkR+UIEeSY7LvbYMLpTWYuICYe9ygz1tA=";
   };
 
   POETRY_DYNAMIC_VERSIONING_BYPASS = version;
@@ -52,7 +52,7 @@ python3.pkgs.buildPythonApplication rec {
     description = "Library and command-line utility for rendering projects templates";
     homepage = "https://copier.readthedocs.io";
     license = licenses.mit;
-    maintainers = with maintainers; [ jonringer ];
+    maintainers = with maintainers; [ jonringer greg ];
     mainProgram = "copier";
   };
 }
diff --git a/pkgs/tools/misc/coreutils/default.nix b/pkgs/tools/misc/coreutils/default.nix
index c1279a69ccf7..24e25e584d4b 100644
--- a/pkgs/tools/misc/coreutils/default.nix
+++ b/pkgs/tools/misc/coreutils/default.nix
@@ -129,10 +129,8 @@ stdenv.mkDerivation rec {
   # Darwin (http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/19351),
   # and {Open,Free}BSD.
   # With non-standard storeDir: https://github.com/NixOS/nix/issues/512
-  # On aarch64+musl, test-init.sh fails due to a segfault in diff.
   doCheck = (!isCross)
     && (stdenv.hostPlatform.libc == "glibc" || stdenv.hostPlatform.libc == "musl")
-    && !(stdenv.hostPlatform.libc == "musl" && stdenv.hostPlatform.isAarch64)
     && !stdenv.isAarch32;
 
   # Prevents attempts of running 'help2man' on cross-built binaries.
diff --git a/pkgs/tools/misc/cyberchef/default.nix b/pkgs/tools/misc/cyberchef/default.nix
index 7d667a90cbd1..d549590a3e67 100644
--- a/pkgs/tools/misc/cyberchef/default.nix
+++ b/pkgs/tools/misc/cyberchef/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cyberchef";
-  version = "10.5.2";
+  version = "10.6.0";
 
   src = fetchzip {
     url = "https://github.com/gchq/CyberChef/releases/download/v${version}/CyberChef_v${version}.zip";
-    sha256 = "sha256-sN8dCgmLj0jHfoaUNk2ml/iEJy8/QFfCTRCn9tyTz78=";
+    sha256 = "sha256-vJ2NbD0SqUd5HKkjaZXPxn48xC1vMS95dnmp+u2W1SM=";
     stripRoot = false;
   };
 
diff --git a/pkgs/tools/misc/dateutils/default.nix b/pkgs/tools/misc/dateutils/default.nix
index 58f6d0ef7ceb..60219070d96a 100644
--- a/pkgs/tools/misc/dateutils/default.nix
+++ b/pkgs/tools/misc/dateutils/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, autoreconfHook, tzdata }:
 
 stdenv.mkDerivation rec {
-  version = "0.4.10";
+  version = "0.4.11";
   pname = "dateutils";
 
   src = fetchurl {
     url = "https://bitbucket.org/hroptatyr/dateutils/downloads/${pname}-${version}.tar.xz";
-    sha256 = "sha256-PFCOKIm51a7Kt9WdcyWnAIlZMRGhIwpJbasPWtZ3zew=";
+    sha256 = "sha256-uP6gsJcUu63yArmzQ0zOa1nCgueGkmjQwIuFiA/btEY=";
   };
 
   # https://github.com/hroptatyr/dateutils/issues/148
diff --git a/pkgs/tools/misc/ddcutil/default.nix b/pkgs/tools/misc/ddcutil/default.nix
index 285fd3799711..45b34333b7fc 100644
--- a/pkgs/tools/misc/ddcutil/default.nix
+++ b/pkgs/tools/misc/ddcutil/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ddcutil";
-  version = "2.0.0";
+  version = "2.1.2";
 
   src = fetchurl {
     url = "https://www.ddcutil.com/tarballs/ddcutil-${version}.tar.gz";
-    hash = "sha256-CunFRQHKk3q8CU60TSRnRoCW7+9X1+JpJHm773HhmZs=";
+    hash = "sha256-2SYH+8sEeCY55T8aNO3UJ8NN4g2dfzsv3DlTS2p22/s=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/tools/misc/debian-devscripts/default.nix b/pkgs/tools/misc/debian-devscripts/default.nix
index b8a58ff400e2..d70994753dbd 100644
--- a/pkgs/tools/misc/debian-devscripts/default.nix
+++ b/pkgs/tools/misc/debian-devscripts/default.nix
@@ -39,7 +39,7 @@ in stdenv.mkDerivation rec {
 
   preConfigure = ''
     export PERL5LIB="$PERL5LIB''${PERL5LIB:+:}${dpkg}";
-    tgtpy="$out/lib/${python.libPrefix}/site-packages"
+    tgtpy="$out/${python.sitePackages}"
     mkdir -p "$tgtpy"
     export PYTHONPATH="$PYTHONPATH''${PYTHONPATH:+:}$tgtpy"
     find lib po4a scripts -type f -exec sed -r \
diff --git a/pkgs/tools/misc/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix
index 4636266e0279..dea8deaffd67 100644
--- a/pkgs/tools/misc/diffoscope/default.nix
+++ b/pkgs/tools/misc/diffoscope/default.nix
@@ -79,11 +79,11 @@
 # Note: when upgrading this package, please run the list-missing-tools.sh script as described below!
 python3.pkgs.buildPythonApplication rec {
   pname = "diffoscope";
-  version = "253";
+  version = "254";
 
   src = fetchurl {
     url = "https://diffoscope.org/archive/diffoscope-${version}.tar.bz2";
-    hash = "sha256-xI+SIEUPKFxz7sk9qqE1ibSJX0WRPnJEpco0Mqv7Wp8=";
+    hash = "sha256-LsRJUFrWMo9OiKL0/yBokAxY0b4gMGVRHyWMS1zhDjE=";
   };
 
   outputs = [
@@ -219,7 +219,7 @@ python3.pkgs.buildPythonApplication rec {
     # oggvideotools is broken on Darwin, please put it back when it will be fixed?
     ++ lib.optionals stdenv.isLinux [ oggvideotools ]
     # This doesn't work on aarch64-darwin
-    ++ lib.optionals (stdenv.hostPlatform != "aarch64-darwin") [ gnumeric ]
+    ++ lib.optionals (stdenv.hostPlatform.system != "aarch64-darwin") [ gnumeric ]
   ));
 
   nativeCheckInputs = with python3.pkgs; [
@@ -248,6 +248,15 @@ python3.pkgs.buildPythonApplication rec {
     "test_non_unicode_filename"
     "test_listing"
     "test_symlink_root"
+
+    # Appears to be a sandbox related issue
+    "test_trim_stderr_in_command"
+    # Seems to be a bug caused by having different versions of rdata than
+    # expected. Will file upstream.
+    "test_item_rdb"
+    # Caused by getting an otool command instead of llvm-objdump. Could be Nix
+    # setup, could be upstream bug. Will file upstream.
+    "test_libmix_differences"
   ];
 
   disabledTestPaths = [
diff --git a/pkgs/tools/misc/doitlive/default.nix b/pkgs/tools/misc/doitlive/default.nix
index 483b36d98d31..9e1d83bb4d98 100644
--- a/pkgs/tools/misc/doitlive/default.nix
+++ b/pkgs/tools/misc/doitlive/default.nix
@@ -2,13 +2,16 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "doitlive";
-  version = "4.3.0";
+  version = "5.0.0";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03qrs032x206xrl0x3z0fpvxgjivzz9rkmb11bqlk1id10707cac";
+    hash = "sha256-jAoibszDpQJjiNCZDhX3fLniALOG7r9YqaYEySkmMM4=";
   };
 
+  nativeBuildInputs = with python3Packages; [ setuptools ];
+
   propagatedBuildInputs = with python3Packages; [ click click-completion click-didyoumean ];
 
   # disable tests (too many failures)
@@ -16,7 +19,8 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool for live presentations in the terminal";
-    homepage = "https://pypi.python.org/pypi/doitlive";
+    homepage = "https://github.com/sloria/doitlive";
+    changelog = "https://github.com/sloria/doitlive/blob/${version}/CHANGELOG.rst";
     license = licenses.mit;
     maintainers = with maintainers; [ mbode ];
     mainProgram = "doitlive";
diff --git a/pkgs/tools/misc/dooit/default.nix b/pkgs/tools/misc/dooit/default.nix
index 7e251e2f339e..1621ea8e5249 100644
--- a/pkgs/tools/misc/dooit/default.nix
+++ b/pkgs/tools/misc/dooit/default.nix
@@ -7,14 +7,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "dooit";
-  version = "2.1.1";
+  version = "2.2.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "kraanzu";
     repo = "dooit";
     rev = "v${version}";
-    hash = "sha256-YfWfh8oDZSG1DdAV+hzchqyNSSqyeNR5SSEa9B5yGY8=";
+    hash = "sha256-GtXRzj+o+FClleh73kqelk0JrSyafZhf847lX1BiS9k=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/misc/edir/default.nix b/pkgs/tools/misc/edir/default.nix
index 9fd1c70ba7eb..41e51a251b38 100644
--- a/pkgs/tools/misc/edir/default.nix
+++ b/pkgs/tools/misc/edir/default.nix
@@ -2,12 +2,12 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "edir";
-  version = "2.22";
+  version = "2.27";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-Z4p16v0J7mgl1Av8tdUZ6vSILgbOpLHs3rWx2P7AH+E=";
+    sha256 = "sha256-i9c5DDZnCj6Roqw6fpy+rhX2/Sup1hh8vIpsRcWZQFc=";
   };
 
   nativeBuildInputs = with python3Packages; [
diff --git a/pkgs/tools/misc/esphome/default.nix b/pkgs/tools/misc/esphome/default.nix
index 4baf50a063e7..16aa65b83beb 100644
--- a/pkgs/tools/misc/esphome/default.nix
+++ b/pkgs/tools/misc/esphome/default.nix
@@ -6,6 +6,8 @@
 , platformio
 , esptool
 , git
+, inetutils
+, stdenv
 }:
 
 let
@@ -17,14 +19,14 @@ let
 in
 python.pkgs.buildPythonApplication rec {
   pname = "esphome";
-  version = "2023.12.5";
+  version = "2023.12.9";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-ajpYwquVyznIngZKcWxI9Pyiqf4VYcWtGFRZSpi6+3I=";
+    hash = "sha256-8SHf6cbPYPZctjJgIuEb7eOJVi5hWNONyRnMXK0iBXc=";
   };
 
   nativeBuildInputs = with python.pkgs; [
@@ -74,14 +76,19 @@ python.pkgs.buildPythonApplication rec {
   ];
 
   makeWrapperArgs = [
-    # platformio is used in esphomeyaml/platformio_api.py
-    # esptool is used in esphomeyaml/__main__.py
-    # git is used in esphomeyaml/writer.py
-    "--prefix PATH : ${lib.makeBinPath [ platformio esptool git ]}"
+    # platformio is used in esphome/platformio_api.py
+    # esptool is used in esphome/__main__.py
+    # git is used in esphome/writer.py
+    # inetutils is used in esphome/dashboard/status/ping.py
+    "--prefix PATH : ${lib.makeBinPath [ platformio esptool git inetutils ]}"
     "--prefix PYTHONPATH : $PYTHONPATH" # will show better error messages
+    "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ stdenv.cc.cc.lib ]}"
     "--set ESPHOME_USE_SUBPROCESS ''"
   ];
 
+  # Needed for tests
+  __darwinAllowLocalNetworking = true;
+
   nativeCheckInputs = with python3Packages; [
     hypothesis
     mock
diff --git a/pkgs/tools/misc/esptool/default.nix b/pkgs/tools/misc/esptool/default.nix
index a06074b688d6..67eaacddaf6f 100644
--- a/pkgs/tools/misc/esptool/default.nix
+++ b/pkgs/tools/misc/esptool/default.nix
@@ -6,7 +6,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "esptool";
-  version = "4.6.2";
+  version = "4.7.0";
 
   format = "setuptools";
 
@@ -14,7 +14,7 @@ python3.pkgs.buildPythonApplication rec {
     owner = "espressif";
     repo = "esptool";
     rev = "v${version}";
-    hash = "sha256-3uvTyJrGCpulu/MR/VfCgnIxibxJj2ehBIBSveq7EfI=";
+    hash = "sha256-yrEwCg0e+8jZorL6jcqeuKUCFoV0oP9HVFh1n/ezjPg=";
   };
 
   postPatch = ''
@@ -28,6 +28,7 @@ python3.pkgs.buildPythonApplication rec {
     bitstring
     cryptography
     ecdsa
+    intelhex
     pyserial
     reedsolo
     pyyaml
diff --git a/pkgs/tools/misc/fastfetch/default.nix b/pkgs/tools/misc/fastfetch/default.nix
index 3b0bdf4476db..2e5b5714827d 100644
--- a/pkgs/tools/misc/fastfetch/default.nix
+++ b/pkgs/tools/misc/fastfetch/default.nix
@@ -32,13 +32,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "fastfetch";
-  version = "2.5.0";
+  version = "2.7.1";
 
   src = fetchFromGitHub {
     owner = "fastfetch-cli";
     repo = "fastfetch";
     rev = finalAttrs.version;
-    hash = "sha256-W/6Ye7IJi46SKPY9gnvHNRYwTwxGCJ6oY3KVPzcFvNM=";
+    hash = "sha256-s0N3Rt3lLOCyaeXeNYu6hlGtNtGR+YC7Aj4/3SeVMpQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/fedifetcher/default.nix b/pkgs/tools/misc/fedifetcher/default.nix
index 3a1192d698c1..dbf8c3bce281 100644
--- a/pkgs/tools/misc/fedifetcher/default.nix
+++ b/pkgs/tools/misc/fedifetcher/default.nix
@@ -2,14 +2,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "fedifetcher";
-  version = "7.0.1";
+  version = "7.0.3";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "nanos";
     repo = "FediFetcher";
     rev = "v${version}";
-    hash = "sha256-/Au6a93na3meb2j0eR8UCCg+TVW/UqWz3/TkASB94Eg=";
+    hash = "sha256-ADf6ZVqO9v6GQbNWi3NDX5bNmFDX5LMJfM6ePEWwbrQ=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/misc/fluent-bit/default.nix b/pkgs/tools/misc/fluent-bit/default.nix
index 8d7955ffc0b5..b5b24e3faee3 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 = "2.2.1";
+  version = "2.2.2";
 
   src = fetchFromGitHub {
     owner = "fluent";
     repo = "fluent-bit";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-XGmCEzFa0f+s2J+ZyNXeExxrwS3B7Fr4MUeH5y+hG78=";
+    hash = "sha256-+AkIoGIAwz5dqQGtTJQjz+a9jgtxU1zwDuivj862Rw0=";
   };
 
   nativeBuildInputs = [ cmake flex bison ];
diff --git a/pkgs/tools/misc/fpart/default.nix b/pkgs/tools/misc/fpart/default.nix
index 543734524649..d72a0bc9f85a 100644
--- a/pkgs/tools/misc/fpart/default.nix
+++ b/pkgs/tools/misc/fpart/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fpart";
-  version = "1.5.1";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "martymac";
     repo = "fpart";
     rev = "${pname}-${version}";
-    sha256 = "sha256-SULtbfUUzYgD/Q6wmgYSIldiGgk9MY4dr0hveTTMwvw=";
+    sha256 = "sha256-kAvGLd5W633fRS+qVD/yclreFfcauyLygQGtzv7AP24=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/tools/misc/fuc/default.nix b/pkgs/tools/misc/fuc/default.nix
index 1c033ba32349..f30c26092a97 100644
--- a/pkgs/tools/misc/fuc/default.nix
+++ b/pkgs/tools/misc/fuc/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fuc";
-  version = "1.1.10";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "SUPERCILEX";
     repo = "fuc";
     rev = version;
-    hash = "sha256-NFYIz8YwS4Qpj2owfqV5ZSCzRuUi8nEAJl0m3V46Vnk=";
+    hash = "sha256-Y43+LB6JXxpU94BrrjSBs2ge2g3NB7O3wYeU6rbF28U=";
   };
 
-  cargoHash = "sha256-QcpdAJH7Ry3VzSqXd1xM++Z44TCL6r9nrrt1OGj89oI=";
+  cargoHash = "sha256-uNG+7a9EvGLkPIu/p8tnucZ3R6/LhZ2Lfv7V0e5YIxs=";
 
   RUSTC_BOOTSTRAP = 1;
 
diff --git a/pkgs/tools/misc/fzf/default.nix b/pkgs/tools/misc/fzf/default.nix
index e091c7725b63..a64246693ee1 100644
--- a/pkgs/tools/misc/fzf/default.nix
+++ b/pkgs/tools/misc/fzf/default.nix
@@ -24,16 +24,16 @@ let
 in
 buildGoModule rec {
   pname = "fzf";
-  version = "0.45.0";
+  version = "0.46.1";
 
   src = fetchFromGitHub {
     owner = "junegunn";
     repo = pname;
     rev = version;
-    hash = "sha256-oOAXV3TZ/E2b+P1sUy/oblSBkOF8VN1di7a7dWPmCbo=";
+    hash = "sha256-gMSelLwIIYv/vkbdWi4Cw3FEy4lbC8P/5+T+c/e66+c=";
   };
 
-  vendorHash = "sha256-w/7Ds31mW1jnjkKVeaH81bLhasxNyy/SWeww20KhBrs=";
+  vendorHash = "sha256-8ojmIETUyZ3jDhrqkHYnxptRG8vdj0GADYvEpw0wi6w=";
 
   CGO_ENABLED = 0;
 
diff --git a/pkgs/tools/misc/gh-dash/default.nix b/pkgs/tools/misc/gh-dash/default.nix
index 22e6b50263ea..a42d1d165b7f 100644
--- a/pkgs/tools/misc/gh-dash/default.nix
+++ b/pkgs/tools/misc/gh-dash/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "gh-dash";
-  version = "3.11.1";
+  version = "3.12.0";
 
   src = fetchFromGitHub {
     owner = "dlvhdr";
     repo = "gh-dash";
     rev = "v${version}";
-    hash = "sha256-07tp8kfmK/YXfV0Yi4Z27BBAefbdJ0gj2ySq2xDB1nw=";
+    hash = "sha256-ijqEsjBNncrtg1DaVvwH2gxTgB3QOJCF1RxetnPBVII=";
   };
 
-  vendorHash = "sha256-33W2xd/T1g65eujTTr0q3gYn9np2iELWBEDAjcefwQc=";
+  vendorHash = "sha256-ezxwUfI8FevfeRmXN4Og9Gfw1GX9noagzWIg6GSPOPc=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/misc/gigalixir/default.nix b/pkgs/tools/misc/gigalixir/default.nix
index 0ba75bbc82b9..b700d1b70059 100644
--- a/pkgs/tools/misc/gigalixir/default.nix
+++ b/pkgs/tools/misc/gigalixir/default.nix
@@ -7,12 +7,12 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "gigalixir";
-  version = "1.6.0";
+  version = "1.10.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-01CoCT++mGiwZ40vAjU3OFE74WGWlBuhaTwsNFIR1a0=";
+    hash = "sha256-yIf8a54vA/1q5qhaWsrrROB1IB7X5f/KMoryPew4tAI=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/misc/github-backup/default.nix b/pkgs/tools/misc/github-backup/default.nix
index 0e4953ca6bc8..4f57b084ba60 100644
--- a/pkgs/tools/misc/github-backup/default.nix
+++ b/pkgs/tools/misc/github-backup/default.nix
@@ -7,12 +7,12 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "github-backup";
-  version = "0.44.1";
+  version = "0.45.0";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-tOCIrquhBS7aNeFocu8M9JV19vfFwrfIsaaePCp2vPw=";
+    hash = "sha256-bT5eqhpSK9u6Q4hO8FTgbpjjv0x2am1m2fOw5OqxixQ=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/misc/github-copilot-cli/default.nix b/pkgs/tools/misc/github-copilot-cli/default.nix
index 445b28819058..644f3f983b8e 100644
--- a/pkgs/tools/misc/github-copilot-cli/default.nix
+++ b/pkgs/tools/misc/github-copilot-cli/default.nix
@@ -2,14 +2,14 @@
 
 buildNpmPackage rec {
   pname = "github-copilot-cli";
-  version = "0.1.33";
+  version = "0.1.36";
 
   src = fetchzip {
     url = "https://registry.npmjs.org/@githubnext/${pname}/-/${pname}-${version}.tgz";
-    hash = "sha256-uTv6Z/AzvINinMiIfaaqRZDCmsAQ7tOE5SpuecpzGug=";
+    hash = "sha256-7n+7sN61OrqMVGaKll85+HwX7iGG9M/UW5lf2Pd5sRU=";
   };
 
-  npmDepsHash = "sha256-VIg9a63GH246SbmK4Q8CwA2jdaaOwNUXoJkuDVwy5jE=";
+  npmDepsHash = "sha256-h0StxzGbl3ZeOQ4Jy1BgJ5sJ0pAbubMCRsiIOYpU04w=";
 
   postPatch = ''
     cp ${./package-lock.json} package-lock.json
diff --git a/pkgs/tools/misc/github-copilot-cli/package-lock.json b/pkgs/tools/misc/github-copilot-cli/package-lock.json
index a25ef7cbd03e..03bc0c1fc339 100644
--- a/pkgs/tools/misc/github-copilot-cli/package-lock.json
+++ b/pkgs/tools/misc/github-copilot-cli/package-lock.json
@@ -1,15 +1,15 @@
 {
   "name": "@githubnext/github-copilot-cli",
-  "version": "0.1.33",
+  "version": "0.1.36",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "@githubnext/github-copilot-cli",
-      "version": "0.1.33",
+      "version": "0.1.36",
       "dependencies": {
-        "applicationinsights": "^2.3.6",
-        "axios": "^1.1.3",
+        "applicationinsights": "^2.9.1",
+        "axios": "^1.6.0",
         "chalk": "^5.1.0",
         "cli-highlight": "^2.1.11",
         "commander": "^9.4.1",
@@ -26,10 +26,13 @@
         "ora": "^6.1.2",
         "radash": "^9.1.0",
         "react": "17",
+        "react-devtools-core": "^4.28.4",
         "react-dom": "17",
         "react-query": "^3.39.2",
+        "semver": "^5.7.2",
         "simple-update-notifier": "^1.1.0",
         "tiny-invariant": "^1.3.1",
+        "tough-cookie": "^4.1.3",
         "ts-dedent": "^2.2.0",
         "use-zustand": "^0.0.1",
         "uuid": "^9.0.0",
@@ -60,15 +63,16 @@
       }
     },
     "node_modules/@azure/core-auth": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.4.0.tgz",
-      "integrity": "sha512-HFrcTgmuSuukRf/EdPmqBrc5l6Q5Uu+2TbuhaKbgaCpP2TfAeiNaQPAadxO+CYBRHGUzIDteMAjFspFLDLnKVQ==",
+      "version": "1.5.0",
+      "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.5.0.tgz",
+      "integrity": "sha512-udzoBuYG1VBoHVohDTrvKjyzel34zt77Bhp7dQntVGGD0ehVq48owENbBG8fIgkHRNUBQH5k1r0hpoMu5L8+kw==",
       "dependencies": {
         "@azure/abort-controller": "^1.0.0",
+        "@azure/core-util": "^1.1.0",
         "tslib": "^2.2.0"
       },
       "engines": {
-        "node": ">=12.0.0"
+        "node": ">=14.0.0"
       }
     },
     "node_modules/@azure/core-rest-pipeline": {
@@ -134,15 +138,15 @@
       }
     },
     "node_modules/@azure/opentelemetry-instrumentation-azure-sdk": {
-      "version": "1.0.0-beta.3",
-      "resolved": "https://registry.npmjs.org/@azure/opentelemetry-instrumentation-azure-sdk/-/opentelemetry-instrumentation-azure-sdk-1.0.0-beta.3.tgz",
-      "integrity": "sha512-9dvTQQ9OhjX0uh4PtDEMPGTP3WihTVLi+DHL9jRMQMPf0trYEbb8ZRIQNo+1JqchkR1YkBDBkki5hJstpUprtA==",
+      "version": "1.0.0-beta.5",
+      "resolved": "https://registry.npmjs.org/@azure/opentelemetry-instrumentation-azure-sdk/-/opentelemetry-instrumentation-azure-sdk-1.0.0-beta.5.tgz",
+      "integrity": "sha512-fsUarKQDvjhmBO4nIfaZkfNSApm1hZBzcvpNbSrXdcUBxu7lRvKsV5DnwszX7cnhLyVOW9yl1uigtRQ1yDANjA==",
       "dependencies": {
         "@azure/core-tracing": "^1.0.0",
         "@azure/logger": "^1.0.0",
-        "@opentelemetry/api": "^1.4.0",
-        "@opentelemetry/core": "^1.9.0",
-        "@opentelemetry/instrumentation": "^0.35.0",
+        "@opentelemetry/api": "^1.4.1",
+        "@opentelemetry/core": "^1.15.2",
+        "@opentelemetry/instrumentation": "^0.41.2",
         "tslib": "^2.2.0"
       },
       "engines": {
@@ -150,11 +154,11 @@
       }
     },
     "node_modules/@babel/runtime": {
-      "version": "7.21.5",
-      "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz",
-      "integrity": "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==",
+      "version": "7.23.8",
+      "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.8.tgz",
+      "integrity": "sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==",
       "dependencies": {
-        "regenerator-runtime": "^0.13.11"
+        "regenerator-runtime": "^0.14.0"
       },
       "engines": {
         "node": ">=6.9.0"
@@ -201,40 +205,53 @@
         "node": ">=12"
       }
     },
+    "node_modules/@ljharb/through": {
+      "version": "2.3.11",
+      "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.11.tgz",
+      "integrity": "sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==",
+      "dependencies": {
+        "call-bind": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
     "node_modules/@microsoft/applicationinsights-web-snippet": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-web-snippet/-/applicationinsights-web-snippet-1.0.1.tgz",
       "integrity": "sha512-2IHAOaLauc8qaAitvWS+U931T+ze+7MNWrDHY47IENP5y2UA0vqJDu67kWZDdpCN1fFC77sfgfB+HV7SrKshnQ=="
     },
     "node_modules/@opentelemetry/api": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.1.tgz",
-      "integrity": "sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA==",
+      "version": "1.7.0",
+      "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.7.0.tgz",
+      "integrity": "sha512-AdY5wvN0P2vXBi3b29hxZgSFvdhdxPB9+f0B6s//P9Q8nibRWeA3cHm8UmLpio9ABigkVHJ5NMPk+Mz8VCCyrw==",
       "engines": {
         "node": ">=8.0.0"
       }
     },
     "node_modules/@opentelemetry/core": {
-      "version": "1.12.0",
-      "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.12.0.tgz",
-      "integrity": "sha512-4DWYNb3dLs2mSCGl65jY3aEgbvPWSHVQV/dmDWiYeWUrMakZQFcymqZOSUNZO0uDrEJoxMu8O5tZktX6UKFwag==",
+      "version": "1.20.0",
+      "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.20.0.tgz",
+      "integrity": "sha512-lSRvk5AIdD6CtgYJcJXh0wGibQ3S/8bC2qbqKs9wK8e0K1tsWV6YkGFOqVc+jIRlCbZoIBeZzDe5UI+vb94uvg==",
       "dependencies": {
-        "@opentelemetry/semantic-conventions": "1.12.0"
+        "@opentelemetry/semantic-conventions": "1.20.0"
       },
       "engines": {
         "node": ">=14"
       },
       "peerDependencies": {
-        "@opentelemetry/api": ">=1.0.0 <1.5.0"
+        "@opentelemetry/api": ">=1.0.0 <1.8.0"
       }
     },
     "node_modules/@opentelemetry/instrumentation": {
-      "version": "0.35.1",
-      "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.35.1.tgz",
-      "integrity": "sha512-EZsvXqxenbRTSNsft6LDcrT4pjAiyZOx3rkDNeqKpwZZe6GmZtsXaZZKuDkJtz9fTjOGjDHjZj9/h80Ya9iIJw==",
-      "dependencies": {
-        "require-in-the-middle": "^5.0.3",
-        "semver": "^7.3.2",
+      "version": "0.41.2",
+      "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.41.2.tgz",
+      "integrity": "sha512-rxU72E0pKNH6ae2w5+xgVYZLzc5mlxAbGzF4shxMVK8YC2QQsfN38B2GPbj0jvrKWWNUElfclQ+YTykkNg/grw==",
+      "dependencies": {
+        "@types/shimmer": "^1.0.2",
+        "import-in-the-middle": "1.4.2",
+        "require-in-the-middle": "^7.1.1",
+        "semver": "^7.5.1",
         "shimmer": "^1.2.1"
       },
       "engines": {
@@ -244,41 +261,55 @@
         "@opentelemetry/api": "^1.3.0"
       }
     },
+    "node_modules/@opentelemetry/instrumentation/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==",
+      "dependencies": {
+        "lru-cache": "^6.0.0"
+      },
+      "bin": {
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
     "node_modules/@opentelemetry/resources": {
-      "version": "1.12.0",
-      "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.12.0.tgz",
-      "integrity": "sha512-gunMKXG0hJrR0LXrqh7BVbziA/+iJBL3ZbXCXO64uY+SrExkwoyJkpiq9l5ismkGF/A20mDEV7tGwh+KyPw00Q==",
+      "version": "1.20.0",
+      "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.20.0.tgz",
+      "integrity": "sha512-nOpV0vGegSq+9ze2cEDvO3BMA5pGBhmhKZiAlj+xQZjiEjPmJtdHIuBLRvptu2ahcbFJw85gIB9BYHZOvZK1JQ==",
       "dependencies": {
-        "@opentelemetry/core": "1.12.0",
-        "@opentelemetry/semantic-conventions": "1.12.0"
+        "@opentelemetry/core": "1.20.0",
+        "@opentelemetry/semantic-conventions": "1.20.0"
       },
       "engines": {
         "node": ">=14"
       },
       "peerDependencies": {
-        "@opentelemetry/api": ">=1.0.0 <1.5.0"
+        "@opentelemetry/api": ">=1.0.0 <1.8.0"
       }
     },
     "node_modules/@opentelemetry/sdk-trace-base": {
-      "version": "1.12.0",
-      "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.12.0.tgz",
-      "integrity": "sha512-pfCOB3tNDlYVoWuz4D7Ji+Jmy9MHnATWHVpkERdCEiwUGEZ+4IvNPXUcPc37wJVmMpjGLeaWgPPrie0KIpWf1A==",
+      "version": "1.20.0",
+      "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.20.0.tgz",
+      "integrity": "sha512-BAIZ0hUgnhdb3OBQjn1FKGz/Iwie4l+uOMKklP7FGh7PTqEAbbzDNMJKaZQh6KepF7Fq+CZDRKslD3yrYy2Tzw==",
       "dependencies": {
-        "@opentelemetry/core": "1.12.0",
-        "@opentelemetry/resources": "1.12.0",
-        "@opentelemetry/semantic-conventions": "1.12.0"
+        "@opentelemetry/core": "1.20.0",
+        "@opentelemetry/resources": "1.20.0",
+        "@opentelemetry/semantic-conventions": "1.20.0"
       },
       "engines": {
         "node": ">=14"
       },
       "peerDependencies": {
-        "@opentelemetry/api": ">=1.0.0 <1.5.0"
+        "@opentelemetry/api": ">=1.0.0 <1.8.0"
       }
     },
     "node_modules/@opentelemetry/semantic-conventions": {
-      "version": "1.12.0",
-      "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.12.0.tgz",
-      "integrity": "sha512-hO+bdeGOlJwqowUBoZF5LyP3ORUFOP1G0GRv8N45W/cztXbT2ZEXaAzfokRS9Xc9FWmYrDj32mF6SzH6wuoIyA==",
+      "version": "1.20.0",
+      "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.20.0.tgz",
+      "integrity": "sha512-3zLJJCgTKYpbqFX8drl8hOCHtdchELC+kGqlVcV4mHW1DiElTtv1Nt9EKBptTd1IfL56QkuYnWJ3DeHd2Gtu/A==",
       "engines": {
         "node": ">=14"
       }
@@ -292,9 +323,9 @@
       }
     },
     "node_modules/@types/inquirer": {
-      "version": "9.0.3",
-      "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-9.0.3.tgz",
-      "integrity": "sha512-CzNkWqQftcmk2jaCWdBTf9Sm7xSw4rkI1zpU/Udw3HX5//adEZUIm9STtoRP1qgWj0CWQtJ9UTvqmO2NNjhMJw==",
+      "version": "9.0.7",
+      "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-9.0.7.tgz",
+      "integrity": "sha512-Q0zyBupO6NxGRZut/JdmqYKOnN95Eg5V8Csg3PGKkP+FnvsUZx1jAyK7fztIszxxMuoBA6E3KXWvdZVXIpx60g==",
       "dev": true,
       "dependencies": {
         "@types/through": "*",
@@ -302,21 +333,24 @@
       }
     },
     "node_modules/@types/node": {
-      "version": "18.16.2",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.2.tgz",
-      "integrity": "sha512-GQW/JL/5Fz/0I8RpeBG9lKp0+aNcXEaVL71c0D2Q0QHDTFvlYKT7an0onCUXj85anv7b4/WesqdfchLc0jtsCg==",
-      "dev": true
+      "version": "18.19.8",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.8.tgz",
+      "integrity": "sha512-g1pZtPhsvGVTwmeVoexWZLTQaOvXwoSq//pTL0DHeNzUDrFnir4fgETdhjhIxjVnN+hKOuh98+E1eMLnUXstFg==",
+      "dev": true,
+      "dependencies": {
+        "undici-types": "~5.26.4"
+      }
     },
     "node_modules/@types/prop-types": {
-      "version": "15.7.5",
-      "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
-      "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==",
+      "version": "15.7.11",
+      "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz",
+      "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==",
       "devOptional": true
     },
     "node_modules/@types/react": {
-      "version": "18.2.0",
-      "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.0.tgz",
-      "integrity": "sha512-0FLj93y5USLHdnhIhABk83rm8XEGA7kH3cr+YUlvxoUGp1xNt/DINUMvqPxLyOQMzLmZe8i4RTHbvb8MC7NmrA==",
+      "version": "18.2.48",
+      "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.48.tgz",
+      "integrity": "sha512-qboRCl6Ie70DQQG9hhNREz81jqC1cs9EVNcjQ1AU+jH6NFfSAhVVbrrY/+nSF+Bsk4AOwm9Qa61InvMCyV+H3w==",
       "devOptional": true,
       "dependencies": {
         "@types/prop-types": "*",
@@ -325,15 +359,20 @@
       }
     },
     "node_modules/@types/scheduler": {
-      "version": "0.16.3",
-      "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz",
-      "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==",
+      "version": "0.16.8",
+      "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz",
+      "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==",
       "devOptional": true
     },
+    "node_modules/@types/shimmer": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.0.5.tgz",
+      "integrity": "sha512-9Hp0ObzwwO57DpLFF0InUjUm/II8GmKAvzbefxQTihCb7KI6yc9yzf0nLc4mVdby5N4DRCgQM2wCup9KTieeww=="
+    },
     "node_modules/@types/through": {
-      "version": "0.0.30",
-      "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.30.tgz",
-      "integrity": "sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==",
+      "version": "0.0.33",
+      "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.33.tgz",
+      "integrity": "sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==",
       "dev": true,
       "dependencies": {
         "@types/node": "*"
@@ -350,6 +389,25 @@
       "resolved": "https://registry.npmjs.org/@types/yoga-layout/-/yoga-layout-1.9.2.tgz",
       "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw=="
     },
+    "node_modules/acorn": {
+      "version": "8.11.3",
+      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
+      "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
+      "bin": {
+        "acorn": "bin/acorn"
+      },
+      "engines": {
+        "node": ">=0.4.0"
+      }
+    },
+    "node_modules/acorn-import-assertions": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz",
+      "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==",
+      "peerDependencies": {
+        "acorn": "^8"
+      }
+    },
     "node_modules/agent-base": {
       "version": "6.0.2",
       "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
@@ -387,14 +445,11 @@
       }
     },
     "node_modules/ansi-regex": {
-      "version": "6.0.1",
-      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
-      "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+      "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
       "engines": {
-        "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+        "node": ">=8"
       }
     },
     "node_modules/ansi-styles": {
@@ -422,23 +477,23 @@
       "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="
     },
     "node_modules/applicationinsights": {
-      "version": "2.6.0",
-      "resolved": "https://registry.npmjs.org/applicationinsights/-/applicationinsights-2.6.0.tgz",
-      "integrity": "sha512-ldeFvbocbRoMxS361lOwmLL3ltWfgNxALrttge6BrpsPMTStGzevoiqaWieIjZ/3qNmljOd+xmwaNPpBoefdmA==",
+      "version": "2.9.2",
+      "resolved": "https://registry.npmjs.org/applicationinsights/-/applicationinsights-2.9.2.tgz",
+      "integrity": "sha512-wlDiD7v0BQNM8oNzsf9C836R5ze25u+CuCEZsbA5xMIXYYBxkqkWE/mo9GFJM7rsKaiGqpxEwWmePHKD2Lwy2w==",
       "dependencies": {
-        "@azure/core-auth": "^1.4.0",
+        "@azure/core-auth": "^1.5.0",
         "@azure/core-rest-pipeline": "1.10.1",
         "@azure/core-util": "1.2.0",
-        "@azure/opentelemetry-instrumentation-azure-sdk": "^1.0.0-beta.3",
+        "@azure/opentelemetry-instrumentation-azure-sdk": "^1.0.0-beta.5",
         "@microsoft/applicationinsights-web-snippet": "^1.0.1",
-        "@opentelemetry/api": "^1.0.4",
-        "@opentelemetry/core": "^1.12.0",
-        "@opentelemetry/sdk-trace-base": "^1.12.0",
-        "@opentelemetry/semantic-conventions": "^1.12.0",
+        "@opentelemetry/api": "^1.7.0",
+        "@opentelemetry/core": "^1.19.0",
+        "@opentelemetry/sdk-trace-base": "^1.19.0",
+        "@opentelemetry/semantic-conventions": "^1.19.0",
         "cls-hooked": "^4.2.2",
         "continuation-local-storage": "^3.2.1",
-        "diagnostic-channel": "1.1.0",
-        "diagnostic-channel-publishers": "1.0.6"
+        "diagnostic-channel": "1.1.1",
+        "diagnostic-channel-publishers": "1.0.8"
       },
       "engines": {
         "node": ">=8.0.0"
@@ -468,6 +523,12 @@
         "node": ">=8"
       }
     },
+    "node_modules/async": {
+      "version": "3.2.5",
+      "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz",
+      "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==",
+      "dev": true
+    },
     "node_modules/async-hook-jl": {
       "version": "1.7.6",
       "resolved": "https://registry.npmjs.org/async-hook-jl/-/async-hook-jl-1.7.6.tgz",
@@ -491,14 +552,6 @@
         "node": "<=0.11.8 || >0.11.10"
       }
     },
-    "node_modules/async-listener/node_modules/semver": {
-      "version": "5.7.1",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-      "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
-      "bin": {
-        "semver": "bin/semver"
-      }
-    },
     "node_modules/asynckit": {
       "version": "0.4.0",
       "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
@@ -516,11 +569,11 @@
       }
     },
     "node_modules/axios": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz",
-      "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==",
+      "version": "1.6.5",
+      "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz",
+      "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==",
       "dependencies": {
-        "follow-redirects": "^1.15.0",
+        "follow-redirects": "^1.15.4",
         "form-data": "^4.0.0",
         "proxy-from-env": "^1.1.0"
       }
@@ -550,9 +603,9 @@
       ]
     },
     "node_modules/big-integer": {
-      "version": "1.6.51",
-      "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz",
-      "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==",
+      "version": "1.6.52",
+      "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz",
+      "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==",
       "engines": {
         "node": ">=0.6"
       }
@@ -614,6 +667,19 @@
         "ieee754": "^1.2.1"
       }
     },
+    "node_modules/call-bind": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
+      "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
+      "dependencies": {
+        "function-bind": "^1.1.2",
+        "get-intrinsic": "^1.2.1",
+        "set-function-length": "^1.1.1"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
     "node_modules/cardinal": {
       "version": "2.1.1",
       "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz",
@@ -627,9 +693,9 @@
       }
     },
     "node_modules/chalk": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz",
-      "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==",
+      "version": "5.3.0",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
+      "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
       "engines": {
         "node": "^12.17.0 || ^14.13 || >=16.0.0"
       },
@@ -647,6 +713,11 @@
       "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
       "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
     },
+    "node_modules/cjs-module-lexer": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz",
+      "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ=="
+    },
     "node_modules/cli-boxes": {
       "version": "2.2.1",
       "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz",
@@ -705,9 +776,9 @@
       }
     },
     "node_modules/cli-spinners": {
-      "version": "2.8.0",
-      "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.8.0.tgz",
-      "integrity": "sha512-/eG5sJcvEIwxcdYM86k5tPwn0MUzkX5YY3eImTGpJOZgVe4SdTMY14vQpcxgBzJ0wXwAYrS8E+c3uHeK4JNyzQ==",
+      "version": "2.9.2",
+      "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz",
+      "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==",
       "engines": {
         "node": ">=6"
       },
@@ -745,9 +816,9 @@
       }
     },
     "node_modules/cli-width": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.0.0.tgz",
-      "integrity": "sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw==",
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz",
+      "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==",
       "engines": {
         "node": ">= 12"
       }
@@ -762,25 +833,6 @@
         "wrap-ansi": "^7.0.0"
       }
     },
-    "node_modules/cliui/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==",
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/cliui/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==",
-      "dependencies": {
-        "ansi-regex": "^5.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
     "node_modules/cliui/node_modules/wrap-ansi": {
       "version": "7.0.0",
       "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
@@ -818,14 +870,6 @@
         "node": "^4.7 || >=6.9 || >=7.3 || >=8.2.1"
       }
     },
-    "node_modules/cls-hooked/node_modules/semver": {
-      "version": "5.7.1",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-      "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
-      "bin": {
-        "semver": "bin/semver"
-      }
-    },
     "node_modules/code-excerpt": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/code-excerpt/-/code-excerpt-3.0.0.tgz",
@@ -895,9 +939,9 @@
       }
     },
     "node_modules/csstype": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
-      "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==",
+      "version": "3.1.3",
+      "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
+      "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
       "devOptional": true
     },
     "node_modules/debug": {
@@ -927,6 +971,19 @@
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
+    "node_modules/define-data-property": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz",
+      "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==",
+      "dependencies": {
+        "get-intrinsic": "^1.2.1",
+        "gopd": "^1.0.1",
+        "has-property-descriptors": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
     "node_modules/delayed-stream": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
@@ -941,33 +998,49 @@
       "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g=="
     },
     "node_modules/diagnostic-channel": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/diagnostic-channel/-/diagnostic-channel-1.1.0.tgz",
-      "integrity": "sha512-fwujyMe1gj6rk6dYi9hMZm0c8Mz8NDMVl2LB4iaYh3+LIAThZC8RKFGXWG0IML2OxAit/ZFRgZhMkhQ3d/bobQ==",
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/diagnostic-channel/-/diagnostic-channel-1.1.1.tgz",
+      "integrity": "sha512-r2HV5qFkUICyoaKlBEpLKHjxMXATUf/l+h8UZPGBHGLy4DDiY2sOLcIctax4eRnTw5wH2jTMExLntGPJ8eOJxw==",
       "dependencies": {
-        "semver": "^5.3.0"
+        "semver": "^7.5.3"
       }
     },
     "node_modules/diagnostic-channel-publishers": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/diagnostic-channel-publishers/-/diagnostic-channel-publishers-1.0.6.tgz",
-      "integrity": "sha512-RE5AP4JmEm/CV06gOyFdgWWm3gMNOoXulod2mq4ysiz9s77ZhHb1P1DGrfePHjNOmgvWglhegmj5q8DNtjRrEg==",
+      "version": "1.0.8",
+      "resolved": "https://registry.npmjs.org/diagnostic-channel-publishers/-/diagnostic-channel-publishers-1.0.8.tgz",
+      "integrity": "sha512-HmSm9hXxSPxA9BaLGY98QU1zsdjeCk113KjAYGPCen1ZP6mhVaTPzHd6UYv5r21DnWANi+f+NyPOHruGT9jpqQ==",
       "peerDependencies": {
         "diagnostic-channel": "*"
       }
     },
     "node_modules/diagnostic-channel/node_modules/semver": {
-      "version": "5.7.1",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-      "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+      "version": "7.5.4",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+      "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+      "dependencies": {
+        "lru-cache": "^6.0.0"
+      },
       "bin": {
-        "semver": "bin/semver"
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
       }
     },
-    "node_modules/eastasianwidth": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
-      "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
+    "node_modules/ejs": {
+      "version": "3.1.9",
+      "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz",
+      "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==",
+      "dev": true,
+      "dependencies": {
+        "jake": "^10.8.5"
+      },
+      "bin": {
+        "ejs": "bin/cli.js"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
     },
     "node_modules/emitter-listener": {
       "version": "1.1.2",
@@ -1394,6 +1467,36 @@
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
+    "node_modules/filelist": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
+      "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
+      "dev": true,
+      "dependencies": {
+        "minimatch": "^5.0.1"
+      }
+    },
+    "node_modules/filelist/node_modules/brace-expansion": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+      "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+      "dev": true,
+      "dependencies": {
+        "balanced-match": "^1.0.0"
+      }
+    },
+    "node_modules/filelist/node_modules/minimatch": {
+      "version": "5.1.6",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+      "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+      "dev": true,
+      "dependencies": {
+        "brace-expansion": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
     "node_modules/find-package": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/find-package/-/find-package-1.0.0.tgz",
@@ -1404,9 +1507,9 @@
       }
     },
     "node_modules/follow-redirects": {
-      "version": "1.15.2",
-      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
-      "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
+      "version": "1.15.5",
+      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz",
+      "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==",
       "funding": [
         {
           "type": "individual",
@@ -1441,17 +1544,21 @@
       "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
     },
     "node_modules/function-bind": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
-      "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+      "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
     },
     "node_modules/genversion": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/genversion/-/genversion-3.1.1.tgz",
-      "integrity": "sha512-/H861PMsihhjgX2qqhTN8egM11V04imhA+3JRFY3jjPua2Sy1NqaqqQPjSP8rdM9jZoKpFhVj9g3Fs9XPCjBYQ==",
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/genversion/-/genversion-3.2.0.tgz",
+      "integrity": "sha512-OIYSX6XYA8PHecLDCTri30hadSZfAjZ8Iq1+BBDXqLWP4dRLuJNLoNjsSWtTpw97IccK2LDWzkEstxAB8GdN7g==",
       "dev": true,
       "dependencies": {
         "commander": "^7.2.0",
+        "ejs": "^3.1.9",
         "find-package": "^1.0.0"
       },
       "bin": {
@@ -1478,6 +1585,20 @@
         "node": "6.* || 8.* || >= 10.*"
       }
     },
+    "node_modules/get-intrinsic": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
+      "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
+      "dependencies": {
+        "function-bind": "^1.1.2",
+        "has-proto": "^1.0.1",
+        "has-symbols": "^1.0.3",
+        "hasown": "^2.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
     "node_modules/get-stream": {
       "version": "6.0.1",
       "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
@@ -1508,15 +1629,15 @@
         "url": "https://github.com/sponsors/isaacs"
       }
     },
-    "node_modules/has": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
-      "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+    "node_modules/gopd": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+      "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
       "dependencies": {
-        "function-bind": "^1.1.1"
+        "get-intrinsic": "^1.1.3"
       },
-      "engines": {
-        "node": ">= 0.4.0"
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
       }
     },
     "node_modules/has-flag": {
@@ -1527,6 +1648,50 @@
         "node": ">=8"
       }
     },
+    "node_modules/has-property-descriptors": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz",
+      "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==",
+      "dependencies": {
+        "get-intrinsic": "^1.2.2"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-proto": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
+      "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-symbols": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+      "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/hasown": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
+      "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
+      "dependencies": {
+        "function-bind": "^1.1.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
     "node_modules/highlight.js": {
       "version": "10.7.3",
       "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz",
@@ -1599,6 +1764,17 @@
         "url": "https://opencollective.com/immer"
       }
     },
+    "node_modules/import-in-the-middle": {
+      "version": "1.4.2",
+      "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.4.2.tgz",
+      "integrity": "sha512-9WOz1Yh/cvO/p69sxRmhyQwrIGGSp7EIdcb+fFNVi7CzQGQB8U1/1XrKVSbEd/GNOAeM0peJtmi7+qphe7NvAw==",
+      "dependencies": {
+        "acorn": "^8.8.2",
+        "acorn-import-assertions": "^1.9.0",
+        "cjs-module-lexer": "^1.2.2",
+        "module-details-from-path": "^1.0.3"
+      }
+    },
     "node_modules/indent-string": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
@@ -1769,74 +1945,63 @@
       }
     },
     "node_modules/inquirer": {
-      "version": "9.2.0",
-      "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.0.tgz",
-      "integrity": "sha512-WWERbVqjsTXjXub1ZW0ZHDit1dyHqy0T9XIkky9TnmKAPrjU9Jkd59nZPK0dUuM3s73GZAZu2Jo4iFU3XSPVLA==",
+      "version": "9.2.12",
+      "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.12.tgz",
+      "integrity": "sha512-mg3Fh9g2zfuVWJn6lhST0O7x4n03k7G8Tx5nvikJkbq8/CK47WDVm+UznF0G6s5Zi0KcyUisr6DU8T67N5U+1Q==",
       "dependencies": {
-        "ansi-escapes": "^6.0.0",
-        "chalk": "^5.2.0",
-        "cli-cursor": "^4.0.0",
-        "cli-width": "^4.0.0",
-        "external-editor": "^3.0.3",
+        "@ljharb/through": "^2.3.11",
+        "ansi-escapes": "^4.3.2",
+        "chalk": "^5.3.0",
+        "cli-cursor": "^3.1.0",
+        "cli-width": "^4.1.0",
+        "external-editor": "^3.1.0",
         "figures": "^5.0.0",
         "lodash": "^4.17.21",
         "mute-stream": "1.0.0",
-        "ora": "^6.1.2",
-        "run-async": "^2.4.0",
-        "rxjs": "^7.8.0",
-        "string-width": "^5.1.2",
-        "strip-ansi": "^7.0.1",
-        "through": "^2.3.6",
-        "wrap-ansi": "^8.1.0"
+        "ora": "^5.4.1",
+        "run-async": "^3.0.0",
+        "rxjs": "^7.8.1",
+        "string-width": "^4.2.3",
+        "strip-ansi": "^6.0.1",
+        "wrap-ansi": "^6.2.0"
       },
       "engines": {
         "node": ">=14.18.0"
       }
     },
-    "node_modules/inquirer/node_modules/ansi-escapes": {
-      "version": "6.2.0",
-      "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz",
-      "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==",
+    "node_modules/inquirer/node_modules/bl": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+      "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
       "dependencies": {
-        "type-fest": "^3.0.0"
-      },
-      "engines": {
-        "node": ">=14.16"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/inquirer/node_modules/ansi-styles": {
-      "version": "6.2.1",
-      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
-      "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
-      "engines": {
-        "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+        "buffer": "^5.5.0",
+        "inherits": "^2.0.4",
+        "readable-stream": "^3.4.0"
       }
     },
-    "node_modules/inquirer/node_modules/cli-cursor": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz",
-      "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==",
+    "node_modules/inquirer/node_modules/buffer": {
+      "version": "5.7.1",
+      "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+      "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+      "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": {
-        "restore-cursor": "^4.0.0"
-      },
-      "engines": {
-        "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
+        "base64-js": "^1.3.1",
+        "ieee754": "^1.1.13"
       }
     },
-    "node_modules/inquirer/node_modules/emoji-regex": {
-      "version": "9.2.2",
-      "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
-      "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
-    },
     "node_modules/inquirer/node_modules/escape-string-regexp": {
       "version": "5.0.0",
       "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
@@ -1863,62 +2028,101 @@
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
-    "node_modules/inquirer/node_modules/restore-cursor": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz",
-      "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==",
+    "node_modules/inquirer/node_modules/is-interactive": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
+      "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/inquirer/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==",
       "dependencies": {
-        "onetime": "^5.1.0",
-        "signal-exit": "^3.0.2"
+        "chalk": "^4.1.0",
+        "is-unicode-supported": "^0.1.0"
       },
       "engines": {
-        "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+        "node": ">=10"
       },
       "funding": {
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
-    "node_modules/inquirer/node_modules/string-width": {
-      "version": "5.1.2",
-      "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
-      "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+    "node_modules/inquirer/node_modules/log-symbols/node_modules/chalk": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
       "dependencies": {
-        "eastasianwidth": "^0.2.0",
-        "emoji-regex": "^9.2.2",
-        "strip-ansi": "^7.0.1"
+        "ansi-styles": "^4.1.0",
+        "supports-color": "^7.1.0"
       },
       "engines": {
-        "node": ">=12"
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/chalk?sponsor=1"
+      }
+    },
+    "node_modules/inquirer/node_modules/log-symbols/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==",
+      "engines": {
+        "node": ">=10"
       },
       "funding": {
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
-    "node_modules/inquirer/node_modules/type-fest": {
-      "version": "3.9.0",
-      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.9.0.tgz",
-      "integrity": "sha512-hR8JP2e8UiH7SME5JZjsobBlEiatFoxpzCP+R3ZeCo7kAaG1jXQE5X/buLzogM6GJu8le9Y4OcfNuIQX0rZskA==",
+    "node_modules/inquirer/node_modules/ora": {
+      "version": "5.4.1",
+      "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
+      "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
+      "dependencies": {
+        "bl": "^4.1.0",
+        "chalk": "^4.1.0",
+        "cli-cursor": "^3.1.0",
+        "cli-spinners": "^2.5.0",
+        "is-interactive": "^1.0.0",
+        "is-unicode-supported": "^0.1.0",
+        "log-symbols": "^4.1.0",
+        "strip-ansi": "^6.0.0",
+        "wcwidth": "^1.0.1"
+      },
       "engines": {
-        "node": ">=14.16"
+        "node": ">=10"
       },
       "funding": {
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
-    "node_modules/inquirer/node_modules/wrap-ansi": {
-      "version": "8.1.0",
-      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
-      "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+    "node_modules/inquirer/node_modules/ora/node_modules/chalk": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
       "dependencies": {
-        "ansi-styles": "^6.1.0",
-        "string-width": "^5.0.1",
-        "strip-ansi": "^7.0.1"
+        "ansi-styles": "^4.1.0",
+        "supports-color": "^7.1.0"
       },
       "engines": {
-        "node": ">=12"
+        "node": ">=10"
       },
       "funding": {
-        "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+        "url": "https://github.com/chalk/chalk?sponsor=1"
+      }
+    },
+    "node_modules/inquirer/node_modules/ora/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==",
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/is-ci": {
@@ -1933,11 +2137,11 @@
       }
     },
     "node_modules/is-core-module": {
-      "version": "2.12.0",
-      "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz",
-      "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==",
+      "version": "2.13.1",
+      "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+      "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
       "dependencies": {
-        "has": "^1.0.3"
+        "hasown": "^2.0.0"
       },
       "funding": {
         "url": "https://github.com/sponsors/ljharb"
@@ -1973,6 +2177,40 @@
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
+    "node_modules/jake": {
+      "version": "10.8.7",
+      "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz",
+      "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==",
+      "dev": true,
+      "dependencies": {
+        "async": "^3.2.3",
+        "chalk": "^4.0.2",
+        "filelist": "^1.0.4",
+        "minimatch": "^3.1.2"
+      },
+      "bin": {
+        "jake": "bin/cli.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/jake/node_modules/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/js-sha3": {
       "version": "0.8.0",
       "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
@@ -2042,56 +2280,56 @@
       }
     },
     "node_modules/marked-terminal": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-5.1.1.tgz",
-      "integrity": "sha512-+cKTOx9P4l7HwINYhzbrBSyzgxO2HaHKGZGuB1orZsMIgXYaJyfidT81VXRdpelW/PcHEWxywscePVgI/oUF6g==",
+      "version": "5.2.0",
+      "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-5.2.0.tgz",
+      "integrity": "sha512-Piv6yNwAQXGFjZSaiNljyNFw7jKDdGrw70FSbtxEyldLsyeuV5ZHm/1wW++kWbrOF1VPnUgYOhB2oLL0ZpnekA==",
       "dependencies": {
-        "ansi-escapes": "^5.0.0",
+        "ansi-escapes": "^6.2.0",
         "cardinal": "^2.1.1",
-        "chalk": "^5.0.0",
-        "cli-table3": "^0.6.1",
+        "chalk": "^5.2.0",
+        "cli-table3": "^0.6.3",
         "node-emoji": "^1.11.0",
-        "supports-hyperlinks": "^2.2.0"
+        "supports-hyperlinks": "^2.3.0"
       },
       "engines": {
         "node": ">=14.13.1 || >=16.0.0"
       },
       "peerDependencies": {
-        "marked": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0"
+        "marked": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0"
       }
     },
     "node_modules/marked-terminal/node_modules/ansi-escapes": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz",
-      "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==",
+      "version": "6.2.0",
+      "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz",
+      "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==",
       "dependencies": {
-        "type-fest": "^1.0.2"
+        "type-fest": "^3.0.0"
       },
       "engines": {
-        "node": ">=12"
+        "node": ">=14.16"
       },
       "funding": {
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/marked-terminal/node_modules/type-fest": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
-      "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
+      "version": "3.13.1",
+      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz",
+      "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
       "engines": {
-        "node": ">=10"
+        "node": ">=14.16"
       },
       "funding": {
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
     "node_modules/match-sorter": {
-      "version": "6.3.1",
-      "resolved": "https://registry.npmjs.org/match-sorter/-/match-sorter-6.3.1.tgz",
-      "integrity": "sha512-mxybbo3pPNuA+ZuCUhm5bwNkXrJTbsk5VWbR5wiwz/GC6LIiegBGn2w3O08UG/jdbYLinw51fSQ5xNU1U3MgBw==",
+      "version": "6.3.3",
+      "resolved": "https://registry.npmjs.org/match-sorter/-/match-sorter-6.3.3.tgz",
+      "integrity": "sha512-sgiXxrRijEe0SzHKGX4HouCpfHRPnqteH42UdMEW7BlWy990ZkzcvonJGv4Uu9WE7Y1f8Yocm91+4qFPCbmNww==",
       "dependencies": {
-        "@babel/runtime": "^7.12.5",
-        "remove-accents": "0.4.2"
+        "@babel/runtime": "^7.23.8",
+        "remove-accents": "0.5.0"
       }
     },
     "node_modules/microseconds": {
@@ -2217,9 +2455,9 @@
       }
     },
     "node_modules/ora": {
-      "version": "6.3.0",
-      "resolved": "https://registry.npmjs.org/ora/-/ora-6.3.0.tgz",
-      "integrity": "sha512-1/D8uRFY0ay2kgBpmAwmSA404w4OoPVhHMqRqtjvrcK/dnzcEZxMJ+V4DUbyICu8IIVRclHcOf5wlD1tMY4GUQ==",
+      "version": "6.3.1",
+      "resolved": "https://registry.npmjs.org/ora/-/ora-6.3.1.tgz",
+      "integrity": "sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==",
       "dependencies": {
         "chalk": "^5.0.0",
         "cli-cursor": "^4.0.0",
@@ -2238,6 +2476,17 @@
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
+    "node_modules/ora/node_modules/ansi-regex": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+      "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+      }
+    },
     "node_modules/ora/node_modules/cli-cursor": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz",
@@ -2267,6 +2516,20 @@
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
+    "node_modules/ora/node_modules/strip-ansi": {
+      "version": "7.1.0",
+      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+      "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+      "dependencies": {
+        "ansi-regex": "^6.0.1"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+      }
+    },
     "node_modules/os-tmpdir": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
@@ -2347,6 +2610,24 @@
       "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
       "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
     },
+    "node_modules/psl": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
+      "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
+    },
+    "node_modules/punycode": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+      "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/querystringify": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
+      "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="
+    },
     "node_modules/radash": {
       "version": "9.5.0",
       "resolved": "https://registry.npmjs.org/radash/-/radash-9.5.0.tgz",
@@ -2368,9 +2649,9 @@
       }
     },
     "node_modules/react-devtools-core": {
-      "version": "4.27.6",
-      "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.27.6.tgz",
-      "integrity": "sha512-jeFNhEzcSwpiqmw+zix5IFibNEPmUodICN7ClrlRKGktzO/3FMteMb52l1NRUiz/ABSYt9hOZ9IPgVDrg5pyUw==",
+      "version": "4.28.5",
+      "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.28.5.tgz",
+      "integrity": "sha512-cq/o30z9W2Wb4rzBefjv5fBalHU0rJGZCHAkf/RHSBWSSYwh8PlQTqqOJmgIIbBtpj27T6FIPXeomIjZtCNVqA==",
       "dependencies": {
         "shell-quote": "^1.6.1",
         "ws": "^7"
@@ -2457,14 +2738,14 @@
       }
     },
     "node_modules/regenerator-runtime": {
-      "version": "0.13.11",
-      "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
-      "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
+      "version": "0.14.1",
+      "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
+      "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
     },
     "node_modules/remove-accents": {
-      "version": "0.4.2",
-      "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.4.2.tgz",
-      "integrity": "sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA=="
+      "version": "0.5.0",
+      "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz",
+      "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A=="
     },
     "node_modules/require-directory": {
       "version": "2.1.1",
@@ -2475,24 +2756,29 @@
       }
     },
     "node_modules/require-in-the-middle": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.2.0.tgz",
-      "integrity": "sha512-efCx3b+0Z69/LGJmm9Yvi4cqEdxnoGnxYxGxBghkkTTFeXRtTCmmhO0AnAfHz59k957uTSuy8WaHqOs8wbYUWg==",
+      "version": "7.2.0",
+      "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.2.0.tgz",
+      "integrity": "sha512-3TLx5TGyAY6AOqLBoXmHkNql0HIf2RGbuMgCDT2WO/uGVAPJs6h7Kl+bN6TIZGd9bWhWPwnDnTHGtW8Iu77sdw==",
       "dependencies": {
         "debug": "^4.1.1",
         "module-details-from-path": "^1.0.3",
         "resolve": "^1.22.1"
       },
       "engines": {
-        "node": ">=6"
+        "node": ">=8.6.0"
       }
     },
+    "node_modules/requires-port": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
+      "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
+    },
     "node_modules/resolve": {
-      "version": "1.22.2",
-      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz",
-      "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==",
+      "version": "1.22.8",
+      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+      "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
       "dependencies": {
-        "is-core-module": "^2.11.0",
+        "is-core-module": "^2.13.0",
         "path-parse": "^1.0.7",
         "supports-preserve-symlinks-flag": "^1.0.0"
       },
@@ -2530,9 +2816,9 @@
       }
     },
     "node_modules/run-async": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
-      "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz",
+      "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==",
       "engines": {
         "node": ">=0.12.0"
       }
@@ -2579,17 +2865,26 @@
       }
     },
     "node_modules/semver": {
-      "version": "7.5.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz",
-      "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==",
-      "dependencies": {
-        "lru-cache": "^6.0.0"
-      },
+      "version": "5.7.2",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+      "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
       "bin": {
-        "semver": "bin/semver.js"
+        "semver": "bin/semver"
+      }
+    },
+    "node_modules/set-function-length": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz",
+      "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==",
+      "dependencies": {
+        "define-data-property": "^1.1.1",
+        "function-bind": "^1.1.2",
+        "get-intrinsic": "^1.2.2",
+        "gopd": "^1.0.1",
+        "has-property-descriptors": "^1.0.1"
       },
       "engines": {
-        "node": ">=10"
+        "node": ">= 0.4"
       }
     },
     "node_modules/shell-quote": {
@@ -2701,15 +2996,7 @@
         "node": ">=8"
       }
     },
-    "node_modules/string-width/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==",
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/string-width/node_modules/strip-ansi": {
+    "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==",
@@ -2720,20 +3007,6 @@
         "node": ">=8"
       }
     },
-    "node_modules/strip-ansi": {
-      "version": "7.0.1",
-      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz",
-      "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
-      "dependencies": {
-        "ansi-regex": "^6.0.1"
-      },
-      "engines": {
-        "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/strip-ansi?sponsor=1"
-      }
-    },
     "node_modules/supports-color": {
       "version": "7.2.0",
       "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -2787,11 +3060,6 @@
         "node": ">=0.8"
       }
     },
-    "node_modules/through": {
-      "version": "2.3.8",
-      "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
-      "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
-    },
     "node_modules/tiny-invariant": {
       "version": "1.3.1",
       "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz",
@@ -2808,6 +3076,20 @@
         "node": ">=0.6.0"
       }
     },
+    "node_modules/tough-cookie": {
+      "version": "4.1.3",
+      "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz",
+      "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==",
+      "dependencies": {
+        "psl": "^1.1.33",
+        "punycode": "^2.1.1",
+        "universalify": "^0.2.0",
+        "url-parse": "^1.5.3"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
     "node_modules/ts-dedent": {
       "version": "2.2.0",
       "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz",
@@ -2817,9 +3099,9 @@
       }
     },
     "node_modules/tslib": {
-      "version": "2.5.0",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
-      "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
+      "version": "2.6.2",
+      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
+      "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
     },
     "node_modules/type-fest": {
       "version": "0.12.0",
@@ -2845,6 +3127,20 @@
         "node": ">=4.2.0"
       }
     },
+    "node_modules/undici-types": {
+      "version": "5.26.5",
+      "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
+      "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+      "dev": true
+    },
+    "node_modules/universalify": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
+      "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
+      "engines": {
+        "node": ">= 4.0.0"
+      }
+    },
     "node_modules/unload": {
       "version": "2.2.0",
       "resolved": "https://registry.npmjs.org/unload/-/unload-2.2.0.tgz",
@@ -2854,6 +3150,15 @@
         "detect-node": "^2.0.4"
       }
     },
+    "node_modules/url-parse": {
+      "version": "1.5.10",
+      "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
+      "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
+      "dependencies": {
+        "querystringify": "^2.1.1",
+        "requires-port": "^1.0.0"
+      }
+    },
     "node_modules/use-sync-external-store": {
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz",
@@ -2876,9 +3181,13 @@
       "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
     },
     "node_modules/uuid": {
-      "version": "9.0.0",
-      "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
-      "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==",
+      "version": "9.0.1",
+      "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
+      "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
+      "funding": [
+        "https://github.com/sponsors/broofa",
+        "https://github.com/sponsors/ctavan"
+      ],
       "bin": {
         "uuid": "dist/bin/uuid"
       }
@@ -2915,25 +3224,6 @@
         "node": ">=8"
       }
     },
-    "node_modules/wrap-ansi/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==",
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/wrap-ansi/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==",
-      "dependencies": {
-        "ansi-regex": "^5.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
     "node_modules/wrappy": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
@@ -3009,9 +3299,9 @@
       }
     },
     "node_modules/zustand": {
-      "version": "4.3.7",
-      "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.3.7.tgz",
-      "integrity": "sha512-dY8ERwB9Nd21ellgkBZFhudER8KVlelZm8388B5nDAXhO/+FZDhYMuRnqDgu5SYyRgz/iaf8RKnbUs/cHfOGlQ==",
+      "version": "4.4.7",
+      "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.4.7.tgz",
+      "integrity": "sha512-QFJWJMdlETcI69paJwhSMJz7PPWjVP8Sjhclxmxmxv/RYI7ZOvR5BHX+ktH0we9gTWQMxcne8q1OY8xxz604gw==",
       "dependencies": {
         "use-sync-external-store": "1.2.0"
       },
@@ -3019,10 +3309,14 @@
         "node": ">=12.7.0"
       },
       "peerDependencies": {
+        "@types/react": ">=16.8",
         "immer": ">=9.0",
         "react": ">=16.8"
       },
       "peerDependenciesMeta": {
+        "@types/react": {
+          "optional": true
+        },
         "immer": {
           "optional": true
         },
diff --git a/pkgs/tools/misc/gotify-desktop/default.nix b/pkgs/tools/misc/gotify-desktop/default.nix
index 64d82def48a7..f9ebbff548e9 100644
--- a/pkgs/tools/misc/gotify-desktop/default.nix
+++ b/pkgs/tools/misc/gotify-desktop/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gotify-desktop";
-  version = "1.3.2";
+  version = "1.3.3";
 
   src = fetchFromGitHub {
     owner = "desbma";
     repo = pname;
     rev = version;
-    sha256 = "sha256-aJBgvgDG3PIogTP7jZtncKeXc7NAnJdtjpBOk303wzs=";
+    sha256 = "sha256-vyOXZQ2X/LT/saBxcEbD96U34ufxjcWTHAobGI3bAE4=";
   };
 
-  cargoHash = "sha256-JJlTS22XveuLd53ck7zduQVvEk1E/yOGkBSTvDf/XEQ=";
+  cargoHash = "sha256-MNxHJ1iirHj78wq6ChDjr6mQS0UmHPjVMs1EPFZyTV0=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/tools/misc/grizzly/default.nix b/pkgs/tools/misc/grizzly/default.nix
index fa96cf1b1c05..d16356d6d5ce 100644
--- a/pkgs/tools/misc/grizzly/default.nix
+++ b/pkgs/tools/misc/grizzly/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "grizzly";
-  version = "0.2.0";
+  version = "0.3.1";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-6z/6QZlCm4mRMKAVzLnOokv8ib7Y/7a17ojjMfeoJ4w=";
+    hash = "sha256-d/DUazWBT96+dnwVXo667RHALUM2FHxXoI54fFU2HZw=";
   };
 
-  vendorHash = "sha256-DDYhdRPcD5hfSW9nRmCWpsrVmIEU1sBoVvFz5Begx8w=";
+  vendorHash = "sha256-8myfB2LKDPUCFV9GBSXrBo9E+WrCOCm0ZHKTQ1dEb9U=";
 
   subPackages = [ "cmd/grr" ];
 
diff --git a/pkgs/tools/misc/instaloader/default.nix b/pkgs/tools/misc/instaloader/default.nix
index 57601ae97550..b648a55cb3df 100644
--- a/pkgs/tools/misc/instaloader/default.nix
+++ b/pkgs/tools/misc/instaloader/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "instaloader";
-  version = "4.9.6";
+  version = "4.10.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "instaloader";
     repo = "instaloader";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-ZxvJPDj+r7KSyXpYNQIgnda5OS77GOFM901ZHgR6c4k=";
+    sha256 = "sha256-+K15MlyOONC5E8ZjtzbYnGGzQEMDGEGBFDbLZp7FeWQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/ipxe/default.nix b/pkgs/tools/misc/ipxe/default.nix
index e31c6603e429..aa0c74b114b5 100644
--- a/pkgs/tools/misc/ipxe/default.nix
+++ b/pkgs/tools/misc/ipxe/default.nix
@@ -33,7 +33,7 @@ in
 
 stdenv.mkDerivation rec {
   pname = "ipxe";
-  version = "unstable-2023-07-19";
+  version = "unstable-2024-01-19";
 
   nativeBuildInputs = [ gnu-efi mtools openssl perl xorriso xz ] ++ lib.optional stdenv.hostPlatform.isx86 syslinux;
   depsBuildBuild = [ buildPackages.stdenv.cc ];
@@ -43,8 +43,8 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "ipxe";
     repo = "ipxe";
-    rev = "c1834f323f4f6b9b46cd5895b1457a117381363f";
-    hash = "sha256-fJeDgm+OaItshWFliq08Y0BPDD2FCkezeEp7trqWNjA=";
+    rev = "de8a0821c7bc737e724fa3dfb6d89dc36f591d7a";
+    hash = "sha256-bVFr1fTulww6swWPKupWRGfQOAiXp2oP1/VC5GpzLnY=";
   };
 
   postPatch = lib.optionalString stdenv.hostPlatform.isAarch64 ''
diff --git a/pkgs/tools/misc/jfrog-cli/default.nix b/pkgs/tools/misc/jfrog-cli/default.nix
index 51b6422c086d..3704cfed317c 100644
--- a/pkgs/tools/misc/jfrog-cli/default.nix
+++ b/pkgs/tools/misc/jfrog-cli/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "jfrog-cli";
-  version = "2.52.8";
+  version = "2.52.10";
 
   src = fetchFromGitHub {
     owner = "jfrog";
     repo = "jfrog-cli";
     rev = "refs/tags/v${version}";
-    hash = "sha256-u7hq0VHHcSZ7uiYEz6cqZ7CN0iwKRSwKmAh5+Hf17WU=";
+    hash = "sha256-sqKlYHOpjIxNff1QK540Xxqr7w+WZ+pZXgfAKjRbMuM=";
   };
 
-  vendorHash = "sha256-xLkzoQWT4jRBC5+11pAboxlynu+cmhynMnh3yh+qn/8=";
+  vendorHash = "sha256-Cm6Wu2U2i6WZfps1WLAjYuVZZ1y7J4WXFLmX2bkevd4=";
 
   postInstall = ''
     # Name the output the same way as the original build script does
diff --git a/pkgs/tools/misc/lavat/default.nix b/pkgs/tools/misc/lavat/default.nix
index f582157777b7..6cd38f6f34a1 100644
--- a/pkgs/tools/misc/lavat/default.nix
+++ b/pkgs/tools/misc/lavat/default.nix
@@ -4,7 +4,7 @@
 ,
 }:
 let
-  version = "2.0.0";
+  version = "2.1.0";
 in
 stdenv.mkDerivation {
   pname = "lavat";
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
     owner = "AngelJumbo";
     repo = "lavat";
     rev = "v${version}";
-    hash = "sha256-xDjqKhwoaqCqo7tkpcEe2MBEpVTJUOpKtu7Fi9aPOPo=";
+    hash = "sha256-wGtuYgZS03gXYgdNdugGu/UlROQTrQ3C1inJ/aTUBKk=";
   };
 
   installPhase = ''
diff --git a/pkgs/tools/misc/logstash/7.x.nix b/pkgs/tools/misc/logstash/7.x.nix
index 9bbc98e729c4..c7e21e0521d4 100644
--- a/pkgs/tools/misc/logstash/7.x.nix
+++ b/pkgs/tools/misc/logstash/7.x.nix
@@ -16,14 +16,14 @@ let
   hashes =
     if enableUnfree
     then {
-      x86_64-linux  = "sha512-U5G/7wnEA6NlUYo6jo8HW7eXSxNwlbPH/SoBc8+m29SnRRFwo2V6/vPmpGjpCjjW56W2aXmYePk4n6RP+P7gJg==";
-      x86_64-darwin = "sha512-jjUWuCMppHUFNY+36rSGyjlCOtxEofBhw19roiWsLzczDyr8PjfrZStlNuXKNdd6wkhd7HQ/qNmd1PzGC928IQ==";
-      aarch64-linux = "sha512-BvkaWqv/D4akFQ3mwf0C+20KRLBKxmBZfLTINWzx0iVSqqd4mdtCpJpeNbPK1zvl17rYys+0sX5iKUkynN95Gg==";
+      x86_64-linux  = "sha512-ze0hJxUHCN52bOxUs5upDj64tIE58P2BTow2kaCo6HreRiF9rfTTzNkNr/hCmEgE+/oFbgSEuOQLz+6G373RDQ==";
+      x86_64-darwin = "sha512-FOFd8d+4UddSGorjuUWW/JbQ5fQH4LU1f1HJLmdbfnb8Q5L4GEveb2LmWNILU8/a85V4HGmD6lL8mCJqH9CULQ==";
+      aarch64-linux = "sha512-giYqW88/6iT3haXzJVn/+b7uxjYhHq4GERmiq3tMIvjxDyu7B6g+X7JneaTYxhpNdn6gOD/hfXgNv+hFRq6lgg==";
     }
     else {
-      x86_64-linux  = "sha512-uiLExBT0dRU4e7KMxHYSvqWK/5fEB/JXGGPoMXSivvJzYn9l3VMe2DPkBmjHkUSlAdScPsaRwbHE2PsMsSSwUg==";
-      x86_64-darwin = "sha512-gal8oGwIb6wz8y6QEk9knV3c4J1kkCECD0NLdbW/9jBl+dyKome3LO3VgQibwk2xISL3Be+Laaz49Z8Rdxy/dw==";
-      aarch64-linux = "sha512-ZK20GnobFLIdRjszPz9EcKTbkUDiiNN5v3lRDIMJHVyifpl5YddXzuIym4XRbabaihA4oArqux50q4+VuEGtCg==";
+      x86_64-linux  = "sha512-OC9gx76k+RMdjqcDkrJCNbPYSQameyddaYMxUIB0foVxCmo6UvbdcwZGXRLPPn95in8rYOCjvPoBkmupiQw9xQ==";
+      x86_64-darwin = "sha512-1OEfEED/jjlT3Fd095Y5VYiWKnovytI3UYCCy1Rs3tEvkZPHYwqIQHfMQYeAvGgUci37ADwEDu8xrSQULHToLw==";
+      aarch64-linux = "sha512-QWW0AXOMNIXThxpUiRomvINm+917MvGrSDndrEw11IYYuvi0d0dckJiRytfnBbBNoOKpVhB68uOmfjIcZBNpWQ==";
     };
   this = stdenv.mkDerivation rec {
     version = elk7Version;
diff --git a/pkgs/tools/misc/mbuffer/default.nix b/pkgs/tools/misc/mbuffer/default.nix
index ec4157fb37ca..45510dafa8cb 100644
--- a/pkgs/tools/misc/mbuffer/default.nix
+++ b/pkgs/tools/misc/mbuffer/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mbuffer";
-  version = "20230301";
+  version = "20240107";
 
   src = fetchurl {
     url = "http://www.maier-komor.de/software/mbuffer/mbuffer-${version}.tgz";
-    sha256 = "sha256-U/diCd7AD6soPcC8UyKw5jRrCdou27ZDWi1Kj0glLQE=";
+    sha256 = "sha256-14YG4X3ZAmpTI21ezAenAgLSZC0X49kHRxzbWKBFiBQ=";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/misc/miniserve/default.nix b/pkgs/tools/misc/miniserve/default.nix
index 6d0d918b0199..7ba0165b0e01 100644
--- a/pkgs/tools/misc/miniserve/default.nix
+++ b/pkgs/tools/misc/miniserve/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "miniserve";
-  version = "0.24.0";
+  version = "0.26.0";
 
   src = fetchFromGitHub {
     owner = "svenstaro";
     repo = "miniserve";
     rev = "v${version}";
-    hash = "sha256-dTJK+M7kccyqNWAz/cYoPTNM3pew7cT21hZhjCf2jDA=";
+    hash = "sha256-f+k7ONX9bDrkyIhFxxaJvZYH2WBxYwCssbfM2fBPtRk=";
   };
 
-  cargoHash = "sha256-lMqoBQRK0Wop1sAdydTVYFR3pzwtQDluDVXFJ4v+GHM=";
+  cargoHash = "sha256-Omxd0ZgvtEiciFnKWkYupyts2QT9LUTXxaTdfu0Jnx8=";
 
   nativeBuildInputs = [
     installShellFiles
@@ -26,6 +26,7 @@ rustPlatform.buildRustPackage rec {
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.Security
+    darwin.apple_sdk.frameworks.SystemConfiguration
   ];
 
   nativeCheckInputs = [
@@ -36,6 +37,8 @@ rustPlatform.buildRustPackage rec {
     "--skip=bind_ipv4_ipv6::case_2"
     "--skip=qrcode_hidden_in_tty_when_disabled"
     "--skip=qrcode_shown_in_tty_when_enabled"
+    "--skip=show_root_readme_contents"
+    "--skip=validate_printed_urls"
   ];
 
   postInstall = ''
diff --git a/pkgs/tools/misc/mise/default.nix b/pkgs/tools/misc/mise/default.nix
index c82603b93039..7202526e54cd 100644
--- a/pkgs/tools/misc/mise/default.nix
+++ b/pkgs/tools/misc/mise/default.nix
@@ -17,16 +17,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mise";
-  version = "2024.1.20";
+  version = "2024.2.4";
 
   src = fetchFromGitHub {
     owner = "jdx";
     repo = "mise";
     rev = "v${version}";
-    hash = "sha256-4KyvqxM7QpszTGIzSrd0nrnO1yk/hkjmbRqVzzlMuYI=";
+    hash = "sha256-SBfnfEY2ostzVWUWPB1f381XnzcNpkqeV+L9xRcRYaw=";
   };
 
-  cargoHash = "sha256-Mq9uN0pztH5DwVCPNtl58zDPZtyWBsoTTMriUK6w8iI=";
+  cargoHash = "sha256-Q63h6ln1uswyvAhWlKhMLJGCZRJCbY3Rovu+jJ1O+0c=";
 
   nativeBuildInputs = [ installShellFiles pkg-config ];
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
diff --git a/pkgs/tools/misc/moar/default.nix b/pkgs/tools/misc/moar/default.nix
index 77b85245beba..e5d949a2e4a6 100644
--- a/pkgs/tools/misc/moar/default.nix
+++ b/pkgs/tools/misc/moar/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "moar";
-  version = "1.22.2";
+  version = "1.23.0";
 
   src = fetchFromGitHub {
     owner = "walles";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-fS+HmLnqs3haQ/cv768zSY62CcqONCkTF/GpUsPNX0c=";
+    hash = "sha256-tnFJKHrK1QlACYsiLlc5EX3du4H+nekEaeV+7wUsx48=";
   };
 
   vendorHash = "sha256-1u/2OlMX2FuZaxWnpU4n5r/4xKe+rK++GoCJiSq/BdE=";
diff --git a/pkgs/tools/misc/most/default.nix b/pkgs/tools/misc/most/default.nix
index 2ec394cd250d..87280b9f295e 100644
--- a/pkgs/tools/misc/most/default.nix
+++ b/pkgs/tools/misc/most/default.nix
@@ -2,18 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "most";
-  version = "5.1.0";
+  version = "5.2.0";
 
   src = fetchurl {
     url = "https://www.jedsoft.org/releases/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "008537ns659pw2aag15imwjrxj73j26aqq90h285is6kz8gmv06v";
+    hash = "sha256-lFWuuPgm+oOFyFDcIr8PIs+QabPDQj+6S/LG9iJtmQM=";
   };
 
-  patches = [
-    # Upstream patch to fix parallel build failure
-    ./parallel-make.patch
-  ];
-
   outputs = [ "out" "doc" ];
 
   makeFlags = [
diff --git a/pkgs/tools/misc/most/parallel-make.patch b/pkgs/tools/misc/most/parallel-make.patch
deleted file mode 100644
index 07c2e47c673e..000000000000
--- a/pkgs/tools/misc/most/parallel-make.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Upstream commit c9cfad50a ("src/Makefile.in: Avoid a race condition
-when performing a parallel build")
-
---- a/src/Makefile.in
-+++ b/src/Makefile.in
-@@ -54,6 +54,12 @@ COMPILE_CMD = $(CC) -c $(ALL_CFLAGS) -DMOST_SYSTEM_INITFILE='"$(SYS_INITFILE)"'
- all: $(EXEC)
- $(EXEC): $(OBJDIR) $(CONFIG_H) slangversion $(OBJDIR)/$(EXEC)
- 	@echo $(EXEC) created in $(OBJDIR)
-+
-+# C source files include autogenrated "config.h". Make sure
-+# it's available before the compilation. Pessimistically assume
-+# any source file can depend on "config.h".
-+$(OBJS) $(OBJDIR)/chkslang.o: $(CONFIG_H)
-+
- $(OBJDIR)/$(EXEC): $(OBJS)
- 	cd $(OBJDIR); $(CC) $(OFILES) -o $(EXEC) $(LDFLAGS) $(EXECLIBS)
- #
diff --git a/pkgs/tools/misc/mpremote/default.nix b/pkgs/tools/misc/mpremote/default.nix
index c260b1e52893..18b6dc9a4cde 100644
--- a/pkgs/tools/misc/mpremote/default.nix
+++ b/pkgs/tools/misc/mpremote/default.nix
@@ -9,13 +9,13 @@
 }:
 buildPythonApplication rec {
   pname = "mpremote";
-  version = "1.20.0";
+  version = "1.22.1";
 
   src = fetchFromGitHub {
     owner = "micropython";
     repo = "micropython";
-    rev = "v${version}";
-    hash = "sha256-udIyNcRjwwoWju0Qob0CFtMibbVKwc7j2ji83BC1rX0=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-tGFXJW1RkUs/64Yatgg/1zZFPDQdu76uiMjNU8ebdvg=";
   };
   sourceRoot = "source/tools/mpremote";
   format = "pyproject";
diff --git a/pkgs/tools/misc/mutagen-compose/default.nix b/pkgs/tools/misc/mutagen-compose/default.nix
index a9ecae787b95..fe8f2b06505d 100644
--- a/pkgs/tools/misc/mutagen-compose/default.nix
+++ b/pkgs/tools/misc/mutagen-compose/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "mutagen-compose";
-  version = "0.17.4";
+  version = "0.17.5";
 
   src = fetchFromGitHub {
     owner = "mutagen-io";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-arvDV1AlhrXfndoXGd7jn6O9ZAc1+7hq30QpYPLhpJw=";
+    hash = "sha256-EkUaxk+zCm1ta1/vjClZHki/MghLvUkCeiW7hST7WEc=";
   };
 
-  vendorHash = "sha256-wqenEPTRsZvQscXv+/eVEFVk8Fd1/Aj3QcBSZzpkmGA=";
+  vendorHash = "sha256-siLS53YVQfCwqyuvXXvHFtlpr3RQy2GP2/ZV+Tv/Lqc=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/misc/nautilus-open-any-terminal/default.nix b/pkgs/tools/misc/nautilus-open-any-terminal/default.nix
index 4a115499d7a2..54e85c063633 100644
--- a/pkgs/tools/misc/nautilus-open-any-terminal/default.nix
+++ b/pkgs/tools/misc/nautilus-open-any-terminal/default.nix
@@ -14,13 +14,14 @@
 
 python3.pkgs.buildPythonPackage rec {
   pname = "nautilus-open-any-terminal";
-  version = "0.4.0";
+  version = "0.5.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "Stunkymonkey";
     repo = pname;
     rev = version;
-    sha256 = "sha256-EAI60Mw+OTPfjOS6lkGMul7QvTR7NXyNfevWY2JP1yI=";
+    hash = "sha256-fcTbt8O/7KEme5+GlDD7hMMcE2RaYqFdfojzJ1KhnA0=";
   };
 
   patches = [ ./hardcode-gsettings.patch ];
@@ -30,6 +31,7 @@ python3.pkgs.buildPythonPackage rec {
     gobject-introspection
     pkg-config
     wrapGAppsHook
+    python3.pkgs.setuptools
   ];
 
   buildInputs = [
@@ -43,7 +45,7 @@ python3.pkgs.buildPythonPackage rec {
   ];
 
   postPatch = ''
-    substituteInPlace nautilus_open_any_terminal/open_any_terminal_extension.py \
+    substituteInPlace nautilus_open_any_terminal/nautilus_open_any_terminal.py \
       --subst-var-by gsettings_path ${glib.makeSchemaPath "$out" "$name"}
   '';
 
diff --git a/pkgs/tools/misc/nautilus-open-any-terminal/hardcode-gsettings.patch b/pkgs/tools/misc/nautilus-open-any-terminal/hardcode-gsettings.patch
index 194bb55902ae..5116d5110ca1 100644
--- a/pkgs/tools/misc/nautilus-open-any-terminal/hardcode-gsettings.patch
+++ b/pkgs/tools/misc/nautilus-open-any-terminal/hardcode-gsettings.patch
@@ -1,22 +1,22 @@
-diff --git a/nautilus_open_any_terminal/open_any_terminal_extension.py b/nautilus_open_any_terminal/open_any_terminal_extension.py
+diff --git a/nautilus_open_any_terminal/nautilus_open_any_terminal.py b/nautilus_open_any_terminal/nautilus_open_any_terminal.py
 index b02a995..a616399 100644
---- a/nautilus_open_any_terminal/open_any_terminal_extension.py
-+++ b/nautilus_open_any_terminal/open_any_terminal_extension.py
-@@ -205,9 +205,10 @@ def set_terminal_args(*args):
- 
-     class OpenAnyTerminalShortcutProvider(GObject.GObject, Nautilus.LocationWidgetProvider):
+--- a/nautilus_open_any_terminal/nautilus_open_any_terminal.py
++++ b/nautilus_open_any_terminal/nautilus_open_any_terminal.py
+@@ -228,9 +228,10 @@ def set_terminal_args(*args):
+         """Provide keyboard shortcuts for opening terminals in Nautilus."""
+
          def __init__(self):
--            source = Gio.SettingsSchemaSource.get_default()
--            if source.lookup(GSETTINGS_PATH, True):
+-            gsettings_source = Gio.SettingsSchemaSource.get_default()
+-            if gsettings_source.lookup(GSETTINGS_PATH, True):
 -                self._gsettings = Gio.Settings.new(GSETTINGS_PATH)
-+            source = Gio.SettingsSchemaSource.new_from_directory("@gsettings_path@", Gio.SettingsSchemaSource.get_default(), True)
++            gsettings_source = Gio.SettingsSchemaSource.new_from_directory("@gsettings_path@", Gio.SettingsSchemaSource.get_default(), True)
 +            if True:
-+                _schema = source.lookup(GSETTINGS_PATH, False)
++                _schema = gsettings_source.lookup(GSETTINGS_PATH, False)
 +                self._gsettings = Gio.Settings.new_full(_schema, None, None);
                  self._gsettings.connect("changed", self._bind_shortcut)
                  self._create_accel_group()
              self._window = None
-@@ -232,9 +233,10 @@ class OpenAnyTerminalExtension(GObject.GObject, Nautilus.MenuProvider):
+@@ -326,9 +327,10 @@ class OpenAnyTerminalExtension(GObject.GObject, Nautilus.MenuProvider):
          return items
  
  
diff --git a/pkgs/tools/misc/nb/default.nix b/pkgs/tools/misc/nb/default.nix
index 0804ed58e413..7bed4ac022ed 100644
--- a/pkgs/tools/misc/nb/default.nix
+++ b/pkgs/tools/misc/nb/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nb";
-  version = "7.9.1";
+  version = "7.10.3";
 
   src = fetchFromGitHub {
     owner = "xwmx";
     repo = "nb";
     rev = version;
-    sha256 = "sha256-GS/8UpW99VofpY7R1V5A/Td8niLFthJcNzLS0hI89SI=";
+    sha256 = "sha256-1zZdgL4zy+3u7y4MptDLcmQDSmLZ3gJVlk27enW6xQc=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/tools/misc/opentelemetry-collector/default.nix b/pkgs/tools/misc/opentelemetry-collector/default.nix
index b078361bf057..3559ee5beae5 100644
--- a/pkgs/tools/misc/opentelemetry-collector/default.nix
+++ b/pkgs/tools/misc/opentelemetry-collector/default.nix
@@ -8,17 +8,17 @@
 
 buildGoModule rec {
   pname = "opentelemetry-collector";
-  version = "0.90.1";
+  version = "0.93.0";
 
   src = fetchFromGitHub {
     owner = "open-telemetry";
     repo = "opentelemetry-collector";
     rev = "v${version}";
-    hash = "sha256-JKcYvJtuN38VrhcVFHRc0CKTH+x8HShs1/Ui0iN1jNo=";
+    hash = "sha256-caDBVB1ChAAU5fGip8HbC4hXcTomsRoLIobtMSvX/HY=";
   };
   # there is a nested go.mod
   sourceRoot = "${src.name}/cmd/otelcorecol";
-  vendorHash = "sha256-vaWOUc4CwiCDqe1szrBcgbHXQH/OkGTN0iqh+3CKPLQ=";
+  vendorHash = "sha256-Mx+3Ml5BQ3Z+H9mX5xvfdG7fmHm+Cz3ws+cW/6iZddY=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/misc/panoply/default.nix b/pkgs/tools/misc/panoply/default.nix
index f3b134f95bef..d0c86c1275f5 100644
--- a/pkgs/tools/misc/panoply/default.nix
+++ b/pkgs/tools/misc/panoply/default.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "panoply";
-  version = "5.3.1";
+  version = "5.3.2";
 
   src = fetchurl {
     url = "https://www.giss.nasa.gov/tools/panoply/download/PanoplyJ-${version}.tgz";
-    sha256 = "sha256-Fz1IFZwr7Eqqypt50n3qaoRjwfvSoS3kbMhbgzbc1J4=";
+    sha256 = "sha256-+B/k3MqoefD3AVSYuR006eYyNe+njsfiqwBtQ+1YIHA=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/misc/parallel/default.nix b/pkgs/tools/misc/parallel/default.nix
index 5d30ffbae4be..d196de07f648 100644
--- a/pkgs/tools/misc/parallel/default.nix
+++ b/pkgs/tools/misc/parallel/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "parallel";
-  version = "20231222";
+  version = "20240122";
 
   src = fetchurl {
     url = "mirror://gnu/parallel/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-GUZt3G+pu9e+GIb1QEEprxJEjxLs07lWLpha2oTam6o=";
+    sha256 = "sha256-hZaIy7VkHNe2sWsrlgviSqTjfmVcyP/NivlxzX1bRJ8=";
   };
 
   outputs = [ "out" "man" "doc" ];
diff --git a/pkgs/tools/misc/phrase-cli/default.nix b/pkgs/tools/misc/phrase-cli/default.nix
index a856ef8cf3d9..8a9e41eca8e7 100644
--- a/pkgs/tools/misc/phrase-cli/default.nix
+++ b/pkgs/tools/misc/phrase-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "phrase-cli";
-  version = "2.19.3";
+  version = "2.21.0";
 
   src = fetchFromGitHub {
     owner = "phrase";
     repo = "phrase-cli";
     rev = version;
-    sha256 = "sha256-Picdgy4CnMnKjENPfRvu0zLhykbH/uM0JfHh7cwDdoQ=";
+    sha256 = "sha256-l6leu3U5VFTx1IJjiQo5F+96YddLWBaq5npcbXCUSLA=";
   };
 
-  vendorHash = "sha256-an43wSx5zhMirKAUnYv+5kDcUlv1fe1+mLGbBS7p4Qs=";
+  vendorHash = "sha256-U/54Kv7F2ww6gzB9AIAa4Mf6UgWIJyFBbqj6LKdPF3A=";
 
   ldflags = [ "-X=github.com/phrase/phrase-cli/cmd.PHRASE_CLIENT_VERSION=${version}" ];
 
diff --git a/pkgs/tools/misc/plantuml/default.nix b/pkgs/tools/misc/plantuml/default.nix
index 57bcbb1ad061..24f8187aadd9 100644
--- a/pkgs/tools/misc/plantuml/default.nix
+++ b/pkgs/tools/misc/plantuml/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, makeWrapper, jre, graphviz }:
 
 stdenv.mkDerivation rec {
-  version = "1.2023.13";
+  version = "1.2024.0";
   pname = "plantuml";
 
   src = fetchurl {
     url = "https://github.com/plantuml/plantuml/releases/download/v${version}/plantuml-pdf-${version}.jar";
-    sha256 = "sha256-/oMjre0fFwV+DYysg20z2PhJXAH/qjAOFl2hgZyBGuY=";
+    sha256 = "sha256-jpO4BhOyTS9y2e9d3AK911HDQa04zhPeFGyhz1FJN+Q=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/misc/plantuml/plantuml-c4.nix b/pkgs/tools/misc/plantuml/plantuml-c4.nix
index a8d0001054fd..2829d0a31eab 100644
--- a/pkgs/tools/misc/plantuml/plantuml-c4.nix
+++ b/pkgs/tools/misc/plantuml/plantuml-c4.nix
@@ -12,13 +12,13 @@
 
 let
   c4-lib = fetchzip {
-    url = "https://github.com/plantuml-stdlib/C4-PlantUML/archive/88a3f99150c6ff7953c4a99b184d03412ffdedb1.zip";
-    sha256 = "sha256-vk4YWdGb47OsI9mApGTQ7OfELRZdBouzKfUZq3kchcM=";
+    url = "https://github.com/plantuml-stdlib/C4-PlantUML/archive/refs/tags/v2.8.0.zip";
+    hash = "sha256-pGtTFg7HcAFYPrjd+CAaxS4C6Cqaj94aq45v3NpiAxM=";
   };
 
   sprites = fetchzip {
     url = "https://github.com/tupadr3/plantuml-icon-font-sprites/archive/fa3f885dbd45c9cd0cdf6c0e5e4fb51ec8b76582.zip";
-    sha256 = "sha256-lt9+NNMIaZSkKNsGyHoqXUCTlKmZFGfNYYGjer6X0Xc=";
+    hash = "sha256-lt9+NNMIaZSkKNsGyHoqXUCTlKmZFGfNYYGjer6X0Xc=";
   };
 
   # In order to pre-fix the plantuml.jar parameter with the argument
@@ -41,7 +41,7 @@ in
 
 stdenv.mkDerivation rec {
   pname = "plantuml-c4";
-  version = "unstable-2022-08-21";
+  version = "2.8.0";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/tools/misc/plocate/default.nix b/pkgs/tools/misc/plocate/default.nix
index 5081ec12b0ba..b44cb0b14860 100644
--- a/pkgs/tools/misc/plocate/default.nix
+++ b/pkgs/tools/misc/plocate/default.nix
@@ -10,12 +10,12 @@
 }:
 stdenv.mkDerivation rec {
   pname = "plocate";
-  version = "1.1.21";
+  version = "1.1.22";
 
   src = fetchgit {
     url = "https://git.sesse.net/plocate";
     rev = version;
-    sha256 = "sha256-ucCRm1w3ON3Qh7qt1Pf5/3kvXVGP+dJwjSuwYGcDMcs=";
+    sha256 = "sha256-ejv1IsjbImnvI1oorvMoIvTBu3HuVy7VtgHNTIkqqro=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/misc/pre-commit/default.nix b/pkgs/tools/misc/pre-commit/default.nix
index afeb6cdbbba2..11d76add076f 100644
--- a/pkgs/tools/misc/pre-commit/default.nix
+++ b/pkgs/tools/misc/pre-commit/default.nix
@@ -33,6 +33,7 @@ buildPythonApplication rec {
   patches = [
     ./languages-use-the-hardcoded-path-to-python-binaries.patch
     ./hook-tmpl.patch
+    ./pygrep-pythonpath.patch
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/tools/misc/pre-commit/pygrep-pythonpath.patch b/pkgs/tools/misc/pre-commit/pygrep-pythonpath.patch
new file mode 100644
index 000000000000..722b436169be
--- /dev/null
+++ b/pkgs/tools/misc/pre-commit/pygrep-pythonpath.patch
@@ -0,0 +1,13 @@
+diff --git a/pre_commit/languages/pygrep.py b/pre_commit/languages/pygrep.py
+index ec55560..44e08a1 100644
+--- a/pre_commit/languages/pygrep.py
++++ b/pre_commit/languages/pygrep.py
+@@ -98,7 +98,7 @@ def run_hook(
+         color: bool,
+ ) -> tuple[int, bytes]:
+     cmd = (sys.executable, '-m', __name__, *args, entry)
+-    return xargs(cmd, file_args, color=color)
++    return xargs(cmd, file_args, color=color, env={ "PYTHONPATH": ':'.join(sys.path) })
+ 
+ 
+ def main(argv: Sequence[str] | None = None) -> int:
diff --git a/pkgs/tools/misc/qt5ct/default.nix b/pkgs/tools/misc/qt5ct/default.nix
index d9ee0358a76a..38f9f10d9838 100644
--- a/pkgs/tools/misc/qt5ct/default.nix
+++ b/pkgs/tools/misc/qt5ct/default.nix
@@ -23,7 +23,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Qt5 Configuration Tool";
-    homepage = "https://www.opendesktop.org/content/show.php?content=168066";
+    homepage = "https://sourceforge.net/projects/qt5ct/";
     platforms = platforms.linux;
     license = licenses.bsd2;
     maintainers = with maintainers; [ ralith ];
diff --git a/pkgs/tools/misc/rauc/default.nix b/pkgs/tools/misc/rauc/default.nix
index caa558580895..d6e8486681ac 100644
--- a/pkgs/tools/misc/rauc/default.nix
+++ b/pkgs/tools/misc/rauc/default.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rauc";
-  version = "1.11";
+  version = "1.11.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-4HpCwN+ZdDk7ZH7y5sl0lFfKEisXJDGzbuMBJiDaQUs=";
+    sha256 = "sha256-xvuBMOAXnuRYCkripjwfv64BCTLySNxebyHF3sB8EQw=";
   };
 
   passthru = {
diff --git a/pkgs/tools/misc/ripdrag/default.nix b/pkgs/tools/misc/ripdrag/default.nix
index a3c27a48e981..fd9d5a8a3514 100644
--- a/pkgs/tools/misc/ripdrag/default.nix
+++ b/pkgs/tools/misc/ripdrag/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ripdrag";
-  version = "0.4.5";
+  version = "0.4.6";
 
   src = fetchFromGitHub {
     owner = "nik012003";
     repo = "ripdrag";
     rev = "v${version}";
-    hash = "sha256-mU2S4DhS2KXO7uIMBhJvaTjLpkFCljyEVoPcq4b2jKc=";
+    hash = "sha256-42sfSrwRlpaO4Dkw6m6wcKXef5yKZjw9MMoYNwIF6/o=";
   };
 
-  cargoHash = "sha256-PWFNLtEXIgZ0RheDS5j9/MMXgzFjgCJKMi/51Z2ta8I=";
+  cargoHash = "sha256-mW334GTAUAUw8xs2Idpr2ThGyN1P0GbP/RjDqj5Ttr0=";
 
   nativeBuildInputs = [ pkg-config wrapGAppsHook4 ];
 
diff --git a/pkgs/tools/misc/rpi-imager/default.nix b/pkgs/tools/misc/rpi-imager/default.nix
index 6049efe04f80..2a68d92b9c13 100644
--- a/pkgs/tools/misc/rpi-imager/default.nix
+++ b/pkgs/tools/misc/rpi-imager/default.nix
@@ -21,13 +21,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "rpi-imager";
-  version = "1.8.4";
+  version = "1.8.5";
 
   src = fetchFromGitHub {
     owner = "raspberrypi";
     repo = "rpi-imager";
     rev = "refs/tags/v${finalAttrs.version}";
-    sha256 = "sha256-ZuS/fhPpVlLSdaD+t+qIw6fdEbi7c82X+BxcgWlPntg=";
+    sha256 = "sha256-JrotKMyAgQO3Y5RsFAar9N5/wDpWiBcy8RfvBWDiJMs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/rrdtool/default.nix b/pkgs/tools/misc/rrdtool/default.nix
index 58070c3b1b1c..e852374e2a88 100644
--- a/pkgs/tools/misc/rrdtool/default.nix
+++ b/pkgs/tools/misc/rrdtool/default.nix
@@ -1,16 +1,33 @@
-{ fetchurl, lib, stdenv, gettext, perl, pkg-config, libxml2, pango, cairo, groff
-, tcl, darwin }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, gettext
+, perl
+, pkg-config
+, libxml2
+, pango
+, cairo
+, groff
+, tcl
+, darwin
+}:
 
 perl.pkgs.toPerlModule (stdenv.mkDerivation rec {
   pname = "rrdtool";
-  version = "1.7.2";
+  version = "1.8.0";
 
-  src = fetchurl {
-    url = "https://oss.oetiker.ch/rrdtool/pub/rrdtool-${version}.tar.gz";
-    sha256 = "1nsqra0g2nja19akmf9x5y9hhgc35ml3w9dcdz2ayz7zgvmzm6d1";
+  src = fetchFromGitHub {
+    owner = "oetiker";
+    repo = "rrdtool-1.x";
+    rev = "v${version}";
+    hash = "sha256-a+AxU1+YpkGoFs1Iu/CHAEZ4XIkWs7Vsnr6RcfXzsBE=";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [
+    pkg-config
+    autoreconfHook
+  ];
 
   buildInputs = [ gettext perl libxml2 pango cairo groff ]
     ++ lib.optionals stdenv.isDarwin [ tcl darwin.apple_sdk.frameworks.ApplicationServices ];
diff --git a/pkgs/tools/misc/sacad/default.nix b/pkgs/tools/misc/sacad/default.nix
index 5aa6adf768a2..cd948505301e 100644
--- a/pkgs/tools/misc/sacad/default.nix
+++ b/pkgs/tools/misc/sacad/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "sacad";
-  version = "2.4.0";
+  version = "2.7.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-KLVkyiXjpqskM67W9uPl9aPKc3pYMu0nAfwI0OpOniE=";
+    sha256 = "sha256-ZJPcxKc0G8V7x9nyzKXaXpfNpMB3/qRoX0d4lfBZTFY=";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/tools/misc/shim/default.nix b/pkgs/tools/misc/shim/default.nix
index 0989a37454ca..0b8f6dbe5a9f 100644
--- a/pkgs/tools/misc/shim/default.nix
+++ b/pkgs/tools/misc/shim/default.nix
@@ -12,13 +12,13 @@ let
   }.${system} or throwSystem;
 in stdenv.mkDerivation rec {
   pname = "shim";
-  version = "15.7";
+  version = "15.8";
 
   src = fetchFromGitHub {
     owner = "rhboot";
     repo = pname;
     rev = version;
-    hash = "sha256-CfUuq0anbXlCVo9r9NIb76oJzDqaPMIhL9cmXK1iqXo=";
+    hash = "sha256-xnr9HBfYP035C7p2YTRZasx5SF4a2ZkOl9IpsVduNm4=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/tools/misc/star-history/default.nix b/pkgs/tools/misc/star-history/default.nix
index 5eae603c70a9..9e4bbc830cbb 100644
--- a/pkgs/tools/misc/star-history/default.nix
+++ b/pkgs/tools/misc/star-history/default.nix
@@ -9,14 +9,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "star-history";
-  version = "1.0.17";
+  version = "1.0.18";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-r1mDMpnu0/xWLtfM7WsVdO8nbkqNBXvYn31hB9qzgVY=";
+    sha256 = "sha256-PKQyGDSLFRf5eEUICdtDAkbzfljdj0HN40c7+V21wHI=";
   };
 
-  cargoHash = "sha256-e65WlmHfo6zIXkQ/7RqqX4wYjbATfC1ke9Zwcm+EQ7M=";
+  cargoHash = "sha256-LriRO5XdcTqp+7quV11RwjNQgfzQsc5EV8GNwkuwz8s=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/tools/misc/steampipe/default.nix b/pkgs/tools/misc/steampipe/default.nix
index 5e41535a220d..9fb79497ed8b 100644
--- a/pkgs/tools/misc/steampipe/default.nix
+++ b/pkgs/tools/misc/steampipe/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "steampipe";
-  version = "0.21.2";
+  version = "0.21.4";
 
   src = fetchFromGitHub {
     owner = "turbot";
     repo = "steampipe";
     rev = "v${version}";
-    hash = "sha256-baZF1qrRCAF3MjwDb43ejHSFsqVFrIULOsopRRaUZPs=";
+    hash = "sha256-cO6LlcCUn+Fovuqh82Ttymf8kFyBMCHOZrcZWvtBsKo=";
   };
 
   vendorHash = "sha256-XwFBXQw6OfxIQWYidTj+TLn0TrVTrfVry6MgiQWIoV4=";
diff --git a/pkgs/tools/misc/tailspin/default.nix b/pkgs/tools/misc/tailspin/default.nix
index 15af583ce0c4..c3262cb26ac1 100644
--- a/pkgs/tools/misc/tailspin/default.nix
+++ b/pkgs/tools/misc/tailspin/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "tailspin";
-  version = "2.4.0";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     owner = "bensadeh";
     repo = "tailspin";
     rev = version;
-    hash = "sha256-xr9dxq6hUlF3kcXCfmnX2C71NYuGducD0BwbQDnyYJU=";
+    hash = "sha256-cZG4Yu//MKLkQeGP7q+8O0Iy72iyyxfOERsS6kzT7ts=";
   };
 
-  cargoHash = "sha256-1jPVCYq8W+LjJCdEimImUcSmd2OvIKMs5n9yl3g7sBM=";
+  cargoHash = "sha256-rOKJAmqL58UHuG6X5fcQ4UEw2U3g81lKftmFeKy25+w=";
 
   meta = with lib; {
     description = "A log file highlighter";
diff --git a/pkgs/tools/misc/tbls/default.nix b/pkgs/tools/misc/tbls/default.nix
index 060232d8c2f7..7d0921abb8d0 100644
--- a/pkgs/tools/misc/tbls/default.nix
+++ b/pkgs/tools/misc/tbls/default.nix
@@ -9,16 +9,16 @@
 
 buildGoModule rec {
   pname = "tbls";
-  version = "1.72.1";
+  version = "1.73.2";
 
   src = fetchFromGitHub {
     owner = "k1LoW";
     repo = "tbls";
     rev = "v${version}";
-    hash = "sha256-ZkJ1+o4xWQX63/2hdhnE5hyVrZIn1O2kmaiZ1853X/8=";
+    hash = "sha256-UXvUewArdClOolWFgN4Ta11vzq9C9zBjEzVGTtWSjiA=";
   };
 
-  vendorHash = "sha256-IczwqqCQeTpXiDSJxX8ErmO4Ap+coIRAQTmRoDNtdXs=";
+  vendorHash = "sha256-zNQADZkAaohTZReD8qTnNJsfy58NXdQjUdd5j8KcOyY=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/misc/topgrade/default.nix b/pkgs/tools/misc/topgrade/default.nix
index 24ed027b841a..3b632348f263 100644
--- a/pkgs/tools/misc/topgrade/default.nix
+++ b/pkgs/tools/misc/topgrade/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "topgrade";
-  version = "13.0.0";
+  version = "14.0.1";
 
   src = fetchFromGitHub {
     owner = "topgrade-rs";
     repo = "topgrade";
     rev = "v${version}";
-    hash = "sha256-BuYwLD8HlmFjCpR8043GhrYK3XWffeqEaeEDqWhxZVI=";
+    hash = "sha256-opTMV+OH8PR9SxBWj1o8xSngK0QdindDcXyd6TRjdvI=";
   };
 
-  cargoHash = "sha256-+kSvA9AC0peXeFLVjenATRfnIS9qaOr/f1ozPbifiPI=";
+  cargoHash = "sha256-pgYrUZAxoyllQp1HuVhbLR3za+Gx0l8Z2/Zq/KCOKZg=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/tools/misc/trillian/default.nix b/pkgs/tools/misc/trillian/default.nix
index 1c2422bb3391..f52c8f518dd7 100644
--- a/pkgs/tools/misc/trillian/default.nix
+++ b/pkgs/tools/misc/trillian/default.nix
@@ -5,14 +5,14 @@
 
 buildGoModule rec {
   pname = "trillian";
-  version = "1.5.3";
-  vendorHash = "sha256-DsdkTYRQQjTCArD3bo1al8enFzjfT7DVfmjK5KUqPDI=";
+  version = "1.6.0";
+  vendorHash = "sha256-tLhq6ILiKzFM1lIK0DbiIKsn1NWEI168BMaf/MOAtEo=";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-fXqoe59JU5efAo5ByJ4027oqHakNCTvAtAq48MJZ9ZE=";
+    sha256 = "sha256-YHwT+ddVRyHkmXkw2vROL4PS948pOMj9UwOtHorbTAQ=";
   };
 
   subPackages = [
diff --git a/pkgs/tools/misc/turbo/default.nix b/pkgs/tools/misc/turbo/default.nix
index f1216c1fa190..904e89da76ce 100644
--- a/pkgs/tools/misc/turbo/default.nix
+++ b/pkgs/tools/misc/turbo/default.nix
@@ -4,6 +4,7 @@
 , buildGo120Module
 , git
 , nodejs
+, capnproto
 , protobuf
 , protoc-gen-go
 , protoc-gen-go-grpc
@@ -25,12 +26,12 @@
 , CoreFoundation
 }:
 let
-  version = "1.10.16";
+  version = "1.11.3";
   src = fetchFromGitHub {
     owner = "vercel";
     repo = "turbo";
     rev = "v${version}";
-    sha256 = "sha256-7bEHE/bHRVOXMP7+oo+4k8yn6d+LkXBi8JcDeR0ajww";
+    hash = "sha256-hjJXbGct9ZmriKdVjB7gwfmFsV1Tv57V7DfUMFZ8Xv0=";
   };
 
   ffi = rustPlatform.buildRustPackage {
@@ -38,7 +39,7 @@ let
     inherit src version;
     cargoBuildFlags = [ "--package" "turborepo-ffi" ];
 
-    cargoHash = "sha256-Mj46yNOYTqt732d7SJ3sAeXbgDkoh7o7S23lKVgpvKY=";
+    cargoHash = "sha256-3eN8/nBARuaezlzPjAL0YPEPvNqm6jNQAREth8PgcSQ=";
 
     RUSTC_BOOTSTRAP = 1;
     nativeBuildInputs = [
@@ -64,7 +65,8 @@ let
     pname = "go-turbo";
     modRoot = "cli";
 
-    vendorHash = "sha256-8quDuT8VwT3B56jykkbX8ov+DNFZwxPf31+NLdfX1p0=";
+    proxyVendor = true;
+    vendorHash = "sha256-JHTg9Gcc0DVdltTGCUaOPSVxL0XVkwPJQm/LoKffU/o=";
 
     nativeBuildInputs = [
       git
@@ -110,22 +112,6 @@ let
       # expected: env.DetailedMap{All:env.EnvironmentVariableMap(nil), BySource:env.BySource{Explicit:env.EnvironmentVariableMap{}, Matching:env.EnvironmentVariableMap{}}}
       #  actual  : env.DetailedMap{All:env.EnvironmentVariableMap{}, BySource:env.BySource{Explicit:env.EnvironmentVariableMap{}, Matching:env.EnvironmentVariableMap{}}}
       rm ./internal/run/global_hash_test.go
-    '' + lib.optionalString stdenv.isLinux ''
-      #  filewatcher_test.go:122: got event {/build/TestFileWatching1921149570/001/test-1689172679812 1}
-      # filewatcher_test.go:122: got event {/build/TestFileWatching1921149570/001/parent/test-1689172679812 1}
-      # filewatcher_test.go:122: got event {/build/TestFileWatching1921149570/001/parent/child/test-1689172679812 1}
-      # filewatcher_test.go:122: got event {/build/TestFileWatching1921149570/001/parent/sibling/test-1689172679812 1}
-      # filewatcher_test.go:127: got event {/build/TestFileWatching1921149570/001/parent/child/foo 1}
-      # filewatcher_test.go:137: got event {/build/TestFileWatching1921149570/001/parent/sibling/deep 1}
-      # filewatcher_test.go:141: got event {/build/TestFileWatching1921149570/001/parent/sibling/deep/path 1}
-      # filewatcher_test.go:146: got event {/build/TestFileWatching1921149570/001/parent/sibling/deep 1}
-      # filewatcher_test.go:146: Timed out waiting for filesystem event at /build/TestFileWatching1921149570/001/test-1689172679812
-      # filewatcher_test.go:146: Timed out waiting for filesystem event at /build/TestFileWatching1921149570/001/parent/test-1689172679812
-      # filewatcher_test.go:146: Timed out waiting for filesystem event at /build/TestFileWatching1921149570/001/parent/child/test-1689172679812
-      # filewatcher_test.go:146: Timed out waiting for filesystem event at /build/TestFileWatching1921149570/001/parent/sibling/test-1689172679812
-      # filewatcher_test.go:146: got event {/build/TestFileWatching1921149570/001/parent/sibling/deep/path/test-1689172679812 1}
-      # filewatcher_test.go:146: got event {/build/TestFileWatching1921149570/001/parent/sibling/deep/test-1689172679812 1}
-      rm ./internal/filewatcher/filewatcher_test.go
     '';
 
   };
@@ -139,13 +125,14 @@ rustPlatform.buildRustPackage {
   ];
   RELEASE_TURBO_CLI = "true";
 
-  cargoHash = "sha256-F+mEDkP7GismosXj+ICJCE4SHhCpWK7FiSyqjJM6LJ4=";
+  cargoHash = "sha256-bAXO4Lqv4ibo+fz3679MjNgP2MMY8TbxhG0+DRy0xcA=";
 
   RUSTC_BOOTSTRAP = 1;
   nativeBuildInputs = [
     pkg-config
     extra-cmake-modules
     protobuf
+    capnproto
   ];
   buildInputs = [
     openssl
diff --git a/pkgs/tools/misc/twm/default.nix b/pkgs/tools/misc/twm/default.nix
index c750619f8fbd..3e15aa256418 100644
--- a/pkgs/tools/misc/twm/default.nix
+++ b/pkgs/tools/misc/twm/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "twm";
-  version = "0.8.2";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "vinnymeller";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-r9l5gNWoIkKHzjHOCK7qnPLfg6O+km7OX+6pHQKhN6g=";
+    sha256 = "sha256-gvo5+lZNe5QOHNI4nrPbCR65D+VFf/anmLVdu5RXJiY=";
   };
 
-  cargoHash = "sha256-0nCMgfnEqr0D3HpocUN/Hc9tG9byu2CYvBy/8vIU+bI=";
+  cargoHash = "sha256-5+1B+SbrIrswGjtNLlwbtLEhARMZNs75DFK8wQI2O0M=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
diff --git a/pkgs/tools/misc/tz/default.nix b/pkgs/tools/misc/tz/default.nix
index 58cf17384ee3..4059125353f7 100644
--- a/pkgs/tools/misc/tz/default.nix
+++ b/pkgs/tools/misc/tz/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "tz";
-  version = "0.6.3";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "oz";
     repo = "tz";
     rev = "v${version}";
-    sha256 = "sha256-yeCoBDorwwj3+tqKzoAjtMdYmjqscks/qU8EkmO/D5k=";
+    sha256 = "sha256-Mnb0GdJ9dgaUanWBP5JOo6++6MfrUgncBRp4NIbhxf0=";
   };
 
   vendorHash = "sha256-lcCra4LyebkmelvBs0Dd2mn6R64Q5MaUWc5AP8V9pec=";
diff --git a/pkgs/tools/misc/vrc-get/Cargo.lock b/pkgs/tools/misc/vrc-get/Cargo.lock
deleted file mode 100644
index 4eafab4798a1..000000000000
--- a/pkgs/tools/misc/vrc-get/Cargo.lock
+++ /dev/null
@@ -1,1746 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 3
-
-[[package]]
-name = "addr2line"
-version = "0.20.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3"
-dependencies = [
- "gimli",
-]
-
-[[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 = "anstream"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1f58811cfac344940f1a400b6e6231ce35171f614f26439e80f8c1465c5cc0c"
-dependencies = [
- "anstyle",
- "anstyle-parse",
- "anstyle-query",
- "anstyle-wincon",
- "colorchoice",
- "utf8parse",
-]
-
-[[package]]
-name = "anstyle"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d"
-
-[[package]]
-name = "anstyle-parse"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e765fd216e48e067936442276d1d57399e37bce53c264d6fefbe298080cb57ee"
-dependencies = [
- "utf8parse",
-]
-
-[[package]]
-name = "anstyle-query"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
-dependencies = [
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "anstyle-wincon"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58f54d10c6dfa51283a066ceab3ec1ab78d13fae00aa49243a45e4571fb79dfd"
-dependencies = [
- "anstyle",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "async-compression"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb42b2197bf15ccb092b62c74515dbd8b86d0effd934795f6687c93b6e679a2c"
-dependencies = [
- "deflate64",
- "flate2",
- "futures-core",
- "futures-io",
- "memchr",
- "pin-project-lite",
-]
-
-[[package]]
-name = "async_zip"
-version = "0.0.15"
-source = "git+https://github.com/Majored/rs-async-zip.git?rev=a58024e#a58024eee84d3d50e105de79bd6210f832667984"
-dependencies = [
- "async-compression",
- "crc32fast",
- "futures-util",
- "pin-project",
- "thiserror",
- "tokio",
- "tokio-util",
-]
-
-[[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.68"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12"
-dependencies = [
- "addr2line",
- "cc",
- "cfg-if",
- "libc",
- "miniz_oxide 0.7.1",
- "object",
- "rustc-demangle",
-]
-
-[[package]]
-name = "base64"
-version = "0.21.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a"
-
-[[package]]
-name = "bitflags"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-
-[[package]]
-name = "block-buffer"
-version = "0.10.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e"
-dependencies = [
- "generic-array",
-]
-
-[[package]]
-name = "bumpalo"
-version = "3.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
-
-[[package]]
-name = "bytes"
-version = "1.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c"
-
-[[package]]
-name = "cc"
-version = "1.0.78"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d"
-
-[[package]]
-name = "cfg-if"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-
-[[package]]
-name = "clap"
-version = "4.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84ed82781cea27b43c9b106a979fe450a13a31aab0500595fb3fc06616de08e6"
-dependencies = [
- "clap_builder",
- "clap_derive",
-]
-
-[[package]]
-name = "clap_builder"
-version = "4.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2bb9faaa7c2ef94b2743a21f5a29e6f0010dff4caa69ac8e9d6cf8b6fa74da08"
-dependencies = [
- "anstream",
- "anstyle",
- "clap_lex",
- "strsim",
-]
-
-[[package]]
-name = "clap_complete"
-version = "4.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4110a1e6af615a9e6d0a36f805d5c99099f8bab9b8042f5bc1fa220a4a89e36f"
-dependencies = [
- "clap",
-]
-
-[[package]]
-name = "clap_derive"
-version = "4.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873"
-dependencies = [
- "heck",
- "proc-macro2",
- "quote",
- "syn 2.0.29",
-]
-
-[[package]]
-name = "clap_lex"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
-
-[[package]]
-name = "colorchoice"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
-
-[[package]]
-name = "core-foundation"
-version = "0.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
-
-[[package]]
-name = "core-foundation-sys"
-version = "0.8.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
-
-[[package]]
-name = "cpufeatures"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "crc32fast"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
-dependencies = [
- "cfg-if",
-]
-
-[[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 = "deflate64"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30dc5bb425a582de72bb57130320aac133893ea85f6151f79bd9aa9067114f60"
-
-[[package]]
-name = "digest"
-version = "0.10.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
-dependencies = [
- "block-buffer",
- "crypto-common",
-]
-
-[[package]]
-name = "either"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797"
-
-[[package]]
-name = "encoding_rs"
-version = "0.8.31"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b"
-dependencies = [
- "cfg-if",
-]
-
-[[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 = "equivalent"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88bffebc5d80432c9b140ee17875ff173a8ab62faad5b257da912bd2f6c1c0a1"
-
-[[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 = "fastrand"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
-dependencies = [
- "instant",
-]
-
-[[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 = "fnv"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-
-[[package]]
-name = "foreign-types"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
-dependencies = [
- "foreign-types-shared",
-]
-
-[[package]]
-name = "foreign-types-shared"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-
-[[package]]
-name = "form_urlencoded"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
-dependencies = [
- "percent-encoding",
-]
-
-[[package]]
-name = "futures"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-executor",
- "futures-io",
- "futures-sink",
- "futures-task",
- "futures-util",
-]
-
-[[package]]
-name = "futures-channel"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
-dependencies = [
- "futures-core",
- "futures-sink",
-]
-
-[[package]]
-name = "futures-core"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
-
-[[package]]
-name = "futures-executor"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
-dependencies = [
- "futures-core",
- "futures-task",
- "futures-util",
-]
-
-[[package]]
-name = "futures-io"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
-
-[[package]]
-name = "futures-macro"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.29",
-]
-
-[[package]]
-name = "futures-sink"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
-
-[[package]]
-name = "futures-task"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
-
-[[package]]
-name = "futures-util"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-io",
- "futures-macro",
- "futures-sink",
- "futures-task",
- "memchr",
- "pin-project-lite",
- "pin-utils",
- "slab",
-]
-
-[[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 = "getrandom"
-version = "0.2.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
-dependencies = [
- "cfg-if",
- "libc",
- "wasi",
-]
-
-[[package]]
-name = "gimli"
-version = "0.27.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e"
-
-[[package]]
-name = "h2"
-version = "0.3.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "66b91535aa35fea1523ad1b86cb6b53c28e0ae566ba4a460f4457e936cad7c6f"
-dependencies = [
- "bytes",
- "fnv",
- "futures-core",
- "futures-sink",
- "futures-util",
- "http",
- "indexmap 1.9.3",
- "slab",
- "tokio",
- "tokio-util",
- "tracing",
-]
-
-[[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.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
-
-[[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.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "hermit-abi"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
-
-[[package]]
-name = "http"
-version = "0.2.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399"
-dependencies = [
- "bytes",
- "fnv",
- "itoa",
-]
-
-[[package]]
-name = "http-body"
-version = "0.4.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
-dependencies = [
- "bytes",
- "http",
- "pin-project-lite",
-]
-
-[[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.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
-
-[[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.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "034711faac9d2166cb1baf1a2fb0b60b1f277f8492fd72176c17f3515e1abd3c"
-dependencies = [
- "bytes",
- "futures-channel",
- "futures-core",
- "futures-util",
- "h2",
- "http",
- "http-body",
- "httparse",
- "httpdate",
- "itoa",
- "pin-project-lite",
- "socket2 0.4.9",
- "tokio",
- "tower-service",
- "tracing",
- "want",
-]
-
-[[package]]
-name = "hyper-tls"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
-dependencies = [
- "bytes",
- "hyper",
- "native-tls",
- "tokio",
- "tokio-native-tls",
-]
-
-[[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 = "indexmap"
-version = "1.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
-dependencies = [
- "autocfg",
- "hashbrown 0.12.3",
-]
-
-[[package]]
-name = "indexmap"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
-dependencies = [
- "equivalent",
- "hashbrown 0.14.0",
- "serde",
-]
-
-[[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.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7d6c6f8c91b4b9ed43484ad1a938e393caf35960fce7f82a040497207bd8e9e"
-dependencies = [
- "libc",
- "windows-sys 0.42.0",
-]
-
-[[package]]
-name = "ipnet"
-version = "2.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146"
-
-[[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.1",
- "io-lifetimes",
- "rustix",
- "windows-sys 0.48.0",
-]
-
-[[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.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"
-
-[[package]]
-name = "libc"
-version = "0.2.147"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
-
-[[package]]
-name = "linux-raw-sys"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d59d8c75012853d2e872fb56bc8a2e53718e2cafe1a4c823143141c6d90c322f"
-
-[[package]]
-name = "log"
-version = "0.4.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
-
-[[package]]
-name = "memchr"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
-
-[[package]]
-name = "mime"
-version = "0.3.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
-
-[[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",
-]
-
-[[package]]
-name = "mio"
-version = "0.8.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
-dependencies = [
- "libc",
- "wasi",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "native-tls"
-version = "0.2.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
-dependencies = [
- "lazy_static",
- "libc",
- "log",
- "openssl",
- "openssl-probe",
- "openssl-sys",
- "schannel",
- "security-framework",
- "security-framework-sys",
- "tempfile",
-]
-
-[[package]]
-name = "num_cpus"
-version = "1.15.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
-dependencies = [
- "hermit-abi 0.2.6",
- "libc",
-]
-
-[[package]]
-name = "object"
-version = "0.31.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "once_cell"
-version = "1.17.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66"
-
-[[package]]
-name = "openssl"
-version = "0.10.55"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d"
-dependencies = [
- "bitflags",
- "cfg-if",
- "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",
- "syn 1.0.107",
-]
-
-[[package]]
-name = "openssl-probe"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
-
-[[package]]
-name = "openssl-src"
-version = "111.25.0+1.1.1t"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3173cd3626c43e3854b1b727422a276e568d9ec5fe8cec197822cf52cfb743d6"
-dependencies = [
- "cc",
-]
-
-[[package]]
-name = "openssl-sys"
-version = "0.9.90"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6"
-dependencies = [
- "cc",
- "libc",
- "openssl-src",
- "pkg-config",
- "vcpkg",
-]
-
-[[package]]
-name = "percent-encoding"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
-
-[[package]]
-name = "pin-project"
-version = "1.0.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc"
-dependencies = [
- "pin-project-internal",
-]
-
-[[package]]
-name = "pin-project-internal"
-version = "1.0.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
-]
-
-[[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 = "pkg-config"
-version = "0.3.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.63"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
-dependencies = [
- "unicode-ident",
-]
-
-[[package]]
-name = "quote"
-version = "1.0.29"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.2.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
-dependencies = [
- "bitflags",
-]
-
-[[package]]
-name = "regex"
-version = "1.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733"
-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 = "remove_dir_all"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "reqwest"
-version = "0.11.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1"
-dependencies = [
- "base64",
- "bytes",
- "encoding_rs",
- "futures-core",
- "futures-util",
- "h2",
- "http",
- "http-body",
- "hyper",
- "hyper-tls",
- "ipnet",
- "js-sys",
- "log",
- "mime",
- "native-tls",
- "once_cell",
- "percent-encoding",
- "pin-project-lite",
- "serde",
- "serde_json",
- "serde_urlencoded",
- "tokio",
- "tokio-native-tls",
- "tokio-util",
- "tower-service",
- "url",
- "wasm-bindgen",
- "wasm-bindgen-futures",
- "wasm-streams",
- "web-sys",
- "winreg",
-]
-
-[[package]]
-name = "rustc-demangle"
-version = "0.1.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
-
-[[package]]
-name = "rustix"
-version = "0.37.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b24138615de35e32031d041a09032ef3487a616d901ca4db224e7d557efae2"
-dependencies = [
- "bitflags",
- "errno",
- "io-lifetimes",
- "libc",
- "linux-raw-sys",
- "windows-sys 0.45.0",
-]
-
-[[package]]
-name = "ryu"
-version = "1.0.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde"
-
-[[package]]
-name = "schannel"
-version = "0.1.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3"
-dependencies = [
- "windows-sys 0.42.0",
-]
-
-[[package]]
-name = "security-framework"
-version = "2.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "645926f31b250a2dca3c232496c2d898d91036e45ca0e97e0e2390c54e11be36"
-dependencies = [
- "bitflags",
- "core-foundation",
- "core-foundation-sys",
- "libc",
- "security-framework-sys",
-]
-
-[[package]]
-name = "security-framework-sys"
-version = "2.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
-
-[[package]]
-name = "semver"
-version = "1.0.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "serde"
-version = "1.0.188"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
-dependencies = [
- "serde_derive",
-]
-
-[[package]]
-name = "serde_derive"
-version = "1.0.188"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.29",
-]
-
-[[package]]
-name = "serde_json"
-version = "1.0.107"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"
-dependencies = [
- "indexmap 2.0.0",
- "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 = "sha2"
-version = "0.10.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
-dependencies = [
- "cfg-if",
- "cpufeatures",
- "digest",
-]
-
-[[package]]
-name = "slab"
-version = "0.4.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "socket2"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "socket2"
-version = "0.5.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e"
-dependencies = [
- "libc",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "strsim"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
-
-[[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.29"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "tempfile"
-version = "3.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
-dependencies = [
- "cfg-if",
- "fastrand",
- "libc",
- "redox_syscall",
- "remove_dir_all",
- "winapi",
-]
-
-[[package]]
-name = "termcolor"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
-dependencies = [
- "winapi-util",
-]
-
-[[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 = "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.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
-
-[[package]]
-name = "tokio"
-version = "1.32.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9"
-dependencies = [
- "backtrace",
- "bytes",
- "libc",
- "mio",
- "num_cpus",
- "pin-project-lite",
- "socket2 0.5.4",
- "tokio-macros",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "tokio-macros"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.29",
-]
-
-[[package]]
-name = "tokio-native-tls"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b"
-dependencies = [
- "native-tls",
- "tokio",
-]
-
-[[package]]
-name = "tokio-util"
-version = "0.7.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d"
-dependencies = [
- "bytes",
- "futures-core",
- "futures-io",
- "futures-sink",
- "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.37"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
-dependencies = [
- "cfg-if",
- "pin-project-lite",
- "tracing-core",
-]
-
-[[package]]
-name = "tracing-core"
-version = "0.1.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a"
-dependencies = [
- "once_cell",
-]
-
-[[package]]
-name = "try-lock"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
-
-[[package]]
-name = "typenum"
-version = "1.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
-
-[[package]]
-name = "unicode-bidi"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0046be40136ef78dc325e0edefccf84ccddacd0afcc1ca54103fa3c61bbdab1d"
-
-[[package]]
-name = "unicode-ident"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
-
-[[package]]
-name = "unicode-normalization"
-version = "0.1.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
-dependencies = [
- "tinyvec",
-]
-
-[[package]]
-name = "url"
-version = "2.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
-dependencies = [
- "form_urlencoded",
- "idna",
- "percent-encoding",
-]
-
-[[package]]
-name = "utf8parse"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
-
-[[package]]
-name = "uuid"
-version = "1.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d"
-dependencies = [
- "getrandom",
-]
-
-[[package]]
-name = "vcpkg"
-version = "0.2.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
-
-[[package]]
-name = "version_check"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-
-[[package]]
-name = "vrc-get"
-version = "1.3.0"
-dependencies = [
- "async_zip",
- "clap",
- "clap_complete",
- "env_logger",
- "futures",
- "indexmap 2.0.0",
- "itertools",
- "log",
- "pin-project-lite",
- "reqwest",
- "semver",
- "serde",
- "serde_json",
- "sha2",
- "tokio",
- "tokio-util",
- "uuid",
- "windows",
-]
-
-[[package]]
-name = "want"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0"
-dependencies = [
- "log",
- "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 = "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-futures"
-version = "0.4.33"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d"
-dependencies = [
- "cfg-if",
- "js-sys",
- "wasm-bindgen",
- "web-sys",
-]
-
-[[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 = "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.60"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f"
-dependencies = [
- "js-sys",
- "wasm-bindgen",
-]
-
-[[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"
-version = "0.51.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9"
-dependencies = [
- "windows-core",
- "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-sys"
-version = "0.42.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
-dependencies = [
- "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-sys"
-version = "0.45.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
-dependencies = [
- "windows-targets 0.42.2",
-]
-
-[[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-targets"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
-dependencies = [
- "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.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_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_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_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_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_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_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_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 = "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",
-]
diff --git a/pkgs/tools/misc/vrc-get/default.nix b/pkgs/tools/misc/vrc-get/default.nix
index e6ea0c595e68..e89d4d475834 100644
--- a/pkgs/tools/misc/vrc-get/default.nix
+++ b/pkgs/tools/misc/vrc-get/default.nix
@@ -1,29 +1,24 @@
-{ fetchFromGitHub, lib, rustPlatform, pkg-config, openssl, stdenv, Security }:
+{ fetchFromGitHub, lib, rustPlatform, pkg-config, openssl, stdenv, Security, SystemConfiguration }:
 
 rustPlatform.buildRustPackage rec {
   pname = "vrc-get";
-  version = "1.3.0";
+  version = "1.5.2";
 
   src = fetchFromGitHub {
     owner = "anatawa12";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-FCLIc5c+50qGpBEbJ4bUSNAfQVdpeswNwiWrVcO91zI=";
+    hash = "sha256-DTiYyTZKYNprQSsAjHmpGdnS6dkXa3hSRGmIiLT/xr8=";
   };
 
   nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
+  buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
 
   # Make openssl-sys use pkg-config.
   OPENSSL_NO_VENDOR = 1;
 
-  cargoLock = {
-    lockFile = ./Cargo.lock;
-    outputHashes = {
-      "async_zip-0.0.15" = "sha256-UXBVZy3nf20MUh9jQdYeS5ygrZfeRWtiNRtiyMvkdSs=";
-    };
-  };
+  cargoHash = "sha256-4bhle98/zfw1uGNx+m1/4H9n63DnIezg/ZdV+zj0JNA=";
 
   meta = with lib; {
     description = "Command line client of VRChat Package Manager, the main feature of VRChat Creator Companion (VCC)";
diff --git a/pkgs/tools/misc/vtm/default.nix b/pkgs/tools/misc/vtm/default.nix
index 9893f3a482b6..3e37ae1bddab 100644
--- a/pkgs/tools/misc/vtm/default.nix
+++ b/pkgs/tools/misc/vtm/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "vtm";
-  version = "0.9.44";
+  version = "0.9.63";
 
   src = fetchFromGitHub {
     owner = "netxs-group";
     repo = "vtm";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-FWWQzlJ8Uic2ry16UvwDn40JwtXs+4DTFogq++taSY4=";
+    hash = "sha256-6WRSkS2uPHOcEmk2xB63G+zxbRu1tlz1D7k92ITEgSQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/wakapi/default.nix b/pkgs/tools/misc/wakapi/default.nix
index 4602f5ba35bc..2488335fb56c 100644
--- a/pkgs/tools/misc/wakapi/default.nix
+++ b/pkgs/tools/misc/wakapi/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "wakapi";
-  version = "2.10.2";
+  version = "2.10.4";
 
   src = fetchFromGitHub {
     owner = "muety";
     repo = pname;
     rev = version;
-    sha256 = "sha256-ecbWP6WnFCMCnk8o3A0UUdMj8cSmKm5KD/gVN/AVvIY=";
+    sha256 = "sha256-xUFYwV9fuTMDEqp4FEyPRDQCB6I/3sqcmEX8pm6BDfw=";
   };
 
-  vendorHash = "sha256-RG6lc2axeAAPHLS1xRh8gpV/bcnyTWzYcb1YPLpQ0uQ=";
+  vendorHash = "sha256-TeKVhG1V9inyDWfILwtpU9QknJ9bt3Dja5GVHrK9PkA=";
 
   # Not a go module required by the project, contains development utilities
   excludedPackages = [ "scripts" ];
diff --git a/pkgs/tools/misc/wasm-tools/default.nix b/pkgs/tools/misc/wasm-tools/default.nix
index e192b4a229de..1906fb318efe 100644
--- a/pkgs/tools/misc/wasm-tools/default.nix
+++ b/pkgs/tools/misc/wasm-tools/default.nix
@@ -5,19 +5,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wasm-tools";
-  version = "1.0.55";
+  version = "1.0.57";
 
   src = fetchFromGitHub {
     owner = "bytecodealliance";
     repo = pname;
     rev = "${pname}-${version}";
-    hash = "sha256-9HcHM5ao0lSGctvjYQZNb5wlNsYPTD3NtPDZA/kHJdY=";
+    hash = "sha256-3syV4zPoSJtMiogmRu90pYTwNw2T/dRKFWczYI2J1r0=";
     fetchSubmodules = true;
   };
 
   # Disable cargo-auditable until https://github.com/rust-secure-code/cargo-auditable/issues/124 is solved.
   auditable = false;
-  cargoHash = "sha256-fU9tpN+tVlwbTNWinylcRACSLhDD/uPPGW6GNWm/tvo=";
+  cargoHash = "sha256-w1BVh7/L4+CXTgjkQKzbzgqw3XE49hYrkWtaNmcfDi4=";
   cargoBuildFlags = [ "--package" "wasm-tools" ];
   cargoTestFlags = [ "--all" ];
 
diff --git a/pkgs/tools/misc/watchexec/default.nix b/pkgs/tools/misc/watchexec/default.nix
index 1d60da6afaca..cf21202dc810 100644
--- a/pkgs/tools/misc/watchexec/default.nix
+++ b/pkgs/tools/misc/watchexec/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "watchexec";
-  version = "1.25.0";
+  version = "1.25.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-kEZvzIbmL+Plko+uLP5LnacPoypkBCMzxSOkRkDsLW4=";
+    hash = "sha256-0zBY0PS7qJCAabg9ZKX1JC+gaTM/WSs2U6Avcq3MHmQ=";
   };
 
-  cargoHash = "sha256-FgTD7jFgkhJA73VVZ47FcA21xJaMX8c3SAaB13Nvrqs=";
+  cargoHash = "sha256-RSJOGiSziI2OJkRJAxPZ57uyPPjd3uExijHdIy52dr4=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/misc/xcp/default.nix b/pkgs/tools/misc/xcp/default.nix
index 106546b656e6..b1c11c4465e9 100644
--- a/pkgs/tools/misc/xcp/default.nix
+++ b/pkgs/tools/misc/xcp/default.nix
@@ -2,19 +2,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "xcp";
-  version = "0.16.0";
+  version = "0.18.1";
 
   src = fetchFromGitHub {
     owner = "tarka";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-JntFXpB72vZJHkyawFruLhz9rnR1fp+hoXEljzeV0Xo=";
+    sha256 = "sha256-uZnKrWD3a3TpdKplLxzCKacfpuoo3vrCZmFsePIxR18=";
   };
 
   # no such file or directory errors
   doCheck = false;
 
-  cargoHash = "sha256-IUJbatLE97qtUnm/Ho6SS+yL7LRd7oEGiSsZF36Qe5I=";
+  cargoHash = "sha256-QaLNc05fI6V/5hbSfOL+uKnjkyxDclAmULx45z9gigs=";
 
   meta = with lib; {
     description = "An extended cp(1)";
diff --git a/pkgs/tools/misc/xilinx-bootgen/default.nix b/pkgs/tools/misc/xilinx-bootgen/default.nix
index 7f9fb0e2e175..1eece16d3511 100644
--- a/pkgs/tools/misc/xilinx-bootgen/default.nix
+++ b/pkgs/tools/misc/xilinx-bootgen/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xilinx-bootgen";
-  version = "xilinx_v2023.1";
+  version = "xilinx_v2023.2";
 
   src = fetchFromGitHub {
     owner = "xilinx";
     repo = "bootgen";
     rev = version;
-    sha256 = "sha256-pEkpZachZX2tOhH2Odb2fZWqJehLILE/0Z500xRuRzU=";
+    hash = "sha256-YRaq36N6uBHyjuHQ5hCO35Y+y818NuSjg/js181iItA=";
   };
 
   buildInputs = [ openssl ];
diff --git a/pkgs/tools/misc/xq/default.nix b/pkgs/tools/misc/xq/default.nix
index 7c4d185a7b68..deddb3306440 100644
--- a/pkgs/tools/misc/xq/default.nix
+++ b/pkgs/tools/misc/xq/default.nix
@@ -5,14 +5,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "xq";
-  version = "0.2.45";
+  version = "0.3.0";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-wSvVmKqucvg7Gs4H1o9i/d8f2I1g52Vq2Z8F7FwaOR0=";
+    sha256 = "sha256-mgvs3/gseLnFtAciW5txtYqo+8DyyQC7y/tN1kDqcb4=";
   };
 
-  cargoHash = "sha256-Gje7Sqe51IMzblydU0s1qXqfIIIQvt0EYMChVbK295s=";
+  cargoHash = "sha256-lSyJqGWlk3ldgAkyebuyUDLp8mJdwnw8ee6ZHQXU2Y4=";
 
   meta = with lib; {
     description = "Pure rust implementation of jq";
diff --git a/pkgs/tools/misc/ytcast/default.nix b/pkgs/tools/misc/ytcast/default.nix
index 86a84e6c8d90..798508f2451e 100644
--- a/pkgs/tools/misc/ytcast/default.nix
+++ b/pkgs/tools/misc/ytcast/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "ytcast";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "MarcoLucidi01";
     repo = "ytcast";
     rev = "v${version}";
-    sha256 = "0f45ai1s4njhcvbv088yn10i3vdvlm6wlfi0ijq5gak1dg02klma";
+    sha256 = "sha256-iy9+MgXwP4ALz4NHJyn2ghC5boR53H3ioB2+7tcJunE=";
   };
 
   vendorHash = null;
diff --git a/pkgs/tools/misc/yubico-piv-tool/default.nix b/pkgs/tools/misc/yubico-piv-tool/default.nix
index 26288e760ee6..002dbed4fcd6 100644
--- a/pkgs/tools/misc/yubico-piv-tool/default.nix
+++ b/pkgs/tools/misc/yubico-piv-tool/default.nix
@@ -17,7 +17,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "yubico-piv-tool";
-  version = "2.4.2";
+  version = "2.5.0";
 
   outputs = [ "out" "dev" "man" ];
 
@@ -25,7 +25,7 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "Yubico";
     repo = "yubico-piv-tool";
     rev = "refs/tags/yubico-piv-tool-${finalAttrs.version}";
-    hash = "sha256-viTPLg5vakDQEs8ggQro10nNMbQC4CSKEE34d/Ba/V8=";
+    hash = "sha256-KSM/p6PMzgpVtXIR9GjGiP/UqXhbc1xSQ71elbE4JQE=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/misc/yubikey-manager/default.nix b/pkgs/tools/misc/yubikey-manager/default.nix
index fd95f6541981..eb25d052e908 100644
--- a/pkgs/tools/misc/yubikey-manager/default.nix
+++ b/pkgs/tools/misc/yubikey-manager/default.nix
@@ -8,14 +8,14 @@
 
 python3Packages.buildPythonPackage rec {
   pname = "yubikey-manager";
-  version = "5.2.1";
-  format = "pyproject";
+  version = "5.3.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "Yubico";
     repo = "yubikey-manager";
     rev = version;
-    hash = "sha256-CUe/oB/+Hq9evnLwl8r0k5ObhI3vDt7oX79+20yMfjY=";
+    hash = "sha256-c5edonnvvGIZ6SJ6+gd2xcAy0/HiAEUEPMGQzOKK2Sw=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/misc/yutto/default.nix b/pkgs/tools/misc/yutto/default.nix
index 7aae06e25485..5af50d54ad6f 100644
--- a/pkgs/tools/misc/yutto/default.nix
+++ b/pkgs/tools/misc/yutto/default.nix
@@ -9,14 +9,14 @@ with python3.pkgs;
 
 buildPythonApplication rec {
   pname = "yutto";
-  version = "2.0.0b32";
+  version = "2.0.0b33";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-tncuRrEq59OPO2ZuWUowDHLsqJ1Dof9vroVOxQQ9hpE=";
+    hash = "sha256-TUyjppAHmWCZxifeQeOpFMPBksqLRSYdqgG7NEMVILY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/networking/aardvark-dns/default.nix b/pkgs/tools/networking/aardvark-dns/default.nix
index 8ecc0442ecc3..df39d0a98e9e 100644
--- a/pkgs/tools/networking/aardvark-dns/default.nix
+++ b/pkgs/tools/networking/aardvark-dns/default.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "aardvark-dns";
-  version = "1.9.0";
+  version = "1.10.0";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-ZpZlmAlHtlg7a/81TEGRj80Z6Vahk0CFgQmjU9W/tc8=";
+    hash = "sha256-BZJn0XrqDttNlKNpLy2iZzt8xcpxCoBrWV+L8MstMnM=";
   };
 
-  cargoHash = "sha256-6OMiLcSTndX/c5xHe896PMuRpvT21jFpDfCxH15UQIA=";
+  cargoHash = "sha256-hDskOYyOo18EWsYTIf1trZxhRQK0Jf+T4bXb1JJKjEo=";
 
   passthru.tests = { inherit (nixosTests) podman; };
 
diff --git a/pkgs/tools/networking/bacnet-stack/default.nix b/pkgs/tools/networking/bacnet-stack/default.nix
index 6a514939aacf..d5f126c19bbb 100644
--- a/pkgs/tools/networking/bacnet-stack/default.nix
+++ b/pkgs/tools/networking/bacnet-stack/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bacnet-stack";
-  version = "1.3.1";
+  version = "1.3.2";
 
   src = fetchFromGitHub {
     owner = "bacnet-stack";
     repo = "bacnet-stack";
     rev = "bacnet-stack-${version}";
-    sha256 = "sha256-Uq55zrcP8jBKklmT2AZfL8gkplm/wwSDAh/yXd1jydc=";
+    sha256 = "sha256-hgUntojq10gYoY/inO46MzwK6o2q8ELKTaJbAbCx8Vc=";
   };
 
   hardeningDisable = [ "all" ];
diff --git a/pkgs/tools/networking/bandwhich/Cargo.lock b/pkgs/tools/networking/bandwhich/Cargo.lock
index f0388a58d2bb..2742af2bd33c 100644
--- a/pkgs/tools/networking/bandwhich/Cargo.lock
+++ b/pkgs/tools/networking/bandwhich/Cargo.lock
@@ -29,6 +29,18 @@ dependencies = [
 ]
 
 [[package]]
+name = "ahash"
+version = "0.8.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
+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"
@@ -38,6 +50,12 @@ dependencies = [
 ]
 
 [[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"
@@ -54,9 +72,9 @@ dependencies = [
 
 [[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",
@@ -74,50 +92,50 @@ checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
 
 [[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.75"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
+checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
 dependencies = [
  "backtrace",
 ]
 
 [[package]]
 name = "async-trait"
-version = "0.1.74"
+version = "0.1.77"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
+checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -143,20 +161,24 @@ dependencies = [
 
 [[package]]
 name = "bandwhich"
-version = "0.21.1"
+version = "0.22.2"
 dependencies = [
  "anyhow",
  "async-trait",
  "chrono",
  "clap",
  "clap-verbosity-flag",
+ "clap_complete",
+ "clap_mangen",
  "crossterm",
  "derivative",
  "http_req",
  "insta",
  "ipnetwork",
+ "itertools",
  "log",
  "netstat2",
+ "once_cell",
  "packet-builder",
  "pnet",
  "pnet_base",
@@ -167,6 +189,7 @@ dependencies = [
  "resolv-conf",
  "rstest",
  "simplelog",
+ "strum",
  "sysinfo",
  "thiserror",
  "tokio",
@@ -189,9 +212,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.1"
+version = "2.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
 
 [[package]]
 name = "block-buffer"
@@ -265,16 +288,16 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "chrono"
-version = "0.4.31"
+version = "0.4.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
+checksum = "9f13690e35a5e4ace198e7beea2895d29f3a9cc55015fcebe6336bd2010af9eb"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
  "js-sys",
  "num-traits",
  "wasm-bindgen",
- "windows-targets 0.48.5",
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
@@ -289,9 +312,9 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.4.6"
+version = "4.4.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d04704f56c2cde07f43e8e2c154b43f216dc5c92fc98ada720177362f953b956"
+checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -299,9 +322,9 @@ dependencies = [
 
 [[package]]
 name = "clap-verbosity-flag"
-version = "2.0.1"
+version = "2.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1eef05769009513df2eb1c3b4613e7fad873a14c600ff025b08f250f59fee7de"
+checksum = "b57f73ca21b17a0352944b9bb61803b6007bd911b6cccfef7153f7f0600ac495"
 dependencies = [
  "clap",
  "log",
@@ -309,9 +332,9 @@ dependencies = [
 
 [[package]]
 name = "clap_builder"
-version = "4.4.6"
+version = "4.4.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e231faeaca65ebd1ea3c737966bf858971cd38c3849107aa3ea7de90a804e45"
+checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7"
 dependencies = [
  "anstream",
  "anstyle",
@@ -320,22 +343,41 @@ dependencies = [
 ]
 
 [[package]]
+name = "clap_complete"
+version = "4.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df631ae429f6613fcd3a7c1adbdb65f637271e561b03680adaa6573015dfb106"
+dependencies = [
+ "clap",
+]
+
+[[package]]
 name = "clap_derive"
-version = "4.4.2"
+version = "4.4.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873"
+checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "clap_lex"
-version = "0.5.1"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961"
+checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
+
+[[package]]
+name = "clap_mangen"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4a7c2b01e5e779c19f46a94bbd398f33ae63b0f78c07108351fb4536845bb7fd"
+dependencies = [
+ "clap",
+ "roff",
+]
 
 [[package]]
 name = "colorchoice"
@@ -345,14 +387,14 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
 
 [[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",
- "windows-sys 0.45.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -363,9 +405,9 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
 
 [[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",
@@ -373,15 +415,15 @@ dependencies = [
 
 [[package]]
 name = "core-foundation-sys"
-version = "0.8.4"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.9"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
 dependencies = [
  "libc",
 ]
@@ -397,36 +439,28 @@ dependencies = [
 
 [[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",
- "scopeguard",
 ]
 
 [[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"
@@ -434,7 +468,7 @@ version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "crossterm_winapi",
  "libc",
  "mio",
@@ -465,15 +499,15 @@ dependencies = [
 
 [[package]]
 name = "data-encoding"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308"
+checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
 
 [[package]]
 name = "deranged"
-version = "0.3.9"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
 dependencies = [
  "powerfmt",
 ]
@@ -532,17 +566,17 @@ dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "errno"
-version = "0.3.5"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
 dependencies = [
  "libc",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -578,18 +612,18 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
 
 [[package]]
 name = "form_urlencoded"
-version = "1.2.0"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
 dependencies = [
  "percent-encoding",
 ]
 
 [[package]]
 name = "futures"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
+checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -602,9 +636,9 @@ dependencies = [
 
 [[package]]
 name = "futures-channel"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -612,15 +646,15 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -629,32 +663,32 @@ dependencies = [
 
 [[package]]
 name = "futures-io"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
 
 [[package]]
 name = "futures-macro"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "futures-sink"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
 
 [[package]]
 name = "futures-task"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
 
 [[package]]
 name = "futures-timer"
@@ -664,9 +698,9 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
 
 [[package]]
 name = "futures-util"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -692,9 +726,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.10"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if",
  "libc",
@@ -703,9 +737,9 @@ dependencies = [
 
 [[package]]
 name = "gimli"
-version = "0.28.0"
+version = "0.28.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
 name = "glob"
@@ -714,6 +748,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[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"
@@ -721,9 +765,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.3"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f"
 
 [[package]]
 name = "hex"
@@ -753,9 +797,9 @@ dependencies = [
 
 [[package]]
 name = "http_req"
-version = "0.10.0"
+version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "158d4edacc70c9bdb0464314063b8d9d60fa776442dc13b00a13581b88b0a0a0"
+checksum = "90394b01e9de1f7eca6ca0664cc64bd92add9603c1aa4f961813f23789035e10"
 dependencies = [
  "native-tls",
  "unicase",
@@ -763,16 +807,16 @@ dependencies = [
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.57"
+version = "0.1.59"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
+checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
  "iana-time-zone-haiku",
  "js-sys",
  "wasm-bindgen",
- "windows",
+ "windows-core",
 ]
 
 [[package]]
@@ -795,6 +839,16 @@ dependencies = [
 ]
 
 [[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 = "indoc"
 version = "2.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -823,17 +877,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "io-lifetimes"
-version = "1.0.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
-dependencies = [
- "hermit-abi",
- "libc",
- "windows-sys 0.48.0",
-]
-
-[[package]]
 name = "ipconfig"
 version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -847,9 +890,9 @@ dependencies = [
 
 [[package]]
 name = "ipnet"
-version = "2.8.0"
+version = "2.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6"
+checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
 
 [[package]]
 name = "ipnetwork"
@@ -862,18 +905,18 @@ dependencies = [
 
 [[package]]
 name = "itertools"
-version = "0.11.0"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
+checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0"
 dependencies = [
  "either",
 ]
 
 [[package]]
 name = "itoa"
-version = "1.0.9"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
 name = "jobserver"
@@ -886,9 +929,9 @@ dependencies = [
 
 [[package]]
 name = "js-sys"
-version = "0.3.64"
+version = "0.3.67"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
+checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -901,9 +944,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libc"
-version = "0.2.149"
+version = "0.2.152"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b"
+checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
 
 [[package]]
 name = "linked-hash-map"
@@ -913,21 +956,15 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.1.4"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
-
-[[package]]
-name = "linux-raw-sys"
-version = "0.4.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
 
 [[package]]
 name = "lock_api"
-version = "0.4.10"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -940,6 +977,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
+name = "lru"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2994eeba8ed550fd9b47a0b38f0242bc3344e496483c6180b69139cc2fa5d1d7"
+dependencies = [
+ "hashbrown",
+]
+
+[[package]]
 name = "lru-cache"
 version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -956,18 +1002,9 @@ checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
 
 [[package]]
 name = "memchr"
-version = "2.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
-
-[[package]]
-name = "memoffset"
-version = "0.9.0"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
-dependencies = [
- "autocfg",
-]
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "miniz_oxide"
@@ -980,9 +1017,9 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.8"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
+checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
 dependencies = [
  "libc",
  "log",
@@ -1078,26 +1115,26 @@ 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 = [
  "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 = "openssl"
-version = "0.10.57"
+version = "0.10.63"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c"
+checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "cfg-if",
  "foreign-types",
  "libc",
@@ -1114,7 +1151,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1125,9 +1162,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.93"
+version = "0.9.99"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db4d56a4c0478783083cfafcc42493dd4a981d41669da64b4572a2a089b51b1d"
+checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae"
 dependencies = [
  "cc",
  "libc",
@@ -1158,9 +1195,9 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.8"
+version = "0.9.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
  "cfg-if",
  "libc",
@@ -1200,9 +1237,9 @@ dependencies = [
 
 [[package]]
 name = "percent-encoding"
-version = "2.3.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "pin-project-lite"
@@ -1218,9 +1255,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
 name = "pkg-config"
-version = "0.3.27"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
 
 [[package]]
 name = "pnet"
@@ -1267,7 +1304,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "regex",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1327,26 +1364,37 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.69"
+version = "1.0.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "procfs"
-version = "0.15.1"
+version = "0.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "943ca7f9f29bab5844ecd8fdb3992c5969b6622bb9609b9502fef9b4310e3f1f"
+checksum = "731e0d9356b0c25f16f33b5be79b1c57b562f141ebfcdb0ad8ac2c13a24293b4"
 dependencies = [
- "bitflags 1.3.2",
- "byteorder",
+ "bitflags 2.4.2",
  "chrono",
  "flate2",
  "hex",
  "lazy_static",
- "rustix 0.36.16",
+ "procfs-core",
+ "rustix",
+]
+
+[[package]]
+name = "procfs-core"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d3554923a69f4ce04c4a754260c338f505ce22642d3830e049a399fc2059a29"
+dependencies = [
+ "bitflags 2.4.2",
+ "chrono",
+ "hex",
 ]
 
 [[package]]
@@ -1357,9 +1405,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
 
 [[package]]
 name = "quote"
-version = "1.0.33"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
@@ -1396,16 +1444,18 @@ dependencies = [
 
 [[package]]
 name = "ratatui"
-version = "0.23.0"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e2e4cd95294a85c3b4446e63ef054eea43e0205b1fd60120c16b74ff7ff96ad"
+checksum = "a5659e52e4ba6e07b2dad9f1158f578ef84a73762625ddb51536019f34d180eb"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "cassowary",
  "crossterm",
  "indoc",
  "itertools",
+ "lru",
  "paste",
+ "stability",
  "strum",
  "unicode-segmentation",
  "unicode-width",
@@ -1413,9 +1463,9 @@ dependencies = [
 
 [[package]]
 name = "rayon"
-version = "1.8.0"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
+checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051"
 dependencies = [
  "either",
  "rayon-core",
@@ -1423,9 +1473,9 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.12.0"
+version = "1.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
 dependencies = [
  "crossbeam-deque",
  "crossbeam-utils",
@@ -1433,18 +1483,18 @@ dependencies = [
 
 [[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 = "regex"
-version = "1.10.1"
+version = "1.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aaac441002f822bc9705a681810a4dd2963094b9ca0ddc41cb963a4c189189ea"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -1454,9 +1504,9 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.4.2"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5011c7e263a695dc8ca064cddb722af1be54e517a280b12a5356f98366899e5d"
+checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -1471,9 +1521,9 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "relative-path"
-version = "1.9.0"
+version = "1.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c707298afce11da2efef2f600116fa93ffa7a032b5d7b628aa17711ec81383ca"
+checksum = "e898588f33fdd5b9420719948f9f2a32c922a246964576f71ba7f24f80610fbc"
 
 [[package]]
 name = "resolv-conf"
@@ -1486,6 +1536,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "roff"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b833d8d034ea094b1ea68aa6d5c740e0d04bad9d16568d08ba6f76823a114316"
+
+[[package]]
 name = "rstest"
 version = "0.18.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1510,7 +1566,7 @@ dependencies = [
  "regex",
  "relative-path",
  "rustc_version",
- "syn 2.0.38",
+ "syn 2.0.48",
  "unicode-ident",
 ]
 
@@ -1531,29 +1587,15 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.36.16"
+version = "0.38.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6da3636faa25820d8648e0e31c5d519bbb01f72fdf57131f0f5f7da5fed36eab"
+checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "errno",
- "io-lifetimes",
  "libc",
- "linux-raw-sys 0.1.4",
- "windows-sys 0.45.0",
-]
-
-[[package]]
-name = "rustix"
-version = "0.38.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "745ecfa778e66b2b63c88a61cb36e0eea109e803b0b86bf9879fbc77c70e86ed"
-dependencies = [
- "bitflags 2.4.1",
- "errno",
- "libc",
- "linux-raw-sys 0.4.10",
- "windows-sys 0.48.0",
+ "linux-raw-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -1564,11 +1606,11 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 
 [[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]]
@@ -1602,28 +1644,28 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.20"
+version = "1.0.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
+checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
 
 [[package]]
 name = "serde"
-version = "1.0.189"
+version = "1.0.196"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e422a44e74ad4001bdc8eede9a4570ab52f71190e9c076d14369f38b9200537"
+checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.189"
+version = "1.0.196"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e48d1f918009ce3145511378cf68d613e3b3d9137d67272562080d68a2b32d5"
+checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1680,9 +1722,9 @@ dependencies = [
 
 [[package]]
 name = "similar"
-version = "2.3.0"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2aeaf503862c419d66959f5d7ca015337d864e9c49485d771b732e2a20453597"
+checksum = "32fea41aca09ee824cc9724996433064c89f7777e60762749a4170a14abbfa21"
 
 [[package]]
 name = "simplelog"
@@ -1706,21 +1748,31 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.11.1"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a"
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
 
 [[package]]
 name = "socket2"
-version = "0.5.4"
+version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e"
+checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
 dependencies = [
  "libc",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
+name = "stability"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ebd1b177894da2a2d9120208c3386066af06a488255caabc5de8ddca22dbc3ce"
+dependencies = [
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
 name = "strsim"
 version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1745,7 +1797,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1767,9 +1819,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.38"
+version = "2.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b"
+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1778,9 +1830,9 @@ dependencies = [
 
 [[package]]
 name = "sysinfo"
-version = "0.29.10"
+version = "0.30.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a18d114d420ada3a891e6bc8e96a2023402203296a47cdd65083377dad18ba5"
+checksum = "1fb4f3438c8f6389c864e61221cbc97e9bca98b4daf39a5beb7bea660f528bb2"
 dependencies = [
  "cfg-if",
  "core-foundation-sys",
@@ -1788,20 +1840,20 @@ dependencies = [
  "ntapi",
  "once_cell",
  "rayon",
- "winapi",
+ "windows",
 ]
 
 [[package]]
 name = "tempfile"
-version = "3.8.0"
+version = "3.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef"
+checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
 dependencies = [
  "cfg-if",
  "fastrand",
  "redox_syscall",
- "rustix 0.38.19",
- "windows-sys 0.48.0",
+ "rustix",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -1815,29 +1867,29 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.49"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4"
+checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.49"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc"
+checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "time"
-version = "0.3.30"
+version = "0.3.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5"
+checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e"
 dependencies = [
  "deranged",
  "itoa",
@@ -1857,9 +1909,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.2.15"
+version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20"
+checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f"
 dependencies = [
  "time-core",
 ]
@@ -1881,9 +1933,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.33.0"
+version = "1.35.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653"
+checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
 dependencies = [
  "backtrace",
  "bytes",
@@ -1897,9 +1949,9 @@ dependencies = [
 
 [[package]]
 name = "tracing"
-version = "0.1.39"
+version = "0.1.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee2ef2af84856a50c1d430afce2fdded0a4ec7eda868db86409b4543df0797f9"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
 dependencies = [
  "pin-project-lite",
  "tracing-attributes",
@@ -1914,7 +1966,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1928,9 +1980,9 @@ dependencies = [
 
 [[package]]
 name = "trust-dns-proto"
-version = "0.23.1"
+version = "0.23.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "559ac980345f7f5020883dd3bcacf176355225e01916f8c2efecad7534f682c6"
+checksum = "3119112651c157f4488931a01e586aa459736e9d6046d3bd9105ffb69352d374"
 dependencies = [
  "async-trait",
  "cfg-if",
@@ -1939,7 +1991,7 @@ dependencies = [
  "futures-channel",
  "futures-io",
  "futures-util",
- "idna",
+ "idna 0.4.0",
  "ipnet",
  "once_cell",
  "rand",
@@ -1953,9 +2005,9 @@ dependencies = [
 
 [[package]]
 name = "trust-dns-resolver"
-version = "0.23.1"
+version = "0.23.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c723b0e608b24ad04c73b2607e0241b2c98fd79795a95e98b068b6966138a29d"
+checksum = "10a3e6c3aff1718b3c73e395d1f35202ba2ffa847c6a62eea0db8fb4cfe30be6"
 dependencies = [
  "cfg-if",
  "futures-util",
@@ -1989,9 +2041,9 @@ dependencies = [
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.13"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-ident"
@@ -2022,12 +2074,12 @@ checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
 
 [[package]]
 name = "url"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
 dependencies = [
  "form_urlencoded",
- "idna",
+ "idna 0.5.0",
  "percent-encoding",
 ]
 
@@ -2057,9 +2109,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.87"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -2067,24 +2119,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.87"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.87"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -2092,22 +2144,22 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.87"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.87"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b"
 
 [[package]]
 name = "widestring"
@@ -2148,20 +2200,21 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "windows"
-version = "0.48.0"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
+checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
 dependencies = [
- "windows-targets 0.48.5",
+ "windows-core",
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
-name = "windows-sys"
-version = "0.45.0"
+name = "windows-core"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.42.2",
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
@@ -2174,18 +2227,12 @@ dependencies = [
 ]
 
 [[package]]
-name = "windows-targets"
-version = "0.42.2"
+name = "windows-sys"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "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",
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
@@ -2204,10 +2251,19 @@ dependencies = [
 ]
 
 [[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.42.2"
+name = "windows-targets"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+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"
@@ -2216,10 +2272,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
-name = "windows_aarch64_msvc"
-version = "0.42.2"
+name = "windows_aarch64_gnullvm"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -2228,10 +2284,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
-name = "windows_i686_gnu"
-version = "0.42.2"
+name = "windows_aarch64_msvc"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -2240,10 +2296,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
-name = "windows_i686_msvc"
-version = "0.42.2"
+name = "windows_i686_gnu"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -2252,10 +2308,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
-name = "windows_x86_64_gnu"
-version = "0.42.2"
+name = "windows_i686_msvc"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -2264,10 +2320,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.42.2"
+name = "windows_x86_64_gnu"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -2276,10 +2332,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
-name = "windows_x86_64_msvc"
-version = "0.42.2"
+name = "windows_x86_64_gnullvm"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -2288,6 +2344,12 @@ 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"
@@ -2307,6 +2369,26 @@ dependencies = [
 ]
 
 [[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.48",
+]
+
+[[package]]
 name = "zip"
 version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/pkgs/tools/networking/bandwhich/default.nix b/pkgs/tools/networking/bandwhich/default.nix
index c0fe0fbb8741..240fa3e86f8a 100644
--- a/pkgs/tools/networking/bandwhich/default.nix
+++ b/pkgs/tools/networking/bandwhich/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "bandwhich";
-  version = "0.21.1";
+  version = "0.22.2";
 
   src = fetchFromGitHub {
     owner = "imsnif";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-9+7ol2QSIXLkkRt/YlAobZHb3Tm+SmnjW/JufwimMTE=";
+    hash = "sha256-/uG1xjhxnIkS3rq7Tv1q1v8X7p1baDB8OiSEV9OLyfo=";
   };
 
   cargoLock = {
diff --git a/pkgs/tools/networking/curl/default.nix b/pkgs/tools/networking/curl/default.nix
index 01208f0a121c..d7d78cea11b7 100644
--- a/pkgs/tools/networking/curl/default.nix
+++ b/pkgs/tools/networking/curl/default.nix
@@ -15,6 +15,7 @@
   ), libkrb5
 , http2Support ? true, nghttp2
 , http3Support ? false, nghttp3, ngtcp2
+, websocketSupport ? false
 , idnSupport ? false, libidn2
 , ldapSupport ? false, openldap
 , opensslSupport ? zlibSupport, openssl
@@ -47,14 +48,14 @@ assert !((lib.count (x: x) [ gnutlsSupport opensslSupport wolfsslSupport rustlsS
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "curl";
-  version = "8.4.0";
+  version = "8.5.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-FsYqnErw9wPSi9pte783ukcFWtNBTXDexj4uYzbyqC0=";
+    hash = "sha256-QquNueINgpCjtjPn+7POwV2zTfZf0QFe+KweRyN1Dus=";
   };
 
   patches = [
@@ -111,6 +112,7 @@ stdenv.mkDerivation (finalAttrs: {
       (lib.enableFeature c-aresSupport "ares")
       (lib.enableFeature ldapSupport "ldap")
       (lib.enableFeature ldapSupport "ldaps")
+      (lib.enableFeature websocketSupport "websockets")
       # --with-ca-fallback is only supported for openssl and gnutls https://github.com/curl/curl/blame/curl-8_0_1/acinclude.m4#L1640
       (lib.withFeature (opensslSupport || gnutlsSupport) "ca-fallback")
       (lib.withFeature http3Support "nghttp3")
diff --git a/pkgs/tools/networking/dd-agent/datadog-agent.nix b/pkgs/tools/networking/dd-agent/datadog-agent.nix
index ce19268982ac..4116e28858ed 100644
--- a/pkgs/tools/networking/dd-agent/datadog-agent.nix
+++ b/pkgs/tools/networking/dd-agent/datadog-agent.nix
@@ -21,12 +21,12 @@ let
   owner   = "DataDog";
   repo    = "datadog-agent";
   goPackagePath = "github.com/${owner}/${repo}";
-  version = "7.50.1";
+  version = "7.50.3";
 
   src = fetchFromGitHub {
     inherit owner repo;
     rev = version;
-    hash = "sha256-03+ofnS8ecx2SRAWb0KX6TxRd0SDEOCd4+EBVgoMFZk=";
+    hash = "sha256-AN5BruLPyrpIGSUkcYkZC0VgItk9NHiZTXstv6j9TlY=";
   };
   rtloader = stdenv.mkDerivation {
     pname = "datadog-agent-rtloader";
@@ -43,7 +43,7 @@ in buildGoModule rec {
 
   doCheck = false;
 
-  vendorHash = "sha256-X+QLz45kWg12ls1dkGzThbNxPw7WEJ1odRYkuhOyhk8=";
+  vendorHash = "sha256-Rn8EB/6FHQk9COlOaxm4TQXjGCIPZHJV2QQnPDcbRnM=";
 
   subPackages = [
     "cmd/agent"
diff --git a/pkgs/tools/networking/ddns-go/default.nix b/pkgs/tools/networking/ddns-go/default.nix
index 3727f7d93ec6..0b4111a90e51 100644
--- a/pkgs/tools/networking/ddns-go/default.nix
+++ b/pkgs/tools/networking/ddns-go/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "ddns-go";
-  version = "5.7.1";
+  version = "6.0.3";
 
   src = fetchFromGitHub {
     owner = "jeessy2";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-PKshYKywqL706pVgruWQ9M0QbK2btKu28+wmnlFdDgE=";
+    hash = "sha256-hfL4heW2p1JdNEAQqsRMmvXSeBkw/zWfXk0YPXyqLXk=";
   };
 
-  vendorHash = "sha256-/kKFMo4PRWwXUuurNHMG36TV3EpcEikgf03/y/aKpXo=";
+  vendorHash = "sha256-UsMeYI/YogTbwyaJjVZbGMbxa434BDRBF+5VoSk6G9k=";
 
   ldflags = [
     "-X main.version=${version}"
diff --git a/pkgs/tools/networking/dnsperf/default.nix b/pkgs/tools/networking/dnsperf/default.nix
index 7c8913a7f430..5be21155feea 100644
--- a/pkgs/tools/networking/dnsperf/default.nix
+++ b/pkgs/tools/networking/dnsperf/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dnsperf";
-  version = "2.13.1";
+  version = "2.14.0";
 
   src = fetchFromGitHub {
     owner = "DNS-OARC";
     repo = "dnsperf";
     rev = "v${version}";
-    hash = "sha256-iNTuLcN9bsBPyXZ8SL96moFaI2pTcEhFey8+4xo9iyk=";
+    hash = "sha256-eDDVNFMjj+0wEBe1qO6r4Bai554Sp+EmP86reJ/VXGk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/networking/fast-ssh/default.nix b/pkgs/tools/networking/fast-ssh/default.nix
index 912cac758650..5d899fa54184 100644
--- a/pkgs/tools/networking/fast-ssh/default.nix
+++ b/pkgs/tools/networking/fast-ssh/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , rustPlatform
 , Security
 }:
@@ -18,6 +19,15 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "sha256-sIQNoH3UWX3SwCFCPZEREIFR7C28ml4oGsrq6wuOAT0=";
 
+  patches = [
+    # Can be removed as soon as this is is merged: https://github.com/Julien-R44/fast-ssh/pull/22
+    (fetchpatch {
+      name = "fix-ambiguous-as_ref.patch";
+      url = "https://github.com/Julien-R44/fast-ssh/commit/c082a64a4b412380b2ab145c24161fdaa26175db.patch";
+      hash = "sha256-egkoJF+rQiuClNL8ltzmB7oHngbpOxO29rlwZ3nELOE=";
+    })
+  ];
+
   buildInputs = lib.optional stdenv.isDarwin Security;
 
   meta = with lib; {
diff --git a/pkgs/tools/networking/globalping-cli/default.nix b/pkgs/tools/networking/globalping-cli/default.nix
index c88688bca71d..8c77a942d663 100644
--- a/pkgs/tools/networking/globalping-cli/default.nix
+++ b/pkgs/tools/networking/globalping-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "globalping-cli";
-  version = "1.1.5";
+  version = "1.1.6";
 
   src = fetchFromGitHub {
     owner = "jsdelivr";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-k89tqQpGvX0WiYqEwPj+tDViUKDjLR5MrkA0CQI/A+o=";
+    hash = "sha256-bPHS980iByWEBiqs4CEoI8SdlI4vaqGhyIRrXUUtVOo=";
   };
 
-  vendorHash = "sha256-fUB7WIEAPBot8A2f7WQ5wUDtCrOydZd4nd4qDuy1vzg=";
+  vendorHash = "sha256-PiSFDA6mZNDe6BhmKxAGuXsBZ+3aBFJ/gBwY/a6Z5gE=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/networking/gobgp/default.nix b/pkgs/tools/networking/gobgp/default.nix
index c928df2a4bc9..8304f15ba960 100644
--- a/pkgs/tools/networking/gobgp/default.nix
+++ b/pkgs/tools/networking/gobgp/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "gobgp";
-  version = "3.22.0";
+  version = "3.23.0";
 
   src = fetchFromGitHub {
     owner = "osrg";
     repo = "gobgp";
     rev = "v${version}";
-    sha256 = "sha256-ItzoknejTtVjm0FD+UdpCa+cL0i2uvcffTNIWCjBdVU=";
+    sha256 = "sha256-PUwYcwWgaV/DQl565fugppc+I/y7z7Ns3P4SspS88ts=";
   };
 
   vendorHash = "sha256-5eB3vFOo3LCsjMnWYFH0yq5+IunwKXp5C34x6NvpFZ8=";
diff --git a/pkgs/tools/networking/godns/default.nix b/pkgs/tools/networking/godns/default.nix
index ad6652a67081..d02e7527d149 100644
--- a/pkgs/tools/networking/godns/default.nix
+++ b/pkgs/tools/networking/godns/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "godns";
-  version = "3.0.5";
+  version = "3.0.6";
 
   src = fetchFromGitHub {
     owner = "TimothyYe";
     repo = "godns";
     rev = "refs/tags/v${version}";
-    hash = "sha256-pp4dWc9jqBOsriCL0giBJ9S8a6hXRXfLXMBZMX0hCo4=";
+    hash = "sha256-e4d0q4Sw0/Oq5AHw1ikRKakKSVdtf+hTbg7OX/RLT+o=";
   };
 
   vendorHash = "sha256-PVp09gWk35T0gQoYOPzaVFtrqua0a8cNjPOgfYyu7zg=";
diff --git a/pkgs/tools/networking/goflow2/default.nix b/pkgs/tools/networking/goflow2/default.nix
index b80172fdee99..9ec8c5105724 100644
--- a/pkgs/tools/networking/goflow2/default.nix
+++ b/pkgs/tools/networking/goflow2/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "goflow2";
-  version = "2.1.1";
+  version = "2.1.2";
 
   src = fetchFromGitHub {
     owner = "netsampler";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-RgHCUuP2EE38X6iMaYD2a8f/C2fBcBEHM5ErlKBkMqI=";
+    hash = "sha256-eI5Czx721aty1b+rs8uHrx0IBM/DK7bkPck1QIYPcNI=";
   };
 
   ldflags = [
diff --git a/pkgs/tools/networking/goimapnotify/default.nix b/pkgs/tools/networking/goimapnotify/default.nix
index 288bfd4f1a79..34de361d46b8 100644
--- a/pkgs/tools/networking/goimapnotify/default.nix
+++ b/pkgs/tools/networking/goimapnotify/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "goimapnotify";
-  version = "2.3.10";
+  version = "2.3.11";
 
   src = fetchFromGitLab {
     owner = "shackra";
     repo = "goimapnotify";
     rev = version;
-    sha256 = "sha256-RGEHKOmJqy9Cz5GWfck3VBZD6Q3DySoTYg0+Do4sy/4=";
+    sha256 = "sha256-b3w+SqmxRY/24qgFUSM4RQswObAH5jy3yEfGXY298Ko=";
   };
 
   vendorHash = "sha256-DphGe9jbKo1aIfpF5kRYNSn/uIYHaRMrygda5t46svw=";
@@ -24,7 +24,7 @@ buildGoModule rec {
       "Execute scripts on IMAP mailbox changes (new/deleted/updated messages) using IDLE";
     homepage = "https://gitlab.com/shackra/goimapnotify";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ wohanley ];
+    maintainers = with maintainers; [ wohanley rafaelrc ];
     mainProgram = "goimapnotify";
   };
 }
diff --git a/pkgs/tools/networking/goodhosts/default.nix b/pkgs/tools/networking/goodhosts/default.nix
index fe24c2c06fd3..2604d751d8e8 100644
--- a/pkgs/tools/networking/goodhosts/default.nix
+++ b/pkgs/tools/networking/goodhosts/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "goodhosts";
-  version = "1.1.1";
+  version = "1.1.2";
 
   src = fetchFromGitHub {
     owner = "goodhosts";
     repo = "cli";
     rev = "v${version}";
-    hash = "sha256-VXOMyYM4jS3gYxm3WiKw3uKeC535ppd9iHumPiupGbc=";
+    hash = "sha256-ZasS7AYGYPV+nzp9JbJC5pD0yQ+ik+QnuL+3qC1uqFk=";
   };
 
   ldflags = [
@@ -23,7 +23,7 @@ buildGoModule rec {
     mv $out/bin/cli $out/bin/goodhosts
   '';
 
-  vendorHash = "sha256-pL1z8cfnzcmX5iMVHQJGXYmzGuf8bp4Txbqoh5wSPWQ=";
+  vendorHash = "sha256-t/pdJWz6rLnBbH8iq9Nqy+E+DD2770UCEcowwStPdqM=";
 
   meta = with lib; {
     description = "A CLI tool for managing hostfiles";
diff --git a/pkgs/tools/networking/gost/default.nix b/pkgs/tools/networking/gost/default.nix
index f36ee2d3e206..6e7743fb990c 100644
--- a/pkgs/tools/networking/gost/default.nix
+++ b/pkgs/tools/networking/gost/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, buildGoModule }:
+{ stdenv, lib, fetchFromGitHub, buildGoModule, fetchpatch }:
 
 buildGoModule rec {
   pname = "gost";
@@ -11,7 +11,15 @@ buildGoModule rec {
     sha256 = "sha256-UBjrWeBw9+qKQ/+1T1W/3e0vrigp540URIyM2d9iCE8=";
   };
 
-  vendorHash = "sha256-lA4uW0cc0XqU9pjVEMapFLb3eD20Lea9PbkgL3sjJns=";
+  patches = [
+    # Add go1.20 support. Remove with the next release.
+    (fetchpatch {
+      url = "https://github.com/ginuerzh/gost/commit/0f7376bd10c913c7e6b1e7e02dd5fd7769975d78.patch";
+      hash = "sha256-pQNCvl7/huNrkM3+XHkGnvLYCzdjbMV6nef1KcMnKEw=";
+    })
+  ];
+
+  vendorHash = "sha256-wAdNfhSPj9JUcI6Gcja6nRy68bVhV8B4PARR0WS9rjQ=";
 
   postPatch = ''
     substituteInPlace http2_test.go \
@@ -41,8 +49,9 @@ buildGoModule rec {
       --replace '{url.UserPassword("AES-256-GCM", "123456"), url.UserPassword("AES-256-GCM", "123456"), true},' ""
   '';
 
+  __darwinAllowLocalNetworking = true;
+
   meta = with lib; {
-    broken = stdenv.isDarwin;
     description = "A simple tunnel written in golang";
     homepage = "https://github.com/ginuerzh/gost";
     license = licenses.mit;
diff --git a/pkgs/tools/networking/grpc_cli/default.nix b/pkgs/tools/networking/grpc_cli/default.nix
index 9ef1d801357f..844d315f5eb5 100644
--- a/pkgs/tools/networking/grpc_cli/default.nix
+++ b/pkgs/tools/networking/grpc_cli/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "grpc_cli";
-  version = "1.60.0";
+  version = "1.61.0";
   src = fetchFromGitHub {
     owner = "grpc";
     repo = "grpc";
     rev = "v${version}";
-    hash = "sha256-0mn+nQAgaurd1WomzcLUAYwp88l26qGkP+cP1SSYxsE=";
+    hash = "sha256-NLxcGFQ1F5RLoSFC0XYMjvGXkSWc/vLzgtk5qsOndEo=";
     fetchSubmodules = true;
   };
   nativeBuildInputs = [ automake cmake autoconf ];
diff --git a/pkgs/tools/networking/haproxy/default.nix b/pkgs/tools/networking/haproxy/default.nix
index e76317b7c43e..ce275eca6783 100644
--- a/pkgs/tools/networking/haproxy/default.nix
+++ b/pkgs/tools/networking/haproxy/default.nix
@@ -1,39 +1,44 @@
 { useLua ? true
 , usePcre ? true
-# QUIC "is currently supported as an experimental feature" so shouldn't be enabled by default
-, useQuicTls ? false
 , withPrometheusExporter ? true
+, sslLibrary ? "quictls"
 , stdenv
 , lib
 , fetchurl
 , nixosTests
 , zlib
 , libxcrypt
-, openssl ? null
-, quictls ? null
-, lua5_3 ? null
-, pcre ? null
-, systemd ? null
+, wolfssl
+, libressl
+, quictls
+, openssl
+, lua5_4
+, pcre2
+, systemd
 }:
 
-assert useLua -> lua5_3 != null;
-assert usePcre -> pcre != null;
-assert useQuicTls -> quictls != null;
-assert !useQuicTls -> openssl != null;
-
-let sslPkg = if useQuicTls then quictls else openssl;
+assert lib.assertOneOf "sslLibrary" sslLibrary [ "quictls" "openssl" "libressl" "wolfssl" ];
+let
+  sslPkgs = {
+    inherit quictls openssl libressl;
+    wolfssl = wolfssl.override {
+      variant = "haproxy";
+      extraConfigureFlags = [ "--enable-quic" ];
+    };
+  };
+  sslPkg = sslPkgs.${sslLibrary};
 in stdenv.mkDerivation (finalAttrs: {
   pname = "haproxy";
-  version = "2.9.2";
+  version = "2.9.4";
 
   src = fetchurl {
     url = "https://www.haproxy.org/download/${lib.versions.majorMinor finalAttrs.version}/src/haproxy-${finalAttrs.version}.tar.gz";
-    hash = "sha256-hRrugw7CjBeRJGqf1EePZD0RWlY92Qf2YSzDgalSqzw=";
+    hash = "sha256-nDiSzDwISsTwASXvIqFRzxgUFthKqKN69q9qoDmQlrw=";
   };
 
   buildInputs = [ sslPkg zlib libxcrypt ]
-    ++ lib.optional useLua lua5_3
-    ++ lib.optional usePcre pcre
+    ++ lib.optional useLua lua5_4
+    ++ lib.optional usePcre pcre2
     ++ lib.optional stdenv.isLinux systemd;
 
   # TODO: make it work on bsd as well
@@ -46,20 +51,23 @@ in stdenv.mkDerivation (finalAttrs: {
   ];
 
   buildFlags = [
-    "USE_OPENSSL=yes"
-    "SSL_LIB=${sslPkg}/lib"
-    "SSL_INC=${sslPkg}/include"
     "USE_ZLIB=yes"
-  ] ++ lib.optionals useQuicTls [
-    "USE_QUIC=1"
+    "USE_OPENSSL=yes"
+    "SSL_INC=${lib.getDev sslPkg}/include"
+    "SSL_LIB=${lib.getDev sslPkg}/lib"
+    "USE_QUIC=yes"
+  ] ++ lib.optionals (sslLibrary == "openssl") [
+    "USE_QUIC_OPENSSL_COMPAT=yes"
+  ] ++ lib.optionals (sslLibrary == "wolfssl") [
+    "USE_OPENSSL_WOLFSSL=yes"
   ] ++ lib.optionals usePcre [
-    "USE_PCRE=yes"
-    "USE_PCRE_JIT=yes"
+    "USE_PCRE2=yes"
+    "USE_PCRE2_JIT=yes"
   ] ++ lib.optionals useLua [
     "USE_LUA=yes"
     "LUA_LIB_NAME=lua"
-    "LUA_LIB=${lua5_3}/lib"
-    "LUA_INC=${lua5_3}/include"
+    "LUA_LIB=${lua5_4}/lib"
+    "LUA_INC=${lua5_4}/include"
   ] ++ lib.optionals stdenv.isLinux [
     "USE_SYSTEMD=yes"
     "USE_GETADDRINFO=1"
@@ -84,7 +92,7 @@ in stdenv.mkDerivation (finalAttrs: {
       tens of thousands of connections is clearly realistic with todays
       hardware.
     '';
-    maintainers = with lib.maintainers; [ ];
+    maintainers = with lib.maintainers; [ vifino ];
     platforms = with lib.platforms; linux ++ darwin;
     mainProgram = "haproxy";
   };
diff --git a/pkgs/tools/networking/hblock/default.nix b/pkgs/tools/networking/hblock/default.nix
index 8d7f25678edf..19e7dde77c85 100644
--- a/pkgs/tools/networking/hblock/default.nix
+++ b/pkgs/tools/networking/hblock/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hblock";
-  version = "3.4.2";
+  version = "3.4.4";
 
   src = fetchFromGitHub {
     owner = "hectorm";
     repo = "hblock";
     rev = "v${version}";
-    hash = "sha256-wO0xfD1bMRhoU7jorsIenlKJ87DzrtVH66OSZ4UT3MM=";
+    hash = "sha256-cYLpK5zUOzgbcBVrJT/N6Y9kMpg6KD1EthrstoF4sF8=";
   };
 
   buildInputs = [ coreutils curl gnugrep gawk ];
diff --git a/pkgs/tools/networking/hurl/default.nix b/pkgs/tools/networking/hurl/default.nix
index 37f36e5dd43f..669814c5fb39 100644
--- a/pkgs/tools/networking/hurl/default.nix
+++ b/pkgs/tools/networking/hurl/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "hurl";
-  version = "4.1.0";
+  version = "4.2.0";
 
   src = fetchFromGitHub {
     owner = "Orange-OpenSource";
     repo = pname;
     rev = version;
-    hash = "sha256-JsgAdLjDQQkLyLFoZCVG2jZ8vQDaGUPtPmHYAcwADQg";
+    hash = "sha256-77RGS4B5Jwb/J5eOG2A7sdfAU7PnRaxqz5nogpOnj70=";
   };
 
-  cargoHash = "sha256-IE9c57rj8EANyj4KmbyagafJyMovzHOhp0PFCQBzqdA=";
+  cargoHash = "sha256-3D8jyHFrhb3y4yeYtO1GqSyb5wlqUydf/4clsbLjJVE=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/tools/networking/hysteria/default.nix b/pkgs/tools/networking/hysteria/default.nix
index 017851c35237..649a5b074a78 100644
--- a/pkgs/tools/networking/hysteria/default.nix
+++ b/pkgs/tools/networking/hysteria/default.nix
@@ -4,16 +4,16 @@
 }:
 buildGoModule rec {
   pname = "hysteria";
-  version = "2.2.3";
+  version = "2.2.4";
 
   src = fetchFromGitHub {
     owner = "apernet";
     repo = pname;
     rev = "app/v${version}";
-    hash = "sha256-xvnshGDQ69yXZ5BnEYAhoJOXG0uZ0lZRnp/rdnmNAkE=";
+    hash = "sha256-A8UTnvH5BYRETsjte65+M+HHO6MrqCiPthNEYwBkBYs=";
   };
 
-  vendorHash = "sha256-zjj5MhCVQbsLwZs7LcGhozXGmfzFrDipNsEswiseMYI=";
+  vendorHash = "sha256-uh/qYQBWsyazSbJIz1ykf5bap18fGSIfjVDL8zus2l0=";
   proxyVendor = true;
 
   ldflags =
diff --git a/pkgs/tools/networking/i2pd/default.nix b/pkgs/tools/networking/i2pd/default.nix
index 941297340439..ffcf397ea1a1 100644
--- a/pkgs/tools/networking/i2pd/default.nix
+++ b/pkgs/tools/networking/i2pd/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "i2pd";
-  version = "2.50.1";
+  version = "2.50.2";
 
   src = fetchFromGitHub {
     owner = "PurpleI2P";
     repo = pname;
     rev = version;
-    sha256 = "sha256-LFr6vqhGu830xHLSp7kHud4gNWhDDYXfJ3PB01JmHjQ=";
+    sha256 = "sha256-6BzY7t+bFYYwKnj+uuX+vWHg0w0BOuMGwgMg1yIF578=";
   };
 
   buildInputs = [ boost zlib openssl ]
diff --git a/pkgs/tools/networking/inetutils/default.nix b/pkgs/tools/networking/inetutils/default.nix
index 9b1723a4d122..cbd327b07297 100644
--- a/pkgs/tools/networking/inetutils/default.nix
+++ b/pkgs/tools/networking/inetutils/default.nix
@@ -1,21 +1,21 @@
 { stdenv
 , lib
 , fetchurl
-, fetchpatch
 , ncurses
 , perl
 , help2man
 , apparmorRulesFromClosure
 , libxcrypt
+, util-linux
 }:
 
 stdenv.mkDerivation rec {
   pname = "inetutils";
-  version = "2.4";
+  version = "2.5";
 
   src = fetchurl {
     url = "mirror://gnu/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-F4nWsbGlff4qere1M+6fXf2cv1tZuxuzwmEu0I0PaLI=";
+    hash = "sha256-h2l9YKMeELXLhqnwZR4ex77pgyDQSMBzlDGqw9V2T7Y=";
   };
 
   outputs = ["out" "apparmor"];
@@ -23,11 +23,6 @@ stdenv.mkDerivation rec {
   patches = [
     # https://git.congatec.com/yocto/meta-openembedded/commit/3402bfac6b595c622e4590a8ff5eaaa854e2a2a3
     ./inetutils-1_9-PATH_PROCNET_DEV.patch
-    (fetchpatch {
-      name = "CVE-2023-40303.patch";
-      url = "https://git.savannah.gnu.org/cgit/inetutils.git/patch/?id=e4e65c03f4c11292a3e40ef72ca3f194c8bffdd6";
-      hash = "sha256-I5skN537owfpFpAZr4vDKPHuERI6+oq5/hFW2RQeUxI=";
-    })
   ];
 
   strictDeps = true;
@@ -93,5 +88,15 @@ stdenv.mkDerivation rec {
 
     maintainers = with maintainers; [ matthewbauer ];
     platforms = platforms.unix;
+
+    /**
+      The `logger` binary from `util-linux` is preferred over `inetutils`.
+      To instead prioritize this package, set a _lower_ `meta.priority`, or
+      use e.g. `lib.setPrio 5 inetutils`.
+
+      Note that the default `meta.priority` is defined in `buildEnv` and is
+      currently 5.
+    */
+    priority = (util-linux.meta.priority or 5) + 1;
   };
 }
diff --git a/pkgs/tools/networking/innernet/default.nix b/pkgs/tools/networking/innernet/default.nix
index 373bfd370994..f4523e0ec201 100644
--- a/pkgs/tools/networking/innernet/default.nix
+++ b/pkgs/tools/networking/innernet/default.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "innernet";
-  version = "1.6.0";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "tonarino";
     repo = "innernet";
     rev = "refs/tags/v${version}";
-    hash = "sha256-eAiYXE8kSfuhBgrIo6rbtE2YH9JcLJwA/vXA5IWNYG8=";
+    hash = "sha256-dFMAzLvPO5xAfJqUXdiLf13uh5H5ay+CI9aop7Fhprk=";
   };
 
-  cargoHash = "sha256-F+VvVF+5I53IF4Vur0SkUQXoqo8EE3XWirm88gu/GI4=";
+  cargoHash = "sha256-39LryfisVtNMX2XLPh/AEQ1KzVtwdE3wuTaTbxGMaBI=";
 
   nativeBuildInputs = [
     rustPlatform.bindgenHook
diff --git a/pkgs/tools/networking/juicity/default.nix b/pkgs/tools/networking/juicity/default.nix
index 286192a2a31d..8b655e7eb3de 100644
--- a/pkgs/tools/networking/juicity/default.nix
+++ b/pkgs/tools/networking/juicity/default.nix
@@ -1,19 +1,19 @@
 { lib
 , fetchFromGitHub
-, buildGo121Module
+, buildGoModule
 }:
-buildGo121Module rec {
+buildGoModule rec {
   pname = "juicity";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "juicity";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-UKEmPb5Kn2GlTriXFOavQ5o8bU9VqMzQZx4iyG5W7a0=";
+    hash = "sha256-SUZ5E2GRLyUI/Z5ekJPNypVJXfJFzIz3qr9kCeXN7Gk=";
   };
 
-  vendorHash = "sha256-KLyGgkZqkM8jn+Sqa4IjauvfL9QXp9W/eUcViDTGDtw=";
+  vendorHash = "sha256-Gj4uM9EL6QjlrCFGq3u1+TkIxzIU2mthFRK00pOAaJg=";
 
   proxyVendor = true;
 
diff --git a/pkgs/tools/networking/kail/default.nix b/pkgs/tools/networking/kail/default.nix
index 0d343391f88d..55217ee33c3a 100644
--- a/pkgs/tools/networking/kail/default.nix
+++ b/pkgs/tools/networking/kail/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "kail";
-  version = "0.17.3";
+  version = "0.17.4";
 
   ldflags = [
     "-s"
@@ -14,10 +14,10 @@ buildGoModule rec {
     owner = "boz";
     repo = "kail";
     rev = "v${version}";
-    sha256 = "sha256-2wdPUlZLN2SOviM/zp0iLH/+WE+QZg0IAGj0l4jz/vE=";
+    sha256 = "sha256-G8U7UEYhgkcFbKeHOjbpf9AY6NW0hBgv6aARuzapE3M=";
   };
 
-  vendorHash = "sha256-GOrw/5nDMTg2FKkzii7FkyzCxfBurnnQbfBF4nfSaJI=";
+  vendorHash = "sha256-u6/LsLphaqYswJkAuqgrgknnm+7MnaeH+kf9BPcdtrc=";
 
   meta = with lib; {
     description = "Kubernetes log viewer";
diff --git a/pkgs/tools/networking/kapp/default.nix b/pkgs/tools/networking/kapp/default.nix
index ad430b9163e6..c068c4ac1f42 100644
--- a/pkgs/tools/networking/kapp/default.nix
+++ b/pkgs/tools/networking/kapp/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kapp";
-  version = "0.59.2";
+  version = "0.60.0";
 
   src = fetchFromGitHub {
     owner = "carvel-dev";
     repo = "kapp";
     rev = "v${version}";
-    sha256 = "sha256-fDGQQo5REKtBlyBDZ4FTLGeayc14cppMmfLsXZtUJpA=";
+    sha256 = "sha256-o1MFbyjgOvhgcrlkbYGn0+nHENL2STFiD9CUkCdB56E=";
   };
 
   vendorHash = null;
diff --git a/pkgs/tools/networking/keepalived/default.nix b/pkgs/tools/networking/keepalived/default.nix
index 0b2371192d38..02424d92de57 100644
--- a/pkgs/tools/networking/keepalived/default.nix
+++ b/pkgs/tools/networking/keepalived/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     description = "Routing software written in C";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
+    maintainers = [ maintainers.raitobezarius ];
   };
 }
diff --git a/pkgs/tools/networking/libreswan/default.nix b/pkgs/tools/networking/libreswan/default.nix
index 368189abe15d..49e4df298bc7 100644
--- a/pkgs/tools/networking/libreswan/default.nix
+++ b/pkgs/tools/networking/libreswan/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchurl
+, fetchpatch
 , nixosTests
 , pkg-config
 , systemd
@@ -114,6 +115,14 @@ stdenv.mkDerivation rec {
         -i configs/Makefile
   '';
 
+  patches = [
+    (fetchpatch {
+      name = "ignoring-return-value.patch";
+      url = "https://github.com/libreswan/libreswan/commit/ba5bad09f55959872022fa506d5ac06eafe3a314.diff";
+      hash = "sha256-xJ8rZWoRtJixamGY8sjOS+63Lw3RX7620HlRWYfvSxc=";
+    })
+  ];
+
   makeFlags = [
     "PREFIX=$(out)"
     "INITSYSTEM=systemd"
diff --git a/pkgs/tools/networking/linux-router/default.nix b/pkgs/tools/networking/linux-router/default.nix
index 65a0531616e0..997546403fd3 100644
--- a/pkgs/tools/networking/linux-router/default.nix
+++ b/pkgs/tools/networking/linux-router/default.nix
@@ -40,13 +40,13 @@
 
 stdenv.mkDerivation rec {
   pname = "linux-router";
-  version = "0.7.1";
+  version = "0.7.3";
 
   src = fetchFromGitHub {
     owner = "garywill";
     repo = "linux-router";
     rev = "refs/tags/${version}";
-    hash = "sha256-S7oxtd5DMFaChUhemcCOfoD1E0DbZ68r+1eVMq4vqZc=";
+    hash = "sha256-iIHi434S7+Q9S1EU7Bpa7iYB7MJDTuyMdB/bbTrbl5Q=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/networking/lldpd/default.nix b/pkgs/tools/networking/lldpd/default.nix
index d480b3e01c72..d9f9ae45ad13 100644
--- a/pkgs/tools/networking/lldpd/default.nix
+++ b/pkgs/tools/networking/lldpd/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "lldpd";
-  version = "1.0.17";
+  version = "1.0.18";
 
   src = fetchurl {
     url = "https://media.luffy.cx/files/lldpd/${pname}-${version}.tar.gz";
-    sha256 = "sha256-k0MXfxRdK8pm7wPVlSgHnT8WY8YkseK50IJo79xhJ84=";
+    hash = "sha256-SzIGddYIkBpKDU/v+PlruEbUkT2RSwz3W30K6ASQ8vc=";
   };
 
   configureFlags = [
diff --git a/pkgs/tools/networking/minio-client/default.nix b/pkgs/tools/networking/minio-client/default.nix
index b3cfc792bc39..34fb4dc3f313 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-01-05T05-04-32Z";
+  version = "2024-01-31T08-59-40Z";
 
   src = fetchFromGitHub {
     owner = "minio";
     repo = "mc";
     rev = "RELEASE.${version}";
-    sha256 = "sha256-1A5Nzlf9xBcOcPdKXZut+4ViUvsDa2uFtfN/nIRoUf8=";
+    sha256 = "sha256-SD/CtYQFWy7VFo2jT53LDQfH7fw14OOKAbImNeG/amE=";
   };
 
-  vendorHash = "sha256-rqlPUU9phbsw9cjGvU86DjA3cWhcoxX3kxQ1buLM+hg=";
+  vendorHash = "sha256-wxFhj+oqj5WV/UkPZlmeJHF2WC4oLlZOql1qgSFs+zU=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/tools/networking/miniupnpd/default.nix b/pkgs/tools/networking/miniupnpd/default.nix
index 74c5bdc2ec6e..dabf5194f881 100644
--- a/pkgs/tools/networking/miniupnpd/default.nix
+++ b/pkgs/tools/networking/miniupnpd/default.nix
@@ -28,11 +28,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "miniupnpd";
-  version = "2.3.3";
+  version = "2.3.4";
 
   src = fetchurl {
     url = "https://miniupnp.tuxfamily.org/files/miniupnpd-${version}.tar.gz";
-    sha256 = "sha256-b9cBn5Nv+IxB58gi9G8QtRvXLWZZePZYZIPedbMMNr8=";
+    sha256 = "sha256-5zAzSPyKxCfefwTw7rdX1J3Mg2cxHuJYJVLDj11toIo=";
   };
 
   buildInputs = [ iptables-legacy libuuid openssl ]
diff --git a/pkgs/tools/networking/mockoon/default.nix b/pkgs/tools/networking/mockoon/default.nix
index 2fbcffe5b09b..f100239a61dd 100644
--- a/pkgs/tools/networking/mockoon/default.nix
+++ b/pkgs/tools/networking/mockoon/default.nix
@@ -5,11 +5,11 @@
 
 let
   pname = "mockoon";
-  version = "6.0.1";
+  version = "6.1.0";
 
   src = fetchurl {
     url = "https://github.com/mockoon/mockoon/releases/download/v${version}/mockoon-${version}.AppImage";
-    hash = "sha256-aV+jM/XxXbjkStSZE4x8qtrtYX/yKbye4WjO9PiaNQ4=";
+    hash = "sha256-harZU3TTIzfJoY/jAQI0dm7YSOr24Y9xk9L5ZaBLdD8=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/tools/networking/modemmanager/default.nix b/pkgs/tools/networking/modemmanager/default.nix
index d66c277f1dac..dd36f4b7465a 100644
--- a/pkgs/tools/networking/modemmanager/default.nix
+++ b/pkgs/tools/networking/modemmanager/default.nix
@@ -23,14 +23,14 @@
 
 stdenv.mkDerivation rec {
   pname = "modemmanager";
-  version = "1.20.6";
+  version = "1.22.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "mobile-broadband";
     repo = "ModemManager";
     rev = version;
-    hash = "sha256-/A4WTsUQVeZDi5ei6qBvqoWYLKdRcZaYZU8/qWOPrvM=";
+    hash = "sha256-/D9b2rCCUhpDCUfSNAWR65+3EyUywzFdH1R17eSKRDo=";
   };
 
   patches = [
diff --git a/pkgs/tools/networking/mubeng/default.nix b/pkgs/tools/networking/mubeng/default.nix
index 812d3bb5068d..8e50188ec814 100644
--- a/pkgs/tools/networking/mubeng/default.nix
+++ b/pkgs/tools/networking/mubeng/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "mubeng";
-  version = "0.14.1";
+  version = "0.14.2";
 
   src = fetchFromGitHub {
     owner = "kitabisa";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-AxgvZdsJX16sZi4g8LnfceKuw/wBwvj6uoF/5zKldBk=";
+    hash = "sha256-MdTgYhHjgDFplh+wcb9QTwzwMZSmF2kqMmu1x8WmOyQ=";
   };
 
   vendorHash = "sha256-kOLeaEKtpI3l0qLphRTnm27Ms63ID4LJ6VkUHJzGAcc=";
diff --git a/pkgs/tools/networking/nbd/default.nix b/pkgs/tools/networking/nbd/default.nix
index c7cb5632dfe4..ebef277feb21 100644
--- a/pkgs/tools/networking/nbd/default.nix
+++ b/pkgs/tools/networking/nbd/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchurl
+, fetchpatch
 , pkg-config
 , glib
 , which
@@ -20,6 +21,15 @@ stdenv.mkDerivation rec {
     hash = "sha256-9cj9D8tXsckmWU0OV/NWQy7ghni+8dQNCI8IMPDL3Qo=";
   };
 
+  patches = [
+    # fix port setting from nbdtab
+    # https://github.com/NetworkBlockDevice/nbd/pull/154
+    (fetchpatch {
+      url = "https://github.com/NetworkBlockDevice/nbd/commit/915444bc0b8a931d32dfb755542f4bd1d37f1449.patch";
+      hash = "sha256-6z+c2cXhY92WPDqRO6AJ5BBf1N38yTgOE1foduIr5Dg=";
+    })
+  ];
+
   nativeBuildInputs = [
     pkg-config
     which
@@ -38,6 +48,9 @@ stdenv.mkDerivation rec {
     "--sysconfdir=/etc"
   ];
 
+  # ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
+  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=implicit-function-declaration";
+
   doCheck = !stdenv.isDarwin;
 
   passthru.tests = {
diff --git a/pkgs/tools/networking/netbird/default.nix b/pkgs/tools/networking/netbird/default.nix
index 5b5eaee20dc7..b4f37a7d3be4 100644
--- a/pkgs/tools/networking/netbird/default.nix
+++ b/pkgs/tools/networking/netbird/default.nix
@@ -31,16 +31,16 @@ let
 in
 buildGoModule rec {
   pname = "netbird";
-  version = "0.25.2";
+  version = "0.25.5";
 
   src = fetchFromGitHub {
     owner = "netbirdio";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-308t/yaFFabFC9nr1eN/SMF+uBBnpGaaWiWD0wm/dtI=";
+    hash = "sha256-b+zwDKuB6RRWCZTIjFIW9KA9N7KJhX7gdFJvDk0RtGc=";
   };
 
-  vendorHash = "sha256-3jjCAsqbD5HUM8972jGBxCiewSLh2aIRE68rpV03KqQ=";
+  vendorHash = "sha256-vdGF7mIpE1PgCRsRCWE7cziKp9ZaIcxYUU6FREsFb70=";
 
   nativeBuildInputs = [ installShellFiles ] ++ lib.optional ui pkg-config;
 
@@ -111,5 +111,6 @@ buildGoModule rec {
     description = "Connect your devices into a single secure private WireGuard®-based mesh network with SSO/MFA and simple access controls";
     license = licenses.bsd3;
     maintainers = with maintainers; [ misuzu ];
+    mainProgram = "netbird";
   };
 }
diff --git a/pkgs/tools/networking/networkd-dispatcher/default.nix b/pkgs/tools/networking/networkd-dispatcher/default.nix
index 161772ed4819..8f9cece27169 100644
--- a/pkgs/tools/networking/networkd-dispatcher/default.nix
+++ b/pkgs/tools/networking/networkd-dispatcher/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitLab
+, fetchpatch
 , python3Packages
 , asciidoc
 , makeWrapper
@@ -23,6 +24,12 @@ stdenv.mkDerivation rec {
     # Support rule files in NixOS store paths. Required for the networkd-dispatcher
     # module to work
     ./support_nix_store_path.patch
+
+    # Fixes: networkd-dispatcher.service: Got notification message from PID XXXX, but reception only permitted for main PID XXXX
+    (fetchpatch {
+      url = "https://gitlab.com/craftyguy/networkd-dispatcher/-/commit/4796368d88da516fafda321d8565ae8ccf465120.patch";
+      hash = "sha256-RAoCSmZCjTXxVKesatWjiePY4xECGn5pwvOOV0clL+Q=";
+    })
   ];
 
   postPatch = ''
diff --git a/pkgs/tools/networking/networkmanager/applet/default.nix b/pkgs/tools/networking/networkmanager/applet/default.nix
index 20f5d52ff688..908cb8757e36 100644
--- a/pkgs/tools/networking/networkmanager/applet/default.nix
+++ b/pkgs/tools/networking/networkmanager/applet/default.nix
@@ -24,11 +24,11 @@
 
 stdenv.mkDerivation rec {
   pname = "network-manager-applet";
-  version = "1.34.0";
+  version = "1.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-qzaORw9rFh/IuDS8l5ErfnmvkrjNfqOZwtQAzomrpag=";
+    sha256 = "sha256-qEcESH6jr+FIXEf7KrWYuPd59UCuDcvwocX4XmSn4lM=";
   };
 
   mesonFlags = [
diff --git a/pkgs/tools/networking/ofono/default.nix b/pkgs/tools/networking/ofono/default.nix
index f4631f06dc79..33cb492b2149 100644
--- a/pkgs/tools/networking/ofono/default.nix
+++ b/pkgs/tools/networking/ofono/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ofono";
-  version = "2.2";
+  version = "2.3";
 
   outputs = [ "out" "dev" ];
 
   src = fetchzip {
     url = "https://git.kernel.org/pub/scm/network/ofono/ofono.git/snapshot/ofono-${version}.tar.gz";
-    sha256 = "sha256-mnh0qzmgPDfimN/M33HntYj90Xcgc/uF8tKbzeQV1Yg=";
+    sha256 = "sha256-rX3ngXoW7YISyytpRPLX/lGmQa5LPtFxeA2XdtU1gV0=";
   };
 
   patches = [
diff --git a/pkgs/tools/networking/oha/default.nix b/pkgs/tools/networking/oha/default.nix
index b002e5368495..7ac3a0ff98de 100644
--- a/pkgs/tools/networking/oha/default.nix
+++ b/pkgs/tools/networking/oha/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "oha";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "hatoo";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-s98FPzX6RfLCyttNpE/zC4gb30tLPW+MYCuuxn1ep3c=";
+    hash = "sha256-XTdzUAdsdg/ZNZEPoeCpjSeqig8wT7uKx5dYHHeZOlY=";
   };
 
-  cargoHash = "sha256-zyfCa5hMS8aWABg3gb2Pa/TvNsVXBJKIOiAQ96CLiBo=";
+  cargoHash = "sha256-6lDTd9cd7bM+CI28vJt4m4WcUfRQPp8Yo7mGqF00xfk=";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [
     pkg-config
diff --git a/pkgs/tools/networking/openapi-generator-cli/default.nix b/pkgs/tools/networking/openapi-generator-cli/default.nix
index 2edba9a26eb6..e9572bf45960 100644
--- a/pkgs/tools/networking/openapi-generator-cli/default.nix
+++ b/pkgs/tools/networking/openapi-generator-cli/default.nix
@@ -1,17 +1,17 @@
 { callPackage, lib, stdenv, fetchurl, jre, makeWrapper }:
 
-let this = stdenv.mkDerivation rec {
+let this = stdenv.mkDerivation (finalAttrs: {
   version = "7.2.0";
   pname = "openapi-generator-cli";
 
-  jarfilename = "${pname}-${version}.jar";
+  jarfilename = "${finalAttrs.pname}-${finalAttrs.version}.jar";
 
   nativeBuildInputs = [
     makeWrapper
   ];
 
   src = fetchurl {
-    url = "mirror://maven/org/openapitools/${pname}/${version}/${jarfilename}";
+    url = "mirror://maven/org/openapitools/${finalAttrs.pname}/${finalAttrs.version}/${finalAttrs.jarfilename}";
     sha256 = "sha256-HPDIDeEsD9yFlCicGeQUtAIQjvELjdC/2hlTFRNBq10=";
   };
 
@@ -20,10 +20,10 @@ let this = stdenv.mkDerivation rec {
   installPhase = ''
     runHook preInstall
 
-    install -D "$src" "$out/share/java/${jarfilename}"
+    install -D "$src" "$out/share/java/${finalAttrs.jarfilename}"
 
-    makeWrapper ${jre}/bin/java $out/bin/${pname} \
-      --add-flags "-jar $out/share/java/${jarfilename}"
+    makeWrapper ${jre}/bin/java $out/bin/${finalAttrs.pname} \
+      --add-flags "-jar $out/share/java/${finalAttrs.jarfilename}"
 
     runHook postInstall
   '';
@@ -31,14 +31,15 @@ let this = stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Allows generation of API client libraries (SDK generation), server stubs and documentation automatically given an OpenAPI Spec";
     homepage = "https://github.com/OpenAPITools/openapi-generator";
-    changelog = "https://github.com/OpenAPITools/openapi-generator/releases/tag/v${version}";
+    changelog = "https://github.com/OpenAPITools/openapi-generator/releases/tag/v${finalAttrs.version}";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.asl20;
     maintainers = with maintainers; [ shou ];
+    mainProgram = "openapi-generator-cli";
   };
 
   passthru.tests.example = callPackage ./example.nix {
     openapi-generator-cli = this;
   };
-};
+});
 in this
diff --git a/pkgs/tools/networking/openvpn/default.nix b/pkgs/tools/networking/openvpn/default.nix
index 1a83209aefd4..46fa0be29c70 100644
--- a/pkgs/tools/networking/openvpn/default.nix
+++ b/pkgs/tools/networking/openvpn/default.nix
@@ -2,7 +2,6 @@
 , stdenv
 , fetchurl
 , pkg-config
-, iproute2
 , libcap_ng
 , libnl
 , lz4
@@ -18,73 +17,51 @@
 }:
 
 let
-  inherit (lib) versionOlder optional optionals optionalString;
-
-  generic = { version, sha256, extraBuildInputs ? [ ] }:
-    let
-      withIpRoute = stdenv.isLinux && (versionOlder version "2.5.4");
-    in
-    stdenv.mkDerivation
-      rec {
-        pname = "openvpn";
-        inherit version;
+  inherit (lib) optional optionals optionalString;
+in
+stdenv.mkDerivation (finalAttrs: {
+  pname = "openvpn";
+  version = "2.6.8";
 
-        src = fetchurl {
-          url = "https://swupdate.openvpn.net/community/releases/${pname}-${version}.tar.gz";
-          inherit sha256;
-        };
+  src = fetchurl {
+    url = "https://swupdate.openvpn.net/community/releases/openvpn-${finalAttrs.version}.tar.gz";
+    hash = "sha256-Xt4VZcim2IAQD38jUxen7p7qg9UFLbVUfxOp52r3gF0=";
+  };
 
-        nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config ];
 
-        buildInputs = [ lz4 lzo ]
-          ++ optionals stdenv.isLinux [ libcap_ng libnl pam ]
-          ++ optional withIpRoute iproute2
-          ++ optional useSystemd systemd
-          ++ optional pkcs11Support pkcs11helper
-          ++ extraBuildInputs;
+  buildInputs = [ lz4 lzo openssl ]
+    ++ optionals stdenv.isLinux [ libcap_ng libnl pam ]
+    ++ optional useSystemd systemd
+    ++ optional pkcs11Support pkcs11helper;
 
-        configureFlags = optionals withIpRoute [
-          "--enable-iproute2"
-          "IPROUTE=${iproute2}/sbin/ip"
-        ]
-        ++ optional useSystemd "--enable-systemd"
-        ++ optional pkcs11Support "--enable-pkcs11"
-        ++ optional stdenv.isDarwin "--disable-plugin-auth-pam";
+  configureFlags = optional useSystemd "--enable-systemd"
+    ++ optional pkcs11Support "--enable-pkcs11"
+    ++ optional stdenv.isDarwin "--disable-plugin-auth-pam";
 
-        # We used to vendor the update-systemd-resolved script inside libexec,
-        # but a separate package was made, that uses libexec/openvpn. Copy it
-        # into libexec in case any consumers expect it to be there even though
-        # they should use the update-systemd-resolved package instead.
-        postInstall = ''
-          mkdir -p $out/share/doc/openvpn/examples
-          cp -r sample/sample-{config-files,keys,scripts}/ $out/share/doc/openvpn/examples
-        '' + optionalString useSystemd ''
-          install -Dm555 -t $out/libexec ${update-systemd-resolved}/libexec/openvpn/*
-        '';
+  # We used to vendor the update-systemd-resolved script inside libexec,
+  # but a separate package was made, that uses libexec/openvpn. Copy it
+  # into libexec in case any consumers expect it to be there even though
+  # they should use the update-systemd-resolved package instead.
+  postInstall = ''
+    mkdir -p $out/share/doc/openvpn/examples
+    cp -r sample/sample-{config-files,keys,scripts}/ $out/share/doc/openvpn/examples
+  '' + optionalString useSystemd ''
+    install -Dm555 -t $out/libexec ${update-systemd-resolved}/libexec/openvpn/*
+  '';
 
-        enableParallelBuilding = true;
+  enableParallelBuilding = true;
 
-        meta = with lib; {
-          description = "A robust and highly flexible tunneling application";
-          mainProgram = "openvpn";
-          downloadPage = "https://openvpn.net/community-downloads/";
-          homepage = "https://openvpn.net/";
-          license = licenses.gpl2Only;
-          maintainers = with maintainers; [ viric peterhoeg ];
-          platforms = platforms.unix;
-        };
-      };
+  passthru.tests = {
+    inherit (nixosTests) initrd-network-openvpn systemd-initrd-networkd-openvpn;
+  };
 
-in
-{
-  openvpn = (generic {
-    version = "2.6.8";
-    sha256 = "sha256-Xt4VZcim2IAQD38jUxen7p7qg9UFLbVUfxOp52r3gF0=";
-    extraBuildInputs = [ openssl ];
-  }).overrideAttrs
-    (_: {
-      passthru.tests = {
-        inherit (nixosTests) initrd-network-openvpn systemd-initrd-networkd-openvpn;
-      };
-    });
-}
+  meta = with lib; {
+    description = "A robust and highly flexible tunneling application";
+    downloadPage = "https://openvpn.net/community-downloads/";
+    homepage = "https://openvpn.net/";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ viric peterhoeg ];
+    platforms = platforms.unix;
+  };
+})
diff --git a/pkgs/tools/networking/pacparser/default.nix b/pkgs/tools/networking/pacparser/default.nix
index 89fca0a220ba..d4b81928498c 100644
--- a/pkgs/tools/networking/pacparser/default.nix
+++ b/pkgs/tools/networking/pacparser/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pacparser";
-  version = "1.4.2";
+  version = "1.4.3";
 
   src = fetchFromGitHub {
     owner = "manugarg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-p83aAcZ3fGOrokq4HDgF5/VxMl3Q11voSjdaBUUO4S0=";
+    sha256 = "sha256-qIfzAQ/dJgOZJajNU3XyFudSxu2w4JC0ffHosHXje1o=";
   };
 
   makeFlags = [ "NO_INTERNET=1" ];
diff --git a/pkgs/tools/networking/picosnitch/default.nix b/pkgs/tools/networking/picosnitch/default.nix
index ddd07d28f292..6007d3ec227f 100644
--- a/pkgs/tools/networking/picosnitch/default.nix
+++ b/pkgs/tools/networking/picosnitch/default.nix
@@ -6,11 +6,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "picosnitch";
-  version = "1.0.1";
+  version = "1.0.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5d427eb46de448e4109f68ed435dd38426df8200aea5bb668639aabe1f0b4580";
+    sha256 = "78285e91b5c4d8e07529a34a7c3fe606acb6f950ee3cc78bb6c346bc2195b68a";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/networking/prettyping/default.nix b/pkgs/tools/networking/prettyping/default.nix
index 16311f5b9961..ac5dd3d1d6ae 100644
--- a/pkgs/tools/networking/prettyping/default.nix
+++ b/pkgs/tools/networking/prettyping/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/denilsonsa/prettyping";
     description = "A wrapper around the standard ping tool with the objective of making the output prettier, more colorful, more compact, and easier to read";
+    mainProgram = "prettyping";
     license = with licenses; [ mit ];
     platforms = platforms.unix;
     maintainers = with maintainers; [ qoelet ];
diff --git a/pkgs/tools/networking/privoxy/default.nix b/pkgs/tools/networking/privoxy/default.nix
index 276bc133dfb1..048ee085a6f2 100644
--- a/pkgs/tools/networking/privoxy/default.nix
+++ b/pkgs/tools/networking/privoxy/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , nixosTests
+, fetchpatch
 , fetchurl, autoreconfHook
 , zlib, pcre, w3m, man
 , openssl, brotli
@@ -15,6 +16,15 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-5sy8oWVvTmFrRlf4UU4zpw9ml+nXKUNWV3g5Mio8XSw=";
   };
 
+  # Patch to fix socks4 and socks4a support under glibc's source fortification
+  # (enabled by default since glibc 2.38-0)
+  patches = [
+    (fetchpatch {
+      url = "https://www.privoxy.org/gitweb/?p=privoxy.git;a=commitdiff_plain;h=19d7684ca10f6c1279568aa19e9a9da2276851f1";
+      sha256 = "sha256-bCb0RUVrWeGfqZYFHXDEEx+76xiNyVqehtLvk9C1j+4=";
+    })
+  ];
+
   hardeningEnable = [ "pie" ];
 
   nativeBuildInputs = [ autoreconfHook w3m man ];
diff --git a/pkgs/tools/networking/q/default.nix b/pkgs/tools/networking/q/default.nix
index 3bf04806233c..ed3a1a57fc36 100644
--- a/pkgs/tools/networking/q/default.nix
+++ b/pkgs/tools/networking/q/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "q";
-  version = "0.15.1";
+  version = "0.19.2";
 
   src = fetchFromGitHub {
     owner = "natesales";
     repo = "q";
     rev = "v${version}";
-    sha256 = "sha256-yItgytsPR/FkiERHhLTq1vNJbZ204DckEc3xK3PaPKM=";
+    sha256 = "sha256-kfuf0iwRYNxd9TfIIHvAqLxXjesQh7jC0evT9DQrrzQ=";
   };
 
-  vendorHash = "sha256-xLv2F/rOSjMTnTrLck/1E8Y0fTbpUutQIJGmqetqYjg=";
+  vendorHash = "sha256-6kdf+LwMrIjwC3uZHlMdpEHvonxKfr86PQaMOgzgYOc=";
 
   doCheck = false; # tries to resolve DNS
 
diff --git a/pkgs/tools/networking/qrcp/default.nix b/pkgs/tools/networking/qrcp/default.nix
index 23183f513c11..0d8a344cbd6d 100644
--- a/pkgs/tools/networking/qrcp/default.nix
+++ b/pkgs/tools/networking/qrcp/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "qrcp";
-  version = "0.10.1";
+  version = "0.11.2";
 
   src = fetchFromGitHub {
     owner = "claudiodangelis";
     repo = "qrcp";
     rev = version;
-    sha256 = "sha256-3GPZ6+gx5i/xULM3lq7D+b0onBC6clgeZsI1CvZ943s=";
+    hash = "sha256-BuZn+7gTjsHTUDu33JXTrntb5LUzcq3ZsmgFg+6ivZg=";
   };
 
-  vendorHash = "sha256-XVBDPhQsnUdftS+jZ1zWZlfSbFXxXrKSqiGTPpLq5i0=";
+  vendorHash = "sha256-lqGPPyoSO12MyeYIuYcqDVHukj7oR3zmHgsS6SxY3yo=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/tools/networking/requestly/default.nix b/pkgs/tools/networking/requestly/default.nix
index 4655da5a34c0..671d084b8ecb 100644
--- a/pkgs/tools/networking/requestly/default.nix
+++ b/pkgs/tools/networking/requestly/default.nix
@@ -5,11 +5,11 @@
 
 let
   pname = "requestly";
-  version = "1.5.16";
+  version = "1.6.0";
 
   src = fetchurl {
     url = "https://github.com/requestly/requestly-desktop-app/releases/download/v${version}/Requestly-${version}.AppImage";
-    hash = "sha256-c+Ti7j+3r0hSw2uvaDkavykUQQdvg0OgD1XdDTQbJuA=";
+    hash = "sha256-aUhgn6QeCHcs3yi1KKzw+yOUucbTOeNqObTYZTkKqrs=";
   };
 
   appimageContents = appimageTools.extractType2 { inherit pname version src; };
diff --git a/pkgs/tools/networking/s3cmd/default.nix b/pkgs/tools/networking/s3cmd/default.nix
index e7e8a38dc478..b07ea24abf9d 100644
--- a/pkgs/tools/networking/s3cmd/default.nix
+++ b/pkgs/tools/networking/s3cmd/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonApplication rec {
   pname = "s3cmd";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "s3tools";
     repo = "s3cmd";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-nb4WEH8ELaG/bIe4NtjD4p99VJoG90UQ662iWyvnr2U=";
+    sha256 = "sha256-cxwf6+9WFt3U7+JdKRgZxFElD+Dgf2P2VyejHVoiDJk=";
   };
 
   propagatedBuildInputs = [ python-magic python-dateutil ];
diff --git a/pkgs/tools/networking/sing-box/default.nix b/pkgs/tools/networking/sing-box/default.nix
index 274920b3d612..f2c0b85980b2 100644
--- a/pkgs/tools/networking/sing-box/default.nix
+++ b/pkgs/tools/networking/sing-box/default.nix
@@ -11,16 +11,16 @@
 
 buildGoModule rec {
   pname = "sing-box";
-  version = "1.8.2";
+  version = "1.8.5";
 
   src = fetchFromGitHub {
     owner = "SagerNet";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-+N+3RfWOIM6bZAxmmfG3jMWICWKvOC1CV4hBv8oZjIM=";
+    hash = "sha256-fW96Hh0eBK8pKkrQP+uA2uaqnZFvZszX2d+VOxKo5Zk=";
   };
 
-  vendorHash = "sha256-NgtZ0z/9X+GWaZqQJMecF/Bxq9u8JKCewgQGSru+EJc=";
+  vendorHash = "sha256-4PauMcKpjXtXHJds8MJPH9L+UYPu2fFltP2uUEXtb+o=";
 
   tags = [
     "with_quic"
diff --git a/pkgs/tools/networking/sish/default.nix b/pkgs/tools/networking/sish/default.nix
index aa64767cc3fe..d1913e5dff41 100644
--- a/pkgs/tools/networking/sish/default.nix
+++ b/pkgs/tools/networking/sish/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "sish";
-  version = "2.11.0";
+  version = "2.12.0";
 
   src = fetchFromGitHub {
     owner = "antoniomika";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-dNwSMDEt142A0rP212bWBZSX2zhYgL94EJymOvegTa8=";
+    hash = "sha256-dn64M/DGnyaoEtbdeytpRsKCXQPvR+dJDI7yFt2IqU0=";
   };
 
-  vendorHash = "sha256-XtN2RgegmKR/RDFBbHn9kpI1BxmF7jfu7LAwPVaAvEk=";
+  vendorHash = "sha256-P5Y5DwF9Tb9j098XiEJZaEGZhT2Ce2emnV2SawElosI=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/networking/ssl-proxy/default.nix b/pkgs/tools/networking/ssl-proxy/default.nix
index 5b72fb14fd9c..1bfb1418355f 100644
--- a/pkgs/tools/networking/ssl-proxy/default.nix
+++ b/pkgs/tools/networking/ssl-proxy/default.nix
@@ -13,6 +13,10 @@ buildGoModule rec {
 
   vendorHash = "sha256-310K9ZSxy/OQ4HYFCcHQaj4NQwzATrOZ2YkhiSkhY5I=";
 
+  patches = [
+    ./go120-compatibility.patch
+  ];
+
   checkTarget = "test";
 
   meta = with lib; {
diff --git a/pkgs/tools/networking/ssl-proxy/go120-compatibility.patch b/pkgs/tools/networking/ssl-proxy/go120-compatibility.patch
new file mode 100644
index 000000000000..868ca39a5414
--- /dev/null
+++ b/pkgs/tools/networking/ssl-proxy/go120-compatibility.patch
@@ -0,0 +1,18 @@
+Check whether User-Agent is defined before trying to override it
+
+Since Go 1.20 [1], ReverseProxy no longer adds a User-Agent header to forwarded
+requests.
+
+[1] https://github.com/golang/go/commit/f001df540b3fc66a475985c1b7c810e7df063c8f
+
+--- a/reverseproxy/reverseproxy.go
++++ b/reverseproxy/reverseproxy.go
+@@ -32,7 +32,7 @@ func newDirector(target *url.URL, extraDirector func(*http.Request)) func(*http.
+ 		} else {
+ 			req.URL.RawQuery = targetQuery + "&" + req.URL.RawQuery
+ 		}
+-		if _, ok := req.Header["User-Agent"]; !ok {
++		if req.Header.Get("User-Agent") != "" {
+ 			// explicitly disable User-Agent so it's not set to default value
+ 			req.Header.Set("User-Agent", "")
+ 		}
diff --git a/pkgs/tools/networking/swagger-codegen/default.nix b/pkgs/tools/networking/swagger-codegen/default.nix
index b89ffdd2862c..27ea4ff2d517 100644
--- a/pkgs/tools/networking/swagger-codegen/default.nix
+++ b/pkgs/tools/networking/swagger-codegen/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, jre, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  version = "2.4.34";
+  version = "2.4.38";
   pname = "swagger-codegen";
 
   jarfilename = "${pname}-cli-${version}.jar";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://maven/io/swagger/${pname}-cli/${version}/${jarfilename}";
-    sha256 = "sha256-OgaKWX9nUqhpgpdMlTiNk0AyBb2glnlYX5Ua03hDWBQ=";
+    sha256 = "sha256-ECfOEr4JRCv/i/7YuQvj2s5sKBS1Ja0N8C7eTKoGUx4=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/tools/networking/swagger-codegen3/default.nix b/pkgs/tools/networking/swagger-codegen3/default.nix
index 06e826f4fbd4..ef538cd68f63 100644
--- a/pkgs/tools/networking/swagger-codegen3/default.nix
+++ b/pkgs/tools/networking/swagger-codegen3/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, jre, makeWrapper, testers, swagger-codegen3 }:
 
 stdenv.mkDerivation rec {
-  version = "3.0.51";
+  version = "3.0.52";
   pname = "swagger-codegen";
 
   jarfilename = "${pname}-cli-${version}.jar";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://maven/io/swagger/codegen/v3/${pname}-cli/${version}/${jarfilename}";
-    sha256 = "sha256-gdzxPtr5HGt9PCKPe6Y1GRoorwDmDjfs/P45HubLQks=";
+    sha256 = "sha256-bBiETNzgySrOSFUB6356jiwDhwQ34QrOf2KdP5lv3Yg=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/tools/networking/swaks/default.nix b/pkgs/tools/networking/swaks/default.nix
index da53407e3cc7..471cc74d9d7f 100644
--- a/pkgs/tools/networking/swaks/default.nix
+++ b/pkgs/tools/networking/swaks/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "swaks";
-  version = "20201014.0";
+  version = "20240103.0";
 
   src = fetchurl {
     url = "https://www.jetmore.org/john/code/swaks/files/${pname}-${version}.tar.gz";
-    sha256 = "0c2sx4nrh4whsqzj6m5ay8d7yqan3aqgg436p8jb25bs91ykn2pv";
+    sha256 = "sha256-DlMbTRZAWIAucmaxT03BiXCZ0Jb5MIIN4vm16wjc2+g=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/networking/telepresence2/default.nix b/pkgs/tools/networking/telepresence2/default.nix
index 60d74926fe9e..49f44f52bc5f 100644
--- a/pkgs/tools/networking/telepresence2/default.nix
+++ b/pkgs/tools/networking/telepresence2/default.nix
@@ -27,13 +27,13 @@ let
 in
 buildGoModule rec {
   pname = "telepresence2";
-  version = "2.15.1";
+  version = "2.17.0";
 
   src = fetchFromGitHub {
     owner = "telepresenceio";
     repo = "telepresence";
     rev = "v${version}";
-    hash = "sha256-67a5e7Lun/mlRwRoD6eomQpgUXqzAUx8IS7Mv86j6Gw=";
+    hash = "sha256-wmoOBoMjPCNJGg86Cl2V4izZQDiZjNzwErvWMYY1MGk=";
   };
 
   propagatedBuildInputs = [
@@ -47,7 +47,7 @@ buildGoModule rec {
     export CGO_ENABLED=0
   '';
 
-  vendorHash = "sha256-/13OkcLJI/q14tyFsynL5ZAIITH1w9XWpzRqZoJJesE=";
+  vendorHash = "sha256-rTlMd56iBSBLTRYJlKHWmYyyeBtNk2WQ3hrPJl9dMYI=";
 
   ldflags = [
     "-s" "-w" "-X=github.com/telepresenceio/telepresence/v2/pkg/version.Version=${src.rev}"
diff --git a/pkgs/tools/networking/tinyssh/default.nix b/pkgs/tools/networking/tinyssh/default.nix
index a6f7b77be91f..47c9ace513e8 100644
--- a/pkgs/tools/networking/tinyssh/default.nix
+++ b/pkgs/tools/networking/tinyssh/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tinyssh";
-  version = "20230101";
+  version = "20240101";
 
   src = fetchFromGitHub {
     owner = "janmojzis";
     repo = "tinyssh";
     rev = "refs/tags/${version}";
-    hash = "sha256-yEqPrLp14AF0L1QLoIcBhTphmd6qVzOB9EVW0Miy8yM=";
+    hash = "sha256-wO0fGr+pU+Y5YCZMRGNOZ6pJeCUIc64TzmRAaQCnBxk=";
   };
 
   preConfigure = ''
@@ -19,6 +19,8 @@ stdenv.mkDerivation rec {
     echo /share/man > conf-man
   '';
 
+  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=implicit-function-declaration";
+
   DESTDIR = placeholder "out";
 
   meta = with lib; {
diff --git a/pkgs/tools/networking/tun2socks/default.nix b/pkgs/tools/networking/tun2socks/default.nix
index 9296b0df0068..37019a38b348 100644
--- a/pkgs/tools/networking/tun2socks/default.nix
+++ b/pkgs/tools/networking/tun2socks/default.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
   vendorHash = "sha256-zeiOcn33PnyoseYb0wynkn7MfGp3rHEYBStY98C6aR8=";
 
   ldflags = [
-    "-w" "-s" "-buildid="
+    "-w" "-s"
     "-X github.com/xjasonlyu/tun2socks/v2/internal/version.Version=v${version}"
     "-X github.com/xjasonlyu/tun2socks/v2/internal/version.GitCommit=v${version}"
   ];
diff --git a/pkgs/tools/networking/uqmi/default.nix b/pkgs/tools/networking/uqmi/default.nix
index bdbb85f30e89..83500191b71e 100644
--- a/pkgs/tools/networking/uqmi/default.nix
+++ b/pkgs/tools/networking/uqmi/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation {
   pname = "uqmi";
-  version = "unstable-2023-10-30";
+  version = "unstable-2024-01-16";
 
   src = fetchgit {
     url = "https://git.openwrt.org/project/uqmi.git";
-    rev = "eea292401c388a4eb59c0caf5d00aa046c6059f4";
-    hash = "sha256-Uz5GjGcSKatbii09CsvzsYMz8Vm+Am4RUeCZuFIK1Ag=";
+    rev = "c3488b831ce6285c8107704156b9b8ed7d59deb3";
+    hash = "sha256-O5CeLk0WYuBs3l5xBUk9kXDRMzFvYSRoqP28KJ5Ztos=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/networking/v2ray/default.nix b/pkgs/tools/networking/v2ray/default.nix
index 1da2adba9d54..4d783fb47345 100644
--- a/pkgs/tools/networking/v2ray/default.nix
+++ b/pkgs/tools/networking/v2ray/default.nix
@@ -19,7 +19,7 @@ buildGoModule rec {
   # https://github.com/Mic92/nix-update/pull/95
   vendorHash = "sha256-ZBvHu4BEmQi6PQwRHuVwx/6X4gBqlRR44OktKRBGcs4=";
 
-  ldflags = [ "-s" "-w" "-buildid=" ];
+  ldflags = [ "-s" "-w" ];
 
   subPackages = [ "main" ];
 
diff --git a/pkgs/tools/networking/vopono/default.nix b/pkgs/tools/networking/vopono/default.nix
index b051d5aebed6..b8dbed5a02fa 100644
--- a/pkgs/tools/networking/vopono/default.nix
+++ b/pkgs/tools/networking/vopono/default.nix
@@ -5,14 +5,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "vopono";
-  version = "0.10.7";
+  version = "0.10.8";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-LaUoaZhOA/3o5DyKqq17u3Sf+lvkxMXkkwMEf6YLnCI=";
+    hash = "sha256-D+yROQidu+a3qzCNrVxn0RNutIHNcIjMSNqPLHwA+zA=";
   };
 
-  cargoHash = "sha256-Aef0A+4de3vWlK2zOmUmcGGO6XD1DNYwcZ1ryIvo7mM=";
+  cargoHash = "sha256-oKoSHjABtaJYGyJ/G0zXC42XpXiUXwdPsOhyL1+D3GI=";
 
   meta = with lib; {
     description = "Run applications through VPN connections in network namespaces";
diff --git a/pkgs/tools/networking/xdp-tools/default.nix b/pkgs/tools/networking/xdp-tools/default.nix
index cf24360b1d7f..f1bcb4dfd115 100644
--- a/pkgs/tools/networking/xdp-tools/default.nix
+++ b/pkgs/tools/networking/xdp-tools/default.nix
@@ -15,13 +15,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "xdp-tools";
-  version = "1.4.1";
+  version = "1.4.2";
 
   src = fetchFromGitHub {
     owner = "xdp-project";
     repo = "xdp-tools";
     rev = "v${version}";
-    hash = "sha256-5rc3RbAgWVd7Tt16NoHymFME5a9tBCmup+1ZmnMGPhs=";
+    hash = "sha256-kWgjt7mYwHtf8I4sXPzzrQJkWQyC8AC85ulGOWmQNZI=";
   };
 
   outputs = [ "out" "lib" ];
diff --git a/pkgs/tools/networking/xh/default.nix b/pkgs/tools/networking/xh/default.nix
index 63ca778c6db4..a2cbf816fab7 100644
--- a/pkgs/tools/networking/xh/default.nix
+++ b/pkgs/tools/networking/xh/default.nix
@@ -5,29 +5,29 @@
 , pkg-config
 , withNativeTls ? true
 , stdenv
-, Security
+, darwin
 , openssl
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "xh";
-  version = "0.20.1";
+  version = "0.21.0";
 
   src = fetchFromGitHub {
     owner = "ducaale";
     repo = "xh";
     rev = "v${version}";
-    sha256 = "sha256-e3AGegW0V7JK6iLy0PaMwSeA9+2wSouzX5QIYUg8HCk=";
+    sha256 = "sha256-nsxXNlDycn7W7X+AthYCFQu8i2bEPQv7r2LCbc3gFrE=";
   };
 
-  cargoSha256 = "sha256-JE8SKxc7fKlK637NCZnTKkbF4GNrrvJQ/2kGxK4WXpg=";
+  cargoHash = "sha256-THj8tE12P/K+t/R1xUxo042FIX6JP3riCvm2a8zVEzw=";
 
   buildFeatures = lib.optional withNativeTls "native-tls";
 
   nativeBuildInputs = [ installShellFiles pkg-config ];
 
   buildInputs = lib.optionals withNativeTls
-    (if stdenv.isDarwin then [ Security ] else [ openssl ]);
+    (if stdenv.isDarwin then [ darwin.apple_sdk.frameworks.SystemConfiguration ] else [ openssl ]);
 
   # Get openssl-sys to use pkg-config
   OPENSSL_NO_VENDOR = 1;
diff --git a/pkgs/tools/networking/xray/default.nix b/pkgs/tools/networking/xray/default.nix
index bb317055dc04..683cd9e48447 100644
--- a/pkgs/tools/networking/xray/default.nix
+++ b/pkgs/tools/networking/xray/default.nix
@@ -26,7 +26,7 @@ buildGoModule rec {
 
   doCheck = false;
 
-  ldflags = [ "-s" "-w" "-buildid=" ];
+  ldflags = [ "-s" "-w" ];
   subPackages = [ "main" ];
 
    installPhase = ''
diff --git a/pkgs/tools/networking/ytcc/default.nix b/pkgs/tools/networking/ytcc/default.nix
index 4cbcc3d48f2d..d771db21d494 100644
--- a/pkgs/tools/networking/ytcc/default.nix
+++ b/pkgs/tools/networking/ytcc/default.nix
@@ -3,16 +3,21 @@
 python3Packages.buildPythonApplication rec {
   pname = "ytcc";
   version = "2.6.1";
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "woefe";
     repo = "ytcc";
     rev = "v${version}";
-    sha256 = "sha256-pC2uoog+nev/Xa6UbXX4vX00VQQLHtZzbVkxrxO/Pg8=";
+    hash = "sha256-pC2uoog+nev/Xa6UbXX4vX00VQQLHtZzbVkxrxO/Pg8=";
   };
 
-  nativeBuildInputs = [ gettext installShellFiles ];
+  nativeBuildInputs = [
+    gettext
+    installShellFiles
+  ] ++ (with python3Packages; [
+    setuptools
+  ]);
 
   propagatedBuildInputs = with python3Packages; [
     yt-dlp
@@ -20,7 +25,9 @@ python3Packages.buildPythonApplication rec {
     wcwidth
   ];
 
-  nativeCheckInputs = with python3Packages; [ nose pytestCheckHook ];
+  nativeCheckInputs = with python3Packages; [
+    pytestCheckHook
+  ];
 
   # Disable tests that touch network or shell out to commands
   disabledTests = [
diff --git a/pkgs/tools/networking/zrok/default.nix b/pkgs/tools/networking/zrok/default.nix
index 74fb313d9fc7..1515f357778e 100644
--- a/pkgs/tools/networking/zrok/default.nix
+++ b/pkgs/tools/networking/zrok/default.nix
@@ -14,14 +14,14 @@ let
   }.${system} or throwSystem;
 
   hash = {
-    x86_64-linux = "sha256-vAX7vx13eHyPuDe4q5b8dQD90l5bbnncMGlXnegumxM=";
-    aarch64-linux = "sha256-6x/E0uAPFOsuoJ/ePLV483M07Rqj5pkcpETOVq9RXKU=";
-    armv7l-linux = "sha256-UlpqoKfjyGLNKvSrXqqsiiq/wTlfmBmPfynDoFT/nuQ=";
+    x86_64-linux = "sha256-DrkX9Be8gw9JXyfyxcK2mhGur5jWFv4LjaYRSVh4dSE=";
+    aarch64-linux = "sha256-VVeTVBJyptbR/6JZwZ0V2v4lS3X/ixrcC++aMQBtg2Q=";
+    armv7l-linux = "sha256-m6tALmSCZKLQrSeIpygEQF5nuJBZ8MYmxdbeFH5ydt0=";
   }.${system} or throwSystem;
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "zrok";
-  version = "0.4.18";
+  version = "0.4.23";
 
   src = fetchzip {
     url = "https://github.com/openziti/zrok/releases/download/v${finalAttrs.version}/zrok_${finalAttrs.version}_${plat}.tar.gz";
diff --git a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/manual.py b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/manual.py
index d605dd88b37d..c72a9d53cd18 100644
--- a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/manual.py
+++ b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/manual.py
@@ -8,7 +8,7 @@ import xml.sax.saxutils as xml
 from abc import abstractmethod
 from collections.abc import Mapping, Sequence
 from pathlib import Path
-from typing import Any, cast, ClassVar, Generic, get_args, NamedTuple
+from typing import Any, Callable, cast, ClassVar, Generic, get_args, NamedTuple
 
 from markdown_it.token import Token
 
@@ -44,8 +44,40 @@ class BaseConverter(Converter[md.TR], Generic[md.TR]):
     def _postprocess(self, infile: Path, outfile: Path, tokens: Sequence[Token]) -> None:
         pass
 
-    def _parse(self, src: str) -> list[Token]:
+    def _handle_headings(self, tokens: list[Token], *, on_heading: Callable[[Token,str],None]) -> None:
+        # Headings in a globally numbered order
+        # h1 to h6
+        curr_heading_pos: list[int] = []
+        for token in tokens:
+            if token.type == "heading_open":
+                if token.tag not in ["h1", "h2", "h3", "h4", "h5", "h6"]:
+                    raise RuntimeError(f"Got invalid heading tag {token.tag} in line {token.map[0] + 1 if token.map else 'NOT FOUND'}. Only h1 to h6 headings are allowed.")
+
+                idx = int(token.tag[1:]) - 1
+
+                if idx >= len(curr_heading_pos):
+                    # extend the list if necessary
+                    curr_heading_pos.extend([0 for _i in range(idx+1 - len(curr_heading_pos))])
+
+                curr_heading_pos = curr_heading_pos[:idx+1]
+                curr_heading_pos[-1] += 1
+
+
+                ident = ".".join(f"{a}" for a in curr_heading_pos)
+                on_heading(token,ident)
+
+
+
+    def _parse(self, src: str, *, auto_id_prefix: None | str = None) -> list[Token]:
         tokens = super()._parse(src)
+        if auto_id_prefix:
+            def set_token_ident(token: Token, ident: str) -> None:
+                if "id" not in token.attrs:
+                    token.attrs["id"] = f"{auto_id_prefix}-{ident}"
+
+            self._handle_headings(tokens, on_heading=set_token_ident)
+
+
         check_structure(self._current_type[-1], tokens)
         for token in tokens:
             if not is_include(token):
@@ -89,7 +121,12 @@ class BaseConverter(Converter[md.TR], Generic[md.TR]):
             try:
                 self._base_paths.append(path)
                 with open(path, 'r') as f:
-                    tokens = self._parse(f.read())
+                    prefix = None
+                    if "auto-id-prefix" in block_args:
+                        # include the current file number to prevent duplicate ids within include blocks
+                        prefix = f"{block_args.get('auto-id-prefix')}-{lnum}"
+
+                    tokens = self._parse(f.read(), auto_id_prefix=prefix)
                     included.append((tokens, path))
                 self._base_paths.pop()
             except Exception as e:
@@ -554,8 +591,8 @@ class HTMLConverter(BaseConverter[ManualHTMLRenderer]):
             infile.parent, outfile.parent)
         super().convert(infile, outfile)
 
-    def _parse(self, src: str) -> list[Token]:
-        tokens = super()._parse(src)
+    def _parse(self, src: str, *, auto_id_prefix: None | str = None) -> list[Token]:
+        tokens = super()._parse(src,auto_id_prefix=auto_id_prefix)
         for token in tokens:
             if not token.type.startswith('included_') \
                or not (into := token.meta['include-args'].get('into-file')):
diff --git a/pkgs/tools/nix/nixos-render-docs/src/tests/test_auto_id_prefix.py b/pkgs/tools/nix/nixos-render-docs/src/tests/test_auto_id_prefix.py
new file mode 100644
index 000000000000..ab917a106443
--- /dev/null
+++ b/pkgs/tools/nix/nixos-render-docs/src/tests/test_auto_id_prefix.py
@@ -0,0 +1,92 @@
+from pathlib import Path
+
+from markdown_it.token import Token
+from nixos_render_docs.manual import HTMLConverter, HTMLParameters
+from nixos_render_docs.md import Converter
+
+auto_id_prefix="TEST_PREFIX"
+def set_prefix(token: Token, ident: str) -> None:
+    token.attrs["id"] = f"{auto_id_prefix}-{ident}"
+
+
+def test_auto_id_prefix_simple() -> None:
+    md = HTMLConverter("1.0.0", HTMLParameters("", [], [], 2, 2, 2, Path("")), {})
+
+    src = f"""
+# title
+
+## subtitle
+    """
+    tokens = Converter()._parse(src)
+    md._handle_headings(tokens, on_heading=set_prefix)
+
+    assert [
+        {**token.attrs, "tag": token.tag}
+        for token in tokens
+        if token.type == "heading_open"
+    ] == [
+        {"id": "TEST_PREFIX-1", "tag": "h1"},
+        {"id": "TEST_PREFIX-1.1", "tag": "h2"}
+    ]
+
+
+def test_auto_id_prefix_repeated() -> None:
+    md = HTMLConverter("1.0.0", HTMLParameters("", [], [], 2, 2, 2, Path("")), {})
+
+    src = f"""
+# title
+
+## subtitle
+
+# title2
+
+## subtitle2
+    """
+    tokens = Converter()._parse(src)
+    md._handle_headings(tokens, on_heading=set_prefix)
+
+    assert [
+        {**token.attrs, "tag": token.tag}
+        for token in tokens
+        if token.type == "heading_open"
+    ] == [
+        {"id": "TEST_PREFIX-1", "tag": "h1"},
+        {"id": "TEST_PREFIX-1.1", "tag": "h2"},
+        {"id": "TEST_PREFIX-2", "tag": "h1"},
+        {"id": "TEST_PREFIX-2.1", "tag": "h2"},
+    ]
+
+def test_auto_id_prefix_maximum_nested() -> None:
+    md = HTMLConverter("1.0.0", HTMLParameters("", [], [], 2, 2, 2, Path("")), {})
+
+    src = f"""
+# h1
+
+## h2
+
+### h3
+
+#### h4
+
+##### h5
+
+###### h6
+
+## h2.2
+    """
+    tokens = Converter()._parse(src)
+    md._handle_headings(tokens, on_heading=set_prefix)
+
+    assert [
+        {**token.attrs, "tag": token.tag}
+        for token in tokens
+        if token.type == "heading_open"
+    ] == [
+        {"id": "TEST_PREFIX-1", "tag": "h1"},
+        {"id": "TEST_PREFIX-1.1", "tag": "h2"},
+        {"id": "TEST_PREFIX-1.1.1", "tag": "h3"},
+        {"id": "TEST_PREFIX-1.1.1.1", "tag": "h4"},
+        {"id": "TEST_PREFIX-1.1.1.1.1", "tag": "h5"},
+        {"id": "TEST_PREFIX-1.1.1.1.1.1", "tag": "h6"},
+        {"id": "TEST_PREFIX-1.2", "tag": "h2"},
+    ]
diff --git a/pkgs/tools/package-management/apt-dater/default.nix b/pkgs/tools/package-management/apt-dater/default.nix
index a15ec7e9c168..ec9c53f7d78c 100644
--- a/pkgs/tools/package-management/apt-dater/default.nix
+++ b/pkgs/tools/package-management/apt-dater/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub
 , autoreconfHook, pkg-config, gettext
-, vim, glib, libxml2, ncurses, popt, screen
+, xxd, glib, libxml2, ncurses, popt, screen
 }:
 
 stdenv.mkDerivation rec {
@@ -15,11 +15,11 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    pkg-config autoreconfHook gettext
+    pkg-config autoreconfHook gettext xxd
   ];
 
   buildInputs = [
-    libxml2 ncurses vim glib popt screen
+    libxml2 ncurses glib popt screen
   ];
 
   configureFlags = [ "--disable-history" ];
diff --git a/pkgs/tools/package-management/apx/default.nix b/pkgs/tools/package-management/apx/default.nix
index d24a5bc07106..26bece879f00 100644
--- a/pkgs/tools/package-management/apx/default.nix
+++ b/pkgs/tools/package-management/apx/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "apx";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "Vanilla-OS";
     repo = "apx";
     rev = "v${version}";
-    hash = "sha256-/RGL2mCfJiJInnt5zgc1xXPqZxXCAcoWIbky99okvL0=";
+    hash = "sha256-OLJrwibw9uX5ty7FRZ0q8zx0i1vQXRKK8reQsJFFxAI=";
   };
 
   vendorHash = null;
@@ -31,8 +31,10 @@ buildGoModule rec {
   '';
 
   postInstall = ''
-    install -m 444 -D config/apx.json -t $out/share/apx/
+    install -Dm444 config/apx.json -t $out/share/apx/
     installManPage man/man1/*
+    install -Dm444 README.md -t $out/share/docs/apx
+    install -Dm444 COPYING.md $out/share/licenses/apx/LICENSE
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/package-management/emplace/default.nix b/pkgs/tools/package-management/emplace/default.nix
index 0a2656e12932..b835149763b7 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.4.2";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "tversteeg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-5PuSIOXns0FVLgyIw1mk8hZ/tYhikMV860BHTDlji78=";
+    sha256 = "sha256-Vi4X5P9ey6JkASiDFMCrJjnJW4vsw0d+GoItXTLzYzc=";
   };
 
-  cargoSha256 = "sha256-UbbVjT5JQuVSCgbcelEVaAql4CUnCtO99zHp3Ei31Gs=";
+  cargoHash = "sha256-wcyfe6YWuRKJzI4dhRJr0tWW830oDe8IPhtWk7zn0Cc=";
 
   meta = with lib; {
     description = "Mirror installed software on multiple machines";
diff --git a/pkgs/tools/package-management/fortran-fpm/default.nix b/pkgs/tools/package-management/fortran-fpm/default.nix
index d8adb9249006..0945b0c67e32 100644
--- a/pkgs/tools/package-management/fortran-fpm/default.nix
+++ b/pkgs/tools/package-management/fortran-fpm/default.nix
@@ -7,11 +7,11 @@
 stdenv.mkDerivation rec {
   pname = "fortran-fpm";
 
-  version = "0.9.0";
+  version = "0.10.0";
 
   src = fetchurl {
     url = "https://github.com/fortran-lang/fpm/releases/download/v${version}/fpm-${version}.F90";
-    sha256 = "sha256-VWs4g7odtv1iyZunFD8el+u0CXKcQgnwOqPG/JcMzj8=";
+    sha256 = "sha256-SOVj23Sva5OW6+Sme9NxIQ4uqMbis8wjDmgYPOdQlCI=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/tools/package-management/home-manager/default.nix b/pkgs/tools/package-management/home-manager/default.nix
index 9a1b3ec59bed..5965361e8ee4 100644
--- a/pkgs/tools/package-management/home-manager/default.nix
+++ b/pkgs/tools/package-management/home-manager/default.nix
@@ -16,14 +16,14 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "home-manager";
-  version = "unstable-2024-01-05";
+  version = "unstable-2024-02-03";
 
   src = fetchFromGitHub {
     name = "home-manager-source";
     owner = "nix-community";
     repo = "home-manager";
-    rev = "51e44a13acea71b36245e8bd8c7db53e0a3e61ee";
-    hash = "sha256-yINKdShHrtjdiJhov+q0s3Y3B830ujRoSbHduUNyKag=";
+    rev = "1ca210648a6ca9b957efde5da957f3de6b1f0c45";
+    hash = "sha256-ptshv4qXiC6V0GCfpABz88UGGPNwqs5tAxaRUKbk1Qo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/package-management/nfpm/default.nix b/pkgs/tools/package-management/nfpm/default.nix
index 12facbb5fdba..e37393e41b85 100644
--- a/pkgs/tools/package-management/nfpm/default.nix
+++ b/pkgs/tools/package-management/nfpm/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "nfpm";
-  version = "2.35.2";
+  version = "2.35.3";
 
   src = fetchFromGitHub {
     owner = "goreleaser";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-ic6SOgIE+g7ccvg163xCwTmz960mWYcxN8ghEdB11To=";
+    hash = "sha256-QoZiI9rMOdQZbMENVcBfUYPAvN9IqfeR0EK11l8+Hzo=";
   };
 
-  vendorHash = "sha256-rIgEctBGff5/pzbPPaDgqZCwmIVDjF98wmLBD17KXTM=";
+  vendorHash = "sha256-WYuhHLq0/OD/JtOEkZsyPEJyjPqEoh9RSfBG0G3E/2w=";
 
   ldflags = [ "-s" "-w" "-X main.version=${version}" ];
 
diff --git a/pkgs/tools/package-management/nix/common.nix b/pkgs/tools/package-management/nix/common.nix
index 946407826f25..670e2282aa20 100644
--- a/pkgs/tools/package-management/nix/common.nix
+++ b/pkgs/tools/package-management/nix/common.nix
@@ -216,7 +216,7 @@ self = stdenv.mkDerivation {
   # Prevent crashes in libcurl due to invoking Objective-C `+initialize` methods after `fork`.
   # See http://sealiesoftware.com/blog/archive/2017/6/5/Objective-C_and_fork_in_macOS_1013.html.
   + lib.optionalString stdenv.isDarwin ''
-    export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=yes
+    export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
   ''
   # See https://github.com/NixOS/nix/issues/5687
   + lib.optionalString (atLeast25 && stdenv.isDarwin) ''
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index 4652ddb76a5b..c3f970f78fb3 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -238,8 +238,8 @@ in lib.makeExtensible (self: ({
   };
 
   nix_2_19 = common {
-    version = "2.19.2";
-    hash = "sha256-iA8DqS+W2fWTfR+nNJSvMHqQ+4NpYMRT3b+2zS6JTvE=";
+    version = "2.19.3";
+    hash = "sha256-EtL6M0H5+0mFbFh+teVjm+0B+xmHoKwtBvigS5NMWoo=";
   };
 
   # The minimum Nix version supported by Nixpkgs
diff --git a/pkgs/tools/package-management/npm-check-updates/default.nix b/pkgs/tools/package-management/npm-check-updates/default.nix
index 6e01d4415efc..7f88dc4e4e00 100644
--- a/pkgs/tools/package-management/npm-check-updates/default.nix
+++ b/pkgs/tools/package-management/npm-check-updates/default.nix
@@ -5,16 +5,16 @@
 
 buildNpmPackage rec {
   pname = "npm-check-updates";
-  version = "16.14.0";
+  version = "16.14.12";
 
   src = fetchFromGitHub {
     owner = "raineorshine";
     repo = "npm-check-updates";
     rev = "v${version}";
-    hash = "sha256-X8Mu4Fd650H7eA2nfoefmr4jW974qLBLurmj2H4t7xY=";
+    hash = "sha256-3/DaEgPF9+wofYqA1XrJul4/cNGuGeXAeRg0HW0O+Ok=";
   };
 
-  npmDepsHash = "sha256-wm7/WlzqfE7DOT0jUTXBivlC9J8dyHa/OVSgi2SdO5w=";
+  npmDepsHash = "sha256-zUJKuiMycVCuXMh6caMzmi6qpgknVsvmqV3XykhlSBI=";
 
   meta = {
     changelog = "https://github.com/raineorshine/npm-check-updates/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/tools/package-management/opkg/default.nix b/pkgs/tools/package-management/opkg/default.nix
index 6a85e4bb9e88..ba45cb0835b2 100644
--- a/pkgs/tools/package-management/opkg/default.nix
+++ b/pkgs/tools/package-management/opkg/default.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "opkg";
-  version = "0.6.2";
+  version = "0.6.3";
 
   src = fetchurl {
     url = "https://downloads.yoctoproject.org/releases/opkg/opkg-${version}.tar.gz";
-    hash = "sha256-rHOpCiVJzQSUjlY9kVkSx44bi6D0OvdcWlP8ykdK29U=";
+    hash = "sha256-85OONZZGtAbEDV1EKhRnx+cjV/kauCLkQml1KWQeBt4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/package-management/packagekit/default.nix b/pkgs/tools/package-management/packagekit/default.nix
index b51a51da84f5..2e150f692ae9 100644
--- a/pkgs/tools/package-management/packagekit/default.nix
+++ b/pkgs/tools/package-management/packagekit/default.nix
@@ -24,19 +24,20 @@
 , bash-completion ? null
 , enableSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd
 , systemd
+, nixosTests
 }:
 
 stdenv.mkDerivation rec {
   pname = "packagekit";
-  version = "1.2.5.1pre";
+  version = "1.2.8";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchFromGitHub {
     owner = "PackageKit";
     repo = "PackageKit";
-    rev = "30bb82da8d4161330a6d7a20c9989149303421a1";
-    sha256 = "k2osc2v0OuGrNjwxdqn785RsbHEJP3p79PG9YqnVE3U=";
+    rev = "v${version}";
+    hash = "sha256-k51uQHar/uvdTDj/Ud60Oh6H7rfjEc9bfQnH5cvg8hc=";
   };
 
   buildInputs = [
@@ -92,6 +93,10 @@ stdenv.mkDerivation rec {
       --replace "install_dir: join_paths(get_option('localstatedir'), 'lib', 'PackageKit')," "install_dir: join_paths('$out', 'var', 'lib', 'PackageKit'),"
   '';
 
+  passthru.tests = {
+    nixos-test = nixosTests.packagekit;
+  };
+
   meta = with lib; {
     description = "System to facilitate installing and updating packages";
     longDescription = ''
diff --git a/pkgs/tools/package-management/pdm/default.nix b/pkgs/tools/package-management/pdm/default.nix
index b8f1b00b844d..d94aaeae69d9 100644
--- a/pkgs/tools/package-management/pdm/default.nix
+++ b/pkgs/tools/package-management/pdm/default.nix
@@ -32,14 +32,14 @@ in
 with python.pkgs;
 buildPythonApplication rec {
   pname = "pdm";
-  version = "2.12.1";
+  version = "2.12.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-OaKroZmGyUWnm/WEw3dSheJOnH+O2KYDgVthxfrF20w=";
+    hash = "sha256-U82rcnwUaf3Blu/Y1/+EBKPKke5DwKVxRzbyAg0KXd8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/security/argocd-vault-plugin/default.nix b/pkgs/tools/security/argocd-vault-plugin/default.nix
index bd6e4c15fa27..934be7d09942 100644
--- a/pkgs/tools/security/argocd-vault-plugin/default.nix
+++ b/pkgs/tools/security/argocd-vault-plugin/default.nix
@@ -1,4 +1,9 @@
-{ buildGoModule, fetchFromGitHub, lib }:
+{ buildGoModule
+, fetchFromGitHub
+, lib
+, testers
+, argocd-vault-plugin
+}:
 
 buildGoModule rec {
   pname = "argocd-vault-plugin";
@@ -13,9 +18,23 @@ buildGoModule rec {
 
   vendorHash = "sha256-0PrGrcS8Gx0cVImGrlmXlycFgWCTLjg2ISi0OhYoPpw=";
 
+  ldflags = [
+    "-X=github.com/argoproj-labs/argocd-vault-plugin/version.Version=v${version}"
+    "-X=github.com/argoproj-labs/argocd-vault-plugin/version.BuildDate=1970-01-01T00:00:00Z"
+    "-X=github.com/argoproj-labs/argocd-vault-plugin/version.CommitSHA=unknown"
+  ];
+
   # integration tests require filesystem and network access for credentials
   doCheck = false;
 
+  doInstallCheck = true;
+
+  passthru.tests.version = testers.testVersion {
+    package = argocd-vault-plugin;
+    command = "argocd-vault-plugin version";
+    version = "argocd-vault-plugin v${version} (unknown) BuildDate: 1970-01-01T00:00:00Z";
+  };
+
   meta = with lib; {
     homepage = "https://argocd-vault-plugin.readthedocs.io";
     changelog = "https://github.com/argoproj-labs/argocd-vault-plugin/releases/tag/v${version}";
diff --git a/pkgs/tools/security/arubaotp-seed-extractor/default.nix b/pkgs/tools/security/arubaotp-seed-extractor/default.nix
index a1ab0fd9f290..c2ffef83635d 100644
--- a/pkgs/tools/security/arubaotp-seed-extractor/default.nix
+++ b/pkgs/tools/security/arubaotp-seed-extractor/default.nix
@@ -28,7 +28,7 @@ python3Packages.buildPythonApplication {
   ];
 
   installPhase = ''
-    libdir="$out/lib/${python3Packages.python.libPrefix}/site-packages/arubaotp-seed-extractor"
+    libdir="$out/${python3Packages.python.sitePackages}/arubaotp-seed-extractor"
     mkdir -p "$libdir"
     cp scripts/* "$libdir"
     chmod +x "$libdir/main.py"
diff --git a/pkgs/tools/security/aws-iam-authenticator/default.nix b/pkgs/tools/security/aws-iam-authenticator/default.nix
index 8ea3c543b4ea..6badf451368e 100644
--- a/pkgs/tools/security/aws-iam-authenticator/default.nix
+++ b/pkgs/tools/security/aws-iam-authenticator/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "aws-iam-authenticator";
-  version = "0.6.16";
+  version = "0.6.17";
 
   src = fetchFromGitHub {
     owner = "kubernetes-sigs";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-E/DkCDtnzI6yBEYemlLqxc1r8ZEuX+6jDefaZTRFRek=";
+    hash = "sha256-CsurRQDPWJ/P/Q4aZhtUW8Z60+hgzw46+98N/QbFcTU=";
   };
 
   vendorHash = "sha256-TDsY05jnutNIKx0z6/8vGvsgYCIKBkTxh9mXqk4IR38=";
diff --git a/pkgs/tools/security/bkcrack/default.nix b/pkgs/tools/security/bkcrack/default.nix
index e2ed76743c4c..6345cbdc9602 100644
--- a/pkgs/tools/security/bkcrack/default.nix
+++ b/pkgs/tools/security/bkcrack/default.nix
@@ -2,22 +2,20 @@
 , stdenv
 , fetchFromGitHub
 , cmake
-, openmp
 }:
 
 stdenv.mkDerivation rec {
   pname = "bkcrack";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "kimci86";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-iyx4mOTr6MHECk9S9zrIAE5pt+cxWnOKS7iQPUyWfzs=";
+    hash = "sha256-VfPRX9lOPyen8CujiBtTCbD5e7xd9X2OQ1uZ6JWKwtY=";
   };
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ openmp ];
 
   postInstall = ''
     mkdir -p $out/bin $out/share/licenses/bkcrack
diff --git a/pkgs/tools/security/browserpass/default.nix b/pkgs/tools/security/browserpass/default.nix
index 73c40a718c28..1dd2a27f1ec3 100644
--- a/pkgs/tools/security/browserpass/default.nix
+++ b/pkgs/tools/security/browserpass/default.nix
@@ -55,7 +55,8 @@ buildGoModule rec {
 
     # This path is used by our firefox wrapper for finding native messaging hosts
     mkdir -p $out/lib/mozilla/native-messaging-hosts
-    ln -s $out/lib/browserpass/hosts/firefox/*.json $out/lib/mozilla/native-messaging-hosts
+    # Copy ff manifests rather than linking to allow link-farming to work recursively in dependants
+    cp $out/lib/browserpass/hosts/firefox/*.json $out/lib/mozilla/native-messaging-hosts/
   '';
 
   passthru.tests.version = testers.testVersion {
diff --git a/pkgs/tools/security/cdxgen/default.nix b/pkgs/tools/security/cdxgen/default.nix
index 162ef7abb642..dae4cadce6b3 100644
--- a/pkgs/tools/security/cdxgen/default.nix
+++ b/pkgs/tools/security/cdxgen/default.nix
@@ -5,16 +5,16 @@
 
 buildNpmPackage rec {
   pname = "cdxgen";
-  version = "9.10.2";
+  version = "10.0.3";
 
   src = fetchFromGitHub {
     owner = "AppThreat";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-d4abSPP0dLi5xzq1CYxi1MSKogrQ+YcZjmlUEr5+oBQ=";
+    sha256 = "sha256-YdMJPYRXH1OEMYcb7Erl0++bCMu90hlBSEMf5vL1/Ss=";
   };
 
-  npmDepsHash = "sha256-KLI6wJrP2s2UWkSC5zmFuC2sa2owRgAhnR4UVrI0ThY=";
+  npmDepsHash = "sha256-RmAxOQ7fvZXVgcexKWgHUmUd7qhQZ683Wo5pazsCUOU=";
 
   dontNpmBuild = true;
 
diff --git a/pkgs/tools/security/cie-middleware-linux/default.nix b/pkgs/tools/security/cie-middleware-linux/default.nix
index fa5ec2d2af83..9982da5ae896 100644
--- a/pkgs/tools/security/cie-middleware-linux/default.nix
+++ b/pkgs/tools/security/cie-middleware-linux/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , lib
 , fetchFromGitHub
+, fetchpatch
 , makeWrapper
 , strip-nondeterminism
 , meson
@@ -92,6 +93,15 @@ stdenv.mkDerivation {
     libxml2
   ];
 
+  patches = [
+    # Fix gcc-13 build by adding missing include.
+    (fetchpatch {
+      name = "gcc-13.patch";
+      url = "https://github.com/M0Rf30/cie-middleware-linux/commit/1da1196152f7a3bbe92ba3ce993ebb6785ff049e.patch";
+      hash = "sha256-aM23A1ZX8kebgX6RXVS78SEa+to93glUmIYO+lfUzfg=";
+    })
+  ];
+
   postPatch = ''
     # substitute the cieid command with this $out/bin/cieid
     substituteInPlace libs/pkcs11/src/CSP/AbilitaCIE.cpp \
diff --git a/pkgs/tools/security/cloudfox/default.nix b/pkgs/tools/security/cloudfox/default.nix
index 6b1d7870c699..07b6a546dc2f 100644
--- a/pkgs/tools/security/cloudfox/default.nix
+++ b/pkgs/tools/security/cloudfox/default.nix
@@ -5,16 +5,21 @@
 
 buildGoModule rec {
   pname = "cloudfox";
-  version = "1.13.0";
+  version = "1.13.2";
 
   src = fetchFromGitHub {
     owner = "BishopFox";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-4donwh7yG7R4+k+ydGto2CZclnM95qodQuL1Huu4GDo=";
+    hash = "sha256-kklFn8HDMwsOjS0KDrWznGazE7RZtk0crxYEE3RuH8s=";
   };
 
-  vendorHash = "sha256-RdcfAZVqCp+egLbgx1c/A/zk0YlBY6aeeq0Lv4cLivY=";
+  vendorHash = "sha256-qPIMmyKTmZEmxlLLftRMnBXvo22WFROYlCAAsAb7jDg=";
+
+  ldflags = [
+    "-w"
+    "-s"
+  ];
 
   # Some tests are failing because of wrong filename/path
   doCheck = false;
diff --git a/pkgs/tools/security/cloudhunter/default.nix b/pkgs/tools/security/cloudhunter/default.nix
index 109bd5a9df7a..206879d53759 100644
--- a/pkgs/tools/security/cloudhunter/default.nix
+++ b/pkgs/tools/security/cloudhunter/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "cloudhunter";
-  version = "0.7.0";
+  version = "0.7.1";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "belane";
     repo = "CloudHunter";
     rev = "refs/tags/v${version}";
-    hash = "sha256-yRl3x1dboOcoPeKxpUEhDk8OJx1hynEJRHL9/Su8OyA=";
+    hash = "sha256-7iT4vr0kcNXEyJJdBbJsllIcbZRGY3T5t/FjEONkuq0=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/security/cnquery/default.nix b/pkgs/tools/security/cnquery/default.nix
index 158629f1cd10..bc008a877e56 100644
--- a/pkgs/tools/security/cnquery/default.nix
+++ b/pkgs/tools/security/cnquery/default.nix
@@ -5,18 +5,18 @@
 
 buildGoModule rec {
   pname = "cnquery";
-  version = "9.13.0";
+  version = "10.1.4";
 
   src = fetchFromGitHub {
     owner = "mondoohq";
     repo = "cnquery";
     rev = "v${version}";
-    hash = "sha256-jJayS4zGnbQBY/Z7rk4Xx0nHjCdAYCDs/FDYPVBxcqE=";
+    hash = "sha256-JQg1tQs+WojtSweA+tP37LqKH8l+CkTEwvoTjKwg3S0=";
   };
 
   subPackages = [ "apps/cnquery" ];
 
-  vendorHash = "sha256-AHVmvmTn2MlL+aVBUQs4PA3k8w9/QQRD57DvSpSq09I=";
+  vendorHash = "sha256-+tKz2Zy+tmqOVj9NoYe5lfqmzgBxVkNJOh4/9o9XfmY=";
 
   meta = with lib; {
     description = "cloud-native, graph-based asset inventory";
diff --git a/pkgs/tools/security/cnspec/default.nix b/pkgs/tools/security/cnspec/default.nix
index 2eee5568fea4..43fcb0331254 100644
--- a/pkgs/tools/security/cnspec/default.nix
+++ b/pkgs/tools/security/cnspec/default.nix
@@ -5,17 +5,17 @@
 
 buildGoModule rec {
   pname = "cnspec";
-  version = "9.14.0";
+  version = "10.1.4";
 
   src = fetchFromGitHub {
     owner = "mondoohq";
     repo = "cnspec";
     rev = "refs/tags/v${version}";
-    hash = "sha256-9MIIxWfETi2DX1DYPALL+JoC4r3yKJpeSFIx+hrGKiM=";
+    hash = "sha256-8dwsCDHBxJzGqexjtWsijZkERz69ew1ISeU86UALzMk=";
   };
 
   proxyVendor = true;
-  vendorHash = "sha256-Yii2sDfYqIzQAUaMotT87Wa5g3skxWllq6yGlkPDbLg=";
+  vendorHash = "sha256-nrK0XwCrLFLgHWGtG0UrjqQPwoeOGWvxy+AnHZmkacM=";
 
   subPackages = [
     "apps/cnspec"
diff --git a/pkgs/tools/security/commix/default.nix b/pkgs/tools/security/commix/default.nix
index 94290619f0f3..b4c16376d8da 100644
--- a/pkgs/tools/security/commix/default.nix
+++ b/pkgs/tools/security/commix/default.nix
@@ -5,16 +5,26 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "commix";
-  version = "3.8";
-  format = "setuptools";
+  version = "3.9";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "commixproject";
-    repo = pname;
+    repo = "commix";
     rev = "refs/tags/v${version}";
-    hash = "sha256-S/2KzZb3YUF0VJharWV/+7IG+r1EnB2sOveMpd1ryEI=";
+    hash = "sha256-HX+gEL9nmq9R1GFw8xQaa7kBmW7R0IepitM08bIf3vY=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace-warn "-stable" ""
+  '';
+
+
+  nativeBuildInputs = with python3.pkgs; [
+    setuptools
+  ];
+
   postInstall = ''
     # Helper files are not handled by setup.py
     mkdir -p $out/${python3.sitePackages}/src/txt
diff --git a/pkgs/tools/security/cosign/default.nix b/pkgs/tools/security/cosign/default.nix
index 0cdf5b0839ea..072b8e4ffb52 100644
--- a/pkgs/tools/security/cosign/default.nix
+++ b/pkgs/tools/security/cosign/default.nix
@@ -13,13 +13,13 @@
 }:
 buildGoModule rec {
   pname = "cosign";
-  version = "2.2.2";
+  version = "2.2.3";
 
   src = fetchFromGitHub {
     owner = "sigstore";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-QZWF0ysZFu3rt8dIXb5uddyDhT2FfWUyder8YR2BtQc=";
+    hash = "sha256-+y79Uml1TvKypbwcWkZZF415qUPPfieP5pKHO+APjPE=";
   };
 
   buildInputs =
@@ -28,7 +28,7 @@ buildGoModule rec {
 
   nativeBuildInputs = [ pkg-config installShellFiles ];
 
-  vendorHash = "sha256-WeNRg3Nw2b6NiV8z7tGZIlWUHZxXuTG7MPF9DgfdmUQ=";
+  vendorHash = "sha256-udMnSdXBjlDQlQRzhhLBDBcHwREkEev0uLIVjT8BbuU=";
 
   subPackages = [
     "cmd/cosign"
diff --git a/pkgs/tools/security/crackmapexec/default.nix b/pkgs/tools/security/crackmapexec/default.nix
index 85b987d78c7c..7db3c804f911 100644
--- a/pkgs/tools/security/crackmapexec/default.nix
+++ b/pkgs/tools/security/crackmapexec/default.nix
@@ -35,7 +35,7 @@ python3.pkgs.buildPythonApplication rec {
     pypsrp
     pywerview
     requests
-    requests_ntlm
+    requests-ntlm
     termcolor
     terminaltables
     xmltodict
diff --git a/pkgs/tools/security/creds/default.nix b/pkgs/tools/security/creds/default.nix
index 9f218f89bdd9..2f2962616d7c 100644
--- a/pkgs/tools/security/creds/default.nix
+++ b/pkgs/tools/security/creds/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "creds";
-  version = "0.5";
+  version = "0.5.2";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "ihebski";
     repo = "DefaultCreds-cheat-sheet";
-    rev = "refs/tags/creds-${version}";
-    hash = "sha256-s9ja2geFTnul7vUlGI4Am+IG3C0igICf0whnyd3SHdQ=";
+    rev = "refs/tags/creds-v${version}";
+    hash = "sha256-CtwGSF3EGcPqL49paNRCsB2qxYjKpCLqyRsC67nAyVk=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/security/crowdsec/default.nix b/pkgs/tools/security/crowdsec/default.nix
index ed97dd98c03d..f9428bdd3170 100644
--- a/pkgs/tools/security/crowdsec/default.nix
+++ b/pkgs/tools/security/crowdsec/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "crowdsec";
-  version = "1.5.5";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "crowdsecurity";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-dE2PeYyC75y9dc84QdhQ6xaLMPdPWtPDse2sY5bFGwU=";
+    hash = "sha256-5jK+f6IFPhGit+jxkSLTcWN1+nJRQaCZKpWZYId+2bk=";
   };
 
-  vendorHash = "sha256-hvandF9LPh1g4zIgmNIyId2YhqHU4RPKHGCtJI9aoPk=";
+  vendorHash = "sha256-tUvFT+rE58yxNJGhqqwSG0GlGushkUpngxLkmyjjFFY=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/security/cyclonedx-gomod/default.nix b/pkgs/tools/security/cyclonedx-gomod/default.nix
index d4c9a4b6b465..1a00303ac96f 100644
--- a/pkgs/tools/security/cyclonedx-gomod/default.nix
+++ b/pkgs/tools/security/cyclonedx-gomod/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "cyclonedx-gomod";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "CycloneDX";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-whAHZDUQBJaYu+OZiqcYzWxOru1GXDQ4FMDCj+ngCDs=";
+    hash = "sha256-3YHlh7edRWU8plAJh96RDkrC9YUQjvV4vNGOxmbS0sA=";
   };
 
-  vendorHash = "sha256-FpsZonGJSzbAsnM00qq/qiTJLUN4q08dR+6rhTKvX0I=";
+  vendorHash = "sha256-0Fx9pOofcY5rpX6DU2xPeg7xEZ8ows/DWwyV5B7LHGY=";
 
   # Tests require network access and cyclonedx executable
   doCheck = false;
diff --git a/pkgs/tools/security/dalfox/default.nix b/pkgs/tools/security/dalfox/default.nix
index 8c72a93d340f..b41ca04f7798 100644
--- a/pkgs/tools/security/dalfox/default.nix
+++ b/pkgs/tools/security/dalfox/default.nix
@@ -5,16 +5,21 @@
 
 buildGoModule rec {
   pname = "dalfox";
-  version = "2.9.1";
+  version = "2.9.2";
 
   src = fetchFromGitHub {
     owner = "hahwul";
-    repo = pname;
+    repo = "dalfox";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-7wSmPmS8m+rYhYlREzKlPUiUfDvru9zwFFvSCDq6JY8=";
+    hash = "sha256-sKW6UYSPgXkZbLiOeYru/XpG/Cpvvhwos6Z5J/WxjXo=";
   };
 
-  vendorHash = "sha256-W+37EL3e7G+U0EZUDuVqjZpfIf5+HcirH8NVsC+1NvA=";
+  vendorHash = "sha256-0eNaH82iCmxaie+nA9qxEWb8Uq6LaEQoU9wRFJ+GFv0=";
+
+  ldflags = [
+    "-w"
+    "-s"
+  ];
 
   # Tests require network access
   doCheck = false;
diff --git a/pkgs/tools/security/deepsecrets/default.nix b/pkgs/tools/security/deepsecrets/default.nix
index 09c8aac926b8..c509311f3a6d 100644
--- a/pkgs/tools/security/deepsecrets/default.nix
+++ b/pkgs/tools/security/deepsecrets/default.nix
@@ -6,7 +6,7 @@
 python3.pkgs.buildPythonApplication rec {
   pname = "deepsecrets";
   version = "1.0.6";
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "avito-tech";
@@ -17,9 +17,9 @@ python3.pkgs.buildPythonApplication rec {
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace 'pyyaml = "^5.4.1"' 'pyyaml = "*"' \
-      --replace 'regex = "^2023.3.23"' 'regex = "*"' \
-      --replace 'mmh3 = "^3.0.0"' 'mmh3 = "*"'
+      --replace-warn 'pyyaml = "^5.4.1"' 'pyyaml = "*"' \
+      --replace-warn 'regex = "^2023.3.23"' 'regex = "*"' \
+      --replace-warn 'mmh3 = "^3.0.0"' 'mmh3 = "*"'
   '';
 
   nativeBuildInputs = with python3.pkgs; [
@@ -30,7 +30,7 @@ python3.pkgs.buildPythonApplication rec {
     dotwiz
     mmh3
     ordered-set
-    pydantic
+    pydantic_1
     pygments
     pyyaml
     regex
diff --git a/pkgs/tools/security/echidna/default.nix b/pkgs/tools/security/echidna/default.nix
index 10caf5bb82eb..7f503acd6f0b 100644
--- a/pkgs/tools/security/echidna/default.nix
+++ b/pkgs/tools/security/echidna/default.nix
@@ -7,63 +7,34 @@
 , slither-analyzer
 }:
 
-let haskellPackagesOverride = haskellPackages.override {
-      overrides = self: super: {
-        # following the revision specified in echidna/stack.yaml
-        # TODO: 0.51.3 is not in haskellPackages yet
-        hevm = haskell.lib.overrideCabal super.hevm (oa: {
-          version = "0.51.3";
-          src = fetchFromGitHub {
-            owner = "ethereum";
-            repo = "hevm";
-            rev = "release/0.51.3";
-            hash = "sha256-H6oURBGoQWSOuPhBB+UKg2UarVzXgv1tmfDBLnOtdhU=";
-          };
-          libraryHaskellDepends = oa.libraryHaskellDepends
-                                  ++ (with haskellPackages;[githash witch tuple]);
-        });
-      };
-    };
-in mkDerivation rec {
+mkDerivation rec {
   pname = "echidna";
-  version = "2.2.1";
+  version = "2.2.2";
 
   src = fetchFromGitHub {
     owner = "crytic";
     repo = "echidna";
     rev = "v${version}";
-    sha256 = "sha256-5d9ttPR3rRHywBeLM85EGCEZLNZNZzOAhIN6AJToJyI=";
+    sha256 = "sha256-l1ILdO+xb0zx/TFM6Am9j5hq1RnIMNf2HU6YvslAj0w=";
   };
 
-  # Note: pending PR https://github.com/crytic/echidna/pull/1096
-  patches = [
-     (fetchpatch {
-       name = "brick-1.9-update";
-       url = "https://github.com/crytic/echidna/pull/1096/commits/36657d54943727e569691a6b3d85b83130480a2e.patch";
-       sha256 = "sha256-AOmB/fAZCF7ruXW1HusRe7wWWsLyMCWw+j3qIPARIAc=";
-     })
-  ];
-
   isLibrary = true;
   isExecutable = true;
 
-  libraryToolDepends = with haskellPackagesOverride; [
+  libraryToolDepends = with haskellPackages; [
     haskellPackages.hpack
   ];
 
-  # Note: This can be extracted from package.yaml of echidna, the list is shorter because some are transitive.
-  executableHaskellDepends = with haskellPackagesOverride;
-    [aeson base base16-bytestring binary brick bytestring code-page containers data-dword data-has directory exceptions extra
-     filepath hashable hevm html-conduit html-entities http-conduit lens ListLike MonadRandom mtl optics optparse-applicative
-     process random semver text transformers unix unliftio unordered-containers vector vector-instances vty with-utf8
-     xml-conduit yaml];
+  executableHaskellDepends = with haskellPackages; [ aeson base base16-bytestring binary bytestring code-page
+  containers data-bword data-dword deepseq directory exceptions extra filepath hashable hevm html-conduit html-entities
+  http-conduit ListLike MonadRandom mtl optics optics-core optparse-applicative process random rosezipper semver split
+  strip-ansi-escape text time transformers unliftio utf8-string vector wai-extra warp with-utf8 word-wrap xml-conduit
+  yaml ];
 
   # Note: there is also a runtime dependency of slither-analyzer, let's include it also.
   executableSystemDepends = [ slither-analyzer ];
 
-  testHaskellDepends = with haskellPackagesOverride; [
-    tasty tasty-hunit tasty-quickcheck
-  ];
+  testHaskellDepends = with haskellPackages; [ tasty tasty-hunit tasty-quickcheck ];
 
   preConfigure = ''
     hpack
diff --git a/pkgs/tools/security/eid-mw/default.nix b/pkgs/tools/security/eid-mw/default.nix
index e399974b4c6e..b7cae61ad2c7 100644
--- a/pkgs/tools/security/eid-mw/default.nix
+++ b/pkgs/tools/security/eid-mw/default.nix
@@ -21,13 +21,13 @@
 stdenv.mkDerivation rec {
   pname = "eid-mw";
   # NOTE: Don't just blindly update to the latest version/tag. Releases are always for a specific OS.
-  version = "5.1.11";
+  version = "5.1.15";
 
   src = fetchFromGitHub {
     owner = "Fedict";
     repo = "eid-mw";
     rev = "v${version}";
-    hash = "sha256-70UjfkH+rx1Q+2XEuAByoDsP5ZelyuGXaHdkjTe/sCY=";
+    hash = "sha256-balyAdQO8aZ9wGYerPUDxgBWGG7Ya2eIyo6UX62M4SI=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/security/exploitdb/default.nix b/pkgs/tools/security/exploitdb/default.nix
index 0e2e74d0787f..a1385f4b1e78 100644
--- a/pkgs/tools/security/exploitdb/default.nix
+++ b/pkgs/tools/security/exploitdb/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "exploitdb";
-  version = "2023-12-22";
+  version = "2024-02-03";
 
   src = fetchFromGitLab {
     owner = "exploit-database";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-NuukzG+l83YhIgVASLKCkE3FrS6+z8uURTxZyhT/RuA=";
+    hash = "sha256-TS7VyKw3hGT06ARLfyw6P/KnApPkl8+oHv15k5Imi6U=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/security/faraday-cli/default.nix b/pkgs/tools/security/faraday-cli/default.nix
index cebe1540c605..b0ee2015555c 100644
--- a/pkgs/tools/security/faraday-cli/default.nix
+++ b/pkgs/tools/security/faraday-cli/default.nix
@@ -5,16 +5,20 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "faraday-cli";
-  version = "2.1.9";
-  format = "setuptools";
+  version = "2.1.10";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "infobyte";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-8D1oYYqf0R41DPYtorcvykZ99p6P6Diwe7PgEN378pU=";
+    hash = "sha256-7Yg2m0xHpBPZ58gJodSYO8vXaxSlr4GK1Lin63WozOE=";
   };
 
+  nativeBuildInputs = with python3.pkgs; [
+    setuptools
+  ];
+
   propagatedBuildInputs = with python3.pkgs; [
     arrow
     click
diff --git a/pkgs/tools/security/frida-tools/default.nix b/pkgs/tools/security/frida-tools/default.nix
index c38d4edbb6ab..9a3bdee5dae2 100644
--- a/pkgs/tools/security/frida-tools/default.nix
+++ b/pkgs/tools/security/frida-tools/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "frida-tools";
-  version = "12.1.2";
+  version = "12.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-9SlDyp1fLOzLqu6sxVqY2jwEzQjrnbzfQXIRoyviPJY=";
+    hash = "sha256-jtxn0a43kv9bLcY1CM3k0kf5K30Ne/FT10ohptWNwEU=";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/tools/security/ghauri/default.nix b/pkgs/tools/security/ghauri/default.nix
index fb230dc68d27..6e7ddeb3cd96 100644
--- a/pkgs/tools/security/ghauri/default.nix
+++ b/pkgs/tools/security/ghauri/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "ghauri";
-  version = "1.1.8";
+  version = "1.3";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "r0oth3x49";
     repo = "ghauri";
     rev = "refs/tags/${version}";
-    hash = "sha256-WEWiWu8U7DmRjj42BEBXA3CHTyJh2Apz59ImFrmQXEk=";
+    hash = "sha256-CZhkb8GmXXSA5QqhW7IAirwsxQg6YNFT3RHrGsyqAbk=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/security/gitleaks/default.nix b/pkgs/tools/security/gitleaks/default.nix
index 7fc15a3fb2b1..f1702e4468b5 100644
--- a/pkgs/tools/security/gitleaks/default.nix
+++ b/pkgs/tools/security/gitleaks/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "gitleaks";
-  version = "8.18.1";
+  version = "8.18.2";
 
   src = fetchFromGitHub {
     owner = "zricethezav";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-v0d/ulxYJRkyyhVctnQjKW2ODWtu+gSwp/qSkVLQ1Jo=";
+    hash = "sha256-+UPlknAwmIeXlosHBXl3qPREV186lfDZGZG/Zx1rxYs=";
   };
 
-  vendorHash = "sha256-lPfvoeHPYWSnFPuAR9CxG6+pQ++cZEw/jYuGgDrm57E=";
+  vendorHash = "sha256-30IJNP4XuV2YNy1TumPUju+GrHFBYi76coy0bJBqDI4=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/security/gnupg/24-revert-rfc4880bis-defaults.patch b/pkgs/tools/security/gnupg/24-revert-rfc4880bis-defaults.patch
new file mode 100644
index 000000000000..8bc65ede79c0
--- /dev/null
+++ b/pkgs/tools/security/gnupg/24-revert-rfc4880bis-defaults.patch
@@ -0,0 +1,200 @@
+From 1e4f1550996334d2a631a5d769e937d29ace47bb Mon Sep 17 00:00:00 2001
+From: Jakub Jelen <jjelen@redhat.com>
+Date: Thu, 9 Feb 2023 16:38:58 +0100
+Subject: [PATCH gnupg] Revert the introduction of the RFC4880bis draft into
+ defaults
+
+This reverts commit 4583f4fe2 (gpg: Merge --rfc4880bis features into
+--gnupg, 2022-10-31).
+---
+ g10/gpg.c    | 35 ++++++++++++++++++++++++++++++++---
+ g10/keygen.c | 30 ++++++++++++++++++------------
+ 2 files changed, 50 insertions(+), 15 deletions(-)
+
+diff --git a/g10/gpg.c b/g10/gpg.c
+index dcab0a11a..796888013 100644
+--- a/g10/gpg.c
++++ b/g10/gpg.c
+@@ -247,6 +247,7 @@ enum cmd_and_opt_values
+     oGnuPG,
+     oRFC2440,
+     oRFC4880,
++    oRFC4880bis,
+     oOpenPGP,
+     oPGP7,
+     oPGP8,
+@@ -636,6 +637,7 @@ static gpgrt_opt_t opts[] = {
+   ARGPARSE_s_n (oGnuPG, "no-pgp8", "@"),
+   ARGPARSE_s_n (oRFC2440, "rfc2440", "@"),
+   ARGPARSE_s_n (oRFC4880, "rfc4880", "@"),
++  ARGPARSE_s_n (oRFC4880bis, "rfc4880bis", "@"),
+   ARGPARSE_s_n (oOpenPGP, "openpgp", N_("use strict OpenPGP behavior")),
+   ARGPARSE_s_n (oPGP7, "pgp6", "@"),
+   ARGPARSE_s_n (oPGP7, "pgp7", "@"),
+@@ -978,7 +980,6 @@ static gpgrt_opt_t opts[] = {
+   ARGPARSE_s_n (oNoop, "no-allow-multiple-messages", "@"),
+   ARGPARSE_s_s (oNoop, "aead-algo", "@"),
+   ARGPARSE_s_s (oNoop, "personal-aead-preferences","@"),
+-  ARGPARSE_s_n (oNoop, "rfc4880bis", "@"),
+   ARGPARSE_s_n (oNoop, "override-compliance-check", "@"),
+ 
+ 
+@@ -2227,7 +2228,7 @@ static struct gnupg_compliance_option compliance_options[] =
+   {
+     { "gnupg",      oGnuPG },
+     { "openpgp",    oOpenPGP },
+-    { "rfc4880bis", oGnuPG },
++    { "rfc4880bis", oRFC4880bis },
+     { "rfc4880",    oRFC4880 },
+     { "rfc2440",    oRFC2440 },
+     { "pgp6",       oPGP7 },
+@@ -2243,8 +2244,28 @@ static struct gnupg_compliance_option compliance_options[] =
+ static void
+ set_compliance_option (enum cmd_and_opt_values option)
+ {
++  opt.flags.rfc4880bis = 0;  /* Clear because it is initially set.  */
++
+   switch (option)
+     {
++    case oRFC4880bis:
++      opt.flags.rfc4880bis = 1;
++      opt.compliance = CO_RFC4880;
++      opt.flags.dsa2 = 1;
++      opt.flags.require_cross_cert = 1;
++      opt.rfc2440_text = 0;
++      opt.allow_non_selfsigned_uid = 1;
++      opt.allow_freeform_uid = 1;
++      opt.escape_from = 1;
++      opt.not_dash_escaped = 0;
++      opt.def_cipher_algo = 0;
++      opt.def_digest_algo = 0;
++      opt.cert_digest_algo = 0;
++      opt.compress_algo = -1;
++      opt.s2k_mode = 3; /* iterated+salted */
++      opt.s2k_digest_algo = DIGEST_ALGO_SHA256;
++      opt.s2k_cipher_algo = CIPHER_ALGO_AES256;
++      break;
+     case oOpenPGP:
+     case oRFC4880:
+       /* This is effectively the same as RFC2440, but with
+@@ -2288,6 +2309,7 @@ set_compliance_option (enum cmd_and_opt_values option)
+     case oPGP8:  opt.compliance = CO_PGP8;  break;
+     case oGnuPG:
+       opt.compliance = CO_GNUPG;
++      opt.flags.rfc4880bis = 1;
+       break;
+ 
+     case oDE_VS:
+@@ -2491,6 +2513,7 @@ main (int argc, char **argv)
+     opt.emit_version = 0;
+     opt.weak_digests = NULL;
+     opt.compliance = CO_GNUPG;
++    opt.flags.rfc4880bis = 1;
+ 
+     /* Check special options given on the command line.  */
+     orig_argc = argc;
+@@ -3033,6 +3056,7 @@ main (int argc, char **argv)
+           case oOpenPGP:
+           case oRFC2440:
+           case oRFC4880:
++          case oRFC4880bis:
+           case oPGP7:
+           case oPGP8:
+           case oGnuPG:
+@@ -3862,6 +3886,11 @@ main (int argc, char **argv)
+     if( may_coredump && !opt.quiet )
+ 	log_info(_("WARNING: program may create a core file!\n"));
+ 
++    if (!opt.flags.rfc4880bis)
++      {
++        opt.mimemode = 0; /* This will use text mode instead.  */
++      }
++
+     if (eyes_only) {
+       if (opt.set_filename)
+ 	  log_info(_("WARNING: %s overrides %s\n"),
+@@ -4078,7 +4107,7 @@ main (int argc, char **argv)
+     /* Check our chosen algorithms against the list of legal
+        algorithms. */
+ 
+-    if(!GNUPG)
++    if(!GNUPG && !opt.flags.rfc4880bis)
+       {
+ 	const char *badalg=NULL;
+ 	preftype_t badtype=PREFTYPE_NONE;
+diff --git a/g10/keygen.c b/g10/keygen.c
+index a2cfe3ccf..2a1dd1f81 100644
+--- a/g10/keygen.c
++++ b/g10/keygen.c
+@@ -404,7 +404,7 @@ keygen_set_std_prefs (const char *string,int personal)
+ 	      strcat(dummy_string,"S7 ");
+ 	    strcat(dummy_string,"S2 "); /* 3DES */
+ 
+-            if (!openpgp_aead_test_algo (AEAD_ALGO_OCB))
++            if (opt.flags.rfc4880bis && !openpgp_aead_test_algo (AEAD_ALGO_OCB))
+ 	      strcat(dummy_string,"A2 ");
+ 
+             if (personal)
+@@ -889,7 +889,7 @@ keygen_upd_std_prefs (PKT_signature *sig, void *opaque)
+   /* Make sure that the MDC feature flag is set if needed.  */
+   add_feature_mdc (sig,mdc_available);
+   add_feature_aead (sig, aead_available);
+-  add_feature_v5 (sig, 1);
++  add_feature_v5 (sig, opt.flags.rfc4880bis);
+   add_keyserver_modify (sig,ks_modify);
+   keygen_add_keyserver_url(sig,NULL);
+ 
+@@ -3382,7 +3382,10 @@ parse_key_parameter_part (ctrl_t ctrl,
+                 }
+             }
+           else if (!ascii_strcasecmp (s, "v5"))
+-            keyversion = 5;
++            {
++              if (opt.flags.rfc4880bis)
++                keyversion = 5;
++            }
+           else if (!ascii_strcasecmp (s, "v4"))
+             keyversion = 4;
+           else
+@@ -3641,7 +3644,7 @@ parse_key_parameter_part (ctrl_t ctrl,
+  *   ecdsa := Use algorithm ECDSA.
+  *   eddsa := Use algorithm EdDSA.
+  *   ecdh  := Use algorithm ECDH.
+- *   v5    := Create version 5 key
++ *   v5    := Create version 5 key (requires option --rfc4880bis)
+  *
+  * There are several defaults and fallbacks depending on the
+  * algorithm.  PART can be used to select which part of STRING is
+@@ -4513,9 +4516,9 @@ read_parameter_file (ctrl_t ctrl, const char *fname )
+ 	    }
+ 	}
+ 
+-        if ((keywords[i].key == pVERSION
+-             || keywords[i].key == pSUBVERSION))
+-          ; /* Ignore version.  */
++        if (!opt.flags.rfc4880bis && (keywords[i].key == pVERSION
++                                      || keywords[i].key == pSUBVERSION))
++          ; /* Ignore version unless --rfc4880bis is active.  */
+         else
+           {
+             r = xmalloc_clear( sizeof *r + strlen( value ) );
+@@ -4610,11 +4613,14 @@ quickgen_set_para (struct para_data_s *para, int for_subkey,
+       para = r;
+     }
+ 
+-  r = xmalloc_clear (sizeof *r + 20);
+-  r->key = for_subkey? pSUBVERSION : pVERSION;
+-  snprintf (r->u.value, 20, "%d", version);
+-  r->next = para;
+-  para = r;
++  if (opt.flags.rfc4880bis)
++    {
++      r = xmalloc_clear (sizeof *r + 20);
++      r->key = for_subkey? pSUBVERSION : pVERSION;
++      snprintf (r->u.value, 20, "%d", version);
++      r->next = para;
++      para = r;
++    }
+ 
+   if (keytime)
+     {
diff --git a/pkgs/tools/security/gnupg/24.nix b/pkgs/tools/security/gnupg/24.nix
index 2f5c6e2ce428..49beed63b53a 100644
--- a/pkgs/tools/security/gnupg/24.nix
+++ b/pkgs/tools/security/gnupg/24.nix
@@ -13,11 +13,11 @@ assert guiSupport -> enableMinimal == false;
 
 stdenv.mkDerivation rec {
   pname = "gnupg";
-  version = "2.4.1";
+  version = "2.4.3";
 
   src = fetchurl {
     url = "mirror://gnupg/gnupg/${pname}-${version}.tar.bz2";
-    hash = "sha256-drceWutEO/2RDOnLyCgbYXyDQWh6+2e65FWHeXK1neg=";
+    hash = "sha256-onGubXMvb02AwlitnuiN2clMj9wzw+RTKMTXwSa9IZ0=";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
     ./tests-add-test-cases-for-import-without-uid.patch
     ./accept-subkeys-with-a-good-revocation-but-no-self-sig.patch
     ./24-allow-import-of-previously-known-keys-even-without-UI.patch
+    ./24-revert-rfc4880bis-defaults.patch
     # Patch for DoS vuln from https://seclists.org/oss-sec/2022/q3/27
     ./v3-0001-Disallow-compressed-signatures-and-certificates.patch
   ];
diff --git a/pkgs/tools/security/go-dork/default.nix b/pkgs/tools/security/go-dork/default.nix
index d5b999d96990..a92f8957e3ad 100644
--- a/pkgs/tools/security/go-dork/default.nix
+++ b/pkgs/tools/security/go-dork/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "go-dork";
-  version = "1.0.2";
+  version = "1.0.3";
 
   src = fetchFromGitHub {
     owner = "dwisiswant0";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-tFmXutX3UnKAFFS4mO4PCv7Bhw1wJ7qjdA1ROryqYZU=";
+    hash = "sha256-Q7ECwXH9q6qWba2URh3LjMx8g6vPF1DWfKnmXej7ht4=";
   };
 
   vendorHash = "sha256-6V58RRRPamBMDAf0gg4sQMQkoD5dWauCFtPrwf5EasI=";
diff --git a/pkgs/tools/security/gotestwaf/default.nix b/pkgs/tools/security/gotestwaf/default.nix
index 78ba5e06e4b9..8ed30a7fc78b 100644
--- a/pkgs/tools/security/gotestwaf/default.nix
+++ b/pkgs/tools/security/gotestwaf/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "gotestwaf";
-  version = "0.4.9";
+  version = "0.4.11";
 
   src = fetchFromGitHub {
     owner = "wallarm";
-    repo = pname;
+    repo = "gotestwaf";
     rev = "refs/tags/v${version}";
-    hash = "sha256-fBmn+p5uVGnI4lyL12cX4S8eda79k2Y0RPQG9iZQs2Q=";
+    hash = "sha256-xvlzSBvOM09b/m4gI1sbIpIlFJnXQL0G4xet/AL3Yxo=";
   };
 
   vendorHash = null;
@@ -22,6 +22,8 @@ buildGoModule rec {
   doCheck = false;
 
   ldflags = [
+    "-w"
+    "-s"
     "-X=github.com/wallarm/gotestwaf/internal/version.Version=v${version}"
   ];
 
diff --git a/pkgs/tools/security/govulncheck/default.nix b/pkgs/tools/security/govulncheck/default.nix
index 1b7ee6cf015d..7cf4589afce1 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.0.1";
+  version = "1.0.3";
 
   src = fetchFromGitHub {
     owner = "golang";
     repo = "vuln";
     rev = "refs/tags/v${version}";
-    hash = "sha256-cewQ03dK/k3mXevE09M01Yox/3ZWP6IrG0H4QsZMzy8=";
+    hash = "sha256-1x2hj4HD3KAo9w1QXh5qsWtcAM0Kly5u/DRd13Mqa5w=";
   };
 
   patches = [
@@ -23,7 +23,7 @@ buildGoModule rec {
     })
   ];
 
-  vendorHash = "sha256-r9XshbgVA5rppJF46SFYPad344ZHMLWTHTnL6vbIFH8=";
+  vendorHash = "sha256-Jg2Nx63Xak149111jbBP6SgK3hze21Dx5qcDKXCqa48=";
 
   subPackages = [
     "cmd/govulncheck"
diff --git a/pkgs/tools/security/gpg-tui/default.nix b/pkgs/tools/security/gpg-tui/default.nix
index 40869e825802..64a273784540 100644
--- a/pkgs/tools/security/gpg-tui/default.nix
+++ b/pkgs/tools/security/gpg-tui/default.nix
@@ -4,8 +4,6 @@
 , fetchFromGitHub
 , gpgme
 , libgpg-error
-, libxcb
-, libxkbcommon
 , pkg-config
 , python3
 , AppKit
@@ -13,6 +11,7 @@
 , libiconv
 , libobjc
 , libresolv
+, x11Support ? true, libxcb, libxkbcommon
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -38,6 +37,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [
     gpgme
     libgpg-error
+  ] ++ lib.optionals x11Support [
     libxcb
     libxkbcommon
   ] ++ lib.optionals stdenv.isDarwin [
diff --git a/pkgs/tools/security/graphw00f/default.nix b/pkgs/tools/security/graphw00f/default.nix
index caa7586d37f6..7f1d5ede3e71 100644
--- a/pkgs/tools/security/graphw00f/default.nix
+++ b/pkgs/tools/security/graphw00f/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "graphw00f";
-  version = "1.1.8";
+  version = "1.1.15";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "dolevf";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-stTCUHt9UCu1QuxDPB8a26LsrHNttyoVd0tmS7e2t2Y=";
+    hash = "sha256-wAymwT2PRyX7m/yh6BAa8YNkH7pE69bKHKZ15phuUJo=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/security/grype/default.nix b/pkgs/tools/security/grype/default.nix
index 188741bcf00c..dc48dd521506 100644
--- a/pkgs/tools/security/grype/default.nix
+++ b/pkgs/tools/security/grype/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "grype";
-  version = "0.74.1";
+  version = "0.74.4";
 
   src = fetchFromGitHub {
     owner = "anchore";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-/s23QSg4+reF+BTbbk1MXtUC0ytdgd8olaiUTqR7LqM=";
+    hash = "sha256-jBBiwsmQDbzay2C6uLM2uzPvTbD+3t8+jyBkEfHwohQ=";
     # 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 {
 
   proxyVendor = true;
 
-  vendorHash = "sha256-LNyYwnQhGZfsHrA02fHdXKRTJ83Xii3q//Tfrq3sLFc=";
+  vendorHash = "sha256-w0dqgyJvn7UZYoUII9jxTuiBOq+HENaQlxfP+rZdpS0=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/tools/security/hash-slinger/default.nix b/pkgs/tools/security/hash-slinger/default.nix
index 0f0eeeb6b2af..cb02b806a986 100644
--- a/pkgs/tools/security/hash-slinger/default.nix
+++ b/pkgs/tools/security/hash-slinger/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
   '';
 
   installPhase = ''
-    mkdir -p $out/bin $out/man $out/lib/${python3.libPrefix}/site-packages
+    mkdir -p $out/bin $out/man $out/${python3.sitePackages}
     make install
     wrapPythonPrograms
   '';
diff --git a/pkgs/tools/security/hfinger/default.nix b/pkgs/tools/security/hfinger/default.nix
index 2c584f35ff4f..8d3d7e25d33f 100644
--- a/pkgs/tools/security/hfinger/default.nix
+++ b/pkgs/tools/security/hfinger/default.nix
@@ -6,14 +6,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "hfinger";
-  version = "0.2.1";
+  version = "0.2.2";
   disabled = python3.pythonOlder "3.3";
 
   src = fetchFromGitHub {
     owner = "CERT-Polska";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-QKnrprDDBq+D8N1brkqgcfK4E+6ssvgPtRaSxkF0C84=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-gxwirAqtY4R3KDHyNmDIknABO+SFuoDua9nm1UyXbxA=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/security/httpx/default.nix b/pkgs/tools/security/httpx/default.nix
index b7dd4afd94f3..9667d1997a08 100644
--- a/pkgs/tools/security/httpx/default.nix
+++ b/pkgs/tools/security/httpx/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "httpx";
-  version = "1.3.8";
+  version = "1.3.9";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = "httpx";
     rev = "refs/tags/v${version}";
-    hash = "sha256-mHksSCOy0vF7YRg2Pu6r8VzA8YNP8JXTCd44QoGTyww=";
+    hash = "sha256-3k/3CJ+/17Ygj4N8KPRYiAT+QJx3RlQMNemFztKtTt4=";
   };
 
-  vendorHash = "sha256-TctifN2YhW5t+nuFVB1yPgOopLzQfgi5QIJitMlVPJc=";
+  vendorHash = "sha256-apTCSKWkAarAHDEVvyyRjBm5s5M2YDXP5bMITDLoq20=";
 
   subPackages = [
     "cmd/httpx"
diff --git a/pkgs/tools/security/isolate/default.nix b/pkgs/tools/security/isolate/default.nix
index ae975dc78ae9..4aa592029600 100644
--- a/pkgs/tools/security/isolate/default.nix
+++ b/pkgs/tools/security/isolate/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "isolate";
-  version = "1.10";
+  version = "1.10.1";
 
   src = fetchFromGitHub {
     owner = "ioi";
     repo = "isolate";
     rev = "v${version}";
-    hash = "sha256-fuv9HOw0XkRBRjwAp4b6LpoB5p7a+yo66AcT3B0yQUw=";
+    hash = "sha256-xY2omzqIJYElLtzj4byy/QG4pW4erCxc+cD2X9nA2jM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/security/keepwn/default.nix b/pkgs/tools/security/keepwn/default.nix
index 9720e14d7a50..bb856c80710b 100644
--- a/pkgs/tools/security/keepwn/default.nix
+++ b/pkgs/tools/security/keepwn/default.nix
@@ -6,20 +6,27 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "keepwn";
-  version = "0.1";
-  format = "setuptools";
+  version = "0.3";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "Orange-Cyberdefense";
     repo = "KeePwn";
     rev = "refs/tags/${version}";
-    hash = "sha256-s+r6QEUzkzCbs5j1G+PVgDx8cvnmQzEQ1MHAakG+skA=";
+    hash = "sha256-haKWuoTtyC9vIise+gznruHEwMIDz1W6euihLLKnSdc=";
   };
 
+  nativeBuildInputs = with python3.pkgs; [
+    setuptools
+  ];
+
   propagatedBuildInputs = with python3.pkgs; [
     chardet
     impacket
     lxml
+    pefile
+    pykeepass
+    python-magic
     termcolor
   ];
 
diff --git a/pkgs/tools/security/kube-bench/default.nix b/pkgs/tools/security/kube-bench/default.nix
index f4cb389eb16e..28b90f3d4bae 100644
--- a/pkgs/tools/security/kube-bench/default.nix
+++ b/pkgs/tools/security/kube-bench/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kube-bench";
-  version = "0.7.0";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-yJJEWxz8EWdLi2rhw42QVdG9AcGO0OWnihg153hALNE=";
+    hash = "sha256-EsUjGc7IIu5PK9KaODlQSfmm8jpjuBXvGZPNjSc1824=";
   };
 
-  vendorHash = "sha256-zKw6d3UWs2kb+DCXmLZ09Lw3m8wMhm9QJYkeXJYcFA8=";
+  vendorHash = "sha256-i4k7eworPUvLUustr5U53qizHqUVw8yqGjdPQT6UIf4=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/security/metasploit/Gemfile b/pkgs/tools/security/metasploit/Gemfile
index 3d10bb0bb51c..0227191fedeb 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.3.48"
+gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.3.53"
diff --git a/pkgs/tools/security/metasploit/Gemfile.lock b/pkgs/tools/security/metasploit/Gemfile.lock
index 899a80b10966..862a4d197782 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: 261eca342915db81d67cdfe7f2ef7b3788fd508f
-  ref: refs/tags/6.3.48
+  revision: 45efd21e748da75cc37d999dbfa3ec6c4fc4d0e9
+  ref: refs/tags/6.3.53
   specs:
-    metasploit-framework (6.3.48)
+    metasploit-framework (6.3.53)
       actionpack (~> 7.0.0)
       activerecord (~> 7.0.0)
       activesupport (~> 7.0.0)
@@ -35,7 +35,7 @@ GIT
       metasploit-concern
       metasploit-credential
       metasploit-model
-      metasploit-payloads (= 2.0.161)
+      metasploit-payloads (= 2.0.165)
       metasploit_data_models
       metasploit_payloads-mettle (= 1.0.26)
       mqtt
@@ -62,6 +62,7 @@ GIT
       rb-readline
       recog
       redcarpet
+      reline
       rex-arch
       rex-bin_tools
       rex-core
@@ -253,7 +254,7 @@ GEM
       activemodel (~> 7.0)
       activesupport (~> 7.0)
       railties (~> 7.0)
-    metasploit-payloads (2.0.161)
+    metasploit-payloads (2.0.165)
     metasploit_data_models (6.0.3)
       activerecord (~> 7.0)
       activesupport (~> 7.0)
@@ -463,4 +464,4 @@ DEPENDENCIES
   metasploit-framework!
 
 BUNDLED WITH
-   2.4.13
+   2.5.3
diff --git a/pkgs/tools/security/metasploit/default.nix b/pkgs/tools/security/metasploit/default.nix
index 935374a09ad4..fc5a7d0ac4eb 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.3.48";
+  version = "6.3.53";
 
   src = fetchFromGitHub {
     owner = "rapid7";
     repo = "metasploit-framework";
     rev = "refs/tags/${version}";
-    hash = "sha256-AY0k44/gYXP4h3SoRVF9aK2L2skZ03Azd5V9hSRDoHQ=";
+    hash = "sha256-LyI5Ne2ztO0Or1btT0jG96PYNZVMTwEZNwYCEIc6Rd4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/security/metasploit/gemset.nix b/pkgs/tools/security/metasploit/gemset.nix
index a439c6380641..88af87f272c2 100644
--- a/pkgs/tools/security/metasploit/gemset.nix
+++ b/pkgs/tools/security/metasploit/gemset.nix
@@ -664,12 +664,12 @@
     platforms = [];
     source = {
       fetchSubmodules = false;
-      rev = "261eca342915db81d67cdfe7f2ef7b3788fd508f";
-      sha256 = "0x508cj8azcmfwrp1lqrr7d8pbb8gm8lba3lhzw76qg0izij9381";
+      rev = "45efd21e748da75cc37d999dbfa3ec6c4fc4d0e9";
+      sha256 = "1pj57a3i00h66wch2kscjlsxi8zpqr44zvanmw7fvd5kxlskj8ig";
       type = "git";
       url = "https://github.com/rapid7/metasploit-framework";
     };
-    version = "6.3.48";
+    version = "6.3.53";
   };
   metasploit-model = {
     groups = ["default"];
@@ -686,10 +686,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1naxfj3jcr5gfsr5lbkis9ww2mw6c2i97k1zdidajpr91dyj2314";
+      sha256 = "0v9vr3iklxm53vfkyiqja8a942n8r0a49w9rmvk9ql4h3r5xcgpw";
       type = "gem";
     };
-    version = "2.0.161";
+    version = "2.0.165";
   };
   metasploit_data_models = {
     groups = ["default"];
diff --git a/pkgs/tools/security/mkp224o/default.nix b/pkgs/tools/security/mkp224o/default.nix
index 2ac4304d6d2e..d6ee40e6f5ea 100644
--- a/pkgs/tools/security/mkp224o/default.nix
+++ b/pkgs/tools/security/mkp224o/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mkp224o";
-  version = "1.6.1";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "cathugger";
     repo = "mkp224o";
     rev = "v${version}";
-    sha256 = "sha256-+TJ137DmgaFZX+/N6VwXJwfVCoTWtC8NqfXfYJC8UHo=";
+    sha256 = "sha256-OL3xhoxIS1OqfVp0QboENFdNH/e1Aq1R/MFFM9LNFbQ=";
   };
 
   buildCommand =
diff --git a/pkgs/tools/security/naabu/default.nix b/pkgs/tools/security/naabu/default.nix
index 8569b957db2d..7d3981222f91 100644
--- a/pkgs/tools/security/naabu/default.nix
+++ b/pkgs/tools/security/naabu/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "naabu";
-  version = "2.2.0";
+  version = "2.2.1";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = "naabu";
     rev = "refs/tags/v${version}";
-    hash = "sha256-he9SJ4lCFNV3DvwqYR7lcWPIPwLIpJDWWnnei069k1k=";
+    hash = "sha256-z81LL+tx15Zo6OWj4gRSodo7Dk763M+QQ5kYgjrWO3Q=";
   };
 
-  vendorHash = "sha256-fVqPRDycT9ImBkHakNrby0uXPWrXXatTk8QQSi2OnV0=";
+  vendorHash = "sha256-nwrqxlbvr9FZXJpzmcn0IBEtlJfeYCy8DJsBvxEgj6k=";
 
   buildInputs = [
     libpcap
@@ -27,6 +27,11 @@ buildGoModule rec {
     "cmd/naabu/"
   ];
 
+  ldflags = [
+    "-w"
+    "-s"
+  ];
+
   meta = with lib; {
     description = "Fast SYN/CONNECT port scanner";
     longDescription = ''
diff --git a/pkgs/tools/security/netexec/default.nix b/pkgs/tools/security/netexec/default.nix
index d5925365a87a..625cd3974252 100644
--- a/pkgs/tools/security/netexec/default.nix
+++ b/pkgs/tools/security/netexec/default.nix
@@ -1,172 +1,106 @@
 { lib
+, stdenv
 , fetchFromGitHub
 , python3
-, buildPythonPackage
-, fetchPypi
 }:
 let
   python = python3.override {
     packageOverrides = self: super: {
       impacket = super.impacket.overridePythonAttrs {
-        version = "0.12.0.dev1";
+        version = "0.12.0.dev1-unstable-2023-11-30";
         src = fetchFromGitHub {
           owner = "Pennyw0rth";
           repo = "impacket";
           rev = "d370e6359a410063b2c9c68f6572c3b5fb178a38";
           hash = "sha256-Jozn4lKAnLQ2I53+bx0mFY++OH5P4KyqVmrS5XJUY3E=";
         };
+        # Fix version to be compliant with Python packaging rules
+        postPatch = ''
+          substituteInPlace setup.py \
+            --replace 'version="{}.{}.{}.{}{}"' 'version="{}.{}.{}"'
+        '';
       };
-      bloodhound-py = super.bloodhound-py.overridePythonAttrs (old: {
-        propagatedBuildInputs =
-          lib.lists.remove super.impacket old.propagatedBuildInputs
-          ++ [ self.impacket ];
-      });
     };
   };
-
-  python-easyconfig = buildPythonPackage rec {
-    pname = "python-easyconfig";
-    version = "0.1.7";
-    src = fetchPypi {
-      inherit version;
-      pname = "Python-EasyConfig";
-      hash = "sha256-tUjxmrhQtVFU9hFi8xTj27J24R47JpUbio+gaDwGuyk=";
-    };
-    propagatedBuildInputs = with python.pkgs; [
-      six
-      pyyaml
-    ];
-  };
-
-  jsonform = buildPythonPackage rec {
-    pname = "jsonform";
-    version = "0.0.2";
-    doCheck = false;
-    src = fetchPypi {
-      inherit version;
-      pname = "JsonForm";
-      hash = "sha256-cfi3ohU44wyphLad3gTwKYDNbNwhg6GKp8oC2VCZiOY=";
-    };
-    propagatedBuildInputs = with python.pkgs; [
-      jsonschema
-    ];
-  };
-
-  jsonsir = buildPythonPackage rec {
-    pname = "jsonsir";
-    version = "0.0.2";
-    doCheck = false;
-    src = fetchPypi {
-      inherit version;
-      pname = "JsonSir";
-      hash = "sha256-QBRHxekx94h4Uc6b8kB/401aqwsUZ7sku787dg5b0/s=";
-    };
-  };
-
-  dploot = buildPythonPackage rec {
-    pname = "dploot";
-    version = "2.2.4";
-    pyproject = true;
-    src = fetchPypi {
-      inherit pname version;
-      hash = "sha256-40/5KOlEFvPL9ohCfR3kqoikpKFfJO22MToq3GhamKM=";
-    };
-    nativeBuildInputs = with python.pkgs; [
-      poetry-core
-    ];
-    propagatedBuildInputs = with python.pkgs; [
-      impacket
-      cryptography
-      pyasn1
-      lxml
-    ];
-  };
-
-  resource = buildPythonPackage rec {
-    pname = "resource";
-    version = "0.2.1";
-    doCheck = false;
-    src = fetchPypi {
-      inherit version;
-      pname = "Resource";
-      hash = "sha256-mDVKvY7+c9WhDyEJnYC774Xs7ffKIqQW/yAlClGs2RY=";
-    };
-    propagatedBuildInputs = with python.pkgs; [
-      python-easyconfig
-      jsonform
-      jsonsir
-    ];
-  };
 in
 python.pkgs.buildPythonApplication rec {
   pname = "netexec";
-  version = "1.1.0";
+  version = "1.1.0-unstable-2024-01-15";
   pyproject = true;
-  doCheck = true;
   pythonRelaxDeps = true;
+  pythonRemoveDeps = [
+    # Fail to detect dev version requirement
+    "neo4j"
+  ];
 
   src = fetchFromGitHub {
     owner = "Pennyw0rth";
     repo = "NetExec";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-cNkZoIdfrKs5ZvHGKGBybCWGwA6C4rqjCOEM+pX70S8=";
+    rev = "9df72e2f68b914dfdbd75b095dd8f577e992615f";
+    hash = "sha256-oQHtTE5hdlxHX4uc412VfNUrN0UHVbwI0Mm9kmJpNW4=";
   };
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace '{ git = "https://github.com/Pennyw0rth/impacket.git", branch = "gkdi" }' '"*"' \
+      --replace '{ git = "https://github.com/Pennyw0rth/oscrypto" }' '"*"'
+  '';
+
   nativeBuildInputs = with python.pkgs; [
     poetry-core
     pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = with python.pkgs; [
-    requests
+    aardwolf
+    aioconsole
+    aiosqlite
+    argcomplete
+    asyauth
     beautifulsoup4
+    bloodhound-py
+    dploot
+    dsinternals
+    impacket
     lsassy
-    termcolor
+    masky
+    minikerberos
     msgpack
     neo4j
+    oscrypto
+    paramiko
+    pyasn1-modules
     pylnk3
     pypsrp
-    paramiko
-    impacket
-    dsinternals
-    xmltodict
-    terminaltables
-    aioconsole
-    pywerview
-    minikerberos
     pypykatz
-    aardwolf
-    dploot
-    bloodhound-py
-    asyauth
-    masky
-    sqlalchemy
-    aiosqlite
-    pyasn1-modules
-    rich
     python-libnmap
-    resource
-    oscrypto
+    pywerview
+    requests
+    rich
+    sqlalchemy
+    termcolor
+    terminaltables
+    xmltodict
   ];
 
   nativeCheckInputs = with python.pkgs; [
-    pytest
+    pytestCheckHook
   ];
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace '{ git = "https://github.com/Pennyw0rth/impacket.git", branch = "gkdi" }' '"*"'
-
-    substituteInPlace pyproject.toml \
-      --replace '{ git = "https://github.com/Pennyw0rth/oscrypto" }' '"*"'
+  preCheck = ''
+    export HOME=$(mktemp -d)
   '';
 
   meta = with lib; {
-    description = "Network service exploitation tool (Maintaned fork of CrackMapExec)";
+    description = "Network service exploitation tool (maintained fork of CrackMapExec)";
     homepage = "https://github.com/Pennyw0rth/NetExec";
     changelog = "https://github.com/Pennyw0rth/NetExec/releases/tag/v${version}";
     license = with licenses; [ bsd2 ];
     mainProgram = "nxc";
     maintainers = with maintainers; [ vncsb ];
+    # FIXME: failing fixupPhase:
+    # $ Rewriting #!/nix/store/<hash>-python3-3.11.7/bin/python3.11 to #!/nix/store/<hash>-python3-3.11.7
+    # $ /nix/store/<hash>-wrap-python-hook/nix-support/setup-hook: line 65: 47758 Killed: 9               sed -i "$f" -e "1 s^#!/nix/store/<hash>-python3-3.11.7^#!/nix/store/<hash>-python3-3.11.7^"
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/tools/security/nitrokey-app2/default.nix b/pkgs/tools/security/nitrokey-app2/default.nix
index 15e756a7053b..d56e882cb09e 100644
--- a/pkgs/tools/security/nitrokey-app2/default.nix
+++ b/pkgs/tools/security/nitrokey-app2/default.nix
@@ -1,21 +1,26 @@
 { lib
-, python3
+, buildPythonApplication
 , fetchFromGitHub
-, wrapQtAppsHook
+, pythonOlder
+, pyside6
+, poetry-core
+, pynitrokey
+, pyudev
+, qt-material
 }:
 
-python3.pkgs.buildPythonApplication rec {
+buildPythonApplication rec {
   pname = "nitrokey-app2";
-  version = "2.1.4";
+  version = "2.1.5";
   pyproject = true;
 
-  disabled = python3.pythonOlder "3.9";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "Nitrokey";
     repo = "nitrokey-app2";
     rev = "v${version}";
-    hash = "sha256-loOCa6XlLx1YEfqR0SUUalVIEPCoYsNEHFo2MIKexeA=";
+    hash = "sha256-mR13zUgCdNS09EnpGLrnOnoIn3p6ZM/0fHKg0OUMWj4=";
   };
 
   # https://github.com/Nitrokey/nitrokey-app2/issues/152
@@ -23,36 +28,20 @@ python3.pkgs.buildPythonApplication rec {
   # 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 >="
+    substituteInPlace pyproject.toml --replace 'pynitrokey = "' 'pynitrokey = ">='
   '';
 
-  # The pyproject.toml file seems to be incomplete and does not generate
-  # resources (i.e. run pyrcc5 and pyuic5) but the Makefile does.
-  preBuild = ''
-    make build-ui
-  '';
-
-  nativeBuildInputs = with python3.pkgs; [
-    flit-core
-    pyqt5
-    wrapQtAppsHook
+  nativeBuildInputs = [
+    poetry-core
   ];
 
-  dontWrapQtApps = true;
-
-  propagatedBuildInputs = with python3.pkgs; [
+  propagatedBuildInputs = [
     pynitrokey
     pyudev
-    pyqt5
-    pyqt5-stubs
+    pyside6
     qt-material
   ];
 
-  preFixup = ''
-    wrapQtApp "$out/bin/nitrokeyapp" \
-      --set-default CRYPTOGRAPHY_OPENSSL_NO_LEGACY 1
-  '';
-
   pythonImportsCheck = [
     "nitrokeyapp"
   ];
diff --git a/pkgs/tools/security/notation/default.nix b/pkgs/tools/security/notation/default.nix
index 0164452b9bc9..07c9ef499717 100644
--- a/pkgs/tools/security/notation/default.nix
+++ b/pkgs/tools/security/notation/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "notation";
-  version = "1.0.1";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "notaryproject";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-KcB5l6TRZhciXO04mz5iORR4//cAhrh+o4Kdq7LA4A4=";
+    hash = "sha256-MJBFdtx+HkPCN1SIohKOy33BW746GNN2fWkr7TIuBmk=";
   };
 
-  vendorHash = "sha256-r58ZV63KIHKxh5HDeQRfd0OF0s7xpC4sXvsYLhm8AIE=";
+  vendorHash = "sha256-USkufc1dG4eyRfRJHSX4mVZHnvOc5onHenF98Aedac4=";
 
   # This is a Go sub-module and cannot be built directly (e2e tests).
   excludedPackages = [ "./test" ];
@@ -33,5 +33,6 @@ buildGoModule rec {
     homepage = "https://notaryproject.dev/";
     license = licenses.asl20;
     maintainers = with maintainers; [ aaronjheng ];
+    mainProgram = "notation";
   };
 }
diff --git a/pkgs/tools/security/nsjail/default.nix b/pkgs/tools/security/nsjail/default.nix
index a92aa5f21041..23b938a83f9a 100644
--- a/pkgs/tools/security/nsjail/default.nix
+++ b/pkgs/tools/security/nsjail/default.nix
@@ -18,6 +18,8 @@ stdenv.mkDerivation rec {
   buildInputs = [ libnl protobuf protobufc ];
   enableParallelBuilding = true;
 
+  env.NIX_CFLAGS_COMPILE = toString [ "-Wno-error" ];
+
   preBuild = ''
     makeFlagsArray+=(USER_DEFINES='-DNEWUIDMAP_PATH=${shadow}/bin/newuidmap -DNEWGIDMAP_PATH=${shadow}/bin/newgidmap')
   '';
diff --git a/pkgs/tools/security/nuclei/default.nix b/pkgs/tools/security/nuclei/default.nix
index 6deca949204f..1fb47c7762cb 100644
--- a/pkgs/tools/security/nuclei/default.nix
+++ b/pkgs/tools/security/nuclei/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "nuclei";
-  version = "3.1.5";
+  version = "3.1.10";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = "nuclei";
     rev = "refs/tags/v${version}";
-    hash = "sha256-U6FEVlW7fr2COyPASja42M3hJX6eAo4pH3kyl9APfG0=";
+    hash = "sha256-11ORN9h2VsXJKZw5HUljq6Tk0XC81tC7sCPbFgcTd+k=";
   };
 
-  vendorHash = "sha256-/Pw1m8cWYDPCS7EcveqDdmRQtP7R3sr3hvLLw/FBftU=";
+  vendorHash = "sha256-0ERUvPUAxj0H62YcRvsfYX8h0Hp/mA6NdE8E/BjPGzw=";
 
   subPackages = [
     "cmd/nuclei/"
diff --git a/pkgs/tools/security/oauth2c/default.nix b/pkgs/tools/security/oauth2c/default.nix
index 15d8f4529907..2cc9a05e3d15 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.12.3";
+  version = "1.13.0";
 
   src = fetchFromGitHub {
     owner = "cloudentity";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-4ZCb8BXrKGXJ8d06fxAuFkGRxcK7PwuPFuCBc9EIXZY=";
+    hash = "sha256-NNVHEV8qnPv+xXFzPsh1V+fSOQZxpADCRPIUsak5M5M=";
   };
 
-  vendorHash = "sha256-olDtsLoslxOsbAq60RnLp9MGZOt17/BPo9E9SgWOqoQ=";
+  vendorHash = "sha256-x6cb19rKJXm+EIxJeykhpFmUYOPb/VljzCOVjorP5MQ=";
 
   doCheck = false; # tests want to talk to oauth2c.us.authz.cloudentity.io
 
diff --git a/pkgs/tools/security/osv-scanner/default.nix b/pkgs/tools/security/osv-scanner/default.nix
index 5d48ceb67e9e..2ce9241d18ac 100644
--- a/pkgs/tools/security/osv-scanner/default.nix
+++ b/pkgs/tools/security/osv-scanner/default.nix
@@ -6,16 +6,16 @@
 }:
 buildGoModule rec {
   pname = "osv-scanner";
-  version = "1.5.0";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-wWycONThNIqiSbpsopsc9AbAxOToWkTiNzkJ2I8Z0t4=";
+    hash = "sha256-ddzdOk2sHNzjCM4cLJY+H9h13MjamlC1RYcnOcDGV4M=";
   };
 
-  vendorHash = "sha256-CiRvryjBp3nUrPRxNqM88p4856yT+BuIsjvYuE+DmqI=";
+  vendorHash = "sha256-9cE4UcQipJYwQDZA4jlcV68BBTgft7oRVlngg/PAmWI=";
 
   subPackages = [
     "cmd/osv-scanner"
@@ -24,7 +24,7 @@ buildGoModule rec {
   ldflags = [
     "-s"
     "-w"
-    "-X main.version=${version}"
+    "-X github.com/google/osv-scanner/internal/version.OSVVersion=${version}"
     "-X main.commit=n/a"
     "-X main.date=1970-01-01T00:00:00Z"
   ];
diff --git a/pkgs/tools/security/pass/extensions/audit/default.nix b/pkgs/tools/security/pass/extensions/audit/default.nix
index 74e9dab46a7e..365f81759cce 100644
--- a/pkgs/tools/security/pass/extensions/audit/default.nix
+++ b/pkgs/tools/security/pass/extensions/audit/default.nix
@@ -41,7 +41,7 @@ in stdenv.mkDerivation rec {
   installFlags = [ "DESTDIR=${placeholder "out"}" "PREFIX=" ];
   postInstall = ''
     wrapProgram $out/lib/password-store/extensions/audit.bash \
-      --prefix PYTHONPATH : "$out/lib/${pythonEnv.libPrefix}/site-packages" \
+      --prefix PYTHONPATH : "$out/${pythonEnv.sitePackages}" \
       --run "export COMMAND"
   '';
 
diff --git a/pkgs/tools/security/pass2csv/default.nix b/pkgs/tools/security/pass2csv/default.nix
index 95649695bfff..6a1d4f5a27f4 100644
--- a/pkgs/tools/security/pass2csv/default.nix
+++ b/pkgs/tools/security/pass2csv/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonApplication rec {
   pname = "pass2csv";
-  version = "1.0.0";
+  version = "1.1.0";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-a/PQl/nqdj9xOM2hfAIiLuGy5F4KmEWFJihZ4gilaJw=";
+    sha256 = "sha256-sJX09gyyqCszjypRnJj40BzRl8xW963hSbuGDekxGdA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/security/pgpdump/default.nix b/pkgs/tools/security/pgpdump/default.nix
index 60dc724d5aa9..9ebe0d920027 100644
--- a/pkgs/tools/security/pgpdump/default.nix
+++ b/pkgs/tools/security/pgpdump/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pgpdump";
-  version = "0.35";
+  version = "0.36";
 
   src = fetchFromGitHub {
     owner = "kazu-yamamoto";
     repo = "pgpdump";
     rev = "v${version}";
-    sha256 = "sha256-GjPy/feF437WtDqbEn1lGwWayWtvKhqsyJFMuH3IFl4=";
+    sha256 = "sha256-JKedgHCTDnvLyLR3nGl4XFAaxXDU1TgHrxPMlRFwtBo=";
   };
 
   buildInputs = lib.optionals supportCompressedPackets [ zlib bzip2 ];
diff --git a/pkgs/tools/security/psudohash/default.nix b/pkgs/tools/security/psudohash/default.nix
index d5be9f9a772b..7a42d1900db3 100644
--- a/pkgs/tools/security/psudohash/default.nix
+++ b/pkgs/tools/security/psudohash/default.nix
@@ -1,8 +1,7 @@
-{
-  lib,
-  fetchFromGitHub,
-  stdenv,
-  python3
+{ lib
+, stdenv
+, fetchFromGitHub
+, python3
 }:
 
 stdenv.mkDerivation rec {
@@ -12,11 +11,14 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "t3l3machus";
     repo = "psudohash";
+    # https://github.com/t3l3machus/psudohash/issues/8
     rev = "2d586dec8b5836546ae54b924eb59952a7ee393c";
     hash = "sha256-l/Rp9405Wf6vh85PFrRTtTLJE7GPODowseNqEw42J18=";
   };
 
-  buildInputs = [ python3 ];
+  buildInputs = [
+    python3
+  ];
 
   installPhase = ''
     runHook preInstall
@@ -36,5 +38,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/t3l3machus/psudohash";
     license = licenses.mit;
     maintainers = with maintainers; [ exploitoverload ];
+    mainProgram = "psudohash";
   };
 }
diff --git a/pkgs/tools/security/quark-engine/default.nix b/pkgs/tools/security/quark-engine/default.nix
index e67dd3f8b944..f89cb35f3029 100644
--- a/pkgs/tools/security/quark-engine/default.nix
+++ b/pkgs/tools/security/quark-engine/default.nix
@@ -6,14 +6,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "quark-engine";
-  version = "23.9.1";
+  version = "23.12.1";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-E9efhgMGN9lvMlFeZqo6xco75TtQsXULOzKX00pjqMM=";
+    sha256 = "sha256-NeJGkqGpg2uOsz10gEYz/nzh21DhXSU4RgQtI1brASQ=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -26,7 +26,9 @@ python3.pkgs.buildPythonApplication rec {
     plotly
     prettytable
     prompt-toolkit
+    r2pipe
     rzpipe
+    setuptools
     tqdm
   ];
 
diff --git a/pkgs/tools/security/rekor/default.nix b/pkgs/tools/security/rekor/default.nix
index afc07a63d603..dc20ca7b7c53 100644
--- a/pkgs/tools/security/rekor/default.nix
+++ b/pkgs/tools/security/rekor/default.nix
@@ -4,13 +4,13 @@ let
   generic = { pname, packageToBuild, description }:
     buildGoModule rec {
       inherit pname;
-      version = "1.3.4";
+      version = "1.3.5";
 
       src = fetchFromGitHub {
         owner = "sigstore";
         repo = "rekor";
         rev = "v${version}";
-        hash = "sha256-vU/qxCMCC2XWH79Z7cGhMlqMeQOMghTPDfROWdusKX4=";
+        hash = "sha256-g/APpfvG1MMTYZfPSXKNa9DdWrOrjOk8uQV3QyzCQjY=";
         # 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;
@@ -23,7 +23,7 @@ let
         '';
       };
 
-      vendorHash = "sha256-qhBbzYYayRktBQi9HtzuxBIlSdNIOD/agCFFNEvlcBc=";
+      vendorHash = "sha256-6ZJ3IgnzoZSDL1+CMYUDumXf1uO+odZ8Y5IZq3GN4bY=";
 
       nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/security/slsa-verifier/default.nix b/pkgs/tools/security/slsa-verifier/default.nix
index d02b574b1563..5a6ab18a49ec 100644
--- a/pkgs/tools/security/slsa-verifier/default.nix
+++ b/pkgs/tools/security/slsa-verifier/default.nix
@@ -27,7 +27,6 @@ buildGoModule rec {
   ldflags = [
     "-s"
     "-w"
-    "-buildid="
     "-X sigs.k8s.io/release-utils/version.gitVersion=${version}"
   ];
 
diff --git a/pkgs/tools/security/sn0int/default.nix b/pkgs/tools/security/sn0int/default.nix
index 397f7eb832e7..66f89f77e8ea 100644
--- a/pkgs/tools/security/sn0int/default.nix
+++ b/pkgs/tools/security/sn0int/default.nix
@@ -1,10 +1,12 @@
 { lib
 , fetchFromGitHub
 , rustPlatform
-, libsodium
 , libseccomp
-, sqlite
+, libsodium
 , pkg-config
+, pkgs
+, sqlite
+, stdenv
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -26,8 +28,11 @@ rustPlatform.buildRustPackage rec {
 
   buildInputs = [
     libsodium
-    libseccomp
     sqlite
+  ] ++ lib.optionals stdenv.isLinux [
+    libseccomp
+  ] ++ lib.optionals stdenv.isDarwin [
+    pkgs.darwin.apple_sdk.frameworks.Security
   ];
 
   # One of the dependencies (chrootable-https) tries to read "/etc/resolv.conf"
@@ -40,6 +45,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/kpcyrd/sn0int/releases/tag/v${version}";
     license = with licenses; [ gpl3Plus ];
     maintainers = with maintainers; [ fab xrelkd ];
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/tools/security/sslscan/default.nix b/pkgs/tools/security/sslscan/default.nix
index 6f5999978a10..529b1bb1683e 100644
--- a/pkgs/tools/security/sslscan/default.nix
+++ b/pkgs/tools/security/sslscan/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sslscan";
-  version = "2.1.2";
+  version = "2.1.3";
 
   src = fetchFromGitHub {
     owner = "rbsec";
     repo = "sslscan";
     rev = "refs/tags/${version}";
-    hash = "sha256-6teCWzv9DXhGSBjyIurRW3ymSTwMUlbJGjuXmsqpkUc=";
+    hash = "sha256-oLlMeFVicDwr2XjCX/0cBMTXLKB8js50646uAf3tP9k=";
   };
 
   buildInputs = [ openssl ];
diff --git a/pkgs/tools/security/step-ca/default.nix b/pkgs/tools/security/step-ca/default.nix
index 5c1463ec117b..6bdbfa02d62a 100644
--- a/pkgs/tools/security/step-ca/default.nix
+++ b/pkgs/tools/security/step-ca/default.nix
@@ -23,10 +23,6 @@ buildGoModule rec {
 
   vendorHash = "sha256-AXMMpzXEhdKSGeVg/KK2NEgalxIXP6DUTcoxOQVqow4=";
 
-  ldflags = [
-    "-buildid="
-  ];
-
   nativeBuildInputs = lib.optionals hsmSupport [
     pkg-config
   ];
diff --git a/pkgs/tools/security/step-cli/default.nix b/pkgs/tools/security/step-cli/default.nix
index 53a0a44588a2..4ba73b2ac2e5 100644
--- a/pkgs/tools/security/step-cli/default.nix
+++ b/pkgs/tools/security/step-cli/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "step-cli";
-  version = "0.25.1";
+  version = "0.25.2";
 
   src = fetchFromGitHub {
     owner = "smallstep";
     repo = "cli";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Lltlvr/Hvh2W8MiB5WC3RmQcHg6kRPau7Fvvaqm60MQ=";
+    hash = "sha256-umo0f4cXxnxg3xH1aHeJE2brUT9w+Gp+0Qzq4zIQ8oI=";
   };
 
   ldflags = [
@@ -25,7 +25,7 @@ buildGoModule rec {
     rm command/certificate/remote_test.go
   '';
 
-  vendorHash = "sha256-dhJrDhMnPb985W3YP7+W8GHuMpkkZJcxks27TThj2YE=";
+  vendorHash = "sha256-R9UJHXs35/yvwlqu1iR3lJN/w8DWMqw48Kc+7JKfD7I=";
 
   meta = with lib; {
     description = "A zero trust swiss army knife for working with X509, OAuth, JWT, OATH OTP, etc";
diff --git a/pkgs/tools/security/step-kms-plugin/default.nix b/pkgs/tools/security/step-kms-plugin/default.nix
index 9e948bf52dd6..2a141e7012b9 100644
--- a/pkgs/tools/security/step-kms-plugin/default.nix
+++ b/pkgs/tools/security/step-kms-plugin/default.nix
@@ -11,16 +11,16 @@
 
 buildGoModule rec {
   pname = "step-kms-plugin";
-  version = "0.9.2";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "smallstep";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-l0MMcLghhqVVQAdhk0a0nDqYvJbXCV2PFbRtiGQcDn0=";
+    hash = "sha256-TmIQjkIESZm6u7CajyJGgf1xm3SvjA6EINUAKehzafs=";
   };
 
-  vendorHash = "sha256-3du8KlM08N5hKmzZWYZdfPOL5R+BspbK6ABF+RSJzHg=";
+  vendorHash = "sha256-mwi7ux4pnnotdwW6v0j+q8mx5i7W6fJVuAKOEqVDueY=";
 
   proxyVendor = true;
 
diff --git a/pkgs/tools/security/sudo/default.nix b/pkgs/tools/security/sudo/default.nix
index 0f1cc974b4b3..996baca2567f 100644
--- a/pkgs/tools/security/sudo/default.nix
+++ b/pkgs/tools/security/sudo/default.nix
@@ -12,13 +12,13 @@
 , withSssd ? false
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "sudo";
-  version = "1.9.15p4";
+  version = "1.9.15p5";
 
   src = fetchurl {
-    url = "https://www.sudo.ws/dist/${pname}-${version}.tar.gz";
-    hash = "sha256-LiDsmGXu7qExbG9J7GrEZ4hptonU2QtEJDv0iH1t1TI=";
+    url = "https://www.sudo.ws/dist/sudo-${finalAttrs.version}.tar.gz";
+    hash = "sha256-VY0QuaGZH7O5+n+nsH7EQFt677WzywsIcdvIHjqI5Vg=";
   };
 
   prePatch = ''
@@ -85,5 +85,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ sudo bsd2 bsd3 zlib ];
     maintainers = with maintainers; [ delroth ];
     platforms = platforms.linux;
+    mainProgram = "sudo";
   };
-}
+})
diff --git a/pkgs/tools/security/tell-me-your-secrets/default.nix b/pkgs/tools/security/tell-me-your-secrets/default.nix
index c01308e0de6e..a85a62fdfcc3 100644
--- a/pkgs/tools/security/tell-me-your-secrets/default.nix
+++ b/pkgs/tools/security/tell-me-your-secrets/default.nix
@@ -6,7 +6,7 @@
 python3.pkgs.buildPythonApplication rec {
   pname = "tell-me-your-secrets";
   version = "2.4.2";
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "valayDave";
@@ -17,6 +17,7 @@ python3.pkgs.buildPythonApplication rec {
 
   pythonRelaxDeps = [
     "gitignore-parser"
+    "pandas"
   ];
 
   nativeBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/security/tlsx/default.nix b/pkgs/tools/security/tlsx/default.nix
index 10915cad9ecd..2ba9be6315b7 100644
--- a/pkgs/tools/security/tlsx/default.nix
+++ b/pkgs/tools/security/tlsx/default.nix
@@ -5,16 +5,21 @@
 
 buildGoModule rec {
   pname = "tlsx";
-  version = "1.1.5";
+  version = "1.1.6";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-lS/D3p8Q6Zu3/XxwkC77fPS9cXVrUTkDPGd46Y+krbo=";
+    repo = "tlsx";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-FF5/STjf8joyJM6qPds1wFeRfncSamy/wWfNRZcG5kc=";
   };
 
-  vendorHash = "sha256-aEsq9LwU/ZWvuZGGzZ4NEvMWFk1m/Sr9LOXiCA/X388=";
+  vendorHash = "sha256-sJravmpvwOSZiVNWFUTLlTA4xk6drItDj4JzR8JNrOo=";
+
+  ldflags = [
+    "-s"
+    "-w"
+  ];
 
   # Tests require network access
   doCheck = false;
diff --git a/pkgs/tools/security/trueseeing/default.nix b/pkgs/tools/security/trueseeing/default.nix
index 8ab38a9a44d2..5feccbb2d8be 100644
--- a/pkgs/tools/security/trueseeing/default.nix
+++ b/pkgs/tools/security/trueseeing/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "trueseeing";
-  version = "2.1.9";
+  version = "2.1.10";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "alterakey";
     repo = "trueseeing";
     rev = "refs/tags/v${version}";
-    hash = "sha256-g5OqdnPtGGV4wBwPRAjH3lweguwlfVcgpNLlq54OHKA=";
+    hash = "sha256-q7hUsBmTRPizmNWueFtFDc5t7rd1evMrBj3oX1Q2VfM=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/security/trufflehog/default.nix b/pkgs/tools/security/trufflehog/default.nix
index 2ad22b513d83..d5c8957d31a4 100644
--- a/pkgs/tools/security/trufflehog/default.nix
+++ b/pkgs/tools/security/trufflehog/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "trufflehog";
-  version = "3.63.10";
+  version = "3.66.3";
 
   src = fetchFromGitHub {
     owner = "trufflesecurity";
     repo = "trufflehog";
     rev = "refs/tags/v${version}";
-    hash = "sha256-yxeXJXHSwouDzT1u8e29piqMs20VYh4pwKFFllOCJqM=";
+    hash = "sha256-US94BFN2cS9QEtOkXP6QsDsP70JUCq9cu8qpSx8VraI=";
   };
 
-  vendorHash = "sha256-eD6PcJgwulwMbizUBDr2jLwVfsAdxiQWFqqe17wNqp0=";
+  vendorHash = "sha256-yhgNsiKh0sgVn0N1LqpWT1Utapc5DL+Ueposg+bAO5o=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/security/trustymail/default.nix b/pkgs/tools/security/trustymail/default.nix
index eb384ce16253..88d321708886 100644
--- a/pkgs/tools/security/trustymail/default.nix
+++ b/pkgs/tools/security/trustymail/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "trustymail";
-  version = "0.8.1";
+  version = "0.8.3";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "cisagov";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-hKiQWAOzUjmoCcEH9OTgkgU7s1V+Vv3+93OLkqDRDoU=";
+    hash = "sha256-aFXz78Gviki0yIcnn2EgR3mHmt0wMoY5u6RoT6zQc1Y=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/security/vals/default.nix b/pkgs/tools/security/vals/default.nix
index 8f25dc1a211a..5000615b4eab 100644
--- a/pkgs/tools/security/vals/default.nix
+++ b/pkgs/tools/security/vals/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "vals";
-  version = "0.32.0";
+  version = "0.33.1";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "variantdev";
     repo = pname;
-    sha256 = "sha256-UBN0QMrYyYm7O1MrduGmXOSLZ5Qwjq0LMgvWhoVwzGI=";
+    sha256 = "sha256-5+yaDcHqOt+bOdQIv4rDJuiR7acbkQvHJEfvc058+b8=";
   };
 
-  vendorHash = "sha256-2gS4m+eQSrXcMtT/7AzPW5KcGww8gSJm2doyBa6pLHQ=";
+  vendorHash = "sha256-Lt6OPA6k+zXIahZR8F36YWruCtUsoQKb/LgzJ5NIcx8=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/security/vault/default.nix b/pkgs/tools/security/vault/default.nix
index ddb4532e2af1..0db950ddca54 100644
--- a/pkgs/tools/security/vault/default.nix
+++ b/pkgs/tools/security/vault/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "vault";
-  version = "1.15.4";
+  version = "1.15.5";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "vault";
     rev = "v${version}";
-    sha256 = "sha256-Q+j5AS8ccAfqjtPQ/y6Bfga3IxMhE5SZWxZK5OUCJ34=";
+    sha256 = "sha256-KDQgiG+HSkLjiJfej9VqTcPZxOMMTh9n9yTDGfiGF3g=";
   };
 
-  vendorHash = "sha256-YEEvFAZ+VqmFR3TLJ0ztgWbT2C5r5pfYM4dmCf8G7sw=";
+  vendorHash = "sha256-fNUoeyBVci/S4LCpAPYjVbf8r+ROB5uL1TaUKJZsNes=";
 
   proxyVendor = true;
 
diff --git a/pkgs/tools/security/vault/vault-bin.nix b/pkgs/tools/security/vault/vault-bin.nix
index abb548e68775..88430d842841 100644
--- a/pkgs/tools/security/vault/vault-bin.nix
+++ b/pkgs/tools/security/vault/vault-bin.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "vault-bin";
-  version = "1.15.4";
+  version = "1.15.5";
 
   src =
     let
@@ -16,11 +16,11 @@ stdenv.mkDerivation rec {
         aarch64-darwin = "darwin_arm64";
       };
       sha256 = selectSystem {
-        x86_64-linux = "sha256-E1tNqPkaZVnJXtV+ENt2Ajpdq0AYMPZSFMLAFiSxknY=";
-        aarch64-linux = "sha256-p+pYU4WenDHZmQQQFTm2ttHjxL+63NWy8G+cbAZLJEI=";
-        i686-linux = "sha256-FoClSgz/QAD7uktFcYmKsCXnS8kIm8a7BLd2N29Z/fE=";
-        x86_64-darwin = "sha256-Lykhs/tTFDBqk8SJ26k712oMUAhXlmBeNNi3Ve/M1B4=";
-        aarch64-darwin = "sha256-r9OamlIgFUGgIFX1baQCdBsDGmPwZoTVu+Zab99KnhM=";
+        x86_64-linux = "sha256-WchJdMn8PkCu3MydY6ssbXpMCaQBlDbyTQ1kF69KQ+0=";
+        aarch64-linux = "sha256-tjLyPC156q8y4RKB0+QVIxiXbkW6/qTytCC0WhOo8xU=";
+        i686-linux = "sha256-TSAhomxTIKSHE0BE1jiL9a15hpGRmF7clFbTwsrDxuk=";
+        x86_64-darwin = "sha256-vG3S84P7+zvQnIjohPHN3JefN4wM9uDdPqindnwlXpE=";
+        aarch64-darwin = "sha256-nQsKXD+1gGclUoZLlUpA6k9QuNv/NQ+roRa6kvXCIXQ=";
       };
     in
     fetchzip {
diff --git a/pkgs/tools/security/vaultwarden/webvault.nix b/pkgs/tools/security/vaultwarden/webvault.nix
index 92948bae4bf1..3e4180cc05b2 100644
--- a/pkgs/tools/security/vaultwarden/webvault.nix
+++ b/pkgs/tools/security/vaultwarden/webvault.nix
@@ -7,13 +7,13 @@
 }:
 
 let
-  version = "2024.1.1";
+  version = "2024.1.1b";
 
   bw_web_builds = fetchFromGitHub {
     owner = "dani-garcia";
     repo = "bw_web_builds";
     rev = "v${version}";
-    hash = "sha256-xtfpxcJLP0C4FdnO45gsaecOWJ/cKC++Abm7iatTH1Y=";
+    hash = "sha256-jdr+3sIFdKmi0CI3TyFv+wCbhOBJECKQtx+X5EZjRsQ=";
   };
 
 in buildNpmPackage rec {
@@ -30,7 +30,7 @@ in buildNpmPackage rec {
   npmDepsHash = "sha256-IJ5JVz9hHu3NOzFJAyzfhsMfPQgYQGntDEDuBMI/iZc=";
 
   postPatch = ''
-    cp -r ${bw_web_builds}/{patches,resources} ..
+    ln -s ${bw_web_builds}/{patches,resources} ..
     PATH="${git}/bin:$PATH" VAULT_VERSION="${lib.removePrefix "web-" src.rev}" \
       bash ${bw_web_builds}/scripts/apply_patches.sh
   '';
@@ -66,6 +66,7 @@ in buildNpmPackage rec {
   meta = with lib; {
     description = "Integrates the web vault into vaultwarden";
     homepage = "https://github.com/dani-garcia/bw_web_builds";
+    changelog = "https://github.com/dani-garcia/bw_web_builds/releases/tag/v${version}";
     platforms = platforms.all;
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dotlambda msteen mic92 ];
diff --git a/pkgs/tools/security/volatility3/default.nix b/pkgs/tools/security/volatility3/default.nix
index 221ed6ae639d..7f6307687323 100644
--- a/pkgs/tools/security/volatility3/default.nix
+++ b/pkgs/tools/security/volatility3/default.nix
@@ -5,15 +5,20 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "volatility3";
-  version = "2.5.0";
+  version = "2.5.2";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "volatilityfoundation";
-    repo = pname;
+    repo = "volatility3";
     rev = "refs/tags/v${version}";
-    hash = "sha256-yutQbrWmJGDsTccQcR+HtC8JvgmsXfCxbxxcMLDx5vk=";
+    hash = "sha256-tghwDDfy8TohqTn9WQvmEal3qK0OKKq7GvGnPGTble0=";
   };
 
+  nativeBuildInputs = with python3.pkgs; [
+    setuptools
+  ];
+
   propagatedBuildInputs = with python3.pkgs; [
     capstone
     jsonschema
diff --git a/pkgs/tools/security/zeekscript/default.nix b/pkgs/tools/security/zeekscript/default.nix
index c1ab0cb4a190..eb7d097c5d74 100644
--- a/pkgs/tools/security/zeekscript/default.nix
+++ b/pkgs/tools/security/zeekscript/default.nix
@@ -5,12 +5,12 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "zeekscript";
-  version = "1.2.1";
-  format = "pyproject";
+  version = "1.2.8";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-LogI9sJHvLN5WHJGdW47D09XZInKln/I2hNmG62d1JU=";
+    hash = "sha256-v0PJY0Ahxa4k011AwtWSIAWBXvt3Aybrd382j1SIT6M=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/system/amdgpu_top/Cargo.lock b/pkgs/tools/system/amdgpu_top/Cargo.lock
index 7905f0a57f32..a83006dc179b 100644
--- a/pkgs/tools/system/amdgpu_top/Cargo.lock
+++ b/pkgs/tools/system/amdgpu_top/Cargo.lock
@@ -20,9 +20,9 @@ checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046"
 
 [[package]]
 name = "accesskit"
-version = "0.12.1"
+version = "0.12.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca8410747ed85a17c4a1e9ed3f5a74d3e7bdcc876cf9a18ff40ae21d645997b2"
+checksum = "6cb10ed32c63247e4e39a8f42e8e30fb9442fbf7878c8e4a9849e7e381619bea"
 dependencies = [
  "enumn",
  "serde",
@@ -59,18 +59,19 @@ dependencies = [
 
 [[package]]
 name = "amdgpu_top"
-version = "0.6.1"
+version = "0.7.0"
 dependencies = [
  "amdgpu_top_gui",
  "amdgpu_top_json",
  "amdgpu_top_tui",
  "gix",
  "libamdgpu_top",
+ "libc",
 ]
 
 [[package]]
 name = "amdgpu_top_gui"
-version = "0.6.1"
+version = "0.7.0"
 dependencies = [
  "eframe",
  "egui_plot",
@@ -83,7 +84,7 @@ dependencies = [
 
 [[package]]
 name = "amdgpu_top_json"
-version = "0.6.1"
+version = "0.7.0"
 dependencies = [
  "libamdgpu_top",
  "serde_json",
@@ -91,7 +92,7 @@ dependencies = [
 
 [[package]]
 name = "amdgpu_top_tui"
-version = "0.6.1"
+version = "0.7.0"
 dependencies = [
  "cursive",
  "libamdgpu_top",
@@ -99,20 +100,23 @@ dependencies = [
 
 [[package]]
 name = "android-activity"
-version = "0.4.3"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64529721f27c2314ced0890ce45e469574a73e5e6fdd6e9da1860eb29285f5e0"
+checksum = "ee91c0c2905bae44f84bfa4e044536541df26b7703fd0888deeb9060fcc44289"
 dependencies = [
  "android-properties",
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "cc",
+ "cesu8",
+ "jni",
  "jni-sys",
  "libc",
  "log",
  "ndk",
  "ndk-context",
  "ndk-sys",
- "num_enum 0.6.1",
+ "num_enum",
+ "thiserror",
 ]
 
 [[package]]
@@ -123,9 +127,9 @@ checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04"
 
 [[package]]
 name = "anyhow"
-version = "1.0.78"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca87830a3e3fb156dc96cfbd31cb620265dd053be734723f22b760d6cc3c3051"
+checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
 
 [[package]]
 name = "arboard"
@@ -141,7 +145,7 @@ dependencies = [
  "parking_lot",
  "thiserror",
  "winapi",
- "x11rb",
+ "x11rb 0.12.0",
 ]
 
 [[package]]
@@ -151,6 +155,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
 
 [[package]]
+name = "as-raw-xcb-connection"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b"
+
+[[package]]
+name = "atomic-waker"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
+
+[[package]]
 name = "autocfg"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -158,9 +174,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[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 = "bitflags"
@@ -170,9 +186,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.1"
+version = "2.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
 dependencies = [
  "serde",
 ]
@@ -194,21 +210,21 @@ dependencies = [
 
 [[package]]
 name = "block-sys"
-version = "0.1.0-beta.1"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fa55741ee90902547802152aaf3f8e5248aab7e21468089560d4c8840561146"
+checksum = "ae85a0696e7ea3b835a453750bf002770776609115e6d25c6d2ff28a8200f7e7"
 dependencies = [
  "objc-sys",
 ]
 
 [[package]]
 name = "block2"
-version = "0.2.0-alpha.6"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8dd9e63c1744f755c2f60332b88de39d341e5e86239014ad839bd71c106dec42"
+checksum = "15b55663a85f33501257357e6421bb33e769d5c9ffb5ba0921c975a123e35e68"
 dependencies = [
  "block-sys",
- "objc2-encode",
+ "objc2",
 ]
 
 [[package]]
@@ -239,9 +255,9 @@ checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
 
 [[package]]
 name = "bytemuck"
-version = "1.14.0"
+version = "1.14.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
+checksum = "ed2490600f404f2b94c167e31d3ed1d5f3c225a0f3b80230053b3e0b7b962bd9"
 dependencies = [
  "bytemuck_derive",
 ]
@@ -254,7 +270,7 @@ checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.44",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -271,16 +287,28 @@ checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
 
 [[package]]
 name = "calloop"
-version = "0.10.6"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52e0d00eb1ea24371a97d2da6201c6747a633dc6dc1988ef503403b4c59504a8"
+checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "log",
- "nix 0.25.1",
- "slotmap",
+ "polling",
+ "rustix",
+ "slab",
  "thiserror",
- "vec_map",
+]
+
+[[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]]
@@ -339,9 +367,9 @@ checksum = "b8191fa7302e03607ff0e237d4246cc043ff5b3cb9409d995172ba3bea16b807"
 
 [[package]]
 name = "cocoa"
-version = "0.24.1"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a"
+checksum = "f6140449f97a6e97f9511815c5632d84c8aacf8ac271ad77c559218161a1373c"
 dependencies = [
  "bitflags 1.3.2",
  "block",
@@ -384,6 +412,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 = "core-foundation"
 version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -401,9 +438,9 @@ checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
 name = "core-graphics"
-version = "0.22.3"
+version = "0.23.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb"
+checksum = "970a29baf4110c26fedbc7f82107d42c23f7e88e404c4577ed73fe99ff85a212"
 dependencies = [
  "bitflags 1.3.2",
  "core-foundation",
@@ -425,9 +462,9 @@ dependencies = [
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
 dependencies = [
  "libc",
 ]
@@ -443,22 +480,18 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.10"
+version = "0.5.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82a9b73a36529d9c47029b9fb3a6f0ea3cc916a261195352ba19e770fc1748b2"
+checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b"
 dependencies = [
- "cfg-if",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.18"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c"
-dependencies = [
- "cfg-if",
-]
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
 
 [[package]]
 name = "crossterm"
@@ -535,10 +568,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "cursor-icon"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991"
+
+[[package]]
 name = "darling"
-version = "0.20.3"
+version = "0.20.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e"
+checksum = "fc5d6b04b3fd0ba9926f945895de7d806260a2d7431ba82e7edaecb043c4c6b8"
 dependencies = [
  "darling_core",
  "darling_macro",
@@ -546,26 +585,26 @@ dependencies = [
 
 [[package]]
 name = "darling_core"
-version = "0.20.3"
+version = "0.20.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621"
+checksum = "04e48a959bcd5c761246f5d090ebc2fbf7b9cd527a492b07a67510c108f1e7e3"
 dependencies = [
  "fnv",
  "ident_case",
  "proc-macro2",
  "quote",
- "syn 2.0.44",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "darling_macro"
-version = "0.20.3"
+version = "0.20.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
+checksum = "1d1545d67a2149e1d93b7e5c7752dce5a7426eb5d1357ddcfd89336b94444f77"
 dependencies = [
  "darling_core",
  "quote",
- "syn 2.0.44",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -635,7 +674,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.44",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -644,7 +683,7 @@ version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412"
 dependencies = [
- "libloading 0.8.1",
+ "libloading",
 ]
 
 [[package]]
@@ -661,9 +700,9 @@ checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b"
 
 [[package]]
 name = "ecolor"
-version = "0.24.1"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b7637fc2e74d17e52931bac90ff4fc061ac776ada9c7fa272f24cdca5991972"
+checksum = "57539aabcdbb733b6806ef421b66dec158dc1582107ad6d51913db3600303354"
 dependencies = [
  "bytemuck",
  "serde",
@@ -671,9 +710,9 @@ dependencies = [
 
 [[package]]
 name = "eframe"
-version = "0.24.1"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdd73918a828c35a7efb4d7188ea973df4bffc589178ed95f521c917b03ddcfa"
+checksum = "79c00143a1d564cf27570234c9a199cbe75dc3d43a135510fb2b93406a87ee8e"
 dependencies = [
  "bytemuck",
  "cocoa",
@@ -704,9 +743,9 @@ dependencies = [
 
 [[package]]
 name = "egui"
-version = "0.24.1"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c55bcb864b764eb889515a38b8924757657a250738ad15126637ee2df291ee6b"
+checksum = "e0bf640ed7f3bf3d14ebf00d73bacc09c886443ee84ca6494bde37953012c9e3"
 dependencies = [
  "accesskit",
  "ahash",
@@ -719,9 +758,9 @@ dependencies = [
 
 [[package]]
 name = "egui-winit"
-version = "0.24.1"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b673606b6606b12b95e3a3194d7882bf5cff302db36a520b8144c7c342e4e84"
+checksum = "1d95d9762056c541bd2724de02910d8bccf3af8e37689dc114b21730e64f80a0"
 dependencies = [
  "arboard",
  "egui",
@@ -736,33 +775,33 @@ dependencies = [
 
 [[package]]
 name = "egui_glow"
-version = "0.24.1"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "262151f9d57c557c02a40a46f27b9e050a6eb0b006b94dced9c6f4519a04d489"
+checksum = "cb2ef815e80d117339c7d6b813f7678d23522d699ccd3243e267ef06166009b9"
 dependencies = [
  "bytemuck",
  "egui",
  "glow",
  "log",
- "memoffset 0.7.1",
+ "memoffset",
  "wasm-bindgen",
  "web-sys",
 ]
 
 [[package]]
 name = "egui_plot"
-version = "0.24.1"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b37b2edcdd197db41825266ae7979bd7591fa2eb6b40152375ac05eb323eb9d2"
+checksum = "6a159fffebf052f79d1fd26d48e68906a21fec2fce808f7c0a982ec14ed506be"
 dependencies = [
  "egui",
 ]
 
 [[package]]
 name = "emath"
-version = "0.24.1"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a045c6c0b44b35e98513fc1e9d183ab42881ac27caccb9fa345465601f56cce4"
+checksum = "3ee58355767587db7ba3738930d93cad3052cd834c2b48b9ef6ef26fe4823b7e"
 dependencies = [
  "bytemuck",
  "serde",
@@ -785,18 +824,18 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.44",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "enumn"
-version = "0.1.12"
+version = "0.1.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2ad8cef1d801a4686bfd8919f0b30eac4c8e48968c437a6405ded4fb5272d2b"
+checksum = "6fd000fd6988e73bbe993ea3db9b1aa64906ab88766d654973924340c8cddb42"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.44",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -817,14 +856,14 @@ dependencies = [
  "darling",
  "proc-macro2",
  "quote",
- "syn 2.0.44",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "epaint"
-version = "0.24.1"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d1b9e000d21bab9b535ce78f9f7745be28b3f777f6c7223936561c5c7fefab8"
+checksum = "e638cb066bff0903bbb6143116cfd134a42279c7d68f19c0352a94f15a402de7"
 dependencies = [
  "ab_glyph",
  "ahash",
@@ -880,9 +919,9 @@ checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
 
 [[package]]
 name = "fdeflate"
-version = "0.3.3"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "209098dd6dfc4445aa6111f0e98653ac323eaa4dfd212c9ca3931bf9955c31bd"
+checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645"
 dependencies = [
  "simd-adler32",
 ]
@@ -958,18 +997,30 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
 name = "foreign-types"
-version = "0.3.2"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+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",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
 name = "foreign-types-shared"
-version = "0.1.1"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
 
 [[package]]
 name = "form_urlencoded"
@@ -1001,10 +1052,20 @@ dependencies = [
 ]
 
 [[package]]
+name = "gethostname"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818"
+dependencies = [
+ "libc",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
 name = "getrandom"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if",
  "libc",
@@ -1085,7 +1146,7 @@ dependencies = [
  "gix-chunk",
  "gix-features",
  "gix-hash",
- "memmap2 0.9.3",
+ "memmap2 0.9.4",
  "thiserror",
 ]
 
@@ -1112,11 +1173,11 @@ dependencies = [
 
 [[package]]
 name = "gix-config-value"
-version = "0.14.3"
+version = "0.14.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52e0be46f4cf1f8f9e88d0e3eb7b29718aff23889563249f379119bd1ab6910e"
+checksum = "5b8a1e7bfb37a46ed0b8468db37a6d8a0a61d56bdbe4603ae492cb322e5f3958"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "bstr",
  "gix-path",
  "libc",
@@ -1194,7 +1255,7 @@ version = "0.14.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5db19298c5eeea2961e5b3bf190767a2d1f09b8802aeb5f258e42276350aff19"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "bstr",
  "gix-features",
  "gix-path",
@@ -1240,7 +1301,7 @@ checksum = "d75e7ab728059f595f6ddc1ad8771b8d6a231971ae493d9d5948ecad366ee8bb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.44",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1303,9 +1364,9 @@ dependencies = [
 
 [[package]]
 name = "gix-path"
-version = "0.10.3"
+version = "0.10.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8dd0998ab245f33d40ca2267e58d542fe54185ebd1dc41923346cf28d179fb6"
+checksum = "97e9ad649bf5e109562d6acba657ca428661ec08e77eaf3a755d8fa55485be9c"
 dependencies = [
  "bstr",
  "gix-trace",
@@ -1393,14 +1454,14 @@ dependencies = [
 
 [[package]]
 name = "gix-sec"
-version = "0.10.3"
+version = "0.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78f6dce0c6683e2219e8169aac4b1c29e89540a8262fef7056b31d80d969408c"
+checksum = "f8d9bf462feaf05f2121cba7399dbc6c34d88a9cad58fc1e95027791d6a3c6d2"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "gix-path",
  "libc",
- "windows",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -1418,9 +1479,9 @@ dependencies = [
 
 [[package]]
 name = "gix-trace"
-version = "0.1.6"
+version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8e1127ede0475b58f4fe9c0aaa0d9bb0bad2af90bbd93ccd307c8632b863d89"
+checksum = "02b202d766a7fefc596e2cc6a89cda8ad8ad733aed82da635ac120691112a9b1"
 
 [[package]]
 name = "gix-traverse"
@@ -1454,11 +1515,12 @@ dependencies = [
 
 [[package]]
 name = "gix-utils"
-version = "0.1.8"
+version = "0.1.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de6225e2de30b6e9bca2d9f1cc4731640fcef0fb3cabddceee366e7e85d3e94f"
+checksum = "56e839f3d0798b296411263da6bee780a176ef8008a5dfc31287f7eda9266ab8"
 dependencies = [
  "fastrand",
+ "unicode-normalization",
 ]
 
 [[package]]
@@ -1484,9 +1546,9 @@ dependencies = [
 
 [[package]]
 name = "glow"
-version = "0.12.3"
+version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca0fe580e4b60a8ab24a868bc08e2f03cbcb20d3d676601fa909386713333728"
+checksum = "bd348e04c43b32574f2de31c8bb397d96c9fcfa1371bd4ca6d8bdc464ab121b1"
 dependencies = [
  "js-sys",
  "slotmap",
@@ -1496,11 +1558,11 @@ dependencies = [
 
 [[package]]
 name = "glutin"
-version = "0.30.10"
+version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fc93b03242719b8ad39fb26ed2b01737144ce7bd4bfc7adadcef806596760fe"
+checksum = "005459a22af86adc706522d78d360101118e2638ec21df3852fcc626e0dbb212"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "cfg_aliases",
  "cgl",
  "core-foundation",
@@ -1508,20 +1570,21 @@ dependencies = [
  "glutin_egl_sys",
  "glutin_glx_sys",
  "glutin_wgl_sys",
- "libloading 0.7.4",
+ "icrate",
+ "libloading",
  "objc2",
  "once_cell",
  "raw-window-handle",
- "wayland-sys 0.30.1",
- "windows-sys 0.45.0",
+ "wayland-sys",
+ "windows-sys 0.48.0",
  "x11-dl",
 ]
 
 [[package]]
 name = "glutin-winit"
-version = "0.3.0"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "629a873fc04062830bfe8f97c03773bcd7b371e23bcc465d0a61448cd1588fa4"
+checksum = "1ebcdfba24f73b8412c5181e56f092b5eff16671c514ce896b258a0a64bd7735"
 dependencies = [
  "cfg_aliases",
  "glutin",
@@ -1531,19 +1594,19 @@ dependencies = [
 
 [[package]]
 name = "glutin_egl_sys"
-version = "0.5.1"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af784eb26c5a68ec85391268e074f0aa618c096eadb5d6330b0911cf34fe57c5"
+checksum = "77cc5623f5309ef433c3dd4ca1223195347fe62c413da8e2fdd0eb76db2d9bcd"
 dependencies = [
  "gl_generator",
- "windows-sys 0.45.0",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "glutin_glx_sys"
-version = "0.4.0"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b53cb5fe568964aa066a3ba91eac5ecbac869fb0842cd0dc9e412434f1a1494"
+checksum = "a165fd686c10dcc2d45380b35796e577eacfd43d4660ee741ec8ebe2201b3b4f"
 dependencies = [
  "gl_generator",
  "x11-dl",
@@ -1551,9 +1614,9 @@ dependencies = [
 
 [[package]]
 name = "glutin_wgl_sys"
-version = "0.4.0"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef89398e90033fc6bc65e9bd42fd29bbbfd483bda5b56dc5562f455550618165"
+checksum = "6c8098adac955faa2d31079b65dc48841251f69efd3ac25477903fc424362ead"
 dependencies = [
  "gl_generator",
 ]
@@ -1583,7 +1646,7 @@ dependencies = [
  "serde",
  "serde_derive",
  "thiserror",
- "toml 0.8.8",
+ "toml 0.8.9",
  "unic-langid",
 ]
 
@@ -1626,7 +1689,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "strsim",
- "syn 2.0.44",
+ "syn 2.0.48",
  "unic-langid",
 ]
 
@@ -1640,7 +1703,18 @@ dependencies = [
  "i18n-config",
  "proc-macro2",
  "quote",
- "syn 2.0.44",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "icrate"
+version = "0.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99d3aaff8a54577104bafdf686ff18565c3b6903ca5782a2026ef06e2c7aa319"
+dependencies = [
+ "block2",
+ "dispatch",
+ "objc2",
 ]
 
 [[package]]
@@ -1661,41 +1735,28 @@ dependencies = [
 
 [[package]]
 name = "image"
-version = "0.24.7"
+version = "0.24.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711"
+checksum = "034bbe799d1909622a74d1193aa50147769440040ff36cb2baa947609b0a4e23"
 dependencies = [
  "bytemuck",
  "byteorder",
  "color_quant",
- "num-rational",
  "num-traits",
  "png",
 ]
 
 [[package]]
 name = "indexmap"
-version = "2.1.0"
+version = "2.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
+checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520"
 dependencies = [
  "equivalent",
  "hashbrown",
 ]
 
 [[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]]
 name = "intl-memoizer"
 version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1753,9 +1814,9 @@ dependencies = [
 
 [[package]]
 name = "js-sys"
-version = "0.3.66"
+version = "0.3.67"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca"
+checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -1774,7 +1835,7 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libamdgpu_top"
-version = "0.6.1"
+version = "0.7.0"
 dependencies = [
  "anyhow",
  "libdrm_amdgpu_sys",
@@ -1782,30 +1843,20 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.151"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "libdrm_amdgpu_sys"
-version = "0.4.1"
-source = "git+https://github.com/Umio-Yasuno/libdrm-amdgpu-sys-rs#d2e0bd7d1dd822b95789842d96e183ae1bb31aeb"
+version = "0.5.0"
+source = "git+https://github.com/Umio-Yasuno/libdrm-amdgpu-sys-rs#6852a973c639385988ce0454b59dddcf40ebcd2f"
 dependencies = [
  "libc",
 ]
 
 [[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 = "libloading"
 version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
@@ -1820,7 +1871,7 @@ version = "0.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "libc",
  "redox_syscall 0.4.1",
 ]
@@ -1831,16 +1882,16 @@ version = "0.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "libc",
  "redox_syscall 0.4.1",
 ]
 
 [[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 = "locale_config"
@@ -1888,15 +1939,6 @@ checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "memmap2"
-version = "0.5.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "memmap2"
 version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f49388d20533534cd19360ad3d6a7dadc885944aa802ba3995040c5ec11288c6"
@@ -1906,24 +1948,15 @@ dependencies = [
 
 [[package]]
 name = "memmap2"
-version = "0.9.3"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45fd3a57831bf88bc63f8cebc0cf956116276e97fef3966103e96416209f7c92"
+checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "memoffset"
-version = "0.6.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "memoffset"
 version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
@@ -1933,9 +1966,9 @@ dependencies = [
 
 [[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",
  "simd-adler32",
@@ -1955,14 +1988,15 @@ dependencies = [
 
 [[package]]
 name = "ndk"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0"
+checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "jni-sys",
+ "log",
  "ndk-sys",
- "num_enum 0.5.11",
+ "num_enum",
  "raw-window-handle",
  "thiserror",
 ]
@@ -1975,40 +2009,15 @@ checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
 
 [[package]]
 name = "ndk-sys"
-version = "0.4.1+23.1.7779620"
+version = "0.5.0+25.2.9519653"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3"
+checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691"
 dependencies = [
  "jni-sys",
 ]
 
 [[package]]
 name = "nix"
-version = "0.24.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069"
-dependencies = [
- "bitflags 1.3.2",
- "cfg-if",
- "libc",
- "memoffset 0.6.5",
-]
-
-[[package]]
-name = "nix"
-version = "0.25.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4"
-dependencies = [
- "autocfg",
- "bitflags 1.3.2",
- "cfg-if",
- "libc",
- "memoffset 0.6.5",
-]
-
-[[package]]
-name = "nix"
 version = "0.26.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
@@ -2016,7 +2025,7 @@ dependencies = [
  "bitflags 1.3.2",
  "cfg-if",
  "libc",
- "memoffset 0.7.1",
+ "memoffset",
 ]
 
 [[package]]
@@ -2048,6 +2057,12 @@ 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"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2090,44 +2105,23 @@ dependencies = [
 
 [[package]]
 name = "num_enum"
-version = "0.5.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9"
-dependencies = [
- "num_enum_derive 0.5.11",
-]
-
-[[package]]
-name = "num_enum"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1"
-dependencies = [
- "num_enum_derive 0.6.1",
-]
-
-[[package]]
-name = "num_enum_derive"
-version = "0.5.11"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799"
+checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845"
 dependencies = [
- "proc-macro-crate",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
+ "num_enum_derive",
 ]
 
 [[package]]
 name = "num_enum_derive"
-version = "0.6.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6"
+checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn 2.0.44",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -2161,29 +2155,25 @@ dependencies = [
 
 [[package]]
 name = "objc-sys"
-version = "0.2.0-beta.2"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df3b9834c1e95694a05a828b59f55fa2afec6288359cda67146126b3f90a55d7"
+checksum = "c7c71324e4180d0899963fc83d9d241ac39e699609fc1025a850aadac8257459"
 
 [[package]]
 name = "objc2"
-version = "0.3.0-beta.3.patch-leaks.3"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e01640f9f2cb1220bbe80325e179e532cb3379ebcd1bf2279d703c19fe3a468"
+checksum = "559c5a40fdd30eb5e344fbceacf7595a81e242529fb4e21cf5f43fb4f11ff98d"
 dependencies = [
- "block2",
  "objc-sys",
  "objc2-encode",
 ]
 
 [[package]]
 name = "objc2-encode"
-version = "2.0.0-pre.2"
+version = "3.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abfcac41015b00a120608fdaa6938c44cb983fee294351cc4bac7638b4e50512"
-dependencies = [
- "objc-sys",
-]
+checksum = "d079845b37af429bfe5dfa76e6d087d788031045b25cfc6fd898486fd9847666"
 
 [[package]]
 name = "objc_id"
@@ -2257,16 +2247,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
+name = "pin-project-lite"
+version = "0.2.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+
+[[package]]
 name = "pkg-config"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a"
+checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
 
 [[package]]
 name = "png"
-version = "0.17.10"
+version = "0.17.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64"
+checksum = "1f6c3c3e617595665b8ea2ff95a86066be38fb121ff920a9c0eb282abcd1da5a"
 dependencies = [
  "bitflags 1.3.2",
  "crc32fast",
@@ -2276,6 +2272,20 @@ dependencies = [
 ]
 
 [[package]]
+name = "polling"
+version = "3.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "545c980a3880efd47b2e262f6a4bb6daad6555cf3367aa9c4e52895f69537a41"
+dependencies = [
+ "cfg-if",
+ "concurrent-queue",
+ "pin-project-lite",
+ "rustix",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "powerfmt"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2283,12 +2293,11 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
 
 [[package]]
 name = "proc-macro-crate"
-version = "1.3.1"
+version = "3.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
+checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
 dependencies = [
- "once_cell",
- "toml_edit 0.19.15",
+ "toml_edit",
 ]
 
 [[package]]
@@ -2317,9 +2326,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.73"
+version = "1.0.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dd5e8a1f1029c43224ad5898e50140c2aebb1705f19e67c918ebf5b9e797fe1"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
 dependencies = [
  "unicode-ident",
 ]
@@ -2331,10 +2340,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "794b5bf8e2d19b53dcdcec3e4bba628e20f5b6062503ba89281fa7037dd7bbcf"
 
 [[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.34"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22a37c9326af5ed140c86a46655b5278de879853be5573c01df185b6f49a580a"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
@@ -2376,9 +2394,9 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.10.2"
+version = "1.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -2388,9 +2406,9 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.4.3"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -2410,7 +2428,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94"
 dependencies = [
  "base64",
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "serde",
  "serde_derive",
 ]
@@ -2435,7 +2453,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "rust-embed-utils",
- "syn 2.0.44",
+ "syn 2.0.48",
  "walkdir",
 ]
 
@@ -2457,11 +2475,11 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
 
 [[package]]
 name = "rustix"
-version = "0.38.28"
+version = "0.38.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316"
+checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "errno",
  "libc",
  "linux-raw-sys",
@@ -2512,29 +2530,29 @@ checksum = "58bf37232d3bb9a2c4e641ca2a11d83b5062066f88df7fed36c28772046d65ba"
 
 [[package]]
 name = "serde"
-version = "1.0.193"
+version = "1.0.196"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
+checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.193"
+version = "1.0.196"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
+checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.44",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.109"
+version = "1.0.113"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb0652c533506ad7a2e353cce269330d6afd8bdfb6d75e0ace5b35aacbd7b9e9"
+checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79"
 dependencies = [
  "itoa",
  "ryu",
@@ -2604,6 +2622,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
 
 [[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"
@@ -2614,37 +2641,53 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.11.2"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
 
 [[package]]
 name = "smithay-client-toolkit"
-version = "0.16.1"
+version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "870427e30b8f2cbe64bf43ec4b86e88fe39b0a84b3f15efd9c9c2d020bc86eb9"
+checksum = "60e3d9941fa3bacf7c2bf4b065304faa14164151254cd16ce1b1bc8fc381600f"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "calloop",
- "dlib",
- "lazy_static",
+ "calloop-wayland-source",
+ "cursor-icon",
+ "libc",
  "log",
- "memmap2 0.5.10",
- "nix 0.24.3",
- "pkg-config",
+ "memmap2 0.9.4",
+ "rustix",
+ "thiserror",
+ "wayland-backend",
  "wayland-client",
+ "wayland-csd-frame",
  "wayland-cursor",
  "wayland-protocols",
+ "wayland-protocols-wlr",
+ "wayland-scanner",
+ "xkeysym",
 ]
 
 [[package]]
 name = "smithay-clipboard"
-version = "0.6.6"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a345c870a1fae0b1b779085e81b51e614767c239e93503588e54c5b17f4b0e8"
+checksum = "0bb62b280ce5a5cba847669933a0948d00904cf83845c944eae96a4738cea1a6"
 dependencies = [
+ "libc",
  "smithay-client-toolkit",
- "wayland-client",
+ "wayland-backend",
+]
+
+[[package]]
+name = "smol_str"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6845563ada680337a52d43bb0b29f396f2d911616f6573012645b9e3d048a49"
+dependencies = [
+ "serde",
 ]
 
 [[package]]
@@ -2678,15 +2721,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
 dependencies = [
  "proc-macro2",
- "quote",
  "unicode-ident",
 ]
 
 [[package]]
 name = "syn"
-version = "2.0.44"
+version = "2.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92d27c2c202598d05175a6dd3af46824b7f747f8d8e9b14c623f19fa5069735d"
+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2708,33 +2750,34 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.53"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2cd5904763bad08ad5513ddbb12cf2ae273ca53fa9f68e843e236ec6dfccc09"
+checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.53"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dcf4a824cce0aeacd6f38ae6f24234c8e80d68632338ebaa1443b5df9e29e19"
+checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.44",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "time"
-version = "0.3.31"
+version = "0.3.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e"
+checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
 dependencies = [
  "deranged",
  "itoa",
  "libc",
+ "num-conv",
  "num_threads",
  "powerfmt",
  "serde",
@@ -2750,10 +2793,11 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.2.16"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f"
+checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
 dependencies = [
+ "num-conv",
  "time-core",
 ]
 
@@ -2792,14 +2836,14 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.8.8"
+version = "0.8.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
+checksum = "c6a4b9e8023eb94392d3dca65d717c53abc5dad49c07cb65bb8fcd87115fa325"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.21.0",
+ "toml_edit",
 ]
 
 [[package]]
@@ -2813,29 +2857,34 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.19.15"
+version = "0.21.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
+checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
 dependencies = [
  "indexmap",
+ "serde",
+ "serde_spanned",
  "toml_datetime",
  "winnow",
 ]
 
 [[package]]
-name = "toml_edit"
-version = "0.21.0"
+name = "tracing"
+version = "0.1.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
 dependencies = [
- "indexmap",
- "serde",
- "serde_spanned",
- "toml_datetime",
- "winnow",
+ "pin-project-lite",
+ "tracing-core",
 ]
 
 [[package]]
+name = "tracing-core"
+version = "0.1.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+
+[[package]]
 name = "ttf-parser"
 version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2877,9 +2926,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"
@@ -2926,12 +2975,6 @@ dependencies = [
 ]
 
 [[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.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2955,9 +2998,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.89"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
+checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -2965,24 +3008,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.89"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826"
+checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.44",
+ "syn 2.0.48",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.39"
+version = "0.4.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12"
+checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -2992,9 +3035,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.89"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2"
+checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -3002,113 +3045,137 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.89"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
+checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.44",
+ "syn 2.0.48",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.89"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f"
+checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b"
 
 [[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.3.2",
+ "cc",
  "downcast-rs",
- "libc",
- "nix 0.24.3",
+ "rustix",
  "scoped-tls",
- "wayland-commons",
+ "smallvec",
+ "wayland-sys",
+]
+
+[[package]]
+name = "wayland-client"
+version = "0.31.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "82fb96ee935c2cea6668ccb470fb7771f6215d1691746c2d896b447a00ad3f1f"
+dependencies = [
+ "bitflags 2.4.2",
+ "rustix",
+ "wayland-backend",
  "wayland-scanner",
- "wayland-sys 0.29.5",
 ]
 
 [[package]]
-name = "wayland-commons"
-version = "0.29.5"
+name = "wayland-csd-frame"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902"
+checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e"
 dependencies = [
- "nix 0.24.3",
- "once_cell",
- "smallvec",
- "wayland-sys 0.29.5",
+ "bitflags 2.4.2",
+ "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.3",
+ "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.3.2",
+ "bitflags 2.4.2",
+ "wayland-backend",
  "wayland-client",
- "wayland-commons",
  "wayland-scanner",
 ]
 
 [[package]]
-name = "wayland-scanner"
-version = "0.29.5"
+name = "wayland-protocols-plasma"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53"
+checksum = "23803551115ff9ea9bce586860c5c5a971e360825a0309264102a9495a5ff479"
 dependencies = [
- "proc-macro2",
- "quote",
- "xml-rs",
+ "bitflags 2.4.2",
+ "wayland-backend",
+ "wayland-client",
+ "wayland-protocols",
+ "wayland-scanner",
 ]
 
 [[package]]
-name = "wayland-sys"
-version = "0.29.5"
+name = "wayland-protocols-wlr"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4"
+checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6"
 dependencies = [
- "dlib",
- "lazy_static",
- "pkg-config",
+ "bitflags 2.4.2",
+ "wayland-backend",
+ "wayland-client",
+ "wayland-protocols",
+ "wayland-scanner",
+]
+
+[[package]]
+name = "wayland-scanner"
+version = "0.31.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "63b3a62929287001986fb58c789dce9b67604a397c15c611ad9f747300b6c283"
+dependencies = [
+ "proc-macro2",
+ "quick-xml",
+ "quote",
 ]
 
 [[package]]
 name = "wayland-sys"
-version = "0.30.1"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96b2a02ac608e07132978689a6f9bf4214949c85998c247abadd4f4129b1aa06"
+checksum = "15a0c8eaff5216d07f226cb7a549159267f3467b289d9a2e52fd3ef5aae2b7af"
 dependencies = [
  "dlib",
- "lazy_static",
  "log",
+ "once_cell",
  "pkg-config",
 ]
 
 [[package]]
 name = "web-sys"
-version = "0.3.66"
+version = "0.3.67"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f"
+checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -3182,25 +3249,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
-name = "windows"
-version = "0.52.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
-dependencies = [
- "windows-core",
- "windows-targets 0.52.0",
-]
-
-[[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.45.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3400,43 +3448,56 @@ checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
 
 [[package]]
 name = "winit"
-version = "0.28.7"
+version = "0.29.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9596d90b45384f5281384ab204224876e8e8bf7d58366d9b795ad99aa9894b94"
+checksum = "4c824f11941eeae66ec71111cc2674373c772f482b58939bb4066b642aa2ffcf"
 dependencies = [
+ "ahash",
  "android-activity",
- "bitflags 1.3.2",
+ "atomic-waker",
+ "bitflags 2.4.2",
+ "bytemuck",
+ "calloop",
  "cfg_aliases",
  "core-foundation",
  "core-graphics",
- "dispatch",
- "instant",
+ "cursor-icon",
+ "icrate",
+ "js-sys",
  "libc",
  "log",
- "mio",
+ "memmap2 0.9.4",
  "ndk",
+ "ndk-sys",
  "objc2",
  "once_cell",
  "orbclient",
  "percent-encoding",
  "raw-window-handle",
  "redox_syscall 0.3.5",
+ "rustix",
  "smithay-client-toolkit",
+ "smol_str",
+ "unicode-segmentation",
  "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wayland-backend",
  "wayland-client",
- "wayland-commons",
  "wayland-protocols",
- "wayland-scanner",
+ "wayland-protocols-plasma",
  "web-sys",
- "windows-sys 0.45.0",
+ "web-time",
+ "windows-sys 0.48.0",
  "x11-dl",
+ "x11rb 0.13.0",
+ "xkbcommon-dl",
 ]
 
 [[package]]
 name = "winnow"
-version = "0.5.31"
+version = "0.5.37"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97a4882e6b134d6c28953a387571f1acdd3496830d5e36c5e3a1075580ea641c"
+checksum = "a7cad8365489051ae9f054164e459304af2e7e9bb407c958076c8bf4aef52da5"
 dependencies = [
  "memchr",
 ]
@@ -3458,11 +3519,26 @@ version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b1641b26d4dec61337c35a1b1aaf9e3cba8f46f0b43636c609ab0291a648040a"
 dependencies = [
- "gethostname",
- "nix 0.26.4",
+ "gethostname 0.3.0",
+ "nix",
  "winapi",
  "winapi-wsapoll",
- "x11rb-protocol",
+ "x11rb-protocol 0.12.0",
+]
+
+[[package]]
+name = "x11rb"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8f25ead8c7e4cba123243a6367da5d3990e0d3affa708ea19dce96356bd9f1a"
+dependencies = [
+ "as-raw-xcb-connection",
+ "gethostname 0.4.3",
+ "libc",
+ "libloading",
+ "once_cell",
+ "rustix",
+ "x11rb-protocol 0.13.0",
 ]
 
 [[package]]
@@ -3471,10 +3547,16 @@ version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "82d6c3f9a0fb6701fab8f6cea9b0c0bd5d6876f1f89f7fada07e558077c344bc"
 dependencies = [
- "nix 0.26.4",
+ "nix",
 ]
 
 [[package]]
+name = "x11rb-protocol"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e63e71c4b8bd9ffec2c963173a4dc4cbde9ee96961d4fcb4429db9929b606c34"
+
+[[package]]
 name = "xcursor"
 version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3487,6 +3569,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a"
 
 [[package]]
+name = "xkbcommon-dl"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6924668544c48c0133152e7eec86d644a056ca3d09275eb8d5cdb9855f9d8699"
+dependencies = [
+ "bitflags 2.4.2",
+ "dlib",
+ "log",
+ "once_cell",
+ "xkeysym",
+]
+
+[[package]]
+name = "xkeysym"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "054a8e68b76250b253f671d1268cb7f1ae089ec35e195b2efb2a4e9a836d0621"
+
+[[package]]
 name = "xml-rs"
 version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3509,5 +3610,5 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.44",
+ "syn 2.0.48",
 ]
diff --git a/pkgs/tools/system/amdgpu_top/default.nix b/pkgs/tools/system/amdgpu_top/default.nix
index 3b220a919fef..8fec618e942a 100644
--- a/pkgs/tools/system/amdgpu_top/default.nix
+++ b/pkgs/tools/system/amdgpu_top/default.nix
@@ -14,18 +14,18 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "amdgpu_top";
-  version = "0.6.1";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "Umio-Yasuno";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-/8fYoIp0EezqamKYoZYLllKm5BmljJ0iRpaM2uSPw5Q=";
+    hash = "sha256-8fEYIrBh+O+bL3szKHvAD+wBTY+ScxBZvjpNufmfYYA=";
   };
 
   cargoLock = {
     outputHashes = {
-      "libdrm_amdgpu_sys-0.4.1" = "sha256-4z6f0vQHF2sAbvAoGMTrAzI953bjsA7Kw719HDuhjg4=";
+      "libdrm_amdgpu_sys-0.5.0" = "sha256-Sqq3Qnt6hMUubhVgetFCPMFqRrcJuGDT9V4ZRaNgcpQ=";
     };
     lockFile = ./Cargo.lock;
   };
diff --git a/pkgs/tools/system/automatic-timezoned/default.nix b/pkgs/tools/system/automatic-timezoned/default.nix
index f421517e18a1..d8d2fb0ccf23 100644
--- a/pkgs/tools/system/automatic-timezoned/default.nix
+++ b/pkgs/tools/system/automatic-timezoned/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "automatic-timezoned";
-  version = "1.0.139";
+  version = "1.0.147";
 
   src = fetchFromGitHub {
     owner = "maxbrunet";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ZFmALMhZPwsea+UWIyGeKh8x9wmMQlNjJ2m1Ym4FOcM=";
+    sha256 = "sha256-4+Sad0Z1JbkUJWyszo0cK3xTR8HLuR3i74ljWXxPqPw=";
   };
 
-  cargoHash = "sha256-UZMaEqhMNYZHa2UHLtCPK+8XN1Jl54BZmFZn4NB+Nn8=";
+  cargoHash = "sha256-humC32QujjmcSvRioGAciNFCJXwoepAgO9zDGfdUheY=";
 
   meta = with lib; {
     description = "Automatically update system timezone based on location";
diff --git a/pkgs/tools/system/btop/default.nix b/pkgs/tools/system/btop/default.nix
index 47d0808c4903..b95fdc7578a2 100644
--- a/pkgs/tools/system/btop/default.nix
+++ b/pkgs/tools/system/btop/default.nix
@@ -1,4 +1,5 @@
 { lib
+, config
 , stdenv
 , fetchFromGitHub
 , cmake
@@ -6,6 +7,8 @@
 , removeReferencesTo
 , btop
 , testers
+, cudaSupport ? config.cudaSupport
+, cudaPackages
 }:
 
 stdenv.mkDerivation rec {
@@ -19,7 +22,9 @@ stdenv.mkDerivation rec {
     hash = "sha256-QQM2/LO/EHovhj+S+4x3ro/aOVrtuxteVVvYAd6feTk=";
   };
 
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ] ++ lib.optionals cudaSupport [
+    cudaPackages.autoAddOpenGLRunpathHook
+  ];
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk_11_0.frameworks.CoreFoundation
diff --git a/pkgs/tools/system/datefudge/default.nix b/pkgs/tools/system/datefudge/default.nix
index e32fb70e2e09..f1810c24a8fe 100644
--- a/pkgs/tools/system/datefudge/default.nix
+++ b/pkgs/tools/system/datefudge/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "datefudge";
-  version = "1.24";
+  version = "1.25";
 
   src = fetchgit {
     url = "https://salsa.debian.org/debian/${pname}.git";
     rev = "debian/${version}";
-    sha256 = "1nh433yx4y4djp0bs6aawqbwk7miq7fsbs9wpjlyh2k9dvil2lrm";
+    sha256 = "sha256-FDrwd5kahIfKGfUBIm7BBuqHwrQ/+UE1gRQrJNd031o=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/system/ddrescue/default.nix b/pkgs/tools/system/ddrescue/default.nix
index d18225a93b9b..2b5e7e7bd33e 100644
--- a/pkgs/tools/system/ddrescue/default.nix
+++ b/pkgs/tools/system/ddrescue/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ddrescue";
-  version = "1.27";
+  version = "1.28";
 
   src = fetchurl {
     url = "mirror://gnu/ddrescue/ddrescue-${version}.tar.lz";
-    sha256 = "sha256-OMgMmMWkTxXlNmPkUQCX/WjW7CB1jv3zqSUDfBgyMus=";
+    sha256 = "sha256-ZibAenyhzB0DytCVhSLFJ5sVYiLTLDQugRF8/vrrEME=";
   };
 
   nativeBuildInputs = [ lzip ];
diff --git a/pkgs/tools/system/fakechroot/default.nix b/pkgs/tools/system/fakechroot/default.nix
index fd8fa04d21d2..2357d87cc153 100644
--- a/pkgs/tools/system/fakechroot/default.nix
+++ b/pkgs/tools/system/fakechroot/default.nix
@@ -39,6 +39,11 @@ stdenv.mkDerivation rec {
       url = "https://github.com/dex4er/fakechroot/commit/e7c1f3a446e594a4d0cce5f5d499c9439ce1d5c5.patch";
       sha256 = "sha256-eX6kB4U1ZlXoRtkSVEIBTRjO/cTS/7z5a9S366DiRMg=";
     })
+    # pass __readlinkat_chk buffer length
+    (fetchpatch {
+      url = "https://github.com/dex4er/fakechroot/pull/115/commits/15479d9436b534cee0115064bd8deb8d4ece9b8c.patch";
+      hash = "sha256-wMIZ3hW5XkRXQYBMADlN6kxhDSiEr84PGWBW+f4b4Ko=";
+    })
   ];
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/tools/system/kanata/default.nix b/pkgs/tools/system/kanata/default.nix
index 706382d3dd04..eab7fb3d4b17 100644
--- a/pkgs/tools/system/kanata/default.nix
+++ b/pkgs/tools/system/kanata/default.nix
@@ -1,4 +1,6 @@
-{ lib
+{ stdenv
+, lib
+, darwin
 , rustPlatform
 , fetchFromGitHub
 , withCmd ? false
@@ -17,8 +19,15 @@ rustPlatform.buildRustPackage rec {
 
   cargoHash = "sha256-IzgVF6SHJjOB48VehQ5taD5iWQXFKLcVBWTEl3ArkGQ=";
 
+  buildInputs = lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.IOKit ];
+
   buildFeatures = lib.optional withCmd "cmd";
 
+  # Workaround for https://github.com/nixos/nixpkgs/issues/166205
+  env = lib.optionalAttrs stdenv.cc.isClang {
+    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
+  };
+
   postInstall = ''
     install -Dm 444 assets/kanata-icon.svg $out/share/icons/hicolor/scalable/apps/kanata.svg
   '';
@@ -27,8 +36,8 @@ rustPlatform.buildRustPackage rec {
     description = "A tool to improve keyboard comfort and usability with advanced customization";
     homepage = "https://github.com/jtroo/kanata";
     license = licenses.lgpl3Only;
-    maintainers = with maintainers; [ linj ];
-    platforms = platforms.linux;
+    maintainers = with maintainers; [ bmanuel linj ];
+    platforms = platforms.unix;
     mainProgram = "kanata";
   };
 }
diff --git a/pkgs/tools/system/netdata/go.d.plugin.nix b/pkgs/tools/system/netdata/go.d.plugin.nix
index 71af680b238c..c741d1d62beb 100644
--- a/pkgs/tools/system/netdata/go.d.plugin.nix
+++ b/pkgs/tools/system/netdata/go.d.plugin.nix
@@ -1,17 +1,17 @@
-{ lib, fetchFromGitHub, buildGo121Module, nixosTests }:
+{ lib, fetchFromGitHub, buildGoModule, nixosTests }:
 
-buildGo121Module rec {
+buildGoModule rec {
   pname = "netdata-go-plugins";
-  version = "0.57.2";
+  version = "0.58.0";
 
   src = fetchFromGitHub {
     owner = "netdata";
     repo = "go.d.plugin";
     rev = "v${version}";
-    hash = "sha256-Qtk1/sQxWAGPHid6tPlwylyHvhxwWTJMT8TwCd/gazk=";
+    hash = "sha256-XZBF0uNXTo5UcBuhMVznij+QGhHM06j5J2xflZf40kI=";
   };
 
-  vendorHash = "sha256-SFXf99cSA8sncAzZqj2eiiJFhyD4TXQipGAeM2Hivak=";
+  vendorHash = "sha256-bdW6ZDMYVFGWD7KEDU2kaoccgwbOPl7ADnZ1npGBLAc=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/system/thermald/default.nix b/pkgs/tools/system/thermald/default.nix
index 193287b022d2..1b96a33cdd33 100644
--- a/pkgs/tools/system/thermald/default.nix
+++ b/pkgs/tools/system/thermald/default.nix
@@ -18,7 +18,7 @@
 
 stdenv.mkDerivation rec {
   pname = "thermald";
-  version = "2.5.4";
+  version = "2.5.6";
 
   outputs = [ "out" "devdoc" ];
 
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     owner = "intel";
     repo = "thermal_daemon";
     rev = "v${version}";
-    sha256 = "sha256-5UILKdv+HhilY+NsbMwqqvYjbM3mAeec/lX+CGY0CPE=";
+    sha256 = "sha256-7QoHq3NtBtGJ/ihiAkGWBng9mP+NAUiNX03Fb4T11cg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/system/zps/default.nix b/pkgs/tools/system/zps/default.nix
index 776a53cdc72c..ab093d9e553b 100644
--- a/pkgs/tools/system/zps/default.nix
+++ b/pkgs/tools/system/zps/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zps";
-  version = "1.2.9";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "orhun";
     repo = "zps";
     rev = version;
-    hash = "sha256-+evCYiTiH8tRmhvsse+49WlKGRP5XQtep7wGoCySvJ4=";
+    hash = "sha256-t+y+m9cwngVlX5o7FQTI4FMj10bN0euH51DmAnOAvPc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/system/zram-generator/Cargo.lock b/pkgs/tools/system/zram-generator/Cargo.lock
index 8ed4cdce974e..73baa491f8f7 100644
--- a/pkgs/tools/system/zram-generator/Cargo.lock
+++ b/pkgs/tools/system/zram-generator/Cargo.lock
@@ -127,9 +127,9 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.152"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "liboverdrop"
@@ -192,9 +192,9 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.76"
+version = "1.0.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
 dependencies = [
  "unicode-ident",
 ]
@@ -259,9 +259,9 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.30"
+version = "0.38.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca"
+checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
 dependencies = [
  "bitflags 2.4.2",
  "errno",
diff --git a/pkgs/tools/text/ascii/default.nix b/pkgs/tools/text/ascii/default.nix
index f596c8d330d2..b48d9d0cb4ae 100644
--- a/pkgs/tools/text/ascii/default.nix
+++ b/pkgs/tools/text/ascii/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ascii";
-  version = "3.18";
+  version = "3.19";
 
   src = fetchurl {
     url = "http://www.catb.org/~esr/ascii/${pname}-${version}.tar.gz";
-    sha256 = "0b87vy06s8s3a8q70pqavsbk4m4ff034sdml2xxa6qfsykaj513j";
+    sha256 = "sha256-+dou/tgvJFZY+VYeW3VoCecerw5adzWsW+uSTN2ppWA=";
   };
 
   prePatch = ''
diff --git a/pkgs/tools/text/autocorrect/Cargo.lock b/pkgs/tools/text/autocorrect/Cargo.lock
index 82fb056857c2..5e272adb048d 100644
--- a/pkgs/tools/text/autocorrect/Cargo.lock
+++ b/pkgs/tools/text/autocorrect/Cargo.lock
@@ -19,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
 name = "aho-corasick"
-version = "1.0.5"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c378d78423fdad8089616f827526ee33c19f2fddbd5de1629152c9593ba4783"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
 dependencies = [
  "memchr",
 ]
@@ -34,9 +34,9 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
 
 [[package]]
 name = "anstream"
-version = "0.5.0"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1f58811cfac344940f1a400b6e6231ce35171f614f26439e80f8c1465c5cc0c"
+checksum = "d664a92ecae85fd0a7392615844904654d1d5f5514837f471ddef4a057aba1b6"
 dependencies = [
  "anstyle",
  "anstyle-parse",
@@ -48,36 +48,36 @@ dependencies = [
 
 [[package]]
 name = "anstyle"
-version = "1.0.3"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b84bf0a05bbb2a83e5eb6fa36bb6e87baa08193c35ff52bbf6b38d8af2890e46"
+checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
 
 [[package]]
 name = "anstyle-parse"
-version = "0.2.1"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
+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 = "2.1.0"
+version = "3.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58f54d10c6dfa51283a066ceab3ec1ab78d13fae00aa49243a45e4571fb79dfd"
+checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
 dependencies = [
  "anstyle",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -88,7 +88,7 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
 name = "autocorrect"
-version = "2.8.5"
+version = "2.9.0"
 dependencies = [
  "autocorrect-derive 0.3.0",
  "criterion",
@@ -109,9 +109,9 @@ dependencies = [
 
 [[package]]
 name = "autocorrect"
-version = "2.8.5"
+version = "2.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2aa23c243abf88a533e514d8e5455e668daa3a8ca93061d8eb7f22014d7ad1a"
+checksum = "b426e7dbc9997d772eeb5436cbb85e95136fdf7835a8f05085b811e5482ebd49"
 dependencies = [
  "autocorrect-derive 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "diff",
@@ -129,9 +129,9 @@ dependencies = [
 
 [[package]]
 name = "autocorrect-cli"
-version = "2.8.5"
+version = "2.9.0"
 dependencies = [
- "autocorrect 2.8.5",
+ "autocorrect 2.9.0",
  "clap",
  "ignore",
  "lazy_static",
@@ -166,17 +166,17 @@ dependencies = [
 
 [[package]]
 name = "autocorrect-java"
-version = "2.8.5"
+version = "2.9.0"
 dependencies = [
- "autocorrect 2.8.5",
+ "autocorrect 2.9.0",
  "jni",
 ]
 
 [[package]]
 name = "autocorrect-node"
-version = "2.8.5"
+version = "2.9.0"
 dependencies = [
- "autocorrect 2.8.5",
+ "autocorrect 2.9.0",
  "autocorrect-cli",
  "napi",
  "napi-build",
@@ -185,25 +185,25 @@ dependencies = [
 
 [[package]]
 name = "autocorrect-py"
-version = "2.8.5"
+version = "2.9.0"
 dependencies = [
- "autocorrect 2.8.5",
+ "autocorrect 2.9.0",
  "pyo3",
 ]
 
 [[package]]
 name = "autocorrect-rb"
-version = "2.8.5"
+version = "2.9.0"
 dependencies = [
- "autocorrect 2.8.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "autocorrect 2.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "magnus",
 ]
 
 [[package]]
 name = "autocorrect-wasm"
-version = "2.8.5"
+version = "2.9.0"
 dependencies = [
- "autocorrect 2.8.5",
+ "autocorrect 2.9.0",
  "serde",
  "serde_json",
  "wasm-bindgen",
@@ -226,17 +226,17 @@ dependencies = [
 
 [[package]]
 name = "base64"
-version = "0.21.4"
+version = "0.21.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2"
+checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
 
 [[package]]
 name = "bindgen"
-version = "0.66.1"
+version = "0.69.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2b84e06fc203107bfbad243f4aba2af864eb7db3b1cf46ea0a023b0b433d2a7"
+checksum = "9ffcebc3849946a7170a05992aac39da343a90676ab392c51a4280981d6379c2"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "cexpr",
  "clang-sys",
  "lazy_static",
@@ -247,7 +247,7 @@ dependencies = [
  "regex",
  "rustc-hash",
  "shlex",
- "syn 2.0.33",
+ "syn 2.0.40",
 ]
 
 [[package]]
@@ -258,9 +258,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.0"
+version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
 
 [[package]]
 name = "block-buffer"
@@ -273,9 +273,9 @@ dependencies = [
 
 [[package]]
 name = "bstr"
-version = "1.6.2"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c2f7349907b712260e64b0afe2f84692af14a454be26187d9df565c7f69266a"
+checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c"
 dependencies = [
  "memchr",
  "serde",
@@ -364,14 +364,14 @@ checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f"
 dependencies = [
  "glob",
  "libc",
- "libloading",
+ "libloading 0.7.4",
 ]
 
 [[package]]
 name = "clap"
-version = "4.4.3"
+version = "4.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84ed82781cea27b43c9b106a979fe450a13a31aab0500595fb3fc06616de08e6"
+checksum = "bfaff671f6b22ca62406885ece523383b9b64022e341e53e009a62ebc47a45f2"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -379,9 +379,9 @@ dependencies = [
 
 [[package]]
 name = "clap_builder"
-version = "4.4.2"
+version = "4.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2bb9faaa7c2ef94b2743a21f5a29e6f0010dff4caa69ac8e9d6cf8b6fa74da08"
+checksum = "a216b506622bb1d316cd51328dce24e07bdff4a6128a47c7e7fad11878d5adbb"
 dependencies = [
  "anstream",
  "anstyle",
@@ -391,21 +391,21 @@ dependencies = [
 
 [[package]]
 name = "clap_derive"
-version = "4.4.2"
+version = "4.4.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873"
+checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.33",
+ "syn 2.0.40",
 ]
 
 [[package]]
 name = "clap_lex"
-version = "0.5.1"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961"
+checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
 
 [[package]]
 name = "colorchoice"
@@ -445,10 +445,26 @@ dependencies = [
 ]
 
 [[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 = "cpufeatures"
-version = "0.2.9"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
+checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
 dependencies = [
  "libc",
 ]
@@ -499,16 +515,6 @@ dependencies = [
 ]
 
 [[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.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -553,12 +559,12 @@ dependencies = [
 
 [[package]]
 name = "ctor"
-version = "0.2.4"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f34ba9a9bcb8645379e9de8cb3ecfcf4d1c85ba66d90deb3259206fa5aa193b"
+checksum = "37e366bff8cd32dd8754b0991fb66b279dc48f598c3a18914852a6673deef583"
 dependencies = [
  "quote",
- "syn 2.0.33",
+ "syn 2.0.40",
 ]
 
 [[package]]
@@ -606,48 +612,37 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
 name = "errno"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd"
-dependencies = [
- "errno-dragonfly",
- "libc",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
+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]]
 name = "fastrand"
-version = "2.0.0"
+version = "2.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
 
 [[package]]
 name = "filetime"
-version = "0.2.22"
+version = "0.2.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0"
+checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
 dependencies = [
  "cfg-if",
  "libc",
  "redox_syscall",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "flate2"
-version = "1.0.27"
+version = "1.0.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
 dependencies = [
  "crc32fast",
  "miniz_oxide",
@@ -661,66 +656,54 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
 name = "form_urlencoded"
-version = "1.2.0"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
 dependencies = [
  "percent-encoding",
 ]
 
 [[package]]
 name = "futures-channel"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb"
 dependencies = [
  "futures-core",
 ]
 
 [[package]]
 name = "futures-core"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c"
 
 [[package]]
 name = "futures-io"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
-
-[[package]]
-name = "futures-macro"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.33",
-]
+checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa"
 
 [[package]]
 name = "futures-sink"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817"
 
 [[package]]
 name = "futures-task"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2"
 
 [[package]]
 name = "futures-util"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104"
 dependencies = [
  "futures-core",
  "futures-io",
- "futures-macro",
  "futures-task",
  "memchr",
  "pin-project-lite",
@@ -739,10 +722,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "getrandom"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
 name = "gimli"
-version = "0.28.0"
+version = "0.28.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
 name = "glob"
@@ -752,22 +746,22 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
 name = "globset"
-version = "0.4.13"
+version = "0.4.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d"
+checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1"
 dependencies = [
  "aho-corasick",
  "bstr",
- "fnv",
  "log",
- "regex",
+ "regex-automata",
+ "regex-syntax",
 ]
 
 [[package]]
 name = "h2"
-version = "0.3.21"
+version = "0.3.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833"
+checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178"
 dependencies = [
  "bytes",
  "fnv",
@@ -775,7 +769,7 @@ dependencies = [
  "futures-sink",
  "futures-util",
  "http",
- "indexmap 1.9.3",
+ "indexmap",
  "slab",
  "tokio",
  "tokio-util",
@@ -790,15 +784,9 @@ checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
 
 [[package]]
 name = "hashbrown"
-version = "0.12.3"
+version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-
-[[package]]
-name = "hashbrown"
-version = "0.14.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 
 [[package]]
 name = "heck"
@@ -808,15 +796,15 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.2"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
 
 [[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",
@@ -825,9 +813,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",
@@ -863,7 +851,7 @@ dependencies = [
  "httpdate",
  "itoa",
  "pin-project-lite",
- "socket2 0.4.9",
+ "socket2 0.4.10",
  "tokio",
  "tower-service",
  "tracing",
@@ -872,9 +860,9 @@ dependencies = [
 
 [[package]]
 name = "hyper-rustls"
-version = "0.24.1"
+version = "0.24.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97"
+checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
 dependencies = [
  "futures-util",
  "http",
@@ -886,9 +874,9 @@ dependencies = [
 
 [[package]]
 name = "idna"
-version = "0.4.0"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
 dependencies = [
  "unicode-bidi",
  "unicode-normalization",
@@ -896,39 +884,28 @@ dependencies = [
 
 [[package]]
 name = "ignore"
-version = "0.4.20"
+version = "0.4.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492"
+checksum = "747ad1b4ae841a78e8aba0d63adbfbeaea26b517b63705d47856b73015d27060"
 dependencies = [
+ "crossbeam-deque",
  "globset",
- "lazy_static",
  "log",
  "memchr",
- "regex",
+ "regex-automata",
  "same-file",
- "thread_local",
  "walkdir",
  "winapi-util",
 ]
 
 [[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",
-]
-
-[[package]]
-name = "indexmap"
-version = "2.0.0"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
 dependencies = [
  "equivalent",
- "hashbrown 0.14.0",
+ "hashbrown",
 ]
 
 [[package]]
@@ -951,9 +928,9 @@ checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306"
 
 [[package]]
 name = "ipnet"
-version = "2.8.0"
+version = "2.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6"
+checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
 
 [[package]]
 name = "is-terminal"
@@ -977,9 +954,9 @@ dependencies = [
 
 [[package]]
 name = "itoa"
-version = "1.0.9"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
 name = "jni"
@@ -1003,9 +980,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
 
 [[package]]
 name = "js-sys"
-version = "0.3.64"
+version = "0.3.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
+checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -1024,9 +1001,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
 
 [[package]]
 name = "libc"
-version = "0.2.148"
+version = "0.2.151"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b"
+checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4"
 
 [[package]]
 name = "libloading"
@@ -1039,16 +1016,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "libloading"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
+dependencies = [
+ "cfg-if",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
 name = "linux-raw-sys"
-version = "0.4.7"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a9bad9f94746442c783ca431b22403b519cd7fbeed0533fdd6328b2f2212128"
+checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456"
 
 [[package]]
 name = "lock_api"
-version = "0.4.10"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -1084,9 +1071,9 @@ dependencies = [
 
 [[package]]
 name = "memchr"
-version = "2.6.3"
+version = "2.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c"
+checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
 
 [[package]]
 name = "memoffset"
@@ -1129,9 +1116,9 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.8"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
+checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
 dependencies = [
  "libc",
  "wasi",
@@ -1140,11 +1127,11 @@ dependencies = [
 
 [[package]]
 name = "napi"
-version = "2.13.3"
+version = "2.14.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd063c93b900149304e3ba96ce5bf210cd4f81ef5eb80ded0d100df3e85a3ac0"
+checksum = "1133249c46e92da921bafc8aba4912bf84d6c475f7625183772ed2d0844dc3a7"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "ctor",
  "napi-derive",
  "napi-sys",
@@ -1154,15 +1141,15 @@ dependencies = [
 
 [[package]]
 name = "napi-build"
-version = "2.0.1"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "882a73d9ef23e8dc2ebbffb6a6ae2ef467c0f18ac10711e4cc59c5485d41df0e"
+checksum = "d4b4532cf86bfef556348ac65e561e3123879f0e7566cca6d43a6ff5326f13df"
 
 [[package]]
 name = "napi-derive"
-version = "2.13.0"
+version = "2.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da1c6a8fa84d549aa8708fcd062372bf8ec6e849de39016ab921067d21bde367"
+checksum = "2b0c0743f6a3f29c20851b8377f01d485a837e2bfa57dd56d519ab7ed98ae2af"
 dependencies = [
  "cfg-if",
  "convert_case",
@@ -1174,9 +1161,9 @@ dependencies = [
 
 [[package]]
 name = "napi-derive-backend"
-version = "1.0.52"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "20bbc7c69168d06a848f925ec5f0e0997f98e8c8d4f2cc30157f0da51c009e17"
+checksum = "4869e4d80615fdab57dffe38c36a5bc62fae37352a00a35ee7aca1cea41b1bb3"
 dependencies = [
  "convert_case",
  "once_cell",
@@ -1189,11 +1176,11 @@ dependencies = [
 
 [[package]]
 name = "napi-sys"
-version = "2.2.3"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "166b5ef52a3ab5575047a9fe8d4a030cdd0f63c96f071cd6907674453b07bae3"
+checksum = "2503fa6af34dc83fb74888df8b22afe933b58d37daf7d80424b1c60c68196b8b"
 dependencies = [
- "libloading",
+ "libloading 0.8.1",
 ]
 
 [[package]]
@@ -1208,9 +1195,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.16"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
+checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
 dependencies = [
  "autocfg",
 ]
@@ -1242,9 +1229,9 @@ dependencies = [
 
 [[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 = "oorandom"
@@ -1270,9 +1257,9 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.8"
+version = "0.9.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
  "cfg-if",
  "libc",
@@ -1289,15 +1276,15 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
 
 [[package]]
 name = "percent-encoding"
-version = "2.3.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "pest"
-version = "2.7.3"
+version = "2.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7a4d085fd991ac8d5b05a147b437791b4260b76326baf0fc60cf7c9c27ecd33"
+checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5"
 dependencies = [
  "memchr",
  "thiserror",
@@ -1306,9 +1293,9 @@ dependencies = [
 
 [[package]]
 name = "pest_derive"
-version = "2.7.3"
+version = "2.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2bee7be22ce7918f641a33f08e3f43388c7656772244e2bbb2477f44cc9021a"
+checksum = "81d78524685f5ef2a3b3bd1cafbc9fcabb036253d9b1463e726a91cd16e2dfc2"
 dependencies = [
  "pest",
  "pest_generator",
@@ -1316,22 +1303,22 @@ dependencies = [
 
 [[package]]
 name = "pest_generator"
-version = "2.7.3"
+version = "2.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1511785c5e98d79a05e8a6bc34b4ac2168a0e3e92161862030ad84daa223141"
+checksum = "68bd1206e71118b5356dae5ddc61c8b11e28b09ef6a31acbd15ea48a28e0c227"
 dependencies = [
  "pest",
  "pest_meta",
  "proc-macro2",
  "quote",
- "syn 2.0.33",
+ "syn 2.0.40",
 ]
 
 [[package]]
 name = "pest_meta"
-version = "2.7.3"
+version = "2.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b42f0394d3123e33353ca5e1e89092e533d2cc490389f2bd6131c43c634ebc5f"
+checksum = "7c747191d4ad9e4a4ab9c8798f1e82a39affe7ef9648390b7e5548d18e099de6"
 dependencies = [
  "once_cell",
  "pest",
@@ -1390,9 +1377,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.67"
+version = "1.0.70"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328"
+checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b"
 dependencies = [
  "unicode-ident",
 ]
@@ -1477,9 +1464,9 @@ dependencies = [
 
 [[package]]
 name = "rayon"
-version = "1.7.0"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
+checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
 dependencies = [
  "either",
  "rayon-core",
@@ -1487,30 +1474,28 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.11.0"
+version = "1.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
+checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
 dependencies = [
- "crossbeam-channel",
  "crossbeam-deque",
  "crossbeam-utils",
- "num_cpus",
 ]
 
 [[package]]
 name = "rb-sys"
-version = "0.9.81"
+version = "0.9.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a57240b308b155b09dce81e32829966a99f52d1088b45957e4283e526c5317a1"
+checksum = "7e5b8d560b60790a3e60e56e73a8c7be88ac14e6af39fc82b5eca72c71753840"
 dependencies = [
  "rb-sys-build",
 ]
 
 [[package]]
 name = "rb-sys-build"
-version = "0.9.81"
+version = "0.9.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f24ce877a4c5d07f06f6aa6fec3ac95e4b357b9f73b0f5445d8cbb7266d410e8"
+checksum = "c2d2bfd00002007d7e9ad93d0397437933040caf452d260c26dbef5fd95ae1a6"
 dependencies = [
  "bindgen",
  "lazy_static",
@@ -1518,7 +1503,7 @@ dependencies = [
  "quote",
  "regex",
  "shell-words",
- "syn 2.0.33",
+ "syn 2.0.40",
 ]
 
 [[package]]
@@ -1529,18 +1514,18 @@ checksum = "a35802679f07360454b418a5d1735c89716bde01d35b1560fc953c1415a0b3bb"
 
 [[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 = "regex"
-version = "1.9.5"
+version = "1.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47"
+checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -1550,9 +1535,9 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.3.8"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795"
+checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -1561,15 +1546,15 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.5"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "reqwest"
-version = "0.11.20"
+version = "0.11.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1"
+checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b"
 dependencies = [
  "base64",
  "bytes",
@@ -1593,6 +1578,7 @@ dependencies = [
  "serde",
  "serde_json",
  "serde_urlencoded",
+ "system-configuration",
  "tokio",
  "tokio-rustls",
  "tower-service",
@@ -1606,17 +1592,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",
- "web-sys",
- "winapi",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -1633,22 +1618,22 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
 
 [[package]]
 name = "rustix"
-version = "0.38.13"
+version = "0.38.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7db8590df6dfcd144d22afd1b83b36c21a18d7cbc1dc4bb5295a8712e9eb662"
+checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "errno",
  "libc",
  "linux-raw-sys",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "rustls"
-version = "0.21.7"
+version = "0.21.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8"
+checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
 dependencies = [
  "log",
  "ring",
@@ -1658,18 +1643,18 @@ dependencies = [
 
 [[package]]
 name = "rustls-pemfile"
-version = "1.0.3"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2"
+checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
 dependencies = [
  "base64",
 ]
 
 [[package]]
 name = "rustls-webpki"
-version = "0.101.5"
+version = "0.101.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45a27e3b59326c16e23d30aeb7a36a24cc0d29e71d68ff611cdfb4a01d013bed"
+checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
 dependencies = [
  "ring",
  "untrusted",
@@ -1677,9 +1662,9 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.15"
+version = "1.0.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
 
 [[package]]
 name = "same-file"
@@ -1698,9 +1683,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[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",
  "untrusted",
@@ -1728,35 +1713,35 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.18"
+version = "1.0.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
+checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
 
 [[package]]
 name = "serde"
-version = "1.0.188"
+version = "1.0.193"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
+checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.188"
+version = "1.0.193"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
+checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.33",
+ "syn 2.0.40",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.107"
+version = "1.0.108"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"
+checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
 dependencies = [
  "itoa",
  "ryu",
@@ -1765,13 +1750,13 @@ dependencies = [
 
 [[package]]
 name = "serde_repr"
-version = "0.1.16"
+version = "0.1.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00"
+checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.33",
+ "syn 2.0.40",
 ]
 
 [[package]]
@@ -1788,11 +1773,11 @@ dependencies = [
 
 [[package]]
 name = "serde_yaml"
-version = "0.9.25"
+version = "0.9.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a49e178e4452f45cb61d0cd8cebc1b0fafd3e41929e996cef79aa3aca91f574"
+checksum = "3cc7a1570e38322cfe4154732e5110f887ea57e22b76f4bfd32b5bdd3368666c"
 dependencies = [
- "indexmap 2.0.0",
+ "indexmap",
  "itoa",
  "ryu",
  "serde",
@@ -1801,9 +1786,9 @@ dependencies = [
 
 [[package]]
 name = "sha2"
-version = "0.10.7"
+version = "0.10.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -1833,15 +1818,15 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.11.0"
+version = "1.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
+checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
 
 [[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",
@@ -1849,9 +1834,9 @@ dependencies = [
 
 [[package]]
 name = "socket2"
-version = "0.5.4"
+version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e"
+checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
 dependencies = [
  "libc",
  "windows-sys 0.48.0",
@@ -1859,9 +1844,9 @@ dependencies = [
 
 [[package]]
 name = "spin"
-version = "0.5.2"
+version = "0.9.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
 
 [[package]]
 name = "strsim"
@@ -1892,9 +1877,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.33"
+version = "2.0.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9caece70c63bfba29ec2fed841a09851b14a235c60010fa4de58089b6c025668"
+checksum = "13fa70a4ee923979ffb522cacce59d34421ebdea5625e1073c4326ef9d2dd42e"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1902,6 +1887,27 @@ dependencies = [
 ]
 
 [[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 = "tar"
 version = "0.4.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1914,15 +1920,15 @@ dependencies = [
 
 [[package]]
 name = "target-lexicon"
-version = "0.12.11"
+version = "0.12.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a"
+checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a"
 
 [[package]]
 name = "tempfile"
-version = "3.8.0"
+version = "3.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef"
+checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
 dependencies = [
  "cfg-if",
  "fastrand",
@@ -1933,32 +1939,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.48"
+version = "1.0.50"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7"
+checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.48"
+version = "1.0.50"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35"
+checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.33",
-]
-
-[[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",
+ "syn 2.0.40",
 ]
 
 [[package]]
@@ -1997,9 +1993,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.32.0"
+version = "1.35.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9"
+checksum = "841d45b238a16291a4e1584e61820b8ae57d696cc5015c459c229ccc6990cc1c"
 dependencies = [
  "backtrace",
  "bytes",
@@ -2007,20 +2003,20 @@ dependencies = [
  "mio",
  "num_cpus",
  "pin-project-lite",
- "socket2 0.5.4",
+ "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.33",
+ "syn 2.0.40",
 ]
 
 [[package]]
@@ -2035,9 +2031,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-util"
-version = "0.7.8"
+version = "0.7.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d"
+checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
 dependencies = [
  "bytes",
  "futures-core",
@@ -2055,35 +2051,34 @@ 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",
  "pin-project-lite",
  "tracing-core",
 ]
 
 [[package]]
 name = "tracing-core"
-version = "0.1.31"
+version = "0.1.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
+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 = "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 = "ucd-trie"
@@ -2093,9 +2088,9 @@ checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.13"
+version = "0.3.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416"
 
 [[package]]
 name = "unicode-ident"
@@ -2132,15 +2127,15 @@ checksum = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa"
 
 [[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.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
 dependencies = [
  "form_urlencoded",
  "idna",
@@ -2186,9 +2181,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
 dependencies = [
  "cfg-if",
  "serde",
@@ -2198,24 +2193,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.33",
+ "syn 2.0.40",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.37"
+version = "0.4.39"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03"
+checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -2225,9 +2220,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -2235,28 +2230,28 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.33",
+ "syn 2.0.40",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f"
 
 [[package]]
 name = "web-sys"
-version = "0.3.64"
+version = "0.3.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
+checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -2264,9 +2259,9 @@ dependencies = [
 
 [[package]]
 name = "webpki-roots"
-version = "0.25.2"
+version = "0.25.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc"
+checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10"
 
 [[package]]
 name = "winapi"
@@ -2286,9 +2281,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",
 ]
@@ -2318,6 +2313,15 @@ dependencies = [
 ]
 
 [[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.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2348,6 +2352,21 @@ dependencies = [
 ]
 
 [[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.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2360,6 +2379,12 @@ 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.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2372,6 +2397,12 @@ 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.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2384,6 +2415,12 @@ 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.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2396,6 +2433,12 @@ 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.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2408,6 +2451,12 @@ 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.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2420,6 +2469,12 @@ 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.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2432,6 +2487,12 @@ 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"
@@ -2443,11 +2504,13 @@ dependencies = [
 
 [[package]]
 name = "xattr"
-version = "1.0.1"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985"
+checksum = "d367426ae76bdfce3d8eaea6e94422afd6def7d46f9c89e2980309115b3c2c41"
 dependencies = [
  "libc",
+ "linux-raw-sys",
+ "rustix",
 ]
 
 [[package]]
diff --git a/pkgs/tools/text/autocorrect/default.nix b/pkgs/tools/text/autocorrect/default.nix
index fa1214762b29..676eec70076c 100644
--- a/pkgs/tools/text/autocorrect/default.nix
+++ b/pkgs/tools/text/autocorrect/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, rustPlatform, fetchFromGitHub, Security }:
+{ lib, stdenv, rustPlatform, fetchFromGitHub, Security, SystemConfiguration }:
 
 rustPlatform.buildRustPackage rec {
   pname = "autocorrect";
-  version = "2.8.5";
+  version = "2.9.0";
 
   src = fetchFromGitHub {
     owner = "huacnlee";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-j59yCGGV6yiT6o+VKM1FPh87T4QG0qAeKgcKIAqpx+8=";
+    sha256 = "sha256-NCDJoKOH4ZaXtGXZ7bgOXrjgrY8Edui+EOOI8/yfW08=";
   };
 
   cargoLock = {
@@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec {
     cp ${./Cargo.lock} Cargo.lock
   '';
 
-  buildInputs = lib.optional stdenv.isDarwin Security;
+  buildInputs = lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
 
   cargoBuildFlags = [ "-p" "autocorrect-cli" ];
   cargoTestFlags = [ "-p" "autocorrect-cli" ];
diff --git a/pkgs/tools/text/comrak/default.nix b/pkgs/tools/text/comrak/default.nix
index 83dd18e0c037..3b9af32c2833 100644
--- a/pkgs/tools/text/comrak/default.nix
+++ b/pkgs/tools/text/comrak/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "comrak";
-  version = "0.20.0";
+  version = "0.21.0";
 
   src = fetchFromGitHub {
     owner = "kivikakk";
     repo = pname;
     rev = version;
-    sha256 = "sha256-E7aSbqBest7NxphPOsxG2n5z6QdtTiYaFmgRmLh3cCI=";
+    sha256 = "sha256-gYEq2kfSLaGdVQxmHTZ8O55f4Iwj9FKjUmlNq5+QtXI=";
   };
 
-  cargoSha256 = "sha256-SQ+G1rdiAfQj8MwjTiCgtPD5O8+jD3PSHy+rBUJlj2g=";
+  cargoHash = "sha256-rkSq18cFSlTJsZ7DvpJbXYUsg5k86Jk6bgpdO5nP6CE=";
 
   meta = with lib; {
     description = "A CommonMark-compatible GitHub Flavored Markdown parser and formatter";
diff --git a/pkgs/tools/text/crowdin-cli/default.nix b/pkgs/tools/text/crowdin-cli/default.nix
index c02021790ca0..1a4115dc4964 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.16.0";
+  version = "3.17.0";
 
   src = fetchurl {
     url = "https://github.com/crowdin/${pname}/releases/download/${version}/${pname}.zip";
-    hash = "sha256-/K9K82ioF/fczDY3kaNXUm0TdA9Y6xaUUYUIiRgWKvo=";
+    hash = "sha256-thiwggDtzQsfbzwWF2tTMRQHfktq+W9fBH6QT7t2gKc=";
   };
 
   nativeBuildInputs = [ installShellFiles makeWrapper unzip ];
diff --git a/pkgs/tools/text/diffstat/default.nix b/pkgs/tools/text/diffstat/default.nix
index 15baee3c39d1..0b10014e0e6e 100644
--- a/pkgs/tools/text/diffstat/default.nix
+++ b/pkgs/tools/text/diffstat/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "diffstat";
-  version = "1.65";
+  version = "1.66";
 
   src = fetchurl {
     urls = [
       "ftp://ftp.invisible-island.net/diffstat/diffstat-${version}.tgz"
       "https://invisible-mirror.net/archives/diffstat/diffstat-${version}.tgz"
     ];
-    sha256 = "sha256-jPJ0JJJt682FkhdVw5FVWSiCRL0QP2LXQNxrg7VXooo=";
+    sha256 = "sha256-9UUxu+Mujg+kYfAYtB469Ra2MggBcvNh8F5QNn7Ltp4=";
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/text/difftastic/Cargo.lock b/pkgs/tools/text/difftastic/Cargo.lock
index 3170c0454f42..f0bca647bebb 100644
--- a/pkgs/tools/text/difftastic/Cargo.lock
+++ b/pkgs/tools/text/difftastic/Cargo.lock
@@ -253,7 +253,7 @@ checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
 
 [[package]]
 name = "difftastic"
-version = "0.54.0"
+version = "0.55.0"
 dependencies = [
  "aho-corasick",
  "assert_cmd",
@@ -1053,9 +1053,9 @@ dependencies = [
 
 [[package]]
 name = "tree-sitter"
-version = "0.20.9"
+version = "0.20.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4423c784fe11398ca91e505cdc71356b07b1a924fc8735cfab5333afe3e18bc"
+checksum = "e747b1f9b7b931ed39a548c1fae149101497de3c1fc8d9e18c62c1a66c683d3d"
 dependencies = [
  "cc",
  "regex",
diff --git a/pkgs/tools/text/difftastic/default.nix b/pkgs/tools/text/difftastic/default.nix
index c38edc9af64f..e5c04d1e4cd3 100644
--- a/pkgs/tools/text/difftastic/default.nix
+++ b/pkgs/tools/text/difftastic/default.nix
@@ -17,13 +17,13 @@ in
 
 rustPlatform.buildRustPackage rec {
   pname = "difftastic";
-  version = "0.54.0";
+  version = "0.55.0";
 
   src = fetchFromGitHub {
     owner = "wilfred";
     repo = pname;
     rev = version;
-    hash = "sha256-1QnDBRhJGzKKMmvnwVoi8rTd6acBFO0hITF9d1HkizM=";
+    hash = "sha256-ltlgZoR94BrF6FOOUnSNZf3Uagu5AZjxE7yxOwWWMzU=";
   };
 
   cargoLock = {
diff --git a/pkgs/tools/text/diffutils/default.nix b/pkgs/tools/text/diffutils/default.nix
index 35e0fb5e6b96..040f363fa55d 100644
--- a/pkgs/tools/text/diffutils/default.nix
+++ b/pkgs/tools/text/diffutils/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
     lib.optional (coreutils != null) "PR_PROGRAM=${coreutils}/bin/pr"
     ++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) "gl_cv_func_getopt_gnu=yes";
 
-  doCheck = !(stdenv.buildPlatform.isAarch64 && stdenv.buildPlatform.isMusl);
+  doCheck = true;
 
   meta = with lib; {
     homepage = "https://www.gnu.org/software/diffutils/diffutils.html";
diff --git a/pkgs/tools/text/dos2unix/default.nix b/pkgs/tools/text/dos2unix/default.nix
index 5505893b4ec6..9785b21e0dcb 100644
--- a/pkgs/tools/text/dos2unix/default.nix
+++ b/pkgs/tools/text/dos2unix/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "dos2unix";
-  version = "7.5.1";
+  version = "7.5.2";
 
   src = fetchurl {
     url = "https://waterlan.home.xs4all.nl/dos2unix/${pname}-${version}.tar.gz";
-    sha256 = "sha256-2gd4i7LgKbDWP2Rx0Wb2hSis2Nos8UgjoYjoqdXB/BU=";
+    sha256 = "sha256-JkdCRGYIRC60j5bCCvbaMDyzqSs2TnLLfiT4gjnEvzo=";
   };
 
   nativeBuildInputs = [ perl gettext ];
diff --git a/pkgs/tools/text/fanficfare/default.nix b/pkgs/tools/text/fanficfare/default.nix
index 7d27a45b56fd..1fd4988bb39e 100644
--- a/pkgs/tools/text/fanficfare/default.nix
+++ b/pkgs/tools/text/fanficfare/default.nix
@@ -2,20 +2,28 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "FanFicFare";
-  version = "4.25.0";
+  version = "4.30.0";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ky6N/AcfoXJahW7tw++WtnpTnpRv4ZUraMTWjVXDjEE=";
+    hash = "sha256-bUJWpl0sBN7ljr1tPDW2a346NsgLhWexl/kzdXTki1o=";
   };
 
+  nativeBuildInputs = with python3Packages; [
+    setuptools
+  ];
+
   propagatedBuildInputs = with python3Packages; [
     beautifulsoup4
+    brotli
     chardet
     cloudscraper
     html5lib
     html2text
+    requests
     requests-file
+    urllib3
   ];
 
   doCheck = false; # no tests exist
diff --git a/pkgs/tools/text/gawk/fix-typos-corrected-in-libharu-2.4.4.patch b/pkgs/tools/text/gawk/fix-typos-corrected-in-libharu-2.4.4.patch
new file mode 100644
index 000000000000..6b4a416a718c
--- /dev/null
+++ b/pkgs/tools/text/gawk/fix-typos-corrected-in-libharu-2.4.4.patch
@@ -0,0 +1,62 @@
+diff --git a/haru/pdf.c b/haru/pdf.c
+index d16f573..3129427 100644
+--- a/haru/pdf.c
++++ b/haru/pdf.c
+@@ -105,7 +105,7 @@ static awk_scalar_t HPDF_CS_PATTERN_node;
+ /*  LineCap */
+ static awk_scalar_t HPDF_BUTT_END_node;
+ static awk_scalar_t HPDF_ROUND_END_node;
+-static awk_scalar_t HPDF_PROJECTING_SCUARE_END_node;
++static awk_scalar_t HPDF_PROJECTING_SQUARE_END_node;
+ 
+ /*  _LineJoin */
+ static awk_scalar_t HPDF_MITER_JOIN_node;
+@@ -248,7 +248,7 @@ static awk_scalar_t HPDF_ENCODER_UNKNOWN_node;
+ /* ByteType */
+ static awk_scalar_t HPDF_BYTE_TYPE_SINGLE_node;
+ static awk_scalar_t HPDF_BYTE_TYPE_LEAD_node;
+-static awk_scalar_t HPDF_BYTE_TYPE_TRIAL_node;
++static awk_scalar_t HPDF_BYTE_TYPE_TRAIL_node;
+ static awk_scalar_t HPDF_BYTE_TYPE_UNKNOWN_node;
+ 
+ /* TextAlignment */
+@@ -308,7 +308,7 @@ static const struct varinit varinit[] = {
+ 	ENTRY(HPDF_CS_PATTERN, 1)
+ 	ENTRY(HPDF_BUTT_END, 1)
+ 	ENTRY(HPDF_ROUND_END, 1)
+-	ENTRY(HPDF_PROJECTING_SCUARE_END, 1)
++	ENTRY(HPDF_PROJECTING_SQUARE_END, 1)
+ 	ENTRY(HPDF_MITER_JOIN, 1)
+ 	ENTRY(HPDF_ROUND_JOIN, 1)
+ 	ENTRY(HPDF_BEVEL_JOIN, 1)
+@@ -417,7 +417,7 @@ static const struct varinit varinit[] = {
+ 	ENTRY(HPDF_ENCODER_UNKNOWN, 1)
+ 	ENTRY(HPDF_BYTE_TYPE_SINGLE, 1)
+ 	ENTRY(HPDF_BYTE_TYPE_LEAD, 1)
+-	ENTRY(HPDF_BYTE_TYPE_TRIAL, 1)
++	ENTRY(HPDF_BYTE_TYPE_TRAIL, 1)
+ 	ENTRY(HPDF_BYTE_TYPE_UNKNOWN, 1)
+ 	ENTRY(HPDF_TALIGN_LEFT, 1)
+ 	ENTRY(HPDF_TALIGN_RIGHT, 1)
+diff --git a/haru/pdf.h b/haru/pdf.h
+index a4ef39a..07cf168 100644
+--- a/haru/pdf.h
++++ b/haru/pdf.h
+@@ -86,7 +86,7 @@
+ 
+ #define DEFAULT_HPDF_BUTT_END HPDF_BUTT_END
+ #define DEFAULT_HPDF_ROUND_END HPDF_ROUND_END
+-#define DEFAULT_HPDF_PROJECTING_SCUARE_END HPDF_PROJECTING_SCUARE_END
++#define DEFAULT_HPDF_PROJECTING_SQUARE_END HPDF_PROJECTING_SQUARE_END
+ 
+ /*  _LineJoin */
+ #define DEFAULT_HPDF_MITER_JOIN HPDF_MITER_JOIN
+@@ -229,7 +229,7 @@
+ /* ByteType */
+ #define DEFAULT_HPDF_BYTE_TYPE_SINGLE HPDF_BYTE_TYPE_SINGLE
+ #define DEFAULT_HPDF_BYTE_TYPE_LEAD HPDF_BYTE_TYPE_LEAD
+-#define DEFAULT_HPDF_BYTE_TYPE_TRIAL HPDF_BYTE_TYPE_TRIAL 
++#define DEFAULT_HPDF_BYTE_TYPE_TRAIL HPDF_BYTE_TYPE_TRAIL
+ #define DEFAULT_HPDF_BYTE_TYPE_UNKNOWN HPDF_BYTE_TYPE_UNKNOWN 
+ 
+ /* TextAlignment */
diff --git a/pkgs/tools/text/gawk/gawkextlib.nix b/pkgs/tools/text/gawk/gawkextlib.nix
index 9a25407d7116..be50b93a7e2f 100644
--- a/pkgs/tools/text/gawk/gawkextlib.nix
+++ b/pkgs/tools/text/gawk/gawkextlib.nix
@@ -5,7 +5,7 @@
 
 let
   buildExtension = lib.makeOverridable
-    ({ name, gawkextlib, extraBuildInputs ? [ ], doCheck ? true }:
+    ({ name, gawkextlib, extraBuildInputs ? [ ], doCheck ? true, patches ? [ ] }:
       let is_extension = gawkextlib != null;
       in stdenv.mkDerivation rec {
         pname = "gawkextlib-${name}";
@@ -17,6 +17,8 @@ let
           sha256 = "sha256-0p3CrQ3TBl7UcveZytK/9rkAzn69RRM2GwY2eCeqlkg=";
         };
 
+        inherit patches;
+
         postPatch = ''
           cd ${name}
         '';
@@ -83,12 +85,16 @@ let
       name = "gd";
       extraBuildInputs = [ gd ];
     };
-    # Build has been broken: https://github.com/NixOS/nixpkgs/issues/191072
-    # haru = buildExtension {
-    #   inherit gawkextlib;
-    #   name = "haru";
-    #   extraBuildInputs = [ libharu ];
-    # };
+    haru = buildExtension {
+      inherit gawkextlib;
+      name = "haru";
+      extraBuildInputs = [ libharu ];
+      patches = [
+        # Renames references to two identifiers with typos that libharu fixed in 2.4.4
+        # https://github.com/libharu/libharu/commit/88271b73c68c521a49a15e3555ef00395aa40810
+        ./fix-typos-corrected-in-libharu-2.4.4.patch
+      ];
+    };
     json = buildExtension {
       inherit gawkextlib;
       name = "json";
diff --git a/pkgs/tools/text/groff/site.tmac b/pkgs/tools/text/groff/site.tmac
index 07923f120009..6f0f18dea6d5 100644
--- a/pkgs/tools/text/groff/site.tmac
+++ b/pkgs/tools/text/groff/site.tmac
@@ -1,13 +1,26 @@
 .
 .if n \{\
-.  \" Character translations for non-keyboard
-.  \" characters - to make them searchable
+.  \" With groff 1.23.0 "[t]he 'utf8' output device now maps the input
+.  \" characters '^' (caret, circumflex accent, or 'hat') and '~' (tilde)
+.  \" to U+02C6 (modifier letter circumflex accent) and U+02DC (small tilde),
+.  \" respectively, for consistency with groff's other output devices.
+.  \" This change is expected to expose glyph usage errors in man pages.
+.  \" See [http://git.savannah.gnu.org/cgit/groff.git/tree/PROBLEMS] for
+.  \" a recipe that will conceal these errors"
+.  \" -- https://lists.gnu.org/archive/html/groff/2023-07/msg00051.html
+.  \"
+.  \" Conceal glyph usage errors in man pages with the following
+.  \" character translations for non-keyboard characters to make them searchable.
 .  if '\*[.T]'utf8' \{\
 .    char \- \N'45'
 .    char - \N'45'
-.    char ' \N'39'
-.    char \' \N'39'
+.    char \' \[aq]
+.    char ' \[aq]
+.    char ` \[ga]
+.    char ^ \[ha]
+.    char ~ \[ti]
 .  \}
+.\}
 .
 .ds doc-default-operating-system Nixpkgs
 .ds doc-volume-operating-system Nixpkgs
diff --git a/pkgs/tools/text/markdownlint-cli/default.nix b/pkgs/tools/text/markdownlint-cli/default.nix
index 73718d121e07..cfe92cf9e42b 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.38.0";
+  version = "0.39.0";
 
   src = fetchFromGitHub {
     owner = "igorshubovych";
     repo = "markdownlint-cli";
     rev = "v${version}";
-    hash = "sha256-3PiienQjyJQ/ElY4j0Ccu+r6KtIu1kuPlobHqXE0GY4=";
+    hash = "sha256-kNnTSSu55zqOwKCPxXhCmGOseDzAWaB6oToyWDSe0Cc=";
   };
 
-  npmDepsHash = "sha256-WoXyWn58E4+Lj3LWqr/8JbvAo5IcjLgnzhIt59bSqV4=";
+  npmDepsHash = "sha256-mpqLI9wYxp9g6uO/Peau51KS4KdNmVulb6sVO1uDC6c=";
 
   dontNpmBuild = true;
 
diff --git a/pkgs/tools/text/mawk/default.nix b/pkgs/tools/text/mawk/default.nix
index 412467deacca..54e1e303fd4c 100644
--- a/pkgs/tools/text/mawk/default.nix
+++ b/pkgs/tools/text/mawk/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "mawk";
-  version = "1.3.4-20230525";
+  version = "1.3.4-20240123";
 
   src = fetchurl {
     urls = [
       "ftp://ftp.invisible-island.net/mawk/mawk-${version}.tgz"
       "https://invisible-mirror.net/archives/mawk/mawk-${version}.tgz"
     ];
-    sha256 = "sha256-VjnRS7kSQ3Oz1/lX0rklrYrZZW1GISw/I9vKgQzJJp8=";
+    sha256 = "sha256-qOMZqDdEsfH7aYjfoYnWGIf4ZukUDMmknrADsrBlXog=";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
diff --git a/pkgs/tools/text/mdbook-i18n-helpers/default.nix b/pkgs/tools/text/mdbook-i18n-helpers/default.nix
index a0c80149d6af..e00103b2c4f3 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.0";
+  version = "0.3.2";
 
   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-oS1U76BgTW+YnhyLPRTlIg03RR9s5oybFIdCm3MVkvc=";
+    hash = "sha256-+lXIqq8T6jUkvxzvUnvRDmJg6BnT6rNK67kTm3krR0E=";
   };
 
-  cargoHash = "sha256-bDv6pJTFs6U5vnWy5vcLv28Mjf7zrepsfs+JCu00xkA=";
+  cargoHash = "sha256-xQwag3mlcLKI2ERhp+Sug8FZ6LMxnG4P1JaZNtrzdk8=";
 
   meta = with lib; {
     description = "Helpers for a mdbook i18n workflow based on Gettext";
diff --git a/pkgs/tools/text/mdbook-pagetoc/default.nix b/pkgs/tools/text/mdbook-pagetoc/default.nix
index 5e9738c1c140..acfec960829a 100644
--- a/pkgs/tools/text/mdbook-pagetoc/default.nix
+++ b/pkgs/tools/text/mdbook-pagetoc/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook-pagetoc";
-  version = "0.1.8";
+  version = "0.1.9";
 
   src = fetchFromGitHub {
     owner = "slowsage";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-yFgzgppGX3moLt7X4Xa6Cqs7v5OYJMjXKTV0sqRFL3o=";
+    hash = "sha256-g7UaQZzIdpv4hZgEtoJ6fyPgA9yQPw3LiATwngjHnWE=";
   };
 
-  cargoHash = "sha256-U5KNkUXqCU3cVYOqap19aYpaTyY91kGaGxcW8oxsUxI=";
+  cargoHash = "sha256-qSsZaXneGW6zspgy8wHFZvRyTexy6VdySleZv0ieBsI=";
 
   meta = with lib; {
     description = "Table of contents for mdbook (in sidebar)";
diff --git a/pkgs/tools/text/mdbook-pdf/default.nix b/pkgs/tools/text/mdbook-pdf/default.nix
index 9ff9a80214f3..18b234a4ec08 100644
--- a/pkgs/tools/text/mdbook-pdf/default.nix
+++ b/pkgs/tools/text/mdbook-pdf/default.nix
@@ -10,14 +10,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook-pdf";
-  version = "0.1.7";
+  version = "0.1.8";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-3hyvLLBcS7MLAL707tkvW8LGue/x9DudOYhJDDqAdRg=";
+    hash = "sha256-UPSh0/8HFaLvnU95Gyd+uQaRvWeXlp+HViVUKX0I1jI=";
   };
 
-  cargoHash = "sha256-ecIaKSrkqUsQWchkm9uCTXLuQabzGmEz1UqDR13vX8Y=";
+  cargoHash = "sha256-WYG2EkfEqjOOelxwivk5srtTNLxEPGX1ztwntvgft1I=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/tools/text/mecab/default.nix b/pkgs/tools/text/mecab/default.nix
index 8d11343515d0..f1f9fc6503c8 100644
--- a/pkgs/tools/text/mecab/default.nix
+++ b/pkgs/tools/text/mecab/default.nix
@@ -17,6 +17,6 @@ stdenv.mkDerivation (finalAttrs: ((mecab-base finalAttrs) // {
     license = licenses.bsd3;
     platforms = platforms.unix;
     mainProgram = "mecab";
-    maintainers = with maintainers; [ auntie paveloom ];
+    maintainers = with maintainers; [ auntie ];
   };
 }))
diff --git a/pkgs/tools/text/miller/default.nix b/pkgs/tools/text/miller/default.nix
index 09d6929d862a..f1fd15b1fb96 100644
--- a/pkgs/tools/text/miller/default.nix
+++ b/pkgs/tools/text/miller/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "miller";
-  version = "6.10.0";
+  version = "6.11.0";
 
   src = fetchFromGitHub {
     owner = "johnkerl";
     repo = "miller";
     rev = "v${version}";
-    sha256 = "sha256-q807J1VWzfdxz4/KAGGCDQ8Bb4T8wwRRiiIEl6M37Co=";
+    sha256 = "sha256-MmQBj3ANiObyTsAW55Bh9p94Pu+ynySaxHjHjpBacno=";
   };
 
   outputs = [ "out" "man" ];
 
-  vendorHash = "sha256-S8Ew7PaPhdf2QY6BYXTeLF64tn+PBSfNJhAhH9uTOvo=";
+  vendorHash = "sha256-K9B++jinB8iRWb96Lha/gM8/3vPQNd4LoZggGXh7VD4=";
 
   postInstall = ''
     mkdir -p $man/share/man/man1
diff --git a/pkgs/tools/text/nltk_data/default.nix b/pkgs/tools/text/nltk_data/default.nix
index 118598083d5d..6445dd8c06e2 100644
--- a/pkgs/tools/text/nltk_data/default.nix
+++ b/pkgs/tools/text/nltk_data/default.nix
@@ -48,6 +48,11 @@ lib.makeScope newScope (self: {
     location = "taggers";
     hash = "sha256-ilTs4HWPUoHxQb4kWEy3wJ6QsE/98+EQya44gtV2inw=";
   });
+  snowball_data = makeNltkDataPackage ({
+    pname = "snowball_data";
+    location = "stemmers";
+    hash = "sha256-Y6LERPtaRbCtWmJCvMAd2xH02xdrevZBFNYvP9N4+3s=";
+  });
   stopwords = makeNltkDataPackage ({
     pname = "stopwords";
     location = "corpora";
diff --git a/pkgs/tools/text/ov/default.nix b/pkgs/tools/text/ov/default.nix
index c68d51b1e21c..ff5a076c6ecf 100644
--- a/pkgs/tools/text/ov/default.nix
+++ b/pkgs/tools/text/ov/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "ov";
-  version = "0.33.0";
+  version = "0.33.2";
 
   src = fetchFromGitHub {
     owner = "noborus";
     repo = "ov";
     rev = "refs/tags/v${version}";
-    hash = "sha256-UD8YKhdoMAtKTC2KEMEamjgOZb3rv1SU9eXZg/zjYTY=";
+    hash = "sha256-EaAguJPr/FVDfmfbC26zpmkZFnX+3Cdez/zvx2lr4jM=";
   };
 
-  vendorHash = "sha256-T40hnlYhJ3lhrQW7iFBQCGUNblSSYtL8jNw0rPRy/Aw=";
+  vendorHash = "sha256-/S7YKIwuZyQBGIbcPt/ffv8Vx6vzXsk/fDRCIXANPTE=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/text/percollate/default.nix b/pkgs/tools/text/percollate/default.nix
index be38866e5bdc..ea55446aac6e 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.0.4";
+  version = "4.0.5";
 
   src = fetchFromGitHub {
     owner = "danburzo";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Gl9v8WdntiatgxIvH1PZe3U9imGqdm5iYUx8gCwJhLw=";
+    hash = "sha256-St9a22Af2QV3gOR80LmDMeq0x9tf/ZJz9Z4IgeeM80I=";
   };
 
-  npmDepsHash = "sha256-/HYnoMd+rriZ4WYGyM7g62Yii7lc/+ZKkc5QfPpFAQU=";
+  npmDepsHash = "sha256-WHOv5N893G35bMC03aGb2m7rQz5xIRd9hPldbRku+RY=";
 
   dontNpmBuild = true;
 
   # Dev dependencies include an unnecessary Java dependency (epubchecker)
-  # https://github.com/danburzo/percollate/blob/v4.0.4/package.json#L40
+  # https://github.com/danburzo/percollate/blob/v4.0.5/package.json#L40
   npmInstallFlags = [ "--omit=dev" ];
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/text/riffdiff/default.nix b/pkgs/tools/text/riffdiff/default.nix
index 8b71eeec4818..33bbceec6d0c 100644
--- a/pkgs/tools/text/riffdiff/default.nix
+++ b/pkgs/tools/text/riffdiff/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "riffdiff";
-  version = "2.27.1";
+  version = "2.29.1";
 
   src = fetchFromGitHub {
     owner = "walles";
     repo = "riff";
     rev = version;
-    hash = "sha256-cW43nt8Go4VjEwXpCieGYIXwG1XMexslgriMsZ0BB1g=";
+    hash = "sha256-sKZ/VkE2eWmGYjnAxzElZkSQyXyZOzBO3B1lSDU1dO4=";
   };
 
-  cargoHash = "sha256-phTo0XvCiTnBFF5r5myvwmiWnpcYLnkaMLcaXw4oL/Y=";
+  cargoHash = "sha256-8CQDlfJ698BOLQPuYjF0TpLjC93KvN9PvM3kexWnwVs=";
 
   meta = with lib; {
     description = "A diff filter highlighting which line parts have changed";
diff --git a/pkgs/tools/text/rsbkb/default.nix b/pkgs/tools/text/rsbkb/default.nix
index 1510a63b050f..32b8f4387b4e 100644
--- a/pkgs/tools/text/rsbkb/default.nix
+++ b/pkgs/tools/text/rsbkb/default.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rsbkb";
-  version = "1.2.1";
+  version = "1.3";
 
   src = fetchFromGitHub {
     owner = "trou";
     repo = "rsbkb";
     rev = "release-${version}";
-    hash = "sha256-+plf7BoYpEFPRsGKNrvLF8TAU3Z7nyx6Td6uRBoNGiE=";
+    hash = "sha256-SGV7ovaOVnOFlCSyxKrd4Tg8Ak71BzvLgEvCneHhx0w=";
   };
 
-  cargoHash = "sha256-HyosR/5tZCRU2CNnnGITEuESW30Zq3s33UFNcLmEWIA=";
+  cargoHash = "sha256-UC9i1rPdQ4YLQoMQYXyL0j6EUhMwyKuD+vk4z5XLLAk=";
 
   # Setup symlinks for all the utilities,
   # busybox style
diff --git a/pkgs/tools/text/ugrep/default.nix b/pkgs/tools/text/ugrep/default.nix
index a13a7965d5b2..0293f2770a62 100644
--- a/pkgs/tools/text/ugrep/default.nix
+++ b/pkgs/tools/text/ugrep/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "ugrep";
-  version = "4.5.1";
+  version = "4.5.2";
 
   src = fetchFromGitHub {
     owner = "Genivia";
     repo = "ugrep";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-unryRXGuxQXCwzpQW6AJAYQEL3Xvs2u4DH2E3LATQaU=";
+    hash = "sha256-aQJU4SuGJy+TyxBgaHimxc0HtW9ZJIB2b6jxcGIoqo4=";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/text/vale/default.nix b/pkgs/tools/text/vale/default.nix
index 0622e4b5a07a..9ea35d355c72 100644
--- a/pkgs/tools/text/vale/default.nix
+++ b/pkgs/tools/text/vale/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "vale";
-  version = "3.0.5";
+  version = "3.0.7";
 
   subPackages = [ "cmd/vale" ];
   outputs = [ "out" "data" ];
@@ -11,10 +11,10 @@ buildGoModule rec {
     owner = "errata-ai";
     repo = "vale";
     rev = "v${version}";
-    hash = "sha256-tRsfmQ3FkRQgIg3lD8xjbn1iV2QcwDdW5pmKh96+2Gs=";
+    hash = "sha256-wCCW5yJPbXkwkkDywtIBR7gaJG0nLEHIC4xb1LbPa3w=";
   };
 
-  vendorHash = "sha256-AsBbJJQs+pU2UNfEFvNnPwaaabTrXvFBQLcriIA2ST4=";
+  vendorHash = "sha256-uEuzAMsQHTAbKeAPIWu2yoCLhBrQNEYxdmjfzLLWONQ=";
 
   postInstall = ''
     mkdir -p $data/share/vale
diff --git a/pkgs/tools/text/xml/xq/default.nix b/pkgs/tools/text/xml/xq/default.nix
index eaae407bee51..6fae10b25357 100644
--- a/pkgs/tools/text/xml/xq/default.nix
+++ b/pkgs/tools/text/xml/xq/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "xq";
-  version = "1.2.3";
+  version = "1.2.4";
 
   src = fetchFromGitHub {
     owner = "sibprogrammer";
     repo = "xq";
     rev = "v${version}";
-    hash = "sha256-Zg1ARyDXklKBR5WhqRakWT/KcG5796h2MxsBjPCWSjs=";
+    hash = "sha256-g1d5sS3tgxP2VRogWG/5OXezDsJuQ6e724te+Oj3r24=";
   };
 
-  vendorHash = "sha256-NNhndc604B0nGnToS7MtQzpn3t3xPl5DlkCafc/EyKE=";
+  vendorHash = "sha256-Oy/BBE6qCKJQRNDn6UiBr+/Psgi3A9Eaytmbmjt7eq8=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/text/yx/default.nix b/pkgs/tools/text/yx/default.nix
index 629cf442c48b..732be1760c9e 100644
--- a/pkgs/tools/text/yx/default.nix
+++ b/pkgs/tools/text/yx/default.nix
@@ -1,13 +1,19 @@
-{ lib, stdenv, fetchFromGitLab, libyaml }:
+{ lib
+, stdenv
+, fetchFromGitLab
+, libyaml
+, testers
+, yx
+}:
 stdenv.mkDerivation rec {
   pname = "yx";
-  version = "1.0.0";
+  version = "1.0.2";
 
   src = fetchFromGitLab {
     owner = "tomalok";
-    repo = pname;
+    repo = "yx";
     rev = version;
-    sha256 = "sha256-oY61V9xP0DwRooabzi0XtaFsQa2GwYbuvxfERXQtYcA=";
+    hash = "sha256-uuso+hsmdsB7VpIRKob8rfMaWvRMCBHvCFnYrHPC6iw=";
   };
 
   makeFlags = [
@@ -20,6 +26,12 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  passthru.tests.version = testers.testVersion {
+    package = yx;
+    command = "${meta.mainProgram} -v";
+    version = "v${yx.version}";
+  };
+
   meta = with lib; {
     description = "YAML Data Extraction Tool";
     homepage = "https://gitlab.com/tomalok/yx";
diff --git a/pkgs/tools/typesetting/asciidoc/default.nix b/pkgs/tools/typesetting/asciidoc/default.nix
index 66afb6302593..69b0ccff68bd 100644
--- a/pkgs/tools/typesetting/asciidoc/default.nix
+++ b/pkgs/tools/typesetting/asciidoc/default.nix
@@ -33,7 +33,7 @@
 , enableDiagFilter ? false, blockdiag, seqdiag, actdiag, nwdiag
 , enableQrcodeFilter ? false, qrencode
 , enableMatplotlibFilter ? false, matplotlib, numpy
-, enableAafigureFilter ? false, aafigure, recursivePthLoader
+, enableAafigureFilter ? false, aafigure, recursive-pth-loader
 # backends
 , enableDeckjsBackend ? false
 , enableOdfBackend ? false
@@ -180,7 +180,7 @@ in python3.pkgs.buildPythonApplication rec {
     echo "Extracting aafigure filter"
     unzip -d "$out/etc/asciidoc/filters/aafigure" "${aafigureFilterSrc}"
     # Add aafigure to sys.path (and it needs recursive-pth-loader)
-    pth_loader_path="$(toPythonPath ${recursivePthLoader})"
+    pth_loader_path="$(toPythonPath ${recursive-pth-loader})"
     aafigure_path="$(toPythonPath ${aafigure})"
     sed -i "/^import.*sys/asys.path.append(\"$pth_loader_path\"); sys.path.append(\"$aafigure_path\"); import sitecustomize" \
         "$out/etc/asciidoc/filters/aafigure/aafig2img.py"
diff --git a/pkgs/tools/typesetting/lout/default.nix b/pkgs/tools/typesetting/lout/default.nix
index ce3917a92808..d675aceb933f 100644
--- a/pkgs/tools/typesetting/lout/default.nix
+++ b/pkgs/tools/typesetting/lout/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lout";
-  version = "3.42.2";
+  version = "3.43";
 
   src = fetchFromGitHub {
     owner = "william8000";
     repo = pname;
     rev = version;
-    hash = "sha256-rzCRxmwppBno6o4RM2GjE0pe/5yvyzyo375XdfX04As=";
+    hash = "sha256-YUFrlM7BnDlG1rUV90yBvWG6lOKW5qKxs/xdq6I/kI0=";
   };
 
   buildInputs = [ ghostscript ];
diff --git a/pkgs/tools/typesetting/pulldown-cmark/default.nix b/pkgs/tools/typesetting/pulldown-cmark/default.nix
index 9a946eae732d..27b669a0d106 100644
--- a/pkgs/tools/typesetting/pulldown-cmark/default.nix
+++ b/pkgs/tools/typesetting/pulldown-cmark/default.nix
@@ -1,20 +1,18 @@
 { lib
 , rustPlatform
-, fetchFromGitHub
+, fetchCrate
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "pulldown-cmark";
-  version = "0.9.3";
+  version = "0.9.6";
 
-  src = fetchFromGitHub {
-    owner = "raphlinus";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-FK/+6N81qYyFsisPn5SkpubvWMYO7dLX9iHgNY/tAo4=";
+  src = fetchCrate {
+    inherit pname version;
+    hash = "sha256-5rCoFI+QWQVxF4YUzwP7jQytiIzTXtlOr3AJzHMdtR8=";
   };
 
-  cargoHash = "sha256-fcVnIb6WPRk133uTMH0xxmEJ3YgsftsTJXjqfOQQPDI=";
+  cargoHash = "sha256-it18jXKqUE43A6KAsx+BFc7YwufXjk1FJ0u8D2EolHQ=";
 
   meta = {
     description = "A pull parser for CommonMark written in Rust";
diff --git a/pkgs/tools/typesetting/sile/default.nix b/pkgs/tools/typesetting/sile/default.nix
index b82704fc12b1..79e2db12b063 100644
--- a/pkgs/tools/typesetting/sile/default.nix
+++ b/pkgs/tools/typesetting/sile/default.nix
@@ -46,11 +46,11 @@ in
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "sile";
-  version = "0.14.14";
+  version = "0.14.16";
 
   src = fetchurl {
     url = "https://github.com/sile-typesetter/sile/releases/download/v${finalAttrs.version}/sile-${finalAttrs.version}.tar.xz";
-    sha256 = "sha256-xGcbD43yfJ6Ru7mU7R+NxfK1YXnIDwcYMjB++gcNqYg=";
+    sha256 = "sha256-z5dYW33Pd9meMo9s3OcaQHAyT+AB94dvcw+gTGySOFc=";
   };
 
   configureFlags = [
diff --git a/pkgs/tools/typesetting/soupault/default.nix b/pkgs/tools/typesetting/soupault/default.nix
index da3b2b509b1e..82ea1e6f5979 100644
--- a/pkgs/tools/typesetting/soupault/default.nix
+++ b/pkgs/tools/typesetting/soupault/default.nix
@@ -8,7 +8,7 @@
 let
   pname = "soupault";
 
-  version = "4.7.0";
+  version = "4.8.0";
 in
 ocamlPackages.buildDunePackage {
   inherit pname version;
@@ -20,7 +20,7 @@ ocamlPackages.buildDunePackage {
     owner = "PataphysicalSociety";
     repo = pname;
     rev = version;
-    sha256 = "nwXyOwDUbkMnyHPrvCvmToyONdbg5kJm2mt5rWrB6HA=";
+    hash = "sha256-/QpT0zgrfMgRKjHyLHugaAlICpPkqaQ7f8fFAL0P02Y=";
   };
 
   buildInputs = with ocamlPackages; [
diff --git a/pkgs/tools/typesetting/tex/auctex/default.nix b/pkgs/tools/typesetting/tex/auctex/default.nix
index fe053e41be1e..dc027b5c470e 100644
--- a/pkgs/tools/typesetting/tex/auctex/default.nix
+++ b/pkgs/tools/typesetting/tex/auctex/default.nix
@@ -17,7 +17,7 @@ let auctex = stdenv.mkDerivation ( rec {
   buildInputs = [
     emacs
     ghostscript
-    (texliveBasic.withPackages (ps: [ ps.hypdoc ]))
+    (texliveBasic.withPackages (ps: [ ps.etoolbox ps.hypdoc ]))
   ];
 
   preConfigure = ''
diff --git a/pkgs/tools/typesetting/tex/blahtexml/default.nix b/pkgs/tools/typesetting/tex/blahtexml/default.nix
index 43981eb2ae92..fb7605924023 100644
--- a/pkgs/tools/typesetting/tex/blahtexml/default.nix
+++ b/pkgs/tools/typesetting/tex/blahtexml/default.nix
@@ -14,6 +14,11 @@ stdenv.mkDerivation rec {
   postPatch = lib.optionalString stdenv.cc.isClang ''
     substituteInPlace makefile \
       --replace "\$(CXX)" "\$(CXX) -std=c++98"
+  '' +
+  # fix the doc build on TeX Live 2023
+  ''
+    substituteInPlace Documentation/manual.tex \
+      --replace '\usepackage[utf8x]{inputenc}' '\usepackage[utf8]{inputenc}'
   '';
 
   outputs = [ "out" "doc" ];
diff --git a/pkgs/tools/typesetting/tex/texlive/UPGRADING.md b/pkgs/tools/typesetting/tex/texlive/UPGRADING.md
index 302fac3020a6..91bc1c6f49fa 100644
--- a/pkgs/tools/typesetting/tex/texlive/UPGRADING.md
+++ b/pkgs/tools/typesetting/tex/texlive/UPGRADING.md
@@ -72,6 +72,13 @@ CTAN and the various mirrors) and that the build recipe continues to produce
 the same output. Should those assumptions not hold, remove the previous fixed
 hashes for the relevant package, or for all packages.
 
+### Upgrading the ConTeXt binaries
+
+The LuaMetaTeX sources required for ConTeXt are distributed separately from the
+TeX Live tarballs and must be updated manually (see `texlive.bin.context`). You
+must use the latest tarball at https://tug.org/svn/texlive/trunk/Master/source/
+whose revision number is less than or equal to that of the package `context`.
+
 ### Updating the licensing information
 
 The license of each package in texlive is automatically extracted from texlive's
diff --git a/pkgs/tools/typesetting/tex/texlive/bin.nix b/pkgs/tools/typesetting/tex/texlive/bin.nix
index f1816efb0cf9..df4a2862516e 100644
--- a/pkgs/tools/typesetting/tex/texlive/bin.nix
+++ b/pkgs/tools/typesetting/tex/texlive/bin.nix
@@ -2,8 +2,8 @@
 , texlive
 , zlib, libiconv, libpng, libX11
 , freetype, gd, libXaw, icu, ghostscript, libXpm, libXmu, libXext
-, perl, perlPackages, python3Packages, pkg-config
-, libpaper, graphite2, zziplib, harfbuzz, potrace, gmp, mpfr
+, perl, perlPackages, python3Packages, pkg-config, cmake, ninja
+, libpaper, graphite2, zziplib, harfbuzz, potrace, gmp, mpfr, mupdf
 , brotli, cairo, pixman, xorg, clisp, biber, woff2, xxHash
 , makeWrapper, shortenPerlShebang, useFixedHashes, asymptote
 , biber-ms
@@ -34,16 +34,16 @@ let
     "tex4ht" "texlive-scripts-extra" "texware" "tie" "tpic2pdftex" "ttfutils"
     "uptex" "velthuis" "vlna" "web" "xml2pmx" ];
   coreBigPackages = [ "metafont" "mflua" "metapost" "luatex" "luahbtex"
-    "xetex" ] ++ lib.optional withLuaJIT "luajittex";
+    "upmendex" "xetex" ] ++ lib.optional withLuaJIT "luajittex";
   binPackages = lib.getAttrs (corePackages ++ coreBigPackages) tlpdb;
 
   common = {
     src = fetchurl {
       urls = [
-        "http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/${year}/texlive-${year}0321-source.tar.xz"
-              "ftp://tug.ctan.org/pub/tex/historic/systems/texlive/${year}/texlive-${year}0321-source.tar.xz"
+        "http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/${year}/texlive-${year}0313-source.tar.xz"
+              "ftp://tug.ctan.org/pub/tex/historic/systems/texlive/${year}/texlive-${year}0313-source.tar.xz"
       ];
-      hash = "sha256-X/o0heUessRJBJZFD8abnXvXy55TNX2S20vNT9YXm1Y=";
+      hash = "sha256-OHiqDh7QMBwFOw4u5OmtmZxEE0X0iC55vdHI9M6eebk=";
     };
 
     prePatch = ''
@@ -141,12 +141,6 @@ core = stdenv.mkDerivation rec {
     perl
   ];
 
-  patches = [
-    # Fix implicit `int` on `main`, which results in an error when building with clang 16.
-    # This is fixed upstream and can be dropped with the 2023 release.
-    ./fix-implicit-int.patch
-  ];
-
   hardeningDisable = [ "format" ];
 
   preConfigure = ''
@@ -203,7 +197,7 @@ core = stdenv.mkDerivation rec {
 inherit (core-big) metafont mflua metapost luatex luahbtex xetex;
 luajittex = core.big.luajittex or null;
 core-big = stdenv.mkDerivation {
-  pname = "texlive-core-big.bin";
+  pname = "texlive-bin-big";
   inherit version;
 
   __structuredAttrs = true;
@@ -211,20 +205,19 @@ core-big = stdenv.mkDerivation {
   inherit (common) binToOutput src prePatch;
 
   patches = [
-    # improves reproducibility of fmt files. This patch has been proposed upstream,
-    # but they are considering some other approaches as well. This is fairly
-    # conservative so we can safely apply it until they make a decision
-    # https://mailman.ntg.nl/pipermail/dev-luatex/2022-April/006650.html
+    # improves reproducibility of fmt files
+    # see discussion at https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1009196
     (fetchpatch {
-      name = "reproducible_exception_strings.patch";
-      url = "https://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=1009196;filename=reproducible_exception_strings.patch;msg=5";
-      sha256 = "sha256-RNZoEeTcWnrLaltcYrhNIORh42fFdwMzBfxMRWVurbk=";
+      name = "lua_fixed_hash.patch";
+      url = "https://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=1009196;filename=lua_fixed_hash.patch;msg=45";
+      sha256 = "sha256-FTu1eRd3AUU7IRs2/7e7uwHuvZsrzTBPypbcEZkU7y4=";
     })
     # fixes a security-issue in luatex that allows arbitrary code execution even with shell-escape disabled, see https://tug.org/~mseven/luatex.html
+    # fixed in LuaTeX 1.17.0, remove patch when upgrading to TL 2024
     (fetchpatch {
       name = "CVE-2023-32700.patch";
-      url = "https://tug.org/~mseven/luatex-files/2022/patch";
-      hash = "sha256-o9ENLc1ZIIOMX6MdwpBIgrR/Jdw6tYLmAyzW8i/FUbY=";
+      url = "https://tug.org/~mseven/luatex-files/2023/patch";
+      hash = "sha256-AvMedFkZJAFsCJ51eQqBQM4MpzLzn+GeBrzuTzISVkk=";
       excludes = [  "build.sh" ];
       stripLen = 1;
     })
@@ -238,15 +231,12 @@ core-big = stdenv.mkDerivation {
       stripLen = 1;
       extraPrefix = "libs/luajit/LuaJIT-src/";
     })
-    # Fix implicit `int` on `main`, which results in an error when building with clang 16.
-    # This is fixed upstream and can be dropped with the 2023 release.
-    ./fix-implicit-int.patch
   ];
 
   hardeningDisable = [ "format" ];
 
   inherit (core) nativeBuildInputs depsBuildBuild;
-  buildInputs = core.buildInputs ++ [ core cairo harfbuzz icu graphite2 libX11 ];
+  buildInputs = core.buildInputs ++ [ core cairo harfbuzz icu graphite2 libX11 potrace ];
 
   /* deleting the unused packages speeds up configure by a considerable margin
      and ensures we do not rebuild existing libraries by mistake */
@@ -292,8 +282,8 @@ core-big = stdenv.mkDerivation {
 
 
 chktex = stdenv.mkDerivation {
-  pname = "texlive-chktex.bin";
-  inherit version;
+  pname = "chktex";
+  inherit (texlive.pkgs.chktex) version;
 
   inherit (common) src;
 
@@ -309,46 +299,77 @@ chktex = stdenv.mkDerivation {
   enableParallelBuilding = true;
 };
 
+# the LuaMetaTeX engine (distributed since TeX Live 2023) must be built separately
+# the sources used by TL are stored in the source TL repo
+# for details see https://wiki.contextgarden.net/Building_LuaMetaTeX_for_TeX_Live
+context = stdenv.mkDerivation rec {
+  pname = "luametatex";
+  version = "2.10.08";
+
+  src = fetchurl {
+    url = "https://tug.org/svn/texlive/trunk/Master/source/luametatex-${version}.tar.xz?revision=67034&view=co";
+    hash = "sha256-3JeOUQ63jJOZWTxFCoyWjfcrspmdmC/yqgS1JaLfTWk=";
+  };
+
+  enableParallelBuilding = true;
+  nativeBuildInputs = [ cmake ninja ];
+
+  meta = with lib; {
+    description = "The LUAMETATEX engine is a follow up on LUATEX and is again part of CONTEXT development";
+    homepage = "https://www.pragma-ade.nl/luametatex-1.htm";
+    license = licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ apfelkuchen6 xworld21 ];
+  };
+};
 
 dvisvgm = stdenv.mkDerivation {
-  pname = "texlive-dvisvgm.bin";
-  inherit version;
+  pname = "dvisvgm";
+  inherit (texlive.pkgs.dvisvgm) version;
 
   inherit (common) src;
 
   patches = [
+    # do not use deprecated NEWPDF option with Ghostscript >= 10.02.0
+    # https://github.com/mgieseki/dvisvgm/issues/245
     (fetchpatch {
-      url = "https://github.com/mgieseki/dvisvgm/commit/629544928877362d0c6d64f20695f7df3073c5eb.patch";
+      name = "dont-use-NEWPDF-with-GS-10.02.0.patch";
+      url = "https://github.com/mgieseki/dvisvgm/commit/f31cdf14d73f586e2b92b4b0891d097a90274a0b.patch";
+      hash = "sha256-Yf/GhmJYM87M0ITZ/+7q2ZvSYnac4N2/NkTkFlJ2VII=";
       stripLen = 1;
       extraPrefix = "texk/dvisvgm/dvisvgm-src/";
-      hash = "sha256-CBCbc/woaFeLw7aBG/kSVYc3a5Q56zbAB64kK6mRy4g=";
-    })
-
-    (fetchpatch {
-      name = "gcc-13.patch";
-      url = "https://github.com/mgieseki/dvisvgm/commit/d5df85b403602c927fe56a1f692af91182a1facd.patch";
-      stripLen = 1;
-      extraPrefix = "texk/dvisvgm/dvisvgm-src/";
-      hash = "sha256-U5m9jPmfAXOQKaU+aO/h6hEAzHRPqKcdj5k8f5gU9JQ=";
-      excludes = [ "texk/dvisvgm/dvisvgm-src/src/ttf/TTFTable.hpp" ];
     })
   ];
 
+  # since we are running configure directly in texk/dvisvgm,
+  # the option --with-system-potrace is not picked up properly
+  # and dvisvgm tries to build a vendored copy of potrace
+  postPatch = ''
+    cat > texk/dvisvgm/dvisvgm-src/libs/potrace/Makefile <<EOF
+    all:
+    install:
+    EOF
+  '' +
+    # PDF handling requires mutool (from mupdf) since Ghostscript 10.01
+  ''
+    substituteInPlace texk/dvisvgm/dvisvgm-src/src/PDFHandler.cpp \
+      --replace 'Process("mutool"' "Process(\"$(PATH="$HOST_PATH" command -v mutool)\""
+  '';
+
   preConfigure = "cd texk/dvisvgm";
 
   configureFlags = common.configureFlags
     ++ [ "--with-system-kpathsea" ];
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ core brotli ghostscript zlib freetype woff2 potrace xxHash ];
+  buildInputs = [ core brotli ghostscript zlib freetype woff2 potrace xxHash mupdf ];
 
   enableParallelBuilding = true;
 };
 
 
 dvipng = stdenv.mkDerivation {
-  pname = "texlive-dvipng.bin";
-  inherit version;
+  pname = "dvipng";
+  inherit (texlive.pkgs.dvipng) version;
 
   inherit (common) src;
 
@@ -411,8 +432,8 @@ inherit biber;
 inherit biber-ms;
 bibtexu = bibtex8;
 bibtex8 = stdenv.mkDerivation {
-  pname = "texlive-bibtex-x.bin";
-  inherit version;
+  pname = "bibtex-x";
+  inherit (texlive.pkgs.bibtexu) version;
 
   inherit (common) src;
 
@@ -429,8 +450,8 @@ bibtex8 = stdenv.mkDerivation {
 
 
 xdvi = stdenv.mkDerivation {
-  pname = "texlive-xdvi.bin";
-  inherit version;
+  pname = "xdvi";
+  inherit (texlive.pkgs.xdvi) version;
 
   inherit (common) src;
 
@@ -453,7 +474,7 @@ xdvi = stdenv.mkDerivation {
 };
 
 xpdfopen = stdenv.mkDerivation {
-  pname = "texlive-xpdfopen.bin";
+  pname = "xpdfopen";
   inherit (texlive.pkgs.xpdfopen) version;
 
   inherit (common) src;
@@ -471,8 +492,8 @@ xpdfopen = stdenv.mkDerivation {
 {
 
 xindy = stdenv.mkDerivation {
-  pname = "texlive-xindy.bin";
-  inherit version;
+  pname = "xindy";
+  inherit (texlive.pkgs.xindy) version;
 
   inherit (common) src;
 
diff --git a/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix b/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix
index 0074991eaaf6..9a721168591f 100644
--- a/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix
+++ b/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix
@@ -203,14 +203,9 @@ let
     withPackages = reqs: self (args // { requiredTeXPackages = ps: requiredTeXPackages ps ++ reqs ps; __fromCombineWrapper = false; });
   };
 
-  out = (if (! __combine)
-    # meta.outputsToInstall = [ "out" "man" ] is invalid within buildEnv:
-    # checkMeta will notice that there is no actual "man" output, and fail
-    # so we set outputsToInstall from the outside, where it is safe
-    then lib.addMetaAttrs { inherit (pkgList) outputsToInstall; }
-    else x: x) # texlive.combine: man pages used to be part of out
+  out =
 # no indent for git diff purposes
-((buildEnv {
+(buildEnv {
 
   inherit name;
 
@@ -240,6 +235,14 @@ let
   inherit meta passthru;
 
   postBuild =
+    # create outputs
+  lib.optionalString (! __combine) ''
+    for otherOutputName in $outputs ; do
+      if [[ "$otherOutputName" == 'out' ]] ; then continue ; fi
+      otherOutput="otherOutput_$otherOutputName"
+      ln -s "''${!otherOutput}" "''${!otherOutputName}"
+    done
+  '' +
     # environment variables (note: only export the ones that are used in the wrappers)
   ''
     TEXMFROOT="${texmfroot}"
@@ -263,6 +266,9 @@ let
         target="$(readlink "$link")"
       fi
 
+      # skip non-executable files (such as context.lua)
+      if [[ ! -x "$target" ]] ; then continue ; fi
+
       rm "$link"
       makeWrapper "$target" "$link" \
         --inherit-argv0 \
@@ -368,7 +374,16 @@ let
   ''
     texlinks --quiet "$out/bin"
   '' +
+    # temporarily patch mtxrun.lua to generate uuid's deterministically from SOURCE_DATE_EPOCH
+  ''
+    if [[ -e "$out/bin/mtxrun" ]]; then
+      mv "$out"/bin/mtxrun.lua{,.orig}
+      substitute "$TEXMFDIST"/scripts/context/lua/mtxrun.lua "$out"/bin/mtxrun.lua \
+        --replace 'randomseed(math.initialseed)' "randomseed($SOURCE_DATE_EPOCH)"
+    fi
+  '' +
   # texlive postactions (see TeXLive::TLUtils::_do_postaction_script)
+  # this step includes generating the ConTeXt file databases since TL 2023
   (lib.concatMapStrings (pkg: ''
     postaction='${pkg.postactionScript}'
     case "$postaction" in
@@ -377,9 +392,16 @@ let
       *) postInterp= ;;
     esac
     echo "postaction install script for ${pkg.pname}: ''${postInterp:+$postInterp }$postaction install $TEXMFROOT"
-    $postInterp "$TEXMFROOT/$postaction" install "$TEXMFROOT"
+    FORCE_SOURCE_DATE=1 TZ= $postInterp "$TEXMFROOT"/$postaction install "$TEXMFROOT"
   '') (lib.filter (pkg: pkg ? postactionScript) pkgList.tlpkg)) +
+  # restore the original mtxrun.lua
+  ''
+    if [[ -e "$out/bin/mtxrun" ]]; then
+      mv "$out"/bin/mtxrun.lua{.orig,}
+    fi
+  '' +
     # generate formats
+    # TODO generate ConTeXt formats (based on fmtutil.cnf?)
   ''
     # many formats still ignore SOURCE_DATE_EPOCH even when FORCE_SOURCE_DATE=1
     # libfaketime fixes non-determinism related to timestamps ignoring FORCE_SOURCE_DATE
@@ -405,21 +427,6 @@ let
   ''
     rm "$out"/bin/*-sys
   '' +
-  # TODO: a context trigger https://www.preining.info/blog/2015/06/debian-tex-live-2015-the-new-layout/
-    # http://wiki.contextgarden.net/ConTeXt_Standalone#Unix-like_platforms_.28Linux.2FMacOS_X.2FFreeBSD.2FSolaris.29
-
-  # MkIV uses its own lookup mechanism and we need to initialize
-  # caches for it.
-  # We use faketime to fix the embedded timestamps and patch the uuids
-  # with some random but constant values.
-  ''
-    if [[ -e "$out/bin/mtxrun" ]]; then
-      substitute "$TEXMFDIST"/scripts/context/lua/mtxrun.lua mtxrun.lua \
-        --replace 'cache_uuid=osuuid()' 'cache_uuid="e2402e51-133d-4c73-a278-006ea4ed734f"' \
-        --replace 'uuid=osuuid(),' 'uuid="242be807-d17e-4792-8e39-aa93326fc871",'
-      FORCE_SOURCE_DATE=1 TZ= faketime -f '@1980-01-01 00:00:00 x0.001' luatex --luaonly mtxrun.lua --generate
-    fi
-  '' +
   # Get rid of all log files. They are not needed, but take up space
   # and render the build unreproducible by their embedded timestamps
   # and other non-deterministic diagnostics.
@@ -431,5 +438,16 @@ let
     ln -s "$TEXMFDIST" "$out"/share/texmf
   ''
   ;
-}).overrideAttrs (_: { allowSubstitutes = true; }));
+}).overrideAttrs (prev:
+  { allowSubstitutes = true; }
+  # the outputsToInstall must be built by the main derivation for nix-profile-install to work
+  // lib.optionalAttrs (! __combine) ({
+    outputs = pkgList.outputsToInstall;
+    meta = prev.meta // { inherit (pkgList) outputsToInstall; };
+  } // (lib.mapAttrs'
+    (out: drv: { name = "otherOutput_" + out; value = drv; })
+    (lib.getAttrs (builtins.tail pkgList.outputsToInstall) splitOutputs)
+    )
+  )
+);
 in out)
diff --git a/pkgs/tools/typesetting/tex/texlive/build-texlive-package.nix b/pkgs/tools/typesetting/tex/texlive/build-texlive-package.nix
index efbb3a1fb561..db2d0f016b05 100644
--- a/pkgs/tools/typesetting/tex/texlive/build-texlive-package.nix
+++ b/pkgs/tools/typesetting/tex/texlive/build-texlive-package.nix
@@ -99,14 +99,12 @@ let
       # tlpkg is not a true container but a subfolder of the run container
       urlName = pname + (lib.optionalString (tlType != "run" && tlType != "tlpkg") ".${tlType}");
       urls = map (up: "${up}/archive/${urlName}.r${toString revision}.tar.xz") mirrors;
-      # TODO switch to simpler "${name}-${tlOutputName}" (requires new fixed hashes)
-      container = runCommand "texlive-${pname}${lib.optionalString (tlType != "run") ".${tlType}"}-${version}${extraVersion}"
+      container = runCommand "${name}-${tlOutputName}"
         ({
           src = fetchurl { inherit urls sha512; };
-          # save outputName as fixed output derivations cannot change nor override outputName
-          passthru = passthru // { inherit tlOutputName; };
-          # TODO remove tlType from derivation (requires a rebuild)
-          inherit meta stripPrefix tlType;
+          inherit passthru;
+          # save outputName, since fixed output derivations cannot change nor override outputName
+          inherit meta stripPrefix tlOutputName;
         } // lib.optionalAttrs (fixedHash != null) {
           outputHash = fixedHash;
           outputHashAlgo = "sha256";
@@ -114,7 +112,7 @@ let
         })
         (''
           mkdir "$out"
-          if [[ "$tlType"  == "tlpkg" ]]; then
+          if [[ "$tlOutputName"  == "tlpkg" ]]; then
             tar -xf "$src" \
               --strip-components=1 \
               -C "$out" --anchored --exclude=tlpkg/tlpobj --keep-old-files \
@@ -154,8 +152,7 @@ let
     tlu = texliveBinaries.luatex;
   };
 
-  # TODO switch to simpler "${name}" (requires a rebuild)
-  bin = runCommand "texlive-${pname}.bin-${version}"
+  bin = runCommand "${name}"
     {
       inherit meta;
       passthru = passthru // { tlOutputName = "out"; };
@@ -168,7 +165,7 @@ let
         ++ (lib.attrVals (args.scriptExts or [ ]) extToInput);
       nativeBuildInputs = extraNativeBuildInputs;
       # absolute scripts folder
-      scriptsFolder = lib.optionalString (tex ? outPath) (tex.outPath + "/scripts/" + args.scriptsFolder or pname);
+      scriptsFolder = lib.optionals (tex ? outPath) (builtins.map (f: tex.outPath + "/scripts/" + f) (lib.toList args.scriptsFolder or pname));
       # binaries info
       inherit (args) binfiles;
       binlinks = builtins.attrNames (args.binlinks or { });
@@ -183,8 +180,7 @@ let
     '';
 
   # build man, info containers
-  # TODO switch to simpler "${name}-man" (requires a rebuild)
-  man = builtins.removeAttrs (runCommand "texlive-${pname}.man-${version}${extraVersion}"
+  man = builtins.removeAttrs (runCommand "${name}-man"
     {
       inherit meta texdoc;
       passthru = passthru // { tlOutputName = "man"; };
@@ -194,8 +190,7 @@ let
       ln -s {"$texdoc"/doc,"$out"/share}/man
     '') [ "out" ] // lib.optionalAttrs hasBinfiles { out = bin; };
 
-  # TODO switch to simpler "${name}-info" (requires a rebuild)
-  info = builtins.removeAttrs (runCommand "texlive-${pname}.info-${version}${extraVersion}"
+  info = builtins.removeAttrs (runCommand "${name}-info"
     {
       inherit meta texdoc;
       passthru = passthru // { tlOutputName = "info"; };
diff --git a/pkgs/tools/typesetting/tex/texlive/default.nix b/pkgs/tools/typesetting/tex/texlive/default.nix
index a9d6e717318f..5611760ce66c 100644
--- a/pkgs/tools/typesetting/tex/texlive/default.nix
+++ b/pkgs/tools/typesetting/tex/texlive/default.nix
@@ -43,13 +43,13 @@ let
 
   version = {
     # day of the snapshot being taken
-    year = "2023";
-    month = "03";
-    day = "19";
+    year = "2024";
+    month = "01";
+    day = "14";
     # TeX Live version
-    texliveYear = 2022;
+    texliveYear = 2023;
     # final (historic) release or snapshot
-    final = true;
+    final = false;
   };
 
   # The tarballs on CTAN mirrors for the current release are constantly
@@ -63,16 +63,23 @@ let
     "http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/${toString texliveYear}/tlnet-final"
     "ftp://tug.org/texlive/historic/${toString texliveYear}/tlnet-final"
   ] ++ [
+    # CTAN mirrors
+    "https://mirror.ctan.org/systems/texlive/tlnet"
     # daily snapshots hosted by one of the texlive release managers;
-    # used for non-final snapshots and as fallback for final snapshots that have not reached yet the historic mirrors
-    # please note that this server is not meant for large scale deployment and should be avoided on release branches
+    # used for packages that in the meanwhile have been updated or removed from CTAN
+    # and for packages that have not reached yet the historic mirrors
+    # please note that this server is not meant for large scale deployment
     # https://tug.org/pipermail/tex-live/2019-November/044456.html
+    # https://texlive.info/ MUST appear last (see tlpdbxz)
     "https://texlive.info/tlnet-archive/${year}/${month}/${day}/tlnet"
   ];
 
   tlpdbxz = fetchurl {
-    urls = map (up: "${up}/tlpkg/texlive.tlpdb.xz") mirrors;
-    hash = "sha256-vm7DmkH/h183pN+qt1p1wZ6peT2TcMk/ae0nCXsCoMw=";
+    urls = map (up: "${up}/tlpkg/texlive.tlpdb.xz")
+      # use last mirror for daily snapshots as texlive.tlpdb.xz changes every day
+      # TODO make this less hacky
+      (if version.final then mirrors else [ (lib.last mirrors) ]);
+    hash = "sha256-eUG0KVfFPkjOczCsu2GAPRQcvcPrEIGqIsJNRc+AHDs=";
   };
 
   tlpdbNix = runCommand "tlpdb.nix" {
@@ -152,12 +159,12 @@ let
   # The correctness of this collation is tested by tests.texlive.licenses
   licenses = with lib.licenses; {
     scheme-basic = [ free gfl gpl1Only gpl2 gpl2Plus knuth lgpl21 lppl1 lppl13c mit ofl publicDomain ];
-    scheme-bookpub = [ artistic2 asl20 fdl13Only free gfl gpl1Only gpl2 gpl2Plus knuth lgpl21 lppl1 lppl12 lppl13a lppl13c mit ofl publicDomain ];
+    scheme-bookpub = [ artistic2 asl20 bsd3 fdl13Only free gfl gpl1Only gpl2 gpl2Plus knuth lgpl21 lppl1 lppl12 lppl13a lppl13c mit ofl publicDomain ];
     scheme-context = [ bsd2 bsd3 cc-by-sa-40 free gfl gfsl gpl1Only gpl2 gpl2Plus gpl3 gpl3Plus knuth lgpl2 lgpl21
       lppl1 lppl13c mit ofl publicDomain x11 ];
-    scheme-full = [ artistic1-cl8 artistic2 asl20 bsd2 bsd3 bsdOriginal cc-by-10 cc-by-40 cc-by-sa-10 cc-by-sa-20
-      cc-by-sa-30 cc-by-sa-40 cc0 fdl13Only free gfl gfsl gpl1Only gpl2 gpl2Plus gpl3 gpl3Plus isc knuth
-      lgpl2 lgpl21 lgpl3 lppl1 lppl12 lppl13a lppl13c mit ofl publicDomain x11 ];
+    scheme-full = [ artistic1-cl8 artistic2 asl20 bsd2 bsd3 bsdOriginal cc-by-10 cc-by-20 cc-by-30 cc-by-40 cc-by-sa-10 cc-by-sa-20 cc-by-sa-30
+      cc-by-sa-40 cc0 fdl13Only free gfl gfsl gpl1Only gpl2 gpl2Plus gpl3 gpl3Plus isc knuth lgpl2 lgpl21 lgpl3 lppl1 lppl12 lppl13a lppl13c mit
+      ofl publicDomain x11 ];
     scheme-gust = [ artistic1-cl8 asl20 bsd2 bsd3 cc-by-40 cc-by-sa-40 cc0 fdl13Only free gfl gfsl gpl1Only gpl2
       gpl2Plus gpl3 gpl3Plus knuth lgpl2 lgpl21 lppl1 lppl12 lppl13a lppl13c mit ofl publicDomain x11 ];
     scheme-infraonly = [ gpl2 gpl2Plus lgpl21 ];
@@ -167,9 +174,8 @@ let
     scheme-minimal = [ free gpl1Only gpl2 gpl2Plus knuth lgpl21 lppl1 lppl13c mit ofl publicDomain ];
     scheme-small = [ asl20 cc-by-40 cc-by-sa-40 cc0 fdl13Only free gfl gpl1Only gpl2 gpl2Plus gpl3 gpl3Plus knuth
       lgpl2 lgpl21 lppl1 lppl12 lppl13a lppl13c mit ofl publicDomain x11 ];
-    scheme-tetex = [ artistic1-cl8 asl20 bsd2 bsd3 cc-by-40 cc-by-sa-10 cc-by-sa-20 cc-by-sa-30 cc-by-sa-40 cc0
-      fdl13Only free gfl gpl1Only gpl2 gpl2Plus gpl3 gpl3Plus isc knuth lgpl2 lgpl21 lgpl3 lppl1 lppl12 lppl13a
-      lppl13c mit ofl publicDomain x11];
+    scheme-tetex = [ artistic1-cl8 asl20 bsd2 bsd3 cc-by-30 cc-by-40 cc-by-sa-10 cc-by-sa-20 cc-by-sa-30 cc-by-sa-40 cc0 fdl13Only free gfl gpl1Only
+      gpl2 gpl2Plus gpl3 gpl3Plus isc knuth lgpl2 lgpl21 lgpl3 lppl1 lppl12 lppl13a lppl13c mit ofl publicDomain x11 ];
   };
 
   meta = {
diff --git a/pkgs/tools/typesetting/tex/texlive/fix-implicit-int.patch b/pkgs/tools/typesetting/tex/texlive/fix-implicit-int.patch
deleted file mode 100644
index f74409fe1066..000000000000
--- a/pkgs/tools/typesetting/tex/texlive/fix-implicit-int.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -ur a/utils/m-tx/mtx-src/prepmx.c b/utils/m-tx/mtx-src/prepmx.c
---- a/utils/m-tx/mtx-src/prepmx.c	2018-04-28 17:56:18.000000000 -0600
-+++ b/utils/m-tx/mtx-src/prepmx.c	2023-07-11 15:21:26.351024424 -0600
-@@ -769,6 +769,7 @@
- }
- 
- 
-+int
- main(int argc, Char *argv[])
- {  /* ---- Main program ------------------------ */
-   PASCAL_MAIN(argc, argv);
-diff -ur a/utils/pmx/pmx-src/libf2c/main.c b/utils/pmx/pmx-src/libf2c/main.c
---- a/utils/pmx/pmx-src/libf2c/main.c	2016-02-09 22:31:26.000000000 -0700
-+++ b/utils/pmx/pmx-src/libf2c/main.c	2023-07-11 15:49:35.043438384 -0600
-@@ -106,6 +106,7 @@
- #ifdef KR_headers
- main(argc, argv) int argc; char **argv;
- #else
-+int
- main(int argc, char **argv)
- #endif
- {
diff --git a/pkgs/tools/typesetting/tex/texlive/fixed-hashes.nix b/pkgs/tools/typesetting/tex/texlive/fixed-hashes.nix
index adb4a6093564..4e47feed0cd7 100644
--- a/pkgs/tools/typesetting/tex/texlive/fixed-hashes.nix
+++ b/pkgs/tools/typesetting/tex/texlive/fixed-hashes.nix
@@ -12,7 +12,7 @@ abbr-15878={run="1irhcs2zkam6sdl92wk07v5ckg56r6n10hgcjn5im2jpsinsad5k";doc="1z45
 abc-41157={run="0fxnxavk76gayahflpa8f61j63x9y6aym7gqnmn6xfgggyab4qmd";doc="0ipxihm9jkb5dvlrk217275p7r6amnkbh352k07s7k7i7rjg9pmd";source="0461ci1zg2wq3f9qypwkxmyi0rciv8p2zk9rcajs0591fwz3drj5";};
 abnt-55471={run="0zw8vdmqcb5qddc0rf8qd67fwprwjagzy8s9ildgisb7arqmbj5w";doc="00m174q9gxsm23j3fla7m7lj5fbr7iqfw02dz9s6481nfsjh1wgy";};
 abntex2-49248={run="1q7r2j7c5p1f0gbrc3sjd5gjq2mhljf1nj5n5760snhwj3qblr66";doc="1id5yj5kh0qgjywbiajaf5hf9ix9jq8178fv2kvp1yslra7r20s2";};
-abntexto-65705={run="0chm63y8i7fawll6c83ydq62mzmnmyzivg8jgns2aph3vsys45xz";doc="0spy4chd8z2qff3sziwwfx745107szzjgp33q43j54yja0hzyaw2";};
+abntexto-68837={run="1yzmq0rkpmg946zpbcmphn70fpjv8a6n29n66q4x164ay3im089w";doc="03n3b9mk9nyxplaj8vhb43i9fnxvcqr4q30jfbgax50qji7lghdy";};
 aboensis-62977={run="171586kjnfg1qb4wi50mrc9jd8h2ybg6r68kwyhgc5y0gyhyg08c";doc="0qc74wvq6ibxgil36wp0b5s66d7m7axbn0y1qpzy9hyrh8v8jpav";};
 abraces-64967={run="0s1aclk85fcda4nf4i8pl3gvr65vghgcmphpwyi8n7im7kia25y2";doc="0h7nyss6gy8r79ny9klpskbh6bf10rp5f67p1x5wklvpmyaz270i";};
 abspos-64465={run="0qzx59dz7x8pn9jr8g15jsmf4hs27v8qc30phi1g5h39i9c6pmg6";doc="1a3li91yvvw2r62dvp87zzzxni3xllrzp38zg6qxfsn6xbwry9zf";source="10dx92msh53z7sn603vsg740wvbhz8hr6bcn1sjs60snl47f4yf5";};
@@ -25,17 +25,18 @@ accessibility-55777={run="0d7xrsdanx7wnnmc983rfy00r4290rigwx5ils6pfm0br2g5kfsr";
 accfonts-18835={run="10z7c7cgwm62dyzxfnj0jiy328zj3wccqjick37lz641vqifrd4v";doc="17mbr2ydbkc4md6zd34km3d4s2vjmqzfwb2l01n4y30vjz2lzsn1";};
 accsupp-53052={run="156yax2q84naj394xzr8m7hfyl1j7pziw8d6rzkrjjgxs9p9az1j";doc="1ak7xv0hhghgbwmcviirhh1x5y9pb4is8h0a32kdd4hdxjdm7c92";source="0spz8640bdzmirlnc3rwynzvgy5fi58vfs802jzbqxb0ypdg14s7";};
 achemso-65103={run="1chl9nny4lm75qjhv9pbjbgzsm54vj7dlpfdm0gc5yansb70ghcv";doc="1fhszmzl99l2nvp3m95hf44mgqkg2mvfp2sw2nk12k8a7b2n33a4";source="1kd9dhmjp0n0y0cv7437194yhjdsd0ac6qbvx060sw72mb2dbj6j";};
-acmart-64967={run="0h5m6wjy31aid2kyqwkx034b7mzzf6pb6g4xqwg1linajq3377kb";doc="0w0f59fr9nlmgy8f46z7z69gfmsdn0wy7x9g1n47hh8zhr4n7z32";source="04g0byyqwdrf5kc8jrfwz9nswliimxsgn065g895nr0wcywac0s6";};
+acmart-69242={run="1qyzb19sj7s9q05zqb295pl2424ip4w8pspy1hl5d0kja6vcp0kp";doc="0rvi2yz91460ja4r25p2ka79rw3gzji2qplyjrww2sl78k5xa6cy";source="1hcmzbfh7app6w9fvmj29v1qwc7x76w3szjhgx94p9lr9gkja8hk";};
 acmconf-15878={run="17l1kcwv6wk5p752lmanlx0bmh2py4hfxranapgbdrhjpis4jm9i";doc="1vyhkwqg0v3pxjnlwzwnmiffh6b3d9nrwnpaqjm24j9d2sc6cxcx";source="1n8cf6n2fdb88xmnj2m5r3cjz3jlp9n7bn1yr717fsp2ks81pr3f";};
 acro-62925={run="1hzavaicandq6sqz3sy8hj5n3kvkbic34p8id2mslizcw3rmlhhz";doc="05iwf21y45l61fsask04pphxzzjn7h1al8n2wv59jkxyh8vy8dbv";};
 acronym-54758={run="1gq7j83gjzlfbnrnz1cl0lihpdalsn6ww6hqxdfxikm28vynk88g";doc="0zscjwg22s81awq27lhqs14davwbhf5y4zsl9dsq2135rppmmyvv";source="16dds23mj3ha1b64fxz2dnxk7wsrcmhpmpz0zgqda46vaab9qiw9";};
 acroterm-61719={run="0snnpamdf0qqqf3nabl2f4pnabpjxjn949s44lb8wb4lifndyj8d";doc="1ybgfy3x0a3dz5p2gac2w4ai2yc84i28vi6x0bq61ff3v74iqdhc";source="1gja9j0a0v22qqdqy5f3ivrwablrz550gp7nf20054cirjzgr6f2";};
 active-conf-15878={run="1chi30gbr7xjcs7y3p2y8vfg6hany4wbacdm4drha9pa9m5sxqgw";doc="1css89hbdg8zgl7zf2x7vfgbl90x7bjvf0c0m0akjk8fzx936g7k";source="0anxqifjlf96z4vvr031v26s73d1a1sgjp8xv9xxv0kia4l7048n";};
-actuarialangle-51376={run="1cb333pky7vq83gfriza8afy17ag9lm81zr2f3nbjz4vrk7sidqd";doc="0bwyj15r2bf3bqc7y0dbz03bwccwlh9ygcv1frnq6bc758rfksb1";source="169m5msyy0braf61jz721isba94fx5wxinzfsr2yz9hs6ic62dg7";};
-actuarialsymbol-54080={run="0g8vm5wynrlj0764w7l9wfx2zw6ir0hik8nv8djlc96qlp8cm80r";doc="1kqfn2c7rws75yk01962nx2ra94vfh2j8rnfqk7qkip45x7ya172";source="02s6fiv0i0a1jzx4jkbv18rbmnld4gzhv2dfa1gijvzwzr1rpvp2";};
+actuarialangle-67201={run="1cb333pky7vq83gfriza8afy17ag9lm81zr2f3nbjz4vrk7sidqd";doc="0bwyj15r2bf3bqc7y0dbz03bwccwlh9ygcv1frnq6bc758rfksb1";source="169m5msyy0braf61jz721isba94fx5wxinzfsr2yz9hs6ic62dg7";};
+actuarialsymbol-67201={run="0g8vm5wynrlj0764w7l9wfx2zw6ir0hik8nv8djlc96qlp8cm80r";doc="1kqfn2c7rws75yk01962nx2ra94vfh2j8rnfqk7qkip45x7ya172";source="02s6fiv0i0a1jzx4jkbv18rbmnld4gzhv2dfa1gijvzwzr1rpvp2";};
 addfont-58559={run="05a413mb0ksviwbl0y1a14j8y3np5ra5sgjcnbrslrvavf4q2spw";doc="069vk1d1ig38r6a5a87fblq4m429crp79xqccrsk48ixswxafj95";};
 addliga-50912={run="1w9wv0wbv8acc7qvcc5pb5kjxmy2nz95cb990mmgc2lxvvsaw2rl";doc="0q41i3cd16ahpklr1ddmzmfs741x5k30vaz7gz7k8jrf0579nv7w";};
 addlines-49326={run="1rkcpk1c8in0g6dgyc1m6pyz01jbx19gv98jmaiybxgvsa3z11jc";doc="1gaf9ljzkdhwjg460hl79hlwdwi0mrvgs51si8k8gvialng8b1fv";source="1m3l2s1l671n9j7jdsxfljjhrsvh81bayw40v81dm0f68g5hslnf";};
+addtoluatexpath-67821={run="1wzryl229yq1irxpj58qn32l5adhp9sc132y6m46ps283qq6wrin";doc="0xw2bvqdcr761b1i3gh5gg8gfj67sx539hv8jpcdf2scln8zx9bl";};
 adfathesis-26048={run="0j60iq9nzk5kbs12dqx5jk84n14kdlx93mcypwi9b2gn7kyqzn5i";doc="0c6k4xsy0jg95qg45bqk9527kb3k3azyxwpl2zrkw0ld6k47sswz";source="17irbcz9wjnc6rj9f736i2hw4qrjwa1gz5z6w7gvq26b68pkxrw4";};
 adforn-54512={run="1cb6w50xb9wkl6x384dhldrhpjbk5l73x5gzpbm8za4gmh1pc94v";doc="0a1f1rrii1zvd58h2slk2zj032vjqpi480d38rgi2k2j9wlbbyyg";};
 adfsymbols-54512={run="19rr3zdgqlmnrvd61g9bjiqiyn2gpn82fhj4219gqb1l06nqa0ka";doc="059fjvdmd1jgr1flv5181ac3wvby93hyykfshcmr1j06zs8j9kyx";};
@@ -43,14 +44,16 @@ adhocfilelist-29349={run="08fnrvnbrp7534b56hn8w0nm8pbgjli62v34mkalp4qkfb559kh7";
 adigraph-49862={run="077iqsmfa1fpgmnppb7bcnskpa9ap4wa53ip67b4d21pa1arzszq";doc="11z48jaj6xcwrzv8y2byjcs88mdvqi2fqk0nqw3cy5pq7b5m7rap";};
 adjmulticol-63320={run="0wjqjg46gbf44f2x0xf58b3f9bxfkrh21m85mh1xsd5pxdy116fl";doc="01r00mf8skd54xgzqjicl4djjzgnf5fdw5hcbf9p5ixx1zw1jq7l";source="1zyq1r0y3amkqch1lif0dygif0sgwhypscqdsqml6ik2ziv2alzi";};
 adjustbox-64967={run="03fqxxhpc41zkj8g7dwd4p3vs9c0qg95c6bdwwgvn3xkaqn6amjm";doc="11mldsmmp1mcd5kya8bh2zmkgl01ysswcia1lips3vjfiqjp8vp8";source="0qzjxslq3bni6iancxix471sl6455syp1pglnn7xa5lxlfl43ccs";};
-adobemapping-66553={run="1yvf74mlmxmnq9m0wvda9xcna8xnn382bbrzizzjm5w7bk8c4g98";};
+adobemapping-66552={run="1yvf74mlmxmnq9m0wvda9xcna8xnn382bbrzizzjm5w7bk8c4g98";};
 adrconv-46817={run="1wx9a00jky9v8xmjhrjlhbl3kcdxh1n9yybpsr74g2vw4bwdyr70";doc="1ny594a3dvx3jba0lf72kjny60ix6hnnw8gj479ccfj3gw2wv0mp";source="1cndbrbw5hss1qi7z9mgymqrcmvlhj8hxw16qjjzch85xw1nrwzg";};
 adtrees-51618={run="1j38apxxk3klabxrm9kpdf6zbmiqb17is5yqgg1a4576n8paqg4y";doc="1851rqb9gs1wf8wl8f7pqbnxgpikzxzw1n5mg5w0kcwd889g17yc";};
 advdate-20538={run="0wgr84y3k10g6622sm11c4m4wxj73vpklf5i5gnp14yamwi19cn8";doc="0hyq7kn10ajqabmz2r363wfpdi71a9zkv6yr30s9lda0vy5vz4k8";};
+advice-69283={run="0p76w2fj14908vfajmsjjv4kh7d77vyd7x24zylgil07p2s1i86d";doc="13hngcgkihzmam4fc4clkb49a4mzy0ip6vxx06b4gykzq8pdvkkh";source="06bfcx1pv400zk5lyz9i8pg4i8kax370jby6s9p10p91wym2p67d";};
 ae-15878={run="1nbhlv1qp7z8j9bhfrljmpjlcrl346z1r7f4hdxijdql0wxs6a8z";doc="1qgq32xw5micjri99zmznmq8gsli6y9fqdi2l7sv530ri9i7kgxk";source="1ljkgb4qj0wa6yxddx4w8w15z0nw5vnyh0cpzc4vwkc0m03xbrm4";};
 aeguill-15878={run="1klri7b3isxwa9lpc2j857y8r9n9x1av865jm93ha6nrwlzqk7a3";doc="09lcp9in9v7vxck9kaql008qmcvba3g8glbm6rr5iag7nn2vbvj6";};
 aesupp-58253={run="10yd16v85zbkzkxb17gr4kf4li28ims33i1zrkpygbdf10nclxcm";doc="1dydcjdz57kn3gwb3pfm4yp6hr69pyqhy5lhm9pnlcrycvqsn8qr";source="1s41gd7ansh80z6mmwwha7pypaxwxxvrz3sdfj24pa5b2agprq68";};
-afm2pl-54074={run="1nbb9lcxqxj2aary7a65fai3hgj4nwzm690iy0xv62v580krdbck";doc="0cp8il19l9sz997v9lcxkl6r94mnlnbj2lzdrffwd1fv63gkxc6x";};
+affilauthor-68996={run="0xrnjg386xpa34l3n26myqkx2cjk06hmj4wnm2yz29kyj4n8fjsh";doc="1d0fss9fniwwn1d8cmvwyjj6fvl5s9jvmgclh6da7pywdw5xgi3q";};
+afm2pl-66186={run="1nbb9lcxqxj2aary7a65fai3hgj4nwzm690iy0xv62v580krdbck";doc="0akl6by43kha3rr9dwnr3hhnnfqg4lqnxv5pqf64cnp17ih47wx0";};
 afparticle-35900={run="0516hjm1v88vk70ggagkj0s00n465y08fr2ys3f2gychrax425a5";doc="1ajpc55z02q8wgriwzzm4f96dmn5bpi9n81zad6kay7c7vwfa9g5";source="03cx2ak956rdwdd5ya49fh81vdwrzq9y813r1h8qcp618sr3h14n";};
 afthesis-15878={run="16jyz1skb9l78dwphggq23jm14zwhycmkx3kn0sm13dcfifrkxpd";doc="091f4flclyahjlxwa640l7vmrfiyb4wqgkh19caq8fld96zkbjir";};
 aguplus-17156={run="0z7mgsm9pa33gykhwzlmpa3shg7ragrz3jdp8qfakp5ck2mbjysh";doc="1105vsng0yramk84pfcg9pvzjbm3cbyp84m6sxr9wadw02z5kj8j";};
@@ -61,26 +64,26 @@ akktex-26055={run="1npcfjjg9nwrb392g8pa4yq6i76aq4ys67zil4qgkf4jyzrixln9";doc="10
 akletter-15878={run="0gigzlxkqmiqz4nwpxj98rcrxmi6yfipf5bifg1mywchnw7a1f2h";doc="0ngj7d4vdnvh99inw2vggqdgx6h2hv5z77glxjcpx8kmxf8h47sv";};
 akshar-56277={run="0g1pbihbpl3b7k7c19qiq7lcgx3zrfn15065dyan85bs8h85c2cw";doc="11a18b7a592sx3wha1lpy659hgh1wnka16zf8m0cbc99f867xfln";source="0g8j0015dm3mhphg06ma9dkgc28ywlihr6pcbi254qaxgk7kdn9g";};
 albatross-65647={run="18bcgycdzzhw47ci9lqyrbrahzax9ajfi5w9vjs35j294b0mk963";doc="1bwg2gq1fdpjlgjflfzfijabx8m6nfraak684ak6qdhvjfzx1aha";source="00w3byrzw0lwzjqsq0r7h81daqs2sg3ywwk3nsdbz0q4j6lkpv82";};
-alchemist-66557={run="14gd0gb86p247bz2x2kcqqj2b0r2lz12gpssfz84kgvrwx5nxkvr";doc="0d8kirmkd1shkbckv32i8yxdrpwzss7qgdn2i06b6mwakisy93v1";};
+alchemist-66924={run="14gd0gb86p247bz2x2kcqqj2b0r2lz12gpssfz84kgvrwx5nxkvr";doc="0d8kirmkd1shkbckv32i8yxdrpwzss7qgdn2i06b6mwakisy93v1";};
 alegreya-64384={run="06hrvi0dssva2r253k9ma1vd6ij3bi2d0wsrk2n6fnxvxbl5xc02";doc="04wx39xdvhq0rfl4mz8k70kfv74w6kpyhja5879g0hp3pjfzxbcl";};
-aleph-62387={doc="11rkr9li88aiqjkfy1lsmn7ay1hy08pkv9rxqifc2mqlr8ck9356";};
+aleph-66203={doc="0b7dihilh2v8qcp4m8fblyc10jc5i4fhpj3pspzinag0pk66b7nb";};
 alertmessage-38055={run="1mj3wiz4fff3ry5q4dk3k0kcx4bcqfwdvgaa9x3vczs746q57dcg";doc="1ga46r20zyb1bq7pvhq4348d2prdshy5m3yx6d00v5zzis1dmx1r";source="0n36cfjgh1byik8zn997lmyz2w4wmz48f5bzqrhcps7bg3kmp4zz";};
 alfaslabone-57452={run="11va28ww6qk97wx8fh0iqbm8b5s14vf923ydpglx4gann4w9bkiz";doc="0wfhd5pi1p5xnkq8lgpp3fhqn8y76h5jp3h5qhlaqygal70fw9kw";};
 alg-15878={run="0lrzrij15s989hy2j9wi1fzkpzvqjfhmgj6ryry0gy7nk3azhhrq";doc="1lgi63jx57arpz688i22razcrzarl96id8xf45vznh8iraba3sja";source="0mjrh4mnx8q9x40vr4csj3h3w7wh3hs8hidbklym29d0scd5rkx6";};
-algobox-52204={run="0xplb7wlbizzy95s4pk1nhl2w1b3g80frkd8p4na2rv7awp0da3d";doc="1bp5b0zr6shhaifkqdliw9qa18ym4s68xfk6k2njjnwdqyrxyd01";source="13cwnl7nxxrs0jsvfrvcy7a5pg8a92qnhxjsbarcx3jmg43d4zp5";};
+algobox-67201={run="0xplb7wlbizzy95s4pk1nhl2w1b3g80frkd8p4na2rv7awp0da3d";doc="1bp5b0zr6shhaifkqdliw9qa18ym4s68xfk6k2njjnwdqyrxyd01";source="13cwnl7nxxrs0jsvfrvcy7a5pg8a92qnhxjsbarcx3jmg43d4zp5";};
 algolrevived-56864={run="0qsxy2az8d0sr07mz7yxca17gl1y3kaqmvlckjdckvwq1idh7h0v";doc="10m3rgczhnkalf2f945jwrpwvv9szxh3v4wggl1rdxj12ng0svlq";};
 algorithm2e-44846={run="1iw3yhdk9nk1y41hw1qcpqiqaxadjc0nf6cgb23kd75ah2cpd53n";doc="19xsi1dgxfi06wxls70pvnys20i2na2y7m2hq8y6v947pc5kbb1b";};
 algorithmicx-15878={run="111iyi2j8qnzha97r1grxpcbnfkpvcwndczx043c4gw5wqmrknbj";doc="1rb46zi4islfbykhr68rnrkj4q966papin0c5m752gh6kzx5r57p";};
 algorithms-42428={run="1va2ic75nf0dfh0dr576lpgqhzqv5203frr37079q648871zqav5";doc="0fqif0nb9ypd4sw2i9qsxl81h3g4h0gm0yqq67d5n9wrpic8dnjg";source="14jgc7vnww5xhnd76cwix5c599sfdjil2i916cfpmsd5yn5qqdx3";};
-algpseudocodex-65860={run="0n55hw5548664zgh2g8p3qw7n8la0vq5i8a6xnnixpif3bpql5z6";doc="1a9bz8hpm67cgpdsdqxq1ad11sywzczd7vqw7lvb3z2jgym9q6pz";};
-algxpar-56006={run="048yw7nk0bnc05swjbmncrrlns3gij9a4851fbj9civlc8silpby";doc="13r04cc5d04ya1c6cm2h9a1f5c62ln5b7zlidiw51zg6200rrl2d";source="0bl51gdyi1i44j2cfz432z5cf63mp4yjr21cc2hwihyfd9vas3z1";};
+algpseudocodex-66924={run="0mpnwm97q1i40phy61wiisf4pn71hn0hwc0x0gscn0jalvfx9g5l";doc="112p7zg5rdf0y7iqs74xwblfwxfflg22nb87bdgkbizmsmy2gg2f";};
+algxpar-67495={run="16pbjpr8nnm4s2fz2sdnrlx7mn3bnzhwrijk721gzx81qbq27cw3";doc="0l69rr17b7njp3ywf5xcrnxvixmkswgaydj2bwrvkrazam1gnkdk";};
 aligned-overset-47290={run="04gjl08y9wbv5qls9z2plxx5n4abi4nzd8qik88via4xghhqiy7i";doc="0il97kycqgqqimqjvjhnhc2mxy2nja20vlspsqrl9zaah71p1b3d";source="0zbaa3m06kfkj7kkv6iy71d20n0kqq1dwy63dwfj4l49wv427z08";};
 alkalami-44497={run="1llldpmc485zxlw1k996g3gfffb0ixx72afz3zkj83i78dpx180j";doc="1315idl4yricb06bh689hhdf9jkc0ckmdygacsx3ywzxj1zcrcch";};
 allrunes-42221={run="0xgh3y7h57lkzxrhddn5wll339b4zih4nb6a36ymx38a6md7b8ph";doc="0dki14g1607a432549kly1wcy1p6j63lrxfd3m5nyz868kg3hjmc";source="1d49w7lybkn7sfig7i27mfwaccr9vjs7ab2ds27jmhp5wjl7w02w";};
 almendra-64539={run="1zij84q0ml0zf0dig3hqlmznwygcp8vbmwl3xc5qii7hs94hnjr5";doc="19j6vi1z04j2zbab39934mflx5qnqdjl4gz9n8hbjwlhiq0wb82y";};
 almfixed-35065={run="0qrai75pdkf4py7nhggvwzaarv4jlh04dqsy1b593jabq7ngaap1";doc="0arhvv7z8yf8kcikzybhbsgsj6m9zy4is5ryr6hcf6a6incnkp1d";};
 alnumsec-15878={run="08i891g4b3k1qqicbsgd3h3sy98cpk6g1cfn17g9ysws8k20a0sy";doc="0fanq66cm0r2dgpdrblrhqkchxpy2dxykq1g8zrk5ddx27v6r9pd";source="1ssw0pi7hn3s7pqcqkm36jjgmd5g2x5rqyf2khhdscfwrsjh07a7";};
-alpha-persian-66119={run="0673i0l6vq1h37g9jqcp7am5kl4dfbcrfqp42c7cr6a10zhvfqyr";doc="0cfl47cqpwxn1k87h19a0ggayf6c52sl60sdrmpa7sfydhg9w4qg";};
+alpha-persian-66115={run="0673i0l6vq1h37g9jqcp7am5kl4dfbcrfqp42c7cr6a10zhvfqyr";doc="0cfl47cqpwxn1k87h19a0ggayf6c52sl60sdrmpa7sfydhg9w4qg";};
 alphalph-53087={run="10gkh6nnhsrlqx8b6k3dylings3q97ky4qsv03nk7hn41zkqsyq0";doc="0v36l765s4lc5r2xfi8a3i7vxf79yxy29xy52cbhx4ps0av4dxpi";source="08yagdxgqvhvq50cc7rvb2629g4n2qjga86dpa43x2vjnmmz08vm";};
 alterqcm-59265={run="1mffpja47m40875i3vk3ha4vdgkxha6zh7q7fic7jfddxcdmlf11";doc="0nh7861513mpdspnkd6k6kaydplmimkzh0a19svbblqwxwga78c9";};
 altfont-15878={run="1nrcjmf59r672gmqks8spqwz3vn4jrwc272zvx7ncylphsjmip70";doc="0c5hz0zjcar69w489zz2a04rbnc3j2lp8yccw9zv41ninzl94ifv";source="144m2ph835fl9x3ypc7wfc444719rv4clfdar3bk73gvf53rmjr6";};
@@ -95,22 +98,23 @@ amsfonts-61937={run="0l3ypclhv5qdpcpy29xwda2m3cjfn5l996agas6yhpdr2m58q211";doc="
 amslatex-primer-28980={doc="1kzayyh1bycmq43s2xn81jf05r18azidbk3gv6igf2vaq37fmxil";};
 amsldoc-it-45662={doc="0d4hwb7hywy56d6934448lcr6fdx7qchkfzs806dr7wfzfy36yix";};
 amsldoc-vn-21855={doc="1iz0zjn1v7izwbsq0zb6cvpnkbvk0nxw1b24j7dzqwk3m9j43i6x";};
-amsmath-63514={run="16sqs6f28zpzdll6hw2cnfcpznc27vy04h78a0jm3r08rymd9wl5";doc="11n91sn0slrbcjkr7xl4dmgpx5vril47xdfz9x7hw04ry6da4jdx";source="0d12gk75ny03fs3g9s9q53awss9bk5qcyccrpyg75q5r8vfqllvr";};
+amsmath-68720={run="1igdsg0i32hi2db8ymdgvyd3fk4iiihspvcc5azw11fak9wvh7mi";doc="1kv670h72jl64cjfidk0h82whf24xhcl8vsrpppw6w5rx252zzfz";source="1k3lwg72h4z0gyj9azr2b7b78x1q5h85675mfam2qdl3iljnaryh";};
 amsmath-it-22930={doc="0xcwsk8q9q3nsz8wbklgpbw0vzjw7iw0chffzcbp2zsk6rypqf7w";};
 amsrefs-61937={run="015spycf9ycxav8r046yn7lrc892nhkkrf1say1yy9karsji6dnw";doc="11fc87kbdm440v4qyhxnv654mh0m6rpz42zji38qspcqj19rck71";source="02q2x8zpwxkyrh9v7xqw35vdjx0b4fzz95xcv6vfjmynm8cpklxf";};
-amstex-63708={run="0l078b9fkaai7kn2szn5hblqp3amlafr7ha0hjcn48657wsjq4jb";doc="025sgjii3sq0qar3g2mhkc9m3ml4swjy5fzxxgrp7wsfsfvpsym7";};
+amstex-67930={run="0l078b9fkaai7kn2szn5hblqp3amlafr7ha0hjcn48657wsjq4jb";doc="0j6gfbkx8vfalsxq3c4fyjs0fj43a2n8biwainfdmxrhixapwc0w";};
 amsthdoc-it-45662={doc="0ic88gs89m3d9ys40c4k7sgx6wy82c8isg2qkmd4snw5yms6fpaz";};
 andika-64540={run="1bbqdw8r2l53q9870mnsyaiq0gfy1ac808qqmyrzqqz4ai41zzgg";doc="0ajjaqdfxlvsmpr9bjmdkzwbdbz6ahxfw1sj1sw26r33npy0c5bs";};
-animate-64401={run="07l7mza1lmpqyjrmp9zf1w2jhy0va7abja8lqdbli2h2lfzvxij1";doc="1frx1x6lqa0jbf4jv69ifcs9266pr11k83hygh8mngkvyj2lvsbj";source="0637688s24ijgvd6f8y7diiv6a6n694r2zqjd76midlkaj4ab1kv";};
+animate-67401={run="19rq0pca3q8kv1f3qf02n75326ngjxjhk4hcllzsl5p1ngh4vw8b";doc="0x991qbaf5n8bv95yc1k67rjas896ci0iki62yl7icfbmcbz5hd2";source="04bblj8wxx9xg8zr6b8jzll5v69vdiz3yzxcdcm93j6zsxvw7bai";};
 annee-scolaire-55988={run="0lwc36v09a4ji5fz3pq9939jm39729k0k7hha4kkk20jc3j4jnds";doc="1f0qc5qvsrnjddp1kyrcigd8is2y9nsxc9x8a215p5xds2z5gc30";source="01mga2nif61mpkf7ifzhsj5pq7wzm2imlljap4c6wcrzb9zlhfx1";};
 annotate-52824={run="12q3xk08ycz57vsrcr2glk7y48w8sbc4n8lrqaicd46cxfd4jdqm";};
-annotate-equations-65851={run="1n1dgjk6y8rki0qkjy8h0xkcl3ricszwagr9ywmlag2al551awnh";doc="0amfh6zay85z604qmvv4vrv9ambmdv76c7vxi6rmrn58j1lslssb";};
+annotate-equations-67044={run="0lqi4b3fkx9bijs2ddq479bkdf147rr7j4zwinygs2k1fh07yjma";doc="10b54pcdjl4ca36wrqc1pcxa7vp02f1v5i05a40iawfc884wpcvq";};
 anonchap-17049={run="0nz53v74sigvlb4dhgk5qcalw7nrc1vafbjx754j3gfyp2ilaf1j";doc="06khbq6p3drxsbjwgkm1sd163f7nl8hc52pjsm55g2vknib5caa9";};
 anonymous-acm-55121={run="0blyv8pj41qa3fvhwsk9kq8qwp8x0b1iz7vyc3lxcpcv626aqr2h";doc="1j0fhwv26ziw6rvg1s2x0ry5yq2sfa8a55xvpyrzl6pjmzrj3czm";};
 anonymouspro-51631={run="1qk10w52722yzlyvk2k733sp1h2vic3rjcswkhx8j21a2g9xgmjh";doc="0ijsn9cbkg1f29x0pj6a4p5d4q14rqrh2mjid57cb9qjhvgvqrm8";source="0fl9sd9adhjx49hja3k4iy9pcx3hal0wjzxg10kjmi4j6qvz829s";};
 answers-35032={run="18s0c7hdk5qnj3svni93m9lpj81dhla9v7nsmcgh0jabhwy8n3v2";doc="02pfg28dz10w21ap4pi2csvy32pcvmp0baiciavp354ky4avjbdd";source="0mcczai8da24jvmakc7glr2c56yhq2jv58y1xqv6ny9hg4ph8v61";};
 antanilipsum-55250={run="0xz42icnw36dvkxlh31g8hvy37mrbafgihm7l3ivh1z4hg6gabrh";doc="1rfx3aqdvl4gvcrpsqzjh9dglk34ll6qc1a889yz0np93psnwmkh";source="02qpjks29b4fmma6qm43p3w1k8h28wv1blpwjnnsfq4ii6xrkn5s";};
 antiqua-24266={run="16pb6v297iqx09lb6w6zfcyzhwidd1cln14rqc3fblbmdaggpays";doc="0pwyp1j02zh51crp46rlhbdnwc2m0blcrg0yk43yfc687q3jx91y";};
+antique-spanish-units-68998={doc="16jk9srxf9ya7h80v77f58xdg7dpxhpcs35lv6hwv4g0yas71ab7";};
 antomega-21933={run="08if5plzpj7g8m1afhq8ci6m4yba4nnsgglngq94ka3ga8czfk6g";doc="1mrr1vqkyic5nyzyxkw7zq67yz4njx9x68cqr3vjd9d77qv85i00";source="0s0dzmb00hqbp71nhl94w0ns1dqj5fmfqw63z789iihqznyxkii0";};
 antt-18651={run="1clzmvpglsirsvm8nsc3m4dkz2va90877gmsrm7jfkhm62xv9mpi";doc="0kpiba7awkrjr2rdgxilni1yi8p4ycmqyy09c1p9j1ld82idsjcm";};
 anufinalexam-26053={doc="1v1k74vxidgxn5zzqz6v9zga468kcf7hwdrnvw44cd318221y396";};
@@ -119,7 +123,7 @@ anysize-15878={run="0kkjzsk03bvnap54gdf0i797zqq6bdz39yh4dn810l5hyfqxbhwc";doc="1
 aobs-tikz-32662={run="0fiq64szq6243gy7vg99gi9zhz5c0svrwjwj92qnv131zj71lcg8";doc="0yy2nlq6d6q5cijdswkn3b1f2a3j5sbl3fdv599vxna5pgywsw6s";source="1dj665gs9cbx3mf3nqr0944kg59gwg43ll1dz9ci3jra0nsr8w5q";};
 aomart-63442={run="1x69rs1k0zxkqwqsyjmzkwrxiy1hdsd32dvx7ha668l9wbq7582q";doc="0nhj05cm7fsi6fpp2wq2p119y0wyk2ag070lnjj3ri1zjahx5yj2";source="1d6mpqd07fayx5g8kz8937jyj6c6rbw1g8w1amq5sb32215c7q2r";};
 apa-54080={run="0g7y5l9908l4aikm0mqgwfcdg19dbllcgdp94cl1aha7h4jq0971";doc="0bzicm0x6sf78jbrqp66mgfjmcd7kw0rgkv0c6ah9945b9lh4ly5";};
-apa6-53406={run="08gk55f1a52az88nckdljp67vqv5i1k3n6wwxhgqb0m66j0aax8a";doc="1lk20c5lr1l3niccfcagn4pbfqgixivnz6sx1kafvljxg5gw2k8g";source="0qbwizqyyjc72c8sd2p7pyhdcqnv4xzsapjyhyryaifpm7x6dck8";};
+apa6-67848={run="1zhm599xqx1j8yqjp20xgafm5xdnsjdh8pz1xndjhlqdxnv60044";doc="01iv078nfv3ilh8yjkf2r9c9kyn7lxxad8vl0lb4gvi706p3npnr";source="1g987ikxqvl0b1zkf5kvwg9dzy7c4k1rv9cl4r8ssdfm9bq7fvwl";};
 apa6e-23350={run="1da46dhvpwmjvm3ma4zbnfgsc2yiqg9d6rdrw3bd5h2ibs3vnlmg";doc="17m97m9v0pcs58i3k7sdj9h1vifv3f0cxxyn4fzi8pxvzljwl5qm";source="1155ic0k6f6gw6zmqq8pv74hcn45skjzyarf9vpkcksj96qr07ba";};
 apa7-63974={run="1y286f7vyvgnyspp0vzagf8xc81b02029zn40ggh5bhhysq06wzf";doc="0z8jfr76r9rvqanljhq0fnx5z2w59lxk2mc9if6z7kkid1m8qx8m";source="0xx3yvjknqsk36mb336hlvvsldhmp21vblgzl2zccp347g5530z1";};
 apacite-54080={run="013769hi9alyizx08a0v1hbl03h5vkwi6a6ar3ghw8m6l445xb8m";doc="0d49bmdiiriklmh99kavvm48zh29bgiw7zr5jbcwk5bw42qarlqa";source="0hsrhw50sb8lphxib4jmjgplfrmy95m56a1phiac4kwxphlj9di2";};
@@ -134,28 +138,30 @@ apprends-latex-19306={doc="1xzy7svb2xz6bdfg0f1r3whwda118pl7qdwygx1l7h4d1vqm2rcq"
 apptools-28400={run="0b6yzpk2d79qg2irgfhns0w05i54z5z22ik5yyx4w6wg45v0j389";doc="1n8ak9cw66780zkk384vpjkxm9j8f9dzlqzshy48q7hhprsg4p9a";source="1ba08rixibjcpi420blw8a0v4c4zi2byll7dqlvwb7azqr6dz720";};
 apxproof-64715={run="1v42g8hr93afz1lr1hbvycgws92vg6pzig1qqjmrpff11irwfa0h";doc="1043sl948r89fzgzxwn6n4sjs1jl7mxr12hq9y4ljgm6264kw0d9";source="0wr9vjn9vmljsx5gyccjzcqwx86hza7idrq84f7b9jl1miwgddbn";};
 arabi-44662={run="0jmx0xsb3hz5i25mmqnxgg3bikyr1w26i3364cqrp50x9sqvkgfm";doc="1yipdaiai9fbmrxkacqwnbibdiaa5vskzj40d1hxv6wnkxvj2qkw";};
-arabi-add-37709={run="1ylvj2w98dly6blpk2aicz206rfg5xzqbcjx00j3jnmw7g847kxh";doc="1d1wngc0179p7ij7ibnyvq3cxb954sqywxyv5k7a3dg5np9zlg7j";};
+arabi-add-67573={run="1ylvj2w98dly6blpk2aicz206rfg5xzqbcjx00j3jnmw7g847kxh";doc="1d1wngc0179p7ij7ibnyvq3cxb954sqywxyv5k7a3dg5np9zlg7j";};
 arabic-book-59594={run="0s7hnmz67hzfmfzc0mniiqfi6i8c8qzslbm92z1wc3a2hr38ihk2";doc="1j5h788vsmrcag9bighp6kz6zx40ppjzwfa070ic140lqzz2b024";};
 arabicfront-51474={run="16426cyvrk461z9jb728w6glfm0ahss82kkq6fqkhajjc0cflhwi";doc="0ck7nl7v6kvibiahh3szf3nbibwajg2pjwrbcz06frpfwhizsnp4";};
-arabluatex-54512={run="1s66v0qns84vhpwvb9if07b9s7957jmxxd643g1mddg36z6pkqfj";doc="1rfwl55la33ag9plqwssjvgq47mab2h7ljrw5w6l96vq965c2csa";source="1g84xxm5fvp6dzdrkyxcjn4wlih0iydrdyxn93dffx1a9n1c3yyg";};
+arabluatex-67201={run="1s66v0qns84vhpwvb9if07b9s7957jmxxd643g1mddg36z6pkqfj";doc="1rfwl55la33ag9plqwssjvgq47mab2h7ljrw5w6l96vq965c2csa";source="1g84xxm5fvp6dzdrkyxcjn4wlih0iydrdyxn93dffx1a9n1c3yyg";};
 arabtex-64260={run="0xd2apd35zn1c4narj2gyla154nzd9ghhgc3fkk6y06d8dzgawv3";doc="1zyyk778384mhma5q7ra75fwykk23i63q4jzamq4zard0y7gp4k0";};
 arabxetex-38299={run="15c8nmmv87x87dbjwm1q0acf7pbbh8w9gpiw77fs2i51gab592xy";doc="1ns1y2lf87gspaablh4lm3kj33ggpfp7hcxbdv4vxf8hhfc4pp7d";source="077r71723zlzfjmc471a8hbxs1v2g6j2xpiim3g2klxsj589bxfn";};
 aramaic-serto-30042={run="0j1i5snrgj579zx3cn7z7dhi9rrq0ssl392r2vxykcxalcc8cmg2";doc="025nkiqh91laaj3yx2qkl5z0jcm2w0qwgqm545dd98i5y1a78lfx";};
-arara-63760={run="0wv9gcps3nyhssysscfwdsvv35q4bp14m0mz2h0gq7zc2dqnmjml";doc="1bi7k8ihgh93fj7id134z6dqy74r05gksfpvk5crp6y922kava0q";source="0ngp7dl15iqp81a1z0an6vf007aznxd7cwcrzywgx7w42cd4a19l";};
-archaeologie-57090={run="1g0r3y1s7759lx75fhmc2v38ks4mgbldpjkkxnk7rq0ljdqy38x9";doc="1hccakjvh7ldyja2nfi68926yn175fhawiwc76qk5fksggj568rg";source="1gv9495g29hqc0g6in438g8sdkaxwwn2vvp8f41mz033dzfln5bs";};
+arara-68431={run="13cvwhaxr6a8xbi5kdm6s310zy6q6fmfynbj4hkjlh97ij42scl5";doc="0mnanld6pmgnimylksz34fx9gjmcbm4qwfajkisx6h5f3qg5419g";source="1k2grs77d2pqybvnnkk3xy7rxzm1vk03rcfgzas92v4h8r6f50dn";};
+archaeologie-68476={run="0r2j9n7vbdj7virnmasqi9md81wbc5b53h0xwf4d6azh0isy0505";doc="1xhlp6x1ixqn5xj0k9xz5149jwf9zgp3nlv0ncyjn5nzqkky0jyr";source="13wmghwrc89g8kmsdsqjfcklbindkrc63by2zlgig29rvidzn4lj";};
 archaic-38005={run="030a281kl48ixl4vh378bf0341lrrpvh73ws5pjxyhvs6cvyxp7i";doc="0m64lsmx3sryzdmbsmz7biwmndpn66x9is8apqn7w64y4b1jjcpk";source="1231mqascj96yi4jj11p4zcxgkpzxi3p0zxnjq8x5fpajz386kq5";};
 archivo-57283={run="19hr6vc7x9csjjd3i6mz9z27cyq4pz1qvhmiwbql2xhvmbcd871q";doc="00cs206zp27vpw06wqg7adwj73124zbp8zwfvgqsh9n544npvfmg";};
 arcs-15878={run="0qahab6a041wn6s6isnjn93yrs6zk82g90x5aqpv742b2y8cj5ix";doc="05wgq5pkzxg3vj9anlzjq1jvwj7b6wvsp7a02syca6n4qvy1v5a7";source="0jnvkhhcqv7qgs4knwx1kz38x305a19kh13wn47zqlqn65991bpp";};
 arev-15878={run="1nx33blp0nfqfmv2akj7w79qg1rhds40k7b58v5yvyrkx0hpn0hm";doc="1vscwahxzdcb6879pbrxdlfpgapc0bia2fl3jwilrm1has0ffjz3";source="1k524nfr5zb0nmhhq8dfaha4kv9f2ika192scllnn1bywhbpn2x5";};
-arimo-64548={run="0idfg33qcggv0cmh1hzpvzz690yikpmi76xpfh19py168my01mnm";doc="1yx6lp3w6s6zz31cd8hvhk4vdg2whzh62cdlhyglnb90a8hjyis4";};
+argumentation-69023={run="0pnr7z8by62zi1d8qbjmmddlykrkhhisqx4n8lhwbvi3qcrj48gi";doc="0mms537p669wa0v301g51sgigzxdg49rj3kg8i3rva22hm3b7fj1";};
+arimo-68950={run="0idfg33qcggv0cmh1hzpvzz690yikpmi76xpfh19py168my01mnm";doc="1yx6lp3w6s6zz31cd8hvhk4vdg2whzh62cdlhyglnb90a8hjyis4";};
 armtex-64182={run="1b347npswdail6q3lryxi1y8ac13dxvajzz6xzfglgpy2a10ykc7";doc="0v4wfw869d143idxnb19avak8gpsg0n3cyf70xa7zq6hljpq49vy";};
 around-the-bend-15878={doc="00nc6kx4ylz9g6vmjlgyjvmy1ls86pjblbcpm5z40wh5xl7l184f";};
 arphic-15878={run="04a15kip51zp4bhrbpiv4m5pm587xbia792ckj17gj281ysd4817";doc="1z1z7nnncp4dpb91bajxf3li47k011jn5jbxzgdaspa5mjvw32k8";};
 arphic-ttf-42675={run="1z8fa90baasp8j8539a4kzilah602lik012az7i3pc0dnm4m2w1h";doc="0nfbjnprd71dwp2dxmkmdggfipa36w4qbps82czn506xpzh07lav";};
-arraycols-61719={run="0i7vm2znai3wgc3h44vhwd3wrrw0az86b3g3ndhy8yyyl17jk3hg";doc="0gq5ss2rq7qgj4zqvf6n9a45j1kqsh0k9myphfjhdrf0s1sq8w9x";source="08vfglpdhjc0b33b5r8x0mqpjamciq4g83m49gxwn1dd71hvwqiz";};
+arraycols-68277={run="1dgqrznjh5irbcic6dscq1xl3gyfvg3dnrps0ki1ypq24cm2cqyx";doc="122iwnlyci7mkvzglzrbl5xycm8rl9zp8yrhb3ky92hqqv1ywi88";source="18kzw3c2gja12808d4k7vr55p39rjs960fv9mmmpld4azw2f7c0q";};
 arrayjobx-18125={run="1ry1gix4nz11kyrfpbhy160c8dir2y68jbmnds64qcdafhfv4b9m";doc="1hqjhkjh5ryhjpi98hyi92raffmish9n9193ry75mgfx1p2b2w0g";};
 arraysort-31576={run="00wbmciwdnafwknxxrnprxj4xvs24xxwdwmn5y5xh1c8c3q8rn09";doc="1yn9kbq8icd5gxix4kzp0qszhg1xy59s4m8p66a88h3cwcs7fjba";source="08gbn5s8c7a8klg605kalr2mdpijy73pxvfsndaw9jdnr9ipc5my";};
 arsclassica-45656={run="13fql9q89zkdhid841hwxyrdbj6bd692lnc52d0yiibrd9gd9f4a";doc="13cqb49296wzph7msrhpzswlyknvhrjaa81509l4j4mx1snxyk4b";};
+arsenal-68191={run="1pc8k3zslxla2ngz29389l4n9ahcbp2m4blydpg2bz0qhs0zqapb";doc="1y86inslxi4y33qc5p7x3gbx3n4d99n3dpzq0ap9ikrdcxgwd0ds";source="07i8ynjbr0w8kp1f3pm65hnx766kxp2bqdps1ln0qyzhk2iidppg";};
 articleingud-38741={run="1ydj9dysf2qgk36ssp8pdr4c6dh5iw27kcw4ykzkx22ih5an0n01";doc="0mkv9fq0hixkjf40la5na4dh0yqi3adgr8fyi1x74sbyi78gmfhn";source="1h1w0fxa1cyw5d943mg8na7hxwyq2ki40gql9y0f7fdx31faiavv";};
 arvo-57213={run="0i9x668hjr2b6brdysl35rxgjji1zdsn6wbf21ql0xmn53frk4ic";doc="0g4lpx8mra2qk9c1qwijilscq48n5n252m6s0hxfraj5rshrhc1j";};
 arydshln-50084={run="1f2y02l7fkhrc005ib1s94z0yxgql2m515zy3mlx6ba4mqadh9c8";doc="0xw13bdw67n2nsahi85bvh5p1xrd8fpb1aj79vss9zgdslzb6j4s";source="1xhnh7jw0sxy6vkw31gcxyxg06dm7bgw0njsfkailbxgndwcp6zs";};
@@ -169,8 +175,8 @@ asciilist-49060={run="0ni7182xwr3ns1dk8i75kf1cw9wpfagrf1y7w20hk8fpfymx2669";doc=
 ascmac-53411={run="18hw5yyqbr8ji39y39293z7a70czipzw00fzfsqcrhgdlid79sc0";doc="0xzwc7kw7hqpcmisw5wm3n508n4zr4s207pizdhfm2q9mjij0jvr";source="1rd5qmy9miximwv1n96h6djjmd3mdgn4b0955marf2k457bb71d2";};
 askinclude-54725={run="0s1938harm9sgna3cggllpa1g85yl9jv2wy4b4c5v6fksiivxzs1";doc="0gkbk6j2wv05kgfbjd4mqx5k7rc22bmqn47vk7pvr5z60dr4nay5";source="067dpl3v0ipspfm5f2fmcmg5cb6lhqg6n8216id9j1blir1ys3mg";};
 askmaps-56730={run="1r6lk9szs7jm57b4hl9w4ngb9dqcsi6pvp37rcnwnznj5m2daj50";doc="1ryw8yy59mfi13rrwgrfg5y5dy3cafz2a3f8zmq5fbl7zhbylq6p";};
-asmeconf-65413={run="01k9yxdgsqvwbv4ydyk0v2dzfafblb98s4jllbvj3xxkjpzavzac";doc="0cyj6an3m1wpqy4kvgppg532fa1hrl3n0g08xi4fj8hzpy46pkh6";};
-asmejour-65405={run="1k2vygq2cnzwyqynvs51wwh1iq18dk56ldjmqd5m1sk5nbp3s9si";doc="0v1dp9h2sp1bb0bkzq6gyy8r41hb54rqdi4pgi2qcdbks1a4j6j7";};
+asmeconf-69228={run="02a0jvq0m73rq2cmmdkcsdbb62ysbx0fjrdrvczh7viml3l0q2z2";doc="0xr99yy8mr4759wfhp4n238v1jx0fggj7y2fsiwmgbqv9s7igi4r";};
+asmejour-68629={run="0svphwvm50pqzr8d4rh3dpsz19y6lmk3dmq4sfyhzm8ph3fh05s6";doc="1qmvcj1m2wv74ywawsz2cs5d4g54zw8caia2675wz4sv6vxc4mjq";};
 aspectratio-25243={run="17y22131b9nzzq1skfdyr7cfcq823nqn3ssqrbc3bglggdfibf2p";doc="0mw7v1m9afyk462rjcimvwwikdpj0f4gjw5pbw2g9c60vbjhz61j";};
 assignment-20431={run="1nxgpadadzf3d30ydc9rndwm4v53s4v10a6sbqf6yfqds7ry13vz";doc="1wyyvay22r68hfspaqv0a43s9icg8a3pj8wii3snn90svbsjfajn";};
 assoccnt-38497={run="0im3x8im6kkjmvibh57hkn8nljcfc4mzp0hpimiqn29ys1yrhj98";doc="11p081b0b6mcigqsmvgf6kc9ik2480c74madjli19rw9i5nzf0vf";};
@@ -178,7 +184,7 @@ association-matrix-64845={run="0pa2js62lrqvh9ghhv5gylaz7jxbh6qwkfymr3z99w1isl2ia
 asternote-63838={run="0a3a5jjhsbvi7kdkp98kwa0q8j9chrq5azfg9vbb4m9kfkbafafh";doc="1xz9p6g5bl3qa957icsyjknni7bvglfhvxfvxg83x8bd7hvh7ylh";};
 astro-15878={run="0cjf53gbin9z10g63x2kingsclgnwr6idc4x0m473hf4fvakk34x";doc="07kad1fzv7p6inh7nkrq6b34c1792h4v49rxaaxqyldmf4pwjr84";};
 asyfig-17512={run="0zy0vxxmzg7nzwzw8z84sym5wdfbs7kyf06r6vnn05ga06wwn603";doc="03nby6d7cjczj3irqql5wpxs4fx9z77bb03lys5j1kg63ccq5msp";source="1rzicq0w7byrxqvv8pympxkwq575zqs01s02z205azaqdgrzdhss";};
-asymptote-66119={run="1gxd6wqcmxwwajc66ga0c4a50dc27q0g7239dxwii2d9acykw6g8";doc="0v3n76arlr6i3xqvgh27mmp6jj7nqpp149y5ivm1v12q0y444zky";};
+asymptote-67300={run="0x9zb9jgxc31xj5a5gb3s2ba7348zni3p1pwwd1lp7ldilq76lca";doc="0hcv17l67pv91fc3nrhx06s7z2g0imrljx0lxi4k6lgnj47dmnhg";};
 asymptote-by-example-zh-cn-15878={doc="0854pbh3rm21rzzbhai7xijzw26qawffj4wd3mrwbva1406106ff";};
 asymptote-faq-zh-cn-15878={doc="0z09f5as68dz66dlj370xfx593bv50ihxx10zxmm9lk27ymr52hb";};
 asymptote-manual-zh-cn-15878={doc="047l3bh8vvk185wkazyfw4dm6893xpa2ksn5vfc57r5rv4x16wmb";};
@@ -200,8 +206,8 @@ authorarchive-65777={run="0f9x0nx0n3k3hj33089np465jpikrxn689zgp0rdq54gh9cr5wvm";
 authordate-52564={run="0caz9s2ra7qqlzdnahhv50z050iyp62ypyrfpbj1p9ih7zmcdg23";doc="14wxjyrighkhg51m9jpdyjdwz2ipz4zr1rfgmdnxbpg31rbg2x7s";};
 authorindex-51757={run="0dhdd84hdf4iz67acyarzf0asb7c8dmp09s286rq0ylgn7lb9xx6";doc="0hhffkmldhhm46xi8d1bvjp5v15cg5kid383g7s1dbjxqyd9vbvd";};
 auto-pst-pdf-56596={run="0f212m856rdfzflq1bw3vfpy38d8qylaa3vqnfs595h3x5r0dsx3";doc="1f7kj4rga7x14w8v3cjn7lh95inliy2ms0q9vnfnv95jvp5a7kh8";source="10l3ld4jvpg1982f2a80ssl4hkdzi9szxv3y8l1i13pdfdhirv91";};
-auto-pst-pdf-lua-54779={run="1vh8q7spf251yfc0maaw9xcm1r7w8qyf3vw7nr6gafmv6si2i4fk";doc="0vmwaflyaj4crqb98gc9smngrpk1hlhpq3acfw6bnpdwsm5862mi";};
-autoaligne-56966={run="1y4xlxgcj82g3cvy23wyacm91kx1fnc8b9y0r8vhf6pwvj4fk6h1";doc="0srhzzycrh9awp39cgfqzc3z12vxj33qgbnpprx06y6bx94956wv";};
+auto-pst-pdf-lua-66637={run="0h17431shl7g0hza9vf20v86vfpy7w9wdyc09ir3s0mi5izhh4hq";doc="07bpl01v2f14csvqqvyvjja79z3x34q6mkb6qck44s66ii5dld0h";};
+autoaligne-66655={run="1y4xlxgcj82g3cvy23wyacm91kx1fnc8b9y0r8vhf6pwvj4fk6h1";doc="0srhzzycrh9awp39cgfqzc3z12vxj33qgbnpprx06y6bx94956wv";};
 autoarea-59552={run="07fi6gdnl9srrhmj5v28kfvjs3skf8g693hbdrfzjkyw76iji46x";doc="1nyrgpvkj2bplf0psd66mcrhz5j4bggvdmr93p77ix4vb2fgh239";};
 autobreak-43337={run="0dzr4wbwy018f97kzmfvza9i7m9mbpn97mjzi336sgq440v01hrd";doc="099vqvdh2djk7fm6y4x5m7cma71b2anpqkc3lfzjazpv15kpnlq6";source="03kqdrwznx3k65nf5z3p2z6d80rki7w4v5lhdfk8rin3112gn68r";};
 autofancyhdr-54049={run="091dwnql2fy1zfkr92ww01hjylx6in8ay56gq7ywjlwb84r6sbm2";doc="04fjrbsa9nqf5rj0gqgm96c8wg3dl8cpfzyilqrfqmim26rviskp";};
@@ -210,6 +216,7 @@ autonum-36084={run="0y1x4j7fyssmhlqf9974yprqxvplxihbs879qiwa13x0zmwhnp55";doc="1
 autopdf-32377={run="0fd1dw6h409ffn2prcsmq4rsgjshhs9if0igsz3ibxb6wkngbphv";doc="1rf0l15pp475f41si7qkx9rw7n6938jj2k1wybx4ck7pf6hs7i9l";source="1vw58d9g41ra5j2av1vdkzqhh7g5nrprr27qgdrn8nlirvwzbx9m";};
 autopuncitems-63045={run="0wqvm6yyja51j7yjyavjn0p9i8y2a8aqrywpvrlaybw2g5s2k3gc";doc="16hk972a108wh8qsk9lg3ai4cimwlfadmxy0xi2aa2wq8darhsqn";};
 autosp-58211={doc="16szmbffp9pwzv7zq3l4yvnsfk4m7w57wib7pqpgv1v5fzhlaahs";};
+autotype-69309={run="1mvy4szbj2bms7wsbxk5abaw41zi97lk21k8j59z1dkrrbzzq69z";doc="1s3c3zpl88rlcxrlmbmpgl4f6dyyryfs7gy9pkm3q2ayva3d4bwr";};
 auxhook-53173={run="0c92za082vzi47m5dlwq8bss4jjgfzmbbaaz5j1yb4ngli9qj08y";doc="0l6xga3hr1lvhgli259ma78rq394jplnkn5j8fgrfapvzrhsh2kp";source="18q0lawz00fbv9mgcbp21zk6fm1hsprmrkvhnl34ac1qj1rx6x3p";};
 avantgar-61983={run="1200x40k7wprm4n7srxvgrax2l52vn6d5ri2x0q7zbzzsfxfzkym";};
 avremu-35373={run="1j7mg5in2jhpb07jpky76qriyb4m0qq0rlkacs6amrhh57299prx";doc="1p7z2vj25fnx23rl6m76h82q8kli8nfl2vail4mpkx0brimn4j7l";source="1zz9b5d08i3sjj74q609k5kyi9nr7yyczk00i3dqfz5x3rlyljsm";};
@@ -217,7 +224,7 @@ awesomebox-57349={run="0bjnvgqj4g1i6djzzzdjdrnlvli3dm1v2w2mi59s5s8pyc5pag60";doc
 axessibility-57105={run="001z3ra1zgsrvhlnvg9lmvc56s72b3kip71c1cnpl6qzqcc2y6s1";doc="0s77mr42dli8vfc9h6gslq5g103rp5vk94hx9cw3w3shxazib73r";source="1bh92wig3grw2bkkdd3fxwlky7rrfabzis1rwwdzgk3bmmrl9554";};
 axodraw2-58155={run="0dcls4qqm7pl0iyg7mkflqa2rd86wsafshx41xlg62din6fmybwa";doc="1l1kwxd8zq5xxhw7zyig0b8nna4fwr6615h4jjwpywcaqsnms6if";source="00nq53ahf63lazavijry572yii3jix1df9c604xnqpga9z22bbq2";};
 b1encoding-21271={run="104n1g3qnx2dj91zylj5byz7yaai6dw6v0pl9240mgk1h8i0xr2p";doc="0sdr25vv9svm3r6yqyalqza4awr8k26g7fmh8078bbxkddycchkm";source="0mbzrasvppl17965dmkp2f9cbi03539p83989d40kl5p11ih6dgy";};
-babel-65823={run="1gcymznzmmv6xxafx2268113b67n1h23r6f52fgvkihkk7qvh6mn";doc="0b1wn28hmdp8h5aqx1pj4wlzvx4pwrfwl3z3b3h3b78b2jzcf572";source="1wyyn4a2s2ymdlfkjbclb2ff5d6rqzy8rbg6wzx32bflrwyywshx";};
+babel-69343={run="1hhidzf5gyjvrb0ws3rfs93gsqjpls9riq6ykxzx4ky984hvpg6f";doc="0wd1c774rirgcs9gn2qm7m2bg3xiiwf7wkvimwh7jlrg19xr5ir7";source="1wfz029f2rwv11rbgc9w64k36q2ifq5hzh9jhlpxz3nn884pvv47";};
 babel-albanian-57005={run="170mxpwnnsc1g9s7qnlhjcryw79cy72d8c4m8bhr36i5c78my0zg";doc="0x5z4gfi6m9h5gml6wxq3531i1k0sfqrd4hxrzbz68ijzyjnzk5j";source="1w8bassqn35bxyhpw6cg65ya64x1dn9h35p4fxclcjjhmv53xgg8";};
 babel-azerbaijani-44197={run="15siklcjg7wmpzgy059d8r6ivg6cib5by9a4l6n31c9pxncj7xka";doc="0dncpgvjqqa41rk80n6wif8nzdqw7vkxp2056l6sblzxgh87fvz0";source="176r483598gd2dfmfc2qhmknj913n3k6rk58mpfq69af72jq5rjw";};
 babel-basque-30256={run="11a26db60bwfhbx6zj42yrzzvf8nn8a96nq5mpw29xhxlpbhrcp0";doc="04jf1brw3ljipdyxv3d001slc0iggjmq6hkr4b5jsa3z8gcivzvw";source="17mz3bqi50ayia4nb2ikf60vgpnwl3i90gfbaq4692y354yvlnfy";};
@@ -234,24 +241,24 @@ babel-english-44495={run="1nb3c0yikcfhlpfsqgx2c6549ra7wcbcjs614d7gvk5fyh0cds8y";
 babel-esperanto-30265={run="0p11qa0d496xb6hpj6qc2lisr3xk3k1rbnj7b88wcivfjwf5ypmp";doc="0ra2iyai9vyjksfsdcv5b9ifvqmhlc4aikyzf3wq073sh9crhxh7";source="0i1hzj701rii0hbp05h25633vs2cbmqgyc113m3g78i24vh2rkbx";};
 babel-estonian-38064={run="0j7z04mcvjk72cad5l3np0x862nvgh7jxha8mll55cf18k9aj64j";doc="1nmjvvms0zijpc15rs0fkzli3pmidc4v4kzfp9sswvh43622p1b1";source="0x2a379m1b1ll16dr62dg5ai353p362dw9js4n0dn3x2wjbndmzg";};
 babel-finnish-57643={run="1z49ix8w96walkq5p915amii7n73ahzhy4ijxa1b2bb0wzz4b1l7";doc="00aij1bdybgcg69995mjrdddzlr3hqbhmg8q9nq86cd29y1gx029";source="1930zxk4l6k5q4wcbvpvijv4s0gxp2mkxvblczn4gcbar10vfd4x";};
-babel-french-66516={run="1ns39xxilb4xkjjdppm5whvhjkps8sr338wvmshjxkjgn8hk2zsa";doc="01fwil67jnjkbrga2xv45cpg28j2p9pxanbmyl048iyam813jaiw";source="1nxr7f6bwmsn4qs564l8clfqla3xqal337yhk418s789ihpzslhi";};
+babel-french-69205={run="17k1cnb37qxsmakb5lfr52arfrs9b4skjq2z3b0j4isvg0gag0pq";doc="1x77mw4wbb6s5y44s8lwmzv83ykjxvayz6gdwvhana6a9na4s4h0";source="0l8lx80qfbdn9q44j39ai0b0m0z4cq1r8npihz009rxvqg9c7xfg";};
 babel-friulan-39861={run="0gfq4gyi720kp45vcbial0yrn9i2jyx1lzh39lci0ga77y01j3mp";doc="0hnj5scfsvisf9k6iwh4awzqccm96apxrbwzlknpxn7x3zv93l0k";source="09bzwmc1jnal4ikxciwas8y342rix0xksd7qcp39nwajyg8njdmc";};
 babel-galician-30270={run="0mk67w9lhp4nfbhrzyb1ngm3rmdknvv8nlqb8601hrglj4hzmrda";doc="0pzpk8d8hhvgsjssy67hpgvjb6sh3lfbn6f5cbpqbhxrgllhpgva";source="1awy39dlr086hc807zc57l7xk6zqbkwrayvzfv8ch1mqnl0d3a6c";};
 babel-georgian-45864={run="1mdsi9mq6ka6ahrgnasik0sxkhq97qa223q5iy4fkfccan30kb07";doc="1iw1hbn5i0c7xhvcmap4hgiaar9rznr76h2mrgya8xj0czppxwv0";};
 babel-german-57978={run="120912c0nk3zdvnrxp7pv78vnywbw68d0xc9iv8x2cwdl2hfwzrj";doc="0nkblrxgckb1kxrxvj02v0mx18f3cmv905xpd56i3lsp7rhi2wjm";source="05nwdy9ly2cdl2aayf573hc8v380avxlw568np9kfvf7nag3p7al";};
-babel-greek-66347={run="1ing4c4s3pidhwrfr6hzvqh578yw7ya7iv5jj04hiksndiy6m1pj";doc="098nv2wv5gw2719q6p24chys1rx4awrzs3a36pdlw1hf3zgzfd9j";source="1fwg66nch2cbh877pdsavf6pc0npj3bdbinr1bln1hps4pfjjnga";};
-babel-hebrew-30273={run="1mzjkrjasm6i7qp8pvl9l0dwd4597hnhsnjljfqn2mf39836i6s6";doc="1w45vylwaiy2bn457fcc8c4fv33lnjbznsk69z3ky8r6sgxra63y";source="0cy281g25mn3pcm5m3d340rp9l82472zyqk09xdi05mxz2hwvnxh";};
+babel-greek-68532={run="1gii2nbgnixdysn2li0xw5acsvimq2r04rpkyhy16hnz50cm4shz";doc="07l23ycdm79ci76zkfijpdz5mlcgd8qcbq5s4rl041c8d4nnfi5n";source="17n58ldkgsqadbd1agsaf0bwv0pg73ybfql5bkw3ky9k9ck9z24c";};
+babel-hebrew-68016={run="112c7lk1xihspknd146hgp9nbc7wfxz36d3b887f6q0mq6hf03qq";doc="0w80r70w90szg4rlzzj2132yfx8wbhxranq8zk49far863sn658i";source="1srid6v4s1r5w02148wgfzhs9jmmwzj23fhx9zn606rxxkgakajf";};
 babel-hungarian-49701={run="18hc7z7gki6jyglywmljlf37aff3cndszywa32kmprbn2qlfc87k";doc="1imn8zlk18fcs2nsy4ml20xzkhpmv5lzzh28i2c2zv6klm1kmfba";};
 babel-icelandic-51551={run="12v78k2l9vmc07mx0wy8g0mjwryp1jf6ij06502h7jr55my6y5s5";doc="1mbgan8gv7hld0jym7qks13yph9lz0clkgpb199x3cdxmbvawpb7";source="09wz6pfk3vb4c0az1lgq35vmzf8v49iz9cd1ys7rhdssbcz6flv3";};
 babel-indonesian-43235={run="1nmz2vl80cs7d58hl22y9m2hlf4xzdw2brl2z9k56w2mk6rg510k";doc="1bd7v0wrp85bchni7sbn4b7manybq1by8sb4bhzcmbw4b9dnc3yz";source="0p89lrfyqfhmnvijf9mdhmjsr8wzb4hxr40rf33wn50ak3m8gm7l";};
 babel-interlingua-30276={run="0zbyfhfs222i1wdsfbik33m1asdaa71rg700s9vfbvfdvjcikciv";doc="1z7j47zmp5y3406da831kwxqq30mgxh2wwxsrkdjycnsswsywgv7";source="1y3xsscz9zxaih3752sk6jhh77ljnllmikiwgqb3xsvzj7b5fs8v";};
 babel-irish-30277={run="0ih96jfa66jn1s8c3dpr0631pa17r9sch1lv1qqwpmsridp8dl8q";doc="19k6gps25d8i28vcpbp59k47mxdzjn9d89amccr5si5hvg1c2qnp";source="043ias6pyv22g8ywv5krlzj5ma98wpi0r44lmi4gfpqllkay5g1a";};
-babel-italian-62890={run="0wjx2fv2a1l6lqd5pjq8bfd1fxjkqxgn94s1rba0md2qcmsyzfb0";doc="0gdm29cjwnbliqxqa2j9i9py9x6hp960rdmax59vlnh8qvzs11vw";source="1kn8wksykynys23clfq87ihw4gw0npcdwngj0lwdn55l7rcqqk12";};
+babel-italian-69298={run="1vwps1b50swsx1ww2znwzjizc6gn26j6mx470dws76w1njjfgp83";doc="0d21yk97jakmq0pan6q0cx53bl6945y5mxckzqch285fy8w3s0ba";source="0b15934yvmk7r94c9cqjhlsdpd8c9jp2gyc51cxksh26sw81w5xf";};
 babel-japanese-57733={run="079bhnmpcgaml555dgrmiigack6qfqx20fy85c75p4fsn2c93bmw";doc="0a479m8rq8l02q1w73d6lpfpi0gs5qdqfbl132483f2wwzznvnrl";source="0kjv78h69422dj1jh7s74pkdr3qrdxxbzk3czzfsc5rax71x9jhm";};
 babel-kurmanji-30279={run="0jp1aivn0pzn8yq1q79gvzwdlcz871apjg6yxx9x4wf8yqr8q1g8";doc="054b2pj4iv2mnaffw1a6zqihp18765rdx6d56k6vj9kxf2gqrz1n";source="0v6nh14816ai72rqc7nxd8k16bi75dvx2kbvnaavknxyr53pjwb3";};
 babel-latin-59800={run="0k092q6cdpd5qp7kl0qcaf4idbsfrbyb12flq61k4xk8yyp6ip1f";doc="1p0xrbmknfffm95zmnldcwrrpc3ngrlvlnfzppjql1va8vk04s3i";source="1sa59mvbjspmdc5sc3cdix59y575nx6pgc878lvlcrfl70a7hvw5";};
 babel-latvian-46681={run="127649mzw9jp35mq1yqpavlvkvcvxvp61sn0yl4nvhn30d0dws68";doc="1dvcwyqvx5xw4fl58accykkmd9ksbg5a3yqalb6x86hdv2fgsnq8";source="1w8w1ayk1ixwsixlsar5nmhv70fqahx06ydraiyz543gm3vrk6br";};
-babel-lithuanian-66516={run="1akp69n8i19kyx0x247i4nw66wmlj3d3lkm0pmqz6c4zv34r9fii";doc="1fr3m5b0dcrnrqdb0sm184czgkya8xbx0zbj9wlsnlh5y2pnvyds";source="1dchvyy3zwa18x2dsz4ww9hjnkhca0cg65q85jw09l5cz5v005jy";};
+babel-lithuanian-66513={run="1akp69n8i19kyx0x247i4nw66wmlj3d3lkm0pmqz6c4zv34r9fii";doc="1fr3m5b0dcrnrqdb0sm184czgkya8xbx0zbj9wlsnlh5y2pnvyds";source="1dchvyy3zwa18x2dsz4ww9hjnkhca0cg65q85jw09l5cz5v005jy";};
 babel-macedonian-39587={run="11wiv5aw0k77rvqwcgh4xdiwcr67q42rwq0mq5vcpfz2hb0v8i6n";doc="0nsvnmjx8397xb02h2l00nd7ynz11f9qiqrpim2f18r55qmr0hb3";source="08z4ca7kja5kb2azf3whgh0w7fabxs3jcijihm0vnzhb1809napi";};
 babel-malay-43234={run="1h4n9m38s560iw86cr88xzflizkd37nhgyl51xvniyvkz6nkhrxr";doc="0c0jriwwkrll6sknd1c90bhipcjr3inc7vdn6cd2szlbx72ir12a";source="0r1gzyi40yx8ikxkrdqa1hg33vciz1qbvibd8dv3qbia7mm11hqv";};
 babel-norsk-65093={run="0n173mskrn15pz6pnxyysavwc93w5cz57wywdnn2xvb574ka8jhf";doc="0a3ka4hfvjv7w2s90y7rk2vb4jsaqz85sfbnlmkfxlhamr937c0d";source="1d5h7zm7d3d58lmkn3qy8aazx4a93fxmziz68cckrxa7izni7s1f";};
@@ -294,7 +301,7 @@ bartel-chess-fonts-20619={run="0xd51ighrn01kwb4n20dsvrjhh7a0y31py2mfl1dq34v8l6yv
 bashful-25597={run="0cp0lvqb88myspsbp7s3xd0rrkr1jlqcqq846mk8p7r6r4apl1ca";doc="19dbyg9njh2lwckmqnmy52gllsdwv2nvcp20marsjv5hps80946r";};
 basicarith-35460={run="10cjfm3v6b7rkzc0wngg635xbyfmrnzs5y6f3sn0akdfxj0d3x28";doc="0qm4qnxp3n42zvkxyzanl4psiph9z9dxz5b2i32fpn7p3jhn2qh4";source="1my6sp0mvbmpn2bakr93qwasqh7rwmzy8lhl608lssnxk33h8x8j";};
 baskervald-19490={run="1wvdsq2qngbrm2nibvmssk62kqvjkk50cxi2d7lx3nb6jgmj33c0";doc="0zj9xj7y1srb58lr9brmi2m7nw63n798m7mmzibjvn50kfw3qc8i";source="185jgbk6rg6vkdwhwb8i0inb32qr3rgsdi3xhgj4vj0iah9mdkbn";};
-baskervaldx-57080={run="0nnqkki5ff5jn9bi8xddqpf5r1cj0r6rjgb83ab8x49di3y5qjsy";doc="1q8yv0725j3sfnqgznnjjbkm57hxq5n9xvga1f7kf5c0jkp52742";};
+baskervaldx-69273={run="1iwqw0d6wx9zl5p9f92gw6zqshflshw4isk35542wncwm1w8fbzx";doc="1xzprri9n8rmnyj5cxbhix05cs3bfgvia34h5qkql8ykfrfxpk1z";};
 baskervillef-55475={run="108yndp9v2awi5vw29zbin82bcvx2fzkkhypg7f4dcl9lziwdbg1";doc="0divl9d4bgpjvc6yy2yawcrigkvv7pwdnxy1gvf8mypwhkp17anc";};
 basque-book-32924={run="03jh24rrjczpgj9d4w5fy9fv8w29wbqylx5s9n14jwdsf6f588ip";doc="0sza7d2qx89saj6rx591ys15b8gvrnalrbrkk2wcjln1x2cb95jn";source="15lgh24zyqlmqkw7wdigwvvkv6qwlpv4zrm2zqwgxj93bffa4fs6";};
 basque-date-26477={run="1hikrfz1z6y294zg00arnnc6any1iyn0gkhmv9j9wsnlvylcbnxk";doc="0gifh2wlhxl5s2p816w06w5h51pg6gn2mdskhpgkq16shaj4xqcq";source="1vjq5pqkan433wisv0d437m6hbmfqyds27dzwkyd233zq73fpjxb";};
@@ -308,9 +315,9 @@ bbold-type1-33143={run="0zvkzp43awkf5vbnrvhibkw185zg7h1rcfqav38z720cls2vgd7w";do
 bboldx-65424={run="0r6ds8wkf1qrv4mank08pzkwz4qk2pfyb6pvqazbf4jn4a46bjcl";doc="1b79xnpss9s1c7lmqlpznk4vvxzgp7dd248ipkq6n4dlpv0s2y4n";};
 bchart-43928={run="0knv4byfxfalyhmsqiq4wjcin0q0hyj9gs7f167cddjyzcg4z23i";doc="0zyiw3f37i3shf8ihhzxagvzwnsdaymbkpcizdm2ryziglahh1jy";};
 bclogo-39364={run="1lnfpy6fvw51cfy7zc1bpqhgca8mcgnhyvh5l1s3712xl91hsvwq";doc="0vf9fvm607fzw3rvc93crxjg9ilm6d7x7q5n1qrfmkzmkm5mjj89";};
-beamer-65975={run="1j8vljwp8cg6w8ly07ql8q5pwklz1xrqw5n0wg405ijxa72zlwk2";doc="1x3y44dz2w2fmrbranjzhq419ahibz20vk3900rgjfs0wkl6xbg1";};
+beamer-69316={run="1igp0jcs2w20k94fr84s1af5q8mw0mrvraslaxsxcnxmh65dk9kz";doc="0y07zc3zvawaph7pwk8z9429463i99y9b6lzv9v8cacnhqk48426";};
 beamer-fuberlin-63161={run="0w4asfzmjrzqqc8dsan461fvmkjn21181lij46rhissz273d9vph";doc="0hw0cp32k2gqv9y1ai733sj8f08hdn3pj60qh2ykmcqg818q4clv";};
-beamer-rl-65725={run="0n3scafwgkwy30scgzkx2b0z11wkf3hwhga8fqinn7ls7igcjvax";doc="0lbgf6w6gq0vjh96a4rm9z9cc0kl1x1pm4pcb6pb4r7q7m8illxr";};
+beamer-rl-69254={run="0dq7p1zpgv3sdbncric180slinfxk1vdskzvfzsivxzhh2z1adkz";doc="0qq209gc6ssz3kz180dnd6kl2zv3qj9iwq5nzcbd50ypmm483dg9";};
 beamer-tut-pt-15878={doc="0ayh3kbh11l4nyyzp2kcwzn0phqhzawppy044iyl1wwwc2v3zx5b";};
 beamer-verona-39180={run="018ckad1q7ffkixvf6q9a5d4fzgpkpf9qv06cfv0rjwp80k7psyg";doc="11vv18n971pcmn8lf2cya7jf55x8zw1d9s4sg2l3q76rdj7l53ra";};
 beamer2thesis-27539={run="1rz02mxmvrq0x06xbrdqvfgs21nhkcislcnpdwx9gvrdmwpcyccq";doc="1ialsnm6qc9bwry5575b8l9ifgymidrsvy2dc786ixndc0fzn84h";};
@@ -322,7 +329,7 @@ beamerdarkthemes-55117={run="07zg346brdpckcfr1vnmvqcahjmp87cb2sizvyx4jvxv19qqwpk
 beamerposter-54512={run="19h0zh583chawpzm59xv7243vzkz597df68yy0zmn3r6ha8k0qz7";doc="0xspyywk813ndrd5xps7fxwggkmdl078fmn1cvxfx3cxpnmdf822";};
 beamersubframe-23510={run="06csqdbh272jbh3zpi0f8zblbmi0sp5iiz1r1qa9qc0lw81mdh7m";doc="1g29xay21yr8aap2fzklkg8q3ybz0xmz22xx5cd9md93c8k9kg7l";source="1zb42dsisab4234s79xvva74rlicd1gg4pbh867rxd15ajgy14k5";};
 beamerswitch-64182={run="0hl3c2ircmxp8bywx871w9b7rdblzn28f0mqfr0pdaz3gijbw7ms";doc="00gxw3mdrpdziixnjam8swq1gm01nw5hg6yzs4ijdpxh5d911c49";source="1pnr2hrvz58c5i0848hcdjw85jybz4q7lpb3xwfkmx84wjx99945";};
-beamertheme-arguelles-66373={run="18196yri83lc99519ygm30ls5174jgn8kw2i1jzyjc1rnimcgbsa";doc="09y9w7cj4lg45ykdg4rgaf1f9p0s9gpn93y1x39kmksxag1d26h2";};
+beamertheme-arguelles-68659={run="1rg7bp3kvghb8qhsqax73mbh6pahlf16dyiybqbn8jwwapgmy9kb";doc="18f5ww68w9hiq0pkpf0lgmksf5lc2hc2kh0067h9ls3zy91md3xz";};
 beamertheme-cuerna-42161={run="1r6c3ar29s06b0yfn85wssxccayxn2706y9jxdx2pxsr85ndc4js";doc="0a8mmg184chg2lljv1k7ffydg4sgcjpjbnfjzqcg43cqd01v5dmx";source="1avywir51zks1hygqypsfi6lkrba9ld6x5mkr8lln7b2s4ijnysw";};
 beamertheme-detlevcm-39048={run="149ya5raar4xfkb910lk85pqpm6mrc5n5ghh6350knbmaa6bdwg3";doc="1wfq3wc7b3516s81sbp6md6mx9szbzq5ycqvsr50y3s2wfvvj2lv";};
 beamertheme-epyt-41404={run="07pjgzgkjmr4hdf16m7kx2cf1448253jwgc522akfvvnmx9fi26p";doc="1a987h1cg48bw05zjh79ga23qb37s82dkqhhgvp7gsnwz10pax2j";};
@@ -332,11 +339,12 @@ beamertheme-metropolis-43031={run="1pmvcyjn04pgcmvanj369hxqjha0s7lh1z4b6fbhaj2aj
 beamertheme-npbt-54512={run="0m1mpavq8p4pswibgfhsbnvg59kn4sxz0m4p2w6zjkmy80s3naq2";doc="15kc24d21d1r34hd07zr65rp1k55fwrxr59h0ayiiwgc9fkjjsd9";};
 beamertheme-phnompenh-39100={run="1smqwy1f7jz012x5hmsknvarykalz58iysnwf3px7kwg83fr8mb3";doc="1pg8242n3z6x1n4kp8my2nfllriijxwmwfn7d9hccfnsvjj25gdl";};
 beamertheme-pure-minimalistic-56934={run="1z283v6ipp7c7h1qhm043g0sdfcq2dwzk9l0lyy5951y1kj965bc";doc="1chzf3lgd4sx26nbmacb7dadpk1m1rm913dj01648vbd2bz9y4zb";};
+beamertheme-rainbow-67542={run="1zv8vrifblbhw6zfbx9mrfk1vklr83rwd6gly42jyg7fh5awag73";doc="0wy5cc1ca6byjw39rhj3xhynifg06ijqab5l1pavpcahyq6abq7w";};
 beamertheme-saintpetersburg-45877={run="1d48158ladllzj6a1np20irl0r0syksb3wnisxbbwv3kwzr7fgj3";doc="1qkzpbc29587lmckjkl3lx08f2j0q3aaidqz22r6bg896j8q8pr4";source="1r4cw99zffqsvppc9l7z9k8l93sfk1nk8pzj50nm2bmkrdbfk32x";};
 beamertheme-simpledarkblue-60061={run="11m8p3n45qf697sjzszjpkdwqfgy92pzxh9k7dx72ikpdah7ba9h";doc="1ifbh5r0sxk8nsf8cd1g0d1w26ypb5hhsylc7pni6wn9n70799jy";};
 beamertheme-simpleplus-64770={run="0ip3imjc2gz4d04k8lx9vpd4an9sqmw3gbb25rmfpyy0qfxbj0ax";doc="00lj81r295zh9lrbffq0ja1skpg8l8l3waj3d34sq6i9sf8rbg40";};
-beamertheme-tcolorbox-64387={run="0xqqd7ak7r0zgy92k1sn32ahv48zjpggsjbnx761wxv563sm0ihy";doc="0nlaqvbmsbr4cqzws6c3bxwlmkwqv3bg6i6rwa5ll4sqgsk6symr";};
-beamertheme-trigon-65974={run="1fdray7kncwsb166awwr4jwnk27jxnp3824yf298pp4ikg7iw6b0";doc="1l8iqyq8ib1v0d4k7bd35hb9lpdmpzplnv0fqb1ngzdn0jfx6c6q";source="1s3da6z3sshhndpaxmi3rh7zphh7g1qn4b3cxbzkifx2xqmz8xvv";};
+beamertheme-tcolorbox-67000={run="06yri18aw8bb6l69njavl3mj38rmiy9aabjyfvy3nam2mc7ivhk0";doc="0v1h8smnlfic4r5j8dlixn03ihxy8ciwgc839zy739908g8wix58";};
+beamertheme-trigon-65985={run="1fdray7kncwsb166awwr4jwnk27jxnp3824yf298pp4ikg7iw6b0";doc="1l8iqyq8ib1v0d4k7bd35hb9lpdmpzplnv0fqb1ngzdn0jfx6c6q";source="1s3da6z3sshhndpaxmi3rh7zphh7g1qn4b3cxbzkifx2xqmz8xvv";};
 beamertheme-upenn-bc-29937={run="09a7da5ghgf5q4qp0djp3pya35zsm45wkiy5srz8p9q8pwg04bdx";doc="1m1bc9mxdwfdm0v2lb0i3pfxgf5as1lpm8a05icrm7bdvii0vsiv";};
 beamerthemeamurmaple-65698={run="1amknxp5vladf2slqjn9a6inkcgicha6fb3c6pc36f92q3n62csk";doc="08y0q7qq78fgghfnbxy2vsbqmqrqdnj5p8y682mc285qpqwncj6f";};
 beamerthemejltree-21977={run="02ccd8qqyjkvqqyxr94p1gc6qjryl83vpa72wcm5ywr8gmxci0pi";};
@@ -344,12 +352,13 @@ beamerthemelalic-58777={run="10wv3820avgviic0mcxn38yycyxqfvmf7qhb5ybz1x84jrw8k9h
 beamerthemenirma-20765={run="0ivhbhybc99hacnrfw1fb9412f6614an1955rglkcbwxwkji6nyn";doc="04155wbw6ix7an8sblw4a8q9hbn7vzwffady4vc23vzccc2i2f4a";};
 beamerthemenord-56180={run="1kb3485dv7kcj04bkgz8cv15kv7jmdjy0jcilvi5zc1vn690cyba";doc="0ls5ivdcgayz9pqm6j1wd5f45s063kfknzxf594rdipz1jnmvj4q";};
 bearwear-54826={run="1xaq0bmv8jv1zss6lwx2ccx8inrmyw1r9bjv3sbqfhp2x4d5xjrl";doc="0vm9lm6389jnmcgzx0ffmay2bw4d0h1wfmsfbj3x1s1vrfl62r8j";source="0dzmlcrc4izb63862dcafshzsaglq5m88z3cxmwivmwpikhh0gb5";};
-beaulivre-65475={run="1xkm64zf69achc31qvnzw3dyxsyjxpm5sbrxkpbq01rl7l0rmgbg";doc="123hijnaj7dxn6yi1csfk60xcwiicjv8l2b78314rvdklaqy69ly";};
-beebe-66287={run="060v67ma1r6n9fmg4v4zl2pgxz6gmd4qrazyss9hwq6z4206pqc0";};
+beaulivre-68376={run="1iph69jij9ryms2njy2mi0vd81cfb3rq3y78was44lbdw3fdxmhz";doc="0ksjl6rn4s6s301bfac22y91q60mljn96vh90bbgbbbjxs50060r";};
+beautybook-68438={run="1s0snxw87d8f1chj6ghbl2x8byq11piw5s95v5pla9k60559qnvh";doc="1ddqd3k2mdj0psqlbgkjpdy0ayjcxh54bqgih71lwsw73hc6gd6i";};
+beebe-69012={run="009g1m0f5d5vpajjvkhfcjqb98srz5jd5m47fa18y10nfbwrbwl5";};
 begingreek-63255={run="0dl4ap6r3xdwi0kypp6mq171jp4hl9hrjlhfrw9i6pd31qh2bp85";doc="1lmrl3iqgspi6hd86mwssr2bjqg59dykgwl4kzjfrbqa1637df9s";source="0nyd2kqsmkz6rvsfcymbbl2kvs220rk2fi2wajv46w0px81bxch7";};
 begriff-15878={run="1hl6jb8gg3acsj6rs1z0w5v0i6ivvas87hij4n64jdwgf1lf02ja";doc="0bd8gwf3ifqkjpr8wnrp0xx78169b8yc1ppdnyg9v6n4l1b0x0s9";};
 beilstein-56193={run="1xh2955zfnss2n9g8rsa0m1kad4b4xpsdrjj891kj97hhgd9hpdf";doc="0k78mwjqqib6hx7c6lcxkzrbg3gfw64a68fj32g0wpvdyj406ssf";source="120gcmpz53l2pzagh40nsji9g86fq4xvahzhwqqw7p01r03wc0cl";};
-belleek-66119={run="16vq207gnh24axsmh2nnh8lgy1lz2dn2kfn1sx51cbl28qv3wy2b";doc="064l5x679az55jb808yq36n28qhf0gv0xm21iz8rnz4qxymwsx0f";source="1w1jbq0l49qd2wwc0xmravrid4rfba52yw29z5ki7p46j51dw7i8";};
+belleek-66115={run="16vq207gnh24axsmh2nnh8lgy1lz2dn2kfn1sx51cbl28qv3wy2b";doc="064l5x679az55jb808yq36n28qhf0gv0xm21iz8rnz4qxymwsx0f";source="1w1jbq0l49qd2wwc0xmravrid4rfba52yw29z5ki7p46j51dw7i8";};
 bengali-55475={run="1rqwjn1vim77r30nmdmw5v50phpsfzdcx8nlxhxlvqsca3yqzsvz";doc="1zxczyil1izzj9pnz9c6my76mggg8maxdign07qn4kzf8c0fq8jp";source="0b4v7jrngga8znbfiafazxq6z333wa98prp7hwzzhpv3nxj6kbl8";};
 bera-20031={run="1i3mahkkb858i6a3wyrilcbswdp8mhclvixdxgc0wpkqvxa6qwya";doc="0llhr464l0akf2dx1avnm3d7adzcz7ml3x95glafpk0nfgb98qgd";};
 berenisadf-32215={run="05ibwmiklbdkffb1d85w9097sv215afgbr63fka2iqzcnm5lzbk4";doc="18awb9xgra9qmrsrm9l090c5lsx14xp7dh034k1fq1g1767w68ms";};
@@ -361,23 +370,23 @@ beuron-46374={run="0zfkx9iiiz7h501ls3z1fxk2ga8kjhi21vpmlng6vvw4v3dd1xhy";doc="0d
 bewerbung-61632={run="1grnipw9vjrqy657wkrg656wmh1553wzd1x84jc6zf9gp3v1440p";doc="0ny8ps46wxkbsd5g5yxyrh2jd74b204r35lggy9r7ckk4jab2wj9";source="0y79pmsbjzpykldic1a41l188wmkmn9izhvg5p77i7phx35s9qjz";};
 bez123-15878={run="13l8qvnhfq575pg1nvcpbrwyv5wvq3bhpkmh2306mds784hvcib2";doc="0qrskibmq7sv07g60gzd5cp34p21ragr6yn9g6384gib8vx60nqf";source="0ab153h8i8nmc6v5g9xwvpymjvpp605mbj9dmxdyl3ic49cpnl08";};
 bezierplot-51398={run="0iz8zsifxrwbv35jlgq3qb4hdf2sqgj7smcc3bfll655zq0hqmab";doc="070nxd9n0i9r7h195lkm45zfpdbaqz4lf0k69qg6qj5adwrdqbvr";};
-bfh-ci-66465={run="0r5sj2vhkpnz66xfxx72sam5y1a3y7vrvqbkh8slsypif5dx0yls";doc="0qvh8h22yx28rb5qs1mkj72qkp7lh04lai5xnl23ig1n5njvgbic";};
+bfh-ci-68828={run="0z8ymg5d5ifmhp28nm9cn9ascfl8m59bdhjgwq4wp3i4a05c8ais";doc="17pr0ydkh13h7wx15wi9xzmqpg3xdi2m34z6cb6ql1g5fi0dbgqs";};
 bgteubner-54080={run="0a8zhnl1nxzg5r525sn8sz44crjdm5fmy09glp8cjj7nic5xj32g";doc="04nh6c3q2w984x7kmgj023dbpjq9mqciyg4xrypgc4zv8wvcgv1w";source="11g65q55cv4s72cpraxw7yj4qskkhqhc0mz0sfy6c8jrq7255ils";};
 bguq-27401={run="1spl6qnixrb6vcdgaaxx0fk740kkxv7y73xamlkprdnrsmqrswwm";doc="10za9hbwigcbxyjwyy5cd760hqabyyj3g74w355akhfpyd20m55v";source="1vaw8sa12c94ia6fknnpbj7xxng3q3lj3h61akm590riffklw2kv";};
 bhcexam-64093={run="13r8z9wj4v07zjfv7fxy4kq26jflywbvj8p61g7r6rgj5v4pqay4";doc="0gvf2hr60iyymwq8alkyyya4vilsczqc5zhg3j7ydsz9hpvbkdp7";};
 bib-fr-15878={run="0csd9a4j3hvgyczgnfnhp8n49j4baym7nw8sck38m86r3kn8n7ar";doc="1inpqvmf6c5zb091q5fxg0r2w87kacvg1yy1lyai7wq3ll0axvp7";};
-bib2gls-65104={run="0rjl5zbp3ai7h0lv30q6qd8lxzzf9flnmbnwwiszixdjzqfjkbb3";doc="1jkii48m6ib9yr6v2hc7yi1czqr9n0i5n7rq4azyz5cbbagka8yy";source="0v22axg88scgk4ixr4falb6b0pq33ddb7l9fbzslrrhbr23kfl7k";};
-bibarts-64579={run="0z4l6nd3hnbgwda2w3si7bqrigp6vdx87v01z4hvf6jk2abykcgy";doc="1gpxi1w1jbzbnmj6rd9r0v3dcywr8b3fpq0haapjh231i3q4h6c7";source="0md7n6zgcqixq1g0csznjsiz60xp6qkk78rxw97dc673q6w1za4z";};
-bibcop-65816={run="06fibqxxaxxm4q0qqxyhci191b097d6aw4kh9s3scpd5gs3akgdb";doc="06zrdp2wwjgdn0mrp9mlpdlj7hisrzs1fzy14rfc7x1ygqcwg4mp";source="09aqfrvhk5fpa4xq39k2gg8s5jqzrmvmpxpqadv5s5mv75gcs9gv";};
-biber-66456={doc="1kwhxk6kzfjg62ygsyvxqj12pgw4bippxq7qdlgi2961n61jaj32";source="1sfi675h4gbk4gyx3gbby2z653vmy5z4wi6ghrhhnrqgivpqi3m6";};
-biber-ms-66479={doc="0h0hxs4a7r8sr5w573d6m002zdpzgs0gghwbasdi9j2hfb2wv6b4";source="1mw39ra48y7gqhh8860544wvzxpciaka5c38873vvnbdnng44mh7";};
+bib2gls-68534={run="0n0wdd4gihv6p004bb4knif4k5mg93hvg2kfhy6326ijdc61nnnh";doc="1abirvm0ifp4f8h28abidbr8wds3mjr8fbml97gaj2qv5qm87nby";source="09f2pfzirhjc5xf0waga3ga9l81cj0nzj45ghi5r68blb3r4d33i";};
+bibarts-67407={run="0yqpdj8fnh5lafc9amvmnam50sgxhwsaw6fr49k2bzxcz5bx1qv6";doc="0di7fqxkaddpq3iqxf9nplz0vy4qzspala5hyh6l8zc9wdcjr0db";source="07664c9cgf85k2c096r2aahkl1ddawhcdqgf7wfrr806qi67mbz1";};
+bibcop-69395={run="1nvmpqv6krjm2g5kfs7fyc7hqywkiwp4l18rw9llyic9kddpvn3y";doc="0hblnmbssn5lz1vsr0ncx6c5i75f7vlsi7wxn7gg7sxfcr0bqbrh";source="1s1zslgccaws2wqlxrr0yd9wijir4a40qx8469lq92349m3rwnzp";};
+biber-68188={doc="1kwhxk6kzfjg62ygsyvxqj12pgw4bippxq7qdlgi2961n61jaj32";source="12jl5fyb802yrfj0fdajksrli1yyi2apf5kckgh6k0cri265bmxa";};
+biber-ms-66478={doc="0h0hxs4a7r8sr5w573d6m002zdpzgs0gghwbasdi9j2hfb2wv6b4";source="1mw39ra48y7gqhh8860544wvzxpciaka5c38873vvnbdnng44mh7";};
 bibexport-50677={run="1zbsilzaz68zvmbf2xw7jqw4l66clcplz3l46ggxw95gns8mgqlg";doc="17a5w095vkpp7j54h8m7f74l7vycsqbv6zzschdb3dd34scq1s5w";source="1pqs7j4xdhx3pqsc8i0wqnz9jkyg891dzl7g3cv19a6wv82k0xjv";};
 bibhtml-31607={run="1sg9x0jrgh2jng9b1pd08i0f8kzhy94sq0mf33as91gr43dzws88";doc="0is3q2m1xg52h5s9n9403c85yfmpjaqqbh8lgyfqfwhl5qqmgrf9";};
-biblatex-66405={run="0zzyi1sclgnrfqvi6bbcymwg8g076br964f40x25l5bvn6r5hx1v";doc="130p4vbg7c86ac7kyb2briwy4v82qbfhpxhplzlxhd4xa2p3j72g";};
+biblatex-66403={run="0zzyi1sclgnrfqvi6bbcymwg8g076br964f40x25l5bvn6r5hx1v";doc="130p4vbg7c86ac7kyb2briwy4v82qbfhpxhplzlxhd4xa2p3j72g";};
 biblatex-abnt-49179={run="1dn2929wlyzwb96iq5lj8x9zr2fi1c4qk1rldc0vrr5s3cxfn3x7";doc="000akwyh992yxzn51jlvnc20g12ypq2zmffvnbwxjy3cyq0aggq8";};
 biblatex-ajc2020unofficial-54401={run="1csx7vad5svflb76ssdkvd8y3r2n9agqqynw88wvzhzj61fkd2cr";doc="03wzlpr5v6y67syy0bx87z123ark524fm6kqjw83v0sa4y4kwq7l";};
 biblatex-anonymous-48548={run="02fssl0l50s94y6x7rv2rm0227ivgr7kfnim435j4k1l0av4gb3n";doc="0dffdxp04shrh7fsl4dilqcsnnxbjpbayy9r87hxmq3yk605lvki";};
-biblatex-apa-63719={run="06dbypx6ggnlv8ck0y5h4b2cdp2k0kslpzmaksd0bybhwhbmw6l4";doc="1ada2q8ch4kkn7i23wggf7akq5nzqj0najdlcx54y6badm35d7al";};
+biblatex-apa-66605={run="1hlh14lg9cay5962z9pwzslqs3mbqfd70i055r3xbgd19a8hw5fb";doc="0mqg66qiiqnffiarwi6fs3cmyyssiifv5kbjg9579lsh3f4dag4m";};
 biblatex-apa6-56209={run="1a1kynyy1gdmsfnwlnxws74hwyqc6sq29wv6ybalpipdzn7dg73i";doc="1qvn9bnzvx88qbmbdgds53q08v7ml42mbqbcn7bzzq6mnz9ra2mx";};
 biblatex-archaeology-53281={run="1kf5aqc8mv28k0aiipwm6yc1vkgzyikp0bsmpmgdhy5acz3whfxc";doc="022l37hplzmvkcpnr06n4fz509w8wm24py0c05qljs6jz7smyhh6";source="0shn0bacflcaayajxpdiv9ik994aizpdmlc010shm3fzjdlay79c";};
 biblatex-arthistory-bonn-46637={run="1j0wy272dkzcb96i74qh54ap2hs5wdhmln8akh749fyydsazr43h";doc="094s5c55lfc7ssmz3mzj61zkxpnn1haj2vh582apzffppgd3fd0m";};
@@ -391,13 +400,13 @@ biblatex-chem-57904={run="0kv44yng5wff1xkgw8nya64jizfcf1ipxrgnf46pd1dak5vlsiq0";
 biblatex-chicago-65037={run="1ik86b38bc59qyj68fajcbskbmlz6vsg6nzwv6pm1fxnmhnnfd0l";doc="19sy3fi70kmvqknbfa0wxvn563l4s3m59f3jx75n29vxrdljscp4";};
 biblatex-claves-43723={run="0saj8s7q9lzjnydjh3x2hcnhj0wfm2p4rvxk5n6hi2ccfw78d3c1";doc="0g4x5jblj664ngppqpbks3d0ahn818ck871q2aqir6jgkrd13cpw";};
 biblatex-cv-59433={run="0k3bbbjvykc52y4557nm7kqna89mjq6g5j5hpblrcdlmvd5anq2l";doc="1xbd71vpm6vfyjaszn7jlxr084mqxw558rqyqr8x848hbyh6f888";};
-biblatex-dw-66534={run="0qxc6ggpvs4bs4k0l16393h573xh25dmwf5yar0hg0cqyr3xhp53";doc="06j4b6kgsngnj23h9njd027pdgynlnx26p3zb1knqgd5kjbmivmq";};
+biblatex-dw-66579={run="1kjvqx9yqqzhwin4zwkp9qcgh6nk7bad5nlhx63mkwp37izwlcrc";doc="0a91cra76s2134anv2jinwcpp0jkd0pn7vybbin3pgyamhr469lk";};
 biblatex-enc-44627={run="0kvya1xzxpcmvwgacb726jqzmgr944y9ljai45f0gdkw855ylmb8";doc="0mmc5sd1jjnj42aa2q1g1zaps1hla6yayl769i4bya6i1w9r99yf";};
-biblatex-ext-63638={run="0nggnk560rs9kn8ggd0na2dvsr5xxda6dd9bryhgvnf2n81zgpqw";doc="1qn7dq0mgckjzcrndfv93pnyx41637fm3lxw2qj5mpf7q2xmalhs";};
+biblatex-ext-66641={run="15fq6q1rxx8ca8p8g84m21v0l5pnibzsvlrw7abl8v3zs9bbncqv";doc="1pl04di1qmkf03i3l7ccszf1xab5bjpg6vjrfxj4n5gaw71k3jmz";};
 biblatex-fiwi-45876={run="16grb6hqmrhvzryijg6p4q4vf47a0lxa8bw59avlib5j7mqpg0wc";doc="10skq20bmpqymbgxs47z8ac0q5nckyph7s4xwqmpfd7pi2sksb4a";};
-biblatex-gb7714-2015-64967={run="1pzzkpyb9ayygvn8gzl6xrh25dk3aflv49gx611zkkbhw0cp9qnn";doc="1p8dlyd5b4ap80vpnp0nbl8pw8218d2hw8ifrcma0g18lyay79ic";};
-biblatex-german-legal-66465={run="05wf0z91b7yhw73xz70nfznic6x4iy0ir5savldd1ai67iv6h569";doc="04xrqwnsai24xh1apw4vl5gqhjd06vri33cxp0z96sp806s6hb4z";};
-biblatex-gost-59135={run="0ar1d77qzhqb2wvxa2rqgfdk006ph5p2h3a4i0ibjbnm61wx2afp";doc="1xqs7h95qc04lz3wiyfi546p6p4l9bzx4g13sbybsyv2b9yv9114";};
+biblatex-gb7714-2015-68240={run="17ri6cmqp478z15bsbnfmmshfbp25ng070irk7i1qwig4fgvmlnc";doc="0k5shfxnw0kdbplw5fsdf3bybd98dgsshmwqrnpllklhnc30zhbf";};
+biblatex-german-legal-66461={run="05wf0z91b7yhw73xz70nfznic6x4iy0ir5savldd1ai67iv6h569";doc="04xrqwnsai24xh1apw4vl5gqhjd06vri33cxp0z96sp806s6hb4z";};
+biblatex-gost-66935={run="0d7fcvjv4100ws9p14qvp4dvv5wzp6xc8qhaqrxnrzkrzd6w7x81";doc="1zzxb2hqi4gc42jcf21pw79h56yxwq0c0wv7z45lq0m6vc45lzic";};
 biblatex-historian-19787={run="14p27qb8rdx479pj7zdvl00ir1zg8f0bzp107zfwv61ypq8zrvbl";doc="0hcghqxbjah4lyjzlrkixs6iqbkjx4d8r3hv16lgnddkndbgq663";};
 biblatex-ieee-61243={run="0iwj8jp5q16g0waci3wqc7hb1qmn35b6gw0x0c2v7444rs2id242";doc="0mnpgdamgf0f3nr0lbzkhl0ncnf5qvd3g3q4qnw45h30y69cpmsq";};
 biblatex-ijsra-41634={run="0gnm3h0918lvbqwnzk9wkdcafpzz5q3cln2z1sjaylr3mgypykdw";doc="0jl8mr3ai1ybc3lmp7x477znv59az94hlbzaqmvix54rxf6k8f4k";};
@@ -405,23 +414,23 @@ biblatex-iso690-62866={run="1nkq6fa443dpxxm1w7fkj04169a50d61zwsvijg2z80ivlfqpn8m
 biblatex-jura2-64762={run="0lq0dllah3drjijlscwy3nvzmimh9zc0in10vld516lmd88i7vdq";doc="14l5sf5xmfi27izkds3cv933397s4fn1ah4k7jgkj7vw424bwh55";};
 biblatex-juradiss-56502={run="0zi9b67y0p9zdz2n4j1lr5qgd54p3l13c132wjz749mlrv6njfx3";doc="0a6d7awx49cy86ndwfkfq280dwh846ssjkkkrgbq4vxlbmbh2zpx";};
 biblatex-license-58437={run="1fg16xc32kbg493y91sjxjnxpi6jb7kki7yvy3d796w7vy86ljfn";doc="0iy8ad7k9j5x5wnnk196dwsyc5hhz8fl88wq56x80cgfdkg20jrh";};
-biblatex-lncs-65280={run="14m44xx5ywv9k3wchy8zh63wkkl4kwns3znj19iybw9jsdz95r9j";doc="1bdyaxj5a85b12jm11g64ic6mmjgxpvacxxg4g3xkslx7afm4cpz";};
-biblatex-lni-61719={run="1dg4xa0xkblf3iy9hipjp4wwk46zwq5yhwfsmiwxa63bkjavpzg6";doc="0d0cx0jvgy2shly976ypmr0k1rrpmiiqc01m2sb9scj558vrf3fn";};
+biblatex-lncs-67053={run="021b8002cdb3h8yvqdfvidmzbdjqpybbgq14vya746hnnnas501a";doc="0fvy4ailfz2pqg09j6cqydsl9s5x36y0cdhhpvvyjfbvzbz2cc19";};
+biblatex-lni-68755={run="1z6zpq15kx0dsq035yqwal9p3q6ph6fvrax9ckjz28c31x668agq";doc="1pkjza70w9lzcn7r3kn8l5pg89dasj66c8wm8ixvahzvwgjfx9ax";};
 biblatex-luh-ipw-32180={run="13hh4x8p8hxnyz6cr22lb3djl5advrl5c9dyx6f491d2mjz7vibs";doc="0xb2wmg5psd0wi21j1vmn1y8sy8gw78350fqbmpgd6l4xw7bb4gn";};
-biblatex-manuscripts-philology-53344={run="0wrhgwkbi468nzh41278mxh1ljsycz0vvch583jaksf26cxi6cpd";doc="1ybl7drbymw9sr019w8jyxir0827kbr8w9swvz64shjzhblkcdzg";};
+biblatex-manuscripts-philology-66977={run="1095qakmlkx81frnzanzdszk7isp92k4cgpqlgvwz9r5gk34mx2d";doc="06vg1il1cp3j525jxisdzbbd4v3504h4yyp733prh9s0q5s39yai";};
 biblatex-mla-62138={run="1fdznq1hvym9wgrxd2gsxdi534n5pbx95i8hzkz95zbxfvjpf4rk";doc="0i4716ascvd17l0nlf1wn4vddkjkzc85545wgb4cdzj847azm1yj";};
 biblatex-morenames-43049={run="1imryzaywyvdr67qcspys9r3mhl5k94vhqjsl16pmz86klq1bs1w";doc="03p7154s44ga7rlf8ya69qvbwkb6gsiwz8j2wycgzljj0z3plnjh";};
-biblatex-ms-66481={run="06adhhqd36ahjax1hn0ahpzmdnj5rxrs3yj6h7iyxc46s6d5cx49";doc="1slizjqc40mqai0686q8jghnsbvdy78kc5kpk5v71pc484dk5hg1";};
+biblatex-ms-66480={run="06adhhqd36ahjax1hn0ahpzmdnj5rxrs3yj6h7iyxc46s6d5cx49";doc="1slizjqc40mqai0686q8jghnsbvdy78kc5kpk5v71pc484dk5hg1";};
 biblatex-multiple-dm-37081={run="11rl82yv0bfy69cmij15np3wc15jss82ghf965r0b1py37vsj0s4";doc="1jypgpaid18g09xxryriaj4n1ql0759jfv4jshjbkbk5fgf4c2yi";};
 biblatex-musuos-24097={run="0zs2dwsid3xhcl01a2hqrr0mdfr1q9j0zga4rjlarfzkgznkqrwc";doc="172kvn0rpmk331yvpf3zbyisv1qlykz8icxgr1xkq5z9bxn9qmkc";};
 biblatex-nature-57262={run="0pfpm5am4dwj04fwdjrw30dx8qrmfx56s7gkl9h9qyj2qadsx533";doc="1mga7yx3radxwqhfmxzh2hmsyvx9qmal394cv31mlb3yd5ww1sv4";};
 biblatex-nejm-49839={run="02v8bfdxslcgilfsnw0g516zl2rfqx0d87hjb0dbm4md5qbry0km";doc="1znfnxizc22dgpp3bkl1iim2ksi3w9klw4jam84103bpbl3vwxgr";source="02q97wss9bm6xj9lvr8vx8jvp8bszkxgk4ayxk5zc4lrnjzw2i51";};
 biblatex-nottsclassic-41596={run="00valazq56srfggfw1mq8h7285lrx8iyk44kb8bhqr1q7nhl6pzi";doc="1c5634p7knwv8zrpqh39zlpglbdbx9a5y5gw54gj37x3r1ij769x";};
 biblatex-opcit-booktitle-48983={run="1xciw0zxkp2034lccvhr6irkr333s0qqqacxqx20v51vjjg8ywkg";doc="1rbswdipirzv68ckh69cc29k908ifpkzp3vxgd2j0bjl3qvbwcyq";};
-biblatex-oxref-65707={run="1dh948jqy360dvinvql8rd40gzcpcpw223lpnfsrk6klmsx0rm92";doc="0v3car4vywy9i717ffh94x49hgfqyrryy7h8w63cc8pa53kwz2gp";source="1vp027l005lzw2nf6k16ysa97cxvkria59wa29hrivb26v5d6wkl";};
+biblatex-oxref-68950={run="0c5ijpv8r0wwk8pnd8q0zg3xmkfdn1dkqncdzqjzqql8vm0hh8x7";doc="054anh0z6z0yvxxqd4gsy2sk8yqwvsxgclazgpmqvfhr7xvjjl1r";source="083wrmqr3j28756z4f235kjyq739hnkg0qnjnxs9vdw3hzwijry1";};
 biblatex-philosophy-64414={run="1fdqbfia3k8zldsyy7bf6rhkscf97v84m5c0xjnk0s0xb134d7hc";doc="11pxds41wzdsfgikcyx84d98pp3sz5625kzim7bxp58vn5rkrd95";source="0fhp5lh4g7m07cfpr03ca0vrn12lks8lsq3w4vbvkhh2in5w7z43";};
 biblatex-phys-55643={run="1vj1rrhzh7ncvi2dap2cjk88vdj0dmlpakjiz953rvb7szx0h40r";doc="0z3y7gmcmp2p5g25jha6kwkd7ma4pzgqybxra4402p6aid823fws";};
-biblatex-publist-66284={run="0r2k8kiqw574gcdh76andr6prhd8z3fnspap8hhqlfn9lw9ly0pi";doc="0mvq00rpihk5mzdg9ivly3wbmpbrsdm1phkrfssnjwm5icbaszw6";};
+biblatex-publist-68476={run="15fwzc0splkfpvhrnpwh2yvfb9yy1zrmf5wvzg7knafqjpw8i05p";doc="0rv17kq27n9npagpv2x2fdww1rzvqvcvxq22yv2yqwcy3np1gmfk";};
 biblatex-readbbl-61549={run="0byz95nahaassfx1gpl80p4vgc2bhs9wfw9w7xxwan6b1kkkz9p2";doc="1cp3r5j8b7zrl0k7zzhyjcrw9nypmr6gd7mn1q5whn7n1dn5js5c";};
 biblatex-realauthor-45865={run="1xv65ic8ywf18fdb246sr8pvq60hv4wmg7ris1glr5104g5yhg7p";doc="06nvybm142cd1shgpcabddbrfyvzcc3yxk9zyq9hr3rfhzcqf05q";};
 biblatex-sbl-63639={run="0947b4lszjbhs0k2p6a31mzc4bci9pvh4awq6k6d4qzvpr51yz9g";doc="06rqhkxpmlql5hvw31yx0mwkdjwnrh9jk4xazqq9bxilgx4y7q85";};
@@ -437,7 +446,7 @@ biblatex-trad-58169={run="1000rdnm9jqk89snffsf4ldl47wry8k5akm75aqhd9r7qbn73car";
 biblatex-true-citepages-omit-44653={run="1lqs1swmdmnhard0589k0r8gz3hp9bd88dz5z0kd0586vl7z2l82";doc="0madnjxwjlz9hs6jzgaady4sv0878v7fyjs3sn1bcnzyw4krfxgx";};
 biblatex-unified-64975={run="06pq753prhncs0sk87dqlapm455jlyfvnx16q2c850cdipi33rdb";doc="1rshsmqfjl3ajaxvcdiqr01hbm4dh5qxpbyp5k0a233s254j4ypa";};
 biblatex-vancouver-55339={run="19ymkk94c4l5sav1lb66f2lxjyfzzi1s78qd2a8drjp9q1c6i0j8";doc="0wn26kl4nli220lfs663rdqmv49xgi76kjgnlwh99yljx7v47n09";};
-biblatex2bibitem-61648={run="1l3j9v225f9g2zmishkfvimd08di89p39g0sqffdwx0psj99dw5k";doc="0bpbsaasi6kq5ggs3cpkmwlakdlymd99rfr028q5xj42ir8cba3h";};
+biblatex2bibitem-67201={run="1l3j9v225f9g2zmishkfvimd08di89p39g0sqffdwx0psj99dw5k";doc="0bpbsaasi6kq5ggs3cpkmwlakdlymd99rfr028q5xj42ir8cba3h";};
 bibleref-55626={run="0ds1a91dm11y93dy46gflzgdx5rgzzm8j50q2aghbhfiqmb4vx83";doc="18zif1ciynp47z8hbhc2p6r8jiqisj46as052scb5q6p49fc1ibb";source="11brqv3pgzzk3j09z6ps6ggwsqm89y82s3cl6xldnyvx2ngc5ym8";};
 bibleref-french-53138={run="1r12767ayfh073559p6pdrfs9fs9g2dxcliyx06j7r8lyfab8d83";doc="0kiijl5jhd024znr80g3xqdhz3jyg4vm4kyf1rcpa7dis4ffazpn";source="17xih976gi8my8mdr8n1nfvq6hacicdk8a01s23a0sarj4qwxz0q";};
 bibleref-german-21923={run="1vki9hg39xhn8xzbd4wq6vn6zk3x9gl9bm9n3wr214c5n5mpxkq2";doc="0q69vfak1yrv564qcw3nrklhq4sf62hi6l7z8w2hcj3c325kii56";};
@@ -446,14 +455,15 @@ bibleref-mouth-25527={run="11x3ldyg77xzpx8yl27sxn6x5gb3jdngd5hgm42p8ac0x57x7ymz"
 bibleref-parse-22054={run="0xa6nkbydiczmhphdi3rpipiva94x2pwmqgqcwmr6a66y1gk0d1x";doc="1mn4hyfyialzmzm0syizq1vps07z4zxd853v3aljn6zwqcwfpkxs";};
 bibletext-45196={run="1p2cz95815vkvvc9fsa1qm3sc5grkxzdsyw30qkilff1nivb3cd9";doc="0czz3l0m314a25i242kixy9f9spcj72h3bibfdib55gg05iw102c";};
 biblist-17116={run="0z69a5x3czy0hb59c93jrkmmg6i66vc7rw6szvchsbsj1c6gwjfb";doc="0wp7x8qj7bh1pgcy01jmq35r2i1f8yvrv6bcr8p68d70sr1jqspn";};
-bibtex-64491={run="1w7vpf0kw6vi3hgmlmk0dpzk82kns7a77appx8yg76xcip2xid51";doc="1w5pmarqzrbvyszsjva3hkiagcwmd7r1xcshdfsncfg0hzxpzc0z";};
-bibtex8-64491={run="1hi24b8mmpnz17cfj0p40ipyvzqhgkkhhgh7qkcgr1bz9k82q7sk";doc="1acay8y0l6gnczznxprl4h3bx7jaxdqrczyvdgin5z8yqhx0q13q";};
-bibtexperllibs-57137={run="0c083hg8hczwc28q0c9gw4z1bwj5w3krhrs5zg15h0s808ji32xq";source="1pb46v09ik8cd5kbhl79qfnj9p2wl19g9vpjkdxqvzsb04i7lf0f";};
-bibtexu-64491={doc="13nj4xwza8a8pymdv7iss5ny7yj51bz71b0g4dy3k2lwzml2ch2p";};
+bibtex-66186={run="1w7vpf0kw6vi3hgmlmk0dpzk82kns7a77appx8yg76xcip2xid51";doc="1zsqknlbs7d1zzp1gld8wd2sh0iccwq9vqb15xka9gs9wh30gc6d";};
+bibtex8-66186={run="1hi24b8mmpnz17cfj0p40ipyvzqhgkkhhgh7qkcgr1bz9k82q7sk";doc="0l50jqs0dljlaspb5q6arvimvraf9iv6sch1hr5w5yw1m22qdqs2";};
+bibtexperllibs-68910={run="0wm7lrg1rdhl0b6i8blfs1vkslvsdjksjdhc9bafqrrz3wx9yx27";doc="1r4bwlsggd4wyadclw06sj2akd04cy1v8j41g8wqp2j0x8j1jq7q";source="1i1cavfmgd8kiz0mr1sh75p7rhnrma0gg0b6xypzkxzkgwp1kb8c";};
+bibtexu-66186={doc="19bp8wn0ssz7gczxp0imbpgi1zwz9x3ya67f072rjzg2zmfpphqg";};
+bibtools-67386={run="0s0mz84w97854gwsz843gvlqlgk4bs5bpd195m8xv8g9qljpwfvc";source="0s69lggqnppqlyfc5r2k9jix7zpjy0nvljjimqhks250rjbgg0hi";};
 bibtopic-15878={run="0rzz1c1c6vgjm2r0gv65rwvbcv0asc5049agv75yyvqihvn51018";doc="0hzy6353n1rzirfdjd8dgjhnp496i14b0z0n2x7gnisf3qksr0wx";source="0abpdz3ir7l9dvc6vy5zi9ay103ga7i92vg3z69agd758xnz0v3y";};
 bibtopicprefix-15878={run="0vy9cah5mmr1vf4sm16212h36wz4623s07cagjqnmyprgm44sz66";doc="070shh1cg3hdk097v9jr37f06q0qaaxji3vjdv8v24a1rg3rrpdr";source="1v35hawmsgm12sv80wq2ld0rzz5l4shvky44l8wkxxh7i7vy43sx";};
 bibunits-15878={run="0znv09kqrwvmsjsw3lx9d3mp6fm8444zbn317q5yn5hzg2dyj61f";doc="1zgj4jpl0fpmsrcp3h4qlkilflmy8zqhjamghidwzkkg1i9jsfz1";source="04lswyalfivh01hp1wj3fq1q8960dmsvnbi8k856v3dhz0pv0whz";};
-bidi-65572={run="1gn7azhapkljkl1dfrb4rdb6r4fc6257gzzzmp6cn6j3h6qgzag4";doc="08lcqksfjy5kc4g7g2a0nj64iw1zh83ng506zdd723szs4nhfy49";source="01c48nhbhn455a50xgb7ccdfwpismlijsnw3qk079f9wcyyhsrd6";};
+bidi-67798={run="0iisr0ac3l2hrfja1vmihrf08fnly01dcfg0665x7yfck54qyjxq";doc="11x4y6rkk5g9ah7gmbwhppwk7i6q3j7wydjvbhfdz27wz4azcv1z";source="0nhkwk2r4fj5x94w9fq5db9nh051hxzb1j88q2bfhlf9zfwgiirj";};
 bidi-atbegshi-62009={run="0wpwp2fr233f0pac6llb5gmhz2ca41yjcmkqdil6qhpxscfpqizg";doc="1nzg4cgdhjjsalwml50xl7ac25w0qfd5q18cs8viicj7bbjp13wr";};
 bidicontour-34631={run="1yj7vl5z4xh8i420y1ycz21rw0yy83z0v9nlvi8k3ph2qis7lp8m";doc="085xfi5w350vbp4vnq8kgbilnz3jxwf4g0incvziy5hxh4isqirz";};
 bidihl-37795={run="09wrzqlldxy3lcxp21rdqi9bnjzza9wvdgssqynynjdmfggahd34";doc="1k67d2zd16ash4krnkwvmwx4wl668r0pdg720vr9xq6q3b139y9d";};
@@ -468,12 +478,12 @@ binarytree-41777={run="04q8h54dl0fmczrv6fqvvisim1mz9lnvkdmij6b3jcn60z722k84";doc
 binomexp-15878={run="1mx2g0s4y5y9abmj2b7smz0xc2nzyvnx4x3f4h5v3w1x1kp5y0hz";doc="1yi68q48p39v20rzny1603j20n8k6ddpjqi773955wmh1p4mqsb7";source="00rmdk466a4kc1492b947q1f97d7cwd2svvc9wr6w1agzz8w890r";};
 biochemistry-colors-54512={run="0d4bbm1p3j6q28ckkl7ilkywrjx6iqvmx0qb27rpldw3jabf1lp4";doc="10pa8jwpxr37hs0wcywzsq14x1jgjx1cqg94lpghi505mlrikcg1";};
 biocon-15878={run="0g6r8rh12pbnbhddcv6sz9h8wnv31q6jqs2xbj5fjj7vcb46z694";doc="15wd9arkdxsh8aral3zgl83627yl4f0wdx2r8b6xb5ivvrbwaslj";};
-biolett-bst-66119={run="1ap5arz0s65bqqfllzwxisp3wa327kgivw1jh1gkc4wljq7v4jq1";doc="03hj647j6b7y43djqvb28rkjixpr0y7i02420piskp3cg90hn5dj";};
+biolett-bst-66115={run="1ap5arz0s65bqqfllzwxisp3wa327kgivw1jh1gkc4wljq7v4jq1";doc="03hj647j6b7y43djqvb28rkjixpr0y7i02420piskp3cg90hn5dj";};
 bitelist-25779={run="1vbz2c27jjc94i23s1dzl9j0zf0n2935sgxgc5hq3bpaz1qxvm7h";doc="19p9f9bzn60nf5163rdlw166zpk7qlfwhnc51bpkppb0w4rni2ai";source="0r3lccpampra8dardrr7sb0swbx72aasaras43q4nx4jv6z2561k";};
-bithesis-66369={run="1q5dp90ggc54m834snv1yq9l2b6zl68yzfflgy2c626nc98n551c";doc="1kgfzpmabri0i0dahgccjxqvwpalhx50s97fz3bbymp07za6xhnq";source="100ms26z98rr5mqcs4n660nl8mw42cfv3avzy9lyyp3jb06b8n36";};
+bithesis-68634={run="1s0hd2af4ab6y8bvkxjhiagj8d52z9knamrj71smfw8b2x3419rb";doc="19zjrhqa8wn6vicaa8yrr4pf4fblacjn69rw4r9ia9r7v7fbvxp3";source="0w74w2g8ccvbsj1apv86aa3fr7ald4vkj9k8gvqdc76yzdfj1vvv";};
 bitpattern-39073={run="1j01vh1jy41714k3hms4nkk8j5c5d4nizgrm5syi20n8pcn3l9pi";doc="0a9120z9rsq8pqi33iv7f4j79gimjgxfqf5jhnrnmz0hgqdpl2mi";source="16bjmxm11kh0ww6ymk82qs947zgavm100nsfnjl60hxwjl3yknzn";};
 bitset-53837={run="0ynyw8fyb5cidlz00f42cf21gakm2ir9ilddaaz12s7qq99lhj65";doc="135dcx0b51br6lf9dxd66jq2xa21bpb1mi4y4kk5z6ngsd1imdag";source="0yds3rhgq52sxvwn5kc32iizapbs5g21cw6avbppiip0s5x0b538";};
-bitter-64541={run="0x3xnz8fvhwhixabr05rmxw8j0l03v2j5ylj7jq4gni519n3g60q";doc="00wakrad6b1r63m7z7css70fnxdz3wbzmi5bkpx59jgs3zk7zq31";};
+bitter-67598={run="0x3xnz8fvhwhixabr05rmxw8j0l03v2j5ylj7jq4gni519n3g60q";doc="1x8zzl2890c44jqk69ncsgj7xhchysbwkf66nnw0dsk2qfahc6xx";};
 bizcard-15878={run="0s6c3s99hid9pkilskd8ssc4hv5d5yg5lvw6kqz9szyii4rb6a18";doc="0ic6c43nng4lxsznkpj7w86ampdzjrqqcsdsm1f758rfds7wbnf3";source="0ywip83r43a721yfzrfnkfms0saly4p2ihagyp6259h2kji3vdjs";};
 bjfuthesis-59809={run="1gmd1fjwl49h98mh1bqhlxw63bcpy3p6ri33642p49aypj9iyk80";doc="056iczn516aqi3n04qn4q86w06q5xb3cz07sdb9lr4yp35gxmfzh";};
 blacklettert1-15878={run="1gvdw5gwjzgxa332ih2rp4whdcx1rdn5mig5q9cyiy28zvm1zrp2";doc="1m6qp3bkwl77khvanw498bfrydmyvf1qx5a9sp66x7l7xgjnndlc";source="1c38hmva1ffzani4mjg7zad0mr6lphncspn57m55n28hwfq7x8i5";};
@@ -482,15 +492,15 @@ blkarray-36406={run="096mlldfyi6hxsnp3flkr1gfqhvhxm2vzk81zw6dl64xihkvl6aa";doc="
 blochsphere-38388={run="0lifkhwl8rigg1w2k915yv1r9xylsj0qnj48cx58likwanvl8s2k";doc="0dbh11c3fjrdypam15gjlqwf3n9wxwhjqdd1h01f2f8yams42xfl";source="17bkqf64qvjhbids04bm3qhghqrrwf4m2bsl3gjxxc4h6sfih259";};
 block-17209={run="146ava8k2z6mlr2aq5vydax1i2sy6spn4avshcblgr5ph49iirp4";doc="1nwb1z6df3y0anzrl6b45fs2k069i42bcmx0i4p9z9fsbgqqfw1j";};
 blockdraw_mp-15878={run="11977c2f4100xfbrs5vcwz3vbijdvybq80zmfansdmxc0w3w6sq6";doc="1qb23f08wxmw3miys4sn89h48imzcqz720xfs3ihnbk2v75q3rd0";};
-blopentype-65441={run="119n3y7zq8fhyxjkigm84h0p4v5b3iy0bifls3vxac2cs8qh9syz";doc="09r91y7pqn1lvhfa7kjh7pgvdk7nv8zz2r53c0imhxffj1jgc7v5";};
+blopentype-69080={run="1c87lxkmscs3v89s2pfy4r0cymgcbrdjg0vyhhcjh2ip29dv4kj3";doc="0v0yijfjyf1l2lxpmkg4w1ij7gj0mdmxd51y33qnwgh02g18yrjm";};
 bloques-22490={run="1gr3521mxmabcwvkqxn7f0wcpcmzy5jdpypyafyklmnhc2ij6zqj";doc="1jmvan6ja2zf01lm0dmh3dg4rf1cagfniqjfrmzpxc062khf97w3";};
-blowup-64466={run="13j0ry1988igkxkzyvqg8cwskqzh7mjw5a4vgfqib2mczs334k5s";doc="0wcv1zlmyzh5yj8gsdm5mi6j5dv1zl0zk0v0v6cvwy3kzi32ki10";source="118i136lm79ivizwyjqikjf5053lic3cpqqpyjsmflyz6bph40aw";};
+blowup-67640={run="0ijgwims5gklp37j8zlc0vdr6y2l0gf3nv2jnjhbbc49yv4n8gim";doc="01an3fbg94bg3wspadjil9npbx108g5x7kg8ga7c1nza0wygsdd9";source="1b53khyhzjy9mww925crpjmfgk9cjsmcz5hxjpl8wghrc4qqahjl";};
 blox-57949={run="0p3ci3xf1vndbdf147r9l1s68x72g7r2np6znizj3qqxd22h3wxx";doc="0hskpi2wnlrrqmv0s8i4g4bh03ka18w3czvnjjvhvmf7im9wq2ha";source="06zimj2liix2y0f6a35kb8q9d9asp48c58mhc3pssa185bcc7bv4";};
-bmstu-65896={run="1x89sc4grkk3b9mhi4y1gkxm9pcbhg54j8v11mq2bx4nyl0bgrll";doc="00950rlqysn7faapvg9z3knb61f8l5hyy9kjxisbs80z99mxh5rn";};
+bmstu-65897={run="1x89sc4grkk3b9mhi4y1gkxm9pcbhg54j8v11mq2bx4nyl0bgrll";doc="00950rlqysn7faapvg9z3knb61f8l5hyy9kjxisbs80z99mxh5rn";};
 bmstu-iu8-61937={run="0xvxli6na2nc03qwn4x68sq4jdr2x830yvfb507j1990pni1y01v";doc="0kimc29vl79ib5xmrlb1ipfslq2y4i3hnabxcaisrb54z0y3rp1p";};
 bnumexpr-59244={run="06achk9z1waxr6ndcfplnvhvd7k4z1l9mw9plh92qpj1dn48ncbj";doc="1abhn0hyps7azg4fipnyxihhzmk5fdnklb4gxxsjvnnr1grka38y";source="0arhv81y8993498qkrnlnsa8fiw88s389q6ybvndrmf85js5nwlb";};
-bodegraph-61719={run="022m4w5rpn7n9fndddjjlyfxrwgirw5x6k7vl40nnyc8swkjwb62";doc="0v79v2ijgx7qs3xbsp6h1nw3rn9rry5j0qkk07bvyz5aqnzx290q";};
-bodeplot-65074={run="0yhhxb044pykrpfni8zabgb78zqcswfv48x781ywg2qryi7m6x71";doc="1xsfv7jm1v5sr9ajy3lkx0ijyf4swm2975srhyn6g6z2961a51zj";source="04p9scxrlk15rfrv0l7v766pzrzm83arsymnpvyj417bn1fm4k2m";};
+bodegraph-68785={run="11y62cwwjkxpr7xnpc20aw37lwcs83177w2gnxz7f3lr8192b28z";doc="1k428jlknm973v64wj1ljw470q3939kxns7xkxcfn5r3hjnqhmry";};
+bodeplot-69397={run="1s7jccfsd86db9zfrbqi7890jfsznsa0fyj2ks0s99d8hbbzp2pz";doc="193cah3bgy8blxgjaa6gvg62yyv4ccf0zwbiway96xk617c4r9cf";source="1bg8svs2ylxxdd4if9z09lvpwypvp3s8mr8568spdq8k2vcg6lag";};
 bohr-62977={run="1fbrgfp1xnxa5cf5yqk9735wp0qwkjkpf8sv8gdjg6a06mpixn6m";doc="1jbmck8ld3rg0nw5rs9lbnr0i34gi2sxncri2fmcdpl8pp3xnw55";};
 boisik-15878={run="0xqr3sgmzklqsvd26f2800ifs674lf0a4kgr44na2l0lf5msww2c";doc="0l0hi4n5cfm1zdkr68c6ks3gxkda5bgwlnf62y7x96q5jkscdyxg";};
 boites-32235={run="1176j9ikh36s0cgvsflayik1xp0zycbp8m9hg0c7jmzkm5haqw41";doc="0visqy0qg18sa4mxszdl601yy0ilfgglv872dhzy8bnqqs8x7zzp";source="1zirqghkw8kk8fa3xahd27dh60phxg3blp98iavh6bdhj0rm7iar";};
@@ -505,7 +515,7 @@ bookest-15878={run="1n6n322vb157fz11djcnfz07ykarin7n8mdr7v04wlsj2gfvv5hi";doc="1
 bookhands-46480={run="08nsfgwhlyv9whaipx74hr4w6dhpdlvwcd6kxzcznxc66mlrnpk5";doc="1z0rir98r4fm8vhx26hw7l22p2z7swj5b2i3jdfy3c6cj0pi4g0g";source="17clfn8g2f48v944jlvwl3jsz9ixkw7x1xjxqkpaqnng0wsm6fyj";};
 booklet-15878={run="093kp4ryfp8q1hg8ddmvaxxsw75wplgz4rrmmwmzcj3hcgyynr1f";doc="0cd1mvkv29r2aqdy4bs02m3ck90rdv0nz01cq2x5xvqk0i8j5dhx";source="1c67lj35yh0w9bfgiba9ank6wk9zqq3l3vvgwn8f3v6kygyqha63";};
 bookman-61719={run="12wkjwpzxn1a1k3bb41gpnky1jjsh7gzj4xahsjd087fpmrsj9p9";};
-bookmark-56885={run="1vari4mh0ijss50sa103ppz9a7mhbn72gl7sfgs6y9fm0rw2b457";doc="1habxdliv4vw5xsm3ki8m43fbqxkvpj4wfm2j7nkg01nsl8q2zm4";source="0ygfyjpz90vpavg4ifalbnw2fl06j6v93906ragk48g711dzhyvp";};
+bookmark-69084={run="0wax84d0wyy1z4a78j62nnmkgn7f9ww6703qmnhyj9x9206dlh31";doc="0adm4hcf92xqxsb4cl01mnf5f6mvpblr3b8phxaz02xwxx3203vk";source="1w48rx66n77l7fpqpqcn8337qylp09v2pnxphhnl36sws5yw6nqq";};
 bookshelf-55475={run="10sjmi94cc4ix3a2c0qpavs1sc0mqfqfbbw4qygf9w1wdivrijfz";doc="0j0lqi7bjlivivvrvswlw89vav6fx8wg95bn18amlwy5l8d7kyiw";source="0jx8dfl4j4k2av1syngad6narkdjksqcr71q92h3090rf58njgj3";};
 booktabs-53402={run="04bfbj0v47hiww6z8xlzphm2yh4vidf9gcp3rvh81j66s7wybffj";doc="1hp3fbvg2v2hk1bns9b28hdjb2bcvn5d83apkr503ahln6rigf8a";source="0p0hym0xn4zcmq8q5v93z1zi8n7hxz9kg58fq53y96hf6isigdb5";};
 booktabs-de-21907={doc="1ld7zdr88xjhnnl2x734rxr7h0fz84awapmv50p1kzn6fczrwyam";};
@@ -521,12 +531,12 @@ bpchem-45120={run="13l29qi6w99d47cv0ky9hsm6356vk7n88xkxjx5v5pb6vrg8zblw";doc="0n
 bpolynomial-15878={run="16rzvfjwc5lrr6fvxjwp383ayi4pwhqk4x6k9blqzn0c0cakqmvc";doc="08d7was7ly4wgy04np72f9pn4kz20hgfsprvzlpyp2rfxvixphfc";};
 br-lex-44939={run="0pdhzadajg5vx5da6ildn9k2nfvf1ks4pxjgm32ajpcpfxbjpwk3";doc="001822zh0f18zvf6b51qdh4ykkv6ywqa5pm8q2vsmjv8rayjralg";};
 bracketkey-17129={run="03mq7rfgkgv06m25hkvlhaw1mqw3xr0ghfjj2jb4nlpkwn6945nq";doc="0kr9il6ac79kvqdds4rn4g98qxy7nvas62364sv75zv0hb6wl0kw";};
-braids-64817={run="10wypiq06z07zdiqrkw2sa87605w794a1zs9fmw00k4r45iqzg81";doc="158wjhqn66nqi33a7zswifbjs1hdnqbhfmr46df9cd269gwpjnw0";source="183zalhp3rch5zd2akvbvx32iyrq0147z3xpryy1sky939p8a8pi";};
+braids-69398={run="0q4zrqx1ynlv8br0my5cm3j61wrizzq4s2wal010yx0lxlzm1gjg";doc="1yzazlfb6f5xr0s21yavcgw48x011rq1783n1cnhqcl9y7c2qirw";source="0f7a18z19z09jkrxcqr30rvnp7179fcsmc5n8fyp77y0j48kf06q";};
 braille-20655={run="0cy4bxpg284blfpmpgh1v9vyh5bczdyz9zdsc1almc51nv6c6zgf";doc="1ygyzvyz4am70n57hs8xhrkdd8hpn2mvg7hg3rdr5b6dvis2ibj7";};
 braket-17127={run="1ml5xz6pyj66kc2jby0bg02m79vfv9z3r91da808n1zb22mmnjkf";doc="09vqvl0v1qkrhv65bh9ym1zm254iigl21d4c98df8ayvffjf6bx8";};
-brandeis-dissertation-61215={run="1bfb1w5c35396axpnxh91h8zk3n4a4618b5knn9h7a9wqvx4rgwc";doc="063bxb714gl0jnzcmidiyq4jb8c09c716rfl8ng9l21n1nx12ms5";source="0zwhl4nh4a37bmxs61i8kkq4127lb20x1500mx4w0ihgby239z3w";};
+brandeis-dissertation-67935={run="0wz3k1yyxi9qdfqkj7h0bag1d1dj2yg63h0p30ydaxid9qbg4viy";doc="1vqzl7fkphkk6rqpg2rjdmd2a88x0dc96ff7hqrmcr085x7vyy7b";source="1rw5qxzc9ksy4v1z8r0xh5sa0s63l1dvr5lh83vjs6qgw7sc2yz4";};
 brandeis-problemset-50991={run="155al8iph3949h9859w32q6v885f0p6wd18m53rkliqvzc6d9f71";doc="168ywrm0cnk1l5fmqzpk9mxf4732mjb488gnqiz128dbsshh37yr";};
-brandeis-thesis-59832={run="0c4hd638rqqhjgnw33l4myxzc02lxd1ki2dfsldfklfhhmk57xx3";doc="0g4b92mmadzqw7kcyf80jl9bashqnx9j2sjq2n19gq7gaksjzc53";source="0k14yxds0jlmkrl3xdw8mc4240rgv605ahg35bqfvaq6nws5q0xr";};
+brandeis-thesis-68092={run="0ng8xi2cn146fzafk4p8n651v4n7pqjhmq1y3dl52xphbh03syrc";doc="19acaxmg5r46kjk54z6gm59rf3pcbc7wlgqr7j5rbbp390c7kchj";source="0j85pasvrblbvsi9npnfmx9mc6gnxj9128d3zc6iym9fx3vfcqra";};
 breakcites-21014={run="0f3zhwrk0wapckz83304anlp2ssii7nvzjdakbxfdj51cd6schpg";doc="1f8x16qy5v27asch2jhbgh080vmv7mza4z5w63h31gdglbkwdp11";};
 breakurl-29901={run="0a3np519c1knm8i60z1d6rmmzdhfl340gkf6c4m1yss68didq0cn";doc="0dk4hgl3411q0k9dz9f9p5f7r5a59rpjcicz9h7ynpc4g3nhn019";source="1hx73iw3n5wgvaz2niqargiw36p068pjl8x65cajn081831syzfc";};
 bredzenie-44371={run="1mcl52mlbbw0yxbs53x9a7kh3xlaka9c7nszfajlhpvj4s3jr1pd";doc="1zgmhhyqf2bwlf0mi509nrnzqqa5g4qxr3zj46rsa8jz0giaig44";};
@@ -534,41 +544,43 @@ breqn-60881={run="0dm9r7zjdwcdv8hq0l08k49lq4pvvf78hrlib16rk9s03rz2v4g6";doc="131
 bropd-35383={run="0l7ifzaqvqhk2dr31757ias4w4vzpdz15kma0bj2fm7k4sjx7d5y";doc="080g65q0v34rbfl67mpvqfcwfvr5znwv0rys8m3fys1s9d4yyryw";source="1kk38an662s7blxrnk4nhfvr49aymanj3qcm288ca6kfabg84w8a";};
 brushscr-28363={run="04vpb4yvbazm9lb7k2rbv4wr372k3l6brx37fx5283fpzj3wvhxv";doc="0dv19f5hfzwnw6fd32glqc71rbjwi1y66p5fl1r17pxsj16nlyc4";};
 bubblesort-56070={run="1qs3y6vs5z5m988cj6dl9n74m0j5d4hsmnrz6xfbpw2cs9g86jj5";doc="0pcbzg1p1wpw00h7h1va4j6iivz1ky31k8aq1jw4z9s5rwz64p9h";source="11g2brc46977w61sk0q9j2wmn5q9x9s3mv6fcgj8ywql3g4r85pv";};
-buctthesis-64004={run="1layhgfbfx50sbmpw9rkszzlqha3bq90d3i2dqc2nyfr9ir77qx5";doc="1ddsvbw0cwqlyl4vv65q7bk5pjg97wm2hksb8yn14mb3wyag0hzr";source="1y828ja9sp7vbfr699xngnrikh4dd9ps16wsfbncsrzrqjn1n859";};
+buctthesis-67818={run="1z7svjpf73ziy7iyd03x4g17k4y8cbqqdzi2ar0rpg48n2sxpmfa";doc="0lqvvf1bma1r5n8pawqqjb78jjgknf19j0810dmxzzzrl7mvxscw";source="1wspjl3bjpv3dgxakrb78w1kmb8i4hivq3wj2mkrwh84ahzj4hby";};
 bullcntr-15878={run="0djfn002j12nb84svd414zng3rnjp79ssrdhfb6j62mx0p9j2hk7";doc="0c88in90fy65pd9shbf09bl5dm6yd3z7g535ni5js251bqa9wijh";source="00pdz4i2pkn1fbihaz16vbhsnwaybpcavvmndg7nj47jlcfplhfq";};
 bundledoc-64620={run="06haydgwqfhzpwir9qbcc72y0x1xl0jhvyfh4gx37cpfvxz514qq";doc="1yqsh1kz5hm6rfh4vrl658y50ncypwb1mdw2p4qfffvp0w5yk2kq";};
 burmese-25185={run="109492p6k58bdgs4y0nb1hfnk63pdpf0x4b7az8frfff4wg2jvb1";doc="1lwgifmixkyxscy6ichwmc8lv26dwmcvy2nm68z2wq0cz7cihjli";source="1iwnsjnacafq1w3n6asj93n7nfxxyslf69jj0rfrl05fai0iq458";};
 businesscard-qrcode-61719={run="0xv56yqqj8y4270955srbiw7qy8bm9r3ih0zazlkrxnrxyh82jlk";doc="0nfvak5730q4ci88dyqln97ljhjbwxn3gk34rq2b5rk5cy2inabi";};
 bussproofs-54080={run="0d783i6srwanhm806hk0y5igbw99rf5x9anl7ib29pijrqvg8kjx";doc="10mn4g6dap1rksl5jnsp8pv3n0hhfrb9imldjyrmiika2d0prfp9";};
 bussproofs-extra-51299={run="0ndqiz033c8dxkdknf7hy1d42y0g2hgdb091wxrvpla7ryawcb8v";doc="1bg3sh0r7kqkb0hljc5m3x9gn3wkfyjr9b0d8myjwwyf4g9hzi0d";source="0p1imkwz82zwzp0p49a2vj7gdywv7mxr3b6nbmvkpz1n2qxs2hsg";};
-bxbase-66119={run="1ijrq63y54ahv7r5f75ssx2xjb2mfbgxk9pq53sfjk8cww1m9k0l";doc="0b6k87rxc8sxdqgbr61qmkrfdrzllc54svbm5qdxvknimgsbaiv7";};
+bxbase-66115={run="1ijrq63y54ahv7r5f75ssx2xjb2mfbgxk9pq53sfjk8cww1m9k0l";doc="0b6k87rxc8sxdqgbr61qmkrfdrzllc54svbm5qdxvknimgsbaiv7";};
 bxcalc-56431={run="1lgk3zfraip1jx7hpkkxwzril5sqc1hn00km3ybicsvi53z1q19f";doc="09x2b2cdxgf7lil1vlw4bmmjn2kl84cgxd75w2js2y1znsfgsivz";};
-bxcjkjatype-54080={run="1b2srzs5pwaind8pjsghkbq6hwf42ipx4bmcim2zbfxmzyb1ga44";doc="163farvip06haph6dhwf123dk12rnls1mgvdsyvvszgyy9m96bgp";};
+bxcjkjatype-67705={run="1awhcn56jiwym35gxlhw4m32y4va9qh1skjjhk455plfmbydk71p";doc="1d9v4al9hyimw0bbndd7d8jjc8pngj5xrds1a8j7mgcjhkyyjin7";};
 bxdpx-beamer-41813={run="05zpcwq6syy612w8jw10fqym4w4b4qxrd2i4n4hqwxv2sqgsw4n2";doc="0g0ld901kdq3558ngzy6mf2f2vgjjcngiig2pbjb8xakcq933jj6";};
 bxdvidriver-43219={run="06rw5wwp5ky30s31f23gl4hpyzakn5b3vvgna8iw2iyy6rw5cl7a";doc="1qwxy88fnfsx9na6c8r56n6zhs13d8apkjq7hhydsfs7qy54q4vn";};
 bxeepic-30559={run="18by54j2rg04n19whsb2zjkksrdh6f6i54fq257i2mvcp0qpxwr5";doc="0117dzkqs1sy8si4dbal9p5p6csskcby2swmf2911c0vbpdl51zm";};
 bxenclose-40213={run="1mii9n7x232y5398zl9xysg81hflamrj3dflrngs94mm4akmcv2d";doc="19nmr2ripjifpjw8xrr5dhll392llqbfqjd2vj2zdgkvqj4bar4j";};
-bxghost-66158={run="1dydfivb39ly87sprrqc42s5rmwgpqx10chmxa7p3x3r25dmrnzf";doc="1gi4jj5xrs4wp194r4w8ycjvk3m18a499lckzpqgmb9r2n5ab8a8";};
+bxghost-66147={run="1dydfivb39ly87sprrqc42s5rmwgpqx10chmxa7p3x3r25dmrnzf";doc="1gi4jj5xrs4wp194r4w8ycjvk3m18a499lckzpqgmb9r2n5ab8a8";};
 bxjaholiday-60636={run="0qxc2s07rqnyi0a8a050h2qri4kaqfcwc26c2dz0x8ypg18s6nhq";doc="09a5q2cra7by0q4zxl9nfa672ryz0cdv3xkw730cq3qyyxgc06ls";};
-bxjalipsum-66033={run="15wzkx4x5xdq8wd24bwp61blrnibhc41n1jm7w4iax8vh8zywspc";doc="04njk5kvn1igjwnm85mc4hxg3004i88wzk91fni3f9pd069pcd5m";};
+bxjalipsum-67620={run="11gg3r67rs7j3f4by1irz3sfnwlz88i8w3kzf0bdxb52sfrh57hr";doc="0wxw7dlm8rwgz321cdfpx14vcx3hf2skg61ngr5bbmcmc389apk3";};
 bxjaprnind-59641={run="16rdpkqlsx301zvrr2nyykpjqf0wj1xhqqk72a5jajyjpcqsvki4";doc="1x3wh73nga2l8f7l24pyabpz0b8g2k6hkszwl5dijrppicl875ym";};
 bxjatoucs-52509={run="19n1wr7i1mfrabmrsgnmvk5wgdqhbc9lfpz3s5qhnsqsz69rzi00";doc="0icd5zj0cabkvwjgncsjmqwx79d2rqsm7ddp54ahczfl6mfg7fwj";};
-bxjscls-63011={run="06nfxdnwbhq8n4axw4srpsj58vxcjpbwszfcb0azp9gkyzxv1kq7";doc="1ziqysp36jlbiz7460qgr2pmgwr4q7agpkzpq894v43bd187xciv";source="16vw71b1qnxza4abcdx7b3xvv9h1gh8gnzmckjmhrvxwx0gbd8d0";};
+bxjscls-67657={run="1gwrylkxz9h0szcy4jvsmyyix6640ncqiflsm9z82nxvm0zglasv";doc="1qy0as1kff7vlwq2vq9zl3sb8wy590ryfh4ax040d52wvz7x3619";source="0gpkk2h4ak6ivdjfjdjq52qj6vn5n49c292i3icx43r0gifhwns0";};
 bxnewfont-44173={run="0mc8akfajlyl6vfh620h8rcyfv02gdg4ycqx18lhb9vfivi3j4py";doc="18na6f8nqlagfszk9miy5bbx2bylgspck3pgglbkqb9cgkdf4qq7";};
 bxorigcapt-64072={run="12bc2pv884wi9z97ih1sm5r8x67vrlqhd19f6m1naz9rs7jcdxxv";doc="13gp6632pn7kvl12rpbz99n5imcsnwf43xx4iq9wq6xj4qnlf7cw";};
 bxpapersize-63174={run="01gv55dv9676m7rkfrmz31aql5xb69drl1wvwh7k1s3xrywik35j";doc="1xsg1nvr7i1smrg94110pz4my0vvi1imqkhksc9daki52iv1jyx2";};
 bxpdfver-63185={run="1hhl848f4m77abkwa3wz7zm3slnp2k9qbmaj2sfdr0hvyx05jwpl";doc="16919nxavpplbzwxl10rsbhhqcx7pdydcmf1v5z7hmkmw29a1d4v";};
 bxtexlogo-63231={run="1g8iy5a2cnfsxggzl49vbjw2fzk16jcy17vx10qp8qdzdzw29gs3";doc="19zq1rssw0sin3gz6a689g2khfc6rxhyckqxg0k0kj3gr32058kd";};
-bxwareki-51286={run="0b0n3yhq6y4dq13nwm40zyw6hn1jz5r3bawsrnaw691amvfb2blh";doc="0ay0rsjnvpi1g7iyn6dvwc4awfswd48n379qqys5xhzd19bncs0j";};
+bxwareki-67594={run="1ax779x1zf3b68a46pa3d65wdna3c3vhbz0r8kj8kavak044p1qv";doc="09q919sqr675q3iklh3yid7z6hn0d6pvk2a2zchi8rd3xdqpv06y";};
 byo-twemojis-58917={run="1c43vgcnkdvag1wdhivl49qm3c9pf29w89xgy0m02jrxryrjy6i5";doc="0bva1q3zxzkkrz2cc2zrin955p4r251hlb0w0gyfm156dss0iqrb";source="1msy8ja579nysqd0rmbw1xsh6hksm44ddi5q3x0i5p68k2pk1i8x";};
 byrne-61943={run="1bzlyhysyiwfxgjzdsz0ax8mkdvf3ln9fnwb33px92p167s1mdx1";doc="1wn4gqvaym5gjdnxa1pjbvnk77xzk6dzvpjil59nagibp0ap48pg";};
-bytefield-60265={run="1cplzskpa51fsd98zcs8wsvxbsmq6nvn9xgnkjwa4zcy363m7ifz";doc="0y2qf6yprzw4xbyxhl7gafxij1kql4nk8hkn67gmx2si8cdjyp8s";source="0p1afxnc8pcfvsp2ajfbnzbdjji0dwvkapwllfbaisabbz5r223x";};
+bytefield-68366={run="0ygrxp4il760rrm6zakij3h6v6a61bgwjjbsy2nd816yv5a325ga";doc="0gdz5scdzh64p4pbw8f2vmwvs7hl012d9m3k492718shcfzs1y79";source="034azk9zmy6zpwi7a5jchwnigg2vzcbh998a1izgb79fdlw5hpyb";};
 c-pascal-18337={run="1gbijcvhkfc9jhdjs07l1mz4p8lchrhnrl1yj2gmzkskp4v2pkbw";doc="17ddnb3k2q279xrrsy3y5n8qyk7r8hlrw8vd446a11qiwypjvxy7";};
 c90-60830={run="0h4y0ydp0vx0hk5s46lj4j0vji6yslc0gn02rmpbpgs6ic34cm50";doc="0bwbqi9kg39rm63vzngrswsg7vnibrfxlz8fhsqb947j20mrj6l5";source="1pif2g8ihgxf3qznhhc52gi9bih5ai8a986c6l1zxlmgrh678wxh";};
-cabin-65358={run="0wbbrp46i4z22ypagn5j5pa9l86ksblsnsq7nd310897xvx8rv64";doc="16r58722s0idkig54nd75cxajx0zzyni6yzl2zgf0r47vxbwbl78";};
+cabin-68373={run="0wlhsfhi6f5wvnvi0k0h9j8xiqy5dp7fxks2ipw2ap9yv3r34pfr";doc="0h57p06mh7drx3klgkgj6w6k7x4kc8h2yi0sya1ygi94kwp5x1lr";};
 cachepic-26313={run="1j93lljbpwca363sjk5qmljrfq4f671kg4qrnfyv9zqcxcpyfmmg";doc="00j7j75zq3wa6z1liy0y6wzxjv96sq5r4dh7kp9f9icmxzs0x8xy";};
+cahierprof-68148={run="15cimc5inid5zyb221k75dc42gdkvzdvxzh2n6wdw0gj12m9y2di";doc="0qd8mlngn6p5pzwkhkfhk8p26d9dgac2mn2har0pwvkrppg7vsj0";};
 caladea-64549={run="1xvpf4ly47vn8askincn7wl8k5skhn5ir2wj1nba6mgf84z106v9";doc="13j961b3q42vpa7xlyzlsrl6f7ndnlw1m1zqi39j5qsb7nhpy7cw";};
 calcage-27725={run="18rp330i29cw8pkfv4gzlr4lz5rlcvc4k0l8mvsvs0xa767fd3h3";doc="01xp6i814bnzgbcghdpyzb9f0zx3fwmqd3p97rk4qlf3g378l8y8";source="05lcg7mix6z6cw85bpzcqgxlgb1vzb3irhljlfcvq08lrdfjy71x";};
+calcfrac-68684={run="1rvsgszxg0dj2j3p58m26rqwl2qfinkvfiw54nq6zzzqxqqi03l0";doc="0r4in3rrzhs001bgck0y0h484ziqs90026fmyxnnfv9dhcxdp11c";};
 calctab-15878={run="0rs028w20fcg5jmmnhwhvasb701j763pk4bwv09lj3g78769k25l";doc="07fxrnpnzn23lb3lrlvil6a8624vcvam1lq6sf8nrgs52fzl2grh";};
 calculation-35973={run="0v7f5qx319zrwhy85lvk354a7x2vcainiq90y1jkm5cscs23xqjx";doc="1bk9yqx607vp65ifdawaldcsxm065hmyrgzwyy90wkn4kmyq1snq";source="1y5a2n2asfhwm8jylfg5zm5dy4v5s8gjl5ndizwk1ywwl0am2dxx";};
 calculator-64424={run="0ha62j2mdg6f0h9rc03xaniq3kgfccihwjh8lbf6r6v609kqncwd";doc="0ilnsnlzxh8zd51h7lj0rr6c4fz9yb8dff87yjnm73ndkvia0ky7";source="1k5vbywm427cx1xvvh2fv2g79nikspwrp7sk9qcvaf69g8acs93h";};
@@ -577,21 +589,21 @@ calligra-type1-24302={run="0liaz2jv1ad3xvmaxdp3vd2b3wvyg0wm1jlrrhxljzazsxzs5d3p"
 callouts-44899={run="19khsdal0siv0vvj56bxgkrj7bk1yyd3lw8iz6zijchp0by6gbbr";doc="18zy2yzjlgn9g2wzlc9i52x8g3dv32hvbybjkm9fmklsgnw8fang";};
 calrsfs-17125={run="12b13dhwdxr5dc37l7imlhn4sparyrnz0d3vagjxlsiinm7hakf9";doc="1295qb7s41y2abs2ip87ipcvq15pzza0bwvj6pwpwxkxq5yrr83q";};
 cals-43003={run="03100nskddcxi7z48iwm7vnwlrdkxj7xh8wgbb8bx3vfcrz731jr";doc="08y10p0i7y0jndknkwrwdws6ja78sz1qf8vxvhhhcpivxc7a5gl5";source="19sh899dbk4z728h9v72xrf54cij8jhnb4k4a035xfb7ijc0jcrq";};
-calxxxx-yyyy-65426={run="143kpv77pwg9pib467zn2716fg0nkpsg0pfd6s30012209pinbrj";doc="1dm56748fx3xff62pj8vv8lk47cqp5hjh2q14x2imypikhvb89rx";};
+calxxxx-yyyy-69266={run="0hv01h4j0jc34z42x0j13bd80vkvaqdyp59jds1jf0yv2mshiwpy";doc="037nh1j9q4gspazcmlagqmxjfi45xbmh0pifbpmv9iflyvnzj6hp";};
 cancel-32508={run="18bkqkdf888nd6j187kd39g0vgfhfh118bky8r5wwzy2aq843061";doc="1x6dhr2xyx66i8qwk98li3vp40rlalfrf5lk8ah4gq03ndhmygfk";};
 canoniclayout-64889={run="0x9r0xjdv3vfbm68w0cydnjgfiaydlyg71cil2l3rf1p4awk1kkp";doc="03vn4k8yp4l195k2716a110b8lad3zympsphp3cp8xx0cbfb86ab";source="134arh3nmd39zr1b0ybmz3y0jfyvwzwcrzd59iik6bzbp601nk8k";};
 cantarell-54512={run="1p5idl8vqp84g7vw3q6ybwnddv8q7a0ijy6vny8jfd6583bjx6pb";doc="1r6mlr4qq61cclliz4h86bc86zkb5kr5r9bixwnj88pbvbalayff";};
 capt-of-29803={run="1b89cznanql6vmcn1jyr1nqkva40i61lsgjswsqjgdqnlbmvsm43";doc="091qchrgwikiissyrbb5i14634130vn08rkj2v7cnqzsb9c44f2k";source="0dlgrkl1vcvf8qck0pn20ic7cmsvxqkmvgp04f9hn3dmk0yrzc3r";};
 captcont-15878={run="00zp59ypp753b17wcn9212gxk0w11g2a7rn9gi2mn4k5c3djc10w";doc="02n200ziiq4lbfa3mc8yk7icayl7l5ci3kpl8mlkdyg9r0a14j1d";source="04wilkx7vd5bn05cww36lywb10xq6b2nbhlxnjq5xbmdrdf9ckyv";};
 captdef-17353={run="0gjbxdn70qskb3xl6gmags3gjq4pks44k8c48lxljx3avpvxnfp5";doc="1wl56hjc0204d6xrpvypgra7md18db4bz7657m49893m2pmc2x7x";};
-caption-62757={run="06gr7sz3gkiji1rfsfxlpg9vbp5x7rnbfhbzfqv48za1lfj057jz";doc="0avy43a2jgs0rqlcb8888mnj1a5vm212zfvzb7n4kgrvkgcjp0qr";source="0sw8n7aachgy9iw6pa8qx3xbvajq8rgx5ywaphpqgsxvj3xlgw34";};
+caption-68425={run="0d7z8vb5d26n6n8yan37820qsq46capr41vasvi4pcb2g2smkzlm";doc="1zkscfajy1biv61vcgh7gka33dm7z6zqf0ypps49kpgx4q01ppwg";source="1k8llr5bm3pi7bd6224a0nzc7d6d63wrwabm8wygdxj2slcixw5p";};
 carbohydrates-39000={run="08fsn3xp2bmkkhhqq0l8808j92vibkc27mi8frhzb7g253fnmbwc";doc="1ygfgsik471prmbnv7cwak72w8daj7zgvdw50hjn4c6mqsi6g3xa";};
 carlisle-59577={run="149m5a5mb0c2r3rk87yvsiw50mp3armc0mw3jfrca8p82cyjwkaj";doc="04l137nyh94qrli4qzsan6i1ag4j5j1s0qp8mb1m8a8aj0bw0i7i";source="1b1ikyj585mpg7wkijlb2ppai4shcz6xad9ks52lnkdjd0h7r9lm";};
 carlito-64624={run="1xcq8y0psxyh2dw9wqybb67q9ihqp2p0klf98rni24x0xn7c2l8q";doc="0sv5kmnkvpj60xnrldkp3gnhhslk9ksf6qpnzj12v00gcyxfs7gi";};
 carolmin-ps-15878={run="1wq22k55696jbawhlcqxj839vx1kla2xsik32pv5i2371dsn7211";doc="1kai31i0pvrvp44y06hl3mj20hwjzj2mav6zs36afz81b491aw79";};
 cartonaugh-59938={run="1s10sc37kg3m9hvjcicgc9i3wkk40wxi4ncswspn9a599kkhf829";doc="1y287gshxvdy4chshpwa328gfh36i3cs1g0giwga12afmkaif63h";source="16clmcddxp9a7ybvgpx7w6mf45lcqq1vzjb4r4ndggbpwawkhvlh";};
 cascade-65757={run="13xf7135hjf363d9n1gx41m7awbr62pp6y1j77qmc7x6xi7vg85g";doc="0d2fkdrrbh5lj6jmvixgj7v4g3adg6s6rrrj8wxilr65vd1d8p6k";source="1vh912sp0ngr4mq391m8cdggxwpjdm42d2qwv5m4mlqhsadald7w";};
-cascadia-code-57478={run="1dld0cvrpdky97ycnci27z4pk2adfflbgp5r43fxkwbh3l45am9n";doc="0i5ancv04gr9ryc6kmrm197n6kkhq7m2gs7bj3kmfza0r8725sd8";};
+cascadia-code-68485={run="1gdy5rx4dk2722xhnl1f8p0y5xhvpscfaycks217g1j7k4yyk41p";doc="0yadwjksqxia4k6f8w0ng7rxzp1lggqxk8q6n1gmnwqqph08y4i7";};
 cascadilla-25144={run="013x6his54n8q3qp2xx12c0s2fbjca1ffmcb1kjy0yr0qy0y698z";doc="1l8xpfmdp2sc54qxx0ywh7im342nd3kbmgkx2pfzwmqz3xhpybfd";};
 cases-54682={run="15f3mngrmvd0h6yy3jiifyzfrgi014g4dsqz9c5g1mw65yyssl8s";doc="1vq4x3lc7zrxsh3b7dy6w53aikx5vfzx26fi288b44g99f3h37jy";};
 casyl-15878={run="1cmz40n2h7nckjw9x8wjrj0kkig4xhjslqjachsdgidd151m65c8";doc="1y1gc2a1fw8fmrs4milnqvn0i099khhjq8pmsycj4bxpbsbpwqva";};
@@ -599,8 +611,8 @@ catchfile-53084={run="0dx2smqpw2jmzbsfl1g1zpa790qaxas4cz1xb5r905pvpca4q9h7";doc=
 catchfilebetweentags-21476={run="0xvk581zl6wk04amq4q6s4mhpb4d3f239ihk16m9fglabhq34xwx";doc="1bd9dgjp2rvsv6mn40m7i2s5s84wj7hbk8rka2a5djb00fv4fgzq";source="0lvxhx6id5ka9r3zp8h0xgrs05jax4r5rcyqcs1f77zfc2s6s8iy";};
 catcodes-38859={run="0sqwy110bqmy1npqqp6m7x4m632zmg4n52snrbzzz87jp59k6kwm";doc="19drsfj7f4lfmjhpmivyyzaps3yhxsy5xppgbm67vk4368sgsmpg";source="1c9269586s85v3swr33s28wb74xxaxy3mzp4153by2y5hpj250xs";};
 catechis-59998={run="0i0bhpal6yjhama3l9q9w8ljviiljqjcxixlcx39h6qq2dh5a4sx";doc="1c11g2nbf5nk7pfmg3dqyidm83xwbcqnshpwhbbnz3vi8lb2ycw1";source="1vq6nbis9cgrsch7w0yfm1s7y8ymydhbhzvllpx2ml6qks6vhy7i";};
-catoptions-35069={run="0739w56yv2rrz9958xhargjjknkf4bs2rgw1d9122ixrp1vw3241";doc="1jfv3946gqfbph8lzpzp8q1n6nhd2dcjprjylzw9kwxj5i42qqcj";};
-causets-66375={run="1m2gjhs1v7kaagqqzppdf9frhlfshy74j39n8r4phhpxjpjflar1";doc="0zw9imm84dph6dnajj8ap50kr5h18j6sd12xfd1d2asb35h5lvac";};
+catoptions-68982={run="1zixqpgln7yqpdg37l4dilbqsf86bbl64z0rqg9mjcs150vp0vcp";doc="04k68w710rvkx7zp10w9a1imwxv0qvanj1x3kjbyk0d7jvh3w20f";};
+causets-66359={run="1m2gjhs1v7kaagqqzppdf9frhlfshy74j39n8r4phhpxjpjflar1";doc="0zw9imm84dph6dnajj8ap50kr5h18j6sd12xfd1d2asb35h5lvac";};
 cbcoptic-16666={run="0y4y76b69ila35ak85wkakk6w1idjy92jhbnj01i82xpjnq9qrss";doc="08c3v6rppp3qfmg4nz0abwn2ka60wc6zrdx6qh1b591xgfwcm4jr";};
 cbfonts-54080={run="06641hiw3yahh28yq3bnz3dc6d25als1d8kbjh1ldab55gb3vz6i";doc="1vlhqfx3y85ym7xaqzr7bxkzm3am8806s6bkp50mv58r914xmlz3";};
 cbfonts-fd-54080={run="0gaw2v82im1k7addx320xhwwq28mcm2xkz4z90pw09r848s9fsyx";doc="1arnjpk1n9mkva1f9gsh5834kjb7m9rd49kgn3jf6acmdac67rv7";source="056b2x1fv2gvy7ldi9v1kgsla7jzhvl3lsd5wl1v0sb2rqr2jngv";};
@@ -615,27 +627,27 @@ cd-cover-17121={run="1x1z64h0473bf4dvyiraym65h15n0jkqbc24kr0xw4i0fk0q4l2i";doc="
 cdcmd-60742={run="1vs7lxaz2pnc93926245p6sylv6z38a10flrsfzp317qpkvvrqyb";doc="17xflbkibs98pdgs79yxwasr2xfwh1i54y5b53314n9nsr0w539d";source="10c1rjy2y5f772qn69lmx9wknzj0mydj80jywklckp4g4xif2hqz";};
 cdpbundl-61719={run="1f3375jl826gm4arxsv0saigl8230d35dmkzvqyg2kldz5ig24s0";doc="1yhc82i1n44fp375vqyzrq47qdzwxc3x3zg10a791s4p25frzcn8";source="14aw67ah211c1simgsz0i3j6jxmnsj4arjfy5g20i05l892sb2xw";};
 cell-42428={run="1y2bxxx73r1h9rhsyar81r4s9nhgqjlvs5rwnkpk148rwwar7l56";doc="1ri21dk1wgfaay1hblmn8akmq8ccxpbp5lrfnprkqqrvkxnmaylg";};
-cellprops-57599={run="05gr1jgr9m7yfrl1d8pgnh0z8xm7rk8522vl5wck2s2slmk8schy";doc="15f1mbagh41qvzkqf1bdzlvchfn4dibsa2qj7zwaqszc6smscl1c";source="0yb9gjglaqfivifxi6n1al6w1nm0ah3r4d9y8bc7xnfxikhx3sym";};
+cellprops-67201={run="05gr1jgr9m7yfrl1d8pgnh0z8xm7rk8522vl5wck2s2slmk8schy";doc="15f1mbagh41qvzkqf1bdzlvchfn4dibsa2qj7zwaqszc6smscl1c";source="0yb9gjglaqfivifxi6n1al6w1nm0ah3r4d9y8bc7xnfxikhx3sym";};
 cellspace-61501={run="0s0f11xrs670zhynqq43sbrx9b290jph8r6fp6s7damrp9wnz9fx";doc="14znyc212pydxgnyzqwxd6vlvd72b64qjllmsjpcsxqi0f7am0ak";};
 celtic-39797={run="1vg75zj6p9bhp9qg4c7nvgncs7iiki5jizx27ld26yni9m2cd0sb";doc="1llinw15fnpjshks9yzlmbi04pkn6s87jfwgpnh5vb9hfws1ira5";source="1w3wm5ci6kzpnvlaxbpqndclhxlbs4xiwq90iig98wf97b85lfi9";};
-censor-63126={run="0pa303s5ib97h1h1zmjgxfiyr4g488a7szq96nnla2bi0zks1js2";doc="000rznj5wb3y9mriqh203aw0nadq8hmxgn9z95l0isdn4ksda58g";};
+censor-67293={run="0nili9g4i8dly7gri3b1k4z1n5gnlrkj1dz4si3gf2b6gpll993i";doc="1kzi4glg1gpwx37ck2gys2dz072n43af5awa8x1a2036hpz6s5az";};
 centeredline-64672={run="1xrh8r00wrr29wiijpal0n6k48zzl5493zbfzfgwq115lxsvhp37";doc="07jvl42qmwlm2qv895f66cin58xzin21czdd0xpa13lgmpsccv2f";};
 centerlastline-56644={run="0wc1pwppiwycm5w3hp5ysnv3wgsw9s8m9p9ra3xbmlkqxd6zjwnz";doc="0f1x3wzxvgjxsgqparyjq4x32zbqjm88v5xdxm5qkiasai68r7q3";source="0ngxhlawj8igq7d2mhijpfcybfr6lv1jl82vs9kk7j8xrdf2nyr2";};
 cesenaexam-44960={run="15n0abwviaz213q00nv6faxc67fyqz44mvp28zcyysrhmrcxw159";doc="0vqxkqgyg79kzfcxh40knxh5a3d2j6q3f778k2npfz70d2kaizj9";source="069n1sk2g5n9cqq9rchk9w5y40igh620a1j5miscgykcczv2y0jw";};
 cfr-initials-61719={run="1wf5lcqh3jysn0fbzpmh429gmicqhh1kvz26jfl37f1z53g07shs";doc="1akblgsix6a59as4z5z6hhsncnsfxqh78s8gw0m3xqv6wrbv417k";};
 cfr-lm-36195={run="1inzb3q94b42n1g3hchqld687qhs33m2zxvxvgyciwqnwfn3h968";doc="1ska7y1xg6qq86kccplwxjd70bdbiw492d9y9n17d7hryg2nxw66";source="10layppddcanvyzjbgn6grgba9ff47kn7fqdxmwfkwnpw0qlw5k4";};
-changebar-63259={run="17vgxgjvlb4fflkvssl7x6h1h54fw1fwjr1al5ibfhxwwh182lmh";doc="05cngjpda673y649yy5skgdp6ghrndj7jl50j60m4s7szhlil4ml";source="05vl3j1ks7n727qiz9wli3x33hgv9sgk1qbqvdqj1fgv3k1ag02x";};
+changebar-69367={run="0q3z0187y2fynbp9zkhvfvcqrxyn8l03xrj4wm6zrzkz70yq0z3h";doc="0yvkcx0gws3m0jq15qnqbxm169f36qfr2wpbl4hp963z1az2dqnq";source="1zdljd9j7xdly3wlaqhic8v1d2j3mr7mz10vp03navlysd6b0ycw";};
 changelayout-16094={run="08bapli8zvv8p15bv3sj7l646fagzbj44dbq81apb8lhqanvlf0i";doc="1s304gpjg30kpygvg4r8r2j4bk9fg8vlb331lypd3dfd6slphm60";};
 changelog-65861={run="0zd7i9kh2rybh0d3zv7pxkjk3iddm03vkizpdxyy3sjblqa2kz3g";doc="1m65zxnlazb9jdqp4y0n4lzj6mcyhv4ng7nfg63zj7zpsx0kcvgv";};
 changepage-15878={run="070rd3drhaaw6z386v9z5rs7dmf15ci05lmlxsaay3s1ry1425bc";doc="1149csn0iphkxj7p1bhkza8v6xj39k49rylp84d1ilckf1q4imng";source="1slacsdfrjyy7hmhj4ssjkh0ln846b2ds11g446hmdvckyvz4363";};
-changes-59950={run="1cqdis0b9k20nvfc912xm99h6l36jzssszqrgcshl6m2kd722if1";doc="1r03j3g11nh23misg9prjrbl3jvf45761jzbxjjn4pajynfdpm63";source="1dzmdnwh8bbg3ysfxqq9x9nw44bz55f4gl79nn2z2c80f99sqvx1";};
+changes-67201={run="1cqdis0b9k20nvfc912xm99h6l36jzssszqrgcshl6m2kd722if1";doc="1r03j3g11nh23misg9prjrbl3jvf45761jzbxjjn4pajynfdpm63";source="1dzmdnwh8bbg3ysfxqq9x9nw44bz55f4gl79nn2z2c80f99sqvx1";};
 chappg-15878={run="1lx2yw7xyvbhvmcaj5qk2bjfmgyr4dn7q0v8q3xfkrnbzbzmcajm";doc="1c9qkc2m4rcixnif8y1zvcc0mzwjhzsbrbmy1cqv598cysc2yaig";source="0fzy53whj61n52k1ashphabpa076244dqjy1v7icrb27gd1y86mg";};
 chapterfolder-15878={run="1lphi7j367ga43j95vlph7ywzj93lppnn4n83xhbvwp56azryqm1";doc="1ns01x1y3dq3r37q783ha7xsnlg50vfw5knh2saw1rv40wf9vf1j";source="0zc9fa6xgs0s6g3rfzq3p32dlr3ay4k6y443z4zslkpmnv0hprjc";};
 charissil-64998={run="05ysp0l1v2azbr1gjjkh8mh1qmd7rq2znns60p2ic7dsfvfr9kpp";doc="14pq31xhrwa9v57dlwayysx16sw1kabwh4m9wjlpq9xdgbq9d38y";};
 charter-15878={run="1z9145ri2g732bs4fb8i74gc0ymak33k7sclahln2bhdpxi286fm";doc="0gm9pwanxvzv0zmxq6pf54ygxaxvg56kh1ym6f5ij9akwvhf6nwb";};
 chbibref-17120={run="01gyfwsfrjy7fs160zxvzhr517wwbsgh381hk626kvf87wssz2nv";doc="0h5vlzfw5lfg7chqfmbisqydmjn513rjrvw8pax4xlm75c0p6drv";};
 cheatsheet-45069={run="1cqv885i4crrramly68wamd9fcx0lj96vzys39aplars3pjv0glz";doc="1ykadvnpwkyj701xwfpnlnqr313d33r0yigmsscshgr1dd52jjf0";source="01hd52i399c9nsk68ymr8hmllxq1vl6v01fvs1gpm90pgvgdc9gy";};
-checkcites-64155={run="137biq2rvvws5k7l5knzzhkgr1bnw562bkkps8xv2d57fnm2m86v";doc="0zi9ffn3f0kzf3iqf2940f9zvmz2s15pgka3wngy9bzw8f0snxbg";};
+checkcites-67201={run="137biq2rvvws5k7l5knzzhkgr1bnw562bkkps8xv2d57fnm2m86v";doc="0zi9ffn3f0kzf3iqf2940f9zvmz2s15pgka3wngy9bzw8f0snxbg";};
 checkend-51475={run="1g4kx83kkpdd4fbd70b29hv82gbf19avd04b3bcxy8d0r7zyyyad";doc="1hzllxf7pnp7kg2623i5yhl2xq6phifc4jc57f2zfgfvvw0hqihy";};
 checklistings-38300={run="0hs740rpar4jckxc2p8wwd8x39v8bghgc2jjrbca9m5zbr0prvpg";doc="1riyj6x57jb28sjswnnfyqf80jnkvyr2cvckav29j9ni8l970qp5";source="1ghb0pv2zmznyg12zqgljwd2pc5lbajgdnzr6zf2rrmvlrsgr38w";};
 chem-journal-15878={run="01s4sbmc4g96cmnbhx9a6bqjskkrr6saq91cly2pfy5gr256vmnq";};
@@ -644,7 +656,7 @@ chembst-15878={run="1dg8dasw0r96rnv4pnmm2k96rxmsdfhvkbxc5m358x3i5i4pcpm0";doc="1
 chemcompounds-15878={run="05rqpsyf12yrhpnzip0ywzflrvsjfdqhpi74iwpwb98d3q82ckai";doc="11264rxfhbf36jfkqdfyl2dyqal86bhjbm1zsy9ps8w4fsgdw94a";source="044gavw3i9xsa073bwpg11xy75dip172ih6h2p1mbpp8i7bzsrg0";};
 chemcono-17119={run="08cch2gr35wclm1l0j05lfbjskqw43jzz3aj4wi1dhpm31b855q4";doc="1kcgfx2clh4x59h4scw5mg035wqr2cp5kidn7f6p2aaf5607xid5";};
 chemexec-21632={run="0yj6sygdzs247fpajjl8gk3c6yhk52npbjahgngchqmblhmhlkc0";doc="0pqksv69yk7vf622x2p2ah735p0a93agfnfyg8hm2jadwjmhzikj";};
-chemfig-65901={run="1hc7yqfrlb145r46j28jwiwdq7dp67i1hqnkpadja7c4fb9w9nqg";doc="11sd8l6k0ba33gjm4sqqcrzr46pnfawc4pzj9yj5l5kmkhm12in0";};
+chemfig-69227={run="06jp9cd9x404pz3fss77vhal0d3rlnwx1q6bnz6l5zcr7dg3n19q";doc="0g85rqfahdvb6xp56qgh8b9la2xjhsi1cv3q85dabxgbsqwq4m0i";};
 chemformula-61719={run="0q0vrz2agxw3g7cy5clya5hfsdv8s8qf18szhway3inzg5mfr895";doc="0h1nbyhj463zxj4d15cx88h9pwb2wxpq3r9dsbzdi63fb1mnr4bz";};
 chemgreek-53437={run="0di3w4yqnjs49im28g2a2qk31d6cqhrbwpq1jcxykk8am7g2sn1c";doc="065mwb7ah9h4qwqp36n0sdlkjv435bwrljz3yzsgym7a4xqvhfwh";};
 chemmacros-62655={run="1phw4kgp7h5mcrr66vb4kazzi3kw6abmxqhybn3amd4ishgbzd8q";doc="1rz1a7nc2c0cf78axch98zsaxah84hzr7h8rpvz3zz1vfa4bmk5s";};
@@ -678,28 +690,31 @@ chletter-20060={run="01gvs00kjr313a09y65hif15vqvxidi6ri11ypsbnsc0man6dhwd";doc="
 chngcntr-47577={run="1a61sdmfbbryqd2gj87bm4qsva0xjmf9mkxhxnjixpqmr4gixq8r";doc="1rrkyvwbgfxxrnsdjybjqxqg15xyzr4s7qydx1ky2k7d2yxhiy41";};
 chordbars-49569={run="0n7ycv6wkkd4nr7d6w55375c0ym1pinqjyxx92dwllkmi5w2wr1w";doc="1hg3kzyyw3ra6qqf9fh2rvv5rn2jaglzjvf10hwkv84a21hlfvq9";};
 chordbox-51000={run="09sghgyq6mv3w0m1vlcf82vjbdkb00gpiqr6iwlimpqjrv09bp3l";doc="1fykwcz8d0ja7f5px60qf7pfzfcw447mrfpbq8awymr1ilwgmz05";};
-chronology-37934={run="0scb55ph1k2hm5bp1kvj203c1f27a6d263x39cmb79n9a6idynrk";doc="1rxwljr8jh5q3id04vg4abl0h19dkbzx8m04iq7500syf2xsgl7a";};
+chronology-67973={run="0jbczd5y58a6bjlk812ncb1ckcsq1d7j8ghmivx4pr5pfcx5lsqk";doc="0g5r3by58srdydm0gps4ybsmihayir3qf2lra569ywgxy06hqpn4";};
 chronosys-26700={run="0ii3r31dii1252bg0xfh4818az1snrzfx7h4ibr6rd5q3a83yisx";doc="1c120hcadb7xpkspmixhfrdlcmhl79jrf1wc0vsjqbq3wxjq1p55";};
 chs-physics-report-54512={run="19ci498mf3yy0xhmq4ghy8yh138dzs8953ki2mqn9hj6jjx71yfm";doc="1nfmbhp3gqmf2pdallpnrx9hqlb8cwkndfri8i0mh411hrh72jp1";};
 chscite-28552={run="0db7nrmm5r4b2cvcyjfra1fmskjaspbgymjsl4vvif9j3kwaa0ba";doc="1q5s4qj508nqy74cdcg8380vjbhs4v70a4jkr9wdirqcxjxs6yfn";source="009a8y3lxpxjhkd05fcf308k3fihl95pcn7r2bgy57jr4nalmixx";};
-churchslavonic-42751={run="0f405qij680p4jjacjryjgqvb6ysra52qmydqk5zgqyljrm9h6hh";doc="1k7imx74l512fwd97bsqy1k8jkbkf2b97lr1iy4pp8jibam534rm";};
+churchslavonic-67474={run="1x3b3l8b0gbariw3c48pfr6ywfxh304vfbsi10f99i3rhl8janac";doc="0pjb7dpxp0nnvh47vrqydd5gs4ld11lgf9m45nrzs1x8qzlx53ah";};
+cidarticle-68976={run="17a2cqb6d3n5g3jhk1l5hybmpjhqpf7w0cr8f0w8kqwm2h7ciknc";doc="01r547l09fjhzrm19gi7xwrvhfglf9a0cl2v1ikncfhciy6dvjcs";source="1v9qsmqhb96b8p27bim3s71ybarygksifanwgl55vha0408s3zd0";};
 cinzel-64550={run="1v29lilvh6l5iynf1810p67qx2znxbm04wavj31w5q7rvnar81xs";doc="1j7i2bdbrfadw25ajkgkygkii3prybhp4qh5k8azbn7zpxl78q5s";};
 circ-62977={run="1m6siikjprch991sqbchbrmhvh2knjh3895w48wjp9par050cbgr";doc="1zmyxc0iz7ljrkklqdmpiax9alk56pf1i4dm6ljpyisd95blcys2";source="1vdj8qzym1ihkhm628zz99w6xwzhav8ci0vlckqpz3y91nkkpxaz";};
-circledsteps-63255={run="19shkimypq7gvl2xq6aniabkz941mkhfz3svjx2g1fngbm9a832l";doc="0fy0fa79jll629v9296pqdmmfg7jag7xj2mx9jc358xiqprjlx1w";};
+circledsteps-67889={run="0ybaz7hl9v8g0kx8v7j8llgxvvhaj40afk5fi9733iv8m0w3mz47";doc="03426fkcxcjszpm852qv1y4kb581gdkk109cyfy7bjyx8ihrxq0g";};
 circledtext-63166={run="0c4gas41ddivlam1hsfzxlyqzicclfd91arpa0s8kinlnz27bnq5";doc="0ia4m8ss2idvzhgp88cbaybrzld0cg5gijl7nzd9fc5xsmybdjsi";};
-circuit-macros-66556={run="07cbpxyawy44ds1vy6kpp9cxgv2mlh78i1wakzw30q0bj4rksw7b";doc="0dc3z8lfjnwxphrq2irpv5476wxpja0cmr77fadx0hvkxqj475sr";};
-circuitikz-65785={run="0yq3wa9x8g8s19wpqb40h3q4zf6idw7r7fakp5a071jx1zaygw9l";doc="0q17cbmayyjbnhwkg4pmhqmlbm1k6hzmlp258q1f7j0mx04fz2q7";};
-citation-style-language-65357={run="1idqlk90vbnrpfvcvz9zf41ksghbz3lvcls69d6qgmirai2psmg3";doc="1b2vqyrj7jf5vx4x3zjw9lw5lxa7qyq90vpmr9gkzmxpj4dnpa7n";};
+circuit-macros-69263={run="07cbpxyawy44ds1vy6kpp9cxgv2mlh78i1wakzw30q0bj4rksw7b";doc="183785rmygpffw0gb7mddjvswy3dbgp5yimd5ckxn193429il7p3";};
+circuitikz-69077={run="0hvm3zv86839bl98zcpakgx86za8ij46iayr7ajlr7dxncfyisk1";doc="1mxgja72j4fc0a6w7g9317asbgfj67l98fxfv1jz3a02cahyw1z8";};
+circularglyphs-68476={run="0d8hr1lns0973y61qmmz1hg9pc99j3w4x3iaqi0f0jlyzxc5j1m8";doc="12s7fkjlbbiica7svrha74zh3va390ay87bajjs0lgx6smqfx85n";};
+citation-style-language-68454={run="0kgq9yrwrzj5kv91wsiq050rx78a8q5879bq8lcskzv1wqkhi18l";doc="0s0c46516ljx0csllvvw84vxipwnhssyvkzyrrkiwzmxka9pw3zf";};
 cite-36428={run="07nw7axvgir19ayi3zy0b2sp8bb9pq1nl36x0wv3nrqjilvgrwr5";doc="0pg5fc41iwqc1y9m9b47nh48fqp5dpnjbx14ny7ch9irxblg5d31";};
 citeall-45975={run="05nb6pywcrhqi1c9xfzkv46j2fq9y1lqmqawi75v3z56h2v6c136";doc="1p54cr0khq72z396r3vl0p9qqn2k82pmx4pjaszlzhni5v54hbdr";};
 citeref-47407={run="05bxlkylmilyzvbl99nsw16saqjsqb4bcaa68qkz8m59wz1ji4rj";doc="064c9zg2rhnym0wy2kxj0617mwb3mxpc1rr13lqpwb1f1qhghm6f";};
-cje-46721={run="1vs4752d8c8jsj2yrrzk5xq43vs5sy4byp4fjgczlxas0vj0v9bb";doc="16vyabyjacg4i2a362nf78dp59r1dgyj3k5rcs13ilq62dy67ia1";};
+cje-68656={run="0v0pya3nyj3phrgy0vrh9psbgawp823li0gvhw84pp9jg0lss6vc";doc="0w5lrlwzff9vcb0l44f5cj5763x8qb17j11kmbxy5p7zxz0j3i9a";};
 cjhebrew-43444={run="0my3jp6pi5lbbhn24jn07gx95laq2p7fqk88pwic7wwyji097vxw";doc="09ldma056ipsamrd558z24k63p187ziw2bh8qgy4na20pp22wj0g";};
 cjk-60865={run="0qdvr0sq8v0vi1vy8aybhrk7fnvlyxz9x9m63npa3nfcffypdv0n";doc="0liy56875383hjdada5bc1ni6w6ikmzkf5k8qg91l0hbkxxnqfiz";source="02bnfl8hydbb8wn2d54nrd6v4p9yrr4f6hkinyil5jnfkq9mryyc";};
 cjk-gs-integrate-59705={run="0w396gn4s8jlaz95cc3dzh9xsjiywsxjf87qwaniyaihssssl4pn";doc="0a4m7r52czkxp7j2zd389f5illw18dngdj3rkd8b9qlp9c4bq907";source="1h788aq405c44alpj85lyhmlnvdslc21n6h89vx5dggdfypbq18r";};
-cjk-ko-63561={run="1fq0f5315863gri3zns7kr6sqscx0pmg4d1944i287qy3p4pfblm";doc="15992k7mr4jln4057mzyipfhm2f2k6fysmx986czwamjjvsjbq1d";};
+cjk-ko-67252={run="0kzah0dkaqrm5l9n4792sgmiwv5l42518q8hsxcq4big90va6j8c";doc="1pgz1x55knbhf5xqajcjqfkj1a0bfl1v4dvvgdlfac7s0z46pxwk";};
 cjkpunct-41119={run="0wvqmf60gjm5m7fcc2qqz14lfzxcrqci3lrla96hxkqnqraiyb84";doc="1ja16xaqfg5158155flfvayr39k7grij13r1r89g59va53mpsgrk";source="1pn85n7n4fp2p5pq3w66kb5zlnjk1bdz7fz4xsa6z31d5216j39b";};
 cjkutils-60833={run="0wl33vh7pcrbyvxy6bfcjfv0xnawp4gb76cmq2304n9mp2w8dg2h";doc="1kkb1lkni0d7mb5hcnwkpwbyz7y9w5iy0z6rgm38lnkkm2wjhf7b";};
+cjs-rcs-article-69006={run="0lg0d2igpd1dbm2cd9irrb5702mvpscqf12bmxn68y778wym6gnr";doc="1vvm9nzrw9gidvzg1ab7riyxs98nxwm50kd0ih2zls8q6xxzy6bf";source="06wqrj29gf376mxpknzb6j7aqnnx9b9gacdq1bgd462spz7p8za0";};
 clara-54512={run="19g2vpxwjjc3y88ghw8yv0abkm69x6lnjj4p1cqbdjiyy4n83677";doc="0dkqqps72wws7dhynan243wf86gxn4chn1v5iiishkar33xvvlzp";};
 classics-53671={run="1l5p09agmrik9dkhwghjg8qh407bjw5q9hviykq7kf3y006dpzky";doc="0xp87xj7328ipwq0l8xgxn2baqm9zmp8dqyhv1iy68k9wgqr2f5w";};
 classicthesis-48041={run="181s8s8yk6y9haxz66ks1v6wwhpff2vs7lxrc8kshg1mn26bya4q";doc="1nxj2qflzs40mwnpd02bnbnh0ndm8rx12mr1vyyy6v3sc6g28yn2";};
@@ -708,17 +723,18 @@ cleanthesis-51472={run="0wsib3c130m19r4z3ghipvgqvmfhi1cx86670ad3ama3rdmc3zpn";do
 clearsans-64400={run="0wd2lhl02svzxl099zfflqk94nhs84qb3b7wzb8adh2b8z9489c3";doc="1nrlrx6chgk1ysxcpvd1hb1qpagl3n7x9h0gzfjf0431bc3fxc83";};
 clefval-55985={run="1wdxl93z0svgg6h7vdhzqp74clcldxqh95yimqb190cbm6v5ll05";doc="1d1pw87hszspsfrl5c14q3c2iy1fkbh77dzldhajx71iqjfza634";source="1x7dvg6q0hy6pg05qpi2qaxw7y7a2dcfa4khddvbfcngp1dirrzi";};
 cleveref-61719={run="1d4qp3jl9mgv4afgdgcns5rr7agn5smiwqkmrasqchj4hqzwxhwd";doc="10wy2zndm51fy3d80cqnwsjxyczqjjffx61ir6ky3nkmiikiyypn";source="1qyyvn226dj4yq25cf5f7yzc3gx9qmxmnlnjijydgmmwam71s3xl";};
+cleveref-usedon-66915={run="0j2i293c13knmpv82g2b85a1y9003dxvizk073617qf312jb8bpa";doc="0kprww9mxfr45y311zky7gfhxvg5lrkxfg0mdkfgway0j2ljyw9x";source="093ydvc1mzkz0dds9fl107bj5mghdfjwb9kcfx8hw9ss9yg6bv9y";};
 clicks-64602={run="15v0yjrsnf4hqvmriffdq7x24cxk9l54a5s967nl4pqn1iavsqd7";doc="1givgqvm29fa1kvj556hfda3z1hhfzba2b7jfj46f8zsifi17s3q";source="18dpkhvhc2i7m2r5q0sp5m0zhzn1706zlknybcv3zxsnpcs1rar9";};
 clipboard-47747={run="1i9facsdigll3rzl8xv1i85cqyvlc54xhia69cv5cv0gly00p1dl";doc="1b6wvadihwglj0653bn8fnnq18whx2hymigvyknw00fyn3xjgvgk";};
 clistmap-61811={run="0xl0310x3wrk9lhwhbqnzi3gsvmbvk5smd4wq50wj691vmag9ivh";doc="116n1w0zfc6ad3nnq2wvjibpl4ywcfbgffax43vml5aixkpdlcq7";source="1cr6hbvln8mvrs6g8831153l62b4h1k5731s2d0xdm46wwmq4m3q";};
 clock-15878={run="0w5z1ffi25nabsaqh91glby7ifn40c9rhzxlz2kbyvbrdg6a3and";doc="1wp9hglx1vw8zfa182m2103xb0rhg9hmp51rc7bzm6fh3iyz52is";};
-clojure-pamphlet-60981={run="15q1hx198bxr5ip9ssfyf9wbccqrgwknijcbnqsm9mp082d0vc1x";doc="1fi2yxxnqlwsq3m66b75a16hpx4vs3imij175dwvjq1nvfg5y8cn";source="096whv58b2g15m6mzg689d0mp6p9yvj8z83w431zbg204h0kx0w5";};
+clojure-pamphlet-67201={run="15q1hx198bxr5ip9ssfyf9wbccqrgwknijcbnqsm9mp082d0vc1x";doc="1fi2yxxnqlwsq3m66b75a16hpx4vs3imij175dwvjq1nvfg5y8cn";source="096whv58b2g15m6mzg689d0mp6p9yvj8z83w431zbg204h0kx0w5";};
 cloze-55763={run="1w0wydk9kimnihll4r8nx1kp6fccgmhybxl3qzrqxk58x4imp3sk";doc="1pprx0mdxfn8gwdsi03ifscinnvj7p3w8nwir20z5q5121clss95";source="1ijnnfq0xrcnysc9sf54nc9a2xg42jqfiqawb8a5jnc62dx9zwyf";};
 clrdblpg-47511={run="0p38c8p426dn4i40wwhi5hisx3yc8bqdi7vwxdbya02smixkpp5f";doc="1l0avfhvabq1mm9yqrpr29ps9iks84j7mbfgrbrd6kfgpdpqqhx1";source="0iphx9hbs4ld49d24f2i8dcyjxaqgvxznq3i34ik2ywampr2a5k1";};
 clrscode-51136={run="0kk8hsrd8rr5vadvh58fdlzpz29cnpr5nhcl5il8fj466dw0igv0";doc="08wps3rkrx4isg7abr6icfj9pcnhpnpylnk3wvwb42pqah8975xd";};
 clrscode3e-51137={run="1f7p04gaccyynqm0wzfz8jinsrrwn6i4amc51s835gxkjv2d8gwv";doc="1kryc0ay3bx1maydfha6wm4qw2l9xprnhs3901qbz904l21yawhg";};
 clrstrip-60363={run="18ln2mlc8bhhf96kqawba5dqi38f5j5s23qmp5dmpgdm7fdanlqn";doc="1mf6bcc17ivcdvy36ash33bmhh9fcry0w30bfi96swjq17740cla";source="1dc29n1m6bq5rbpf66q07nss8iw9mcav8s1gzc56j12ik1r2sa9y";};
-cluttex-60964={run="0w5a3jxy1caaw9nav08w7ws9wnjj6bnjdrzw2y0rz2rj8xrf123s";doc="1a9clxd59gsn62hybpqsff0f9y9iyz4nxczybpk1kpva0m7w63fx";};
+cluttex-68912={run="0kzc9xs7rn8x4zh3z4fh45d370k5526mr81sxb95jabsry82vn7x";doc="1ii7hmn88h4s0va8f4xsndvhkl03csz13nrnn6jlzl8rj02lz45j";};
 cm-57963={run="1i70pxbx7bp7lzpd4skdymv1a7h8njsr42v8l8jvh4bs3gkmlbgi";doc="1s5jagrajx29zmpdbqc6qpbcpwgp7g4c3d59ilg4sgcqgd9n5v1j";};
 cm-lgc-28250={run="126k3nr39xvgbzjws9x9xs01rj738lvgpy9r2wjvalxqvd2sahw5";doc="1xffcgb60kvbg07hsw3dc6kzjqh907fj97qrrj2586b66asna5il";};
 cm-mf-extra-bold-54512={run="1l1cm32z8wcpj0cl7czqkhnwil3ail7a2bbzn70dnswpj0ka8k9n";};
@@ -728,7 +744,7 @@ cmap-57640={run="11ki3gqlk6hjbpffmi2zdlj0rg5z5drcx8zw9nc480mxz931h273";doc="1ykx
 cmarrows-24378={run="19r3r86vdlkjgx98dsf8c3crq14p8ljdfq6cijqqsvj6p4p6nfy6";doc="0svllk1cvjn1mw68yfhbd1na6grp4hlqbybqnmw7igw8ilpshl1b";};
 cmathbb-56414={run="03da7ak8q3qyvwnk52mn2a79q2mfbfk0bfrkvmjpqnlagw35qmbi";doc="1i54xpnvygfmwbvdnj5wwd2fwfl1y4f99afvs283lz1ki2857aj0";};
 cmbright-21107={run="1ypjv6wfj1nm6wj6laniv304zri75q9gaik95sxbz0wh5cxzwgr8";doc="05cwyxmh6mqj0xf4awhif1vvms0j1lmadd1fgil7b14l46mcd99c";source="1y5is2678czhhkw4y5nrg05qqfi3n7fbric9m6pszfkh4iw0ml6c";};
-cmcyr-60630={run="1fdsd6ks48rvbvg44ac01z89rbd4w887lg2f9wqca1byx142jg3h";doc="12bg7k2gf206gwlg89mqwfadsyznpwl2nbzcz2vrnvrh21z81s1c";};
+cmcyr-68681={run="1fdsd6ks48rvbvg44ac01z89rbd4w887lg2f9wqca1byx142jg3h";doc="0f2i6yzqy4lfh42y47mwqb9r4ni67bwgrrb7i7mfajnkcb6mi7rm";};
 cmdstring-15878={run="08wyaqfyjp482gwkwfq2xw3skazfzlv0nn59qri9728rmgykd3wn";doc="0236d4ngq70xrgsaxg0b0yqgcnq55blkq7d4hgw3sx6s6hkxfkn5";};
 cmdtrack-28910={run="0ygl30hj8rczxj8sxis9cfq419rscvndj5fwyrls3c1d2mnscizd";doc="03gp5n28lg10h6amf4vxamvnsr7hvrkhmscfcdf4jyp3kkkvnv4w";source="1m8kfxys9nh3xml6inyn4qyhqmw3h572lvlbh7g4z0zzqgiah3qx";};
 cmexb-54074={run="1hfslkscqr01dkgnckfcr8c04s053s6f8z5xk35lcgbqj1l7ygag";doc="1f6nrlnnq3c8mwsxz58pk05ginjkdjpgpnnw2alky20s78cc5kyq";};
@@ -745,9 +761,10 @@ cnltx-55265={run="09czgnx6jqn856sr0hg5j9azaxc4i22yp1dz95nn4s331khl3z2a";doc="1ly
 cns-45677={run="1b9hs7svh6zm22vw5zv6nqmdnmw453xv15gl5bgm4n3f1pz757wv";doc="0zdjgg2njgcf35jvbhkfgiv3b9cccf7ds8d50ga3v1ia9i4h9xq3";};
 cntformats-34668={run="0mx4rgzk4av74s906andw0h9ga5zl2c3ip0vi4q9349yj643k2q1";doc="0015ynn7mw1y8v14qckbqkvb1fn5xqaz7rcs6gid1n19f1qsbh6f";};
 cntperchap-37572={run="0g7211nljimm9a5fvry89ch4nf49xhad9ka7prdmlpj87h9ygas4";doc="1fmq2r8ssvp99ykil3aak8w301qvh4nldsph389m7qar2pviy1sk";};
-cochineal-62063={run="07gachpd2xz1npifg11mlkhkz5q1q5vmi5v9b35xvpk9a68j4a6i";doc="0qbbgri75qaw0gkzgzwdmvh8in7s74f7fmrs95czhcga0wdcjz52";};
+cochineal-68904={run="1b93yb0p4mzazs1m68bmv89ynlxikji27p91sxaf1d4r732nfrlj";doc="1qzzc9l27ymsyws1im8siada65xw411rbvkqaxps7qr7zwbrxn4k";};
 codeanatomy-65648={run="0pi4w20k4qcm3sbzpd2dsdpq6r0nblgjm2s3m2gclpmsybzmflp2";doc="1z9w6llgjnlmiwkz6ghv1cf2ilrfvj0r1k2c6kilsz4jcc457y3z";source="1vag4qaphfw0xrdl7b082iwj4z89x77sh62y05xs0f2bib9qlcn7";};
 codebox-61771={run="0s0145rdpqbbagc2klx2w5h6mlx4ns0qlllws31qbvy6byh65ngk";doc="1pj5qnzfa7725v6cixkznrs7yybc2v0ik9q2pxa4d25rpfxap524";};
+codedescribe-69343={run="0swllicbxmaswi1v5ks25rd8bv8isibbkkzsi78ibcbc52rg2vqm";doc="0adbg2kfhyd2l19dhbab0fa49spgqk44bga9wgnn8n8g7da6zvmx";};
 codedoc-17630={run="1zz70vp8ssblnacrqdsq9nwvf1lw69mlk9d94cfjc818szcgi9v6";doc="1f3i3vw1cmdvgp05xckr748kzbairhvdpfvr844y7wnmxzr4rfzg";};
 codehigh-65787={run="0nls47d5md0b46xi1nxydzwf79xrqh6ijj06h5n5mb4sw7w5qylp";doc="08d7vyn1s4gqhnbz7f935n96ay9hk7k41w8msg8j9s937qh7fb64";};
 codepage-51502={run="0kxf5zr3mhn5pd8pzmzslgnngk8gms27ax6cqn1z0n35zvh0p17h";doc="1sd01q8lzrzgk9v1dyhf4m7a4fspjll3w8wwkbzp7gc693xg3lm6";source="0b38lcswx2x1jl6ydmvs6yr1y0kiv6gdicnbrx5qs8xhwd93bcag";};
@@ -755,22 +772,24 @@ codesection-34481={run="0qp4k2z442idg0mjnancfskj0j0k75w327fixjgdq1kl9q6jm9p5";do
 codicefiscaleitaliano-29803={run="0im75yz3sw89ky5lcrcjhg6k6j4sgkjfn6v4srmqzcfdmn2qyx7m";doc="068234c0shvblzkcgl67a9s9whcbyjy3mjw60i8ljhs5z5wjrnc2";source="1vsb7dk4mlaacl9ls17lm4xdw27xzdgvng02gkfjvja1ja3cq4zr";};
 coelacanth-64558={run="07y3hgw3apkkncch9qcl71l5xaff8zqpgcwf8is7wz1wx173hafs";doc="0ylnvl6ya87aivb10z8sq2rw02q3kljdiddjfarx70mr1jzr2hma";};
 coffeestains-59703={run="1sfxi8zimkp76nc3fg7r3qyf628sh9p8rh2b8l0wq5aga20951n5";doc="097c2xgrgy95w7v5xb9lkgih65ji5jlxzdm6szdyqnf659bmibm6";};
+collargs-69284={run="1hiqc0gwligaalxacv7si4g7qnn06aq7c4kqf2gma01xw8mi61gk";doc="141glrca5d5dsi6azni6valbgvkdywh6isian3av7gm2wridi3js";source="0qxdlmf1yvjlisizpcpmxclbs1wxap1zqivvsxnycyf4vwf2wxj9";};
 collcell-64967={run="0f0dzdnmmi4cpyg2qfdxkdl83qrcsddpqm7z9g9mxfnx4lf86y3i";doc="0wyvhcw36arrgnwq7zc8vck3m37qrn7my4r6959p4i7zhpvsazzz";source="1k7s9rkbp829wlby7h1hwlv48bzxwwghcsnmlxrs7qnh374dwb02";};
 collectbox-64967={run="17bz2nh141yw4cffv1w6cdnxkgi6ilsr5fkzkp6h5glfibmzhi62";doc="0j9hs1q8bzm4p7rwiikc805khkar23722ylf00yb7mp5mvky8996";source="12llsyfksri5hlncmj3bba779jhwxxdr9zcck02jmrvx61d1znvh";};
 collref-46358={run="0q1g0x0bm0qjh568fp45b1ljy3w3jgy6s09ji1d1m5yrbs4dm7qn";doc="0vcfrdg9mqrfv2jlxh88g0nhpsrfwgdg9wjdn0l9b4c5h8zq030c";source="156gdfrd09kyxjiplcm38s3zj8v6bygwlpr9g952m0r72q7cq54v";};
 colophon-47913={run="0v8q22qxjrbc1mpsmfvdp13iwkjxp11cxs86h2b7b9rjs0cjxy6s";doc="0s2kz7q6nkwc19jyl32rzcbbcm7ykhkglanx010xfz08vgirk1pz";source="1z2dihgwd4vbk87n0hzpipm2359fwl1z13fjs4g9r5ys7iv36wsq";};
 color-edits-56707={run="0p465bc127rlm53xngrynmrxswzmp1xsivkfy3mj22h4ij6db03c";doc="04zfa0jryyw79rz9s1c0yzr1i8zla7ivvfw701f8la1rab7z6q94";source="0279n81xyiz4ipjbr1jdl0wipfy1lkl18jx8mbqcbwczw8k4fbn1";};
 colordoc-18270={run="1hay7bb0xh2n2j9clvbn5ayz3jq0yjaixi35isdsf9ysvj81rx0m";doc="14bw1g3dna2ykyv4fl32gvqjs0n75vlfpc9icdk09l7zhdspsvfn";source="1bssn8rjrp34nm6qhmzcrcn6a0ah9lv5n94d1jxqhhaj4pmimd2j";};
+coloredbelts-68747={run="1y4ds4n6b6avqaqbnj5yh369bnp1f0w4mhnzkjvibhipis7n11sg";doc="0svl3fr6df2mvqpf8gfcb2byj16hbf2szdnbi8scbvrww68jmldr";};
 colorframed-64551={run="1kys1kcq1j3c4d8mv22fgdw5l2c9ar3il8cc65w0lx4avbldw28r";doc="1xg0gbyh0ay38yk00in78q7mysnmlr4maxzv5lw3s88l0adykr8h";};
 colorinfo-15878={run="0ip7py03xrsrn40cgkl4dnj3q9g0f9fbw71c9rsg9j7vl82fdn46";doc="1185m34382n9rk6w81ppb414vl77kikkhwvn78aahlyli4il51l8";};
 coloring-41042={run="1ld6gknb8a59pkz50wlil5p11mnv6ss0zsjbajbw63dg0zlwaglb";doc="18y8apbkh7yqzxrzpraqhd76k93xnvgq5rana8lq4xh5z3f7skjq";};
-colorist-66450={run="12llis83f8lsp0i7gs52pbyjrw1b7pygx4vnw3i4xqmgl0jfgy48";doc="17lv6wkdc5vffdvx05dzbvxfqmkwbcqyizp0ax1s2p3y053gyayr";};
+colorist-68440={run="0wk7gllr4qmvmb3fsf9basi922ss6wvbnx44yxs0wladnzkyfdhg";doc="1kpv619xbwd23lm6i4dy90plnn6yh288alyz771qfzhmj1a7bvy8";};
 colorprofiles-49086={run="05nf7y425f8ric57c3afq7ymc7ndxcdahbx9n32jnaz9j3qq2ypl";doc="152vrbm5km4ymj5h41x8cjyypj06g4xq3vyvmgakai9qz270dvyz";};
 colorsep-13293={run="0nf72pf2bjn8pcps45sn5dcjf1dkrww9wlpp1xbzl1h9i68p3h3h";};
 colorspace-50585={run="17pahq2wh9vqwpkaqkzc3ypcz90i9qpmw7867qz4k8a87sp7wgji";doc="0g766c50w7xpfvqpp6lxjc6lm2cyr8yl28g7n357j1d1lxgnv0x7";};
 colortab-22155={run="0hiq8wgqiwxnw1gsrymshkldspdnizcci56ihn22h0hcwz76hgzv";doc="1cj84k7cl6cww25yy2lynjrbicn0qy4y09rh6dx2zq19972fggi3";};
 colortbl-64015={run="1zcxbq0sjmlixjg5vpp8s21acfnxwmip6xsr127jqdhl27mfn1f6";doc="0myxh9h2riwnbg8n1r5690w7rpvfry5n7brrnarpwrhc42hykcz5";source="1hwks6bpk5x9z4vqj63fwg2lzj7h8mgy3kk6601vynv5ck0af1gn";};
-colorwav-15878={run="18svrj3bfsa8m5q3hl5njc8ac2n1qw5lk01qlc45by8vd0y55s1g";doc="0jprx7kl9vi0497xfnvrswcx5d3ij9474iq2xqvnl5yhw4mz0v49";source="1wls4ixd2q85yawkm0brbwiiipb4avgfjgi2mi8ix1hwawycqacr";};
+colorwav-67012={run="1dlh3ipf98nq5m34rj7naafnw9hhrbljij721mw57rbhbpcyazgr";doc="05f91rmf1kpdkfl0dgjag5cq5xvcflihfi9xj5y49nh65mq01w99";source="0rxiqp1q49l1dlr2npbb45jygp487zhhzjx850f68bw5vq8wz9j9";};
 colorweb-31490={run="1rz9ay86z5bf8m4j5w5prvvk1nmlaakj3g0qfsrl0cdqk7hwsfsf";doc="0vzcwhbq1a6pczvrv21z0q3y1akfwm45fclf0857c8jvpikkzb1m";source="1z0h3l9gdxsg6lbw7j6nqhafxq8b8smcn4nmq7ywdzryp8b6fbw2";};
 colourchange-21741={run="0y8r7789xaj16cdmsz4q0zyq9l09ihgzzgk4alnggsyx1ny45ybv";doc="0zj9b8xcnjlvadams6a2z3pvnzjci5l10kran8mg79ncvzq386cj";};
 combelow-18462={run="0s14rmmv44js6vc2l8h7gb9f8h5w4as71qgxbadaxw641xfs0ys3";doc="0pwrqhd8m7c2444czsllk4sqai3i2scll94y6qy7m51jvjycyf26";};
@@ -785,71 +804,56 @@ commath-15878={run="0k3s00r4l8bypv1166p8jkdj1wrx4ar4w0y1fggmpzivqicc02g3";doc="1
 commedit-50116={run="00anqgix8vydq5ssblg5w5i8pziy8fvlva2kpwy5cjjiqgpprcd3";doc="0vvnkp8r0xbsyvzps4a20fr43cj2559cs6mq7jhja6jzvqqc6mic";source="1kzc8i6nmvw7xwz9fbfanabypissbm7hnmmgp2m8r462ywzpa79c";};
 comment-41927={run="14k4y4abv5mlhn1i8f90bxfymp9vz0aha4p2gql148wj2hh7h96m";doc="1589g0dah13lw4p18cqprhfnh1184m79ddrgvc2l22bq6vb1dsb6";};
 commonunicode-62901={run="0mx8nsyiy7jbdqsjc19sghifigg06is99sys3xg0rr451rxa1kyv";doc="1c3xabrgpmff2b3yfrxj7sbdwn9jq71xi2s0v6329rwjd6vifwd3";};
-commutative-diagrams-55526={run="08jd1dzi1y72dhpwng3p11vw8jl98n9h9npyypgc58n2djla8nb6";doc="1405ya2nynfbzrypjm7i9grp5k53nvrx11wzg3xy82z32cvds0y3";};
+commutative-diagrams-68044={run="0vkcb6gbzfa42kxdz3g77phqi6j614zpdp0aiyxqxvxs2jk7ncpi";doc="0hbb7xcki43274s3ssjqw976cv8lmyn1gd4rlx5gnvc347r2clrv";};
 compactbib-15878={run="077l73vb0rcxy1n51r3wmcb7gma6nn3xrl543a67n96lpp5xvnnk";};
 compare-54265={run="0isr7gmskv55cr4f1fa7s478v6fh65q9ijxkmbpxj0448g9817w4";};
 competences-47573={run="0hijar81j2jpwk5j2hrgaxb1fnbk6qh2qb0qbbmhsqrdrfcl6xdl";doc="0ywq9f2a1fb584kpvzwg8b16qc7bpcn3dzsscs6ndqbgcy0zc2yf";source="01dccp2wqdy52kp79n099v9lh1vfambg0b63amq37ac68pwn3qp9";};
 complexity-45322={run="062xi5wlg3axhrzc9a6nj068z7nskb7qwwk2wr0fzvsflqa9cp0i";doc="0yzdyn9j1jk0nsw0l4r06cr4brhz1f3lfxc918zalx6h9wnkxi2b";};
 components-63184={doc="04yg9hq0wcyi1ag9y9m2fnf5h3n4fdykiwljgpw0kyc73bfyhq1m";};
-comprehensive-59099={doc="1pa76hkxfmms5h6y6zyg4l5wrspprhnycfdigby8302srx676vhi";};
+comprehensive-69282={doc="0f1w8bxqapw3l0nywdd36lj0y10miqvzzwchxs2swgjlyxjzbspj";};
 computational-complexity-44847={run="10as8msnqa06dp3hp945m42rgbaqsja8z4sc79x7n77z6qzmznvl";doc="0dq56zzw1xzzpm1rdjkqwhr6v93xiv00c1g2rmlmfj5dnbzng7wq";source="02mapvsz8j1979gy7pmwkdr6wq55v0al71ffl9bi2bl7f5nsz0vc";};
 concepts-29020={run="18vjncdrbp7m7m08dnfmk6sgv79jx83bc4yvvcqb0j9mn9niy1f0";doc="1bq82dgsl6gqnrs88dzg07dn4rmc4y5by8122zqaqpdrpjxhnvax";};
 concmath-17219={run="0m98kyji3v4gg1a30phmn7fwssnnbdvyjxvfpl36lnljnicpg28l";doc="1392wq35zidk71vxybrwjq79p2gf4spcv0qqb07dsgapbhr2g0aw";source="1zn35da4jlplqg7fb5ibzaah2yh1cwjqvzmx45jxg0hnsc7xmlfd";};
 concmath-fonts-17218={run="061kfzds7clbxyq62ilxwcrdkfghi2lx8afik7vi9gg0hysbki7y";doc="1x6wb92k4da01sv8b35p3bly9hj46hh8k9wr22m7lj3rxnndnpcq";};
-concmath-otf-65683={run="167dw3vywjsi1mqj825vlx7j1qagqkf1dxvrz4nadbx4b78dccdg";doc="1jw4p56ign31ks5cdmay4fd1h5s0p3plm7hi3m5a0033wczx0yqr";};
+concmath-otf-69005={run="1ja0j5i4alkw45z0gyw61vk3hx2lkrhcgfnmy8l2nm4kibif04k8";doc="0ynz1mzciljg3jiz6wpdwda8xrpnimdfpbrf00pm4m786cdz1hnc";};
 concprog-18791={run="08yr8yk9gp35d0nvh54ysgv61s062vj446fyb87n8jipfm49mj2x";doc="197p2bdn1rqmxva56sagvb1z7kc8gwxr9zf612r6g8yb07xg5riq";};
 concrete-57963={run="06m8d6z5z3dpj9i0nvp50g6pn9j0m4n0n1j3w94nml137qghawyg";doc="06z5hh9ksr9jpkfchyh2zp8b827klb4v282ipizrm1dvlv2r1603";};
 conditext-55387={run="0g6clck3v75yvg7gv42w24zv18vi5jcg1q9k663cxldix77lkgbc";doc="1qc7w7xfpxarb82hf66f3i63v7ypdybqwg5g3j8qswj1a39cy1wm";};
 confproc-29349={run="1s4mv0g2x5mfxnkp0i29wa3ncbx9fa05qqf734fjppdzsgic079i";doc="021kbis3c73gnavrjhqa34fsbq5c94lmjym2d4ny2wpk9xagh994";source="0dpghxh9mq2sr7aqgcj15h6b4xh7x5hvdzph6606izpff8ac7h8c";};
 constants-15878={run="11naj0z8ppb6h07r7cff0lcmr8zgc29kp3x7spi60zi6cq2546gk";doc="1wgvq0x1kjgd0bs0024fkh7wis9aw9qryd7y0igrbgdgc722pjnp";source="01skagh044v62vw12kmibgd6y42z5r1glrsvi9y0h76vs52jz7hr";};
 conteq-37868={run="1h7b98qw9hl73gh4zidy59z4rly9afnvmah75jgvh0k1v1hm09df";doc="0kgdggc8gpd1h7kdbh3ala5kz8rs56bgmwgv9wvxsqx4sn19q2fy";source="1y0g7sj696d6qhcw8vrpxr8gwik54slp7lijbxz64ksqbw5xjqv8";};
-context-58167={run="16ba0cbqz8w513yijaf8ka9zinzakgvbkpibhilnvmlcsxzcqsk3";doc="0r15aa12cm049ly148sd48vaigqh1z9mbasjf8xc21ravq08jq16";};
-context-account-47085={run="1j1rvgcznn8c637dayxpdagpwjq6fbn52sjmrb0wn4gd4b4q3nk8";doc="0lfx6aa235jx7sz27qh0328n68ra3z2bw3dsh5p2wzkg1wxbaa6g";};
-context-algorithmic-47085={run="10rj0ac7gqzqmqndvapnhn0jnm2538r5bzmhnfqia259qs2p0qj8";doc="1s84vb55yhxlw6dvzrs4y6bf2cvwp6pp0mhy778k5zyzh2kcfzqy";};
-context-animation-47085={run="1cy0jc6wk9kfxahndf82wwns4dhn1nbrxqx8v5bfb57m23id8vff";doc="03mdp7233r9snsz5g43h3axyhcf4vgpivfhfv4fy3vh1ya5fx8fy";};
-context-annotation-47085={run="1c2jgc8r9b0inqa5cslmxhrqzh23jkdn9s9xq1q3v5qvlh4vcn73";doc="1a9ba8l6jl7hjaiv5mmf5jvsvxxj0y6j2s222qaqa62crcbqc9g1";};
-context-bnf-47085={run="1g8gdrqaq2iyc2aj4a3a6abs3vkcbkh44y6mnbjq55pl45ja8wp8";doc="015wnsmz8fyshyrva3n31iz6hbifszi6cxgixlq17nxkpcnc5899";};
-context-chromato-47085={run="1qf3a4p63zs4sr5acrfnmxdagf3x04l7rfd9d7pfcmq261fqsy3z";doc="1w807zh4s7bbsx16v3h5gqc1wg9v92dkg9anysbsh1m9rc6hnhri";};
-context-cmscbf-47085={run="1l8c4jcrwmsacr712zql2rp1sirjn0dwbn2r0w83v4fhrpyfifl9";doc="0nim43d7b7bv8xmarilzhm4al3lngvlf7cwazhkwpg80zqzavb4c";};
-context-cmttbf-47085={run="1pr47vcz2ix9s3nvmi015bh2w52gayf8962c025vhh9brinxdzsz";doc="0m71dv1rj1dji5skq2pyvlkq0sz3w9lyhn076nnmvjkq8vh9gkpk";};
-context-construction-plan-47085={run="0q97h6lz072gfbnlv99r570kkba82qyx493flln24rrs7js5szmj";doc="0pmvwb3dax78wa6v8amadxr36fs68wf3rq5k54sfczxf6k93sbhw";};
+context-69131={run="1r8gkrrrq1ps1cp058m1jv8922zsx3hw6c5vsmxpbwckrp5sirwh";doc="1nh2yf7vb800cnnmzic5hmy4w5kxd38y1py1xjg7madphb9zdc60";tlpkg="0vcs8ffry2jpxad68sk0mnc8p0mnxifbimsj227lkn3d5cxkrp9j";};
+context-calendar-examples-66947={run="0asc49mn24ql4fk73089viy3s6wff865xk8af7h67ffsb5qjnld8";doc="0wza057wz18yf2zl1j77hddzimwnraw5wg1579ncksywvhnmx3rp";};
+context-collating-marks-68696={run="12vqvbp7ns9r5nc7p7nrlsll3jp3hc4xi9wjyjq8lrmd8ly3v26w";doc="0nawd3x4rl73s4mhpq2wd1sqa8i6k2n0a39sqcaf21zx99mpiqp0";};
 context-cyrillicnumbers-47085={run="1gk4ncbfzilj98s7k7s43k6vb3il511k434aj34fsvqh5x9x4aw2";doc="0f7r9qgfc8h92jprjqa24q4vpz4bqrrns3glhmwh3qmk1f2gyw73";};
-context-degrade-47085={run="0r7bgy2fliqhywgqc1blcabmhjz3g0ys1rfk8mggkh7908lvvlmp";doc="0d0fy68hk20az7vh2z87h76hc8x1hmgfl1r5saxg54l20a31a96j";};
-context-fancybreak-47085={run="00zdyzfb70fvgrdna9z4958pxhmjv85jxl5vhfryprqkrbw05pr4";doc="15igbqj52g2ybpykqzkzm8b9gqayccip5p6srv30458zmxhci9jw";};
 context-filter-62070={run="1vj8kimqsmn9xhkh22pywqbn4sal5gxpxjbcbv8xmxcrby02gsfn";doc="1f6phdqxgvdg9c6f37m654ha6i226d88i81147h9x6sh01i7qd0b";};
-context-french-54215={run="1wdn7ajvmfj413x51v0zcnbibr4378s1sla7f097xllak9iyd9yy";doc="1lyi3hwijhc0jl93ygldpjm44fbiw4c7zky2ydrm4s56l3di2sil";};
-context-fullpage-47085={run="0i7cwd0q9fcdnh58w6hgdbnxxwv8g01nk33j7naqwc0f087az7qn";doc="0pyhpp94adp1rfn7pl7fwa03n119jp455y1brmsww9wfpniz60di";};
-context-gantt-47085={run="1x3glv3nanxic9p0xi2dqz6k5awwbhxzzfnj0d9sqwkcr5gfa8h0";doc="12wbzw4j11fsx412qjjy0g36hq6db7f61937s8k8qrqpgpfjaz4n";};
 context-gnuplot-47085={run="1pahxhbliz6fsj2va5pgwcs55b3rhsmfnjb9qjxkz3gqzrzdkfdp";doc="0l0qp9c0yvdrf8398wyac98ghrdc86lxgzr5l327gmgnk8572gxn";};
-context-handlecsv-51306={run="1xx7jq1lqzgnm4jicc270g884qrnsaxg2cc86r2zh5ar584qv9yd";doc="1frlxxqd93p2dipsvg1gi1g3l4b57wgwz9j5r2f31vn9p6dxh06v";};
-context-inifile-47085={run="0qakf92qk90nnqnvvada10z6r49dsjyq25mcyd1742b3m64blvd7";doc="11ds2hvs2mx7xzanzpj9il4piiqwhqj6gc00r8g618m0s2fvkp5b";};
-context-layout-47085={run="0j7f5krz8n3192z8iysr7cc8hz0v1zw2gidd9ag0l3ifxl570hn8";doc="16ava246cbx60q43brkfgbfw1vbyszqv42x3k027hlzk3hv4vahr";};
+context-handlecsv-69186={run="17sn4nq1fn3868xwnlg71fqx8cjfq92dsiar091635cl72f4fra7";doc="05svrhaz23sb11pp6kk7lchcykx5b9b9399368k7pyq7a1p4w2sk";};
+context-legacy-69173={run="0j18agzfhwwzbdnqavphvrp0lpji2bv21qh28kcvzl269mgjgbc2";doc="17wsgg5zfx0s96wm2l9zca060z6p3mj88hcrw07vy44imxv3gyiy";};
 context-letter-60787={run="0bnd56v120h3c235n9v2h6mzvmd6fy1g837gjim5fkkqd7jyzp2q";doc="0l4vgrpha5kx2990kdk4pdfljznlczlji0fxqsxs292yb3yy5a4m";};
-context-lettrine-47085={run="1ab6hwgnl4s1524li669sgn06gsvgc6vdlxajnbxj7gby4qh9fr2";doc="1x2plp67i8ayw7v3nxf9njlj6fpwy0vvp5cd3k3vp9y0qf6is6cf";};
 context-mathsets-47085={run="11r30c6lpcvkx7awgm70cb5darl90fvpnf37hj2mb7h69d281hv6";doc="16qckniq5v52m36m05bpnqypfz2jn4430n5x5zazx54j8makv827";};
-context-notes-zh-cn-23171={doc="16f2ax1vwz0cihiyl9cg0hsgl1la6mgh6lavw7zx1x0kljz3ajl2";};
-context-rst-47085={run="1lcxad4kjhdgqny5qcvwdd968wkls96qjmi7m8yrla0nmr44y5gp";doc="1k31vj6wk18ccrnrhw46j98i19iprjk6h770a2y9w6710zlw3pdl";};
-context-ruby-47085={run="176si5c7a44r7j23kp5sdg9h7yd5dpf1pp7rzivbhhgiwqinx7r3";doc="1mnzdbcaccdylxc47s88wpq25xj867j2p4rziw5w4pbvk88h8a02";};
-context-simplefonts-47085={run="1kfn5dl43qg64f2nx319xgxyl71wsxq1mvfxr20a9f2w0hvkvwpp";doc="1wy9qncb4swqxhgi263pv1d6f62zsbvfl9lajf0jljvkb1888167";};
-context-simpleslides-63903={run="0jmcyimv4jfq19lisi43r4zxrzdfwn32ivy5akzhhp1amy30927x";doc="08phplrvn6xbfh19s17r58cr2jwx88ism2qc28rkvy3pfym4hh25";};
-context-title-47085={run="1vpr86mkdd8ib5vvdak3kn19fi8vxz1023ld6axhwq4x0cxzb0ll";doc="03higvjmk1b400flddaxdmk5pkfq6vz6445q53qw86px82g17may";};
+context-notes-zh-cn-66725={doc="0pdizaybvxvzh19451x90mj81ql98q91f6cj8mfxwxa0mci1b9p4";};
+context-pocketdiary-66953={run="1pm8zaypfm575ryq0jzpnwf5p9zjg7hzb6lnc636cf16y97a1vkw";doc="1yy38pa4m7bqfb0r1wxj1g3zdmwzgdil35g2lw63ww15y03k7w0j";};
+context-simpleslides-67070={run="0dgmix9w576vxmffbm4digcp00vvdgmdxmxwjzrrkici4rq31w79";doc="17djxi04rhg61fjcmsz4yjp7mnc7g1fbfb9mmkcf7gk8dwzrvigf";};
+context-squares-68545={run="0x0f2f3mwqyxaw49yjkyql8hk2mck2kq2mm842vpl9sgmrgjb8d7";doc="1d8z2l8r29c5yklfjm60bvdm8lchp17w60qr38gjdpx334bshyy7";};
+context-sudoku-67289={run="0fnzvzpn2d24hdi5g18f1mpaqkyrcf8kvkprqdz1jvlkqld82kd7";doc="0dqzxcljl1mn7qs7hk2pahvc5791m4c911j5dv85fwaladhjv9xb";};
+context-texlive-66924={run="1fg95ihx4wbm38j4rm4p6vdaiib6n7lcf43m444r4nb5flbrbv8q";};
 context-transliterator-61127={run="137wjy0whfbwp95h4grypwxld7kxlx9h6l3bkd5bpfnqhg70j05d";doc="1snnrk0h6pwg83qzsv6mk3n5fmirk6rxjih43rcs290amkx8i49z";};
-context-typearea-47085={run="1m33wbnajm4s9x098a72xsg38sil61slpp1kk25f9w29vjrs18aj";doc="1sblwx44pardqrp265xzg5hjpiflgic7k5xfai0q9nga9qi56n0l";};
 context-typescripts-60422={run="1vvhd18qd6vka9rg048arpwn61rqw3za116k2yqfy4lnp2rypk0g";doc="0pll9scpcsxzwgsy77mbpw4s0yv432h5p0av70kr81zzskfxabxd";};
 context-vim-62071={run="1jinagfnv3aghjn8gsack6zl9d3rcycwqmxir5jdjhbw4r66yp0y";doc="0gc1m894ad0y8l1vis5bc9n6avg8npzlqa4xr20z401nxhxmbv6h";};
 context-visualcounter-47085={run="0n20r8315py52ghivwy9kh7g7yj4ixakmkn97phw1fxgz21jk6qg";doc="18ncq5d4chmnmxmhazbjh9ypsm4c3577vgcmnx0y1pmzgb2g8pn9";source="18yyv9974cxzpw45rzw6ia2jamrb07bzw6gqchdprdjs0xmhz308";};
 continue-49449={run="0vwz01gmbid6b2aj32qnz1xrlk9h0nicjv9ix1rvqdad20m1i4wa";doc="1mzsj70v9f6srmc8ja62pph9j67p644hl54fx6nyahvr2h9vdik2";source="1q835904qai3r49yi8hrfxkh4bjf6913qs5fd2dv7myp1w93j5ir";};
 contour-18950={run="0xb8a0y3jazrq5gxfnxjl7qkyaqjnmyhjshgngqcsrw2sq4j4li5";doc="03rxkl9vhhqa7gpigar8w2h78qvx4k68chhf0881ws3bm6lg15sy";source="17sfl4npipzgc7jwqx740nny7fnd8bv8k4vav9ds765ky1xcs521";};
-contracard-50217={run="1qvpz8ybjc7yx8zx4kzcpjchvxrb949rqb3905rhl61shpqv22hm";doc="1jg8kgp9wvxksjz9kxyh3qqxhgjmalkpj8y004qvrxna2r2idj50";source="1v6ffg84czajnl6p6a1j8khnfmzssjkhbndz5ajkww64iiw060i4";};
+contracard-67201={run="1qvpz8ybjc7yx8zx4kzcpjchvxrb949rqb3905rhl61shpqv22hm";doc="1jg8kgp9wvxksjz9kxyh3qqxhgjmalkpj8y004qvrxna2r2idj50";source="1v6ffg84czajnl6p6a1j8khnfmzssjkhbndz5ajkww64iiw060i4";};
 conv-xkv-43558={run="13clac7dhg2p69ccv2yjzdh64yjx02y0fb0imx9lsd0knnb1j3aa";doc="12dln1r2qyadxr4cy3xbwn18s5y8yxgxid22wpb2i42n5qc8j1fy";source="02hz64vbcy7vg363vb86vydaa29g5cgji2mfpn640dgmqq0s91vb";};
 convbkmk-49252={run="1hb4ahbgihnzqmcszxlq67bsiqprrxa9vf25q8yz31j70sg7s18r";doc="1h1iqcc1rjcvwg9p7xg5zq6sj5bi68s2cknsbwr6dbkx25ihwi4i";};
 cooking-15878={run="053wbmf3xrhwjxp77f1myfvz3f474kpk626p8gds939yx50jqzvs";doc="1db5wxixparr81vanwkvg097ll58fqpp3qkh0wz7mbqjkansp6km";source="1gka18njp7ipa0jp1527mhig43hhvz5bcdpvs95c61cvjrmwcdm3";};
 cooking-units-65241={run="1ainyz58nk9zyfg4isfgjk3g8gjw08ri8d1x9kqnymdyplxqankj";doc="1r21szkygn46i5263k6qryb1fhg9va71f3dcqxw1dh3f8f2bpcpw";source="0cvfhbr7zjcc8d5r453wkgmvnqwmx3qj0gl606sgrz87zhzra842";};
 cookingsymbols-35929={run="0kz8aaf7bp0y2ph0iia5lkrxnxch9r63iy7y4zpqcawh1ajl10ji";doc="0dws0sdcg13jpz23zvkw6vfnc34qc1s464nm2nbdybhjwc9gdbdl";source="1l1jkd6mcxdldvjyk9myig4jsi89mg6n4ab6ymq5lqf25d260h0j";};
-cool-15878={run="1lakvsarqhicdcfx306xp94m4hsypdabr0fggakqv7adcwmd734j";doc="00mqaavadqb2m2rf8j00z3dclflk191gd70qb1674pyd0a82z2qv";source="12r4d15nzd3r1dxnwz7vzgmxgpl12gkq88hdzqwnbpan4y90p9zh";};
-coolfn-66234={run="0iwgh259hsxyp6353djl77cv30bxbsy59qaimbi8d6arr86i8lqs";doc="0m2zwx99hfydc9ksbf26nbziv4v5c26yjg7i8xdr5j800b95iw59";};
-coollist-63523={run="1lvlji0qsa1bmr0737ngdkqdbvdxfj3cb7kg4lhy9brgjn229a0m";doc="11p2s7wjrjdpzpgyhn4jnx4d98nbmbccbn6q1b8g3gr8h4mqvdnx";source="026mczfnay1w8m8wspj4013bxd5xqis1ny6g6ifsyl1gb0665gjr";};
-coolstr-15878={run="1ivmy6jmjbbbzfakfz5ib58qg4xd2pyka90zskzcwzf5a87r22ih";doc="0pb30nqgfijdkgsmddb14n6aviz331wab2cd32vpqsb9jnc4rz3d";source="0fakgk7g7c9kkgd0xdm9fpcrnx7jsczddbvypwxkppll2wfsnamn";};
+cool-67013={run="0sz3n82js8fq7fiffyb53ib1y49k0pg6bkbzgnzsk698y5w34v13";doc="1gpa5im88apgfqyv1l9g4mcmw6fmryksbx4nbldwlwxdvkwfwdf5";source="0ds25c0k113w365f0nylliiq1h76i753lfkccbbibs41rp2kg4p7";};
+coolfn-69007={run="0y25dmrbax6wxzlrqmp1j3h6xnvvk0ls4f4rl5a4a3hi167yqrkn";doc="07xjbc9bj6chvjqv03p1c37bbqr1fjpkq468sx6cp0q6p45z17n9";};
+coollist-67048={run="174l3x19lajwfghixzxjizxwqj8z2q9rys9wcly79gs8r3pmbxwv";doc="11p2s7wjrjdpzpgyhn4jnx4d98nbmbccbn6q1b8g3gr8h4mqvdnx";source="08196xxbx6fvhic3a9p8bwrr3ir4v9ikl2vj8z97m9zryrzjv1i3";};
+coolstr-67015={run="1ky8l5g09cj6731i1x7fc8chp7qhpc35xcinjrajjbzfjr637pk3";doc="1aj48ym4rykbz4z5rhfch5cfkyj14x8wngsvwrhzw0m58hpfpn4a";source="0sxdiic0xcr148841ngzdmda4bgk9ningsf91ar517r2hfh1178s";};
 coolthms-29062={run="1z62gl39f9cvmwap70q05jml1657jxg7lvq81rgqh878z63d0rzi";doc="0zqpx1c0lcrkp1zpwl776hd8gln7i5f5m5k5kjhcwxwngd8w8df0";source="1bir9kbsvayk3xkchg7kjbwqkhda81vay9d70hmqxgwpa0l38j6x";};
 cooltooltips-60201={run="1apf2qvfs606nqnnps2rny9ly6y0hs7yv8injrbbk64x3nxk86xr";doc="11qjqqicakybmnqz4vx5jb0cqsj8gw86rywj7ycvg96s93zkh12i";source="1spsydk6mn3qzclav2g2al20sdnaabz9b0f01gq95w2qygl26hy6";};
 coop-writing-61607={run="123rbingcrgjg5dyafciwz8wm2bpl9bz9w54pi2jim87lgibnf92";doc="0jqrf8pnpsq8d432s7b3qva93ydf8gng18fn3drfbzsvb4sqaf97";source="0yhynaxvvhfhnx97p5p12xf66zng989kddlfw9pp6sv5alxfnvaf";};
@@ -860,6 +864,8 @@ copyrightbox-24829={run="0n9z6dngf0z98bnzn6nl8yvy7dh1jmcdbqfxnzxarxzqq16f99ch";d
 cormorantgaramond-64411={run="1jdqzw1jd0r0qc4wnhm85kg0nb92dgvwnjyqlxz67lb9wgwddlk1";doc="0j6gq9xk9p2m8kwqvzjsh0s5z9x4q6v8klxygdahwgahvd0n8dl3";};
 correctmathalign-44131={run="0dvgaqy8pkk3plhqlxgkxkiwyhfzwcyn391grbqv764mvh4iar69";doc="1fd32yzxj3l4sp5cp9rnwv3175jz5m5hxwlfm10x282g44l7mjid";};
 coseoul-23862={run="0wqxvh5mnrl59ry0qahxzlfajgpp0yj27h0falxnr4m5iygv7699";doc="0l3z0fxsdlln0hjwkxf9ka9hw8zmmixml9lfy4kbrn88xq6z62yw";};
+couleurs-fr-67901={run="1479gy549yj0xla35f7ryvh7vkxppisvi4kz7ji9v2219hx4vkg6";doc="09fh8d9bgh0gmabiq0d9l7flkk46w8yzqksnfygmbprib15b65ck";};
+counterz-67335={run="1rad8irarp20xah97ppzipns4i2v3smd44sbfi2jy5dc0qibw0y9";doc="102axl32lgrdlav3fyzsahkcikmapivydbfwm3wkib624i1f1h95";source="0f8gspf0m2b78fr0jq7n4s3y0f80l1pc3qr1rzjfs6xdrg1nv633";};
 countriesofeurope-54512={run="0387czqiyawxcjqh22czyd8f7y55kcrscxmp28rcm8wqqdh2ra0z";doc="0h06f5rpizsdqddqdvvvh5p3nhm4y5aixjnxl8s0b90wpcldwrpg";};
 counttexruns-27576={run="0qmm8902apb9ks1ik1dxmzb3ivkivpj7a8f8mkn5xdyxbnqvm5pq";doc="0kpasflvbal7x4r1ni3jf30fh7w6wi68109m5ajcjqrjzxkpgmdm";source="0840fyw71mw3l5k5g01wd6hn41a079f83wmbyg64f4yhgjdjxjnf";};
 courier-61719={run="08g6lm12b0k6333pxcaqdf67v87fz5mrqp3jgal8qhrls5ym8q6r";};
@@ -868,18 +874,19 @@ courierten-55436={run="1maxj7wsjqh2ni75pjpzsbwh1f9abndka1ilaiwik1c21kgb44g6";doc
 courseoutline-15878={run="0mwv6bslzgm5ys4gl32mxcw42gkpzwkzrvxk6934682v85qi6f4k";doc="1k135zma8aacd0mf6l5v4zac2blqzf6z5xa40094by61455x48ha";};
 coursepaper-15878={run="0n8gikcli14inz5q85n6k63yg6dczlpi837mbxrv5552hqzpivwv";doc="1d8k6yj45x0wx790y46b46nhjb3zvv2ncbkhlzckq71fsi5ayp32";};
 coverpage-63509={run="1739rmdrj07q8s9xpxarwwds13hciyv3q41p18cm7md8qrdd74xk";doc="19hw1mx7ghigybh23b8v65y0zx28p9armynkw9s7mgpbsq0wld32";source="0spllq6j5rxqc6a96x0dx3n7skm4gqpp6fgas9vflywiw6i5vk75";};
-covington-64241={run="0d6v101shdwsawc95mnkm00ldxsnggwial5j7h461hf9fk4308ck";doc="037g5492b8zid3fwdbpn515c1jzl1xlzl6ygwx1r93ascrwhxgam";};
+covington-69091={run="0imdahq466zkhjnxgnygyq8s3g2k8qanm8v9k2z2fcp0hjwz2rkx";doc="1qlxm07hw1fbch6acl9rslqsl1vh1h5sf41qpmnfkwy654h3iqv4";};
 cprotect-21209={run="016z5zz8njkk2cra768jlh2s9l3r4wmn50nk3psmk3v0i0cy0197";doc="1wjyrb0z85yighkw9a1pxxwilp31c5fjra7y07y0v1z20q6g3rlm";source="0lrf75hvlp6jpwfppkj0dwv7a9q51n897bwrf3gzwswb7icvqnf2";};
 cprotectinside-63833={run="021581zdl2c4j6crp9cnrnvxpwdx0jhhx5ab2ax7016hzsxff8la";doc="0m7hhy2wlagymkq0ckr6yhiav02y7b623gd47wkk75f48rm0lbdc";};
 cqubeamer-54512={run="1r63ahd6m6ll0phqaxc02hnbrf3f6xjdghrhn7wdqxnf8n9k34ff";doc="0rgfjw69is9i06blv1dr2ki6d8lgfwg3w57r3620r7yffj7z9hpy";};
 cquthesis-55643={run="143w42d3xw31dy8wdpqx01r8q9vs2an1ixnyil8n0q0af29j49bs";doc="1b7k2s3ils5s5yb3fdd6h0is494pss7s76awfn3dj6yxiaps5zvn";source="05gypg8zsdpfhp11rk7nii2vdw4rand5lw6ijkm23lbq2b5nwvwj";};
 crbox-29803={run="0ni16ldwni2gyzlivd5ii2fdq15h6np4mv73raa5g76i5rw42sbb";doc="1yk96bajna3ihvyhx482jrwiccbmqdr9852w11x00xkcvvc6azfp";};
-create-theorem-64104={run="0jrrf47vp7r5alw9lq1b0hi0zpdkx1hlws8lva2jkhzavyapcmmq";doc="1j4m710kzvawd4zvppq4cr0y3bzmprb7ps0rz37g8spcf78c9x1m";};
-crefthe-64498={run="08x2xqdw5zf7kbsrhjhg42m4dgins138r3fdx9jjm55smlz7c68d";doc="1iax200inrsiq5xpxh3mq6za6gqgz75zbnbqy8iirp568ylb1nxj";};
+create-theorem-67712={run="05daimn1g2v9i0qxp46nq23m7a9hsrpsqfgx6f3z4c6jbcwnmqj7";doc="0bsff7sa7d12a7lbv3aqhkj6mia3gln8zvpc291d9kvb3fnnzy9p";};
+creationboites-68087={run="1mmj4xavpaqrim5w3cqs0nkrfvg23578nas2ndnfvy3zgjywwxxw";doc="0xsr0nvs95awhdjbhfd9baj7cchf3fx83f4cv5r6sb0l4lcwg14p";};
+crefthe-68813={run="044lg08mg5d91l25la181x4l449mgx8cv47k4nww9yivhzqv6nlh";doc="1i891qa4lyhzhpnsfz1hswn3fh7i1045qiysynnkcbfai45f6y1v";};
 crimson-64559={run="1k6ff9fb5isv2mfm7zvnqziw1rlbs8qmqrlbixq33nrab24kb1zi";doc="1fmfghyxbihw6ggf4x2scx2g7464bwqy0yql38m4r0vmmjmzi34s";};
 crimsonpro-64565={run="16jz8i749gk7s87h2b78nz6cclmgvfn35kh3869rsf299y4dbkx2";doc="1y8qngb1v6paqr643kh8sdipnp57lkbqwbk62r8nrxps2cvw06g0";};
 crop-55424={run="1hnf65q6mg5fq75l4g81zvp4qqdb092zb41m6nl3zw2cvp8gal23";doc="1w6ql3bnghj633ar1zwbv580py4f1fmdm4vk7pa3q7vpnrwrgh5n";source="15fxivp8d1xww6j5nbfkmsb0b2c2ldmkdy3ikw3m6jjk269nwy4h";};
-crossrefenum-66032={run="04zx8gwgzc76fsq6kmqy08gak2fqjl5h7d0d80lr5yvmq6aj5a4f";doc="1lsymlry86jnzjifjsnwz0swmksbv9hfdvjhy2i476i2ayvpdv7k";};
+crossrefenum-66014={run="04zx8gwgzc76fsq6kmqy08gak2fqjl5h7d0d80lr5yvmq6aj5a4f";doc="1lsymlry86jnzjifjsnwz0swmksbv9hfdvjhy2i476i2ayvpdv7k";};
 crossreference-15878={run="0xc8d3g8j86dzpfxzfcildiyk8zi2apc9af88v2zg6zjra6vra1x";doc="1iahzjwns9zapa5y7z6yy2wjdcy6qiqrqvp9q9v4ky2zgsf7n5pi";source="0yajk2dxnsfy74r6a50zs4lc064aha0lzfqp26gpgnsx2h0bvpix";};
 crossreftools-55879={run="0pdhi9yij4n6bwcwbk077sdvwi1v8ww51g2r9ssfnmvmxs4zjw27";doc="0q80k648b967q9gcy7c3lb8ywk257zbsw04kc2gazlc61scviy49";};
 crossrefware-64754={run="1zhh89bwj8cc38p08878mmp8kl0pyr4121nhqssva9jixjckbbs7";doc="146zijsczba11hbks8j0dxygv998hhjqmcchq3ckgc08zrwvd9di";};
@@ -891,42 +898,45 @@ cryst-15878={run="1jd8ny0a0mlhjdbigkkkkz1xn51s3l8w3dpcx5kwg10m29b3vwc6";doc="1rd
 cs-41553={run="0nzzcg1yvbslhqm5lsfcpqh6sbzkmnmmgyakg9l8855qpa8g9bf3";};
 csassignments-63992={run="1mwaaf1ap05mp0lalyk89lyhqs26x4w1sx91vfsjxf697lndadda";doc="1w2mhq1yg24xz9a5ar92sky0b9j51nbb8k2k2ql114wafrkzzrnh";source="1k1iynw5nnnffx26ba5ydaay2qcz492yppcl8ws98xwhrqpjhx66";};
 csbulletin-65250={run="1fw2v0z3a9lskwgbh1kcwv9jnmaz6pf3w2hg2b93zd8mz7wifvab";doc="13zdp3fqbmqil5scgdcy0ngd6gxvdxs3k8ngm6xq1bnq7wy1284k";};
-cslatex-62387={run="1qdcnf755fak3kppl02yi2q9ghb17kxr2cyxc2y80idaafqgr9sf";doc="1vk6azykvi14g3d1c6bb0859j7sj9gy59k49wjmgxid15by6mk1a";source="0ig4a8nksmsm7pb1hxfy6gksfv27bgayqx60ygiaphcz0ir73546";};
-csplain-62771={run="14z479gkiwgw17pdghrxh5q0rlxnij7ccj49kgf3macwgmh5lm0r";};
+cslatex-67494={run="1qdcnf755fak3kppl02yi2q9ghb17kxr2cyxc2y80idaafqgr9sf";source="0ig4a8nksmsm7pb1hxfy6gksfv27bgayqx60ygiaphcz0ir73546";};
+csplain-67934={run="14z479gkiwgw17pdghrxh5q0rlxnij7ccj49kgf3macwgmh5lm0r";};
 csquotes-64389={run="1zsh8z36capzkg695h2h7h8359fiyyafqa6p5m916pmz3vv7sfaw";doc="02f0l0w8k33sgqi6ml47vpqxlpssi9md0z2dm25y0q1ghhyyl86p";};
 csquotes-de-23371={doc="087c08c44811vd8p00l1xrkg5w6fsl8as64jq83m6gf1hfan9w4c";};
 css-colors-54512={run="1q3vmcppk86v2y72g47ifp129fj4rgdq3rvzgkzdzwhs1q06ipfr";doc="0rjqim8zdmgrz5dff8bjkz9kk456l699k5nplhc8bxa6dn7yrfdx";};
 cstex-64149={doc="1vsbq9a31ymvrj0bx48n93chyqmma3q7b49k7dmhb0hkic6h73aj";};
 cstypo-41986={run="0lfg2c985h1xlnx1fa3kx1jjrhw7kmgwvalqh5127w20r0lrh8c5";doc="18yx6l49qk1ayaz13qqw72r8l8z348d20yqdm305nalhqyksv1bb";};
 csvmerge-51857={run="0fyrqx85mklws5zny7gmmyscnsivjfvwmgwi52k3jk2c97nvsy8z";doc="18pmc5h44jmlh583cg0hjr24k2pj369l6ya4hqm9kwka0bhg29nm";source="0mggp5xankhif93firc5g01c6b160bkwqwbhc04wcm4ndlamvip1";};
-csvsimple-64450={run="1ki611iasrrrlq4lc6ra2rms0jn1dxsa648i46f0ymqahcq47cca";doc="1hhp89y27yvv6fkzxdxvrf30iayygxicqxj5qm4c07c915cab0ln";};
+csvsimple-68566={run="0sq37wdvwd9m3c53wqai4vx80r6r3qn31s5r51gv1k8d3q67z49h";doc="100lbrliv5jg52xkgn18l53yxv2rcfsjj16qaj1hlc6paxwq5xcr";};
 ctable-38672={run="1xqhq2ww64h8vpqqzg3zbhh0z7xpjbcqcvxxm4a6kyasyhc9iyr2";doc="1nfdrjjb3j1n8w3x4v92v9l1k0smnygwj47ry717qgf2sq7f2b8n";source="0smcvvlq8n9ahx0z1kmf37p8zi5bjsh5q4x5mk7npay96s87z9s8";};
 ctablestack-38514={run="0b739h1ndkisr49d8y4q0vnbl9j3diqwl9r1ah8wk2za1ww2mi54";doc="0qmshnvbyfjhi8bb989hbffwn3447r91jp46z1yhhmcbjpr7clk9";source="0133xxb7470lyfssi1kp81yr1zsz4d8ai3qjy72wki0p7ijkypw9";};
 ctan-o-mat-51578={run="1iya9r04n18i8jdzqkn2i1rxfxxmpzcpga03rp0i6ykjj65v4q4r";doc="1j053gvvcznrk0fhg21ddyx1b1m1xj743b3w8z01lpjihihzq0l8";};
 ctan_chk-36304={doc="09ngqgs08q8bld334jrzhnd558lv7fajfppmfrkp4kv9hc5iyz9a";};
-ctanbib-66069={run="1av72hhh7l1ih82kwp184221asiy2iljzm303h7cjmqqsr6jd2fn";doc="1wsx170vm97d3xwa8ji7ipann59bi22vbdk404mid4637svdm1zx";};
+ctanbib-68650={run="02iany03amlszi53svfv1mj6iwjv5lak7drgxcccai2bdvc8lazg";doc="0p9w2w064i5ykydkayv5wbdxziws998y8algms6gyz38rbmphv2c";};
 ctanify-44129={run="159jchim2b5idpzj5fxxc9hvrbddm6n00rpqsqffzdiijvp9jbif";doc="0wnyp4rl4cg2wgaq83xwm0vzm1b5xlgbrjchg4s3glh2zzl4mpg5";};
 ctanupload-26313={run="1dvqr96ir3gakxrf4fk0dka80inl6aj3kydcf0128vlq168zgvsg";doc="1gzfib72lfbgzcp5r8130k1n2d00v2kds0x8zdkqnikn22fq4jxm";};
-ctex-66119={run="0mk0iix0wygznqhzqd1wzi7hiabr751i0q5xrr3k1nmns68y98vd";doc="19z979xk8mylch56d2gxvln0w7vrwfizcf4apy4kpbm1nhb90gaq";source="09y03idznj0qw2ik0hq3xy1v87sl3xzgqfln1cnvk3c6mmfz9j7v";};
+ctex-66115={run="0mk0iix0wygznqhzqd1wzi7hiabr751i0q5xrr3k1nmns68y98vd";doc="19z979xk8mylch56d2gxvln0w7vrwfizcf4apy4kpbm1nhb90gaq";source="09y03idznj0qw2ik0hq3xy1v87sl3xzgqfln1cnvk3c6mmfz9j7v";};
 ctex-faq-15878={doc="15c0g0x8w7vm3hyn6lk60jf66akyfcq6x8jc2lnbjx8ydwgb26br";};
 ctib-15878={run="0vm3aw2havsabkrr8sx4m6px9hi189vgsmqy0s922dlm479d8bcy";doc="0q7jss1ai1jjr66yk5927psyvvmp1dwbr54llvwyc4z131g7qrnb";source="1im0zhrw1lvzp9j26d9nh4m1mjhs5by6nai0dh2mrmdjw1i2222k";};
-ctie-62387={doc="1wwi8zgb7m8c0wz4k63xm9v20m3rkvhhfv1v3l3f4l94qvw3k08c";};
+ctie-66186={doc="1avhvyv70jds5xzwp7p1km6d8yha84ckqdw1r1vkgfb959wd3yi1";};
 cuisine-34453={run="16kvfkx5sj6xp5dz0gqlbp5079vh6snkpixmphvz2gzyaqnmafi0";doc="1mbsgn7mvy39pwq5gn7l3h6l3lc53vjyqyvc50xj8h9gs1gpdrb3";source="1r14f44bjdry108f6iy7byzms4dybc0wi936dwkg5ahwyq07pmck";};
+culmus-68495={run="0pj51p0pf4lr9997ilrb8hkz4ncdpml0k7zg9lmw4phdy2bh86ns";doc="18a8h3lgdldazj4mslszmqzpglf0vqpa617pfqa1ga1yf7qnh1fh";source="1mzijc30dcymm2lnzzfci1f99rsxwb8a50p6fd2qnynm3ixrvw6s";};
 cuprum-49909={run="0gqrwdh2gpxgc74zq97zm728ykadkrl066v77hjllmw7x6cjxrng";doc="1126yz6ks0rk92jcsbg2m3ibvv64xznrii9kxf6ss36hm1qwkgbi";};
 currency-48990={run="0673ji0kw0j0a764kjvla157mf5lcxa02wd0ypj82gfz617sn0r9";doc="0v8sfvj7g65r7iyjijimbg855rbbg5d1zdkp7vc58q14y8f34a8c";source="00p52nbdv0x1v71fb0ln63wb9mxdhy7zgagbpmcn2ca3xb83m16k";};
 currfile-64673={run="1mh6dcnzhfsd12ail2wjd5gm79rzz8kcr26x8wya4lvjmdzbw2sa";doc="17bfg4h6pvwhr589pq7j21yawxv7c04q06gw1yf1xsi94gg1mwv0";source="14sk7mh2p25zjl6sxinly5zhj882y035h662vf3qxs7garijqsfk";};
+curriculum-vitae-68211={run="0khwnk2mddfrvmn41y2d7p8704iidyaqzk7zri9gxkrhhhpqb4fk";doc="1zdlq51qv0vds2l9011bmwyvcb1a2lxjffai3vsjhrqvxj6aljj8";};
 currvita-15878={run="0xrcc3pash4g8mkmnzqi0llhix63hqk12vlwn98ipww68qnhfbky";doc="16v8r2vhvb9ssmnyj4zzgv2b2m10d3zg7wm2v6cn0p65hn5i76f1";source="0xrsqmaan5h60970d12bwm7k9nlf7h0flzmqhl0j3kbnclm0x8w0";};
 cursolatex-24139={doc="048s5fg8c19s3zbl2dkmh8ffkicb8fd9n46m0iqrc39i0wrh7p12";};
 curve-20745={run="1h1mfx67i3d2jr6l8qlfys9m6bqzn4x1wb74cjbrkdclyqn3lmd7";doc="1jv8f3izp9pvzh5qs3sh33c95v0z3wn88f278qxi0f1bc1k8990m";source="0l9cq8aji7z8qh0p45af8rnz0iw9m1hgc118482x699iqrvg96y2";};
-curve2e-65469={run="1yyvpl3kdrr7xxvv5bn5x46s0qpicnw071nqn9sgfpjgq8i7gsvp";doc="1vgk30xd7lvdflwsrp48zpkqqifg62pymc5bhnxpbq3l6r49zvg8";source="07b9qrs3r3s1x78jpgixibxbhmakzr8kci0rqfk7qgcq26ys42bh";};
+curve2e-67599={run="0cd0w4gkcaqswhwz8w011pn2g0yl96h8wm5m92jp646xsbq4a1r8";doc="18gcvpdckrsx42286xcdjlpmlq9s0541xkc8gx9f7s2gvjia8lr0";source="0wdqd75fsrihrdyg0h8hl99xlxgphwn723zx1rm73vzh4c5mhrqc";};
 curves-45255={run="150iv654y4x5lb3njd7dfjf8i0axlpf7zz6gx4wqgq06kddjr7w7";doc="1ddgy7gzw2871qsh99m0k90lgh8kf5883skcqxww0bl7b335qc8y";source="1r9c0rpi7q6ishzaaw7qnil0lzqgdvc0ybmr3j083af17snkq0v6";};
 custom-bib-24729={run="1m25bdq11g8jin9qfib12h77sg8lb87p5680d5dkqzsf5y3iq7vl";doc="1ydbi1r0jvl936ziypnjqw4fsr7gvc1gksaqr05wj1bchh28cyaj";source="0sjpwz9zhr0kd4qn454nm1s4rw4a6n4qnackkrq4qkriwzv9asha";};
 customdice-64089={run="11c6gzpmwh7q8dy334i2mz4g42ly0iqz6vh3zal4hi005js8n0i8";doc="1pq06p85kcki6rb5pvijly7h135mh0kwaxq8zz23l9c3lssjpj45";source="1ah7iacvkvf9hmkdysyfm83fzypi4j6myg2a215hajda1fxir3np";};
+customenvs-68637={run="0z3rgjsw4qdpr028yv4y0yscci9611c32rl3y7y6v0n0jvv43lvg";doc="1cg551725icls2x4in84g1zr8ydbyz2g5al4w17dk225k2f8vgfc";};
 cutwin-60901={run="0camjay52m2fbg4df7rrswfn30an4s40bvyvssdcmhmqlbvsh46f";doc="16wmnp2p3hnl8aanm29sxflqcz03qc5vlk9ziq38qxsksisxkl5d";source="0lqjiqlfndqmjmhj5p4flhly69cyg175s8wg2gah1fcfv0dayrn9";};
 cv-15878={run="1w9gx9mhg9wp47rhb6kf1w03mypydp01rxmypv6yvcrk551b5jm0";doc="1b16zaypfphbn9x2fwh2v0i212jx3pn84vj513lkxzzfh0if78iz";};
 cv4tw-34577={run="0nli9s73cns9x44vr2npb7zgfinnywgwajlr1k2hf9jldzm09dm0";doc="1b9zd0ky6h8mlcigfwj49c4chsznvbycsphs9lkpdhxv8mx9wgyq";};
 cvss-65169={run="1ja7j01vbzm16ms6hj0013q9f4wymzmn5fwdmly2mipgnfir79dg";doc="0a664wp1c11sdyhjgz5l561ngsnws5bgr78smswf2akj89637lnw";source="0ig8igf03vsi6mqb9a6cikqqipm7ja3ipm30c1gfinqvkmdsz0jh";};
-cweb-65081={run="0wcis76f7md7hv1p2aw15xz02q4kwn81vpv99apqpc3jqy41ciff";doc="0vng59ckdjk907vrbiyvxgi74a150xyy7rf33590by1mlv1g9r3n";};
+cweb-68702={run="14gn6rm4a01y6zl8qq23q46xaj50jj2ybpff14xg8pvir89b7g9r";doc="1bqzd57l1kw91dwl2l85760578jqpynicx2qly92a8xp92w5y9vm";};
 cweb-latex-28878={run="0cd2rgn25s02p2ga3509pnbc70iad936qznr2yl5q6wnlvd78lbr";doc="0vc5f0h9mq7p9040ksql4clcb9y1dxq7s1a4gzgpsjyla05ps3qd";};
 cweb-old-49271={run="0vx235zpflqpnrfa9kqq7wmc1rylg5bw1r26knfzvh3w1swbp4ai";};
 cyber-46776={run="0vlx0r57ay6jpybs6wlc1w1qpbd62cjq3snaqplaj6dkah98kcbq";doc="007g12qa9v04z3b11cdrd9z7pc7iba0aa2g7z460i0hi2fg4gv3l";source="1kivc83wjpm2rf2myk4079f1l8pyw1pm9a2j0iqbwshic2qfm86q";};
@@ -966,7 +976,7 @@ datetime2-estonian-47565={run="0vdnvfswgm92ncrkh11p523s6vczz1vdxyjqjl9cpm1nfj7wp
 datetime2-finnish-47047={run="01hjh5lmd2461n0g2a67z31h80wcfj14b9y9amxkx4k01b1268li";doc="1cihjhhm37f38rknm45ndli3kmgrb1waxfncl1fg9l95hn929cnh";source="0zi9ydsj0zjrg3c7618fxxabas6zhvdimbsd42n8fc5acvddhi36";};
 datetime2-french-56393={run="0iznh6qv41xcaryyh70lk26rmrk2j0j3239hib8g924zqgyi83p7";doc="0f1j72g2xqaq64wi1jkllhkpxbjm1j3d7wraq42x13giv72g95w8";source="018a641mqcpj1maqhpcrp09msf9rbr8a5nd16hk8c375sh2lqpap";};
 datetime2-galician-47631={run="1g5qmiy094yrid6jh3xvy783kq331bzk0lqzci7jsb2izymz0lqm";doc="0im51qyxg5dbc6p1w3k4vs63d7nyyipd2ad7z9czlfid0n4ywksf";source="0j4i3b3mp1bpqir7imsfw2y1098ak0j8zs7gjhm16xdrb4n1xhcl";};
-datetime2-german-53125={run="1n7s5fj27rlz61r63s1mwbkxm62ddb2izz7ip4fb165d0bbba8xr";doc="057p9xgdbxq31ff43qi7lr4wy17nk625dnpczrinfd80xn92dhsd";source="07dv92w3rfg0xi6d8n6ykp0rn4pj6k8knp9sx8an9bhzmwqw2yw1";};
+datetime2-german-67201={run="1n7s5fj27rlz61r63s1mwbkxm62ddb2izz7ip4fb165d0bbba8xr";doc="057p9xgdbxq31ff43qi7lr4wy17nk625dnpczrinfd80xn92dhsd";source="07dv92w3rfg0xi6d8n6ykp0rn4pj6k8knp9sx8an9bhzmwqw2yw1";};
 datetime2-greek-47533={run="13a1lpvg680881xpgphzni3hcdymvph56mhgy0jbsri14fw0mdyi";doc="1kkl386rd0h5psr1z4aw32r7m55in62hql8x9c8njzajm5frhf44";source="0kmwn8mawmxvrgx5d39j92p3r1nlk1z378z1h2lx129yz4qbsv56";};
 datetime2-hebrew-47534={run="1b04g9lm0g5128phix3mnx9yphg07ig7p9d149rw0b1imly7f6mv";doc="1lslls4q5j1l9a5m0gzv351jfc93ii0zzcb62p3icq2qjig3rz37";source="11q13hms2mnqyxg6hc3279a8hs88j2d7v7wl90v5avwgh8923q55";};
 datetime2-icelandic-65213={run="1ws2mn3gf57b8gc1q7fp32li36mvmcxf5i8p3ikap2swvd9y3a39";doc="1dm4vg1jvsq94sn9nxxcasxmrs5i878z9bbrcf88yzfx5bm6wbfs";source="0vss8vq4kzzj243ha6gdvd9g5r85ar09v7y2yff2vj41gwp5zmjb";};
@@ -983,7 +993,7 @@ datetime2-romanian-56394={run="04jypimj3pcvnalkgzwzxvgav8s0g6c7br1w5hk769k7aqjf7
 datetime2-russian-49345={run="0m3cmm2ikili85z44mmsnaxhv3x2s6xyk6kkfr3kaczn3w8srqim";doc="01rfdj3wf69j976mkv2yxw0ns4pzf852miykknni4zw7lbcki00g";source="1x931h6rnzm11ipfa747x306iwn3381ahcf7bfzhg75p8707glgs";};
 datetime2-samin-49346={run="0wqnsvx33d68j18lm0fmvjrdg8g5hv0xwzv6wqnb8wwz1l5zmqvj";doc="1wfij9j00pqs8bapbjpmg8xzah9509vrsb9h8sqc2abdjnqgkmdc";source="037gm3s8rxk4chj2q9yilbkvg46dxnd2jpr886ibydfp1ndnqcp1";};
 datetime2-scottish-52101={run="18c3y6968css1zm1pryn3cfbdqfn9px0n62bq6mapmgbd7fi2plh";doc="04dy9syy4qmn36mfy1agxjzd41prwqzlx5f8vpyq3148w51kpp1j";source="0nhfk8b19dqa08lb10sbfwp3c2f4rn493dgp4sm254bk00nil1gh";};
-datetime2-serbian-52893={run="1akyl3r70rwdyjjqvpsmh5m9g7xsdmdmx7l9qyh54x8c7gir7wd7";doc="1kgkpfgfqj99m0262zcc6b7fnik83vr45973720dbf9f5gvyin95";source="0hn4w3rw6mqzcj14a55m2hch3ra1ax0kb3l254pfgk4x9l3x028v";};
+datetime2-serbian-67201={run="1akyl3r70rwdyjjqvpsmh5m9g7xsdmdmx7l9qyh54x8c7gir7wd7";doc="1kgkpfgfqj99m0262zcc6b7fnik83vr45973720dbf9f5gvyin95";source="0hn4w3rw6mqzcj14a55m2hch3ra1ax0kb3l254pfgk4x9l3x028v";};
 datetime2-slovak-52281={run="004s60h3zi0a947ayc7kk2slxwl6bmpba8lxm8000f6yaf00wyk8";doc="1wblf0fd2lb6b05vvb31a33lz7dxakd5k6y5pcvs6iwjjb755n52";source="17hwr9yzpdkcvqvm1fa4qvacgica9mm29npmcl7xc3c503h4z6wi";};
 datetime2-slovene-52282={run="1lcpx7nz5lqb6pdw2j0dybkilavp535pxijs13nfl043xizh4brq";doc="0i6p83lixs6maiww4fdsm09nql3xx8xvs2qz38r5md4r5zzikyb0";source="0grv3gcm8wjdcx9smsq3dzd916pg8kcvgmh6s47xh83wz00qqi36";};
 datetime2-spanish-45785={run="0ggb24w3sljmmydnjdkbg34n9mszjwrqny8vl70fcin1dj69njcj";doc="1iglnacrcwwmc43shhsaamwajlb3mzj9dgqnd5qg3v7ynlp5zblq";source="0fjkhxqgw1yb1nzfiymwv8bsv6zlnwvdjl7crd78n3yx1fgv9wd8";};
@@ -994,16 +1004,18 @@ datetime2-usorbian-52375={run="1dynq4qqi7mpckzcmwvfc17hvnfjlv3n93dwypp2sxl1596vi
 datetime2-welsh-52553={run="01p4mxn78ynyan6pb9598qmi000alyaiw3bh83w0l5682v2fi7ip";doc="0rkibaqirq4xgy6r7a1aws6awyamllg5z5zixb3imapj3x6c8p1h";source="0d21jimjq8sipg1qh4fxwb9cmq3sga0wjlrcqapjpy559bnfgmrx";};
 dblfloatfix-28983={run="1r8s36il4bmqvvvlrsdbhdp4nanbyd1lh71dac4f774bf5pkhzi3";doc="0znp5j2v20q7bsic5j7cjqxmbi1dannffl0b14g2w0jp3p6hpfxn";};
 dbshow-61634={run="0cfp89n7r5jn6rsg8qrjmwfzi1i9qrvxh4aiz4r33sgi8qy5iljx";doc="00nksa78l2hi8dwp72wcz7b4sx1z5p88c9pyha975xr4l5lbli4q";source="0pgyjb07flhfr0dy1rqk4j237wjskxfsldrl58hzdanipqn0jyyi";};
-dccpaper-61763={run="1q0hdlkr80qsgw17d4qlsm59wl22qz1b6fmr2cawfbcwd7aj6jd2";doc="033dhadkcknyhilqkwsmw4hx5cmkl35maanjvxb5jdp8vayj0d9y";source="193bikyd65k1wd3xykq6innzzhqrgxlcz21fa49cgilwp44l08z9";};
+dccpaper-67890={run="0pihvkqcb9qpkq5c8n1n1wlfip87zql1dzxrai1dlln0rrrxhycp";doc="1762lsfk6jg13rkkiwr1y8kc6xlf5y714jjfiz74zlv9w8ixgxln";source="1pjjhcbbx609rgrbaqdp1xkn7cafwax93jpn8m7wlzy3acl31lng";};
 dcpic-30206={run="0yfjhpn8hr3yk4dyjfzbc8g7cki64039lb96naacyv8mjhqdpgyd";doc="0vxqvnkxm00k0xqpllcnq01si33wyg2mkhpb7l8jxxxizn3wf5vi";};
 ddphonism-52009={run="09s324nj6g8nlib9wilpy01prixrw1ilwlvl638hgv5rxsspza5y";doc="0iirifr55s86nm5512ii0qm8lm4zy3jbrbk333hw27y8m4v9qd4i";};
-de-macro-61719={run="1zlmrrb1x4sm0y6igxxcgh7drf7c6rqfgm8pk1a7bfv5fdmv4fln";doc="02zxl4xpbyjs5vwg5cskgfh3w2ls2bxlyn50smh0kcqas46vn9a4";};
+de-macro-66746={run="0pw8b3v4yy4frxa8q3xbljx7m1vd3952w01ra77g2x8b02msd9xl";doc="02zxl4xpbyjs5vwg5cskgfh3w2ls2bxlyn50smh0kcqas46vn9a4";};
 debate-64846={run="1v3wapccyxk2fnhm93padrmrarzdxljlqznw96h735086pgsni94";doc="1kivk2f6k1ifmh9w8qg698wvsbb21rfwwmr10bbvlsbl8xw22p7f";source="1yia0rhkwq65a9ggn6pkmr20vrvlcjkai30j1hm0jav7rdq9pqbi";};
 decimal-23374={run="00byxbhi2pqccd1vd6hsh4ri0vzvq1mwjnvqmqqlrbr3qfv05zla";doc="15v078s3d3aawihdmd0l1ndqinlsqz11xxbvbw0dyh0arw6d1rc3";source="1k88s0r82livblqfb140npf2p7lvmsqkpasbr93ihwjj9vp54xb5";};
+decimalcomma-69251={run="1gsmjqw7sws2r5vzm1vdp3mbwvxpally5vb7pn64d28bcmkvs28m";doc="197pqxv9sny07vfznzx55skwl3gj36wsqi89j24jvj7gfrm2a0kf";source="0bgiq61d31rzzkcib6z1lszydzcjwh3waxwhhfxf5mbwinlmwwga";};
 decision-table-60673={run="0v1654g69lsvcvky0yh977kz7s1b5bjihh6bfc4lqrzbpg92qijn";doc="1gpz0g8s61aryz5y8f2v35v0p8cbwpvsq1x4f45hrhd3hpk96hbj";source="1d40h7vcyaxdf8yrvbx2lns0hg3d0xy9mv9rmqpy8hkqxavzd389";};
 decorule-55230={run="0r5pxcpx29l8x1bw4hj4xp66zgkjgm0qn2ryvxy1d30dyjgp34zb";doc="0a3qvnknhcx0jx8x9gk7bh4sbnzv1mnqvdr8l03nzjcbmysvc3hy";source="1lj47s4k44pjnr0n06xdcb37625hkjclrsj4ccmkgcr61d85vkwk";};
+defoldfonts-68234={run="00h2hk4vhqn54sczns7nlgsiymccwikdpl702y9m9hvhdw2misak";doc="1xl8nw3p9jhb530m7sxkrsg3qpd497q4678al524b3gz85ps1m0w";source="0ssc58p013kjdh0p56jhw7cx734ngnkm9mvf1cslcar5pyh6s88r";};
 dehyph-48599={run="0fkqlsknrlxk8zazcqy4q3nisxr3a4x21aiwqhz8s237rdf3w39g";};
-dehyph-exptl-66401={run="1lk9jl0h46xi2bg724j8jg6i54jqdch7ncz1a3yk6xwfpjgmj9ig";doc="160z9xiqdi9x3wmmipnlarrhlj8r6885541vl23hlj61xd17y9xz";};
+dehyph-exptl-66390={run="1lk9jl0h46xi2bg724j8jg6i54jqdch7ncz1a3yk6xwfpjgmj9ig";doc="160z9xiqdi9x3wmmipnlarrhlj8r6885541vl23hlj61xd17y9xz";};
 dejavu-31771={run="1pxcrv98xgy9hkqhclyp0q5dgpgc80bvjzs378f0dqzc1037lghn";doc="1f42z94n6dpdq481n5wmsx5hx000klmbklghz77x8pc9shgvlka8";};
 dejavu-otf-45991={run="06cdqjqj0vcxrr2nlqs2qszssiibzr0pbimhvqjpqfdv2hhdxd0d";doc="0x9j42zm6dagn4wv8hz34x7cgybi6bb86whxvmmwx5slsbb6yqfy";};
 delim-23974={run="0k5h5wk4fn4qzhjcgraqjzf6ggq7rvr8d4c1j2vwxi37fa83642b";doc="167hklrsm9dh68nvl6inqck07zfg8w4gr9p5c2n8i6y6v9xlj3q5";source="1xh63b78kxngcc3qgzmcfrf4pw2saipw054pzq47vp2ajppp1sq3";};
@@ -1011,9 +1023,9 @@ delimseasy-39589={run="013r0cgz7ivrjfhmpcf5rdfl2573q35qmw0bhprnamij2jpvggzr";doc
 delimset-49544={run="126ax3z4c36z83479zk56jcvdj5r95y182rv42wkm4lm6sy8v24j";doc="1mb85h29fp7nxrkfylfg59jbvjva7lmr7vvgd8nz7k09w1gf4x0b";source="00hp5f5pfad36n4lkmra8mc2n0ynnq9ynnspqfb9378cx3m81cxq";};
 delimtxt-16549={run="0s2bbxhbfvq0jm4i90sh6krcik8yk2nl0c39lzr1nrakal0k5lkh";doc="1wswrw94n5l1azs2aczv6vf56ksbagniry4rwq9b16bmvdy7slyz";source="0sfwmd0mj359qkchqgm8zc80ayqp0p8ppdgfn3cmayhf2pml6gyj";};
 democodetools-64314={run="0ih11kxlvnskrdbvxrakbljh1n08n1mb6hbmf08475557bp0nchg";doc="0kcn368yzx0jf04srh2lzbxj9n76ph0idfjcqs2am3cjp2mjis17";};
-denisbdoc-63589={run="0sl953nrm7iy4jxadmwhq2x6hglspyzxwzi7wcaqjnb3vqgzb726";doc="0j6b33vq4q2ah1rrvmj0rch6hap1w6gr1x8ip6nxi9xhqpdg6gh3";source="0idsm5fbq3k93jphv569yw7cgpckzn1npk1wczvji0zvd937pih2";};
-derivative-63850={run="066h32py620pvwynlbw2jch67dpx4j4xjzrcs9h7ciqp31izkn4i";doc="0jhb18pd1h3cgh64f5fy0zsla80sv1hficd2ip1s4x611412pg0i";};
-detex-62387={doc="1gmn0ymr3b24va2zgp941z48y4lx32dqlsq05znjr3vj4vnp95p2";};
+denisbdoc-66137={run="0sl953nrm7iy4jxadmwhq2x6hglspyzxwzi7wcaqjnb3vqgzb726";doc="1p5b5xpiqhla4pmx0kw3xl0qwy419qscr8q3z4l1id4sqj7vy6b6";source="0idsm5fbq3k93jphv569yw7cgpckzn1npk1wczvji0zvd937pih2";};
+derivative-68787={run="0qqzrhm1x2n5xv633dmd3pw8p9i5a7fmnqp26wcwhy08dipmq441";doc="1ld2kpn6l7dy73wws4pw0a75cwjkpl402bddxghz1svxmpfnnn4x";};
+detex-66186={doc="08d017wn7a67pmp9b5yhnfg1x2q6f48qaa5ma4bplz9a782icwjy";};
 dhua-24035={run="16gq48zlsfk9llafs8379797v908khv954q8lw2dvzk0v69d0qki";doc="16l76rvba4fz3vfw8mzkmks7b7206h2dva5dgw3m0j30ds8d6vm2";source="06vws91qfar1h87d57c9f9cw04isjk0szhg2aiw7sc8ligs0v907";};
 diabetes-logbook-54810={run="0rmahxnjnjd677z42ra1mcp86na41sz9ir4chkpmaikhdvnbi4qa";doc="0qb2nyjc7fpc7yc632bblbjryxdx39xr64c4kxncdisi34am82z9";};
 diadia-37656={run="0gygfg9vs4gbp3r0h9v6dqc18np331c0hjfmc5rbh29i74jcm8jh";doc="0bm0sb3fjj73mcdmrsvan9pdla2ki7j1wwpjpc4kpfc116a9lzy2";};
@@ -1025,7 +1037,7 @@ dice-28501={run="12j86mgn8zph5w1gd1lmmz0dcka36b187vld6r2srnj9f398h7ac";doc="068p
 dichokey-17192={run="0bvv3893jxpblddqi75hppb9s0rxaiqbq70jns2x7d79afl7xkwj";doc="0m5zc521shp00wld4kyhp9xipsqfq00q1dqd3qp9ki1b2kmr5w7j";};
 dickimaw-32925={doc="1mxjqn4lblnpbmad3jk453lyx1qzcmrddis59j3jsgc5sp929w4k";};
 dictsym-20031={run="1ipmlwgma06nd1rk4y38r40y01csq1myqavmpd1f3c53k1n0v42s";doc="0rljzx70rbvlcirxr2kf0fmrks6g04zc1mz5hzfkjcn6xivpawh3";};
-diffcoeff-65676={run="1fzndpfr5f234f6zdh7m8kx5v8lzl6mmqyi2nbl8rb43x5pq94qi";doc="1fffhqqngnwmanb2lfjniramsrcp4rdninkfnphnr3c8s4q5h7sn";};
+diffcoeff-68838={run="19rrh9zzjxyd7hxfawi65y0cnr1ps5vzypk60jfki8s1bbk8l2jv";doc="1ximrhl7m5in95mxlmk7dpvja39sjvxz4awzr3vwn9w11qkhw0p9";};
 digestif-65223={run="01hym4d6vqja4hwnjyvs0zs0l2fzhdap0pir7cz7wxqnlcip6hl2";doc="0220wkv0w6zp4ggnqkcfcq388f42scywzn2ah0h9yhccgdikd52h";};
 digiconfigs-15878={run="1irv3jc87bpnc289r5zh7pgfdgk4bvfwbyv6666kyq8f8yl7m1kh";doc="0fnibq45xgwrha5vfav8lylnb6p2i0brd2k1yp8jm8id6xdsxmq8";};
 dijkstra-64580={run="134qfpb0sqyazfjyc7mid1rydyszc6gpqms787vq2fd2157zksz9";doc="0qmzrdzh0704s97wqwxj3wyg33rbbpq0mmq7hdqf8fy0vq2v8hh4";};
@@ -1046,11 +1058,11 @@ dnaseq-17194={run="0vsifiirz1mwmjnav8k6m27mm5qsn3iw01a9c056p4g4ji8w2v2y";doc="1n
 dnp-54074={run="0jlvb0nps1ij4sgbg3clgbk34p80la1fhh9zihn9fhl9nrqk637r";};
 doc-pictex-24927={doc="0fdvqhkgi5j33rx0r4fifj69f4smn5w0n99vx90a3fw15qzxsg5y";};
 docbytex-34294={run="19f8kxa8pb7ai7npxxavcw8hbsskmnchi7vynzkbd0imcjvay476";doc="0q3by29jmymrf4pirwmfqxr6bdglh936yb1phficxlpm07ibp8mz";};
-doclicense-63340={run="1lc8f3iap8sbi4scyq5wvq6pfj2bz87vy6g2p51b3jfifz36xgam";doc="1biqazhxd4p2lcgihzx8h21870a8dhc8m9dkd898b0sb0hyr5qlp";source="1gi4qvpkc0v6rf3jq912f1x36wsdhqcpas32468kwm6v99xqvnms";};
+doclicense-68441={run="1qb8r4lwjqzwv46fsqjff8l5zb1scjkq34pwnsxbymz1sl3iw1ls";doc="0isk98wcs93labxiygbf6hg2794l7m2wr8ck71jafd6by8x7l1mb";source="04sq9wrsfgg3s51k853yy7vn5yp292d2ii0ww3msrqnlpknvim7j";};
 docmfp-15878={run="13cxjhbafm0xvnng6gc9g03p4j79sia7jvygxmphgnf7wfndv4sz";doc="1j2b530wcpr8252lcpmy0c5w83kqbi9xzsrfbdngi1jmkfy4nlgv";source="1w8g6m2whza3w62ngsaslv7h2x7asijznwb9glx6g2vjv456sgf8";};
 docmute-25741={run="15ad8274dwgzk7fzs7i5g3ss02ld8in8f86339rb314zmraj5kv3";doc="1mrwispvif8nwjbq12jgzpwjn9xf7mr91pwg5bfdcnpwwy8l1bh3";source="1nfv31h23mp7alrm9saz5abakjsvs7rqva3q9zvxlczix7yn63qw";};
-docshots-65141={run="1rcv5iai99biyi4s7avqmy06kwvh8lbjws2b9dcvrpdf9hshlq4w";doc="10c5j9l364s5vl6nhyfx0gd27l0l03iiy7azl5r6wwxjiarw7iml";source="1llqavvazdjvrsl9jr2hagmivqvc2wzw644ssdcp47yhphfs1pik";};
-docsurvey-61447={doc="0f2kzmmpm7qwci04krmnz5impfwwmy2wwanmgq05878w8xbcqjj6";};
+docshots-69410={run="0c43i1x2va0a4g0a262qsk5dqig6ic4kkmgg18y7s78xi0ymj8m4";doc="0l55vpqsbwr7pln791lql2s325ljphy5gf5glwjjmf90cgx498ir";source="1hr4y4rqwbx3kbdy90myi666b2jb1iy6bw5y219xl3dyq575fj15";};
+docsurvey-69343={doc="1s14cdm4174mf5x77gr0gp59hsklbq2nrh486j3x9vgc6jv00wv7";};
 doctools-34474={run="1rdwmdah8rb2yiicd9mbqz0mmf56rpgnp5vwyjhax7m0zqjgqkgm";doc="02jrr4wbkdx8r44dpfn4g83j03n6yrska79ljnwigs77p5jqlyl8";source="03y13bijva11hqil84l2p4cap7fcm8wk6ds53nx1qizh66h8g9vr";};
 documentation-34521={run="088imchmqchi1ilwfzlhk8d4am2xjjgacnyw5w4mb6sirbckhi3d";doc="103rpywyl1h30c7jamp3cfi1rg89y48krdjbxc0calz8iq5n0460";source="1fzk62clv9ij07cfjcrwn94cqvz2piysij09y2wlkcs06lgk2m69";};
 docutils-56594={run="1pxswkjs901clnd8l3n13ghqypv6l8gxr3pnwn9i0zakvxz6gdh3";doc="11fzx9kyxgxr20hnyqy9nvl5rczdfyb43j1bjwxnim68kmy5bjyz";};
@@ -1078,6 +1090,7 @@ draftfigure-44854={run="0dhjlykc6p6jm6p0s0h0d74097ny29w84ns1pxbb7f8iwr8hhkvf";do
 draftwatermark-57099={run="1xrsh755whbaxizzljcpk5an5k9s09f6hcndp1lhw2z9mfnl2na7";doc="0cnzbj2wg5kifqg08i081d0043462vswbxr68spnnxp2y3b5ysdj";source="1k66347n1cf3ap8406dw2qa21k6mazwhv6brr569i0khsxypfw0a";};
 dramatist-35866={run="0zrkdhvx7f1261r5b2d08bd6a3pzldvpi69iym5k6f79ziz0602q";doc="0vwk6zfvf89773bwcxnpsd8crbkmq4lr6hksp4dn0hn6rf4smyyf";source="1xy8fm9h9qgjna6z5gz28rj0cq65wpxpxcs4vsfr4vr1p3vmig05";};
 dratex-15878={run="02nyg30awmpp2yi4m6r9gbgz04irjzpbjhpp72j0qxzly8c8frqn";doc="1a5knp5hylpb1i7hkd9160bah7pps9b0hm00zgn9fk33g5xrvhbz";};
+drawing-with-metapost-66846={doc="0r1fqikx9iix0xm2w78s80knfwc7w0kf2k7fb3k25l1cj3ym14mq";};
 drawmatrix-44471={run="1806y5cdgnj61fy0lilm424x936dz2q5f2j2s3w71kzl5ivyf569";doc="16pql717cz27sic494xvmsw2mw9jxn71xka0k8fjys8j52pklqnk";source="1x8lc07xccf73vcvywmrqk8ivg5xb1g75gqhff12zgrp2vqzh6g7";};
 drawstack-28582={run="1lirkdnsp35l4dwsir1xyf4a2s608ymfc3r0hmgg9phiy9i1664z";doc="127c98z547disxksvhabrpnddrp5ax5dwbgy7nmyja2dg65yax9i";};
 drm-38157={run="0j0r5b2b6js88gy04d12w8wp14g7z9xcgc43y0ysn2xglcsja3fj";doc="04i8mw2lsirvzf3n8xgddd2jr2s45fbg6m6wiwjdz4d2i1pi98cs";source="0l3j52ypvsc8ma06a2z2dkqsa3vd7afqkmyrd6b3z6w3dgjlnz3v";};
@@ -1085,12 +1098,12 @@ droid-54512={run="1fmm1k3sxdn2h6v56hqdn0l84rz1cgxmj586wd4ff41vfzbdnn5z";doc="14i
 droit-fr-39802={run="1wz883z4a7g4na18z50vd0156gj6zpkkl49h4k0dhxwgqibh13mk";doc="1ss2j5jsr4h96rqcqmm89mprnr6w98zbsxy87jlmqavjjc8k8jq8";};
 drs-19232={run="17jp9fvj86sp4ywgc6j1dp3pnvgllilbq75298qamnnj3f403vlr";doc="158wkgnrgwfg2ikbj98hmcaaymrwpmnmaxillksv1b7gxmdrphk5";};
 drv-29349={run="10dqig3wmp340m9h3n4yl6scg1p2a7ccazsqp7p8a4fkfw0cziiz";doc="04kgfqhilxpcc0h6rhpw55s1j14wsb5v8b6ykq7ajmacrpmyi50h";};
-dsptricks-34724={run="074z88g37hq9xjlvbncmiccq5klr3x8ffprps8xnzvhk7cdwld2f";doc="0jj47j46l587hr11n764wl167rkp7w8q9z16zwnnb63dp0gi18s2";};
+dsptricks-68753={run="13hvyb7qapfby45z2cikqwaj4bcf6lvhaf3b6gq7d9831gxfwjhk";doc="0jjwa6rh39qp2659ijb3fg3cqz0lbpjpwmvj6zpxv0xhnjzrnidm";};
 dsserif-60898={run="0w1kihzrmk48hpl36a20fkz4nwp9z27in9xsi0fc3d6mhgdx35db";doc="0bwnnxypyc97jfcam0vdvpyxphd1zn31mc6lvl661jy10cpqf6b4";source="00hf5icf1n0rwxr2ms34z7r62g98dqkx5v26m3k7w1wd1jfnjzi6";};
-dtk-65315={run="1nwvdw7id285w8anscp7i8ksab3b72gldi4minhbd1k4pvdb4783";doc="10ymqh434a8bjfyi5rj3fj8b62lj79qcyl96ir6visdm6v8fzrmd";};
-dtk-bibliography-65444={run="01a3r2sq5sa01s09kdq35qnhqrmnb2chic0nr632cz72cr9snm8g";doc="1jgrdv91cibm7plk3116xhgqqa2yp3fbqyrsj2r4bvri81bgrig4";};
+dtk-68849={run="1j92bv10qjb1p9ryqg6yc55l4cj52q25133mq021jq3b148j5v70";doc="133y8gcdk0mgp6nrwg2pfslxjm1jl94d8frfyxm7ml0dy18g4adw";};
+dtk-bibliography-69155={run="18i5n2jiy5znaf80rxrr9f376j9f52gr3557g8idkc2g97vxpx8i";doc="152r014y7y20h19hr44c0vifwpc2s1rafilnxknhx01zz7ln2hq0";};
 dtl-62387={doc="0kvnsr8nxrys99rp74wlxnisfripx6jpjjkqy38d3d4gw13cvb5g";};
-dtxdescribe-65445={run="1q8ycxs1dxq4d1j76n3p16z812pm5fs3zw9z2vb2l6s92piaf1ag";doc="074wq1f7cq9lnmpbssyyj02da2wwrnjdci8r591f2fp9cq9lgwms";source="1wx009hi6sicz0xvb6r6jr8rzwbx94p1w7rkgq4zjj25k3a7s717";};
+dtxdescribe-69348={run="0m959fczn0gyc9p96932l1jzfyyf426sva72fjhy23yjgcv333w2";doc="05sa7capgs7lpqw1qdcr28k9f3cdkyps8ia8vz74jm8nm2gigirb";source="0bm90l8zb6vkk05vrvpjm13xpfaymw4g6ycbc57984djpkmk22bv";};
 dtxgallery-49504={doc="07c403zbx7sxkhhrwrfw3np20xlqhdk893b4bd6r8lqb0zipp5b5";};
 dtxgen-51663={run="19c9w97wjyrq6g1j8n8qgaclx141lv2j6z6l5h13gmkmyw08vwhh";doc="04z9dy0aada8zsp8ckz3agqcsm29dnlx770xyl51rsvk2qwsxgka";};
 dtxtut-38375={doc="1szg0xvwm0jbzs8waillijzrff4kv04a73gsqh9c12ap427xfryr";};
@@ -1102,40 +1115,41 @@ duotenzor-18728={run="0p9gq8i6xcfg4pxdnqfswjcnc17x7pzsp4iya9b3fjq4kplqv28s";doc=
 dutchcal-54080={run="0j49mha6lif07hnfn2wdfl949kfal4hbmzg6zal4w5rgw366szrm";doc="110rbvidl53naa31ndgh6nx19i3rkawbipz9rpxyasqk61kvv6mi";};
 dvdcoll-15878={run="1b07xplza4b3ngh50czq8vwmhpr2qvkl5xbgd93a9acvsf5pyg6b";doc="0fhkdwyvlizlb66bd24pfncbg58a31ygnfg0f9dw5z9ccfrf50hd";};
 dvgloss-29103={run="0fgc0i7cn0kd4f682xny0968l220ypam3z33mwac6ifqaaqbiy9d";doc="0l467jcanablvj95l0sbdib6dblc6ns2jcbg41kv0nxpah2i5ms8";source="0b106p2a8xr3c0vxwx3j0qmxh2z842h5x1z22509jabry3sf1y98";};
-dvi2tty-62387={doc="0x1lal1znfb2rfxbpmbzg79yjgv1l7hf0z5dij0yzr9x6xyv0zyc";};
-dviasm-64430={run="0mv27vpq48gd4if9rcigp6hxhv4a1i2dda3rcq8jwssxp383kn8y";doc="0xjna39bqxikrxakprbqjb6rgkhlxl32gz944xw1q11zpz8kicwq";};
-dvicopy-62387={doc="01djjcj354d1pgpmlxv2k9ad4x871h8k8qqblz2shzfqpmizbqvx";};
-dvidvi-52851={doc="1w153rqm7nlmcf6162glxz282nbb6b6hjf5h0p7mbzr0j1357sxj";};
+dvi2tty-66186={doc="108y0qxh13x0iivgsvkk4370f471p03nyl4x9nn7lng1wrsafp6h";};
+dviasm-68043={run="02dxk56b63kqiin2ad80hh4xrvbhbkidyi0pxi8c2n5zqdiq81sd";doc="1hp4vrd6aj2qy9mzb9cr8l641cvxx4aw1ra0v6yr16lkzcls7s4a";};
+dvicopy-66186={doc="010bs4iyaja7mq5wy9mz6fzxlxf9472c2zdm93x9i474dzgnh2vl";};
+dvidvi-65952={doc="1w153rqm7nlmcf6162glxz282nbb6b6hjf5h0p7mbzr0j1357sxj";};
 dviincl-29349={run="1qb2cl5jbgzjfgwqnvnfbbrbzxi4m64lajvz6pyybnrwv4bax0km";doc="046c2cl9azgfg7y2022lj8x7yw8kg2pgjdixxk5989ai850k2j9n";};
 dviinfox-59216={run="0bcq55p894m5hw3zdjz7q7ns21vpzjyihg5x19lkn9k05nxrs2d8";doc="0v2sy294w0m3kniwky24lpi4ic5d8qrm5722gd7vw6ddwkwc1x61";};
-dviljk-52851={doc="15l05cggcnawyqg38a1hpyng88qh9gck4jvl78n1rdk4qdcgp891";};
-dviout-util-52851={doc="0niv5zy6vksm2qqqz3bjd417ylq46bxz6sra3abp9k4c2bpr0pz9";};
-dvipdfmx-61101={run="0i83g2476bp3zfgdvg11kmls969ip36z1d4w592946547ar2akmv";doc="04zmlbpiclcd6bsxzq2xcssrbnla9wxvw4fx4p52lkija91qv848";tlpkg="1b9wcx70n7dip0yhp7sh3j4g0rkwg03w6hr2mav07219kp0bw75k";};
-dvipng-62517={doc="0xqdvciakvfp06rnsd7grnvfwjcal0ahyj90gyp2kc4r3v3lk6pr";};
-dvipos-52851={doc="0izv95mvzky166xpalw897z3lgl3424ixbabz5pikrhn6i2q6zmf";};
-dvips-62387={run="0k89qqz9zx5zh13azpjndfzszgl85hq4513kaayf4k3spy9fn5yw";doc="0cf5rdlg25lvyk7vzhyxnwfbgb5ngm8z4kzvj2y0hhq9jz9szpyj";};
+dviljk-66186={doc="03pi78c8ghy2gghzk1ffrvf5x7h8c1r0pv5pcspwxz365x2rsbjw";};
+dviout-util-66186={doc="098pksgf2iamq96rmzg5fw7i9dlpvdksficsz1bf8k8z4djnbk8n";};
+dvipdfmx-69127={run="0i83g2476bp3zfgdvg11kmls969ip36z1d4w592946547ar2akmv";doc="0wid2ydcjf5jq34k8hsg62ndgishbg6f14p728dnyrbh6k4iqvwv";tlpkg="0mlhxv77q5nanqg2dcbd51wpbcrys9xhr22bvx3hpfzwykb5lh69";};
+dvipng-66203={doc="0r001q4p5569dagayds1c56y10ls6f6v7mmywiw81l995q16apxi";};
+dvipos-66186={doc="0dmaas4m9y4px53vlg0jr73xviki338fm2n176l8ldwqj0vvq1b8";};
+dvips-66203={run="0k89qqz9zx5zh13azpjndfzszgl85hq4513kaayf4k3spy9fn5yw";doc="0acfsqbpnws8m5y66fkgcgxf4sdr9sjha067735scn75wmwi9y01";};
 dvipsconfig-13293={run="02vgk91y80ch4pkj83vbiz1b2ccigf152hm83p607y4n4qn2xzsf";};
-dvisvgm-66534={doc="074z2ik1rvwy4iiks3d4vhz6i5ykkndfsbmvkxfd92pqfgrjj5ga";};
+dvisvgm-68950={doc="1fz3sa7p9wk2g1v0bpy87vz7nxwrh5bsfl4m734n6lhsh1bkj6fb";};
 dynamicnumber-38726={run="0y779azvla68n692x0gybg74cp3dk32219v67qfamfzz389nbs7s";doc="1appm3ddbv9ll0mbnid4xa459w9q89swmdlvdzy1fxdps4y0vpz9";source="0ydmlz697c46fx0xpnvcdcfm9sm0j3jmk47xz8znd2ghzg395fgk";};
 dynblocks-35193={run="1zb7vk34k3z0cvw6kz74s7831fz17mg3j9hw60diabc0q47pwyr0";doc="1m69hys2b7fvwn9h6q3whkpcnvi04hnhx7811s5fqhdfi76v4zk4";};
-dynkin-diagrams-58758={run="02s19zsjsql9qhlhf94z2smlr0j40z4rrx33iiwc54xx3j55asap";doc="1gk31brjcrw88a2fb3y7jq47g9lkpr7dq7b2rmvkbwxd0yyf789i";};
-dyntree-15878={run="13imdfv22qsy9jq5vksi9qsx8spcc6h2v9qlc6an9p93cq84fwka";doc="13wn9lyjqds36ff8lyv125i0qqqqg0az71h7g871zylppfy7iqyc";source="1r7g555bhgkx29hgp78v31nljg9yaz3fjjy9qbk9kvz6wcphim6l";};
+dynkin-diagrams-67267={run="0iprylvg36fs9rk44a4yj6xn2q5vy6jy2104m3j9jkyfafy2qsy4";doc="1f54q909b3qgbgqgbxpi4xr4f06dkq7z0wh49q29b1gh2zvvdxms";};
+dyntree-67016={run="19kzb4j7q7dz993znni7pixv2qljzydag3jywcsgdpqvlnk1aq0y";doc="0fa2imzfskl72fvdm1pbhsr33qpwm41dzsfdipdlgww6116rlwjc";source="0hlx970ym3zxln15pm4c2qxliaj4yhv7cnak03hhbb0dx916k3mw";};
 e-french-52027={run="1pm1k7qb1a3h2b8kay9jwby382jxp3866b9m890rj9gfqdmwbfd2";doc="14719qp1qjcx4wjwcarirj7iz6qmjgwb95b308zqdr197y1cvymc";};
 ean-20851={run="19w54ch23s75mhn94hxf4nphl5dcz2w1jx138kr0phfzpc6fri36";doc="1rylr9m7jrv0qq6pzigpm73z34p9n80fg5rf7andmvv0fcpmggk7";};
 ean13isbn-57514={run="0bzvkzpi10d9sjlsc4df5v3y7qycbz1qkn7ngy97prq58wg047gc";doc="1gf076ybmni0wzhh0fsf5w4sj4pv3c3w7g7m09k9607y4havv20a";};
 easing-59975={run="0zdyvkqydl713p61izpcp2yz6n2rfsf853pblh6xgsjj1vlhrr0b";doc="1f8151jb5nzd8hj3sii4ca274iaxscv5w8fxp758ncshr3bv0avy";source="1hha1qs4wy6s2162w61gpik2hrx73r83gja1llbq80gyvyfgdssj";};
 easy-19440={run="0jrza9lf3yf4d1wm6nzwv5iyfia6625fjvflfmxsscbmwqickjhx";doc="0f72bawmxrxqk60xb61y079bqpxj8kmvn167plbq5whq5b1fsxfl";};
 easy-todo-32677={run="0fkwlzgx20lj44cvwv8hqv79v528k1gghx30lvqhg44wqirkmy86";doc="1yj3c25mhkp16n49riza4qchr2pqycqmb2k80syn5w3dzrj021s2";};
-easybook-64976={run="0974gl5ygpgvlmk3qgf1nzgap52in9x66nkfz17lz3lzx1z11yh7";doc="1b7270i9a3jykw09zyfczqkfvkxh1axyz61gf1myqj4ijn3610w7";source="1hf871brkkg3vaaasia62rmg4fsdiy087d9qpy7l6ix02s3h2c0k";};
+easybook-69411={run="03sd459lv6k8v1kss8j62pq4fnd45rylxa6w229sh54xmzpfpq92";doc="1ac88h085rmcm3r25dq4abdnb46pksr3m9kx8hw62jcf3vvvdc31";source="1a3cxpm0hwcy7bf1mrsgw77rl5sgi9g6ckv6scsmlycr0bw4an98";};
+easydtx-68514={run="0pfd66n156hw6g2s2p8v35gjykacci9kpyx75zcl1sw95ry9407g";doc="01qw09bkafjmkmhg3wqqgw8javrar7zxrf9hr3c8xy14rc36qkyx";};
 easyfig-64967={run="164ncaq1l6hdrjp0zinynf825hwsky1xam2yqxphhk90438n5hzk";doc="0hc63z5456f00a2x70ckvf3r54zld4d3r63a8d4ra7502kk8s9n6";source="18f4bb9yf3f7q96w79rhx8h4svlxnv0xc6xwcawav63zsk40mk7q";};
 easyfloats-57204={run="0vbg5dz6wxzk20rn51xv7v526qg8m0ih3wikabdf1bfb4n093k2k";doc="1ncmmmf2w313cpsc9s4w0c3gzvx09r26gwlxhr9rszksvd4y7fay";source="1ih161wrkxf8sfm0zyl2m9xgmff4qs6qvsz7mzxbjl1j2zxzhhf3";};
 easyformat-44543={run="181x0sycxhwcfna2wblvijjs32zvqs6xl2am4hz8204mk321rjsb";doc="0fg7y02717rk6ikw32qxn6iw7l59h5vc22aif6hs9xjnbm3nhhfr";};
 easylist-32661={run="1ghjps30fa1jvfkxrzaxqvy5ilacdyms6dl8bf2qg6195w2sgm33";doc="13wgq2pz9jw761p2yipf23k6lrx66bp25l50446rp1xz47yk386g";};
 easyreview-38352={run="10wl0aihr4c55b08mxafr0jd1xaz640p2kj7n63w3wqxzxlpq42i";doc="0nnnr4l1b6qhp75n646pd446s7c3pc4fxsxw84gvfqgankfsx3zz";source="0p7xrqivvb685d0xcljyi4whh5vr6yahskdl63ynw836bmin1b3z";};
 ebezier-15878={run="1zmsrs7dpw5gwh6h0707gxcpsnbb8qklsqnyr0q30mziz1wqhdvb";doc="03afnc0nw7yzv03n4gq38js3y6x5v0kaxi5psmnzpf2lj0kfa7l5";source="0492q2l7yrv1h51x4swqzfp74k9kb989m0lxbgvgffh4gl7zhi5w";};
-ebgaramond-64343={run="16k55zck9hczmizx00gksdclfdhk4xgxlsq3hww2634xrky21rik";doc="13mj8wf4i4nxqbs69s9gf4xsq8s01xkw245npmlxxchi6gd1jhfj";};
+ebgaramond-66604={run="067amcvp0bifrxyxsbkwj98g1j4m4mis3dyfm5faa6k53fpwzrgg";doc="1sbi8vm5c1hlf65kh30r21vmy817y8i8i9l3h17ys7dfwi0d4f85";};
 ebgaramond-maths-52168={run="1n8xfa9qmxsrpy78h98x95wks24fck3mykq5n8x0qasi4fabclnx";doc="1x4l9mi2cc1fx3qbis2ibshh5wlfn3sypxcrbcr9cwwhpkg07sqb";};
-ebong-55475={run="1khaz8whw26znba0il6cam65q5sq9fb69clsk0s8qh26hp9xmlnw";doc="0fa0kdipnn5hgfpjh8rz3l9zz97i94v45xmsxjgjn40xqnai3v27";};
+ebong-67933={run="1skwh2sly6bckgc05b44cvl2pvn42y3970rvmnlh9xm2x5ql015g";doc="0fa0kdipnn5hgfpjh8rz3l9zz97i94v45xmsxjgjn40xqnai3v27";};
 ebook-29466={run="1jy79jrf8cd1rljg9f3g0hzkihxkpybvbgjnkzd5y6cfz7zaynp4";doc="13cj8a88qqgi6kl1d7kb0cizl4i2pjm51hqnz9q03249av3z377q";};
 ebproof-57544={run="12dqzyi84jlzm75d77crxbwv2nzyw8raypdj60bjrn6kifav7v0m";doc="1d6g3v3hskgd9wrddkhf7qxg160n6qrfgzxfswajswk0kg2w3675";source="130d3af0n0gjvnm0ad3g6pm8dy1w8zp0q7im3gv1kqbm7k5h0hny";};
 ebsthesis-15878={run="0vg8n4xrlxyjx88yzlsr82drlrigdnb870p0rxd1nv2ik2i1jzri";doc="0gqh1zxb1w050a9dqnc5vhx1jgmk9kqk9k591s05xckidhnpp2v2";source="0rg2bs23051ravdqv14k6yrrc993xpxf61zi8b94f0rjm3mg8f89";};
@@ -1146,7 +1160,7 @@ ecgdraw-41617={run="09affkfqlsrjgn546h6fkbzi4y7dy9zgf4i5a8kw6lbgl631gvid";doc="1
 ecltree-15878={run="170bf0i0g2fnmmv9qh0jrdv7xn2xd5xmsw8dpvw8rbxfmn94l52b";doc="016hlxjhfzn2pgcpxi7hw0wnfd25idp70jvig7p8614pvkv3bsby";};
 eco-29349={run="0vp39dva31kjs4ckqdy49smhicq4599mqly7y9d9xfz6gly6z9zh";doc="1wb866ilp8hmxndqys1lpw6zb3l1nyl583z06vh8nfys1hp0x0m7";source="1j3ik11vjxc1dahd0p7jdcjjqq9i89fnd9514s1lq5499h8jg159";};
 ecobiblatex-39233={run="0mrrb3bm54d6rpwg8i534wmwkh7v6qzysvd020pi5pph967lqp54";doc="0mhwspy6k7ixjjxk5frwklasm0xzwbwk2lx684ikv195nrpb6y8b";};
-econ-bst-61499={run="0wdzjilmh9k73q25wdprppnjc0xkas62g50spkdrnvr4pagvnvch";doc="0y6qp5hn658gfwavkq4s6s8xfxy6lckpfsc1zvpy7jc5vkhhpwa0";};
+econ-bst-68761={run="1jhvw59f913d35dx6zxr42bcms0i0d12kxd832km50kqi08wb50m";doc="1akyhlnd9g3rnw6kqi6cm4h0mrr1f3rbjii36z4qydl4gri4rvp0";};
 econlipsum-58390={run="0xca6dhbz49zxn58g5bc2yis2zci9v5iypfh3h53rxhlkbfbcqln";doc="1pb6z051r40wp8rv5makhaxbf23aq5j5gm6pw1khvhk806rdig4w";source="0j26l888qx5q5j39875iab4106fkn3ign9fmbcmcvf42yzx7mav9";};
 econometrics-39396={run="09zlc6943vf9r2n096x6s0xwbyl4lnpcv8a1hmn81s5czawkrqbs";doc="1bv3m38gp92cdwhvpwrhs4p34hrmr8800js6myif4r52gnd1q4mb";};
 economic-32639={run="0jyw807d23b22md2ib7xkgi2jh4mr50pczjbsylh2gdgsplxgaw9";doc="18jn833w1chbi0qamdxbrrp39945drslxd2jkzi2g8wcca7l5b71";};
@@ -1162,12 +1176,13 @@ eemeir-15878={run="0hxnd2rxrm56vblrkvg01c1pf5gccbmvd9lvrwlch89flxp3fiyd";doc="1s
 eepic-15878={run="07hg546cp5ab7x4zq25m7z184mvg7hyql7dsbwvgpq6hyz5pqzyq";doc="13v8n27iw1b7qvs3baqqyls9cp2mqbycrbax7jnr8mfvp83jmpkz";};
 efbox-33236={run="1jss3bkgyl365rkgzil7xp4pab8k00w57p60s2sh8wrdy10qjsda";doc="051s9yc05ai0yipwm5f5kdqxgiyiyzmzyxf8rbfwl9ir90k84fq8";source="0fcrnrfk6yrdhj25xmchlaimc5qqyhri287b9pwdwsxlr58wgx9c";};
 egameps-15878={run="0y6naagmi9qii1k4qcp4svczxy5vbramd9wg1ixr8xckp806kn58";doc="0i36znlwls01ch6kns5ikw90nbq68pn71gpvfizf0x9ipymqwisl";};
+egpeirce-66924={run="1ld3k182k7m17pixv2acn4dzlcrkj973y2xjbw653xhs2g3mr1va";doc="1mldpazfnldk4q0r0ddd9rdg9ar6fvabqfb3r2g5c0aff5v2p30h";};
 egplot-20617={run="06i2jh1srww8111c2axcwn2lcs7lwdgp7npn2qpi2x7g38i2kkzv";doc="1silqbylbkxfyzacmyvc3kf8g3md8931ax1s877p5x5zi0vpwbz5";source="0qsyqhmx0gcl13hlhbia9rq82kkkhc6mhmzp56g9b62qy2wl1ss8";};
 ehhline-54676={run="11db4dh948g744bynf1ydlg6jk562picrzfbh5pszxvfdag91kar";doc="18jr25hnp8hg3dbjgf16cskdhm6kx9nxliiggqixb7c1ii6mmn2v";};
 eiad-15878={run="15l4wi5hfbx8lp91jddxwg073z0r42qf93kvrqv7bwhqisk36x2g";doc="074iirkf7fzdxik5yq4jjk2p8c5k9jj8a6n178aw767j18h4n2n1";};
 eiad-ltx-15878={run="1ifiigww9nk6hw342qj1rxzl2b94f54cm4vvrpffxy9qggwkd2zx";doc="1h4cm5b0mllqflsgfcjdh97zn3nn3d9gwa55w5kyimmxgz516mng";source="1bpy6f6d81n95x81rgpz2r1vzg9gw04309shnx8a9jsx17fnm4nk";};
 eijkhout-15878={run="00y3y01jpgzww1x6zjh748hpvizlrbgrv04p8aq3cm2pzs0g17qk";};
-einfart-65475={run="0s2ywhhs0349xw120agj8sx7fy2npdh4gk8f8hrrbibn8iz0limv";doc="1b9h43r1qa6fp6qzgm84iwjbvnimyk82dz287j9vrfgyddqi0r3w";};
+einfart-68376={run="1xqwx5b9fj88p10mh8hwjqs7p2j4p62cj5c5lq23l48i53359wcd";doc="1cb85l2pvgw6qf3lln7dw6n5wlvvr4pk9l4yb6ajrdl6lyylzifc";};
 ejpecp-60950={run="111sr2lnp3b8hh0hyvdf3zv6nr3m2ghl8j2zklq0fdimm7ndmqcw";doc="14ww6ilq1l8f8i4fcafl4v0im39gajkr5189180lbrim6wk8gys9";source="14223kfrwhi1hby3lqadp70pn9ykagf1cwgqhapm5856iai4ravi";};
 ekaia-49594={run="009wk5qyv26rdi9gjbaqxcpsyzz6l5w8b0wrg9avspq81hrjkg9h";doc="1rbcnilarzap8kdsvypjwin1d13xskqq33wg6p0p02b8gaxzf3a8";source="15fl2jhhv01vl7ggwmddpldkmwdj6gj99851aczv47lj24w093bc";};
 ekdosis-61113={run="0drs97iqw8018m15hls6kg222r0jiyqg4n9ksrgrl9g2sd25h65d";doc="1x177sag8ki0pqsbvs6vjk07zf45wg8fmq9s50v8y4qc0pn5xa4v";source="1l6d4a4smjmily8mf6rlx4j5354jrpax15iggzqm1ncspygj0mfd";};
@@ -1184,7 +1199,8 @@ elocalloc-42712={run="0jj85nyrq2y7w7pm9pq8qdj3xszg5s3a1j8zx2dvsy6a1s7mzd8i";doc=
 elpres-60209={run="0k8jcp6bgzphlg6kh0krlm95d2rq9z90hscsncq1m236hrzfad3b";doc="0k6ygcd10q78h9f28y091l171bmaw7ibk9npi3kpx33vmass118a";};
 els-cas-templates-62931={run="0lk027m6s6z877lilqv8sq3s5xcmmqqhlhrh8p1kaalw01g53hy2";doc="080sa0kls4w4p8lgvahk5an8p6lmkf5kywbzj1wx4n5mqsj5mpcn";};
 elsarticle-56999={run="1jjayypcaczxw69dk3v69fj31apics2356l934kmag49rwfzxail";doc="0z7iywirs24112fmdl8fm818320s3ilqlgc7xi6nl4idjakhfmi7";source="03pw09cw4hd0ixfa88mj7bijj9r3b6a6kg53q4hzzzl97bf6v5yc";};
-elteikthesis-63186={run="18i8lb98kjgw364cihjrh6xfyc3m25k25afgbwrx2pz30vyx4lpz";doc="1dshlrf2m7rhrl15rfabpx40iwvmm0bw3qx9lw3jrxz66b6649xj";};
+elteiktdk-66821={run="010vxx6ddmbcj004a9f17wq6a9myx7hfvnmas1b6qsch6ln99wdn";doc="0d9fq58svc80kx557kmqa7dfz787zbzhpaifswkh2f0a327f47is";};
+elteikthesis-66820={run="1xrilac7n04s28ww54pdl6zn2dwnwl1lqc7xzhqkrinbfxgchg03";doc="1pkkwbb4ialcmjbcyv82psq6g5qyzxg8hgvgp2n0xybvvxh4z7mn";};
 eltex-15878={run="0k782lxa85dsmqbcw5q8gdny1lygfsv5h2d1d70f6y0df17r57ad";doc="1hshzr96sn318b7ssv6f5md23v997xahm2232c3kns3rzpfssy21";};
 elvish-15878={run="0hz3cfydpm0sq6s2xp8q44k81xxhqm5mmrx5aqn5wzm0kr52pmsy";doc="1zzzqgs30gbhy8ja13zq9b2s6mf1m47ms5rp33jc5xp70w5cjp45";};
 elzcards-51894={run="14vd8vnnss12flbszsg8357831r986pk7hhpcwqln53r6x5kd543";doc="084zcf7dqig379cqc6ahiqkm8f5jwqgiizd6h5ki28pcbshi49rr";source="1ipavy4km50d8larywyb63dldmawawzfw3x6m5nzvi70zkx1f6rw";};
@@ -1194,6 +1210,7 @@ embedfile-65528={run="179a168b71h8zkdcfr7krcm2addbin9chckaczj8a8ayy6xr294l";doc=
 embrac-57814={run="0n2ll7mxgw228qb3j0x111yyiaa4ikq4797g5k8xyakjmv0w3sv0";doc="1lqapcz7iv8z7df7cyddg6ylh2b61ndgbfhnfa8abzgsqz1h8sjy";};
 emf-42023={run="1w7whsff28cf3p0i8hii1lklb8i541di3g4z5iv2rfm4xa5m6i2s";doc="04qq6ljidaqs2i4lxp3m1varm232rhd026qirvr8q10vpkd6grad";};
 emisa-60068={run="120aa7a4m1psqx3wclwzghq0fcyxs8djlf79mp2ds56y0mpsqx5m";doc="132h5m80s24w51px615di388r7wkkqp8ihwapdz770p5pywk3c2r";source="1pspisyb3pxj2nfkpzzxc7pghackbl1p9dwbr5iqzwwv37bxjgli";};
+emo-66944={run="07df21ziq1ajpmff74w5vcsvh0kd2dx7vc7q61syqr2yqvj635cq";doc="130zqvzv94hi0h5m742kn7vc8110cwjd3b59dxdpihm76gqpa9zh";source="0hy6pvyxg0k478lpdfirb92mx28w27dxzms5al3pjq1mhr04bmf7";};
 emoji-59961={run="1pzx221zrczj26pdw6ijai6m73zgbz6z14d5wlhv7albrh4ppxgs";doc="1531y2a3dfmv2y2xa7xi0dpdkh61skk5makiyzs8mz3zl19n8nkg";};
 emojicite-55131={run="08y8qg37m8b3qf2wkbg802kmx359i6ki445ljjnxybs7apvxjpn5";doc="1iwlxc5ygq7l4qag7yxxas0rpcywmjcv5pcayrk5mz34xr06x5f8";};
 emp-23483={run="13iaipg8n1njzbnd8s622irizd4cc1cbkyc735mplvwq10q2jxqq";doc="148l1xq42avnf5gz1sqjcdprnkcbgsii3fm1jiamx18175zygsdc";source="023jc6v2l580x2d480x11z6rlknjjvx8g3qkcrvdi778h5m5bb94";};
@@ -1218,7 +1235,7 @@ enumitem-zref-21472={run="1isvqbp7wvib81r0yn7sngxa2dygkfm4jn4rdvw0kp8rknam91qh";
 envbig-15878={run="1szn3ngy2iwzbc9y5fpchr5vpx5alr908q8bfg94lylmb8lx2kb2";doc="1y778gc6wl11afjjv2szypc8jf1g7gg2s0lvhv2skl1n3wpb3x7a";};
 environ-56615={run="0in2a7ar0c6ji7qhrbgp4bglcr2cmb9imxch8fcrwkims4g3vjp3";doc="1pb6nmprhz3j9dx2h7sw0y66y1qlvhkjl3ip28bxa133fgqab148";source="1jkbi2g2s13rngwqvr435i9n94ycnzp9xa8szik0nnmj482ah2hn";};
 envlab-61937={run="0q84vy7zbjqrrvy0r2j2hpbg9b5vwbwk860q24azms2zxy50a8vd";doc="16fnyfvvixp6lfgvz32w92q35s21c92556qxbgpcd94fd1pw2bki";source="1fygp7wpyzhzh070sa61qk17h05rqr4m1wqp78vpp0awgkmdji56";};
-eolang-66283={run="03zvmjbn60s1cmm5b2saz4vqpyjhkq88p5xb90d73znv87vnh426";doc="03l8mr9z7vfdrpypx68y50dj443kknnv6mh7416p56i486pdvaxp";source="0rm07sra8mg580higk28skqwsl7x9nbsqcsa8xqyfgcpcssbzgvp";};
+eolang-69391={run="0iiaj4hc14b0ln84pb3yb3rk655hxx5w2gjgkpa7mlw4p53lc7dk";doc="0r1vffb9mi9p5zf26jaimd68k9yvlnr00xz2j318hg4chda9v78w";source="15z7pa7992c18r0n7y0rlaqn1id6gyqgxqwgv9g4yaj169crm7p8";};
 epigrafica-17210={run="1kawqgy9kbr535q1v84kk29q2fwhg6yzmgjd5i7dyg06cy0g6rci";doc="06ichmfivx1v2y67f5nxx02v75wzci6m3hhg87kc4qik61yp8lgw";};
 epigram-20513={run="1zps5067mgi7xq3fpjvjln8i0rz53j7qn660khraq8ribv4glnpf";};
 epigraph-54857={run="1lb4wzjcag59dcfvizvng9s47v3x2af6v62hc1x3ck3fqzx9haa4";doc="1h13sgi2bxknx2m5kxxlv9p4fxf1pxh1zdwm98h3kamzb4a4gm81";source="0kqfrmx732m0a6k21iiq1ar47ff50ri3f5wy8ib6ssbbvd9agx4l";};
@@ -1230,9 +1247,9 @@ epsf-21461={run="1i973a2hp5ms1lzgf3g2b73j34xymak9f8wz88fqczcvdfnnag2g";doc="0d6j
 epsf-dvipdfmx-35575={run="1p0syahj7liknn447lb83p2rdv8xazpgabk39rjxga05pfn3csh5";doc="192x6cg0dh0j9dknwb320g73hid9px635p79idr33x2zq3gaaw4r";};
 epsincl-29349={run="0cmjwns5hnlqi1rk6py4s07kbgflm046pycpr1lr5c1dacmiycxj";doc="06cyyhnphdxigpq4bkg28rx8h9kgmb3ywpbdak6v6ivvlksxgnaa";};
 epslatex-fr-19440={doc="1xs9977g9g3i6sipkf7i9jdl8sdm69ci3161a4p7k66qbizi7zvb";};
-epspdf-66119={run="1yjga00imbdfjqdqnfl9k4dhyacqq7c3i814pn5a5fz5bbyv66qm";doc="038fw9ycr0wpaq2z2cwid80lizl6vvj5q0i4bnx4lgxkfa82i92z";};
+epspdf-66115={run="1yjga00imbdfjqdqnfl9k4dhyacqq7c3i814pn5a5fz5bbyv66qm";doc="038fw9ycr0wpaq2z2cwid80lizl6vvj5q0i4bnx4lgxkfa82i92z";};
 epspdfconversion-18703={run="0arf6kmziarh1sgani0bnp2jm8psxj937hrkaslfj8fm2s46gcmz";doc="1xpj5lymdh9w2ary36sx66ib0hwbjfbbhhcipdq4nkikq7a8zmpg";};
-epstopdf-66465={run="1f46zymj0yd74sw5a1yyfnjiqszdccfb7fnx5bwqicml3b1a7zwm";doc="008s96msj0jxhxynsckwxmhqnz24zw5bq88hnfd56wiim4iz6b0c";};
+epstopdf-68301={run="0rqfnd8x45m923lr4fwysxk3icgnpmzrdj2w0gif0dg4m1d8sggs";doc="1kjqzi001nxbrikxvc9l3fpc0pz7zhmknqghwd8423flym610vv9";};
 epstopdf-pkg-53546={run="1bd7bkkk5hbp0bfzrvjpmfrrvil9i2pzmzl7aaa324q7w4f1w67k";doc="1lwv6av0b4v4vzzk3i27diw42hcdqzgvis1fk4fclkyqz7w0ai4d";source="1qmvc299bzgfrf31sa4027rgkq3yjg57318mbx4gl4cwznxr7zh0";};
 eq-pin2corr-59477={run="10wrhqr55r45azk4z840wphwsfcm6mamzafijqgldi2g90cp0hsf";doc="0ii5dnaw1lplccp18gjkixxsygacz44r834r0vaxfkjmcbx858yw";source="0l6p9bwaszyzj794vvyw3xq8nfaypxb04ixf25wniyg3kr54a9nv";};
 eqell-22931={run="0i0n1vb43vq2axghik3sbs2cja2fi78jl0q5xcrkbn5gr6vi49md";doc="044bm3jyll74jrxh8va8g38shjn3b7wzchjq39n4rjp3238wirsm";};
@@ -1245,11 +1262,11 @@ eqnnumwarn-45511={run="1mv50r9g43si8kmdmf3kgcjmw10kzipq67ssd3vllja4pn9yzmz6";doc
 eqparbox-45215={run="1bg49m7nzw20g2g51g07d7sgq0sjiisrbaq4ca31qbybr2rxcp12";doc="0z86nwj06zn55gk32wwlxbqfb12a1fcgqizrpagm7yp0xr99b8wm";source="1ny9mcnb76yds4l7q35wdm0x2vzia80aaqr12idybkzi75a7b2yp";};
 erdc-15878={run="02sf80cadhv7if8arbjcsgqkb0hhdrlpq6izqgcai6vb7xsc6niy";doc="0nv1yqxjmp4mfksmxm373pmy3zzbfcfvi683dalpslzq2qyz20yv";source="1vpghcpm9a2pvi3plh7pjki7sna3hkzvq2xj9gzmhqxcpw3jskwx";};
 erewhon-63312={run="1nw8y88z39wm0f312a8r0hwmdy85nynrpq8k78l1iabq9i03316h";doc="0wp19ficxpgay4bbs1hg3yrxmy2hlslgyawa03naaxpy1jysx8pw";};
-erewhon-math-65684={run="0qsb4fxsv0fxagmia1bxk3m4nl6aprczj175gca6h3x5n95kprwf";doc="0ph9qzmpz21lxfh69r0m4y4qj73ld236qhfx7l0rd54rabj2nvcq";};
+erewhon-math-68990={run="0ianrz91a3wc11s3jixilkzmrhjj6cw4h88ic12v1njg48d7sl3g";doc="15k7gzyrwqn3lr092sbcxfq639cy58vwgm8sqpnqhrbbzzm56304";};
 errata-42428={run="0hp8pls350swslim7m3cpnw23v94vnqj9avfvx9hq0bgl99szc5c";doc="0h30iip57km31074cya5fyhlmyamix8anpk19rqbsfb43h3988g8";source="00bdq20dwwmq0nw3c271ah0bclzkzkwbr5ak4y9asnab1g6fl5yw";};
 erw-l3-61799={run="0klwkq6x58bhqgc849yv68vg7w8ivvzib8rl84ipf3gl1hk42761";doc="0qkg31gi4jhgvc3i42cbj00ccavwrxfmygngn8qxfgmsphx3a41z";source="08lh56xzj3wjh1dp72ky8ckga8k73d3alf0vxjkwb6b6krzz4gm9";};
 es-tex-faq-15878={doc="0wp5jx1qs4yp3y4qpwqhpw7rnilw3vb2z5xb4lzwph6zw27jf6sd";};
-esami-61596={run="1v5fzb9ws2785ylh5swfb0hjp3x8m74mbfzd2c5z9l3wbigy8kpp";doc="1s1x0mld47z50dqfyhglsgwyjqzphky0zqy67jbkrn7mmxzz00y4";};
+esami-67707={run="143pdgx8lscxhpbh87pwg57m01pcmax0h46g6f3cqixcdvfh0qp9";doc="146jgm694cvw7wn15q1p2ghzspb1hlr5hxv1ddb89mgkgviqx3iy";};
 esdiff-21385={run="0p5d89r6pzsf0hzaky89843pa4z2n4dgq3yg8li4gb5m2b4fjfkg";doc="0jw4rhkshni47zdk18b3gd4amyhh6v9a1mgja58wmp2vrwv1nn2f";source="0iwkbkmkl31wmdrd1wapd94p70mwd45lqld3b7pfb0j287nzkzl6";};
 esieecv-59638={run="19vmccxpv3dp1ysicrj5sr6xrsqgaaz9109q3gf79gdvcfp0g7lm";doc="0ji6pf8b2c3ka17n4qgnykfwhy7nh3zp87cg913j3rah0zk6fqzw";source="0r10sipb7hd5dpzsh97qiqb5adx5j6iw2aly49f1w0l8pxi0fyyn";};
 esindex-52342={run="1vxdlbqc3j33gdvy04pifd0cdfvnjwmpqbmz305g79733hvlbw55";doc="059y8wnnzqn1kfy5jhbpk8zi4lgx7r5s6xg6b7x3iih1ccdyhwma";};
@@ -1258,31 +1275,32 @@ esint-type1-15878={run="0nfvka430084h72w0gdlvbxxlay9lp5z76bckmr5vd1vqi4jz8kn";do
 esk-18115={run="007jcqvxp41h0ky25mgn2k3qdvyiyr3vj9mn6ml1zsvy1ymxq4dj";doc="075wb7q7z5idhqh39isvkacpgacfcv966af904yk9ralin5fwbr0";source="022n8rh8rwn9y4yx1rqpdynw2lpm8npwd45y88r2q29qcd9f62qb";};
 eskd-15878={run="0cpaix3x3qw5mgaim5574pc39hypi42kmk7yvnbvf3qj5bv7jkyz";doc="1zwpxmr721b3ij4b4zvkncddy85d9s9ma7llajp36qh4vl0bc0cf";source="1kfyrzs1swin4ph70ifm1mnsm77dprd96rsw228liq1cybn5bgii";};
 eskdx-29235={run="0h11378qh1y4c4ac3vd9pcl93a09kpsh0vyqcg7mfn01dgmqfam1";doc="19bcl4szagigbd2jrlz60vhhphm86667chciwlk05k6hkflg595w";};
-eso-pic-56658={run="01q25ka4aqpz46z84ldhd5rs3xcqjk6rl7j0nhgw4s2lznrvrpry";doc="1fglwrzd52fv11i3bq60d9fzfm4h4zh003nks9wgprdj9cz0s0cf";source="1si3j1cylgck60rqlk5ral8mfdv348xp7ialwakynqzf5yv1ak25";};
+eso-pic-67001={run="1j340mj5ccfb5z28dcgs76jv05yv2vkfqxszzkd2xg4jkzpy0479";doc="11qlj80gnfqw496r5xa6fg34cmp6sf33k1drg4cpq23y9slrwd24";source="1gh64sql402fcg5k6w19pkx4n3g1aviw006yp1zdaa3wqnl1skly";};
 esrelation-37236={run="1gjwrnd63bb66vy7f74alxshcr5pqz8g8q178wkgyrm37xql6kni";doc="1nnwpgjy0mzc2h7sp2igqwain2nz6374qn4mjvj6g8x02lkc1hsa";source="0aqb63mzvx5hl178kmy6aawyv5ri8favficfjjmkpq3d4hgnrwl8";};
 esstix-22426={run="1qqs88wpabdx0y92md1w8klmk7ncbpm2jqmi0j5sj1c2cn82mp1a";doc="1zzbwvv8lbd27cxafj6qc5sml4r44ymrdvaqn2h966alzga9ify2";};
 estcpmm-17335={run="1v027r6j4vxxvdccq83irjdj1gf6kzy5i9jb1bhsv7c2gdf3ihyx";doc="03q3z9if5hswrr086zi907xmjaijh266l5g9a140q0fivjai4hcx";source="1qb1v30ijky1xhh5dahgprp3fhxfm6kvlxgb059429idvm5ap90g";};
 esvect-32098={run="0fgcy91ypllj3i706znwwzri36ja2ca2inx838q08zbs8gqq4zah";doc="00xpfzzhyrh5p563faa7ks0vrrc08ndcpn72a72jmlhk8y8bn7sb";source="1han75c642d3qmr47ppn11f7q1lnz8lcwj3q39nh1f81vi2w6li8";};
 etaremune-15878={run="1l3xz9zh5f3wj3v3mvq9xk4q6vc7k01pq3ivsvm0qlkni4bffyja";doc="16v4vsd7dzihnx72bdz99994kpw6r5im659hm51w5wyh8gf8mp29";source="18rcvjpyks01d6qkq61rmngmwwyxksh4i5dmnvq8ihx4vj3zlgqx";};
-etbb-61872={run="1qpfadd544dzf61q7p6xirkv80bqz9jvvx0jm5rd3jjm12d95rkl";doc="1hiiw6hhks2w4ngk3aw992swmxcfhnkf2b92ryspbmd6mycs70ka";};
+etbb-69098={run="14rrzb8c1i58iypi7f1wsj9xp2x93s37s030zbl7xj8aw9j5w4mf";doc="0vqrl9i8mr02qb12czy09x9vrch6nbng04618h9ampxs1m40sha3";};
 etdipa-36354={doc="1jp35apalaa1lh44dbn1zayavv1n3wkm0v69hgy8vdz73yp5yvhz";};
-etex-56291={run="1zk4dp55r1yjwy1bpigyzbfm9nh3np544hfmzzfhdg4i4yps87k8";doc="1nsh69hzpk33ljng9g6drrrb5c59cm58a058damk3s3gzfy7a8a1";};
+etex-66203={run="1zk4dp55r1yjwy1bpigyzbfm9nh3np544hfmzzfhdg4i4yps87k8";doc="1377j3czf6s21f7dr4qswzqvsh7xzzqcyjw771cswzgg7z8k66nn";};
 etex-pkg-41784={run="01aa6bn8d46ql8aw8kg9k2c3x611jpd5hx3h6g2fqb2lvjqnr1zp";doc="1hcir648vyypvqa8r710mj9qldir9yp2lq7biv3s9w1vl2ssw18d";};
 etexcmds-53171={run="0m0kf57wcmy50qcca2v5jb8z4h7z82pja82igmf6gsm7fksm3wrb";doc="0grl3svqzjh5bdg4jwzmqaxz7chkqka0vn0hnjwpyvm52ngmckyk";source="1s7avnnlr4g8xjdfmkm82aanz0k0cnhv2dyar30439x2indyw68c";};
 etextools-20694={run="04x0a0wy3avac8cgjgq7npiy06b0vrkxa0hizpn4vkzv7xbq79yd";doc="0z04a5f4c1xygqsgkss4bh0s41aqv0i61sh6x9h0isrqlhbvrzs5";source="1f0jr38lbsrdjxhihxks57y6xw37ghgmydcq48ll14nywx07qa2l";};
 ethiop-15878={run="0h1h286nq6f2bplxxkpdg8mr70ip92c7mkj9lakxzcwacsj849xy";doc="1aqgl8hvapg3p0f3knpirlgnifpkpw4jb22zncp1s26jqjc9wdcr";source="1cc66b7ad2kfs4whzbnqdzfswn32y8h19bj3ad20ia24dggir5mv";};
 ethiop-t1-15878={run="1xbkh7xx71d19ghwfq8bhjnf7jmapm13hp2gr6ggzavcmzf12ffz";doc="1lafizx606kv455bhf125hl2xqhndd5mblkd0zyvqgyir9bawcd9";};
 etl-60998={run="0cg7ppbc7nlgmcnri2iz2is8c5kj03jn0crw4m5wmxvqkkcg2217";doc="0jqpybirslqyk7g9g27qbbvz3k02m2k352fxl2w1p0h7hhgk12a2";source="1z244p46j7hkzry4n1xdbzcszjgwrlxd2jmjblbrldj2ba9sq9nd";};
-etoc-66351={run="1i36wkad8kywhnvfang4y4h5zcwxbc5lis73z40czkfkgrdvmk1y";doc="0935nk69sz02xpsrl694zxhzh70yzz1sbpqd80akpbbq6yi6wwn4";source="1i9gq9fcgzpvd3fjpgxggq80jqnrgn26v5nzh15dkdagmnzjx163";};
+etoc-69343={run="1kvwyy0wxwwfkbmsh7v5kdvcb9sx7ywzcv5cx5nmv0sh92ah5dgh";doc="1lh8pfcj2iixm9r31cawfs7vpg8gd4kgjcj9yyqx0i2fksd1gs0g";source="0clv4cllb4nfchvc4zb8k25wzlhl4k5hnijl3071sq8aldiaqj7b";};
 etoolbox-56554={run="1g944zizyl05qz6lq1k13hv9952r97gc1i7is9s5fckz664075jl";doc="05c3kvfwvbg4bxf3wza5rdvh98mnxadf818rsklxa5g2lz44jm76";};
 etoolbox-de-21906={doc="1vchha7ymvj51jfnvl76rxv466lzfpxr6xcvwafxhi78w4bk9yry";};
+etoolbox-generic-68513={run="0w0mmw2f2lry84jfx617saj29nkc620vkrkg1kmnnxvvxqi7jd9a";doc="0l7kbicibm8c6p5yspyr1y8aqh5d3bswa9h58787r4hcj4pr2hc1";};
 etsvthor-48186={run="19iza3bimr7xxbajmq50iqd6cc1h82kz2lixwphn9568d5k5vjm1";doc="13cijd5cx7sks5jdy67hp1a08f4y223l0hxd3w7ljnvd5azzyc1f";};
-euclideangeometry-60697={run="16fvn2wnm8n9d37z6mm7s812qyvzxyyiq0f868gjjdb6a1sp9vdn";doc="00s2f0fdsjah9w5lq0hrszlddyc3d94bkj3zd8aa7rg3sy2grjwl";source="0p3bwql4rzllyiph54z0nwxnrgwlx3lr6x9zi872gfsbq8khgsjn";};
+euclideangeometry-67608={run="1pa69p2p6a4v8wz3m32xd7vy1km9zksszj7zjyqw36gfcpk5sxlb";doc="1d6340xmamzrcsi31i0vifjxhy42ml7v3s6r1r9v6vzimh1iz5bi";source="1l8xc044kcac6344v21dfysc6la90vv822mvik984zcnkbhxy4jc";};
 euenc-19795={run="0lh0k5g6icbbzl1xzzcj4sw7vjhqpn59y9xbc6cn58klpww8ywdh";doc="0likhzn8afsq302aiyjk6adhjimz0naqffjrj2s06c6681z2inh1";source="0bwr4cabh3w4jbx476ygxv6afxj6sblszr47awr2nixx0m018ndj";};
 euflag-55265={run="168c6y6rivahj6cw377l54jsykpxaxvv3nbmr80w19d90h4sqa5l";doc="1a65rasxx88bkz3bg51bmzdbq67yphljaa8mgkp2b69fjsifm229";source="09g2gn9ci11dca9s8bgdrjaprzb66vb47ssfnj6n061glz9a244z";};
 eukdate-15878={run="17r61096angayvbdi9r3d7ljb1a5z9q9r093kpgdsi11ahcgsr26";doc="0071bi5m6v5ak6g5pxjxzq5y5353mpdjx4f2dbznkmfd23wp8j7d";source="1p6vg8nj8qipj59jwvp4izf2dv0l8490773h6j87wlclnnnlh2gq";};
 euler-42428={run="0f63sy9zs0myb76wqgzww48g7clq6ni9kwnrfjkyyc4lacvd36in";doc="1rl4bxzlmw95pgcf7va9gsrgz89602a9pqvhiym15b5hdwc5cb07";source="0fy3dx3bf8idddxsj29yqd7bsv7cyyg8q9njmb3p0mw7laqrkjxl";};
-euler-math-65685={run="0w6z3lafazlch04a33rrannhnph0555wah49ngnmg2hakrn7bxbm";doc="1zk5c32h4aclsk5zvjsqhrdf71szsvdi4x7h78dclqgdr8jl9vyp";};
+euler-math-68991={run="060m4cizj9gh729yxx70vnj7rw660r7ka2gqpsd3r5jmgcpybppn";doc="0bkz8biyz0mzjfai4n4iy0xjslhyvigchnrargz10zxiyb5a7p5z";};
 eulerpx-63967={run="1ls9b076rc73cbc160ms7df3w5m0x840y7s2mg3wk22vgc461ail";doc="0qwhb6wxm8fviqi5kdy1lcplarijhca0ymrqnxfnrz38z3v4xycs";};
 eulervm-15878={run="1x0zgqw15r5z9mf4pcpnf1bdbwbpwbc49ij7gjrhf9jzzlkwraf8";doc="1bbd7f4dz3xp7ylgpi2wh9jf8nz4z6i2cvphfx53xvg555ln5v1m";source="1if22m5h8ma3bvrlp4jzzhjm410r5r7r2ij17prycj3cpj4r2nl7";};
 euro-22191={run="02kkwf4psrmp7n5mqyrc3745kj82p3nxswad9x8rw1hd7a278y3n";doc="1ajqx7axgqpmbq4kl2gmk97ibwbijqsq6z8ln71qla61j0mkgj32";source="1hkzjy4vmvh06pk8bhkpz09ln5jygvyhwzyznqkrzffay3i89cll";};
@@ -1291,37 +1309,39 @@ europasscv-56829={run="06vqrnfzcq04mjk38q75n1k1dw3ap7z5xnzpjmgss8rl6mjn4v3d";doc
 europecv-64037={run="18yrsk65jpgqx1lma8n0r8ya3izhmp2z6z534i46386858hm9x7w";doc="1mc4bch2jp1nkxsqg80g403r84brv81fn807hn5jq27fbi93py6b";};
 eurosym-17265={run="1bf4vwygyakr999k95ki53fykknizakz9npz2i1h3r5ci805l7z4";doc="0vmh23f3ksc3b3hym7iv7m8rsddk8vdbqr5ib49bjqylppvxrsnz";};
 euxm-54074={run="10dqknqlqrga9m2lgd74zx5hk4qcbkfvlzjgr304p94w3k7pclqc";};
-evangelion-jfm-65824={run="1y7pf1mzvwk9nx7xc8qvw0sqd9lcalm9an3ykcyr0bdcx3729aab";doc="0h952mka2a3sqxafsq44y7056gzzwkzkch922w2amgcwxf46wyh2";};
+evangelion-jfm-68059={run="0vrr3md73dj51rch8yz71fpr39q7adq1ds6jmcfly3ccp9n4wcil";doc="1d2lcdjwl3hd4hl1arbf9dc9jgn2b13l4hkmpxc7g6cd2ishbxwd";source="1kvwwhv5a9ai57bw22pvg5q79cyi4kf35yyyz5yzb8f6mwaj29v5";};
 everyhook-35675={run="11r4932kly5zmksmicapqxndqw4cdq1sg2x9hgffms6v8m5cwkfs";doc="1g9p36ki26vqdfiwnr77jxk1bna7733dml5k4s8nxq1drsklwqwn";source="0hv04cn2j7sf6032jxv18py368zbpp4ya15wv18qymbk6yv5najs";};
 everypage-56694={run="1i8fjcbk3flywzd55y0cbsdmzymvkynvgc5cvv6yh5y6nr514rjd";doc="13drphjv7gzgdzzwd6fxlngm2rprhls60gj4lz1v69sqifymnn4h";source="0vdi8yd0r33ajnym0f3j42ajkc2xs8b5yn3kmklmgx19kpc93ln5";};
 everysel-57489={run="090nizak865w2mgrflmz91kc0b2zmc6fq0xxrlpz68xwb214lzwx";doc="0bhqpzw5dpgq3842jbba9y21yj1808nxrg50339lx7b8vc5d2i8y";source="0aibvqmg2n26dici3adi849a5k20ck68v25vx1bz2f15q4gggd6g";};
 everyshi-57001={run="0y738zcqy85ww3mhwgrj1qh0vgpwfh2ib676wlr514xglvmp9l3n";doc="0ynjq4ibx6rr0qh5lajb5n9skqa3j4zyi533mxc10axp5zpxsjkx";source="0iqxf73n3l1jf32x571rw5wqwvz7nj3bvyqzgizvfpbnavqhrxfb";};
-exam-64134={run="1ybbxy46wn1xz4b6vd6g7y01ijl8a5yrgc6v48jilnhwdh25yklg";doc="0n8jxbi774by3mwa06yz7s2s635c2hiizfyhspq7lyg1v7qhid8x";};
+exam-67600={run="027v4pscys8rmrrrz7m2plc9blf0bif3rjykfhw597rmnmgmhxcz";doc="1cwcz5c0lcil552ryqnwsm9p278nd172p7d8s4jwg3xdzbbgmni6";};
 exam-lite-65754={run="092wb5wjk452i252g4chnjzxysmbhy30q4cxir32mx54z41yf0dj";doc="197mlnayyzgr9v4yf3w6m72k8fqavdy4k2q1c0v7slsvqad320f6";};
 exam-n-64674={run="0j4bi7j167fkaz57wfav9ybv5b5f18ql0gscvdxyf9vh1czk83n9";doc="17jj5s75fs0sxpak8ywd6lmss3iq290316mr5gyxm3v7r26ji8ii";source="1lvcxbdwy7xxjwzbxzrykym96j1qa7caqkdqhhx4qxdry9czpl43";};
 exam-randomizechoices-61719={run="13dqgkh1isrg0z97z7bfd2b952sc2xr7w7ykllhvmzicr9gcml1y";doc="078cryxhlnwk0k01pwypmdkkjlna0fn70kj1xia17jq2xvc2fpcd";};
-exam-zh-64434={run="0mia5k0qd2g28xxyw9l44hrl8xnxn1ip7spf58myfkhlp00r7pv0";doc="1qlm41sq1bsj367alp2a42048y6d3v95gny1k0l31xhkpbhlqj1h";};
+exam-zh-67505={run="0k6wfbz76j0lz3abcbj53pc37psnn0wvzq5bzhx24igmwx0wlawh";doc="04q7r7pcjwz3qni7yg18c2jcp1ir8lb35dw6rkf63z2928f6hdnp";};
 examdesign-15878={run="0y9kqiihidv24553zlijr6fspbayvram1mqgy9kmd1wwskvbza3w";doc="0ddgn0f086qdsyssg4gm6ynlcnnsd16qpvn2g3wzija7ai5sqkig";source="0z5539hv1li9vw0d3jx7q9s844f29wi9xr5z30hvzl3721rnkvzg";};
 example-33398={run="06ld0b9gi8s7y6igijylfvj2qvj3d45z2ml9wd1zfzkpf32pghmy";};
 examplep-55265={run="1a3pdaqzc9jx2yf66vmjg9r4w07b8afyqijl21np6sf7rrsn7zg8";doc="06jqa848zzswd5pbfrvr9lh3i4l5h8wf3v9g179g3q2yb4dmvjwv";};
+examz-67303={run="1vhk3kvmlsj2kcz0ccf3g3a9z5h6ds41dpwhjd1k3iyy6mrb69r5";doc="0vqm75k7xqi40gy116h3rjhlyjybzsmrpnlgmsx8qykll04y4vql";source="0lnr2s33z95gzyw4vjz6jgyhqcgbwyq1lz8rz5wzafbf87mdkigx";};
 exceltex-26313={run="1075b0wm708wj537pgki1hvj58l0pfrdiglalbjnk3gmf18rk22d";doc="1s48mcj49j9jm8vs5nhvljb972vhfng09xvd6kiw01a7i4zpw3h1";};
 excludeonly-17262={run="0zfml40br991mijcmplxlff2lzkn8fdgwgxcam7vnr23kag7lzxm";doc="0argzz7nwadm11qp642r454w8p0swyhvscic71fhwi47n69cfbgz";};
 exercise-35417={run="18f7mgc2lmm1lg13dm858nqsqzga52sw0r6zlz7f0pv5hpc0mgak";doc="1y50izz1z2s52knqn9a1jianq36isyafviv0yxqqx6zdfckqca0p";source="0lpslsk9a7dx5xzr5iif1prvrn399j70wfcqhgbypz970zzpril7";};
 exercisebank-50448={run="1algypm3nhkbccd9k1w5qr6y75hqiinw5dj1h4fbmripmhdwircs";doc="0szpxkmx8qi3zpcrjzd1nzn7jcp30wf9nv8rp77x7rd2yd0sw0dy";};
 exercisepoints-49590={run="0vr2yxqx2ng1f9qybapz61146lvsniv6mjwl1yfxk10qyvdw3pnv";doc="17kz9fyd7cc4pa4j6dsm8h5zpwfr68wg3ndbswgh2pgwwvf63777";};
 exercises-55188={run="1yvdj03hr40732swfsg2br9f4wx9855n7a3whlqjdnczp6545lvi";doc="137g1gvwfxm3gid5xvikrqk0iw75csrkqgrwmh0hda28dd4zbdwg";source="1lryxm36phhp7p269zzf9a200k9k0v8zw8qyqvyk784vmvyilv7z";};
-exesheet-65577={run="14baq3lx0yk02bmxjq6dd0b5y55b121m46w2nqg7nws9hf6sh0mf";doc="1hq91m1jawysk3c38xvps2fnfxypxkn6b553hm0j761k2yizavjb";source="1cbi2saxgjcyq8vj0j3wxc6162kvd6ndzscz21vpjxid8amilf7y";};
+exesheet-69252={run="1qrh0a36x68fs7xkp2grhqz94v49180v8aj95v3w08xcmx5jvwjf";doc="17dxhrsknh9fx9g75dkw56c11wpvc4xyzv7rgx2dm29szg7qvrnd";source="1hdkh6zbmsmc1aqzglihjr9xz6dhfxcijmyd1wvhb8cxh8swr4dw";};
 exframe-53911={run="0sc11jk94l0nmjjd69k6nl7j68szdkihim194pdxlyiybwqf9bbh";doc="02s61k5lpjw121cyxkkhlbm5d6wv0gl009abkjbidpgxbnd5yl4z";source="19y20l5g814cvn9z0axpkynxp0vwkay782dmn05g6a6qzjb49i0j";};
 exp-testopt-15878={run="0g7q4ccfamsd7sr7wb0qsw74dnwiyz0rjrniaxm5jvgaadiinc7q";doc="18i2ym0da8vp3xxy5q2gaykvja3dga4l64q9zjxknkm50vj6dj23";source="1xfp15q94icdq773ivdvk4n47i2k3g3y9smdvmxw5m9f35nayypl";};
 expdlist-15878={run="09yhcdbx3n7gj3g2v2yh4navgdf5ik4x281h51kd1lzdzbbnf3aa";doc="1qgwn2ignri6wh67wwjsqpbk28jch01m8fn0nw6lpc6kfa4a9g6v";source="1m8dww4i5w0hivs904v8ls1dhs35vp3qpbb44ihwha0zsbvghabk";};
 expex-44499={run="1vdbsxn85gkg24rx3qhkwcc658zjyhkymfspysxkxmmb8rn42y8n";doc="1mgq1knfx1lf0vr32wa2r6v0sr49m0xjnsdy0y42zngfi1mizp20";};
-expex-acro-63319={run="1npdnqd4m66jjcnrvgan3lrx211lish3kgadv1n8hnlpwn54hc8c";doc="1pgqxf04i0sdcyk89biikzar68lhqr6j13av163iyijp6d0c3dgy";source="11a2q0lhm0y1bcgipbmdi6568qpnxyghh0lqgp33r8rx9g7s4byh";};
+expex-acro-68046={run="0hdbjdkqsi6nw99g3rqvpd242mag8k7ggl6bb0wj99nzfq9f43sl";doc="0ilsi8ddsn7crc19qf22vwff2xc4lhpqhxpk6mb7id5fd7xpp0pm";source="03addcn3axfzl3i502clngi1bc5b4l5ndq335xh6x5h2566kjclc";};
+expex-glossonly-68860={run="1qwcib3flc06b1l4fl9knqb6xjwhq59h9i5gfniq602znndjsc21";doc="0k740yz8fjxkcmjvxd83234arq375xg8gcahyh2iwzqs9k8cvi4c";};
 expkv-bundle-65623={run="1mw1cdl4phkm29yxb747whkkd81g9a3sbbnkhzgskbna2zcjj0l4";doc="0cwydrq8k5z6j62wizgg6n1n8r0h0vi4ijky59vvz8f7b95j2xz0";source="0cv1r3daz5lscdqyjgmy6xj00b4i280bg1c93b2kd9x3svv179mg";};
 export-27206={run="0la9v2m3n15hgds8mmp1c56dz0a7iqygjk2qnd99n5924n187wyd";doc="0ipbs7rdwjp6jrr4drgcs73mc8fy6bav24qfda1an7byglgcf2nm";source="1q3xbj3zicbizadihwb6b75c4d95b6wq0adi45wbqf6hzj05bd5x";};
 expose-expl3-dunkerque-2019-54451={doc="0xij1ycxnc3hfzkl0bfs03s0zzzv6xsj3myvykb6n836j1g66g2y";};
 expressg-29349={run="1hcrzh5xhvzhf7d9gfqfxj7bi89ds5rxa8m6al12mdr5qpffzzkb";doc="0kla1swvhd43xcvns17wlcvq33wvjidhkqnd4i587x9mdn69s8bv";source="07w45g2nbldwnbrbrmdq9pwi3xbi6cl2mqxaiyk78jfgr033rmqf";};
-exsheets-52227={run="1ymcfy9i2ll048sc0gyljcbwa06m9q0g6nxp3csvk4a367wv9cxa";doc="1l3ln3xkniyfgmhrs37rixszacsvalwq78fyh72v8ca61krxd35q";};
-exsol-48977={run="1jlkz4c29bn3wrzlbyxzz9jl7f6iiyvz89r5r2cvnlhfai83lk6c";doc="1z663c69w62v8fcm25ikaw58q3kxrh2mh357zjhgi8ki72wjwja3";source="1ja9w1k43v1yjfa1jhbzghdqha6i19lc6hsgsncr0zjm4ky104w9";};
+exsheets-67300={run="1ymcfy9i2ll048sc0gyljcbwa06m9q0g6nxp3csvk4a367wv9cxa";doc="1l3ln3xkniyfgmhrs37rixszacsvalwq78fyh72v8ca61krxd35q";};
+exsol-69343={run="0w51rxp4lw5v1xmhp26bqalarp05x1ynpskbgb2ci7b3g1xcnm0g";doc="1hjvmd9rjd5vb4d7794iii26yl394plf3ajihp7mpmwbzjz14w6b";source="1837xcdlwxnw8944c787b4yqlb2bi2sijx0nnr3vfvidpwsa7ys4";};
 extarrows-54400={run="151qmfsqqj516ky9j4wbzh1618r769b1bqn4rc5fh51p1s28k8f7";doc="1iw3750iikf6dc6kyid86r7kdzkpi1z4la4zlj63z26fczivif91";};
 exteps-19859={run="1pmipr1444l1yai8d9hhrncvimzb5scn80pqij2g90lz160962r0";doc="0ymkwhbl6r64pxhr95wdw10dvn6q95mkz1pwa1nb42sdcljizrsg";};
 extpfeil-16243={run="0n2j976a2607zsgf2cda5vljl497c1562rn7cih11h6vpx76jx9k";doc="0irjpxz1zk30myk0h1wjhzcxdpyqjfzxj0lx1nz56v4f157myn50";source="1yf2kcx73zp24wrjb59zd1f35809k52cdwym9xlf5fy32rh69y08";};
@@ -1329,8 +1349,9 @@ extract-52117={run="0yfxyzmicqczvn6pc7ykakpm2hjsrsb243n1bs0crjsvacw29hb2";doc="0
 extsizes-17263={run="1249x8lklry9ibil9crfvy2x3hk5afnc3g3khixqf54jcb29zpg8";doc="06a01bmilk7hqr2k9237i6x53f6wz4z4vhr8n0qc0i3j09n5i0ps";};
 facsimile-21328={run="0mfzqrn76b2nhz60rqjdr55s6i9fzw96ya74nncvdjjcvaqpjrjk";doc="1i3vv6a8r1mmkmpjwr66r0isha7s5ksp5cwgx3rj9sl3wfnywsfz";source="0icxnmiwmrjsp1lhhdkcgsjif1s396lkdxp73vz59afzhwdm6l0b";};
 factura-61697={run="18p09q5r4n04r3pr636zxbq2jp027knlzphd4zpns3d2szgw2j05";doc="19d5nsjxzghmk56l1v9ppr237ykdrgk7bql4cdr4d2rdvqbk4r19";source="0l77127yc8r4n0iyv4q3ilcs9hrfjn0y56rc805av4gdrgil9xgq";};
-facture-43865={run="1x0jqxq6jn2y5lzbk2y576g2wgaaqwlb11kpq16avvhxybgiywwg";doc="1kcnzmssdnzfp8szs4c3psnxaih36clifln5kpdkgwd3hnkizl60";source="0h2274fc7h8si7rzrinz94hddzfn073yvkv9hnvd9zlq35cyxif2";};
-facture-belge-simple-sans-tva-49004={run="0n8wwl82w7hn11l3c3fg7nr088v2mv4s2d3ynwahgy18k6953pxm";doc="10yh7528nms60ypc2zh9viamk9cihi0a67jcvwzb2i8f88sx4cfq";};
+facture-67538={run="1vfaj6hsjnd1cmgwrlj08bn9zr52zc1z9h1dpjq742gf8n2f9qfb";doc="1my5nlwdik253073yhcjbvqkgwcw5kvmg2fm2wladlgcq8qav96d";source="11nr4df4dywqaq1bk3vzjc6s9gd5kxdksicij2fmiqx4a5309ijc";};
+facture-belge-simple-sans-tva-67573={run="0n8wwl82w7hn11l3c3fg7nr088v2mv4s2d3ynwahgy18k6953pxm";doc="10yh7528nms60ypc2zh9viamk9cihi0a67jcvwzb2i8f88sx4cfq";};
+fail-fast-67543={run="069rv6yv525b9f0igkaax17kr3qyy1n82v018yidc57ig75h4vlh";doc="15qydfbhbdvkzrys4x3g3k2zpzjzah8yx7q1xxnc9p90rmlj6ch8";source="0ybn1365n7mkaf73sc667pw826n1pndrizn5svnx89ckzhni6s3h";};
 faktor-15878={run="078fxihxiy9bnszy2nj5ca8ys9hhhazkawwi7x2hzwfh3n4dyqz0";doc="1hj13l2g7za8n3bkxmg04npi5fnp4jv8viyym1076wify7hrwc73";source="1r8wksjr0q1nm118fzkn527lak31j3sjrbsahpdmvxfir7936njx";};
 familytree-63739={run="1a6hvncnjzrjb3bpikkjlmamnrsas5221hhxmlvfb8x05qxjxx7x";doc="05m6n4lzz0fc2hm011kyvnxnv93gl39jd1lx404xz0kjs0l94cp8";source="0g6i47agywjpqi2if893jpm045kwda3bhlm2afd6gpjynybpmhmp";};
 fancybox-18304={run="077xd75n1lpy5a4gdgk88p0ai2is5aj4lf2cfxn7nsyhdvc1y6gv";doc="1giimlw8zfksar2hwarpnhy2sd0jsdlxzfw6gz1lmdb8xmwkx2nz";};
@@ -1344,23 +1365,24 @@ fancyqr-64182={run="0r5f2cq5p2x2nrhgamcl4h7jc01z8lr0kpbvkalgnp4bkr2js42a";doc="0
 fancyref-15878={run="1ns9b3viqg45w3pmnh69fdrjc9p39pfnqwwsfl9nnx04pf8b0p8i";doc="07g7ynr4qjv5l8v71ymbhx3vf000g5qq63c4i8q0iq35gird9yac";source="1p5xd5a6lwv71hp1sx490qwqbjn720gc1fpkk2inmmq6h6vwgpdy";};
 fancyslides-36263={run="0hfa5jklvybgx9rji032rdmyh2qr63fkyanvvs0jmg1bkpqw7s03";doc="0nqqvkv9gsl3jp22rjkxrzklpz6dfmm3wy3mc9f15jv9iy2zlrr9";};
 fancytabs-41549={run="0yxr24fnjabfzhyvfj7nhn26cc7hi08byw7zzmky3nnynxnxc2p6";doc="0f9b7rvnz5syq5dghj426k9ypppjg4q9wzs8v3jl8af94xy7zrig";source="10p8hb18qrwp2dxsjybrawnlryl97k854l11c0327r39qiya61ns";};
-fancytooltips-56291={run="18hygq6ks8pihlamr1pyvmsrbsl8wa0kx2qy8san53hd450lqn0y";doc="0q28xlckjlm231r14ysl05ic3kb6aa5qnwv9x0qj3iz3lmyfq9zs";source="0nhmjrivw8a2xhblhxnjbyvmz4hp68sjxnnfzmqyrf1agjgwz8m0";};
-fancyvrb-65585={run="02qs6rkv6avvrv3b023k1rhl11f0900dszs3p30l605nghg6ydxf";doc="0mxwsp5c02faxf4crvm3iibwyv1396lxccn749q9wyf9k5wqlap8";};
+fancytooltips-68931={run="03b31bifjnl75hscp908x58r90zrp9hy8r4kf3lkygqvikh8f5bm";doc="1l6mp725xjmy6azgx2zwcqlp3vfvk7gvyhr0wwrnnklfcscyr1rz";source="0nhmjrivw8a2xhblhxnjbyvmz4hp68sjxnnfzmqyrf1agjgwz8m0";};
+fancyvrb-68772={run="19kr6cgk83fmdhs7360gvi2p1q94jnl5r9vbm54zzhy114wvhiwz";doc="0jr5baqc56iyz0bifhrl6k3ragdaj267yl3hc71symhdi6sld4if";};
 fandol-37889={run="1l6h2brl2d6bnam6p6j0p1d2s13jnva5zkr1xr4sarzzxj6zlz2r";doc="01ax7za7wcr644ncpv3rpfvl2ndqlppqnjzbjp8y2d0hawc3k5m0";};
 fascicules-54080={run="0zlkjn8kg6vb58xp2xh7jwjk6dmk6knzqh8v7lrdbmzhw9j28vwb";doc="1jkhj04gpwcckp9zqanaa9zhplgs2a5xqnn2xf6ir6qifiv3403y";source="0d7crimrdcxlh8hd24qfwqnadxfjsfrfnjr4hx5rrj75mm946zmj";};
 fast-diagram-29264={run="13c2r5prb7dg05j0r4lkdz36v51zj6v5p2c7q22gfkbz1lj1s6s2";doc="1f3ghs0l6mj2q3iw74rjjb12y8151cccvhww13h4kzc30vacr3r2";};
 fbb-55728={run="101yfs3np0mlwgfhiz74jh2jngxnb395wkcm9fvpmrs4rp7wxx4l";doc="0b48vqwyhmygv70gsbiknmmysd8pz8m27pfj52zqzzb0kphibynl";};
 fbithesis-21340={run="0qzf6ch5b25qrhzflh8rwrljhlj87i6xaldnpj8j9iq83y1xh4jr";doc="0wvnm716qi0y54h95zlqr7m1q9dgmjnl9f0ghvjgm886hljq752z";source="02zmk6yx4v47ngd6ba6mjn1rnhm2w6p330rfz6nkq8shcky7sy72";};
-fbox-62126={run="0nwzysjhg4z2h3sym5yw5gccybb9dwb7jb67fz2b3yl4m06nwphl";doc="18f2w2cr07lnj77lwcqqrj6j1sm9gg1sxmax6rdjysl425dn9ybr";};
+fbox-69041={run="1v7ycqbqlk80lbf5wag8vmyhwr1v4jjs8j7bzni4pm8yp4m0yjis";doc="075mws8pivd2nc045przgf5lmf5mpaw8gdyjlj3haqvpq0rf5mk9";};
 fbs-15878={run="18h6n8azrnk2qabv30kpa8gmj2ljkvx0nqs8qb9r8dxxnhng78ch";};
 fc-32796={run="0bw8ifh6sxgii5s3vx9d87m4rdfmifdvw70wmj2kwqzrij1ri568";doc="19p5r28fzw0i7kmvvv93hiw7cm3lkcsn2hdn90k8m7jwy758qrdd";};
 fcavtex-38074={run="1rnfrvbm4baslmmakf3s1n37razfzbc6d11b5yfhhdhskq2aci5c";doc="05ixrg17jwd315q5c52c4b8smcihj4rzrxjparrgfimivd85i3h6";};
 fcltxdoc-24500={run="0bnz5b9ibr3lh5qazdanlvvpp8d1h2apzkw61qxr6kg9ymmk2w68";doc="0dvr57jz38v5wflcjjp19rwjbisbzkdc91fji9s1yrv27drawijp";source="0k54q30f7qp40fh3clxyaa40xhsa28qyavn13km65s1hwvg4hg9g";};
-fcolumn-61855={run="0bids6ifprfwrrifx8dkmf8piz721x3paha7gqlx8419dnvnp384";doc="1vkyagcr5f0bwjix3ih469jxq5hkg6g4q9kvkf7g1mvfapfpszya";source="09y02rbzhzwjghdcxz81lcwxx12421kdf8hb2kjvhbfh0bm36cg9";};
+fcolumn-67729={run="11bqaca189j79cszypwmijw166v3j9pkm60y2c2wyraj4ss4d1k0";doc="034crw2fxf9m7a7zvsi2c7fafkqkhn8vfxc97dc7k74wrd5g3kwl";source="0dqcm83g989lkgjkb5q9s4d4284g5c2y36y75iyq4jhdh2ca972z";};
 fdsymbol-61719={run="19kqkmjsi5kw5s6kkgf4y7nrwjhyd9pgq02y3f43wfdml9jwlvx1";doc="0ddy5d074fjmkvl3pm4akqfq7d3f57y09cfmrs5wfgvvb51gfcvp";source="18hiwralhdsp8sj8yr0c5pj4xmjaiyyha1y36sgca2xlacpw8ah3";};
-fduthesis-66197={run="10bbs4nn7ah9y7972cz3z2b9k7igamx57afplzfwqx8w5zcd6n7q";doc="1vw78r37vl7kn6k7v0w6g4rqlb2yd3n0pa4zvy90yl4igvyszncl";source="1kf5iw50s41wmz8m05xwbn0lgi0rn3alm3cx4vyhxhvs651vyr6y";};
+fduthesis-67231={run="1cysdwj1gl9zpxqqcb563x7ssvc4y6g96cn3afbjk5hhw8381h1x";doc="0w1dyxcyxjpdbmxrv23xlrhg21kq2wf1r85dkdaw3hs76800baqb";source="0spm9cz58xa2fi86zcbs4qp4zxcdvaq1ll41bmp7mkykr369j2k7";};
 featpost-35346={run="1p8xb6kmfhhqvxcmgf4bkw60p1py2s1pyn54700zs8vlkbxlqy6f";doc="1hy7n0jfdidj3an25j0m5bbv2ks40iviwzwijlk6qqdll0k26z33";};
 fei-65352={run="02zypphy3s8z531zmvrdz2df0c6viyfnzfmn5hgc8js557z8iw3f";doc="1nimda4g0gsf7521ibmqmh5a9hfyyhdp28dpiqs0wq50ysl8phc8";source="0k5y72pwziakribc9m9yzm860pg1q222qarvrqxyjqchhlikcrhd";};
+fenetrecas-68779={run="1fx9kfgiiqkkfgj12x3yph2218az86h99r9idg7q5rkx9h04lzg0";doc="1qcg04kcvfmrgsza06fd2aam27ixwydis86f430cfli4x3c4c7ap";};
 fenixpar-24730={run="1l79py58dih05c4kjb8cngzs3bzpbhc72f4hnz2r7nfwmjp86c56";doc="0fbx9wms2n0ff1cdpfavqhjg56przd7hr515vh81g8jgnz68s24l";};
 fetamont-43812={run="08c8xjgam1fx3aa4ikx62jfh3f4bws0ngk428bqzbrd8q445c3jz";doc="1zlhg0wgchgkk6j8v23wd29hklpzb8q4p690pfswg3zakc0dcbgp";source="024bwgb36iz2ylwsfzz4wfgsyr9djdd0p23phadzmc8qzxqsslph";};
 fetchcls-45245={run="1pccfz68chmnbfi9qnrmdnyq5kvkq6ir5dl09jqbjlcw7hw82ka0";doc="0if19dgb2k75qhyka4jiijnl3msk8y8kj0fzhriarsicivwd47ds";source="1qb9ymkvbxmxlpcs3drcyk02bc372s0vhw6wwpig2bchb1hwdl44";};
@@ -1369,9 +1391,9 @@ fewerfloatpages-58058={run="04903zr0lk50i88vywpbzpg908zkmy0w8vcfks55cmbfb2ja37qd
 feyn-63945={run="1pd608v8wl7007rjmsykwabr1h8jjk1s78nbmq4a0541rj06yd0p";doc="1dkfi17i6lz464bwmr5r5295y1avvsn5rpdw4cv80rd20lvhnyyp";source="1vh6kz22gpmch2rdlvhplvqqd03vd0mn5m0a123i3xfbka1myza7";};
 feynmf-17259={run="14bl9c8yz1z596281kysyyjbf727pi6mdnwag6gfqs1nsinq0a2i";doc="1ql099wrlddb4fyfrsirx0vnhcbh0wgwp9yixhvgxfk5pbah8v8n";source="0f9ghmp0hcmzadsfljfq7pinn69251dwhcdk4n62jrd07qdgqsyl";};
 feynmp-auto-30223={run="1yhvcxiq6ajjmlsvnznzvp35sap1qsnj54zv70dwpl29rkrgrmsp";doc="1y1pwlplkz2z7lqz84ay7ch1lw4plh4n69isqzsvhilnr31fkf0a";source="0ja5yqs9szyk4s2mk9cbjf6p98dagwk7pycma84y48kinkl96s0s";};
-ffcode-65170={run="1a2k2n83c5wqymc1wg2pq0wzc0x3fwlm13fmrdg3g366c0x082fq";doc="1pnkk8cjbjzmga5na4g1ip9qcvhfl65i3s95mwp88pfrpfz78a08";source="0z5p9z70f0rigr76hwiwh044spmginax637mjm3nxxy8n0zp8sil";};
+ffcode-69383={run="0lrhl343ffn2pvffkf34kdins8b97vq1shaianzlsbr30slliy77";doc="17jxqsa16xkrmq88kd0ydn4kwfr313m8ppl7g7wabnaldnwxi9ga";source="04vb3sanfnzsyg8zg53r9ksrfj03lh08yq1r0wxpz82gcdbg4zhh";};
 ffslides-38895={run="1mpfpawdhh16rl6pnvxnkj95gf9hjs49gj7cwfyngmqkjc2idi8j";doc="0z5kpim798zxj20p70dpcgmwg4vx9mb0zrmq620sprxxdr2gd059";};
-fge-37628={run="1f6ibw87kbhpf3qxjh17jr1lsh9kk9ynf1rngzyjwbq2rk2id94f";doc="1c8nnpdvkxcm6218mrs18ipjf9mrl1cqyvv3p31x41ii8wxkvjm3";source="119d70668gw3za0mksr93wcq9gpzjn4gyv8vmizlabi0ip1ycgy8";};
+fge-68353={run="1f6ibw87kbhpf3qxjh17jr1lsh9kk9ynf1rngzyjwbq2rk2id94f";doc="1c8nnpdvkxcm6218mrs18ipjf9mrl1cqyvv3p31x41ii8wxkvjm3";source="119d70668gw3za0mksr93wcq9gpzjn4gyv8vmizlabi0ip1ycgy8";};
 fgruler-63721={run="1x0pqrwwbwf7qi64wlcg8d73sf5r59jcqhhm3l30qk1ymfwirzvm";doc="0mva3jv63prks2la2g9sqza2ng59bg9g5xkgg4flamk0409bmd4p";source="1if9sbrln3jsc965xn9njllnn56dl5y4v2krn76hyxsk1vyza45k";};
 fifinddo-info-29349={doc="15zp4xvszy07cy1b5r3k5x256lbalr5acrrdj1gx33llfmvm469a";source="02pmj7a9hx4xnfjbhwg273a3wx4449542rs7rxkii4hk78xs5lwr";};
 fifo-stack-33288={run="14d714q6mzpag5rcn2b2454pad3mpvdz6ii8k7jdvx74ay24zphv";doc="0pgvcyss7h1mynawdhpm8xid0albf5cajhz423ygz3ifi2dfrasx";source="03hkqd4s9dm2h10i8pw3a6qgrjskiyhnkp4wh9r55l60wnqm80bc";};
@@ -1382,7 +1404,7 @@ figchild-62945={run="0k72116mhd9z9psbnrncmn8x4svhyaf8b4738qxb808i81ba97kv";doc="
 figflow-21462={run="1w2wccxfjbas2yyp8sscxfb875kz3mwqjlma46v4328sd9vw4pwc";doc="0nkdz047vypv0b47wbin7nz3cbcriv89w05d6yn26wvq5svlxgw9";};
 figput-63957={run="1hvxp65c2y7852fj2v5b4m3bq4197m564y6gzin2hddbd1w003vf";doc="129jyybg92ddy5i6gg0f28ij0qxx59p8h2l4y9gb154rdmqa2bld";};
 figsize-18784={run="1hb2fck0pz1gz6vm0ffpzn3vcm7lclagsi599bi2f2bc9ly2372p";doc="1zdncnl8nmkazvqjyamzgj1x1f5fm3kyw5m5fi669rk9dqhsiq69";};
-filecontents-52142={run="062jaqszh5fr1pjrl2hms9yngcr9xwhkfn9if53kb3wal1dn4x48";doc="0i3fjb81chwiz6msm1k0frkfaqqcla49xhg1xq0z617y3rb59pgg";source="1zryw6mx9vmikba8za8981h3nnx4gbbb2g3m6lm3cws0ak1h5jwy";};
+filecontents-66740={run="051s23ymbjkv8z2d7sv8jsjljy5w2sh1mgvynlbkib390gpgybh3";doc="13fwkv2fvdfl1jgyfg4pn9il6w6pn3islc9zsaqs3bwzj25y16rs";source="1x5ahz0fsmnjx7bvbr83316r6w80gnp83yznnhxnj0zg42s2gfxa";};
 filecontentsdef-52208={run="0lrdmz5fnmrlzga1w2hr3ksydnz52lmqlnnmix7xrcp81qv9xmx0";doc="1nxb4wm4wd223f9wn7x8j805ybximrk0v6n1l56xysz4k30jxcba";source="0n7zq8plqn1yki6azmncgdlg2lxcprfpdq5dv0qnxvpvw5dawdvp";};
 filedate-29529={run="03fwpi529pp6bqwr37ns8nas236nhh7nm592rpjyrvlyv1w30ifp";doc="1dywknjhl2p9590nvcpg1vi8r0iaj52dv7sn8c2y8337w37c6ny9";source="0fwqs6wqw93ih2icg9b5zxgya1zbaj2sn0jd3dc8b8dm59cwggk1";};
 filehook-64822={run="0h0k0fgdwzm50jz0ibj7zsv1sk355q13x1djc3pk4fg1f3czhfh2";doc="00l8hx1sn4sn1mqpyiz9isl5a25a4a64nifq6q2jlw09df9gmf9m";source="0bd6fhrzy6bh42yb44y4bh01zpx92crca8zia4lyjmc95rlv6gfa";};
@@ -1394,15 +1416,16 @@ fink-24329={run="1pk9qp2cbc1yagrgnjz6rnldn6zgcb6bw3vi452ks4fwic4pgwz8";doc="19fn
 finstrut-21719={run="148pca47nggxv9dyg5n0p40ri1mqz5chj4ir49472w62c8zh83fk";doc="1jrxyksw0bldvf5faykbpcngjfx06y83q81rs3k3m6vldm3rw23d";source="179640qn5swml0wrc1glvbf94ia5y6s1qlyf3hf2vmr3vih7k2mh";};
 fira-64422={run="182wpm6dkhs41y6kr4bjc4rpy0b62d17r0j60a23znfgglpriy3f";doc="07wm5kca97r39shhymnwiarsxn0i5ykycyd28shqyqmmmk6f2j33";};
 firamath-56672={run="1d9l5nsx0qswn1hcalzsrxkvc7mvpdqk3h72bfk50h91lfm2i567";doc="1w6zlskvs54x192nyxa83qnlqhvq98g64k5fv6ch406nkivifmgz";};
-firamath-otf-65561={run="1f2ybcf873ycrlsf59cw25715422n11jhblggjz5hmmv5vrqpvpk";doc="19f2mbak3vzkjlpipfyja5ibdgxvixf698i2wm347lbdd0p5ligg";};
+firamath-otf-68233={run="0680qh4drixmrvhv3klkflz0jml06x8k9inl2c8ym6a8adqx43nj";doc="10ynw2ckqc7vsv5hq9kv78cvn6yd23qfbyv5060sjxl91w6qxs63";};
 first-latex-doc-15878={doc="13ngk5pia5vbrbb4jrrlq1lmyja08m7cy4ydcjasxha8kns001ss";};
-firstaid-64892={run="0fdv1jsr5cs3a9m9c0zxpdcxg69lww4bkwr1piaq7j389z79fnm0";doc="1d3gd6rcrv78y24gphal5367n9wqfqlbw8k8bzcdiaj6aw9frrjr";source="06qn7h2r2m0iay4gc7d853n7xjldygly7v0w7fgvlfgc0zisksgw";};
-fistrum-66263={run="1ypzwh9a7lkb5b6d9796hwzarlsm06nyndl4clk5ss7nh9jdia3f";doc="1zyyrvm4vmd1fy35clf4aizb810mhr2xzsyzwmpcgsbm3nf7i2ng";source="048g8x5q882668lbzz0ji1hndfkd2bd777s2zyyq59bcw0gmavbl";};
+firstaid-68720={run="0jfrn4vx45aqlw8n5ipicl12y5r62vsyr6dl9vzf6yld4dn5zvvr";doc="0ad36d5bjlj6y5x7aixgn5sl5ra31hqif5yz0j7n5v32hxhhjqi0";source="01pf1jpxgq7j9s720xagjalhyzxr49i8kaw9mrab7fvx693cw9dj";};
+fistrum-66461={run="1ypzwh9a7lkb5b6d9796hwzarlsm06nyndl4clk5ss7nh9jdia3f";doc="1zyyrvm4vmd1fy35clf4aizb810mhr2xzsyzwmpcgsbm3nf7i2ng";source="048g8x5q882668lbzz0ji1hndfkd2bd777s2zyyq59bcw0gmavbl";};
 fitbox-50088={run="0jk46rrq01bbqkwfqf1rdrzwv475mdmz4hqvbffkivnbwj1vz18g";doc="0gb5gpdrdagilxsklq1aijr5zfl5n82nwal1h9qls0iqzjvgizka";source="039q5as7939zc5nby6m6piz5h0zphm19hqjkdyrgzw1q4r9ypzc6";};
+fitch-69160={run="1c6myhpv9ix6cr6snn5f9ky2z5caam1sqjgg0bq1bj8df3acdv80";doc="1gdgmviy8pqqwwsvinrb8qsgsd4gw6bx6xci56w4nmfal729r6g4";};
 fithesis-64135={run="06r4qkkgmvak5z624vhk2gl7vnq538ixjq6v2v4h1zz2863kicck";doc="15dnysdjas5a2a53g295f5g4fvi4rii10w72w5z9libxp6h93nmr";source="1a35viafyrxh8aqx9n6gy4j3kk4yjz5cjgwrfyskbpvk014y84n6";};
 fix2col-38770={run="14n020dmfn2s54h5xvc9lrynijcwnj3d2w4kg2w52v0kf037hmln";doc="089pdfpk0bi23yb7grjv4w1agkssfczwvv2vhk3piy43qpk9h09v";source="0wi711gb3bc5pc2kb7q2hz8y09g4phjxggrqjbl6i432z42fc061";};
 fixcmex-51825={run="063a2mwh75mdbh8syvrdldb7cj4iyvqkbkda4jm6cq3nwbq9kly0";doc="1c9q5srhfil0wnk84k072ridssgwbmzpskk6pwpaq8id36dydvlm";source="1h3xrdz9anb2cxr8p175rrcjvaawv80cj3bp9l6bcpli6yb6fdfr";};
-fixdif-66031={run="05hzw1jq98p8wvxxymncx2m2l4ghlp6qy2dmhlf3jsvhld44j4wk";doc="1j4s9fbk1ypn9k8zcvx9myirvqg254ciagbaj4b9djd00wf87lzh";source="126fafi9sz66z4j2yp4jlkmnmiim70353rzzbdffa5qaipsxc37j";};
+fixdif-66606={run="1gxz7bv0h2485pwrs7b0zhjcafkgzd1r0ikpjjw0gh4iqc3bcqd0";doc="06f5mkpp6aar6c569pwd9952xgzjdy3zx8n8y6y9a6wfflyh3cis";source="166zj8nmapwqkd06ksvjbjajq649amjrfji9z9j9mbcg865pgwa2";};
 fixfoot-17131={run="1zszczpwcggczq428ha84g71rvgml2zrx2v74nmk1damcp35pzlv";doc="07zdbq43l9yddc9gi4i2qqpvz0xxmkhxgg3wl329j25p4h58amra";};
 fixjfm-63967={run="1v4gn6bwlb294sxrqgy6j9vx2dp7plbagkvmw7vbvp6wk8dkza72";doc="0wiihlpjzvmh8dynf0nbhmn8raxflqxmzpk97s1qv7kkvpc79sy9";};
 fixlatvian-21631={run="1qm1jj803a7zgqbjn4q4sg4mn3pvd600pfkqabjvp0ck24r1pw1p";doc="160bb2khxfhl4g48a5cbj8xdxslgxvav1c0wiq3w1ajla278qj28";source="1zfdr8kahxgkhxzg925lgls50prcgyp6hz1vhis1241f9rd6r3qs";};
@@ -1418,19 +1441,21 @@ flacards-19440={run="1k1h06a22jc8wdcxf1066rn4sfgy4m3wh479f4by1zrp773gykzl";doc="
 flagderiv-15878={run="1rnnj84vl29061hnbayz5sxp6h1civl9c9w2n3b0s56i9kxv3dd6";doc="0djwrp2rjyyd0wk0sg55w2l75fwj3gabd6bim1smpvjwsps0fcd0";source="1q0g5127vyhkjb1g0v20kd0x3p0b67a9haich1a6yp71iikl1s8p";};
 flashcards-62104={run="1xih8g4znfwgd5cim1z63q4syg9jk8nz99q7fgc9mahzq7xym2mf";doc="17as1mkgllva5q92qddwzffl7dsirx22wlnxn12yvv6a0h8hx57l";source="162r74jij0b8yf22xyvrakbrzfh7vjpfl1800ahljas7n8g3h1wi";};
 flashmovie-25768={run="01rmqf1rg5vbxzs9wap7m8d19fw73mh3k7min4msbipvg1vqhgi5";doc="1lza6mv55da69v8jwjlcd08v5y2gs2s87z5h1hrsp3p3mx3chya1";};
-flexipage-64572={run="0hk5niaa49gngwggy7mgdm6cqln5gw4gffa7lpxk4z2vnan97szy";doc="13dhpfbjmh3f3lqsa1d7km0qx72jlwwzfndmvfy5br5wj63v70fg";source="1x5qvblfs9ldd8qr3x1pyxjci10d6pgqhgxy54raxfmia8s0x6g5";};
+flexipage-66614={run="1296cbg5kszwrq6ixkpzz4w4x0a7k77kf641v292awpf9sd0mzl3";doc="11s6ldawl1w8vpv6cvw05d9krjxv9921ilryh9ffwrrpzf4vgjmv";source="14ajajbl0xhjxl5zggjpip1b4grszdc2g63csgdy79bpiffpkl51";};
 flipbook-25584={run="15b2nzhpgj6018769ggajya6qmhq9rnyzha0sic9fff24jwdq62x";doc="0lf04giwsgjq0fsk6wrms4c3dg53v1lq3n0q1ij5pw4390llsqd3";};
 flippdf-56782={run="114xvv7sv9fhqxgfz5ckydn95mrg4049ml3kg6vjjiwbilmszr2h";doc="1fgk3g74arazrmw6swfyq38s5gdw8knnwwf5ij0dl566cwmcfvmj";source="0hbw3wgdva8vkic4sz0349mdyx8dpz3k5kk0fn80m0yqpldwgkid";};
 float-15878={run="08jb0v6lsyff09hid3whah0i0fk5znsik5rigl4l7vflnvc6km8y";doc="0pqj9qq5yprg0xfxga8ck1s2wyjzz4ymhpqgzhzbxbdslh475vg4";source="0774d7gmb8c7fc3f8yzarlx1m8nld1vg4gpd3dfyw5b39ra4aq4h";};
+floatbytocbasic-67945={run="0vykm4w2a4gjhjhrxr2x3vaan81yhnylpjx3z48cwspxixlnmf67";doc="12yyyc456v4i5dj7g3cnv03zgvwvsv6c24vfz7wn9jk5gv90vrwf";source="1gkq5v8z77cncqqz5cvzi78jf66v1kcni3yphzhykvd2mgpb917v";};
 floatflt-25540={run="15v2m2mchki2gcz0fcp3myyr806fqyy77nv9g6rqm11aqp6212bw";doc="1d7v1m23p47rl9lln02c6bsi5mkqi7c03dhmnjhg8bqp6xfkfmaj";source="1j53lkr1j3fp5wlb41x2vimncv2l1pc8qm7qy74i0r1xf7kfibzz";};
 floatrow-15878={run="177knmgpv583xajihdd5q5spaainn8h35kgydq2sfi6ch6cadirh";doc="0py5a36gdbsd91679k4chfxy6ykj2wkjqlg4zkp5xsww6fxglskx";source="1mpskdqhghmgh7i3425xb985pwrcqcbfw3hlfhbyx3bhwwx5pnqx";};
+floatrowbytocbasic-67946={run="1bxvfl7qk36znp2i8a704r5jsm2kljaiqyff6nsfji6v69wfgwwg";doc="01qaaddanpvl7v41v499r61m7b739qjjkwj5k9d08h28v5lrny0l";source="1jy49cv9kvcmhkyv8pi45fr1991dxfn7jqvq1i06v0adyprvw01m";};
 flowchart-36572={run="1b6gwbnd9xjcvjxgnl6xjq6lja1a0p2xnrdlbrhs6ka6f6pnrbl2";doc="06i32gmsqgvqgy0l0qbdjybnp4rmz2cn1c7zw76w3mhd9z220d77";source="14ikpr9fga193y2vgr5sisvzc5scf04b1xc9hcv6zmkcph8dvnnk";};
 flowfram-35291={run="1ccmry6f8danw6jqdsck7pzwjsrh5vcfy99f8kzyqcbbrzl5rn8h";doc="19rrav68s3wlwgaa4mhgqsdlr1syfpvp4jzc80cygi0fhv2hn7yi";source="1hrs58xhwawxqd96jb5hjywbfra6az2qkap0p5zap9zkck8ixz81";};
 fltpoint-56594={run="13zin0r1hcfihji2h33q039mpcf86lw2q017ss8848xpqs41fb0p";doc="1yr5d1hs3bdd20df25c1jyb0hcizwq7bxjbcn804b97sjk2fk8gp";source="19qy8da4ppsd1agh1c3xs9fxsl6z8c60lcyw4dd88mymk7yk4ysd";};
 fmp-15878={run="07ml6i8lqcz737fm33g95nx1hz1p0z251h7pgxvvvdmn5dml1l94";doc="13i7axi1s8qqgdvdky20dckmsa95q2q54z7cf6zgd0znzjy6d4mp";source="1fd8h6dndrc7hphs87y1lfplmkrwgn1pxgmvf00gfhgkg1zf127b";};
 fmtcount-53912={run="11d9pq2cqd1qv20wr5789bzmk0a82j4rf8y9xh4l6nf2nk9p5c3g";doc="09ikawga4sg27ch8rvdf9ni0k8b3nk3k84mgydlv4lrg5gb2hv12";source="0ijsl21nsx2kkgbcc00bzs637rq3x92ax0xbrdagkfvnrna0bg69";};
 fn2end-15878={run="0cj26s7555q49fi382pbvy65xa0yp0wbihk3y0magblyxjn72wdx";doc="1kafhgr4c9d4pjpydd27ha1pdbxk364qv8dmcr7k3l7xlv31jv4f";};
-fnbreak-25003={run="10fh7d75a3628jrsbl04g2pc4015nsnrw1gda0ndv8bz603qc01k";doc="1vsv8prgd37bj141p0h92wjc7sqxxzw04czbwyk12xzpbg7d7gyp";source="1jf28rb0vv2xvp06awiglg4ggk6mzc6pyr1irfgyyniha54gi0ab";};
+fnbreak-66615={run="143wpqpcqaamjvg466cwpggcayxfqnf2vjvfvy7xwgky9sfql05q";doc="07h1xr1xgih5j8mmqvv6v5kavnb9yzrh94g0m42rjqdzg5c25fb6";source="0rxbjgb758x82gvjrmap30q4jsfq0424r3xszbm1f9b4wb48xqxd";};
 fncychap-20710={run="0x3sjslvz1gsrr8607q9r6k8683p9zcz7p0kxvr92j9ls1prl5c4";doc="0is37brbbdqb1szx3rwgmaqbl8vlqr82sy8svam39yrbnzd9v1k3";};
 fncylab-52090={run="13l9jmcwabifc7m9klgwl2gqypwlizy1mb7glsvp3jslpkhfj267";doc="11w7z5q433lnzfm4c72697f82yb7rljk9zq41dl5bdb7l9wd7325";};
 fnpara-25607={run="0rn4yk1zd4h2r5xhghv7v0ph0raspq4r6mw812hn80bn8rhjjrlq";doc="1w0pkqqgkq379nnqk0wx419z961l3g81ldkh8ivfhn9q5vk04p0s";};
@@ -1453,29 +1478,29 @@ fontinst-62517={run="1jqhfib1ml33wq292x9ff03shyjrn2b3grw44cxzxndg4vq7mn1l";doc="
 fontinstallationguide-59755={doc="1i6im0nckcr9fzs0kc54dvcj3jvjz2j8jd55xgjm0r569qjj1hi5";};
 fontmfizz-43546={run="1ccfywcywrrim1hk7g0kg0bljq034fh27qrr8w8ypcyjdnafkhxg";doc="1fcsrwbn8kiyw4032kkjg2668ax0kfcb6g4kzgp6bjcmqzy6q1zc";};
 fontname-64477={run="0ylpryn5wnjnf6acjl6kp67i0vl1dz59xk2xbxb0fqhx5ib1gdgy";doc="08vfa7n2bzjsay7b7zaigkq7imlfmq92f4firwc3rx9hfm7hjbn6";};
-fontools-65706={run="19dml0h1qgp2y58xsjhyqq56204nnbc8cci626f8zlrjq53b3251";doc="0v5gmccq0a9f184c257ldfr7h3hdkw1090n0zj6qv2pp7mm0kxjd";};
-fonts-churchslavonic-56350={run="1rqsbwbqfkd53yaxnmp17vygxd049livqj71c2cszzzqq8fsxpif";doc="1zjd1v8kq1v1sf4wfqb13x8jz12wpkpydmvldjn8l1i5rn0d7d4k";};
+fontools-69241={run="0smka2cr5al8f00hfcwpbwkddl7g2zcgg2jrak2j8p2ycibvfgaa";doc="1avxm73plf2p0xk0gh11311bfqbwlxdyvgx9hpg623ngyw90wkaq";};
+fonts-churchslavonic-67473={run="1s8y5kri1sjhsbz2mdszwy12vz8k0b5ad0rp383jrgcd710n3949";doc="05kgbvjj4w3sblsjprgq1gg0inrgrx0hpim8pmbgqj6w8xc1n9kq";};
 fonts-tlwg-60817={run="03fs5l62fbkz9rinnraz9zfz1byjd74xwvlfqcv4cvbxg02dpgmm";doc="0l4p30am56bblp120lcs81idahw3wrgmbrvi0jzfnvzsyd7xh068";source="06zw6amxdkmb9cdjvkvwgah5x33ksa9iigb4dcw6b9d3a0q8c8ya";};
-fontsetup-65439={run="1hdfjrav3nscvcjkfwqziaw0gn8wzlqpq4d0zi7vs6hh7m02y1f5";doc="1x8claj166zwzl285v1yvx4kmp0mychzvpnh71hghmqqg6c443kr";};
+fontsetup-69390={run="0cwklm2jzf9rhn717y7s2x3wf4z098djd6zg57rz76xrr48hgzfs";doc="1mil076kr9r2a3wpn9gdkax96dzi9fg36ycqcl9h3an4zn2x0b1m";};
 fontsize-60161={run="0614lcl1cxc7a6irrjinp5x1rx2cbzns0al7d9f3njyyayp13qhq";doc="1c6p4yz000rdcmjkn7pgz3ckw3p42xkz4clk5dz01fnxifmmlf1l";source="0lvywzrc56rfkkwipwhqahkm8a70cnff0r01rpl92d6n6znl278d";};
 fontspec-63386={run="1lskffvb9a3jmzq4m0kgq0v4jhl39aa70zkz8ha1i5zhljwg4r6r";doc="12rxb0f61jgh9xbgzq0479zxzqwahsx57s9nl5ygrwcigwzglk0a";source="1zxfi2adixnk7fcy3j4iixr86clv9gckgwimycrmsf4wvvaf031m";};
 fonttable-44799={run="1vz99pfw4akid9hjf7dcqf1fx5h30sr25i1f9q6a9frk0wpwff72";doc="1inb0ai6q8rjsrcwgv8ns6as60ifdidqzqb8x9ygaw3j5ykzr02q";source="1qjilvy77072jpbdc4p4qfy5d4n2ww2wcm5drwvai6p2aclqf29x";};
-fontware-62387={doc="1b4hs94ahc2sky0j6i1yxp0qh0sgwhz3hrqpx1kh84l5nzgi7xmw";};
+fontware-66186={doc="0ng27m6cz92aa52z99gnw5i8s8fbkxq4354mygwnchchgxndcba0";};
 fontwrap-15878={run="185mzghp8xckdq7z6cdwznrg1pswflvfy61bhsnpaxx8wagny1zk";doc="01knmxqj88g87ljvxmf8rr72i2gh9qdmx7zsbwyjmibiw71l6pcm";};
 footbib-17115={run="1vr72sl8q1ccql2p42v3a9qw01a50v1c1rxpgmz39pp65w4z8s1n";doc="1xyq88jcg6p7lc44n2ky7538r23d4n0nhfkq25q7xg0dh8whbm34";source="0ps56l6ah0i398f38bxy4yg2i1p0ajcwczxq222hl5176g2z28jb";};
-footmisc-62524={run="0qw5sp4pad4asjq0n2hp6p6nzyn6mcc9c1w4l33rjsj8x3a72caa";doc="0jgyya86vfbh78vnb4ypkf9p1qfm26964dxb1g43cblijzxi9d6f";source="1glgl68nfaz867c7paia3c2mgqpy1kslyd4gph2zriq0mbzksp0n";};
+footmisc-67556={run="1xyx6fj56vj49m9848i83jbq7k3hycx9pd5nvc3cd6md99bmx9pn";doc="0ik4rl9nmad0f9zjx600sxvlig6j3v0gw2lhxmkbs37v18p0xqy1";source="193ki23hrlnw0vkh2r54m3y2h54kzh989pk6iwjnfgf91d8nijzf";};
 footmisx-42621={run="0f6csxzkwbf4nlw6z9rfyys1f7fc0vpdi2m36g7y3k9l3j6wb3mq";doc="1962sivh4jipsxd0z0cpzpd0jdw8v4afbpzfinklivnla2c9hp4g";source="09w5bfx94533q36z3k0a1sf9jx6acz85qgqypgn6b0b5mkhjsmar";};
 footnotebackref-27034={run="12vxch1i8x0k8d760vgq61i7j3kkylgbcxj6ggdv8wzd20h4izyc";doc="09dvvnjvika3617zx438ca8z3fmdkqbxx9y73pdhn6gaggfmzr72";};
 footnotehyper-60374={run="088mh736125609bliars0scv7v7bx315ajk801yj28vskg0ki5d0";doc="1dj6kpqar8bh0qk0qma2ckp68cll2ncllqfda4ffmc5ljmjp98m9";source="11dg59x87a8yjq8j413gk4p0bmpq8awwh50c6vs9rrcgv67mbycs";};
-footnoterange-66156={run="0z2v5diab3xpq7x63n0w71r9yalnypyv70syh5n4nr79ahyxcmmx";doc="0gg1sc5dv9kpxavrdkc2865fcwkyc9j24bvk34l06fr7ib43bja2";source="09qa9gp6pv37kcck55c9zv3ky79xdw2ivkwf94nzbw475ryw0zv3";};
+footnoterange-66149={run="0z2v5diab3xpq7x63n0w71r9yalnypyv70syh5n4nr79ahyxcmmx";doc="0gg1sc5dv9kpxavrdkc2865fcwkyc9j24bvk34l06fr7ib43bja2";source="09qa9gp6pv37kcck55c9zv3ky79xdw2ivkwf94nzbw475ryw0zv3";};
 footnpag-15878={run="1qdl7lpfy5nn6qx026b9aqz8nfs958grh443lkqyxnrnws0n2nww";doc="006w2w6aga9zazlk8sv8maqi4s1rdzqyphp0lpa8qv5q23vcdhl6";source="1hh2754as2yrmfz4hiyyl8nlshsfdhpgpg3ifhs6h5s0xz947rw0";};
 forarray-15878={run="0cn062f805lgy5m45q6flxj5w6gjfa4w1ip7zmhxd2z09s962jf8";doc="1d6m425lfg1g8arjyz4j3q9253rdmfaabaasbpd2ynhjr1abfh3c";source="0dpqr0hff33ddfw6vs0pnk8yhaa4gxkxgn43qgx06mx1srv6rz1i";};
 foreign-27819={run="1hqmhy3l2hsjf2hkxhrsdc3z1mn3zx8718w90g8152x9k84bf7jw";doc="1gnaazl1ds76sqdpbj773k80isyf5hmjxh22p3hs9zxcpnvdhng7";source="1ziafjxcncsba0gbn1qjf2w2gn2g9z55bpcff71hr9axhp8xgpgf";};
 forest-57398={run="0q1xd07z1ccqrrfl3x0fg35sdv2kcyl6vgps7f6gpk5yp8j7d392";doc="1s9i1kxd5zhdqv5xx29kh8i5fis642hcw76ya5bh94qffhwwg7j3";source="1i6r6i8zh70zxz6sk0c9b07345vcfr9aapw8q5kzd3k76fzcqfdl";};
 forest-quickstart-55688={doc="1bjy0bfkb90nv2dbdw8hdrm3dvm1v0r0m7a0l44ckw48vnc6amvk";};
-forloop-15878={run="1s89z93fvsj2h4w1g8ak512mnnfmd3pjvwbgwym6y0dc428sp5k6";doc="03s4w726zmx10s1xdwyrag86lw84qf4rc3vcdn4g1mhm1cwqg756";source="07bjxa18cszvffxbvrzg26fpp77a5vvmywrr625qyx8v84khcs4f";};
+forloop-67017={run="0mqlc65g0khj1izxpgm7yya2klazsqggz2xx61ni38z7kqhqs58s";doc="11y7afy69dkp9rabj1186aw1d8vfwk3vp9raj0brknka6wlgcijc";source="0k0skv10m7z44d20v17yfdvg6vpn6m9ajn973d6da9cshxvszyiz";};
 formal-grammar-61955={run="044fz33qawb2s81c8walxiz0qjam7vsvsnsvqchmf4izd0svw998";doc="11rj5pbampim79ffipm7asn8q7nf8yy7l96j0j8xjyfxcqqld6ca";source="0xy21vgswxjr80q1qcx633g09qivgkd3i9gf0fwjmykva23q603z";};
-formation-latex-ul-56714={doc="1g964xll3y7llhcq1xih2zk916ikhx5jkq60il65z89fsb6v5jj9";source="184d2dnzcvx0f9di67433jw6b505mh3iv9g5fh30gq0344lfivx8";};
+formation-latex-ul-68791={doc="1mphwdmz61p473y2skv3xw7r7dkqfqr1qygnbg7ih1ai371f7hdz";source="0c4a6hgyvmfav048pifdczscd4cpd6pv0fbaixsaflkrpfwkn78l";};
 formlett-21480={run="1gjdgl26ma0sh15yrgi8kpy4sq268jkz9jmyw66iy3d4k9ybggsm";doc="1mm2m4qgiz0aplbyf3rwzhpfzhyg3mfmzc00z35kv6s5phcmlnf1";};
 forms16be-51305={run="140xh5578cpjn6mfwnghy38alz4av25gha09gl7c7qxljgpc2a7i";doc="0wa6pyn8l8d14d47kqvwvsnkv2s9mxfhmzan7jgzfrmkb74h7xlx";source="1l3ci86wl6an48a68vfh4ynajq6j3br8wbafm8w8c0x810hb141w";};
 formular-15878={run="16h5hf50ngqarcxk4gjs9x9mcycmj5cqwy5pb6ffpj9xbsxn4r8i";doc="19aq7sbghvrif72x7vzvabrhwj7lgsddsbdqbkv9vhmp82452vyy";source="1s8ngbw6s163dzj9mi629yd4fisxr1gl8w8i618my426szc1vrcx";};
@@ -1489,16 +1514,17 @@ fragmaster-26313={run="1d59sjzlvygwq9b02gbrfra4cnvmygza80b5rkghhhpa0n3xnx9p";doc
 fragments-15878={run="02m23bx1p090m6w1frb2k6m0cv6jk8d9fdbmjscwa7c9c55qh5gd";doc="11kj5gczbhb0imfsf30hc74s50iwq4zfs79j6kv62ib6v3p32mm5";};
 frame-18312={run="17r35x914f3h72drsszy74ir5phcxmkrcvwlrfd11li0lsmiyj62";doc="0888jcccsnlpzkynpg8mvxy2mnb2d3xz41bi341q9fdbbzs5lmnn";};
 framed-26789={run="0fp0zbq3bjfqx87zb01m5ffn8kw8044vkz8b9cfndz1ki64d9x4r";doc="1pjnqy8zl5zkadpkvwa35khwjk1nxg9pq0h1wqwgrdvqk6gj0cbi";};
-francais-bst-38922={run="1jpqkxaplcjrvc8647rj4xh9kyaqrk3yj7r3nrkyf4r7b0vwq2sd";doc="0v2828gxvwhljsf578a06pbk1fr3dfl15s9xchy5gpb3cmv2xg1n";};
+francais-bst-68686={run="0irbq10fv35k09a5jdyxa9c1x56k1adxhs3rmdzs061a3j0pp1g1";doc="0c39ya4kdhl5hialq3fggf6vkphg2nb166avfzs5708hc119ys6k";source="1rlq3j5xwci45gb0mx8p4zqp4fsdyck4qzdmz4j8p25mx7hybcif";};
 frankenstein-15878={run="0zj1gcl4gab78qcs2rv5i9y4q234iz731x2hnab169ygql4d95i8";doc="0x1fp5xc2qlx0pac2vqm8567fdh8i97k25ixr28w7fzwl9xnm91x";source="0ag37z3klcy0jvcvvj7v14clx2dvv6q43lh6gw83rpsx51v9wza4";};
 frcursive-24559={run="063909r7iga0cirxq8qx538407qly4p2a440xq7c603fmgcb8n6k";doc="147sa2wcixanwrhdh3ns8fg447zh5f42z8x0aw41xhk7pxncqrml";};
 frederika2016-42157={run="1pi2bhbxw9xg78w6d6k4l6p1qnm4nh6m8k3bn76kv4ascydc9hfg";doc="1vyy278j376swl2sjwxygqm6mi6s51aa6qypgpw3w2g5kpsqqxqb";};
+freealign-69267={run="0b1b3laxjjjr45cagwakv8c50c3cmw5iycd76k94d9nxhgm346vf";doc="0pz47rbacyyqyh075fz6pfvjpi32fl859mckpi4v0kwr9yk6k5aa";};
 frege-27417={run="1n0qak8xsi8wlg7r2daszdvi3hv9gmp7i04phcnx4hnlr68842d9";doc="0hb7a6c0i0jk8cvv2vfr743ysqn2vh1y6amy7arc4zafi097nwly";};
-frenchmath-66477={run="1jvkcdclgr5f519nafa78srg7f5nw97llj1apqpv5kblnkrrkwxv";doc="1fxcw5w32859ibz2j2cr0bs3lcx65r5jydm4cg32r2h55mhp4rci";source="06ljasc75wgws0ydfbykrqj3b678f751wc8jq7any3zq6g6wf7bm";};
+frenchmath-69211={run="1lf7g6kqv9bv6g21c99mj2i0g2v6x740rspibr6jxic6s5q4n3s9";doc="1znx1d2cwa29nic7jcwx1kacfhpig03xj1gn0ap94nz2q5rr1rhn";source="06a65spj8avshffjfp4p08051mxgagaw38i0i8qlk0jp5x89f8ml";};
 frimurer-56704={run="0d2534172sqpzg4zj2fz0k1qa2m627jzqdnpgcak4fxighvx1733";doc="15g0293xz99w400l3rj99849va3swi2j8hcj522qiyzfcx5j7k74";source="0qxpdybwz0rp748rqfs026jvps026sffq3c7zi7bdy8a34mqmgsb";};
 frletter-15878={run="11gxmdwwzwwdlrmycdxi0y123hfikhp9jv1jjmhgsmsmmxsx13ly";doc="1pzpz0q1hplni18m6wkwrhknw15h555qfdxfnnfrnrmsa7n2q2bl";};
 frontespizio-24054={run="1rdgh6wvxk0rhkadcrb1f3ymgxn81vbx489z16k88wkk1p0r4749";doc="0mwdqry0h2f65vrki3kvqpjnf1nm5n9v3ljmn77nlvkarqp2kb57";source="1p2c8sdrm0ay9nz0dqrcjigzsjki15fry6mmhqcm3gqrcscsk5x2";};
-froufrou-59103={run="0pincrfmb51qwn9bcfyqb6rdc0n08lwxf2gr8l74kfmqh2mg5mxs";doc="1jl6glh4pjm870wlb4in3v5vph55fnvykjziqnq702gx5va52jmh";source="0wng7skd5zyk0s2vgnilndi8p9b3h672pk00mwv97h2qb4lk848i";};
+froufrou-67201={run="0pincrfmb51qwn9bcfyqb6rdc0n08lwxf2gr8l74kfmqh2mg5mxs";doc="1jl6glh4pjm870wlb4in3v5vph55fnvykjziqnq702gx5va52jmh";source="0wng7skd5zyk0s2vgnilndi8p9b3h672pk00mwv97h2qb4lk848i";};
 frpseudocode-56088={run="0ypiw6sfap27hpflbk0drnd412ylv9r307jbkkbhnm5lsmwaax2l";doc="1cf6424l655rykyfvca2yl0lwdifgj5kgvl0fvw9ikayf02wh3qg";};
 ftc-notebook-50043={run="07ng7dgbr1swsx0zwm831wijqjq4x6hnr02354jdy9z59k6d4lyg";doc="0w9jxcfvkpif1fyd4xgwbfba9b2sf77mqr9symwby31lxqwrbys6";};
 ftcap-17275={run="0dbrhynslppw5nrdvikzdkfvilzr909ypc9v8nxpa3yh4zln182d";doc="0iq7lq25gzyc85wpmr93a8ivgc9038rs80mvhm46zdrrixh5ry21";};
@@ -1511,13 +1537,13 @@ functional-65485={run="1nzjb56bngv2h36vlww234fndanfi5dbmbz3y1vjxxwvahhqn0cg";doc
 fundus-calligra-26018={run="1rnrqblg06qkwcy7f460pd1hnh4bwl47zyswa1iv4iknx00rd8a2";doc="0jvbvalqyj0kyf6cwr6zf18ylckh3fwpshwhmnv7ldg5r1ylia9j";source="14a0d7d8mlsw7qwpspqc2rmcdyhnfy6l7f57bk9v9jc8pg9fxb6m";};
 fundus-cyr-26019={run="02zz37h71nqq0f4sf00fiw80pq1q3yadnhqm2j3niz13gms9ydl2";};
 fundus-sueterlin-26030={run="1zpcss3lzhc9zkh8b91138ycwj8pihch318zr9pc6bl3ifq37wq1";doc="1pjka7j1378bqa32h0b2dcinf6ayjmzcbm4c1sdw6dsvrzbnda3f";source="1y4bg8r2hmpa38hdgkrk99v87cphikdb7sq5x9aczbmwwgmgw8fp";};
-fvextra-65158={run="0g0ihksjv42jyqfwy9w4221lw37dzisjrsxgppnzrbvgx0djb065";doc="0idk8rh1crisb6biizbaw1p7mzzrdrjvfqp4bm7bhyxl4r47jsca";source="143vyfadbqhm830zyknim3rjvm9dj1c25l7gqr17sy6cyzi5njwa";};
+fvextra-69001={run="1dxzwabx3zifcidp1hv56h0kd234jixjnblym2r4sqfw7lsdyjv6";doc="1wwpl4y3qcgg1k6ahg0w4rwxzr3qw0nv505dric5qpsvi1944fj5";source="1jh9y4w5c05vsqv1yvrbra9pkcz2j3bxqnqqxlnyv5m825k738bm";};
 fwlw-29803={run="1qwlknaljj8f1cpnln328az913cdwypr7w8m8iqbqiqhsl49siap";doc="1cib3id21xblai43gkn78ypz6n99vwzhzmpdifdm8wv001x7wb82";};
 g-brief-50415={run="0w0i9mqc5wg9za3n99i3fkn4bw78l8kf6glh0k6rvrzss0sg79cj";doc="1ikasv5w1xr5ms6836q1bnk7b87s24m15mnwsbdyf7cnsh267x6k";source="01j6zxs8vpiiimc10hhl93xcixwlzsih5k56n7v9a1a3czgymad6";};
 gaceta-15878={run="1yimj3mxyjj36ib4lfdh65sz5w71rlp41hhnzz84kgb5y103wpaj";doc="0vvadcqjj3hvjll9nqn3mam9ycas0zs810qi2jnq6smpm300c3l9";};
 galois-15878={run="1knks42bg72lj8nqdy2iyaqkq5a76yf4zxql24mwxq5fq5xv1vmx";doc="1nqhf3si1kljbr0s1sb22kq6nfrp9ycvm6smiyxbw5lyl3spqkxv";source="1rlgf9bv4rjkyifz3xvvkv6xnqxl0pl973mq0zqxaiqfkh0i5xwk";};
 gamebook-24714={run="0ccsyi63paf40lxphmb60k5xciw8v7vd1hqllgq84mry7igzb9np";doc="1c2m4009fralq8ahhczwfxhh1cmsdh0c5072yrirda46khd5wy91";source="1dk3fpg5038jv5bs7c2f82vll0bdd7c1jrajwhlfk1v16p2f5i1c";};
-gamebooklib-63424={run="1xjyx2yvdnxh5a02pfv9wfjrwgk3gh154y6bs6vm4q3w5vx0gi32";doc="0sn0k5m2gmzi82r8d0vkf83rf67y2bzsf173pj2w9zdv8h86cnhq";source="0wjfc6hrq89hjx93vygig6zxdqib61ng4k4fg2981jrr7r9589i0";};
+gamebooklib-67772={run="1qk51f0a4z1frby7bv553rxrhg8xgfkxfnr4dbq3dg7mydzrl444";doc="1cix1yzasbqpghvp5smban4l16fc48zc8a8d9jjqgpb10l21a2rl";source="137a2hgcvmkgsd8kyzxlprr3d6v08xvdv3s049cg9lxazizm5g7k";};
 gammas-56403={run="1wcvzihv3xh52s3ydni4gs3lcp9icmxinqj6znwyy680izmw67ba";doc="1al5rvpfavkc1p7ayknxnrs4r7jzx7f7dbm3hayqwg0d7jdanp8r";};
 garamond-libre-64412={run="0cj6sla634vcp3ih7x4fg4iirckiizdggw8y5ddxyhszf1ygkz5q";doc="1q1iy0xifacs7w76x4pgcjx13hvj0wc5l42xzac2srbmx6x2n4sc";};
 garamond-math-61481={run="1bjskvaqq4glba1vmcksfx69p6r025sl8aynlbk46kh7x5fa6vj8";doc="1jb0kcy715fmxhbzg95qwilwnmp45znh37iisiny1dzy8919nlbh";};
@@ -1525,7 +1551,7 @@ garrigues-15878={run="0qr2ak20416p5zlavcbihxkjvifzwj3cf03ipsnxlp4a0r3m0hgy";doc=
 garuda-c90-60832={run="1yz7zpwdvvhzcsfcz4dc40nnaagwrsxvskc5bymmdxv1zf6m3npf";source="0palvrkdf8c8xhx9d2sxvch0lgycvn10bfszzwlbxw6qrbnpspr3";};
 gastex-58505={run="08xba3pqif87wn23vacj7amqi97yk2qgsmmawpm3r3iirir2l1d9";doc="1b5qvkpvdlsq85yllixs638p1bwv9xfqy2mkzyckqcwfcdcv7i21";};
 gates-29803={run="1vxn3j957za9j6ryf3nhy5r744gr63m78xzvlh0z10sr0bpw46v9";doc="0igxfdxyiz280ryivffq6c7y84c16ip1av8wn11j6x62dcsrm58x";};
-gatherenum-52209={run="1b5j4106mjdswm519nb9sswnpnna5v6wcy4p8xbccv01044iqlk1";doc="0afd1c352075ix46y0jrhfwlbsaibchvz3xs916qi3hd8a90hbpx";source="05dri0sgr8h29q3zxcsyhplhrkj1wllfb42d8scy6hp4mkmbsr06";};
+gatherenum-67201={run="1b5j4106mjdswm519nb9sswnpnna5v6wcy4p8xbccv01044iqlk1";doc="0afd1c352075ix46y0jrhfwlbsaibchvz3xs916qi3hd8a90hbpx";source="05dri0sgr8h29q3zxcsyhplhrkj1wllfb42d8scy6hp4mkmbsr06";};
 gauss-32934={run="0jsbvm7sh7bhs5yfl17fj1gbdqgpm7qchf07y3p7k0rxxg0f482z";doc="1f6ycdq3lpylkdwja4f89plz7wpnz73wzgjz74far6r9wr026443";};
 gb4e-19216={run="1mi8nwxa418wqp9w64ya1i0ag0pdm4cx08fkmaa302bkhym92bal";doc="0nzmhjqdhl0x29c70iqb8b96pjnx2vm94nk3xgid942pmx44skxb";};
 gbt7714-64633={run="1i9a732px7rrgq69czdqrvnchwwxzl7cmxm1pdnbkv6s2yaakgdl";doc="1ay59q9s8vq7bqvif314xjr34k9b9g4gk30w3wsy7k44ijs481k2";source="00qbmnsyv87q81m01lgflnypwvff7xbqfkf750pfdyd18g2r0x2d";};
@@ -1533,10 +1559,11 @@ gcard-15878={run="1pcxw9mg6hadr5c6m4z3pdzs0b9jw22injdlk46xxhqy5gsafa7v";doc="036
 gchords-29803={run="130b2svqilpj14jl5slw11b9dqhq1nvdph6y3qcq71pgng5lhjjy";doc="10mbr14bjxcl4p42r0zsqag5sg8yzp1mpi0s7fq7i9197kg8i77b";};
 gcite-15878={run="0dl1plmbn4i5hzmjz48hyfl5wj819pg6k1kjsdycx4wi0d9ff2pr";doc="175151qpcykxsf1a6g9v6mkhr6m9cm5miw3ys6j5csrqm3vsl604";source="08h5kxah5q9105n1awlrmiy0zrl3rafb8v3nwp4qfakr83q3vf3k";};
 gckanbun-61719={run="0bf42j8ismm450431pqvqgwzd04xsr7qlhb9di867qdyiy6hbrpv";doc="1rpgm6jclifxzs4k5ybkn9pxsl60vl167jjhffg6d319g3miy7al";};
+gelasio-66805={run="05rr0vdiw9jd2qzasq22zfpg901l9jvighlhsgcpl2n3cfwa96i9";doc="1n8jyjs056m85h2n602h4gys6556k4h2lwyhck5wp4g7a27ri189";};
 gender-36464={run="0skwbiclrpl1n55dr3lkw86dvqy3f1n0b271ygsz6rr3qa43478r";doc="1gamaakkqqf37cwwzxjbyfhz25gdzayzdkqk60xls9flp7227hbr";source="1l5p8ib5lbvq2b8pizpwpbcv8aslmi8dd554win7ssd6vhgb68j1";};
 gene-logic-15878={run="0fxddiswkvfzbmcckl6mhyipxjlr0yf0579i792c6rvrqs5avyak";doc="1nd4bxrq1g1gxcrs9lvnakaivla37p218pa4ns6jyjmimfl31gxi";};
 genealogy-25112={run="0w15jrd6aycdjh8qznvm549kzwl15v2zvs7awgk96380nzcsmhqf";doc="08fxhib7wydjbd3bf24kw6zbbz2sv6fhgmg4q2c1lgxddmm8mpzy";};
-genealogytree-66516={run="0947fmawi8xzmv9c4k4355fkgjivkkjrjglklk6ar7jky2xsg62b";doc="0wvqkdhk1lmvk79qla34l14hvcjmw318vddz1dhl21g0cri7fl60";};
+genealogytree-66513={run="0947fmawi8xzmv9c4k4355fkgjivkkjrjglklk6ar7jky2xsg62b";doc="0wvqkdhk1lmvk79qla34l14hvcjmw318vddz1dhl21g0cri7fl60";};
 genmpage-15878={run="0fr4m2y3vfymlwk7ik7rymifyam2jhbxn3qr2sj40zbcr9wbah6n";doc="12fxwrz5gpswyf523wm1pg99zilkgrpq8z3ls5gw9j7bdb71nj1l";source="0q7acjs7g1xh5kcmrg20k9jayaf5vxz5p5amjjd4xj4rnb1wdlj1";};
 gensymb-64740={run="0rsck4ysx86d4gfr5a1w9kam98zzclb78v5hgdmhag74a0qs1n0l";doc="0826rq87q35knzmwkhz6ipigx3s3hkzcypy977qa0r3ibcbdr7ap";source="1na3aqqjfp9p9zb7hyzz6wdd0biiigih9fq6bxygcwflbwbhks6z";};
 gentium-tug-63470={run="05m3qcb12n143sxy12zm0bvj9zvkdi4sqsriprfkkfg6xlvk396r";doc="1yw6xs5dpmvk1brwry30ak368xddbmz5z2k79fpnyrx9a9z57j37";source="062g0b8bn41aynm3sk02ciapiiwl55whynvnz3gfzvlja3fn3xxp";};
@@ -1559,7 +1586,7 @@ gfsartemisia-19469={run="0b200snkvdkrywgn3j613zxyx16prqczw106hfh7pzpr7w717lyr";d
 gfsbaskerville-19440={run="0n68mfx7026ymxlyhdyg9ppylh5g4bkwj95c9bfmp5bmym0q6dfi";doc="0v0widjs2w65ppvzm04wzinrcyp8hcicgxp6brydjmx9d32yrzcq";};
 gfsbodoni-28484={run="00r9b46m6h4vac788vfz6jixrd4wbmscblhqi1pxhg76id33xdgd";doc="1s0lq3ac01zcaqyvswn12fxhvqarq2b3lni1xza3yyk2p6y95g1s";};
 gfscomplutum-19469={run="02c0zs2xl2hy5wrrj25w22q1fj6q8w4qjbvlpx05pzzh3y63n3ip";doc="0h9i4v3sag4fmvlnkk0wjxmgsq4kbiikzv0rzfrhzfwaifpznkcf";};
-gfsdidot-54080={run="1ks352cxsapibfm3y4rnw3k7izkjzpdc5fd2faq314qh5cpjhyy5";doc="0nhjndir8y8s9lpnad05h2crc41la5hqg8ml1rm0j5mn6jwgznwl";};
+gfsdidot-69112={run="0m75xf0x7y3mxhhnvs22f1fz4gr8m86g8z9nfqxvwijjzm6xgm1l";doc="1jaxayp4z0ih0cr795as9bmp87h24z41ijhrfwwrbpbmjkkm77qx";};
 gfsdidotclassic-52778={run="03p2w06s9kca35jdby74q4x8if5gs39gb387rjgqbv3vdn7zxi4s";doc="0qnkxqr8r9spg3xl2ifr2sb32hbvmka979c4f8aw4z1i810bs0kx";};
 gfsneohellenic-63944={run="0ycqh6fn1y4czslajdwnj8fga6f2riw0pd4az10qmrxayi5hil23";doc="0zp7rba0mhbhjsnjwm3ldy1frz75grxgnkfl1gvzm4psxm3c9yjy";};
 gfsneohellenicmath-63928={run="1caa8w1jzwk77djhycahr3dd6n8823vc513gl7sgx2jid4gidz6j";doc="1fk5rn7jxqlwhzv7v9fvpadhlr07fr4pfjlqh7zx5wl720xb3yif";};
@@ -1575,6 +1602,7 @@ ginpenc-24980={run="1brakvxxrm1gahl609psp4na8ylkggfs534nysnrijq6vf4r1ryc";doc="0
 git-latexdiff-54732={run="0b7hafll82widr8vibaqqavwwzi7m488ypm5wx14y6jncfl8py9y";doc="1cbny4qkr8dg8vnxjnjawq9cjb0h3816ad66q8b5652rpxn3zqcl";};
 gitfile-info-51928={run="0qk6r9fiv44hamlqvsgpm75nd68sgj81sgy93zsylypp15283z2b";doc="053x23sq6657lddjyk9bzadwydfh4zxl78gxl1payxmbl9pj925i";source="0fnrwcjfji5pbkh4kdsishfy85gqcvcmfqxwr5s1n3bm3prgfc8b";};
 gitinfo-34049={run="1n8mm4g7bmiawd7l7xhx9fcxv7z3l629bj21i6j9s0rfd6c7mzz2";doc="1ip59qxlqzrn8y211691cv4bg8d0yxkyvbpxw8xpzg99fpp3isqx";};
+gitinfo-lua-68808={run="1brd5rqdx2s7s21lddkkl4ymvi7zcq364qffi3wzb55c87q5s4x9";doc="19c8bavrs6jqk0760b7j608xj1mrr2nrabzw3kdvgxy2azww70ld";};
 gitinfo2-38913={run="0k3vw12yh13q1v21bz7i3m32s1w49pk13rg3c0d0l1pcx0wwz20i";doc="0586h9c1kp5cg7gk67xhy5fbshpskrmfb81m4xncaxg6ajaljk7n";};
 gitlog-38932={run="1v0zpfry2rz6xvm92gzhabc9sa157kylvp6jg298kdsbr2limn3k";doc="0pd1f42qmka0wh9b8m15nk69p6isqp74b5qkjg6ymwbabqxbcbl0";};
 gitstatus-64662={run="0kn4q6c6379qs34hmvzixvwkzhwbn3bnrn1pjwsp8lp66fv1wpv2";doc="192g75hfxg3nkaf0x8b142jzgmjzv97mpiravxfwpgfv25fayz0f";source="03kz49szcrpa6ij859a44ham0gbr1w2bd7z7p68vhwg2pcg8gq5r";};
@@ -1583,19 +1611,20 @@ globalvals-49962={run="1kgzrymfd5lzvb9dqlb4cgxfszpzhvad859r7sl0dl282596apgl";doc
 glosmathtools-55920={run="07s9jh24m9d9y01kk6z5lw9acri8g8vjmfw0mgdw3mwpffmba5mx";doc="1ya15q1nb7xzjxq7cgnl9q8pwfr1xbih6shd89krijr2l3rrycws";};
 gloss-15878={run="09d8r16dwl26a76a2gky152bafjip3r3hf41bxxcb60sjvnz2qva";doc="10vgsm0cvcbfxwi7ly38lsvvg139y6abmdsv91qxq3s1pn1qxg6d";};
 gloss-occitan-52593={doc="1q00j5r6d2y3gf8rbh7f7rdfjg3mg1c3rrfqd69rxyam9n92h41r";source="1cb92fpzv7cqqxxa0img0la6hrgxw6azb6j2rslszk9hjghbcjdg";};
-glossaries-64919={run="162ccw02q6vj9vs4j623ai8p0fx4a9mn671v1pxbhbq2w0j60k9m";doc="1fsp8z1iqsw5jg1jsinjd4xwbxr05vwbx4krbw8zq9far39vh6kj";source="0xghvz3lgpq19zf2wawdh3qka0k9x2mk84qqjncnxfh11fbim2dp";};
+glossaries-68437={run="1d85ifx1q3cx9y1mx1qlv434l3858mk8xl6g8azh806258ks2lp5";doc="139jcnfcqqdsq5wvbj83dkrhjgs1fwslbgp16nfnkdnibv6p3rl7";source="1kly0q8gvlgr8fd933dyfkqribrpx51zaf10v0ii1d7s8rp4a07l";};
 glossaries-danish-35665={run="0qdyvkx33a9jgfa7y1pbm1lg5v1ba4xrxxg0hyfqi0pmpkajqb87";doc="0gvpcl8881g9xfcxhpa3h3c5zc3467ak8mhmr4szgjrsi4nsrnv6";source="1823i0b0firwzz9038wag2qg2h39az1xsj8484w36kbij8q7ygld";};
 glossaries-dutch-35685={run="1ipxgp919h2jh5jajq72dwaf6v5qi7xjplcihjy8j88zakd9iacs";doc="10k1xh64rzgcddzaz7qawb2qd353j79xn3754byhn4d1kz6nihxw";source="0g2kfnxmnnqz8y095b125d7ira54s5dpb5shfqld7m52cranscy8";};
 glossaries-english-35665={run="15nm7bz90ijx674p16d596jssi5915iy43wc1qb6gbbk4s8y9h3c";doc="1dckvl8g0visp5j8ip9kvmis7qw1n81xpjw136bnbm28y7a5m4sn";source="0x2iw6g9a6dzw22p05n3v7vbif8svhnw9sjqfmxn020jqnajza0d";};
 glossaries-estonian-49928={run="1p2d21rx6vs8gcsalbf5kjyhmz71gbbn10c4j4lsy7rqcb97zi99";doc="0q8rsf08snd2p4nkfz2ry7rmsbdpixgn14n1mk4wkjclrbnjszgs";source="15xi0xl53jxfqsz7dwbmcrnlshvs2zbdq38v3izlyz47aaf6ajdx";};
-glossaries-extra-64973={run="02hwbyy7vyzifdb8ifxj39bh056hbfnr890qpzq962d94238wwcl";doc="0bmd08m4bxg6qrkpyw59zm8zw9q59kfyfnwfd3ik5nq0snms3380";source="1shb2930wm8f22h0yvwq1ylxia5nl82bqn829b42w567byqyxwz3";};
+glossaries-extra-68409={run="1k23qj3hmimg9yc25chxlg2bkznb730c897ly9hy9bm1cvwgbfwc";doc="0fx3jqn01nxn6slb78ilwkgwn2na2snihynjmirp4r17xx858dqp";source="1gg4341smvw2qd6wglywpaa7kziz92mj2x9vwmz28h6pnsvr0x7f";};
 glossaries-finnish-54080={run="18la9s6gblpqdqa1vcvsddzfxadssnd1mrg6iwl4aarq57605cql";doc="0zjwasnxi1fzc3xq8xjmgyrfcxpf3sbfgh6nzz60zdxd8sz1wvfz";source="0jfvjka4i94vh88jfpyysm6r1q9wwg7q29s5ik8d3da9g3n1bhyj";};
 glossaries-french-42873={run="03i8xx80d740c5yv3i83zbxpm9kckzj2kbdsakxa3sp9b0j0jk0b";doc="1k5gkdj5madigzvs138r360nrg6d3fn145xf8g708bk43r92100r";source="0fhi17x6kk73mismll255b9nsr8hm147zd0n3rcndbih9ray6c6a";};
 glossaries-german-35665={run="0h30icsisgk45ghhmngda0nqsjzsm23hay0sxch00ix5qcd19s27";doc="0jmkcq9h2kfjzfwysfps7nqjl7f0zmh5s60ww9kll8ypdd4a1n0s";source="085xarcnj5cvkljz70m27c7390jpj8kwndpyb762pr26dxvgspqh";};
 glossaries-irish-35665={run="0xyijjl1mffhmwlx7b7rprzl4rvhb2h8jdsx2jq86qg5gxd6c4r6";doc="0kic0jhmwiik3y2gipncii6j4348qkxbvkzs3sp9678xjl6j5zl8";source="12qdj6wfgrw6j4vdlkv0bcknnamb09vsyxdmyd094hwgi4cs7wi1";};
 glossaries-italian-35665={run="1dwvjb91jn93jbvh0idvn3nxm6s7frxyvc5a7yszyisfbaxx917v";doc="0sb6kzw87nh2vznwhky087017c6338jhqahgh4ljmzan9h3imk84";source="0hj3wdzdrjv9aciqgj68ihaalvarimi85vff0hf6isnmja5pwg28";};
 glossaries-magyar-35665={run="0y1540a4f531mc8fqpxv50d25a78waipkhhjvgnilbh7p1l3cf04";doc="1sgndhgxlbhfjg22hpqazyd4zrqmkiahjfwhhwv1nk4dnn1rflcp";source="08m0srsv9nspqfzab0g276rimzw64hg9i6dddi7fy9pc55iikfky";};
-glossaries-nynorsk-55189={run="19di0liyrqgi4vb0aiw3p507klaszwbdmsxjh09snp7jyri2rd43";doc="18l362siz2p65qhb2vfgqdnczqwcgcd33qq8c0c1h3vqmsmcjfvb";source="1diq7h06jw2s26jrbb44amniqyipdndzidf2z122xyc9cgcwzcwm";};
+glossaries-norsk-67141={run="1qa56xzfnhbb9m5aaz2sxqqj21dbsdmm6yhkskdb45j5ac8b0nyc";doc="15z45ib96inz7y68rfghas87zbjw9g2mv9r4a63xkf371d4g6xsy";source="1jgwc8x3xia56g5xqplasjr2c1cll1fdizfhzszrz1fc1jfjvyzw";};
+glossaries-nynorsk-67201={run="19di0liyrqgi4vb0aiw3p507klaszwbdmsxjh09snp7jyri2rd43";doc="18l362siz2p65qhb2vfgqdnczqwcgcd33qq8c0c1h3vqmsmcjfvb";source="1diq7h06jw2s26jrbb44amniqyipdndzidf2z122xyc9cgcwzcwm";};
 glossaries-polish-35665={run="1pm5c1i0zfzj32p75cj014n2kdlfhfp6zlh09y5y8a7cfdsbcjdj";doc="1r0igixgkwcp7h3aslj7kmchxz32qp09vdan6w2garkgj1nspnv8";source="0zg3pfjg03kcrqm4b3s2bb9z3jhlga85hzd1n83pbrvf7fph4ld2";};
 glossaries-portuges-36064={run="1gjadmklh6lsx5drjqgph31z3x0g4xy11g074hm4y2zgziidkbyd";doc="1cbzpx932chvxrf4myhy6bg4jrj05nkr2l2g893k6k7xgm2i1m7y";source="0cz40x5s9whyr7r7w8gmw9gm119xmbb1qkhz19zfijg6nnq2yig2";};
 glossaries-serbian-35665={run="1nbpnq50kki9i2i2dlj2x9ldy6g0in0mz54ii107m8fc66g90vi8";doc="1cx33aqm3qcj94rl6n71wm0sq2kc29r1wny3bwwpqg5mp3bw2g8g";source="1vgihxf778vvf86rka345qmnbv5s2ma1b5h47s2f15x8bjx4xy9r";};
@@ -1609,7 +1638,7 @@ gmp-21691={run="1c98y5fhnq5w9b6kkpnrag364269s90kccgbqwr33bn9ixhsf0dq";doc="0wir2
 gmutils-24287={run="1yf7r1bqv7kid7v65bv56w4an5nx22fhxzh67fh7r9y8msrz86lh";doc="1xplwkdjdcz76rmmmnv8zfp3fj104b1vag6rzrxj7ap9k8zzc40f";};
 gmverb-24288={run="1mqmi97imyr63ff0qyv797sipncqizbx9cvlg49wxnf3bjyk2ki2";doc="0r9sygczigi52piyk4zgw807zjr0jl4babj3qmnnsg0qclhvaqnq";};
 gmverse-29803={run="06v5fxz15byps13vm1afrpx365nfmq57200gspqpdch2sji2n4k2";doc="1f8hccasv9f1wbjn7cjkwa2z9rwn8lwkv657i8n533ccjk6s5xvy";};
-gnu-freefont-29349={run="1gq5dcbc92cxvlqddspc9m8v5biyafgvjc1k7fy8z31vll6wnfzi";doc="0czpqlipbwnqsh5hp6yaq4ypqzipm0xfsvrfc36pri0d2hb77clb";source="1cmd2p7krwhkg1f8xf0y4z2ik9g0pjc0qgi3c5van9zva0bn84k2";};
+gnu-freefont-68624={run="1gq5dcbc92cxvlqddspc9m8v5biyafgvjc1k7fy8z31vll6wnfzi";doc="0czpqlipbwnqsh5hp6yaq4ypqzipm0xfsvrfc36pri0d2hb77clb";source="1cmd2p7krwhkg1f8xf0y4z2ik9g0pjc0qgi3c5van9zva0bn84k2";};
 gnuplottex-54758={run="1ck4r4inr8ac82p0r8062z3hwf9187sv43ym9586sk3ip6kqb3yj";doc="198g23i6k5f353w2aa9f9cw6cj8b4f93nsk7iq2hvhvk6ia876vx";source="0iz43zdvzfs7spc6zvgclyh0vjnzkwcixgk5mg2a3wrig8r4q6fq";};
 go-28628={run="0lqgz9r0vxjbq1nyg77zjfsglwbd44zdpwz56smalb6lp2ra3r5z";doc="1mf49wywa32chr8q4c0s4fdkmzd88a1fj3hxcf3zx7bnsi5r4gl9";source="0vslzmpj94qlh5g2jirwj8b4w93vx33j8xdadyc32s6b9rrdwnyl";};
 gobble-64967={run="0f4dk6xg7b5ij3w2za5mspv96xrlksyi8gy5h2ri29khb58cw5h2";doc="0a2rd4m38mgyfpjaf9na75w5cmn32lxbbqhqyfr145hf2nf08c1x";source="0k42x8ni36gq51aw55ywy36jl89brhsc0177kn56zpvv2zmghqiw";};
@@ -1624,12 +1653,12 @@ grading-scheme-62505={run="1cbprwzwz019nscz0j3j0cdxkrmkqs9r220qvfms1vfmjs1j9dg4"
 gradstudentresume-38832={run="1i3rbv9ixnr60yrjzbj31aaq758638k5xvlarkaqsjvacc3wx88f";doc="0nvih6lkbgc7jkkj303119fyxnajl4iha2baz2yhy62h4mq8lhd0";};
 grafcet-22509={run="0yz1f2p8dn3a1ws5skmznbd4ih9bri6r7vr6rx3zcspmad1fjg4d";doc="0inzw5cw5759c4l3ikzgn0zx47b0l575yjpz2613fh9l5ys800nl";};
 grant-56852={run="1whd5f3fc72balvgifnb37583v0882xq51qa0fbb92b0a0c71nid";doc="0zfz8gj8di6sx9k48zdn5hv5x2fj5rd8dm7x4h2k6xssrj4aw7bx";source="0pmg6kjzy6wahhz3lk742qzx8m5afz8lqsl05zpkcmi7ris9m9ah";};
-graph35-65138={run="1kpcsdyh212brwfvg6m9h5w3dmkzcag9n51h0q519hb7qq0f6k0v";doc="05fx0x4cdsdr78sak1clb17393g5vgjqjigrh2kwkrjdkqv2y8i3";source="01ffp49nvyfhkx2bki8wrnvf3jd9db2w357l1awgbymynpwrx1zr";};
+graph35-66772={run="1bjdw1kvds8iahl1chrzmzaxm5ad7bb5c99yyw3rd390pqbh8y92";doc="02kx45b2c9d3f0f5h8xw2mnqn1mrp7v8975y2gqx1ln2x61xmjpm";source="1lm6531f5s5j1l2fasz0fk0adask83b2w1plkqmk3zxrn4rcchw8";};
 graphbox-46360={run="1hvhadbpd988nvrlcppvv3bnm5lzmlnxgwmfp6r4mgsr1q7xgg6j";doc="1gls7j4753s16q6lgdsaa3yg8fc4vzxh74z7qr2ykz9b8ij0sdr5";source="0nfmfn7y1qqbm4yifqxfpxn9yw2xb9yj4smv9fmxrs57ism8d9dp";};
-graphics-64892={run="0cb099m8387zmn58aws7q6nn2wlxnz3hhghhlfn6aagwp1i064gy";doc="0q1b8gbssjvrga4nbjsxk8mplingbjs7x4385pa4bg2r29r09znl";source="11jmacik80m12vycw3yr8waszi280f6raiqcws4px4w6zan71qhz";};
+graphics-66204={run="0cb099m8387zmn58aws7q6nn2wlxnz3hhghhlfn6aagwp1i064gy";doc="0q1b8gbssjvrga4nbjsxk8mplingbjs7x4385pa4bg2r29r09znl";source="11jmacik80m12vycw3yr8waszi280f6raiqcws4px4w6zan71qhz";};
 graphics-cfg-41448={run="09yifx2ww4jjjhl5k8b5vz78711289755mw0r1rcshk596qvn9r5";doc="0rfjgc83ryg3s5q01xnkk8bzw7rx7m96hfxq85xjjn5qxsgy8yqy";};
 graphics-def-64487={run="1jicdjf7bd30khgfkn6ilm7y7rnkqvms909wqj3ixc3mr3fz8j16";doc="0k6fapbyi9bidgwr67m4l2qfqyg0rjwnyznfi4fy9q9f6w61fmv6";};
-graphics-pln-65187={run="0ig79072lirxb1hdy8ja2vc7p7hif6zcikp2xklg6gvr3q8a4azd";doc="1illsbqal78vbyklk1h40hmsnp992irmn3my0z27qm8qhkb9i32h";};
+graphics-pln-68760={run="1z2vgvlf3xpxidfs0g4hmq990lpxvird2pc6a59l2cm1s9nvsz10";doc="0zjm566qqqk8blsdri7jxbhynlf98fk7w93fdxf5wvq4lzkwks38";};
 graphicscache-65318={run="0gmp7wldnc7l3768fs3wximhnc02ijlsajsfbg1iypihak6m2ym1";doc="006yyxyga6n3hissz8i8nmydwyin4ag00j9b3g7dg4263hl8yakw";source="1nk212cwla2y2dv6cysvk1vzk6kjyfgs03ngh3ry4gyz6ql844qi";};
 graphicx-psmin-56931={run="1sz53s8j6rn37xz1kkw0zr85625qki05zfvj6zpyw1yxay86r89w";doc="1fjg0pwh8qxk79mmrpgnwps50r8hvw6hqsjd2cp021wkqcyk5zb1";source="1rjl35jhy6dwja782xwh0qp3bxyw6ziha6fw5qbaq16jfy8hs95q";};
 graphicxbox-32630={run="1pl1x7n7yv7grkplpx7fflfi4cwzmkmh8nnd77i2n5wdlylyabxd";doc="0f1w22m5r1xz6n70yb1p21qq3fi2rfj9mdcyqq8s40km1i40yxkd";source="163isaz9zh1jr5wbhsw3ppicxsq4v92d6516dqgiwjhf6hdgay94";};
@@ -1637,8 +1666,8 @@ graphicxpsd-57341={run="1fganh87hpkac141i4c8f5bw06sfhy3qs14blx466h1nmc6308az";do
 graphpaper-63116={run="1bba2x75pd679qd6jcm5dd2br5d3gr7s3r8fwwid8mmq30vy72lg";doc="0a8l3wz3xrxnwp5s7gjr8qgmdbkrnwc0gki6i9xymvys385c6q87";source="1343djcm9sh6g5v8yfbrrwzg8x68rjgwpicq79md4f4gnsmz6lvv";};
 graphviz-31517={run="1gpl57lb4wkysxdhvqajzxjb4w0m5nxdxi841dzg0sg2igchfab6";doc="09aa9yl3zmcc5vlvjvgaxfmhj83qk4wgp4fx90bgn28kxnzhicxx";source="1w878b21va1y0mz08wr7mgdxl09hmbmxbzfnpv2mdqyy01lwpzks";};
 grayhints-49052={run="0p65f12y0v9s13gkmd0limdcsz36lnbf0975c4pxcsc42i8smvqk";doc="07qpkj60rrl1pc651qa8kpym3bzcc0qkfwaggcyin9a65a5snnhf";source="1g32xq2f1ncq124j2j8xm3vdkhv4sxynxc3wzx7x6s9i91p5l59y";};
-greek-fontenc-66516={run="0vmmldg31lhdz1c17hd2ldm1l3af58npxhz5lph6wj4hk55kgh00";doc="1pj9w0yfb4f7rm9qay6s89gv32v150s8v897ci37vqzm92cn07r3";};
-greek-inputenc-66309={run="0krfi8rqvbfl4lhidxrls8r0l5fg97w0yrbaw6cr4zb12cwsqpjz";doc="1vqyxwwn43igr523qybgvgqfgl182v8f02n4602ysqpyw66j53s4";};
+greek-fontenc-68877={run="1lsyx2g792b2m7rjlihqj26dkz9kaskbrbwzvkjd0x0rzvf9g3a8";doc="1qrn41ly963nnpwchs1s1l3mfsi49af1x0q9vk4zms4wcd9w34wh";};
+greek-inputenc-66634={run="0bg3frdqlja36j7l4y1m41nslqy7bisbyqyax581arrl9hv9p0yh";doc="02wghx50h2x7p9kl6j7kkg185jra9pijcjrf3bkx6c7d1spvszcv";};
 greekdates-15878={run="0g8cgyrw6lacr9cjig3q1g7rvjdwb0p40b41rsqg6lj6y7m25ya8";doc="1sh4dgxfn55gg9vp163qj9nd6kbp03cb3nkg3hqlf6b1az486nh5";source="0k8vyyxvi1i6kqnanfm1nfhbwllgn22ik57r2p357y69hfj3bs4f";};
 greektex-28327={run="1v39z550xynw4kkqjqcj7izj2cghkk1g2swsy9x9c71sz95r2bw6";doc="0g4m7sb6ppjj0nxgv7pwwvc5p07jdkablcqasdmj8p44ikg9vp59";};
 greektonoi-39419={run="1dhbslqclyk5d8a9v9s4af4gxdy39b35zbbr3k5m53gsd0kcs5w9";doc="0hmxx4pcirm2v5xpl3zyij8r1zm45f373dv18vxj4xr3sn6b7p14";};
@@ -1657,7 +1686,7 @@ grundgesetze-58997={run="06zf794hhf5w79d3i5wh4lw97i0j98kfkrnn8nppy3p4yrij864b";d
 gs1-59620={run="0j8hsdifd75wm4viqwxxk7s654bb7yxs5ccqwl0hxw7kxrxybxmr";doc="03yw4cfa1ixhf34ak42qjwnb1pbw1lzljxg371v1gcwbba9x9svb";source="1my4p6xgpghz0fqq1i5wmqx0nx27xn0vbpl4gbczwi1xnakmvv4v";};
 gsemthesis-56291={run="1y9wj43qpcgp82sfi5s7izyf284hzkn5py0v145jx03l2kxhv90c";doc="0fyadx4x8d64h75fq3xgmfxympcbfjhwwmwg4bpj20d3dbf0rh32";source="1i5w77zwb9c4qc90hxz7sna8g2c11mkf3vnkkm3scm6pkbg9z0av";};
 gsftopk-52851={run="0n6nnfn3fwi5dz9vdqk4mv97hwnyybj3wsv3bipqfsxl31yjp51j";doc="0xdb0h557sgi56gik24izsr5xlbmlfya1w93yih61a5422rv198c";};
-gtl-49527={run="0hj1xzsny4qx2j6j7ac1b39whjcn3z1m97xyavmz9w7ak4pgnh74";doc="1aj1s3d53y0wsivmavam28zm0q1bxgk4hndr6ifv9fy4m52dw89f";source="1qvyhmywdwyaazcz7kvk321pbsqhcj69852a8zq0hkvgcadrb853";};
+gtl-69297={run="07d5wf242l52y43ranq4l147755gl8r83429706yjj01a71mjlh9";doc="16qpbiy2q9bmnj545ni2pv0w63djsqyjba32irmhq61xc04fkym8";source="11nnmbgr3b9nww4w337320rjkyc6l007s97l3kh2m2xaw6danmdk";};
 gtrcrd-32484={run="095v007lhv0yyni3cqvc14iv9jqi0aqfmlr0zgxh45xfpqbsglnv";doc="1ivw62rpgfyxmlrzvjvmhf4hxfrlgskzq3qr0p6g48ilv3is7sb5";};
 gtrlib-largetrees-49062={run="0l0fqpw6sd1gg3da8s7wz324q5bdd9l80zxg835gfw0vvrn912im";doc="1mq4pbmsfvm4y7g4ar3a438469yy6x4ciksrns05dnkk54adyyj8";source="02x48sgx6vfwbdvgj0f5b9sc0kmkwcl6jyqzv0ascc77av9w41na";};
 gu-15878={run="0h37ilpkqlb6z4fdjldnbwpz2j15izz0wb70n4zmmp2162qqbjni";doc="1gx36ngw3mbbw9i2xdi2glx80xfvj6pv5frh6fmsqlnvhgni13nf";};
@@ -1687,8 +1716,8 @@ hanoi-25019={run="09a7cv76naxzdach5507wdqnjp12amvlia7kw0jh224ydmkzfx9x";};
 hanzibox-63062={run="0pww3xzi9r52cr0bggpw7wlddm6gzf5vs5xi7v03ynlpn45wz3x2";doc="0x18yvhnywhdl68jz4v5llkqqpiz1l48nv77g0x2x2svzwrxrw3w";source="0dblzzg2gkg1blx8rh3rs3jb5pq1qjcn9nq0n0rz7a7dph5f10j9";};
 happy4th-25020={doc="1x950scxbvcgwycpakflpklc775pknjab620g099dnsfrpb76f4a";};
 har2nat-54080={run="0zaqsnvg46pdf98gzlxa8l6z8v9l3fd7jmf60nbrfba7jrzpy1bh";doc="00n5qcljlpw2rq8x921vhsk7xvz8z43gxiq41qfzin696ysn7xj5";};
-haranoaji-66119={run="1vfk6bh62pkmf961qlj1f0gv4yggp6sadjr141h8905wf5980m46";doc="1phy7r81z2wykymzsscvgk0211w1lwjjn946mpzdw97vskx1v2f3";tlpkg="0l9jczs7kyml3i79idyzxsmla443zaxl5fm2k7dmg5qpc30kzmaw";};
-haranoaji-extra-66119={run="0j34fizmxvalvw4vssx9fm8ik2lg0nhv1saq9xbrd1pymjkavnv8";doc="0izf929g5fwzgyb9piagjjjn87rq4dj6qy3j873q4cflqd9avdns";};
+haranoaji-68501={run="0lpghfxqr1kh4s6vk5zjqkzm4ryz47qa3dkrxfiyclv4crsqlf16";doc="0v31a7kz4bxp4ay7bh63w5hn53iljq62vkkq0nad7jf0cyhdm5sv";tlpkg="0s4wnm8lh0sbblz47j7q48rlndqxjiyn332061iadd5gh1x9ialh";};
+haranoaji-extra-68500={run="17j0nf9f0l2202d0b6yba9dbkwp7y97kxh4lnv4chvx7f07l5grr";doc="14w5x12q0d4z5h0skp4lvicwrcksl9wfc8lrsv8lc3dmhijv0f48";};
 hardwrap-21396={run="1kwsns5vg5pkplcl5nhmvpm2ccdv0f9431qxjxq1k6zfsknpy60v";doc="0h1n80c9l34isgyzl36hf4nigxcsykfgqv6i9jjdf6dqpp23bpw9";source="0hiqsj0vpfkmi8z048ymlnxrxaam8raq2f48wlyk67x4w2gv72k8";};
 harmony-15878={run="11vh6dy95n049bfr46yyb6a5ziawmh3n8dr8l7cqhj4pqmkpgad8";doc="00kf7kbrfr2cqv7izx1v90mpa81ncsn0r9jkxkhz8df8fsizaigl";};
 harnon-cv-26543={run="125885fg7frl37pmxxj51i7d22xydj5wsva9i27126903y3qdm8m";doc="07i4qv95fcfnlfj18qljwbkv1cm5r00mzmq570ra3bgjc301gk9a";};
@@ -1701,26 +1730,29 @@ hausarbeit-jura-56070={run="09nf6pz7xqhzs0n7nafmmkpsy5ksvqvnwha80yv6rxasnazd940b
 havannah-36348={run="0zdbwl36d8a374yhaqfb4f3561ncch10v0vh7nxj22f267lgl2n3";doc="1pkkslz2f66j606j44rq32dp9qhfqcr959wrp8j9xgkw76i9lprh";source="0gyndaw2g2j2j22njn32839mihqx3pl7sij35vhsyahyamnipk2h";};
 hc-15878={run="04qricj1nmmmhxwsam901cr43h96ymc7qdb1m52byniv51i8g0yn";doc="06q64drrpgm7lzp45hrl33cs2dj4mx1mjpsd3paqgsn2xxqls2yj";source="0knqx9smbx7lyr1r6vn50x3x9zldv14gb3484jqk28jvm92njnij";};
 he-she-41359={run="1rr8pdpizasdcb1sfg74nsqs67xh2lcwd8w2rjaf719bpx9372yb";doc="1lmahrp33iv7bbnkbiwpkagy3rm7j0wric7m1fbzdvkgkzv274na";};
-hecthese-60455={run="17yd5vkgss1g8b1hq34pvawcqlw494yc2dwnidlykm94jgqlzfz5";doc="0wmwc5sipbd82c35qjiqdj45fr71wl719sy0s4zbgw45852180cw";source="1xwbx6sk679m7wb6sna4c0valja9xcqpcwjbcp1sw2yvdx91jn1w";};
+hebrew-fonts-68038={run="0024bhlbj59gq22gafanns4gi8mii8fcd6xkwaa85czgm5yqmazc";doc="1kv46s1x86gs2b7h9934hqlpp4siidnarb1shj427vijfg68asnp";source="1m4kd4r1i3sj4x0liyrpxckdp4v6xvy79xwmkf3glzrmzq79vdz3";};
+hecthese-68584={run="121l6nj57aivlyw2gzmyqyi90ql3bsrdjw0qa6gy7i7ifhw81s8v";doc="10pl8k15r835rac4ihng85ayp2k4w7idlf3ss1ywb3appayf8r9g";source="1cnnif8c2n34hlpm26bpdvbrvzil09rdfbqcyn5nbfxd66k83vah";};
 helmholtz-ellis-ji-notation-55213={run="19szfdy3r6i0ayfr4qjv99dy6h97pqcfr08xhy3v9kzqm4d2b5nb";doc="15d4dil3r44v5xds0n1lnqml7cyncpyr92prb56rfaav669hflbr";source="01zdhy1p6idpksjh1ak1lyw9j536bzr130bjgay471k9d76n38dr";};
 helvetic-61719={run="0c3f1ly7y6404z0akbfbbfql13sz717v0n0g69qjpr69hi4n0nsl";};
 hep-15878={run="016jjvmmc679sk23dy0g09a0s0n176a5pyq18snvi9xajh2c4xw5";doc="0czpwbhpgpbij9b97dlb3qq0aa9vyh12p81sdm0hwkj3i16yawav";};
-hep-acronym-64890={run="19sdmvy5sijgaak4sqpsmz5cgdmrqpbwg31m35aafrimdpmbp96g";doc="07im9wwwb3rgqfqghzhblvic0iywcdbnwbj2m2zq0j6dv4x0hrx6";source="1hivca0n6hmy7g07wm7gjbbhaah09isa48aizjszk8yzfnwlnyc4";};
-hep-bibliography-64888={run="1gcyhqj6g5hpxd7db3alqy573qg8halx8kkha52s82adhdbimhd7";doc="00a36vgd3yld8ydql0rnjadfi636xav73cp4r5387d1qvqh6gd3l";source="01wjzgcj7mmjrrvwzmwvriygvlj7ysrx00d2ggnbhid7js6l4fgq";};
-hep-float-64904={run="1jjl09r4mb55k1v21qxlrwha0g4klcj88sv4583kdr09vckc1scr";doc="040d9a8jdivdv3yvc9qnb0lnv90h3xjpkrz1qq0p5g3qpy8wp6k7";source="1b5r7gfr3pg31rbsjilydqp8lalankxqdh95dyq40fmvijmxihfd";};
-hep-font-64900={run="1j4k2lrxlfxznbp3isb6rn7b8y1pnhv4n36lxxi414f95l3cpg7z";doc="1cpjq0ciwb3q44vngc61k4m1rkhvkwa55qvngc7s2ixg98i9xn1b";source="1fq1arnrackndb34771r6ypfzzph6ag5ams42kmrbyvpcd5mwclb";};
-hep-math-64905={run="001j39vri7w6fm35phj6spmi4gcy766msirvfb0006nay0p7lfg4";doc="1f4bp9wadw5pdzgmqjh479wxfy5rvxdiaqrddxb9q55afm3fic4d";source="1yl6qy4m1139fhy5xn5nlpfsc3lvxf5140wc1hmjm7c0ib1hjzq2";};
-hep-math-font-64901={run="08lqhml6qwy5p1yhv5rzzm32lgxnbhb5j695ghz1ixx82lvzbq34";doc="0wb1374xs31rixrqc75jbccnp18xdm24x1kxlx8xk5gfir2la8ph";source="10ciyxpikq531j1xm1900lnm6645p0dzixyflyfxb0id6nzmyygp";};
-hep-paper-64917={run="1bfz5j06jhycv3nsc1fhwq832kp94n9bsx0phpky6f88q4n4c70v";doc="1wcgcaix5qm8p3ikazm26y8x8rzhs0h35a68c8fclvaqa6dy1ji1";source="1xs8bz5k1zznadai7rhpikxfr47bsxc52ysirq3x9130fgifrwh7";};
-hep-reference-64853={run="1bfls4yyyv1niv68xq2hd9c75hzhynn1qrga9ja9wfwrwgxn868l";doc="1l5vg2jn4yf613kgzljzm7l3ycjnkd4ffql10y854n9d65x7adgn";source="0r5n3q0fiv0bqypwcwgzv3w4kx3gnm14769dv2fgjbnwpvka1sm0";};
-hep-text-64906={run="00icpir1j2zzhh994nzm3ag9ac4ld06xcbhm9wg65sgr51c193xx";doc="051qvwskvrj5lrhbyj1fqrmrw2z2ahd11xlks1nvmdgjjcic9x6i";source="1kpzwykcfqi2nzzvj3h6fjj5h9gmxidly1nhwd82frcn4cijdrzk";};
-hep-title-64907={run="1qx6z854wsav49b21hac56d9zkxsqcsxnw63wdgc4ny6rw1a0r44";doc="1xji93q49nh0d5cdp8c2zhq0mb7cf49ppphzaqz4gnfpccjr1a4g";source="05g4kv40m9pm9vy4lbc7n3gihglzqbjw5mrsvsiyz8rqj4hmsqdx";};
+hep-acronym-67632={run="1y2s0fmrm4z5laq55xyhs1h85pjk48y92g0rzl1hmrdhqk6l0ikg";doc="0mbhbyv9bbm0k856nbi6f46fn5a7z2s2ixq435gvka8r713ns5s8";source="1nqv1qvqrxz6fd5lxrfsmxmgkkz005hymxk8s3xdwhla982nx56c";};
+hep-bibliography-67632={run="1qqidgnyi30zgmcfp0jj361l5sga8ds1b9wqhxad3hfzysa8bacx";doc="1x1bgw7sqgnlqzqxx2zbvcxdpl304vbn8wx26rdjf389r0rw3yzy";source="14wng879zmwzmacx2w8m2v1l4ha169xaaalmzmwc0lbj5rxhy44v";};
+hep-float-67632={run="1fv5bga9nf341iij2s8llh6rwvxf85h8hnilhlk0jc5s105whj1i";doc="0y69ymqj9lxwr4v3lxsvz17lms045k2wdvc9dszvlrjg2q3ac81y";source="1xmfqk8q0q0xmwsc4hgmvvajij88vszqimcfw0ddf7bylxchxjjs";};
+hep-font-67632={run="0z92gscinj92pypc6hnvdlyd0n1hdkh1kbnlgliv6cv2swyddmv8";doc="18nn2rxq07xxv14ds95q5rwlqfskd6gl96gya02s4fi2lz6ys55b";source="1fzx346kva3lxk4hx9pkxnj7j7jmx287gylpddb2pdpwkkc8spci";};
+hep-graphic-67641={run="0dwnbl9xm12v3hdpki7nzbq53l29rhy762rxbxvq7hjbjdm5zni0";doc="13f1g76vqqm5c3ivdy41gix2bzmd6z73bqlj9cyij15jzwix9dan";source="0y9d01kwnnlgx0cbr4ifi97la7cz56l30z65spbq2ilm4xlx7yqp";};
+hep-math-67632={run="155by362r43igwgyyq6fqd4j0r3qs12fx3gfrlcdpqlxnjg9j20j";doc="0xhkrd51y4br7qsldynnfhvy38ilngb3l022hpddid9yg5s49k5s";source="1zdrlvia3yyibmbypz519bx764jy62f7sia9qk6pb0wvwxbqmc0c";};
+hep-math-font-67632={run="096y39y8fkqhd7p43kv8fairn6q85bapca1ir8v2mvspr9h2c752";doc="12inm8vwlwnwzr6hngjpixzf6b2ckcy5l4a9dgqgvrh543vwvzjr";source="0p3365139k77y4kmwg09x67n67vyfzzvy43s1jn8yda91xnn02sv";};
+hep-paper-67632={run="1zgyzl3pyb0ygfxgn6pb9wcg75iysxqbpr6awa57aiah0hmynmm9";doc="10fwbgz97cifhx1pr0li91h312ni0g130jg97d2vfpxrn2drq697";source="061dap6lcrbif2rlkk7206aha72h31af4ab6wif5xriz9bj11cjn";};
+hep-reference-67632={run="046vf4p8nn661w3ag3l0z55zv4nw42n2376b1ab2p6sb6sb7l86m";doc="0ahdg40hpb17lask2bswsc0qqh1fdalvjgc64scqb1ppfiq62sif";source="1z80z7sr8ipsc15rns83141m3rw01s0pmc3da8d2vl7ymf4v8wwn";};
+hep-text-67632={run="0kmjlzjq8qwhka31nyyvdgvycyb4nlxrdp1fnwf1kgarr656rpky";doc="1fsjsx0h1wws4z1vbhc4ynaznbf0lwxnw34i98n3cyqx805fg1dg";source="0wa27j0xyi76nagz2yh240yhghd72gq2b4078yvnfs1bkjf00127";};
+hep-title-67632={run="1mihii4ndrrk9wxvwh6kzg1dh55xfgcww26plsnn390yqqfan8fy";doc="0iranpsi295spbqpm8r9zv4gq3gn2231pjksp6qkmkwma9xl4af9";source="0ldf8yjqqxdkpyxxm51q40y5w2zhpwv19s0770nmazzchv7hs23y";};
 hepnames-35722={run="0almnyzzdf0q50r6qi7i6c4pp9aakyzdzj2jxkj1y0h5smi602ii";doc="144wikhsm6mm6f459r4paf0chas0crzvd2rylpynhsmkp9sk3fck";};
 hepparticles-35723={run="076w3wmdywai4pc02k8nk0qyc4vmvn9x6lvidmp4z6as0jir7ydh";doc="027pgn4i7n6b2zk8ikyqj4wlkkw1njq4qcfkmy0bgqz3al08zr0b";};
 hepthesis-46054={run="165n2pwn04vsln5xy6lkg61c1bp65zyqsd37fmmd3xs7yhv7xc2d";doc="1cql3rp42bb5c33sdfip69g9rd06107zg6wmsmzkv8c019xwg4y7";};
 hepunits-54758={run="11szf1jiralk8jdp45bzksgd76bxcf8xgdk707spbyqf6fzafrz9";doc="071xs04zgnw5ir33qzfn0wxxfsk75d9di0ssl394ksmrm14ny3vi";};
 here-16135={run="1l6xh4jl2nipnswdn78378vhr41ikj7qk07j7iaqkyigk5ndl0vx";doc="0i454862gik3jy1g3v21laf8qag2cadvapqz0mn68hl9ymly4b13";};
-hereapplies-65251={run="14mlgpjc7sah73i3wgfkykjn6v6wx4mmg15bdzkbxrx2f1z5lq51";doc="0p9dvzq2jlnwd73bvlwq3y41saxw76l78nwk1mgkpqmawxi44bxd";};
+hereapplies-68638={run="0h43apcwi4mdag2kpv9js9g8a6x83chskli7lxqzr8zqcwj97905";doc="08v044j2h3w5yyzh330q5bfsip55zx9s0ywpn2f0b8x3nd5vgk5w";};
+heria-69058={run="0kqvcx9b3bg661i3mqdjxf8m8wx5cz223ifdniwkclr6h7nwrx9x";doc="0rn3ng7c8jyg438yl8i4l2zl1cwf62izfyis889py9axz4kc4i66";source="0dwcnmnlh5xp6rlhhgc70p8p6saz59chh2k7w0hvnr2p7768hfdq";};
 heros-otf-64695={run="10q1g30vma4fnqyga8279hqy2aq5wq6fv8d8nw22i9mm8ms2wwga";doc="07k4k2rrkj4wx8i018jfccs4gf2pvx8grcmz88lmw52im9ga002q";};
 hershey-mp-64878={run="1mnqsqsc99by1r80b6y4rfb3kzb0r10jsfpfgy7yragr8rr9xzjj";doc="0xh4a41lfds3yrj1am613c4629kvgvd9dfdfzmss9li3j5pa6jwp";};
 heuristica-51362={run="1sxpr7f4s5a1q2r76r7rj43drsmljmd32wxwgwj1x97a5k7x3jxf";doc="1ws9r2hhcqdgcdplhgvwhhl7c834i4rkk0xrsf14c3gwxg0x1ip6";};
@@ -1729,17 +1761,18 @@ hexgame-15878={run="0s68961p0dsaila2a3symqswvgdhh4ah08aphqjfs7licn50yy4d";doc="1
 hf-tikz-34733={run="13232m6hybqv16f6v0bmgiyfqdfj407mn0h4m9wgh9pzwy3g1rmz";doc="070h5rdgfffjs8sb2gaximsqjzby2vcf9ffvpljkd3jzc8rznlbm";source="1df36m347jl9640jig0qrk445s0gxyk6rl74i19xxv567bxh9n69";};
 hfbright-29349={run="0qwwr02q170q29rlq7fw61888k1pm867vgj70ijckivibl0j2snp";doc="19zdznha8bfwqfyrhq18ad7ri8nd240hjs9kslswg70xfrync877";};
 hfoldsty-29349={run="0ar4swzfczqafanfzhwyw7kx765w743r1davbypc7lglcxwjw5y4";doc="0f9gcdi8wqq5g3camccbdzfyjppyqbvvv0z10grazq463lv83jq7";source="1prpbq8833njsmqanxzf25136g46i2yb4bqpvlps52294pjh0l0s";};
-hfutexam-66555={run="1n92sfdkdv5dwp03x4fqrrv2fff98mzcwp5mzd0z93ahjffml52j";doc="1v8qrh4p7ngxr826z69pnayy727qwfc5lqfgvwd4zxl2v1aj72by";};
+hfutexam-68829={run="0v74nqzv0v03rxkfk8iyvj93rnrjj3dmwj6kmbihnvc55qbn20xb";doc="1nq3c4r083hdhgi99n35p691b2djys238dylwva6zw9j80i6vvnz";};
 hfutthesis-64025={run="1wr9qa2zhx1py23q9r7wigiwy2ik4gicaqb30mc6m095flk5ms6i";doc="00fvnydr7bcyf9ij674whpgxizcn2fpwizqdnh0srxm03znw8cfi";};
 hhtensor-54080={run="13mx7mg5jqrlyxnx19n0rs2crpxx2gp6m7l41m6l2ig5vlgc0x1r";doc="0k5fg9ad5avnsg84xwlcbzffrzf6y8l8a2m0dqw3clg7zjmq4prp";source="1pay0c1z6avkb44h0iibfn6xskiglym0fckfqrdv0bablk3cghjn";};
 hideanswer-63852={run="18v4sis4yn8b1zwcvrjadj7qzjya52wljvxhajxsnl4pgslkjcqv";doc="1rr5sy7l21r4ffdcm7bmlcs1al5bn4gsy6p2ig92f921f21gar4y";};
 highlightlatex-58392={run="1pmhvjxp5038nnxd9bnk3s30wgzxvbzq6z8cfmvz0k8h1nzkc1a1";doc="0q4v0dvr50wd0qbk8xvn7bayyq00kj8b8wwyn6axia3mpjmr7a41";};
+highlightx-68756={run="0vrcvnr23qg3ma2wllqyy1xbl3j7ggril4ah27ilwgad1i6nwjci";doc="00a5y0xlcdrw1x2gkrhcr44dyrmc2gnd7gv34r3vig8pfbrgwdwr";};
 hindawi-latex-template-57757={doc="0q35drybrlcfcrhrd5691m66nd17b0m6hkcsqazpb1ck227zih61";};
 hindmadurai-57360={run="1z3590pi02n90hwsjmihxk957hcqgc3kry3cdwpwaci43hxcvp2m";doc="0zws4bzz6fkhxnpsjxj15wwnvbd6rhxqilabzzvm43lv0y21hvlx";};
 histogr-15878={run="11zbm3d05j6nrzwb3hpahli54lf06aly60arh4fi9k52qcbsylv3";doc="046gw7h51w5s8p3rh6kwwi22xxj8bspbh7anf2cdzg4w88dardl4";source="153lhmgh0n224xkg7dmcajj7bydnv21spihh371hj5a461d4h9k7";};
 historische-zeitschrift-42635={run="1zh8jhsmn4klaqn18zxbk3ajxvr99djavz4cww5wjm8lh5sv473g";doc="1gfymz7b2khfnn94qkd3dawb7ppqll9qg7nsx3qac8pqba539pv8";};
 hitec-15878={run="1rzv2baizqa6fj063knxhac39slaaxk5lbgpl6zwk60nbp1lxq3l";doc="1p6vcgy1l1avz05h6r7bqwr7hl3jrnyryl3vn1i0qad25jryf7qn";};
-hitex-65130={run="1xbnl9giab0yf4xgrf3sxidjv5c4d0zqqrcnnnd0r8rw5wr03fd5";doc="1x6vzzl52vf8cdyqxh68qafv60kahnp0fpzak4as5agaln3bymzy";};
+hitex-66924={run="0agmnskf8hjvkjbkj5m05q30v020m5vaj5nqwj8cpnxzjhq1hf7v";doc="1d1mnnq733c8ihhb490inch97r71vwrvsj8n61dqmalj89yn2n84";};
 hithesis-64005={run="0j0fsblj5k3jpxqgjxh7abynjqiz09hgvywrvqi0b4vv2fm8ccpa";doc="0rf5bffmz4158yqa05l4vi08nf1cl115y0ff9rkvdzjn249n3mgv";source="0mix1q6wf5723c54dsc7xx7kcwi0qz1kvmzs9yfx39295cvg9hzh";};
 hitreport-58357={run="01xxw91175ffcix6s7ji2600j966dbm6zl8fbnfwabb1rvn39nq5";doc="1wpscl97hpc3s1s34bskz088ph3x83qq7m6qgjj0xa2hbm2g77ci";source="1hxcw8n5aa4jfpd8r8f3442diww9zhnywd6kbbqjs7928bb51vk4";};
 hitszbeamer-54381={run="0nw7ch41rjp0wz0k508x2kkg4yqfpy6yfcl7n3rb88ps8fiqd786";doc="15kkzvgn1n09i7nnfd9mll1l6xqwrbpc252k54gi791nc30acaip";source="1ysr0z079l5k61v5r77hy2r150did3a1a29k1xppxrjr5ry3f4nk";};
@@ -1747,44 +1780,46 @@ hitszthesis-61073={run="0dr4ifga9v5w7kdx2iban28ajvw24b9ayzs9rqa3hkkir460hhhf";do
 hletter-30002={run="02v906vgbidc2s1mgz1k3666riwb27vsl7dp24rd8q2m167xjd29";doc="1x8q4jkrbw6ddkqqlaz6mxj4q105vjs8k8ifphvkvhawl9iikki3";};
 hlist-44983={run="0ac4n38nnimrs14k1s2yizbqvqky905qcv0kgs0aq043kkmpi0v4";doc="1fnqm6kxr79y6bpymafr2s3m8sx5mviys06hcs8sfn2gzagg88bl";};
 hmtrump-54512={run="13pq5h9pwnp8hynsc35ib8wzblh3y4gx2lmrrvd0big80wwsdhsm";doc="1bzgqgrjlpskqydqdj26lsn55pkznmbbiq0w4ybr9r0djdmqbn1a";};
-hobby-44474={run="02p8xxqxkq486dxz2fy3vghm9qnc13pznz84w3grn1b1cys1sbmv";doc="08q2nn1av4wcqnlacjjh6bgbx57qrc9vigb695x5zrrydcqdac0g";source="1pbzsba0z0i3zf9np60fjx0wvpvimslal8xq15pf5p9lrjq946r5";};
+hobby-68137={run="0ndhwgldn1na83jzdk1ab03asbbp090a2czyxipm5s82zmfa7bm7";doc="1yz23fn3zdixc5xxprl0jrly8pqm1n0dzrv4032802l4bysxj7sy";source="1nmgzxkxsq78q35zf2xpzwp3lw7s3i2gya18y4xkdq78673s11pg";};
 hobete-27036={run="0825ng1xcpdmjihiffzjrvcvx2fqdz9mryq2bwffas22kf0zlx46";doc="0il6kl26r8wmm6jzii7gmr61af84bl9dn4szlnw34dgsdg0an5hh";};
 hobsub-52810={run="11j0fxsxmyd93px9j5fdarz1231nczdkfpf1qf33kcdpyb44jrs3";doc="0hdidvz42acsgy021c1dzlvshcmw6fz3pkqrwpk66qk2nnh30dal";};
 hologo-61719={run="1jhzw2bxl0nvspr0blkglm6zbmrab13fs601h54gnrhcw10mxqwi";doc="1af7406hbdvb2fb735i6y7wi4bhnq7x7sijf63zl0klpf9pii8l3";source="04d83z1pw6scg4cd1616ix291zi9dz5nnvw9xc8hd4lfxf15nx1c";};
+homework-68773={run="0h590xk9dd1vc8a5bffwy10lfidz1gb20zrrahqv4c3w3fy6qp79";doc="0q218128c6f9fnbrjinxcxql0gvlgycnr687k0nfrid96mwqm9f6";};
 hook-pre-commit-pkg-41378={doc="0mikg4p9wxb28vgwh1acgdhwa2fqnc8rw3jg355d6s137m40awc6";};
 hopatch-65491={run="0r294p098z0qykrh9r4yxmc0w72mz1nmxqbv418pmbn15wgj031v";doc="0qxa6maigbzx7hc3nss3wmvcpyc9wvhq0pbzni7j0hqyzzsz3vv9";source="1kbk80432fpq30zgix8waxq87kjd2bpcv72idaly8yjbj4pa1l1x";};
 horoscop-56021={run="02kazmk5sa40x0a4zb30gk9lkky0ak825gczbr5z8wchwpy4i1ac";doc="0w9sgk2j1fzkcfzn76zpygrlyi9fnimp92mygsq2z6rpblzd1qyv";source="0c6zkcb2057y9x7mz4q3nwin8h8ax71yaam21m91gk6ad9k8l4ij";};
 hpsdiss-15878={run="1l7mbnhds4c6y1w5vylsx8j7b4syl2j785l3xzvk89nc5g6ck2qh";doc="1cxdd1340b1gkn915id7xcdac2zp79r1yi5g3wjwmj4kbn7z6sbp";source="1dar4y0ajqz93znww0fkf36li50b82hbxixi30hi8fm8y2hc3j2j";};
-href-ul-64880={run="1x39y3x1x12w4c1ikq7cy4d7m1gbkbswrn42wpqjv3ylvn1vg8a1";doc="1xc476rl7ym0j6xxfmdm10jw09i7c5zcq8gqcfrvp58sgi3sy62y";source="1mj85ci63gb0mzy9a58j0320nja6ikvkz3jzwilfzxaszz4h1kq0";};
-hrefhide-66196={run="1lbfx61xyvnm1r24h6vrp3pnmci4j5abxlaanhni19j8gvqkri3c";doc="1sf697hjryz1l82ag8h2kpxgmwa4fzmwb6ki1wsnl0y1qkl9m1k0";source="0p4vqr3cjnbdsrkv049jdd6yr54xz40lvgdyx6z2wf79k5fj4z1q";};
+href-ul-69359={run="1gf2kcqh60ilzkd2i1fc782db4nxqgrizz6h2p0i2lvc4qplj95i";doc="092gjbvcda2xacj0a3b8y6zlizkkyzqcbr6qfhdsqyds1sdrzpjj";source="06paqsz9is5ksj8lnny4d4g7z3wkfgv8lnyl3nzckj8ap0f80g34";};
+hrefhide-66189={run="1lbfx61xyvnm1r24h6vrp3pnmci4j5abxlaanhni19j8gvqkri3c";doc="1sf697hjryz1l82ag8h2kpxgmwa4fzmwb6ki1wsnl0y1qkl9m1k0";source="0p4vqr3cjnbdsrkv049jdd6yr54xz40lvgdyx6z2wf79k5fj4z1q";};
 hrlatex-18020={run="0klc0pb2b2dcixaqhgxinhy18rp0lwck7129zi5qnpygzfslpdws";doc="1dlxj4rv9gaxd6i4ns4zmhykhxwsacw6m3m2jmk2lkc3sw68hsyh";source="14cw35brx8mqv05zbgrvfmmjhxyryx7dmj8dk0fkimqbyvhvv9sj";};
-hu-berlin-bundle-57580={run="0fyzil2b9qsi0qrahdias38w2k7flai2p1r8afqimsg16vix5ndj";doc="0j6icx6ffy5lxy11myb1addsd0yz8y1n6fxzgyynqd6zd86w5pc9";source="17x425hywz0gkzpg04v3cghq47ps89ckg4ywim98z4hy3pqvlacx";};
-huawei-65264={run="1zw5z5nwc071cv9s419hw9fwiy0f9j7g3x6f4jrkya0dc1qwrz7q";doc="1mzkdgj8js508b713j1lr3i8m5lclwha5h6al106abin7j45470q";source="1py9k0pa2987xm7bk4i0slkycn51v35xw63w7vvlff6h50ljy0d5";};
+hu-berlin-bundle-67128={run="109hjfg6p3g54pz7n6i64ggqjmvjqzmjp6ipddji0mnhkhjfww6b";doc="1j2vjhk6rnsj86a59cd081vfcqnb93lz6szis05cs53k8pa7yh52";source="05x8cwvh5xkjjw069lpw7pbsnb5swvf9k2c6l2s1v0w1wrpwg7b9";};
+huawei-68336={run="1byjwc6yjfv8ynmbdjbljgm4592aaz0dscb4plwy5qaxiiffsjxl";doc="03hicqi8j2mzc6x1ay0blwjl1aj7n5j590nf0qc900zad7r8jlm9";source="1sfm0vbsrm7a8xa4jn3ncnmyn6wipc4pr34gk9x71hxyj0hq3qm8";};
 huaz-64723={run="1vjfx3c2hdv2jzqz09v3ki59dlmgnw0ff6m394nq6gx0qqk7xl6m";doc="05xsh7jvy9y5v9vl25br8ixxbyfd754p0hihflrymkv97f1b0nlf";};
+huffman-67071={run="17pgzpbhah5m0gljhkqymv5lxpl5bxxgif9m7rnad20x4nmyzz68";doc="1r6a1i3j8s4843gdvii740dl5rbilgahcrs2xw1zcqpq8z4xbfnp";};
 hulipsum-56848={run="1wfcsaff7rja3n0151ddzbfl9b3gkfkwq0vp35zcrd80xsqlw935";doc="0994kin6fvbk4j9rp53vjp6ci050zxsf6z3qi7zdfxifd269fhx5";source="1a5mkkl36dk60baffj3an2sa382p39j2sdrgadczj5r9pm9q0am2";};
 hustthesis-42547={run="0c5akc97v3fh3skxpgmffywca8kyswmaypkyxdzwrqb1k2z4xknp";doc="1llsyhbgdz9k6swry84q539yjsvcxj6hgirqcw4vbvsdxxxsbyn1";source="0nqs1ifkhhzspdwg5nbqgpd2309aw9r65cav51vxpn2abss1q6a1";};
 hvarabic-59423={run="1cagm9zxkhrck5svckh7i0c3zx48vy0h6f2nhishm40g9q9r5qay";doc="06g6wmxqgfj9zz2ph7gwgndgkm2kzpd4ci7pkwl5qm41ik96l7a3";};
-hvextern-65670={run="0s3lg0vy2d7jwikhzqd5va1b0jy9xpiyxnrvsgyqgnl8ji14bx4q";doc="18vnzswi04c41pxrp6zz5qs7qz7i00pcyx33ka1dqy011v78fa5j";};
-hvfloat-65671={run="05sgac27qnrp9g22xnmcn9j8d50f515b887ym1kv59syyd8hrwmi";doc="0dpjydbissndmh93lk956irjlyygmbw0lv4db12bydgi0njq9dzm";};
+hvextern-69064={run="0f7c63yr0fn1zf5a5kidxz07gyd1nphms1cdsmxkf490f7xh6xxd";doc="1ynd6m5zw9fgh4r3f49p2cp0d5409qmavyd5c9ykzagzbc39f0r2";};
+hvfloat-68586={run="16h12i3s0n4cjlh9pcfy1s4q03ln010dyma8myqpjqwaqb6wlcmk";doc="0cmlhq6pab92qg2bslk4q4hkb1sczyqxknplm687zp527fzklasj";};
 hvindex-46051={run="1wk4q29iyqrk83kafwhah5gvvj2ywpnqzvnza6cwrkb85fd1q2i8";doc="0vcdmn3xc4cm3rkdkzi0qvqakgkc3hrgy8nycr5c8vcb6xaiw0gr";};
-hvlogos-63261={run="07c3ia9z2xbgaks5czp7bha3v3614y5dvncv74m013vbgzi5sl4m";doc="0wpl5y84rwjclj889kcl4hk063sisyc0qzn9v45mvf99pnhwqsk9";};
+hvlogos-68568={run="1skfin78zfp4wlggm0b1bn1vjmf94nia0spg5kg4y781b85lyjw6";doc="02lwid7nznnll5mfpykxi2w6gwn5rmsg2ycm88p2hrbjihz34fbz";};
 hvpygmentex-62405={run="1rnra0v65wmz8yqwfa6zqqswx0m7j54z6wpzvbrp2d5gx8azsdv8";doc="16r1sqsaw8ij5jxf0ygm2kgdhxpzsq5g61jhj9rq0zhpjma7fhdx";};
-hvqrurl-59256={run="11qriiimmh8wmcjdjh98bi1sghpavl3lnbq13m4d6rgc46q0n3k4";doc="0zamvdxp0i25165k0i4v6172plfhzs4a5ydgcbz3662qliggsn51";};
+hvqrurl-68693={run="1lxpmj84cmfrxw456cm9dfcw1zxb5p915h3jp1x3h7w3a2dnnyfm";doc="0gfsjs5q90cip5z0dz4qz0lb2d3kvm5jja6drknh3lddslak1lqm";};
 hwemoji-65001={run="1vkflwxx8c0ckx7kz9mkh2qkpyxjjx9zmp940p9w93x4c09bs6l2";doc="0i18fcfbvyv4k578bn00w7ngk5lxp29n1j1i52vjwc4cp25lfgys";};
 hycolor-53584={run="1dfd149g2k8cq3lw95z6r4knyq1mgirdqnk9c4lmd7ip4rcs0vi5";doc="1pc12vbn1yak6l6c1fgpnj0s88fg94nagj4b95mvclad6b546g71";source="1f5jv91vsib5vk4byr0481a8j5pvbwmhfqz2qd14ck2vw8laz4ap";};
 hypdestopt-56253={run="1753c7vjx3smnhl1iylg4x0sdcqfg6gb0wdbwqmlass4qdn494w1";doc="07a2dpvvyj2r2691v8izjnqjksna1nm00za4sva1npcrhkc2qq1q";};
-hypdoc-65678={run="1cdvlsv1acnjsr6kwqg58r13nynx7bpa00m3dhv521k10cms4ph5";doc="1h0j48i7mfdb4cb5cd667h2v0xnf85vhk0pmrrj1xxflv4qlycs3";source="0ilkc5bhvai33f0n4yhbzg48n0l7f3x9icnw798lyqba4xlvy523";};
+hypdoc-68661={run="0xbsmzlj9hf5y349r4mvvnzc4k183fzr8lp1f07r1dc0nbff1qvq";doc="03bcsfydm4yzm1g9ijz1r2r0f5llc0i3pf318aa5rfy6j896nvvw";source="10yvzay1g3nk2kpv2l41vd2dqxqh5x03dd23xcpd4lk09rbddcpx";};
 hypdvips-53197={run="0ax6n7ki47jyzp5g8781c7rv54hwrl0fg7d1bwzbj9bmqi39df4v";doc="15vnypyl6g50d4mycz3s41h8ccpmknr0vh9bwacr6nxbzlyyykrk";};
 hyper-17357={run="12737gd2nmnalkgl4d2sh45r4d621zl6g2zcih98m7dw8qr38w2v";doc="0hzl3fzgmn6kyl6p4d98l9ycisfhb9v50a1m6n8q1k6jpvr10z9f";source="09m0kdcs4kqksqwxf29yq4l52kb2mj5pxkry010ibwqw64cs5p74";};
 hyperbar-48147={run="1bj0v54k85isn3p48vmiygcvd3n06r4mqcp75hf96mmp0wvmczg5";doc="0fmrz4hlzd8clxx150fk4zbkdgbnhg3b7ck10225b0n1lqgnlh0h";source="19x81f6bki5mnx1nblrl0ji663q0pzkacy5lbjsqyr7krdc33fyh";};
 hypernat-17358={run="09lnsw7ycwkk71fyjk8zwgzdjv8ff3k028q7hr27dqsiyg4hjg7a";doc="150ayv12ym9h68a09h1xakdfzccpix1pff9blkzjq6iz5imzzpr1";};
-hyperref-65758={run="0n80yzmhap07qjf1rva9jl1fr2qfx7qjkdn92l502nd9xw3yxf2b";doc="0w368frafzhbkq7w3vv448qqjyy8487vi5gi79dbsc744czjn0rm";source="0igpr3ipkvws7nyw88wga30rjvix4462fzqakhqbj91hz1ml0gb1";};
-hyperxmp-65979={run="1c8y6ngajicjiymlxal675dmq6sp650cz33kk18yvnmc5yl48b0m";doc="1if1jjbkyk8dq6y8ssq9pa2ccxm055bd3b6hbnbcigbzlx9x1zgh";source="09wyhpqrx95dabgadr9hk1j41w0a4nmqr07a7nxkjzkq35yk9fzx";};
+hyperref-68972={run="0jmgr56a42db36625s7yxv9n46qjmrhcs3s9p91l86xm6g32nzlq";doc="1s6ykvsm30z8nds9w3vnj7k7h2gb4fajkchkigaliyv5p0bx5q58";source="0gfdzfyclccssg4yc2mj1brwk7lm70jcsklcxzmxyarchsnrx7jl";};
+hyperxmp-68251={run="1bgizrwr5wpr8qprjwyf9z3f8jw0m1sq8qzw886j6lwxlfg6fp9k";doc="0srwvld1grn4smw2pnr0fp2082vvz3x2bj4lycvx036991mmnr6h";source="10ll53lhsqz20cp80mvwy1z9qna1sswappy2ifz71m6v304a1q9v";};
 hyph-utf8-61719={run="14jj24fr6v74vj8wi2a9k9zk9vnrvmy1ni4zn24dl5fdfw75n5ik";doc="11n1blnx9i7q2dlhyhf1dxs2vnldc9r8f3k6diix0i1np8hpz05q";source="1cff5ijmpxc752n6cmpfzn1a10ihrkz7n9l55gz2k2q0a00m2ssh";};
 hyphen-afrikaans-58609={run="1kn57mzrbk0qhz69b1ysdqjv8xirsb40yz61jx146kqc4p1y96lf";};
 hyphen-ancientgreek-58652={run="0lhy1zrg27748mrx8yz5qxpxl3nl460l5l6impiz3lbrgnld487n";};
 hyphen-armenian-58652={run="02x9p12zc78w1x7k2kz019as42d5kn6gxfl4s72rd6dyrqii7bc1";source="0z666y580w1kpxssdanz67ykq257lf11a1mnp1jrn08zijvfrw9c";};
-hyphen-base-66418={run="0d8kj53h1vhvv4pxks1n214m4l3z09qsqxa0929c766s2wldx64x";};
+hyphen-base-68321={run="1xganah7l607qg0hyridxx08sfjc8qakykbc0c97pad677mr4zw5";};
 hyphen-basque-58652={run="1dy9fgbh4i3d9ar8wazwjvhhwzyhbys68icz3zjvk7gk9nvbm9aj";source="1yhsbzf1g9dm70jfixsz51hsfvn26cwfkfxvhg7xv2piynr4v51l";};
 hyphen-belarusian-58652={run="1n5md9kf7iiwqm236bkdsl4fb4vd6a03b6q1arvfa4l4yh8jvr13";};
 hyphen-bulgarian-58685={run="19h61n6ip8ja8kn8p1fb79lfv15pfzdhhzih0hg15cp1891nzlql";};
@@ -1843,11 +1878,11 @@ hyphen-welsh-58652={run="1klj6ir4b918cx96jd772ps9fl2fljh8kwkakdwaqqi8szzr65d5";}
 hyphenat-15878={run="0ckfvjxdv4rb8156x2vmwl15mk9057i2lyg9xhqkmvqh1ani4lc4";doc="1lzpdz05dw5m8ljxf5f846m1x4nv5yrqbg3sixf7dgyhsmpfxnls";source="1ddwv26nfl4jwz8vxs4fwc9qw8gds1sg275g2bg9ci8dfflk16k7";};
 hyphenex-57387={run="08f915yqpx6qhc2dzbicbv9cijzpgcl4jpifydqcc0x68y51qrzi";source="0lqn354bskaa6g0bn9g1r3lbb1hj9si5n1ki38awayzp1yj8a3q0";};
 hyplain-15878={run="1kpaxdya6m7x4dmrxqzrs6k6agxsg8lcg5yqqdlips887lf609cl";doc="1q5dh42gpv4n9ps0yqyhcscjn47qz4zf35jlg56xgq2w5229k742";};
-ibarra-64567={run="1lfvjzknglqwapzvc15kgrjqszjm22f4nh7gssr7pj3p39j8ag0h";doc="1xy94i61xghgyjxgj0hm4flwifgfyrywbclf2rmcydh09a0ih7i9";};
-ibrackets-65383={run="18c4zyygzs0ghfhk41cw2bdd46ykhqrpf5wjp8lykyhccvg07gjp";doc="0dcsgc7y4zbp19qbivjjv6il8wfzg7cq23gl4wi0xffk7a46dwvm";source="1insjy2s7dzz95jcvfs6hj6hhqwkgxqby2p8npym810cr9d2y8gw";};
+ibarra-66892={run="1ichmsdkjs71f5yx5cphh08dk07gmr7mg7n0v2p4sg4fh3dbxjv9";doc="168k2sx4shkx8h4l5jp3i940sp2bd9f4if2pjk6ilmc832dbh25v";};
+ibrackets-67736={run="1cd32hk5wl2xzahk9xsrnmv8l5r05hqi9gz64d6k0lzard4p494c";doc="06ifqb5k7z08mzd8kkrkj3r37yfwgy5fw4zygd0an5470pk13zam";source="1axxyjfhkany1k2c6rzsyqilrq15809fd73r9hv0qmpbgca7m3m3";};
 ibycus-babel-15878={run="0az75laq5fxnvn12348c3985148isz4n7nv6hd0d8amanm80h779";doc="1256n1qa6zpq509rk02llcixw3qh3sgi9f649pv1hjk6xdy7nxfl";source="08x3knpkwifgi2zxv78bnfn10ix7l6rf5nhfqi6w5xck09l7fiaj";};
 ibygrk-15878={run="0krpzjn96r70z8rwsq52j0v1x7ppd766ngvf6xhny2kd7mshl9ka";doc="0prn5b6cjc9ljxdnd1ckfgzqwlc5vv4w435zvyz75r3f1dvbhh9m";};
-icite-54512={run="1aszs6kbmwx7k322a2yzk4l8d2gdb84aq7f9sk4bpiljgi9gpclr";doc="0bc1r733c6g8y8r2kam7in3p3cb9y8frph85s26kcgdxqw7j069i";source="0l3gx6sm1inyzyb6z2rb1zrhrnyg0i3xim0dn80360fkxxsz7739";};
+icite-67201={run="1aszs6kbmwx7k322a2yzk4l8d2gdb84aq7f9sk4bpiljgi9gpclr";doc="0bc1r733c6g8y8r2kam7in3p3cb9y8frph85s26kcgdxqw7j069i";source="0l3gx6sm1inyzyb6z2rb1zrhrnyg0i3xim0dn80360fkxxsz7739";};
 icsv-15878={run="0gv7wrghqivfm8yb3nkm6r8jnvx7klbhr1nbp27cjaliz70aapa4";doc="0dlsqkdmx4nhgs15hhn0nw6vk6h3q3hhhwdymy8nnxraph2mvyl4";source="1fh1znhlacpci7v23aj9zdczhc87sg3l0s1gsvrbgznpadgbzbim";};
 identkey-61719={run="1vs6sr25ybmrfkg5v3m021hlhw9x3gpynh89q12a5pl2ka094hn1";doc="0r33gzfwrj4j8a2i8kdddbhgljf3hz1b7cjfxgmv5gdqmmjywnx2";};
 idxcmds-54554={run="179mvb95a1cxkn7ncgs7xwhh04d36s9nb5jjxvaszcfkp9rnlkcg";doc="1ym6yi4cpw9flz4si6blg5bfj85sf0p3y6nipc886ixkwiyvsgm7";};
@@ -1857,7 +1892,7 @@ ieeepes-17359={run="0nipchw9hdlc7am3n052bszilwj192pfcnc9p5alqnffrd8c4rdj";doc="0
 ieeetran-59672={run="09j24j6kpgjx58yghh902bdpkns025v9av6ym2xwslmv1ya31pka";doc="0y3bw20f1sa7dacqwrwc43masap5sz23vna8bbkf4p74rdgl3bkn";};
 ieejtran-65641={run="07y254kl5wanv7d2jyzhwlf5z6n542217f5n7gdyrm4jryzhb0ly";doc="1l5cyqlsamkn3yjdia1zbv7lianq8jcjl83pkywimxnybw0kvdbl";};
 ietfbibs-41332={doc="18ypa96z1gclq4amka28sv26pm7lycak68zf4b3sf1bx4ldnzmxq";};
-iexec-64908={run="017rhxcbxfvflwnagz3hgbi8h4agzib8czc6w6j3333fn0sd4i7r";doc="0v74w4j2h64aaph7wl92bp377y2y6krliidjaibk3agfm2vz90yf";source="0nkacrias248yf1xy7nlnqzr80n250rhg5kzjc0w5gwii25dn8mh";};
+iexec-69230={run="0fy58y8g2l6p1xziajsf5g1pvs8nplj5ml5jwakl7czjvmxylsaa";doc="07r3jc1wsfkbl0himc4ihzshj3n3hlmyb3js1885n279n6hn63vq";source="1afja904bpr4a753khpd4vhafw5gyspmzl9rj79q31pnqjhnacqg";};
 ifallfalse-60027={run="0pn37mzlkpswyykciwgfkw981098gccqmp7wllffr39qxhcj6gdl";doc="1583p9f3lv7kkjygqv368ag70jq2b184j47v32aqpgnwlmyn55jr";source="11636chvmy2icfq6f7mvdq0fpcn36yl15g9ffpp0flqdq7c8nd14";};
 iffont-38823={run="1a4zx0mysk6i7awvcjv2y1yid1k160icrkqkvw34qsgs35qnqbbq";doc="1iqchl5nra5ldmv5ddpwjcm84whpsxym34vphj2zxvzl0hqwrc2n";source="1x187pafzgg7h2vvy5dfc44y37q45lkzqfkxh8b52pysxxl23014";};
 ifmslide-20727={run="1n4dmmslpsx9fv9wqiipcg04lasym2fbgsqkvvffqmx5rszgdpha";doc="0n7hsymjs1zfjc5gbn26z2wdl5qicc7pd251s0h4qnfigq3nhr08";};
@@ -1865,7 +1900,7 @@ ifmtarg-47544={run="0wxhdmd2h7rs3fck9yq1g48kyd33m7xzz3g7ixg046azai8f90m0";doc="0
 ifnextok-23379={run="0sf9dmz303pbxfi24z6fb1wxia89qaf4svgp4sbpi1yl3gkxwrmj";doc="11r5zrs467h3rv5j8c7b5iav19v9hbcxbspgfdbd061g871xxd5y";source="047pc422qhh9d80rjgmjgmn5xsapf9azvqrl0cjn28qw4m5ccs12";};
 ifoddpage-64967={run="14gi24l4m9zmyhckjq3j1svr9858rm2idr1wwjwmp561wp7vr6yz";doc="0gv1j0swzc4imahk9s96nga1l42qzc0xkznas0jzkbi27s2lik4x";source="0wz7iaxf26qz1v8sc0kbrz1wy0kzd4zbd0qiscdhmhmw2xr077zf";};
 ifplatform-45533={run="0abhpfw3w1mvpg52xaw3cngl55sszk5ji9a38yab8vhknh3d3jby";doc="1b41nzn666askfc1kkm1lwf05ggf2ml8gz3rrki4yw6ch52sl2sc";source="0g0qvbvv4j87rxps9yypair00z6il5hfjczkrmf4fkycw714sdqa";};
-ifptex-62982={run="09bkq9az6axiykrwqrdwq1w6rymdxfh01zizfmj0mw3rbn05lyi3";doc="1sls7c94p579r2y7v4ap2165f1fypyh2kf1rh2qlqz9hb0d9l2hv";};
+ifptex-66803={run="0yw0dphc2pdx2jrm5khzrnp6rg3fbcfc8z6ppwmyid8iqxszpdg3";doc="1mbdhxl2fgbwjbsk8jqk3709bv8k3whqagls1vqm5386lbcycvkv";};
 ifsym-24868={run="1bs3974l1jdv0b2wwa94861hnb05kb69bsyhvsgh6k9xgmgwfrla";doc="11k9jfqrfmshwpmni6bm0324zj7c939k6shvi2l69k4w0kx6phlb";};
 iftex-61910={run="0dzpfyc2ld4kbdwj457fzmf733792gz1z7n7hpbn6z7npnkg6i8s";doc="07wvwfxwv641lmk0p1gplv7rsvab87v9fgzamizqvihf2ys506q2";};
 ifthenx-25819={run="0bp087nfq5hb3a60ayprbz621nmk0acisizkw5i25n4kryi6vc63";doc="1hzz8s2xlz2pij81cfgjad8yaamv8l4iaripj7bbifkq7gy38afj";};
@@ -1888,8 +1923,9 @@ imtekda-17667={run="1hhxwaykslzmf70lvmrmpnn2kq3xa114lyvazgfg9sccc990gnlf";doc="0
 incgraph-60810={run="04kzj381v6lj9a2hjgkrsjvs4h5hw6mn80cfmcp6y8d753ibaail";doc="0vi27zvbw8pwh9krr8zwh90m1fsx6wqsqkch8c9ggjy03518b5zs";};
 includernw-47557={run="1w51v1v8x7wzibcy40ss7ldra83wbil8w1p978yvs5kzbky3vw2f";doc="1zl5fsgzb7nm1wi6ddc3cngqj3apmjwn1wkmsz785nss56vk9f7w";};
 inconsolata-54512={run="1mbf4m3ll3r4nhxnmd3ridq7kdqlcjcm3g2q2s6qxgn4b6j9ikvn";doc="1rh7kisvs33v91r19lnqgma705dc3gari0g153ws8bd1px3ivsdm";};
+inconsolata-nerd-font-69061={run="1778fg0vpaf7ccqs38x9k8d4fsnawqvqpchcjb5bqjzg8mk0mvs0";doc="0ydzsljbbajpi08dy4lyqld82sqpyv17vh1pp1nwp6hrn6cml3q7";source="1jndmhsr8y15b630wi7qshn1kjq9q2nfkvrn9gk0awqzjwl56m6d";};
 index-24099={run="0lx5jl7nckbn0brsijlq78mm0gjshf8m1dqjhgl0l59qi56x5f4x";doc="117h2g30zbw5g6x3xlmpgq0k4fqixh0l8ah7350q1sxvddxfcc24";source="06acw1yb5z4f887p44l9afk78kpnjv9djmbwj55bac23ml2k3ddr";};
-indextools-38931={run="155l4azvgwbk4h70x6bkbddq8k4jxhh485xa7jajz9vq11lkvhs0";doc="11n3knyzdamz9nz00i2rck6gffqrzwcycah0ds2a2wmcm7wl6yvk";source="08qifym1c39rk935hdsm7kqxdy3gaphq34bm3w6klr92cz6w0n1p";};
+indextools-68555={run="1f1r8k0psa7g9pk6kkgvyi9dnywsc4n34svfq2pj8b1gmp9918kr";doc="1xrlfkg43x4g66ip24spnq7vr915z0q7zdkqmi8g5zls8y81jg1c";source="056vrs54jnjnn3c2kvxfhhxf5ms8cpb004bhd8f9whb6c1hdjqpy";};
 infwarerr-53023={run="19nlrbfmqbkjrrx9x75s9nd6crg1lzimb2fr3hfblaivj6lx8p4r";doc="0p1s0v6p7ygkvz5f3vgarcrl85clfrj3ivzrka62djqyzn4bb3yb";source="1x2mkqyx7gz0bz31na6mcdyrlj11mxpjlzc6gb9pk51sdqjj0bbv";};
 initials-54080={run="13d5pvc2q6xc0i8nbjpifn5xyn7wzln7gng98nnpjxhk5y67bcz9";doc="0676gq5dx4pqs6c0z7i48gi53mlapplmms8s66qwpdq1aksswdcq";};
 inkpaper-54080={run="10989ja1vy9ca451gc0v0mrkqi25dwv4fdvw9y4k6z26g7902hap";doc="1dmvkq44kyxd5y4l2kc9wvgrhgk4kkfw0qfqzi2faf9xd6jssrhk";};
@@ -1897,16 +1933,16 @@ inline-images-61719={run="1nq64ymrmfiw19bcbb25gmll36xbv58ynzvv140089pw7xn5x7bm";
 inlinebib-22018={run="0v37ifnjpvsrcbrjd57yk3qqq195jqvr1cgvfz2fsrjrd2ima822";doc="0w4j64dxh11fysqpkldksv2qg816shz0dj16jqgbksxkjsig1i16";};
 inlinedef-15878={run="0k6190v8lv2l96qpmh3pkblhwn6camcq83w75rz09517bnysm4yz";doc="0gz9m7fwcdxs6q5a33v7n32x5jr4hbxsy4j2shwv39j1j2amr1vl";source="007648wrb4ar04g0851yw663cvlmdyifidp854y87yzh536hfwi1";};
 inlinelabel-63853={run="05qv0j8gvdqsdc0bg51n7mskbx88gv2yny1zffr409x8pvccnhlj";doc="09jnbnyc5sy1grvyjxnlrr3pg91ispqd18mfdk9zj8m6lwy4gh1l";};
-innerscript-57672={run="0ig7y528vl2r4dc4xqx16qbl28hy1vfhyk1b0f0ifnrg41hqs61v";doc="01y491bx14p1b4pylx4v6ilszj3v88j404fxg3wh2pfi1m5cn6sd";source="1wsj16c896rba9xjm9f0kfbj6hafkb8l0p41412vdzbhqv6zby6y";};
+innerscript-68776={run="074xa8nfa50sdz3hqvvlrmambjnfg9yai73xx9bmzc7mrxsdkxc3";doc="11nli4g0q319k4whryc4g9mzqjsqz43ryx796kvhb3kw8v7z0rcc";source="1zam1pw4jjx2kcps4rdvi0rdrwz37xb29wjcbm5ir4z0lx4qq4fa";};
 inputenx-52986={run="0jjf29lj8ha99r2x0vz85swkr2aq6v2jwis27irsi79syfq8bpbc";doc="1kkblvi4dhfxsij5lmbdvmnapskvd5yahha5im2nlllh8crypwv5";source="1681djxj8c43i93ip864bi1p1fpn2dngkvh18zs0234ls0gkwiy1";};
 inputnormalization-59850={run="017dxyy2lykvcsigpq5vfklb2gqg1aprk0xk21sxa8bdsn3hd2gg";doc="13yvyh5g4a1k6bcqwgmgspp8gkgzvgcx5f0wy5ajp577cxsk5ir5";source="0wz9hw5qs3i3iah63fqhkdcijhv30k828a2a19268am4803m1pxh";};
 inputtrc-28019={run="1qy90zwai5ciajsiph6sgmzmfi16qgvx389hvxsfi28wccpm5bh3";doc="0fcxac4jsvhnc85p9nwpp44ij0yq4q1lxlw42dzhg88fdkl57srg";source="0b6kl9a6ilv0i5xnlcfjgia40ynl28dbz1rvcvak3637fva07ghk";};
 inriafonts-54512={run="0kbf9rvrml10qk5pckz21ag217wimqhdxjfk35ll0a17hc9yzj68";doc="1hbhfhmnjya1cmj1wzhvbny7maw9m2dr7sv74g2ka6gnl1n4rx1x";};
 insbox-34299={run="0ylnp3l21zx4y1bwrr33v8d79vlgz5frna9dkg62gz1bhjbw7f7i";doc="07iw7py0p0jfq5np89dx9fdvia3yk5mi0py77xrgb8v4gx7k5g3k";};
-install-latex-guide-zh-cn-65434={doc="1mb6d92c7llz5cpkir4d1wf0l2yvmskl0kxgch9r5zjmb67qflin";};
+install-latex-guide-zh-cn-69264={doc="0hs9pqhbf5pkdk3a29xnicj7i8zxgf3vazf2mmm4z6fc4b0kfpjk";};
 installfont-31205={run="0lszqj128c3f4wbcrvzzlvj25jl5rm0n5qfj8rsn65ycxvymbf91";doc="15x8jzcd7bwvbjid0hr56h7dw39n2rg6wbfz4b02y7shp1pn7hgp";};
 intcalc-53168={run="0llrnayqwdqxi91yh7panbbiljina3bynv2hxhi6sssaw3pyd92l";doc="1vav25plm639410p59bi7bsihsyys9yaddz0bcawxn72zi9b96r4";source="059pqs3f821javya7brxvl9v2mifdyw1vg18hr1zgzhj7bmlxh14";};
-inter-58892={run="0f7i2c9hrlynmdmk5acaiyzqxhsf477124k92nlikpibpcssxy49";doc="1i5bxinfvjcgj2ggkg9him5dqsdn9c28f6cynp4g9fsgp5fdw600";};
+inter-68966={run="0f7s4mfj1phliv0dddkhsf4gpzi6xmyxhwv26bsvgvs8saf7qsha";doc="1i12ppl2fmjv4nxvslqqrn4ygrvmf9aa1lf5wlsrwn238343nkps";};
 interactiveworkbook-15878={run="0dibc16gdam4yxil37y2zsz4cnfiq2grm6qqj512nng4zqnwcdj0";doc="0nh4zm37xipvmv5h6yxy1ir2gkjy23h22j8dnz7m04w021sgx7i2";};
 interchar-36312={run="040zhi6rq7l8s04zcq2vfxricbvakkxnx0bzihbj1ss21pmyrv82";doc="18lpyq26zc9b2ypcb98k578wyg2fp1fllsfyrp67b4v9lnz1m7q6";};
 interfaces-21474={run="1d2sg377lxrwv0w0zdhxdjsnb8sbkzadpp29h4jcm7v6qpirs1wj";doc="00dmb0jq7vvf7xfppwmw1pps6453rv438qkpv5qhlamqlvx2b28h";source="0s5gfwv1izv3y3z3lmfbxdw06830lzy85f7vza4i8zcdwf775pl3";};
@@ -1917,12 +1953,14 @@ intro-scientific-15878={doc="0bzgi3zg0lm6zwjnac90ihaqwcvhindfdphjijv7mh11ii0qxlm
 inversepath-15878={run="08xivnvbyhaihb24w14b908927fr73kbk66x82nv9j332lpmfgmd";doc="097fyhn6dj9d8hq26xads2s7vz7hvixwl27psqrqqvhdlq3bvj7n";source="09d3dzckxrg9vdxh84nx3xzwj3rfarvf0bpda4qib179bgnqrf7d";};
 invoice-48359={run="0z2ixjxicphaya7244mi0gdnxnv3qawyxpa1kwv6s0r8li4604k0";doc="0ki54z1rlb9xwvsgd2bxv2sb135cc6zh44kpww0mx76vcky4az1r";};
 invoice-class-49749={run="05vbh1iclf9gj6nzradfvnqa7yp7r5c3ccahg3j7qrdkkb0xj8ig";doc="0myl8pvvfzd5jrlva1cxkps9g6jr0lpfw79wr3ghv2idz8ba85x0";};
-invoice2-46364={run="0646sb8da53x6aybbfijk35cibay4pnryq1xq2nzikdsf8i5x0x1";doc="057a73iw33rpsgpxcg13jlpcfmcmsq68jdz0fa3dhz964nf2xkpz";source="1z4lilb3h8gp64lgw7xbcnqfjf0lmzv760ggdjhmh5ibdc4ic58l";};
+invoice2-67327={run="0646sb8da53x6aybbfijk35cibay4pnryq1xq2nzikdsf8i5x0x1";doc="057a73iw33rpsgpxcg13jlpcfmcmsq68jdz0fa3dhz964nf2xkpz";source="1z4lilb3h8gp64lgw7xbcnqfjf0lmzv760ggdjhmh5ibdc4ic58l";};
 iodhbwm-57773={run="1d18fjqgingshxvsawkz9idybfz5fdzcd41qxk5hpqms7zcjymi1";doc="0iqw7insxma8pmj5v12zjgs72j60z99g7w5kfkb1h6biwlx33s5c";};
 ionumbers-33457={run="0pfs5064cya5i6h3bcypsm8fy1bas542kpy742gmbd4rdw8cbxgr";doc="1sks9qdrl5kivcgn9mgrv3f2gfifmp3icc4wjha4n1va1fqcqcma";source="1nimrr8b242h11nfxi9si1pg0wc6c0aaa0dl23hjjci89n8y89aq";};
 iopart-num-15878={run="1fx5sw6xzsamlrnm7nl965xrgmgffq85kkxr7ayka1w578p6f8jz";doc="06hrw0c3arhssabm3l6fhb1kh8bg4vp5hpafqlbyz064a60m1p9y";};
 ipaex-61719={run="12rd8b6kbnn2hvsimmfirfq3nj436h2ckg5129qxnfnqfqr9pkl6";doc="1g2z2ichh3wdjmn9jjd48jic1b2xw5sb8sksqv0hm043hk5makaw";};
 ipaex-type1-47700={run="094z08ygcklbk7nzklfmdz3lfmicrr40i0wzxmia93v1vpsjb4gh";doc="0946rj1bh2hi0779ss6d003wi4xcb79i9p432jkry07xkr3fpy7d";};
+ipsum-68861={run="02df1xdzvxv5g83bw493kh01vqbq1nf2ls5f1z6j53f116k8k154";doc="0dsq0h7hgm90lf5a2mmqgf9m002vng1cgfz6y21c85ld70ds0vpk";};
+iran-bibtex-69347={run="0b6janv0n9shyg7plykvb1dncxkfynrq6hzn6bgai2n1565c10dv";doc="0pwf352y5yz01y21w2vgz2z3j1k9jkssmk88gf4mcji8hkj8xrkn";};
 is-bst-52623={run="1acvwcg568iv9lskld9hjnyvqvlsmgnbg2akrd59kmh8mmbkydk9";doc="1hlprbjkamq1w3f1n2dzayy9v14kxj8f1nr6d3z99c7v7kg19m75";};
 iscram-45801={run="0h6pciksfrabg7wgxsgzciw22cp6gmz9cb3ifdsqb4n4qk9fga6m";doc="1p0p4w7pkyc9xp5af1afmsibbbrylcfrdcbn16adscw8y6wmds05";};
 iso-15878={run="04ifwh4vn074cnibyafzq59zjlnlmdfyq03mqwk44r1mgmizizdi";doc="1bnh34708psjpbhcddv87axjhxiyfjic0mamlpn3z58qcm0jb2pz";source="0gaxih730r70xgy84vbqz1fqbdr1w9fg9d1hszp0kqvqaypfmcyg";};
@@ -1933,45 +1971,50 @@ isomath-27654={run="1bzw4l364z6avihhihiprbaslnn49v1rrllf5cj0cg35r3jppz3c";doc="1
 isonums-17362={run="0nqzapahfvqg59zxrgjiyywkh8zb8mz9gdc2733r78rxnz81m1ba";doc="1axq0acxk6qhq42ayr0zjs3356ww3ryidvj2wii2c00isw0qip1w";};
 isopt-45509={run="03skmw4hmib197p3cfbhf3mbhq5hrjavwinwc22drqmca370v305";doc="0jxwzfysw4qsfd1694grnzs2jfqcbhm40w1xlgcsrq2ylgcjhr8q";};
 isorot-15878={run="19x89d5fvjpn66y8ma1h24dwapw2x6a4nxbw4ixp7xqkycyhy0wg";doc="0jrglpxxks1fbwgvmx0w3fjcnsfbf805jv95kawvgz1ix3mm71v3";source="0rfc2jdd4f5yds516lr9m28izg3lbf6wwvpsh9hrl466dakgdayz";};
+isosafety-68801={run="01csapgs6danbh1lr2k1pbz2sbmnj5fwllvb17jnddsjnv6xs4nw";doc="0li7197m1pqgv309fv6nii6sl4ppkcnxqnzgghrv1vkvb5ps4n41";source="05sc88xg477z50rcvg4pjh2p4jnfi4zkjkyv1w6phk7jjqh0hvpx";};
 isotope-23711={run="066b5jw98ynyc15jigxc1idp79i89hwrq19rdizzx90s6xfnxlgn";doc="00w5bxh4dkph9d4z0x8h6akcv1i2a3b5vfr4xbvq1n8k4i8ss7jb";source="0x8vrmprpgpgbxp3n886yajdd9mv27r9shkyz9mp1bd4zakdgc8f";};
+isphysicalmath-69343={run="0550hx1ybxh8196q51zc1966jpdbrb0zprrzg4ss8x9yxkan13j9";doc="039miqrgiymmsc561mnycda229l8r3g4cz629xkndv0rxz3civb5";source="00l19fbwvpv0xrzjh0chqp73k6cvgj2bidalr3c1n1g21zai6c22";};
 issuulinks-25742={run="07rpm9kcfj3dxsax8kp5r5mvrgg1c5yrpbiirsk44ybjjkhhjscy";doc="0qlz8y0sszp1jsnbbgaj9h2zcz1yqk827pwzccfi4wdj4rcpvvam";source="051b05k40zs5amjxnqav6ibdvj64wfhcf16a2hlkaf5kpmpkmh54";};
 istgame-62946={run="0ym2l6nf8prgwg6sqfjlr6mmhv53q3aksfznvgy7ypiggg18rq5m";doc="0ggkbzc4xnmx5h18af4h7zhzp1kcgfiqdl28qhrhhcm1d6vc1x2z";};
 itnumpar-15878={run="09cv6x74vs8m10fhk5ka6i1c6gzbs5qaqbk7i7mf2zsdg5w447r4";doc="14273y8zl42gkqm915271n15pc6srsjvfbnc3jhp5xcjcqnq3yfk";source="1wg714a0ipv9g81wgmjdrm4l4yar0z2nqxr5khiwihk9nrg26yc2";};
-iwhdp-37552={run="1snry29lnq4cm6ybwqi29lhyvn8g3zmqbsig0kwnywa92dl3mnl0";doc="110x1wm1ii7b5r23zng2dx4ly8vqqwr137gfl15a6v6hcr4zxvqg";};
 iwona-19611={run="1gf8kmpmp2cjz5sg0lx8j0kr67a5xshjkghpiy70jnaz7k8fbrgb";doc="1skk4p2pblh8h37rz2pjx18h8pgbagvr9w8h9d83299byvjggpi3";};
+iwonamath-68144={run="10nr9phqmjvbg9hg7fz11dap8ncnxx0pbpbz56pna5kj37znmh7a";doc="0550vjbv8b0z4v0zwgkiw68fg02aj8nznfsf0qpf3isqyl9d94cy";source="11f6m9969lcvp3cw2gbdv4gg4ggisb3c9p090v7nzzyadx4i2kcy";};
 jablantile-16364={run="07f298cfha42q2d12xihaqkga2iv1id2wa5ph8a61z6ckhchzz69";doc="1lp90rbrji8nld0wzry2nn0m2zb2nrqnqyy85p9sh9rmrplhj8f5";};
 jacow-63060={run="1gqjsdzfspnpps2p5qmxbgrkc8bxihmag0w2xrvm26afmh376djf";doc="0p6xpz5n961hyfzjf7crgciig5rl95wkylikmr6gb95bskdcybkg";};
-jadetex-63654={run="0gsmhql8p421dyyv1b021sv0hsnl2y4m8wj3vkcabhpiql76yfyf";doc="18ljn0p607hm9655v6z6xs2apkai20l2mlxwyb2asqa72s6x79yb";source="0vrqpjn64qlyszf7d2vwkbd1y2lj5lld6w9zz1jqz1f0arhq33lj";};
+jadetex-67493={run="0gsmhql8p421dyyv1b021sv0hsnl2y4m8wj3vkcabhpiql76yfyf";doc="18ljn0p607hm9655v6z6xs2apkai20l2mlxwyb2asqa72s6x79yb";source="0vrqpjn64qlyszf7d2vwkbd1y2lj5lld6w9zz1jqz1f0arhq33lj";};
 jamtimes-20408={run="1sn588j6v6gxfgk31r861s7cpfk2ir7ip75hm31rxi8s8hv8s7s7";doc="1n91f0b0bjwbkm1rq5w2vwy6wlaizlp7qb8pxm2wn08b5a825hvs";};
 japanese-mathformulas-64678={run="0x9k23g95j4wqf02ibj4zpfgxa3vlhgckax80lwm5flvr34bbgdv";doc="1iy8q3906bl7j2ciw8l3162pjw067qkbkdadj9v727x3lg29aay2";};
-japanese-otf-66102={run="19iyp9r0d7mm3j198h8znd0pq41vwxk2jk3lkw05j99hbbbkghw5";doc="0mmcg2i2wzzapw122drvfxi85irl2gb1j5g1p6ak7xavhxv6qb8d";source="15w89vxnkh0xl0jb9nzkcc020jfr5yvhl36830ipl11npc30j6p0";};
+japanese-otf-68492={run="1zwjissgwzkjrmh82xixax57wf1ycz239yl9wmcsnn3wcz04jg89";doc="1xzwpyzw3f13ij6xnhdhmxxafiwqmbjbyvv6c6cfbzdw5cpkvayy";source="1cs0daf9dyx5z397lak5qmanwvkbh49nflfaq6ikiqhm22hg3w1r";};
 jbact-52717={run="0z0x6jrxaayp3w441r1zwlqirvv23g0b8h9xgy6r3ppi71glzqvp";};
-jeuxcartes-66195={run="0c2abzl6fjm0nln9qvnms19a30s25lsksxif8yk2l59y0w062kzq";doc="05cxbmcfi9q1j00h290fl2x4f5rd9qh0vxv0xrq9avxh96a8m83c";};
+jeuxcartes-68266={run="1d7izhik03gs35xl4vran8adv5xr4vasc7nh55h9ya559v59xm2v";doc="02jvs63xi0qhcdnrm1m93cjj29i0cp07hw52m3143iadvargpmv6";};
 jfmutil-60987={run="0ygrcnm9d0dkrcz5cx86j80rdqwi1j9zs28b1bjnfb4vkd5r0fs0";doc="1vz9wav5ggsz9gkkyflywsnzjsw0p5paiw9wfx7x3ha2lgwv7agk";};
 jieeetran-65642={run="07b126wich0dkvc7f581566rpn17qbnzx02hfgbw1rjkqnq3svsd";doc="0r8fsqx2nqi1jw9r30h6w3dqafl8mwhih9vxpibgfnp2lfy01a5m";};
-jigsaw-66036={run="0h5g4vrbwpbxbw9dwscw2bqg7sanh0a30bbhw48ff9ic94bs2407";doc="0a36l6s7wp30h5xy64sj3gj716dc43mlbyy3px5wv7n973f5km51";};
+jigsaw-66009={run="0h5g4vrbwpbxbw9dwscw2bqg7sanh0a30bbhw48ff9ic94bs2407";doc="0a36l6s7wp30h5xy64sj3gj716dc43mlbyy3px5wv7n973f5km51";};
 jkmath-47109={run="00nh8cf002lysvn6qiyy5mcs2n2z5ppr0x5vp1akbz0wwhkhw9h8";doc="07n2xxfwk0krbiaphfkkfnc8mgc8iqmmmdiz0cj6s7688rlwij0h";};
 jknapltx-19440={run="1jw24izfsw3l8bn27qci3mblmhpkal9wcldhjll7h84fgjb9q396";doc="0m3blfj4ninra6zn501x17q6b2qzckzcavgihgqmk9q51yibd5aw";};
 jlabels-24858={run="03fpym9q84g1b0pns6sdsb4jx78aq7sclr5fkm05ckvkk4v3wmsj";doc="09qa8y6axg9pvma507b9w63dwd2jrxnmd64f5rfd7wpznamhbc0w";};
-jlreq-66374={run="12qfaxrbid3dbv1l1q74h9h8wv7hiimrxhyrn55h4c5kcvvfsyy6";doc="1d7s8crbrv3aw8rv06v1zrz4shcjm2hhrb2c34ax11ww9s56kclg";source="16mjb1rnr4vnc14na947aivcap1wr33bhb3w82y5nj5x4vfpycrg";};
-jlreq-deluxe-66119={run="1gmbc65qilf6im9xl26440kmvyn56ywc9r5sjbpfd4aknfpwsx55";doc="1nka16c0wyh7zqvqdn836ygxg642vzhsb3kpzwr2j3xkg4kmklsv";};
+jlreq-67400={run="0sjgbc6x16psaa50bfzwq1fr6vlmgjwai5qzmf8jcyask21j9jxs";doc="1y5yajzvsy9lvy79q0ma9j48qbmif0nx9wpmi2p2nysfzafrlsy8";source="16mjb1rnr4vnc14na947aivcap1wr33bhb3w82y5nj5x4vfpycrg";};
+jlreq-deluxe-66115={run="1gmbc65qilf6im9xl26440kmvyn56ywc9r5sjbpfd4aknfpwsx55";doc="1nka16c0wyh7zqvqdn836ygxg642vzhsb3kpzwr2j3xkg4kmklsv";};
 jmb-52718={run="1a5nz825jppq3pl1263w2sbm0a48kmmndppfpp7vi69n5j2248dy";};
 jmlr-61957={run="1vliagbbyy5nzfs8pkl71gy0zvjzgqibrh7c480aampwf5qi1gq8";doc="0mv7yxa1rn0qaz3qkzxh705ia27gqrjzpcqi5gpp340hvi8hm09g";source="15p4dsbn25gpsm7avswx8vw3ljfvwmwbp91qlzm4cabsb54kbnhs";};
 jmn-45751={run="0iq5ky3llx50smw80lpylv11jmqc51m5yrhlslz3sakmgdqgg1yi";};
 jmsdelim-62630={run="1087jag55rnf02r9s5v7brfqhqncibq1xr0xjq680lvb62f65ln1";doc="12k6m7i81d6sblgqijpizssnpkghq5snf6bq44lkxv1l39flzjrr";source="06kp4zsdzi2m26h9m99x6kqc0lfic96cidzb63mvmdfqcf2plba9";};
 jneurosci-17346={run="0ywl1nlysc5fk7v5cdmy5g5hylz4ll20nnqxsvymsxnayjm4civ7";doc="0a8almw0x4b7v3dsdi9cjv8vzg518fl90zyyxn24p614w3zr01sj";};
-jnuexam-56867={run="0550skzwdanpzxa22rv8mx6c1ihr930rfaq51yp82dijgd211sql";doc="0ghypsr9h50cxafhca7h8pdvzh8jn02gh889zw6avk5wx5vixav5";};
+jnuexam-69161={run="0w1jrrfbaa7wiffic6r2s6kr79zva1l9lkl5dyq9lmwsrkh1mn8j";doc="0x33wpwxriiirmsqk0a6jd8lm73vybcz1wn3lg29bywpa5h7hgl2";};
 jobname-suffix-64797={run="095881x3s3hyj6kzhymnzp8xcw89c94qrz5654kzs9mqc2iy28ss";doc="0ng9dzmx53p525c0kppl33i13xwdsamv0d6k1j8plfvjy86z3ay3";};
+joinbox-68003={run="0xbbbpw0yvm0hrll0yxcg46bd8gl77nb63lljk1pfak64b055clw";doc="1mr5h8ydiv0rh3a9s61ksmbvq9kd3wjaa4zx2hbg501dwmyx42li";};
 josefin-64569={run="1f93l4f6gvsnnzr0f3gpvl9y9i034rhxcdz8c282bn5jdzg93j7r";doc="04sva62hzfphzcmk4jhmp4yiahg7kzjcskviq31lhy83d3600aa2";};
 jourcl-65290={run="0skrm2rsr2y7q3mgzy8wcia8n0r2ixhdd222i0vc2figi9ynbd99";doc="0x6jxx8ckf9rmg6qidypqjy7kpi0l30npb96py62imyx4cfypr8x";};
+jourrr-68556={run="1gbbnv6x903hibi2gw17armhvdg9kg884wip6a64nbvsr6g4rgn4";doc="0385yzr1rrq5rv0rm6wz4ik7f9s8zkkfdhxq8yibnkil5k1psrfr";};
 jpneduenumerate-63893={run="0an70r9y0vklglyms7n2n40qz8jd2ig9m5i48xa81z615403bf90";doc="1kb6g5hbsdi4qxcqd7ginmkg4q1flqjbi1v2d8ss6vjsamd360q4";};
 jpnedumathsymbols-63864={run="1x9jdzl2hljcm8ia7w6b2rb8zbb41y7vyi88rvlvy3y6i5v3wkcr";doc="1i9f6llx61c9lcy1lidgmidn7k870pbl2m27yvdi40kcqs39zkbd";};
-jpsj-66119={run="0yv7lkv7sr7qhqv0rmyislf0a5rcd125kqwbnfj3696cwhm5aqf4";doc="1bmms10hgyl4gs91i2kpds2mn9x41ks8fjrislj2zl8y3vqdkc81";};
+jpsj-66115={run="0yv7lkv7sr7qhqv0rmyislf0a5rcd125kqwbnfj3696cwhm5aqf4";doc="1bmms10hgyl4gs91i2kpds2mn9x41ks8fjrislj2zl8y3vqdkc81";};
 js-misc-16211={run="1b26v330702mbd9bviq6sr7pg0338hddzc84z55fsqjd85fp7zcz";doc="0bs30a1m8cbv2824xhj6k3jiv6dmdp6jjzsinhfdwiizc2kzriwv";};
-jsclasses-66100={run="0g59rxplv04jkjzy4x62lldf62glsr9dwgr550cpw91ws2izcx16";doc="0r3a8z11g2ngk97bd79610l6wnjy4rdgqv2prn3xcmqhrzg3xf00";source="0x8laaf3rw2z1587qx6ghvcmga3gykvahrjma7x9m8mg6ljh3jpj";};
+jsclasses-66093={run="0g59rxplv04jkjzy4x62lldf62glsr9dwgr550cpw91ws2izcx16";doc="0r3a8z11g2ngk97bd79610l6wnjy4rdgqv2prn3xcmqhrzg3xf00";source="0x8laaf3rw2z1587qx6ghvcmga3gykvahrjma7x9m8mg6ljh3jpj";};
 jslectureplanner-57095={run="1kciz53cg9p1f710j5rw8pilfmbiz755a24dqxckam98jy5g4b8s";doc="0lcq9dygfjrs63yjwdkjkssxyfx6phmbydh6c8lcfpkg984pfg5c";};
 jumplines-37553={run="1d5w5nh0pkmhjjjq9x2n4r72ygjh2mrbdr23vsrh8cyvj3xym4w1";doc="1q0mzjyfj8vfp42f8m11g6fyx60mb33g5n4i7pw9r0dfx8y4jvpd";};
-junicode-61719={run="05prh0zpnp9llpd1hgpisdad2na8q4qpvsbxg3lcldvs3s61ndnr";doc="17z7wdsyrc3pxjqpl361ijfp9zj50g3j66q4sjddg21p1dmcqmi4";};
+junicode-69355={run="1vxnwzvcikwrvx9wpvrvwn4k7jh3ndamri0y5a4wjc8m74l30f7h";doc="14w0dcn43s9mdgpcz0vhwh2w56n90saljnvkg4wad7aq7pxvnbln";};
+junicodevf-69374={run="0cch871h5l90pfjfqw6x27dslwh60yg95y2g1hyi9q8y36cjrs73";doc="14xl1837jbawj2lj16ym7yi4z8mp8zvzdz6rbkcyd1rbsfkbvfm3";};
 jupynotex-56715={run="0dir4hbh5sviw5spsh80cms12rppv3wfqp8cyg5fxkj65mr3akni";doc="0xar0qf1czdpzbjn13x2hwrby18qh6s1909nv2q24rl3nrrpzpcc";};
 jura-15878={run="1mmdx5zjrsrvh90kkdgigddvb4ih3cflygv70al0jy0mpm6iwha5";doc="0zy4rafc7lhdb4gig1y53fsmk6faa2zh3s7b1la7z7qdw7s2gyai";source="036ac5chvg67hdj8g82nra7p5jickwq041jixbprf080i0mywvdp";};
 juraabbrev-15878={run="1rla1p46nb04flc2grrh1j0wvwk84cd2h1v767xzg2rdsinaxw68";doc="1708lfrryhlj2d3in4gvhfl8c6yvhhgi0lb3yz63h0n7flsb4a6m";source="0i5xhmx4j6ry4plcgdn8sc9vvbai9vzk9jr0mc54dhqaby2slyxa";};
@@ -1979,16 +2022,16 @@ jurabib-15878={run="18s5jsi5wp0cac968ysqajwrway4sv1scf6m1g2l86jkp8gl6jm8";doc="0
 juramisc-15878={run="00dkagnyz7xrkn1kdzb7612qsdc00h2mkkhfv2xnw1fhrcsy11gf";doc="02prrfg5vvy5d9y45hjx877438r8syymjj9q8465c3y3jn4ka9fc";};
 jurarsp-15878={run="0ylww99b12splqpkci2hps4zzi4myfy0agxzz4m3s8q74h4bqj32";doc="08bvr93ax4p00lmjkhy09bfm403lmzhq729gjjw6skla4wbvkmci";source="0fdxnj42qk4cywsxj8x40bfrkp0yqm7qh54jp3qf79gkj4hj6yp7";};
 jvlisting-24638={run="0ry7gnzgl2d6id7xgpbdhg8pj920105fd9qyx1a0riagp0pgyryb";doc="16z6amx6czmipal3sbqmdsc1v5x1p4nyy5wxalicy1dki1f4zpyn";source="13al33s01bw43sa2ffz5zlxgaqvhj8lrcz8y7x9xx43wvvxjmdz9";};
-jwjournal-65480={run="198vv0bm78aqzy2h0zw3zqbgwi33a1lsd8d7r36a7mnpwwwm684n";doc="04d97vjv5l7garhm04smwb7459mn61dr4ynspd2j9k5jdm3ml32d";};
+jwjournal-69162={run="12lsm5r6a7gqpi48ddf5p3ifisq38j5xb6jsbfpj1zbwhx7820y1";doc="0v9x97k1cw3xca3na737nbf6g37diqs10p084013ab5j83n8wgsg";};
 kalendarium-48744={run="11f8zkjfxbk5w4y49vy712ivfqx66m86jdddygfjskp47gxcxby2";doc="0rbac32h90cnp318a0chj1wfzfrvz2y140siqv5slld90f7d5546";source="0virfajl7xr8yiksxzmr68dm11m4240drg7xn72gxbs7jfh48wqy";};
 kanaparser-48052={run="1cwik91vx5bzq5jn8xjgr4ffz7n9d2qpx9v9xr298afmadg65h0x";doc="0y7j8qp9j33hw80dypc10nr28x2zn174sq1rbbbr8gc7vsvz5pyw";};
 kanbun-62026={run="046zvhsmw56a30s01pr50bv1m3s4q1fnv8hbays3v56xbj8rk7ka";doc="1qsz9krhmgav37k0386il90h91c0sxk1q2zvma272fnpbw5rbq75";};
-kantlipsum-51727={run="1k4ilpfxa6a5prm0rgbrjw5jsr55wyadj8aq1r4hl3q953n64mqz";doc="0pwwrjffc2525krx7p2d2y0zx3zp2yj4x0010ah8k88ix78h47xf";source="01p1gccy0a7nsyph5l1g370bsk2d9pxc45c87j88g8zjizllfkja";};
+kantlipsum-68983={run="0aa0nz2a357fggcd44wkh1fkc6cwx6kqhm7aj4jhb8p4j2ch5mhx";doc="04nlyjfmqrvm0q64hdrrx81jc0f17p3l25v22q6kgsm29nlgxi22";source="0akpmgj54cipxl3yg4afq0bdws3m3100i1hm9nc4xrzipw8cdvx5";};
 karnaugh-21338={run="0a8bbdd8khib2bfk4n6527d5ggx31gva1fkqbfw2jwc5194rk360";doc="0n9jqsfn3v78flgqc6ir3w0lymh1j2kl2pcjxq4wnhzgjy8blbq7";};
 karnaugh-map-61614={run="1q4xrsxjmzvfhivg2xycfpfsbcb51nq1cq255slpc06q4ycyxbnm";doc="1mnwkmkf4lx3cd11rzgqq2rlfc42728zi6xj67x38wqqpi9ak15x";source="0vphzrj1y5r6zmlqg4wxykqqww0ihgh6rw3z59c23f1v3j83jj4r";};
 karnaughmap-36989={run="01b0ndcd6vcg4y6v4zbi6cymfprv0s4vhh20hwlghh3wy5aknwvl";doc="1xk80qqqpxagvwp1vfh9vgrqihakp7bkd89alb3j9bqaikgdiqdf";source="11b5bjdccy4p3w65268c8im3c6bam9ql60mik8pifwfbn36bhpqd";};
 kastrup-15878={run="139ynj6jr5iniwg4ry57b61bpalchwmk2lvxpzi6rzhp42ifv1j1";doc="1bzjky4plcl24fg5rwbjizixwfn7nkbzb6wwydxd7s2053zba07a";source="1c4ijjifc4lwimzrhp7ym5804fz5afmccn4bnfayypmjqpc8x6jw";};
-kaytannollista-latexia-65461={doc="12ysr2501m77zjljpi30cxw45drn2hw552yk9asksvrbvavjphm0";};
+kaytannollista-latexia-69265={doc="0rhjjazj6rgm1paxv2qvspcab49s4swq6gg1gkx0vd0105r7mi3p";};
 kblocks-57617={run="001mn33pf532iwp3d8likhbc5a4nsgq72dirbilbdgaxqxndmx12";doc="14qyg0sqrr5b04j2ramw9zcfhbgmc9qfyy5im9la4id4b4zxrk25";};
 kdgdocs-24498={run="1p1rcb0lzcsmgyqz5750pl2r73fd18k76gry45zfsr7750kwx7x9";doc="0b2j3mw8z0f3d4pffqw2r9zxpmyvykd36sskkhfg7wa4q521nf3d";source="0sipsvbi9254zpg0bmcfin60szx9q0vnx07a9bdm9ma11qb1djpb";};
 kdpcover-65150={run="1a4w58r6krjg4aqpkg9r0pk7553nd6fqx22jqk37vd08scgh72ls";doc="0lvzbr63skkx12d6nwci537zvqcpp563qlf29id2mki80gqsx29w";source="0crbr3xrv0yfd64qjx72yz55py9h7by4rkl09l06sfwpn5ysdzgk";};
@@ -1996,7 +2039,7 @@ kerkis-56271={run="0hcaw35viqpsbpy82knib5lbf3ngvmmkga96d48v5s1zd6m7fwdk";doc="07
 kerntest-15878={run="15695a4q6ikdy6f9149rblfc4fx25hmpyczgr1z1q8x4s5ar7dr4";doc="1fmpngs3q7pwf4z284gg9b4cfw55afdsnzg6qpanlryk6czbch16";source="0gwz65xgxii7vriw5sf1zi4r97prf2c3dwawr3ghhgchmblimf8l";};
 ketcindy-58661={run="0v3sz01qwd2pnnqbf4v8g0xwhs3zqxc9qihfa13df43rw644m65v";doc="0ch1zjmg04pdz96dhyl2iy380hyjqcscxn0kafj94aldin20256w";};
 keycommand-18042={run="062i4fr9h2sc1zy3ybyqrq5hw4g3g54gx708rrznkl4zmpf93ppr";doc="0ls9fbm0815aar19hg40p91n1iyyfhn68ndhvapmwfsxhi6f2d9j";source="11blfbqdn1a00bfdv3nwd7501pd5qrkk7pqn2ffir1461xivz26f";};
-keyfloat-65446={run="0dz1bkp266zx3s7gwh0k80irkvh47d86i1cprg9v30b79hjq2xvb";doc="194wv0fpzc4yq69x60wsg19sj183v2wm010lhsql5n2s4239w554";source="0djqv41i0cjzgzb0vxlg3jx6scmfrx54g3hwanpik242p2nhfian";};
+keyfloat-69399={run="0qwdi5gvv3fmhp2j9mwgbfrbr8awf6bj3fpajhrznfk8fy5zflnp";doc="02cv38dpq0jh1iyp67ybd8kxq0aiy6sxkz2jg9jy7vs1ksjkx74q";source="1dq8w5vsnl7kcv6q62ik2d0vy5bkbxaqn679ifbffgxiqihbpb3g";};
 keyindex-50828={run="0fsszjcw1r3kws565pgc5j7chifbkf3dh1hnlclwwsjpxbji4n6c";doc="02n7lxz8pd49q9nf6pavhs01410zj9pbszqqbmk5c1ld077276x7";source="0k3img6kb6v853wzmhsrrhx7lrh275ssx57b83vk3yx9m831qwmb";};
 keyparse-60277={run="1jfxrymww3qh4bwgc74dn6v5xwsqc29y835k4rpwglkb14ncibxd";doc="1i1sklid586igkcbhx1mjljxpq2yl7sd8rqagygqgqsxjzg91jm7";source="180fkwkm01cspp48a8msmws9bq1pif3i80yzjxs7md9k01hqzniv";};
 keyreader-28195={run="17cfxcn374q0pgf7bbqwc0yrk6r15d79h39hzbvf7yrgj4r3880y";doc="0fp2hv3azi287gz129gqlsirw4dr1d5lqhzxliyzfy8dd9b2cqb7";};
@@ -2004,6 +2047,7 @@ keystroke-17992={run="0h0ci8pslybspsnpmv73qml22592vp5lr50qqppyhw8qkng22gsg";doc=
 keyval2e-23698={run="05ssgrl08d55in1wkam99bfdfkjhjrda6j96b6nmj61sp97yg3ig";doc="02ajr27zgfjk5hwmqm05gdapkg3d3rk1k9k3nqm4nbvwhx5sahg5";};
 keyvaltable-65416={run="0r8y69sbis65hdalck66n5hxww7nk5z2psb5qzx13dx6qhnqknz8";doc="1lhk840aj1sxj6pwybrpg9gd3lm9gs06q1dhz399my6cds1b9bk9";source="1k749a0smf6wdcsb6cswm0adq98ylg7cq9yir410wkxyxdfwj413";};
 kfupm-math-exam-63977={run="0r5zqf6qxzbgyhg13xrr8qwqb5cjrik670fclh089qsz2kihqb6n";doc="1lxab23k08wrnpgjc68lcn1r41c793cncxfd8mnqxml4lyylfcwc";source="0c4fpj08y2ixf9c8kqzyl0j4hrjg9mrim4fg6y4s7mb4kcw0138a";};
+khatalmaqala-68280={run="10hkgjbi16d8y7wz3l4z0xzi112f124vzwq1g4kri7xlarcha0d4";doc="1jfqkbmj6lvfg0a3dnznlldb9aslmj1g2cc2yni0ramz4kpf0jf0";};
 kinematikz-61392={run="12h8j42d7m2z1sms9gl3jj0qclvqnximmbj9fnmr270lk59xlc8y";doc="13qa25hh33jqaxscc464j1xd778x36f4d2wvb6b318iq21s2qhh9";};
 kix-21606={run="0w5qaq50wki5b3s3j7p11akx7mb8z1khchhy6093pzzrny0hd5c0";doc="1jblprmz9vfriqdmi9ihh3ihi7pc9wf9cp8qfli89iir2xy7lv3d";};
 kixfont-18488={run="02zwdm6zja38n41pvzay09f38cam28rr9ag6yy1m5kmw8421xp11";doc="1dvv4hdgkzmdn7waq4djsgdd8p1cwq3j0bddgxq2y94pq64maq0q";};
@@ -2012,23 +2056,24 @@ knitting-50782={run="10x5yxlrnj67gzd5kz7fvnz0nykvvi26sdm7i3n3d0si1vjzvczs";doc="
 knittingpattern-17205={run="1ydq16bmviqkbf9zkrlxsh33bfn8nmyzbbi1xwfd7nsg1bhdf6d1";doc="1x1bswn2sd1w19g1szc573zayk43zi3718a9yqfzqnxa0qxvxsqd";};
 knowledge-61991={run="0459xp20v02awl3h9ada0j9p0nasaz4fwv4whc6p4hwzzw86052j";doc="190gy5kj2fypvqa7b2s3p0j25drx6rd665yqq9s2gjsqzar18ql3";source="16xspjjic7vydd310ldxjjipzwl53dw726693q7kckbfv0vmpd7m";};
 knuth-errata-58682={doc="0rcyw7dqcwlnf9q421k017hrx5c0d9rra6rcr3n6wqmhxmdy5mn9";};
-knuth-hint-62971={doc="13ka3b636vwgwz29bl9mh40incldq6mk6cr6q3by01xj12za41kw";};
+knuth-hint-67373={doc="1fl3nyzsf9jifccw75grhdgyh5qhj4akkkyaa7mp6kpfznipqbmc";};
 knuth-lib-57963={run="0dl8z340n6m6xn7wari4hir0syxqi0kl2fhnf0bvnmkqhqwyzpca";};
 knuth-local-57963={run="02cf32f57fr6bngiv9xiw8bh4sq53p9br034ap74s80h3bgcmn1f";};
-knuth-pdf-62969={doc="14by59b7d1fi4jh5d0xvzb56g9pgd5zi1sdvfgi50vrpn28gfqfw";};
+knuth-pdf-67332={doc="0ig3ml88gqks5j9ly73qsx0kdii5m2i46f9d9bnh7nr9bjbpmd38";};
 koma-moderncvclassic-25025={run="0kgsbg4is158j1ssjwabicw38mh2cd4n1ggxinflb8i18xsmlgh0";doc="0f070dxww75g36il70gmrx9bn0f0d3mmh26fmzqb5zmf93hyhcsf";};
-koma-script-64685={run="00j2qba4i31dly9xk5z06a6hkps74saqr0cc09l66cq6n2n2jyhv";};
+koma-script-67573={run="1r2li64g7fk7qg4gb215z2q86by2f2ah9hjlqf0wcv8985qshnif";};
 koma-script-examples-63833={doc="1s95a3vgjxrn34cpcinkyr1yw2rj8s2973np71yxrwzi9dqdjpn1";};
 koma-script-sfs-26137={run="14qhq2h6pfjy878nkglbif7yjc12g6q32kl4xfc7kk3kf9syp0kf";doc="1cjraqcc13bcq451a36i5x2sbwj97zy4srrpaxybmlisvnza7vz9";};
 komacv-57721={run="06df0hx1rm87vgsb1g8b00ak77n6zs34c7mb76k22fis41qmm3a2";doc="07sxwgrrik3vadlp9a4lk3jmcqnvfzz5ir8l33zi7sjrapr7mxxa";source="0vd6ha60dz9ddmf3rkbbw5h602fkch3zifcjip9nyfs7wgnkg3r2";};
 komacv-rg-49064={run="0hcf3aw9r3hr01f9109rid9c1c36gmg9z0258zlqgq9l8qs0bryz";doc="1g985pnkhlhyf1285w9g1zx86vldyg45r4dyp1dq02pka5nf33fs";source="15v5y47jj0393vkikpv5mqdrrygs66b20gsmp03j6v6iih52w7fk";};
-kotex-oblivoir-66516={run="1np1zib9alvhsz8q3pk1zg8dfd7n8gvcjk55c2vb3lp9bi8581x6";doc="1pmilc2sav4ncddm4zq279708f72wjf55z51g6slqc9mmykmb4f1";};
+korigamik-68204={run="0napq587a4j4z0fw0ddhal0h02aymjj92cbxmqrrw19j8k8g0b2f";doc="1lxkyaqcan6jxbvi1zavbavlycp8amz6qmah258y87yl08m8c475";};
+kotex-oblivoir-66513={run="1np1zib9alvhsz8q3pk1zg8dfd7n8gvcjk55c2vb3lp9bi8581x6";doc="1pmilc2sav4ncddm4zq279708f72wjf55z51g6slqc9mmykmb4f1";};
 kotex-plain-63689={run="0nri3fagwj6mgkcx97750khsyqf94dx5kxkf5ny0jiswnv192v0j";doc="16376wpncchxpsl57g7rgzl96w9hl3qyn3i4qw901y00smr450hk";};
 kotex-utf-63690={run="0gpdg9c7dqcg0jfq05i5gkvycskipzyk4cmfrncd8mm7axv9qd23";doc="0x0y67bn28fy32awnjyq2zy4gqnafyvbjkhs7hipghxf87p6snrz";};
 kotex-utils-38727={run="021hgi7iw47b3c637mk0g4v52h5ygx5w1060bpcknjlbg0qb09aw";doc="0l7dby446xxjwk7vl1h3w4xsid4dqd8zdspj1f457jy4qwjaqf88";};
-kpathsea-65309={run="16i10vqfbn3l3nqlin8p4sdp4drd8116cdl7mj103nj8y2wj02n4";doc="0b24p36ls01b0jwnxm2g1l7al1451hac38qfh9zqxxvmvy6idasp";};
+kpathsea-69121={run="15dldviayvv84gmc25nwnpc99d7z28yarzzwcbrqm9w9w7v68v24";doc="0gfnyniykcdvyn20fbwfvkx7i7lwf7kdn6117rkcjsw9qrspfc3q";};
 kpfonts-65583={run="0i8c7agc9zs1vzjq8w0ghkwk81hrc2qghzn7hs1wq3vdbc3wk4r5";doc="1q8h8208z0k19nw7idq45hmzhvsrnf7g3708ch3kjwaj7r9y5lij";};
-kpfonts-otf-65560={run="0mcc1sbhxw2cvbcqd80acbrpgm30wfsmw4hdxllbqpdbhzajd5rp";doc="0js4hagh8pawg1dfc68q4hvd0bwjwh5n80cxyh3zmaj9mhan22bn";};
+kpfonts-otf-68970={run="1sq0p6d6q189liyf5kxmq4fgmwazj05mncsjkb1gz135c9acrq70";doc="1m9iz3llhzwaqfjp101ghpzy7yca497wnxjmf17n28rd6sy8kblp";};
 ksfh_nat-24825={run="1qzn0n19lslf2qg8fvm844xx5k7s8a275a77z2ynbb0vs1w4prpw";};
 ksp-thesis-39080={run="0hcsni8p92pm3l7mi56jj7mlcv5rvdpzwbv1jv5f1hb6xyx2pn4i";doc="01pbmmwwjzd5cq4xxmx3fknk8d4q3fda3680g344g5s6ra5i45nj";};
 ktv-texdata-27369={run="1md2iv0csmr5f2mcdlb3lacccwifd6iv7yp6123gra5xcp06k4y0";doc="14sk7x2va8ja65a65fpksj2nd16v6rc1f0828gmm8j81d13cci6y";source="1ws256l59plnhmw1rycfznwpndni5i47liqhazddwbg2hragfahh";};
@@ -2036,7 +2081,7 @@ ku-template-45935={run="1f45rknbzb3d3h72vznfzspg7vx9im59w5s5lwv4z0b4sk7n1d18";do
 kurdishlipsum-47518={run="0b5x438l4m396pmd427zcnl7jyy5ag5c004gyn0n1zzwbz5lcnfk";doc="0kw9664fm4gzv7cspj2psczyn7m09qz95agn4j953q39l0qyz6ls";};
 kurier-19612={run="0x9270xgsk28i5dxp29r0awf72l5p0786mbx7gb5d4vppkf0v9gx";doc="1d3lfxixhcrkk94m7ljfcb90yvdwjbp2axjnpr2bbh32xv9zzsnk";};
 kvdefinekeys-53193={run="12nn74skhwiszbdhawqds31caz6d59a5pjmwar0r8lmk4f1jr3xh";doc="0x3h28xqgsmngs51m666mvxb8jg9vwk0wyhijcw84v1szyd0m7d6";source="13cb0xvqhz5w1hv6hamr7rh1q1cp6abqfsdqzd0xw0my9mxvwk97";};
-kvmap-56361={run="0ph45hs3x468lhrhsdwikqrw681y9zd3q0b5r088lrb8wsc5pd40";doc="0n0ls3c5w662f95yam6q6rh9gv0vdyzf7rmnkd6dgz5gl1z99q1a";source="0y6mcxixqyqmkk1iq0ys2i174ki4ygss62fx435lwm56xff7mvp3";};
+kvmap-67201={run="0ph45hs3x468lhrhsdwikqrw681y9zd3q0b5r088lrb8wsc5pd40";doc="0n0ls3c5w662f95yam6q6rh9gv0vdyzf7rmnkd6dgz5gl1z99q1a";source="0y6mcxixqyqmkk1iq0ys2i174ki4ygss62fx435lwm56xff7mvp3";};
 kvoptions-63622={run="19sj7pds5km2y284vhsvdddvchr2zcnzkki0h48ymd258afcvswk";doc="0yym68kqbmhkw15rvmz6bc96h17yiabx3lip4lq2qjq254j7ql0w";source="0ngbpkryyjf8l2gq0p750z96id32hl8gir9cxz7hybzk2vnpyxln";};
 kvsetkeys-64632={run="1gnc2b1fiapk6fjmgh1rfrwd04k6s30qgdfn2ppyf6fw440sx4b8";doc="0qhncqjx310clasz23bx9mq8p3kdmpz5cicx84a3afh008qylgsj";source="0l0g3v7n7sqfhpbf3289k9nh98cfz4w5xn0hbkr4i056yqj8dcmw";};
 l2picfaq-19601={doc="0mk8d082gcqlxw2x7d2w85sm6i51928pijybzbsh9fy2rfcv99xz";};
@@ -2045,61 +2090,63 @@ l2tabu-english-15878={doc="0dqmdr3lffhiaq7pg5pn6ia46miwq4nh5vimhd0qbf936amiv1mm"
 l2tabu-french-31315={doc="0c6fbmgwv2adlxbhl1shvpa1w6xd36gmrwvkjgdp9xc3q999l4dj";};
 l2tabu-italian-25218={doc="0bgfmn5v80rdhs9wmjj6mki29p28ip1d29rmgbw4jh4z6gd4sf22";};
 l2tabu-spanish-15878={doc="1p83xflgv8x7nq9mylh468zn3hz5pv3zxprc63q51fwx0ylxfdbk";};
-l3backend-65573={run="1hn5hqs610qb4gh4rwkz6fzh6726xbcnqck4lcvgpv2pwk08263i";doc="0ay0mzhlj28iyakmha87cc0vavkhahp3a2iyj27jqnjxbyk5hrkq";source="1ljf7a9jwvga3r8cijv60lyfwcvvqh2f3d441q360c989rh6yad9";};
-l3build-66476={run="025shd20j7qkh53gfq9l45pxd6s8c6zrp1aqnm1h0fx2d7xxkkdx";doc="0072imbggffnbmfmms9kdygdkwa15krkl6s1pbli7zbn3h7b0vkg";source="1fvjhg5qwabn7iv6416f3lcrlv9z1mfng7vksaiskw3yfihr13qn";};
-l3experimental-65621={run="1fza6d4k54dp0y71avcx3m1gvhprxxljckibamis4ma9pqrahylx";doc="11lrxpghqf4776s2274zbrwp84pdyscxqvg01bmm7rch39afw9p2";source="1xbi11fs5kr1k0zci1pb66dbzlpr4zlrz48zry3qsrg7yzsvlyd6";};
-l3kernel-66099={run="0jrd1wllbvlmphk4sjwjva6z1vw3yri1y0kdbssg50gvlfb0r3bf";doc="1jzm26rm0lfy6vkm7hm802asf2q1wq0078c64a9659snxbjhspxm";source="0aamj860lcdf8kgb1swl74dh7dpdqcz704imp2ps8sba9gjigm87";};
-l3packages-65722={run="1prlmijxz75r8fzgw0ngdrrnaahl7w1hrwdra49x7rga3wj1yp0s";doc="1pwsi2zpfcbpcpdcqqbb7kd5w4pra9klnhzk2nbd7p37ibcijp5a";source="0i7z2vjggzvfkrzi542q2ilj2zlm9m4s346nbwqy1rdbhw0x1ji0";};
+l3backend-69310={run="1cwjy3r6dq601z20kd7fdsyig980v50z857hdq46b2znh0x7fqra";doc="13rszdyiffb0jy3j38c14xijpssv0pp2xd5il1g2nm92rcihfyx7";source="0wix411kis8z2lybbr7kwr8i8azxiaik78850vvsiwljy3512inw";};
+l3build-69360={run="1s3p19ncp5m7yrn5f2qalb36bqpapdc3fyajgs8185z26j5dip7v";doc="05m9182znq4dymj10qpxfncf095vsdmfcqkym17i0dgan8dakmqx";source="1x9227kx0b9x7i7rymxwlccwip7hy8rhwy1xjvn9wqad7sy08n5v";};
+l3experimental-69310={run="0fy07favznm88ww65mjswrlvbcqw594kf31lki1wbvjw7n8pp0wc";doc="1yw6l043j6xjki5wfqjls0400ybjdjxhkq3bzvgvy3x1rpysl5qh";source="0ng9df42sf2zjiy11b25mzm7ww3sw7vllr7rx385y452lb80cz1i";};
+l3kernel-69310={run="1d3wnk8zlhpkqkcgrfx0wqcq8nwa8cibpwm9i1fchmmn6ap8i2rs";doc="0d07aknkq2pxvgqpf4lbfa8qrc2mdsf5jdsq792j4mjl2gc1dbis";source="0vv8sjg15ykcjc70mcrqnz7mmnbj5lskssvh1f5if0j9xdc5b1ka";};
+l3packages-68507={run="0x158f74pmqp8dj8z68pl6sr55caijig35sqgi98s25p4v8npka7";doc="0ylfm3s3b1zqpv933n05rc9pp2zs4ra19xwashrqr31h9sc7655r";source="1cdzi56yp7fr6hdp4v4nwlbgxk1q5kafb0wxans7m8ihsv6g9v2r";};
 labbook-15878={run="1qh16jjmpyqdfndfs91nmbfhwxif5ygk35zlsailngpgnp1r2x7s";doc="0za4mp2zq9s1z90sgqcvf6zac7w0wqbf8y5w1qrwmlv6r6kg3s1s";source="0w7nff8c2ffrn2ywz1dahd8n4cb959b6zf3ka0s913nv04ifdkgi";};
 labels-15878={run="1d1lxzif4f3qxkall0qzsn4lh55ljr45zba0xwzyvfbwighp1vvm";doc="0fl3as2lwdga814fdlg2pwyw600cvrii9hd0f4vscfzq7lmw01k9";source="0y6mkg18jqsbqj14h52317d1vvzvn3mv89q2gl4i3i89ka3dfajh";};
 labels4easylist-51124={run="10pfzxw0d856ki2krsdpidnfsk27mg4k0vj3jx7pry5cfirx6m0m";doc="145n7vy3d0vk3cq3qd44l3a6hjmazipm7wmr4aa2knxvs4nyvw2l";};
-labelschanged-46040={run="1z8gjaqqydwf0mkbnlbzd7q49fdj8c83pmcwfhi27w5lnyb897a6";doc="1rv3vx641hzfkckkjkf31xdb8zx3sarcdpnsjzhnafzy0y1vg8c0";source="0n0fdxj14kb1bk8zj3mnhnj6q5nf6h4swb7lwgn8jv0l5z5qmp25";};
+labelschanged-69400={run="1fhmxc85w0jgcvbf3kbn6hpkyfl70q6kx7d06laxzafizga069pr";doc="1fbkiz4rqch0sa7xpw0i3x9dwm7vpvfyax9jvp520xh66sn46wh5";source="0ppwzy9p9zh0hyzh9kgvjav9h7pk3c7dp44aqj87vaq33bwkss38";};
 labyrinth-33454={run="1r5za0nrvcpmx7bbnvvxf4l78pv4ciq83ck9k9qh32pawv5jn8sp";doc="14405x5dcm2k4m74jjhwd3f1836d79qz3w9m1zfj3gnvzx2kij9w";};
-lacheck-54070={doc="16xahphvhdl2xmvicr73lcswm5rdmxqaf5xj4gsdv2wjfqjrp4fk";};
+lacheck-66186={doc="1hhx65yd800bl3y2sq20lix60wd2b2j3k7n9s788mlsn8b0p7yq3";};
 ladder-44394={run="0a2sxy3rvc4w4a625wa000g4mjm00d8fpjff49v08kw1ddadv6fh";doc="16dg0nz4k3491mj7ccvw32r71vyjz2hdgdh4xgs7p3n9jg4jdp95";};
 lambda-45756={run="1ajx5g5cd5s9jqr4b196689k7zmlxmhhksly88qps31s7lzaprvn";};
 lambda-lists-31402={run="17srvv0v10mczvvmxr6sfhlr8zks589c86v472g4rnmf4bl4my88";doc="1yq4kn0nfcgy0qh33qakv7c12lcdzbj4x9xj357yn8c0ijqkx789";};
 lambdax-60278={run="0sr5im1ag7lzz0rkvnj0biik9z5ww6yr03ykn2w64dg1nf42chf4";doc="07fgh2x639fj8wb21rygj7yc0c7bcq4sm1bhdrsxzgrwjxn9rbw0";source="0sarj3dsqm18zx176p6hq3xv717fzdpvipvdlv8l5y5pcvasz73x";};
 langcode-27764={run="1hj7zyjxh64fax5rv32558sp2ss986fxx0fqd5xb9c07s189cs3d";doc="06bygnvh4sdv7mp17c94wx9v1lj4zgih1db6mknc3wiifi5jcx8m";source="1bi25gqx2yi8f6g8hpnqp9f52qnfpyafi0r16scap8w0sbnwrib1";};
-langnames-65502={run="0w28i9l571485kgjwlshbj2bz7jysfwj0xbz86i0z6rwbsz0nzaa";doc="133klc1j8jj9ljz8bmnqs3amh711lq8r2v1agyb6dxi4rgfz939r";source="1zpmpnxiawc381z2aql1ffshgascvcnh5s8ldn982lvdv9vaxacc";};
+langnames-69101={run="1rg0hn4addzi72qgrx303skf35c03lslrlf8ry790kwr27i7lna4";doc="0ix2gk1gzvsk1w0r1whr2imdml3a6f9avw6yfkf54n5hnaxm7i6n";source="002rmwkvm5b4ay1cbxc51ibcb27sg571l2r5czfilbavh0000piz";};
 langsci-65793={run="1hf6q716lasc30d72z60ry74xz0gwabp34vm9vk33kaf705b3hxh";doc="15cp4ab6rr0zxggrdray06yj8szpdjr6fc613j27wpbjmqjzbb67";};
-langsci-avm-66030={run="0xnprm5fcy8knxhldl54c5vhir4klgsmmy8l9306hmlykmphwifx";doc="1s5bjwhdz1fwnkvnrx7f4789cy0f2l0qkixdd6va6zjvylihzl4l";source="0ifsjndp9lf06anqcl79kp7rhx9gc56yw5xsr4lb4fshzzg6jwnr";};
+langsci-avm-66016={run="0xnprm5fcy8knxhldl54c5vhir4klgsmmy8l9306hmlykmphwifx";doc="1s5bjwhdz1fwnkvnrx7f4789cy0f2l0qkixdd6va6zjvylihzl4l";source="0ifsjndp9lf06anqcl79kp7rhx9gc56yw5xsr4lb4fshzzg6jwnr";};
 lapdf-23806={run="1lfmn6axzbfk03j6f12yqa0vy3gzvw1ylpq7k2ki4prb3zwhx9sx";doc="0h9wy3amir9wdqv0b8678mfmcd172zll9p5v7sf1l0w3zlbw5msy";};
 lastpackage-34481={run="0wjpjd3b48fj4mqqdx38sqalbaa9ab3c6rywyjqhvrd1pxfap2g0";doc="1123lz0ki4kww93952wqrhrw9l2cnk4wrrwyi0dxc5w1yfn2gg87";source="176fk84mbb6w5ql94381kz05lh8q8im7ri6rfjff7f4ymfjnh2jk";};
-lastpage-66465={run="1jd0cwj1f26sc0va0n1r3ggwanlq0iqsf6ydhkjmyr38q393sdcc";doc="0myhgq7si08p8fwnaz50frl9g54q4px7j2zwvhiknmnh7hnq7gc7";source="0rgdnf2avbfjznvsm1mqfpk3h8f60ls3pyg0c8gmyzi1lpsgismh";};
-latex-65161={run="18p2ghafh61nsy9ps8yjw2p0n3lcngh8s2v3m6bazk7j2rpw8pq7";doc="0zflygc37pf4mf52ad4f277jjhf1s2g74dg2ap657f7xl73mws2g";source="0hakzbki0jjn1ny7mzi9ihv6qxk5r7a522wlcj4rhf9fa8ggmx6k";};
-latex-amsmath-dev-64899={run="18qf4bafw2s8ms50b3lmi1n0hfjrjgx4gbdf38prxa3f9qmpy4bf";doc="0n9m0aqnmg1wmgfzfhx47rkhyc074cvdc8zfq6ir0s0ndqg777c1";source="1dsszhq75jhf8d4n1mrnba9ij7mbn288ckvspjrz5k1k8wr4nvcq";};
-latex-base-dev-66516={run="1690apj3v12m5sl1djsipkjqdp05746mql8hkvq9mr0rps31xnfn";doc="0l9z59drjxd5gvwgzdhdvj83sh6j6cjascwr3gf5706likhir8xm";source="06i9yam9axg8h6wfp4zfpihi8kg4wxb9fnlmh9ih77h01mawwvbz";};
-latex-bin-62387={doc="1qd8yxckyr1p1ivx0yyv95m0l3f9s5bnsy4rrnhlk6z8dk7gaqpa";};
-latex-bin-dev-62387={doc="0mszvc9n25686rc0chirqmyi1mcfrv6il70an8w3ld8sb7bx229h";};
+lastpage-68557={run="0xds81j9i3dqbsfw9084f0cqmscyapcndd6ssk0njgj2isjxb43s";doc="1agaxsy82b8nq5kn6kpjc4g59xzvalxpim6rqzl8j13ywvxv6vhr";source="17zk90069n9nc2j4jhqwzkm9kfhvp7wlq7akvwsny9fk9vrgp62v";};
+latex-68720={run="0jx9qmvwjy0i4p5a6lnyzfcj43x79ba5gj67qz83fmxyp5x8lbi5";doc="1p86iz7wcncsibsr5dyaa7lqh173r1891pj9ygs7p0d403spd24n";source="17w073p61jl2i4w02gvs3pyvi7dcmzzng8gwc1d5kaqcnf7y7gi5";};
+latex-amsmath-dev-68730={run="173gm8vkn4dgwys9h7yq3zv0pcazxvgrj40ax8msmmffq2r8cgzc";doc="1ch147w7ak3al37ivkq46capg7zpc5c10inwkcmqxhk1bqa0cgis";source="1ffzh866cdx9r8b5z8vyiccxvramahskv7an1jpi6flg0b9vv4i9";};
+latex-base-dev-68730={run="19jfbx01c8wq15anrdcyz4d6bvbl0cchimjy7lirvqmj78wvkqc6";doc="0ddyhlspmiz039f8cn1qf35yi36dg6g55rbf7r6czkppykf3hhia";source="1wk7fk4ip97qnn88l34w1xwrqc4y4lahf0v1w0qxlskgmjmsjlv0";};
+latex-bin-66186={doc="1mhdc8a37b9j64kc8c8171s8p7ixklbf1ijr4vfh7af2k416qf8d";};
+latex-bin-dev-66186={doc="0dwjlwaf8pxfjgby6dwr8ijnhm85rvprapm8m85avq7mnfmrp4kr";};
 latex-brochure-40612={doc="0xba20sy8q10ac9hxwnz9axh853hrj06vp7mfn12ajax31miznmy";};
-latex-course-25505={doc="0z6q95l2vvxrspc04ki9wnrzhz76nynb5ai6969pgw6ihl68384f";};
+latex-context-ppchtex-66687={run="0ai8w4r3lagkgval65hxnb8fqg8lq0j5kailyb4dzv2fjs9x0sl1";doc="1wbgxydjicb10mnzjixnz1hhqy4xzxv6k92wf7fb2w486mh89k5s";};
+latex-course-68681={doc="00s521wrc5gqqs5jvd1ljl04nighy8q79r0ama783ic27a3k0qhi";};
 latex-doc-ptr-57311={doc="0mamlfnxzi4lwh5cpss8zcfr64jdnf6vnj9fp48accrqdj2rpfs2";};
-latex-firstaid-dev-65181={run="1h0p6icrg68q0mnb9p1v8bxiazwn9rjq5bc8hqq6az6asxiybxkg";doc="0ym2s5f05di8ryvndkwx6qz6blbg5jsjxvmjjxi18dz9hv5991c8";source="1gf6a08ikv7m4w2m2kb370y9pzwd4b9xf26mwn01zczpx7497f00";};
+latex-firstaid-dev-68730={run="04rcdqd7461r54qhn3v13517clirbim4lnghli6yn31zzyf83zif";doc="0m4jx0qiscxszpk3c6i4r7pcr9x8xdq30q1ixj4b3l2jn88mvhlx";source="0m7xdjy67arisi0l2wgjvc9i89g2xdp5gk5cjqshb8hwxjw21mg0";};
 latex-fonts-28888={run="0dh4kgy4mfarlsrgqw4dm5zgfhcfg9qzh8s2wjk6w2g0jfc8rf3v";doc="0243qbrs2w7qh17nh8m4ivj35gfgxsnqxza281cvhh7g2fv47f5l";};
 latex-for-undergraduates-64647={doc="0krj27gmra2mpriircasv32snk80z9ap85h76n0bgy4wjqyblyp0";};
 latex-git-log-54010={run="015f1jrfnwr7i7jn6g0cfl3zs73xw30h14fr2pyjhn9pr8kd3mgi";doc="0pj2834ax404f0nnlfbg75f2h80wvnz23s8nr9vxr24vr745xpf6";};
 latex-graphics-companion-29235={doc="01zs32gck1sl9zlbhghyjmjwxyvw0jha5vl2hd10knyrb3z4dhxc";};
-latex-graphics-dev-64899={run="1jnrdrc8ppy39n6nhyxfavb1zxqcwpyhm6gsypzbj51w6p0ya04m";doc="16j3b7s501gx18fz0b3s49vrmgfwyxdp9k50h95ssw15fw82ybwh";source="1zr8b5y0ff313nlk7z7yimxpxckg9x2i1kik08y3l9mig2w8vcx2";};
-latex-lab-64892={run="0qys47v2d72f226mwav8y6shss7lgyqwbv465hh2jr9ljginqlhl";doc="05dc25hs03048z5zvykrznvfipwzp0vs54z7gb1k9d3k4psjf5qi";source="07aya8zkkfgasqgg6jbid66bjpq79px5nlayn50r3an6jw1bkzsn";};
-latex-lab-dev-66516={run="1hh3hap84g3b2air1xqk2ijsr5mzqdxqwfgz16didc2b2h8xfkfz";doc="1jcq35wy8i9jy8lgasxkdlq13mg9lqd0gn843lvxa3wv4m6mzhs1";source="1an3nk6kj610gwx80y88mvwwlx547xj0xa5r84cac7cp3w013m8a";};
+latex-graphics-dev-68730={run="0gh26h6lpv14ywhpcbw9zkzn00jqrxbfwsq61cpvb6in1f7q95bh";doc="1cyx9l48nc60qdaqny9mi076cch9cc4f3qpnp9hxr1rm7x712vp2";source="0ng5gd50c7rg7pv09ry62j8plpn4vigc0rjy0xg4bzfyqhpax86d";};
+latex-lab-68720={run="0hdzvh1affhjy4r80x53gbhi1pqsjikvyxrr985pl1slzfrlhjbg";doc="1aqwxllsrwijw6rc98cplkxw46s61dj8gz2q07djjmx137irvkcm";source="0zj723bpg0ik95sjm97kmvjp3ygsf29lshpzgljyqnzz6z8ppb0l";};
+latex-lab-dev-68730={run="1maxr2mi0j3ccq4gc2zhpp5acjnv90pa1srxd8yyann1q02cqng6";doc="1k0vld6c5zb8llriv57aj29w4vzzflk86hd6547ybjcnyz77i53x";source="0bdpdjrzghj1mx78jna3p1f4b9rzb7j6cxy0gpx1a4pslxzihshq";};
 latex-make-60874={run="1dgw31znxh3ch6xyg7y0ngnkjmpny7fbq9nhapd3am4l6qb0598j";doc="0jmms953klgv8z4k5d8rj2l5barwxx02pmzk6ihpp1wdggfjxrfy";source="0a5jqry52x11iga5ky89b57l1ww0hbl8z0mkkv6nvvc7bg5gg6w4";};
 latex-mr-55475={doc="1zd948d9y63js7980g2bvxpf67hshh2xa3n2ihbzwhpw6l9cbh1w";};
 latex-notes-zh-cn-15878={doc="0w9rmd7b5fnfvix653n9vbnn1k8yxlaaak79ipvm8p53dx75xfxd";};
 latex-papersize-53131={run="0axx2lkwi1xq3qdaazhb6i7dssx8q2k0nm5vf4b9p5ldl1ky0dzl";doc="1dkra9b0wv8s4f7xn36j1x1p849ziwlm4chf5mrayp0wmx8qshc0";};
 latex-refsheet-45076={doc="169h1syday30qiw032k14fhxikdwszggvqz8b9ga4i9wwxf1vh4m";};
-latex-tools-dev-64899={run="1kn5kzvqfbv3r7b7w77vyx9j02ks697hngbwj60rzkv6glvg2qv1";doc="0qd2jnxw7a193qqryzwycwcywr7h7l9fwklqbbs3sngkw82nr1xv";source="13imfahxw2i6si0xhbdrghyic3gydxiqjr0r0k32q29fixw5nmgv";};
+latex-tools-dev-68730={run="0zhy09mxg97693fk4d3mbghy2w82gdnmvpavkajdyzzmlxlmxcna";doc="0gz1vizf2xax6pmgxk4bpxqg4p7xlpnyhxv0a57l6mjcn606d2f6";source="042f25jnpms3crn2q5fd7l0gay48yc5hy71frvgqkdfr25wdd2pw";};
 latex-uni8-49729={run="1sv4n2v0m3lck7x320cwbay23k7r9fh4wm1vxg9m4grphc72n2b0";doc="1y3p08mni1ng6dyp0g98in7hh3mbzqq42249idy90vjhc177rjc1";};
 latex-veryshortguide-55228={doc="17i8zmr7mjfrx911psdy9cbn05c5inn4ixqmnjkpr9sbgsninyc4";};
-latex-via-exemplos-63374={doc="1w0rqhgdkflxypfmxyz61aknmjil9yikc641v2dmc5l55gl2r3nw";};
+latex-via-exemplos-68627={doc="11nhv72ixwr0g19nr7dir5awgdapxq0l295hm1pcggr62wqh67l1";};
 latex-web-companion-29349={doc="0v018lwf88z3qmzyqpyvfql7dbwk5a9r0wj3jfjc9cp2ksl8zf8f";};
 latex2e-help-texinfo-65552={doc="0rk69n89hl67qfbi5mmb4msaibychsk9a83dx593170ayiir6s6g";};
 latex2e-help-texinfo-fr-64228={doc="13s0zjwk3m95kbx4qrz2xwp8kifzc2zmasp1ks9l2acf1nqfac9p";};
 latex2e-help-texinfo-spanish-65614={doc="1v3wa99phdmsiajbq0ad4h939cpwjwzpq88h6s0796h5fr34hrvq";};
 latex2man-64477={run="04m5ccx6z8nvp6z8dm7dqhqyf8h9snmaz4cvd8i8fcwfba9znf9c";doc="11nl9ldkw3f90iz8r23jbgxaa6yq5p61f1db344nfhy0wimx15si";};
 latex2nemeth-65269={run="16fd74x6bz4zfj2zlvbfw160684ff1fn1rkpx4y34avkp0ivs9bq";doc="0f50qxbwcas2gpazlq0ja4m6lcbwkkwlp19qb2v1lflfgian39c6";};
+latex2pydata-68919={run="1zn2qmivr0daldqnrrkh8jcb0gncg3cnikkrrn609jp5sb1xd1hp";doc="04rp8hycz6r4gl1llvxq5z4ks9iy4j47wxg6lkx39hdphh2q561v";source="19nsm6sn099cm2g8bvks0d14fdqfvs43cmphgl48rhzgaxb6l408";};
 latex4musicians-49759={doc="1zvy2pa93kyn056d5n0irzdq5xmzki6d35zxacxfy19r0g9rwq6f";};
-latex4wp-35999={doc="0xyk6w8jmmcsccbd9q4ikblfq6nacjjyrmf58ddjxkb6v0lzndph";};
+latex4wp-68096={doc="1a569y6vss3glz1il4hg2f6718mj24spp4ahdj6v7k6y7ppa1zii";};
 latex4wp-it-36000={doc="14r86fwhb9zafmyv05pqfi9962dpxj7wq94acm43gv8m2rsjp52k";};
 latexbangla-55475={run="0jh2x97r6j8lrl5kq5m4bvk139229fwf7r8g8xq7n0qywnfdr9zh";doc="0hgcqd8vqq67zzdn7mq4bps3q56ad3nmaq71mkcyricgrkn5xxmb";};
 latexbug-63596={run="1rv43swr1nqnf50y7rxbqw2w6402rlksddk5prcl7618vs4yiag0";doc="1sdmjzl81f0hkmj9k0m57fiw7529ym3430k5sd1q6sbz096wwdph";source="0a9012p4c07g15ysgf2hfqzcll6h5riajylxga326p65k2zv062m";};
@@ -2108,17 +2155,17 @@ latexcheat-de-35702={doc="1cpqcvqkkyb2bf87yjvc2migxawnacx5mva8dapma7hmwx0z7rhm";
 latexcheat-esmx-36866={doc="1d6nk9p9adlhgr28mnnizrxzzqlk20zw2clcddqlaa8pn73dqhcm";};
 latexcheat-ptbr-15878={doc="0m636j9gdfpm4j1b679z5qw5ygbm6jp8xl9dzy6v5zzy695fcgaf";};
 latexcolors-49888={run="1wpa7vw8vphdghdv1ap5ilcgzj5n6vyvn4a6lfvswg2d47s5y1a9";doc="10bbk7bs1km97hpzqzzfasxzp0w202y8w7pwyd465ygr4y19wj6l";source="1j7vfvyj2k4q9drmkmh3mfk1g3vs7czn1x16fx9jyinbdxnwblnh";};
-latexconfig-53525={run="10ynmd8b9b9l1wl1mva23yz4zir53p6r5z31s39wmxz19pj12qvx";};
+latexconfig-68923={run="1lq89ycfsv3bl6kb1lq4s4808pvld02qmjmyz3npaqkwjrxhyy3g";};
 latexcourse-rug-39026={doc="027siznmshk60flxgra7dgzvwbmgwvckwb6r257b91x3rm77anv5";};
-latexdemo-55265={run="1dw7p679126br9gl9pmjcc0f596314h67dzbbq0ypsd2yb0y7x1a";doc="0bnh076zi1mqmvf2x24wp45zndyak6y04z3x56ah0p6z96bg29lr";source="0ddchhzfg9s15i9qvxban35ncavcn8bj0dyhkvr3m8g9farv5mh6";};
+latexdemo-67201={run="1w95ji58dylfa3j2crcxswx058brjx31x6n76wlj9hjv5dkarqj8";doc="1jsszarq2lydblwkwgachhhr2fqmabw870w3msgrllyardp7ycrw";source="0vi6b642k5qjnwa3igll67w0h4r3p7bxxjlajfiqwp06pxzjl7in";};
 latexdiff-64980={run="1z0x59j9g2cmbfwfmc87fpbjy4hp827ic7y9z8q3j7kfh2s3j8dp";doc="1r461j9m6rs38kim7isvi66z176fv1nnd1q8p1zza9b1j1qhfr97";};
 latexfileinfo-pkgs-26760={run="0lf6pkxjqdilg10i3fwmlb1nvvag6c5bm6pbcd50jjbd1q39iih0";doc="0qh84r86pszscg96gri652y6p5xx245lfzvx50qvzw77xn4iv6ra";source="1x1sj91sd5bb0jihvp0qg52q8ybak4flvijj5hdq84jf0bw3gryi";};
 latexfileversion-29349={run="1yy159skv29hp0qxpghmq5zmay9yi0ndkgz7lbllj1ymkgxs5138";doc="0k20c2kw0xarjlkdhjyx9h9kvjm2f3rd98lz097xj8xvk0fs0zp6";};
 latexgit-54811={run="1kg9cbz6h70496snqqa2h9xfknm70qf96xyvnc829k5v34jskmi1";doc="09rlc9nprx6590snfg7gakycsam37wmmscybvm48vdn271vvla9l";source="1pn4gv4prwsnnr377xg2x3kf3kmi8pxgczbi9knzavkd53653akx";};
-latexindent-65940={run="11i9xdar1xwm6fp2bf1c1b6yw3r0vj4x83pa5sjhrgmrgbz4f2wp";doc="0i2i8pm5pr4h2qvm73yh58wqm73qkj346fs87zcjmg47phq8ca93";};
-latexmk-65485={run="08ar9mndvhgwp2b868a3wc534zwk5jc68gjyznzhww2c46mmwvp9";doc="1f60wcxfz5bnhg9700kmbrziyvw5zfwl6nw4jqfxzcvsghxh228h";};
+latexindent-69269={run="07qrhrcq570907kcafq3v7xbif0c3gfrnybg2ibi9rsic4bmf5qh";doc="0psnkncasbascn0jr5p7li8nbwd3sv6a3pp7dmh99092h66wa9pw";};
+latexmk-69373={run="1pdm5p4vvchn535cckwa1kk739ihpllmg1a30b5f74zf6np1nwp7";doc="0wl7d19zsf465d7pb0i88hx71jh9ln1bk6y90z4p0d7y744jlfpn";};
 latexmp-55643={run="03rgabck8mcxnbg1avl638nhxdk6smvyd21v2ns61hx3jn09cpv5";doc="1ad9axqv8h2s2xckrdxcnl8kazpgijrgpxmbwsb3h0hqb3liznsg";};
-latexpand-66229={run="1ky0z3k9lwd2815kn3hxpdhcc92spp4wadc5s4hhjdjah50b6zpk";doc="1za2s4qvkfpqg2s86z33y85lw4vbi5ll52if58dndbg47mf26939";};
+latexpand-66226={run="1ky0z3k9lwd2815kn3hxpdhcc92spp4wadc5s4hhjdjah50b6zpk";doc="1za2s4qvkfpqg2s86z33y85lw4vbi5ll52if58dndbg47mf26939";};
 latino-sine-flexione-53485={run="1k8inj0rl7mhsjyzc39w789jlafqshh9sgy99szxqbs0jilgfb78";doc="1wccb0ksrrysqjp68l3wnf6l4n3s64ny3cvxiqgalrf0mlfipxmi";};
 lato-54512={run="1w70dgmvcwm9jff2ap7s78qgqs9ip4a6dx5wz8iyd7hn2mwf1v80";doc="1fj4n1y16x7hxyd63myk902iwm6lr074rkdybv03qwxl12p9ykxs";};
 layaureo-19087={run="0ggab1drpspvqwkijlj2d7k1iwacd8bihgrj9qvrmsvdlswdjsd1";doc="0vxa87pk0fq67zlnbzbpnig221isp1fy6qp30fphk7igvnjw8v70";source="0mdibdz7hawfmc6bzvk3qfhs22pnmsnvkvvag31p3b4n25zshmry";};
@@ -2132,7 +2179,7 @@ lcyw-15878={run="1c0js52z8mgfbr3lgbvnhc646ggvsvgr7w1mq83lyx0pvnlqm3aq";doc="02h2
 leading-15878={run="1ky6c51dcx0gsj8f6zrwb242d940cjml0gb258ags5xi5iaq40yk";doc="1l31zpglr1bz0gif3w7kqzhd37zpcgjig2ly84fcyk805sf7nncd";source="0f4ayaz2m0y87ifddl4622rpf858zmh13xafp53nh96b8pyvcip0";};
 leadsheets-61504={run="07w8h1wv322dy0b69d13b9k59m6iid53rlpn20ps5ss2j20b62z3";doc="17xbqxhmxc39gxd5ckvzsmhiabsi2afh2r2jv91im8inqfqi8j1l";};
 leaflet-56878={run="04fvi31wwpsnkpsni3r6f9m3vr8b6h71f2znb79aban9g1qvnyh6";doc="0f82hm37i7w547jpmxkl8a2k4f92bw29vdzq4ywwllk2hdcq3sv6";source="0igkl1rjl14raf3xv631c7sn0mc1smyc44mldwgzgnzxxkv5kzzf";};
-lebhart-65475={run="0pxv47x55z5f7xwjxf1vgch6f9ffj9h23diqwrxj70i86ma39b8y";doc="15w1pka1a4njw4n4wq7j8mssgs2rg6h6virgkycgbnwh44f9hzd2";};
+lebhart-68376={run="1234ihmzv9fmhrb5s0c1ria1pzd2qz5vi96v2p4faabksxp2qi2n";doc="066d7m6w4i6gmqmgxdhsvq779mabqai0ix83c97gc32jlhhv1lsh";};
 lecturer-23916={run="0alcmds4ds3m0rpq6r46ff56x78kv0nbdnfn80s9q638pf1vvnvb";doc="0ksqm6ibcakjf2dir19hr066gg2dxa5blfiikr1j8x966lfdjb09";};
 lectures-53642={run="0qdhkf7z1rnxm2ql0ywfk11y3aqp8yr1p9202d4ha6729n5pyima";doc="1xakcm4mmhl4ahnvcpn7k748v4j2m8p6d4p455claqhf7xg4jz15";};
 lectureslides-62292={run="1x61bpgp5ddgld0v05qb5sg2lwb7lzqn6r65imshvcjz1xbwpvdb";doc="1awy6zgj393q0lm195hh8ky51fczm5s19d46fc7mivxyh03w3wk6";};
@@ -2141,12 +2188,12 @@ leftidx-15878={run="05fi4rp3s0s9ank7pphdwxnlnanc2r88dxhyxbz64fb26sja25gy";doc="0
 leftindex-56182={run="16p8n98cw5kxah37wv263mq0jg4jq9f2dfzjyy06sadjwsbf4psp";doc="1g5ykrfix8d6k2cg3nsh6fp5ibpgfajxgf9qgff4s99ir2fgyhrw";};
 leipzig-52450={run="0wml5k749fgx3vq10v4vc970h6nqm6qflg2z4jajph1h38kj2ryf";doc="0znm18pkrf592jfgshmr0d7vk4d4yq4wvj9hqsfg9nrjd4l6a66x";source="1sxqsgahdr0srk52iqdacsqn7sc73iv0n70nsnpvgfsczmxa2djj";};
 lengthconvert-55064={run="0zjyynjlq48sywr5gyi6nhryrp8hcl41q1djjp73ingi2h2svz47";doc="1id32l1ipcilhkk4w9w2q8rfjlk99f5jphvq1hjvqdnhz4q1rk69";source="1zy9bnibswz834k24fk5srl0ahx4i4hlrqv6vnvwb3h8z71izc3b";};
-letgut-65548={run="07m3vhmfyq3y9gfmcwhyz03lg5jdmfpaf4z07ixiq5cq37vmxza9";doc="0fhz5qnnqmqrl2v8ljhw0dh2fkzmmiajkxn6d6x3v1hh0m757vl5";source="0pqijgd8pi04ggkabbi2zhd0qdnr6q33d7ywp020irbwvq78jqcl";};
+letgut-67192={run="0b1vjlh97ra46c906kxxh4a9z9ff17s5kii5488ppmk3fmjnvfwp";doc="1q8hcsqj92w808hbmqk006zd106rvhl48jc8qknk51qixz74yvsb";source="1w4ini5k56qik0yx0b0f0g7n6558w3yqidjsysiap4mn07mcpic2";};
 letltxmacro-53022={run="0p16zmxngzzp9hbg7bxrh087gxj7hg4avf4a9akjkg56834hna5h";doc="1gxldiflxvhy6ca87f8z3a3zzisrwz6f9vrx2r9gsfw72jyfa99y";source="00ykjx412119jxwf1zaz5bismfr0i52psf5fagdiybbshs5ac88x";};
 letterspacing-54266={run="0ry7rri76dgbrkzr6na2kkh7bn0jpwkhh9b5qw0cl5xwyp81rddg";};
 letterswitharrows-59993={run="1b7d512g9gma07n7np7f92qqxijxs2df4h0izq5xffd5jf438m56";doc="04hrchgbm25b8g8d6ywchyijngk42lh7z5gq2g2hnddl7wp79kv3";source="1jabbydsy0xn79p2c9dg605kfrc6g3c25jz72hnq1ilpny9zbihv";};
 lettre-54722={run="13h1jsgjp5k82cq4rpx8gd114l49m1pzplksrwjylx0bzimlzgwn";doc="1w82fhhcdgsxwsnprx2p61ygsyh525im8j1zalcw0bji3i6pm06i";};
-lettrine-64511={run="0n73x5f5b4l66dxcwy1l9k792w8k7fvck708xwmrhqxzz3xqhjx6";doc="069mrypms7krgaydsj1jgi8vb1rvxjd8h49n189xzx3llx5mgqw4";source="0xp2235yv7fdyq5v3f83qp34bwkvsqgz2yqv9mqhmjq51l6swhv5";};
+lettrine-67923={run="1w18c4z4a6scy1d3sap8hwfdivi3lidndg5szjjlc0xxnkrc3iis";doc="0afwbjyqj173n78bjpzn3pb05vbx9ggrafgnv5djvm4f37i6iy4a";source="0ky4fljrf95wlj2yzqnfg34k5cwydvl558f5axwrlb0id8v29jf9";};
 levy-21750={run="184jkjwm17ms75j86njpkr17ipcamca3r5l1fcg8vfv00ffj9fp0";doc="1wbxdyfxm80w3h8bq8z5yavdwdbgccvhf4hm697ss5yshp7l8gfs";};
 lewis-15878={run="0ws9vk38j3m0sprl9lak2sjlq13nalcysk95gv68h90x04jj5zdl";doc="043kmzddal693kl6fds0xl2wwmyzvd9cqs8dmy1jzp0mdi6qw6vn";};
 lexend-57564={run="1lqqn007dpp24jcgpn9fdf7ysb99lgrz9zxjw27qm2439wrzhc1w";doc="1h7s17x7grhdb1hxxg6wql3pwy1w08iywpynymrqn8748s93yy4m";};
@@ -2158,13 +2205,13 @@ lgrmath-65038={run="0i1mag3077fs18xyznbgh3mc87sz35ihz4n5yp243h3c2qg9kyax";doc="1
 lh-15878={run="1k2nn4zpxdgj3b10xdqzldcdbw56ws9735wp0yajkhxl72ms0705";doc="0zvcl1zfbn7qv9069hff2a2r2d33xmqr31l4di24y4p33y3ylprf";source="040n2hbkaypam4fhyb82ncy1sfyvg7fdhykw9fnvy42mlzxv1p3y";};
 lhcyr-31795={run="0civwbn156gky4k51189s9lpqcs06wjr32pviwb1gzsfr6rc7vws";source="1pwlcsilza9f2f73qsvbr2xxxbs2dcms08jxjlnpk8fxcpiy8j6z";};
 lhelp-23638={run="0j55ilp7wn1w8vs60k6iangc9h637f2jrnpshh9glryxj9jjgxqn";doc="1is5s8iqyb41fr2hr1kxf68xrlb8hqw3v1fifl8645dcgp8lac33";source="0iyp664cy3n04nn4499ryzx00sr1iip1qmdlpvjx010r7hq4dyb7";};
-libertine-64359={run="0g80iv04a9zawchks64ny4x7d8rfkjyhbd8gkqfqg6vkkx1nbb43";doc="0qyx1kl3mmzra1hffrvpd4kpqjmhfx94waqkl6ix2i41kzh86laa";};
+libertine-68981={run="19f8pki8i0g10z2sbwahyixcmwixcri3i5wrq3bx1zwbc28fwih6";doc="1mz4lgajz9ij54sgn0x9w2y1ng49hdc9v967ybgjivdidjsfqkhh";};
 libertinegc-44616={run="14fdpxgsmq9dhgl2065rdsp0fnh9h0xcr0jzg4k5gka9irazxrzx";doc="0isvl0ghjji427p1fd1w0yy04c6zjmp058k5gkpsa3xkhq3ijvv0";};
 libertinus-61719={run="00f4wjqqz4hqh2ic8g162mnn95s0p2v1qshbm0zrnzjy2gr51hi6";doc="0zkv3fgkirq6jcz7ywb1sjnnw8vfwfgd3y41lm4ds547ra8zp2q6";};
 libertinus-fonts-57948={run="0izp1qihx1arqkgbdp18ks0xz7jlyd5cc4r3d5nhdnpph1nry9r7";doc="1zn6nlpr95syxmijr7w0cljq21qfv09b2rp8j6n0rvyzm50gc4fg";};
-libertinus-otf-60023={run="05pvwhvn8x72hivbkinn0nkjscvs9vc6m5d55jkbws2abgh18g6j";doc="1i7bypqfgwq9dl05vwk7r1cvsis2h8n6r8bs6dvhysxf6w1mw7x2";};
-libertinus-type1-64958={run="0mlr412iaqnw74c0k51faanypf3syqc9iyz0a8xfw7z9ibg513zr";doc="12gqkljgl6nxplzk2xb5nfgh7fhfdipyvs7pc5rmbk4hvdp2yfw4";};
-libertinust1math-61751={run="05wjf6gqc6c3m599wlxshimzdz8g4wbpix0c1a82rpqqys364lrk";doc="1miwg4m8f0fpxksdc5c2pwy2pkll79mhirj5v0ppc1g0yzxis31y";};
+libertinus-otf-68333={run="1gxgz9lgiyw9n00ss64bb5zghzb5hzli6s8znkaq6fcgnvaf5ra5";doc="08xig7pz9322x5kz8l4dgqc74hsdzrhnxp8kz577gbkg8mi5rsf9";};
+libertinus-type1-67450={run="1brcmv3j109909q5975zaaf7slnzqcflfqzfmxvbaxychwm56nds";doc="0v352ny2961inklzfc2jn797f443dmp7hk0wn7s9dzqnim8rsr60";};
+libertinust1math-69062={run="19yyzlslc3qqk80fdk42ibyb6q07w3qp6ax0pn7gqmw44zlr95pi";doc="0nmg81gcll8z7mr5ryxp93gvja60ayynb1s135l7l0h73s461lxs";};
 libgreek-65004={run="1wazhir2i0bwh8744867akraid5cz629yjj6aiipxm6gjj913gy3";doc="19wbh1vjycvplflzkb79dr3ha2115jc8lf0vjrxx7qvnjprygs8q";source="0d8x32jq6fcni0g5qa0hcd3vyxj5fcqa9yg3m2bfb049p5ms7s40";};
 librarian-19880={run="1rri0fb9ssj413w1g8c7p79hn72gqzncihhhg3ws3ldl9s3nm54d";doc="1i4m0gp38f64y59zcsyg2j7bb6zycyf9z5yr5wf86l6kh40cc2fq";};
 librebaskerville-64421={run="1d98h5gyymci1vny8877pdq7nr0vvv8878kcbahvkijyn5gwwdx3";doc="08rds9g231kqmka2dzv03sj9dwnrh89rhsbfqffpzrwsfc4fqld8";};
@@ -2174,15 +2221,15 @@ librefranklin-64441={run="0g6vlivwlwb56mm9a509xfssp11ir60cvrd9cp2hv9ym93yqkcgs";
 libris-19409={run="0nprmwx67zbq7xhjbb4xiw5da3i0k958zvb3z32s71jdd6psnphr";doc="1vg5jgllfxh3rdqjvgmzn6ak887ar7a4kc1k5cwwwgmgdsfam1zl";source="1dfm4q73p8q8bgn33z025sgna1jq428d5dvmfagjjwc7sjd93ncb";};
 lie-hasse-61719={run="1bqc4gpk1f5b7afsqii6ny1xyh4zpc5347v0xv618svjh7dpyzpx";doc="1jfrig40w3ac4j6y8aiwjyvsv9q8lvgvn1977f2yg12lsjdzcpyg";};
 liftarm-62981={run="1g1v61iahjd67fjdgr6d6lag9yjqvix0b7m2aw1gc9bjzlcvpd8d";doc="1pxhbcg880vnnmaz53ifpiv17jsr66i81nzhnb80d4cn5jlxklwn";};
-light-latex-make-66474={run="1rjnvx04hcmiwzqg9gh1l2w0vnj0qfm22snjzm9hi7i3sj1kx2ja";doc="1k9c1vpfv08zwgl9bq3wd3lxd5rddfb7pllnzcclx7002pdl81vm";};
-ligtype-63577={run="0iqwvjvg4vl801pbv31vijcq4yn5dxkbrhcjy6pqd6ix93grw8fi";doc="17wk5ryjcnsmljfkndy3s884yh73fpv6dwfzq0a3f9hhpxak4pf1";};
+light-latex-make-66473={run="1rjnvx04hcmiwzqg9gh1l2w0vnj0qfm22snjzm9hi7i3sj1kx2ja";doc="1mjmsg5mgz3fyn6v65iy75jz9jvdv4bxy8lqsgiifv1c5660lgzb";};
+ligtype-67601={run="1xsdzgcbmn1djpvsjak0bav7vvaa94rc5byhvhajfb5npqrz2rn2";doc="1yjsbj3m44cj1lzzgxkzl1wsapqfcjh6dfyaqi971k79zh9420vk";};
 lilyglyphs-56473={run="11mb49rcsi051k7yd7s02k9ca5g4mmifdjx1nqkvs6rl922wcyki";doc="1wl5ppgazb27s3wxgmz1xw8cwwmnnn0s582k5swx8qy91qdl08r0";source="0657barhxkzh3jj3b8rk5rl9i47k2h0p1wa2vxj00fdfqfdjn161";};
 limap-44863={run="1hdv2rlvxbqm2wnn3x2xrmwxpwbs03qnlfj7k1s8mfpp5smmhd2i";doc="1qj9ddllgvm9zqjvfdgg2sfdyfzpp8raf8n1l0zrg9vpiy2imdn3";source="0l41pd8xl969ax257lrcnkxs0pzb3q1fmiy8ijz9jfrval3rqqbw";};
 limecv-61199={run="1j1j3n86gvvv8jc8wycmjmnx9ci9w41w38fkxjsmx2mvc8frsi2z";doc="0d9gg2gf16pynh395sfqyr1bzj664snv54x9bb5a3zck3b9kbga1";source="0m0li0wa9pk2p5m3gqzr7n78qglz68akw7f5nq69iddqwh5r827b";};
 lineara-63169={run="05g4pmwnwmlh9zlcn3g2v5cpxr0pa07xr5kqnx0gb3ij32348kz7";doc="10bl6r0sa41hnyf8c6hgwgji33jvj9zy1k39lk168xv2wzkarml8";source="1fgdbxkgph3x16axccx29llckvankl51izxk825jswbgsxgj52j4";};
-linebreaker-66465={run="1xmwcx267xfkz4car7rdda4fh7xj2m7kg4iadxrr2hdp53l8lpjy";doc="0rk3hkbnfvqprd91mkakap6fslcrrs9x0yr4bmh06ql5w0axbfwh";};
+linebreaker-66639={run="1v23krvl4nf8pz1p2hl7d9pj23c6c8zw7hgcacyjvzd8sc22jsi4";doc="0prq9r6acl95w8cjrmzxlg3hxiq1qmivl0sgdcva6992smmls68p";};
 linegoal-21523={run="1arnfkijq4324jzyq2sn681rk9ncbgv6zqfrvlbs3vic8wxj5c20";doc="0mjpbkf6vw0n4ddd9abrah7rxf51gmgayspy6jpnai1wrzv0aby5";source="18v5r4hj2jpqay98njcyijwvrbc067c49jrhja6i52ddj6h9q4wz";};
-lineno-65586={run="1mffkb1ji1dgj7li9fgvvdy4i3kr4sh1gvyanmkqk2rd0lcjy2yk";doc="1nkcqz4i4bcx1id0545rpyiqnhx4dzm6vx1qnwjzxslwcv8fa1ay";};
+lineno-67171={run="0qgm0wlsq04w8cq435px8fxp6p9k064i7j42dgi9xx40fzar0k7c";doc="0clfrg91m97ija67d7ykd3yp8r2zng0rl8hrhdi5hay3b0wfcs4z";};
 ling-macros-42268={run="1qr7bpa2wcp1hqx3ckid8h41lp8idhqqnnbdv42j2nhcy6f409wf";doc="0lk4whkamzsf9mriiz06ynpp962w5473ppf4n36q3bb13amyp5vk";};
 linguex-30815={run="16rqzqipzng4xd7yz3i6416231cfphqbwq8n6pfal83awzd660jk";doc="1l0m6k9adq0zr88zbqrj4jl286mwarr6fiy4181bwxm9w9kkxs04";};
 linguisticspro-64858={run="1aq5sz202hipjbimm2n8krb78q54ybjyxbymmv1nxdpjxk0hixz7";doc="08pbwqz6rqqmw814c54g124h6ni6bpb39gpd2ibp5gxn21agqa2y";};
@@ -2192,22 +2239,24 @@ lipsum-60561={run="1rfz9f6gaha6ccx1s5kij2zkwdkm6i2laxv5r9jyjvsawqwr0lam";doc="07
 lisp-on-tex-38722={run="0g33w5hwgpw7hd62lij0h5n89n9r9ynlxswb34j0aqf3x7nsdh8m";doc="0rgjcldb2rg330cp8m5vxbi380xla73jb36nn94b2awl4g34bpvd";};
 listbib-29349={run="09rs3zkymlnn9fgsclnfpn1mrmxnqy8kd5pmdiphlga1iwfj5z11";doc="1nz6p8z4yvh91hvk02y184xl6fd8pyjlpjmlv5zpmcjillv176yj";source="14jrkykx2myp5fghh9qj66i5g291azm6cihi12c53bv1ijcyl1ik";};
 listing-17373={run="0kpf5svycd71r8p61y83wx1k99fwxm95qz5fbnqkfrq3c0113h3p";doc="1zd0mxh0gxlvqrwxvycqr5yzs5fns0hrkn6g6b4m1v6njv2f9lna";};
-listings-66233={run="123agzj0xmm4gprrdyj5223129qd360z5vw57s93d187hp29byrh";doc="1r3yl3z8hpdqsin2xld6xs6ywdk0k7ykc62l68bbdasc1bw22ccm";source="1wffwc76c8xvc95yg72j7z1iqzij8jzq2yz5mqc70mivl0amqcip";};
+listings-68476={run="123agzj0xmm4gprrdyj5223129qd360z5vw57s93d187hp29byrh";doc="1r3yl3z8hpdqsin2xld6xs6ywdk0k7ykc62l68bbdasc1bw22ccm";source="1wffwc76c8xvc95yg72j7z1iqzij8jzq2yz5mqc70mivl0amqcip";};
 listings-ext-29349={run="1r5nq62k8rwllcpxwpkh2z0gcb1rlydp9nry8wx7r0h93hbmm2z7";doc="0jyk8z0nsdx2yljly8nd4g8wnw7ggi6mdjw0wb7y0mb5wq47sbpp";source="0hd117168f5s1cb2iim6y198lnh05ph4ib7p666yxvv48wr0mfpc";};
 listingsutf8-53097={run="0scs9dnkl2hj95zgjiggn2ikq2nf62q97nnml3hbvmwdargassmh";doc="1s7k2gr69xlxln2yi5wyvd69l2qa8v33d92b6ahgxxpid3437prz";source="1bq197100f74sal26w0r4iv6ys2qa1ylbwbyw3hm9dlpb6kmdmgq";};
-listlbls-34893={run="19v8vx2ffza3icqlj0y710zc17lls87l3k2mkj6lc28qvz0kfp3f";doc="0pd3812k1rqnq5hmsrcj32x9fk72jw1j3brcm8ajiczgv5f3gciy";source="0vic2ffczicfdifdhd34ysdzcxprnafs4k9dpjlnfgfchh9jjwqd";};
+listlbls-67215={run="0r5ns594dxmq7r9pkk2hk482caapfdar1gwbdi6fw396pcnpw8p7";doc="0gnc00jv99rvf892q0sncr7l5pxpndrmw6qsxfbnyb38yr675fk7";source="0s77rh3480i9w06a0nnc7l8gm3w1s6bik4nl15idb27h5a5fq302";};
 listliketab-15878={run="088f2lm5lfbns7hd1m06f3zn1cjcbaw427z7zl5n47ahrvcz9p94";doc="1llrdgxp9mghs51sz4jjhbdllzlr1xgnfskask532zwn1cm6f4vd";source="04xfgaqpcskx5m8byysvd2rji31km9c6cbkfzf3ybj4a5bmbnq58";};
-listofitems-51923={run="19qh891v470h4617fj9ajddpf119qh087ng7ay9q73qhk90fhs62";doc="1s7gl5ai3xdpj05lxhj80hc1i48x2lhcanwh4v3w10yyzf13axyc";};
+listofitems-66655={run="19qh891v470h4617fj9ajddpf119qh087ng7ay9q73qhk90fhs62";doc="1s7gl5ai3xdpj05lxhj80hc1i48x2lhcanwh4v3w10yyzf13axyc";};
 listofsymbols-16134={run="1qp5y4rbnlpaa3nghlxjn5yzhskvan9rg0g45wqmg6yk9sdll5b2";doc="15sr2n0bsvwz6jqgyspj6kxg511jy3fr18705pyp815hg4maxizp";source="1sjg64imcxxqq8bsqm98954g47nfambr6vsyizkz8zqzmnr5vd80";};
-lithuanian-66465={run="1jjbj39d4idfsx86lmpj0w1k6gr6mwr7sxvcm8wag47rgd05czcf";doc="01r1wraa7jgvblc3wrdvkhccp4ba8ps112ip1v31vn4wbnlvdyax";};
+litesolution-69115={run="0wl8z1zzxakbr6ackc2izfzwkqacfznvm5n96gk56fnqjlz3d378";doc="1d9ciidasiqw45m9iha7j0vnr4wmi7gq7mdm2g6lj17q5dick3i6";};
+litetable-68782={run="1bil3n27ajahpd8zmwjz6xab1ibc28slg5bicb6x5yzs5jppqi4m";doc="1qv6b6qjrxvv7sbsggky3mylnnp1fzjvbbk32vvmnk4gi1cnm264";};
+lithuanian-66461={run="1jjbj39d4idfsx86lmpj0w1k6gr6mwr7sxvcm8wag47rgd05czcf";doc="01r1wraa7jgvblc3wrdvkhccp4ba8ps112ip1v31vn4wbnlvdyax";};
 liturg-15878={run="11l8ccpq2mcnpsfxry6zzjihj3s7s76p9plh7afprd7j2nnq1a79";doc="0rhyz3162nzh43nrxwkynr45i4w5pqb5ip53x5j2k2a4cb4k1z86";source="1hn89rf3xi66bfc3kzwbvllfzrxr62gx60ywbh8gkrw813n18lll";};
 lkproof-20021={run="12bj60lfqlqvyk020lv1l6iinvqx4cvd6lfz4vhblfx3gs3xmcqf";doc="05sppy6q0c2iangbzmxv5qxla8slc2k0fx62f6n2fg1ncgvfl7qh";};
-llncs-64299={run="1yb62rx42ap1xkkf05p4y3lc7j3ci4czwv94baznpirfjvhai3xn";doc="0is3g7p7xk1z8hvaxffhpi5w98385n7kzr13cl4klfmk2y96pqz4";};
+llncs-68731={run="0mnfvhnq8wwsaz9yzw3a9mkc4xnmq8ihkzhp1md0v2pwlzsvdzlr";doc="0bpbvp85v3qqmpakyp7yvm1vbibj9bbca72v98jr9f544kd97qzx";};
 llncsconf-63136={run="17x1sjs86vl03dxcz3qbwm7r21hmzvsvsr9qa0xii8fvp1yb5pxz";doc="1dq0v5wczbhk1ir8fl97c53sinpqnvv9v1hff1hzc3rhbwh5smh2";};
-lm-61719={run="1b4lc6ipij5iws4rgpv3sjjwrdbaxnwiqdbyyj62jzc3yk999m4y";doc="053xga559cmqggdifabingd1f7q1lfad1pkk9nmkximclq5igg2d";};
-lm-math-36915={run="0vsmzr71d5iqhr9bwjnp7khzlg939mvfnbg846854cxk8wfm9hzn";doc="1j6jcki1hxdr17njy8sfpb82mxh6bpllccf3hnjvylvpjf45nxm3";};
+lm-67718={run="1b4lc6ipij5iws4rgpv3sjjwrdbaxnwiqdbyyj62jzc3yk999m4y";doc="0wdnpnsbg4gvahqq8lv8ny36xwxgph04sjn64pl34srn2pk1jsxd";};
+lm-math-67718={run="0vsmzr71d5iqhr9bwjnp7khzlg939mvfnbg846854cxk8wfm9hzn";doc="1j6jcki1hxdr17njy8sfpb82mxh6bpllccf3hnjvylvpjf45nxm3";};
 lmake-25552={run="1fk98049965cqqyzdl3yl9iblk87gwwrfccr5jqpdm5v6m8mcwrj";doc="19yqngjn320sng4pg835rffk6d2g3c5wyma46x1jr0bccv8s1990";source="1p002ywz3pxip5v4cd346nmpg0gi7wamlcl7bc6f4zvzqp0cg41g";};
-lni-58061={run="1y1g323qij5xdjw1c4n31lkzldj5bkfg5k1vs0snnqppmznp4afg";doc="11q1sfq1ks61fjik6wq99yqpc2z5crxdw87pbv3khb3i0m3hfkqg";source="0l1khvrpzwsg26ldxfx97qv8q03g100iq27lp0wr2qqqyrwy7sb6";};
+lni-69361={run="1slm6l0jjv9ps8qzs5ld774iibsqm4bi916pyypi668vpf03dp1m";doc="15125l53k3v5g8gg4x8i7izx2y060r2mpqs9k60jxn4ljlmh0cpd";source="1wlvrxfj254ap9vh0wnzana3i1wryqiqxwff2gh8lrh4nh3yiq01";};
 lobster2-64442={run="11kx0xhhklgrj3rhc5q3c5hi61444vr4936fpq1nma1yxn7mbyfz";doc="0l51mwqiq34v22pa4rjj4c6q7w2x9acdfy02hb8gmn80i91fijpw";};
 locality-20422={run="1b6xi8zzc9x8bc54bs2s6ryn7g2zfpy1zsdddlx3j8kvmbmgv6j9";doc="0z0vrx1dy5qqgb2kx08qc2r06ljqnfsgiz58hpy6ylnlyay39ipl";source="16xp8pc62jzgcmdhqpmfi54y5aaf7mx6bqgwslpwixgwym0i69qy";};
 localloc-56496={run="0ynzcib8hsflpjhykfl348pmc508g4i3ig38wjsb3gfm97mlhq24";doc="08aiqc04rwinqr510r1wkzz43qq4nks1varmxyjbnw9acndn94ak";source="1wcl06i82xkp6m5m311pn1ax42avlp6n54ad1j450apgygdszmik";};
@@ -2216,10 +2265,11 @@ logical-markup-utils-15878={run="0nc8kgyplffng9429h0g4hynlwwxpcvnirxg7rj62zcjcg5
 logicproof-33254={run="10b55lwrrq1aqmp9njiabqg59xdrd5g8skbcrlhs621s1999dq2g";doc="119zgxwx0q6c4ghpb30mvpdwrpr0xvk54hmj6qfpih0kxj0zp1az";source="19j00a28pz5dp29sx61dnrpqyl24sx9apf2ck334ap5sw7awnc70";};
 logicpuzzle-34491={run="0zsg11lw5x28sik6ifj2v1zjvm3pcv4vf7w2pfxcr395vmw33qm9";doc="08vgi2s2cy09dhqdmvmq1ijlw83dgjd7xjfdhj28vm9ny16zmydz";};
 logix-63688={run="0syvhp2zn6rpmg1v92k9df0q4kv79flvj93m7761675fb8jcki0h";doc="1l7kyw1pjr4bpj33sy2dvkb1fvl39pb1mbvwz29w6k4038hg50hx";};
+logoetalab-68916={run="1qmw240mqsh2s7l2r8nvw9xh3zwa99g01szjaxn94d92hnqmb4r0";doc="0rkj5gcp01xcw6d3vascvp3nw2ng5gxi9znj81yasgw09w2qyb43";};
 logpap-15878={run="0xrv4x46m54b4gfa805naab6fgpd72fwqnyjjxw0idy9kb3s3x5v";doc="1zb6qyxrqy07m65i18dcli30gb42y6c3ffr22cpxa7r8xmaprcg4";source="07cm2gcnv6d7pzc9d2v3bdvsmykqf00bbw177mqyjaq1chc0xpna";};
 logreq-53003={run="1zj1vn0yfklngvfvcr0p8hchar220lwfrznsq73jbw9zzjx47v4f";doc="143b5bb1jkc9j1gd46c28q4zq8jlh9wrngjw8q4prw5dkfnf1s8m";};
-lollipop-45678={run="170q59wqy0x5zhziaycmfglv1wnc5kf252ni1r4vgrrs3rlwiirr";doc="1wj858kqp27amx3jpndsqma152r40agfymh9ah8s42pn6kfl4dkq";};
-longdivision-59979={run="1hb76ag0yp3gy7jyyjn8gdmgfln6s4w2l9gji509swbiwpf2ab4g";doc="07krj49i9bbajradx0x2h08ca85kwkqxcx8wn05nirfqwdmm7acf";};
+lollipop-67930={run="170q59wqy0x5zhziaycmfglv1wnc5kf252ni1r4vgrrs3rlwiirr";doc="1wj858kqp27amx3jpndsqma152r40agfymh9ah8s42pn6kfl4dkq";};
+longdivision-68609={run="1rnbw3y9vzs0nqyjw1qdj7mbiy1mk9l3ccygnn65495smgg7h7b2";doc="091b1v1hwbifv426w1gglg273c9ck0n3bzj3xl9hhl27x1qzxjcy";};
 longfbox-39028={run="1cm2zp8sina312n72bd1xza75yi38n1s2ach2f9sjxdx0m5c3ywx";doc="1wd6hdarh4nm6x4qn789flnq69gq5p2r2pgybsynbna7ywar0l5x";};
 longfigure-34302={run="09pnqp0jfhsg7i8z241ggnx04j452zsg1zqmwy0i40fp2s36a61c";doc="08y2a2922zk61iirlw24kdsf473sx0b44pjzxihmpcrf19vg2c12";source="1p10y4nwz9wj321mf36avl3w6zwvspnb9cc92h9jf4iawnqyp8p8";};
 longnamefilelist-27889={run="1nz5n1g65fs7xxd4l0c9xdr2z46mxhb0fkmf5id4hrifrbl3jxbw";doc="1v8i6ax2qwz7d7mi0bnpyllbqyksdd749s8pr95jfw1fhi07i5fj";source="1615gzf3rjfr1nlmpgcrvmlzhif13g3kn210xq8p0vsv20irnqa3";};
@@ -2232,7 +2282,7 @@ lps-21322={run="146a42clkjyrg046bz43b2rpvz3i2dvhcsd132bzc76d3x0sqps6";doc="1nwn4
 lroundrect-39804={run="0s44pbvm6iwl2jyffnxriqlmpp6zs1y70z4aix8wwfasx86gq131";doc="01ncbhr1x995763d1dnarhy56d7mq3r8k1b56whqs6kq55115w2w";source="1sh8ypnfq4pwaqd934vdh77svs9d3a4114vghg6m4sz5fxh11i39";};
 lsc-15878={run="129vlr2gnirf47vs1drcsml3w4jcwg78hmya4r3nspaqm00b17gd";doc="09faqnv9k96nwjcvgmml9f02vdj5hadbmb1lp59xk6jikvybv436";};
 lshort-bulgarian-15878={doc="0qg23asq2i5mqhp9xblv5hm3qxmd5886d5x0gq1fkdbyy9gsawi3";};
-lshort-chinese-61100={doc="0455mdpcv3yg4m5vrbdp47j7mcwi43mvsy2p9clp7794agaf2ir6";};
+lshort-chinese-67025={doc="05b9fq4jhh9xifn2lj58fs17fc0prx915gwfz47s92spvv9fwbi6";};
 lshort-czech-55643={doc="0ar9qa0cg0mjv6ydgx1phaa1qpiy25s3jciznbylgi5xprvnnfa9";};
 lshort-dutch-15878={doc="160r060gmw6f6lgbnyvfxafjpqvyr4jwd56ddkjfm3ir2bfl973d";};
 lshort-english-58309={doc="0pzqdbzynlwvpamd69cmfpa8jdcvq96qjr9k1fy3dxpzi2mapvhd";};
@@ -2249,7 +2299,7 @@ lshort-polish-63289={doc="121y638k4f4pbjpa4q0n9qj2w57624q2d1v4jz09qh399fl5yk81";
 lshort-portuguese-55643={doc="0wg51rjcayiizkz0vvjkirrx19q8fbnfrwilgh13prlbpams1hsh";};
 lshort-russian-55643={doc="02abh69xl43p56fcciyan4j0z4mqq2j7ynwazq1nywhz37d6zn7y";};
 lshort-slovak-15878={doc="0b5gn95i32dyn8r7v2cdcz759fllp3b0zwx17adjs282n06vfymq";};
-lshort-slovenian-55643={doc="0cwjg0z5vr4x93bz1khwl27rk8k7kpjm978iyzn6w7gx3wi87zr0";};
+lshort-slovenian-68204={doc="0cwjg0z5vr4x93bz1khwl27rk8k7kpjm978iyzn6w7gx3wi87zr0";};
 lshort-spanish-35050={doc="0ls50syrg3dl5dl5a3fi33cr9j990l2xr6pribn1vqglsqrh191l";};
 lshort-thai-55643={doc="16r9gx902a342q2mj570y269yw97yaj6hrbqrk4h49ihm695z30i";};
 lshort-turkish-15878={doc="00r6pv4z4933jw072djdasd2wp5j05wghln62ga4g6y6jblf6zks";};
@@ -2260,11 +2310,11 @@ lstbayes-48160={run="1kpkr8xd1k1iinrp1ljj1wjphn0c58l8f6hci0axvxdklr02s3h3";doc="
 lstfiracode-49503={run="07fdzwb4k0dv2mf6yl31h58i61hmw0gfpgrjdnz3v2rnw1ip8kgq";doc="17a8sg0srw7096r3h7qa23msi6pq0dagap3a0rcpclp73z3gh3wh";};
 lt3graph-45913={run="1w5n9y7pqy5zmn6w9bx58nnawvhp5467d150qxnj3c92gh0qbj5i";doc="157y7a7gpgm6dc7hawdhxr0v3ns5kibykhkg3wfb5r5fay47jj4n";};
 lt3luabridge-64801={run="12j7x3r286rsj54h6l0nz3ilnf5fnnpw51dbis20bsgnabpia55m";doc="04k331s04qgh5hg007fs5rhvg9cq0bm7l9dcmkg1yj60h4rpcnim";source="0hyv4jk59l7b1lrxcvkxjqbp1sjpkdig5926lj3nlx0ih39zbwpa";};
-lt3rawobjects-65230={run="03af8ax5c1qpq6s7yb7kq29q08cgn7pi1pxx8fylqsc54arcdpls";doc="1fsplmg16vsjjwc33rw4pvg09l8fiv7vjam4gvan4rsb4wgidic1";source="0dhd0xrzfci419f65xy0awvxld8wv0iyhnzw5i47syciyffd2xhg";};
+lt3rawobjects-66619={run="1k65hvwwqqw26mqm248fd23xk4bgm864bqnyc759faya84ib8n0q";doc="00l496344la7q8jz0nr895cxir6zn5pcjsn16mc3cd7lpiclxs69";source="005iwxrraxmirspq3881mc2pb8iikc71p4g0dwxbqp38c8v8djb0";};
 ltablex-34923={run="11gazci0c064iav6124v4szdbj38anqwnfgh8pfpdq9zff0h9g5n";doc="0jjd5f3r67lrbl4vyxjakm8l8pdrw9vm1dzhl5305ga8vvwb7gn2";};
 ltabptch-17533={run="06ww90fh24s6lmzyvmqjh5gcr7vp3lq6cg9q6k6194g4kay6yx5i";doc="0yb41cgqpgcxk27259gfz14v9bpndjg51i9nmwr1qwyvaqd6jvjw";};
 ltb2bib-43746={run="0glj7g6zyvm08paszjk45kp65aac6i3f8spf6zn12idf1h0b76j2";doc="0j1p6bcwwgz00n3wyv3vm02z295sj9xf93v946k1xrv5jc6pg6lf";source="0g05r6b662jx2s2kal26b3lv0dd6r54fb8m09yv5d021y1fm2nqg";};
-ltxcmds-56421={run="1lr77yai2qivlx26s5094czpfxmg96bhxps5wbm8xn7cpsw0zbd9";doc="1hxclaafsgj1wiw1hrqzn6p227x22wp679z5sm8507wlys53v49h";source="1k1kwmyn2k11bn5dp3cx8wjdiqrnb0f84rbv8xbsba199k51ws86";};
+ltxcmds-69032={run="05wvxr5bsrfgyy5aa0mrxqw0vi8m1ks5ma6fzlf8ngnbpihr2ggh";doc="0jnqvpc40mazy5ka1451w5rdcsl5q6rza3dqkhqpf79lgiswxgc5";source="1p7gzrhyiaiid1mpqfqlm6jfamdd8bvxx149lsnvhnxh3mbxlydm";};
 ltxdockit-21869={run="1krcr5qlz0648ibj5c1jd0y4rf6rg33r0clyvdjm70kq26y1lqww";doc="19jc49p978z0hrx7p19h33nc65a7vjhlrfszwvr6mln01la3ivmq";};
 ltxfileinfo-38663={run="0f11qjq1a3s5nxd7z9k19yhbl5219nn4fr1vfcqq1zs8pwnsgqzx";doc="1qjs959a28cqjigdml0jgyhllyxd5kj276akz93hdbcd6gzs9ss5";};
 ltxguidex-50992={run="0qv1p01y18ia4w53dvlfhdrgy1xsicaigcas33xs6yqipr8cwgkp";doc="0j4h20bblkwgdjvr2ihfy32mzyb9parbjgiijqf9sfg2k2p7xpib";};
@@ -2276,7 +2326,9 @@ ltxtools-24897={run="0ldvvkvyw1khfvg80ana7wj20917sjzf0lsp4699hf4jvw71w6x9";doc="
 lua-alt-getopt-56414={run="17czrz46xlbj3xkh4jwdq269mqaq7165kpkhhqa498hrkcgdgaak";doc="1zfwvs979c7s16vpv2k9l81mcmm9y4qdjk46l8ik3123dalchv6f";};
 lua-check-hyphen-47527={run="01q4j9bb19lf838pd7l26rkz1xr7mxcx4fsgf5xd4sdif18h56qk";doc="0iaihbrppn1ap7bqvn37rk8b6m4lwdi8w4zkshiqya1mphhsfjg2";};
 lua-physical-59138={run="1rkf3cgzw6lyld82p8crv8h3swk4acq7b0i9c20q5dksrxcr7vmh";doc="10kzyj9k5fqi0jjkah3xx2cgn1ssvc3byihvs66qpavd2gz25vg3";};
-lua-typo-66516={run="1nv8pm3mixk8msapvzp39rv7rshx16c83d1d9lfb0mfz00kkdkq3";doc="1rhxqjhvfgi9psjhqmc3lrvp71ppmrfw0fcqq65cxnz2a3490smh";source="0205hkpa8j4s1jbg134v2p38rly54an45gz580z5df8d607hisil";};
+lua-placeholders-69404={run="135njnv5czy2fqyjchkibxnfav5m0lbg35z3k9f0ag39qf7z1ci0";doc="0m9rivk3gcbf84z8jp5pj58r88nmjmcm1w122z18q92m7kmb55f0";};
+lua-tinyyaml-66776={run="0wm23v7rm1mr2l10cariiyzv8f64aq0ms154md2ww9ad4qmsf3km";doc="16990nj13x5452c5mb8ha4hy6n1iyv2xsjqgipv27dhz2g176qy6";};
+lua-typo-69403={run="11g42k7431rh9ih81sl6q331k09l8cy1qw2w5n687736hvv65wak";doc="14rs9ds0mw796rawi4vwq73apyswvy6zlml36866pzy2w8mdcfv5";source="0kcjlddqjvfpjqrj690dwkzjf6b2qqjc7ccix96hzhb37sxmm2qf";};
 lua-uca-61023={run="1klxyb2iw6mccm2dlnpk947kim6ysvkykz69z7crf6lyzcy6lmvb";doc="1605lw450b64xx1a6lxjh9w4jda0n3d0b3sfvxl4wngd5y2jckzg";source="0z7fgyp7dh4zkz48mkh49pngaiyd58ckm0ipd3z626alz4k2jspq";};
 lua-ul-63469={run="1yj9044y9xk5kswl7vb1h5fl55pfmjrq2qnb2caym405pw0pn8pq";doc="0757s68bdvbaqjs0a9wds4x1sxrdabgi7s6jx1ibljb2wndxvw60";source="12x006v3z95ygpldh5x394h2igfn0d67bgmqqh40b5zall17achy";};
 lua-uni-algos-62204={run="0msiywf33b5jpdzc66wyvnklvmvs4cpfq3f6bsplgi22x8nvdrvp";doc="1sfswdkhbjrjd4cjj95lbc1sq30j9y5xi35lg3mjfpdinq43wfr9";};
@@ -2284,57 +2336,58 @@ lua-visual-debug-65464={run="1yby9rmhq63md8cb58qvi4dzlvw7hnfqicmkrap0c4qamva1aal
 lua-widow-control-65084={run="022g3aff6xj47wk9kgmc7l07n66milxyxdjpxhp0a5s1wcppf3y9";doc="1az40nki14y88hxk44lfl7czvfhz9lkr3lfikyf2bnjwl2pdmc13";source="1cdpa5h4qd6dc03pjyisib6hndgbr6rxy2ngicfaqwkk25ybrf1r";};
 luaaddplot-62842={run="024k6k9iyqiw29l614n0rj0k32y50fgisd2g1abfis7lihc1nlv0";doc="044yp2522hns6hshlph91c990lh43bwvf40cgkfid47mi4zr79l8";source="0x09ac3qlz7p27nm478lcawdrj98622527ba4rz7004b5p2d8w8v";};
 luabibentry-55777={run="19rvhs12gw5vdq2vvcdzbz4qd3y87qjvl9x4bcqbncqcvwg82cyk";doc="1raq564ad633c0xbwx6r9hhwmx1r7vis283rfh67lixq3prl0nfl";source="0gqbmg1c4wm57ga8gx9g00dfbczfvhqsyl13q0ba451d3kmh6klg";};
-luabidi-54512={run="0flk2g56wfdsc8330grmpgxxmik0sgq9vbw2r51mlzj00dl4wz7a";doc="0qdbn058p7xlr7s7ivaz4pf0rw4w2lywfxh4nkrr8lxjlszbqsmz";};
-luacas-65042={run="16ig5cwgj6vfclslhx2jbdm7a688577najfwph2csckrksblgl14";doc="0dqgn8g3gllrh6zlrcq47h9fgj2mvmaapinfcwl1gs4kcq8n7bg9";};
+luabidi-68432={run="1kfyazn8v1ks5yvac4x5cvd42i8li0sgv00plj92c2m31hfxw2gl";doc="02387g70qsxs7km8dlgibyx080jwwjg668j0w12v3hz67jvg5ymk";};
+luacas-67247={run="04507iwzcyc2xgy6sfawzj6l4zrjq4iaqnb4946hdfc4nbx177mn";doc="16h9v145l1kv00ipghfdjdqyh8giq7y418664806h6gv812af7yy";};
 luacensor-62167={run="1n1dgnamm5l3hqpbrm4dwgsayqmr99m41iy4038s7mfzz6dkf0g7";doc="038838s5p5ynvxycdhassvkq1vhpv823bfr5ppir00zd7mv8c7b5";};
 luacode-25193={run="0qk8vadwymhcm7yw3sffdh9i171hl8vg07j1b5gbsl1sa70cpam1";doc="11d6ak1dvdx64k0i12k4c5kh24f5vqy0ihvj9a5lxa9gqypflrga";source="1fafh2nq66cz01jsbkb0mk907sppahlswsbb35pa3q5j7iqjzyav";};
-luacolor-57829={run="170b7537yv0c8g2raar6yf5npnbf21blp16vc75v1x1196mblz18";doc="0vcjrmxqc67j9kkgm3yqs78qndzskqnbjlwgrshdmdms6lij47qj";source="0m4hzd0rhp9vychlixr46kx7rahqvrrfi2cx5jl53gr0w9gp1l7i";};
-luacomplex-65833={run="1vcygnx4x95g1zcv3p6lj69p3r33qpr734rp59bzy4ll3gziarw4";doc="0nwlz1587z0cmnkdf00gmbmy0wrzf7cfhrcj6xqs64fy6hisj3yf";};
-luafindfont-64936={run="1yc07jvagnxjbm9ph6bgrwj2d5il8vl42na0bm4mb4k2zz4yq9fr";doc="1pjapd9k28nfiqgpryq2dj6grv3nxibfazrf5b2s4idmmrk1qb55";};
-luagcd-65396={run="1amdvgfh1s2sz9v6kg8h53jv1pzc012yl27jy30ybjwx7g49i3jk";doc="119c49xkynwxznynn3vyx2v1vicb0ilk6vgsm7jkc1qx8lfr84xw";};
-luahbtex-62387={doc="0bcc5wk361qva3nrgzgl849fbxj4lzmff2r5vabz68fisysbyx5k";};
+luacolor-67987={run="1mbiwswai0sq8wi4vmyrracygdd3a1g45m3qanpams683ik1syal";doc="0aqwjckc7cq8z80bjyl6fz2gqzrwwdvrlilpcf710wlrqc5c023r";source="07dwvksaxidr4b7z7fx68q2kcclhmpilvy1xk1xjjp07s5vgqkkh";};
+luacomplex-68883={run="0hd7g5fg9dbacbkk94zpjk7yjwx3jp70l2ia6wnzx8zqajs4hc7v";doc="1hsr4308z3b2g3g94hcn2cwin3awhhxb1hzy2c0nx77d0byx5kkc";};
+luafindfont-67468={run="0aajmgjbh77mj4qv6d1765bn66qjfk3m1b0bg286lp77c0vsjrpy";doc="0bhr19q4j9fqy7y8mjiz49vjd13s1wpdg91bqfdyx674l5sp72zw";};
+luagcd-68893={run="17nh27fkwjrfpvf0fpfbqcqi00bgchw0zf3iznp3iqmjyvrdwn8j";doc="0lihscgrlrjrc3djqr3v0zwdzwhmlk7r33rg0agasdhcndw5hb3q";};
+luahbtex-66186={doc="1hfawh7vig7jsmd1y0qlbn80x6770q56sqd9rx638js4p5a4di3l";};
+luahttp-67348={run="0nrk066mdzlw8z55qy8w3clpfdiy411mqni3kmn17adp5iswc9sn";doc="1xinhsfcl4xz3xziv0ch0rhgrqqzmrr3hs5h23hdyadayxk4wxhl";};
 luahyphenrules-56200={run="0msfn7s35xhpacx745w0zbr6g5pbhhm4pccd5cmqdhq6dh0fjw2w";doc="0y2rxs5mqyw6cyrmgsqqibsw45qjlzsrcwpd74m9l9d4731nyn37";};
 luaimageembed-50788={run="14xmb1cjqvpqwl33qx7376ndsbkql48v6094r66ksr7vlyap5hgp";doc="0r0w2lzxf4avfsv5s6fx64bw300vnmympfdfzz1k05c5c2kjy9x9";};
 luaindex-25882={run="08kckg0129ksr8pdm0a2yawwb3fa5js3mkp6jd8f90y0w7acrvis";doc="02w8s71qdkxznkmqv7c62dhar2x6ia9zsiwd29qxjf51dpwj3mg2";source="1v09zszin9f4k3gczrfs86zv019l42d6khacjdb3qjp2gg8w9qn6";};
 luainputenc-20491={run="1wsz8aw4dyhiw5p7gyf26lcixk1a8czr06akd1h6dwj6s5vq4vka";doc="0h6wjb0kjdqfrmzikvbddq4w31d55mxlcl5n3phr56fa9i49qmgm";source="1yps04v6fvqspq3rip0c6pw5a5y3annwfaij7w27i53419h83lbd";};
-luaintro-35490={doc="0xab7yymknvhsh4c30xnhrlvk798mbnl9fbf7njqx8mbmnv869bi";};
-luajittex-62774={doc="0585w33mwy9gw01gjnkh9wyxcw8a4vwhaz9a3dx53njgb2s6a4b0";};
+luajittex-66186={doc="1qfbg0r6gsncgymh00yc83kcayd4m7bvryap8f63sm9s9bzfl6yv";};
 luakeys-65533={run="1p4hysck00vgpdnba5jnhaslcbq5cpyw89f1mdn2201dr0nj46sc";doc="1s46w0knvc5k7d5nqvycqschsf60p0qdgswwf3bs987m5vi7jmzi";};
-lualatex-doc-30473={doc="12kg6l5lrq791qnh9gzmfbqn693fpnbp1nn8fddd5ybw6gr61qr5";source="0q34k7x3lwhx2m7n0xl3c0jqv3hzz9zpx6hi5dy06k305qjr2lv8";};
 lualatex-doc-de-30474={doc="0vnmgs475bzbqi14m9sm45cwjfsbvbk45wkb8m73j1bnk7wg7hh4";};
 lualatex-math-61464={run="18m4jab4yy3fvwkn6fyb1qajsq4nl45v06l1kdjimcws5vj0wbv4";doc="0di41c5rk5raf88hpz59syhg330can3gb5s25n2y5c47qj0aph1w";source="0v470ky6shgcfy44b6a1b987cylqiz6rk0dk9qfhiqd6b93p3axd";};
-lualatex-truncate-48469={run="02plqfp0xi406wya3c6cdgj0777m11fzkbk9nbharima6zhsc1nb";doc="0gkgbliv8bzpdk27mkff02v1d03vggyq4nk50yawrimz0k7q64bn";source="159wcqiyb5rs9a7wfm5mj5vcqh4kr9gv4pv6w0d7vfylkrlh76nf";};
-lualibs-64615={run="1f6ws3pfy04flzghcf5hizdpvbj04h4lswmlsj7pdy0cawiyrhzj";doc="09009liv37ynzc42n21h1frp2yy47c06hjclb2ahpqiv3vz9y2vb";source="0m8awp11fzch72bf1nj9llmdx0yznxilibb0z7l7vyf9qza8k19n";};
-lualinalg-65834={run="09jv395dszfya5pzz7ng470yc9q8ncvanazlgwzjynma0hc8jdjr";doc="1kr6c0b86plylk1xj6bvpm4dql1kfgwxq7w7bmf3dq8y8j1hsz64";};
+lualatex-truncate-67201={run="02plqfp0xi406wya3c6cdgj0777m11fzkbk9nbharima6zhsc1nb";doc="0gkgbliv8bzpdk27mkff02v1d03vggyq4nk50yawrimz0k7q64bn";source="159wcqiyb5rs9a7wfm5mj5vcqh4kr9gv4pv6w0d7vfylkrlh76nf";};
+lualibs-67994={run="0h9v05ax34iir2i1qjzqi27qqnw4szch42mfa8mfxvxcmgcjyqpf";doc="1wn6j8fhprq0i1k301p5k1rw5dyavwn1lwvrydf461nwfvahavfl";source="0rchl8c2dn0f5bq94h56ncy4rp2iisr3j9wmp78c1bm22k9xa1f0";};
+lualinalg-68918={run="0ma2na0ms6k07aavahnpfz1wddrjw2zqq0znxfmib50m3nqh3r5y";doc="05lpj7b9bg6w6d3hc20cnqd50m4g0lfbgj65lywnk52klkggiyd8";};
 luamathalign-63226={run="00j2vngg8sqbagyhmjv8lr8kzfsllllmm2gijhxbm8xgf8r7f01y";doc="0b2zkyzy0rq2cfbk205nixvflqcxgc1sfxiqbiqhz2yhai5y87i7";source="1svawaz0lj4zilykjg46av8sky18pwzqfnyli8qldpby4zmnqgvi";};
-luamaths-65400={run="1b1v70z8vz7z0ic74badjywm4a87r7izxryi8dsdr71apv2wv2id";doc="1ba0icnj7hpb4m240ncy6xypr88ijpz1l471b7mv4lsij7p8b53n";};
+luamaths-68883={run="0gcri65p0y9rmq19rgf79jw98i855cl30al9cpq3znp3jjyikfrr";doc="1sv4ygd6ypf0hhcbhydcr1ap7ig26z476i8z0gs5mzfs08rdq5mm";};
 luamesh-63875={run="09ldwjfa0dfhgqv2clyqzd8nzq596h9fz72b1jh7vqjwkn5774y7";doc="0xnk2mcw24v6002v523m7amj6qc4w3h655l1ss4rpwvv6virp3kj";};
-luamodulartables-65485={run="02wc9233vrfzy0v8km0mfv2lalw5gqwcvglc3km02cw880wpqwaa";doc="0v9lghv7ajnaw7sfm2j8bi58aw1qrznp7carmc68avlq0x9d5k1s";};
-luamplib-61587={run="0x6r6jiv2i8mapsxaymz3l2avjm0c3swhfzvwl0z0pqgh2m4wlfi";doc="1dq5bdfxp7iv403dvc6ggw96v4ky033qgw002x4nr18snswax06w";source="140ghg5l9vndgx62zfhs7cx93ibph6hjghy4267f6h4d45bizk2n";};
+luamodulartables-68893={run="1f250s8836j4kgdzii56c0248j5sp64f5wbqkpd6p69wjz7pbrmx";doc="0pdk7x09gmdv0lnwkvdv3scmbgfgpyv069fa4s5hbyvwskbj7fmy";};
+luamplib-69069={run="055wa9l7bh6313x5dgr2x5idgd3dva994fq9ip9bxg9iv1bnxw1k";doc="15bwxh64cxqz1g6hpn8vphdd1z0f35ldiraadqqw1pf9gnf1fgxm";source="1w83x0yis4rddiqm9qdiqjm2ifg2d1ah7f4f14im9h4r5z37bck2";};
+luanumint-68918={run="14z8vvxxivi2i61r1ydq1csbxlm3621y4j9hx3p0m9s1ngcy4ryv";doc="1iss948y9rhg7j6am6vyc5y0s1cmn43k1g8vgcjlzbp8x88mwlwx";};
 luaoptions-64870={run="1lkx7ynl6xci7klgi2h7qbyxny65nca74xz2bhnhch6zm38rgsa5";doc="02w3623ix7g67bz21262i95gn1m4gzvlvn08f7v0x0q5lm7x1f3x";};
-luaotfload-64616={run="1wn9clphiq5j4j28azi0y90037q9iy79gsm063qsjggnfi687zb2";doc="13ba0aqh1nwa43h9zg6iydrky81c45fkwszr0si8dqrmnw3jl4hh";source="1jmvglj1mv766cxzj6bnagrlby2z7w3gkpqls19ic2g9a154i62c";};
+luaotfload-68143={run="0qxjljd7b0r1h6qxmcl9k7rkpkfmcmppg3yy60ids37cf8sgvjpn";doc="0zw66fxxd02h39dhadp1i53nyp50kgcclkp3fgz5pi0njdm02azc";source="1jmvglj1mv766cxzj6bnagrlby2z7w3gkpqls19ic2g9a154i62c";};
 luapackageloader-54779={run="1ynqy88drl04ld2lycrpvjj3cxddmbycznfamhl1bmn01c1q9784";doc="1fn9kqab5hyvscjqmd34vxjkdcr7bapgw7w3ckwvlsslxrv22rfs";};
+luaplot-68918={run="1lsc02qnqw6p2qamx2754ywk95yilq8jvn3vzra425iy675gl7kg";doc="11xl1j11p52zxncgcmg1b8x7isixz4vissfxzppc6ndv5dvqk3aa";};
 luaprogtable-56113={run="16jmy3cvn7rmzf5i03x51yp5l90kmrdy0iqg8ji4z3xwrf0iq79x";doc="1d0k83dyiml9abnfc3b9l4n6w18lgm37bijr8xj3chyv04v85392";};
-luapstricks-65900={run="1qbdm79in0jlifww94kfl8f50bbj1qfvxwnaxkaja0z69sljkmrl";doc="0qixjp0a272h1sa7661skfqx9kazshwsdyq4v38gr4inr4cyc9ij";};
+luapstricks-67207={run="1pzhv15ins6km9kmlmfn6qwypncjdsnvrv0qfqnp4zkbdy0hjxmy";doc="0kpnnpq7njva8lrk9wdj0l27iwkq4vhg2w3crxvnfymnq094gklz";};
 luaquotes-65652={run="0cjikz6739jiqadp28zll72i58s20dm1i0q9kbd3q2y69l3l727r";doc="19597kvgz6ggjfzbdkg9f5rg9qag9mrq83v0xk2w6f2k0n179d5f";};
-luarandom-49419={run="08pmalwh5w1gih9f29crnwqx40x6npizpr8vnjmjfw3iy442gbhx";doc="0kgwqk2mh8c2hkv2x1gzl3a04q7azi0aqcv6ab3nf60ipmq81n1s";};
-luaset-65376={run="145lprp7lf46izmnmhnxja1qpr29imzx90fkl20bc4rbs6fkvsgr";doc="152k6zdgafvyis3zw413hrnpmq0xw5hks5irmiai2d35j34nqr80";};
+luarandom-68847={run="1qg41y50fmqq623wdc7rj17az8k2x0fwgjynq0f6213swx3nz3hd";doc="0lzrcg3vywprj6jksnwr2abd9qj1vcqqqk0fz9nrsrg3hphn6v0x";};
+luaset-68883={run="1cnc3pdysh2xa8jrjn6kx7lx1avpr6x11kcgyhbbzizraara656z";doc="0ynaizxiqh3lj1nnp8wcvd88z5jwpym2zcfvcp28nzwzhvvagccf";};
 luasseq-65511={run="1cxp3x3d346k7j6kh1bch4d83xb5ihb6h9jv8l98jcg0fp6zvy74";doc="1pxx09mvdn6pymsv7959bs5xm4568nzx78g8ikyj6hm00zqphaph";source="0h5zqaz5cvqgy5nghvazncwdxg6cmbv6sjlvp6f6mkgy2plpvbxg";};
-luatex-65866={run="0f93pzv8nvy3xpzkajrrp25gq9mi9mz8bmfpczl9z11ryrpnc246";doc="19ipndmd43zpc2bxnc3wsb8vqw068hiraijzlwvav7b662rbvrdv";};
+luatex-69182={run="0z08r0hjkcp51qzffqgf80df9445xiagi08cs3lyjfjn578z813b";doc="0cgml9jqd905jnwml4bwaqawplqp9ga0qnc4swkcvjmq3fkij8nf";};
 luatex85-41456={run="0ss7c5x0x7sx6lsn1iq6lyyp6w0xb1iy01s1f7zf7mlb9n1yzffi";doc="126y3priwz6anp8sj0296bnxd53lz20nchpxw74zphfpwrv4hzih";source="15bc8g0pgrkqpb8q2dhb6zml2d4jwrripih9898mmalsjixy62x7";};
 luatexbase-52663={run="1zrwz661gilr4iizcfsxwmfr9dgx7v28lypaslmvp3zaf52zl2q1";doc="118azb2x20gyaj42r5w0749dx8rzhhri1nz3szy9vv64h0fig603";source="0vsg8q5k8l66sy3d0bskr6cv1f95lnhap3b9yl754x7ynv272xcd";};
-luatexja-65790={run="0kahg0j2v8nqqlg789kdac1jd99lacr9gb5ilmyiwzhklhywxy8x";doc="1zag28s4drpkmb0zq6lg8hbmlbz54470k421r27lnsinbxvwa4h4";source="0y7vqwj3rpbhrr9z3if1p81k789sjgm5df973jsnbwd7mz4n53s9";};
-luatexko-64893={run="1q6i5mhyf4rl6idh7x3pk3yzr8367nw33vsyc2j69iki8nyp2syv";doc="1zqsn867rwxhd96jgq19vpncbkpc7716xid3hpwjwydbhc64760l";};
+luatexja-69245={run="04vjkw2pbm31zanh19lp54pjq6a12advq8mnpimlimy292kqvfqy";doc="0vwy9fr0qzk8zwl603mv3lfv2md22syk10mv3fp3axyjpchvba1h";source="0y7vqwj3rpbhrr9z3if1p81k789sjgm5df973jsnbwd7mz4n53s9";};
+luatexko-68243={run="0kr9i78a3dw18rfws0xxc7kjd4n61xgzjkdlzb83yls4fyxncz1h";doc="0k69i41pjfqifqjcjw4962yvvgwb07a46igvwb70xsrm8cxgkm20";};
 luatextra-20747={run="1dx2hc1md8csvb37lckxj4987zaldfd73c86y0ni8fzd4zg55s7z";doc="02dl0skcr30hh9wgm7bkdv5zvx3czcdkxv3zdqnasdk0b7r7mqh7";source="1yq5i4v2dxayhfzn1yw987i3zjm6gy4fqckx5kybzh8f6jr9167b";};
 luatodonotes-53825={run="15syf4k00shgi159j6ja182k24xhfw71zk167wwmy57y7kwm5cam";doc="1jcybpcd500lzkwa33zdmsq3svb9hrh8f56j4qgwm9cq4wb721f3";source="01km6y8ajgaaab9j1bdp4s8gj3iw5b7cfdl1yngp41ph22888aw2";};
-luatruthtable-64508={run="1wcj90gpgm5q6mg4brvgq5nmjs3wi61z9hvc5x23b1kickxd9lyq";doc="0qk093wa47z8mldhaq2rkhpkhx3f73p2i89ns66rvaidp0fpifs2";};
-luavlna-64142={run="08fzf9s8bpbc5030z88lj89s84d5ryciqk143afa0z8aa8r1wd0w";doc="1q9gkn7z48jd6h6mh6k4d0qwyq9b2ksyihraflkr9akmy88x9qbv";};
+luatruthtable-68893={run="0pkw1q5jw8id57mcz2sr1mb1lwafara5kzvq3yrkmqp8s9ml5ns4";doc="1i6nplzr640dik1rg668pai86vip0qgsfgizgbd7v4v7sjs24s76";};
+luavlna-67442={run="1hwbf0l2ydi2a5x05gcffw3p9yw8gvk4srihz7rsp6g7yf6qhzds";doc="0wirwf96b50m5wnhfiami8xiw9rr12mx20kp4wqc1bnihxg8l2si";};
 luaxml-60709={run="0w4c8sy0bjacrkfh3qb9rnv9ls5izzkma3fr6yd4zmwjzn09hh6j";doc="1giy76w9p3ribicsbwghh4ckrdijcfxnpyflv59ry0c9008xdrr8";};
-lutabulartools-65153={run="0faf62krjf2lwjizgnc6zrpkvi510pgbdg0wyl2v16qgb0gnrgl1";doc="124ys42c8l4ibs2drn8y4pps94n2010dqvyg8yjrqh8x08ga6h9l";};
-lwarp-66260={run="02aw4d9l0xq5ybx3iwwvb7iq3n2n754n09wjvnqj8flq1mw4wiwn";doc="1m49iccc1ma0rllw11vxak9x3kn8s76vp158ai280pmfspbqh6mc";source="046sd3l1kma119ams6ry4p95r7z556v8yyqjvacvc7z688jsj30a";};
+lutabulartools-67714={run="1vly69bgzq9pxapl7w1f7cppkx5yr5yyi1gxv0488m2z75522i8k";doc="0iyg0vqm675ak5j1ax46zwq9gcl58vr2r861085zzxicw4a1fh5i";};
+lwarp-69384={run="09zvwh3lk9lx3ah5ihv7n90898ahj054id6hyixj0ymcxmjibc14";doc="0dcqrgcyffj1rjf81fj4dc39syzr51ihkwlw41328i22rbaavkql";source="1605c281d4ap8wiyafvsi717yifksrbi9d3jcwrg75cvs9f9ayqa";};
 lxfonts-32354={run="1hl703cxwldq4ams7044m02bmnvm8vkym7xyz9cb8xkaqfyqp8cp";doc="1lfrcfpn9a260bx47nw6msvksjzqjqms5d31nprc800wk2vb8sf6";source="17j1kys5hrvkymba91kp8f1kq5vshc8blv5pm0m6yk6p4kdnfkyh";};
 ly1-63565={run="04g9labqzn9c10asy6nn5s6clqq2cnbhps9jf683qx5di1pabgp1";doc="0l2dqyxd005y9k8xpca04vyzbjxx6vzr7by1yz4qm1dkccnjprh1";};
-lyluatex-66280={run="0y1n2xjgyvima3f882axqgsxyf289vk8r2254svq4fjbjp11y3x1";doc="05k4i190gi43s54mrzcbcdwr4a4kiazckxqwa486kz98w3h45ccf";};
+lyluatex-66880={run="0zj0n5bgawhkw0c04crlkb2m8yabb0r49bysphgzabyl3rvd3i2s";doc="01x3xkqv2f8gvrsl0qj3d2y6bkzmzbphzxcqy6s0f4rp5yj3dw35";};
 m-tx-64182={run="1znv3xc5462jmm3ydrcnfj1nj7dld9f617xw3fl2gdwn083ivawh";doc="0svgf4a6rgisj614py6l9hm4ij7b4x75jn84s2ydbxzyv61bmmrd";};
 macrolist-60139={run="0yrgy9q7bjclww9crxzh3zhnbsmkjwncvvdm9nld2qfmg4spsis8";doc="1161aanidazgapb9vl3mm9j0j0jfiny9fx6il3gbyprw6j7k61ad";source="0b3hc75lwzk9l5nq804qbpmaxd9zlrybqdfyg9cavsvyjrjh87i8";};
 macros2e-64967={run="186qfgd6p825fjnwivvzvvpx1ydiiw4k4lkvs9gqvm5gmas7kcv1";doc="0faj1gxhrc1fsqniy56c35jjzmxbpgyc27ai6xipbdp8sjdqm6pa";};
@@ -2347,7 +2400,7 @@ magra-57373={run="02zwkxc94lzi5wf29wws8ia863ljq9bq9swkh8k8318v5z4dv5ig";doc="0q6
 mahjong-58896={run="02dkqs06dgp74963awkyj7w3in66h91hx5rycix61d0qz4qwrvqw";doc="0cxzzcngiz7796xzf0k1njchhw2p2m47kpw2fhrf1cqijwhw3jxb";source="0ygvmg8c6yp2mwlffr52jf5shl0qh26p0xlfkj39zzabd8jv2ay3";};
 mailing-15878={run="0x2mgcmfmppzqlwkg5jd1zfyvfdjnrvnk8glby93s5nvp6i6g8c1";doc="1aif16654381jcczmfn44k8v8x60clq94z4hcwjsqhai6s441hbr";source="1cx0pq1qmkn6k09x1r8mx7dmpwvdvprmvwj45p1k7mmfcvq2834d";};
 mailmerge-15878={run="06z9cb353sl9q6a7jbvwwdd0zk3kw5xmww0r3sjiqampxib19i9j";doc="1dk2a71x04nbc0rcmd3axhz8yikzlw9ab1nd5k1ki7pmclwkscdr";source="1qkmlfc2dvjhrh2xcypnp9wansxrb9wzvniwfb7sll2bxjcfbs8c";};
-make4ht-66131={run="0jk9xamxgyvwy77jv9iyg0z8bj1cy4cmswf6a8ydhcbpc2yyhcsn";doc="1vhcrpxdf1pc7qn5y3jirq01qni2i1jb9cmvghyy92kzfj88c93m";};
+make4ht-66130={run="0jk9xamxgyvwy77jv9iyg0z8bj1cy4cmswf6a8ydhcbpc2yyhcsn";doc="1vhcrpxdf1pc7qn5y3jirq01qni2i1jb9cmvghyy92kzfj88c93m";};
 makebarcode-15878={run="1ixhl4k89mng2dqfc0wa0fq52xpafp15gghnyx28d9j1163wxr7d";doc="088wkffs4b8y0clgcx1impzbxck8klm32dbf6p1jyc2vpi848irk";};
 makebase-41012={run="1nmlgv76zy1ajfzbdv7hizby3hhciw41s10hbnlbrfdl27w14dpp";doc="1vxwgjk3dj853qbvy2fyqzni2qkkjhslf17xvxskq97w8fcqr13j";source="1f8aliax01b9ir5wzk0bjhqzicl26xa63khx84s9haplh183qk2m";};
 makebox-15878={run="1v2xpiabjcgyi1d0ifpvzcll8y01lzs48bs19nalv37jw7hkrr4m";doc="078bz2pism9harcyb9lq8kkrkq984zx2ya47yhpqxnrd85kgcxfb";source="11gjpqmc6dzccv3yc539ki64hzpn8ns0zzjvanw7afbn5bkyrs91";};
@@ -2363,7 +2416,7 @@ makeplot-15878={run="0qp0qgcli40hd2dxgbd8fv9s03r81dlhh48pb8la9sh28qrb9i51";doc="
 maker-44823={run="1fymg22y0w2kghmqh5pgxkrncdcbbmhhxappc72g5q337hcky0xa";doc="1yz72c1ghqjs06nagngpp2q62gh67c3klwm73bcbc090vdfkw7mf";};
 makerobust-52811={run="0nm751w11p7cqg8ihckn338i6908kcn513644c6a1qc9rg847hlp";doc="0bidk4f0q6486vgwqvifzchkn0xi1l9j65yqwgcdnl3yg6vamqzw";};
 makeshape-28973={run="1fy1ccz3707f8wxilh95k8sc3a93gl93qcpvpxl833mbkamkx3kj";doc="17dnkldg0v2qp3hdy4bw1k48p8xx3v566pm088g8qb0df6kx4217";source="1yd3ssh3cpy54gm0nkp2ah0nqarbnk9hqw2kkwdf96dj8vjlsgwd";};
-mandi-61764={run="03xi7a33b2gmbgqikr40ncvnamacs3f72i55kfznfgxnk1v77ljc";doc="0k66660qc7ig2a8cicgcvvrjyiybw1idfb456i6jrsxs4c5vijfp";source="1a559lvi5lyss1vj2zcq2ajjhc1m3i1x867klzr7xgmcyq6iifky";};
+mandi-68950={run="0rmrsk3i2zrf48zv76jbfv7a71z5688lnq0gdla1x0ka51zfp11m";doc="1rfhbg00vbd5dbz6fi9zj0m2cfxwwycdc78qamrpxb51y3bb9giw";source="0vlw1wm8kmqx3zg4hyqcyvfvrch3pv0abvp06y48dxw2zkhbdmf9";};
 manfnt-54684={run="1fzfcvifh013xs6dm6xq2gpvmf3v0qn8scrbjj3yak2ba98bcy18";doc="15rs74sfnyq2k27bs3dvjiachwamima3q4vp0dp0ic95as2n61gp";source="1v3j47xa7k66dadz8dyy9gm3k4s6465zgqpzb320isjpb77p7r48";};
 manfnt-font-45777={run="1cdd2a3xj00bwsby9z5iz5f2iy2iwsjl35gcack9q83hacbf3ssb";};
 manuscript-36110={run="12r1b0hqs1kqdxvyg8lv8yrsdycfxs03j0lwfmlhbg6lmgz32pss";doc="10dczs60ncdk5z76w5jxgis9m9qilxp8xi53gixki4i82yd4l9va";source="08fpv1i9vz6fbf9vy48k6y45xz67kbqb5f30c8pxbvyzlicixdjk";};
@@ -2373,18 +2426,18 @@ marcellus-64451={run="13blr2k1vk0kwac3chplddaplsjacablkky68yq0wccdrxhbxvdr";doc=
 margbib-15878={run="114ifix2wa74ix9zz1ml9bpyd0pqzj2983h29n3h425yq98aiqs8";doc="01zam8vg63igvhdzf3gwgm3gjrnd23i8ra2cwdj4w44lcvapdlss";source="0qjpbhs7g4qdhna3kmlv4pg5fk0b3xwpwagyvnl91gn3q4aml4s6";};
 marginfit-48281={run="0x8ias8bv1zaavin929782cjvp7aw94r18lqvv10v3vgq20n7kjw";doc="1cj1fidjvvhhzn9fxbvyh75dfb78wxi83bdxnwbpc6rf3ax5bl03";source="0rrn2lrqg3a1yz6l88qkh8sljr18p1wx1vxyrzg04pzj21lw8kkh";};
 marginfix-55064={run="0arldbc20d1sncwanx3szam53yv1d5wxgihj8lm4jmda1858bmgy";doc="0kk9cghi0y1zfk6ya3pfs08npdy7v95i4db5a89v2177cd6z7a78";source="1k1384nxhiywlvyndnvhj6a35q433ddc019ckf8al2b1ngg13y0w";};
-marginnote-48383={run="1vyv2n265y8j8r9ch7h9qjhwlmlzmqx62gc4zzm4zxrk0mvigpa4";doc="1cl1xrb8d7dpr4mwa56664wdkabzx8zr8cn6kxcn9bgl543ka3bc";source="152bwxhnssj40rr72r6cfirvqbnc0h7xnagfrbz58v2xck53qhg1";};
-markdown-66261={run="0zbpykyk4ymrd293k8qr5hw4kl437y7ypbgh80ginl5z3is94fwd";doc="1dlhsa0sprxc8fkdkgc7rsx6icjd5wsa84bkif22biw47r7ywznk";source="0r9f21sc4hvr7gvv5d5i1g127yxzmkh0l0pgx86pqbac21b6yvhb";};
+marginnote-68204={run="1jg3f25jhdywqaxy4qimxr7x0kxjs279m7a3kf9lvyj6igcijml3";doc="1n1kswzhxdx7b47l4gf4cbihvzy54z24gg0sz4syvpy6nq23fs0b";source="15cl27n5q30i70ad91ajflrrcqb5wya1cb400jh82b9k7a6y8ych";};
+markdown-66954={run="1y6gqhcbp9z6wc39704x6mi69wlq3b9zkpbjf898545qi6l08s3a";doc="1y8l6y1wp72kjq4cymckyfywz8nz44rbyrw2bj81rp07i1vl3r3x";source="18s9206jpgwsg9b0k5gfnr9ighm882qcyc67ymardgb2v5hzpszz";};
 marvosym-29349={run="14i2alqxpz0imgdlx03gyg2nn56wrhlc0rziyx93h4ya9nz6xzbl";doc="0qyfyz8qfcchnf78r71fp5p16hmsrq6xf54g5mnwjb4p5ipbd9np";source="0vbiq807pazw2c1ck799w8sy3q8wcpb6smmq5qqw4nqcxzwsxk78";};
 matapli-62632={run="0r6xibqz726d68cli8izl20r4x2ncvrmlrjb711jz82qxbgs9kvg";doc="1cmyrnrijghjm15lhi2isza0dishbll3k4hpzq84jjjbcbs4gvyp";};
 matc3-29845={run="1mp6k50lm020xqrq2vwl9xyzr5jwp9p85c6ng3k22g4rqsxhrb3c";doc="17xh063gahp5m83vj6x8waqwvf4hrvg3wi80z70r94bag0nqqf2v";source="0pq4l1ays56ry5v3ig76h49kn7hdk1gi0wqx9b29vkdvzmzrmq02";};
 matc3mem-35773={run="1asybbjj93wpbcn577cqkbfi2bkiq2hzv5b2lqs31igawaa0vdhg";doc="1fgngv22falzvrsynzzj51jaf4gfcw88jwbljywixqb9xcg9igcm";source="03x6cm78yhgfljhcfrvn49favgf6h11w96s9agr96xmngzh4z40m";};
-match_parens-36270={run="0b0vq9lgr9xxwvzvlhlky7fg66r2y1qhikiywddkd06rmw71yvi1";doc="0i8dnjn5kfqhp51i255s3q2cd6jwzqy4rfdrhaxl15dhj4il9k7h";};
+match_parens-66681={run="1cp1qidfxnrhq5hia9z3nm4ij2g0v1rxs4g5fb8srmjpik10ss16";doc="0c5lcbkp4f7c8dx2nan6bv6cwicgk1520grbxs5k3r21sa2m9p8i";};
 math-into-latex-4-44131={doc="0k11j92h9hpxnyciczknhl83b05avc0rqdnwn82ssqi1k3qixibd";};
 mathabx-15878={run="0x0amwdxr6mh6j1m1q6wawljzjf1683xp1fxfqyxmsk0spx032mn";doc="107fimmxvfmdjdi1rlk0h0m88q1dbc9q1qwqhx1fwfjwdn62kvsi";};
 mathabx-type1-21129={run="026pnrn2y7zrl8qfhjv504bjk114z6kd6ich2ic97l5f3lhl9nj2";doc="172dhvsqql6fk2hfqcw19bxsqwqjfd7376a5wwzcvdgvx44s294v";};
 mathalpha-61089={run="12fsn6wsgixbpnay1szkmv16a2wfsl60nkcbyjksy1j06gr0yf5p";doc="0ryvikvngpgnqbcf5mp4g99cg0r72x53p7q6h333vd3s2qjah7x2";};
-mathastext-64930={run="0lwjqqbkjzgf8lwmzv41pygi81jr6a3v5lbw2ymkjlhm8lcjy0ip";doc="03spq8i9sq6lmnldrxkc785w5g0dnmfhww2ngpvz0l994j75q784";source="0m7sfb43lb7msfdf018pl5kmdv3fld57bs5g6fahsnq357jk5w79";};
+mathastext-69237={run="02zjad6562mfi1lvdv6ha0var1p4shgfq325c8x7dsrnl12v788m";doc="0r7f9m237crb9lw5yg5gq1d20113fq8zpcf0lpr9s4dix84lyvf4";source="1ghh502n227kwap1ij89xj0i6jc518dvdg2cbsi5zmqwz7m1snxk";};
 mathcommand-59512={run="1mp9g6q271ymx59rq9lkdaadi7dwz3p1d0qi1495rrn5d9fpccgy";doc="1bjky5x3bgrfmfripn3dmabg0bg02h6xpl3s6qncqgxs0bnfz2vs";source="08l3gbrxw3aa028820iv2l1r5alnvzd2wjx5fylxs9lhrwhbmq2b";};
 mathcomp-15878={run="0ciipbbi89n9aakg86czfmasfnx0k6rq7f8v0wkxk3zk2m441cb9";doc="16q0b81y748qnyc2gycrb3jhw1i5yphmf6rpivwikzpk2nrg3ndv";source="0xdivrbkhn1fh75ws54i2vxgx3xqaqkpfjir5q84vwxgmxfv4cja";};
 mathdesign-31639={run="0jd7xfwavfn4dsss35splcxrqj6qwk18jw7qgkwshpifp7m79l2v";doc="02fsi2hinjfcf4pb0r1d0r82s50734srpkk0i9c566zx3m52v2vf";};
@@ -2392,7 +2445,7 @@ mathdots-34301={run="1wbxvraw5lp77chgzslrrz022zgqn2fhmzk85cn7ggafip1hr9s1";doc="
 mathexam-15878={run="11rn665k5vg9w9rfgcp602v6cg659d4c22gikkgjpslc7bzrlrkh";doc="1lv8zdp1fajq1nms16v3nk7f0bc8az525nnjjjzags4rpl8wkzh8";source="1p0lalc0ny1zb8gc4bbg7z9pm6airbg63l1k0qqmwg10wvxpsjn9";};
 mathfam256-53519={run="0s97k46ysqvgs6a8aq5q8iwab390s90drd3g0ixd8zmv9a4hy1z2";doc="1zk42fsknkbzyx4m7xn3yjw9lrdvf6m7crnqsp1q7qb2nv3hn1br";};
 mathfixs-49547={run="1vvyka8kilv92hfsx8ahb200cl50kp1r4qdiaqgzkjag5kfxy1ka";doc="0gbh6yicv1mf0llfipqymy930zpq9jqc2ix2gfbjdh909l1y34rw";source="1k49pdi4kivk707i7fb2banj0qaqc5qx8zl2l8b41i6q2ir90a4i";};
-mathfont-65205={run="12qgmpv5mb0w138cqq522bxxiipxl57374dmj7hkxwffc309kvyi";doc="04nkvswa0xllh14h1iffdqbisvlmzbg9l10p0wc3bh115kcy89fx";source="00wm7bjn8ric0jccm08piz5z0azi2gyv7cqcwsxw3lcrmd8rb0ld";};
+mathfont-68241={run="1yh9rlhg8lk4a4haaxlyaa76ij0i6rb4zbk6kryp71ks6hyq7vny";doc="0wsmsimscrkxbyx1mkjlhkiv3xj66q8r2fiwk8bspx6zbdr7fwyq";source="1z7k0x9gcyls65mfgn30dhipqwfhn78hwx51gxvrn7z45w4h52di";};
 mathlig-54244={run="0pyaqwr2h9knxf1axi55vm6wr9xj15d5j5pagb2011k3b830f91b";};
 mathpartir-39864={run="1a934cglbiahnmqxjg2695rmp8fxlg3m19zka8ayc743ckv92prd";doc="1aw9sbhgca7hnshkd2vyzf5lrq2xql25mwp9qyishkzq9ayv7p13";source="0bn3zragwja3hh32fbrsdsswlf07a8i6qrpnv2c1c47m86xk3764";};
 mathpazo-52663={run="05j5qgq8fralghp5wkx6bha1cm59vha29ppq96nllq2k2nqhpi3d";doc="1z76cb473nb6r0vjjxjwiymnk9wsf7pnycc3ad3ba4vd3yl1827g";source="0lmyc1q7jswlhlzz4fd6ia407jj4pzi7wvmrcgfyw20j2nghfcgp";};
@@ -2410,7 +2463,7 @@ maze-65508={run="139hjw2asv21p0m7qrpi5liikgf68kmk9v214njh107gi3cjl59w";doc="0h1l
 mcaption-15878={run="0bfcl1swwgz83y4f80a1kydmxhdyqxld0d5cjfgxfhnn9dxp3wc9";doc="1afldwg6dghvkwd8gik8dmag4g2pb6ag3aks26qi0ygph05j9cwz";source="0i6sd9vm1pn9h570am4lkr2br81bhmqqwwvymb8r37xpmmp9yvsk";};
 mceinleger-15878={run="1a16g83g9wd5vdx70bq8zbr4hwm8fk46dpsna97r9fgh44n85pv9";doc="09z7srskh57mz055ywyxwg4zcx07vq36jdy8z9w6w74af4icpll9";};
 mcexam-60481={run="0ixgrxw0fzaqbkif05lvd3z6zlwhdlyhfb372b98ypyfp7f7v1mf";doc="0wi7zjiw93hv74scwz4w4prmy00x6n3ncwfrxjyxn2p7i2hkws6x";};
-mcf2graph-65666={doc="1pji3d2mllfi74kalvs11h7yy3hkm5g5nlmcpq2vn7cxjbaqk9sq";};
+mcf2graph-69281={doc="0v5pw5px77gnzfx5cbb818ql1gi2l48f62j0fk61iqav02svr4nn";};
 mcite-18173={run="18did9achsp32k7wq4q75a9q43jxdm8k40q41j242gndnkn8axw1";doc="1gdsa91a4snk3f22mh06mr811b1kb0vpi30ss84d3mrnsvd1p0ha";source="0q1bv5nx9xf6r1fvgnxb1x720dm0xqrqg3kya0504q8qb0kgxqfj";};
 mciteplus-31648={run="0xbk5zrd9mbk4xid03j7a0c96s311rb1vjawhvk5waqw9y6dn476";doc="15aldir7viryb2f8vi0a83vgbdwbp5gcdg0slhp6j6ka6xv7ayhs";};
 mcmthesis-57333={run="1pjllpvmqva7yk4zi4gl91blwbciw4f0fhq7rjc214iglyghl9fr";doc="0np4zsrlb5xxlwc37dldrcawd9ldmjqgq1qhbpdz639n3j4gmnq4";source="0acxvqka48id5fhr9p07qh01h44vhq3kapczr0i49pyn2ihibnyk";};
@@ -2426,8 +2479,9 @@ meetingmins-31878={run="0za2aqj7gbmxxdm3hqkq2sqkhl3c1q8a3s778hw164dfpi8jx85r";do
 membranecomputing-64627={run="0k8kgr6rlrgpmmylf3vjjjiyis49lm1r1hnvb2m2k3481gfj7zfz";doc="14hk6rw8fj040vwpqhqajlbzlp7g3c7szprssxx148j816fgi95c";};
 memdesign-48664={doc="0aij1b7l1kb2x44qn33m39k0kbhdrclmr25nmvzfn6yw42lh9fz7";};
 memexsupp-15878={run="0h3n1bnvyxr0ylg05fm819lzhzd7kbip5p5mr9kc5af8pd6yci9k";doc="04zwmw6varldbg5cxzk4bv8mbh80i9gdysfxpn1i4xb1la38b0bf";};
-memoir-65040={run="18870fzwf0klw8b4qxsixa5rh8hh13c02n04z39pcsm7s6dz7x74";doc="1rlmvfvngvp4vg5jz1x5pdgm4qi8djkml4p7mzgxygv28lh1r92r";source="06l2xi652c2k57qb6cidf8jddil1s8r5adkbr8sqq3nms097izrx";};
+memoir-68004={run="175f2przjgmmqz7c08f5v7rrz4w54q594blddj4n1372dxgg9fhm";doc="092mqw22np2ynr7g20192c4k8pcsg8qg9g3qx3k8kgds640afzxn";source="0xvs80sm4i9nnjll2i62g8gn4lkkbvpbhwzw40cpsg6n08hkihdc";};
 memoirchapterstyles-59766={doc="0jxd7sbh5vc3j5d5jd3zmyg58kwhy550l5z8q14b4msm00fp6z0a";};
+memoize-69285={run="0q797wprlvapf4a4wiwbkivh4hb80iyy6mj7q5hlwqqvpw1gw3lj";doc="0g4fyf723zv3rbwkxddvsxh22pqljra0g6r1lf7iz645501y7q94";source="1vmhr1skp49yb13pi7lgqn89wlp8xv7w3cj9zcfbw27xvn3x6235";};
 memory-30452={run="1zgfjz995jbji8hycizbp614dn0g13rimh9csgrga86f1ivgcpmx";doc="164nnsi25jk25p3kh54w2l8zk0rri50p0s9g4r5f50c3wzxi1g4h";source="0mhxxhiqq5miqskb6c4hmjdjki280yyin2dh0md59ai1aprgd4p7";};
 memorygraphs-49631={run="1ph43wp3h3pz5hh6dp3n6dzmmbn0fw11w3v2fjf6d07a73jqh97j";doc="1k8gppgv5kkx7i799mwc9iclp2rv9hgdk2bwnqcyc3j3rmnpyiwa";};
 mendex-doc-62914={run="0ab3hrln124gwvgsszd4l4jjrc705x3wbnmrrf27rx8p6fcwwrmw";doc="00m35j5wkcsyrgp0h8mf6cx30bjlhv23szmclpls70af2shcmzba";source="0sqp5s98lzdjnvpvw3hkvclrz98xzx6v7zrlag9m1im7k2ljlcvy";};
@@ -2438,16 +2492,16 @@ menucard-55643={run="13dirr45ysvi196wgsrdrcxspynzvrk88rdacrfq84l4imbsh683";doc="
 menukeys-64314={run="0039xx0qilmji8ch0i488hx5rnhf1brk6n5k0c7vg7jjs4xylq7v";doc="0a6fnclh6gd1n0f11dg23gykhsr399qmplq3a43wqqgichsn2k2l";source="1na3y08blykp1bs4bqrjx1lmmbiykfly00n5in8x6h0282q031i6";};
 mercatormap-56060={run="1gw28rgsdllh8h9cg70nayj12aqw356svv34lhvfj5b52y7ykabs";doc="0v9v54qz9m9hnfid2k9xl7fwgwhjxnk0g7wndxypd73b63mvfhpi";};
 merriweather-64452={run="00sy3iyqigbmjz7v6lf47f88mpjwgkbhrnp59x9xpaqwming9fp7";doc="0z3k1w905vlawv5lrmc55q637bfz17cjndlk4gh868gqv5j288v5";};
-messagepassing-63116={run="0kl0q70004m64ykpbh1ravkw4ywajkfaxq7gicb4y6kz7navzbzw";doc="1dll59aw1c88cfqp45hrqq0kfn1i4kj7252sns38wmblh54r6g0v";source="02dfkdjkjhw7pplc1n109rwxng2k2i2dfqw1v894r4x5whfjj76q";};
-metafont-62387={run="1kw37drhnk7qajmivvjwdrh5awns571wclv8b354zk71axf6cr35";doc="0nmmkwgbx32cpiq6bzr1namghqm7yyc2a7ghgsq90fii92vlq824";};
+messagepassing-69123={run="0r8qfwyip83mbvmfgvwrlypms90g4da0qf2ka26pki9r3cn9syvj";doc="0vicxdrd51gmk8627k7a1n83ldj0kgrzaxmwmg5y99n619pagxr3";source="1im9h7n2dpqdc8hlwf65m4ss8y9k28iaw29nf0pnlh6qabzqgl7x";};
+metafont-66186={run="1kw37drhnk7qajmivvjwdrh5awns571wclv8b354zk71axf6cr35";doc="14fwpwp4kf7x7amhxwjng2b5qgqarhrg1dhd7zds2xxmbipcnxga";};
 metafont-beginners-29803={doc="12hhvlnvh8dj1396242m6yi0341cina7sxrv7pwzqxzzahwdvmgm";};
 metago-15878={run="0km18bf69rf3rs42b0azc7i8bypy14201vk13yf5ahsypcjcgqns";doc="1bx240q75pq9v23gz82i26vrp7z4cb00f9nb3cvvknbndk8y7hy2";};
 metalogo-18611={run="03crm3sswv7mz5akghqvkq1zpiy9jdpy32ivwwmf14sfrrri2cz7";doc="08vgbmjhynb4ramaj68i27hpgijg51j80lm0qf1jrfpapz7lrzij";source="1ak8qbcbqgirljfwhq7ylxk1w2frxfkjvadjq00cclj007idr3x8";};
-metalogox-65448={run="00511x2mp991i2saykw9lai57dkkhq7rsz04691lragcqwpixkji";doc="13jixny6b529c1hvjav033wclz1z34mwgaay7rvnglgq9jv7m1qf";source="13nmr1swjpqzzdzb53v28h7na53fhlalp925vdd752lcq17idc5v";};
+metalogox-69401={run="01bz9kp73cyf89fjqq8dcyr4fi3n4h7m1gkwkhm78grxd2wghar3";doc="18vmy8xkxjm02jqnsza88z01n9qz28scm3mm4c00bd2y9a6ablzi";source="12cxqikvlk5vg7mgiisi97i4b4nwb49ymvrja43in89glh50ily7";};
 metanorma-55010={run="17vg55m4yj3xcfgvmm2kw8a81fblwykgnbcn65drll10b89wx6xp";doc="0z3mr4aw6gqdj4621dlghb4bsc5i44mlg81w81by98783fn4xdyl";};
 metaobj-15878={run="07p2r8975ps1ricqralyw2qz1zq5lmaaf50xqd68qwxmgrs3541z";doc="17kqa3h13p9vba6sa5s29v29gkm0zbm5wngb0zx1lxwkpkgqaqv5";};
 metaplot-15878={run="01blkf01b89a2f1c7fw6dbp49iw9qw94krv1hiqg7ckkj8j06sp8";doc="1fm27sy0zz3ppzz95bngipkq4m498g409igx4xcbkmqaghci1pin";};
-metapost-62387={run="1sk771ll9kv7sdrgg1xp8bmr1c0yd8g2g796pzyksfrjzbvs6fdn";doc="0sf5gwamaki67dblpnlld1jd3zy8kxcy48qfmmn003cs1zli5n6v";};
+metapost-66815={run="03ryd794cm4srjmq6x0vly4jav0w0j5p4yhvlqvsnkk1qil74nrv";doc="1ihf0m9p73k247mj90hns4afdqxz25yvfbmpxrbzi4w08q5rdxxk";};
 metapost-colorbrewer-48753={run="154yj9pmwlmdq91kw5xllqah7pkccayv8r1zgvlqgk472x66zrzf";doc="1y0ml5ldridhcg8k811dqq2dh4xsx48cwfkliygq0q1kkl34vdag";};
 metapost-examples-15878={doc="1rslyjnw27b5br17cbf6mjjkcgyr49yav4kw12spm3vdwyzb7gxr";};
 metastr-56246={run="0ci2qs1iyyn55zl6n12yn20xsff42dim744sjkxml7xad38vpnkz";doc="1jhvf4xngi5mjycbrbijn72p8anx15r1n6vh5hrjai95xp9jn88a";source="12rv9fayml2kjy7rmdh6d7g4xr2yg3r5ngky467y663p893nxk0w";};
@@ -2457,6 +2511,7 @@ metauml-49923={run="064cyc53izb7fqc6xfk7pygr2k7wqivx29rkxzrb7sakafwmnkq4";doc="1
 method-17485={run="1aafzyca2l34p8jxgdhwm54yw16znd1085lx58wrm2fjw727946k";doc="18sjh2kvy1f3c72w6k2m60jf60zbz7bz91xgq20wjigfagdmsqkd";source="0ckvvf1h80mlzyqbd12yagfl8hph9l7k35mghr1ri4k317sm3ls1";};
 metre-18489={run="0vfb01vwb6x5wf4sq5j1rrl3jpzw0mwfqy1jkkirxkhbim5gln25";doc="0zkr3wymlzxnk2n9h6nz65a1gsg0k4pfabdrkc15wfdn0yczicj1";source="15cvprv3zg5nfsd5l5sj2s2hgx5gljn1jqzgcr4lpadpans14pkx";};
 metrix-52323={run="11hcw66f3r4rvxy8h0znwgrdvlfvibc6j73pcdb3bvyywb3774gz";doc="0hx74wi8vf57ly8yrzdq6x5qm8l5gi9km4v0ma66i5v40i9jwgcf";source="0i0xzmhqbs91qpznbanlhrnqvgxc45llk0wwb4mfcvmj622d47bp";};
+metsymb-68175={run="0b306z77z64wzk5smm506xsv6jbr3y6ajwia12i06fdynx4jajp9";doc="01x1qms8mh1523vpc8ky87x2zc05m0gr31qwni60k3byx9zi9blw";source="1g4kviik4qg9scjp7mxaf3n6kzdm7z666iqpbyz6dmkgsrsph99n";};
 mex-58661={run="1azsp6n01qhph2my75r05sby7r3lsafydsxv8f5532dkb9r86p5a";doc="1nkr92d761c7yfb9aysni3ihidzw334w4180d6r15k1iwinrn2al";source="1nd7p7ssh79rrpv5i0z4246cv4wmjgy3by66bbrv7w2xhmh5819k";};
 mf2pt1-61217={run="17kjgjbjvwnh3cn4cky3qj4kaskiis4h2zxd0mmq5h87qs24zj9y";doc="0iwnr02wbh36q9nfj8jxc5d5kfc1wzap5gspix8n5rl3yzi9xgk4";};
 mfirstuc-64743={run="0bxy961jghqcyf4pkd3pvgri2dq56s0nnk42ar3vyha4lj0pp5cl";doc="03nfbjsk5yvjzn5p58rq2s8bn4a982vq7riqdj9glr480cmzbkq4";source="0i8wfvdjw1vmvngfj7mqpahx1c8gjigr4y51yhz2xsrxhlpih5jh";};
@@ -2467,45 +2522,47 @@ mfnfss-46036={run="1m0yza8nw5r3ph8k5nihgf93vf54cb0cnw4c5gkqy0rsd23hk4dd";doc="1p
 mfpic-28444={run="1r8xq6npgnlvcyimi0xlqmqa140p94m5x832x0nfm9d550l1zrgi";doc="07h8j6afl5sd7hz4gw0rkix1c39vdkg8376jgi7ypwvk1xr0wgp0";source="0ynnc1p2xihrwzfyg46dljbc2f28l152la8f2z2y5zfvd08ir49k";};
 mfpic4ode-17745={run="0jdqbdi2gqb1v4cqahwss1rj44iw0753cq262j8zmaarski351a0";doc="0sbsb9lysz6hysrpf9dfgm2zn5qcsv7aaf5llmy9kan0m4h84afm";source="0iya4y3msmyq468zj2msq93xpa01044kmnv4dspz1fmh0324iklm";};
 mftinc-15878={run="0yhw7zpmbc3780qm46p5sc2qq71s2vhmfmi3kqscck876h4935fy";doc="0yxpbp501d6vwsxpm83zjhypvz3xz51f91q414zxjvsy1cvvprr1";source="1zamx3658d8vaik5w30hvia5y0hp119vhvqhj4h5kkwnwmz8hs45";};
-mfware-62387={run="0kcz1gy17819w77sf0l9m5f6rw8dcapkdbvwaknnrmy50v0jfs1n";doc="1vwp99yl33agqrrnz555kd20wmsjpx7cs0cbdwp6dk5iqgw8v6yl";};
+mfware-66186={run="0kcz1gy17819w77sf0l9m5f6rw8dcapkdbvwaknnrmy50v0jfs1n";doc="0z3djvzs8l0w1j7h22hc19r2i49panw7m2lpp22lshxybsibr47y";};
 mgltex-63255={run="11xl6nw76hana2mdcq7m4h6kx6zx91apxcqkgjczcw9f7ip6m3cl";doc="1939pnggbc2vcvavilcssf6i9j36ysv8k93f0bz1rgn2krja2d22";source="1pdlxf2qfyzm3pjjpl0wir4sr255lqnspbsvxfy7wz78aii2ik5y";};
 mhchem-61456={run="07dnb38z8p5a46fp8rx3nqhqni0lwg48wzi2bc2nxb4yb0wlcfai";doc="13b1yc9zi2kblrmmlrg43arxg45g7y2l8kd2sq64jys2nw7sq17n";};
 mhequ-64978={run="0zyp8x8qxjq3z6b8dm3pgls4z9cr03qiqxlf6d55ylnqmdd68w68";doc="081mavy3495k4ciqvxd3hzkb2bs7m0s5jm8lx01z85p568bw5268";};
 mi-solns-49651={run="1bv7gr2wa11cbsznz414x35n5yy5jw7q9kngnb2h5y73v8bnzvc6";doc="1byfb723572whq315zwybwm1bcvcn49km80gn5bi081gy81r75hw";source="12xrddxlrngjnk0yk35spk886yd9p3nnz6jrp51dfzw1xz6pkivr";};
 miama-54512={run="0138r1yrv1880nmcpgcgb80nzd29xchm09s8wxb53j71q0vvdswh";doc="0dd32q8clxgkd7cdk0699fzplnib4waydx9y9i33lxxwjkfnfsbl";source="14d7ryxz6q17jn94wlj5vf2hzif6i08yjbxh5z7pdcgrnl035gxj";};
-microtype-66590={run="0hwwx5qzp55pvnb1c2h0ia8wp7gm4pniagb2wvg6dz5l4hja3fj5";doc="1bqr4ggi96wbmrd75mfnymkplnbwscizmf7kkfhd29jz5hl5x2x8";source="17gdym7f8851w06y0h4hdz7s9967i6x9awhqgw0i4fi0fafmyiz0";};
+microtype-66587={run="0hwwx5qzp55pvnb1c2h0ia8wp7gm4pniagb2wvg6dz5l4hja3fj5";doc="1bqr4ggi96wbmrd75mfnymkplnbwscizmf7kkfhd29jz5hl5x2x8";source="17gdym7f8851w06y0h4hdz7s9967i6x9awhqgw0i4fi0fafmyiz0";};
 microtype-de-54080={doc="069d2f0jcg9m4fv8dli2dr9ags9gz6mkwy6fzz37ns4jzrqfsvwi";};
 midnight-15878={run="05hzxlzr19snz16sddzpyh5f7vvs6jcdsqyqvqga17rr8y04sdwz";doc="1ky8k2ys88n6hn2q9v9gr71g772gm5zvxlbzmibvajq0hhqm41l8";};
 midpage-17484={run="0hh4r2sgdgzm0nryzqymd66a7hr74rvcsn58y7dc7di6mhikrysn";doc="0jfw5wd6qbxhf90mpi8fmv0nbazkbg9h65z91613j1ynqqf0087y";};
 miller-18789={run="1nk31l9g231c3dk70fqph444z9x5rdjy6g7wazy4ygl3q4gfh6fj";doc="1vvxnbbjn325y9s5h7qp6v2z1xy6wwppwqv6iwdak7mf47gww2gf";source="0jpyvjpaqz1x5avqy1dzf22qwss7ksbp917ncmgjdxhj82jhy2d7";};
 milog-41610={run="0v5rxsa182n28dzd3l3y4qdsz6rinv3r6p94iy73r26j7jgsqd5d";doc="04z8ya5gba7f5q86ch57zqbiz81s62hpdbn7b8jmkyy953g5l8vb";};
-milsymb-54361={run="04r9xbgsc8w783zf8nn5d6c5fiwmzhlqdw5a36wk7l9ll2rvbvgd";doc="14wj7l4bykfy8nsayl105g61xc8zvnrvd13mbcd1qv9x5j8vvp4d";};
+milsymb-66697={run="0m2rgn3am1idrpmjply52v2s8frxgbdr80gxiy69fdk2psqh6lcf";doc="0cvy530713p15r8kd8rb34rvmryk5mkz7f519b9jzgl2i5kcsadx";};
 mindflow-65236={run="1i5a3jnyi07sp6zz3cyyyyp8gbimy7ypvxsg9220cyws2z65d7zm";doc="13qpcy8bwywvn0yv8qsi1wmwzlhw3yawg5dnb97mkj607cj7bzhz";source="02amv0fn4jk7k4x7ammi1n5y8c7b18hjs93mm6zs1pxsvxzc0j6f";};
 minibox-30914={run="0r94l5sy4n97p895xk33ir3dli1ngy3p67w2d3i7f6hi6czvykm2";doc="0bzd55wkdxw8spw4706nj0sk478zbnvq9cnkpid638cwb6csb21c";source="1dm8p6rjivm0xxa7px5dvsnrqs48zwn2kiq3vr6gdqmiy0ld1v93";};
 minidocument-43752={run="1mrzcxa59kpmrkhnnv08z7h48bj74gk2b0q3bvhmvddd6047yxwy";doc="0dl4l8skhz7fm23mpmgmy593f34w78mm5qwab5bc41sg0xc0lyy3";source="1n0qf2r1mjp8vx3s750fw5h2q51pp3qxf90gds8bzq2cv6mi61sv";};
 minifp-32559={run="1vpq8mh443hhmnf5cgj37jm362m90zdhm55jzqh1x84dadqpmivf";doc="08f3hp3knyc37a2fy87i11q62dlb35ri197gxm3ghl5h28zvzpfb";source="1l837v8c70s8x1xn4xhag6nkfpayamgzk95fb23qw23xpf6zp2wv";};
-minim-66396={run="16nv9vgr49ixq01ai74wv744x3pzpr3b3wv7qcdcw4pwq8hp97s4";doc="082zlxjrvxrpgxpih8127iygm44wrmhlpl2hxm2ayvq5wckizyva";};
+minim-69352={run="0ny85fr9921mdx8kprbq9q2w431g33yyi2zadbw1p19xsng4xy0v";doc="0lv17nf3lvll2bb777xkd5d0mpkrd2ixhqn32448ilczxqp71qcb";};
 minim-hatching-62395={run="0raih3zsaxpas4myf4m0bmdxqm1av62cldjs4z768nndkv6xl1iw";doc="0bngn9d24w77dxi1s7ad87gi27m48d4jr2j51cpmmagfdvlqnfsi";};
-minim-math-66396={run="07hfmdq9gqk7nynic8yn9yp67g09h8pj24l9iabqxihvzhcqj2v8";doc="0xabrj2xc7vd3ic379pmbnc3rfs4c4j2fq87r8ynx1zbd30xpiif";};
-minim-mp-66396={run="1i6g9ll873gipb70jgbxr4gsi3fg1jvams8iknjsgx048algk08r";doc="0m8gvdnf0bpih2f8vmp2ixpxmmsngd3zj6zyqvk5823dax64148w";};
-minim-pdf-66396={run="0cb6yv165zvg665hh09sc87v4v45zc8jgqf8waiik08x8a1p71mr";doc="09nm0qs5a27jcx6g27112vvw6bwwir87xpygc6s111vij3vk0x0z";};
-minim-xmp-66396={run="104w7599qfvynh0l0hvm88nh0mq2zr4hzgjmnmf9f4as3ab28z25";doc="15z2r82mabdahgv6wbrap2pyqa9clhnq4al3qbyg1ks77pj00izp";};
-minimalist-66447={run="1gbv41z0kzfg43qvll1mq6ri92fjz2al52sxffmn963vwkl5awzd";doc="15x329zawlajh05lxx2gk7nngk7g4mas80qvigawkc6psixqi01r";};
+minim-math-69352={run="1fa8a3jq51wm23ivmb5n6hrcbyxcmhb95x08n4lmhw6x6qsr0hj7";doc="1dpilbyr9hdik1lp5lm860hjk7ni9adwn3dw82pasiipqvy8qzcf";};
+minim-mp-69352={run="16cb8sqfw625nx2zw0qclskw30zp13c5hcgza80ghvvmmd4ixpvr";doc="0nmg25mmk30q15vpzzpmiwc0lwkk7qnx5dx57bp7wfq5w08jc8df";};
+minim-pdf-69352={run="03b8awx6kg2j49485arlzaz73kx1bp73iq9mp5fh0jj45hxvls5a";doc="0qjwpff43h3a02v4qsk4p2v995kqp049n4qg0nd0g4hx6y5gi2l5";};
+minim-xmp-69352={run="1pyf6qisnkh1600ha6605if690715qprhwrakygq71gl0ak9xl00";doc="0vyhvy71ajr2d4dii4kp2inyihra85xvmqjs1fzz1am5hbqqmc7l";};
+minimalist-68552={run="17fpzv3x25gkr9z62mycd1pnv7fqp5hj22ax1qy236ckc02abc5y";doc="11656mg8gcbj480sy5z4avrw95f2ihm4b5n1a1s9qdaq2i6y97rz";};
 minipage-marginpar-15878={run="1qpymibkrwdbyf2rlvfjj0g8agxisd2ym3xi7lzx3g953g5whg5r";doc="06rivjd4x8mdpzv9h1yzkjbs317jvxa78zbv1kzyia7fps74wi1b";source="13k27b7avz3v2jadjh84w74rsyh4gz2x22b8j5lv6yvrjnwv09f6";};
 miniplot-17483={run="1hl5nd6p9c1xhm1kpw9sh1s81ymdy8lxfn7wh1sdvildcvclvd4q";doc="068s76gnva6rsnd7gfwswxfam56dbiw9s9ymqr2hcqx7i4dl87x4";};
 minitoc-61719={run="0v80ga66rg4cgifmyfa5vq52v5wz48lj4js0ym9197x2w98ra6ry";doc="07dah8lz54ccvrgigrvgcmbj76ppxaismbllfwyxcgkrkvqzxqkj";};
 minorrevision-32165={run="1mcgql832xmgpcwha6l0d282mhyva6xmyf75gbb6inwbgg6qkv9m";doc="0x9lw8xzmnn015n9hyzajnl9gicafj06gr2msk6vxwk136ayqfiy";};
-minted-65252={run="0mfammsz8hfcli0c5z99jsf4jsl7kxv2ykppm88x12g79rf164l8";doc="0pdc0gnidqc9f8cz8q8gfiv4y9r398n19f82agmdw1q19zibcfg0";source="10fqhx36xwgy62nvb4yc62andzxw667scsyff1kl1kqxrp6jc14l";};
+minted-69163={run="0ksd9lcaqvpncs236vczpsxq1ymx7xxhwpqix4n7yidzyypxnbix";doc="03305wk872gh9c3pish93spfxnvpawcbfjb1gbpbrnjvnkcq92jq";source="177whv7b60pmz0a2r178dw76s4bqixn0zpmr8g3c91gd3q07amdc";};
 mintspirit-64461={run="19jvqcydiwwq3kv5bq6524wsynj52b8mqm3j3wn108z7rhnampg5";doc="0mwrnf6q3h82qnxk9gy9ns12k9lr61z92vmlyx2x745i8ra7b551";};
 minutes-42186={run="0yc7dkvbn0g7gm07h9r62ma3aagbgparrlamh462a9ckdc7jzivp";doc="1m8blswmxhcm2ya966ajknx9arz3yh1sn62wnyxls220af3401ss";source="12qvfyiscs3y1wk3r2mdq7vgkmz1ldsbg3wz4agib97lc30qqmif";};
-mismath-66400={run="1hzw4v0my4ajg4v4l4mfk5gbg1w1c9amml2a43syasirrbdnkird";doc="07qsn69rzvnhwck1cmznpdz52nwh7025m6yhw3iz70ibw9pcbdzn";source="1f16dsz5qvqjypidwifq0hilhkzjni128is5s34hh9vim9jidxnn";};
+mismath-69169={run="0ryb4s3gz7c7q6ya8k6jj3pcvj8x8nvvwzlqydf2lr3c7aj6k8ij";doc="12v70qldkhfachvs05mygq6hzpxyvkshwrncnd7s88r8hizbjlpk";source="1s1l6zr9n9c3g8a0icwd8rha5rpqrhqakmqfwj89z29drjiliwhh";};
 missaali-61719={run="13y2dm6phd9c77j3rajvz4qma2h2k4nwhb520j3mm98bgmbkphf7";doc="16487s0ijkk6va22rhhyhxdqik863n1i25p0f67gcb8xp1s5l1wk";};
+mitthesis-68732={run="15z072l5qzmnn09awr9gazikc60h9f3z061qh0fy3j15gr3sw81d";doc="02b0bi0kycfm5x7z2xnbphamzm0xrlfvqsk0c01ni0gjf65j9f9m";};
 mkgrkindex-26313={run="01db35xmg9583hkr9bpflr6rj8bmvidaqahpvkr38bks21466sxz";doc="04p2xaycwszq5dp8s2h6gdm36l800ipvigblkm8m58bgycm553fw";};
 mkjobtexmf-29725={run="19nxq3k9jf4bypk2al38n6igpca369lxqcn3da8cm8c3m511nsmm";doc="042a29h6sq9mpy6chfkl6893zcpb3gd3gsl60xfwglivib706qwz";source="0q2i2xgpnjcx8qdkk47q7v0lmjdv88jjvl7zcybnhcaa9km8f9na";};
 mkpattern-15878={run="061y05sa0a12x23f68g7rinllkggjfghgmrq2qnan34f1ind1g36";doc="0b3ahrhxmm6lwijc7kgvn0k17fm9rkp7i754zrhfj7w4xgq6i50f";};
 mkpic-33700={run="0sib2pckayb4i7lxga35rkxvy05ix6idifcqrlcbmddfix3djrzp";doc="11pj8q1zvblsc2dyd68a0nri9zpqzrp9a6lha5dk91a2aygzaf87";};
 mla-paper-54080={run="0yzfqb3x58qzw5lcyw3f6c3xyd98zx7zmz9j2rmv42r5wj1g668p";doc="0kzi1gnla04shaiysrgyz4ak3l96h11shkrxcj0hbav43ndj2xhl";};
-mlacls-60508={run="1i6zkzy0xp0zpi6drq512pil4gxyw96sgsfx9vz45rzc7jvpbbh6";doc="1wsysqqv00fdcd7v26i5840g1hlrxdnnzznh1yz7yj3pwz40b0f8";source="03m5mqpn7bq0dzynwdmhxs207617aplvbc5ra1da7wifnaradlsa";};
+mlacls-67201={run="1i6zkzy0xp0zpi6drq512pil4gxyw96sgsfx9vz45rzc7jvpbbh6";doc="1wsysqqv00fdcd7v26i5840g1hlrxdnnzznh1yz7yj3pwz40b0f8";source="03m5mqpn7bq0dzynwdmhxs207617aplvbc5ra1da7wifnaradlsa";};
+mlawriter-67558={run="188kwakrn0ca1njpkgyq6z1x97ky8imxqgpyy9axcsm2wmzhmf4v";doc="0h1302wyl24ilvba68f8pjwhndmqn9n0h3nxr5ifhk01m8359nr1";};
 mleftright-53021={run="14lvlhhjj50v31lgf7ywk5dx7d5gbnivssl15qzpa6s619q2h6l7";doc="13vvfx4wxvf5liv641lwdm3hdba31rfrwsmirl36qwbrqsrl8xic";source="004ficd5chakwcklbdx83qp3985s1imlz5knc7f3m51zxgr4lmw5";};
 mlist-15878={run="044pjvbyabzqashbzag37ymqa9mr0c1qg3p7rb1j91r0y5s8ra8d";doc="1vlxzzg6f3jmcmp8fjn58gciywc2qgw9v1kxpm7qr3vlv40pdb13";source="0jim2g5qc9cdks4r3yi67hhszx3kkh26hhc0zgm2kx9syhdjv057";};
 mlmodern-57458={run="16f5cpczawzx4p44svpzy205l9m9g06w8r0554cgdpqdbwr139fx";doc="1rqb0g16wj7jg65xm0rk68cfz9r00zwy4r73wbkn0fqrchg08yn8";};
@@ -2513,13 +2570,13 @@ mltex-62145={run="0j5282big4df396xvk2xaasl7cwnjn2sa14xj22xgzvrz3hr4dvj";doc="13c
 mluexercise-56927={run="1yhgp5cidpkh4ihz20d1p445q370bh25jwc8ikqdq6g1qnf8sdv8";doc="0xcifm779nln96bmx0kvkmnzc9yk2314yc6nn98wm7gqdw2bf21s";source="0mq8fa0vd762q2h981mj6is4d5vry2qgggbbmffvmfb4h76z5gh2";};
 mmap-15878={run="19hnkczxhxcr7pa7880mfgjfhjwiyl2yxhfz67dsrljqsfpi19nl";doc="1f861w6clfn3k8gc6piil6bq6admbyr4kxqnkw8hh29s63rdn76j";};
 mnotes-63406={run="1jmkh3bpgqc1lw4q7s57n9p10wjhflck0lqrjxjni4qaqxhg02d0";doc="05kgkxjhizwpnz60r9kjlwqzv66lxc4fj1wh0199fkn1pyyjdrcg";source="1xpdyv0l87mb3af5iw06823iajk2dgv2dg0298nvzm8jj3ip6851";};
-mnras-55729={run="18pjsph7xpdvmnpq098vv4gl69k27ad7yxxsb60945zhgw9yjrk0";doc="1ml220k5md4hpj6lcmx297pbmdbyp1dj1j9vb55dcl5ypc6jr3sy";};
+mnras-68878={run="003pbz6wg81ymv082vxd7dzf37c08ym2s63c91yxvldn93p795n6";doc="19mgjg8yisia0jdgvwq0jdg0hj8qpzl393x0w0vkls8s82j2jc7y";};
 mnsymbol-18651={run="08b0ypa29zkbch5isk39bbakg76yp5g7w4caahphdljkqy4k27zd";doc="0pv7717qcjd5ps6vnlmxk1bqvkhi9lx6j92i6ggnak8i1izd75fw";source="15ksx2lxxyklg4dcckm82hysin9r2v7pa3v8gjns4wabj4hx7v4m";};
-modeles-factures-belges-assocs-50010={run="06n2871v6jx29r8qjgcpg4h3qbnc6kw24kfk2f08wbc2rg2xdkxn";doc="1509xrny3xvy7nii0v1rga8ip18g8bv3d6vf8a3qn0cayfa9p248";};
+modeles-factures-belges-assocs-67840={run="06n2871v6jx29r8qjgcpg4h3qbnc6kw24kfk2f08wbc2rg2xdkxn";doc="1509xrny3xvy7nii0v1rga8ip18g8bv3d6vf8a3qn0cayfa9p248";};
 moderncv-62128={run="1icns5fym56yp1wymsf50cl1wh1vc9vdix7lxapp18prx3y3kf0s";doc="1sj75g51dx8yd13ywyyhs8r135pgg5jv1h0zshxsdpj7b7hbdxf1";};
 modernposter-47269={run="1qc422hbqiyy6b539r7kyrshcja58mifdvs3bva1ikdxanxhnaq1";doc="1z9b3fanm97c3ik1q6v06qfwrgqcqwyi79h5dlhcnpwsm5dxqj0s";};
 moderntimeline-55518={run="10alhs944akmqfslqzi09436mmnjz8nm85r8jpjwpfcx28vfdwnh";doc="1bnz01q5rib9gr724gq6saxvzpg3lfmimh14rw5fn0fcn9bxlwsl";source="0y2kfxcpacslpn1ly6anv0hlil2x6wlsi37w9b8hj7xfx95qh51r";};
-modes-61719={run="0xg6jpyxni3r3fl6r7iq1vz97pp1w3gh8ccp7w5k51igs3dpvcvv";doc="1lgmgg6hhq5h3zgpc9vrbb6j0pif03cjs6gwj20df8md69hzr184";};
+modes-69113={run="05xf7g14jgs8whl3jirb2aww93mq7l64vddx68kl8wqc43j87v89";doc="0xpl3y1na7ldb3yjp808nywpg7fqf0v2mwc8rlv3jzpq6lnqyjb6";};
 modiagram-56886={run="1d3sz2yxc1n3xk6haja2yz14jgcl15pp21y985h7dflk2yjflabx";doc="1a42ylnkigyvvkk0yrxcpypz1qlki9r4jzpy6lpky0fa6bfbl4yc";};
 modref-15878={run="0pd0qd9yjhvdl3icrgl40lgyjsgahjw1jgc2ah75bfcwj02qm4v1";doc="0caqpnyg5gbv3b6336w59nn0w9ic4p12f5ig2n7r6kg8ydhp53d8";source="0n28d6x8w9rh3hah7p1imairyyywssajg7zwssp03dla0xlgxrql";};
 modroman-29803={run="17ijrx7f87pbkwbyjwigz3jr85fwzq6rr0pz1591fk9i36jhjaal";doc="044v0nkz0h1c7xsb66kmpqvr5gg4lg1qkx1x2qm9ijdpsbc4zsng";source="15xy8jpp2ac07qq0nl3nskpv62c59xb8qkl51irvpb0m01d97y39";};
@@ -2535,29 +2592,31 @@ morefloats-37927={run="0zdlkd53zl0y69d3manicnd8ch8qls6jxgr4mncqg5r57lqp10kd";doc
 morehype-38815={run="1yssb0c3l0sqyv775mjnbba3wv1h6497x125li68q8iwjc529wdr";doc="14s0bvxj2fjrkcrdp576c0ka1appg9g4ri4mc2isfb73yc6bmgh0";source="1sljhzy05akipng9lfajapvdm8jf2jf50v1awl38ld0wfkdqvcdq";};
 moresize-17513={run="07vq0wf250ixhrg70vdvaz7zh33zaq5sm32ka8qh1ab590c8w7h8";doc="1qa9y7q1wi7f9klziwgj6dw9c7bh453srljsx9m106nbyd1cvnpr";source="1gzj5bh16afgl8dg5z44h7d4m79i5naj4wl09m17x6snvfz7ifah";};
 moreverb-22126={run="14srw73gbfr0c3miizzs1rml2ms504hkv970p4dhp1wpk8ywc5f3";doc="0bp2lmzbd3zxqhijfqc7im10476xc50yc8amh0vf017ll7prcmjh";source="1snpyn7bc4qbmamxybv1j1h407fp597m26v2jq6yzijszfanh3rq";};
-morewrites-49531={run="1b6pfqhqn3hadnkb28kcl9k5hc7mynbk1ik7njicrbxwlx3qqm5y";doc="1iqmxgzvrhmfmf6jmc5dckziwzvk1ygyzbr94sp0209x11sw9fb2";source="03dd4cv0x0lw4xbzqpv26nm5q2bn50wbjjgiqnif2wg2smfap9sw";};
+morewrites-69306={run="0ia2cklwyp7avg1sncr7qj60qmlhc4zvmmlp8xjb8xp5vgn6jgy0";doc="0xnbybiycp23g754ys39nmak8hfi30q10ga0liaghhykyap2nisy";source="0cx05ra3n66jgx21dkq3ixwf3vmyfb6kswvgg9m1rn6c2vi8902f";};
 morisawa-46946={run="19b8nzkwdnqk61p1fc7yygjlrdimawmbam18akphcm70qx2h01dj";doc="1y218bablhn06njs5zqmsl6jvvsgyihm4il1x9722pqvvyxxf9q0";source="1flrf2c2jxpq33g26i0m2h63yd5jfy9bdh80idpx1m6bi6hhq7ac";};
+movement-arrows-67270={run="01kbaxy2wyzxla01gbxlwj5i28ahak3xgm7f8myv5d6p0s6by0cz";doc="00v14fnh2crcmnnkdj7dxjidlxl16iq3nfygx8igas1nbyni7xfj";};
 movie15-26473={run="1x48h56mw1pzllzz5b8fx5ikhp08gx9jybdn7qk3jvfy13a4r5yr";doc="0bhyfgsjwmvvl7lnam0k254w2rzn01wf5gzn38ymmlcbw4ajkkxl";};
 mp3d-29349={run="18wgwwvh2vj1adbvbl1q6lh0wy0cynfvrx6cgq0m5nqps7b3idra";doc="032ywwjrv21ypnlidvn95dcnq179pdiail86s4nxxllkjrryc2db";};
 mparhack-59066={run="068wp9vk6ablq8mhj165k2r6lg1llk1i8gyj71ha2kcsq62v4a0x";doc="1cs2ypwz4wkb3rs71wichmd8zc89vj4r58srqzmriwkjplhaw3p3";source="17c1pq9mqn0gaffawg66wwd2n9cd31gghlvmrpn9m9z6xcdm0ipa";};
 mparrows-39729={run="1hmbpfw1wn13zp8dksnlc86vb19zs0dbwx9hy0sbiyfmb7hidznc";doc="0ly0sw1c6i3k5nh26a260qw27x6rmv5p2zs11yh5076ziwdxnnlj";};
 mpattern-15878={run="045sji1qqwalvmiinqkfm3x4rk2jc7m9nya48brcc0rc5icq7xqn";doc="05b9pr86yy3hl14jymk4g4mf6f5v85b4nv2bc68m02dflvm4wnsj";};
+mpchess-67704={run="16wykynx5m3xdjnr9mfdqhq4yn4rw8cf7314cd05hf87i4r5vzwh";doc="08c4kwznib00895wwsv8npfjxvwhxv7hk58vh189b49jjbcddds6";};
 mpcolornames-23252={run="0bg59x762rfsl3whzqdpajakjnnx5jbh55m73dw23id1g7cs5rsx";doc="1n78abrsj5xj1gd2psgph7x4dm8nscvwmlp6ijz5p6xgphgqs5bf";source="0q74zsx3ni8bzl0k1iwrr19k7f9vkwqfm0bp24m91wlzvh4vlk7r";};
 mpfonts-54512={run="1z5ws1kr5s07xwcs39w049yvhfwadybjxb32kf9qd8818pgd4zkc";doc="1hjy2jqm8mlrwiipl4f1rp10nya3zcy2vsyibhs7f280h4zhdwxz";};
 mpgraphics-29776={run="0ymwcn16n44y47ngdsyb0vvfp9vjnwixhxk67z6ni5d19f23jqli";doc="0q04yj9j9f9j9rndqn9k95jwjm41g1rf5raqlrr1cn14bax0lr4p";source="1hacfhb2dbflvmg0c1lif1hmhxkj3g6j1mdlb3wm43zczgaavnmm";};
 mpman-ru-15878={doc="1x3drpi21zcmkhkscvl4l7805wskqa4zskydb33i0asss5p62396";};
 mpostinl-49559={run="01p16dzg5izjgd64l4qgrhx0dm99hp5lrn9v2rlghs8m249fwmv8";doc="1a1rhz5q1i69bi1blvwzz404h7mgjkjcp9c07dd8w6xri304gi1s";source="18rfna80lz3zrf7wynr8zdbiv36k2n6a8wd430r81ybr9233dhxp";};
-mptopdf-65471={run="1r7m71i3cnyf3q5nlg6c3ialw6vmch48sgf0flmd63y6n21zjsi9";doc="1ydpkqn183z751n5dbp8p3bn44kpdnigf87i521s9d3j46x0ac1y";};
-mptrees-60929={run="1dg0q6icha1yrlih9r1wzz6p8bqjw31bpfs6rnivkhb95nykl7rp";doc="1f0f1j99aj46f9sd8kjs0kkpcrqib19gh4k7v114vvkgbjlvykjm";};
+mptopdf-69363={run="1l2182idlbzci9kjpii0zg3c7fpmzf02dz5kg2zcv529mjwwv91f";doc="0q9jlvall8mf9j2zky41bhpz09yi061rfpkpd0arj346ah5w9nni";};
+mptrees-66952={run="0smqvznscn6a220syvg0cj4dbf65r2gy6fz0f4wmfh88l83fy0lv";doc="0sv029k1wi76hw4h3169m9mq1vd6wrjfvk0y9k7xb1zw5da1d83c";};
 ms-57473={run="0km07va23z5vzx87ndrv9mj0fq4yw0kv7qygd59smhm4q71yspkl";doc="122xwapvjzv9qyh3p1884bzdpalvqzzkmzd18gqr3q3r4cmk2q20";source="1myxaybppzkdl14h4g12xcp57zqjzkzijryv9nd6hy6ggl9y8i99";};
-msc-63291={run="08rw5drivv1frf7c3r0pfy3slp1sz3hzw4gl55vcjyh2b58v9qz1";doc="1qwrg7gwmigwpf9mhmrv25r3785z3nf7i5fh2q4y2pyn2x8l3bp5";};
+msc-67718={run="08rw5drivv1frf7c3r0pfy3slp1sz3hzw4gl55vcjyh2b58v9qz1";doc="1qwrg7gwmigwpf9mhmrv25r3785z3nf7i5fh2q4y2pyn2x8l3bp5";};
 msg-49578={run="1g418z3slb3cjf0wzgwgv0zkq0jnj647zqh6iqvlv42r7bil9001";doc="0miycfpf7s74jz831kqbh6qlkkzq31l1x0fkf9d04b8zp26mzilp";source="18djwd3g50ys4ckgzc3dp0y344qy86ni327jmyz3lpnqai8w1c8w";};
 mslapa-54080={run="0ayfh1yv1a8wsq9qldgcmvq9d12sxwaa7df5p3bhsp0klbqf7pzz";doc="1hiag2x2br0c0qpmm347cyxmi58mwg2x0lyqfakm87f68lbbxdq5";};
-msu-thesis-65462={run="016f7cwkpz1d5hayifp9zfsvlbjc6ans4npxgjwm9gjllblqc1kw";doc="1fifb54bm3mb8rw48fq88di0pqmswpm83ws9j1fjawp71izhfzfz";};
+msu-thesis-68480={run="1g6xxc39rvqbypd1njgcx0zxzrncsvrfnk3jqlbcaqxkym9qdvhi";doc="0b2dbp162hg610jcag8cg88ykckl4xj9gsmpzsrxxh8hmqv36g7p";};
 mtgreek-17967={run="17k0lvghiw4milj4cnf6wjhsj7c1banw550dvlw9spv60lccvqqz";doc="1qkl09lkdl9z6lm5hkn5c2xry7xd0f0ijx6xnyq3l6q99cnbafzq";source="13h8knsfbl91g20gxjw3c0m6j33wh4zkmm32ybfvzlm8q7nf2lhh";};
 mucproc-43445={run="06x3hqdp6d6nm3n296wnj4j4w93cwgjpz0nlw5qj0z44zlghs483";doc="0y33jak5lzhjp4v5d4pzfj7jlrr87dl6wdnkqcc0p9fr4fd2h1z1";source="0xzv1m01rj74gg188snznshir510lj5myckfjx7am6sxwlfni63i";};
 mugsthesis-64259={run="19bsplm3qclalplvsybvrgyk9wikr06cgr9zv1av6dp8djmz60mg";doc="0md9p75r8m677pgfiqm30y7nkixa77a244l58fcmj87i3j8jhx3r";source="0zx4npm8qzw4vxxi2fr7ylazga1mmsaq5r0kj9v614iybjg31733";};
-muling-61719={run="1y69g2f37fppvgasy06w40v8yg6aqgacfjynz0azfw409xm3b7av";doc="09i58z3268k20ifc4rp9lf9mcpaqvd0gza19l3m1vg8r4x049fw2";source="1awvkpd1flh3l938dclwfv819f8iqnqhkfwrqmkq0nbq8n9l929q";};
+muling-66741={run="05bhyl75w3qmji5s8n6mv85yjhq5nrgncnqshdv9fbzbgcnk7a97";doc="1fpsblzyxy0kf5vs4lnxdq11nkj7d9vw6a3vzyas6dqrlb370vzx";source="1m1yawp0wm3zafjwlpv6m010ih0gb24q8v2h94d5l2w2ymkyx2sb";};
 multenum-21775={run="1jn6xqrc31zzaj9yk244g3sbi8fj2klswbg24fkclgj0cjr1xi5j";doc="1pnjjbfwgy6ksdl76n9iiqla2wl0qa4370n49h4xy3rmrnbjmdqs";};
 multiaudience-60688={run="1pc03jhvlq35zzjsx6sq6bgzsp2mh861wqbazrgp7ilni1bqhqsx";doc="1ja9zphh154n7wwhqgl4xj4as17ag8mnr65k0wf2npjrir7rfqgf";source="04hpd3zsf24vwas726jq231p462dlb9fq01gx4z8wg3zcczn0agd";};
 multibbl-15878={run="1aj6j8rp94mh210pdwd9d4a5s5z9v5f36wpylwjv4v2ghmyrgyap";doc="0r4hnp4sgpx9x0hmrl3qlw55xlchav3r8sym2vnv4sqjnx4dc740";source="1c7cvjabssssy8wq6x6lr909zq4f0bkhdzx1x37n3rxm2ngdqpbs";};
@@ -2576,10 +2635,10 @@ multiple-choice-63722={run="17w8sc4gki7zlwkg1vqrmqrd9id6hdjf3kcvyavbmnrisri95hl5
 multirow-58396={run="0bsn4xzliq9gllmac4wqqsnws9slywc0d94abh81awpzv6vy8jwj";doc="070q5s39pfdq5wiq7crhdqhcyjalpd8kydig4djgji975b0xn0bk";source="08q074bixnkvn7hsi1n8vx0r6pqwwkdjsjnxz0n3lam30x4j1jib";};
 munich-15878={run="1dns8n2xybkf1m3j82adid2nr8ngvg5nnlxr5ky8ha706bmz1lra";doc="0dzwmrv636nca34b39mpxyhh99sr3s5k2rkj7jwms2knlfn81djm";};
 musical-54758={run="0rn4b1m1c58phyj9zzvyxdxbilma1bnncscwmxc8sdgb9iiwmlzm";doc="022s1z7d5ins4gpklg9hadlp1gqxpr6862i1g4wp036db0457l78";};
-musicography-66119={run="00kc6wq05k3vz07dn2hchq1fgnvmkj4as52v19jjqzakp3a7j8fk";doc="0b43y731m3h29j9b9mjijrjs3hf430cc9big7b4jqcvm0kaxsq6z";};
+musicography-68220={run="04vwhhd6mlk79bk5nblrdb6vlv2n2r1s9dfx752p3vj584w2mdmr";doc="1144kbjzybzfcxqbwlcfnk4wvqm7kw01slf9pzpb5jqagwrq12sv";};
 musikui-47472={run="0z2ya761bf0n7l45dqkc626s9d66qwr810fnwf34lr1876y3sfyi";doc="09sdb98m3j5wkl4p7hdpdrnrr0l25ni46nlhkhg1g54hdggcpjb9";};
 musixguit-21649={run="02cz225x5s3spj0wf9c51ka0i1ysmcrvlpa2b8vxd59f4pwz36am";doc="1g8hay5rdkpa4pjj0lj5gfs7xmqwzmzxnc8k023ahlz38gdczgnz";};
-musixtex-65519={run="00lbc9vzbd423f56ig6m5n6npprnz5zbmrnjxq58msfbra272199";doc="1hrwqiyglrryzdn54in9yz31c6wj4kdncsgz57w2p1x4rg8wmfw3";source="0ari7nwxlyj0lnqhzcpq4vh9xn0kdzqn9c1a5ih5hp1q2zwx2m7l";};
+musixtex-68484={run="06anc6izks564xxia4l67qazr25whyxq897762f7hk0a1pvfw9ha";doc="1xmnf612wfgxbf7rgm020jcvavqpnahad1sx4bnjcm1kapbxh19r";source="0ari7nwxlyj0lnqhzcpq4vh9xn0kdzqn9c1a5ih5hp1q2zwx2m7l";};
 musixtex-fonts-65517={run="1bq3nw6zig0grmmgnz7n84cvxasq61h2mmvm1j6mnyv69yhssm2s";doc="1pqr7h0r7cr2clzn5x74r2z78rlbczxmdwc7bkpb5a0k002cc9ga";};
 musixtnt-40307={run="0g2y52s0151br5vr7hjv5dfcyr96cjxp4n9ya3s1jj81q6q01jjq";doc="1y933975hv5vzwrgjizq315bkgnhlky21blv9kbnzf6kadic8ys7";};
 musuos-24857={run="0hfrgx3lk7mf9kzf6n8hswzh116pmllx0k3djbfinvvvhnqy972s";doc="0zxdnzd8x42z5fpvkarhsvdw3x4bz6qppn0iyjff1fjzwl8q8dzh";source="0igksc3i5ydqps0g172i2hkb854bnkf7xh4jqvwlimrlnhs7nnkk";};
@@ -2596,7 +2655,7 @@ mynsfc-60280={run="1zc7lgr1i0g5rszh9gzcv7fs98mk06ms5flb3iv2zww0w9r7iy0i";doc="01
 na-box-45130={run="08xixk2hl5w876x6hmp6h044spi0qw1qbgrqklwrmkxkgpa27i3s";doc="0i1p5f2nchl9hyrkc6s3hsqcvmyxsi4dbwyr0mph8slhw2rzl711";};
 na-position-55559={run="1amvifgadhq73avh1dq9mj2v4s5r3hlr6a3z4wcbhw32jd31ncbx";doc="0pcn0r0p0z7lxyfsvcnl9skm5aa5xi6362vydpx9kv8m11gl7pjb";};
 nag-24741={run="1l31y7mr00s6md7a68cz51yv0qfd26xaj04ax1ph6dqc97r3fv1w";doc="0gc56zgva7kziny3ridswnp8rscqi1mg51d8x580pidb11mp7dw2";source="1fh9nfjbkvw907ra1crqfhm7hl4k703g80w3c8qvd18r86wmn2i4";};
-naive-ebnf-66029={run="14vm282d65pahq1j2g98fvfnp293kdqxc5yfdhipdviv4kfmgvga";doc="12yhz1rhis11kmnqjag9z46qg35chaszqpah2fvzc3ssbjaxmbmk";source="0vvgc2ymhsv4j7ppnkd32mb8p6lqnpy7qyvkiqqwn1s6x3v9cndv";};
+naive-ebnf-67892={run="0hw3ra8cmmr79ii1l57z68kqxqjfwq1szl4fg1wykrh9cnca1bn3";doc="1i3h4328sczm3hv5claypc0qfymdmbygr4w6zankb3x0nzrgk9sm";source="0z2df8frslvvaqjsl6js5pwwnhjqkj52dnrvgbygvdhnkpkp5yix";};
 nameauth-65738={run="1zahfi4vsv4s43p1bvrbcd330i4z6x4pf3yy7vwbjdfgzmq39nx8";doc="0map4kf3r0pydsllp1fggcj9z9rir3ipnx7dz2g5asw99dj4dlz0";source="1w3qladdlwhxx7yzsjl17p0ykswg4phri0wadni4s953s04l1i3j";};
 namedef-55881={run="06nr8bwymbc3ps7whpxnsnbnl1fayz36hlgcy5isg0gcx8bdspfh";doc="080m0d24cish4an6p4q7rcrqpr2r1yvwvzk431nszhm39h7d8z80";source="03kg4zv07ch01n0nc7qwk99n32ifwf89z2976wg5k12yq51prplh";};
 namedtensor-65346={run="0jvcqdqnvnjm9z1jcdsa86cvv4f4hq94yi6r688j2sny2700q7a4";doc="0cjbz9g2b8cg2wm97vdgwpqby0jbc5l2d7j2cwx0j571hchlijim";};
@@ -2623,17 +2682,17 @@ neuralnetwork-31500={run="0rhvhk46z3wgz5w7xrbmlmgk2px8mvajbrrj4ygpqa58g37wl0v7";
 nevelok-39029={run="0c4zij8ihx3mz615jr4z150d61mj4ln88zrdbsjx9hlnandqkij1";doc="1x7jwmp32f1wph9k03q6ly9nbmdpsrkhyvn5j83n1fj6nj6hmzqf";source="15di74y4h7qgjh7gmmaingbg71jrlaiz1qxf960589k2xshslbi4";};
 newcastle-bst-62856={run="1qzr66mjmdkvrgy5lcv0yv82vx4vygxwa7m8lj6crsffwyaxaxkw";doc="0crwyc9r5zqz412j45c7qh43wkdj2z7rfrmmc510746b9nm31l13";};
 newcommand-18704={doc="1vlxm26393psl4kjfh533q03sb4klnfq84nld9ggs8l5x08dks58";};
-newcomputermodern-66338={run="0wwm937vg3shmy1dky3ax3xil0n1g0zbr64w7j0kxx7d73bik3w6";doc="1pidd7l6yr5g6nkjwzpwdchbz2pqw5hbvq66i0n9v8hd993rnm15";};
+newcomputermodern-69379={run="1p35sffk1hnffhqfpb13n0qam0f002yp2g987vqm9p4970fzgs0y";doc="1n2hamvbjgjnqw03vrml6k5rw2njf31fz219h20j82k29k42mmsb";};
 newenviron-29331={run="0vij59qibxvl81r367yxfl4mgp8fjzd99x3aq008hwh3g1d8ciaq";doc="1nvra7lh4zvxy70hf4ndj4nl3ij3ar8g2fxrc0951qvixz9jx7mm";};
 newfile-15878={run="0gah9qbkpib651rjfrakzldi4wd7gv74y8j455n1yi6wnr0yq570";doc="0vqlij71kfjzbl08sh38rzs9k714xigjc1cdvvpj2m6bhimazp76";source="0sw9cqids994lscbjif8h7npp4cmzrhrcvccspag2aa78gsvz04i";};
-newfloat-52906={run="01l6gl8hjml0q2kf3wzdnypr96ib3dryspgqd6hhfg33h26dji5d";doc="0lagdv0hd7kjxf221a2vzpgskvfr2h2wcdps0l90ycr48g9s1j68";source="151qai42ssn1ngn4fqi7098hmfb9v858bkbxh0qrszawhrz4w5q4";};
+newfloat-68434={run="1jhaccf7ppi5m5jycz77s5nldbmscydzbd2db8bmb0qx3z858m48";doc="11712zqy292xs7i4xvrrv948i6l1bwjxsgax7hph9hjfqs086rmq";source="018msda5vgamyn1lmq63rwv58h9z49q4rd09l7slij14djxwgdb6";};
 newlfm-15878={run="12mryj5w7dpn0mdv91grkrd24n2pn68p54bl70bg3pddvz5ab6gy";doc="0afpxw78vijnhx2rwv94ar6x4ivcrgz7873vdc5n4dafgg18z78s";source="0z081mn0zf92ana2v99sdyyqjz4lqnm2ymndp76xwih9p1z8233s";};
-newpax-64415={run="0l7pfbh0cm3giafn2wljwqjlp1nk7xncmmcvzs7jxzcsnkrzhnda";doc="12jmi9a9xndwcvniwnsf1gpa9aadx4k5z98qgm9l75fbrl7wwbf9";source="0mxc91hfljjzmby0r13d5isjk3i36rfgkfjmf6nfmwylcgjzh8zd";};
-newpx-61806={run="030mw0wr5gs2kvamyjm4w3chnd9f0yf9979byrg5qhmr31f72n5c";doc="1bcdwr79kaiib555mzmgglcdxgv28nk7hvnnrzcawkkqmkqh57v2";};
+newpax-68762={run="0dn36fqqwwa6jzcpznrjd7fk2mkzd37mpvyicif0dc7g125whndc";doc="0jcx3lvc1ay9b2dmj9f1kd7kxmyql95dn4xw4syp45ivqsag3p0a";source="0i7ilsx73lcifvzcffjp3n1swwv1af6l3qwn46mykxyv8c1ygjsr";};
+newpx-69380={run="0rcggz9vf7w0vvkba2d5dg2zmyq5px0wb5xzc0scvdn4bgn1cjnk";doc="04hsww1gwp04nwjq7ns08bi73yyy35l2k3dx4akr8kvr16inn6sr";source="0larcp5lk303p8bryaihfdvzacbkzmx4kldira7k42sg31p5hlbj";};
 newsletr-15878={run="0hl73l6cv94g9k4qnldxad6nl56n9c1r9rkwh2c38sr31d6fn8z5";doc="15bd97zlny5p212naaig42li7ki3f9bfr9b5pqk0vhbf17pik9za";};
 newspaper-15878={run="1afj267dlvgcw8028b4c0v9rdj77w47zjgpk0grbapy7wjgpyjb2";doc="12hlji06sd7bvw7r664cg8ijxabc2q1rb7z516ph18ayjl5vca82";source="1h8abnmiai3c66cjndm6xawz00z1pfmgwlp6w43amjrk1rm4r5vm";};
-newtx-62369={run="0ah3pmxi99z8b7sv8xhjlnwj9l5pqh2p8m6vbbscgacpv9a3w9w9";doc="004rgsavjy3n5221az47wj2h1v1y76pjsxp0kv6n6wgv6j42zk9i";};
-newtxsf-59227={run="1gb2q7pdgdggdxmi0v3878fmnyf8cd0q8vhk12nzga4dkpjxahmq";doc="1yx8np1xcq2h9ddpg9j47gjx9zz9i16d607lr710z3alb8ddarij";};
+newtx-69381={run="1cwaaax209k8196h90q0n0blkb638047hqzprv5lrzjx5sa8xafy";doc="0zzqswva33n8d306g5znq4zyhppqqygc04krc4wzn2wm2jjh9sxp";};
+newtxsf-67051={run="1si13s0wcgb8smy9lb277y11iy8pwcngvlqann31f8znkp8rk1dh";doc="0f76vjwqa1c1bn7yzfcy47k1f8kp5y878mm9ry3m2glsscixr9bi";};
 newtxtt-54512={run="1rydma1iqcb7k8ihyhpgdbrq4vpsy2dwyij2pr5p3bbmsc60kc42";doc="12mvwqmpb1hyn3l98z74qhyqzkinzw4q4f4q0mx1z586238q4klj";};
 newunicodechar-47382={run="1zr5w047xqg9bi6drl2rw414m9bzpa5r7n5270zr8k8jj74xcv7x";doc="11vk77c83xy40i9vclw4v1h5wnr03mb77fa8s2lhi0p4sq0c3vgr";source="060kbd07al8cwns5877ap7irpf3r3bkw0w62cwvl67y03gcmgr70";};
 newvbtm-23996={run="0d9q6mvczacdxykp381181mnra49qa0y0mngr0dnqp24hfw9j9l6";doc="0k6j4xpvjwwvz8cipgrqvrs2dj66n7yzlr9mcfsgd5w6rm1p1h4i";source="1p3g9qyq4x0ffv68501zlpf1w0ffm816pa0wqjpqf8pz2jmgcg5y";};
@@ -2642,8 +2701,8 @@ nextpage-15878={run="1p9dvw7fqspkg6hk6rdmsb5k5m9mkj0kz5a47wg5dgfqgrqpixf8";};
 nfssext-cfr-43640={run="1qp85vnmzsn967iqvzsf7yzsq1a4zxvyim7r0xb8pncak805fs61";doc="1jac2k7nldxq11rcf53glb5y3haqdsxzzxmgmvyzhbrzmnx0bsms";};
 nicefilelist-65842={run="1pjpffkhwfrayh6a5l57j0szaz63cn83mw53v17ibxk8dj4ls0d4";doc="0dqpx0kkgj4vcfvlyl96mllpn3kqz8qh2476kpfw0imrp8klsq7b";source="0q740bd8igcdy11nmpn61sb1yy1kfypvif2s62ym80p89qf8v74c";};
 niceframe-36086={run="047y9dh0p51lyrrq5fkvp4dpiszvf2nmx53hccl8hzgr2bs3kbwi";doc="14fapa38pffkj1hs58b7r1zkjn3dql9d98jzh13cybyfynd5crjp";source="095frb90nryk4m2iia4sq3kfrcfg2k3nq079770xlp720zqy07rc";};
-niceframe-type1-44671={run="0lcah795iqxkmdkr46gk76fypawz1mwiw3nxvgvbx9wrsdfccxy0";doc="0prjzgj1fg71kf38asq8622l6yjvn1pn6am1nxkwrpfmn3bmn76n";};
-nicematrix-66465={run="1fiz0knbw33adjh9i2wh7bk9kynz156xfjy48j2pr2nrzaclkwyi";doc="0gpa7lwrn1f94z8g1lh3mxwprq9wp005ahlqaj9ssxmfvlz9rdsp";source="18irk6n5y7kvzczlbnfgqsdw27b8jp0bn4k6s8vhrv2cghi4yniz";};
+niceframe-type1-68091={run="0p219ccyqcpf51q71185manybxsxc89d1crxxwqs96n9ppn7xb0z";doc="0a3xh5akhxcrk440wa6zwm7cf4yd1smis4pf4gd3cjv3rlkli79s";};
+nicematrix-69275={run="0n3zif8inxfxvzm7g751439afyjcxqzca4p4gffxj5apw5ccjdf3";doc="1xrvwf25qffjjc8xkkqgrfzq1fl0hchqy9db28kps6l0xj1bdn23";source="1v5x3ry9n6954p8nmjnnmqsqipyrf17fmkd7yn7kahppwc431zr4";};
 nicetext-38914={run="0aqfg8phvhlgvyy71flqsaqwmmc6lsl9vsxpxd61v69hp2qhvggh";doc="0c078pfiw1nz11krcgwbdlp2brdy2xmq6rda9yahfjjg54xgdbg5";source="112ji0zwy54nqswil8lvvcrq0ai7jsmdagvf2786zg9n14h5kr75";};
 nidanfloat-48295={run="15l4rdj7bk1279xjjkgh9a7scfmm6w88civ48shh7gwx8gsvcscb";doc="06ccf5yhrqvshj3d8ic3pbnvmdpjxq54i57y3141wgqcj5h062dp";source="04q480lddynb2gqz8azmyik8170vl056fhfjsnq8ydqj0rchnnqi";};
 nih-15878={run="1rlhnhdz58qqjv563wjpp11ppyqa5smjpzjdzfcra0wd6cxv9384";doc="16klyjxzxj4mipql71admicnzlnasnv9hb5pl52wyk4ic8ggdgwh";};
@@ -2653,27 +2712,29 @@ nimsticks-64118={run="0h87j3i80slsi5nc5299jvslhr1m3hb8hvs9mwz400b76k4x3ig0";doc=
 ninecolors-62006={run="0qvjykxzl9154wbiybwpv4j9da5vyvw2r14hkg9cvyqqd0fn7g3p";doc="14dmp0cm8hbjrd14szkcvkrff3l7shk4k9zlzx6hzkpmjc9qkl0w";};
 njurepo-50492={run="070jmqsm9caidgc0n1cmcj2v0x8dlxxwv54hcqkrisaf4nlkyyk1";doc="04hg7gxg0nplqpmmagqynnddxv12qadamjy3rj1sxhwxgjma9c5f";source="08fan5igmdc43s82s1adq7ymxpvahnp08f90p3p4qlqanj41yh65";};
 njustthesis-62451={run="1ar359ssgan8pk72bbvd4lp2yg63ww6g2ymbjlxbv63qh6czvqrr";doc="0s7dwmmhpb4qr2nnzr7jjh1zfk5fcvk51nxrf7i7ikq8jss0ic7s";source="12lq39rhj0z6msdpshagqylknn31dd2pl6ymk1lfagm2bq8mvx30";};
-njuthesis-65546={run="1psizvdympcv2xl8s8f8ld3hb2n8x26c10nq38x4ghnpqjvpbbal";doc="1v2by2by6vrjqrajqaxm0aba77vv84w98jxr06ils44rhygxxrls";source="0bzddlr990s6qs7xgwnsm4b5gybbffr0xpdz7fii651kq2cq8wha";};
+njuthesis-69051={run="07lvgl75ynq4fljq8h1pkd3jq4v6zaigqga3mwrhnd880igzk961";doc="02npr4q5ywrvzp8a20mvligfpd0w5wb5w24lx64i9qviid1vrdi3";source="10ggn8dvk6ldsbjqvvixslrzlhg95hfmqjd9ybb890xq3zmc7zca";};
 njuvisual-65261={run="0qgifkahh13dkc07dx32i3hn03rd14pkajg0yw7wx8l0la6nxsy1";doc="15nyzfqsrsvmqg39vidycw3agdy9yhgj7wlfjw649lykbwbqqlif";source="03ywgbapxldv05azn0s5xh9c7a7imq9qwxg90969as3fy5cjbl98";};
 nkarta-16437={run="0mhi640hsr7dy7jbvkqq2yl224i9ialf01jkcma0cq527nvrnm3f";doc="0bqix170zf7lgiv11v4mqyq3iva707zv91z154bi71cvnlknbkns";source="0f6m2wz1cd99s4nxppzdq9jm1hg02xzswgm85dmi18jffgrd2chp";};
 nl-interval-58328={run="1lrj178yhmd4ajwvpdlbsr97sg39k39b8n30wib0ww2lagyw6rgq";doc="0b439r5r8zzhgd5k0n1bzag3naxs2bjd6hlm3sw60viq8fs5wgy0";};
-nlctdoc-64708={run="0s64ifakmmx3szc80sb8pw2gvzspmgkzxwlq3z0p6w6v33fi9v67";doc="0xkdhpnk7b11nx01hkywcvds7w2z5hpj0zaszl55nhyqckw3b36m";};
+nlctdoc-68448={run="0rqlbsfwhan0hnxvadw5m77ny65fn0i12mrhwmvr83fm9ybp9q7p";doc="1yh4il6lq6hawxy00v3bfz6piryawsf7aia101knls0nb1ifrjan";};
 nmbib-37984={run="0kmrgd4w63x0f5j5l624j53mhivc7wllzi346c3ny7by6h7mh8in";doc="0fzg9jm7hd3zx5naf487xxfyg2yg0w9wmc60265av5v97qkghirx";source="1m3pnml7wdk0p6vqiyxssqi7rz0vkcvbd2z63wqy28r78w9js34x";};
 nndraw-59674={run="0gffz4kfyz81yg1cv7sgs5zr5a5kaay1pmac5q6v7v89w0bf8089";doc="12yj7gym7kzacwxjx5df3ssf97wrrnsm75z2c1j20srr30sz1cwg";source="1y29n03z9gxwy0gjzm6b5da0cqwg0bzm26cxlrz9551qk8nis9sb";};
 nnext-56575={run="0vf53wnrjday1q3hrplqklfp5kg57ibyjiijqw0jc074gzhyw0z7";doc="1rxxrnm8vb274c9l6lki1bxd6pij92klryigd40wwwwxzh8fc10r";source="1w3p9ig1jivwyy9rlbzfgcy82h3wlj2ig3rdlaq9k9fx8vd6znah";};
 noconflict-30140={run="1flkwyz36xycq4aidj9v6ga29ghbww8ss5dkz4lzsr96nv38q78r";doc="1v3q7xbss5ra1dizg2mz66zq97cfsv5lgnd136xqbbmn5vphl0dj";};
-nodetree-65298={run="01jx5g0kzlxidji4sihj81rb38sbhpiyg4ydi6n6daym4l727ywj";doc="015mlqj96gylzml2kjvwx03bis28b4f3igf9170yxv1v9qn3iyrf";source="149ga4ih26c4zhdw51s557kxc21ssm74vinwm3iar9zdj66g486q";};
+nodetree-68244={run="1d02cgh8vy6nq90ndx6yy907x8kispwxjcxy1smdjd35308hhxjw";doc="173jz2ihpnwp7bdhq2j6nxkmsabrg9mib185pyz5v55cyh45whlw";source="150iq6m7yvb94qzgj9c290s5wkc0sp06zbmc8kn42wdqz2b5wqh8";};
 noindentafter-59195={run="1gp4zyqwq07f85qp703iwsa0351yp49zyjrzrhfidw456whhl3a7";doc="0is88wpryqdd179fvhjkvq6qy4inz0sp8a7j1i90iziadkf4rchx";source="145bfg8qz8m64x6p2kzkz6skzkdi9jc82q77zr50xms9565bhf4l";};
 noitcrul-15878={run="1whs120vlg4cdjmb1x363g92ira9nc8j2h65qnvwv8qrmh2hrwnp";doc="0y3j12rb8ks8sjs1ikw3sccq7p7zmixc10nhdy9yg9rzwcgmicva";source="1dsjxs73xf79sjq9xynnv78jws1j39l240lvcvpir1k8vnzwfa13";};
 nolbreaks-26786={run="15qa4nf5c9gl3ha4prajqxl2p1ks6fpql03d52prm9vqkwphzgyy";doc="1h9n7ki3iznbzq519cliw03fcn2k40f2rldjkhnp5vlzma81inh3";};
 nomencl-61029={run="14225s3b27dmdgkjqyh4fqcwyyaahva0sk3k6nvffl6jjqdwsgkp";doc="0vqxxjlvgaa31mjfl6jv0azfh7qv0g341i27s6k9zz35a7dwqaq3";source="0fxfan0s0y1i30rg2mwxl21ymfknh4cnw8za13mx34wvaxmc4l9l";};
 nomentbl-16549={run="08jvfyn4vd8qwlnbsqhlxnwnl4qv5b8r32slcbfwshc4kyi2hn9a";doc="0g48qyrrj6npsjcnnzn3mgsmd5fq4v5vzzsgxvvx9x15446987cm";source="10b41ax3ynpdbn9bawkp43whqjkygh8f2p6qdjiwa47w1acca8zh";};
+non-decimal-units-68504={run="14ry0yyvs4d77vp3ghvfaw1vwc8j0jacn3p3vbb65pjzmgjxabdf";doc="1hkpmg9vg8gr6chb8qri06vfdnyw22abp11d1lap8l8xv40c3las";};
 nonfloat-17598={run="1ay9s9xrf27sgan2gan86g68i91rwa8spmmj2l13pb3zl5qikw66";doc="0jjil5rbxzcpkyid8y5dahab2ca9r77sw2scgrc4mf2h4nhrjfyz";source="0vyvpxyrqjqmlw2fj4b9avy7sn79m4q8gcbgzdkzzp8d0rng5i8s";};
 nonumonpart-22114={run="0dyf0nl16j7vp955g64rbvvjyqq31x5iv7dbkh8cikwvgn9g85s5";doc="06j6sc8q18mnnnpbj57ykays69n78z0iz1r3vink7qaw4a8fbyba";source="0p3gicf0fzmk0f7lblydf31pi9x0f6x0k5rvdd2ia8hrjdaqv1dz";};
 nopageno-18128={run="098q0visa9g5lh3vp6bp484fglrq8g21v4cb71cnc30f7avkg1v7";doc="0n7p2f039vmd060ncc81yi2hnn7qyk6b7z2hpxh9pp78dwklgx98";};
 norasi-c90-60831={run="1bsx31al77ci58p1zavp5q9dl8msdjqilb19fglnkhgg8bjbqh7d";source="1bsivm5im913x336v6qrv31b926lfr8821pzqshq600k4fgk3rj3";};
 normalcolor-40125={run="1yvbqc6px76phjgy9cwpqwy035nb61nvcxy32v9xa9wfcp36nw7g";doc="0919aan1qxp5lfqm902ijn6sflkzv1dgxi12hjfixd8d1d7rlfgs";source="13lqp3zjnhm1wmf5id1bbr86l5qi13xgij455l38l55is468sv8j";};
-nostarch-15878={run="181a6pjdr7ffsngv7j84ddps84csv7ir3wr49qjax3lr5fhiw7qi";doc="1sjd4yz3j70pncr47ryis4w4459lbs4jpbb75wdzvgygv9qxz3w2";source="0f6qrlydiajnla9n4mqnv8f1iyl0f8ip98hbx6dzmmjz0k5i9bhj";};
+nostarch-67683={run="10gkz055a6j0hnpya1a49ysqqsnf9f85fdnxm1aacjnng5wpshzv";doc="0s06svy9gjvvpjqni59qfzzlwplx12dbgcvpkdi4zj7r9wyh4v3v";source="1vd8r7viglzi00vfxq4wnjdciamhl9yprham3mg0mmrvmp30l52f";};
+notebeamer-68871={run="1glrwrk760xh657ipslz8vp41qwp1qhmb7cwq2p3kgzczprkj8zk";doc="1yb2ml5mc1mr19di0zc168v63n0vl7hb6vq3fggiw9ppl0rzsasz";};
 notes-42428={run="058316ialcra7m56ww7imzqqhk318abwscw5g60hr73x3x7d9dgq";doc="1zq11rygqkbx85cf79ixwcv1w971w4hx8zfsv7z16am4mlxcdz5j";source="1ycxa3m2l13z6a3a4a88wpznvwdb78qyxkh879cvg85apb11rffq";};
 notes2bib-52231={run="02iwnpiq918izkssa8j7fiz2jbfjn87xdjh9spwys98q2cvvxd53";doc="1md7zvcnlb2sf8zw0vlnsnia1l22gr69jgksy5yg30jis3zm2gjp";source="1fb70w9y6gj1a0y4w3zd7yfmk5gygx10y8xjmdj06ky7k0r87qlx";};
 notespages-41906={run="1zn3ygkiyqax88azc7vcrkfw5hfzbbq3jkacnv50c8z5xllk2nwz";doc="0556azchy0yc8757wcy687vn82q0jmyf7n38vyx3admpawyk1pxk";source="052p17fbdpbdpzaai5xn8r0v6lamv7ps78svd27216p71djsfr66";};
@@ -2682,11 +2743,10 @@ notex-bst-42361={run="14r3q4z35k5n0rl2igjs4lj5ic4yd14xksg1qam5klb6raaf1jkh";};
 noto-64351={run="1bq1ysvd9bxcbfql6lwcbx2878n3bjwb3akawm7z025igi7hnml8";doc="1pz1flyv3js1wfw9p57cz9qb10dd64i978z76ngmfg5k1hp0w7l2";};
 noto-emoji-62950={run="1d1mxl32brfyn3a8jpkby0kwv69gimj9wcl8y61jd2qdlfd0mx9z";doc="05rch3ybas6gds53g35gda10gia61v49kgxi3gzcxvn92595zv9a";};
 notoccite-18129={run="0cbvwvgh3rkms6akamnrmzwm6796ly5fa93qsb30bqafgmx56il9";doc="1h14fkdn5kvxagkjx8h6f6a06v7y9z48s87x52cblwykgfm70qxz";};
-notomath-58726={run="1ky2wk10mpbhjpqcsagm6sydkb5n8czpryfs32xf6w64nzy5hivh";doc="1wjnrksgn1qmalqq1c11wdlpwq34hw8zx07cyi2jw26qvyh9fpdf";};
-novel-65848={run="1c8l8x00awbvkrn2g9mxq3wkgvblcshfbywg867915fsva5hvcsf";doc="1fiwj3gjvjhybplbsml8pg1gfaklwpc7pp6q9hm5ji9c2d2hd4vq";};
+notomath-68014={run="04ik99znmf5a97q474p8fj4rhmggzggn9kbdyxhpwxcd1s15w629";doc="0bwcf8s46i3gb79yns1y7crfhjsv32np496rhqq197cjd1c4lml9";};
+novel-68807={run="1k9kkgxsxp1b9fd5d82swypacp2icpp81dy5xnbc1y43wvg2z8r8";doc="08ayhlq5wx9hxn86imy893mamsskl7hk8ya409c6rpkn0y356g5n";};
 nowidow-24066={run="1w18i36ynsyldb9gs0yhv6plyrjs4762y7bglncv7bhqjmyy7y3g";doc="1l2zq2ain8nhkaa8aagpm22nvg8p1vk2cdgs6pmrydk0hhmjh01h";source="01qjfpps7ahmrwvg142mspj8gsyx21l3nr75g0v7qsqxbfjjy6gk";};
 nox-30991={run="06036p9059x0lzliq9b2pqahnbp8jlkd1gnq300rq0syj37mjk5f";doc="1qfjlzczcnmf3pgqf4qr5v9c6ws6qba9hm28h3xwf2s3099drxjd";};
-npp-for-context-51389={doc="11bzcxi27yia87ia7ych62gi2y59jx379fz63avc4qyq4m9686ag";};
 nrc-29027={run="01pczvyzfc2vnrfsab180fg0nz13cmry0dvdxmq3lxzp75ji5aqj";doc="0l6lpvddg25k8dynqr26gj7fnaq7k6zbzp5p62684sz9351pvz6c";source="0lzfw45m3mw7yd9sx6lya6cvan696p74wrxgvmqa73prc2lhmbv8";};
 ntgclass-65522={run="0dlm313f7m0cj0fsqv884xi16kq9imrkkiaxg8lszy8idp9vvmhf";doc="1c8kc3q9xqxl28xdyzlnlzwdfixbfra6vi32p6iy353mdhvhx2r5";source="0fhs6v9zkfxfxp2g17h4cxa4k9dm4dfgk2dl76w61ad41wd629d8";};
 nth-54252={run="0716sd99xjdkplm7jdmg4lx8lpfnnx6mxjp1l1sp2bfqcg73p4hm";};
@@ -2696,18 +2756,18 @@ nuc-22256={run="1918fk7bh6pz1grm1655fag16i0ir67ywcx28jsggsly6641nkm9";doc="0r434
 nucleardata-47307={run="0rrxpz66rf6g9cp6ix4rrbjqj9s357qsbv87dhri62iy3alw5bv9";doc="0kfi9c6isdlf188zsk2yx38z43zjzxf8fhvl3hm2y87di2kihdax";source="1lai682rycff3hm954x482hzn1mq1lrik3g1fwkbm73s99nljyj1";};
 numberedblock-33109={run="11v5n8s9glczglmqm4bfykg5v0qdqr2wfnymb15aichqqvbfcgsd";doc="0rh954i5167pmwmisn3v26zqqgdrk5bcn2pc16m3wyrdgvq02kzw";};
 numberpt-51640={run="1f4hmqlkfzqm8c4q9cbcqsh9pkchnylfv6gfzafgn9v3rdksg2dj";doc="04hdl6zrzw4zm8cihvfidlnjirfj7zlmh9mb7nzzq68cyxn30256";source="0ha3v5lgn8sycfxs6hlbdf7n0b8mcl2mny2kx37s1bib0h8i0bxg";};
-numerica-61283={run="1jnpxj4z8ln5isv9sk8qis446zlwnmj971j0b15zk95d7ddkbl8k";doc="0l2czqs4cqfwqsk7arqc6rg9zj4ayy46i892908pgdlvdksa1kh9";};
-numerica-plus-61289={run="0qr246dk83vkzxz18pn2fzn0n7bg19m785dkgwsmqyzdal684ajl";doc="1lpv72f54a2ny9ilhqrmb0dxqyx6m6wsnl32j79n42k1cahhyh37";};
-numerica-tables-61288={run="0dw5zdivhhnh2vbp83wnv0cijd0sqd9ddqx4fsbc3z06a2r1pcs0";doc="1x60sr6l0p7d599dslpxxlnch9fnzpd97h2p82r7awyz52q2jjm0";};
+numerica-68021={run="0x4nx06ppb1blp4012pb6l3fkp3ikw94xy9g3653cam3p6pwlviv";doc="0dhsfbysxrm91hxhgs842yv6cxx0agsj486sibzwsxajbmwxc36g";};
+numerica-plus-68019={run="1x4dmzxb4m11kdscmp8n7jd1ihd21h0nh6dx3gx8nmxghzq20160";doc="0h3y8nxw4zdbxzwkfkffkc8p0pjmxd0lh8zcn5cisdjzk2dsjjyq";};
+numerica-tables-68193={run="16zsxbdydwzh460qc69zs54w666qmim5rn0lgf5b9kx2l0x8mvbm";doc="0b1v2a44lzys1qq2c98c22v0i920j07k2ayi8l4kb0z95gzq4y29";};
 numericplots-31729={run="1c127aalh7jcx9rxhsyhi2k1qdz6fg8d6qj0kvf564s9c0npgar6";doc="045z6l4dmn3bzfsn7gi6bdhwvp3cbf9nj8fcs6q07vi4by71bk98";};
 numname-18130={run="0sj8plvx36i2azwnk9zhxd16x7dxk2419rdzc93pl3f68kxdmy5y";doc="18iarxgxxi5dj0cj1bf0il74ndn5lng3axf7zz0jwqpl5d84pz6b";};
 numnameru-44895={run="151c13r8arj094jw3zaymz6i7invgpyqr95p0qnwhj22z418pj1m";doc="1rrargznsmgq1h6a2ixxr9bg57zcrs9zwhxgz0ssbscdyvjqik8n";};
 numprint-27498={run="0wkijyxl1zzay8vqvsyhk6kf5247qr8k55rz91dn1ph7b597d952";doc="1jra448iyyvc8qgc9z49brb6j9c89fzf5zhgz48k9959bv8izs8r";source="1svwh456nbswkrmj98s91vr2x05fvs58chkr5d5slq14wg1cpa0q";};
 numspell-61132={run="10rqraqmnd3pybpih3fhk0068g448252hwcckxzd9vd33n7gfw1a";doc="1hlfb7b3hq9ps7l6z0qzymc8mg67kdipcshb1bpkindasx6dnkl3";};
 nunito-57429={run="08hnxivx7ixmvp7l6kxfr0vxy7c78i9jqkam0xxg5mkxs9ip481k";doc="0xhv3rws4kp5s4q4c10ykkf3yyl9i9ndxjavjx9xxxwm1iap9m3f";};
-nwafuthesis-63438={run="0clw1020mi52gjd2cl6ij71jx94niyl79p3n54hccammsdwzq1ga";doc="1pmf4gb0v5y505b5lw3wsfy91nmas88l98g0ncwnmvx3zbm1yf0s";source="1icvfs9l8qh93wgjs4zawzfwipmml19bs1b2ix01dhavai85pl2a";};
+nwafuthesis-66895={run="0vicfc3gnxf7cvj7lqa8sd5maxlkfqazc3wi8il553fw88dxvkcq";doc="10sln765phsv6rpxjhn6z431nwwkch3qbq0s3wjk0mc34302qykx";source="1xk78d8zaqbn82lsw0fi428ac9ybs0xnnva2lkb9k8zyijz5w04r";};
 nwejm-64462={run="0c3m871h5s86n61yappdbw42yws7nwk3z6fa7nwqx55nd145yhab";doc="041ksqcn7dz37rj6f3bb02mjai9xl58wbzkzpac4i2fnz3i7hclk";source="1y7a4yn0vkxg1r5fjbpdm3b9y2sn6bsg0f92qcv706siyyynkbmp";};
-oberdiek-65521={run="0hqbq0i6miyi068xsq44zkpsv8crnp9c1w5sscflj7b3zzrd6wjb";doc="053gd080j36f6zyij2d9ngwihcpwmvj2rz1lshhrlvbavh5mawv3";source="0k5jwnv9c02lckfl80ybjbdc10h4ipiviljdzz768qgmxx5bpdvr";};
+oberdiek-69038={run="1gp308z3xisg8qmg6bggddmmjdpcg074vv15jwhb6z8xfwyj3jvp";doc="1cxl8d26mclv7054s92c11s301gk9kv11zicx8ikv7mpa605ylrf";source="0xcdyy5v1a28zqyip8n8j8szj0bdircciww0a98w5wfxgl1d0dym";};
 objectz-61719={run="0s93jjwcmyjd126wmf2rw3776jgq0ldk40f269cp29968q00sfn3";doc="1qxqphnsgh412lizx6jij6qhnlx1d558bzd3klqf950bp2hy3cm6";source="1l8afdawrrcnbpqdhjls28ncksg8lzs7g59viqygwixwplha0fb9";};
 obnov-33355={run="14cz2rqp4sf4f880d49yhvqjkzm5aw91cdijmqwf283cqgzhdmlf";doc="0k20zh42vcm449dh662frdmspmycx0mi81ml8qkvnncy8h40jxr8";};
 ocg-p-28803={run="1cfg5253i7rb0ng65fwm6v0yhs2l91gv0a3d8bra1bkwz2f1mfmj";doc="185fgw41dbw1hsbv5lr84spv1qcfglm0xhrgwk92g0dgh20d0kfd";};
@@ -2717,46 +2777,48 @@ ocherokee-25689={run="1xhb9y2m6sahkqlng98f9rqi94hrj66594zqdd2sv82902vfgl9p";doc=
 ocr-b-20852={run="0y62xmxbw7573fwvfr69r7bhfcywvhcb4mg7am5c3j96ipq5vqzh";doc="13r2chskacbnfawlc9xwskrl8lqj3dx8gzzpyjjk09rx1g5q9gc1";};
 ocr-b-outline-20969={run="11lv3dba2g8mrnfh1y6agg8ipivhnppd3s7gqljlpdbdbk40zbyn";doc="0017l87j9g42cjy1ki2xksh6xq0hl3rsxcrdyrddvvxp520p02x4";source="0yn2mcwj73mazk503f13qmfy2bqkq0gz264ckr33bc88f1i1518b";};
 ocr-latex-15878={run="1l5s8wlqk4fc9i3fizhbm3c7nafq36w39693xm1x07giqqw8q8cl";doc="0ai4kr65ls66ywxncb63jr6gy6lcw6zjvlgsbp4wd6kfjxs27bh7";};
-octave-66119={run="0sw5r5gqvpmrn96rfz8y8hdbrwasv751p7ga5dary1v1kp4brcr0";doc="1r9wywnqhgrg2jjlzyafhdnyxd3fa17zjbbw1bj2a3r2jzd201h5";};
+octave-66115={run="0sw5r5gqvpmrn96rfz8y8hdbrwasv751p7ga5dary1v1kp4brcr0";doc="1r9wywnqhgrg2jjlzyafhdnyxd3fa17zjbbw1bj2a3r2jzd201h5";};
 octavo-15878={run="16pwz513a39630p51n84761asli9kba5z3pmbgfkcz7yfk9iiq22";doc="0rdb58jnyyp12i7ndd6qibs2jc1f0zcw42jh9j48aid6nwslvrbr";source="1f13rhvd2l3v7fdivk1ybw0gnacv9y2pzwnbw8ykmaq3x7m3x2j6";};
-odsfile-65268={run="1zszlwr8aklijlwpqm91wmmf2fv1frmq1mf0vw4c754s21d61a6r";doc="1vk6q98xbq4zinkpjklq4pgw9ib4bnz346pbza8fi3v9q2szzz35";};
+odsfile-68204={run="1k1rhixcwaqyzawpajbi3ljnmawc5l582vb0vzsnmq5dkry7ccsd";doc="1jrq1mp70vj3cncv1l4f8km7yrn2lbhjlcrk0qa716r5isqhawfq";};
 ofs-16991={run="0g2rxji8g1nafyg1nzpy18vzk20p4p6r754m89naygs1qn5n4h01";doc="1v1z08m2ha071kb8zia1wlgkflkzj4hjws8rqnq7asvhi1s2p1rj";};
 ogham-24876={run="0hl3xjmd2bagcn2wnmr2rs1hzmgvm421rkdaimplzdnwj0r64j49";doc="0phm6xdxl1a6nh6g17nyz6p7f2ymll39k42588dzw45z7zwan40i";};
 oinuit-28668={run="1wr3r06hbxrc0v9cwyp7ad6jimw05x3yn6vqpnzchk5l0ixnlkaf";doc="1919kmp5sxd9q49m6dd8zrnjx0cqgav1i87gag1rffd5hz9w4fys";source="1mymvxv4721nhmfdlbl9bgc76dainzykggf93jx6xfwlld0krgis";};
 old-arrows-42872={run="1immbai327l7vkq67nz6mcnyqmx3ajg3blrhbmffkbl92482bv4d";doc="01kdfgiqp5n74lipiviv2alzallba37gyzfp1sqrvwwvrp3a3z63";};
 oldlatin-17932={run="0cxpm5qvbn0a643x2h4dc0pf00kqqk1z540j6dp7mbiwv48qqzdb";doc="1my5h8wq241dm3d6czb1spznrxmrclwgn8i391pwmc11z2ijqgjk";};
-oldstandard-64464={run="1b6vdk3gnqnha3yjcbszxk1lxr8ish2gw74rv63gp11cqbp1bcj6";doc="039pwj7myd53jljp8ihhd99ggl8zq4744s5i91sn1b3c44ipsgy3";};
+oldstandard-69185={run="01cfmbwlm3x7i331wkwgjq9l71wa2l490lqmjnr0n7dg5nk9kfk2";doc="0kbqi8vyz9rbb08yhy22ll65fq5i7xbxa9pwgfx6sxz6gsbdfin5";};
 oldstyle-15878={run="14lm3ghfgfqafqivam1dqf3gqgkchnbnc84z5i0whg2p18x9zns5";doc="1qj8nbcx1krpha49k4yzyix13vs9s41g96r7kpdmv52vlpfgs4lx";source="13c4dxvikdxx7qv7y9rfpgj4fgzp21q71xpmq1jzx7phwrsn6wcw";};
 olsak-misc-65631={run="1gm01jvlj8vcl9a3v53bcmg604dzf4immd39dj6n6c692r38hhzr";doc="1afxiazmp8pvgfym1i2bj8k5slfqi81d915d7lax59ib0p05w4mi";};
 omega-33046={run="047w29bij6g9k9fl7ymap4arhdmm9kvjfsikvjkf9nd7shd6k4kl";doc="0r686ck7z6vxcajrjihp4a4mh3z23xr8ic34dv9yp039dh0kbm71";};
-omegaware-62517={doc="08vsd2sdbv5qjdbc2yfn2civa9d5zqazd2fl8x4liq7wb426p7h0";};
-onedown-59010={run="19n9kl4l7z6h3vfkbv6m48vwds152cj8f764jz4n6vcwxvp10943";doc="0ca0j01gyv086x4zjy4arwgwk6vlapsr7fmqxiihkhngj60fr1sd";source="1ha3n8v7nkqkxvk2jc05y2i0665xnxa1n53pqhabh98b5qmck5bz";};
+omegaware-66186={doc="06kzz0342h6vvc32ydrzgpqsdqv5l0jbd5finr43fmzqi5jnswil";};
+onedown-69067={run="1hzj2cyyp3zqa2wnw576cjqg6nqziahdn3vijg9y7jr0gc3372ch";doc="0a4hvgsy9i6a26k6n51dv1pdx92d4vk6p3vdrbx8mqwigwa3rijq";source="0kbilw165090a925g1p6z6ayfynv0z7zjzw2c8sca3v0ncyy3cdj";};
 onlyamsmath-42927={run="158p92zgnmicfwibiyr5qbkwwkxhvfpvngkbpbw6grbdhlwsn63g";doc="1d2znlhbz509rqzlwqnbz9b64mpbhckh8pv23fqr8058xlbazkh6";source="08znvq2bzapn0dfa7f4sd08gm5k7m3sh6hkwy17zwkc0987wx487";};
 onrannual-17474={run="0bj29lk2nlsmky82ablxl0r6k6wl627zrsv9g97hydgdmi5nxasz";doc="08c3xmyiz91623lnps3iahi5ga9941nc6bvxmdihadxhm2lk769z";};
+opbible-68465={run="0njr5kkp6a0xfd010w3n8g65bv88zx26yd4nslajsip2nzad14n9";doc="0lyghd30v6wx5cmv7sidyy39qjkng3xlazgg50s6iaydld8hk608";};
 opcit-15878={run="1g54f5sv05rg1xxpydsakjrlckmh1wq0p15w4q0935iw0aq7rn8g";doc="1rx3ap93f4570d006qci6j6qi88zwxc8504gg554aak1lffazw5m";source="0242ajp415h3y20dyvi2lrp38saq10dgb6hpnmadzs7wrwxhma55";};
-opencolor-66372={run="18a6vha0n4mwgx9lnm3d4j4rkf72qx88fbzgs164arzpx4gp0ypy";doc="0n7myxbkijvqgxsvf9c2llkwhqj06i80sv81vgkxvx16974z0mg3";};
+opencolor-66363={run="18a6vha0n4mwgx9lnm3d4j4rkf72qx88fbzgs164arzpx4gp0ypy";doc="0n7myxbkijvqgxsvf9c2llkwhqj06i80sv81vgkxvx16974z0mg3";};
 opensans-54512={run="0xj7v9lv1ni7mq175l29a039a2ifmdsy1wnv1h0gfni5c34knm1w";doc="178pa2kjvp15la857iblh9qc195z3byd1wxxyn7c5bzmndvypgxn";};
 oplotsymbl-44951={run="1x5wqngjdmc4751ci5qaivzgqynmmg00kg2clngxjqf48n4fakdd";doc="0bj6w6h4g991rfddmrxgc02090vay2h2qjx36cb0hfx55gwkmh3b";};
 opteng-27331={run="07a6dja6s7c1759i9afgacx4v0fli98s6mcq5zig689hpkw841fg";doc="1125aj55p7n6b03mn6p6845yvx2jbjkwwldgwiixypklndqsf6cm";};
-optex-66516={run="09wprhbdr2m7p1hp46mbkwi6cc8w9d892z1qazhc80cgwy0ysfxj";doc="18ni5w0rr3as0cpb065myzvf4rqm2vx3wz1zblv11xchvi10sxnh";};
+optex-68873={run="0bkp2k9yflmndvzxf071wr0i5rhx4r3rjwf1jz5mv24291k617qk";doc="0pnn7vsfa4yncak7885lc4lcg9viwcl7q80f4g8axil1ash1f0mi";};
 optexcount-59817={run="15i48ly8mbhhk0mq4gxwpwbvhpgvk1pb8bfbmfk83sp1liq7xijc";doc="1cvhzkl2lbz939y417ipi22n9alh9j7f06d2r1s0h294692m7bpv";source="0s51426ib070x23d92rgpj247qni42hzaw569z64i7zr3nyx16dh";};
 optidef-50941={run="1jvalzi2gid20wn253swvhil05m273x6685n0b5wbrz5kbvzk212";doc="0sdd6rsdfx1fcw1493b12ww5llww6mv0rij3f1ik290c6qbmyr3w";};
 optional-18131={run="1mv65cqcrjhykpl565z96s57z05635q513qr440crbh61rp93chs";doc="1ks001q2b1yw87q0frhqq6yv77mskng6v1sm6kd8r22cv5g49xbx";};
 options-39030={run="1v2j59zcv5cplh3czd6r7cs4n79yvw3448492bxk446j4lx2mfcx";doc="1za038prpjb3s74ryr25q7hmz881gr8abmf68h7xdjq6bdk73da5";};
-orcidlink-59560={run="1ji42jszdnkalqq65ka45brdvsl4x7cpxdk6rvfsiacrcpbr6j36";doc="0np3dvf7l95h0gxg91qcd8f9sl0xv3gpqd6krw3bsjqa36ir7vcd";source="16ls5hwlb5yjls6fwcafsfsz1wgdp7lci7jgdzsc9fqkz0ml2yyf";};
+orcidlink-69253={run="0gjgjwgc05iavwwx6s3zrmb3ac4nv5y533bgap14wwx6x50i2hf6";doc="1ajspvsx9ginyh1j0k1q88081dh0jxrsyr0c249wlnkbdkpcf6gx";source="0nlhscyjkg5lgi0y7sddwkdr5v5wcs4ilxxcpap75a9hdk4ckiph";};
 ordinalpt-15878={run="0nia32ms50727kn080xm2v0kjzws5sj6jdy7kglp8wkipvc6nw82";doc="1nwfz0q6csg7rg3hqgddjbiz8f1nfcgghiqvj2wxqf0cfjh8zb95";source="0rzlbngvszl1sjrigpn55i7a8rwnj9sy76c7gwb43d4im1ybd14d";};
 orientation-57390={run="0qcqyr76wiks50i1zr3skp7bsnjzi6snsyvsm2za3l08kbdi3ixx";doc="02cmfz42sdd1gr4yaha603rppdh4c4wjj0jbcrmwlfgl9a47rj11";};
 orkhun-15878={run="0x78b5d70cxy7binl5iq2jwgsjh9rzs87wc8ib18jxscqick5jgk";doc="0q9hwwf80hq6wffyvd26kq2053vs5czly9zlsclh93hsmzg3vj9g";};
 oscola-54328={run="06jgk12q9hmbqcmwb837n8l96f3bafc7mgnv4v9amnh4ajlg6i5x";doc="0qzn7d70vl0lxyql152pzzhi72ivdslmxvfwr70186lh6fjxr4nb";};
+oststud-67217={run="1yzsibisphck9a6dlbvcs84qz3lhnj6amj6vfzh8rgy40s7vvz3x";doc="1sj2lk6fhx9bdgpxnmw6m25yrjmka6m2ygiapj42jp81n51pvyzn";source="0phykgmzds9bvsblfazg82arwdhzssjc6b9faazi5h57jcmvbss8";};
 oswald-60784={run="1dkv4javwj8zfk987grjx00p0p3hnzajm4mgddm1g4z1zfjfdd4n";doc="16pgbws7vf93dwaw8cm4laz09hywp1xigrbdbaq9ngg9g97sn0l0";};
-ot-tableau-59318={run="0c3nlrm4h0fs3ddm54jpv9w2qpyql7ys1j4cf3y7svas59px4b8v";doc="0sj78f1vgr4zy0pyjqf82jf0xyrmrj29xn9a0zgzhn15rgh8wdyj";};
+ot-tableau-67813={run="0wrxkvi28a19kdgsms38wgxgygib0iypz0y830gizq339vj72v2l";doc="143rx32hnxnbw61n8w6skcqs8ix411dwcwgn43xzw238almmhidx";};
 othello-15878={run="17y68qzxifgnh8k1q6qfn97ka7703ac8nqk62ridn1wbxc6fb80r";doc="022pv02lvlphl8168rrcdzk6w7d9wd52riybfvvy537ifwp7kqr9";};
 othelloboard-23714={run="00cybd6dg10bwl2k87i2lj9jq1nmq4jc9v4qhjwqij5zv0l5yz4v";doc="0g5k2q33r726xyj1mp08qmyb4xdihiyzsm52mgbdn95iz08b2989";};
 otibet-45777={run="0fg3gc7614r1b304g78ipq6d84bml2q4mvl2yc49jjnz13nr05js";doc="07l6475b8z98pkmn5labv4i4q6g92lh5bdsdqcwd28v5y1jizhmy";source="0lfwadx3a1ni2k91dpzsdh297j3viq5dazaz78acb879lgz61ik5";};
 oubraces-21833={run="1rhavggv1c50krafvh7lwnvarh7lh59x7lwkipw24qakq7l2a6mg";doc="1bw3b54cn5dk0j4diq8qxfba0w3p0f78h4kycb2bqd2gq7258vyq";};
 oup-authoring-template-64491={run="0cqhrwpylpj0z5gcgx9lyhsh85vam3nfbzzsz9x9laf2rdi0v1qa";doc="118916mwp8zbjdqdwmxzwaf09a16rc2zrll9qmig33q48xszdf1r";};
 outerhbox-54254={run="1867xhxlbskiysifmwlr10lay8khragzi36fm552cwc4vjz2ybcz";};
-outilsgeomtikz-66465={run="18w3mzhrl4xwy6ni5546arjcgdpjgqw9vqvpsmbixszzz85pvnag";doc="1wjlgldyjkgaixdi4nv06dbldj6v4nd23fh2sj1cf93y1lpy9zdz";};
+outilsgeomtikz-69124={run="0a0g6fnvxzh942n5lg71y2ry39ra9b01y8ngjb05sdvka9a9vwmv";doc="12msajfyvrqawq4j9d9pcqfsirsyiw57pna9zadkj8mizikfdv75";};
 outline-18360={run="1q5dr9xlsn3fz7bcv08biv5cv71qf8brzgg4468mksh8lc8r2kli";doc="103sijg9ib5qfwaxkdgf11zsdg2c46dv00hn08sspl56a08j54sl";};
 outliner-21095={run="03j0mshhrchrgpa2z7j7q6n783va5v0w16gp401rzbvvdn0l2qni";doc="0vi80qhq10yy051sfzh6pmn34laghhvx6plnggrwvcmpp4fcw14h";};
 outlines-25192={run="0wzrf2fkf9kh0d3jjbc3kxvsmkynwzg622ghwcabaps097r9z45i";doc="1avkpx77sis4hrrs9dqizq2sz4vjzvn19ks8q7l32qyz6lnxwk2b";};
@@ -2764,14 +2826,14 @@ outlining-45601={run="0kc3x4zq24f2dzwzypdi4ysgsfi40l54zxpaxdfgd662wxangrsp";doc=
 overarrows-65853={run="176w37bvjjc8hi2a48138gj77sj1ibfnc71355lpk3vh2whhrx4y";doc="06v0v79kcqakhkyjnp6c9rvqryiy8rrim82p0d9m98dib48h7h3h";source="0nmh0rrsbbcl842lc1zl2dhj5r403phamfbfxmn0qs0f1kqd2awn";};
 overlays-57866={run="1xfbb4953ab25dbccfsp9ban67vrq79j443mlglnzqmg1njrckk9";doc="1nm0d47vclan46q0zvigxri5zqmfpv0qkk0arsg836vnv7l53q0g";};
 overlock-64495={run="01h1fcgplfbfbkb1wp0gnf6xrqn8l8y1hxrd8gxpjqbg53wr278p";doc="0gl3n6h41fbzi4lcsdra5z3vafh7drm6g04ilmbb5cbkpnsyl3nz";};
-overpic-53889={run="1szm75fc37634pky5sm2l8b30zqw38n1h0y01w7c5is5s0a9zmgk";doc="1lixa20fskjpbc6clgr4sm74d76bqyyxc6y1drzhm9xnkggd29x1";source="0q48v02rvx1w95c077r7mdxzmvg7za151fxym24qsbdbqd3gr9ja";};
+overpic-69343={run="17bbk29v6pkrk9igzx4by586jfc997mj07srhgy401mnmxls2jyk";doc="067rq6plcan44h87adj9jlhnnlkk2f4slsid4v6x80423q4gfqll";source="1wi69kgglry5r8wg944x87scqsqx49ynj372y0qfa7n4dajxgzwz";};
 pacioli-24947={run="1fc15ygzkdbv5mykgrmzb6filkl3aipk7i9k1syh2ssr37ldxcjz";doc="0pknnd02q244pxyc2vapdx04adz7gwf41swda2xi3039x82pm8fd";source="0zl6l5yc7v5w1xjd83prvfmy8jf3jyblallphyglgb4vkqq6mxxr";};
 padauk-42617={run="1yjqxzqsvk2mdsk837bgwqf3nfm9gh873bnir19wj5kj622zfh4d";doc="0331w1z1b5x15yb3xyxv008l95idv5yq9xb87da5r9p5fzfh1z0y";};
 padcount-47621={run="15p8g5hjwlm80xnm9py3ss6afl6c8rdq8f92z7518hp0yp7d3zfw";doc="1crpv27a9rfmh4dcliqvi7aa4h4lvkv48k5zk0kx6ahhxa2zkzaa";source="0vkk0c7gvzihlmw3f8ni4awj9r6xrysj9rrsbqk6dkngrg02x4xz";};
-pagecolor-65843={run="0kgw5jr8l77cxb7xq53pvkyfs15lq4wxyv50pbd849fjm1rjlii1";doc="07vjcfihij3w2258id0zgrgzf8znzmasiwyinah3h6snpfg83kg9";source="11iyizwd6gyzaz0gzi4n401wqabkv7dfrsfrbz2vpx73fwnnf72a";};
+pagecolor-66885={run="0ycmswy7jghmnpkdv6b519yx7ga56aw7yxq6671nlg1iq1k045kx";doc="18xnh0588b95h7fmqwqzb0p2n9fclqy0hxv3a1cci8anpcr6xz0q";source="0qc662yig96f53wdbawgvsg4wx0dikcnf85b2cffwlkr8qzrwlsg";};
 pagecont-15878={run="1fh6bplg468dandbyvmwf13sh27r6x4dmrwslldlc9580h8jv02k";doc="1vrcr5l1facyyf9p8977q0i5m7cn7y40dbmiv99314iyawa3rr1g";source="1qc105f5v0jiahk8gpgr77lqfaladba4hmqnfizbblzbjhhgg05p";};
 pagegrid-64470={run="054yaxr2q8x82dii8bpy3y1nhc1drvwm98cd3asaddh4lzrpl9vl";doc="10rsrkdl9bp04kxxl2g3rfscf0hcw122py25x2jbq6lgz76780jm";source="0fbzd20z106cgzknj98ryzmwiixmbpvnx5p8v3ns6yjrwrcng3lj";};
-pagelayout-66399={run="1izl4zm4jpcq7qmia75apiz368dxq1zahqxn4cbhg932f4f6lv1h";doc="0cfy6lc1lgsqwfy1cyi66cfg3jhjprh1259iq666kv0ljyk06fdf";};
+pagelayout-69188={run="04492pp3xcgg9hbz2vygqsfriljhjqg7nxivjhg5m7v9c4vvzj47";doc="1rw33vvag98q7mjdhvk954c1ady62xv20s8qd94b09caclkpdgzv";};
 pagella-otf-64705={run="1vrzz63la6i270bjqb1nd4rsqqgl13nrqrbmr0l58bmjj7qh95d1";doc="1dffy7z3cfyq2kzyvbarlqivfv4rs70qa7drii2arv2m1609ylz4";};
 pagenote-63708={run="0jd80dz0jl2gmfr74lw6jy1x2hj6zlji9az956gkj8bxxc6zir54";doc="1s7imj4fi08487xmcsicsa4cknpsgd10dbcyn6vkggm95qn6119w";source="07ngnfinv2mki203in54l4gx7r4qx9rm8k4x7856gr7jy1wkw16f";};
 pagerange-16915={run="1nixc1dn9cbdi3pa5yxajii6c9ljgc2jrnknsa7wb66kj5j1lqch";doc="1vy3c498j95miksm254a1sh7d8bp3g5p7lvncc1xad4g388q6hak";};
@@ -2779,44 +2841,49 @@ pagesel-56105={run="1j6rg25mhaiamlff4j4lw8pbp6x3mcg00biqz2apsbi6kmbiljw8";doc="0
 pageslts-39164={run="1lm8707bl8a9kxrbbr6sap3p66zwjklqv13invm4gcsg92yf7yhi";doc="163h2h9n4cvap2c369f2yxv3idij6wzjqwf0wd7w5024h1vvj683";source="01nwizj0vlnwzbqyl5dn02vg5xl2aw60wyvp4plm0agg8kxmsi3a";};
 palatino-61719={run="12jc0av7v99857jigmva47qaxyllhpzsnqis10n0qya2kz44xf22";};
 palette-60119={run="0wabk4pw6gr9y309dsh11w6gygayzglh0jabqi0zsvy0ikr7wri0";doc="1dp867fydnxdw82z4gxp1sbz5w5q9jfnls6r9izylrzy242rd52l";source="0iic125v6j1ljgnm7d0qicckxwmgdg7cz568556257js942ldyxx";};
-pangram-66305={run="1x8jdn8j3dgzkm7zv23529gr1jdmh15wkwkljzsc1dnviz0ppacg";doc="1y7lakwbh58y7mvwfqp6m4r9ad0kblsls53n7ciq994hfa6gx07z";source="0xq10764gznwqf7nfaqjjqd6s73a9h13970bcrds7jiyq1s8l382";};
+pangram-66300={run="1x8jdn8j3dgzkm7zv23529gr1jdmh15wkwkljzsc1dnviz0ppacg";doc="1y7lakwbh58y7mvwfqp6m4r9ad0kblsls53n7ciq994hfa6gx07z";source="0xq10764gznwqf7nfaqjjqd6s73a9h13970bcrds7jiyq1s8l382";};
+panneauxroute-67951={run="015w3jivsfxcb0gjrlpz796p50wchmb34w3ad0dk73qhn2jrx6p2";doc="17c6bnyxs6szybqb1ihv0q8pn3wb950s64z639vhdwhaqvppd2f4";};
 paper-34521={run="1d8w8aicx5drrgqdcrsb7vdy39xh6xmnnpympy1db5i2mc2nkjca";doc="1r03wy4harxplfhqp0dsqfpp0s4j5gn6k2p43fpw7wndna8lnhyc";source="0c1iv6aynpfi37bg30q235zdpbyhj83rkir4kdg4vl8q27c8gpwg";};
 papercdcase-15878={run="0gfkn87avjnfjx2k6hz5k2s9iy2lxwx9x4r0cp1lcwjgjsavf2y3";doc="1hm0i4vvxhxn0wvsrbxd2lkqspqkq7ik3sxxm1nd575p5l3zgl69";source="0mkadgjk395z280220zndpbbks331d5hcsxqnarpjmh00mkhdj7f";};
-papermas-23667={run="0x4h95w4znr0qkbmh18ws13c49fq9wmx1g0rhkwbkg5yxibyhbk1";doc="0vv07vzfsgmpm748si100rbsfp0ipvnnnqidg6c5b4fgydz2dcdk";source="1z2wvpy8r0qq0zjf48i2z93iyz6vjnzc0vm8g5pd5zrq961hfj4r";};
+papermas-66835={run="19i4m31q8jji3chanrbqqxni9x2c4mk0qp1scf0brjaznrcv4dvv";doc="1an36yvg7z1yhb6gn9ppxp24qgdjmpndwy8nwn87cyr4fqmrmgr7";source="1r3cw66snl1dspbr9i6pz8v83x15ylhm2k5nbksrf7f24jrvvxn9";};
 papertex-19230={run="144zirbvdpq1q8an6i5rngycmlrgicf9skh6mnwyz45n4zyyzyg1";doc="1aip8lhazpmmvdib6yqivbgjagyyhmava29q9hrlx833385vvnhj";source="0bfkh8vwqh6jx34fmqfqf2qz5wjpmq9bpzbppf0cphs5frbwg10b";};
+papiergurvan-68239={run="1gyf1liq3lv8dbfdpv2ilbwks4k88m2ywnv3qxpbrg3v2l010c75";doc="1mw0sc6svi8rci96wl2273bgn2f3w44gdczaldfflxc7az4mhmvb";};
 paracol-49560={run="0lbdk9wbs6c6kq0iyf6amc72m1njdf3h8yvcnka9dkhjp228ldf0";doc="0fnby29nnrasv32p9xwwwax57ijzscpnsv43rwajlqwcdhi3s2nj";source="0q9izjw8lrwcbx0cpq66pr33cn02wl4daxsjvlkrjzw8zzrijl64";};
 parades-40042={run="1vmjda4cvajsqai47wvl0byi552gdcy0j4m36p58gjn3d9bc8818";doc="1lz9dsy94x5cvv55nk975fw7dlg4bm6d8ls0p6gy5b58sjd6vcp8";};
 paralist-43021={run="19m0ddw80vjzm8p0z5rrd3jf9kqzq653h3jdqlnjw4g81r0z730p";doc="03kv1n9m1b6r0r5drp81hv2i8dgnlcsz81rhi4h6a3xyxnyhw6bj";source="069mn3mk34rxxhl1c1878zs61pk7asa21iwwk6r2v88yziczkhlm";};
 parallel-15878={run="0hja3k53n8v8qzj1vym1j2b4pj7hqszda82s83kw1v5av6kcy4da";doc="1i0ls71ib0l3igd52cgn5z0cjz0j17hsj0qc5y4sqg2nvivvw7gy";source="1slmdxldvxrvf61aa1b7m09cxpv6jsaw5lvbgqsby6jvgfp4r4g8";};
-paratype-32859={run="1cwcw13xdarisjslsp8aayb984fk4qhx1ihg887fzli0wn7kpvvr";doc="0kz4nzz3v6a4qk2svgqyx02j0pni92qpm5agb6k0vwylmvx6yyzi";};
+paratype-68624={run="1cwcw13xdarisjslsp8aayb984fk4qhx1ihg887fzli0wn7kpvvr";doc="0kz4nzz3v6a4qk2svgqyx02j0pni92qpm5agb6k0vwylmvx6yyzi";};
 paresse-59228={run="0mbxnc8c7iiwcmh17n4yhl1imvsq2q7wng98k6h9r15nqf5ivk1x";doc="1qmqki6fm316bixxjispq92dc1b3zhrnh4ad64wdlsr3fpja6g1q";source="0dc0hblq764q23xnz7yj1nawdr5m55526l0dw7b49p5rdb0zhcg3";};
 parnotes-51720={run="0d8600ssj90rwl9rxd27i23f58lmxyf5r1sn8yrl8fjnq42q447b";doc="089i9fwzjcv98pnqmhca26wpvn71zcgb79y3jg5w8szagli38839";};
 parrun-15878={run="08cbzlfy5cfkxpgr4igv3282k1dx9bsvsjfdi8b5dhl2gacg4i7a";doc="0wvbmjzi8jwx5gdg8zgb4p3gz8v8rfp2hw67q0rm5f9rkza1a3ds";source="0d79vvc4j1sysbpy1qdqwd27fai14820z0hqkkd6hrxzq39x6xza";};
 parsa-54840={run="1n2yh9v3d8s32ylicq5vn76m91s6648zgvys6vg8m63pafzl8rlm";doc="0i3d87kajjcw9mallswncp113jz9jn35jkj2y10dmx6z5sv3x3qx";};
 parselines-21475={run="0ymcapxlfyb6xi4k0z1y42cyzan67yg5v4nnc2f1ac35yw4z57pz";doc="0396j4dscv2pqk9vxmz0p4xm4l3v9ln98cwv32r615l1k68vafsg";source="0cg77iddyvl6p818j74ci2zg4zdddp82wddhxqh57qg8vcvi9g5c";};
+parsimatn-69090={run="0dd3jhkv5vqijlkzwf4fd6sb1b8shjzkfydxx6ddbx6a0digxrpn";doc="00aa6asx9banp3v7mjp1axicfnfs1g3l6pf3ifq3n0vwjaxrpaw5";};
+parsinevis-68395={run="0g9ypx3ai49sfcr09q2q231p77z0glwwd0zwwfzxlhkyx4vp6vsp";doc="1mqhdyz9jlipjl74k5blpdizk79f5m876mgn6z39n1p0b4pc8724";};
 parskip-58358={run="037404fa7flsznyidn6vpp5r5rw6wpzrg6sc8zppj9hqciqlbd52";doc="1pw9mgg04lxmrin7vplqyfhxa2bb73yf7qj8l3bwc9yiw78v5h4m";source="1ysz2jfdi49qjyrfkx5k1vjcykk4774i581d7kynw7q9r25lyq9g";};
 pas-cours-55859={run="0gyw81drxs56dwqh6v1gqgs4xcwq78v9isgg38djxq17km075y3g";doc="1zn71815y5pkp24l0cd4283zb3i85mqqzbxmhxj19v5s4jx3ywsn";};
 pas-crosswords-32313={run="0nq8wqxrsgpdnmi2yqcs45mb93gp2lad6p0b6ifqr744hycq4njm";doc="154ifvbrx2z4ig8k00agjsgpsplrjlf8glcxipbgai9wqf82i2k5";};
 pas-cv-32263={run="01aqcqyw0h459xq18gc0y00z2j13zwdn72qpfmajps7ppadlcbxw";doc="0mwgvj4hbq9b6ih6l6hg6gl5qrxyyf0mimwv50vpy1z7bhdq2l6a";};
-pas-tableur-39542={run="0w4760s1z3nqnyf449vmd7x7inhsp08n9i794177rx7kc2yj2l7j";doc="0fish3403ixq2mp3l69qij4c74s999mimh7majfcw58b0y6nizpw";};
+pas-tableur-66860={run="0i91nszaymzzwijjlw0f865qx6j7x7rzrxbrc51i02qlfgpaq9zm";doc="0199rpla518gv3rdbchfinfan826z5qs8zxfkgh7rgd7i0cid29s";};
 pascaltriangle-61774={run="06gbr5jgfbms6p7ghdkq2cs9d6p8yr3mvhb0h811y5rphrfzh36g";doc="0fch8y78vd7ykwn9qdgl6m787m89ff3h1fpj0vvzj5vbxmvw6cli";};
 passivetex-15878={run="1h49v6sqbm27isfwwcql9dzxn4vmcn2algkqh7f1pzj860xw3ygn";};
 patch-42428={source="02xfy1fs30nha0l03lqwl8xrpd81855kb5nb660ks83aj187dghy";};
 patchcmd-41379={run="0v0033zpp4w75lbxk8w2byhgy3s6qvm9281xc2c75bryp0ar5pfq";doc="0vw698r5q5ai4lx4vrb24x8j9dc7iwaml8scsh9c22cpqn2sn26s";source="1cb90y0i5k9s4jj3f9vnj6rhxphjc14p5nm6hllibww3h1khnrxr";};
-patgen-62387={doc="169wlh4w5kjm5cxbw03mkw4qp31z1ih7zqx9sdkllnh0y6ssrisw";};
+patgen-66186={doc="03y05mv0n04hyj0lcq54grx7w5wv95h61j6xlx2jc9v0ib9akq4y";};
 patgen2-tutorial-58841={doc="016bx1rp8kpvlywg0yafhbbhlzw4zxdcbdrd5525vffn6fyp9fi3";};
 path-22045={run="14k9dqvcc2nazjysff0s1jrass14d2r9i9cgfx46ss09cw53h71s";doc="0kacibdjhmz39klvxr244n42c5vlaz1z71a8vnssmwmdzzwfzs5x";};
 pauldoc-16005={run="14p0lnn5hvn6szhgr0ngdc31dbjrfk7r8m8n2jn5n8nirsrdzjxf";doc="16ls36m6c8v4x46bz26ysl0ndi9jmby2gl8b9wglw9ba2gf97xjw";source="17440237dyqhxpszm6rcpdhb8dib6l9qfqj5ls2m0bk3vqm7xv8q";};
 pawpict-21629={run="0sx3lwgm3d3cm4s5408x5dhf45kngls8izzkqjrqjy074736968d";doc="17zf7acasv8h9crzg6jw3d2grmhi689476z9x6872h7kzkn3whj1";source="1vxmq9s2q6sq6qza6lhkd6lmj6pg4bw8qvcpqr8zr12nqcfy4z3g";};
 pax-63509={run="07mgly5jbvxav3k5z6li0z7vwq7fqrj6cq0ky41v7alddjpa4bg7";doc="0pii0k53c0np8d4yc61axasnr8aknknfm36px3xh9sl1a475bwmn";source="07jzn5k45pxslamrak05iykqng5rg1b4kh8p6zbadgxb8gxrqx3m";};
 pb-diagram-15878={run="07l8172hqnv9dq6qg1ipbjjbmkpv7s589gci6q82zb8a0y6kyqvy";doc="05h5i0b1y03j5y0nf8iv8hb5qnq1lh5a55nn8xggx2rknnq0d1b9";};
-pbalance-64002={run="1lknxyk8fprbrbvc38kyxwnl4q2pvfvlpyznbp50qil5v78qld7c";doc="1s7rz3zf51vlb7v98ah4ylcr2s17gmmwayv0jpv03yz65iwkjmcv";source="1v2ljik0rsn5zjmxygrzjinrnyx5b14l4qkl1xa7vlb4gxb8ld9f";};
-pbibtex-base-61914={run="0h5yi27rmh7ajih3ww4wn3z746mkdwrvz1pn44kklrz9nqryqwhl";doc="0j6dij9yx7cj4j0l3sbszskqdq9mr5svzjz21andfdhlp3pxdaa5";};
-pbibtex-manual-62913={doc="0kz91zpamg75f7jrnijqnj7zgbds4yiqh8iag3x5wbxy7xkm00ig";};
+pbalance-67201={run="1lknxyk8fprbrbvc38kyxwnl4q2pvfvlpyznbp50qil5v78qld7c";doc="1s7rz3zf51vlb7v98ah4ylcr2s17gmmwayv0jpv03yz65iwkjmcv";source="1v2ljik0rsn5zjmxygrzjinrnyx5b14l4qkl1xa7vlb4gxb8ld9f";};
+pbibtex-base-66085={run="046k2l3v0vzxa73n15999lamllkz18is3di7gh8k4jd7y61gv51d";doc="099z6wqv969yw705dwyykfshx025vdbb2azzmdwp7vdsrfjhzir2";};
+pbibtex-manual-66181={doc="030rhhb4xcijvjc0x1ylyk6xz5mn90wrlp5ss4yr6qlpzmq21b50";};
 pbox-24807={run="1b6xli52wbqlhxf2sk4ryighd6jaj6znvpfv6n9s1iq40ag943dc";doc="1qa0h3ahh8q990wbwyrp4glwhdhbcgzz9yp436083w8c9ang0lg4";source="15gqbvrsigqqyzcf8rda0z0kcw5h6cnk1l9pxjh7apz7i3k00i5c";};
 pbsheet-24830={run="04z9iszj9hx7la9zqqqxrsfq3b6asld4zxvrszyjqw7z3fj7pyz3";doc="02an134idar5ndk2kk2d446bxawv0xkrwg8xvgxgpp8s1pqdzai5";source="0ad7zs28d47p3swvl6kz2v1p2nskrcf8fjwy0igwy8d8qalk0dix";};
 pdf-trans-32809={run="0dr8d6szds3hlrnrw0rb7il23rxw5haz37dg3iacgcdkffnglkis";doc="1dcmcd57zv90jafx3whd0nn9hm5x7aynb5npassjqbglb9lfml87";};
 pdf14-17583={run="0gpbf1jxfjl56pn3sj50b6x0z3fqhb7d1dl8dhf31vgcj8sn9n08";doc="15rgv0fw23c4zbwlx149hhbq711hq39v1nka52mjpl7lgvvzny98";source="1wm9nlqws9g02zkk3rgrpaic293vfskfrxsn3s2jb3iz0f12bp2w";};
+pdfannotations-68958={run="1j63vhy9iwbcfd00i6gsgvrn0q2r25az38221m4758a5x0mggf9m";doc="1l8ddc4vwqnr65b81z8yr0al50p1pjdk3zq4yacqi6qf6kmwibf7";};
 pdfarticle-51127={run="123b9f0nl8wyyxfnbs5krr5ayrgl02hg9z8w87lj6g0lxch7dfhf";doc="1pg4iix7i0m3smy27xk5p03x8m6rq737kyhpf5qzckm276n88fzf";};
 pdfbook2-53521={run="027mgmbd3gnnc6gqk8vjnz8j52cvx71z5y6flrc4zd7g0syivdad";doc="0al7sc4rxwd7g1cmyh8v4qhmlngz19f0f08x8n3wbfnvk2f8n33x";};
 pdfcol-64469={run="1b5rzfx5lf0v3k1kb75j364jfdv4wg910qhv0218dp4mxwn985z3";doc="1qrd28c9z0x2jcvcp5041s6qbkcvham8m06xmjsd31kwnpr4f4df";source="1bgpg70150ifvrviwwbhzr1fa03fhnfa4agnhyfyp6y393i6dcc6";};
@@ -2824,64 +2891,66 @@ pdfcolfoot-65512={run="0i99z6niw3ryb7akzxxwhh0nkrajlfig6a2ixwsr8k5l4ga037cs";doc
 pdfcolmk-52912={run="09rqw5csr4c63w5z5c019rm8h4plqzwy0icxbzgap048a7x02kqh";doc="1nslm2frwxqcrm3spr601p2r6ga2b91d7v1v0rbi7h06h14mvxa6";};
 pdfcomment-49047={run="13cknk58kksg605m2jjkvmkfm47sdk56irj8xa3p0alx8c4cn67m";doc="011l19b3lhc8zn3dn071gnlg2300174xaqkdn83r631zz45yriv7";};
 pdfcprot-18735={run="0m4lf1rb2j81ry7v2g9lfqs42rizifd64q7xw9dzhnixp900ldfk";doc="0b9ac68snrs7fs8g8nqrs62h8jjfyjsa07psk8qc20nvpya3hjq9";source="00nmdx6l66w895fjir6r2pwrnh0vpn706i9wi5qxx143h75rgifl";};
-pdfcrop-55435={run="1pmh9zjxn4xplnwzl5rcb6g7lkqm19kzd1dfm08992c719clx38q";doc="0qayjkyn9sb9r5cvznpml0gd7vwpip0kf1b9r4jrd4vyfqkk6qqn";};
+pdfcrop-66862={run="099j54qmjd40q9mws11sadhzdmi70y27mjy8rpkw2ijhqgfhbiml";doc="1wnx4ci4p77cz7l6yihdbx62w65zd18smqqkb3vniqwr11232nqx";};
 pdfescape-53082={run="1vbdjmm9bi9ngzz2z1b8jnf6nzf9xsaj5pvyswg13y4dr00mnz6n";doc="1v81nw121acyv6mvpykgrcdvsgqmby8acpby5lj75ih4zya9gs4d";source="0jk7rnf3z1hlrqlrcx0bzic46v57d8vpm4w5fn4c37q1f4v5zmpi";};
 pdfextra-65184={run="11r5ifc28fhngzj6ygzfjk4j03xwri683498gf6zhwq0j3km70jf";doc="1cam2f5byw6l7rk8hb1zsw2l7qk52sv83wkx6qzgkhmzqbsh6wck";};
-pdfjam-56991={run="09h4s1kz13migq0slimh805pvnbfaazv9y6w1q5bcplyw0vibn1p";doc="0zpj2wzkx4mzrsmr7j0qx3zmq04ayxmdgj05a57pyc7gj7kwmb4q";};
+pdfjam-68597={run="1bjq9nax4i940y43b2iw2i7xjzd1q87h58sp4y1dh1x1n5a7fw8k";doc="1kh8xlzcbhnkrwz3yryg8ai7m315yw52k1ydapy218zbvjzrai5r";};
 pdflatexpicscale-46617={run="1z19y34c0x05yp49jqn0z8i3ghv0sz8zm0arb576rz7mskpivjqz";doc="0d1zzym0mgsbicp92qf60fq8l2sdbdx47517k9pj3v8g91svxlpw";};
 pdflscape-64851={run="07bmajz9ggwkq7pz49qipy3nmaqd6ypwhpxilsj9qw4bk5asxclw";doc="0s7bv2v7hcs90fvgk12ff3q89nhxp0v8zjv38wc5inhvhk77jvbd";source="1cx870l68mch1hg0va4g3vdjw4d508bw1kw9f3x9b4wfi7dqfwrh";};
-pdfmanagement-testphase-66534={run="18sk3gpxxl7kcn3vxfw8qmbm12ayqpr76iyhz370clhg2pm04day";doc="0nxag3hcjvdhmdc7vzqpgng71yk4kwjqgm643gr2j9bsx3zdysxl";source="0zg5hcnpy62spz27di14iv8gc97q0p1vkf6b1zrwb45na949nwz4";};
+pdfmanagement-testphase-69078={run="01ih6xxsmzp73h6v0wy9g10rwrmplyr8lpdaz99b5l0pyidh4p13";doc="1ghmz136p9pdg7yfv3g5zrlpwiv81l8p0syl43whdbkkmwky7y86";source="15rr5pli0zp8ziplpkyxzid1i0jjnwcl496pd2q460y07rdxhgbh";};
 pdfmarginpar-23492={run="0mhf21dcz4ndhbh1g0h3kcqza4ni6iigrkif0iryyzg1zcx60d19";doc="0arfch7gb07grg0n8ij0wfzbfzc8bv5izvhp3vjz8hl8ha3wyzgd";};
-pdfmsym-65324={run="0i776lqpwjavhvdw9ahzmjyaihcx072vhixnk70d7d32ph7vyqfl";doc="0v8qbi89cjcmlgbshny2p3g7c9imlaj3jwvrcqm3ykxxfycchfvc";};
+pdfmsym-66618={run="056w6dq5ymm0x71bcya5nq4iiflcmgw4fh6zv3yb8ihpjj3h00y5";doc="1vrgfpg21bzg8xcw6cf43bjc3gh0m3r0s0y8lqh2nmdl00pmybad";};
 pdfoverlay-64210={run="03cc0088b0iwjmx5wkcs48nnmygsg7w1xlvbi0pawgmhfvfivis9";doc="0702k1ckh9akj21xvbvn5s18x8s4nwk0m7jybkcl8f481qyhhv26";source="1z8n2a0kwp13iyja45l014jyl8aaw1hhnxgxfib6q8i0qd97xw73";};
 pdfpagediff-37946={run="1a4qmaypz1indb2pw4vz0hv8ihanhf9z0azs3zkv2ya6qkc0kphp";doc="12di5a3976bkilcyfg0imx3w8771ky0acgrag7xp9rpcggbi3r08";};
 pdfpages-65319={run="1ymrq5yhhjp5fg4sbbksyc44lqaz3jwx7lj0360xk14s6h53slyy";doc="1fn5sc8k4pfzsarq7j51iamyl3da7r1qv8jmr8mjafvrvzk6xbp0";source="10gilsm5b0qmfmacm2plhm1ivrvdnw0ikgmxapwdqi03qvizgyd2";};
-pdfpc-63866={run="0ap5mygl0vz0awqlmdw6j64k45cxi7aflvfk4dld2a7chr9dvfvs";doc="0w7bmhdgsgs9h9axvgz7mkmzlibp5bvhrd9crl31q3qdrh7x7wd6";};
-pdfpc-movie-48245={run="07d7d7h8zfap39dd3nks1bnpnfpgs8nrzzdsmchy6isqfmfrypgn";doc="1la9fvzrlik4ar3fdaxla5gbwpa2v49xrrwc4wy60i7h80vqv80d";source="07lw20wp5cqr0pvjsw3ds75n3hggxgcp9rbvw026lj5k54wik1bv";};
+pdfpc-68610={run="00zab5xlcqqvvwfxf1py7m6gslgv4drx8d419wl3zjmc6ww8156a";doc="1fm43d3q5gl8fg9p9n3z1nvcp6cykm271waphnjdkj29nbg7n9wv";};
+pdfpc-movie-67201={run="07d7d7h8zfap39dd3nks1bnpnfpgs8nrzzdsmchy6isqfmfrypgn";doc="1la9fvzrlik4ar3fdaxla5gbwpa2v49xrrwc4wy60i7h80vqv80d";source="07lw20wp5cqr0pvjsw3ds75n3hggxgcp9rbvw026lj5k54wik1bv";};
 pdfprivacy-45985={run="1l1nqf4ihwfycnb1x44l1dl2h9f3iy1ppvr0l4zb8qcjqhl4j63y";doc="15w8jwhksfiv0h2iixk07xvvmk1g2j322xqid753bcyks48xffjz";source="1nqjj51h0pcrjnybj3cqb8zwi0r1ipzzw8ic2clnf3in88pjzjhs";};
+pdfrender-69058={run="02zipdaymsrrryfn1cqmj5hmcg9r62mzrjil6fm8d4jgk8ihykm6";doc="0m1cdx7gh5w5a5g9n27a2amlkmy0ixi06w2a4b145sxy41acai50";source="11y3vy8709m5cz5r6zh3lnw451mn6l0674p63fcgqlircs0j7vr6";};
 pdfreview-50100={run="0saxaxhma5gdn150l934y0q8x0nigbcn9r7ixr8rwz4d85g05m9a";doc="1kdyc7h2dpr4gjzf9g0rx66gsxaiwran9k7vj8942pr3x2d2jbaa";};
 pdfscreen-42428={run="0kkdnwgwc9z1rqsz8cjsmfjdi3ycwi7n7pl2929yvvwixp10rr6f";doc="1zhg4vqfjjmg4z4blrr2zl6jp7m2c24m5diifgn5j3m8nwxp6m2j";};
 pdfslide-15878={run="1za0jp9dbrv0c875zddgcvddlk7gm47crmn97k4zx2s7glx24wj7";doc="1rv7wbzrlgj55n7r6i9bm1vxjvjr38v67lizmbdcxz1lfqbv0rw1";};
 pdfsync-20373={run="1wwndjn0058hflw73y8xfsmnspvaz61r55k96fmsdfb7xfncv1vn";doc="1dz826gclpf2knrgks0lhvm6rs1xjxqpzgbz4nkv1f8li7379y2q";};
-pdftex-65808={run="048dw9m8gk1rmx5v5ylymfcssbchpj9s5csjpip7dz0wa23yc19g";doc="1nrnv0rl9n0p6s35bdi4067kdb06v7wc0ax8pqp45x9gm95zxczg";};
+pdftex-66243={run="048dw9m8gk1rmx5v5ylymfcssbchpj9s5csjpip7dz0wa23yc19g";doc="0mszix35nlx7ba9plfdb26wclh33qzv11qd3b243ys0rkv9lbklf";};
 pdftex-quiet-49169={run="00df842vapzylgavkk2c0j8yg562n2jawwznvyf3qq6dznwf1chn";doc="0sa2gs440h3jd5i51hhbfvpqjpfwvzz5m32x3ld5q9k6zi88b395";};
 pdftexcmds-55777={run="1fpijk36lx5czl6bpbawlm8f34zp264l1fli095wha41fil25hks";doc="00xzyvl66fds400dm5zryrv3m5s42mv6658zx7fnx2wbd0jxs738";source="11516wkglckyrz41pz9cqj0xa2bd6v2l234k28ynnmfjsg56vph9";};
-pdftosrc-62387={doc="168wh53dnayihxnjxw1swjhgzmxv7qrs3h9q58dsdp3zddr6f076";};
+pdftosrc-66186={doc="0mnz5id6fywhlay6r38nvii0a2ks5gdb15i7s7wkq1ay9k5k6fq3";};
 pdftricks-15878={run="0vji4gmlg9b67yj8gb3aj2291ll1xg9p5vq2kvclj3xpy1vnna8k";doc="1hzd05l4yyz5giw9kqxaw410na7k85wj0cyw0bbwzxynpzxqllfa";};
 pdftricks2-31016={run="1dlzm7ivhxvz404nm61kxjn5arqgfw5z184qaxwn28yk6ri07s8a";doc="0k0zr8mv3xq6ibc7s016qnk78b1d22jgyq35jwimj3rm2aykdmww";};
-pdfwin-54074={run="1mxfvchz2h9wrybvb0ri4iygwn1ljs2jzsr9hi7j7ych0sjq1c3j";doc="1wn4fj00lpfw6jvfr3144gjvghdjvqxc13ji6kcf8q18vcdjfcbd";};
+pdfwin-68667={run="1mxfvchz2h9wrybvb0ri4iygwn1ljs2jzsr9hi7j7ych0sjq1c3j";doc="14i9y2p683d9rgw599yjllgyy5gdb5z560pbb4l5hlfj0mxzj2ja";};
 pdfx-50338={run="1pim1kiilydijs57zcsd1cnhzvcq5y621fb15hwg9y69s624wjwk";doc="1rb38sw6lyvy24hkdyw7xrbm99bplvcp4cfcdr80pdwf51g10faq";source="1y55s7h2cc39vp36ickpkc8dl42rmq77l1d47h1dxximyihl96x9";};
 pdfxup-59001={run="1vvddbdg2l1s2m47w9whvjd1pfp28l6mnyk1m52wnspm3mi476fx";doc="0mbqq0rx1k1hrwbazfkxf72n1wrkngp45gssgb9z2pfw6k3sv3vm";};
 pecha-15878={run="1ia3q7gygbg4scgja2qf5p7wbgd429cj78b8ffjcz68vgdg86jjy";doc="07b7kmf1if59nrqnsws5hklv0idjjxwp37a16dbjpcfdirb4s2m0";};
 pedigree-perl-64227={run="0a99nbm95pagcnww7wyxqwdycl1ags7arjnd9spahj1zn7xg1413";doc="0d13qx3al4qa7v9i4frii3vv3n52bln12d2dhp7wyjla3jz6673a";source="1xb778agh5vqbm6r14aff42wvipykjsw9yk3i0hj7ibz4ipcslr2";};
-penlight-64811={run="1k0ddyslhg68jav973s2wh5p4mgmy636iwf5m02sv4p1n616j61x";doc="0mn8q9fwwxsgjjzbb6gqq1m122y4sw0zjq307fybi8pg7q4nzz3y";};
-penrose-57508={run="0swjzbd10xvab086m7zjbxgq0jjzrxds534rsv6nkmsm3zr9qdfg";doc="1xmylw0prazylvqmqklhpfxhwy6wvbz9jln1cyd23m66297f8q66";source="1l9x5l78zcgrqf9xi1w518j6l24zbb6mh51fv3g7xcymr6miljvk";};
+penlight-67716={run="10lzsbz2ia477khfm43sx2qli46isf2z8pvsz23yvip32lmqznrb";doc="1hxj4i1zfbwbyl633wn9m4xvbagv7ljjjgil3cjfmdapxgr06n1m";};
+penlightplus-69070={run="0cbj9pg01nq7jz8qr5d3l0mh4rpad3jxjcd7j5rq3aqh8z5s9q7n";doc="13j9gb6h8mawihvg4gxlzwjfkwprsa9s5fv0bdlr5z33n8fknhxf";};
 perception-48861={run="1dqr68wkf70aj11g4ywr56si8g82bxi2xc9zdnw0nm0wbimy5zv3";doc="00g96wswsnpd0smv1s23hqiq4lg407m80nybmig4ibcrafjkrqrf";};
-perfectcut-54080={run="1hjppa3dv8a5740nr5jya445y5nb0nb2z1jlkqh386bnvgby8393";doc="1ly3zrrrfb3jihf02p2j5ym3m2gnr18pf2v5qg8rsj2l258xlark";};
+perfectcut-67201={run="1hjppa3dv8a5740nr5jya445y5nb0nb2z1jlkqh386bnvgby8393";doc="1ly3zrrrfb3jihf02p2j5ym3m2gnr18pf2v5qg8rsj2l258xlark";};
 perltex-52162={run="09vc7pbfjl0zjmbra41p5lmr6l6r4gh2x5h9h5hg1i76n4mfkd8d";doc="0sndaglhb92b4jvp0jzpvdiwzc49ijh309aysahrw0pwkdl2lv5d";source="14rv37h9qwgba7dqq8zzvm0dc9y4hmyr6yvvkfbh2il5zs7m8nrn";};
 permute-15878={run="17ky79fz5pb9xr4gwrfpnpxj16mzj6f3wnh9dfhddzlmbllw1djs";doc="0m83nafyxbixsyg37ia535h3axvf2vp6ky0yg1xcv8ppsl72fd8m";source="0k1h40himliydiqssvmzl18g28w0hfsxc6kv7wn1q41sm54knhay";};
 persian-bib-37297={run="1yzbap8fwmlz46ngqcy6hwjw98z1cxlprpzk6vg2qw7wvs57b143";doc="1rn6p3zbfx6vxdjzxavvbf9405cxk1kv56971n6i2bysb5h22w0y";};
 petiteannonce-25915={run="0xvpw8lh1zlkc89chbyjsfszr7ix06afh1fajp5iiqiyxb021v7y";doc="0nnf9bw4jdm3w28957bdfsl9z94a3dxz5kvmjrg0jkrp3r3cyrgv";};
 petri-nets-39165={run="1hi46pzd5cjvpakya2bl52w7m84xm8h03m01jfrry3vnp9hqbc11";doc="0ixpads25k51rlb2kapxgv75w5igbnv5isn61c29qpm51dpaq012";};
-pfarrei-31934={run="1b3jbb5ahwr0sgbgckmrfwbk3ir1g41n6j4mybc78iisxnqrx0br";doc="1jrg8k3n0mfc157nmv2n1d4b8aijvgr4av90ds0g2m7px65yd92z";source="1jgrhv8xgai1y81ddnqcrifk8wz47asvr3mh615wgsis38y6k2ny";};
+pfarrei-68950={run="0zp4msdpi4w1fhmp7n2s6cdzxss5a87k0dw7z9iw6csnnwaa40z9";doc="0v54c02fmsxzwc8i3050mlll9z1qgmk6vvkdgjmph735q2bmlfsj";source="0inlfabzb1q94bq2zw2416vaxbgwr4nw2yfax491dg5hqpglyl6x";};
 pfdicons-60089={run="1pxw1mhm2lmggs67ql176f6csajabhylmlxaxp47irk6mlihiavk";doc="1czd4z8rfnfp241lq3v6ri4hnij4b8pg2h9lcs3qa31r7zmx4hkk";};
 pgf-65553={run="1xai2x91jf241w03lndpa478dijfm52kyin1ci4s3pwvvqvwvcib";doc="059fvzbpq3nggjc3yddzgj1ci4xs5qrwkqvqshcnk0agn80zpcx2";};
 pgf-blur-54512={run="1w9p9l2nw9bf0rhn70y70h6lqqqx3qravgarmmz1z86ara26k49w";doc="0fq1w85wqqrml9jzi7s2n888165pg4ds8ysvgh56kbkd2zzahnw3";source="1pc8x23l6qcq356s843si16yc6yfrvdxg7v821271dndkg7d2vvh";};
 pgf-interference-61562={run="1l3gryb96av9zwxn4naxz5vy0y2245fv5zlm1dg31p88lflh2s5d";doc="09vvbnmcv8d6y75hxdln9gqspm35fada4g66w6z4kv1bg7z3vrlj";};
-pgf-periodictable-66035={run="1vshq0b212s9syd6z0d4w1q2y05142h4c002d7cdrzkcqqjp3zsb";doc="07wi1hbwky985rki58wzkqp0h6acimg3x30ls4vcpcscm1xggvbi";};
+pgf-periodictable-67250={run="0q5407piln8alj39g108sbkiir35f9zki3fhfmq7dfkd8910mbjv";doc="0mk48dzb8n4fisrifmwm3gbhrk4hmsma38nl5rpiwm7yy447ch5g";};
 pgf-pie-63603={run="0wr3r2997p8as08d172sr2hxspmi5bgsgvgwvkm27hg6kpi74zsi";doc="13xvia0zbgsrsy50rp3fr07hb1zfj7jfs95ai6cvy9522cw1zb0a";};
 pgf-soroban-32269={run="1y1c70a9v9zy8i58j19g5c8nc7f00zcdrdjmdcbm19r8vi2r09fr";doc="1r1rgd313fijmjqy468j25d55p76vxmcrgkp968riknych16y1pl";};
-pgf-spectra-66034={run="03s9i804yn01m7xqql4flps0h3xy1dhar5a7p7l822j1n5kdn0qp";doc="0dh2lmq2zwb58dwmrnshkh1amnk6l6n8ggjkgmliv4lvs09j7ri3";};
+pgf-spectra-66961={run="1zl4cmkd153yk99sm6cki1a0g5z1pfv5c1d8jskcxzrfxzzrd75b";doc="1iyny475v6h54crlfjm32lq37f2dg8mirgghs57cqrrcl2nv4qdg";};
 pgf-umlcd-63386={run="1qsnmhb0jdn5qnq81zx7gr1a1l93a3f2z12lfz9i2c0cqbjnpxl5";doc="1v2p1xq7y5a0mpd067ragvnw21hsvl9irwaszc6sdb9sqgqf2qh6";};
 pgf-umlsd-55342={run="0rs0iskzhmlgydk4i9idql66sk9dyiqrglp429b2sjaw0mbjyxvz";doc="0vl7wjrgnfz0y0pfp4izqi1528i81fssak85w1sl2n97lhyq8mkk";};
 pgfgantt-52662={run="18snhw1hvff64xq6jaq6wjdxcrkjwjv39hif31zj2r0ghsajqaqs";doc="1xhls9kyhf314rrmd8r3065qaffbm48mc746lwhsrh6vmq548baq";source="0hgjiy1gs8nx0211ar38qr3ql5yx32mcdvms0yibpglr2ncv4x39";};
+pgfkeysearch-69385={run="1map2bxnwlj2v6w4h36jfszz858a1zgdlamdjj0jc21xjsfsjvbk";doc="0h5zhzh4k0hbz9gnh6ygzsr8jm5lrhdx0qsm5z55xm18q7gp2ri7";};
 pgfkeyx-26093={run="0gh229dsrbxw6brfz5m2zz6x3zfsa03iqps5bgcr4bz0qfjl0a2s";doc="1cbldr5x9n649sk9dfcp143jrzxh6l4ibzndx4yr8f7id5nx3nag";};
 pgfmath-xfp-59268={run="1lfnqkws7gjjbzh0p5i0l94p1fjjsybwf7mzl5d7xzcap9db4x71";doc="07d6kybw6q6igfpn1cgjxdi3n5zz6ic2gazy71gb2mjqbzmhzp88";source="0jvy1qy47r0p3fx5329wqg4fnqlwlqsqs49j58qvz6k7l0n6i82g";};
 pgfmolbio-35152={run="1arhxgwpsw9ifj3yy36mv52r8843bm3v1lrda17r44zjf4fhimfk";doc="0kxp1gqd09q5h4ixjlfmda9jm25wd3s7dsxcqc32sw3qay4d84cp";source="0lxbszlky3q27cyzfnnvglmzim4lfjh14p62j43sj5w2arv9w3v7";};
 pgfmorepages-54770={run="0xarflkdk2xvfmmsafv1hhpdrfyddjxlqjjwps9yzzcwblpjnali";doc="1wsa6iqyrcjq7zyanjgaq6a1i5d7lm1bk9y07mz0bjwc2yv359zi";};
 pgfopts-56615={run="0g7a22d0ppdzcazrif8yjic19lvz143p6vwflz16p6zh88yhcdm7";doc="17q1mlaql7f510pz86n64sm4m97nii72jghf75qs5yr9h9lqrq6v";source="1mz5nzbhmbgzjkpkglz2w3s9s8kzrigg3wrd91dmdhjsm4d4kczi";};
 pgfornament-55326={run="0hvr6cbp4mzajmqz6fyd3x7qr9b2vlwdhkpc62axgm2sww8igp70";doc="0i1fncv9saflkvib43jp02mh94cv0nnq6k8psrf4l1yx95sdxnky";};
-pgfornament-han-54191={run="097i0gyxxvnajwfbblr52s8qw2y5ld52i4rybg4lk130qggx2v5g";doc="12vayalf8hjaapdfdnhr6jnc2x14l0kxak3qwi7xsn3cafrsfm1i";};
+pgfornament-han-68704={run="17ldl3a7gp2pi010hp1fh15haddjgni6f7bkgqyl1xk4yx0gjcck";doc="0v37qkx8j0ijgr22bya5m6ka0mvnymkyqsdg3q4bzhcfydspsvwy";};
 pgfplots-61719={run="1g3q8yr4i5h5jqj8w5yh1jix2ia37la59y0dcmrj5bnsr8zbmbx5";doc="0fd0azswmcghgpajgvxh82752j4mp5avslaicp2x7hjddh54j357";source="1h9js7l4vygn230svbmby09k966gkbgjxykk5vig45qdr7mqg3fr";};
 phaistos-18651={run="064gh7pwrsp37dxvjfiar9bl1i30a1kngirgywndss8xmrvqin9m";doc="01wd0636h2xs465rypc5q7saxhind14krmk9dp9rqc9129k7rc0q";source="0l6nmd3v9x3j8if5aryak2kh42zza0g73plwv6im6hpxkhhb21jf";};
 phfcc-60731={run="1w2la7mmj0a3sbd3k938bnq8fbl6sdy1w6bxmdfgiywj6wiib6ca";doc="1y4y0gx858gida7hnfngar6damk1gfvpzx70zbjsl2v7x6qkvkm1";source="0n7l6q9f2i4n6lc05ky9vgm0ms2hdwxwynfcqz216pshd1k0b2m5";};
@@ -2900,10 +2969,10 @@ phonenumbers-63774={run="11f7cnv7kh2pry242nxgq72kcjcaxg45714i5rg5w7q5nri4fkf6";d
 phonetic-56468={run="1cd8x4qajx3896a1bzyhnrhkg8j73lffri0fzks5h8s27jlnl6al";doc="01hnb97dwbd7g4lflb9kz3w0vhnk5nzni31sfiqbg35lypa0pbwl";};
 phonrule-43963={run="0xv49vfvlfjad65gngbk5022vcdi0w86mzqk60nbz3i8npvncplf";doc="15bgpzfxjm22f4vqq9nbjhldvxzflrpayv51g383nr41j3k4m3xx";};
 photo-18739={run="0d9mkavi2x4wha1c9zi2fswv7vsi4hr0588gj82vwmwlrb6v8gsa";doc="0xnxkv1rkz4c7wh7dm8rna2g2zf9i97aaajlfqsr6ls1d9by4zn2";source="0vxja102ajrygarqfg0y7bmmhx2my66dlnfp7rsc4kldi1g2fs3j";};
-photobook-66554={run="0h1y1nk3bn4ch1jx5k4y3bwyaag737svkw5bamc25f95i3nknfzd";doc="1jacbv16ijyh3csjfg9r8v4kvfg60cclxk0jpapdqz7fyv93y003";};
+photobook-68313={run="19538cm7z4sw742y03ih5avr6bhxwnpymmppp8w8ah2p4ixrwqsx";doc="0bwb0mw20iz32cw6rcagpdc247n00pnql4nby8vrkjhbyj8l3hp2";};
 physconst-58727={run="0078ggfyyr2vh5ni05la8jaxnyxaz2jn0rlahwkw05ng1h5nwl0s";doc="0d10kzi278b6yf7dvm3j2nsks43jm6jfjql5jyv51l8bq5grkmr8";source="1qvhif2amxfqvwj6vd82f9mjgrk79crnz4sw5v19v02xzxv66fsj";};
 physics-28590={run="06nwz84201w9vky4s877fsiw4pk1kf6iq9yp1jcap7j57nb4l23j";doc="09zmpxkrrv9j2ip034vqwblazl4kyprvp24k0f2k0xgc4fja2pqn";};
-physics2-66119={run="1scbrq7jzmzlxg92skb02ag7350y4jj1gf075czy8d8y2lp3qii0";doc="0hbrrr9ci2c5gmpjgdqarjyx2mnmqaq1rd2qj1g3v58d0lf1izxh";};
+physics2-69369={run="17br2lisl7qyqvjsgyaa7c2fx3hvblj9cx27zfax7v32aly423af";doc="0lwn61jdpzljwlgy1yzllflziwqchq3fwanj6c2yy02rfyi0lxp9";source="1g1psidas3yjknj8nlhrvgjiy6b1b6z42d8260szq8wmmmybi13c";};
 physunits-58728={run="0fzx8c7sgd6incgwdbzyd3pb9dmdajb3qdfd3mj8sascilr0c2h4";doc="0ha1zp0lzx2q10m0wp492sf45pw5cfd98s9pnzn2wxx3k970agf8";source="00p7p4hh49i9xwnfd8y7nsgxajjcpdlxw1asyxb8q20x1w1wy2cs";};
 piano-21574={run="10gfxklfwf60p54wcbs4l1jpwasxvvbnkjhjpiygnk6mvzjx7dyl";doc="0czqrjlfx1i6k02aa1r1crvkw7k2fl17vzqzrkc97msprrymxwgk";};
 picinpar-65097={run="162119bh7hx30742k0f6ygaa0w9hssl2nmp63rmvdnpjlazfiizp";doc="11v1aynkvc6m7484h2pmcm24405v5pdgkvmjg4jabgfkz5q71g7h";};
@@ -2918,10 +2987,10 @@ pigpen-15878={run="0zd90dp5bx1l5d5ka8lzx83yprl1anh7r4qc0laa455dix3swfq7";doc="0z
 pinlabel-24769={run="0dlg15b6cjykp481xn03kg3p1zqwccwnm2la710xdwf87p1k4bp6";doc="0jw94fl3awpyla0flmw9f72j3ssrqh1scfrbx34mxlbmnl4z3pfc";};
 pinoutikz-55966={run="1kj24i32ql4jfhzfxyrcj0nmyyhf4ipic7zdzcz71za6njqv3gql";doc="15farzmd27gp8ms5vck6xcjs0cx7rp47nww0shs6r0b0l99946m1";};
 pitex-24731={run="1g91l1z71481hlwz8vmdac0g4vm5d6940gy1ly44qny626k9j079";doc="070qn9b6bq4szqa9wqfmb3qbfxcgif79dzbb3qqhvs7fh9bivqdv";};
-piton-65835={run="0bqi54s1vw4hkvjv8zr1x58mfg58sh0fi429s6ryqlb8cgv9y277";doc="0b0py0g5gdqaav2qdmy0nx1l8cqprzgnlhw9vfhrmy5s6sa9m28g";source="09cvyin8bvqxrwlq3fvf1vpz9fb9p1074n7x6chkvnf85lvc18xf";};
+piton-69320={run="0r88g4c5rc2zg2vw49a7cswrnmqcynkhhck5w4f6rqm2iggbvwgl";doc="07d13hn6h1wszszzfrj8zib5vvm3kv3z0543c404587qm1s3b94p";source="1j0j70ap527g1czw9ca6gml6blfa0djmjvhvkqlvyv024msm32l6";};
 pittetd-15878={run="1s8865g4fv04ha7vls9frkkmx8dyn0l7z1rqvh3dkyy7fdgq4vff";doc="1jkdny3kqljfjnf9ywpz7xqvfka8kwi33jy3z2yiq1fvp8k60ar5";source="07k0ilmwkg3wvgfpqyqc60hn5mlsj8z5lsx8mq8h3igwm4j8krzi";};
-pixelart-66119={run="04dj9zj2g4jhbsv7aknzvmvb1601da29m2v3h1h5qrywvk7qldqq";doc="1gw05nrh65w3dq6yr68wrhgwxc2qkwwimjihds9chij0h593hjxv";};
-pixelarttikz-65649={run="1v46ll55jbngcvj4z9h8yc70ib2b0gy60m0civzzacf4mscbwkxw";doc="1mmv87csgzf8sfws795992pvqj8k94f56akiivylip2bllz3z15s";};
+pixelart-66012={run="0d41qzn2gsqbgvgaxk9a7cj5r285ayn8amplzv57j5c5azyi6qlz";doc="05mcmy25mdl42wfdd3l64bkkxrvmcj6lw9zb9jypaf2rrdfnpq6l";};
+pixelarttikz-68520={run="1zn0cpmmdfvydizw1q9lhxdj185gyq2hpzl6rpjfxvx5wsm9piag";doc="1p5aa3mjv4g5qa3vi988v583d8h6237lq9bncnjaa5c1sd1l727l";};
 pkfix-26032={run="1sgss755cf1zrpv3x74x5qnqc6w81cvr1x0w7875ijh4c1xxkn9v";doc="0bxijxbbj9v4c5p1rg4gkqnm75rq516vxln6s6174ph7abqrhvys";};
 pkfix-helper-56061={run="0hf9hnjw7ws0mx9w5s6ik17zlq27fyc3p9bgya1wxbh8lcvrygn2";doc="0fh59nzzl58fgpkkfzvi603sfsfnqrj8s39k4nn97567gpv4a22a";};
 pkgloader-47486={run="1vmpxv6x2dq9b4ddj3xxqzkxz213bvz7qn24jlx04svdrq0cnpjn";doc="064qsri65nyy25sz8y9avpxyg3rzcspjr1cfc5jp0vfd07905zix";};
@@ -2935,17 +3004,18 @@ plain-doc-28424={doc="062d6hg4npy57307avvyd2sdxnmyrh5ia2rdb17p6cx555k8zxwq";};
 plainpkg-27765={run="0dq20a8nyyyy1342s8sc1z1i1gdfz49dmv2w9fl5dbnligzxgdfl";doc="145249b9w3jpf9swgc4293r05p7r5ylmxvx1a5qlv3fgni945vms";source="040m08y54xr4966f8b6z38spdhjh197l56am3wpza5qff4nbcj6a";};
 plainyr-52783={run="09py8psdqqnxmq2nkczxz092668zscvf9hbr6fcvrnj0blvz3wxy";};
 plantslabels-29803={run="16hzr9zavc26mqddsq4yzb2y60r2lh1yjlna1qyaxqrq7fr76g1z";doc="0pvy9gaarrwr4f0bzdhj3xgisfmpd73rfcv9mlw87k3l9y2vly0f";};
-plantuml-55214={run="0pr3i90wdf440x5pdxn695xjz4cpc17y12mkvnyd1rxpw09003jr";doc="1z0pgf56601gyhmqqq2mcil4rp1n6r6nsrvxpw0kra6lnvkppisr";};
+plantuml-67097={run="00n393r717v82g1g70qs1b5isw4x5bwvlmajy1ahqrapwxrh7jfx";doc="00gihdh9lvs2y95imsmsjx4qqmqr9maavbvv974s2k82bg24bkkl";};
 plari-15878={run="0jybi5dvl6ksjpgfqfrdnx5q25gl5xgqhwax4dk1shf6rbafkgyg";doc="1js29imppwx2jny1hcvjbkz7cc9qrafgniy9qd11bvjyp3n1vly8";source="0br0vm2ncrdyqgazdr2p1kvgl6lq124b8h82245jc8yz7mnrz2nw";};
 plates-15878={run="1238w5267spw6liidzxd550hjdjxsg3d1231l9vf5fmcifllsnmg";doc="0w1jn22gd938zqifhbiikgggbly2fjhiwjdh2jq66yax7p76pjc3";};
-platex-66199={run="1qddfffw7w3l0zgf1dq4376fx5m76jys8c95wwibxdh20vydf0bk";doc="0h4vzrdvb28rr7snwlcbgsa1wnb2zw6ddj53frqcznm83l799m9a";source="1pa7yg6369fh72y1wxj635kv63ba3c0bdhlg3ws202r6zl7ffmab";};
-platex-tools-66200={run="1yrgp92fk1ci0skh2lqw2pcbnrmsys7gai0my1ijp65zahdscx0p";doc="0v34yg2wv8jy7dj6vszx8p4rqpg0mnb574axqmp2irl2givf6wsj";};
+platex-67315={run="1qddfffw7w3l0zgf1dq4376fx5m76jys8c95wwibxdh20vydf0bk";doc="055pc891zbkjxdzl1wbkxrxs3flw79zms9ghnqjz2jhw6axh2khn";source="1pa7yg6369fh72y1wxj635kv63ba3c0bdhlg3ws202r6zl7ffmab";};
+platex-tools-66185={run="1yrgp92fk1ci0skh2lqw2pcbnrmsys7gai0my1ijp65zahdscx0p";doc="0v34yg2wv8jy7dj6vszx8p4rqpg0mnb574axqmp2irl2givf6wsj";};
 platexcheat-49557={doc="04hvm19x4z7vq2md3p3r2wwa7iqkgkxnvvj1xx3s9145m6fjib5a";};
 plautopatch-64072={run="16m2dsqws4z0i04wfman4m7d5p9y5dij8rl6bs0vphq4n0hcqhh1";doc="04npb7xbhibvjjxh32m1g2c0r3q5j5jhjgc7hn1nyzj2hzz415sr";};
 play-15878={run="0gs6iibb9jkmynhvwldwrh8rvalayv8vk8ziyx9qyqsdsgh53bz1";doc="1dvi29x0fdnb83bkqfsv6l2jp9rvvnqpf1paznx9pli8gvgwa1rz";source="0nlyi6ra8v3pgk5lhhvar848mcd5zqbnc6mbqnbxsj409jczd0rw";};
+playcards-67342={run="1bqk76g9mg86rkhjl12g41dph95zrdby9pddp7lac6bjwvyjg6rg";doc="0m9yvn6bxz3w6l0vfn9ycllj50az3631v5xabk3cjrnlhdq97qcz";};
 playfair-64857={run="1yy8c8aks9c37a18ynilrag254ffcx8fj1xydsi1a58gnifmhi0f";doc="18axmajlbgll8cdjw7v13n0rq9dsbpnm4sa13mf46dq4fhy1i8s0";};
-plex-64496={run="0lic5dqd5xrj0skr400cx8hyj0s2w4qyam70fdwgj1lwzv16l868";doc="05335pp0ghp096x9fv208qc7yxxld8nc3sq1y7gjf90n5h866502";};
-plex-otf-47562={run="1xlckvvrv9j03gzg7b4jw2ff8zpp8qi1996xlm6ixxj6kiipk9c9";doc="16yr6amxalcsjnkphfwyn140k7q1lgbnch6w5iv1b106q2wqxx69";};
+plex-69154={run="0q8x2358prmrlh3zyqymiyq7i2rpzdhv2gw7zvnzjzx7s3kwdjq5";doc="1bpj5qh46d4n6ymfx500p44vj0qn5bqkz8379x3pn5dcy7ia8kja";};
+plex-otf-68238={run="1vzscj27j18km0cjjbfjnls4ylr1b067cynxi71f7wv99s29fw0b";doc="1nyhqvwax36xkcvwd68yb7y5mlainwdw0czyyvl2yd0f0r7m15g0";};
 plimsoll-56605={run="0x39p7fhfyxnz95g44ci8xdiwiq0w2n7z3vq2vm26l9ia9q9m6d6";doc="0rjjk5l0zvqmj32m1xcyrawzzllbs11bzb4i4cvzmnakzlwkwcrr";source="1b703r0ssg8q021z9dc8n7p1w7hk5b548icc269gjrpad622acmk";};
 plipsum-30353={run="1byjqmx68gb2xcb4nw429z7wnagv5l0pi3v13dlwp57sgfkxrz0j";doc="0gmq7rc2r3r50b7w5kqglaqmrqnxv6wav8gz09a2skkir6v1mpgl";};
 plnfss-15878={run="0l4kjidsxzp14ii850m23q3yz1z8my9svqrpd5hi6v7qnv73vdnw";doc="0iw938rnvcfly3z5v5gikd3svx4mxwfhw0gsyv26m37l5slqvf1w";};
@@ -2953,19 +3023,21 @@ plstmary-31088={run="0cda8irxd0gxa18x47v6d1wiwwwh6w30fl9ipxdz112h67l342k0";doc="
 plweb-15878={run="0yimmz965gsb0ddvq3ck28x73p9fn08c42f4331088130l43dkx5";doc="0ad3z41r1a3wkwr7lr9hf7n4bcas10fdjky7f9ykam0244r5q4pw";source="1zpnyzxf125qqz6j3m2182yn71nkrlaan1qfwl98v020iia6vyv1";};
 pm-isomath-60368={run="0kl56njrcs2qklkr49bnkx17qd8csa5bcanc4ypxxv883895qg66";doc="0glkk1l2gkqzkjg4vwi9qd3yfv3xsm4ssi03jizy9dxrxbgl60z7";source="1ly3bh0b1xl5wf3gxvzrwwg2kglvqmaj3mb7alq5x8q2wn1sxyrz";};
 pmboxdraw-53046={run="0a1mp38f2562yq3nzv39ffwhnzwpamy74pvqnigg7hv2v7blkijh";doc="07f1n2wpfqrd62agh0ddw67fnl5qczw16640h3v5x7yw31dx4n29";source="0mqg8xkhqy18m2sbp2i2sv58n2hxf05qr215kbmh0b53lbp16pzc";};
+pmdraw-69366={run="0mxjnrrbmwy6bs8jnm6zk568kx07shz4m3zccp7ppxcrr4b0y3fy";doc="01cxqlfnbqzn6cd3jcm01bxnmas86lpipcihaxk13w0zwaqvyxzw";};
 pmgraph-15878={run="0mrvf2r4bv4qa9pzv90ardy5ncq2kgy3y89pgr1acsm5cspgryr5";doc="1pizlqyb0n20apwb6rvh6yfncyxnh6vfhnvc10il9j4894rii6mw";};
-pmhanguljamo-66376={run="0jhibwvph19i7hmd81b8c83g8n2dd45hj0q1l2y59lx5a21zisrf";doc="0bk405rl1vs6dv1dwn5aibld2rpa5cwd06p9s3pa6n7s8aj8frvz";};
-pmx-66119={run="1dwg3v91z6q6hcbv8imrddncxcf9kmyfsra589drnjldcxcl5629";doc="0z28521xwbibzg83frxy1c5jzgb5w5h9aysfj2hiiyjispxx128m";};
+pmhanguljamo-66361={run="0jhibwvph19i7hmd81b8c83g8n2dd45hj0q1l2y59lx5a21zisrf";doc="0bk405rl1vs6dv1dwn5aibld2rpa5cwd06p9s3pa6n7s8aj8frvz";};
+pmx-65926={run="0brg4xinn6sg8c9jvh3cvznqhlg0l8hfqv5whsh3yaajc5pn40rc";doc="0pd78a36zwhbn7054fgknpa56jli5hqssbhz0qh8fmqxn6kvs8r7";};
 pmxchords-39249={run="0yv1c0s3zjy5w65cpv9gmdr13wkfg04jc0g7b1f0mh8ychhdab1a";doc="0n6g5f4szxsr6zqqp2czi29m1dncfgib1pd90mbrjprvwh0filf2";};
 pnas2009-16287={run="0yl475rlfhlnd9d0pyzm1gj2gixrdzyn6858j1ndvkhr8vc055ns";};
 poemscol-56082={run="1k1vq2hki8jq70d0lmw9sbzwhp7mi5sx735wkrz9046xd0qmhq7w";doc="1cdbv1ls20p764vkllgw710fm4v8nbkw8ryw2546lqa21v9ki4sx";source="1l6zsi6x6akb4z37iyllg99schd90bny8r3pz8vddqjyacnf1j7q";};
 poetry-53129={run="1z36zzm75zidsb8zixmsdgngvg1gyasxdz4lcw4ikdwvjmswqzqr";doc="03cal4780m1r6i1g86d2gil5h6n0h8dkiv8phfjcp890y9vdw2y3";source="0y93c9fvjhfs70qvnk9ff7hwq7zyq8hw8h65bwgr3f26b6skfxyj";};
-poetrytex-39921={run="06h9aqwryssmzkagr5af598ic2rr5j0m5h5mwaw3ssrxwry86mxz";doc="07jkb5z8sdc8gp3j2fls8hcqrh5g67wimb0nfmmz5287why1br3w";source="02x9gadfnianaq3hjrhllrql20p1aa81jv8lc033qj47wml9fajd";};
+poetrytex-68353={run="06h9aqwryssmzkagr5af598ic2rr5j0m5h5mwaw3ssrxwry86mxz";doc="07jkb5z8sdc8gp3j2fls8hcqrh5g67wimb0nfmmz5287why1br3w";source="02x9gadfnianaq3hjrhllrql20p1aa81jv8lc033qj47wml9fajd";};
 poiretone-64856={run="0dc8ll3xk7yrf3irrgl5bh4dwvi6mvgp3iqvzfi26jv12m3fwr8f";doc="0l1ndiwxpva5r7zdgcmn4hghi31w2v6vd0bvmvmywhx82ra8spsx";};
 polexpr-63337={run="1dml5b7zb2w4cawqgvqld63wlny45vnz7p8y2pc7b5h86p51a0cr";doc="198dhv2wlclrs5sqdiqk26llyhjk4l4zr0hlcr1cw56dnhdh2j75";};
 polski-60322={run="0y66zqxb87i8wymryd19hjws7y9snks73030r287lbifb77kyx4c";doc="169z3y419d3afhmhk22d0h045pysdrkhyvsgrs951ah3vgf8n5cv";source="1m8pysaiynxb64n81b8zj3cly6g81w2fa1nrknqnxm27bjzn2jrf";};
-poltawski-20075={run="018iqwz4apkj8pwc3ws7k00zldnz4k02h1hv0ry9d83z34xswfsn";doc="1kx83mgwkxd0sv2xjzvn6wdsbdng6skw71z2xc3xk16lk356q8hc";};
-polyglossia-65792={run="11spw6qjic3wv6zycxjmrdpz23xj365kw26r2gmr3vxj50sq88id";doc="1fg0fv6fi5iivyrcmxw9b3xlw9v4ph5bffl264vm3zs1387iqb62";source="0jhvg7qp1sv7lqbmz2l2wiia3aar1srw2bammb7zl6s3sv6g0vpn";};
+poltawski-67718={run="018iqwz4apkj8pwc3ws7k00zldnz4k02h1hv0ry9d83z34xswfsn";doc="1kx83mgwkxd0sv2xjzvn6wdsbdng6skw71z2xc3xk16lk356q8hc";};
+polyglossia-69093={run="04mn94vq8fkg3a06ivgfvpwgdykac5di2ibi316brz9ypsglvfjs";doc="05b84cypv1ifzip7dvzjbq4xx3hn23qy2430faw527nv8zsz30a4";source="1cjbwqk3r91l1pl68jnyk1gl192gfadfqy3jg9a7cmrnpkyihsnv";};
+polyhedra-68770={run="034zv3j4ga0xqkqn504fdwrcbzjh63v8zzfchjwcsbb2qn1x2rix";doc="1a01r85nliax7zll3qz212pkz2yix2xzh15hlbpqgqslh564fkxr";};
 polynom-44832={run="0vn9k3vci15lq0f6r2354ag4bs55jcq6571wvz3k4daym5ka57s1";doc="1cxsw0b5vxy191xy5clf15hb2cpyyqj5ipvgcw9n0hm8ka3g9l1i";source="0qh4w6q9qch3r41ps38yzlv850wcqvf6b0b6vqirk9lq978k387i";};
 polynomial-15878={run="10w1vq7101hnp2ifaa0j9mfccg9y4s3cyms4m63sx54lbpj6rc1r";doc="1vn0i77hzr72xkj6ka4r8n0g0nbz382z729v269x6p5j9qqmiz21";source="0hsb8yyk6ssih7fpc6qiwaf40cwn8xx4jgwqgpmfgkc0x1qkpri2";};
 polytable-55837={run="02gsan2wakxsw1niq6l82ag2rkkasi1nclf5yad2kl6c5654gp47";doc="03k3qz08bfqjyw4ymmibabbaciqz3srd2hll9np7xdphjhf4d2i2";source="1sh5wsb5i1f60sqdych0b3zjcli2h4g46znb0q6n68r4ma7xqixm";};
@@ -2973,12 +3045,13 @@ poormanlog-63400={run="134qh7xsn7yxa9zx98gpd2hqx3lkd6sqc4rzcandvzi6prsjkip8";doc
 postage-55920={run="10s3lcypskq2qmlyqcgldkg4i4a4qbbqn27v6cr6h3j4z93zir3x";doc="1zy7hrrwmdlr3vib8i8vliznri4p8dhfgkz0fx5qgc3ji15ks095";source="0h89r91diqwc1z9wzvbsynazv5k9spg2rfvg39kzb83lipxiqwjf";};
 postcards-21641={run="1glfwj94drccwmmsx6icc9vyzq7w8kvq6flkkbg1bp0rrkjf448j";doc="0cvhgz34mplpjzzdpy2bxblmz6qxxlshadj8in810g3y22v39khl";};
 poster-mac-18305={run="1b1zq9ay8fxqn9593f8n10zlkirw2b0piic71b9fx6s9a7x82w7a";doc="0wc0194ixbrl722a0djm704fmbf49p7vxk5fyv6d3gyznja54fxz";};
-postnotes-66027={run="14ww41vw8ralwq2ajcb3fg7l46nrl1kjjpipd36hn83a5a5949nz";doc="1qmch1b2wcs2rgna1dcpaa5hib2fsb4bgcyk9d7y9fc69klrrr6r";source="0swky5d52qdxgbhrsp0ryvamk6z2b9n8nb8jankayx5b27p9zk5m";};
+postit-67344={run="032zhdciqwyfng7ll8bpnyl0wndwpm3q4alh7qmsgj978ga97q4s";doc="13j5ygc86v2nkcv5g18j4nacpckciyr641qknpb9mw3i4k39rly4";};
+postnotes-69102={run="0m9izldvlngj81c6nx9ig5civvvxkf9mh3cjj8xh0r70pf3i35yq";doc="1qs6z2rj9k9dmz14r0g1n2iz7hfssr5ysvk7k33y35c6pwc3vvx0";source="137f66097fqzqbzwfwzyqgmdax8z2a835y8ixrna1490zvakbriv";};
 powerdot-59272={run="18ii2qxz7c0wal5xqddyzd2j933lg4z7xglxsxn3vgp8ffq5kr3n";doc="0zpwjmvlckp46ycdldf049s7qvgbpx8cx5zlvzh81qhgdlgximhl";source="1v7pxr134kndndk542f7bs34c5kj85xy0cwvwlhnav89ff2mh5hg";};
 powerdot-fuberlin-52922={run="1gx04y9ysvwzghy38k6izhs9gm1hzssnb5zh8qjjh8v99mk6cqwa";doc="03ci0lcgw777kfmnzas13q75n03z8v2im1wzrd8hpbcwq18mmn2v";};
 powerdot-tuliplab-47963={run="08f25qa5fdacsd8i0bs8y0p3k0zjgja0qp4ak0x3bixz7yivg5nx";doc="04b546i32k1cs6armmnvr8aqbfvs0ysarlsjmsci9xdrz3clm5w5";};
 ppr-prv-15878={run="05xs41xfm5hjpx9dzrngaj824rr8cpwcpvzxsyp1xpzlsv3gk1m4";doc="0rfrxzfm34kn4sgj1dzvdyjx7s7nkyjc785j7pgb609svld6jvyk";source="0miijdgcsn709kpp0zjyqxyxfgk0f798v748brmqshb6mfxbryzn";};
-ppt-slides-65194={run="1n7x9fqd9faciqzwh82b8f8ay2j7wcm1bbr2gr87b3j00bw6b5r2";doc="1kbhdlcg0zmfyq5zcwqkzn6d99zjihx9yb26smrgaqzxdnpwvsxf";source="14a1r34crjn63i39ykz1cmjzf3h31a6w4bmlmhw2cfxv94khyy02";};
+ppt-slides-68764={run="15x2rzkbc43mh39wrmf8fi2vdn4jxq2cmysl39slq2wj7blblhwa";doc="1lkkvn5giyp6l0mz7q0va9p1rvwikr6b1kw4ry1qlq2jpa4zjhfd";source="1jzvqvy0838h3md6i9j4pk43r7z2h2ignbcap9lg6cmwwkril6bd";};
 pracjourn-61719={run="1idcncspb2dcmrfsr8bf1ar413mc51lliq9xgpv0ybsiv91yd4lj";doc="1hks8p9vksn88daqyn7rnsaza4i05dgfb3ngd5yrvvw0v40s3acj";source="1jbicfqvvyi4nnmpqafzlzlx459v5cyv62wmq67c2692am8a04v8";};
 practicalreports-52312={run="0rv5rsba1xdwcv89fl640yyqqk8c8vf2w647yqz8xawm358la42n";doc="1a7p22pkmb365haizgg3ainxlr2626mg6p9962cy0933hb59llcv";};
 precattl-63967={run="1lq5f5fx93a79q144980balnmnkvcn92gi85df14iyj96c1zpiij";doc="12gmnd4fafkgrffh9smd8grv2bsq1dajajh3s6rqnf2l8xr1wqkx";};
@@ -2988,26 +3061,28 @@ prerex-54512={run="0nri97arzym6z3pjzidlr6svyk1dpr4yrlgqzh2jcsrqhwliifwl";doc="1w
 present-50048={run="0irxkzfg19h5pn0drgl5dlpz34j1p5jpyii05b2xjz4810gnl79h";doc="0c7pmcjhc3p4ilx3fr6pxc4708kl7iw1lds5ngh8mlrwz0hhsd96";};
 pressrelease-35147={run="0hrx80i1nfwyhhda415v67qxkgj6fqbg4bicirdn749bwc0anhar";doc="05spvrh6dfq16z9jlswzqrwnscnywp482cv3bhak4vavbxs8bf35";source="1c7nhvaxs4xlycsx2n6bkyy6rhnzc9ddcnw6cccpgilds546ns4v";};
 prettyref-15878={run="0akbp6wsxn4swk0kwxw27x3lpf5anwk49bb8pvssaj4xy68hyq1h";doc="1wmvvsz7y0idwfki553qkfhg8j7k5h79nlhmaz6ln448x8gym8y8";source="1w9qckaw403a8nyqyx8qyqdn3zfkxzgfzj1hdw5vwi2805bbfy1f";};
-prettytok-63842={run="017svxnhqj6d8dpfdppzpnn6gjim78w95wlsqkd5vlsvrsis0x2x";doc="1h551p5ncmjckxhry43gqrphfigzciy93cl8lkk2avpiyj57xvpk";};
-preview-62130={run="02397l99gs9mmx8arh12xyvzr6zlj0bfz8hp5g45ki47a4xqi329";doc="0isix7b9qn6lhashmzr4dns0iyv0nq8x20y6y0hgz6zzdqg4a72l";source="012ihy1wbcl6pbw6la13qbiz9kaqhw124cz7c2glxyvy37jmhn8a";};
+prettytok-66884={run="09lrfza86v4haac2h4pg68vqjdx60h79f3p7my59mwdk67sgbxwj";doc="0n6w3d8fbm7pidh7iga8vmlvx8qvql90k14hahy4q0i2b8dpg2bv";};
+preview-66924={run="021bb1l1k1qpwj35v81s26cw599nk9vmv6q9wk03x9b46ir0mzxc";doc="0rdk8vjlps3q1b91xk2lrfy14wcnfkbdr7zng88wjw6iacp0rgfn";source="0k7nla9s1dd0afmash82izyb4va1wfh3ip4wry2zmgbqjkpjg0bp";};
 prftree-54080={run="1sdb56cvlfrys3f884hg6qpv1nwd6ywfyiq8168bs78g4q2ah4by";doc="137f5nbcm6p428an3v20j5cx5djvdri12ph07czj13877pjy9ccf";};
-principia-58927={run="19xxp7m5vwlsa45a4yc42g0h0l988ml60c6qvs5m3cmz0aaxxl28";doc="1li30zpf3k1izhcmf4f3dpjbpnn01zk0bzpcpxdsxrmh90fjpjgv";};
+principia-66625={run="17vkriwbkwjb2ksxbv9glz11i3dczj8hh4a4mfb3signj2dwyaf8";doc="1d7fbkmjbi6ym7kik631219fa4c1cs80k7f3kzzzsrwkmnhrq6qv";};
 printlen-19847={run="1h6q95dvpldmrfbpdv9v19p34iwq3jzz7vs0z7b6fnijyybjxnpm";doc="08p9zwkgjpkh7ip3i54qjdazgnwq79v15hvz4j4y2dvh294nmrgn";};
 proba-15878={run="15d8n2ik6m5sc4vlp3k2w3h5h8h5s4agijgcnlkmklw3qv172vii";doc="1m2mbbn1fa616dfxkb7x8azqsvczyifygjmbblsyfkd5kl6f8dwp";source="0wbnfa1i6vbpbq2a4yhsvpyifiw1pirz72qasxm1nwmgfg5dndx7";};
 probsoln-44783={run="15zsh16v5rs0baqvy9jwn59d95qj6glvc5h054ldb8sy5nwkl3sk";doc="1l5mq047bpdg21mjdjwfs6ghdh1cb19bf9y5939nlw1wyy1flcfk";source="1lzai2ynjnfinf38jdqb0bdccrh58jbhnwnpm9ikskxpzy7v262d";};
 prociagssymp-63242={run="1vs5xs701gkm4zl6x1qkzbqssffdhg4i3cabqx3s8hp07nw8h7fb";doc="009kqv5n4m5ci39bck5s3h5kwcim5dfjpa6y0xad46syj9mgjgvq";};
 prodint-21893={run="06s9qbfy0rkfby9ff3dylykl81yb3fxpwxrwa8hn1aa2gd9bj2n9";doc="0z8ibz668zjjjypcn0kiy488wzgwzxqackz5z996r3sq5x5zzgh5";};
 productbox-20886={run="1idarj7sxqkqzlnwaqv9f192r228fclilz01fjy444ly765k0cbk";doc="1pzba2ymna70gflrnw6hs35dgkv17qfjs8gh4g6van44wjykhfvg";source="1fnqp2sx0wmyd9130j5zbqw2dk1nkajp4qs46qm47b90wga8pkkj";};
-profcollege-66371={run="154rrjb2sjkpgw98v8kq6hxkjcpgb2zkpgy3mvx45197hgg6grrr";doc="10bz8spmr07l7vs4mfgc390nfc0gx5p6ihsj3wf8fj3bk2f2kna3";};
+profcollege-69343={run="0f88f1q817s8r3skm097hp5k5qbjfnfh2lp26c2vc66bpmpkjzi7";doc="0qp55z9d1x30gs8h51rfyzci1hia8jah9mk6s7z1xlxmy9yvawrr";};
 proflabo-63147={run="0rj7x6s9afn5yid3pqd2vz9qn21z6n6m5cahq92ygn1ix5xbw3dg";doc="0z56g41bw3lwi32z0imja6a4nls406ck3ic4pibyi5ajcb8317w4";};
-proflycee-65977={run="1j8smibbr4an6x3lsva8i3wgb3m0y0zl61f7r92jqqhk4rdnx8zh";doc="1zj7g68cwg70gahsb59zzf2zc66li2clw9lj9nvb3lwnq03r0m4y";};
+proflycee-69386={run="0apwy75hr9b4kirl2f94wz9fxlm6pvndn8ppi88mdplfwhykhvs2";doc="1qwpl2vgi6sxd4p9bqyqag342zzacfvq59nwbd28hcnnyqrr9az1";};
+profmaquette-69287={run="1q10iqq390lkb10xz5x8fjcxic9x15d70k472s9z8nwqw2sdg540";doc="1xhajdlhh24fzdnhq9qqi3r01s5icdii3vgxy6wb0dx2ndkw8k5b";};
+profsio-69125={run="1gj53aqxmmy2h2xxg2hr53baxckwgm5r116iiz7mhlfpd413s77f";doc="1pk0ihk58s346xqfmi7xygismr07pzb4rsx4z2dbras2cwq8r0z5";};
 program-44214={run="0ay2z8ga10zr5p453ss0w5qqqyknsgqd2hifa7lq0gih4rml14pa";doc="102c9fir3hn0m7y3lkj9j0vwf0srbv6inq87lcxwfkvc7yw0rr2m";};
 progress-19519={run="0wgkyvyf24666kg79h7wq1piq6yq2nkw6k5g0ydk3y4gwzzkfhlz";doc="0r303dr6yf1r5kk38c1njjra7vgvp9qrblxj7zd8fw1vlq2sc7fg";};
 progressbar-33822={run="1d0d6dy9ssiij19s259d2ns2k5v2ccc45anhz1qm7iqli12ij0m3";doc="0bxsgvql8hqv4qw1pv18vdxcshphdpbb29mqp3pbbsd4crp4qb5z";};
-projlib-65475={run="14gqy0f4ky37p4bn60mvqm69qz24iyankz09bwfja71zacn6wzza";doc="1x8zlqf8pvvlp7wib0yqrhp0xnm84i91zk9njrxj7f1020bq6kda";source="1zrb67lr1bdw6nzqqybwdkhzr4v6xgskkf16vxq5f08wihw64k5f";};
+projlib-68784={run="1hp39wzk117dc0f9xjbm4hhirn9myi81pzzrppc30vzjsy6c899y";doc="1ics502bv7k4yp1is445gid0av88n0y2d9rqi5sw4plp23hxa4k0";source="16zz56y218gan7x8gmrhd5bfcn44zlxaajyvxx2w7id0ii3kxb6w";};
 proof-at-the-end-64188={run="1bl6s055slsn8y7cvg7jagbaycfm79rfic1pl25v93bpxhrx45gi";doc="0bqjhqcvrhmh0ay7f59shnyvn815pqjzkph067yay9l5jr1s9xcg";source="0x04lrwhhbnm511rbbccmf3p0wzp7h1rxd1kcf8xb03pdhvq1adz";};
 proofread-61719={run="0gnn7zkzrszglcqcwz8c4i13apildg7s93rkp1z3h5m2gr9w9v42";doc="05g3k77vczdqk19gigs9b6w8rccvcr0d382ysqn0yg6cgd70bi43";source="1mggrm4cfji364ylra3ffdhwbx6phcxwfzw2mwls00msk7jdzpsg";};
-prooftrees-52221={run="08ijsd4gfkgczfgz3wmlyk6pb61cqdc7f36v5131xv12x6s2kd4l";doc="0ldhmf22q3m3nhxw2m1z9f19xzw753qrm0nw8hch6wzk419p29k9";};
+prooftrees-67399={run="0sk49q7vavqlcn6rgpzzjjwldss4rlqkvds78jyfm79ky9vdgiz0";doc="0jajcbq3mv8lmixygc7i4nhwiywq5qp9w8hbiqxi16kpqql37n52";};
 properties-15878={run="1pxl101mc318ivzszyycwb79rqghx4x8xr9fvq216ambs7gq4sji";doc="1arkdafwmhg0hm11as4mb75pjz2mnah1l5msy5xnlk4asbwfc4sb";};
 proposal-40538={run="1y5i7xl1z706fcv82s5dyx1ksfvp9dq2m0shwy3an2r94qszcwmg";doc="1haa55hhz11j9m3lxp84yzlpyalrc3hlb7wxvmngqhn2j2mi0b3c";source="1n3z0rvhnc76grih3jy5h5ax7rffxjwmafd92fnp10jinr9riapx";};
 prosper-33033={run="1vsjb2r4xnlwwdjbnkpvl42c86rkzs2imsq762n2w6x41i591ics";doc="1f5w1vb4d7z990mz6iicjakqhszcwirphwv966c66j2jc3yvalfn";};
@@ -3016,21 +3091,21 @@ protocol-25562={run="0kv4ndgdfmwah88sspp4maca6z1l39fg41bf803kapp34nfxqggr";doc="
 prtec-51919={run="09izjx2g6gyckmgzrvg9bzlwz1yvwr0nc40s6wsbb898wa6cswxx";doc="1cv2knhl8xrsyzcywypr6dqgdxqss0r9mxl6wv4clpzpsyvmfzbg";};
 przechlewski-book-23552={run="0qn5agid0s57a8bdlha8y9m99xpcvlqknq473r6995qkdsrrdxl6";doc="1bp9yqs9y28nbzwb183yf8h5862pm3iw1jsi8c6qzhsrcwr2b2jn";};
 ps2eps-62856={run="08zr0qc8p22wr40vgwd9idp75x6cwbb3acnqcqafh73a66vdvbzn";doc="1jmygd0cbja55sdfynfqr73f54lg3vkmc9hylyw0zj1sdw20wmz5";};
-ps2pk-52851={doc="11jchhii2z34ikw0jaddg6kni13linnar4bwdrp6k9kl8zm0h2hq";};
+ps2pk-66186={doc="14xq9x5rf15ibzr41cm5rm4v3rpmj50rfsqp4zzvyhmpmyw4dsx3";};
 psbao-55013={run="0il4qhmc00ny1syfhid0mvmcz42sqp58zi8gf5hm6p3dsf5jy0z9";doc="0zrmprbhrbj3m0q0swlnk581ka3mws13dsha60izi7bfqxc6crqc";};
-pseudo-65690={run="0by3a3xxcx6rw6bh8ias41r0xrmkn6hg4jwpj98afzvlkmwh17m5";doc="0gxlnbp7za981syaz7k64i81gza7jm2611kjwpkii2saa0qmhp66";};
+pseudo-66638={run="0h59v2akfr00vax3hr90ph8p7znbi0n0lnzl99f65pg3k46xpgg6";doc="165i1gg6pfg1bcwxqlg2nx2crn8vblnqm0zxb9kl6jd820wjd9ix";};
 pseudocode-54080={run="0x2p2bq7cqajrn8s03dgikxg2nb94hk7mzmi7l911xdgdprlg6qb";doc="1qzvdp0qmmlljahg6hqn7c67sszvjvp3v8zvg7nwam58by39l3k1";};
 psfrag-15878={run="0m5dlnjf7gmikg4nyxzzfz999gphkg41qm2sksq9ly2rspbdcs8s";doc="135c7sr4i8617vwr4nnz8vcy5qv8icr0r0cmqsj6r1hpkm67zqhk";source="0d68rzpxax5n0da8sg1nh50li7rc0m7syz0kvpsgzqbdp1clbcjn";};
 psfrag-italian-15878={doc="0ssx8rw7fwln02zzscywivnhizgrb6w05awscvv9gf9n1qj6avsf";};
 psfragx-26243={run="1kb769ai57d7zg3bp0r0mspz0a2l87qiyg04a87iqk7vxrwv0bd7";doc="110n7a7jgfmzps5ng4gibxigmm3dpkqlz6jpbnphrw1pnlskwjsv";source="180yrq0rnsb9cd8j70jym06k543q211fzzswzg0dq8fzn3hk2wwh";};
 psgo-15878={run="18h614dasdg19jnwwl5swih2dxp4wis66fkscq8jjmpvjnckpck2";doc="0naza2kxcgm9wdcyibs36qnwwgwpsbj2m9qkk3l9d54kml3wiznp";};
 psizzl-15878={run="0pzbip08246id09mm0chi0gjjgdc7yzj0bd7q8qh5yfdbhjn8yc8";doc="03slfkyrb0pil00n55n6yp5vxxxl8adjbxxmg1c2zl261lci107v";source="1h2hrjxc3ck75cigh82rmi3558dmpliwxzzsaabb178bh76m2n3a";};
-pslatex-57434={run="1wfk27qb4x8aafph0lgnkq3bkz5fy4cmaiivd924mk92l1wfg6dp";source="0qg1055zpy3pi3hljrrhzixhzi19rca2jchg0q04xi0vq3vslpcz";};
+pslatex-67469={run="1wfk27qb4x8aafph0lgnkq3bkz5fy4cmaiivd924mk92l1wfg6dp";source="11gykawqw4fi453s1bp2r0pfm0az2k8gr3rcrygzfqqzgrhxvi8f";};
 psnfss-54694={run="0ng5pkk6m2l8yqd58wggbakbs4hp4400r4ihyi9akf8j4kmq2s5y";doc="0vfv9x1qsivwi6c6hi23vw0jcjz9dclx0vxnifslyzlrh7592dzc";source="0cqpzra8jwdn9d6w4mhmfrfw2zia2nbpyxjfrcz8m1disd10lhsf";};
 pspicture-15878={run="0i41lg0nw9xya0gfiwjd3xgbk0w723g90gnsvnfg764s2dl371b8";doc="1p27zx0svlcm4p12xjq35g2lgj1j485c3x363gciqb4aswmlsl65";source="1f8lhyhfcywn5y78354r37bgalyq57bm1fill5vzny3l7cyqxxn4";};
 pst-2dplot-15878={run="00y967mflrd0y38mqyv8r7h489jrl38rgaiq871wf9k3cbmf0f1g";doc="0j1c2kxc63nf33gi1f146pa6hw7fm5x9h4yc30dqg8hsd2v0bni6";};
 pst-3d-17257={run="0mh6xbrvwxx7nxp4yqm71hhpqjb41g4kinxkj2vmspw9wrwclbj4";doc="1dp9l6vwhb306j998hydb07c6ig10ibn7h0wwiaisgabn0s69xqh";source="0m9lvgmjzzc2lmp63vnly30j9886qabgbhqwpbbyl035cy6k684n";};
-pst-3dplot-61615={run="1km0iilm9rqf422sn8mkiiw6b3xlmhrr9nz4w85dv4af70hwvx4x";doc="05vsiaglfgqzfwlzs2qmrchrfgzycszac4mjyvgynqzvfpy6djcp";};
+pst-3dplot-68727={run="0pdzz4gqvq0h0d13f6464ldz78x4gzn24bxb76lcjj73xpjsxir4";doc="0agrpqkm3zs497b4rrday4cbxy0l1l3rqpiindx7v57fzqh0i34w";};
 pst-abspos-15878={run="0pjh72cjpim4v0ri92b7nbjdmilpfa7d49vsvhfqddq68k02m0yc";doc="1nwjynxlpxgqld6slhhrzlsalp9296nbnj2kzr6a9c9b4sjxxbp1";source="1p9i5bg4jx8s6bb6ilbaa702l2mn911g09pjdmk6mnb405d908fy";};
 pst-am-19591={run="1vk1dpvm5bcnxc6k7kpqq5xb6a227bwhlrwd6mdbdapk58jh876f";doc="10acmb6wm7z9bpgh76hlsjks9v2rzp0qqbcklrjx3iw0jqdk53vf";source="06xvv8fh818ldzqccf911hw4wr6nyzxdmghynlsg4hjn54ff3x0l";};
 pst-antiprism-46643={run="1b8yxfyc4cac5992a3cc4xkj0ip35z63rqxdw2jx748qs7c3gyxf";doc="0d4v65fsk28hyiljr6fpk6yw7sac7n9jmx4bmdfgpkagspb7ygpf";};
@@ -3053,7 +3128,7 @@ pst-dbicons-17556={run="1mq523ngyxlds1jaq1cnwkp6hynlz72imc1sh1f2fch0v91a3kc1";do
 pst-diffraction-62977={run="0ccy05jagh7kpra07bai1j8drwn2701qdfgki925mcifsa74r3y4";doc="12xx19vaygrby5475la4nzygcbf6cf1mq3g14sxyhg997x9q4ha9";source="0wf4kpdn7vyaf9cy7dq6qf3lq37fgkcg91njfbqy9n9v8k87fv1x";};
 pst-electricfield-29803={run="0kk0jjlcfyvz5dws08wnm3qlhvgifrby88idssjhgvqgg8zpz3yq";doc="0zx7x15p6vxj1f9v8id7ba49878xjmbqzh762v1sy1bxygj9yb21";source="0n1rxq6jx331b0qlnpjy7mh84m9vdlrs8ckr2b3slwcwp63cs0sz";};
 pst-eps-15878={run="14grlhaxxhwmpw3xi3xv7n3bq3zx3qwd9rh707wfgz87iaj7jzvw";doc="0dz6543q5g4wsqcwcwablr7w7w5l6dk19m9qpgrhb1w8sg7hgc31";source="1cn9yl1prwzjvxwgyzs5jdywyirg9hy8g76cnl62gkk9ndmcpryq";};
-pst-eucl-56474={run="0h23rkrdnpybpqjksy411c028g54a5i8l3wjr85p1jlv4fph3kn9";doc="1rspj40d3rx0xwv0sjy2rbgkkhccrayaj38pbr4l001dbpxk3h7z";};
+pst-eucl-66924={run="0fr742cx9fcllwzmh4w9690h2yq2ch6zkf8m39iksdsfx82x6sah";doc="0jxn56qsma852nvb3m9qipxyhl39r3wslwwbiggax0jwqzrnbbia";};
 pst-eucl-translation-bg-19296={doc="06c9ajnfl01sl81z5r8a5lzmaygq9rdmgym2v40y7xp7z033gwwv";};
 pst-exa-45289={run="1s94fbqpgv58zks5jfq3dbzhpw4p3gchhm32498m6bsp52kzzl7w";doc="1m7gwxbhnii3s7aqi8v09sq49010yasx6k4p7bx43rhir08v1zjv";};
 pst-feyn-48781={run="0qi5zll29rfc7jkmz4hs0y22if5qjn13whaf7a62rdfvbdp1l87x";doc="184d371rhqn549a9vgvdh92ikzphmdsbskny0dnh0pcgxzwdabzz";};
@@ -3063,34 +3138,34 @@ pst-flags-65501={run="0p89whiwccbsx15jv7krji6fz8br7d4k3ag788dv2cyjids8v25g";doc=
 pst-fr3d-15878={run="1m0zz9bqdqw1hzwp06s4hma68wwm5mmswrp9jj3xc9r5xjyq7fk8";doc="1gpijw1iv0pg30kws1vclsy5yjd7rk0j3qspcjlmkj1bhq3fjrgh";source="1zvssd11fg4hf53rz4c6imsgi77kfcc7l9hh0ni8jnznlgmdjkf9";};
 pst-fractal-64714={run="142i9wf39v31wzvalh41v5bjf1l91x6kib1rpk6fqyhfxx44ibn0";doc="0hkvmraf88w54kgqax7q6lg9zmcliqczyrw4prlivgjkmshy64nx";};
 pst-fun-17909={run="1r1zvnyg5m16fifi5xbzn5iypr4n4d9vbnqi42h6a4m4y1wb3qdh";doc="1gb9rz3kz13xzflr7r00dalqri10lbn830v3xcpmb4n29a2bf0qv";source="07kpm9irvp7dn0hd1wh08p7lfbgn78jj63yqzzxn1jb4wrb4qkx3";};
-pst-func-60933={run="0mzgrvjisq6llgrnk2wiw8bczx964pp6p81a1brlbbwl8zk157mi";doc="0pa54qkihcvikd66qv9yfx9kdy49byx4wwc8gjgjhdfplg11y5is";};
+pst-func-66845={run="05c7166sms46md8nzkm9gzp5s373vqgpkr7c146ywxanix66b0cb";doc="0wlikp18sc8lq2jn7zxh619r2d54p425a5k0cgm669apz7c0vws2";};
 pst-gantt-35832={run="1hkrmdwg7kc4xiif4fvhjwbj2ryxlrbyqb7h2n3rk2jmmky4hv7p";doc="1fqkwzsliv1mg3lyidgcsy652l5d2qy7x1rjix9swvk4vblx4fjs";};
 pst-geo-60387={run="09br33z2vdr2dlsfyqf8rya3qj7bila8r2xwqbc6g96yhn1c3r19";doc="1xxyazg51s4nj8hz8adzv3lvpr2dc1ji0sfm46xr763srwxpjjd8";};
 pst-geometrictools-61430={run="0i80r2n3vsnf4sczqkh9ri4dfb7dfxg9jcyhrrx2az552q1mr33h";doc="1ff7302f5ik2a367c81hgk3d88kkapm1jp5nd2mlybywa2nj5s0f";};
 pst-gr3d-15878={run="10jn2wdc908z2imnpcv03ffm83228fam0cqgmgmcss1774r2nc18";doc="0985ydi7jfsvlynjs5ddjhyhbh11nficfphy6qnvbv0jj367rabq";source="1z981d54aclpbq9ggy28qgnsspgwkavalm0j68pj69jxbcfxrpby";};
 pst-grad-15878={run="0bzq77vj333dsgilfw9k7lslhpmk67id6p1z14aw7nfrhyc80082";doc="03v585i28dc65xrydsp5jj9nd6kfpmhrjkwm3w89dv0p32xyzh11";};
 pst-graphicx-21717={run="1d7zvrnhch7vj1l9xscg4ynj5alml7pb38zwqns403wvcdnmb1an";doc="1mly0nr5yc5rdghy04sarhrwlxiwnndk644s4czf862n92ammh5d";};
-pst-hsb-61322={run="06x08vl255na1xv68v5yxdnarf9grm2mq7m40729dqh5rvip88bl";doc="1ibs0s2fgn6w1mjiassmg0jyb34qjwkarkm3p5zmrdm5d4s1k4hf";};
+pst-hsb-66739={run="0x0yzrsp6pwr5yk4s9rjkdgmxs5g93gmli5k50g8lwfgcz1kyfky";doc="13z67asnaj83yzn6qa9c6q4313klc1aln84hwsb8qjf3qg6w2556";};
 pst-infixplot-15878={run="133806cabfd6c44b0sdhchcmqjqswy2q2j2ry5kr78dzdna40y23";doc="1cd3i5ishy7pawv3ah6486kb63351p1g2d7iwx9zh5vwywi1ymqm";};
 pst-intersect-33210={run="1wbipiav79g5cal64bny5ba872rr4848i32w64bhrl7awsddyq0f";doc="1y45r9pdddh4pbb3bfp6mzss7whapf4bv7zbkrx7wmyjaal73s5y";source="09pbicmzmx0nraf5s8b19grra8p2vvdl903kc582dwn7xvqrk3rn";};
 pst-jtree-20946={run="0082prldszninnbksndf6y5mklvp4zgdyk31v78axp5fl3mq437n";doc="1hgy8iavrhzw6w8r0avf3h9x52fdl3lqshf6mxqpffaq1b0s6xqc";};
 pst-knot-16033={run="1m1bzq66jan3miyp6r9j1pkk7mim9xjn28ldd1nni06v65hdcz48";doc="0gfxyryyf75p89y2l1ar5yfy5c6qawbz503bnpnw7n575rhsz36d";};
-pst-labo-39077={run="1wman8073p41gxn5aa0jilpz8jl7zpk69vwid6f0981m3vc1jdk0";doc="1zdyp20x78zxqp07dcf6hiynlsq04s5fd2jjgjcs3mbjfz96yi6p";};
+pst-labo-67147={run="0wyvxb8xs4qvibgz2nz9fayp9fv6r2jlqxrr7svr43gnzjdsq28m";doc="1ayqgrs4y8cpws9bla26s7b82xg04p4f1y86p1gcl5f6816whq4g";};
 pst-layout-29803={run="0199jrw7b58x6qby4k48n8sd2rffxlkhrp334q2dmalqsi701l89";doc="1346ww24d9c64h03zgz7m7xdsnvkjy27cq4nbjn56bqcrl88982d";};
 pst-lens-15878={run="0220idbrzzslcmlyxxzj52mj9iai0p2ya10ykgkssyd8nfbl2jin";doc="02hbbhdnaz6cc5zkp2zmm92kbk0ppzwljivr1grx4g0jqqw8c2h4";source="1pwn8wx5w65xdz46qf5mzjkg74q296bkmzwsxw2aml406iksy890";};
 pst-light3d-15878={run="0glqibq1h8ynfkgn9r2p0yvgplydsigg5chj5gl2vq2hsb38sqg3";doc="1njiml3v4vb7jxpnai69b08pdikasjk30g3xp31vixqrzr56i4am";source="0rrgfxsbvfbyc1g1xsakmiiy7f8skmv2bkgq6vbji9y1f5s3b4zl";};
 pst-lsystem-49556={run="02m2g6kjs8fxifsdxld6ivjxch7vj137828xpax8s7abr9f4dyiq";doc="1apcp1ms40xhypxr4fq6xrh91ff15gplzllh3zs5b1w153xq3w8l";};
 pst-magneticfield-63821={run="01as8f6dm5yy7bqfm1yw0dm1w0jx74vhpbh4kp55br6f48fs480q";doc="1mc60dryqsmz2i4jspixg7m6rf97ai2zr4f59wf59140wlca7c2k";};
 pst-marble-50925={run="0d7xlygws5f1hipyc2ba7spr2y8h3rprigbrryny3mw2ycdh1yqv";doc="18jzc9fpjcrhya1knqsxxmaix8sglfbcsiszxc949pf4zdpm50ym";};
-pst-math-64732={run="0prlm00k316f4h4i614ly6576gw0aawbbzv5ggaarya4565r4hrs";doc="1k5gvvx3pcf8mhw19p2zz23bzzafcdw887402xsjvs3vlnw3cily";};
+pst-math-67535={run="070vvvcynfaa7mmfmqkkn7va3jvpmwxphm2w8j4k74indii282ry";doc="1w5rhcaggrjn9hmkx4h2h31470fpj8d3v3gk4w8ph35zhds5vl9c";};
 pst-mirror-60506={run="06qvndipn0i69b5jk8fxhp465sqjz79vlwr0j01ria3m91vygyqc";doc="0bfzs55sj49y3lznll477bag80yf06pcv0hh0xfg3zzvhmpcpiky";};
 pst-moire-60411={run="16zhb6gqrpdn56cggm80q67yp175dkbvyj5iy6zr5bxwj6qj8px3";doc="05g9hsxfcm5yl6afrlpba7hc7hd1kr0k00m9zj0jcqp1ggsqnb6a";};
 pst-node-61838={run="0a8bijpghvf5zx9zsd5m4bcwzl526f4r9vqa4dbqdxww0zxwk6gr";doc="0w0wr8xc237qjsz14yf4aq56d6jm8a4gmzp790rsphqaavab677a";};
 pst-ob3d-54514={run="0pglxl2prdi347qqrjpyk6hr3arhfc4rrcz1mnyz7q5jyamlskp5";doc="0s0jyb1s21pkmdnz4wdz793lbvidl9qdfh9cfqa0bwx9mmjvhpnb";source="0v9kih4gxk7aqwynihipm1595iswwkv5y6qj262aikhr6bz8v0sa";};
-pst-ode-65096={run="0mlrbcz6q99g6sc6if21pv6ivz3if8z0g0v40qqiw5z08hwk237b";doc="0cwcq2h2p9x019fjw82vzw72mry12k85g1qh80di2kz555kxrci7";};
+pst-ode-69296={run="1ga14sfia3w8pr8shxwf5231l0s2wd91yzn8lqvb6k9i5g5qcc5r";doc="15pyk4ahpccaxkwrg2kygnlsxryw7x9y74d0hgq234618jdc9fib";};
 pst-optexp-62977={run="194g5i604i33bvnprfyjab50smag094lv4gx2skd2h16zfzmg9lg";doc="1dgcb3fax1n15hz15fr0pzihyn3yyzvidw6nacysc4qxq2l6b56d";source="1cw69vk791rr15dc3z6ivv5lbcziab0bwiar8cr767fpm0w4rrfb";};
-pst-optic-62977={run="1591vaw8y2k99vr0g8dy11grrp98hvgqw5rl9zp501dh3hnf181d";doc="0q76b92w32x744y6ri1nf2dnzv00kyw32xyv3l5snvs728qdvayd";};
-pst-osci-15878={run="0gz1ac21gwhv2xqf5ny0zzgi83yg84qlxgx8mdj9xpnnpv6mccig";doc="1gdx6a07wg5bmfpx9myf7wxa309j64q5y2q1ikzfgf5czy0mxpa3";};
+pst-optic-67052={run="0f3ml0lw1yl9c9hvvx648m0psq9xd912z325mj2a5vqih5vxssyz";doc="1wznc3x2cmysbj67dc6pd8rxjp9hdh7gpkjxmq1vdc2n85vgznv9";};
+pst-osci-68781={run="1frp9pmwngklkwyicr04aph29ljjpgcgagnk5r6dxb0c8bp3209k";doc="1669300lfawksl65nx7x7g3kzzhf8qpj08isxcba40ac6lwkfkp8";};
 pst-ovl-54963={run="0p4yyrvagfjamwd1f81qyfhz6wwjpqi6nfazyl8ml1fd7qjv1g18";doc="0pqh9sz0l0j0bzvsva6kba6gm7cssy36i17px2zrr3lc9k6yajf4";};
 pst-pad-15878={run="09z2dkb2h8hmf46b0h1b235d1yjv42dgx55pj5s4dbpxzgam7ljz";doc="1c597riwdggb0fli4w4ay2iwkqhaiwxy3mcl9diz8lijy0h4fpk8";source="0b2w0pgp8njbndx6x3hq0rwxsr1gwf848l6gk3vrkksq419j2506";};
 pst-pdf-56622={run="1klgwqpc3m5k5ciiqb070h48r9mp4hmssp4s82k79n6kq45ar33m";doc="06b1kpazsfn7gv2npfrnrmxlky5mhw6dfyzip2lwd243m08jdagq";source="04b0kpxmzi42116pxmkdjl87bm6j22wr62w7bka9qww2ifj18na8";};
@@ -3108,10 +3183,10 @@ pst-shell-56070={run="1j97kcw8w52q1ispkpbwblxza7q8v25288pzxkyc4yf7802a3zj1";doc=
 pst-sigsys-21667={run="1v3yz2vhazp04xjd0bp4pyyiz0v4yq7hbr9mq0m2s8pg3hisfbwr";doc="08m72w1jxrafcbr19fp0yvii9aama1rfl9czys6gr3sii9ks6qxa";};
 pst-slpe-24391={run="18f99ravk128r2cg84yxv3cjx2df8fgzq1f054z5g5ig1s5ginws";doc="0g8dhw27n2vf73289y8rah5xakb60cy23993vl3ygz1cgrn356i5";source="1mxninpgycpbakvmc9qc6032mncz890k5ggsfm507jzyfxrdp5lg";};
 pst-solarsystem-45097={run="0n6w3fyggf7favnr90239b6dp2j7q31qi5yjilxdw35s001m1ghj";doc="1bm77lqaqbjnhwv6fra0g05ij4l9vj9hh7gs3sljgdmwy4syqq24";};
-pst-solides3d-61719={run="1sayghfxhng2kh2yn2j095c7bymcfzwa0w6wd31llvp0pqzym1rk";doc="1kz4855a4b9pjf35wvdb3b5vi3c7zwv8pf3d38n613yg3gmpmr9h";};
+pst-solides3d-68786={run="0miw5r3sp58x5q9rdcaa2qp7kvsv6f8pnkjklljm8gy171ddvvav";doc="09ymz8vb5hinmcnnc8x92qkaq6zjhy3gyj0m5rgljrs15ks38vx4";};
 pst-soroban-15878={run="0fygllzq9gp37nkffgk3am2vygl5d5dwyr4avf1gvh0s698jj8by";doc="16a1w9ci7ivqf30hvr23fv6j6clqjb4y7nmjgcbfz20xzxk3aa1c";source="1h6srvvl3s1prswlj608y7pj5l4zzn13yqrhdv41956ikd1wbb14";};
 pst-spectra-15878={run="0nd87bnxf8giakadg457p10idbnn0m982l0pgyx23495qfxywax5";doc="1y40d08nwnpkmrm0jdj69drpip1gwkd8n9hqmairl1wccs6r6dhk";};
-pst-spinner-66119={run="1nkmvjy19cpxqs3ii3djmrr6yj8naf54a97jbprs37afml3zql2d";doc="1sff7bhnxjj7cmixl9qbfvglya79187gx28swxr7mby9ybf941j0";};
+pst-spinner-66115={run="1nkmvjy19cpxqs3ii3djmrr6yj8naf54a97jbprs37afml3zql2d";doc="1sff7bhnxjj7cmixl9qbfvglya79187gx28swxr7mby9ybf941j0";};
 pst-stru-38613={run="16i39r6vivs0z1l5l48c3vky9bac22n5k7gddfj7vlllfg6llgzs";doc="1cl5sq39pfvwhww488kq0cgnlihf63jkhqdd4rciaa8vf55mc6wm";};
 pst-support-15878={doc="1470n03zanpw35dnfzyjqm7d5lgddrimypz28x0zsk9nqpamnqnv";};
 pst-text-49542={run="1s0dqi2mpzlk8069piv4z7jg370navi4r5z8aysy9vx8n0vm27zf";doc="0ia6h49lfi9394sfr29wmafbhvgdm5zj7q13zll4d1agakn48j27";};
@@ -3127,18 +3202,19 @@ pst-venn-49316={run="1i9frqc6b4wg3pb0ks4v0xxsfzs348ddhncr31mhfs39nbj6029d";doc="
 pst-vowel-25228={run="1p1adlrg62jsqzkjkl8avb79w26kkd5jdssmkcsd65dg5qfa9x50";doc="0wyl0mvx2d0zd8q0sdmyrqgr72i2igv0669ajv0gz8miv04vr41k";};
 pst2pdf-56172={run="1rm0frzi52i3irfy5703kw38d3f1grby27nryjpb4ziiw6n5yizb";doc="1sll10kps82b47npv2g2r1l3kkm5y75mp2p2pzqsnxxivgl5kp2l";};
 pstool-46393={run="1g8pmd13f73v8bsrcpf4a6hh00pww6isz00gj8cxnj0xnd4p9xwf";doc="0vwxrcm29w8fiw4mmr5jcxrlc122k4s1wg1sqvmzqypwpvyls59c";};
-pstricks-65346={run="1fdfkf1rjb8akdq1ypy9qlid7a1n6cshfqxn0x0mjhvj76m884la";doc="03mblqwxfkf16xd94rz8w38fk6lnciscvnh09b4nks5l20w6l9kf";};
-pstricks-add-65067={run="0zyly09hggfvshfjhcm45ggg1fyms4q12jjxqjgfz39sm4j6g71l";doc="031gslgjg1a6sd72n2rqmzwxlpljdqn6za9f4p3l20zn8iqbps1v";};
+pstricks-68767={run="07gapdjvqfqj9ca54kqy3wla8pnmnrys4l04bjawg60574qslq5l";doc="04732mndj1lhkpb4k17i8h3mjc8iphv2dayzqrb9ykw54gsb51p4";};
+pstricks-add-66887={run="1h1y2r0y3vypygcczkqi8xpxc0mdcgqm1xfscspqw9ifndx0rwrm";doc="0bd3rwcdmxnazq86c6wwbjkajzd75knja1fc7s3svhn0hxy4jcza";};
 pstricks_calcnotes-34363={doc="00vgcdf73p4143dfjcvs4b5v4phvisv76ink3iiijl6s6f9zbmy3";};
 pstring-42857={run="1f7a26xxxzwfgprhzxq4ay597sln18hjk8cmlzjy342jy45g6dpj";doc="0ngxd95s8lzpsgirgrq4dg0p1dwh4l0gs99nhich12v6l19jd29b";};
 psutils-61719={run="04xwjilc64d5zpbngcsr6c6gvm3857wf2hsyag32v8bk1pjag97f";doc="0hb0bjnk53i2q5wkkcn4rkjbpvyv90d41ynxbgsk8hp2gli8b0zj";};
-ptex-62464={doc="1z5wmihblxhrx2rhsdccs6d8mimlj42kjzjvvj1vifr4c13hbgbq";};
+ptex-66186={doc="1dk8rvadr1q00bjizj567lzjp5l47pr7miyk0ghkajbiiwbqi0kn";};
 ptex-base-64072={run="1h14n8hj9xh97y2g8fnz7q3vrzmm7nkk1yj9194v0y6kjggf732h";doc="12nxgvrinkd95hiwczd8nykiyldjyvh8sk49m2j8hl9g4g6slkg6";};
-ptex-fontmaps-59711={run="0f6cijbr26jjnba7g5ffyh8pb0aihdfv094yyxhrp2wlf93ca4jg";doc="00lx6cv5sb039k3wzjsq92q9x6a2q6l96khmj6rc0l06xva4j6am";source="046jbs402n7g7dyd1akqwx382rkn9m7cs6qr6nz1cpd7c56kfb9n";tlpkg="0znid3c8bpw7acfi4hj14gabs44ywfmcz88x8vya1vzs9mzsiqbj";};
+ptex-fontmaps-65953={run="0f6cijbr26jjnba7g5ffyh8pb0aihdfv094yyxhrp2wlf93ca4jg";doc="00lx6cv5sb039k3wzjsq92q9x6a2q6l96khmj6rc0l06xva4j6am";source="046jbs402n7g7dyd1akqwx382rkn9m7cs6qr6nz1cpd7c56kfb9n";tlpkg="02z3c5jkwmrr61b6ivw0dx45jjgg7larkrhjzg4mr2dha2667hmg";};
 ptex-fonts-64330={run="1qp1linlsyyx2v4v5l2vjvynw9gpvd4c1klszamp2fcy1wpkgw49";doc="0iqy6k6x96qqg2c8p9cn58jpkqq8hhnb20852a39whgvcnk8awhp";};
-ptex-manual-62915={doc="0zwmig2h7ma853lqnl845mxw6512x663y16q9vdd93ci5k94dlf1";};
-ptex2pdf-64072={run="0s4b60gc0wg4wgxczzr2h1xlic0rk23a9wvfy76vysqzlsfmh0xl";doc="0ky2zh6a5d6w2aq8k9wg7p3cvp8l4wihfjlz3sir3ggj1rx2x6j4";tlpkg="0413ifnbmmp6awmpbfa6vm31lfqzxhli49dfd5gnw8r8ny5k1jhy";};
+ptex-manual-68147={doc="0kvq5wx7rz6lz9a5f2fjk1y3l8sbqm10jc80s9irbkhv8rhkg8ar";};
+ptex2pdf-65953={run="0s4b60gc0wg4wgxczzr2h1xlic0rk23a9wvfy76vysqzlsfmh0xl";doc="0ky2zh6a5d6w2aq8k9wg7p3cvp8l4wihfjlz3sir3ggj1rx2x6j4";tlpkg="1rikx19qn1av7hrihjviqi1jgla1ncw3fyv7mjav490813nk92ah";};
 ptext-30171={run="137amhihk598rhaf0qmbahd9spqivzqrmi53y6q3mlzhlrxg0p1r";doc="12crg85znvmpr5yhvr4yr6riw037zwcpwpavp1vb1nnd9zy99ya5";};
+ptlatexcommands-67125={run="0srsgh0a8hzy23xd4a3fa168qx81fixakjpryd3db55ygrvqlvcs";doc="02k3c7nzrsgb86zkhc8mxl06wdalw9cdrp5grm0kaw0q5yzifp9f";source="1wd4k71xrlgdxbix3m2dr5isj0am8skdr1di00bji1vj8fvmdczp";};
 ptolemaicastronomy-50810={run="13zs1n17jsiaavw98g2ggfrmb4pbd48qscqb918shai2ffkpx8lw";doc="1r0c5rixwam85wchqhf405h7mwim88616ycy1i4zv03hby18156a";source="1aacl5pvqww0j2kvk7k5ikn43qhj2pqsxh47kid443g56hclkzwf";};
 ptptex-19440={run="1p3bahmdkxbdgczvx52qhyn2w0wmdzr8061idf0kpbwvl0nkw75p";doc="1ldg6ljwf0iivd0cxb22sld2q2afwfb83ac5r6jxjcfr5ac7dv0q";};
 punk-27388={run="0jywh76pckajz8m9c9li6vvybjwljyzhk7hsn437mswbfdd5f2yz";doc="0lbly72hl8a5996dkjr5ssnzklbshbypxymp4zgdvb0i033pd0r0";};
@@ -3146,52 +3222,58 @@ punk-latex-27389={run="1wfs3li3h0fv6dmpvfjvf0bhq72iy82gpjbxhp3ssm7sj41y07cf";doc
 punknova-24649={run="19qc4ypax7jlr0hw7aim6p0afy9a2qz1ifasx9dh5rnqhjf0q5hl";doc="1x432js1hj43nrxg2bvp4wrrmgpi6p44ckrfic1gk7ki8wzcx4s4";};
 purifyeps-29725={run="125dn66xsrnv4acvk2mbwfl26sy42jw7fngm3p8qmzya93sp0vwl";doc="0lzw7ajxkx78v5dhlsddb0ahq6a9975f4mzmsgp23qczmz28878w";};
 puyotikz-57254={run="04s6878wblhz3m7xc7zgqv0ziwx76r22c4sa974ismfqjbdh6xdc";doc="0wikdmv19kj62vc5bd0n2dl91cqg44lwlfs41nw808hnk96a02q3";};
-pwebmac-63731={run="09abnfapfb7978q7qc91a3yn0yvj5gyynvny7001vnanw5w9wd83";doc="1l0sgg6gl2zs5sdhkfl9qpqk9877d59l7g12nlccvg1ccaxac2hs";};
-pxbase-66198={run="0nlnlzpbd2dd397lxxg97pgaagfyb00ygrd6dz0v3gkmpwllnkvf";doc="1kjkqsbrsiwzz6szjm2irz6ijy9q5xnjimdhhv52xk0j46hyiphf";};
-pxchfon-66073={run="1g1xxx5imyhpblbvwpb86fw3as6mfcxq7ay2vjjn8ydixmx30pnz";doc="02j3ay4qv0kkglzrwk3av5c8xamq098kbdcdkik8fa655lzvca7v";};
+pwebmac-69027={run="1162s28w7mlmp724a72blvphq21vrzydh5fv5hr38a7dgfi9ydyf";doc="1sbri1kw2hgdgw59ahadbysv481zz79lh67z3mvq6frx566vcb2m";};
+pxbase-66187={run="0nlnlzpbd2dd397lxxg97pgaagfyb00ygrd6dz0v3gkmpwllnkvf";doc="1kjkqsbrsiwzz6szjm2irz6ijy9q5xnjimdhhv52xk0j46hyiphf";};
+pxchfon-68103={run="1n78m5685q0w9k2v0iyxra2cj57gh11wnsifkvb04z956r1xvxik";doc="1jm9f934a360jw3v1yr9ca9a4qyrifqa05x5m1a19klf53rn3ghx";};
 pxcjkcat-63967={run="0pg6rh8yf6mnd047br0rwiyjyzb7g8qknwzx7v9r77rxgpvy4baq";doc="0jfm9ln4k0iwvk1ddxma3yjvfrzkhxv63nn76d6xi8gqj1vm1kl8";};
 pxfonts-15878={run="0vkhx82ywv17rflmq119jxs3ib08rfw6lkjgr3mp9vf6vplgqzki";doc="1afcy7c1n63zi5czbpnajrrgwfp9xdymkgwf5h9865adjbb3lm82";};
 pxgreeks-21838={run="1j93gwgk66k3fwkhraapis7ddj8a4bliqh783psdv1054j5fspqi";doc="1md7q2q0b2lhffjm39cxzxf86rw8759zxwj5sbgavzdhyc70ssli";source="04vdi4wf7lw15v05jqycm66j1iiy6g13qrc1ynrnq0df8b0zfs1g";};
-pxjahyper-66285={run="1hcnwp8m1rjpc987bg7nwam6lbc0wyv7anrw7avf8dfljklvnxbp";doc="05jv160jmxhqwl9rl40yj0y2853r04pxnbhd40zn54jdnqz10aw6";};
+pxjahyper-66272={run="1hcnwp8m1rjpc987bg7nwam6lbc0wyv7anrw7avf8dfljklvnxbp";doc="05jv160jmxhqwl9rl40yj0y2853r04pxnbhd40zn54jdnqz10aw6";};
 pxjodel-64072={run="0gywpypmv9c6bqyygyz336v7dn6bnx5ibz2p6f38paamk6bqbyf4";doc="16nf7za81mq77irbdqkxw2iwxgi3jpy5vh1fijp67bq3lx0az7is";};
 pxpgfmark-30212={run="0mkcc99fwi8n63fghw3mz2alhgpakc3hqyd40s2fpwisvh15rbbr";doc="16sapygswd6mr0pr04c86jzngw6gdf62bgv2xlrfzfpq7cnjafxb";};
-pxpic-65803={run="022gnd0qd2qh24j7hsznfknjffbqds6j0n4gymzdkzaal6f8arly";doc="1v0cwa8dnh32mzdgrhdbd7fj9a6jk4qgdp96p5m0zkzga640169p";source="0xqziqgyaqc4vfp3idikr6lri31ihljd775rbx5f3vysa8zxldps";};
-pxrubrica-66307={run="1w74syyn707qwyckizmyh78ycs6ic0mmhliz2wbamz35s1z9l2sd";doc="0cbx00q2bwnrhjwfgwdj4q09ix208037774az77cg6i2qz9xmagb";source="0x592j0vbp8pw0r1wd2mmplksyyl6wnwns8smf0b8s4y3k96n71l";};
+pxpic-67955={run="0zy1f7584bmmn00nwzl8w17hwrc4c5i798763p81sl784hm2vpw4";doc="0yw22zb82scd1c4n0niyc69n7xhjgadabxgbh7jjkxrjbzp6j18y";source="053yqnrc5xfj2gifnn94lxhawbnlfw3dhlzz3jnn4pvry7vnqhvc";};
+pxrubrica-66298={run="1w74syyn707qwyckizmyh78ycs6ic0mmhliz2wbamz35s1z9l2sd";doc="0cbx00q2bwnrhjwfgwdj4q09ix208037774az77cg6i2qz9xmagb";source="0x592j0vbp8pw0r1wd2mmplksyyl6wnwns8smf0b8s4y3k96n71l";};
 pxtatescale-63967={run="15swkjxfxznb101hvlqcxpplxngfaf0nbpkw7j2fgccyqjs5fhfn";doc="1j6yrpyfhn75qkv03bnwj9i3s4lmsh47sw696y13cflvdmsgs8n6";};
 pxtxalfa-60847={run="0fanfh1gb1fmp7binmhks4l90s6925pki6gwyzlaa7vy7za1l3ck";doc="0jc51zsbqbjnp7zqbbl1cpqjf7rwvsxvfzfzm9wsbkfzd16c9817";};
-pxufont-64072={run="19d5bm980iqx0m54fdybllq1f842hmp7976zc6v5w7dbfhndybgj";doc="0vnvdvpdwkwjqds23bif51h9myq4bzgj2k9xmzqzvan8xj446jxf";};
+pxufont-67573={run="0vvnhghcdlyqhl8244c76wd411cd9cjmjsrhic47rjs9sis1ilci";doc="088a02dfk2n6lgyfri74p2lnbp7mp4vn96qqkby0qjfnj6956hb7";};
 pygmentex-64131={run="1kd9jqmbxhkd7gijghd8wi0q5sxqf5dpf22z96wwr29kvv7jxm64";doc="1ppayblsdpmrd9sxfpf0kqhbsxfd1fgq69g48zj9jzbhncwx0lhp";};
-pyluatex-65855={run="0sqd70f5x9c5aa7r55xr1pg5wz5ipw9fv45ry93929imxjvb8i1f";doc="120pdw5kblk6p292vwswigwqy61dmf728d0gjx1661yzyskd42a9";};
+pyluatex-69372={run="171ahvh5ii2gimcx0a2g0dn7s87a58yff7g2dwbw5hi8vyqksfi5";doc="14sxmfsk3lrzcv0k8rkrq7d5dirxmy58i3km6bkahigk5iryq38p";};
 python-60162={run="0brs0hydf9vqwlvxipfrfxqjblazgb8ziy4brp2bi16bnsz59ykm";doc="0x1nfbv7fmyhzhgy6xsndhd9nja8xbip436kg7ygscjxml6gibgh";};
 pythonhighlight-43191={run="1bf3jf05zyggcbz5c6hr06wd8dhf0q5m1i4i7p026s1b7dxxq1qk";doc="0qw1rnyg5pawmp7hd3b0dyjzmbrlxa0hzg7bxnmvrz1akn1cas3q";};
-pythonimmediate-66465={run="02p0gnlbkfb2x0d502d2bmi5c4hz3ibmimns7r2bdzqfvx7ynkhn";doc="1v2h95ixg3fdpql2c5sk71g76j8v9244gcjfzsilwl77fxd125xg";};
+pythonimmediate-66461={run="02p0gnlbkfb2x0d502d2bmi5c4hz3ibmimns7r2bdzqfvx7ynkhn";doc="1v2h95ixg3fdpql2c5sk71g76j8v9244gcjfzsilwl77fxd125xg";};
 pythontex-59514={run="0hgbhdrzxvkc8szvkq2vi8v4xxn9k05zpa95vrmdlgw76ms33wvi";doc="0pxafbrr7mclvn2zdwirqbfa0b03cm4l4wbcgh1ag75skghmh745";source="03a3qj72hzczf4dz282vqq6w263zk1zhgm69h1rk5ibdyasmv8xh";};
+q-and-a-69164={run="15gmr65sq78id1l8nljgppbv85q3pjswwfgylc2msa7pk7vyiwzp";doc="0c8wbw0ia433sg8j9py7ivd1libjx43ys2fqi14m0m766sfrdigp";};
 qcircuit-48400={run="0vxsppwbmhh03mq9k3zb2hgl3628q4i51dz98j2s73z19693266a";doc="0571vlvpvmpjhjbbrd1ybzckhfy7ymralr017d09kf9p5gk0y677";};
 qcm-63833={run="17pryjm0r6w559lgkf03aws720zsap95azfbixm7p8lr1gy5nwlq";doc="0wx14xsj4sy6xpcs87bji6xfarfhlzqdzgyyx2p8439m6ay3cpx1";source="1gsfa9bby33a5qgi4p2awr91gn8p4d2qylz32xmzhp0x6fpqhig3";};
 qobitree-15878={run="0irdc2w96ad7mkgm6jqwia7lk1x4557fm60l98mc6kpd3a9djzgc";doc="001w9a4kxbrx11298gnvjamx8c6plag1gp5b7x9vq35s25kdy0i8";};
 qpxqtx-45797={run="123dfaqzpl8h5ia08swjmj4h05ncz3ishsh6rbcm5px35ccrgjld";doc="0ng1h0yhclki35v1w08r2di3dvf9rp78r43dfa752zr8agrfd713";};
-qrbill-66304={run="02z1ij2jjbd7gls7igr8xk42kd2pvncprqx8j2wqjkydasq0bgjd";doc="0chbcmfhs9ngjfcap5mknays321lwnk7vkairrfir33yrx8zwy3d";source="0hvgl5ygrmnvcv2506jzi01vbvkp8g15lqvrl5ws705iivij125b";};
+qrbill-67724={run="19wl8p36crfgyzad9v20n3j8ad33r7yww9gn3z3yvvggdqpsda0k";doc="14hfgxl7rl026cmbh2cxnj51fslm1zzfnc5pv33gqzd3nzmbs1mr";source="0g3aii3fdjp3ps788b108jj7ggks4ndzhg071jqca0q5xhydnvph";};
 qrcode-36065={run="0vs5sg5hch0c2rxy27yiy1c543l2fnqinr8nvsyr288fja0pfrig";doc="1rmwz89yxlgrypmki8xanqc3xxm10m9zc2shh5r0fzwmsfssri9r";source="115wlgvpxx0vkb9d4gfwbqamk7sfmcfd11hxbfr8khd5hv8asvpi";};
 qsharp-49722={run="1lrnzvlalznyxmkwrn9nh3x2zz74bakiq09dg374js5yni36igf5";doc="091kiiicfinn5cxpfhhb66j3hkmv80gsqd1b66xcz4ghxan43ywk";source="13923qlhbx52x7h3v0iv6y8q0dz8g2ikvfz9m0lh9zwjcwv4mpxy";};
 qstest-15878={run="1xk4vqqics2iwzxck416za70cksx836qrsm4v8idyg9kscvjr1jp";doc="19ddnrz4wjd51h8g0z40db53wh0zlr6m1nfczghc5b26vvcj14y0";source="198xvadvk9fb36kxzv1wpis5qb38dqaxsqva6l7l23kz3sb6k849";};
 qsymbols-15878={run="11jlwr2pwrxck0xcw2szql0rdynjr2pk4jgzlqkpcardibfr385x";doc="078qxbmv1zgg73a923sbfqnwmdwg1qkfxra5r8dzi8wlq1cv29ii";source="01lmlclv9rlkga19mw4ikngdpkxhmhq77kylln8kjhcpa1cylk5c";};
 qtree-15878={run="10a9v90yspc1pq3ja9bzixdq6wxl6q4jxz5na7x9yw9g44z3xaf3";doc="0ja3xpng871h96q220nrlq2iypk2spjs4qr5vpmri89b5nvngf6m";};
 qualitype-54512={run="1r59cbk6rmdy0zhljcfqxksf101rkzib8ll20ak0sshc3f1jj64y";doc="1jxcqd48v11b74drv0lh2gv65aqsjv5zziph2s9g5ldd1733fgl5";};
-quantikz-54911={run="12g2vq2sckjidabs2ivi1r87mzj2rvqk89632szgr8vccjjk7yqb";doc="0ckdbfx2fz0kjja2sanhmmrr61ald26gw4v5d4fw4bqrph8mpbq9";};
+quantikz-67206={run="0g7zjkgfw814wn1ddsw2yxvcv5y8ca66cz13hmfa61p4kd8y0x2q";doc="1rla8zwpmvf5wwd6bp74dimm49aa6m8xw6ix0ahcnvx03vs1yibi";};
 quantumarticle-65242={run="01w948cabqlnwyv0n1wzs97hhfknspx2596w79ipjy1aka4w6304";doc="1k2xwacvm6sks0qj1psskcfm002haa734fqysr4cggckwhf6n7wk";};
 quattrocento-64372={run="1jn29sl616p97vf81krg8g94zqsgvw40p1mh664i3sfkglxlag2v";doc="1v63bbn4yd799cy55w7j6isl53ngzngq9jlzi63nd5bmk4lqcq3m";};
+quickreaction-66867={run="1jcqsgvsa886hw3ldf2xx915jll8glfdd7vmc04plgvvvfavghjj";doc="1xgwv5d2wpp5jan4c347kxmjqfa9qk9396vpz1djsa27h0naj4f9";};
 quicktype-42183={run="16qy6rxxkdkkli1knibhbm28jg80l0qjsn9lsb36b7z5xwxj9f21";doc="0ic0lkhj3rdpwfsrysm5qidw0gby11kmfnzbh5k2fpkfarwfhxxb";};
+quiver-67779={run="1nakig6vyj6fmzpxr7xv79wx75f2dq42k5q80fg90krxm65bmbn0";doc="1jbxdisyxla5s8qkn19ayj0iyqdym7n6xlspr0vjmbz0nmh0nxd7";};
 quiz2socrative-52276={run="1s6g0svlkg503r5mqn3iw90qyw5lwpv7dj92yck7ymziv9p59qkz";doc="0v9x0jxrgiscblh8w9wip07di78glgzd0rn2fp1hpzabi8x94dvc";};
+quizztex-68823={run="1yrari2lhzd6rmkqzhng49vmcbglnb8zn1mw5f4a0np4mw5dhmdw";doc="1qii1rajgh8fba2ck8l1p5dzviiji2i4nppivmgllrvs78cnfk60";};
 quotchap-56926={run="1284ldj6pfqq6mz2a62pi81k1jca8xkc6wa1wbrv3kqwfdcc8cwa";doc="1bnhvp91adi4bhzwddzl16qw6d74in94jq2h16lk06aakcwr72hd";source="1g2cfb5j1qjqads2m9ad9a8n0j7ihrvd55q9b56jd141a23layb6";};
 quoting-32818={run="1sghajwgfdc1p0gifii8wz1rvzsiy38f4jpfmh5pys9w6nr9a8bj";doc="0aknicilv5rn3claf77l5br5mr21yg1dhdc1j1yxigz9k8pljzm6";source="1h01p11ahr4ykqnhgl0kwc5i68mw9wznswrxy9ab5rpma1agjkzp";};
 quotmark-15878={run="1v48482b57w6f1cx0b5av9cq26zhgcqkwi8yllnl9p8pnrjngc9x";doc="1jmdv5i67hsbmybjr8j2sv7f7z8bm3a30yy0ycyp6b5c3ycqx04n";source="02bg50nj945gycxf8kb7s9c87xwszprq3zynrxxpzixrxqd06pf3";};
-quran-57601={run="1cgig3cq5057q0mrs0h5mz8l9zpp5xjjzw42kv1v88556wxc564c";doc="1n20l8366iisgnn9zdzfcwhqrlg5zz84w30ddm1zjhwnjsycin17";};
-quran-bn-57602={run="0dlwf4jnm9jmxa0q3fpcnq496zqn2z66jrmsch520xyxf3bsgk49";doc="00466c408q27rz6yw4wkiqarbf0z5rk2cxs2ahhnhxzgw6pi7va6";};
+quran-67791={run="0gp028w9q30wx5vfjvj53b6brrac6wdkybai4fij2kk2vz0ck9lh";doc="12wphp5nz23svjj06s8xdrfghfqqx85hmyqd4rg7kxyky009i6kk";};
+quran-bn-68345={run="0rfg0vi7297gdilra0lg6z40hxp22y3rk3fxw82j0hh5dj0f5gl7";doc="0lk1xjf1n42v5mkg2sr3mykvgrhi9m53gxndifc7pmm8anivfklh";};
 quran-de-54191={run="1a9dqgrdh6vw6zpygslfq9d9z8qws9n614b5adr7pkjcdwm8zsaf";doc="0fq3yd3grj31wyjvac4qkvs38hjjnlsygiihrxw22ddhsa4cl2jv";};
-quran-ur-57597={run="02r06www7n8mb8z7cx0wgvhawnskchnq28mdqmnyk4a7f59gl1yp";doc="1d86p5dkj9l2g8y1lq48bs92by5925w3zgh94mcl59i156jywlcz";};
+quran-en-68790={run="193b22vcvbrhy12rjzxzgjhlfiyzp0fq97g2sbna45s7358r4n2b";doc="0jgqpcl84dgf0bc5zlzsbif5nqw5kyhi4ngdd4kcj6z5lpafj6k0";};
+quran-id-68747={run="1pc6hnvi1xdfislik6rq2f121q9r8mjy48prmfj51zv061f367bs";doc="1zsf40xn4xfy8wiyqznsa2y7b2rzffak995yrkllkbcny5q20ilw";};
+quran-ur-68314={run="1l2hsql1q8yhicqxdz3jnhhc9cjlwq4951xsyfz5ayzrcckw83n1";doc="05xcidnphnidr1pa4rhiimqlqnfjqkwx4hsl6ppmpiywws904g3j";};
 qyxf-book-56319={run="08v4n8lc3qcxjzfvwqypnky9zhia7ylwq5f31arxgdf0wq4gyhia";doc="0i6g7v0xdy26rdy1kap0b4pnsz8xjm1h90dwby8y0bqlxjhd509w";};
 r_und_s-15878={run="04icw2n2vz98bk48kbqybb6x3wgzz8fr045133vinybx49nk8xxa";doc="16ksw9wid0sr9gjhjkxk3696fcy19gky3cp9ia6rsfh20f9f2yw2";};
-ragged2e-66153={run="113lp0rnx5kh32yd4i19zpbb21ngi5fvbhgy5mkpgpk2n4mjszbn";doc="0nrfzfv3fd9m6alhhvqs2lwryah65pj8h1cvh674yhqlqf896pbw";source="0ikha3pdilvijjnamk91dwqxvh4fy6l31iq7i0gkccmzm908jl56";};
+ragged2e-67441={run="0wvvlhbmj1j4gp66l9p1hq526r3izywyf8ddggj316q2pg4db53d";doc="048f04kd8rzi3cnqwa8gw4cvx2q5k5qpnph2idvkvjy3lw3jr9nj";source="0zj8nphii46xwc4gp6h6l65zz9lx3s0741x9gkz9ghq2x8m7qphz";};
 raleway-42629={run="1d8zv0x1j2c996ql8g7zc38s7fpc61ibk5zdixhj7kbfrz5cbc1b";doc="1i8hja5817kzy894j25hy5cjnw31y4kcahcymx5hrbi0aplhizx0";};
 ran_toks-59515={run="1k31qcvbdfx5xknykv9zlsijgzxcw53amb03avwbqm3kly5d30r4";doc="1jri3cb862m8984awdshlqc9wwcq0hbjw6cf2yqgb9wn186gjfyd";source="04ix834glql0yprygm5s2354q62cwsz39lfk871n8s9mxjd2f1c2";};
 randbild-15878={run="07ix44c2zm185byn868bmm6fcbwq9q37h31brfa4839hpklg41pp";doc="1cpyzrmswxawxk6x2vfjy7y8qj3mjrxgmr9lgjvz11f5fvvdb0i0";source="0yzz5awhhw52zg877nl76410a4q6gy7mrri0hccicj529kk0d1x5";};
@@ -3199,23 +3281,23 @@ random-54723={run="1y4dn1i3kmd99b5br7a2j6ppf0ikzp744si5p6m5rmvg4vh1jh69";doc="1g
 randomlist-45281={run="1kwbg73d8hk4wh69fajl1zqyvkfyfxzyv5xykknpa5s67pxkh9c5";doc="0r8i0ywq21c1h317b3yx5ixr4b1fllgwams4yy5z13alda4wxqdx";source="1s86m5hcncfqkwlr8mwdyh3fsnyzisiw5dlg52r499wr77r5z56j";};
 randomwalk-49513={run="10ivivbyrxm50svqdhv9lm623pvmnifpwpnbhpmx2nvf4crxxbcm";doc="1lvff00h8c2fxyf7if1d2xqkk87lb6396w6mb4yfxwsk0j8j2jhf";source="169x0wy0k91kmfbisqh4ciz8n4knhkxmz2d227gzwbf80sr2a80y";};
 randtext-15878={run="11a4j40zaixjklf4rkzb17cxnfmm6lp9kph3kkp2kalz41qamc0k";doc="1g8nwiz06w4a1sdvdfch5yavar11mj5xpk631n5ym2d5g7hp0dm9";};
-rank-2-roots-61719={run="1fy1zv4yf2gqz4im40r19m1mmgagkvmfhxpzj44csasdcd2w1415";doc="0mrj96c11vrp0b6df17fkiwnbnxpis3rwk5ji8wwa1klg5han5kf";};
+rank-2-roots-68161={run="132sfajpxnl82pz9g76h4xv7fpirqgxrivz2g3mccgvb5ykiv0cd";doc="0y1rva3xz08xkw8s46xxhn6kl58dh1v9i190ffqjd1g2xxix10f2";};
 rbt-mathnotes-61193={run="0mrk5p7h2y1kaaj45fcr56smzi7ny6808k53s5442gf538id9jmb";doc="1ysaqvli3gy777a5g1d7q5brc245qqfr1fhzj0a4dwrj1gcnw4x1";};
 rccol-15878={run="04nw4h7z4k4rnvqh5s602l8h05n85iri3p3cpic4ss71ccn8c2dw";doc="0q3qb0sbhnbqwgc0i9bw27s317rbz05k6pmvhad3m8mvlsbgh285";source="0ss2436k5fbd25cynhw13lq4ns4payl8fi8lc96vi0kvn6jmkwrq";};
 rcs-15878={run="1kri1q5b36d00k1pmpkpa0dmbv7qqprycxzmlmqvp7fx82s5awwk";doc="1x6m7v28p3lslral4wk595clg3kjf2nwk2mi1sva2fl56mny7mzx";source="176fvqs3r8wysrqlqwjdnm0xqgqdyjq7wfwnfb2iv3c3rmpr7ab0";};
 rcs-multi-64967={run="1n60pzx6qrbabksj2aqqf1j4i1b298ldsyjg8z6pmhladq2r3ia2";doc="06lqyy8igbiyl86b8fsl968sv94xcnl1amppyf8hmr52dhdqcysc";source="1pdds0kh3p3rkdn2nrpyfrw224q3rfnahypif8n0aijkcxdlw3w0";};
 rcsinfo-15878={run="04j1sq20960w5yyf37pnzvwaknl8f18mx6rmj2s2vch8bcncdzjh";doc="02zyrgcd0m77xp5p95v63b58mv0h0miqlziagwv1rz3ywvmgwhk7";source="1fgmppgp0n4arrilxmrjn7h7pf5jq7gm6drdz6njq8w1l1qxlxg7";};
-readablecv-61719={run="1za8mnyi0vvwfn1i4wcrmba904jxi805f0v3507nfav55h1x343x";doc="1ixyxxiv5pcyhqx1ddwankc8ymfm83123v8d5i4lpwdr9g9h4jc7";};
+readablecv-67986={run="0z8shn1l3hghkxrmaiyxsv25n9ar59j0nscj1331yf9dwh9cd31d";doc="02zjf16y49lyi9wy3w7k2q1sl3j37k3575nm1hi77bmj4i57rp4z";};
 readarray-60540={run="1hx39j04h7y14qrp75q9f5x3nnii62pvi43ww48nk02glxs9y5kq";doc="1v0f93nhylqs5rz2bxrkfpzlvwajsz6znlyvdnc0gxcbwg330j1q";};
 realboxes-64967={run="0xyp6w8kbycaqmrkkrl8701c7shvd9i16vvgs28cvr61nkv3mv4s";doc="0xd95j7wgv3yzrzq9lvdxpzvvvki2an8kg0zm29yz01m397vmys1";source="0r0phiq8v15ra9a429j63kyjv3w2p96myr8czijfcb9g4920jvmm";};
-realhats-63595={run="19xhg696qbyzjr8dnzg9bh63wys70f4mb0c7wbcc41ia1wymvskf";doc="1p2w8rhg5kjwq7x8ccwd7i5yczk5i55lb6pnl5h73h8n2jpzi8bs";source="10p2cp9lhgbiixs89f1il91ghsl3akcxsz7ay4xni41fas3kmil6";};
+realhats-66924={run="0v8pc4b8ls0xyfbji9m7dw728dni8bsggq2pjf9bi2vzmq8825m6";doc="085nfwsfvmbwv7zlfg849ywyqswi011278gmws01sv3q5y6ypfxq";source="0rp15pryn8zyq668pxapwg0imbn76m9fclwh6qd2jj48bqrlsq06";};
 realscripts-56594={run="0ph678nf5k03xl63z66gkmg5f8agxy201y6bvabhdnb1zhvfrfmm";doc="1kmlaym3vxb9mx0jp7wvmsk13i30wyyazhny5zzk14bwx8rk3kf4";source="1qzqr2q2bkq4pchin1xivg8gwx5qkgip4kq74rswfz5a5iimyh0n";};
 realtranspose-56623={run="1m3gmj9bay3a1b7fidjs6rs2077m7csaszz11g6y5i2sjpjyx2aa";doc="08w4ad33pycaaiwhrnmx3sfx2c6kv417ijhqgxdsja1mrhcp0nxw";source="0s4lbg2jg5fa4x8f9cnp5zcb4yi92g4981dwdksqsilcd0in4ksh";};
 rec-thy-63982={run="0pr0k26k66dqaq4rppgqx27f6km6a7r4zk6cj4yjl5l2ac19vvim";doc="0rljkcq2vgppc1lhc8mms0qxbqiq7yxhp19xbshscga86hxd0l5q";};
 recipe-54080={run="1pnyia45nx32r1ng711k2l3g2h4r6n67nfxvg193z4mz1i20hq85";doc="0hhm5l89naj8vzjnvf2ambpawq7scp9bgpfjzszgb6069c486bvp";};
 recipebook-37026={run="0ianmda3ji60acckagmlsmrsvi4sxp3prznvzqkkkvv88w1xbm8n";doc="0fmc59fddgfs4v6lsba04g334xlkhsl1liph7v3yx4qj6l9dxlkp";};
 recipecard-15878={run="195lg2kvww7amwls014s21l2pnyp24c8cfyb3glrxphcvcdhhr6q";doc="1h13vn2zw880gvzi1pc8j41wa21ygja43hrjmyav4zxziiisrnwq";source="0fkwvjxjhaywk61j750a05x0s5fgb96q5n3afcq056yf01jbvsxi";};
-recorder-fingering-66026={run="0ppzaj6zsh14gvjxy4gk3hz4qfdxka3akh6nrddx1w9ryq6sk40z";doc="0qxw8bbd37yy4vib56j22fxpbwymq6pdb4s4m5dvq55z2ja05qsg";};
+recorder-fingering-68595={run="02wxkvcwh8j3iv6dm9ms3nn09kb8lz97xx0jq7p0w2i95is472bc";doc="0nh52w97xi8p2wgqrpz4svipi8fcam815a340zlsphxsx31c8lg5";};
 rectopma-19980={run="1ivjyfhl4g3j1j0xnq31rcnl66z3xwaixyzs8wwmbf1y18lgzyb9";doc="0gfvsjszqrn2r1cm7blk0xnrnv94l1a7ialwhvf733vm1m699lja";};
 recycle-15878={run="0pj6xvdd30b4y1fa01vmhczinw48d6psfd8iy0rpzpaq89rbjrvq";doc="0sylgv7viy4qgl0krhsf8q1gkxiz91wpn0l5jyq5y1zg92x8jk1b";};
 refcheck-29128={run="0v82jjddvis01n2ngw7yngv4kh2impw77s1yq360sxqjym2m34ng";doc="0ckmd4wnjl0zbyqr5q18whb927sjbz1xgdg1hg5w4ih0g36sra63";};
@@ -3227,36 +3309,39 @@ refstyle-20318={run="0nx762gng6bmlrala884r4mjh2vjh4r20yy00bpjzq0il98hs2lh";doc="
 regcount-19979={run="19n0gwvh87pb2fanw52rc5j540v9yw10h2r8svczim9sdginy56r";doc="0qnxcyh2vhkylaav056lc2vg24y5h11svzy6hrk6rr3sza9k6z2k";source="1xfk7qs4x302lfi93a1n8nzpsmzmypyb34d8hd7h8y6nm7q2g4y3";};
 regexpatch-58668={run="0i8dfsr32f4w3lfh88z45sdhvwzqgh52xqfqgj53fvynblpz9msw";doc="0qh2g9sdj971a75dv3jfxi3ga3mf6fmb4azphkdgxmm690dblx35";source="1iq45q093v1n421r37w42815yxjb7iby426a48mvgzyc1c82rd37";};
 register-54485={run="0i084dij80m292c9f57hb0y3gs870520l8awl3wb21ss76vs5501";doc="0zi950xii9qbscbv5030aw02arc77c8inwxmzkslcmapdqxq5wr4";source="1jz02c2c5xpinxninb1a2bkgan21gijs48rks4xv17y7k6z9h00v";};
-regstats-25050={run="0rxapv9sd1i5wvb7ybaq84bjjcy5widjrgsfbkgg2w3zcanb6k61";doc="08iqkmpa3pg17ik8x49v5xwg8a08806xvp9d2xyamf8ndrcljnh4";source="00k0b24g1c1kpzpvqka53h6c19pxw5cf4sw0ymgllr21agri6mni";};
-reledmac-63105={run="1dhzi396g471ygr8697c998wpz1gn8c89877f9c35yq7jkgwxjvz";doc="0s0gr9vlwcw6ac4xj0ck6yym4l5sz2wyh5rvswv5fdb6wx65zag1";source="1niai1b8dlgpqkpwmm32gr0fvabxirm18xx745da90xvrs6ynsbk";};
+regstats-66795={run="022l63bc3g31479byh1350fl4wpfw9pq9jbqy3xzhrrl35psvqpm";doc="1l54lb8g97gib5al38k98gnahrpl4sc0kr6wrabagq70cbbpnc50";source="1px681bkciakl41cyblk72v5kh83hyqf7bn3s0hjax9alszk29pa";};
+reledmac-68411={run="0kchw0r9irziabbpjbf405f8rp2n7xvijipbyx7isnzadhrkyp04";doc="0gbx77a5k22393yw7c8s8w6pakal4q3sfq8021mhcl2qcmpvc574";source="1vxxgm7wy47gwhg9wax31fm02klrviwadvik5863hikrinfl3im7";};
 relenc-22050={run="13ym795q37rmxhmr0d8834y272si11f0qh7lmhffrpsf4d3bhf74";doc="1hb2sdm9lgzfkj2kkbrlb3alnfjq4rw3islgdzkqbcgqp9s06f67";source="1gk7nbczw9b897idmsgqx6i8xdmi7wizhb3dyc0hir7qmivaqv6s";};
 relsize-30707={run="06sy6v0jscrj2qs7axm770xv8fkiivvj5lwb8mkf58gd5jwc5bgb";doc="1sgv3x3dky3i7xivh6pzqh3lrqjhb62g0ji0hdgmy9blfrdf3api";};
 reotex-34924={run="113nfw6md0v4522n54q63smd2g2iwm89qsqld237f32r3rdkbcl0";doc="0lapzgfp019a7qihfhf1cp2szwq98j8kmcy80c3gf1fa1x0c3x1q";};
 repeatindex-24305={run="1z4z6bpfjmgn8mkpcl1rsd9m1jxdx6lx2kz83r43d1ks5zjc6wn7";doc="1vcq9vbfw4dwif9q5ki0bq378yd4sg5g2yxr24bjav97shd9iaxk";};
-repere-65769={run="13p5xqv306jhxg1kcfjhrih4vl8blpjism830ih38cq9454yqmmv";doc="1vx1ja9c629iivm1cz1h0dhn0bk5691fsndxf43mxpz81kcsi9hh";};
+repere-66998={run="0kjpf1ywcphgmkxsr70mzqlx3mid4af7699hz3fqgs307iswj0di";doc="1fhx74lsy7wsh84p2g9chdqy94vh6sq4wi1rny9pr9cmnfxb09m8";};
 repltext-56433={run="19h9qfzz9idywv1bi4qpl8yqv73lwj6s6aqxqhb8jlh3b2scp4y7";doc="0nhr1lpbb5nvi7mfzrjxfq7ii2kib8klzcsqg99b4pj3hcwhv93v";source="1phbwgyvdm6a616wzvlc24jm40k4hbyjsnim5g5jr15phlsa6r2f";};
 rerunfilecheck-63869={run="0i06ypv9hgdgmsv2idx8bfpi9xfrl1m17ly6cg8a1x0v6ns50fwr";doc="16ryk4k490pxdli58j36bgrbmfi4gfc5jm8y0pnv9fcj07da7wpy";source="17m0dig8vddgga28j5raavq8aysy3kdgzapyrciajj0j90q14sss";};
 rescansync-63856={run="1qdcw7zi965khz3n3xrwg9x84hi58iv8sg9b3dwn36cjdrxvvx83";doc="0szxkc0bpj0in2mlms1m381hhrajvwhp4yk17daihnyyxx6m78i9";};
 resmes-65375={run="1g0gqmx21s3y5h8ll5ymgd2k78mdhw3nrzc3xnpihdvh4gjqg9zv";doc="1qpmlhw6rxc8jmp44349x428f7mrs6dr07l5q20v2qj3xnnicjzx";source="0s5w0cf3a3106v029yndv5hmx5nrdk27dwbw18wb5q8m49gn6pz2";};
-resolsysteme-66193={run="179casx77warx76rzmfa8h2rvb8z77g7dp3scs6kbyc3s8j9x7gj";doc="0q4adkm495rn91aq96baxf365ygaq286cds25wr6hjfg9yj5bhgb";};
+resolsysteme-66192={run="179casx77warx76rzmfa8h2rvb8z77g7dp3scs6kbyc3s8j9x7gj";doc="0q4adkm495rn91aq96baxf365ygaq286cds25wr6hjfg9yj5bhgb";};
 resphilosophica-50935={run="00qqwp5n5a8hpz4zpcmh3avbm0wh2csdwdf450hmqnhpv2hn2z18";doc="1s5r4s8ja16vsz3ssqk0klfm1vfxrxbcj45mlszq5r3k5gsa1y5b";source="0nkxh1yc6nnjlh5bmf9w5k6hzg62f4i7x7nbf2019vlwvqn7r4yp";};
+responsive-69147={run="1ymdbw5gq79i5gd75dcnc484cjgrp7ckh8163a9n8rlghpn0pqqq";doc="1kzw8r28invf2p4xcqfws50w5i38rr7wwzf7jx2x147n8b91zr7v";};
 rest-api-57068={run="04y8xai39hlhj6y78cxq2fqy7fis7mbpwzyk4jmgqd3365738615";doc="1w33inmwr66p81g66zxqiqccks965060034sx8rmjnjfgwqqgcgn";source="06c06pbqa8m58r0lcr2xc6zahf6gjdc1r2zfgs3q1b6czy6rns34";};
 resumecls-54815={run="19cw19c4a3zn5gvsngcxj6xvh2qq5n5am0sdmg9zajy9lqqp5nnf";doc="17z14r8yj33mjjkydzaad1bm5nhvrv5154n5n6snjszd13vgdyh5";source="1mm53893g9nqp3wdks6qa22k4pk71v09rg98nm1i1bz5ppn6kj18";};
 resumemac-15878={run="0nixlk46dpyay8zsxrfkcng23rdyx48mnq8s84xs5whlrg369s3d";doc="1yln2mz6awzafpmrlzi3s12zj9m7qfj4laqgjpy4783rxdxy8w57";};
 returntogrid-48485={run="0cfik8imjgrhgilc7005cgy31h1azjk15jrcvd4vpf3g5ml1hpsg";doc="1plnz793nhiq9y89x7i51bgp9d18kbi0bpwslg982hf65yklmiwr";};
 reverxii-63753={run="140f6n41kdkbg6fivz7rjlc86fvcxv2nizzfb511s21waj3lljdd";doc="0n67pqjal4nv02viyshdznqwd5xzc3s8v3w1zxykrphccic73nlh";source="1asb5s8xvns7l54cdp6gshcirdj0wcwhkl791jxb4c93qmb3pyx1";};
 revquantum-43505={run="00mcqs4zd33larynscqza6p18a8payrgarwbgdsnnvaqf3c2rjnf";doc="1nbs15bl80yl7hrav0awm43q4brdfqm83bpyf2zg00yz5pjm1497";source="0dqxvcd5yinnsal4wydb5ybsldsax18zp016p2yzk212rk61rikd";};
-revtex-56591={run="1kph9xdp7ax4pv24ixxrsivhk9xqd5ln23c96cnn4qwvs65jygj1";doc="1s7i1lr8ra692jwjx2bf61h1jfndqwpqfqjr91v28vh3w7cg0m7a";source="0vishjx0cymhnb4lsnx05zdghfs9h2bhbz2jwsbdma81p66lx4jx";};
+revtex-67271={run="1l5kvnpz3ravhdlzshhgjw19mwm6jggpsplgmdwzbn6pmwnk0wzw";doc="03pyr8hd55dl40wf50f7vaxkwbqcsmajl9hqaxwq878pgbxb1zmr";source="19ij6z0zal8321q616pk62mcyj12cwb12lw6cgpbqf70g61jgfwl";};
 revtex4-56589={run="1v1km5grdg72mqf7sha1laprwhhwplrklax9mabhg13q4c9k8dlk";doc="1709bsjlka0d8x405fyac8vpmklf92qhw0qgmzvbhynhq4sc85b7";source="031vqkbg38iwi92yhvd5xdmmkbjhrr9lm7ncmlwgizf1y0ib7wpa";};
 revtex4-1-56590={run="13azycwjj9ihirfkcgmjrpvjha4wngmgkm6irh3388zwjs2sh7sj";doc="057yf32dsx1j3b89wl9jqrafvib8p0x6l3w3zk1c98p9vp8c0lm8";source="03dy16s50bkgj2l2zkm3z6mzf9qwhrax7cxll2p0rxxwfgvpgh8a";};
 rgltxdoc-53858={run="10wpra4vdjvjsq8n6iz33mnl69b13jbslp6ccf5b61va4v66z78l";doc="0xsz70p88ij6djhlf7n1718fxqcngfxnyl60h3ia0xi1gjzrbk1c";source="1vzldzdqyiqfaims3a8w378k4bfwxyznmw6028xvwrk7abq1nr4f";};
 ribbonproofs-31137={run="1f7j2v5233fvjzlrlfliy18gy890mlr2n2fbqfhh88f2w3z4nw2b";doc="0gqbakw5jdamy0q4rx8y19xkdnb7v5arpkjmmsxhvv12pk2kb3d3";};
+rit-fonts-67659={run="0gsghvmn1va4idw2p62r0a4vr5pdy67kk75f73xpkhsg4i716w49";doc="047lhzb7h0sq1bwrh0a04ank09apii7rh9cdrx77ngrnrk2fz1a6";};
 rjlparshap-15878={run="1af2a5fmzx1mmk0vprx8w18rqgab0dcm1c7sfvnh7v59lgvkh6rv";doc="1is0ny6a5ndhgl441vrv7ik4i0br90nlcddiabgmshwyn87kiciz";source="19kvfg03r3nr99a9ylk3yr6nnq8r7cvfp3rsi2vi10m19jz60ssl";};
 rlepsf-19082={run="0ycf0md4d2bz8003s0q4xi6qdjspi8z1dp5040cm3qm25p7jsrf4";doc="1asi443gvl34m648ap9j5an6fx5x94s3v4dp8bqvygn615jhd0na";};
 rmathbr-57173={run="1jlafpdjryj0sic2zpn5f90754ydnfbb74x8b3q19klm3n20bsr2";doc="1nfcd9ypyscqv3ghlaljrnj4rm2md5h5k6yl173n15zrr56sxkfd";source="08mzgxkwk6frzgd2hq8fz30dliwrkrk23xmqy9p0qjmq9vi7vbf9";};
 rmpage-54080={run="0y292gcfkj0nk8090iqnlrx9mhvh545im2xms080kz0l1847frpc";doc="0rq7xjizq8nwg9zk60gjd9vcjvxyc0xaldc4304nyihfjxfyd00b";};
 robotarm-63116={run="10xlswn7bkad45fyv9j70pd77319mynldwk530y23lc2874s3yn2";doc="00qwsv5vxidjzkm31v21sbzd6rp1pvz2vrs66gmlm1xbfsv4kd0p";source="18zffnyyhc3mp8xpw7bc52q29z3skqfxg6h6x4b18mi9jpyd2x6q";};
 roboto-64350={run="05ynyzlrnhn7q95ld1midxdccc7kv209p4x53bi2n8rsjmp9sp39";doc="13aqrvxs9vhy8bpm42fx1i47m0q80pc4zm5gh2bllrpgpqn9hbry";};
+robust-externalize-68842={run="04m5bnzwfpfqafcqavcwdmqzk1yi22hpq3wrh1kiy858dlcxwnmi";doc="1wq6m2z9q58340sgkf1gvns6n5wxb11a79kpmkwmh3zzz0mjkp9m";};
 robustcommand-15878={run="1vxsxdg6122psbplm22l7f193fv7rd3dadcg6ys4ngzy957acvig";doc="13d5rsj95yx81bfbansh964dig4hjp5raxagzws58f24l8imvfzn";source="1zgnyglhz8i6hgzxlj19kdw31z9kx44zj2vziwkhcpr9clxl8as8";};
 robustindex-49877={run="1fl9vr5mynjg8w74sk2jh8vgj5yjpmyhyr107iblmcicgwv1sd9y";doc="0xf592xvmh6xmw08zwwcsn9xyadd9637vicnz95fbfpp03p9qjnq";};
 roex-45818={run="06mry55hqrakkc7yb7b174cx45n0frk3isxw96p4v77n9pyvlffk";source="0fwcb1fgz4kxbgcqm34s5glswj43wzg5j56ak5an39lsw0wirs94";};
@@ -3266,9 +3351,11 @@ romanbarpagenumber-36236={run="0m2772qfl5862l6m81rrx4xcbj1s7vhk9x0ywsqnr8qxl1kmv
 romande-19537={run="1bmqvxmlv2065ifn6bdy8i3mj1g6pkg44dhjrfr4sj5g8dihhqq0";doc="0fgbq36nzkvfw56rvqajvz8krfd84msx8iykkjizn1m5zkqb4iv5";source="1v8360kqvxidzkq8sgcg8k2cqhl59q7bmrk3gvf9vg0shrbvdr39";};
 romanneg-20087={run="0y9nlxbjyiwivw9jkc0vz0lj3b0nvj9dcd4sj0gxgxa1dg853rlp";doc="0bi3b9991x1pvh8s8yrw5031jkvvwkrwah78qfd5rlywh2ylnrr4";};
 romannum-15878={run="15zjf8wbjif83vnib3y6vqxc138aplb93nfkh95wl2rmahaigmw5";doc="0a8zsbh28jl761ir6is1l05n9jyvzr31y86qwaa714yxwpzak0s4";source="1gnvnj1l88l66mrhvd50cx44wws4a45708jmrncb5mnf0i6v7ci5";};
+rorlink-67461={run="16w0lixzj403qgj8yjwn7v5dg8114h91kbyad27y26z7c6q31dq0";doc="13z72aidbrlgyplr8zhjwhsyk4q1hja60jcw8d2l6275j03ykls6";source="18r6gjh78qfjqp1bczcrsdpzddhyfyj152z2r2i5pjcmdjp1806r";};
 rosario-51688={run="1jqgz4cxiq3md1dldlil6pslxxrp7brr9hl28qcf6akymnfxx37f";doc="050yna9vb9cz026cyi44f1qc596svxvf6fgyxlby2isl1jqy89zx";source="1bzcpxygwsmcg91nxx8lxc9skm5cr8hbz47qmydwznkkzldkdbh6";};
 rotfloat-18292={run="01ycgag2ip0kxdsaymfcndmbhfcc95ppkmwhm3imryibm9112bv3";doc="17x7jdnrnm333cq706cdkgzcyscq1k162l0rg3qgvknig6991v64";source="0ymb6xbsqqj91b9vkfzdab1ip0xqqj72zm1kd812gjgkpgxc3jfv";};
 rotpages-18740={run="1pqfkyqs8ymfqsvq35cpv438g8a3az6sajh2bszxncl7m3rqa10d";doc="069jlj27xa7vnl83bx5m4k79lky0ayvcl13gqxlk8an5kdwmdr3j";};
+rouequestions-67670={run="15265sdg56vrc9i7jl55rqwmhjzg27x46qinmzr51jws1wls9l5v";doc="0gj9w2yv7nvjjr50jwaagp6ccqr537h268sakms9fvd3hx8awmd2";};
 roundbox-29675={run="0607rknc69dnzwajmgaq1n8ixv884bqp5n9m1g6n2d9frmmh057i";doc="1vyna8wndg79vman54sv24hbdlv2jnrdkiwyxgzcwc2zv29asxs9";};
 roundrect-39796={run="1xjfigxkgcszkcja58jd2w1rhhnccsl665p0k20lssb97wmdzjxg";doc="0sg1ck97k8pbg2fjf99mhpvd251plphr5pk1dywmjniy9vmhv1ih";source="02kk3h77drvkqanc04bjlfzg0scprcs78z3m2zf8gs6q8w95k7pv";};
 rrgtrees-27322={run="0jihs23929pzbgpgnb2v9i16fcil9kxkggdv1dvg6xq9f2fh21md";doc="1skw79hvvh0xkjff4bfl0nqdd8znwhhwpdx33v8ns43xxamzmnwy";source="1q7y5mbvnrykrp87kljcxw7zdglh08cqz92iahdsaac4xffnz6bc";};
@@ -3283,7 +3370,8 @@ ruhyphen-21081={run="0pizl8szphgyq12sbpgsw25x88svj6vmf8j7ry23hvc9bvjibck7";sourc
 ruler-54251={run="1ikap9dkdw9lzpda0f2krizqbfkyjxvyddils7clim9nhg77aq71";};
 rulerbox-50984={run="0srxrij0sxvm04n6zk4vq4qqmxbjz3v425nx191z96fpjcssx2cn";doc="030wrw1ry800yixlgb11xbm5834njv3ad9gl4jv08x1pxkj29vcp";};
 rulercompass-32392={run="0ky611n65rvaii9b5ic498p7divfm71h843bv9h70v363mki9a0q";doc="0wqgnb9czbmymzmv7j48lgdv8s280id5sh8mwv6p0jqn69zcpdd8";source="19943zfp2rm3gdm6w5db01w6r1nl0kn4zkrnnxg4ic4n3gvv76px";};
-runcode-65588={run="1vanvfl5v80zrddm9757khwidrmxyfl2w9357nrham7mlv9p3p2z";doc="0gqsxq7v23pc9iphxd2b9d75bsq4w4z3277byra0df26r525jd66";};
+runcode-68223={run="1487x7a2b6wbsxmngln9yzyyd5a38ps069rmk95nxam936ijknjq";doc="0blns23ww5i2435sd6pd02dapqjbxq5vqn6dfwhy3bqnl199dl0r";};
+runtexshebang-68882={run="0c4rsadkk9vxcax1r0c0mz30krw387da9ildvjnh88ll7zgxv7xx";doc="1j72plplkdlazbqhpnykwl5fbszr3lil3zg9a91aih9nzr662vrk";};
 russ-25209={run="0jr0x81xc1zi9vhgvqy0hcga48nhkj9z2n4rd5303b8h68n92yfd";doc="02dl5mh45z9n2b59clcqnaj9fsv79jw46ph3303mlx7plyvdqj8z";};
 rutitlepage-62143={run="0gslb7lkinbhlqdgp8pb60h9x6ajypb5991z17p4d0jwifz063jk";doc="11h7ppnimbf6znqla0r1vq8six0ri5ihzd82dj66hhh6ic5pq9bx";source="10k8l66sjzdfrg6cbslx19a8nrvw7w5xaicn78rkkf095pyh1qpy";};
 rviewport-23739={run="06nc81iapfymbp0kxfk0srpxilfhk94xwhslv6az8n5a3bvp2mq5";doc="1m4xvkafdf2skhclg60fjgvyd6vd5y9jrn3186q0hdi66pa7dl66";source="1hijca49b0cvh3w8dqwng6wdssmg2fjjj7ga9ifmziznb2k4qng6";};
@@ -3293,13 +3381,13 @@ ryethesis-33945={run="18d9lw5inr4fxxk4x4xjxnnvbp2agz25c9h328gi1c3afsmi4lsr";doc=
 sa-tikz-32815={run="1hmxifd6zkq4scfwybz0j4za911r76v56pczgym1shx8lqadsjcx";doc="16yjn7zpfwsnwg0mpqzwqrlz6v2bf1gf7qd9hhj28kzp0qgdnka6";};
 sacsymb-65768={run="0s1w8975ihjffw4mi44x91m8z5cmv7vpwvbai0n5sm9f21mwgvmq";doc="14mnvqqpac30qwjld1vsa6ky1qni968a9kxlvi8nqhn2n12ng3bf";};
 sageep-15878={run="0yavixnkhy1y69l38xj6pbihzm83ncvnsl6pyr3l310hif6r0wcg";doc="0z2n1511lr2m39vn4bdamw8xbxlw92p5hrsxzrnjlrg39ysymsyd";source="19547avrh6yv2v86w8f7b0pbvh8xvwa5z8q69bxcvhwj0jqjicps";};
-sanitize-umlaut-63770={run="003cav6j6sqrcy40xx8djg959mmz8jc7hr5vvkwnk7y4vnljay0v";doc="0il1v8p8wk6asgadqqhb2x7irr997r581c96g9fkc7kzzrs4kv8g";};
+sanitize-umlaut-67126={run="1hif269aigbfg3j1f579c6ipvlqqgs0swlzamxdmplbdxc55i9b9";doc="0nh23n1yhjyf21l9sr8y6yw7v1mil403idqa08prvrmnqhp1d215";};
 sankey-61874={run="0njrbv0wghzsyhhxlahy6gc4jbgyz4q43qzqc3jb8lln6s6yn6bj";doc="0v7pfxj823fxl8w8v8khgnd64g0wr7198071ai7s6bpd9byq3pkj";source="1qr7nfgh8zigjj2hhwsvhnd3dl6933dfaqjidbraid3l93af8ynz";};
 sanskrit-64502={run="1w2qni1pgzj2mafglzyvwfk11csfwz83gbcq1ihqabxsy3wqvpqw";doc="1ss9shgz8q2mdhs2q5128pjgcl9ldw0bz97xwf74346625n4wgxf";source="1sg4dzb24q477cp83wn3wb0w5srj373llhx3fnqc9cmxfb0rs7ag";};
 sanskrit-t1-55475={run="17mqm0iapkf04z5wlj3qpk9qlz8nnq50bfbibikacdanv3852m8i";doc="14g53969gw2azpn7z81kdwc1m1hz8mafrz15kzrfiw9w6hh7s6jk";};
 sansmath-17997={run="09zi9xps6pv6pjwp8pjiz6w4zqa9d3rwqn38167k2dlwnc3ij6g8";doc="103h78a075lh094slfwlh2yk4dbl0wryzmsksvbp80gbv8w7llpv";};
 sansmathaccent-53628={run="0653qd7c2lb63lbgjrbac7kwl2lzygz694li1clwxlkrf0bnv1q7";doc="1r7dqwn7vxgg51jlsgx82kv79fxskcdz6cyhkdbwgd2f3rmkcm5x";};
-sansmathfonts-64661={run="166kmaxvp7rf3kzw86lnazy2wzvy43vnqcq6v1lw7n8mz34m7ahj";doc="1vp8s0z57lplwyi22755xik3ddaahnz1gy6aiqqfnaqk13yrx3wg";};
+sansmathfonts-68777={run="0bs5n1j7gm87a3dcczjmkld4h4ql9q0kbaa07l62vdvsv0zhfb1x";doc="1lnkknp1axxj0aighhj3cmv2y1bcka9f2a0678g1wqc87kh796j1";};
 sapthesis-63810={run="18dfh9msd4w3gml1h187sdzirm8g44dzvdgsnh4d21nnvbbxzhnk";doc="0cy0rhr5lc4k9jz744jy4s9pf8508vqj25xx16qabfi28rqqps3d";};
 sasnrdisplay-63255={run="0qhvx1nc7v6l2gq8c3av4sqsjlzm1raw6cmrf2lls7dg4dpz60pm";doc="10f3cr5vfdgb7g0yw3pjqdfiaciwb81m2gssn0in1hv8izy09krn";};
 sauerj-15878={run="1bd9cvx40skqlx71hnfrnc87b2p1wrw3587fjxlp6a22yhzghhvq";doc="1swlcqm2z289ijbxnv7aib0v0aisqdn4l2bfymvn268siz58l4cg";source="0l5p9c0fl1p7gy815l5064x93msfgb6z2lnvm2x24mwfnfpykrqg";};
@@ -3314,36 +3402,37 @@ scalebar-15878={run="1q9jqf46j12f9rav2j4ngr52pqfyrc4h9xj66cgb3mcc7nqgmc4w";doc="
 scalerel-42809={run="0b4ppffs7zcg3y6i3c6dnjb2rl1xm5rz7k5mxm08qj4dpdhyjfpi";doc="1js1z2fkxy7ixh069hmg5cxm33xjwwg002y64m32wj4ldb7shfk8";};
 scanpages-42633={run="15q22kfwbw6scnx8q9dj3p0hr0m86lj2asy9fp9s0a15xsbhq1is";doc="03lpz3836rwk5nk2sbbyv9s0kvjbw5ld9cvw1n40b5hggivc2sgf";};
 schedule-51805={run="1p36glmixr7qadjj91j9rlzph03rp8hfrrfdqcg1ayyzkinr9a6i";doc="198yxgq4255q9bqjj141d5rvzjxq4rw1363gcwy40yagqs4xhxs1";source="1gc4zpw7ylnnv9k9kbqjf8r83srxbiqmqyy10xnp8gx7xrnbmnyx";};
-schemabloc-58212={run="0bpcrivkkwqb6kg09rkwhqzmc101c64g1j5kicfp11r9ha1fbwc5";doc="0cvbwk285i01brrbpalclm0bfhxs4hnngrmn9aw42ywdi44ls624";};
+schemabloc-68445={run="0vc9hfg5gn0xs9gjv3c4dlrxpsqwp370y1b9v9iqlncglmjcglfy";doc="1l9hqsa743lanyxp4y2p6ifgwrdaxycwnmvdjzdl6ylzv3n4qm6c";};
 schemata-58020={run="1idrxgfzwcy31cdw07f1axv9qxiy2m2j039rj7m6gqqjwnzpdyfw";doc="0wc4vcn0gbwwgf5c7cxcb66w66yl4s815d6m1cj3dv2mcm83cjyd";source="1qblgn5msrnnaap7w1r6szdzphf7dgij48g0h7cyj12dxy8gm9a3";};
 schola-otf-64734={run="01i19k0xhha76zz34ccpq83lgnjw4x7p511ssrbdqmfgrx5q0gbq";doc="1znflqa3myy4x0m7ayg3sk4z7pja5df1jm7lkashrcrr1gjqcdbf";};
 scholax-61836={run="0is3py7zig7whp0hzga4d4a7kfs4h32w1irw4gmrjb3cqndg8w8s";doc="0m73qqh86cpgrrxw8v2nz5al0x850danniqyw8359bl26r8cj6wl";};
-schooldocs-65650={run="0snddqcm935ym1ky4sfqm1br0rcbv4kfl4q348lfx865c26r8gjk";doc="1sdnkshpdwi3dz8h5s49igl29s594kbbi1kcx4czq1hcbhdca2nj";source="05nvr5j1y5s97yg722drrk0df87l75khm6ld3wnwdhfgarsmw5i2";};
-schule-60210={run="1x6lddxv0gxqz7xh2wcjyrqgsfmsh7van1mwiw92ws4xd2a4m43d";doc="04m2ar25p77bbn9hzbrprsh786dfl8rypl4w5zrnbs8kd0a582jr";};
-schulmathematik-64108={run="18989c44rqbjd4fafv30afdl76hakc0hj22306jiam1zg464x7ba";doc="1xhj6mb2fbxyd2b2m8azk8pbib22q9k449wgnjc6mhswxkyyjqrj";};
+schooldocs-69238={run="0nvywxnknaindq3lfdclyqhna4xczyhldm40g287d8kka7avbiy6";doc="092jvfgy71nl68ljh3xd17z86q03ghc8w7h6r2mzrx2n5rga7z3p";source="1wi1ya0kg1gn6v9wbj9c1f3mg70fjkfg3lwciy7vgmzskyfcragw";};
+schule-68483={run="0ki63lqw2m5f4q5aal8qz6v8ldvlpbgc72pzw2rb58l56m1lc66i";doc="0xm09ndnhf93vyp3mwgns973dd4pff0jrkffjm2sfqfasc0lvk9y";};
+schulmathematik-69244={run="1dw6six3530vyb4ym05yzx1f7mh14kk9pd7187rlqzn9n28vzqy6";doc="04y8fyn8plnq1q01qg3l2i5hw1rdycsfhr6i170kxdishq7zavy1";};
 schulschriften-59388={run="08dsnba3p8nz3hnzh1sd5cd09ngg73vl8yq1h5l8qcnynwwbrcdc";doc="0vaqj4m0yxbbmqf51s107k28l2wms68w3km801lph4nfz8khaybs";};
 schwalbe-chess-63708={run="08aym55g3r9nn20xrc4m576q03lgdfxdwhgaac6j29b9jzac5wxz";doc="1s36x2mnj4ijn2785jvgk7mby9xpamh5ar5kz4ghpw64czsx85a7";source="0ls4xpj78311d2q1vacg4h5257wdf11as6x4k83g3m4dx30hxcvx";};
 scientific-thesis-cover-47923={run="1ggghh7w9grb1l1r7xg1igdw79jswcanyn49rpnwiq5rj4a09r2j";doc="1slsn30sbhxlvr73fk9infwjkw66p5sgv0ydkmarkp1ncybqzr6s";source="1qlxpsy3rdb10xxv1nsn817srdfywq6z1zgb4vb0hy3qnbd2rjwv";};
-scikgtex-65256={run="01ssfgixh4x60rzl3yawvsyv6nlgz6qsnhil44vrmgpvjrj8l1bg";doc="0k9pv4g1969fxnlql3y32yd5q9mngca0hnqnpzclpmf0mwgy47i0";};
+scikgtex-66764={run="1hxldpgmp0k6ygry8pni0sz1bkz2mpcifnr7zrsabsx899np0rps";doc="0x73pwz3mwa7gpq9gmmdw6j7mksyknwbaihqfar5hidcg7n45k4b";};
 sciposter-15878={run="1pihppjlynvdlsin8brrhl2mg2jif3fa1mvsard686m4ar6id25f";doc="0cpyz5n70hsp5hjdja3pl1lal1i2akn7xawwcp983mqfgnp8jm7c";};
 sclang-prettifier-35087={run="164sdqd7msilg6jk1ivjzvv49amji4hb5r6wg51vcxmg069apcr5";doc="07s0y5dfmp26j0ayz2bhksdybpqb4cn439cvyifxillkq277dqk2";source="1y67y73f2whg663hw56fwrn6jhhpdpm81w32kzwc7r6sk79bnq3a";};
 scontents-62902={run="0hl8sr63b1z8slq47z4spl0sikxdyr0im7zf0vllspaxqfb4nh6a";doc="1gapcq60n48byiv81czq8h93jhhmhx41iddynl1mq5j2icq5g6wr";source="09n4i1jqp8pjdr9qrk956vr335cc54kr5fjlcdavxxkrwdbzclhr";};
-scrabble-65507={run="1903gqya55dcmppwvcw1snx8395a5i35bwphp0jnv9q7xhfflmmg";doc="0sq03g68z68hsd12z152r93w0k5awpqqr4b2s1zi0cghv3ad360c";};
+scrabble-69024={run="1c25d2axdvz4j7n03dxk83bk9033ik4cqmw7026vjwvqwvp48mfx";doc="06jbihq6m7y7j6ivcl69kyd1jw1hkj1ixl2vsl17bgcp4la8i6hg";};
 scrambledenvs-60615={run="1r6a2k4n1h8n8svp40yraxjxy8xbrrj8d5srgz081n2fb7g6qdqx";doc="0ql4avpcccx92n4mqb6cn8g6zbq73238c4ilr4jj5x18afsg5f98";source="04xrips1nk27apwgfgr0qzn29h5nzs1810q66vlfk1qlmka2gszy";};
-scratch-50073={run="1gd2yq2w2v7n3kfsid71qv2v5q1rvpfm49rsk4815pk4k16kxhg9";doc="0jhy08h2v2qf3p8dvh8mz5yqqrdzxnzlx1p50ng7xn88d9ihpqdb";};
+scratch-66655={run="1gd2yq2w2v7n3kfsid71qv2v5q1rvpfm49rsk4815pk4k16kxhg9";doc="0jhy08h2v2qf3p8dvh8mz5yqqrdzxnzlx1p50ng7xn88d9ihpqdb";};
 scratch3-61921={run="1in71jxpq9mljn7gvaslsnaji21d43yj6ckzim42fyd9zk48waz5";doc="0yr18cyzdfrdz6vs0slbgzgp82gklrmxh34k1p135g7255gw8k0w";};
 scratchx-44906={run="1rhqiix6dmdf9i8wan5xh0sw9ynawzb080b4izlp06d8vkfzx6rb";doc="1p263dcjk8mjfxzgppkbkh7l2p89kavdk6llkffkj0z8gvg8xaiy";};
 screenplay-27223={run="14p99gph5jvm0h9x8irh0c4mxb7q4208j5q0d8pd1dpmlvxvzsh8";doc="18i460n3p05mx325nh7br1fl3i1lfviy7jgl24yc5hwqyx3wwdpk";source="1fdw0bpf4q294yqnc4svbpyiza9bq7x2m0x5rc0x709c1wylqsyr";};
 screenplay-pkg-44965={run="1xzwvnf16djzsif7ff8b51dq98h2844nzkj2f9y6c75g6rhnyls1";doc="0hkxa7gz3sammjdvglvafwczn54m6vcywz6rwqng8qa2hlvb2c3k";};
-scripture-65493={run="1kzcc5lnfyvlgq4vz8p6sx7w7a5r7srjvh66vy555rsfj5sgs2dw";doc="01hajlnq2x6ssz8dxqf7nyiz7in635l5ndna3l38ajjdh25llfk7";source="14am8mn1nra6am3qaqkcpkbih4mqmyb3cr8wlyjfiipyf282y7if";};
+scripture-69232={run="098jk1s4xdvyh5pr90rysmxjhvk26135xfaxq985sazaz6lhm5yh";doc="02q96z886ijc0ipz2gi3dxnr14a67lhffajiqxq1s203m5rbrard";source="1pbdxbmar62z4drqyr31d703lg9yv5rscg2sw493bkym3lw1v2cf";};
 scrjrnl-27810={run="1p858dfbqas8x4ddpw81mf59p47iqj30yban2g70rims1wqy4f45";doc="1rfx2x3kir9qxp74halcwrn9zg8c4lm72jljspw040gpvjpiydm0";source="0b48zv36kn7bg2n94yl2dzwh9ba1fx7phpzljqpn44ybj1ng966w";};
 scrlayer-fancyhdr-63844={run="04cq94rm8jkkncb4g3dy5d0b7c3h8bahby4rsd028i0iiimaqnf6";doc="15xy198pn5illwsphn7x2hdh2x3d3ydqa3rqkiwjj4srq5japbw3";source="1b60i58229yc8mv07fls6an4br8p897sdg18lz6b4a56z73020x6";};
 scrlttr2copy-56733={run="1as8ipxhssfx4hqa4s246gfim09nl35dx1wanfc6p0yk79nm5lz1";doc="0hsyiicb359blk6m4kj5gddlzwphxr12hbrwbp34cjfzkbh5ib5m";};
-scsnowman-66119={run="0xzi49kpfq3n37ryn8p0z8h86x1328az401pmv6iviyw3l4ri0ap";doc="1h472n0ajfc9my3y6ggnihd0kjpiqhw65c7442aidmkwmxqi5lln";};
+scrwfile-66872={run="0mvrg5vqhswmvnpf74ifld6fk2dyczknjf21hwmy7lyca6vn9fak";doc="0jhagc6ab9rfnb3shkn17dhfgklwmz6lg2ln77vskngxia5g9wzr";source="08dv79i1cm699rxpv2h2acnq53ghngc3cf98r7rcgmxvszgqlm8f";};
+scsnowman-66115={run="0xzi49kpfq3n37ryn8p0z8h86x1328az401pmv6iviyw3l4ri0ap";doc="1h472n0ajfc9my3y6ggnihd0kjpiqhw65c7442aidmkwmxqi5lln";};
 sdaps-65345={run="1s9vs9ffjl5i8lax4i5ij7zjv28d75sm7z8frssm1cj0fb0wdq01";doc="18096xagndh28fkiy4sd6nw23vik781w4pybqnwjfy9hfm3h6c9l";source="1l3m01pggyxpnr2nvqnvzwl12lsv7m3lqh7h27l77wnwip7sjhz4";};
 sdrt-15878={run="15p0i40aa82f9lgdiy7wn5vbkbb4z5hzmmr4g52w6jisx8c1w45v";doc="0y1gxcyms3wprp47y2mlfcc68gijyvyc6h10ivif1yydmxq1b2ki";};
 sduthesis-41401={run="1i8rdk8m8bc5lk35p7qd4pqddi3knpq1ylbxv67ij7g8sgrl9xwg";doc="0i7f9zjxs297hx3hd6cm70hkkc50wb1pcr83xk54cy72yqiq119p";source="1j6asblirf0x4f5zp8zbmpm7ak5nsilqf4ksxr4bgrca70vfava3";};
-se2thesis-65645={run="0r5x7rs3jdsgymlnm6aqywq4kb6fh6v7v1jb00w77qicz35cy1yk";doc="1znh3apfh31az7kxb7cbhd7fm1257hml4qvrvqb1gv12vx3k5gck";source="191sb3zh4gax37fyv88x8hxccfbg1bydhliagjfj1ld813f2dwj0";};
+se2thesis-68255={run="0krn4a0r5vl4iaw0mwxh50h96qgwfwh25b26c82jhs4hdssv8gjz";doc="1sdg6kln5vz6misy8fs14abfvbsrb896gzf32a635qld3ayxb4k4";source="0hr40nj37s4civj4q62c29gdyp2w1yqi8n2ls7f77rfsk32w5czv";};
 secdot-20208={run="0pnimi0vfgp5zsp0iwak0r0j562w59cl1fn3pnp1gwjz65q2229i";doc="1v8j3l2bh055b18zxl3287ardn0ns5qjgbqkj08qxz5ls912y2br";};
 secnum-61813={run="1zpxz6j5is9f2iaj53bqq2m73040lmzn60h9rwp9kzvlafciss7x";doc="0dabcwh85mvq73sqyi9zkbslzbhhns1sqrmvddvy1yjww0lf2q3k";source="1f8dfi9vrlh71bfb1mi2ll0gqcd6jbv5k96jpmvrpqy0pv1i2ckx";};
 section-20180={run="0rqlczfl443z7mjmnmndclbjy6qnqvla89s8yqwngzyms4z1h3v8";doc="14d7576idcbpxlw7hy3hsdd41gpiyksb9ajwnn0jm1mk2snzb51b";};
@@ -3354,7 +3443,7 @@ seealso-43595={run="1mqy9br1fz73q2l6czmhly8j6dnw51d50dkfh9622793z0a2cl71";doc="1
 seetexk-57972={doc="1bhv5xgv8jpam5apdybd0cggnvcizk2r6zs7lim1hmhzafpqqlcx";};
 selectp-20185={run="16kcbpvjsdc1ndhhflfmnz0igjyjc5k62gcfly447w7d13qsg2s6";doc="1frpv5dbxfg708xp03hs4vkgqsxjihn3yk3qvcpns6awjlfi2n9d";};
 selinput-53098={run="13pxqr1mzkblniv9rcrr5aslx887xjahjj9f27h7hpx6r4g7hk17";doc="0pbqch586hfwfjbm68g7i56d0jcgg6w26k6g2qlfdbk8mjpc4r4v";source="0na8byym8s2y2jyi1691cnw46izri0y6ybf3g0pmil2hpxy544ry";};
-selnolig-38721={run="1xrndff5if1jbk5vzycj2alj72r123xjwmyr1lrsjkpkp6jqjg0y";doc="14ppr67fbhsqi6d5x0f40awac7j3i90kk7mwrjm1ch1572im5dhc";};
+selnolig-68747={run="1xrndff5if1jbk5vzycj2alj72r123xjwmyr1lrsjkpkp6jqjg0y";doc="14ppr67fbhsqi6d5x0f40awac7j3i90kk7mwrjm1ch1572im5dhc";};
 semantex-65679={run="0hzp5i2zdnw30s5kn797bwz0hi8ldz6x10x6bgp157n9hvipqaj3";doc="1kd48bj4w4rjk8zswgxgjxj470zxnicr7mbq9lb7crra6ldprp15";};
 semantic-15878={run="1vf341vlmgc00d6srdwjm0a2spad674439ml9k6ir24pll39ia73";doc="0rr5kbn1yzil4h0j42v48m4mkqk8rzwcn05rkn8vs2s13az6djna";source="0x2qal3q0m886lw5xd9w200fkq4hn34qs2kqsr7i7dcq9xwl57qp";};
 semantic-markup-53607={run="10ahkdiwm4h5mwigkzgjiq2xmy1lzgjdif11zajwckv2xng5ckgc";doc="14gv3pgdyjjjj8l8vfa2pgzafyqlq0666hbk0cz6497g99z4ga15";};
@@ -3375,6 +3464,7 @@ sesamanuel-36613={run="1a6673xpr0q8v7wr1rrq3n6acydsfsc3q6kmj0qg6hm7lzqc1f2r";doc
 sesstime-49750={run="0nrwgky0rh7lazd41h3jxlb0kgpk5q7hhbgkfdab41zrawjp9y86";doc="1a353bn7z135bnk2a8q57x4z8d03aimyjfqx3w9x0r81rwzns605";source="0vrwbbmfwfqpvsfz31yid9rxzdc19749fwhlpimx30arqpd88jhg";};
 setdeck-40613={run="149m9s33isx98vkl3498ywjy6f9q31jkw8schc16hxxm1z0jadnh";doc="1rp64i0nrrxn7l2g6dlcmfvwbq3rg62h2ifxrzfp3k5ifnlkhpz1";};
 setspace-65206={run="1h2cwbh7kb2hf3s399x78ij2mxj4b9pjyxrc7jjsr4ldx8hvf2by";doc="01v5nwbkap93zf90vx4a2whwxa0hbnscqqgcd8r865xfnzgc8a49";};
+setspaceenhanced-68493={run="0jqlpgv868qvcl5v3kgzi9dl2r99fx7k8frbzd3fj1yfmjvzb1vh";doc="15ln2969hhaic7zk6g7j66b5iqpw1css0qgwnppwfvydyx1ln6yj";source="068z20knb02jccvh3qm9a3rzpaki5r41is38v6ax9a2mxmv36y4y";};
 seu-ml-assign-62933={run="1cz01iy83gvgg3mk54vkc373smz4r47i8084jgcnr24c0gwr4h3v";doc="0f780ydm3ww7q2rar32lxadzda4mz8bccgman9j5ibwfsdnc1jch";};
 seuthesis-33042={run="0yfan3cpx7h7hrnqncn152ccawlrsaccj0c53kzza0wnkr3hc9rc";doc="1hnrl455lz61y9ybhmrvxjb66y5816sq3yqb76zszrscxh5a8h5f";source="0dw7ipk6l0mwgrwrj9sxg8vidwmmy22vmpwm6j2ksnznz0238yf7";};
 seuthesix-40088={run="07vjbiycd00r1daqg8m0b6g9k97ja0wn3s4zx7774av6p2hdhllj";doc="0j1vphdi9z6anvw7d3a20nasrdfgg8vrn9jh9wi787f9vy2xzdlz";source="09qpilk53k37c8dzc3q3pgvm6yf7i7a09ln0yn586wslvm2dmmhr";};
@@ -3388,51 +3478,52 @@ shade-22212={run="1dcpvvk5216znr2i0nn302da6vjixkih5nwix9m3hlmrd69z6hcm";doc="0xs
 shadethm-53350={run="1miq7szfh1nya53vcn9kv3m8jb1sx8p1v7z5m3829ynbyiwr7z9v";doc="1gbjisy9miqp0mrciz793vvhj0a04vaai1ixi6vzplhlx9gknv6i";};
 shadow-20312={run="1avy8291hmmvbrqdn4yza9w8w7a7hbwlh38sl7288c6gh1hkyibr";doc="0rjfdi2hm07j418q3fvrf5pxflh1nfkhrk58nsa23fixxzaw5nlk";};
 shadowtext-26522={run="1pnnskcw1nq6m3rlvsa69dxq828dx0bgggg8n2p2bxnr9gmnba3c";doc="0lfvn68d48yh8smf4w8c1is67chsfnipxc82fx6mal1czlyn73hf";};
-shapepar-30708={run="0siq7d3d5gr91s3bc5873540b1ia73ggkf1y1bs47zb3mh4z9g0b";doc="08bwm9a4rq70swqibj9s0i4042fnribqz93jx02xd0638wa51pph";};
+shapepar-69343={run="0siq7d3d5gr91s3bc5873540b1ia73ggkf1y1bs47zb3mh4z9g0b";doc="08bwm9a4rq70swqibj9s0i4042fnribqz93jx02xd0638wa51pph";};
 shapes-42428={run="0ww9akd1cf6nr9jk00qrjc8j0d9ryf7f8hc5ywmnz1q1z6mk1fqd";doc="0qh721vhyny3xmkwiaif3gdmk2bhy67mvyfkc4hxrba8lddnkfqm";source="0g3xfni1lmwdkl2jmprnhl3yxdrmilr6nb59kvznwph10h1c7iqd";};
 shdoc-41991={run="0casdf6vn89la2vgqy5zcc04nlsrqpiz0zj7mwlf6w2zqcpmr1x6";doc="1vzz7q88xq2dg3r1xf4idgvdqs4q4w5lplg9rvi867qa8qcf3ly2";source="0wxd21fs45f9d5y2ml3w50d7z8ig25gv34iy3mldarnqi2v64p7z";};
 shipunov-52334={run="01mckfm6ikchmld5r8mdy5x472avh473bfc7lk4rqan8p4wivjrl";doc="0k6x9nxsqcg74z9i462qix58qycf3wjii5ld13xajn04g52bwvpy";};
 shobhika-50555={run="128p64d6bc0m65nwdrjr35b7rxlx21c025vj8bk6n1frfg4k4lzx";doc="1zxg9rxsdf15jn0hn81p20j0dbq1095vqrmh7d5mzhlhnybkr1kg";};
 short-math-guide-46126={doc="1wjcjgw0xk4zx57f364cpl57qpxj3lq4lahlkbk6iiin1h9v2prf";};
-shortmathj-54407={run="19rscnl84f9x6r7kajj6wjh80di5y1mc4g4nybafnisap76r3c06";doc="1kzzbkv36hj2wc9kz1wjr5dlgx3r21vlyj7sy8m8i72yfnmajgbx";};
+shortmathj-67201={run="19rscnl84f9x6r7kajj6wjh80di5y1mc4g4nybafnisap76r3c06";doc="1kzzbkv36hj2wc9kz1wjr5dlgx3r21vlyj7sy8m8i72yfnmajgbx";};
 shorttoc-15878={run="0y1sa1l5g19arc5wdnqp0jzvqn51m4gb07acpcp3ajqq7n7yaf3y";doc="13nlpmb1asrx8vi08kb6kcqg6szhnzb6667crj9xchbk3zm9iyil";source="0a3hl98rl5qadx1mqqla9hw6i1s3324i4la2kwdazhxhvi6nxm0q";};
 show2e-15878={run="0mhpxhvgfnzwwzd9ahyzdhqxzqz9sj6vldrnbjy4n0r4fv6c67pi";doc="0zfir9yzh3mgpkldcak7hzal0mwls90h1m5vxiax6h2izfkrixfm";source="1lnhqxazyz2gfgkgbj7l2140x81bgsxb71y8dagcqazjzdmqgcdl";};
 showcharinbox-29803={run="013an5sq2kxrfs04k51ldc9vkixag1lbicl614sbj3n3ixgk15db";doc="1zdxvlj1jspgkws4xmwa8yy7aaxqwr33lmzkicg6ayy465jmfk9b";source="0b8hq68lbd0xjyd1cj3qsw1rd4rvjsihd6s9ab5v3a0q1sm5kaw3";};
 showdim-28918={run="1pb5qddnvv4kl79fcp20zkcfgxm8p4zix82g9431db3bbavvmkri";doc="1hc208xi8c4ihxb9nsk6y5p6p43yyylqh7jgy8lai2a526xm2hgw";};
 showexpl-57414={run="0gg8bp3pddkp3z79z8wkh9263gnxhcn6vxhgp2mq7w8i166rrsyc";doc="0dv60pc2p19bzr1fj2hqkgyjry9j8ykcgsi0v3xpvzh91ic9v5q9";source="002v6m0gzzx4kr8vnw75czn58cmzjnyyfyzi2hvfx9ykh7nmibng";};
-showhyphenation-63578={run="09y88h5vns0g7xg48g4kcf5vg10qg5m445ihxcq3r3wa13clj3py";doc="0ymp4x3n2p2d84mzc9kcq6dyywhjivxjrar7v56anhc7z9hxq419";};
-showkerning-63708={run="1irn104fk72wkk0qhazgd2965gj5rzaf4g4j4hifi03qz32xpijz";doc="18n8ifl29garmx7fyh01h5vpycb41lrrb9wvvkl1g9s87ldac8c3";};
+showhyphenation-67602={run="1qbgbs9jc2i2r572187p925wjyw6zi1h3pgpyr1ixz84ykdjc2n1";doc="0qrvpapyby3bbaxh84529fvhgpsvsd8xv1020q832ad5fay6rm10";};
+showkerning-67603={run="05jfqr88hcx4mq1fq9hv47921d54947qqa3jdgvk529d0487lcqf";doc="0ggkfgf7zb4jn6icnn43w4jzlklkdw7f0pqyksf00mgxcx041fh6";};
 showlabels-63940={run="0v3azvk9minc28bs6n7g75c0bimnf2ilw1379fd8hic59h1vgqja";doc="1l46xsay07ysg4d63x7mxkavvd9cnjwmfcmgnsh1pg4icpyhs055";source="0vmh36ia7s85bx51hddga0mxb4lcfrmxk31zidqk4kkpqmf20mj9";};
 showtags-20336={run="04m7f6i3992p93xz9rlfa0vnil6h9dyk7gy1v7ih47f1m2awjak8";doc="0i0iaz4hlgf52g68znl5a3q366hd8ygad2khjs3y7hk1fwqpz45h";};
 shtthesis-62441={run="09g79h7dwc0v06h06svj3h43q1xf31fli33xxlqnckz28i1a4y95";doc="14fqspd33n3r642mvmiamswjl4qjda2g7p62amxs69s64cqfliv2";};
 shuffle-15878={run="0laiw8v6izp53c8y0jf4k1nb8brvs36gd937nz2i2cvnpghz98if";doc="1wd46l86h8vlxpasvhnvjimsfrhrbs56i767v2h7bdl8yp751ycl";source="13qz2jc0f084acxdsf99fj22kbsjkr6i3y7pqzh1g2jd4d8bbw8m";};
 sidecap-65618={run="0g6j4mh0nxvdvqyaz0b0756y1xx55zxwrn761xz39mmw3sca3yzz";doc="0yynp2qmq6df47fzns8jq5hkbhkj8p3il3prq4l7pg1129278my0";source="0h0s7hpmx4ha318zkz6caxq2ckvwxxv2fbkjy7a3pfs7q2x9fal4";};
 sidenotes-54524={run="1ip6ybhfihbbzflafcqfhspr1d1x44285msahf7f9ilmhd4536x5";doc="0f4nqbw2y36ymgcj7ywy9gf94pcg09aqk4kjpankksgwmvyjbsxg";source="15kz5d5038vi03siq6lbbf97nng1024hx8zzgrasm304sf2c0ggl";};
-sidenotesplus-63867={run="1x5mpszf3c76qzw62y6x23pshlbj2y1bd014h34sdn3xma4m796a";doc="18dkzrl5m5aj8h68kx37m8lsz7jcyfk00c9bqmhdnz62zv34kvrq";source="0kzir93q2528i7j9331axsvrsrpwwr6g67nkmw7x3ynm0b812pyq";};
+sidenotesplus-69176={run="147si778pbc8vj4jmclsp1qkjn68qli97b2jz8c5ij3znjaxk42v";doc="0vb5r7bxj9xn1nkzmqnxh32ar87fy385rf2zpggahld9v6l7phbg";source="056mv9jqp9lgysgk89hh9wwbnwi4q477zc3cw6c7hkm5wn0xcx7w";};
 sides-15878={run="11anl2mfkzkdv5qb0rfw7940z7hy5i43d8hh9nsvzgwfsw0x1qkr";doc="0gsqb1hzhy1qk29lhq57arzivkwxw1achz08ms1q8q9vxwcsf0sz";};
 signchart-39707={run="1qg1r76v1llj68iqk5imp7f63774ky68sv64xa6j4w52jkkswn1v";doc="0scpaw7l26fcqylcqspd0g5va331yf88a8wc69diw78haywwgp4f";source="1lx77qldn3d23dvs11giircs2pafm54094h6ipxlc4g39g7xc0zl";};
 silence-27028={run="1zixww8d87jymdvxjzjhvhjjr5f8fxhbjwqyzivki2rhw6dpsp2v";doc="01qb2z62da0ji751i3wbhq10rfin23q20r7wr0fzvqv163niy93v";source="1m5xiy5j8l0xy9731mf0jvk4f6bh7d22vbsgpjpvy5r0vxafgxwv";};
-sillypage-66350={run="11r22wb3701sbkdwcz1bhmiaw5xv0bajzhfky1yld05w5phzh21x";doc="1cdahbjw4p317iyr0drpvqw317cjlmzkpjw9s61hv95297156cl6";source="0ya6g5jgpip7b18av75ifia998z5pz3r1sixa44f5f1vjmbxvy4w";};
+sillypage-66349={run="11r22wb3701sbkdwcz1bhmiaw5xv0bajzhfky1yld05w5phzh21x";doc="1cdahbjw4p317iyr0drpvqw317cjlmzkpjw9s61hv95297156cl6";source="0ya6g5jgpip7b18av75ifia998z5pz3r1sixa44f5f1vjmbxvy4w";};
+sim-os-menus-68843={run="02gnf1js2x3l3y01hj10yy1b1ymkmpf2x8pl9qrhsx63v55chm3k";doc="16bgnhiqxmk5z1ifgci7pp0lm9sg3xh18irvrgbwmdvd088cxm4a";};
 simple-resume-cv-43057={run="09xsryzpnq33wja6fkrxy4ajrci6xcn0bx0mbsw37h0q0h65rp9z";doc="0gbf0rg3v1ivw631yl133iamh7kadclr089rby72al50xwnbi559";};
 simple-thesis-dissertation-43058={run="16byfnhfd1j14911xs1448yampvvplxy8l54by4qwq01wp7pjjmf";doc="1wrxjkgbvps1wyicwlhkx59xwb3vcy1n0wf7r7dllw11r7hdg6f4";};
-simplebnf-65485={run="0rn155jbx869rcfr1s66wqssj87krxhk9i3iqr60sqaihjsck0lq";doc="0jyiym24m8l4yjbskl0ic1kcz29lajndxd4qxcqyg7ynw9cdizyp";};
+simplebnf-68959={run="1bcg213dww4ngpafy873ralbhp901c6xrsnvryzpgk5jrqw2d2bj";doc="1450ri57ci113csq9z54zj6284s8bn8rsl5y2xidl76rz9hdidgv";};
 simplecd-29260={run="0d6gw59xd1mqc991yy6k5jva88j66pd69k5sl5jrysl4rw1mxxng";doc="11fzk8p911v1myphghzpmkj7k62vk4sdicirys1jh8rd2cpnnwcl";source="16g6fcsr0nw7isqimjq29g0zyf72z11qx9xz36zq8z4khxsl09ln";};
 simplecv-35537={run="0b7p6d8y7xa8xs9i2qyljk2s992gprsr3a5pjalkkssa5kiz3371";doc="02x3nwmxdk9spx5crlaw1xdqlwah04m88zrrw4wdg0qjnhvv4mvr";source="05ikxmvflqz5m3qallwgyncda49dzq4fibllgc1j77pdh99cy3vq";};
-simpleicons-66337={run="1fl8z2sp0acndjg7zrml8g4iqnzr43ldblgj1hi3lxjw8314zc06";doc="1lb1d5s3dhyabv4m9ng13g150f952q5n1rlsbbr3rg2kb6my99lw";};
+simpleicons-69396={run="0qb0mr7k1fypanyw0lhldmqnxynj7iymmyn40yy5j8nzfxz44c8p";doc="0h2qfijb12yslabq7yny5cmhlhjyglg7w1dwbn3gph2c5z7mlqq7";};
 simpleinvoice-45673={run="1mdc6aij1id1jxlbkwfdvdv87yh55v5qyazfciffpbf91qm87z0s";doc="0lvk87l3xafl4s303rhmksfajnw77qd90yvzhdk126dp1prh7i6p";};
-simplekv-64578={run="19ndzh5cg0aj5diybkz04ix1gzxmbyczcn3wi104sg02ck01jl9p";doc="0k4hbv1p5xjvwl106nh3wlh6nhiivnprdjgkj0s64y65458vsj24";};
+simplekv-68439={run="0cw7n0skxgxgar8ks5nlcn70pyi60zi7n2crdbamfw3kgzdqhqsl";doc="1hqyfflwjdxmq289ngc25gbjm2mcvwxzm9sbfp06xszk2vhbjd4i";};
 simplenodes-62888={run="0rdmcmj583i81349m2hwdf0wl4glsfkg5vkmhlvzndh0n55ivj3a";doc="0sg5xs96agly3r917fvbs8mxii7b3l9hsqf2cpfpx5gwdlmwf0d3";};
 simpleoptics-62977={run="051635sr8yp7n44hw9wza6hw0b4av87yp42wkxwq0rshxldqgsq6";doc="1lwk3qq1rgkgi7qd8qxdjjfrnk44c1gj4vl01m1jl181dxjs7lp2";};
 simpler-wick-39074={run="0lm22wdxiwasv4igfsyjfi338qc7m985da7a9a6q8cm63hks2alm";doc="18hmx8b6zpsc98mmjvimdayqpkffwjjch4sjajbz4csjpza7nl98";};
 simples-matrices-63802={run="09kmqq2si98yg3ddnlkddn5gjlvmwd8w78r9d2xvd7g28wm1hjbj";doc="0zbg9ppqj6af49braf4hd9b0fklxjmsr7yjgbla6ckbkwihkqssc";source="059wa3qyaxx7ha1xw98rwa9w7v5nyhq5rfmajhba1crnp155x73p";};
 simplewick-15878={run="07rzphj6ffla4qz9pa31xnn25d420lvsnmgj7l78ryxai5amdfvw";doc="1ch7yqh3bv2y6282cgvqzm4pf5hgpfvlmpg66zcp44wnkq1sw67d";source="070f0zrnrf2sh0dx5dlbz6072b76f8iw03pvywhyryfgghfdfv7d";};
 simplified-latex-20620={doc="1cgf1p7p2ikda1nb0c2vhhx7ai6rd973pz6a00pr9yanxsvghp6d";};
-simplivre-65475={run="08irr0irj0hnrmgv7xfab3dbbl87s7anwawnnbraj5l3d6p9qqhk";doc="0ar4pww5dn3q39yydm0bv7jwlcf4dp0h23rx1h0kk83sivgsj19r";};
+simplivre-68376={run="09x9c7z98sdv7zw9kqysw4wcfg3x76rn2y4fjwqwqa63fwy9ky9x";doc="0m5bxr5gflag1kv1c34jk78lsv8d9hsyqw6i5yhfm3r7hb1z0ki4";};
 simurgh-31719={run="1nhdmdi6qbvx1nd92hxl8vkly82a9nxi7ghj0zpm31c15z5pb7rq";doc="1cw434sxnbgq5dbaidn3zn8i9az4q35blcx9lr6yf3m0yy2rl8by";};
 sistyle-59682={run="146493bgh2ghbscq69bxsngjfkl3k8g68cy5j28v07lxi3ywr6n0";doc="05hs1wd3wj8szj16wnmjfiy0g0hxgy2cc9ai7q6ys77kgjb0dpfp";source="0sb6vbhnqlixrfy9484d8im3vmgk58y7nqad9hm2gkd4p560cxj9";};
 sitem-22136={run="19z6zmwriwrlcpgdgn5yl2bzbz0fkn3p8g5hrwd368bq7wyfc8mi";doc="1wwnqhl3ffqnp5qxddicqwsr7515g6j53rx1rgi9b5z3cv42f5qj";source="0y249krv2h241wy8xbi5xjrxypa56zipi8fbmqbziw9cjjnz993v";};
 siunits-59702={run="06x797504p5lzb3xlkri1sc9whyjjz6a95gk8kvpympglm8fmpxz";doc="06saapj9rh5gbrj0npb9rm60xrww8rl1y5brvx97gj4qvc3i2pic";source="1clhfsmydg2xjajak0ssa9v5sd3id957si5zvyq3njgl9cpjwi9r";};
-siunitx-66370={run="1szqn5gp71hmp5k1nz5w54bb1dc56yzksvsisscc0m4035q41iqx";doc="0rxybaxx8k20yhlh3qsgvx0m3m1bx4m0bf5v9gfyjmjy97d6br0a";source="1bhcximmicl68k3rhqs103l5pzkivkxm7c2gybs341hjc8pxssfr";};
+siunitx-68844={run="040pclva6m2300m4zrqqdd1jm608yw3rpldf63scmhkxgb981iil";doc="00j5b599s2wdizmhk8rr9k1894nffa6ynaz1wg6ccm8ndzsv6kp5";source="18a9xwb1zaay0mv8b3br6bg2dm016z1s9zbavalz6psr8wv59lj0";};
 skak-61719={run="1lh97kc1hmz3ybb67zr7vr74z1zngwl2cppkhmp9cagm48j24am1";doc="0abiardppn7hx6l5h4zh92b9m2yf3w16y15rcvsspv1cb9sf4lfw";};
 skaknew-20031={run="14j42hifh60p6glfp24c2f5k9k34vcm0l3alqfqhvv68l31i05rx";doc="0i144akq7sgs6kwayl8c2yir0kc7czjs49vj6l5lwdcwbyryhh21";};
 skb-22781={run="0k441znw2bn13aiyc6b5hskl76hbhcpilc1xg4jw837dbj2v6qiv";doc="0qi7l9ky0y65cmcp32j93lhwlvflvz8didq9c77faq7ffgzz51s8";source="1rnraidwhkxlhk09ppa5k0ndqhrra4asbpjwv2j5dgf70wfm5vmh";};
@@ -3456,23 +3547,23 @@ snapshot-56735={run="0598yminjxp01imxrbzydqjli0i2ws1f9hw6f3qhs7xykfacbaml";doc="
 snaptodo-61155={run="0wxnac52wv3aknjs8vsw17ghxn77xiqffn6badyp0scyr7gvmkbc";doc="0036gs7ybs2ilhp4lhzc489r5ai6ffx0ha7fn674qzk3qn5j7zkl";};
 snotez-61992={run="1nq3ggbdpkpydaqzpfawvvny8azgbmnbwpl00wsl4rhi7jbqsfwc";doc="1v82nn2y2kk8h34j8gidrzlx8nwah5wmdk3qigw8aa1q7vrkj5h6";};
 songbook-18136={run="1qknajn3s4vpw68hwn0mjf9zllhba035gjgiwj807nifhgm2bvpv";doc="08p61v1jgw0s2bdfwgmb1zw5pyldfsy61d09n6qq93wclgaim7lk";source="1xzx3jxp4791imxw6h7gs1ach94k1w33f4p8pd4rvlcnwglnv9s4";};
-songproj-64966={run="0p7jah73xsvh4yg08jmsvs8cq2r1bn6aq9s4rz6v4q6p65b69lx8";doc="08ksccgcwpqkl04dif0yy019bl5gra7pmybyhpbzy3zmji37v1ip";source="0910za7bn9ph1k0g1n43w8fjn0f50j65pn9is5wz6qwxzxjmcw94";};
+songproj-66704={run="04jnj92nva8agg4k8qgfqcd7rvwhvhwx3836464z66fdv6v4q92x";doc="1qyw11czqdhkpyf190asx8yi4wmcyxc71n052f5481p3xbblz1bd";source="16qcb0k59kkxmqavywdmxy373ck923xn8pjfzp6qssgjvssnbnar";};
 songs-51494={run="1q2fddi3z3d6f03y110ah1lc5j64cgg16w4hcxdd1q6sc6ccc61r";doc="06y36cnx42yms6b3mnpkvbwrl1rrpjy1jlafycy33ijx0sbpizql";source="0airs4wvpv2wmm2398sfy5sh40q0r2skha33999fkk2s9jc99jbb";};
 sort-by-letters-27128={run="0gjmbx6bk2c3nygcbvwn3wfsdj1lscpnqzfl6w8li26hws1ravii";doc="1p0dfvh0l4z4bd86wcvph1fcjip2rvsm22j890y607lfbqhc72kv";};
 soton-16215={run="03vldli7z2bsvznmqw5y6gi81ln5v54jbiqm53z464v76kp9w29f";doc="1i7b5i8vv88cjxvcm1adlxikqwvbzpzkiiksdn36in8msj23vjkm";};
-soul-65906={run="0x1g88ayix00axma92sl1lyqhj955pvkwp3iq1372kx4pacln50c";doc="1z1936dq34x48rpfh4fymdsp5nm555bcvq99j7msxshphkv5p3ip";source="1c5g5bryj31vjfk88aszcf938zmm7n84aa6s0ll7k555fm5s3ks5";};
+soul-67365={run="0hkxhwqmss7lsh600ggs8q7qx0dlgw63q482m8piwx0jmh4p29xy";doc="146ji413205b7igjscv9wfybs60wyn47d9q6gkzn8l23wamrzxwm";source="0lplpmk05y85r2rjzjh24p6slmq8319kn7ixxb3zjbzjp1lc44j7";};
 soulpos-60772={run="033c0arpqhrypwy5grpc8c6dnlc7k86iq5wglm6r02bdk4mcw7hk";doc="1g99lgnl1m7nffwdfhmmb4zgjwpaiq3pggbgmi19p24z7qc1sjlz";};
 soup-50815={run="00glliinyi7m5m6gkr0szzsp5drgnqww4k50yfb6p3qv1mlkqgvi";doc="0470i396sk8a6lnx189zcazns280qgyw3yvwiyxc1gs2wd812qr1";source="09db050wsnmpqxmba7w23h3g92xyzg0sqv57yhns5nwxb2cmbr2g";};
 sourcecodepro-54512={run="0vzs79a6bhvxap9xw9nm4csqm8x6m83nmsxffqckihkrbcbwnkz5";doc="04g53xmi3afzv76dn4pg9vjsd903rl0hbzqw32gr7hhgh60xwb8d";};
 sourcesanspro-54892={run="0j0qgb04yvwf265hwiiv581fy39cpr6i9f21k38xdgdi0dl7ghzl";doc="1lg7jxxcymnvbrhgdf6ddj0nahbr6g5vnz7ahav8v8zfyfw87z6z";};
 sourceserifpro-54512={run="1zwvz4yqvs5pcqwsig4sjkp4chsc089j0dl9mn8ah047nhr2d7z1";doc="11q4ppkw8m56bpn8s08w0zkiilfz6s5jv0rkqjnqbzn47nm3dqij";};
-spacekern-63552={run="043jpbd7clfhzcc14hmai4v6y4546pw9piaaf2zbk1qkw9jgmmyw";doc="0n1lf57k4qjl0ljsd4gccbmqyfkl4663sjb78d5yh1cszd6p1fdj";};
-spacingtricks-66398={run="0a98ca45sl8r4k6x69084p2nsz2yj06x4zvki3fmzhpsr97xypnz";doc="06lmv3qcfngdrm32h703qfq2s91spakxbj0w0xc54xf32gf501ab";source="0p0qh3wapfigl8hjpam2540svqs680vkbadh476zmyvxacvmbjqx";};
+spacekern-67604={run="0jf5rv2kqzfr2ji8w4x3cgli028rhnndz5xm7l54q5m5rqczb1ag";doc="0z9dyms40vh95wslx7xack5qys02hdwxr451d19k3jvx4jyxsl7f";};
+spacingtricks-69048={run="0ahyb2skb6bl3m37ppzb569y539bi0njkq26wkvf0qw1g51irvz6";doc="122xkp4s2wqqza5nxlibxyfsxs21n20xn3y5i9lym0hakpj7112m";source="1mbb835yyrzpk1qlqci0zbvwd64amxqav0z3vnwaxxi14hqr9laf";};
 spalign-42225={run="0wy2kliv3mrcqvandk3qbbqjbri6xq69d5jsi80l7qdiij86z3g2";doc="0jp34h19q4588rli6k0v5kg47j6i1gjpjgk772fkb7l0f5wln7k3";source="02qzd21qzb8s2jsip2fr1jgf11xd7xmiyi7fv0s9ylyfr259c5b1";};
 spark-otf-62481={run="1z9k0dnahkq2nfqs3plpyb3fdj48x8vcav0ahykd554fygv5h4x3";doc="07pq90xx911rdjdyr0sxg4zqfg1yb5kn43xc5l6hn0y81m9j151d";};
 sparklines-42821={run="1mb6c3mial9ashhvmjhynczjpb462j18qyy2an4ckgwgc46pwhp3";doc="03j6xdkvsv5p71bifmggf69w3s1n7758yii1caz9p9bcqmqbnrk9";};
 spath3-64818={run="1w91n8mq9bzf7fwfwwhpqn8j5w7plc4366a5pw56x2212n75pzh5";doc="1gy8n6rhxbqf64gh4xbjvy0dz484vm53ld3i6graly3qzdrwkhdq";source="1gy5p59n76lh0k961cysc3qpnnhppbcd7dmspjijca4fx2v3ckkl";};
-spbmark-64706={run="1ixxwza7s6y4vzjlpmw1vjl67mg0ga23r3yd7y52zp0fzmw4krpb";doc="191cw250wxfy8g9lfbs7xlglwb95ip409hgph1v5crv9ca5csdv6";};
+spbmark-69350={run="1h76dvirbiqbn2z1cki5ya8psialnp2lhddxsyqxa6c2k4n128zk";doc="1k8bip2v32gwqyvsa6jrbgfkihv0g5sh27c34fgpz0g65cpzpxjz";};
 spectral-64528={run="1qjvxyjxm81j3cyajki6jv59k6y2m8nv9kzhj45d7i56za9klkf2";doc="1x6sixvjk4sk5r6x3pgppynsgp139jm3cc7bv83bk55757jjd8j5";};
 spectralsequences-65667={run="06v0sb1xa28biv5ak6nprdcjzjdm0106rmlgm4if0jgmax0hiqpb";doc="10limf15cp1bv933m45s3vdvxwzbpd5hard4lqff2x8ay1h0n1wd";};
 spelling-30715={run="08zkbw4fdfmfz1pxcr96xjhrs8lfbf6sydp8crp8110fikksjv9i";doc="1wm6r4rhkmxmc66zx9nvvdmjaarx789c33vzm26mbd6ylv5qs1is";};
@@ -3485,14 +3576,14 @@ splitbib-15878={run="0z2vnb51ksqp3i11903mvgaknvxl1azwqsch5aaq14y7fp9kcrah";doc="
 splitindex-39766={run="03x58nb9bqd1fn3k9fqq5rdafsna9rbxjhp44dwzig8kp81f0g0i";doc="1v2wwls8fgb1rhk91hrjsabxj6plx2bq7h07fyqxvl3982am9wm5";source="06ksmac3dxacfq7j4ad7vy9kls2rnay1hww3kgbp2sgadqvwmz0z";};
 spot-22408={run="18ich1w6d68xa2p65lh22yfwdkvgbl9zz9qmd4yx84ljzby49zhg";doc="1flizmkafy77g30ffsispr2m4yaqyfw5hvynf7ppph1q07jqdy0v";source="01sx1j1sxr1bgi5h48ij02nwawg2wgg1c7mx22q9r4sbn9mprlbr";};
 spotcolor-15878={run="19xicma97v309pbwgdyizrjwwnlas95wq0d2qlyw7m9wrq295lpb";doc="1qsdgagx45z4gha0y7z37687jxrc121pr592b1xcy8bhf86nimhm";};
-spreadtab-50147={run="0zgiys6ry7szi6rvrj6kbnlysr8nss66j3xspqwc9j2jdp5c9lp7";doc="13c2rgms44wmbqvfi1yi7ini69kjv55bg3czwgx2rn99shafzh4d";};
+spreadtab-68256={run="1jkc9h4a3cn5k7p87hdib2jk8kkmcn98cx7b8p7p9fm3pjac807r";doc="1xgy9b81am6pl835sf04hf0srpdpd7bwvxdl5cd4pr784xgfvdb8";};
 spverbatim-15878={run="0s7042ln9l7jvb0vyrmg4h4fdgzy6vaabr62n7zlkr8pf7zd8nvh";doc="1rb6gyq7j5m14d8707gkqv1n5ifk1y497mwflhigqgyi9lgcvgxc";source="0f3spbpb6icwm84v4lq0skkx53nw3i0b90ik0svd9dhg31y24c43";};
 sr-vorl-59333={run="0a87b640qdc7bysxlgr0y63znls4ryjgibi3ablnw9q3rhzbbr7c";doc="05zpxq3qjhziidiq8i30hj295yh2qa3g79lx9ywlldbkyhq928cy";source="1ddwga4af9k70c05v2a8frn3q779d2pw43h5bpfks5w889ss6rr2";};
 srbook-mem-45818={run="0znvycl1land17f2c9cq09hhhg4b677rixzjc0hsq34c91s3xdq5";doc="1nf53sq2ic8y70z0n28kz27lji35slwkxrn8rz0dsaas73ga5k2y";};
 srbtiks-63308={run="0bghfl9fix95nxb8zvsylb8040msfwk0vazqkwvc75v08idigijx";doc="1z9fyz7kjqis1rblrdb2hmj2507bifg07yrigqkn2cgm4wsg0cfg";};
 srcltx-15878={run="054b8g0vvhbzazxs8913dzir7qb6x5q5pfsiwdp1z1awkpafwkmv";doc="0fidv12pgqck21fffgrrz2a0pfsb01fsyld8qhf5r00915aai6h3";source="1sj23lc6k8kwd11q3sq6wbslwl4fsc3wzp45w4by3mw5k1q5xqcf";};
 srcredact-38710={run="1rqmgpxcvvcmzxdj6k15v8z4i4iq4wv95whddpi93l3n0zv2ihmq";doc="082ff60lfnapb570ps3g6vjy2xn0gjjih6y4nm3ry9i0k1isbk0w";};
-srdp-mathematik-65293={run="0vk7l57qx3hbhslr7jaqbh81x4kfq2v9qr8a0jj692n41rmfjlqg";doc="1zyfray1i0w01pxmlycg3450yfd4lm2jq027b2vanwcb4j8wyvgd";};
+srdp-mathematik-69288={run="09pxklmnmdwiaf0dgi94aq33v5v3ml7ap0xs9s422wswhxx8378d";doc="1143sfcqclgsqkcd0ypcyp37hna4apbg16kvi2146xkz3gh3agqy";};
 sseq-31585={run="01vqjmi5vpd2s00sqqj6nlwgqvz9c43igg09w282khlca471253l";doc="08xq5fjn951hdpbrvzx6p09a173radfh8a4wzhmifd5rca9l7asy";source="0a1rh7s1fjxn3bblqz4lzhd9812d9p71wwww5hg9nnpn3gjvdr6n";};
 sslides-32293={run="12vg8fdv0di8vgnw8wj1y6rad6izmczfqzy5pr6gpflzmn14fbq4";doc="1dssqc7f6260hl527hhqq8zbiyszb13z3bny3rwjblscl9ia29yf";};
 stack-15878={run="1wadfhja3yji011aawrp3jgiqdxil7lzvkd1pzy9c9y63lzknfg5";source="1qv2bvjs01lk9b86rzb7n0lk2a4gr870qsnahyrd9dqdnvvz4n9n";};
@@ -3501,10 +3592,11 @@ stage-62929={run="1wdvq1izp0y8b7mzbqql3fc9q8j7jkrmm4ynnk3h2zlg24lgi3gv";doc="1ja
 standalone-64677={run="13bp2iyfnpyflps370mzrxk1vkrybamam1f47ws4cafpz99nvvyr";doc="0waw4vqxh6nclh6kp17nhb4i1hpckwraf5clksxvzgiv25cxkada";source="0a4k7lx74w035fvj5q6mnzpx18jzlghz3lavhsl9ssqjb3zqmar2";};
 stanli-54512={run="05mq6zhs6x5qjqk58gwws9lw3p876bd1f8a5c2jvb2azjl7d9r4f";doc="091knxhx7jsjiv4ip0z2jbazvv3xmbvandbraxbipp4zqqakb8bj";};
 starfont-19982={run="1bf89j0qqyzih5w9ban03k85v8ih0d16sil1sf7smzmqk3nhmrz8";doc="0rjx4wj021ri26zxdlhkh71q3d0ygf3hvcqghq9fwkbi0gnig1r1";};
+starray-69002={run="1dh1n0z8c1g9060mjr8qi7qcq4s6v86c61nfis61xxj9606q5xlc";doc="11d8y9yqvm7l5nbwxpakj3ybw5v8p7vm0ccsnvib9cyivy8vqvbb";};
 startex-35718={run="1d6c54hm9jdi882srj87drkcxm7lldb4g60lbic9wwzn9kpa0ynk";doc="0ikmb30ndmj0yhzxy9mba3kqxdc5f8i66sji51ihjcrlplj3jk73";source="0304dzv4nzlcqi5k1gbfnx823xaxq84ja4gwh7qg941q152y7w9n";};
 statex-20306={run="11qpdrcszbsrasbasmk6h9wg5r2a11pm116i16h7mvw73vjaq76f";doc="0dkb7c7wavn3qgndl0g8jpkx1qr00c3iwp6d0r72znggl4cznhsd";};
 statex2-23961={run="1949zszdv000dw1dx1jjznbd79q73fjiqnkq2axdbxffh47ls1dp";doc="0fkzbs76yfyygscazn4dgphs8g1byzg9n3fbdg6pizzncirbgh6c";};
-statistics-52212={run="11szmc6f380si38il9vw78n30yyfmmvgxpp8f8p8kzb373d3hs9f";doc="0z8mx2gar2fn97n3x01dw23l7r4ckqwgfksgmfdj7vhgs51wsv16";source="1dkz9vdcnadd1xd4k9i37a3mpn1bwm4zf3c6bg6rvzxaarrrci4m";};
+statistics-67201={run="11szmc6f380si38il9vw78n30yyfmmvgxpp8f8p8kzb373d3hs9f";doc="0z8mx2gar2fn97n3x01dw23l7r4ckqwgfksgmfdj7vhgs51wsv16";source="1dkz9vdcnadd1xd4k9i37a3mpn1bwm4zf3c6bg6rvzxaarrrci4m";};
 statistik-20334={run="1c0469cxfvyg5jl9q1pyzras6fk3f6zbgigaby0iav34imhg7zy6";doc="0fih9k7mpzg25h56x6zzdbdnhybd25b7hlv0pdbnlfb73s7h4mcv";source="0i68y5ynymx339zgxc9r8dgcflm5468gd6cwn9ngpnjvqqbas3kf";};
 statmath-46925={run="0imcx9nx9h5fi53nwg82n2d9s21vlngdab7znyg1z5pdll0df043";doc="10mxwgvjjnk2ci05ikml35q64c82c7dv7rjwajhk03gq8ljq939j";source="1himjc8cn3j5jr073qpp4mfyi2cpr0czf7iykr0w6b7722kkqdh1";};
 staves-15878={run="0pb7cghd2p1f7y5x19x3zyvaz63k3nmrwd04g0yqrl3774fvnh1r";doc="11i1rcc30lnm8fqmnpmk1hgz2fmm54hgf23ich279aqfsk2pm8iq";source="1y87sw1qrmvgvayzwz2i6qjzvx952h68123fhhv67ga0kpxf9fwi";};
@@ -3512,10 +3604,11 @@ stdclsdv-15878={run="1130sj024qfsszjx4adr3bmmr6594d21bcv3ixmw75y85djha1iz";doc="
 stdpage-15878={run="13q3jc6snrscq7bl22myd8rb04q9q5b0a3xvr609j1lxczbs1xnc";doc="1kr7851lc6lp4aq78xc61nw495qnhnrbsz0w2yyldwfh07h4byzb";source="0ygk73pk79wgn4qpg0niv3d0a4l8bdhrdvv1a9s8g6ayngfr0nsd";};
 stealcaps-64967={run="1n6922kmdf5ahc8i3jyps6w5r5k1yhnp2x1p2bd259mjd5ivplyx";doc="0djb508nm3l88p33736kwv7z309nalblb1zfijib7ksqq03515di";source="12krgi4wm37q2jcag29mflql1fpry8zhzxn3bfbmwh6cna8i6042";};
 steinmetz-15878={run="0g9ll1hsf82wll1ng5lc2v6il3l6pdy3dppz7k7piqqmifzc8ifz";doc="0gyyqmllgp6dg2g4nh5q5ycnixlyzc6xfmi3szypmr1rai1dvx2s";source="07fj431nraf7f9qcmm5bvk03cblmj15xcsbnhgish4rxqbf7clsj";};
-stellenbosch-36696={run="07j555jrcg91nk6rgr6c9dq8y9b3i0677j339hlcb6mk7949nz3m";doc="0xrpmbzaa4y3v86zzdws9al13v723k5yjbxgnd9l985fgq5w21bz";source="16mmz7pq4y9blxskrxjq8w15zq9vrbcr6nj8ynfy13b7wxvqqrcn";};
+stellenbosch-68039={run="07j555jrcg91nk6rgr6c9dq8y9b3i0677j339hlcb6mk7949nz3m";doc="0xrpmbzaa4y3v86zzdws9al13v723k5yjbxgnd9l985fgq5w21bz";source="16mmz7pq4y9blxskrxjq8w15zq9vrbcr6nj8ynfy13b7wxvqqrcn";};
+stellenbosch-2-68183={run="1mp3sskmlxmr5jc00rh5i1vyikipmgvc266djbx8f47adkgqxfl0";doc="1v7drgjgiyjp4q714lanybp34pkxjn73w4s20lch49mpq0qfnfqn";source="1ha1ps4cdf6kr6dix9wnhf2672ic31n04vhzqjal12lcrf00pzi3";};
 step-57307={run="1r2mf2qlcksllpaakrycmcrpxfq9c4g7n18ip13ykp92fmrbcz4h";doc="0f0hph5cjwhwdn2yyfzvn1jbkh8xm71jw10zagbncapfqfgx5h62";};
 stepgreek-57074={run="04xldk3dzcr1vg1xld4hhwx5xzi2pr0v7gn526xr8ca3m3x5mwnd";doc="179zz295nxpp21p6xhrn1r9ka68i3l9l8bphrb2833a2x6qgmil3";};
-stex-64383={run="09zdqjajh0iyg82m4sgwsx76qvnyy6g8nh6cz8rkcaxpaay5v1js";doc="0ix1y1n10kfy9hbbx3liy1rmkmiq9whqw1mi85ncjbz1lhxxcpdm";source="08sl4hn2vcs1ngi7zdbvkzpf16vl3n46ry8fdq71i0f9sy3m07sj";};
+stex-68569={run="0qpc9nqi6gkkwc8rg00rkvli3kgdfvxn2h23paxmsf8jsf74c4lv";doc="1b855d0n3m2glxf22j7ifn8sf7yi9z4s55jnb1dk0pfy3i8a5zf7";source="0xm55wcxd47z57pmmls2nx6f310nbjzmn05crynfj4rw4310vq00";};
 stickstoo-60793={run="1vil4pran5vkgzrks8wp2nnwddily3pkfw9vap1l72c5rcxsvii8";doc="02h21jbb19cl24ds2r1gz3js8fgxhi4dq4acw6fvq5kv8izqr9mz";};
 stix-54512={run="1jqrvkx444hvfh7246g22k02jm00m2cnc6ffj36k8qdi1s5m9dkj";doc="0vmiariam5zd37zq2ni9560kjgia89p52cm1phxqp6gp7avfyl7q";source="0jjxifyrkdwgbv6xvgpk9ji6qwn4wr91lkdprcdjpmw9b2mwflj2";};
 stix2-otf-58735={run="03ilzmkskp2fj3jwyvlwz8b2ryvb1rfj08ciqhkhi9ddygzjk8xx";doc="18cqnpabka16kfq09rspzgwmyh0fva77i8676myf4wg805953zgh";};
@@ -3525,12 +3618,13 @@ storebox-64967={run="0vy7iavq6qqxpmwhm9cz4gxp67nriq230kcf1mr1gq2w0ncy7kjc";doc="
 storecmd-24431={run="00xk8l8l99qpsmkdxcpccf8g7av2asa26qrh3bi0kkmapm7agk8x";doc="1n5vw689y9y2kakhkyqv47d5cin7f3xqfz8bc3yncdrmgh4kq82j";};
 strands-59906={run="0i2k3b3kb570k5h7yag83gchk9ss971v8w1xqr2kb448f1yqkjr3";doc="1clpm1i4a0477zbrixscwpg6qyli0y5vp61lblgn4iqgw0sndhlz";source="0ckf9ipirn8m795df5za2qd5w96cxzxmmv1kcn0gl4aj3ypia6b9";};
 stricttex-56320={run="0igsjl8gsdld0way8nry9r50ibvm0aj8g46ki547c1jhdgmw67fn";doc="11pyyvsxi2d4dfzv4pmapa2ffyp5fky32823fklcffd2i6jnvsbh";};
+string-diagrams-67363={run="1r1xww9h5vvvhar2nvkmjlkv1s57qv53cz582mh6vwg6v6w41nj8";doc="1nccy5d95ada03lh1sfk7rv2r3qba8rd2g61wavw1p9cq40r97lx";source="02mzpys2xw7hd7mfn4z5z7cdlcafkwhiibxnkwya9h578g20ji1a";};
 stringenc-52982={run="01xnfg0mcp94dh33rfzphk50kjb68bw76kf7jnbsnjwlqf2cr5pq";doc="00hbmjwhas4fpcx1yg016ggqv324hdc2aklr2nx5m5x0i68xq6qa";source="1ir6041286fiz8c5zpsbl4cq62gzdrdpj50aqv5p6b1lqd8bsfp6";};
 stringstrings-57097={run="178qqf3ii5kaw5rpjazvf78mjb0aw4vnqzxpsv9ahbqfxpa16894";doc="0x6hcdp3hlfnd0vn3inq92nja4hirvhg9m37zmsh9ilnnz7dk8lp";source="1aryr9b5d4jrj6mc9cmbpc11l2mqxlxsc16c5h68ql0i6z0bpsz1";};
-structmech-58985={run="0hz5c2wvsm63cblj507bph7c7031lzca8g6628pw8lwinrx8npx4";doc="052m701f5pv6lh4jsxn54m8x4086vh4670gr7v1k2rwqx1dzbv8l";};
+structmech-66724={run="1l28ljkgzxirg31ai7gb3m71kcdzn3gif8w9ssiawaifrz15wi50";doc="1rnmrjpmzzidykm3al7sqb2q7m435lpjppv7xyl9a8zlkjgvwnlc";};
 struktex-47931={run="0qkfh53rhy29zapn4zr6n14nmximfyv8rbgxm16qq3l6mid5jnyc";doc="1nbbqh3g42qvrk478q2v6snl1lbmfjnb07jhx6z53yk87pna8gmb";source="0j3bprncnkp7iar2dh46bqr3v9zdvkk9c2w9kgj523bcyzw48zyx";};
 sttools-60736={run="1sxdf55j0g6gm2h486i023axk2m5ik37ndayjs5zxxkj6i3sh4vw";doc="1l1js9bpslrqih0c5cjdw3d5nkcx96d4idfxw861yx4lhxwzdq08";source="1c74wjq7r3jqq10mf1d87v6fi14b37i90qavwcx6s5bhhrpl871z";};
-stubs-19440={run="1p454rfdp2v4zq3vx1716x2w1cr1a6dkcwnj2hx7w2jn8118vqkb";doc="03la45gxcy1l1qik7kgcb518n3yvzwgdi5x3ffzfpj4yp2rq994a";};
+stubs-69128={run="1p454rfdp2v4zq3vx1716x2w1cr1a6dkcwnj2hx7w2jn8118vqkb";doc="03la45gxcy1l1qik7kgcb518n3yvzwgdi5x3ffzfpj4yp2rq994a";};
 studenthandouts-43516={run="1007rr5m0lbfib30bkb21nvpq1h7didqijg6jsbprmkgsz1xfdkm";doc="0sqfqxypkrcyp8fc60xsb1v9nbw7h1xrdai626dlpknhnm00kzmj";};
 sty2dtx-64967={run="1nrn2xv4r39qa2glfw4kalzdh5w2zlx4vaw0hplnrnxj8lwmpb9m";doc="16jpjskvsk51sz0j503z4dljwzd1ymi2b06z9lag8ab5iiyhm80j";};
 styledcmd-65262={run="1l1rg9456g7jk95kx5c7l1rz738b83vqf02kxq5n994rzxsmz0kx";doc="1fs253bda40z0cf23zz2330js8f0cg9f9rv5mrp09pf0f13shvxi";source="064czvwrkssjgw33v6lv70znbjb3q0shp2piwgia2p2lazimxrrg";};
@@ -3545,15 +3639,14 @@ subfigure-15878={run="02b2y8isk2irxdm7bcmx22v5lbkbhc15jqpx0dhs61dnzb5x7ag6";doc=
 subfiles-56977={run="10nslhm56kp5bmzr2nlbm40rlp3i02zj4z6vxj8w6cj1vv7jrd9j";doc="08r52aci5ab4cv70kbrqq1ak4ny627ks43nhqk6kn649pcahjqlw";source="1hmli1qvgpnn2bmllf1w53wjh63zk92dv2wvvi6fzjpq0q6lqhwg";};
 subfloat-29349={run="1ibpaj98ibx67x4kff1p0cnzpxmhs4yyqs2y4vj6as5jx43qnwj9";doc="18ps2xbqdf7pgyhj848zw1sbk36drwkpa0g1s9mw882ynz16gl9g";source="01c11mbfyynpa1yi0arlqcaklikr4sr83j69piznabj5jhb45nci";};
 substances-40989={run="13nl4xc0spsg4bq3ld0fv0612kac2z017zp8hwck2d8413jwkj8y";doc="0xbrs7qpbs5314j79nzcv408ghhayqxj2n0nfify6isxh85r1ks5";};
-substitutefont-32066={run="1djss6q6l864sj8mbvavdxd6fpmcblhb666hyskwciha6naja8xg";doc="094ywcg880qdryi970cx12hrnkjawhmpz6mmh8p7cxir80ah37n7";};
 substr-16117={run="1qialx52sccay00z85z001xsm62ajvbfxqxc9ps0bpmjkcvvgad4";doc="0zfcggj17bf26dxihkmqwn80pdir4n216x0nhkb3v17q889q903n";};
 subsupscripts-16080={run="14v5a89iwm2ykjsm3jxgbqsm5nba444yh8mzqf23s23z7fmcmsqb";doc="10swcywyb0jdsjhm0cybvmyc9g2ksxq60bqaqnp23kfxp39g9rq2";};
 subtext-51273={run="030f7sq37qjn99l1z6nx7qbivhczpzhjm7drxhhhsssw4n3mci7k";doc="1m6zyy09a3193w0p91y8g66n8bnm80awzg2g8l195n4p41l8vnkw";};
-sudoku-15878={run="1nyh5rv8fgs0lgmsjgkfx24s3lh8pph6jcp7dx8nb8q2ij8ia4pi";doc="0hdvzb1vcrlbis4xsgzdnbidapqp7kdaqdskdha5szjw53xz77ys";source="1rwwqpqvmwvq26ycj2glk0k4m1vlbjrxjp0l20qnh5vad98a1x7p";};
+sudoku-67189={run="1nyh5rv8fgs0lgmsjgkfx24s3lh8pph6jcp7dx8nb8q2ij8ia4pi";doc="0hdvzb1vcrlbis4xsgzdnbidapqp7kdaqdskdha5szjw53xz77ys";source="1rwwqpqvmwvq26ycj2glk0k4m1vlbjrxjp0l20qnh5vad98a1x7p";};
 sudokubundle-15878={run="18y4x1g050ircqh3nd95m45scb8zgjzi03cj3n7whn207dvapsdw";doc="17mdxysiwjp3ii1qhknrxw07dcds57qbm986583xh69bhq08c4sr";source="17g96rhis66gvgbm1857ck4ri8nz3isdlqshfx9rdbpgs8x58i0h";};
-suftesi-60991={run="09rnrhy7vi8zdg5lmgmvlh3lc50wkp9gkr2jfmmg919ls36bfwcz";doc="1wka69sqlp0p2c496ibak2md6v13hxcsvc9lf5fay14czwvyll25";source="0wbp99vy883whqjhhyzsq3w232jk6nsaq6wgq3dgv1d0zamadi1g";};
+suftesi-68204={run="12cis5ynr5ddhqis0i5501sbxznpcv7i4rh172c7jm5dww2vank8";doc="1bmnzdnmzn4j3fpbfax4m9xd8gpk2vd1xqf5z3ypza46vh7nggxw";source="1x001l06wnfkky2vng3vpkj0cwv0z9f29h09jpf4yc5i1nn2s9rh";};
 sugconf-58752={run="1x2nrvqnl65jk3amclgwrk2x1dscncxajdf074a2d410w1vikrck";doc="16w8nfyixsr7l2dn1lbwcscbs6m4mczql9gmg9wi16nr8d7pm8si";};
-superiors-51909={run="056i8jrpfs79g2n4fb3kabkkbqbpyii1g0z63mciqyfbs0wvpasm";doc="1459za0bj73lgz7nqv0ys0zimfw1nmmzzcyhydi9km7mjv5sf5r3";};
+superiors-69387={run="1kj12xhd0psdz08mx7k2kz2maaaam29s3lway19gcawr156jp60m";doc="0vg6sk9ad181y4g53shj1j0mdrcqny4hjdfv3kdn5csm7h5kqq72";};
 supertabular-53658={run="10r18kzg7p8s2wp1nydvn5f5vfbailcypqb7hkhxyjzpkdfrp12w";doc="0cw3vfh4mxd39n2w1yk0nxjq67pb8s0kzv6syr2s4x3p3nrml822";source="06r03i93j8rxw6ddiwmshb88q3h1dc3srlh4djwwycjbgp66xx87";};
 suppose-59281={run="1157v4laxbdllf5vqlnsf4cyk535xdq968q33gla769r1vv4yyhx";doc="1cigx59dypmjyv11lbf9fyfh4krl9gyp8jiwirhb9hrr9jzy7263";};
 susy-19440={run="06q7nw6bh9dkknj1jzvy1wljh9vn49z7mbhr5d0ydv10mp9y9zlv";doc="0dsr3yd5v6i240f7fgpbdlp0dig4dl0376ssd7nbg86scl63k9iy";};
@@ -3573,14 +3666,15 @@ swungdash-64204={run="1mr1x0g86qdh5nw39b56da3pyw7p4cq1x783rcqqw2rmvszp6zqd";doc=
 syllogism-15878={run="01x5kjyfm5ksqig5h2b8sgmn05ws0a65idv1xh5l709yp2i35120";doc="1zqljwv03f755lzc9fhps5xh2dy6r0jdsvp6a21ka11kqq696vjw";};
 symbats3-63833={run="1rkc00q12f8ysw3vcn15hk626wzmy5j6gisvyzss924482pp54dv";doc="1cs9vdddpv7ymgicx005r50ilwjharqvszykf35lram9d2n7f40v";};
 symbol-61719={run="1pdkpr86bhia5hcmf7q3nhvklnsga4mqqrrirgl8a7al7x6q3ivs";};
+sympycalc-67087={run="0nr281r9f5d68kqsg2psvhdzgy24sdghyd9h395q666mp05z787f";doc="1ik7h5bwvnbv8zqq4pppprqwkrb2fjd68l5fhj10yznx38hh5x47";};
 sympytexpackage-57090={run="0d77xd1xl9wc6qbd335kvhq8gbvvqzgqxblhcmyd5khhg3azk6sk";doc="1y743lffzk65wl5nwi490wnmf4xaxcnkpicmhadcvjcadvhrnlxn";source="0q3cl06b2mcpn5an1m7c68c4c0swmgacj3afqb38984dcvap5abv";};
-synctex-54074={doc="13fc91avs09za1y5rrn50wfr2bf1csnf3p4dn0r3mkny46bdfw7c";};
+synctex-66203={doc="1a2nlmbib8723jjhf6xxh5rpmnd5jv3cd69br4ihchbq5ipzircp";};
 synproof-15878={run="01bx52ckyg4abigyzfcxi83jqdkczvsj9b80rznqz8vm9yrbv951";doc="1kvd3vvj6yx1bfqbi858qglc31dx03ish49q0lai0mp1814n6fqh";};
 syntax-15878={run="1gd38myk5lf5fxlx1j8cvjv6pcpcr15r0370ikxf7fczv8s4ab2l";doc="0l6rkyidqvvhkrjxs8y316rssayihqimbyqwvmdzqpnfd16rdxpv";};
 syntaxdi-56685={run="11l8609xj9gz2zkd6b0ah41lgw4qhrvdjj47vwpzb4sb1sirsfgw";doc="04hnwc8hc4z88wxrp81balza27xjj56ymv4wb8lvl7kg0087ldw2";};
 syntrace-15878={run="19vx1iz2zxv49znddhcsl7aw4i267fmxhxpszzg2i9z0klm9b3nq";doc="1dzy8pazcp3lfc009g0n1h0a6q3v99ii43pza3m2gkjvbrb5sk00";source="0hb5iklz2c7zqrl8zrhkn8k7dj1zgk5gvf4wpr7h32sa83ajqrdr";};
 synttree-16252={run="1n2n1q2pwx3fi0dhh3h5dj7s5wrz2r5zpx77fmxjk0c3d45c8wan";doc="0rnghg1459nlliwbcy8r60rc9si3ya35c7sl5zqh67sfwla2ixps";source="022b2sn42mfdnska1cvqjsafakah9a908rvyw0d326d7lxx8wrx3";};
-systeme-55015={run="0agy0h2zq8n6723w27psm3azigf2bsw4s80701xr0zz6kmlyrfg2";doc="1xxycz86kxljxg1np3zd6jzwanvp3f67la1k267z3w39f5i63x1z";};
+systeme-66655={run="0agy0h2zq8n6723w27psm3azigf2bsw4s80701xr0zz6kmlyrfg2";doc="1xxycz86kxljxg1np3zd6jzwanvp3f67la1k267z3w39f5i63x1z";};
 t-angles-15878={run="1p1h0gz1k4lr7rmadhdgb7l3gp55w12m3p88hy9d4d0ryzld299q";doc="1n01pg82p0yz0b7ph82k5ha7a9j0a4hc0489xq9pf4kbizh7ap4d";};
 t1utils-57972={doc="0hdk57179nn57wnmvr3jasjavkvmrn6ryph6jvjhsfqprn7bhf1y";};
 t2-47870={run="0s6zn41dp7vzilfyk92yy5mbb74lcrpnmhrwl9xcj1dbadi97nm6";doc="0wfm1gy3dyhfv2xzjfsky2fvdhki5r2ndgvzliq2n0kvfxf1sgna";};
@@ -3590,11 +3684,10 @@ table-fct-41849={run="1kpmd1qynxq29aanvaanq35ihiv0d55k6wamxdz3lssicrn3f2vr";doc=
 tableaux-42413={run="09pi8sm17m1v4h362al448ayhj1h5n0krdaa7zsys00l0w55qm3h";doc="06173sm4yx2a3mfadax16nqj6ggn6yak85l63jiaqdczwyb09kxi";};
 tablefootnote-32804={run="0i1mj9bq2hj4d7y7za2zj64p5dfdvsfi51147as5kfb6ci90rc56";doc="071xk16ck9r0jip847ikb2qjyv3ghf1m73w4s619zilvm752c0ak";source="14vrh8c322skk3rpjpr03fgzbm03khmhf3ifh2fm72yb5cqgbbqr";};
 tableof-59837={run="1n9faa8pcnls7n1ghqywvzri484j37nwmhhday1wa0rzxqhs5vl1";doc="1aa9frbqj6676w0v4s2n3h9nz922qsiafh7rxnmw83bmv93sdydz";source="0as1hwba4vski9vby84j48s88ha76vl2h3yqvn6qkrzyh6cg7g3p";};
-tablestyles-66465={run="05vlmkazizr31l57zm9q4lsw5kinqd4wrmyjgrlgxl130hy3chxx";doc="04wiizp4giyh938rfs5j3s9jm6fjz45bxas3nq3lnmh5akcnpy10";source="03bxnqry8imwj5ihs7n61b9f689x3c0p6yx0lza71cawh5jx6zh8";};
 tablists-15878={run="02sffbb22hirw8mdijf7scxbivipmqw828qzdbc49vaxq7ggmzib";doc="1fwhps6a0j8r5zqcksdqw8gwa55rh2r2la3iz7wc451zk3ddbxpr";source="1wpir71xwq7xhg41l6sigp55n93v94lashgi6lgr0g9ad8hh3y4j";};
 tablor-31855={run="15xinskbqjj1dmi1fpvb6slg8kk3g66dm70z9f7dx8bzb1v65zwz";doc="0lmi8mn5k7b5i0n7bqhagjkkzs2niy9852r8r0vv2c8qfbpm4hpm";};
 tabls-17255={run="17bg083653km6v92hifll78vs0p9zwfnj5rbw1pcl2siizf3pfj6";doc="1gnk4blwfikqshqjv4zd4cykp1k6k025h7vnbjrvia11l6kcnavn";};
-tablvar-51543={run="1c3q074gli4k8a9665i9da7rpv8rdqd6x1kffnzm8n3l3nws6y6b";doc="1jakhzygr71avs9syz6hlrlrabxa0l4061w5x8kzk03bdgygnhc4";source="0mk3s6fxj1vpi8pr2pvg504wrw13adav02p2l6313d14zfzgp6nj";};
+tablvar-69212={run="11xcbpdcl39r8lacnvqyd8j3qzbpzd6q15ivjwh9ndrznkxbpjpz";doc="06gh6a1qsbgbncl13jybpprmdbyfddwyyfwz1m9fs5b6y5dr2sck";source="09ixxr26sw9507my98p6dmnqgk0xw14h1gfbav6f02yxk3f6glp3";};
 tabriz-thesis-51729={run="1jrxxmd38369qrhg2a8w4j9m3ldp08wrblbpmc08f35zwlrackbs";doc="1rzl7y6p7n46r7ljcycr4k40qxbih06bli90mdjwn96vn60m1jym";};
 tabstackengine-46848={run="0zd7gp1k40wg6b5aln30qxbk84ks3ys0d31vlw3wijvh31qbw6xz";doc="1n26fdj1lxwwx1abslxl3vkcvhk6lbnbi0wqi5mhx2n6g6ir8b89";};
 tabto-generic-15878={run="0i65jflbnhqpqf1w7pkagicic1s39gcl319z7g9zr1g80f9532dv";};
@@ -3603,22 +3696,23 @@ tabu-61719={run="1x22myjp1rpg0in3jgjj4wy0xyva8xd5hsy5c1rqqpy67wy83k0a";doc="076i
 tabularborder-17885={run="1p7iwpalamif71mrznbmsig5g9lxs3l16dcpwj2kzhiixsh78vfv";doc="0rd6k4b00aj398hy247x84jj9c3d0dm00xnaw69p7wvlprzricwc";source="1lrvp6128j70fzwqr61nnwiivgllbbkw7pd53l11sqzqwzxppgi5";};
 tabularcalc-15878={run="057720z8l7ss0kpkg7l16fc2v82xr0wqlxzxbcak5m3hl5k03g7a";doc="0539rar83mprammyilmclcbjxr657z6q2xmmwmlik990imf78lqc";};
 tabularew-15878={run="0g9pbr0vhhjj2lz9bbgwvm49wl8bdwvv1jjggq2dnwwqbr4vc4p8";doc="1ff62dxvnhi4q1gy8f7qhc0zz1jiayl6f8j96dp0rz38l2is7m86";source="0sfpx5w61xrmmgip0c746mghhj06r2mn2jmj56zingymm2djiad1";};
-tabularray-66281={run="1alrp56nra7pcxg1km7p8km679dkkqcsj7m85r5wm091qk7gxhf4";doc="1jkhrvq0xwr5qp88zxj888j0grj904vljvfahd5azys05n3ahv33";};
+tabularray-66276={run="1alrp56nra7pcxg1km7p8km679dkkqcsj7m85r5wm091qk7gxhf4";doc="1jkhrvq0xwr5qp88zxj888j0grj904vljvfahd5azys05n3ahv33";};
 tabulary-34368={run="0z57030pg4pfvghjii8bgqba589cabnj8qsr9w1abpwp3pfy4zbs";doc="08r21q2h7sjrk875x84lngcqgiy5ijik56ly7g7wyzhq3jyxds0f";source="0lsdypidawyhzj73c3yjs8k4xy2sds7gz8gazxfy460zndsz675m";};
 tabvar-63921={run="09pbsqa0a492j6ijvi25zdv4ic69wc8ngdxll2gr7wgh6m9hsrq8";doc="0iv8w8jvq05f6a1z7n29c9cldk499fd9igryv3c93g6bgq2hkzks";source="0bw2a9rgij2xvz3lhz6gya4vfsjn41cn7mg9mkg728q4vbhg19ms";};
 tagging-52064={run="0sws4x1h52cd313apfzydqpj6c8xrb8x5881cfhwir000n48crb6";doc="1pv7savkzm6jhaliw5ilb7qmhlj3iyiz2w6kxchanwrg4pnqabx7";};
 tagpair-42138={run="08qjcwyjs90sg8agmpmm3122h20898hy6dwkm0lk3dba1j3w5drj";doc="1dkn4gq6zxfqw9h64h7ggkbyrk9vzyax8gmnk9qk8dccdvf5n2sv";};
-tagpdf-66465={run="0199pakl7j6992x1f6l8r4mgnjglzjc2gxkvf4yh680ciq0hl2cw";doc="1z3ryhmr6rkj9v0sq6v1pq1q5hvajvl2akwy4k9rsfmyzyy2fnws";source="1z82dzv40hx86fjg79x6qs1hjnc7bb9pgji3jmriv3ihsi5w297c";};
+tagpdf-69165={run="0lh32csbsl17wvp9nqfkh07sqb5kqrlgfgz8w6asndbsnna01wih";doc="1jksjkym9cj28bgv7bgl5i2dyng0ggzlnqxwr23gv739c749gxxj";source="09a16y2mgyj88b0dvvszv1d6lw9ji75c6rnq4wd1azjz0k397w64";};
 talk-42428={run="0i9whk49bahsm2kbj53pjdh3fpg1ixfyxmfvcp563ylr8j2ibimb";doc="0rgil00i39p2agz9fybg0h3xmpq0wxcpjcqpbpzjw5lcf4mpcni5";source="0kdrknwwivyxiyn8xqappf3k5l1brkwkkhjqa0l5n0abzafkjcy9";};
 talos-61820={run="0pffvqdkhmc0adl7g1sfckgwwjsfgbnf03jfry3yfq6za6mk05d0";doc="1narnqgf3221fpf66w2vlw95cr17swbap35lvb7dzviyad0ailcf";};
 tamefloats-27345={run="0mhiz5lxz0szi8ygmajjmldz1bjf6f1lpyxj3b9zb17h9aw8gr4x";doc="0s5cy9m8jpxh81c10fgdvn8wy7pnv7sa25hy8wbv6qkr1qwz8dss";};
 tamethebeast-15878={doc="13shw7hcimckn7pp8pj0cr1zsi1wq6r400x1v6akpmwwjxkw09g5";};
-tangramtikz-66201={run="1c9in9zdw7ixanhj7kgrdsrv6iwvjy02b12lgq0k3wwllnaakv24";doc="15979bzhc22d2pzc8v8ml9220b0sqz4f2nh0nkxibm8hg9pq3prr";};
+tangocolors-66733={run="1i0a42sdqgm7sraxaq246fk1w8ql4hn00y2r1rndyd9v3828x8yq";doc="16x99xbhwnibsbw364kb9yxzfcws3d65n0sdj2wflz2v7qbyk986";source="03kpykm57favngm16669ylkh7jh1q92c2zhb9sx1qy1wd5li7ix2";};
+tangramtikz-66183={run="1c9in9zdw7ixanhj7kgrdsrv6iwvjy02b12lgq0k3wwllnaakv24";doc="15979bzhc22d2pzc8v8ml9220b0sqz4f2nh0nkxibm8hg9pq3prr";};
 tap-31731={run="1ci65i2k6n0h9lklgk41sdq4acp5655mps77j9gcb65yk4mdl6c5";doc="0r8y4jzri83qypvnmgchnhrd0yi7j0k753zmnwhzxqg4bvki10gp";};
 tapir-20484={run="0ad1qkbvvswq7msx9889sz8n7wf8iszigd0vmk2yycykbf0axzii";doc="1m5g6bsijqris8r7z2dw3cj74ajcny2wjysq8ql26531z61hj9ss";};
 tasks-61541={run="1gwl8g4a2x3sbvqg91ry577hmpxdc4dgcj9ixhsla25h23jl414b";doc="1pavbpzm6z6najh72z52j089mdg6gqzsa8sb9qyfsql7mndnxznz";};
 tcldoc-22018={run="0gz5v5hi7r6wr8qas79lakwr7gnf8d5kypf7cp62qvrybp0ljgqs";doc="1vy7k0f6ri4kbjrhby0napsas9wwlq5by2q1dakbz7r80zr7dc3k";source="150p69vd9465icda6p0wp37gg9vl8y3c2ys3b8f9ij9a88x5775j";};
-tcolorbox-65800={run="0sfn6j0829b418fs6zry1xnjkmw69vcifgnql8yg5gwypixrq6w3";doc="1469w97dj43gb4110sx4aqn2j1hhwa615b1gybhb9i7cc3jigd6q";};
+tcolorbox-69370={run="16k26jwbhk466h8a09syzskljyg0x2h5fm5f6fmy65bcjgc8ai51";doc="0dal9wv4aryz1l20hbbg6njgy534540vqmyd2q9366a9ydgx1km1";};
 tdclock-33043={run="05w49l1kvs73sxchbwrlfs9n6mn7qshx102gkjk4jslhnw9lc48z";doc="1n0ir0l10p9fai1cssri11bpzpjabpsrpfji6w826l8i3xlqkdkg";};
 tds-64477={doc="04lhavbayyisxxqfm1vpfq38xx1xwkn136hdnjaa3szky2xyn3yh";};
 tdsfrmath-15878={run="18qqjmdh4hgzar37imn811i7nbk93zx5w7f7agwnzbxgy1kx2plb";doc="1vvbsq5aql1f5q0q6v5z1xm16bmb20w2jnn0d0rc64dw4dxnwpxw";source="03r9f335gb31zb2frpv6hk50c01sz6rwlqw9vdxf4ch2np90fd9z";};
@@ -3627,11 +3721,11 @@ technion-thesis-template-49889={run="1w004bdgaag02kqhsdksw7qy93lyjihhlbxiccavp7m
 ted-15878={run="0m9dv66nl6q4kq8jq08ayx4hrkh9r2i7hmr290s5d7bkyicdkgpw";doc="08yjlfrblhralk4b9ji4g47cr9r1zj8dp6sjha0169395wn4820l";source="1cifrswbfk6714m63kvmrsyvz3q29wd1bgl48f5d9ay7pz07wjyq";};
 templates-fenn-15878={doc="1s91swqsysva49cjrb9khgik5mvhxcb3wr2wz4l2683gdgxlbgkf";};
 templates-sommer-15878={doc="0z75xhawsmcxv4f24cqcvfi0r22gavjpg4si6nwrgc8sg82x24m6";};
-templatetools-34495={run="1djj67vbfjrhk273yqc9ss38bz9bq1sasxs8bsd47acvfkgq45n6";doc="087ib1pxgryfx03057yfj3mfm3sgy885s5nwy21cmdniwqsk0i3x";source="1cpa3yvrjlh4l8w0bfyznpk6bvg6fmyhplzsz7jxv9s01w642455";};
+templatetools-67201={run="1hbpn6aqp5zq2dm8dd2cm0zmnib6rasrn8a8rpjphvhfkr1ydmck";doc="0irpqbcf51dx4rcsa0y3r4x00y7p0fanspyhia6vhk2wsipbgk0x";source="0z1nm6jp8za0dlrj8s7zfcy099c7zr6lsxa48v7gppabh7i96gqq";};
 tempora-39596={run="025smp68d941hqdxqsd4qpaxvk4z8ybg14xwc47i36k04244rarh";doc="14k350dyiqjcfg5fx09i2i9cqsdw4mh1qcrv8cglf1gf2d0b3jl8";};
 tengwarscript-34594={run="0v6mpqkyp7fr1nb5myjs4alz8f7y56rnd1vlsgvp0m2shvnvhy2f";doc="0225gpdqbbmcpgxmpjcj2blbpzxcnr7vmm38jkkpyan3gfw52n2w";source="0jzzn01c5gwkc8n6naaddm793sm8vs67vsjd30lj4ls7djpnixkc";};
 tensind-51481={run="05vgqn5wcynyp8gy80icnkrdrgb0wsr3h0db033yx4yk3c8lhwaf";doc="1vns4k813ffccps5vrrpfmb7rm4fmfs8zgs7cnw2hqg08dmzijfn";};
-tensor-15878={run="1lw3dxk7ar07d4mb02rvv5r2zdkx8pz0w3dzf9s2pa2slbjx5dlx";doc="17xg416ccniiwvq0schcmp53a9hdxvds2pfn6q1q5xw78r983r62";source="1xh8fk3z37wc0jhz8jhz12d35xq6a8fsmn64ga4iv7pi1lhvaagq";};
+tensor-67667={run="0712frfli31jnxndk2fac6fln2538pmb7k16jlvskkifgzwrsf99";doc="0cgwilixdvg1ak90m1bv50rvzhlyd17d3h28mw5bj1myqxr8ybbj";source="1g03dgvnj7j8n7z482fyxpa40daj6rllvz4vnli78i8kyp2b3m3v";};
 termcal-22514={run="1sxzpnrgc7f325w0ww0b92y8ih6jrzpvgp6b5ilvcpyriym89j8d";doc="0nv2s95n2h67j4zd5i2iiz5ygkc1s0xp5wjnnvbb27cxqw1h4sic";source="078bs0l7615z66h5fr1fcd1ydyjbc3lddl1z7j80dngnx5j0vf28";};
 termcal-de-47111={run="13a79lp2lp0r1r1j5nc94adbir463rhprdlc9p6rk3qa7lh445pf";doc="0krnv111d82razivjks8ip9m6z1bllqhx47yzjw6b5af9ps1k6a5";source="0nn9vgxv5awzqx1zndl7zvgd5nhllw7kp8zj7snd1nqvz3wgc5n6";};
 termes-otf-64733={run="0vwm8qrbp9r3bbz2a5sbkkpmkmhb4zh4hbxd37hngx1pd576lasj";doc="0pxck3jbnw7wk7j0p18as2i7cffwj2bf4zjx258dqxg2yjg82i7y";};
@@ -3641,73 +3735,75 @@ termsim-61414={run="1b263hwbplgxw8ca03dx11vp3ar4dh1avf5r1r02qa8b1zax4b20";doc="0
 testhyphens-38928={run="1sqq2rf8amsn6zdp8l1vg5v5jxcn7ipp78qbzzkikiamlxv89nkv";doc="1nzimg7bz6h9dm7hb9r9fzs130dw5y7cjzmb4rc5dp5a5xhiliv5";source="0s92imbkb4p70fd629bbg2cma72ys853qby1nwk6rvdw8gp47pgg";};
 testidx-60966={run="02zkg2kffwh95nxn602ara915jihj59af4hrgv6cb6916m9fv0r1";doc="1pz2p3fdzdv4n1dabh81yl3b3iaywmbjvgxi6zklli6jbbx5h708";source="0h88x6mmid6nmhl4pw9p4p9nlh90p86g1k44a6bbcyzdlxc8n6ac";};
 tetragonos-49732={run="0l8b3kjk0jk70mmmv37zrdb16id6yrjvgsgsmji7pzdqiixy7jh5";doc="1g2zcx3b1pfc9dh76p5iprdgsxp0yndp7rn5ksbq4s9k4m7ikpzp";};
-teubner-64600={run="1rv52yxxanb44f05hr9h30gppbnzbyiaybqm4jdfgi3s9xhprrag";doc="0krg6m3wg0wvda60hmavz6ag78wqcyrzmwc81d0n2x1r687hr3pg";source="16j6g4p7nskjfc1h3ihakl512zv1da3qi4xlppra3j6p34366i17";};
-tex-62387={doc="07ql2xh656imv7xxjial2hzfsm1b0yjd1ddl71q1m6y3ms7qdjvr";};
+teubner-68074={run="06xxypkdzmxs0m6bl99p9hggic3zaxqgfxg8ljq2wad0k7mwn0i6";doc="05vj8877g8ndya6p2kvhipxa61504sa6p80j1zwjdr732n7bg218";source="1nqs8cxfi1rgiab8kvzdi9fcwbpgaw51fjy1kzzpszydf6qxgqjg";};
+tex-66186={doc="1n4jybv4qghg74anpj7n7kj4l908f476q597vyvvq59fd9k5m7mm";};
 tex-ewd-15878={run="1pmf17bxw6i4a9pfi32fjk0hd3p44kw2scwmr7p38320r6dv7srk";doc="0ss7nljpn8k3cz3av5qanc966q90v3qj9qy0akmdzbiy7q8ml7na";};
 tex-font-errors-cheatsheet-18314={doc="0pfd5qphmizhxb2p4gg6809xcx1rlfkwqa6vs4f74457chcwljwn";};
-tex-gyre-48058={run="08578kyph2grc2ca9bdg6271iqpjyjg1qcrivfk5r27sq5c8cwf0";doc="1i6383n8w3h7rjhdzhj0zc8xfd7ngmbqyvzcm0xibqpsdmzis4yy";source="0f9gzhlawkpn4cg284n2sad05aary5pwyczi1qdgnvk9v8sbjax3";};
+tex-gyre-68624={run="08578kyph2grc2ca9bdg6271iqpjyjg1qcrivfk5r27sq5c8cwf0";doc="115gb3afrys7ww3p29lm9bkwvkqk9gjdfcj457yazbk53ah2yff8";source="0f9gzhlawkpn4cg284n2sad05aary5pwyczi1qdgnvk9v8sbjax3";};
 tex-gyre-math-41264={run="0vqg04im4s6k1sjfclrn855liilgayh5kca774aicifzjgsigs1d";doc="0s6s2bs6q2ar4y53fyckz104y8rbvz3msjvyb4sv2p4j6x0kwz4g";source="0vl9ggi62bn1cpnjmqanx62b6an5294375jg68gskg8fwi8j6gir";};
-tex-ini-files-40533={run="0q1g62jg0qiqslm93ycvm30bw8ydmssjdshzsnzl7n2vpd62qfi2";doc="198f4y0bjw9azzck8rz6ml0rpq7g67r37rw8825y8crhpykchp6n";};
+tex-ini-files-68920={run="1dzfn0v8v8pdg6lmgfs0q2c0695zndkf4rpl6dckn51gp2i1bgl5";doc="1l1yizfq9srfjxirdwb3hvlj31a72mnw4spwyjk58xwcsjxx3y00";};
 tex-label-16372={run="0flvmmh0lzkwvwksmnb8m4ix6pzw6f18flybkgidkyf9mf0gg8xc";doc="1ppvdq0cj62zk3b0i76lc35r9pizzli7mm4j2zvdabysn0prlyyb";source="0ysjsk73ksninqk2dyrw06arl692x66rsrr8vb4l2ri3m0lyivlf";};
 tex-locale-48500={run="05l4frsxpdmsrbn50q87db878bwpi076wagj5r8kdnmdwmcanr6l";doc="0j9m67n83f4h5yhfh3a51s9yhqh6kpjz8y5vlxhyabyf7rcpybd3";source="1x0wmqsrbgdgy67gln4jd0518cbd2cxp36gqrjrqgn574qsl5cx9";};
-tex-nutshell-63336={doc="1pc9hx4fzk0k6lwab6galf7gxm55x4z250dymsmbz4fan76xk51x";};
+tex-nutshell-67213={doc="1r5idg9ai3bpc1nxwj7jm7kr9i514gvnkz7wq3dh745y6ilqncsb";};
 tex-overview-41403={doc="1agfya9rwvyjvip0alvibimz75jivpf19hp4jvlv7z0n9m26m9jd";};
 tex-ps-15878={run="0i35b4pp38d1l5rac059znlkazrcqa62qm8brhdmx7zzkbhyysi7";doc="0kgf7y3nxkw8x42wpc1g5mmmbz28n73vgwd9d6rf6fjpzrycc2zx";};
 tex-refs-57349={doc="1w7hcd3qsdhmb2siakjg2hm3h6kxa90ncsaif9spr4xkxs03ib6l";};
-tex-virtual-academy-pl-34177={doc="1kb86nn5vp1b0sy21aw9wlla1dwlaijppzq7728bmfs5nk1dnbjv";};
-tex-vpat-63560={doc="16nfvhzzg46vk6pqli6spxq9y9r0manqd5b7b4k6r9lssdqxf8ld";};
-tex4ebook-66333={run="06hp0i93s2a25w9z7ip1x6k8371asgrkcyk2adfsi4ibbp8kvnw1";doc="10p9mzjfrn7pdfj0wywqv8z6i1qqsnnmjjv0lh5a4w7brln09dq7";};
-tex4ht-66531={run="0hwyqgxgb8pjkqwbcdp22c9ffrcqm23dnry5m57x8cs0s6ml1j9k";doc="04z1bsgy3lisx7ifskxzna5jcbjkbwwjlqfwbfppnmjp5rwphxdv";source="13qh9basfis90xm8vqwcahi2y491jfcq08m1x5wg5b1iq763rgb7";};
+tex-virtual-academy-pl-67718={doc="1kb86nn5vp1b0sy21aw9wlla1dwlaijppzq7728bmfs5nk1dnbjv";};
+tex-vpat-66758={doc="1y7f87prympxg8av128npsa43cri71jjl9gxq1p04pjlpdjjm0fv";};
+tex4ebook-66621={run="12daajbjblpxvfcsa1b63zz7kxcyaiwcpj0djfj1ycdmyhz53cqi";doc="0rx0wppzfdl7z6zmbvyva9yq6mj8gqhy8m62x0r9wa01c0jlm79a";};
+tex4ht-69412={run="0vy411zwfhgsfjbyj81pgihp3g4sqkmb6cssb8sc7ipi74ckjha1";doc="04z1bsgy3lisx7ifskxzna5jcbjkbwwjlqfwbfppnmjp5rwphxdv";source="0qdman4aan2m1wmsf9l9j9qkc5d0rq5v6ghi7zmflv7jj5v1yld9";};
 texaccents-64447={run="0xai85qn9isnrvijw9shhljlkcnvmygni18kw02gsmij0dp9c1jp";doc="02185jla4hffra1wf3mgiaq8lyxh4gxgcjrb5dv3mkrw709iidcz";source="1wqbdmfly54sb8q1y6ms2wg8n62w34xpbfvxvwmg5i4as4a1ycmy";};
 texapi-54080={run="09cnhqn4gxf0alkx0276jkpcsd0myypbn94jzsavnjq8jknp6850";doc="0529cncxbw53km02pymj57iphgziri3d9cj54pqmjqjx9qmgwfmm";};
-texbytopic-15878={doc="0pnh1hsd6k434c8i1xdjq3ywrwylmryrsl86d6h7i1cnmzz4pwlx";};
+texblend-68961={run="12lfkp9qykcvmrafwilyz2vj0yk0ghvkxmmnkhlac57q3hjy12k2";doc="1sahpz1bh883crlr4qicgmx96ncij5zz1dqrm23q4qlg88yn8y3k";};
+texbytopic-68950={doc="0pnh1hsd6k434c8i1xdjq3ywrwylmryrsl86d6h7i1cnmzz4pwlx";};
 texcount-49013={run="1bi484kbrcfx3hyflr4f2w0plhz58p2206rz4r1wjllhhhwzc7pl";doc="12a3j0sk7nysd3bd7mwnbifyrcvjjkfjy3b8f1caf6k0pf1mz8b0";};
 texdate-49362={run="06bqyfl1vnj4gadqsx94lj8cm1ia3w3bmlsfjwwfaad0al3ncxdp";doc="0kks8hswbwhp8dpjdbwr4nm55md4wgabl5ypzpx5arj41x8halhl";source="0mbcap5nfj5ap8gxn4pyv8w37hcfnq4bm5m6jx43cwkzf2hiwar5";};
 texdef-64967={run="0wi60appvgs0h5690h8qqvcmsq2r6fcxais2jqps92ryy41s2v68";doc="124azfh1332lq18g40d291gczx2agh2b1cxq07ldmizi8pmvjaza";source="0hanvqdj2dgpgl3wa6sz3qa542882h3mv9709spl8q2glmyip5b1";};
 texdiff-29752={run="1jjzd4grr3ip6gd8xmhlawhdcjfj1sqfsa06rxrpziklwirw6bq4";doc="0f7q7cszy6ca6fmwzi7fn6p72szgzyj9fldvzz1rk3ywkhsnpakr";};
 texdimens-61070={run="0fny36zd88qkcz7k3hdxq2qr41dmk9j88skihls4vwf350fy8j98";doc="1qls1hqs6ypmsg4rqa26dp98m6h7zq18wdg9n6g6895jrmj10qdz";};
 texdirflatten-55064={run="0q2m138gpk9cvfp19jvsw746mkxa613c2204qfxw1bxw8b454d7m";doc="19iiznql82a34d2yhzqcp339zszbhfz9fh0h4mb11696mj8rx3v7";};
-texdoc-66228-tlpdb66590={run="1ph4mzrlri8daxg7j4n15s3b9dj58ni4fdqhpvqxwy6736fiw130";doc="1dpz5ni9xdbwfy4m12j3v407ywbddmy3j2dhzwrdsyj7wq3impmg";};
+texdoc-66227-tlpdb69413={run="012smkh6bm7rbdpaf0w38gakhqz0s7hr25gi2cf3592imk92qlxz";doc="1xh39n2iw8zlfncvwlw2a0lbxf90awf96z5cry47dvsz81k7r6si";};
 texdoctk-62186={run="13j0c5m12if8jx8sp7hlirz33y6l2jk8lvnms7dalz52mxz8kq4h";doc="1k41z2lbfjsar5rl47xnk1adbcnnb4w97bzbgf2rnjhimd1gn9hq";};
 texdraw-64477={run="14vg45kci5pffvwdqnnb0dv3fznfaay3rg0fjiwfill24ifms14s";doc="0lw37yi82ir8zn2ii2x88f871843y2was3xwp7p06wjanr1jwc6h";};
-texfot-65545={run="19aswiyr722n9misvg9ajdsgpn1ghmic2xfmr4w0w00sai5sh5rx";doc="1jhyfpiyg3007p22jfwkdfmnbnwwax8rzym30pii2bkx6n652p4y";};
+texfindpkg-67027={run="04igpv1y8gw945z4abb0wi959wq9y0xwzk7ymlr09qs8zcm0xv6q";doc="0gddmzndg4cc69173ssp4ncz0mmcw575fffanmdxp7y5w7ggrxb7";source="1vjbmin6jqv4k7qc0l8gd27z8gk6p87pw35rgqp0f3h0pf3r62b5";};
+texfot-68110={run="1yk59iwj4wylhagrlpasy5s8x24lvfab9xg8xz2hz8d3khai1qzd";doc="0rqhyyp6da4fkdfqa1c81jaryy29mdgm2rzml2hklp1mkxkw7k19";};
 texilikechaps-28553={run="1z9nvv2y2nzpkpxyf18p426wcl0g6gbg7qppq70b285kdbczbijd";};
 texilikecover-15878={run="04bljvhvmrxh1a4sfqw57yysaw03c5ldi1bq63mlqqvd9p3hmyck";};
-texinfo-66356={run="1wdrqwksbhxxx275mzhcr3mc67f76nbflplqs4y1xx67iw724dmx";};
-texlive-common-63925={doc="0z76di99n5f9frqcn9jmw6vi1whdpvspppl9k0ikgiahkqb5pa8b";};
+texinfo-68342={run="1wwzz52da923022bg9cqqcwny33qsspf9hfaz1zgrmxw5mi2p879";};
+texlive-common-68510={doc="0l4yicbx7n787xczpg0lwsxlq2cavhswb0w469gc21va59lki3z5";};
 texlive-cz-62854={doc="0wkf0g47wj7yqngxmy5cvjic2gcgy31pry4810cgklljn7pqffxp";};
-texlive-de-62234={doc="1xpqlz6wmsn7l8z66ljiix4qbmqlyg22wa7k03pxq12h3i7ad2pc";};
-texlive-en-65770={doc="05i4ggfi558frkjhxrrkjzd3x8ff1zm2qk056a23v736a5hg9y2m";};
-texlive-es-65640={doc="13442kjpprpc1fp9d6i1byg09vx3i98gylc81xm6k14pn2vy14fw";};
-texlive-fr-63071={doc="120jahzjmak3shjhiy81gv6nk3c1hv4rrxyi1mmzi1xklxjlhl4b";};
+texlive-de-67108={doc="13k76mqf535l8y0pk5vvzirnicxajnq5kpgywp2f35vks362a8pl";};
+texlive-en-67184={doc="17fqvsdnil7chg6a33sy7sxmdh23jyy944qznlfllbnzdpqc9cxx";};
+texlive-es-66059={doc="0crlg0madfm3gp54rh4jm0q1x1l7mvn3l82swhdxab3pl7zwmq34";};
+texlive-fr-66571={doc="1d48jxvrz3dxrbfzj5pygi2gd9bzjvrch8728pbc7fk7xbimkafx";};
 texlive-it-58653={doc="0vmwn6n8bxpzcfrzic5qg5k2vklbm6rhl9861zxsli0rd9396qn6";};
-texlive-ja-62817={doc="1h2rv13ip3bgmfz8q64abqx3ajla9mc02a50xz1nzmng0rmgz04r";};
-texlive-msg-translations-65889={tlpkg="03bshv5xacw01ssbpd5wmz4ryym3dc27l8mwyh652i8gd2lg0scm";};
-texlive-pl-62841={doc="19qab4nd9z87v9dpx7gh2a87rw8k4x6kqzg5yc7wqmf46pfjmpcw";};
+texlive-ja-66482={doc="1sbv761vh7a25lpk1h4b2ar6w7cqjmafv1kbl8dwd47hnsjd7xk0";};
+texlive-msg-translations-69346={tlpkg="0l0w783z2zbb24jlqwxjjiwmfbqys3g634ymk5qhzck5w7wcwy6a";};
+texlive-pl-66576={doc="1id4kngpwqs53zn3pqj0hp85yf6rvha17dyb4s0m8l66cj2rzyn0";};
 texlive-ru-58426={doc="0c77yyfj87fajran8jppj0x8krk6b5195iscpn8z2n94spz2fcc9";};
-texlive-scripts-66570={run="0hl1vjr4hr7q7s2pvizicmabb185df5rl84cjsz0ki7vai5mh7pq";doc="0zvji7w8zvykmy97yim0yx0m05pazg0f60bbls0lb3mnx7rx8imj";tlpkg="07b68n9i587v247hpqnhwi052iczwg15z0npc1s5g1yxriy5k1lf";};
+texlive-scripts-69407={run="12y5mpwin93asvl0anqs170zixvb29vjakwgagvylhg1ns27lrdc";doc="12all49r6n1yc3jxpkc96gx17g5zfbimwfmb5d7s55vl1c88zmxp";tlpkg="12scd4svhgnvp65wkv3kd4iqppahcg3229s4qfkjwm3jb1zwslxr";};
 texlive-scripts-extra-62517={run="193v0r4i3p4psn5b4q0ggpgaazwn6jadjlzh5gjm3igg9k73i1wj";doc="1izzy295pmxrg0sf2szxxahxm6s8bfi960mbs9z6vy7m5j1szxwl";};
 texlive-sr-54594={doc="0icavs9jkcr5b5cx5kv202k95j0ydgby9lqrw8wm9h936mbn9bkj";};
 texlive-zh-cn-54490={doc="1r8n9k1cy7798g1rg1hyj6g945j9649c5hhqf8hm7a7abzx7w6ll";};
-"texlive.infra-63645.tlpdb66590"={run="127ff11k8hamywgvvb4apbg1ra64ig7sghg0qqn8c913mqgxf844";doc="1c9xqbbbn2h7v76kp7bhjwk1g3zzykgdrkrslrzrrhs9x7laicl4";tlpkg="0msr7i7vp5wf63fkjmmx0c2h13ky17j5qlrq7rbnym732ryzlx7r";};
+"texlive.infra-68903.tlpdb69413"={run="1ig9nsyhhgv9vr5hhvzj3asqz75fdjrvgyj1s2z8rbng0y45x8nv";doc="0d6ij3bgna15i5fkg4xwi7155wz891625sy6qh4jfjmi9sda9p2n";tlpkg="07qvyhgbbl4cddhn4wqh1ivp1ifpw5hwv05xywl62zc1swag317x";};
 texliveonfly-55777={run="03i9pzqv2dz4z9nlq60kzwiyfvzhhaalhczqa9146jp4wvcib9l3";doc="1fsabzkbcrk42rsp8ssx0kvap31y1rqnkq582129946q3njvmylx";};
 texloganalyser-54526={run="0icav63nll0lj85cqlbg1lx1r6ysjf1lyv5bydxr3flr1c7yqx2r";doc="1s7952n2brrz3s1qca9r5qk8fnjlmrmrn8b06dhjxdb7wdqis6g0";};
 texlogfilter-62792={run="19sxpfyfp2knv8q13sgka5kw74vplr0fnf5c9m599h5kb7v4pcys";doc="1wwhdm7b2rwp9qjpivj3wflwf6q4lcxbc3r52g9c68w7d492v7al";};
 texlogos-19083={run="0rp4l8da3dn6djdjajavxqr5mmi3fsyadcqrpmd9cfggdvb9i8qz";};
-texlogsieve-64301={run="1nva2ccmarr15yrm4hiak0z7gn5z60nqhj06fn0n6k4asf9i09k8";doc="0i545ihxqcn61hw4vid6a77fkpcyq8sn6qy2hb4f7hb4d3zl7c1g";};
+texlogsieve-69072={run="01l0i7naqyjf5nafk0bzx3i9zvcqphzg4wkbnb27ghhwarzibjs4";doc="04r1cj63s3rh97z42fysr27drximd1a27ksvm434aiiqz3niylld";};
 texmate-15878={run="06hnwj11ify60gx92zqky28spdhppgai5v08l73kiabrryzdn8w5";doc="13d6rlazx3qx9zwbb60z1f6dk64n6rph610s97hha5kpc0v2vkm9";source="0faabcm8lyfvzn5jb7vbpkpa31gjb1czkr0g391vbdmx9lrllxar";};
 texments-15878={run="0vhwraxncqx74akzmjcww4akisn3zjgi5b6ac8c350flhl0nsh5p";doc="0xn17gjnb7n3ryc28p8vg2hshcwa660482pzm9byq8k6s3a78yny";source="1kq5zw31sv0i87h30ahyasqy1qh4m36f0j37f8532s20n5llcq0z";};
 texnegar-57692={run="0qrnysss751vsbgd794gwh8lwrq6gq09p55qkkfngc5ly29icx9c";doc="0jidhqlklr8yd48san5iyy3i5pxg8lygf4xi0gcp3ps7xcb0m5g1";source="1bayaa5vffnkmvdmg64q5rsnh69grr8qirwd41mlfi9symh9gm2j";};
 texonly-50985={doc="0h40f8hj03ha0ilpj2fx5kzzvdv0yplmr4528s2rmmy62l9kgdkd";};
 texosquery-53676={run="0jszy2f076hrc29kk8qcr9616hyk2cvys3kg2qfhvblxf07ziw62";doc="11rz21m720pp97vb457pxaq5yxf3j4v8vfcd77w0bjpc632lh1xx";source="1q7spgr1xk2lnx2xqksjh979n7r2v1n1441fkrc479zyi69ncn33";};
-texplate-61719={run="0bh1yhs28wzagh7i3sraki8ygd1kikcmalqvksilmb7j4s5c0hhl";doc="0zvrsllhb8fkk1wzg9mylnjyvb7pjl5wvd3m899j7w9cp5zl5yvp";source="02wc2aiqcrrgc514pn1m7yn1b5k6vg1p8d92kk99pkiz46vxnfj8";};
+texplate-67201={run="0bh1yhs28wzagh7i3sraki8ygd1kikcmalqvksilmb7j4s5c0hhl";doc="0zvrsllhb8fkk1wzg9mylnjyvb7pjl5wvd3m899j7w9cp5zl5yvp";source="02wc2aiqcrrgc514pn1m7yn1b5k6vg1p8d92kk99pkiz46vxnfj8";};
 texpower-29349={run="1w1yn4is019rjnj137ckmkas48xblmhpn0gvp8dac2hmsvqfl06f";doc="16j3xy98k9hb3p7bg9inzqmsl07csa6lx1lgym4h6rcjh247llqn";source="0nkbapkzq4knxhs63fiqg0rcxyp72vmd35jz46dha87s2v5w2km5";};
 texproposal-43151={doc="1yxb3yagljsdp4s07fzd6498889i7cscch68fb77jbfc2z4srvsy";};
-texshade-64242={run="0mbxv0y7m0hibfgy1ffhsmp570jv87r84l7ibgl8anwcby8r3mps";doc="018kqz80pyaz6x0lsr9p2al4fqa9xsf998vccnz1ixv5lhibbfx0";source="0avk1x3wl7n1hl975xj3rzxhdikx3nfmi6i5lzwjy9rcf77j1s5g";};
-texsis-45678={run="08sn35x8wab41mdv67ra3hahrsf4v4brp9n5z0l4bk3k27rl4q0m";doc="1bgngwqj3kkr196sp8i59yrkqpambijr4a54jfrgxb6595hiadsj";};
+texshade-69371={run="0d5panq1z0fpi7rvwp9p2pahd7vlb3skgsw9zq4rhb9pirawv3v7";doc="0bvxfpc2v8hph04kn8a8rf5995awp8c3zc5r3ddnghcidn83xsny";source="0ib9fs5391pjxh8p0c6bzvxmgv03y73qgdpjdzyadbhkqj4kkdxw";};
+texsis-67930={run="08sn35x8wab41mdv67ra3hahrsf4v4brp9n5z0l4bk3k27rl4q0m";doc="1bgngwqj3kkr196sp8i59yrkqpambijr4a54jfrgxb6595hiadsj";};
 texsurgery-59885={run="1f2m8b4xjq38j6q86pfa4m8f7z4sqyfblxpkkljppiz66cq9gnpy";doc="1zpilg11flz7z6pk7zhpm5ck39avh24na2jpl4asnnznaf5bzfjz";};
-textcase-63868={run="0kz6lq6iv9qpqa8pfs6bwxmafgy9c31ywrwk7nvv96hy198dqbzh";doc="1419lkln58nxwqspfwxcxzzmqwl384z7kg3ghlm2xxkz7426ncck";source="17qhj729q5b54mddbvqys5wvkmh66c1nlagl06nmgz728cc18xzp";};
-textcsc-64935={run="15mgpsgjhhp7hxyllmwfb6j4sx9h5r59pdrlysvivq8vf66zb78a";doc="0c8iz090fx551ppayx61f72bn20v3mqillp2wapajdbjnz3s082b";};
+textcase-67755={run="0rkhw4rai08n52ak4acix224cwj9fzpl1m4qcxzql9cq0h51rn2f";doc="0hw7q77pn8nx80qqvfz333sn1dpx4srf5xsv8vpl6q1akhrk5f84";source="1bxkagbkl6pnlnf9ibs0ics3p5nm9dghyfq97bn32fv38jywlswl";};
+textcsc-67193={run="1zx7890vdwghxl7g9rm9fcj0v4h06sdbhsscwyp7wjmf35k6awm6";doc="04gh3w1a7pnw1zja7gg01xda0f15s1918v5m289ax22j4x9g472a";};
 textfit-20591={run="0vmffs1a9zspg3hcnd7p0mffa0cw4nnbx8s4vari3n8npmdxrf26";doc="0dcb63v0yhlhvjmcbsfnw3px6qizmq95rq67i64dgks85d4dhi6m";source="1h2yql1gy6hvwv0rirm9v996j3clrywsg9dzgnvrkrvnkf1b6dqi";};
 textglos-30788={run="08932gszahdc5q6pckg9q8bdxs39gacjw9cljjlvghs8vn7jjwjj";doc="1c88my4j07b7ihn07bcii9xxckdv04g3c6jycm0ffhjffw4p7609";source="19hc7lalmbr85pbz3pd3dm696fsbdl7y8v9g1c4l2k7b0i5mc8zf";};
 textgreek-44192={run="0r7jcv38749xndr6sigy8zw96kwqw63k4m33c09hikawf2728jzd";doc="12pwr5b8269hrwgpr9g4chw273wv81cfa52wvp3nhkd2cvbhfcp4";source="0wq69l55462snrkpbpnlg03mrn2yxvibw38lkplgfc65gzaa07sw";};
@@ -3715,10 +3811,10 @@ textmerg-20677={run="1bwlcaggagg811sbsi2wrfsz31rd6x92m47aszikmkzfzx4ina7k";doc="
 textopo-23796={run="10g5i5mg9898q091w9svm7gk4hgd6dja3dwy5dwc7s78pv0qcd68";doc="0r94ivbqmvs9lyw1ipwzcb4f0v9npvyfll7r8c9g627ikk9fmpa4";source="19p7sgz34dkvjqkld38x8li539kx140w1nj9l3ai5chilxz4lvy1";};
 textpath-15878={run="12f8qn2ncw0drx5r48ddb0xcc6fdm7jpmv5i1n0ihfcqaqa1l8xb";doc="0qhyflskr978qp01apai5r3qjhsj5q4mrvwck60jr79yasxa109k";};
 textpos-63967={run="1mhbsyil3ldw4xq40739pm7995d7fcv050ra4xjnaqdf93cqr2gm";doc="06ya6i8qkp823pnh1jzq30wi3pnww00jw48lbk6rzvxzyhwxrzdh";source="0vhyr1ljhi5dxyj90zhpr8x7h8rjn84pddaa09al69awlgkihclf";};
-textualicomma-48474={run="06myfm4l1k1ms5bmgswbqikg3kkrz6qah97ncjv0s32inkqjcicc";doc="157m953qh08i0a8lhrk3228ir2clyk32zd6x9ar2fgbkggjll9ch";source="1zp5qj4b8fn5y8a7aylz7bpkg6jnmqifral9l3h5g8ka1727ng9h";};
+textualicomma-67201={run="06myfm4l1k1ms5bmgswbqikg3kkrz6qah97ncjv0s32inkqjcicc";doc="157m953qh08i0a8lhrk3228ir2clyk32zd6x9ar2fgbkggjll9ch";source="1zp5qj4b8fn5y8a7aylz7bpkg6jnmqifral9l3h5g8ka1727ng9h";};
 texvc-46844={run="12knhsx5y5n6wlzlmzvym6bza5dry1z8qlszka0f93wx8hpvk7cg";doc="1852x7zd684h6jjhq3f465z4q7d75871hh5gc8abvdk9p6srnwsz";source="05532lckvznsv4slyvsn4jrv93y4gxbcy3q3r8c7g0lgya255s9q";};
-texware-62387={doc="0zbx2i3hran98pj0n0l4q9029lxj8cflvx7cbhbv9lj04k8lss3n";};
-texworks-54074={doc="0n0ydn8v42q3wcxmhjv5nwmmzf5yfg77qlc1v5bmkpb04dn4055y";};
+texware-66186={doc="122r0aq02vwx6irsnapnfbvhgy5d09x90rc8zc7a0bi7b25bxnd1";};
+texworks-65952={doc="0n0ydn8v42q3wcxmhjv5nwmmzf5yfg77qlc1v5bmkpb04dn4055y";};
 tfrupee-20770={run="1q0z0as8gd9qb3p10rf5kwzljg5z790cgmxi5dbz1piy0lcnj4hn";doc="04zmcfp1xqq53wl41rw199yj47nf7l396qcnsp8dsrvf7d0n0pfc";source="19bgxgg9cdgfdvdr4kzmp4na0n6p28dq0iq4nqi849j4ij5lwmnj";};
 thaienum-44140={run="16awnv395nhgm8s3n7w1x7x0h32033258bb0jp81v5nrnmn344wi";doc="0jvggbnxinc81bn8glmyli746asqcpclgmvyl8gzbdarrnabij3b";};
 thaispec-58019={run="1inic6cpbf1kf1hi6brhq5fj3fkwn95cvgjqwh7bxk9dxk1rzsh8";doc="0ki2jl9spv70f5hkzr762nkcylplb9z70c8gdp97whqg9l9mb8bs";source="0j69dwrn3qk82xgnwabq30ab1pf4xs3sfnxgnrksgmhd0ly4lpjv";};
@@ -3727,15 +3823,16 @@ theanodidot-64518={run="1f1ixiqb6mn875rahrcl157y3bc6dv2i7vks7vbnchppjbfgk757";do
 theanomodern-64520={run="0w1ybshhj3y22ysymxg27apmblqxwwp193q81vkykxjrf4qn357p";doc="1a99wqmfr3adqm7rhq58kjg10q9bvf0gj44ly21nvmdl7wa0qjjl";};
 theanooldstyle-64519={run="1v5hkpspzjizpbcgbr5wjikwpvslq02fahqbdjpycrpl2q3zlc4m";doc="1wfqvav0k9vz7bs7wdh6fppijq904r76r6cwg8x5ffcv029l75ir";};
 theatre-45363={doc="1nhm56spqvryhmhwmzly939mzv5yv3398lh2lyfhf40rr02mzgi5";};
+thematicpuzzle-69356={run="0cxgvzld08bmyl89qvnkqf285qfgyhdmkq6aq8sk19acr9lljrzj";doc="1c693zjh4n4gjpkbrvw5s29r55b350mchby88l7pakhzzk81xxfx";};
 theoremref-54512={run="1dfv3pz7pjkazp0czzpzhga9j201gwvx785v3qvqasrvpa0vwyyq";doc="0zs8q0xzinp2ih68c75yj9mbjh1pmpqc77xg9hmj8n3gpf1kmmi5";};
-thermodynamics-63188={run="0774lspvcrbwqz68n2kvx4153a10hwi6p23cmpap226v1rq8zy0q";doc="0im7y0qrl556l70yfgxgmlv9h5zb4f0hgga79ig4dkd9bdvc12xa";source="0gjh11bsqy7zjmvz0n0316d1jlfnfx4bg97qdcv8z8m9a5rhhxcv";};
+thermodynamics-69086={run="1m7lhcbn6ynxm34y44j4hwb0y644n2vlm0r1yc08j1p9h27s6zym";doc="0knza3s977z4vs2cdp7ykk80104k487gbs2f7aa3qsbxqfln3jrr";source="1c1xs99a599l8km9x0ckcif32gg78j8pgva2axdrllws36wpn2j1";};
 thesis-ekf-60228={run="1r2fgq9ralrcm00gz0lrxm1f413pik1hill8x8nqfm9wzif2dd9s";doc="122vzng8dhsrpixwn40r9ddczqk9igmzi300hmbymy2b4ydhzc3a";source="1nizsqbj6nbf5qk54vvldhb6flppyn29i058jngldqp43r3xq8hy";};
 thesis-gwu-54287={run="16vb94z3svvnsxmv43d3xy6rz8ki3dmk01iz553q949f4dfig1l7";doc="0xfl7s0i4ni5lwxlsmlldl96jnhfxjyay99w3qc3vc4az9vdqfmc";};
 thesis-qom-63524={run="0lsi7xy3grxmwcj55s2m0cnkqr6544qn40k5jrj6himi7l1p82b9";doc="1sppdlgr859hnfjhjlsdv8shwzi5gkgmv10s8f9vh646cnqp50rx";};
 thesis-titlepage-fhac-15878={run="1s9g6h020ahv404mxsfvqic2im68qnvb425cyvz0bj2rwn1fwnc8";doc="0pjvm3d2l9715q50nbbza5l6vzhj6zaf9payimk1lr6k94357v1s";source="0bhf68pc8c41ih92sajva48m9fq7a05x4y9qqanbidvmb6jmvhbn";};
 thinsp-39669={run="19d23nm17nybk0dda4l05dsbs1695fk0kl86vc713l19mzw4l7fw";doc="139v4dmnbhsd3nqlp9qknml0glfmh1f9dg0nnixggf19lsayn27p";};
 thmbox-15878={run="16c6p3n4zc2726adj8z131h03gbzyhmh5bj8hzc286p96131swdw";doc="15mkfzmy0141k5wgspngbwnnldf0i1rvbmq2bkzcpb72v9vcj8fd";source="0lv5mr23wwhig6r9fyy7rlv2cqxlr35y3g89i938w35s9q25xx08";};
-thmtools-65863={run="1nwiv4b5mz42g4x2gi41n02q8rxb6mqc7g84p297b22j29ppcxfl";doc="0vr05h3lyadhca4wnhc4jbna5mzpm5pblfccbl66y09g35mf784b";source="1dmw6rj7w97d64g8fgi3qgmsgy3065d6r6bmd30vj57pqhb5dm37";};
+thmtools-67018={run="0msngnpdpqpw0skchd629v72wnd9pn8s1jijcyvqzwy88k8i8f2m";doc="1lyc17i46x1v7xhxl7qf8hpjn3y9r7da4lycpsfijmlscp9q3c3y";source="13zd5sx1nh9f61jwr2raxkli2y42w2dr23j5yjjfwfk65pd8bfq9";};
 threadcol-28754={run="1whvgb3901wciijafawy5pgnr4adpix2a6ph2v52kwglg68s2ixa";doc="0dky94vqbqrba5hsvgs1sllwy6cxmr6mlr6zv6qgn1yrrmjxs0by";source="1qd96xl0h8bnp5mqbh8mprdfbw1bhvp60dhj46hqyl4w7f61jj20";};
 threeddice-20675={run="1r5cssaj6qxv17n04pgvib12a7b7fnxfk3qbf87mhs1xpxsh6v1s";doc="0w7f2dfy6sbircp8dbw8s28s4bxbqnmz469c71v3qcaw6hgw3y2y";};
 threeparttable-17383={run="043vgdllz4k8fcclyw49515rcwl03albnmszbqi7sbsskmxnzck4";doc="1mlhxgv9q1gnkp383vinybzh95fd49dgz4x14jnjilhjabvhgyid";};
@@ -3747,11 +3844,11 @@ thumb-16549={run="1khi4j0as028c7fhzkdc6dmbgdyj45lbasbv4ksnxmf2kylmbhxz";doc="1h4
 thumbpdf-62518={run="1zj2733wnq4zydf22qhza9j0nywh6fmn8xd3dc6nwfzm68pdn9ic";doc="1fpbfz855cgs9gdvwqbg9pb3i3yl2xagmxbf25mra08ii17v3pf3";};
 thumbs-33134={run="15k7rn5fygvsrjln614jndldmq47zq75zqlv71f2gvr8nqgil93n";doc="0c70k96v2m6nbx9b8qx09pky9g0s0ipqsxy3fsn8spjjrqkwk0v9";source="1ns05c3ji4svj4x9y2qy9hn0f2bvlllbvg98xsr2xv7gylr2pkmw";};
 thumby-16736={run="0q3h6cwbw90adw3c8ggyb707l23qvsfl3dl8zrzhg78dm9l8q3gi";doc="1v1934z064ar7zgjpnpxvmc7bkaq080h0hka0snkj7kwqm6sfry7";};
-thuthesis-64628={run="03x6rrxhf3nwyy6pdn4382dspvgkxr67yyjvym7ww0v0l16iij16";doc="17pwhwzmmhhn6skn7kalx0jb4wddnljmnq4yfxd2nf6mpvcd2nq6";source="07d9ibfnkiigylz5b11fb6f57ciw1zazfagcj95n6qwghgs54zxa";};
+thuthesis-67127={run="1wnnl59l063ykjlzl2ln781w56w6s5wwz6nxs3wsx9inzn4dn966";doc="13a5vrnfnhhwl9kdjry50rs67kmcpdz7yh0qvfvwddv5kndjr0py";source="06ys99v2865pyc5xfrszvj1jc6l4kxgi37nih3v5s2a4k0sp3hnw";};
 ticket-42280={run="0qpqzff2hj01g2k8nq9vc91l4zvg7kx4p7nf0gd6ji9lf0q5caaw";doc="07xa7nf2qgvjq5pzaj7k75wzg2ldcpxb47ypx53swssz277ixvp7";};
 ticollege-36306={run="1mivwaf3ngmdr1zdkl9xif1rl4fy0b062r43064645idpkk4120d";doc="0xy35cggk34ziagi1m60ymckknls2wwil0wdzlswn0aw2zca9lc7";};
-tidyres-65789={run="0pkbch6z2c54pmadc8f045zggz4rjpbnf3aqr25lwjzkcys6y3lw";doc="0ip2s1f4mm959dm769a14xrnfjgr9y10ihf0213smagxa2lr4xaa";};
-tie-62387={doc="1x506bz3y2vjii6skayq67407v8yhh0h103j9n97sky6m4qizdvv";};
+tidyres-67738={run="1lnymwa3hbfabxigxfqkhmczigswqn84wdw8jdzj7khsv4zm47rk";doc="0gb1aayki8i14i9zl450jmy4ybbcdnv54l5s1b34ma7vw9nbng5g";};
+tie-66186={doc="17z5ik7bbf0v5ylq2v1rda6z64iz386vp56z7yrr6h1dl488kr93";};
 tikz-3dplot-25087={run="06ij3bk1aham4iv0wm14z9dhcq1v60qiv9n6idfcmjqz6m05cdf8";doc="1mq9drqg2z9khxfylsgpz32binla5abq88938jcjk9y21d46r31h";};
 tikz-among-us-60880={run="047mfp3z4m63wc4f7psrsi77qpc55drl1wdrk2dlzfykkh4mna3p";doc="1f817bi1m745c7cgl7r0yx5jx22qi6h2xwg8kb246lkfsvwlynnz";};
 tikz-bagua-64103={run="14cycyq0lshr61n83jdzdyjhr20b26fsrp1ximyh1phk958yxmbj";doc="167pi758hdi7chys2rbs1v1lqd5gi2nb1fq244igjr77v1775ifb";};
@@ -3760,7 +3857,7 @@ tikz-bbox-57444={run="023xrf65s1c4g63ggpmsdyckp6zspgjz1ad7pk7jf56zdnhqaxb1";doc=
 tikz-cd-59133={run="0xv75gvwlhax08mp1nlyy2kgi0br7wy7aahbaf9rfbj0idpcl5ip";doc="0dxsixn2n0irfqrgcp63h74fss1ldqlcvfv6d9v61asxsjdrzf0v";};
 tikz-dependency-54512={run="0v471rprwnqlhwvx0lqxvpsgh8ph16lbvrpcrynx2hx71n9daqla";doc="0h3mnxwcb1k1ilw9pi1xcwmryjpci0kwlaqfxx2i8lcggsdrxfxi";};
 tikz-dimline-35805={run="0mp6xg317m0dkrw73609xdn7r9hbf8bdmyp0bdj2xzpynpvxisxd";doc="05rikgrm1f0f0rx7ir1nn4cy3a93bwrck2xqnms26dg4dqddnrbk";};
-tikz-ext-64920={run="06dzrs98549bmc0hhrgkji4lbf7ly59bq63cw3dp791iaydy8d0k";doc="0x9ys9zsai569nahiw7q8nzds5jz295pg9da45dbk3wxpz8h61vz";};
+tikz-ext-66737={run="04ar5xpvxsihcv50n8z49dd76s4vlw401y106yi37x3fsbgfzshl";doc="0aigvf2a0b9lh6gj66gp75iag3ipd1kjf6wv5safpn2v1jfhadcg";};
 tikz-feynhand-51915={run="16bb4h6wbmyv9mz68sywgw18h2dcyxkmkcyjjshkbagimf3ikb58";doc="15h182ywc8ihahv76khphah6awpahbsrdi0hin578jmg1582rzp4";};
 tikz-feynman-56615={run="1kh3riwk5iksldsg6ljk27lhh6fka473k958q9781m65isdzhwa9";doc="0cjl1zvn2q39khh4afzvh6nh8dlhrkd6vn3i8n2ywv4xldpb2k0b";};
 tikz-imagelabels-51490={run="1xg2malb3ybgcvmr1gksgg93i4d8fvr7pqjky1b98n0abfxybxv9";doc="1fqkzfbbm4ckbjpgjrg5fa9ggam2lcy5gzvnhc4njyjxwx1hjcsd";source="0cqcbwccfq65zsbnkcdjfqwj9h8ndjhan1ghnzp9by8z41qj2fvv";};
@@ -3773,8 +3870,10 @@ tikz-layers-46660={run="1ym859l9bzzd2rack9kcbckzbpmqxyglaa0jggpf3hlbsgzy33h6";do
 tikz-mirror-lens-65500={run="0lpb87kidq5lrl79hzjss78qy5hvag2maddvwkh8idnccr06awbi";doc="0q4rp929pq600xi78yp0siagzxbrhx0cksqplr0h7xgn74yldrs3";};
 tikz-nef-55920={run="1i1l0rk7k6kc9vyx9jbpj25bkl77ml5ay1wvwff7a51rr8c87s99";doc="1nsbycqfai72xbrzy6vz7lzpywdavbcyz7x3h1kfhby10s2h136k";};
 tikz-network-51884={run="1mf196mmkg097slc5aslpjlpih2kdq5wkmcpznsyhg7s20mf11yy";doc="05dzfw2x5j1i3534qmhp6wcymba5mwilv2vf7vrw5fmrgd4h1gy2";};
+tikz-nfold-67718={run="03q6hj8p7p4f5sa6ipsw456q5g3326kidkmsiil0sjprklsm3w9i";doc="0xpc9nik5m90kqrpmg254mcpa7qca0fl4n4832pax0j59g9f9z1f";};
 tikz-opm-32769={run="04ch55a4jvvif7c74s8bbsq0bkw3v3zjh6wdlmij30cfyxn114jg";doc="0ajrvamsj1is4lh0xf25wjylnjg8kd02b7kwj40nq1kawnp0hlxb";};
 tikz-optics-62977={run="0r5z7vp05s92hk87m01vcxfa0kkvfmzxyzfx397b3lwmlavzws8q";doc="1zjlpblczvr9390fmz0vh8zf0pbf1zc4d01l4ykhdpvljf7ndrmd";};
+tikz-osci-68636={run="1rxkdljz3lq6lnmpr56wyb7zkxrcjzkg6pi3qwrgqcz0njd5d7xl";doc="0sn7qhv2kdkiivigbkhqqpgj2kki8xydnkagmrbk47s3bnvzmhqz";};
 tikz-page-42039={run="0971kcdlavr24lkf9wdzgwb97cf952iw1d5ls6zz7fsfj6pigqjn";doc="19g4b944wzahnabpw2kighd1vr63c7im3xgcjz3l53yrz89nhjmk";source="10v67pn2zvpxl3817h1rvn0y4wb7dj07p4nv6wf1jhchgvmb8bdz";};
 tikz-palattice-43442={run="0pfp30l373li523l0skr52fa397h2wkizvggsls3kv3p087j16an";doc="0krdfwivibibgpxsjnlsl11yppmsynanj2lgf892izxj2m3hld7d";};
 tikz-planets-55002={run="0gjkapcls19839jrjimshd3cqdl9x0ld27i2d51s7k8f0rcakkmh";doc="0xx18gdj4r9jj7qvwlrd237nhcbazprhqgzn6m6cy8m36xy6yc09";};
@@ -3785,10 +3884,13 @@ tikz-swigs-59889={run="0cpmk783m9qf4wq1qsw4hy3azjlx0r47ya5ijw4ss3l4nr8i710x";doc
 tikz-timing-64967={run="145r878hxqfx1sdn4hdagmcnfx8xqcihfz775zabn5sbzki87ywq";doc="0na0rjgnala2lyww8chnkqyp26c1y2siaj7gqh6h8fjpi5bpamdf";source="17wzwm58194p5jlwb74z30864q7nzg9fi4q4dbcp26b3p6kn5cxs";};
 tikz-trackschematic-63480={run="1jbji8zkqjwpf1bn25p415n7cwz0a5q2606imyj8bbxdzp0r8y23";doc="1pvp3a9pgszgb2013gkh1z1fm8hpxa4z6ssmr1hwvwj7y48399bv";};
 tikz-truchet-50020={run="00yf9044lpsazd8wnmcz39lnazrxpqd7lpyr8ss24gk9gm33b563";doc="1vlsyyh7xj1fn6wkafh7ps4ys439n1lmvmgk63pya18laxkphxxk";source="1zbp1xb9sbbnr4iiqgg352ymn9ybfmkwmwd49r1ws3w7iy3qdvrz";};
+tikz2d-fr-67239={run="13mzq1azxi34lrkm4rycsfhbcm8cap8pzam8gwc3vfa5sygkczhd";doc="10lv2v9j65bq9fj3yin86hbbj4bvlygqc1b2sszjabsdnmzbw0yd";};
+tikz3d-fr-67774={run="19js2ypl2xlzqb2rspvrx1a73w6wl9jcf6pcm2b0i19rwfp93d39";doc="0kbil2rvy07rdva18kb7krd49mqcrrsbmh2mbflqxagycpy3vf7a";};
 tikzbricks-63952={run="0k15zgfckasxf9zbnh3m4bhwa22pc1rmx930in2k9qskqx41rlrz";doc="1dmnx38k0b1ivs8ay74yhh3pmqi3m9s12cxakfhnw57ipkpp6af3";};
 tikzcodeblocks-54758={run="0q10q8gfbdw20ysv40pj9c1ks4mnb4dqvvz39fvyji3f4s4xd60n";doc="1imd5qf95ykqs89zqb32yg7p61in242vkjx5wv6r2xh2dkjpvv9h";};
-tikzducks-55713={run="1sdryfjchphbk6w838pfn7ddqxg5gq4hgh4k7b8k99avnxkckll7";doc="14rmpx2xwww8v0lpdgv6nz0kp43w1wlxzpr3i11gi1didd78nbm9";};
-tikzfill-63947={run="1c4z86r4jhygylysqayainpz5iwyrs3khdvwwi2kmk60vazp4x36";doc="11p6afr3h1y9yqfsb7dq0w51gjpgc4vc3p3y9kwcn3kwnvygqvh4";};
+tikzdotncross-69382={run="0vwxdha9gpmdv4l61wdfk5j3mi2facrv3a3azkgrfn5s2pyf4m5k";doc="14xwxm1ckicip2dwc7925sfdnlxdwry7h12fixs1g4l0vmh4bcim";};
+tikzducks-66773={run="1mlj8h6wk80pi8vi8ggj30mg1gcdwdfncif53p0mkyvmvjfin3px";doc="17c88srkb48y49icbqv85kih5qd2r222559a6g6xgbqvwa3yx1gq";};
+tikzfill-67847={run="1igbzzpx6rwqklhnalzpsb1rpj7l4mkrhwblp8k732nfqvj1fn0x";doc="1dl033xf2waf0j40c4whci5qsyxk4346353j43vsrqy7lgsh557b";};
 tikzinclude-28715={run="0s0mhfshfzl28z6lgwn7f540pbmdxl51gqf7nw1s88738mx3m4z1";doc="11jj75nnzw9m3i6nndbfscllfxzn5bd636s85q17gds03jbqkhfc";source="1v1bvpfqhvn3hp3zjx3sqv4kg288aviy1b9zl3s8r64zmai86bfy";};
 tikzlings-63628={run="17wgali1pawsb6kz2w41a27i7gj1sm4h8ay8i8q967s8s07kxv5p";doc="043sia2hyynbwpgh10dfca9gyih97z8hlxpi1390a28wnmyvcbwb";};
 tikzmark-64819={run="1p73c3ivn3aamrzzzw5y4fmkfy7s9qnvw4q64jn01qxzzs1vbhdl";doc="10fwszi7wsqrh6kql40s6w4y0jji8v0q41bd684cravhgg0yjc1p";source="0mbk2xvqjpn44skvdgjq43s1j4814sfn57xc1ishcwrrmidy5pra";};
@@ -3796,20 +3898,23 @@ tikzmarmots-54080={run="1m33y48cs82f2z19gwhr89qyaa9n5qlrps9ash5ijjgra9dkfj8q";do
 tikzorbital-36439={run="17g4bd556kkhrxir4c2q6f7qxa8rigkf41dj979nb5k3a7w4k3b4";doc="0h1s5dnyv8n4hv608c5rspdgy2h10ilqknddai779h9biwhfzh3m";};
 tikzpackets-55827={run="1kidqyd1d7wvs1f3cp6ixp397ipaj7jd19djhy3q4dvbnzq1xm4b";doc="0rlpz3m4vsyin6ckyjkxjp9a40gxhhi44z18hrw2blmp0mg011v5";};
 tikzpagenodes-64967={run="197sijaabaa3sf5syasf4ciwz8hkgy2pyr7lp78gzhlv950drghh";doc="0y9ik1r203inp74hx4xznkypw0p88zhg9fq6b9205i053vvla239";source="01bjvk944nlld4zbrld35n45dzljqf1rng83y14ipn3wcdxa0plx";};
-tikzpeople-43978={run="12i0m8jilbl8ldji9xmxm5hgsl0bd5vkjly1ykmj6w2rzgmjfbbp";doc="1a3cjadvnrv9hslwgihxv8z16awkikinv44zcj4fd5drnqjsvcrq";};
+tikzpeople-67840={run="12i0m8jilbl8ldji9xmxm5hgsl0bd5vkjly1ykmj6w2rzgmjfbbp";doc="1a3cjadvnrv9hslwgihxv8z16awkikinv44zcj4fd5drnqjsvcrq";};
 tikzpfeile-25777={run="1rwv1i6yb0jd5gw16db3kqar4ykzbwcyw51hv781iz358hgww5mc";doc="1530vkp14lpv0hnv8qcxalibsi1pkcj9xp1pa87lisrillxs7kwb";source="180cp8vp26shmnjxg9qs9n28v4xy0qhqgm1bvbkqrpagykzzhsrf";};
-tikzpingus-64199={run="19f6drnmhkm6h3ga4bz0ifcb1jgdsm3rrgrwjs3sdlylr2lfi1yf";doc="1xakjxabm6vb0gaa5li3j0j6xyydk54h07hr9id43ibklrb2gavd";};
+tikzpingus-68310={run="058v2b6scnz31p0jzk4i1i8v6a1vb10fd4kgi0izd4pw58cjj31f";doc="08fi2mlzwvdx8i4r2hf8l2lx7j6b4phpm8ihwklfi49ha5i0z2n8";};
 tikzposter-32732={run="1r6pia3sjl9xcixnsr5pk8cma4f18mvpn60dxmpzpn2nn1sk4p26";doc="06vy5vmzrqhl6zk6z9a4kyqfvjqc4s9pslvl9zfl17cdqsfvbdf6";source="1idiz8izn9m9h7kyiavw836v9x1vzg58vap42wpj7yd74izwvf1d";};
+tikzquads-69409={run="1a55w1apikxg33n35wwi3ffafnlhgsnl5w6fxq9qin77qi5rq8l5";doc="090fyhby42m0zlx28vm9ix5pjgkmv7ml0ja6w1kgn0vd63q02i4c";};
+tikzquests-69388={run="1l1d23ky7pvcj6j1g52p5qsdy060qbjws4fp4i7j38k6dvyrw2pl";doc="1bvjy5ghc0arx48gxc3sz7z1fz02vigg5cxc1g75b6pcn1l5x9lf";};
 tikzscale-30637={run="0h8hpk0nv712vydxrzyhvqxrrqb34hw5qjgq9baagqj42ka06qfg";doc="02sz63v9zxr58417jn00ypm3myga7x29q31xbnz7p7mmq5q1r94h";source="0rf6rsrcpapmhz3q5wkgcivhvswy1kb3mql94xs372qc08bxsi3h";};
 tikzsymbols-61300={run="05a3szm1xgsqj766cwwf8ssg1s2jd0kbvgzv6m0hlkvnpig13y7k";doc="06wkvldkiym2xlz47rr4f0nhlbygdqisczn66d41lsf59v8036lx";source="19jcl91qn62hr4j6fcw6a6dc0qhpqqfpzqb1d8mwibn91dzad00z";};
 tikztosvg-60289={run="1gpkypg9j6iz0i0f77drk0p373x2vx8z5v6j9wsb3bggnf00f0yi";doc="03f324pxiwyxgnsvw83wi8sh5ya633a1d6833kq2zl8z1f51vvfd";};
-tikzviolinplots-65687={run="12vmrv3hp4b3dflhn7c2gida4j7m6ldmw7j18kagvzw69wml3wsp";doc="1f5nfffjm1473zzvfnmillkzy0d3b48lcnbqxclhlbrkxp8hiqq2";};
+tikzviolinplots-66659={run="185hmygifmnydjfsg01mwshzjx6d80r92j7bh3djpkslxwp8pdyz";doc="0asisvkbf7gfwqn6wzyjl574kysjz4z088ph4pqggy4znd0yqljr";};
 tile-graphic-55325={run="1l87pqfzgyr8apcs9f2gssf5rh1mvknkr5jim98zj5f93ca5mjpq";doc="0rq35cpk9l7rc30l1hk55r7x07f96ishr3dzdi7x4d50gv7675ah";source="01xqc704g5pqwmlfifzvv61nypgvnabxv6xw7ljgv9vvpyvfh0ni";};
+tilings-67292={run="124gj42waa50pv8qm4zkal8xxr5d0kvi9wf9qlrz0chhm1xk4v15";doc="02bz0wpvzwf4f97g14rkv25x0ifxxfwdkgi3nbv6x2djbm79xjd0";source="03zb3sfygc8bbdl5z4hz7gy7wfnl54sbka9b8w7ywkx9wgymvkz9";};
 timbreicmc-49740={run="0inffnb824kv9lswj46b8p0zb36f4s3pfix4m7x7v0d216xa75pw";doc="05x699cyrkfnygbwfifzz4ih0g5nm7pzlj6ygkh6pysyzxkb5w94";source="0hznll8725wbjmayxilg0hvjw2vf63wj4cxmznvfly9lk8z5zh5m";};
 times-61719={run="13g41a7vbkvsf7ki9dgl7qm100w382mnlqkcngwgl3axp6s5s8l0";};
 timetable-15878={run="1lnl8gi2rrzcy688qb8b1ff9yivwxdqmbcfx2ph49aymkxfym97b";};
 timing-diagrams-31491={run="04yal5fdbwwdq5i7frmvxm0z7zy379gpwbc5383xn0nfdyzrq91b";doc="1w3qzl1j3viaj6qi50qcyx51w2ms23j27p17h526iz11x39w0gw7";};
-tinos-64504={run="0czfddyibqn7g62j3kqqvswwfdm1z6xwv0k0m43g30n8r61a0qa5";doc="0mg2rjy5kk7gd05lp00zh41sxapmm0bvl950r404wy1snl17d23d";};
+tinos-68950={run="0czfddyibqn7g62j3kqqvswwfdm1z6xwv0k0m43g30n8r61a0qa5";doc="0mg2rjy5kk7gd05lp00zh41sxapmm0bvl950r404wy1snl17d23d";};
 tipa-29349={run="1vax0padc42ks1b4rvl0ikfqmb5i04ii27k1711vfdbzmg87j217";doc="0wwnbarpvjcq8ibbn8sr0zqrlg3clplc9nyh46r5gsr06qgd1prf";};
 tipa-de-22005={doc="16gwc0dpdls6s2vdl3hmd6307d88gfzsa3kbw3vhl0z5iawvwj4h";};
 tipauni-65817={run="0qzwx1rd5wqrqwlqrgd7c8czsvr9hy5bb2dljf2xqnm0c1c05496";doc="19azyp11a949kqkwph7b47128fdh7k80lf9ia34ik7a9qw1gri73";source="0m5kfcjk6c0mm40mqbsfnp1ddha617d4sl44dv62nj3rkj3shqvl";};
@@ -3820,41 +3925,43 @@ titlefoot-15878={run="0c0nhhxhb3hmvg3a64lr5npbqsmrmprqqj9pic91j007k4s1in4y";};
 titlepages-19457={doc="17ib7rpb2dhb2m724x66fdzddv8cqd808wxy5kkvx0vb3rl27hyh";};
 titlepic-43497={run="1pj4mavc06r5ghcvyjjhvn7x2xrccgdfjr3961al7420ymaqb726";doc="06s1r8xy54129y7fvzaym2vkfbyw2x31r91i8cyxyra0chzh8ngl";};
 titleref-18729={run="1y2aw2m7jg7l9vcr35nd2qpbafyff1bc8acy2cm9k7fcjm4rcr17";doc="0rv9hsx5p460pa3ry50fnrcb0kf08rzdl7bq47n5nhm8frpmczad";};
-titlesec-59845={run="1xv4ha82h5mqfnfk05n6lifl25kf8zv27ps3mbwwjds0lgw6w52l";doc="1k4z6gvangc1zz9lpd0ax4b9m4wf6g765mgj5wdyjdafxg8k52ls";};
+titlesec-68677={run="0y27npwraxaryl2z7mv0fzkdci8whq8jz7b2xlk2n31slbfvksb8";doc="1yz5s63bbpkiziwggqcal266444nm03fnr7kwan14gswmqqbkav5";};
 titling-15878={run="15iw3giwxg658pzb6basjkp4v92m3qvzk1fcarnzikc649bjcbch";doc="1r75nwakbkwf32qva6icp3pq3y8bgfl6cqw304lcw8p6bih74y5j";source="1jdgyn9zyf5rwbaz004g85rr2jpd5gi5iyn111s0r22ml41ci3hk";};
-tkz-base-66119={run="1hvk92fj8w5lnwi1g16mmgdkinjscpcxbhf0n37sn8l3kpl7m9p9";doc="1lhg3zrhxhzrzav52293jn764kyv0nzb47b97n4v60v3ajgqw5r1";};
+tkz-base-66115={run="1hvk92fj8w5lnwi1g16mmgdkinjscpcxbhf0n37sn8l3kpl7m9p9";doc="1lhg3zrhxhzrzav52293jn764kyv0nzb47b97n4v60v3ajgqw5r1";};
 tkz-berge-57485={run="1c9kgzsagh5ww0zlwywpddwn3mx0wrf8yc627gjap3f7nyyvixn4";doc="07bsfmh9qyn8q9z4brd4si1clmw7sn2vh2nr8idqnm1z1jqdnq40";};
-tkz-doc-66119={doc="00awi2m8ak949r6bxzw1l69fx8gjcn4kmrr0q0yp8qghga40c6n3";};
-tkz-euclide-65724={run="01yd3jrdlpynf6qjknrdi1nkrnzmzhwg07gq4abb2sp52l0d1xls";doc="11kq025mid9phizfknq0yb49kykkzrvv4z3rpp93cfh3nc10qgbb";};
+tkz-bernoulli-68780={run="0ifjig10clmd3402y9kdpyw1vlwk9vjakanjzkzablm5zzdr0qgs";doc="1iv94xglrk07kg3jkdci5nixrz96gwasgg5h0fl345ph9rdalwx1";};
+tkz-doc-68665={run="0gf3zjnqng90kn9341xdchm1diav93qlv2910mrl1cc7vqfp47wf";doc="10p4i3xnbpyhzj32j3mi59pzaisjhj066m9np4ankzizgwv9x5in";};
+tkz-elements-69213={run="1k2ypgil01w9d79fswb1mmckb6iznc0da8fhpqax1lp7pqxhhr6a";doc="0baqnqhlf4zc22d4qh8ikzimhrwqc26f7nwjwmxh4n5k6gwwfm3d";};
+tkz-euclide-68747={run="0jb3cs6yqngv2g30sp5xw69fmy620q40w0d0ny65q2d62s46nrw9";doc="0y7x17i9dc3yxa7amgl4a61kk8b0mbyrn1v7n1bsbhva150087mb";};
 tkz-fct-61949={run="0hlcxnllmkhmxl5dwap1sb2jg822bz4glllqcv59dx7jqab5bv8k";doc="1bjkya9ssr6m4aw6rd64nniwffgz57ikz16ciba2x149f39pkcx3";};
 tkz-graph-57484={run="08kfjaniwrlw23vmz24yq9gbdks9fwcf0g4jyy98ikfqh9phhhs9";doc="1drk9va3bgq62qfkcvp5z30gvnscl7mbjz66m27wmgagb2ki2f0q";};
 tkz-orm-61719={run="020bi7dgjipd2ancqji6fa1zcf9lh9d8n4zbacy5l5nclxfiphcl";doc="1zgmsl11cf4fgkfilflw8c4wrcfwnvk1f88l90hwgclfj5q0ashr";};
-tkz-tab-66119={run="142fjk2kdv02b7whr2m5a53z6b7rhh2zfv2fi55q1sy4xaa1wia1";doc="1p0h1l1jca83j27wa79ncjarczissgp1jh9f9ylqhbi7y5mk8abw";};
+tkz-tab-66115={run="142fjk2kdv02b7whr2m5a53z6b7rhh2zfv2fi55q1sy4xaa1wia1";doc="1p0h1l1jca83j27wa79ncjarczissgp1jh9f9ylqhbi7y5mk8abw";};
 tkzexample-63908={run="1cs6x5v0f4dbwrsmdq6wjcggc87hc132bp0faxd1fqfhgapd00mc";doc="03cn9q2qq04ni6f6kvrcyy0js718bpc3di37znr47vhh419vpc5h";};
 tlc-article-51431={run="1kzizgzmi7swzhjq9dasz392wga0w1qdb4x3x812lbshzg235vyh";doc="0w07p4rv12ila4ix4pymysbig3yl1apb6cxmb2cp9ziwv9c2184j";};
 tlc2-26096={doc="1ysb233rjb8gpl9s35qql1dny5rj6fn8ssy2dqdqsn5xj9pdasyy";};
 tlc3-examples-65496={doc="01ny6r3ycji0af0cdywn2fmxd0fyz3y7afdnn983a5gy1j9rza7v";};
 tlcockpit-54857={run="0sm882jxczx8q4dvqaxnyb2wzlpxd249ayv77gj9vgq4lx9v0l27";doc="0zd8hx3f6jhm5rklhr5dxb84y17p4rbgwa7wh95ab5f6n8i5pgwb";source="0kldzbbyjvj0n60jgff8y6y27nxnzihjyq10gnx2gi62qn9bia7i";};
 tlmgr-intro-zh-cn-59100={doc="127fad3aq66rnn4jkccyw7qc8pdcwapyjb6lj9kn49nqcy3jm6nk";};
-tlmgrbasics-60588={doc="1zn4xlmichd2r6vjcasysk0vd26vrn2drmc4ng8hz8136bq5zb71";};
-tlshell-62795={run="06zjawsk91jknic542k9gw74pdfb1lv2iil09rpv9fw2i58lxsg9";doc="1h5mk09sakbmgsppl9fnry28xnzqya3bmp3r1nkzg44cv7kl98vz";tlpkg="0zvpmmf9dnjz64adb4dn615qyd1d09hqj2kvm898009697r20lh7";};
+tlmgrbasics-68999={doc="0yz7d8dw071nawgn2s38da6sp8zbrd03zzsgisfx7yx9jp0zzbpz";};
+tlshell-66771={run="17nrf6cwxapdkdccqr2sp5v7fayd00qcdczzznl7ppm98rsz9p36";doc="1h5mk09sakbmgsppl9fnry28xnzqya3bmp3r1nkzg44cv7kl98vz";tlpkg="1dvb7jjnmdh0k4dfkm4f89zapkjb31z2364m0vapmvfq4z84vpyq";};
 to-be-determined-64882={run="0yrs04ik67wj1wyn4cl3wfabczvz3ga3h7sfbhni9x4438br48gh";doc="1acxz8nala57gnc78r5aswiwhfvdckmvkv4xiwgcznb0c217wpl3";source="1fizh0inczp818vdwlvyawzvw8s0i48mkpgjydfcmwpsbf8rdm8c";};
 tocbibind-20085={run="1swxyai6gqlz8zjah2qnz9c5dkd1smpk163b56rba0kx7zcmvzc5";doc="189qi2qyp1nasg9w902ydk7rlzxl2qww9w3p5s3p9ywchvm1l9cf";source="08sr335sgs7hrhd6cbdc4dh3f8m9fpplv72fk54y57rx59l8wxbs";};
-tocdata-65451={run="02kjspmrr0wla123az64wxrfzcbyxwp8v2kqpk8c9j045v3vv625";doc="1lqy5qw88n2w6hjgl4q0a47zfrv0dmzipb537skw8xgh50ckkda9";source="0x38b040ldxyirmg8pxpjxry5fdjc91pnldhjhyp13v24514wk1b";};
+tocdata-69402={run="0qf3w3021053akx5fzgia258qw25bi0z8aqi73wwsj1prli6mv10";doc="1zmgdlivs4jvhpr6iaqykdgac8v5lyfp3gy9zd72g9l3s0j86cna";source="1y3cg75lj5f6aana3hjicnrca38bq3nbql8sj51akz509a27yl4v";};
 tocloft-53364={run="1vp3s7q0fcyfj2ksk61gxdjjnwhd62dzfd94yp7y3qfy7x8hyqxq";doc="0zjs0ldib6hm3b9msb5x7r64ddknqwf6kkc9cc82hbla9wshq4qq";source="1764cq3d9ad5gy3qag6f6wxgnna0dhk3rx186jqjpqyqli8b4lgh";};
 tocvsec2-33146={run="157m17r777cfqjn5p4j1rbj10ysbyms87jrhk0wjkahag9rgny1b";doc="0dvzcynpfn9fvfkks5idncgbdqbhxj0vp1d3mfzymhiw4sds31xk";source="0gjpdjkl73ip3jkhr9sx94mwxz3rvxaacn553xwa9gvk3xh5rav9";};
 todo-17746={run="0chmi45gcs8y2zh24072y37g3z62ixpv8cg7ck7knmkzwfzv5i13";doc="0n6dy738cj08laf4cg4y0sadzzzrz9wa9m87hwkya6c95znl0091";source="06xpbraybhf1wbl979653waznvgq697jq61xcpz29gn159li0pdb";};
-todonotes-65699={run="0r56xifccy26k5xghfsrx2jrywpwjx4hnirj2f1h6j3qhkycdd4d";doc="01p6diqs6pg1xxn2fx4fs2vczjjnlwrb6zlqibin2qazlnni3cxb";source="0sn25wgj0wnj50n4d6ybv1wnphchj00lxdb1x8yrj0i2jxgix195";};
+todonotes-69319={run="130szqdm8xx7bqqqlx01wgrj6x2wfqzynmf7pjsn953rvyd2da4d";doc="0920zvilbcjsl707vyvvdcw27qg1hjlrmjfbr3229rv9n4zd4fqy";source="1xx14nww9nh8iv0nxvnj2iwj1wm70iqfclgg39q7jlywdzpp7h0y";};
 tokcycle-60320={run="0cl2m00pl40pi6ycw1c1kndaqinrqml5gl88kh5d00dr7g9p50rd";doc="0yy8m10q7pzwqbf371w7r2x1x872idjlrh842vkxk51ijb1441a7";};
 tokenizer-15878={run="04b3jy76qdvbq9c6yc0lmq99jqcprmcfd602zm6xsr0lwmxrp1cd";doc="0lpbfdvmib9ykdcwrcd5inpibgkm99avqyn94zadbasr54k62gna";};
 tonevalue-60058={run="12jvvfppr9zqaqkqm1g1nqvxikqqg493a1p10z0k123cw11877xq";doc="04gvjaxqhqixs13x9y805dgsxr62zb4i1xmcgwr42n2a5qa4dv2y";};
 toolbox-32260={run="1qpbidjji1rj056700iyrbhgmqvw8is5kp2mmm5r9f455dmgm390";doc="17n7dxi0j8razw5s12s4drz22wd63xffx1x6w0a4jhiq87na4jq0";source="0l9w43kp3h1mbas4pab9qk6b18ny5r1k8vmm9nq2j95gm7z5p77f";};
-tools-64892={run="0a0z57saj09abxgxqgy2bxq6f81lv2d63rgnyyrcywpzmmyaq91a";doc="0shc7d8v84z7ryx8d34cs6rx5xj86n9xp2nrl6rr5w4wn3cn47m4";source="1q66d55fc8cakplsbcq5w271pkxqaavsjga3hpajrpi2sgbj49z1";};
+tools-68941={run="0hhib64h3l94c98v7x505gvc0rd1z8cqawypkbnvlycmw57804jw";doc="0r1c6gr5qcrxyy3xnxj1rrwnzfsqna9qzs45gka09i23r6x7ip8y";source="15an5rw7ciq2lji49afy28z0dyjid3sbf66pc0lfs1dxrln2ijrz";};
 topfloat-19084={run="0md1db8a7ifx2vg269y2dhcf4l07qa35jg57x4q9nsn8ac9gy4v0";doc="1q7fssdrg5r2i51b722mw6wydd17qd8b41iv9rqa7s8r9brf8f8i";};
 topiclongtable-54758={run="1p71kg4882rjzlbq9rfgvppz532s227xs2jmg8zbgplfd3j96mnj";doc="1q12jsaxs9d15qc19wjca7xhq6qajdp7573lv9dc6y9il84r1izs";};
 topletter-48182={run="13ggrw7s7k476sp8fzbj5if20wa1x75m68ip17f1srihnfks3903";doc="0f45rz9n6fsg2c429n3hmzqx4cqv9jvrhwgmbfhznn6zrlip3qy8";source="0p6gvk4xj7bsazb7ipfgp6by60br9lyha53lj0z7rz16f7f2ar0w";};
 toptesi-56276={run="00qd8ap3dgrj16g831458m2kp0jivvbvmya2xzcyp560njsvqqca";doc="09hnbj0g7x76m9lnn47z3cjjnlbbfmapmln3hi6ykb6lh534c4wa";source="1nr54n7hsij9rjn54wgnij16xgay0dda2h6vl2qc44s8yz892jc2";};
-totalcount-56214={run="0zd8h2sanc98qzhgkzgaxjyzfh969lb2935778c80n0w8g53ipn7";doc="1cwk1dnpin4zz0zc4rbf7a1spz5wzvza3nc9d4jrpxqbzgs36nb9";source="1cp1fkvs1gbif9brdwxd1dyx81ylshayq6gad4fw6npzqynppk6f";};
+totalcount-67201={run="0zd8h2sanc98qzhgkzgaxjyzfh969lb2935778c80n0w8g53ipn7";doc="1cwk1dnpin4zz0zc4rbf7a1spz5wzvza3nc9d4jrpxqbzgs36nb9";source="1cp1fkvs1gbif9brdwxd1dyx81ylshayq6gad4fw6npzqynppk6f";};
 totcount-21178={run="1mj04hqxi81i1pwjrn10ipm6b0xwv2081paa4kvq7yma8g2kmi9p";doc="1c1941vfi2pf0wsbfhhzpahyxjzb4jx4lr85k7g6r8vk64qahy9i";source="1f6r2ci4dqri4fxd5mwmfmqmw2k5jfr5vzf2mazynixxp809mjwq";};
 totpages-15878={run="1z6brrn4kb6w6an8iz6das0yykwj2cbaswa9wy2p3rfc0w95x0ms";doc="0nm7x3rv5rxg40k0xls5d3s5dqrpc8vw9g93sa3jkdn18xkxh2zs";source="1b0glns220jsmn1607d5f44k2lijjp95cd0dkxabdc3p576ipmmv";};
 tpic2pdftex-52851={doc="02nf2fg4xzh8lbbddvm44qyvcvfn5b7kzcyg729a58l29gd88pbs";};
@@ -3886,24 +3993,26 @@ trfsigns-15878={run="0g1xdyhin39sqbgi7x5m5r5786x2822sf49271arhnv58md7ns76";doc="
 trigonometry-43006={run="1z4sk50nzdplwarbv7ha3gi5v6g2sh2nf85ipdz2rbj3cnz0j53n";doc="12pm2720vyk1c79qbgk935nridg3z48cbzmzbx9ak66araz9y901";};
 trimspaces-15878={run="10rx6pcvwn1lzyivn312j76lsrw3lb40jgzyj861gl3r3pcls0nw";doc="13zf5bz4pp0lwp44kxdj1zw44h978bdpaiskbma752603jlznaqs";source="0nfwqm4a7c1ks5sqypkwmffqasjaw008pxjb5spr49h3sv7sp04w";};
 trivfloat-15878={run="0s74sisq1bg9n593az435chspj55ysx9b0vqywl30mk60hray6zm";doc="09szjgdcy2fc4ddkw09vsa2am5m98mgm606i6s2nrkjgldm0x4ap";source="067ab9d2vc3m950587iqcfismjnl8fp0jxw0ssdsz3gqxys6vgz8";};
+trivialpursuit-68971={run="0rs7bf0wba9i85sgnxms4sng83y1ckpz89ibs93wqh3fappy4w0i";doc="1zci9nn24r51fcbz6sqd81zk8zad5v45xyi6mminq0h3c9c6lysz";};
 trsym-18732={run="0crl9ik3bd9jwvy6x9sl102bvp5pgj2rq9mywlrcpbxrvvffw1ab";doc="1pd0r5j26xj63qvj7mrifcxjrzazdi702ang8k6npq0cc8v29iar";source="06aavqqczg63yc0s1mwry4nd2ml94424a2qxswcz60y57m68yq61";};
 truncate-18921={run="13hzrndx2myazl7f30i736zs8vk12203hv9rskwncl77hxrqqqpm";doc="0l5hgx3207h54s4n5193zc6ssj6l49xwx2hd9jfpqh1f73kpn6hf";};
-truthtable-60717={run="1l2dj1g6maj8lznpwz3q9qk1nld0i573npk18fm7fm2368krrnlv";doc="19kb04si61dp6fdx7mj96q842fhlrqbd33lvkp3fxwz3jls7al2n";};
+truthtable-68300={run="0cas4lh1n7y9z7b0bvi3yv6xhm3klp4bqdmqz42gh0n2vz9clrvd";doc="1s3ff2pjyls5z1ll8m3x5m0h6gf2is4pnlagiv3y87nbs9sx359d";};
 tsemlines-23440={run="1c7sjdrgqbjw6f2s3185k5rlkig643pkkahjisx16h0akbbdm4k3";};
 tsvtemplate-65333={run="02v9b1jvkynz0gl4czzizs3kj68bkwx7m5xfh5abffcy74f9b96r";doc="06ph8853hvm6xmn6zcycim7qrmr2a4vk702sicg6bh1bzcw14cvj";};
-ttfutils-62517={run="188gcwglfgl7yi4026n9l3zkpgwx034vfr4damxpfr6n630rixw1";doc="0n8jwjzm35hcmk2k677427bszp72kpwgx49bm95fng8br3i439al";};
+ttfutils-66186={run="188gcwglfgl7yi4026n9l3zkpgwx034vfr4damxpfr6n630rixw1";doc="0yabxx9pq8rj2ibzqa19ix7vz5haydbdp3ylinanzqgafrjd5pfq";};
 tucv-20680={run="08m364pqd2imqfi5jalxjrwbjnphjihnmlpnpqg8vaz2rsmddlh7";doc="0rfpmrlh7wbpmpqp5j6iai3g9x1zkhqvwfnwjfskknx5an1ad79c";source="1s0shpwhb7q4zhn6kq2010a4d3jwck3liir5jn5h0gzqbsafai11";};
-tuda-ci-65254={run="0dkksjn8xcgzrsqkzbrip6jkq55hzr4niizr0xfyvlnwb82rqanv";doc="11n920ifz33w3s317v1lz1kv52cv6j2jk4jrr6piv8mbzb1jxwlj";};
+tuda-ci-69351={run="0cblzjymh2012wrkxyh09wwax25cysiz5ph6k2pg5qjspx1a98cm";doc="0q4lj07kd9h1cqsyvb4y1amdyrabck16a9r0pwi4mkl1qnlv8dmg";};
 tudscr-64085={run="0l7m9n8n6ikd9f47jc1xp8b1ik2vq58samd3g1v0m7f48jvf36f9";doc="06g1h7l2bbabg87y97zifxn6401hf0j7ia86scgjkpjbx7p2dj2w";source="1s4y8cvn1iw77b2qklbbnpm1jkjc0sjnkvsa3savvcb7zhw4asa0";};
 tufte-latex-37649={run="1azsqa3qa1w2k0r4sp83xp9b7g1xjw47wv9l0sk065zq0bdjr9yy";doc="10h41jbfmjg7p8k3m98l2jyhl7365qym844y8f38g0f9sr1pyxvn";};
-tugboat-66516={run="1zili0n3nrn0370c3xcyi4iwjwj3d1ks1s1gmgzr36md3fi45p4g";doc="1y5n1pqaz4j5xjjf74ld2nvqwz5sqa216l9fkkpv06i8sj5jx62v";source="1lr1wwpid03isi1gck91f8d6h2gqzgl42axf1lb3g3j0zja4hlr9";};
-tugboat-plain-63386={run="0km1a0vaynd4afjf6p18xsvgnd1g25nypsdvaz6gr2jpm747l31a";doc="0jiq0jggz7x6vgq5szssq1nmphhypa4zicq2n0x81di86fpnj785";};
+tugboat-68694={run="0yj3a32shn70svaq3pjmilw9ah55rg4z3ffd47dz263qqrp5kxm3";doc="1skr54zc5z1vmmv6c9yx1c7q69z5y6a956m917ckb67shqrvsgiv";source="0af24yivq0dym98zzpz1y2xy1l4k59j627fiiz4ny3lzmgwjszg1";};
+tugboat-plain-68695={run="0nk6ycvi05lfbmr2grhdfrgp3d3w8d5di1alc7gpsqfimxh8d89k";doc="0bzv0zl27vjz4fk3nl117jjvcj7ay9dpwnvlwblq27mhj0b3z3j3";};
 tui-27253={run="0liczx2jcdks6r5040r7dqcyrcj225xq0035ccdb9kjmp0rmc90b";doc="1m73fc2nj7qsy144fmbqhld3hx431ry64jv5p7h0r4p0giadwxgc";};
 turabian-36298={run="0fjqr88a51699p57d9mpkpf2hn9rrmdchsxhpjng8hkx3yjl647g";doc="193qbhcgh63kfnrivzjyyk8vp66wb5k4791qdii7brp59xsy6l7a";};
 turabian-formatting-58561={run="0bfl9fgj0adpcm405a9b1819463nrzqplzzdlvwy6yanyqfqcp3i";doc="1dam5fm94hdyzi4ai0wq03pkarb6lbrykych3ixcsz8r2z04g7nx";};
 turkmen-17748={run="0jhg6nd47y8igsn10m3bcsn61zydlwk3g1qfqpy8snz80rkyn9d7";doc="1rs4jmqy5zrgk2awvvw8lsvdkzjwbfq65bm3m9c02158q63bw2i9";source="1kz5qhyjax82mv74qxhsiwj83jijnfhgijdl2w8ic8lwc31q5ihl";};
 turnstile-64967={run="1br0ny72qsv5fpfw4x0v7q3dqy2jgicyd97ibzpxc04mp967njjr";doc="1iv8ysamcqzc7lavhskf8kwi29jn9xcda0am0ak9s1c7nz7pb3ly";source="0aadq0w193hl3rlb1d8xv60yy0fam4aprz4j96dphnanbb9g27ll";};
 turnthepage-29803={run="0zsgmi4akjkhwqas45r7ppbx5c8i5fyvpmk6a8wmpk99ib58pipq";doc="0jkv2zs1m6bggjhf3g71g9cyvrnmgmr549fqsvc4lf8fp9kp3ayn";};
+tutodoc-69343={run="1a2q792dv19y03sv7fcdlb60vkld9z6vkkv4ad10w9frgq3ghhwg";doc="0i9h32l6smr7k1ra54ds8gh2fjaiwpgnqvgwq9m890l9f9f322cn";};
 twemoji-colr-64854={run="10k7gl7jp9l41mj6jamz26wndf3casx1qyy1dz1rscgqyvgjgh9w";doc="1d0kaq2k3svm7609x3nfm8lcd1d41rzp8vcr3wxwrl1dadjv180c";};
 twemojis-62930={run="1k58rnl12pj54g5r9rc7dcf1n33p0hw233wckrpn0dh287gf5ffy";doc="022i152bp2r8fnkwb0mpz1nhs54qxpy57f51j1mkb5rc1dqgcxqh";source="08jxkcjb95yb7pc7jlf2rcz9b2yibpi5ygi48d2ni79i5382mizh";};
 twoinone-17024={run="02na16ki3n7gcbzi45dk6nwna3dqzgxwc73aha1zncm05bnj3n4q";doc="15ldj27nb6pp90abilsybzg7hn0z8xfv7mmwrmwdq20qw8ss75ay";};
@@ -3916,7 +4025,7 @@ type1cm-21820={run="0xdbj0yivyb7advckx6k2iwbn8xqkxrlapjrqrx51jcqhzqshknp";doc="1
 typed-checklist-63445={run="0yrl1vlsly2k71svaziblbnd3jl9jpnpvpg942gg31dsj9vvsb2q";doc="165h7yh2w6n64g2165wbxhpyghwgxww7lasy1qi2qmzkxyf3zi4n";source="0f942k6pjy821851sxhff7idp8w9n8wgf8v9dfrx7mgyb2yqwwqb";};
 typeface-27046={run="06i3zhnc42zbzb5lk0pqgiwq0y7wgds4hs27jybizw9y3yhv9nf6";doc="0z9q8q87iybb4b6g1xnnryr5aihic0vdsjq5xv55i3gbgrd15kr2";source="15igfb6xy0g7jykb50086as2drjr76jcprj3kafcf347427026dv";};
 typehtml-17134={run="1lv5bl9bq1413bbbsjvh8gz1p3qd075y7asi9x0nja36rmcags11";doc="1cgx2prk9ggw3wkbabrm0sbsfb4ablglzh2ckvg5s0chgkilcnyf";source="1ihc1dq38rklrmw8h4k4i6pq3qy9dlwn7nwzmjblpsghszfivxqb";};
-typeoutfileinfo-29349={run="0w48qf9d7qh57s7b1745z6d5abc8rlgcjpmf402gqxv636589dcr";doc="1pffnydxqlkjixa71g09f7754ay0gnyphay51dys9gvvmwzv5npq";};
+typeoutfileinfo-67526={run="1006mxdn6gdmm0ssmnqnw1ay8wi0549qs7a6vyv1nrvis4v7nys7";doc="0dvglz9jw5ig3xy61syy6yghf3xjnynvkxnwqdmkfz7fgy74hb15";};
 typewriter-46641={run="1cgyi8q0w8j6xywby39g4nprg7p7p2dpgfdb58qr5nsppa2i31m8";doc="0lz81r7jv8frdgb1aglxlr98cngacacjvsa4wjzwr9cvahc1q5r0";};
 typicons-37623={run="0acmp2zpg1734c6719jpmcccyq4325h2023bc87xmj7jxqq0xlp6";doc="1r9wabmkqvzdj6dcxl9syymp0rzz8kj0lfmqn9j4njghclndkfdf";};
 typoaid-44238={run="0m7nvdni7nsmbmlbpf51cb3s4s5qaszbn7mw62dfvvawgd2d1y0j";doc="1b24irgw2779j43pc15cwpazx0mdjy2zla9n6lqvmwyhl5xnaswz";};
@@ -3924,27 +4033,28 @@ typogrid-24994={run="1p3if64qmyhflwlf4gy59wl3xajaza5xpllxy5f3a7n1pzca46rx";doc="
 tzplot-64537={run="166wxyqcd55y55ql1p7wvrb2x4mhavz7byax2sq43bqsz2h6689y";doc="027pg77h4p7vavy1s25awa355id6i2ngsb9spmj3bapr6bknsajw";};
 uaclasses-15878={run="015wxmrjfykv7j2bvmb42491i137h513q826f5czmcf1c8gk8bl9";doc="0x6krd94wrdwc1zkyvqzznwvnvxx4agwinr5fhshav6r8jfsn4rg";source="06nsdpmp8qqsrcbbcdpm82gcc3z8y5dlhv2lgwr4i01srwkd91r6";};
 uafthesis-57349={run="0fj2rfdzldav8m1ac7wv8n1k8pcgj4yy4zxx0g8sg1mb5i7if0k6";doc="0g096y6dvxfzbjrvvwpb92z4hrxp1p9jvbgkap5gra61msacqawq";};
-uantwerpendocs-64165={run="014hhy9rwbdl69i9qx5cj8470pi6nb0pam3x499rg6rysn2jyd83";doc="19g4p3h2hb4h32z2fv1jy9d6xsjscabcmk9gkci2my41fzq87b6y";source="1f7kxwadm4m63cc3wzr4nk3hp8771agm9f4z132bykp4il9agyvw";};
+uantwerpendocs-66819={run="1dx140fk30ppk96h4n751mds1m6d521d3br94ixbqybya5bc1y64";doc="1f57n9v9pbwgw7j0i0gvv3y976a58lrf4w55gd7pqgwi88fdwy9a";source="0sq29h4il7zmxksqhdnxyszmz4d5rgd8qyzhi1y7bjp8c4sny2dk";};
 uassign-38459={run="1xwinmh3a8scfgxm40505zn85r0052pcykcs0lcvazn91007dl8i";doc="1b89rvsspkgs60rkmqjad7n2pwwmviiizpqr2si02kwnsqfspqdw";};
-ucalgmthesis-52527={run="17pqf8p5wq7szg81iqmimgz8hac49yqlla40g5lf9s8f2pjagjmz";doc="1fzb7b9v81y0q8pqpvrpsbrk64831pf393hca1j17amsnv5al0c2";};
+ucalgmthesis-66602={run="1n8g3blw71qrrkrjjq867qimn58w5a2l4lnfyqdw77wa67qzxb08";doc="0jkxxfnc9npmvvxyqk3zw5csapmhgfqhzm0rssijw4d46b7w1lcp";};
 ucbthesis-51690={run="19g7wv3iypbkcxhlybizkis6yivgn6z0mvz4rgsi72zaahpxmg7y";doc="0nlpc0vm12h7pni3lw3jqq7fsh273nc63abw8yzw69crh3fspyqg";};
 ucdavisthesis-40772={run="0kdrwdk7mg3yd7hm2xmq63kgikr2p2izibfgw1whai921za4wlm4";doc="1chajx1i2zmfh4ypnf8jspwr8kjwbfv7z07qrfasrf73r775yxnh";source="08525i86hrv1387jn9ayz3mpwnh4z8kvjvb590y7gqv3cdvrsa2b";};
 ucharcat-38907={run="0xiryrx3pjx2nq01f4f0x3anx3zvkdarp87103z9zvpf6aa27slw";doc="0k1aqic1ljafdk8xralygdyjapkqa0qiainrbf982233kjqclpvd";source="08xxmm2rrpyi9a601bzxka226fnhmyqfv8cfbc1qdivn8658785y";};
 ucharclasses-64782={run="0d5rr5w322pr4bsmcp09vsldydxxm69mcpvpaf9j7z5rwhic9biv";doc="1l6pv743lzdhnxpd8bv1y40xhfg82421jyri2c5h7j4ahlcnnvic";};
-ucs-64114={run="160d79c7hcs239gjli8v430zn0xdj5x3dvinr8ci01wzsziry6mg";doc="0qnd28dg8ji3jyd985kn3hids2vvrkd6hgkdrscbvbp02y95fm2l";source="0q371qvb7r5b3bhyqj360c4qd06ww8a275aym2bdw8g62dcjhary";};
+ucph-revy-68224={run="0i0fzn556b07i46jq4mb43fhczvjh91asd71512lc2rsx12r7gvk";doc="03ab4kj1qnb9hp89kf9vvh8ca0l0k3jqzkkdxi9kycwzqm7x6bij";source="1b0v20k0ypkf7gcz0wmrbr5v4lzp97v1vvb2818bphrqj7bdksf2";};
+ucs-68759={run="07xgqkjhks344r0d9c8rvw2gvy0kwhx5kvyzkf2ymw1hiix8w48s";doc="0icaq9irpb67mipfpv55kfbdy5m7dw83h5qqq98f5d1x14h3gxbn";source="07pasmgx62jjdq8wgqgk10wkykzljj7v52xhl1ncma4idmd7l97q";};
 ucsmonograph-52698={run="1jkcyhrh5zf8p205xgs10azhp69vrz613ln9ssrb4485b7a25b3d";doc="1hhr0z3sy8vn6cv2i7g8nfpnsdpyrsbqrclc8j8g6qidh83x2y5q";source="0x465kyz3chdcj705v9gc8s0w3pmawaza93pcm8nxy3k7dwx920j";};
 ucthesis-15878={run="1mqj65aps995issvi1vgn7f7pvxq39pwxaqqwh7pxnki26k8czrv";doc="1hv02nxak4laz9az2kr5lvd97l4mcnixdmpysiz6xqvc13ivkjl7";};
-udes-genie-these-65039={run="090wa3ygl261bx2pfvfjh39cpb0r9r7vjyzc2vwiadyy9l4mbr1r";doc="0g1cm6gwhk4ndwc8rwnzmgxw20gfh07ssiwv9jli624m12ysj9ml";source="185226vgpf1wyc29cr1zsf259w67hi3aa2mvrba64pf2k131vb4z";};
+udes-genie-these-68141={run="1fj7qy5cbcs03pkpcv8ii539val5ps57pk0836srwgmgh418csiw";doc="0ikgr4zdxfi06ply66kp8v8h1p51m8fmzv87hlg490qaj8wmng5i";source="1rz05n7bvf0c8h8b278m9q4pj8vdc29i5xncr2374lyhkcx4r3xp";};
 udesoftec-57866={run="1lq0n05v6q0p78jnq1wf67pgzh214lllcas4jxlpz8hrwk9n9v1h";doc="1gd4qhdr4wxgjalxgqp0d404w65x7r3ipdkdq82lfcyclqyab8fh";source="16fgvdzlxrcaxbbk9m9yxviv8v3qhki2s5kq8j065xx88zd181aw";};
 uebungsblatt-15878={run="198bz1875qhh366ddvdxj72jpcdinfxsrb2mzirr17fq6liwbwhq";doc="0814xqw1iglvwn5y29fsvgbrm5clhgiz6ivbh8a8rayscbjwixmj";};
 uestcthesis-36371={run="0dsdzhf9pp2x4xbprii9rvl0h0jwwwd03va8mg7c3cjgr2nvy1dl";doc="11z3ac2pnxg8qqy4shmdks7h33257nbkgj4h1rq49gc2ssqmp8pc";};
-ufrgscca-65661={run="0lldcnj85g2n2na7aq6xilw9sp747p2vv6651cd6f5f4c4snqx2k";doc="1dar07m3mycp3pllimqa2hjv3b049k5mz1lnjdxw28m6pf8p7xff";};
+ufrgscca-69042={run="1jch6z0jvybza2fmd6mamc8kx4c5q9l8dhpk2r808a9zxdwhcx39";doc="1w4736vj2x3znz31qpfkmnh2aqc4khvz9zx2n3mda3ngl34cb1rf";};
 uhc-16791={run="1xvkp384p0xcba1lbi3b2najk6d2w1s78yi6vgppmcjrd5limif2";doc="0q1wxcn2zclpj4bsn47jgd78xmp82a6x8w068j4ihza9pfvbqacm";};
 uhhassignment-44026={run="0pb7hw9krpri3ky7hfshjkkbk36cilf31iv00l5iynsnrw70lwyy";doc="1106wbx02mbnkgzwwiypfz7fg1a3rmwyhlgnsxf4z081q891p3fm";source="1ck8c7jx3qkxnm0a82qfql92s05bg5p352fw1yv3y7v86z2kh6ad";};
 uhrzeit-39570={run="11ysijqpnm3b4z7pnyg7m7kpzp6fiw42dc36gxk1aq55wsv7kk7g";doc="0rln5amx6vkny0pm4yhgvnmmr9akwcrd93db7bifxdp07hjbvj83";};
 uiucredborder-29974={run="1zklnahb3inyf5qnavccqvkc02iwqw8mz7w1iam0lz2jmzgc1c41";doc="1lxyssdc3sxsfhizm3f74lxcgpkaskljqpybwl1zw8m347p1qf85";source="1rbxxliaaggn4rk6093lhmndas1xy111z9bjrgjrhjhxw19lc0ib";};
 uiucthesis-15878={run="19fif7a2xb3qrmkg8yfjg1hpisif4znc64765d6jrqgb9fqqzlnz";doc="1w20kjwdgppl39axgwks373j3dsnidamhvqy1wn3yilzfb9vjjxj";source="185mzcsh598dxnf2sb4mmvc3qy4pi43qrlim5jhn3n90qvwp62cw";};
-ukbill-65485={run="0v61h84kyimm3ljwm98blm9473bqr6y7nc3xy4pqlqh2ys6q9ffw";doc="1m0ny0msddbhh1a27srqf9v5h9vlg1kr1wc18x14dlzc7s45lhry";};
+ukbill-69362={run="0k3wwd9snv9w8mif0snbxbgaykmrj2d25kakllqc9f3gdpjfqy7h";doc="0c54c4zaznbpskycspfihpla4928w5g9w095lr6djnqb0spk8138";};
 ukrhyph-21081={run="1fnh98jcbn9l09mi952qrdw0dq0pjykwgwi35zz2lz8h8r750ihw";doc="0bbj125zb494g9x160n3lsivims28w0drhfmp0c2920cwhk4m0xh";};
 ulem-53365={run="0v6p4hj3hij0qvq7vpsbnk11rhwwlx80p3g575jy4sn2vfw5zzsm";doc="18ny9kfv3w2ag97czcj2gaqqy1gj2f7rd8r72vd7wsdihgqd5wzb";};
 ulqda-26313={run="1mpjwq43dj2am9llszy1yzz2jbhdskf14ki881j6q6h5zfwwacdv";doc="0kkxa9sv2xg6d31bj00wszkchkk6raj2pvqji930098jray3zdc7";source="1gb2r4zzr3q2kfigrb4j528jmr5paj38swhnp1dlb2dqr8y1szfc";};
@@ -3957,9 +4067,9 @@ umoline-19085={run="0xx4v6w2sw43nqrzdpww561511dcaigsz5blywqg72giw0x2v3la";doc="0
 umthesis-15878={run="0iby3d7f8mm4p5z4jgnxzqnfmwhsws6hg3yb2l0mrknlj98ww4yx";doc="0vf8ikxi8706hc0sv1h53wzpd4mfiz607hzbhwq607k4hc71iz8f";};
 umtypewriter-64443={run="1xn06vz5lxr58xi6y2qv5wa5h2r0g1xnba43x5qh5ag6bz5ym1wh";doc="1sgsj3d153nyylqz5q1mvjfh2mnll783863wsmh9n6zajkfxhv0c";};
 unam-thesis-51207={run="05lb63wclgxqr7jn7c38plhg3r806b7888zyifcivv85q143j191";doc="0kxdr723xvg0lzhmzwpyik9vxy584y41pmwy8bi7197gz1hgdlzz";};
-unamth-template-33625={doc="018vpcbxfzch8qsrrqakcxxir53nalvj39l2kn45kn26p5nfkfbn";};
+unamth-template-68681={doc="1ydaxzcwxq1rjkawlapnfipjzlyzvbvijrx98pi9yd4zk2nnqjfv";};
 unamthesis-43639={run="0wqi46mdjsl06q7hyvy4wpihvrr040f5g23bgc6lm6lq11jadj6l";doc="1l71n80psc2hzjs1lnfgpfpg13355sk9ld86104dkyrl645qx07r";};
-unbtex-64634={run="1gyqir4b3a94ssjqifhr4h72z1sz98p7g9g4p12gdfwi3bd4k14b";doc="05lawlk6qv39csv0y48f2h1rp3x8hzlrgaspiclrn98yqkb6bycl";};
+unbtex-69307={run="03pmfjv9ssgk0g4344pnq15z28mgkjr5f4jgddqdbs23320zwd43";doc="0gy3r6mp4lr8k7z93i0dx0zrr0pn89lzaq9anjmc6wnwnb9bwvgf";};
 undergradmath-57286={doc="1z8my3fwqc8rfc1843j7lcmfka2023z9k0js4ygh1m8kilc2nrr7";};
 underlin-15878={run="0gm9cikysz83sdkhhwd6x9zbs278gwfw8mxh7z22l3c0nvfkxbfa";doc="1rvryx13hyif7hw2wgb88n95qycip95xh92jdy1jm2l6pl3c5q3i";source="1mczvxrhlipisffdi9jv5m3d2i7h34jpm6vi4dbl58cg9sasc4a4";};
 underoverlap-29019={run="14cknh021b4qsymflf0mnv8q2vvhgsf2088s1g6pm8ckpx7diq0r";doc="1h1qvk9m04sp0nm4acj7kfib5cfpch1mkpvs55mnqqsgasgnymjn";};
@@ -3967,17 +4077,19 @@ underscore-18261={run="0a93sgddm7xy8iby50yficparkr6hnzj46w70madbwpjkpnfya78";doc
 undolabl-65846={run="0arfny56vh389m89jz17mr0xbdlmf3mf0wiilmkdia4sbnbv3g7z";doc="0802sqkxir6gdkxkaxh867wjc12m8apvlhycl19fmlbivg6pfla6";source="16ymhmx7by5pi36z6l4l27z1x8pkpz314jfibpc5azjmcphqhjq5";};
 unfonts-core-56291={run="0pyrnydswlqhxacwqpbc1m3bzm8v4gcl3ka7w2mppp77l8a70drl";doc="0225vsqaj8l0g1igc4h8m94cfk6wv17vlnappdgxwws1fknz0x5m";};
 unfonts-extra-56291={run="1i7skyjqlprf6m1pnz5l2hn67f1cix4n3pai6v1a8adrrx7vcfdx";doc="0d3cxfm110lg12n3c9hc88lqmx77rcsil1s6yph384scxadlg3bn";};
-uni-titlepage-64306={run="141wbn588pjavsa3d7v1c32gqgkl1rpxacn3w6v4nxb3vjw2mizv";doc="1g90i5kdikdxffk2lnxb9a446hbx67fwv7vba5v5f63rzjjqn2xv";source="0vzxcindsr31b2bdyi3zddh42l62a7nfc8lih51h69ycp8r80har";};
+uni-titlepage-68917={run="18s5vidaarmpppdw12ynb6fjc52sn5i5zr5lglvgfqmxnwx5i3d7";doc="0djb52kfbp3nn4prj7x613g58qqjf1lnmcxg1rq2y3kam4g63r37";source="1jhvh4aj2z3qzf85wq3isfvkwlf5cghrkhqq82q371zxaks2fd0c";};
 uni-wtal-ger-31541={run="1jyba7g6qmngn4lx7mrmk0j190zkjv8lw775w13hxr2yky31cf1z";doc="0kncfbrs663qcpc0nsfhf0asjri8103laj9zpaayk3by612lfgj4";};
 uni-wtal-lin-31409={run="1rc0dc1g1fwhz8qa550ykc8azzc4i748jh37a8ppgrf4x2lgxzjq";doc="1ja9a6fjrlh1lbjkcsal7ahw24w1gs1mzma6jiiw5p5kbmc4zpz1";};
-unicode-alphabets-66230={run="10zmjmbrlxsvq7snzm3p89afj4xy4ad0ni06fi9dkqjmi9l5nph4";doc="18l3zd0q5ixwpvbcx2glldp75anqkgm3ifnf3lha2iqapk03jsm8";};
+unicode-alphabets-66225={run="10zmjmbrlxsvq7snzm3p89afj4xy4ad0ni06fi9dkqjmi9l5nph4";doc="18l3zd0q5ixwpvbcx2glldp75anqkgm3ifnf3lha2iqapk03jsm8";};
 unicode-bidi-42482={run="1prl0i2a9dg5yc2yl1x1k0zmz9lww051w1zwy8cbyvk3rd765a72";doc="0ab0gym9sjllmqdclkjfbc4fh9n20999mv7z2gylfybirm0n7i7c";};
-unicode-data-64423={run="0x1kv79rzlkxlljl90pa04sm2d8gg8qc3ja6349ya73fgp8qmy0a";doc="105a76nckm016kdv8zr8amzqx9xgrlanghhnwrw78g0nbm7q31ni";};
-unicode-math-61719={run="1ix7yd0yiss2j5gm6s8njqp3287v1h27xxall0ya34ip1n85wkmx";doc="16w4qsgvgq8vi0ylivi3j5b80y4in205ysyq8xaa2ksa8rbbaa4b";source="0isg86y341w2p4a8lpsra9djb2ldn9w5cxffwzbprri33j2yqs82";};
-unicodefonttable-65009={run="08hfw4kr08igk18r1cib7ln28d1ivh6kaqfyr29sbaif4kyywf40";doc="148pgxa27w397r22j7i7sjywgh6qw8hc5njqv1phb9pggidgisy8";source="0w0id4dzq0848jynnxr342s88pjk865q30kiwd02nbr9142piip8";};
+unicode-data-68311={run="1ra75819cglkd1gdv96wzflx65bc73v46k2hmn1bxjachz3cd7fr";doc="1b8zpwd0vr238may4wv68xj77w7fiq757jv3i45yz0gir1as9piz";};
+unicode-math-67919={run="12xc969s6x742a3aay28354cpvam2x9ack1396q2hk1wdhg846fl";doc="0y0sacc4rd4ilzjfw10v058wv626wlva1kzrbrbqxsclq3xcm2fy";source="1wr1hrxd63z5iisdw6k95qjknl3i917y2dmnrflyn0afvl2pxjg8";};
+unicode-math-input-67089={run="1gkamvcr38zh9yzvhbngi4lcbmxsrmbidg1rq3mfs51qnpwrkww1";doc="0p9k80mymz1dflsvjjb99pzrskwa21fmvrj3zmsxdmf8vzq2c88q";};
+unicodefonttable-67066={run="19idvgz9pmwsjrjc09z9njpnffyyaf963xcz89dhzxcc2k6v2wrp";doc="02jvkpcwhf5bxg6d6pxl9h1igx01wkhwm7rs3ycid8vf9ydsvl77";source="1lfjccv4h97vy34g8shh26rw9ai7h7f35xywri06ch3vx8gsmlrl";};
 unifith-60698={run="0plwq53cp9rsdsjd6db1g8b39k5czzdsmmrfki7ckbgiw317k7w4";doc="17q97073nni7x2d1zlplrwfvnxw9pkjgk79jwcvbgfjq09cq374z";};
+unifront-67054={run="04rm3pia1x68qm5kabay70fr1szrzvg4bzk674din4babl3nblal";doc="1d2kmwfa7cz009wfc713my93v3pgh1jcqz13jcy65f7py86qf2xp";};
 unigrazpub-64797={run="1rg5b9f3679qn8jaaqn29bfw3qgyxgx3p3zxi7vsr6kn6ada3j82";doc="0hpjzkdhrl64g00x7jb55wf5mz57gab432vxq3hd4igffrxvk88m";source="0mdcp3f8by29abbclsy9ndydgslpybcs5wqbiz5aiy5blp8d8abx";};
-unimath-plain-xetex-66397={run="0h81w9pzy11mnq63401m6a8nbmz11xxvjfawqmnyzzgpx0v0n7r5";doc="178slwilm2klrln2q7zm42xf6hanc16ksvrn6hzfzsda46f5mrsn";};
+unimath-plain-xetex-66394={run="0h81w9pzy11mnq63401m6a8nbmz11xxvjfawqmnyzzgpx0v0n7r5";doc="178slwilm2klrln2q7zm42xf6hanc16ksvrn6hzfzsda46f5mrsn";};
 uninormalize-57257={run="0ai1w8n010sq2fmwvp7625dfmmlvzx9d67ji34zwxdl2cyjlgsw3";doc="1dksyk07zjmwbzgc7c2d5lz7fkvrllbj1nrpb34vd54yxl4azgip";};
 uniquecounter-53162={run="1g7ix0pnd52dsykq5na5d4kfi49zm8gmampf5yn281mn901p3wjc";doc="099clvqs76hiwl8i2gqj2hdmj2m77v03pc82sls2xpwvrs1dqd4s";source="0cgpfgv4yybrq1ryhjrzwfwf97805dw6if2s1qivhry94lb96vn2";};
 unisc-63178={run="16drn07j24q41a99w7cgf69d9j21if2csf4lplbkrvjnv5rnpdda";doc="1s0xqq03ccx4rrmds2l9sz7qphnh9wsimxmghmy7d1slmfwg2g1a";source="1mxjq2s5ns2lhrrqy3xwxlnn3fcb206gvbdvr75kagzqb61rz5mq";};
@@ -3988,22 +4100,24 @@ units-42428={run="0rblvdf1cgsm4fda44vvldy6my58dnars88wv2blgnzny8s00jhn";doc="0nn
 unitsdef-15878={run="1ck9awf9mzjhq0x4c3cpan79imh7ijpffii90955jc78h3bhcwkg";doc="15svjszg72axskaa3yg91gvh9y01s1nh5x6nhwqbr9mz3bn3npck";source="07v6xpwkag6fp8p331gcfbb0p1ca36rvrs9kbkayc986k6nds688";};
 universa-51984={run="1r8rh4jbx3lxciszf93klg3zwv06qqgnzikhp11c2qmrjrk9gznh";doc="0acfyvdbqagda11730d5bmr5qlfq7hiqw7dajq143i54k9ln8mvi";source="1ydba7wjiqnjc8drv5j8skv5q8hjrliwd38s6xj2jd12i0zp3gyc";};
 universalis-64505={run="19v4kl6xbqj5lpxlpjghnnhs2dnljzzr71pvw90z71n6wncza5gh";doc="0nw6c17jvpyp5lvarj2hf1ir2hwc54ns9nflw4zpgz2ifr5kr1ci";};
-univie-ling-65651={run="1ffslx4ry1aiipp4bia6idfkf5l83bk9i47768wr4kja8lih4rs7";doc="0zy7cj2d00jl4acvwr7cvynyrwlk45j00zachlxg05cfh3g24i07";};
+univie-ling-66728={run="1aqh4gpxg8ryx6lvqwiz1m82hsjf1g1206vqfl3kml3vbkylv21i";doc="1p9i4gy6wimgfwcwffqf5hkpxhj2knn7ljfdx818rscrjrrf592m";};
 unizgklasa-51647={run="0clwxzngdy6n7iwk9zrn21i1frmahdf0s9qq2nqlhk4h6rxwb8jb";doc="1q7q2fpgpjdsmbfj9zijccqpl2m6n0dch72wl05a64hxg117jbl4";};
-unravel-59175={run="1kixvhz6l4mdlvjl8823jqa1fzx7m0w5vcznflcjww53n7jhrj66";doc="1lafb702nv1103kap2yldigp5y6f4hmszbcs1j4sijdj44cxaaa4";source="10df5gx6idfi23r92p9m8axcm3lisyh94xp301synr1yfpyw80zl";};
-unswcover-66119={run="05nkk3xgpjcdlsk8xrj0mn5r3kwzi15awish2hd205v1rnbjiaz6";doc="1jsxc55wrfczcc9mnf5yl2yqbbzbk10jcdly5z5nyfvg51427adw";};
+unravel-69308={run="0n440qrni1qnbhjajj2kd7zwgv8sk73bv4arasha05xfic0g3arf";doc="1smf996jz3iy82p34b0qjmjnpipxdakp0b9yk5qxv0rbkiwkhymc";source="0hb343svdnjx8czl4x1wlhpmzhrzsslykpnx9aywpsgn2xabncnd";};
+unswcover-66115={run="05nkk3xgpjcdlsk8xrj0mn5r3kwzi15awish2hd205v1rnbjiaz6";doc="1jsxc55wrfczcc9mnf5yl2yqbbzbk10jcdly5z5nyfvg51427adw";};
 uol-physics-report-65761={run="008iix41i3zxghxmxiyky0cyfn2rzy8q64f49dsj6nvixp6zlf9d";doc="0pbl7vx7xvmvi7fx7l0mn98hff9d838n19zx7izg3xgrqalygpgp";source="05rd3ss59gcfa9i3lpzfb6f8rhnmx50868si3hys13pqhwb7xkn0";};
 uothesis-25355={run="1wgs3fxg01cxcpnhk43ik12sjdip77fkxdaik6w4w926i8z0np7s";doc="1zmpx6biaxlm7fys5a3qahglpbqgn6ml07z6q8vplyqgn213hd6d";source="137c9av6i6b6hg97wmqd2iwqzd1dq6lvg2992wnbm2bp2m9r20zl";};
 uowthesis-19700={run="0iv9s5dfmbrhxbx4kqbhxjf23rln4ymcx4kkk5fmc67qi51i8jnq";doc="1xcqs2h6qs2lca74mg1jvqza77xrph53bk9dwkk0bprhkxn1all1";};
 uowthesistitlepage-54512={run="17xh2myc3xj2zwbc7jjdmnfqhmhzkqj3dwwn2q04hcyr4bm7vnfz";doc="1gm1clfvd0g45fpgf6h4nmyy2vrc0d9lqfy9h3nn2pnh0ki2z0ir";};
 upca-22511={run="1px88kyvr7jkzzcbd32pi7zlak9wwzf3b55yhnh9bi03pk0il33s";doc="07gsza0vhs52qjj8im4i1fg2v2lch9iwk424ik9c1xak1v7s9d23";};
-uplatex-65305={run="0kmw51xvg44jrzn6r1w2biz2d0m3j533qadi4bfjhf2dzi4jdg61";doc="00p3h87c5mc94hq8wwald6axij9izflzarszxanavdkh3dhggg5f";source="01gpwxp81hz8824y1hffq6b035l0pxa8wyfkjm9kh5m58j52s50w";};
+updatemarks-68163={run="08x63a7hg949dcszq5x03kwc1408bml78mfrd1p36vd99gsiakv1";doc="0lsdfdd6nkl21pblpax32gw96mgm8l34gp2m7h60fipj3garfb69";};
+uplatex-66186={run="0kmw51xvg44jrzn6r1w2biz2d0m3j533qadi4bfjhf2dzi4jdg61";doc="15b338kzdd0xbglihc5hf92mv3jwmyxp2pf1nb9l75cxnqfglzjl";source="01gpwxp81hz8824y1hffq6b035l0pxa8wyfkjm9kh5m58j52s50w";};
+upmendex-66381={doc="0mj8nmqr3z7b802kvjmnkckq89l694an7s639yghf3b9b5v7xihx";};
 upmethodology-64613={run="0r7k223ypavdbywq5fwffyysn68pg12dgp842jd22b866ffm13pj";doc="1vw9azpz8vwanfg60vr1a9bbx39k8v6jhvn505pvmf8fqgkqd9ch";};
 uppunctlm-42334={run="1a71nsc5dnaa8gb4xmnlhvdsvid2h9gwmxr0xa8blh4xd0vwi2d9";doc="0d1qs7krblmnf9r2afvzx5ir94aqgxv8p2d9sf9p18nlz9f5h06q";};
 upquote-26059={run="1zglh6pb1fq0ipsivhj0knhcwcg04mjkxca5s2adbbfk2xs1iqgy";doc="125756iaikya3v0wk9a712klp39ndw7i68bybnrif2klm4c695lm";source="137lbzacpmkm1fdmp548m6r83mnhclsrcyqk1s0rkp558fpnqpp1";};
-uptex-62464={doc="048c3rg0vdfl9ypdazrpl6f2sr39k6hph6lambsh0q3086bv2zg9";};
-uptex-base-65802={run="0g1ihpqi9im0k7zg8vmwzz8mz3qpy2nfgsq5r7kidsar4yrqcj1m";doc="0ndk6z627a61zf903nfqcv7g10579gbvy8dqrvdjfj86bxdw5h41";};
-uptex-fonts-65657={run="17q19l0l2v10h0ghh8kflr0rxd634q55m0z5p7n93nmahjmq89fw";doc="0xh25w91m8xzpkvq0c38y30gslzrqwqp0vmmn053nawkmsdsfl3q";};
+uptex-66381={doc="14hn2n6jbibbqbdr72j74z5bz003jnlabi3kja0f0waxhas680gd";};
+uptex-base-68298={run="0g1ihpqi9im0k7zg8vmwzz8mz3qpy2nfgsq5r7kidsar4yrqcj1m";doc="0sadkwyprlv4i2mh0mxcf2paslskqg400xzwnndycx99yi9bvrvk";};
+uptex-fonts-68297={run="1306b0nq975iskifmbj0ah66dh969sbwydblhv2gywy0yddkg8x9";doc="14m7l415n7ywh0k4k6pnq1kf9iw7x0xv11qvi2n1azs5r9nyw302";};
 upzhkinsoku-47354={run="13fm9r3s01003n8ykbq8plx3xzj7p9bz958ylkl9f10kd9favr57";doc="0hd55x231kpcl1rmds601a2k1yzvhvfks7sg0424gzw7wirhns75";};
 urcls-49903={run="15hnqy2fxqblr9db4h2r38v1h4iwhk5kcm8qm9war1c1pgwg2a6l";doc="0axb3cpbqbksrixhksdhbjyqyic0176lyxxk5di268jbr58203xp";};
 uri-48602={run="1mmxhxm4y7qsvq4kgdnq2vhid360gcgq0yxbcgw46k56hxd61kln";doc="1zadcddyfrgfbrsyl4461zwz8g3rjwypixvmi5ny8f80z4igal6a";source="1w5hbpzc5xka2z834hnzx16ky0kdx3x4y0xxs61l9gx0ygqkzbpa";};
@@ -4020,7 +4134,7 @@ utf8add-61074={run="1xgp93wcvb2jiaggidznmbp173w0kfhwcw2bg7829hl60vhqnsjh";doc="1
 utf8mex-15878={run="0inwvyrizq3mr4c78l036ib15d6v2bnrakm08hvxx6ck753kn1hj";doc="1nj94nn4s662jh2wykvrwkiiv2xzg6v8q4iax18d20p75yfcn3v6";};
 utfsym-63076={run="0w72bcx656rdkbgndmshzd6ackh1r6x6m2f6bjrc3rxkmhvf2awc";doc="17m89pxzhfrcg8b3pai9bpivypmzfm0ck0pbcp38nabbnwk7bmbl";};
 utopia-15878={run="1hsvl3la37nbb0b2q9995w1hlgvrc0gkyjkgqbsp99rk0ry392v6";doc="0yyxzyg38z6kip43gxlj3j55rdabqjrzl33yp1z043rblfw5b9mc";};
-uvaletter-66335={run="0d5g993axvin6lvhqw9w9zkyhpw9vm5qi9k3mnsdgawhxzziyib4";doc="0w96kc44y0l7vg0229cs1wy4s5gl6z0lwl3lr3xccyfw3vyyfaih";};
+uvaletter-66712={run="0qp48wng88fqkp1x0c3brzkr9f7p08pvbfws46dzrddxg5w4nwvm";doc="00g32zdkyv5x3hzhdph754f5mcqicgzqvcwigxf2dz9shb0phgk8";};
 uwa-colours-60443={run="0j3yywmr4rb011062gwaz4q56jcizblah0a4s3xi2gh0jycdfd1v";doc="0pa7a1ic7am0w1chl6cx778gv86pf38m12s0xdpz3hp2krkrjxwx";source="0h59r1sxqsgsl79jvm8q015mck28z89c595lkpilymahfn3aqi88";};
 uwa-letterhead-64491={run="0y59djz26f6br8gpdaxbzx0sm6p4gjyvfdi3g5w2rhvzv92w81is";doc="1kj991b6w3f6svzf130g4zb58k1n1fq18jvvradrqygvgrj8lg0w";source="1ysgg1idxm0h3rslw94ih10jmb85n445rr2cfzx9x1fhl2zclj3n";};
 uwa-pcf-64491={run="0bgg42n0sbp1hslwrrc8xclxpj87sggicxhmcijiijfdb88g5cl8";doc="0r8cmhy9laq7j40vkgp9v35xsq27xn5akkj97qysi844n4dia9kb";source="0sm6zx16yyi4p3wwfsyzgp4w7p53mqi5gbl4qcjj7iz373mmy3lj";};
@@ -4038,29 +4152,31 @@ varwidth-24104={run="032izb0vpcwiydg7lli6hnawij95s5ygkwdp4bfk1c9j17d749cr";doc="
 vaucanson-g-15878={run="10dk1ff3swbnx6l6c30s1ryn2dbyx9harmrcg7whmqdys1mahsbq";doc="1dlf50f0hpislqkcbr685y5xg7iz2y6zvlzjdkjq3af4qv7ncf5n";};
 vcell-59039={run="0m9r0wldir0g8y32aikm2il8qsygsc3zyv2zkg4wn7jqlidk6f2i";doc="1zrhf70s70zxm5ck22vbi88vpdjn6ba6iay88f41x21f11l536q5";};
 vdmlisting-56905={run="10fzab1jn6hk6ah7h9kyv9cyrv2l0gvlmask1c90njhvgqi2526s";doc="0b0vrxv5mlf721mfdvw46ixidgzh0bq88sgrvxb10y05wjcjqiwc";};
-velthuis-55475={run="1ki27wimj82h2dgw6c1f6hs93yg794j711x1w3vmgiwz3mdqkzdf";doc="133f9scdzjncbvqqf9c5nj6vjszp1f235vrapg2pjlg018hlhv9x";};
+vectorlogos-69010={run="1sibmv30czwrvp850d6zgw30daxjlz95wm3ck0rb4bshjy92rg9a";doc="08hkajc2hffhkn7zg7sqqcjc3gisqmkx3fgy43vf7vn33wa42n28";};
+velthuis-66186={run="1ki27wimj82h2dgw6c1f6hs93yg794j711x1w3vmgiwz3mdqkzdf";doc="0af9p3rq7d6g0549sj74vl3scww6ia88vwzfv84fmkysa6ph9n2g";};
 venn-15878={run="0kfq2wnjsbvk0ciwrm4923fpr7whmzyv240r4zps41vzpc4mykiy";doc="0izj8qsnxj9jgslwzz37xwr9n812y3cxmfs52yd7p4638qid50im";};
 venndiagram-47952={run="1v4hbkc214fjh5wc2myqxa6jcvr6sa31c7nz9avzj2kf40kp3ip0";doc="0as35w7fd9xjqhrr3v3nzld9bnhz6xg7rqgs2hyzx150xndy6cb9";source="0ci3ajx316b6iin315z1xkdfmxbbflnj8sf2ww7gkxf853qakwlc";};
 venturisadf-19444={run="0a80pz2ng6grjj97hgk277d25ijgc7swjjsr4rjbd1ljnfjdvf51";doc="1b50h04xl2nwlpclfxl7m1wnyl1ysf9d7p8jbahglnxaxxn8ib3r";source="07isrwhzw538w4asc5baw6wbfydzdrflrp3pk1qilq3a5wcj1n00";};
 verbasef-21922={run="1bb1ddwlix4v6knmz68yy7i2jsismqdz189p1664q78h12rxcpx3";doc="1rd4mhi7w3nsvvx0zxv43nd4ldw7if1zadh0xxbzbjaljypmshi4";};
-verbatimbox-33197={run="0sc53aigy5jx7yvxpms4f0s9msn6szkqmy2jm2ydh8ac02f2lqpb";doc="1gbli0qqgff2ph1lc6nhykz3bh8f0sl18rnk39jqs4xpzr7m641d";};
+verbatimbox-67865={run="0pgim93ifd9mnrx7fkl9fprgf33wp7m5anms8qgzny0lxsm1fafz";doc="1v32x3j5zc8yl7rgxn3j40p53x4f1y8abr9w5fj0bwhs8qawv2xh";};
 verbatimcopy-15878={run="07syldn58zwnwxwdsmq63qgr2nb0bkl9di09knska9jk0c50ql1j";doc="06awpisb1y773xsijrifh0121pq6fdzp2ai0snxny5vrpmyp412n";};
 verbdef-17177={run="1dy1h0vcknnizm2f3zggga85slga5p77aw3ll5ca3kx5qxp1xqhl";doc="06zh9v72ywrg84wlb96p0y28sn9919pn2xjgqhaii6irdf3hmlma";};
 verbments-23670={run="1iv716hb41cy7bc7bk2420lwdykpccyg6wxvbxb8vk904fsgdk2a";doc="0hzrzb6m8iakip93in80x6k15b08z9xwjrbki12d28xdadqkpqcc";};
 verifica-56625={run="0i5bh8j5yjvql6mywfs617mh3pywnqd7z1m6158r3jpwyn6ki25g";doc="0sinc5ha8k3nk307q0piqwj56r2bh4pbxxyww29ygalfqjr755bb";source="1zn10fr9kv131w4id0djycy7492ch7gis27gbr5r02ydwm7nny1c";};
-verifiche-64425={run="035mcwxs1sj9y4w0dq6rfwph6smyx7wqsmcdwyy6k3crwgams6sh";doc="0dp4wvg3rv9z6hg2kdb19b0p29l9b5wscdxx0hxb7d1qb5j63ihw";source="0608i77k8rqryjkiqg460m2fz0srhvl4nkabb6n67v10arh1gghk";};
+verifiche-68023={run="1fzxa5aycqxnzvvhzwprvq0lcdgvchdn5gnwbzbfnsg1547l6kz2";doc="17f2r3l9252bijlips61naj0wzdsa5ghf0lkyni5xsiz0s2jc4a9";source="130hq5mzia4pj0cdqcj3w5fhgcsd0hhmv83s6an6ia5rzmb14kzi";};
+verifycommand-69389={run="125r3ncvllap1vmnj1wz11ir10223fvbgsy233qmg0kdclnh4v54";doc="12j8v0r2jay5f1w20f7yi1kl4jdfqrv2ga5748xksds7jj0x7im3";source="179642vhwmgrmlvavl5naxnj1a3279clgjyc090gqw8vg8hbnccq";};
 verse-34017={run="19yp18fl88zcph3r53ajbnwcr8lbvgahs2kfdg733l5zw3k5pj16";doc="063lkcis5m4zs509hn4z1zg1faz1lsxvjak6c574xasspm45v559";source="1r9pn4dqpr42ng4xk899kxph5sci82dkdx834lyrhi8lsj32g9b4";};
 version-21920={run="19b4h22lqvgzqqm0pivjjhmpxmijrr5rfy0xc9g9y7czsrp810hb";doc="17bsgyjvnna790nz3x94wbwslxkkz3958vj2l3jbyphm5vv92fxz";};
 versions-21921={run="07bxhbpsqgdbpwph2w7gam699605m181xmj8jhpcsf4rwcpnjik7";doc="0pjz8nk7dnf2jp6yixhi55zbrlmhv477qsx6p52dwkf74vxgv5ki";};
-versonotes-55777={run="0kw6ydfy7fycfrr5i8p38farwjrhkfvdlvmaxcxzk0cgnn7102mh";doc="13crgm6g52n4d92rmw7w08j1c5l2nnhp17816w4csb3fjsrr83w2";source="0vvkxga9jzv87dzsv1rac75x147lcf84mkfcx2npz8sbbsc1rj9v";};
+versonotes-69249={run="0kcfa9j99jpw521sz1q0w9qfjs76138l1rdy9ha4gb61m5r95008";doc="0z0mpqrz3n8lp3wf1kfzfmm39n7rwv2xxfvy4x76a67qdjg2glbk";source="1h0qkcpps65a8qcbzskbghsdnqvhgg62yk7ihmv487a8lid68js0";};
 vertbars-49429={run="0a5fc0a4z482fcxx27wrn20fsdvx9xclsy36623h80pxnfw49aji";doc="0y8vfa23ld199r45pqd56rv7b0iskskpaqc08lix2zss6a082iy1";};
 vgrid-32457={run="0yb2hr83xvy19j43kmjrx9kf2cadyairjr45vg5a0pbr9nwpzdsr";doc="0ymfdbqws78n3mm9cbf7zrcdbn4hb9pzzjsw77hlg023h4hkddh0";source="0rwsi6lmd4yhgpa6605631ld2bn8pzij7radk8vhwsa1sn19326g";};
 vhistory-61719={run="1m3k7qhrkxa52hky57jp1p23sa2binjfkywv51hjfkz5cyhcqi3r";doc="0f8agd4p659ncqx66yam1q30jaxx20qcmg649w3vy7fwf6crjiyp";};
 visualfaq-61719={doc="0fjx5y95n8bhsnwsw34sazbgygznvw76z01rrxmn1bp8za7751n0";};
-visualfaq-fr-61420={doc="0xk0qly49dqkrw1qjhnyp4r7y5jykghlp1y26hipghlaqqhdynga";};
+visualfaq-fr-67718={doc="0xk0qly49dqkrw1qjhnyp4r7y5jykghlp1y26hipghlaqqhdynga";};
 visualpstricks-39799={doc="1wfri908smlw1ngqq1mjll2b80b29piicqmv67x0xs1v3kc2sz3s";};
 visualtikz-54080={doc="1q0a1mhc330z8cnhghp2p46bxsmzz8cdba8hcvssglz0gsq5z5fc";};
-vlna-54074={doc="0g6x2m8c5mjwjfrbqcndjj45alslin7a0vqasc1j7rhfmqr3issd";};
+vlna-66186={doc="0nfb7mj6y9d4n89z59ppi96grfylwky97mxcv9rjflr5kpqlpga2";};
 vmargin-15878={run="0k0qp68wnfr13i2prx64n463g9xa4cf6y656m2bc735pvsa5ln78";doc="0l1lv0szznc9l5jz261nkcpq6dq28869s6h616rama40kqpdm0bh";source="1vwydnpsd5ha4g86dg2q5s012d6l3yrksc580m41q3i67npb8chb";};
 vntex-62837={run="1857xywsc16rgarwhj30jk9mfdw62483g31gsir9rgibpxdjchsh";doc="040364kv9mizvb2bw22in4z6smzplx7jg9wac7h3wl7739qcfwgl";source="0f7il38l3yp8v6yxgg5mszgiki9z0as1s1i99ky50bvvb049x8zg";};
 vocaltract-25629={run="0af79zsabml28hwhf2nq19s1sf7p6kljyvz6c2zlbx96a5k9mjs6";doc="1sjvklf54r6znggylk2wyf1fw806v8msc2g24ibv4p1ia3da2giq";};
@@ -4073,46 +4189,48 @@ vwcol-36254={run="1wfqcin8xmxrby5mxn9s5j32zmr4ka4k0h9ps4kdddpq238db89n";doc="1zy
 wadalab-42428={run="01lf8nlga2nycr23xpzl6xas2nlgajjmia4lk4zvjdgcxqnipfrq";doc="0m8x6plkry0p3jabvhgkccb2rvlsz941di4ihfc8schkq7iyjlxq";};
 wallcalendar-45568={run="04rck2mzvzpm2f934iz4nni9s5w9g7a0qcp3kvp3bsqa6nhhcf6v";doc="1b2nn4cwsb6vi29a49cnnazpzffwbpyw48wffklv11frbmk74dnj";};
 wallpaper-15878={run="00cixdnwr4vpfpqfdcbra4gwz0i36kddak8ywv8l4q4d4yd567c9";doc="0ngsn8an7gqzkw96sdxb4q24h7bvbjw0gsqk6dzrdphclvsjy8w4";};
-wargame-64797={run="140dp6vz4sxymwaqv8acy2l48npxc2s668qhaycgv99ycpqlg4is";doc="09p0f9zpgx5kpp0qh8bij5k114497bn871qiwzrcwjlyicspqh0k";source="0kblmmv8bfrlzpsz2cjl0y52bbrq2sav6n8r5mim1aaxgr2q3hk3";};
-warning-22028={run="1qmymyl01vd3hqvgkzzwffffawbwms0zhs0na7nhvlv59f1316rm";doc="1d27zqh4cn9sa5ivp5a47d8dji73dzvirp6pl7cgcihy62ll34v1";};
+wargame-66713={run="0gck1xa19pqmccblad9lpgj2n4wvlka83grd1qgnkhvwam185r0k";doc="0swifh404yi2mya0xv1np8ga9m8bk0nwrc386bpzgq7s8i1mmlhv";source="16zz89n1z9wif54xs6140xn9rmi9dhaas9s6yjwy6z52gjinsaga";};
+warning-66616={run="1rsqy10fghs5n2zb3g378csxykrlympd40g74wsz9v4aqb5a9xf1";doc="1fsqznifd2fj3czhhhii1j1z79f3vdkjhf46sdhc67y2izqmg8rj";};
 warpcol-15878={run="1dr0ic0pskvw6397q1yy1ibbpl1c1kndqaw5y72zzzy52x4l4j71";doc="1jc7rilhf61irh8kgc437mp45ryz0yr63z11r9ixbsj04dmfk2xr";source="1lnd9b42xyzfnrz94x10vxrmfy6r2l4wlxbfc1c02fmnchj2wq6c";};
 was-64691={run="18yszyvcv57im6qk8kyck21mzyzwmlzn4s64jlzz0pdzpjhn7sxa";doc="1dv6d27zlvpb1kc8qlj1jxbq08czxqrfq9l0ahqdcrl3fawdgiv2";source="0ylf9h95ig7vy64hai9skl7dxvkf0rj85syhcpf9a2p301hchs35";};
 wasy-53533={run="1gvk9gdx32sm4q2f2k4i6yj45c6zyf0hjkq7r6ysygmd2zsvf9lh";doc="1ah93bb5gr4di1jbq316cm4d5iaijj4f06vcjj4x44jajirlaq6m";};
 wasy-type1-53534={run="1zkhqyh72q1w6lr94a7164myp5qfmj119qim58cal1h48n3wypcw";doc="0rhkbkmn7xg044aw1cm44vbwiqfpcixpdpcdvz8yq6in8kmgs0lv";};
 wasysym-54080={run="1i8pvf5yfw5j0rkcpy6v8czvr85p1yk18c8h18iljgsdvfj786h7";doc="07lhw9ss609gjlhv9f0bbyv3z327v3jqblfwhcspwg2sjvazzx8l";source="1i7y0si6mbd6kxbbyvcfak46hrcf95xv8x6nc29nc6adqjbygkiw";};
-web-62517={doc="029qxwfgv5qqvwvamc2y94vkx7q510hqa3yfkaa54cwzqsmb9ksy";};
+web-66186={doc="0iiyzzrgwakw7ipdnwmjwcrqayzq4yn4786zlr9zirmmj34hpamz";};
 webguide-25813={doc="0wid2sxrif3mm3lrs0s6pil949byviq4d7924yzvmf9hkrs5f03v";};
 webquiz-58808={run="1bl334im0jvsyx78g6jq9m8623xyr4xz0avzfaymhs39dv17wsyr";doc="0lwc3r3w2d7lzz39ilncbckmvx536z3wvz84jlnv3flm2dll2z7s";};
-wheelchart-64373={run="07v4g0vl7jwny8v2d3n7xkirdsgc1n0bibdq5z04jbfvhij48lwm";doc="0zyzc88ghs4dsk0kvb6r0rp2d9zhcbsasrnjlkdfplyhyhc2vppg";};
+wheelchart-69040={run="14m5nrs3iv6hdryi9xn3yral2pr5vbabwzxq882x8qfhm4c75ch9";doc="0dlffrsc1lyx56mhjnxla20mf7qh2blybdw2xnc1nkvw59yj4dc8";};
 widetable-53409={run="1k1jnl3jbrbcc55cl34wj3znfay2wnf8k8sgdslicvnan2j717zm";doc="1giy0gvhngsmfwc87j9k2p820j6bm2mc2r1kbcl4ci0c3383mify";source="0krkcnxzjrn7lqd0qh8lgjixfpd3c5glvj1ilqhak9ifd3lq8r4s";};
-widows-and-orphans-66534={run="0q7125vnly2ky6w2187dzhga2p6bdbsv7ql785ns4n7frnqz9g11";doc="194imvr58m34r3lbqzgws1g8wlhwczgs1wwwlp7gpj2wd0bicxxn";source="0cxvqcccgzskczp7n3hp1jwf1qklwrnbfb2g7ikdirzblscbc4i3";};
+widows-and-orphans-66753={run="189ch6wprsw4xsyk79pm03kkn19h5rkqpfs0g0p6kj5jg39x78xv";doc="0vzcyzcf8fh83llravv0iz739ilr15qpjkgyjmb95r0a9zwx044i";source="0sf8picg17x58baw36s0z41p7ck26439wjra4mbc6kl6gh11jqmz";};
 williams-15878={run="0pbij6hwk82pmddl199sxin34fk22wzvgfj0dpjsg0i5qrsg0qcl";doc="0vvz6fsh4vlhwirz27gyni6xnqinhl6iymgmfhlcc808y7fawcvq";};
 willowtreebook-60638={run="1g8v5am9pzabiq5l5306q0s3a9zmyrdx5s7pjbpph08bhqfhxvvj";doc="1368jr8d6444bnalx4p0by1133liv7fl4zpvafdm0a6gz8b5n5pa";};
-windycity-61223={run="1d8kywgr02z32cm8clyl5h3r7h49r5x8gwi41jiwyzid42jln0hf";doc="18qhpg0gmwnh78gvg8zkbzjiy9kscjza3i1d5cq4jifldv5cj574";};
+windycity-67011={run="1r395672jacizgwyk2jlf1af1np4p8i54vf4g6lii5yv0yhx6pmb";doc="0f6c5pnm31bdanbcjn5p7icq9qbk7j07sam6g7daj670z385lx5f";};
 withargs-52641={run="1b49fag0ivb5srlsxcbmy8ssqsrcbgadkvcxd6xn9l9bk28wpfwr";doc="12n87c9181kskqvx7bzvqjimg7agcm8n2z7rxnh1g4kh9bjr57ms";};
-witharrows-65841={run="045wa8y7vfsdgsqrvcr3yv8qs3hmjxgzmqkq3zl48pqd0f70slbc";doc="1656ksizv7lvbj64xscrcyi2zbqyihzjxhphmys79a6cvcrr1nry";source="0h8bwm57s9n0npa66k3lf4in6q2mfzr9kwndqyip697ij9zhr8ws";};
+witharrows-68047={run="1z4v7vr44xd2c8b86am74xi41796bv4gql41hk1zldswz6gw8w35";doc="0ycg0p5a9vzz7nihcsb49vdcqnwzvz6za7dibbx7am0crb4y9a38";source="1vhdm893g8zk7aqqpx7wsy35phaffpfhd2cj359z6k3r4km548bz";};
 wnri-22459={run="16hcapjdb5dx48gbcvk2bkpnp1w9knswni2vs8v1l9shxz03nnxa";doc="0wpf06is1vkaw4ivhrz4hfii3qrgs71cawgn1fnm8fdzalgb2frc";};
 wnri-latex-22338={run="06m6xwvm1pxz2bjf2xa7k3x6m70p1f5866wn5imipmhw4wjs2jp2";doc="15d9mcvdhs1jd574gm6a9ppxyy7avclvq54ikcmlf4vn20lygidx";source="02x8fdavhkxfnxhvr891adpn93yhqccs31w05h8f9hyg34jlnb30";};
+wordcloud-68209={run="1s3fpbd182zqi94kg59mpssdp51rh7gw5371xrp235g8ih50054a";doc="187ap98yaffx8nf935chvvgjalx0g8xk4gnaqbblxkz26qi8z3f0";};
 wordcount-46165={run="16vxb87jyj7006akcd7fdvnqihz9rjyw2pl43mdvr5lxp22fpxdx";doc="1yv9lj7k7m446knp2ghsj0dj95splsc6071w2iarh8cq1xlbj3kz";};
+wordle-68170={run="1kz3xxwls671vv1czi7fy6k0cpzrw39afqmakq8apnxazi96lp3l";doc="1jjfsviijxk6n3qymsa7v7rn7slfq30k2arsz3xrgvri2c22z3yl";};
 wordlike-15878={run="1mdgcdiwnqcsrqrzbl27v56xpnzvxb7gg7a8vass31srk8n10ssq";doc="0i9k22hwjkq3pb6z8hiff6zz8l3yjp4vh8x89z5mcbg8iw5gjacd";source="1azirdir33aixw7zh9ps9npxy1v8ckgsdjb96ri1ma0cy2z5d1ij";};
 worksheet-48423={run="1rsh38fx4ayai0mlakqgpzxpnwp6ckzjcpiwy7aqlpia0504jgpc";doc="1hagdjrf472ip4jjkrjv6mgycwjlhbggval7kkk449i0xd9kiz39";};
-worldflags-59171={run="1zgjygxpfngjx944195nmv1qyfqvgdp5izav69505k0n176fg0nf";doc="0s67hgrlfpin5fhm6d35vdd0nksg449fry51cr638aq444yv4r0g";};
+worldflags-68827={run="170wypqn7mmfj4s8gbm363l4hqmmjhsziv22z9hyfhrdh0lprip6";doc="165ny43vh389qqi7rzw7mhfyn04awr397i67kkc20jiqxl6v64r9";};
 wrapfig-61719={run="1axad52pzzsx9d32rivasl5d49dj51adk5kcnb1rr8mz59421rk3";doc="1c3xd0ja4063qzag0v07mxkk52yczlcwdbwn84gsfp5hdmd5cibr";};
-wrapfig2-66119={run="1j9shv3mgxmi4kd6jak97kcis7282gm1s9d173059iq6z9iz4g3y";doc="1bnkqmdcmjywqm6qkl25lxgvbk5l50c3pyx68zx8g7jjy954s5iv";source="0w46ld38i7acv0464j1ipmd9kdsigyldijy247rmgk05znzpadaw";};
+wrapfig2-68164={run="1vkp56jijwjivf0ml9crdsy4ga7763m6hh9kdw94s1zb60zh4zny";doc="0cjfllnqyj50v9jd7sdqbf7inic7jvrzd4nh3dhssgd5s2abfpnh";source="1zy26lvz2b35ywxxcgk5r6p8vqq92bbw33j39zzg4b739jrh842h";};
 wrapstuff-64058={run="1w5bnl5w2shar2qg2lm7768n8h4qvgzhxaacphjhqbx9zb1r20w3";doc="14npfsqr8wp1bgq9az4x23rmkkgpn37w4cr6c43wyqs7cvizz0yl";source="1x34kkbv8n8c89x21ikv2lyzlk24qbwcpcxwgv13lqqlcqxfz2ix";};
-writeongrid-65700={run="1fc9s2xac259lc9i8hhmxr3abpvbj620mk0izz50b33j80211ipd";doc="1c2kjcdw8lscbysqnxkicbq5smzpg9584zvn7psfvnys8qc4kwm1";};
+writeongrid-68863={run="0vkm3hfgc8a3a6x5sxyszbmhprqckpxy0ibz75g6dhf8wr30jrf6";doc="1dvxx2gqvip9wf80m67hb6w76bbwcy2nzk5rm4m8dj9fvpzfv2jr";};
 wsemclassic-31532={run="0zpqx8gi2yf8cm5rmvchz0jprfwcc0gjkwcrygrvlqhqqn7qmc07";doc="0h7vz6pza8bv8y8ihfplbsq8ip9ds2z63s7j7qh84vf325ci5chm";source="1522cvwkw0ryvhgdqqd7k8lrbrayrmm3h31c77v7x8a81cry2bj9";};
 wsuipa-25469={run="1grz4s0zi7dlgbks7rx0h0rkjvchilhjabs59h81f92f835lafm4";doc="1zw7ibbqc75k4hplbvqpdmnqg5ks9bw75mrwcg14q1rb1807sp8w";};
-wtref-55558={run="118ajsdd1d1g1fr23pnq1zrdczl5qgdcrqp4ly6kp8w2iwjhqdn0";doc="1nk1w4w8x9xfyr8wdr68gx24vw3arf89ak72rbiwjkspzjl1h9fa";};
+wtref-69214={run="05zfj6b59m0ic977w31fi4i86l7214xixws7yidvnr35fa7wm75z";doc="0g4fsbhhsvszvpnf1vn701c8kr8lpq01lcd2g8nnmknvrpd56v5z";};
 xargs-15878={run="1r4giz5gp4pcnxw12lr8hnsa45yv1lm1ddq6g33rkgs1qjzkhv02";doc="06kfclbfr2kc95c431hn54g0c6vcv7vscsskg9myrp94ilq1qglk";source="0k58hqv0jmk3v2jmx212idnfrs9rxqz93zq34f5kqx8dwhnss9pp";};
 xassoccnt-61112={run="1z25b0dps2qf1lsvmbq462ljyyakkicg92d3l1pz254n2mqzvwjb";doc="0057kfclqs5n04ghsz6ad0pvgzwp4hlpk21c66922nscyl4qrfnv";};
 xbmks-53448={run="0pv35b38frgwbi4ijn1x8w5mx48fcy709adlrkzhy641bw4isv86";doc="1nr1m8mhqwkjl9l9pw72ls8xrvg8w2gi8rar4chk3xmh6kphi7ra";source="0waizijqrvg7qigh317vr56bi2b795p5k3h779p0kbl53k3f9f6i";};
-xcharter-63057={run="1d002nncq3wq13hkp72k2293xidhz21znhix08fgz3p5ymd2rbk9";doc="0wkg6wy2kkq4lp6f93lvghh25hzzjzxhswd2ajxmgaq86cbfdw3c";};
-xcharter-math-65686={run="0y9c9w1whbhbr063d1by0lx02iw7f54kjqfkx3f8w9b4wbrpl0gs";doc="1xh6d4x8ncm4xb5nk9zxrn07hj6fccw9ngsaayink35qm1hjczlr";};
+xcharter-67742={run="07c71gkxryhr6a1yjqyqypsmr4ns986g00nqi0ij823bz6q34hk2";doc="0mkgx4daalf59qrh0afd025r0p8nq2908f4fs1am0sy6svc1m16x";};
+xcharter-math-68992={run="1bys9mnl562jq8zr1zd98c3vyvpjw1xp7pblaxcwxwsy0zij8291";doc="1f9rm0ga8mdjkqj4qv75c73cc9jbkjj6bnm6s4ayf4lbqhirzjn7";};
 xcite-53486={run="0zsfyaxs0w2xy6fa1s6hlrcnzw1q9n4n676bv6j80cwp5cw7nnhg";doc="1sfziwn05dii3gviiahvmg67kb04hzhz4cd1cwjsrrvnjii0dqb5";source="0j5blcycs86vgmi54z0b06il06zzyjp4v15lmdwfnx0amb9y8jr9";};
 xcjk2uni-54958={run="1x77gmg738r2zbyd0mc7q079hz5wbvabyszmwizfdj6vflm86w3y";doc="0xig1w251dsn2qd9iywcdc20plibadiw8hl1iwygpzfa3187djjf";source="12hbjjdypk0s5k5iaac80n2n4z1zlkg5lp59y58dwnn4y1dx6m6z";};
 xcntperchap-54080={run="0hqagjlxphvfqmslg91fpxngbm15i3kmawglszj8z585i0j570di";doc="0yf5ak4xr07jzlh8s087c7g8rfa71isziy1z13qy8ifv2882p9qa";};
-xcolor-63563={run="1qwfxx9nfl2nr0hwyckf63q53h522w0pnxvjyn95ql415im4p0rv";doc="1rvzrqxmlddgpc2i03rkiw0nmfc0772dwz4s4fdwqnn24ydsjyzl";source="1bryjaajqa6xbnbkndk9b5d2w682xci1wmqwvbfyz7sjalppa87c";};
+xcolor-68864={run="1s4iv57w90ckapbaplzj5p837k7a0gvx8k33cici0sqi115iqvxc";doc="194q54ls577n7cv6hwz6b5al98lh3v8za989cmrqg7gn1ahr5pqr";source="12lki4jl45c4jiwncfkcbypghqq8i61m0ams9jljfpgs66421kkn";};
 xcolor-material-42289={run="0sa38kjyy4iywgd9lwhd1aqw48laqj9h2crcarvjd8hr4xwhrbcw";doc="00jfvs4r7hsclvy49r6waanq1q9vszdi5fhlnbg5arhkf53lzii6";source="1jiyl9vry12fl3y2c6l8z5ic8jaahshbvaha8c98h1h2d8mqk6vx";};
 xcolor-solarized-61719={run="0ggm9s8vqw80jfsmw5jn143xcbrx226rwkarjkfqhnlzx85k2d36";doc="1vmr5y6c5mi7hgkb33daamag2y4j6vpiyxnh0cpya824l6miichq";source="06f2x0w9k87wd75vm6gjxg2pdrcv3g6406nraq2mnlf9sial9mnh";};
 xcomment-20031={run="0hxbf6hid76d1gm7ngjbrrcb0x7faxsqa44560f93n6arhj1nmwm";doc="11zcprsby27n8dh78658r6xmmkpqzmx28f6sqc7jhg403jq0j27f";};
@@ -4120,7 +4238,7 @@ xcookybooky-36435={run="0hx5n7rz2aw460m9cqk2f2p4d3v7fhr02cjf8wk471fp8jwn5bx9";do
 xcpdftips-50449={run="02g4rm81gf314ds6yzrgasj1ighbyvka7p0vb8mrl78m1ybqjab0";doc="0wcbx6qx288448h2rffv87xgzfj8i30z1v2j6qcp8nlqq21lmw38";source="1h60va01gkm2m9jz521wx93libahh9fi3a8pyb67l6zgjd8dllxi";};
 xdoc-15878={run="18nqhig2kiwa1yzk06v65hzriq6la8c31j6f7caxzjrhjkzx0rvm";doc="09i5zcp7qisgf5rj6ys4rqvj8v8lxcxr16ddmzzvibgdc8kpc3za";source="0vxkqg2jl0qfnahfs82764z7npvsyc0ys3qlz6xk61ylhyqvycns";};
 xduthesis-63116={run="08cxhw5lhklv7vxl30fhwmlgq4kmv53a8qppcmsap1v8jc8vjrdk";doc="1j8pqz4l85qiziry85w7a23i6s577nb2cpbq4v5jgvp5l8x8lhzk";source="0zdlq46z2l3y5zydal9nsawv7nhhp113hdia15d9fd23j8gq4jdp";};
-xduts-66475={run="0l79ks9j99alp43nia6m6l1wd4r5a4x9v161l25c9zzcjg6xb29n";doc="1p9q7g77rbc7f3pzvnry8xhb956pzfcys9358lhxkvf3wh76rar9";source="07cn29j9y5aia67q8ja37vhql5yj49jravanz27sgizdzqp5sf5d";};
+xduts-66661={run="0l0p1xmnphgsfqq0q4si38zbrzxgmwzw3mqq7lyd48vwq8m8sqad";doc="0l1v9a1c6bhd3k9r272y64lyqpgn1vi6hflz8cg90ybxqxwrgb3d";source="0zaxm3rv20ijh6pmcas69hc3m2x3355gn8g1z06ihn8fnz77wl68";};
 xdvi-62387={run="10aldzxy02d9phqr9qwpxxwci7vf5q9z7sgxcz50kf44asa28fcm";doc="0n4v45wnzba23qpv5nmx87rdd09wl74jjfgpy6z66xp9jsdlja4w";};
 xebaposter-63513={run="1kdrjvdzsn9jwb6awcj2g2cr5csrhzds4w0anb8wm9q3532hcw58";doc="1k2cv0b1l4bn229rjvwcfjivkvgdifjgs5mlp5s27jpq9m5jvpph";};
 xechangebar-54080={run="03d1wmvldpfk6y52sd2pvw3ipglbl8cc851rqlz5jgk82c2frxg0";doc="0cnc62nff1vljwkk6gb6r0cwxq17b2yl4v9ilb7kxapaa6apbp14";};
@@ -4130,11 +4248,11 @@ xecyr-54308={run="1qqfdi6pxlkx6pxi2q61i0diwmsy9n95x4bvj9r3pgaf851p7cjx";doc="08b
 xecyrmongolian-53160={run="1m20p5x1s92cwhsixaz3s0y00r8n0j6172bi8vpyzcpf8mc886br";doc="0kiyjcqlajmpj80n8wkk0ziri83811ivl380i3cyz7rxmsh1hqhg";source="0dj2191iqcm9qpi45h45r3cp4nz5gdviw6xf9iz261b3pn515prp";};
 xeindex-35756={run="06ipq7m9mnal497j3awdspqim3fs7v695pf2x7v4l92vqz3hh1sa";doc="1pa1fa8vjgbzmgphx3fmm93dd5wr3adxrrld5xibk2qrp7fgkbsr";};
 xellipsis-47546={run="1slakkdjh4c88caxcdznir5gkw0v7aahfpqksp4l9as9bsl52980";doc="1jlndanic0xc16ba1hg1lswcxa2b20hibd25bs65wyag04rbh8lb";source="0768vqhmxgra190g0k3k4hhzgkhkxwwnvwmdpymphsqm9lvxbl95";};
-xepersian-64872={run="007x0i8fg1chyc8izb5rcy6qcglsnm1vf5bgaq6mps7kq8vaqyqy";doc="0g2y4ybalqs6q7b91q0y342pxf0n5bsirpv59yyya9z6bbn1pi4v";source="1kxbbjnnjb8d1vkf67j37v4ay5mdi6isjh0aqkdjgcy26iqb1cm9";};
+xepersian-68117={run="1i461pl3hdqd2p02d1xnmzpxfc8bxcip3c61bfjf30cnsa184zvc";doc="0b04na4c83ly2r8jv5d1mpjvhnc7i46kzhbgkh5kxzvjrpmqwnws";source="1409w2mfp50mihwn7vg3krhg7mrijxjc09sgqhxa1fgv1c3yqisq";};
 xepersian-hm-56272={run="0qj98xrbnh9bam0a6c6vy7ffaia3iqsx5s71bjlmbnyl6y2h8lwp";doc="16f5x8jv8mqf5a32gvrzqwh1xz4s5nxwqsq4q8sg1za6micqniyg";source="0zcq75xzkr0bgpf1xdsphrkcv70q17vs8jkhzxvjrfzilh9h3iqr";};
 xesearch-51908={run="1rszh3svj87vw5lskxv8bvnkzzj6k9rbikl6rr87ry9apmymsklg";doc="0cb73d981aa0s0hg2ynrg3zybsaw28f5b29zmqgvzqidi8vxfbhl";};
 xespotcolor-58212={run="0w7nns136gfz1dvq6iplk0jbza85lpzlpvsxf1bzjhqw5sk6v4p9";doc="1fai2v8x4g9cmda5m6nvf6g8w6qg64qfdq1rvjlz1qiqmy71c8jy";source="14yachqawnmpldkwc3f3q4krj2sr1kad7wzy1lfxwqggvpbdcjkh";};
-xetex-62387={run="09124rd2k40dihk4c1pidkd44rvhv1b0ain1bfk5ry1032ky7wly";doc="1zj2mwi7rlibadwy42f1jkgzni6wvz01rwd5d7w48x00sjxhckxj";tlpkg="01xia61wywddd2aa8xv703z1fb6sz4n13gvpbk7kync4dmki8v48";};
+xetex-66203={run="09124rd2k40dihk4c1pidkd44rvhv1b0ain1bfk5ry1032ky7wly";doc="10x15yqxsfb6xsl8z75i1hnh6dcff6ivl036945cfqsycyi9sq72";tlpkg="1ai1pw2hqv01z24x9s7vjva5v487rrr6al7rqpa001k7in2ijff4";};
 xetex-devanagari-34296={run="0i6hkzl2jbiixzrw2gvngnyzqkz0lfdilj1zz5xi6ypffi4vyihx";doc="0ahcawr9872lipz33jrv870lj2601j593fwfqcn5x0jhas93ch6c";};
 xetex-itrans-55475={run="17476frf0r4w50bfbk6g6ic40kv3x3i6qpl642glb3vyzyjd5dbg";doc="0bs67djfa9pi1k2900y2ybnv6lgjd031cyczks0jjzfnav2g4df6";};
 xetex-pstricks-17055={run="0i37r4lk1l36cch6kjz12mfzgpg6hd7n903fzbj9h7mwmjwnrylk";doc="17kiv64h94hf83ailbw29wf15r7gv9yq06h3l53c38rn0n20vdz9";};
@@ -4142,47 +4260,47 @@ xetex-tibetan-28847={run="0r8xgnagsqrkxr0ij0mcv30vhf7c3amyf9lk895lgwsvz6cysmma";
 xetexconfig-45845={run="1253njshiwdayzq0xir9cmbi8syhjb3sc4pyrw9p6kzyqvckkcxm";};
 xetexfontinfo-15878={run="1sc0lm5w94320f5abv2hw2bzqprhk73fjv2lkv380fgkpdfi7pdv";doc="14mc9snykdwzcmq013bs8vzn5w80lblpg05jk57g7fl2z9x6xl38";};
 xetexko-64894={run="03cqwgd87skkn9bxrmka5q0cfgz7wq7l2kln9apq35xhz6qr5hcl";doc="0iizxcn99c9qvm0l5d1724cw3x44w41rhhlb99kh16bjxs42xc2k";};
-xetexref-65972={doc="0d6xwyd09rrmd0pjvrdha05l1qldppd2k7wcpyfb475pd9q05r5r";};
+xetexref-68072={doc="1gq31fz879pjzn1r0ksy9prhvh70wil785p5nsj2n5pa67hd1h5g";};
 xevlna-43864={run="16ayk70kxk2s23r6nxva1hkb1z7aw7zz1zhmcis1bsijx657kw25";doc="09aaf3mpbh07mix5xvr20zybbbrbgbwcmkd5q0rfsd0ac8cm72fh";};
-xfakebold-55654={run="0dd7dj7nrdxrnznly4qvsayfb9n0cd70zr41jm8b7n800rn8z0v0";doc="00k39478xw7hldrhdvi2g8gl1745msxhfiln04q64m6ahpabca92";};
+xfakebold-68929={run="1xmw5mm5r2r0bvqga95lvcyf5y0jf7hc40sgzdnc2dx9n8sizwgf";doc="06a3znvv53c3ymfh53f37anlgj8878n5mzcw0mdjszlg8q4bl914";};
 xfor-15878={run="0m4y0caa22fps0r6735kb9pr2f89z5a8wflzrvpbms4nh3a61zgc";doc="0c0qg60h631d3m9rqr0nwj9772zjv3ch0d2p1ksnqnjf30idydl1";source="16xp7hziirlnd507g9bjvszm90wk9iv6ankq8bx27qkyk1shhjfq";};
-xgreek-64300={run="0gva8rgq8m03ik4wx55dxrin57k92d853vnihfpqs12av7synzpj";doc="0rwc23lsqy3ffjxb5bkwbyj3s0fvrbbf4n730plw642071b0n455";source="0ch2mb352zisg1vccq6mhc4a0gpzcla74qqj0ayrfbg3zbixlidg";};
+xgreek-69268={run="13hvjamdswy98r0z19hgyq9nd4y7x4j1vq06garkpvq9r7x6v68r";doc="0dn65ndxdg10zfzr2s4ybsalcl3gymhygdbyl0cdzsqkcv4xj7d5";source="1g6vpqia7yffnkzdshhgly1c69fdrlphaziia2sgcp9zc7mdwlb1";};
 xhfill-22575={run="00lb01b27h1bg8h37rcm7wmqh5pc3gz7rkw0l6xrfai0mb8ypq2k";doc="0alaqaiz2dfk4sh4xgrxfrwxgisv2p0bfdz7ppiqmli10al1h2gd";};
 xifthen-38929={run="0ys8yq13vhval5jg9a4n4pv7b3v11w1yh63ssvyx3pnr767ay5r8";doc="1miqc1bfwi2ssl6yp9aqw7ygnars27vks0grpyfns494yimy8nc0";};
 xii-45804={doc="19jhzv5hqzj59wrfcr1dsj6z56qfckax694idgf8arri5lnbkdd8";};
 xii-lat-45805={doc="1nn54xv71kcmn9jbkcslz6a64cvjcay9x96rrxnakdj9qcqd27r5";};
-xindex-65597={run="1lyshvrkd9gpwalmfa824w6divm9rq552vmqwn12c4wr33fk5zwz";doc="184c0bsm24p05pwgzxnb8i21q4p4n4dfmq57p6hfjsgqpx9mrfdj";};
-xindy-59894={run="1pb2146xb5g3l5jbqsgzy01lc4zkd39v7rd0rdnwdf7yrxad4zax";doc="119lq9mqczsh1np0876fz4gdfyq1rxmc0ghaqyriwl4fzj6lka1n";};
+xindex-67771={run="1scp2bj9jlp71wji8fa90m9jmjm2075cjand9schs8551and42r4";doc="0yddkhqk43d7hnaxfh3afqqcfqadgcx26f77gj2bs4xl9qa0c755";};
+xindy-65958={run="1jm8gi2pq4rw60p8bh7hp5xw1kyhy9r02zy5s2p2xyqh5c6di7jn";doc="119lq9mqczsh1np0876fz4gdfyq1rxmc0ghaqyriwl4fzj6lka1n";};
 xindy-persian-59013={doc="04w3h65215slnakk5w19m94xmj9cjx01izbk9xijifv5l6dqh447";};
 xint-63562={run="1nhf2g00742yzjzl6hnc52cbp1y97l60grgjhjc7j80w91g7vv35";doc="1340cagm5hxif3qmfwvhy6izkhg1awazg971a9ww8xlnxk70gmp9";source="183llw3pmalq4ylndhnvbfc74h57xl9q6pcbr9bnrazlxkjmfpq8";};
 xintsession-60926={run="0p28r81qa93r9hwsaib9jbg252q76xz1hxlaf6q0r2bs3i8a4hbr";doc="1fzyqf14fdk6mjvgfxg43mx2gncj1c7m0h4fid88z7ffsa6rq1g5";};
 xistercian-61366={run="1bkwcw3n5kkygz0d5ihikxp5hx2mcj3hvbqpggfv8wz8y820fkjv";doc="18q40xjmzd51hnh4ga6g7yx3ra8lmcysavf5r2wv8chqfa6jcxji";source="1vzkm5p56h4rbsj36nnc2c45p6fchqdmym1hh8fblxdy311vjrhh";};
 xits-55730={run="0hnjyncrb0r9ssp6aj9lih23b0z031fjhc7fjjsjc89igbxb8v58";doc="0iv1bs2i1fn0pr3gkz07xaqsdfw9idcyfdd6bzqjryynas25aia2";};
-xkcdcolors-54512={run="0471difnr81ihdan9qm8a15pgiy33fcc8qpwwigkhqby1f2sl6kl";doc="1s6xza7ci8gazqhrnhqj1c4kqd8b7dbhwy01qds9wjxbwrvxrm9y";};
+xkcdcolors-67895={run="0nhg0b4zv1xszx2sl61nyhfc5z5caw5bhi16ia119j3kb2lwr26h";doc="0sqv3kwbhh8ay0igpfal2gx22sbgay3wkwd2kzbs6rgsp6xyvj0k";};
+xkeymask-69223={run="14ll2mzc3sa1271yvq417a03g4ky4fvmb8zhmb9bqvw15vz7v53l";doc="0a9n4l2ffd358cvyc2xqvvmrd3zjq6nz7d99b490ap2734y21q1k";};
 xkeyval-63616={run="03m4skbhpv0l8cg3v50650k3h75x8rzk873hnqry0frb3qphjycs";doc="00xayhdwcwb6nq093v65pp1vzx2icn1xpkrbl7vllls4viq861s9";source="00ljf3z3017jdyifxhvls0j4l4jvdg8wi7sh56ij9qlx5jmjjzdm";};
 xlop-56910={run="1clpl22vxgqjpzs0ypgak0d6z0sr6hw3gj18r7sgs2q0jf5m6715";doc="1acnr4yfcakpnr8pb8g26qh7z9xr4dms4nfy50ig7r7azmdpz9py";};
 xltabular-56855={run="12skn3ld5cjd8jvh32l1h86mcqmx03v2w04189rkxh2q90kyjmfw";doc="1lps5w6p2j0c1bszyrbwdfn9r7mii9k9k6ap9s2ssb2rrfzf291f";};
 xltxtra-56594={run="0zpvlsdsrn6pnlfd3aa23hcrjfnnrjivi7r61g25j9sqcx7cmkym";doc="12wp6zwqa5mi5i5ridd2amnr48xrkqmi92xdhh95ydijpzyslhli";source="0vwlj6f7z7fh1vx257v0gnxj29rp3xqjpxlnn156xp9i8i29v0hn";};
 xml2pmx-57972={doc="1d3ralqh0b71scd59b4hmm707yfrz1rj28ni2lzkhbb1ql73bvah";};
 xmltex-62145={run="06rhg0mgxsv4061w8k6parag7fkhrja81aj900mi65bdwmxqxxql";doc="0zjaf8nvsid88nrvzgprwjcm6nirs6glyy25xws57fa9yhza8di2";};
-xmltexconfig-45845={run="0drgvmn27snq43kjkpg5k4igkcdi56p1q3fwkrv3ivsiqfp6cdz3";};
 xmpincl-60593={run="17p97mqcmy10hql3fvdkkjbmlnylhz852ckai0s45birpk6bvi8p";doc="1k532g5b8fm6ly9whah5133g6yngadb9w6cvf2apwm9hwx1pmnxj";source="14xwxsxfa8m8p2idzbkcjznh46np2fikn511bqw54k4k6991vmx1";};
 xmuthesis-56614={run="05z3pbc9gqfnzp4y4a5p6bmprsr1r63w9l442hgk3pshswc2dflp";doc="0dqmbdz0ydlq1hkz0s3lr12sia1qj7p912carwq4pjg9rrw98z7s";source="1c3a90gpb2siww65yc2l3kf91bf5xvxk9iq1s9cnx1ngxjbs7835";};
 xnewcommand-15878={run="1hqpc8p8bl56gzcmar6m670l6yq5arlh382s3m649lya35yydmms";doc="1r4wlg8368ax3p492qyh0nzxkfgkgvm5bzrbm0jhh9ayk9sp7ryf";};
 xoptarg-15878={run="1ykc3mdg45hhyk5x8lv06zggfv88kyrr1zqnv8s9j8cb5c4r71jj";doc="1g42s8mgr7yqdziwza1g241vjgygzddk6ly8md6c22kj8g0sq9jg";};
 xpatch-54563={run="1almf1wif49mi3yqr4qsdffd6m3q8xcma8x9v737ffczsffhs923";doc="1lxsqxzajkcfw4b9i89bk0gmhrsprkmgqqbj5v34bgvkvh0n5pm0";source="1cf161h6g6m3q8bq38imvmja7ral7lpyb26byb8nn26lgixkprad";};
-xpdfopen-53998={doc="130wvaypfrg9sav0pdcdy1g10fll8pqcsqsy70fxlzzr937glsh1";};
+xpdfopen-65952={doc="130wvaypfrg9sav0pdcdy1g10fll8pqcsqsy70fxlzzr937glsh1";};
 xpeek-61719={run="185jan9h82hrc8bai9h0k09dj2q8p2klqvz042h7xrh2napk060m";doc="0sag912jjxpiwbsgmp0l4p0kw4jfhp1j3sy0lb4kdxcqrzf3m1aj";source="144glnmckvjm24smk4d2xmnkfz8n3r4k7zjmsd0iwa004n28il5h";};
 xpiano-61719={run="11vk7k3n3np2wxx7gv9rvlgfmipmh1x0bjq5b2yvgsfxii65kwz3";doc="0hq4v45nacdxygxpjby6s8smlfkkp63yg83zfmwcl3dgxzayb2s3";source="00xnkxm6ijk1i0h3q0yadklc7f2np19bx3yzq4dzrfavdkxjz8f0";};
 xpicture-28770={run="1z3hbmqlamcm9wgwan834hggks2b73s73h3r2pppp00a1sz3g343";doc="0ymdwdspdhrhgyxw7h7f8nal6h0kjw6i8zicmll5vj8vbmi44dv6";source="1yjvqrpp7a0d3nldqidqrk2xk1lp5vbla865l3lxw1xd5b08y40r";};
-xpinyin-66119={run="1bavg69s0hin8phlgpmz53vkjlh039mancih71amw8bbvh077ynh";doc="0rnqq2hy7wzip9nij6bv0jvahrnsyqdmkvr23fvm7f90s07d1ay3";source="0yj7qh7qp3c1n17vplwywcsjwwy982gp5smxqq110syk6w2hppj5";};
+xpinyin-66115={run="1bavg69s0hin8phlgpmz53vkjlh039mancih71amw8bbvh077ynh";doc="0rnqq2hy7wzip9nij6bv0jvahrnsyqdmkvr23fvm7f90s07d1ay3";source="0yj7qh7qp3c1n17vplwywcsjwwy982gp5smxqq110syk6w2hppj5";};
 xprintlen-35928={run="0ywzhbp0b40cq395x5bv348f5dbbv29cqvlh6gkznr6qkjm6ai3b";doc="0dslr7n1mfbclyxic7pl1i425hbcb925jfbag0sfaal03pbczq7z";};
-xpunctuate-26641={run="0bqv9l0f3fwvzv2hcp2913spilawj21zbhdfgs9k04knda4xb7wm";doc="0r06jwsc38qac0k4b2rmm56phxi0qgmmvlixgk3w3mk51d26jz0f";source="1i5xcn13kr9nbfx8nc34n7qn7zj3p1hggws1yd1bqjpvj2dbssk4";};
+xpunctuate-67918={run="06lcrbk2q0vy6myjc1qs94p6746acawj7z38ldp3vvc4xynrarnw";doc="02vzwbrqj1dzd46xj49mldkw6rqppvq917bj8216argr5dc4dfk4";source="0lrgdnfv9zlnlyyyybr76a458sp8bayrbl0vw6jzzs0psy1lskq0";};
 xq-35211={run="165zyviwxybpgfx9ycngv9nml482faz766q1skgmligx05qzkhyl";doc="01yhk07lrcbl7ppkqvks5j7wjpwyy0zc69q46wh42gbp65vp24a4";};
 xsavebox-64049={run="1zsv2yf8hp3yfdz2hwlqdzhk40xbcm8bhxwq0dzzkdqi73pfay6d";doc="0ad4gm6mxayrsvbc38nmn20jiv72g177r8vdnv04f8z8i02h7im5";source="1x3rm695vs3nh01nal4qyk164kfjx7pjx3sfmv90cj2jkyi4clwf";};
 xsim-61988={run="1ajmvlrmx97f94k7aci6bni5bhhlrf07c7vb8vnjgyq2iik12ys7";doc="0ppqjy9sgkrwcycfj5z1igi6w56rvcb5a12p22spa56fpsh94910";};
 xskak-51432={run="1hirv11b76xl7jx4swpa7imhjncfn81i9qc118qfrn26n890dgr4";doc="0hzyv8gy91avmpf2fgjwpqfkkbi8255gy86xzn5cz3y948l3m5vl";source="1gw6xqbpcsgdi5s7d239j0ds18w674z4zfibsvbgqjb70lixnyv6";};
-xstring-65551={run="0vpbi2v7kvlm6w541sk1jdi01ws1dp0cff2k2nq4yy9icrb4rl51";doc="00gdmsg807cway1y30q44ivh6azjzg67rfw2jz70h1hcg9kbvfcb";};
+xstring-68015={run="131y1vly79iga9yi9lva4bizxs00p4gyx44f7gcgqnd35biqpy00";doc="0sn9djwkb06n917f1zly6gy81j1gixvp0w28a0f4i3whk3va0yac";};
 xtab-23347={run="1cpcs7k8liapv68cghfwj5fw80rz71qrld7l9lsnli50h7ph42sz";doc="1z3wp3hqy98a4l34kgm604zajdyv0b2vq0jipywmdc12115cw63f";source="1im5cv88g6n88rxzx8lqcxfmhkihywrv2h9gclmv0jx2mmwvwafv";};
 xtuthesis-47049={run="1d68hx38gwwscshdm07rcg75zjbsvk5kyliy5rx6z5jp75k0fra4";doc="1fdr5k60zxjb75vv4m6mj1kalka1kg7cw3k5j9a53n01m2w7q6r5";};
 xunicode-30466={run="1h8ixz9zy9izv5j7555094jiwfp5js5y8mp4bh993gn9xn1rb6b2";doc="0jrxnpas07np9a30cybk6jqv4ng96vjqpyyadbl55szkiylzwwfi";};
@@ -4196,15 +4314,15 @@ xytree-15878={run="14f3vxkfmv2s944qpdhxpvbrpxq2p259bnk5sxlcv8lbsk2fvvcx";doc="1a
 yafoot-48568={run="05b2niwqs6c43gl4ag811ljdd0nasmbdinz6dx2d488nl4jiifaj";doc="0mbg6y7qsdsq5nwgdh32kd9x3ghvf8qlbrm84rg6269ff0b5achv";source="1p3zwyg1pf3ad35w25ahlk1r4c18k6vvllcv8ccm952mjg79mj83";};
 yagusylo-29803={run="12p2kxrqa4479wrwcbbxsn5hknr1ai9rf1x76psfs43k9fh1pnn7";doc="0g0vx5zjrfxrf595c0kz378n2h9hrlaf9sx1ypw3iv90zns1sp35";source="1js0slg00sr0bc0gysxvlp3jwlfa57lldi6q7a8fvqjfg9bkclvm";};
 yaletter-42830={run="13xizdiq8dj7iyjw7a9srhr24c1z6g50r44a7hjz0909z3b58j65";doc="1jgv50mssx6g94fh5fcysi884w1iah2qdwb0vrkg6952266gdkvw";source="0byfxy8h76m0jwgd4q0s1ar08sr9ys9jhvsz2l44id321w5276dj";};
-yamlvars-64949={run="0c6862hpzx5jihs30pm1221mj06sf26q2kv451drc39bclzsla05";doc="07srm1ba3b5yhdm6h69nyzyps9i8lhzav8xa1cfxszjpk04if3dy";};
+yamlvars-69071={run="05fjkphk70cqkgkd0gg3abnxdnnr4yyr6sd2pbkyh8jkc1pwadfx";doc="04cjg932c22v40fmka7baj17bs99awilgvmakdbcz4mqiaw9zmzb";};
 yannisgr-22613={run="0h61qn97l6k97zbgk0ghqgr4bf8fhbrb037gdskg2sgxb7zsl5wl";doc="1vw8p9xk3aj3lfsq8a2qv7qd00aqx22fs3427j31wnl1iymwycag";};
-yathesis-66159={run="1kbp66x3rh5mlfpakgfyfk34aq5wq7dbg3dqpy3g3cvlfjm5anwm";doc="0y1v78cy20i042fg02qq7ipqzrfn82hrgzfdxz6p68i10fmzpmi1";source="0q47z4k7k55n0wxabh3sjlfdd68nm8bmdy8hdkl0b5mfa5dh35z0";};
+yathesis-66146={run="1kbp66x3rh5mlfpakgfyfk34aq5wq7dbg3dqpy3g3cvlfjm5anwm";doc="0y1v78cy20i042fg02qq7ipqzrfn82hrgzfdxz6p68i10fmzpmi1";source="0q47z4k7k55n0wxabh3sjlfdd68nm8bmdy8hdkl0b5mfa5dh35z0";};
 yax-54080={run="058i478l85ilq0asix6mkdn1kfzh2abqn9ngar6s339db4h81lxy";doc="06i376649jszpwgvb0bq8wxchjmhwjfvc78pl5q6q1ic2jpkq5pj";};
 yazd-thesis-61719={run="1bhjqd6k4lqk4sypssmrsjl9lqrbha9d0n42qbaq1mg5whpl2b8x";doc="0krsm9s3ym6f3d323scvxn8cf1wjqppglhmzbxwn0cpjq5nl01pg";};
-yb-book-64586={run="1fy9f39kbmlsm0fwgpkm89s81bs17xqvhbgmhxf707bl9jni1xb0";doc="1xdh1cy7whwmkaa3a05i13m9zkaggc7q4bqpqi3r52fxxv71nbqx";source="1lr6vyxxqxqcirmhbmk0177bxa0xy1vlw9mih5w86y3wzxbfpn16";};
+yb-book-67188={run="01ha50044ph7f19jrpkdlfa4idk71k21l28hwm67l4y1q6fyzrll";doc="0ckn24i29cqnlmvml5w77ws9rx9k380c470kv2b2d88709yzzqgf";source="1j29rgbdnlmi4a2px1y3xmq2lsdrwlmi9l3dqsac1lx45hpqmhby";};
 ycbook-46201={run="1ajhl8vkd94yajib69s3jw6v2jbbn7h6g92m0yc86gfri3qcff2r";doc="0zf71gmxj1hwywlw5h8klgyrn9mww12hc4bic0l0gmwixvn6k56k";};
 ydoc-64887={run="19njcgsdhz094w6c7hxp20kcj8b9kvcx4y6zg0rzsxs3h4fr2f21";doc="1dpjwv7m10413dxvhqgxsw2rp9n2gw8s0jghshgmbfm6x46a4db6";source="0y7cc2sl9yia5ldp2la1wy4d53jgxgcpi0v5wkc4m554jl9am4z9";};
-yet-another-guide-latex2e-65714={doc="1bxpk66cfmqc6g0d29vvfd4d6y83nhdxsb9gsfwqbh38yr6rlq1b";};
+yet-another-guide-latex2e-68564={doc="1a4z4ni7327jd1r4n0w2lh7bb8ag7dfdgr6xwl4q5hf2jbdv8mmy";};
 yfonts-50755={run="1k7b78fr6x8kp6354viqfni3k77d96qmx9r76249m5j140hi6fk1";doc="0a7fy4z790fr6q4z5qnzv578x48kqs128wl5znd5bn3mbg0n0cq0";source="1ph8vc09vg0zxc9x1xydrm9wn6q5vml2bc3wln15v69p8nm52d7z";};
 yfonts-otf-65030={run="0rhym2lw9jk2aj73ndyvr32ryz58krmmfbm28cpgaia06crjl4jp";doc="02ghwiqnws03wfhg3sim6xm1ifdpmi4x5yz5azssxnxfwbndp62n";};
 yfonts-t1-36013={run="08fbdd97n2h649kvks6q03zrsjvb1f7qwys3955g6iznf4y8pyv6";doc="0h0gi1j5fcn1nkvf0abf2aimj2q3h6bw4rx7kzg5xra735fqpl4n";};
@@ -4213,28 +4331,28 @@ yinit-otf-40207={run="1yjz72nixv6di0ifsimbnc34wlw6s8nqkwflkag2p75q0jw52qrg";doc=
 york-thesis-23348={run="04c8g1wkl795caadm8kqfy6kdqqgwlk46lijpmyiiykbb8z54wq7";doc="0zp6pfr3giqm4nbsidg06q0c3x9gr4bk3g8qq7wxl9a2pgk3z45p";source="0105amrybkm78pwb9hrd7n8r69sj6lkh1zm7c9sskibb13lqrk9p";};
 youngtab-56500={run="18h6a4b4psbm0hjxq2xnk4bkmsa1wd2fvarrzfkhcj01hgn8bz17";doc="00jkdw02iary6s5szh7hf4qjlr7r8y9lfmvlnrpqkhh6pdhsy3jh";source="1hjqkj12jx9imfqm7y1mqdvp1knhf69kbixr88varbh09d6r9p66";};
 yplan-34398={run="1f2kxbb32hxwgin5bn7b78r8sqdj4v1q80sh1c87425zw8jyd73z";doc="1ls02mng1jwihz8s505brmaqcjn4abqys6bwl22dy855bw5rgr5k";};
-yquant-65944={run="194mnyclwr0nxmgyigfyw82fns4b0kq7a2sizppd4mz826cfj1w9";doc="0vxjrj0hffrpkrdsqy00gndlrsh8qxqmn6jh89xgxsj8m1m2n5z4";};
+yquant-68997={run="0xlwjgc0lwls7zpgbd0v85cij3a66vsv2vwlr6a73s0bjyjy9akh";doc="043yq765f23rdhn3pmdwzy0q3x91hwaawfwakq93acwbx4mqjz8h";};
 ytableau-59580={run="0gfpxbvar3m21pj74j19qnj8qakbknhvssyvfyw61jwdd8ygdxkd";doc="00k10759qihk3330bwfpzmrm9bfb8513w3sak9jlfy5inay59rbd";source="05pxlbj3rdgr15cqfdxviyp2698b7l44rzgssx18yv2a8qnaxylh";};
 zapfchan-61719={run="1753lvv2bq29g43s4chc884n742695agvgal0b99gsrvlkyfp8gn";};
 zapfding-61719={run="17mls8wilz9api9ivsbcczpiqp1f39qy8wa6ajssi8zhnc5lq7zn";};
 zbmath-review-template-59693={run="1zyll0lpd3d2cjizq6f2zxnb1pmdl2qkhd1fcm9f9l6i5fqmjk15";doc="0ymvngll5znvw0i4y65imidy21fzfzsdcz22i2i8369k1n15x6yh";};
-zebra-goodies-51554={run="1f8iv32wgmkzqr75m44hiagz34d9h8qz38ylh3jaq2d9hxf0l1fq";doc="1fz5bz0k6ymj32wc6lkikk0b36b6l9n893xqhbhac4y5gxd1r8z0";source="1as545i691hxy3kqnn72gksgqc9hswz7n48zzhmaz77q6ilnkpkm";};
+zebra-goodies-66630={run="03m5npbrbcmxw9csl2hg1jgzjg96rr2r3yix3sajkxzmf2bcm3my";doc="107wr1pjqc9yswd52gflan10007p7i072gysnwdpcxk880f1n29l";source="15sw808cqfjvwmdnnkds9n1m29c7dzdm3id4hkm2cl92jxiygb0f";};
 zed-csp-17258={run="0wr6dxb5ks34x8rzr7s2cnanxc5jawqcq0zhkmxrh8cjqcfkk1w9";doc="05gm4s4svqa4wds0ichfm6lk39i0y54y33b96bnycrabggqfw77g";};
 zennote-65549={run="0sawds55l9cc15b3lvr5zswg5ybsj8v22kx8h5gn65g4j0zj79aq";doc="0qwl9f1c777iim45xcl00b3zidzs4192hyv6vv14a8c57h28j7zr";};
 zhlineskip-51142={run="1j3wkvd57kdwhhny0dzw0hqqnv2ghx1mdjgyzrhfj8gf3fifdaym";doc="0hy14njxpzffcnyciyc4zbil6372b640bshfw9jq4wyskwk3i45h";};
 zhlipsum-54994={run="0rvwbnqzgbdihdavscn8mcc7hy6yjdzj2fc2h3xs3i77lfa5140d";doc="177l81c3zbgdvjgr861jn917ps174zg8bab824f7dx2gj5mhdzgf";source="098fqbcr9fdv6f6hjaczm3q28dpx0g8xqjykg5hyx7nfp7nh6yjk";};
 zhmetrics-22207={run="094afdf0mwb6f5jvg7z7cs5xinia71cnlaixcihliai37kdn1qss";doc="0achyp4i8dfhrkr9jddp7qzdifcqsf28qaqdnyb76525mvgkip5y";source="0hic8n6kq4sx2dc8vb34fhyjrbbxp50lllyj5sh2ld9s5fwgm3yk";};
 zhmetrics-uptex-40728={run="06g61qm3ryy6mvvaq4whk7084hjp544dig57mwcxlgp6cfs0fq8l";doc="0ybijj2hjm4byli3yh8q9lgb40bdpq16d9273nrmiyy8szxa20qc";};
-zhnumber-66119={run="1iryx2mdk0fkvwnvw8z71bscy0kk41nx85flw88kwmsv5bd3aqxz";doc="07hkrlf3gycv0clmr13c6xxp36yy5wrcmzr39ms3ql205qz94qcq";source="01b6l05j6mkx2c8lbj2kmkl7cr5l9cwj2z26v85mmki1z3fkqmrw";};
+zhnumber-66115={run="1iryx2mdk0fkvwnvw8z71bscy0kk41nx85flw88kwmsv5bd3aqxz";doc="07hkrlf3gycv0clmr13c6xxp36yy5wrcmzr39ms3ql205qz94qcq";source="01b6l05j6mkx2c8lbj2kmkl7cr5l9cwj2z26v85mmki1z3fkqmrw";};
 zhspacing-41145={run="0h588z408lggk7370l9kcssz2hn9lz19bnakadygrklsyhqh9pzh";doc="0s5qyrsi5nw0vppgx90lzz3ra121jgm9hgzg3z791imlxgjn8pzr";};
 ziffer-32279={run="0nalr6i8yqd1iq713gigafnh1k0h8kgiml1zwpk8rjyya606capw";doc="1cr63lkqi9kpkbpnrwmbppipsmw6wy732wsaha0y9y5ia2934nck";};
 zitie-60676={run="131kiycj7q9javr3xs7maa2qjczmva7vj98bw36pv7znwchspcca";doc="00daf6p699y5204lrdg7hfcnmqh3ah764fpjymblvm8hy5f1w5g2";};
 zlmtt-64076={run="1krv8frabpvnx00xwdx058f9y2mip3bblpix05yxpfspx6aarhcw";doc="1xiirzbgh1x34zih8xbf7whl5f994lx9bc4qrirc58rlccnqgbgr";};
 zootaxa-bst-50619={run="0lwin7dfd3nk0r3drznmhkqd7fhfvizxqy3z2xv616spg1jh9sgj";doc="1s4v9azi1pvvh1fizp2azkbwh35xvqh8qcnnn1xwi0g1xhcp38pa";};
-zref-62977={run="07xvr2jicmlsr6mlahf4vyh3f91bm94zay24gaqfj48ph9pakzkb";doc="0ix0zi8zi69vs70ykyrvfdj6j4l9izwsb1j6dsyn6i56dvyc3lsh";source="1hs95sjv2qwqimb664lc46icbycq00743kvr6wcmar97ygf723ds";};
-zref-check-63845={run="1z8735nq12ikq8ldradays9yyz97mp91ah33j5dhp33wv4sap32y";doc="0d2xc6xak46b10j61d43vy4vdq4pspjr5p65aqy1jppljcfv671d";source="0xszpxfvxjrlm6ybyrh214kha3vw3rlvnb7c1ivvahmczi70n48j";};
-zref-clever-66024={run="1bi2xgsk44l8y829cjpwnmwnaakp6pc481mn9145gscxybx2h5k0";doc="1h1qc1lmfimkbcdcp6ca310zyybp0jb09jrmxnpxip7h0fl3w14r";source="0y1nha6631ai3k2pwc0ai2w1p8dxpf2xws6rswbmr1pm90n0v3kv";};
-zref-vario-65453={run="1fbdnv9rvz0ypdglq645rsmgjh195z9zkl3gqlgqbb2pppgjz6c9";doc="0xnq1gq1kjxilyl3cck3f5ppkbvzwc4w2p8z7hkjfwq1vjma8811";source="1kxgjnlh6kasgadrnyxcgiqipvmqwzlah756m2lqpj4879nj8vw9";};
+zref-68278={run="1292p3hmhlngwnhl9lnppbvn4fqblphxmpmbh1vij23v64acv3lk";doc="1xnyvhrhcnganvdzilljdn6x5yh7srijhdd63fc0p5d7zn5hccc1";source="1dbzxl0rc3xwcn2bwaghywsry8q2q34npax5zrv9xak24gplv72y";};
+zref-check-68846={run="13syzhmzvd537gdvwkzvlnbrf9as2yl0id3z7fmj35vjwf9z12al";doc="17f344gzq68c9v2glz24pwxal72aa7mmyi5lvgqx9dkkpzlmghfc";source="1lnnx5fb23pkkzwdl82j765canbm9bbnmmpwwxh9yg9dcz4gwhkp";};
+zref-clever-68846={run="0dgpx323gw46qi45wqvlyhsyw5d60i18bg7vk9ndkb6isvs9pdx4";doc="19dfpz5185m5gi4828vc1hg6njc4jkb2n6hah1hvyg10izbxamgr";source="0bk2irrrbmyh7w6p9z5b2bmfcmnb8sb97zszsq54hg2rc7r1h1vx";};
+zref-vario-68846={run="0p7b9pqldlliwshm2xfm6c69is878nj52dgchx26dqhi8lx8l8dy";doc="0ck4h0wdm7rkhcb7bp0cksy2krpziyjykp15p0l02180c79mnp3z";source="12qsz4fn6d3gpxhi5ppfvzqcj04r9f88a5hj9691kqjwh0507zn4";};
 zwgetfdate-15878={run="1fgz3z1f9ifcbrwiq166hnff23gmlgp5vn0djm2znci26bcip4s9";doc="0gda7xd1sbiaaspb253xgl47jm6bcn8hj101m6ih69mxrka6sz60";};
 zwpagelayout-63074={run="0xl2qyq9037fjxwc6v9hz9gbb5fggqb2x93bibvhdb0bik6iw5md";doc="010120lcnx9d9jj116y6vskch3025jfi4v7xh6nyqlvirsjr4hk1";};
 zx-calculus-60838={run="12i0zskbwky4l81imz83aqi2g1jypy23nwv9fyc3rjlm6aarrzrj";doc="08clr1caznfygq0wqmi0w5955birqaiyvmvz5kjaq6qrzi9rwnns";};
diff --git a/pkgs/tools/typesetting/tex/texlive/make-bin-containers.sh b/pkgs/tools/typesetting/tex/texlive/make-bin-containers.sh
index af49ae22e19f..1d8cbbd4067c 100644
--- a/pkgs/tools/typesetting/tex/texlive/make-bin-containers.sh
+++ b/pkgs/tools/typesetting/tex/texlive/make-bin-containers.sh
@@ -30,18 +30,18 @@ for binname in $binfiles ; do
   # look for scripts
   # the explicit list of extensions avoid non-scripts such as $binname.cmd, $binname.jar, $binname.pm
   # the order is relevant: $binname.sh is preferred to other $binname.*
-  if [[ -n "$scriptsFolder" ]] ; then
-    for script in "$scriptsFolder/$binname"{,.sh,.lua,.pl,.py,.rb,.sno,.tcl,.texlua,.tlu}; do
+  for folder in $scriptsFolder ; do
+    for script in "$folder/$binname"{,.sh,.lua,.pl,.py,.rb,.sno,.tcl,.texlua,.tlu}; do
       if [[ -f "$script" ]] ; then
         sed -f patch-scripts.sed \
           -e 's/^scriptname=`basename "\$0"`$/'"scriptname='$(basename "$binname")'/" \
           -e 's/^scriptname=`basename "\$0" .sh`$'"/scriptname='$(basename "$binname" .sh)'/" \
           "$script" > "$output"
         chmod +x "$output"
-        continue 2
+        continue 3
       fi
     done
-  fi
+  done
 
   echo "error: could not find source for 'bin/$binname'" >&2
   exit 1
diff --git a/pkgs/tools/typesetting/tex/texlive/tlpdb-overrides.nix b/pkgs/tools/typesetting/tex/texlive/tlpdb-overrides.nix
index 83f07016bcd8..5ee4d4d6a79f 100644
--- a/pkgs/tools/typesetting/tex/texlive/tlpdb-overrides.nix
+++ b/pkgs/tools/typesetting/tex/texlive/tlpdb-overrides.nix
@@ -26,7 +26,8 @@ in lib.recursiveUpdate orig rec {
   #### overrides of texlive.tlpdb
 
   #### nonstandard script folders
-  context.scriptsFolder = "context/stubs/unix";
+  context.scriptsFolder = "context/stubs-mkiv/unix";
+  context-legacy.scriptsFolder = "context/stubs/unix";
   cyrillic-bin.scriptsFolder = "texlive-extra";
   fontinst.scriptsFolder = "texlive-extra";
   mptopdf.scriptsFolder = "context/perl";
@@ -66,7 +67,8 @@ in lib.recursiveUpdate orig rec {
   bibexport.extraBuildInputs = [ gnugrep ];
   checklistings.extraBuildInputs = [ coreutils ];
   cjk-gs-integrate.extraBuildInputs = [ ghostscript_headless ];
-  context.extraBuildInputs = [ coreutils ruby ];
+  context.extraBuildInputs = [ coreutils ];
+  context-legacy.extraBuildInputs = [ ruby ];
   cyrillic-bin.extraBuildInputs = [ coreutils gnused ];
   dtxgen.extraBuildInputs = [ coreutils getopt gnumake zip ];
   dviljk.extraBuildInputs = [ coreutils ];
@@ -89,7 +91,6 @@ in lib.recursiveUpdate orig rec {
   ps2eps.extraBuildInputs = [ ghostscript_headless ];
   pst2pdf.extraBuildInputs = [ ghostscript_headless ];
   tex4ebook.extraBuildInputs = [ html-tidy ];
-  tex4ht.extraBuildInputs = [ ruby ];
   texlive-scripts.extraBuildInputs = [ gnused ];
   texlive-scripts-extra.extraBuildInputs = [ coreutils findutils ghostscript_headless gnused ];
   thumbpdf.extraBuildInputs = [ ghostscript_headless ];
@@ -118,9 +119,24 @@ in lib.recursiveUpdate orig rec {
     clxelatex = "cluttex";
   };
 
+  context.binlinks = {
+    context = "luametatex";
+    "context.lua" = tl.context.tex + "/scripts/context/lua/context.lua";
+    mtxrun = "luametatex";
+    "mtxrun.lua" = tl.context.tex + "/scripts/context/lua/mtxrun.lua";
+  };
+
   epstopdf.binlinks.repstopdf = "epstopdf";
   pdfcrop.binlinks.rpdfcrop = "pdfcrop";
 
+  # TODO: handle symlinks in bin.core
+  ptex.binlinks = {
+    pbibtex = tl.uptex + "/bin/upbibtex";
+    pdvitype = tl.uptex + "/bin/updvitype";
+    ppltotf = tl.uptex + "/bin/uppltotf";
+    ptftopl = tl.uptex + "/bin/uptftopl";
+  };
+
   texdef.binlinks = {
     latexdef = "texdef";
   };
@@ -155,8 +171,11 @@ in lib.recursiveUpdate orig rec {
   '';
 
   context.postFixup = ''
-    sed -i '2iPATH="${lib.makeBinPath [ coreutils ]}''${PATH:+:$PATH}"' "$out"/bin/{contextjit,mtxrunjit}
-    sed -i '2iPATH="${lib.makeBinPath [ ruby ]}''${PATH:+:$PATH}"' "$out"/bin/texexec
+    sed -i '2iPATH="${lib.makeBinPath context.extraBuildInputs}''${PATH:+:$PATH}"' "$out"/bin/{contextjit,mtxrunjit}
+  '';
+
+  context-legacy.postFixup = ''
+    sed -i '2iPATH="${lib.makeBinPath context-legacy.extraBuildInputs}''${PATH:+:$PATH}"' "$out"/bin/texexec
   '';
 
   cyrillic-bin.postFixup = ''
@@ -246,10 +265,6 @@ in lib.recursiveUpdate orig rec {
     sed -i '2ios.setenv("PATH","${lib.makeBinPath tex4ebook.extraBuildInputs}" .. (os.getenv("PATH") and ":" .. os.getenv("PATH") or ""))' "$out"/bin/tex4ebook
   '';
 
-  tex4ht.postFixup = ''
-    sed -i -e '2iPATH="${lib.makeBinPath tex4ht.extraBuildInputs}''${PATH:+:$PATH}"' -e 's/\\rubyCall//g;' "$out"/bin/htcontext
-  '';
-
   texlive-scripts.postFixup = ''
     sed -i '2iPATH="${lib.makeBinPath texlive-scripts.extraBuildInputs}''${PATH:+:$PATH}"' "$out"/bin/{fmtutil-user,mktexmf,mktexpk,mktextfm,updmap-user}
   '';
@@ -276,6 +291,11 @@ in lib.recursiveUpdate orig rec {
   '';
 
   #### other script fixes
+  # wrong $0 expectations
+  bibcop.postFixup = ''
+    substituteInPlace "$out"/bin/bibcop --replace "basename(\$0) eq 'bibcop.pl'" "basename(\$0) eq 'bibcop'"
+  '';
+
   # misc tab and python3 fixes
   ebong.postFixup = ''
     sed -Ei 's/import sre/import re/; s/file\(/open(/g; s/\t/        /g; s/print +(.*)$/print(\1)/g' "$out"/bin/ebong
@@ -293,6 +313,9 @@ in lib.recursiveUpdate orig rec {
     substituteInPlace "$out"/bin/latexindent --replace 'use FindBin;' "BEGIN { \$0 = '$scriptsFolder' . '/latexindent.pl'; }; use FindBin;"
   '';
 
+  # flag lua dependency
+  texblend.scriptExts = [ "lua" ];
+
   # Patch texlinks.sh back to 2015 version;
   # otherwise some bin/ links break, e.g. xe(la)tex.
   # add runtime dependencies to PATH
@@ -316,8 +339,8 @@ in lib.recursiveUpdate orig rec {
       --replace '[dict get $::pkgs texlive.infra localrev]' '${toString orig."texlive.infra".revision}' \
       --replace '[dict get $::pkgs tlshell localrev]' '${toString orig.tlshell.revision}'
   '';
-  #### dependency changes
 
+  #### dependency changes
   # it seems to need it to transform fonts
   xdvi.deps = (orig.xdvi.deps or []) ++  [ "metafont" ];
 
@@ -338,10 +361,6 @@ in lib.recursiveUpdate orig rec {
   # tlpdb lists license as "unknown", but the README says lppl13: http://mirrors.ctan.org/language/arabic/arabi-add/README
   arabi-add.license = [  "lppl13c" ];
 
-  # TODO: remove this when updating to texlive-2023, npp-for-context is no longer in texlive
-  # tlpdb lists license as "noinfo", but it's gpl3: https://github.com/luigiScarso/context-npp
-  npp-for-context.license = [  "gpl3Only" ];
-
   texdoc = {
     extraRevision = "-tlpdb${toString tlpdbVersion.revision}";
     extraVersion = "-tlpdb-${toString tlpdbVersion.revision}";
diff --git a/pkgs/tools/typesetting/tex/texlive/tlpdb.nix b/pkgs/tools/typesetting/tex/texlive/tlpdb.nix
index 75501b601051..7685359a3a23 100644
--- a/pkgs/tools/typesetting/tex/texlive/tlpdb.nix
+++ b/pkgs/tools/typesetting/tex/texlive/tlpdb.nix
@@ -1,8 +1,8 @@
 { # no indentation
 "00texlive.config" = {
-  frozen = true;
-  year = 2022;
-  revision = 66590;
+  frozen = false;
+  year = 2023;
+  revision = 69413;
 };
 "12many" = {
   revision = 15878;
@@ -123,13 +123,13 @@ abntex2 = {
   version = "1.9.7";
 };
 abntexto = {
-  revision = 65705;
+  revision = 68837;
   stripPrefix = 0;
-  sha512.run = "e238ffc706d7902fb782c9f97cdc3dfd0492fb2b33ce1a2e3b6839d128fca3a9cbbe0f89e71ed456eb2bbbf00eafe2139e9bd310146af082d33f7f6cf5edd80d";
-  sha512.doc = "21bec45fca68bb40227ed64a2893f65b526e19ac635fd521bdb65409b41ef2bd5dab25977e9ca1eb4df715691fed3fc0eb4c2bed200398588997be5cc9271a87";
+  sha512.run = "9fb1177d1e97995fa8c7038e38fb827e491c2658af6844f62edb547f281120a9df873a98e509d3e67c577d46472c887ca96ce2e2436f748cba9086c6160f2986";
+  sha512.doc = "3d3d58d077f3072e9bfd9bc11e68e17e4885af88864ef80de1010c331c429895c5e03df438d3a0652a8d31623dde5b1cb40daf0a709af6c3a2e90658d13c596c";
   hasRunfiles = true;
   license = [ "publicDomain" ];
-  version = "2.0.0-alpha";
+  version = "3.1.0-beta";
 };
 aboensis = {
   revision = 62977;
@@ -246,14 +246,14 @@ achemso = {
   version = "3.13f";
 };
 acmart = {
-  revision = 64967;
+  revision = 69242;
   stripPrefix = 0;
-  sha512.run = "63bc67438a059caec0efd1c5e74a68cd225ca3d3802045641b041cc9c75013a96e84ba6809f055eebe592a7ef95479e1e84910e471b6168891e49e1d5da03b77";
-  sha512.doc = "5eda87dbf0e40ff096004083d301299734d77b2b65a9148587b241feefda71345d5bd69308e7101375d8985eaf7c9463ba1f8bf8113a1379b3d37b0af8fe8cfa";
-  sha512.source = "d60835fc235c226a3d5441dd2dfeceeda9a0df5e0b412893a8b8199c3fbcb411590c9a451c72dbd2ac15ef2fa4343c7f586a8f9756815e28c5601fff10e14a67";
+  sha512.run = "c51a10fb637e62857d723f103fa9c28e2d0257ebf8a5eaa9968c32446bebde6d49627cd1dee965d2e6832575fe54438ee62585ae1cf833af93537b7ed3521cd0";
+  sha512.doc = "fd0ad303a63510061e6e43c64f77f9bbc27dbfdd6011195f5ae64d5ca0e7263aed3261853652dab1576a614e94de677f37a5a4e165d8d4d525a61b86f023b2af";
+  sha512.source = "b8fff464e69e493152c1fbfd7feda02471f3e7a8ce3ed9dcdbc2b43d8fa30a587768d7c63754dab2a8b84969e5671f2426b748297ac98096fc323f9937dea963";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.88";
+  version = "2.01";
 };
 acmconf = {
   revision = 15878;
@@ -310,21 +310,21 @@ active-conf = {
   version = "0.3a";
 };
 actuarialangle = {
-  revision = 51376;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "0f3cb2dc7b0e392942c5eee41227c93a2559c3a268916393530342fc9600c9c4b946f469f222250c23d9b635b9b51a9afc598003a00eab71d641d9d78db29cb1";
-  sha512.doc = "ac945df0aad5f51dbc900d7b9def5115cc6aa48c081feaddf8cc7985daedce5fbc0ed633ab4c201a0b0af27327b028bfda1875ec6e2e1c90d038441785a0e8cd";
-  sha512.source = "4958cca024dc6918371f68336a67d9950231630ee8f011f9c190693f7d5454eae1d1daf51147f1887699a9c941562cc8c867ab7c388eaf2c154d5373ff245d86";
+  sha512.run = "23878ac98706c08b1fed8f4fdbe7d403f4f0b668ce069837ddd1d433bd3bd3e50e9b041ebec4c8256df56f1649962b7ba2421795f9adc3207a825562633a2b4c";
+  sha512.doc = "f28274449a2c9558a22e1b3a3d648ed2a456d6ee179168d06ab4a6cf339f2e0ae7e43c8b0d2ecd8697ffb8cf5308f0497a13012f4b481ec68e02248036a8cf96";
+  sha512.source = "9364093cb942abdca6062b66d35f1a0e9088c7bf653baca6bd2ecadb8aa2e743c311caed3ea52f42121511b9b66232d5ef0ed554a29a3253c8e52eadd83d0dd0";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "2.1";
 };
 actuarialsymbol = {
-  revision = 54080;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "81260a4e92a75f5ace84c190b9bd7e6b46e8c697824856cfc69f4d9e9f14a4e0230d5623cb6e3bd546d84b29240865dfa14f433c9ad34875fec22944053bb5ef";
-  sha512.doc = "95efefa6e40a77806a2fe8d47575cb78c7e295ddb17b263d2e324610614d36d6ccf1dda75a428b12719d8c4b1fdd3b94656df1ff351f4fb98fc6a94eb87d357d";
-  sha512.source = "48211fe7604a931a8e53599d617bcf2be100ceed5003fd1bcc96ce84525904e68bc279ef672100044e03cbf70fa47f53548ec3686f70a795a50d78d96f792d81";
+  sha512.run = "a36df9659b33223efb54d050f12676e3aa0555c83911a901c5cfe137e8e7b27d68b47534cdd2064724f20a37715b46fbf6863a5935c9fb93f56e4e7ca26bf004";
+  sha512.doc = "ab15ff459aa82dc46a011a7601128dc7e6da720676390167ca856c0942f6a70e0d698a1624b443d3779446f3ac01d4af6bcf5bb5e1e0a17e0e5fefd3deef657c";
+  sha512.source = "3b587f3621cbf4d4446664c253a9cd27a6b69da3ed8d1bc09f6054bcdd450e40f8b38be336ce48e0ec251f1d8dbe45b17b6055251aa76bdf4c36b97ed8e4f077";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.1";
@@ -357,6 +357,14 @@ addlines = {
   license = [ "lppl13c" ];
   version = "0.3";
 };
+addtoluatexpath = {
+  revision = 67821;
+  stripPrefix = 0;
+  sha512.run = "91d4f85e45181674b6ab2bda5ff3632aaab4abc0066c5026478d41c0205e021f12c3cb833c8c339c02e4e033aed351a5891f8527b95cc33f26ba534aeeaa785b";
+  sha512.doc = "ccc8ca7fc9423192a68260b6f441fa7be8a1144bdff8e0eee478f01e2c09d0e54f2a25d7a7fb935f76803003842f16e41916861d9a69e3ea2bca5724b1be5411";
+  hasRunfiles = true;
+  license = [ "mit" ];
+};
 adfathesis = {
   revision = 26048;
   stripPrefix = 0;
@@ -431,9 +439,9 @@ adjustbox = {
   version = "1.3a";
 };
 adobemapping = {
-  revision = 66553;
+  revision = 66552;
   stripPrefix = 0;
-  sha512.run = "ae5dc34fd64804c8429cede14efa25223c6ce0408ad13fcf44f5d6751174ba72ca72cc99b523837173d9ec92d7574088ff0169a40dc83dace188e01d1269625d";
+  sha512.run = "363f7fd337e5a34737608a2bc37521bb526ce726f5c9b5b4d08416e534448306002bc7af1be3f5e6fefcaba16ffc2260c4dea8a486d44dbccad577fb04d6da5b";
   hasRunfiles = true;
   license = [ "bsd3" ];
 };
@@ -464,6 +472,16 @@ advdate = {
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
+advice = {
+  revision = 69283;
+  stripPrefix = 0;
+  sha512.run = "fab7716603412d29daf4710ec6c04742f1d2f898d818f1f012932c99ab51bb8c9746bd3ab5b18752218fd37dd09d4550f3d2b8ef59e9aa852a68a132366b1900";
+  sha512.doc = "145aad6269324b04cbe79c159734ae30f3b13cd361250260ba374fba07c39af8a00974d0e47195dc4a1390a881936c443c671b1e09e8f905267baec3a60bc2f3";
+  sha512.source = "49e25acd701cd657f41c5dc611b9fcf7342918f29f276eccbc584a88aaa0e0b777c5838e84f067924943bab3b22002fc94f4a5d8b977d2c64a09567ccbca0fbf";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.1.0";
+};
 ae = {
   revision = 15878;
   stripPrefix = 0;
@@ -492,10 +510,19 @@ aesupp = {
   license = [ "gfl" "gpl3Plus" ];
   version = "1";
 };
+affilauthor = {
+  revision = 68996;
+  stripPrefix = 0;
+  sha512.run = "4aaae3ef6ba9dcfcafff4214c3c425a40518687fd01600266feb3ac1f836f6d1795fd1c2903f57cc3010b7bf5fb153876a4bbb83ac81576e6423589baeeeeaf8";
+  sha512.doc = "24c28a1c6879c2a292a96fb10dace8d1dcfa2a1a71e07570a232ac70b70e4e9f10f7af823fb2b8d619dbf587e1f5cd9bc38e1a4e2fc6e22714e5deb27a0edbe1";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0.1";
+};
 afm2pl = {
-  revision = 54074;
-  sha512.run = "e539a12013dae7b30a83f615fe9f01678a25136a72ce754101aeb6bc8f1d287e006648f3050573ab211eeb00e5ac8082857b15e388d0da4886929a57d018fed2";
-  sha512.doc = "771e72385110bfaf133865ceaf9cb85a94dc1037f7390b027b21a9117aaeb00e88f67b191229fbbb61f417ccecd6556335ba1d2ba46a0a65079929a0ccbfb1a7";
+  revision = 66186;
+  sha512.run = "9ec87ccaff69c7467f803e4ce3f3408f8195cb93f571a7c7aa5f195d3de80b480b182831d239d8b2144dc72a5c26f9da58973075b6a939d23a51de0acdb1d199";
+  sha512.doc = "e18ef6478d02676a3edc048ec1f8bc37e7cca97e62164632dbf02595a051e6d09d19ba8422c4a617523dccfe1a6ed55fc9be34d1c0ffc147bbfa4e5d8f2daf40";
   hasManpages = true;
   hasRunfiles = true;
 };
@@ -599,10 +626,10 @@ albatross.binfiles = [
   "albatross"
 ];
 alchemist = {
-  revision = 66557;
+  revision = 66924;
   stripPrefix = 0;
-  sha512.run = "705bca949b8f95dc5a5981155bcc5b8bd2d0d36b2f7a7ce4d6eb4f0e6ba8a453171c76752ced654f971305df1677ba5361b04bd3553da0c189d78fa9ce8e6765";
-  sha512.doc = "d19c79d3e54fafae33b2dae0d3024955cc3e63a7968f0f3cd71a44d8ad570e27459ddf4dff4a470120141c6fd179d13a902aa83a70fab5471b6ac2bf0ed3ead4";
+  sha512.run = "3e4c4902c70deb8f380d3ff5e1a621f595ea1dc47cde3579bcfc12bd0a066d5d1d6773ffb1d1f98aef336c8cfdbe7770e1d48f5b89fabb98308f54df5dc75fcf";
+  sha512.doc = "cb978dd26bb9b95a29f6ced2ed4891f27fd0646daf560316dc1b20827a7af454fca1b6500bd4bd5c723c4fc6a24b77d6d7c7a6eafb3edc99e2098b11e4f53029";
   hasRunfiles = true;
   license = [ "gpl1Only" "lppl13c" ];
   version = "1.00";
@@ -616,7 +643,7 @@ alegreya = {
   license = [ "ofl" "lppl13c" ];
 };
 aleph = {
-  revision = 62387;
+  revision = 66203;
   deps = [
     "cm"
     "hyphen-base"
@@ -633,8 +660,8 @@ aleph = {
       fmttriggers = [ "cm" "hyphen-base" "knuth-lib" "plain" ];
     }
   ];
-  sha512.run = "222d0c7045ddfdde5f0ca0ebe20a029c32fd0d4f35326c5ead6bf4ebbcadc86a2a2ff609bca3a6c3a04a09828c50c885f49ef9da0e6e548c18c2633400865c7f";
-  sha512.doc = "77d2daaacfa99d7f4ed5b70706751936bed5ae00ac67490e428d900b5fee3d78797d2324039743cbf0cb06a3a03dba17643d67d9057d020a95a536c860d5e78e";
+  sha512.run = "326c0c2327ec391a2e6caa5b7bed74af44be58df05b58dd2d2ed68ac96151282f63cc51dcfad7b84f3fa716b9df1d9fe97e27e4ebefe81d40a1e0ddf06be48e4";
+  sha512.doc = "33dbdb3fc2ed1cb698b1b3a1826771475b27e33c19ab102b5f0f403f670abd10330dbdb4223d9f5b96cff001a14dc8d25ecc9a084a612b9db8a1cc6a70bec090";
   hasManpages = true;
   license = [ "gpl1Only" ];
 };
@@ -670,11 +697,11 @@ alg = {
   license = [ "lppl13c" ];
 };
 algobox = {
-  revision = 52204;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "0c7b068f117a5eb591646e32faf3a9dfb6a03a218411d092afc33c7adcee30f95836a9d841444fe87a700288e293510763807d393043518ba70e64a3df82099f";
-  sha512.doc = "ccc96b84ea2d1c6c9dab8bd286e24f3dcb4fb9dd31904b1eef4b07a1de34a067f3cccd3d8e33785edced6dee8673e60d50ffc201643912d732660b1f14404d74";
-  sha512.source = "49e1b417bb0df72356f5d4046826268dad628d6872732a61cc7df789bd214799ed49a4a0778eceb31369fbf8cbf21c6b142a85348e10a7ab634828108b7cf03a";
+  sha512.run = "42192835e3dd2aedf96ae3602b3009af09512425cad0ee3dc859a972ea5b8ec46bbed35456b17f0ff7a31faead6df06c01734211bb0f206eba80fb05e66d2663";
+  sha512.doc = "5d5de2d91d0a5cbc63774259934fcb8b772eec36e9841d8f9e5d813e5f40cdce3171409b131ca788fb2b6eee651caa311128fa075eb22c969d2456b1e54708b3";
+  sha512.source = "019badab6a259e9e41ad21d81b53231fc9fd12f87c8b980610dc5a4d60fd7c1201d9f45d71d46dd3b583df1ae8725fe0b183c4ed0b4a35e849bb5d0281a6d31f";
   hasRunfiles = true;
   license = [ "gpl3Plus" ];
   version = "1.3";
@@ -716,23 +743,22 @@ algorithms = {
   version = "0.1";
 };
 algpseudocodex = {
-  revision = 65860;
+  revision = 66924;
   stripPrefix = 0;
-  sha512.run = "7b69eddad12567fb6fea17a3205c56e695ba73015143239def94e56adde3194dc847ee049ccbdde15e5a402be02c0aa7459f9ad20b1c2e0a1150ac06cc3f24e2";
-  sha512.doc = "2ea383e6427973ae31d54d8f04cb45e2ffe649310c66d8d9866160ac7f71af786ab0899b48bc8f7c704fc8b54063df3a5e786d7d808aabc371eea96dc00fdfc6";
+  sha512.run = "0a8b2e49f389066575d403eced31e57cba4af96619bb2ad09bfe51054193d3033705736ea23233b8da3e5e9e0714aa26c4132c2227fa36cdbdeb7df50035aec4";
+  sha512.doc = "5ebf9cb1c66d4e4987387958758aa5d174002409759a38075f6c32e2418f0db670445d2b9d61442c5fe719154d137e3156c6871063eae7e5c4b50593022af623";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1.0";
+  version = "1.1.2";
 };
 algxpar = {
-  revision = 56006;
+  revision = 67495;
   stripPrefix = 0;
-  sha512.run = "90b0e879f0b335a2fae58f09ef3081096631a1cafce3ffa1d4ec396bea8c4c5911babc346b5c9864a2a9a798ff1ded2a489684ac97f6275d7f91042ae8e9929e";
-  sha512.doc = "d0e8e696fec318f395a08cfaf4e809b1fdbe3a6b86a162c69b6558eaff01c85a387bad0df4e0f4c4854572a45583dfec79db8ce78261c45a1cbb8112fbae5777";
-  sha512.source = "b60358558a1ca240bb4aeb1762855b200fc59db95e27ca65f8916411601c4315b7c05fd0e0b7073b2a627c2623e7398f3619d662377f1b3a72967170a1f45e54";
+  sha512.run = "3ea0ccb08a088e16c3fd47f5455ec1c3980d242c4f9db838ad07dad089326bead01c03708fe25fe3a14ab3abfdee93c864d1c633f5e0fe043b31962ca1dfe462";
+  sha512.doc = "196b2539e23d96f2f7967272d59243af9eabfd588c8ad4cf69174493084f5f3af0c088e3e5ee51df96a6a5de02a7d3a84f7f4f7b3f0cfec0fa4463fb929055ed";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.91";
+  version = "0.99";
 };
 aligned-overset = {
   revision = 47290;
@@ -791,10 +817,10 @@ alnumsec = {
   version = "0.03";
 };
 alpha-persian = {
-  revision = 66119;
+  revision = 66115;
   stripPrefix = 0;
-  sha512.run = "c353e33c402622cac42e00bee21193cf9ae7d6f1f2480d3d81a1392b199a3c211613d3ebdd79d031630514005f7b0aeb308202f414df5ebf9fd09163acdf351d";
-  sha512.doc = "112458509e26a515fdd67f9720473ade30376d2b7a69ee1c335fdcd6dbba443738c098c94742479753fe68538fbeed9ddba031b124a771d1354f4ce0f46ca3af";
+  sha512.run = "dc0344deccdbdac04c5a798a52785e913d6da3997b907a07894f86b1b3ed12640a870eabec3bf5916f9835a8a405ae4c692bfb70a63022cf8b52db0c2c3e1382";
+  sha512.doc = "a5881df317b723fff5e00a89706584d05d650971a4bd88d3e3f71df1e7dc021289f9737d1d5239d6196be29307599c3bc1ff782c190032dbea9bea0140547866";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.3";
@@ -925,11 +951,11 @@ amsldoc-vn = {
   version = "2.0";
 };
 amsmath = {
-  revision = 63514;
+  revision = 68720;
   stripPrefix = 0;
-  sha512.run = "3a1f01c2249557038d07f4294a378156cb1b83e9120164e88f5825e09c2d1d930e513d4e10d7db293072ff80cdd025fa52735de86056dc71d5a60742c19be85d";
-  sha512.doc = "5280ae6e465401c08d1ba4a28f6f4cb0581aef8f1df1a6299ddb314356927991fb4db0db84fdcc3ab289c019c476c289a4775c776a96d18877273e75179f5626";
-  sha512.source = "60817410435a93668e8e19e9e326833c49cf792fdef272d4ccf90ec62c8a9c0d27e7aceb3e1c74572fb44c291d9557309bdb818c4b10f520c0144df2d6286d37";
+  sha512.run = "39e87ac8255c577fa8b1c0cd155d4fa21bd0c0f789141e6d1e75cad1c34a78bf5fa44277342ae9d93d80f4f88f31ca9f88dba9c592ceba04961e601e3e8e9650";
+  sha512.doc = "b1dff0cb1c09a184dfe9dd890ccb6e9e5bd5d2b109ce0b98336ca4cc1a45d4f398eb7822d02e9210c611c98a49fe41884b103e1b1e4f7c6b3b29b4de5be2ebf0";
+  sha512.source = "c1d052395b6f6291a269d610f713ce01383940685af91b1c2dd711b73f5d765e801524a538687d7f8cde055bb1dda9ca11900e4e8b58182b3cd792fdfbaca6be";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -951,12 +977,13 @@ amsrefs = {
   version = "2.14";
 };
 amstex = {
-  revision = 63708;
+  revision = 67930;
   deps = [
     "amsfonts"
     "cm"
     "hyphen-base"
     "knuth-lib"
+    "pdftex"
     "plain"
     "tex"
   ];
@@ -968,8 +995,8 @@ amstex = {
       fmttriggers = [ "amsfonts" "cm" "hyphen-base" "knuth-lib" "plain" ];
     }
   ];
-  sha512.run = "d92156cc5a01152776378c8809993b2ccbc9e917125d2ecfd2a06482401008385928e279a8832f328f7a8f4f3eeb746f9725e4986e4eb2f478c20a432ea8698e";
-  sha512.doc = "ba87f3c3858ad7d86de6bcc03e50c5407e83f9de4bd3b3c63e3ce612fc5f933fba0d10bbad88525bae0a1f489adbd02643687f650874409962ee5b29447e14e8";
+  sha512.run = "4f380f6c67b3c92d4be1b3a9ddec3b464e91ccc632762d6bf28f47dabf6e2e096471dd64804deb370349fe14ddffc3b4d37be195cb63f87e47a2345ebbdbd7fb";
+  sha512.doc = "94b3f6ac9f2314cf5e3335ea517bd23e0c08ef10e5edcc032bc5907fb69b04525ad434eb896ef8d5b149033148da55703039d5481242c2f5bf791c1b32c85388";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "lppl13c" ];
@@ -994,11 +1021,11 @@ andika = {
   version = "6.101";
 };
 animate = {
-  revision = 64401;
+  revision = 67401;
   stripPrefix = 0;
-  sha512.run = "5e5d9cf1dc86374ef0f64c3b882d9d39c672dd1042ccc841c40889ac15d312d79433ef46cb45a367b9bc3ae5485bddbfaef9167475f973982d1419c6e49edd1f";
-  sha512.doc = "f0c9e0b9bc3210347d75d1b3a05ee09ed014ad498f19eb9c71f9cd432b2a8c19aad6e811a4eefb766bf22587a955b86d139ef9aacbc5d27ea51ae001f2640e7c";
-  sha512.source = "d401b85d3a90b37dc9950e9749bf10bf30b70b09826d0752893f8215962121713043caf9079572602560843ba4f2ea42af455d977578e2c17ab7fa6546976d72";
+  sha512.run = "dabe8762a0329d46ca8987621a59c38183e713c1c257e2cfcd2bbe36bd49bb7cf23b3e75e421f4bf023db2558bb9503d550efa882d77b229114649a15ffcafbc";
+  sha512.doc = "857f611cfccc96ed1ae63f47128e9b7b4240428f86ebfdb6f2b79c5f0c76858e7a917321330d841059be02c3d7ef45036f0a2ed441e27abfe68ccbaa61568607";
+  sha512.source = "d0b799be895882ba64d200f4c77d8794212fecce55b8c65e874b77587ed4bc186930f9abf1f662d0c7c7e8383f34afc3679f11679d22c035539d93b8dcd19e7b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -1020,13 +1047,13 @@ annotate = {
   license = [ "free" ];
 };
 annotate-equations = {
-  revision = 65851;
+  revision = 67044;
   stripPrefix = 0;
-  sha512.run = "bfb32b21539e4565bca6e5ac69bb1503e5265e21b0a9b70227849b0c803fec10cfe480750d2e95eaed98b073e33b8e0de7efda42fc3f7be6166d6d40caa4530a";
-  sha512.doc = "a52c3caf249012fb980cd8487b648452616545b31516bd03aeb2e09fb5ffd5f9930bd31cb52b9b026c193f5de3a39b737bd068a40f3a176ee86fc86eb47eea4d";
+  sha512.run = "4d4f64f6346eaee14dfe509857d2a592da825eed9ccaaa1a9c2cbf3a4d4f750441392d703c9c9665c88316125bc37192c0d6869f3e2f5274e7f80699f8c553c6";
+  sha512.doc = "9f958eafc15d7de177a3ea66c0e381ec76480845647af0969e34b7429f3543c51de33dff58d2a4faf10bba82eb8f3de097d3324955b1842806fc69e8cc6b200f";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.2.0";
+  version = "0.2.2";
 };
 anonchap = {
   revision = 17049;
@@ -1085,6 +1112,14 @@ antiqua = {
   license = [ "gpl1Only" ];
   version = "001.003";
 };
+antique-spanish-units = {
+  revision = 68998;
+  stripPrefix = 0;
+  sha512.run = "d5b6208afb1e098a66ecb7f4f536d4b4f2762705bfb142e66e4f83e38670b88db1be5f04ce3c8c1f1db7feea8ac3d92bcbf5a1ff099f87a01f05503c881c92d4";
+  sha512.doc = "b25eaf2cdbddf60950478c26874ff99e62f9ca8b726cf533958a723652c56e32e7279cba9c4a861d670a6933639618902dc914102af1dd8e672ea9a1b38ae67f";
+  license = [ "cc-by-40" ];
+  version = "1.5";
+};
 antomega = {
   revision = 21933;
   stripPrefix = 0;
@@ -1160,14 +1195,14 @@ apa = {
   version = "1.3.4";
 };
 apa6 = {
-  revision = 53406;
+  revision = 67848;
   stripPrefix = 0;
-  sha512.run = "76a307c077ebec0ef984e9296018e1b91a51e95db8d1955924a373e82feb5152ce453d1388e706e6b0ca46f3dcc71a8981bf68848a2022cd19e179fc9ecc0bee";
-  sha512.doc = "841821dbf4f8efa07a96dc37d26e21348ef5e1c486ffabbedfe973833d2328b8c5fb32196ae2e0323683d1d20b635242c371262df92ccc0c4bbe126c89263dfe";
-  sha512.source = "b7571a14e100e65748c31ae49ca070c42b3c6d868885f2ee487c76561858aa19744b890eb7bac075c43208ee8d6dd91ef327f8afff2758a1be6c79d23d50f717";
+  sha512.run = "17ca4d98885f30c42c6e5338e838ea2556a2f9dcaaaaa82a4cdc0d82c9a208388f66fec45a87211720b12da193d758d662fefaa8d95fd3246f3403091b4082ef";
+  sha512.doc = "244f143bdb9209482eba9c644a21b65af3a6990b5896ef079aaaac2aa57bfd4c0ae26878cf1f87d3f1744b3dece2aaebfccae4e0ebaa846944b614b76a12a673";
+  sha512.source = "fae9f67a6f34bbb7ebbe06d125a45b6b2fcbb2d631f7b9731bacf2e87c87493b4e0804b9381609147000e412d2ce55e5b0e582de242ef027e0d3ac08dc3ed05b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.34";
+  version = "2.35";
 };
 apa6e = {
   revision = 23350;
@@ -1296,12 +1331,12 @@ arabi = {
   version = "1.1";
 };
 arabi-add = {
-  revision = 37709;
+  revision = 67573;
   stripPrefix = 0;
-  sha512.run = "5db89004e82030185f34c0a38e4ba55fe38fb9fa087c7a25ee7f7df9180734ffde0957eec52f0110655ea273202b6cdf63114e3520cb23db80c48c6c74acb0a0";
-  sha512.doc = "4c44de9d3b46c605a463fd1704e56c5c61806f6e0dcc130251c81d0c555534e167034b6ba2deec1370e502fd006192540ef415aa42987f69025f18642451396e";
+  sha512.run = "8a9742a1499082ec9ecf5082f34b194e572cb94a0d0b6a3b1d6b8a01edfb9b3b53d42e3720b85fc2dc654d06b3641b95d506eac8cb393bb9ef21dc68c70e5adb";
+  sha512.doc = "c11ac1fa2b8dfd619060efa36f81ed0ae6d0e1b976c08894f7115d960458a812496d5ce4f8270350ead90a5a1614a8a61cfb98568a1e28d414fc0c5b370690ac";
   hasRunfiles = true;
-  license = [ "unknown" ];
+  license = [ "lppl13c" ];
   version = "1.0";
 };
 arabic-book = {
@@ -1323,11 +1358,11 @@ arabicfront = {
   version = "1.1";
 };
 arabluatex = {
-  revision = 54512;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "34c30ac3f9382b56c013fc8cd85c8c42ab903739c3feb73d5c1d6531340d2c0deb157b6b88f2a7554c21be413420484a667a0a672f04096a5dc2afe6c82511f2";
-  sha512.doc = "b9153998fe52ac42bed2bce670db355c805c274b71e3a1f18d8794c36bf9143641b01d9b42cb95f0c126659651aa7dff38e69a7a122326b54e719dabb6f7ebe0";
-  sha512.source = "bc4aabaf735415ae31c0b4a44e339ba7dafee4f5f01462a36c2871574fe540847e98e279f971c17f9cc22626f894dcf8ec5a74e4bbe92ec8498a43c6647231f7";
+  sha512.run = "c235430d724495035832ca32fe838ab5d75d48d2d68c6c84965f5fb7e5c65098356513241c82e95b6c6d806328c0272b775c1aca963df02ce2540052d62b312e";
+  sha512.doc = "d625d9d23d73a4c261c2099b77831dd1b60f38211a4802a3651e31f65c5d278c3cc3db8469cacede81c1a105cc6d4f605a5a9ef764b6171e4fcacf515a1080e7";
+  sha512.source = "260d4eda4b79f727bf33327953fd0effe33f12272d293a2fcf6d8a5da8ef918d42220effedf20a29e5d4f39449b461398f15b08dd1b73522666cd7a009ece904";
   hasRunfiles = true;
   license = [ "gpl3Plus" "cc-by-sa-40" ];
   version = "1.20";
@@ -1361,30 +1396,30 @@ aramaic-serto = {
   version = "1.0";
 };
 arara = {
-  revision = 63760;
-  sha512.run = "b30ab2023cea6e606301146c06b34711b4c40b771721724bef178a5df7a1bf3e22ce97675131ee7370acae3b6416d49b28f12d0c02eb7e34885e2609f8dc5ca8";
-  sha512.doc = "0c0b799f6e4f43c6d123f66b6a84e35607b2c10d6241c445376d29a466154634c559cb6282f4e3f66c273342c764b56604e00bc1ee12b4452ef78ab7620aaaf2";
+  revision = 68431;
+  sha512.run = "142cbad66e19afd1190d4ce76962a133b6340a72d6dc5c77b4ff6898223a00bbbf4d4a9f1d089e5256084e6a277314d904790f55e35143a07c217ea2453c2238";
+  sha512.doc = "cbac6e45e0a580887ea8da3fb1273152884590a7b4a3dadf03676e89f9af056eb1f276e74d0445b059382afc6a7239edf8f9dadce549d3a6b55b7aeb244f63f8";
   hasManpages = true;
-  sha512.source = "6cc31f1368d8588d9a7bca3717171c43786ab6ed7a1b3ed159d700324ec42bf588234483a4e56f7322726c30156900086a901f081cfa7010f79cc393a449fe13";
+  sha512.source = "850f8dc8292d391940340db96b5d53efd145924848f575719503f7cbf7c3dd1b87d274fa31cefd9ff3107fd2424c65b47e79abe6fbe3798f5c57f14c7c0960f5";
   hasRunfiles = true;
   scriptExts = [
     "jar"
   ];
   license = [ "bsd3" ];
-  version = "7.0.4";
+  version = "7.1.2";
 };
 arara.binfiles = [
   "arara"
 ];
 archaeologie = {
-  revision = 57090;
+  revision = 68476;
   stripPrefix = 0;
-  sha512.run = "40220a43a1f5775076f75379eb7c6c6eb4f7e9c709b7ff22b0db29868f5ac7e5def3cead10dbcd17e3bad2aa33af7942c10f5968c42494b5ab35dd6886c912db";
-  sha512.doc = "efc68c2bb845f1966aecf6cdb20694778212261d6ba6f0136c87ddd0cd5872d0196c99220c56a9c9dd50ecc32c1a59a4d4630ff3fea9b5d953a0a9ee3aa66dcc";
-  sha512.source = "2f3324c8844c5d04d35e3e4bbafac591c1c33ac2a0ba21d7b4b1231ae7883ddd53fee555ac89d2f2fe27358c80470b414f14fef073f03fc3ed405b96a5df290f";
+  sha512.run = "02768eb18bd866522380974e675eae530afaa9f0c0baf4e4dd6e5c0bcfef3755a54e79d9be2697b4e29cc633ec87c65179561d662cd99406556d3a66940b9199";
+  sha512.doc = "60136a2704265de25c0097e766fb50d89019b01524edebf6986db2c465d8dd2230f5d48ed5fa7b2d0c6f1ba5bc11dff4d2a171667d7743ad3d883e068c318864";
+  sha512.source = "0625c3bb08909e367a908f5f12f9f2e064e6beb251e7e79ccf0ff7fd15639e89040b4a3ee45cf28cd11b14559c1f1660812b78cca6d8dfa02796f9af85290be0";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.4.5";
+  version = "2.5.0";
 };
 archaic = {
   revision = 38005;
@@ -1423,11 +1458,20 @@ arev = {
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
+argumentation = {
+  revision = 69023;
+  stripPrefix = 0;
+  sha512.run = "d18f62c0c6c5cef4f85b854342671ebbc9224475d41488058543e682e41230f61cea4ecb68db767742c30d92ae2af1270ef47624608a3fb93aa6f8031b12648e";
+  sha512.doc = "bd6e12905e35d15064a357a248f4f5dbf5d91e37d0e742be0cd360e7d6079122090f29341acf11584ab563355481aad7edbbdfe1fa6b2455aee2b67e263dbb6a";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.1";
+};
 arimo = {
-  revision = 64548;
+  revision = 68950;
   stripPrefix = 0;
-  sha512.run = "f1b4c1edbe8a6e8864b121ed5411d4ac33158d68acfeab9905c49eaba315b784e0f2472ec8b61bb3241b202345b6151a0702aec4946a1de67125258c8c2edfb6";
-  sha512.doc = "14bc469a9288fbed519c8f0164f11c4d00369ae672d0c69f5c871aa24f54f8d8a4eaa5f189e30b42ada8e6f30dc8bd925b96b66a53461a2069682b89562c56f8";
+  sha512.run = "3c84fc274ebd29dfa65a8db214ef2ea74bb22da21827844be3b5648b7f10cba81a73772ccffe758b19ac16e58a75b1eb578a0ec8e85957f9693858065665a085";
+  sha512.doc = "dc70491f5b2b5a900f3d6f9bd543974b81976907a7c3dd53fd7530e3d0a6d83fc44a61607b27d9644eeca6f6228faa171916e67fc7517c35d466d9c50a186808";
   hasRunfiles = true;
   license = [ "asl20" ];
 };
@@ -1464,14 +1508,14 @@ arphic-ttf = {
   license = [ "free" ];
 };
 arraycols = {
-  revision = 61719;
+  revision = 68277;
   stripPrefix = 0;
-  sha512.run = "3f97d2424091e5690feb3e1e290d1135332ab146019c1b290e8c69ea7f048ecd779dd81c9b3d3f9a0d7c919f1bc9bb949bdccfb3939148a426b336cd22993398";
-  sha512.doc = "bab50fccd4ec8bbcc64684208eb8ad60b17ee55b534f287d0640562bbe1f1e2ef25698ee2fb80baca9e984e79e36fabb8411e6fa330bb33fad680b00ede665e4";
-  sha512.source = "e19bc42fa9a0d2bdd843eed789275f4d5a987adf9061535090f9d56ed182a19bd3950b10730c5cbe640f0261b545cf09212cb771b9a9a44163c6fc052b8c08fd";
+  sha512.run = "faf429613ee1987b92b369dc357f376c1465531cec8f7f78c37099366fa80954930afd62c553760b71a2226b0d245d9ad9664f4e5383803471bcf4f63f419f7a";
+  sha512.doc = "6bff5add83a6eb8f0c697bdfc5da076c5a833e856abf0b023002a50a85dd1a7cc24e0cd042a2fd28c18a37a88ac91f4f09a5c4f2911cbba30026fbc03df06c71";
+  sha512.source = "9fe04362a179851b135af96b0eed0d229d19f2d4623acbbc39dfcef375be7dc682ef08af3fcbe146d7ce738cbe8e7e00e9f72d549966efa674433e3024738ab0";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.2";
+  version = "1.4";
 };
 arrayjobx = {
   revision = 18125;
@@ -1500,6 +1544,16 @@ arsclassica = {
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
+arsenal = {
+  revision = 68191;
+  stripPrefix = 0;
+  sha512.run = "f103fff41a3e21594134b9902064001bb18e0c85985ebc99486378c0929d11eb3c12f00e7e23ed254029bca78adb2061575c48e9406fda890eb732b3cb90f096";
+  sha512.doc = "72295197eca81954e733409239b4cc13ff9ae87f5cf5c402a8d2904edf2e3fb6686fe2a0ea8bbd4d0e2bc0498507c47870ae1ac3cc2d722713ea4b952613a345";
+  sha512.source = "214ebf080bbe11aa5c3fd088b6329746202ae1c46867fc6f1ac23d56ca22b44b147a8e929eb895c86834d6d3117bfc1e447e3759db9b73f4ba14b824a952b00f";
+  hasRunfiles = true;
+  license = [ "ofl" "lppl13c" ];
+  version = "0.2";
+};
 articleingud = {
   revision = 38741;
   stripPrefix = 0;
@@ -1622,22 +1676,22 @@ askmaps = {
   version = "0.2";
 };
 asmeconf = {
-  revision = 65413;
+  revision = 69228;
   stripPrefix = 0;
-  sha512.run = "e2545a50595a8276de018afb6037f9d05a5e39ca9bda61b893ba75c61237702f4cb310df75b8c2daca88a4e46683f475e1ad7a1dac5641100f61d25202e952d3";
-  sha512.doc = "1f8587342100f63b3918ff5f11845f9fb10deb193215abbddf5f08ecff232889bbc28ef0f80287fe66420ce5bafa29917c239540ba1b0c860090564c5b3910f8";
+  sha512.run = "1953dea9ef81dc53b06888b912a67de2427448d9d3b38ddc75ebf3714912ae0092d372f82e107b4bc312c0af032b73e6e056f4e64df29d76d01614ae339e9397";
+  sha512.doc = "fe442954eaa9726fbd7b1a1c58f799fb0c8fb0cff55dc0eeb7930a131c77470aa87db26c3178eda57d1fb3c3953178088a4fbc8d6e8260fdbb884b382c08883a";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "1.34";
+  version = "1.36";
 };
 asmejour = {
-  revision = 65405;
+  revision = 68629;
   stripPrefix = 0;
-  sha512.run = "ea16b3b9d8852248ea87cd9da0ec78dde09c1da8af233a27a837aba266a6dadc3703cef6be5e0b5185cf7581076e4e8d7176d06215c2848f1637bcf24ce68195";
-  sha512.doc = "2c9e630113f8870cc0f78c31194754ef2d572534a599991ad16a301f85970cf8a437b719be6afa79711515d10d089486f56024504fc7af24989edcde4b656c70";
+  sha512.run = "a2c37b69e147b7174335faa13522e00a2decf12f6a0fff45c6074c27299a5f71b80181d81265a1ddc7169e2f7652f60250e94222dcef1423de98ec30576aed62";
+  sha512.doc = "1a788cf31b7ef2a1cbf0a7d439b36ad80c786f4719a6d6138120d4fbf22208fc151300774da5718389fe22e0dea83fc8d9b41f0e96b1bb7426d0feab38b2e4ea";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "1.20";
+  version = "1.21";
 };
 aspectratio = {
   revision = 25243;
@@ -1703,14 +1757,14 @@ asyfig = {
   version = "0.1c";
 };
 asymptote = {
-  revision = 66119;
-  sha512.run = "4f97d0d87d1f29985c83c99629fc52e8e18f6eabf95d77aa888429187b49ed9525661d9c06b46a9b2295b03df412778ede1490fa9cd8ec680c3209a4ca6d0be0";
-  sha512.doc = "940297c3d69de7e01caa09ff44483f7334aba14705bdcdc83661ca9be2210133e094f99a8355b4b88d076355bb4f13f64c21700bff57f452dd5dbc8d2fddb432";
+  revision = 67300;
+  sha512.run = "327acc6f4d21a2babb4d10ce3e888e95027e11ab0466e5e98ef3fc8140f0553cb95e3f961534c614934522e7c995078ceeac10a7a62a64801edcbeb090e54bfa";
+  sha512.doc = "38c4adaaf073eee94398ea11e7b9fe671278dc8f326689500abdc1a5ddd34b5be438de6686f830928e2cf879c1dec6c332e9c7228ebca1fa0c31284593c2c619";
   hasManpages = true;
   hasInfo = true;
   hasRunfiles = true;
   license = [ "lgpl3" ];
-  version = "2.85";
+  version = "2.86";
 };
 asymptote-by-example-zh-cn = {
   revision = 15878;
@@ -1913,22 +1967,22 @@ auto-pst-pdf = {
   version = "0.7";
 };
 auto-pst-pdf-lua = {
-  revision = 54779;
+  revision = 66637;
   stripPrefix = 0;
   deps = [
     "iftex"
   ];
-  sha512.run = "053adb8525158b1c0703333bc9a20d3923468da54db4400f83c8c651820a01a9569542afb5502b56abf7034122fe5baf17ea6d2e7d7dbe53acdc7c2f9b1de68d";
-  sha512.doc = "dc7647af18502d3f7d88cb9dde9a4bc467204a78d6f6ef441d7593aeb2f9776532eddb94350081619986a0dece023c2ece54d3dce554188f5b62056b7a1a96b8";
+  sha512.run = "7d9882f2c80021409602f343e99dca9613f060056614f2fa8445b4f427f53287c4eb95af0a252ee3cddb2d6b47e1ecbc0ee3032dd55c209eb946b686f8037023";
+  sha512.doc = "ab6cc1b954ff26f5d7b44f12cffc7aa2d5ac1aa64e37a68a5952616debeecab0e34dd2bcb6e06a3f49e90d45e9b5f60955d8b62cb8d124ae35625b398e97fd44";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.03";
+  version = "0.03a";
 };
 autoaligne = {
-  revision = 56966;
+  revision = 66655;
   stripPrefix = 0;
-  sha512.run = "25e4d56033596a05c6b9e9bae4380dd5fc27d469cfa63272bb388fb3b38a57d2a980fadad7061c76940adc3d50e2115037b5299cd2f095ba5c2e9f47a88fb8d5";
-  sha512.doc = "ef84201b9cfc06b3c6f9031389bd9b593e5477f92507843689304afa8db67737887773d1d5c0a2be2fc77d922dd183cffa0ca27063cf27cd3d41664f76803a7b";
+  sha512.run = "b590b6f43bf17d54595c3adcc6de0e5c6780efd8ee68efaa5c2990f3e9e79ad6844397d6c7695d3ab66d72d4eb592c1455e4234f7a40efdbf4c788bc45216442";
+  sha512.doc = "d043ed183b3e30d35f7d4e6a5b5f094ae5bddb4e2265294c02c0888cf2e78fceb16b14cabb5b5d759b5397f58da1111d5fa590aab89a59ce13e3e13fb2e3dc91";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.5";
@@ -2009,6 +2063,15 @@ autosp.binfiles = [
   "autosp"
   "tex2aspc"
 ];
+autotype = {
+  revision = 69309;
+  stripPrefix = 0;
+  sha512.run = "f7bbb705f28bd5f546125118c48fcb2e02043ddec76ace5866206a3b047448740db06537d969584197de375bc195a8ac5712eda8bc00633befc102eee7c4e538";
+  sha512.doc = "a64c7184ae642968af2ff85a08634b04d526051f798c16a2d3ac1c42f7a948de11fe5b83ec9d208733a7e2fedb190c5175bd253d811c9a6838a5a3ee45768317";
+  hasRunfiles = true;
+  license = [ "lppl13c" "mit" "free" ];
+  version = "0.5";
+};
 auxhook = {
   revision = 53173;
   stripPrefix = 0;
@@ -2079,14 +2142,14 @@ b1encoding = {
   version = "1.0";
 };
 babel = {
-  revision = 65823;
+  revision = 69343;
   stripPrefix = 0;
-  sha512.run = "ec773d88ce631b47cce6543a6211d14c76568f5fcc0c52e1a4289784816eced7391b64d181abfb514102c304299fcdb72e47e8c197ca06ca2ab59aab62993635";
-  sha512.doc = "c492f6d2da0a55d4de187f578279c9ec4c7dc2570b4c129b3f031f6b0a5475cabd0b528f6d53bae1c395ea875790ec1ab9fac8364d7b618012365ac057a1e0b5";
-  sha512.source = "c2ccfd558da2768009467fdd9bce3f676038c4b405a227a71cf2e49c5f6dbc9524b23806e1915adf8a3d8511b7478964b0e41cd51b22d208356e5b64a2177d8d";
+  sha512.run = "8c4b15316808e7de5c039082ecec99cb1d2ab72909cb5c85899180e55d7d425db4440fe6fa9b9f801345c34d55fcfaefba2296d424187bf6f809ca1dd96245dd";
+  sha512.doc = "5f6a02d13ca3e1104587595edffec7735d84ae5b4686692db04325a1bf3b82a45c08c8fb94d6cc79b0da02778e30f7eb8ff0473fcbb30e260022c647e4a8fdf3";
+  sha512.source = "fab559d1876e220830972bae45ffbc2f25c1ae0c0d16f0ba4b857bac5a6f92316bd45951b2fc4c718f0fe3947d88afa0aeaee813787b23040bfbffaf88018850";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.86";
+  version = "24.1";
 };
 babel-albanian = {
   revision = 57005;
@@ -2249,14 +2312,14 @@ babel-finnish = {
   version = "1.3s";
 };
 babel-french = {
-  revision = 66516;
+  revision = 69205;
   stripPrefix = 0;
-  sha512.run = "6cb9355ae6dc0a1ddd6ccd12be767fab6d8af70d8c4d884b314bca67a20a165b55a49b4feab12ca8387d5fc4b9553cb13c2166a2a60cd4248cb755e512774a96";
-  sha512.doc = "1e5b9a8ac199167fa33ac627acd5501d9f0bb992c3cbe4175d141511830647623797d343bc8190273d09341e36e0171d00579b9fd37b77cbe8badae6399aae35";
-  sha512.source = "257f5fcf47fd7959647294e6ee240b7075410704836fa2308118fee99f3e9802d6c4481685d1998933a01a957aecb9901d9ee9afb0ebfc40e07754479d92306d";
+  sha512.run = "ed7e71eb62c61cdc41c23a0e351d7f34b3b90fc245fd56129325774d64755e1bf42e755a295eb99ff39ad300945c3b32c514eab53a338195854fd9eef2c2c347";
+  sha512.doc = "fb42614164d9231fd23672f9f548eaad2501d416c51c2a08c5aa47085111140f1fb1f3519322d17f1b13601238b6167dac92669af43cee67e0a8fef0934d2030";
+  sha512.source = "8ccfec652d691199d0e6f51be21e6b4f77f49bcfe83c168a072443f7c16f518aac34b3221efbf2bfe1f8e5ac30e6db22b556bf2a4708d232b077aa6c52d190cf";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.5q";
+  version = "3.5r";
 };
 babel-friulan = {
   revision = 39861;
@@ -2298,24 +2361,24 @@ babel-german = {
   version = "2.13";
 };
 babel-greek = {
-  revision = 66347;
+  revision = 68532;
   stripPrefix = 0;
-  sha512.run = "eae0105f5f1a637677387065b8cb941336da2c4440ebeceef26f6c0e25bfc0b92089140d47332da372f31ed0a0b1e1e976092d636f142a21e1d27c61959ca189";
-  sha512.doc = "a76fc17e43dd86da4a05b3eb515167c436cd7c211ddc84f3b7fe37acf42a971684e09ea3af552318bf896b9fb5f5d75a461db6fd598df434e17e63fdcd80abdb";
-  sha512.source = "2d7ab1f4f63f437f4988cc7572ee3eaf9fdafec0fdc9d88cb132ae3daa83bac33a9149a9fb9bd92be7ab6958e4bdd787a23c815771ca073453f7e4baa0e2a6be";
+  sha512.run = "f81c220447f77f207dee02a5611edb3dfe68fb775abe932efc560de9a268570e688b3abe4eb3dcc094ac0c967360d52be02bc85c82daedcf173bcda269065938";
+  sha512.doc = "deb5a889b55a93101ee4c8571dabf00f8f971a6a27c2531c9e71a74e4b972ac1fe3efc6a336a6f0a38bb746316ba38881fcb2b4a90b64fdb5fa1fed51a7d90a0";
+  sha512.source = "aa891867efbcd19359dc6fa93334e43858ec9c4f7b0ae2d26c5d770fa2210fbfa16afe2ee8ca49fa3db1cd6b8680c8f06dc1069d760b65ebfbdcef0e54fc7da8";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.12";
+  version = "1.15";
 };
 babel-hebrew = {
-  revision = 30273;
+  revision = 68016;
   stripPrefix = 0;
-  sha512.run = "4690fc4288ba1d2142fcda24153e741a539ddc4a52d3e502c1c349feb19609c7cef1427751af24b93df191f12d2b7cf2d11423052193df01d848987e66744dab";
-  sha512.doc = "cd4b52bb2d207cb2bcd327e2351bf30d18921c7c4f8a8fa79ce0bf8864d6f6a34e2272fd416828c772abb2df5612b4a78f73f54157b6d69b011c008495b93cd5";
-  sha512.source = "6d380ba803ecb1f6f268ebd2f80da0eca87c7f25d3374ba0a0432f9de6d39632613fb49e108ac9b7d97438b589dc71c37b47927b7387bad8809175355aeabbc6";
+  sha512.run = "7feecb0fecb5ba203e494c9ca8810c7e58df692617c7ef1e15128bc3d2c947fda90267c21b0dcb2743b18fbcc120da2a0f1ca0ba76cb74cb2e53b3039dfb1c5d";
+  sha512.doc = "849c598ce07421613bb7dbdcb1893efe5facd807e5ad54a507d62054119113f349e60186258b7a60bdc695d7fae757ae65d64e7bec68710046a4247e52510523";
+  sha512.source = "cbe6c2798fcd9edf4f98520172cc56725081158d2968f961a6ad59436455bead4553070ba5ff52aee705464d261d0880c032850e51ff1514e631362f64ba0dab";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.3h";
+  version = "2.4a";
 };
 babel-hungarian = {
   revision = 49701;
@@ -2367,14 +2430,14 @@ babel-irish = {
   version = "1.0h";
 };
 babel-italian = {
-  revision = 62890;
+  revision = 69298;
   stripPrefix = 0;
-  sha512.run = "a30e451e39ed4e073e3a188ecd19933b965ffe94aeee3acc9b3443466df1fcf86b7a04ee0c6283bb92b17b0b11a975f9df7ebfdfa3306fbc15f6e2214e30afee";
-  sha512.doc = "4fe9d39aef8a29737aa8a6f945f1efec3a442aa072cb6fc63ba358c372d02a718f10a5d25df58014333c2a6bac9e97dc84e3dad86f8d81d45e4c1216a9eaf0ee";
-  sha512.source = "48a5d7f150658558638d3354398462cb5999a3ff18b2479885a989db816711610b9c2ba9b237d5ea1e11eae66441d8f6d88656f6df73e2b7d49e11959c79ae2f";
+  sha512.run = "39c9a5b40215874e74a86d3f994900e1dc3f5c1d0067b5bec224b5ca997a2bb254b914c9a15888e896e73908be5cba309a8da82fa12d797c12a93037c245256c";
+  sha512.doc = "ef2f87cfb66fff50fccc3ba4eec0f1c778765d49ac2976561f4963d9e12f1b2c486459827a44e66fbb42278fce72111d9aee373c1395f0532fcc42ab5efc5ad2";
+  sha512.source = "8436a5fe438a56e27efc22d979e56dd8f55971c598cf40702b485172448c0e5c959a1d9971f201c9e5e14df1d37815a39d9572c9dadbf6c6c9b0969f3529a3c8";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.4.07";
+  version = "1.5.00";
 };
 babel-japanese = {
   revision = 57733;
@@ -2416,11 +2479,11 @@ babel-latvian = {
   version = "2.0b";
 };
 babel-lithuanian = {
-  revision = 66516;
+  revision = 66513;
   stripPrefix = 0;
-  sha512.run = "18dd55b766a08088c49bc263560f5d3ae9ef0c644a3bc8cb70ef3496ae86bfc15eb4f450de6627ab1bd01365fd2d98230a46f92aa866d7eced55eb2c21e116b1";
-  sha512.doc = "f48446baa2e78cf8e5a730e06f53797b90d04827aebd36d2d66a3dc9c7380abab92b0ffc87d59ba28f4b0d603a77a75ba6f315c90ab3509c067243a05d8681cf";
-  sha512.source = "6fbcd3b900ebafb10f9b83591d28e5d61bce8c954ae064e6e215db77d9ba3a670687f2f133459866a5e12c5be7b6116b5608a83131dfe2e5752b0784e395d101";
+  sha512.run = "83e8aa3c7e8e018f79c848ebd884f0d0a07c87953611342b5a9f25df1241ddd931ede31a03b1670922049948a6f9ebc88676de0a4be9e144a3f99e22fb857fd7";
+  sha512.doc = "76dac9c2b95699a42018ad370afc1236668a37a71707a6c1a8fff1921df9edf30730f71337c1128f64b7448a0bd3f99e432ddbc1219534884e8476a8c7fdf338";
+  sha512.source = "1ad90b302e3e7d415fcf0534642a22fbced05f0cb3ff9218c73175b3bda74d0a7c96b27dd1401e12885233e2236e7be479d651829dcc04906f94f27012a5ee8e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.0";
@@ -2833,13 +2896,13 @@ baskervald = {
   version = "1.016";
 };
 baskervaldx = {
-  revision = 57080;
+  revision = 69273;
   stripPrefix = 0;
-  sha512.run = "42db4e01e127ca3870f6eb692217a7b0c24857599f01314c41ff6f26664e3559c4a938fac1557e799e273b42df2884955df3dd72f8e0b44456b414b8831fc019";
-  sha512.doc = "df3462932654a6fee3afd099a92c5d12b6999003af1c76a3be3ec3f32035b76993b3806c88e670a26c0857bbc699efa64063a4f23c24055ec337481e65019e91";
+  sha512.run = "f78b61573fc99c6696dd9aac4f108f473996c5e67223e721db88f355b2e55a68f2b8a21c7bf994f2ee36a8fa465b55b970d65407b1ecfe1ffd7e00061bb70753";
+  sha512.doc = "8d1b8a3e12b958fe5dee50255c291ebe8ed75e8733a28a5fda7c927a9253e0d94e68b51e81ce8805e3c3855893f53947429fa9684c99925d80176522c72119e9";
   hasRunfiles = true;
   license = [ "gpl2Plus" "lppl13c" ];
-  version = "1.076";
+  version = "1.077";
 };
 baskervillef = {
   revision = 55475;
@@ -2961,7 +3024,7 @@ bclogo = {
   version = "3.1";
 };
 beamer = {
-  revision = 65975;
+  revision = 69316;
   stripPrefix = 0;
   deps = [
     "amscls"
@@ -2976,11 +3039,11 @@ beamer = {
     "translator"
     "xcolor"
   ];
-  sha512.run = "e74d15c057451bcd3aa915ddf17412322dbb71885661f7bd6ca30c0fefaa3451ed7bc519b78099594614bee126ae72c110d035924b8db2e23a9e535408fdee19";
-  sha512.doc = "bbe680442b95b9d953e9e82e439b2885fd9830b335aa8310cd1adcb6493cdfdc67c61fad887a44704bee96ccfb743d8e101a8ace5807babad88e083fed17cffc";
+  sha512.run = "25fd0161673badc509511fe31b4780a68011ac796e12a841ed185ccb5d9eeaa22c519ddbcd2fc0a5cb70ba94a0752b6b5880f86dd499e4c89f1a5b708f3d7fd0";
+  sha512.doc = "8893df96934b3325455557a8a4499113c9d69d563452a01a81107054d99bf4ab67308482a70a777491d208d3e008b60d9c8f76cd560f1fb8af82d97a2a121bc6";
   hasRunfiles = true;
   license = [ "lppl13c" "gpl2Plus" "fdl13Only" ];
-  version = "3.69";
+  version = "3.71";
 };
 beamer-fuberlin = {
   revision = 63161;
@@ -2992,13 +3055,13 @@ beamer-fuberlin = {
   version = "0.02b";
 };
 beamer-rl = {
-  revision = 65725;
+  revision = 69254;
   stripPrefix = 0;
-  sha512.run = "116da52bba8c3e49784d4cdcc50e1326b9e2455741fa1187d51c0757dcbe8ad4e27300e26143413f5e5868cdb845ba044655a263a6a709268ead43f0398425f9";
-  sha512.doc = "2acce2762763518cbe8bc0342c2b742efb685bbc83159a4b3ae9ae254f5bb8326aa0dd83691e4115b9c63ff83822bbabaf461cbe5385aacb4ba7a31782bcd440";
+  sha512.run = "36f3fbabba1319d8019862455e97502d5446f1838db4fe42410d75101f430270df3abdafb61e7fb565040d9aaadc987cf268010aa682fb509cd7303f6f2e6dcf";
+  sha512.doc = "d0add94467afb47bd358ef5a228e314e280b92c8c038f3e6b6f2a28410e8eaa6c984a34b43902e4b6abc2c0246e732be9e9e31065e11cb14cabe5dd34b15e941";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.8";
+  version = "1.9";
 };
 beamer-tut-pt = {
   revision = 15878;
@@ -3102,13 +3165,13 @@ beamerswitch = {
   version = "1.9";
 };
 beamertheme-arguelles = {
-  revision = 66373;
+  revision = 68659;
   stripPrefix = 0;
-  sha512.run = "3f80674087810ba9904fbd6278059010df99d4c3583043efa2a8d09e1bdeb88c1e116c537eb621196a5abda921531ccf406c6d694e4e3773493afc1a05dbe2f8";
-  sha512.doc = "bfe9877c96c8930a3e9c2f36ff09b46e698d2756ae99ca5bacfde4c0b86a30af7320860cdaeaa0f841da228489109f2ca111bb6e5bd6de6a0cdb4c4ec019d75f";
+  sha512.run = "e8b070e76ada96ff6a679c6c7d553d7ff67d4cc3fc792183bf68eee73fd9be3059eda0f0f7fe970655b6debef3af018b15b3a408bd494bdd506bf187d80055a5";
+  sha512.doc = "c9f34943ba6a1233f24be443a56abe9aabd51dfe7c4531ffbe793ddbcdeef637edf87686934b09e78bcf3213d4530165bf28646e86300ce790b94f0ad8fcc7b2";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "2.1.0";
+  version = "2.3.0";
 };
 beamertheme-cuerna = {
   revision = 42161;
@@ -3192,6 +3255,15 @@ beamertheme-pure-minimalistic = {
   license = [ "gpl3Plus" ];
   version = "2.0.0";
 };
+beamertheme-rainbow = {
+  revision = 67542;
+  stripPrefix = 0;
+  sha512.run = "220dd54bd2565263ce7bc48068c96b48a0677f36ad5f3d826561e1d0ca21f5ecfa7ab675005e7aef40e4b9e9f149ee341c0ed82ec8a5a6fcab40785cca97289f";
+  sha512.doc = "bcf12ee63331bec8fd8c5443231109bcf1027d1abb9ce94c919c17fbb8a5248bea503acc25bda67226fcea1e30a2ae7283cfcce6a9b937362086e9123b4a429b";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1";
+};
 beamertheme-saintpetersburg = {
   revision = 45877;
   stripPrefix = 0;
@@ -3219,20 +3291,20 @@ beamertheme-simpleplus = {
   version = "1.0";
 };
 beamertheme-tcolorbox = {
-  revision = 64387;
+  revision = 67000;
   stripPrefix = 0;
-  sha512.run = "9cf46f7998a683675640dc4f6bec5bc873dbe4fa09324ce1e3c32b0f1baf297b6f0ed9f25fa5f346e718e9290d697b535b23da927c5630acbe61e20835faa68b";
-  sha512.doc = "9c779600fd21e28052fd345871ed9541eb7ded8dcda3a63eacfe0de72dbd009f61883b5564ad3168483b2b1d4ca7e138d678c14dc67fbeb4b58785d33c22542d";
+  sha512.run = "bcace2249558b6519dde1d9c80da791e38330de31da26c606d8bb8a780952bc2cd57f93948ba191606bd44c2260819546a367e34f672555db22d0c736a6b959b";
+  sha512.doc = "240a7be55ae035ae4e155efa814639de14a2c5ddc2dec9bfb963df2010026e8cbc7f6c834b6445695dbd7f1e68499e123b505de068fc196ed25a86115c06261e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.5";
+  version = "0.6";
 };
 beamertheme-trigon = {
-  revision = 65974;
+  revision = 65985;
   stripPrefix = 0;
-  sha512.run = "0f8c9af1c1dde891be6d8fb924276c72742a8d45fad9bee7c095c20e62576b65162178f9d6a11fdfe97a86d7ff3501f6b21ce3eb404f29bdb7224fc41428bfe4";
-  sha512.doc = "91c5d076b2814a6d4c0a57b9e2d91419ee50bb57ff38ef1e040d2e227f68a5a68668b35c9a24e3ece8d3936c2bef49786da6bc93e1594ce83ebb314058b670e2";
-  sha512.source = "f770036c49ae0c8e875a02ed2350d6ec9526bd8a576077799b4839a723c26b3961a3c98e2271507e787b5c6a27f0d62ce37e0d062dec4ff1a4d54719b86eb156";
+  sha512.run = "1269b79603c415123a91093bc69cd672aa54518da7e7cef52193804fcede45dc09fe6748f2c0c940a754767963174e768b52873fbac5a520f7076229100ff016";
+  sha512.doc = "83b6946c17d060c299260ff272130938933dbeb9124b1608e8f3bd886b2f63851773181dc1efabe901196b37f7254569a5b5de0de7fd39ff558eb21376ffaa27";
+  sha512.source = "49f9d4cf001b45b29a5c7b59155d72e286092157dfa5c0dfa05e7a20958adefda2a182974508f9a0936acb1d5ce199e21b350e85da7e292525b2aaab60e2c6d3";
   hasRunfiles = true;
   license = [ "cc-by-sa-40" ];
   version = "0.7.0";
@@ -3301,20 +3373,28 @@ bearwear = {
   version = "0.2";
 };
 beaulivre = {
-  revision = 65475;
+  revision = 68376;
   stripPrefix = 0;
   deps = [
     "colorist"
   ];
-  sha512.run = "cfadd2e47adc0f4fbe6eace5ca12f2e4dcd42a5efa681d4e0dc2f269957a582bb463c6230671ba1f4c35bff7299f4764f8f3dbab75d35c54a7e7594f6a9ad68a";
-  sha512.doc = "f72326c7d83bbf6c4ce9cda132efac84e5ea1cce1f4a64842c6bd5b16c8a393e4a8e7fe15b064d49597f9b23a81bfc40bc4c43bc07f30558042d8f0f97cc484f";
+  sha512.run = "edef18ea01309678c4fd177b08cce8c5a59023cb521c9adab9cb88e096c3a4af3c2cbe035360f9310914252a9f0ca71a0bb4a8e220c75ea38fd2dfe8faf0d639";
+  sha512.doc = "8159204651670ac0ffb0d3d4b9121f573e86bdbaa5619ac461393d097f5d2a94dd547e3dfc83b6e8aad0b57dc2913bebaf77d41bd0355ac55ea4c74175a73922";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+};
+beautybook = {
+  revision = 68438;
+  stripPrefix = 0;
+  sha512.run = "68df2cac1064c5636f1df6b5f9d51773278798310e7d36550f2a55c05c8d1480518407a97037d0167fe92fbab2f8d7be73d528681d66f63afe644ef3ede38ca0";
+  sha512.doc = "62eeb012597c27e02b00ac5d7b2b280136986c412baf7113634bf62e0fe82b1fb9e4fdab3ab6a2345517a046fe46bfad6f2031926f07f69609e895800e215ed4";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
 beebe = {
-  revision = 66287;
+  revision = 69012;
   stripPrefix = 0;
-  sha512.run = "3f470175ef075692f753d8d758e8a94ce01ef181610b267ad09e2e50c51d51930caa32f298e27a9f127f74d0bd672c6e5a7453178c30a893a9c535aa8d47a5cc";
+  sha512.run = "46ab5e24904f3a5f9fc3a548a13b78befed28d1d32aad38aa57a619313aeaaabcb5c131e14103c7c9c02b42297bc59e0a096872ecb3342cda92ec5e14e9c8c29";
   hasRunfiles = true;
   license = [ "publicDomain" ];
 };
@@ -3348,11 +3428,11 @@ beilstein = {
   version = "2.1";
 };
 belleek = {
-  revision = 66119;
+  revision = 66115;
   stripPrefix = 0;
-  sha512.run = "05824940255b84f080261bf4cc2f192a40b6f53fe0620da486106e5904062570ce73035f710fe56405eae6c0e99f03350109f0f784ad524840527a2047b47fb2";
-  sha512.doc = "16bc074238cb02f0d08c1facecf01d4de9994e4f1458f32a0a62616d31e204971af6ee8a64e2e9ad473fb87c98fd03453896c3b1d85505b8f0a46d08b3738189";
-  sha512.source = "617c3011075b005d2c56b093df07edee8f1538e1813d515f0fb71f6b9d3e5d78473630d36e33315f725998891ba043cd301badaed6017b8028e69bc586652b03";
+  sha512.run = "4ae91c01e67fcefd46da99d6bc8379b3829e4e0e88f512f36bfc9743d075090d0c26d0eef11dde5125b344e85ccc3c5a31569f3a1078d00d364ea80120bec30d";
+  sha512.doc = "93266af4f4293639a123f5ba88e2680d87e6d815f49cd7dc6c9322866dfb22308716da1e362699aeded819e7817987938f70cf48c9166e7127836de743e5dd63";
+  sha512.source = "b8547d1b3da8be829b7fe99d0cd7cee8fc6b7158c1799712ea85614534d0b020cfafdc1696a0e5037ad15b215173e1461c64f86a1f52795209272aed9991d107";
   hasRunfiles = true;
   license = [ "publicDomain" ];
 };
@@ -3456,13 +3536,41 @@ bezierplot = {
   version = "1.4";
 };
 bfh-ci = {
-  revision = 66465;
+  revision = 68828;
   stripPrefix = 0;
-  sha512.run = "f17076389ce9b898e20d38768bbbd379c7dfcccbc8f5cee99b155cc68b0133369fad4198ddfd337916d4ee0ec12ca40bb3ee4e7d68cd6fed7b1f2f6a5096323a";
-  sha512.doc = "8efa11a2c8193fee4d10219309f8587b08f18514c966bf2034f62e05cb1581067597412e073d1a2240e62f0ebf7519e0c8aa97ff254ce9a613b23352cf11e994";
+  deps = [
+    "adjustbox"
+    "amsfonts"
+    "amsmath"
+    "anyfontsize"
+    "beamer"
+    "fontawesome"
+    "fontspec"
+    "geometry"
+    "graphics"
+    "handoutwithnotes"
+    "hyperref"
+    "iftex"
+    "koma-script"
+    "l3kernel"
+    "l3packages"
+    "listings"
+    "nunito"
+    "pgf"
+    "qrcode"
+    "sourceserifpro"
+    "tcolorbox"
+    "tools"
+    "translations"
+    "url"
+    "xcolor"
+    "zref"
+  ];
+  sha512.run = "8aacc57f0eb40e83a6331cf86b076b287787672421648df65814214b60e739697d97fea5d8d18f112c27ea60cd2f2b9a26c31fb6074b9c1f1cba4522e96a11af";
+  sha512.doc = "fc7e441fac29da849714c79ed0f68e94059d09c1472b4c56b3f100f0e1af730963e9d0bedeb3bcbb87512ef68535321d6df13370cd9be3d5399cbc05e7f1cee7";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.1.5";
+  version = "2.2.0";
 };
 bgteubner = {
   revision = 54080;
@@ -3503,65 +3611,65 @@ bib-fr = {
   version = "1.5";
 };
 bib2gls = {
-  revision = 65104;
+  revision = 68534;
   deps = [
     "glossaries-extra"
   ];
-  sha512.run = "009e393b3083a3260642cb36dc463c714689d1b32d07885c9d20092e4f7386d05118c452e6f97001120f70558a69aa58d757ae0998cefe10e164bb172e432fbf";
-  sha512.doc = "2a22e662fa0c41581a3c9d9496f97854ea2faa0d01970ab0cc0542048d0ebdcfcbf7ddc7fcf519510d99300eb6634f1c7688874cf02cf6052962d903c5810887";
+  sha512.run = "98fa1d2a2af4c0bcb63aee20725206d015d9aeacae7291739d1b0e2a11acc2a0b447a6da8229bf1f09cbbedc4f5071401ec5f61a4a69e64658ad62e927e6618e";
+  sha512.doc = "6213d39c6029ce142232f077e65173b92b9eeb2c88b4d15431301687d4fcc16dbced3ab4817241a1f252c5e8eafd7f63f5bd71ce7d7dcd277b49bddbe351c93d";
   hasManpages = true;
-  sha512.source = "da69973053fda82589612813834134837cf9680f4257a6336aed08213df0ff4c34dbef3c7edb833c7987549599cc48ae82dec36bac96dda003e3de3d1422bc6d";
+  sha512.source = "b029073dff63dd547fcb5f2359c0449e1d91c9eac243cc45a850fcce917db4fc22646bc45e47f5fee14b75ae67e75b13bf4677e0e76868c5a83e689411de28b4";
   hasRunfiles = true;
   scriptExts = [
     "jar"
   ];
   license = [ "gpl3Plus" ];
-  version = "3.2";
+  version = "3.8";
 };
 bib2gls.binfiles = [
   "bib2gls"
   "convertgls2bib"
 ];
 bibarts = {
-  revision = 64579;
+  revision = 67407;
   stripPrefix = 0;
-  sha512.run = "df6f803918f6beaa20ddf581bb531c6f9cb488a77262dc075a00e2ab5e8aedc107697c17cdc4b0310702db3b565dcba4fea68fee9b9c0a2d6a9109ce3c8d2ef0";
-  sha512.doc = "ec614687a713c8c1542fc8a28aba9bf837eda9c91d63e6236ad021d2eb13d052ab37d078263fc9f25ad3279b7e721cbf39de4cdc94db4c18dd06625e5fe10507";
-  sha512.source = "b4d0e27e0bcbfcc140c6a28a5d0f7b9150ce0c8ae07d7a6e96d7669c3f91da5e41e8d52e53f9927a00cbc534694e45dd787ec6786627cba9d81fb841d0aa10d6";
+  sha512.run = "358492693511d2de25fc7e080c862e1aa6a6ba40655fbf64991092a4a56c76a35f9fa9f8e0035fa042f0341f8fa9f13a5615079a2c9c56af36aaba4f41385865";
+  sha512.doc = "d708263bf3d867e075281e0cdedca007fbcaf8cc333a8c7c0c9a0b79e68bce1c100b263a740e232a5f84861726dda947914a7c4ba52d87315163db9528c2c544";
+  sha512.source = "b1d8043b2f7c49e6bfee9b1b82f361450878f6059cef790f12e9a26279caf25f2bf446b4b70c1882478503586b700e7b2e78a6c631264b1c2498ec493ba20ad3";
   hasRunfiles = true;
   license = [ "gpl1Only" ];
-  version = "2.5";
+  version = "2.6";
 };
 bibcop = {
-  revision = 65816;
+  revision = 69395;
   deps = [
     "iexec"
     "pgfopts"
   ];
-  sha512.run = "a035642f1b1827f0b6b4d15b4115054b9ab3ff49d7d369f3e304cab5964a707b23865b837c6b156b913e33fe8ae5589941e6ff284ee0b62454a9eb8ec77f3442";
-  sha512.doc = "93abe6f0a97138237d7546d132385069f8ff8a638a31cf9be23619b812fa578af808e6f9ce04c06778a4559b1eef98b7d24a0ce5ce6eb5ca9680fc2ddbf7c4b8";
+  sha512.run = "e4520627247c144f8fdaa3f3923f150297714171124f3e76e0d772ef0455d89c8229574a3e9bc8875c6902103465dace4eda81b0e30de3830152f3cd260bc794";
+  sha512.doc = "30ee2abd74da23ece25080c25c9c94bf44a54dea50088fa6a04109a7f67c9ddbd08973679499854cc4a29ed432a110283319cd2f8f53f6aed005a03218d0ab0c";
   hasManpages = true;
-  sha512.source = "42a5b9a9f058afa6a1460a3a7c6f7dc9ded6abbd8915529f8366d2df9c2871727bc766a407d2dbbb6716420da7115af5bc2795b343c974f2bf0e1d673d8e96f3";
+  sha512.source = "e2bfecbc459f92887760ce2862874f05a392970c8d5dc5564a46128564f7da7d8dec4d4fa27ae4381efc79222760d76c74f19f5a6216fc234a377f83402ee0db";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.0.9";
+  version = "0.0.17";
 };
 bibcop.binfiles = [
   "bibcop"
 ];
 biber = {
-  revision = 66456;
-  sha512.run = "09e6751c129a0fe21ed251d191fb0e0e4a1b7896e03b925a024f19eb8c7526b9134e9fd5fef7a02e525dadc589976a8744b249a9486b5367303b6f830e0d3eb2";
-  sha512.doc = "d0ffdc4417cf646c8b8b22af56abc0258987943948e314c194d2d1cd17c2124936d9a8a2e5c6db6da2de3d6c67d36da2b01e5be07ea83e16b06c465cc8a9eb12";
-  sha512.source = "46f654ff68533544bed787de738e270f4c82a57867603831ef9cd1cd3704a2ce3c052509835334ee0e8bc476b13b9521fa71af62777e26c044ecda7923b43e44";
+  revision = 68188;
+  sha512.run = "07222b2bb0aed6b2de71b1e061c878e409205459decf998a7c100ae92dbecd91549a6c5e2e0dabe21f742fdfa7a57704252ec565d9e7ef0bb1d802fc1939edc6";
+  sha512.doc = "a02c41efa4a5fd8ff79c8112dfc22b45e9717aa572021aaf93ede35ae57d91531dddc004497b562c605350dcff1c96441f7613d6c922e882652e9776707022b8";
+  sha512.source = "8fd59f63eaa86ea4d87c8c01458fea16c0e470969f3dd6ac65e20954e8a63e793a58888cdb61f913fcc291fb5d2f3e0205e7e7488946738e27c23f1ac51be9b2";
   license = [ "artistic2" ];
   version = "2.19";
 };
 biber-ms = {
-  revision = 66479;
-  sha512.run = "8a0bc3d5e6d4cf3991ee7b0090d62358e3d691af9e901a1cc91396a0a01cb59ac2e707b941d32d18c35345987180bf60c9fc0ec259dfd9d25fd18dbe216f8bb8";
-  sha512.doc = "5cfd427c1324b83b33a5a5a93c727e9f6551b292d63e5e7659d8bcf2d1dc4c323bb58c40017977b9545930624ce1deb92ced28ac80a5a91df80d207a4f1495c1";
-  sha512.source = "9d68fa2f2a1e28c12b34e21c08211de8582c613c35693ef59bcb7f592a650a043ed81719cad6764952403ce19c435465b990f6701ebd7127c3c8fcb8010b4b9e";
+  revision = 66478;
+  sha512.run = "8e78b381978835ea25e8a973fea35a653f37a23e4ab3f0a83f26808f142e4b2a91ce61ab230f7667b222af249bbbae08b40256cb82fb8ddf39c89b7dd042c3e8";
+  sha512.doc = "82bbadac2732d19b750cbc9ffd76c9a26409837b0e1b9396d405b9a64a2e5e9997fc11c53d8d399f815bc822feb1ba3fe9fcb50c8e9401ef7b2c9790450ab784";
+  sha512.source = "9c15f088c5c97d63b928ef10a8d1f0a628874ad664182b631e5a52407b1a034bea478fdbe1c287ddb703fd9c9d3d84a8bdb47ea09d6de25ad99aa1ef8e227fcd";
   license = [ "artistic2" ];
   version = "4.0-1";
 };
@@ -3593,7 +3701,7 @@ bibhtml = {
   version = "2.0.2";
 };
 biblatex = {
-  revision = 66405;
+  revision = 66403;
   stripPrefix = 0;
   deps = [
     "etoolbox"
@@ -3602,8 +3710,8 @@ biblatex = {
     "pdftexcmds"
     "url"
   ];
-  sha512.run = "7269a29d39552dc9041644c186917662f874ca70f70240b57b00c5a3de9413634ce8fccb82a04a9fa63f0a884bea6eb8d2ae61b0d8263b237c3a335d7b5aac84";
-  sha512.doc = "bdc1836751a1220539bee8f4a59f2afa072d452ec09cda9b69c8f2c3bd1b6df58d972af73ea7b8ae3cdccb512c5adbe3b74ea32ab7edbf9790ce0d40b5113c26";
+  sha512.run = "e07cd6233021bbe2f3591f866c3b3eeae083574f705da9505f6bcbb7284c243ac7f24440253c4557f0a300e9995188bf5915a42643e63eb80ff9e0fa4ffaff1c";
+  sha512.doc = "f765e31a89e4deaa9578b30aa206d8f26ae7b3545a6575a5a28758263fc45eae6c5d3b5aa1233f3000f731ebed104180cf79fd051b47a79699c89305d626d0ed";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "3.19";
@@ -3636,13 +3744,13 @@ biblatex-anonymous = {
   version = "2.6.2";
 };
 biblatex-apa = {
-  revision = 63719;
+  revision = 66605;
   stripPrefix = 0;
-  sha512.run = "cceda3efc358f1cb2ea6e8c19063e3a2568e1a7569f6d18a10db5db69347a8fce01cf1a2e811af35b8905f096527783f5c62a875978c807f2860eb2e123d0de6";
-  sha512.doc = "cf7ef8e8998b7be34c115d71a8c832724277baf775a03313e5e4bb906be140eb996dde8852d95e46950c9ba9d725cfd08e51177e2e3c133f8e1ea8977f71df16";
+  sha512.run = "d86ea9a83fd5c1f08bab77c12d6f93e241d444c10554918a8aa91ca4f9677531dac291962e354d2fb19668c3e59fa14e256039fc2cae2bc531c2ffaaa2ae3735";
+  sha512.doc = "84f00557b32e8a50a1256d7a39635c77ee6a59c9fca1d36e571df8540afcef5cf0bf8b1dd648a0eaac1c45744d863774da2d0033223b5e3043653f8759b31388";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "9.16";
+  version = "9.17";
 };
 biblatex-apa6 = {
   revision = 56209;
@@ -3762,13 +3870,13 @@ biblatex-cv = {
   version = "0.01";
 };
 biblatex-dw = {
-  revision = 66534;
+  revision = 66579;
   stripPrefix = 0;
-  sha512.run = "e45780eab8c3c19e129193dc83ab34ff7d0ef2636c1c9ed89bc9302fa3763448a701dc4cd9ae2d7ea17c18730b7daed22397a91469c8d50461e660d8486c2f11";
-  sha512.doc = "ab8cb148e87de3e8f9100f60d0dd6da56b0ee3cdc5107c02ee29dd0f14938181b2ca8e2138745f2e68a7107399090b2b0b308708a613a649a89e2683b519482f";
+  sha512.run = "bcfc88a15950bce48844dfdfcaa8cc946d553c9fc31b3820dd52a9f4588c55e253cc593d13b1dda0b38153a21b93a3d9a868398296546f54b5b804c58eebaa1b";
+  sha512.doc = "54699b3f4e89bafa89cec29ed14a0ac32269bd52a68dda7916961b50032fba9ad3acadebb1737d8bdffcfa07f99fd104ad3fe19f0a1f569258fb4ceacefcd1ba";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.7a";
+  version = "1.7b";
 };
 biblatex-enc = {
   revision = 44627;
@@ -3780,13 +3888,13 @@ biblatex-enc = {
   version = "1.0";
 };
 biblatex-ext = {
-  revision = 63638;
+  revision = 66641;
   stripPrefix = 0;
-  sha512.run = "f0ece2929a62260440cfba408a9abad4bf023102bac3b75ba3d024af760b9ef55a1378b6b1ae4e4d37cc56d62694e71481a39c7b6d60b9cb25515df96e6179f9";
-  sha512.doc = "c51a10472697acb229d3cd4484d6d911b4990733824a397854a331c39074e79df8b005b051bd344ffbdc9f0869d9cf63a832a687607763eb56394af5c27b5813";
+  sha512.run = "d39e7a2418beb7b627bb6cb9566dc17553f0f33c6c720a6da760976d6f0333cc15763d79aa2dd09a70d571a3be886d4129896db14616e8e28d426cf41945da8c";
+  sha512.doc = "bfca548e2bc673037efe14a54363787311c05c8518e868f7333d958f45b0a75da7d65caa9dd993ef37408414d27576ecc2cca7eb5d2e5e316f4f2f94c961d8cf";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.16";
+  version = "0.17";
 };
 biblatex-fiwi = {
   revision = 45876;
@@ -3798,31 +3906,31 @@ biblatex-fiwi = {
   version = "1.7";
 };
 biblatex-gb7714-2015 = {
-  revision = 64967;
+  revision = 68240;
   stripPrefix = 0;
-  sha512.run = "ede1745a2cdae712e7cab552e25682540fb03a44884b6d488e4af5a43dfd3ed08aa4f75be3fc6f0d777585081073eee18af7b5f942664c8fce0a3c2752d1effc";
-  sha512.doc = "724b21b108898ba86cb2738ebb9b4db8348624c09078b166c74cfec3b77c29f878d83a709a0cd0b238583def462af45dbb21e822c00908e0bd9a426f46ee2f79";
+  sha512.run = "6bfa18d733590bd1c361a47fef482285dc2357617e69f49edf0d398311ab038fac38d326515b840fbd46630171af004f4d66f1db3b4f77efed836e297c92dc66";
+  sha512.doc = "7aa9cea56196c395805b484e5f003a17215db968ee3e7fdd8aa1ff5976079be542adad8cbb25e0a874a1094f63a17efc4fba5a9ac70d22ac7bef739486ad9a68";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1k";
+  version = "1.1o";
 };
 biblatex-german-legal = {
-  revision = 66465;
+  revision = 66461;
   stripPrefix = 0;
-  sha512.run = "b28eda940fe50d51227a2dc069599766fbb6828b083b2b5220390371c5e640492de6e78250ac81709fa4c22720c1d81532bca2d3e2b20daa8a7633f5fbf50134";
-  sha512.doc = "a5e5ef04ca52c42becc0bd610cdb75519e5c783acfc6dad010d8ffc220e8062155478492601300c192a06553703cad34d1258f88f4133239df2f0ec4ca810e19";
+  sha512.run = "0d447d700791b3e0a50fa98c14cd71c735e1e1196c9d0c23e86114942d2a9d7dfc9f769a6f8ea7aa78903f1c6bf5600dfcd7091250ef65f2a2a5295a796f8fd1";
+  sha512.doc = "8b83f35af4cbc23c2e19dd35d3f798575f1df540bd4f10a9f0f7d732d5de6559cc0ad49df21753920eb659596b5e506e17fbc066fdab27552831d222da1e394d";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "003";
 };
 biblatex-gost = {
-  revision = 59135;
+  revision = 66935;
   stripPrefix = 0;
-  sha512.run = "72da076da250a07f89364ecdc65649ab845f7ec90eac0207af902beb42625c7ef69612d444628a0c9472063ae9485d9518cd6934ce1124d25549a64a0eab91d6";
-  sha512.doc = "4cb101c69ffc07d14d653cbd6bcc33deb797987dcae399535bea5bc14d1149705cbf6b1e21a7fd95d9edfc7c558eaf744e1715157a62fc2e1978476db0af4e75";
+  sha512.run = "8d87595c133fd1b64ea7facda55a1a7a79dbedb93750e0f54abd26e5904d331200349a956eb03a67017015e85e9854e26f6753b5d2be2ef0f3e4d532eb0b7ddf";
+  sha512.doc = "3ee6799d4dd00b4503fd6d7bb041d674c9e61d4ab3c366fe078a9db4a4da154601c13876dec51ba14e3322442e3174cda81212df26d2309e3517a60d06283051";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.22";
+  version = "1.24";
 };
 biblatex-historian = {
   revision = 19787;
@@ -3888,22 +3996,22 @@ biblatex-license = {
   version = "0.1";
 };
 biblatex-lncs = {
-  revision = 65280;
+  revision = 67053;
   stripPrefix = 0;
-  sha512.run = "bd708ad46839042f2113cddb25dc8370c4ec1ca6ac34e08dd472473f56097e29d154cbaeba9a1a5f86c810d288321528c92a1041858e2f6256f4125ef8238930";
-  sha512.doc = "b0f5868bc3018ba7a8d82f11af9965bf592564e578ee459ec747720dcf6fa741103a40f5f0cc3a3394d7514c16c04e0a34fc37940637e2ffdaa8b560d128d735";
+  sha512.run = "b2ab630bfdd41150b0be50d3851c03413ca8c8fbb5756989bf4e0bd8f98480a65eadcb9b11ab879f5cdf3b6c980376ff6ca6507bd26248a9f1b42b9217f656df";
+  sha512.doc = "ec622c2258d96900fa8daeef1aee6216eb933870eb09329cb90b7771b3e8668c88cfd253d4da0889ecb127421061bfa7cfbc8df27ac59eb58f7ae309eebc1f82";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.6";
+  version = "0.7";
 };
 biblatex-lni = {
-  revision = 61719;
+  revision = 68755;
   stripPrefix = 0;
-  sha512.run = "c91f3f8cc6e238602682893ef0ef20af2ac87a518d845e46262f17773f9082c5ed7ffb59329ac4852d8b3d72b3b1364395d3d16aa9ddff52619d9591f2b7257c";
-  sha512.doc = "19bd2d8f8f7539543c876c214731d407def9c193d70ea3eeb7a9869202fa26242674a996934a599004e36bddc62669bc769c6a76af6cec6ca85bf44436c41de0";
+  sha512.run = "f5d636b5cfa0125be2f5f87f41ebd0ce7bb853f7eddb4a7601f72ad42267e6456e2212bcdf5d820db3cd8b2aca058123a8dc2bbc67305cedf331d83b9a007b6f";
+  sha512.doc = "87f37b95865ccc3d66fd514fa038b8c224e1a7df502e6ab59e65a37457f129b1188e510fee0f307296222d40ce241acc307e6e2d2cef7598cc009fb21a9fd7f0";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.5";
+  version = "0.6";
 };
 biblatex-luh-ipw = {
   revision = 32180;
@@ -3915,13 +4023,13 @@ biblatex-luh-ipw = {
   version = "0.3";
 };
 biblatex-manuscripts-philology = {
-  revision = 53344;
+  revision = 66977;
   stripPrefix = 0;
-  sha512.run = "3677e980482bd1beedafd4120d119d2a73c4c7ae9a3ddef7130572fac5d2388ec4144b0ba74d4d8012fd994262c378226c987472d4d66e323e3b8395b5d3259b";
-  sha512.doc = "da435de87f61045d565199034c5ffb1bf818d31c74309648b1cd78cc80dd1b1274cb008a575dae1bcc6b1987973745e3483e829085438821ef1e4a10fbf157d5";
+  sha512.run = "8ac244a6dbdc725b256e5de0389ab4e4bef4f8e1c85d8c173680e66f1ba793679c8388e70e18791c544091a8bc7870459a945c6a5f298a80c530e58d071bf11d";
+  sha512.doc = "eedeb99e8712337165d684c38621a0bd7829d3071fe8df1496d2347c5f0b8150af68b20caaad69c8d3e3f08c75a52ab63df5d16c48863d0ea179f15c0f55a490";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.1.2";
+  version = "2.1.4";
 };
 biblatex-mla = {
   revision = 62138;
@@ -3942,7 +4050,7 @@ biblatex-morenames = {
   version = "1.3.1";
 };
 biblatex-ms = {
-  revision = 66481;
+  revision = 66480;
   stripPrefix = 0;
   deps = [
     "etoolbox"
@@ -3951,8 +4059,8 @@ biblatex-ms = {
     "pdftexcmds"
     "url"
   ];
-  sha512.run = "5bbf3e0d88a7bb26e141329fd6347736d27236156b999d362d4d23c42260591f01921f5bf269697d273ecf74dc736a79d8e4780f408b867fcc5600ab54f94c48";
-  sha512.doc = "837b364abe2c9c5d496014a099c6cf077ad3135e007b17e1f0cf3afb931223dbbe7b51aaf78719f209d632f9ed3d2f3afdc17188a9e82a4da7f369a4a75826f8";
+  sha512.run = "811bcee998c24f46ca5fb8bef9532148c97233766c30f0022cce7022ce0d5f0b5ee260ef0d7276095dc4ccba3dcf67e90a4cc1abf080951c9bd7cfa4237428d6";
+  sha512.doc = "dd6dcf78d0423578a41b47ab84fee4f398a238ac15e098e09d8cee93d5d08d4af62a72d90fadcd5ddb497cf7a4c4b6017fc721c1de246d0aedc98ccb32bad111";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "4.0-1";
@@ -4013,14 +4121,14 @@ biblatex-opcit-booktitle = {
   version = "1.9.0";
 };
 biblatex-oxref = {
-  revision = 65707;
+  revision = 68950;
   stripPrefix = 0;
-  sha512.run = "c9839c0a69065596b6d36ca61ca23fbe3d3d8d147bf7ecae0db22f24a5db9cbe21ae67563f929868ba39f8cb0c1d8040f4bf20d134aafd26cfa0dadf2cbd9d78";
-  sha512.doc = "f0fc6068778972b96a61414285c3371b77f29aae0ca7e31c225b1ccebf09b659b2ee156278b582a46a14b4ab20255f179c2ba4d269c53be5c85e9a0ceae44429";
-  sha512.source = "636b0c6c97c76ff15214145685d768c20d44cb1b17527cae743265f94b551aefb4610d63838e0f4bbfc34eb39b11b3a06005f9710e2503fcd4c6f6547665d0d0";
+  sha512.run = "4059920c5183f9ed337b9fbc0e56ddaed2bd7e089028729c606981dddd113e1d916f335283608774b56bc9fbda53822e1e2b9ab8d9c3283a05bbda530ff4e234";
+  sha512.doc = "55d8336df5219f430dce34e2138d770557e9d68ede3d15b34a1a1b164d92d58a27664470764c45fb65dc6b5f6e1550e7fdcc9aa5f266027d3543418f7b6d2b07";
+  sha512.source = "df89dae5cdd3a5edf49bd49ecb1226dfa8e9145ca9abfd10a065ea4a5f12e65b4d0dcafc9b4c6067b180029797cebdab7d50f42c8dcb0fdaa21e33fc09963eca";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.0";
+  version = "3.2";
 };
 biblatex-philosophy = {
   revision = 64414;
@@ -4042,13 +4150,13 @@ biblatex-phys = {
   version = "1.1b";
 };
 biblatex-publist = {
-  revision = 66284;
+  revision = 68476;
   stripPrefix = 0;
-  sha512.run = "1fb8c2ac0bd7067609d42335997eba7d4c4ac91b9342cdaaf574865a18695e7471b2d08b0792ee5869f3fcbdc8c2915a993b6b5726d8d0abeb7a2276925d7015";
-  sha512.doc = "4a29986b3bc8b493bf1ceadca8f4ce2d7bf8c625d21f64b3d1c23e833f8d2217c5d38b783cd017c52caa880c4936cb73a5e3bffd7b05b8e5708b4d2a571774bf";
+  sha512.run = "b3a8bc7c370e1dd6f7545e878748ad7afbed934440ea37161f33350b8a277ec4ac4844ffb37273b282352eb543641ae77516d5bdc7c8245b97d2ff946d31dcba";
+  sha512.doc = "d5a3841a106272f32941d5a9f8e2d1544eaa431f60f630cffb1168d3e579412f5d867aff993d1f76fec7d1590248bdfdd5bce93a60f014c15f1275b800b7a1ac";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.2";
+  version = "2.7";
 };
 biblatex-readbbl = {
   revision = 61549;
@@ -4187,10 +4295,10 @@ biblatex-vancouver = {
   version = "0.1";
 };
 biblatex2bibitem = {
-  revision = 61648;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "c5c80c9c9951ed57cbedb64976e96540dcbb7797e7af58e3cd983779863617f8deb4cca3b4223f6de2e1f4bd15940df02f6b87188e937b2b5a79ebcf2b1a068c";
-  sha512.doc = "a44dcfab5daf60da858ad548e306732c7bd3bcd4121f9143f5bbb7150616edae5b42fabe301c7f3fa271bb6fe851276528304c801fa8d7c3aed7c41f5fbde91f";
+  sha512.run = "ff86dc4068b0b3065e19af6447a71396337d9e7e5394777c1c385b714d01f2ce983c45923b460c60784024a8068ad68f05ee8dfd14039b65c2d9d9a61ef584a5";
+  sha512.doc = "21a53b0f4612fc18cb43f12cd6b1d1f72db896d0c55f73928fd11399598c04973595895d7cfafa546507e19cb25811118de9d07a8e9e1e242e22bb8d17e3486a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.2.2";
@@ -4271,12 +4379,12 @@ biblist = {
   license = [ "gpl1Only" ];
 };
 bibtex = {
-  revision = 64491;
+  revision = 66186;
   deps = [
     "kpathsea"
   ];
-  sha512.run = "fadbb6ca18794e52b40a7083db41c5f1d42e47ce93daed7a551bf8e263f8aac8302578f23fe915c3706e4e3603cbdc9cafc55b07c895542a60eb1670ce07d628";
-  sha512.doc = "6e1433e40fd604e391be05b9b68449cb6804488a42aac802d8960407930f99ae4450b77afe1baae4fe9b4d20b48c359472cf6c1e0a67d6f0a4a87cbffaaf1d8c";
+  sha512.run = "568a72b269dbcb0d5c723e346e8118a0ed923273460d9518891616cbf7b174b17cd75acff02f092176d71b6020483de75df20994bfb66c2cd46432c33d5ade3d";
+  sha512.doc = "4f95c010ded89688791e1115ce4e167740b43e9e48d596b2621e6c18b4529479da9441351b463946e7efa1e428cba3d60112c5f7a5e008733a00fc64050723a9";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "knuth" ];
@@ -4286,9 +4394,9 @@ bibtex.binfiles = [
   "bibtex"
 ];
 bibtex8 = {
-  revision = 64491;
-  sha512.run = "ca2af96d3d11d27a4ff01297ca91f5b829f0ebc67ceedd358acb5e89842cd86776864a0d948c85f9364b5542476bfd8e0cdc189853637e77b0b66ef8de453130";
-  sha512.doc = "31de3b7bbef0733347ab71f2c893df1cdc163a0d2ce4d47fc1f49a86e7bef225653cc704f4e6b9f8cdfe245cff5295ea45daf7995e863cdac930984ca64de84e";
+  revision = 66186;
+  sha512.run = "27008a8ccf05b7f48f7668ea171c9d53063fc26c09ac4507a3eaa86eb22b94cbd70ba6c2b7a8d439d7978a3860be37733dcbc17f7cef930d06dc5a45a89c95d5";
+  sha512.doc = "c305fe0afcaab072ee07542b8bae8475ce205744500f81c6de400b2bcd7ac05ff65a025301319f80a668ed35d653105c0ec0ab392c0c893f5d76802a1806bd04";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "gpl1Only" ];
@@ -4298,18 +4406,22 @@ bibtex8.binfiles = [
   "bibtex8"
 ];
 bibtexperllibs = {
-  revision = 57137;
-  stripPrefix = 0;
-  sha512.run = "a2989820b603d7001bdafd85d637d500a1f27640c37ed48990acd5cd49b8c9d0035457f9c55bb79dad5c9397fd5d4f46fc8a10834bb388a0626daf8e8269a2ba";
-  sha512.source = "b4cb508f2e24de447427bc82abf3366f5f2afa0b5a5a827e1b129e8b2819878ea78c2057c771dcdd86e362eaefa942c90e0f7285a8495256a9087667cde2325b";
+  revision = 68910;
+  sha512.run = "54e8413435420357c6e4acb1ab28a6aa602f1a222ed4b3350aea498a3516f48cfec0d04e9951a3ea0117184855e32d891d2c04af98231763eb1c5f7bd1700aa5";
+  sha512.doc = "e2a1f67710cbb6b732f5dc9b39e4ced5150792c06d0455704375cfd6def134dfbe54a8d92dc1dd88896a6d5405e662dceb15f0282e9d82a9d2f857a91a8b4fe0";
+  hasManpages = true;
+  sha512.source = "92cd4a937f3783305396a5705bc7a0d80371a22405865be33e1ff1caef7ec0a479ad58d9d80d45218273dd21541eb3167ac0cffba8ac16ec5d46ada1ea4e6145";
   hasRunfiles = true;
   license = [ "gpl1Only" "artistic1-cl8" "publicDomain" ];
-  version = "1.6";
+  version = "1.9";
 };
+bibtexperllibs.binfiles = [
+  "ltx2unitxt"
+];
 bibtexu = {
-  revision = 64491;
-  sha512.run = "8f629b95c9a12cdaa6be4fca3e6ee0d69f7c54a988ef778737de505446fac17aa9baa6d0bf08ea6dcf33d68202acc9223df91df0cd46696802e7ed238d4ef717";
-  sha512.doc = "18934f3f91e19dddd6940110c4d1a17072a7640a6a56133535f8ad8ff7d3e6d3a3ba7d8b4e82906f65c1de17fea4911ea78ea96c0b9e0b561be488c3da6d8f67";
+  revision = 66186;
+  sha512.run = "fce13fca4fd3d65b04a451365c5df50e4990bb62b0e8f878b712e9062f7d240a33ca6cfdbccd2ad2df0179be1cbaf2421ca32bdb745f3b9d9c67829d4c739916";
+  sha512.doc = "0f200681fd81074a5f23477ff99ac9e08e2d123056544edf7bc5b7b7645c22b74b66404028133037b5e47ffc4ff7c0059a1ed375ed0d3e4d211632c44f37072c";
   hasManpages = true;
   license = [ "gpl1Only" ];
   version = "3.72";
@@ -4317,6 +4429,14 @@ bibtexu = {
 bibtexu.binfiles = [
   "bibtexu"
 ];
+bibtools = {
+  revision = 67386;
+  stripPrefix = 0;
+  sha512.run = "72472e2c51a0b984feae71dd1bacd72880df1438406301219c80f1dc6a8702b0d7c1e2bfad7ffdbd025e58c14a069335d4f5d6f1fe981d5bca259a6eba94bd4b";
+  sha512.source = "3507bf7da29aad37a43cdd1ab2668908e227a2002438fb161c822fbac48be0e6b120070d6866fa553205ed404375d160e3a8b756c0681fb6a3e3b5600ac7a7b1";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+};
 bibtopic = {
   revision = 15878;
   stripPrefix = 0;
@@ -4348,14 +4468,14 @@ bibunits = {
   version = "2.2";
 };
 bidi = {
-  revision = 65572;
+  revision = 67798;
   stripPrefix = 0;
-  sha512.run = "b4d94dc0e539c0c0e4d91586ff9d121fe58af5c4729c603d6eb22f16a19e5edbea722b7576faf2b56a46f6fc68fc3e1cdc3c2f1941bba51a60337f091a248045";
-  sha512.doc = "002f65b1fff0798a2bdb87999910c848d94ce1e03c5dd4e61fd173cde8bdb5e153086616274cc1d97b711ee9a2d0d11b06e11de303d03e38ff577c2f941e1caa";
-  sha512.source = "e43b88ae4423bb1075a432f9034bf51ebe403bf5e5b8c0ab899e49a46257e45228b65ea4b0150542748830c74e3d9cbc59e9df49d75fdaf2fabc0b33b0a59714";
+  sha512.run = "e589f50dbd63df9d711540ad90b53384e52a5a0b353e2ba050657af3273f3dd7b65925101465d89831ea133504701c6d05d01ef959fcaa2570bb1188384c621d";
+  sha512.doc = "09ac7b97d9d1a93b80e8dac120cd6e70932ca9239dc94202449a476979caadd596677a210b27700e3638c3cf0bcecf98c4f903ea228f94545a2cf5cb206abcc8";
+  sha512.source = "1bdd170bb3065027106944aa23b99311482fd90a019a6bd1e87044f03a04f672e0b01a31d4d09e213db7b228718f7e9ad15d77acfcef7412af8ae180935fd77c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "39.7";
+  version = "39.8";
 };
 bidi-atbegshi = {
   revision = 62009;
@@ -4486,10 +4606,10 @@ biocon = {
   license = [ "gpl1Only" ];
 };
 biolett-bst = {
-  revision = 66119;
+  revision = 66115;
   stripPrefix = 0;
-  sha512.run = "3251e508797afa53db159f156f030f2397f6e5a3f36bfe50254d3abf0ae637c976a293d21bb63bf57f51b5e0a863be69b2aaf751695d311e8353c7765105d236";
-  sha512.doc = "df57edc9a738f7a2e054600dd11a3e6567eccc4b5b00ba9bd7c9b29ec1b8404d92ff25a2310cb9012697bed00adc52587d16bb900aba062dce420343b435fb6f";
+  sha512.run = "35fa3e7a46706c715783b10997888a45cfe6f84b465562f894eb9914915e608f420b631e9d4e7fabe3d3d83424c089288c848ee34cae5cd08d1d778e4ad64155";
+  sha512.doc = "2a839dfad925ca94f26bada0d14fecdd7c096d3c99e903a57e4a1d093b2d1b9cf8770974aa1ac51baa9759c68e2a4fdd6efbc861c5bdebaea4cb523c00662487";
   hasRunfiles = true;
   license = [ "lppl1" ];
 };
@@ -4504,14 +4624,14 @@ bitelist = {
   version = "0.1";
 };
 bithesis = {
-  revision = 66369;
+  revision = 68634;
   stripPrefix = 0;
-  sha512.run = "9fe6b1865bd60fc3a96217e060350556adb5fc55710560f068e2f156ecfe995d2c8ccfad0cb872440b614c1c646f331a71b8e961ec502b6b7bb45af9222232e6";
-  sha512.doc = "3d5b881564ced892e22d0121e06fcca8cb77346ce429b07c527e1ed1d6ee34514b749caa299f78ed1119286d65354bfbec9aab3016a9fbad6f52d6c56fcec470";
-  sha512.source = "445c71e6683e5fc2337fc3d88b491289eca181632e2c76f33eba17c8ea63864ed185a3403f1b218e42dca946f2ca380a95c398ab359a3951d5e660566c921554";
+  sha512.run = "617142849910c69e2986f1c685aa09f29375b83197dc6d964a887b50bc495f9501d578b6b7b3d2a6e78613a34b994a11f1160590e660a65e748c42504866ae1d";
+  sha512.doc = "6d5a915b04a096b1f5a9d9b9ed7bab9ae9e69886c3553778d5db07cbf8d2f0c183f2b86b1df0d2cb752368f192bf5e9252ad4c07071625659dca052c12ddcb25";
+  sha512.source = "8cef46e7e72dcc829ed8c9df27f6411b1b51a4fd3792a3d56479911ceb0e3197179a6e901beb49d4f91acdd5ac400881254c59a8162aaedded260b340cbb422f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.4.2";
+  version = "3.6.1";
 };
 bitpattern = {
   revision = 39073;
@@ -4536,10 +4656,10 @@ bitset = {
   version = "1.3";
 };
 bitter = {
-  revision = 64541;
+  revision = 67598;
   stripPrefix = 0;
-  sha512.run = "f8916a429ab34f42a8c79314245ab869977a8311531a6ef66f02265812671cb48111ca2de5eeef8a074b5c6f908fc4a742553a865c3e77dd640da13231aaad60";
-  sha512.doc = "a53311b88802cdafe796ae658dd7a1bf72fd5ea0f5eede875e660c8c288b585e1877e0ba65c906a13fb40feb52376132cd97b3a65b097ca65a6d143ed7b32e19";
+  sha512.run = "217870554e509c3bbfb70d3da9e3ccc4fb1013db4508034ace728ff114e31eb9f56511b1e89c702d21cf1b522ae799601a0908ffe70a3856aee29c595a22483e";
+  sha512.doc = "2bff9fef75632fb43c59cba04ea531eba8420c3841a0343cbb1d56995a8c322beff036da61d494112e9c89f82d367ec3bcc9e39ecbe153c99dc012cbc8c15bea";
   hasRunfiles = true;
   license = [ "lppl13c" "ofl" ];
 };
@@ -4617,18 +4737,18 @@ blockdraw_mp = {
   license = [ "lppl13c" ];
 };
 blopentype = {
-  revision = 65441;
+  revision = 69080;
   stripPrefix = 0;
   deps = [
     "gates"
     "texapi"
     "yax"
   ];
-  sha512.run = "a58ba583f2c9cdc9d262f2ae60704164e4aa1ec9b6a1b7f5df97598cb3cef0b85badd62b641e5b388822d8ab84bb993521d9fec08b0be71088ec62f069bdd856";
-  sha512.doc = "521b2c4897aee4e0ba07fb6bfb490e186a90218fd6d5972db83c42278a5212c7aacde54014cd6d2a9e321138e5e098eb14e746d6f114e84ea252c4fa67073353";
+  sha512.run = "6cb45600033a679ed498e59c2045561683edb0193cc330e2650a83cdd37e18daca45db700f5767492800af78f365c6f1b03766d92ec759b3448287c7b378bd63";
+  sha512.doc = "1159bcbc24dd6a860909f0b16911b3a88e3deb2bcc0670b85d31ac82a34b5e991cf73f305c8517a8dee1088eddc3c4cb02d8c5778d897efea254a715e78de294";
   hasRunfiles = true;
   license = [ "lppl13c" "mit" ];
-  version = "0.0.0";
+  version = "0.0.4";
 };
 bloques = {
   revision = 22490;
@@ -4640,14 +4760,14 @@ bloques = {
   version = "1.0";
 };
 blowup = {
-  revision = 64466;
+  revision = 67640;
   stripPrefix = 0;
-  sha512.run = "a516938f57984f320563b6acf3016d5e49d2d4899d0ed9b193b3015df277519444d152d0be8f49801ae259c9de1daf74cfa5f228851160b6a8e11b5707fac99a";
-  sha512.doc = "aa26cab17c65e4b8899ef985ac10cb283711901881e41e2b269d544d3c4f51a7637d94789a1bf88094f5b32ea0344b7d7afb3d97402ab50a2bb2bacc930d7988";
-  sha512.source = "65f1f194ad5673aa0f119d9f39e55b7cebe1d17a5587c42d3fc8b255fbbc9d968d6889b544041434fd8cdbf3acebc64ecefe25af2ba6b9bdbe4102e5d13c8753";
+  sha512.run = "52cb1cbef8c97f265114decec953472b2a8804659d60ce3227aa5904827dacb1cd6156c189a6e75aacb2051d8237298690c6ce6816ce9425fc293c8e32962236";
+  sha512.doc = "c038502451d1952927f9b9e1648fed009452d00a5d9db06429f8968ec453cb7863444ee0e41073dce5c0c4990c2487ebd818ad51bf72d1e7a91257ab76684729";
+  sha512.source = "632342966fb59de8f7ccda1fc7062c691fa2829462c67d4edc7cbfbed3dafe4888979baa60a502793f0db88343c1b8bcbb5e8cf18727e854b4a8443ff06f564a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.1.0";
+  version = "2.2.0";
 };
 blox = {
   revision = 57949;
@@ -4660,10 +4780,10 @@ blox = {
   version = "2.51";
 };
 bmstu = {
-  revision = 65896;
+  revision = 65897;
   stripPrefix = 0;
-  sha512.run = "7a5dfa6bc3c0661cf27fb5faaec603a6b1877478381a7b63a0ada08dceda69e730e1be69a24195a105909a9bdec1d37320da3694ae23bff831de9bd33a6300e8";
-  sha512.doc = "ae4c8893460bfde38fcbc2b1c9130b4da20a9f3ea239b73409d308a032dc648f2b4ea98daf3ed204dc5bd78d48a3e4770c6a9d28a97bcc88d818ca8e056a0ca3";
+  sha512.run = "e8e2af194ab8dc10e88543cdd888438d6dabd37651fcb331df2a2372c863884ee3ff77344d14a79608ef6e87d3b82042497f26045db3007b4cfc85fa33831667";
+  sha512.doc = "da816655e19a91d152a088e92078a9ef2c35f4a7b379d63e353eebb7b4047d459b73e5f53537e9be5a80d56ebe80e1f20db1305fb21fff14fedd518a11c494db";
   hasRunfiles = true;
   license = [ "lppl13c" "free" ];
   version = "2.0.0";
@@ -4688,23 +4808,23 @@ bnumexpr = {
   version = "1.5";
 };
 bodegraph = {
-  revision = 61719;
+  revision = 68785;
   stripPrefix = 0;
-  sha512.run = "abec68060be55077c615c7a4dde1f0a1c59d2b94120a1c5e3f578572b2c23ff814e20344ee767ec7af4c30371e95a5647256f39be11e54fc8d6ad661025887c8";
-  sha512.doc = "463c7fad4432c366c59d1ad9ce029cf1264b4f398021479ac77ba04bdfe2b1e6983553e46c5fac3b248b0df07f2ac9ea07fff7d4c8019b30874316e08f3522c1";
+  sha512.run = "65c14de3d529c5f439ffe83dbeeb6551152bfebcaa4f6ca8f22bb29340f23cd2541fa7934a5c0163f6b9a604d76c7c2bda3ee6ac1ed3fca04367c08e5f580f39";
+  sha512.doc = "e9dc19657f581260a59f141747bee7b15d96352eb4b59a2decf116e1287a980b106bfff220642e4d1828d65201484e657d8f4513faf7998c0ce3938a98484ae1";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.4";
+  version = "1.6";
 };
 bodeplot = {
-  revision = 65074;
+  revision = 69397;
   stripPrefix = 0;
-  sha512.run = "671f6373b4057279d92e7153c561a72d6b28031dedd395d8a35a9b7e82f89be8983f7e8598c85694fa68497d7af1092d6f5f403c0dc9c8fb3e24b3b373a51f9f";
-  sha512.doc = "02dbe19ab0243fed2609c5aadd91dc4a32e5bc8cd36a38244c5ee8e875d68ee5aa8e3c7bd4248c4287ff5fcdbc8d0c81adbbf5168d40e3e03eb44804dacd7109";
-  sha512.source = "c4f2f526cf9f9ed20364b555728664b68763b1ecebbf4c47be80fde5f9dc0af2766f2a9724824442fef362798dc42618268157028ec482dcea3572290ddbbde4";
+  sha512.run = "ce07cd6d21576123e5fcbefe15417f90a3c8bb65344a0700cb017bbcf76a27b2a3938e7d3f13e12a06398f6af739af69d4e09e614f1ca58850f2d74150bedb71";
+  sha512.doc = "478f633335f8fd55c712c37b11f54523c9d51a650d9025bd0f09b4ba77241710a6921fac8caac6ab0c4aeab252ba89886871c3887b327d1abc01771e6e9c5618";
+  sha512.source = "53c0f4825ad3323af7cb59ee07327d628a075e86dc880edffcac25dd0b3891d2f156085764cf0153c4b7bb9549f6e9253d090a4b08c0d12d195e872dbab02686";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1.3";
+  version = "1.1.5";
 };
 bohr = {
   revision = 62977;
@@ -4834,14 +4954,14 @@ bookman = {
   license = [ "gpl1Only" ];
 };
 bookmark = {
-  revision = 56885;
+  revision = 69084;
   stripPrefix = 0;
-  sha512.run = "56d73af9961348a8436beb957b65cd9cb0bf62c9031fa71e5f247a367ecfbbb15763214710c66e057d2806a0dc0ce09b05a163d74a7687c8f0dc340ebdbd2849";
-  sha512.doc = "44491b3165eb356327345f6f7c5b690db6435369e1c58571146982285ef849425935ad03ef1c9bb0e306af740bb6b886b21226093fd083e838da29d09bb005bc";
-  sha512.source = "9fb4abf83e752b4c1301050feaa4d648d67fedbb6ddd9aa1bc253dd9eca76b91ce02c14fed17364d768d170e8b7ec4e991c23c582d121a4e72e4fe62a02f0442";
+  sha512.run = "0a95a2839415393f430eac43a0cac3ac1c4397d68b037167d0e66595e82cda6ef11078bee63855ed1de66191f2f241418705ff819dbe02ac4e3c68ba88eec52d";
+  sha512.doc = "1c6a24efbee2e8734955b40b9908a8f5af95d6d4b8aa330c72ae7dde5c9fa374af6bbe7651f46c87bdc11f69a38b5d81d03152eb10d0eddc334b87276fddf252";
+  sha512.source = "d9087686dad4b3d68e8520888fd1787ab707c0bb196777144865e2a9419112a3e3cd25064ed4c0d0d5a31a195c84d4793d0063e17037c74ce3eff20e03def946";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.29";
+  version = "1.31";
 };
 bookshelf = {
   revision = 55475;
@@ -4982,14 +5102,14 @@ bracketkey = {
   version = "1.0";
 };
 braids = {
-  revision = 64817;
+  revision = 69398;
   stripPrefix = 0;
-  sha512.run = "f22e6cd21211deea82179b351911f9809d420bf5a9c59064a24134b87d8e75e2a7a0268b6e285117b782884a7faf3a9b54ca9a6e2e3f2c5203c45c85984ccae5";
-  sha512.doc = "52922680397d933d9d99fe63004b2874061cdf83aef88e8d3dedbc46c97b270b559affa8b7a5bd515c086aa83f21552c35c161c9450ae57cbef57d96e2c70cd5";
-  sha512.source = "54d308837fa78d4133d88d2d162cf1f80a032b00860adb560ff08bb2ea9b33fe7a8f5ac36e918b281547c44a0c3584efff53d0e5538f36fc03c554ed2b6b26f3";
+  sha512.run = "e92513b484cd34387542fd39684141d6bd24c99ac4e99791498e75e28c814b9647f9762a5803aa127e9c5423dfb93ac9126348d94668bd7e82c82b54af482f34";
+  sha512.doc = "b8a26f24d450b8176a2a6d094e3f0e66faade539266652319c354cc45a824358fbcde416582fa34917de422d0a86f782858247b7d457b50353ec4803b9024f91";
+  sha512.source = "c47edfa15e2d11bb06d984cce5735699f2fa2bcbe5ce09abf7f4220bcb904bbb5a541fd0ba9479d941b909ad9cf4df3374fffae8fe6a90fbbed9e80e26def3f9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.2";
+  version = "2.3";
 };
 braille = {
   revision = 20655;
@@ -5008,14 +5128,14 @@ braket = {
   license = [ "publicDomain" ];
 };
 brandeis-dissertation = {
-  revision = 61215;
+  revision = 67935;
   stripPrefix = 0;
-  sha512.run = "fc8d06b0d5f7e24680e6c08f7ac59b59b19b2232e61175092f63e3d19bd43e080b84777e6305d1ec3a110b367b135a80e2d7bc6e13bbb875855b732fec796bb5";
-  sha512.doc = "219fd04d81a64c85b1bb6d26d2ce1dba07fdb07d1df370e01e7683d7bb29da90dbde18ddb509415ab55454e1b112b7053a6b3f179ba32b362ec19a43433caf4e";
-  sha512.source = "c545f4d71ed630207492f68fc79a054c7a57121335aae12449106a1cc5554631d247b8a5a1cffb03f8288d3b3ceef1f45bad561a1a1ce0da67cceb12d7391f01";
+  sha512.run = "96cabbbfd22e26d8aff3b9c54c5f9bdb9ada8a036af3761171c7ec1384d4429bd69c5004e16e87098e5c6355cd029e08371f41484742618f9090fa2c919bd638";
+  sha512.doc = "23c1a0d8fa47893017e657f60ef9a7ea54e6f587bf164872b4abfc51f04074ecd82d3494b1c78bec76e6e848bcce20c61af0ef7c2e9b24f91f657a678b03eeaf";
+  sha512.source = "b0d4a1712c784aa20e159c9c6827cb61b007826ef445981a196bb5e4c159199b76fb59dcc6ff03dc67b0328eabdaa821b5ed6ba0773c17ef7025b171bd6f746a";
   hasRunfiles = true;
-  license = [ "lppl12" ];
-  version = "3.13";
+  license = [ "lppl13c" ];
+  version = "3.14";
 };
 brandeis-problemset = {
   revision = 50991;
@@ -5027,14 +5147,14 @@ brandeis-problemset = {
   version = "0.5.5";
 };
 brandeis-thesis = {
-  revision = 59832;
+  revision = 68092;
   stripPrefix = 0;
-  sha512.run = "f1fbb296da700ba3cf4c9e6818898624576b9a58803754d77909031e7bf3b207790f4818e247fdabade5927687e8c6a186e887f595f536c1c4a8ba8e1ba03ec7";
-  sha512.doc = "51bfa4fbc6d5900d92b3c7d5530b166dbd653af2017153c5ccd18d9ac49e124178378d1a2ecc867ece7ae758812f5c030dac00d55c46275e79c2bf4e9cf77c78";
-  sha512.source = "b5a5b294470869862855b4e9ddfaa6c7213d91ea69ee99834b5eb2e09c595d12fc5df0742cf52e19af156bf1db29744b9a320ecacb036843f2169891fa42fd41";
+  sha512.run = "8d2c00167dc8c755d5d29f66c36d7d70d4fcb8fc1ca66e5c4008d702b38eee9c8bbb4bf9e7129a69649f57f31b25b532d44f3bb7628421aeff90e89afd9ba2e7";
+  sha512.doc = "61bf51cd01c13bf698b9466573af4f91357ec77a265db2166881c1f01112ce0a17d87b74f5470aff7da42bc39bb77fdac0cf20613e379bc168119ebdafb85d2d";
+  sha512.source = "0cb20a7d0b841a2d206ea4d8d9c0e7077d6b94c841d3bf8372899707e2b63c20d0cd6ea60b451abc6e1e64ec2c69771bd6fd30203e4b994d8b0e6779abaed515";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.2";
+  version = "3.3";
 };
 breakcites = {
   revision = 21014;
@@ -5102,14 +5222,14 @@ bubblesort = {
   version = "1.0";
 };
 buctthesis = {
-  revision = 64004;
+  revision = 67818;
   stripPrefix = 0;
-  sha512.run = "c8988be5f140ee2739c2fc2365d1306ce2f47480d47c85c6f2f7cc525cf5ba5b8683a99bc4d5167f78839852ca800ed07caa98a3498893dad92051ca3ba3f7b8";
-  sha512.doc = "a0f41589d447a81f9fbec183b30e832883a7cffff16ca538c74ccecafd59e41a67e1b3d2ae355eaf8d04c3c6417326606db5ad6752e45f1f031cd7b26ebdb0b0";
-  sha512.source = "b7be46e4266544c18bdd76838a3f2635c6cadcd6aa93879cf977ec37264c9438cb3a1e9b79b5e567d460bde2193038b4f88f6f5446519666b33c170b8c698d12";
+  sha512.run = "7c27a0f982a2727c8ad7dc98052f48ddb73d37ff27b89eb53f8e33338f67fdb99dba2cdbc843cb628ea725fb7ca7d0188ec5f53c6b863c4707e8b174c8b788c2";
+  sha512.doc = "edcf0ac0b5e9ea86df731fee1d2388960b997b7278fac5b88dde6e3820ed3ff488c6ab156dfbca169fb9dd11cf49c5ba5c17516ac2f874bfb3d825426f0fa5ad";
+  sha512.source = "bbb105930a740ffecc9c2f4ebf3a3a206c49c3128b44bc9d96c97ec0715da1fe152bab9ffdbb3a3d8fd3689702bb7091056dcccb4b428d54ad0853f9ede97ada";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.4.1";
+  version = "2.0";
 };
 bullcntr = {
   revision = 15878;
@@ -5172,10 +5292,10 @@ bussproofs-extra = {
   version = "0.4";
 };
 bxbase = {
-  revision = 66119;
+  revision = 66115;
   stripPrefix = 0;
-  sha512.run = "c60e8977d31a2868fe5ce91a27944a9e27708bda09800828b760accb166413902c57a1999fad09edcfdbd6463e6e5c248a4f1f13de50762a762ccc7de8e31a24";
-  sha512.doc = "97032b46c6bada17d81cc9b167f4f180d1cd9e1fe04b0e73f1bc958f9cc72e678bff482ebf522f01d0e0a27a79b4edda867faab01d139a300e3e1add0fc05b68";
+  sha512.run = "7d1b15d92136126999f976127b43a125a9bd5aacaca5a76aecee94d4f6a6ce6538c449fc82d95a55984b9de802e1e66903078e5d2344db532b9b2e2e94ffdf24";
+  sha512.doc = "162a33a07b6149997b9cf0ed5b1baf55f80f2142c106e07188b27c02f4fad891d95d6366581d958bb730106f5d3777e59a1ba55176a7e7594cdadc77e85d7365";
   hasRunfiles = true;
   license = [ "mit" ];
   version = "1.2a";
@@ -5190,13 +5310,13 @@ bxcalc = {
   version = "1.1";
 };
 bxcjkjatype = {
-  revision = 54080;
+  revision = 67705;
   stripPrefix = 0;
-  sha512.run = "f720106c08ffc3b8f9a2c9279325364d5ae91948d3c61b83423d41a55249cdb205bf330c8f08ce6877a7713e82a67a29f1a71e9ff07f9c1225926a61a858fb5a";
-  sha512.doc = "cecf43857662a4b1126edbacc017a8d06b366ad8c785db520d6b18a293cdf786b8d7bb7d3981355acf9a4d2759c2a58af25a61a9a06d20b431ba3eb50117b560";
+  sha512.run = "72d3a88c117ea971faf8bc836bfe32ddc52e96c1fe1546ceeb8a9b298b7a28fdfc8aa4b0f43bdb3fd27126383b289ad293b2ca6c4ad95873948be0651de4ea18";
+  sha512.doc = "8118935396e03cf72b0efe04d6e436c6d7b3aad3dd1518561ec36d1fcf35a4e29dcdf86dfe554d06f4814694e7528f238b73c0145dce6ebdd5cc9b587db3f86f";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.3";
+  version = "0.5";
 };
 bxdpx-beamer = {
   revision = 41813;
@@ -5235,10 +5355,10 @@ bxenclose = {
   version = "0.2";
 };
 bxghost = {
-  revision = 66158;
+  revision = 66147;
   stripPrefix = 0;
-  sha512.run = "ea52e53228cb79a5f3aa5dea1c85bbe19a4fb1d397d6da113b360b5a6fae384174a5ca79f4f00bca2f011a484e529991c9d7c4856060fe47b9ff1d42edbba20f";
-  sha512.doc = "a158433c89401dc345997e9a29ea0eab432e9ed22f5a150025371ad2d7d038073cf49371415443c7f1dea7d48b1506208461bd6d46d502e4c630385486dde509";
+  sha512.run = "8b5345c2e48c16f296e3533977b2d9a031274764f3580887d2142a12f34e93d4d31bda0a5997823a7bf52891c8707d897afdc365a001348d2ab12d8f947acd0d";
+  sha512.doc = "999e7623526c6ef51b8c6da383e79d9f889d1e45efb52eb127463b94e7790edb124c2ddece303c932134df4daf4189db082c3492fe04e6a829e1dd6d943edc02";
   hasRunfiles = true;
   license = [ "mit" ];
   version = "0.5.1";
@@ -5253,13 +5373,13 @@ bxjaholiday = {
   version = "1.1.1";
 };
 bxjalipsum = {
-  revision = 66033;
+  revision = 67620;
   stripPrefix = 0;
-  sha512.run = "2c591c8a821d993c7ba3632b4794c19d067b7702a8999ebb611becd2c4492c238817a9ad60f4f04d70bc2f69980a2972b18388755c33f60dd74ffef44c3a86b6";
-  sha512.doc = "a1247ad8a66e357de1e67837d4ae916023e6003c29f43d178e25be938c10b43f100a35d944311c49c8099a4199c999f89b0eaf4e97e3229e1151789c3b699963";
+  sha512.run = "a3c635eff092be08bb99f882a18fd477aba3b9b25666defa4cf872806dce666ab8b931cc5b85ee217dfbfd453a066461ba169f830236ad55f75a28a81a157e0b";
+  sha512.doc = "b7f020236e7cf429bb367ab412a6b58746302d2ea0c6d50c3b9af20a86e535196bf3e628c962c98ff0dd3d194d702c7a20cca55b815b88727bf8bcf0a5eb278b";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "1.0";
+  version = "1.0a";
 };
 bxjaprnind = {
   revision = 59641;
@@ -5280,14 +5400,14 @@ bxjatoucs = {
   version = "0.2";
 };
 bxjscls = {
-  revision = 63011;
+  revision = 67657;
   stripPrefix = 0;
-  sha512.run = "23b3ad893f6d3d4ca3e05bc047eca414058974f622ec966c9a6f6f02f34f664e08a1aa8ef1fb64f9665c73ca8cb8b396336c00917b0295c8dc421e6b52bd96d1";
-  sha512.doc = "2c56a1cbcfdf4760b47919b5669a118f79615eccfc66681b1d6eb3c5ff2037f9b9de283558923e28a696059ad2d210c6568e6fc1e7e342b74978100e79494d32";
-  sha512.source = "f76994ec09a8eb2b86ec1a5d13dc8e005fa5210566e28086f1175056f1014276ee799c2cb6f2e38d09f8dee645f86c02f6de12821215a691b7cba4d6cd3449fd";
+  sha512.run = "83829f4785fbe8e283adc7c463bade1828f5bb3b401e0e3e632ca418754e76b8ab68f275e408cc779ee8644f4f90885257ac989e66982efe6b66d77ae2587d6e";
+  sha512.doc = "c5923edd13dee12f95611103de2926c03edad8cbe85259ac345d33ab164012e9cb4011381fd58a49f8a76ec1eb11653b6dc589b3c8a4dff2299b7140547e14f6";
+  sha512.source = "b111a7f4054086062db2f5686552b8b763f7617d5828a74b57462836c09284c7fae6666d2af2d4892b8a7fe2db9198f93ecefa38e1a152cea31c52ad35995583";
   hasRunfiles = true;
   license = [ "bsd2" ];
-  version = "2.7a";
+  version = "2.9";
 };
 bxnewfont = {
   revision = 44173;
@@ -5335,13 +5455,13 @@ bxtexlogo = {
   version = "0.6";
 };
 bxwareki = {
-  revision = 51286;
+  revision = 67594;
   stripPrefix = 0;
-  sha512.run = "73f44924ed35cf95af7d2eae057a48fcdd307741ef9a0a0943638681f9008eac56e8f2b1f57afdf0c3dc789a079e65ab1142cc5e993ecf6b382e8bb127f6ea1e";
-  sha512.doc = "d861ef91292b76b4f248b51d99d062116f49be1f942629d049fff00e20a6e383bed050799a576e14f7daef52dd4f7f1fdd2ce898374191b9c719421ea755d7f0";
+  sha512.run = "6a7b89540c662871ad9799b00a8e17d0cae301366ac6651d9a9e7ba995f6d2de6b2149f6eb5795af0d58c5de454aeb94d0ade0026520a4e54594f93fd4470b3d";
+  sha512.doc = "60c6416a036372f3fbe636dc46106114d2a43ba292f961fe299f765afd9e23c975a7f68f4c48a9c1ef9ea5b9b97224f1d0f1bd1585fb90b5f183a14528351539";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.6";
+  version = "0.7";
 };
 byo-twemojis = {
   revision = 58917;
@@ -5363,14 +5483,14 @@ byrne = {
   version = "0.2.2";
 };
 bytefield = {
-  revision = 60265;
+  revision = 68366;
   stripPrefix = 0;
-  sha512.run = "6f128c419989627e6ba7329932588121f88a63d89761d5cc912b8d53371ee5c80651dd6a3e0f8e9fb16d77ef3818baa65c317b1629b954a45743c993849732d9";
-  sha512.doc = "e7a496c61fde7af9d5ffb96b4dc1c2dfff8dc3883b07ece63007b2987f1ecb5d0d751daa001b0d2c045c9ca5be9ce074d37aefde8981fa88a2c9e91f7c3bdbe7";
-  sha512.source = "e017a2d0ea3b04682a2c5e8c0f1fc76d3d45f25161c00695f134947da31d98fd89967be43785c307893f34dee0f29ecce99c3aa539370463b31093c03b2e78ab";
+  sha512.run = "394c796574674e877a6532900edbe3555b63aaaf62bf2c8bc8dac280c60064d77bda56991ae1c1a208fc8bde4c8e990cfbb05d21605fdd4f934aad0403775f31";
+  sha512.doc = "98e7e38ae0a9337fd9926af76e51b6381436d4e6cc9b05cd1beee2f8b01d460643265c09b53b1058e72cacda1ee60df6adfc210efaee67b2b0cb31e3d2624833";
+  sha512.source = "d878e6325e42c5a7e2695af6ca46d876c56eb4f0bbeb75e560ebac50bac30dcbf6df4b82a1379ff60e713e5f92840150c96fb1b637591863dd9ca1387e9a38ee";
   hasRunfiles = true;
   license = [ "lppl13a" ];
-  version = "2.7";
+  version = "2.8";
 };
 c-pascal = {
   revision = 18337;
@@ -5390,10 +5510,10 @@ c90 = {
   hasRunfiles = true;
 };
 cabin = {
-  revision = 65358;
+  revision = 68373;
   stripPrefix = 0;
-  sha512.run = "5d96c971e8924402048edc533cdc048398fe4bcfcaed87bd0709511056f94d68ba9785599363e59c9e26fcb7bc724bb9481f8e5ea14ef8cef07376922083ceb2";
-  sha512.doc = "dfe85a134cffe5831a318f1b95e3f7d85ed296cafb834273e441af49488ba2c3dd974bd5668f695da1279efefce8c4858eda630f894de7cb0535d629bea74e29";
+  sha512.run = "8227929382396ece0ddac74095387ee0c96d2102fffe5121f89182836792933a6ad66ded538229c5bd12f65fe7518d00a333835c17537761f309db578e81bd3b";
+  sha512.doc = "95353266181cfda03973d68472ad564185abac4d828141e339183f69380f99151e0a3165f099235db54be8a3ee35ffe069512240633972f4b7dbf14ca1e06126";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
 };
@@ -5411,6 +5531,15 @@ cachepic = {
 cachepic.binfiles = [
   "cachepic"
 ];
+cahierprof = {
+  revision = 68148;
+  stripPrefix = 0;
+  sha512.run = "c152dcc24128f0f6e9424012660f2620e385f470d92dc9ed530eb530d11b1fc3aac6e9e3466fea3548d16ac812c89743865ada67a3bd820cd37601f754506939";
+  sha512.doc = "1e203d56ace798bff086a9a3eec3a3f110c5e2c4ec56be637ffc70edca4b28ea8e5bcd8804b087515431460b48ad4863d3c15a1496724e5ad814cac79dc5e7ca";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0";
+};
 caladea = {
   revision = 64549;
   stripPrefix = 0;
@@ -5429,6 +5558,15 @@ calcage = {
   license = [ "lppl13c" ];
   version = "0.90";
 };
+calcfrac = {
+  revision = 68684;
+  stripPrefix = 0;
+  sha512.run = "1545318973205544c136b6bc03ee6838f9496972e43cb4dbda404d2bc389ff41f873513ac0275769685f72c0222998386d2f9abfed686570d98fced592414443";
+  sha512.doc = "d9bc62d0d8f95ef3f34b801eaf612e5506c2c3ff855bac800a6bf3827fc3b1e572390691e04425992604e2d6404844db3fdaba566f98da46d67877a8d077fb10";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.2";
+};
 calctab = {
   revision = 15878;
   stripPrefix = 0;
@@ -5502,13 +5640,13 @@ cals = {
   version = "2.4.2";
 };
 calxxxx-yyyy = {
-  revision = 65426;
+  revision = 69266;
   stripPrefix = 0;
-  sha512.run = "f76d0a8a225582fda0c9b93549de8f091cbe5bb7db4cc20ffe5c5237126162954504f9748c75b8ea90805daa1b0b3bce2bd67fd6a9cea0700653c46206b27c9c";
-  sha512.doc = "418beea5ff9b534d9cce8a4b90ee930c9df6e6c109fb045207899c823deab6e10f284111ff57aa8d5d7eed7a03f6073afeff2eccabe0303f566d560f59c5fc39";
+  sha512.run = "329c4f91442d8115c997bbab09ae77e29bd2a8146d3109328ed9e08a2a4080895618b9a8467d4827c14ef65741b1380771409909f80d0b5fba6f527fbc900411";
+  sha512.doc = "8c3f1a6a168e5891a07d39c7f67270adc521c19cc4be6a302dc779b9bc5284bf4aa7d9b3caab22b5591c0483800ce62f0647bf9e14c83902777aad0070e4193c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "20.23a";
+  version = "20.24a";
 };
 cancel = {
   revision = 32508;
@@ -5566,11 +5704,11 @@ captdef = {
   license = [ "lppl13c" ];
 };
 caption = {
-  revision = 62757;
+  revision = 68425;
   stripPrefix = 0;
-  sha512.run = "55109f93b3dbdb817985c13b4ab55c0effb4122162158e014e7626d3093ee8ad4496374b0a337da27640f22e4ccfced8aff21cc198b932edc95092e67f43c14c";
-  sha512.doc = "bd6435cf073f65ad373aff3970e802751ad3b41d3d8683b4b23a7592a5d8a780c9870ca7a5ffd2c26c4990384c5d97565fa5dea17c162a0b922584b87efba687";
-  sha512.source = "a099da0a5d70e8fa16ebfb9e4b7837979f8ddd7fb30cb23d13e1104c1449fab119c4b7bb9b43f1f5e9bd76888aae4e78db924e8ed386418fc8467f501f4a5656";
+  sha512.run = "21a36ab8ece42716032a15f3c105ba32c5697c4c88fc8b383c66bc6fe7ddd4969e12721e94d79df0817b02b43e498ba5211ef844e320bd91ccd9ae24e6f28fec";
+  sha512.doc = "3a13af008ba73516f8d4be8ccdeda4b18fda2bf9462fed32aca7917efca3e5185f77810900945ed518fef5d81e2629f89cacad5564462f40bc0defe79451a415";
+  sha512.source = "160a286e1145f2669dcd1abd651cf2fd725ceb95c87506d0844e95393be85624fe53b2f549b7006d8470449ee9305aeed2e81d1a7f2c69cd2f38a26aaf4fecb5";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -5629,13 +5767,13 @@ cascade = {
   version = "1.2a";
 };
 cascadia-code = {
-  revision = 57478;
+  revision = 68485;
   stripPrefix = 0;
-  sha512.run = "52364786bb0be4bf001ad0563b9bbd7929f7c4b09299919623a237f631633c9ae57a185515802372251c2dca3261dab41f66420e59e9be7d2912f2c6bd30dc66";
-  sha512.doc = "48120981b674f9dbd5099255f4f430c33bae91bc50f6a2fda3f7e9625886584bfb024eddfc9ca795dedf4174f73d6546e2fbb0f85862b12e6b35bec527b6086c";
+  sha512.run = "3164663a54bc3ffe39aee9cbe9501a3d405fd8879059081ee2f0f66bb523686e25f3a7fdb69e61cb623a17ed21f21b0d6752f8c05b09590672d04315d5d6594a";
+  sha512.doc = "c84b14187b080c744a33319a4ef791be09b4517d8cd0e9ed2dbedfbb37a09785dd6244a4e4dd1cf67cc8f6ff608b6ba8d2299c7074921f6443d6208c702feac7";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
-  version = "0.0.1";
+  version = "0.0.2";
 };
 cascadilla = {
   revision = 25144;
@@ -5705,19 +5843,19 @@ catechis = {
   version = "2.6";
 };
 catoptions = {
-  revision = 35069;
+  revision = 68982;
   stripPrefix = 0;
-  sha512.run = "1169ec654a56230c615f561649ca1fc22716eaee05e5229d1d2320ff73717b708abb98789d7457093e5ab5f2dc67f3e818e58c7e8f32c8f29014e19548f02de1";
-  sha512.doc = "4c35a3fc5829e3492fad27f2635bb4ae62b17b5d012db40fcdc5929ffe0f3917ec76c12a940d5fc6dad2b8d7d9d12042c7f5c2350467ba0777a23c97372cca5c";
+  sha512.run = "d58647cd52548a6ceb0f6a47ea20ba9348e1edd55f5514c5264857d99be1085824c4f75c2f7231ef41a1ff5fd0274fd5e3f5dd1b91241179d1bab417f2ef100f";
+  sha512.doc = "ef09ecf5c1bb066ae733dc1dc3aefc8f6c8521c8596ff8b45d42ce8315fe49773b6c7d41d632eb342ada05d16784faac3cdfce51af9cca4dab7c9157a7947867";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.2.7h";
+  version = "0.2.7i";
 };
 causets = {
-  revision = 66375;
+  revision = 66359;
   stripPrefix = 0;
-  sha512.run = "af547d00813a1e22809f11b465e0a17076895ed6b7c3a51da0a6e14adaee54397f8650e4d1845243f494217e80f5b22726af04fb719353a9cd07a8d98792d3b3";
-  sha512.doc = "add04d39687d5dc1d6ffc37b889cad1dd75aaa515d5af912ceedee3df302495512163e1fd9a8b014ca3615c166a2201d15f3f68b2a507f4f68c3481f0a3af7c5";
+  sha512.run = "961f6affda4b94a2f67e1acfd62a12439faafc436c66320b04c3df11383016375f0bd284836a0618def46e624e7e7a5f46524bfb9c3113575c88d490d117a417";
+  sha512.doc = "241ce316af86e3f764929fa7c601a1533b86f85dacfbf2e81acb487b312c7df9c2a9ef1ddd047a977cc7eabaf4643caeca7f5c07979f9509867f3d522c507873";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.4";
@@ -5858,11 +5996,11 @@ cell = {
   license = [ "publicDomain" ];
 };
 cellprops = {
-  revision = 57599;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "44aa6378b682ec67b547458ffbdd26416c517cbd8df6b021325448696e291e0a8006ec036edcd476f105dc8cf41e556867f8f87fad30da184668050bb2d8d34e";
-  sha512.doc = "187c5708944d275b5d17f616a2b4bbfc76fcaa0dc9d11da2d67769e46b232656f1bab0602ea94b3fcb1665c92500abb7ffe60645ff267da077ea98f35620efb3";
-  sha512.source = "771b6bc32e1e82a62dc1a93c955b01455b14ca5f9fe43d79f29e131487ec695ac50d6106cfe68c5e1e8fdf6d88980b7d7220613a8132472cc8fcd0d9d3b63045";
+  sha512.run = "81b8f2983c9425d7b95d916fc5f1989dc266154d4cea7c48165265076f187c82d256fd98989b750cbe15db64f6fb4a935bc91ae67718b5541ed695ede861c231";
+  sha512.doc = "a88187cd20bd8ab41077d3221dd6f804c310a3f7e53e1e600872a4edc65dfbe1547ca8599c42a9a10d4d61ea89c0a8da2cf4d60680706605048fb728e7f93129";
+  sha512.source = "1cda598a44d2b5c8663927911a291d91dae59d5b0169d34f386910877916a7edd6018549ca36a5c317d33c93096ec77dbdab5528b4fc41864a140aa206112c75";
   hasRunfiles = true;
   license = [ "gpl3Plus" ];
   version = "2.0";
@@ -5887,13 +6025,13 @@ celtic = {
   version = "1.1";
 };
 censor = {
-  revision = 63126;
+  revision = 67293;
   stripPrefix = 0;
-  sha512.run = "d4f70727850c311cff4f7bbfd2962bb9510590791cb3e00a247f6c708477f9b0b7bd35f771e3145ad760f18284b7e8779bf302b55fbba3f25f11ed57ee896306";
-  sha512.doc = "3d1d7f5828ef75c26b8e172c6fbe0d48d15842a11d720574f022684a154c6dc864241a8a320fc4cf42c31ed67eced0bf1c728e321b9d8e4cb08a96811e7f80c1";
+  sha512.run = "9f61a4830737a7ec59797489ce4fef44d5d270d1ef84b4971eda0d91bd9fb6aca0efae6a7a0d056919d090325592e459de7b9182321cf1025251a81ee9127a90";
+  sha512.doc = "3cf23b7cfac9f992890f67fc86f3e53cadef7cbe2725b4a19bab144766c4f1e60a3675685513d062d5ad81b3f13b4b6864c1daf83f76761275aa51b07a130c60";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "4.2";
+  version = "4.3";
 };
 centeredline = {
   revision = 64672;
@@ -5944,14 +6082,14 @@ cfr-lm = {
   version = "1.5";
 };
 changebar = {
-  revision = 63259;
+  revision = 69367;
   stripPrefix = 0;
-  sha512.run = "1d47e3e98e6923fda580a8a34b8fcdcc7aad164306a6380ff8fd9ed77f1256225221f8b15da604303e562471ed6ffdb7109b6b95a397b25b80c48fdc4e565b62";
-  sha512.doc = "f3ece8b350ee00ecb596f0f66ef2ded81b7c507c618d226084d4a4e403441b9183a3686c2c26430654c45f15471092e83864a28cddad3d08e60c656d3af8ebe1";
-  sha512.source = "0615c7d0057e9138ba84e0f622560b7c0823d44021702ba31a77ab1e3bd13c24b8d59b1d96369d5e619d180797f2684c25d497e40a5c253a67eaf399b6cd0763";
+  sha512.run = "2dda64af4a2528e5f81a1dad9002badd1c443d7f1e3cec36b9548254e5b365a641912e720779787cabc6057dca74af42db2e1ec3a9ffe39c3ae5ef7ffe0d8319";
+  sha512.doc = "5e0e2766b5078d1ffe87c36d14961aca842ff7d0ee73aefc6277b730dfcf98ea573c822addb2d6b95cc3981e6f56458a3a209c03848eea48170f7452a6261b96";
+  sha512.source = "ad58dc8f77ac1f4852d47baad9718fab4549d8fc0f856596cd8501329895b532346a299e412e87840de6934151837eee0af0b4ec30200c1bb99f10709901c9d0";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.6d";
+  version = "3.7d";
 };
 changelayout = {
   revision = 16094;
@@ -5982,11 +6120,11 @@ changepage = {
   version = "1.0c";
 };
 changes = {
-  revision = 59950;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "4fe27f5c76d1ae374b1d3f3d75cb7e61a82baff34ea0fbc6c7ea87eede785f83dff23f3f56fed9323b9d364cc2bdc533640552c8b454f7a821a80e830244f97f";
-  sha512.doc = "f35b3e0eb4318a97bc09361be9561a3b195678559f8311fb0d2bab4211f86853b1210e515e02e6312a8d46e52d7534ad9573b9bb3ed5611f1766a55e54d22c3f";
-  sha512.source = "a8ee2f4efa5caad223bd543a0bcad42eed02d2aaa143826ebbb13000d820083ed416cd7399d07c8865301708fcb87febc5d211ae8b0a6a6f08b5b9143d8c430c";
+  sha512.run = "c7c8f65cc8a6f94403a1c85b01eece41561eaaef39b39977d02b146ef8dfa49aeca27345eb96ad5f6ee05d3a6625aa0dec9a34def564fb2b25dceaa528d230f7";
+  sha512.doc = "26796990ee809dd953fc8f5ead93517faa1bdddf3639d9d51fc2f0ab00a620fdc1950ca78a6a77cb58a5977f702a1d93738312451900ffb0a745282e777f7daa";
+  sha512.source = "35fc09ca71c5a7baac4d4bd69ea38f507927ba0c82c2ad7318d11ac22d3e319f70522cedea14f2d36f780bb2c7ea0cb852a111dac3b07273df53291956e9c716";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "4.2.1";
@@ -6048,9 +6186,9 @@ cheatsheet = {
   version = "0.8";
 };
 checkcites = {
-  revision = 64155;
-  sha512.run = "c28a2785348bdc7cf8e30d3339f301a355b6a9e513d143d34f2b2535a69a32f7cf8a8ae9c26b42c6db32d00021a10ca135891a22b0547c219f31c6c9720d8ca5";
-  sha512.doc = "a394ea5f70f48e7dc7c9d75de33bbf788904a5e1d8e3aefb5dd3bfd5207ee512b1a84ab4bc03bddfa15dedf962f330931d9e80593542e5a180fdda8a8aaf87c2";
+  revision = 67201;
+  sha512.run = "f39c3d9dd2190ea9bd08ac323192197042d9a3899de22ca3a3fe05c0eaea0061f07fc3f53ea3c5f8c8b3bbad5ef4be0da7bf218238e660d28283bbf4edd02a31";
+  sha512.doc = "49760eb0be9ec54bb784f1b33ed5b86ce655b91b85e6f9a905342832aa4d4288138b82268a874f7b458ff87c8a94e4fc542dba3491b55a309915b6c3623e5de8";
   hasRunfiles = true;
   scriptExts = [
     "lua"
@@ -6137,13 +6275,13 @@ chemexec = {
   version = "1.0";
 };
 chemfig = {
-  revision = 65901;
+  revision = 69227;
   stripPrefix = 0;
-  sha512.run = "3d7e49943a034ecb25c13015c3c2e05078ccca1cde53ca4aa1496dc46372fc182afa48275b29ab87e6877307a595735329cb5a1aad8db7fa43f8582fa18e8ebc";
-  sha512.doc = "ee26e23a8409cfe2a3e8efb888734f93f4d5b727420fc057b6963e344565ef56c1385fd0fe02f299ea009167ce1de72f448784368cd8fbd4cc45f991863dc564";
+  sha512.run = "1f5908b759c39314eb999b4d1e60ac364888e4d6193673bd387ea838eb9bc257500b0603055b2182cd5be581dc1d674ed4eaee6ec4b0ce225f72ddb77f67ac80";
+  sha512.doc = "1af123c858992787d641eb6f0263f5ed0d819c4264e97191ae8058714039e202bd9bb663e25104775d9362ca005acdb056b3c97c238b1899880fb51665405a13";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.6d";
+  version = "1.66";
 };
 chemformula = {
   revision = 61719;
@@ -6461,13 +6599,13 @@ chordbox = {
   version = "1.0";
 };
 chronology = {
-  revision = 37934;
+  revision = 67973;
   stripPrefix = 0;
-  sha512.run = "6fca0b31511366c1e39f6518bf5c6e10bfb503a8a901d9e1167866a40e2fbb9d2a6e109f48e146bbaaa2c017ac96e82196a5f49a91c6c9f52eee2633fd5c0737";
-  sha512.doc = "ce0417e339724dfd97c227f104d9cd0b697c1cb7a5c586c890c3e938bbdaf5db2984fa83a09d983970c1105751cd012e544807a74bf0a35ecd2074a97d0520a4";
+  sha512.run = "0706b70147c064fed807d750e3619d6f6c9ee9d875de70c8e08720bd0fe86e75fe79a2dc909ea9c76d98e0f6cd864957ee213f58f2753eaab86bbf2866b301e9";
+  sha512.doc = "dacc8fbf5869df257cc03f0bb4b1c33b2ed7e67f2bb7e4fb897038d623b4f3c1c7e308191a2270e661157d3908c142fc6fbaea349740487797f45feaabc9c039";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1.1";
+  version = "2.0";
 };
 chronosys = {
   revision = 26700;
@@ -6497,7 +6635,7 @@ chscite = {
   version = "2.9999";
 };
 churchslavonic = {
-  revision = 42751;
+  revision = 67474;
   stripPrefix = 0;
   deps = [
     "etoolbox"
@@ -6506,11 +6644,21 @@ churchslavonic = {
     "oberdiek"
     "xcolor"
   ];
-  sha512.run = "6c572235b95bb1f8407addefdefa1d7d3facc09b963f4d65d2be317986eb6523db9a8ff7104f15c526962ea8fbd0e1430b68867bf619cebc9b494f5cc04bfb07";
-  sha512.doc = "90d563afc8248ded0ea4f30ff685e2fd9da8dec7ea92a3d4313040905be883af3f11393a031ec85ad39e9e51d374557e0f1f373a78caf855d2048fc4e0393e37";
+  sha512.run = "6b312822caec9f9d71396b8737010e59521cc59a744c6d2e0633ac26b24ab0ea97ef29472a83b49448e8d82225ccb63926cd91ffdacc523ebf37bfbd2d4cf6b9";
+  sha512.doc = "a56e9927434f6d29db7c1ec20c0c3d20cd24241a9883fff160cba111eb5c11181d5ad1b9ec8cb66dedc649b8c8d25b9cb8670f1a28474174b31cfed380a2327a";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.2.1";
+  version = "0.2.4";
+};
+cidarticle = {
+  revision = 68976;
+  stripPrefix = 0;
+  sha512.run = "1dd802c60fade71ee873cac25440e52b9cfa45293019cba6c22a16a6861eeeea1e15ad4f945dc9eafd95873efc112110b4ec14550f8bf8cdf57bec6fb6e54ade";
+  sha512.doc = "ff0dbf03d9c9f371d90adaf1f5d984e5ca6628d005c1345f4e2fa7c2c4bfe494914667d8afa572a5e3eebe73a7d4e01cfff8e1ec8c213d58f71fe64089872722";
+  sha512.source = "f46c3d5e483cbc9352793a2b8cb6b92ca0a561ea321633d9589a39f8331ded98e183ac331fb100e4e7e0539674e2563aad95c029f29c00e98798462e25228c9a";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.1";
 };
 cinzel = {
   revision = 64550;
@@ -6531,13 +6679,13 @@ circ = {
   version = "1.1";
 };
 circledsteps = {
-  revision = 63255;
+  revision = 67889;
   stripPrefix = 0;
-  sha512.run = "9d6d03eefcf50ccb8f88d5782f00d5201efdcf844c947f45ea92a41d196de70b7917013b061b6eaa9d0322cd44e826b3987576c7483176b7aa956cff2a55a611";
-  sha512.doc = "ca3ff6fd272068aae1935a56f63e32886dd879816114b51835ae4c44db35d97bf048e5808fcf3c6c3206f700736835ceefe7883434a91318d434591d701a4aeb";
+  sha512.run = "41f96e112cba5f15bb36afaccff8852917383269c7ccf8f163972759615d5e5b87c3acbb54e4d14db6572cb0330154e1117f3159d851fcc9d3c5c3efd3c17d88";
+  sha512.doc = "815af1f69253625528fda78b1794eae1ddb5cdce357f5af5db5a68385d7ae90386611335fb8c429de8dc13a908ab5253ca2e99ed019590434ab6d087c2dbcbd4";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.3.1";
+  version = "1.3.3";
 };
 circledtext = {
   revision = 63166;
@@ -6549,25 +6697,34 @@ circledtext = {
   version = "1.1.0";
 };
 circuit-macros = {
-  revision = 66556;
+  revision = 69263;
   stripPrefix = 0;
-  sha512.run = "8879518a4ad41942651c04f4372f354e231ffd121a8c8fe7ea7a517ddd33765910ead0251a8f82b3a0a5d77dbae7c997d01d4fbeaab82fbda112952d1a6a1a24";
-  sha512.doc = "5d8e5af2d8cb8998147510f72dd1a2be31566708c000616989c48593b98f86c8302970345d7d9f1bbb383f4798b66ad624f9e1a365fd072066ca8f3286713b7e";
+  sha512.run = "5bd9c2885a1e8bde8f954d5a4072e00fb7e2b2a1663fa6db5f1346aa5f5022107a01f44175daeb0fa8e84e066c8373de8943b89bed725c03bdf45769dca51ef5";
+  sha512.doc = "784736df91755e22f003719b1821b01a8346ffd72036cef10ed2fb38869beaa449a12f8a5782d48355426ac46268f3d897178e7ad06a2bb21fe00672a9d64280";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "10.2";
+  version = "10.5";
 };
 circuitikz = {
-  revision = 65785;
+  revision = 69077;
   stripPrefix = 0;
-  sha512.run = "c7fb0d07045efd8165ff3e15f1d92dccab8ffb91cf383a9617252386bd2fe49bf570ad74100c81115ac609403546865561f61a64761e728354179da0a19adf26";
-  sha512.doc = "d1c09c6166c3d0a03da892e45613bc15a8176fb7646f0a893a60cfb84bd00a8c9475c4be98067cd1c3b4ce855621053963607ed963eb20300588d4c2657c6416";
+  sha512.run = "82eda82916370e8c76c450d74ffc4a77770a00aa0c65c4b53e46b1d6c2262db83af3290d220be14db657ad80ddca202535428d6e34af5a0e7b6348c01d8fb59b";
+  sha512.doc = "8dbe6c341fa86da01fcb3122531f1dae59abd3e1927d065ea7904294dabdf45746c52fa9b25b8a32a6234984afd8566b914c9e5b7b29a05337fbaecb4321c506";
   hasRunfiles = true;
   license = [ "lppl13c" "gpl1Only" ];
-  version = "1.6.1";
+  version = "1.6.6";
+};
+circularglyphs = {
+  revision = 68476;
+  stripPrefix = 0;
+  sha512.run = "043f30f3b8e7834698e2c70744ebb66f938ff7189c593f54b1d3017b84cd7fe180b5b7685013985f68c31f8e62785804129ba91181053119679ea4f775676933";
+  sha512.doc = "8ebcaacfdafbec747a690b392e872a9ee8e7293070e3200ef583f6f5e660a5ab813a8a426464f024c493e17e956f1192984ca3a58fd7abbfb89fd403fc1e359c";
+  hasRunfiles = true;
+  license = [ "lppl13c" "free" ];
+  version = "0.1.1";
 };
 citation-style-language = {
-  revision = 65357;
+  revision = 68454;
   deps = [
     "filehook"
     "l3kernel"
@@ -6578,15 +6735,15 @@ citation-style-language = {
     "luaxml"
     "url"
   ];
-  sha512.run = "4260ef2c25c7350e01a0bb7b7372a63da723c81a473ecad7346962c49ce35b68d5385863bf3ad742bd4da79720d4d240293f65677e01cdc41993509a5999cd21";
-  sha512.doc = "19c2336b57d8da88dcf22a92e54872a0d9548d5b2f9433ef155534c29f935988056240064ee863fa4a86caaa93dd0e4873725342c698bddabcbc90b771fb8d60";
+  sha512.run = "da914f9a07a02453627546719a1df88d3cc5520bd1530876208b2cbf0acee4536f043bb34228a54afbb86a4fe5ea9fe178102f61828b66b1eecd610cae7c473e";
+  sha512.doc = "3af7adda2f2cf49b178680be6bd72f299d04f515d4f8711f6830227a43292229704dfb990ceee289ef9b46afd1f057d53215dbf226fa99c41a218542dda74a67";
   hasManpages = true;
   hasRunfiles = true;
   scriptExts = [
     "lua"
   ];
   license = [ "mit" "cc-by-sa-30" ];
-  version = "0.3.0";
+  version = "0.4.5";
 };
 citation-style-language.binfiles = [
   "citeproc-lua"
@@ -6619,13 +6776,13 @@ citeref = {
   version = "1.1";
 };
 cje = {
-  revision = 46721;
+  revision = 68656;
   stripPrefix = 0;
-  sha512.run = "cab80d266c2b5f9d4ba9d37cc5490e831e3f773d86c92fcbfab9474864aebbb6123e1ed44877127e84b6e1fe8037f2425259789b9b9597de49e1b24b123992a4";
-  sha512.doc = "47a2d96b6b530be732385617af832ad48c3d6c7a34a7e9e0523c38a03b5116b94588c995afd153c25be6ceea9bc199685fab9eb83636b5fe27525b19a4bc7cec";
+  sha512.run = "764c9429f8000aede2b8dd85fbb2bd7eedf8e6bd2924347b75d2aa51a05b060921da15b1a55d9cc33582e5fe658d89edf8337e02f164a3de033c66bed3c6c2b7";
+  sha512.doc = "791757a59293d7144844cd05ae3346068bef42dee489138e5faacac68b0ed0ec639eb8c60d0fe34e29f37e1238601ae074d43d0e7194f07c1940a0f9411f8f85";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.06";
+  version = "1.07";
 };
 cjhebrew = {
   revision = 43444;
@@ -6667,16 +6824,16 @@ cjk-gs-integrate.binfiles = [
   "cjk-gs-integrate"
 ];
 cjk-ko = {
-  revision = 63561;
+  revision = 67252;
   stripPrefix = 0;
   deps = [
     "cjk"
   ];
-  sha512.run = "be65ef03300b8fccc4012ece68570a86797e36267ea2f531fead77659cf7bf2a315cca1a3e3386f8d1dc09cbb3b44b20dafb3e0e0cbd53bddb1a368c984937b0";
-  sha512.doc = "3ffcae00a4a0dcd175fcf864c3c0c578d7926917216b4a785c0a46074ef013eafe9458ba9010d14f081c63ab4ee0941d0597dace373eb178369de9caa210a16b";
+  sha512.run = "8eb4ca863ffdcab233a353629f40b87264903d2cec2a79088a8f92a705b78e5172228ca46cf4f3ebb78ec5e8bca093917bf191baa7184f805003ea1f3019ea8b";
+  sha512.doc = "75c041a2fbaca6977a96efbe7f5c37729d85c2f0903faafcdd69eb1425037e8a045a394b6c65b8914e0d10c831a63c58bab111491e3670e5cdedbb4a73b2e3d3";
   hasRunfiles = true;
   license = [ "gpl1Only" "lppl13c" "publicDomain" ];
-  version = "2.3";
+  version = "2.4";
 };
 cjkpunct = {
   revision = 41119;
@@ -6720,6 +6877,16 @@ cjkutils.binfiles = [
   "sjislatex"
   "sjispdflatex"
 ];
+cjs-rcs-article = {
+  revision = 69006;
+  stripPrefix = 0;
+  sha512.run = "6f49b9c02aa67036997403d65a9efc60c0cb7bcc29931d93fbb0359624fcbf4b3899e75c1721155b6484d7baafa79a823adf08fa5f1491352d4bd547dee22a58";
+  sha512.doc = "2932d797b3969a5e399c51d2c515c05cf7fccaa88d82d80b99f626dbf2ff7a6e5f7414963696842f1980755b72a06f9e9def3d282f8ff5ca5175ad1ec8d3f1c5";
+  sha512.source = "e3ca39b24e2dee6d611ccf7b0753da2d99a419db6d7e31d5aee231439dfd08da4f4bd9f902fa8c65d16df7fb9560cacf3d76ce111ba2881d267be7964c538649";
+  hasRunfiles = true;
+  license = [ "lppl13c" "cc-by-sa-40" ];
+  version = "1.0";
+};
 clara = {
   revision = 54512;
   stripPrefix = 0;
@@ -6793,6 +6960,16 @@ cleveref = {
   license = [ "lppl12" ];
   version = "0.21.4";
 };
+cleveref-usedon = {
+  revision = 66915;
+  stripPrefix = 0;
+  sha512.run = "6004d6bb5fe8c93d2c48219c1c464ad26ee1ba4b31d15e0ca55b49df9218dc974e863f975e2d4f254c2e41197bb60c4722c126660919fe07d1f0e502f2bb13ea";
+  sha512.doc = "f8e2efa3de278d1ee600f844e0cbd7da73e105003b45f103fc0f1c3aed9df4dc622302cdfcbe77646322e29a0451856816ff9ecd908e1d882f7829f9aee5cf1d";
+  sha512.source = "acc43cbb720d9feb8b4535b60fe613583192b5c6907e00db495cc03432e1bfcbb99eaf99208213e1b29140766f16d2246f6232f3a3929e88d00ec581a39bec1a";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.4.0";
+};
 clicks = {
   revision = 64602;
   stripPrefix = 0;
@@ -6835,11 +7012,11 @@ clock = {
   license = [ "free" ];
 };
 clojure-pamphlet = {
-  revision = 60981;
-  sha512.run = "67047118c74e1d19426d99bd3a716d6076d977156f1e686bbd991d6b1cba464897f662e950c86218910b485300d40a5cb80d8d43868fb7920cc99a6d7f1c5735";
-  sha512.doc = "02ab33398a87a47c76fd34df9eccde47b60b028b3a659294968b35beaead85908d958ccd94b8f706f6f2173c9af3d7f7382c510134dabde4bfab9be20f85998d";
+  revision = 67201;
+  sha512.run = "bfdc173aa0a79905af238766f162f779296fe16e343a0fc4d41e8a47be2021eaff1cb30129db1238c725f633f3c96264ccc9a2cc0fdf0686e04622090d5a598d";
+  sha512.doc = "a8c782042d9c55d234ad5df84d73e0d4abedac2294073146bbb8dc0b01ea40910657d3a3e1bfb324437bc67426f69ccae6eb297b81282f32190e87bb2ba154a8";
   hasManpages = true;
-  sha512.source = "5848f7ace83c5bbf5017f7a760fdc464e848511717f5fcca5e17f95421429a5608c590fcbc1e7a0d49bb5996def552f16515edfbfa5a2673fef962529141e5a2";
+  sha512.source = "8dd7cf59db96f9977f9242475c46a6635bf6cbc5c18bf1f44ee65cd6e308a5d0dafd2951b602fef102632ac2f6fdf707d306fb400b02e657c45a4eaf2a52384c";
   hasRunfiles = true;
   license = [ "gpl3Plus" ];
   version = "1.3";
@@ -6894,15 +7071,16 @@ clrstrip = {
   license = [ "lppl13c" ];
 };
 cluttex = {
-  revision = 60964;
-  sha512.run = "35c8ec3711963131bb50fe67ef95705a1d40a6dfd831a33d863bde16f16e66086e204725154d0deaed13e94fdc28dd59497561673542151c1574f7fe87f516f9";
-  sha512.doc = "c8e395e087f9ca511db96b96dee3de4a51fdfc9374ddaf40703db0980724000f1987298dc8253d0c5a8d7c97e46cc2a8165b7cad6560fa560213cd5ce85205de";
+  revision = 68912;
+  sha512.run = "652ad061ea6dd183b7bb5e0a893f3d1cb1e48e17f93c65e2c9f82eb1261759c369498b2ba36f48acb2a29772707bbc36c2832be1518507970f06f0e527c1fb55";
+  sha512.doc = "5dec8c3c1ecebea760f25d5acdf6371ee67c40b38f64b24d2b47346caaa3a2a20d18578c37e14586fc16aa81a4f50761444f26206b01901913e684e413ecc0ed";
+  hasManpages = true;
   hasRunfiles = true;
   scriptExts = [
     "lua"
   ];
   license = [ "gpl3Plus" ];
-  version = "0.5.1";
+  version = "0.6";
 };
 cluttex.binfiles = [
   "cllualatex"
@@ -6988,10 +7166,10 @@ cmbright = {
   version = "8.1";
 };
 cmcyr = {
-  revision = 60630;
+  revision = 68681;
   stripPrefix = 0;
-  sha512.run = "ecb1662bf6861744fa07126fa9cbcccfc0d53a1a9c1bd6b91a3c5482ccd83ec45b1dc17976d2d6c9cffc1dfb6aeb8ee583d753c427eb367b2c294defda98f519";
-  sha512.doc = "8db204fd976f23f99871dde1523ea0d46c2471ffd55f7bc1dd65e6728bd09be609b659f2044e5650d8f4c89c169569b4a4ab5535e975f3bb824a1faddb8a97a4";
+  sha512.run = "c42006e8d596b231c3ef7f3f7123292a9563f6bb0881a7807625bd05e49a67ffd37d6e0965e6da36cdff816cdbf780e54b79b999ee5d0a18fad315f2724cc839";
+  sha512.doc = "153db17097c5a1e6bbad3e13e7bbfaf13bd8380633f62e9323d2c0514a2649b001c997bad9e7495a88f5cf9c1289f2987d147e22bdca6100e7adc1d88561d443";
   hasRunfiles = true;
   license = [ "publicDomain" ];
 };
@@ -7133,13 +7311,13 @@ cntperchap = {
   version = "0.3";
 };
 cochineal = {
-  revision = 62063;
+  revision = 68904;
   stripPrefix = 0;
-  sha512.run = "9ab8abcb37615f7381132181a991adf35d34d61c81ed5100e02e9d314a0e555669a6488edbf9fd698a239ead8f49221410333705d2074046eb3e467f31ea7196";
-  sha512.doc = "5bf6a83c03d5a87567a42379c7f8462b1f52245fad5b18839532761cf855f45e596b76ea266e361527a6f269b008c6a2515cce2a616f372daaf06e6ddd6efe73";
+  sha512.run = "43b896ccce0842cdc7ceb207932c1f112334b27fa11c8431c6d2561ab0b17ac6f841ef3d9ecdb27e8a7c3976c350edfa115bf927c205a4cb493f66b35eaea357";
+  sha512.doc = "16e0783a4a77d96c96d26bb7d04723dcd5fe882da39a9214b4c84bbcd5581aeba331c0c7994a56d6199385ab54ed5cd47bd9dfaab92dcc44f940c0c2d9afdf4f";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
-  version = "1.077";
+  version = "1.081";
 };
 codeanatomy = {
   revision = 65648;
@@ -7160,6 +7338,15 @@ codebox = {
   license = [ "lppl13c" ];
   version = "1.0.4";
 };
+codedescribe = {
+  revision = 69343;
+  stripPrefix = 0;
+  sha512.run = "9d1176a6934468658a99d00f862ff2554fda33ae7e458409c3dab3df42afcf093f3d28263f8f7b431024df1b67f969ac808806b222ba256d27793a4b1e7a2865";
+  sha512.doc = "2540adbdb84154d3fa96a74e716b3b7051f4687852f873b67a0a0bbe6bf9e932b3bb19eee07b0e4cf7299e3f1d06983b4faeec77182db0e8676f53b2aeaa2776";
+  hasRunfiles = true;
+  license = [ "lppl13c" "gpl1Only" ];
+  version = "1.3";
+};
 codedoc = {
   revision = 17630;
   stripPrefix = 0;
@@ -7225,6 +7412,16 @@ coffeestains = {
   license = [ "publicDomain" ];
   version = "0.5.1";
 };
+collargs = {
+  revision = 69284;
+  stripPrefix = 0;
+  sha512.run = "1807cca3a1e73b42ec1403c272777d5e31c1a6ecc3efe9b61697d6fee7b2b1deb76b9b909846b55a297587e950b42754f68be4cc5ed729c54e310fcd248d2972";
+  sha512.doc = "395931952725fbebb85445d8f465bc57a74d98f2d70b61f67b97f9a3542598bdfb1ddd7203a3bcae87094aded580325c98f77bfcdfa78147b971a9aff18a8cd0";
+  sha512.source = "4ec8b2ed23cae6473c8a5993efa79e426522ba710378598c408e4b33343b1be29c7aee01c2ad1483cad2a91fcc8775844fa598f740c42438d9c830210d31e0ef";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.1.0";
+};
 collcell = {
   revision = 64967;
   stripPrefix = 0;
@@ -7293,7 +7490,7 @@ collection-basic = {
   sha512.run = "4241bc3a3ef21502faa9a2e0b16295126c357fc15813a625306552b40f9da804164abccce642f4ec1e677092f81d61381958b87fcf515120a12f9b7a19055370";
 };
 collection-bibtexextra = {
-  revision = 65257;
+  revision = 67386;
   stripPrefix = 0;
   deps = [
     "aaai-named"
@@ -7382,6 +7579,7 @@ collection-bibtexextra = {
     "biblatex2bibitem"
     "biblist"
     "bibtexperllibs"
+    "bibtools"
     "bibtopic"
     "bibtopicprefix"
     "bibunits"
@@ -7461,10 +7659,10 @@ collection-bibtexextra = {
     "xcite"
     "zootaxa-bst"
   ];
-  sha512.run = "db80edc251a62547b401d922c954a40dc3887b01a59952bf20829b67953e26083c98249dba83157b0e9db4b0b2b2802f5965d9360b332d45fe4d69762ef38c62";
+  sha512.run = "652554e2038407c987a3aaf73f206b228728ec7848c737de8c6267abb0b20054846fcc74400fbf4a802c8efa1dff2d4174e9d4725b41a7816e25c9c8d1cfd848";
 };
 collection-binextra = {
-  revision = 65204;
+  revision = 69128;
   stripPrefix = 0;
   deps = [
     "a2ping"
@@ -7502,6 +7700,7 @@ collection-binextra = {
     "dvipng"
     "dvipos"
     "dvisvgm"
+    "easydtx"
     "findhyph"
     "fragmaster"
     "git-latexdiff"
@@ -7523,7 +7722,6 @@ collection-binextra = {
     "listings-ext"
     "ltxfileinfo"
     "ltximg"
-    "luajittex"
     "make4ht"
     "match_parens"
     "mflua"
@@ -7542,6 +7740,7 @@ collection-binextra = {
     "pkfix-helper"
     "purifyeps"
     "pythontex"
+    "runtexshebang"
     "seetexk"
     "spix"
     "srcredact"
@@ -7549,6 +7748,7 @@ collection-binextra = {
     "synctex"
     "tex4ebook"
     "texaccents"
+    "texblend"
     "texcount"
     "texdef"
     "texdiff"
@@ -7568,60 +7768,46 @@ collection-binextra = {
     "tlcockpit"
     "tpic2pdftex"
     "typeoutfileinfo"
+    "upmendex"
     "web"
     "xindex"
     "xindy"
     "xpdfopen"
   ];
-  sha512.run = "4297ddb3f20775c97c2ac4782060ad2c2da469fb68eda24d98c0c84a07403215aaa4e221b82459300887769e9355cb4425f4fe599d5d8413e38f1be5c7f8fab9";
+  sha512.run = "e397e1e30540ecdbefb7017348dde411b1287fb5c3a395d963747e74bd6e67fa5abd1f5137ea57e5f2eedcff1e89ca8fd1bcdc9aeafc2a969821953343e13620";
 };
 collection-context = {
-  revision = 54074;
+  revision = 69108;
   stripPrefix = 0;
   deps = [
     "collection-basic"
     "context"
-    "context-account"
-    "context-algorithmic"
-    "context-animation"
-    "context-annotation"
-    "context-bnf"
-    "context-chromato"
-    "context-cmscbf"
-    "context-cmttbf"
-    "context-construction-plan"
+    "context-calendar-examples"
+    "context-collating-marks"
     "context-cyrillicnumbers"
-    "context-degrade"
-    "context-fancybreak"
     "context-filter"
-    "context-french"
-    "context-fullpage"
-    "context-gantt"
     "context-gnuplot"
     "context-handlecsv"
-    "context-inifile"
-    "context-layout"
+    "context-legacy"
     "context-letter"
-    "context-lettrine"
     "context-mathsets"
     "context-notes-zh-cn"
-    "context-rst"
-    "context-ruby"
-    "context-simplefonts"
+    "context-pocketdiary"
     "context-simpleslides"
-    "context-title"
+    "context-squares"
+    "context-sudoku"
+    "context-texlive"
     "context-transliterator"
-    "context-typearea"
     "context-typescripts"
     "context-vim"
     "context-visualcounter"
     "jmn"
-    "npp-for-context"
+    "luajittex"
   ];
-  sha512.run = "5bd74e1a434549cf31ce31777e9a32f90baa14148e6658633945508a46dbf6611644c4212b53812bb32a399e850517369e3d89bb0e495c89e6f2a979090ed765";
+  sha512.run = "a8426893d3b9cfbddfffa383dc7898f7abe48271695dc6835abb2cda70ca1998d65eda2acd716a13ef4239c8ca8528c92b2c679510d6785ef38bf554b81a6cd6";
 };
 collection-fontsextra = {
-  revision = 64952;
+  revision = 69278;
   stripPrefix = 0;
   deps = [
     "aboensis"
@@ -7644,6 +7830,7 @@ collection-fontsextra = {
     "archivo"
     "arev"
     "arimo"
+    "arsenal"
     "arvo"
     "asana-math"
     "asapsym"
@@ -7784,6 +7971,7 @@ collection-fontsextra = {
     "frimurer"
     "garamond-libre"
     "garamond-math"
+    "gelasio"
     "genealogy"
     "gentium-tug"
     "gfsartemisia"
@@ -7816,6 +8004,7 @@ collection-fontsextra = {
     "ifsym"
     "imfellenglish"
     "inconsolata"
+    "inconsolata-nerd-font"
     "initials"
     "inriafonts"
     "inter"
@@ -7825,6 +8014,7 @@ collection-fontsextra = {
     "jamtimes"
     "josefin"
     "junicode"
+    "junicodevf"
     "kixfont"
     "kpfonts"
     "kpfonts-otf"
@@ -7858,6 +8048,7 @@ collection-fontsextra = {
     "mdputu"
     "mdsymbol"
     "merriweather"
+    "metsymb"
     "miama"
     "mintspirit"
     "missaali"
@@ -7912,6 +8103,7 @@ collection-fontsextra = {
     "quattrocento"
     "raleway"
     "recycle"
+    "rit-fonts"
     "roboto"
     "romande"
     "rosario"
@@ -7974,7 +8166,7 @@ collection-fontsextra = {
     "yinit-otf"
     "zlmtt"
   ];
-  sha512.run = "e0c3a3142ca8dcdcdc0d7c5328e1624736f20bfe9e3757bad95d0e361b73ecdf3bc53e9d19f42ef5d91b74cbdf4fca1ee62b79f53d4d5a5f8aed47f51553d77e";
+  sha512.run = "1a80dbc68b0a3a248fdc699013f7a23796ac9c6e2ae7e3135878f9d5fd6ee17ec1c809ac906804f1fbb3bc43451ee969d48247d9ab9125b681dbb29209892df2";
 };
 collection-fontsrecommended = {
   revision = 54074;
@@ -8072,7 +8264,7 @@ collection-formatsextra = {
   sha512.run = "6c7f0a1829789edea6a42d45f13f482abc0aa1ecc66b0ba4b70197efff349df75c9a89a98f21537cf6f3751b608fc3ee10ac842613deaf2aa21005374a23bab2";
 };
 collection-games = {
-  revision = 65631;
+  revision = 69159;
   stripPrefix = 0;
   deps = [
     "bartel-chess-fonts"
@@ -8107,9 +8299,12 @@ collection-games = {
     "othello"
     "othelloboard"
     "pas-crosswords"
+    "playcards"
     "psgo"
+    "quizztex"
     "realtranspose"
     "reverxii"
+    "rouequestions"
     "rubik"
     "schwalbe-chess"
     "scrabble"
@@ -8120,14 +8315,17 @@ collection-games = {
     "sudoku"
     "sudokubundle"
     "tangramtikz"
+    "thematicpuzzle"
+    "trivialpursuit"
     "wargame"
+    "wordle"
     "xq"
     "xskak"
   ];
-  sha512.run = "f7508dd7b59f4137260fb3a9c74037513e4722539aa8460dd7f0917f47d42cbd1575077880a4e6af49351600c8b9d316437132113c33737a253e7db3c3c1076a";
+  sha512.run = "29cd464cc85a8632164c26468b441ddc97133e4e5ca291d9939e7c0c22c60c7a02df91d1e3cdf925b803976bd7f089d8c7e2b63cd32fb88f8760f546be921160";
 };
 collection-humanities = {
-  revision = 65216;
+  revision = 68465;
   stripPrefix = 0;
   deps = [
     "adtrees"
@@ -8145,6 +8343,7 @@ collection-humanities = {
     "eledform"
     "eledmac"
     "expex"
+    "expex-glossonly"
     "gb4e"
     "gmverse"
     "jura"
@@ -8160,6 +8359,7 @@ collection-humanities = {
     "liturg"
     "metrix"
     "nnext"
+    "opbible"
     "parallel"
     "parrun"
     "phonrule"
@@ -8184,10 +8384,10 @@ collection-humanities = {
     "verse"
     "xyling"
   ];
-  sha512.run = "d2ae12a0b914be72772dadc60021220990f037f40a2ef4f95038cdd603c80e039f94009910aed38513b4a7938ec99ecf2f035a0dbe221b9e166ccd8aa977c30b";
+  sha512.run = "33b19b29b31671c148900d207f1f9947be502ab215e901afa9c5fe5264bafd004717dc8f6438d1a4b40abfa63c0b94725738b8c8bc117e293676f3db1e25ba6a";
 };
 collection-langarabic = {
-  revision = 59594;
+  revision = 69111;
   stripPrefix = 0;
   deps = [
     "alkalami"
@@ -8207,10 +8407,14 @@ collection-langarabic = {
     "hyphen-arabic"
     "hyphen-farsi"
     "imsproc"
+    "iran-bibtex"
+    "khatalmaqala"
     "kurdishlipsum"
     "lshort-persian"
     "luabidi"
     "na-box"
+    "parsimatn"
+    "parsinevis"
     "persian-bib"
     "quran"
     "sexam"
@@ -8221,7 +8425,7 @@ collection-langarabic = {
     "xepersian-hm"
     "xindy-persian"
   ];
-  sha512.run = "3fdcf41fafd94373254281f3f7ee9f2a2e136cfa1adc1dd38e4b5cd6f90d0364e6a20d3284fcf255f245158352421e28cfb794c673b8b96399a20343ed991fc2";
+  sha512.run = "8cef2ee028669abcc0e964ba01f6287f52c4e2857fa7547036ea00bfa47d83d38c9c126705ba7989cfbc027586315284139ec6131c5ea7701136f1bfd7cdc2cf";
 };
 collection-langchinese = {
   revision = 63995;
@@ -8367,7 +8571,7 @@ collection-langczechslovak = {
   sha512.run = "719c321173ca12660891080dae509080934f72d13a9417b2c40a22add963c7c5a1ee95d3b306f0d6c26b0db97d69979c27fbb15d1690849aa03b06d4b0193a67";
 };
 collection-langenglish = {
-  revision = 65496;
+  revision = 68790;
   stripPrefix = 0;
   deps = [
     "amiweb2c-guide"
@@ -8381,6 +8585,7 @@ collection-langenglish = {
     "comprehensive"
     "dickimaw"
     "docsurvey"
+    "drawing-with-metapost"
     "dtxtut"
     "first-latex-doc"
     "fontinstallationguide"
@@ -8419,6 +8624,7 @@ collection-langenglish = {
     "patgen2-tutorial"
     "pictexsum"
     "plain-doc"
+    "quran-en"
     "short-math-guide"
     "simplified-latex"
     "svg-inkscape"
@@ -8441,10 +8647,10 @@ collection-langenglish = {
     "xetexref"
     "yet-another-guide-latex2e"
   ];
-  sha512.run = "2c2f75491a801f71fe8a4a64d798c40f66dc71dbae32192089757a6881fd14299fe30a95eca65c75a9901c82c033a327f7d9a91080dea51f6679239d6660b2fd";
+  sha512.run = "49f20b883df99755070b68d3eacb29c297e76a05b3151d632c26fcf2864d996e4873bbab27429db915f93995923d5b7e680a3c901b28cac888ffa021bc629b74";
 };
 collection-langeuropean = {
-  revision = 66452;
+  revision = 66432;
   stripPrefix = 0;
   deps = [
     "armtex"
@@ -8518,10 +8724,10 @@ collection-langeuropean = {
     "swebib"
     "turkmen"
   ];
-  sha512.run = "4ba87445f080bbe7446ea2f1e4b8f2abdbf64770831db43ab1b4233f35a12c362e5e43b60706ee2400f1070362b949a40b8147547acc5a8b8429879a3fc64dfe";
+  sha512.run = "5fa87f174fc372c21b80ebe6b097525218da63892bc8445a29c24f2bfb015b0f04c100467f85e6c9e16a27ad26e31f00832d7712ebea7dec8631a730a95a9759";
 };
 collection-langfrench = {
-  revision = 63147;
+  revision = 67951;
   stripPrefix = 0;
   deps = [
     "aeguill"
@@ -8535,7 +8741,9 @@ collection-langfrench = {
     "bib-fr"
     "bibleref-french"
     "booktabs-fr"
+    "cahierprof"
     "collection-basic"
+    "couleurs-fr"
     "droit-fr"
     "e-french"
     "epslatex-fr"
@@ -8555,9 +8763,11 @@ collection-langfrench = {
     "lshort-french"
     "mafr"
     "matapli"
+    "panneauxroute"
     "profcollege"
     "proflabo"
     "proflycee"
+    "profsio"
     "tabvar"
     "tdsfrmath"
     "texlive-fr"
@@ -8569,13 +8779,14 @@ collection-langfrench = {
     "visualfaq-fr"
     "visualtikz"
   ];
-  sha512.run = "baec84c93e0b9313b29f807831da39da40902afdbc2305e193e9d4805c631a1e44695c0bc148e973d9021146cc25da9b22b0130b29fe4ff9834667ec83dff9b6";
+  sha512.run = "83be4aa190b32580ab6334a00785123be5678a95f84589dea2ccc2ce77a6328bf8954f28e683a9614b43a062901a28b3f6b060bd968876094aeab5b1f9aee816";
 };
 collection-langgerman = {
-  revision = 55706;
+  revision = 68711;
   stripPrefix = 0;
   deps = [
     "apalike-german"
+    "autotype"
     "babel-german"
     "bibleref-german"
     "booktabs-de"
@@ -8622,7 +8833,7 @@ collection-langgerman = {
     "umlaute"
     "voss-mathcol"
   ];
-  sha512.run = "19b9f47b68ca6068900c413d8216e13c20d25ab084cdcbd500694a18a10cbaa35ba5681be09392e0b20873788519a436c28c1ea89a728e3f546083ce0883c15c";
+  sha512.run = "3b52fac1e2520302998c3b11bc2f77b34d5bd4cc09f4fa4b9238ece66b0e36e676643f7476846d1b25eb64d31b0dbe87a33ad44669be101f61cf223e70ecb047";
 };
 collection-langgreek = {
   revision = 65038;
@@ -8775,7 +8986,7 @@ collection-langkorean = {
   sha512.run = "2d93df728d34137c8f9a884aa2871a2980e806672006f2c5f0c5f79412d5789c6f94958363cfc9a78b5a97a7d76bbb6cb157b2cb2a8a283f7afdfd838fa24883";
 };
 collection-langother = {
-  revision = 59564;
+  revision = 68719;
   stripPrefix = 0;
   deps = [
     "aalok"
@@ -8800,11 +9011,13 @@ collection-langother = {
     "cjhebrew"
     "collection-basic"
     "ctib"
+    "culmus"
     "ebong"
     "ethiop"
     "ethiop-t1"
     "fc"
     "fonts-tlwg"
+    "hebrew-fonts"
     "hindawi-latex-template"
     "hyphen-afrikaans"
     "hyphen-armenian"
@@ -8827,6 +9040,7 @@ collection-langother = {
     "ntheorem-vn"
     "padauk"
     "quran-bn"
+    "quran-id"
     "quran-ur"
     "sanskrit"
     "sanskrit-t1"
@@ -8839,7 +9053,7 @@ collection-langother = {
     "wnri-latex"
     "xetex-devanagari"
   ];
-  sha512.run = "3db7709c3545df3713dc0a7df73f676f9f34df5fdc157c6a2d6a124a5bbd14f6f5f1f2938092e76be19417f9dd5ff4f84513c84beddafbe5c9747abd7fa597c0";
+  sha512.run = "312be65445c4b862e50fcf4bb8d4413b233eadee8a9ca14ff3cb4eb37549314f37a5d00d22a4b3b2cd461b3b0473a7426a5e7f33ffbaf6dfc0687f1af754cae1";
 };
 collection-langpolish = {
   revision = 54074;
@@ -8868,7 +9082,7 @@ collection-langpolish = {
   sha512.run = "fc0d08f70aeb83869109290e6d1585d513097dcd4e17791752ecd3d26ac202838afb5931f78ceaeeaf72c63b18fe9183edd650c075d03188f24cb2caded178de";
 };
 collection-langportuguese = {
-  revision = 54074;
+  revision = 67125;
   stripPrefix = 0;
   deps = [
     "babel-portuges"
@@ -8882,14 +9096,16 @@ collection-langportuguese = {
     "lshort-portuguese"
     "numberpt"
     "ordinalpt"
+    "ptlatexcommands"
     "xypic-tut-pt"
   ];
-  sha512.run = "16d67d288fb702807b43dcf8da044a45206c27c5cf0d953688fc341966fb166db8cec69b727b1de079b9bf434f024f7338eaf34529510cab7881147d1635b43d";
+  sha512.run = "554f7d7e4828e1122cf3bc6b24c67661046ce2ae646975054f6903f8c2dfd3e63131ada963cd3b5a1ca3128539f039b4d275b9c8caadde1dbe9118d583d47585";
 };
 collection-langspanish = {
-  revision = 54141;
+  revision = 67307;
   stripPrefix = 0;
   deps = [
+    "antique-spanish-units"
     "babel-catalan"
     "babel-galician"
     "babel-spanish"
@@ -8904,10 +9120,10 @@ collection-langspanish = {
     "lshort-spanish"
     "texlive-es"
   ];
-  sha512.run = "88bdc5cefd5519bc80e50e2d808abf32aae8f7c730023afab3babb82ab817dc034c78d42b4143135df187343de7164a8fd94dc95c5ec8909e317a2f5628de15e";
+  sha512.run = "1f3c1cc4d1e28871085092314a58671a2acab47da0a758c0bdff569b0a80697ac3c32e9991a8f77268f86c02e51420e4d999a9eef72a2a7353a3efbc633e25a9";
 };
 collection-latex = {
-  revision = 63515;
+  revision = 69131;
   stripPrefix = 0;
   deps = [
     "ae"
@@ -8959,6 +9175,7 @@ collection-latex = {
     "oberdiek"
     "pagesel"
     "pdfescape"
+    "pdftexcmds"
     "pslatex"
     "psnfss"
     "pspicture"
@@ -8969,10 +9186,10 @@ collection-latex = {
     "uniquecounter"
     "url"
   ];
-  sha512.run = "c73220abd1545907a1d8de37cb534d2c6bd2534f1b55f03c069f39f535c326d4b1852f8415d9876ca52645db939ad7a11c55f550a2096ccd4b8dd8be6a4114d6";
+  sha512.run = "889eae40b82f31c7c4b3a17740399c763dabec7986fcb39261b252afff69a03a16e660b114e358cd72e3fafa14a158849cf03aa2ad4d73a5bee4ca9abc4c24af";
 };
 collection-latexextra = {
-  revision = 66557;
+  revision = 69389;
   stripPrefix = 0;
   deps = [
     "2up"
@@ -8996,6 +9213,7 @@ collection-latexextra = {
     "adjustbox"
     "adrconv"
     "advdate"
+    "affilauthor"
     "akktex"
     "akletter"
     "alchemist"
@@ -9015,6 +9233,7 @@ collection-latexextra = {
     "apptools"
     "arabicfront"
     "arcs"
+    "argumentation"
     "arraycols"
     "arrayjobx"
     "arraysort"
@@ -9061,6 +9280,7 @@ collection-latexextra = {
     "beamertheme-npbt"
     "beamertheme-phnompenh"
     "beamertheme-pure-minimalistic"
+    "beamertheme-rainbow"
     "beamertheme-saintpetersburg"
     "beamertheme-simpledarkblue"
     "beamertheme-simpleplus"
@@ -9074,6 +9294,7 @@ collection-latexextra = {
     "beamerthemenord"
     "bearwear"
     "beaulivre"
+    "beautybook"
     "beton"
     "bewerbung"
     "bez123"
@@ -9167,6 +9388,7 @@ collection-latexextra = {
     "classpack"
     "clefval"
     "cleveref"
+    "cleveref-usedon"
     "clicks"
     "clipboard"
     "clistmap"
@@ -9180,6 +9402,7 @@ collection-latexextra = {
     "cntformats"
     "cntperchap"
     "codebox"
+    "codedescribe"
     "codedoc"
     "codehigh"
     "codepage"
@@ -9229,6 +9452,7 @@ collection-latexextra = {
     "copyedit"
     "copyrightbox"
     "coseoul"
+    "counterz"
     "counttexruns"
     "courseoutline"
     "coursepaper"
@@ -9237,6 +9461,7 @@ collection-latexextra = {
     "cprotectinside"
     "crbox"
     "create-theorem"
+    "creationboites"
     "crefthe"
     "crossreference"
     "crossreftools"
@@ -9248,7 +9473,9 @@ collection-latexextra = {
     "cuisine"
     "currency"
     "currfile"
+    "curriculum-vitae"
     "currvita"
+    "customenvs"
     "cutwin"
     "cv"
     "cv4tw"
@@ -9313,7 +9540,9 @@ collection-latexextra = {
     "dbshow"
     "debate"
     "decimal"
+    "decimalcomma"
     "decorule"
+    "defoldfonts"
     "delimtxt"
     "democodetools"
     "denisbdoc"
@@ -9386,6 +9615,7 @@ collection-latexextra = {
     "embedall"
     "embedfile"
     "embrac"
+    "emo"
     "emptypage"
     "emulateapj"
     "endfloat"
@@ -9434,6 +9664,7 @@ collection-latexextra = {
     "examdesign"
     "example"
     "examplep"
+    "examz"
     "exceltex"
     "excludeonly"
     "exercise"
@@ -9450,6 +9681,7 @@ collection-latexextra = {
     "extract"
     "facsimile"
     "factura"
+    "fail-fast"
     "familytree"
     "fancyhandout"
     "fancylabel"
@@ -9490,8 +9722,10 @@ collection-latexextra = {
     "flexipage"
     "flipbook"
     "flippdf"
+    "floatbytocbasic"
     "floatflt"
     "floatrow"
+    "floatrowbytocbasic"
     "flowfram"
     "fmp"
     "fmtcount"
@@ -9568,6 +9802,7 @@ collection-latexextra = {
     "glossaries-irish"
     "glossaries-italian"
     "glossaries-magyar"
+    "glossaries-norsk"
     "glossaries-nynorsk"
     "glossaries-polish"
     "glossaries-portuges"
@@ -9618,11 +9853,13 @@ collection-latexextra = {
     "hhtensor"
     "hideanswer"
     "highlightlatex"
+    "highlightx"
     "histogr"
     "hitec"
     "hitreport"
     "hletter"
     "hobsub"
+    "homework"
     "hpsdiss"
     "href-ul"
     "hrefhide"
@@ -9670,6 +9907,7 @@ collection-latexextra = {
     "invoice"
     "invoice-class"
     "invoice2"
+    "ipsum"
     "iso"
     "iso10303"
     "isodate"
@@ -9677,12 +9915,14 @@ collection-latexextra = {
     "isonums"
     "isopt"
     "isorot"
+    "isosafety"
     "isotope"
     "issuulinks"
-    "iwhdp"
+    "iwonamath"
     "jlabels"
     "jmsdelim"
     "jobname-suffix"
+    "joinbox"
     "jslectureplanner"
     "jumplines"
     "jvlisting"
@@ -9703,6 +9943,7 @@ collection-latexextra = {
     "koma-script-sfs"
     "komacv"
     "komacv-rg"
+    "korigamik"
     "ktv-texdata"
     "l3build"
     "labbook"
@@ -9715,11 +9956,13 @@ collection-latexextra = {
     "latex-amsmath-dev"
     "latex-base-dev"
     "latex-bin-dev"
+    "latex-context-ppchtex"
     "latex-firstaid-dev"
     "latex-graphics-dev"
     "latex-lab-dev"
     "latex-tools-dev"
     "latex-uni8"
+    "latex2pydata"
     "latexcolors"
     "latexdemo"
     "latexgit"
@@ -9752,11 +9995,14 @@ collection-latexextra = {
     "listlbls"
     "listliketab"
     "listofsymbols"
+    "litesolution"
+    "litetable"
     "lkproof"
     "lmake"
     "locality"
     "logbox"
     "logical-markup-utils"
+    "logoetalab"
     "logpap"
     "longfbox"
     "longfigure"
@@ -9863,6 +10109,7 @@ collection-latexextra = {
     "moresize"
     "moreverb"
     "morewrites"
+    "movement-arrows"
     "movie15"
     "mparhack"
     "mpostinl"
@@ -9916,10 +10163,12 @@ collection-latexextra = {
     "nolbreaks"
     "nomencl"
     "nomentbl"
+    "non-decimal-units"
     "nonfloat"
     "nonumonpart"
     "nopageno"
     "normalcolor"
+    "notebeamer"
     "notes"
     "notespages"
     "notestex"
@@ -9984,6 +10233,7 @@ collection-latexextra = {
     "pbox"
     "pbsheet"
     "pdf14"
+    "pdfannotations"
     "pdfcol"
     "pdfcolmk"
     "pdfcomment"
@@ -9994,6 +10244,7 @@ collection-latexextra = {
     "pdfpc"
     "pdfpc-movie"
     "pdfprivacy"
+    "pdfrender"
     "pdfreview"
     "pdfscreen"
     "pdfslide"
@@ -10045,6 +10296,7 @@ collection-latexextra = {
     "preview"
     "printlen"
     "probsoln"
+    "profmaquette"
     "program"
     "progress"
     "progressbar"
@@ -10061,6 +10313,7 @@ collection-latexextra = {
     "pygmentex"
     "python"
     "pythonimmediate"
+    "q-and-a"
     "qcm"
     "qstest"
     "qsymbols"
@@ -10096,17 +10349,20 @@ collection-latexextra = {
     "repltext"
     "rescansync"
     "resmes"
+    "responsive"
     "returntogrid"
     "rgltxdoc"
     "rjlparshap"
     "rlepsf"
     "rmpage"
+    "robust-externalize"
     "robustcommand"
     "robustindex"
     "romanbar"
     "romanbarpagenumber"
     "romanneg"
     "romannum"
+    "rorlink"
     "rotfloat"
     "rotpages"
     "roundbox"
@@ -10132,6 +10388,7 @@ collection-latexextra = {
     "scrambledenvs"
     "scrlayer-fancyhdr"
     "scrlttr2copy"
+    "scrwfile"
     "sdaps"
     "sdrt"
     "secdot"
@@ -10152,6 +10409,7 @@ collection-latexextra = {
     "sepfootnotes"
     "seqsplit"
     "sesstime"
+    "setspaceenhanced"
     "sf298"
     "sffms"
     "sfmath"
@@ -10172,6 +10430,7 @@ collection-latexextra = {
     "sidenotesplus"
     "silence"
     "sillypage"
+    "sim-os-menus"
     "simplecd"
     "simplecv"
     "simpleinvoice"
@@ -10209,6 +10468,7 @@ collection-latexextra = {
     "stack"
     "stackengine"
     "standalone"
+    "starray"
     "stdclsdv"
     "stdpage"
     "stealcaps"
@@ -10228,7 +10488,6 @@ collection-latexextra = {
     "subfigure"
     "subfiles"
     "subfloat"
-    "substitutefont"
     "substr"
     "supertabular"
     "suppose"
@@ -10248,7 +10507,6 @@ collection-latexextra = {
     "tableaux"
     "tablefootnote"
     "tableof"
-    "tablestyles"
     "tablists"
     "tabls"
     "tablvar"
@@ -10265,6 +10523,7 @@ collection-latexextra = {
     "tagpdf"
     "talk"
     "tamefloats"
+    "tangocolors"
     "tasks"
     "tcldoc"
     "tcolorbox"
@@ -10333,6 +10592,7 @@ collection-latexextra = {
     "truncate"
     "tucv"
     "turnthepage"
+    "tutodoc"
     "twoinone"
     "twoup"
     "txgreeks"
@@ -10349,11 +10609,14 @@ collection-latexextra = {
     "underoverlap"
     "undolabl"
     "uni-titlepage"
+    "unicode-math-input"
     "unicodefonttable"
+    "unifront"
     "unisc"
     "unitconv"
     "units"
     "unravel"
+    "updatemarks"
     "upmethodology"
     "upquote"
     "uri"
@@ -10373,6 +10636,7 @@ collection-latexextra = {
     "verbdef"
     "verbments"
     "verifiche"
+    "verifycommand"
     "version"
     "versions"
     "versonotes"
@@ -10421,6 +10685,7 @@ collection-latexextra = {
     "xifthen"
     "xint"
     "xkcdcolors"
+    "xkeymask"
     "xltabular"
     "xmpincl"
     "xnewcommand"
@@ -10453,10 +10718,10 @@ collection-latexextra = {
     "zwgetfdate"
     "zwpagelayout"
   ];
-  sha512.run = "ff0de06445cf602f2a3d7b2c759e5214c5ca2ee00bc596416eb201d23bec87f5d3af6acd2cb42b2860ac1e0486a8682a628e67958afbc472c73d5b692549985b";
+  sha512.run = "9241966245fa9c875e458a781779f1ab00b615cfee8e5b4a591bd2fe71ed0ef148f7ed40559e7a54c6a46c63305838bb2e46634a2f434d550e80366af2f329a1";
 };
 collection-latexrecommended = {
-  revision = 65512;
+  revision = 69131;
   stripPrefix = 0;
   deps = [
     "anysize"
@@ -10510,7 +10775,6 @@ collection-latexrecommended = {
     "pdflscape"
     "pdfmanagement-testphase"
     "pdfpages"
-    "pdftexcmds"
     "polyglossia"
     "psfrag"
     "ragged2e"
@@ -10533,13 +10797,14 @@ collection-latexrecommended = {
     "xltxtra"
     "xunicode"
   ];
-  sha512.run = "952fe1be5136c0fded29381fe58935dedfe2c0f338f38d280c2a69bb718e2b93520f6f328f98d98a9161bbf106bda77cbddc4277e401a4f33e480dd3a7316483";
+  sha512.run = "586232e420ea3c53c4c9532252681a8ef20185348deba9e1f37c1e0231203a8d4955dc27c067ab1491ffbaa8f267a34d09cb6c48536f871da3fba8ae15c1f910";
 };
 collection-luatex = {
-  revision = 65791;
+  revision = 69404;
   stripPrefix = 0;
   deps = [
     "addliga"
+    "addtoluatexpath"
     "auto-pst-pdf-lua"
     "barracuda"
     "bezierplot"
@@ -10556,6 +10821,7 @@ collection-luatex = {
     "emoji"
     "emojicite"
     "enigma"
+    "gitinfo-lua"
     "innerscript"
     "interpreter"
     "kanaparser"
@@ -10563,6 +10829,8 @@ collection-luatex = {
     "linebreaker"
     "lparse"
     "lt3luabridge"
+    "lua-placeholders"
+    "lua-tinyyaml"
     "lua-typo"
     "lua-uca"
     "lua-ul"
@@ -10576,13 +10844,12 @@ collection-luatex = {
     "luacolor"
     "luacomplex"
     "luagcd"
+    "luahttp"
     "luahyphenrules"
     "luaimageembed"
     "luaindex"
     "luainputenc"
-    "luaintro"
     "luakeys"
-    "lualatex-doc"
     "lualatex-math"
     "lualatex-truncate"
     "lualibs"
@@ -10594,6 +10861,7 @@ collection-luatex = {
     "luaoptions"
     "luaotfload"
     "luapackageloader"
+    "luaplot"
     "luaprogtable"
     "luaquotes"
     "luarandom"
@@ -10618,6 +10886,7 @@ collection-luatex = {
     "pdfarticle"
     "pdfextra"
     "penlight"
+    "penlightplus"
     "piton"
     "placeat"
     "plantuml"
@@ -10629,16 +10898,18 @@ collection-luatex = {
     "spacekern"
     "spelling"
     "stricttex"
+    "sympycalc"
+    "texfindpkg"
     "truthtable"
     "tsvtemplate"
     "typewriter"
     "uninormalize"
     "yamlvars"
   ];
-  sha512.run = "49f722cd1dfa2aed5c47b61ac393c1ba2c4c9156090fe05a2e079185c6d619ca020d08ac2c4644fac2a8ebd3aa4ca95481e500bba83e39ad260c4d4b7cfce628";
+  sha512.run = "d03b9242340be7be8c32e87c2773bb8aecd4a6b7e1594fe755d9955f111dad4863e497bd3f374140c162b84c6c90379ff86c930267ab5c6d26c3cd0e3968c745";
 };
 collection-mathscience = {
-  revision = 65753;
+  revision = 69267;
   stripPrefix = 0;
   deps = [
     "12many"
@@ -10733,11 +11004,13 @@ collection-mathscience = {
     "extpfeil"
     "faktor"
     "fascicules"
+    "fitch"
     "fixdif"
     "fixmath"
     "fnspe"
     "formal-grammar"
     "fouridx"
+    "freealign"
     "functan"
     "galois"
     "gastex"
@@ -10749,6 +11022,7 @@ collection-mathscience = {
     "gu"
     "helmholtz-ellis-ji-notation"
     "hep"
+    "hep-graphic"
     "hep-reference"
     "hepnames"
     "hepparticles"
@@ -10759,6 +11033,7 @@ collection-mathscience = {
     "interval"
     "ionumbers"
     "isomath"
+    "isphysicalmath"
     "jkmath"
     "jupynotex"
     "karnaugh"
@@ -10772,6 +11047,7 @@ collection-mathscience = {
     "lpform"
     "lplfitch"
     "lstbayes"
+    "luanumint"
     "mathcommand"
     "mathcomp"
     "mathfixs"
@@ -10817,6 +11093,7 @@ collection-mathscience = {
     "physunits"
     "pinoutikz"
     "pm-isomath"
+    "pmdraw"
     "polexpr"
     "prftree"
     "principia"
@@ -10827,6 +11104,8 @@ collection-mathscience = {
     "pseudocode"
     "pythonhighlight"
     "qsharp"
+    "quickreaction"
+    "quiver"
     "rank-2-roots"
     "rbt-mathnotes"
     "rec-thy"
@@ -10861,6 +11140,7 @@ collection-mathscience = {
     "statmath"
     "steinmetz"
     "stmaryrd"
+    "string-diagrams"
     "structmech"
     "struktex"
     "substances"
@@ -10892,10 +11172,10 @@ collection-mathscience = {
     "ytableau"
     "zx-calculus"
   ];
-  sha512.run = "0d15380e672b11509f8ff78ae57cdf5f75b862522d9287e5577a33bdad5901ad85646d4d4c573653b3f838ef9469b86218a98bdfc5ab97e00c618eceaa1e34c3";
+  sha512.run = "bc4ca79e6057d48ac00b5f271d8e776fa1ee2080749a3e5761e13bfe0b3acaa08ff797b653ddb61bc9d168b28f4f29f234e64b51724773d0ac51cea7efa6ab9e";
 };
 collection-metapost = {
-  revision = 64878;
+  revision = 67071;
   stripPrefix = 0;
   deps = [
     "automata"
@@ -10918,6 +11198,7 @@ collection-metapost = {
     "gmp"
     "hatching"
     "hershey-mp"
+    "huffman"
     "latexmp"
     "mcf2graph"
     "metago"
@@ -10932,6 +11213,7 @@ collection-metapost = {
     "mp3d"
     "mparrows"
     "mpattern"
+    "mpchess"
     "mpcolornames"
     "mpgraphics"
     "mptrees"
@@ -10946,7 +11228,7 @@ collection-metapost = {
     "textpath"
     "threeddice"
   ];
-  sha512.run = "c17510f676b4aec1887893083e00438be77d879e44e52aedeb040ae1eb593d1d688fefc8eaa48939db0f83e8d1743cea3030490e73d8c3d65689b3e4db21f016";
+  sha512.run = "c0bf45f69b1b11ef6e59e6dfa0bd690fcae8b1b06097eb99f06e7ffa954f1ebebf296f3245e6922d716688353e22b691092f8e6349b1f02b3234b49a3bfaf969";
 };
 collection-music = {
   revision = 65862;
@@ -10992,7 +11274,7 @@ collection-music = {
   sha512.run = "951e172129275fa2cb7ccea6bf23f27484503533ebee4c3bef7d2f4ddda5940c15713b104a584704a0b9ec710e2ae363b6ec130747a6e169a7c461e509714a77";
 };
 collection-pictures = {
-  revision = 66377;
+  revision = 69409;
   stripPrefix = 0;
   deps = [
     "adigraph"
@@ -11020,8 +11302,10 @@ collection-pictures = {
     "chemfig"
     "circuit-macros"
     "circuitikz"
+    "circularglyphs"
     "coffeestains"
     "collection-basic"
+    "coloredbelts"
     "combinedgraphics"
     "curve"
     "curve2e"
@@ -11039,6 +11323,7 @@ collection-pictures = {
     "dynkin-diagrams"
     "ecgdraw"
     "eepic"
+    "egpeirce"
     "ellipse"
     "endofproofwd"
     "epspdf"
@@ -11046,6 +11331,7 @@ collection-pictures = {
     "esk"
     "euflag"
     "fast-diagram"
+    "fenetrecas"
     "fig4latex"
     "figchild"
     "figput"
@@ -11083,6 +11369,7 @@ collection-pictures = {
     "maker"
     "makeshape"
     "mathspic"
+    "memoize"
     "mercatormap"
     "milsymb"
     "miniplot"
@@ -11093,8 +11380,8 @@ collection-pictures = {
     "nndraw"
     "numericplots"
     "outilsgeomtikz"
+    "papiergurvan"
     "pb-diagram"
-    "penrose"
     "petri-nets"
     "pgf"
     "pgf-blur"
@@ -11106,6 +11393,7 @@ collection-pictures = {
     "pgf-umlcd"
     "pgf-umlsd"
     "pgfgantt"
+    "pgfkeysearch"
     "pgfkeyx"
     "pgfmolbio"
     "pgfmorepages"
@@ -11120,7 +11408,9 @@ collection-pictures = {
     "pixelart"
     "pixelarttikz"
     "pmgraph"
+    "polyhedra"
     "postage"
+    "postit"
     "prerex"
     "productbox"
     "ptolemaicastronomy"
@@ -11176,8 +11466,10 @@ collection-pictures = {
     "tikz-mirror-lens"
     "tikz-nef"
     "tikz-network"
+    "tikz-nfold"
     "tikz-opm"
     "tikz-optics"
+    "tikz-osci"
     "tikz-page"
     "tikz-palattice"
     "tikz-planets"
@@ -11188,8 +11480,11 @@ collection-pictures = {
     "tikz-timing"
     "tikz-trackschematic"
     "tikz-truchet"
+    "tikz2d-fr"
+    "tikz3d-fr"
     "tikzbricks"
     "tikzcodeblocks"
+    "tikzdotncross"
     "tikzducks"
     "tikzfill"
     "tikzinclude"
@@ -11203,16 +11498,21 @@ collection-pictures = {
     "tikzpfeile"
     "tikzpingus"
     "tikzposter"
+    "tikzquads"
+    "tikzquests"
     "tikzscale"
     "tikzsymbols"
     "tikztosvg"
     "tikzviolinplots"
     "tile-graphic"
+    "tilings"
     "timing-diagrams"
     "tipfr"
     "tkz-base"
     "tkz-berge"
+    "tkz-bernoulli"
     "tkz-doc"
+    "tkz-elements"
     "tkz-euclide"
     "tkz-fct"
     "tkz-graph"
@@ -11226,30 +11526,35 @@ collection-pictures = {
     "twemojis"
     "tzplot"
     "utfsym"
+    "vectorlogos"
     "venndiagram"
     "visualpstricks"
     "wheelchart"
+    "wordcloud"
     "worldflags"
     "xistercian"
     "xpicture"
     "xypic"
   ];
-  sha512.run = "1bf5daeffd4e3df80a028af026bb39789ce9e2174b7d0d7018b0285bd5f55eb84adf45f456282daa29ed924ad9f67949301fc9c6bd0f0696634c15a1020a8eed";
+  sha512.run = "1549c2635af7f0f8f2e06ccfc383a840b859b2f191351f3c42cc3ec9d7ddb8bee9be89e67139f8968e638aafc5630d9c30b4148fba5ee1d5eef1b41f0d879cbd";
 };
 collection-plaingeneric = {
-  revision = 65622;
+  revision = 68675;
   stripPrefix = 0;
   deps = [
     "abbr"
     "abstyles"
+    "advice"
     "apnum"
     "autoaligne"
     "barr"
     "bitelist"
     "borceux"
     "c-pascal"
+    "calcfrac"
     "catcodes"
     "chronosys"
+    "collargs"
     "collection-basic"
     "colorsep"
     "compare"
@@ -11264,6 +11569,7 @@ collection-plaingeneric = {
     "epigram"
     "epsf"
     "epsf-dvipdfmx"
+    "etoolbox-generic"
     "expex-acro"
     "expkv-bundle"
     "fenixpar"
@@ -11297,6 +11603,7 @@ collection-plaingeneric = {
     "metatex"
     "midnight"
     "mkpattern"
+    "mlawriter"
     "modulus"
     "multido"
     "namedef"
@@ -11351,7 +11658,7 @@ collection-plaingeneric = {
     "yax"
     "zztex"
   ];
-  sha512.run = "848081f23c64b1dd159add9a4756c0fe1f7176727b9665835a1eb1c1ed5765e119f71ce23ce750b87a33ed091be944316f35b3db70ea89ef56801aba04d06b4d";
+  sha512.run = "e162b0e32f52ea7ca60d5241ad6f653b29d2601eb05734ca0970224894e1acf3c21b1c160fdea652b8616f19cce5e812d5ba78ef10aa3cce784a90aebea960ef";
 };
 collection-pstricks = {
   revision = 65367;
@@ -11475,7 +11782,7 @@ collection-pstricks = {
   sha512.run = "508276fe37018f3d9773fc7cda0cb37edcdd28e9cf8ab54ed5be16b07c2066de4626a561bbe387c7bba0fb82d4102be406efd721a4b5dc90110b8560083d2b07";
 };
 collection-publishers = {
-  revision = 66335;
+  revision = 69033;
   stripPrefix = 0;
   deps = [
     "aastex"
@@ -11525,7 +11832,9 @@ collection-publishers = {
     "chem-journal"
     "chifoot"
     "chs-physics-report"
+    "cidarticle"
     "cje"
+    "cjs-rcs-article"
     "classicthesis"
     "cleanthesis"
     "cmpj"
@@ -11542,6 +11851,7 @@ collection-publishers = {
     "elbioimp"
     "els-cas-templates"
     "elsarticle"
+    "elteiktdk"
     "elteikthesis"
     "emisa"
     "erdc"
@@ -11566,6 +11876,7 @@ collection-publishers = {
     "har2nat"
     "hecthese"
     "hep-paper"
+    "heria"
     "hfutexam"
     "hfutthesis"
     "hithesis"
@@ -11589,6 +11900,7 @@ collection-publishers = {
     "jmlr"
     "jnuexam"
     "jourcl"
+    "jourrr"
     "jpsj"
     "jwjournal"
     "kdgdocs"
@@ -11609,6 +11921,7 @@ collection-publishers = {
     "matc3mem"
     "mcmthesis"
     "mentis"
+    "mitthesis"
     "mlacls"
     "mluexercise"
     "mnras"
@@ -11637,6 +11950,7 @@ collection-publishers = {
     "nwejm"
     "onrannual"
     "opteng"
+    "oststud"
     "oup-authoring-template"
     "philosophersimprint"
     "pittetd"
@@ -11678,6 +11992,7 @@ collection-publishers = {
     "sr-vorl"
     "srdp-mathematik"
     "stellenbosch"
+    "stellenbosch-2"
     "suftesi"
     "sugconf"
     "tabriz-thesis"
@@ -11709,6 +12024,7 @@ collection-publishers = {
     "ucalgmthesis"
     "ucbthesis"
     "ucdavisthesis"
+    "ucph-revy"
     "ucsmonograph"
     "ucthesis"
     "udes-genie-these"
@@ -11756,7 +12072,7 @@ collection-publishers = {
     "yb-book"
     "york-thesis"
   ];
-  sha512.run = "1d14f37712edc04d5000091f2d8fc04bc4929e057bfaffafc2002df21cdf1e1d8c4a9d25ca9e0d3a295416f06a8b59ae8554dc5c01272d3d066dcd5ad899d0b2";
+  sha512.run = "3bef1e82951ac3624c88c3f42e7d9dfdb4aaef71648852a0df777276139a1fa121f640420d5977a5eae99a590a53eb96854dc97b6637bbebf76e63a7c1248228";
 };
 collection-texworks = {
   revision = 54074;
@@ -11768,9 +12084,9 @@ collection-texworks = {
   sha512.run = "b1f38877115fb6efc9b63a5591c399b799f3a258e342d5e198b74b582628461ad67ea7c1ab76e5ae83a3e8e538c62ac3e7c5b3d3f1d29c093331843067cfec57";
 };
 collection-wintools = {
-  revision = 54074;
+  revision = 65952;
   stripPrefix = 0;
-  sha512.run = "9bf4c58094748424c1b60a3731d9cb2b1ad1d24764469072da693de26a4e4e857df3bcab6d4c2b5ae7454a69f9730fc596fd156b46b7704eafb1421f6936d66a";
+  sha512.run = "8af5c376990a7ed062588a0eb8695455936a92376b94f157d75a22f976f62017999aee8aeb692a07f98a64f05ac98bf4aba79c5f75688c54ad2196807471dc1b";
 };
 collection-xetex = {
   revision = 64951;
@@ -11861,6 +12177,15 @@ colordoc = {
   hasRunfiles = true;
   license = [ "lppl1" ];
 };
+coloredbelts = {
+  revision = 68747;
+  stripPrefix = 0;
+  sha512.run = "0c2ccc4f77c74e551361b6c479759d10db1ab96bd293926e3fb60c1888e073094c4aed403b147744711b5210c9fc8e0cdb431ef8b778cbd12fefb4f691faab85";
+  sha512.doc = "dbe9cd28b3bdac4b51d080edae7a983900fb2f9c583d7e19d0137d551222d23138862e9acb43de98c2f321d4abee3dbc2e43961f66227a5cf2c639545586ecfe";
+  hasRunfiles = true;
+  license = [ "lppl13c" "cc-by-sa-30" ];
+  version = "0.1.0";
+};
 colorframed = {
   revision = 64551;
   stripPrefix = 0;
@@ -11889,13 +12214,13 @@ coloring = {
   version = "0.2";
 };
 colorist = {
-  revision = 66450;
+  revision = 68440;
   stripPrefix = 0;
   deps = [
     "projlib"
   ];
-  sha512.run = "53024afd887ad7bcc94e86db7ba7468003cf5f78608e5fecd1bb685a01fb536465efc6b8dcb1b8d970de710a4fe4410ef374a9912165800aac321aa971a5c358";
-  sha512.doc = "4fdca0796938abdbb773fcd2d689b493c5c6f31100c1ddaad61ad7729b19121e42370de951c953f2734d3ee07eb7c3408b868068692658518679f192cc7f606a";
+  sha512.run = "c3a49d415ec1133adfae9b8c5d8059dd0c41d2cc9637a0905494820a514dd6e466a1d114e8d26b7cc8b5a2b197f331a146b2f3dd6a5a4d478f2a71b62dba3f7c";
+  sha512.doc = "6f5abb6dfc10b4e4b952746f84caa489c06e84d0d9dfa7ce9a2cd1de29f19dc028ab4a42cb233310540d70b8862a797420aa9f383d05c3b672574b8a4870078a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -11944,11 +12269,11 @@ colortbl = {
   version = "1.0f";
 };
 colorwav = {
-  revision = 15878;
+  revision = 67012;
   stripPrefix = 0;
-  sha512.run = "618f813c9e009a671069a151bc6d438a42b2c589b255685d91dbbbd162e6a106164d626cd772bdb3e6538a1b010ae178dd7e1519195b6b1fee10ce6e46253b6c";
-  sha512.doc = "e042c10fcd4d2760383352ace13b2d3600682a01c900220913c79a950fb1597a59a82483429557aa7598e1cd1eea52b73dd23367139fb741ea48ee9c84c4c572";
-  sha512.source = "96ff1933d48bbe938de3635588d9a9c682ac387415d5a7c316e310ed0931e7fa0adf44185d8232d753a1532653b6bb5c0f6c402903bdab654333694f7c293215";
+  sha512.run = "1f0ec92974581f7a1d5d36993eaef84d46019a345f1ca9979d0508b5dde7226cdb38e102dce02d404a4d28f8c408cb53cb0b3bc819905935fc9cd323abada305";
+  sha512.doc = "c9d23542ccc17980837bd49012889a8e11fb87f76bdd3c5ea9650177ebe527533cb5ac3631895f2455b094ffb4c6bfa973fddf9f071c80bc52c3c824b1fce471";
+  sha512.source = "d41960edb1e83edb50be56a6eb43025cfabd5fc3a83ae068daba59276e9b5995f25804311398ff6874038587165b6c236dc983247f52399ab55e156417bf7adb";
   hasRunfiles = true;
   license = [ "lgpl2" ];
   version = "1.0";
@@ -12085,13 +12410,13 @@ commonunicode = {
   version = "1.0.0";
 };
 commutative-diagrams = {
-  revision = 55526;
+  revision = 68044;
   stripPrefix = 0;
-  sha512.run = "ff7cd8401eb54f14bd013db9a62e2540a8015e51ad573cb76683b19c2cf2fed0a2081be87c5c81238664ab441f6d17eedc896e41fa0700dcd70b088d08e6ec8a";
-  sha512.doc = "3709730425aafd1fd9aed5b4cbb1b80bf70ed474c792f0ad6f35d4ae6ad64624db64bda7a02656b226c13ea93159d2811356eb75f8b2756328f0ecea2289f738";
+  sha512.run = "896235dcfbe5fc65302f5473b8821a2943ba3bce0c5b410aca855f48fd2ee6dd1b39667be7413aab027e0b36b3cad9735cf6b8406077b0c833f025fe41a83d04";
+  sha512.doc = "49de0a9e52308dcf0b5ee7ca5b18df49efb3822ab2a46024e787979abf6cd682b180a461868c565b79607b301ef5bb65e9493bd27d9cbbdbe4d71472708fc01d";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "1.0.1";
+  version = "1.1.0";
 };
 compactbib = {
   revision = 15878;
@@ -12134,12 +12459,12 @@ components = {
   license = [ "gpl1Only" ];
 };
 comprehensive = {
-  revision = 59099;
+  revision = 69282;
   stripPrefix = 0;
-  sha512.run = "9c414012e570fac3a3aee90cc7b6983d6791dcdcda0709722dc5354068815b2407fd4ed9196b8e961164698597324b9da8ff85b741eca86a4962701e0ce40d1a";
-  sha512.doc = "24c7c0fdda00f5f5dd7c66c383d95a4fd99b41c5470482d1e53e8f061796cab5955b8043f80a2a57c9f045765ff1d10f0c7b48b10705a2677b80b67d01dafa96";
+  sha512.run = "3a95484c972a27245694364364b16545069e677eba8e84bb1e3d743ec37ef4427dcdac4ea507df41d90c155bcac48b346ec3e0e985c5d447fce05be5a9a8e418";
+  sha512.doc = "0534af854d41a22af152ecc0eed7f0d835525d4508dc8cf7eed131a88958ec2024d35d80002a77fc09a2df4ea428514edfa751f889c1b90740344bf5025f4b59";
   license = [ "lppl13c" ];
-  version = "14.0";
+  version = "15.0";
 };
 computational-complexity = {
   revision = 44847;
@@ -12178,13 +12503,13 @@ concmath-fonts = {
   license = [ "lppl13c" ];
 };
 concmath-otf = {
-  revision = 65683;
+  revision = 69005;
   stripPrefix = 0;
-  sha512.run = "efbd04812e5c617adb4caac1de59caf11eabedb2f145dc069e49c572d14f4dacaadb0de112235c29b5f12f3c54a2d4f66a4e5e7a6928dd178be9b127d5ef550e";
-  sha512.doc = "3ec3b3a39f21895413fc05e1fa54a3896b2fe6b32fb390a5ff9691a54c0fa39f2a532da58edfba4f2c34b020495b8c673d107e28abb7fb6d86e6246188567374";
+  sha512.run = "3ad91e982f5a46ffde4a24c2c16233b671c4ce55f78afeba4a538e9437171a5936cdbcac56dcac357c17a188940150f70b475e37b4eb5f2416c9c00a970fd87d";
+  sha512.doc = "7ca90916cab639721f678b33d341c9ce253923ec4ef78d5a1246c9f79979aba9674579f2e8eeeca6b6fd2c0de3d70e3d44b8be572e5f738cafc408337432baf2";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
-  version = "0.25";
+  version = "0.61";
 };
 concprog = {
   revision = 18791;
@@ -12242,174 +12567,50 @@ conteq = {
   version = "0.1.1";
 };
 context = {
-  revision = 58167;
+  revision = 69131;
   deps = [
     "amsfonts"
+    "context-texlive"
     "lm"
     "lm-math"
+    "luajittex"
     "luatex"
     "manfnt-font"
-    "metapost"
     "mflogo-font"
-    "mptopdf"
-    "pdftex"
     "stmaryrd"
-    "xetex"
   ];
-  formats = [
-    {
-      name = "cont-en";
-      engine = "pdftex";
-      patterns = [ "cont-usr.tex" ];
-      options = "-8bit *cont-en.mkii";
-    }
-    {
-      name = "cont-en";
-      engine = "xetex";
-      patterns = [ "cont-usr.tex" ];
-      options = "-8bit *cont-en.mkii";
-    }
-    {
-      name = "cont-fr";
-      enabled = false;
-      engine = "pdftex";
-      patterns = [ "cont-usr.tex" ];
-      options = "-8bit *cont-fr.mkii";
-      fmttriggers = [ "context" ];
-    }
-    {
-      name = "cont-it";
-      enabled = false;
-      engine = "pdftex";
-      patterns = [ "cont-usr.tex" ];
-      options = "-8bit *cont-it.mkii";
-      fmttriggers = [ "context" ];
-    }
-    {
-      name = "cont-nl";
-      enabled = false;
-      engine = "pdftex";
-      patterns = [ "cont-usr.tex" ];
-      options = "-8bit *cont-nl.mkii";
-      fmttriggers = [ "context" ];
-    }
-    {
-      name = "cont-ro";
-      enabled = false;
-      engine = "pdftex";
-      patterns = [ "cont-usr.tex" ];
-      options = "-8bit *cont-ro.mkii";
-      fmttriggers = [ "context" ];
-    }
-  ];
-  sha512.run = "61fcc778837ecff88bb0e80e39e2acb3ee64e2c26e4069f7634e5dc6c74dc93caab78e4b0088ed58f494d6dcd3a5084bc55cd471baaeb292dc208cf2a241bf69";
-  sha512.doc = "ee4458cd6d45a41652ae24b3b82bea5cfa2d8b9c14cf4ba1357f9f07d6572f8ba83e350b74659c471ebf5068f33f5c5762a11669ab2a4f5adb3db41f392956dd";
+  postactionScript = "tlpkg/tlpostcode/cont-cache.sh   filew32=tlpkg/tlpostcode/cont-cache.cmd";
+  sha512.run = "5dc3ab5f5747a0d69684ad61ed86f508411357abeb52e01d1cba256024c370309d2f4ccad1076d1337eb35f7b10f8bb31f5a51219c4f8ad4795ddf4617b158d8";
+  sha512.doc = "7c440d9924d68a4abcd9e404b3516ff696ff215c44f2bc81542bcafb69b92bc73b4ee173c5e90dc2de7405b754fb1c452e76b7b71fe623c72d794dc0b966bff1";
   hasManpages = true;
   hasRunfiles = true;
+  hasTlpkg = true;
   scriptExts = [
     "lua"
-    "rb"
   ];
   license = [ "free" ];
 };
-context-account = {
-  revision = 47085;
+context-calendar-examples = {
+  revision = 66947;
   stripPrefix = 0;
   deps = [
     "context"
   ];
-  sha512.run = "755ddb4c62a496873d5362df01307163c79d2a6c3fabce6ea01b442c16dad2f23d72909df71dd44eb4fbbf5c57366e20eb49bfce240807c2e2a9a52cbd76680a";
-  sha512.doc = "b19f6d0330e5da99a961304f8c022609dedb2dc3a8cc4607cb9b2ca7eda38f9c8b972316bb9fac92cc36166e1c0822afaebda2c5e2d87db1e1efd2781f51956e";
+  sha512.run = "aae09b844ae244839f82088ffbad9c777355696023fa95c24221b6ae0e4ac6dfce6a4d70efe9f09d5e5dc89e6e7a17d98282a77b90697ee6a3496ed0568734b4";
+  sha512.doc = "62a63d54d0388a027cb6afa58141a6fc303fde6cc0f989348fe29fd10e825a03d86ff682f480723b223b606e296591cf03092c886cf13cde03463ff8012caca1";
   hasRunfiles = true;
   license = [ "publicDomain" ];
 };
-context-algorithmic = {
-  revision = 47085;
-  stripPrefix = 0;
-  deps = [
-    "context"
-  ];
-  sha512.run = "72d4bbfe723b4012f8701c2786f96009bbed3c6b4bd2129f7153306f172e72218920e222f97ee6d5ee4b863e9e915fc38dd92b0c42066385fde35c5c3d0cc42a";
-  sha512.doc = "19ba676dc7822bc0a6583d6e9e031f3780977835c10d901e1ae02fca781719a0e015ac79cfc35c908a8de40a19614fcd17a35c604c9311b50972d0706d6f07e1";
-  hasRunfiles = true;
-  license = [ "gpl1Only" ];
-};
-context-animation = {
-  revision = 47085;
-  stripPrefix = 0;
-  deps = [
-    "context"
-  ];
-  sha512.run = "19691ca3325b3f72154ac8439e616a128b5f3ba8c9447bb1e92979e175daa902cd756853a2b6e6a34a84fbe96e02771a0c6ef27ed5bbb7eac94f62dd72d571f1";
-  sha512.doc = "a06227508c2dc343598fc6878e2b17b56341f5dd86a473957318eb94ecc6e150adaedf7346ffb931eda184651efd00d8f60e36ec6ea50e9ac94e2ed096058293";
-  hasRunfiles = true;
-  license = [ "gpl3" ];
-};
-context-annotation = {
-  revision = 47085;
-  stripPrefix = 0;
-  deps = [
-    "context"
-  ];
-  sha512.run = "bb66132ed1e4f146c407bb3b2852c451b82d3d06de1dc25ddec6e692d17f4d994d1a67cfd7ff711dc2de7a4ce7259b1768d6efcfb58856321d5ea5b15271cd34";
-  sha512.doc = "4491012c8172beb64478b2de5557ed8f97701cfcb3996a8a5ff9990048d79ddce8cc2796dbf4c08812bc8963c0d318f9d79d2d4c2d14bc372f06dbc28e012c3d";
-  hasRunfiles = true;
-  license = [ "gpl1Only" ];
-};
-context-bnf = {
-  revision = 47085;
-  stripPrefix = 0;
-  deps = [
-    "context"
-  ];
-  sha512.run = "53e5d3d7c977aab648bb024942263a8aed5da6314506825ace02556db890ea23400c6de714ddf6380235c942dfc02e127736579b6be1c5b0b0ecc65d25fb0d6b";
-  sha512.doc = "d7ab60c2f8571ce2e2e96b82c1f97b140c5750324efb73275062a8d301d530279a3f9c19f6a6feebd6d7c72727d94f469d9aad05ad67cde5dbd3de9f695dad31";
-  hasRunfiles = true;
-  license = [ "gpl1Only" ];
-};
-context-chromato = {
-  revision = 47085;
-  stripPrefix = 0;
-  deps = [
-    "context"
-  ];
-  sha512.run = "52e11c6953e7c2e2f9a3a20b8885fd12f5abef32d32da5ae5415b0321d37ac5ff8ff5bece3d522e1f785470cef542568cd56abd509d26671da9298c3d0ba27cc";
-  sha512.doc = "5c7c7f03050b0a17dadf23a09dced356a036c6b95ca76aeb0fda583dbc490d82222de64299c121224efaccc78b62364a1bc56daf020c177865c29e343529f040";
-  hasRunfiles = true;
-  license = [ "gpl1Only" ];
-};
-context-cmscbf = {
-  revision = 47085;
+context-collating-marks = {
+  revision = 68696;
   stripPrefix = 0;
   deps = [
     "context"
   ];
-  sha512.run = "cb0e5849ac3168a4ecdd1545edd029a1622ecf1c46d29eec97b28a66f65305e6b4d3a9c83e24d78e1596c8009ad5c9a0e25fa7e09448c3e0ea492e62bc933ea8";
-  sha512.doc = "8f45989c08f09381ccbf2942a08c0b13792917a18d5b2e92fb45c7ac2f4b4538f5ffd633da0348e12835c03a6f79b0ea7044f1ebea5770365a83d2d097a56df4";
+  sha512.run = "dec8338854260467eb5d6542d4561e38a87183290e53e75c3fa188fc8f537a466ce4a5974f4f5644b9f2e62591cd4e8860f8e2b314c8918ae45e90e00c61ba4d";
+  sha512.doc = "6a5d88d6091e95025e7a4f12a6e831e5bf462156afa06c7b49d35086f9b555ed8fc1ed9cde970146106f3efc29b70bf0699c1b5eadcf970c1f8978c46ad590bc";
   hasRunfiles = true;
-  license = [ "gpl1Only" ];
-};
-context-cmttbf = {
-  revision = 47085;
-  stripPrefix = 0;
-  deps = [
-    "context"
-  ];
-  sha512.run = "e3bc048c09bfdf114efa25077fa4e6a6c20b4d0e2ba337cefa0a8a82348fd3376f82cae0c85b029b863b7a5db9d9552b4fc5f5487d5ed5f6d88484181ea98ced";
-  sha512.doc = "2b55367f236330a07120229902405213a495de2ba455f333bc23e1c1abbe0f0a4be16ee95415f613d41572916722e3d023a71698f74e5e37f34a8de4fdca6e47";
-  hasRunfiles = true;
-  license = [ "gpl1Only" ];
-};
-context-construction-plan = {
-  revision = 47085;
-  stripPrefix = 0;
-  deps = [
-    "context"
-  ];
-  sha512.run = "b292f8e271fcac88eaedc376257ae16a401a6c31009eaa3d4faeefba25c33d034f57d30ba4638e85b76ffd0d24ef4d541dfbceb1bc0b5c806a8412d239a32146";
-  sha512.doc = "605e09bedb9e2ad1e98a621c0a4842f28592c93507c3da31f8c6437e95e63a47e795b38fa0263d7fa81fa3b8838f21d2426c8705f8e17ac1d827923cf5e88784";
-  hasRunfiles = true;
-  license = [ "gpl1Only" ];
+  license = [ "publicDomain" ];
 };
 context-cyrillicnumbers = {
   revision = 47085;
@@ -12422,28 +12623,6 @@ context-cyrillicnumbers = {
   hasRunfiles = true;
   license = [ "bsd3" ];
 };
-context-degrade = {
-  revision = 47085;
-  stripPrefix = 0;
-  deps = [
-    "context"
-  ];
-  sha512.run = "b2df5bbee492b7137180bfe7b0b826f4149b8231b78cb839ac9716f02b622e5b3a0eb5964e12625650a224ae463714bb7cafbecae6061a6e3120022d2f545d52";
-  sha512.doc = "8f24fd70547ecfcbb163df2e3e4450525f0e56583b6984f61fb04559142bd838287e79c9b9d8cdef2c26a882688074b5010615e6d818a11f2f5812d88e31cd82";
-  hasRunfiles = true;
-  license = [ "gpl1Only" ];
-};
-context-fancybreak = {
-  revision = 47085;
-  stripPrefix = 0;
-  deps = [
-    "context"
-  ];
-  sha512.run = "1e8e51de47c67a3287dfa4386f9c09b4dfaa494d9b59fe8d117a3a1b65a5041add24c36227f2d2d7fb3bf2ec34d6a5a8b6658d275b63f55793d05dea08722b10";
-  sha512.doc = "6082670766d63da902d2a53f2a6ee89fcdce942fd73439fea8326ef3117e6a5483b86d9d4271d2f3d9546a5fe44277721cd15510a9da392db36356b44ae2f36d";
-  hasRunfiles = true;
-  license = [ "gpl1Only" ];
-};
 context-filter = {
   revision = 62070;
   stripPrefix = 0;
@@ -12455,40 +12634,6 @@ context-filter = {
   hasRunfiles = true;
   license = [ "bsd2" ];
 };
-context-french = {
-  revision = 54215;
-  stripPrefix = 0;
-  deps = [
-    "context"
-  ];
-  sha512.run = "aed7a7f91e909e8b9b7efc5e0b45c67d5ed3e084c5019e1ddd68d8e9e969c0579b1dbbe4e25d74ca22b256324358ed34f3f54a92e2fb3a012a6aa43797e8aaa7";
-  sha512.doc = "926a054d12f59d45dbe538eaed4087ed2c9f3321f1051c7006fe651af95d2275788030ee9371ffd39a7f7f8a4022776c19721323ab82871f061dca365c081728";
-  hasRunfiles = true;
-  license = [ "gpl1Only" ];
-};
-context-fullpage = {
-  revision = 47085;
-  stripPrefix = 0;
-  deps = [
-    "context"
-  ];
-  sha512.run = "280a16b47e04f3099a2f960435bf1c22ec623553303e339df4d06135b768cee6565e20a0c4e0c080d8c6f621a32d862ba6203daacdbf9ecd03b62829dd0014fd";
-  sha512.doc = "1d4ff98bae26e0d6ec1ce1ca58fac82f8592158f8635eeac737546873f1f468b2ad7a82b9f8956b770fdc0c01443a9327c509265cdecb90d83dca15462cfa23b";
-  hasRunfiles = true;
-  license = [ "gpl1Only" ];
-};
-context-gantt = {
-  revision = 47085;
-  stripPrefix = 0;
-  deps = [
-    "context"
-    "hatching"
-  ];
-  sha512.run = "e0c61179f4ecdf93c13dbfe19f59487fbce55e1a0dece76ac025a88a452e7168c5e3b84e53c01bcae4cc412993be36eb554dc5f7299fc1205f4070aa07a834cf";
-  sha512.doc = "a5cc76238f8377dc8d06869bf23a1367c880b57ba62ab8c8331886cbed145427e2819ba92965924fc7a78579d28b7c1cf331acf7f199cf72672ccb64962c9367";
-  hasRunfiles = true;
-  license = [ "publicDomain" ];
-};
 context-gnuplot = {
   revision = 47085;
   stripPrefix = 0;
@@ -12501,38 +12646,49 @@ context-gnuplot = {
   license = [ "gpl1Only" ];
 };
 context-handlecsv = {
-  revision = 51306;
+  revision = 69186;
   stripPrefix = 0;
   deps = [
     "context"
   ];
-  sha512.run = "10f862b7152e0efe2a8444fcf847ade2aad2c1499e146b94643a7e08a438359c2f7d1927e7e9773f3dd14475fb4535d17fb4f29ff053e7a29c9463f40c6e5598";
-  sha512.doc = "39330dfaf22a83181086343ac9ea7d64025fbe779e55161b33e5a9a9802e0928bb1c16941aeb307da641835aefdfe2e431becbc0cfe40ad8bb33a3816b9b177b";
+  sha512.run = "7142f762e76a00a0ed7821ba67f09daa9900977dd643ab5249668d385896e87aff71b0dfe268389599ca75a22618638f4d873965bcba94f7fb4ec684d46986fc";
+  sha512.doc = "bf2a7b6498743fa148653e8634099f7597dc8a383f88e15a0605c6cc45247bc0521a1e57c879bf4212e22345f7482f734c741bfac739df1977f1f140b6be6928";
   hasRunfiles = true;
   license = [ "gpl3" ];
 };
-context-inifile = {
-  revision = 47085;
-  stripPrefix = 0;
+context-legacy = {
+  revision = 69173;
   deps = [
     "context"
+    "metapost"
+    "mptopdf"
+    "pdftex"
+    "xetex"
   ];
-  sha512.run = "9dd9b61cd2b5700b0e2b6e59bf4040de9431820c659f121c2681e454ddb4b34454270eac6c442836c90f8a1819761ce0d7659684a1f0c8876fec1f947a0b16f7";
-  sha512.doc = "9635bc80ae7222c6a38004ad5f985004634b7db9596e03a23123ad71bbf177639bb1b028bdfe79d51b75c1c429c327f65c2b5e0720723d8bcdf63f4939312850";
-  hasRunfiles = true;
-  license = [ "gpl1Only" ];
-};
-context-layout = {
-  revision = 47085;
-  stripPrefix = 0;
-  deps = [
-    "context"
+  formats = [
+    {
+      name = "cont-en";
+      engine = "pdftex";
+      options = "-8bit *cont-en.mkii";
+    }
+    {
+      name = "cont-en";
+      engine = "xetex";
+      options = "-8bit *cont-en.mkii";
+    }
   ];
-  sha512.run = "6cad00783d0bc91000ca0e0c8350fe2a2e99f7fefccd375d5bb2f1a144fc04a59f83122dcd490fc0596b1dc9fd0c0a779bfa35932362927ed50ed8df39ec359e";
-  sha512.doc = "4ecf7bfe5fbc78453cc116cf7a657f4b6ac7fc21ca7dd6da5beb0ea1af0c1fd48d6a74ab516213f49d1e29cb8bd47fbcc94145157472e3ea22b291f494fc3d1f";
+  sha512.run = "79783a6096e3bbe21eff5967fa3ed4edffc573567bd027a59c40fbd1f5e3cfc7d0c213ddc9fabcdecd596bcbc9946cf4255edc4237f0148c89dbae7744f3f508";
+  sha512.doc = "6fbf5f1194771c9dc4a19b49aa343656bdcad3620e14a68a0bf9d05cad8f8c813f717b66b12526c2f11a87d4ded75e1cab56d3e72ca1cabe81c9818aa11399a7";
+  hasManpages = true;
   hasRunfiles = true;
-  license = [ "gpl1Only" ];
+  scriptExts = [
+    "rb"
+  ];
 };
+context-legacy.binfiles = [
+  "texexec"
+  "texmfstart"
+];
 context-letter = {
   revision = 60787;
   stripPrefix = 0;
@@ -12544,17 +12700,6 @@ context-letter = {
   hasRunfiles = true;
   license = [ "gpl1Only" ];
 };
-context-lettrine = {
-  revision = 47085;
-  stripPrefix = 0;
-  deps = [
-    "context"
-  ];
-  sha512.run = "79e4e246a7bb0a300db53425e2769a3ef61bc0249ce57840c0b9037805e86eadbd1ef4ab8a110fd806584393feef00f498418732cfd53922aed6df67c561e535";
-  sha512.doc = "ab32697b6c309b1099b809c33182ffc48bb3019c8d520269cbb616b61e8f20678cc2cf4e7e971e06cadb22ffcee0d502deedf21aa95d8d372d1840e4fb4a6591";
-  hasRunfiles = true;
-  license = [ "publicDomain" ];
-};
 context-mathsets = {
   revision = 47085;
   stripPrefix = 0;
@@ -12567,69 +12712,64 @@ context-mathsets = {
   license = [ "free" ];
 };
 context-notes-zh-cn = {
-  revision = 23171;
+  revision = 66725;
   stripPrefix = 0;
   deps = [
     "context"
   ];
-  sha512.run = "a05cd68d609fb9427ca07f64ba1b9ad85762464a3294653c8a790c0a6a41d6af43aab72a1eb7ef0d56a299db2f54af5666dbe974f9fdac014f624350c8bfe50a";
-  sha512.doc = "4261b8aeb5b3cbebde2890af1b7039c6f557ce36f4979228f40f9e5e99b19aa5c457ed6842f4501f4dc32f51f58d9fcd0764028b9d5c74fd07d41c8c866220a1";
-  license = [ "gpl1Only" ];
+  sha512.run = "46be6b5f9f86d6da5514f0ae0cd77aa9beab67572699f9779f3a6cd461a8600336103eaf71d6e6d99fd7ac300a3e5fedcd6e378d349cf648c9aa5a8be2aaa5b5";
+  sha512.doc = "a49b1c85508128e0a2e9ae0218e3622f7479da528f51380c1e109bf877f401531689e8119cab3bde6a91e507f0bd7f16e334cb3affaba7fae5927cc23b17a207";
+  license = [ "gpl3" ];
 };
-context-rst = {
-  revision = 47085;
+context-pocketdiary = {
+  revision = 66953;
   stripPrefix = 0;
   deps = [
     "context"
   ];
-  sha512.run = "f93173c1b27afe538d670c791048f495fa3f236cf75511d43b33172d140ac47fa3b5f11c674db5d515733b8ef9cfa7ac2d3c46b78b624768ee95a21884dae904";
-  sha512.doc = "536f63f9fa02e37c38f445974dab1f75b38abf0769379ee1735001972db71be10d51a1782e850ddd75d73f2a6f1375cf043684c0fae1a88b20a1650248870f9a";
+  sha512.run = "fd90eca9b9642a16aa203984165302b111d4058ed970aab3867018f48d16884fe543d3067a0ad2fc2c0e2684924ef11e9788a7deacb20ad06d7451dc5b19383b";
+  sha512.doc = "a78ed374f6a7ad63a93aef4c9cb2ecc0937c2e3df821c543f49a3ad762ed6949a7d1c4c5a03c7cf54eeb0b9ad891a18c5d10b97a42bbb840c74fef2bf8f14cfb";
   hasRunfiles = true;
-  license = [ "free" ];
+  license = [ "publicDomain" ];
 };
-context-ruby = {
-  revision = 47085;
+context-simpleslides = {
+  revision = 67070;
   stripPrefix = 0;
   deps = [
     "context"
   ];
-  sha512.run = "e219c6da61585d88f8e899278d1c85f0903ed32b6c7368cdb6076697230a0e79f5f88f53dd98514394fa09e7580c1c6b7c167d81c010107f3399dffb18b13d95";
-  sha512.doc = "179e501b428bd87a49830a68236008ea6e962b80e79ab45a0e75a7b86a7fc11025ac38ad463c459c6d290aa5ac8627da5849d1fd8f7502ea7d97696b53ed2647";
+  sha512.run = "083b1f0b70a74a3648501314fa993632534f476376fb80eb4444b0273866bf4a4d562e4bfffbd14ed79be0020361ab6cc5c40fde1f99544b76d6f33939781f19";
+  sha512.doc = "e7a410ec0d99f945dae91c041b396875a6350aa06333f5a5d2d7aa4c6bb62f926ec53a27a1c95a724ce7b320ddef11d6550b0b92a34c00ac63c7c0da96a35928";
   hasRunfiles = true;
-  license = [ "publicDomain" ];
+  license = [ "gpl1Only" ];
 };
-context-simplefonts = {
-  revision = 47085;
+context-squares = {
+  revision = 68545;
   stripPrefix = 0;
   deps = [
     "context"
   ];
-  sha512.run = "7c817f4a25a8883ce052c9657a3d6117042e8538fadc8d67b4b0194abd69238045c09d365e90e555d5b04d83a1ef82039ca9631aec00eb1f80b56fbefa729cd3";
-  sha512.doc = "238babc7694bf85c81e3079b5d72feabc9c9eeea4f3b625a57ecb133d70ac745334ca0426097dccfe53e3ffe108ac0859be4da7625bb6b683abec1101367ac06";
+  sha512.run = "1f84f3131d67e831b31eaeb60939e467031fc080b32bb4c0d52439c1dd7ec7fe5768d2f2bb1f6dcdb25b1b1e4f9455aa83d5dcb3a0d1954aac41a79b0cb0dfae";
+  sha512.doc = "e55bcb462d1aa0aed9563d01dd53f9062f8463d7cd06a42720f3930656edd0fd818f891e43c622b753200ac2ed32f45d21900208f69999b35474f6e7789a7b5e";
   hasRunfiles = true;
-  license = [ "gpl1Only" ];
+  license = [ "mit" ];
 };
-context-simpleslides = {
-  revision = 63903;
+context-sudoku = {
+  revision = 67289;
   stripPrefix = 0;
   deps = [
     "context"
   ];
-  sha512.run = "2db8348769d60d38266ad3798264864a0453b38c769db02ddaee072e795596fd48cc201caa5023d980c1a748c41a30e4c560ece68def59deb3c467bec2e60f64";
-  sha512.doc = "532a9a142b30c8fe2ff3431d24988ef96e5da63276cd0084fe8b69b3e9cb572a0beab8d7ee4291d00a4b1d725f3d23ed47632811fde7e2aca41998c5d44a0481";
+  sha512.run = "b33ece74cc5578c4dca8df816715d7106b674fdc653d149992cf637b11799a21eb03708c0efcc79da9d4658c5f8a801c6bb32dc681f43f3d4b3900dfa588ca99";
+  sha512.doc = "e7f9b6c0ae6bad729074ffb2e4e1673336954adb9013ee6525e87715f3d22720efbe1f7e2cb6b695e01940a4d7f58489889612749ea2f4dbcba3ac6faaa741c4";
   hasRunfiles = true;
-  license = [ "gpl1Only" ];
+  license = [ "mit" ];
 };
-context-title = {
-  revision = 47085;
+context-texlive = {
+  revision = 66924;
   stripPrefix = 0;
-  deps = [
-    "context"
-  ];
-  sha512.run = "bc7d6cbd373cb6d6214489ed97117929ba381626c854a0a5a950bfa44c06214991d7a90290793c825c96e6d22ba1f6807054d4553d1d3980d9d9bc0e6dabafda";
-  sha512.doc = "3b910eeca8c8a442939873e082a4025523472b267ed3268e63cbf5fbe0821c9db8d8d183058d139aa02233dfdb6be7e23fb9df360a490f7d551875c59753c7c0";
+  sha512.run = "64abf080ecfd9cf68f2ef12123ca6ee976d6fe3cb8382d34b32f424a1bfcf9165142bab2c1a9a1f394e1ed4bd53aaf2875363e7f357eae48ba00ddfc894e5d1f";
   hasRunfiles = true;
-  license = [ "gpl1Only" ];
 };
 context-transliterator = {
   revision = 61127;
@@ -12642,17 +12782,6 @@ context-transliterator = {
   hasRunfiles = true;
   license = [ "bsd3" ];
 };
-context-typearea = {
-  revision = 47085;
-  stripPrefix = 0;
-  deps = [
-    "context"
-  ];
-  sha512.run = "c4a2f2317b146b31102273e9b616d403d4ee836a61fae96bd9315670b0bdd5f9d94ecde00b53d2ea5f7073773bd8af5c322b07c3b05bf7ad5262a9f0e0b623a1";
-  sha512.doc = "7171bc5c5e82b3897f75421e745e876c2aea84e9e9cb74badd6dedc75666b8f9ddb8b6d11c523ea64be6b57dca4f84555827afa32a0c90f6df1c31b68b1f6395";
-  hasRunfiles = true;
-  license = [ "gpl1Only" ];
-};
 context-typescripts = {
   revision = 60422;
   stripPrefix = 0;
@@ -12690,12 +12819,13 @@ context-visualcounter = {
 };
 context.binfiles = [
   "context"
+  "context.lua"
   "contextjit"
+  "luametatex"
   "luatools"
   "mtxrun"
+  "mtxrun.lua"
   "mtxrunjit"
-  "texexec"
-  "texmfstart"
 ];
 continue = {
   revision = 49449;
@@ -12718,11 +12848,11 @@ contour = {
   version = "2.14";
 };
 contracard = {
-  revision = 50217;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "07c77a1e864c012a88be95a98ef662f5642fd63e84801a994be702f5ae2d62100b02e109ba6c775f2c8d11d75627fdef48acdbd55bdb4735896fd945edc4fdc6";
-  sha512.doc = "984acf51897209c3bc3fe4760088a6b9cbae613acf51c5f8c848dae3a3d13e5e8171fc62db25dcea267cadaf9f2ba81d221085ae90a7da1fb5e6d0dd8e243f10";
-  sha512.source = "6a0f0536861da9f012b5600fc1c635a9f9124c25b4a5d9544ca00fbc3770760c0d1de77587452d33c254abec3bee6fd923e31f2bd34581c467f15d1d658a9cae";
+  sha512.run = "eb705425aa67034ddbf4390165a5f6a9690c67d34371a720298843d1c7292655bcb59a56364bdb510608d48b6590931abd68216fdcdcd8be90eddfbc339ce28b";
+  sha512.doc = "046a38d7a11edaa8f67648996c31e481cd818b79afb1f971afe459b7adf0bb3d4f5cb0afc3903177bfc0b9b0678336a837002f8db486916afc24445a875c3285";
+  sha512.source = "67bf64418fde78f9ea7288f47efaf50970f133325860f0283ed2842f58394417b4e8ec8f0180cde60c9bb74cd1c797aa6f89afe3fd033676681807cd25d5cebc";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "2.0.0";
@@ -12781,40 +12911,40 @@ cookingsymbols = {
   version = "1.1";
 };
 cool = {
-  revision = 15878;
+  revision = 67013;
   stripPrefix = 0;
-  sha512.run = "ec5b1612484852897856b58bde90aabc3e8c051f6a14674f2bf3a121993ce074214c3d61c7d074dae54e227c759630cff71793ac1ff433b048f3a15f90038c0f";
-  sha512.doc = "bf27e08a04f02f58ffb04ae0fa7b26860ab4129d3de3e2ab20d244a99c96b112a7a3dc10d064a364e38a80c1087ea8c693e7e7538a36975b6914f75418a82547";
-  sha512.source = "1f5b16c0e1d4598ec4f4c5981e079537b0142f92b514d1f3dad567b2a71b02f9be0b3441087d7a973750f308f691270e750d75f669784fa3c787e6bc919d7e68";
+  sha512.run = "4ee983b7b07d20c9fe7568ebb6be60ecc56f85cc4ae4013870c53370df99d69bc0537c3889790324baa1f1a8afab2da56763b590457c49866d219b1540effe98";
+  sha512.doc = "06d182b5415ed25be80c827206759708daddfaa6bf7a3aae59c1639c3c09523a7b421abdd9d2a8db1297e161e439b777d3d1d8c07e52dddc1c071ce1c5a9fe47";
+  sha512.source = "c305695f6694cfb4b08462591aabd64adef27001d0c84ba905b0d4f07b7095905cda414e7e477ae962f5ecf6cdcee60d0a432e4eea924bf2fad0770411131912";
   hasRunfiles = true;
   license = [ "lgpl2" ];
   version = "1.35";
 };
 coolfn = {
-  revision = 66234;
+  revision = 69007;
   stripPrefix = 0;
-  sha512.run = "7cec637033598a8d91b5e284fed608a0369314ee2971de64bcb02e5f7b72702958da8b81e64ced9894ef8bb27286f2b1547550d6b11ad43f6111ca8459cdc3d7";
-  sha512.doc = "e35e455eb1be787777629bd1333c9130f4fa272ef808ce67c9b7c18eee93ad059794588763f81779a4ffe1cdb8cd1cb283f65ce05732e5d03f4fc5e7b2c1a74a";
+  sha512.run = "b92b231bee56a8589e079a1175569a8d8b92bd0e4730e87882cd8415bf301d466c381eaa0540104abfa5e9ed2d159b3349e3dbfc34e6b1c10e52e255946b3067";
+  sha512.doc = "f3f6c06eaff8ce132e5bbdc25fa244b6aefd388a467bdf78c9c5459d6bbcaff185ef0a485957e8b864ce167b0be3a994d73cbed788754da308dea2af5d9beaae";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1.0";
+  version = "1.2.2";
 };
 coollist = {
-  revision = 63523;
+  revision = 67048;
   stripPrefix = 0;
-  sha512.run = "f9c220204782a1b61deb6e049b10bb81b5417383e1dd9b7e9b0ec827da48f06e3167f0dc2453d46f3f54923fc2200c2cc714f2f3725f6f41602f8dc493503855";
-  sha512.doc = "09d1780a5738f82ff8d1820c015447855b8a930e63f3d0bb3e8e428a3bc6f6239f185fb6f9d7d45af2d9af5ba283fc0fafee7fd9bc88dacf654dfeee46dc375f";
-  sha512.source = "beb55ae83841be57a743a39c49c83028a0207b8d307e717f91381d3157139748abac33f300683dbcdb683353ad2d8798dbc416d450ba950d9245e45ff87be89f";
+  sha512.run = "7336f6e9a05311295d1ada4598d4b5506ef64ea1c245d30c2f30e079b5da66f08b029d98a74dec769b60da7ac05822f377c485bc0a7a25fcb3aec9e2f499d3a3";
+  sha512.doc = "5f27ec17d4544bb4ac9891e088b6d921901504c46a52a65638d5caa0fb7ad4df55c00ff2ad7569b6b7f97919b9a139f433044f849ca4bd559c77e147e5878d50";
+  sha512.source = "c0a8e06bae7ea5e3a2dfba01e014c7bd0ffa22306bc1827e1eab717317b23df8d20ca344ba182c7c44a596f3c7471aeab03ed93221cca658a0e451578bad6761";
   hasRunfiles = true;
   license = [ "lgpl2" ];
   version = "1.4";
 };
 coolstr = {
-  revision = 15878;
+  revision = 67015;
   stripPrefix = 0;
-  sha512.run = "d4fe8de308d6dd9711f1d877fd1d5ad32f36a4d6cb17480571d88f4b63f9441fb1db217629ddafb25e774bb6d43d148742f9e823e1d43f497a9799b869f90b62";
-  sha512.doc = "63c833be3ab646ce509e5082af3d135d81224c7b586f6998e5fc7410f2ed0e52abb05adfb49d78bae721889fc522395b53810e3ee627184de83dddb198cd3083";
-  sha512.source = "69ba696387583767b4c4d0b196c2b37000da16198242ea1ba4e2208fce6dab8eddb2bd40093eb092fe62b3be82aacab4b11ee35e2f94422eb07e0ad489709930";
+  sha512.run = "272c0ad1071f394c9cf96c38ce85800aeed55eacba29dc86c5887b86a63b717d8f83fd83afb5ff813df780691a7a2deff6d466e521eeca14ad3e3d09f07ab0db";
+  sha512.doc = "5f4baf28b3a5d2b83ab51037c60454def4c1ebb74a408add0459fbc7766fe828e32af9c02ba898592272b067b23715e3986ca4f561a1a89d58a57c7de6d70bd3";
+  sha512.source = "56e15bc77c6bbc2523162db8a86d1b3bf86e97a59fec15e27da736b964d02e27e7838690befce0f493a9363b946f710676c76e1ddc0c048f5cf40e41d29c1c0b";
   hasRunfiles = true;
   license = [ "lgpl2" ];
   version = "2.2";
@@ -12913,6 +13043,25 @@ coseoul = {
   license = [ "lppl13c" ];
   version = "1.1";
 };
+couleurs-fr = {
+  revision = 67901;
+  stripPrefix = 0;
+  sha512.run = "d3d1abad334d50129f77b35ebd6fa244feb84e347e64cd98f3e3413c556b1848a198e4679e266f838d947244756fc19071b1bb0816c73b887b2deb4fe061adcf";
+  sha512.doc = "8e88f3947d0dcebab82a60bf9886350762f57da2c2b3c739e2e3896afea70a2088ce325cfe6373d6a351b57fc2f0b0bb7f0f4c9716a094d86e1997744890c92c";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.2";
+};
+counterz = {
+  revision = 67335;
+  stripPrefix = 0;
+  sha512.run = "5fcc21ea49e222cbb205998172ca4184f4daa3efcf92c48278b3e7c5bce6669594b02f5fe54af76f94ee19ba63b9701e66d24c2ce85262748c1fd2c9b6e18b3a";
+  sha512.doc = "a5ccf25501d1275161e9aa53f076fea2480cd5edbb83e4133c9cf8e400b840fde78f69bf038e5778c6b8535fea3e654c11eb1ac82545a90fe952530bfdbb607b";
+  sha512.source = "920d054c6a3bc41504db850407d8553b1e108af85ab1a94fd2a6bb71e8f6f7f02abd11908a8d73430cf27c9f9f8e46014a53b8afdb80dd360e4e1cd12f8bb090";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.1.1";
+};
 countriesofeurope = {
   revision = 54512;
   stripPrefix = 0;
@@ -12984,13 +13133,13 @@ coverpage = {
   version = "1.01";
 };
 covington = {
-  revision = 64241;
+  revision = 69091;
   stripPrefix = 0;
-  sha512.run = "36c48b3d496464d6aa2d4debbd50e9794fd608a19b6c3f443ccd726dbf105ed3ac6da5af89947ddf509489fb3835c5ae630075d149ba8866f51fe43ef1c3de33";
-  sha512.doc = "b20a69084adc6f2a4801672069f6f445e3d15f52fce3e32c707abdc4545a4c0115c0819648dbfaf1ac0562250377372d66e354fd28d2977b065c222e33d1019f";
+  sha512.run = "c70d4926d45c93ffecff4d8f32923ac99a1b354e51dfc21eed8f3e3172e5c29875d5ef7a2509dbd6150f22bec337efceb7cd42717798144d1d1046e4332d00d0";
+  sha512.doc = "cee67a2bcd26ef106d35fadf02145b74e7c9b67c2bd2ff46a4a7afc262d020d43b168fefc2d086688c4087469e9d68a9f0ae79c83dc018ecce70233a0459f9fb";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.8";
+  version = "2.14";
 };
 cprotect = {
   revision = 21209;
@@ -13040,22 +13189,30 @@ crbox = {
   version = "0.1";
 };
 create-theorem = {
-  revision = 64104;
+  revision = 67712;
   stripPrefix = 0;
   deps = [
     "crefthe"
   ];
-  sha512.run = "dcb4f947d6d0fed303d53c19e29049070b1c3ca47fb0d78c0c1c3455f6de59ea2aa98640ac88549bb8f00f1b5cd4320a84f92f98d08a0ee788eb47417a86486d";
-  sha512.doc = "4c84bebff2a93f8326fb8ce795a9fe2193194f70d49b5448b51d25a98378336bc931a60d762dc12bcfb2fffc362663391347a4b89e69336fb47efd23dcae4499";
+  sha512.run = "4e33efc66887fda4505c7036444c7afbebd96594bcd326b8cdb149fb4a429f3cf05f87d6315dd6c207d5f55a9951ec6632ed63aa6f2d4320ac7fbee53d744680";
+  sha512.doc = "ee71cddaf790679dbc46044e5262f3b5db098f1b57291719bbba68b9e905e5daa20127d1a124b6f1e3d898fa081a3e7003f607ad0bc4191f5f63fca837ab2c7d";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+};
+creationboites = {
+  revision = 68087;
+  stripPrefix = 0;
+  sha512.run = "5aaa071101c52bbd95c83b2e523ab664a2d52109fd5ebdf71da07d3af997d93cc2550736fe18dfac05348d92cbb02749f03a052954a0807fd3d2140efb322588";
+  sha512.doc = "42e8ce40f037b18e82899b570e8102835a437a5283193f1e799876039a856f86adb1afe52f5b07bc6151644e9b174dcfbd96f6148e2610a0a32cb400832f3ebf";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2022-08-08a";
+  version = "0.1.0";
 };
 crefthe = {
-  revision = 64498;
+  revision = 68813;
   stripPrefix = 0;
-  sha512.run = "00e42796dfb4a48ffcf1750562842e0bee1f3216929d05729b9930134bc55521e4e9b9a3840dde0d615539c2206088a1e554dcad41ebaa83a0c3822e66893aa5";
-  sha512.doc = "b9ce19968dd09744ee594b40c0ad4478675c2530679183e3de0e79e344a106c244ad9201c61cad42f60e24f97b61490b2f103b8ffc591d4fd1388dcd4dcbcf5e";
+  sha512.run = "4222df8d84b006df3641dd2fd976440401b83c40e9ef0b126be8ba9b459eadc084cda58798db596e5ceabcf4b4f0c821bcdd5b05be5a3ec9e3f65d98b4c6da3b";
+  sha512.doc = "48b2636dd969403d3f0511c8b959985da32243d5763d6d2837f57981ae2f548b2e92956c3fcc9349290e7b705ea8144ab2af9b74a5538ebae967693e82e6085c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -13086,10 +13243,10 @@ crop = {
   version = "1.10.2";
 };
 crossrefenum = {
-  revision = 66032;
+  revision = 66014;
   stripPrefix = 0;
-  sha512.run = "35b59fce84e356e5f72d91bea2de582b75fdbfebe1573e3e23321743a203b258ce186bf274dffa3ce09bec034d8a52b2a7275c4452ea63162f71898bd1ca9ea9";
-  sha512.doc = "77675af4bcc279317792089faa1571c5f2a7f9b20872ba0a919850f1316ac17e4110d57266555b3d2bc8804ebd9d393e7245e62023445791d6af9cd2d248b9ef";
+  sha512.run = "ec85888801dd66c0e1b22a257be19eb141b922975a7dfeff90ba146232a6d8b9a7b76e338b68548ae228a1317af0208072c06cd10ddebbada93b11b72907c817";
+  sha512.doc = "c5d847af7f8c2d753563d5f393cd3de2936de96ebf1e653b7e0b9f72da75f3481ce1a783329f74ccf8e5f160eae81e045c663775dac916c431edafb1677b5860";
   hasRunfiles = true;
   license = [ "gpl3Plus" "fdl13Only" ];
   version = "1.0.2";
@@ -13210,7 +13367,8 @@ csbulletin = {
   license = [ "lppl13c" ];
 };
 cslatex = {
-  revision = 62387;
+  revision = 67494;
+  stripPrefix = 0;
   deps = [
     "atbegshi"
     "atveryend"
@@ -13230,29 +13388,25 @@ cslatex = {
     {
       name = "cslatex";
       engine = "pdftex";
+      enabled = false;
       options = "-etex cslatex.ini";
       fmttriggers = [ "atbegshi" "atveryend" "cm" "csplain" "everyshi" "firstaid" "hyphen-base" "l3kernel" "l3packages" "latex-fonts" "latex" "unicode-data" ];
     }
     {
       name = "pdfcslatex";
       engine = "pdftex";
+      enabled = false;
       options = "-etex cslatex.ini";
       fmttriggers = [ "atbegshi" "atveryend" "cm" "csplain" "everyshi" "firstaid" "hyphen-base" "l3kernel" "l3packages" "latex-fonts" "latex" "unicode-data" "tex-ini-files" ];
     }
   ];
-  sha512.run = "a65516275b53ce0e2487193b537759da447137898915f577c66893d6408c664b7cb830941dac2e80b2922c1597719cc879f66d3378216bfa2dc190e1bf502675";
-  sha512.doc = "d1be033b7355bb3431193a9a39bdd1e269c7f3a97333c2b753ffdf795ad45a366893267a13472463805ed428760de680aae3377b25ef39bf5522a0186f80f899";
-  hasManpages = true;
-  sha512.source = "def618478c9d3b500aafdf47ea5e9432412b9ae5029417b85fe38f2c506d691cc001b9c4492bceb7ff276a15612bf17b13dc2fecd2158ad940e97c6ca2d03bb7";
+  sha512.run = "a5ea5d33fcf2573f772541cf03cb660fbc4d32d4d1e145fabc07781f5f664369f0bce9e8434f403beebb3a6c17c2da43d7727fecf6944db1bc9d36796e8470da";
+  sha512.source = "8ea942f9cf3b9939311ae29bc4badbb2a67c6f4f2e03a4745142a0b570aeb0e668dfc47dea278f960e6a11231856464370507379cdbd77588720a16ff5e25d17";
   hasRunfiles = true;
   license = [ "gpl1Only" ];
 };
-cslatex.binfiles = [
-  "cslatex"
-  "pdfcslatex"
-];
 csplain = {
-  revision = 62771;
+  revision = 67934;
   deps = [
     "cm"
     "cs"
@@ -13261,9 +13415,11 @@ csplain = {
     "hyphen-base"
     "luatex"
     "luatex85"
+    "pdftex"
     "plain"
     "tex"
     "tex-ini-files"
+    "xetex"
   ];
   formats = [
     {
@@ -13297,7 +13453,7 @@ csplain = {
       fmttriggers = [ "cm" "cs" "hyphen-base" "plain" ];
     }
   ];
-  sha512.run = "c4dbe1721fc2281cba7e426f6c75d35671cfeddf77a947f147a33c651090bc90528583445736bc2933c2d3986424e1b3ac4984e93cfae5f0ad1cfe41902f63cb";
+  sha512.run = "5c0d9f12254d2b61a9ab34cb447dcdda56b032c5d4fcd1b4ee2ec2f3999e5b5317e067c7e03814598add15ecd56449ace1bd1a67b6d87bcc6adc2122bf7b5083";
   hasRunfiles = true;
   license = [ "free" ];
   version = "Mar._2022";
@@ -13363,13 +13519,13 @@ csvmerge = {
   version = "1.0";
 };
 csvsimple = {
-  revision = 64450;
+  revision = 68566;
   stripPrefix = 0;
-  sha512.run = "5c17b0055230159d8e37ab77738d7f177578fa4061dbf5fca0071da4dadcc929946fddee11bbfb32c2109adffe8e33bad74ee0f343b467ab695a85face9ca516";
-  sha512.doc = "9d63055aecb4f5939799b03691c6620c5b07b7b8b785a00a84d2c937409f675223aab97e68ceedbdf21b0193a05fcf3763971ca3c9e016933f2c55b5a2c8f8ef";
+  sha512.run = "e98878933f2f4a7b5b41325f11deea34db380bfe7ae581cb7e78a738ce599ea7b325ae77d48af7a58705ec4e7b668751b371ddb0396a44e28b1af57ab21cb87b";
+  sha512.doc = "7d0a19509538818153357c485984abfe88b9a7e3c865a2184594155a9643dea61755a510e264a38d170f660fe502b9a37a0c353565d2518ccf621cd69ef3030c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.3.2";
+  version = "2.5.0";
 };
 ctable = {
   revision = 38672;
@@ -13412,13 +13568,13 @@ ctan_chk = {
   version = "1.0";
 };
 ctanbib = {
-  revision = 66069;
-  sha512.run = "5cb965c9b387d5c733204663f5f6496e4ff8033ece3f6063513bb8890516e8e96b4d307ce830ac51f15796ac467e3db0e27eea668f14b4da8b3446623b6767fa";
-  sha512.doc = "e161bc466807c7697cb7232874c0d7daf14d82677d25a081085dce91461826d2aace842f599cd27cc0f6491d31028d3253e8d9dbf237f9e97444dda80490e5ba";
+  revision = 68650;
+  sha512.run = "1d89c7bab95472d993c6e685880d513f9cd4ac57af87c7656bfb8423b2e5c9c1ede851da01e638558edb37e85caca3080293a7df9b0ad9e87b2aee84a6680a52";
+  sha512.doc = "760b98e3c4d7b07e2f15d7e2b1705f10eb697f5e7f2aa03de97a3ce347d7495f3595d9ed0518c0aa5d38d2eb0b20c3a889e6e66416587a4d15b89a9965986d04";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.2b";
+  version = "0.2d";
 };
 ctanbib.binfiles = [
   "ctanbib"
@@ -13447,7 +13603,7 @@ ctanupload.binfiles = [
   "ctanupload"
 ];
 ctex = {
-  revision = 66119;
+  revision = 66115;
   stripPrefix = 0;
   deps = [
     "adobemapping"
@@ -13488,9 +13644,9 @@ ctex = {
     "zhmetrics-uptex"
     "zhnumber"
   ];
-  sha512.run = "d118a114f1f4df64f66d3a747042e3fd2409d96322e3d6118d5326bad22eec9fcf957e9e0c89a2a3589f24eaa0f10e96580e3b80b2490ef4c372014503d0a5d2";
-  sha512.doc = "c2917675879646b56dcc3709e87194b862c6ae1a2cb3a58691bc587f4c72d520abefebeee256460d797eef1c7f9aebbd20c7c54c4276583b2be89dfda6166599";
-  sha512.source = "64c1af74f09b3aa1d859a5c37c88d92c22e72e25cb9f7fedda8941b4ffcd92c7eb18ac36c9f3927b70ac5d27a8145d9eaf1dc5953cb489b6155f0a097cf3b9a4";
+  sha512.run = "43954ec2acfd2a0e37acb55c3bc7496a9959abeb60787a4daa742cfccc3bfe5b88542d341552aa9bfef6b4224c79a14c5a5e9a7221cc0ecf83d22c9e6ce6a48b";
+  sha512.doc = "475eb846b55672b23769af8757c7532b30d3d13d6667fcd71b8783ab291dd3a39fef6d255080745d4d609276f9074896fae7e674e8abeccad7c5984db5f88636";
+  sha512.source = "59df412a321a4ad75e1b948dd12d250a844c042c9a7c5ef24f0108591fbb087ec6949b537788f070d496b9ead0e8b8de120b37f6977dd536bf10ac353d5da6c2";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "2.5.10";
@@ -13512,12 +13668,12 @@ ctib = {
   license = [ "gpl1Only" ];
 };
 ctie = {
-  revision = 62387;
+  revision = 66186;
   deps = [
     "kpathsea"
   ];
-  sha512.run = "c1c69127e1157c15086beb269e1925feaf63eebbc45baec018ce97196a2fc42638bb3107a4c1d065e98a08e490d238d2bffe1827f27f9015ffa5be88be53d6bf";
-  sha512.doc = "494a3e6569a77b434f66a56f1fa44d4651dc23e7cdcacb101043ed55cc6e32551f148e67976b67b88507da2fe05a0b006c810fb737f9364d47cb010438c7b39e";
+  sha512.run = "0180080c48fea7b717ff0ad27e060ad4564841fe2929b8db919aa0402886a00e0fa40f1398ef82bbf9e983343c9f9f6c797606045d55ed07e572e006588c7353";
+  sha512.doc = "178a88260131781b6678ee63b1b35ecc0734525309b99c0d5bd4498127970bd67e30c23072392b6678186532a845c7e27188b1902b5dca52180720bc98fe3dd6";
   hasManpages = true;
   license = [ "gpl1Only" ];
   version = "1.1";
@@ -13535,6 +13691,16 @@ cuisine = {
   license = [ "lppl13c" ];
   version = "0.7";
 };
+culmus = {
+  revision = 68495;
+  stripPrefix = 0;
+  sha512.run = "4f6f370a13ce2cdea9a1dd32bb1e2243000f4cd566f1a7698c641b9ad4793b3c1148fb914dd748e37b5e7bd6802144d4e1b9fd4c536df58bcb4863ad4f9cd2dd";
+  sha512.doc = "4c1217f0cd27bcd56c11006b7b3749e661aba567798b2e397a21b3b0df39a35acb6355836d4eac4fd619509b09b57c7e39a97068343b6e28005944ebf0430adc";
+  sha512.source = "2dc2e6bd71ee949208625fc259cecc6a0ffdd0701416c5775cc32855a2bbf8a533238e07d4fa08c090ed3ff627613c27f0cddeb2c86eda1b320cbc68e236a6a0";
+  hasRunfiles = true;
+  license = [ "lppl13c" "gpl2" ];
+  version = "1.1";
+};
 cuprum = {
   revision = 49909;
   stripPrefix = 0;
@@ -13563,6 +13729,15 @@ currfile = {
   license = [ "lppl13c" ];
   version = "0.8";
 };
+curriculum-vitae = {
+  revision = 68211;
+  stripPrefix = 0;
+  sha512.run = "a650807bb2a12df8460ff4b450af6bb7122a8629aa72d5e180e196ed3f904ab70e04fe0ae79474649d22534a0a7cf0342f4a1ff953355b8003e9d8eea0016d10";
+  sha512.doc = "5c07bdfa540b65a6df224bea38b5865e44f08ce042e4b465be83f580a08976236442d7bb96573ea8c5b089aeff8f02e2a9b556997a24a73d264a557e775f8d3e";
+  hasRunfiles = true;
+  license = [ "asl20" ];
+  version = "1.0";
+};
 currvita = {
   revision = 15878;
   stripPrefix = 0;
@@ -13590,14 +13765,14 @@ curve = {
   version = "1.16";
 };
 curve2e = {
-  revision = 65469;
+  revision = 67599;
   stripPrefix = 0;
-  sha512.run = "0d2e5e851136e73d205cd87fdd22eb2d4513c4f8d1f510c1adefc6a278c9c47e148ca6c45d7cbedfc5e51543f06301f7960bdc704fd4da3dbc2bcbbd68e506e3";
-  sha512.doc = "d7c0dad1800cc12ab3908036a8f59d87a37c6a2218a6fd6b0280019f98d34908b080499abebb1976ecf16957d9290cadebc93c90c766d467b6452f6a8b7c8743";
-  sha512.source = "4767deede52b6c3a31168f37a41a8f127ad6de0208b6aa42ca00ec7ed2cdcddc0317de2920ccdd5f1896b6b007ebeabcbd5aaf8211f798584ff64f960f63e5da";
+  sha512.run = "36b8d1ebbc07ea1cb78b85fe2c327a4c932ef0a88881ef9185654cda6865ea5ca017aeb33334f603fad74fa0245a531f50e2016c912da4355cb552ee5e069f97";
+  sha512.doc = "d28134fe19310084b6ffee13bea26b7dd131789a124041cbecb500e070bb134db98d4cf01d7d970781ad1823327f363fe886be9615d3458ca6763fbd7039f0db";
+  sha512.source = "7a9207da9be81c2dd9de00adf25f81adc2bec671e4fe281904410e964670968103a4e556806a287e830aa9aba908c353606884079f3509a66975dd9411d2c886";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.2.22";
+  version = "2.3.1";
 };
 curves = {
   revision = 45255;
@@ -13629,6 +13804,15 @@ customdice = {
   license = [ "cc-by-sa-40" ];
   version = "1.1";
 };
+customenvs = {
+  revision = 68637;
+  stripPrefix = 0;
+  sha512.run = "d58a216909f8bf7c425f0836c05842ca918b03b928a57ab06223a82fa588a3bd3d515f6beb5ed27330d5566192a234a08385ac387563db8ad171b928749b488c";
+  sha512.doc = "d807f71f40367888621fefb52ff3fbba1d5b301b670710461b0feb79eb61171ec6208de41ea15ab39c14650734f2ba6a2c5f89182f27072c87c9564fa462544a";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.1";
+};
 cutwin = {
   revision = 60901;
   stripPrefix = 0;
@@ -13667,9 +13851,9 @@ cvss = {
   version = "1.1.0";
 };
 cweb = {
-  revision = 65081;
-  sha512.run = "a3c7600debbae6ee9af48efc27cb69eb84fb338985ddcbaceffd969e18673d0943d080a3c9fd83a3edda8b93a0d70e2b4bcced158c903477c29620decc1587f0";
-  sha512.doc = "6f0ced7413dd513cdbde98a2c9e4f3841e8469084938e921a186b0f0a571ed859548921e710deb1c1634063068807aba15209cb0d07f891564d42dc751784e45";
+  revision = 68702;
+  sha512.run = "4c7a5bc2e7f347e29b625db12e9aa53c872e97c38adb08feba1fd8498aca39a2a83ba3707725757860353294541bcb29585e262404687f6f4939b8512c362765";
+  sha512.doc = "27ce2eb4a74a662eda15e5f72c1543b739c3b2eb918a07421781fcf62f0a4f1ae18c99ec836409175835ce56f3f3087e8b6bcf4deaf4f2282ecf9a2fc713a14d";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "knuth" ];
@@ -14072,11 +14256,11 @@ datetime2-galician = {
   version = "1.0";
 };
 datetime2-german = {
-  revision = 53125;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "a27345e07164419862e2aa50a46252ffa05ccc1f3aa36cf530544642faee34a7670cb2d9279245b657bd5cfb5f9282eb537a94acfe56017bd855948a0b0d1ae7";
-  sha512.doc = "70c3d14708a87ea3e7f81ce3fa26420daa123f214a1bbdee17a8d1a33c437be51602a5857081ddc82998526e5424e4899dc795d1fc7462519ff35cfe8b63df9a";
-  sha512.source = "04f88422f1134325f6c9dae292c8c6e10ea61da4c5159afb04774a776277f35130a5d7dd90d58e368df3db20a29d472e4c8c1ef2527d17cfe77ef1f46bb7dcdf";
+  sha512.run = "1c020ab84d3c6f5b5dfa8170d9be8344c6a63bc3a7f462b29697fbb892eb4061a502801177bf21408f3a6eb68fafb8b77711c125d23e662ce1510f75117c1d03";
+  sha512.doc = "f050add5492691986f50007fcc48fc36a0a19e6a23303062c5a865be753e0c56f4f5f955efc22c4c838fbf9af79f91e0f488e00027f4bed045af483ce06cd24c";
+  sha512.source = "f131874dc61bc52d040dd25ce684782d50c0519c03294f23f9c6b717a8f574751e8f2df18de0b74bb3a9026718b6beb299435af6c990e4e2d7c891e831fae7d5";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "3.0";
@@ -14245,11 +14429,11 @@ datetime2-scottish = {
   version = "1.1";
 };
 datetime2-serbian = {
-  revision = 52893;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "ebcdbb32af1743e9dc2b46b6730664c48a26ac4d15c4e9936c9df883a718fb52e8800f29285295e7521a02130471bdc10f8227b5dbbbeaf6481355d7025a8dd4";
-  sha512.doc = "c56761130dc00406a27356a8b38f4c82f233dab32fa6f19d58626139ecd7e12fe3c736edc676db52176c5918800b4f0a47362fcb9b3ef265ec3beebd641c1b15";
-  sha512.source = "a7d421d3e090bfdcdd0fc5f734a45cf32d8849e1c27ddb2de3f829c5488d99220797400c8039deef2fb76c3ede96059519dad3d54412f2c780ca5b9bca39f043";
+  sha512.run = "55ddf54bb1ba9cca7836ef0ec082d98d9d280b92e1d2d108c3a4d11b5c5d89f43098215eff675e8ff5b42bd8f446c6361a98f544f2d4bcb4ae684f69597eecb2";
+  sha512.doc = "b3b25cef5afc1481617cc3edbbe0aac242b1dacfdfdb9bbd30fa9d2c0f963605ead09bb9a91b016d0739b848cafce18ab17d3fd0750e589faeda0c434b4ac73e";
+  sha512.source = "c36f353d307bc2a49844dcc53837ab6ff2cb17a10973419ccd848c752f0eb53b369d4f0e123e3992f96d5fcde30f204e830093d6421f3544be693a9369c43129";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "2.1.0";
@@ -14354,14 +14538,14 @@ dbshow = {
   version = "1.5";
 };
 dccpaper = {
-  revision = 61763;
+  revision = 67890;
   stripPrefix = 0;
-  sha512.run = "98648e229632afa6503388edbf7418b2f92fb46351bdedf7d678132be91b3740927ce4c17ccb2ddbee6e24cfc0810b415c013cb61aa81db986efb5daef311aed";
-  sha512.doc = "e9809887d68592513d5d9992add687dc7fe82e7570fcbc46cf582f66152c94d5f9729735f0f5714245421556b470fcf0f6cb0129017fd79df20e96fc0f4548e2";
-  sha512.source = "da0843ea5f46a187b0d454b5a421699865086af684512a2202aded1e50c240e1345130753fff0a779794d5897f32be793006802c59a7aa741a0f53b4ac002f91";
+  sha512.run = "16a507603bffd0fd0e305c9e2d21927f0788dcff750ab276349919cc2e1036b41f57696e088ab5596bd714f890ea68ece629980dc613581d5c90f586f7e4117c";
+  sha512.doc = "7793786d0c34ab72954fe189bbae96a388f61f789b845b42d7fb062bab3858643e8ee730d11a5d4209fb0d728220e7ea89bceb3684118978dd8119aedf167a89";
+  sha512.source = "bf4bb7b3ed2cae28c3f3d15758a48fcea3e737872b27af3ded1cda51f5b1c84ac200116fa7019972c65aa2a4966885582956bdbb717b6b427ab42f2f7b7fb00a";
   hasRunfiles = true;
   license = [ "lppl13c" "cc-by-40" ];
-  version = "2.3";
+  version = "2.4";
 };
 dcpic = {
   revision = 30206;
@@ -14382,9 +14566,9 @@ ddphonism = {
   version = "0.2";
 };
 de-macro = {
-  revision = 61719;
-  sha512.run = "8952325be56b193440dd24f0e6847ed1a9bea4cf8aed86afc7b7ff0a0f6d61130320834e679d55a020d8114d555733a92e645eea8fa1d3afabeb8cac5ef097ea";
-  sha512.doc = "079dfa97d55a2989e300856e7877591bd041b239454a0a0f72ed20e329fe2f9ebbbff22497eec1b622e2679316242a845eacab5716e01e74c5c810fb357c1636";
+  revision = 66746;
+  sha512.run = "6847ee60de3e70db18f402744ce0edf926fa2ba1ccd64faaa9844aeca85809efdab740d99f1ddcaddb74fa54c70d0c2dc0a7e8d15575e574ce8d451e0b6248e4";
+  sha512.doc = "21065d2ebaee0a2c82e5d41ae6a5ddb071623f9e405262de404557053c2f402f9166e7c3c939ec57e3d3a1842397143c16bfee9d219eb84ef613b74474538052";
   hasRunfiles = true;
   license = [ "free" ];
   version = "1.4.1";
@@ -14419,6 +14603,16 @@ decimal = {
   hasRunfiles = true;
   license = [ "lppl1" ];
 };
+decimalcomma = {
+  revision = 69251;
+  stripPrefix = 0;
+  sha512.run = "78d257b6a3b65c44e9cff04093896240c7a9401af04b028fa79bf29dc436a18d163049d34a9a7c92c193ce07085aa877e69399f79da22696da800f72de20eb37";
+  sha512.doc = "21f1a61e45fe9d83f4ca7d01375c832b230485035f39277e18a3062da98f7d0bc63aa1703258c7fbbb6330dfde15153ed9bab60afe62db9bca4250033a12fb0d";
+  sha512.source = "56906bcdf0d1ed82de86cb39994682705b5e19504a97d2deabf34ccba239c499ca3b613e013c04c2726155b49a7971b9ad450d248acbeb5bddcdf4c4c7e8d687";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.4";
+};
 decision-table = {
   revision = 60673;
   stripPrefix = 0;
@@ -14439,6 +14633,16 @@ decorule = {
   license = [ "lppl13c" ];
   version = "0.7";
 };
+defoldfonts = {
+  revision = 68234;
+  stripPrefix = 0;
+  sha512.run = "f6823da220c00ffd688d0b25d06109f0f3a7ab606d535631d9197a26b02388b11e4dedf41829c94ca4a414cbc1cee81c425d006e7567116b243272fa8d8659fd";
+  sha512.doc = "d799609d039e98e2b737fcff5bef277359818838a8cc1489dab934d6b890ce480b7d6e935a84562662e8f130873d1a2dc777e08b229b7d5c0b431b8fde5d6978";
+  sha512.source = "5bc0c27101fac6b15e8e792bb4436c4f5ada6684bdcc254eae8466ef07ed7896957544186c09ab43d8ed278efcf44f07c40c9ce5c194fff081bd46a6e628704c";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0";
+};
 dehyph = {
   revision = 48599;
   stripPrefix = 0;
@@ -14447,15 +14651,15 @@ dehyph = {
   license = [ "lppl1" ];
 };
 dehyph-exptl = {
-  revision = 66401;
+  revision = 66390;
   stripPrefix = 0;
   deps = [
     "hyph-utf8"
     "hyphen-base"
   ];
   hasHyphens = true;
-  sha512.run = "278e3c30cd1f107075fec4cc4d9301e97a19500398d2c4e87cc9df43479db5abca70cd3fe9bde3c3ff7545d0674bfda799dcd4211137a54cca22851ef1f31ffa";
-  sha512.doc = "f4eaa2fec9f9df21cac411f000e9a797a12f264b335daeb4f8a00f2f43d903948f6ad52bc544acc1e5ea383c948979f5505bfddf97ce7a6a2ed7732d046ef5cf";
+  sha512.run = "2dd98977dc31445cd981dda46f289a93b4340406801db929c21e8d08300b17745cda637f6b40ccbd2a02a0ebafa980fd9c1591b8f7beffe3fa029bf8c82d2eee";
+  sha512.doc = "c28f49469c8a2bad8fbe34ca1a0df6441649edb96c19d9482fd2140068447d86716911534cff181fddcf784c8e80a20eb1c952b2b9c323df7725b46d950c7b4c";
   hasRunfiles = true;
   license = [ "mit" "lppl13c" ];
   version = "0.9";
@@ -14526,28 +14730,28 @@ democodetools = {
   version = "1.0.1beta";
 };
 denisbdoc = {
-  revision = 63589;
+  revision = 66137;
   stripPrefix = 0;
-  sha512.run = "e079ce92fc827ae1bc836dbae68c0f1cac81a68c2935258f8246e39bd46bcd06bb1b56e577c6514e262d7dc9f3351d1e783643a303f52d8d66995b6875e3dde3";
-  sha512.doc = "c64805de12c81f388ff5d1011f11c7ec01e7e906eac12d1dcf794bea37dc7c16c56cb94f0f8db8f734a0cd027659ebfda57737572cfd6e7ae732b8181ffef4ef";
-  sha512.source = "487ce4614e1ee0c519126bb5873ce0de39bec63e89c72cdbdbe6e557fcc345191baebb299cac7b4a5ef42b4d96d905764f9067ed88cf8c717d7bbbbee13a672f";
+  sha512.run = "43bbcb7f73c1ba704fef0754a4d79c99b45c99c7ff3b06f70db1c0c922734f9c3bc973841b6c1ffe6879324f935e936ab396aeb2d2fce1bce029b6b0379882d0";
+  sha512.doc = "4a0572e776d2b00d088bdcf5e65c94c15d644182a5ab8284a6b16e9ca795ad95ab89448954dfe5aeaacb986a012da0f1abccde7df35f4619a6ad5dc633facf96";
+  sha512.source = "f173f64219c4ab4194cbfb091273311da6963f09995fb2d751302c356613bee2bd4a874a35dbe1e99b995a5d50d9803025e8861947dedf77fa990a5f601f646f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.9.4";
 };
 derivative = {
-  revision = 63850;
+  revision = 68787;
   stripPrefix = 0;
-  sha512.run = "67e5c2a148105051ca882b70d2f3f9c63a06e2f34bb72b84b13bf225a7583bcf919c525890071e3ffe3bbaa0bbc616b8fc62ba050d1c910fceb161131a6fb3a9";
-  sha512.doc = "8e2986eda21c8688feaa0f659bd79a8f8f2931381f0dad7fbd055dbf98d8e8fb7c1724df8d2d081ae0ec45781c7eab10edf01535076d28830fef9aff5d4452f4";
+  sha512.run = "64a219eb707e54c1c57715243e4bb5c676d495eec5c0095887f33f30591b7e90a7278ce6401c649f1902ded58c9fc890a23f0611dc8780e9a7bb6bd55a728083";
+  sha512.doc = "3f660b6b8c0c1da3d7434f3a0ecf19c51a8618ad660ac4a6518ca67a4bbdb788b36a457a6f52c544618e814a3bf2b73a5c84590125f3e1d55cd95bda01f6b9e8";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.2";
+  version = "1.31";
 };
 detex = {
-  revision = 62387;
-  sha512.run = "27c94ef578afaf7fa3ca232f4a4a0e5167c69cf24a2c005c1d5a06830332b6a4aca8d0eb4450026d498e371d5c142bb71cd41de199b77f5963d88d612208e0ad";
-  sha512.doc = "f3339f5d93f073bdc2b6052f38c314a1f4284c60a5adc7813ee2cf7d5f609ce8c68b60cb2a0fc9571e26796ba2fc2660da137120751fb465ed723a800aac2cc8";
+  revision = 66186;
+  sha512.run = "e258d80d1509831132c4f70df81b8e93cfc9d92ee74c5d39e7f35bd4f71a3eb93fe3594afbd5ab0e33cf0b6f45c816506e32ca8f41427f3c3fe661f3086100d1";
+  sha512.doc = "3d5a3b371e007bda61441460479a208062fd0d477d1fc9ab9a6764c1969fd383acec9e336e8d0b16aab5606444f5d87335320e010657cf088e9caeb18d6dddf5";
   hasManpages = true;
   license = [ "free" ];
 };
@@ -14655,13 +14859,13 @@ dictsym = {
   license = [ "lppl13c" ];
 };
 diffcoeff = {
-  revision = 65676;
+  revision = 68838;
   stripPrefix = 0;
-  sha512.run = "3f6e304dbe15deee61f6a54f8d9c69a06bf1ef48e9a0583179bbf5afbaec8364fb3a974f47ab6d6f350c6ea7083095854109e1d4555e2395781e40774ce46f67";
-  sha512.doc = "c742e1e8679f3ebf58f2a189acb695af893231c922f5659d9c586f5c684020f30368cf41def55dc1537b25eb05a8b4d8de771d19129dc15df64cdab7b3986ca6";
+  sha512.run = "a40e95018d471504d5d0cfa2d6ed3c43bb7d4a749a97200b2ed682905d6b448cbb51b80d27d772673b747fdfa3c9b02515ffb32ee9e44efc67445bc4c8cba3ba";
+  sha512.doc = "65646cb4ad22f5755be51c5c8e1ff907803d9d3817b76da8146d81b7b42ea4c9af07710d55d861795a2e7f25f0adbf4f0c55bdce208a563c3ad34d32992c17ec";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "5.2";
+  version = "5.4";
 };
 digestif = {
   revision = 65223;
@@ -14848,14 +15052,14 @@ docbytex = {
   license = [ "free" ];
 };
 doclicense = {
-  revision = 63340;
+  revision = 68441;
   stripPrefix = 0;
-  sha512.run = "c46f4b7368ee52f68eae743fc4184c18a5ce4038976d0e4b810e4395f90c6651283cb345eee59de994973f0fdc93fda983438ff9690058065904cadc58aec8fa";
-  sha512.doc = "ae39c96a61f534f6a66e902d273816e55b48f1d12a2256a3c1fc2dbf0e6027543771ebd722fd4b6b575b7d632cbb3dcf56c58513694672de298d528527ec8c89";
-  sha512.source = "fab1662738be1aa2aeab240725df64a325a6cd17e77054e19432008914ccd380495aa9eb75b8b3ab72b5388bb0b0237fe23f17ce5976a05ac31e098381f49fdf";
+  sha512.run = "f312fe38842267c1a35ab506354717a0ffc3d4b2684769965b7b94ca5fd6b137d0b13fdc98943b1fe0f635bd673c331ccc53faf5667b75d1192d786972008dc3";
+  sha512.doc = "162af038ac645790412ea0e07771c39bbc3706ee3ccd6b8a496b166e7ef51e7802a225b00f1cceb0bdb0c8661ab51a79d4eb40a52c0348f1565fc83dc7efed9f";
+  sha512.source = "2002418b83eb7117195e60a6f0211a395febe6455b210068db7fe1d99738820ba111e14fd6f61bf53020a78ce1bb7d0bd12b57294cf5081d37d5002dcf641253";
   hasRunfiles = true;
   license = [ "cc0" "lppl13c" ];
-  version = "3.2.0";
+  version = "3.3.0";
 };
 docmfp = {
   revision = 15878;
@@ -14878,7 +15082,7 @@ docmute = {
   version = "1.4";
 };
 docshots = {
-  revision = 65141;
+  revision = 69410;
   stripPrefix = 0;
   deps = [
     "fancyvrb"
@@ -14887,18 +15091,18 @@ docshots = {
     "pgf"
     "pgf-blur"
   ];
-  sha512.run = "1d4ce9b3bd39d12bc4fc2630c3f9116e7030d623700e951fa99e5bd25fcb2965765d5bf32a709eb9ea2ebd39382ef1ef33205ddd24c6cd5e9b75136de0ff18c2";
-  sha512.doc = "7ab3122caf188621a0f5045b9d8dff1361b6577c6e80d6f6bf20a9e81703e7060936162356e4c34c44bea6f8611ae8819eafd8abf745a28346ce3d8b065596f8";
-  sha512.source = "1913dbf266953cd42e9a840e140b00fc785f12f610d0e5c84f70a1eb3bef06b8a4cd5c612c682a8c6ab2fb8ff355fe416cbbe70ef366e123f13419bcaaa1abbc";
+  sha512.run = "b25c70def3ad4e85aaa6f229362a7d4ca3b2cf20fc86c8682d3ddc36738868d3ba3f481634d0a9acf8366af102ba3a27b325f3282724f392e8e3d312abb60814";
+  sha512.doc = "81adc089c9572519c09a0e1472cf2aef9a52a51c84992c8a46fdf74bb81aa432417f58836eea621173c60ef9ef2367348643d161f661580d030c206fd88f478d";
+  sha512.source = "f7e7609765907f9ae15f000ab50afc4546660e01266431050fb16b59bb760ff154ca2efda4187452511c8cb4c47f253ac401225e33e261028ee5df2bbbf0687a";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.4.0";
+  version = "0.4.2";
 };
 docsurvey = {
-  revision = 61447;
+  revision = 69343;
   stripPrefix = 0;
-  sha512.run = "bfb93b2510b2b2e334e63468dbb4a4860d4a2166c36b5ce5ff706007a2af605ffb1b5b64c567fe1a3bc46a4fe420fef4020ce6bdc16a4a6d3396ef00dc69d076";
-  sha512.doc = "5f91a58cd18315c612860bcfcac7b85ffd402b02dfe669e6fae1efbbac5eaec683b3a286231f9db1cfe5ba967be67f08b1319dea72263f7bbcc84cfd913ffc1a";
+  sha512.run = "06d5844c96ba47de92459a20594f0f575e0ca2fb6471f7079274ff752a1ac631f0f0d2f4f76f01fd5b8fa8036fca57557b37fe8490571b49b46fca06ade0a4ed";
+  sha512.doc = "fbd223b5af17fd7e09d43f00d103ddd3e5730eee7fd86cb25a8d4568f00f0155a6aefa28d3addd507bc261ff57e99256f40b232781256744ff9634292b35fa87";
   license = [ "lppl13c" ];
 };
 doctools = {
@@ -15159,6 +15363,13 @@ dratex = {
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
+drawing-with-metapost = {
+  revision = 66846;
+  stripPrefix = 0;
+  sha512.run = "9e9deb95f1ca68c4f7b2a1e82bbc213da68e60bea65510e18dfa12528dbf65b20d06769c766009a1db49b9b7a649598f64a513957a4874f6c657ea0c1bc99901";
+  sha512.doc = "9d3ac79b2d4165a3e7fe1675826db2190b7bbdeaf8b14460a618ae909e29dcd9796aff70af98bae5307f67945434ab3a304d955ed5d56e17ea94a67f83f2ef09";
+  license = [ "opubl" ];
+};
 drawmatrix = {
   revision = 44471;
   stripPrefix = 0;
@@ -15224,13 +15435,13 @@ drv = {
   version = "0.97";
 };
 dsptricks = {
-  revision = 34724;
+  revision = 68753;
   stripPrefix = 0;
-  sha512.run = "282c1c1aa51c70a77b0b63190ee875668dab9fc2303e2a84ff0d79a7c9f78a2534e4752a32c093e72eda7e98aea220923f9d1703b5c94214f9590962187de194";
-  sha512.doc = "c45da3740ed14540cada0c75a98c19f5e3cd2b32811a4f1906e11c45a40e0e8d31bd706ff4afb18073690e4e285b7b44b858f53f33f050702526dbe0fc88f8b8";
+  sha512.run = "f51353329034141f52c38563f79de526b7b47de3435e14dcbf91f658a0f64a7b23075e8cef98d0f948ab54b57681c7d9fcec417b59871ff908c00e12d1711b6e";
+  sha512.doc = "0cfcb4e1094284ae954da49c1212bb793831861b57316f48fa93e20e92c8d35e1ee8e02bb1be8ecb52442dd80e3f0f921d024bdc8797a843ea0fcaad29759d01";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0";
+  version = "1.1";
 };
 dsserif = {
   revision = 60898;
@@ -15243,22 +15454,22 @@ dsserif = {
   version = "1.031";
 };
 dtk = {
-  revision = 65315;
+  revision = 68849;
   stripPrefix = 0;
-  sha512.run = "6ddebf4d05d5eed8d2569c19a113b2653d11689db9aa8b702c8445473dc102685ee0da967af3d44763e4514dfd2c7a3b9309223abff10da2aa37a9b5d9d58095";
-  sha512.doc = "debb6a9fda42df78143b6515e5efd189bba4be426aa71c3a653b51b02e0f40ead12267d6fa54b0e495bc30775427de98a0d1375d52d6013fb6e8acc526043675";
+  sha512.run = "fef5d494604434e725a79e2dc8165cc25bb01953e31bd64046af11ea6513314afc879c86dfb8aff814e25ea3d6eb3a64a4896c0e5992a87c44af3444eb1439c5";
+  sha512.doc = "5ef9df97097a35a4598ee8fd0fd5a506510479195a8dbb9c4bd221324b091f1d62da62a4f7ef8e422fc4a01ac494384882d24d102d1b7cd4b59d72f821e415a4";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.08n";
+  version = "2.10b";
 };
 dtk-bibliography = {
-  revision = 65444;
+  revision = 69155;
   stripPrefix = 0;
-  sha512.run = "417e5bbe812750ba4832939af9c9ed8bc6595049985554c53e49bf48a9cd66aae575cdfa3c49b6593a2116bc6aff44c771a17c91a2d233ba8550ab862db1ec97";
-  sha512.doc = "b48549663c4478a20339ad9c54a2d458b1472f231ae90a13a9cd35c0ff6ac6596ea8246ee97838bd462828a346082675294f843aa16f44f31d48b1ce2df16f5d";
+  sha512.run = "57a04ffa623863f4413aaf8c78d1d9e6e2e3eac1ae71fae768cfc103680b0191306175a5534fabed4ac33381b9d1b0b2884ec9180d4fb92c8db8c095689bcbf6";
+  sha512.doc = "c43357d8f3b490840ca62f7f495d53bf13a187362d7caef89caaafcc2196b64b88ab093ba86d55e209ee3fc5d1c3ded0b2db6b1fdbf70a74d87233f1e54c703a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2022-04";
+  version = "2023-04";
 };
 dtl = {
   revision = 62387;
@@ -15273,14 +15484,14 @@ dtl.binfiles = [
   "dv2dt"
 ];
 dtxdescribe = {
-  revision = 65445;
+  revision = 69348;
   stripPrefix = 0;
-  sha512.run = "cfae5c15bef8b3d75d31f970c47ccc63cb261820d4d19e55c48de6e13e0133e50d60713e2e691856b0fd803834190bd76fd13e47094b0e8f7a74901f882093dc";
-  sha512.doc = "6390904b004eec6a9293b31b8467bebd4910702c26a270de573ff9bd404715d27d6bf12ce7f039a213ff545ca2667fe6a568df967b79f8d9142c58d87ed708d6";
-  sha512.source = "88d81f7d55bf3e5bac2811b7f7f9c00f68de32f307e0fd7c6d2e4d6537caf46fc60f4d14b0c5fd46b94155d2884b48a8222ca4c86fa05dd316952c78e836ed93";
+  sha512.run = "1fb81c09edb0bea837328d7518f1d1aa8f810aba84c78a08e1047aa3bebcc79e4a61a587f4453ef5875efe0019ace6f8303ed78fcb74b378eed6d153590b7d1a";
+  sha512.doc = "6ee725f86a622df46e1191f15d42fcfc2cd19440d837df9146a1e751a7e1770db406be647c7e30572341db5ac7da8fde24685be385830bd8527b5fdf6d74f483";
+  sha512.source = "13ebb0a68a33e646f2b2ef3b6f2fb92127c94ffe8123ed53bcebe95c9a13e1bfb167d0bb457ba1235de95c353ce2fbdcf396aa4af21eed2a9072ba5e42501a96";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.07";
+  version = "1.08";
 };
 dtxgallery = {
   revision = 49504;
@@ -15384,9 +15595,9 @@ dvgloss = {
   version = "0.1";
 };
 dvi2tty = {
-  revision = 62387;
-  sha512.run = "1dd9556f0b16e6111c1d93ec18fcc850a92b94298587ebda093d27d2abfb0e2adfb30afa64f8cb2d6e651711f4818ff8a6e8d85007c30e0130278ce1ed6fcaa3";
-  sha512.doc = "396fefcb10e6f44b841ed0afb6604d9ffede1ec9f4bb180ddbe09cf3d2f9eb3989658d8976e3e3d446c186933f22d5579cc2ead2047fa56dc066b2aa65bb3670";
+  revision = 66186;
+  sha512.run = "1051c3448703fdd6395d78b0d8b7658197da6114fb7455b31502bad5c2eda24fd4eba2ceaba1f65d106f981bbc60caf9f3bd0db29403e898b293514d086bf91d";
+  sha512.doc = "3ee736f5fbf91472008a5c8613c0e629a9f76f61fee4c4491b67045ddaad7aa2f89a22937b172e058b072ae1a013478fdf5a9f68dd2e225e8a8e77c8e3b3a289";
   hasManpages = true;
   license = [ "gpl2" ];
   version = "6.0.0";
@@ -15396,9 +15607,9 @@ dvi2tty.binfiles = [
   "dvi2tty"
 ];
 dviasm = {
-  revision = 64430;
-  sha512.run = "bfdc888c7a69d103d9c4548ca0465223a4e16be51a5c36f4c7a9d1064a553f60e6fb5d197a6be72e2be076c5012d7d3c7f871e217777d0be0c0e4669c1602a6c";
-  sha512.doc = "c1be5541992450e6519c1768ea21d342c5e41fb4da6547828c89c79bd8abf77634ae76c3e5c06b608172234d117f5d5839600031dc4fb0cbbaa493d0bb1154ac";
+  revision = 68043;
+  sha512.run = "aa75c4d37cce8087658b66f8559cd31add027eaaf9b4fe4075f42f1bb4cbd30e57ca1125c8ae42852d17d51709b6c368bacc7146f16dc4f0d2ceb56b327dd824";
+  sha512.doc = "116a7b02005ced75ae3e712de7d66513ce7d6d3ae9ee4e6e94b347d6000b27bb58d4fc1cf76cec7f19fd7cdd316f42c02e8ad7b8e0f0ccf88d405e17ef2ff155";
   hasManpages = true;
   hasRunfiles = true;
   scriptExts = [
@@ -15410,9 +15621,9 @@ dviasm.binfiles = [
   "dviasm"
 ];
 dvicopy = {
-  revision = 62387;
-  sha512.run = "9932e2c5c2c3c0ddf4c874b81441d8ca740b851da75644bfe20d0a4bde8d8bd062829423680bc95b6b53c83ed05bcd3148330d273c1cd1c3ab93dc95ca2265ea";
-  sha512.doc = "e081e3971664c8322568481d87b5723bce54320c796f928dfd1f20f7e65eddaa2d9dad65ff2775ac6d5cccbc36a1ac72e3f33198c20008698fdbcad713638dd5";
+  revision = 66186;
+  sha512.run = "60f44492a3d1af9686de3118af37f1d054068527f50765e21773f76ec406b4ec0f419d6298dab6b5d33e2fb740bd740f2037f711e8993bf9d3ab8f611bebb2d0";
+  sha512.doc = "40dd53fe878937846f003d3b72b7d474c13ad07156e78679501d01c020380a3fcc450aee7a72c0155a950429c258b8fab253a7ce3043d58d88300d0c1037da56";
   hasManpages = true;
   license = [ "gpl1Only" ];
   version = "1.5";
@@ -15421,9 +15632,9 @@ dvicopy.binfiles = [
   "dvicopy"
 ];
 dvidvi = {
-  revision = 52851;
-  sha512.run = "d4589c7c034308547b4970104f6396ef24a15be22e034ac2f4f04a1004915c8d477e64e2c4b61927f43313b90b063602a4bcd45afb1bc33ee395e0b7caef202b";
-  sha512.doc = "865f4e96bc8ff13005350800014ede4c95671db1c45f35e37b153637c23834d34054e3aac1b6033c6a219f9f123563b1d0cc3093c901f67dba7e33e65ba81646";
+  revision = 65952;
+  sha512.run = "81c58f4e1352a8e5133de1ad86b6b37c47f9b0d29307354001693ebc4975c30808e349c73a477283a16df4219fd5702b733ecb5abe2043aff1d1b537b7fa6a3c";
+  sha512.doc = "b571021445b822e9824782ab35a0743ca23f69b809354dea6676c58209a451be5bf595641fbcb461211e6dec15e765bbfaf8164c0ce1ed4204ea72a2073ecb92";
   hasManpages = true;
   license = [ "free" ];
 };
@@ -15451,9 +15662,9 @@ dviinfox.binfiles = [
   "dviinfox"
 ];
 dviljk = {
-  revision = 52851;
-  sha512.run = "7f0fff6f850f22788981370dfe9759f8d1ac803f75e6355c582eca83ca3940f64e3c32c32881234e25d8bda59e47a4f236751c9464dc41f93c67c16cc55082ef";
-  sha512.doc = "82d28f1adfc368582a5b1d05e2e73ba99bd05d51f9daa972f5ca753905341ee1d61b9e15d402b3017bfdd78bd64c7c222794bbf76073517f96ea1b9d7a58cea6";
+  revision = 66186;
+  sha512.run = "0d34e837c0f67ac43dd8ef5bfb9a11d2821188ef8259f41b0cf9454bfa6641f956c21d63fe15fbd68dd59f89c1da820cab4ec5c4579fc0255a771c47010821cc";
+  sha512.doc = "4b5815d766a41eb74125269e297eb6f7d1626d68b3f2cf9d6c4f8734721e3c71b63e84e729c39fef41320e4f728888796e421bb5c7ea5ffe76cd549400d18d37";
   hasManpages = true;
   license = [ "gpl1Only" ];
 };
@@ -15466,9 +15677,9 @@ dviljk.binfiles = [
   "dvilj6"
 ];
 dviout-util = {
-  revision = 52851;
-  sha512.run = "a9445602ac5a3663920f8c7d428e833b0451c3e80203be57cc6fbdda5db5f7c89da75cf58e74d56c4ab9cd817fc9f080a056ebd045828a0d5b034108cda61bc5";
-  sha512.doc = "61f86a23314334d7faa4f1ae0760aea6c5e5f77754a6a9b1d5952f09e3e15d3dead73a9f72ccfe9b9d7a022654f8d2e1e6e3051dc12bff574b6f053cdbc9b598";
+  revision = 66186;
+  sha512.run = "684f5efd93c0c12a07b753f169f44e764b01e4994faa86df8361ce38c15675a0601f61bdfc9702508f66273ac8c69250db65fa0d10d3c544fb78fcc824d4ff3f";
+  sha512.doc = "d10e8c9343f9065499e2c06b5eecce4047730875ccee29d6a09d1608e2334f7310282cff765c88c7da8ed8a52816910c79f3fad58d118f047d04b4bb7ebf44ca";
   hasManpages = true;
 };
 dviout-util.binfiles = [
@@ -15476,13 +15687,13 @@ dviout-util.binfiles = [
   "dvispc"
 ];
 dvipdfmx = {
-  revision = 61101;
+  revision = 69127;
   deps = [
     "glyphlist"
   ];
   postactionScript = "tlpkg/tlpostcode/dvipdfmx.pl";
-  sha512.run = "6dd78f4b5cabb51c3bd9988fa46bf90a5a79b3d3293257a4c563a8a76a5a03eb167ce3ec0d4ce6ed05412a551eb201f2379a50a97ac5355ebe833f7b34cee4b4";
-  sha512.doc = "00dce9b36eefd1788bbe455b2e5104efd9afc8bd891aeafb2cd9bdee406eeb25ab520e42e614e9d2363eb6a7273232bc3c4805bacd82a22099c5ffc438e852cb";
+  sha512.run = "75703f600365c90379c5d009e00d35d2e514a76b2556c96c84fc2a717287441af419a26fc9ef087d111f2e77c7180f6371ca2ec33b66052ab63ca3d11f48e788";
+  sha512.doc = "d2fb71e116470d2d629613401f448ad9aa8cfdfa9ada68ed324061e4ac614efc4fd2c4ea2542c8fae32f476b92aafbabe4a5be648f28f16708c43958d7aa99fd";
   hasManpages = true;
   hasRunfiles = true;
   hasTlpkg = true;
@@ -15497,9 +15708,9 @@ dvipdfmx.binfiles = [
   "xdvipdfmx"
 ];
 dvipng = {
-  revision = 62517;
-  sha512.run = "d24be610a63a9df22ebe6f53891519ab77900611d1159dec5e97b27160f3552b4cbce42b575a036125d2b15910a72cb5e3793a3409c5d0f4b1df0c2433e828f8";
-  sha512.doc = "976ff6c9628fe85adca2287f04d76f2c1605f243e28b4d32cb1ef9a90d30dcae0d202e6d5156914c204fd42b0a66460755a89f7dbdeb9ec1ccf6010cfe8daf78";
+  revision = 66203;
+  sha512.run = "a1693423389d56570a3fa1ac1eb45bffdef5fa9bf26d738adae1ac2361fc9aa7985d4ed0908b5f8aa49e2425da9821989a61a3ac925ac4432c9caa49f66a95dc";
+  sha512.doc = "a4473f728047cdf06743520a5cd4c79d7aa41818c44291abf4781f04b87822b03fe5db9f42d489d7542ca259070f71a3f255507f3dc8fbe772e30da8cc88722e";
   hasManpages = true;
   hasInfo = true;
   license = [ "lgpl3" ];
@@ -15510,18 +15721,18 @@ dvipng.binfiles = [
   "dvipng"
 ];
 dvipos = {
-  revision = 52851;
-  sha512.run = "152cc45942bb1d241008ea0924f1e96e2329d6fd4228be42dc6dcb9eb28081bcb3d80e407e9fdf0560e93d095fd07351cf073f14d4a4c25eb984613fd9189826";
-  sha512.doc = "2bf3fd5bbd7b6e1fb8a263dd0e3deef358bead727df5de280342376225fd7366ff470b9c2fca8f763890d1047fe2c7a5b138ade1b5fcab383c8113e10f245199";
+  revision = 66186;
+  sha512.run = "9e949fb402facda9c30fa2f388b80f2cfc530670b33cbd78559e4449fa6004c5d4082e4fb895ea397a334a333e5d5ae1a4f66fde3885f0a9eb28c9d9ebbecd0a";
+  sha512.doc = "254a1db41636608a133e7807a8d4ea8ddd99ac646f35b66a43205ac7fdaf4a15c21eafbb85e23a182506e509895776d1fcbe63b3b8a7f197d577c6405ece5c44";
   hasManpages = true;
 };
 dvipos.binfiles = [
   "dvipos"
 ];
 dvips = {
-  revision = 62387;
-  sha512.run = "a680a4685d3cbb429ad9dada0d48098f7755253ad1d7c808731f0f4fb4c37971cb937a9fa68bcecd892de93cc35a8086b742c86338460585c2912f36d00ade67";
-  sha512.doc = "a6acb780a45663fb21976622d7b6c3ea8d4adf1fe405ee97cd7c4cf09fa49b59069ba72b2aa14b53d3ba631b37c5cbd979929adaa274a0bec8b1272d85e1cd43";
+  revision = 66203;
+  sha512.run = "fbaf1dd979ceed4f7146d8aebc31ba7d770a8389b4ac214086db5951c485a2a3e3a62b2772394c8053444dfb8de0d22b3501c2ee3ee1e4e7493a1df5a34cc275";
+  sha512.doc = "ac2518c20c26dcda42df79be79ed24e2c021af2084ede43f51a5589b1023c9c94a307bd0a4742880e2c89d7620b2889f3a675e30a449d699d15db98922b0da71";
   hasManpages = true;
   hasInfo = true;
   hasRunfiles = true;
@@ -15540,12 +15751,12 @@ dvipsconfig = {
   version = "1.6";
 };
 dvisvgm = {
-  revision = 66534;
-  sha512.run = "503ca116be0a87f2606c9e898a591dedaa7a078713e30673eae5dc748fa4c4f13ce8c81852c959e84c3c45766daa565222db59a66315b0238e716e762e19eb31";
-  sha512.doc = "faa5efd79a8cf665cc502825ea185e1abe8ce5e466b5bf485f90fc2a21a1df564ce7f9c91e6db42e67acbe78bbeb683dd9a94231044503c8082f68c33d9f8ec0";
+  revision = 68950;
+  sha512.run = "cab242a5b7fec4713015b2d3b57f36256ca9b10d606f4a11803d7c2beda9486a1839e69cf58248078d08a89a6e4513d0d4629901c828a1d154cc30f1f7059797";
+  sha512.doc = "fbd752b03b37d62e00e041104e547b1e862908f3ae74bcdffd17cb7bb74c6de3998ce8beaa32726f42aa31dfc1e4f9e85601a39b62f10d8c7381816d3c4c44db";
   hasManpages = true;
   license = [ "gpl3Plus" ];
-  version = "3.0.4";
+  version = "3.1.2";
 };
 dvisvgm.binfiles = [
   "dvisvgm"
@@ -15570,20 +15781,20 @@ dynblocks = {
   version = "0.2b";
 };
 dynkin-diagrams = {
-  revision = 58758;
+  revision = 67267;
   stripPrefix = 0;
-  sha512.run = "d415f924c580e97ec653f4bb76f911acf4a800f48a078d95d070aa5583dca46b52c1008a882b255d4728dacee8ef59acebde6dd84c05d4c1d9443c4db835bb52";
-  sha512.doc = "b31e83f3901040e27bc61c82cf687e5b98fe8b7c5b245506485fe9df7b14d9a65633bfeec30ade8168faa7262fef69a54b8848f473c02aed02c81182d2efe5c0";
+  sha512.run = "4c7d15e3e04cc562e1f4a401546223af6e53f47f8edcaab6e82bb84246bb6c72b1acc15437402b161a123d11c21ac350d01b33ef7c8d8b7bab6c8dcb9baf7723";
+  sha512.doc = "94d9a69e3603664d9f81da2887dfdcdb70d9318ecc13c0232da64cf23e6d6dbcd072807035771c519d58283ac40f306901db8699061305b3c97a3f7ee42ecf65";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.1415926535897932";
+  version = "3.1415926535897932384";
 };
 dyntree = {
-  revision = 15878;
+  revision = 67016;
   stripPrefix = 0;
-  sha512.run = "8f8d568cc708e62ae1217188acf3deef05d7bbacf1da04f38c1f5b08d4b2bd0ee465021c923ed314ed284dd2234dce5079b7918c12d3bab72ad5f91749bdfe4c";
-  sha512.doc = "fde82bf8b97840014737734fb57eec7c37b34ca0d5eeb1a66c27dab16d4a5f1c4a7f7c10fb9c8bb98f3ef56a15645da0ab66cdcb658f69ea32eb84625b25023a";
-  sha512.source = "57d76ba3ff2e85a18fad69126a87b02fecf6f994de63af530831d63a0405abbcfad5ff7b33ff0f13c257b85bea73788e72a4347337c7355a25b85c5e762c25dd";
+  sha512.run = "e8591951639020398e8f6bd892bd2d43217871fae4e94ecb09bc6005f1857858edb5b3b9330c5d08e8490598fd2f3d45bba4d99a9b33de464d0c5e6478399689";
+  sha512.doc = "c2b2368a88648efe795a633f00ac826fff3b53029f557a4c5eb7dadbe882f560c768754adbbac09347b6bf44ee3bf77ec4b5ad57e9d5726e2c51519e0d02814c";
+  sha512.source = "8df01c048b52cad5fa5862b16d16672eda36158936af1bd8254ef6b9574ecf84263f5f70a466f2846e653e1565e2f57f297c4b05c281c16ec72a4fd1e1eb8f25";
   hasRunfiles = true;
   license = [ "lgpl2" ];
   version = "1.0";
@@ -15641,15 +15852,27 @@ easy-todo = {
   license = [ "asl20" ];
 };
 easybook = {
-  revision = 64976;
+  revision = 69411;
   stripPrefix = 0;
-  sha512.run = "3dc7b87455bd9258ae67ef30d2abd098a3f86c931c7e572d0660c43a1b5832d4d3580066cb315afaed026a25c6edd49344598427d4540087d91d43e3e202e1e6";
-  sha512.doc = "008b2c7b9dc5b4b9733d93e7880591da70ba7a3b146fc954b3ad07b2586a1594e901829e33ad33557794670adf9a5a1ed3035a158ea41a7d217f613cd57a6856";
-  sha512.source = "43fdaa65f4371b73b2171d3c6ed8f583a39f224fbe456a2d9c492454e7f6b3c8adb9ff98588d8b859d981fc14fb5eef02ec8827d57225b393b977647d2070a49";
+  sha512.run = "384ca42bbf351ddcde2675f202c4fc8d8413b074415d55f80858e982d8cc487583b00618b8a9a0fa084305b0bc425438c5859a18e8b2127d7cc58976049148cb";
+  sha512.doc = "8a9ec5d3147540f5ebebc7c85a2c1413a86d96d5961d7dadf9f24179bdf546f7645dc157a7f1b3ec12daefe243dafec828380532e867958733fa554baea45dcf";
+  sha512.source = "aef472cd48badc742213b17cfad43b5c5b59b4bc185548a3332a733542301f6cb6f9de10b60d6b7d860f6e2e62c43b9338a14eb5683456563e38377d84bc08dd";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.71D";
+  version = "2024G";
 };
+easydtx = {
+  revision = 68514;
+  sha512.run = "f3297c900999197a5acbd73b931bffb21cc989296777b4884d62792d283490e46b06282ae5ce0cf3b0411690432dfa442a4f00c693f4d6677b9ced6037234914";
+  sha512.doc = "2f9fe3dd6b2ee2d326a05de9f38966f26ea5baa154c3d7fdecea4af944dd041858b9e66f593b1a246bc6a3fe7d44d64fe1ddcb72e2495917bf8f4ad38b6531c5";
+  hasManpages = true;
+  hasRunfiles = true;
+  license = [ "gpl3Plus" ];
+  version = "0.1.0";
+};
+easydtx.binfiles = [
+  "edtx2dtx"
+];
 easyfig = {
   revision = 64967;
   stripPrefix = 0;
@@ -15716,10 +15939,10 @@ ebezier = {
   version = "4";
 };
 ebgaramond = {
-  revision = 64343;
+  revision = 66604;
   stripPrefix = 0;
-  sha512.run = "13bfbc47037107eb093f5272cfb2018b1fd69bc374d8b1753ed2eb2565bc5d90960449cdb2dc2455231e590ff301e10b296140bef88189d1254eafa86e505e2d";
-  sha512.doc = "f5195c8ec803aba0dc52690f63dfc497ae5196fca7720e39181ae364826b417eb772926e7b859607e2b8408c25feef63c9f9ff17e5ccb575861dd6ce40aa8522";
+  sha512.run = "4a676d0016c5b3c4e513dca01e7e2f1b5bfbc061e111935380af4937bdfe2493927b226b28972c060ee0c09e7c27c6bf828ea09151eec0b8df67530f62e30aac";
+  sha512.doc = "82713ea36e1eeb1d2673a049d9ffcae97627406571e6e8e47fa6a6853511beb5a5eeef8a63fbe88e6c79539b1fbde880d0b2779f6f01f20eb7b1c7fc716104bc";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
 };
@@ -15733,9 +15956,9 @@ ebgaramond-maths = {
   version = "1.2";
 };
 ebong = {
-  revision = 55475;
-  sha512.run = "2553e46f91021de4fc9eda99ff45f8efe9b20b0663912b4339b22247d1bf7125f9be398661fe24fa2e3fae6a220025d47b05f4680601f7b4842d1111a6128d8c";
-  sha512.doc = "22d20c89883c6cbb95f3fbc3da3f4c5526c9c22b15ec35828bb03a1edf068573de0b35187a893c8356b50fd59c93ce4231f02ac4f15de4071e6ced73b9e44a57";
+  revision = 67933;
+  sha512.run = "c38185b31613af4d6b27ffb5442cd404c1eb05669605a2140db85ae3074a3a7739c3e375e3cc16736f9c2889224f33f685d503b3908f4009fa308be7737aa499";
+  sha512.doc = "a3337ca9bfe756672a66554b88feb59a49f66ecd7d1aec3702d74f29bc53ac1052394bda679a4cb4aa7509c5eb712938ed943a28c6f56a749c926b8d566eecf2";
   hasRunfiles = true;
   scriptExts = [
     "py"
@@ -15839,13 +16062,13 @@ ecobiblatex = {
   version = "1.0";
 };
 econ-bst = {
-  revision = 61499;
+  revision = 68761;
   stripPrefix = 0;
-  sha512.run = "f236b3a15da35eb09e878d56f6d7c4cd632b71f262b9c470c3c64dd96aa43d305a44400d93786b8bc7f3a59773812c4ea03d6e8901cd1e7e469aa36e948bfa26";
-  sha512.doc = "60761364032deb253bb69aaa13fc10d6e8ec2747fc6af77285cb5fd53f250465d1e461110ae221050fba8150a5b1b5db9d4879689df00a33f9c8106e3e385f4a";
+  sha512.run = "e46ee69626bcf1fbb051d66572e1335496bf7981023540707cd267624798d4b4e75022cd85e0bfee05a227cb20b65c3b70053a4262b662269f905ee89569d2f8";
+  sha512.doc = "dfda5046d25922e563df6deb93a9d4402f75c883a8b449f70430c7ab7465e8d8cc392b585e5aead7fe499ed9143d5928bb556ad7ab4c563d54be11270cf8cdb7";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.1.1";
+  version = "3.2";
 };
 econlipsum = {
   revision = 58390;
@@ -15988,6 +16211,15 @@ egameps = {
   license = [ "lppl13c" ];
   version = "1.1";
 };
+egpeirce = {
+  revision = 66924;
+  stripPrefix = 0;
+  sha512.run = "fb91855cd9264b72df852d4adc5d369b26efc5305c032120013d6cb18e99a94c8123cc7c9a4cad86ef3144609f0a34f3645597c91aabaf165a51b903b24c9d11";
+  sha512.doc = "c78830f07e8e3caf99f51b53783112fbc7b6ada78ecc284a53e90c532331ce9e4430540e5cffed679b447b9e23cd5bb25c4d437d07a127e65e142322cabd65fa";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0.0";
+};
 egplot = {
   revision = 20617;
   stripPrefix = 0;
@@ -16033,13 +16265,13 @@ eijkhout = {
   license = [ "free" ];
 };
 einfart = {
-  revision = 65475;
+  revision = 68376;
   stripPrefix = 0;
   deps = [
     "minimalist"
   ];
-  sha512.run = "b9a38014bc6169a750e4880048792f8c4d2e1904528207214254bbdbdd3cf140c1e3bb6bc8974001c32edc5f93c5a9a07b7d839d578cabd9d4ba3f5e5ce4c374";
-  sha512.doc = "30d509c34925f252d55e47255c7deff36d1b922545599fa35fdc227a4a5dc5588649486d10d083a4602dbcc99a1fe953ea66d46aa6b566399334b33b45ff57df";
+  sha512.run = "bdd96c338f02a27d430db81f665dba86c112266577b2b62c0009637324b5560dcc48b30c3f88a45217ba8a094c342b8ccebce54941c61eb0d28c37e966d9e861";
+  sha512.doc = "8727d905963cfb0955216f8d42c7a27404db7ea188e008f654e130359fbde9b33adedd0e9c723ff4fbca49e2ffbae3f457aae3e5864715223c80ac55ab19bca9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -16199,14 +16431,23 @@ elsarticle = {
   license = [ "lppl12" ];
   version = "3.3";
 };
+elteiktdk = {
+  revision = 66821;
+  stripPrefix = 0;
+  sha512.run = "01ad0912bd93cb849013665046de7ec3773d90860b92c98201a7b075799cf6adcaad6f820abe95520e848f088c85b71afa78e49067da8a1abdea093de4476935";
+  sha512.doc = "5d0fef08a196fd796fcd3ea74f5385b83b361c8e7f1bc2bb4a5f663a5d5a86820b7bea137790a973152e5f475008423ddc55f18613da3bc48be211bb79e3dc9a";
+  hasRunfiles = true;
+  license = [ "mit" ];
+  version = "2.0";
+};
 elteikthesis = {
-  revision = 63186;
+  revision = 66820;
   stripPrefix = 0;
-  sha512.run = "0cac3096da5ad422ddd6a9ecd72234036ef5f73279f614ea971fda8141e745e15170c9667153a11cc87e5d79d929786566561d6b2cd4d135e3dca808077ae2e0";
-  sha512.doc = "4f8b437db0b5842ddeaf409fc480fc52580d78b9274fece82e762d40279e39aa8b8424e9c80103a88abfaa72f3136b07044ac121e5a466b27e5e7331bf6bd7c0";
+  sha512.run = "e533636f732fead1525c3264f96f69e19074728955772c92c381dedc42e0ed5b14bbdccfe5f9663a8a54a530f52d0c8e2fea556778751214cd626372004872cf";
+  sha512.doc = "a3f8102e22a12d0a970e881d3937cde9a4f71550132067ef844fd72e35c6210dd6feef56d236837a2183fa5d749287dc3c4db4cad00dd4c09cbe47fd431a7571";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "2.3";
+  version = "2.3.1";
 };
 eltex = {
   revision = 15878;
@@ -16293,6 +16534,16 @@ emisa = {
   license = [ "lppl13c" ];
   version = "2.3.0";
 };
+emo = {
+  revision = 66944;
+  stripPrefix = 0;
+  sha512.run = "633c92dde16b5170d5ea27fbb5e72e865300abf27054cd167652ebe598b90a8788d129c950e5a230f75201648b25aaacfb6b47aa44e994d05549c31a82600da5";
+  sha512.doc = "e60b38c75c23bb4ec5d453d76fd2c815abe712d1c602eac6897eb1ec9b51f1d6a964fd5aae5c7ecf17956eb9d39104708e887b0efab0830b72b9ad37c8c79af2";
+  sha512.source = "79cdc96d441c82b4f59b6f2bec0fb82b047d1b9540b0f29946c2d41f355118e3a9cdad2da2463ea4c9a0e26ca832a98db5b88f4445baf6ac41abff8b443ad1d5";
+  hasRunfiles = true;
+  license = [ "lppl13c" "asl20" "free" "ofl" ];
+  version = "0.4";
+};
 emoji = {
   revision = 59961;
   stripPrefix = 0;
@@ -16516,8 +16767,7 @@ envlab = {
   version = "1.2";
 };
 eolang = {
-  revision = 66283;
-  stripPrefix = 0;
+  revision = 69391;
   deps = [
     "amsfonts"
     "amsmath"
@@ -16527,13 +16777,17 @@ eolang = {
     "pgfopts"
     "stmaryrd"
   ];
-  sha512.run = "992fa67344e812c7eeea80ce93f1bc7327bb0eb1782e65fbc8a31b2dbab33059532a2ee6445ee5768e15cf5ee7945123d5e3eaa527e72dbeb1a2a16afc2ecabd";
-  sha512.doc = "62a7b5a9a922649a035ffbad8dff10e2e1b97e3a3ebaf94b222142d94b9d20106d492b1fc1a2f349de1fa782b3bac1aee5a9ad3d563f51fbbf46d8037a81e07c";
-  sha512.source = "652e1a38b1639805a4c980585c8424cf3f501e9a22fbaf52738b21b8363741d013474158f8866334e335aa839c519070595d318421cf29f4b60756e11dea58d6";
+  sha512.run = "10c7dc6dd0b824fb2ab22318b6ecadb592abb552b4a6fa58fb89612add290928b625f9f6d6ac3bd5b1202662545e51bbe0d8b154025135f92c7999341876b976";
+  sha512.doc = "6802a32f5abf01bdf32bdb7299e82ae2740e8323bc1ce0fb6dd5d38c87146ac52abd4fda69bf28dfb8a10ed09223d4c3f8d320510131c5a81f5262f2e81af9fc";
+  hasManpages = true;
+  sha512.source = "97ab60d5e21fdac9aca815b6acacc31fc534474fe6037256e9b18ce4cae3830ad39257f593a95ebaf35018109286140c46769990f60f659aaa78490bfe717cfc";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.12.1";
+  version = "0.18.0";
 };
+eolang.binfiles = [
+  "eolang"
+];
 epigrafica = {
   revision = 17210;
   stripPrefix = 0;
@@ -16667,9 +16921,9 @@ epslatex-fr = {
   license = [ "gpl1Only" ];
 };
 epspdf = {
-  revision = 66119;
-  sha512.run = "f155834a9636991c8ae752f61f70bdf22ab3172270c85aebb05462cf26e44f6e81fb83842c8515bfa54e632a3beab8bb91cccf2b5eef459d77738443c77df56d";
-  sha512.doc = "5d06f8a4ef295e0fac8cd1dc73ff98e266dcf4394ed76223c92d20758fa8195ef5bea9bde49b1a247acfdf67aa7717092f978b55fc4fbc8665922487d57985d6";
+  revision = 66115;
+  sha512.run = "3dc467713b1d90b96a8fd3903effe209fe15be82463a1ef4693e29e7d145220936bed0e75dd3824a1e520f778ab9b96fe29389037e14690352db136e642f6a2c";
+  sha512.doc = "ee5687a3add6773e127a1e83c91683b5c6ea5e37dd98ec5f5558a32015d292c31f1a456c985ee5d2e4201c0a47324dbac4a7129529236438676f587985bca64a";
   hasInfo = true;
   hasRunfiles = true;
   scriptExts = [
@@ -16693,13 +16947,13 @@ epspdfconversion = {
   version = "0.61";
 };
 epstopdf = {
-  revision = 66465;
-  sha512.run = "7640431f06879ebf5f557ec298f57dbedfa8f19d332cd05302bc09b69a0eb676f89597fab7f2d7d6358d023bcd3888e6007944f3cf66a07c6a852fe5b064c800";
-  sha512.doc = "eb66e71ad2ef95d603f48bc70a997fe17579e57c9e0114dc33dfa30207f3babc28989f59f8cab2299ec03d1b3665cecf53e3e07750539906d4a2c374c3424d49";
+  revision = 68301;
+  sha512.run = "fcba30848cb2a5bfb12cf89e1ee6d54bb89e7516789738e1fc7d9b1d47c403ff6ef1d679c9fed214669e8d06fc5e76eec2af0ef513d2649cd1d44b535287455b";
+  sha512.doc = "9d9068ce64a2e14ad72de11c6a608bf9379240c0fab77a7bd29fbf2774515c5eff12b375a592d3ad6c8accb06021309768c3965284d18b89fb0a57487e2dba06";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "free" ];
-  version = "2.31";
+  version = "2.33";
 };
 epstopdf-pkg = {
   revision = 53546;
@@ -16817,13 +17071,13 @@ erewhon = {
   version = "1.12";
 };
 erewhon-math = {
-  revision = 65684;
+  revision = 68990;
   stripPrefix = 0;
-  sha512.run = "b836d20c767218c485853f4f83516bfebe97d54adf37f031fd5ca04813b5cbdf40ca7586bb0725d7c893475fbf849d8183fd5f22ef9bfbd5a4f22642e27e2f88";
-  sha512.doc = "8247747d74e7ead936ab648358f6c52a539777828fb9fb157bfe22cca3191f467709a4a6264a3d3c55a0731292ec010bcf71acdb542e95998fe8f521d4364bbb";
+  sha512.run = "30e5463f57ce8562c94cd6ed302c9b9bf5624d34a6f5b2374d691afc097edcaca779d45d1f6a22747c2c8d920f6f45d9c6f5f8a3d09123b27188ba84c52caa18";
+  sha512.doc = "193b4ff5e877b3f8abde9e81abe208ff1545e77e81b7d78a4d19a858e4722177ac8fe0453bcef672c348c7703fe1c53891e4a520348d11debb43102fd2450864";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
-  version = "0.56";
+  version = "0.64";
 };
 errata = {
   revision = 42428;
@@ -16854,13 +17108,13 @@ es-tex-faq = {
   version = "1.97";
 };
 esami = {
-  revision = 61596;
+  revision = 67707;
   stripPrefix = 0;
-  sha512.run = "2e0c1bd441ccb4376d1dda69f32cff55bf4d043315dd2c004bf6bebacdc510ddc9a1347bcadbfb96dea7be94b6d59ee050746afb04f50196dd7c99937b7e8505";
-  sha512.doc = "6bc50f4083cc401278a526c44a76e5a9569d0cbb7280d38270e95676fa359c08a25779709576c1532ec9296457d970d2abd82eeb78b2ac4923caad9559da77ed";
+  sha512.run = "e5e2656b1f1dcb224652ada214871004828ac04c2ad316250e4ce1ae54f509df5607248eadcb018308ad2eb14ea761224962b751c7998b935540b4de516d4e1c";
+  sha512.doc = "7eda39cb0372f0f500b05196d526a215efddc58aadd1ee6c66504f73129936fbffc65d80183662de665b6fd54d4a9eeb5bdb2c7d5e11ff645c712ca6d712fc18";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.7";
+  version = "2.8";
 };
 esdiff = {
   revision = 21385;
@@ -16940,14 +17194,14 @@ eskdx = {
   version = "0.98";
 };
 eso-pic = {
-  revision = 56658;
+  revision = 67001;
   stripPrefix = 0;
-  sha512.run = "d4020b6d7f1ed44ecfc11938d604595e48dc32a24e2e67742016fbc2022f19ab63c759ec03030d7d3a996cc00f7a08ce8cb1354d0e9234f116080d732e4dc5e8";
-  sha512.doc = "96fcdb612c8473fffe672a6c443c120b2cc8dafec5b43de132cd8f758d85bb504ea14285af121921afbaafea7c6df99e32f6c50101d1d76900b1aeba38c3010a";
-  sha512.source = "86655acc2d9d11084dea3791a171b01e18715cce77b2300220764eba88d4a049a2a6bef6ff7bc1b90fdf337379be065a2d998aa32e42a0dd04b21f0293d1c14b";
+  sha512.run = "ee2a5c75fb02f94feabff9107d8e183cb3ce2dc7d38f8c82b2748a67718286a824e839443a9cf00edc142148271c83ae08017f2d5b8e6bc01faf50455187e75e";
+  sha512.doc = "ed03cbb8e57d28abbf3260c4a97c10833c89a603e219882920ed95fc2eab404c461a9c89b21772757a37245783c3ee10743f7ed248d4915d04a0619508469095";
+  sha512.source = "988e2f00cec99ab76b95bbb1a64a47bd11a3bc258bf04fb26db8825f381922d6d4db5f4059e09d9969c6a00926a8f6b4b235be82027368812fce493f5f16854b";
   hasRunfiles = true;
   license = [ "lppl12" ];
-  version = "3.0a";
+  version = "3.0c";
 };
 esrelation = {
   revision = 37236;
@@ -16998,13 +17252,13 @@ etaremune = {
   version = "1.2";
 };
 etbb = {
-  revision = 61872;
+  revision = 69098;
   stripPrefix = 0;
-  sha512.run = "986a063266a6081571e9a9db60674f1cc795f15b32eaa954214b4620b29cb43043b6ba6cdc9cb02f20f809a65939dcfb157590bfcf867d999299ae34520f9f8b";
-  sha512.doc = "1278c7281a247416f4439b9f034d2acab7bd03e47c63038d8a4ac12793968e2508cf562940d0a0b510abc9ceec3517dcfb277cc365c9d3998797237610936613";
+  sha512.run = "e034a9a750043f459b8682229bf01c08b341b4494fd6fc6669e1065652ae9154e0eef74038f1e5f16c2d57390ebfa70056198d563f3e454ee3e4806971a707d5";
+  sha512.doc = "cc4ebfcb831cdd9f02c93248d5083b81a69c59163fec85d469a17841607affb51310858b022ea819055c6bdade821d330599c97838ab9f92de7b8fa4d8f8f0a8";
   hasRunfiles = true;
   license = [ "mit" "lppl13c" ];
-  version = "1.056";
+  version = "1.057";
 };
 etdipa = {
   revision = 36354;
@@ -17015,10 +17269,10 @@ etdipa = {
   version = "2.6";
 };
 etex = {
-  revision = 56291;
+  revision = 66203;
   stripPrefix = 0;
-  sha512.run = "662338c145e84577ee49bd7d1941ade688d07ab8382faec25d6f45891953554e85ab4d531164e58db97071a7950c31b36f9eec8700ad4b43dffef30217f0fd89";
-  sha512.doc = "d7c7cb6c0a8c2056be906761c7f0173c7ec28aa4e910d9546aa75aea79f8a2aedef06d708710135d3f557586990fefd73086b4f11b8b7642a1cbaedde91b1b8b";
+  sha512.run = "419c85187d6832c9624c70936b3ad879987f665e54bf1fb9a7ddeb1096d09677693987b187e8d60691235d721a1b995fbda36351ce754b9c6a2a44bd015c0ac3";
+  sha512.doc = "ae5b1f4d0b7746e294697567da95a400ada069223e497d4ff906d13e4515e879d85532675886ef0d14564604163659c3d6715ff00ff29fa06fd876eed9cf60b6";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "knuth" ];
@@ -17081,14 +17335,14 @@ etl = {
   version = "0.3";
 };
 etoc = {
-  revision = 66351;
+  revision = 69343;
   stripPrefix = 0;
-  sha512.run = "09d7dfaff6ef2ecb45d65603fcfab0e4fa7810a91d8b27faf313167b763979dbe6ef14ab8fe75c22f978ad5e4ec32240eefe58ed13a85a7c186b5183de7163df";
-  sha512.doc = "046215c38ee4006e519d23ea58feca30b00fb3961f713ac49e0b5743af775d4379c9642d019a0e537874902ad6f0a101d5152365ec5d283a2411ea9a024d1161";
-  sha512.source = "3885e247d5872070c6197e3875e716d9c6bcec91656348ec06678c5def05f02add7440ae253df1ec940cb5205e7bc6eba398ac4b1b312b0da7a7b7f705b2ae80";
+  sha512.run = "ee9e46861d53c0cf3f0807f55a78b2e9c24ed6d5b37037b87f162a297421548561728dbe268927e7155a16da256e61b24c74ee9b1c18addbca937b8c85ce21e9";
+  sha512.doc = "693a6589f33a93e9086342d093b8801235d9e7d8e1729400e4e1069d0bd9457bf8b96c0a946110f12e2cf6ae646dfea81fcb9a795724558f73e53bb87b300957";
+  sha512.source = "0311468458efe4ba2b12bb0917dcc4bc763a1f7e1e6f2621843358afea9edc5a96373f5beb74224df33be1276b36cf53f7d45fd7183574acc38057b31c51f01a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.2";
+  version = "1.2d";
 };
 etoolbox = {
   revision = 56554;
@@ -17107,6 +17361,15 @@ etoolbox-de = {
   license = [ "lppl13c" ];
   version = "1";
 };
+etoolbox-generic = {
+  revision = 68513;
+  stripPrefix = 0;
+  sha512.run = "12bb7835b59a33026a0acff3c8f8204bf9b159fa84538332ebd7e4ce7116f3ab0dcdfda075555e595c050dcf96525a67f13ab33757df5e55e21b62c3d08488cf";
+  sha512.doc = "f877ad6a682abe82d84bbd1e9bd2870d80d5b79a63ef150f0eb4cc9abe0cf07c485b59d55281709027d705843bb7da33cff2eac6d382885ba806068a3a651c7a";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "2.5k";
+};
 etsvthor = {
   revision = 48186;
   stripPrefix = 0;
@@ -17117,14 +17380,14 @@ etsvthor = {
   version = "1.0";
 };
 euclideangeometry = {
-  revision = 60697;
+  revision = 67608;
   stripPrefix = 0;
-  sha512.run = "cbb755602a75397494bf745c62ef1a1f9bb0e0a1635a20e9afb839a0e02c7b2041aa1b8364c8f8c17ca5be1d296831a8444f67d74ab8ce415583d7ddf81f9de4";
-  sha512.doc = "2507ea02223d4da14b79e3343f765f65259efe3b6a2558348cf1d2514d0ced1e1e631b84d9dd0b178b3faba455f5bb292b6d16fc9fa9f21e0599d272eaca7f1d";
-  sha512.source = "db799a444094b0e0f708cfa7c4d5ec0cc52a1652254bd28be4e8b8e8325d6aad3ff6bde84d0378ad43abe9d008515205def78657ea7b196aa23010cec46d8f23";
+  sha512.run = "8aaf01108b5d96000d909e3d041a7e9c00cfa85043b25fcf4029238f2570330b2402a2faa4f63f80ed84d5dbd3c12cd4690668714ca1bd75c14673b2828619e4";
+  sha512.doc = "21d80f3152ecf31c62d203b77ec42c183e2a6058faa173163fe456d521e89cc514f83b0ad60684f2b29c7952428670afccda79372bbea1727d797dc78de04bf0";
+  sha512.source = "e48b5ced844b3ad25f11c6afc93fbf5bde4693d9977106ab175c369bfda583c0725aa77185458a88d2e38797b31ff074a48999774ee9ab8cc76480684a815f77";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.2.1";
+  version = "0.2.2";
 };
 euenc = {
   revision = 19795;
@@ -17167,13 +17430,13 @@ euler = {
   version = "2.5";
 };
 euler-math = {
-  revision = 65685;
+  revision = 68991;
   stripPrefix = 0;
-  sha512.run = "912d06b33ec56da0103fe7a13ba2f3e95b602842d83caf6d4fee6a55fd47f7134f70b7bf7b07736f531836378a9dd60eedd7a0297de19388b0f6ea997a140464";
-  sha512.doc = "c197e59cbd9035e915649f99605f9165c7eac55143a96b942e43a718d7237aae14db3db3afcff0b05d39651a3d81a544259d2d435ccc8895be9e831e29e18c36";
+  sha512.run = "b248ed589be13fa10210052b13c6386f4544e5cce4327902a3e2ab3b5c2a58a611393c1ecad4f72a1d4a4302b7677ff483a42173645ab3462109f9c25fbadd8f";
+  sha512.doc = "620cbbd6eac6adf53bf9ba95bafaeeffcce2f34d6a94d45a4869b328c237a3ae59f18d05c518861d56859f3f31edf16f191f28fd122ad4c456fb5301c68be96e";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
-  version = "0.31";
+  version = "0.51";
 };
 eulerpx = {
   revision = 63967;
@@ -17245,13 +17508,14 @@ euxm = {
   hasRunfiles = true;
 };
 evangelion-jfm = {
-  revision = 65824;
+  revision = 68059;
   stripPrefix = 0;
-  sha512.run = "8f65c7a0bb9731cfa5294015fef8936a83e5cec017162997aac76cbaba1ca215189402f3c8387fc55b569395f6c7b8289a6bdbd7cde235d89484722ea257a2dc";
-  sha512.doc = "2d2d92b7189c69ce30b5ca00900a135fdacff50fb9bc5ef61adb879bf744ea52b3985f948b8c8582169acf577034790436ab606f947c943b2fd5ddadc495bf13";
+  sha512.run = "5839d7899e8dd8a5fcae792fe40e234fcfeeca9a19bec8d2e8ec7be0217a73fbd58066f6d094e37b36ab9501d53eafed7f3220ee1ebb37ce767c8dd3868708f8";
+  sha512.doc = "65447d983cd4a2b112966f8bc9de7f9a7eb2c8f38a9266db5a416219ae8b817f82f62fdc79bddcb2bfe3a67c84c6097975f178bce664e7ac23e2f29363c3df7c";
+  sha512.source = "8f31d019c8db0d9c817e5579ee9e3a31b936e91d0270eccb52ee6bfa544d5aedf8d0bb0d4af5a7aaaf3366d338ee0cc47647e211738d956857f57f28770e08bd";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "1.0.0_b";
+  version = "1.0.5_b";
 };
 everyhook = {
   revision = 35675;
@@ -17294,13 +17558,13 @@ everyshi = {
   version = "4.00";
 };
 exam = {
-  revision = 64134;
+  revision = 67600;
   stripPrefix = 0;
-  sha512.run = "cb32b9df4d85c1073d5fb7304bcbb2266f8f63006417bfcce81c8ecc6d401a31a5fd3c9fa3031014576f80cc4f82b99b398418c20353db6bf6f74de025eca4e9";
-  sha512.doc = "a916fc60c847df4f2e275a36f1d298da8da8fc3f248b2f1b9c06f184611d2e52ce5b417c7d9e8dec319c382ce9cda76000c7482d6ea68b204e214899133a7793";
+  sha512.run = "99621f442f2a36e661f98e2722776e2e9dc394abc39cd20d45bb6bcff3ed362a942dc79d386ebf45efe053fc6abe2524d95fc85c4c766d241385970fa00e5f65";
+  sha512.doc = "abcc7ead3c7d4847537476969bb708f61430940e7572e078e26baaeb6f2493309dcb996bac0796870825d4badb7bcabc81fc49aa7f4e71c0c816fd7e1ec875a3";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.7";
+  version = "2.704";
 };
 exam-lite = {
   revision = 65754;
@@ -17330,13 +17594,13 @@ exam-randomizechoices = {
   version = "0.2";
 };
 exam-zh = {
-  revision = 64434;
+  revision = 67505;
   stripPrefix = 0;
-  sha512.run = "72932cbe9de89515f1c50a37c7b027ad3bb99c7495712b145f4e642e99ee732ce5663604175db2966baaa04104e7112881640dde766102ae8b05809ca7d47397";
-  sha512.doc = "26c307026e5bc483d3e978a1e0e75ad5954bdab7f85ee4932df2b201f7d207dfe43658e544ed8d8d89aa0a76df8f6ec6e8d9ede0ec39b956f33ebae9fb66e9c5";
+  sha512.run = "06aad5aaab885a208b6fe999b595799c2ebf99998f1e341a52f244daf0e4e2bf323f27b4888996755ac64738a70468bbba94cdec94ff8b76998299ea468dfc87";
+  sha512.doc = "076c183310db5094b07c1e9e642a4dfa3e3ce9639a53d0b62bf83377e8ab62bf4b232a0d3446afcf828e9ed0f81be14d3ff95963254c07d2bf0a5ca8f2818891";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1.20";
+  version = "0.1.27";
 };
 examdesign = {
   revision = 15878;
@@ -17364,6 +17628,16 @@ examplep = {
   license = [ "gpl1Only" ];
   version = "0.04";
 };
+examz = {
+  revision = 67303;
+  stripPrefix = 0;
+  sha512.run = "7394aaadd38993f44b63409c28517af05f9875840d094fa4467e8bfcbf1be4af41327683264ad81107f2f84f024fd683a62fe32c04d9f61ee0532b100fec93f5";
+  sha512.doc = "400eb0b85928fdb12e1afc58036f6cefadc301ae4a3e659d1cd1f2fe122231729cafbab7a05910cb47d969839041ea240df26e510b43a6728e2d1794271442e9";
+  sha512.source = "df30d1ca746c4c4efaef640884ea93eb3d97288addc5571db4ae76454ec26e2b57df5e401314b9628454774c8d29b4e69b2a2e6391c30da2c29a7b7330e670ea";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0.0";
+};
 exceltex = {
   revision = 26313;
   sha512.run = "ef8495b4ef6937af022951044652ea1fb1dcd3f65961408e84a52f9053db8f4fde6703f18833ee9cd002bc058f01813ddf765f575200211563d6e16a956d3613";
@@ -17423,14 +17697,14 @@ exercises = {
   version = "1.1";
 };
 exesheet = {
-  revision = 65577;
+  revision = 69252;
   stripPrefix = 0;
-  sha512.run = "955667020291c3ca7417689606734e0d7cf0b8720e704271e46a2e466d8d48c37dee7a675a3dcf2b52b90b87901a5f65294664499b11fee94f0ed2689402bc25";
-  sha512.doc = "e792d34696ad92f186977672ae7bfdf80fab06c53c30e572359ec6402e1f0190484af52af4525f3414bed81d8ab57bccb3cf28066ff5c57a27ff3404ae0d098c";
-  sha512.source = "de1b8dc1f333dc693b240139d3379fc57f5fead1cc90b3a3bb96bec1a5e19a7519df5bd30b15ff9f1458e651dd36193e100e327e19eca8848af4dc8a0f1191cf";
+  sha512.run = "c659dfcfb0519983d4b45bfd409a155b1fec79332466108f7dc7535b5141baa8c1f48feb7929849e02077d76df15b245b60f6840c1ecc3c4d253aaf218af7422";
+  sha512.doc = "3e10ac55ce9878fe68cb5b34223b8c45f5a8edda7d527efd0cfa2c40cd8fe32582c507aa03b50afd0c7a28a251786ac5cee4a9612789243993db2cc656c77780";
+  sha512.source = "fe8d5b47bce3c0336ac7c0edbfc0d27580712d72b108f612dac4cb0957782b8d202244c84a205fc1731b667ec4986df8338cda346ddfae33f19aac03fb83516e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.0";
+  version = "2.5";
 };
 exframe = {
   revision = 53911;
@@ -17472,14 +17746,23 @@ expex = {
   version = "5.1b";
 };
 expex-acro = {
-  revision = 63319;
+  revision = 68046;
   stripPrefix = 0;
-  sha512.run = "e009e9b354c3882416ec28c65d0a4ed48e269ba72ab30c56882eec49fa3a56d3423b0622b6e0af67695dc6069a5e292af4caade54f176e0d84c60b1e9b669e59";
-  sha512.doc = "c77aae7ef02df11f7a2958bdc7b2b437709d0072005549bdd09c25e11c6cf6eb9761dba6566daa479c1d395c1f8255ed5120fc11fdbef9fe948632391bfdd1dc";
-  sha512.source = "329e569dc128341b896fe43b3ff7354fe86c97157318841fb1e30b39962d70caf27451f68e1b956a6a8851310843c0071d70fecb423adac7071a7d124843707f";
+  sha512.run = "303eec6a2ff399771eb33ecaeaf85fa4a95dcd6bfcaf2a99d702dd148c90b99dcb6ec292170406e497839d5c64ca1a5a6faa20e6cd64a497eae7900b2f28f098";
+  sha512.doc = "cb24be981f9ef838be718f44f2b69ee03f81bdd0c6bb49ffe632214f3b6029293d92bd492f59b0c34bc39aeb506204f747a6e02064a9f222cd01053fa1ebe98e";
+  sha512.source = "c07114ec326345002f5a4379125516083452e7bc38ce949280a850095d260d8545fc1a3672206163dd43985a48a1e249038daf401359be8383c889a01397982c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.0.2";
+  version = "0.0.3";
+};
+expex-glossonly = {
+  revision = 68860;
+  stripPrefix = 0;
+  sha512.run = "e7d00f33d6a63e27524b9ea2fd7cfdf5f55bbcf3a0190a6967fefa11b4cfde4990dbda74da0ebe14e6fa76e8e0e4b5084ba352e39dff46f8e2028aadd6dda26b";
+  sha512.doc = "7ff5b9dfada3ef37c0ddc28a472a33a816d52b7b9b265291c640527e6b8974ca21d5867f7e271856a920589062eab5563b29c919a7df66b51af93af5e12fed5c";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.8";
 };
 expkv-bundle = {
   revision = 65623;
@@ -17519,23 +17802,23 @@ expressg = {
   version = "1.5";
 };
 exsheets = {
-  revision = 52227;
+  revision = 67300;
   stripPrefix = 0;
-  sha512.run = "c1263842d06916762306b0ead03cfec31535f40d41a0abe504366d0a762850f683b10563d47d149e89ddd75c18c3da7687a19b0a5bbe2b628acac1ed891a8285";
-  sha512.doc = "fbb9dc0826789f6c19734b0b50925d035f3b55a5402dce6ced4cf6881c032d784d5f219b222170961a5e1563b2dd8a5c64e7bcdd434ca61dec94a857451250a8";
+  sha512.run = "475b2508bedfef0f537b02dde56e489ec464ab500e1b6b63e7d8accaf9d5c17e8973d9aee8d370494115592febe684262fbad239fabe5a314c5d89e781506377";
+  sha512.doc = "8a00471bef6ab06927fc7c3a4c33e32a2f6de376cb238fa3e06e3e5a44c98b2ed413f74e60bb207c99c6e64f934bcb406d898bdaa0bd6d9c70b3b5133f4e8178";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.21k";
 };
 exsol = {
-  revision = 48977;
+  revision = 69343;
   stripPrefix = 0;
-  sha512.run = "ef7e031334a27a522f54c5ba5adee0fbfdb4cfefca6e8c1d4f67c8bc542c82bab6ee89d35f8ba8e65ed0b17107fd164c00ed416c64160991b59693f5b567b502";
-  sha512.doc = "b6c5dd47fba5d14560a2d2341f1d17b17eda0ce16a6198ec589f47143ab46fa71808aa6a40a43613cf906542ed9df7d164fb2c7fe5785bf414076934932c63b5";
-  sha512.source = "1fa45d6d526e94e0574d15396a6d191d6b00bba30ef996aa999bf2b77a5426263f1e0a94303c07ff139bf44b0a07f419c19ac1c854c32b02e4c43c397c8a85a3";
+  sha512.run = "b29f3f9e3ba9d4b98b5db23876e69cce17740923419bc2999c742bd24ecf8f6434bc6226bf4f0bbbd17de79b45653b97ea85866b76892f07d696b0ab5b6afb46";
+  sha512.doc = "8be8c7e37139dabc5095c1c77f21a55e60666067ffaed66448db31a3cdf1ef2c21cfa4cd8e4021ecdb6586f1a7b0ece40ebd79f485f878fb25249e1094b7b316";
+  sha512.source = "d48acde6262a2eb4fcb2de2f0e3da5f7b0c33418d896235b2ec656df5fa946872c8cd4b266b8801fea5f9a30bae24154ab663358013e450736742604742578d8";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.4";
+  version = "1.6";
 };
 extarrows = {
   revision = 54400;
@@ -17605,24 +17888,34 @@ factura = {
   version = "4.32";
 };
 facture = {
-  revision = 43865;
+  revision = 67538;
   stripPrefix = 0;
-  sha512.run = "6657931eb2c0a134c53cd9271109552d4b8848247198fee9aa8d9010ff2faa4909416484dec8809d7ddc58b4202f9e2a97c5b97279e5432a1e928f91d7cde71a";
-  sha512.doc = "a96e30b15f1fa827fa4dafd3594e8b98ee8c17c23056926d82243955971225d5a4bdf41a1a2a5b19049619c2eabc1b8529db70adce17bc126c0e1e3be7ecb2df";
-  sha512.source = "2612d792d95e3e22727e3e7ac4c4932e1f25c3788ebf6b4eb1be76727c52694a65c378f13ce917f9cec3975468f79f7a6d62adf4f125c57e6b644076d22e7bce";
+  sha512.run = "30ed6e76f8801f61eeea27679c8c23c050c7d17c334eabe0a00984b1117f046314e59c2c52225ca7d38eb71b93efa57dd563fd582eed500fdf238fac9540b606";
+  sha512.doc = "c84aeae53d8324b9e4f1d386dbbc8774d1b9266ca5c8b893a7280bdbc2578dc9e2ca9975874f4d0cbfc5dc10455cac322d9642534b0fc1384a6d7d192a816d51";
+  sha512.source = "5d2f865404607f25af2c0704d83b88a359ed5601a970c6798eaca104a2b61bf45745e271c9f19a6b41977cef1119e6981f986a20e05a07ba6053b24c5fcc4832";
   hasRunfiles = true;
   license = [ "cc-by-sa-20" ];
-  version = "1.2.2";
+  version = "1.3";
 };
 facture-belge-simple-sans-tva = {
-  revision = 49004;
+  revision = 67573;
   stripPrefix = 0;
-  sha512.run = "90d1ed96793b0463f14fffcef020ae58673df10bf511756387eb38bb2659ae3e362f52d898996410447bb5304f3950325fdaa25841ac4351b4584da951da2b4e";
-  sha512.doc = "f111fd7a81812aa0d65c4143751bf0bc331f8de248876f81c5517301d8a9743cf2e091de6180e3ec1d74a646ec539b65f0f1d8068ad1eb5e6638cbb783b4f420";
+  sha512.run = "b37887eff90040c6705396b81ecf753289974f1fc5e7e348db2f0414ed7f1afdc0179814a6c89f0843f310b6afb56e8a3680c787fcdec886dceb49ac5f25be9a";
+  sha512.doc = "5d5bd334d970ea18e5e041e629893fa42c391a3de0652516efa258b8919429d1d6fe7b43cc4bb104d762e5a5770fe3fe8ead51c61c40ebaabe25e3d15311bf0c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "2.1";
 };
+fail-fast = {
+  revision = 67543;
+  stripPrefix = 0;
+  sha512.run = "dbe4eed6fd1b3bd3c2d48ab4590043c2bf95871350bc1b56f47bb4dc27ef3010097741920ce0a935aaa03fe9e2e8de49db7906dace3be314fca49e816c7451b3";
+  sha512.doc = "6c5bcd8329cd21f13a1e0074ef4c4b5bc474babd663d444d9ce48d23ac775dfaaa7cefec393a6ce2bf81ca67c1429c65dbd41511162030b80fd1445c9aa5b541";
+  sha512.source = "0703b26d3675c57d5d81de357fdf1b50133dbb2a07710338a243dff8b04370f2af0d1c216d1b1751e1e281436427635a6bb5b226e0f35085f9dfaf9378bc6777";
+  hasRunfiles = true;
+  license = [ "mit" ];
+  version = "0.0.2";
+};
 faktor = {
   revision = 15878;
   stripPrefix = 0;
@@ -17746,23 +18039,23 @@ fancytabs = {
   version = "1.9";
 };
 fancytooltips = {
-  revision = 56291;
+  revision = 68931;
   stripPrefix = 0;
-  sha512.run = "79ac95184f6890ed405919d064fee444a3b00dffa8f76724c302133cc8b4f4c40648e0bee607702cc9faea6aec3e2f8c34d1e2011abe6e6c6444b9076e5f42f3";
-  sha512.doc = "c5a73dc14138cf5f13494a3844e9bda29368dc129e6445bd3f1a7b1cfb60498c44d7527a673d51dea1d81b4a2db438078a406f76ed1597b6836015c588c79270";
-  sha512.source = "6bccdd73454b8a2ede4c1895e5b7019d136af0e79b72417a223d24d004807d02c51fdc3187ddfd8555233882e3a15862db9e3ec7753a349241b25227f8e223aa";
+  sha512.run = "b24e747d4ad811002cf742f6c74855a85b69745661de1cd1d4bcf41ec18ff62d34b39adf56393f79214a1cd4e54f72c54796b00d573e29414825b8c1a3cff317";
+  sha512.doc = "4d567cc367e19727815efd49392ed0455dd47d9416d6c1a4cf846eb017b3b3cb0c8060fb0fdae0a93cd05a156422f5ece0ba15e54bf3fef9b2aa8ad6a7c4166b";
+  sha512.source = "96485cec2bf6d02338699203cf0afb06a43156a66c7c55153bcb158256bc816550b2a0dd7a20cebc8bdffa84c1e40d1652b9a829746880203b49e80dd0297c47";
   hasRunfiles = true;
   license = [ "lppl12" ];
   version = "1.8";
 };
 fancyvrb = {
-  revision = 65585;
+  revision = 68772;
   stripPrefix = 0;
-  sha512.run = "d0233f179706c41c418134d3ccb42efe6234662373834a18e3ab0d80acb5c77327fa95d52cab0172c92217f3c9ae6b974087fae87bf5be3eb82a624a8ec60146";
-  sha512.doc = "0b9f84e92c1dd9939b2bf7654afe4d379647ce933f33cddcd512601de9599cef5d58aec5c5bb3ec24f0eb7b3218bbe41c8c8433bd21d6c612191b1cfe4e32c58";
+  sha512.run = "1288adbf30e9bb084d242dab84450a60b0a9f342b20600518ea324b01223f61996576b4713b476c3cda41963047880a16a4e54cc773a0508cca1c14ea8230c2b";
+  sha512.doc = "b0fd885f1d5a1711d422f1f5340d954d6f217dfa69fbf2674e0523e335681b39270579d2e66e1cdc5246dff251725d7181f983b900899b80a927399b00f1f34e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "4.5a";
+  version = "4.5b";
 };
 fandol = {
   revision = 37889;
@@ -17812,13 +18105,13 @@ fbithesis = {
   version = "1.2m";
 };
 fbox = {
-  revision = 62126;
+  revision = 69041;
   stripPrefix = 0;
-  sha512.run = "8f4786fd15b1f6f2bf64a00e9367cd346716edef54298bc3334046166a067815112eb85a6277d7165ad5e4e830b1cd1ae149c907842df46196f6d33c2ba6534a";
-  sha512.doc = "e52d356422df18f8e29243b5323cf888c5d0b6f89c3c822613b577509d8dff44bd4d4e1ebd5f7b6c72abbbc782f362ed9162803b572a2d995482db86153678bf";
+  sha512.run = "705a0f1f6d5009f0ac2fa1059f3029ef7bf7e8fdab6e85bddba822eb50dfcc049f94b7ff43afc97234d44f42505e1cd4e6caac1f22178949dcaea0a60e572281";
+  sha512.doc = "19a61ddc64c3c5108ec05089e988a07f0e10d772bed810898bf82046922eab58a389c3816b15055b5c2e8a4d1392305a351802eaf3f1e72799c9c192eb8c1484";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.06";
+  version = "0.07";
 };
 fbs = {
   revision = 15878;
@@ -17856,14 +18149,14 @@ fcltxdoc = {
   version = "1.0";
 };
 fcolumn = {
-  revision = 61855;
+  revision = 67729;
   stripPrefix = 0;
-  sha512.run = "17820804588458b805a65eee92f4fff31a73b7285f85546e0006ca6ee374706bc4df9f78eb044d8b79ea26b27b16f3ae38f035d8843906efc0043e1754f6ed3d";
-  sha512.doc = "d7822b79097ec0d58468dbf46e0b2651f97e763c3212102def2c247ff3088dab4088afe2c4aa5d97bd6360b24e38da6e872fd25f9928724f151c03769ce2c219";
-  sha512.source = "f3d27931c2586d48fd34fe59b5277c67a3e1a6e25f486a1c3226385b3ada23c655cfbd25b26470ca84b80cd7d9c1d9b72172a0b11e1e0f35899cd3a3608f42ac";
+  sha512.run = "0edaa6ad0c01a2cf9cc06c65fec3bc13b85be893d7fcf4a92b0c8760d1999e5c3b90975e44c586ef104b020eaa0a18cfc4476b3abb243c5f2862941864113bd2";
+  sha512.doc = "9be3c50f25522c3fafb52432b74f6ab755afc02df04da84383ebb466bd9424c716082d3d6ff176d32c03c9097b6e39c6f54e70cd8218784492d2ebe37de0ebd8";
+  sha512.source = "e122343109c0367d3f22bfc2b3775ae10545a01d18908cd227422060ba3c685e35beae26c6892479e03c3a4f774e2f9edfcfd60d6cba0880a4279e610de1050a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.4.1";
+  version = "1.4.2";
 };
 fdsymbol = {
   revision = 61719;
@@ -17876,14 +18169,14 @@ fdsymbol = {
   version = "0.8";
 };
 fduthesis = {
-  revision = 66197;
+  revision = 67231;
   stripPrefix = 0;
-  sha512.run = "2b6ffb0ab9bbd4ede0867bc007d69a3172e7a4207132aede29b4235adcb15d30f914f3a9e64be2c205c9eb5bc7bd8a0cfdda514c34f104d3c9c4a71e7e4369da";
-  sha512.doc = "5ff7d5bb938a06b9b23a59be62b7c89d7be8b633dd43242c1ddb6aae7bfc4922da3d236ef0e09f9287e56218064c9fbb283a61b6eb4b251d38c14ef81ac9a36e";
-  sha512.source = "b5da699a284bfd9ab3641434f257653c3cfb5cc110f627260f209925143387430ca1481dfbb05c362647926c38c6f25cd26b51aa5f9c9b5b6424fe4375955288";
+  sha512.run = "e495c127884aecc1856b99705c262882b390f9e800dca59c2fa1200ae584a424ef4ce7752a9bb5dd7aad9a94c4a685af557163f2b07327e80f5b99153532d915";
+  sha512.doc = "31a91fa609f3ef8631d6ed57526e932d5c110e4d84cc78862d1bf4c682f8de97c080a1e2d82e60842b731e33505b99dd2a85ae899705ebc45de44e526358703b";
+  sha512.source = "d2cee0822ae532782bf30e1cd8b07b65a4c7ec3cc29901b10a25d81c4cbc224a9724a6ab2a1e7bcd8ebdb05f6936176d95783198f6bef20dbefd4e80ffbd7349";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.9";
+  version = "0.9a";
 };
 featpost = {
   revision = 35346;
@@ -17904,6 +18197,15 @@ fei = {
   license = [ "lppl13c" ];
   version = "4.10.4";
 };
+fenetrecas = {
+  revision = 68779;
+  stripPrefix = 0;
+  sha512.run = "6337deecbd49a9ef9d19ab31cdd705cb49bb127ff451d9f3790a3ef8fa95ee7b65f52d49d22b1698d039fe268fcc178c07f30dd66ba7aaff69e883594e6956c1";
+  sha512.doc = "8fda8eeac400f810e3839f5197c53b808594c2536b1d4a5c7c96c788b8faec40a4efe403b065519d20f09cc1d14fe80e9e060d2b8e4a396cc9c1ad34dd16fc42";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.4";
+};
 fenixpar = {
   revision = 24730;
   stripPrefix = 0;
@@ -17982,7 +18284,7 @@ feynmp-auto = {
   version = "1.1";
 };
 ffcode = {
-  revision = 65170;
+  revision = 69383;
   stripPrefix = 0;
   deps = [
     "environ"
@@ -17992,12 +18294,12 @@ ffcode = {
     "tcolorbox"
     "xkeyval"
   ];
-  sha512.run = "e76c0605b8a074d1827a73a3ba4e9fae40ade590b01e90ee10593c4484e0a534cebb556bf49389fa03355424910cc349b73fbae2827153fc717be69d38d007e0";
-  sha512.doc = "c5302e1113f5d1a05517c4877efd710bc6931bac62157001ea540f0b40388c95202dd457fb1362f8b30dc313a48d9742fcd5c6c6a7e5f3404755a3eafa01041a";
-  sha512.source = "2863c642dddba771bc4507ed2f0e4a3c4ff12ab4291fb397a2e0f8859776bbba7442a85fefe87d655d0c6236b5e40878ba29cfa19f71870f6932f38247657f5f";
+  sha512.run = "c71ca2c5aaee2d7c14384fdb9655d08e92aec6b721ef906dc8524bf2833ae7893497ba67840935c97b76ebac9318a3c321af7030573a9a57c384c11dd1862faf";
+  sha512.doc = "9239c853483203eb42b1069ac1135b360af07161426c77bcf8684626b19aec169af9a2cdfe9caa7cc75ec322b191ad4ddad9b21daeb546dbe5541d66615abb12";
+  sha512.source = "a52bdf256577148636f06a391d35a0a9c59dd73b91f33b43f3f9f0a796f4995140c5563f4644a1f99cd015adbc260b67785a5c50c3af649c45a69495fd8e7af9";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.8.0";
+  version = "0.9.1";
 };
 ffslides = {
   revision = 38895;
@@ -18008,11 +18310,11 @@ ffslides = {
   license = [ "lppl13c" ];
 };
 fge = {
-  revision = 37628;
+  revision = 68353;
   stripPrefix = 0;
-  sha512.run = "0336a91c06bf658c1bf139d716952ac2ad420e307fb8b525e53cd4a488e0cff536c89ff06ceb8788d1e54b96a9fe4b24d94beb6913c1be8683e359a4d00dc4f6";
-  sha512.doc = "4f18f7bc1c8000664753e6f0615f7dd1d0f71bf51aeee6860fc2181536f6f1fc37b21e83b0c5b6c151e1012a02ec97d3d5ff6d132a5f6986e94bd173f40f994c";
-  sha512.source = "4eebdfffd7fbfeb7539543719df1e50564df6ba815f37a503fc98420cfca5c6c2a0a0a0f732656bc288009e9bd0fd1ad7fb0a4625748496575179c3a7015e7bd";
+  sha512.run = "0f97109ffa1daa97d4ad496c2e948a123a9fb04393e668c9c3b1a14131f6ed7a21ac9056c6f3766e3ab2d3a2caa2baeb67c4b59d6c6489299090976d697e10f8";
+  sha512.doc = "8505aadb706e79e6e1d0faec203de577cf76acef5360ed7c29febc2239d2719a717a59e9d4f8fbf5d2eefe67be1ec3cc1ebbf9be47930750582df29bef2fa9fe";
+  sha512.source = "c1d966e094ce4a61c6250717731a20c3db0a0e438b5d8acf1b5332cd05a2f6dfde1d0e99bd02ef5ee725c1242da9ef183f680a03bb7f10d7ed50d0ce4c2bb1ae";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.25";
@@ -18110,14 +18412,14 @@ figsize = {
   version = "0.1";
 };
 filecontents = {
-  revision = 52142;
+  revision = 66740;
   stripPrefix = 0;
-  sha512.run = "b40bf2e4eea194783dded4f00dc24f1cea26a854e96b57995b69354a70c1e7ba9ef0e64542c2b524ad59d9b12fb1accf93ee28b4c7e735279c0bbeb915b6c991";
-  sha512.doc = "0ebf1990c005dbf92b7ef73ccae0cf1ad47ca896f0805a5a8291a15c6764e2259ae03fe14d9c713484ea258764b706881051b4001589715bc36ee17ce5bdee23";
-  sha512.source = "e0238c49fcdda4a6d5ced2e52a7f5113996fed3bf7d8d2143d499870b06a1d8381a2b0796c2708570e554c1ffbd7f12c6c69b52980b1e2b7b91b2e8d2112e42a";
+  sha512.run = "bc51c03ea84130753cf4c6a6e6efe39403bc48a47b4c40f177d3ae17808c63a346a2b361ef61b0e0421094b6b64e20a972c6bcad305228ce0991818a62344296";
+  sha512.doc = "15f34d023a498c733810ddb4b04c1672507d97d731a579246fcfc3f29afcb47da73429807c4fff018708ddbac76851ab8357dc274cb6c2506cd37d075d2dbb44";
+  sha512.source = "8b93ff5a1cce54150c67bc607e67a40788dd0af08bd55163380756ce6979f3862b4cf1d70888b7b4ddd7accf078a387bf8540cb97af491b4d67bce31600fb8f0";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.5";
+  version = "1.5a";
 };
 filecontentsdef = {
   revision = 52208;
@@ -18225,13 +18527,16 @@ firamath = {
   version = "0.3.4";
 };
 firamath-otf = {
-  revision = 65561;
+  revision = 68233;
   stripPrefix = 0;
-  sha512.run = "32e5eb8a0343b189afea8763a24b74b41adee9b1d5d21aa7e184eef2b402e88023145eb29aac3c7fccd56d6fd0fcffc06c77f937fc28ef69852ee87b1fa1650a";
-  sha512.doc = "fc3b91faa9acffc0f104faa90925f6907107dca2b6c1a5800285b00bf734e85f2463fe262d2ad4f123608017abea64052463eaed6ddee11230b1462261377072";
+  deps = [
+    "firamath"
+  ];
+  sha512.run = "6c713fe81dd006707b987930e8c8835c21122607d9488ce997bd9b76cbe85bb91fe7017f4282fa91c11ab41827ce70de62d0baccc78a543d56b0d873ad153c12";
+  sha512.doc = "39c2eab4cf1dc638194d81effa1b442b87e96b1ebb2efc72d0ce26041bb04fc3cee8f44b939f904b07cc0332708d8ae8cd7a1f41087d363888306c0f0583274d";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.03a";
+  version = "0.03b";
 };
 first-latex-doc = {
   revision = 15878;
@@ -18241,21 +18546,21 @@ first-latex-doc = {
   license = [ "publicDomain" ];
 };
 firstaid = {
-  revision = 64892;
+  revision = 68720;
   stripPrefix = 0;
-  sha512.run = "52a53933022700a5713b750c3ca34afda096592da577febc7442807290a8e04da79affe217a0e10cf8ee483779e771b6f610a88b45df52822ea54acd3a45b4c7";
-  sha512.doc = "da564e169ae9169b828c76f1c7299dcc44fd2588d776f8fde039429c4f9a5e18ac133c6aab61076b2a58705d31f07f63f0734e66edf5c229c6d2bfeb64eda76b";
-  sha512.source = "eb776d9961f9969a780dec2c1a1eee6f9900fd66458acf4c60f84eed94d0dc0bdf5441a2c343d0052cab9fbe8d4f643d010970c908aaa0c8041fd285cf1f87f3";
+  sha512.run = "0d15794f22485c3cb922b0d1108c33f1dc3dad9bf8db46278deb8079bb966ca0f3cc1c5454d82e43f604354b578c9da465a34440670b365fab4f7bab32809603";
+  sha512.doc = "6ee8e2e67d8029551e8224a4548b425188ca85298e5cfc90f9f1b95579223c840a80aad4d4a56e36f8d0c336778cf62c8b025d3f4df215d94a310beac14b1181";
+  sha512.source = "2c091df08953ae216e713567d1af4f0dbfbe25c4d593ddda22791d353002cce85829d3a8b404d0a1a441f67264b778c3137842388159f3f551fed249e3ac711e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0u";
+  version = "1.1b";
 };
 fistrum = {
-  revision = 66263;
+  revision = 66461;
   stripPrefix = 0;
-  sha512.run = "06d0fe179e16f80a19d9dee4a62a1d4b0f64f6b02c6f5969fbf3cc461a93f123727a8d4838bd6893c0d49c3de6ff2d3897fe3099fbae9f8eb078e97cae3a5adb";
-  sha512.doc = "e751c6fa119c0b1f2e74ba30b157c18f9cfae5ffa27ce43548f2e98e5d163dc71fd3bd658f46cffbec225c48960ec093d3eb1b0793cdec339edbb98a34002b38";
-  sha512.source = "45c088d042e2cca6cc9bc029ffc83506acbf136be9253ba9f01325072f8a1cb4941f68cdc30f62d6b7af2b0068f6cc1e0e8c76bd4200706437aff732ea2d1cc4";
+  sha512.run = "7e0a92affb0fbe23b9d08e525f6e2878e3bfc10133fc95b41bbdeebca5c02c988b2c4033e50969212b5889dda4f9e2f043dd65688ea33d81b5bd138d49af5777";
+  sha512.doc = "15b50530a68fbb2b330aa972640fd85207dedc0b0e640f830940cd712a16fb001e60b59c22ff81890ed810a7aba9f1e150deb3f91ad1fc4bf52680d9d1735342";
+  sha512.source = "88fcdc104594951933fee790a45efde2cfe3665673b2589bd4f2972f15e8dc1f91b85c5e04dde3866688fc2b76d2692caa2f4dfd3353ca9416002126be408cda";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.1";
@@ -18270,6 +18575,15 @@ fitbox = {
   license = [ "lppl13c" ];
   version = "1.02";
 };
+fitch = {
+  revision = 69160;
+  stripPrefix = 0;
+  sha512.run = "ec44706fa5f5fc258666e343569f695db0d26f6628aac1ac6eaae12377f23138c49ce29d03dc5b08cb1f5427cb5ad612cbbf9aad5a9270f4b31f43679023e73a";
+  sha512.doc = "3a32fa5657e0042588c82ffd7d32f11dfc8e9d29ba268700092d26d32d24afdb3baa1f02b8ca4e248a19413aba0421d991809cac5db0d5d38aba8389b43709b0";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0";
+};
 fithesis = {
   revision = 64135;
   stripPrefix = 0;
@@ -18301,14 +18615,14 @@ fixcmex = {
   version = "1.1";
 };
 fixdif = {
-  revision = 66031;
+  revision = 66606;
   stripPrefix = 0;
-  sha512.run = "e0a4f2b75e80d0378bd65c623f2a43f8bed314ebcf4a4d2aea45a724896e107a1b6cfce4c34caa3b0bc4580613681c7189cd32fe63ef611227d57b512f20ef92";
-  sha512.doc = "47a0f695e145e9c33ba7ef733f2776d61941062179bcc0a416fc9368b5d3d7e8bbd6c00fc20ff23ba70c28e1ebc6d5118ccfcf3a798c5d40702b30a13bea86fd";
-  sha512.source = "a8fe5b80e8e99125859e253e7f7cc2af5af75ba131acace90e885f7a1fffbdd253b750263913e6fa5fd081ff70c8aa3983aff75127f227c83589f3aa3fb47534";
+  sha512.run = "655c9733d727189d7b2aaef2b629e67cf5c7401ec2a8ffd179fb450cdf1746a40571e0b8be56f4202e31d752c35c7255fe01cf0b36917c582f24415e8e842273";
+  sha512.doc = "e17648e54c68ebea15be76a8cf1406fd42858bca77be938efeedd72bcc8fe92ff016427ef815dcb590b8f900ce0efd87d9bb96f37afc8d79bcafcdb1e5d23bca";
+  sha512.source = "4c96dd12535cbc852d4d24623295d1d7236f8f4773e5dece09ffa99f7fe8bf24efbba89dedfa069e32af53b1d88afa109a5e1075aa368ed6331fb462c57d80f5";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.0b";
+  version = "2.1";
 };
 fixfoot = {
   revision = 17131;
@@ -18451,14 +18765,14 @@ flashmovie = {
   version = "0.4";
 };
 flexipage = {
-  revision = 64572;
+  revision = 66614;
   stripPrefix = 0;
-  sha512.run = "729d90296c3a84fa003f5c237dde47e3ba3417254bb408c279f135a37b701b70dc02ca4bbc0ba39165415c5cd759f273a639a796b683b1d21f0ab3127f45c1f6";
-  sha512.doc = "537ac79dddd97d4212083016b44f1db9461c4e4d337e226015ccd57101b5cf0f6519315f108715019fa09d06d24ec0700b542b57be08063719b31ebf2173667e";
-  sha512.source = "89a47b7afce5f17e8e9a5277b49f28d113e92995d5a35f6a000ec7718fccb2bb5351a71e55cb3cf96cb639b22cbbd99e6383b6a65d6291736529d8f5c2b7b65d";
+  sha512.run = "1e16b1722a4c4349879c4556338c9d72eb4fe8364d0e19e0237b3a269b85ef19bd68d4334e190b7e0cae6e3ab1551381bc2e46fbb265ce36e839a967fb114220";
+  sha512.doc = "5670616faa6646b68d3b3b2724f5e324cd1ef3595a0da3b8615d364f908f684f98d641754b71498cb2b61853192859dcf602a2925cab145292b1cc7a21f99766";
+  sha512.source = "72458fc100c39b56a6f5ce173fa1149997fec0e4b7040f9a6ff2a2f671e27a33a4cd326eefa48bb81ec53bd53147bc4065d677fc1aebd9620da1d869336b495b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.01";
+  version = "1.02";
 };
 flipbook = {
   revision = 25584;
@@ -18489,6 +18803,16 @@ float = {
   license = [ "lppl13c" ];
   version = "1.3d";
 };
+floatbytocbasic = {
+  revision = 67945;
+  stripPrefix = 0;
+  sha512.run = "01f45baf2f0713a229bf6b6d59e02c8a05f0478331c3c6c7ca7dae050db94d7497a87acccda1cd7c022b79b54ef5088f6af181429e60154ac8e1ada081062dfc";
+  sha512.doc = "0d6f29221ddb39019a9c6d308f77200279144efa9de35d5fcad8518de9ecdaf840179887282840cf7b31e7eb286f0fa41bec93e8a1f3682873adb791a467e22d";
+  sha512.source = "4b3c146a6e9960f77532bf2fc23cf686a092f00da541a0c0fc1243a3bb623b16e19de8e9bd1e792a9134cc1dd3d429fce17ce372da03f0abf3176ee4b722cf69";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0";
+};
 floatflt = {
   revision = 25540;
   stripPrefix = 0;
@@ -18509,6 +18833,16 @@ floatrow = {
   license = [ "lppl13c" ];
   version = "0.3b";
 };
+floatrowbytocbasic = {
+  revision = 67946;
+  stripPrefix = 0;
+  sha512.run = "3554c3cd560d5203b650bd32fa39aa4372f935bcbc757d1ff93fbde3fcf1a395bac4676e7029ec58fd79ce0089595858707880e35fdc98a65615fa27a555ea3e";
+  sha512.doc = "1ee0174dff4209c1bcc3764c89ede858174e1aea624a0032c0af8bf61c1cb4082517ee2713fff0f5a5687ae4d63ec67c04f4a14eb5479edab183d0487241c37a";
+  sha512.source = "126754a11d2a5f47d2406bfdea43ee33371ed1eb8f6b94bcc48b71fcedab4f468e3d0fbbdd7f0229780a70b5d337aa3e443046346b1c53e968a585c6d44c1c66";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0";
+};
 flowchart = {
   revision = 36572;
   stripPrefix = 0;
@@ -18568,14 +18902,14 @@ fn2end = {
   version = "1.1";
 };
 fnbreak = {
-  revision = 25003;
+  revision = 66615;
   stripPrefix = 0;
-  sha512.run = "794e427d66efeb15920062e86b4a405e36604703f350c4e20f2c237b358eaf08aa22cc923c7995a7db22c117b48555fb92b136edbc94100af8e2046d49eb1fc4";
-  sha512.doc = "0e8778265258304ec1cae1f2d21902ffd6f99af18527b86af064209da7f4c84e8ca6bdcb359000e3f0e9aa75819db1b375f8ae9f0a825291ee03398b6bf345bb";
-  sha512.source = "05b2586aacca96367889e328115780eaf25ae6af3179c71701c35fad2d98aab79730d23a67e165248793c58a9988442bb54bb653697fb81f1832bce847ec8b3c";
+  sha512.run = "15d3ba5ef30d8ebc23be3f0c412f7457960a7032f3c78ccdeba6342852a3b7db699b8792b6f981659268fb28c74e5cd93bfabde2b584f7eade98e6b422127d9e";
+  sha512.doc = "44837191d22ac8185b7748fbf32769a1d2299b92a313da918e6a03d78f56206e76d73990cfb1f94d956835f369adb4008df4da117a20984afc48289b1291fa4d";
+  sha512.source = "7ebefbbe46d0c4db1244ef699e454c0b393285a489bc20b0fd78bdd5da0ddd00982f063c25dbe78c4aa1661402a6ca8ea492774e9aeb5aed3d7fbd460ae2f58f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.30";
+  version = "1.40";
 };
 fncychap = {
   revision = 20710;
@@ -18778,9 +19112,9 @@ fontname = {
   license = [ "gpl1Only" ];
 };
 fontools = {
-  revision = 65706;
-  sha512.run = "a4cd3009c98502534f3c54d40fb22d788bcdfd474ba6bfc1b7010aa4d3471f468cd54a5d5c292d5afe685f9e4d99c023b8f78f302792dd1b381418042d96f47c";
-  sha512.doc = "0506f6e9d0e0ae4fe4bb15303e2abde50a076899e4330a7d68f875abeaacff999cbab779bb368da5c717370e7cf885333c1479d6e795da4e387edd4656c30933";
+  revision = 69241;
+  sha512.run = "5144f4a0636b49e63bf04f518b6c416623e2228615e33169839547cbaca574bed78777ab20f4db7e5820c1acd401b756896b39998c43f21f93de6cf8f987f6ab";
+  sha512.doc = "bcb3ab7f49e817ef5b6f710bbc227309f28396c6f4233e39e94163663f10db3daaa41b6db93a9ae85a26599dfce352a0c132a36b0c047ecf8f5269f428af4f6c";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "gpl2" ];
@@ -18791,13 +19125,13 @@ fontools.binfiles = [
   "ot2kpx"
 ];
 fonts-churchslavonic = {
-  revision = 56350;
+  revision = 67473;
   stripPrefix = 0;
-  sha512.run = "308101704643f3a028b4d58cbfb021ec05640370542e83faa6c0070fcf60c168f789a3a7f5ea50e6d2568faa2660f224488f188ea6fa30f649e8e013ce7a4025";
-  sha512.doc = "856d1112c5929b361f5c3543455ac0f2ac1b8887bae8b7ce6e94540b1673ed815cb73aa08ab50617213c20bbc6fce86e84bf0a3bcb6521940c077e7c7a6a8469";
+  sha512.run = "a6e3759ee4fa9cb50a8b7bb55f162ddf6644c3d2ab61da514ae902c99868f34e3de67f1207ac003f98a872b1b1daafada441e888efe2f0482ddc6b9132374c03";
+  sha512.doc = "9fcc08b521d9706c3775d33ed7391553e855ef43a49ef1c6cc92ecc1f21677909eaf5c5d231fe86f232d3a092e3f913012d8d96f35b3344e0a774c4e5c8f1476";
   hasRunfiles = true;
   license = [ "ofl" ];
-  version = "2.2";
+  version = "2.3";
 };
 fonts-tlwg = {
   revision = 60817;
@@ -18810,13 +19144,13 @@ fonts-tlwg = {
   version = "0.7.3";
 };
 fontsetup = {
-  revision = 65439;
+  revision = 69390;
   stripPrefix = 0;
-  sha512.run = "9eac00c84f22ba0409f49d9eb730050d8dde8e9468f7d55ffecd6ccca750aff171082638e52fa6c3e260a203e85c09a64900816d8cf7fcf025b655dcb738f62d";
-  sha512.doc = "bfecb544a2ef7ac57b14ea9fea554e39d3b9549520b1dfa76d2ab1f983eff931ad98da0b970922b262ebc01b148bc3b8d7dd4d89e4ef7c03430ea6707add7ad8";
+  sha512.run = "f291077a88db97fdb486cc14ab24fa9b2cc1b00808f8d691c3313b302715897188a9d16dec192d477b4fc19bd22bf2b9e0cd92bc1a11b079ee5a88382bb38ad3";
+  sha512.doc = "9318253e03673a6ec79d33afb2632a81354fdf0f29fc429814dc3f00326275479d8bfebdc58bf71456c38a77ba22afb1be29b2daa408c7c3e4b1e149fa7e958a";
   hasRunfiles = true;
   license = [ "gpl3" ];
-  version = "1.4";
+  version = "2.1.0";
 };
 fontsize = {
   revision = 60161;
@@ -18857,9 +19191,9 @@ fonttable = {
   version = "1.6c";
 };
 fontware = {
-  revision = 62387;
-  sha512.run = "6103b16df1b465b08ebec98236b04a858ab1db6f7721c324d6776d5367c4a7ea5642869fff828147860b3858569abd4658174d03c3f23317c5ed28b53cf8cd75";
-  sha512.doc = "c4caeb1ed2e50915e4ae76fe7b5fb53a4a7c55b9184e5a6c83a6912fa3d37f47627863bf76ca92578441d87055c82204bc09a3a8a96568edeef25e80c4cdac25";
+  revision = 66186;
+  sha512.run = "7cec7df72b76ed64b864401c809b48e51f69338c7cb3ed05ac4ea69899a077983763c728543f99130f18afdd2a03c955d848066a239c97547ab0240d87c97d7e";
+  sha512.doc = "ccd22e262e5fa2cccd5da0ff016447d2df04aefcdd6960f226762667ea2e81b4afd406ea9f822b74d07c8f93cbe70ef90cfcc4040cae2820cf5ace94ce8d1113";
   hasManpages = true;
   license = [ "knuth" ];
 };
@@ -18888,14 +19222,14 @@ footbib = {
   version = "2.0.7";
 };
 footmisc = {
-  revision = 62524;
+  revision = 67556;
   stripPrefix = 0;
-  sha512.run = "85a082bfa68f0ab8d9cc252d04521b45bac8a3c4d005920c1806515efdea6668b3df3b57f51780b8d4bf4cd7d4e06751f41087b76da3b0dc9d916f3716cdc522";
-  sha512.doc = "5c3e00ea325942affe2c68b6855207801b0155b79b1f33cdf3c2dc5d65f17bc94b6fb94e09c1ad8c823035232dc305d9131ae89bb726685354adb2a23117987d";
-  sha512.source = "526a64c71dd03b67dd0df1d735573bd51db7c6929aa1626c61fda42b7619ebad8b6127c2db8e08fdfc79f54e8c113080001fe6141f1412b0cf8b175c11a32972";
+  sha512.run = "814aa0a1add20812ca241280a408c1bba21920c2751f171a67532aaf6e4dafd786578701a7f431a0295a139052c8c7c37f46c7e4df35e6fd14f468a5c7181b75";
+  sha512.doc = "4a257a2b7620bc8660785ab5d8c8f167ba044e2bf8fc6b340b8645c549f9d4c528d9fec9110671f1dd757892c6193681bc845b57a7ab722423c8184a276f8043";
+  sha512.source = "514acb8de22592d5211c97ad8a82659374e574c4ed972604443036381875d33d2e5956788fd9f9577ca1feda59290209f5165568dd00dd0f059dc43fba4efe14";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "6.0d";
+  version = "6.0f";
 };
 footmisx = {
   revision = 42621;
@@ -18927,11 +19261,11 @@ footnotehyper = {
   version = "1.1e";
 };
 footnoterange = {
-  revision = 66156;
+  revision = 66149;
   stripPrefix = 0;
-  sha512.run = "f62bcf48415528645d20d9be9ee1a185ce4a27224509c26ea94efec3541e3f3e1e69bfc6b4ac8e7e4d15248dab32e9cfb072dc81c25c60a8179c6ad60eafef25";
-  sha512.doc = "5c69a9077656b3cc81a3dc564bc5049a5783ab0d276fe6b71291f43a99cb94ed199edfba3b56eb20cac698c9a44d812f4b101858f43a1698180bd63175e2c9d1";
-  sha512.source = "b5b2db4c757707283c345bd67a27c1d3def510205d38470f7b4ec08343c6f7faa5b3ef0b2ff7d67d0e3a9d7d55e0db3a4fe04d48e85f375c3a7ec1cb76d8177e";
+  sha512.run = "b2c20e7b528219e0eee9ca32da40982670d3fa88938a58251e1ce6aca26b831d9ffdd89752ac19b78bc148c11c265374d2f679e7e3f54cff0ba445acc4025922";
+  sha512.doc = "bf5b704bb39a8d369093feecd02da251eb45790381605495960dabb9a4ef099f9118dc7a791c9d9db74eb19739628638a8c003256a42890d64ed821ebf2b8c12";
+  sha512.source = "22665f8b1e912c325a0ba7b8b05ca7da54f54b92e8f7700d045a837e98a544c651c479dff88937615ea1d13a25ae3f6d6f3a5a60c1c7402c8a892dae0fa0a62e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.1a";
@@ -18992,11 +19326,11 @@ forest-quickstart = {
   license = [ "fdl13Only" ];
 };
 forloop = {
-  revision = 15878;
+  revision = 67017;
   stripPrefix = 0;
-  sha512.run = "a9cfda31fc63d24737a5b422e9fc7072bd1f75c0926cb45d26ea3cdb7cfb50b3f74d7602964a08f13d216f3fb3798acd21f04bdcfe85a3e3652052b9f2cbc9cb";
-  sha512.doc = "49bb7031207902366fbd0924a025c692ba015af134ca38c90c43e8efe7a9522ee4db4cb9b071dd00681251ad07b4587cd49eb9e09bc77f1ad5632838fac686d6";
-  sha512.source = "f41a62a677f37a57c96a398d48cee84d213ccc23fbffe7f2da6c09e8f58d8b9524d3b53717b9657004e7de0083f43960c0ebd54de3696994d8e946d8044399e4";
+  sha512.run = "e4cf4d9fdf01b753b40d4fb2c5edac94756ccf60a7e0b1bf0da8b5b0c433eff5669858fcc35096967f9a53e6a365880e6677956ebb86764cd68ba3093fa4be91";
+  sha512.doc = "7315a8e90a83bbb73cb82525fec32c750d97f62fadcf1cd1faa816aeb2c54b5183c8fe659a19f213764979d495d7774df7aab7c950fa9886c6911e526712f0ff";
+  sha512.source = "fe9aa2c7836a17debbfc392b44bcccb09de5b978224b2ec81e17daa07eef3eaf508206f1d54cc9dc7897122ceffb9d1b8d5957c26f2b4bcaed4ee93ebe3436df";
   hasRunfiles = true;
   license = [ "lgpl2" ];
   version = "3.0";
@@ -19012,13 +19346,13 @@ formal-grammar = {
   version = "1.2";
 };
 formation-latex-ul = {
-  revision = 56714;
+  revision = 68791;
   stripPrefix = 0;
-  sha512.run = "30e38c93cf692aea977479159780ffa797535c938fbb0551c86979f61f459d571cf78526a5ddd435b22e850e45fd6fb33ccd6a8308a170bff034ab3d29c63318";
-  sha512.doc = "3f8744fb5c3554a256a3585cfc8f0339bbe91ff94b959fc02f2afd25466333ca54003b1183ba7e770f49e296807367ba33f809424921fd437f9773cc5aaeaf6c";
-  sha512.source = "52d36951555b74a8091efe64f5bb6790917fc3346a79d660f1f7c45793512efc86c935d13bcc88f0dae714223ea5af3a02b32b062880f117009bb99727fd8dbf";
+  sha512.run = "c1bd5690cd7aac8a9cf1b608b19d620c898474e80667594750e6ad5935fedc56f6e4352573cb3700476ecb627195fb137c8404d3701c30ba457960d9f832e42d";
+  sha512.doc = "747ad5d71a58ecec9b83c7a81e36df065b2b374c0ee4deda2a797165eb1a883e270d57b9951b61b3310feb397dfc00d81eb38a0904c2c8f187aa04d8929a2681";
+  sha512.source = "a1925f332e6a20fdd2e4926138ddc88fd5b56213a44d67a5f8d812b3ef10f1d619fc8bb47758d74c5c9fbf34837023c44394637f848359b98c446f98cf8da62f";
   license = [ "cc-by-40" ];
-  version = "2020.10";
+  version = "2023.11";
 };
 formlett = {
   revision = 21480;
@@ -19141,13 +19475,14 @@ framed = {
   version = "0.96";
 };
 francais-bst = {
-  revision = 38922;
+  revision = 68686;
   stripPrefix = 0;
-  sha512.run = "b271711badae8883426ffa2783a2f942c9d37303fb4cfa8b4a2ec2f8999dd150060dae6689bef17d2120cc7489896ffa497ccb1f7f693d5db9a8ca5ef6747f21";
-  sha512.doc = "b3a53111f7fcfe972c0722e8600b3115b6e1a93631568d9bdb1f824b8185d4c78fbb135c4593856e3766404fc8e4c005daaf017e5c1552dc452c57e943832e14";
+  sha512.run = "0a8216e8553b123c82d773637bea5ac61a618116974786b485f16eda33896f404458d755730ee12ef8971cea2a8a4e67ecc697a0c99ad59c04e3bdb2e3dd0e51";
+  sha512.doc = "5a58a8b2afbf99c2a4b1eef26d7dbc16b345ba5c1cb3cee50d9434b577d73145e0d15d2977fb2947bd2263d725b68f01c728ea028f5c9192f76831a94e2ec23a";
+  sha512.source = "a0b490a291775ca178efefa8a432e8be6de8a2794018d2fea5c38ac8ed1df2b3d15cddea6421217ee5cf84056252b2de2d584664de376dd28ee8704619cbe314";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1";
+  version = "2.0";
 };
 frankenstein = {
   revision = 15878;
@@ -19175,6 +19510,15 @@ frederika2016 = {
   license = [ "ofl" ];
   version = "1.000_2016_initial_release";
 };
+freealign = {
+  revision = 69267;
+  stripPrefix = 0;
+  sha512.run = "ca74fc018fe0162cbc403c32efa1101edc215bdfcb9e5432c8d395cdad4f26550df6447b7cef9ffb103863052886b608c89ea5ad56a8a909822e7fc49f3241b2";
+  sha512.doc = "ea7ea3cf64373fb06372d4452d3b66654813f52e221fd1a002c5b95c63604d0aa3b3a21ca6dc70e406b51e18628bd6ce55a74b1e2562b9140811f4d860cef91d";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "2024A";
+};
 frege = {
   revision = 27417;
   stripPrefix = 0;
@@ -19185,14 +19529,14 @@ frege = {
   version = "1.3";
 };
 frenchmath = {
-  revision = 66477;
+  revision = 69211;
   stripPrefix = 0;
-  sha512.run = "8ab615a8b88c4b09bc2f3a2485d5f07a8ff140abd4cfaf64e3239944cfdcdc123879fcb6146331aa27a17f7a102251dc5f20538302cba72e2ce2b40714af8629";
-  sha512.doc = "a112495f232ec33ddd9f8c942892036029b6ebc3ed18e9a416188ab29907e0455051949a593ddd94efb96f97b71027197e9e3b8288c46c09b3c82fa7c3e80eca";
-  sha512.source = "b881d4858903b8d401fe4ab0e4819d657a2da0fe90df238e19f80d5b7eb250fe79e82f7a16b3f0107c902c4d2cc9b5717a733e922ad1a7d10d20287341584e65";
+  sha512.run = "d9ade8b4e036beb17c2aed0903531fe7fd29de51d1848504803ee3c9be83c4cddac2e33adfbcc94124fcc1f7913520a0da633c499d9bb4c4146796a1789ec369";
+  sha512.doc = "3348e8014b3468afb30be0a9ed36bf6684963d1aa7cd325be8050a03c668221272bc009b0883b0ebf66cbd18eeeddf5ff0d1ffa416f24e3c362fe44cc0530c7c";
+  sha512.source = "223cd3352eee8ee65b48d599677433b7fcbc4bfd7faa5f1c0a99c62806fecb9a3d3f2381907708fcc090637658fc67c43537b16d264bda60a10382985846dc4e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.6";
+  version = "2.7";
 };
 frimurer = {
   revision = 56704;
@@ -19223,11 +19567,11 @@ frontespizio = {
   version = "1.4a";
 };
 froufrou = {
-  revision = 59103;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "33efee00b38590de9510689730fa45f1123b5df05fae66fbdb4ffa740e8495309e75c75dba1c7d4d3b58ab7cc1a85d899654a27cc31f3b5eb983f512b5641db8";
-  sha512.doc = "4b19469842e5dd7e0b852e531d2f99159acef4b8eb0cbaf3c03a510673a95896abdc2f80209ce164f71acca58c476d593a30449fcc05ae52851f78f76d6000bc";
-  sha512.source = "4e06412734c22e9035b311771412e4221cadd00c693f13d78ca221b1e07e895f09cac9ec97c56be02aad4fdf7e7f6aee3e04585856b773e455efc499ad04d763";
+  sha512.run = "06c13998e051544b8fad8c65dad787b670beed1ec177262d3076b77d805423196b1b9092c0c2acf383450ebfefc4e670406dd7ab4413217c492759335a2d8310";
+  sha512.doc = "fd49cc43d8479aa952b68b42bdc58a1e6256048027eed2d50ee80d2312f375956d6936f91b7a1d0d6ea2cdf5414b09f987e4bbd0f7ba279ecaccd8cfc9f6dd48";
+  sha512.source = "bab0baff37c117b842d341045b3bc01ca9722f92c5b0b18c8e777dcbd06a8e6bb8a13432f44b561ef5857a8f8538e2ef47a9bc5a1f012addaa2accc1cffe971a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.4.0";
@@ -19344,14 +19688,14 @@ fundus-sueterlin = {
   version = "1.2";
 };
 fvextra = {
-  revision = 65158;
+  revision = 69001;
   stripPrefix = 0;
-  sha512.run = "bf54ec110ca65a8c8b984c5599633a1d9be7769c77f532cbeafe0117a3fd9bff560a68e2650921023f3575d46c5a1311331342a7fceccd71bb2e971f044efb20";
-  sha512.doc = "e20f248fb4bd31df6d6ab4268933fbca4c3aee80d63467a5cd12de13ae314c8316a3a6b6f2a7425c7db2ab92203277f88deb3462c4af66bdf4fc5d49d31a164d";
-  sha512.source = "c464715162526f03f13b1f958fed34d5e00a776e715fa6cf3b2d4339006f77a28070472b8b18fc1121b3cf7fc38a2a12d67fe9292a6e9fe5067f734fc53d3e52";
+  sha512.run = "42c77e74ff16a7aee9f79f8a6f08309742c1168138ccec2a085baad525422119bff6c10ee323e29aa45509789af188eead92379c5bd0d30c5e4a9ae557a0d991";
+  sha512.doc = "27ee96621793f4da2cf719c49edeb3cb272fee6b31b13cfd86653ceb027c84dfaa1885b82510de22e0ca1e365ed783b745190809482a9f20796617e3fbc059c2";
+  sha512.source = "49252913e7683100f1f12c5bf85420b6de4832d68af740fd8bc0f7fd1a18aa9e39005f6217c89c4a532aa72250bf0dbfa6de7f5991dc48fd6fc8b91e84606a5b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.5";
+  version = "1.6.1";
 };
 fwlw = {
   revision = 29803;
@@ -19401,14 +19745,14 @@ gamebook = {
   version = "1.0";
 };
 gamebooklib = {
-  revision = 63424;
+  revision = 67772;
   stripPrefix = 0;
-  sha512.run = "84c24df164a2f74e790a5ee64e3041510e7f9fc1f64e82a4004d8cf2db8c9c34f1853ac43741b5be08b98e44e9f3269e09019a114578036c7182bbf2a03e2e84";
-  sha512.doc = "7584a7ad39a267f71a84111c17ee8b59393672a69dcd128004a368045a2f9540f1eb21a62b596be7dff29551ef6411fb53f9b0857ef841734cc26bf8acfe34b3";
-  sha512.source = "9e00870190f03892ebc2c8115b4ba46e88244b3824d732d4dce6b767c0b5fb479ef5f009a3c8b02f58278c140e399c3bc7b501048d94acc7e69647f679c438df";
+  sha512.run = "b100e95290634e0697bc420259b287650c8bc436a950749c8f60955b4bb1f622f692730640c8b882400d7f1ac7a9cd847cfeacbd5310a5bd57f3925f21766159";
+  sha512.doc = "f34592d3d47f5cff749fc0bc44b4de233a13bb962674cb22e06dbabadfedfc303049c73b18cc0807e0f1827ab583732a0019345991b3bedd6daa1f3e84c40108";
+  sha512.source = "0c97580b9451a154838e8e32a67f3dd2af36d1a9e3a464d0912a0ec2e6a1338f617855ff49b199cdea21dabb2678b1e99c58dbe2a3ba5c976eebbdd87edd5a20";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.3";
+  version = "1.4";
 };
 gammas = {
   revision = 56403;
@@ -19473,11 +19817,11 @@ gates = {
   version = "0.2";
 };
 gatherenum = {
-  revision = 52209;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "f0a0897ca3b306341a8af5121d09b31d9169a90e073f3d2babc2b4a32b72d33b4f7ded73f2455e5b6e7454188112440cdff97c4332f3396c948ace8b2944598d";
-  sha512.doc = "9e6e1c322aa19a1c3ccaa622cf8657dd314dccc0fedeb7056e182bfc648fa21b06b67e8d1bf2d529fbf84652a0d6eec9d5a4ffeea1003dcfd2cd195ba628c6f5";
-  sha512.source = "5696c57b7a05132487fa04c16a577531886e8e443aef06e2b3b6418f74d2d971160cb1d95df43ae29c81ebde9459f8611bdea151895f8390e03d5ff2193fb318";
+  sha512.run = "c700375b321db078bc99492ba42c03855a80db6c1661590dba6763d52c65ec7c86a9889a38956a5015b78416d8c7a296efd764d1eaa758891cd8c7f7d4cef8b4";
+  sha512.doc = "a1f184ec862cb4d343b4dbb8014faee217a61e1f72418a8472a2a46b6731af4e3e767755f4f367631f40199aafd449aaee9bf409e9358822ed6006eed495d4ad";
+  sha512.source = "378a9b33f0b370fdcf8b068e8cb58def5b9c66b7cae4a72cd02d4fee61edb060bac43fd30180c5709b2e7367861430bbad0ebc812fae9520fe72382ead5b0354";
   hasRunfiles = true;
   license = [ "gpl3Plus" ];
   version = "1.8";
@@ -19549,6 +19893,14 @@ gckanbun = {
   license = [ "mit" ];
   version = "1.2";
 };
+gelasio = {
+  revision = 66805;
+  stripPrefix = 0;
+  sha512.run = "d5ef910eee7b3e26a180c88ae104da77becb4bed3a955938486d6763c2a0dc51e71ab6f9351304894d5e531fab714cf75f6a0cc421d074b3ac86931698582274";
+  sha512.doc = "aa49c6e0bebb4c097b78ba11781f7027b783c6280a5fa0e3077f9c1eb20f6b372b3910f5c78b0103afa2429938a94b277bdcacd210afb8bad2bac92f5022ed8a";
+  hasRunfiles = true;
+  license = [ "ofl" "lppl13c" ];
+};
 gender = {
   revision = 36464;
   stripPrefix = 0;
@@ -19577,10 +19929,10 @@ genealogy = {
   license = [ "lppl13c" ];
 };
 genealogytree = {
-  revision = 66516;
+  revision = 66513;
   stripPrefix = 0;
-  sha512.run = "cbe9d30d487524519153d1cbe8394f9659b8ca35e933fe1f48d22a16ae4b74038c2faa08e0e0ca12b54dbe7e4ba9174960e1d76c13b90a724d7e050590beedde";
-  sha512.doc = "03d9be99bbf1029b6747ada38714c50b805d18c2026856025f9b218cfe1ddf83bf5f412bc88270045b5a9709d724f0e745d1445a4e200dc2f3925f5e70760711";
+  sha512.run = "603091897c07e0d6643482ee754aa9f0a49ba4e71e3a426c35404f46c6f6fc43a6d24f721023706cf0c03b152ad3153a8322b440a89ee6542edbb8aa71a384f1";
+  sha512.doc = "88757eb6be6ade83a5125da7bb7bd0abb3d56367a330607fdea9b05929c8caaa4fad0be79863006e9048daa66aa0ce7ddddd1a2100ae9dfcfc835456c08453f4";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "2.3.0";
@@ -19799,10 +20151,10 @@ gfscomplutum = {
   version = "1.0";
 };
 gfsdidot = {
-  revision = 54080;
+  revision = 69112;
   stripPrefix = 0;
-  sha512.run = "1f85b632dd3ff67144a83f9804d4408a4a39647303ede905d5ebd5386ac519ed73ed65cab6cd07242c72fdbea94650eaf25b6b4e7a09aef1c71be62f399c4248";
-  sha512.doc = "7ba7a00cf878c99c8daf855c0124d4027d7404739515079b2c0b2d7e38abb508a1b7e05beb2ee5036bf25d2b2a5c2377e4f397042b6bdf22376ab4a9a5e115c5";
+  sha512.run = "436a8cb4ea88663ff3358d6991fce9364f197027797903eb1b5c74ec0a857059579f0a58597ca6427c1651bf89440d7b7c8965e79fc668ecf444dbcc9f7ed4a3";
+  sha512.doc = "29b49271f62496e6537e84301b361d372b24cf208365d97f3ac1d6d5b82fae84ff82954ad45e87201eee0df9dfc58f3486049e219480d20add06e9eef934f17e";
   hasRunfiles = true;
   license = [ "free" ];
 };
@@ -19946,6 +20298,15 @@ gitinfo = {
   license = [ "lppl13c" ];
   version = "1.0";
 };
+gitinfo-lua = {
+  revision = 68808;
+  stripPrefix = 0;
+  sha512.run = "797d0a601440a08d5e1f2bc24ff275965e1412d545ab4ed88d8f174154d38da0f7c18afd10546d7f8e1bb0b98d395c9a9a36fae79cae671360124f07516b530c";
+  sha512.doc = "8724e388bfb545f5ffeca862094c9a5bee2d5635e1beec0e7d4f744c46b03ea63ce293a6a193ebcda5d53b6b54d3c96ebfeef6b5f15a1439d6ae6d4dc01ec31d";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0.0";
+};
 gitinfo2 = {
   revision = 38913;
   stripPrefix = 0;
@@ -20020,7 +20381,7 @@ gloss-occitan = {
   version = "0.1";
 };
 glossaries = {
-  revision = 64919;
+  revision = 68437;
   deps = [
     "amsmath"
     "datatool"
@@ -20030,16 +20391,16 @@ glossaries = {
     "xfor"
     "xkeyval"
   ];
-  sha512.run = "a805158d4c2741c4efc707bfe417032903630d3f235c7431a3767e47592d8b9be2d64f6a14f21a0c7a3f4b37cbcba90d501c0ab1a551fe16357745960f362a1b";
-  sha512.doc = "24e43bacdaf3d3680b49460849f2d4eb652f2e2103558edecff0cb78d261d0275e5f416c7fe83857fbe09f7016643849ee5f030e4b3db167f469960d7791489b";
+  sha512.run = "bb81a95a1e379ec87b569d94ebf08f83823f825a70138a3770a3d1236424b976a98cd1265e7d68771460e6e96827761d697ddf0dbe48872c802414236e0065ba";
+  sha512.doc = "d11140ef1a6933170e59d497c57723e62d7ba7abadcbd9d3ee91e50171101d3e0740b0853da803bc7b9f56f86d7fc6cfedbe985e5e341cb775e850ee7c8ccd40";
   hasManpages = true;
-  sha512.source = "5240de5d2c942ec2eba38e76073f230265ce74dda641622acc8aad4c5856c1e8a749d01829ac39fc4b83479d9d24346270507c0f4bc5b957b7f4f3d07c4e898e";
+  sha512.source = "01ebc5d8d91a666a2693a039305103a98de9b2c7a958a40be04275e948664b3c5dd4818e4bb686a3a2a681b0ee38360a43fa795ac4537f8d083a2637ccd3df72";
   hasRunfiles = true;
   scriptExts = [
     "lua"
   ];
   license = [ "lppl13c" ];
-  version = "4.52";
+  version = "4.53";
 };
 glossaries-danish = {
   revision = 35665;
@@ -20082,14 +20443,14 @@ glossaries-estonian = {
   version = "1.0";
 };
 glossaries-extra = {
-  revision = 64973;
+  revision = 68409;
   stripPrefix = 0;
-  sha512.run = "e7e28773e9a8608dc86715e7ec984f8c49439b0a2ef22805fcf555feb44871a25e4fdcaccda1ec2e758d1cd28cb10ec89a9502899794412d678b7262058ab58f";
-  sha512.doc = "d8de64c98fa04db207d890f7ad2b52ec6eb8fddf61daf16b17a5b4520dd4436ce647a34cac6abc04091573af17e07c00cc3af473dbbc82d89e181cf680696427";
-  sha512.source = "09427bee8f2e23f471b84689d7ef04b04e6444fee8735e187af80bebe1027a0de11888e18646f6c07ddbf81b760d05de898169d3e2ed968ffbd35e9fb46c1f95";
+  sha512.run = "65f5a9e3aea0c8f419c530a9b989b0296830347cd0f1ad4deb0d879ac82970d546be4a907f90c917e35b7197dfa6b16fa6f1b4318a2b7aae74bbe924580fd0dc";
+  sha512.doc = "f90103cdaae2e6ba00cfdc82865a4beeab9f76d364579396b8710d81a14a71cbbd6168a307889664b0a289a34f9f7f9c1c69f449b09e90669184a0159c8aaf90";
+  sha512.source = "3eaf0e0f29949277c66928fb0952cba6e568d700c118e32e7045628da340bfa12aad6b1b6c794c9dd79d73bdd7e0e120a4ba2418e7390115a611696520e39488";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.50";
+  version = "1.53";
 };
 glossaries-finnish = {
   revision = 54080;
@@ -20151,12 +20512,22 @@ glossaries-magyar = {
   license = [ "lppl13c" ];
   version = "1.0";
 };
+glossaries-norsk = {
+  revision = 67141;
+  stripPrefix = 0;
+  sha512.run = "8e718082194eabed6a4448b89a703a3b63873286899df02824cb4582dd7fea0cf0c1496aff95139b8a4f0770d6d49c5257ca3db14b3581eb529f2a7e95858308";
+  sha512.doc = "fac57f6cecf17f22de50fd360e4069d2c0eb8dc3283e00ef1a46d86827a411e15e3a2228db08165b158d384448aaf6beeeeacace05390c428bbfba3bff553ae8";
+  sha512.source = "f90b767ec7d7a3ba384198942ca6502e33f6885cdf9cebfb00299e7909c10d70a4b5cab58dfd7b0a39f366b667a1ae0c1d3cc89ed91db415625ea0b2b0367fb3";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0";
+};
 glossaries-nynorsk = {
-  revision = 55189;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "8f94d41ee925f91b8646a9e01caa008a56757a46da5a642cc0142d0bee5fbc192eaed4ef914c93a40840606f569c5f20dab5c3d6a5fae26f64e981d12f868832";
-  sha512.doc = "aae437c721582343ee9395881479cf3d0c0b7d26ad6642311a63f0ed1e0aaf03a48e456f3e21d530dfef012a9f68f346827fe1ac5e7a509e1370bb60abc39e41";
-  sha512.source = "29a038a405cecd5232b3e015ee9e431e206f61691404309a9f7b47333f5d892ba629c9545a99e1a20a360ca0b3a72acca85ecd1f333e8615b856baf680d206c2";
+  sha512.run = "eab5020321d14af5af78a3449dd2b99333bec3e56014b00c5c7a1a4410c26ab715ee8d3631c5a19b4356af61ee1904650704c623b7d36f783424409481424dd2";
+  sha512.doc = "e123e0024f750a28fb3778ca6e4880c070524837dcca5bdb628d0b32fa647c8b2a5595a76d436567caabbe88d309a1711d81d5bef1c33542206bd3c8e56f3e22";
+  sha512.source = "ac2286ac8a06a40d0d15d5e4200c14d1c242ebb35c5e9d0c9a0138cbafcbde4f220798082dad3b521b33cdde9c569403fbf23066104daf1ffefb28078a9e0fb9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.0";
@@ -20287,11 +20658,11 @@ gmverse = {
   version = "0.73";
 };
 gnu-freefont = {
-  revision = 29349;
+  revision = 68624;
   stripPrefix = 0;
-  sha512.run = "c8ced8afc3b1b9108e5a4a82db54a9a28ac6ba5f4f379062b0d9d8b9724716ca98234a345c06c7d809b1ce609f817f0a9acba1ef8e94ecbf8f1301fd3bc9d248";
-  sha512.doc = "3b7adbdabaf996fe8e0cff7e1192cb7f5984103398b22af6f859500a0041a0ce2ac0c70bc3f17abb7294ba80e34baa5cc77639500fa03f1a2c1c93548aa2a816";
-  sha512.source = "df7be02fdf1e4559f701b67183237f95c7b6c1b9b22f3b65688bc84d96f97964755397e4cf9039229ecec8b5810d65042ff2d7c101ef7cabbb126e6e9c93b3c5";
+  sha512.run = "8889c49137ab983c2744a6ec26dab4c1cdf2de3e6809c620b5f2fed51d3025bdc018a9d85b93b85235053d6c0f672f8cb1c074e64b8cd971d53dba3535d212a7";
+  sha512.doc = "232e8d0be31f77adbb62383da35e1e37d7b952cc2e6157d6eeb4cbb7d5e1dc0794d9fb3185e68073c5cb2980a3d5a6c447f878ea8cd45c7e2b806afdab21f8b5";
+  sha512.source = "b81ca0245e9a7b1bdfb0745ade7cd9da0734a407dd8c5cf3859a7fa269b949f38a3ca18341b6ff0e1c3d99ca04282ed6dd9fe2923901a06506fc9bd6b677006e";
   hasRunfiles = true;
   license = [ "gpl3" ];
 };
@@ -20428,14 +20799,14 @@ grant = {
   version = "0.0.5";
 };
 graph35 = {
-  revision = 65138;
+  revision = 66772;
   stripPrefix = 0;
-  sha512.run = "c1846cf4e04e62641adb6b9a5cf9cdb6552fe8480ae167cdea44b8cd7959745ab54b269d083d927120240129572bc7c492b73ba1126e2afdce80192c0cf8e218";
-  sha512.doc = "f32a46b9fd564e45f4988a565aa331bf4971a0b2a5057a5cbb65fddd762060a7e7dc86925e8df3d7a931d881466efdcb3ea936b950181573dd7630d9c129adc8";
-  sha512.source = "685e0307a44705b0272ff8f2a61d90768a05fcea33cc913e8645f1d5a4768078133a645fe73b0571d87ba0000b4b13810190eacf60bc552dbb6c43bd46f06406";
+  sha512.run = "6449e4a42b8de0556d9ab46b3c5f4e0da94fe015b289877e1e9a5ca6f5e84d2f0d621e8f02bf4cf3959807f830f2671124e725147fa033d25444eb14048fd77e";
+  sha512.doc = "bbab6b3a5a8ddf69de43815fe54a29ea376839f0dc8e1af47cfcdc55cbeb6ec93005c1c137fe717b8b5c81ca5ac87e0d2d7b0f181608fa1d7714ac2aa37f1e3f";
+  sha512.source = "f058197a060da4bb7525398bf51f76b595464cf2253fbd8135d20e0e9b66d12def451eb687c229a96a7f2f79afcd66b768a4db37d448824ff9597eeb3a7ae903";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1.3";
+  version = "0.1.4";
 };
 graphbox = {
   revision = 46360;
@@ -20448,15 +20819,15 @@ graphbox = {
   version = "1.1";
 };
 graphics = {
-  revision = 64892;
+  revision = 66204;
   stripPrefix = 0;
   deps = [
     "graphics-cfg"
     "graphics-def"
   ];
-  sha512.run = "e123ddcd0af8ddd37519076b86a443ff74af4da4a960446708c344a2fe75b700a4700db71414cfe06470532ef863926e5e45b9292f81dfed07f60323543e92cf";
-  sha512.doc = "9ff56bfcb46f79ea455797e6582a04ce4e8539b395c988382359cdc7eff81544861b85f3b9303acf12a3f05b66aa52311d776cf3d12404b976068369f3947e08";
-  sha512.source = "a23d65d454559f6f84f3a810357d31153bec5d44c8ccbf142b1ed14eeebda7cb7c385de9b5da7ce225db169f05e6d155263a097421c84af6e845b1acdbe36902";
+  sha512.run = "cd36d380c8315829f3bf711dd970d5460f00e19961671714dbdf5928c2e842d33438221ee1fd9e45061a2adabb7f75eb34209914229eca872f2bb7fe7b346a16";
+  sha512.doc = "b2a23c52e19eb8f6eeb53951f5fee9015f6d0ebeeb8a97f1bf4db217498ddb27b62d028b3554be3e5ec3b866d1d4bcce6bc805761e981c718f123f6688ba153c";
+  sha512.source = "45f998e3729e81f50cf7c064d1a3926c18007069b4a89b478e87a6f97f3e6820eb5d58be6025f374b05d9c443c8a101918ebff84de512366f5415e041356a848";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -20477,10 +20848,10 @@ graphics-def = {
   license = [ "lppl13c" ];
 };
 graphics-pln = {
-  revision = 65187;
+  revision = 68760;
   stripPrefix = 0;
-  sha512.run = "968848e9ed432c21594670df42354badca67c38967a716aebe3af678b4904d295f908365532db6937f76fdd4a5195cae2f85093e96641bb49c5f4323797e9aa5";
-  sha512.doc = "25628fb24b2817d8bf64a919c2bd29ee3b7fb618e5d3eccf7ec4d177de772f1a580d2cc5bddfe1e69792d88804f28e9e8bbc8471085d5ede1e95f78663fb5615";
+  sha512.run = "33c1b9a4db0c564df07360c17ea89a7cabd557b21e2703e68532388f7b977a2f99f12c6d7002e9297b8e35259a42fb713fa0d2c49e6c9a347845755186437c24";
+  sha512.doc = "27600b6127990a06a75ad8aea49a86b8f16b68ed306ca3ec54762124af02ddd1859adb714eb0dadcacc652578427d230d37416cf3326f567239dfa4b9d8b53e8";
   hasRunfiles = true;
   license = [ "lppl1" ];
 };
@@ -20553,22 +20924,22 @@ grayhints = {
   license = [ "lppl12" ];
 };
 greek-fontenc = {
-  revision = 66516;
+  revision = 68877;
   stripPrefix = 0;
-  sha512.run = "fb8c1a71409b90286cfc0bc9be6049fad47416611c1f02a760121f4a585a8a9b8da5c18d06b111a51cedea38165466a3f583a4fe456e8d3b6a3c150d76eef0d3";
-  sha512.doc = "a83257b0205cf4cde35c460b5b06acddc29d7f70a8ac46d8ada195a033ddfbe7385d35cab07fb0bd0c61d627d0c4956babc16041b6ad569e6bff14eacc004eae";
+  sha512.run = "24aded84aee9dbe4674a019fb3ffbe0d48fb51d88908e532cbfbafbebd8dda63ac6d2d47c907d32063bd57c3c9d90d51b1e8f1f59ee4fecb451f20002d4a1115";
+  sha512.doc = "67f22594152f543a1b59e91a49168b92d6e9870f0c362a69746c6d3ac9fa4918980df4708bf1a6697fedcfd519153b9a29d92114b6567a2ec03e65210eba3d7a";
   hasRunfiles = true;
-  license = [ "lppl13c" ];
-  version = "2.2.1";
+  license = [ "lppl13c" "bsd2" ];
+  version = "2.6";
 };
 greek-inputenc = {
-  revision = 66309;
+  revision = 66634;
   stripPrefix = 0;
-  sha512.run = "a4846b187b1831399bc4210656aedf232d58e8d96841cf615ae1b5918aef79b27e1bdc695b98cbac6cae8a5a36f9043febfe83101e291d154b2c7561da17a56a";
-  sha512.doc = "9658b09102198d7ae3d58fdeef89c55d88a393a2d8bcc14df82b42a97ba6cfa1a8ef5136042bf09f04284dcfa76d7ce9171b47c5d3a09b2f6015135edb3ee8cb";
+  sha512.run = "47dbf3388943440918879234037ddb08a8ea7f2851945273af2a01b032484e849af3898860f1daced148b770c4146701a987afe3ba3b8b66dd030bce36c4006d";
+  sha512.doc = "2f85fc72c0415b48fd74ebe9d19e5ce86440c57c08038e96a2d99673143f2848bc347e95f7beab7753d0921414fc635aa9b4f98eafc91fabf64155a55a407bee";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.8.2";
+  version = "1.9";
 };
 greekdates = {
   revision = 15878;
@@ -20747,14 +21118,14 @@ gsftopk.binfiles = [
   "gsftopk"
 ];
 gtl = {
-  revision = 49527;
+  revision = 69297;
   stripPrefix = 0;
-  sha512.run = "cd1c08d092b11423d77a87a5fd7cf4f62290aebcfd6a99b12dca957e075d0b26cc3c482b45e5083916bee3bb6aff91940df375ca4b1dbcbd9fc37a31d8709aeb";
-  sha512.doc = "2f41bb930e46a95d5c7acb07153e5d874724ac009b2741f6f2e62a9b56165b5e2cf06cf8c89cd9c1fc42a1a93babf6761d0a48b418ddc0a0f5d38e9c2f31f175";
-  sha512.source = "5b5d004fbd3dafa14102774a3bf57867df1cf9463630a7912d49303aa9daa2c147733badeee3f628c0d7c2c9b8081131ac39f195f6dfe97d659a945702b7eae2";
+  sha512.run = "18cac75f4370c759fb74079c6647553f5d91a8aaab946c46a54c40b8ed757e3c14fbb2f2f5b375e691c8599a7f7d3ca4ebc5a748f18ad35e507305a5e5d8f73d";
+  sha512.doc = "ca1fd56abaf08f10fc6c830b51d799a71ba00c11d94e48619f6ac44f151920e8e53df450c23426a860266d5c6347b7c24c9373d152be80c2ba5023836df6f89f";
+  sha512.source = "e1ca28c2729e2a4b10ba53cb3f18a657ea1ac7cc0b3eae8b7d13b70ee510008b90d900eea9f5f48ec8b0541638e76ae73e533493ab5b1b0de020d3ad39b95561";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.5";
+  version = "0.6";
 };
 gtrcrd = {
   revision = 32484;
@@ -21012,23 +21383,23 @@ har2nat = {
   version = "1.0";
 };
 haranoaji = {
-  revision = 66119;
+  revision = 68501;
   postactionScript = "tlpkg/tlpostcode/haranoaji-tlpost.pl";
-  sha512.run = "96100a78ab4292a4dc656fb70e2973f75ece3964f3a0d85d9f9153b7052ea90c14f074b195d31e46465dc52ea0516541a16981239abf552861dbca16fac3ab1d";
-  sha512.doc = "bb4161c95b760c9c103f086c134d7f7528dafd92f82623dd95322ea644b86c35e2baef05170c3c67a7f1c4905dc8a5fd40108db1c65074b558eec69f0e3c6910";
+  sha512.run = "2ff313007fb9b93503ed6d703c976f639d878ccc706060e0a26ab8a21ffe1d4669aca9df9fb001c886a1b1f7a0e140403253aaa5ef76a6e91d327c504fc251f3";
+  sha512.doc = "1c294bbfbbcc6abbbcb0cdf6ea29335d2b1b039545c1dccfe60e8ae4f1883d2564a5924bec22b0dc817e4eef0009108df348d7af788afee1dba4f1b7f1ae30d0";
   hasRunfiles = true;
   hasTlpkg = true;
   license = [ "ofl" ];
-  version = "20230223";
+  version = "20231009";
 };
 haranoaji-extra = {
-  revision = 66119;
+  revision = 68500;
   stripPrefix = 0;
-  sha512.run = "f12b9c3865fbd8c94e6138ab44b8a9ae35b66b3d0e0ad7d07f4ea3c468b84458d335543bce6e1b9c7daa5be622c9a0fea92c585f779a69ed01e952cda619bbd8";
-  sha512.doc = "881a80dfc5646a9e872acf0db968a40f5e151aed459d29045f4e01c714fc7cdb7d51012862ec8a81bb40c81b5c9600a007729a473fdb61dd12c18fa6c41f7394";
+  sha512.run = "79b1d71d80bc73681f1d1d48679c2f4586834d7dcaebceadfcc17ba49fd6c41849cae77a88ae4e45f7b2f535352a27aeb91089cdfd5a75b0af88024988617422";
+  sha512.doc = "3331b5113f2f8634ddbf4e280aa7e7b8f82a2ecb494b29d2a1587ab338130340084b1f70402e70fe2c0039ce57a4665030581323c703ed504caebac823a712a1";
   hasRunfiles = true;
   license = [ "ofl" ];
-  version = "20230223";
+  version = "20231009";
 };
 hardwrap = {
   revision = 21396;
@@ -21139,15 +21510,25 @@ he-she = {
   license = [ "lppl13c" ];
   version = "1.3";
 };
+hebrew-fonts = {
+  revision = 68038;
+  stripPrefix = 0;
+  sha512.run = "5c27626c22275c42c25737d35af3c39a98a921037f6b9165a3222e168dd2c679e75e6854f88713681bdaa8eb8961bf58cff3b34c207bd1775ffea474b3524ffd";
+  sha512.doc = "bc7f81a0f09b544bee91bd387504f5a764e7a6df207f3255f5ba25b1fe654532b14e2c7ea9d1d2804db875b05e210b11058eecf7c15fd1fa7a7b516e2bb20207";
+  sha512.source = "21203d9e15eb6d3533c7a50c5fadf2cae403dbda8316a57d2a7e834ccbbcedd483f11fdbe12d1ab72ef9039e195f31e57eee1e0df8548da052bb030576557eb2";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.3";
+};
 hecthese = {
-  revision = 60455;
+  revision = 68584;
   stripPrefix = 0;
-  sha512.run = "c7956496814a25dbcd42c7f0034e32cb40746da09e8a7d527b1b5cdc4d557971b55117ad35b60db18e21bd2433f13d3850fdf9e2364184c0dd9e7a248be2896b";
-  sha512.doc = "680b2cc373f0b7bb265ff01f3d07fff56c07e5c789a7528a2257b2e4282da510874611a4754c5b65d88ded8b8b32ad1343706dd1d77e8a4594c7291fa5b201d5";
-  sha512.source = "fd4318bb47d45336d5010544f0e048a8b23d1a2f33cb0c7c24d54fcca59c20ae62887285dbb128f234170dc0cd057e96793b8012274ff400e2f63da0821dd309";
+  sha512.run = "ca64dc8ca2265ea038ac3c2250c4ead4aedcfda74ee28077db2b9f4019f2ea304ed02e7349ad0a191012d2c903a1ed21b879459c048b29827ea3478115c935b0";
+  sha512.doc = "28e1e4940bad5a6f76160f42adbf3f5f793cc9a7cd869dfee2389229335c09036044d79d3e14f179d5e8bf32304c04fd23ff997a116338c4a3500906fa6bd1c0";
+  sha512.source = "348f79081082f3b1c6362b2bc7a59b7d55947955a482bc5f323119ce3a47158ac07f44c2a95aaeaa3a3c9f2d99f322f3a163b90bc7522d613d55311973639ee4";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.5";
+  version = "2.0";
 };
 helmholtz-ellis-ji-notation = {
   revision = 55213;
@@ -21176,104 +21557,114 @@ hep = {
   version = "1.0";
 };
 hep-acronym = {
-  revision = 64890;
+  revision = 67632;
   stripPrefix = 0;
-  sha512.run = "2a63980d54f5b00bd495ef5c44ebb32d9a75723ce79b9af131cf65da4d114eb3812581a2c305126d4c166c78bda21e164eda1fd127c3d3f0514a4e5f34cf3621";
-  sha512.doc = "ee7828b183307f94e5b77f44d228af390432ed51e5a75e96408c187139f08f9c7f19cbf80e1c752ab38b55ecdca9b0ea99c6a1043ae1eeb03ab0998398091100";
-  sha512.source = "7cd7b4619e13cfd97058dc7ad57d3c24ad7de4b39c7ae606c98c6a8c1be67cb0f370df17ad2325f62bd585abd4e98836f33e9201a876f90a5812b8c937dc1827";
+  sha512.run = "3eeaf8ba9215868df3ad2d8eee5ed17aee0f91c5404b8c93a7ab378ff6d928660853f8dbbab4cc52421f0d902936983a8cb34badd675453d2fc30344de19fb1c";
+  sha512.doc = "a17c6f61a44253d6f9db070392b146f0fa297c080f04577f30e190a2742e344c22b3d70a58d3609eea6d981e843bded2a1a01b3fda356c822b1f60ef7ed05271";
+  sha512.source = "83b2899d05ac7f8b2e1525e76327303a135860a358c08dcfc6f9d1c66e79c1d743f77a625b225c477a39c07a091d282ea2869fa9f5189ae4e3007e7e792fefb3";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1";
+  version = "1.2";
 };
 hep-bibliography = {
-  revision = 64888;
+  revision = 67632;
   stripPrefix = 0;
-  sha512.run = "205a5614ab353eff09732cd428b3ee5aa8ea6ae107b7d2c5b988a86eb218c06f70532d0ba6f4dd124e560e7407a2f3fa5832f04ca53094b55c26b043effd5a13";
-  sha512.doc = "24e38cb835bbf1849c56a6635c7680e86cbb3b48c9c06442c4bc431837a88c739e38cfecf86d8c9c35864485c92bb00248d261bd0dd794e6fac94f80d23d7b7e";
-  sha512.source = "0ae3ab366a1d11ce3076cc96cba73a5526a81bc7c429a1e9f81d122a9d35b016b83d54b7cac5a06916d2a46e183ccc3ff759e163140299ae4e280146efb075ea";
+  sha512.run = "8fa9f0a0f19f7dcadc88e727c461af05f3c0723d2eef1c4c7cc91fa0b507a6cc20f0414c82f7bc3ef12932ea54e8fd9c7c402fb2041032e23ee14c6dafc3a467";
+  sha512.doc = "388fed1b3b5b9de09ae4b1cb73de2f618f99293e1b3a4cba5ffaa2d5ae611e454688bea2ce01780ad844380e2de56e62c38013677bbc3a9194d0831de4cc97bc";
+  sha512.source = "5e82014ec9abfc9ff19d01c929d7475f6bbc38d0e77b9888f884862f17c1332a868153315af6d13c023e8f94b3d8b567e73d610ebc17c2df799692c603d5b509";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1";
+  version = "1.2";
 };
 hep-float = {
-  revision = 64904;
+  revision = 67632;
   stripPrefix = 0;
-  sha512.run = "418e6f0f1811b0c5604b397dbea4c79b1f9996ac87304eb8785def44d23c16a5ad9497d66b04fc342a3d10ac6a0c9bc35c5c222894e24bbc8a49c5fc9fa32ae9";
-  sha512.doc = "e26b9d807922a614adee0e03c39300ff77b3f52cdac2e351fdf9343a6e24f0077d14eeb650baf1c416a78712080b71bfbf64853a94af6e96f67c4a4a84244440";
-  sha512.source = "c28a1b88639321188acd863fe75e8a8be63c03021eaf503cf5a0541a0674065b64df88e1dd89da5827388a862c56fd5762b6672288b72b5fa5271f9dfa1f32dd";
+  sha512.run = "ccfbce04c651a478a811b2148141090fffbdb3851a05b9d3fa7683943fde9e6579eb75693c4b2834741b6cf02a5b381d1f80bcec5d44783e71605e445840145a";
+  sha512.doc = "11c922d42d6793dffab0cf82f228f554510dc089956030c9c5e76b0a17e4d96ce2ae4d95533f0f704be1d4054f35884901a61ec851fa73f68b06c87b93f18821";
+  sha512.source = "c896cd60a4b8b4bf2bd46425dc615a55132fda57b42ad536807bba8cfafb65feef34cdacd4efc2b90de2b30bd859d6695b4f670d5f507786c48d19b8d0dea842";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1";
+  version = "1.2";
 };
 hep-font = {
-  revision = 64900;
+  revision = 67632;
   stripPrefix = 0;
-  sha512.run = "57a5d12114bc9dc36367a9086e4ac5aa6bd3b84edcf48d724284a1b04237b95adf7b15bfe5b0e6aad35b38a759d4cd4cf3da62b8bcb31660602a3c2ef08f30d4";
-  sha512.doc = "a0dd46bbe862a9e9fa8c6c69dbc393f58d0a5cceecce6281ebdf2da87b78aedee1f57439cf28aaa0194d35b54e735b9d55154c6879e882e5ca4308cf7b31437d";
-  sha512.source = "a6e6118562ada743d6c11e733c781f4b40690e9d203cc05fee3c039598d147940d544b8be06f88bd9bfde792d593daabf947e705e63f127080fc63c7695f4f41";
+  sha512.run = "a70b15ded3774985b31a78ae5d05572922133d3fb59abcb482677ccefb6767726b902b62007e9d0e14950ca9e9f133c8677d6c2d352e0f529a3909b5f6da867a";
+  sha512.doc = "97a4c20933260eb24a935ed7a780a6e0a49f8b305872a33de5fe6df439ead0e555b909b04bd559016451bbf5cdc3494a3854d257b1804bc022a8925166103877";
+  sha512.source = "d85c106c458ebb002830f7f0cae13996f203bbc3377c66bc2776b7c501e6c2bea26530955b250eb5dd96fe4b6a18af18c9b616ca49096b9133d0041782e2ebbd";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1";
+  version = "1.2";
+};
+hep-graphic = {
+  revision = 67641;
+  stripPrefix = 0;
+  sha512.run = "59dc1363cdcbe8376b5d5de1a2220c9d70c7022d1d943f657ff226a9ec1bafc302b30255983c090656d293c0995095dc325e1cafed113ff43ea74d2a85add741";
+  sha512.doc = "9398029fe703f385decf3ed9295cf64501a9ad7efc3c50bddf1ac261e780dbe5a4ad9fe5f1871c2a8f081909741ec11a93b2b399b89c841cb9b661d812f326b2";
+  sha512.source = "fcd58e2b778eb16b6b0cc9d36d44f233b9f2e40a243dc8792f37b8159c4ec3b9500df418465ee2c809bffb24d919d8295dc83b661553ab413390b0b5cf32b9c6";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.2";
 };
 hep-math = {
-  revision = 64905;
+  revision = 67632;
   stripPrefix = 0;
-  sha512.run = "5066944fb9c113e38e1055eb668709bb69f654871918c74fb784cc91138c45e06b26e55a2b14ae69c35757d181c46ecc87b2684128663765371eb5d3cf46747e";
-  sha512.doc = "98f0a956d9e3015e4db038ab9cbdad943303d9bce072367b3e819a6f3054226a2dba26825bed6520782227bf1e2f39ee81b90f3dc1a7de73ba1db4524ad91451";
-  sha512.source = "4c4b0975bbc75be8adbb1b2d020da2dcb98c6dfbd4fbf8ee40770510206d24c89e0132140f0376a5055222f5bf8ae7ad46cd6aafa6b6d622e64024d29560f1a9";
+  sha512.run = "4446d255ec62b12b2eec1958696c10f4d55d83e3ccf30590f40d146d1305db3a351894c73d03baf6327834d0cee4592491c0a3a57bcfa7f95af0e172fef3148d";
+  sha512.doc = "5110d1cd03ca6b925ba6872932cb53c99068399a5329d7368189229103e13f79296bf6b97b2097ab800823eae6dd14ac408fe404d309c37b1e6e9a20c6543ba5";
+  sha512.source = "d853885d8f6910843558fa4854b51719e3d4917a324096e5dc38cbd7b701e8e250dea3a86fb803637268f36858760c2ac82ee147cd982df0b1516b93cd92150a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1";
+  version = "1.2";
 };
 hep-math-font = {
-  revision = 64901;
+  revision = 67632;
   stripPrefix = 0;
-  sha512.run = "ec36fb9e13fc57148bba67e0735879c203e3e955cad88c6d8150c5f77d9204c6a6cf9c95bb76811ca8fd4ef950c49c7f28961772d03c96d14e37e9bb67766215";
-  sha512.doc = "b3fccd40b8133b29f22bf3841e65f7b48ba93e88ce241fdfe33a7a57b2f2fed7f2f5a9833df3634f17efc115fad130fb7c6ca8ada63dab03bc89487c0e6bbbae";
-  sha512.source = "d4bf264ebc8fc2c4f33878b3af6e44eaba50c3de3b5ada106f66d5ec9a51bca9d48be44026e62a12f54ec5ea016e3980918a32ef5261238f4f99e3958cbcdc46";
+  sha512.run = "0bf2ac1f414216568cfe4247f1c1c9187fbc8133831ebe7a55b2c2d3d30555db36b0c0c1edc2e8bdb799a34b20650990d26c1cc838c5a3a31c55bd9160ab1efb";
+  sha512.doc = "eac39c9916a87efd036b9f680ee9b774584845d1a3451b192857d5db72cafb1eae5ce580f1225fc6afdffe80e136f69ed2447f87986cdd3afb34adc9f9d9a49a";
+  sha512.source = "ff88e396d084bd47256015530ed0d9b6a2f29f67a0a88db018fa6c1efe5d949449a8ecb339e4ad438ebaec4f57792b8cd83496ccab23ca64e383e28ac3929cba";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1";
+  version = "1.2";
 };
 hep-paper = {
-  revision = 64917;
+  revision = 67632;
   stripPrefix = 0;
-  sha512.run = "16cca3b6d0e74a01cdf0904211c41e74c7a9d85837a9b6c37876cb41a787d94d51efaa8a33af0c2ffad33805eff6d91c8d1556abf5d96855da10752086352529";
-  sha512.doc = "f3d63bd7e422e7db8eaf9b2b61a177f09ba27e6f3e61beefa70d30022b680171321d969c65ed5105c1752da22d684e3e24e72a815ae145f8a314d3df252beb44";
-  sha512.source = "b70767a81d62d1db480b26f2ac5398d5db691ab538111b4954fa59be55f258d2a1dbc1d50103e4c0ad57779d2f10cd0a5ea3b73202d1ea737325c9ac078c2d9c";
+  sha512.run = "2cb6988dccd76f121a7aa39de3246559caedc0cc697a25382f7edf6cab36af32b03db915898f6073b31cd459e8dabb3da3acd387bd0c027e44d40af917613c76";
+  sha512.doc = "dcb2f4aff93c609edae00fa44c285cc6f5d5bed76026c8d5f3f722deee19dc197a28dad7372f2b44466036d6e8aa0e576457e07f953d36953219175224fc6818";
+  sha512.source = "ca7865f2f8ce574fec8d7b3a9faf77ae3899d75a2c2bc7200b8d355b89149cd88e0fbba66d5060f5b5cb567aa6a355d5ba45d34863f7fbd5749b4073e6114437";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.1";
+  version = "2.2";
 };
 hep-reference = {
-  revision = 64853;
+  revision = 67632;
   stripPrefix = 0;
-  sha512.run = "1a422d571817be0264385beae73effb4ac674f2e05396289373c0d0792f591c39ebc2bac21d9e6def0e18dc389b7af9f604b6aebba133053894b2874a8dc113d";
-  sha512.doc = "8952bc87e4a3cb1780ce51ea402b3dbe924b5e6adc9d05c9c0b75bb2e391c8fb4b07bab0f3419dc9f21bd4e9527eca5b56f6c10ef5a6e41d6c964e15cf9a5a0c";
-  sha512.source = "3a76caf01215ec123f930e0812674e67753727d3ef2adfcba12f0df9a0291739ec9493aa1b0536f749e976463b8c8ee90add1682109d44794c79e83967564b44";
+  sha512.run = "9cc4b4b63f41b28fa95fa6a81e47b5028c8ed0bdd03670c6d239bbcc09922265dc69b443ab2b1a4032cbf966a5202ff6e8b1a8c61afc2072e6628d11e071391e";
+  sha512.doc = "588d2c5a2990b44d64598cf698cc1d6e04e92991e5319167e412692d62ee54de5c6053e4e10ce719f470ed08c028d03f9dd301afb65be4f5370742fe621a80b3";
+  sha512.source = "84ca10f669a9541f7c51609b72d2caee0bee956489b4b9efeacd356548ea573457bc5cfed865b3806b1175d0d6b3b47793283589eda435b065668395a01a255a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1";
+  version = "1.2";
 };
 hep-text = {
-  revision = 64906;
+  revision = 67632;
   stripPrefix = 0;
-  sha512.run = "6355b807fbb0f5657ae14f0ab03864536a47cb5b1ba477cd6f0df6541602ee32dcfbb5837ac24297ec1f67cb044d53d27f202ba747f81c7cb9313769129ca760";
-  sha512.doc = "4b4d2319195f42dacc6b35787b54625e0db00119db9ae42c280b070aced46adf9fd5349ea8ae6bbe2e287b6f2abb40832087a3970d62b2f88d9b3bce72b9894e";
-  sha512.source = "9f0a4db06f3cb9858132e9f06530c779c698cdffd53993eb75f48a4c9b7c503b45b8f589934742609770ed659f8a0b307d59c20b7f5d0afad2ca65959aa39e8f";
+  sha512.run = "bbbf90b0e85a9b962267f42a2ced125448f8aa85bb93e347214164167a151e663f647b754e4b55faf42041ede7b6e90b6a073290056e00814ed25bf554eb20b7";
+  sha512.doc = "5c914c5b3bbda70d93fb340b863c656d67a480eb3f59c51f05fda65396d408ecc26229992bf4a0161fbbfe0801e8807381ffe7fa3a502ca68b56f5a3afc88caa";
+  sha512.source = "0052e0357e20251faab93ac645cec196a504881db615869e18073124671005a5c942e791705f2460f55bbc8bf4aa4906b74ff6cacc7174c59aaec6106afb5291";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1";
+  version = "1.2";
 };
 hep-title = {
-  revision = 64907;
+  revision = 67632;
   stripPrefix = 0;
-  sha512.run = "534e6cc0062806de3756d5593657bd481866813541fac8b5ca31655f03ef4f00c02a98eb366160a0e7621821d6636b1d4ecd33933ae57e31268001753e9c1b22";
-  sha512.doc = "c94a7eefa02a942fb0b751a197ed2d52d7b7f4a390e7609e8c122f08de59b83a421b4150e867d93881aa1bcab45ee345c76e2b23b566b0774658c0d08cfd799e";
-  sha512.source = "5f4d1d073c8fcff302dd1a454837e80d6a9b821cd0b25eb0487992c3d8c474348a42644ea5c3a7da414985b0fbc78f083e565e798a42a27a0308f88c8f153475";
+  sha512.run = "6da28ecfebbb06469fc666978d8674e81b60ce019e0f9a730bafab928d95af4d92bb8783275bc261a43cc61efcb14cfdd4973fa9f52b92f33d70890983d89e53";
+  sha512.doc = "3841dc3378d6f8fff0783815f68d75581dc5623961799a034410de2e37224fbf0b1d9ea6b0b65b9b5c339cad565520960d51f7077f7c785807e9afb5acf83d3c";
+  sha512.source = "40f64530f2328fafe8163d4bf0ce2eaa7ff34f3d1661dda967bf14593af9270e33c8e3eaadd79b7d9b70e065a8876afddeaba059c64a7b0759f1cffe3bf565b4";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1";
+  version = "1.2";
 };
 hepnames = {
   revision = 35722;
@@ -21320,13 +21711,23 @@ here = {
   license = [ "publicDomain" ];
 };
 hereapplies = {
-  revision = 65251;
+  revision = 68638;
   stripPrefix = 0;
-  sha512.run = "b89cf4ffd5299939b681a91acb6e06c6185bbca2077677aa551e3d5ae2463f823293fced819f242cee8806000009a47baaf5375aa4487568ad229a81208eee6e";
-  sha512.doc = "e55430f11a776d57c0ff022d11317986d454fcd1101a6df73afcb4c4b7f3782d1383a198d024e56ccf3950187017590e81128ca5a7e91247ae2e90271a4cd91d";
+  sha512.run = "b796f6f276bd9cdea0f469482c96aa42956417c544647df201a8dfecfc5041b726a1ea1084a51b392b6f71b3172961689cce0cc7be63c146ba7edc3dc8bcac35";
+  sha512.doc = "185798c65981f2d09b5c49ac3bfcca8763ca929399a9f534316ee8345f5550a437be10dd39bc886febc5d9de4156c0642c125ca2a033d129479c9cf98bc885c6";
   hasRunfiles = true;
   license = [ "gpl3Plus" ];
-  version = "1.0.1";
+  version = "1.0.2";
+};
+heria = {
+  revision = 69058;
+  stripPrefix = 0;
+  sha512.run = "2ddbf4e07a47f72b402087046e4778d7d655af7243465bb7ca4ec10c3c15b72c49d8c6343e4ece780ac4aa1e2007e3fff4f8eb395673952d8050e7b6803b275c";
+  sha512.doc = "08e4a34df324d61089a7632b2b8d2b41ff4df47fe633803c1c246525b86ec25ec40f6b56182432488a3cf4d1d90b36038773104d2c78a809b12d04f7a9a23bfe";
+  sha512.source = "307a67c4095b52687fd978da3a1aa90b4cfb484d5f00876c86bad6c7103d926cda269ea081781b08a4b3cc2990e6570f60590b2b431f6a3f9c4d5c58d43016fe";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "3.2.1.0";
 };
 heros-otf = {
   revision = 64695;
@@ -21403,13 +21804,13 @@ hfoldsty = {
   version = "1.15";
 };
 hfutexam = {
-  revision = 66555;
+  revision = 68829;
   stripPrefix = 0;
-  sha512.run = "990b88861c8e7c3701fde44ed4aee85c097ce158917dadfef8bd603adf07af6df3b4dcfd32c423629cf62b5de62e2862ace266d4941d028f73a55d07f4c69d90";
-  sha512.doc = "0a4643a0ee0288855069c8998f26abf4751c0a3f5df4c797e6b0673bfc9a743549b6119fc22606451edf9ddc2ae58560b3a93ba46739fc6376cc6c0fece59a5e";
+  sha512.run = "4ebc270b01ed4f0e9d1aa501cb16cc0594c209cb77423b3b83b43600cb1080fbbfa8ecd9d2512e460d7215260a3045f1f33f469762e8a7321ace472d69e0a43b";
+  sha512.doc = "bc70bcca6f0dc432fe6fbf1c92ae8a364a93a8e94d65cbd22939ee2313bd5d82e2446e60b6dc0f8a4b88e49f5cb2b3fef9ea5502e5362860eff10a8123645c40";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.7";
+  version = "1.9";
 };
 hfutthesis = {
   revision = 64025;
@@ -21447,6 +21848,15 @@ highlightlatex = {
   hasRunfiles = true;
   license = [ "mit" ];
 };
+highlightx = {
+  revision = 68756;
+  stripPrefix = 0;
+  sha512.run = "64919a37471b4ed0520cfcf8685a67ba2f9f84a278b9dc7524a484876e95072906cc5a7d40bd8c751ea2d4ec65633e589274e0b729f43625b46f91928a50b3e3";
+  sha512.doc = "ff1b00aacdf83fcc54021520bc447184ebf29498d2b5ea66b3c3266560066bc1b05d7f9edf61eee810100531c76db4c65814cb1d6c3051dd1e3d4911e41c145c";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.5";
+};
 hindawi-latex-template = {
   revision = 57757;
   stripPrefix = 0;
@@ -21493,7 +21903,7 @@ hitec = {
   version = "0.0beta";
 };
 hitex = {
-  revision = 65130;
+  revision = 66924;
   deps = [
     "atbegshi"
     "atveryend"
@@ -21516,7 +21926,6 @@ hitex = {
   formats = [
     {
       name = "hilatex";
-      enabled = false;
       engine = "hitex";
       patterns = [ "language.dat" ];
       options = "-etex -ltx hilatex.ini";
@@ -21530,8 +21939,8 @@ hitex = {
       fmttriggers = [ "cm" "hyphen-base" "etex" "knuth-lib" "plain" ];
     }
   ];
-  sha512.run = "5a88c0f4d7bddc0161ce24bbe17884a93469f9ffb56ea6a2dcd3045cb97e5c9d09941e44e365483bc5126e1c9c6970ad151e19573d93b1472534333a507f1c63";
-  sha512.doc = "3016748caa430c75689e27459c002abc8f68d4aa1c2d0be04b1f82981c44f7a3fd748f900aab5e4c37b16a56f884d5c0cf7d42323288c74cb51b72c19e0b08aa";
+  sha512.run = "b831998a078c61be41f376c73a63d2996ebbb128aa90dcc9f21e1e80d2e834d6628d150d9e98819defb4b38fcfd9e1ddd0239fd0ddea19d0086c7187d3d80a7b";
+  sha512.doc = "f278d0d4a4b37e4489ba46ee3325a9af5bd7205359b55f30a3de10de36182c754974e0b7a0f506ac233280ee395bfdb5a8f7f5c3ee1cbcb0c30480338968e0f9";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "x11" ];
@@ -21610,14 +22019,14 @@ hmtrump = {
   version = "1.2a";
 };
 hobby = {
-  revision = 44474;
+  revision = 68137;
   stripPrefix = 0;
-  sha512.run = "669c768dffa4e88d831d0a03a7e518fb2c101cd0af9ca1e15e6527ccbe78a13485145bedd4ef45cbaefcc94e4bead303acb89a0d0f50c6fc3a7ab312717febad";
-  sha512.doc = "7c8a353078be8b94195558d1d7a319173b4480a616c8725b99357ed3a086565c238b944b9b3baa719b354dcff9476aa7c7ffb055565df546054e662370d5d808";
-  sha512.source = "216ff34f42c28fd3e2303ff5032a299668881fbe51e8c8957547dd7953b2296e984a449cc09b79268b968ec8fcb8b774453a26e88156f5b7bbc6cb78a57de7e7";
+  sha512.run = "0caaaf772dc325e70594f909f1a58740224195aa7af7ef86571e7a97e1245cea5ad6a704415a3275719fadaf74ec55605e66af55dbbdff4c524f529e121035ad";
+  sha512.doc = "3e418503ef48dd0be479f17171d8c6767c77da95d43a2f31a374cbb6ed47c5129e2baa64ca15128240856790ea92acd2b090364384c29954266d2b9ec6aed362";
+  sha512.source = "5978e0c2f5c30145a9a5562661004a50cbb5054ea98907c25690bfd1c55f13190d74283ef79e7995d6f63d2d1516919062fe746b989227a4e95fe091ff5c9acd";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.8";
+  version = "1.12";
 };
 hobete = {
   revision = 27036;
@@ -21645,6 +22054,18 @@ hologo = {
   license = [ "lppl13c" ];
   version = "1.15";
 };
+homework = {
+  revision = 68773;
+  stripPrefix = 0;
+  deps = [
+    "einfart"
+  ];
+  sha512.run = "4b74d0a93d720252e38f7b8452cd781f37de2e17343b5003ef729f1b1d2b50978ca4a22c83fe0e5e941b92ec9cc31ba4301b322e3c4e2bbf18f96d8d14c0ca81";
+  sha512.doc = "e1c29c37dbdbfb968409a9bbc8c64573dbbbe477add7a3c938162a8189cd0689ceee8c2913b59a2cae21099cb0f0ef4db8fe7b23bb802d884ec20af61896907e";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "2023-10-15a";
+};
 hook-pre-commit-pkg = {
   revision = 41378;
   stripPrefix = 0;
@@ -21684,25 +22105,25 @@ hpsdiss = {
   version = "1.0";
 };
 href-ul = {
-  revision = 64880;
+  revision = 69359;
   stripPrefix = 0;
   deps = [
     "hyperref"
     "ulem"
   ];
-  sha512.run = "fd3ddb8d494b5b6a80bddf3e28747cb872452d8bf56e0e59cdbd19e811a235683ac0aff7e92e358f7b9f352cfc2b6c03f2263248cc13e147e4dad649fb331381";
-  sha512.doc = "9318e6fd357b9705e95db7600dea3b3b1fe2e7bcb0dffec4bf92b5375a8d7feaaf1574188bfeaefa71f05f6aa3728b51d9c7c72908cc66945a3bc8d5391583d9";
-  sha512.source = "cea37410dbfd8094c4028b96f03d8ac631a32f349098ad5acdbdd484a789d2da58a21f65745d647e05075226d8ad3e1c2217850a312afe522206e900c0b00eed";
+  sha512.run = "e8e5d7767c93d0f30a7cadadfb2c7644078b590e46fa073db9251426f961dbec4abbd0dfcf6db6056f9a03342a01d706e19da027f64a01adcfa584a9b1becd2e";
+  sha512.doc = "56babcea1003db2bc7456ccc77e004814d9dbb7711289e2a0af89548ef2e6b146f027ab7d0503628c7e61ba25691b1b2c7d5a24253e0fb08a30256cfde0c1e5a";
+  sha512.source = "eb842f9a9b01a36dd033f2079f0f4508eacad634c89c33e6c2607e78c6016fa441cecffe82fdab65c27870af5b3eedd4e0af45a9db224cd7c60c43a24b1b0d93";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.3.0";
+  version = "0.4.0";
 };
 hrefhide = {
-  revision = 66196;
+  revision = 66189;
   stripPrefix = 0;
-  sha512.run = "a6bcf0a61258769debb09ae41bdfa850137508a4bdae5e44f68a203f9a764fa762beced247aad29e6b643687cb7ba7e554349e96de7a5a428d54486579836a30";
-  sha512.doc = "fbeb8187af9501df6c6263d769f85ff08282c29e6af7648a7b9e4ab35877eb8d3d0d3369e18b9c4ee9a6b37c989394d275f68b68e6ec2aee1486bf45d7b118ed";
-  sha512.source = "55a3e5298a4625fe1612b8fab60e171557e56422a6f70076eb02abecca275d6b3237a62e09442355a9eed75df4e727db07b2075a5b75f6def09038455485c27e";
+  sha512.run = "f62671bc667f8a0eccf2d63b06b55e5483a7f5d1f97e4a1f829c898fe947adf048c21cac10b659160d6ee51f0ad4a48a3998a1e820e387881b6df390ce9bbd0f";
+  sha512.doc = "0ade5f947160493a66f8772d6980db65d0c52ef03b1c12cc2841ae40eeebaddb8b0af50a8c28b010cfe7689dd1bfaa136b80c419fe26ecad302699e754f372b0";
+  sha512.source = "51373bd9570c5df5ff388e9174875db7144e5868a0da8d5d27a9f4c332dc37c97436d1ebedb60c18b47a1e6befa07e5703fb1d6d5d5f872d46f3bc3e2ef71b84";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.1a";
@@ -21718,53 +22139,65 @@ hrlatex = {
   version = "0.23";
 };
 hu-berlin-bundle = {
-  revision = 57580;
+  revision = 67128;
   stripPrefix = 0;
-  sha512.run = "78944145098920198c331c54572acea4238fb4344e2ef7b8a53f587b4d1754a0b6b677d7d6ff15ee4edf19b8ecaa08e1728abe00a4a9f0c0300e8b5b11ceff82";
-  sha512.doc = "47cef7dab327828865e2cfdd50873d6b50bd370caeba4b107390895c99a0badfbf7a3778e1f6f2a850ed213e95f1f6a52e0f0ff3fc2f1f1beaebd3c177b82cb9";
-  sha512.source = "08f7fabd4df92fe01790f6cb843ed912dae1e554a15c4cc54d13121a3f61797ee292086de8312a7df50171e385c2b531141a1bbe93bda482eeb936e6eacd4dcc";
+  sha512.run = "57b3122fb063e5f930e5d94aaa94dd00fccbe865570c345abbb6252c42d3f67ed7f2dd163d9474452142ada7691783b7b4e0aaa8a23fcf6320c4bbc581e5391d";
+  sha512.doc = "91483639fbbe4b073eb299b0153eb57383dc59c7d669bfc07e275bf445b22f2eff35a7abd632388d701eb23eb833561d9ad4d865f3e8d7495bf44c74be8dd12e";
+  sha512.source = "eaea8de8f9ff48ee7cc3d1d91819cfad340f9f8aa2b666bc23fd28489c585b4344a946cfca6334620acbefa2602f90050476c5da56552088b1c1ddd3c483af0f";
   hasRunfiles = true;
   license = [ "lppl13c" "gpl2" "bsd3" ];
-  version = "1.1.1";
+  version = "1.1.2";
 };
 huawei = {
-  revision = 65264;
+  revision = 68336;
   stripPrefix = 0;
   deps = [
+    "anyfontsize"
     "biblatex"
-    "cjk"
+    "caption"
+    "catchfile"
+    "changepage"
     "currfile"
     "datetime"
     "enumitem"
+    "environ"
     "fancyhdr"
+    "ffcode"
+    "filehook"
+    "fmtcount"
+    "fontsize"
     "footmisc"
     "geometry"
-    "graphics"
     "hyperref"
-    "l3packages"
     "lastpage"
     "libertine"
+    "listings"
+    "listingsutf8"
     "makecell"
     "microtype"
-    "minted"
+    "pagecolor"
     "paralist"
+    "pdfcol"
     "pgf"
+    "pgfopts"
+    "ragged2e"
     "setspace"
     "svg"
     "tcolorbox"
     "textpos"
+    "tikzfill"
     "titling"
-    "tools"
-    "ulem"
+    "transparent"
+    "trimspaces"
     "wrapfig"
     "xcolor"
   ];
-  sha512.run = "d181f45f8211714674697a8e2e203b3169cb1be998687f315418dca664cb09533b5e3b5f7b1cda0db628401d263d7ca816c2ce1c29da48f1550ea9100d9e2523";
-  sha512.doc = "3b4112d8b5389ab26034ff126744aa4299cbc5f42630a00a7e7b4245e4355ed0abe42718100439af3cb5b1642db4567b6d16e69ffe852cae0c5c9aa20e8cd7f9";
-  sha512.source = "93271d9361e0cbf9fff9890f2617c96a381b631332041a576309a28af77150afc1da99f7596d3b89d0685584115cdbfd46d1b5fa7706b7ae4af88984e8fae8ab";
+  sha512.run = "97c8608c51635abcca6daca84e911d680967aea81ee4984a835245be32ddb4b97345e2714761e0399d3378a08619044e17e53a9bd935e44953372815f16d50fe";
+  sha512.doc = "e327912bf029cdfbaf1857534f8e5174d9bb26d5d1a2a271b3b0a8bd4bab1bdbcb8372b6f76f7c75d058f731baa483d58033f9c5ed82252e6210de4946c93128";
+  sha512.source = "f1f27f5baa2af8de2613aaeba69ac8562c6f7791ced01871c86c4dce3f25c14105003f8d636b3df3c3d8c04d81dfee4fab57150d80e58540db02d3d909dbaea0";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.15.0";
+  version = "0.18.2";
 };
 huaz = {
   revision = 64723;
@@ -21775,6 +22208,15 @@ huaz = {
   license = [ "lppl13c" ];
   version = "1.0";
 };
+huffman = {
+  revision = 67071;
+  stripPrefix = 0;
+  sha512.run = "0d78c3874045ce45d703f443817d9b20b5baca0e3b713bc5f09e18a64102af3d349ebb5b7051a5152eaf06c8d9cd01c3a00b5a3c0f5b4db12f566b5f5356c991";
+  sha512.doc = "3c1651e5cb8b527e1c55aaf682003c1639c91efd9bcaa4fa51779fac572550195979c0baf2bb4738f8b5e2628b6deb4af6109938ce70e4238696ca35f7e4ea34";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1";
+};
 hulipsum = {
   revision = 56848;
   stripPrefix = 0;
@@ -21805,22 +22247,22 @@ hvarabic = {
   version = "0.02";
 };
 hvextern = {
-  revision = 65670;
+  revision = 69064;
   stripPrefix = 0;
-  sha512.run = "2a0b0771f99c83fd3e33aa0da43afc51ec32ff3eed45ece76eadbe3c4eedf7ddaec16d4ba32f8829cd16e61af93f5b9be83686262174f07ca863f5d183b5520b";
-  sha512.doc = "0dfcd19c671a4e6100df0b89113d517abbc803e411a347059c44652106b7990b7371b96a6bde85ada1420f2029eeb5d614fae5b44b3c2dc7cb9191d55341cae7";
+  sha512.run = "c9effc6265c66681233309eeb19707f0ea1acb670934283c88f9fbecc4d91c07601c8cb84a06bc7d9895494ef8efb5fca1c00f658ce8baf7489a6c875d8f28ec";
+  sha512.doc = "f7a6dda6ea0d327d8596e68a5880a3ed0d4811d1f89743aca9219e9c26d6f8746a3ef569af464b81410b002047c53cad2b9dfdf783a0515d4ad3c3d322d4483f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.33";
+  version = "0.38";
 };
 hvfloat = {
-  revision = 65671;
+  revision = 68586;
   stripPrefix = 0;
-  sha512.run = "9189c7cdffe77ca6ea69288641453fb057512079dbf59a112de18d6a496a487e928a4ccdcf9ae4b69433ee73b03ab07e4ea6ebe5f881619b57b24be3ee787f11";
-  sha512.doc = "1dcfe143a1b525763a2c4e1c5f9761002cbbf46259eac4d18d8e95033af86f92c9a9d1106070f696500db89feefec6717c934ec310d463cb4161a3497df9d548";
+  sha512.run = "21124f93545ffc5a025e24a09f50457aa16b8936044c4a510a626c812ccb13cc028e6ef6cd89fb64064c39b328ed47d227d40986cab75d6efb54c734774c3cf8";
+  sha512.doc = "737fd24c8fe61f2af825ba28b71a16c2e094a50835543c8fea6b317cefecda94602afdb70c8df24a671a1e9af219350acaa368295072fba1193de8db566eca40";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.45";
+  version = "2.47";
 };
 hvindex = {
   revision = 46051;
@@ -21832,13 +22274,13 @@ hvindex = {
   version = "0.04";
 };
 hvlogos = {
-  revision = 63261;
+  revision = 68568;
   stripPrefix = 0;
-  sha512.run = "655f8db151a5fbd05b096d288a6fe93cd89de9df3741a68eb5ffd221276d3ed633ca1f17507177c8bec2485ece386d117f11a363f87483763a941a155015ab3a";
-  sha512.doc = "459e93a38de9d5dd600d02eaef7ea512ef57127a683bfa8831c159ab68bf6f86bfc4a659aba98adc59f2c5ac7e26984db5f84e8c9933b4a49b30633ad46ee45a";
+  sha512.run = "1d1c1a5944950a71046b764a76c7cdc05f6e48b08681932504009299e9d78bcc3a03c57bde36df6614faa0efd8f6af84388a02ecf225bd95e596cae0cbb69d66";
+  sha512.doc = "55b3bc2c71c8f110e39efe31469573879b65058675dd5324af9075f2b9f1d64fdc8a2121a963f88e67bea8156dfb5ca4a4c972bb70ae90b358bff209fc5a4695";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.09";
+  version = "0.10";
 };
 hvpygmentex = {
   revision = 62405;
@@ -21850,13 +22292,13 @@ hvpygmentex = {
   version = "0.01";
 };
 hvqrurl = {
-  revision = 59256;
+  revision = 68693;
   stripPrefix = 0;
-  sha512.run = "472da0c72999f672cc6d21e35e9adc7c25d1202b8f4eb4a75f9498ae8cca5ea7aca7102dece9943e2070002390a3ced018d12358523d52cb2a32c6e6b9012126";
-  sha512.doc = "0c7de4ea0173e754cdcea91b56681c4681c05d591f3176a0e7973c5b1f9d819a737d6ab14052a94a8dc48919dc2b98c7337274770a115d598667852cb118f69b";
+  sha512.run = "b9a1e88f38b18744fa66d490fe6398bbfda8d0a81a9fa37edb5735325351f5f10f28a7452d8a2d60470afe7faf878c58b59220a8c20ed1744c2be16e8f94db60";
+  sha512.doc = "ae54369788c2ae94dec99c13c57d2c6c42852670d067c97dc8f108dbf910d5a2cb212576629322ba791e56e655b14fe561ba28bc120b07cc9365312dc2bdebdb";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.02";
+  version = "0.03";
 };
 hwemoji = {
   revision = 65001;
@@ -21887,14 +22329,14 @@ hypdestopt = {
   version = "2.7";
 };
 hypdoc = {
-  revision = 65678;
+  revision = 68661;
   stripPrefix = 0;
-  sha512.run = "216c3adfa731d4c18b7072d3fd812065195bd06b849cc2b669650a24d51b93cd5c4dd8b9dbfb5874e90d2b928e32a675d5bafed1f5543b826041374f2d4885dd";
-  sha512.doc = "8ef2afe4f1e69aa9934d80363d206a852444396a7067e99ee9ea33c5ab8648e94997631e657f6eca0d9d65e4c14132d46eac7d639ea5f8ba558e83d17c39a2f4";
-  sha512.source = "a68d3134f4c96ee6edcd3da623fc37b475c5ec7d599e363b2d5bb14bfb74d4906b7831d595cd1e547534e773a0348cd4cd11252f7ebdb64c7ed11ad0a5e2ab9a";
+  sha512.run = "bdd5a75f53b714976f54f0fea68093d79dc0d781a708dabbd3cb90e49d77f282ee15cbf8c1082cd5746bbe6b701e58e71bde38141db56cab5042d7556771d286";
+  sha512.doc = "cece39375981cc4adb60b20387ca441404a69c734f686cbe51df759b3025833814e9ec09aa4b720359cce4c4ae14b12cc03ff38954c3fb12ef268304a60f9dfd";
+  sha512.source = "3bf5a01f6ce3ec8cacc04fdd4d3b83d9cbdced6dc75120991e031a56a3dc4e5958c367f009c4f5fbbdabb02d0d7b391fb8fbbcdc2c4d5f68b9c0cf8d68259d1f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.18";
+  version = "1.19";
 };
 hypdvips = {
   revision = 53197;
@@ -21935,7 +22377,7 @@ hypernat = {
   version = "1.0b";
 };
 hyperref = {
-  revision = 65758;
+  revision = 68972;
   stripPrefix = 0;
   deps = [
     "atbegshi"
@@ -21956,22 +22398,22 @@ hyperref = {
     "url"
     "zapfding"
   ];
-  sha512.run = "c30dfac04cd90487740189dca7bf596c43e6313b1382296b0f5cc4337e6504906cdb247870eb15af1fc1f8b9417dac2872ca82ec490b6e065f8148c35ecdcb21";
-  sha512.doc = "b54fa3cf90ad69d0aa0ac409b1372b438a1b07818d102b01e597f956d9a380fb9e99acbab14a4d87c30b5fd4343536c40b39eb4ff43e1f5a0704f31d38063f38";
-  sha512.source = "3d1637fb8d0149214d308a4c0030f70719a27ce0c0c3cee9c061d54e8607fce12257b08d2b992c6f8de9012615e91e0ae10713d18fa16e9c6dff554257490457";
+  sha512.run = "e7daa9af79ef0ee5bb1ed13d8b7001a995d15fc5a839e4d102db7e5d7ad1e76ebc2f7c939b17d554d06789c225bf134177987743c58070e553a6e25a7cba96fc";
+  sha512.doc = "17e70d3008012178b1210bbdcd3abd3c39510dba1037753b2b4324b1f3ab832e0a6a634dce31d32950d1935fcefbc756ac1b7afc86b8f27f9bbee8cfe7768e7f";
+  sha512.source = "0cd806c9e404c93a96da335c8e26ab66476edc29f3f33a68e09ff290dbb3b69705443bbf8db5f7cdc85b702417b5e59f7e89514cb346aa0693c9ff65bcbf882f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "7.00v";
+  version = "7.01g";
 };
 hyperxmp = {
-  revision = 65979;
-  sha512.run = "b2520a486ed2451f20b3414b29ccd209c427bfce22d248ba8e9e7b1f0c13e276b35853ed28b5d578e60d7234a1f6755f00023cc3f4bad968e0f22019aa547007";
-  sha512.doc = "ce7269f6c014def7c967fd8782c3ba2e6bcbb2540e9dfaeccc63917d865ea0cc131c28ad2fcd7aff507b560d1dd7f05d4c3ee2cb9e483ba8f6f64e0bbc0dc619";
+  revision = 68251;
+  sha512.run = "79dfcb70b4df1be8ada345507f0cece0b36c38f57c1b5e92fa008af3ceb5209c5df10d9144a24af4473a2f640d2adb59054cd9985f762b9b6cf7db45ed99c4cf";
+  sha512.doc = "b56e9ef7beb7502ba2e952267fddeb3a26597e9e5193ed66369dc3c78f5a08d34b5fca0685cab8f6ec67e12167a1aca309a18b85073b8e9c497641cf062be6b1";
   hasManpages = true;
-  sha512.source = "c97193eda5c7e02f743ccb0dbc7915c6cff7c29facbc1e098b70987aa3a9b35123fd71bdc1d0b5fbf2f0d249dd48a6ace45b73c82351e1b4cf874420aea74871";
+  sha512.source = "02ca43c9809c347a6db12e0a8ffb2ec96db3b27d4c89ceea10091235c6b411de38d76f976a08d139bad0b0efa0b181e2e2fe5e2edd8cdf41ac5043fcc8758bbe";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "5.11";
+  version = "5.12";
 };
 hyperxmp.binfiles = [
   "hyperxmp-add-bytecount"
@@ -22030,9 +22472,9 @@ hyphen-armenian = {
   hasRunfiles = true;
 };
 hyphen-base = {
-  revision = 66418;
+  revision = 68321;
   stripPrefix = 0;
-  sha512.run = "63175fccf11584b6a67d8d3fbeec242a7e087bbcdab44792fd811f023fddee8576fabd4e006897e2ee8b3aa4546a82577825ddcf9ed0e1a15115b48b79120e0a";
+  sha512.run = "d3f2749cc6946702ff0d51c1d823531bc92b77c1106aec252c84cc8649aa56048556c90e9792f1b0749bba0b86b7c34aa2b04fe2946d1226315dbc73add36913";
   hasRunfiles = true;
 };
 hyphen-basque = {
@@ -22712,22 +23154,22 @@ hyplain = {
   version = "1.0";
 };
 ibarra = {
-  revision = 64567;
+  revision = 66892;
   stripPrefix = 0;
-  sha512.run = "1e837bc577e185fc2e79abdb3e353939eab98e824369096e536afa03f4030d0e4789080c2e51a49cc4451a4c6d7ddaf59c9def438f7a033ecf981320121c6e8f";
-  sha512.doc = "c48b49d4d0d63948c17a8116fa691e0e75b3d659e40c983082bad98b8fc21ff75f8e87ec4ce1048b0d03bbe12597e4a3d720054ff6d367c5c3ec14452fcec4c3";
+  sha512.run = "7de51f4d206481dadbd4409a0c98dafb36a415e75053b78f40349edfd8b122e9449e749967eada07507ada1f6f22658c02b0a4993e39c2b0e97334076072d6a8";
+  sha512.doc = "318a4bb5d2fd012c783053f457023604d53cdb2b02739ef8a1780f1856d5a63713774568cfa7a230f8ca1eb4711fa65f99d5a99b5c4e9235fb1b449751bc50b0";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
 };
 ibrackets = {
-  revision = 65383;
+  revision = 67736;
   stripPrefix = 0;
-  sha512.run = "96f5a6ee84810035bdba234e23a6b87dafbff602cde6d1f435be1c291e741779133e335d7a8ea7e1a16288348357b16200a7a98751a7a4bed9de2c4fb28dcdee";
-  sha512.doc = "06ae490ac0d5f49c7a2c9f7f2c4a52922717b2f0375162c8a83750cf7f5525eca3e69b1e89a41204b971a85ceed0779ff27ed557192464d0763ce9c0892ece2d";
-  sha512.source = "2ab5897bfbd438ddfc8dbcd32b13e57f32617617529590b5089494bc5533376eef99e68e23a7f695ae5c1cd86c9c654ab40477f104ee64b63ee92c5dd24331fc";
+  sha512.run = "fee99798386a5a6b9b8ff2ae9d2eecc5f4dc835b825795400777780f567ade13d789e81de3e841a54653226098ec602fa91839ec86f25ac0ce2033b31508b4e6";
+  sha512.doc = "1d6bd5b4a22a44f03006c1fee3d94ad2760042ac98835d1ab043905595f435b583ba2b65fb6f0f881234085f028f492a283a5593d9a8316eec6fab541fc3c6a6";
+  sha512.source = "766f93cb337190246b6a446407c8ed75b1ff35edf61cae443798d1f049639bf277951d59b5d8ee7f953be848f81a74b991856d328910e9237206f47a1b4a3a1d";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1";
+  version = "1.2";
 };
 ibycus-babel = {
   revision = 15878;
@@ -22749,11 +23191,11 @@ ibygrk = {
   version = "4.5";
 };
 icite = {
-  revision = 54512;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "cee4e7f2fd3a007c79966520058ae3db836fca0d9b03dc264d2889ac399bfc7db58e11f3d65de4eae8fa378a774908d36e789441fc244b54c86886fe568cd2d2";
-  sha512.doc = "09c862c89133912f7ed714678b3e1d041e529f4c8123e0241e1d0f531bcdd3036f9307ec8a34cc1f25df8cb38b5a8b5213f4a486204b21e5481f65ca1949db33";
-  sha512.source = "068a63ac822952f6a14eb12362cb94f4f8ef3ed877ef7e40f55e0a234a1736c6fa60276ba80c793c15562889a1cf20caec6baf67daa5e20a3c46cee2c10f6474";
+  sha512.run = "23f4f25a72f77cca2585bd390ad1828e04a70b73fba0a86f0622e29b6bfee596a9a3172a8e8b2531c3bac60f8e4d840301d200ff4a4ec20d5332de62766020a3";
+  sha512.doc = "a84ba9a33de8ceffb8c92b0555daa1a39fb822a272af2192513ce0c03ffd7c97a413a5916f3f5745a1b36b8e5aafdb081ee301d613d645e66e0f2ba2b7484a0c";
+  sha512.source = "227acf7dd54f4ae1e23c753bc9c8a0ad82e275eac2d406cf6147d986d5e93ba2483cb7f9abe3e31d347218d853e6a8bcd4d015b7b9b3afeab901a1a40461924a";
   hasRunfiles = true;
   license = [ "gpl3Plus" "cc-by-sa-40" ];
   version = "1.3a";
@@ -22842,18 +23284,17 @@ ietfbibs = {
   version = "1.0.0";
 };
 iexec = {
-  revision = 64908;
+  revision = 69230;
   stripPrefix = 0;
   deps = [
-    "tools"
     "xkeyval"
   ];
-  sha512.run = "7e6c55383a22d2b47858e02b0d7023a7d130a089c550c0d4aa387035374ba6e0266b35a2f825e4d0bc4fb084bab42686df610f8f6f9007ff155bf7c150383cb1";
-  sha512.doc = "2b55ea3e886043af3e137be5e23388d1d0311e64f695b3774d85be2305e5ea8389a4139e4b3c84989187d66066ffadeccb0d8b70a5347ecfc6dfef750d28b2ba";
-  sha512.source = "d4f8b3b253189de2e303c00c5c8e42cd539eaf7eb0cd20feff54473086056fff2e6f8be3bebc071a261c68adffa55f198505dc81df4d095f3ab2dc6932b8e7a1";
+  sha512.run = "21da64806f48487ec6756ec48aff60eca9406e94177419398af3970fd3638062a06d1da12655551889ce64cdca9ddaed7a8953eff35b23b6f005358586df9eac";
+  sha512.doc = "ff9c90d8a14d72ab3f03cdbe177dfc58ac8cd2fb217bd2a827ff9d14716afc95d35a647b6fc1bef77a1268175f64edab81cfd8d54b35a4a332543c3950beeea2";
+  sha512.source = "deccfbf6b069d9a4542944fe229a01ab85c845d3c84e38daa1c11c86d3dc0db4ace5e3c45497873323ba7c3033870c3bcb2de16ae3f7873ff738247e51b99af9";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.11.4";
+  version = "0.13.0";
 };
 ifallfalse = {
   revision = 60027;
@@ -22925,13 +23366,13 @@ ifplatform = {
   version = "0.4a";
 };
 ifptex = {
-  revision = 62982;
+  revision = 66803;
   stripPrefix = 0;
-  sha512.run = "54f4e4a1077a5f394811a4b0b08818fb17060496c7915c85dc69b55d2adcc7793f4047069b1bd067229bdd945c2e2a35f19b59d048cf242d489ab652813f5cf0";
-  sha512.doc = "7e30eb1014032cd8c322ffeab692f1abb325f1890e66b1136da1e88ccfa24aa80b003f785dd899ebe7951123bb7661b6f44ff382a7b296abfac129ea55eca226";
+  sha512.run = "9b0588af312fc3627687703f030f40ae421d9949d696891e9a60aca3c7582f0a534099685e8b8d5535df0d2f9dcd452f4219092d70c285d0fa65af6d140b7afa";
+  sha512.doc = "a65a583b033509fc0a41fb65c6ec17357c0e095cf09d6f5d2b9b1f8e5fa323f368cd381941e8850bc1fe81a213dd2bbcc3d9877c08d50a5a78efedca05a7897e";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "2.2";
+  version = "2.2c";
 };
 ifsym = {
   revision = 24868;
@@ -23130,6 +23571,16 @@ inconsolata = {
   license = [ "ofl" "asl20" "lppl13c" ];
   version = "1.121";
 };
+inconsolata-nerd-font = {
+  revision = 69061;
+  stripPrefix = 0;
+  sha512.run = "dc202282d55ad63ffbf39fe7b36edbe42391fefd1c1cb0fe2410d01c562fe8024ac007ba235999c5e369a0d80763fdf80815d2beeb7dadba0f39d027fea507f7";
+  sha512.doc = "00fa8ab8a508a3bac281ab2d7f63fbabfb6958770d308184e0fda7924383dc22a3b36d5f4dff701cda63e847cca819d38b45a0d51f634e1f503d5964fa60d9e5";
+  sha512.source = "867f875d6b1211fbc8d223df7f00030d28ed13336c639f83251fc3b930e75f61d12daf93cf46943a9b2a3db883cd2e9c8b759f19f85562fb589ffbe2f01ea344";
+  hasRunfiles = true;
+  license = [ "ofl" "lppl13c" ];
+  version = "0.4";
+};
 index = {
   revision = 24099;
   stripPrefix = 0;
@@ -23141,14 +23592,14 @@ index = {
   version = "4.1beta";
 };
 indextools = {
-  revision = 38931;
+  revision = 68555;
   stripPrefix = 0;
-  sha512.run = "69bb7007041b46a25e9f6bb12d8212a4dd4eaa9dfd00fc033edd94de153e8941cc4de8a06d74516220ade56f2f5800f83a96ea2c02d766939cf70aa3822da63b";
-  sha512.doc = "9290dc53a68dcc191d39bc0d1e760bd4cb8db50d7cf70771e60686ba2b1a7923b408f21e777453a6f2ec9ec372ac30faa3ffa2cc6bf7d2bc82b2526327d732a7";
-  sha512.source = "2d6d1a6009351911a3dfe204ab81ce8b54abfba885525a98557f56ad22ba6a319d35d36ea6f868d3abe9d788628d9f635dec8a657827ae3b772dae972a11c53c";
+  sha512.run = "decb4d3e7a2504f0f08f5e907eabcd961d1900cfce98e79cf8d7745868564eace7f3fd1217de69d615f9267630c71f9289a0519dd9f3b8603be6544ce6d1cad9";
+  sha512.doc = "d2b1ed9f2d79bab4dc9b69b09eafc3657c2f60002d53703ec01e7cfdd29e8e9ad4027fa46563d50ea89bc2e63fa7b6c71ce2e37caa5e37838b6cde2f99ed97d3";
+  sha512.source = "2d4d637e3cd9e6dba00104c0ae58021211cf8b10d8d44bcb9c3d9af1d0680e4539187947f6c685acb8ec194e8e60c447e6dbd02cdb6b8915c8abaaf8b991b39b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.5.1";
+  version = "1.7.0";
 };
 infwarerr = {
   revision = 53023;
@@ -23214,14 +23665,14 @@ inlinelabel = {
   version = "1.2.1";
 };
 innerscript = {
-  revision = 57672;
+  revision = 68776;
   stripPrefix = 0;
-  sha512.run = "0ab2851bf450b502e1f04f8c529a2cee149ce5ffb1a091b6870189f01398ec1aaa7c26e5bcfb4ec6e156cbf3e273a4c4677dac7c6c93078d5eadbd478add7d00";
-  sha512.doc = "52684da615ec9caa76e144966be1c3f3152cbf757822b5b2a277c7f40a847bba20d03f1349770a6955daade85f97bbb03572710af39ba6874cf3ff0c422405c3";
-  sha512.source = "b5396a9f73446721e7e8d2283cb10046242e31c9ed77800b3a9e3d825a57f2e81ef06a27ca67b2bee2e88b281329b5f05e230de70982ed937d698cc4b766dfee";
+  sha512.run = "7b647763f5a535f45a7741c3264fb59e2223837a9c99617aab870b624122783e25d1ce2f48e14fa5c1f01b660e5372eefbad3df51c52cb414ba675b8bea18e51";
+  sha512.doc = "406d30155e73e13eb51967e3902e1fd2d76a92aa29323306a8769f9b4900323d288d1620a2a85ff76062e1a7b610bdddc06b113e15cd1479cbcb1bbb25b4c79a";
+  sha512.source = "caf662052e89c10a1f6da8f671aa3e30eb4738a68b095146339f9c0cd95cfdeaebee30869b5c7c92bcff6ebfbfe526ad6ab032d26bae93e671707dbcf3835218";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1";
+  version = "1.2";
 };
 inputenx = {
   revision = 52986;
@@ -23272,12 +23723,12 @@ insbox = {
   version = "2.2";
 };
 install-latex-guide-zh-cn = {
-  revision = 65434;
+  revision = 69264;
   stripPrefix = 0;
-  sha512.run = "a091341f588222b1a4301eff95afffe8d89c11818790e9a82a3a3f1e7d75601d9ae2c3ede562449938a32f29ec61efebff97467a5fae5140849d737895335d74";
-  sha512.doc = "2fe37d8e3ba7d4b36e2e8936ba30112422d5ddeacc13861fa47727e17a35466f395b06648b67a9eb54f59ee111a1c8324a8ec41f5cdcaa7396b8867a4636d4b4";
+  sha512.run = "f93859b38da5da139942105175bb9c4f399934777fc04a7d267b45d7fd42cb792de40217221c6e0fee7db3b62ec3592ad0744f0f1a7bff52864e8762d58e216a";
+  sha512.doc = "13042cd81cae222dab8ca8966702a28938f7f4b4a734905d64dba2bd819e610108078f0f81b3999b28a63dcb015bcb7941b177be9cab243fc9d01b6808ddf587";
   license = [ "lppl13c" ];
-  version = "2023.1.1";
+  version = "2024.1.1";
 };
 installfont = {
   revision = 31205;
@@ -23301,10 +23752,10 @@ intcalc = {
   version = "1.3";
 };
 inter = {
-  revision = 58892;
+  revision = 68966;
   stripPrefix = 0;
-  sha512.run = "fc423429252eeb8878fc9c423c1c51f9d24781b262d0b4e08d10e397a13985507916d50d3f3fd2164f7fea2c5b45e35da415699e6ed424957c9b337b5e349cfb";
-  sha512.doc = "aef65d0830399dd9fbdda59f130cb5a5847796d591baaafe74e621115061f04dfc55c6d68d1954251d5d6b63b6e7b88eb16c50842a6f5b045f4a643498fb9c2c";
+  sha512.run = "3e2799fdcbb3648912d99ae0fee49b3e34098204e742ffd8bac5fda212f3e452606124e5503f99a52f7f647b54c31858256e7e1dcee4a566f3ca8e9d5aab5eb8";
+  sha512.doc = "64260a91b781bc0ca36a73e1b44ffc34847b26b977a950cefa27649d7382e9cb9d34f70f982831912489d86e343d4abfc81ae0d91302d3276aaa5c8567c3ba42";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
 };
@@ -23399,11 +23850,20 @@ invoice-class = {
   version = "1.0";
 };
 invoice2 = {
-  revision = 46364;
+  revision = 67327;
   stripPrefix = 0;
-  sha512.run = "a790c180fedcf407b999e018cd96b1a0440b07f98c403e9c9e780863f2ecac4f4559ffb88f6a3e4f6080c89745d8a99e5ca6ee98299c7529972edebe68e00eaa";
-  sha512.doc = "fc4baede264c6fd1ec94338829c6973c79c04f21284532194196063b3499becf2bbc2933644ca8b870608e8879315f724b173bbbd26548d24e1649929feed7d3";
-  sha512.source = "cf014bdc2debe9e400d940232eb434b1354ba7f1a093c7389c5b1d332dd2c270e7e3c1f07d65ffe9fd5d2d088e59b3e846e2fc2598eb7297189d6c772b2b16ee";
+  deps = [
+    "booktabs"
+    "l3kernel"
+    "l3packages"
+    "siunitx"
+    "tools"
+    "translations"
+    "xcolor"
+  ];
+  sha512.run = "7ef03f3c3a5c23774c0f3a495f949d5761f28a5d6316be7bc2a7b4039612fbab3f4aca9d29b6881a04948b9be2f0e6f7199d4ab8a41362e2d848f2ae8a090c30";
+  sha512.doc = "9621a018752d18d9a5dd069e48a3baf3fa2f11c378304573a5bd9b9bc37ddd79366732f0b47f3acc878cdb68e04374db8371a1f7efec6ec6fca251a6c2b95025";
+  sha512.source = "eb17a9ad06f67433b749e798783676212ca16dd78ab9a2029335c923235110e9c8bd8fb0654fc47417c60cd263d868789d8f86fb075cadcbd19fcd6142872121";
   hasRunfiles = true;
   license = [ "gpl3Plus" ];
 };
@@ -23452,6 +23912,24 @@ ipaex-type1 = {
   license = [ "free" ];
   version = "0.5";
 };
+ipsum = {
+  revision = 68861;
+  stripPrefix = 0;
+  sha512.run = "72ba4708735350c0b1c6521d3ba09ca0477b203328c1452033755da7eca159b82e50ca0950f2eaba7cac41c1f27cfb28951716887e2736d9e69f29f91acd29cc";
+  sha512.doc = "b53fd7756b3ac604583d95f6cf9b90d322ebee9e6a1f085607de710a2bfe3257d29394cc816f1817b0cb499a550202a0dd1578c9e7e04152e8aa132fea05bd3e";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.2";
+};
+iran-bibtex = {
+  revision = 69347;
+  stripPrefix = 0;
+  sha512.run = "0dd643474cdec8c5d15ce28dcad815978d9e3a76d0327cffeff021ff6811ba2313e44a5f21a4ed23a1bbf09433c479e551ad0a49c0d074d38a777df66daefa9a";
+  sha512.doc = "51f903f7ee725dc2ffe58d594e64bebe5639e5efcabcde15206ec5e9583f8d4771fd2b457f8a79b2fe691fcf77d03854d1f5cb291d0b33fb7f2d5272a17a18bd";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.4.0";
+};
 is-bst = {
   revision = 52623;
   stripPrefix = 0;
@@ -23546,6 +24024,16 @@ isorot = {
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
+isosafety = {
+  revision = 68801;
+  stripPrefix = 0;
+  sha512.run = "4f3997e5ab414bea29e986e1edd7b1436f82bd22b32e4047814d48058a57aa7ba042c88808784ddf5dff3926a1ec366f374e5e275df8e16e8d8a9b9c07982ac1";
+  sha512.doc = "905fcdc25540ca0db66cc8fd6057bb71ded0016180b4efbcb5855e9ece8213d2091f387201ab44a2827fc4bb897f8cd9209b570b9bc23ab5c4b4293f5848c1d5";
+  sha512.source = "38427c445a9a816c674a01e3ce85b1a30b6ccf06f7097e82bceaddf72e7d178bac1873e57061d76c37cd3b73abd783b1d35b16648f43485b3d80cb7ce5158278";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.1";
+};
 isotope = {
   revision = 23711;
   stripPrefix = 0;
@@ -23556,6 +24044,16 @@ isotope = {
   license = [ "lppl13c" ];
   version = "0.3";
 };
+isphysicalmath = {
+  revision = 69343;
+  stripPrefix = 0;
+  sha512.run = "5329b97930fbe9cc13c275132a32cfe4293bc23b2c1911089aaaa80baeb0437606c73503b4430574e88da61615d0649fea6f5666a5609a79ac5ca37cc90294a5";
+  sha512.doc = "f044b6cbdcb63a5e66b6dfd396393a99d605a219ede55317c759c28c3890a7c79ff6c0feb1de8f6517350d15a6422dc54426b7b5169ea1865024e5a335fe5517";
+  sha512.source = "d68bb0b9753303e844476ec27156dc22ba7f3c4456a26870edb080709efb88a2485f2b41bd3c15a89d7d665f22acbd206c951d0f817742d352f6997621188734";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.1.0";
+};
 issuulinks = {
   revision = 25742;
   stripPrefix = 0;
@@ -23585,15 +24083,6 @@ itnumpar = {
   license = [ "lppl13c" ];
   version = "1.0";
 };
-iwhdp = {
-  revision = 37552;
-  stripPrefix = 0;
-  sha512.run = "7153fd75ec63a6abbb4d2bbda8a5eb150f4b202b72baec8361a810d28aac5690f76e4099ff3a616a44077337ace469d6a111d4e42ad8d68428144b7fdee58575";
-  sha512.doc = "f75a9d0ea4b69de5a82659e18a0ea04544c93b056c52efac534e16490a5ac78b329d700f2ed7b3e8564a72331489106bb7e735c44b3e24ff943c6ec0b89eaef2";
-  hasRunfiles = true;
-  license = [ "lppl13c" ];
-  version = "0.50";
-};
 iwona = {
   revision = 19611;
   stripPrefix = 0;
@@ -23603,6 +24092,16 @@ iwona = {
   license = [ "gfl" ];
   version = "0.995b";
 };
+iwonamath = {
+  revision = 68144;
+  stripPrefix = 0;
+  sha512.run = "e0b87b6815ffbec37a52e0ecd1d31daacd46c222abb71566ab3476cbc2ec28128f5977367715bf1eac439f978d750b6ce7e7bee589de7a1f18bf70ab8ce166ab";
+  sha512.doc = "81fb0f9b7b738994a4af09a8dda8b580f4d59a92f790f8b285c2b1a252e672786296472847a6d4d8ce804a757248dec04e02894d1550cf0791863d25d22f35d5";
+  sha512.source = "b7aa315eb74b6fdbfdd75dc176ede1841406efb9bf5ba584fe090123f3e93b1f7db9719a321833d2486b0e5e7a0a214a4b91a8c1afb2443e126ebcf96bea5b70";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0";
+};
 jablantile = {
   revision = 16364;
   stripPrefix = 0;
@@ -23621,7 +24120,7 @@ jacow = {
   version = "2.7";
 };
 jadetex = {
-  revision = 63654;
+  revision = 67493;
   deps = [
     "amsfonts"
     "atbegshi"
@@ -23635,7 +24134,7 @@ jadetex = {
     "cyrillic"
     "dehyph"
     "ec"
-    "etexcmds"
+    "etoolbox"
     "everyshi"
     "fancyhdr"
     "firstaid"
@@ -23688,20 +24187,20 @@ jadetex = {
       engine = "pdftex";
       patterns = [ "language.dat" ];
       options = "*jadetex.ini";
-      fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "amsfonts" "auxhook" "bigintcalc" "bitset" "colortbl" "cyrillic" "dehyph" "ec" "etexcmds" "fancyhdr" "gettitlestring" "graphics" "graphics-cfg" "graphics-def" "hycolor" "hyperref" "hyph-utf8" "iftex" "infwarerr" "intcalc" "kvdefinekeys" "kvoptions" "kvsetkeys" "latex" "latexconfig" "letltxmacro" "ltxcmds" "marvosym" "passivetex" "pdfescape" "pdftexcmds" "psnfss" "refcount" "rerunfilecheck" "stmaryrd" "symbol" "tipa" "tools" "ulem" "uniquecounter" "url" "wasysym" "zapfding" ];
+      fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "amsfonts" "auxhook" "bigintcalc" "bitset" "colortbl" "cyrillic" "dehyph" "ec" "etoolbox" "fancyhdr" "gettitlestring" "graphics" "graphics-cfg" "graphics-def" "hycolor" "hyperref" "hyph-utf8" "iftex" "infwarerr" "intcalc" "kvdefinekeys" "kvoptions" "kvsetkeys" "latex" "latexconfig" "letltxmacro" "ltxcmds" "marvosym" "passivetex" "pdfescape" "pdftexcmds" "psnfss" "refcount" "rerunfilecheck" "stmaryrd" "symbol" "tipa" "tools" "ulem" "uniquecounter" "url" "wasysym" "zapfding" ];
     }
     {
       name = "pdfjadetex";
       engine = "pdftex";
       patterns = [ "language.dat" ];
       options = "*pdfjadetex.ini";
-      fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "amsfonts" "auxhook" "bigintcalc" "bitset" "colortbl" "cyrillic" "dehyph" "ec" "etexcmds" "fancyhdr" "gettitlestring" "graphics" "graphics-cfg" "graphics-def" "hycolor" "hyperref" "hyph-utf8" "iftex" "infwarerr" "intcalc" "kvdefinekeys" "kvoptions" "kvsetkeys" "latex" "latexconfig" "letltxmacro" "ltxcmds" "marvosym" "passivetex" "pdfescape" "pdftexcmds" "psnfss" "refcount" "rerunfilecheck" "stmaryrd" "symbol" "tipa" "tools" "ulem" "uniquecounter" "url" "wasysym" "zapfding" ];
+      fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "amsfonts" "auxhook" "bigintcalc" "bitset" "colortbl" "cyrillic" "dehyph" "ec" "etoolbox" "fancyhdr" "gettitlestring" "graphics" "graphics-cfg" "graphics-def" "hycolor" "hyperref" "hyph-utf8" "iftex" "infwarerr" "intcalc" "kvdefinekeys" "kvoptions" "kvsetkeys" "latex" "latexconfig" "letltxmacro" "ltxcmds" "marvosym" "passivetex" "pdfescape" "pdftexcmds" "psnfss" "refcount" "rerunfilecheck" "stmaryrd" "symbol" "tipa" "tools" "ulem" "uniquecounter" "url" "wasysym" "zapfding" ];
     }
   ];
-  sha512.run = "75b9c8be4f87b51798826f5ea070ff9877e8bfa2fbee5112972e9e0fc81a76dcb7081c2fe9eed645f53a38dd85443dfdb394004b2970c2ff5a91b32dc1cab909";
-  sha512.doc = "f70f85a12d730fc9dfb29da57a6f95239c10aa8ba7b9453ae884cae81399609fb99ccac3bfbc41f0c5f360ef80bd3f78b2f8479a826412bf573e9c5336d7e8ca";
+  sha512.run = "f169a494d7544e5218dc280937add40b1b0782ee5aeb5d1cebb4aa905bb72334c6caaf628ba04c3b5ebec984a5dd0c78c3c2f194ddbf121f63c5be4adcdb58a3";
+  sha512.doc = "670f0e517d81bb70b54b375e9cd240ac8a6ab9143fb529445c6622d445240a690908d043e583c7bf1be139ecb9a69dae77db74ca9755aac0a604a3eb342cc4a9";
   hasManpages = true;
-  sha512.source = "180798c7f61cfd56cef3b98f25dec39b4062b636297e60bfdf96c925f295a256e19fd25bdb8f18794db31d586234cf7c4d22989cd901d51bdaf6c3b8002e73ae";
+  sha512.source = "d05f8460b8f9b21233c92da7a5d64a898c4a4b5eae5dd8f15751d4de00b7ec48dc6ea0ccf43f43929295fbc83a5cc342dae9d7ba14034cf198d40de3cab247a9";
   hasRunfiles = true;
   license = [ "free" ];
   version = "3.13";
@@ -23729,11 +24228,11 @@ japanese-mathformulas = {
   version = "1.0.2";
 };
 japanese-otf = {
-  revision = 66102;
+  revision = 68492;
   stripPrefix = 0;
-  sha512.run = "e83d7c9ec784f25607d86c0afad9e89ccba68528ca37ec0fdee12bed5c97fb4fb7e2b3f1e63bb0f3818811eaf52a8b61cee8c7f9e853f6aec6d23dfccfd94a18";
-  sha512.doc = "f2ccccd9de5908567bbd2ad458288d16f245ac01d9bb29a1b5439e4f427262e6aebaeacbdd6ada4e63c0f59c5f35df1d9c5b90b0067c557a1e4695befd382855";
-  sha512.source = "981b75c8708cf0596ce397043776d9e469e504d0ce33d093409de735ace8e583bedfa94244abb92c7e251eed63e9f1c8c5131298f7a4d998d2e1d195f463cfc9";
+  sha512.run = "30821d9e8a8de886fcd6ac64801771ee7ff48c7523e38946a8127579bf53d7ed730867d78573dfdcdc88017743929064eed1d4a5b474328ee2cfa7f889905026";
+  sha512.doc = "80fec029e80a451eb9f53efc6e69935f9ee42063784a5f92784a595dab76532837062da90f3c3ccf8fea4e14b3cfcd339ba4e5fc539257c11e7726cb70ad2cc0";
+  sha512.source = "c5ee59b3741e19c96f151483ab5444f3fc41dd498ef8a8a34f87dd087439d29b614fe3d9597d1a29e65bcafa47b570bbe119fbe6d705436fbf1dcbf9a6b76576";
   hasRunfiles = true;
   license = [ "bsd3" ];
 };
@@ -23746,13 +24245,13 @@ jbact = {
   version = "1.30";
 };
 jeuxcartes = {
-  revision = 66195;
+  revision = 68266;
   stripPrefix = 0;
-  sha512.run = "903c67e8167f31a44783cd9673264d5417134f9201fa3490812e2805f52c41a36fda21ae7ad276b9075891cac0e6211fe360b38c9928b1cf0388a0315af47f9b";
-  sha512.doc = "82946707a25ba6115739be14202c0b5e9f0369a6ab28f74571d756e6d526c9af87d3efaeb10b9cd01680609f07e68df7830854995ad66c3a1856161f8ed2b95f";
+  sha512.run = "ad90719dd34791c88a5300d33ad7d633e650b3de6d61f493cf9069c39429f57ffbbde7aca1d2356a9cf6486701511fb7805049ed6a53ccbf49daa7a3dc5ab4e3";
+  sha512.doc = "9c918a0cb97ac3b82a88fd104a2e084404b83b2c04acac44e5f566774a3c01d8c91b0a73b49325ab6d7d366c5849e69a60c28a9686049c009bc249cc9b04c7a0";
   hasRunfiles = true;
   license = [ "lppl13c" "lgpl21" "publicDomain" "cc-by-sa-40" "publicDomain" "mit" ];
-  version = "0.2.3";
+  version = "0.2.8";
 };
 jfmutil = {
   revision = 60987;
@@ -23775,10 +24274,10 @@ jieeetran = {
   version = "0.19";
 };
 jigsaw = {
-  revision = 66036;
+  revision = 66009;
   stripPrefix = 0;
-  sha512.run = "1a40058ca0fffde5ab279969ad9a8ddbb84087fa03ed313f2ec027ad8cfacb60cf98251bf3c7bd09e8330d22d7b19fa29750039617450233bc53c83e42b89ce3";
-  sha512.doc = "a959a74f857ba77a33973f03a91c69286b9af2da0de594ee42e8192a5a698e0ec5b3ece1d145ab308ff67216c5ab9e4b593dcd6f2ccbc922c696aa1b32f8ac8c";
+  sha512.run = "3ad1aab51b4fbd99efc6bbfabf716cfd27e4af71674b094053f4866e38ab4c6c3f8d1884bfc4e4f7cf0fef11abfc488cafdb696238c5af1440255151b1b2ca77";
+  sha512.doc = "92d04e7497c19471f8aaa5344a1cc3824e18691daffab637a1822f900468269367244c984e4420efc94014cfc849ebfa4fd0db6e5b37cb1e89aa5493bdbbdb87";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.4";
@@ -23809,19 +24308,19 @@ jlabels = {
   license = [ "lppl13c" ];
 };
 jlreq = {
-  revision = 66374;
+  revision = 67400;
   stripPrefix = 0;
-  sha512.run = "d70b447ecaf3ed68a2df105928e5786c4425f1bcd8b3d5bd8096671b7e261e54dc276b6fe6417a51bf79efc5ab6ccc19c8862fe7a8f5ed94ca58074f76af6cc2";
-  sha512.doc = "2bc9c67b7b41e6204669a2d2a9cfff2fe3613473a02c8b4c4475ac7f7da1cf4b7f5dca85ca175c2de0cbdeb9b128f4e2b27b97d0b6c63ae5342fdabf5b052a5a";
-  sha512.source = "5597ad2a849889242bdc697a2ae2a27b01cd41797f7b42640b127030c9f1156d7f7abe6dad4973efec459d5200db4f0518d1e0d22fff0843c1094443c80481e9";
+  sha512.run = "7421f665a77b88d942d145dd63d0ea92c3f2c24815c564ea4eb13828bd9bc45cac1362dca4ae2e69a3f53fa9b79e4a495f87656bd560c951b407c34fab69a266";
+  sha512.doc = "2c3cf0af124dd6d92d41bd89a25884983c691c4a9a2a72c33754eda92244f37ccb310aa330f8b55d7a18c45d4bfdbeba60358d0e5b95bf7ffa3ce588f6a68b4d";
+  sha512.source = "0f455dad9f954f8e8d84bfda0fe704b0cf6a384f6c0a215299d9529d10950340071fbbee98f88a9f12a9863d3979246533a47e5a6e7fcdb71dbfc3c165079d74";
   hasRunfiles = true;
   license = [ "bsd2" ];
 };
 jlreq-deluxe = {
-  revision = 66119;
+  revision = 66115;
   stripPrefix = 0;
-  sha512.run = "2b775106af23d7756ce113ef06e05145612075566338e2880b7af5b4dc65ea9c57b74665238f4c8a3e80faa300068f5a2be53c7d89a9a7e83b6e0dac4e450da6";
-  sha512.doc = "feb125c080513d03a67e89d64eeea9faee01f2d72db5cc3a710b09792c2af330bb6a811067ba5f819eeda10776801d91b4ee931468e732bc7ebf673dbdad4ee6";
+  sha512.run = "318b01471bcd2e7a15d5e58fe922d341c9daddc3ed9f3565c85bd221dba2d5d38635d60b848aa37760b3ecfd4d007d202d69b6694eacd41c885eed34ce77c34a";
+  sha512.doc = "ce096d4d8461d1fef3e4c9d24efd8f7a402085ed03852ac2b293467400e2c000633cc852d4a0ccc2b0903c9e3a682770a4edf632183758b9753e6a1c553ecab7";
   hasRunfiles = true;
   license = [ "mit" ];
   version = "0.4.1";
@@ -23870,13 +24369,13 @@ jneurosci = {
   version = "1.00";
 };
 jnuexam = {
-  revision = 56867;
+  revision = 69161;
   stripPrefix = 0;
-  sha512.run = "36aa8858e22affb522332de4ef06a2760c5f4ecf24858fcad34655e0062cb319dc27a34ae1648fc89ebbdb2d3d79f8630d4d3663956022ec345a31cad58a5d1a";
-  sha512.doc = "e80d4db8fd0f094589ab88ef2afb01f17be611ef07b0b6fe827e8940227c5c47fce7841881dad4ce2805c0098f41eb27da5491cd50825cc70b5aa2c5bf4b1926";
+  sha512.run = "f09ea4e82d630111a770568a3ffa3de9b862bff33cfe40eeffb69e6997fd2893bf58eb626d557f310d77a13dd97d6369cb7ac3d1f87601dd3b8b2aa4dbc5fbca";
+  sha512.doc = "828fab98b92a094ba2f42e9dbafa2bd4ff6de6e7fcd242871a5e2b6d3ed2fffd54f3bc9ecce7e24e050f47aa264cc5f8d0684355340bcea00817e824e909543a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0";
+  version = "2.1";
 };
 jobname-suffix = {
   revision = 64797;
@@ -23887,6 +24386,15 @@ jobname-suffix = {
   license = [ "lppl13c" ];
   version = "1.0";
 };
+joinbox = {
+  revision = 68003;
+  stripPrefix = 0;
+  sha512.run = "c7ef7c28e11a64f060b37e1e17fbe54a80e1c5050bde043e77c42385037974a462598b66c3ab48a9d3317a6ce55a0af3a434465657e0a42d5568a127779c765d";
+  sha512.doc = "ed665aeb55d066887e536ad545199809216a2eb84d9d81fd81e40798c7a69c5d14a191a73a8c2ee9fdcc6d36a8d206d07fbd72d427172eb9a182bbb3b4751cf1";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0.2";
+};
 josefin = {
   revision = 64569;
   stripPrefix = 0;
@@ -23903,6 +24411,14 @@ jourcl = {
   hasRunfiles = true;
   license = [ "cc-by-sa-40" ];
 };
+jourrr = {
+  revision = 68556;
+  stripPrefix = 0;
+  sha512.run = "cbd5484b622c865b7c42f8ce54a76e54a5cbde6045701cd8fbba54d17c8abc510c79125e7d335c3509cb9c674ce233005f9fcac703fa95f3297239c00c3be682";
+  sha512.doc = "395fadb1bcc91eb1c3090f57d783b0b2deff507d22a4221258dd826d635ba382c4c4d00c0d341402374ba4bb037e39cb23efa2bb323652d73b0940ea89eb9f7b";
+  hasRunfiles = true;
+  license = [ "cc-by-sa-40" ];
+};
 jpneduenumerate = {
   revision = 63893;
   stripPrefix = 0;
@@ -23922,10 +24438,10 @@ jpnedumathsymbols = {
   version = "1.1";
 };
 jpsj = {
-  revision = 66119;
+  revision = 66115;
   stripPrefix = 0;
-  sha512.run = "ef3fe1333e50b9032021941a5ec965e2704f324e8d354f583f70a521e6595ca8edf9742a1cfce3da6fd9fae733f38f270149769b8b74b50fc9ef2d28bc5349e4";
-  sha512.doc = "6fa1b64cdd25ffecb5a6eb4a163ed9b77e5ee3d01743346b32f636d8d455943edc69df7f602ebf27d4caf30461d2fc1e4c9e3c635dbe51b49d07b6a883f63ded";
+  sha512.run = "de1383f7c52d4a43b0ecd2677314a88181e2702ae487b0ce3140b3048c1820bd504b6743002733e2da3e45553aaf911fe2c6ff552f77e706cbcd300570a34c03";
+  sha512.doc = "65c25cd1540664e4e529be67851e5198761cffd6eea495d1f60963dd9deb911ebe8426391fc456f08bb6f640040790fbe7d7702b21f7ddcfca5d246c02791764";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.2.2";
@@ -23939,11 +24455,11 @@ js-misc = {
   license = [ "publicDomain" ];
 };
 jsclasses = {
-  revision = 66100;
+  revision = 66093;
   stripPrefix = 0;
-  sha512.run = "ef3f39a09c29b9a94acef7041e4c9c16d6b301c926162ef85f7ec8c3f6bfa48f6d86a9a9e2c3246430d94d49bd58a36c37912599a3454dbfaec40ffdfc8b078b";
-  sha512.doc = "9cbd3abb0eb49259c2d008096fcd76e722bae7c14af820adb296c503d6eb3de280c456e16bb40e2795203dee470ce2c598bbeea4584ee1cb2ea3cbc6eb0e7590";
-  sha512.source = "714527b297551957f27c8b33b441caf600e48783183c53ef88b038c5ed97dd2ffc0a9964a68bd4086ade1ae52a23bcdb06b51ce93e43c32fb83de43f38dc71bd";
+  sha512.run = "aeba8c75d3af2077763da1846e09b6d51ce0f5935cc4e8a09fb6c747d9321161996423ce620d04c15cfe3a4f9af3ea36f90ccbded6fa03dcc088c5e71be74295";
+  sha512.doc = "0ce0175fc4a3ea36154c329961d7604bb06431b586dc1bc928afd5b2ada528bb79349a833504ccc93525addde80818210cfa2a1803ecb319032bc8eda034f18c";
+  sha512.source = "4b8e605a8f9d3de33b9deef3dd58ae2984881f9716b0a9647fd794a3c97549e50ffe3f2556bb4b4ebc5938ce3516abda9445d4ddff21882b53ccfd9276b37e02";
   hasRunfiles = true;
   license = [ "bsd3" ];
 };
@@ -23966,13 +24482,22 @@ jumplines = {
   version = "0.2";
 };
 junicode = {
-  revision = 61719;
+  revision = 69355;
   stripPrefix = 0;
-  sha512.run = "dd565975fe8ce096d575c0237caae274c0c3efb0a7b3b3fc3cc561636536ea71d62f20e73e549711580a1792e69fa794677d88ebbb7cbad28bd6c82a53797167";
-  sha512.doc = "120772bc43e50cd12e936fe0903d6b91202c2379f073750372d30ffa0abde39cc5f6092089e289fac97ef95b955e2785c07030496f601b805193138414bcc271";
+  sha512.run = "e368f15bb9adcf7ed15527e4e381424896590866cdb9a214b7f8310e9fd0c660ff5abe442a2206aa88f4032665f40fbdc21b33eba910ff1b299c5940eba82982";
+  sha512.doc = "937127e4089bf632b62dc1a218645b1c2903a700183e9d9e7456b16a47b089846509d5d3f89424417a19dd540badabdc6a8a6024826e5cfbad97c19ae9f4bdd4";
   hasRunfiles = true;
-  license = [ "ofl" ];
-  version = "1.0.2";
+  license = [ "ofl" "lppl13c" ];
+  version = "2.206";
+};
+junicodevf = {
+  revision = 69374;
+  stripPrefix = 0;
+  sha512.run = "1c227ce22bb32e8799cabfb943fcd38a4ccc6c07aa7d9dc9708c9bc84352c4a660cbf8c6d31249e47825b961f67a0d7da59349c827a97eada6a37a327091973e";
+  sha512.doc = "c96e5c1887f39a2151bf697353b84d9049ca3686a61568f1d99b68596d1b7f6363810962652813403881754ac412240a9d557a7053803172ba45a8c7c7057c13";
+  hasRunfiles = true;
+  license = [ "ofl" "lppl13c" ];
+  version = "2.206";
 };
 jupynotex = {
   revision = 56715;
@@ -24042,13 +24567,13 @@ jvlisting = {
   version = "0.7";
 };
 jwjournal = {
-  revision = 65480;
+  revision = 69162;
   stripPrefix = 0;
   deps = [
     "einfart"
   ];
-  sha512.run = "0f322a3af5cb47d88a2cc9ec275433e5c13e7a39bb0d1b3dd9513cbf9cf745774a676e7cb5734cc0eab330f78d973742b98287710538eccc5720c5903f534778";
-  sha512.doc = "df9e6f8b942a4d35842e18417d8624c91f4f08fcd8749b2c99513eb51b00c63517fa54c7389166bb78e0296927feba04339ae6a61de9da4281bacc5c60effe36";
+  sha512.run = "9778eb2f8a5999584afdb07b9604691d9ed1253a8a2bdedf569a10e892e876288a74c525bab2e0d26f8ed851d94f81e4a3625a54f1246cb0428a24308546d502";
+  sha512.doc = "dde16cc247d095b61e09b62039f081afa1855778b7d804e6e5692213c25a14c2746204a730f7934a531142f5b9151dc183b20f1d2aa14429d448cc5d4e543996";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -24081,14 +24606,14 @@ kanbun = {
   version = "1.2";
 };
 kantlipsum = {
-  revision = 51727;
+  revision = 68983;
   stripPrefix = 0;
-  sha512.run = "7aac4684e6d08b46319b711a824dbe33446674f63fe301e366543553e6fc4c41aa1eb9aabfc9d11710014c9347ac559dfa1882478f6ec5d9edb39c5dc42cda8d";
-  sha512.doc = "bb96e91c7562c34c56c7170e246eb71c353d67d649cbbaee5904f6bd82b905b93e79baeee536a3d8eb8b9f08296591a8d0fe621883914f4af676f78c6f244523";
-  sha512.source = "aeebdbaa22e0e2b369a18bf7243d714b872115ac9f0154438d37aa0719e3623ce27d31068d90bb60b301322b30c18bf34d4ad312355a65c8e00043653f696b54";
+  sha512.run = "bc863e42abe6397617c588c85936eec4dec5fd9578b26cdfaa80e25abd29ae814a009952f246a4920a3da43e0842a9b113d0c73eb7514b72a9c5a16193f914bb";
+  sha512.doc = "97f15c38fff7c30d99313be71a6908f5391bb15a3e363fd00bf6a6563a2abdca2d98969d5299ba644d33917b48da41985c5ea6d9238e2e8a7fbd285262bcb8d5";
+  sha512.source = "873c0b66e7d83fc93d916d4599e96ff8ce8cd045ad2220914cd4161e15e8f357676b86a35dccdca927c03abbe224f604dca187eb58cd3bc42ba78ed70b9130d4";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.8a";
+  version = "0.8c";
 };
 karnaugh = {
   revision = 21338;
@@ -24128,12 +24653,12 @@ kastrup = {
   license = [ "free" ];
 };
 kaytannollista-latexia = {
-  revision = 65461;
+  revision = 69265;
   stripPrefix = 0;
-  sha512.run = "dd0c2543cb40e8b1f36f29f2be3675874ce4a51538cf54584af0393e74a0acb9674a40433256d8629ceb68acb4d2d8641e97c5f19a3a0709843837a1279a10cb";
-  sha512.doc = "35056d4df46d7a935d600ee6e670a3a3221524c8e4ed1ac6da638c0fe645bd6b2786dbc2d512558c65e6675f0c5e7ca27dd3dd83eca81ca8a1d4d8cc1a18dfca";
+  sha512.run = "c91cf44906a6e377138a04048a3b9885ad10df3ceef268ee3c8d467e4697fa8af1cc5f077b0ae5e2d6049abdd0dfce35a2f83d0ee46e06a1759397a657c28ca8";
+  sha512.doc = "8ef1f9e57e05911d443123bd4393c9bf99b715a4dcab570b361e7798f714228b2782dff0705fa91e660eb2e767709b36de677b7d96c103ce674875b26d47af35";
   license = [ "cc-by-sa-40" ];
-  version = "2023";
+  version = "2024";
 };
 kblocks = {
   revision = 57617;
@@ -24221,14 +24746,14 @@ keycommand = {
   version = "3.1415";
 };
 keyfloat = {
-  revision = 65446;
+  revision = 69399;
   stripPrefix = 0;
-  sha512.run = "aeb72770dda420e3694b98ba4d9071e814b0fea850ca6876769c44ad4b7fb1b3873db0e2eddebfbc85b11603f301826dc5d04c9aa5d9e250c807d3ffa795de79";
-  sha512.doc = "19a7aa10ea4916fdfbbddd9e843db4b312a2bd5a24192fd980b34bdf5669dfe3dc5553089bb3fbd7a892167a9fa21a0424c7461a881fe2ab16f353b9c0216376";
-  sha512.source = "f0d8d54049cb79aa54d52b6c669104e6c9928e863d70df6dd434f6842bfee3bd653c4249732feb11237c5db88010d4ef0bae7f1238b19ffb807e33d4bfeb0573";
+  sha512.run = "b3bbbe74c5db4eeb1a74d49e0fe9608df347921caa0814faca8eb62cad674fc3977c7af1cd58849fe6abab5a1231b4ac3999d5af7aceb7655f12d883e41148bd";
+  sha512.doc = "43771371d9f81311e29be4b7ad2b1876299d6ff4ea740e9cd759a01701665bb6bd37983828238e13141e39c253b6d3d92b566fc97ba2944d7967cf55e492913a";
+  sha512.source = "89f10c6c68e6941de535abfc4e86a0e019a1bcbd2cf10f0fa542adc208f5ee8c1c7884f679d87186c2103b4b1f69b36b50e3c73512fd9209db1be4f5c87f05c9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.08";
+  version = "2.09";
 };
 keyindex = {
   revision = 50828;
@@ -24297,6 +24822,15 @@ kfupm-math-exam = {
   license = [ "mit" ];
   version = "0.1.0";
 };
+khatalmaqala = {
+  revision = 68280;
+  stripPrefix = 0;
+  sha512.run = "78481f7d494a7c1d9312e3c11a700e43b007660aaaf28f74a3aae4966b2387088bb891cc8e73bd431ad992395f7b66a10b9b326d2262509fdac3e153473d37dd";
+  sha512.doc = "ec0f8ec3213a009899134fbf2389f9f33e2747175bf94246c0e035c424728251c0e16a3391e598007b83262353db66acc87431f6856dc1df6e784d5f40b4a2a0";
+  hasRunfiles = true;
+  license = [ "ofl" ];
+  version = "1.0.2";
+};
 kinematikz = {
   revision = 61392;
   stripPrefix = 0;
@@ -24365,12 +24899,12 @@ knuth-errata = {
   license = [ "knuth" ];
 };
 knuth-hint = {
-  revision = 62971;
+  revision = 67373;
   stripPrefix = 0;
-  sha512.run = "0fee38074b4f7abb32f021259951072ee662ab96bcf7127e14e0e3fa68fa981a533a9112a56eaa7a71da48805737abdf3db3d41acc012300217082068e72c10a";
-  sha512.doc = "0cefe2852a97aa680989280e7e2349dce4355f5442ca34334b585596eae9923537a5acada9fca5e90eb4ff10a817df58f6bac35c5944b407cf3d6cb87cc745d9";
+  sha512.run = "ffe5a785191fe8506f59557546b3bce29a236ed5e23a6766941b37dd134bd00ff1ec5dad0278d837bfe2cf8a0e69e5ab5921daa320184ee259580c9b41d92ede";
+  sha512.doc = "5b47b3cbf6164bce8cf6903702b5a6ed93fcd13def2de2e6b30e3c8e758fdf076a1c14f1bc452768c9841d967e932a6597ff0a1a7c9140ce2100036fa04f031b";
   license = [ "publicDomain" "knuth" ];
-  version = "1.0";
+  version = "2.1";
 };
 knuth-lib = {
   revision = 57963;
@@ -24387,12 +24921,12 @@ knuth-local = {
   license = [ "publicDomain" ];
 };
 knuth-pdf = {
-  revision = 62969;
+  revision = 67332;
   stripPrefix = 0;
-  sha512.run = "4dbe29f3f595973beb13764e3e8514834a3c5b371a8cb74effedc11e9ec62c72e64e68a314f26bb1cddc491f58bdf01015bd9c3fff4e566d9e5e28a6f5ca52bf";
-  sha512.doc = "4bb68abdd5183201848e4000f921f7ee6095480341877f9cb050c923dbb930c962c78854db477d8a7df64a613693d7dc406186b4682a47371975a4c4eaff66fa";
+  sha512.run = "ab6e1db43370a551700c4ad8ca9e3787a7be7a06da2a72fd4cb0faa7091fefa1847d143bdf9c8d603ad7d307495ad34faca4e5ef054fa011d0137ba90f888a5d";
+  sha512.doc = "0f16994ee8e64478d01f7b0f2c54c55369b5f661abe7f4db347cb2b7d146c4efbf337e20fd7eba1cce497d8cfa5058bbf4c013073028c364678334c524aea155";
   license = [ "publicDomain" ];
-  version = "2.0";
+  version = "2.1";
 };
 koma-moderncvclassic = {
   revision = 25025;
@@ -24404,15 +24938,15 @@ koma-moderncvclassic = {
   version = "0.5";
 };
 koma-script = {
-  revision = 64685;
+  revision = 67573;
   stripPrefix = 0;
   deps = [
     "footmisc"
   ];
-  sha512.run = "2fe2a07d56107390a191c016c29f7bf77700647b7996957a3802aa89b9b7eacc4cefe1c444b6faa688a147a8b0d9c5d80fca511dc2454a15ada6ddaf6aa3ccb2";
+  sha512.run = "0ad55b5765ec907f39bbb8bba7deee4a131d76c81a0e7bd7379031c5a8771d47c121df5a55699706c886063a12bdf338e5b47b6a6784f0a23a72891a07b322b9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.38";
+  version = "3.41";
 };
 koma-script-examples = {
   revision = 63833;
@@ -24450,15 +24984,24 @@ komacv-rg = {
   license = [ "lppl12" ];
   version = "0.9.2";
 };
+korigamik = {
+  revision = 68204;
+  stripPrefix = 0;
+  sha512.run = "8218a2e5d09cc572c3e3bcba6d49ad9ef9be5016cbf2f3bb57c7f649fc638f718f5d91c09c3d9013ac182e651b0c53b65c7a118a021eda68a53a1e8641a0a8ee";
+  sha512.doc = "291a1153ed32bce9c7b845a40b4de3f63715f2179765021c1ac3f678bf1594a0abe405824099826eeeae30a90a5fd773e6e5aa91fe66a08ed47c91f371fdb6cc";
+  hasRunfiles = true;
+  license = [ "gpl3Plus" ];
+  version = "1.0";
+};
 kotex-oblivoir = {
-  revision = 66516;
+  revision = 66513;
   stripPrefix = 0;
   deps = [
     "kotex-utf"
     "memoir"
   ];
-  sha512.run = "29d7c6a98c086b7e3b9b857151250bc9e5e1e28b52f5215b61a0b30fe96278d0571a117d245a40e141e7724641a4d5e9439ca960b6888c07f2d8347b67ccae05";
-  sha512.doc = "8ac08af766c6c4b021aef5d9ea7f179f444163b954fc26eeef502e7dd1a99e44952efe91b5129084a1b2606345c854c367875601d6a59655c5e79c189e6ad376";
+  sha512.run = "ec9022c6f1fb3d888e7624f4ed311327d9f0b9b569f7eaa078d03c275027edbb4cbcf5785d155ec9cc7c68ea1f93f5d527cc769a12609c361250d5bcaf0d9d42";
+  sha512.doc = "28d6c7c2ba61c06258020dce099ae1ba339ff1a6c0a1c9b350512914fda062d3cc612cdb4410cb3ccefdef0f0700c6f724a35e1f8c5a0fcfdfe16c090322b59d";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "3.2.1";
@@ -24501,9 +25044,9 @@ kotex-utils.binfiles = [
   "ttf2kotexfont"
 ];
 kpathsea = {
-  revision = 65309;
-  sha512.run = "8a9f0dd49470bec5ba0f963a0385bea45141d6b805682bd65e95291b02158b9d2cedd5bd43592de7c447fe87f04efa00e4d1aa191a490147adcb57ec3922b5db";
-  sha512.doc = "51500943de0184fd9794dbf6af80aed2fc7bbaf2a7949facb1840ad0e32344d217aa4d58ee76e3934aec891858f789b3847b9027cb2bd75e5962be98ddd9d02f";
+  revision = 69121;
+  sha512.run = "08b2ebc546de9615927f9933937c81a5fbae702e20e389055c62f13b70ce81a87995dcf402d8b94d0025eea80f9fbc1500270b615fe3f26f1e9c12a245dbd1d4";
+  sha512.doc = "17687e289d912120a0dc0b79829145521dcb660fee024f249153235bb2591936bedae9370ff20d8eb137d54d40d73d2854e4312651eff8a6763bf70040e0bf47";
   hasManpages = true;
   hasInfo = true;
   hasRunfiles = true;
@@ -24525,13 +25068,13 @@ kpfonts = {
   version = "3.35";
 };
 kpfonts-otf = {
-  revision = 65560;
+  revision = 68970;
   stripPrefix = 0;
-  sha512.run = "f78d001ca2fff4367338e5b8bfc2adc933daac36168bfa88523cf03379ddf2da12d3c1d92bb3feaeab2eb4fe090aef691ba76c93b5aeb53d4a766fd2366a3556";
-  sha512.doc = "61be2d97b486e1dc330f3e0e16ca1b33c674afad63ddc711996d8126d9157851a2158f0c31e96d1bfb8d968ee5ca73f066714645af8374c6bffe3f8c5442daa3";
+  sha512.run = "d2519e9ea6aa8cb660d2fdd69e6e686c17c6111eeeb313dd163dc3dfc4ea90dab4abf41661541a461c6b7536062cc6d30f8bc802c2c86850b88b19e64b5c827b";
+  sha512.doc = "ad75e243de2644d48130c75923953368ffa09144f7b8e67738e2cc2e065026fbf1762251fef84ff89762f40a86ae1f1f6cb92b4a09924036fa73a004921acdb6";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
-  version = "0.48";
+  version = "0.61";
 };
 ksfh_nat = {
   revision = 24825;
@@ -24598,16 +25141,16 @@ kvdefinekeys = {
   version = "1.6";
 };
 kvmap = {
-  revision = 56361;
+  revision = 67201;
   stripPrefix = 0;
   deps = [
     "amsmath"
     "l3experimental"
     "pgf"
   ];
-  sha512.run = "54a107c866519e6ce6cb69bd8c13ae085813c4adf235592e32cbfb2bd7eb8039ff8e1fe165f43892367a28ac0984874581424e733b1d3722796204df96d840f3";
-  sha512.doc = "41fb3957c91e3127b5d7c78fe2114cb4fe6c8167e6f7f2bbf3a5b7c0fdb12c0ac79e47d84fad54c4b6a3165114c333c575eea01d5c0c886c19b21643ab0fb03f";
-  sha512.source = "5dae9b0972acc7c95b148fb13d9008b27591aa9ff9065c1c43dc799c5096f89a8b6b2da97b17bb5e544b1a10702cf247d9cecaa39d9790993996276741c0d792";
+  sha512.run = "ea3659bf10ca08945ade08c52b4eba46fa01e28443bffd672a1614f917fe71f68a63d98568e23266d7becf6f6a4fed48f2d2367256a39e956bd2f1d40aff6f71";
+  sha512.doc = "96f3738d31a6d9fe8f8f8624448749fea3aa2d6edac1442eecd70d570954692eb9e1756c1b4f4cb02a8dc17cde37ea0012824fccc5b567250c8ab6715150c796";
+  sha512.source = "24103e29f4268d4ced68d5d1bb342c0e0155fe56e1ca07caadeda841795e44b0b246d2cc39a97f8c683a9ba71160ac774bcd194177352d6e29c079921c43c5b9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.3.5";
@@ -24681,23 +25224,23 @@ l2tabu-spanish = {
   version = "1.1";
 };
 l3backend = {
-  revision = 65573;
+  revision = 69310;
   stripPrefix = 0;
-  sha512.run = "adeed96dee5075c022752def063e1602dcc59d30ff032d3da5d51fdc57fd21c881eff95bfb9c027c8edd683a1e33030c72d3dac03fc62d7f2c32f782618ef6ba";
-  sha512.doc = "9b2dbdd99c36f9003dca7d28d578fbdc12d40fdf861c04dc579f9b81ab3dba4c7ba05143ff0b024b422c4d70c068ebecbc76ce1e03edb233e248dae3d5962d74";
-  sha512.source = "fcdc5cd944e68405fed8fcb4e97d5c855de67b00e352f99fe810e5bb61cda8ac0b1c25e7e07596ddc8528177b1277bbf1deecd370a31235edc94e8a0b2235ab8";
+  sha512.run = "06481bcaf4082b3f187a855eedc32abae8423ad5020911ba1ab10bf937c767f98ea8eb10f6a83dc41af126facf72bf4a52c9ac61b9a1d2b9065c4a20f86b617b";
+  sha512.doc = "637728bdbdeccd2ec5ced361941b7e9cb560b53dc2ed95755d7a4da45d22004923c034e1aa55b9ca13c2b8d7980f99deead19774120a296339402fd71c9c7948";
+  sha512.source = "16ec201e41de548e9d6b65dba8a778a30a88729c186c18079e50dab46b310f8313847ce5e4402dd71a01dcde8a0e8a74ce96336403ef53adf8283a5491e33223";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
 l3build = {
-  revision = 66476;
+  revision = 69360;
   deps = [
     "luatex"
   ];
-  sha512.run = "448eb99216ab32847ca682083ec700ef04851f3a680b67b6e2abcb7eb5e0b1d705260776f23073e5e8c43ff0dac9bfe343a6d271aaa5b99392c0603538f23bac";
-  sha512.doc = "a1b2a775a1b12937afe34c4843aa6374f6e2bfe3e29004bb2b05f16d81f440921503c6373f7a44f5c72fa1185c7d0e7d06a7a2c5113986fc6b35d66b4b6d6f49";
+  sha512.run = "d69d48f9720187457d38db15492d2852990fea748a6ef505f244469185862d9c167e82422056839e7dfb22ad1a89d123711ee7c756197d1fe393d4526470d51c";
+  sha512.doc = "8d53dcc007176451d00d0d78a965b8f88d6bd1096ee340da14198573704304f1c9eb87de466a824871345c2e7043445631d7eadb6916e5cd13172e089912efef";
   hasManpages = true;
-  sha512.source = "35f6b8a5c72b5e4d7e019ec7d4954fef929f3958dc0667f554728034c28f2aab63df3c82f5d2101502906534ee02f51a6fbc1e88b49f8da8c017355c9cd7fdb2";
+  sha512.source = "8f53fd6835cfcbc22bf88be42afe97f92d007b89d2c9dfd745cbc23037a94b77a0a7261837bb77901cba7f52748c904bc0e009f253f68aa52aa8347728c2c7d5";
   hasRunfiles = true;
   scriptExts = [
     "lua"
@@ -24708,38 +25251,38 @@ l3build.binfiles = [
   "l3build"
 ];
 l3experimental = {
-  revision = 65621;
+  revision = 69310;
   stripPrefix = 0;
   deps = [
     "l3kernel"
   ];
-  sha512.run = "1074091d77bc323d108e27cb08592c895fae20f4cb563734dd69701f1a4ac215575af9425db9eec98e420317325adad434c21dbed50063036715b95d67050c90";
-  sha512.doc = "8b954e90f323646a289de57aa6c1a01c25a948b42d70d439c9921437b01fa489a01c08e50bf0601ee4fa12b32f8b60c64af82cf6a4ac9cd8cefb6ef4b4a22c70";
-  sha512.source = "aa5352e2c74e191baf954acdcbd22aef14a3c7aefef3acef6dbfabf206ed30d3102c29448f4401aa89c820172fb5b892a3af537f4ec605fb0b8e159b61131cbc";
+  sha512.run = "2e32434ce1c2e485e879e87cd1becb8374d54ec818b321b17d85d0586382351407c3ba0b246431dbbeb16994f525f5ecbd127465e7bb52ac96e7333d3dbf50f1";
+  sha512.doc = "6834b31fbaa7546a7bdc066134d85cc310609c3966905ec654b86cc590d26a55939e760ca5334b7ccb612c27836a9e3d876ad95a3d15f6fad4bb4bb6269faac3";
+  sha512.source = "e278373263b43924aab0e45c7e0a8fed54e907d5756022253b9a70121d0b2c978030e774fd52e72d240b5c15a05fe2c4c926d5cb84277ae9cf40021b80c9fd81";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
 l3kernel = {
-  revision = 66099;
+  revision = 69310;
   stripPrefix = 0;
   deps = [
     "l3backend"
   ];
-  sha512.run = "820486c9e558687307d46b7014a8465c1c64fc7ab6826ad1af3905e43923a2ccc1ab9f49eb788ef789ac066555c459d025d6e20053d3e193ac7472b2c2ae309f";
-  sha512.doc = "0bce2a717b743fcf28063fa5f3f67dad352060bebfce10d4dc82d3c2b691d63d3511a8f216099f8f3ef46b47d02f567cbe9aafb7451052282ae7b0abe1a1bb49";
-  sha512.source = "6b5e60555640e0f568013e28ede3c8b914f22bb623554361a4cc68140b393234ba6cdbe0defb95e81858c0f8dbee43eaaa0e7d863a5794453f3a810c3cafb45e";
+  sha512.run = "254ca061eef5d18c856c4fb2ef00240fbf1f85b7459739b92787a99ef2c36054ce2eda2629ce92305e0e6c8b73f85074c691595d88a0ad035594307d60b2d5fd";
+  sha512.doc = "71265e9c6834c69c2945810a7aec93d7c5118b5ace790d9aebe846f86dbf62652d19d5fea2979a0701c0ff6a2c2c5bedf55a20a19cc8d5944cbd7eece3061d65";
+  sha512.source = "e2416ae4337acfd241fbd1f8b5a2d2a60c0a3838933404ac48e36c7711d6418efec041a5d8be58383a49ad0f6f3e38d8a522a0bbf9c4b589b4bfe46c9d174b6c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
 l3packages = {
-  revision = 65722;
+  revision = 68507;
   stripPrefix = 0;
   deps = [
     "l3kernel"
   ];
-  sha512.run = "39204e9cd356a5202dddad329cefa5bb47d11e6553609fbcf79a878c524b8f67e868e027015e304fb626d5bb953a69743390174f20f489302682e08a512c26f0";
-  sha512.doc = "3ece8153e345f4678cf5e4c05200033a64fc7e0d9e80d42ad8f32604f8b78a888ab86a98a8c68144855773d96650698af82af3be77fc7523d7cb9ec36a9c5d9a";
-  sha512.source = "8a113832ec4aab128ef471c496a86bde774c9b86f77beef04b8eed03ee8c78c57004786d4606a67e5bfdccdfd41fcf7875fc96f2e03e59b6f0884cf5e03a6644";
+  sha512.run = "aaf755351982e89531305e3f7a037db69e15b1b1eabb4140cb7a3a0a4db7c9604222cf0b9622d05b7637da310634f4ca1f00ab5941f51f152eb46b77165e4c92";
+  sha512.doc = "05231cdbc1f9bf3ad9775893099c46705f155a15e3ce9c4e8fb3d92422a3bd3dce9d05cd89e6f45c1d2afcf4c3dd469995e8d156e045d95b2788a4712ad5f094";
+  sha512.source = "642810f1d5eb19059e0d5541b3cf98c6e7412c1cd3194d469eedf9df5d53ba8c1d0f3ecd382df18637408648d252c3c52bb6e730391049626d8dc5076bb3b7e7";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -24772,14 +25315,14 @@ labels4easylist = {
   version = "1.0";
 };
 labelschanged = {
-  revision = 46040;
+  revision = 69400;
   stripPrefix = 0;
-  sha512.run = "e9cbb45a636fa75c9b9c8d8400fd9a0cf0ef2a46f998d650631e9874907daa7b4deeb4c99d1610eefc343436d164ace717b32cb1d0c45e860e64d69e4c827a07";
-  sha512.doc = "130c0e5f27f0de161949fca202f73bce3486e9346a48584ce1b8636c16367eb3398b36f0145e37531d64933698c201132ba90ca3b5d5b011978d0fad0cc5ad63";
-  sha512.source = "59c1cd3371e97542f6f1cd8fcd14b3cadfabffbecad635bcea33eb535e45ba8b174e9e392e135c799afec08c195b867477255d1336c281a1e9dffe7c1c457cd3";
+  sha512.run = "9d40f477089880f8e0c61f95af1e94848dbac11a8ea5ee3a0c0c33a5883a8aba4c0471d2e23319667aa0dbf0699599372c8267588247809f316304e868ebaaf5";
+  sha512.doc = "ca1f6dd7d4be5c9b130a17c75cfe927e354ffd5756bd893ef99c2f67dfef69a585e139d9d3b44e0828cf0928197bfcc8a909e5a32ca386380ca2a203a8ad0fee";
+  sha512.source = "e3e5187658e31d0391910a1d4610cdb5572ddf13006423aa673475e165b04bcca56f6d324f0b383a6e7faf0a3263e68f5727c39eef38e903ee2950981c5b290c";
   hasRunfiles = true;
   license = [ "publicDomain" ];
-  version = "1.0";
+  version = "1.01";
 };
 labyrinth = {
   revision = 33454;
@@ -24791,9 +25334,9 @@ labyrinth = {
   version = "1.0";
 };
 lacheck = {
-  revision = 54070;
-  sha512.run = "30241d13ac35054017c6240ad066ae84b11c26757fa895ffdc1444b0825e50a2a89864ca85d710882be4105127c4df203ad4a403504a6c309b796c9b9ee5b589";
-  sha512.doc = "a1ef923bfe1c3496651052b4a8b6978665b75f43b7dbeb254fb61657050427aedc8415218f988a7e727849dd0001b67ed023ecd252bac2445b0965a58800187c";
+  revision = 66186;
+  sha512.run = "5a27d940fe59c61539d053bc6602bf37df1f538679eaf34d0e8b3ec3aed74ff619e4843ae2769aeafd10074328e9e27255376bc9e809d373d3913995a2a95b87";
+  sha512.doc = "cf4355d56985f9335270e4280d10602299fadfd01605e83edb4e8b89cf0d91b3e8ca671257a9599d5f5578e7a85140d390edd40c3b109f77bb9fca5ba47ca517";
   hasManpages = true;
   license = [ "gpl1Only" ];
 };
@@ -24843,14 +25386,14 @@ langcode = {
   version = "0.2";
 };
 langnames = {
-  revision = 65502;
+  revision = 69101;
   stripPrefix = 0;
-  sha512.run = "34942812d0c0a59d9e0515e58dc6517a3e4b9fcbf75a338925f2913287d712b9975aa2c48a5f65d2453d5d2b5798f506e8b5bbcb6351ab92cd7a77a07804e94a";
-  sha512.doc = "0f3d6dc9fcff40e3bbf8d9217629b5c587dd5cca03efa840611d907bc2859f88515e9f4a052fe229d9fbdd3aa2c2d5905a5cfe818b09897688f3e528d12c0267";
-  sha512.source = "0777e5a79ac5dd94ac8a9c7191f877408c5d00de252ee95015e8b8918fc94dd29877f10ee110c082df2309d4c0f057fee6a5c50568259d8f93ef7f55b5b5609e";
+  sha512.run = "16d4b14025e142be2c0d21509041d99ee2eb9b4b765abfa3102cf79759c79e79f43191f8ba1fcea3d8c7269bdeb6feb0a9efafb1f1ea195b58ed97a307386bdf";
+  sha512.doc = "0cc3548f9a640e3c6756298ff609bc5458f30fe096fb8557881356624dcfc6f81068af21731df3c5635381ef98c9b30c1f297213b8489e2bab8840c78f723ed8";
+  sha512.source = "dba944b6330ed6ec883ae6bc0fddb724b74d5ea31d703cd89e85e9cf91642d9edcfdc4710e812bbf658774611bb29764fa8e2a3e1df678e70aab6fa160cad50b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.1";
+  version = "3.0.0";
 };
 langsci = {
   revision = 65793;
@@ -24861,11 +25404,11 @@ langsci = {
   license = [ "lppl13c" ];
 };
 langsci-avm = {
-  revision = 66030;
+  revision = 66016;
   stripPrefix = 0;
-  sha512.run = "8ad343adc02963f16994f9e2aaef7cd1f65335493779f78b2074b9fd633cdc1503a1f0132af5f883bf922c7ac3bfc0e31af498dc374fb2bb6b1a863f94bf1a76";
-  sha512.doc = "fe54e7fc550904ae835d49bc628a99361cbe08b979607992dc134157e466a7afdde35a01e2664a0f7f8ef822f00b1a6726aedbee49c2597f19d8b8ada8903591";
-  sha512.source = "d6f6e468c729715295c1f4f9d9a784cc5924a2a535c108bdbabd2e4dfefe6458a2ddf66883dfe91db8b68e8dfb72d77b3fbc05d2d07c2b22cdfc079ad2f519bb";
+  sha512.run = "00cb724f7783d4f6d088f38bd60c816afe8c117b338bf3ae320e4b8118416f025b535989a48262d13d210087560ae01d850f2562f3d75db38210fcb6c012ab38";
+  sha512.doc = "618e957df349847fd4828b07ad44e9a8247bcaba893704379471afbf9348c310da92fde003bbbe963b3249ba532982483ad7eb53950a5f39b27f9c17058f7bd0";
+  sha512.source = "bd2a2411ad9e5d418f33b3c758bcc7f572aff8be2a8b757c247bf099d246f4b658602cdda97e12de0e784259e13b3e4840b5789baf35606ebfc3baf2629bea10";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.3.0";
@@ -24890,17 +25433,17 @@ lastpackage = {
   version = "0.1";
 };
 lastpage = {
-  revision = 66465;
+  revision = 68557;
   stripPrefix = 0;
-  sha512.run = "481f889f29cd7111d4696ba5a5d7547bf76270bc269a55f039d6c14ac43ec5168f8876288c22aa1282d74db32c39f52250aed23b904a1a6244af0e4061df8a9d";
-  sha512.doc = "86282d58c1d12cb32a73005bc17eaeb2c92bc378981a9a0225bae3e9689324aa0f3b705aae774eab1b1a7ed262965a241f336ef58a69bf395bc8d09fffa4cbc0";
-  sha512.source = "82cd6613a3d12677d8303983a42cb55dbead822c6b001d7c2a76effb59a2ef5c9bd9898652eee0aea9213d2ef16739bfed520329c356974800c4893863f15569";
+  sha512.run = "058f7b1e73340b5290beb22054c1bc0b97cd64a3051e90a4359ac7916ba033ce0817e6a1139a8b6b301bc0f68176bd882e8bdc7a7b59a719f0d090dc7cd76242";
+  sha512.doc = "e72576d702e2e76242c18d645351568f4adaa468b5946fca30c9ca7b9d2c36a703ad91df3b898089499c0127aeeef79e904652f35ab6bf98f5126ec6c387baa2";
+  sha512.source = "3b0f6326e815812644493e1a0ff422520e9e555f87f93d1c3f31a3b4a1250254ff0f4161e36785cdefb09833c9a3ae93e005cb4d5a4c3157372f79e00e23a779";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.0a";
+  version = "2.0e";
 };
 latex = {
-  revision = 65161;
+  revision = 68720;
   stripPrefix = 0;
   deps = [
     "latex-fonts"
@@ -24908,35 +25451,35 @@ latex = {
     "luatex"
     "pdftex"
   ];
-  sha512.run = "de95ba089738862d57b1139a21da57a8263cbe9ff81a7ab43608ce23fde57b4630057a95c99ecb7be712bc864e0c07a56429019d7aa9f63c01f47a995d5d567d";
-  sha512.doc = "68ecd2a5c85afe7b39402db416bb7ad0f8e5662c77d77c0839a470f3f70da65377560fbcb5a6952e997da70868533f29a4b7c65d3f7dd63db13aa95ee7159b23";
-  sha512.source = "59d3d31147fc8a31c6348c2a5f371cd4dc69d2367f9ced0c62150c5d14ead49b4e195c328ad4791638e61b93f69143c0c93bbed5551b31e4de1284a4aa7b6d73";
+  sha512.run = "5db84e105289993a7b03358f17af52568fc826c677368aec4c9326c1ca974961de01833b038aae6b95101a05dbd60f6714756d866e1a144c30199a0bd661e30c";
+  sha512.doc = "53f76796c526b4357b48df1443baedf5af5304da87b21ed2ee6619184c9daec33c8fd7a059f92c0dc037c1b19c3bedf804e907c8031385b1f62d199c7af67e2b";
+  sha512.source = "c6c5244599aa46ee18f66dfbb59e59411625cdb75333bd84a461f3c03b3f4d0400e3d6100b1f511107d779f0adc7dc1ae50952c1315ed587b95432dd3b659a0c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2022-11-01_PL1";
+  version = "2023-06-01_PL1";
 };
 latex-amsmath-dev = {
-  revision = 64899;
+  revision = 68730;
   stripPrefix = 0;
-  sha512.run = "54d16b5357800dfdeed39ea71e5c98bbe8ff88c4f01bf9781be181d47854110bd5e9f50a70b512963e4034d5b984e5ab898f61412b3d5b183c3799a908512e64";
-  sha512.doc = "e1d3a8c5f15962c3727dab5d9cf6aff999e817e56ec950b3a49adc762318a895cbfe411e27795957831b18f8b19ade00b40ea9c72e0e112ed41540556eb179f0";
-  sha512.source = "2d1cb38cf290f4fbcf7cd32f2befbb399a4f92a89396ce312f4274f05ceb72b702c0908b1f7877fcc346e4c78499af1028edbb6723b57d3ca4a31ea30d68fb76";
+  sha512.run = "e36a09409559a415c14fcd5e5aa8afdf268ac8b099814a1eb6fec88aeaef17ed2bfc1649b1859d8f5d4c90b25af520028c184a01866e9cc25bfd5ad7e945f84a";
+  sha512.doc = "609a298efbf504274793777b78af7db57b3e161ca8a49abb2cf9b095162a93c2eb0b796f24183d512f4ad30375401a56c6e238b1c18e61038b51bdf3513542a2";
+  sha512.source = "abd63e1e75b661b4301e90ec60015073e42f2686f2e639e2c264047c3d6f071c10cb933049baeea3b49734ffa0596253be65644d8ad54253443e8ba42d09d30a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2023-05-01_pre-release_0";
+  version = "2024-06-01_pre-release_0";
 };
 latex-base-dev = {
-  revision = 66516;
+  revision = 68730;
   stripPrefix = 0;
-  sha512.run = "894c02aa5d251588d11d4598bce8a824b443e3f00ea6a894f8df0810c2cf2becc06cfa823cd18a0fc9f508415e852e0e7b5558d7738ae33bffd9592980ffaa95";
-  sha512.doc = "9602fb4c57701bf649796964675a7835de5525b876e9e2dfe76a8db9e09bc5dc239380c1bee4e80a514f02b1a0172d13dd8474c54ecf8b855924b6b65555b0cd";
-  sha512.source = "ab535b52c57dc9bedaacf5b4dc54e31e4338f87f31e855f28a6161407cd381507dd8c1638a4aa850cdf67e5bac746ad77f7b119243e07d06a95da95d4bd31204";
+  sha512.run = "88a5f4610e396128575a96bc20091a0bc66295aab4febe52a46e89e8bc1b4396ab33dda9bb3b94a643645b82c676e6e1fcf37544435ff2852af0417f97f24f52";
+  sha512.doc = "10214331abeb528bc4e594f9141c99c21cde74729652a7d4a3bce71e401493904377bbf49c1778e35461689f0b2eba9e59c9b52ea484c8ac1bf79413963124a1";
+  sha512.source = "c601183a89eb0d5fcacd7f40bcc867d668067228fcdc17ff5dd5dce57623a6ad21c51d0f5be8b5e99003e4eb683ed4cee33a201fee52c88f1f2a4d873d901197";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2023-06-01_pre-release_2";
+  version = "2024-06-01_pre-release_0";
 };
 latex-bin = {
-  revision = 62387;
+  revision = 66186;
   deps = [
     "atbegshi"
     "atveryend"
@@ -24992,12 +25535,12 @@ latex-bin = {
       fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "latex" "dehyph" "hyph-utf8" "latexconfig" ];
     }
   ];
-  sha512.run = "91b6749a7fc520500812c203a1acb0701e7984e5e309eaf0c4815bc7ea0b507f3eeaaae3a6ad715ee53f018b8e38c695c4ff9567f26222cd2c52ba24e1a03c1f";
-  sha512.doc = "30f9001ed8236f01555f8a21ff8286ea409d75583876f8ba795e1a819dea14cb3f2b3dff31e0258cf5deb75ae2fd9201e33260ef1f32c2ce53fb86bfa4e59f83";
+  sha512.run = "4067db41ccc58892a4683c2ce5e15784e9aeebea88a9d9302dffc36fedf48f51c469bb1e99035ebafc58aa0a8a442c12b06457898a71e492ce778e58122a6a62";
+  sha512.doc = "763c7e3df586a275b2a756b591c96ae98ca1a2b5f0c694e9b502d55e7c4a0ad1d40b15ff4987e2be6a06f2f11afe99a4f7fcace22c45877dc54741383a55df25";
   hasManpages = true;
 };
 latex-bin-dev = {
-  revision = 62387;
+  revision = 66186;
   deps = [
     "atbegshi"
     "atveryend"
@@ -25055,8 +25598,8 @@ latex-bin-dev = {
       fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "latex-base-dev" "latex-firstaid-dev" "dehyph" "hyph-utf8" "latexconfig" "pdftex" ];
     }
   ];
-  sha512.run = "dade40731ce41c6a0304cb7472255f2d6c8b1fed45b619282aa747b3ebbdfd707da18947f06c8896d72605b324ffa58c3c7195bd90629531ef1fb54a91f1310c";
-  sha512.doc = "7434698038dd90f10c51743e238cfcf0d85da2067d458f399e557b855c7ae6fd4e013ef4272e710eb9695d3e4f8757acae95c41a9e704a393202aafc11218754";
+  sha512.run = "56988a74dc1969af32a87890a930eae5d1c41cc7d78d84d5293836c139885e1bca3103304d0083583e0a9d9ad1ebd76b11f86df67887de6ebec7b36137755075";
+  sha512.doc = "2166531c752eb0295b643f0e20f518011d2c3063a9a5de5e7e913b2cdf8efcb382a9460ef95a711420e9a9f49fc2ac77a538361c4cdc7d730af5acb43f15f2ab";
   hasManpages = true;
 };
 latex-bin-dev.binfiles = [
@@ -25078,11 +25621,19 @@ latex-brochure = {
   sha512.doc = "f057b86b61ee1f50430cdb83a56c27896e052047bbc93c4f09884b7d76f16f73cb1b570341faa2b8c771c0d42bb4d6450b8715c921fe866a57727eb4ffdd329a";
   license = [ "lppl13c" ];
 };
+latex-context-ppchtex = {
+  revision = 66687;
+  stripPrefix = 0;
+  sha512.run = "6ab0e6d04cbf49cc78ed8f45d65837055d73f55ceea9014e5178bb30f7a322137856d187b7e0808f08df48408b57635537bd8dbbb1157d1508728aa2bf7e1190";
+  sha512.doc = "130b525dbf4172306b9bf6b74defccbaa17ab1871d044ce693ba2c0ebf568adce98eacc6cebae94bca425c7b8cb7bd2860747768a03380018a9abd33175786c9";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+};
 latex-course = {
-  revision = 25505;
+  revision = 68681;
   stripPrefix = 0;
-  sha512.run = "9af9e8a2ff7663ba89538a93e45e27098451be4ccb9380b0deb002a9a42613467184b5a4d38ff8222c7ec5e3c722128222976aade12000c447ff7f8ab42c0656";
-  sha512.doc = "772ecca6e71a9af7c31b9c5fd48cce88a7dd880a98b0885e9e5084247f64049234a8d123fe985e247ae706f1d0da1f58bae9e62082defe1acf9345bc252b03b7";
+  sha512.run = "533e270cadcee8dd7510368c596272d9e877c753f76246f11d8b3db6a3eed96319284c15a872d1fcbdb0557c7a267eae4beb9cd2d618f98759456357fc2b6087";
+  sha512.doc = "56f0cdd7a50b396657d60d3d10586e0472e18f3b66005df08746fd93cd481742bec1f1e820248185f9b25d6b58251dd8a4715231272324a5208e25335ede85e9";
   license = [ "gpl1Only" ];
   version = "2";
 };
@@ -25094,14 +25645,14 @@ latex-doc-ptr = {
   license = [ "publicDomain" ];
 };
 latex-firstaid-dev = {
-  revision = 65181;
+  revision = 68730;
   stripPrefix = 0;
-  sha512.run = "f9305a21c399fac15258a607d12b889ca860eba3673b8b4d91a6470a078f6b23288588dd6d22e9255629060696702d2d22163d6669cede8c83762b286ad22cf8";
-  sha512.doc = "fe6a3cc24a4aebca09d4c20336016847a177b352d9ad402bc675f0bb67231dafd38f6208e003f6ce39bc7bb451e600c5f1457cc3723bb1f4d7bc7aedaa751ed4";
-  sha512.source = "b7a1c866724208e2f702e9e7678876e8607e9063686b2cbb81b5bc97bfc84584207156cbf8c0b0470b5f8c2eb6227d8474c17ca52a582ad6e957ca20c3d18b8d";
+  sha512.run = "837b36861d1c5c42107ebfca9de78df1e4426b2466c001532ff3717743babecb8f574c5b431cc821f27a8cf20e88fa7e6dda5633fa8fac28084007183621ac08";
+  sha512.doc = "2f0676b179ec977da7d91135d2e9330bc37a67eba038754998445c49523d1630c34360bb857c108ab47a185a409d3924039d7b03f3b420d74c52fc98606ff408";
+  sha512.source = "c783d78612a76b55f49828ccd3f719ad94ab3a2a3d8b936e2049322c0c5fa773b8db76bc1a8d471d443bf3bc0d7897df7db628866287b64ee281764ae258f839";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0w";
+  version = "1.1b";
 };
 latex-fonts = {
   revision = 28888;
@@ -25139,36 +25690,36 @@ latex-graphics-companion = {
   license = [ "lppl13c" ];
 };
 latex-graphics-dev = {
-  revision = 64899;
+  revision = 68730;
   stripPrefix = 0;
   deps = [
     "graphics-cfg"
   ];
-  sha512.run = "33e2d6ed2e3076219a0438b8d8461110e7edf3a9b0534455d2fc43837a3766d12bdc8d912414bf88bdbd9b10a54a5b8b2045ff3a3cef42ed7cdc49a2d8664d5a";
-  sha512.doc = "ab0be817107e89a4d87c8e5ce68d20ec06eba0ae37ccf79d2dae1e916fc9ae8e2b1c7f7d9701daeffa5bfb931a881d63cfd188393e075c943d91fccf3eb1753c";
-  sha512.source = "cb5f6a80b7178dfd1074235d5e1c7a3a2830d4c7eb037cf9e5d51a2770ed85140be7648e288cd5d67f64955212b29d8dc37fe359c0b7a27fc065cdecdc198de7";
+  sha512.run = "a6357498f8bb7b6e47dc78f22163955e6f207df84a5270bec98d003ff7c0c31d82a13f3ca8e6d1242721bbeee6d5c8bc4e6bf744708fda9a3e5e9ebe30eaf9bb";
+  sha512.doc = "0edf4d8f6b4d48df6e5f46ea5836a30f7608701a0470fdb713333b4e17c0348bbbde8df2e9dbfafb8bae924eb70c34e351aabe4a0e460821790adfa0ee52e384";
+  sha512.source = "f2d2b4e1c67d5159c14426df49065edd0605a1db88ee0c2d72d582edab070c6f8f11bb517f969893761c0c22935df69e5b9dc6d981e0f6136326277e1e2be927";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2023-05-01_pre-release_0";
+  version = "2024-06-01_pre-release_0";
 };
 latex-lab = {
-  revision = 64892;
+  revision = 68720;
   stripPrefix = 0;
-  sha512.run = "90c94e15ff9131c03891c3671ffe77c3c87fbb2cf28437a4e7e9e2eb366cd74dba85e04fa0ed7d7d25b9ec39d60397a6e6a31b9a5c05e9d8fa1a6a8775a7f4cd";
-  sha512.doc = "efa0da9d1f8744283802966defb8e79d2830a390c13eb310f4b9e67cdb18f1f46c05df0f2ffe5093d2ae1d6a4d3ad869437d4913e121b1d2435c3618aa6833bf";
-  sha512.source = "a1f8b5699ca88f7ca9f0576ce1a1f4b5404cea616361dd2e73cfbce60f09a9d2bbfb365c293adec116a768ca27b36e99b49a0f9a6cd86b817cb1b3b58d308e19";
+  sha512.run = "ede4176b7ca60193acd644f572db5d1611a6940027f7641ca755634401b19e20eca65915d57e6a0859e465e818d6854ca98dc16106782bee0f817d776c056a10";
+  sha512.doc = "eda6ca871645fd6fe60424329e4c4d8d9817039d9cc30bd6f710c30675a3e8f0b7f7523b081b871e9e5abbf62a0ce0e22854aa443684818771ce2022f4887e7e";
+  sha512.source = "acc092bf6cc685cf8c9d5a0cd5af47022c3936ff0e509a3743ae22ab888daffd0c1b7b657c5a1e1019232c4047e89626963ec1784b406ad16d3dd3f10f6e19b7";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
 latex-lab-dev = {
-  revision = 66516;
+  revision = 68730;
   stripPrefix = 0;
-  sha512.run = "1832e440ed5b6d6f1dd2a9e143095b68062593bd15ace928d9dd74f2e0aae90cc285c4313651dafcfa21d4a897cc2784f0eaf1e43d82bed2c6d28ccd863fe609";
-  sha512.doc = "e08b6311af8aded0f6e3f2bd6ab13459057692adf17351166aee16b88490a70e970bf22b981700a0b1952e46c0c8028fb622ba0575fa9d872f5d74f10764d8f6";
-  sha512.source = "551dfbb6613ce4f268948ec7e432bca20d4e4cc2ba5c50f4c10e4c3192d5f9837b26a05268b559b593b6141a41529b014a2d545965dd71adce5fc1cd5f758ee5";
+  sha512.run = "59718166fdb95ce7a0323aa201477775d469f091eb47866b81449bff506e6523cdeef0609f9b0a68ff0150e1f08010f1bc00b447e4f7a30b254ee5db0b7494f5";
+  sha512.doc = "42de975fc56df75072e120baffc5a70f4525d80c82ad1e3de60e23527443d8ecc90b0219b42e1c52abad0318c19b27792f46b83e22cf471e5a49ffec2f8e61b1";
+  sha512.source = "5eee782feb451b2b454d08272df09c94184fc3f7f58564eb11fb7e927f4b9a23d3bc0daca31914f9c96b53ff55642458f35a4851f0373a699abfdb168be93bba";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2023-06-01_pre-release_2";
+  version = "2024-06-01_pre-release_0";
 };
 latex-make = {
   revision = 60874;
@@ -25219,14 +25770,14 @@ latex-refsheet = {
   version = "1.2";
 };
 latex-tools-dev = {
-  revision = 64899;
+  revision = 68730;
   stripPrefix = 0;
-  sha512.run = "04be02d57a30975443b1f56512a066775d4f9531c63f4466e728e6575e7edad0677c5bf7f492c5b9dd2938359b392789845e0df6d4e69d53da465dad7d6783ff";
-  sha512.doc = "f784daabae6e1986c0c79115e7600849af75061a314e3410d7521b1e8ea5920d1e382a15c9b18bb6f7d5a585b40a4a835f59e8a1fa6ad62f5f16a5fb6e037e42";
-  sha512.source = "4f2a940c3cd04762ffac656929c1b01a74feb4a4edbc8387ad2cb673aa2af5e8ce1b3f804c7f46053cc2e38416ee5cd8739e59eb19b8af9796b68651e1f08665";
+  sha512.run = "b7ac20a167585e18b7f249612223508380b04e162f10123e6a1fcde1df07fa72bee42bd46cc4cb20043552f981455a4036357b7c5f4c41b2dfa9cdfb8f4dd5d3";
+  sha512.doc = "2711c79b5ca59c7f399b0645f4b3d4620b3cfec3b76b3f26882d42c50ae9bedb46fc59a9483c067e8a667a4e089be42fe8e87daa708ee19e8ae0e945038f1f23";
+  sha512.source = "adea89208290f95ed0b970027c0eb70b6f7300fd4e171a18f88e6c174e0f184ee880a2cb04f8697b2ac55df45484787289a792578933857fb6d70864c0ae57f9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2023-05-01_pre-release_0";
+  version = "2024-06-01_pre-release_0";
 };
 latex-uni8 = {
   revision = 49729;
@@ -25246,12 +25797,12 @@ latex-veryshortguide = {
   version = "0.7";
 };
 latex-via-exemplos = {
-  revision = 63374;
+  revision = 68627;
   stripPrefix = 0;
-  sha512.run = "e10e8c0ddc02b4c99a382d7839118c454b4b3ecd931a880e2c8d4cd69999349dc2088a221976acc91f78d7ddef9bc1ec92d345eb26a499b46ad676c2401faf5d";
-  sha512.doc = "6065f5e9997d39f38fa3759ad4ed19c42914019b582aeb9aa6baa359eead9ff3ff5c6fcb690702337fe4ed7a4dad87d0b7a04d96e5f54a647efa8829b807b004";
+  sha512.run = "d98f99d1da5b8192cfd824829ec31f09f3178b0682885e5f497203c6f3f73bedc0a4f0a766ccde2f4f8a0e68b231f4d1213b3586fd1093588f3a9312716f072d";
+  sha512.doc = "605dba889bfa1ad23b2990b2f0f40db42947b718cd272d8f61243818d40ad9a552fb61f87ff4e3844e580d3acaaa9842c2484c62c5c5dfb4450755db3fb02758";
   license = [ "gpl2Plus" ];
-  version = "0.5.8";
+  version = "0.5.10";
 };
 latex-web-companion = {
   revision = 29349;
@@ -25311,6 +25862,16 @@ latex2nemeth = {
 latex2nemeth.binfiles = [
   "latex2nemeth"
 ];
+latex2pydata = {
+  revision = 68919;
+  stripPrefix = 0;
+  sha512.run = "7da5e33f287bac42a378bf33073ec6a982dff7000097fdb865844299efeb9e7a1647ae49bd3332b036755dd4da6be34fbb197c8148d2c2af5c60b7580d0420d1";
+  sha512.doc = "8d78f4bfe6ddd1742baaa792842ab9ada5cdf4e1eeb3fb3496780e3a31120406d56be4be7cbbade5815f72cab57b76a5218e3bd86ef4593d1fc75fa2196e7212";
+  sha512.source = "fe7111c44158c400af7d0feda67e2bc8a1cc313ab8bca7c101ed75e57ca1a00fe434232ad4c5b78a19fad388d8a8cfa0af6cd53c7f84b809209d7bf955f8e05c";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1";
+};
 latex4musicians = {
   revision = 49759;
   stripPrefix = 0;
@@ -25320,12 +25881,12 @@ latex4musicians = {
   version = "1.0.1";
 };
 latex4wp = {
-  revision = 35999;
+  revision = 68096;
   stripPrefix = 0;
-  sha512.run = "64ce122ac380c4f2c06d3afe2cf1aa2af2dd6d29fc451ced9df05206c97dc0343e6867d770d9b4e1c0425ea41ef89cb2d0a003d43cddf82ea19a7b33d383b7ca";
-  sha512.doc = "e8f22deb966044c87e7414d828ae3d8bfabfda40bdebb4b26b712692020c785ad8688595cced27ea5993c8b8f34f7fbe0cc86180d2ff8bfcc44cc009fd52e936";
+  sha512.run = "0111de0987679fe40b14a4ad0dfa098fef36acf15e099f932e75121c26bdadc2e493c77b1d5b4208e662f2e5893955cfad639bf018d48aa5e7a7c77e5d009c6c";
+  sha512.doc = "eae8e0b5e4fe28311508b09b4b8b03ac31469e32772427c5d016bf43d48e458fea06f9dcf9ed696e1eaaea7bfd6b0ef4661d8b84c2bdedec44ca35c782079bf9";
   license = [ "fdl13Only" ];
-  version = "1.0.10";
+  version = "1.2";
 };
 latex4wp-it = {
   revision = 36000;
@@ -25396,9 +25957,9 @@ latexcolors = {
   version = "0.1a";
 };
 latexconfig = {
-  revision = 53525;
+  revision = 68923;
   stripPrefix = 0;
-  sha512.run = "2d98dafa5c2b90321ca8600171ba22cc7eff73a23d6d88073c477bcb84de37369ddf682163b7a9dc26ce77fb2b1c174a4f810b66a34b29646ad988a9965d9bb6";
+  sha512.run = "22e233cad5742691da573249b3f9cd4ea0c6ccf4e31a757837d710ca863e0cccd089106e523e40fb541255f3795d963273ccdf70211f19ff3caecb30d7fefcbe";
   hasRunfiles = true;
 };
 latexcourse-rug = {
@@ -25410,14 +25971,14 @@ latexcourse-rug = {
   version = "1.1";
 };
 latexdemo = {
-  revision = 55265;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "c93e3d39dd042ddbb32661b3972d153ea3905726fd0961a4162223fee274cea0c95f0978233c4619e00a043189e9d2f2c285767e33890e30ed118f099ef9a5ae";
-  sha512.doc = "442a42c51eab80a28152a53f62b792108002e912dbb0e9ff6afd41237cdf2e954c57c46b0ddc382c0ff0877ddf9747e22cb7c7ac5fabb79080cdd657a1c1422a";
-  sha512.source = "2bfdb3740b0118a362e890257a4f38271d6ac24a4b8712edb5a646eeb8ee14787d913d7d8a171ab9a849667899cad3b2089a9eec2fc7c21bfa21e91d900c9527";
+  sha512.run = "e8444a7362e06fe225e9033fb4fd69a5dbdae2e6b18ff50b860e327890cedb5ccc92a2aa977d5349346dcbc0da91644729d292e08cd9651e096362df43f1b5fa";
+  sha512.doc = "b704b4f266b2106d6a48dd5fca3af644ffb750c7a183d0ceb31db06c98802faff451d4a224289203174f086c7ac46bb83b5296115fc2bb0241b213ebf631115f";
+  sha512.source = "cd9ccedf50931754ebd4f3a9cdf5df651be802fd31622a7efa945d41e3d2d4325827dc12983f17761caec0458a02d69eabb717c9ee0a80973b4f055d8bc1b7e3";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1";
+  version = "0.2";
 };
 latexdiff = {
   revision = 64980;
@@ -25464,24 +26025,24 @@ latexgit = {
   license = [ "gpl3" ];
 };
 latexindent = {
-  revision = 65940;
-  sha512.run = "67b0909afd4abb1f44a83af8d6b907ea63ea2ea4ffed4f5a92935a0612d255c819338f1accf656a9127f41c6c55f7669262e70c7c81f7b954b60d504308c8167";
-  sha512.doc = "989e20858583d043d6cc050ce05028ec16bd7295fe9b126a2cfe780f20bd361d154cb24056484a70ad719305fff0ff3852e482347cbeb8434f2ee3d4d57be762";
+  revision = 69269;
+  sha512.run = "32b0e8cf8433c6c5df601268b9be7d752322fab5fa120e1ee9b8335ba5ab5d48d874bad26756fba2b9da19ce3ce582824af7a859ec1e7f57a8b2e3ea66c6d631";
+  sha512.doc = "f843748868107e46e97840d2ef8699d3234760cceb467730370484459a254db7c36869ed0eaeda66e95791d7bb20d576ffbea39e72da44036cbed0dc86799742";
   hasRunfiles = true;
   license = [ "gpl3" ];
-  version = "3.20.3";
+  version = "3.23.5";
 };
 latexindent.binfiles = [
   "latexindent"
 ];
 latexmk = {
-  revision = 65485;
-  sha512.run = "c00227344e815dd558173662022045e2d6d2bf626235aa2b12e637da5ecfe069b4bf74d243eda7d33d0fb9d7c98e67fc33b2a6735d87bae17f22f5e81b1f2710";
-  sha512.doc = "4daa3f455c7396aaff4c7ad0322787621fb91f247cf8da95dd65aebc4d09f114ef226b65c701807b6f4d66777026be2d65ff10745d96832658139f33b315069b";
+  revision = 69373;
+  sha512.run = "04cb04d6d286f317c7a9e3a7b2c38e1cb9b89e9570d59082173dda7eed8283f49166691113409c5197d5d8da7f319dde9248a445dbefdde97cb1b940a3dbfb9a";
+  sha512.doc = "0d57a68fdea7492a0776e7efaa4269ef45050a52ab40a596381e8d73ff978d9e25459675fe3aac6efba536197f7682a86eb8435c1250957f40a0ac8ac3e9b007";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "gpl2" ];
-  version = "4.79";
+  version = "4.82a";
 };
 latexmk.binfiles = [
   "latexmk"
@@ -25496,9 +26057,9 @@ latexmp = {
   version = "1.2.1";
 };
 latexpand = {
-  revision = 66229;
-  sha512.run = "60b6e87b06229abb8e88f4a94a99146b20b2613ddcf74d81d7991fb7fa30f15ae0011d66b191c77d329cf28ded682be9542e37bedf7771f47a884685dc1238a3";
-  sha512.doc = "1f028cec23d8dbdeb098b7025c38159da5a883fd03712a7ebb85bf794744442cacfcf6452bb171a47aeb2fce82f5e4b5837d99413ee515e565b37440338f3747";
+  revision = 66226;
+  sha512.run = "e5b63c9aa31f3b5885b1a61503998ce949021b448199538ac385d3fe687156ce6669cd3610a7c3387592d968b0707f7122f35fd50402616470e34bb49f341bf4";
+  sha512.doc = "c06bbb57bc006aebb644fc4a8edc1f89e10617c67bb77193bd2f4dc3eb7b04b55fb1f239d7d6979f9b385134f3b1e584d9f10521efe704292b7e64865f78d156";
   hasRunfiles = true;
   license = [ "bsd3" ];
   version = "1.7.2";
@@ -25646,13 +26207,13 @@ leaflet = {
   version = "2.1a";
 };
 lebhart = {
-  revision = 65475;
+  revision = 68376;
   stripPrefix = 0;
   deps = [
     "colorist"
   ];
-  sha512.run = "9633bac627299b169929f63a2ce5f4e2595bbf58afbc3b6a4bf4bc2ee605242caa8825f0a22ed91b26ba38cd3ba76da527282bc0a8c30a2ffb41bf2ba10589d6";
-  sha512.doc = "5d99e3c77bc95606cc92443d68e119cca9cc6fddd5c0c6bafaa3bf6bb7a647fdadca3ce363847804fef6da247344ca8037f28227dcaa7cccd45368018eeff09e";
+  sha512.run = "6537a527caa6b82b1cdcec7150d90cbd7bab93adf1b9ab96f59c4772118d17d21c969ccff449c67905a2ffabf616ac1783c62ffe25208d52779544e84c5352c8";
+  sha512.doc = "eec7a0d7e647797829023fb6d0fc55e8d35ff986a0e614b4522deaf632799053b3580e8888bb77974205f9e566cc14f04d8b60af3238c5ef65f59e0599d079a4";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -25731,14 +26292,14 @@ lengthconvert = {
   version = "1.0a";
 };
 letgut = {
-  revision = 65548;
+  revision = 67192;
   stripPrefix = 0;
-  sha512.run = "848b1c2df001f47239ddb87286baaad56e81b9069d9496bcb6ab7cbedf362f2bfe04dfbc313db4b7bcf4d4b9095a5dc591a0455bba7d815a4b8d58b7308d4277";
-  sha512.doc = "c5ee6f66c2fbc13c85a239f74713b2e9aa7bb0b0d7bfc7c65f118ff5f5dc3561dfe4c1907f1e51bca11eb747491af8639559e1cb0dcf49730371a746813843c1";
-  sha512.source = "a64b94d669315e968fdcdcd43a71d0c3f85767d2c83d121a3997c113f114a867ebc5cc5bbb406234b5d63c21c294030cd48491a3199c1a992cb0ad2cbea17dd3";
+  sha512.run = "0dcc57dd2e77f28a2df931e99186dc3ba4327073b222f8948632051f4e6d45383c8ef6de64443dc9855e6c9ec49f72fc0594a236445bdd135c50ec3aadee20ea";
+  sha512.doc = "e7fe29f8a7027e84cff04c0a70f077044ec07cad59873e33e6407a88f793c35fbd767a2a3aa43103a8bbca8d851ab9ba07576e8f318902fc0dda411540a312a3";
+  sha512.source = "c0d9c7145d89796d95cab9049a34efb634c0963867cbd60aad85e2f7df2b1f7ad356389c362dff239dd6ef8c7297ca5a232ab5364a4eac0c75aa8c6b92744d32";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.9.6";
+  version = "0.9.7";
 };
 letltxmacro = {
   revision = 53022;
@@ -25776,14 +26337,14 @@ lettre = {
   version = "3.002";
 };
 lettrine = {
-  revision = 64511;
+  revision = 67923;
   stripPrefix = 0;
-  sha512.run = "a0e2e8b47998ea8cb75f42a8b5b91ac9d44130846e772b6d345e857b2fbf132185047de7886ab772c57a791865887b173287d387b5ff7f5e515ea5c37813c16d";
-  sha512.doc = "4b1a85198e653f366dfcee1caecb80d620584dfb5cd19f7b4fe98e8c3a0b07cb1bcea8762fb37e7e4eeb32bdfe658a348d9f30c602d6491afec77a7c9ff12ad3";
-  sha512.source = "dda2d295fcf87d46c794f84ac1b1c03c95ee5f324d951a6179b7cdb8af5c1c54d676bbc8ed0ef9dbad0ec8ccc45953094f1a0522935d6e671ec4e2e4f28f0eae";
+  sha512.run = "a87d35b6e4259d6177b30b1e8b99fa03ee76e4bf7c2ab281dd5064ca663b60f0932b66bd388fba64f1bb394e295692dcf43b570cf716c1f14265494dd70a6298";
+  sha512.doc = "af6034d748fac6e88c6494b17382435fa865fadd833fb87cf84f2ba4983d0b5e466e9dcbdefae165f521303edfb2f2dd9602a661cf79c74684b046a50dee4506";
+  sha512.source = "932416c613f72b7c979393749d89c5ed57541eae31829b221707d10cf2f14c2b7d44824dc34d13bd15211a58a72a44a7e6b1d3550977508e7b89180226f91e75";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.30";
+  version = "2.52";
 };
 levy = {
   revision = 21750;
@@ -25888,7 +26449,7 @@ lhelp = {
   version = "2.0";
 };
 libertine = {
-  revision = 64359;
+  revision = 68981;
   stripPrefix = 0;
   deps = [
     "fontaxes"
@@ -25896,8 +26457,8 @@ libertine = {
     "mweights"
     "xkeyval"
   ];
-  sha512.run = "7b95b6612f5b46298cddf459184f11752a4b050110bd1d0271e43e364aa5da58c9e27d3b72119b76e863a19ab0987ea408d749ecf18ff40da1ab8a585e31c7cf";
-  sha512.doc = "c33beec53a939a5b9f672e0c5a7aea7a3b3047e4f1f1e68b7d4d64cd03a7f73da2bbce2a4c56199f71519d4c364a3e0ccddf8f93f24dc9eb1fd3896fd035ec77";
+  sha512.run = "5c1dfc8bac01acd0e6e0d3412c08ee8672f01ebe1c7e22f36f313541139bea13d8967e53f5959a04b31d08c0ba88334b30c3e909eef310567b07ead39edafd3f";
+  sha512.doc = "54963a7cf440750aba83feb1a55d1de26ea6995716049d22d3f0ff742364db4c4ddc366d2937d022a3a8ed9951a114367a6ae1bef74c0a655b47007d38c2422f";
   hasRunfiles = true;
   license = [ "gpl1Only" "ofl" "lppl13c" ];
   version = "5.3.0";
@@ -25930,30 +26491,30 @@ libertinus-fonts = {
   version = "7.040";
 };
 libertinus-otf = {
-  revision = 60023;
+  revision = 68333;
   stripPrefix = 0;
-  sha512.run = "1aee669aaa55ff11c2de760f65597542736b64a4ae52b8d73aa967c92a178ae7013ce06e701d9a3bf3de0e5987abec4d29401480dd4bb845a64c0047ddf66c84";
-  sha512.doc = "6c21d100b5ef1bbb8e892c0a0da0cabfe11404b7e1e4606ec04b25bd0a0d22547b1e80f1398573f62a34b4e951cda01466d0d8828cd10e78e8ed008aafecb416";
+  sha512.run = "74e8f653e1bfd28b11932b0a5e524e823dbc1759566a3a6fd3d74b854f40df7a78b5dd3845e2b8e217fe9608cdb116d1216a3139e21d4498bccf62b8d8e42742";
+  sha512.doc = "e708bc00e33f6cbdb1b21b1f62e968896f373301b8a3662fa32016c30bf913831d14258b9e1ceef3da39fc468dfabe0f9e4ff6f8b0e4357fe15bcd80c7e859bc";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.29";
+  version = "0.32";
 };
 libertinus-type1 = {
-  revision = 64958;
+  revision = 67450;
   stripPrefix = 0;
-  sha512.run = "7133d2b3572861d7d3ab20063aa7330aec926ab1586d6616bef18cb8078ed66cdafd205993c20b459421f5b5ac8ac7e4e059beb5216b028564154ce3b3acf00a";
-  sha512.doc = "c01f69729235bdda491ef66f1bcbf5fe39a1edebe0c817ec35ae9aa4f393338b24cfee27823b90fbc1994a32b5e7ddb5a097a9fbfb35b3412346a84028c908c7";
+  sha512.run = "6c84de57b1778ec35d9f56b00e577f9f8c1293132cedba43e657f4425e9bf01ab4243fe6ffb872aeb99b446019539a640d29c88cf29cc86d649d2a00f77952f7";
+  sha512.doc = "c656af53b98735bec8c63c3e56160da943379f4b908f553a27cd1c82111b201eb15c1f1eb1b6ff89fee281c27ea36d6fffc5592b75722cd561c8770ef2d3f6a6";
   hasRunfiles = true;
   license = [ "gpl2" "ofl" "lppl13c" ];
 };
 libertinust1math = {
-  revision = 61751;
+  revision = 69062;
   stripPrefix = 0;
-  sha512.run = "444d23e7bff1a6c1b3c368730a589a033c211f9fafb1032b3852e55ade7cde260f1662ab7266291136919558d9c2995986655f0302c38a677afd4dd2f74d5376";
-  sha512.doc = "d3bbc0ef7e507affc60a6a76c4f33e42b42f5b9742098b5e967d6581f79d9fd68231cb7f67ff97b7d5cd8a47a023885306439125419375537412024d5bbd9f88";
+  sha512.run = "9a44af1c4f96453aa69c83658c9474838efcf1020c9301d12577a403371d2b3127fefb57baa0bd5fa5ef737e842abd4f9c368761ee38f6285aeb5a2dd88ad1af";
+  sha512.doc = "14c87d5e0d19d818152bf1a5dd7533eb651d5b477f3e42d42277fc4040a263114fc2006000af25884c7dfc64de0936d950fcacdf7fc55e4d09c2d756400c34f3";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
-  version = "2.0.2";
+  version = "2.0.3";
 };
 libgreek = {
   revision = 65004;
@@ -26035,9 +26596,9 @@ liftarm = {
   version = "2.0";
 };
 light-latex-make = {
-  revision = 66474;
-  sha512.run = "e069afa8933cf7389014409342159462d2f04fed07cb9857bbaa828ae7752e89a2c21bf9814cee4d0a7763045986761f41cd92fd0bdf1b697815a37212832a16";
-  sha512.doc = "53b2edb93b66c7addbbb4c8bb98ad7a9da4ca38ad33ccd8d5df38281bcb86ab6ea16aeb3babc3d0d18f8e355d5c678caf82f7bf3eaebd927a669e04274e4d5ab";
+  revision = 66473;
+  sha512.run = "1ede05b31d3b7acdd0f38b19e83b4258f05ddb184343dd36a46f142adca9f4081631d687411a1370be880dba5e3c6ad3f1c21108232e8b8f4fd03fdc1f3ad60e";
+  sha512.doc = "f5bb10465cf3dd983f59b101f6c631e202ce655282319c773cd0d83c0a9a8a3b9cee7790ef1f803b0c68215b553a2668d861a51dd9ec35b2dfe4b07ef0cf3a08";
   hasManpages = true;
   hasRunfiles = true;
   scriptExts = [
@@ -26050,13 +26611,13 @@ light-latex-make.binfiles = [
   "llmk"
 ];
 ligtype = {
-  revision = 63577;
+  revision = 67601;
   stripPrefix = 0;
-  sha512.run = "d28a77d7cdf47f3def3218507d384168766a2a497326560cda325303dad8dce90a5d823486fe0cbad8d254890332a30470349a113a955acf97d1cd780ecffff4";
-  sha512.doc = "96c466142a9cb4c983650404ff8c803c4e8218862607ab2da95f3dd2bee2fb42dcb6a5dcf4c0f69924296ad468f3b2d0ac2ea7d7b3779721e3fc95ac4fb0317f";
+  sha512.run = "f75a730290acd024eff3ebad6965fbea0e3388c98e0b6f325183758a7771de4b165810e7cfe05c43b12fb0cfcf71c51665c082bab82e44772ad0e0fb4b21c0ba";
+  sha512.doc = "dee12f5e8abdff666582edde442085e8c937b39fcc5ad37759f0cfb683cdeafb63afce7a051573db307d2c416eca46bd9bf626f0cc3cd44bc6e1379c428d2e09";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1b";
+  version = "0.3";
 };
 lilyglyphs = {
   revision = 56473;
@@ -26105,13 +26666,13 @@ lineara = {
   license = [ "lppl13c" ];
 };
 linebreaker = {
-  revision = 66465;
+  revision = 66639;
   stripPrefix = 0;
-  sha512.run = "013d648a48d9e970ac1514c8c3443be99d55ea252bbd817955bdbd800a4e9cb92cd44d8b8ece0564c43c9f20b0f7766d06f16f6a30ca6516c6efc89be0df4767";
-  sha512.doc = "c839ddc727b1397c6cc07171a01c6877f6a5da526095149239abd314317178ebd8d4ff9f35a7418177d80338bcc149800b1e68d2e552763a0f0781d67dd91733";
+  sha512.run = "282c1687acd1843f43d281804ef4860967c069b38c415cb015c0694ddc9d78e03a5f3456a8331d3aec341d856474fe95a2f4fd92b786c2834d65cfaaf4b9198b";
+  sha512.doc = "d39b7d5ec0712e3e26ef76f9e1177f6de5413dce21b143e791d79c8980be640c785448fdc8fffe48fa5ebdd9d2d594518b73e8db21cb16cb99a8d9377ce8f9ba";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1b";
+  version = "0.1c";
 };
 linegoal = {
   revision = 21523;
@@ -26124,13 +26685,13 @@ linegoal = {
   version = "2.9";
 };
 lineno = {
-  revision = 65586;
+  revision = 67171;
   stripPrefix = 0;
-  sha512.run = "c1a1ed8480634176c2b375550ddac8d50581d3d3bbd93c98ac9ede07b6289937462d99d35b59cad9bd11f64f14fbefd10043027443c7a8d8e65d370e9bd44dbc";
-  sha512.doc = "9bd671d949d10e3b5170ac3b2afaa9cd42639ccbe152e34a1717d881a200da290c63a7edf7832f88cbd53be700fb7e668582002e1da9f0bf934cfd5991887629";
+  sha512.run = "7171da9917c0218a0c55c43126ecfe07b9e55e9633b673c89ae18f08897bb1634cc8412cc3051ebf6640afc228e246f1e5549ddea45261a6ddee01d158f3b9e6";
+  sha512.doc = "ab4aacda9d0f4a9a2aefdf37b23067ad27eaf40500fd92f7a4c619f9c012a40ac0c69fae32c425d6c12d2b89e6d6c2ad9585fd75b2af8447c9f7d333473add73";
   hasRunfiles = true;
   license = [ "lppl13a" ];
-  version = "5.1";
+  version = "5.3";
 };
 ling-macros = {
   revision = 42268;
@@ -26216,11 +26777,11 @@ listing = {
   version = "1.2";
 };
 listings = {
-  revision = 66233;
+  revision = 68476;
   stripPrefix = 0;
-  sha512.run = "47e219c8499ce2928125319d53e996ff51bc3c7ff2356f631fcaca5e3329914309b929aeb11cf222a9024b82a9348f187f4a8119c7d8c5688d85b147dc4ce2ce";
-  sha512.doc = "1b0fde220877fe45313ea5083d986223006226a63a23c2463643eb7f5b66b8df6f66d8fc54d4990eb7fcf87babddc62af7bd21ea3d57e73cdf171742c127ae8c";
-  sha512.source = "0bd38d23ecb65ced94f18360c96323916b86ce9b503fe547dc7b490dbd37379bb1744b2f1b56288cd39a1513fdc264d7bdd33862e1a29be747b825e7fd77d7df";
+  sha512.run = "7bea53ea00e877b33586378c32236f2269f6dad6169101f7164293617bf9d5ca43745e2a549a993a899b4ddc45254b3b032e112576c57b7ea7653a2e743fdb4b";
+  sha512.doc = "d62e73a7df88b7e07c53367e07a6867e26145ad1f4fbed0f8cd0836c10e234695c9b3d97eadd9700547e33f3ecd793367be7dd97ca4d46bb0cdfbd07490c61f4";
+  sha512.source = "1a89476029706617cfab1319a65e6e8353455ac63fef8155e2e347c34c2b60ca6f2b264113a2c4ced52c0872a66efe8d4f53b67274d7a94f2a1b51de7cf198f4";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.9";
@@ -26248,14 +26809,14 @@ listingsutf8 = {
   version = "1.5";
 };
 listlbls = {
-  revision = 34893;
+  revision = 67215;
   stripPrefix = 0;
-  sha512.run = "b5c2e7e168b07aa288c911dbf5c1fa8b56d2a73d38babf0140b77bbf783334f2da42b2bfa8d951e166f7184345cea26a908d12ff4a07ef89b85a7d7772d645e1";
-  sha512.doc = "225837c7a5c80b5a01739c20011f4b4c76b0cdeaf26e3f8f44fcafee3e439a104c6eb1a47660a788b96a3cd63f3e19d1384ecada059380773850c7a4109d3269";
-  sha512.source = "3b35fa88f640d4f2a13f0cc888a7ab7bb09052ab080454d398f0edc27caa11728152e24bf5184d54aeb1bc86e599aa8a4bbfff6a6efd790e11277f99da2f27e6";
+  sha512.run = "bb0391bd671c306bb34abc336f74e203141fb0b2ae131dc36820e24716ddb5b7a1bfe9650baa5ba4cb4078e6f9d097a9a464aba1022b36f76c3257e25e583979";
+  sha512.doc = "773bb3996ee16ca65ef8a91e42e6d1641d42ae50de7fbe4b8324ad9e70d326d0fbca85e245d48bfea137a65f33ffc6e81add6208d239992012ac1851ca12d4a8";
+  sha512.source = "441fa4a8ac0e618a997078368794800f57e25545134533b81121718bcec912c1c367b193bf7cb3756102ffad4f75497e63c9cef611319aa478fee955c9cea780";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.03";
+  version = "1.04";
 };
 listliketab = {
   revision = 15878;
@@ -26267,10 +26828,10 @@ listliketab = {
   license = [ "lppl13c" ];
 };
 listofitems = {
-  revision = 51923;
+  revision = 66655;
   stripPrefix = 0;
-  sha512.run = "9cdbbac3442d2b6cf45659a77dbbf7c1db2252af3c656d277f8c9c1f8cfd98879efb7e6a9957481cd6e892d8f3df1c8ef46c7992b45c6c461dfe936018600917";
-  sha512.doc = "e7c3df40b9657dab386eaf54f08018e3d390a1de96a47c5c4f63759c11aa38b243301287940131297ad107e4a63fddad5bd9ca5982b211febda7bf5a6a8d40de";
+  sha512.run = "f108d1a5c1330afae1c6a3cfa12fb3d345bcde5617245a9ca736ddac9427b4375f926d11f706d91d87f8b5b55f6f0257922e2068712e969c55b6e5b7436043b9";
+  sha512.doc = "b9264957510f892b5aeacd299df184e93881083e3256754c2f89c4f76adad5abf9f23ba4e56b013ea7e98158f8437797a6ce9d5287e5b76199aa4bc0b8cca188";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.63";
@@ -26285,11 +26846,29 @@ listofsymbols = {
   license = [ "lppl13c" ];
   version = "0.2";
 };
+litesolution = {
+  revision = 69115;
+  stripPrefix = 0;
+  sha512.run = "5a1ed66916daa7babfd009615584bd6065895848283f46d8f95d2fad69bffd6bfd59c8acb991ef7357100a63e7798c44aca3725ce0e89650adac13ea9e21428d";
+  sha512.doc = "aa750b1a4fd7040b946275239d5ce49848ea031188c1703161de300dddd6f502c31ee7f7a4655b26253b76054e6b487ddd56a9157684010d3b006900e94d6374";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.2a";
+};
+litetable = {
+  revision = 68782;
+  stripPrefix = 0;
+  sha512.run = "2cd3dc7c4025bd9fc36ae8c47d54ff8db1d237c754234ecc13ccbe8d6456c7035a2e99961ad161be4c9da3fe2aa03f9e0e714ea2174c64d2e152af1e036df055";
+  sha512.doc = "249729d269cd9d9cead6ec7bef4731549d18cb3b01bd60197bf0d7374042d70e73767d3273bd149fd0e96534494be9ace640586375797f4b907b67d76019e11d";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "2.1a";
+};
 lithuanian = {
-  revision = 66465;
+  revision = 66461;
   stripPrefix = 0;
-  sha512.run = "86fd543339a902b21d2ec045aa3c0844aca91c14223b03b5cbfe7d612f40dafdd275941ffcfd37d77df5e83abeb36af0a64f6f78de4c3b3fb21129d76a9230ee";
-  sha512.doc = "d26f2732a5da9c320ce359de1b9263969b4ba8b2fa155e01014d12348b916c16e38e6ac0a94ade037a6756e07c0cd03b17686d7073b4dfcac1e9befeac43c1b2";
+  sha512.run = "c2cd1b54daf74e78e6087159fa827ece77f2dc835eda81e03fce861581e812536292f3f0b70b8bb77107c0a4032d12006e870303156a3f3c7cb653020ed9b97c";
+  sha512.doc = "ae7a5e3bea2bd62a0cdbbfbde7e0d9e06554fa4b3bb825b45febed42556fa101fd2e6c611ad9fc1cc87ed5c92540977780fde47ae78a89dd37b70f89c94b5e8d";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -26313,13 +26892,13 @@ lkproof = {
   version = "3.1";
 };
 llncs = {
-  revision = 64299;
+  revision = 68731;
   stripPrefix = 0;
-  sha512.run = "76371faeebdde62b5444dadd7c08b5fd6fcfbc9fb57dfb5a29ad63760bcd692115e206458adfd13e2f16ac24713e128e7905194ecca369568b662c78aa6cea48";
-  sha512.doc = "63b67674403e67e7f019fdfa09f3859bd1a6da5cdb93bf68321a441c9fda1db026ff64e0a3a15dad1f7b27b4fe8f7f4a086eccff88a282133d825dcdd6d11d25";
+  sha512.run = "11a2d47630302815578f0ced6483e1bc680bbc7030f17239d5c896de64ebe67a55626a73a88ed2044b7e2c2414ba8cb6ecdb2fe921493817acaef52634ec90cf";
+  sha512.doc = "a73bba73deb5af86726323f9065bcd31406e3091d5a1fcf77b5ef0ee7a7843a6df729fe31f7642e30ba9a9e9acd2782491607ec3d7d67679507f4b124a9a888b";
   hasRunfiles = true;
   license = [ "cc-by-40" ];
-  version = "2.22";
+  version = "2.23";
 };
 llncsconf = {
   revision = 63136;
@@ -26331,19 +26910,19 @@ llncsconf = {
   version = "1.2.0";
 };
 lm = {
-  revision = 61719;
+  revision = 67718;
   stripPrefix = 0;
-  sha512.run = "07448def04c2dc6805d7077b7a65b4e353c99d22d802c56ef7e147ce6a209e9b2303752b5d56763ccd44b9cccf700207e48c246b141e63deb4d1895347d6d307";
-  sha512.doc = "d628f4ad7288eb378df86b4593738c0f755ec6a08a762b38d7fda95b2cee163acd81fdebec7bba693380bcf3d2b2510281f349fa17ac3da1fbe9ec40106a728e";
+  sha512.run = "9e05642ab07ebe05c13d5fa98f3212527aa66a9d049f8eade506cbd9f0652315363a01ae20a9df873055e5283bba7574d51251c7dd86e56ebc37055b92379421";
+  sha512.doc = "d15569c1f55553b068b8d3a73efdbdb74137d02fdda5db5d57f29203dcd92dea7746b73a3f30293b2932f046e60697ea015b83d2587cde2783300fa41967c5b0";
   hasRunfiles = true;
   license = [ "gfl" ];
   version = "2.005";
 };
 lm-math = {
-  revision = 36915;
+  revision = 67718;
   stripPrefix = 0;
-  sha512.run = "f2424f917e13aa9805f6738ceed376d6063713dd4c58a5953b5456da4ba81eaba3f0f97963ecf36ead4f68b1311c4c9e30f064002ab8bbf0f5ed3a67db3ead4a";
-  sha512.doc = "262a99ab29fd22976334eabaed77d3326e87b63014d9e640ef8ea31b14382b273a6435f3059aa235c50f9f829ec28adf754763e17a945265495e9a54e7ee53fa";
+  sha512.run = "2fad475b347824d564525de51ed5bd1cc7ab2fc27fd826a00e86ebabd7d85afce2f7a4c85d9620c9b66d14ea0c813a269a13843a0b27eb7d0ca3e294114aad26";
+  sha512.doc = "fb1800349628229dd522d4dffa182ffd2bc9411803f5b349c88f4046d81117d050a3b681e3021a514a6ada5bc49b648b8dda8b553f9294f6d4fc317db0cd5990";
   hasRunfiles = true;
   license = [ "gfl" ];
   version = "1.959";
@@ -26359,14 +26938,14 @@ lmake = {
   version = "1.0";
 };
 lni = {
-  revision = 58061;
+  revision = 69361;
   stripPrefix = 0;
-  sha512.run = "5b9de3838172a042473eb03ccc26cfa701c027c33db9c943d4efaa00b22854c67b17e43d20ae8fcb2960444e817c05860a67aea50ed7047cd7a4f90b059f59c3";
-  sha512.doc = "87ad80c4a70772177ddc7cfe9b90c0fcfe3d7bdfd583cde52837b8fcfc85aa1fd21fa11ea562fa7169adc7ae954185696c4fa8bf655916e149f57a95bae4627e";
-  sha512.source = "be7bf7271556755196f8921c0d261f308dfc20e0df81261015c4001c53b537948d1328ee33a856c13e22dce7ac6056904f2b2989073f95ea5d61d226ac7977f0";
+  sha512.run = "5b091deac5f045af63d4351abfe70e28343ee46fa9e9c62d2cec409b0453b1c391a07abb743be24c8d01f8e5063964574ee684beb7b91126da55fc8e0663a831";
+  sha512.doc = "da89225db988132af56a8f6be0330e5ea761d1a8da1237c966c3b30f91c776e7e2c118e8aacc843c23f58d3f514c5e0cc6c2d06a689c886be90f8d309215095a";
+  sha512.source = "e02d92d0878fe98ce533ad9fcf058325c7d82f9548cc3211d34ba0d9d83e515c41cc77f588455d589b50ebc41358ecafe0c84e501ac60a402f8d548a1fe87671";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.7";
+  version = "1.8.1";
 };
 lobster2 = {
   revision = 64442;
@@ -26440,6 +27019,15 @@ logix = {
   license = [ "ofl" "lppl13c" ];
   version = "1.13";
 };
+logoetalab = {
+  revision = 68916;
+  stripPrefix = 0;
+  sha512.run = "1b3f01a1acc23b17e30185b3bf2b4e965d047bffc7d87649a40e52e4fc9de36518e82335055c66f221cf10b7c6a1cfdf9f51641f5ea945aa0f7d7efd76780fac";
+  sha512.doc = "93e17e5c624aa8a6f826294fc33de8a66731020696525821f4e14a5bfe0f3033cb6ae21abef41d408e627a6ca8d6e12ddfc7aa30d02152e6aadef3fb88fe92ce";
+  hasRunfiles = true;
+  license = [ "lppl13c" "cc-by-20" ];
+  version = "0.1.1";
+};
 logpap = {
   revision = 15878;
   stripPrefix = 0;
@@ -26463,10 +27051,11 @@ logreq = {
   version = "1.0";
 };
 lollipop = {
-  revision = 45678;
+  revision = 67930;
   deps = [
     "cm"
     "hyphen-base"
+    "tex"
   ];
   formats = [
     {
@@ -26476,8 +27065,8 @@ lollipop = {
       fmttriggers = [ "cm" "hyphen-base" ];
     }
   ];
-  sha512.run = "81557b83acfa4ad42dfa6fb1a65ea42bc33885da444ee23bc3c67a899df7b3ac2c19a1607305b5ec10b503980365c5d29ac3598339fc186a05417ea5bca60a78";
-  sha512.doc = "206dee2be733e3ac04b5b259862b60fb3641fc44ea182da601ca54a010ff8e42f254dd01c03be7bcdd2a6258110c567a596ee82b4eb74d04ca8ed70e50cd6a86";
+  sha512.run = "8449ee38e28bca1974e9a144f7ae1ade40cf4ddb9da2cf35779712202c372a29d2c1bf394122452e217c08cba8d89cd76ee4e019a0b356fd9274069f8a63d8ed";
+  sha512.doc = "d8f9791b32ace40f0e936733cc5bc9d5954e7f0b013c0eb81e1b212a00635e674639dc4ce70858dffc1d8b0a15e6fb7ddfc7460f9196a832918252060e43db3f";
   hasRunfiles = true;
   license = [ "gpl3" ];
   version = "1.07";
@@ -26486,13 +27075,13 @@ lollipop.binfiles = [
   "lollipop"
 ];
 longdivision = {
-  revision = 59979;
+  revision = 68609;
   stripPrefix = 0;
-  sha512.run = "d489df0f5ad27cd8755d8387ac4b5ec0f0091e9d27611a7f4810e145dbafdd95cc4c14f6cbdd9843e1e4251fb0d31cd3332657c50d1fac4d17eeed1183aa8aa5";
-  sha512.doc = "dd45e2dd888c7bafe5311cb8a541c0eb7c31661da9d69223f69852b022092501f936d9823395c5b7fc7f914233ad4cea32b2803730f976e687bc7a9bc7c74069";
+  sha512.run = "2f1f1e6a6b93266a1c6e1c3fbc33e4f9719b6ed06390d2e277e811f429f0b71c3e3133e2e406b837c109672b725bab29534a8e9c9b380128cba6901d5082c53b";
+  sha512.doc = "8314b4fd0802dc541d640a706b0bdc3b10f909365372ad9432c49e533f95103643c1171038b7f346b9f92688d27338e81fd5c803070d99f10a61adf690ee6389";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.2.1";
+  version = "1.2.2";
 };
 longfbox = {
   revision = 39028;
@@ -26604,12 +27193,12 @@ lshort-bulgarian = {
   license = [ "publicDomain" ];
 };
 lshort-chinese = {
-  revision = 61100;
+  revision = 67025;
   stripPrefix = 0;
-  sha512.run = "5e87a1c613e57157c77a9401cda424ba0544b1cfd1611e0f763b837ebd172947365a04f8734b2e7d41f84df9ca28500034b3b8f96dbc4d2f8bee59c1f0813938";
-  sha512.doc = "ea00f428f8e93067a876de16cc7f8fe09f46398a209f4ec7664f83f605e674558703f05cb4ebb655a29affb3af26615731a284894d37778a5f7fad531fe2bad1";
+  sha512.run = "6d6ac34f79c3d5447c1bbd7f2c87071a92867bd770fd023bc4d6fb48500d27f1b1a8706a727b0d0a7b47eaa9a639c6b5a691b7d21a5e178eb79131cb4bd75b6c";
+  sha512.doc = "c220f086c2e0c9bd52ba3ee1eddd2afcb0aaed1c4fc4b9ebf854ce57b4720df7ab3c5475f3164cf740b3020c14c5682e1798e43c8ad9e39eba596a24b04644d3";
   license = [ "fdl13Only" ];
-  version = "6.03";
+  version = "6.04";
 };
 lshort-czech = {
   revision = 55643;
@@ -26735,10 +27324,10 @@ lshort-slovak = {
   license = [ "lppl13c" ];
 };
 lshort-slovenian = {
-  revision = 55643;
+  revision = 68204;
   stripPrefix = 0;
-  sha512.run = "689ca4286149002f840e2ae82d7d9c8eaadb3471db16d935ef82c37e25560200ecd2fb95bb6fba61a1deb1fe481549073893df59cdd37ff9aab3c55679028492";
-  sha512.doc = "13cafc10d15f89945f020743c10d2bc44b226cfc9c7217be32b8c2affed12602cf024295c75a929478beb3fe763eacdcd47bf80615826472b85cb4db7454ee8f";
+  sha512.run = "b053e42404063ed3275363c361ec85de69dd92281070f0c88afc860cf2ac07b3fef1a98598ceff52308e36c9f2b5e6c406df591481533b80fb0258ae20f32ca4";
+  sha512.doc = "851951cd5822f257ecd23d73901d833ba6067d3860002a4dd4449f23d5e7a50fa97ed579f5cbab8bc9494801055ef8f23f6f3249d9f6843a28f7da1b4f15409b";
   license = [ "gpl1Only" ];
   version = "4.20";
 };
@@ -26830,14 +27419,14 @@ lt3luabridge = {
   version = "2.0.2";
 };
 lt3rawobjects = {
-  revision = 65230;
+  revision = 66619;
   stripPrefix = 0;
-  sha512.run = "633da20bc0242a755041721c3e1672160cf41d924ff33ddb511debeb5c1961c0a83a07d2c7571305a7aeab4f623ff2047c8d0587a2f1b94ee2c7820d2c3116c9";
-  sha512.doc = "f84e47dae753654366955666f855087ed43d2efbf9b159dadb581c84eadac1f21422c593bf1fb428f47f176fc248c0e75f86d72c998253a7ffd14713536115dd";
-  sha512.source = "1412f86829fa26064343fb4c8ece1b29033c16db564621f2fef854077b00dd590873ffeeb002f419dfee7a815de8b63a39c256a2f9822b80b1f013dc29454ced";
+  sha512.run = "05b70d22b56925542bd3f2ce832b1ed71759cf41f8ccce3d892c5bc6e17fb8ebfe8843a82d0aab6b6e88f38e84819b25bd18344683d182fdcfebcf81a47d27fd";
+  sha512.doc = "3aacb576ebf0233692b81daa231ae8a93b392d07a261011e41dd4eac34e295f288f9fe7ca1abc208534393bec1e290362b32ce0906d4c97fe56a598c49e6f135";
+  sha512.source = "2e09660f1a59fce87af33d5fd80a59a83ba856233db4032bec88ba8b6f5a8a6306de7416289c51043f8a947dc2481ed90cfecae095425144b865d7a1095cde92";
   hasRunfiles = true;
   license = [ "gpl3Plus" ];
-  version = "2.2";
+  version = "2.3";
 };
 ltablex = {
   revision = 34923;
@@ -26868,14 +27457,14 @@ ltb2bib = {
   version = "0.01";
 };
 ltxcmds = {
-  revision = 56421;
+  revision = 69032;
   stripPrefix = 0;
-  sha512.run = "052303cd90b960cc5a9bf89c8938af95d8959ba6bdc603b4d53b68666b443b620417c9ec4ac65867b04eae8cb0a88940f905eac78d2c3718ce7a40ea249c9f94";
-  sha512.doc = "d82f046eee3892b5a241f78b44910c801b14583cf7f9a693f861ab04d9b05e0cd7639d8f85eaf46f95d2d325688fd1ba3c76421c6ceec5969046db497b0d698f";
-  sha512.source = "55f04ec6375c0b38b9e9d78fb658378c0e35c9d72127495e824376b1d54155138c65f6bfa804f7795b3a4514fbf1c5a7505e7500f51decb9b4d7c65b47d2909b";
+  sha512.run = "9d9a9835f4547200b160b42c07e918fb8b2cdf9eba91c30647c6fb1c74cb6f9ba60ab40bed63514ecbf334d527148b31fb1ec90af60075d19e28d10d675ded68";
+  sha512.doc = "21be07f4f98531621f90b7ed23c06fa4b39fafa12a83c45784b83b5f9728817657b5c2ac2c09e4988ce0c6df0918a7c93d29d7ab89159cca5ce5fc9e0eb017dd";
+  sha512.source = "becad978f8b2303a44057f165cdc6d22ddec03e58a26a0d6350bfbaf6d681ba43b105b65492c5be2382ee1e4f814129f86abc2ce376d2d42ddb0fdbdd2671d01";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.25";
+  version = "1.26";
 };
 ltxdockit = {
   revision = 21869;
@@ -26980,15 +27569,33 @@ lua-physical = {
   license = [ "mit" ];
   version = "1.0.5";
 };
+lua-placeholders = {
+  revision = 69404;
+  stripPrefix = 0;
+  sha512.run = "11d13babb26aefb2782ed7e84444ba645bc808a3283bc0e927cea84db95e9b06895df23a4ad830e2c4a401426a151a7acdf8eac43faa3ba69dbe434349d7867f";
+  sha512.doc = "88b9e069384f0c86ec3f86c21c985c37d199a9dc1962bb8d829b28a34a8ce7cfbc46ab57358070ed2ae71fc9d9c92b2090a69ff0c48053dba54586274caf7737";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.0";
+};
+lua-tinyyaml = {
+  revision = 66776;
+  stripPrefix = 0;
+  sha512.run = "3144093c160dd1bbfcef7c0d56a3ff2a6354ed2c5ad30a4201706dea66fb8cb19b4be71087c078c4e36d163e6a785827c378303bfd700c086a7ea6b9d7eb2135";
+  sha512.doc = "1b0932800ff6fbad87c2a87e68e433d46de5a0c2543c8fb0c7b7b6f60749db98d9863ad4debdcd508bf1a613d32c8a8fa5d7e23f177517e4f7735f2c3b63c616";
+  hasRunfiles = true;
+  license = [ "mit" ];
+  version = "0.4.3";
+};
 lua-typo = {
-  revision = 66516;
+  revision = 69403;
   stripPrefix = 0;
-  sha512.run = "8303e8b0134b1155dc08b3f9f717721326cca56595f6a5aa354400019b808d9b7fae9acd1307849174ee5513e152dee8e25ec9668b2ad2fdfbecace2a07bff90";
-  sha512.doc = "9d3acf9e93d2e114663fafd0b4ddcfe5a8d43c2bdbfc0a220e31ebfbbefcd2333ab56d75f8ade6adc7d2e8680db3e518d3e09f6f4352b4d722e609511f696957";
-  sha512.source = "02b6e83f7f445a06b7d6b91e59fdd5d388b8014875ebe0d4ea55adfee985b571cd61bc8711fc8d8f0763009c3a5d4ce445f86b595542725b18e50b6916add88f";
+  sha512.run = "177b89a930ed061d18e25bafc230b402976e25ebc88d09a0a42c70b5848fdf5b7964fa69160c3456a02f207dce39363c9fbf603c928cd50b373be6ba8a2c8ab3";
+  sha512.doc = "60a9e3560c35583377d4629ee4885ad5e8bf52773927c9d3e2b06a2385196303df704bbcc6245a2e0fc93c396b4a6252309180af270d9bd13fada543c9f3b7b1";
+  sha512.source = "65eac5cf5c4af2eebbc7d6412cf6ba17a4de37c6c47caf7667e047edc6697a0e93f9f3a334f3ace081127654b6337ebbe5db767d1de2eb48a275c22c0617ca08";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.65";
+  version = "0.86";
 };
 lua-uca = {
   revision = 61023;
@@ -27059,22 +27666,22 @@ luabibentry = {
   version = "0.1a";
 };
 luabidi = {
-  revision = 54512;
+  revision = 68432;
   stripPrefix = 0;
-  sha512.run = "917d0d96748f2b70d368a2719bf6fdfaada3d24e2e60c97b6d412ba2cdd991a920d86a94d19136e075605095c19331e1dd37c3a059a9e8f772479ff5ab53550d";
-  sha512.doc = "92345c9f8e50eefccba39f294841a7eaff7d0328ef445106dd436ff10a994a8a9ec027c9400f8b4b1f873ba1fbd92565e21b1cf2c73d40d3468ce27ca7ae128d";
+  sha512.run = "10a304c8844ad7b8f5e1832d59e678599f503c1eda38e1a1e29438abf6304fc44d8d4235e1308d661fa0879494c1779b7110853305b645ff1d2d35cf575bf07f";
+  sha512.doc = "8276f91aa767b9c066bf6271f57a929aa21c7ff19a49db5db2e4eb68bae7613a13473cc23b7f5e60232148b46ff33bb86366320d730ba67918e2b009e5f22463";
   hasRunfiles = true;
   license = [ "lppl13c" "mit" ];
-  version = "0.5";
+  version = "0.6";
 };
 luacas = {
-  revision = 65042;
+  revision = 67247;
   stripPrefix = 0;
-  sha512.run = "1d7a3ba1e7fa0085893569e8f4ee5c175376edb7c3575f6892d969a4b64bf566c50d3b86088df6bcc7e8bae9c8ae91889f19a28e3112cfa57cc7919fb85e95d2";
-  sha512.doc = "82e2392a227366661a09fc54c5657efe12d0bb5d9bc8ed5209b013b7d2825f5c3516df4c77d864c9cb05574a2380612215d9ec2b70b4e0df7c44b307922657cf";
+  sha512.run = "21a488b33ef09db0e0fc2c479564cb15f1f2afb4c790ed8e64baa9b10ec1ad3a36486261218959f8c7951bc06d234f0516bed5d31201adc8d573c7490658764b";
+  sha512.doc = "45f583d602c6afd13cd32d4049d4305d23ff8b47866a9d95b873e7533d3a46d2e357afda82819dedd450e95e3300aa34a4abfece9e0b90c22d6b2c3dc8cdc701";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0.1";
+  version = "1.0.2";
 };
 luacensor = {
   revision = 62167;
@@ -27096,50 +27703,50 @@ luacode = {
   version = "1.2a";
 };
 luacolor = {
-  revision = 57829;
+  revision = 67987;
   stripPrefix = 0;
-  sha512.run = "39252eb36291bf6023e8ab24e7f4cbca10caa9d89204e8e80a5962b08e66c6ba5b588e98d17f9b13be3a52fb5c392499ebb73ded2e43a4ce7ccad4cf30a24302";
-  sha512.doc = "4aeb524631531e6d18decde7b01acae4aaaee8f80392da87a2e7fadec9d353749b2d1dc65573ce2f184c24494ba340589fb83203ffcd49271e05dcbb79a1fd19";
-  sha512.source = "93d7f9ac094612760c7cbaa1b591dee5f31f8278f462808a484311e2ba6dd6a20671e7431e7f22985a7f77e23436eefe02484026820d4b125a7a1b4b9d6becbc";
+  sha512.run = "142376345f25de68236e56fd334d8f24af90f510abc0d2314049bb03142df76988cd5451e22cf98df4443348f7686bbf9c269e311d5036cf8ae621200ae585ba";
+  sha512.doc = "d6654c3ac1ca1c18cc60cea463cc3b4b4ed902ba6c29521883079123b9906f089ed25e2268e7a1f92800d9b1158225b50c0b019ea28c68b846e73bcb350dee6a";
+  sha512.source = "8b29907f0e0d865704e5de710ac2dd37607330d66a4282ff1f4673306be40ce366a0c2eccdf4dd25c3592e804cd6fa1e2a35044c494c4a3c73e64bd0c264d102";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.17";
+  version = "1.18";
 };
 luacomplex = {
-  revision = 65833;
+  revision = 68883;
   stripPrefix = 0;
-  sha512.run = "621f7f8955c309b31f19a94cfff7632591f5b67b60cdeb1ddccb1076855a49c0e9030fd7abcb21cb7c3c474d3d418e8f08e6d1d4a74fa18f96307bdf8ab96094";
-  sha512.doc = "abcc97af487f24e2fa0636a3bfb069419eb29071e2060c7712c22c5a4dafc97b082e72b27f3e390a74564d1950b1f7158bee90151399ec6c5175513a9c9eb706";
+  sha512.run = "dcbb87d1c5776f20aeebf0748d348ab748e98fdc95427404f252f55fd1df9dc607aace2f6b4bfa086016eec7c4bae295979773d3a70d20a9e32da47974911949";
+  sha512.doc = "a892f4360b52ab22dcb282c5bd6e538af83836d40e7467453ad345e2d272363efdef83b29b76864dbccaba1ad3589f2a3a47d20415842f727212d3923191b052";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.2";
+  version = "1.4";
 };
 luafindfont = {
-  revision = 64936;
-  sha512.run = "a73bfe0aa1b6a907224cc98f2d5f6344249f79010ad5552c66286eb7c103d5c69851a452cb6eebf39ebd5b6e8e64062efb125bea1c6586ef5117f994a97244bd";
-  sha512.doc = "e7196d9a2e69b5a6d5582d7ddc00ac480b16228b424cb9d568ef1ff6fbef48e5926776d5f22fa0eb5c4b09b6b29a283416206f64cf324356b35d66228bbbd3ea";
+  revision = 67468;
+  sha512.run = "0d02fd925b33616d3f23df0609ea6fc1595b830cff8a712f6f93414cf80b51b2b1dde2b29e71084aad89377084b606ee7eeebcc2b5e8342b74fab23d8c97aa82";
+  sha512.doc = "fd16f72bba665cffaad3102d6573117300c7df4ea7b4a3104be3de7c26c9f127fccdb54e373cf47220df2652fd405c6dd3f956d2278ec9339e70ea390333af75";
   hasManpages = true;
   hasRunfiles = true;
   scriptExts = [
     "lua"
   ];
   license = [ "lppl13c" ];
-  version = "0.11";
+  version = "0.13";
 };
 luafindfont.binfiles = [
   "luafindfont"
 ];
 luagcd = {
-  revision = 65396;
+  revision = 68893;
   stripPrefix = 0;
-  sha512.run = "16252382a588687de53735fc215e4a4b6a0036818af5a07ad1df8acb2fa63534079528082c3bf3da57c093ef994a2ee7e8d61224347ede8c5f01697b0de62e30";
-  sha512.doc = "42a5d3732c3aba5e3bb2e80274aaeb33ac99e52b9a65ce4918a8dadc6972f2818a4acfa495d271c4deb64121e57c721481ea92a7b91062a7bc28ef8cdb9b7acb";
+  sha512.run = "d9b770680bc147b45c3bcd984f58335d4e4d53f97ffecf85eb1c017a1c61ef6ddc06ae3230740769e199dcf674aeb92b5ebc10cb29863bcc4f67caaf9a41d15d";
+  sha512.doc = "98905c9e829d1d96a44b25236a1181d5b96b75ca8a05293b185b9f372067cbf35d3db2d0e3343aacfdf840981bcd2af19e089b4a1ca7ae79a7a52b70c6828862";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0";
+  version = "1.1";
 };
 luahbtex = {
-  revision = 62387;
+  revision = 66186;
   deps = [
     "cm"
     "etex"
@@ -27160,13 +27767,22 @@ luahbtex = {
       fmttriggers = [ "cm" "etex" "hyphen-base" "knuth-lib" "plain" "tex-ini-files" "unicode-data" "hyph-utf8" "luatex" ];
     }
   ];
-  sha512.run = "daafa6e417e7c366dde221488b91708f8c1302cf6db849b91a82bd74619f0b91e16430680aabeb27e43d1469262c9f799cd0bd6547635ac6ad54ef8e2dae5703";
-  sha512.doc = "5d2915af80990896181a70c24dd3c51748fbaa6f3f9b96b67b1b40bc8ab36d39293e8f76c0f3dabdaffb252423eec61375b6f5aa859a1310236f7d39d6f2fcf3";
+  sha512.run = "30b1fcd361cff27688c65ecffbcffc65053696200abfccd543a14253b53a35de2af53b37f7ed1580510a8c63293d2d002cf4d9fd2d44f86678e2ecb09f02e4b8";
+  sha512.doc = "3016c12de8386af715932819701a6da1b106c504a7d13ba9bb5a04999737709f474b50c08311c1d4c23b5532ba7c1546cb0585e5375babbcd2091adf52d05664";
   hasManpages = true;
 };
 luahbtex.binfiles = [
   "luahbtex"
 ];
+luahttp = {
+  revision = 67348;
+  stripPrefix = 0;
+  sha512.run = "ec1ce2020efcfa3288c70d79756fd221a2cbcfc873b4f7f77d23bb18ce16764873c30a6d24a36dfd86af5ffbd8563c0c9e863cbeb78b8487725fac7f6c153bc9";
+  sha512.doc = "cd4f2a818a31b8f9df2dd83590d8cbcb01cb6b06309a7a001711f990250d31232680ef2f10b252704eab611cc20c78cca51331db00f17eabad40ea88a8d2860c";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0.1";
+};
 luahyphenrules = {
   revision = 56200;
   stripPrefix = 0;
@@ -27205,16 +27821,8 @@ luainputenc = {
   license = [ "publicDomain" ];
   version = "0.973";
 };
-luaintro = {
-  revision = 35490;
-  stripPrefix = 0;
-  sha512.run = "2585639b6a7b93019f8fe4dd353332dabbbfb5663b84b1c92df397e940392a1b3bb2ddcec203bbb1b0f4244ac26b62f9745fdf50cb7512f96e5c12af8c08335b";
-  sha512.doc = "47de79cdc637810757b7879956cf758a77cde95e77060ce74829b438d13b58e23cbc8e9b328d0850b44fd8de8da90fa9fda206ff0e206918f1bccdf5d71d2c38";
-  license = [ "lppl13c" ];
-  version = "0.03";
-};
 luajittex = {
-  revision = 62774;
+  revision = 66186;
   deps = [
     "cm"
     "etex"
@@ -27242,8 +27850,8 @@ luajittex = {
       fmttriggers = [ "cm" "etex" "hyphen-base" "knuth-lib" "plain" "tex-ini-files" "unicode-data" "hyph-utf8" "luatex" ];
     }
   ];
-  sha512.run = "f7503044bf237ca6d6e33a3a067bba0d73dfecfee7e77b5ebd4f3d6417dd24f7aa263cb08e7ffb86708574ecda31d5c7d89b42d2ad2179119393b99129f8077d";
-  sha512.doc = "3924029e274913999cf54e2f3a4d3ef85dbfbb4ee93a629b8eeb77c796557c3086eb447fa74d2d7a6f33a17f433f38ceb033f7e1633e240bbb135b4239b588f7";
+  sha512.run = "21313a5786f2bea08ce55db3a7beedabaf66f3331bd0eac1f8f3d7b926f68e103b14b1a5beaa271c37b60fc56735cc180e424f91db62f6e740530a65495d8e82";
+  sha512.doc = "7637835fae934f4fb1aea954270281a986733d0e0592204346edc290f2cd7d5200ee2fa0d9e15a27be8221c3c990a8c3d4654e314f96441a65c197d3bd259129";
   hasManpages = true;
 };
 luajittex.binfiles = [
@@ -27261,14 +27869,6 @@ luakeys = {
   license = [ "lppl13c" ];
   version = "0.13.0";
 };
-lualatex-doc = {
-  revision = 30473;
-  stripPrefix = 0;
-  sha512.run = "a1d98422b13a26aa844213df2929629889ed6bfe3fa16c27f6376f00f038a50dd32c5128a27ecdd872d3fce8372fb93ec603c0c92edb8692325f1e76fca685d1";
-  sha512.doc = "0756a0183d0b7b302f24cd16a8957915a69a3db3fe4a8a4fc301e246a0563f9fe81ce2af667b7bcfa45717b605be163cc5fd4c170d8584028f2ee7b2120390c6";
-  sha512.source = "a18a7644b50ad608dbb2bbfc15f2672fe7b9a48505c3224dcb46aa97b2d57b5a007c928dd5b76518c8963970bb1b8b56bed8e5c374ba5cb18a9521528dfdd58f";
-  license = [ "fdl13Only" ];
-};
 lualatex-doc-de = {
   revision = 30474;
   stripPrefix = 0;
@@ -27292,33 +27892,33 @@ lualatex-math = {
   version = "1.12";
 };
 lualatex-truncate = {
-  revision = 48469;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "f4de38427798b565aacdb127152cd7ac8a42b441c555f742f5bf90480f7cdf8e182745a5882a9c8e0645c529d27647a056f26b7493dadb13216972794e617341";
-  sha512.doc = "704b34da4b8ab787c53f2af21fd17a29d6c8e1d42024de2ff0e65d434a502b47022fa2a506e149b67ee5cb542f2f4835babda315b1dded598f63dca353aa78b1";
-  sha512.source = "bffd59b8b5a7d02f40f4ff2f4d028aa98ae26b3d9d9cb432f531211fbcf65d18814653fed07b68e4d34f65d514f7aacfe6bd5aea956a12f7fac2e088841ca02d";
+  sha512.run = "e896a6e065b5dcc49c24f8492f640f5ebc06c4f1ac8bbb57e8f76768ec20b14a016f2f801a5c5c855d03f72808b5844011aef7ac377a38a388cd843120b4edc7";
+  sha512.doc = "242cabec009e94adb1582874f959b10871531b433679c2f66ba9f82af02150d78b8acb8b486a182c5e41f2d0b7fee9a7294ab2d8977c9a6f0c021fde8678a4a8";
+  sha512.source = "fbe5c95820b8f94773f8f7e33b554e05a5d8ab2178472a6a6c27a24e08dc7dceb3bc1483999b3b13db389b46ba6f5be1532927adfd1623f0ec003da2a96e5793";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.1";
 };
 lualibs = {
-  revision = 64615;
+  revision = 67994;
   stripPrefix = 0;
-  sha512.run = "4c58257198d93adf140d83adc043da409e84195ec37123c9738930702efade88c85faa83173591f1862bb5db0ec3da6bd70bc01479d605365a9fc200ecbc204c";
-  sha512.doc = "274eae19e558c1c6b0516154a4848353746b7329bd18599c6d801ad60f8849c1275418744942baf7e25a8d6360d21fce37a931c777aa2df9bd34a8887cedd15b";
-  sha512.source = "b0c4f3ebfa83c976d96452a0d33f903344ccc8df1f2c7a5237fe05f8d8b99ed44f737707e24c1847b520a8c93989308214c6f06e211e2893b7b96c841b1c8ab4";
+  sha512.run = "4387311fb78a29d63959114e401a2b97a8743a50c76a22163e0d14f15cd7b51a50f4be7a19232b32fa4152eac71c73fbeebcb8e38fee3bfc997aaea37bef78bf";
+  sha512.doc = "a4c878209934b2b044688dc77b4b467ae4e106adfb5f728f398d7adaa279ba612883ae22f30e667a79a22d633a507b689525356ff24daf12c50bc84dfa798ca5";
+  sha512.source = "98fb3af23ec41561f0ffb12461ec2977472f4182b49a37c0365c16bc3d52ce61c382e6ca172ef92638cc0496d5e3073e4c96b13acf390e783f1bf46d34226d2d";
   hasRunfiles = true;
   license = [ "gpl2" ];
-  version = "2.75";
+  version = "2.76";
 };
 lualinalg = {
-  revision = 65834;
+  revision = 68918;
   stripPrefix = 0;
-  sha512.run = "18ff75c7153af357e5913b01cd4d9ba8fd5e4225fb503f63dea5d9d8af6b0f13189371d04dc8ced3bfa91d9e25af479391e13ea3f1f4cf30485f51536867cc17";
-  sha512.doc = "eb07f1a76292facef0a93d4d407da76e18c4638ef5a51f44fa71dc7a7e3ee3e368f82bb780b67820547457ec3eaae1b6327c166705966a65f71395cfad4958ef";
+  sha512.run = "91c466d51adeee70e9504deb30a623c41d4fd6b461e76f4a6dba2529ffb3e879ac9bd706845b00354418d6a600b3c774029000b3495ebb4711b152e274b87d0a";
+  sha512.doc = "21d4a285713b962e17ae2f83be803abb77813bb6fceb085787fba35f2a1956b88cb199e057c1f49d15ded68c3fa186a5af0dc5bb1ba99db07dc557c3a2da1a44";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.2";
+  version = "1.9";
 };
 luamathalign = {
   revision = 63226;
@@ -27331,13 +27931,13 @@ luamathalign = {
   version = "0.3";
 };
 luamaths = {
-  revision = 65400;
+  revision = 68883;
   stripPrefix = 0;
-  sha512.run = "825e0a28dbf1dbc09aa430b25fbac824de2bc2af14ed9d23970e3b1b8178548c11c9822b5c45b1035250e147a5cd1d0288f825f270bbf377c8f6e786c51f8b0d";
-  sha512.doc = "effa366dd57fd545b4f18112ba6798e1320fecb09fb6300873a9b48c318ebe7c07d5af8b5a14ddf6926d24c0ba0a1caded6c0c368113a159c5d73633464796d6";
+  sha512.run = "1c5a53bd44f062a4531bf4099c0dc1e76a47f5475901bac7f1fccea0005f9704df257044b76063d51158beb0d66d18e41ed6a4873388f0e531b1ff21ee1042e7";
+  sha512.doc = "0846e5ece550ec73aa65b07993faab7151efb100f6e5cbba8a4e73b595b012f031435ecae7d1100690395bc973fc82b617a0463bd3388e38081ad32b8d16d78c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0";
+  version = "1.6";
 };
 luamesh = {
   revision = 63875;
@@ -27349,23 +27949,32 @@ luamesh = {
   version = "0.7";
 };
 luamodulartables = {
-  revision = 65485;
+  revision = 68893;
   stripPrefix = 0;
-  sha512.run = "017f903e35bd6800a89dcb086ac592c30e0bb48078ba50dc4822f8ee949d1995523a6c02eed77ab98beef7c0d08368a252d2c6a629fb27f035c8cd8d4a749b2b";
-  sha512.doc = "380eaa526a3144823b0cd438b13094376ecbb009f11c7e6e90303005b71889b30a1d2e08fb85218913f530ec163b01fb193e4866f6133c16de3501299db86544";
+  sha512.run = "0b390717c538a8c44cc7e8214908149c3705d5cb453d7776015eed27638ed0c0d16ea0b5be5abf2b6bec6e410b849f35796f574923303ebc883c75f7221f7634";
+  sha512.doc = "dba85f4e58f7a7d8f1f81d0051a0305cdf51e7bd1ad4220cebed513871c6a3d816d9a6048cdce352f48527da2b04700b94210eedce5104af289dd0508fc72f63";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0";
+  version = "1.1";
 };
 luamplib = {
-  revision = 61587;
+  revision = 69069;
   stripPrefix = 0;
-  sha512.run = "daa0a03eca57570f485d2b7decf564eb9f6614a5799d93b798310c20ecb2f055b6dd469c87fbafc1722cb931dc387eada416bb83d609d76a9cfc8c482298edc8";
-  sha512.doc = "13b6b7322faf3fda798049bada6d1737f30cb2ce7841ea858ac798fa3f63818ae6661a4e050e4dca336dab37ba9292fa19446a9e1d07a86509c0856793716975";
-  sha512.source = "097a263699067a731409704d7de358c85f4509bfc6426dccd2b193b85430413c441a2c5dc011da613e1e673e6670f7d7ed847e59c58c74d6caae66b7b3c2a29d";
+  sha512.run = "8e6238c9fb806ced90d5c4e88aa84e4ad1ad39631296a90bd6656b600b1ac4f34d4e09789fb2bdbe92946ccda22668003c78b03497b3717402d5163d9de5e734";
+  sha512.doc = "e2dc6fd89743860159a529ae81c284c6965c4cf9eb3376bebe9d4027148e2726c7be24a42ddce36a43e55e76f7646f90da1f124fcfcbc22cf6a36324eda78aa8";
+  sha512.source = "51eb46b66368bc894ec1848fc357b859a68e56a88b700e5a7bc37b8baf1a2b379ea877e39f6b8024c8ca8037f62c6c06281c8213f49eb724b1c82dbf2bc46067";
   hasRunfiles = true;
   license = [ "gpl2" ];
-  version = "2.23.0";
+  version = "2.25.2";
+};
+luanumint = {
+  revision = 68918;
+  stripPrefix = 0;
+  sha512.run = "f34fdf0308fe4c9aa36d59e11862958ee1824761e5aa8ee62e6df81b335ec8dacb203a64ce5e26395ab612583126093dcddbc42dbeb927c90bd3bec73c1b5485";
+  sha512.doc = "e8718322381688bc306871de22d585ad50128f45d25ec6864034a42cc661e78c510dbfffee46ab5a6da0e3018f1cf3d35974d9e4cf27e4208e9a8186aa03e656";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.2";
 };
 luaoptions = {
   revision = 64870;
@@ -27377,23 +27986,23 @@ luaoptions = {
   version = "0.8";
 };
 luaotfload = {
-  revision = 64616;
+  revision = 68143;
   deps = [
     "lm"
     "lua-alt-getopt"
     "lua-uni-algos"
     "lualibs"
   ];
-  sha512.run = "70f27796fdfe61e0337239a2962052eb2896478358fca0f271287db06a1d2de2f83cd7394d0ec6c281e9a5779ec396e2993f53b8b045ed7a09cb17f100a4a477";
-  sha512.doc = "9e1c223ec2589f32640aefd2692d031b8ba324da30a814eea98768443eeb76d92d2700c320e6f96006e54635d31a655cae0a27c76931e7640748889ead4fbfb4";
+  sha512.run = "7781db14c45e5e2d5cba50e91e9eb356260e4cf1e55f45b6f584164f1be0a4b31818be7fe3e08cb51e8ed43fde49c0a3ddcecb860848f8bf02096a60e45a58f6";
+  sha512.doc = "a929c941695de38ee029d60564346581153bf233db5ea873dbd8f84d1922df2621e7d9a5aad3ad6423392798c5007342f0a886249eb85d3c598b06bf8e271348";
   hasManpages = true;
-  sha512.source = "3ed04272b887f434bfe2dd166974889318597e22c57109647946f2b255efca2fb6d1ecc1f02485a1bf387e77956c64a9f42c4af237b29f9fc7a38400d8cfbef1";
+  sha512.source = "62c77656a4ab2bb93e8403ebe197418914644d99384f74bd8b78c75c255537bfd947a32aafe3f92e576b0e2596eac3308e2d837b41604ad1725e145882916799";
   hasRunfiles = true;
   scriptExts = [
     "lua"
   ];
   license = [ "gpl2" ];
-  version = "3.23";
+  version = "3.26";
 };
 luaotfload.binfiles = [
   "luaotfload-tool"
@@ -27410,6 +28019,15 @@ luapackageloader = {
   license = [ "lppl13c" ];
   version = "0.2";
 };
+luaplot = {
+  revision = 68918;
+  stripPrefix = 0;
+  sha512.run = "99bb803fa2eb46b33e2f3d7bfb1b307dd268df91d392f8fe7bce5e45db65fb8b1de66d8d62f0bb2912fbb5521a73ea60b6627fee3fad23262fb92485a7858c80";
+  sha512.doc = "b34d3b67d1603fbb940856d9da2eb4ee57afd87923c2a1c4541d5d9325cfd597bb47b2ecdc829b2ce4eb3bfb35eb9b968e0cdba2cb9d557d12ccbca959506f53";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.5";
+};
 luaprogtable = {
   revision = 56113;
   stripPrefix = 0;
@@ -27420,13 +28038,13 @@ luaprogtable = {
   version = "1.0";
 };
 luapstricks = {
-  revision = 65900;
+  revision = 67207;
   stripPrefix = 0;
-  sha512.run = "aa7611f76648e31c5fa9a62edd005303d00a30568ca9c67aa4b6ce08b4ea36ee72fa29782ac805bfa51182514388c14b80a70031e99c747af408dfeaa170c298";
-  sha512.doc = "370f3bf3b7940cbf15b76c000e95b1e8d72d6339b8139333a4dfba64c8b78332d461c17969b3147956ea3677cc7cc61a13e850b4bb4f7917215fb23d31eedbd9";
+  sha512.run = "742b75749754c3370c64c50bc8138474f0181b4777875227cccf749851aa0d42cb490cddbd72a9624b931fe99f02e2727fea4e54d36b1d46cb084c666dca445e";
+  sha512.doc = "634cd9587c4fd9c6fc558bf9369b191e0901b58d75d871815592f3e6959bb103d32026cd9ed48ce448a497833c30916d39b92cbb85c6544b41b7341277dc6820";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.8";
+  version = "0.10";
 };
 luaquotes = {
   revision = 65652;
@@ -27438,22 +28056,22 @@ luaquotes = {
   version = "1.4.0";
 };
 luarandom = {
-  revision = 49419;
+  revision = 68847;
   stripPrefix = 0;
-  sha512.run = "54019dd968b2cf3b6ab9a3777e609789c04a0d369b1ae938df152ded3bf54607140fe6265b81ca2a75f458e9b8144000f0bf2e9d77fb00aa923f7ce9569c423f";
-  sha512.doc = "f7fa30cd6668674cfee8116bdacd3c457fe6e1a3ef4a1c0da603db2fbaae77d187bfc5b4867aea0410a906238769d7138672b89b51eccc9fc4d110a079784092";
+  sha512.run = "1b5f4f420fe5acd552e7ff34459184319337a586b19f3b53111940fa648b09924f03ce7ce4da7463cbc894e65ef87647ada660922ab252b560dfe99295255097";
+  sha512.doc = "4be8b8d72bdd6d4eb33999d662e06a60c8971d5a990b649e37c990dcc6f708856ee61a59ad1dddb6c083eab09e809ddfb65a1730a8e76bb6aadb1a240c809a26";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.01";
+  version = "0.02";
 };
 luaset = {
-  revision = 65376;
+  revision = 68883;
   stripPrefix = 0;
-  sha512.run = "5c228ea6854943859d389f3de4386834544c0bf67b62d36078d599d69af286f14263f0feec48eace283e9374caf89bfd67adfc3a98fc1cfbb87d618cc9ddb62b";
-  sha512.doc = "0bbe3457ecf5c872052fa215e4505840a80e026a02baf07ed0394b044784c0c37c00afdcd0fa25f610986f465276c160a9a892a45092e5065818011137c70d89";
+  sha512.run = "97617f8c763ec968750949f5050ae8682b179caf6433ca036c820017c4ef73aad3f96a1f8071be490c029db25afc6b85c45310ffbddcf3c8ed7b4b5547cc6e58";
+  sha512.doc = "546beb759fe4f6e6a6a9814eb46935a3d1245bc2a48878c8391738e92e79c7df2148e564b2eff0cdc60281b6f071d8fad2edbf171d7c1130b1068aad11aa5a19";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0";
+  version = "1.1";
 };
 luasseq = {
   revision = 65511;
@@ -27465,7 +28083,7 @@ luasseq = {
   license = [ "lppl13c" ];
 };
 luatex = {
-  revision = 65866;
+  revision = 69182;
   deps = [
     "cm"
     "etex"
@@ -27492,8 +28110,8 @@ luatex = {
       fmttriggers = [ "cm" "etex" "hyphen-base" "knuth-lib" "plain" "tex-ini-files" "unicode-data" "hyph-utf8" ];
     }
   ];
-  sha512.run = "3bac06a5349e13d48ffebee9e78e271d8ea64d0e1b55df018ee1fab2533fbde3d9e9f99b64c3dbd3026c24b61bf6b867684489a73202cfdeb620558522c53b7f";
-  sha512.doc = "ed7298a561425d7e5776ac6555716b2b57f0d16584a871de94c5c341f0d8023bbb341b2deb78dc313e9aaff18659b49f24c41063a5719a43b67e5b074fc0d3b5";
+  sha512.run = "5ddb75ca2e358bea261363cc19d39a37a9e467f9cbf4f8006f036a96fea61cb00f86c4000c09d7dd07f71f9b9a01ec165ddefb862aa84f0bc3da6a387ca1f42b";
+  sha512.doc = "36a5dfb6b7ca09adad807d2fa74df854363107eb3fb514977e3ed8c69eeb1181a19a55a49eb8c001a3532601c0a222a3ae9d130827caa19864df03705af7271c";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "gpl2Plus" ];
@@ -27528,26 +28146,26 @@ luatexbase = {
   version = "1.3";
 };
 luatexja = {
-  revision = 65790;
+  revision = 69245;
   stripPrefix = 0;
   deps = [
     "luatexbase"
   ];
-  sha512.run = "aefbb04f83fcb47060bf540343d48adbad8c06fcadf23a75efa2a0d41149b75ab4dc0eaaba9ee910e6eadbebbf33beec47d751f8c188c4ecbb5adb149e80607e";
-  sha512.doc = "b4dee5a78aa3bc50989bd0ec78eb5cc281104023bc972303a9cdfc3a936e640eb4f1673c033289143fca77faa0fcff06e91097087a21a5ceac49fc6b2125a28d";
-  sha512.source = "3d912d72ae0f9aba3b6cefe21ef74ff8934c6954bd2b5ccee96c66a6038b5b336927d567fcf4fef1594660e6facb8cda739499fff2d187a270b15698c49c036e";
+  sha512.run = "359e6852a954aaf5a0aa99881dab189e6d878e5ee4083487d93315652cfb5cbbd010d6dcc74c946ea231073122604f35966744f9e7870dcd1321277fe93074b9";
+  sha512.doc = "d41556bac7106df19d9fb64c4093b9151e90ad237a72bb38d941d4fe1604c834800a7edc8d2bbeb7c82662c24fb2b2e1d8cd69a86ff76b2843daad90ac8f55ce";
+  sha512.source = "41f17265aa58ceb2bdd9b13e95f73552185654f459498337d34631e1fff3fd51f3fcdc06a2d426b466f0e21dcdc3fb81d1e4f031214b2e4c93582d04984aa66c";
   hasRunfiles = true;
   license = [ "bsd3" ];
-  version = "20230211.0";
+  version = "20231230.0";
 };
 luatexko = {
-  revision = 64893;
+  revision = 68243;
   stripPrefix = 0;
-  sha512.run = "1d1d9b828dfa55a6460bc71ee6b61cc434d8df0e0749878e84c2939c2bcccadaccd3f6b9c2146eae10bbad495da2375093084e60c9b5277c0b8542b4588b3f8c";
-  sha512.doc = "a516a7fa5536e3de9b6fcd54c2e9c28a078849bb0ea6d1344d54cf27131a9c82f96559ea031043715a6b54f04d49d5bf42da80c5c44beeddf1a3a5f6e3902e42";
+  sha512.run = "7815d0d6caada77e5d72c410a299de6349a81f635cf9f2ae5b61a73e5619808b8997de70a35a0a6e8cfa1250d413645a9f90f398582e061c92138dbca97d4117";
+  sha512.doc = "cd1d68f9fa8d5bc5491f4a58f465ea8ddc4a0c500f7c24c2034c75f33ad31d869d2d63d836ea6699b02b04b69406290e7f98eef1294ce8be0f9358f9b207c9ad";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.5";
+  version = "3.6";
 };
 luatextra = {
   revision = 20747;
@@ -27570,22 +28188,22 @@ luatodonotes = {
   version = "0.5";
 };
 luatruthtable = {
-  revision = 64508;
+  revision = 68893;
   stripPrefix = 0;
-  sha512.run = "250c01ceab5b63b60fa468e7bdf03e69cd902e0c13ed0b5a426685cf6f370d30d31881f23184c1cac8e75b380f0211357e7febc2de1e490bb2ec1ef1e5dd05dc";
-  sha512.doc = "4c93afcdb76b38ef2e4bb9bc39e4cf5c9d30d3a98b8cbcc8e6259d6587cc8ae2ad489c170a3dacf49f026ff3e90f522e2e7ebc86c5d05eb783bfb35e6d8c75c4";
+  sha512.run = "3f239ac9d477c456881921140345415d2bc9f0db00c9180bdfac2120c86669f2a52fe8dc92752535b2dacbbab626e51ef614da7fc10a93ad90a2322dd1821343";
+  sha512.doc = "5e17243dfe5343e211991a9e7b73d8b2d454042bea5cd15fe5bdf257344b4953d9a3e3ed9c2bfa66263c32c53a93be233715f2d524bf78c682a57b67332744fa";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1";
+  version = "1.3";
 };
 luavlna = {
-  revision = 64142;
+  revision = 67442;
   stripPrefix = 0;
-  sha512.run = "58c16981ec1515c74a2ffd7632f16d0fb28b9fe32e6e954b49be602c721110e3537a66059b149a4d5c9b652ee717ee1c736ea03d2e4df3803c1b6c4465c50bf1";
-  sha512.doc = "a8d808e891ee8eb4958061912d0cd7b8c89da3d352ae984b08c92f56ae1222209132e8612172392787bc27e2e62a8a487e48fe1c728c545d8afef5fb7f23747e";
+  sha512.run = "012bdbcca4062a2f551b28dbbd781c885fbb557f5c1258157db01fff7141c8380341f53a9e58c3f844c022af64a748299efb703de5e37f05acaa0d385b8ab8ed";
+  sha512.doc = "a785d65816ff637c4c08f6a0ce95e5a65c4121885f6af32b3e68574845adc10886685451cf3fb68cff05b4ab29c792b3c02f793d912e86ace55f2602af6d63e6";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1j";
+  version = "0.1l";
 };
 luaxml = {
   revision = 60709;
@@ -27597,24 +28215,24 @@ luaxml = {
   version = "0.1q";
 };
 lutabulartools = {
-  revision = 65153;
+  revision = 67714;
   stripPrefix = 0;
-  sha512.run = "fdc4a042872d42e1b951a2732982f5c9c5b1014a322f23a4d68fb3b5aa6c647dd881b779f37566d10c48154c3d570697efdf336fe3da09b2a3a776911edfda51";
-  sha512.doc = "7a2aa7272072c26a7063934cc2015eeaa002f1bb1ceae4f3ceb99ca10d6e67be816de6492a84b6185f9b61e3ed5e06c00b9319e9a75ae20cc455d9732856bc38";
+  sha512.run = "eeb781b572beed01f5a787a4d0351289c90751ff49a289952a150e3aa013b10f4b0f69fea546709ce9c6ee077a08a551ac9e03d192c1064205eb2af6e907be1d";
+  sha512.doc = "9595cf869f480951f9d0d142abb05548e4f71d8af6d62c4ff0626ad9d9019d63b91333bfc8ba1f6948c9075d62fb7b7956658079fd17ea5e86f920eb7c6ed49b";
   hasRunfiles = true;
   license = [ "mit" ];
 };
 lwarp = {
-  revision = 66260;
-  sha512.run = "c0ce55fc1250ea08b05369c4eefc5d79e8f71cdf7a33cb8923622fbbb63730ef0f59031759aab58e0f9acc98c49e274a14a962653ac33ad2dac81f44fbe4e9f3";
-  sha512.doc = "4e25b1cd6286c5ad70153993a0660db10e43bdae2099a66544fda73a6820404351352df5ba6889634d3b000257408cdc15945130a496a58ed52260734308cd57";
-  sha512.source = "756b877b4bd41fea4f11dbb8951ec232ca6b97a3ed5ff197467ab38150cac04c788dfc5b390506d611fc47e749cb78c03fb3db73e191f380b2eed1cc00534426";
+  revision = 69384;
+  sha512.run = "c1c5bfa2f3131daa3c5c39e162e4eec6a1b640b5ce5f122d44cec5a1e732c97ffec2b0376766750a2c6367ef821acf3418323888d01121645cf7e5051a6d643a";
+  sha512.doc = "20796dd6f885a966391b45e0db71d2c065afb89f87e92074de72fd7db6c02741bec9281f6c2db4ce6b5564d66f74361a30dd1d0dba6352747d41a4d161895410";
+  sha512.source = "50266206d154e4490fc43258518d1848024a83d8fc9237758dce1d2ab2737d82d6f398daf2b04c8cd091b5f38f6e4a8f0bb7bbfaa3f60ad5a1be6b4fc18624c5";
   hasRunfiles = true;
   scriptExts = [
     "lua"
   ];
   license = [ "lppl13c" ];
-  version = "0.911";
+  version = "0.914";
 };
 lwarp.binfiles = [
   "lwarpmk"
@@ -27638,13 +28256,13 @@ ly1 = {
   license = [ "lppl13c" ];
 };
 lyluatex = {
-  revision = 66280;
+  revision = 66880;
   stripPrefix = 0;
-  sha512.run = "98ed2a64f3cbf78688094917fc455220c9e75c45e17694271babbea79f2aff3b6c5b6cc5d1a645d6b48b64db049ec2b7b25ecddee1fa861beeda3590aca9b2a4";
-  sha512.doc = "7a16e8e6ed2d4c8912f7dc93de1abdb8a0357d2c698414d42a44185872d818593c6c0ef32dd7be766ca9720c5377248c7d617898091add90f01534427009aeb7";
+  sha512.run = "8d8491e9760f7464cc420b2b457f61c6f9e8e08b7de11dd9194f39330bb193b534f5ae3ea981317e4b2bce536149ca002f532f98bba5e0d8cfee5450c6b9b171";
+  sha512.doc = "96d99f944aed67d9e59714deaba08a5b41cd8d63f7c8a38151b2d7952817d5096517d1c643246dac8bb3616efa9c44180264794b90175aecef9362d32a83bf3b";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "1.1.3";
+  version = "1.1.5";
 };
 m-tx = {
   revision = 64182;
@@ -27768,12 +28386,12 @@ mailmerge = {
   version = "1.0";
 };
 make4ht = {
-  revision = 66131;
+  revision = 66130;
   deps = [
     "tex4ht"
   ];
-  sha512.run = "c6da836e4cd40bb987d2e15b3cbcc2a650284fc0bbc0c5220ac9b5e03b3ba9177986e013b68e401a951cb7982cd0a359d3ae2819c1ff516b4c6e88dacfe728c9";
-  sha512.doc = "9a802d3a26656f066457d07118bea52c0859d77bd02c6599e572538c54461f577d6ceed5845ef339811bbbf36560c69528cc76b29550e209f021163a2f57c639";
+  sha512.run = "9eddfced4137652653744256bd4ef342a1b5462a2bbe1852c7fc264b08646b0757d24ae2d12711c66905f810a8f0749ae7f6d7f32983d3aa96fad63e9e104a00";
+  sha512.doc = "2552e84307b92538639481b64690b2d4853f03e795b11daa61f88a1a15896f24982dcd563c181497a287744eabc5a4c3e18a2a705bbfcd9099383b1858a02081";
   hasRunfiles = true;
   scriptExts = [
     "lua"
@@ -27929,14 +28547,14 @@ makeshape = {
   version = "2.1";
 };
 mandi = {
-  revision = 61764;
+  revision = 68950;
   stripPrefix = 0;
-  sha512.run = "9bac7973ac229756b5263ee0e8a8a4381bf64400a1ee58b0abafa6765e1cea6dae0b660243e1dfa87a8072f1caf1851c11c88db81dae1b231ec6def9f965991a";
-  sha512.doc = "4debcb2b892563755cd0779db9c1784f7feba4d0e35118cdb00569bc4eaddf23423f1236f0cf28adb1c399e220b5f348ef898b0e7f1c59e031891056b9148fdb";
-  sha512.source = "1cf1912cd6db652bd927378970a1740153906f0c14e92da47a428c564c04f66f3496be8f639fcf3f0f0caab48fff0909ae72dd81085f2bd8a92d5ae08fce07a0";
+  sha512.run = "dca65d864b92b561058a5fd8e703ad2faf4c1201231efc0168992cf469d0919ed1aa45d42fb2744bdd11247d85d9582c25862495f77ba835eeb3663911e86d41";
+  sha512.doc = "c88d265e450e87a59fcb23a7a3a94ea979dedf12b58c7f0b6b2ad78e43f43d86b7bef2e59b89a3724ff02957a62ab92daf80df278eb8f8533ee359aeff580426";
+  sha512.source = "e7f588b777fe28c8c1768f13bac4e09fa9b5747a0ab97cf350cf8b0ff61cfe0826df19bf2a8da03e6d23f8cdecd1335897197272fd899703ce158bfb473a8fb5";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.1.0";
+  version = "3.2.1";
 };
 manfnt = {
   revision = 54684;
@@ -28021,24 +28639,23 @@ marginfix = {
   version = "1.2";
 };
 marginnote = {
-  revision = 48383;
+  revision = 68204;
   stripPrefix = 0;
-  sha512.run = "db05524c613df90a75c6545dbd19bccb955d0b3c2c0312686e21ed42e4802d47105726b0e092d178bf484f1585331bf71c604c2d9f039065872e218357d0d07e";
-  sha512.doc = "a9d6a3d7f8de332a5f77d086d552caaf91e5ab4a71288548d6d7ac3318cde208d948a668ac554d2a8f510f984dc9943bcfd0e07a70a2ee00c9bdadd3e148f550";
-  sha512.source = "fccae0e44e24059f6ff2cb61b2d52d69ece44287b4183733b37b157ff700f6f251d86d4344c3a10c1417155d6e16ff4105a77ce01a2468e5ba160ca79e25b064";
+  sha512.run = "6643a77d01d59bc371d301e738b59957bd63cfa0fc98a554f853d1599392ceb5e88663651563445633df704bbc3ef74510ebd6150c44911314225259982f114b";
+  sha512.doc = "18882e317048606324338ff765cd11e972c3dedcdbfe2407a3f9643b3efe6a7d173561726d4221618ac510a447cec7b1aa13a46ca45a091ac76e601c55c551e7";
+  sha512.source = "edcdc3acba09440dd7d1594a1813fd205447c672e0bb73e3b968ac6e211365c488d3ce0287b7df5e198a75e12d3301248e39674be831387cdd06636e97d76138";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.4b";
 };
 markdown = {
-  revision = 66261;
+  revision = 66954;
   stripPrefix = 0;
-  sha512.run = "dd4d0a36ee144a419aca266003376a252bbc1f2fe9d1128db54478ebfa6f126f6f9b46032f914f7d9373774561da6c40b1d4bc301aa2944ce56adfaa3616d088";
-  sha512.doc = "655631fe5856d385434492fccfe9656a90c63d77fe9d0497fe6272fa513170df211a3b14c6d3b51e18374407f6f38635afac860d49cfe81a6e85a4f5c888c6e3";
-  sha512.source = "435d0cddf335654746b1b4e95d972fc559c072ff23609c6e6e9c34423226985578d42b22a1daea2181643f23ec8e7797947106116d27b3c78317098e103742fd";
+  sha512.run = "b638546ded5356e9f271cfc28055f6ecc307e72178097dd54c0cd81bf3208058507d902bec0555185b9548cfcf7fddd7d5906d959644d9aa8945b20b8c816dd9";
+  sha512.doc = "7ed883ce22b404fae91e6e946b7786f64ee28e14b624f46b4aca9af1cbd3969d674f0c82cfdd1161c7df5a34d60ed8627c4428e13d317035079bdea0e7f7cf0c";
+  sha512.source = "986ce93ea94fe9afdce6555b90e88231261f2263cff2be734edee32b5c1ac005967e40ce323cc629d16616f9370f4958491f4fe7b0641ab024dabab0cfe4ed0b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.21.0-0-gee15b88";
+  version = "2.23.0-0-g0b22f91";
 };
 marvosym = {
   revision = 29349;
@@ -28080,12 +28697,13 @@ matc3mem = {
   version = "1.1";
 };
 match_parens = {
-  revision = 36270;
-  sha512.run = "1e03e279e977af436a8f5d5c3d30f046f46f1a31a0fd3de6d8ab458a64f0634b5f3ef8a338954971a898a1c68128f60c6eabd7ca231df9f3ca8ed12e55967dad";
-  sha512.doc = "60428bc16f65fe820e267852c9d85a5f862c6800ac9c2aae0915a48819da381b2a311fdd3d08096d4aab7311ef86c1c89fabff3d88caf419dacbef515f4dd39a";
+  revision = 66681;
+  sha512.run = "ed3286292a5480d73db2d3e231663c37eac6a17a50d4bc37131bb5d5627d445560c1bd47a3ea05dd4d9439ad97c275a05542c5664ea0460e2c596eda75aa56ac";
+  sha512.doc = "8ff55ae4caaa0ec44f2c44c21d08e977467e6a1a1471f0d361c428a2fd552907a3bff6a88a4f7fa40f3fac7f5ee0a62b2471d5966430b533ef5dac554d919a99";
+  hasManpages = true;
   hasRunfiles = true;
   license = [ "gpl1Only" ];
-  version = "1.43";
+  version = "1.44";
 };
 match_parens.binfiles = [
   "match_parens"
@@ -28126,14 +28744,14 @@ mathalpha = {
   version = "1.143";
 };
 mathastext = {
-  revision = 64930;
+  revision = 69237;
   stripPrefix = 0;
-  sha512.run = "28288f54a92726e0b5d741fbc78c1e6f87d9892b28bef5c2aa7285762bd265048c801f55e8590b18de43be82fd353f23d18e55a8d9491ed446c058373f736bda";
-  sha512.doc = "758c42dfbc5950d37804e9c5cf1f6b6cadf1c838c1687a7cc4f9a0e0193e75f6630e0568767953a45f73bc04b22332ab62adff9f4262f106e9a341cba6207dd6";
-  sha512.source = "b184975082833620ce3af3aed8fbfbfd616648753abb0a82dbc602a1077455a024ab916daface8eddf54f9dc1d1ce7727a8959ec7990305ca48f7864915fca94";
+  sha512.run = "057e16f2b729c1e6fd6857da04ae30b2d2bb42bf185cfba01dfd2753303e6d2668e5c48362799ecff40318bf709c348818f0529f6f8971f9cf6f66cb1960f03f";
+  sha512.doc = "632a36650d095b8a9f49ecfac9fbfb896ee29f18e81adece341026291fa945e361ea2f4678bde9b31166f2d7b0d7224c8be856184871e85b31d5e7613f950785";
+  sha512.source = "7c9499486765d4b59320a67e057d3550e46d1434a730ba06d288b869468203e89b9b73b7c96b4904def75e6193fc4e0f79e814e9cd3acfd088c6da9b6dd4b856";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.3y";
+  version = "1.3zb";
 };
 mathcommand = {
   revision = 59512;
@@ -28204,14 +28822,14 @@ mathfixs = {
   version = "1.01";
 };
 mathfont = {
-  revision = 65205;
+  revision = 68241;
   stripPrefix = 0;
-  sha512.run = "92f3ab48fb76f9cc09d0de10cc485783fcaef69cbc8dc8932fa1d006ca946a3b2ad0a3d6ad404e8cc66ae920632810832825ec11ea9c6e77263d86a904d78634";
-  sha512.doc = "6b769ddb7b70ddfcc5dc8ce8b87617a08a6cc3e76b05f9cbb468d4dff9046cf81c258601bb81d3b2253e88e29315de24787d4ad7262ac996a80efdfa2544d07e";
-  sha512.source = "762ac9d2686c3dad154dd5ef0725635739203d2ba99315bd7f04c429e2d5f9bbcbb42e21e76e1c4aef7c8e5b83587089ec232a0d5e903d1c54faa4ef5185f4f1";
+  sha512.run = "9ebe3acb43ebd09a537b99eee5047d2abf28a019017ebb434684864104892093e4451ff3ecd0393c4f56d4f94efb16cdefaa58b073b517e7dd01adc04f5f9a69";
+  sha512.doc = "304bdf738ca94eb7c5ae708ecf0400cce1af9c09f05056b3718bc0ea5352e1d06a2a1cc3c037c8569bb26d33268e14ab660e627da0d9df075af1b36f6bf718bf";
+  sha512.source = "771062f0f60be1c0d3a300ce74ca9ca00a56b6042e3980da47590116c08f39c8b4f0bdb756e41654481615fa1896f53963abd0c322817c57cb78247505abde9b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.2a";
+  version = "2.3";
 };
 mathlig = {
   revision = 54244;
@@ -28376,12 +28994,12 @@ mcexam = {
   version = "0.5";
 };
 mcf2graph = {
-  revision = 65666;
+  revision = 69281;
   stripPrefix = 0;
-  sha512.run = "35567c70e718f97974419280f8e68e4226203f1100e450896198ca7cdc8e6b006a1b428f44c2379bfafeb8fcd884845b1dd7c2e54b2a3f9317af054ed7902b06";
-  sha512.doc = "1b8a718afe98fd358cf4fd74acd7e2a1bedd8852adb80efca97e3dac598a5fb6deaa977ba19c137ba086ecef9a50af1408d7bd16924c8137f76909cabc1efb7b";
+  sha512.run = "b399097f1b7805603d156a450530ad33cca0d8ce28c2a977db584b2a0b2722bab87d6122a7ce27fc7066e24f4c24a5e832d66e1e90abfc88dfc388b6b4ad8f38";
+  sha512.doc = "8169812299146fa937a323bb573201c04ff6a42e1b090bb87fe24d213fbf8b1f21f0ecf40ecae157b26e15f56c00fddad9e09c9ec2e7fd901f92341214615488";
   license = [ "mit" ];
-  version = "4.92";
+  version = "5.10";
 };
 mcite = {
   revision = 18173;
@@ -28523,14 +29141,14 @@ memexsupp = {
   version = "0.1";
 };
 memoir = {
-  revision = 65040;
+  revision = 68004;
   stripPrefix = 0;
-  sha512.run = "925a0aa087b4cbe6e0f3815a067a65bc551bd4a1adcc19ade2e4293c3d7e9d6957684feb5140aab1d6f93c7a815a68f3256f86764fe4e57b4428f02df88d6ac1";
-  sha512.doc = "5b80fe697420ebceaf793e80aaa3e8779c8408ae3b0aacd63552e6d23ba8f8b132e670821efd1c2244f3a8792899f59e8b85941ad5b9981780cbe4a6d17942a3";
-  sha512.source = "7b2eefb8c2d148acf89e2e63bb055550f39ac9eb9aa8d99b803b2aac58756d6e11c0cdc9e30e3bdf8246ce1790cbf5da63223c99cb8f94f1ac8dbf3f91d7bcae";
+  sha512.run = "b55265c3beb272c274514931d18107d5ff50691cf442df5e21ce229c8ba88f44a5a3e56cf85ff9d89d2df705878367a31739ab0da3a9bf486b9e5a54e6cfab15";
+  sha512.doc = "4660576ef6f6ba7cda1b3d7591fd6ea768d94861b15965107e80b9231070e6581b0428a4bf11956ec07d3ccd55a3cdd6ddd5630a72e082aec4fc896576833a48";
+  sha512.source = "d817a6ec1253a686d1dc77c529565fac3ed1134932290ced8615d82f8505f29bc11ea352781268c4a729fd4aff2f744708890cf264f68c8828a2f2c6e034fe78";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.7.19";
+  version = "3.8.1";
 };
 memoirchapterstyles = {
   revision = 59766;
@@ -28540,6 +29158,25 @@ memoirchapterstyles = {
   license = [ "lppl13c" ];
   version = "1.7e";
 };
+memoize = {
+  revision = 69285;
+  sha512.run = "1464aad053b69b821e1c99c72a6e448a231a554c1f04d31550fe29401698705fca9c97149435655269d3128885601d4917c7954be2990905360cde1de73db477";
+  sha512.doc = "d210344a90649cdd67b118aca5096db266fede551b7170de088eec4a40b765b9a66b890824092329f76969ebab71dfe6faa3a55ba46bd8b5af9d092cf4fb4aa1";
+  hasManpages = true;
+  sha512.source = "68ac9d4a8af74c5d4922da8d8f2c89518bf855d8d578d0df1d9fd798f242c0a339a0e76d10b913a178c0c4195ffbd2e1aab7d3927ba4ea6133fb5e45ce4f9eef";
+  hasRunfiles = true;
+  scriptExts = [
+    "py"
+  ];
+  license = [ "lppl13c" ];
+  version = "1.1.0";
+};
+memoize.binfiles = [
+  "memoize-clean.pl"
+  "memoize-clean.py"
+  "memoize-extract.pl"
+  "memoize-extract.py"
+];
 memory = {
   revision = 30452;
   stripPrefix = 0;
@@ -28634,17 +29271,17 @@ merriweather = {
   license = [ "ofl" "lppl13c" ];
 };
 messagepassing = {
-  revision = 63116;
+  revision = 69123;
   stripPrefix = 0;
-  sha512.run = "31586e42be48650fd7b7057a4cdb54b7f6851c35e450cfb436dbf12d23617821c5c6e2f66a8abf2e181521c55d64fb9ad93cb195cf0d01559d6405ccc34af26d";
-  sha512.doc = "ac1b2ce7ca296eec4768d191547af66e3233d3ed34e68e746e870a894757df1de82b3bed6ed510fd0dbc8e5e9194e2ee024860112408b8e6b29e2bf230209a57";
-  sha512.source = "7931c0b26a779915f94531bb0b3af6fb31b35cc2401e3dc539b673e15bcc21131d88102b3b6f77d8a27d70eabc897a6fbf99dcffe8adc02f6a82673c0c29a69a";
+  sha512.run = "8a2243bb9b788a4dbb1caf14368fdd4df3919d9d407b65f2d4f49af16a341a030bd9114f86078623760dc3ee5db060060c58c6f675f4e8bdbc3c1c7c9b7a1d3e";
+  sha512.doc = "c26c14eccc615a306b8ebe1a5c80a09249d5ba8668a34e2f7141b034df70634a277ad94078f2f50e51e53c514340571f9cb766232c3e2dc0ef5dc28336ec4e4d";
+  sha512.source = "6ed92b15d4f17613ba540069b4d5f4bae5b7ce2850594377ecebeed76b92c61f672da8f95628d46db87dc9b44ef7dc9c8561736bcc9500d1951f523dd43d7378";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0";
+  version = "1.2";
 };
 metafont = {
-  revision = 62387;
+  revision = 66186;
   deps = [
     "kpathsea"
     "modes"
@@ -28657,8 +29294,8 @@ metafont = {
       fmttriggers = [ "modes" ];
     }
   ];
-  sha512.run = "4e287680b7b14497133165a45ed668dd326e587a305475d90f4b545aa1973a0e6001fef2e3a9afa5fd2f343497d109f4670fcc0f4c0263b20624dbbad1f21bd3";
-  sha512.doc = "07e574fce34949b71ea0b156c394db80bdd9c9a3018afbdadf786fa431674b6fd0c2f79e8f9a72c872b17b2dbedb755c0ce3def552740a99e63d65e28fc3d2b0";
+  sha512.run = "2ba715c32631b3ce24aba65e7e1df90a7beabc52b855f5e81cd383f94399e439a344f8a8a21f38648d34d546ca8f1890a74922836557cae5cd05ac945013d71e";
+  sha512.doc = "48b1def32bfba5ab1123712fe41d69f979e33a77456801c21f030de8a39b37fcae179db44a517d7b194d7e6e6eb93d770e179ca49db9014cd433c86ef91b07d0";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "knuth" ];
@@ -28696,14 +29333,14 @@ metalogo = {
   version = "0.12";
 };
 metalogox = {
-  revision = 65448;
+  revision = 69401;
   stripPrefix = 0;
-  sha512.run = "14de5e149673db96124b7c3542ccfa253a193e6ea00320665ca6cd024fb055d9bc5e6de770f63d5f7123a85ecb604eaa76e6637f7450b08ce4835fa7a097bb6b";
-  sha512.doc = "0ade0e0562ec5deb0e30e442c3909c27a18a78a9bf6fbe21589cd4d8a615be0c59f27bcab76f6cec6d897c26522c2e5442a9684eeebcfd5ec45a790ba8011165";
-  sha512.source = "6b4de632d4ee28b93f92c270da26badb00eacc425761a3a0a3ee0c296af44f0d152f04f2ed5521729725e1a223d20943a4a7a2d73e1c03e31fe316b5ddfefc11";
+  sha512.run = "4b91892cccf068c85d774b9d545c07c004a7c6badf89114b5d8cc5818090fb7fa87b3dfd6a7d1162c22939f633bdfb318a670092f70540910d257ccfb6a39a09";
+  sha512.doc = "6da27bf652e239ac7d307a0e5bfd01183ddacdfad38fe1b97d4cf6c084daf9bc43f54cda651b92a5c6693c16f9f6c2a61f821f64c5d1362f8db3f6a808ae722d";
+  sha512.source = "1887d1004349bd5b586f7d02bba1e2668e6d0534317e59c12915af847d478dd5022f5dc91f952032582feea48c0e01034dbf34c949ea08c699056e0c5d500fc0";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.01";
+  version = "1.02";
 };
 metanorma = {
   revision = 55010;
@@ -28733,12 +29370,12 @@ metaplot = {
   version = "0.91";
 };
 metapost = {
-  revision = 62387;
+  revision = 66815;
   deps = [
     "kpathsea"
   ];
-  sha512.run = "d807a22bd0f3358d1986a477834c19b2fce636e4ea96f52f745220a165726505849ac4a1048bd4be49cf9e42e098a55df2a4c9b4d267dddbe2fb093ba3029d6d";
-  sha512.doc = "384730c3f784bb026bb29ee69dc95d179c53636c405e1a037477269e9a3a95d8c296729d7bb54037ca4a76e5ef00eff4876c4538203e400db8c4f0850c48b259";
+  sha512.run = "fb50b9d45a36cbe11d07fe2d0a1307bf257132e195825a2007894d5accb33ae1d10e0ca6d6a27405e79d3c439fca4dc1df00f21814eb530ac3707ca516bb9a0a";
+  sha512.doc = "6b10e2a6183e6c7b9515ebfa0186b13d48bd87fb25cb69b010ac82b885fbb1f88f31340f7161e34f61cfa7478d50ebad6e82eddb14d8c746ef1bd4c480fe4b58";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "lgpl2" ];
@@ -28830,6 +29467,16 @@ metrix = {
   license = [ "lppl13c" ];
   version = "1.5";
 };
+metsymb = {
+  revision = 68175;
+  stripPrefix = 0;
+  sha512.run = "02864640550428b4869f0682d5571f463d21089f85e4e03336890cd7d37d08b9ec89b9bdc7b09b0f3ff5ea8bd612acfc2974655439fdcc5b617846d5f3d1c2a4";
+  sha512.doc = "a3afc302c345de9e00f89f6e0781d4763d4ca5461f498e2cedcd0ee0494483db9cf7cd0ceb68823e7b1806caebc85a22751d5d4ce3b8041968036c8b2514e5d7";
+  sha512.source = "29ccd5eb8915077ca09b568c7fd1924d61243266dc2fdfebba00691bb35a0dd908f2311caee865a044a78a9e485f78a4b91065c8d17f08b13420bdcf1b64a05f";
+  hasRunfiles = true;
+  license = [ "bsd3" ];
+  version = "1.2.0";
+};
 mex = {
   revision = 58661;
   deps = [
@@ -28988,9 +29635,9 @@ mftinc = {
   version = "1.0a";
 };
 mfware = {
-  revision = 62387;
-  sha512.run = "4ed72f1fdd64298b0ae67af00c3ba64bc6ee0a4851ab09c674adf5824972ef183d2913f5bda7d0756be403cbb14817e67913274e350bed81201fbf7af5b2ec97";
-  sha512.doc = "a4715a988208eb7ae2b252fa9e6d9e7dcd55cf86cd66d55d42d13cfe9acbfea8dee03ce0312944ed5075f7b6a48aaa25a7134831b7798c60af13cfc648955951";
+  revision = 66186;
+  sha512.run = "f14b1f8876f8a4f2ba8954459c2a3739e0537d800fc1fde11aaaaa61400c18b9419edd3c7884ecac499da3efbd5219244c06ccab1efe17674b5458b464abd3ea";
+  sha512.doc = "ec469dc655be20598ae40cdccd8360252cb216039cfcdfaab5f45d0276fee272a463f19db7f98f6d35b3e6930098536fe8eb4a453161646aa0ed33dd3f8773db";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "publicDomain" ];
@@ -29059,11 +29706,11 @@ miama = {
   version = "1.1";
 };
 microtype = {
-  revision = 66590;
+  revision = 66587;
   stripPrefix = 0;
-  sha512.run = "2190b285430f6bd8d69dda7098938cb55cc797014d6db63796109a6f3782a6eee16bcee06e8e9e40888803fc963d2f978e750d6c24dc4c10e938a1a0a43fc449";
-  sha512.doc = "375e41bd0e78ff145996e08f9d3470cd730aa81aa9c8fdfbbf78ab230401a17ad423d11bea35a4fbc7cb8d09eab81d75c57681c72ffe8894b14fe69763fdb8d2";
-  sha512.source = "b126076793ffa4aa6e935a623937709180b24d6b42843107bb42f56caee3ef525dbf8d714561f521bae8809809e180f8428f6782162962d0e2bf0246c787488e";
+  sha512.run = "c80e6bb2c13432ecae2be22622e3bbfe82342ca138f61870cb8f3c2d7ec93f431bee5ae0a9619d4ad6a842b0752ecb73131452d6ac5c5fba7732ad4d5c979fa6";
+  sha512.doc = "6f7eb5d18fc2864c0bff52f7af82b3284766cef64d2ba8f4aa9f2f6d26af3e47e3be9d486f29e646e92ca597cc1129dacb5d1c03dbe155503ae046e4badbecf7";
+  sha512.source = "77d5f0e22a97ac0291e891df206618460a2672fc36c79a91db2b5212092d65acb0e1cbe0ecf82e0a31704baef207a48f817b5fa65abc4d6e6c031acdd85ed602";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "3.1a";
@@ -29113,13 +29760,13 @@ milog = {
   version = "1.0";
 };
 milsymb = {
-  revision = 54361;
+  revision = 66697;
   stripPrefix = 0;
-  sha512.run = "51dbdca0783519a3f7cd5ce78cd3c8e0b36c79d24781015a71e1c26a3d9a98e549f50d6d8c6044be0fd32642a3cf91e4a80009dc237b6eb5dcb1c4ac055d0732";
-  sha512.doc = "cad4940b3bd462401ddd31b7125924e4b25b02d46dc360e7e4f3f027ec9bd905ea7c1a1cbb26f7a40a247aaa45e0b685d8fb4aa4caf01fed6d0a0c9c1c032471";
+  sha512.run = "fdd01cd6a9a5b27ceb741ba689a82f1e695132d78b59c818fcf2e3ce63526109173b978246b1b556e355237ce456b6f632effd555c27b3096ecc1cd5f5bd22ed";
+  sha512.doc = "7baa8152b3968047e66990eeeb94b601a0667a7db598a4403930328f6fa18595c46979772b8b496dd7b076e99e19969d22c8a3f4f19d3b82f01bd84bfa920db7";
   hasRunfiles = true;
   license = [ "cc-by-sa-40" ];
-  version = "1.02";
+  version = "1.03";
 };
 mindflow = {
   revision = 65236;
@@ -29161,13 +29808,13 @@ minifp = {
   version = "0.96";
 };
 minim = {
-  revision = 66396;
+  revision = 69352;
   stripPrefix = 0;
-  sha512.run = "7d32f1c11023c9ed7d45e5364fab3a104e689343d67687a232dc8d74b3a1cb4da38fc794debb463b6c2136a6cd125077b22c624f3f1de5118cf6159fede98080";
-  sha512.doc = "368f8950497e3ee5509a977c3958d1d1ecb29bb4f6250a0d723714b2524616ab57c1005359ed418850ad5fec3507afed0454a44e22e4776b085e36ab054c9ba5";
+  sha512.run = "ec7106c1cba50c73a9b2384fea848fb76a07f8a693ca0affd10cf7b9710e871cecdf2001be45453f76f572dcaa869b613b0ee07d7cf2ac2e38cfa662171904aa";
+  sha512.doc = "fbab9a3a46b1a569f48de82e8311d0775829750341bbca8d747de135a71c808d930149c86560fac29f5713cad2f11fcffaeedf15083439ac25ffc1fd2e78126a";
   hasRunfiles = true;
   license = [ "free" ];
-  version = "2023-1.2";
+  version = "2024-1.4";
 };
 minim-hatching = {
   revision = 62395;
@@ -29179,49 +29826,49 @@ minim-hatching = {
   version = "2022-1.1";
 };
 minim-math = {
-  revision = 66396;
+  revision = 69352;
   stripPrefix = 0;
-  sha512.run = "e3591e9a4009c0e30df7c413b67b62af4360e02dc4ebd1cc88f962a636fe48777bec5da664717c60ff3466250545ec98ac59af4760813e824e1f2247a11504fd";
-  sha512.doc = "dda1e6c916ec4d239a3d3eb8ac026b693f8fc023181a441848b7dfe187cf38300ad5ad8ff28ecb510a3ff0b8015bd632744f5be9d72d78241a0696e11af2f07b";
+  sha512.run = "b733b6fb53b450bcb4afd2265f65e64b6087d08d385a746ea78720efedc4d1aa14bf6fba21fcfdbef7a331d1c657674caace33f9a213d34d0b56604a4d0067ff";
+  sha512.doc = "d3754968215fdee2a31db13934c22a06998f93a11b80ba46e30231176e1583a8df86dcc8ed91b582a8b6f1427d9bf121f0f43cf297edb3e4a79250b9d703cb76";
   hasRunfiles = true;
   license = [ "free" ];
-  version = "2023-1.2";
+  version = "2024-1.4";
 };
 minim-mp = {
-  revision = 66396;
+  revision = 69352;
   stripPrefix = 0;
-  sha512.run = "4281f14c632bbc9e628291473818a05c68bee90bec08e43d04de2379f4813588112aa96c1fa39a8aa75c84459c5a2d7b1eac68d0f629c7b55628cbed6c682b1d";
-  sha512.doc = "2cf551a6c59c9ed36b9ca4b22a057efeff5adaaf0b162d83c51ea043cd0ceda02cdf5e5becc526904ce897376679e863e8f66a80221ee860e97733ec39bea4a5";
+  sha512.run = "117b829b8c037674b896f88d224795bcb4fbc0871dfaccd2dc56d9167549e88a1dc8e3808ddf773efd392a924569b3cd5fe3ab9468ba068dae76ca632a99ef88";
+  sha512.doc = "977a6f61e9e149caed9a61f7595cd3b488e0d536cfc7d00d4c4ad5a6b4f2bce003fda88309cee6a13d9f1781bcc7035fb3fee04bd2adedf9fb31f0572680f9b9";
   hasRunfiles = true;
   license = [ "free" ];
-  version = "2023-1.2";
+  version = "2024-1.4";
 };
 minim-pdf = {
-  revision = 66396;
+  revision = 69352;
   stripPrefix = 0;
-  sha512.run = "8406724dff3fe85dd8dd982ef20063582ca883f4571953e99511e1fea5db7930e7e3012052a0c3201e37c31be2282d7977d3ae38d8a6c71c6391f71605cd25c4";
-  sha512.doc = "e733e10099d2e040a571e0ae9fecb35d56661984403f7fadbd6ea0ef1e000d742a45e9eda96ca913d416c5c0e400e3d0fa723301fcdf9ce17d8ce9e95fb51ad5";
+  sha512.run = "959a7e6faef8a4f22c0a8822e73178430721d0aef57fb9c5f5e5bd588e8bd5588eec31a3ea1b0d4a851afcd0ae393cb4917f976e5698b1614cc407428a9c9998";
+  sha512.doc = "1768a50f0cbe45a980579042021670533932da3b832d2cb619638311ac7866a3d39cfc9dca862c842464be47799eb98835584e86c8b04f820247481ad86ab5ee";
   hasRunfiles = true;
   license = [ "free" ];
-  version = "2023-1.2";
+  version = "2024-1.4";
 };
 minim-xmp = {
-  revision = 66396;
+  revision = 69352;
   stripPrefix = 0;
-  sha512.run = "bc70e2e2fd329896e48954d6035f93a0b8ec029487372313fd8d3517cbddf21135f329489bd179cd68c97bcf4a4eb8fc9be5ef4a95b8644df8ec7dc09784b44d";
-  sha512.doc = "2eb847e45880e23d4412fdbbb8908510ff2f72dbba6cb37b5448dad57c078560e3deebc775b0e8dfef6114f179ad81875ddeec8dd02f59a938ae478f439061d6";
+  sha512.run = "4df50df08721b8c6cbc2314a36f08776766164c57fffa387d4804afae2fc1f35deb386f2c01e81da8a18b535c7103b7e07ffc51b37d4c621d8c5ac5248f4d960";
+  sha512.doc = "a6c524225e0e9c5ffe620950474ea7f0f16780d555e354a14885d81066228d350a14399a78cda455677fd116e752f3637e73ff3e9aa342ff4036363805d736cf";
   hasRunfiles = true;
   license = [ "free" ];
-  version = "2023-1.2";
+  version = "2024-1.3";
 };
 minimalist = {
-  revision = 66447;
+  revision = 68552;
   stripPrefix = 0;
   deps = [
     "projlib"
   ];
-  sha512.run = "421b6bcf329e94900e278e4db931d96744bc843b6b0088369753a9e34800162d28560fb293004aedb4f1e4af703b63540f1d84cf9999a6fd6a3fe2ba1e9bc15d";
-  sha512.doc = "77d097fbf3e0dcd4c078dde948e60d7a6fe10040fb4b2cd0ba6190ed4b7f971d509dcc29ee55d4d13aa493f9d9f0a53667430235790830301b7cebaaf0ccefb3";
+  sha512.run = "ea2e03654429ff56c274ecd4af620ad97734a2bdeb4dd63f13834a3d01f1d2c86b55d46005bb3181bf5305d5705a34aaf4c84cb7fdd46d90e27939912e3bacc7";
+  sha512.doc = "57f20e5e8fe46c61f181b52ac87c55d2e6e3b928308b347167e7973ee1068a7cf1cc6b8db048ec6ba5f983d1c8b0aaf4ecd405749938607e812ab7c11580fcf8";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -29262,12 +29909,11 @@ minorrevision = {
   version = "1.1";
 };
 minted = {
-  revision = 65252;
+  revision = 69163;
   stripPrefix = 0;
   deps = [
     "catchfile"
     "etoolbox"
-    "fancyvrb"
     "float"
     "framed"
     "fvextra"
@@ -29275,18 +29921,18 @@ minted = {
     "ifplatform"
     "kvoptions"
     "lineno"
+    "newfloat"
     "pdftexcmds"
     "tools"
-    "upquote"
     "xcolor"
     "xstring"
   ];
-  sha512.run = "faf543c7f48371cca2a4af7d1e4e1e9b16c13673908417ec982d773dac561ab9e467f79bed230f5c0e359fc82c5cfff1f83e18cb6261279943d1e5a2f117ea2f";
-  sha512.doc = "41640837e53d5b9cdce55a8f29707fe4f654da19813efbc1770df39b8f00aabdf600032dd504a8cebe23b4ef91e226014a94e031c52d0458f0684c5a53bd276a";
-  sha512.source = "384af78dba5447f7169804597afba5b42f8860cabe691e2490d90248ed798880d11471e8cad7ede8a4b1dbaf7b9684dea05ae54719c7637b8f5b6d953fd0ba98";
+  sha512.run = "d9bf72028b4aeb2febd7e2ee8f44297f047b5eab76fca8265a56dbcde4d921946bce15af5a89bc110b8ba25d234925172822e045670cd9795f13e38cd0e90f18";
+  sha512.doc = "6ddf64e40d3d28ca2bedd8a8a9789f1839c63a96f5aee3f71155722876f8ddf0634c2022ae4c02e1e9336a76dc8477994654d20e9d5949f2054017fcd09a9146";
+  sha512.source = "2cab20988a7fae52fdeacfca9e0f30fb1d471ea1a93f7f76c6812f9c6d15e5c4949aac1a904341be30387ea1030c67100cb696a861b114bdf8b7d348c9d1a808";
   hasRunfiles = true;
-  license = [ "lppl13c" ];
-  version = "2.7";
+  license = [ "lppl13c" "bsd3" ];
+  version = "2.9";
 };
 mintspirit = {
   revision = 64461;
@@ -29307,14 +29953,14 @@ minutes = {
   version = "1.8f";
 };
 mismath = {
-  revision = 66400;
+  revision = 69169;
   stripPrefix = 0;
-  sha512.run = "0f6ffc40645b440526eb5376cb1933dc174d0605b18fbcb97d73160d927d4fcdc69777a88ac306a313f0f89246b37db4a830bff13c52d48ceceb06a6f160bea6";
-  sha512.doc = "3d258a890bca6cab25f8014e743ffe304a4570cdc3cee7b64ee0f3ae34c991d71466a5e9a61d8c9506cc45f43863aa44014ccab6ddd772bf3f2c5aa5ab17cf27";
-  sha512.source = "df100ef82fa338df877721e2a5e91da5159b16f46020c4c74e375183052c44f4a971c91850c4c8d022a4681cdb27c90a198c11bff18baf32da5b394356843f95";
+  sha512.run = "0c85c7301c3409a56b99163c0269810daf36894c261c0eb62a78d333760e10375f0daade5e06090b3571d424b4b504f4ce14b61063a6518e5aa8f355aaa559ac";
+  sha512.doc = "e5693af9be3fe8496b213ff988c851388e1b7f28942ad1734d527c70f905d82d2110f55f3da9425af2a15584196bd83888021b4e6817c6b7717adda5a47ea545";
+  sha512.source = "b2bfb0bc801dd99a54366f71f28971019717d351a3020de5afca1eb4c2ae7f0e6825d343735a860db460f3c345970992eb19491ab486a66aaebe26f9cba9633e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.7";
+  version = "2.9";
 };
 missaali = {
   revision = 61719;
@@ -29325,6 +29971,15 @@ missaali = {
   license = [ "ofl" "lppl13c" ];
   version = "2.0";
 };
+mitthesis = {
+  revision = 68732;
+  stripPrefix = 0;
+  sha512.run = "7f7fb74329217ceaba1cb55e8dc6d52216327991f397b01b7603d8a797ad214bb0f62c51e237a14e388ba5110d558716436218a511647336115b9653c61fa801";
+  sha512.doc = "315fe938373d4fca5cb740067855cf38b52c00b49926baf2a61613ed5353bb81e4b156bc43ee3c67dd8414d5cb9f9fc1b36a215d67b04e57ce4ad4967456a021";
+  hasRunfiles = true;
+  license = [ "mit" ];
+  version = "1.11";
+};
 mkgrkindex = {
   revision = 26313;
   sha512.run = "bbb0b306f30b4fe898f5d5bfdcb1eaa4d2d88a95cfa1ea0da51957aad1de028928562c930180f6c0a7d66b5cdfd804d52afbd229e7ca43173477a229cefff192";
@@ -29378,15 +30033,24 @@ mla-paper = {
   license = [ "lppl13c" ];
 };
 mlacls = {
-  revision = 60508;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "44bb40283c118c638c3cd1b6b7595b6922225ff99dbce4b35c5579377c983c860e275bb7ddd76ce666d1907f59ec6e3dde78491764d4712addd3e5441b4832ec";
-  sha512.doc = "926a815427e1f66fc67357e962a7ccef39de82b082e045041b8c44d9ea444005b176ae7251b39763e03ebfc7babff0313f4b3f450e76cea5c4e21efc2171be96";
-  sha512.source = "884fc51a22c9e3fc996516c49e250bb08b4d5f5f7c19ff6830b45640d62578d3328b4d5179f750eec2d8086eebe96284d7347f223778674e9250625c36d1dc6a";
+  sha512.run = "7d0ccccd52f39b97f5448674dd961dd230b93799f71871bab7d5cce5b77e60788029795436765b6678b4b9e89f9f370ace2a43c99a9c185c216335e7ddaaf5b3";
+  sha512.doc = "c4ed81865684aaa5d15679ce667d41604a2f9d7431b06a258ec2d8f5f0f22aeacea5f944e39faca856cc84139b730d33f407147deb07f7ac5da70fb82341153f";
+  sha512.source = "c8a602a2ab7dbe1c0ecef7a1d4288eea10b0d8e5bfc15319d31c2f417a6ea2190576c986088b8da8aaff317ffaa0f0f41d0025e8e16a02503f2d96a91835382d";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.0";
 };
+mlawriter = {
+  revision = 67558;
+  stripPrefix = 0;
+  sha512.run = "67e9de777a464cf7ecdff6c821ff31d73f31f5f69cc5e6800d740ed6df296b5fc3a584b34e60be025f91b96a609e392198b67d386b60fd24deefb11746ecd439";
+  sha512.doc = "7d05bea21e44c771cf86e94b03ff2960419fa99e44adb1e7cc9a2398eb0647d0a177ffb9e2b8bbc74775946e2b438c51b8dacdea916311c967a02c34dfd1a2fe";
+  hasRunfiles = true;
+  license = [ "cc0" ];
+  version = "1.1.0";
+};
 mleftright = {
   revision = 53021;
   stripPrefix = 0;
@@ -29494,13 +30158,13 @@ mnotes = {
   version = "0.9";
 };
 mnras = {
-  revision = 55729;
+  revision = 68878;
   stripPrefix = 0;
-  sha512.run = "dc964c48272c36f81e1370ac3df6fb3b4e873294f69a565ba240a7c61a5f78fa6b493beae8e78c1ed469c4f34c325af3e53739f1aab5a68e9af356fe6945fdbc";
-  sha512.doc = "5a6f55ad7e0cdf270856a5efdb6891e2da00d813b2a4279e323dca188d3b3ee43f89ed3fc44452583d45ad83b7c63cf2470371c7975aa068d2595740d31163cb";
+  sha512.run = "cb8e7cdcef07bead94509ab42af1e3d6a966b7266b75473f5a6107d2fe7f3f4c2f732c9544072def55d923883b5ad495a166cb128bf67e10211919be9f4fdda3";
+  sha512.doc = "be0eaacc684772a599ef62a782d73b41e0e9963cc9ab0624805cac56af8b8f8dc529405588c687a018ffe888b643902ddfbd0f833cb7cb67a3053bd5c34e373e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.1";
+  version = "3.2";
 };
 mnsymbol = {
   revision = 18651;
@@ -29513,10 +30177,10 @@ mnsymbol = {
   version = "1.4";
 };
 modeles-factures-belges-assocs = {
-  revision = 50010;
+  revision = 67840;
   stripPrefix = 0;
-  sha512.run = "870cd893fbb3bd36d9af8a35487fb47f9afeee75c6093fe3fe9167c4db4f0365499e0fd87b4b3debb0212076d1248902014fa374df3fca79108965bf0c3bb07b";
-  sha512.doc = "f879904a96322990beafd7e444040b11fb9d69e93d73df5e5a159d70fd8e033d9a137e1bb4c54e4bbc4f8e5b04151336bed77aab0b46fcbeb531b346855df920";
+  sha512.run = "0b0e546eef6640b70dbb07bbe6401983fd0547357dad47a854b4c87119727d79f5ef54789394ebd5923474d2ad95e59a55d9340cf84811b5f2d5a94e406e8c7f";
+  sha512.doc = "0bee390919ce8ce6082c2373f639db7de1029d0830d4cf9f1c807ef044e0ba27c8f0e4dd37677df63c03b64ad00b27825cd703973776377f844324846a908edd";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.0.1";
@@ -29562,13 +30226,13 @@ moderntimeline = {
   version = "0.11";
 };
 modes = {
-  revision = 61719;
+  revision = 69113;
   stripPrefix = 0;
-  sha512.run = "86931543910145093d3141fd40512ef6c1a99901a757d178d8ba592761c25638383f9511f4937af657c414642341c05ad6278d871e5d397117e03cf86706a9ac";
-  sha512.doc = "4ba301dce255d22c23cd732e6c1b1e887a96918d594a06f8386563b0ca46fce015c0cdf17aecb2fb13211360a7db24843ec99664b048a53ed0ac76a1a4188c76";
+  sha512.run = "71e00fa0f1c3cdf01a6d49567df15b5a9119005ea63a2411680afdd0b423fe0f66a13f01579a379883969cbaee5535a4d338a9659196d4c95404b2cccc321cee";
+  sha512.doc = "32135a28343fdf1de2ff2cc25ae78920729c34f777ae6b147ff85f80953eb7610bad5e1a8919d6d873ad45fcc9b51cc9152e9e2fc566d47a57f7df4e6f63f5b6";
   hasRunfiles = true;
   license = [ "publicDomain" ];
-  version = "4.2";
+  version = "4.3";
 };
 modiagram = {
   revision = 56886;
@@ -29718,11 +30382,11 @@ moreverb = {
   version = "2.3a";
 };
 morewrites = {
-  revision = 49531;
+  revision = 69306;
   stripPrefix = 0;
-  sha512.run = "fb1f515fa834c422f628464467411a51c8c9a99f353ab297ca0ac0b63d65a7f2e05ec3e6a649fa35260a6bedb91dedda594654e83e94a28baa62764a38d9ca8c";
-  sha512.doc = "9f4bad59ec0f024d24956481d2f70baa56748c9deb000979490c001cd671dd07fc3712eca1917713775d6b879169050786b22a76e2ce1d8d57a99cd76487d167";
-  sha512.source = "21a6606687ac53e218408cc5790c1b93c9db3cef7b1f17fbfe574ee2f1a1c48e5c21a00d7b4f44f6fc1b98bd77af032be97c1cf48571bc439ee20fa6367d3bf1";
+  sha512.run = "9618e04c51865b275ab262d0e95806a7fbbffb4f6063b87644f3111760c591be6b3f8684fe72b5fdf0ea3dd6e034f88d5fef0f9c378e31bf44617727a76b98d5";
+  sha512.doc = "389828d2a8fdbd9f9b5f20f3c71654f4d23e9d23e5af8d98904b35bb8d8d939f4641bf74d43e3035ff73310f0324f21a47d56cf6065af1d04d96f34418ba1157";
+  sha512.source = "2794f2571cc3158f92453a229d088f24002ba893758f521da13b1229c67de24573752c07f03a894605704dfa19a73791903055582fc1729814a350c09b0735fa";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -29735,6 +30399,15 @@ morisawa = {
   hasRunfiles = true;
   license = [ "bsd3" ];
 };
+movement-arrows = {
+  revision = 67270;
+  stripPrefix = 0;
+  sha512.run = "42adce39a6f06212f5d6c3c235ad79772064d8b0588e3f79b34ba7f3a8530e08857e5a1612051ce6c58e419b0ea4f1a6012b19d8e37ae20ccb1a20c11f9894d8";
+  sha512.doc = "d1f1856297ccfbcd42d05524d633857ce548fe5b5c5fc84d76239a2cd62989015ea62f2fdcb509e918e47cc176002fc5467c7d721942f674eb4cb405dbec1be7";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "2.0";
+};
 movie15 = {
   revision = 26473;
   stripPrefix = 0;
@@ -29779,6 +30452,15 @@ mpattern = {
   hasRunfiles = true;
   license = [ "publicDomain" ];
 };
+mpchess = {
+  revision = 67704;
+  stripPrefix = 0;
+  sha512.run = "b65838b9b3177b069a2e8e4141fdb9ae68ac1dc9378c9fe7534fd23556d93ace29ba1ed9deaeb53fd54d709b77ecd98d9d0fc79dfc8e77b8eec899d4a332bc3f";
+  sha512.doc = "c859e9f5df0d24bd1eb59dfd39dc97cd1ba6e713b33e37d17128388928071e2da8f41180da333fea34ee6215585208de193a381205fd866142f341e1856485d2";
+  hasRunfiles = true;
+  license = [ "lppl13c" "gpl2Plus" ];
+  version = "0.7";
+};
 mpcolornames = {
   revision = 23252;
   stripPrefix = 0;
@@ -29826,8 +30508,9 @@ mpostinl = {
   version = "1.5";
 };
 mptopdf = {
-  revision = 65471;
+  revision = 69363;
   deps = [
+    "pdftex"
     "plain"
   ];
   formats = [
@@ -29838,8 +30521,8 @@ mptopdf = {
       fmttriggers = [ "plain" ];
     }
   ];
-  sha512.run = "1d488a0254f5fc2197d3e8e66de4b0c38abefd477cedac511098612e7200ba90f9d81715273e5e24b731638b91d69ec4b86f0ef1b65ebbd115e9d09c6f2772ab";
-  sha512.doc = "ad89851e9f944f18ce1226d6c753a14aad0abe9012b4fc97d5328005e2f758a351db1ddd5ea590694396cab8852b6f77adc5ac77bf1de5277ab224d9470e513e";
+  sha512.run = "680851a49d124cf0e2ff0c7626dbb5c5e48358ab08c94906cfe019fa2066dd3b47c763c7985a101d44ef6a6bfab3b3f72c88bbc1ad0eca0258b8f6467ffc0ede";
+  sha512.doc = "46b4dbe5a903601078da34238dc449ad932dbc44fdbb6df33b53554fbbe8d47307ba99e971ab197e468a8689d731f989c02097ca2b8ab07c575ec05e2866e81a";
   hasManpages = true;
   hasRunfiles = true;
 };
@@ -29847,13 +30530,13 @@ mptopdf.binfiles = [
   "mptopdf"
 ];
 mptrees = {
-  revision = 60929;
+  revision = 66952;
   stripPrefix = 0;
-  sha512.run = "8eb172f4051125fbe7d812520455e3a37888508754abe8abd539e84a1105575c32c2dbc850dc562a2dfab34811614e527cfa089c9de738b6ac7211f923c61929";
-  sha512.doc = "2e7c3837ce93b67bd1604451792cc54842bec27b3ebb6c56b2a9b9d702c3fa999ecb3a2836076c39adb30dabf833a507974e9dfaf19c9166bbcd3428487cf0a8";
+  sha512.run = "a3579aac7bff11c77416bf19447a429a3f56695bfc105f1218ae8f7d531adf0333ed73ff1fe93bab8af2ef590d6157ffa3c363bc306d3e81eb0d78766aa7871a";
+  sha512.doc = "cbf0e2660c7e98697d2441ae8a40d69e9855ad1eeb1acb3b6e140557caae3d0f09619aa24a0c0f5b2c44e133cc7595ebdd6e7ee4e8809f92ecd759f0a12fdcaa";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "21.11";
+  version = "23.04";
 };
 ms = {
   revision = 57473;
@@ -29865,10 +30548,10 @@ ms = {
   license = [ "lppl13c" ];
 };
 msc = {
-  revision = 63291;
+  revision = 67718;
   stripPrefix = 0;
-  sha512.run = "7693c105f3a896e842796c0119fbcc692a1d495f394de5e2cbb9df7164b4735723504980e1ca53b76aa152a2b779c06f535542143512882f411eea40814a9d5d";
-  sha512.doc = "9f8b33812702f2d9307e7f1a20c091f05da4c03220abbe8d15f3e2a3ad9871fd0806fe45f29557a71953da3c57a3f0a08d21e93570a99542b9d3ea605398e63b";
+  sha512.run = "103ff1fd368f97920f5403691ccb5fafb34c6a291db5d76a83d56f64d1ec452386cb844dfea7462fcec573d86b05fb183034ae8968d7127f4bf425aebac1f087";
+  sha512.doc = "e336c0969d2f39c06baab3f7573109e11f76acf47767f0653996ea772bc5fc4ac801154c5fa0df2eeaf999699aa0d61c1e7d223b44248fba72dccc8bc1b86663";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "2.00";
@@ -29892,13 +30575,13 @@ mslapa = {
   license = [ "free" ];
 };
 msu-thesis = {
-  revision = 65462;
+  revision = 68480;
   stripPrefix = 0;
-  sha512.run = "918bfbcc2bec35581fc50bdd6e7ef10e5b8fd3f47d9eec896b5a0d18aaf5a953da0e46b20d0d19e03fd2a979a950e34f6956af85b19db2a6de74d1f9d91575d4";
-  sha512.doc = "a58f8c2103da08dbd04ee8310ae349d88fbe86a7126a0dc6bdcf44d2c91c7bb2aa453ea3830d737fb21c99de888453d83e24ba108a8f0fc17f2ec5aaede1d7ea";
+  sha512.run = "a25f539ee6eb50450a603b25d6639918118a8882df16fdbe71dee49f09045480b80514994079f291120d6f3132753a90cfe3a7eb5e366a6c8b15b6674735fa85";
+  sha512.doc = "da32f1f22664d0bf05561a4d99977b942c95167a2e325928fc05714bf59a9f8aaec302f278685d0fae90b8511d246a156936101f6a12fe76a31d7aaef5dd762b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "4.0b";
+  version = "4.1h";
 };
 mtgreek = {
   revision = 17967;
@@ -29931,14 +30614,14 @@ mugsthesis = {
   version = "1.1";
 };
 muling = {
-  revision = 61719;
+  revision = 66741;
   stripPrefix = 0;
-  sha512.run = "2f6521255e8e0ac777130f0e108ccacb5a81f74264e6d7b830514e292f9733ec47dac9e3a618143fd9dee224ca60ebcf85a74d4c14104cb21e65d2b4d4c59908";
-  sha512.doc = "8ef724f07c630e1fe6511d0b8846f4729084fab1ece44489b0fa4cb40dc506cb2f666bc84b9a020103bfb98206d3c3f44ac78203a86d160f1b4e7f55e2f2f77d";
-  sha512.source = "9aa6c144a54359d48e9eb7f0425e88f7e790ecb2c6342ee86b92d43608b3ee595f1f2b17c3e2ec66f2f19e921004ba5068c8fa45fef598c0cda51336d608f89b";
+  sha512.run = "5a955e229ffe00e276c4ee4590473ba9d137d668c63294735ecefb031f2a01b310723dd2a5cf37b4c9613793df39146d08c01e2109ca37fe1d9136903cd6aaa2";
+  sha512.doc = "9eea5504062340098751c51d99433f91e95bfe74b93f584e08d3c6d1ae516f6d8a18e8495d10a90a4c5f751f44854758a3a8779d56ae158397f35419218aa01d";
+  sha512.source = "fd0a41543e4d20ece031b9d2143a6f4196010141dac7c3525d7dfdea17e93ce1c6602e78c00d4d310a9ceadce2d9042140b8b53deaa95d665b3fc043042505ad";
   hasRunfiles = true;
-  license = [ "lppl13c" ];
-  version = "0.3";
+  license = [ "gpl3Plus" "fdl13Only" ];
+  version = "0.5";
 };
 multenum = {
   revision = 21775;
@@ -30114,10 +30797,10 @@ musical = {
   version = "3.1";
 };
 musicography = {
-  revision = 66119;
+  revision = 68220;
   stripPrefix = 0;
-  sha512.run = "16a582cb9c03444e7acac7bbe851d2e070b8d474cbfbd71a2cc79a9cc937311100b341e39f0b1cd99fe983e88cab002c78e265e8150fb0434f98c326b76ed7b4";
-  sha512.doc = "e3ef9d669eafbe00b62931062b32617ea22070c5738fd31e24e3378c1e1ed6e76cf8497ef5384ffc1b8d8eb42b005abc21e6b3d8f9a12943936631654b551151";
+  sha512.run = "310c10402a269d7bf44a811b841be8a8058ef8eefdfa4440fa64ac27983fe1212134e4a616b3979ffa4f63c8ee86a7ccc5568d49c195dc1683b326a501cd83fe";
+  sha512.doc = "52dc06ba9b0394c0ea66fc02094174b45733002a3a492784b1e67670614caf57a162d5ab74cd51bbe6d884fbf0f04458d6eeafa2faf637ccfde4fbbfa435cb7f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -30140,17 +30823,17 @@ musixguit = {
   version = "1.2.2";
 };
 musixtex = {
-  revision = 65519;
-  sha512.run = "85ff6dae443655c320990517debd59c2d3b3cf79ae795fd27836704af1ead716da34521e254a201ee8cad90ba0b5d1c559157567adf3e7142aa5446e91af0147";
-  sha512.doc = "cae619ff0b16f557537ce3d28fd8df938d9297aeb37ed47713934e3a6ee41e4d8007e4e798b03221df6e958db93e2a765b9854576381eaacc924433e4efaa362";
+  revision = 68484;
+  sha512.run = "37701c422b8994231a3ca707c3d8eedbdffd4df89e6258f93c6f9778bd2b37d1c0ee9e94c75f81c5d5fe015b085cc3eff35fee6ec96a5fe28577403802b54373";
+  sha512.doc = "211c386eb30cdaaf24264cde5eb0e07e23a2ad66335d783e64ca08c58e3f04b9cdd954713d3426252e74f63f38399afa42571d44d9f95734d54004b14548104c";
   hasManpages = true;
-  sha512.source = "e81c23471fa26ef887aa5e16eefd562c5f133619557e734c7b36de2dcb9b1746c04263e7f3c300ccd90e85cdbfb4146496448a31909403631510645d28e39608";
+  sha512.source = "f5997350c5131164aac7fd785181e22a6e9912762b455cf04fe4371e67faee9ffa25969171bacef14684b6066053c2d8bab5f5d6b467966855614a6af13e8dc8";
   hasRunfiles = true;
   scriptExts = [
     "lua"
   ];
   license = [ "gpl2Plus" ];
-  version = "1.36";
+  version = "1.37";
 };
 musixtex-fonts = {
   revision = 65517;
@@ -30310,19 +30993,19 @@ nag = {
   version = "0.7";
 };
 naive-ebnf = {
-  revision = 66029;
+  revision = 67892;
   stripPrefix = 0;
   deps = [
     "filecontentsdef"
     "l3kernel"
     "pgfopts"
   ];
-  sha512.run = "cfa82893728524f15e26758cfd25b42cce7499ad48fb5362899cbcd8717e57e3f8a18d680d5f4493b66e9de910b3c16b251ba23a11401b83da03f88a8d15940b";
-  sha512.doc = "42abbbe4b5746b2ad4ad3b49ea6bfaa35741702735078d48759e8da95ed207318fbe5d1e12fec46b0d6b934c63b43a094a733f34e70dd27405937da9b0f96b9d";
-  sha512.source = "fa1601c7f9a79371b757342cb8bbca14f29de401f3944e3c7d393cd120413bc2fa38296220d5cb56cf6f63797dc4f8374b2c5396df33b6503bf801e17be423b0";
+  sha512.run = "52780f4292abba6d621638637f8c3d11a3a39d4e26c3e7a10e077f4369624ed0f1fead7aa781d9d0017b000618bf08ade1bddb78e9d773c3abd9c6124ba00068";
+  sha512.doc = "f2abf68012f902440e17235fd49c55c4776d79c3e7db46d18e203b47160a427545201170c6644a18d33874a90c6770d83fae576da68befde87da17606ed577e6";
+  sha512.source = "a149e3c6ca7f22ed9b9d7a03c0d5bb941af809b6145967bfbc63ff96aec966eeb5e657cc0bc099c7727af6c2ebffaeb6f45474104c2c7c1462295ea115ad0d87";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.0.5";
+  version = "0.0.15";
 };
 nameauth = {
   revision = 65738;
@@ -30562,13 +31245,13 @@ newcommand = {
   version = "2.0";
 };
 newcomputermodern = {
-  revision = 66338;
+  revision = 69379;
   stripPrefix = 0;
-  sha512.run = "e5e31361c266052bf765ee41371b548f6c85a857e0cd10f2cac2ea00e90c1e47da745f3dd2efdaa8614dbc4e09b65e4b174e82141eb27385c166ee67d1e52aab";
-  sha512.doc = "065b5d4344015754875b31b55b3ed2b1c6c891a38a5db40390a2136af390285d0b422c9843959501d7e1c68b9d76ae21792ebba11edebee4c2b69b2cc209c5b6";
+  sha512.run = "140226a635763be7a407910980664b38323dc3634980452fe9eb4395194e7bdc0144715f13d79b9f108630aebd393073135328c98fa34310e3b8d4150e2a5fea";
+  sha512.doc = "dd8cc0f43cd3a1d19a6666ce39d0d4024f8ce1ea8c51c0809878f8b886b286558d78f91cfe962b7cfa0e83c8abdde5912c4913c9c67be5d2b5ae81c274803fde";
   hasRunfiles = true;
   license = [ "gfl" ];
-  version = "4.4";
+  version = "5.1";
 };
 newenviron = {
   revision = 29331;
@@ -30590,14 +31273,14 @@ newfile = {
   version = "1.0c";
 };
 newfloat = {
-  revision = 52906;
+  revision = 68434;
   stripPrefix = 0;
-  sha512.run = "2cd4d1e5097bd6b9abd25621fe64590e67f8933a5292f83277dd546cb949c6193af04e16a72e61c3023293f6471ed41e9b46c23dd4c6c19428c7875cf0279aa8";
-  sha512.doc = "4a9b942a072ac5da1e92f6ecd63ff16cda41195403794c8a111140d4d6af43947875828d497f7824bdcfd41ca03ece22469ed5e0fbec0cdd84c56471678cd469";
-  sha512.source = "311c22bfb91719a8358f5feb89f3ada35de942703009cb47d5489b2800f9eb149a285cd6ac99186f94cf8d82ec6b9f582dc9922cde9afe515c10e483044f0d98";
+  sha512.run = "6b7ec618044ee10c16722460fccf4e3b71092ed5fc902b0aff431c7407d50e97bc27a2e9bf4c561df50da7d605a3a1ea95c20f47727111e7077e338f0c0e483e";
+  sha512.doc = "e3faedb4cdb78304c738a4437fa503f7870c81c13eb82652ebf5a5ccb2befa1180683a5704b16891715c60445eac214cf8e6fb01f1d9675954d45e1a7535d659";
+  sha512.source = "150ef59ef64c4378dda85cf5472947575bf78ede8c080ebc9f2ad37ef8928c1d59c50c5772cf48683330bce60ce633e2295493c7bd65b658e3538628cbbbfd37";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1l";
+  version = "1.2";
 };
 newlfm = {
   revision = 15878;
@@ -30610,23 +31293,24 @@ newlfm = {
   version = "9.4";
 };
 newpax = {
-  revision = 64415;
+  revision = 68762;
   stripPrefix = 0;
-  sha512.run = "0a7cd4311e9e77517e320d1ce1d3a8747e1f13a00a0fe98c72dd394047d56fe7cac81bb4a5562ff057d9052dae85201e8d783e21a3d55425580ec713e303ece9";
-  sha512.doc = "1f0148baddf2d0c65456cfd5b1c8204f23574b7a3bc8d394f68cc63e0b397dd8517466f90a5fa5dbf3079c787a6955df44a52b330b67153a771b05543dc34d92";
-  sha512.source = "2469863c13b6b2db2d8f03929d52b7d92527e8194e91a90234ab10c588ecc0926155ac65ee297859fdc2cc96022ee4d34da675e2fa094181f77c0edf33830029";
+  sha512.run = "88888718c7ddd02cd3fa3286ee63d7d527d836f0df15250d9ddde12be475275bd7517f4a0562f30d738d4a007d61c4a417a7f03c8fb628b3fc981e7a6f643ba0";
+  sha512.doc = "7edcf5fc73e0b28d92b8f11f42e47bec9a6b2327cc23a146fcc65143a30aba16d839579d94de7001b5937fcb241e977d9933e44fd5947da06907dbe4c327e70c";
+  sha512.source = "00ebef49ba9b5bd4ddc4c6889d0d9479fe8d1921f94170c51a2c5583f4d59f2bf533db3348e2b595758f377d4e6c504ec6b9c582c5fcc8c4468d782e68416bc9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.53";
+  version = "0.55";
 };
 newpx = {
-  revision = 61806;
+  revision = 69380;
   stripPrefix = 0;
-  sha512.run = "19a2ae1d832d48a082d3cc693914ff93475a3d4526347fa49dd35a7afa56c65f98ff54ca49f9f1674732922e36bc6e66d8b368e0bc924270af9b4ffe04347cfa";
-  sha512.doc = "ed38d727e5d8af16730df66860fbf2dc0701d9ef850fd2d77dbeaaebb38e826fd435f9a78e3771f7498c2fdce25efaf59909340e330da84ae831b880ee7393b3";
+  sha512.run = "46edf929749a4104f4fc141453930e4475a3ac298396ccf50250a6c4091ad58b19887883172cdcf5f5b67acb28f084529ef3c344ab3fff38ebfd53cb79334532";
+  sha512.doc = "39c54fe8bd66f529cdb89b1ef92bd6bb323d393d7e85307441d8f0310b2cfc2cc59d49c0b8560c8dee3da23af13240d619de1eb1c6525750caad3ec148fd7d40";
+  sha512.source = "bd679fa72822162ff3cdc14c67d8be7a3d91ad18e6222ec90dab7fa7878d8e593cc1f884ae3ccdab8bb52d437f351baf39afe30e320b4e2e998c51ee729cbde3";
   hasRunfiles = true;
-  license = [ "lppl13c" "ofl" ];
-  version = "1.505";
+  license = [ "lppl13c" "gfl" ];
+  version = "1.535";
 };
 newsletr = {
   revision = 15878;
@@ -30647,25 +31331,25 @@ newspaper = {
   version = "1.0";
 };
 newtx = {
-  revision = 62369;
+  revision = 69381;
   stripPrefix = 0;
   deps = [
     "kastrup"
   ];
-  sha512.run = "07c63e655ebb6381bb7eaa4f0f1a35054894ee6db55992cb8fadc04a2dc62470767a12661a8cc697c8d15df40861835463ff7a0bad449f9fb86b59093642b89c";
-  sha512.doc = "e615ce1c1a9478358af27885cd9c0b8d7ad152a3fb437ab705bf682d5849bd705a248de2d879ea9b4de0833984c15b0ad59c4da7da88c9e12d21fff9e4fd9efa";
+  sha512.run = "116c8192b67b93a6dcac6fd296141b5b5bba89b41c94cb15ee5644ef9c9b3647dfcb9703a002c9433b8badbbd117cad8fd0565090ae7ee097cb65d7e06b0ae60";
+  sha512.doc = "6ac40ed19b45a5a99fb854469605242cc1efa098563a9653bbebe994e79767b465d182f0bef6a03961756fa8670677deb033a8d6ad747e54cf04c62634fd0388";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.71";
+  version = "1.737";
 };
 newtxsf = {
-  revision = 59227;
+  revision = 67051;
   stripPrefix = 0;
-  sha512.run = "c7665696fe28a62a2dda826b706bcefb0d468b575232c1e04a69c58a843631e631098b4feb7b93fe8bf1c443e376fa8d8dcdb17346dd188d89b9fa525dcac33e";
-  sha512.doc = "98ca9aead749cf70e54acc6414d82d027160ba9d730747a38d0e55479dd4439d198cfd4093e22636e9eca58aaafba6818bb3d3583e41f4a46e0f44b1e10cc424";
+  sha512.run = "a85dbbbba3bcd0bb4732d327c5b70acd89ef59d6d22495cf4a4fadc3751af04f27b09dfc77613fa32ed3270417d31cc876e5d72b6868b9a7454302c961dc96f8";
+  sha512.doc = "d09946c13c3ae08339933fd965a1740eaa660413067878e44ed5bb8a249dd23c76acdfa01101a8ffa11eeae3f277a40394023c0d40142908498a1be0d95abbc6";
   hasRunfiles = true;
-  license = [ "ofl" ];
-  version = "1.054";
+  license = [ "ofl" "lppl13c" ];
+  version = "1.055";
 };
 newtxtt = {
   revision = 54512;
@@ -30743,22 +31427,22 @@ niceframe = {
   version = "1.1c";
 };
 niceframe-type1 = {
-  revision = 44671;
+  revision = 68091;
   stripPrefix = 0;
-  sha512.run = "c99757f9907622958267f042f0ee0aec8dc6317839fba05309116f9151e476e37f24dde00e6de59fb0204beb9383eae039c0fabb089d6349d6f6031e8df196f0";
-  sha512.doc = "5ab28cf7091ba993d7b4ac9f5caf2d563c60e63a3ce8975bae105f460e2dadbc963efd17b7ec5ddeeb8a35bea1b05a007590d3f6f9d5cf5dba0495e5b0ee8ad8";
+  sha512.run = "b43c19a164d9d6eeadd11072f07d29d00763863724a5b5168ef8640b2411fa4c02c4955e769b23a39e06db8d02d168ac7b2a987e1ab8a9dbe4c19063b8f4bbac";
+  sha512.doc = "9f30b52e177fd2fe5bb3ef1f23a16b29a80f049cf33d8ade3dbfb187663e4a8872a18bef0fec1531cabe610839ba21b118623db244b52ab16418a7ad4dfb3d67";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
 nicematrix = {
-  revision = 66465;
+  revision = 69275;
   stripPrefix = 0;
-  sha512.run = "a0dfc9243c15cf42af0b74d6a83f48e427d0f0897732857071b62e1f267d534cc5be434ca4f0cebd5fafdc0db4646e0c63fe01ab2f0944a0619f663d5a3f8bc2";
-  sha512.doc = "a2a78ef8fa041da42e049a7f0044e385c6df994655e47d9821331ceaa48e6737770c9745dde9da64a23fc5f70571e0c49b71db2882590155281a7e6d3fb6019a";
-  sha512.source = "8a0a945961d6691733e60255a431fc5e3aebc0c0ddb49f1b2d76c226ab719ced77c48c47ff3c93e3866aa0847beeaf98dce56453f6cee4c3eea087b9902f39d2";
+  sha512.run = "12bfe8ede8cb01f61a5437a3d91cfa225540699d67327ab40df051967f75e7af7ff34aaf6ed63c5067d7318c491581b39c41430f9d40d0f383f85090e2769c31";
+  sha512.doc = "71d57a75b4c5e58a3bf15879c4eed9b24bef9065b73e93d482ffff35160d06fd8d2ca723b0d9f784e572878a21efbbee34ef9277c94e283b7f69826aa5985128";
+  sha512.source = "7515731fd6794b3f154cc2937e8ca147a8f147fa2fcdba1bc15aab56dd436374eb405b6784fdfddd6183ec4264691c26fd0e4266365e96eefadf90893fedd3e8";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "6.16";
+  version = "6.26c";
 };
 nicetext = {
   revision = 38914;
@@ -30847,14 +31531,14 @@ njustthesis = {
   version = "0.0.1";
 };
 njuthesis = {
-  revision = 65546;
+  revision = 69051;
   stripPrefix = 0;
-  sha512.run = "169c4f42c03104b2edcb20abcfff38fa8160c3d5058149c43d9773d52375c0152d3d99271ad49f2aebe995fabe30238407463e76e7b1d399482bb43b600ff0e6";
-  sha512.doc = "c68890f2269c0e353cfec67cf822285b365875dccfac9664877ccde0c084860f6888f3657a7780ae775b564784f55c25e95e1deebd23f29f00df3eb2dc9d438e";
-  sha512.source = "ca35eddab7239b1cc1ec60ee42a497dcdbc68451eab8dfa83965bcd4cfdb223e84f0b47bffd560781e2115a0217c52b9ebfe746f1d3357857dc88f83aefb1d2f";
+  sha512.run = "da5a4d00161d7904d58d745df89dcb1270eab27c291866300fb5a7293db2a078777c9fd234a3972d75d5d6208acda160921a603b45d72f4c235dfa09f2421038";
+  sha512.doc = "12f094efb1a86dc3ced366f3f5a2cc7ef5042ed109e30c3d4130f7de9b514a437029eceae67786e7af1159c0ecee1ea1298efca7a02eb8d9c85253c0acdb43ac";
+  sha512.source = "078e7e50803f934601b30042b871cca6a0bee5d66fcc1275c227aca20cbf5e098bee5ef95b728a2d4b6fc0f7e5a27e0042b385c07d8b4e6f8df71ceec0c67f47";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1.2";
+  version = "1.3.2";
 };
 njuvisual = {
   revision = 65261;
@@ -30886,13 +31570,13 @@ nl-interval = {
   version = "1.0";
 };
 nlctdoc = {
-  revision = 64708;
+  revision = 68448;
   stripPrefix = 0;
-  sha512.run = "5bc67c3ce81a7a3dd49d0b54019c261f6ab874cd6aa68d135a4deb935417f724d57b6cec08bab3e2575876d3d74ce661fc5a23da61f2f82ab29bc6653754d514";
-  sha512.doc = "007b51b5d7d2edab1e773265ab41649f0ea22c259b607d53441991a79fd7c066746004dc95a8ef6bb8b2de9b7e5754dbb2fc96cb2a4dfccd213b6fa34e39ddca";
+  sha512.run = "ef7f443bab4a6608b506ff65bd885965c23607aa5a93a721a021e741eb85a757de021eec7b8b247c9b5a41cad3f3f06a90ce44c143bfbe6ab79ec253eba06264";
+  sha512.doc = "e887bbbc705456c084c26b1bd02677a185e7c7ac615b9711821233e6ee3a62de91c4cfdd3bbc353b0775b9fb99dc42e3447d7ef51492f4abf0c519ff1af42af6";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.08";
+  version = "1.10";
 };
 nmbib = {
   revision = 37984;
@@ -30934,14 +31618,14 @@ noconflict = {
   version = "1.0";
 };
 nodetree = {
-  revision = 65298;
+  revision = 68244;
   stripPrefix = 0;
-  sha512.run = "27e55a80726d0d2dc3767e59c520ef4dce465605abe8e2ed3062a6eac485e5db30945da9c5c5b3d2199c1df3bfa0faa6f92c8adae91c51b70512f8590b1594be";
-  sha512.doc = "6c4b80986f62d974cc0458679643fe2721d2db439ae0cb94b737546ddd558e2a5ba3746abac697519b326b5df28ab8d5af43fa0db49720feb3d07bfa6daf4878";
-  sha512.source = "311c88f5e5da3f3b0a539a8e2ddefb4b7442ab3f0d560eecd04353098c273bd24ce2852fd3dd232195fd48c3f3e7049ad66e40fe2b4c7c858b7bef1f64e90a1e";
+  sha512.run = "8c451fff46fda636b2b1284d8751e070bc47526d7dc94acceddd49e8eea3f951526c1680f330042e51f61752795b4c8ebaa490cd93a736747e1bc554126bf7f0";
+  sha512.doc = "3e69dd9f6ef63f3ca1ed8c071510a5b6946037d9ed76449fd14c16ce0892ca50031ec594f6bca7423d3669270b4e2821311a53b852f906ecbd22035dbf9c2858";
+  sha512.source = "ded67b13d69785d978a4662fc62cf0c76b63bb931b94ca2407b9b8021857cb1d6609b466ab9f552d11765f7b612386e9fdf0fec02e2a77a5cef459ecc4324b35";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.2.1";
+  version = "2.3.0";
 };
 noindentafter = {
   revision = 59195;
@@ -30992,6 +31676,14 @@ nomentbl = {
   license = [ "lppl13c" ];
   version = "0.4";
 };
+non-decimal-units = {
+  revision = 68504;
+  stripPrefix = 0;
+  sha512.run = "5ccc76f7aaca5aefe92e14a686a6847a1df8b00afd04fa96d11dff75951f729920f5564244ed06b74b67e2a81532111fc54adc719a59d6a9d1ac4d6fbeaae9d2";
+  sha512.doc = "e200b68474a0202d8018d943382bd76830f411b95373fd6e43715b343ed0214f08b529b1bec92a4b4fa4c8a1ff8accac8994ca7e342e7edcc5ead511b2769e21";
+  hasRunfiles = true;
+  license = [ "cc-by-sa-40" ];
+};
 nonfloat = {
   revision = 17598;
   stripPrefix = 0;
@@ -31041,14 +31733,23 @@ normalcolor = {
   version = "r11";
 };
 nostarch = {
-  revision = 15878;
+  revision = 67683;
   stripPrefix = 0;
-  sha512.run = "45992ab970abe997f3b01c9dae5e15303db81878b085f45fea4ba07209160ff0307550e9ecca9b67e0d01712831b6541def54382170d43db4dd547f2969f9fb9";
-  sha512.doc = "94efe6a2b41a47b559b4b7c9e04dda1f32d0c6f5da79b51d994fda1af58b4e1cc7e808f9465f7874be6b67231383c38543fb3e98706c32da32d73a4ae07da9fe";
-  sha512.source = "1d46d17f9f43981c89bffdc5e2167342e6168423068b4d02c180fa18fc4243ece749ebab18c5b47be0184e76034378a7ee6ea09aca3c782184f389c6639df38f";
+  sha512.run = "3646dcc196a2b0fc4389d8c7ddbce263126ec88f33749e7b290bdd5ef1800cc8142c35fd87635c7df2b0768c3be03a25bf4e3b84162119c859f278d70bfd4fa4";
+  sha512.doc = "279cacf2c378e30468748f3e92ae30d3085fa93bc38b43e7a2b423d06de056fbb2135f9aa5d243fadf504c60628b1048dbfa4f8c9e60fee2f844247f093bd7b4";
+  sha512.source = "1fde1f24f5d0f009025f1391b360ebb1e4eeda6fc571c6e41bfbd4620b7dfbe739e60b660fc034f3d2f0e1e5a101b1e8c5c8f187e5a3f38c9734f35dd6742bbc";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.3";
+  version = "2.4";
+};
+notebeamer = {
+  revision = 68871;
+  stripPrefix = 0;
+  sha512.run = "87870abd8c42303024df10a6339f6973e83e61fbbffd8851526683ad672810929b1e2f2fb2c9ade58a155b063fa39932122c6e21c652df1a4f7ad60f64c5ab7f";
+  sha512.doc = "d9b9bdeff61fac3e6bea8aea4611cd46cc08362cc104bb30e4a67638ddb9d45c91059606d016be559c4926b0450bbef3962eb75d6d6c1fc14f262ef3acac2510";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "2.3a";
 };
 notes = {
   revision = 42428;
@@ -31122,22 +31823,22 @@ notoccite = {
   license = [ "publicDomain" ];
 };
 notomath = {
-  revision = 58726;
+  revision = 68014;
   stripPrefix = 0;
-  sha512.run = "87ea63d518f58926be25b144f1a76442873e991207feca20d32d5615c2a52cbc9df9547c081d220603cfe26e4e02f565de60d510d63dcd8179b2249ae2f764a9";
-  sha512.doc = "fcbcf7df38116022d439d6eb3b98e7e8979d934011bff5d7241e2490e83f4ae19168a4aff1cf4aa887c7aee90ecd82980679d21e53fd8780f5aa13c3b2681857";
+  sha512.run = "908ef695e1eeeeee1bbff53956b1d890fc9327cf985602877abc26aa787bbb7a09c18d592c2f5b2d1840aa91e0c1c0b071b8af0d576c5110eba5f62cc1f3184e";
+  sha512.doc = "708eab7029720af202b7af3d45becbdcd8c8fe6def7327b70f3c67bdbbe6c17c53c1e42912f4dedde1f805f7d7009a75e7d8279f7e3a6faf091ca6990cd4f5ca";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
-  version = "1.02";
+  version = "1.03";
 };
 novel = {
-  revision = 65848;
+  revision = 68807;
   stripPrefix = 0;
-  sha512.run = "1b35a599c2328edcba93e37dbb30e19c3e2211688a5c3525cf7da350113955bc421cb33239679f08cf9ab55a4858fed68ef5ca2731de3cdb1fb4d32adb975ef8";
-  sha512.doc = "5ee87a76cb3de38b44c707799d3d72405b3602a98026e96664eb08bffc30641e45d9802355a91a6fc8a4bd8aa0319597d111efd9968094bdd3718472bbd3be28";
+  sha512.run = "2debc0cd636e6d0fce34f841e46e25fb3fade7e601a43d6ccddacbdb475079e5cb07e83efb47c941cdda243bfa89da2b9215971d9012850c4cf0c780f8b0db6c";
+  sha512.doc = "851436d9fe782e654da5bfc8ed7f55cb63c3dfb2911fd4b0a01e9ef1e6d92044b1c44c471d99046c28e35d68010120c2cbc2101b379a9cc0584e0f18cf7e1644";
   hasRunfiles = true;
   license = [ "lppl13c" "ofl" ];
-  version = "1.80";
+  version = "1.83";
 };
 nowidow = {
   revision = 24066;
@@ -31158,14 +31859,6 @@ nox = {
   license = [ "lppl13c" ];
   version = "1.0";
 };
-npp-for-context = {
-  revision = 51389;
-  stripPrefix = 0;
-  sha512.run = "6d5da8b6e2f2bb6b514d43e8b72157a81285b6c15cbe74891a94f21a09a313813ebcf9e3a0a12847875f13d5599436ada4e5febb694c0a480931dd62a23035c6";
-  sha512.doc = "b3bddb0b9254ef9755628097ccb24ccbe86c25d3cba7a120c5d55da98a19061b716df1590a39323f57a8a698c5aafb5ecbe8b27d6505f2ba4acdf1ccdbcf82cd";
-  license = [ "noinfo" ];
-  version = "0.98";
-};
 nrc = {
   revision = 29027;
   stripPrefix = 0;
@@ -31250,31 +31943,31 @@ numberpt = {
   version = "1.0";
 };
 numerica = {
-  revision = 61283;
+  revision = 68021;
   stripPrefix = 0;
-  sha512.run = "9fec18e27d78b81ced365ebbe20ea49aca99c4aadd7b21cc630cede843ef3c191824556ebdb9988c125603760a68e56b8f9b4d0f37d662178af29e9f8182c0a5";
-  sha512.doc = "76b65febc8b91f2e4c18dc1b93e3eeb33d70caccbab60f3d34b3eb36e253b4d2a1d97213220d40d662c1e53bee2f2845784793214724c65b4dc19af288b9f49c";
+  sha512.run = "56dea9cc66c348affa62820c78bd92b793f6ca18c4581bdec25e4579ebea16bef934e1243fb18f35bb3ac62e1499dcf441099932c05f016f5edc32fe85a564b7";
+  sha512.doc = "321c27897e1d1fd615cd8e1d122cc6c0271e5dbe72c7179ad2dcd0e06c6084bfb1e0a6a244b55cc41bbd8658f5ff9fbcc0962e950564a3fe3fbd7d179f0317f6";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.0.0";
+  version = "3.0.0";
 };
 numerica-plus = {
-  revision = 61289;
+  revision = 68019;
   stripPrefix = 0;
-  sha512.run = "821e5f200b50097f245802fe7fc272a609988e5c8cee98c07ec1bd562d79bea17b8688cb5886febbd596904498aecee5794845deb83ef25a36c60afcbe8026c8";
-  sha512.doc = "f680560ebe7777ccc0e9f04dd209eee90c478c3d5bae3b32f829ab889997c31d9c5f9efe3a57450304aafcebfff09edb02481a596315e7f233b47fe328c6f3c8";
+  sha512.run = "803e50eefdeedbfdf610f4084eb8574246a3f0c56e647a1105df410254fe7d965faadb397690aa8df08e488c5462af2404293f7deae6f8ae5810bb34488f29fb";
+  sha512.doc = "aa8be0b87a737a956c5f69b84a9760ed76de6d0c4a6c27bbdf0a08e9d3cafef977c4a0c22f7d2ec088c278e8333cf85e7d84a8054ce8a7fcacac6cb8a0e2a5e8";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.0.0";
+  version = "3.0.0";
 };
 numerica-tables = {
-  revision = 61288;
+  revision = 68193;
   stripPrefix = 0;
-  sha512.run = "d06b2e85dcba39b2dff338f02ead71149330a711570d4c14ea4c2ca1f6c95d1bd8465967cfdb0e57b0a4b2b8cafff4f56ff585a1b2b2272f225e44958cbd316b";
-  sha512.doc = "9585b95c14bfde30d5de6acf47c0f23328c1b986c075b6842f5a6878eb15761c59843806c649bd548faa90cc46ba93d7ecc021ca699f5eeb8644a3d314e5d737";
+  sha512.run = "1244ae95394a7e28ff9281d1eb4f81de88a7e83e7dc880ad6c185591b2aeb3fb826113f83881811e19385aad5dceecb79d99fcab53f6d313b63b31235228643a";
+  sha512.doc = "f926645cf5f512dc655e46f6fdeb54b5c12050d66e9408690e0980843a291d2056a51915a44f2fbef6564f85344eea46ecbbf1859d79443952e989e6b8ad5e07";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.0.0";
+  version = "3.1.0";
 };
 numericplots = {
   revision = 31729;
@@ -31330,14 +32023,14 @@ nunito = {
   version = "0.0.1";
 };
 nwafuthesis = {
-  revision = 63438;
+  revision = 66895;
   stripPrefix = 0;
-  sha512.run = "fb446200dd57be37bca4e526506124bcfe3c35c3af452cbe542bf3f5e7c56f3108d5482131641a9bb8b379c4aa713152fdc13ee9f1aedb6a97c545328c0f04a1";
-  sha512.doc = "009615c925755952d8a26a8d51f6d8d066b644a9168e241b339a137e56365bb17452016c8befe3fa3dbdccf6ae68daea3f29b99ae8d8c8e50e8028570620da2f";
-  sha512.source = "d2544ff7f20410b3f84459776d5f5b29c0b0b88e3cd9a1da6f3280f6e536996ca04c15cfb831c859b2c7a95d9bc8c93ca45b4a5fd3967d9c5b4d49969b9e7c06";
+  sha512.run = "f3bbd684f063f59ea0fc53df99ac0e84f3106651d6ce5cd48d58cbcc7cfc205a9330db5d4c7988a213563d6fb215a1c6d90c240396894ded1b7ccef0ea4253c8";
+  sha512.doc = "4a5395c215dd135488bec466dd4fb210402bdca2e54deb727264b02bd621bdf16ea60b4c16c86497b016f30f2dc5c291d0d432bbd99beea84d59533d29c2557d";
+  sha512.source = "d6188d94c3c35c2fc63efbbc37263a3f0c584974de022978671701e8e0d25d26b11e3dc92edb594ffadab231e754745b35498f09d9f95e00a114f09f790d103f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.15";
+  version = "1.25";
 };
 nwejm = {
   revision = 64462;
@@ -31350,7 +32043,7 @@ nwejm = {
   version = "1.0.5";
 };
 oberdiek = {
-  revision = 65521;
+  revision = 69038;
   stripPrefix = 0;
   deps = [
     "auxhook"
@@ -31361,9 +32054,9 @@ oberdiek = {
     "kvoptions"
     "pdftexcmds"
   ];
-  sha512.run = "a07473833a8eb833fa1b149ae6f913219c48ad9ecf9671196774d9b0ea7ac06ef110e3ca18a2a53d7a875ca803aff6e07cf435ef1e6d2020a353df97c0cb7046";
-  sha512.doc = "73a422dd8009d191a24790f5f68b9ae2a5046f3e42e3c360faabb3f7c7581afdf9bf2b20da8609e8d3513135ee1de98329cd4fb1713fce23c5a03fac28c976b9";
-  sha512.source = "ef0eeceef6d0f4d1cc804350fae483d464678397e9832e3bb17214dcff3f789bd930af2e9784bac89a53a39a107a76f88682a93a6323f4dfc18fdcbd1df98f8e";
+  sha512.run = "d8c75685ac77c9b8f3259952cead1d5d46dc7bc556044daeecccbe1229da7566c0a31dda776356a6bddd0b710b8e8e3e84612c3ea9e9691bb486e154d9e121be";
+  sha512.doc = "728d95ced0404da11e4dffbde075eb02803a09d5c89fc34b6ffe78e47c78837c105a85827adaf8974d2edc84ddf1e7eb0ff20846a2712d152011b2198bcbf18d";
+  sha512.source = "726481c21c3bda68ab4050c8dca78cfef2a9e7fdd6f8ee21540fc1dcd629383e21db06588cfd836915a58e4c8da7fa7762f4e65bb01da8d0ba94e874c1d04742";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -31447,10 +32140,10 @@ ocr-latex = {
   license = [ "gpl1Only" ];
 };
 octave = {
-  revision = 66119;
+  revision = 66115;
   stripPrefix = 0;
-  sha512.run = "bd2876b39a108a398c0b449f4cfe67e52709a4c51be6e9506244e82323735274a748d5e40e6c6f109143e64b0b260d1a2eed350d5ad6db0d09e9d53a307fe285";
-  sha512.doc = "9ba7181b2c8d21f6c478600f702de184ae0fdb7f624fd6501f57fcded9164ee57ab1fb653ee533bae55e552e0a56ff232e1606372cddf26f8f904b7d9e9fd190";
+  sha512.run = "03db52eae29898d00b407af64fbc8aca35cd5c6165c3f7c890dce1f8218df65c3df447801d8c68d29af67f62de3057feff203de7486f192d9e7e6a59d4f28e02";
+  sha512.doc = "13cf74923401dfd58978c2365e27aa394aecf01849543cb6f65a52b3344902c546599c350927950f63e3faf1b81667e9329b9c18aca6cbb87327046f0d695988";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -31465,13 +32158,13 @@ octavo = {
   version = "1.2";
 };
 odsfile = {
-  revision = 65268;
+  revision = 68204;
   stripPrefix = 0;
-  sha512.run = "a7c6acb170dc5ad3e592972685f20c425de4a3751749722c72c90b93a7db47321e0b55a0136f27954c43449c2d9bc55077bcc87f92a8c423b6f1592bbcf7e027";
-  sha512.doc = "660ee30c7f9a0987e39e6a02dd1be48af9c90853b99b4f50b5beb262b3995c5ea1c37da90ee61252a62b9292e6f42cf92a74b8d02ee594b500b70dcd5bb164aa";
+  sha512.run = "0c663510fd84f116cb2cf12c41a59faec219b774fddec215ade16b9299db1e445e46deb565c4b0acad18ad2b0ac3c5f54c9b8d7b2ea3fa3bfd43cf86716969dc";
+  sha512.doc = "e76be0163772f0bb905cfc4987dd2d1083decc706e521647217b7ecb09214c29bb1118867bbe8d20bd2aabb1648bbfb3ac12ba072c38ab7242d3b1a86df5f6ba";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.7";
+  version = "0.8";
 };
 ofs = {
   revision = 16991;
@@ -31517,13 +32210,13 @@ oldlatin = {
   version = "1.00";
 };
 oldstandard = {
-  revision = 64464;
+  revision = 69185;
   stripPrefix = 0;
-  sha512.run = "0ebe36c3284f888448a07bc3cdb14717e73ab41e808b9ef6451065fa0c7fc6827746362a6a5453265d4b5a1108fe27d95d41cc51e20eae4bd625087b14dbac41";
-  sha512.doc = "b685cc4cd397ec413b5ce8aaed4f0a9aa1b1f213a1d57747233a8914fd868fd1d7fa50a199379430ec214106b5ab35bc1c86ef9d53d4628e2810a412c98d99f0";
+  sha512.run = "4c82d222ba84192cd6ed43e368938f31c0d481400f7c643defed74c5c39d38400515a69d4a6c76ad14d41cf64ed263e14e78ed7431f53d8c64fd9dc1c20e7bf6";
+  sha512.doc = "c2e55b9f48d145e4a7f7e976ea9cf46d1d7563bf56624aa5fdb1fb78f54f8386dc4eb7520d981be239e77823f96336e8a753bb623d286a3eed24308c6f59e5d8";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" "gpl1Only" ];
-  version = "2.6";
+  version = "2.7a";
 };
 oldstyle = {
   revision = 15878;
@@ -31553,9 +32246,9 @@ omega = {
   license = [ "gpl1Only" ];
 };
 omegaware = {
-  revision = 62517;
-  sha512.run = "08c491924b039476930473310611a6d2c0b5af7d0f2253a28558081cca254e6aa080727dc90456b4a011732353ca027569d7b8d8ab3ecdfb011ccc9f80e9ba68";
-  sha512.doc = "6d8331109f114612d637234164e9d3d8ade9e23bba200c1ef8bbd585ff4c3e9d7f58df3ddd021990ab26a5024001fd94f7fdb3e1e329e4f91dac069fc1f6ba32";
+  revision = 66186;
+  sha512.run = "9978e66b66e988d49f3dea44b947585e5ec4fd61f204ee06a56a9d32df721c1bd66ab32a05c3d36ca92e740aaec2b478261f3eaf8c48c0cb30fbf9bbb410d804";
+  sha512.doc = "e3312826fc6f2bb7fb8f116f7d73f4f113e2b4fda8acdce29668ffc324bdc90f26dfe21becccea36e53f22707067c19116fa2942fb4165aed3d7c28da88992ce";
   hasManpages = true;
   license = [ "gpl1Only" ];
 };
@@ -31575,14 +32268,14 @@ omegaware.binfiles = [
   "wovf2ovp"
 ];
 onedown = {
-  revision = 59010;
+  revision = 69067;
   stripPrefix = 0;
-  sha512.run = "67110331d1df4b6f454ab23e6af1fa9904689e9a90f3a62652fd81db9fc990aeb527fdf7d4c5bb04064ddc93181f45334a06214c8acf9930497994e2ad0e8002";
-  sha512.doc = "06f00f302cb363411756ba0dd17d9a431aa4736bca2c61b2237b466e12a4fe8bd8cf9494ad5626766ca2112ce629aa8fb8409fc19c2ff3f83e4aee088390031c";
-  sha512.source = "d7b3eb5dd5192af22735acf5af450ad0d714dddd434d66bff3a40151953ae1098cf8c27dc620f167bed2c3fbba13f86f62724312161bc321b71fb4f14d605fc1";
+  sha512.run = "bc62aac04466286d07ffaf65b31c4d7ecdc6f4194f99192700774a213ca52861b0296c3f9864c187a83926696ad3a3a139ae7c00be2167b970159a7605fb4570";
+  sha512.doc = "4fedacde595f96c2bd8babf38d4aae73b3bd9f73572547ed5b93e98c16dec50e89651c42aa4d90046464c765aa2f4d5f32d8aeb6ec5de2bb30f6599e53314e81";
+  sha512.source = "aaa8de7cb8444749e1e7671406229d222c36b35f2bb676208c22ce8708a4e1cdc791ae99abad9b55fd877cf97573006c41c5aa2fabc573df589d059924f64626";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.6";
+  version = "1.7";
 };
 onlyamsmath = {
   revision = 42927;
@@ -31603,6 +32296,15 @@ onrannual = {
   license = [ "lppl13c" ];
   version = "1.1";
 };
+opbible = {
+  revision = 68465;
+  stripPrefix = 0;
+  sha512.run = "8a4fe7d1241a1f1f431a666f0d6fecaf330cccfe19c2047d2e244b06838310dd106d2ff8dcd029301cbdbb0f2627e46a4f4c37b9a81104eb695d62f78d835ccd";
+  sha512.doc = "691b79162654071d39ebfa448203bec2c7dfec8091e781f44d7a48d4c16b884459bbdc4230626999349c6822b17ac5f6f4aba1a8dbd6c7e2a1d6127132faa2e9";
+  hasRunfiles = true;
+  license = [ "gpl1Only" ];
+  version = "0.31";
+};
 opcit = {
   revision = 15878;
   stripPrefix = 0;
@@ -31614,10 +32316,10 @@ opcit = {
   version = "1.1";
 };
 opencolor = {
-  revision = 66372;
+  revision = 66363;
   stripPrefix = 0;
-  sha512.run = "dd2765b31c111fb3c254e372c2ec59b65ea578859ae9b51a0da2c69950436d170173c66ba7bd2c51ae00c4b6afdba8fc35f48639485610bd358bea30d5efd4f4";
-  sha512.doc = "fc563574c13ba82dc3e39d137da510037b568b755d67b7046121e342c47d90e4519301dcbe6e8e52e6188854cac432e54d3bd4adf04ce6f3c2ee142bd1dc073a";
+  sha512.run = "b6b9368a3167db0f71fdd4cf9c369f43be2934060b79bbb2b477d8a247456a7f69932bb92bf8bb8c1e1b5e7721383079947fc40e1a5d7bc6f84a2e3fe9e02646";
+  sha512.doc = "ff198447e40d71f447688b5fb28385d9fe34265e520496f7d77acf7947569dbd6cc7a98802bb353648dc50979c4be889cef1417f2d15f98bc3ebf95e4a843963";
   hasRunfiles = true;
   license = [ "mit" ];
   version = "1.0.1";
@@ -31650,7 +32352,7 @@ opteng = {
   version = "1.0";
 };
 optex = {
-  revision = 66516;
+  revision = 68873;
   deps = [
     "amsfonts"
     "cm"
@@ -31671,12 +32373,12 @@ optex = {
       fmttriggers = [ "amsfonts" "cm" "ec" "hyphen-base" "lm" "rsfs" "unicode-data" ];
     }
   ];
-  sha512.run = "6bf9c1fa24209cc10b624d630010c18225a7034e9f146f557b5ae7e522260094767a4e81c1b8b4d9b01a3acf560a4fd8991796b386e01483e6908b7357efaa6f";
-  sha512.doc = "31dc2e58e6aa17460f2cd26001fd94e0e11b0b9522a3d0c182ca9048909c0262d97f6fc25baa74af6ff82bda8798d9df49374bfba1787852186c5c7b8d2a3a68";
+  sha512.run = "65cc4c05b41cf41a1346bf567f4c14183f11d5a6c14ed6ff79e301ae54523eb8a90eea8f94173b9817ac45c14d5e0f5748be252db6a247a5627b129949f4604e";
+  sha512.doc = "38d20d669bf1d8ce18f50e1824550e5333ead4cf8773aa074e31fa331878cbb7bfed1cf7dcd29e598698dd5fc9855197cf5e2b970b2549c2b79c6d78eeebefe0";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "publicDomain" ];
-  version = "1.11";
+  version = "1.13";
 };
 optex.binfiles = [
   "optex"
@@ -31721,14 +32423,14 @@ options = {
   version = "1.0";
 };
 orcidlink = {
-  revision = 59560;
+  revision = 69253;
   stripPrefix = 0;
-  sha512.run = "ba51e034e90800c402b559fd636acc38a96f0913c552e506e26457d5c690299c7860bf9a1fc911eb2d4e734c90f775e814b8bac52a492ad7743a47f3e89efc5f";
-  sha512.doc = "c20f8e77d3c5866f414f0dcc47d84fa3328492a003a81be1ac3aa69f9ebc2bfff7198be5656192ba7bc4330ca7b773c6d319ec389bd0ad9821ebd6159b7d0b97";
-  sha512.source = "485492dfc8256d97fd747196bb142eb178283eee98aed5edea689543075fe0992e9c25fa522c9fadd48c9b631ffb31c8600c82be598678b03e78c4e5643b8cb2";
+  sha512.run = "fc1b4a63ce470c910737593ac877b58dec0e77de2a258fe7943b156a31c5f224389f5be5cecfc9d3098cac690a627cea41993d7c47b4510762b3e5c04f63db2a";
+  sha512.doc = "ddbea7f5c36f26e329c8e58c4d8ab3ba6aa2371a564505bf1a1a80a2f89dacfaeba706ac99940da6a742df262a25acce0f7b812817cc4db99793ad11e06cf6cc";
+  sha512.source = "93e268f12d314647f19ab92910eddcc68811e4db66a6c57bae504525469e24e3e30752cdfadb44d36ea866719765c76d89ac8011e0e50f4ce6f930c476c2e4c8";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0.4";
+  version = "1.0.5";
 };
 ordinalpt = {
   revision = 15878;
@@ -31766,6 +32468,16 @@ oscola = {
   license = [ "lppl13c" ];
   version = "1.7";
 };
+oststud = {
+  revision = 67217;
+  stripPrefix = 0;
+  sha512.run = "9ffd86c1fddc4667f6d02a9ad91ce0a3e562147dbb8453c474ad5595a77df8ae77a4defca5f6fdec2ea837e37ab23128be1b00d4ec15f20cb0bbc2e591fdf0e6";
+  sha512.doc = "700021abdba0ba3484a0f11600564ffd372bd998f889da1cfa26ff505395844b958468675eae6465af4010e417a56df45c2226d6543d1bb6f2331099e08d9ac6";
+  sha512.source = "5a35d201ffaa677d464e0dd8f2f5a474099505d341ead2e00970be39523199a2e3ddec73da19e7ec329a53cdedad495640dd1385fd6e5d005dca9a5027ee8f90";
+  hasRunfiles = true;
+  license = [ "cc-by-sa-40" ];
+  version = "0.4";
+};
 oswald = {
   revision = 60784;
   stripPrefix = 0;
@@ -31775,10 +32487,10 @@ oswald = {
   license = [ "ofl" "lppl13c" ];
 };
 ot-tableau = {
-  revision = 59318;
+  revision = 67813;
   stripPrefix = 0;
-  sha512.run = "0a9c219d69f6eec4d9fbf8937e0cdde60b34cf38ce154332147ccc172b0ce90932ee08c7a85a68d4e5163461352745a5c0abdc6b8bdc187be5fce5b121f45c75";
-  sha512.doc = "8345d881600cf9f4d73cd2a23d12ff32f11a4d3a66b61262b0eae7dd3bc9039e20b187a6a9e45e9b15729015fb76b0e4e3e76c011e47688df09f4a848e508c4c";
+  sha512.run = "57ee595a08f2a30174215056300ed4f8ca496976ef7d0f80627b32d45bff7af85e8a33d8d37decd61883ab3cc61f74ce411687c260d2a427c96014d3defe9758";
+  sha512.doc = "45bcff2db460c23e543434ec46b8a168498ccf1fc1ac977f72f3022ac7ec02a874eda98a3bb6814edd22d86915b354fac5105efd1bcdb8eb979837edcada699b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -31833,13 +32545,13 @@ outerhbox = {
   version = "1.2";
 };
 outilsgeomtikz = {
-  revision = 66465;
+  revision = 69124;
   stripPrefix = 0;
-  sha512.run = "b85975fa408dbb46dc8117fb21ab7362b2015f528a01a98a70297eb84420b717811f49f58270a6bc1fb87e744c30350332b3e1cd3284296addb0de8c3884b001";
-  sha512.doc = "39b97b238d339513a2644b2d2720d67cec5ae017b5020a9fcce50e4289fcbb7c4144a8a2d8509869e67869ee2fa3da89ad4927a576d110cfc4e71c14236278cc";
+  sha512.run = "ff64c7a149bd0d890896936c1f5c818cc6f9c34a50b6f0312134dd47819b45df36a769ddd5b4db903c441217062bbbd44da086fd0bfd863ba8bbbbf6f96a764b";
+  sha512.doc = "0cebb1b166aa5b6628eb9aa88788beec5da60d7b25b9d110465ed25b130bbba2636209e151a9633171bc016e0953b5f27780ffa02ca4bb2f0dadc902e998141e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1.1";
+  version = "0.1.5";
 };
 outline = {
   revision = 18360;
@@ -31905,14 +32617,14 @@ overlock = {
   license = [ "ofl" ];
 };
 overpic = {
-  revision = 53889;
+  revision = 69343;
   stripPrefix = 0;
-  sha512.run = "f6946c04fb1bd17f8708698671c17037688198996cbfac9b358169d1cfbaed9835b1b05b7779f3b4545c3b7de1d0ccd5148757b3cf125983ab0cdb8d895c5e69";
-  sha512.doc = "39a93d00bc5646095c1e104927655e61a6fc337ceca8c336cfd40c39a63c02b18a440ca4c9557537d3ddb991e0ba4aac9f9ea821c7cce3f447359fd9f0203dd3";
-  sha512.source = "9cc367d8b54a2c01d694602cfb8b0d0ff9e9d2117fd1e20a34ac80b9a1007f44b670eb17a55af7b073385ab4ec9511e76cca508ec108e22ec6f5891c0d32477e";
+  sha512.run = "6663af049c657a947c3894157eb21c38f8f240250894ee1c8e34e3ae7cfaec294670dcb053d36fbb7749c383b8e9645d25f583670401c7cacc232eb64996dcd1";
+  sha512.doc = "005e2aabb66cb7904544463274add08f9680a38cb608c9d8976e4c8cae114658278d2fb3dae55af989c21825dc9d71b4a28202eb68566ab462d1a4bda76ad54c";
+  sha512.source = "3d0e1d66a6ae6835eaa1e5342a448895d6cc6ca5b0f9a300113b2c43d276ec9e1785c41700895f4fcfa19d4fd3098e476dbdd320eccab3c2facc855a85f63870";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.3";
+  version = "2.1";
 };
 pacioli = {
   revision = 24947;
@@ -31943,14 +32655,14 @@ padcount = {
   version = "1.0";
 };
 pagecolor = {
-  revision = 65843;
+  revision = 66885;
   stripPrefix = 0;
-  sha512.run = "126ed61dfaed5f680d4055c6a19c4a1842f7b5d49e09e280f2dfa36886211881ea1b94197f20268aea6f0d4a3237366eb8b6eaf22e46934b59c4462ffbccc264";
-  sha512.doc = "963f381fb9968d613c5a1ef805342111c423dfbbb7700761085eada847aa526170342c7751e5f20d5784fdb4361b1e4631f875843dd7559fa435372a74987bf2";
-  sha512.source = "f693f0b418ecc9a7bd70e33f5ec497d4cf91cb5baa1f6aed92e11b94bd05185bad6c5362d1c3fb227aa7f533e7c69db082eab9ed7f59d49115e56400f11cf97f";
+  sha512.run = "7cd71dac6790eaf48afb107310961bbe37f04199b70316009f6e62c064c23f0bc7e4601765fdc03c98b1a39c35f9f53a7b83023e5f29ec0a273d7130b13802e2";
+  sha512.doc = "ff3cad39418f1a6a1b4e31788d79eb83d33cf7d04fcc8f5ad4703b60db1a581ab2de158f0b4d24d42c13fd2ddd6c85ad4eb3f9f4db09927ee2c97eb7d4e4a063";
+  sha512.source = "4fa8f8d617bf8cb1d8a2399ddc88ee37778f1a7de904385351fdad3c4267c1d27e8b6157a206ee0b434991da0a508c42afd71fcc4cea81477e44849c15f81384";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.2b";
+  version = "1.2c";
 };
 pagecont = {
   revision = 15878;
@@ -31973,13 +32685,13 @@ pagegrid = {
   version = "1.6";
 };
 pagelayout = {
-  revision = 66399;
-  sha512.run = "062652a39fb6aed7efcc700f4a47a94d2d7307be4c79a700ddbd7a40247eb3dfb0373611469a6e624f8d24e355dca539ad822d7b41d81cad6475ceaba06ab2c1";
-  sha512.doc = "4f2d2790ea9ac43457b07b510eb95d91c5f17b36cf65953ae4de4fd0f483fdf7dcfe9f76c4e186ba3d55fe48c396d220a5a6e05b3306444dc16ed0339ce70abe";
+  revision = 69188;
+  sha512.run = "0eeb34fae976625ba534e1f1a5165d56cc04a91827d8951e1c8cd125703bc35b455033522fabf2d62d024e4ff8242cf6301a513898907aa54f05ce43a684cd35";
+  sha512.doc = "efb086ad732d35c6415c4bba8770c658fd5486573c42f310c56d3de667f9bc3527297a348fdfac2593965ef6ba5e65f56f6e2c19b8163edd68d9ffb5f40a17e8";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0.4";
+  version = "1.0.5";
 };
 pagelayout.binfiles = [
   "pagelayoutapi"
@@ -32051,15 +32763,24 @@ palette = {
   version = "1.1.0";
 };
 pangram = {
-  revision = 66305;
+  revision = 66300;
   stripPrefix = 0;
-  sha512.run = "6416585df4c53b96d43098c5cd1b7652ebd671f0e23bdd0a3a35f4adabc74fdceb5612c9268072bcd825eb612d9b6e9d160b9fc20f66c56733b273ed72297fc7";
-  sha512.doc = "2f9e562cfd2acfc429216e481af0527665d244d011a548ded1c92d08d20fa8c42fa62020dccf67c5af3b3dc1f6ca79b5f856d5ee13afcc19935096dc0dec4d18";
-  sha512.source = "f4612d1f8f58dd8cff8143ce59f4976038d075b771860ea8b11210933862413f2f48977c02ca89f56e168ff64448cf414a0442fdd9c10a4507059eb2d8b94022";
+  sha512.run = "1a74fb3bb7d1a4c9dfdb594bcbfef7b716affa55bbc7010fed6937708f9ca0d9f644c2d56a557737b56c1b8386de90a4b4df699aa50631c1e94f1e4e3c9d3465";
+  sha512.doc = "eb031dfabc359fecf7316cfac1d799f8377b38d2e86922a52e2409214f9dc251d1ec5c5ea439ce2830ed21ac9a02925f442e0930f845b849b7ef662c30a70955";
+  sha512.source = "8d5a945567245da7bdf69db5cdaa72d693054828d948700210e8a71c3f1178e7c690c7fb912275cbb1b3700f812482aaac896875ebbfcc33d3b9531f37b6cf89";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.0c";
 };
+panneauxroute = {
+  revision = 67951;
+  stripPrefix = 0;
+  sha512.run = "d904edbcc40640e89e3399a5e00310174bc9317a1ac87da86ad15dfb2ec24757b21cc9ec1d9e562547b6637bc63fb1d58bc5373d4b84f4b53c0194c001a2ae59";
+  sha512.doc = "b0fc8b96588dbe692eebec332da0cd3fbea74090b566a9afddad30b6028d3592e95f729d7d8f6f198c14e2cbe63e821715ddd2678bd4a58865c5a159d8d8ce4b";
+  hasRunfiles = true;
+  license = [ "lppl13c" "cc-by-sa-30" ];
+  version = "0.1.0";
+};
 paper = {
   revision = 34521;
   stripPrefix = 0;
@@ -32080,14 +32801,14 @@ papercdcase = {
   license = [ "lppl13c" ];
 };
 papermas = {
-  revision = 23667;
+  revision = 66835;
   stripPrefix = 0;
-  sha512.run = "b5ef2975638a8eb48e7aa9fee72024eaf5695ee3133a35a4326461de03e04b750ac90e0874de232176435e0855807aaa074e6555f3368fee55fcaf61e6abb552";
-  sha512.doc = "2d0a43fd05efe6c96a7852f35c560b77b9461e005432f972a9896184831fb81f72946956f3aefd115ca0f5fbbf684ab615d50a7ab98a5e09a190b72a08e56793";
-  sha512.source = "2db3f6acb382f73ac6d220a4ec378026673ab16d54cb02a93926d30eeb8d5377d5329869cdfb3563915bb93253d64a3741a3498e197958e93929e8651f33cb02";
+  sha512.run = "a9c2fed35bcabf0e3feb98fede1f66f0c60dbe6a40b50c3818cf88821712ae4ef789fb5a080113f31cca4851767e4b607c623454f06a8dfbe1542bc3897dd7ea";
+  sha512.doc = "2837d42a830f3a4517b7a0bddd9271264643198be3b1d805e471a62c9c87df81944a088b448829c26e05868cbb5f6a12480a6faa9a8c5d3f56e0c52c38c8cb75";
+  sha512.source = "b64f9a1940169e858a51f94eb03ab1843398deeee001fd63bc97ca0a24d385d8f8d6b65a4195fcfe52fe76493c78506a7e68c1e32be1d669b16087a741122ee4";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0h";
+  version = "1.1a";
 };
 papertex = {
   revision = 19230;
@@ -32099,6 +32820,15 @@ papertex = {
   license = [ "lppl13c" ];
   version = "1.2b";
 };
+papiergurvan = {
+  revision = 68239;
+  stripPrefix = 0;
+  sha512.run = "0f79f739273caf08126817ac44fa0c02bef9fc2e2bdad32eee12d1e377bca14618b426bc71f4f9cf734a5e63c319ac019de2c7959d25a0e31f594aedf1ec6d98";
+  sha512.doc = "c9b4f46772ca50c8ca89d7d3d35719d8b2a7dd7ffc9d09a39569500047640404d1d3937ebbd4b3380a4e13cf56fc2f722d444f71afe464df332a69dfcc6049e0";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.0";
+};
 paracol = {
   revision = 49560;
   stripPrefix = 0;
@@ -32137,10 +32867,10 @@ parallel = {
   license = [ "lppl13c" ];
 };
 paratype = {
-  revision = 32859;
+  revision = 68624;
   stripPrefix = 0;
-  sha512.run = "f7c3089b516e40d9d5534a1d25ba104623f37c3d2b77b6545b07034114644025873c0317f4a0bd5b54c6471853f5e4c7847176b42a6bdae29a6efea555fd7ae7";
-  sha512.doc = "5d11fcd66eb57909bdc56416f53c060cd248731cea02bbeee232d10cbcd2e10753a66ad7347212337b6b110e94a82970f98b1486ce21a6ce61fffa50135a6b6f";
+  sha512.run = "b6f50e5c3063357e04e94a9454cc34b17e522c54effe14696d3d81e6de1f4732953b608c0c0d13965dde5c9c95e125d967afc888ecc9396001c1deb89e9b70ef";
+  sha512.doc = "ba91b90030c703dc35a77b9a51a23d90e5cd6f0a6490f74e151023248b05a6a0ea5bcf188e3c8e69611b9b7d5f72b4569538a9da02193ca737e94e744c83c107";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -32191,6 +32921,24 @@ parselines = {
   license = [ "lppl13c" ];
   version = "1.4";
 };
+parsimatn = {
+  revision = 69090;
+  stripPrefix = 0;
+  sha512.run = "73bb90c41be56b880b11114110a69cc206640ad97a2193a9557447ca8c901bba3485a971e31b6888b671b938a24d8bc880b532b5638a4a726fbe7978b1417bc7";
+  sha512.doc = "c2e6b53ae9e2c8c949ea843654eb9d1545907a539af43f0b6f1728d78f7b0fed3ed1f92b8650aef85c0cb34e9cc91ab9ab8e1e7e4c406f9a9bf0f02ade10c243";
+  hasRunfiles = true;
+  license = [ "ofl" ];
+  version = "2.1a";
+};
+parsinevis = {
+  revision = 68395;
+  stripPrefix = 0;
+  sha512.run = "bb783a5c4d45e32cf5298d5407b3fcc98d64cb0f5c66a5f45a564acd3fc90faa6006d5d649597fb293aff746cef1be3d1304a7ec223e1fa604f7eed4fd705746";
+  sha512.doc = "4509dd23bf7baeee99ced80e0b1d225dc2d616c992f44e5ed5fca7a75bd71dbb97081ca04b96477d26897f6481c929f469bc2483fb0483485406a90962ffd6a4";
+  hasRunfiles = true;
+  license = [ "ofl" ];
+  version = "2.1";
+};
 parskip = {
   revision = 58358;
   stripPrefix = 0;
@@ -32229,13 +32977,13 @@ pas-cv = {
   version = "2.01";
 };
 pas-tableur = {
-  revision = 39542;
+  revision = 66860;
   stripPrefix = 0;
-  sha512.run = "61fc474406d55ce0fa4b2edfb41f4ac9b2585e448c2b2b76452a29f2a03eec9ea1658cca2fec4fd0f1b8576919698a6d3ceeed650b773783af47685f33c969fa";
-  sha512.doc = "a498726006eb5b3c7352a776c47e215fedfa7005d529fbdf071946ec736818e6836591670c7342e84d2886718d2faeb44824256f2aca744bf97d157e00f71174";
+  sha512.run = "3457ffc6633ecd2eddccd0070a1ea5458d5126c1a42684991229c7eb8ec7e64db31fd809623b930cf4bb39c928cea2bd6ee2eb5ade840ba9ad36cc28b8d307b7";
+  sha512.doc = "495b121c5860a96603a060e925173a7d197d0d22e13ab26857de5f7453f061847620b44b95c6494dc8e1f8108e58d987cec5728507cda2b61e40173c1b6d6a95";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.01";
+  version = "2.05";
 };
 pascaltriangle = {
   revision = 61774;
@@ -32271,12 +33019,12 @@ patchcmd = {
   version = "1.05";
 };
 patgen = {
-  revision = 62387;
+  revision = 66186;
   deps = [
     "kpathsea"
   ];
-  sha512.run = "e4b04bdc28d75de619307567716d2c29b41286a82cdafd6eca45df36baf67588cee94c4c320abadee4e3103fac8b33ba9367114875e56f198665388fc93e341d";
-  sha512.doc = "dcf16fddb0085e8a8984047ff9e500c8b7fdd7d6b24b4f6154f464e05fe137b807c13d910881fda96e617cf80780ed1e75ccfe0fda2477b1d9b95990baf5f279";
+  sha512.run = "f37ecebfd74a30b2f4fcba5db893b31e7672f2d91d2be7f003bf625512dd54be056a23165ba8b1f5ed2165595405220df20dbd711e63a3be9901424aaf1fb0de";
+  sha512.doc = "c7bf5af0965cb675a82ee13c6ec467f88395438d07d59379f4850a36c783cfd6661d6fa6493e67bf39e78be615e3148cda9452003b5e9f5d5ceb1fbd305d4ee6";
   hasManpages = true;
   license = [ "publicDomain" ];
   version = "2.4";
@@ -32345,28 +33093,28 @@ pb-diagram = {
   version = "5.0";
 };
 pbalance = {
-  revision = 64002;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "15d9a54d38158e1c3b48dc9d420b081efd011fc282775e68e83f758be4c3d1c40efdcca57f4ab29a9d206b09457afec0ca7bb0580e4bd337e0814a04d814b423";
-  sha512.doc = "1e0f25b42dc5928269cbb2aa56ebb7b1bf4cc58ffac0c36db6bc8ada8c7cd09641a95b4daf5f248a9156cb3d95d3c3ef48a5410f1eef6437ce4878e0113c6aac";
-  sha512.source = "6489e6563c2f1265b841027b38720ccf55d2a9acd601e03a1173c2c6fe8de57bf1c7778239472d7265529a7c51bfe3f21c5dfd19f863b9b80ace3f6b68d211a1";
+  sha512.run = "3b9579669a9bf79892e433eb5ad7203254fa99615398e9ec58d1438d4b57fb94a5fc0dd14867b6ac18a874af3c4faa1d072a9009086b125a18ed21de144fd40c";
+  sha512.doc = "d02220c268923d141faa2a4249d50c8fc9f119e1703475f1ba979903a79df79b6ce48b70e113c0193a9b953f935446486e7d926ff52ac1eaf5f2c193638f9a87";
+  sha512.source = "141d99a8fcb9ba830c6df2b74fdb00dc8aa22781c6da19785c9b6b04ad7717b8f8e04315d5f9ec7ba2939f469d6728fa845c1ba9e6da1bf3cc0a8aeac0291fa8";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.4.0";
 };
 pbibtex-base = {
-  revision = 61914;
+  revision = 66085;
   stripPrefix = 0;
-  sha512.run = "dcef21019daca2ec8a2a649f58f3e648cc580c6d46fdb1c7a315fd66fe6e9075dfac8d12dfe901be0487272419cb10257007b8e34a0a6d11d93f6b5f67b5f988";
-  sha512.doc = "897d18ba8ed56a44541dab0d07c0f1fff059e08ae02165b1205e439bb3b0b61484a2008a8a463690f9fbc628fbd462d271643957715a32a712e35cb9dda3bfd4";
+  sha512.run = "6be03a9f18741e16104d620effc7c0669e12ccde1aaa7d4332ada2fee95ceb1a6b30db4df41386995367b565b437174c0d4cae6e330c8181ee47095fb9bd5a5d";
+  sha512.doc = "69a7e564464d8b1c31474ca37b5e9fadeb4c2d4f4d25dad5f884317b226c6b7f8f467cd1809e1330cb64fe2006f1ab397cf4f163e469a14fb8de5b778dc70c08";
   hasRunfiles = true;
   license = [ "bsd3" ];
 };
 pbibtex-manual = {
-  revision = 62913;
+  revision = 66181;
   stripPrefix = 0;
-  sha512.run = "afee2e70ddbf92910e08425ac6caec1ed8ed55ed8e1e4d183bdf15072de18516193c97af05af316b567ddc81aa78fdc1e8d1e376adf6913edd961205e05b7330";
-  sha512.doc = "318cfa9e0540149de336e021b2ea928bd68b1ef633f58a5dacd85cc51e62f835c46b27160ed2cb444f68b82c3e859eb464064213013ed57e43fdf3f6e2863ecb";
+  sha512.run = "ca4690e0ce37561dcb877d17310f498b5b528cf6892beb075b4ed87f1a4432957c2ac56ad29f66da1452794c587f2d9343fdf7715c670ac7c3f7880f620f698e";
+  sha512.doc = "152ac93c6e1bf07d90434581a8891f293527d4ff93f7d439e7e15c99d53b0cf43872c9f8a6935fe314614b9c3fe3cbe7bb3dfdbba486dc7248fffc60742f37a0";
   license = [ "bsd3" ];
 };
 pbox = {
@@ -32408,6 +33156,15 @@ pdf14 = {
   license = [ "lppl13c" ];
   version = "0.1";
 };
+pdfannotations = {
+  revision = 68958;
+  stripPrefix = 0;
+  sha512.run = "22bf69647c957f3235fe1be6d90cb75e66188722e3308f80724dcccd9766a470fad09d0b6510fdf7d7e012d595726b5053ca727ca813a2771cd601f8761c97e6";
+  sha512.doc = "900b6383a998afb3593c6e588220341f73d3a03ea81e3bd4f71369b889ebf722dc921da4607342f7e35fa22e62b6f11a22af1c3e8d64acfad9ebc13ff1c5e66d";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "3.1";
+};
 pdfarticle = {
   revision = 51127;
   stripPrefix = 0;
@@ -32478,12 +33235,12 @@ pdfcprot = {
   version = "1.7a";
 };
 pdfcrop = {
-  revision = 55435;
-  sha512.run = "ba611ee2a516fb031a7f3c93f563b2aaa2e50d4ef95433a5d83ee46191c2a6001fdd4ef25f33166c0e3f9791e85c200e452684974d54d34e8d651a7254f6652c";
-  sha512.doc = "786fe00793f62e09f225ca0decdd53ad3b2ce03a133a2ae4ba20db9d40352863dc6a8728e005aecfcaec06072e8a0ef454d1f7fbe90bfc5997cfc65c6ab97170";
+  revision = 66862;
+  sha512.run = "d2f33ad228c2cadc78cc8f16bae747ff1aaf98094a5dbf16462bdac0957f14aa32636b3ee0e16603e7e3caacfbd0d76526502911cacab29dc0a3d85c46a36e44";
+  sha512.doc = "0e3eb0d735d146c98bd9a34170afdfe73fc987b4d4a7102fa220e4d6e7bbdc185cd0d3bc219ffb7fa14c6fc1a971225ed24335e4ec9fd2ab9d3923dfb2f15137";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.40";
+  version = "1.42";
 };
 pdfcrop.binfiles = [
   "pdfcrop"
@@ -32509,13 +33266,13 @@ pdfextra = {
   version = "0.3";
 };
 pdfjam = {
-  revision = 56991;
-  sha512.run = "1b1084859a811861e60e27186d67d267d3740152331f50fdbe67ce7226a76b4db24d79b674e6511d2f3de9a711da3369c565d781614f5d0c1a8021bc1ac18827";
-  sha512.doc = "a29c09a2e843188135265aaec690e09cd08fe29076a0378b308ec0e48aa7936ba0edfa7d6ad3ac808ec334bb5c2793a32d8ef625f4ad9b3fea40d4db567cae56";
+  revision = 68597;
+  sha512.run = "ce5f86bc1091795bd749d79b348d5f2e5e9e012925222552c9b9431100d1608a20356fb6379c15cfcbc76096e65b2fac6725ecaa485952a28408191db2c46652";
+  sha512.doc = "c72b039c93eb3ae542351117de5d52eaec2bb7a191092ff8547947b11e9d1a6a921010d211a1366f71846121576cd6ac105d3002f95ebd3fd4aaa8106855ba5e";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "gpl2Plus" ];
-  version = "3.03";
+  version = "3.10";
 };
 pdfjam.binfiles = [
   "pdfjam"
@@ -32542,14 +33299,14 @@ pdflscape = {
   version = "0.13";
 };
 pdfmanagement-testphase = {
-  revision = 66534;
+  revision = 69078;
   stripPrefix = 0;
-  sha512.run = "917ec60e918fcf8f23fe44eec39d9f31e8edecf2421b3b2c4c4e015691d13d568a33b4290d0db6318362c51bd67cd64b329c3f6c8a755c35609a02b908d15be0";
-  sha512.doc = "b4359b695dbc834aebf827b91b8042f9cd57a3f1ae67459e2ad1dce882fcfb1d9042a781f24faaa13bdd7bf1547cfe693cfa422960fc1ce90d09138de2e11da4";
-  sha512.source = "08783e1c58f595dc5efc13ba4660de5dce1660615ca51b3e5404daaf99f2fa17c5c2e34cfc4d9954a320358bc770eb005a6d9127132a4e0add5ed189dce49e7e";
+  sha512.run = "f0065e66e3d94a483ca1e3dc3c7a1f78a1f2f8b038b45781e1f7011939e65814737c60cd606d291f153bbc633ddb15fa7f2b53414f857bf9ce5791a211f0bc07";
+  sha512.doc = "5b83c8d73ab6a81d1f32a35c762cf13b7b8c0efabde94735a3c45716ee470abb3d370f8d329e8785685f777ac812774d5b16de3d53991489d83e219b264b665e";
+  sha512.source = "cded0f375bdf26cbf999fb435c6b3eb9084f6d481087e64d9b50ad9e5414ddcc87a1a495b9a75326a65437021da41ec011647e2ba2a4f72d40e618b2519e23ff";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.95x";
+  version = "0.96d";
 };
 pdfmarginpar = {
   revision = 23492;
@@ -32561,13 +33318,13 @@ pdfmarginpar = {
   version = "0.92";
 };
 pdfmsym = {
-  revision = 65324;
+  revision = 66618;
   stripPrefix = 0;
-  sha512.run = "b0cbce8135522af3d0cb1087c2ec4522f58f1afc70a27d957d9d54d1da5890cc89a6593504f5b4b2ae4c4431d0d914b8ed59bd04938e0efbf16fef5af7ff96ec";
-  sha512.doc = "31135f5ce4e37916e1bf5ab31864953c0b1988a437d767cfbb52925a8cc38195e1d46f7f45fa0c62a07d87df31f6ccdf2d584df7f5082f1061be998a1e9d16b2";
+  sha512.run = "f424a0fcaaf484f919b1e6646c63eff6550711e23cf938886b9cdbcef8719defd1d23efe949916cdf27dda54a87a8eb5448d4c9e8234ffc043dd295937ea5365";
+  sha512.doc = "a40e39c7ce6e5d93339aeb6a1ffbb23dbecd11656b6c698362157c0fb46477dc4506d6b40269b3e9f10cf8fc0b2c982049d4e732b92c0a3401a0a40614b631e7";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "1.1.0";
+  version = "1.1.1";
 };
 pdfoverlay = {
   revision = 64210;
@@ -32605,20 +33362,20 @@ pdfpages = {
   version = "0.5x";
 };
 pdfpc = {
-  revision = 63866;
+  revision = 68610;
   stripPrefix = 0;
-  sha512.run = "059558ba3c3ce0ec378960b3801fc9830397a15078b7976fdf34fa5ea62969d74f0e05237d88600d01629343e7400e5a67ef6dc49cadc7dc6191dc273d198ed6";
-  sha512.doc = "c029ce76687144f7351438f3ac34a7ecfe042923c389983aded1a80b8c5e7ae1c1b408c49adc4b543610e2190bd02f32e36c376b7a987dfdd298e98a10cfcb81";
+  sha512.run = "f94232b95cefe880b963755f18d71e4d4c00eec6a095a3ada786bba4036c8ac1bbf92377fdc64d6a4fa1fd8a3eb2f308a5edd451646f8d552dc1c29f7e93dbeb";
+  sha512.doc = "762933c4c5864e8f94a0719f4c26e5b1e576e11353553875df690fe9f2546c08dcd2f35e7ae46fda6960781fa2223d874acfb5c0c8f6a7f1732e2ca227001f46";
   hasRunfiles = true;
   license = [ "gpl3Plus" ];
-  version = "0.7.0";
+  version = "0.7.1";
 };
 pdfpc-movie = {
-  revision = 48245;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "131ebad8b05395d0ca812fe50a103847393e4b00bc5574109ae3644b6500c58b86c48e33aab548c2404bd08ec6b893b9461d76f957111c7e653fec8473b8e63a";
-  sha512.doc = "fef635a0d0a48a6cb35fe8c3e0b17342b84bbeacd1604e01e9fa1217ee92aef4fd073c1db5aa72161082c6dbb273f1a2fc55a2bb057cf3fd12796de8844df614";
-  sha512.source = "e4080ab714b791e2204b8215b70a0b979b9810c5c69c69234f6aefd4b02bf182245b0e599040f56b4814c6486ae6b7f715d3bb597c03475c38f4d5bc624777fe";
+  sha512.run = "55d8f438a458048893cf6cdb56969b84c5e0d195346a0d79f4e097a6ea336623133c42efedd1416e294d474f44bd01c9fd5efa6e38d44fc49194fc5de9a965bd";
+  sha512.doc = "96eb1120fadb2fa47cea38fb9fac189d8e142f9fdfaca5f6c46b5b0fabf603f7fbfa013715d589b25ef928bd69ffd273afcfd5d1fa0d8a30f2f8dc6c50c20cd9";
+  sha512.source = "891864cdee43d1c4da7ab9cefd3ba751ec7f574811ea09f680fc704475fada67c3b2fef727abc254b83269bb169f8d8f2269e5d938b9ffebe624cf9c31e5cf93";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.0";
@@ -32633,6 +33390,16 @@ pdfprivacy = {
   license = [ "lppl13c" ];
   version = "1.0";
 };
+pdfrender = {
+  revision = 69058;
+  stripPrefix = 0;
+  sha512.run = "507450ada31750d833e46a74ab38570bab964c4d36224482d0aa14b2f846a10c34c21735cbf7c4a8bd7f6c10dab5932830ceeef8198b98f72a716aed27a0714f";
+  sha512.doc = "447336df8ed6b0f026e9b99a5a45481fb04da0dfe009e091727d99ef536c5e073ca90bb9e4268104146908f5bd6588dbb8d294cceb0acb3f46763e0f835b6803";
+  sha512.source = "83e6d5dcb7aabd6bc3e84d273687b91326209dd78b8c91acb256e5c42566a4e441e526de9b64fd8d5310a6f393ee7e66c6f561f87721959fe2cc9e41aca02fc1";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.8";
+};
 pdfreview = {
   revision = 50100;
   stripPrefix = 0;
@@ -32668,7 +33435,7 @@ pdfsync = {
   license = [ "lppl13c" ];
 };
 pdftex = {
-  revision = 65808;
+  revision = 66243;
   deps = [
     "cm"
     "dehyph"
@@ -32703,8 +33470,8 @@ pdftex = {
       fmttriggers = [ "cm" "dehyph" "etex" "hyph-utf8" "hyphen-base" "knuth-lib" "plain" "tex-ini-files" ];
     }
   ];
-  sha512.run = "a7b4d8672355fc3edaa1fa0b31ea4009c7dfe33d779c82dd5c2182c1b136f745c9b3fae6089b14458f0ac5d5491f0070c9232eca0fbdc27320ccd87d2f34f50f";
-  sha512.doc = "021dcbddbe4759731e9411be407a5e2f0c66b04fe22fc5331420f0dad295d3d28109352a962f6d83966ee7b7236bc1bb5aa2455074c19e032f01af415437efb9";
+  sha512.run = "c0158cb19918ea2bba57cc68e32af1d2c4ef50ba45bf05e0c8b7e64057daee19843ff77633e4dd0ad660df39983c46f755c691f85d4aa2000086c02d48498d0e";
+  sha512.doc = "d059f01596573efacc4ca80333b07236f860375f49b82d0cd3ab6b3f441f379163a37c820e713a2d96a8f69b821b3dbd68f360c5b5f005dccac54575df4b5d4e";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "gpl1Only" ];
@@ -32737,9 +33504,9 @@ pdftexcmds = {
   version = "0.33";
 };
 pdftosrc = {
-  revision = 62387;
-  sha512.run = "c86b7123c88bc5c50a8ca4c6e435eccf04cb5d2e2d2b2a25922dfd69cc2eac3eb09c0bfef8fe0444a49f13035cc6a475de54e2b4ced603841f466b2c07568434";
-  sha512.doc = "347ff9fe5424657b152afe0cc15ded0b2a81911934c3adac249c75f32f21ab72970bd285ae29447b7189d4df0399ff0dc3d084dba42896d17c5fbbc33cebf7e6";
+  revision = 66186;
+  sha512.run = "8cb175ce464b0ec0bf74c39ddcf381daf9e27635098e775d929f5cdc60858d39cdbac1a4302446f9368a274ce4c3afda9636d882ef4097d2272d22e190d8d272";
+  sha512.doc = "01598180f8eff2913eeebf5bc3d5f3aba32029286fc6e0c072aa8c0f4dabaf0c6e71ae7451ba9a7b65b4d0075a7f0a3baf345b02c5826eab64d74e39eb82798e";
   hasManpages = true;
 };
 pdftosrc.binfiles = [
@@ -32764,10 +33531,10 @@ pdftricks2 = {
   version = "1.01";
 };
 pdfwin = {
-  revision = 54074;
+  revision = 68667;
   stripPrefix = 0;
-  sha512.run = "13981a137ab920fe72e1f79ae3bb14bd9e37cd4eb4dbb66095926e54eddfd28903b403a896a013ac40fcac80736c566e983e34fb9b7a54d0759148ce33af14aa";
-  sha512.doc = "2b8d546b5591773cb9ec3ee407d7390b81e8ec1a6232b626ddbf9bb2cdbbc8c9c00e08ae4772a4b67cb38e96ec2be3db981eb163d412738e5e7bf94e5196637d";
+  sha512.run = "1064e81793884565568f6bde33072dc007c9b9a07c010be602111ea4429ccb803c18a3af13c85bc1367279624266063756bc59c72e6190e70090eadc8857b8b1";
+  sha512.doc = "5055cfb0e2cf0e1cc105a43fb82c05e133863cd22278792de5aa931afd84afe7cc3b35566a399dba97645da4495d16e47d723155991ecf1bb3e13a892f230787";
   hasRunfiles = true;
 };
 pdfx = {
@@ -32815,22 +33582,20 @@ pedigree-perl.binfiles = [
   "pedigree"
 ];
 penlight = {
-  revision = 64811;
+  revision = 67716;
   stripPrefix = 0;
-  sha512.run = "eed3971fed0d6217064302b136a8262160e3b37ebdb7faf3fb30a0828806c806a5df1d6c4e8833b2552abb21ec8061ba95ce1b688666964dceffc3697b7e2624";
-  sha512.doc = "cec8a8295e8001ec349f551b5b4d32c8bda1beddf7b22eaa9de6bde6740b49997c5c5eb12b685eab633f293b7d96bb781cd256da689268ddc70479d6fa7c5f63";
+  sha512.run = "7765a7beaf9d2f99f383c6723fb7ddf3968f656a433bd519631b539e7c599e4ea26546585c1be6732a42e1632fc11b980ee9316de6cfb765332790f81d548aff";
+  sha512.doc = "30307bc7774c3768227da33c31c6296e8d470f1f835f792248ed4ff40e261ea682fd967987396808fcd36e7e0a74c3da2bb947de7eab7af5783e3790857b081e";
   hasRunfiles = true;
   license = [ "mit" ];
 };
-penrose = {
-  revision = 57508;
+penlightplus = {
+  revision = 69070;
   stripPrefix = 0;
-  sha512.run = "b8572b376e006126dfb925758e907f3993c7eb0a157a57a6a36c99103f3ed7ac58ae406f6888b7303fcea4c43b67e50162af0235d7d923e79c497c60403a3e2a";
-  sha512.doc = "a02fb2976c23ec8dc51ecc70fb6e702f62ff6c8e14de437e2bb3a478a432034e1a87f92266930e5c56931e4db8d2bb0bb8ab1c464ee4c8ccd15cea0df8624e61";
-  sha512.source = "d40b7a787431ac7ad6af14de17bdf749ec5743f3a95226f084bbf3bdf4ad720b43b597dc432c9831d871f030eee049e08e8bad9d2efae63e9d588db31ae15178";
+  sha512.run = "b4aee13d9fc3a01d434ea76ed04b2ae6871dcd7f2a1953ebe36a89153ad1759a2c66a622ee161ec7bfc0f79f235a54f6a2f8c232ad62cc2150ea872b2e4b79ce";
+  sha512.doc = "1a9da1ba0e893846d45eeb3cb6ea803f154986aa9c8f419695cfb4c24448a0c9ef603d14925e44731ca0fe00fda5528d80b30f428b81bf97a9cfee90755c78b0";
   hasRunfiles = true;
-  license = [ "lppl13c" ];
-  version = "1.4";
+  license = [ "mit" ];
 };
 perception = {
   revision = 48861;
@@ -32841,10 +33606,10 @@ perception = {
   license = [ "lppl13c" ];
 };
 perfectcut = {
-  revision = 54080;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "edf0b4dc69d24b4515b0285dd4f4c7a89dae239eea2cad7cd194e9625dcc7e306c295ae67869d1e58d64e0f68d8c39779e0cd90a4c4f5a4e769be73037cef75f";
-  sha512.doc = "84443432cdd05634c4f75ce3b912bbb2f1681237cfcf3c34ae070fb07e0342b7a5a0abf7dc4d26994bb7506ad3d6b5bd008d4a2cc738b418cbb9b397ecb1d2ba";
+  sha512.run = "5c3963a08f1041e78f871084531187214f3735b15409cbdcb4491046feba1fbe44887b23f450d40eb3a697a49e0ecace584b96cb10a7f959e28afc642259b5e2";
+  sha512.doc = "4a978f726c8b5a69006f293b8428978a1a6185df27f2d26a0be06309fc55ec3b8cd6117cbb4ee732f6c2d0ddcfe8ad66d86f7f838ee2e386931e41c0ab043e2c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "2.3";
@@ -32900,16 +33665,16 @@ petri-nets.binfiles = [
   "pn2pdf"
 ];
 pfarrei = {
-  revision = 31934;
-  sha512.run = "f6046dc96672b60ed272dd6fe23a4a51032f039d3aeaff3f8b5e2407c99fe1f43c568a03564a7c20212a97bbfa4ecbd0dcb7f5f44593e1485c8e5d9197467a6c";
-  sha512.doc = "d50ff4603d51eb72d1d12e7f5b1440fa3d7abb1ab74fdf441d7e4a474df91247a1ccad504a14438bc0c3c6354c8f8674f180b5d9d826ff09a8749db3cf0d08c4";
-  sha512.source = "1e4008782161066066fc4cb1b029a36f6a18eb0d5d52f11a2a70d04d4778de6ed1a80ea1fef5d8cc86c2e13b8cbcb1cf8ce43e58ff4431b16ca23c3fdafb9884";
+  revision = 68950;
+  sha512.run = "2022347ebca4dcb71e1dda7d8ac906733a664b98d14660e48b16e6592ae229641b8c7bd10602d89b3b01535d2851f9504e3329a9f82f4adb5a4c68dcd69c6ce6";
+  sha512.doc = "4e5eb99b0e0409395954170339a744d18f8d0f8ee389ad1bacc684a037cc8b2b6121850a7674ec9b699596bcfa8e9e36521d13571bcad0db271cd1f9fa619488";
+  sha512.source = "65d865d2e79ff7476a3629fd3ffaed09b3edc8fea9224fd7126cce0203bfa6f5ecb5caee6727bd6d01196666f138786ca409f3530a577efae4fccd405cbd845b";
   hasRunfiles = true;
   scriptExts = [
     "tlu"
   ];
   license = [ "lppl13c" ];
-  version = "r36";
+  version = "r37";
 };
 pfarrei.binfiles = [
   "a5toa4"
@@ -32961,13 +33726,13 @@ pgf-interference = {
   version = "0.1";
 };
 pgf-periodictable = {
-  revision = 66035;
+  revision = 67250;
   stripPrefix = 0;
-  sha512.run = "10457ba244a86028ce10e39ae6e04ef560b9fb1a90d67222a212d292812407c33d38dced4123e37cbdb28ab38c576e0ae95a6fcaa000edfd70013b9fc005f60f";
-  sha512.doc = "72559f777704db3b4188dfa74b74e00dad12dbc90dff4843cb56c2f73cea4acb35a87692682f7acf83302d0f7ebd1e86289c084ce2ce939efb0bb388e7e68165";
+  sha512.run = "90e347be204b06b55941110e968b02f36d849a667a0bfea81552ecb31baa6197139912adf8bccc6b212b57b77be3857088c35f412049ba6fb6dd205049312c3d";
+  sha512.doc = "e13515d4ca7af997ce26f25dca80325cbf0c94f9e5c6a7dcbd51d0b5fb2900d73e37b73762db61269c0c2408ae8483bc767da680aaa88c79c011ecd811766cb7";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.0.0";
+  version = "2.0.1";
 };
 pgf-pie = {
   revision = 63603;
@@ -32993,13 +33758,13 @@ pgf-soroban = {
   version = "1.1";
 };
 pgf-spectra = {
-  revision = 66034;
+  revision = 66961;
   stripPrefix = 0;
-  sha512.run = "77417ac12e5f167a8da17ecf89faf05e0a62350f1ddbe98bd646beefa0789082949bf52da226e2ecc6d8f3a0a98c879e19bf981c314d0201f21613ac7cae8049";
-  sha512.doc = "aec16a4bc139e5b4167a4d9fd13c87848100ca09c7b6e2835c3641f46c4f383dd4de11504bda82d27657770fabc74887a0ca56c22231f4c85d51000a679e517a";
+  sha512.run = "723fcfd1b6827cf224fbbba91bbe4b65e8ea6b09cfc5eae2645144d2f64bdc0004f4f6184f2a310f7208650870041f12c4eb73e4d34c88fee5513d041ba88586";
+  sha512.doc = "81e418c2539e9df982025478d552b947dc040a5fb3ac8250636e874e77c97c83d215df6b2e9208f660b8a928eb1dd0e059fae357aef1b71b6e959a37affac2d6";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.2.0";
+  version = "3.0.1";
 };
 pgf-umlcd = {
   revision = 63386;
@@ -33040,6 +33805,15 @@ pgfgantt = {
   license = [ "lppl13c" ];
   version = "5.0";
 };
+pgfkeysearch = {
+  revision = 69385;
+  stripPrefix = 0;
+  sha512.run = "c90dd895a9c4d3ba737f6dca0a618af781ef712f7254f80c4f6bf222db80c8e7f010e9e2b2a0fd4a125154586d1b1532881f1e29dacc677c416dc8b5857acd51";
+  sha512.doc = "8ba4bc32f3a0393ec32e387110a725d10ec67793867ff7efbe8bc6047a6fe7c2e19970f091f96e2cc4d756809301864c48ce550f46240e22aaed885d7ebb57d1";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.2";
+};
 pgfkeyx = {
   revision = 26093;
   stripPrefix = 0;
@@ -33101,10 +33875,10 @@ pgfornament = {
   version = "1.2";
 };
 pgfornament-han = {
-  revision = 54191;
+  revision = 68704;
   stripPrefix = 0;
-  sha512.run = "7db1999c8f76addc56ad84aea76617fb61d3407bf28256379526058eca3dbc2f69442c6d0214d31832e31048fb1b8419125dd3441fe039a832d573346b15809a";
-  sha512.doc = "68e6720389bebb23edbd5387a3e0b3c9162b8cd0ebdf96825bece939b983033408d01b4739ed034cb9e0d3fefc21c87049f6ace1abc42826757ee6bc7a86da9f";
+  sha512.run = "7337b577e10f2a6306badaa45ca57614ac0da6b3c12ca5c9c3978f1358fa88a352cd092452ef3b6e86d01ccd05f1cfae663f914956b74d184c08a21d2e484e01";
+  sha512.doc = "7b9138088db1581571508ccb550b1b128ce0b574dcb2a903f5311b9a6e63e9d9c6e56eca0e46ffb5224f5685c5b047a57e5e7d292e7d6de6a9bfb06ee568d9b6";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -33286,13 +34060,42 @@ photo = {
   license = [ "lppl13c" ];
 };
 photobook = {
-  revision = 66554;
+  revision = 68313;
   stripPrefix = 0;
-  sha512.run = "b923c2f7fc85ff5a24d55a697b67a536ce688cd2ecc9e2c50c8f6492f9c233faacd59b3d5dc2362ad6ae4c9714a7ed6a6d8fc2d3f24e6558420f59b342e93b59";
-  sha512.doc = "50f9159efdd002da22ec5c969193997213b6226b710ac86e7836d58b2b874cbd87ed5ef2429f2a7d7ab1f88700ce86e81dfd64c903979aefe4e7b88142bf6166";
+  deps = [
+    "adjustbox"
+    "atbegshi"
+    "changepage"
+    "colorspace"
+    "environ"
+    "eso-pic"
+    "etoolbox"
+    "fancyhdr"
+    "fancyvrb"
+    "flowfram"
+    "geometry"
+    "graphics"
+    "hyperref"
+    "iftex"
+    "kvoptions"
+    "listofitems"
+    "mdframed"
+    "numprint"
+    "pagecolor"
+    "pdfcomment"
+    "pdfpages"
+    "pgf"
+    "textpos"
+    "xargs"
+    "xcolor"
+    "xint"
+    "xkeyval"
+  ];
+  sha512.run = "1ceac5c208ff577c3072b96bd3c98e03a75126c25c5bdb8a88c3a253623b2f089d4bff17bcc7cc14d522461df2f95a44ba784ff8108a6b2d284127d20b75d4d1";
+  sha512.doc = "fc29b76cded75fdc20eceb668cc0bda2346bc5e11c5df2d860e90999e48b73a3e44c985048174cc54f42aca2dec3d195b765ffae923a1eb78b1d7da180e6a966";
   hasRunfiles = true;
   license = [ "bsd3" ];
-  version = "0.1.10";
+  version = "0.1.29";
 };
 physconst = {
   revision = 58727;
@@ -33314,13 +34117,14 @@ physics = {
   version = "1.3";
 };
 physics2 = {
-  revision = 66119;
+  revision = 69369;
   stripPrefix = 0;
-  sha512.run = "bd5630f6003229600f47ac8c5a03a1481707b7293a358327307e8dba582155953e0f29a58b8a4aee53eb403be9b98f09d0cb0a653ec63603b2c694d9e83d050c";
-  sha512.doc = "05179baef4d5f238fcf817007c7acdf9be9b8701283eaf7207fc7626fde9982841bb668f5faf18560ea500e39f7a7fa2cce09653572bf854ac16f79f2cf5a999";
+  sha512.run = "1a598dac27ac5e1fa163493c307e48ff2e8c31d9c1c51a676a1b05bfde7af2a558fce4bf410a2c70837d128121331d6aaa393c6e7a84d8b98f9e271184e78a50";
+  sha512.doc = "0627e9882b0ff31f2d6db46a9437c536c29aff39a1a1929784fe4bb16dde1a18aad351819d36a7578bc71664a4313c918623a87cbfaa36738b19ee9a9f4769c0";
+  sha512.source = "3709f7455ffe7d21a1e5f04f08fb36edf1fdf9664c32aa942856248527fbb735dc6664b971bb2de961ac5fa1f8dee14a2ad06b39903e6ca83e639a18b71b01da";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1.1";
+  version = "1.0.1";
 };
 physunits = {
   revision = 58728;
@@ -33446,14 +34250,14 @@ pitex = {
   license = [ "lppl13c" ];
 };
 piton = {
-  revision = 65835;
+  revision = 69320;
   stripPrefix = 0;
-  sha512.run = "431d6967b4825b4e36b2251d59571f57ef3f20d231c4f215d67ba34ac5a105de25c8f2044b4f7a5bd774a906bca4d98bc77b76e3b678b80c57aee4d1c6d705b3";
-  sha512.doc = "ef3dfcdcfb807135535f52859c6fff5bc46e78e979c07290b96c50fa1f1ffd3fea1a17a619c23f4aeb1fc4d0b21313d841b323799ea050b38b9bb1575d974c62";
-  sha512.source = "137f87044f7625fd7db4c4fd43957f929ada766248d262c883c111592e00e63f613201c0641a50917bb663adb6c976af7e91f10193cb9cd985eedf5f27d9f52a";
+  sha512.run = "95028768d96516ebd9b44abd790d47694716edc795bafed8ec8ddc54626792b0590295e87ee8d06740b50d42b2e4a00c326cc8ce737ff31b2f0d42130f8a57c5";
+  sha512.doc = "11825345e1017add9674e543d146dd151fb3d9dbcc228ec0660392a12e0baa7ec08f224d7024f059ca125f26e744e083369fb972c308173e17908b0d48ce2aa1";
+  sha512.source = "f29cdafeb5efbe3a0d927a68183687aaa6ac6f932a24d362af32827377de566f69c8721329546d07c1a1127da587b25fa3b649ffed0579056e88bf9e987bb7c6";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.4";
+  version = "2.3";
 };
 pittetd = {
   revision = 15878;
@@ -33466,22 +34270,22 @@ pittetd = {
   version = "1.618";
 };
 pixelart = {
-  revision = 66119;
+  revision = 66012;
   stripPrefix = 0;
-  sha512.run = "c8a6d0d595040564878cd8ed633c9cc807667bb5da63b38002595dd20f6eb9134930f3cbf6382eef3cd5c760c9357ee6d1020fcd8ed3e2f268ee3d7e85eba847";
-  sha512.doc = "700cbfd670ffb02230b8b1b595efe8e7233fec8a721be6b957130ef64acfdc60a2d61b8333a8b99bd3c77d643a72872f851bd2b69e5c76b416b1b2a39df24544";
+  sha512.run = "0643246fbed81ac008f675b9cff8d3194f8eed02937816c41887ad84268850cab50e5c6a7c8df5148f04cbb43c6ab80d5fa4d960d541b42f505f95f554fa0602";
+  sha512.doc = "2823d82ac741954d19afcdf74a1b2071591a904183877ee54e8eb9a4dc2d63716f05bd1886691e87d36010fffb929e9d31aee05ec707a929a5fc74c01ed6077d";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.0.2";
 };
 pixelarttikz = {
-  revision = 65649;
+  revision = 68520;
   stripPrefix = 0;
-  sha512.run = "a22bc217cbb20081d44684180f40da9883a17f133f8214ef141ba25924657f51517189d567c08f71e76b6cd3704eae4050d4757479925f23a9e5b5a8faa90ff2";
-  sha512.doc = "2a3e6ed9f865fb75a3ae7089e00e3e8cfb4ab5ad20eca21f697022af5342f292505de24814b6137a31d6aa05f204618cb94f1628d8bd51e64530d898b6cba5a0";
+  sha512.run = "c3aff99cc3027fc32f191f6a3329b397d23a11267e9fb89cec0bc5ceac875144375b3b16cdab42b471f16153cb75b21cb25cf38a74eb22c9ec0990f062245827";
+  sha512.doc = "e06e2dd718c81822b0701390d8df193ce68d491138e75e929ea0c75881466b4e190cc52cbb58d69e2f3619b1f2ee4ce8489ceff9a35170256d02057cab6b9483";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1.0";
+  version = "0.1.2";
 };
 pkfix = {
   revision = 26032;
@@ -33602,13 +34406,13 @@ plantslabels = {
   version = "1.0";
 };
 plantuml = {
-  revision = 55214;
+  revision = 67097;
   stripPrefix = 0;
-  sha512.run = "30e49185f2916a0ac1234199e80fc4c776eabb69e7cea9f8132e7c32c074dd2a24cb100b1f6f2f80b314cef9e7099f881605ee3fe19ee180f2c6c856e33c73d9";
-  sha512.doc = "bd04f4ee1ebde123f718b147b407f65d0549171fcb3cd9c07381871a23034520563b02edc1675aa3a6a975da6d811674d653c5527b6ba99309f479ecad136cbc";
+  sha512.run = "97af8222b28309bd5d8ce5d083ab54bbf550b6327d463de8b481cf4a5f62c0c82b33718b5c95301204bfe8e4858039a0811f491d97c02079d723e66c3549c90b";
+  sha512.doc = "b76c635cd30ad2638619b1ded721d468eec92033206cda03cbb638b14be082de1360efd2048f2cb1ac787a4c9232416cd18a82ad7b261ec785468ffdc003b86c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.3.1";
+  version = "0.3.2";
 };
 plari = {
   revision = 15878;
@@ -33629,7 +34433,7 @@ plates = {
   version = "0.1";
 };
 platex = {
-  revision = 66199;
+  revision = 67315;
   deps = [
     "atbegshi"
     "atveryend"
@@ -33649,35 +34453,36 @@ platex = {
     "ptex-fonts"
     "tex-ini-files"
     "unicode-data"
+    "uptex"
   ];
   formats = [
     {
       name = "platex";
-      engine = "eptex";
+      engine = "euptex";
       options = "*platex.ini";
       patterns = [ "language.dat" ];
       fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "ptex-fonts" "latex" ];
     }
     {
       name = "platex-dev";
-      engine = "eptex";
+      engine = "euptex";
       options = "*platex.ini";
       patterns = [ "language.dat" ];
       fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "ptex-fonts" "l3kernel" "latex-base-dev" "latex-firstaid-dev" ];
     }
   ];
-  sha512.run = "f5fbb5629bd73cdd7eb69917526528b10c905f603ff2a5c2cf77445f7250777e34d3a374e6f26ff4fd8fa2a362033cd6bfa11493501cd8120c47a351bc611f51";
-  sha512.doc = "2b3751cff2502ddb862774f58919ac98f9a233f02ceba6f2756de3659ac4555831d4af03276798cab9b02ad0152f4a9f0c313ad3ad9af58f429ea54d23fd131f";
+  sha512.run = "4a2682c51dc82e078ad14b30545dccd95f600ab02d5d05fb5c44c214221a3947562432783b43ea505b5199f37a1175a792c709282999f77b17b532d2a61c6e54";
+  sha512.doc = "faf91bdbc3e0d2ba0b13a914d54fbc4ce47e27c1225e5412b78c1217b2e3f6c22886a9f6f85b06e5e3f38a8b0c7a9aaadb4606721799749ae6ef5018f7bb08bc";
   hasManpages = true;
-  sha512.source = "e78fad3ef13b2289e88b0844528c0ecd25f1052e2aa443f79a7b25aa72a7645ad576a20e4dcd16412abf68fbf50cb5f4763dc18410813371d9b984afadea9fc6";
+  sha512.source = "a1ba3fe817e5f4aa23c2c4c9b7397cdda6ecc889ee244a05fd7eeda59fba1baa02fd29820107c887982983b2115631f1aac7d19ae281f88779b3e99253b12036";
   hasRunfiles = true;
   license = [ "bsd3" ];
 };
 platex-tools = {
-  revision = 66200;
+  revision = 66185;
   stripPrefix = 0;
-  sha512.run = "4fa016b2ce5143df289c770740ef7e9e36afe68711fdb6380eb92e093c0731a994cdfc4e7e199d529865c14adbda5854ef11487d8d60023d4c6f87fdaaf80a0e";
-  sha512.doc = "cba939ea44e75600efdcbf0e9254d0e76c36e69f4dbc1944e5fa048ac967fe99a08fb5a68f1a806f8666e04d1d5fef5bae72c84f3379b3e17522d81eaeeba881";
+  sha512.run = "87646f8cd885b75c3e7dc0edebc32675afe2d02f87c37ebf6abda7b68256f002440fd1a94f3f13dffbd8a7b694f3813d4115621f931b9a3a9d73491bda7c4296";
+  sha512.doc = "cf04b2c5d4df6d68bfdc3b0a3a8dc0f988cb0549252b3a6ccba58df685c41a9312197a63c97c3ff63c1ec15177a43d1e8064fd449054eed3df968fe213703552";
   hasRunfiles = true;
   license = [ "bsd3" ];
 };
@@ -33711,6 +34516,15 @@ play = {
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
+playcards = {
+  revision = 67342;
+  stripPrefix = 0;
+  sha512.run = "3c7b076044328ceed3005de84d628d6d926f93c1d759982c2e37c8831093aa12c0dbff71f8b8bfdbd171dc545f313729c7c11086a3e529858086896bb64899f2";
+  sha512.doc = "396118759c2f02c709ede5e6b4be042d2348cc38ce4783fd9f612a6bca887f9237f86662b8ce84a78a6abbedc8e2ce9e2c61be2f2c818e262c693149b7125019";
+  hasRunfiles = true;
+  license = [ "lgpl3" ];
+  version = "0.2.1";
+};
 playfair = {
   revision = 64857;
   stripPrefix = 0;
@@ -33720,21 +34534,21 @@ playfair = {
   license = [ "ofl" "lppl13c" ];
 };
 plex = {
-  revision = 64496;
+  revision = 69154;
   stripPrefix = 0;
-  sha512.run = "1363c53067f463ebb702151b61898489d4061db40013af82d9da9660cfc0a9c5d1d12ba9cfa15f43417427bce2bc47cbafc26e76a9d8b85098096ae156d3d97c";
-  sha512.doc = "eade0bcaf39a3043aa11c20a86ceb90eb88abf22eb8005c81b9bb688d4f8a93f6ee6f37bd073e69ad6f7989def618a016cd583199d75db0776bc19e81d23099e";
+  sha512.run = "4180d4b5ff2d6843ac375a52bc3c63570638cc29f7d3bbda476dee962998293ce4b201817e056d5e87c20bd8280336b65bc689a8e1580ab8aa6f24164002732c";
+  sha512.doc = "175abcc07f213d5837070171b7fc483aec2c26b80f530ca7ad7a6f571de028c833e32d71a4c465fbfbb803afcba934e68df560944b8b54b20827d31cd21fa9f0";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
 };
 plex-otf = {
-  revision = 47562;
+  revision = 68238;
   stripPrefix = 0;
-  sha512.run = "07e49e5dcbef60efd3e3050259f10b75bfbb83128412a1e60a31c2f17983ec73d055e5f6e117ec2673f9f0e5db716471fefb312be50cc4475761aa6ad895e9da";
-  sha512.doc = "4af950e1a3a384a1c738c6fa1bad629010ee2718840094500976b6883c2e3120cd070631463f90610c60877c0dea771c9c7e4f8f8c091aaf1f29b15b8400de96";
+  sha512.run = "1dadbb3073ccdf40e496f89cdbd31af8ef37e810178eeb7aee49e9c1abdef42f28e58bf12988a59b9aee95384de842cae8a827e8ad8968c7ef37e8442e596d21";
+  sha512.doc = "226ddb9c201dabf158e0e9a5480995539d20d14ef34f5ea9498f9fe5966a1f7eaed00e1bac62fe17eeb710d0d3f68f9397fa568ee1a91076552130661dd6e3f7";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.07a";
+  version = "0.08a";
 };
 plimsoll = {
   revision = 56605;
@@ -33803,6 +34617,15 @@ pmboxdraw = {
   license = [ "lppl13c" ];
   version = "1.4";
 };
+pmdraw = {
+  revision = 69366;
+  stripPrefix = 0;
+  sha512.run = "ab2b72364f2833ec7362d7284bfc10033e72c3f20c1b4f6ff7a89a8368bebd5aea2120c5cb82c27bf924fc1342030d83e61a8b4b0343aacadd09247890495325";
+  sha512.doc = "60a9292a2705281b8f32a2789b34e0dbc46cd8d475d7c946e00e8f0951b5cdd5a29cc145e0cc270ed87b52a23f819552081fd78f99fcd529aea57027d4d71b23";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.2";
+};
 pmgraph = {
   revision = 15878;
   stripPrefix = 0;
@@ -33813,18 +34636,18 @@ pmgraph = {
   version = "1.0";
 };
 pmhanguljamo = {
-  revision = 66376;
+  revision = 66361;
   stripPrefix = 0;
-  sha512.run = "953d62ddec3948d6904b9a5fc9d37207fbf9a67a44c243fef164ff60660bb5539a5e110b436510cf7ea74ef5ca1a2e07797cc14667af0bd598e5f2f4a96f8bd4";
-  sha512.doc = "2447a1cfb7b8c1ded0db1965d342162d8a13aca6df8f0827c33475abe97ce3cc80e921ac5857f49d960fe83500f5c323bf6f8241dc089d4e35daa7155bb99079";
+  sha512.run = "099517421e9590597157121de5d53eccaae0784969288762ebd8e35a31eb12ce6d5466f890204bbb69d0d9c805c314b6a475653a1cb26ef270672683e2625a24";
+  sha512.doc = "12f324ea6c852b134868f4365a53c2f434adac235d01efdbdad0d5df138587acb28fa7324e10f5fc996c44f43289322bdbaf764107cea4e66d7f999b71807384";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.0.2";
 };
 pmx = {
-  revision = 66119;
-  sha512.run = "90a0d9a2782885f90c361fe99a5c20e761eabde7b79140f8c8cca25bb6e731a8bf16988328166aeddc80c37a45cf9d6ff71e177f85338dab6953276462625346";
-  sha512.doc = "15600a9b81fdc4e7be4581cc035b6b75bc08d6858003d092382637304393946e1b38d8d693e4b62f86707b29c37a1dc9ad0665ae69f16cc8ee672bd2f537f650";
+  revision = 65926;
+  sha512.run = "433287732fbb2cb47886c6c78c923d5b6a1b5c1e71e3990084cde9bb288a282fff7fb9134a5165e0fc0908b8e60547e23cb900bc82b99717133d7600fa17dc31";
+  sha512.doc = "dedba4570b68a8628442716dc3a9b1699e5f531aef2737e4b3f47862a91ba69bda91d6fe6692914d2bd7b8fe3188a83fdfce8bdd219ab7c4f238a9c6ec273ffb";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "gpl2" ];
@@ -33878,11 +34701,11 @@ poetry = {
   version = "2.2";
 };
 poetrytex = {
-  revision = 39921;
+  revision = 68353;
   stripPrefix = 0;
-  sha512.run = "9de77dc676f78ce6e18ae62f621126ffc2d78ceb9cb5612f8c129f0c0d123043c554a8996a68d2bf6c730a157f5cdda4101f8446e0e773671258ffb55d6fe93d";
-  sha512.doc = "e9bc2551a92df86e5b76448b2de7af423b8f96ea6a62b1e243f76588478172a7ffe035ed904fb8eb3c5be031e1451c997a68de3187933c3a7273510710577f25";
-  sha512.source = "4dbeac34f7a74a3a3610f8fa3d3b614ba9ed95384863d2edc40c4685bf7d514803a6d50ff8f27459a7ed993de97f835663ee84247fb0942ba9ff43779e2faeb4";
+  sha512.run = "f56937e0c18fcc1db0872ed27d3ab9497e42186552f5eb26015f7c28f1d38091544212767de088e8d94f6d1e15a5ab973bb1b4960f8d4633964ad9aa295e3b87";
+  sha512.doc = "3db45607b5d95695c3f54ab924912c39ed3c06d956374039656d2a2d3c25d1261541124d7a89ba05cf935ddc4b36b7cbf4c907d02a6b774748ae96d032b30d4b";
+  sha512.source = "8c43393c86bbd430b0e98695dcecf110a08c5f35f152c56aaf8fce946467803810ca87a3b81fea10302b5dd079d817e4874440c069fb466a2773a7c086af40d1";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "3.0.1";
@@ -33919,16 +34742,16 @@ polski = {
   version = "1.3.6";
 };
 poltawski = {
-  revision = 20075;
+  revision = 67718;
   stripPrefix = 0;
-  sha512.run = "bbdf230da2f81b48951eb90016745d68b73890f8c34ed2d336212ba33c7662a5bee1ba005d6e44c4370c81d22928e1013fb39e45db2de16fd05543310bb07d17";
-  sha512.doc = "1ebe7bbd99a3316b6c4fd702770c6f14a32de653909099a86433bd847a63b2eb231cba4f74dfaf1155c54a9393ae1bdf25710fdfc25199d09b75a265392ba51b";
+  sha512.run = "620708dd3f1d2d8b2601377486631c2bdc779d06d2016e1c9ab5869afe00cb88dcb1ebd055b6859ad3e3dd25200c1079b723613283f048c7cd7354977b66b8b9";
+  sha512.doc = "51067d3e930f9cae71d5cdf11d6ac83738e23539c020c93e6f4d8b460e63b04e77caaa41927ed8658056d96ff4fdcfc087e591be991e10c7e95a6b58d56ee368";
   hasRunfiles = true;
   license = [ "gfl" ];
   version = "1.101";
 };
 polyglossia = {
-  revision = 65792;
+  revision = 69093;
   stripPrefix = 0;
   deps = [
     "etoolbox"
@@ -33938,12 +34761,21 @@ polyglossia = {
     "makecmds"
     "xkeyval"
   ];
-  sha512.run = "c6d044ae7de7893de975d7bfc36c7f793c22cc91436c614d817f6328017223e303581ca3d870b0c6698979924437370729542c3e03be059eb90956d25eb7102b";
-  sha512.doc = "430c57ca35547c4b90abac56e46451ea9a86e95eeb0dc9a5a312d441088d07c54606369e47d69ff163884a95f371902050e6880b4a2a037d2b75a3700536eac2";
-  sha512.source = "41fc852cd9f1ac77b4bd0aa4bd57a9b55ad9b96111fd81dd1fa743a56679a6c4e8ceaf34cbc16dcf84a5636499d35923318cc1ac37e66f4ad6594c4c13d257c9";
+  sha512.run = "615880e38a7faa377698fe79ad6fffd16eeff067b95a6b70e459cfa68c530499e84e3bd040735f12a29349641f2f1ca2af270bb6ec884426b628bb7ebe491133";
+  sha512.doc = "8faec17cb9a8b3c30728a8b527794b1b58c9e8d26670e53433ecdaddaa341fdf8fa8f599e4cd5452ac854abf0f7b8d4216ea72af0148087e10460757af3602d5";
+  sha512.source = "73734000d3720ebdd98c31973e89b35636d3eecd3ffd7a5ecf5ab2650182f33da8dabcbca138b63e1f6472c003e36ebd9c8962921ee7c1825d5daea44f8f47d9";
   hasRunfiles = true;
   license = [ "mit" "lppl13c" "cc0" ];
-  version = "1.60";
+  version = "1.66";
+};
+polyhedra = {
+  revision = 68770;
+  stripPrefix = 0;
+  sha512.run = "26169961ab8e21114a4c44470da03fa510822b495f36afaad745c0324d45d5bd64e4e5587b7601fbb97156ba02ff18a2c253e175296f15f2fb3915f7bc15e060";
+  sha512.doc = "6a083101ebef3810467cfe377a820ff178e752c62655462153c661222da3c75034a1735a4a39d76e963fc6773441df423444d40e040f39d73dccb5adc6fbc34b";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.3";
 };
 polynom = {
   revision = 44832;
@@ -34011,15 +34843,24 @@ poster-mac = {
   license = [ "lppl13c" ];
   version = "1.1";
 };
+postit = {
+  revision = 67344;
+  stripPrefix = 0;
+  sha512.run = "cb825667ddd1379b07870c388915abf36efa1249036795d3cd5ed7f41a87c046c00c7e292e542dad6a8b3b3090f327c5cff5e173220d49cc829f0fe206676aae";
+  sha512.doc = "2754e847a190afa3ac22166365a0ea12557d939fe4d2f06dc0c34a518da82dfbf7ab33c8ab1ddea5d3d95dae13c013f238abcabcf6444d956393fe61b00f4a6d";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.3";
+};
 postnotes = {
-  revision = 66027;
+  revision = 69102;
   stripPrefix = 0;
-  sha512.run = "2a70e5ae0142e9741c7163374478b75ce18dbb9fc637122defe4fbffeb288e78804c16ed86a02328d8c44807a35af46bca6955dd5307421bbec9bfe5be963760";
-  sha512.doc = "8efde23d1358c10b508ee8ce544a6d41d690803469d7159a6db16c1702b82352ebe62291d50298231bdbc848ffb60c5544ea367c1d9be083806ef097e50b24ac";
-  sha512.source = "1d4ba4872e3b2cb7583cc2f718b8d459e82716b63f986208421a869c3daf2d722925b1be716b7232f0b30e097bdeeea9e8dd2cf49643242149f54cfb135fcc82";
+  sha512.run = "a2b8a54ad8062e550af61a6f51d816d11891976525aeedc5267923665ea63967a388bde67dd2ad537b2c4d8fc3ffc738f05064d2fd26b0fbf7328eb806dfc0c0";
+  sha512.doc = "28537fd0437da707dfaa5dde2fdc92d11d4de5bdf99e8fc7655cc60533d8ed5bd5b9e1d680f0269b2d60e498fee577a3b069957c6a5ba41fc55dfc1631297853";
+  sha512.source = "b3050fd301f1a332622912a082dfffbb8ec4d172d4e7a808491f84b2ce7e494d16756a5ac7412cc5d1590d6a0f1ea5ec5a20bb7abb61b051e9f4a5179351d39d";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.2.3";
+  version = "0.2.8";
 };
 powerdot = {
   revision = 59272;
@@ -34060,7 +34901,7 @@ ppr-prv = {
   version = "0.13c";
 };
 ppt-slides = {
-  revision = 65194;
+  revision = 68764;
   stripPrefix = 0;
   deps = [
     "crumbs"
@@ -34076,12 +34917,12 @@ ppt-slides = {
     "varwidth"
     "xcolor"
   ];
-  sha512.run = "8741def8d57db17bef3490c881a615340290283860e9978e105b7ba0768b5fbf02023722109dd2f6860e9fa8d44fe7cf742eb2a97ae08d1199a6dea9f73503f2";
-  sha512.doc = "6528e50797dae2dd928d11f78bdcb3368177412823657baccba10c194bebce97384ed55d10c5307c13aa06883a156abd57a944acc26f9237a138df22b5a33658";
-  sha512.source = "42dd3fdc96d1ffbf39deba0e2e292392a9aa6a2b266d7787448b93996f12c966abff0b643281fec8b336a395b283e2e88fafb365f616455e3393645cd7c3a55c";
+  sha512.run = "6b4748adc7f9823f7ff3dce2a73c4535085974a9f7cda33b53a934acd3399e310a85dbdf367102f71c310b8678119d3396f71f36e3e26063569a85af0c77595c";
+  sha512.doc = "e258319f37ef32ce20ec72e055755ce1782e2133a98fdfaeee6402c404df02e1c60ef9fbdaff39306da947534b6bd79fd16c2b82d4a635325ad8c94858b4cbea";
+  sha512.source = "a5f1384b3d4fd1e33e924b2bc51498c509772136bac0c03abab8125ab5ef0720f5583ffb9236ce9a044bb87127e0f42ae6668c4fd2b0b98f07e32ded13ce619b";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.2.1";
+  version = "0.3.0";
 };
 pracjourn = {
   revision = 61719;
@@ -34170,28 +35011,28 @@ prettyref = {
   version = "3.0";
 };
 prettytok = {
-  revision = 63842;
+  revision = 66884;
   stripPrefix = 0;
   deps = [
     "filecontentsdef"
     "l3kernel"
     "precattl"
   ];
-  sha512.run = "8b9f5e9fec9d50b9f688115e00ad6fde21adfb9cef69e020fb297abcfe489cc6fde08d2ad4b72ea5f6b8e0b7499a97c798e8c0bd306d298427fcd19b6365c300";
-  sha512.doc = "8dc2afdc9920817b13050bdb6d92164e9322a18fd1d7a7adc7a1655c8dd68181b00faef22c09f9bce45be0744e179c978ba40c6f841e3c2cdba1c88225f7486f";
+  sha512.run = "d08eacff02fadea3aeaabecd957c4e32881de942a3199bad1bf9e8fd80639ace3d819f9a7ef875c77fbc95eb8e79281ee7bd93ed0f113f9058aad592c70422c2";
+  sha512.doc = "c0fbd26422e6399ccc4aed70e3e8dba976447161d008d440728fee07443caf35845c28acd86af860e9782a171e3e48a6e1e9a92c6ca44d8d7433c561408831f7";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.0.1";
+  version = "0.2.0";
 };
 preview = {
-  revision = 62130;
+  revision = 66924;
   stripPrefix = 0;
-  sha512.run = "02c4864a68cf7208e87fb0a4f25ccfe2092e198541551c3db11b75b0fd0b49188ebf9217554020f07154313418febb942e04c92b78d84c6f53b88c12d5a162ff";
-  sha512.doc = "a722fda1fbc3c4319edefb65a30ccde72711a65c19e6fbe7300ba2dcb47b72f12aa436c593f1dc97f9fda1a1fd4d359b4d56928877a9cb80b324ff046d0cd9e3";
-  sha512.source = "d22c78058df91b03af32bb3f3c6584f492cffe6762a06a854811a3d2b3cfb1dae000252f483e78a40830d5bd808184b76b86c7e100c365c420f24496464ab53d";
+  sha512.run = "6dd19a259a74447d597edce7e810aa90e01617d60533da9a381ae1929ded559e95509d9b7f0d62b83c08d3622225aeebb9772d6bd47b1c0155b9d1c68e48939b";
+  sha512.doc = "1c0e5e64a10372093ffbb4027a8edb6d7e42d1fc55d37ff695b7c19062a1403c00058fe0471eb56e9bb912e6cfdc13d3e46687dbd55f1efa58095d73f28b059f";
+  sha512.source = "01fee5b5367e15dfd4d9ea156b66455efa8c86c39ff49041c8fc9636ff79eae24e0c764673a75ce5050be81e9ac8ca3ad6fa2ad50fa7953f6a51292f1605b24f";
   hasRunfiles = true;
   license = [ "gpl3" ];
-  version = "13.1";
+  version = "13.2";
 };
 prftree = {
   revision = 54080;
@@ -34203,13 +35044,13 @@ prftree = {
   version = "1.6";
 };
 principia = {
-  revision = 58927;
+  revision = 66625;
   stripPrefix = 0;
-  sha512.run = "d56a9031a7bc81fa62f99bac5ca88b12570720a51823566cb61845c7c0b73232c9a8d94d453585be72b2c2fb5565c7bb257a7d0533fc17e956b976977dec3b56";
-  sha512.doc = "c5325b70a14725c9cb0d2368b0b6018375c91ea5be663731d4c016d945aef001f277fbdc0938f3c457e7328f64187bf70d79bfb37a1631f742b14d53a6ac4682";
+  sha512.run = "ef88cb4dd25ec8cd3d50a7f152698e771c8b5f1fa18adad21d55bcd3a8088a38b09eb19873c6a3d1883101d27f318bc092c9c1219a2be76bbc07bfd2eee9711b";
+  sha512.doc = "8dbf4e19a3c688278c52299731ca24fef83d08886a179f15cbc58038fe92d5ddd6e57bce1451a0af686593f98adf9ed3f52ef0b20cd68f65df52b8b6a2576dc3";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.3";
+  version = "2.0";
 };
 printlen = {
   revision = 19847;
@@ -34266,13 +35107,13 @@ productbox = {
   version = "1.1";
 };
 profcollege = {
-  revision = 66371;
+  revision = 69343;
   stripPrefix = 0;
-  sha512.run = "cef2b7c2e971f3a5d8424e447c4eec6c7fda96ab2483c832922b7094e98a0c4f899d11e4c1b9c2c02be5114107fd6ab803459e6062fa728d57784f1d7492a82b";
-  sha512.doc = "c99b666e80fa5220b982dc490f7396a630b2038fee9c0edecaaf36686fa6cc7f3bdd38ef187af3862e1e7a68a8daf9732375da69a2a7b3737bd7c53ae509c729";
+  sha512.run = "eb75b12f184b7e3f5ecf333a376b8d59ddbea8a0cba86c9b553074686c354394f10de5b3187b85fd43f458495dbf72c9f0cce7c98d5824c33f485605dd064e7f";
+  sha512.doc = "3976a1a95c47db9bf270f7730b8abd98d82356fdea0897e797d71a8b688c83a7ee122ddb59cc6f34b05d603d3611169bc5afb45c32a4568262b8f0c299b73965";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.99-z-f";
+  version = "0.99-z-y";
 };
 proflabo = {
   revision = 63147;
@@ -34284,13 +35125,31 @@ proflabo = {
   version = "1.0";
 };
 proflycee = {
-  revision = 65977;
+  revision = 69386;
+  stripPrefix = 0;
+  sha512.run = "66d28a0ee9a4aa7b29fc31cfedb7dc95906cc82970a9a78fc5fd3cd95558721ffc01ac58cf74c2b761fe47779aee5349e05e64e3b0d71cf1ce76dff813724bff";
+  sha512.doc = "ea3821c1b94f71cd691cb78c46b78f4d607b489cdf1be6432caf7346505a008f887e0c9e895242adc23bcade67f9187a6b3cefb241322682141adc354db53f03";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "3.01e";
+};
+profmaquette = {
+  revision = 69287;
+  stripPrefix = 0;
+  sha512.run = "9fcb9729d28a2f41341f3b4f807d7207e33ab9bed43e44676dfa884ac9cf943fa84fb363a5453611c828e1b0b0f0bd795972b52ec736ef5213deebb7fbe42028";
+  sha512.doc = "7888eeeee9882c049977e96a9dfa65e50d90014e9c442b36cccc08fc95d392c78b25feb3bfaa1844a282b5bbe24bf6a4df1fd1d3d0bf477d28fd16ead0b61065";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.85";
+};
+profsio = {
+  revision = 69125;
   stripPrefix = 0;
-  sha512.run = "362f7d87e5e29d06ba4e08e31fa27dc125051c712d4afdae1a50f101af5d7b0c277d79b503724ed89e66ce499d6540b7af81c33ad9d008859b8185b040e4042b";
-  sha512.doc = "8127d993f10c8be4b12822f7fb337564a0a02d7f4008d492c4dd59e7f22518877987f767ab06b3fdeff32e24da15befbe465e6e8d018b9daff3e5e2f77bf9ab0";
+  sha512.run = "01f1aa3951194f5bdedf6c3c44445b1f628a6abd633fcfdc5dcf01f8777ec50b28367a4deb0c303b41983881c255ab21e3916dbe03c1c926f7f2df6be119fdb2";
+  sha512.doc = "f6c650c6d4977df846a62a697fc1b4e82ac541b68db55ec15a0370be2f7b06e8e45e0c8abb81d5573d4ac2dc868cf63b5b19b65de7025afd4f5f69a6cf516b99";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.5.3";
+  version = "0.1.9";
 };
 program = {
   revision = 44214;
@@ -34320,14 +35179,14 @@ progressbar = {
   version = "1.0b-4";
 };
 projlib = {
-  revision = 65475;
+  revision = 68784;
   stripPrefix = 0;
   deps = [
     "create-theorem"
   ];
-  sha512.run = "6daf672c982bbcaf73fc726aa6d3a475c3b0673f22d6f30156daf1235b9d2798d7359134347f1349a557586f8ce592c421bd536766aa7246b2eb07c04e102339";
-  sha512.doc = "7be28ac70142ba767138164c98240da1a9e37b864b01ad3c4f71ee3adf1148e5059e5bf4cc87456baa2109160de9ac698657a749a1859ef5a1333101637fc1ee";
-  sha512.source = "20228363e654a1329cc5579094fa4967534e7a07d7b385763531b90b2f436e688667880bf962025110a0b693c2957585d3cdd8ee98344ea3b26ba791d572d73c";
+  sha512.run = "0966ec8d951d6b060e901624e6137a60e1dfa6cba8599102bf7aa16f4caca5ebf4c234f6abd0a71cf8e54f6a3573151c406f5ee5d541c78517c64aba853bcdcd";
+  sha512.doc = "89edeb895c63c96ab12d27498c92c29194a4edb11f92292b072738fed7eaa766ed86382c0ba26eaf9038d7ad405628cf5fd21ff67ab3405883eafe1529899182";
+  sha512.source = "5320ae1610e4c0372bcce855f633c43ed64e928bd770b013ac656dea33c77bdd93ad75e578b71f66996973f365032e9ff20c05589ade56e02e88b244578965a8";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -34351,13 +35210,13 @@ proofread = {
   version = "1.04";
 };
 prooftrees = {
-  revision = 52221;
+  revision = 67399;
   stripPrefix = 0;
-  sha512.run = "f455c85a30ca4882829e0d2b74f202b129333962843a799c575f080de9b67c1c543db10f012198655760bbe894eae2149eeba1322de3392bac0eaa9a89fe00df";
-  sha512.doc = "ff1ec0f5f9112e7fd09fee4e3ffba06bd281c4578a055e831c64a8edbec234bd69c6e920745fe6e4fbcbb12b27189465d4fc41c9dae4f1ff80d5096ef9dc3cee";
+  sha512.run = "ee4feb832296a512e180b4d38e5989a87d6884c3c84ea2b224754201e42fe2fb6c4f68461a0cf3d3cda10b263c88c6da9e082572093f53ce2e8c62473d4707a5";
+  sha512.doc = "67cbbd3068410bf152d54c2f25821b5672c33b68e76fc7ebe02f0df160cc658b20e072379035f090beb34a7d4d5ca21809965bd8e44a554e5ae65039a12f4850";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.7_svn_8641";
+  version = "0.8_svn_9582";
 };
 properties = {
   revision = 15878;
@@ -34435,9 +35294,9 @@ ps2eps.binfiles = [
   "ps2eps"
 ];
 ps2pk = {
-  revision = 52851;
-  sha512.run = "4b3ead8d2708a182d0c158dd8ae5077fb2f4a94c7f6fff52a66d6479d4c05de3d742e4c960ab79b63084435bef491866c38e01d77c41ae3d630c7a32450d0a11";
-  sha512.doc = "c5b22a86807378fd7d6d83e8802780567a2473e87875bee4c827a48ff470911855bc4a1db4f439fbda1baf71f714086b96e6e78ee059590fb6ebb45c58abca4f";
+  revision = 66186;
+  sha512.run = "764e6dc186bc0e9c1b5ee0a3c5a256e9d42d81645477bba49c59baafec55bc9af63124f77227ca5b6516bf3fa2bdb8d201af813cff09ac9da4574e70351922ce";
+  sha512.doc = "032c5ab3442cf668d6b40851bdf710b4e4b9eca701bf04c87359c579a5fce52bedea15ee5dc9e4c5967fcc0e3b84805450987b73c204e0df4708b65a7cf74c13";
   hasManpages = true;
   license = [ "free" ];
 };
@@ -34457,13 +35316,13 @@ psbao = {
   version = "1.0";
 };
 pseudo = {
-  revision = 65690;
+  revision = 66638;
   stripPrefix = 0;
-  sha512.run = "553146a32653fe020c708b3b3a05285f3be5e8b9ff97e6c6e1593986438bb5e7ed4c094f3bea4c2774ad3897a44cd5b4a7e6a864e7423da351400058db64ef62";
-  sha512.doc = "c32b1f5de9d13099b4eeb2dc9b3036e7199ed5ddbd90010de0846f077373bd90fc6ddbe188d00bfd6a7b8f4f421907281a7152c8a09a8a8c03b820f95e9247e8";
+  sha512.run = "223e02f58f4b1cb137241a273cc6aec3c2923ea49bc74fcc220df449d01e6b3009ac6303a99a5d368ab3cee62d6542707feddeee30f527c2be1ad8771244ca85";
+  sha512.doc = "573b023b0d9604ecc98b774f77016fcb971c7c5dd508fd272169ad5d3da9f5273d78c07801257cad5c1461de2ee425f036afdbc827ae343e9ae151a63c86db73";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "1.2.2";
+  version = "1.2.3";
 };
 pseudocode = {
   revision = 54080;
@@ -34520,10 +35379,10 @@ psizzl = {
   version = "0.35";
 };
 pslatex = {
-  revision = 57434;
+  revision = 67469;
   stripPrefix = 0;
-  sha512.run = "64dc0f10f3aaa78a4d611d21601e5fb3f27c7c97bcf04f5dd3192f5253660edc862481f3b1bcb8b18b6cc07a6064e78953c31470bf36bc70103f2a83374483c4";
-  sha512.source = "086805aaf0b61b8e3e561627388ea1af67ef8dba3a0b5808ef3d9719652e76abf4353345ca2096e31fb33c9c960b01b4972754f29532a25e91ad59dc6c1d6cae";
+  sha512.run = "b08cbb8ed7a4b89b9018b5b31bbaaf8ae9c520ffbf47b54d239b30ca67a26e138206c1f2f9951f8cc5da49357c0eca9a3df9eda4f02119355cf2be0a85c3a825";
+  sha512.source = "9943941967009a9d3cac0841318c6a31818f7496ded89fe6cf4d6ee8718913d0145497443762d55e4f80a1fee496b5170ff4b6c13266f04e6ce4c5bc2bdb5728";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.3";
@@ -34572,13 +35431,13 @@ pst-3d = {
   version = "1.10";
 };
 pst-3dplot = {
-  revision = 61615;
+  revision = 68727;
   stripPrefix = 0;
-  sha512.run = "bd23d297253501185e817e0b5f8f13705434568d73be8f4e1c8adfcd3b6c55438a72997601b6696af91cb6733d2330ff810a0678e19f79203bc979c49c5cf722";
-  sha512.doc = "544b0fc05fe259d49861e71718e090a45dd0de233e90d2ab248ce2ed427f1113891fc58062126763295651e540fc306f0bf9b4fd516069b205cf063060a03c3a";
+  sha512.run = "1fefbd8b34e49b7cf6bc35bb761ed9aa49d062d81f280936b86b58f123cf6023e038308f066a2f9e62c2fbd4181d3dad781525f289a9f5e58acefcdd344fd69e";
+  sha512.doc = "7e15351efd6190ff52e10287a7797a6ef0944561e381793290fbb56f6f2f174447343d10c9cfbfd0f61a62755ea0b3eb7adf52dfacf1b0b7ef2ec159f393b4f0";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.07a";
+  version = "2.09";
 };
 pst-abspos = {
   revision = 15878;
@@ -34786,13 +35645,13 @@ pst-eps = {
   version = "1.0";
 };
 pst-eucl = {
-  revision = 56474;
+  revision = 66924;
   stripPrefix = 0;
-  sha512.run = "a076efb338fbdff19719156e32cfdbf74500de253ee358dbf64207b762333ff2d3d167cea84ef4ba906d247d96adab9705091c5dc7003400097356b1f54f9305";
-  sha512.doc = "24df2d92c6879f20f4515196d5390fd9b0d97476b662a8e7302664be5afd08a3127dece9a530df5cb972feff6552321749b38a682a58d7924393304ea1c75a9f";
+  sha512.run = "9310a2ce965b8cf9b03aff8c505515cbe386e12fc5973a4d8f26bcf2541a856605c8f14849baf649b1d1c24219dd4fec6ea5375ea43e8ff533171dde4e7d5ea7";
+  sha512.doc = "1054740975d1be6100ca269221925af22fd1760a5f88ad942be398a889f59209da79e31c53c702a02fe639d218d80820c3f1d1033349c283e9fb6e05c7e7643e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.75";
+  version = "1.77";
 };
 pst-eucl-translation-bg = {
   revision = 19296;
@@ -34876,13 +35735,13 @@ pst-fun = {
   version = "0.04";
 };
 pst-func = {
-  revision = 60933;
+  revision = 66845;
   stripPrefix = 0;
-  sha512.run = "f33d9c983c7b79fb6d8f1a8e473afda6f2a4b23e133ab004f2fe4633e4f8fc3fe885034b409f90842c4a4cb81c86527edef445e1408a57d78aef1a006225e85c";
-  sha512.doc = "7d0ce738ecdb79eb4c630a5bd51ebc47d92f6ace9b35ee60928520c51c96254ff1f554ff08d8d8addfdac2b28b3d7dc3f90afb73838abacb3f1d8af0fcdf37ec";
+  sha512.run = "28c50cbd77b2400cd262b8156c01c2adf655da279a33703502d79590174824b0470a788db1a04c7439c63d1870eefa19a559f6f76c0c80c076cfb259eb920970";
+  sha512.doc = "b25be44e2e42b35ac48730aeb2d705082b99d5bead17119e1c5e353790f25aabd294043f753291265dd102ad7d8448c1592e5fa486fda317c1e8bd03aa1a3ca4";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.99";
+  version = "1.02";
 };
 pst-gantt = {
   revision = 35832;
@@ -34940,13 +35799,13 @@ pst-graphicx = {
   version = "0.02";
 };
 pst-hsb = {
-  revision = 61322;
+  revision = 66739;
   stripPrefix = 0;
-  sha512.run = "0deee202545f52b65b4fda752da7d43608118f33c9d3f520963b27229e9ec7b6d0161dc490b9ee6e356887b152f5ecb86640bc335d902070b1bda3744d9fb5db";
-  sha512.doc = "924a7a4a1aff03e308d5c8342f9c370669c8dec48a75c782beb887f2a05123369d5365ea86e2d2274f3dd930160d7935356cd5e9b4a6f8793bc83007cf48f841";
+  sha512.run = "d3eef4f4672b938b84d1fafbf22889f9d7116af9a0574a95bfe2a7225d4a7185abcfb862ba7309fca924993f9665f2086a35edde97306c4b2311cf18f1763929";
+  sha512.doc = "a2664b558f51c43ead6c078f0895f4a6c5c55045b8485e7f564bac10279b997fe082279e3cf2c35a7f47f78fd826ecc5a65daff112dc8659768c3b6275b7c854";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.02";
+  version = "0.03";
 };
 pst-infixplot = {
   revision = 15878;
@@ -34986,13 +35845,13 @@ pst-knot = {
   version = "0.2";
 };
 pst-labo = {
-  revision = 39077;
+  revision = 67147;
   stripPrefix = 0;
-  sha512.run = "a8bc971be59f1072657d9cf9d26056ba800023858df1d060ccc7e31d2c533337520e9583de00085842dfafe84a590e0c90706ac00bc98da282a5454fac76aade";
-  sha512.doc = "1b35f244a45fd18eeba484f925292358b5582f0ba18a9c6622afc67ed287e74d0c1c876ff78c19de0e9b53f55c86f30f47a6d179e0142e79aad5c5799e497ba5";
+  sha512.run = "d04fe4359a34f466d306265919bb13483d5105d6c77c8e297f1f964fc8224b6923773c4d3a0c58f8dd9b809deddb4dfd4f99f205f09de6a9e64a2398b17b7ae8";
+  sha512.doc = "98d55a590607e78c55402af375fd25dbe1d44bb4793d5dd3327311f9e9457e8b6073cebfa3dc993560d5144426e8195ec450b030a8897c84c8b711afa28a3f91";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.04";
+  version = "2.06";
 };
 pst-layout = {
   revision = 29803;
@@ -35051,13 +35910,13 @@ pst-marble = {
   version = "1.6";
 };
 pst-math = {
-  revision = 64732;
+  revision = 67535;
   stripPrefix = 0;
-  sha512.run = "b87863c646f8057baf3fc07868c09349b8803a01008782ab814a2f2eb126d6e574844be4733b06c3f16fad286aee3081b13a17bfbbef9cd019c836d2c9a5e4df";
-  sha512.doc = "c5b26a73075910edc8232df349ee76a8264ab533e4259146224cebda4d6709867f7edcafab115ac3fae977c9d11b38821b4b085a2ab5529ae585c1daf8b738d6";
+  sha512.run = "12bd81bed4fc5de91cd4db49cb97a9911848c347a9a9325cb61637368bda4e0f35f9c5c348bd385d46907b61aa06682ae1a9d70616d4c5c81659550064d4cc0c";
+  sha512.doc = "1b07b3086fa3e1d12f255632ceddf5b30c219472763cc43c0649b669a6014bb76e3a0fe7c182d0ea24c54fee8d2efe8399867321992e20f7f418d28198661bd2";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.66";
+  version = "0.67";
 };
 pst-mirror = {
   revision = 60506;
@@ -35097,13 +35956,13 @@ pst-ob3d = {
   version = "0.22";
 };
 pst-ode = {
-  revision = 65096;
+  revision = 69296;
   stripPrefix = 0;
-  sha512.run = "dfed4dd1a61650be4aa3158bd33f8175690e951b6410a1a1be8c46426cc7812a59cd16e5d1fdfaede81ed3aa11c08c9d9e9fd9b2d420a643c769efe12b9bd2ab";
-  sha512.doc = "0e699eda64688a3d071aa889c75e52658759a2c34bc35257fc1126a93b594c7cd463f127a4a2ba77823bfa45ecf44f4daa4439439856ea24431ffacb8be8956e";
+  sha512.run = "1474e118f16c644c7d63ec89a42ea598443cdeed56e965fb85bc75adea4a8d5572a49f07417786682844523d30438a0a2798e9e5635879891f039453e53c4264";
+  sha512.doc = "f46dfac052060fbe8f41d74a59e85c3f7b0d0d25bf2b65209e7bb53d6478947fcd4a2af9b5e68bbe585afe94fa53ccd80aa80f2e1e21b68210d38fbd114b217b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.18";
+  version = "0.19";
 };
 pst-optexp = {
   revision = 62977;
@@ -35116,22 +35975,22 @@ pst-optexp = {
   version = "6.1";
 };
 pst-optic = {
-  revision = 62977;
+  revision = 67052;
   stripPrefix = 0;
-  sha512.run = "98a926fc0ffc8a2e2ff6c2a29ccea1ca08b1ad90237b44727e4344b1d86a356cb9ecdf252ec65455e0097c101487085304295d750ac40bfe6ad8bc1081e3bbde";
-  sha512.doc = "86ee25200efdb67a9c791594277a25e262f78ee0fcfbbc434d292cf61445e3d41b5ee1271fda9d69d756bd4ef70992195ee0e7b37023ee131c69ff7f9a46b980";
+  sha512.run = "132b3eb936678d51a4581efc14998c794047959f89789ed22098326912d00eaa0e39396608d3c1aa78f1fe8bccb21ba2ab454bd2b3744ba252c24f164c58e23c";
+  sha512.doc = "a7169c870dbcb336025aec5d475afa9691ee524b35ef3404f2e3244c4e4c0f08def16a8eb458eed1a8ebce27c969ec80004904484615588fdbb401b863052efb";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.02";
+  version = "1.02a";
 };
 pst-osci = {
-  revision = 15878;
+  revision = 68781;
   stripPrefix = 0;
-  sha512.run = "d36d987ca50c50c0840660070dd7eefd4ff49f4e86b1a6f33bb9e549a1468f4992a7eff6de56307e5d5bf4e8063534cf4f658df8e98571a1d86fde3555a67e08";
-  sha512.doc = "80d99115c7c3fdcafef8f4be99b3066799cb40571e219158abb48de0ba405a0c977d0158c20e2b550895d1e63580bc7366338fbbbe7add2c3a89abf618583ecc";
+  sha512.run = "c888d41f7e14cf311b359fd37aa0557fc9fc639b76dd5db782099f6d307c4e5e3214df2a670fcdd3625818e461c34ccc0e50ba617714e58aced1c71b484b63d8";
+  sha512.doc = "5abb2eb53cb6cf1492c9bfad164ef8ed1088e6b6cbe1f0af6bf0ec10b34de3c5b17163e2bcfa52bf0b4394f3945887ed0e532fdc6a8497189325d10db50f4577";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.82";
+  version = "2.82b";
 };
 pst-ovl = {
   revision = 54963;
@@ -35295,13 +36154,13 @@ pst-solarsystem = {
   version = "0.13";
 };
 pst-solides3d = {
-  revision = 61719;
+  revision = 68786;
   stripPrefix = 0;
-  sha512.run = "b70a15acf3f8ec551f8c10d9441101950c7d6b2e886ebcbd9584ada67141d3068b66339e2df9cbad85db9b3950f4463cc3d9ff92a4f93241c37b591b5b5ecc6b";
-  sha512.doc = "15a7bac7f5aaf751c4b450e07c1b7222bc569ce9e9b7359cc53019f9295561b85addc3ac0cf16c791a21b88c6cfae720a54603ac1da2055f0c99296238b02fd9";
+  sha512.run = "fef032b9aa9a87711e2c09e0a7213a2c3e70451e64060ba9fad81beeeababdc622ec46107f077ad2869a8ba9420fd81e3e9df96ba60f98530fb3238d4bec45ee";
+  sha512.doc = "3bbdf115c8cb4e0dec4deebb1bf8af6317eb0deafa19054404f992f79361a913b26e1523a31105b7fe0addcfef438a016d6b5c5780da564fc108a58f449ee86b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "4.34a";
+  version = "4.35a";
 };
 pst-soroban = {
   revision = 15878;
@@ -35323,10 +36182,10 @@ pst-spectra = {
   version = "0.91";
 };
 pst-spinner = {
-  revision = 66119;
+  revision = 66115;
   stripPrefix = 0;
-  sha512.run = "0081d28bdd4ac90ee3070f2b07d08a4a547d3a82351c33dd6ba8379d6bad252224f40f6e718727a1b284eaa08b4fda252751d9f923bd10a46223b459b7f02f28";
-  sha512.doc = "612acff35b8953827125590da90f31bd5ef0a6a81f14ba0976ce7180b6a24e42e27077b5d0a4ec6737217b8891f399b37536123baebd5c04df2da05310a5102f";
+  sha512.run = "ec6925c95e398426089234227b29a2129a58097d1536b0f1569c4a0e6b4d7deeb0eaf7d9d5ede851c93cff49da05772b6113ad7ba0cbb34b854e3b2261bdc41b";
+  sha512.doc = "1cb4907c6b5feb39c947361176edeeb4da560935d53b3b56507642142f3dd61d98caff293c0d686bb33383c706f1cd865dc3644379564310b141c3f0204cdb57";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.02";
@@ -35473,22 +36332,22 @@ pstool = {
   version = "1.5e";
 };
 pstricks = {
-  revision = 65346;
+  revision = 68767;
   stripPrefix = 0;
-  sha512.run = "aad3d0a383c8b815324a3f07c02a6c747d026a2b107ce4e24be6dc868dc884e0202239ea19fc4ecca786000ae61169422095217d42b826466f0e3886c58cc2b9";
-  sha512.doc = "c996a3e2d4c088c3ae6332855882f461a931969e9f88ad64bf656d2b11ad10bf06e5076d381f316f95de1d40d68e437ae8cd1fc450b1e387ee39c54e0d7feb4e";
+  sha512.run = "606b1b487d523253c71d814289ccef2fe9c91c091f7b588fc842b2121da3ec592387774565b3e998c44bbf0ef17df0dd2207f632ceb8bb04df8f8b203603c4d4";
+  sha512.doc = "5df5f84afd8793de4201738a032df4c95ec017c67fe19966d908221e3ff69e77589f051232d1fa8fce7f15fe5702ec3abb6080f4676c2a31671543933ed32ed9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.18";
+  version = "3.19b";
 };
 pstricks-add = {
-  revision = 65067;
+  revision = 66887;
   stripPrefix = 0;
-  sha512.run = "89a2e5c037dcaab7b14bb673cece21220f66865e75eeae5f2dcd0ccc48d69b26e906d97e07fef4a0fb1908906d47c75394b06a1b378787e1c3d02eb7df11a1da";
-  sha512.doc = "1021ece59cb0cc41c0ee9620c84a2de8aa5dffe7e8ff7f3adc286054f880dbadec70b888c7e23152c318e5013e581e0c34a68581ec1eff8508397730a5fc8886";
+  sha512.run = "073ce9b5f97c4432d87f51a3b239c758e2840ec894847c334dcd206433e6c0a45575ed2214c00bd013f9ddc0945a696a8eb45b2efc62d8425d1c9607da658850";
+  sha512.doc = "552fcc2f0d448bd1d7f643a5c9f2521f72fd61a653363eab3bf6f31bae306a9c6694ca8d64ad5a5997adea9b92978aa366ece8bd7966c9d129942f8f487b99f3";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.93";
+  version = "3.94";
 };
 pstricks_calcnotes = {
   revision = 34363;
@@ -35527,7 +36386,7 @@ psutils.binfiles = [
   "pstops"
 ];
 ptex = {
-  revision = 62464;
+  revision = 66186;
   deps = [
     "cm"
     "etex"
@@ -35547,13 +36406,13 @@ ptex = {
     }
     {
       name = "ptex";
-      engine = "ptex";
+      engine = "eptex";
       options = "ptex.ini";
       fmttriggers = [ "cm" "hyphen-base" "knuth-lib" "plain" "ptex-base" "ptex-fonts" ];
     }
   ];
-  sha512.run = "6e2e40d86740a24550cb4f55630db81bdc777daf87533cb23b4fe041439d00e10cbb7b5fab92e33828c87945e710ea3579d76a8e0fdae0b8ba069b5eb33968c3";
-  sha512.doc = "96aed9e990d013c7f5310a5ec86a1f7465d0de8503009669a5e10ccf4d3ed8767bf1408cfb04cfa8876e02640bc4a3b07249c331cc6190e391cb4a5b8aeafa35";
+  sha512.run = "dca32af2c2742207b380c909190204049e29eb9c824f534c39757e3544e305a9395c9fd6ff76d855f1e7fc67e0999bfd863640fc2d2f45dc44bdaa7df543568f";
+  sha512.doc = "160902b1b32b9725f4c7cabd06dfb612fbbeef31845df108efd50917d85ef619ba62d03760852d31a21a23e2bdcb5035292b317982d7fede260a696041bb2293";
   hasManpages = true;
   license = [ "bsd3" ];
 };
@@ -35566,11 +36425,11 @@ ptex-base = {
   license = [ "bsd3" ];
 };
 ptex-fontmaps = {
-  revision = 59711;
+  revision = 65953;
   postactionScript = "tlpkg/tlpostcode/ptex-fontmaps-tlpost.pl";
-  sha512.run = "16afa97812d830b2b98f657f67ef690da420afe63ccf6f002131101f3ce9a03ff6e5170db1b316e9db521e4cdf89c7aedf26c57be162bf1c5b48fa4226e5e029";
-  sha512.doc = "affd6dde30276fa680a0d99d0a51650ee95260535dff717801d61ccb8165c5526047e46ad6478367a439e9a84721500128062b8cb6a1f33a25a65fadae4547f1";
-  sha512.source = "eb450119b3897f9e8374d29a3a9512819a05263d5829c81d56dc00dd35995133d1a3cfcadc59ce2aea52ac8b5bc195d27446f159356e63b433e235d1098e93b5";
+  sha512.run = "b864c185b5718dfa76e0d4385654ca8e319ab0cbb59911defbec8d6198879265d064087df233d9020f3abc4bebe0742530f40b2ae6e584dbb4f5b6ed7ff28d07";
+  sha512.doc = "4b21fe546634aad338630520bf68fce2a83f8e6fade99d170ef87a92c8308dd289ed130bf67bfc88419f8752454ab04730bfaa68de90535984590ce8435d87b5";
+  sha512.source = "028304d777bfd5155baf89fcd4003bec43e5a7f3009aa9250cfd13277d085cbe52cf49511cf664efa0c886b1681475b0c25eaa65624bf0b77d4ab4403ebb457a";
   hasRunfiles = true;
   hasTlpkg = true;
   license = [ "publicDomain" "gpl3" ];
@@ -35591,10 +36450,10 @@ ptex-fonts = {
   license = [ "bsd3" ];
 };
 ptex-manual = {
-  revision = 62915;
+  revision = 68147;
   stripPrefix = 0;
-  sha512.run = "3748c0c1ac982aeb2f8210d877b20fe9a6c42582d21fb7e43b9c254e787f22259a90ef1d398e498ede493dd3663be521b42d47cdfe0c5fbae3f43ad5be16e446";
-  sha512.doc = "f84a8a047c4387ee45214b6bc98cf2710cdd3497e5a6066fed518b754fa4dbcbe1602cdedaa0f48638f37801f7f7801ad40f288a2e5b8e03cb36848d3992a7d7";
+  sha512.run = "ffad7c7c67e7c6c92ec7b814cba8ca8cd7fc9935d5b6c7f685ee83b97cca56ac410ee2c15f8d86f4bbf443508f2e2224603c9abc64e734451ee94ce968425d62";
+  sha512.doc = "dc2643c258a98410d9a456e16794d70bf6de6e1a40b8db2bcf7fb40e20953bbe482cb26cf3e65b0caa19806e915cfdd3787ddcbf69108e2af0d83e03d3b0104b";
   license = [ "bsd3" ];
 };
 ptex.binfiles = [
@@ -35611,10 +36470,10 @@ ptex.binfiles = [
   "r-pmpost"
 ];
 ptex2pdf = {
-  revision = 64072;
+  revision = 65953;
   postactionScript = "tlpkg/tlpostcode/ptex2pdf-tlpost.pl";
-  sha512.run = "1893a49eb389914d7a9247dece7f67d9d6af05efca77801130726d6422b1a0150b56f29d3f133f433d70989f6ffcc2b44d209cd044c84ee0833c2f77b87f3e46";
-  sha512.doc = "f193b44004b487d93f025b34b72a17cbaf4111b1a6e1ceb4ac1b69c6c07aa4dce46cde510cbd01fb71fb08c06f7bbb415a4a8051de5861f1f586b756060f386f";
+  sha512.run = "6a4246d9fbc7cc6f37319d338df8320769cd4b1f0247186beea117b8bf228263f3a330146cf251a9e8e8c7232eb894ce6dad9eda840dd4a154f2502eae4c0f57";
+  sha512.doc = "5635ead2dfa20ce9b616073272452de5c68c55104d88b2362b87cafe4762608d681b0c370169bff78466520d14f9055e509efdaa4ecdb083c3c3111ad829978c";
   hasRunfiles = true;
   hasTlpkg = true;
   scriptExts = [
@@ -35635,6 +36494,16 @@ ptext = {
   license = [ "lppl12" ];
   version = "1.1";
 };
+ptlatexcommands = {
+  revision = 67125;
+  stripPrefix = 0;
+  sha512.run = "2a2924af70b0ed8d76f6062482a500371d67d5a3bc0b87382d76626b34da9c1acdf9c123ebfdab2e5e79041b10d0e327e9cd732781e5fa1620247bdf02dc21fb";
+  sha512.doc = "5b9fc92a4cb3597c0c95936d5fb6ad475ca4f9896f8165a0e391e591bb3fc9ea75ae79c14ee62197200d69d577df8025e6017960beafe6bef0bda90a6a615118";
+  sha512.source = "47c0d8ffd0f352a39f54ce32696fa67d25dd438de8fede88bfc5542409cf5576c953b40180b5ee1f469067e2ae5ea8543a68c84246ef9ffdc3c51c14866be690";
+  hasRunfiles = true;
+  license = [ "mit" ];
+  version = "0.1";
+};
 ptolemaicastronomy = {
   revision = 50810;
   stripPrefix = 0;
@@ -35702,31 +36571,31 @@ puyotikz = {
   version = "1.0.1";
 };
 pwebmac = {
-  revision = 63731;
+  revision = 69027;
   stripPrefix = 0;
-  sha512.run = "ab1351295df1586617b6efc850475c8bbde08ff935ef0a3f72f54402e3d16fc7aa01e80aab5a39330c4bfd9f6003f08a7e804c1caf6a21f4edd94cd1182e1d72";
-  sha512.doc = "844a684b9e9d3eb148acce41d7385150f57ed22d802a04dcbad57f7d23cb8a08f6da556c9b3d8e1bff9525728249e64766c8e0af143ba05d59316da289676e3e";
+  sha512.run = "aed495ad3c056a34f63416e570db395125719e9a9cb05c5043bd4f0d58713c28ee548c931a5c18d316d0a2a39c81671788f87b422f01148cf9ecdb52ab2a87d2";
+  sha512.doc = "0312806d06b3db91d2e0bf3df2c1f3dc8620c1f6b59e4e968232631edac217e99bccede5d9cf133f52409d8a664f69dfa072ab5d205f67fabafa0ee74db90d20";
   hasRunfiles = true;
   license = [ "publicDomain" ];
-  version = "4.8.1";
+  version = "4.11";
 };
 pxbase = {
-  revision = 66198;
+  revision = 66187;
   stripPrefix = 0;
-  sha512.run = "0c4d3dc297e78c373e9bb5cf6e5161b1607b693c924b77c05ca362e7791f2fe92fb50774121d85717adceb42732e877ac88c2200ab1b2b97deaf07f2ba54a3c2";
-  sha512.doc = "24e8d7be5a6799b712cfcb752082229929806805ec4005e2c05506bca77a4309b046a38ecca5b5115e248de2418e5c9a368aa894c4a8ae7bc36e8b9ae6b921d5";
+  sha512.run = "34fef6f30f53ea2c67394f931168025f7dae7f6e12904b862ef821040a15eb3eac0949ebfab7b1b3dfae8e9944fdb85b99294fc6214df0ce8c1b82eac2702ed2";
+  sha512.doc = "4e1fd7e88d8e17dbc4f65a7dab0f3c4bbcccf3b24b55085fafc9f393cd99a653ec2c4fa41ca85760436a1c7c6121848c57912ff649c302db6966a5c907dc0209";
   hasRunfiles = true;
   license = [ "mit" ];
   version = "1.4";
 };
 pxchfon = {
-  revision = 66073;
+  revision = 68103;
   stripPrefix = 0;
-  sha512.run = "79d73304aae1071088110c5b22dafa6c8b0a4dc7f64758152846c37f4df89695432106ee7f07bf6c342ecfb4ff89e8ae67cd3178625aeccdab9f52fe83a3c999";
-  sha512.doc = "50d2573e8502fa4e492793d163027252d597bca376f36b12f7bc9411331187544efabf4e30a1ea77fc0e4f1efdfc83f06fe8b663441d84f9360a4da501187214";
+  sha512.run = "c79d32b99873e5262d3497846af0fe8c327d574ac61030241a8a1d95e4439794439cd3fb75cdcae51206e76bd4218a6778717492c036ab71aecd8e67a0040990";
+  sha512.doc = "1f50dcd95cf37669330d426238d398d5bfb2503e4db06287f7a361ef87136547d1020bf1d35fcd9504ea5017dc9ec0a0cb8f9298e4d178ec4c7cd426d91f1d6f";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "1.9a";
+  version = "2.0";
 };
 pxcjkcat = {
   revision = 63967;
@@ -35756,10 +36625,10 @@ pxgreeks = {
   version = "1.0";
 };
 pxjahyper = {
-  revision = 66285;
+  revision = 66272;
   stripPrefix = 0;
-  sha512.run = "3ac06bfc5be7914356d10e53574c23b417ac1792b75f0d8d2bea9542046d0eba66b505db5bb0136c79b21419e61fc18d0f128c29441e40e764608dde3835cbab";
-  sha512.doc = "e367cba02ff9debabba58923e1b706b9ba2ef7b06416f7e39473ee64b253cb08c1bc60949e505ba416c7d1de85c6de481d9ade102e9c33a59bcebaa68967159b";
+  sha512.run = "f6e62e0dd4a5da2e9c702fc09c311a0661d58668c4999eaf5209792d3c88001b9e7d80cc1a9c259ec5e2668a7139a4fe90dac2b23ea756f238a387a6c7e66772";
+  sha512.doc = "f08af33a25f837e86dcd6dcd0f96d9f7bb2570eeae9011201468fdc9bac50bb8ea72d4f069753bb0c93aa9d61952cebfbbe936f65220167e4648cb206b901aae";
   hasRunfiles = true;
   license = [ "mit" ];
   version = "1.3";
@@ -35783,21 +36652,21 @@ pxpgfmark = {
   version = "0.2";
 };
 pxpic = {
-  revision = 65803;
+  revision = 67955;
   stripPrefix = 0;
-  sha512.run = "549dcda0e4667fba7d7ab6d34a46fc890f1c9c7ec168b015e8ce07d2cd6531880433dd657dd46ce63fea534d87f9597be365813446d9ea524fcfff61f139d6a0";
-  sha512.doc = "4bb203443bfd227a7cb1d2aa2ae43dd69e3c52c7a81bb9a94fdb6ed41cc93d95016c33801bba28324a02b8533395f0affd90c9dbf07054def888c26a3aaf3425";
-  sha512.source = "7a68bfc2fb2e2dff88d0515c050c32ec4fa13745efd9bad20a216a9425bda688a31a881b955e2cf94eac1fadcc54dd6df0d7968c90acdebad4101a871d3cf40b";
+  sha512.run = "4eade52198c6ed8a9e04380cab15098435b2e158f8662d32c88599e02e49a2f7f6257bbd6fab8d3c660e61ff679aefb38d29b4787fcef0a3510776a21707526a";
+  sha512.doc = "28151cfd56136ef07c9402fb8f4e0da4a2694164a38e7eaeb5045845731b0b204813b9c0f2b07f9998619feea24effd049cb42a0057841a6a3b3bd998dbc0124";
+  sha512.source = "f5281b971ee70e963cb308a1906bfe8ef96939005f8b5972680db8565c1d0c9697d674426b0833064a07dbb086163c621d764125b3432af3d960a3e466b250b5";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.4";
+  version = "1.5";
 };
 pxrubrica = {
-  revision = 66307;
+  revision = 66298;
   stripPrefix = 0;
-  sha512.run = "f274e1bd151de3159a415287e6a97b5f3035119b799a45ae782377c44e73010b69f6e7f1e491149f4a884041bf8696c767cd8779731afd8cc1fce62ccce1fc9f";
-  sha512.doc = "91cd5efc54e6c8dd3327a16e722386ac12d66e695f2ccdcb951b77199bb64b081645831c3db6d0c9192348302b0fd8ad63fefeef6ba6ecdd7f1547a38ab28b29";
-  sha512.source = "0b14787df1d93639d4d07d1edc9d0b2c73119af858b59ce816a17646f5295d96d7716d288996eb685e3ed5ba457e185d520426f3bb88b7d34a64404dc10eba74";
+  sha512.run = "0ffdde0f17b1bcb90a858d6dd6ca204eea552b49e91cdc797e6364e8b59cca4808a293154426f9c3f52dd2bdc27e93c091bbddbe6c15862fec144b9e4cd6ea9e";
+  sha512.doc = "e2a217a5029857d66882fb5a626e7846a2cd282b9cb2f5a65e6a61919bc7ce23a16294bfc27e9b189a8aee6bcc95cab24a94a6dca221f63d650f38c5e5fce28b";
+  sha512.source = "f513b8bcc4e89323b199fd4c793a9405a94206e9498f3c298fd81a7fb07cc46a6e624e71d30b8a7951bb7b081be3ae8c621b992a0c290e0334c834d83244fed7";
   hasRunfiles = true;
   license = [ "mit" ];
   version = "1.3e";
@@ -35821,13 +36690,13 @@ pxtxalfa = {
   version = "2";
 };
 pxufont = {
-  revision = 64072;
+  revision = 67573;
   stripPrefix = 0;
-  sha512.run = "3c302158a0d2dd59d8268284dd3df3352ec2fd4bf102d7cad59276dd991fcf190ff7d54646185758ba19f2f38f61d23ab4c44e329c6f4b56651dd3929bd99008";
-  sha512.doc = "63f824dbc203379179c57b948c7ff948bc0abb29f0f5c1c8e7d0e575302316b668a72cc9ca848e29687833a9c8b3510eaccf47bf27a3136bd978c8a94928643e";
+  sha512.run = "370d82da425014bc4464415b4f0fe6fa1cb3375979734731ea829942ead4289e1ac6fc47c1b5c42185c97b9013da2e779c90c10454ea2e4b6e5d65540ce4179a";
+  sha512.doc = "551f14e0603c0ebd59c1c250a1f9e894683f69d22de748ee6cca05ee78c75899aec8671fdc784ebc5219163068dad7a98cf94c831d81091892a72e7777bba5dd";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.6";
+  version = "0.7";
 };
 pygmentex = {
   revision = 64131;
@@ -35844,13 +36713,13 @@ pygmentex.binfiles = [
   "pygmentex"
 ];
 pyluatex = {
-  revision = 65855;
+  revision = 69372;
   stripPrefix = 0;
-  sha512.run = "be9b33158b87cbd95d2fd4eb15bf834f1c828bd58e4f6b8ae58f64de1495b83ae79315311789aaae3266b9f171c4d5ba156adca28735eb9f628b86f45f2f330e";
-  sha512.doc = "86623a834885fa548a6aa84f6e471134c4200ed4cb2b915f6aa7540b38bd91b2daef85c9b8a60a92b63e23b20ea8ed47cdf0cfe3b0e7f30c369024bffe59d959";
+  sha512.run = "7d400d0cd1af26732effc31e2b7a7e0cb501d712230805204362bb5fc456d379258ca2075f4c902dd6d4bb6004ba154d47ebd6cbbc5febae8d07c113987b1a60";
+  sha512.doc = "3dea8e36fffdc92dd5dc68279e61d0d1bfa374373ada7236b1717b5df7c5cd1baaf2fe8fdfa02c5f64fb8ddbab209055cb707a72ca839e63ea00ffb480f6613f";
   hasRunfiles = true;
   license = [ "mit" "lppl13c" ];
-  version = "0.6.1";
+  version = "0.6.3";
 };
 python = {
   revision = 60162;
@@ -35870,7 +36739,7 @@ pythonhighlight = {
   license = [ "free" ];
 };
 pythonimmediate = {
-  revision = 66465;
+  revision = 66461;
   stripPrefix = 0;
   deps = [
     "currfile"
@@ -35878,8 +36747,8 @@ pythonimmediate = {
     "precattl"
     "saveenv"
   ];
-  sha512.run = "f9e984788484a7fbc839a31c2d410d3f0c91408a67079f0c9557506e31e61e9359de25ca00b27d1c1cf875a8a618c0d3e4ad966d8520c061ad3db6fb1c78dcbb";
-  sha512.doc = "5b7dc7087a01317029d27c9d8ca8eb5e517a8021b837b990d5cf44031ffadd461855694ee4fe419e7a715c5a62a0abd8410bf1e4730ec5403fcae9e2a32e28c3";
+  sha512.run = "a6497acbf8b291e3f9c19a788d853725c9bb0283f4d8da67ccbd3b61302abf8a0d46f16eab2711e3767cbcdb79659d8ee35639d206ede7b578d2dbfb33a78ca0";
+  sha512.doc = "f12e6449f307c0229907085ba6d164a4f2f9ed861a9485e5af5d3a76a6dfcf08e7a38c56452e0ed0fc490d0a90bad151b3ac7e8fecbeb716f683e928a0cbb8ea";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.4.0";
@@ -35900,6 +36769,17 @@ pythontex.binfiles = [
   "depythontex"
   "pythontex"
 ];
+q-and-a = {
+  revision = 69164;
+  stripPrefix = 0;
+  deps = [
+    "einfart"
+  ];
+  sha512.run = "6a2ba84da635b700df2a39d69240b62749454d245ad6bb7e7ee8d87f8125f82575fa7c9e2ce4fb2b51bc0af2749135c5ba3bbfde443344ef950f6ce61a79b678";
+  sha512.doc = "885a499e877514022277317c5f4d4fef22e5a0593b9a69cea2021e2326b4f57662daf55977da5078ac45f0146a76a0cc644498ae6c2c9dc49d5e5c8a39565037";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+};
 qcircuit = {
   revision = 48400;
   stripPrefix = 0;
@@ -35935,14 +36815,14 @@ qpxqtx = {
   hasRunfiles = true;
 };
 qrbill = {
-  revision = 66304;
+  revision = 67724;
   stripPrefix = 0;
-  sha512.run = "384aedf221e5a2ada24487f85968f209636c8026939844ea41c7ca2616c4b621430b1cd5c726715c652510471700c1092730634529794f746b55bc7989d257eb";
-  sha512.doc = "a60485e65749fca433eb95fd99bdf96e92bd297c9d5fac7339d9ba6a7bc82d15e1f18f1cc154beb70e04c7e4a02c962b33d7b7d1d42154aaa5f782c526c08d39";
-  sha512.source = "6f14d0d4f0976b3b1977baf3bc383718b41fda5682ddecebaba2f5ef6dbcea758046ccc1517cc8909d2e51c9af55a0ece5e0b55b6ae40f3e14d9f2fc869cc92e";
+  sha512.run = "61a65a020fb5cf012cc08d6d852481ce8712c214fa7cc446ecd0d5a68221f29ecfa710e81889cc92d3f3895105f153ca5fd54b798261ec095a5f06ccc75cc4e8";
+  sha512.doc = "e348c90fb8ee446551fa2747763ad611344279ce00e0b8fc3772f1ca0b9bea674d1d759fc26b8955261d853b264d9e598862f0bf80561f23b4d3eb038a45f248";
+  sha512.source = "0466344e7d7fb00449bad39b5c42b259a8fec4d8472bee7fbca7acb702777f7b30f0a9469e97b3b6d03ba851b13a66cfbb5d87898881ea35089976c0a7258798";
   hasRunfiles = true;
   license = [ "lppl13c" "bsd3" ];
-  version = "2.00";
+  version = "2.01";
 };
 qrcode = {
   revision = 36065;
@@ -36000,13 +36880,13 @@ qualitype = {
   license = [ "ofl" "gpl2Plus" ];
 };
 quantikz = {
-  revision = 54911;
+  revision = 67206;
   stripPrefix = 0;
-  sha512.run = "e31e50dc3f854f7e2914214efa945e881ecd7ef17eb9a5b8017d911b0ea7bb8f57029a956aea9afecce551c289f08d5c9faed5f9b785d26f25cfd52f64a2ec6f";
-  sha512.doc = "aba9b0f6466f62bd806b5c02671d42d344c18a353f292c3193053908ef948801b0883bf9a47c51ff12b0059a2dc6040028bda01fe51f113ad576f0e8c90c95c6";
+  sha512.run = "af7a59b5fa4111199351b3ee6a14ecbcd6f6e86041a7f516c97f0cd4349a2d96935f138969e0029e4f5f8b8650b7efcef9554bd631c1231d371ec323d7b41024";
+  sha512.doc = "a5efd5af9c89a13afd29a06215becf7544e9643697759695f8be2ea39bd62f99748369591cdc619c18b2bba9f0a0529ea6ba0a7be1d9b4ea1c9a8a8042ff4426";
   hasRunfiles = true;
   license = [ "cc-by-40" ];
-  version = "0.9.6";
+  version = "1.0.1";
 };
 quantumarticle = {
   revision = 65242;
@@ -36025,6 +36905,15 @@ quattrocento = {
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
 };
+quickreaction = {
+  revision = 66867;
+  stripPrefix = 0;
+  sha512.run = "9915f2032b336f50f784dddf14f69df6bf59ea0c1df668adbd36cbddf98df601605ec6a245e3fc2011742f6349c830add2ffadd49e4389c088bd15bf5bbe7a7d";
+  sha512.doc = "c71b5b5a52e12a50cb52632225e9c70acb40ad4796b4b8a922d810e8d5d34da532e3f2b0b708a7a896756f18edc2c39376eef4748e80ebde5869ec44e6af0765";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.02.01";
+};
 quicktype = {
   revision = 42183;
   stripPrefix = 0;
@@ -36034,6 +36923,15 @@ quicktype = {
   license = [ "lppl13c" ];
   version = "0.1";
 };
+quiver = {
+  revision = 67779;
+  stripPrefix = 0;
+  sha512.run = "b7eda520bdfeebff570458d36e22b1779bd16c14070192072987c7f1131efa33c6f1e7ff8c16f73c338fbfe6ef80e656c2ef061ad9ee15885b7f5e8f1195ffc0";
+  sha512.doc = "42bff285adfadd6655941b0221b2cf0d9a457a638997591220b564040acb94b4c57bb9dfccf90679c81e301618e8e4b5ea19c1dad9fb478dbabe1c2dbe4da991";
+  hasRunfiles = true;
+  license = [ "mit" ];
+  version = "1.3.0";
+};
 quiz2socrative = {
   revision = 52276;
   stripPrefix = 0;
@@ -36043,6 +36941,15 @@ quiz2socrative = {
   license = [ "lppl13c" ];
   version = "1.0";
 };
+quizztex = {
+  revision = 68823;
+  stripPrefix = 0;
+  sha512.run = "dbf234ba1d366bdd2a1be442c4bb670efe34d67584386ab1dadfa8afa2ff8551ff03ed9c441f6dc480bfed36ea79082048aa6f0e182f4b9bb5dbce7782c81391";
+  sha512.doc = "5c9242df37a22ebdc33d834acd95f760681eebf32516857d6b7ef866ebd00060017ec058c7a628239aa65cfbe62d0335ec00d786d4f9558ec754687b161ea017";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.2";
+};
 quotchap = {
   revision = 56926;
   stripPrefix = 0;
@@ -36074,22 +36981,22 @@ quotmark = {
   version = "1.0";
 };
 quran = {
-  revision = 57601;
+  revision = 67791;
   stripPrefix = 0;
-  sha512.run = "6df94a192fe113d39dd1a8e3223f7261caeca26243c1a229d7fb2aa4a34e976e23865b7c680cf9ef768ae182a418da64d8a52a757fa4d9f242a4e34aa3048a6a";
-  sha512.doc = "e8343ba6708d1268082192dfb0bbab200aa5a45da958d772dd18af21d466d069558755ef9d738a680537e7efbb1276c6c52125de0eec7222f4fe2089bd500d67";
+  sha512.run = "d725825669bce286e05ba5a6a4034f2a485434d40cd32d7f9cad42c1bc7e74001a0a0d1784b5af73c1075166835042406c42839bdd6fca40cbb06b349cc685d4";
+  sha512.doc = "1d706f0ed780efb7529eec16dc9e76182c584113f6d5bc58521de023611401963636e6370c8e06082548da191c4523c7017c59f164d1cf5b234fe7fbd4522689";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.81";
+  version = "2.2";
 };
 quran-bn = {
-  revision = 57602;
+  revision = 68345;
   stripPrefix = 0;
-  sha512.run = "1630d336c3be2cd93a338f572f96d35b4ea40862fa6dc3549a8e2b5bcc3b83e663592c9af362fc06a964e1206c0b27d43fda99ee1cd1af5d00f53ed45b52c0e9";
-  sha512.doc = "871baeb8f1af5e622d587144095a57fe20cd74a5fc95831581aae2f327163bdeadccc84686a4892e85e038b5a3611139bdbe001fbc870341d83bc30d478b3929";
+  sha512.run = "24694bd309d78e2c0315d60027502a93f3beedc436e3b5dbdb3491d9320ff4e2439914a3d3b84c70644ccab3858d184d948a006b13e622af5cb6c1211cf6f5d9";
+  sha512.doc = "d82f949a61f668b6577527d8ee329cd7e23fa7d584eb1c7258be3afe819d6bcf249d9db9778b6da4f57cc1f239d0340cc8b64855eb25d5825d47cf1e298dfb80";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1";
+  version = "0.2";
 };
 quran-de = {
   revision = 54191;
@@ -36100,14 +37007,32 @@ quran-de = {
   license = [ "lppl13c" ];
   version = "0.2";
 };
+quran-en = {
+  revision = 68790;
+  stripPrefix = 0;
+  sha512.run = "75ed9751d6d9517970ca0cf842eca390a172ae24eb12be04a2b97ee1d2673446064489bf594a172677cd785c05ca31587db8b3f64f8d8a1080ce0be0bf191356";
+  sha512.doc = "7e5999f4378a32dca0b47ebe63a1fbaa331110d638f1b2d3308964a1a61d4036967aa1712e1c07bb0d3bfaa2106abca72302df06a811b1412d5029fd94588d2b";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1";
+};
+quran-id = {
+  revision = 68747;
+  stripPrefix = 0;
+  sha512.run = "88328a074b74b6197079c9fbe92170989a1c4ba139e2a84ae96f803ca5805000e11024861e9f033fcba5f346b6bcf38a59231b6849fb4af586eab33795efe7f7";
+  sha512.doc = "42d6c03ff54e65e94196ea0b66e77921dc6bfed3f45605835fd6721aae3b97ebb69acb2362bf0fb6158348fedafb8d543f32602358f3466ecfd89cb56650a074";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1";
+};
 quran-ur = {
-  revision = 57597;
+  revision = 68314;
   stripPrefix = 0;
-  sha512.run = "217d3bdf7ae9391dd300ab0ef390dab34d83675be41c6049897914c24abacbde29d57a68e6321058d91cc63a1b5143bba3b15c7bccc8d55f50cc3efa0e3d4016";
-  sha512.doc = "9be2743ee3d4e0cec70731f5ad5bc71c574ad122aff7b30ec50635a5c4d1c87801b324f048e141e2208bc59af5995b9ff166c7eaa06306817629600348f55cbe";
+  sha512.run = "af8d0d7c10d3b9dea55cb4339982196d5dc33204fb9ff368591e50f48b8fd5ea741207466f158a4ce7da1125cadb5240bda38cd4bc5093966fb42f7de77beed0";
+  sha512.doc = "17d660971e942478baabe2e98eec7da096c37b13f9da24a8e8e4139d0dffccb280b0a464a0fe76f47ff39f899e8ae0d9a582a01be927ff8529e14c097b81090d";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.21";
+  version = "0.22";
 };
 qyxf-book = {
   revision = 56319;
@@ -36128,14 +37053,14 @@ r_und_s = {
   version = "1.3i";
 };
 ragged2e = {
-  revision = 66153;
+  revision = 67441;
   stripPrefix = 0;
-  sha512.run = "df8a7a358d8529123ce5c4baaa0f2a49d39a7a1846c5cbfbd96a3f13e56baf27a84a7fde148cf58dd2ae0b353994b53188aae747e3fe41d565d19daa1e779d80";
-  sha512.doc = "0520c2eafc27a21639ea1d8ea11871ff609e43804d6ecd1acb43fae9a214aece0c1cee8aa30b42ca110898cdb2ebecb133e1b6fd704b1fb336d892e6b7006a8d";
-  sha512.source = "08550854e8aa13a0e29f2733965e730af339591d94942941d986f6b70ebad74b13b6885fae2d1809dd9397f11be352d6eceb3b127ec323df81cad4febe5e2a07";
+  sha512.run = "363d952daecbd0c4d57e7d2aa5bd28e32bd04efd1b26f5ab65c4874fc65948fb4258eb430560bb8d294406cf314778047b0027a45c21cf99f77119519878e368";
+  sha512.doc = "be65fa8afee57fb8044ad9ec3ae1ee05ebaf0d8b40388f9876de7c25f6bc6b3a78221b393442e1c3bfe69450eb3c98b276b569540ea8a154a5297560f8a972c4";
+  sha512.source = "56482d060b48c8433214b352efc1b2d6499aeb97a689fffd7e2ae5175f92033714aeb61250f79eb847ed3dc63db8e873ae8efab2aa8dd6d8824902a4c00517e2";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.4";
+  version = "3.6";
 };
 raleway = {
   revision = 42629;
@@ -36203,13 +37128,13 @@ randtext = {
   license = [ "lppl13c" ];
 };
 rank-2-roots = {
-  revision = 61719;
+  revision = 68161;
   stripPrefix = 0;
-  sha512.run = "5124c4185eab09ff6e855409bb9d8b235fa3c304864886eb7d96fb2bc3487214eb388e27b4a3cc25f6d3b12bc9b77a073e2404792d2b0654e243a540c5fa00e7";
-  sha512.doc = "b19096334754f7d02b0a16d936c885e9ada82adaf1ed4011df815bcd703b4e79dec62d133fa3b32cf9663e2ef69081a95ae647504d8b6eb0f27f86909980506a";
+  sha512.run = "c15a31fc178dbce9a776c8409d0df18e4ac05e2786aef486bd9a932c64ee6482ca15d6ca10eea70b98f9444f01d292a5e1032fb924cbd1add8e8bdae7a1bfe8e";
+  sha512.doc = "b5b2bfdea68db76c4d52d45613cdd45d91e684f24739024c53a2e6efee83660c2534cc88d4aaad5b1e2c203cebf2244ccc4331935142661090b95e29aa4e9240";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0";
+  version = "1.2";
 };
 rbt-mathnotes = {
   revision = 61193;
@@ -36260,13 +37185,13 @@ rcsinfo = {
   version = "1.11";
 };
 readablecv = {
-  revision = 61719;
+  revision = 67986;
   stripPrefix = 0;
-  sha512.run = "ca024cf78918406ca68a750832bf4046b22ca36cbd8ad7784cc2cc9aef6440de43c7d5c38aea95d738ec1f67685f02e1fd37440dc90d76046ee663cc475a187f";
-  sha512.doc = "c7b793994b11ae49bc93c8b39c0e257c24c54ebf19026db125ff1ae236f9b8443290b31443baff3a587fff073259621b001a75b0bb4f8f4e4963245f7c739019";
+  sha512.run = "bfbc2764d56277d9a215d4366f812e53361faabd136ae86ae8152ab763742f51d27e9b61bf4a1d42fe2f14a90d5d3d0cf6cb513b3c6f5990ad34abeb26c22d44";
+  sha512.doc = "6a337934b2f52cc8543ac0bee5dd52d2deff2e3fbf192977937c8331134227d816c846845923ead87615ddc117b44fb141239024e766e17e1896cfa1c4afbb05";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.0";
+  version = "4.0";
 };
 readarray = {
   revision = 60540;
@@ -36288,14 +37213,14 @@ realboxes = {
   version = "0.2";
 };
 realhats = {
-  revision = 63595;
+  revision = 66924;
   stripPrefix = 0;
-  sha512.run = "4ea4abe044eff67e97bd4d93da93dabeeb23a22f4383577b5e2c4fa849ead43aad4cf9e31e99f6b5a2b57ddde41c09648f6d146fb31483049c43e37d01f0e1dc";
-  sha512.doc = "9b80b31974a9004f4bf1e93be33cb0765f0dda42cf1dba13b1d6c965811d7e91f25fbd1ff026fa46f1c2f7bee652f84ab19855add50513586b01b710fe7d67dc";
-  sha512.source = "cfffc12867350233426a195b25880bf4b209b8c9320f2ab836457c366e40e94b5503260e548251465f5c58bcb7243d377a4487d4ef3aad6123cec0d7fe1baa2b";
+  sha512.run = "9cd41126ccfdffe1322e0b49af113b65761a34fd8bffb96390f7c50d78739be06605fa2e16347a226bb7fba47bb832b1bfd19c8d836dd557fb41ae5dd0281d5c";
+  sha512.doc = "94fa596ae22d6c4f75276b30e5fa0f0d03d575f01ef2d6e6a18454bce3c0328a8dd7b804d586af57363ca1c5eaf3c57a4d021fa37327920f123e7b8b2ab55df6";
+  sha512.source = "87f5274eff261f29b387b8b171a1ea031e5373b282950c60517c66163c1f6b75cbe4bdd52731249b22348386fa3565952852efd5143c80edb8e6e070b0e77f5a";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "6.0";
+  version = "7.1";
 };
 realscripts = {
   revision = 56594;
@@ -36354,13 +37279,13 @@ recipecard = {
   version = "2.0";
 };
 recorder-fingering = {
-  revision = 66026;
+  revision = 68595;
   stripPrefix = 0;
-  sha512.run = "da0c6485ec331faf0468d46bd4dc10214b63df89e281c059db8c3f7ac213ae6cfd1b7227c6286035c69c7748ef26efcb4163d85274c1773e5e1a6b86a3d2a4e5";
-  sha512.doc = "400b107b54474a973f2a0c7efb9e97940d5c8e76b26ba29985e72e9362cd8aa892694c1742acd19d0e7ce44c737c6537165e331f80af38c6200fbb4143459fc8";
+  sha512.run = "1a97324ac1264d293a05207a667255e5711cc13b6acc02acd5a170d776d357dae9158491bd0adf96a11e17fbdde1d24809940d323f417f31c5b73c55c7758031";
+  sha512.doc = "ce1782952b53171c686d0f76d9f48a127e6c6bd6c1c2b0eccb00fb8968f31c809118f6bcce0503a61997907feb7d677ad23692c68427bf8666124bb0b040585c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1b";
+  version = "1.3b";
 };
 rectopma = {
   revision = 19980;
@@ -36467,24 +37392,24 @@ register = {
   version = "2.0";
 };
 regstats = {
-  revision = 25050;
+  revision = 66795;
   stripPrefix = 0;
-  sha512.run = "95e68cf4ea4cbb34801a7412ef1ce87fd75d017681e43ccb86e56ff47494aaf95e3cdccb4f0c2ea6a276d99960df881857d9a138368fa6cd37d7f38554ad84dc";
-  sha512.doc = "1883f17190f3b24414dc8ef7f874cb50d682b5dcdf45f8bf95fd15b3347996de37a7839b727da4cdc9e39869ee1def31ed1b2be02e48bc68a81c0d2f8aef8be2";
-  sha512.source = "4e7392bd85860ae971fcd06025f5753d7f2c815cb216d6a53eba1504c4f9de7fee9826807149826ee69c6776f17a0f0f537ffe7ad1be04597ce221d5cd8f7ff4";
+  sha512.run = "4eaec929726cc9bce1481d4edd4222468c05aa30272b24e26b0c9737154316430ef91203531fbb94e3432fe06042de22d30a6253c1eaef6f1c9287b4f0049460";
+  sha512.doc = "8c9f9156e513a4f29c7d362146056fd69f7eabac72e2747c1c93821c9ed69753630da257e1a250b415074c21c1793e4f5c57ea4022338b104871379717da37c3";
+  sha512.source = "0a2b173393405c825dec83d5151b1cadd31a1e5b9b20210b7e46982836807a2e7e9c294cb3c184af2464334d43f9a5792f7ebd6c868ccba3f0b7879d34d747b7";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0h";
+  version = "1.1a";
 };
 reledmac = {
-  revision = 63105;
+  revision = 68411;
   stripPrefix = 0;
-  sha512.run = "c7cabb0818baf51eafc4f4864019479925f2b1861435cb85f6a1d03a1ba542c565a25927a582dacf04508deb005ef40dd286126ae85cc918e7881d5aa589b0a6";
-  sha512.doc = "3cd4033ba53567e443c8b5f2b48ff11e63bcf21dd2c618c00e8cdc00004ba5806947e96cdc1c6f1125ca7eb28a505f18901311c3ae168f34abd1e4e7aa7bb96c";
-  sha512.source = "96f3ca08dd9b0323b270a40dfcb63fff3b74a0c7c3dabb076c2a588b4041cb7052e4c84d2d4f04ab02f511e43db85dc39bbbd41faba78cf2553696fee9665553";
+  sha512.run = "ab02eaf561927fa1840d59a49e8f87572133fe5762fb2b8e97b5a3fa80a9489bbc33ff9d12433481a6088739cba562d6a66fe9e70b5e74e7b9caecb96bd1fb3b";
+  sha512.doc = "5ac0734dfc14a25f4b171d73cdd643a60d106e11eb4d128c6da146ffd47527212b84fb5c2674028ce0c18b5aeb9375d56f2d5a9ebac654660d672e7983405179";
+  sha512.source = "ab0af4aae5b31147ea29dcd5eb4412f139bffa023600723780f37b7729967f1d5b94290e39080b9a550b3dc967dade97fa94adb14d20742ddece3c4cf3c0c8ad";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.39.1";
+  version = "2.40.0";
 };
 relenc = {
   revision = 22050;
@@ -36523,13 +37448,13 @@ repeatindex = {
   version = "0.01";
 };
 repere = {
-  revision = 65769;
+  revision = 66998;
   stripPrefix = 0;
-  sha512.run = "75b3b8cf2ce499f7443626afc30615c790d0edebffaa604fa38d05970ec84957e57eba4d2cb1b16b53aa9d162ee922ae38e7271848313f2771c27f4cd5ae9a7e";
-  sha512.doc = "04ad845cf7a32a6f242612caf9b53230220c73c7854f46db0b3c35ee2533f6a0a6115a931d73a76e5c33f119216b3b75632454bf7b07992e3f38b4f2419726f1";
+  sha512.run = "502e1948f22a70003eb5ff4b6eed2790e28cd5acdadcaabcf1f0be699026fbb1cb7144bbb15f230a25f85abf00dc1de075ec44fcc6fa10e26550f85b50a272d2";
+  sha512.doc = "c16864711c87f2632cfa56ba06968ed967874ca25139360476f6fa2bb7bd89b900ff8a98c4514b4664e5d623c9d29437e375284bfd0073b2cdda0eae13e896ca";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "23.02";
+  version = "23.05.b";
 };
 repltext = {
   revision = 56433;
@@ -36575,10 +37500,10 @@ resmes = {
   version = "1.0";
 };
 resolsysteme = {
-  revision = 66193;
+  revision = 66192;
   stripPrefix = 0;
-  sha512.run = "db1db4e2eb14033272fa247149398a99dd1821f4da602752c1fb91afd240d9103fa68b224daeff6f82183c0bfe5fce951412b7ab5355914ba8cd26abd3812fc7";
-  sha512.doc = "976dd0a21378474a919fd6212275046a4d9e056f16e0ca99c516de15eeae65fb538abaadc8e1ea89dbc9192435e1b063c2de8b473e47e0c22e35395d73f84650";
+  sha512.run = "b4d196ea41fd5f4c9d78df932516a8f1bcb2a8862a4b367a8a288678213fe7a7d6fa8f4ee531982dec11bf04576cc5836bf47368f282cd939464ea6df748eccb";
+  sha512.doc = "3fe3d927326acf296c5cafed3c7ab5902ba7c8c943e6bab280b1e0f0a997f90c3e2676522f3dc7dae0436845b4caeb2c58804280d546dd4e6223bd1984659aa2";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.1.5";
@@ -36593,6 +37518,15 @@ resphilosophica = {
   license = [ "lppl13c" ];
   version = "1.35";
 };
+responsive = {
+  revision = 69147;
+  stripPrefix = 0;
+  sha512.run = "13fd41361d1770d9fc58f1834adb312bde154800e5b1b6c39cb7c0b50dc5623ae3970d5d6fd179c706bcc6d92512f1af88b9dfd78440d47a9e330bff568d5ef4";
+  sha512.doc = "840556a6a8ccce54850efce732e63e58078e12740c39c8b81ed47c470d39fdb8a9cd27dca9abb5380fe2d9afdc41c801d2beab4717933bd4ac110c26491ea082";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1";
+};
 rest-api = {
   revision = 57068;
   stripPrefix = 0;
@@ -36650,14 +37584,14 @@ revquantum = {
   version = "0.11";
 };
 revtex = {
-  revision = 56591;
+  revision = 67271;
   stripPrefix = 0;
-  sha512.run = "3ae6c843dea5ff9f91512a1b713aa2dd05f76d7116d2af3f005506864062a9d1e27888c33fc12aab96d5c566e9e7dcec0f91189f957bb4d2aa69953d6b10c316";
-  sha512.doc = "9110bca4c358d5364acddc8a04d95df821249bc93a9e811a4d94b703b6daf124962fcec404354bbecc32557ddb7ce67993a6dba7ebad514672dd586995cb23c0";
-  sha512.source = "88121fba6636f753b96ee19beea708d642c20292204e30e0be85dbf0e0af8e2e87386fe6596841e8c89861d2b4e6247913bf26fac35b1eeb33ebc0469e1be5bf";
+  sha512.run = "3c0c008929457a405cabd699a6bdbb0c4ad2afde1c7155b163c52e9564f15718bddec782abfb6336e55c77ba1d0d0d88a1da39420ed1116f21efc1e4c93d4751";
+  sha512.doc = "de2053c650920b4e83183883b4fb15f25abde4210eb0c0a81adde4838c76db8e755a2afc74c8f3cafc0819d57b762e701380687e589ffc785cf6439d120c1474";
+  sha512.source = "270c74b7f50c5c8ef4eb2f27dd72e5029d6d48083baa9b477506e1559fd6684aa9ff95f371c8a40fc1535455a89e13e625b1cd7c129ff18ff3101457794f34b9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "4.2e";
+  version = "4.2f";
 };
 revtex4 = {
   revision = 56589;
@@ -36698,6 +37632,15 @@ ribbonproofs = {
   license = [ "lppl13c" ];
   version = "1.0";
 };
+rit-fonts = {
+  revision = 67659;
+  stripPrefix = 0;
+  sha512.run = "6f9be849a018d8714d30dec2d9d745c745c48ded444601bf64136580999614b514ab23468a440e8811ffcd114d0968606bac269cc3bf27feb9a5cbe51a68810d";
+  sha512.doc = "bcf029e75ed4d8fc403d8868bd8e01df2ca6c292766750ecd0e7c32ee6ac2e3a48527e321475c8f56ff7f38541aadbbfd8461fa59ec1ab911891bc73fcae1ec2";
+  hasRunfiles = true;
+  license = [ "ofl" "lppl13c" ];
+  version = "0.9";
+};
 rjlparshap = {
   revision = 15878;
   stripPrefix = 0;
@@ -36753,6 +37696,15 @@ roboto = {
   hasRunfiles = true;
   license = [ "asl20" "ofl" "lppl13c" ];
 };
+robust-externalize = {
+  revision = 68842;
+  stripPrefix = 0;
+  sha512.run = "b210a9adbfa6bc7d0063e624a30abb885eb49a7e7dd3e215f97784e5da4c79886fe4d19aa012395894098833c18209c117e913b14091fd2f3eb8904a356fd792";
+  sha512.doc = "e1732e10a355b4f54d870420acfa3bbeb6256b0a7c0136f5cfde829ff02885422b175c2834b229bf22a4b4a28a1c8e80932af2b0a826b1658d0d8ec58de909bf";
+  hasRunfiles = true;
+  license = [ "mit" ];
+  version = "2.2";
+};
 robustcommand = {
   revision = 15878;
   stripPrefix = 0;
@@ -36836,6 +37788,16 @@ romannum = {
   license = [ "lppl13c" ];
   version = "1.0b";
 };
+rorlink = {
+  revision = 67461;
+  stripPrefix = 0;
+  sha512.run = "6dcdc3e26fa093346bb60d2346af7de4cae4ebaed024fa21de1f28cc462b956bb21e946e189804a69420ed26fee38b3a3f8d45cb5a04d16c2859f4f0e0caf8ae";
+  sha512.doc = "cc711052ab363104748b944b0f9d32e6328e2613a100871a53a2b9464e4e4d16b6cbfa4c42bbbd5cd093bfac1518e605af4b43205fec40641a0e2465b50f7728";
+  sha512.source = "105222e02016315b5cd5367e2a739db1c977f403e7cbc3172be8a2528e140197472785a7de48be8e252fa702941963ba2b4dbc75ce52929bea0d4b02b5b9399a";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.1.0";
+};
 rosario = {
   revision = 51688;
   stripPrefix = 0;
@@ -36865,6 +37827,15 @@ rotpages = {
   license = [ "lppl13c" ];
   version = "3.0";
 };
+rouequestions = {
+  revision = 67670;
+  stripPrefix = 0;
+  sha512.run = "7eaa938339d1e59241b85cbbec4238be4fe2aaf4dbb3544c6d1511723c62b96dc5fe38c4fae062dd2d61760739caf0df3652b710546a6725d072969df8e68b0b";
+  sha512.doc = "16ea492fabb90e0a649d5ff8e13b358a4ff7a612df34cd60a7023a1572337d237b87bdd5deadd206513562cfc1a3b27e834c49fbd5204277d38dfcf3a1e4e586";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.0.3";
+};
 roundbox = {
   revision = 29675;
   stripPrefix = 0;
@@ -36997,14 +37968,28 @@ rulercompass = {
   version = "1";
 };
 runcode = {
-  revision = 65588;
+  revision = 68223;
   stripPrefix = 0;
-  sha512.run = "a16f61affff0ab5d58df300b638d62fa0e48a8537ddfead3d7e76113e54f31c0f0c8424ef183233d109be014701ba57b78618ec131b5bd3c526b10645e1f35f3";
-  sha512.doc = "b48827b01c986fa1e11469a36f9426255f45699e11002d2826002d1745915a3e36a9919f901ca1a6b9d7a04a86aacbfbcf934732dfdce8ad20771b1b027b3e55";
+  sha512.run = "5f5952e07a5762b3f37de7d97aca5187d8133e6443fa41ed56802a9f852bc9e4d31023430e9969e836d0150e2862d67f0753abbec683d112f3752422259187c1";
+  sha512.doc = "cf2ac28ebca780c9951d42b38806844c55455638502708e6e79a2d9aced7478a797bb89af409364fe193d195b177fc8389a1021e4f553e2c211c6c38d5e6e9d9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.8";
+  version = "2.2";
 };
+runtexshebang = {
+  revision = 68882;
+  sha512.run = "8e681e06b29e235d76b21370614c22ba57cf69debff19869f3589ac5a1342f368621083a17b7a1ddc1ddee37478bdb9b81f4050bb9a2f7d28a7d753909238233";
+  sha512.doc = "4f2754641930105b1bd70a0a116e724e019c1930ec49e27c3ae895c35b7840c54082285cb6241554915234c16a59dbcea9ee07c509d09d5315ff6f04e0137168";
+  hasRunfiles = true;
+  scriptExts = [
+    "lua"
+  ];
+  license = [ "mit" ];
+  version = "0.5";
+};
+runtexshebang.binfiles = [
+  "runtexshebang"
+];
 russ = {
   revision = 25209;
   stripPrefix = 0;
@@ -37089,13 +38074,13 @@ sageep = {
   version = "1.0";
 };
 sanitize-umlaut = {
-  revision = 63770;
+  revision = 67126;
   stripPrefix = 0;
-  sha512.run = "7521037e7dc35836b347e3e2387cefdc8acca4504dd9fd24c1efa9857039dd2314cdef0c2281506bc2d4e03dde4e994bec938851be0e9ebc9231990965199010";
-  sha512.doc = "a3a559be38b04dba0f9478ebf1cc7c437f457368ed4dedf16bc42038c95053cdac9d1dd0061c1eb30e8c88235d348ea9edf375aef30088e45635323e835c3e55";
+  sha512.run = "2f9514b9424a72762c9b4bfbe2bceca10dfe4e75a42e9fe2e26d6808d14fa2aab62a03f26becec8e80b00c658d4452e95c3b84bf692d64cc287693b2542ec3b5";
+  sha512.doc = "2de8f2935de490e127f19b50f10698ad323e823ae4bcb7b357b6cfe084c9f6a48d2314889a54974a4b58275667da4eac89cebfac5c25e570c0172ecf9ca44af5";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.2.1";
+  version = "1.3.0";
 };
 sankey = {
   revision = 61874;
@@ -37143,10 +38128,10 @@ sansmathaccent = {
   license = [ "lppl13c" ];
 };
 sansmathfonts = {
-  revision = 64661;
+  revision = 68777;
   stripPrefix = 0;
-  sha512.run = "1ef587f14a0b5d51dabacfc1717b84d221bbc3bfeca002cd58ed9c239838d888036fb26f404b5bf5d7a7fb82f70b0f5663ef06ce92059b32a67b1e0c31331e7f";
-  sha512.doc = "de240522929a1b2942e3108c03a5523e42b0bdfd4365afabad98a22dcd73784070ba26d3a4ceb821749bd557b19b220f2785687f52ad47a502f8f67f05409839";
+  sha512.run = "d31d37820883b0fa2a97dc878d11b6866554839acbae8c56fc10fb164fcfc2af5590d0d562512aa313ca950c32aecb4d4b89ea4113326446a75006b34a2f677c";
+  sha512.doc = "5972253d34cb39cb0151050b4e9dab45dea50901a84f736ee8a25beb5ad647a112462ed5b3d46c61ff20a3a20852000c64736c88df9ed59defa2da5bf54b5638";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -37283,13 +38268,13 @@ schedule = {
   version = "1.20";
 };
 schemabloc = {
-  revision = 58212;
+  revision = 68445;
   stripPrefix = 0;
-  sha512.run = "8a6f093a5c6874c77d22a9e96e36593f00e382ac0679ddf33cfc62df912e82cea4bbf697286b7fd77d25dfd5b19cb37baf95fc1f8092bcd348a4da88a4501cb4";
-  sha512.doc = "fb70879aee58fc01d5b30903f2e65b49789d011d18987471a8cbd5e46d9b57cd01b813e5a90b686819e1c1e912cb37b2c9487518705d4f1bfb58b1e950502dea";
+  sha512.run = "7a99b1fee9c4436371f5228e969786518f55aa65dad3cc540be912d6123efbb5a25634d337bcc9a3f626d37f3408b08999378bdc9d32e1e1db2549499b59b1cb";
+  sha512.doc = "eca5a57f53615a486b21fbc2a0870c5816decb97a1c6bb004d5a6f6faa89f1cd8c7a8a51135904d2ab53076b6ac239f3192c976b54672d45d1eeaed353d07055";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.5";
+  version = "1.9";
 };
 schemata = {
   revision = 58020;
@@ -37647,32 +38632,32 @@ scholax = {
   version = "1.033";
 };
 schooldocs = {
-  revision = 65650;
+  revision = 69238;
   stripPrefix = 0;
-  sha512.run = "1ae2af9d9f3a281f9d180bf75534f29990c9060322d65200344250651f71c43a1b854c6dd32f6a8c9c2d2e7238c44f76fd03d814d731d8c3faebd91160a6e0a9";
-  sha512.doc = "253c22c65ef87537866c2162cf9a455123b90456e6581ddd1a5edafcd5ec2a52502c0d57f9626dc8ab0bb8781d41cfe806481c3a5fa8d387797aaf7240de5ba8";
-  sha512.source = "09f1ef0dd304c229a7c5c6ce4cf841ccb50700b9af31381f4a4bbf32c8d8579d3cf2f4dc9397044428d1b4eff318541045c7698061d5c49997705e2988982957";
+  sha512.run = "4d6a2c03a588b8b16c73b464ec8d5daab5acd199048d029b4d0ac1c2416e61d4628dc51bbeca1b8957844355bda4d92946f769a2494c2e3fc8522d4fba451f12";
+  sha512.doc = "8bcc4cdfd18544f81cd1859b9b307a66b163fca639a0e058214096a6c11fbb0649f4b66f1e7186c7d4ab4db635d2687fe60d5c9338f173eac85b83eacafe2d88";
+  sha512.source = "81574268cd8e860e4559d4228335d87053726070e9ed05822cc87234c2a08430c6db752e9138b06b9d6633f22126ae588a3103e7873784b770a31f8d59aa458a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.2";
+  version = "1.4";
 };
 schule = {
-  revision = 60210;
+  revision = 68483;
   stripPrefix = 0;
-  sha512.run = "01d62151d01b00dedaf63af9a2adcb91f293372064c43cdc0353f207923f471a45958f60cc9c16bdbaf4b78bad65f4ebfa7b8e2b851f307eccba60f9171e9207";
-  sha512.doc = "a626078e2c8a268663bcd0148dc8c7d382a7e6e29e2f14ef0e34d75a1f460702c09042625378bfec482d8055e34b6661f137982e328c8cb21ddd29a0e9a69cf9";
+  sha512.run = "6fd063de94d68e80b5e3d2e9699330453f82f43ccd059770e4d73097c1172ec0733012317aeba7bc5e55ed322936c20f97c6f53e9d7aed21a29e07151ec54d7d";
+  sha512.doc = "6763529c688e540d937af7548a7e0b9003e5df74d643c3870a016bba105782435146d5771d4d8b69cfec90ece084c245a1825c5f3ae4a5429ad0626b07a9e4cc";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.8.3";
+  version = "0.9.0";
 };
 schulmathematik = {
-  revision = 64108;
+  revision = 69244;
   stripPrefix = 0;
-  sha512.run = "be532723f39a637b3f78163e849f8eb481a2137f1c11536efca63ab3b4aa9d3a723395805b6881965ea2e5e0e7e40fd4731325149a900074409919b8d11d41fa";
-  sha512.doc = "f5088c8623ed263d017d4dd6432abbf8a271d58b096b8bc205a69b6ce44e03d2714bd53df74cd1f1406bba55d2d1d28f96e702dd15def17678575fc0a44e0bf4";
+  sha512.run = "3258429a336a133334b5f170178b72e39fb3e63ca053a8b541136cc89e88caa991afa86439acffdd99f25a12b7b430d9ef45cdfa7c4ec6545fd1af2efba857c5";
+  sha512.doc = "82ed02e73e3db3e2055725a4d5e11dc8f370ac4787e30987320ec52deefb8de75eecdfd2adda5e76d77cfd8bb1e749b4d0e6d6a75ae2f6ffb3201f193cdd5f86";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.3";
+  version = "1.6";
 };
 schulschriften = {
   revision = 59388;
@@ -37704,13 +38689,13 @@ scientific-thesis-cover = {
   version = "4.0.2";
 };
 scikgtex = {
-  revision = 65256;
+  revision = 66764;
   stripPrefix = 0;
-  sha512.run = "5374ed0713db77cd6f84ef8709e0dc73ed411d8679cf7292015d0e0533d577fe7009c08e6d17f10a9c2422c67e56b1b547f46868d570c7ace6910fa7738179a0";
-  sha512.doc = "960bbe9295e14c7ba1a9ed53d6df468c2dfafe3b84a0ada506e7fd26335b79880bb8e592463375490d2141fa62fb41aedd79aa3c85bcf0187d4ad2ef2be3ea71";
+  sha512.run = "32433b1c031747037fa329d8b8048563cb53af867bebde85bd5fb95abbdfbd67434595d5fbe682f1247c23535d75929f341668fba9a02221b4864728a5f3cee3";
+  sha512.doc = "217da3550e3752fe239831790294d158dd68d16545e5c9ef3e047bedcbe82acee7e34d4216ef843363979e269e03180f20ec9e83b033b44f28acabb67ee26f74";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "2.1.1";
+  version = "2.2.0";
 };
 sciposter = {
   revision = 15878;
@@ -37742,13 +38727,13 @@ scontents = {
   version = "2.0";
 };
 scrabble = {
-  revision = 65507;
+  revision = 69024;
   stripPrefix = 0;
-  sha512.run = "df992081a34554d1e26ec6eb227f2ac5beddb7fd88a4a8377aebdfebd9fd200d053c4e43db96450f20a7c23cac11d235f1acde3e4dc40a3c30b83ad2914eae5b";
-  sha512.doc = "c61edf946eef82a7cde0af391eaca776784870be6a235e9752821f565b187a2a286ce1c7d7a7d5bc902550597e2a0906f25581bd8295b7dc5a546cf7bd8ee73b";
+  sha512.run = "f4401768ca1b9f1ca4a84a61e07379b9ed98f679e0fb4c3231b3daba495dfabb2d2e980b76088cf28bf03e2776e1e39133709b9d4b9b374292e1a4eed56b3b19";
+  sha512.doc = "ca5b37469ba336683ed77872cdbdfcee2379eb32c840cadf79d54b1e18eac69ec1918e8279f1207710125fbbd871b149bf556ecd36b11836a7a0defd941ba8d0";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1.3";
+  version = "0.1.4";
 };
 scrambledenvs = {
   revision = 60615;
@@ -37761,10 +38746,10 @@ scrambledenvs = {
   version = "1.1.0";
 };
 scratch = {
-  revision = 50073;
+  revision = 66655;
   stripPrefix = 0;
-  sha512.run = "fcee832dbad22e76387bbd10f7ea8e3127a6fac45ea1b42feb183506cd5c89c258cafb052d75e4d14b431a57e638fc84fc751bbb8fa700420197a0d2e33ead48";
-  sha512.doc = "af7057f28ac0539a555db5774d3d29e01ba10fa78744712a5d76f95229c45022f682c321a551cb5070ab3e370b2d9e861c0b04b73365e828fe665b3f8aeb7730";
+  sha512.run = "bee431e5f45ef9f5dca39b7ed439dbf141141e4b0f40642c0fdec1650dae9f0e50353e21b58307e86f34e501e06083a6858c140c870752c45138ac6788080023";
+  sha512.doc = "a93b672fe46f97c1311d79de5a9304111bb75983b6151e63276a0b84a660e7b917c36b1a99a28a0b6a268b3498dab9897980aa4ca161dd4b9d59a7b2baaa3be5";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.41";
@@ -37807,14 +38792,14 @@ screenplay-pkg = {
   version = "1.1";
 };
 scripture = {
-  revision = 65493;
+  revision = 69232;
   stripPrefix = 0;
-  sha512.run = "3def680960181d2204bb7c99012af17cb6685a8c9145d5242408b82e9f30a84e0b922dd89cd26c36c0a08e820b09c5ee886cb0ec928c83cd68d4221519d011d7";
-  sha512.doc = "f4b54666759f4fb691632ff501f9eef1619624ee5b8c8292be6cd1cfb5c9f02ed68cb55239c55da5e4f80e8334ec404347747427eea6622515a2933d4fe80d68";
-  sha512.source = "b74f83fcbf83baab55a37ca39165265ad94dcdcfe30db94b7684352648b55e0953464e9366a958517539c90b38bb468f3b2f187a557a8fd4a2d55bf6ea69bdd1";
+  sha512.run = "3b3e30f0c5bbc99a49c9aec873f2ad93535d8c1f3fa79f91619d30fdca347dcf1bad30485463ce875e4511ed857e358824197059732c2538bffebd97b017554d";
+  sha512.doc = "1de0de0b83915b59b54b234daf51ea77aef3bc58a80251c7b055708b7eb8d457806d2b897cd3771f6a303e8137b5f5543dc06c97be94142edf44558cc92a1277";
+  sha512.source = "555f72881eb6d76d9362598cc0e30f67cfe2dfc8747f68e5214258fb127947965e45f0bcd1eac5e173c83e7a4e25e3bb0ef6615fe31cac5f6e3f23814e7266c1";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.3";
+  version = "2.0";
 };
 scrjrnl = {
   revision = 27810;
@@ -37845,11 +38830,21 @@ scrlttr2copy = {
   license = [ "lppl13c" ];
   version = "0.3a";
 };
+scrwfile = {
+  revision = 66872;
+  stripPrefix = 0;
+  sha512.run = "b4d306af1e0d3dcfa59ef14250f14125bfc4a0b9b0f3e6ab32b809f2e729cfa45e27549c8cb9c2dde2819d328c1a032eb6aae6f123f1c71efeba4c9d16611a34";
+  sha512.doc = "6aab0a6af0c3f989788673c44bb8a885ddb259f0be3f69f0a32b0bdebdc8e607b32c8f8530cb99d59b1c7739b2c33446f8b7c832384d07158c90bd347704a1a3";
+  sha512.source = "abd536d76460165077ca7dbdcd1801b018cae2d16c783e72502bcaf5ecb34562f273ca37cedb044a50e7d53fab84412bf9a5e804be064951ebf753aaa764526b";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.99";
+};
 scsnowman = {
-  revision = 66119;
+  revision = 66115;
   stripPrefix = 0;
-  sha512.run = "9eabbc090311210bf9d557efb9d901d9da900fa4095e37bb26be51bff6dcc73584e70f455fe5ce5183859738dac8c06cb94224d816cc23bda49862d7e233efce";
-  sha512.doc = "c2efba627208a194381f92c893093da16a3eb9cff498e3b80b5d9cc90f34f96425ce94733bc6e1326cea5932da7c136555d6a5413d2dcdbda8bcd36eaae6d562";
+  sha512.run = "2335082e981929d24b2dd327db68f101a93b0c2b9176c116d6ca9430ea45bd85c9669921980090554406a658821f3c68305250894fd710058e15ac6aa8ede1c5";
+  sha512.doc = "e883b300888ebdf62af976a94ff29a3f621a92420c26553ca16497ffb57db0d1cec7f8a38a1996e080b660ee3ae0b7245688a7732c141b0a680b864f527069f6";
   hasRunfiles = true;
   license = [ "bsd2" ];
   version = "1.3c";
@@ -37892,14 +38887,14 @@ sduthesis = {
   version = "1.2.1";
 };
 se2thesis = {
-  revision = 65645;
+  revision = 68255;
   stripPrefix = 0;
-  sha512.run = "16a351d895fd84b9d4a0aea1ab2ac51c2cb1bf6eb19a837ef2a856be79b5ffc03aebf40671332016e1c5475871eb508720703d40b9ad8035850225b07e0cf47a";
-  sha512.doc = "88745bde86537fad6895372d9ac1ae8a22df42fd152a959314c059604bbf2604f9fadf5b9f96ea8528e7800e6159f6703f4b32f65c524ca0e4257f6465203bbe";
-  sha512.source = "d6051f999ef046e52d15716d3f9a594683a9203b3c3811238f1f8f7b3b1b332499a8c6259750d3e5593abfb2fe2fac0f37f18498a5a8592b420c9c11eb07dd68";
+  sha512.run = "a9283b1b34e7d9db35dbb64641b68eab662ddfd7e468f856e466c56c7c7ace6de3efacb43b1810e97d2eb2d0c2cf89d50ac45d79a5bcc9f79b52a1011e41ad39";
+  sha512.doc = "562a8c929ae8bcacc2dbdcc4b585b26b910da3792089670f89e4300b771a06971513978a0c656e563c7189673b6067acd450a2698fcb32449a4de75715a2c270";
+  sha512.source = "8a76b7e1139ecec4b8c9a4bd670f3bb82d354eeb0cb9d94afe7f8ad3b7656921b510ecd9223443efcb2e38c5b91e621fe66b99d282bc650402977fc84e4ffc7c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.1.0";
+  version = "3.2.0";
 };
 secdot = {
   revision = 20208;
@@ -37998,10 +38993,10 @@ selinput = {
   version = "1.6";
 };
 selnolig = {
-  revision = 38721;
+  revision = 68747;
   stripPrefix = 0;
-  sha512.run = "8b01d1b6f4e6f83efbfc603be7c510d3c8435559b1272f3e8beae7d0de04ac889e04d539c689abfbfb8af5ff2d04c38459320fec333a122c3b60a1a79a0b115a";
-  sha512.doc = "afc1a84aa85f3da5e5d121de0ee37f5347527985b3a9ae75abf0e51edc1d5371e831b5ffc7218d9863b8ff717554c6f469adec908f02f5d9be3bd4f6e45fc1ac";
+  sha512.run = "8dd7baa476f72549830f2571615af2374b9d74da69c16f2999708201b7404c46118e7a6046ef8dff39935d3b94373140819497508b2a8982cc928a5dbfc6eaac";
+  sha512.doc = "c36e55066eadd959f625fcb72fb89ab2ca51f3411ba9bc81c38d2ac3f18ffd792fd95c33178c0607e3958cdbd81c031193d1b6c712906a2c9cdac4178ace6ceb";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.302";
@@ -38190,6 +39185,16 @@ setspace = {
   license = [ "lppl13c" ];
   version = "6.7b";
 };
+setspaceenhanced = {
+  revision = 68493;
+  stripPrefix = 0;
+  sha512.run = "594fc089440a356201122b33160a16785dcabbb2eeb1fdb2fdbbc1e53c83f0ffcbfc7b9c6be623e6a5e4ff23b933f25120ba1ecce72e73d8e32e1939a2744f8c";
+  sha512.doc = "d9356a26bed9405fb9cb45eda3769dd5360418c02fb6442cb4dd64da5e70e9785b167e8406fc772fb7ca1cfc574b23a375916d0c5dd6a1afb09668f5e6c743e0";
+  sha512.source = "5f16118ffc9b7572a18c485915a677b822c26ed0c4f885292c6779f91c0a9b6fb3d4f88dabb94798715efd880f6577349ede1936720ce2c6274c35671e2f0aa5";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.02";
+};
 seu-ml-assign = {
   revision = 62933;
   stripPrefix = 0;
@@ -38309,10 +39314,10 @@ shadowtext = {
   version = "0.3";
 };
 shapepar = {
-  revision = 30708;
+  revision = 69343;
   stripPrefix = 0;
-  sha512.run = "407fb09d162a3f361c7182f23b010d25bf5d0d4d645780c1c9679be422a50f7181a8184ea391505d258afda822059f0d7d60ad24321adffa05f37d56d0376605";
-  sha512.doc = "4db069b9e52935f0ef1463e40999b7f7893ae12b68f6bb07a105f83199b839e6ca3366b7367f6b38f79c4febfbf3a8c1f88115244f59a306870fa4617ade478a";
+  sha512.run = "24975c53f9b29ae8302dc4e169d7d176c4825a0033764c8a08aa610c184e79d249e849e2ac3ddbeccb3bb80a4a5e29ae1c474331de68000de1a63951079acb4d";
+  sha512.doc = "69a5f9dba1683ed0302a3dc4edede537986ea473357c0c8c454c26eeceb2c51d31d87d139bc3eed39ef1862c2a6feef0e570e9fb12bf88f15ee7f34280f7daf2";
   hasRunfiles = true;
   license = [ "free" ];
   version = "2.2";
@@ -38364,10 +39369,10 @@ short-math-guide = {
   version = "2.0";
 };
 shortmathj = {
-  revision = 54407;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "f0fe218b38efd961d1f67db265797a01ff4fc28daf0df5f23d9eb2f009961449d6dd3ae953c800af377265cf7f77f707cc35b0c413d93b232502d33b60fdc224";
-  sha512.doc = "d402e9fd56f8567a79158decc200547e4b68a171c4fa53ca2d9efc2377e9ea1aa61155f53e66de6668a4523177464638412adb4b402a8127436826fbacf24ebb";
+  sha512.run = "a8ec0460d532b657c6237d5d321852b0c8ff0807d8cf73a02e0d40bc6c86b2c776dbbc5ad694d3fe022f851f049dbba6fc11d57d5d6fdb8f168a935f9f443269";
+  sha512.doc = "a1fee222b86efa1cdd1d35aa2eeaf84df25db25b1a68d56863a370fef11ae62a6a21ed2ecf0f563d8c00c38759008d26e7c43988538bab6ad6b2a52c68c74c46";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.5.0";
@@ -38422,22 +39427,22 @@ showexpl = {
   version = "0.3s";
 };
 showhyphenation = {
-  revision = 63578;
+  revision = 67602;
   stripPrefix = 0;
-  sha512.run = "b1370cb5b483bb206248f06cb0fba3acc23abc445c655b486e174bbbe572397897d4c803f25b68e9babd6a162f1d2abd98a11909062f846cb194b8c4b4ca001b";
-  sha512.doc = "416be8f4e134eb4eb4bd5512fc50469051eb6792e929f1aa21fcd4fc9025e1be2a69c7f188e26e4522683f5b527ac468fbea08eb7963f0e3a8ff4480d44d5be0";
+  sha512.run = "0a3ca7d966edf0f4221dea2c084b428c9e248b3d223b57f3f210258918593d93518a5ebdce7d9de6b88ab040c0f2b632039e23f3339a729d1fe1391f8a51d4eb";
+  sha512.doc = "9d7263e5f285f5d29738c7ff578a0bf9256d67e56b882e41f0578bf9b594225a6e0711d9fd05bbc89a03cc0bb56b1ea8c3ccb1f4bc4f91ad40dbe55849b20c99";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1a";
+  version = "0.3";
 };
 showkerning = {
-  revision = 63708;
+  revision = 67603;
   stripPrefix = 0;
-  sha512.run = "f0a758741d71ec8ed3664527720a1dffb34bc3ef4c4583faad782d0034202d22ca0e4d6648a4a9bb82b9def441871f9305ec9d230b1e3aaca42c0154c913eb71";
-  sha512.doc = "1a85df418d58aad6e7fef73f7f6920ee68021ff83d99a9d82ab440e5a16cb8a7ac65f42a914e8533d6034f1b23a8a9996bdb0ca028b22cfd10888c54de0b9ac5";
+  sha512.run = "37a913fa403c9760fd150cac3fb88e349e8c1109f51768ee202194e72232d6e16d8dac529872dd1df7896a40a79ddb72d65c9191f72337c806de307808d80532";
+  sha512.doc = "39f8f12a70550a5864956c6145a2a19555c18ce60084b66d2b69b6a2ab8796ef2b911be39c59e736534749b42930bd055969ced8eb5cc03f1e5f2796a0d0b3e5";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1";
+  version = "0.3";
 };
 showlabels = {
   revision = 63940;
@@ -38526,14 +39531,14 @@ sidenotes = {
   version = "1.00a";
 };
 sidenotesplus = {
-  revision = 63867;
+  revision = 69176;
   stripPrefix = 0;
-  sha512.run = "cca775bb5e82d63d2e475c4329f5d4a6ca72caf02f0dc3ba0ff6acc33564ef856a25dbbe4c558d2b761106ba1407967a77063f98aee937b26d50269f86b0b847";
-  sha512.doc = "62b0158838ef5f16361c2fb2b5ed8cfaf0eee42c9f3409937ec2034da0436b2a9038670ff857a1c7629687bee7f05a14793084d9a1713e8d6ace2510291be025";
-  sha512.source = "a8e72d6161e48ccfe0a0db76d9c4d98a9de655f2c5a015597ea0b54701bff280b7488b836320f2285be9469ff3bb12c3726c182fe04bdb5e2cf5dc5d1df689e8";
+  sha512.run = "d7d7be2971798a869308564095617484713471f4b1e46b5729f40871eaa3216285cb063d19a7d85a6db3f4b492c4af290c3c6d392d7a7fb78b4e7761255c0a83";
+  sha512.doc = "d712e51374969ab345d8f641e4ee860bbd72e5f4aa759b0b00cb538c768f9e790265074003715252f8e6c8a6ca56a5513b0f4c2dc0c3d55214aa80a994ff5c08";
+  sha512.source = "c87cbc1558e5985583116a4d587aba0a7f7f6a8e7103bbd5d2c146d250fbea2c5449515787080c49ed949a28071f49036bbc4fd343d4e8d063d5ddf50e42986e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.02";
+  version = "1.04";
 };
 sides = {
   revision = 15878;
@@ -38564,15 +39569,24 @@ silence = {
   version = "1.5b";
 };
 sillypage = {
-  revision = 66350;
+  revision = 66349;
   stripPrefix = 0;
-  sha512.run = "a44430b5218392825604c9370fc01bdb177b91431959f55b33e68b834803e1cbe3fcae1b72f0ce09a984709f16770358ee8a0c43d5b94cd9244aaff78f8eb6f1";
-  sha512.doc = "c0c26e10ba5d17a6e45af4e00e900bb22972e88fdc999c70762290106241e6ecc535db6ce71c654b6ad31c21d456b00fba1aee66e87450dc38e6433e4fc7fd54";
-  sha512.source = "250c32997d1917944b8e248e312bd99be090da1115644f73e04c0194e53664d5080441774a08478e412be5a6345a35520c40e1ac686f232abc9de8e398ffd92f";
+  sha512.run = "5ca2f89c924dadaa727aee6b6bf5b0a3c06fe1d841ec37cf1a6fbb7d3516cfe8f4e2823ad8f9acbdd85a333e3736985d139e44b907d3bcf793340d49a164405a";
+  sha512.doc = "fd4ed28957de74aac2f90d2aa37e5014f423738f783f837fdea9c28db0d4b9ebc65c8017fbcb596f86610f712dcd38864356838c1e8da123c2eda1be4932b936";
+  sha512.source = "460ed2ec718e74921711b29010138f5e6e544da8e91631b32144f3ee0ad377b815a3d974fdfea47ab231dbdf17d4894e6a73ea78b00ee03e8934219858ce43ee";
   hasRunfiles = true;
   license = [ "cc-by-sa-40" "lppl13c" ];
   version = "1.6";
 };
+sim-os-menus = {
+  revision = 68843;
+  stripPrefix = 0;
+  sha512.run = "565fce3e9e13d14f7f52d3390e407b03ec680b21cef37e68439095d9e7cc813739853c9e3307dae040dcf60c6a6dc4934b0d8bac68b258af4c14aa22d8d9aadf";
+  sha512.doc = "b2392fac63c75de85b89ca7037f495155cb749b17220cdc3fb2aca368bdbd593039425bf21a0341a4160935fba94d0a9bf5fcfa6c7d686178a715aab44a28ae5";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.1";
+};
 simple-resume-cv = {
   revision = 43057;
   stripPrefix = 0;
@@ -38590,13 +39604,13 @@ simple-thesis-dissertation = {
   license = [ "publicDomain" ];
 };
 simplebnf = {
-  revision = 65485;
+  revision = 68959;
   stripPrefix = 0;
-  sha512.run = "2f78a17109b817eba036c52e924ba66c0bb1f5f752660b968270c5decd39c1e19aef50e83617247db1b94064d46f5c774e0acbcd444c8d03ddb8f133c6a667ac";
-  sha512.doc = "7ee5f4b33fc0739a9da0bd8e3d488e1bf7e71b798b6665535d18821377b76752d5a0183b8f2d495ee0285381594a5e53aa1090676bde84c9afc2049a29bf8ca8";
+  sha512.run = "87c6838d1a31f3a617752f428fdca3ccb7af22daace3caff307760f24fcf3092cff324db6357174599985bfbbba6a8c0f31a498481da3a7790ac653043c0683e";
+  sha512.doc = "bfb6dcf8e843a42b5e7481e3ace572f55561418886cb0ed562fadd79a72eaac6c505b9a52ba37f0e3c2bfec7723a7334e81ab2dd6dbddca47ec2339f8a9b64cc";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.3.2";
+  version = "1.0.0";
 };
 simplecd = {
   revision = 29260;
@@ -38619,13 +39633,13 @@ simplecv = {
   version = "1.6a";
 };
 simpleicons = {
-  revision = 66337;
+  revision = 69396;
   stripPrefix = 0;
-  sha512.run = "70ebcd312faac3b2c9294300012ce27da51b9059ad8802179ef5b9553bcc9d6a1ef3274efb38eb6c4e07830dfad4ac923e88ad513bf4d00c5dc402aba4ee8d81";
-  sha512.doc = "b66f59fa80dfbf4c938d17de290172d9fbd9d1baaf2f02ab193564ecf7010499439ce6f0c844d95c989d6ab887e2ef07a175cfd1c187def7860ebaaec01c078e";
+  sha512.run = "f6f651493ec472e4be6286bf8a29c3fe024b883390c62debdbaf107915b0e2451c3303687a2a41dec8091318a8c6a0cbf6da1142278782189c498b73d03aecff";
+  sha512.doc = "0904648f121bc9b29f95f98b636b2edadc5fde6634a9303549d5588f5c52d2a87d6a559c8f714be7215ab3d17371105a1d60d1fb0731fcc62e34e5b8256fb64c";
   hasRunfiles = true;
   license = [ "cc-by-10" ];
-  version = "8.6.0";
+  version = "11.0.0";
 };
 simpleinvoice = {
   revision = 45673;
@@ -38636,13 +39650,13 @@ simpleinvoice = {
   license = [ "gpl3" ];
 };
 simplekv = {
-  revision = 64578;
+  revision = 68439;
   stripPrefix = 0;
-  sha512.run = "5b070b0408c002eca4bf530cc264f3d08885b5e7bfbe6531f7ce66312c01a23c78aff365c16d946786ccffa099094046edc5257f85ffb7cdbccc42137f2b8420";
-  sha512.doc = "0dff9d5ec8625d9d99d9e249ac8fbfd05bf200c8c1312a57526b694919c855d528028635523e1e55757b633dce7d63727b42d35909cbbdd369bafe2c519c2b48";
+  sha512.run = "16b0136de5c1c97ff19beca9f9488768adae2ce7107310aead9f9da82230e9d9cbec62badeacf66175fbaa181d691558dc4203e848b979dcbc23f8cf9bb8e669";
+  sha512.doc = "586321e8c1597582d3be117e74ef97bfb0be59a75aae1d5bdc87b2a481b80cac350958ca77aec34148d5e54cd22a0b0b11306f445cd5abe5f1868ecb357862a3";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.2a";
+  version = "0.2c";
 };
 simplenodes = {
   revision = 62888;
@@ -38698,13 +39712,13 @@ simplified-latex = {
   license = [ "lppl13c" ];
 };
 simplivre = {
-  revision = 65475;
+  revision = 68376;
   stripPrefix = 0;
   deps = [
     "minimalist"
   ];
-  sha512.run = "45fd5adc80b471310cb81961199e4565d40e6302c4069a19016f46367013c587b54ae7af58bed5d2c37812d9aed9deee9b9ffde0762cd2927b96ce311598e7d0";
-  sha512.doc = "507ae125225f775b635a9762369083b5de38a7790b959d7d5c6d0f993b350bda97081e26a4377633ca1a609e1ae2759f34598714de32e31dba17b6c7f54a7f9b";
+  sha512.run = "f9891f271cce6c795fc78719d71724dc1d07ff21d6877740745dea401be1e67801ab92bf4de2d3a379fb2e63084d902fcf4a9fe38aef40052d30e84e8b8a6b66";
+  sha512.doc = "d958c2e1e75bc22256a2db8fcfa2e4d5375b072b493a18c701cc44d4b3bd9a8e4e43291135ca21febb244a83ed865d7d855feb9979091d771150633170865bae";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -38748,18 +39762,18 @@ siunits = {
   version = "1.36";
 };
 siunitx = {
-  revision = 66370;
+  revision = 68844;
   stripPrefix = 0;
   deps = [
     "l3kernel"
     "l3packages"
   ];
-  sha512.run = "6c063dd7eaf851733aeb69d82ab38b1f1f894bdf5c206e62233887c4ed62e699b7a349358ec39e1287842bfc7f7509e51bf8bf5b5b9fd7f1071eea9493677416";
-  sha512.doc = "d52b75a7cc431b479e80a4ebe90daab5697550035f3932a0f0e2b5a6ce503fb031778fb9e893dc57157b678f37c39a8729057156e292fa4135f28b7941329551";
-  sha512.source = "cab618b0b5e8f380f440fc5b4383c8bcb20e7143ab8693576eb3ba3af6c9cb65190be272154ec7038e55343f582117d9dddf5e714c1b44d0fc79202d9f5d8a8b";
+  sha512.run = "adf94a225f73f132a84a2bcd40ac1f024f81fa10eb35be7ca6a41149960f508ccb45f967371aa11ec1a129251a3272361ab270a3ba00b595627489cac789f279";
+  sha512.doc = "35fe0a78311f053e98153fb435327478cd6fca48e1c9595736d4857cbb6e8882ddb20a89fcaf95542c9076c7a89cd8ad0c042e0faf0a8a7dc3a4dccc8131fa98";
+  sha512.source = "1abddd04b462232b62d9f53a1dec4f9815862fe208680e7b62aff00c6ce4649494eedfda81051e7d842d64ebec35043e7a38321212af22e3bf70cf9649bc107d";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.2.2";
+  version = "3.3.9";
 };
 skak = {
   revision = 61719;
@@ -38976,14 +39990,14 @@ songbook = {
   version = "4.5";
 };
 songproj = {
-  revision = 64966;
+  revision = 66704;
   stripPrefix = 0;
-  sha512.run = "404dae04055402b3ba312fac9cd115465ec73dda4d7b7a2550afc088a12465c4a55893a107a85c185286335fa4a9963c38febdc7511bd33548db29ba079e8e73";
-  sha512.doc = "99c4b6bbd9d76ceebe91d3631121a6c1197143e23f6cf771d29ada608bb208173e1656276453ba781a81481ed86c382ca9bdae0db4f424c152ca15b3225bcebe";
-  sha512.source = "005835a9319c80acb3575d644675f1311c0a78918612e1151904f6b715c23fa333c1a67e8f566d7bcb01dce212884454120a52abd0ad15049ade3dbf9e5cf810";
+  sha512.run = "7c6341931e78dd362cd67062518f7f6d1725c239f20f65a7e345fed03787381af08b18102f671be4913ed53aeeb669f3744330d2eb2681878939a813ade2f1ad";
+  sha512.doc = "1d219f70c51484b321b6c3b8fb63a81aaa311cecf5abdba6b5cc2662d528ce5fe78a400d81dd3dbfa0e3616a65bf124e3eb78ae94e57e1a87dbce83ba32b3b64";
+  sha512.source = "ff8238a64adefe5fb2e2ff8b7541fce489c0759dbbfb5fa517458e404e6a7184b77782cc9ce30f2063a958e212b1d133c7c4a3b82518e7347b2cfdb930bd6cfa";
   hasRunfiles = true;
   license = [ "bsd3" ];
-  version = "1.0.1";
+  version = "1.2.0";
 };
 songs = {
   revision = 51494;
@@ -39013,14 +40027,14 @@ soton = {
   version = "0.1";
 };
 soul = {
-  revision = 65906;
+  revision = 67365;
   stripPrefix = 0;
-  sha512.run = "cde236f51709569bdbeafc16b3a49d20e78659d268faaf8dfa059443dd2d432328cac46ef88c8e8dfff74b6fa9d2ec1342d7fa18a13ba183091e5f39a03a0a24";
-  sha512.doc = "da5b11bf84185337572672a04589505363add2a17395c27eb40f63677ff60f146a4765ab31e1acb011e7d0667fb0b4b969127558000207b7fb6c86552a9f0ac2";
-  sha512.source = "b12b43abac05834ceaf6c3caeddd72393625acb6932b088dd48d15561e3599ab20adaf0251d0711c1f00bd0992cee976a1c9a3bcfc0eebaced5b12b8774064a9";
+  sha512.run = "233f1178521296d5cccc7db50c98425995b8708c97d750a5c24f698bd0de2e54ed5c57f9641f402bb8a42721e348355e6f7e9092b4056999b032d001c8203aba";
+  sha512.doc = "c734b198050f5fda61e0477e7cadbb6f6f9257a0fa41babed664621d7b64c4971412d831b350879a5405976d4e35a11caa0519fb67f308bcd622f0c72f431b4e";
+  sha512.source = "6a50fd644f99214a71f96994d52fdfd5f353a584ad73dca3b66829ee6094976eee8d4fec3f691149f634f27423ef5490bd4c1b781fb743bcf228e4b1e52e5d33";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.0";
+  version = "3.1";
 };
 soulpos = {
   revision = 60772;
@@ -39073,23 +40087,23 @@ sourceserifpro = {
   version = "1.4";
 };
 spacekern = {
-  revision = 63552;
+  revision = 67604;
   stripPrefix = 0;
-  sha512.run = "99e74e5cdc59eeb4a5d3718af573db1b53f1e22b3c554cb70ccbce25599133c10b4d8979e6ab7fedb7a1af5700046b027618e5bcf1e56e37b1e63006b9b37ca3";
-  sha512.doc = "7aa1a221d863d31e520c2bc2379c2befc4ca99b091793ce183e2478077d447d1ca47d4d7b29c819780faf2197049fb37e7711b21ec5aad3fee2733538e9233d5";
+  sha512.run = "005bf533b88e602779cb71c0ab7720492e5302f6c9321ef8d68cbcba8f4f9a0c7839c5408ff6c2a5f72c18c5bb5c8a7d41a5500aeecd29ba898c209c83dea6ea";
+  sha512.doc = "8c24513b5f81d1f2df44a707a5e2ee6baf66af594507a545ff0c5e0fb90412b6c03831d73cb473dd32168a6f55f110fa699f941da0626aa0b3ce35bbbf1d9e26";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1a";
+  version = "0.3";
 };
 spacingtricks = {
-  revision = 66398;
+  revision = 69048;
   stripPrefix = 0;
-  sha512.run = "d0b102faaacde58444da330086d97d4fafcef02b3a6c59282e4fab3072152035e3ca02fcd41fa6cd3cce22c77b8e2c9de8c29e108efd7acceb3c3979d60ea352";
-  sha512.doc = "d132b15c31916efe44bd5b21ad4f8bade3e9bb2fe59a7920d37c7f49f11d025d81618f9a947adb77d652e319ab646bba3c1672f1fcc1a824a9d51486e5b300e2";
-  sha512.source = "6a46c1240ea71f5f6e104f14bfa79183e67ad162757667538b3ea981869e9ec10ce8c4c6a179b667ba3a389345805b540fb607bad3ce839463e3cb4bff9ea74e";
+  sha512.run = "df9b7518565ee8f619aaedc82384497dfbad69911c66dd68f306010cee603ab307c3af89cc3f9901585de03e1796da3d8b96380e454ab0d3d24171187e39872a";
+  sha512.doc = "76ebfa44b0f992db86452e5ca6bff7b4b5285e743de595f6963afca7eb0e80f287a1eb71b2f287edd33acbc7a9f24fe1876ac6f62d2812da2f1fd89c9650f814";
+  sha512.source = "1f22a7811c34d834cae307a149fd993d87232c6e1ad6d9c22c79f005b6ba06a84daa5878caf189b44b8afd39a9ce41005973168b7198f04223becc2c0e90ff6a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.6";
+  version = "1.8";
 };
 spalign = {
   revision = 42225;
@@ -39129,13 +40143,13 @@ spath3 = {
   version = "2.7";
 };
 spbmark = {
-  revision = 64706;
+  revision = 69350;
   stripPrefix = 0;
-  sha512.run = "7981e8bb14b2599f1ab53ea58fe1d29570fc902726993b7d2403626222726f974c1080ab73d1b6f55ac255323d9ef147d28efad039f722af56f9aaead57ee2d3";
-  sha512.doc = "aad5d9d1c80104a53ffce390174d0f1b55c715df8f5bfe3eb28e2a2f8613d03f5dded36b3d851fed7546b023d1167668ca8b49b932dcc66e81a47492a3b5fa24";
+  sha512.run = "66ad2072225527c3ed64073ba5d33533a429b211794cf6cfb2c2623063629b4ad2869decea96237cda6c678dd35f46c6a63c61ee900a6a03c11e77130f911113";
+  sha512.doc = "128962629c38e6dda2752eb003c1039cac0e3ea01ae9ffef3b784d4f28c364fd275c1169dd812293ce5bd68a4c6aee422a23a63e9ac5b3da4ea5388e3ca44bf5";
   hasRunfiles = true;
   license = [ "cc-by-40" ];
-  version = "1.42";
+  version = "1.43";
 };
 spectral = {
   revision = 64528;
@@ -39260,13 +40274,13 @@ spotcolor = {
   version = "1.2";
 };
 spreadtab = {
-  revision = 50147;
+  revision = 68256;
   stripPrefix = 0;
-  sha512.run = "e662188fc94f3f31031238a9b20ce617b01adb65dfcb5ba00cc0f90555a151957747e9b24803436d0815528d945e3a65684ebffc04dc5de2552989c81bc80846";
-  sha512.doc = "e7e1184c6d5013a5f991325e1f47b509b90f32022530281263bd5b1c0d9c9082a872f9b6ece3198ccdca555e1187546762c8fb4fcec9a75f72894f6fb49825c4";
+  sha512.run = "f808d82cde55b9b8fbe0cafe9f2e67acb19547e85f8d48965ecc6c8ea70302b9ebcf4097330707780fddaf1d9b2a2a12512fe4026a0d660c5a376fbcffdb6f19";
+  sha512.doc = "a2b57066ab198d88be6736572276593cb2b31a9c6392f74c68358d39a8c88077266b2138730225b6ef54245a6f084aa73dad5bbd31a77fdd8b60f53f7342e25f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.5";
+  version = "0.52";
 };
 spverbatim = {
   revision = 15878;
@@ -39328,13 +40342,13 @@ srcredact.binfiles = [
   "srcredact"
 ];
 srdp-mathematik = {
-  revision = 65293;
+  revision = 69288;
   stripPrefix = 0;
-  sha512.run = "6735976156214b80e55e17f6100b8961c2851c6caeb339dfe86c9d68865f243718cb5e4a74e4f7592fb8902b843cf917e93233d43032f2b69a17402d5e5c5613";
-  sha512.doc = "a2fcd471120ca30a329c20793cc86a1ae8de33b7a1507b3204921d5d0e8620ed9e9d546db9d4b98194122cd2ff35f3d9e8d448b2493849a1cda8351d86ee1604";
+  sha512.run = "168efb5c07ead0dc00c318928d717b2840e162517486ce1351412d7cf5f5cb8807d8016799510c6db48210fe517485fc344eec8f3edafa587cc55d1e6e60a005";
+  sha512.doc = "318b530ec453df35135ea57a514574f71c83fca3f63c85e36405ed20f84a2438951325d9a30bb9c5abf2dbfcb5b2829811720b7031a68b2ecf9d19170e4ec235";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.11.0";
+  version = "1.12.2";
 };
 sseq = {
   revision = 31585;
@@ -39420,6 +40434,15 @@ starfont = {
   license = [ "publicDomain" ];
   version = "1.2";
 };
+starray = {
+  revision = 69002;
+  stripPrefix = 0;
+  sha512.run = "4ab397ef4f6d8383efca60429971dc48ac6b0001604f0a53540c7f030a567606f0cb8d401569ebbd2727e83ee3a94f5e62680aaff3877a4225326988ac651451";
+  sha512.doc = "9db6912c1149b57a56c8e916525caf122b3d37346642886a12309463b0dbeda45ff719c300dd09460da51518c8a91a99b0e4aa3c80e188f09e167c1bddf31b9a";
+  hasRunfiles = true;
+  license = [ "lppl13c" "gpl1Only" ];
+  version = "1.5";
+};
 startex = {
   revision = 35718;
   stripPrefix = 0;
@@ -39449,11 +40472,11 @@ statex2 = {
   version = "2.1";
 };
 statistics = {
-  revision = 52212;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "b0f2c288a57cc64c72bd2b862cd6c40b62e7404c4733b25af64b43d008b277417bc72a4398734e5620e6d2b9f97b401c1d54ee69b0a1ad5947ecba798ecfe0b2";
-  sha512.doc = "9d3f7b94c6d144b89c1c947645e4e071933b402e350ef6405d533bdb0a6aed650b215a135976410fbd3a68ceb0fdaf6c877f2d7435680f8c70f3a2209c0808bc";
-  sha512.source = "a0ea1a189cda9472bf87996d4c191ab84ea824f3034a66d8e23982a1824aa78221fa368b3c8bd696ce58b65280599617c5ccfe4ef97fab8227148e90cc7f3e4e";
+  sha512.run = "dc3e9516f7bec533adae533d73583871101f26a42a96e6e0afc99f57b2d11797c1850113630b128ead90997fcbacca1bdfc17ed70d4854756cb3a14fa4133d99";
+  sha512.doc = "239231ce3eb6e75450e4eabd722a6fe2149e7825236c2d028a0923ad53ac4bfc2296a5d4d8f80b70bc24276f77f9b6b79f2e33debc03106b5915cacceb4d7040";
+  sha512.source = "a35c628209828b5c595dbab9596a3e25255dd1d61986c8108125e45bbbef7806b9204791d59ee23ced7c486f0a39271b15f0bb6914f06cca379ee6072f31cf97";
   hasRunfiles = true;
   license = [ "gpl3Plus" ];
   version = "2.2";
@@ -39528,15 +40551,25 @@ steinmetz = {
   version = "1.0";
 };
 stellenbosch = {
-  revision = 36696;
+  revision = 68039;
   stripPrefix = 0;
-  sha512.run = "44b6b8149d4a5aa34ce4bc2e9e66b9bd3a1381b17ffea213b5d0f3afe5b71a62a3b85b4feb6caee4711119fbe27d46b3fcbad2a892e662ee9aac184336677d0a";
-  sha512.doc = "6af215b7af75e04bf24ecf9f83c6e4b5a12013a84435e65872d4d84dadfc2231d341153b05f069d9ca927370a686b6642f4654c9924521f5d93d0d1772f48059";
-  sha512.source = "a4df0b0c1adc1477be9a8a0d2ee3c03c152e3a2a9c9bff5337accace9562a0b117f2ddd09ecf29bfef99ab3bf0a4a394f8780ef57fb693d98fc269cad2f940d0";
+  sha512.run = "8e368dbba7713051fd9a834223848a2dbce700d9ea8cfa2ccd04a3f2e88cb15d5ab1d881d4107dedc72bfe4e6876e5b7bfbd019cbf5d9d7fa152f4e6343b5aba";
+  sha512.doc = "0996a6932b4a6953cac70299ee655349f6b7723b416e3fef10934de92844de2dc4da42dc5d3c3a3939edb0cca087c2fd28b0d222641197593e9697891891da20";
+  sha512.source = "c1b4c3ac30f5f923a3b0893f4921fed69d99a0fd07f6de7cc728c7e95a2250c1544a5f60ec8331ca912dd5204f273c147492559ce08f6233fd509076db116d0d";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "11a";
 };
+stellenbosch-2 = {
+  revision = 68183;
+  stripPrefix = 0;
+  sha512.run = "ff82ad0faba3b5742d1f31d22820cb4998e88630067dbfbdaa7bc01fe4927fc0d8f10afa1713551759048a9166bc6d86cf52561f72bb743197b7e5fbf911cecf";
+  sha512.doc = "9314fac0288fcd9e0e6040b3fe3276d52848693d33dba16af0b2e6f4bb79a2ea3258dd29e5b62bd90b25d8a02e9cf160833750b0aa99b8d09acefb6c8727bad6";
+  sha512.source = "bceed8029e35a4491999fa92d6fd046862895e4214f83fff06fad39cd82105d8c494d78d6a449c374ad678aaf727284e6367ab9136e106dc4266afbf1f01b367";
+  hasRunfiles = true;
+  license = [ "cc-by-40" ];
+  version = "2.0";
+};
 step = {
   revision = 57307;
   stripPrefix = 0;
@@ -39556,14 +40589,14 @@ stepgreek = {
   version = "3.0b1";
 };
 stex = {
-  revision = 64383;
+  revision = 68569;
   stripPrefix = 0;
-  sha512.run = "e3e1c32f1d74dbf72793b6187e4b94ebdbb8d9e7f11e4b2d3e41e4803ba6b3dbd9d71c69c757ffc85cd4eb1c5a340c111a4e23f83bfb0fcf6574ee7dc0e51d07";
-  sha512.doc = "c5356065843fd7bb9367c52119b61d9b86aa10c8f099969d0e5efa31f2a709df680c43b41e6266922f2835175ddbf2a719b2fd94f55bfa7af139969d5840c270";
-  sha512.source = "fe3a69ce18eb50a24972bff6695e7b1297defa1c99d53b05ba5a04abf249e44bea4a7ab8b191ebd3f02f71891eb97c88e8ef685363f4677471a38c282fad6566";
+  sha512.run = "dd17faf11269dc6dc5e6068bb956a36b2af86775e296b15110d0c9b6e1e8b8410b936deb690c7a89d604c012b5643849e8abd317ca67cd872469f863511deeb4";
+  sha512.doc = "0a8571fab8eaefb365c52cdcca251f2582d4581f6243e678db90c2c05789cf55ae077ba3216a9318a1bacc172b259ec444b35d8de1622435d4a02b5611d141c9";
+  sha512.source = "6efe24e0933790ad7c3477e9c1d25c37b585ed0e18ca937326102783362691d92b51486885a3d08c1581110a2e4e9f7182f706ae4896c70f69472e01ef1ddea2";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.2.0";
+  version = "3.4.0";
 };
 stickstoo = {
   revision = 60793;
@@ -39650,6 +40683,16 @@ stricttex = {
   license = [ "lppl13c" ];
   version = "0.2beta";
 };
+string-diagrams = {
+  revision = 67363;
+  stripPrefix = 0;
+  sha512.run = "9f05bf09bb74ab07ecf1a4e6aa1bb16db06961b1caf87c73f48fe33e8174081c38eab30b0249e219a936499a533d441b092e642c88a996193900fb0000708c35";
+  sha512.doc = "3c692dbd5835abd3bb87cdc8b3abbfdcc63d233cd3275d92d5073772979349c759c391f254bab3f670d65ebb55b50b4d7024b748b538349428033971beb09bbc";
+  sha512.source = "632a1fa22b3bef38b708169aecf1b9c3b9bdcf4cd07843a2b12893a996a98d41d397e3614e242d6021a385dde4e563aaa011e38400c216e76bf221548996d2cb";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.2.1";
+};
 stringenc = {
   revision = 52982;
   stripPrefix = 0;
@@ -39671,13 +40714,13 @@ stringstrings = {
   version = "1.24";
 };
 structmech = {
-  revision = 58985;
+  revision = 66724;
   stripPrefix = 0;
-  sha512.run = "4b4bfc5962b57792e34f22f19f8127a048ffc4428eccded53452b165d11d798866f4dfb477dc87f3be52e074ffef9e13e496894bb14e4ad1876b09852efc7f69";
-  sha512.doc = "48623a95193f3613d16b82a0df650b1bfcbf62bb1fc7f2fbe2b878199eae01d89a5ca9d151931ae16eceeb1d47dd835086f3eb46b0b3bd36133835e797eee4a6";
+  sha512.run = "a92eadf53e3bad0a1e54246b75b10c99d84dc509ea31cc9fb30ed5541e3d757afcb60aab7fbb7515be335a2caa2f29d7fc211b561f073e25a8a1cdbcf90d2d5f";
+  sha512.doc = "e3ee8640eb6650f1cd18bc111d0e4f9b6e3a8cc8ac480bc05ae8251b0e620223aedbf59a54e16953edfd4faad8b05c78a51d5756f7b8660c612b5eaa32defeca";
   hasRunfiles = true;
   license = [ "gpl3Plus" ];
-  version = "1.1";
+  version = "1.2";
 };
 struktex = {
   revision = 47931;
@@ -39700,10 +40743,10 @@ sttools = {
   version = "3.0";
 };
 stubs = {
-  revision = 19440;
+  revision = 69128;
   stripPrefix = 0;
-  sha512.run = "13d9fbb0eb8fed9b92f1307db189e9f65df92470d0ed21a0c84dea2f53ebd1b4d665919372476b737184df4f9faab0a982e681a0f9cb5a99e40b5f80194d448e";
-  sha512.doc = "a427047460a92a436b21c23c112bc4ed8608a9916b613530e5ee5cc56bc833a18c6336943ccba475b7854269680eb7d685bdf2f0641478e46cc4e8fd9a6e8260";
+  sha512.run = "fb8276d461883c289329a74f1ba3bba5e64acaf199f7739b013f32a4fd84ab5e2d94d73482a3b70c64e156ff9332b3c81bcfa74854edcf6cc3fd6ac89df595ac";
+  sha512.doc = "b2822ecb49ccd9c707cf731490c628a75b278848dcec31283c782ba72a12da8e8b7282ddabe38939e5b0c01afdd222be6991618d4cf1b73a2e06b875fab4f82d";
   hasRunfiles = true;
   license = [ "gpl1Only" ];
   version = "0.1.1";
@@ -39847,15 +40890,6 @@ substances = {
   license = [ "lppl13c" ];
   version = "0.2a";
 };
-substitutefont = {
-  revision = 32066;
-  stripPrefix = 0;
-  sha512.run = "d060c12b1283ebcf314d6f9f6efd2ed94151ae7030a3d6e424478b2e2cd05753260837f1b9c5003735e27a7eba0313f29263e9a8a8892264bec131bbe07ef9d1";
-  sha512.doc = "ce241b95d029651d2de4464880f7f59e4909939697537cf5257bc2e132a476147263c8e9253ddd1fd35fd62dba73cf4d0d06d41bde26b11776b83c456adb0fb4";
-  hasRunfiles = true;
-  license = [ "lppl13c" ];
-  version = "0.1.4";
-};
 substr = {
   revision = 16117;
   stripPrefix = 0;
@@ -39884,11 +40918,11 @@ subtext = {
   version = "1.1";
 };
 sudoku = {
-  revision = 15878;
+  revision = 67189;
   stripPrefix = 0;
-  sha512.run = "a5a9ed2ec9a5eb2cfe973094c6bfca609923ee14ec51916051985bcb2533d1f6670776877252f50a2f16fb54e3318adb15fde907182da215d1db81327fee313b";
-  sha512.doc = "7e1fc099e6f84e0e22f6e479bfc611ebb8668fd1391c07f877abf4455579248b99108c9b6224da3a0abec4e0853ac8ba8f817e80832629a1d3b624b16394c29f";
-  sha512.source = "05e89ce1f640ed336d8d7447681517b6fb827fed72e8245998c0b11f7f767b8f20e9688f3740223213fed0e860c9304748a11fe94b1a8244697c79a0db54d441";
+  sha512.run = "0cd82916142b881bc4ea7fb9885de56d3ee724fee637eab5f1bc6bdc6891360680132cb2c3d52028cc0ea9670efdaa4666d59a853ac3f850f2642954962de22a";
+  sha512.doc = "6b44d22aa120727f8a7a55adac7bf71eb1eb57ea1f33d597f06923bbb50d88c088d431f463951c3db27c2c1d68024b44992e47c83eddce98ffbda054cf98a4e1";
+  sha512.source = "eda0ed193fba97a2f0ee2d435d62110acbc054ca486a580fcf0a79f3c094d6e83b4a5732fffaf237978abd566794ca6f3be56f70a34a4cac05c867e9213cf1dc";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.0";
@@ -39904,14 +40938,14 @@ sudokubundle = {
   version = "1.0a";
 };
 suftesi = {
-  revision = 60991;
+  revision = 68204;
   stripPrefix = 0;
-  sha512.run = "12f9eed31e58856352c2625daf0ffe51d8df084a4ee255c8a19c17d1debee06873127136a49cfacfa3941e25546811216eb943e17717052ba369a3f34811687b";
-  sha512.doc = "01fd5a4e862960a219619a57adfb7b34ee71fd953f79178e6c77f6c27b404d9c11eecc7d302c9a8a23b4f746220acc9ee1a465e1b921dfeb3a9119d45b96b8fa";
-  sha512.source = "d0a66c2920a9f7e0ad2a54b47015b89e7792b8f0fa39011414ac80a58a826d038b29e5d0170803be3f00c61347dbf287c9608c59f1354895bf94a24a08d506f8";
+  sha512.run = "627d002ed932ed3f55382b50e4f19c2e98284602bf3095f352f1ad3120f2586b7ebf12653279a98c794e34b97829bf30bea4fbcd06c4657c94cec96be233b3b7";
+  sha512.doc = "af2b5317858ab9d19723c668fc6af548fb4bac805cca26e7dac31872e54c35c768c228763681db34722f2a1c4222e2f1fa45e5263b183ddd51e848e643b7f47b";
+  sha512.source = "298a0a6a4d627d662c4a8ca6dc7312238dd36dd546c768fc16402fa6f630a224884d8223c30b69abd4f28ae7a19d02870b01ca71608ff37dc548ec3d5f854c95";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.2.0";
+  version = "3.2.1";
 };
 sugconf = {
   revision = 58752;
@@ -39922,13 +40956,13 @@ sugconf = {
   license = [ "lppl13c" ];
 };
 superiors = {
-  revision = 51909;
+  revision = 69387;
   stripPrefix = 0;
-  sha512.run = "783d14d75daa63d108fcf870004a46680c643699ccc7256906a06fc7ca4482ebcee14f120209bd488d5c2890a3c8c33d132a0eb23d4b93d04deb05eca6bd0970";
-  sha512.doc = "f96d441d9dbd470023c1ecfe3912336f696dea7dcaf7b3c052aabf9c702869cd0ea27a28ffbd34294149c98d5bc23fe004871faafdfc1eb72fcc4fe2e2591d82";
+  sha512.run = "50c352d7ee3b267ff3c25f93d5ad9d32a80f0f09cb8e802f6426e9d415ebfd8a54d3d07425c2908c75f328309e4d21173feb768c63e931658d151274ef6f953e";
+  sha512.doc = "da35e722be66689020ec2052f4e096502ad63121fcb3a55ffdb724d1b557122a401e7bfa8c4c0ea2c6881b0138bd155b1e5baa7886c2e0c7d1b693e56c9e7dc6";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.06";
+  version = "2.0";
 };
 supertabular = {
   revision = 53658;
@@ -40101,6 +41135,15 @@ symbol = {
   hasRunfiles = true;
   license = [ "gpl1Only" ];
 };
+sympycalc = {
+  revision = 67087;
+  stripPrefix = 0;
+  sha512.run = "98c46fc7727bbb8fdda4038f56482d5fbf1c88e3e869b5865f45392dfbeb5be545f754e6ba109b55e66c96d6cf733ac97b472edbd38e3c21c2f937ac9136f19f";
+  sha512.doc = "52d163772f25442b32a5ac240d15ab2d606e4907c79682cd37ff45389beb41fc2eaefec9b85d0736e3490d0f4cd1d60a42091cf24aba1ede8aded1cf7a786a0a";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.1";
+};
 sympytexpackage = {
   revision = 57090;
   stripPrefix = 0;
@@ -40112,9 +41155,9 @@ sympytexpackage = {
   version = "0.3";
 };
 synctex = {
-  revision = 54074;
-  sha512.run = "1cc1900df90ceebc6865ce7c4a4befc86d1aa5aeb0f19808526a6cb369d7bd2ecf3c4789817da937e84fdf1fa3c921660e64e3e8a8e215d4f6dd97b2371743c5";
-  sha512.doc = "37b7f0e3b86494715763c0d230a076aeec1f41ad658432099871d26b933cd8d0e8e831064cbe462a31a30260004c6dfe9b6b4d555d281d909615910470a2b1ef";
+  revision = 66203;
+  sha512.run = "cbe1f8c6d64619f742003c01566d55b675724f5d03681ad53dc1f58ff7314af88000ba25ea74e4fcfb07ece6160be6976ac8e69a9a1b524f223f5b80f350deb0";
+  sha512.doc = "14e1f266182ee0be47a7b3841435f79594cdeb959245e6226520e81248691beeaa73f365c1112ef3bb4eacf4ca77e55265bd0d13c190858144bdc3064fa88a59";
   hasManpages = true;
 };
 synctex.binfiles = [
@@ -40167,10 +41210,10 @@ synttree = {
   version = "1.4.2";
 };
 systeme = {
-  revision = 55015;
+  revision = 66655;
   stripPrefix = 0;
-  sha512.run = "5ddd525564a009104ef2f345b6513c08423868a91105381c66372176f41875fba24f0d27ceb648daee113514bb22a3e68d5134fce82394f3e7159af68cb81703";
-  sha512.doc = "9a3fe5864af37878b861220ebdb6613635dcfd563a0149ebeaf0c725af608d8f24f5d2e799b19546f82299dd38e2a4695b6b08d056fad1ec2f8a134326915325";
+  sha512.run = "ed93847bd9d5b9158026e364d98f7102e4040d19f8fe198565b8e6a9573ba1796a89b69f76dae76c40acd9ac96392aa75d2ccc006f8419b699f8f4c7b35c737a";
+  sha512.doc = "97bc9240c34251e6b3cf0fe53fb5c5914e0bfc2cf852ca70aaa72213ac9e5ac7d55738f63e73aa8ebc4e320a3874b3ec84c3a0465b188c2fa263648306faeaee";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.34";
@@ -40262,16 +41305,6 @@ tableof = {
   license = [ "lppl13c" ];
   version = "1.4c";
 };
-tablestyles = {
-  revision = 66465;
-  stripPrefix = 0;
-  sha512.run = "bd486860c47dab832ee90a863fae09c0aa2eff5b2a8ebc77ffdc5299f8b163bf83aa427d82023ba3c67ed82efb86db386b55d4f745681626b0c0816ee5dc6d53";
-  sha512.doc = "53555f5ff0c1634d763b3e1867f67f3f4ee9dbdb4e813c5e01682ff6256b435a0b3706ab1869531932bc42c523007cb8afd96be380741c640c2d585af890ae78";
-  sha512.source = "a0da15a75d9b5ad4bde561092f677553150302feca788f4d5496448f79de198ce631950cc57a32453272a2dfb7555cb1da421ea959c77c82610bb1aac52efc26";
-  hasRunfiles = true;
-  license = [ "lppl13c" ];
-  version = "0.1";
-};
 tablists = {
   revision = 15878;
   stripPrefix = 0;
@@ -40301,14 +41334,14 @@ tabls = {
   version = "3.5";
 };
 tablvar = {
-  revision = 51543;
+  revision = 69212;
   stripPrefix = 0;
-  sha512.run = "c0401c0ce273b59da6877f231b06f3e4da572a6531fb6c587e29a00bb0f53edcabc725453c2ad1dbe6ba0458721a7e4b04182fcaaeed46208a760a5dff9651d9";
-  sha512.doc = "3bb104a3f50375d2e96f908126268bd3bcb3e371fdd339ed7bdad9dbbf714480b89a4a11625a2b537e09f214eccdabf6c0faee84dec4591f0627783481eff20a";
-  sha512.source = "cfa218cf1dee3830f72af6996b1a5666d65a8729f65a8a652744bed84204122a65d514f539c2d50537c3529fdb9555ad5c5a2698f4459e11976e4b9640c8cfa9";
+  sha512.run = "0ecb62b92529825d893d5ae686aa7d66576da1915ff760ae80466e9c76c2951f1300e72b3bf039a61997ebfaa9f72a8c56fa58f53c65d0a75bbac71d830dfcbe";
+  sha512.doc = "7cfea26a1abda9aa3642c5d48c763184fc0f7a18b77fb72b8083c7271847b6d7ce3bad33fca96f082abd171f5f013eafbed51bd84b3ec046d82be13c11043f2a";
+  sha512.source = "871139aa0cecc116ef7e3bfe6cfd048cb804ccb108c18b6fd71bafdc02bfbce56d297b111ddff348e92f44fbe1a69e06a5be3693386f02766475004d78e54d06";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.2";
+  version = "2.0";
 };
 tabriz-thesis = {
   revision = 51729;
@@ -40387,10 +41420,10 @@ tabularew = {
   version = "0.1";
 };
 tabularray = {
-  revision = 66281;
+  revision = 66276;
   stripPrefix = 0;
-  sha512.run = "3f2b122a8688288946e9fb891f6b4e6166bd7544d9761414da1429e2ca3c84ab7f2488d4aaf3680d77bc6e1a43401305235b825fd4b92ad00c92575cab51511e";
-  sha512.doc = "7425c669a3cecd77a2795f730797b2dd14a27673326219a7c03bdbbdaf89ee08a69b179ad13787b98ed1b31a29c0d36a4d0ecfcf9ef75462bfceb806a71c80db";
+  sha512.run = "49171a748b9fa046d874bfb2aa44d2696120fae78c55314853090163228d6484507c281f65c7ddb1ba952b22c14d91e3904e779116adea69166322b91188b980";
+  sha512.doc = "98d37bdd677cac76657848d0ef5f638f77c44017c6320bb4122696672dfbfd459afc3c2ef44431da7340d9831c319998f88390300ce2f53a355239203390a448";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "2023A";
@@ -40434,14 +41467,14 @@ tagpair = {
   version = "1.1";
 };
 tagpdf = {
-  revision = 66465;
+  revision = 69165;
   stripPrefix = 0;
-  sha512.run = "4444749d11674a8ca4f74ebb26c721bceb7f11e8e01dddd3be109dea403957e95aa436ae4034764db7b85cb2905f2f458c55a7d264c895f47a38c85af88be4c7";
-  sha512.doc = "2b17fa52385be61794a2b382a91312fdc101c498f49080d0073b4d3060278068fd9dc24fd94c9aaa174d880bb985d94977bad3746810c898022cd78003c430f9";
-  sha512.source = "ed535ad10d7cca507f4cdaf8ee63eae4f6a7b86bcd6f92ff71a2b611125e2145bdee0fe7b0d42020895964780b990aaacdfa60a2a58f1a5516ef7860d560a95c";
+  sha512.run = "56d464d44796cea4f20d94a3f58275f2d4d470e3f851a14c0a63da738e8865a1276a7a06ca77c00a2c9eef0b082c1327be7645a96066265a6d412b5ae950bf43";
+  sha512.doc = "ceaa96192541cd2a17c996737dbad46272c5b76e9af6176ccf4c6b8f1baecf2d04636cbf8dab0563943dcbe5cc72bc36b1d8d3438f1b35a5d239bc3da81f03ea";
+  sha512.source = "202a66085866eb4c989278ee9a1cb9143c0d0bfaef6f2bb810736ec86d649287242b15303b128f80643074f94213f7b04de46895b324cbe13c9bfe1027ed687f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.98e";
+  version = "0.98r";
 };
 talk = {
   revision = 42428;
@@ -40479,11 +41512,21 @@ tamethebeast = {
   license = [ "lppl13c" ];
   version = "1.4";
 };
+tangocolors = {
+  revision = 66733;
+  stripPrefix = 0;
+  sha512.run = "f33e7b7bf60f7e10f6b58e24a53c374ffe84a48a44bd6e0259dd741c91f94e61f71c6e6689e204017eff1b0050aba4e6eb5715b3978ec633ab0fb41317b1c835";
+  sha512.doc = "051a1f028e4e77eb78a11dda00fa950f9405a4703dfde7fa61318482ece12ba16e16ed0dd035532cd272cf3d66efe03d212f44c03ffa342db76ead6de1a5a2ef";
+  sha512.source = "d88a247cec1928a8178d189b812175df0a6f861f829fac382c952c0e1d6a5cd3ddcf4216e88a50676c831b1940d3593dc1e441bc45b827591039a13a31f27aa9";
+  hasRunfiles = true;
+  license = [ "lppl13c" "gpl1Only" ];
+  version = "0.3";
+};
 tangramtikz = {
-  revision = 66201;
+  revision = 66183;
   stripPrefix = 0;
-  sha512.run = "45a176bcc950088be660fd9d2a591c4cf116686374000ef703fd1b303f678fca3fb74e109951f2de57077de4045d2936858e46eb98ebb3dc179badb22a9d3bf0";
-  sha512.doc = "cf7902c8d6628499b56cccb73ab16276d00d99d92aad84f53e0ad51dfe3c6bc31fba329ca64ecce0a9ee1b64ba24d86bdf643e412ee6052035aa7d4a1fd6950c";
+  sha512.run = "81446f01dd97ef332003f8cce4becb670fe3fa284e540c0dcefd6627b03efcc87874d12c7c7e399947a269cd4fd66deff2064cd1ba64cd34d6cac2b4c587e802";
+  sha512.doc = "45435423e7b0a7d7aaf9db5cdbc682b9f62721b7fb333c64cd76a773fd67bb7faebe1bb11a6424c15a495f2c2269a78698a7846f2e8902c16023f2af91c9be9f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.1.5";
@@ -40526,13 +41569,13 @@ tcldoc = {
   version = "2.40";
 };
 tcolorbox = {
-  revision = 65800;
+  revision = 69370;
   stripPrefix = 0;
-  sha512.run = "d5e985b0a8f9e7756579b92268a3b9a5a5ce0169b1b8608996c3dbc4264dcf23f17256789cce7db712cde014cdb9a024e649fd3ac6ac53ef4d6131599d49fb55";
-  sha512.doc = "96cc807a6130a741b861a738639e24dbb31e7194065e2e62b2ebf17bbaf2de0a38b7b9feaca948e9e36eb9bc6736d963aa1db33f82187759cab384f31966c924";
+  sha512.run = "f62323c290e39f10555df66bfe43a3a199f99fd5ee81c13e450cab4736c805a21cd3d85ae710ccbccbcc552d5e0370245600a5e58e605d6b3d35a3fefa2a6fe0";
+  sha512.doc = "7f4f312fee029753decd7456a6e2d8bc829484282f93d245e73a3ae706f7c948091694c05bd2b4f18982b4ed11662ec1868ef0dfd7bab3f35c15a1c1d486f41e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "6.0.1";
+  version = "6.2.0";
 };
 tdclock = {
   revision = 33043;
@@ -40605,13 +41648,14 @@ templates-sommer = {
   license = [ "lppl13c" ];
 };
 templatetools = {
-  revision = 34495;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "16abbf8e5c8972961d112cba712f927be24fca191467677bf27d76ba30c2eba8cd237842b003b9cf45247a122294d517b14a4bf5b4938eedaf3055ffdd22c05a";
-  sha512.doc = "54d696f510cc75384703f750a8c532eb2a0d46e02821fd9126daac52ed1b39859882d475758cc1ff7fd6257211e49ee0fc5c06dbb2e13e83d4584523064cf19f";
-  sha512.source = "685e379f557b683adcf198fb0a6f962b1da431e004470d5fc53c8815f4e7048e73d6851ae1792d78fa322f8efc5375d40c8f3c79404a8feb4a229df2fadf154f";
+  sha512.run = "696727231a51c33d10ca7c18690d2f960cd01a72b4e928c581e2a7ed26770bf5ea18bdfbdfd56372fc7289b59323025ea7d30f208e991e1c6c89a659a240597a";
+  sha512.doc = "55c03f8cf8313aed72c9434eb26b0623e55a5644a22914ed82c64c07834258f0d2f9f7c083b22677be854f69bcc6d980e45158caa4a530df517083c1c590089e";
+  sha512.source = "a14dec17daec4f731aac48a155fcd306528ba106518db1b07fa1b77d9a90fef82746a4b173f1ec072ac73023469bea88d70f3b3cd106b3557ce426fbd05062e6";
   hasRunfiles = true;
   license = [ "lppl13c" ];
+  version = "0.2";
 };
 tempora = {
   revision = 39596;
@@ -40642,14 +41686,14 @@ tensind = {
   version = "1.1";
 };
 tensor = {
-  revision = 15878;
+  revision = 67667;
   stripPrefix = 0;
-  sha512.run = "8f048f9c72eb693bf9e75e6ebda2901eb6b6add654b1f89651d54eb9416559c2455436f5e825160bfce220c790e00aa3a6f95a4557b3fdc880bade768dd36c05";
-  sha512.doc = "d9ec6b7b49d028a5a405f16c8cdb54873d92d3a0968b7df38aad44da607c8ea8cdcac45cce63b0bd2258a2a89787e2388b2375189636b93bf643055c0b9f86fd";
-  sha512.source = "fb246320405988579412cb8afc3f0f0951bd6ca09974c3f38c83979ff195e16e43c1852bca5097e8e4b07039230d3c019117234d4bb77eb75e70bedbc796ab3a";
+  sha512.run = "4e19620df8703906c539541afca09ef871e1cf6a20315b246ebf758c5a0ff5f2095c51d312b19f818e89c9714a79a32fbee708d4ecd0a0b0257546b0d940ed1a";
+  sha512.doc = "f60b5bdde9a29bf6a13ee94833b0d1fdaa1e7958d01a6a42b20a995263f398f7fbd761150b71f66490ece636ad2aa2c69a8ac9447a0000265ac480396822db2d";
+  sha512.source = "4a90f092c167a905cf72abf029bce706cbbcefd4dd73ffe791a132f22268a5c0322c246877a387739bbb15697555fb021e6132538b5ab9b188a9fa9135b9859a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.1";
+  version = "2.2";
 };
 termcal = {
   revision = 22514;
@@ -40739,17 +41783,17 @@ tetragonos = {
   version = "1";
 };
 teubner = {
-  revision = 64600;
+  revision = 68074;
   stripPrefix = 0;
-  sha512.run = "d6e7eb1affbc544b04b279a2f0047863eebbfcd758ca69b470e7ed0b45128ac6935509240b7bc86674f9f83da445993c854d72ee9e1197ae80bc93a5b6e5f72c";
-  sha512.doc = "cb573c57d090d21b77ccbf90c4da3b64fe532d55b011356d4ec1b396545646e9d176aa4f21ac4e22604a3513eaf974cc627f7836afeae0ba3b6c21cf36fa0fd7";
-  sha512.source = "f84c0b7e3bd1630d022d578374cecd9212915c2a42e493cb25986295d6cefb0cf80be47dfad9a2cf47541fa1592497be89048972f6e791bff14477da21a43b22";
+  sha512.run = "c5f03b824d75099a38f8d203722d0edc4136392ff282489f6473a83dc178f536eb972ede3bd9371f47f39dfc2dbda6b4db78d282642889b4036dbbdb8e49a473";
+  sha512.doc = "f1d7123e4438f781f6f4f7448119c7dc968be54888c027f8a7c95e5c70f06adcb58d127de21679bc125355f85f82ec94d2537cb0467f7c285427fba6b8f50775";
+  sha512.source = "a44d484cc8de4f280f35648c93bc1c3673fff20a3477098d58342cb579b443f4a417f528e7b80787bf13fa8feddb05dc2cb5d7c261d812a5473236d00fac59bd";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "5.7.3";
+  version = "5.8.3";
 };
 tex = {
-  revision = 62387;
+  revision = 66186;
   deps = [
     "cm"
     "hyphen-base"
@@ -40765,8 +41809,8 @@ tex = {
       fmttriggers = [ "cm" "hyphen-base" "knuth-lib" "plain" ];
     }
   ];
-  sha512.run = "7d177346a2df7e7dbd2fce3635a8860c0deee30271beeba585091f8027c796678a3dc9cda2952a073c9ca02e26cd656a3bdcabe4661c23e81af350a987d7e4aa";
-  sha512.doc = "e545796c64bbce0680d12b9d77ca64b008c369f90639ad9c3e7b7b219ceb85fcf24fa7eccaff65639bb9fe7159c2b2dd124866acd2ad78d860ff4e872a341d23";
+  sha512.run = "028cf62dc7bd7f62acdd005c1121b4fcd55f9130db61d3bfd782cdae22e2e51581cd66a43a827ce76f6e4fed09f2050ee81c13594f6df64817c3a48ca3d1d088";
+  sha512.doc = "69e9a2068eb63d7a503be0aa3d94cc270485370be0342d5adf6fac714743a90b705622b8cfbd7e62e52c15f9a663fc3101d11a116c1af9c4f9f3f5c5d3dbfc77";
   hasManpages = true;
   license = [ "knuth" ];
   version = "3.141592653";
@@ -40788,11 +41832,11 @@ tex-font-errors-cheatsheet = {
   version = "0.1";
 };
 tex-gyre = {
-  revision = 48058;
+  revision = 68624;
   stripPrefix = 0;
-  sha512.run = "7e8ab25cd563e2be7f333f5f4232a7d64e9cd8ef2b5b898ad5e33af96d455f3bb0214184650dde76770cb95f3bfc6b10f35286e0263e52a6f43affa289920327";
-  sha512.doc = "ebfea3bfa958175078b78ee0f2ea36a4de289b967f8fc900268dce7b3d356d2faae9d9a1123c48a06e3ec78b05863626fa97cb3e249d1b87c036fe00c194ceec";
-  sha512.source = "68a06261fed419e106e8f6958a38bb0f5b78c3ee10b8b68365b3bf9925360cf726c4715954590f0b0b86faadfe636f50bce0ebf4b3b00162ffb4df54a2adc803";
+  sha512.run = "5422f349d15233e6f49576fe3a65f8afb5cae6a3c51e5ad7cb56617d7d064e9cf574f233f789c029c04bbfc24e5948c115b2d33569e881373d68615ac709153f";
+  sha512.doc = "db2bcc8da6d3bfb6f2165c1fb127b2b4a7471e41a0cebb851ce5465a18740d34948ce8292b4f6bd359621166602cf62a978bb179346dbd1dcfada49cc7972686";
+  sha512.source = "e958408e6e64a54b25fa89b38de181c96fffb9eb8762959209799c39cead7a5525f220b7b3cd278e35cb9e3e49c1c85d565d518ffacb0695b0c3c09ede935266";
   hasRunfiles = true;
   license = [ "gfl" ];
   version = "2.501";
@@ -40807,10 +41851,10 @@ tex-gyre-math = {
   license = [ "gfl" ];
 };
 tex-ini-files = {
-  revision = 40533;
+  revision = 68920;
   stripPrefix = 0;
-  sha512.run = "c053ad3aaa49224f26999112b3f5f28eb6ba34cd130cb54ab5ce67971632d41a8470c361e4471f9d75831d230737a0197186b05c25a9b401286bb4d5525b12a2";
-  sha512.doc = "c44315e35793a1e77b621af53061c25605fbc5ffce2f07fe52bc5e58f4db0e9252cdb1935c14d8dc632bf1b84c18f3ec18506c5415831ad230c7a314f4f7b670";
+  sha512.run = "58f8b1dd44be6ea67dfaaa67a4f7c6d27d222ccc7c7898c31ade4f23ae39a9a5aace902f05ff48bb3f6d63eae38f9db93b75c4d2efeacd394230694eebc33fa3";
+  sha512.doc = "9caf187a5589e49f946a7fc5ad332073dd2a90d82f71587a57ee9d62e365321fbf14e69e3e3448d85302cf5418a2eb7d94a114f95c575867b52579f6c35d5e48";
   hasRunfiles = true;
   license = [ "publicDomain" ];
 };
@@ -40834,12 +41878,12 @@ tex-locale = {
   version = "1.0";
 };
 tex-nutshell = {
-  revision = 63336;
+  revision = 67213;
   stripPrefix = 0;
-  sha512.run = "4eb68fe292ca246efb1398ecae471831147834928338f6f964febcae5ef2833270a5e39d22aa803ab770d3ab21db3d60d4010912ebc79399f029c45ecbeac9fc";
-  sha512.doc = "cf610ee44e4b4e8a8cfa94aa9cdfe622d12fc7949f62c567e833f5f5affb42a99ef1a0f296fd1f1bccd2594d864f9bf965d89df642dee45346810363e6ccf4c4";
+  sha512.run = "cb8d343a8b070c6350cc922c74d5dc08ea9f6bc92397e5325591913f5b7ff01704b0c5009a8c8083a47baef64190b6640c51a91216af54b8505654d3105f34b7";
+  sha512.doc = "50cf98a9ba348f6814274cdd195a2ff9129474e61e858932f8e8c256f8108f622a088b0bed586c25e199737fbe3aaaa11441d6ebaf29fb0974ca822d662b79e0";
   license = [ "publicDomain" ];
-  version = "0.8";
+  version = "0.9";
 };
 tex-overview = {
   revision = 41403;
@@ -40866,47 +41910,47 @@ tex-refs = {
   version = "0.4.8";
 };
 tex-virtual-academy-pl = {
-  revision = 34177;
+  revision = 67718;
   stripPrefix = 0;
-  sha512.run = "b9358f50caf39d274c1684d4514fef0439e015588431883955f7aec63d35f7176ed61671f72cda7ae28125b2a977f25ae66b028b21017f106d8f78bbfc7df109";
-  sha512.doc = "aa73261fb0ffdbb7cdbf85df354490a72bd95e4d98e4a497e98666e6f5533a7f05a7132533db044ba993d86e03fc21825bc6fa7f262e5a0bcdb6de8114d38eee";
+  sha512.run = "23005895f708b07162b2b251be125b70dfa8ef6add8ef7c5dbab2c5a2e211f65fce8432cbf3ee324a9b72c2296d5dfffaaf5a52d77425e4d6fc3c042397d6bec";
+  sha512.doc = "fd22d5a6c34e5ab7859bbb515d54e822eb5167853abba3e25d5137df1bc34f0bad9892c16f7ed5dfded8b90651551e1ed84a00d561c561ba18f50fa04e7bc7af";
   license = [ "fdl13Only" ];
 };
 tex-vpat = {
-  revision = 63560;
+  revision = 66758;
   stripPrefix = 0;
-  sha512.run = "c215b5745c023c9c79694c61d6ac961356fa921b671e774e3adbd75f0445682255570c7e269cc425bd8745304f1df4acc543bc22bd12ab61a594c3f34ca55628";
-  sha512.doc = "87a5870f9b313548e8a8f8f2ec757bb287d0d9bafd1461067ab3d767874c7dd7b482d19557b48f43790b644506b7f1106a68bebf1eb7980479fd5133fadfbf6d";
+  sha512.run = "918054527c2d325ac0c1bdd621014fa4c79d7c6cf4ec8b5ac5d81dee84b9159fab0cc0047ea35eeb2de4460952126b3bdcd03395c29379e9df517ed7243206f0";
+  sha512.doc = "f16ad935930ab663bb2e5b486c4fe53b3bd9e883c660d97893c4aa86bfe22f7ffed77dc66d88060f7eabb1daadd2dc77742c1d9604ea94d26594aba340693f35";
   license = [ "cc-by-30" ];
-  version = "2.1_June_2022";
+  version = "2.3";
 };
 tex.binfiles = [
   "initex"
   "tex"
 ];
 tex4ebook = {
-  revision = 66333;
+  revision = 66621;
   deps = [
     "make4ht"
     "tex4ht"
   ];
-  sha512.run = "5ed55a074d557cc433780b838fa0a53a3bd8428a192ddc1bfd71c306a110041663ceb0d6931b580e150ebd7f5f07145796ebd12bfd7d1c986e7feb74803dc104";
-  sha512.doc = "964824dc432799c57af3d69dae35b35e1f327dd57d245a6c392d434033bc627d8c93682c1bbbb1b099f71acde25c10f7cca2d3b72cca02e3f9c8d94de0dff807";
+  sha512.run = "b0dd7eee40daae5cd87b39c8d52ee99569992dfb3f9d438cb43f2050f347f33653b5932c6b159b3d24382971aae5f631f9e8ac8e2e3219130ed346d5e466c0d1";
+  sha512.doc = "72d0e9550cdc8cd0f5469e44a9ddcbcd10c8141f68479ebb9b8f8af3e2233695df05acbb875b80de0330fc29d774b7d3f3c9fc1f249c04e60944ae9642326a54";
   hasRunfiles = true;
   scriptExts = [
     "lua"
   ];
   license = [ "lppl13c" ];
-  version = "0.3i";
+  version = "0.3j";
 };
 tex4ebook.binfiles = [
   "tex4ebook"
 ];
 tex4ht = {
-  revision = 66531;
-  sha512.run = "44ed16da1e774edb33b68c478ba8fa70eb33b03094c87cfd2c17068786c93bf4c083e85046158aef30353824d1458f0c5646ee71446f22ed991145827fad5f4a";
-  sha512.doc = "7c831eccdb5d303b756799bb28fa962593eec8a12e5ee1c763b7c614bab29d27fc507ebd86637e920581a4dd3a89d9e7acdb0aba2798b24048b9b0bacdcd1dd7";
-  sha512.source = "777422dea0615764a824f70ec7a85d4fbc824c25587935bfdf514420c2e0c61243dee2a84861b2290cec1fb444f64bd9754ce6334fb47c9ab3142d8e083fed75";
+  revision = 69412;
+  sha512.run = "59848f9a4accb16164f2af9c7c26ae4a28af826116ac85f68fd1d9a399b979cff18e0d15ad85cbcdec5a955a01da1f46fc7ea6c817a216cc8aaf0df88c5b9ef6";
+  sha512.doc = "6756a4022af3e42e47e090638e114a2d4c4a50bcfef7473bb8ebac3a9d2adea6153b7596144f65955cf02a697c0df47a631877118cdfe8b25a00ffcd5b1737de";
+  sha512.source = "c1c3746084f4eb88f6aab21c20168e9a520f4757eeec5d6742e905d81aff44d5b2b0265efcad2066fab8669a59186a05d634bbe87f28b44f6e58cf3a0fac52ae";
   hasRunfiles = true;
   scriptExts = [
     "jar"
@@ -40916,7 +41960,6 @@ tex4ht = {
 };
 tex4ht.binfiles = [
   "ht"
-  "htcontext"
   "htlatex"
   "htmex"
   "httex"
@@ -40953,11 +41996,22 @@ texapi = {
   license = [ "lppl13c" ];
   version = "1.04";
 };
+texblend = {
+  revision = 68961;
+  sha512.run = "fc2026a5b2487af785957873f20fb91045262df7df2a2a71777da76727c054cae19b1e005d30b2616469cc009f680973091a7ce6d291d2ff29b3bcc8a47fc12f";
+  sha512.doc = "936b56f3823567252297cc3a659d951b501a5f60b2d43f6d8b19fe803ce651d67363d026bd97d0aded3320148dc230ff81e8961cbfbdb5c9a822da94070bb945";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1";
+};
+texblend.binfiles = [
+  "texblend"
+];
 texbytopic = {
-  revision = 15878;
+  revision = 68950;
   stripPrefix = 0;
-  sha512.run = "d6d7373a50b85b4dcf30f9d6cd1f3ec3a4cbbe72f53158387b99ab5cae5372d1c7a7954d03a0ee06b9af6df9784cd9a06f73658a6286a737674f5046883a9ab6";
-  sha512.doc = "29b3ea490b6c67a4c1d6dd2b744978536e3b847beda3a901873db7723c7c21ae4063b800d30d2d009e77a0e6fb199a3fb0d16d1f7f8d9a09722cfd7702c73c67";
+  sha512.run = "d2418ef6b672e82c08b2f7b7f0089a9dea1f514db584662351135b511912faab828956fc252cd854fd2bb1243bc0e1af428e294eb92935cb63b38e73078858d9";
+  sha512.doc = "787b12bc92a17a00fd8278138d0e36d94be377fc23401c4bd677c372dc1d19b4b88c12395366b8ba5d766fbd7bc364588986d7528572510a43ba48ee0330b787";
   license = [ "fdl13Only" ];
 };
 texcount = {
@@ -41028,12 +42082,12 @@ texdirflatten.binfiles = [
   "texdirflatten"
 ];
 texdoc = {
-  revision = 66228;
+  revision = 66227;
   deps = [
     "kpathsea"
   ];
-  sha512.run = "3d10ce6a38e3b676bc7495714962b527e2c78d5844b184eade200ad55cf07b44945203019315f1d6e2ef825c8093f0fc60abdf67efd641ce3777c32f0680c10f";
-  sha512.doc = "85e16d57fd1f89364caf38a714756a31c4a89dfdc0313e11641593df2227a7a17df861ef34d109a5737ce463ca1016653635499186d9f99a1e75d9225e2c66d2";
+  sha512.run = "02e7d23e20983f96d05725eb91a4f8bed6bdad0051e9f3c152f945e22255c70e7c0b2d93eeca1fdbbc2ca550a7a15d46540ecbb383575b03a4da9bfcea4e42aa";
+  sha512.doc = "80ddcd5d32e02ac87ebba175b3f2e253ca02daf70e38ec5a6db1a0e595349ad33d6b7cf7e95f8af7de621600a58b952927edde04319adec13fa139fa0b634970";
   hasManpages = true;
   hasRunfiles = true;
   scriptExts = [
@@ -41070,14 +42124,30 @@ texdraw = {
   license = [ "cc-by-40" ];
   version = "v2r3";
 };
+texfindpkg = {
+  revision = 67027;
+  sha512.run = "a6fee1faade94bc462dd4fd0e567b7716d0dd057e0c973b9a498949e701bd054fa4fce1cb8717f1d052ab03ef9b894e2f222e2e9a70957215f7266bcbef15f57";
+  sha512.doc = "452df8270ee53864594cef99a7ce0fbb6b325547de0ebcecbecb4463646706fa9e726fd433f31c4f6c44d2bb915431aecd7150921043e50f6b3a2ac5e51eeb70";
+  hasManpages = true;
+  sha512.source = "d784abf4241ccd65c8c910c16171b30d686a53933043d8f6ecf787866e5508d4e89866c90fe2627ae4b536ed7647006f6ce257c8b47676adb77221d08b6ef690";
+  hasRunfiles = true;
+  scriptExts = [
+    "lua"
+  ];
+  license = [ "gpl3" ];
+  version = "2023E";
+};
+texfindpkg.binfiles = [
+  "texfindpkg"
+];
 texfot = {
-  revision = 65545;
-  sha512.run = "e7553ab1e2368f1ee54cebe94ef1cc6675a6dd6f76f1bb94b1d79a742ddbbfb30215c97b7aa08165ec0e94b4468491d6cbbe6e1d8d77c24e37f3ec46104cc12f";
-  sha512.doc = "07cbd86a5f4731257804a8a62fab247a5a091fbdb51b5f618b42200c06ac8293e809ba19fc98f844dbfe6321e733aae5671b5a8318892608687a454cac15bd10";
+  revision = 68110;
+  sha512.run = "0886ab706ce0f18b0eab304afa1d570fd55b57bc02c8b3b1aacde77c73ee260f688bd395b2e362cb998cc1aa9a2d1e228b118f5234eb9c40ce867a97d86f4ac9";
+  sha512.doc = "d652523552ad401598c68227b3e0e11c84261a3a243afc731f54892fc971c8f22e74bb58b6eb45ac15f70c8789e5a4a9c4dfca81a3dc304762ab97c8bc74e3c4";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "publicDomain" ];
-  version = "1.48";
+  version = "1.50";
 };
 texfot.binfiles = [
   "texfot"
@@ -41099,18 +42169,18 @@ texilikecover = {
   version = "0.1";
 };
 texinfo = {
-  revision = 66356;
+  revision = 68342;
   stripPrefix = 0;
-  sha512.run = "1cc62bafc6e086aa722d74e0b92496568fbd68216fe57eec98d0f2c2d6cf32b6b05f26e2ea59aa345f4df2c0a7477d19719e2d7772d2fbb773428eadaac1a55b";
+  sha512.run = "5f79869d29a21aa2d5acd22c2c3abbf12b00afba2564dc9ea779c8f4caf5f44999ce27635d6ea01b9d7e441388e63f1f31238e47a3a68a436bbfe39254920722";
   hasRunfiles = true;
   license = [ "gpl1Only" ];
   version = "6.8";
 };
 texlive-common = {
-  revision = 63925;
+  revision = 68510;
   stripPrefix = 0;
-  sha512.run = "a59058e22c04f2500af75ed28fd2772a323b50960e5624a5018e81f0b7950ae1fd0200aa499aee58c582bf8f6ddfaefeac0bb3edffa62e034e8e1984a7aaf267";
-  sha512.doc = "963c02e99f683c1f59133eec0f450b1854b885d64c0ae5c9b8c05b697ea72634fa3ae5512abfe852723df404201852c00980d77fdf0a9df1806cd8da3a73d086";
+  sha512.run = "1d56101ace5038cd3b8d36c90e026a1c26363535fffbe1ffab64dfbd01408e7cdfb66045e11b13e22491f238e2d3a7015fdeb9bf75fa56f581d2ca5da8f1a01a";
+  sha512.doc = "c9832e8249440656334db12b6ee54b467fdebe1194b6adbb8d28ee375250bc6458e8c1b48b5684eab0ff2f0b55db4f4ab6e77679df447a01070a15c1243e5d83";
 };
 texlive-cz = {
   revision = 62854;
@@ -41119,29 +42189,29 @@ texlive-cz = {
   sha512.doc = "ff1124b30be77782b5c5a1b80ae69c852a5a9e81446c0574007bc28910ea6202662514a34a85858c577bb528f9fbcc11f798614d11914876151d5aeadb3fcd7d";
 };
 texlive-de = {
-  revision = 62234;
+  revision = 67108;
   stripPrefix = 0;
-  sha512.run = "fdf5524ad57cf898b8ee574dd21d982fe9fb6d0c2d9324f78cb38e9c654bb66e322f0bb79d026c3b7e63b404e203d2ce6cf74d848a38ab80ff37707079375996";
-  sha512.doc = "050d284c195d95d53e0070499be687ffe7497082a894676a6221111959fd50a008c6286b58e020043475f262510d5323ec327e4b20808c9adfd9116ea98497bb";
+  sha512.run = "521ce2f9dce3fb329de464ee847c077d449885869e964648e8f89d920231a68bf0d3562e5b54b3cf36716dc3d85b4f0d0591e06843796f216670f963c7191324";
+  sha512.doc = "30eeabe60126b3cc7fb8bd400613a9a5cd0484ea73a8fd0e4c3ec7edee5e985c64c8073cf2b121446b9ea1b60ee54609687c168a75198408a30cb221d4a0ffc1";
 };
 texlive-en = {
-  revision = 65770;
+  revision = 67184;
   stripPrefix = 0;
-  sha512.run = "f790f2a94e67573635afb5b4c2d375bede61eb3afe271169078fe905d326119234363ee896ecc93a9892d26e0a394fc350edbda810e218b0b06cc30681fd9cf0";
-  sha512.doc = "48ffb3b9053250f4425992c57869c6153601e9dfaa4931ac4ff3c12df44b148dce08496acbae495fd5f9fe37e11044a3fc0669c713515d2cc99506fd6be59859";
+  sha512.run = "d77184250d7014dc65e74baec435fe42e784f80349df81782e8e1f7681cd14e3cc99313d61d72c010e5ffb33a0de06890c359e7b582e94662f253f8ed29cb7eb";
+  sha512.doc = "9da87903b5ebfb7ae0ea257ecb77654fe53d93b86fa73d8089b5b2adf46183862e6c67d3b93d6e112f750cbb4af6d6b034f35a1628adac413b61857a91dd962d";
   hasInfo = true;
 };
 texlive-es = {
-  revision = 65640;
+  revision = 66059;
   stripPrefix = 0;
-  sha512.run = "53d96d2f8b0d831f125add3101790b3af28e475244800fc7df204e3710d31910ab497400a67561aa424ebc51aafc3f75ac9b15d651ecd4bda56a5d24710909e1";
-  sha512.doc = "afb6460747b08f6da09efbf2fa368e5fa0bc58c7f759a7c776fdea8ce66fb6821649ae222c1af9ac5ce5cdadd5d13e7d34f1b572d2efd160fa19dc2aec7b1e95";
+  sha512.run = "d055fbb5a4cee9d207f60ee27033534917a0e91dd2e37791290737bd2727b47ccbb3199c0e18f4a564f15e5dbed3599203a7b3611558a26f784713714262311c";
+  sha512.doc = "f124848f80289190abadca35a259d60781b5ae75771687ee44e863ddaace61227217a7c1ba888a85afd28583f1eadd4c91b03e224f5cb1b4516772243ac0fe63";
 };
 texlive-fr = {
-  revision = 63071;
+  revision = 66571;
   stripPrefix = 0;
-  sha512.run = "511ab7cc07e7a05e503da17d9cc69db1e7f16a8fd5f1f353001b585cdf26bc89f6e6d29b0ae66679125c947f1b6885456cd38cb869a8fcf8e3328ff99b79e4fc";
-  sha512.doc = "c2d32206505a7db1f6b59a7efdb55421e87510ee74e378d00281e0aa25cb7fd68a82b3e589d2a3890c0c1dbeda1442fc7ae8af8d6b3ab90236d3c1d316c048c0";
+  sha512.run = "2b5f6f94f9e9b3af2a18de94b85615bd09cab31d9e3f01b9ac78df5d22fae6ff84d300cc39aa92d1dac02d858c69e86d9d3dbda422574a4c3ce4652b08990090";
+  sha512.doc = "5463c1ecd592e7d304325276f950964cb52cedeab20084137deb0f4b7de1b17b536e4b030cd0e961191d61912f9c4db27f16e6e196104c84ad16ff7b545a7e9b";
 };
 texlive-it = {
   revision = 58653;
@@ -41150,21 +42220,21 @@ texlive-it = {
   sha512.doc = "0c0d3585bb2c12476751bc5dafb5ea5e10dcaf5149b98e823e607d7a99e5bd9dfd698d73950ecb1efe353435ba2f88be2c45e18c6cde2245df90cebfdbad4417";
 };
 texlive-ja = {
-  revision = 62817;
+  revision = 66482;
   stripPrefix = 0;
-  sha512.run = "8c397b5959ea9d2e1d525cfc83305e6da434ab81ede0e7669d6aa4c648dda5233d4081b891f388c303be46edbf88c01d6eafb506f32333786188f1c2af8dce88";
-  sha512.doc = "e355ea9074d4b96a352867ccd51e4d83a9e67a8917621c66f88acf32d295a30125824007d5c07efe0352d489ef8a12265337ff7448f179f36640add38c2616fa";
+  sha512.run = "92f3767daa4e88bcbcff86aee215bac0ea945645a626e9612e033ad12513e41d15ce8074c22cd39b0fbff9d951608bee799dbefa431c31ca9e8f4681f15242fd";
+  sha512.doc = "464442dd7f1e77598e7bdbb6884453f5a4a2f57d5d8b028d0126e5bed50b3c19f9fefe13b602ad1aff3334e45e8082f2a1328f884ade2ea92ba4b054a41c4b5a";
 };
 texlive-msg-translations = {
-  revision = 65889;
-  sha512.run = "03c0445d0cb0bb3722a691fd94b93c7fe9d046dbf5945ecadcce17a2333878ffc542f0b7f263ae09bd0537a68c1a59d6c04b873ce8cdc6c8b57f7ded5b6681f9";
+  revision = 69346;
+  sha512.run = "b7d8293947eafc561873918f658e372feafadc7de9ff8b2b5c65bade32b40bf99c1172fbb9737cd8e5d2c057dde88e392561db36c093518f49249198646f7148";
   hasTlpkg = true;
 };
 texlive-pl = {
-  revision = 62841;
+  revision = 66576;
   stripPrefix = 0;
-  sha512.run = "d658992603b9d43b92cea9f625393be33e286144ee994dcf5f000bd079e0ac41252ff2f89af6dc3a3fc78103df3e2cd65763888fa935411970f61d0c3a54837c";
-  sha512.doc = "cfbc35a8124967e66966c757b119a73171055ccb7040536dc15bfe109ea275345a5d6c95a2d667bd64f5c997537b28bc5524d9f94c3a642d96f1be23caaf30c2";
+  sha512.run = "b43de2e6d5fe66c53370a4c43ab1a66cb08f353944f58756debc40d6651cb5df11824d1eb4ec79890b449ed611b8674c0773a4e477ad4abf30f162906c1f75ec";
+  sha512.doc = "09319f848fe28ca344367f70c826380b3927aa26df7eeb195f6eb176d4951ded181cc47c772f401e1e7936de5fb3a9be3339c69f5bb4e8a5f9785f7313e6baa8";
 };
 texlive-ru = {
   revision = 58426;
@@ -41173,12 +42243,12 @@ texlive-ru = {
   sha512.doc = "40e8b29f29ed61addc2b9e7ce4b73d12bf2e59f1c50c65e59e9c8cac5e6c3ef264ce2071b0d54e15f5029c101a51d0efcda0144e113aaedc714eb1300aa9635d";
 };
 texlive-scripts = {
-  revision = 66570;
+  revision = 69407;
   deps = [
     "texlive.infra"
   ];
-  sha512.run = "3dbb2007ae7b80862265d6196f77a9d796f02f6914871f4dad094f8419040fe7064daf6ecf5dd611b5764dd4148d034a97d82aa22671199e8a3dc79373859c67";
-  sha512.doc = "6976ba00c8ee50664aaa1f762231f297f01548a94d6a632b386845e7fa43b20b63342d58874e87869a73a9c23bba358f762f5cc3814690f870c6216679471a89";
+  sha512.run = "e3a8fe45541ba71128fc9e269ff7f0a3d45b2789df2d689e741fc87eab51b2c8021ac7e0899fead8d1bc043538d16589663932c32507b704fddb095c028cdb18";
+  sha512.doc = "c0d2c8280df1f6ff0f6f6d850c95a82aa7284d5e637cdb69518e419fbad3404cdae38ec58a8e7b452d0be48ee107b05e9b5ba84cfaa5fc81774d132c3b184083";
   hasManpages = true;
   hasRunfiles = true;
   hasTlpkg = true;
@@ -41242,9 +42312,9 @@ texlive-zh-cn = {
   sha512.doc = "534c505455c5f9c73803c140a340df2882a97516e15f52c5b65695b7c626404336a0e4f6190155b5bda1b9a86d7f4d44ac294bccec791ec6701e56d13c00d71d";
 };
 "texlive.infra" = {
-  revision = 63645;
-  sha512.run = "cbc7e70f3b4d451a51f06ed640b37ce28b8ea32f0dad75b32e54856e1051934d32125f2428b074a69503fb24c943c5eded58d77168d606891ea8209bbf852c65";
-  sha512.doc = "37f37bfd17988a8897312581efcf05aff76af6fd2c30867c65e0a4445ddc1f7fb90bb86984999d5fc942159bccf5c2a188e5b552702405405c902c97ae4828ff";
+  revision = 68903;
+  sha512.run = "077dd2060eb3a1132bb392615a36684b42108781e25610bfce2c9d22d743f8abf01f8c79c2b09a8d2a2c1edbbc0a33eec51ab1b0ff07480c0d4ee510e8680966";
+  sha512.doc = "2674fca1b6f494d21ea2e7993e4da75b821ca9c2b02eca47d3eb0d4512a985e2cd7900d6bc19c1af93ba59857cfa82bd3ee61200794522ec755348c067817e74";
   hasManpages = true;
   hasRunfiles = true;
   hasTlpkg = true;
@@ -41298,13 +42368,13 @@ texlogos = {
   version = "1.3.1";
 };
 texlogsieve = {
-  revision = 64301;
-  sha512.run = "8017144da38d3e7b011b1620b4165e62159cb2975a418b350bf8a5d87e8d519166fb87b916a96ef6ec203df12834e72a31e21c41a84e113e8ebe620bd5eb8860";
-  sha512.doc = "7a744ba4bdbcda04c1adf53c07acb5d20799268f31aebf2234203251ac56a96ad6cd0574d1c25c983eec0d7191dcb49bc9f11dbb2aa6aedccf31c7499400fd9f";
+  revision = 69072;
+  sha512.run = "22822a9ea14652674238224914fd84d9ea09ba1a19fd8eca288fad52c35b0c7e0a0003730b1214e9f358d068eeda191a92dbb2cf2e14bf29297b61177af1a1b4";
+  sha512.doc = "507ed977b9c272c789fabe42b48b60722c09f0548c4f857d9f3207651b05ac593a6e2b94a53f66527591cc3bc15b61a3849a540db3923d196f135dd7cce11836";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "gpl3Plus" ];
-  version = "1.3.1";
+  version = "1.4.0";
 };
 texlogsieve.binfiles = [
   "texlogsieve"
@@ -41365,10 +42435,10 @@ texosquery.binfiles = [
   "texosquery-jre8"
 ];
 texplate = {
-  revision = 61719;
-  sha512.run = "5b19c1f2d5bdaacb1c842e78b1980ecb3f4fc548873e6a36fc9c5a70c3e3649b812819cc0d3bf68622acf31ac6c687cc4ba657ce2a4682bd13faba4070b0a1d7";
-  sha512.doc = "e28f0f3476e710fcec772206138a2f423ea6f9df903bfd4c4a278453f217752b7f4ffd7e68f10821ee36a9251a14e6226887ed5aa7a5fb53e5deb7a1685a04e8";
-  sha512.source = "658467f513fc37799df279d636f5927477c51cf0adfbff2ea1597bc8bbd4d9edc3f5f22e2f09d9049a6015a6825bde043ae10e8b55ef78ba8dbbfb04604de0b5";
+  revision = 67201;
+  sha512.run = "44f2e0008d1b8629bfd15267e3add7490c9a21e28d7b29edc5e37ca51e60bfbc8b25035cbacb57bea5df762ff9783ccfdfe6d9244bced55961509c7ad97046ec";
+  sha512.doc = "bfcbb319719b9f8d4473c50afcd435eaa1cfb906f6107dd7e859bf40a30b452dc135ea1ce0a733c297112647fbc76d6bef16b9474a65d85e6d93e5df96acc549";
+  sha512.source = "e11a6716016b40525f3ecb4906dc1b54650177f28e7759499928ce78af410ea9a159fa3703cf2098aae227b6bc126cb4be35f8637ef6e15c7df94fb8ce4145bd";
   hasRunfiles = true;
   scriptExts = [
     "jar"
@@ -41401,21 +42471,22 @@ texproposal = {
   version = "1.4";
 };
 texshade = {
-  revision = 64242;
+  revision = 69371;
   stripPrefix = 0;
-  sha512.run = "47ee4ea722ac6063c6927f0b896bd17e25df1aa75d6eabc2877ad628ec224bd9d2c8af1e6964b763d13dfea99ea3bd08007b1a9d9f43ef19da5c53e34e4b7a6e";
-  sha512.doc = "a9e2130ae217816a4b8d653c32ae14beaab0ed35fac5e1a43c10d6453b2774a3449008b118f1f97d8c88d48c3708c5d96edfd5698e9a09046311919191fc240f";
-  sha512.source = "2559fac03618b74230b00b4d2229199e6bc92256547024884cb6aa4fa2ddd8f361281b372c1054e10375c82960d0d53742ab333348e63ef3f92008031e907246";
+  sha512.run = "28ec64b312161f1157511d4a4dcccb3378bd054ed6abe75830b2eb98b30c5afb2ccd1bc88b0ee0fb049a3610e97b4408b8e66675094a74abe1bde8abe5d1a1e4";
+  sha512.doc = "e06fcb1e6d743561ecc1b6a1a14e252fa5a7eceb2bb0ceb27409dd52c62ec5a1397cdbde7bf61e62b143af2fe6787a49ad3b6b9117f8418e409e54b26deb2a25";
+  sha512.source = "23bc248ea1ee572c6ac13fcf9697810ad6881530a44adf9a16927801b0a951c3fe012295ac2816c85f203fcadfb35f04460510ea7fbe2fd758b05098a4f06dee";
   hasRunfiles = true;
   license = [ "gpl2" ];
-  version = "1.26a";
+  version = "1.28";
 };
 texsis = {
-  revision = 45678;
+  revision = 67930;
   deps = [
     "cm"
     "hyphen-base"
     "knuth-lib"
+    "pdftex"
     "plain"
     "tex"
   ];
@@ -41427,8 +42498,8 @@ texsis = {
       fmttriggers = [ "cm" "hyphen-base" "knuth-lib" "plain" ];
     }
   ];
-  sha512.run = "7309726b33eadf8290e596aab50bb1af95600a067338b352c1ac092643a8c6d4142180d0146abbbb828a38fb08fdd9ae03da6572e6c221afcd151a51430a423e";
-  sha512.doc = "2a4979a10514ccd589b331ff34a677a4e22adbeea73d6112c9a14392b3ee75a8cdb292b008b160792b3d00b812834afa7e0211db860c41f1beb69bbc900fdb90";
+  sha512.run = "79a39678c4b458877737b63fdfc820adf192b4a3c68eb02b9727ed42c16c002ad6ac7d12fa6e45a768eb58d394ba3610ccee4d39de8b73350a39b958665ae779";
+  sha512.doc = "30b47b165484654c1956a1862a1207c219bfae9790f3daa1443bf97bc5e5fd5aeee734b3561c433061987077e84a8feff7eb886ae6d914122eb218bfd0fa57a3";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "lppl13c" ];
@@ -41447,23 +42518,23 @@ texsurgery = {
   version = "0.6.0";
 };
 textcase = {
-  revision = 63868;
+  revision = 67755;
   stripPrefix = 0;
-  sha512.run = "0086fd3c6601f03d730f195915f1ac9902bb2e8555690395719da58643a6a2f9f5ca28d05f79941d8afccf517564301336e017341da6a9ceb19755db8e17db65";
-  sha512.doc = "e2a9c7cb58109336c889ee7f87a3926cc885453c0c0472f70ca5a303cb203dc46f5c1330fe90282b0f9f790b02ca139931a944cfd9016c65aa8c8075460b4a1b";
-  sha512.source = "e2f98025e4dab32916318403ff3e31f308bd2e867b94c011a70bbbb09d5728047018cfc146722c6b837949e3e878136f8d39d89fc515b692ab6560388540ea32";
+  sha512.run = "1a4a29b33270f5100109f42f4caf529d3203a6bd1a934a06fba6ed3ed082f0bbdeecfeb7ff158182c88ca7d724422c83be2d170bba78738cb7417fecb13f65da";
+  sha512.doc = "c8b42e576dc6458441703344724bb1ee8f441e79da8d59b1ccb0b6280de878ae65ac48e628f3230ee2094ee285a58636a6e37c29e4458d5f164c36cf4ec93d6c";
+  sha512.source = "1e7e5e16c982ae65aab5cdb4c83e770336dc38833f6027de701114da45c0b45a1ef21dd3096de3933401a13222438a533397661d5654acb991c0ef5d6a8c29ee";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.03";
+  version = "1.04";
 };
 textcsc = {
-  revision = 64935;
+  revision = 67193;
   stripPrefix = 0;
-  sha512.run = "461d0e22efb4a80e1e76b6d209cb0247724d9cf9471875f612d4a664875a2055da58151ab6a0a763b7d73dbdf47c63bcb9f7c3e648e1bf074dc4758a7b01b071";
-  sha512.doc = "d10191e310550a7d4f83bbbaa9413be0448d38349839b8cff46f4fc3cd1c76c0b20ef002d01a5e78919fc019f33a8069fb6fd1c53ef32c81d12d65806c55439f";
+  sha512.run = "99429871433a809febd561793ae53253812792f7ff20f154cd9c01ae3df95c19b1927e677b686b7ef19c6e66cebe2047136810ad287a67ad524d905c6ccb20a0";
+  sha512.doc = "a8b38f3c369c5603d1a696672fd8a2c7a49e1d60c011fd5d2158cb9daf37fb4ecd691d859376c55086f894a9a2769a1b8a78d6b63ea4243a27b02bb2247bfdd0";
   hasRunfiles = true;
   license = [ "lppl13c" "cc-by-sa-30" ];
-  version = "1.0.1";
+  version = "1.2.0";
 };
 textfit = {
   revision = 20591;
@@ -41538,11 +42609,11 @@ textpos = {
   version = "1.10.1";
 };
 textualicomma = {
-  revision = 48474;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "044ef3451267bcb74d3e4162d19915b1b7f2fac337af6faae7d3dcd630bc9be8484fa155a3579ad5245ce1f07578d8faada2e6a67830edb09b332714a95f2e9e";
-  sha512.doc = "6e6c380eb0169878a34d3d40fea47bc57885c7ea378ffd2d2a7e9bf26826dd922f67a02e74d6c78801cecb87b18de3ab52b7600623de39c53954ed568c57eadf";
-  sha512.source = "69f6594a039c9b367e48430927298768f816ba31a7bcc41036111963c5e9059dfbde6b771ab7dcbfddb6e40dc49b2daa1d1ae04625a31ae44b8ba340c42d3f58";
+  sha512.run = "9437756da9639dc29fad64ea7bec0b2fd4ce783065ca00fb522ece24c33b99fb2f51f82564cb382f5f39ada825353f007d14a36ce5d9d5b1cc4015b71b8cd314";
+  sha512.doc = "a1382aa53f3df15c57e391420e7f4164a3fcbc8e765cb53a87814a4fbff7e354268f8ff7e6bfb1113f269fa426aac480fb22c330f234d58492fc4f8960fa2960";
+  sha512.source = "1a42e7e80fa555dbc81c7f133c6be0ed265756f826d701c3bee5dfb7b1e2a8c94c2bcafe6421d89ae82aed2c5e1a367d6d06df7d12941325c0d0148372a9091e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.1";
@@ -41558,9 +42629,9 @@ texvc = {
   version = "1.1";
 };
 texware = {
-  revision = 62387;
-  sha512.run = "fd6b433f0774441ad8cda525f45a7ec18076b69f9c666c6b4ab13190f9140b288a2d4b838dbb8065e260d77fd2220f10b37f349805ad266a4b6b5c3041f5f5b7";
-  sha512.doc = "1699ff3feb1b0023938ccbe77856311efc40ab90d7288fe611a040e76c04f5ac38ba4cf75ca9e0d3638a017287e6abe4971a1ec450f6b74d90aea0b59909c4a8";
+  revision = 66186;
+  sha512.run = "532cf8cfb19ea5c8ed0fe6939fba0ddfaed58989a588acef18ef38c587d8485295e9d438487fd2225a0f68c12d0dd8c6263d597c2e94cbdc96ed074ddd296729";
+  sha512.doc = "c4be0bdc3490a0bee08d6a99907f7abe1145ae8f8f89dd8665cf6a8738d07c7a537c0d7e767b56a6eed3a00ea169729b4d78208aab2aa883c9fb422e4dde3383";
   hasManpages = true;
   license = [ "publicDomain" ];
 };
@@ -41569,9 +42640,9 @@ texware.binfiles = [
   "pooltype"
 ];
 texworks = {
-  revision = 54074;
-  sha512.run = "4867a2f6ca333fc42d774154179f438970d392857b0f631f58211b7174c4b56c7fe9c43cac534cac1828d3edf18069fa781d4760ca472a99b5abfe4c7a6f72c9";
-  sha512.doc = "554afc96a17b407e415d85138e4074b6f1f82ab8e918db6e4d2e2dfa44e67b0d10ac1b548ceffeadc245de28b564cc4c4c431ec9d9c92241d1f500477fc72a64";
+  revision = 65952;
+  sha512.run = "2d0f90699f7ee4fa6dfa9eca4a62c8deadd9ee8303e17603bd32d0b2cd41875e76d1cb28879139dd62e534575f1dc8e71d6ec401a65ecc333f5b4bb636ea5a67";
+  sha512.doc = "767bca3619a0f645f23b029e1d8b84fd7333bfff5df073026423e83681abb2c3e60a50f843aeecf95aaa54b29018f145a7b655e2dccae0465626e84ca00d1b99";
 };
 tfrupee = {
   revision = 20770;
@@ -41643,6 +42714,15 @@ theatre = {
   license = [ "lppl12" ];
   version = "0.1";
 };
+thematicpuzzle = {
+  revision = 69356;
+  stripPrefix = 0;
+  sha512.run = "3dc42fb8b0d1b5aa3f68af6efa29a683e4a2d7b14f9e8b79aa56cecb15356cd8a9ad6487267b2ca978363ed7e8b5988f3efbfb2136774e8c5d9be25ef65f0bd9";
+  sha512.doc = "cc3aad57de0a8f2ed5bcd46d391820a2d8d316d7fd75d5d4abb8a6532fcf05d6643aad83570413dae441d14956747265e7137b05fe5512423d8fb3c1fdff5f89";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.1";
+};
 theoremref = {
   revision = 54512;
   stripPrefix = 0;
@@ -41652,14 +42732,14 @@ theoremref = {
   license = [ "lppl13c" "gpl2" ];
 };
 thermodynamics = {
-  revision = 63188;
+  revision = 69086;
   stripPrefix = 0;
-  sha512.run = "eaff530ff327020bc067435669a84f0614fc09a9a7027451b5407a80466c488105ffa4eaf40caf8e0ff7d6beb715ee1064190e371479e319a5da6f827e21713c";
-  sha512.doc = "48100b4af357710e037426983f3ee7c7961980d284cf53fc50194de7d7e81d6ab9d2ceedd47b2521571fa1ef63c263fd828a6229246116c54f8955967641c360";
-  sha512.source = "c940d93724b127128f1824047daf5b22f17e0316f1ee0f1e0e73ffd79796cdd3588a52eb8a470fcaa8611015e7728d5da37862e888cb58904eedcc7700d8e1a1";
+  sha512.run = "0bae277827251a42a366ce85aee49d762e08025b96472f8102a54b7a9f1e74622bfa0064aeaa6dfee5248ef84977fd47389fc91049c057caf75c33930ade37ba";
+  sha512.doc = "3e2ae382e61ec8734e6cffe6c4d5efbe853a3c6748e1d8e75c2e4fa0ed6e7ada7f8a79424f49c43a753bcf6ce867b84ee353c553ba412c0386d58d2d4f5f437f";
+  sha512.source = "0ddadff5d744ca8f45bab8f471685e9afdcb494e60aa6ba0c32c8a75bce536adc6544c097e95da02457059b5bb96ed37508217577caf16c963af6e07651ae721";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.00";
+  version = "2.01";
 };
 thesis-ekf = {
   revision = 60228;
@@ -41718,14 +42798,14 @@ thmbox = {
   license = [ "lppl13c" ];
 };
 thmtools = {
-  revision = 65863;
+  revision = 67018;
   stripPrefix = 0;
-  sha512.run = "371801b9ab63eb0ce401bbb56e9b2b52cebf927e7d433d10e94c60c3649187b88957cbe05f2c9995d9bf687a6e6708f8a26f02596dbdd2759107ca61171bcd6b";
-  sha512.doc = "753143eda92a887d6217f2dd3b727e78ff7441b109e8fc99eb0a672674a4ce0e3d7a1efd10f3252c2a14ebc87a37687511589e0f91cd4bd79a8298edfc7ad299";
-  sha512.source = "1114b1aee91c98ec2fa19858cc108ec264e717b525cc86a19e985abf74eb29123c0f7d3f9a0e5bbee9984c062adeb1de95344c579e3675d6181d125b7db69bf7";
+  sha512.run = "7d150df3f868339c6bcccb2e881105d9eba11bab8cbbbf42d5a696a7496cfbb87f0ca848e5cf7a63239e563a75515b15d4acc4a72046ca9539c4597e077333be";
+  sha512.doc = "939567cab1c401d0946de706105d23add703e991bf36dc58f4e1d40fa35b5b30b37a9e32bc2d252f247da1f1db654bf3aad460dd1882389c00a8e11106270840";
+  sha512.source = "a086c028394cff2fcb5c011d2a69627ce2f9651694b8e1596ece652111e88d43c1f1e358ae4c1201ddb0166180d6dec9eb14ebec8a05469636061c224c6f39e9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "75";
+  version = "76";
 };
 threadcol = {
   revision = 28754;
@@ -41834,14 +42914,14 @@ thumby = {
   version = "0.1";
 };
 thuthesis = {
-  revision = 64628;
+  revision = 67127;
   stripPrefix = 0;
-  sha512.run = "1e3874a1b6e2e7f465244d1a7249b233ecb2d85f72a52719c6986a9a7a744563094c552718483f1508bd6cd67ca602b821f0e071427db790b43af92e6d369efe";
-  sha512.doc = "20936d1dc56b506b66f3ec35d91654637a9468a777c9830afaae97e07cd98e7df16f83ea806f2651cd374939e9cd8af57d96e0c1b5d92700d8d034be26f6ab24";
-  sha512.source = "0b6939673f935662e9337cd43349eeb575c50003b104569d119bccb58c242e6e7c134e8b6ac5b4cc08508cf948ee6001af9b675ec633a6df085acc19eab26222";
+  sha512.run = "8a70b2f51275494437fde3ef83e0f0d901b7164cf9e330d19e00ebe79bb9b4215a6cb3e7137970eb528904e35ba7bee3329f32b9fee64181f57dd09883582207";
+  sha512.doc = "fabb0e47004a0fd21f06f442d0b7eb5384242e879af7b7303a7c354d7226213df082d3c38ce24cc571d667fa2b4d978741fda5518871d727ed491a60f1f1637a";
+  sha512.source = "3f78020ca5563319ed78c851f781e1a40f16dd234207bdb2e6ddc38cff5f622ab7891c37bf7a187d927e81d9bed96686547d081156700654c23e410964894ab9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "7.3.1";
+  version = "7.4.0";
 };
 ticket = {
   revision = 42280;
@@ -41862,21 +42942,21 @@ ticollege = {
   version = "1.0";
 };
 tidyres = {
-  revision = 65789;
+  revision = 67738;
   stripPrefix = 0;
-  sha512.run = "092cc495292263e9e87eb3253d918466ab80b1d9187361a73c01bae0131848488876145747753dbf6129db129bda881968200102e16fcae5456d48f3524ccbda";
-  sha512.doc = "94a5c27d8ef9abac35f97f230964e305b24ac50ea5f30491db828f5675ad3128a8b75b423573f6c9f6d273f14b2d244b364997c5d75cf6e19772b0c995af22ed";
+  sha512.run = "6ae766645bb046c18c0ecaab4d567ed3b66800696a37e28cbc0100dd50db7d89e03b5f2bfb8073a1d819f552f81ff8ecb692889ab7e2cf28210474663d4943e4";
+  sha512.doc = "53b927e92aae7d598eef4de6035b8165665a7ed06f37a9457ff16b92eca2c075045f528c62b179923f03d790f163741f5a900b505a50baa8b299d6fb2513bd68";
   hasRunfiles = true;
   license = [ "cc-by-40" ];
-  version = "1.0.0";
+  version = "2.0.0";
 };
 tie = {
-  revision = 62387;
+  revision = 66186;
   deps = [
     "kpathsea"
   ];
-  sha512.run = "96cab708d9faec3f451302c6141655b79524d3497d9bded141235a2fcfbb27bb2d65fd096e559cc01b01f4ab28b97f5851ba9e202c313240ef1af07c4676085f";
-  sha512.doc = "519a15cde0a8b52250bdf61926ce44ea9267ff9f75f57f3ee9b390ce1aa6f7bc2a6bc2f30222d41a7606721ed28cbbd44348cb44229fba1c7126196291667917";
+  sha512.run = "ca58ca773fd1e4e786f12e1acf9b0e39afe1709c73cc7a0da4331576933c1a4aafd9eed3a0181bcb20b6087d409c73f78fc2a77d96bb75d183996593b8aadadc";
+  sha512.doc = "66e92b91bcf9b6c44d8d2af141d4980a2b0e0ee3a9dcab778eae118debe4ce4459c933cde6a5cb8cf07af8b5d5d001bc1bcafa2776ae64121ba6308a7b19b3cf";
   hasManpages = true;
   license = [ "free" ];
   version = "2.4";
@@ -41956,13 +43036,13 @@ tikz-dimline = {
   version = "1.0";
 };
 tikz-ext = {
-  revision = 64920;
+  revision = 66737;
   stripPrefix = 0;
-  sha512.run = "bdbb8a58a00c7d72abb5e469b578e8ba982e5b04e9e63881bb7e6b17e631874646c123444619e24e1c1ec713bd0ad996bc11a4940e47ae2b159092441b072389";
-  sha512.doc = "faffce06a891b5c8ce09168dbd7c9502ef76c37f2006072e5f7e488c5221c38d80f482a85e7c03f476810840118b86d25c32f8f29a2dfc530e7dfd8126f6814f";
+  sha512.run = "83094598e986b8225ba72ca5a151b8d7b475b3fe41199209e816ef9e7d7b3609e693a321a219968d38d78aafb5fe1ac6058e6860379687077abe4921497d7cb5";
+  sha512.doc = "ca2e8a322e3f3a63084d2c0b79d3491fdbdd1b6b363e66d721e691ebb73241e96ac7f4ec352588f46a49ee1b16b4ea214d145692f194f67b5ce23d12701e1eb0";
   hasRunfiles = true;
   license = [ "fdl13Only" "lppl13c" ];
-  version = "0.4.2";
+  version = "0.5.1";
 };
 tikz-feynhand = {
   revision = 51915;
@@ -42077,6 +43157,15 @@ tikz-network = {
   license = [ "gpl3Plus" ];
   version = "1.1";
 };
+tikz-nfold = {
+  revision = 67718;
+  stripPrefix = 0;
+  sha512.run = "d227be41f651a45240b3cb79f1aebea5015a06eb75c0a5aa69823731c69cad02c2f8b621de3d10d3b2a334781693f39c47f1b5b560c58ee9c5e7278258bebe5c";
+  sha512.doc = "a6684f61e230a4de3cd1e4b0da5ce17aff301cd80c434b7c9375d1e4abf3d3b6f3295979153f957b1499894e59d1fbca23e639ee76db6ff6d719df425d1da56b";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0.0";
+};
 tikz-opm = {
   revision = 32769;
   stripPrefix = 0;
@@ -42095,6 +43184,15 @@ tikz-optics = {
   license = [ "lppl13c" ];
   version = "0.2.3";
 };
+tikz-osci = {
+  revision = 68636;
+  stripPrefix = 0;
+  sha512.run = "93711a01365e992d47306bd379ebc8f72296554288c855dc1f678232e5030894a9241d195cf949133da45ac8df2de1b55244629999f0c311b55d51a2083c4693";
+  sha512.doc = "356d60c65bde0d61207df028447409827888a420300a4b27867561494917e4a45db8e6a6dbe291fd19797d64d912089bacda9fd18ff405a28ff2d6512b3b43db";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.4.0";
+};
 tikz-page = {
   revision = 42039;
   stripPrefix = 0;
@@ -42189,6 +43287,24 @@ tikz-truchet = {
   hasRunfiles = true;
   license = [ "mit" ];
 };
+tikz2d-fr = {
+  revision = 67239;
+  stripPrefix = 0;
+  sha512.run = "87cf1fd8343df4c6960e4bc004da9154f98146b57a723022e5a81db506805ebdd60db1edafc03d9d787f151cb333c1d141c5407023493bba316b8b41bc245537";
+  sha512.doc = "4951babe22ffa5985e3533970b88a8a92f626e18b34e8f7f11051db21accd2977a926fd7e668ecd018324fa62c8b539fe52c279f8ceddd5a037b76dcf03f399c";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.1";
+};
+tikz3d-fr = {
+  revision = 67774;
+  stripPrefix = 0;
+  sha512.run = "6b60280f60ee690ade367eaa10a033cb9bb8452c5b5f6413b7ca4918d521638be357e6af6f760844046c15d1171f55b71f5210946ff4a6c6453a7fc332288b85";
+  sha512.doc = "599bcf41c7de51c44c943d984bae860748324faf7981f754b44bf8125499822df505cebe2670229fd7429d5b6b0809f7c88649ad8996f8d2cac604b58c9e9522";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.2";
+};
 tikzbricks = {
   revision = 63952;
   stripPrefix = 0;
@@ -42207,23 +43323,32 @@ tikzcodeblocks = {
   license = [ "lppl13c" ];
   version = "0.13";
 };
+tikzdotncross = {
+  revision = 69382;
+  stripPrefix = 0;
+  sha512.run = "d99ba25a95558629b611e7ae2e845c9b87cc8766f468be6160115a8b26cc648e83351cf233f946f47889773907023c061faae7744e140129930db481b460889d";
+  sha512.doc = "c481b80b675bb9cef760157b7b9ea7c790dc42c75624687231b603b39f3bb9835f642e50cabf4a046df67e3698032b644cdd1495d6a9932acfa3532a66b3b031";
+  hasRunfiles = true;
+  license = [ "lppl13c" "gpl3Plus" ];
+  version = "1.1";
+};
 tikzducks = {
-  revision = 55713;
+  revision = 66773;
   stripPrefix = 0;
-  sha512.run = "2cbde264e8621c4d7d7caa9da127139ed56d819760ccde59f9b8c098c77746414cfb8119ceaeca3e2da0f361f3fcd0d9dab1898fd240c2a2c15a64021e8b86fd";
-  sha512.doc = "73dcd9d393c852673f43e97da67a1c60330cf4e95b4fadc92a634628150fd228037dc024ed2e939441abf20f8bb761241798ded814fca5b9300b5dbe4a1f1171";
+  sha512.run = "73675b3ee47740e0c54c352a9cf3349b563cd22756a33aa1f56b6282a9cb4b2da3b851705e7574d5591190bf2392f8900a477d8f93b9102d831c01b2a8650dea";
+  sha512.doc = "23fa53a7ee87b26dde5f9832c8b0b23466baaaed4be3ac361659828af6d611ee742b92531ee977fa0341ee5c3058a8ff77cf6ec1a7c3076f6ae4145328320164";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.5";
+  version = "1.6";
 };
 tikzfill = {
-  revision = 63947;
+  revision = 67847;
   stripPrefix = 0;
-  sha512.run = "f0c83eb9352dc6dd0aaf5e25ce340a5c586dfe600a620a0ff5b976f976361c35a68a71f78f675ce5f9fa61a1bc7a79f16a5813115e6f8b010fe18b0308d77ab1";
-  sha512.doc = "d1877f3e9035c27e750050367badfb4e0127706d0064c30ccf619673bdf403707e9509780a85bc6478a17b08d7bd7c84b302d863860941b85fdfcee7a7262c7c";
+  sha512.run = "4864d0859490cd07e123e1160a35fb7817c3ffcc1f409a8c61285823f655357473e0dc7ab92434b5b552cbfca3e88d9181e57cf944d2422467b466cbdcd743a0";
+  sha512.doc = "f08d351db50d0ac3d6362c223e30b97b9a734a8b19fc426d5592a17692380667172ee6793064b8c2787ee9e1eaa1a38b70a821f53a2e0dc26316ba81f0549aa2";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0.0";
+  version = "1.0.1";
 };
 tikzinclude = {
   revision = 28715;
@@ -42291,10 +43416,10 @@ tikzpagenodes = {
   version = "1.1";
 };
 tikzpeople = {
-  revision = 43978;
+  revision = 67840;
   stripPrefix = 0;
-  sha512.run = "9a7cdc232e91fc0d6e5fcc67ea8c39dd2a4b482ccb6ccfd82332151117ef5121ef49bebcd2e0266492c88b57c146eaa578d2136a23f8781f3fc5f5d07f527db7";
-  sha512.doc = "f561978adbe443659ec0890a8a38e9c9506f311d49d11fe952eacf579db0619946f86c0c6929a215fe7a98f5f02a782d1bc528359f195e09e1f388460dc0d55c";
+  sha512.run = "18621315d7bcec4bcca281b3c3410e281404fd29b0a5d2f4ad799aacb71a1c9d389db8bf1c9fc91b8cc279ec801f0cf8e31c826ded92d8476ce4ce5831754390";
+  sha512.doc = "8b8ad4cbfc03663afa6064d4a81ea9c256b8c08522e455c5660c649fb9f1de7859f368d5252b348e0521d62fa3a446b6ef9ad2d1490f7afed8f5423a99b46d3c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.4";
@@ -42310,13 +43435,13 @@ tikzpfeile = {
   version = "1.0";
 };
 tikzpingus = {
-  revision = 64199;
+  revision = 68310;
   stripPrefix = 0;
-  sha512.run = "76955d19c6c492d07878fba272bf39572c322b5b261acf1f9bdb54cbd90130f9c09e80651270a20f7b7a2d08e20e89e11a5a5a19ef9af55cd233d3917a29b434";
-  sha512.doc = "aad57b68e88499b8303cd3709c5b44322da793c085d584713fc6ead1278b0d07e2b89d7b8d53bd79eef5efe2aff2a98b6aed4b29ddd3c6704c2f6e3a4b8929d7";
+  sha512.run = "78041352e86e68eb99f875a1c8bf7d4a50c527a4b405e4c93e9da6ecd716bbb0c5fad053fff80229723b4550345077371a52132258cb9d251c319f743767cb7f";
+  sha512.doc = "1748e17af7b3190e19a0c446e78f5b40b6a135633850d610179f33927650c8cd92babca86e4fd10408586d1fd81814cbb54985ab0fadfbfd05219b033e4323c6";
   hasRunfiles = true;
   license = [ "gpl3" ];
-  version = "1.0";
+  version = "1.1";
 };
 tikzposter = {
   revision = 32732;
@@ -42328,6 +43453,24 @@ tikzposter = {
   license = [ "lppl12" ];
   version = "2.0";
 };
+tikzquads = {
+  revision = 69409;
+  stripPrefix = 0;
+  sha512.run = "104bdb76221a25a50644dd8c9a655d5adc4e6019a11c470fe24637a51bb91ac6fb718a4949bf940199aa47f43186f874aee59e5405db45a6497e45f84e69fd9b";
+  sha512.doc = "5657179ce49163299bc91f3730dc3fcf77972597502f43822330199a20bc244649e6437a6bfb1c4e98bdbd02e30beee58b950dc73e8269b318801135025c6f1c";
+  hasRunfiles = true;
+  license = [ "lppl13c" "free" ];
+  version = "1.0";
+};
+tikzquests = {
+  revision = 69388;
+  stripPrefix = 0;
+  sha512.run = "616098fcc9f7867458edd525fc71d83786080b1f4ead9a007083d8347add52499b2fdf2c969213e06d43ffc59e9eb4d17bd7872404f1481138229c4f15c1aec9";
+  sha512.doc = "433c1202106723c397b383edc37ecff762ce7910b4adf2e70a5ea2d2c823cac2f96147227eeffc71bcc2658b18ce875c780f91d8997f40ab823ab09eb1d84354";
+  hasRunfiles = true;
+  license = [ "lppl13c" "gpl3Plus" ];
+  version = "1.1";
+};
 tikzscale = {
   revision = 30637;
   stripPrefix = 0;
@@ -42361,13 +43504,13 @@ tikztosvg.binfiles = [
   "tikztosvg"
 ];
 tikzviolinplots = {
-  revision = 65687;
+  revision = 66659;
   stripPrefix = 0;
-  sha512.run = "f77d790c2f2c7df0d60f181430d06e731186d87de12b941c9e3db3e75a94844737d1ea2e7af676c4be7af752abc16e25ed2ffa8afcca67e7b61ad7d57c7378f8";
-  sha512.doc = "686ccad0fe4a07003eb0c73a18a7858c2489a203abab33fe4a51b285a6f887be01893c1c6247c773432371fa70fd4517acb1900d98105006351fe0840126dba8";
+  sha512.run = "00fde57102ed13eafb247859de00c62829ce60de361794afb9103e501033140baf9b474fa147b7282727f7294a0b337897985460526f573532d90117d5f8e552";
+  sha512.doc = "5c7cd0990935fb05fa418ace90299532e3dea64e74789dafdff6aa9306e417a3fb170a2b5068045fe5069a08c4ccd97bf4c98ebf5f2102a2c9ca2564090ee52e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.7.1";
+  version = "0.7.2";
 };
 tile-graphic = {
   revision = 55325;
@@ -42378,6 +43521,16 @@ tile-graphic = {
   hasRunfiles = true;
   license = [ "lppl12" ];
 };
+tilings = {
+  revision = 67292;
+  stripPrefix = 0;
+  sha512.run = "f0164d69df56b1b981aec352326eacdf0f79366852bba6eb010a3842c338c678f1f38d3a5b1043ac4ff681595cc4a14a127a40b383f7d5388d9c52776352ac13";
+  sha512.doc = "13ac6a6e02a39420f0ed5e74d3f242561de4cd1e410fd6845e82b893c63d2becbf21064a676be29eed0c4b38251a78da55f43164eb2acccfb9f8d94fc72d6462";
+  sha512.source = "d6ff1a0f7453df40b7873a5b64a6d449990a3f8459901a3aaa41a5977fa0049a6203bf1cc4802b3d7383d6c68b55abed99c13ff5c5e7ffef4dcfae0e36ed43d9";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "2.0";
+};
 timbreicmc = {
   revision = 49740;
   stripPrefix = 0;
@@ -42411,10 +43564,10 @@ timing-diagrams = {
   license = [ "lppl13c" ];
 };
 tinos = {
-  revision = 64504;
+  revision = 68950;
   stripPrefix = 0;
-  sha512.run = "4aa3fe0b958c38be33dc639343a14f6a6eb7f2ebe96d99c73a5294859bfb8d8b8e8f7b9e0a2fb10f7a5403a62d0422a180d798f4de40bdc2db883c683afbc4e8";
-  sha512.doc = "68e7832d1774fd05eff79d2fb578c2d70a8f471f74f0772e81fd351fef493c22d37edcf8c1bca9c25a81830f88261ddc33d102f056f78ca0cceec51db98bed33";
+  sha512.run = "0212c5d1d87d1c73c66926a7bf06b2b62a0be51b3a03daec2086a15a4facd80e175ba3f4e23f486e181fb6d3910b77f7d26c28a8f76a9802b5112b010efccc2a";
+  sha512.doc = "e7f6fa5253e729b602c1bde603e568d5cdcb953e2a4f1e478c52959d25f58f7678cd107466d7a99b459af70250076c5f16224e4ee549998356c1b1957aaa60cd";
   hasRunfiles = true;
   license = [ "asl20" "lppl13c" ];
 };
@@ -42504,13 +43657,13 @@ titleref = {
   version = "3.1";
 };
 titlesec = {
-  revision = 59845;
+  revision = 68677;
   stripPrefix = 0;
-  sha512.run = "50af3f379bedf55c3c53809dfa5dfa8fa4ed072e232dde83f4a257b12d7b4bf06f041eb6891b95fd0efdf9420a5d252cb9688c28b91161036eee7f45516a8b86";
-  sha512.doc = "04ca9fb221b3c0c83ef5c3728b9a40eb46a4899b83837c90017c5436468c02740dfb861abb42e9987dabf63858730f4accbf060c67ee8954ed7481f334443798";
+  sha512.run = "b738823380d594dcef104e3b7fa05d9df233385ddbadf6fc6bb45e8346311f5f58f5f605dcb4b6541f88b57a27b73236eb77a1d128430c6ede675625e2ec051a";
+  sha512.doc = "b29c7b4dbeaee946e404166a4b1f4848ecffc4cc238534cf0c7248b1964146893125a9f5f8f87d6c2ea21c1e61304454bf7eb57d95842397363b88d438636363";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "2.14";
+  version = "2.16";
 };
 titling = {
   revision = 15878;
@@ -42523,10 +43676,10 @@ titling = {
   version = "2.1d";
 };
 tkz-base = {
-  revision = 66119;
+  revision = 66115;
   stripPrefix = 0;
-  sha512.run = "d2829abda926573af15d318274f8d495479d251a1b93947325bcce9d07e80ae7a42e89c450a67e7205ef392349041bb1e3a7119045e7b4941fbc3a23420e11a3";
-  sha512.doc = "06fa91e06ebf9a244af61d2c02eaaa3a8db072e7485f5bb06ae1be980402eeae9d492c8d52ee5a3a37f6248e38136c393445eadec1693e93fd36d69d93007c35";
+  sha512.run = "1bcee5c2d6ce967369dbd6fc7c55a69793410c2d1a4de6c66c79071a360c3a0889c014eaab27ac73c771424c0d0655cabe62f9e2514dc13de418c336ea09ef80";
+  sha512.doc = "3c2f7a584b1580c4fe15a5945b45a912960bff6c25ad637be8a43ee82b752949e1228008179d7a311b6961b1d0d4aa08fc44daa02696d2fdcc51777512db80c7";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "4.2c";
@@ -42540,22 +43693,41 @@ tkz-berge = {
   license = [ "lppl13c" ];
   version = "2.0";
 };
+tkz-bernoulli = {
+  revision = 68780;
+  stripPrefix = 0;
+  sha512.run = "0824d03ce5cca5be08cd648ac3629094eb4607681601b5d75a56069df687054b5e88c3645367c0728de8f7cf43971b32286eff4b18dd094c620ce37e6c957880";
+  sha512.doc = "ea1d787fc049cf42605d6adf107892aa4afdcceb32c874382453836d30b956e1599e2b9286a0e64b823d55005bf8ae2e81259d881b69172f6af5db4e01aab581";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.3";
+};
 tkz-doc = {
-  revision = 66119;
+  revision = 68665;
   stripPrefix = 0;
-  sha512.run = "4acfe795b7f75417520795676596dabd9fb423b2a369e4150946cdeb6e0a9dfb1cb440a5cb5b7a9551ec6fd80dd1d900811ba571ac227abf0c1334de39c1e043";
-  sha512.doc = "c88b01d19f5ed2a24ebb56c1e7530f046fc0bc429cf792b2a8cf64984473acc2d574c5956ec6f0e1ccb534957b2b7f83c872b67c6001acf570b9ead3cc13f77e";
+  sha512.run = "ba4c220f4a53089f8e6cde73cbdd7e1b8eb68f4828217dd5dbd3360086bb946fbfc30a993c678bb8c6e4987579016f610875fb2edc796fd19968c3940a0f4402";
+  sha512.doc = "f4e798620ecafd750332e5ae7b3491eebc72c02ecad00e9a67247ed0eba56a537d8ea139bafa6bd9bb1c908dbcf0e13491d2c208805cce1f18db438e8da38a71";
+  hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.45c";
 };
+tkz-elements = {
+  revision = 69213;
+  stripPrefix = 0;
+  sha512.run = "66380dcbb489c8afd4f916024baf3008975543424a391e0449f261f9fdb66118f9dd4bc8ad988a4f48ed2a770daca48fdb98243456025d545736e61e2b42aed3";
+  sha512.doc = "4f6630df37eb9192cd2b9d0f0b4f687762e39b83ac6b4249e86defe945093ead57dcad5414a0ae1edceca75eef7f8be706b3b626dd4557b2377354d8717bea1b";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.72c";
+};
 tkz-euclide = {
-  revision = 65724;
+  revision = 68747;
   stripPrefix = 0;
-  sha512.run = "1abfcf9212823d7b739822a91a62bda260b6aa0d0293c6f67978796ef25e45c218743a1743388e2ae33ac7c7b9215ba9ac9cfcd7295a9a697f078842149f66bf";
-  sha512.doc = "75b121c2634200e580339ee2266d6b6931c34d4217dfdbb146ecbdca8a4625c95348df8d4cdcfbdc69cc838cc0763e50a080f0945d714a42e8a8bf2caaf1976e";
+  sha512.run = "14e39eb45f188f8563b8c49b16cceffe62117ac3cb17d484d1722122b6f3ca927b35ed0dc15cf0650d877f584eaf05f6473dcd8ca83f4766f5d421a07eced464";
+  sha512.doc = "ba09b1cbb47c65ab74119c7e52fc4d08c3174ddfebe0cae6c3b0ad9954d40e78bb57a219acb12584cc67616d51d70212de284a4f30286ecdfc3bd70c4ef9bf8b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "5.02c";
+  version = "5.04c";
 };
 tkz-fct = {
   revision = 61949;
@@ -42585,10 +43757,10 @@ tkz-orm = {
   version = "0.1.4";
 };
 tkz-tab = {
-  revision = 66119;
+  revision = 66115;
   stripPrefix = 0;
-  sha512.run = "f2471d8fa3864bbae6cf39abc2ea289af637f3f4d5307d718c0e26d8a66de8edcdbc0d4fc5a21e3fefe2be453f4b30333f64dc0b21a13c52782aebc7a8b40164";
-  sha512.doc = "8e574876591d2648aa90d39ed78d4f5b122593ae5fb18ef5437650a582e8c04ae39f8ae81d85b09d7e5840a171ba6884c4eab2ee539049a92258d5887d08299d";
+  sha512.run = "cfd37929060d7213d2294708a38a0ba9df8847b0539ae105ec99b4171083877714dbb19ba2ad5d89bd3ad474573f51e263f42b8bf9866cf010e30bf481f75861";
+  sha512.doc = "6356829dfaa331e2e0af9edd044168e07bb8608c28ff386001cd06288da0a1517f7b1dc4bea31e1b06d0715620a4bac80a138bc1228a3ab15f88fa706a9c4b18";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "2.12c";
@@ -42649,16 +43821,16 @@ tlmgr-intro-zh-cn = {
   license = [ "gpl3Plus" ];
 };
 tlmgrbasics = {
-  revision = 60588;
+  revision = 68999;
   stripPrefix = 0;
-  sha512.run = "5b20d1fb4c6493f0da80f529832c3f45d70ee37bf970ffa1fa3ee56d7ba344b5e22b71c304eecc21d5b0040280d66382057891b39a3541c9ca08bce0ee779277";
-  sha512.doc = "1af96e3a29ad685781c0ba03583f3091f2c6e1c0225456beda207f9f212f75c93c03c76f1b5ac401fbdc2e6cf9a6077193d6f59a37dc791e63d7c505ce5c47aa";
+  sha512.run = "53f7cc8c2a39ea21a8c5eeb57ae7f99759b364ff7f1b41e2f4599d464ce17920746b8a8e182a044faf0621fa3dc842e14cbe93652d351d9fe8e1fde8a7682daa";
+  sha512.doc = "ee69a90ccf9b83396b0d9fdd5f030e673d00b2c372334378ad450089b40b93de8b596ed5bc8a459253689316a7219080b88248c1f65a475980ec270a6c84c8ea";
   license = [ "gpl2Plus" ];
 };
 tlshell = {
-  revision = 62795;
-  sha512.run = "285fffbc63ac1b87b1ad143d043ace7ed1f52f48c4e03a9fc78c9ff6adeb2062af0ce9b5245b77349528ca18c0fe6ee8ad44b794adb24ae62f00e4a18501d7c7";
-  sha512.doc = "73962fa94f7ca3a78b6149a44b72c39096fb54263660ccb6c0bcc024023dfef665c5132b9cb78953c92ec8b7d161581294e32b0ab26c9e0e2e9eadc16aa9ff72";
+  revision = 66771;
+  sha512.run = "b514f1c41c464300eeff261dc46004963e9ae6133dee084c39d8d7354510f37c3ebd8481daa377e057b48cf805ca87e7f247abe103c3a6404294b4b308361b69";
+  sha512.doc = "a4e686c57454adbbead87afc078720e294bd865dc5f77905e0f8e183efe83fcd2f0057336aac17ba6bc91eccf785bf1b3b47959359fc3ea49069bceae3d21d6f";
   hasRunfiles = true;
   hasTlpkg = true;
   scriptExts = [
@@ -42693,14 +43865,14 @@ tocbibind = {
   version = "1.5k";
 };
 tocdata = {
-  revision = 65451;
+  revision = 69402;
   stripPrefix = 0;
-  sha512.run = "7a8cc901e669e552cb3ece2f60add154c15443cd875eede2c54b90e89ef9c97149aea4e9b9134ba1606aa5ce7ef24941f4850023222e7d0d97f59e8d7f583da3";
-  sha512.doc = "6ee4234813c1d4730fd0e8041b1182b9e570ea986a33dec32a786a6fb88fe2cd99b31163dabb154202d1831fea372ac4fa76d0774f322300930f88edcfd12ab5";
-  sha512.source = "9408c8f9f951b4bb39f00a51ea73e5c5f5bc379837ccb9794e64a72bbc3ced295b50fda2a082af1aee69f53c6d2a0550dbf55a1cb8171a8d5bb399eed35871b0";
+  sha512.run = "17bc7e29a5f4d03374b19254c0967634de212ee47e0f00be9c3a8dd9a9a7694a8cf14b9da318e8337a5be00f420810ee27a115c7deb8f97e1a02ba98fd3b654a";
+  sha512.doc = "816da5a5017dc7372d40a29b45f0279629553e8399e62ce3da4871e9597017e00c8a4c39928462d5d5f168963d930247081f483e9685028cbfabae9f74098541";
+  sha512.source = "9d8767d2fc97ce25cd6c540abe83a1b1eba920f16cef02c9451bae34168812456d8b52a38ac7bc88d484b2a02d2cea774f9def03eb3e82bdd9411df0b4421670";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.05";
+  version = "2.06";
 };
 tocloft = {
   revision = 53364;
@@ -42733,7 +43905,7 @@ todo = {
   version = "2.142";
 };
 todonotes = {
-  revision = 65699;
+  revision = 69319;
   stripPrefix = 0;
   deps = [
     "pgf"
@@ -42741,12 +43913,12 @@ todonotes = {
     "xcolor"
     "xkeyval"
   ];
-  sha512.run = "c3430bf32562d19a9a9fcfacf5f61d10bdaa7cc00d6fc271338b9a962bb16ad372290c401da9b8428dc0528ba185f38d94e1a07cf096f34b3d835b4474729252";
-  sha512.doc = "030972617d7a381c497ea074fb817e3f8d5ec4831579ee5ae632331a139a288a4d124ff2a98b563b78dbf79ad088773def2aa15a81435569a8f512682b358141";
-  sha512.source = "d63d3d5aaf3751fd7ed2a8c9f09fc10ff34753896ea8f3301acabfd038e84d06fd436e2665a2428beda20c77d385202df184fc39e7cf7eba5364d6d588abe1c7";
+  sha512.run = "6dbe5b58d44d900b7beceaf265fc0ab227e3f4a56a1f8c1ff4f186df0657a3fe0f674bd60411516e54d90627ec41ffa38d4bcda7f5dcc69632892ac2f0caf96b";
+  sha512.doc = "e5a8937624df00f9aa487d43a449c7ff6181219c4dca0ee559b0a10c6fcdf83eec55f9afec7d43721bde0f60c0e8e3eeba55d85627be3af5d20fb9ea45592c30";
+  sha512.source = "2ed0f6f85b777e49fb17df84ec97a7b4bb01000de19a578d28f5bdea038a13f360598f3e53b66d20a1584d483297e55df9b1be91ed016cadcc1e8eb9c00179ec";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1.6";
+  version = "1.1.7";
 };
 tokcycle = {
   revision = 60320;
@@ -42786,13 +43958,14 @@ toolbox = {
   version = "5.1";
 };
 tools = {
-  revision = 64892;
+  revision = 68941;
   stripPrefix = 0;
-  sha512.run = "f82eb761a74b85924fa51fee338e3c911545e4f96ef2ee78a236f5c10d6d566184b40bf46d2924650cc57ab4e3df94cff1e78ea1d196bd280dd2191b4ead01c5";
-  sha512.doc = "c47db012171f64b2b8554a00397b7fe0b5d262510fecd3171ef1525eb2f1a2113c24b85458e3762d6f908a0617414bcb07eb5cbc14108c8be84c6b5f90ed3ea9";
-  sha512.source = "952c2fa3d0fdd06d784c9b577cb311d7910b807b8a8126915844baf582d2c7eaea6a984db7648d9d66ad104fe47ed96f88a80bc5a6c1b9d1e6dec07ae3a0abe6";
+  sha512.run = "6da3f34edda1c3839737f6ce0db95a899af8c47fe9901a502dbc6a6c95ae9fbe317c7365d6cebe3a20bdce8af0e37b803480f8489de57ccc6daac8a758a5c9d9";
+  sha512.doc = "614a64b6d5f25c4fd691d629f70f1fc0f614aa4ac1a1a5a6e06f6ab0edcc0a8e8cd14c2cce498aa75ef3320e493c7ef69cd6ac858505519e10b8414b9cbb13ca";
+  sha512.source = "2bd6ea620d71ae1e5fab48f5b361560e290a2633668b03a36259228b0cf8f9eb5acecee705c66052dab306288c1defd46a366548f7aa66cf04e802bc40122caf";
   hasRunfiles = true;
   license = [ "lppl13c" ];
+  version = "2023-11-01c";
 };
 topfloat = {
   revision = 19084;
@@ -42832,11 +44005,11 @@ toptesi = {
   version = "6.4.06";
 };
 totalcount = {
-  revision = 56214;
+  revision = 67201;
   stripPrefix = 0;
-  sha512.run = "77d12ae2b41ccc54e88338c47cd8071bcbbb130901cd383a8ab976147c510c52c437e722939882aad859d1bc58f52b7a698033a695ce10551f86874dcd58d425";
-  sha512.doc = "1be9ee133e33a859d9dfc91102dfc4511211eee462a0eb9ab2b5610a342d949cff0a883656afa8a1ff0c0d7088a94391c2f5c60894644f3985b9e916ef9df221";
-  sha512.source = "bb5d5a15c2ce9cf51fc777808ecf0e551a10b1b709786d45cc25276eb787b44a54ebb217c122b170d01f72a393bf5343173d3d94e5e46194e758141e436c2f1f";
+  sha512.run = "71523dddd67c44f4ef53c14833d4ea3f70603cc76f0495e5533e68eec99b1006796796b39deb40f6b36dd9ed03102ad859a7032bc6dd65137fd19c23c4027a07";
+  sha512.doc = "2fb61446efe5fb3ca8c80099d19ecb7a281ea2ebfa756778e4bba8060e9331fd1b712b7b77c66ddbd3a5b60451d6007130803b6138f1eba466a5f210c1d3322d";
+  sha512.source = "be9fc65fdcc7999279b5e4c5b495fd7fbab4606fe9f6dc96a5683ef0af41ac8f4fd8c3f5d2470224304a1bc974a6a9b40a7c017049507a7b6ad8db15d2dd2724";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.0a";
@@ -43104,6 +44277,15 @@ trivfloat = {
   license = [ "lppl13c" ];
   version = "1.3b";
 };
+trivialpursuit = {
+  revision = 68971;
+  stripPrefix = 0;
+  sha512.run = "62cc07c80aab3b4c35bbc5ec96d97204241b0e83248147b2875382657ccfe035567455bf8c689798b4c0dfe6bb8688da2ef9d4a89388521817dd09454867202d";
+  sha512.doc = "59474350e6626440d5a5e4f5782135182c6c5e497a3fa6436264a6774ecf498f719b7469a69539766c5e0b10a13ad659e00bc5fec854d0e961032ea7ed13af71";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.1";
+};
 trsym = {
   revision = 18732;
   stripPrefix = 0;
@@ -43124,13 +44306,13 @@ truncate = {
   version = "3.6";
 };
 truthtable = {
-  revision = 60717;
+  revision = 68300;
   stripPrefix = 0;
-  sha512.run = "3ab6a30d6c964a810cb27cc13b314fd9b8b881427a8a1e8dc047038669e9480bbd258ce5380eab648d07669b948feafb420a16e3d599f227c3e7422e4173020b";
-  sha512.doc = "3333d8ac206900fdbb4aef6777a5ad840a9d9b0b43c62871b24683c41d58b78b36b97062fc9fc4d84e71a7f6728d0fa6320bd38e1f7de4aa660bc6e7b79156c5";
+  sha512.run = "1f8ddc2aa2c8672c876794eae7266f8a4a02382ed61eb00af972a2adc732fdcba89a7a7579f07d755eb4ab742018240ea69fa214ff0393b53b9c77ba0179b0bc";
+  sha512.doc = "462a23fecb4c1f4a793200aa45d42bd325fad9abf9ea6481fd2c9d3f3993de657cbb7651c7ac1f4aca6d97626c751bc6d66285b8b3e9c06bdd216fbb5dfb9033";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.0.2";
+  version = "0.1.0";
 };
 tsemlines = {
   revision = 23440;
@@ -43150,9 +44332,9 @@ tsvtemplate = {
   version = "2022-1.0";
 };
 ttfutils = {
-  revision = 62517;
-  sha512.run = "63686a2f8b014fca1c40ef36d9a95b443addd7b99e8151115ec99a8117188643970d9a8889983ad84f50d4d70cf7a4716947c3cc5b07fd55ff0ef53a97a273a2";
-  sha512.doc = "7a6417bdd98ca495914f7cd3c61162e9cc505aa700060a3de9098610d27d4b5a812fe333d9c8ecab6316d8c4b51d1e63d78327ff3fb7bf9d51344bd5fd030814";
+  revision = 66186;
+  sha512.run = "2e4eba2acd3b97297d2629ad93fdac4587afdfff30584ff77f69574efde4172ce60b904100c70d168016e8cb5c6407f4b4ef5ed7b3c83f942b7477af2f101be7";
+  sha512.doc = "bac6812f37f1d53184a4944e91b06c4ecd6a03d96d78956781c4b01c38ec3b65b74032704d98a4951f8dd5ad84ff54d82891c12e7db99ac58e687e535758decc";
   hasManpages = true;
   hasRunfiles = true;
 };
@@ -43173,13 +44355,13 @@ tucv = {
   version = "1.0";
 };
 tuda-ci = {
-  revision = 65254;
+  revision = 69351;
   stripPrefix = 0;
-  sha512.run = "7fc5ac0e12ee84e996bfbef010ffaeac2fa84ba3a29c121ca9ac835373577c2849555a38cb42e22f4829538be855ea2d2dcd3ec8f4d6201ce53fb7fe32f76d9b";
-  sha512.doc = "115a723003e094601698093217fbb2ed0b710d44667e6dba694f5510bcbdc441deac5cf909b3862e5b163d50349f17ca7571704c43d01838e9ffa2686b781a5a";
+  sha512.run = "d5a2887147c21caa4c3fa2d8f421a7e759998faa36ab2933b40f7ff43768677f982f5b730c593245c55d09dabdff7bfbc51e5765af897821c525c5510d513bba";
+  sha512.doc = "c4a61e1ed259abea0d77fff546ba79eec85d0b5ec63422c8181ba5cae806b4180103361d3ed0eec3035279a13fe6e45166f6832a5de5a801e3b1564fba27be92";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.29";
+  version = "3.36";
 };
 tudscr = {
   revision = 64085;
@@ -43226,23 +44408,23 @@ tufte-latex = {
   version = "3.5.2";
 };
 tugboat = {
-  revision = 66516;
+  revision = 68694;
   stripPrefix = 0;
-  sha512.run = "be0b4af6a00b52f62d513188cbf8e8bc090a9caca2410fc713b2a4b244f078b82a09cba477adde391e988b53de3c8a66f75f3131d9c4e0395ce98dcfe4322b90";
-  sha512.doc = "bc5e7086372d752978d47f66cb486d27f531116c38b7b08c926aa314325d7abb8905cfae50d487a5acd822f4e7601b4258ba8c3d500a1e7530e3befd1ae89dbd";
-  sha512.source = "5aa5fe0d70603c337ae0395191f13354a8d932b10a763bf8d0909321a2fad6a26bf3775823feda74e0198c27496ad90fb9998201055bbef9ff1ecfa8d5dec155";
+  sha512.run = "23c3ba2e45560d22a55c4eea733fbfc55466503631eb02c61527f0a73a595790ffe8c8143df2327af61ad8c23848309065fa69abcf181f584f64d03f437228de";
+  sha512.doc = "d0482d7fe4ea30d21f43a9266c8ab4b85da66fbfabcf405ba8aee229c0081b623f1cb5862fd7e057d4080439275aa08212079bfed06f992553c4b0dec3a96798";
+  sha512.source = "fec6b9556d9a945a3e9ccf73d0d043d099883d4c5c01c0d4a06e50b7900414c37fc62ec586e43526ee4c9e711c558b1601dc46248f2a97180bb75ebd79decbd1";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.29";
+  version = "2.31";
 };
 tugboat-plain = {
-  revision = 63386;
+  revision = 68695;
   stripPrefix = 0;
-  sha512.run = "e3c5542cb31b446e5361a298cb47c94b45b73dba8e0d6dfb0d967a6f01b7eb599230eb9cc15606ae338920819be72ad94749bcacfcdeebe1aa6663762221aa0a";
-  sha512.doc = "ba4f7c26c08f49819df2103c9980108e2a662faa486aeb42d2b60739b385671757f1a0c242b9d18eff92af3c65b8f2f8c03ce1b70d1820f7676a57616b64ec2c";
+  sha512.run = "e30aecd365721f9c986b70eedd022bde17ffcf348452d650144792bed0854f18547d837d0b3731cd0810d5f6f32f10778b1adf3b29eb07a8ed4d0765dd88cf61";
+  sha512.doc = "c49683e2cef04b15c39dd275f950d602be8ecbc2e6fd644634a60100257f2367a623d06086558a69c469fb3597fd32e0a2ccee4ce9e90791daa8f8e67e1122f3";
   hasRunfiles = true;
   license = [ "free" ];
-  version = "1.27";
+  version = "1.29";
 };
 tui = {
   revision = 27253;
@@ -43299,6 +44481,15 @@ turnthepage = {
   license = [ "lppl13c" ];
   version = "1.3a";
 };
+tutodoc = {
+  revision = 69343;
+  stripPrefix = 0;
+  sha512.run = "acd6fc6114ab1c25259485514b54d848b75cb5f45dc05cdb8324a91b127031c0db8c84c445b0e1b429dc1a5ca0a6a394987465363265c0f830ea60e72c6ab7de";
+  sha512.doc = "8f58c8eaa4db17315d69088b9cb446b90504fe62395fcb07495742695f2c8e8215ab76596d4d98cad3c432f3e6079a2ec3088074345d0ace4d309db3163ce405";
+  hasRunfiles = true;
+  license = [ "gpl3" ];
+  version = "1.1.0";
+};
 twemoji-colr = {
   revision = 64854;
   stripPrefix = 0;
@@ -43412,12 +44603,15 @@ typehtml = {
   license = [ "lppl13c" ];
 };
 typeoutfileinfo = {
-  revision = 29349;
-  sha512.run = "b30d2618c8cdbf69fcb8a5444922185a52b934448b5d28ba143948cf80ed17cb402d73d1162194df3d2992a52ca9e6faca79000644eef968c4eba892c415b6bd";
-  sha512.doc = "143c4ad9cb3890b6350069d5d045f74c0bb0cfbe50e7d051c50c82011b56e651d483c1422d7d553a8d1d1784ae726a1ca1aead023fc3ccb1da4f0d59d47f7920";
+  revision = 67526;
+  deps = [
+    "fileinfo"
+  ];
+  sha512.run = "6f448ade3e08de1512064cdefbc1811f97f0a32141dc6123788bbd1147fe3d5c3f8709f6316c0268529017e611cf455d1488a8565a128c4c45d1de0ee9311ede";
+  sha512.doc = "d8c8e568d87a0107789db201875f2116df08a2c3dc9bf235951d5b675a8b1d01ab8b2170301581f18cfed4fec98e8d63fe127999f0273c9c59da163e72debeb8";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.31";
+  version = "0.32";
 };
 typeoutfileinfo.binfiles = [
   "typeoutfileinfo"
@@ -43487,14 +44681,14 @@ uafthesis = {
   version = "12.12";
 };
 uantwerpendocs = {
-  revision = 64165;
+  revision = 66819;
   stripPrefix = 0;
-  sha512.run = "af84032bd824c25b3246fe9dd92c5f059e91d1a631132c80a266516350a965aaf374c0a623e4cf9bfa20e65e9fe6d40a8450e5f872c515e95a6cd06b69f16ea3";
-  sha512.doc = "80afab05d2b18e1def918d712fafdde62d18d9ee2645fb49a7ebacffd204edce19fe0deccfc4d09dbb576b2456c180184e1b7e576c9f2af0fffff476c6e69a10";
-  sha512.source = "44083b34902ddff336673b4c5ce17938b0f3de645c847b9be64e46fba8be8783debba81250a451ed9aabf204ed448b58317d25b2bbcd83d2a7e83a172a0c6507";
+  sha512.run = "88163f9a28d8027e1e223e551f1fb053751f849822727fde7e595423e6f10c67e2d389f515aeaec77a68a48d7b20600cf9cf3ae7adb02e72f45e4d6df48c2049";
+  sha512.doc = "68dfb896b3b189ac38362a8826fb925c8e1af493029d04bf584a1a6e57c8e501689fad7b63c96fbec69d2aeb69965ff1cc7b544bf35161a6d90c4a54bc486438";
+  sha512.source = "9efadf4bc9c217dbad28b57845ef9bc18bdae2e5b48887d1c6c3763a3867083138eaa0a693de0c407fb798e150b0737041789bef915216fd124351c1ee6b3b99";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "4.4";
+  version = "4.5";
 };
 uassign = {
   revision = 38459;
@@ -43506,10 +44700,10 @@ uassign = {
   version = "1.01";
 };
 ucalgmthesis = {
-  revision = 52527;
+  revision = 66602;
   stripPrefix = 0;
-  sha512.run = "79fe22cc61ca71e472b2ecd173230b518f97b66fd411430b57dc341394961999b0cb4dc7e122d6abc828e5ecc5e15f60e0b0ce785131cbf4942a49ddb8b5190d";
-  sha512.doc = "458ad22537a6152ff782725328e98b68f1fe68ebcb2764ae1598bca8b659c8e67ffcb0c889890c7254dba84301ea3a066a5e92bac814027f62ce6910cb5f5b9b";
+  sha512.run = "b836c6cd59559d6858b6ae98e04c8ac9734f8c9df34c103e6076911db5db6430d0b253c29414a63073216f2ec8e02ffafd69ea97750fa886859b9da1ca2cc07f";
+  sha512.doc = "acd371ab0e495a664d37f5da31cfaa9d31edda71b2542afe9b4ece6e4845da19e16d4b84d64b0418b49696d080fc019e521874527ecc0aa8559f2c2341c80cec";
   hasRunfiles = true;
   license = [ "mit" ];
 };
@@ -43551,15 +44745,25 @@ ucharclasses = {
   license = [ "publicDomain" ];
   version = "2.6";
 };
+ucph-revy = {
+  revision = 68224;
+  stripPrefix = 0;
+  sha512.run = "9b8cd59c35a8e94b04de4490fcf3637b75a4f858383d0d8ca263346f08d10a7ae8dfa2bbf0d5800329e1a90c40110a7767d6af6d2b24b4f94854a78bcc77aa15";
+  sha512.doc = "18319c8a2137d7d2642dab7f9569b6073ab3ae1657c51c840a16821297539ad38fc283efdc98349bacacfbaf6f674b4c4a3d56317757af74de89511747f852ed";
+  sha512.source = "1da208bbfe27b5b1ff7aaab0e808ecf65709913ac1636596261e6421237c5584eb4028accd27d9efee18045fb3be1176044cea3b0dbb083927dad55543a8de7a";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0.0";
+};
 ucs = {
-  revision = 64114;
+  revision = 68759;
   stripPrefix = 0;
-  sha512.run = "440156f8c6d1f43524225c99adc58b63f383e2d28dd2a79af0d881545d96debf3f3eadaa0682c5f3de12cabee109912ae699c5d3f9d5e48bc4a43b14b210288e";
-  sha512.doc = "23eb57ebc1bf27d6406d883caf8ab060d4d4c7e8caeb982781f7cdd719d50aed316a2c72f01934a8f0e16a6ccf6df62598038743a026ac1f46f4be731b020c2f";
-  sha512.source = "0431c552de865e50fcbcf19d147a99c125fef807a0e462c31a9a1055afde3ea4894cb29658d473257ffe9ba5d8ef692d37b0021514f49c218417d531160f24d0";
+  sha512.run = "9adaa0a3fef64436b56d3e4e1c504b74c18dd795db15d193df0e0ced419490ab462cc61850d3bea6cde7928ddcd85cb872130d1dc9776aaf3bcd8f12cf144832";
+  sha512.doc = "95dede76d97d0dce6cdaeb0acd128e89c2e98383e633925b40433c0d4e0e342fc3df94603f17370fb56b88c40effb99eacc4310e4de4231232a2be6892adbe87";
+  sha512.source = "e2f0406d59b69bac26363cabe90364aa61513e3c20da1fb414ca683e830cdbc79410fbf9f9b36e60d467c989d03e942efa2b9905dcb2339bfae9267e49cbd00b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.3";
+  version = "2.4";
 };
 ucsmonograph = {
   revision = 52698;
@@ -43581,14 +44785,14 @@ ucthesis = {
   version = "3.2";
 };
 udes-genie-these = {
-  revision = 65039;
+  revision = 68141;
   stripPrefix = 0;
-  sha512.run = "bdf71b8e6bbb678e7cdb99a58ab76b9dd2dfebe21764dc19429c9ffd51101c0a633ee3b39099d4bc00f4658f8462844804df53cef01598f92360a1dbd00c6aa8";
-  sha512.doc = "b4f1ffe3a5be0bf1da45235d17c95fe60c1f48e9c80989f527ee987b5bd2edbfa825b676c281feade4bfccb1cfdd706fad438b2124fadf62856815273c330c4c";
-  sha512.source = "04e7e7593831e2d93be682dd8e20f3245281f8fedf04ab2eb4a7771a5d2a4e277358deaa48981bba6478bc2dc6ed25ce14f9a627dbd9002ef4f43ef41bbba336";
+  sha512.run = "01422998b27a84f3b892114fe468bd57ecfe37dfda68ff84f2cb95fc9ba589d74fa4874bb35419403269685c74607e647d98b1b443d8739c5b4c3335820f690b";
+  sha512.doc = "c962a955f1d618232196eab7c87b301dbf725f8ab08156ed98d4819ba3be5a6873b81dd7deae65c0a36eced5e42be6415b78b06c5fe945b4d4492e98487bb91b";
+  sha512.source = "77a91a01bc6e61de8d08048cd4d04ba6e6f2b2c082e14ea4100728bec3229f096089069188a523d3d213c3bc00d27065fb5949b622869fe419226705e357d802";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.0.1";
+  version = "3.1.0";
 };
 udesoftec = {
   revision = 57866;
@@ -43619,13 +44823,13 @@ uestcthesis = {
   version = "1.1.0";
 };
 ufrgscca = {
-  revision = 65661;
+  revision = 69042;
   stripPrefix = 0;
-  sha512.run = "a3e59608e4db63d9329dea8d1bd3dc7f934752abab97fb3d2eb717de2d039c2df5c5564b35e3311497b97c42621ddb988a323bf18718b71e6a42eece28f5f6cc";
-  sha512.doc = "b02e19ce8e275537a8aa59d8f5f66fb467b2aefde325279f0e05c0c19d5f6cf51089cc76f2c0b6bf8990ab4584a27393eb086bb738b305f96dac5c4a54a0130f";
+  sha512.run = "ae9f69feebcd487305cbd94661af5262d32e98f6d65dbfa8b5a2760b93fcd482aca13b7193cdb93d3f518b8e3e3ebe31275af53d34e38d4b944ee36588d2cebe";
+  sha512.doc = "71dc771856ad8f31a8a69845128ae0bcc9fb7c21252e728d7f8914f2040d5550c397da8a5e7d5c2cfcc5c8a7f65328dc5ded3036f4dc786d4802ab61c1c2063c";
   hasRunfiles = true;
   license = [ "lppl13c" "gpl1Only" ];
-  version = "1.0.8";
+  version = "2.3";
 };
 uhc = {
   revision = 16791;
@@ -43675,13 +44879,13 @@ uiucthesis = {
   version = "2.25";
 };
 ukbill = {
-  revision = 65485;
+  revision = 69362;
   stripPrefix = 0;
-  sha512.run = "54b8ce31488903e75012baf77c7fbcf3bce777794123c3274e4eae890606991ae5de875acde85def4c3757ed54f78beb6ad1d3b331704371cd0ff5198dd91ccd";
-  sha512.doc = "7ff4421360231f084977382b06677a3e103db4123fc001f7c63e16ed5e40289630312e331c5628ec8a714b9cf5ad53207dfbe2b363bb9fb3e1610d007c1ca800";
+  sha512.run = "45a1b6be9d4dbe7a9cf47ff7cf07cd280069203eb9e3a5297e699e84bdffaf845c92a32136ba7e2f61db613a32dec6d37af3eed1a8dd52fdc652af207ef16d23";
+  sha512.doc = "ad3076413ae87035b82d913c3772642aef429c7cc0efd7718f3838a5c7dae52e3954d0566c23c57f2f25d51ee9904dc8dc78b3d8a70bbe6554ce0c74d8703862";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0.2";
+  version = "1.2.1";
 };
 ukrhyph = {
   revision = 21081;
@@ -43796,10 +45000,10 @@ unam-thesis = {
   version = "0.5";
 };
 unamth-template = {
-  revision = 33625;
+  revision = 68681;
   stripPrefix = 0;
-  sha512.run = "b8d1d3bf42c11c967d9e3889e52e2c9a45aa3e0bf4ac6b6e5a72d69e1bccc2b254954a6828a66ec794dc7126f54d26ba48e3c11efb913d04e50f4867d348d3b1";
-  sha512.doc = "eed527d21e7d8669e0a02fd5e880e9172dcc2ca8a1e499b079d1d8f3935b7e84a4c84763b0204bb3b90a9df493bbbba6ee90fefcde6b4975c1360ae119264f61";
+  sha512.run = "c6b6d86dacb71575a7f76e33eac081f630b81815e3501ff5ba5a5e056d5bab76c709b19b8843adca39330fb644cc49e70c8687b5a66d0dc636caa74af6c3bf5e";
+  sha512.doc = "e7e17ba71d47769db4766628d334ed66980d7f133ec0bf2bf21d7a00e92d661dfa624def736891c5d70f11755215bff47b8cc9ffaded3baebbaf52e0365227e4";
   license = [ "gpl3" ];
   version = "2.0";
 };
@@ -43813,13 +45017,13 @@ unamthesis = {
   version = "2.1";
 };
 unbtex = {
-  revision = 64634;
+  revision = 69307;
   stripPrefix = 0;
-  sha512.run = "156376638cfaeb2b73d576d83ec48aecb12083981e7916db7ea9cea19edbd1f62c1a4e7b15c60c35930737f317b47b321a551625a083481e12c5da11f50b7774";
-  sha512.doc = "6e8ff704903c4c397a9fa36fdd8272166482430cd519e6b538692da29af54cc2f2e8f9cd283278a394b578c782323ca3d902a01d24c6fc713206c7d70ee54fde";
+  sha512.run = "dcc212b6a524f9634a686a78f2ec6d3cf357afe966378adc6010be11597912015f5b22388656068476b4de0f24e7fdfeab78003f43570890028654a937be0af0";
+  sha512.doc = "84df2e08d77cad569a4256b615e739996580acf12c7e3c62a0789ee553a84ac0dedf983a77e7d2b96e26b9dd96c0c43940c1c0644babd945770c74f54e4a9923";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.2";
+  version = "1.4.4";
 };
 undergradmath = {
   revision = 57286;
@@ -43882,14 +45086,14 @@ unfonts-extra = {
   license = [ "gpl2" ];
 };
 uni-titlepage = {
-  revision = 64306;
+  revision = 68917;
   stripPrefix = 0;
-  sha512.run = "b1d374a39e3a46bad0ae1e9f0c47ac0853edb388d9026175340172484f6abc15babbe852e1656986160dff7262c8275b48ff042c3a4c014821117d2787ab6cda";
-  sha512.doc = "6aace438f49fc5e2414e6ed4f452302116d439d18ad6b6de11a1919f98e25e7892315db832031f44418f62a89537913ed73b10f8333b7d7c872d8bbc18dfe9aa";
-  sha512.source = "d5b84ea0f7013f419d3d3ba696b55b083eb06faf3adba6ece76a38649b9456ff7c9fda0a7ee5c3e3885f16732199c9dedd88dbfa89b3f443edd20a0f6cb92dfb";
+  sha512.run = "980f748d37b5b4a3118b1f34db2957b71cdb7551595cf7673e64d75b70688e882b90bd83132ad43bfdbbbb2bfa2752fc2028f3164fb9ee5e9565b84740b303eb";
+  sha512.doc = "1198414d70aac8b31e23c73bd167586be5bf2f2745ad492fe516381a1e202e9e0720a389fc8c12eec2a21747f7e5c85fd754243b09dd5a008b2dcfa9a7257e57";
+  sha512.source = "3eb42ea4fc401d4a55362f66c96db5295fb6ee66cfd840786ea5aa640c9f2b92bb5718f614d832d7e84427af20334be407ab59e155d135212a00769bbbd50038";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1a";
+  version = "1.2";
 };
 uni-wtal-ger = {
   revision = 31541;
@@ -43910,10 +45114,10 @@ uni-wtal-lin = {
   version = "0.2";
 };
 unicode-alphabets = {
-  revision = 66230;
+  revision = 66225;
   stripPrefix = 0;
-  sha512.run = "fb211aa65464c8dba87864ab440e28ad5ec862a9172102447f865da4aa5d1cc814a2389c9a0a8ead45f44162df9f7e03551fa5f5c6a4ef58cde60c58cd996a6e";
-  sha512.doc = "99dedd786aeb570a3d62d52e5655c7577904ba9404682b5a575398bfe89bf6cb41e751a0272d73437984b21919bd6eedd0f33aec271ecfd76151709975673851";
+  sha512.run = "5a4b043778811bfec1ecc847ee191dc64b3f99ae0adb8fda2b16fdfddabf195133d53acf295fb18dd70460e1c1d200d3e6889815edabcdd0bca9d007d7a309f1";
+  sha512.doc = "ded2197bb621622c7f9947ce736814a6acb63ce86bd866792a8fe8e1f22a8131ee12c785a81c764ab707e5bf1b2c99df73c1214ff71159e3c9fdd34ee7aef7cb";
   hasRunfiles = true;
   license = [ "cc-by-sa-40" ];
 };
@@ -43927,37 +45131,50 @@ unicode-bidi = {
   version = "0.01";
 };
 unicode-data = {
-  revision = 64423;
+  revision = 68311;
   stripPrefix = 0;
-  sha512.run = "64309fd507c7705b2ad0b78ef3b5c17c2891ffce3d9de34d4fe8380a61f80542dead54984293caec516f815de69b2d89e0bee930d979a87af6a187693e2c87b5";
-  sha512.doc = "1219c454df7b3645b97a5fe6621c9666b3784297f26e0ff63696ddf7835f326b4a189a6a890b2416f12f29fd4b40de295c042a8d9b326cb7e22152b7b8f6ab79";
+  sha512.run = "9e74ad2fd167a913e004aa77c705f0f8b3ab3d8e717384ee150db076660bda4e2651bea97292ef9e747d4e2519d9ffaa113947dd5241f830c3e4d653ee061d71";
+  sha512.doc = "a8e147ba4d30bf80e1c1bdfba67bb3a0ff9f765c5d41734aca1708adb58c5c357a17401383faab827477fc837ac1dbbdcb55ee0b3146acc737c094d6984709d4";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.16";
+  version = "1.17";
 };
 unicode-math = {
-  revision = 61719;
+  revision = 67919;
   stripPrefix = 0;
   deps = [
     "fontspec"
     "lm-math"
   ];
-  sha512.run = "05dd4b08e8e766c2c8e719a12aa5a28259bc429fb1f1d05850e865ef258ab5e1372a785a2787098ea50bb31c852727ba8269ca656ce55ee0a7355fe4fd7344cc";
-  sha512.doc = "c8d05fe09c6ed76f29978eff8b7688d8989865f6517f06a58acb899603265e499db5d962895b5b3a0b6bf8d235f29da88f76a3b7b35778953878d02f2910b524";
-  sha512.source = "b1f21cf06c5ece08e75575cb2e23f7e9815c0670cdb2af0026c1037556e646e81c2103740bcb14e95375cf88b3a665afa3b24a4fd6c33f416c36f588649de79f";
+  sha512.run = "181168b0560a67c98fc9df214f0bd37bd1314b2400622d2aa3eac6659db42aabd24ab724845190cba46fd9d53b7b1440c016a0c6fab49561c3d795fefc41550f";
+  sha512.doc = "deffa8e0656c9e543e61228e4cba9a9cb31e137f6517e552f8b6243d14273b580b69e617c0473eb57a884972abfd07cd8cd9b4b836ffa1858aa1bf433375e954";
+  sha512.source = "c221366b66e3f83910aca83dd8bd97591cca5e4a22244af77c87c2a8e161294ac7f3e89d2bd7cdbfd8236df93e60ee99c9e8e9fa2c20060938b96d93f1664ebe";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.8q";
+  version = "0.8r";
+};
+unicode-math-input = {
+  revision = 67089;
+  stripPrefix = 0;
+  deps = [
+    "iftex"
+    "l3packages"
+  ];
+  sha512.run = "94b91d68c4745c1773ba5d3888b2f16f8ea353d3b8041af4fb842e17b4f82c982ff7a0cb92bd59764268e550b3599c8963a2d13cc32b495f855a131879d2ae5e";
+  sha512.doc = "a93a8517f460bee1b10a9a9619f5232f41015d0695425da1dd447880b422273135bc2a287e3f988ddcec82c1b77c2d2d1848a3fae82f2ec6115f655ca667b873";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.0.0";
 };
 unicodefonttable = {
-  revision = 65009;
+  revision = 67066;
   stripPrefix = 0;
-  sha512.run = "9f876d1cb307627ec5b06d94fc4dd3c6bc2ddaf4850f4edb2cc81a133bbdd7eb09c0e553aab1aef57b551a84773379509899f628d77317087763f4a8f507596d";
-  sha512.doc = "894fca56085ae53abd8b0f782b42ec075e0320e39a9c8590bbeb04cd36a3a9d8abf03c0e2d6d1250a96c734ccece9cdb0df76e5d6acb390a444a02a77c777ca8";
-  sha512.source = "83fabd401ad7a6228368e1f8bee1e6bb3be56732cd1b614a0f1344a9a47595a60018c4051196e4149c831668d877e593a8a19ae996905013788b3f1f56b6f83f";
+  sha512.run = "aa387053dd18c6927256690dba7e5c47a586466624f4dd36aef20b5cfbd9e1c5190ac4c5e45b5fc7325fbdb9db1fe30c42b4b9bdeeebcc6ad404d27ea36d1b37";
+  sha512.doc = "8cbfcedf459f9fdd970658ab7a462c1389e1502425816804c44bba79a4be05fbc2a6feb6769a0c693e208f2ee0ff0765c29dd7eac9afe7a5a11d1e43d636910d";
+  sha512.source = "189a69754a90457b5e99a099e65a4e62c4dc613597de7d4fc3818609a301f6da056fd88e6a6cabe4df8c1e18c0441a35dfb87d24ce9142f7fdb5e639d89c8ac8";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0g";
+  version = "1.0h";
 };
 unifith = {
   revision = 60698;
@@ -43968,6 +45185,15 @@ unifith = {
   license = [ "lppl13c" ];
   version = "1.6";
 };
+unifront = {
+  revision = 67054;
+  stripPrefix = 0;
+  sha512.run = "da1d02f97f5893d6f51b833e9919979e489ebef273922a01d0f5d48ed86ba9c401c11d5641da82f55be782dd215537159bc2c689309d3a4f730b93f2b739e74d";
+  sha512.doc = "f66a3062ccf5d1bbe11e88cabcf7bf907487993cd83bcdc9bbed927a9f0c7fe06d9975ae5006441b7b71969c436a0faa0fc8808af35ba0d381d1dbecbfe921ae";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0";
+};
 unigrazpub = {
   revision = 64797;
   stripPrefix = 0;
@@ -43979,10 +45205,10 @@ unigrazpub = {
   version = "1.00";
 };
 unimath-plain-xetex = {
-  revision = 66397;
+  revision = 66394;
   stripPrefix = 0;
-  sha512.run = "2e44ecbcb30cdfc77e4d69b6416f556305700da50c459f17794020ae413d8bdbaaadc367bc4f1c39e4776d2cd2ce6663a699627102471ef5be5da17f10d839ad";
-  sha512.doc = "c30fbd082f8bd6bbc7e3fbdef8d20eecb73a0a3ae55aa48f8bcec635d84f90827f4a8f3be027d2c810b030bca067af66758f5bdcbec2229a3f4421822c8713ed";
+  sha512.run = "cca8482cad022f39faf3b0b0cdf20a7d209acf5041642bac0103a3dbd1dc832a61a17c442845752317515764ab3beefd6dfcabda8c3d03cdcb8471fdd3bff4fd";
+  sha512.doc = "a9138d1b80d8d5db0f00682f213518df3a40e19b3e6f36a01e62ab020efbb9c468da282393cc43a515a39dd9ffb399801607e3ac59800dd7fef73f3007b137f5";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.2b";
@@ -44081,13 +45307,13 @@ universalis = {
   license = [ "gpl2Plus" "lppl13c" ];
 };
 univie-ling = {
-  revision = 65651;
+  revision = 66728;
   stripPrefix = 0;
-  sha512.run = "179200352c593096ac82a3711b01d622b1ae06b0756f14861e1280aa6e59b5d2dbe5a834e6bdb5601f212a57aa2bf37309044acee88380264b53d0c65bd21269";
-  sha512.doc = "aeeb0a42e787c6d00843f89d4d26af6c410f6167e10c6f132fdd7e859c8dec25f94407870e2e917a7dc7b9ec175e15fc190ad5892d602b248f4be50b1d833a82";
+  sha512.run = "5ba91b2cdb6001a42426b77284aa68b82575997ffe1c5c62afedffd6a74710dc0e4af25df1cb4025a8ffc619376333b318a8be828490d45c7b55126e4c7848eb";
+  sha512.doc = "bd576c575776ae2467f146f2cb344c97db797babce5c06a7785449010187a6ce8217b082ae84e0d045b543a4f3ba204f207d8c4ee61b7115f2b484ed4f237e6e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.3";
+  version = "2.4";
 };
 unizgklasa = {
   revision = 51647;
@@ -44099,20 +45325,20 @@ unizgklasa = {
   version = "1.0";
 };
 unravel = {
-  revision = 59175;
+  revision = 69308;
   stripPrefix = 0;
-  sha512.run = "26ff88b32e91fd872dc0286001b58a7084b38e5497125793ccb90e60e58ad19a78b780162d505aa0be9bf07e9656bc60414a55a0d6419e8d9b33d8c0e8e53d9e";
-  sha512.doc = "206f3d794ba1323f9a6fd8fbed98190e376a91e5babc94aec236c46be783b0b01d80fe45394a1e73e2e29c5b19279d28430b9350e1f216369c4be707ebf6dd7c";
-  sha512.source = "ad9ebde05f2194043d75d25faa249f786e154312b4c3d6688ce766cba4092ee157a405ef1eec5654b1b6852b5bf2f994c77ddd78d284c573a07539403bc69e92";
+  sha512.run = "36afdd36eac84c2421e745b4f21dd1f00e357769df37482fbdd697b7dc27904234e89dfe7c3c61313307522c7c06264290c4e805651024390af7700379f71ae4";
+  sha512.doc = "05f27d954122d3225e43412518e3c76be1c9ff4a93f9d27c06dd57bb2f42974608960f931ebf1e8f82dfc717c51f82bcff4b34a480aaa5d0fa90504d6c7a4130";
+  sha512.source = "25047c5229041ed87e062c277603be51687b1b29296a83c87f514a6630bc89f42979059251de8f8c1cd1b01c95f0dda23926097fafa1e6863a98c46e0edce874";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.3a";
+  version = "0.3c";
 };
 unswcover = {
-  revision = 66119;
+  revision = 66115;
   stripPrefix = 0;
-  sha512.run = "f7e41b1d8728e081d6864b0a902d7229ebe0f826a602003549f8140dfd9a4e110dca4f3f2e74b8843441a67931fc7b0a3da927ac26e483a77cf1ae7ae1fb43b8";
-  sha512.doc = "32e0db18af54bf09defda012f0b43e97d8ee93fb2ed4184dcf7f8ade14bad31fb17dbd3b22d5696e0ef76165b59bac9a37dee7cbab846b28339156b081c65f58";
+  sha512.run = "4080e5cb6621c3f265245540b22ae026e9c29c37739f7ae955a90ec107199bd2b52b9e2301330a630f535c05004ef762cf058b70ea5d44f65844790156379322";
+  sha512.doc = "e3b10ddf23708fa8ea68a8d5d11152812a1832f4c8d87e03a697b81f69b94167d1ac8c70824d7434fdd022f4dc10bd823fa3c177a4f0a282cd60ec166ced6420";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.0";
@@ -44163,8 +45389,17 @@ upca = {
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
+updatemarks = {
+  revision = 68163;
+  stripPrefix = 0;
+  sha512.run = "9718a99c7a6775d80f485839d71933c788fc18c8b4d9caa78c9ebcc159f02ae53a87ba1479fdf231938220eaad9006b817eb0c72c9016599f61008e314f72b39";
+  sha512.doc = "76e504743dc8b68bb7749952fe63b7ac4a0b32f36a3c4b85b5391bfaeef1c9d4045f681e2a7b50786da1a7807126277ccc61657bc4dc2caa9893d858ba71b4e4";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.2b";
+};
 uplatex = {
-  revision = 65305;
+  revision = 66186;
   deps = [
     "atbegshi"
     "atveryend"
@@ -44202,10 +45437,10 @@ uplatex = {
       fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "uptex-fonts" "platex" "l3kernel" "latex-base-dev" "latex-firstaid-dev" ];
     }
   ];
-  sha512.run = "aa49098049ae86a286ccd14a3a25060104ade1ecfa1f31d44c36398dc1d9130e78ee2f3dfbda067c5cda54275a5ace7fdfa66ff8a4e30ab2cfef32c52d4c8781";
-  sha512.doc = "373eaf7028b4528b1e7d1be399d0bc05b477fdb8a429f845d0bc7d767bbc7ff6a991174c8eff0e346a5b4c0a3dbee24b633df97656dcc1a1c5e5f80487f73a64";
+  sha512.run = "920d770f36992085250b38bf8d58c59fab7ac8d121ad171612b99ec7f91369f9f31c24ba5e5402552e2fe073a3913b529fd013be1a70eb37913a9731caf69895";
+  sha512.doc = "8024c2dfa393ddadffd5c35a27542d3f27a030464306087ffc28d65c2e0c704e56143f4f449f1d59ca1f19f007389256a4a23c2f2405855a5aeeeb11bd4b3802";
   hasManpages = true;
-  sha512.source = "bcc1d990342f27296c842a0cc1e35e1f456e7d70f44ac3db691939675ee787f48e87ce03e0a0625d69524c7e47e0893ff2b1eb678a9b74a63bb3d644cb8bb172";
+  sha512.source = "7fe21c87bcdcfc7ba7221a51c59eafd17a767aff04a1f267682167962f2a75a34e12af5b035319b6e413ef1037533f2bc07e7b7d21cda63355ef4185844d51e4";
   hasRunfiles = true;
   license = [ "bsd3" ];
 };
@@ -44213,6 +45448,17 @@ uplatex.binfiles = [
   "uplatex"
   "uplatex-dev"
 ];
+upmendex = {
+  revision = 66381;
+  sha512.run = "947d733e5b96ee6a621e9686357b8c3f8638c0bc482f4efaac87a72117160f81ad7aa0d34088e61e67982b345b56ec478ef3b6a49865ffb3d5512a7bf18d2b8e";
+  sha512.doc = "ec4d1670ff84680fcab88e29ca5f4306f44450ccca9cba06282ad34bd026f74b46d166724a06a313957ca8d798b0c296e848bb248ad416597a99afb16b4b5a0c";
+  hasManpages = true;
+  license = [ "bsd3" ];
+  version = "1.07";
+};
+upmendex.binfiles = [
+  "upmendex"
+];
 upmethodology = {
   revision = 64613;
   stripPrefix = 0;
@@ -44242,7 +45488,7 @@ upquote = {
   version = "1.3";
 };
 uptex = {
-  revision = 62464;
+  revision = 66381;
   deps = [
     "cm"
     "etex"
@@ -44263,29 +45509,29 @@ uptex = {
     }
     {
       name = "uptex";
-      engine = "uptex";
+      engine = "euptex";
       options = "uptex.ini";
       fmttriggers = [ "cm" "hyphen-base" "knuth-lib" "plain" "uptex-base" "uptex-fonts" ];
     }
   ];
-  sha512.run = "9255b1ec06d2b1e214dda666b5f37df20ce98095a3726e2e114082cd0ebb13f9f4e0d46b8cfd28da528a6ab68896fd62a0593e02b5072e6c3196937b098bd626";
-  sha512.doc = "2a9d880635afb3c848893c371d3aca7796e6aafb11949047a21e9f0df73d06b69d3cc84cfe28438f0424722b41b795be913e79cc01b16dacd5370ec5d1e9ac5b";
+  sha512.run = "fea7d0156a1f8b8a66fc061d454c1318fe98e6c1a3c618fd9e31fda4246c7a55684df6e01b986d0c296a7a9458c3489af0e4bb2142341a95e5279da97668b4a1";
+  sha512.doc = "edd326824f93b2e893ac9bc7b6f498178427477138c2e068a3cffddfef5ac658cfad2671454caa6c222bf165a2d4a16964fa67eed86c01342d119053f31a3fa3";
   hasManpages = true;
   license = [ "free" ];
 };
 uptex-base = {
-  revision = 65802;
+  revision = 68298;
   stripPrefix = 0;
-  sha512.run = "30a8e0cb5eb3721e4bd5b8e3f04ca40a1aa9eaec442b77c9d8c06d2cfac01d63a1f44a785e93f1ad7b0af45008a112e6cac070406d78494f7970dc85db096977";
-  sha512.doc = "87b22290d4cad4fdc34a7315930535a4b3dfd92725ff76407fb1e679c70443cb5ef2273f37e5d7e4674142f9d482e1c2284dea976c7246eff9233a2e3b4c5fea";
+  sha512.run = "793b51b536fe43860fa096d590bb64cc079f089effaead0d97262d1476442fb6212d30fba092a207797fd6508bfa24c3c3ab448ce4d531700fd8cfb08e4e8c24";
+  sha512.doc = "93332d9861526dba5c338bd14a20cb7e6e95aa6666417aa92dfa99200ea735d8ee0b61d8da1eb09c758b9b179f613c51a725abc997275905b3a832580302df51";
   hasRunfiles = true;
   license = [ "bsd3" ];
 };
 uptex-fonts = {
-  revision = 65657;
+  revision = 68297;
   stripPrefix = 0;
-  sha512.run = "c5afc2563064da4f84ce962ab09966a4907bef73d776fa8c2851b7fff7de2bdcf0616c88dc75310e41c163ec9ce03fa737d87ae65cce41116f63a89be07c9033";
-  sha512.doc = "7ed628337cba71518e3319c7c427f0eb6f825a3173d29ce217d48e8d49e5ddae41ac2aff43da9563f326341b650ef05e4c1f779b76e2203aec5b282cb4e30309";
+  sha512.run = "1802a5ff347ee4b9eabb93e4da5881a19b9861e3144009839d7779f61bf362dfa5be2a37b42b64041af7083ac756aaf788ad9a69cb4ba97887b21e78f6a794bf";
+  sha512.doc = "5cfc4bbb9ba533d38bc52e5274c0cc42bca2a2cf6c3ddb623eb4f48c9a49275b2a6959311935fd3e1ca32ce775da6bf0c531542a49c31039c438000d1d15c8ab";
   hasRunfiles = true;
   license = [ "bsd3" ];
 };
@@ -44295,7 +45541,6 @@ uptex.binfiles = [
   "upbibtex"
   "updvitomp"
   "updvitype"
-  "upmendex"
   "upmpost"
   "uppltotf"
   "uptex"
@@ -44451,13 +45696,13 @@ utopia = {
   license = [ "free" ];
 };
 uvaletter = {
-  revision = 66335;
+  revision = 66712;
   stripPrefix = 0;
-  sha512.run = "81cdfd20ebfca553098a9b7cee7fe726bd3bc77ee61624d199a094e7876155a9ef9e9284e543c1adffd092e9618babab5ae896b2f56d8e2864808b5dca0776fe";
-  sha512.doc = "c07988a7466c3dc96c51412ffca508bbacf392824ae87002e618a9b1de0a79497e11bb6c604a9e73762bcf5be8ffafafeb49c09655c4ae9f35a58deb0db6669a";
+  sha512.run = "df759bb1a8acc3a770d9c4f2753c7968ec2a4bcdb2f8d68cd97e25e36a1a72e4ff5d16da3ce69059679eecb10d5de56464297159c7d3b0b8e16684b5cb97108d";
+  sha512.doc = "d5e076da3feb4904b0af7b6be1db59c2454784f5d9679f6f6cbde3cabde6b70b075d83126313f5938dd9d153344986a6e8b574e540b39c4fba82d513e2d61b61";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "1.1.0";
+  version = "1.1.1";
 };
 uwa-colours = {
   revision = 60443;
@@ -44614,13 +45859,22 @@ vdmlisting = {
   license = [ "lppl13c" ];
   version = "1.1";
 };
+vectorlogos = {
+  revision = 69010;
+  stripPrefix = 0;
+  sha512.run = "cf9232e47bd3deacea13e858f4b85b45000d09f1df7fdc09bd84ed2f30de669b5d79d048a97d9aed05ccbe4ab65977becdae35b1bcbb2bb5efd2c874d7d71d22";
+  sha512.doc = "21725294c097268bf0403c9cd7cfca5a8e9541cd6829ab65c561ed4ce6e111943000e0bae54aac328262524bd19ba75e90979660948631103b4a97e4ca63930e";
+  hasRunfiles = true;
+  license = [ "lppl13c" "cc-by-30" "cc-by-40" "free" ];
+  version = "0.1.2";
+};
 velthuis = {
-  revision = 55475;
+  revision = 66186;
   deps = [
     "xetex-devanagari"
   ];
-  sha512.run = "451023c09755f3aa884128a6ddd5e70a6820724de66f8923deea812a8e28c337676de95aa98a06a96013502fa24e9855b24977603c675820b1d5a0a056fe4cab";
-  sha512.doc = "e17270b0e427e3ff02b1d43e578815ec37c0046a20ceb898a357041f9184044162077d9fc64f66d955d774637a8d2ec59d31b624dd743113c972d0854075df10";
+  sha512.run = "b7901813517790a92a921b1202c39a058d53a4159634cae79960ec7ce2da08acb757b307b5066ab1251e4b460234fd9dd98c2e404c05fc6384c656472302e3ec";
+  sha512.doc = "06a9330410b55052759e18efa8720ef65f0f3dc8a2f15d3c0a0c8f70edaf8de65eeef8ec10a9a376b4b285b1c8f619278f68e9a2bd7ba1622da72b6ff488f8f7";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "gpl1Only" ];
@@ -44667,13 +45921,13 @@ verbasef = {
   version = "1.1";
 };
 verbatimbox = {
-  revision = 33197;
+  revision = 67865;
   stripPrefix = 0;
-  sha512.run = "dc686ec1e86c877a6f1467f4935f2337aedfaec32bdf867985ef05405569572c72d3593e75580c72a7bb3ee698798813094eabf738b3157194517839fbe47de5";
-  sha512.doc = "9f8fa05294b68fb0994f01e36b468d341b76aa97bde983c7eab781c92c8bfd898033235a328a1fa858dee457f515d6640f780b330600418f2a7eb0fb45f0ef3f";
+  sha512.run = "a2520d96ed713f3e82135395c7437f1bdce04f539ca924feb1468af6a9afb9a2707edba554f073175bf01d279576d7f3b96cd8a69ff7cd6b82f6fd9dde537f3e";
+  sha512.doc = "c9c4a8a720a9dd1381a128480312ee416e6332d7bb4cd6f59c3f3c13f2c4ba5e9445f5659ff4b64cb40059fb117ce79b27b62c07b70a81ad7e3fe987f7dbbc41";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.13";
+  version = "3.2";
 };
 verbatimcopy = {
   revision = 15878;
@@ -44713,14 +45967,24 @@ verifica = {
   version = "1.3";
 };
 verifiche = {
-  revision = 64425;
+  revision = 68023;
   stripPrefix = 0;
-  sha512.run = "f37ab28892be08ae312c66c9b70b6392f401b61dd25527f10931e02db82879a1a7c26ca060652cdbfe48522abd760bdb80b1d9ac535e59871c0aa7575ef24277";
-  sha512.doc = "4767f56a36f7ef86ffa8f02934c460bb56543698090f7f411e529a44b99819d350f2012af18fd647886551a00f066bbcd252851f30b319e041546145edce71b3";
-  sha512.source = "5e6c88b4f73463df19ca48b189f2334035b82a7a32cdb73831377d525d9db373b1dcdd7bee5e96ba0a12a4f1bb211f7208f87571505269c60f346284ef19e45b";
+  sha512.run = "7a2804f2a963bff59bf4f566595c6b89adf8534ad7511542643f752eed2183ab3dc377ff70eed60a48b615a9f159a73d352ab2e138f7d589e9163a8328fa673a";
+  sha512.doc = "79c13fb6dff619f75b78433b628b4a75c171baa8859ae8e58444f1c57316abbda24cdfda4172a0b639b136366c4e6d6fc5ad5199b4cf86c89214e82dabde4cf2";
+  sha512.source = "7cacc48cfd6a9fb94f94a7950e3dea065b37dff2dfee6cfda29950e2baedb0ab2c4736f186facb3b23e37e406d505d4128ef6b24421ff0ccfecd89c1b7ee08ab";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "6.0";
+  version = "7.0";
+};
+verifycommand = {
+  revision = 69389;
+  stripPrefix = 0;
+  sha512.run = "c977f40e851a47dbb329e96df9ac528aa9a2419bbcf34470af1110751365e219aefb36c6d630022b8d57949ea904e12dbb560329c526b3e35bd101c1032e38ff";
+  sha512.doc = "69431fb242574e7ee11200904483eaa1a52f5c621d5c7c6511649a80c71d06a5527dfaefb90a74929b81b0cb2559ac136e1f6fe7321689a296a040f6362e35f2";
+  sha512.source = "8ef472771c5719e2473702f1a871ceb3512bcf557427e31a5c508701a72e813e6390fee4758f5cd059e27040c55fc5e9a9e094911d82c10d57351d26f851efae";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.00";
 };
 verse = {
   revision = 34017;
@@ -44751,14 +46015,14 @@ versions = {
   version = "0.55";
 };
 versonotes = {
-  revision = 55777;
+  revision = 69249;
   stripPrefix = 0;
-  sha512.run = "adda8d14021b5dd1fabad9348b0a9c1e6a1c0c77030afdf304a014883e19600e07ba64b4224319470b418d2822ccc08413dde791801f3f21da34b0d08c21cde2";
-  sha512.doc = "bb2dcb4163ca05501a73b45f2dad0d8e410525805612ce6fd1033fa4773c6e1213edbcc51e541b66545becef2a160c8b403ed6a54c882421ef11293fe222b639";
-  sha512.source = "ba566ae4827fc08f2403657f869ac3581c1f00daf70b4859775d0fe1c550212d98a4f78e3ecb0d74a5c298ef054b22c9ebd0bde410ccd241d6b863caa364d6fe";
+  sha512.run = "c430ad5138ec17c4a5a12bb42149bf260b582f2a8b3c9fcb15356c3ed87073b68063df1ce8d821c456c0ed0e154137a2e3ed54b83b49a859a08dc1134dc6b559";
+  sha512.doc = "3e4047566d0eb6ade7e78dc0ace0f540b56a6bcb157f613f6af0f7fe5c8ff9e47e526d68ec11b94f9e7ef3bce8fbbd26fc8c3ea115b2d1454e750ce7e15641ff";
+  sha512.source = "f986404efc03af8b3a58f07aefdcc678e0f4b37ce25f8772e145e08bacb1ebf330361d56bbe5710611d09b01d31b82e9c736c1a7419a0dc56f0fce3a5c797136";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.4";
+  version = "0.5";
 };
 vertbars = {
   revision = 49429;
@@ -44796,10 +46060,10 @@ visualfaq = {
   license = [ "lppl13c" ];
 };
 visualfaq-fr = {
-  revision = 61420;
+  revision = 67718;
   stripPrefix = 0;
-  sha512.run = "ed7bcfc871d3ff533d954a74bd0212a72349fe0317258edfae79941e7f7cfd47e13de24acfbf524bccddcc66f6e75e9491b25339d26d513cf8170853e1e7ebd4";
-  sha512.doc = "2cc2f861a505f4a705ebb03481c00ba6ecf394041e0fcd2a12bc3c96d2a3ae875fd3ac3e236c03c15e2646228945c036647031a0d95377a2373cf9086e5ec888";
+  sha512.run = "06a9f22c86f54883ce55b23ba81315e53afed4f7ed2b77d13a8958bc18e5a96cae849a327126843865b6ecd55d7153cf261ab784625b9a848e7dc661df95fbb8";
+  sha512.doc = "8d18a3712c42eb7921d6e0e7d29ac96c4718386643bf967b3c428fe5846830dbaca382822ae3d23523dda2e4c7d5f0d96c137412c2302f5e634471d83fdc4547";
   license = [ "lppl13c" ];
 };
 visualpstricks = {
@@ -44819,9 +46083,9 @@ visualtikz = {
   version = "0.65";
 };
 vlna = {
-  revision = 54074;
-  sha512.run = "ce37751f6cbd088e8faffb0c2ddb6d8bec9c0d1f0fa3a4ab0a3e5f2517e6f54fb6903f441cf72398284801c9b9f00d684d6a6555e2588ae72679050734fff8c9";
-  sha512.doc = "f46c2e29da8f4edbe544d41b05ac3ba13cb5e3c09d299ce5ccb85207703c99569df94640c651a1afbcafcaf4669bb73157945f8dfc1d2b43ce5c0c7970c35544";
+  revision = 66186;
+  sha512.run = "6c66717442bca3306e23f5d546e17929240ce9626a562b9e56512446998996d38f83f78fbb39e46bde0b9faf0db7eb0c0218c79e1d66711d6cd3c64a8778edec";
+  sha512.doc = "921d76535cbe7e940617355c74b82acfc61edb840db8ed9cae1aaf987fe6b83245505048c7c550d59829b204f139ae1cfd44601435e2fff2b0d5230b45a27b77";
   hasManpages = true;
 };
 vlna.binfiles = [
@@ -44940,23 +46204,23 @@ wallpaper = {
   version = "1.10";
 };
 wargame = {
-  revision = 64797;
+  revision = 66713;
   stripPrefix = 0;
-  sha512.run = "b06a6c8099942833cf1df089a6f2dbbfa8416a6f3bf74ea5d5411c098f1256261eb9101f95d1a61937552fe5141ed7462e774e1ed9876b2c03330a92162b4c21";
-  sha512.doc = "c75c95bc543167b74466eab3b0f9a030165bca914757a5c281ea44a4cf32d1eafa61f2e6d53e811d81dbdac36942f923fc8fd82e77e718b230cfa1a430bf77c3";
-  sha512.source = "16e6ef9e59d0469a037a14833e234ed46cf3e693d5f3468bde9519585f2e0ca659aa66717f5a07f506ceb3540079396fc397e75508ecf06470b20dfb39a970e4";
+  sha512.run = "fa9965a291573796cefa9c64d7c76894b29460287224699f6dfe708f218b293ab5c5daad19b70e949d1efff0db4f76cfe90606ae93fa508015114607338d8f66";
+  sha512.doc = "260474bd6f44ad52b56fb7ed2ef4e0de95ef455f12cc09e8fa6c70cacd7d0853d34fa5ac8fed34912241c9aaa38f079119683b1b5fd90e82d635238d20a940ab";
+  sha512.source = "17bb297856b2c483ff5d44851a2c59f445f35137f1d535330eaad161a0470df64e17634d945fb344f61f4aeadbe3068957d41dcf561c2997017f422f47cfa5d4";
   hasRunfiles = true;
   license = [ "cc-by-sa-40" ];
-  version = "0.3.2";
+  version = "0.5";
 };
 warning = {
-  revision = 22028;
+  revision = 66616;
   stripPrefix = 0;
-  sha512.run = "de3d9ef9a6dda4022fa8f04a0be509d3e9e583a539a3590cd30527f108ff739e0c1dbf8c5945e0a72902b14c2616e26d41a05f23957e9466c788fd228ac6b082";
-  sha512.doc = "04c8ecdd39f2e0b3aec8cf6d9235acc7e10c8e182bbb2a7b30a46cf9ce7c08fb0fea21956356b3dad500a5a58c7a2b63e9471b2e8fe626b17492f721f527ce72";
+  sha512.run = "443a02ce9aa004379aac94091c4f3014042cf2826d12bcffaa92f24ebd3a023ef314d05aec00947db74175e03e432fb80b7060b51c4fc310d14c15ac86606abe";
+  sha512.doc = "561c4aa05df7143f68067d22b337f1754482c40eb851356f70887dab86b3944116f2e7d9f3a83e4439c7b0f6d6db0ca61371ee049758173c35b70468bd0166af";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.01";
+  version = "0.10";
 };
 warpcol = {
   revision = 15878;
@@ -45009,12 +46273,12 @@ wasysym = {
   version = "2.4";
 };
 web = {
-  revision = 62517;
+  revision = 66186;
   deps = [
     "kpathsea"
   ];
-  sha512.run = "edac6079f0de1904e008c2a5fd7ee697f32c5324e3b9a7a4d8997b97ef214bfa1a787c84ecd4bcccd38e88c58b9729b4c5684ab58bbfcc97ce159dc5c2b5b312";
-  sha512.doc = "50ae800de53cecfa6f656ba41d35d7c486e4cfe4b2ed42dd26dc60ecaa9a0b80c178dead765a7076fcc6141e8a2158e9b0854ceecc2cbf7b2e85c23cf22a7da3";
+  sha512.run = "cc8b2b6525ef1ee49162dc157e8d735225f5fc3bee54e56ac01ad47f85f639e4c43b4409e949d68804e650e243da0a8a6d098ca7c37587f14c810112cc82abee";
+  sha512.doc = "ed04fce861ae2adda602a2a50d560cc9a5863ab1668dd9512baa96b6c37acd8334e4800bc4ca853c0b1f58bd3a643abc82a96f31de9d4980806ad0572ea2a92a";
   hasManpages = true;
   license = [ "knuth" ];
   version = "4.5";
@@ -45046,13 +46310,13 @@ webquiz.binfiles = [
   "webquiz"
 ];
 wheelchart = {
-  revision = 64373;
+  revision = 69040;
   stripPrefix = 0;
-  sha512.run = "5119fac9b5b6b6c65771184da8dac9c0f27c4c115aa874eefc2d322e864595e9ec4a70dc782334bbfaa9eba30ebb1e079f914453c330d46f898241c34e9e9e54";
-  sha512.doc = "a24f915836ee36150625a4cb297f80b66c6f4ad3231043300d438e0d522942322602fb39b3026faa58d1ddb48097af54ca71b729c8ccba15d0cc4ba9ce505b21";
+  sha512.run = "17660fd6ff9cf02bf01b95b505128aac52005b4ff59fcc1b28c64e9870aaed03f8652555cc2c323453441c83e696a0c5bc281281a1baee8c6ede1e9a11dc376d";
+  sha512.doc = "6ad02cbf669800f8a9d81cfd3ed3abcfc5b8a2df6040d3eb6ab0dc1ffb01875230be13959adb1ea7dde805d4ffb6bd9767de1b275479636f245e1140be07b16e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0";
+  version = "2.0";
 };
 widetable = {
   revision = 53409;
@@ -45065,14 +46329,14 @@ widetable = {
   version = "2.1";
 };
 widows-and-orphans = {
-  revision = 66534;
+  revision = 66753;
   stripPrefix = 0;
-  sha512.run = "df6534b55c029166cbbf91dae1b19b083093ad5c694b8a9dbe50c724fafb7f9ada320b298882ef3faf6069d9218d0ac70f6a0b0ef95a62f707232107efa2840c";
-  sha512.doc = "6a415e3068a378cb94f9b2f07866e2e515248691628ea838c7be8b43285b7832a49fd1842bb9b6767c27ab62f694b76998396cc51079da46584a2fe17c1cb6cc";
-  sha512.source = "bc1ab6f2c3bb52b25e9e1a39b0f59341710ef02e1a20e456d09a53230f3a312e7eea64998481c6063dabe97cc91cd5c97c51ba907fde9818046acfd2fd1cd30d";
+  sha512.run = "0861e1449011f6032d847c5bbf8d06fe7b8f6d320dcb0f2281ca558dcb8ef1eec561ecaf622f957e6a0c673223b3aef8cbac4663930931d945f18137d19f4e45";
+  sha512.doc = "6105b7306ddfcd91080bdb682702dec2a4d1b094e1b8c9bd0a28bfd185bbc9a0bc4252180101b2674e702d645fba31420d12cddad2ff3db6703f6e83042b8a4c";
+  sha512.source = "4eb52ec1f9f78daf90f62b7f88ed96506069fbcb22c9bd33aa853142ea2282dfc4b5ff87d6280ad82ee3d9342d4c5737e91cd7a83416dd1de6b26f2e89062b2b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0e";
+  version = "1.0f";
 };
 williams = {
   revision = 15878;
@@ -45092,10 +46356,10 @@ willowtreebook = {
   version = "1.03";
 };
 windycity = {
-  revision = 61223;
+  revision = 67011;
   stripPrefix = 0;
-  sha512.run = "718ef4ce03405443de94581e45f8866053ce4b5d6b7c6e4576c4664d42adcf50570240fc8181f795f59733b94c648e15cc98ef92e4ae59843093663511829c4d";
-  sha512.doc = "58107956e367dc318cc23320818c43f3fa91b75f69bc186b107687293f52c1c0cffb04912959e1a5c8d8abe3bb848c69da38ec621266e7a94b378a11d4c759e2";
+  sha512.run = "f83fe1f694d3fd448484961bb23c7c220ccb5b0f8982198660b5770140c8e9120fcd1f095492555f00533039039d11b3d2695189f40b716b17b2c2acf2e7c553";
+  sha512.doc = "eff7b0bd0603d563d077842e77fff4b9a104d008724d3e81f58cb26ebb77f8e61811f5a74d9cf2d5d62f3351ca692d5028cea9629ac1a9e8dc6263637c1cb616";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -45109,14 +46373,14 @@ withargs = {
   version = "0.3.1";
 };
 witharrows = {
-  revision = 65841;
+  revision = 68047;
   stripPrefix = 0;
-  sha512.run = "ec6cc4905751b7ec8fdee871ad72851241db23552e59bb0e66e931d849c6ba3d99d78b93a13aa96359588439b78534065a90f786bddaba5d243cd400438be710";
-  sha512.doc = "3ea2242ad99d728dba6d5171ff2277686f6f5402900fe80a6e84c3b6e3847d5070f31f68482e0f2de09b10401d07c2db60892bdf8bf4ebc450daf2b21203edf2";
-  sha512.source = "511f6ec6a396298e004b7943040adf71d8b1b8974bbc8650e6921c064d38375e7c01a978a851ac52fc5ee93834e9c5db0ced7f468cd03126e16e90267a497d40";
+  sha512.run = "1ac6ec240be73608724793040cd9f716b61a7a197e30b1334ba81c3791d7714c0af36c509e9928d0dc4a11bf8cab5c0be373a7ded90f0c661e9547b553b57f62";
+  sha512.doc = "6b8993d636328e90dfc6ff622fe8536bc795a1cfd32372b6268dec38910435d19a8b85569e5fd7568387059ca9def471cfe6e92fc9ebdbf5ddcc65c789c5edfa";
+  sha512.source = "e1e031bc4a1b6bce4eeeaa14f0d0201a5578c3d0492a55d29aa40141bf4519a942c839f569b8d3b72a013da17f95fbd0e6edcdff3d5f971771f0534a36cb645a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.8a";
+  version = "2.8b";
 };
 wnri = {
   revision = 22459;
@@ -45136,6 +46400,15 @@ wnri-latex = {
   license = [ "gpl2" ];
   version = "1.0b";
 };
+wordcloud = {
+  revision = 68209;
+  stripPrefix = 0;
+  sha512.run = "7e4f6adb72d2a7b3cf740f338e63669304ac33d90f7fa09327cb3e6ee882105c92786656d5af742de0d28717cf45f4fe0900ef0c48faf1ddbe57af322959c8d7";
+  sha512.doc = "fbf28ca6311850020c73dbb1a6a60bf5f31387a2def4b01f348674e678a3626cfdb23e2826a30db8ce021a5fadfcc26027584278110781a99ee26337c4b1f642";
+  hasRunfiles = true;
+  license = [ "lppl13c" "fdl13Only" ];
+  version = "0.2";
+};
 wordcount = {
   revision = 46165;
   sha512.run = "3c26b3bcb4c3edce8cf9d6628cf6b89103aa1ae454b07c1e963ca90693c18fb851772a52082a23efbefb51235005e558fd553afc891a472eb39cd430c97f861a";
@@ -45147,6 +46420,15 @@ wordcount = {
 wordcount.binfiles = [
   "wordcount"
 ];
+wordle = {
+  revision = 68170;
+  stripPrefix = 0;
+  sha512.run = "fe32704e323185cdc9fcbd3e87bf02c4c0870af501de731ea1b05056cc7e57861042b111a3307597969351960bb99086f99f8577b70e8e6b31cfbc9cf8825157";
+  sha512.doc = "38f168ddfdab5e786a4ad5b42f726e7895178e949c04f75ffd2f14fb42d77bf6e8afe22df5b87fecf8490be61aa3edde0dafaa91191f459e4378878aa575e8c8";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.1";
+};
 wordlike = {
   revision = 15878;
   stripPrefix = 0;
@@ -45167,10 +46449,10 @@ worksheet = {
   version = "1.1";
 };
 worldflags = {
-  revision = 59171;
+  revision = 68827;
   stripPrefix = 0;
-  sha512.run = "128274fc2cdf34b956987c85c4bd00e25673879a3c701965db5ee7d240916df79133843991ea69e0924fe15a3f88140e8bb1754880bbdb1d9eae157ade92c260";
-  sha512.doc = "8cab4b4abf08a0253a3ffd1682be2de6fd5a32adc48c4e195b76899074d3fa415ad77ce347a17afaa812040de59a3d0947e35c6f3872c98edca0fd218fa79f20";
+  sha512.run = "662c7b2cafb1764a42a94707f350ffe0e4060120071d715c3c1cebd21b2c64f2ca0896ac3c9c1e629b2fe4b057bf0b890805747a668b6a8c04d501a4ac1ca1fd";
+  sha512.doc = "16948753f069aa0e9f0e19efe9072c35eddf4bd20e32e6a47321a93bd3117f2206d44d3a76bee1581f7d4dd7e392d2bf1a4fd0ebb83d0d7b6cf207e69a42c7ac";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -45184,14 +46466,14 @@ wrapfig = {
   version = "3.6";
 };
 wrapfig2 = {
-  revision = 66119;
+  revision = 68164;
   stripPrefix = 0;
-  sha512.run = "af17223ee8582f8dcd3b30a91db66aa4ea590f2b0d588750cf751925f055c5c06c101806578f0f9c775b22b666c72fd9e8189f0f56461c0e2a57a6eb387eca52";
-  sha512.doc = "5fbcff625c8ab40a21b88c1f3e4c4b692a6b99e2d3e932b0094fddfdc0650a0bc6b30f25a069db005c93b6a8fea09ec8198be3505b0cd576ece361d3e1220b4d";
-  sha512.source = "70341613c62346a66aed788284c7388ed34f052dba648fae70ade8fa1901bb95781b6ac365f281212b0b7a226fa3b177488bf7b9ef9d3747319dea20c084800c";
+  sha512.run = "b2fa531e9a8deca8741af501073e7c05739ccd889433fa8355bcb4dca34a3efb9b6690306d884a040ba1dd076ce5c99e3db5e7fd76f30e951eea0ea3ad00629e";
+  sha512.doc = "cb3e0264c487b53f093f90ded250705bddb70a68557bd7cc03d66baf8731481b8e94055dec140bf7a510a62293eb4774ad4c95f472dd3248289f246a87804d11";
+  sha512.source = "05066fda5a68577758be7ffe4743a10600093983e469d05ab85e8ce1ed8fbc5554bc01f35d361aaba374645e0b143cb92aa33f527b7539a10b34a09b2659d2ac";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "6.1.1";
+  version = "6.2.1";
 };
 wrapstuff = {
   revision = 64058;
@@ -45204,13 +46486,13 @@ wrapstuff = {
   version = "0.3";
 };
 writeongrid = {
-  revision = 65700;
+  revision = 68863;
   stripPrefix = 0;
-  sha512.run = "b65d0b5159fdf6c9f84318770c765507b832d70e9646eb85456f3917988ba0b8d67add019a993f7ac6e58276a06dff263155b0d2759de5bb04ee4982f2c14187";
-  sha512.doc = "d5ffefb363efb6736112a99db98a27aa4e7fd0ccc6168a0fe6413443d7854ae9e157e660973fc9deec074362e8faff4285f28bc89cad1d19c7e8d9a02814bc92";
+  sha512.run = "5e97c246141838a342192743411ce0d3cdad4924433540cf5d1faff7f2650388eaed5f045c60ea5bc69ed4108aa23863f38d812ae4702af1d04000d96d112dd1";
+  sha512.doc = "2f4c29ce5949d3f10b8a8971cd62c34a473038f211bd1cb947baf675d9320fa7d4b61931a83675acf6f00534656d827fcda4a5fcfa51b69052c8f82a7625d62d";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1.2";
+  version = "0.1.5";
 };
 wsemclassic = {
   revision = 31532;
@@ -45231,13 +46513,13 @@ wsuipa = {
   license = [ "free" ];
 };
 wtref = {
-  revision = 55558;
+  revision = 69214;
   stripPrefix = 0;
-  sha512.run = "1c946778722ba4e7014b98447d1c2c5472b34d916a4aada1ad1098ab05d67a1466fb181f19bacde5fe18a0b28a055a87b626893d6c49346fb665b4595910401c";
-  sha512.doc = "b1ebac65ff228e7a6221240ce90d83121d726959d95f2271eb3c6597c7740a376da62371fedf2c0bd068e660950167d4b09cf22c01fd78c337c10402eda63bd1";
+  sha512.run = "abdaf96d5c4cc919fcaa5343d25243266f86dc079cf701d71f047b01874baabf20a0c7972a6aa863c7f9eb9a003eb5a516714d57fd453574e7a2c8ee2e500e7e";
+  sha512.doc = "f248f448bcd110c59d5dc19c67d4192a20d4f334c6f17562d34db0dd4ecbd7c6414ece9ed4e55aaf2ea42a0e5373fc5f25e8eaaae16b468687bf5c2d2e88b908";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.4.0";
+  version = "1.0.0";
 };
 xargs = {
   revision = 15878;
@@ -45268,22 +46550,22 @@ xbmks = {
   license = [ "lppl12" ];
 };
 xcharter = {
-  revision = 63057;
+  revision = 67742;
   stripPrefix = 0;
-  sha512.run = "e3b6de6f9ab168b90b2351a43066e144c87efcd648c8e39975870040662bed9f5a2d033d23c28eed2b446af24abfb893ac550a52870ce5dbcc41d9b26aca4d52";
-  sha512.doc = "3a2e88d313293b073d0eff63dcb6984c9eda7eb5813aff6267615ac2f49dd9b47b977e196c1769353cfb44b1b8c07c3e02146eaafa99eac416b049598fa89e60";
+  sha512.run = "9e71217c7df0e41de44aa8cfe09b36955910ccca4337d878b0f18f4352f52d14b9dc1cafae01e9b06ed1a094282bb73b25e5328ccbf60e6070b57262e106018f";
+  sha512.doc = "04b1aa9efceb7b87551ffb6743605861ebe695118376940fa84e8c3a8b0ff7c073d86850713f8df98381c674fff210bd2f4dddfd82de4f152945207ec4c44354";
   hasRunfiles = true;
   license = [ "free" "lppl13c" ];
-  version = "1.24";
+  version = "1.25";
 };
 xcharter-math = {
-  revision = 65686;
+  revision = 68992;
   stripPrefix = 0;
-  sha512.run = "099096013f0e6875e879e5f0c5a646df374c718199e0a8394d0d1db215e2e65aea7b484818ecdf1be72064d8460fabcf46918b5326516c3b887b62ccfd7bcfbb";
-  sha512.doc = "c6b64e8ebe5d0aa41aea6e5cfdabb2cd62eeb924e8de0b4b2b29dca4f8a4970e643b3c81fcbdda52df3a4cc1220413430cadde6caece7db3f6312fd65814b3d7";
+  sha512.run = "82830e9740200cddb622b30b4c91112462a2c429e501f354f54abaffcf8f64186cbff3bce25b889508c6c28732ca2c0a2ded06a876260903163d02d1260354fa";
+  sha512.doc = "c1bd25aa3d1aa195ad97f1228dffc73889d06ac45391ed725696372c7184672f6a14b1f1dc2f4410866a6cc0119219817f50bd78c602846f067f935f18c538ab";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
-  version = "0.36";
+  version = "0.60";
 };
 xcite = {
   revision = 53486;
@@ -45315,14 +46597,14 @@ xcntperchap = {
   version = "0.5";
 };
 xcolor = {
-  revision = 63563;
+  revision = 68864;
   stripPrefix = 0;
-  sha512.run = "936241be2d7eebec5cb7e1edf54a9522a14d58d8a4d2b339b912b08054fafa33e2cc158360aed9fe1db88db23d68b17e989ad70b90d0fbb04131676ad981e3c8";
-  sha512.doc = "9129fa37573a55ebd878e6c5b52ee3a449375e55dd0a87bc85620b12ae9fbbdfadb92e65e5cf3f8e3e7fbd5512107b55d017f8df8db317c50c0f0248dab4399a";
-  sha512.source = "4e3f5af10fe8797073f78e7b0d8b7e89e43427209834c4211fd36d0b3594975c13577a806f090e8153c12e00896c6c5d34ce2be8c1aeb123568b0b5c08b89880";
+  sha512.run = "6b7d38d631f89f4c4ffa9f447a16cef6169c3e4798c5c65339fe48f9318291373a49ef9da8143c453fc5fd9ee853bad53b5477b248ad5f99763df9ea28638c78";
+  sha512.doc = "1dc8355913a62657a2b50d45a6fdfbabc8a0dbb835ec5912fced934350b21619e8081b9e9a4774ba48ec3c51572c7f95f52efe92c85344dd81da0bcc81e73809";
+  sha512.source = "98fdb68955160820347af83f7f44ac97c3a61b9732af2a17980155c103b6d6ed9037504ba99aeeda5608fea84f82ac871dbb55d9de334943a74aa617caaa70fc";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.14";
+  version = "3.01";
 };
 xcolor-material = {
   revision = 42289;
@@ -45394,14 +46676,14 @@ xduthesis = {
   version = "1.00";
 };
 xduts = {
-  revision = 66475;
+  revision = 66661;
   stripPrefix = 0;
-  sha512.run = "9d658106d7967f25be235aca3421d20d601b3d8c642a1449df714ce2ed22953f78bdd43158628ce51793428b5d6c38f75beacf20e06d2f076b2c6a2393280831";
-  sha512.doc = "9d4d2bf5936a686053015f62a77de81948ff391f498c9a36d0ccda0da49722aaadc07c4b58f92d1ce16de3e197a8763fc345f543edde65c7dd2b53cb68408dc4";
-  sha512.source = "c52367e3fc873b50a8c919f1492392f731d9770f8474319e8e5aace94a7c96a7d84036722b3580ed323fcb7f450a1280c3d1ba448a30f71fd0a0fa056384fb5a";
+  sha512.run = "8c2b0b04ff619c18961014213db4a509af10d46cdd5177706021675eda7d408be01a3f9c9aeb18556b59535dd9cf8de7d9147c36c57350ee3fe8e02e61f416d5";
+  sha512.doc = "7e89d160b992eba61328618ea463014c52f861eb1b952f05aec2860878c226d0354470522468ef79c710486c0ced8bfe76eee296035a752178fafcd380f957a4";
+  sha512.source = "3227078ea75cbc6d23aae9086f51bf86b2d7fc42d237767ed90f915a6d2255f6e2f816c49d77caa1d85fe0f623d99d3e76dd458db699b458df5c28f3fc5fc092";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "6.1.2.0";
+  version = "6.1.4.2";
 };
 xdvi = {
   revision = 62387;
@@ -45530,14 +46812,14 @@ xellipsis = {
   version = "2.0";
 };
 xepersian = {
-  revision = 64872;
+  revision = 68117;
   stripPrefix = 0;
-  sha512.run = "bb9f3e4df9421818ce1e77d72c790c33f0eb11452eba38e48dfc13c7313bccd63cc11b1c3d1aa383f1ca778bfd3f9545eb20d899c980522a255b334a7545d2cd";
-  sha512.doc = "3d0b3f8234b01ddcaaa7d808aae2eb48f40a4af15ec87523297b5afa971478eb143338e407a1e7764449bda920ea7bcff0f0894f1e875524b2e44c3b3bb568b5";
-  sha512.source = "3924d7f779150aae6d0b2a4a2e246f2867142358e21146fcea10e0a82a598511aeca8f30089329a1328a4c8cb6d5c396516c544ce85f6607f734ba9d7759044a";
+  sha512.run = "aba7b248b1ed6fc557e51c267d3da21a3f3473cb0b0d997ef7d899b3ec518a099a173a163c53aaa7ff29e13aa2f1dbebb65775af828c85fcb9e4e91476d6e1ca";
+  sha512.doc = "dc2f7a06a6122baf9f2284412edf4231eba88f6968f86eb06e47a3e3f3cac14f833ccdb8f69e95b17a05cdc9c3244c361e8d581b6ca65a715a82662ae722fd35";
+  sha512.source = "6cc50aa2d511d744499620b010066916913aedb63ed871f93ab8cdb45380da206dee76c4d8ceaf01be5df971e0437ffd8b469a3ae793810043515a966fdb40a7";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "24.8";
+  version = "25.0";
 };
 xepersian-hm = {
   revision = 56272;
@@ -45569,7 +46851,7 @@ xespotcolor = {
   version = "2.1";
 };
 xetex = {
-  revision = 62387;
+  revision = 66203;
   deps = [
     "atbegshi"
     "atveryend"
@@ -45608,8 +46890,8 @@ xetex = {
     }
   ];
   postactionScript = "tlpkg/tlpostcode/xetex.pl";
-  sha512.run = "e9f0aebda0a7fb36e2cbce4dd49e965335438c4ebf2d41eb8e19eabe29617239dd67e7e3433a8c75fd40f072a2c6753a7d0762afd34fca4130929e51888aaabf";
-  sha512.doc = "31f03ee1ae00bc7883109ab7b7374feedc384d86b491873e90797658eae12299dd60b95edc1c86f1faa61a0b7a952cca23993e991863b37e49c27afd6c21c034";
+  sha512.run = "fddc7a48405d5ae56b09fab5f180372972fc7fdd10eb19ec8e2b0f6e1e3bc54d2f92512a6954238c21fbdd75425923dcdf115bf16fe35ab3a850363c41ac99e0";
+  sha512.doc = "7fda9e0a2e7f4dcd6a1813cf8fe280f7193aa88a77cbc5891b892112950e5d5e7690328e267805c8b9a24dc735e7991065ee3664b1278fa334f83ddf06aee236";
   hasManpages = true;
   hasRunfiles = true;
   hasTlpkg = true;
@@ -45681,10 +46963,10 @@ xetexko = {
   version = "4.2";
 };
 xetexref = {
-  revision = 65972;
+  revision = 68072;
   stripPrefix = 0;
-  sha512.run = "4cf111fbf6a7df52e8131dc5c0fe4f868e8fed89d8b54f05b426d9860b5c1666d6dc7e2239b58022f2d5cb9a271d5f953ddaf9b54e64d510a12d7749e6ce2156";
-  sha512.doc = "e73a28268e351a736b7baf132a1028ab9c44fc0ad5d7dd2ad3a65f830318a47bc2118d415f7e24b38fcef50bd967dcdfcee5a1b9c5dde40ad81cbdf9747a285a";
+  sha512.run = "a26a066a25162d3f3484158b6a5d3e3f44727ab5b7e3d3d9a4457fd80e92522f09d61015a4a3b0fea4dc63987ef773c8850b6afe8a50fa5ac2ed58cca51a4ded";
+  sha512.doc = "d0f2de750f04ce63aeecdf00a5f0628978c78afaa753f8dd2b41a819c76bb0531bee8906d4eb2014075cf4d0202b6c1fb41a9093120614478045fcb0820a70a9";
   license = [ "lppl13c" ];
 };
 xevlna = {
@@ -45697,16 +46979,16 @@ xevlna = {
   version = "1.1";
 };
 xfakebold = {
-  revision = 55654;
+  revision = 68929;
   stripPrefix = 0;
   deps = [
     "iftex"
   ];
-  sha512.run = "99c735bd449c96b3444a8b50032c9962601a04beeeeb6b0fcb759ee0cc53e4510dc8d077a3cad7b99c968bb9d60bbd37f2f0c7d56ffb5fc667301423bfd32bdb";
-  sha512.doc = "bb6f1bda41427f4c144402095a79aafe70d6b534b6d0462d951a2c58fabb0bc8dd9edfdabf526bba243b2c79aeacee728741dca778e25019ae909856b164a316";
+  sha512.run = "96d7c43d4aa975f5e948038f07c765397dfa240b41daee453064e8c7abd90a1a52cb8af02715de51b6e56aaacc4f8e6f72e40c562371541ac94c00e2f5b6aa2b";
+  sha512.doc = "11b63158d7e780d390a1d4cb4d046108fa34212431d41dec582404047a8fa272e625898d4f1181fd8728bba789962b63b5462a9ea5556fb896b68ad2eab3c038";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.08";
+  version = "0.10";
 };
 xfor = {
   revision = 15878;
@@ -45719,14 +47001,14 @@ xfor = {
   version = "1.05";
 };
 xgreek = {
-  revision = 64300;
+  revision = 69268;
   stripPrefix = 0;
-  sha512.run = "96b0afffce870b5c3cdda072a23d20810db89607fba64172cb329fb10a598693d870132f26ad1c04e0b394bc1181f9dca0c966c70d07e8c17b3e3ada5e2eeec6";
-  sha512.doc = "f4543d8a1603dca2b8f4dd9db97a8d887ba0b8f772284ac81e772b30e641f0900abff116441ead7c571ba7f60ed6999f694596d0e8e4763a3d1ed62f07a056d9";
-  sha512.source = "cb9546b39edb451166ef0e931a0b4ebd571fff9a4e337e0f11d7a2e58ea92e4c82aaeb8b981a88576f9e83c7114c8233763552f3e1bc1c4a7231087b1feffbc1";
+  sha512.run = "bada8aee28edd971542cd5091b702fd494cd710d32112e16f0ee7778868efd0ce558a5ca6d7f4f291dc7edea7f89adef584f4714bea656e9a76674808d3fd765";
+  sha512.doc = "e30af632317678f8e082980120ec328ebdf094ae816f17708387bd23b580431161503e99177ca78a5f2545fbe59b26968d208e8e273ca76f7f7f45fa31200e56";
+  sha512.source = "100836bb5b1bc2191a5c1f446e1b30f9f166719988fd62e5a72102180987db10b043a45f737da04e86f52bd8524fe2ba236454545d6d90105749df572df5775e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.2.0";
+  version = "3.3.0";
 };
 xhfill = {
   revision = 22575;
@@ -45761,23 +47043,23 @@ xii-lat = {
   license = [ "lppl13c" ];
 };
 xindex = {
-  revision = 65597;
-  sha512.run = "c88e7d602c741db871ab6ec5895fee5455b954c4487d57be812b172369c5d973a8fad4b9fdcb60179562d04ba4105ecfc1228ae7d414a7d90df9a9723306de07";
-  sha512.doc = "3d36e5f8811c6df621717a7077bb49bec137a5bbc3c6593078644811d915c720d41c2e1a6e5be6e3af95ddc64879582061f7aba6113e2b3a1ee5d7b3f63064d0";
+  revision = 67771;
+  sha512.run = "bf812f7ea5f981969b1963f470a0006c4afd937ab27f6b40f7897dc2b6ddd1a0ae60f347b8ed13483ec4fd9feccff257a79dd7b8a2720be1d49a40fe2b325fc6";
+  sha512.doc = "ec93cf3bb639326dc6905be018481da8438ebc5558e4c161419910e1a4427f6f7bb7bbf35ac779ea6769b6c009f9b6bf657b78c7c42bf7100725e8cc6252c975";
   hasRunfiles = true;
   scriptExts = [
     "lua"
   ];
   license = [ "lppl13c" ];
-  version = "0.47";
+  version = "0.55";
 };
 xindex.binfiles = [
   "xindex"
 ];
 xindy = {
-  revision = 59894;
-  sha512.run = "0abfc9c3d4f4418fa63845df092e074762f215b334f76016814988f5243bbb184768256792779c65f277fa6a48c41d762c33be6c5cf25ba292efcf9f0554abf8";
-  sha512.doc = "3fed723b6115fd7e05b84c010ded501fcd8440af72353b2b7ccb6df39082515b5de33951821c8546b65ba2462695971695caf2ce88fed67c9bd766db9d13e859";
+  revision = 65958;
+  sha512.run = "9b7fe97c14e3cf30d1e6743c2d7b4460e8bca901ba3ee216001f1518ff4d834fb3d9b67085825a6e152c6acde544c41cf16d56e609016caab89a594305a21599";
+  sha512.doc = "d0dacd7cfa169b03b7fa9d0b351133582577c3908323f501d7bca7b0165159b72c34f62abfd73b97065baef8cf179b292e654759f3b3e324112623539e5acfd6";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "gpl1Only" ];
@@ -45837,13 +47119,22 @@ xits = {
   version = "1.302";
 };
 xkcdcolors = {
-  revision = 54512;
+  revision = 67895;
   stripPrefix = 0;
-  sha512.run = "4c7057d785c565e043daef78f4ddbb5dc307a3caa690044c803059034ef42fc1a14f61c93115b8060c330f480397040ab19b44636e167739a016175af61c2806";
-  sha512.doc = "ff112f54943d9f6f0e55cd0ef2a9b0cff1e088ea386c7853bfde9cf091b4ab762b38486c565da39fe5f0e63811c2d2b5661dbc5d98b740ffcc08982462214795";
+  sha512.run = "3a2c40713d8e826c1bc09589e56ae6cf661a73cd32bd8903f80f51d71fb79ef34c0be9395ce2f3915fd1ec1385e970945eb00ed0f9f598294363742fe13f4d8b";
+  sha512.doc = "85b7b920d701a6e6752ed78ddf718ef99b7c6684441012feb5bdf2937d3a16ca8a89033e2a5eb723888a52a913cedd320a42c2b902696f876437e9f912a05aa9";
   hasRunfiles = true;
   license = [ "lppl13c" "cc0" ];
-  version = "1.0.1";
+  version = "1.0.2";
+};
+xkeymask = {
+  revision = 69223;
+  stripPrefix = 0;
+  sha512.run = "1502216d5f8b5b2f15317f7dd9faabd11e06232a093a74a64a7114b5f2307e7e96065810129713c679d4aa4d2e622c6a1af8dfb31719b447e9d8fc1e8026e027";
+  sha512.doc = "812473ff009eceec4cdf23cfd89dec769566f2027e528745273061047b4abb3b5b62426492f30755090c664f61e33b675d333cb0e9002869339a4636e6fb260c";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0";
 };
 xkeyval = {
   revision = 63616;
@@ -45947,10 +47238,9 @@ xmltex.binfiles = [
   "xmltex"
 ];
 xmltexconfig = {
-  revision = 45845;
+  revision = 68933;
   stripPrefix = 0;
-  sha512.run = "2620dde42acffee6561f406527794cc62d87c1104135da846b7cd3c7f4109c4d1986d562ea612f2b5246e1863eff86795c4789075f8475d45de00763cfb539fc";
-  hasRunfiles = true;
+  sha512.run = "a377856b79abb94771b54ed19e6f5ef02ebf80374ac868be2905dc23f36d821c79ea9a99077233edd5e125278e6d8bd44c40de50dfd56e389cb46c76348d51e4";
 };
 xmpincl = {
   revision = 60593;
@@ -46001,9 +47291,9 @@ xpatch = {
   version = "0.3";
 };
 xpdfopen = {
-  revision = 53998;
-  sha512.run = "fe873bb22b94a26720e37671e283e0085619c2129a4568399544ac0df1e5c443a9476590ca7ef76a21409589eb2416a14165b8a48a6182f3773a3009cb7c1a47";
-  sha512.doc = "bb4be8fe1b4590e74a7573baa1d699895fb62f6b30b05c9c81655001c75ffb43a6d7f92deca337072690ce3297d4ab06f1aca389524c5d5d500a9fce4abd8404";
+  revision = 65952;
+  sha512.run = "927b6a17422a3573efef6767f4835492df27764bc7fe729ed2697665d5fca697fe1a76e141ff30d5cb483bb4ef8e2021ecf2476c5bdf83ebc5dc6e7778b70765";
+  sha512.doc = "b4f332054a5fe85c9404a05673b373ac2b1275b79a1f0b57061cda614350df230dba60ed3be590e0688840334a113ce5c64847c1dc4e6ebae6cc29524c1f6bd5";
   hasManpages = true;
   license = [ "publicDomain" ];
   version = "0.86";
@@ -46043,11 +47333,11 @@ xpicture = {
   version = "1.2a";
 };
 xpinyin = {
-  revision = 66119;
+  revision = 66115;
   stripPrefix = 0;
-  sha512.run = "082ee68b118f20d74c442427a0a6e25dd1c5e0571dcf4ee1bf9eab214b0a4773075dc9cf43f2e0a4b02299800fe5362c8fcf09c059ca0b52bc9d0d5651b7d141";
-  sha512.doc = "70966d857aeda92fb727119d064e99f8c7c68f538619cafa5e00fac06b66ad4d9a05d827f31b6ba97ad7034eaa296e6f4b92064501b8ec5251c5189c30206548";
-  sha512.source = "3f6d646d90b058cf6415195885ef9622a0d3ec598215117ea5a01adf49301efac5d3baf4c717f8362b77922e1b884d3bfee10ae5bacf1327bb8705de49c03dbb";
+  sha512.run = "3b7eda4c75b90284138c1277657c8f4a3c2c9a3374a2d6f80969e78805ab8f0c03bf09e5aceaaaec689582dbe30a82b704e41ce08305a0b4b869a84d4d07678e";
+  sha512.doc = "f233ca01195f0f3e236414c02cefbb8da1adc24d6ea94fa56e98ab8772f48456e4bf469f6def555a01c29f8a258c352186d7bf7054db2bbe3843ed937784a440";
+  sha512.source = "f4775152d7879b352f6193af3036258ca984a195abe6de3c03baa41325a7b1fce3900facc2f3ea8fd2deafd3740128161ccfbb2a37eb88fae196a20136f68dd9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "3.1";
@@ -46062,14 +47352,14 @@ xprintlen = {
   version = "1.0";
 };
 xpunctuate = {
-  revision = 26641;
+  revision = 67918;
   stripPrefix = 0;
-  sha512.run = "4b69969632691a529ff0127f21a5974a509a29c047a33cdfc53d1bdef1aacee7d6ee8eeda5d185759b60b2e4dfcd0dc59948a8156767e2a7ced0256aac0697d4";
-  sha512.doc = "04a839972105943ad72b848adb44584b647a3e52842c0956489ce82496d005ce35f4b8c8e6be1337b5f65616036b58e9543e7f4796075f9828aa9220015e441f";
-  sha512.source = "02b04679b0d5ec75f2972f786293250e0115378fee96845249a221be1cbfdce9d03897f877b82950a5c80d117d4693aaa60c06d7effff9c50e63db8a6e1e49d6";
+  sha512.run = "a90da49b111181c61512777e4cbccfc63710b19513309bc2a04fad0285691095c812e7b8feaa0427cd5e837bf644458229b78c2bec530b01bd772fcdb18a2bca";
+  sha512.doc = "8a7c873e8fd809fea44c136ef5b810f6e5d6213f48806cffb5018645d2a0252fb45b0de029c1f070963d4a584983c88e8c2c7661f1dd2f7cd4407c902ea13880";
+  sha512.source = "5e871cab9151f51e1b05f0266d42f872a3eaa27a0a801e517219e400f7be808463038461fe45d1d748c05085dc605545e5b2c83250413138f19649d5af84cca2";
   hasRunfiles = true;
-  license = [ "lppl12" ];
-  version = "1.0";
+  license = [ "lppl13c" ];
+  version = "2.0";
 };
 xq = {
   revision = 35211;
@@ -46110,13 +47400,13 @@ xskak = {
   version = "1.5";
 };
 xstring = {
-  revision = 65551;
+  revision = 68015;
   stripPrefix = 0;
-  sha512.run = "d747f0eabed48e6d3053b02bca43df476dbaa7f705a1b60c8b9e3e518ecd61af8449122b6a230f2af41966ca0c14c16e7e46b95e124c4dffd898ca4299af7a17";
-  sha512.doc = "a3ad8bc25db266e50fff99ef28def0ad2b68b7c31d382f256b49f90d5fc300800166cd10e255679535bafc2b6196df4ec94df1ab7d82ac42473b51d2226f11ac";
+  sha512.run = "a7373745f3ea8f75b73cd3af280743db902a683f16a9820c214b8b5a92c72314323173a966b5356d78cba667978f677f42ea10b54e98b08dec29202ba8e67b39";
+  sha512.doc = "c9ee24a7661c7dcf4f7cd1b657269951baced39e6d40f5a6656d491120c9fd90034d9a4a226d0f714909e7a03fbc474f6f7a355d4138ba87906d950e1156c884";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.85";
+  version = "1.86";
 };
 xtab = {
   revision = 23347;
@@ -46242,10 +47532,10 @@ yaletter = {
   version = "1.1";
 };
 yamlvars = {
-  revision = 64949;
+  revision = 69071;
   stripPrefix = 0;
-  sha512.run = "aaa024a9796daeed1546700c253805ee3d503acaf88ebef7e277981aa56f96ec4008792fbf2ec4fa2118154b2b96771cd65782e348a4e12452945234eeed3f78";
-  sha512.doc = "fa1349e1024619f0e7536c14681c306b96a76961086f42ab293acc2d1ab44dcbf78b83281406f13ff3c9083c0a3b62a30780696350923d8c3199551a362e14ab";
+  sha512.run = "07d8c9983e631b3e4c97ccc1a7bdd20486e55a59eb6049388823db24149635bd59b94d98f2259de5ef0dc163a9f44e4e01148a42c3f676c65fa802d310f6a0c3";
+  sha512.doc = "686e2be82054f40c93dfcfbda35d2fa45fe0c28d0b85af30c5ec9c9a8c125a6789fb7185d08da9859bf714f6f5e4dc4057890ee4782fbea446aec923e0adfa6e";
   hasRunfiles = true;
   license = [ "mit" ];
 };
@@ -46258,11 +47548,11 @@ yannisgr = {
   license = [ "gpl2" ];
 };
 yathesis = {
-  revision = 66159;
+  revision = 66146;
   stripPrefix = 0;
-  sha512.run = "fab5b280fe45504c54cd599d5b4e1e99936d3373ded66f4b63d781866271b79f56179668b4bd4c2dc6daf5754ae732737e946da763cb1e7018cd5908a70b3efb";
-  sha512.doc = "70bdd373a8816ec6eed800cc233a407d6cb668382ea05efc1df3f604a9ba266dd8799086e7ed33df80ba4e876cd4c86fe52df1de31cd99a0b88aedfdb54315f1";
-  sha512.source = "0d2c339bec5d3c4d3e2e7bea9a3735e4a5e697df35690ab54333181bf2157706d3989ca590dbd7fff0f104c4776bf80f13c976e0c7e4515de2111aae60f1ca34";
+  sha512.run = "a14b12050bd99d7fdf4cbad2962b35976ec86e80944f8aca2bdfedec64d703c74081d107bff1704132e73df47002426c39d22a655acdd7c0d98857ed9191cf86";
+  sha512.doc = "6a1877cbca94a367afa8c6129bf8c6264e2c7203764fa451137113470d7899a40b195db8327ad84249b9f9c8d41698dd0c7a7b6b2754b8205e3bf8e8b533f545";
+  sha512.source = "753983fa303512e3a505f43ec14a626f42e20702f90c52bcb522378c9f2c6b0d0ce5b7888b4c1ca923812a79d1335573fe9d95493dc4d844dac2b757d67b4a25";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.0.11";
@@ -46286,7 +47576,7 @@ yazd-thesis = {
   version = "0.3";
 };
 yb-book = {
-  revision = 64586;
+  revision = 67188;
   stripPrefix = 0;
   deps = [
     "anyfontsize"
@@ -46320,12 +47610,12 @@ yb-book = {
     "xkeyval"
     "zref"
   ];
-  sha512.run = "dea52e5aee243d84ad52bb5eb61957e05b500ea9caf36360fd587d0a38ebb602f2821e040e3acf41e8318c0ce491f3bdcb5a477ef65be7b41ec2fe12df680542";
-  sha512.doc = "ecb2ed5bf434f96aacd7422bc815cdc8b69c307475f8f71b8b8b5bc2aad916d1db1394eeaf3b7ddd54e3bf7dc059574c821f2d44f9247103153fb5ef3f40f02d";
-  sha512.source = "20080fd53bc9c749632236d710972bac2db0ab0a7c3cd4a1b39fdc1226a2279332dca41856647b6132f033f381de798b8dc522ba3199e747ea15e5ca571d71c8";
+  sha512.run = "e50c3b75107bcd7cf72a6d4ef86353e8953860a3b4ffc044280fa57b0f290d1ec161e31aed3f91f8827bf038e4f60ed1a6eefb557f0401ed67042209750059d0";
+  sha512.doc = "19e220fa4214b2ca9c95fef77c12805d1f9f4916e8463fce561170e7ba103587a47a38f1710dd6e1147cf50c23f6e5e9524582f127ad0dc237a409970f4922aa";
+  sha512.source = "3a7817bf209e938f9a75e928c16de30b59537cc049ca1b67e3bdf9c116337c78fe0a40b346a0f7189ea04c7af3755e0428af2140db7eaa83dce026a6042dc489";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.2.0";
+  version = "0.3.0";
 };
 ycbook = {
   revision = 46201;
@@ -46358,12 +47648,12 @@ ydoc = {
   version = "0.7alpha";
 };
 yet-another-guide-latex2e = {
-  revision = 65714;
+  revision = 68564;
   stripPrefix = 0;
-  sha512.run = "ed532ed8d95cc68793956533f91e331d71618d7d9371d8d7996e1bab06cabc636e2d130e1af2e17ca86ffe4072ed2a8477b33e96451d94c926bfded1c0f592ca";
-  sha512.doc = "cb9817e571faab5dde69dc2e7adbac59cb6437f33444a289e9dc61d4f4db10958e0206e8a369d873667963cfa754f176bb0b9767a12632950cf5e9a4327805d9";
+  sha512.run = "7a2d19b71006352ff9cf69cb68243153e99e4cda2a3fef37daf6ab180e7a7625b8119b972785a331188faf7ee6f03d724a760c5c3456e85cf32ce704b3edd7cc";
+  sha512.doc = "8ab0ebad6b627dc1a5d90477d48868715830c6558e9091d3782284e9766f22f9764170a3e89d55c8437dbca2c8eab446a1be0336baf43b3ddcaf67e125ea2f64";
   license = [ "fdl13Only" ];
-  version = "1.1";
+  version = "1.2";
 };
 yfonts = {
   revision = 50755;
@@ -46443,13 +47733,13 @@ yplan.binfiles = [
   "yplan"
 ];
 yquant = {
-  revision = 65944;
+  revision = 68997;
   stripPrefix = 0;
-  sha512.run = "af6e025317de8d354ea6a5f901c56c8966d43d95c0d85902a9c77afae6282d3c54dccf35723cccfa4a825782afa648465e51f0dc6f971488863c328f6f4d8883";
-  sha512.doc = "105f593830056c3d15ffd01a8a812964430c876c9be5a3135240bda323dbd77c4d0345b3924fea693a5566eec3fb7dd010e7301a7b7fbd36ea7f041422c4f246";
+  sha512.run = "2d9dbde5bbc12186a054624f4dfc30ab9cde606440e5568de12f9bcbc0f0c7f872141a2f1745e2f9729884e59e8c36ffddb77ae5b813cf837ea7e2ebea7d7109";
+  sha512.doc = "bd0f9428c7a0930b6d714ba69f0020217021283021b9492bb71c2077fb70e86f3a49694251f88e91605604bda7049ce1f06bf1ecc1b668c63e080d1bcb087fd6";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.7.3";
+  version = "0.7.5";
 };
 ytableau = {
   revision = 59580;
@@ -46485,14 +47775,14 @@ zbmath-review-template = {
   version = "2.1";
 };
 zebra-goodies = {
-  revision = 51554;
+  revision = 66630;
   stripPrefix = 0;
-  sha512.run = "c6ba09e174207ed9f28053bd82ae46551910358e74ad7afd74b406a93d4720f5b11b1921497c3c464c80b55d8fd4e4adbfb115f3ed9a9bcdf68ebf96bda06434";
-  sha512.doc = "48652f89e032526de7c37ad57ff5719d75dd50e5a00ec48a4d94c314bb159d76061ce9c9cf8519bfc8d546e274f8ab1344751d798abac422562efe6026df1872";
-  sha512.source = "2f2cebe6593b55cdbe03bec6215f74a4520a3a0f5198316e749eafd9adab2f9b4a7fef99dcd831cccffb0d758e2755bf7a97c21df8b7f1b770b4e5359d69bc7e";
+  sha512.run = "c740469e5a27355fbe8c781d30434724b8c77216e88c674854dd71e73e38ba78aeeef251a25e756c4046230eccdf334abf6d5f378bad559691a29955cb0eb16c";
+  sha512.doc = "c4bdfba7e426c95599c4fe2cff06ada80345490f433eb636260ed5ce322c1c21c0b5de0c4709be415b6b98668b7c514610375f2bdf9831248be0095e1ff28dc2";
+  sha512.source = "ec961bcc2d7181450184bdddbe0f0c1d5100bd6fe2294722dda239d8979f6c8d126fd4f52cce371db8227aedb1e1da14eaf1457ed12e65d33ccce6f23148ad8f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.8.0";
+  version = "0.8.1";
 };
 zed-csp = {
   revision = 17258;
@@ -46550,11 +47840,11 @@ zhmetrics-uptex = {
   version = "1.0";
 };
 zhnumber = {
-  revision = 66119;
+  revision = 66115;
   stripPrefix = 0;
-  sha512.run = "083b60752816db5b85f2a1080bdda2829d373c8eaf89ec7fd12d64b238b11280a6f4ded36142f2e6a08a72977c23907fba17d99d25bd9826d42f6c041c4b2081";
-  sha512.doc = "fcfee3e37ce20ebaa52e3615f4db18ba6d243691b3bc90eadb78376c40b2e9394472e208b7e145cc967e3c7b9b69061016a43c5da20cf326c6f03c29ef1d5446";
-  sha512.source = "215d46d0728316abdc173e933006ab6cda39024f968739c3f2451e3a59442091a9082a0c5a4bb7c3a09dc3175d87dd2f86599b8804479c98bf3d549a4a0e9f5f";
+  sha512.run = "080460cafa9f1b382d5843e7863eefb36a26abcdf8ef97d9a23fe4e68d1bf85e0e6a38c7201d1dbaf2d25acc7b846d757fab9f9b850d992a576b6df67929cb55";
+  sha512.doc = "c8f6b76b72f7b7bc19f2e6fe64191b86c4b73fa7559d3299945359a7d2205e3685c4eee98283f361207192fc35de0a7ae9064e118e20f96f832d18eacf93bf70";
+  sha512.source = "7a79592cda187221d2832db12e45923a03f110de7ae358304048a52d2e170853421cad0a50211c0894b700c98301cf949f1def35acacc7cf2d23789ff23ca4ea";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "3.0";
@@ -46604,48 +47894,48 @@ zootaxa-bst = {
   version = "1.0";
 };
 zref = {
-  revision = 62977;
+  revision = 68278;
   stripPrefix = 0;
-  sha512.run = "4516c2b785e26dac293dd028c314bdaf75d195c454cd2acd54aeaf6a298b0494031a86926abc670d27bed1ce8622a9607ea71d2b4d268bacdff26b8937c67dfa";
-  sha512.doc = "f65ebb760d1cac9dbc1c6ed4e48a9015c2cd2c5cbeb28e4776802ea84ac6b08c5302eb2126619e93f5bdf7ca76b4b8cdfad3ee9369aea364f680c1deda7bf396";
-  sha512.source = "c4d4fa3cd9921f0c60361c7aafd000998c8bf7f04ccdd39406d51258b006851cce26e1acc6fa4ca91369764b012020b60ac73bd8b540a2212cce236f1335b9c3";
+  sha512.run = "1c21d99dc4f1627520914ed3620606c724f22754662797b93c4161aaf3e36d5a42a586ae7e4b227cdf67d55c88d3979635e78661d7029f1a5967c503a9f9dde5";
+  sha512.doc = "24cf22b54cb13e1458266f4962ba589fa9385f3b8d58493747824d815c372cfa6fa8a8a24d0310264b299ce43148ca001b5c6b73961d1504e1ab6e8a4ac246c0";
+  sha512.source = "251cc99a193371ca0e11d1690ce6ce545cdf077a483f81d2d5ac5c3495b24c25f383ba6b73e9607578adb0940441247ac4027c7719d2ada0c1b77f7876f9767a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.34";
+  version = "2.35";
 };
 zref-check = {
-  revision = 63845;
+  revision = 68846;
   stripPrefix = 0;
-  sha512.run = "108b5484c84aa27fe41c416a68a0a01a7990624697acbbe324776630b46d17aedc987cb2dcb5bbab7d8cd95c129ed8da451984dffe319fd8fed4363f376b617e";
-  sha512.doc = "ca2dad2ff43c842de9a1cb63d7c8ded3b722113c39023774cd4744b17080e1993b886eb170e49c39ff641f04cf020bf0b8a0aec5f36e1d649d01d28414107700";
-  sha512.source = "c814c786a2a298cdf0ceac279a9718e26c406035a187acb9e08be1dab9749bdb725c4fc3276749569632e0478220031d8441970afe70959bcfb53ee8823b5d8c";
+  sha512.run = "98aeb6007f1f599a2bda644c60c9929ca27c9045d73af3d54298837eb842e7976a2f9067182ce38c77ff197e2fe36a53207d2aa39adaa9deeb4e118bd034b0e5";
+  sha512.doc = "d050bb4a6c68a80eafe3eb7f99c61407424385743785014600404397e6fa322becaf3a28157f59951a2406fdfb66968f3cba9de4e388282ea0c84e3f33d4fc8d";
+  sha512.source = "a84246193d390c55dd66d65b64eae79e52099e7f7c75b8ef03d595d466d57643832f95ff23ecdc2dd0cc31b7c5cc64db361bd5ece7949e544936739b2c70e1bb";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.3.2";
+  version = "0.3.5";
 };
 zref-clever = {
-  revision = 66024;
+  revision = 68846;
   stripPrefix = 0;
-  sha512.run = "4773b3467f6e0874d581941293e771ed8e21746be75bf9d1dc470ec1c8a553ca21d0a507d834a7b7c34dcead4d69ee542b8cbf84186fc14a6347e3f54582efe9";
-  sha512.doc = "438e5e4362a69c83a9e0757a65db76bd301047ab5f5c67ffc983f91d575d1de16b629fe1c81be75af1621d9696b6492126f4663bd531bb785b04ae96af38b9c6";
-  sha512.source = "303c0f18e8510d5ea48017c36ec84e700582406689d418941b072c5135c9ee97fbeaf6709a6c71b104c2e93bda730be23640e97e9a1c6c6b56a9bc393731b08e";
+  sha512.run = "d7a32fde3ee94e304f854f690756ad9d15a9287c1dd38e1707a1f33e2bd30ac23147a439990ba7e9f7bc0b2c5b37b5d475bb64f2ab89bb15752bfc0e2f9ad3ac";
+  sha512.doc = "c18e86417db71ece26e6a29e0598e521d17a79c26f5ebd92dbd78c427142bb992df9ff39c0a5867dd296093036615bc319aa9dc970faa0ae0d4ed479452e1b89";
+  sha512.source = "3ff30e4c2ee570c5c142542110699ec17b123078c5d01ed9de2781404026b120856d38d4cb05160bd90ea56063e220e09dd46158d938a70416488797855a1fe3";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.3.6";
+  version = "0.4.3";
 };
 zref-vario = {
-  revision = 65453;
+  revision = 68846;
   stripPrefix = 0;
   deps = [
     "tools"
     "zref-clever"
   ];
-  sha512.run = "c3b2965bae0c8354e60cdd8de29cbb45dde04180d4c7955376f1889622d1eac35365fb14cfd79615c5bd98909039c4d4e8bb02bf6225bc6f40a8a95d40137a90";
-  sha512.doc = "1b10b548c3c1455520c2d190330ca996e0799fadf2aab6f9da59aaee62434dac35101021749834f05a9a40618185b430b3071d6951ee2784572014fc885acf92";
-  sha512.source = "fd6a63914cc36ae400da73572c8b7c77991808f6e1e2d5a23527719f087174c881dd7e60357a94eae46a59aa83e7dac34fcf5dde062bcfaa70cbc12a345bdbfe";
+  sha512.run = "c159620be1d7d853641d4b42108ec0b2e36b6f4b0c604680469b52cf4c0557196263293d4692906d1d42c1d0ab9a666b59d462266131e42f319a5ab3a2385780";
+  sha512.doc = "b618216a0bd8d7b65fe73be05156e899917719436ef0139122fd01047b8d55faeea55ae05e259d99c464aaeb3fdd9268886b7dec9c4b6a86209da1dcf1c3a3ca";
+  sha512.source = "0569db63bf6fd492952cdee442312e818926bceba7663ce0e17f485dbe990687d97efc02649acef6dd89210aa44f9e88c86cf2667c4a487e9b78b90b10a779ce";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1.7";
+  version = "0.1.10";
 };
 zwgetfdate = {
   revision = 15878;
diff --git a/pkgs/tools/video/rav1e/default.nix b/pkgs/tools/video/rav1e/default.nix
index 859e523dfa65..406276977c52 100644
--- a/pkgs/tools/video/rav1e/default.nix
+++ b/pkgs/tools/video/rav1e/default.nix
@@ -15,14 +15,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rav1e";
-  version = "0.6.6";
+  version = "0.7.1";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-urYMT1sJUMBj1L/2Hi+hcYbWbi0ScSls0pm9gLj9H3o=";
+    sha256 = "sha256-Db7qb7HBAy6lniIiN07iEzURmbfNtuhmgJRv7OUagUM=";
   };
 
-  cargoHash = "sha256-qQfEpynhlIEKU1Ptq/jM1Wdtn+BVCZT1lmou2S1GL4I=";
+  cargoHash = "sha256-VyQ6n2kIJ7OjK6Xlf0T0GNsBvgESRETzKZDZzAn8ZuY=";
 
   depsBuildBuild = [ pkg-config ];
 
@@ -38,7 +38,7 @@ rustPlatform.buildRustPackage rec {
   # Darwin uses `llvm-strip`, which results in link errors when using `-x` to strip the asm library
   # and linking it with cctools ld64.
   postPatch = lib.optionalString (stdenv.isDarwin && stdenv.isx86_64) ''
-    substituteInPlace build.rs --replace 'cmd.arg("-x")' 'cmd.arg("-S")'
+    substituteInPlace build.rs --replace-fail '.arg("-x")' '.arg("-S")'
   '';
 
   checkType = "debug";
diff --git a/pkgs/tools/virtualization/alpine-make-vm-image/default.nix b/pkgs/tools/virtualization/alpine-make-vm-image/default.nix
index c06efa3617f0..bb9679e061db 100644
--- a/pkgs/tools/virtualization/alpine-make-vm-image/default.nix
+++ b/pkgs/tools/virtualization/alpine-make-vm-image/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "alpine-make-vm-image";
-  version = "0.12.0";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "alpinelinux";
     repo = "alpine-make-vm-image";
     rev = "v${version}";
-    sha256 = "sha256-IV/MC6dnvWMs5akM6Zw3TBzWPpsLL9FllK0sOV9MRGY=";
+    sha256 = "sha256-ilXoee19Wp/tB4f/0c7vWki+dnEPYp4f/IKzkGwxdbU=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -29,8 +29,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/alpinelinux/alpine-make-vm-image";
     description = "Make customized Alpine Linux disk image for virtual machines";
-    maintainers = with maintainers; [ qyliss ];
     license = licenses.mit;
+    maintainers = with maintainers; [ wegank ];
     platforms = platforms.unix;
     mainProgram = "alpine-make-vm-image";
   };
diff --git a/pkgs/tools/virtualization/cloud-init/0001-add-nixos-support.patch b/pkgs/tools/virtualization/cloud-init/0001-add-nixos-support.patch
index 2e293321ac02..57fcef6fe661 100644
--- a/pkgs/tools/virtualization/cloud-init/0001-add-nixos-support.patch
+++ b/pkgs/tools/virtualization/cloud-init/0001-add-nixos-support.patch
@@ -1,8 +1,8 @@
 diff --git a/cloudinit/distros/__init__.py b/cloudinit/distros/__init__.py
-index 7b83df8d..6d04de1a 100644
+index 79e26235..bdc32c52 100644
 --- a/cloudinit/distros/__init__.py
 +++ b/cloudinit/distros/__init__.py
-@@ -75,6 +75,7 @@ OSFAMILIES = {
+@@ -91,6 +91,7 @@ OSFAMILIES = {
      ],
      "openeuler": ["openeuler"],
      "OpenCloudOS": ["OpenCloudOS", "TencentOS"],
@@ -12,7 +12,7 @@ index 7b83df8d..6d04de1a 100644
  LOG = logging.getLogger(__name__)
 diff --git a/cloudinit/distros/nixos.py b/cloudinit/distros/nixos.py
 new file mode 100644
-index 00000000..954e564b
+index 00000000..67c049b8
 --- /dev/null
 +++ b/cloudinit/distros/nixos.py
 @@ -0,0 +1,109 @@
@@ -38,11 +38,11 @@ index 00000000..954e564b
 +#    You should have received a copy of the GNU General Public License
 +#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 +
++import logging
 +import os
 +
 +from cloudinit import distros
 +from cloudinit import helpers
-+from cloudinit import log as logging
 +from cloudinit import util
 +from cloudinit import atomic_helper
 +
diff --git a/pkgs/tools/virtualization/cloud-init/default.nix b/pkgs/tools/virtualization/cloud-init/default.nix
index 72a67045f56b..6791d7bf2b61 100644
--- a/pkgs/tools/virtualization/cloud-init/default.nix
+++ b/pkgs/tools/virtualization/cloud-init/default.nix
@@ -17,14 +17,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "cloud-init";
-  version = "23.3.3";
+  version = "23.4.2";
   namePrefix = "";
 
   src = fetchFromGitHub {
     owner = "canonical";
     repo = "cloud-init";
     rev = "refs/tags/${version}";
-    hash = "sha256-49UvGrv40hyR3A2BndlQKwQqCC1ZaLm97IUKNW12sJo=";
+    hash = "sha256-Ae6xvXZR2ikriYekZbHfXG7iL0LlT7exwaaGt5odplg=";
   };
 
   patches = [
diff --git a/pkgs/tools/virtualization/govc/default.nix b/pkgs/tools/virtualization/govc/default.nix
index 9c9fb8f2c8fb..e3fd16538e4d 100644
--- a/pkgs/tools/virtualization/govc/default.nix
+++ b/pkgs/tools/virtualization/govc/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "govc";
-  version = "0.34.1";
+  version = "0.34.2";
 
   subPackages = [ "govc" ];
 
@@ -10,7 +10,7 @@ buildGoModule rec {
     rev = "v${version}";
     owner = "vmware";
     repo = "govmomi";
-    sha256 = "sha256-c31omDUjd5VywvYNLTjk5FQlqNRnFPLJ0eVEJLdF6N0=";
+    sha256 = "sha256-UrGHuzUZvXWZRy4VJ1HlMBs2C8MuaUYhM6dlYIoG7vE=";
   };
 
   vendorHash = "sha256-1Y2Q2Ep3aqhUCSWey+sD4m7CgVEjlPt6ri3OKV8eERU=";
diff --git a/pkgs/tools/virtualization/guestfs-tools/default.nix b/pkgs/tools/virtualization/guestfs-tools/default.nix
index e78bd106993d..6a94e251a788 100644
--- a/pkgs/tools/virtualization/guestfs-tools/default.nix
+++ b/pkgs/tools/virtualization/guestfs-tools/default.nix
@@ -29,11 +29,11 @@
 
 stdenv.mkDerivation rec {
   pname = "guestfs-tools";
-  version = "1.50.1";
+  version = "1.52.0";
 
   src = fetchurl {
     url = "https://download.libguestfs.org/guestfs-tools/${lib.versions.majorMinor version}-stable/guestfs-tools-${version}.tar.gz";
-    sha256 = "sha256-rH/MK9Xid+lb1bKnspCE3gATefBnHDZAQ3NRavhTvLA=";
+    sha256 = "sha256-Iv0TIpcEX5CmdAbw/w7uDyoBBqXxyNz8XDlqYl/3g3Y=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/virtualization/mkosi/default.nix b/pkgs/tools/virtualization/mkosi/default.nix
index cf3a934b0bef..12f752432e4d 100644
--- a/pkgs/tools/virtualization/mkosi/default.nix
+++ b/pkgs/tools/virtualization/mkosi/default.nix
@@ -30,20 +30,7 @@
 let
   # For systemd features used by mkosi, see
   # https://github.com/systemd/mkosi/blob/19bb5e274d9a9c23891905c4bcbb8f68955a701d/action.yaml#L64-L72
-  systemdForMkosi = (systemd.overrideAttrs (oldAttrs: {
-    patches = oldAttrs.patches ++ [
-      # Enable setting a deterministic verity seed for systemd-repart. Remove when upgrading to systemd 255.
-      (fetchpatch {
-        url = "https://github.com/systemd/systemd/commit/81e04781106e3db24e9cf63c1d5fdd8215dc3f42.patch";
-        hash = "sha256-KO3poIsvdeepPmXWQXNaJJCPpmBb4sVmO+ur4om9f5k=";
-      })
-      # repart: make sure rewinddir() is called before readdir() when performing rm -rf. Remove when upgrading to systemd 255.
-      (fetchpatch {
-        url = "https://github.com/systemd/systemd/commit/6bbb893b90e2dcb05fb310ba4608f9c9dc587845.patch";
-        hash = "sha256-A6cF2QAeYHGc0u0V1JMxIcV5shzf5x3Q6K+blZOWSn4=";
-      })
-    ];
-  })).override {
+  systemdForMkosi = systemd.override {
     withRepart = true;
     withBootloader = true;
     withSysusers = true;
diff --git a/pkgs/tools/virtualization/xe-guest-utilities/default.nix b/pkgs/tools/virtualization/xe-guest-utilities/default.nix
index cea1553e0bc6..e1b89a562a8f 100644
--- a/pkgs/tools/virtualization/xe-guest-utilities/default.nix
+++ b/pkgs/tools/virtualization/xe-guest-utilities/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "xe-guest-utilities";
-  version = "8.3.1";
+  version = "8.4.0";
 
   src = fetchFromGitHub {
     owner = "xenserver";
     repo = "xe-guest-utilities";
     rev = "v${version}";
-    hash = "sha256-d0WdezcT44ExeHSnoJ3Dn0u/IRlhWreOZPSVw6Q1h/w=";
+    hash = "sha256-LpZx+Km2qRywYK/eFLP3aCDku6K6HC4+MzEODH+8Gvs=";
   };
 
   deleteVendor = true;
diff --git a/pkgs/tools/wayland/hyprland-per-window-layout/default.nix b/pkgs/tools/wayland/hyprland-per-window-layout/default.nix
index b70e4ce77063..81671f46ed5b 100644
--- a/pkgs/tools/wayland/hyprland-per-window-layout/default.nix
+++ b/pkgs/tools/wayland/hyprland-per-window-layout/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "hyprland-per-window-layout";
-  version = "2.5";
+  version = "2.7";
 
   src = fetchFromGitHub {
     owner = "coffebar";
     repo = pname;
     rev = version;
-    hash = "sha256-muEM0jRNZ8osuZ6YSyNPFD/2IuXoNbR28It9cKeJwZ4=";
+    hash = "sha256-Tci3OR7c8hEWAnFsBlSNZYt7znAxPRDhJV+1q7fw6z8=";
   };
 
-  cargoHash = "sha256-g7VCjxrf6qP6KcTNhHzFEFwP4EiIRTnjK6n93FGee54=";
+  cargoHash = "sha256-lVNephJ6UfdM6dPnHs+jHG9A79qHEsrm7tcjcDralnY=";
 
   meta = with lib; {
     description = "Per window keyboard layout (language) for Hyprland wayland compositor";
diff --git a/pkgs/tools/wayland/swayr/default.nix b/pkgs/tools/wayland/swayr/default.nix
index 1e814a915554..0d86bac82139 100644
--- a/pkgs/tools/wayland/swayr/default.nix
+++ b/pkgs/tools/wayland/swayr/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "swayr";
-  version = "0.27.1";
+  version = "0.27.3";
 
   src = fetchFromSourcehut {
     owner = "~tsdh";
     repo = "swayr";
     rev = "swayr-${version}";
-    sha256 = "sha256-0qWrVf7Ou7psczg3vlFMh/QO95yPBUZ/fKQ7w0sE/4I=";
+    sha256 = "sha256-3M4/uk1E5Ly9pifjoDIUEhWf1IZxwRYUC3f3qOsMyRg=";
   };
 
-  cargoHash = "sha256-r8QcLYBKOfUdzwmohUfg4ZrLqQudIfHB/DETO9byrB0=";
+  cargoHash = "sha256-cjrt2jkcNbTabnhlu0P8mBIKbIpCE6L6BYlxi/fIwrg=";
 
   patches = [
     ./icon-paths.patch
diff --git a/pkgs/tools/wayland/way-displays/default.nix b/pkgs/tools/wayland/way-displays/default.nix
index ffd16ac50c08..192e8aecc4fa 100644
--- a/pkgs/tools/wayland/way-displays/default.nix
+++ b/pkgs/tools/wayland/way-displays/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "way-displays";
-  version = "1.9.0";
+  version = "1.10.2";
 
   src = fetchFromGitHub {
     owner = "alex-courtis";
     repo = "way-displays";
     rev = version;
-    sha256 = "sha256-X+/aM+/2pO1FbHGwEiC2w9AxPXHf1EVZkyr+CXtprLk=";
+    sha256 = "sha256-OEsRSmtNDt3MO5MO7Ch9mOHHHraN+9qfcFn2AhXfvpk=";
   };
 
   strictDeps = true;
diff --git a/pkgs/tools/wayland/wl-mirror/default.nix b/pkgs/tools/wayland/wl-mirror/default.nix
index a1640a8a0cef..81be582a25e3 100644
--- a/pkgs/tools/wayland/wl-mirror/default.nix
+++ b/pkgs/tools/wayland/wl-mirror/default.nix
@@ -28,13 +28,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "wl-mirror";
-  version = "0.15.0";
+  version = "0.16.1";
 
   src = fetchFromGitHub {
     owner = "Ferdi265";
     repo = "wl-mirror";
     rev = "v${version}";
-    hash = "sha256-XZfe3UqcnpXuCsM4xulayB4I+jnLkHuW2EEiWWTOxls=";
+    hash = "sha256-VUdmHJfbY1bA1/CeC8PJc+Xtupaz5a/15u4u3YGpxBA=";
   };
 
   strictDeps = true;
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index ed5f2afd2372..b62a6c88843e 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -24,7 +24,7 @@ let
   # to appear while listing all the packages available.
   removeRecurseForDerivations = alias: with lib;
     if alias.recurseForDerivations or false
-    then removeAttrs alias ["recurseForDerivations"]
+    then removeAttrs alias [ "recurseForDerivations" ]
     else alias;
 
   # Disabling distribution prevents top-level aliases for non-recursed package
@@ -41,10 +41,11 @@ let
     else alias;
 
   mapAliases = aliases:
-    lib.mapAttrs (n: alias:
-      removeDistribute
-        (removeRecurseForDerivations
-          (checkInPkgs n alias)))
+    lib.mapAttrs
+      (n: alias:
+        removeDistribute
+          (removeRecurseForDerivations
+            (checkInPkgs n alias)))
       aliases;
 in
 
@@ -59,7 +60,7 @@ mapAliases ({
   a4term = a4; # Added 2023-10-06
   aether = throw "aether has been removed from nixpkgs; upstream unmaintained, security issues"; # Added 2023-10-03
   airfield = throw "airfield has been removed due to being unmaintained"; # Added 2023-05-19
-  alertmanager-bot = throw "alertmanager-bot is broken and has been archived by upstream" ; # Added 2023-07-28
+  alertmanager-bot = throw "alertmanager-bot is broken and has been archived by upstream"; # Added 2023-07-28
   alsa-project = throw "alsa-project was removed and its sub-attributes were promoted to top-level."; # Added 2023-11-12
   alsaLib = alsa-lib; # Added 2021-06-09
   alsaOss = alsa-oss; # Added 2021-06-10
@@ -102,7 +103,8 @@ mapAliases ({
   bitwig-studio2 = throw "bitwig-studio2 has been removed, you can upgrade to 'bitwig-studio'"; # Added 2023-01-03
   blender-with-packages = args:
     lib.warn "blender-with-packages is deprecated in favor of blender.withPackages, e.g. `blender.withPackages(ps: [ ps.foobar ])`"
-    (blender.withPackages (_: args.packages)).overrideAttrs (lib.optionalAttrs (args ? name) { pname = "blender-" + args.name; }); # Added 2023-10-30
+      (blender.withPackages (_: args.packages)).overrideAttrs
+      (lib.optionalAttrs (args ? name) { pname = "blender-" + args.name; }); # Added 2023-10-30
   bluezFull = throw "'bluezFull' has been renamed to/replaced by 'bluez'"; # Converted to throw 2023-09-10
   bookletimposer = throw "bookletimposer has been removed from nixpkgs; upstream unmaintained and broke with pypdf3"; # Added 2024-01-01
   boost168 = throw "boost168 has been deprecated in favor of the latest version"; # Added 2023-06-08
@@ -170,15 +172,16 @@ mapAliases ({
   compton = throw "'compton' has been renamed to/replaced by 'picom'"; # Converted to throw 2023-09-10
   concurrencykit = libck; # Added 2021-03
   connmanPackages = throw "'connmanPackages' was removed and their subpackages/attributes were promoted to top level."; # Added 2023-10-08
+  convoy = throw "'convoy' has been removed from nixpkgs, as it was archived upstream"; # Added 2023-12-27
   cups-kyodialog3 = cups-kyodialog; # Added 2022-11-12
   cvs_fast_export = cvs-fast-export; # Added 2021-06-10
 
   # these are for convenience, not for backward compat and shouldn't expire
   clang6Stdenv = throw "clang6Stdenv has been removed from nixpkgs"; # Added 2024-01-08
   clang7Stdenv = throw "clang7Stdenv has been removed from nixpkgs"; # Added 2023-11-19
-  clang8Stdenv = lowPrio llvmPackages_8.stdenv;
+  clang8Stdenv = throw "clang8Stdenv has been removed from nixpkgs"; # Added 2024-01-24
   clang9Stdenv = lowPrio llvmPackages_9.stdenv;
-  clang10Stdenv = lowPrio llvmPackages_10.stdenv;
+  clang10Stdenv = throw "clang10Stdenv has been removed from nixpkgs"; # Added 2024-01-26
   clang11Stdenv = lowPrio llvmPackages_11.stdenv;
   clang12Stdenv = lowPrio llvmPackages_12.stdenv;
   clang13Stdenv = lowPrio llvmPackages_13.stdenv;
@@ -187,10 +190,13 @@ mapAliases ({
   clang16Stdenv = lowPrio llvmPackages_16.stdenv;
   clang17Stdenv = lowPrio llvmPackages_17.stdenv;
 
-  clang-tools_6  = throw "clang-tools_6 has been removed from nixpkgs"; # Added 2024-01-08
-  clang-tools_7  = throw "clang-tools_7 has been removed from nixpkgs"; # Added 2023-11-19
-  clang_6  = throw "clang_6 has been removed from nixpkgs"; # Added 2024-01-08
-  clang_7  = throw "clang_7 has been removed from nixpkgs"; # Added 2023-11-19
+  clang-tools_6 = throw "clang-tools_6 has been removed from nixpkgs"; # Added 2024-01-08
+  clang-tools_7 = throw "clang-tools_7 has been removed from nixpkgs"; # Added 2023-11-19
+  clang-tools_8  = throw "clang-tools_8 has been removed from nixpkgs"; # Added 2024-01-24
+  clang_6 = throw "clang_6 has been removed from nixpkgs"; # Added 2024-01-08
+  clang_7 = throw "clang_7 has been removed from nixpkgs"; # Added 2023-11-19
+  clang_8  = throw "clang_8 has been removed from nixpkgs"; # Added 2024-01-24
+  clang_10 = throw "clang_10 has been removed from nixpkgs"; # Added 2024-01-26
 
   ### D ###
 
@@ -209,6 +215,9 @@ mapAliases ({
   devserver = throw "'devserver' has been removed in favor of 'miniserve' or other alternatives"; # Added 2023-01-13
   dhcp = throw "dhcp (ISC DHCP) has been removed from nixpkgs, because it reached its end of life"; # Added 2023-04-04
   dnnl = oneDNN; # Added 2020-04-22
+  docker-machine = throw "'docker-machine' has been removed, because the upstream project was archived"; # Added 2023-12-27
+  docker-machine-kvm = throw "'docker-machine-kvm' has been removed, because 'docker-machine' was archived upstream and removed"; # Added 2023-12-27
+  docker-machine-xhyve = throw "'docker-machine-xhyve' has been removed, because 'docker-machine' was archived upstream and removed"; # Added 2023-12-27
   dolphin-emu-beta = dolphin-emu; # Added 2023-02-11
   dolphinEmu = dolphin-emu; # Added 2021-11-10
   dolphinEmuMaster = dolphin-emu-beta; # Added 2021-11-10
@@ -219,12 +228,13 @@ mapAliases ({
   dotnet-sdk_3 = dotnetCorePackages.sdk_3_1; # Added 2020-01-19
   dotnet-sdk_5 = dotnetCorePackages.sdk_5_0; # Added 2020-09-11
   drgeo = throw "'drgeo' has been removed as it is outdated and unmaintained"; # Added 2023-10-15
-  dtv-scan-tables_linuxtv = dtv-scan-tables;  # Added 2023-03-03
-  dtv-scan-tables_tvheadend = dtv-scan-tables;  # Added 2023-03-03
+  dtv-scan-tables_linuxtv = dtv-scan-tables; # Added 2023-03-03
+  dtv-scan-tables_tvheadend = dtv-scan-tables; # Added 2023-03-03
   dylibbundler = macdylibbundler; # Added 2021-04-24
 
   ### E ###
 
+  EBTKS = ebtks; # Added 2024-01-21
   ec2_ami_tools = ec2-ami-tools; # Added 2021-10-08
   ec2_api_tools = ec2-api-tools; # Added 2021-10-08
   ec2-utils = amazon-ec2-utils; # Added 2022-02-01
@@ -339,8 +349,14 @@ mapAliases ({
 
   gnuradio-with-packages = gnuradio3_7.override {
     extraPackages = lib.attrVals [
-      "osmosdr" "ais" "gsm" "nacl" "rds" "limesdr"
-    ] gnuradio3_7Packages;
+      "osmosdr"
+      "ais"
+      "gsm"
+      "nacl"
+      "rds"
+      "limesdr"
+    ]
+      gnuradio3_7Packages;
   }; # Added 2020-10-16
 
   gmock = gtest; # moved from top-level 2021-03-14
@@ -366,6 +382,7 @@ mapAliases ({
   google-chrome-dev = throw "'google-chrome-dev' has been removed due to the lack of maintenance in nixpkgs. Consider using 'google-chrome' instead."; # Added 2023-10-18
   google-gflags = throw "'google-gflags' has been renamed to/replaced by 'gflags'"; # Converted to throw 2023-09-10
   go-thumbnailer = thud; # Added 2023-09-21
+  gocode = throw "'gocode' has been removed as the upstream project was archived. 'gopls' is suggested as replacement"; # Added 2023-12-26
   govendor = throw "'govendor' has been removed as it is no longer maintained upstream, please use Go modules instead"; # Added 2023-12-26
   gometer = throw "gometer has been removed from nixpkgs because goLance stopped offering Linux support"; # Added 2023-02-10
 
@@ -466,7 +483,7 @@ mapAliases ({
   kerberos = libkrb5; # moved from top-level 2021-03-14
   kexectools = kexec-tools; # Added 2021-09-03
   keysmith = libsForQt5.kdeGear.keysmith; # Added 2021-07-14
-  kfctl = throw "kfctl is broken and has been archived by upstream" ; # Added 2023-08-21
+  kfctl = throw "kfctl is broken and has been archived by upstream"; # Added 2023-08-21
   kgx = gnome-console; # Added 2022-02-19
   kibana7 = throw "Kibana 7.x has been removed from nixpkgs as it depends on an end of life Node.js version and received no maintenance in time."; # Added 2023-30-10
   kibana = kibana7;
@@ -513,7 +530,7 @@ mapAliases ({
   librewolf-wayland = librewolf; # Added 2022-11-15
   libseat = seatd; # Added 2021-06-24
   libsigcxx12 = throw "'libsigcxx12' has been removed, please use newer versions"; # Added 2023-10-20
-  libsForQt515 = libsForQt5;  # Added 2022-11-24
+  libsForQt515 = libsForQt5; # Added 2022-11-24
   libtensorflow-bin = libtensorflow; # Added 2022-09-25
   libtorrentRasterbar = libtorrent-rasterbar; # Added 2020-12-20
   libtorrentRasterbar-1_2_x = libtorrent-rasterbar-1_2_x; # Added 2020-12-20
@@ -602,18 +619,26 @@ mapAliases ({
   '';
   linux_latest_hardened = linuxPackages_latest_hardened;
 
-  # Added 2023-11-18
-  linuxPackages_testing_bcachefs = throw "'linuxPackages_testing_bcachefs' has been removed, please use 'linuxPackages_testing', or any other linux kernel with bcachefs support";
-  linux_testing_bcachefs = throw "'linux_testing_bcachefs' has been removed, please use 'linux_testing', or any other linux kernel with bcachefs support";
+  # Added 2023-11-18, modified 2024-01-09
+  linuxPackages_testing_bcachefs = throw "'linuxPackages_testing_bcachefs' has been removed, please use 'linuxPackages_latest', any kernel version at least 6.7, or any other linux kernel with bcachefs support";
+  linux_testing_bcachefs = throw "'linux_testing_bcachefs' has been removed, please use 'linux_latest', any kernel version at least 6.7, or any other linux kernel with bcachefs support";
 
   lld_6 = throw "lld_6 has been removed from nixpkgs"; # Added 2024-01-08
   lld_7 = throw "lld_7 has been removed from nixpkgs"; # Added 2023-11-19
+  lld_8 = throw "lld_8 has been removed from nixpkgs"; # Added 2024-01-24
+  lld_10 = throw "lld_10 has been removed from nixpkgs"; # Added 2024-01-26
   lldb_6 = throw "lldb_6 has been removed from nixpkgs"; # Added 2024-01-08
   lldb_7 = throw "lldb_7 has been removed from nixpkgs"; # Added 2023-11-19
+  lldb_8 = throw "lldb_8 has been removed from nixpkgs"; # Added 2024-01-24
+  lldb_10 = throw "lldb_10 has been removed from nixpkgs"; # Added 2024-01-26
   llvmPackages_6 = throw "llvmPackages_6 has been removed from nixpkgs"; # Added 2024-01-09
   llvmPackages_7 = throw "llvmPackages_7 has been removed from nixpkgs"; # Added 2023-11-19
+  llvmPackages_8 = throw "llvmPackages_8 has been removed from nixpkgs"; # Added 2024-01-24
+  llvmPackages_10 = throw "llvmPackages_10 has been removed from nixpkgs"; # Added 2024-01-26
   llvm_6 = throw "llvm_6 has been removed from nixpkgs"; # Added 2024-01-08
   llvm_7 = throw "llvm_7 has been removed from nixpkgs"; # Added 2023-11-19
+  llvm_8 = throw "llvm_8 has been removed from nixpkgs"; # Added 2024-01-24
+  llvm_10 = throw "llvm_10 has been removed from nixpkgs"; # Added 2024-01-26
 
   lobster-two = google-fonts; # Added 2021-07-22
   luxcorerender = throw "'luxcorerender' has been removed as it's unmaintained and broken in nixpkgs since a while ago"; # Added 2023-06-07
@@ -683,6 +708,7 @@ mapAliases ({
 
   net_snmp = throw "'net_snmp' has been renamed to/replaced by 'net-snmp'"; # Converted to throw 2023-09-10
   netbox_3_3 = throw "netbox 3.3 series has been removed as it was EOL"; # Added 2023-09-02
+  netbox_3_5 = throw "netbox 3.5 series has been removed as it was EOL"; # Added 2024-01-22
   nextcloud25 = throw ''
     Nextcloud v25 has been removed from `nixpkgs` as the support for is dropped
     by upstream in 2023-10. Please upgrade to at least Nextcloud v26 by declaring
@@ -699,12 +725,13 @@ mapAliases ({
   neochat = libsForQt5.kdeGear.neochat; # added 2022-05-10
   nitrokey-udev-rules = libnitrokey; # Added 2023-03-25
   nix-direnv-flakes = nix-direnv;
-  nix-repl = throw ( # Added 2018-08-26
+  nix-repl = throw (
+    # Added 2018-08-26
     "nix-repl has been removed because it's not maintained anymore, " +
     "use `nix repl` instead. Also see https://github.com/NixOS/nixpkgs/pull/44903"
   );
   nix-review = throw "'nix-review' has been renamed to/replaced by 'nixpkgs-review'"; # Converted to throw 2023-09-10
-  nix-template-rpm = throw "'nix-template-rpm' has been removed as it is broken and unmaintained" ; # Added 2023-11-20
+  nix-template-rpm = throw "'nix-template-rpm' has been removed as it is broken and unmaintained"; # Added 2023-11-20
   nixFlakes = nixVersions.stable; # Added 2021-05-21
   nixStable = nixVersions.stable; # Added 2022-01-24
   nixUnstable = nixVersions.unstable; # Added 2022-01-26
@@ -771,6 +798,7 @@ mapAliases ({
   ### P ###
 
   packet-cli = metal-cli; # Added 2021-10-25
+  PageEdit = pageedit; # Added 2024-01-21
   palemoon = throw "palemoon has been dropped due to python2 being EOL and marked insecure. Use 'palemoon-bin' instead"; # Added 2023-05-18
   paperless = paperless-ngx; # Added 2021-06-06
   paperless-ng = paperless-ngx; # Added 2022-04-11
@@ -778,6 +806,7 @@ mapAliases ({
   parity = openethereum; # Added 2020-08-01
   partition-manager = libsForQt5.partitionmanager; # Added 2024-01-08
   pash = throw "'pash' has been removed: abandoned by upstream. Use 'powershell' instead"; # Added 2023-09-16
+  patchelfStable = patchelf; # Added 2024-01-25
   pcsctools = pcsc-tools; # Added 2023-12-07
   pdf2xml = throw "'pdf2xml' was removed: abandoned for years."; # Added 2023-10-22
   peach = asouldocs; # Added 2022-08-28
@@ -824,12 +853,14 @@ mapAliases ({
   pinentry_qt = throw "'pinentry_qt' has been renamed to/replaced by 'pinentry-qt'"; # Converted to throw 2023-09-10
   pinentry_qt5 = pinentry-qt; # Added 2020-02-11
   PlistCpp = plistcpp; # Added 2024-01-05
+  pocket-updater-utility = pupdate; # Added 2024-01-25
   poetry2nix = throw "poetry2nix is now maintained out-of-tree. Please use https://github.com/nix-community/poetry2nix/"; # Added 2023-10-26
   prayer = throw "prayer has been removed from nixpkgs"; # Added 2023-11-09
   privacyidea = throw "privacyidea has been removed from nixpkgs"; # Added 2023-10-31
   probe-rs-cli = throw "probe-rs-cli is now part of the probe-rs package"; # Added 2023-07-03
   processing3 = throw "'processing3' has been renamed to/replaced by 'processing'"; # Converted to throw 2023-09-10
   prometheus-dmarc-exporter = dmarc-metrics-exporter; # added 2022-05-31
+  prometheus-openvpn-exporter = throw "'prometheus-openvpn-exporter' has been removed from nixpkgs, as it was broken and unmaintained"; # Added 2023-12-23
   prometheus-speedtest-exporter = throw "prometheus-speedtest-exporter was removed as unmaintained"; # Added 2023-07-31
   protobuf3_17 = throw "protobuf3_17 does not receive updates anymore and has been removed"; # Added 2023-05-21
   protobuf3_19 = throw "protobuf3_19 does not receive updates anymore and has been removed"; # Added 2023-10-01
@@ -859,7 +890,7 @@ mapAliases ({
   qlandkartegt = throw "'qlandkartegt' has been removed from nixpkgs, as it was broken and unmaintained"; # Added 2023-04-17
   qscintilla = libsForQt5.qscintilla; # Added 2023-09-20
   qscintilla-qt6 = qt6Packages.qscintilla; # Added 2023-09-20
-  qt515 = qt5;  # Added 2022-11-24
+  qt515 = qt5; # Added 2022-11-24
   qt5ct = libsForQt5.qt5ct; # Added 2021-12-27
   qt6ct = qt6Packages.qt6ct; # Added 2023-03-07
   qtcurve = libsForQt5.qtcurve; # Added 2020-11-07
@@ -948,7 +979,7 @@ mapAliases ({
   sgtpuzzles = throw "'sgtpuzzles' has been renamed to 'sgt-puzzles'"; # Added 2023-10-06
   sgtpuzzles-mobile = throw "'sgtpuzzles-mobile' has been renamed to 'sgt-puzzles-mobile'"; # Added 2023-10-06
   inherit (libsForQt5.mauiPackages) shelf; # added 2022-05-17
-  shhgit = throw "shhgit is broken and is no longer maintained. See https://github.com/eth0izzle/shhgit#-shhgit-is-no-longer-maintained-" ; # Added 2023-08-08
+  shhgit = throw "shhgit is broken and is no longer maintained. See https://github.com/eth0izzle/shhgit#-shhgit-is-no-longer-maintained-"; # Added 2023-08-08
   shipyard = jumppad; # Added 2023-06-06
   signumone-ks = throw "signumone-ks has been removed from nixpkgs because the developers stopped offering the binaries"; # Added 2023-08-17
   simplenote = throw "'simplenote' has been removed because it is no longer maintained and insecure"; # Added 2023-10-09
@@ -1000,6 +1031,7 @@ mapAliases ({
   ssm-agent = amazon-ssm-agent; # Added 2023-10-17
   starboard-octant-plugin = throw "starboard-octant-plugin has been dropped due to needing octant which is archived"; # Added 2023-09-29
   steam-run-native = steam-run; # added 2022-02-21
+  StormLib = stormlib; # Added 2024-01-21
   sumneko-lua-language-server = lua-language-server; # Added 2023-02-07
   supertux-editor = throw "'supertux-editor' has been removed, as it was broken and unmaintained"; # Added 2023-12-22
   swift-im = throw "swift-im has been removed as it is unmaintained and depends on deprecated Python 2 / Qt WebKit"; # Added 2023-01-06
@@ -1066,7 +1098,7 @@ mapAliases ({
   vamp = { vampSDK = vamp-plugin-sdk; }; # Added 2020-03-26
   vaapiIntel = intel-vaapi-driver; # Added 2023-05-31
   vaultwarden-vault = vaultwarden.webvault; # Added 2022-12-13
-  vdirsyncerStable  = vdirsyncer; # Added 2020-11-08, see https://github.com/NixOS/nixpkgs/issues/103026#issuecomment-723428168
+  vdirsyncerStable = vdirsyncer; # Added 2020-11-08, see https://github.com/NixOS/nixpkgs/issues/103026#issuecomment-723428168
   ventoy-bin = ventoy; # Added 2023-04-12
   ventoy-bin-full = ventoy-full; # Added 2023-04-12
   ViennaRNA = viennarna; # Added 2023-08-23
@@ -1164,7 +1196,7 @@ mapAliases ({
   });
 
   /* If these are in the scope of all-packages.nix, they cause collisions
-  between mixed versions of qt. See:
+    between mixed versions of qt. See:
   https://github.com/NixOS/nixpkgs/pull/101369 */
 
   inherit (plasma5Packages)
@@ -1187,9 +1219,9 @@ mapAliases ({
     plasma-vault plasma-workspace plasma-workspace-wallpapers polkit-kde-agent
     powerdevil qqc2-breeze-style sddm-kcm skanlite skanpage spectacle
     systemsettings xdg-desktop-portal-kde yakuake zanshin
-  ;
+    ;
 
-  kalendar = merkuro;  # Renamed in 23.08
+  kalendar = merkuro; # Renamed in 23.08
   kfloppy = throw "kfloppy has been removed upstream in KDE Gear 23.08";
 
   inherit (plasma5Packages.thirdParty)
@@ -1200,11 +1232,11 @@ mapAliases ({
     kwin-tiling
     plasma-applet-caffeine-plus
     plasma-applet-virtual-desktop-bar
-  ;
+    ;
 
   inherit (libsForQt5)
     sddm
-  ;
+    ;
 
   inherit (pidginPackages)
     pidgin-indicator
@@ -1232,6 +1264,6 @@ mapAliases ({
     tdlib-purple
     pidgin-opensteamworks
     purple-facebook
-  ;
+    ;
 
 })
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 73c9a39e5247..929c8a1108b7 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -184,6 +184,9 @@ with pkgs;
   autoreconfHook269 = autoreconfHook.override {
     autoconf = autoconf269;
   };
+  autoreconfHook271 = autoreconfHook.override {
+    autoconf = autoconf271;
+  };
 
   autorestic = callPackage ../tools/backup/autorestic { };
 
@@ -645,14 +648,7 @@ with pkgs;
   eclipse-mat = callPackage ../development/tools/eclipse-mat { };
 
   ebpf-verifier = callPackage ../tools/networking/ebpf-verifier {
-    # Replace this to `catch2 = catch2_3` when catch2 3.4.0 is merged
-    # https://github.com/NixOS/nixpkgs/pull/243485
-    catch2.src = fetchFromGitHub {
-      owner = "catchorg";
-      repo = "Catch2";
-      rev = "v3.4.0";
-      hash = "sha256-DqGGfNjKPW9HFJrX9arFHyNYjB61uoL6NabZatTWrr0=";
-    };
+    catch2 = catch2_3;
   };
 
   edgedb = callPackage ../tools/networking/edgedb {
@@ -748,14 +744,7 @@ with pkgs;
     inherit (darwin) DarwinTools;
   };
 
-  rtthost = callPackage ../development/tools/rust/rtthost {
-    inherit (darwin.apple_sdk.frameworks) AppKit;
-    inherit (darwin) DarwinTools;
-  };
-
-  mix2nix = callPackage ../development/tools/mix2nix {
-    elixir = elixir_1_14;
-  };
+  mix2nix = callPackage ../development/tools/mix2nix { };
 
   n98-magerun = callPackage ../development/tools/misc/n98-magerun { };
 
@@ -1115,7 +1104,7 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) CoreServices;
     antlr = antlr4_10;
     boost = boost177; # Configure checks for specific version.
-    icu =  icu69;
+    icu =  icu73;
     protobuf = protobuf_21;
   };
 
@@ -1123,7 +1112,6 @@ with pkgs;
     inherit (darwin) cctools DarwinTools;
     inherit (darwin.apple_sdk.frameworks) CoreServices;
     antlr = antlr4_10;
-    boost = boost177; # Configure checks for specific version.
     icu =  icu69;
     protobuf = protobuf_21;
   };
@@ -1721,8 +1709,6 @@ with pkgs;
 
   audible-cli = callPackage ../tools/misc/audible-cli { };
 
-  audiobookshelf = callPackage ../servers/audiobookshelf { };
-
   auditwheel = with python3Packages; toPythonApplication auditwheel;
 
   amidst = callPackage ../tools/games/minecraft/amidst { };
@@ -1758,8 +1744,6 @@ with pkgs;
 
   bikeshed = python3Packages.callPackage ../applications/misc/bikeshed { };
 
-  bonsai = callPackage ../tools/misc/bonsai { };
-
   cie-middleware-linux = callPackage ../tools/security/cie-middleware-linux { };
 
   cidrgrep = callPackage ../tools/text/cidrgrep { };
@@ -1888,7 +1872,9 @@ with pkgs;
 
   grizzly = callPackage ../tools/misc/grizzly { };
 
-  guestfs-tools = callPackage ../tools/virtualization/guestfs-tools { };
+  guestfs-tools = callPackage ../tools/virtualization/guestfs-tools {
+    ocamlPackages = ocaml-ng.ocamlPackages_4_14;
+  };
 
   fabs = callPackage ../tools/backup/fabs { };
 
@@ -1916,8 +1902,6 @@ with pkgs;
 
   hyperpotamus = callPackage ../tools/misc/hyperpotamus { };
 
-  igir = callPackage ../tools/games/igir { };
-
   immich-cli = callPackage ../tools/misc/immich-cli { };
 
   inherit (callPackages ../tools/networking/ivpn/default.nix {}) ivpn ivpn-service;
@@ -2018,8 +2002,6 @@ with pkgs;
 
   pferd = callPackage ../tools/misc/pferd { };
 
-  pocket-updater-utility = callPackage ../tools/games/pocket-updater-utility { };
-
   polygon-cli = callPackage ../tools/networking/polygon-cli { };
 
   pricehist = python3Packages.callPackage ../tools/misc/pricehist { };
@@ -2092,7 +2074,9 @@ with pkgs;
 
   supercronic = callPackage ../tools/system/supercronic { };
 
-  supermin = callPackage ../tools/virtualization/supermin { };
+  supermin = callPackage ../tools/virtualization/supermin {
+    ocamlPackages = ocaml-ng.ocamlPackages_4_14;
+  };
 
   sx-go = callPackage ../tools/security/sx-go { };
 
@@ -2134,7 +2118,6 @@ with pkgs;
 
   veikk-linux-driver-gui = libsForQt5.callPackage ../tools/misc/veikk-linux-driver-gui { };
 
-  ventoy = callPackage ../tools/cd-dvd/ventoy { };
   ventoy-full = ventoy.override {
     withCryptsetup = true;
     withXfs = true;
@@ -2151,7 +2134,7 @@ with pkgs;
   vprof = with python3Packages; toPythonApplication vprof;
 
   vrc-get = callPackage ../tools/misc/vrc-get {
-    inherit (darwin.apple_sdk.frameworks) Security;
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
   };
 
   vrrtest = callPackage ../tools/video/vrrtest { };
@@ -2705,7 +2688,7 @@ with pkgs;
 
   emulationstation = callPackage ../applications/emulators/emulationstation { };
 
-  fceux = libsForQt5.callPackage ../applications/emulators/fceux { lua = lua5_1; };
+  fceux = libsForQt5.callPackage ../applications/emulators/fceux { };
 
   firebird-emu = libsForQt5.callPackage ../applications/emulators/firebird-emu { };
 
@@ -2848,8 +2831,6 @@ with pkgs;
     withGtk = true;
   };
 
-  stella = callPackage ../applications/emulators/stella { };
-
   tamatool = callPackage ../applications/emulators/tamatool { };
 
   termtekst = callPackage ../applications/emulators/termtekst { };
@@ -3380,6 +3361,8 @@ with pkgs;
 
   authelia = callPackage ../servers/authelia { };
 
+  authentik-outposts = recurseIntoAttrs (callPackages ../by-name/au/authentik/outposts.nix { });
+
   autoflake = with python3.pkgs; toPythonApplication autoflake;
 
   autospotting = callPackage ../applications/misc/autospotting { };
@@ -3835,7 +3818,7 @@ with pkgs;
   flavours = callPackage ../applications/misc/flavours { };
 
   flirc = libsForQt5.callPackage ../applications/video/flirc {
-    readline = readline63;
+    readline = readline70;
   };
 
   flood = callPackage ../applications/networking/p2p/flood { };
@@ -3850,6 +3833,8 @@ with pkgs;
 
   fluffychat = callPackage  ../applications/networking/instant-messengers/fluffychat { };
 
+  fluffychat-web = fluffychat.override { targetFlutterPlatform = "web"; };
+
   fxlinuxprintutil = callPackage ../tools/misc/fxlinuxprintutil { };
 
   gbl = callPackage ../tools/archivers/gbl {
@@ -3929,8 +3914,6 @@ with pkgs;
 
   goperf = callPackage ../development/tools/goperf { };
 
-  graphite-cli = nodePackages.graphite-cli;
-
   gucci = callPackage ../tools/text/gucci { };
 
   guglielmo = libsForQt5.callPackage ../applications/radio/guglielmo { };
@@ -4715,10 +4698,7 @@ with pkgs;
 
   cloudbrute = callPackage ../tools/security/cloudbrute { };
 
-  cloudflared = callPackage ../applications/networking/cloudflared {
-    # https://github.com/cloudflare/cloudflared/issues/1054
-    buildGoModule = buildGo120Module;
-  };
+  cloudflared = callPackage ../applications/networking/cloudflared { };
 
   cloudflare-dyndns = callPackage ../applications/networking/cloudflare-dyndns { };
 
@@ -5204,14 +5184,14 @@ with pkgs;
 
   easyabc = callPackage ../applications/audio/easyabc { };
 
-  easycrypt = callPackage ../applications/science/logic/easycrypt { };
+  easycrypt = callPackage ../applications/science/logic/easycrypt {
+    why3 = pkgs.why3.override { ideSupport = false; };
+  };
 
   easycrypt-runtest = callPackage ../applications/science/logic/easycrypt/runtest.nix { };
 
   easyocr = with python3.pkgs; toPythonApplication easyocr;
 
-  EBTKS = callPackage ../development/libraries/science/biology/EBTKS { };
-
   ecasound = callPackage ../applications/audio/ecasound { };
 
   edac-utils = callPackage ../os-specific/linux/edac-utils { };
@@ -5318,8 +5298,6 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) Cocoa OpenGL;
   };
 
-  fac = callPackage ../development/tools/fac { };
-
   facedetect = callPackage ../tools/graphics/facedetect { };
 
   facter = callPackage ../tools/system/facter { };
@@ -5398,7 +5376,9 @@ with pkgs;
 
   ### TOOLS/TYPESETTING/TEX
 
-  advi = callPackage ../tools/typesetting/tex/advi { };
+  advi = callPackage ../tools/typesetting/tex/advi {
+    ocamlPackages = ocaml-ng.ocamlPackages_4_14;
+  };
 
   auctex = callPackage ../tools/typesetting/tex/auctex { };
 
@@ -5623,9 +5603,7 @@ with pkgs;
 
   gscan2pdf = callPackage ../applications/graphics/gscan2pdf { };
 
-  gsctl = callPackage ../applications/misc/gsctl {
-    buildGoModule = buildGo119Module; # go 1.20 build failure
-  };
+  gsctl = callPackage ../applications/misc/gsctl { };
 
   gsocket = callPackage ../tools/networking/gsocket { };
 
@@ -6448,8 +6426,6 @@ with pkgs;
 
   skeema = callPackage ../tools/system/skeema { };
 
-  syslogng = callPackage ../tools/system/syslog-ng { };
-
   svt-av1 = callPackage ../tools/video/svt-av1 { };
 
   inherit (callPackages ../servers/rainloop { })
@@ -6589,7 +6565,7 @@ with pkgs;
   arpoison = callPackage ../tools/networking/arpoison { };
 
   asciidoc = callPackage ../tools/typesetting/asciidoc {
-    inherit (python3.pkgs) pygments matplotlib numpy aafigure recursivePthLoader;
+    inherit (python3.pkgs) pygments matplotlib numpy aafigure recursive-pth-loader;
     w3m = w3m-batch;
     enableStandardFeatures = false;
   };
@@ -6631,9 +6607,7 @@ with pkgs;
 
   bbe = callPackage ../tools/misc/bbe { };
 
-  bkcrack = callPackage ../tools/security/bkcrack {
-    inherit (llvmPackages) openmp;
-  };
+  bkcrack = callPackage ../tools/security/bkcrack { };
 
   bdsync = callPackage ../tools/backup/bdsync { };
 
@@ -6818,8 +6792,14 @@ with pkgs;
 
   libceph = ceph.lib;
   inherit (callPackages ../tools/filesystems/ceph {
-    lua = lua5_4;
-    fmt = fmt_8;
+    lua = lua5_4; # Ceph currently requires >= 5.3
+
+    # To see which `fmt` version Ceph upstream recommends, check its `src/fmt` submodule.
+    #
+    # Ceph does not currently build with `fmt_10`; see https://github.com/NixOS/nixpkgs/issues/281027#issuecomment-1899128557
+    # If we want to switch for that before upstream fixes it, use this patch:
+    # https://github.com/NixOS/nixpkgs/pull/281858#issuecomment-1899648638
+    fmt = fmt_9;
   })
     ceph
     ceph-client;
@@ -6880,7 +6860,7 @@ with pkgs;
 
   cirrusgo = callPackage ../tools/security/cirrusgo { };
 
-  inherit (callPackages ../applications/networking/remote/citrix-workspace { })
+  inherit (callPackage ../applications/networking/remote/citrix-workspace { })
     citrix_workspace_23_02_0
     citrix_workspace_23_07_0
     citrix_workspace_23_09_0
@@ -7072,10 +7052,7 @@ with pkgs;
 
     m17n = callPackage ../tools/inputmethods/ibus-engines/ibus-m17n { };
 
-    mozc = callPackage ../tools/inputmethods/ibus-engines/ibus-mozc {
-      stdenv = clangStdenv;
-      protobuf = pkgs.protobuf_21.overrideDerivation (_: { stdenv = clangStdenv; });
-    };
+    mozc = callPackage ../tools/inputmethods/ibus-engines/ibus-mozc { };
 
     openbangla-keyboard = libsForQt5.callPackage ../applications/misc/openbangla-keyboard { withIbusSupport = true; };
 
@@ -7260,8 +7237,6 @@ with pkgs;
 
   convmv = callPackage ../tools/misc/convmv { };
 
-  convoy = callPackage ../tools/filesystems/convoy { };
-
   cpcfs = callPackage ../tools/filesystems/cpcfs { };
 
   coreutils =  callPackage ../tools/misc/coreutils { };
@@ -7341,6 +7316,7 @@ with pkgs;
     gsaslSupport = true;
     rtmpSupport = true;
     pslSupport = true;
+    websocketSupport = true;
   };
 
   curlHTTP3 = curl.override {
@@ -7812,7 +7788,11 @@ with pkgs;
 
   stratis-cli = callPackage ../tools/filesystems/stratis-cli { };
 
-  strawberry = libsForQt5.callPackage ../applications/audio/strawberry { };
+  strawberry-qt5 = libsForQt5.callPackage ../applications/audio/strawberry { };
+
+  strawberry-qt6 = qt6Packages.callPackage ../applications/audio/strawberry { };
+
+  strawberry = strawberry-qt5;
 
   schleuder = callPackage ../tools/security/schleuder { };
 
@@ -7954,7 +7934,7 @@ with pkgs;
 
   # The latest version used by elasticsearch, logstash, kibana and the the beats from elastic.
   # When updating make sure to update all plugins or they will break!
-  elk7Version = "7.17.10";
+  elk7Version = "7.17.16";
 
   elasticsearch7 = callPackage ../servers/search/elasticsearch/7.x.nix {
     util-linux = util-linuxMinimal;
@@ -8474,7 +8454,7 @@ with pkgs;
   })
     garage
       garage_0_8 garage_0_9
-      garage_0_8_4 garage_0_9_0;
+      garage_0_8_5 garage_0_9_1;
 
   garmintools = callPackage ../development/libraries/garmintools { };
 
@@ -8808,7 +8788,7 @@ with pkgs;
   goreplay = callPackage ../tools/networking/goreplay { };
 
   gost = callPackage ../tools/networking/gost {
-    buildGoModule = buildGo119Module; # go 1.20 build failure
+    buildGoModule = buildGo120Module; # go 1.21 build failure
   };
 
   gource = callPackage ../applications/version-management/gource { };
@@ -9977,6 +9957,7 @@ with pkgs;
 
   liquidsoap = callPackage ../tools/audio/liquidsoap/full.nix {
     ffmpeg = ffmpeg-full;
+    ocamlPackages = ocaml-ng.ocamlPackages_4_14;
   };
 
   linuxwave = callPackage ../tools/audio/linuxwave { };
@@ -10186,7 +10167,7 @@ with pkgs;
   };
 
   meilisearch = callPackage ../servers/search/meilisearch {
-    inherit (darwin.apple_sdk_11_0.frameworks) Security;
+    inherit (darwin.apple_sdk_11_0.frameworks) Security SystemConfiguration;
   };
 
   memtester = callPackage ../tools/system/memtester { };
@@ -10829,7 +10810,7 @@ with pkgs;
 
   memtest86plus = callPackage ../tools/misc/memtest86+ { };
 
-  mbutil = python3Packages.callPackage ../applications/misc/mbutil { };
+  mbutil = python310Packages.callPackage ../applications/misc/mbutil { };
 
   mcabber = callPackage ../applications/networking/instant-messengers/mcabber { };
 
@@ -10960,7 +10941,7 @@ with pkgs;
   monocraft = callPackage ../data/fonts/monocraft { };
 
   monolith = callPackage ../tools/backup/monolith {
-    inherit (darwin.apple_sdk.frameworks) Security;
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
   };
 
   moreutils = callPackage ../tools/misc/moreutils {
@@ -11136,12 +11117,16 @@ with pkgs;
 
   netbootxyz-efi = callPackage ../tools/misc/netbootxyz-efi { };
 
-  inherit (callPackages ../servers/web-apps/netbox { })
-    netbox netbox_3_5 netbox_3_6;
+  inherit (callPackage ../servers/web-apps/netbox { })
+    netbox netbox_3_6 netbox_3_7;
 
   netbox2netshot = callPackage ../tools/admin/netbox2netshot { };
 
-  netcat = libressl.nc;
+  netcat = libressl.nc.overrideAttrs (old: {
+    meta = old.meta // {
+      mainProgram = "nc";
+    };
+  });
 
   netcat-gnu = callPackage ../tools/networking/netcat { };
 
@@ -11614,6 +11599,8 @@ with pkgs;
 
   openresolv = callPackage ../tools/networking/openresolv { };
 
+  openrefine = callPackage ../applications/science/misc/openrefine { jdk = jdk17; };
+
   openrgb = libsForQt5.callPackage ../applications/misc/openrgb { };
 
   openrgb-with-all-plugins = openrgb.withPlugins [
@@ -11671,8 +11658,7 @@ with pkgs;
 
   opentsdb = callPackage ../tools/misc/opentsdb { };
 
-  inherit (callPackages ../tools/networking/openvpn {})
-    openvpn;
+  openvpn = callPackage ../tools/networking/openvpn {};
 
   openvpn3 = callPackage ../tools/networking/openvpn3 { };
 
@@ -11752,6 +11738,7 @@ with pkgs;
       then (overrideLibcxx llvmPackages_15.stdenv).cc
       else clang_15;
     llvm = llvm_15;
+    openexr = openexr_3;
   };
 
   osqp = callPackage ../development/libraries/science/math/osqp { };
@@ -11824,7 +11811,9 @@ with pkgs;
 
   page = callPackage ../tools/misc/page { };
 
-  PageEdit = libsForQt5.callPackage ../applications/office/PageEdit { };
+  pageedit = libsForQt5.callPackage ../applications/office/PageEdit {
+    stdenv = if stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else stdenv;
+  };
 
   pagefind = libsForQt5.callPackage ../applications/misc/pagefind { };
 
@@ -12142,7 +12131,7 @@ with pkgs;
 
   plujain-ramp = callPackage ../applications/audio/plujain-ramp { };
 
-  inherit (callPackages ../servers/plik { })
+  inherit (callPackage ../servers/plik { })
     plik plikd;
 
   plex = callPackage ../servers/plex { };
@@ -12176,8 +12165,6 @@ with pkgs;
 
   plowshare = callPackage ../tools/misc/plowshare { };
 
-  pm2 = nodePackages.pm2;
-
   pmenu = callPackage ../tools/X11/pmenu { };
 
   pngcheck = callPackage ../tools/graphics/pngcheck { };
@@ -13333,8 +13320,6 @@ with pkgs;
 
   snmpcheck = callPackage ../tools/networking/snmpcheck { };
 
-  sniffglue = callPackage ../tools/networking/sniffglue { };
-
   snobol4 = callPackage ../development/interpreters/snobol4 { };
 
   snort = callPackage ../applications/networking/ids/snort { };
@@ -14605,9 +14590,7 @@ with pkgs;
 
   woodpecker-plugin-git = callPackage ../development/tools/continuous-integration/woodpecker-plugin-git { };
 
-  woodpecker-server = callPackage ../development/tools/continuous-integration/woodpecker/server.nix {
-    woodpecker-frontend = callPackage ../development/tools/continuous-integration/woodpecker/frontend.nix { };
-  };
+  woodpecker-server = callPackage ../development/tools/continuous-integration/woodpecker/server.nix { };
 
   woof = callPackage ../tools/misc/woof { };
 
@@ -15152,8 +15135,6 @@ with pkgs;
     haskellPackages = haskell.packages.ghc810;
   };
 
-  yj = callPackage ../development/tools/yj { };
-
   yaydl = callPackage ../tools/video/yaydl {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -15515,7 +15496,7 @@ with pkgs;
   asciigraph = callPackage ../tools/text/asciigraph { };
 
   autocorrect = callPackage ../tools/text/autocorrect {
-    inherit (darwin.apple_sdk.frameworks) Security;
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
   };
 
   as31 = callPackage ../development/compilers/as31 { };
@@ -15610,9 +15591,7 @@ with pkgs;
   };
 
   clang = llvmPackages.clang;
-  clang_8  = llvmPackages_8.clang;
   clang_9  = llvmPackages_9.clang;
-  clang_10 = llvmPackages_10.clang;
   clang_11 = llvmPackages_11.clang;
   clang_12 = llvmPackages_12.clang;
   clang_13 = llvmPackages_13.clang;
@@ -15623,18 +15602,10 @@ with pkgs;
 
   clang-tools = callPackage ../development/tools/clang-tools { };
 
-  clang-tools_8 = callPackage ../development/tools/clang-tools {
-    llvmPackages = llvmPackages_8;
-  };
-
   clang-tools_9 = callPackage ../development/tools/clang-tools {
     llvmPackages = llvmPackages_9;
   };
 
-  clang-tools_10 = callPackage ../development/tools/clang-tools {
-    llvmPackages = llvmPackages_10;
-  };
-
   clang-tools_11 = callPackage ../development/tools/clang-tools {
     llvmPackages = llvmPackages_11;
   };
@@ -15688,7 +15659,9 @@ with pkgs;
 
   coffeescript = callPackage ../development/compilers/coffeescript { };
 
-  comby = callPackage ../development/tools/comby { };
+  comby = callPackage ../development/tools/comby {
+    ocamlPackages = ocaml-ng.ocamlPackages_4_14;
+  };
 
   inherit (coqPackages_8_17) compcert;
 
@@ -15815,7 +15788,6 @@ with pkgs;
   default-gcc-version =
     if (with stdenv.targetPlatform; isVc4 || libc == "relibc") then 6
     else if stdenv.buildPlatform.isDarwin  then 12  # unable to test
-    else if stdenv.buildPlatform.isAarch64 then 12  # unable to test
     else 13;
   gcc = pkgs.${"gcc${toString default-gcc-version}"};
   gccFun = callPackage ../development/compilers/gcc;
@@ -16333,6 +16305,7 @@ with pkgs;
   fsharp = callPackage ../development/compilers/fsharp { };
 
   fstar = callPackage ../development/compilers/fstar {
+    ocamlPackages = ocaml-ng.ocamlPackages_4_14;
     z3 = z3_4_8_5;
   };
 
@@ -16399,7 +16372,9 @@ with pkgs;
     inherit (emacs.pkgs.melpaStablePackages) irony;
   };
 
-  heptagon = callPackage ../development/compilers/heptagon { };
+  heptagon = callPackage ../development/compilers/heptagon {
+    ocamlPackages = ocaml-ng.ocamlPackages_4_14;
+  };
 
   holo-build = callPackage ../tools/package-management/holo-build { };
 
@@ -16580,9 +16555,7 @@ with pkgs;
   };
 
   lld = llvmPackages.lld;
-  lld_8 = llvmPackages_8.lld;
   lld_9 = llvmPackages_9.lld;
-  lld_10 = llvmPackages_10.lld;
   lld_11 = llvmPackages_11.lld;
   lld_12 = llvmPackages_12.lld;
   lld_13 = llvmPackages_13.lld;
@@ -16592,9 +16565,7 @@ with pkgs;
   lld_17 = llvmPackages_17.lld;
 
   lldb = llvmPackages.lldb;
-  lldb_8 = llvmPackages_8.lldb;
   lldb_9 = llvmPackages_9.lldb;
-  lldb_10 = llvmPackages_10.lldb;
   lldb_11 = llvmPackages_11.lldb;
   lldb_12 = llvmPackages_12.lldb;
   lldb_13 = llvmPackages_13.lldb;
@@ -16604,9 +16575,7 @@ with pkgs;
   lldb_17 = llvmPackages_17.lldb;
 
   llvm = llvmPackages.llvm;
-  llvm_8  = llvmPackages_8.llvm;
   llvm_9  = llvmPackages_9.llvm;
-  llvm_10 = llvmPackages_10.llvm;
   llvm_11 = llvmPackages_11.llvm;
   llvm_12 = llvmPackages_12.llvm;
   llvm_13 = llvmPackages_13.llvm;
@@ -16627,7 +16596,8 @@ with pkgs;
       else if platform.isAndroid then 12
       else if platform.isLinux then 16
       else if platform.isWasm then 16
-      else 14;
+      # For unknown systems, assume the latest version is required.
+      else 17;
     # We take the "max of the mins". Why? Since those are lower bounds of the
     # supported version set, this is like intersecting those sets and then
     # taking the min bound of that.
@@ -16635,14 +16605,6 @@ with pkgs;
       stdenv.targetPlatform));
   in pkgs.${"llvmPackages_${minSupported}"};
 
-  llvmPackages_8 = recurseIntoAttrs (callPackage ../development/compilers/llvm/8 {
-    inherit (stdenvAdapters) overrideCC;
-    buildLlvmTools = buildPackages.llvmPackages_8.tools;
-    targetLlvm = targetPackages.llvmPackages_8.llvm or llvmPackages_8.llvm;
-    targetLlvmLibraries = targetPackages.llvmPackages_8.libraries or llvmPackages_8.libraries;
-    stdenv = if stdenv.cc.cc.isGNU or false then gcc12Stdenv else stdenv; # does not build with gcc13
-  });
-
   llvmPackages_9 = recurseIntoAttrs (callPackage ../development/compilers/llvm/9 {
     inherit (stdenvAdapters) overrideCC;
     buildLlvmTools = buildPackages.llvmPackages_9.tools;
@@ -16651,19 +16613,12 @@ with pkgs;
     stdenv = if stdenv.cc.cc.isGNU or false then gcc12Stdenv else stdenv; # does not build with gcc13
   });
 
-  llvmPackages_10 = recurseIntoAttrs (callPackage ../development/compilers/llvm/10 {
-    inherit (stdenvAdapters) overrideCC;
-    buildLlvmTools = buildPackages.llvmPackages_10.tools;
-    targetLlvm = targetPackages.llvmPackages_10.llvm or llvmPackages_10.llvm;
-    targetLlvmLibraries = targetPackages.llvmPackages_10.libraries or llvmPackages_10.libraries;
-    stdenv = if stdenv.cc.cc.isGNU or false then gcc12Stdenv else stdenv; # does not build with gcc13
-  });
-
   llvmPackages_11 = recurseIntoAttrs (callPackage ../development/compilers/llvm/11 ({
     inherit (stdenvAdapters) overrideCC;
     buildLlvmTools = buildPackages.llvmPackages_11.tools;
     targetLlvmLibraries = targetPackages.llvmPackages_11.libraries or llvmPackages_11.libraries;
     targetLlvm = targetPackages.llvmPackages_11.llvm or llvmPackages_11.llvm;
+    stdenv = if stdenv.cc.cc.isGNU or false then gcc12Stdenv else stdenv; # does not build with gcc13
   }));
 
   llvmPackages_12 = recurseIntoAttrs (callPackage ../development/compilers/llvm/12 ({
@@ -16671,6 +16626,7 @@ with pkgs;
     buildLlvmTools = buildPackages.llvmPackages_12.tools;
     targetLlvmLibraries = targetPackages.llvmPackages_12.libraries or llvmPackages_12.libraries;
     targetLlvm = targetPackages.llvmPackages_12.llvm or llvmPackages_12.llvm;
+    stdenv = if stdenv.cc.cc.isGNU or false then gcc12Stdenv else stdenv; # .libcxxabi does not build with gcc13
   }));
 
   llvmPackages_13 = recurseIntoAttrs (callPackage ../development/compilers/llvm/13 ({
@@ -16796,9 +16752,7 @@ with pkgs;
 
   neko = callPackage ../development/compilers/neko { };
 
-  nextpnr = callPackage ../development/compilers/nextpnr { };
-
-  nextpnrWithGui = libsForQt5.callPackage ../development/compilers/nextpnr {
+  nextpnrWithGui = libsForQt5.callPackage ../by-name/ne/nextpnr/package.nix {
     enableGui = true;
     inherit (darwin.apple_sdk.frameworks) OpenGL;
   };
@@ -16888,7 +16842,9 @@ with pkgs;
 
   rgbds = callPackage ../development/compilers/rgbds { };
 
-  rml = callPackage ../development/compilers/rml { };
+  rml = callPackage ../development/compilers/rml {
+    ocamlPackages = ocaml-ng.ocamlPackages_4_14;
+  };
 
   rgxg = callPackage ../tools/text/rgxg { };
 
@@ -17298,7 +17254,7 @@ with pkgs;
   };
 
   teyjus = callPackage ../development/compilers/teyjus {
-    inherit (ocamlPackages) buildDunePackage;
+    inherit (ocaml-ng.ocamlPackages_4_14) buildDunePackage;
   };
 
   thrust = callPackage ../development/tools/thrust {
@@ -17627,9 +17583,7 @@ with pkgs;
 
   ivy = callPackage ../development/interpreters/ivy { };
 
-  j = callPackage ../development/interpreters/j {
-    stdenv = clangStdenv;
-  };
+  j = callPackage ../development/interpreters/j { };
 
   jacinda = haskell.lib.compose.justStaticExecutables haskellPackages.jacinda;
 
@@ -17944,9 +17898,8 @@ with pkgs;
   racket-minimal = callPackage ../development/interpreters/racket/minimal.nix { };
 
   rakudo = callPackage ../development/interpreters/rakudo { };
-  moarvm = callPackage ../development/interpreters/rakudo/moarvm.nix {
-    inherit (darwin) cctools-port;
-    inherit (darwin.apple_sdk.frameworks) CoreServices ApplicationServices;
+  moarvm = darwin.apple_sdk_11_0.callPackage ../development/interpreters/rakudo/moarvm.nix {
+    inherit (darwin.apple_sdk_11_0.frameworks) CoreServices ApplicationServices;
   };
   nqp = callPackage  ../development/interpreters/rakudo/nqp.nix { };
   zef = callPackage ../development/interpreters/rakudo/zef.nix { };
@@ -18023,7 +17976,9 @@ with pkgs;
 
   sparkleshare = callPackage ../applications/version-management/sparkleshare { };
 
-  spark2014 = callPackage ../development/libraries/ada/spark2014 { };
+  spark2014 = callPackage ../development/libraries/ada/spark2014 {
+    ocamlPackages = ocaml-ng.ocamlPackages_4_14;
+  };
 
   spidermonkey_78 = callPackage ../development/interpreters/spidermonkey/78.nix {
     inherit (darwin) libobjc;
@@ -18040,8 +17995,6 @@ with pkgs;
 
   ssm-session-manager-plugin = callPackage ../applications/networking/cluster/ssm-session-manager-plugin { };
 
-  starlark = callPackage ../development/interpreters/starlark { };
-
   starlark-rust = callPackage ../development/interpreters/starlark-rust { };
 
   supercollider = libsForQt5.callPackage ../development/interpreters/supercollider {
@@ -18192,9 +18145,7 @@ with pkgs;
 
   publii = callPackage ../development/web/publii {};
 
-  umr = callPackage ../development/misc/umr {
-    llvmPackages = llvmPackages_14;
-  };
+  umr = callPackage ../development/misc/umr { };
 
   refurb = callPackage ../development/tools/refurb { };
 
@@ -18314,8 +18265,6 @@ with pkgs;
 
   javascript-typescript-langserver = callPackage ../development/tools/language-servers/javascript-typescript-langserver { };
 
-  jdt-language-server = callPackage ../development/tools/language-servers/jdt-language-server { };
-
   jsonnet-language-server = callPackage ../development/tools/language-servers/jsonnet-language-server { };
 
   kotlin-language-server = callPackage ../development/tools/language-servers/kotlin-language-server { };
@@ -18466,14 +18415,13 @@ with pkgs;
 
   autobuild = callPackage ../development/tools/misc/autobuild { };
 
-  autoconf = autoconf271;
-
   autoconf-archive = callPackage ../development/tools/misc/autoconf-archive { };
 
+  autoconf = callPackage ../development/tools/misc/autoconf { };
   autoconf213 = callPackage ../development/tools/misc/autoconf/2.13.nix { };
   autoconf264 = callPackage ../development/tools/misc/autoconf/2.64.nix { };
   autoconf269 = callPackage ../development/tools/misc/autoconf/2.69.nix { };
-  autoconf271 = callPackage ../development/tools/misc/autoconf { };
+  autoconf271 = callPackage ../development/tools/misc/autoconf/2.71.nix { };
 
   acr  = callPackage ../development/tools/misc/acr { };
 
@@ -18879,7 +18827,9 @@ with pkgs;
   # Does not actually depend on Qt 5
   inherit (plasma5Packages) extra-cmake-modules;
 
-  coccinelle = callPackage ../development/tools/misc/coccinelle { };
+  coccinelle = callPackage ../development/tools/misc/coccinelle {
+    ocamlPackages = ocaml-ng.ocamlPackages_4_14;
+  };
 
   cpptest = callPackage ../development/libraries/cpptest { };
 
@@ -19147,6 +19097,7 @@ with pkgs;
 
   flow = callPackage ../development/tools/analysis/flow {
     inherit (darwin.apple_sdk.frameworks) CoreServices;
+    ocamlPackages = ocaml-ng.ocamlPackages_4_14;
   };
 
   fly = callPackage ../development/tools/continuous-integration/fly { };
@@ -19585,7 +19536,9 @@ with pkgs;
   minify = callPackage ../development/web/minify { };
 
   minizinc = callPackage ../development/tools/minizinc { };
-  minizincide = libsForQt5.callPackage ../development/tools/minizinc/ide.nix { };
+  minizincide = qt6Packages.callPackage ../development/tools/minizinc/ide.nix {
+    inherit (darwin.apple_sdk_11_0.frameworks) Cocoa;
+  };
 
   mkcert = callPackage ../development/tools/misc/mkcert { };
 
@@ -19724,14 +19677,7 @@ with pkgs;
 
   parse-cli-bin = callPackage ../development/tools/parse-cli-bin { };
 
-  patchelf = if with stdenv.buildPlatform; isAarch64 && isMusl then
-    patchelf_0_13
-  else
-    patchelfStable;
-  patchelf_0_13 = callPackage ../development/tools/misc/patchelf/0.13.nix {
-    patchelf = patchelfStable;
-  };
-  patchelfStable = callPackage ../development/tools/misc/patchelf { };
+  patchelf = callPackage ../development/tools/misc/patchelf { };
 
   patchelfUnstable = lowPrio (callPackage ../development/tools/misc/patchelf/unstable.nix { });
 
@@ -20033,10 +19979,6 @@ with pkgs;
 
   sigrok-cli = callPackage ../development/tools/sigrok-cli { };
 
-  silicon = callPackage ../tools/misc/silicon {
-    inherit (darwin.apple_sdk.frameworks) AppKit CoreText Security;
-  };
-
   simpleTpmPk11 = callPackage ../tools/security/simple-tpm-pk11 { };
 
   slimerjs = callPackage ../development/tools/slimerjs { };
@@ -20448,6 +20390,12 @@ with pkgs;
       then overrideSDK stdenv { darwinMinVersion = "10.13"; }
       else stdenv;
   };
+  abseil-cpp_202401 = callPackage ../development/libraries/abseil-cpp/202401.nix {
+    # If abseil-cpp doesn’t have a deployment target of 10.13+, arrow-cpp crashes in libgrpc.dylib.
+    stdenv = if stdenv.isDarwin && stdenv.isx86_64
+      then overrideSDK stdenv { darwinMinVersion = "10.13"; }
+      else stdenv;
+  };
   abseil-cpp = abseil-cpp_202301;
 
   accountsservice = callPackage ../development/libraries/accountsservice { };
@@ -20643,8 +20591,6 @@ with pkgs;
     else callPackage ../os-specific/linux/bionic-prebuilt { };
 
 
-  bobcat = pin-to-gcc12-if-gcc13 (callPackage ../development/libraries/bobcat { });
-
   boehmgc = callPackage ../development/libraries/boehm-gc { };
 
   boolstuff = callPackage ../development/libraries/boolstuff { };
@@ -20927,7 +20873,7 @@ with pkgs;
 
   crocoddyl = callPackage ../development/libraries/crocoddyl { };
 
-  crossguid = pin-to-gcc12-if-gcc13 (callPackage ../development/libraries/crossguid { });
+  crossguid = callPackage ../development/libraries/crossguid { };
 
   cryptopp = callPackage ../development/libraries/crypto++ { };
 
@@ -22438,7 +22384,7 @@ with pkgs;
   libbacktrace = callPackage ../development/libraries/libbacktrace { };
 
   libbap = callPackage ../development/libraries/libbap {
-    inherit (ocaml-ng.ocamlPackages) bap ocaml findlib ctypes;
+    inherit (ocaml-ng.ocamlPackages_4_14) bap ocaml findlib ctypes;
   };
 
   libbaseencode = callPackage ../development/libraries/libbaseencode { };
@@ -22702,11 +22648,9 @@ with pkgs;
 
   libfido2 = callPackage ../development/libraries/libfido2 {};
 
-  libfilezilla =
-    pin-to-gcc12-if-gcc13
-      (darwin.apple_sdk_11_0.callPackage ../development/libraries/libfilezilla {
-        inherit (darwin.apple_sdk_11_0.frameworks) ApplicationServices;
-      });
+  libfilezilla = darwin.apple_sdk_11_0.callPackage ../development/libraries/libfilezilla {
+    inherit (darwin.apple_sdk_11_0.frameworks) ApplicationServices;
+  };
 
   libfishsound = callPackage ../development/libraries/libfishsound { };
 
@@ -22912,6 +22856,7 @@ with pkgs;
   libguestfs-appliance = callPackage ../development/libraries/libguestfs/appliance.nix { };
   libguestfs = callPackage ../development/libraries/libguestfs {
     autoreconfHook = buildPackages.autoreconfHook264;
+    ocamlPackages = ocaml-ng.ocamlPackages_4_14;
   };
   libguestfs-with-appliance = libguestfs.override {
     appliance = libguestfs-appliance;
@@ -23815,8 +23760,6 @@ with pkgs;
 
   litehtml = callPackage ../development/libraries/litehtml { };
 
-  live555 = callPackage ../development/libraries/live555 { };
-
   llhttp = callPackage ../development/libraries/llhttp { };
 
   log4cpp = callPackage ../development/libraries/log4cpp { };
@@ -23857,8 +23800,6 @@ with pkgs;
     };
   };
 
-  manticoresearch = callPackage ../servers/search/manticoresearch { };
-
   marisa = callPackage ../development/libraries/marisa { };
 
   mathgl = callPackage ../development/libraries/mathgl { };
@@ -23874,8 +23815,6 @@ with pkgs;
 
   mdctags = callPackage ../development/tools/misc/mdctags { };
 
-  md4c = callPackage ../development/libraries/md4c { };
-
   mdds = callPackage ../development/libraries/mdds { };
 
   mediastreamer = libsForQt5.callPackage ../development/libraries/mediastreamer { };
@@ -24061,10 +24000,6 @@ with pkgs;
 
   mujoco = callPackage ../applications/science/robotics/mujoco { };
 
-  muparser = callPackage ../development/libraries/muparser {
-    inherit (darwin.stubs) setfile;
-  };
-
   muparserx = callPackage ../development/libraries/muparserx { };
 
   mutest = callPackage ../development/libraries/mutest { };
@@ -24920,9 +24855,9 @@ with pkgs;
 
   sdrplay = callPackage ../applications/radio/sdrplay { };
 
-  sdrpp = pin-to-gcc12-if-gcc13 (callPackage ../applications/radio/sdrpp {
+  sdrpp = callPackage ../applications/radio/sdrpp {
     inherit (darwin.apple_sdk.frameworks) AppKit;
-  });
+  };
 
   sigdigger = libsForQt5.callPackage ../applications/radio/sigdigger { };
 
@@ -25176,8 +25111,6 @@ with pkgs;
 
   stegsolve = callPackage ../tools/graphics/stegsolve { };
 
-  StormLib = callPackage ../development/libraries/StormLib { };
-
   stxxl = callPackage ../development/libraries/stxxl { };
 
   sv-lang = callPackage ../applications/science/electronics/sv-lang { };
@@ -25912,6 +25845,17 @@ with pkgs;
     go = buildPackages.go_1_21;
   };
 
+  # requires a newer Apple SDK
+  go_1_22 = darwin.apple_sdk_11_0.callPackage ../development/compilers/go/1.22.nix {
+    inherit (darwin.apple_sdk_11_0.frameworks) Foundation Security;
+  };
+  buildGo122Module = darwin.apple_sdk_11_0.callPackage ../build-support/go/module.nix {
+    go = buildPackages.go_1_22;
+  };
+  buildGo122Package = darwin.apple_sdk_11_0.callPackage ../build-support/go/package.nix {
+    go = buildPackages.go_1_22;
+  };
+
   leaps = callPackage ../development/tools/leaps { };
 
   ### DEVELOPMENT / JAVA MODULES
@@ -26028,17 +25972,17 @@ with pkgs;
   };
 
   # Steel Bank Common Lisp
-  sbcl_2_3_11 = wrapLisp {
-    pkg = callPackage ../development/compilers/sbcl/2.x.nix { version = "2.3.11"; };
+  sbcl_2_4_0 = wrapLisp {
+    pkg = callPackage ../by-name/sb/sbcl/package.nix { version = "2.4.0"; };
     faslExt = "fasl";
     flags = [ "--dynamic-space-size" "3000" ];
   };
-  sbcl_2_4_0 = wrapLisp {
-    pkg = callPackage ../development/compilers/sbcl/2.x.nix { version = "2.4.0"; };
+  sbcl_2_4_1 = wrapLisp {
+    pkg = callPackage ../by-name/sb/sbcl/package.nix { version = "2.4.1"; };
     faslExt = "fasl";
     flags = [ "--dynamic-space-size" "3000" ];
   };
-  sbcl = sbcl_2_4_0;
+  sbcl = sbcl_2_4_1;
 
   sbclPackages = recurseIntoAttrs sbcl.pkgs;
 
@@ -26649,8 +26593,6 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) AudioToolbox AudioUnit;
   }) mpd mpd-small mpdWithFeatures;
 
-  libmpdclient = callPackage ../servers/mpd/libmpdclient.nix { };
-
   mpdscribble = callPackage ../tools/misc/mpdscribble { };
 
   mtprotoproxy = python3.pkgs.callPackage ../servers/mtprotoproxy { };
@@ -27149,7 +27091,6 @@ with pkgs;
   };
   prometheus-nut-exporter = callPackage ../servers/monitoring/prometheus/nut-exporter.nix { };
   prometheus-openldap-exporter = callPackage ../servers/monitoring/prometheus/openldap-exporter.nix { } ;
-  prometheus-openvpn-exporter = callPackage ../servers/monitoring/prometheus/openvpn-exporter.nix { };
   prometheus-pgbouncer-exporter = callPackage ../servers/monitoring/prometheus/pgbouncer-exporter.nix { };
   prometheus-php-fpm-exporter = callPackage ../servers/monitoring/prometheus/php-fpm-exporter.nix { };
   prometheus-pihole-exporter = callPackage ../servers/monitoring/prometheus/pihole-exporter.nix {  };
@@ -27506,8 +27447,6 @@ with pkgs;
 
   yaws = callPackage ../servers/http/yaws { };
 
-  youtrack = callPackage ../servers/jetbrains/youtrack.nix { };
-
   zabbixFor = version: rec {
     agent = (callPackages ../servers/monitoring/zabbix/agent.nix {}).${version};
     proxy-mysql = (callPackages ../servers/monitoring/zabbix/proxy.nix { mysqlSupport = true; }).${version};
@@ -27650,14 +27589,13 @@ with pkgs;
 
   blktrace = callPackage ../os-specific/linux/blktrace { };
 
-  bluez5 = callPackage ../os-specific/linux/bluez { };
+  bluez5 = bluez;
+  bluez5-experimental = bluez-experimental;
 
-  bluez5-experimental = callPackage ../os-specific/linux/bluez {
-    withExperimental = true;
+  bluez-experimental = bluez.override {
+    enableExperimental = true;
   };
 
-  bluez = bluez5;
-
   bolt = callPackage ../os-specific/linux/bolt { };
 
   bpf-linker = callPackage ../development/tools/bpf-linker { };
@@ -27776,8 +27714,6 @@ with pkgs;
 
   fwanalyzer = callPackage ../tools/filesystems/fwanalyzer { };
 
-  fwupd = callPackage ../os-specific/linux/firmware/fwupd { };
-
   fwupd-efi = callPackage ../os-specific/linux/firmware/fwupd-efi { };
 
   firmware-manager = callPackage ../os-specific/linux/firmware/firmware-manager { };
@@ -28112,6 +28048,8 @@ with pkgs;
   linux_6_5_hardened = linuxKernel.kernels.linux_6_5_hardened;
   linuxPackages_6_6_hardened = linuxKernel.packages.linux_6_6_hardened;
   linux_6_6_hardened = linuxKernel.kernels.linux_6_6_hardened;
+  linuxPackages_6_7_hardened = linuxKernel.packages.linux_6_7_hardened;
+  linux_6_7_hardened = linuxKernel.kernels.linux_6_7_hardened;
 
   # GNU Linux-libre kernels
   linuxPackages-libre = linuxKernel.packages.linux_libre;
@@ -28352,8 +28290,6 @@ with pkgs;
 
   go-outline = callPackage ../development/tools/go-outline { };
 
-  gocode = callPackage ../development/tools/gocode { };
-
   gocode-gomod = callPackage ../development/tools/gocode-gomod { };
 
   goconst = callPackage ../development/tools/goconst { };
@@ -28722,6 +28658,7 @@ with pkgs;
     withHomed = false;
     withHwdb = false;
     withImportd = false;
+    withIptables = false;
     withLibBPF = false;
     withLibidn2 = false;
     withLocaled = false;
@@ -28745,11 +28682,19 @@ with pkgs;
     withUserDb = false;
     withUkify = false;
     withBootloader = false;
+    withPasswordQuality = false;
+    withVmspawn = false;
+    withQrencode = false;
   };
   systemdLibs = systemdMinimal.override {
     pname = "systemd-minimal-libs";
     buildLibsOnly = true;
   };
+  # We do not want to include ukify in the normal systemd attribute as it
+  # relies on Python at runtime.
+  systemdUkify = systemd.override {
+    withUkify = true;
+  };
 
   udev =
     if (with stdenv.hostPlatform; isLinux && isStatic) then libudev-zero
@@ -28812,6 +28757,7 @@ with pkgs;
     ubootOdroidC2
     ubootOdroidXU3
     ubootOlimexA64Olinuxino
+    ubootOlimexA64Teres1
     ubootOrangePi3
     ubootOrangePiPc
     ubootOrangePiZeroPlus2H5
@@ -29350,8 +29296,6 @@ with pkgs;
     inherit (plasma5Packages) breeze-icons;
   };
 
-  gruvbox-gtk-theme = callPackage ../data/themes/gruvbox-gtk-theme { };
-
   gubbi-font = callPackage ../data/fonts/gubbi { };
 
   gyre-fonts = callPackage ../data/fonts/gyre { };
@@ -30342,7 +30286,9 @@ with pkgs;
 
   akira-unstable = callPackage ../applications/graphics/akira { };
 
-  alembic = callPackage ../development/libraries/alembic { };
+  alembic = callPackage ../development/libraries/alembic {
+    openexr = openexr_3;
+  };
 
   alfaview = callPackage ../applications/networking/instant-messengers/alfaview { };
 
@@ -30647,8 +30593,7 @@ with pkgs;
   bleachbit = callPackage ../applications/misc/bleachbit { };
 
   blender = callPackage  ../applications/misc/blender {
-    # LLVM 11 crashes when compiling GHOST_SystemCocoa.mm
-    stdenv = if stdenv.isDarwin then llvmPackages_10.stdenv else stdenv;
+    openexr = openexr_3;
     inherit (darwin.apple_sdk.frameworks) Cocoa CoreGraphics ForceFeedback OpenAL OpenGL;
   };
 
@@ -30854,7 +30799,7 @@ with pkgs;
 
   clapper = callPackage ../applications/video/clapper { };
 
-  claws-mail = disable-warnings-if-gcc13 (callPackage ../applications/networking/mailreaders/claws-mail { });
+  claws-mail = callPackage ../applications/networking/mailreaders/claws-mail { };
 
   cligh = python3Packages.callPackage ../development/tools/github/cligh { };
 
@@ -30864,8 +30809,6 @@ with pkgs;
 
   clipgrab = libsForQt5.callPackage ../applications/video/clipgrab { };
 
-  clipcat = callPackage ../applications/misc/clipcat { };
-
   clipmenu = callPackage ../applications/misc/clipmenu { };
 
   clipit = callPackage ../applications/misc/clipit { };
@@ -31113,15 +31056,8 @@ with pkgs;
   docker-proxy = callPackage ../applications/virtualization/docker/proxy.nix { };
 
   docker-gc = callPackage ../applications/virtualization/docker/gc.nix { };
-
-  docker-machine = callPackage ../applications/networking/cluster/docker-machine { };
   docker-machine-hyperkit = callPackage ../applications/networking/cluster/docker-machine/hyperkit.nix { };
-  docker-machine-kvm = callPackage ../applications/networking/cluster/docker-machine/kvm.nix { };
   docker-machine-kvm2 = callPackage ../applications/networking/cluster/docker-machine/kvm2.nix { };
-  docker-machine-xhyve = callPackage ../applications/networking/cluster/docker-machine/xhyve.nix {
-    inherit (darwin.apple_sdk.frameworks) Hypervisor vmnet;
-    inherit (darwin) cctools;
-  };
 
   docker-distribution = callPackage ../applications/virtualization/docker/distribution.nix { };
 
@@ -31561,7 +31497,7 @@ with pkgs;
 
   freewheeling = callPackage ../applications/audio/freewheeling { };
 
-  fritzing = libsForQt5.callPackage ../applications/science/electronics/fritzing { };
+  fritzing = qt6Packages.callPackage ../applications/science/electronics/fritzing { };
 
   fsv = callPackage ../applications/misc/fsv { };
 
@@ -31573,7 +31509,11 @@ with pkgs;
   fvwm2 = callPackage ../applications/window-managers/fvwm/2.6.nix { };
   fvwm3 = callPackage ../applications/window-managers/fvwm/3.nix { };
 
-  ganttproject-bin = callPackage ../applications/misc/ganttproject-bin { };
+  ganttproject-bin = callPackage ../applications/misc/ganttproject-bin {
+    jre = openjdk17.override {
+      enableJavaFX = true;
+    };
+  };
 
   gaucheBootstrap = darwin.apple_sdk_11_0.callPackage ../development/interpreters/gauche/boot.nix { };
 
@@ -31672,12 +31612,14 @@ with pkgs;
       };
     };
   };
-  gnuradio3_8 = disable-warnings-if-gcc13 (callPackage ../applications/radio/gnuradio/wrapper.nix {
-    unwrapped = callPackage ../applications/radio/gnuradio/3.8.nix {
+  gnuradio3_8 = callPackage ../applications/radio/gnuradio/wrapper.nix {
+    unwrapped = callPackage ../applications/radio/gnuradio/3.8.nix ({
       inherit (darwin.apple_sdk.frameworks) CoreAudio;
       python = python3;
-    };
-  });
+    } // lib.optionalAttrs stdenv.isLinux {
+      stdenv = pkgs.stdenvAdapters.useLibsFrom stdenv pkgs.gcc12Stdenv;
+    });
+  };
   gnuradio3_8Packages = lib.recurseIntoAttrs gnuradio3_8.pkgs;
   # A build without gui components and other utilites not needed if gnuradio is
   # used as a c++ library.
@@ -31766,8 +31708,6 @@ with pkgs;
 
   gthumb = callPackage ../applications/graphics/gthumb { };
 
-  gtimelog = with python3Packages; toPythonApplication gtimelog;
-
   inherit (gnome) gucharmap;
 
   guitarix = callPackage ../applications/audio/guitarix {
@@ -32129,8 +32069,6 @@ with pkgs;
 
   mi2ly = callPackage ../applications/audio/mi2ly { };
 
-  moe =  callPackage ../applications/editors/moe { };
-
   molsketch = libsForQt5.callPackage ../applications/editors/molsketch { };
 
   multiviewer-for-f1 = callPackage ../applications/video/multiviewer-for-f1 { };
@@ -32401,9 +32339,7 @@ with pkgs;
 
   ht = callPackage ../applications/editors/ht { };
 
-  xh = callPackage ../tools/networking/xh {
-    inherit (darwin.apple_sdk.frameworks) Security;
-  };
+  xh = callPackage ../tools/networking/xh { };
 
   hubstaff = callPackage ../applications/misc/hubstaff { };
 
@@ -32457,7 +32393,9 @@ with pkgs;
     electron = electron_19;
   };
 
-  jackline = callPackage ../applications/networking/instant-messengers/jackline { };
+  jackline = callPackage ../applications/networking/instant-messengers/jackline {
+    ocamlPackages = ocaml-ng.ocamlPackages_4_14;
+  };
 
   jay = callPackage ../applications/window-managers/jay { };
 
@@ -33879,7 +33817,7 @@ with pkgs;
 
   mm-common = callPackage ../development/libraries/mm-common { };
 
-  mpc-qt = libsForQt5.callPackage ../applications/video/mpc-qt { };
+  mpc-qt = qt6Packages.callPackage ../applications/video/mpc-qt { };
 
   mplayer = callPackage ../applications/video/mplayer ({
     libdvdnav = libdvdnav_4_2_1;
@@ -34218,6 +34156,10 @@ with pkgs;
   };
 
   mupdf = callPackage ../applications/misc/mupdf { };
+  mupdf-headless = mupdf.override {
+    enableX11 = false;
+    enableGL = false;
+  };
   mupdf_1_17 = callPackage ../applications/misc/mupdf/1.17 { };
 
   muso = callPackage ../applications/audio/muso {
@@ -34375,14 +34317,16 @@ with pkgs;
 
   openbrf = libsForQt5.callPackage ../applications/misc/openbrf { };
 
-  opencpn = darwin.apple_sdk_11_0.callPackage ../applications/misc/opencpn {
+  opencpn = callPackage ../applications/misc/opencpn {
     inherit (darwin) DarwinTools;
-    inherit (darwin.apple_sdk_11_0.frameworks) AppKit;
+    inherit (darwin.apple_sdk.frameworks) AppKit;
   };
 
   openfx = callPackage ../development/libraries/openfx { };
 
-  openimageio = darwin.apple_sdk_11_0.callPackage ../development/libraries/openimageio { };
+  openimageio = darwin.apple_sdk_11_0.callPackage ../development/libraries/openimageio {
+    openexr = openexr_3;
+  };
 
   openjump = callPackage ../applications/misc/openjump { };
 
@@ -34469,7 +34413,9 @@ with pkgs;
 
   opusTools = callPackage ../applications/audio/opus-tools { };
 
-  orpie = callPackage ../applications/misc/orpie { };
+  orpie = callPackage ../applications/misc/orpie {
+    ocamlPackages = ocaml-ng.ocamlPackages_4_14;
+  };
 
   osmo = callPackage ../applications/office/osmo { };
 
@@ -34868,8 +34814,6 @@ with pkgs;
 
   qtpass = libsForQt5.callPackage ../applications/misc/qtpass { };
 
-  qtractor = libsForQt5.callPackage ../applications/audio/qtractor { };
-
   quantomatic = callPackage ../applications/science/physics/quantomatic { };
 
   quassel = libsForQt5.callPackage ../applications/networking/irc/quassel {
@@ -35367,7 +35311,9 @@ with pkgs;
 
   printrun = callPackage ../applications/misc/printrun { };
 
-  prusa-slicer = darwin.apple_sdk_11_0.callPackage ../applications/misc/prusa-slicer { };
+  prusa-slicer = darwin.apple_sdk_11_0.callPackage ../applications/misc/prusa-slicer {
+    stdenv = if stdenv.isDarwin then overrideLibcxx darwin.apple_sdk_11_0.llvmPackages_14.stdenv else stdenv;
+  };
 
   super-slicer = darwin.apple_sdk_11_0.callPackage ../applications/misc/prusa-slicer/super-slicer.nix { };
 
@@ -35520,8 +35466,6 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) Carbon Cocoa;
   };
 
-  sunvox = callPackage ../applications/audio/sunvox { };
-
   supersonic-wayland = supersonic.override {
     waylandSupport = true;
   };
@@ -36137,7 +36081,9 @@ with pkgs;
 
   virt-viewer = callPackage ../applications/virtualization/virt-viewer { };
 
-  virt-top = callPackage ../applications/virtualization/virt-top { };
+  virt-top = callPackage ../applications/virtualization/virt-top {
+    ocamlPackages = ocaml-ng.ocamlPackages_4_14;
+  };
 
   virt-what = callPackage ../applications/virtualization/virt-what { };
 
@@ -37728,8 +37674,6 @@ with pkgs;
 
   gav = callPackage ../games/gav { };
 
-  gcs = callPackage ../games/gcs { };
-
   gcompris = libsForQt5.callPackage ../games/gcompris { };
 
   gemrb = callPackage ../games/gemrb { };
@@ -37904,8 +37848,8 @@ with pkgs;
     # MapTool is fussy about which JRE it uses; OpenJDK will leave it hanging
     # at launch in a class initialization deadlock. MapTool ships Temurin with
     # their pre-built releases so we might as well use it too.
-    jre = temurin-bin-17;
-    openjfx = openjfx17;
+    jre = temurin-bin-21;
+    openjfx = openjfx21;
   };
 
   mari0 = callPackage ../games/mari0 { };
@@ -37958,6 +37902,8 @@ with pkgs;
 
   mudlet = libsForQt5.callPackage ../games/mudlet {
     lua = lua5_1;
+    stdenv = if stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else stdenv;
+    inherit (darwin.apple_sdk_11_0.frameworks) AppKit;
   };
 
   blightmud = callPackage ../games/blightmud { };
@@ -38856,7 +38802,7 @@ with pkgs;
     python3 = python311;
   };
 
-  deeptools = callPackage ../applications/science/biology/deeptools { python = python3; };
+  deeptools = callPackage ../applications/science/biology/deeptools { };
 
   deep-translator = with python3Packages; toPythonApplication deep-translator;
 
@@ -39448,7 +39394,9 @@ with pkgs;
 
   crypto-org-wallet = callPackage ../applications/blockchains/crypto-org-wallet { };
 
-  cubicle = callPackage ../applications/science/logic/cubicle { };
+  cubicle = callPackage ../applications/science/logic/cubicle {
+    ocamlPackages = ocaml-ng.ocamlPackages_4_14;
+  };
 
   cvc3 = callPackage ../applications/science/logic/cvc3 {
     gmp = lib.overrideDerivation gmp (_: { dontDisableStatic = true; });
@@ -39576,7 +39524,9 @@ with pkgs;
 
   proverif = callPackage ../applications/science/logic/proverif { };
 
-  satallax = callPackage ../applications/science/logic/satallax { };
+  satallax = callPackage ../applications/science/logic/satallax {
+    inherit (ocaml-ng.ocamlPackages_4_14) ocaml;
+  };
 
   saw-tools = callPackage ../applications/science/logic/saw-tools { };
 
@@ -39636,7 +39586,7 @@ with pkgs;
 
   avy = callPackage ../applications/science/logic/avy { };
 
-  btor2tools = pin-to-gcc12-if-gcc13 (callPackage ../applications/science/logic/btor2tools { });
+  btor2tools = callPackage ../applications/science/logic/btor2tools { };
 
   boolector = callPackage ../applications/science/logic/boolector {
     stdenv = if stdenv.cc.isClang then overrideLibcxx llvmPackages_14.stdenv else stdenv;
@@ -39926,7 +39876,9 @@ with pkgs;
     perl = perl536;
   };
 
-  megam = callPackage ../applications/science/misc/megam { };
+  megam = callPackage ../applications/science/misc/megam {
+    inherit (ocaml-ng.ocamlPackages_4_14) ocaml;
+  };
 
   netlogo = callPackage ../applications/science/misc/netlogo { };
 
@@ -40473,7 +40425,7 @@ with pkgs;
   loop = callPackage ../tools/misc/loop { };
 
   mailcore2 = callPackage ../development/libraries/mailcore2 {
-    icu = icu58;
+    icu = icu71;
   };
 
   mamba = callPackage ../applications/audio/mamba { };
@@ -41028,7 +40980,9 @@ with pkgs;
 
   sanoid = callPackage ../tools/backup/sanoid { };
 
-  satysfi = callPackage ../tools/typesetting/satysfi { };
+  satysfi = callPackage ../tools/typesetting/satysfi {
+    ocamlPackages = ocaml-ng.ocamlPackages_4_14;
+  };
 
   sc-controller = python3Packages.callPackage ../misc/drivers/sc-controller {
     inherit libusb1; # Shadow python.pkgs.libusb1.
@@ -41143,6 +41097,8 @@ with pkgs;
 
   tfswitch = callPackage ../applications/networking/cluster/tfswitch { };
 
+  tftui = python3Packages.callPackage ../applications/networking/cluster/tftui { };
+
   tfupdate = callPackage ../applications/networking/cluster/tfupdate { };
 
   tgswitch = callPackage ../applications/networking/cluster/tgswitch { };
@@ -41624,7 +41580,7 @@ with pkgs;
 
   nitrokey-app = libsForQt5.callPackage ../tools/security/nitrokey-app { };
 
-  nitrokey-app2 = libsForQt5.callPackage ../tools/security/nitrokey-app2 { };
+  nitrokey-app2 = python3Packages.callPackage ../tools/security/nitrokey-app2 { };
 
   fpm2 = callPackage ../tools/security/fpm2 { };
 
@@ -42029,9 +41985,7 @@ with pkgs;
 
   yazi = callPackage ../applications/file-managers/yazi { inherit (darwin.apple_sdk.frameworks) Foundation; };
 
-  ssl-proxy = callPackage ../tools/networking/ssl-proxy {
-    buildGoModule = buildGo119Module; # build fails with 1.20
-  };
+  ssl-proxy = callPackage ../tools/networking/ssl-proxy { };
 
   code-maat = callPackage ../development/tools/code-maat {};
 
diff --git a/pkgs/top-level/coq-packages.nix b/pkgs/top-level/coq-packages.nix
index 64d4bef12132..4a79bee73fdf 100644
--- a/pkgs/top-level/coq-packages.nix
+++ b/pkgs/top-level/coq-packages.nix
@@ -33,6 +33,7 @@ let
       );
       compcert = callPackage ../development/coq-modules/compcert {
         inherit fetchpatch makeWrapper coq2html lib stdenv;
+        ocamlPackages = ocamlPackages_4_14;
       };
       coq-bits = callPackage ../development/coq-modules/coq-bits {};
       coq-elpi = callPackage ../development/coq-modules/coq-elpi {};
@@ -124,6 +125,7 @@ let
       vcfloat = callPackage ../development/coq-modules/vcfloat {};
       Velisarios = callPackage ../development/coq-modules/Velisarios {};
       Verdi = callPackage ../development/coq-modules/Verdi {};
+      vscoq-language-server = callPackage ../development/coq-modules/vscoq-language-server {};
       VST = callPackage ../development/coq-modules/VST ((lib.optionalAttrs
         (lib.versionAtLeast self.coq.version "8.14") {
           compcert = self.compcert.override {
diff --git a/pkgs/top-level/gnuradio-packages.nix b/pkgs/top-level/gnuradio-packages.nix
index 08cc25980240..5adac2cf98e6 100644
--- a/pkgs/top-level/gnuradio-packages.nix
+++ b/pkgs/top-level/gnuradio-packages.nix
@@ -24,6 +24,7 @@ let
     ;
     inherit mkDerivationWith mkDerivation;
     inherit gnuradio;
+    inherit (gnuradio) gnuradioOlder gnuradioAtLeast;
   } // lib.optionalAttrs (gnuradio.hasFeature "gr-uhd") {
     inherit (gnuradio) uhd;
   });
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index 7bf0431130fb..7141f1d35fe0 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -24,6 +24,7 @@ let
     "ghc948"
     "ghc96"
     "ghc963"
+    "ghc964"
     "ghc98"
     "ghc981"
     "ghcHEAD"
@@ -64,10 +65,6 @@ in {
       llvmPackages = null;
     };
 
-    ghc8102Binary = callPackage ../development/compilers/ghc/8.10.2-binary.nix {
-      llvmPackages = pkgs.llvmPackages_9;
-    };
-
     ghc8107Binary = callPackage ../development/compilers/ghc/8.10.7-binary.nix {
       llvmPackages = pkgs.llvmPackages_12;
     };
@@ -278,7 +275,25 @@ in {
       buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_15;
       llvmPackages = pkgs.llvmPackages_15;
     };
-    ghc96 = compiler.ghc963;
+    ghc964 = callPackage ../development/compilers/ghc/9.6.4.nix {
+      bootPkgs =
+        # For GHC 9.2 no armv7l bindists are available.
+        if stdenv.hostPlatform.isAarch32 then
+          packages.ghc928
+        else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
+          packages.ghc928
+        else
+          packages.ghc924Binary;
+      inherit (buildPackages.python3Packages) sphinx;
+      # Need to use apple's patched xattr until
+      # https://github.com/xattr/xattr/issues/44 and
+      # https://github.com/xattr/xattr/issues/55 are solved.
+      inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
+      # Support range >= 11 && < 16
+      buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_15;
+      llvmPackages = pkgs.llvmPackages_15;
+    };
+    ghc96 = compiler.ghc964;
     ghc981 = callPackage ../development/compilers/ghc/9.8.1.nix {
       # No bindist packaged for 9.4.* yet
       bootPkgs = packages.ghc947;
@@ -344,12 +359,6 @@ in {
       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.6.x.nix { };
       packageSetConfig = bootstrapPackageSet;
     };
-    ghc8102Binary = callPackage ../development/haskell-modules {
-      buildHaskellPackages = bh.packages.ghc8102Binary;
-      ghc = bh.compiler.ghc8102Binary;
-      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
-      packageSetConfig = bootstrapPackageSet;
-    };
     ghc8107Binary = callPackage ../development/haskell-modules {
       buildHaskellPackages = bh.packages.ghc8107Binary;
       ghc = bh.compiler.ghc8107Binary;
@@ -421,7 +430,12 @@ in {
       ghc = bh.compiler.ghc963;
       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.6.x.nix { };
     };
-    ghc96 = packages.ghc963;
+    ghc964 = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc964;
+      ghc = bh.compiler.ghc964;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.6.x.nix { };
+    };
+    ghc96 = packages.ghc964;
     ghc981 = callPackage ../development/haskell-modules {
       buildHaskellPackages = bh.packages.ghc981;
       ghc = bh.compiler.ghc981;
diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix
index dc71b01f3c26..26fe5c042b91 100644
--- a/pkgs/top-level/linux-kernels.nix
+++ b/pkgs/top-level/linux-kernels.nix
@@ -190,6 +190,8 @@ in {
       kernelPatches = [
         kernelPatches.bridge_stp_helper
         kernelPatches.request_key_helper
+        kernelPatches.rust_1_74
+        kernelPatches.rust_1_75
       ];
     };
 
@@ -201,6 +203,7 @@ in {
         kernelPatches = [
           kernelPatches.bridge_stp_helper
           kernelPatches.request_key_helper
+          kernelPatches.rust_1_75
         ];
       };
       latest = packageAliases.linux_latest.kernel;
@@ -257,6 +260,7 @@ in {
     linux_6_1_hardened = hardenedKernelFor kernels.linux_6_1 { };
     linux_6_5_hardened = hardenedKernelFor kernels.linux_6_5 { };
     linux_6_6_hardened = hardenedKernelFor kernels.linux_6_6 { };
+    linux_6_7_hardened = hardenedKernelFor kernels.linux_6_7 { };
 
   } // lib.optionalAttrs config.allowAliases {
     linux_4_9 = throw "linux 4.9 was removed because it will reach its end of life within 22.11";
@@ -458,6 +462,8 @@ in {
 
     facetimehd = callPackage ../os-specific/linux/facetimehd { };
 
+    rust-out-of-tree-module = if lib.versionAtLeast kernel.version "6.7" then callPackage ../os-specific/linux/rust-out-of-tree-module { } else null;
+
     tuxedo-keyboard = if lib.versionAtLeast kernel.version "4.14" then callPackage ../os-specific/linux/tuxedo-keyboard { } else null;
 
     jool = callPackage ../os-specific/linux/jool { };
@@ -630,6 +636,7 @@ in {
     linux_6_1_hardened = recurseIntoAttrs (packagesFor kernels.linux_6_1_hardened);
     linux_6_5_hardened = recurseIntoAttrs (packagesFor kernels.linux_6_5_hardened);
     linux_6_6_hardened = recurseIntoAttrs (packagesFor kernels.linux_6_6_hardened);
+    linux_6_7_hardened = recurseIntoAttrs (packagesFor kernels.linux_6_7_hardened);
 
     linux_zen = recurseIntoAttrs (packagesFor kernels.linux_zen);
     linux_lqx = recurseIntoAttrs (packagesFor kernels.linux_lqx);
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index b31932759c85..ea09cd090fb2 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -922,7 +922,9 @@ let
 
     lambda-term = callPackage ../development/ocaml-modules/lambda-term { };
 
-    lambdapi = callPackage ../development/ocaml-modules/lambdapi { };
+    lambdapi = callPackage ../development/ocaml-modules/lambdapi {
+      why3 = pkgs.why3.override { ocamlPackages = self; };
+    };
 
     lambdasoup = callPackage ../development/ocaml-modules/lambdasoup { };
 
@@ -957,7 +959,7 @@ let
     linol-lwt = callPackage ../development/ocaml-modules/linol/lwt.nix { };
 
     llvm = callPackage ../development/ocaml-modules/llvm {
-      libllvm = pkgs.llvmPackages_10.libllvm;
+      libllvm = pkgs.llvmPackages.libllvm;
     };
 
     lo = callPackage ../development/ocaml-modules/lo { };
@@ -1068,6 +1070,8 @@ let
 
     mezzo = callPackage ../development/compilers/mezzo { };
 
+    middleware = callPackage ../development/ocaml-modules/middleware { };
+
     mimic = callPackage ../development/ocaml-modules/mimic { };
 
     mimic-happy-eyeballs = callPackage ../development/ocaml-modules/mimic/happy-eyeballs.nix { };
@@ -1755,6 +1759,10 @@ let
 
     timed = callPackage ../development/ocaml-modules/timed { };
 
+    timedesc = callPackage ../development/ocaml-modules/timedesc { };
+    timedesc-tzdb = callPackage ../development/ocaml-modules/timedesc/tzdb.nix { };
+    timedesc-tzlocal = callPackage ../development/ocaml-modules/timedesc/tzlocal.nix { };
+
     tiny_httpd = callPackage ../development/ocaml-modules/tiny_httpd { };
 
     tls = callPackage ../development/ocaml-modules/tls { };
@@ -1797,6 +1805,8 @@ let
 
     twt = callPackage ../development/ocaml-modules/twt { };
 
+    type_eq = callPackage ../development/ocaml-modules/type_eq { };
+
     tyxml = callPackage ../development/ocaml-modules/tyxml { };
 
     tyxml-lwd = callPackage ../development/ocaml-modules/lwd/tyxml-lwd.nix { };
@@ -1981,7 +1991,7 @@ in let inherit (pkgs) callPackage; in rec
 
   ocamlPackages_latest = ocamlPackages_5_1;
 
-  ocamlPackages = ocamlPackages_4_14;
+  ocamlPackages = ocamlPackages_5_1;
 
   # This is a nasty way to replace toplevel janestreet attributes in the scope,
   # so that modules outside of ocamlPackages that depend on JS OCaml libraries
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 572ccc701e51..0b4118717108 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -19983,6 +19983,19 @@ with self; {
     };
   };
 
+  ParseWin32Registry = buildPerlPackage {
+    pname = "ParseWin32Registry";
+    version = "1.1";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JM/JMACFARLA/Parse-Win32Registry-1.1.tar.gz";
+      hash = "sha256-wWOyAr5q17WPSEZJT/crjJqXloPKmU5DgOmsZWTcBbo=";
+    };
+    meta = with lib; {
+      description = "Module for parsing Windows Registry files";
+      license = with licenses; [ artistic1 gpl1Only ];
+    };
+  };
+
   ParseEDID = buildPerlPackage {
     pname = "Parse-Edid";
     version = "1.0.7";
@@ -22426,6 +22439,13 @@ with self; {
       url = "mirror://cpan/authors/id/F/FR/FRACTAL/Session-Token-1.503.tar.gz";
       hash = "sha256-MsPflu9FXHGHA2Os2VDdxPvISMWU9LxVshtEz5efeaE=";
     };
+    patches = [
+      # Add final null-byte to tokens. https://github.com/hoytech/Session-Token/pull/3
+      (fetchpatch {
+        url = "https://github.com/hoytech/Session-Token/commit/cd64e7b69986054bb715755290811308159b7959.patch";
+        hash = "sha256-nMQmdvVQW8cQYO0+bLJcdVfSOLVIsongk+71fQ7fQdU=";
+      })
+    ];
     meta = {
       description = "Secure, efficient, simple random session token generation";
       homepage = "https://github.com/hoytech/Session-Token";
@@ -23907,12 +23927,12 @@ with self; {
 
   SysVirt = buildPerlModule rec {
     pname = "Sys-Virt";
-    version = "9.8.0";
+    version = "10.0.0";
     src = fetchFromGitLab {
       owner = "libvirt";
       repo = "libvirt-perl";
       rev = "v${version}";
-      hash = "sha256-xLrqD1fFbDYS4HH85vYCeaKZeNwXQpjPXfGpJCFumg8=";
+      hash = "sha256-FK2SaerA/GB0ZAg/QXG9Ig1Cvpg6v9lh1sKPjYU52M8=";
     };
     nativeBuildInputs = [ pkgs.pkg-config ];
     buildInputs = [ pkgs.libvirt CPANChanges TestPod TestPodCoverage XMLXPath ];
diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix
index 751a13b34ce7..345ed56b95e7 100644
--- a/pkgs/top-level/php-packages.nix
+++ b/pkgs/top-level/php-packages.nix
@@ -343,6 +343,8 @@ lib.makeScope pkgs.newScope (self: with self; {
     xdebug = callPackage ../development/php-packages/xdebug { };
 
     yaml = callPackage ../development/php-packages/yaml { };
+
+    zstd = callPackage ../development/php-packages/zstd { };
   } // lib.optionalAttrs config.allowAliases {
     php-spx = throw "php-spx is deprecated, use spx instead";
   } // (
@@ -370,7 +372,8 @@ lib.makeScope pkgs.newScope (self: with self; {
           configureFlags = [
             "--enable-dom"
           ];
-          patches = lib.optionals (lib.versionOlder php.version "8.2.14") [
+          # Add a PHP lower version bound constraint to avoid applying the patch on older PHP versions.
+          patches = lib.optionals (lib.versionOlder php.version "8.2.14" && lib.versionAtLeast php.version "8.1") [
             # Fix tests with libxml 2.12
             # Part of 8.3.1RC1+, 8.2.14RC1+
             (fetchpatch {
diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix
index 9c167009a8dd..c6bbb79ce367 100644
--- a/pkgs/top-level/python-aliases.nix
+++ b/pkgs/top-level/python-aliases.nix
@@ -192,6 +192,7 @@ mapAliases ({
   grappelli_safe = grappelli-safe; # added 2023-10-08
   groestlcoin_hash = groestlcoin-hash; # added 2024-01-06
   grpc_google_iam_v1 = grpc-google-iam-v1; # added 2021-08-21
+  inherit (pkgs) gtimelog;
   guzzle_sphinx_theme = guzzle-sphinx-theme; # added 2023-10-16
   ha-av = throw "ha-av was removed, because it is no longer maintained"; # added 2022-04-06
   HAP-python = hap-python; # added 2021-06-01
@@ -356,6 +357,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
+  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
   pyroute2-ipdb = throw "pyroute2 migrated back to a single package scheme in version 0.7.1"; # added 2022-07-16
@@ -387,6 +389,7 @@ mapAliases ({
   pytestrunner = pytest-runner; # added 2021-01-04
   python-forecastio = throw "python-forecastio has been removed, as the Dark Sky service was shut down."; # added 2023-04-05
   python-igraph = igraph; # added 2021-11-11
+  python_openzwave = python-openzwave; # added 2024-01-07
   python-openzwave-mqtt = throw "python-openzwave was removed, as it was packaged as a dependency of home-assistant, which it is no longer."; # added 2024-01-05
   python_docs_theme = python-docs-theme; # added 2023-11-04
   python_fedora = python-fedora; # added 2023-11-15
@@ -421,17 +424,21 @@ mapAliases ({
   radio_beam = radio-beam; # added 2023-11-04
   ratelimiter = throw "ratelimiter has been removed, since it is unmaintained and broken"; # added 2023-10-21
   rdflib-jsonld = throw "rdflib-jsonld is not compatible with rdflib 6"; # added 2021-11-05
+  readme_renderer = readme-renderer; # added 2024-01-07
   recaptcha_client = throw "recaptcha_client has been removed since it is no longer maintained"; # added 2023-10-20
+  recursivePthLoader = recursive-pth-loader; # added 2024-01-07
   rednose = throw "rednose is no longer maintained (since February 2018)"; # added 2023-08-06
-  retry_decorator = retry-decorator; # added 2024-01-07
-  retworkx = rustworkx; # added 2023-05-14
   repeated_test = repeated-test; # added 2022-11-15
   repoze_lru = repoze-lru; # added 2023-11-11
   repoze_sphinx_autointerface = repoze-sphinx-autointerface; # added 2023-11-11
   repoze_who = repoze-who; # added 2023-11-11
+  requests_download = requests-download; # added 2024-01-07
+  requests_ntlm = requests-ntlm; # added 2024-01-07
   requests_oauthlib = requests-oauthlib; # added 2022-02-12
   requests_toolbelt = requests-toolbelt; # added 2017-09-26
   restructuredtext_lint = restructuredtext-lint; # added 2023-11-04
+  retry_decorator = retry-decorator; # added 2024-01-07
+  retworkx = rustworkx; # added 2023-05-14
   rig = throw "rig has been removed because it was pinned to python 2.7 and 3.5, failed to build and is otherwise unmaintained"; # added 2022-11-28
   rl-coach = "rl-coach was removed because the project is discontinued and was archived by upstream"; # added 2023-05-03
   roboschool = throw "roboschool is deprecated in favor of PyBullet and has been removed"; # added 2022-01-15
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index cbbe4a9074f1..45683f15df3e 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -607,6 +607,8 @@ self: super: with self; {
 
   anyqt = callPackage ../development/python-modules/anyqt { };
 
+  anysqlite = callPackage ../development/python-modules/anysqlite { };
+
   anytree = callPackage ../development/python-modules/anytree {
     inherit (pkgs) graphviz;
   };
@@ -615,6 +617,8 @@ self: super: with self; {
 
   aocd = callPackage ../development/python-modules/aocd { };
 
+  aocd-example-parser = callPackage ../development/python-modules/aocd-example-parser { };
+
   apache-beam = callPackage ../development/python-modules/apache-beam { };
 
   apcaccess = callPackage ../development/python-modules/apcaccess { };
@@ -1012,6 +1016,8 @@ self: super: with self; {
 
   awsiotpythonsdk = callPackage ../development/python-modules/awsiotpythonsdk { };
 
+  awsipranges = callPackage ../development/python-modules/awsipranges { };
+
   awslambdaric = callPackage ../development/python-modules/awslambdaric { };
 
   awswrangler = callPackage ../development/python-modules/awswrangler { };
@@ -1333,7 +1339,7 @@ self: super: with self; {
   bangla = callPackage ../development/python-modules/bangla { };
 
   bap = callPackage ../development/python-modules/bap {
-    inherit (pkgs.ocaml-ng.ocamlPackages) bap;
+    inherit (pkgs.ocaml-ng.ocamlPackages_4_14) bap;
   };
 
   barectf = callPackage ../development/python-modules/barectf { };
@@ -1583,6 +1589,8 @@ self: super: with self; {
 
   blurhash = callPackage ../development/python-modules/blurhash { };
 
+  blurhash-python = callPackage ../development/python-modules/blurhash-python { };
+
   bme280spi = callPackage ../development/python-modules/bme280spi { };
 
   bme680 = callPackage ../development/python-modules/bme680 { };
@@ -2436,6 +2444,8 @@ self: super: with self; {
 
   cronsim = callPackage ../development/python-modules/cronsim { };
 
+  crontab = callPackage ../development/python-modules/crontab { };
+
   crossplane = callPackage ../development/python-modules/crossplane { };
 
   crownstone-cloud = callPackage ../development/python-modules/crownstone-cloud { };
@@ -2554,10 +2564,10 @@ self: super: with self; {
   cython = callPackage ../development/python-modules/cython { };
 
   cython_3 = self.cython.overridePythonAttrs (old: rec {
-    version = "3.0.6";
+    version = "3.0.7";
     src = old.src.override {
       inherit version;
-      hash = "sha256-OZ0YVnLGZ7Juq73KQgyYVkWDeYrzvEdnCooJ6fGd1mA=";
+      hash = "sha256-+ymazzpXhXPBkMhY1J4M+ddfS8ScPyTFpjgEmX7wkhM=";
     };
     patches = [ ];
   });
@@ -2750,6 +2760,8 @@ self: super: with self; {
 
   decopatch = callPackage ../development/python-modules/decopatch { };
 
+  deebot-client = callPackage ../development/python-modules/deebot-client { };
+
   deemix = callPackage ../development/python-modules/deemix { };
 
   deep-chainmap = callPackage ../development/python-modules/deep-chainmap { };
@@ -2898,6 +2910,8 @@ self: super: with self; {
 
   dissect = callPackage ../development/python-modules/dissect { };
 
+  dissect-btrfs = callPackage ../development/python-modules/dissect-btrfs { };
+
   dissect-cim = callPackage ../development/python-modules/dissect-cim { };
 
   dissect-clfs = callPackage ../development/python-modules/dissect-clfs { };
@@ -2924,6 +2938,8 @@ self: super: with self; {
 
   dissect-hypervisor = callPackage ../development/python-modules/dissect-hypervisor { };
 
+  dissect-jffs = callPackage ../development/python-modules/dissect-jffs { };
+
   dissect-ntfs = callPackage ../development/python-modules/dissect-ntfs { };
 
   dissect-ole = callPackage ../development/python-modules/dissect-ole { };
@@ -3034,6 +3050,8 @@ self: super: with self; {
 
   django-crispy-bootstrap4 = callPackage ../development/python-modules/django-crispy-bootstrap4 { };
 
+  django-crispy-bootstrap5 = callPackage ../development/python-modules/django-crispy-bootstrap5 { };
+
   django-crispy-forms = callPackage ../development/python-modules/django-crispy-forms { };
 
   django-crontab = callPackage ../development/python-modules/django-crontab { };
@@ -3384,6 +3402,8 @@ self: super: with self; {
 
   dpkt = callPackage ../development/python-modules/dpkt { };
 
+  dploot = callPackage ../development/python-modules/dploot { };
+
   draftjs-exporter = callPackage ../development/python-modules/draftjs-exporter { };
 
   dragonfly = callPackage ../development/python-modules/dragonfly { };
@@ -3474,8 +3494,12 @@ self: super: with self; {
 
   dvc-data = callPackage ../development/python-modules/dvc-data {  };
 
+  dvc-gdrive = callPackage ../development/python-modules/dvc-gdrive {  };
+
   dvc-gs = callPackage ../development/python-modules/dvc-gs { };
 
+  dvc-hdfs = callPackage ../development/python-modules/dvc-hdfs {  };
+
   dvc-http = callPackage ../development/python-modules/dvc-http {  };
 
   dvc-objects = callPackage ../development/python-modules/dvc-objects {  };
@@ -4976,8 +5000,6 @@ self: super: with self; {
 
   gtfs-realtime-bindings = callPackage ../development/python-modules/gtfs-realtime-bindings { };
 
-  gtimelog = callPackage ../development/python-modules/gtimelog { };
-
   gto = callPackage ../development/python-modules/gto { };
 
   gtts = callPackage ../development/python-modules/gtts { };
@@ -5163,6 +5185,8 @@ self: super: with self; {
 
   hiro = callPackage ../development/python-modules/hiro { };
 
+  hishel = callPackage ../development/python-modules/hishel { };
+
   hist = callPackage ../development/python-modules/hist { };
 
   histoprint = callPackage ../development/python-modules/histoprint { };
@@ -5286,6 +5310,8 @@ self: super: with self; {
 
   http-parser = callPackage ../development/python-modules/http-parser { };
 
+  http-sf = callPackage ../development/python-modules/http-sf { };
+
   http-sfv = callPackage ../development/python-modules/http-sfv { };
 
   httpretty = callPackage ../development/python-modules/httpretty { };
@@ -5865,6 +5891,8 @@ self: super: with self; {
 
   json5 = callPackage ../development/python-modules/json5 { };
 
+  jsonargparse = callPackage ../development/python-modules/jsonargparse { };
+
   jsonconversion = callPackage ../development/python-modules/jsonconversion { };
 
   jsondate = callPackage ../development/python-modules/jsondate { };
@@ -6101,6 +6129,8 @@ self: super: with self; {
 
   keyring = callPackage ../development/python-modules/keyring { };
 
+  keyring-pass = callPackage ../development/python-modules/keyring-pass { };
+
   keyrings-cryptfile = callPackage ../development/python-modules/keyrings-cryptfile { };
 
   keyrings-google-artifactregistry-auth = callPackage ../development/python-modules/keyrings-google-artifactregistry-auth { };
@@ -6583,6 +6613,8 @@ self: super: with self; {
     llvm = pkgs.llvm_14;
   };
 
+  lmcloud = callPackage ../development/python-modules/lmcloud { };
+
   lmdb = callPackage ../development/python-modules/lmdb {
     inherit (pkgs) lmdb;
   };
@@ -6629,6 +6661,8 @@ self: super: with self; {
 
   logilab-constraint = callPackage ../development/python-modules/logilab/constraint.nix { };
 
+  logmatic-python = callPackage ../development/python-modules/logmatic-python { };
+
   logster = callPackage ../development/python-modules/logster { };
 
   loguru = callPackage ../development/python-modules/loguru { };
@@ -8144,6 +8178,8 @@ self: super: with self; {
 
   name-that-hash = callPackage ../development/python-modules/name-that-hash { };
 
+  nameko = callPackage ../development/python-modules/nameko { };
+
   nampa = callPackage ../development/python-modules/nampa { };
 
   nanoid = callPackage ../development/python-modules/nanoid { };
@@ -8339,6 +8375,8 @@ self: super: with self; {
 
   ninja = callPackage ../development/python-modules/ninja { inherit (pkgs) ninja; };
 
+  nipreps-versions = callPackage ../development/python-modules/nipreps-versions { };
+
   nipy = callPackage ../development/python-modules/nipy { };
 
   nipype = callPackage ../development/python-modules/nipype {
@@ -8351,6 +8389,8 @@ self: super: with self; {
 
   nitransforms = callPackage ../development/python-modules/nitransforms { };
 
+  niworkflows = callPackage ../development/python-modules/niworkflows { };
+
   nix-kernel = callPackage ../development/python-modules/nix-kernel {
     inherit (pkgs) nix;
   };
@@ -8760,6 +8800,8 @@ self: super: with self; {
 
   opentelemetry-instrumentation-django = callPackage ../development/python-modules/opentelemetry-instrumentation-django { };
 
+  opentelemetry-instrumentation-flask = callPackage ../development/python-modules/opentelemetry-instrumentation-flask { };
+
   opentelemetry-instrumentation-grpc = callPackage ../development/python-modules/opentelemetry-instrumentation-grpc { };
 
   opentelemetry-instrumentation-wsgi = callPackage ../development/python-modules/opentelemetry-instrumentation-wsgi { };
@@ -9089,6 +9131,8 @@ self: super: with self; {
 
   pdfrw = callPackage ../development/python-modules/pdfrw { };
 
+  pdfrw2 = callPackage ../development/python-modules/pdfrw2 { };
+
   pdftotext = callPackage ../development/python-modules/pdftotext { };
 
   pdfx = callPackage ../development/python-modules/pdfx { };
@@ -9174,6 +9218,8 @@ self: super: with self; {
 
   ping3 = callPackage ../development/python-modules/ping3 { };
 
+  pins = callPackage ../development/python-modules/pins { };
+
   pg8000 = callPackage ../development/python-modules/pg8000 { };
 
   pgcli = callPackage ../development/python-modules/pgcli { };
@@ -9972,6 +10018,8 @@ self: super: with self; {
 
   pweave = callPackage ../development/python-modules/pweave { };
 
+  pwlf = callPackage ../development/python-modules/pwlf { };
+
   pwntools = callPackage ../development/python-modules/pwntools {
     debugger = pkgs.gdb;
   };
@@ -10060,6 +10108,8 @@ self: super: with self; {
     inherit (pkgs) arrow-cpp cmake;
   };
 
+  pyarrow-hotfix = callPackage ../development/python-modules/pyarrow-hotfix { };
+
   pyasn = callPackage ../development/python-modules/pyasn { };
 
   pyasn1 = callPackage ../development/python-modules/pyasn1 { };
@@ -10324,6 +10374,8 @@ self: super: with self; {
 
   pydoods = callPackage ../development/python-modules/pydoods { };
 
+  pydoe = callPackage ../development/python-modules/pydoe { };
+
   pydot = callPackage ../development/python-modules/pydot {
     inherit (pkgs) graphviz;
   };
@@ -10374,6 +10426,8 @@ self: super: with self; {
 
   pyemd = callPackage ../development/python-modules/pyemd { };
 
+  pyemvue = callPackage ../development/python-modules/pyemvue { };
+
   pyenchant = callPackage ../development/python-modules/pyenchant {
     inherit (pkgs) enchant2;
   };
@@ -10928,6 +10982,8 @@ self: super: with self; {
     inherit (pkgs) lz4;
   };
 
+  pyosohotwaterapi = callPackage ../development/python-modules/pyosohotwaterapi { };
+
   pyotgw = callPackage ../development/python-modules/pyotgw { };
 
   pyotp = callPackage ../development/python-modules/pyotp { };
@@ -11139,7 +11195,7 @@ self: super: with self; {
 
   pyrituals = callPackage ../development/python-modules/pyrituals { };
 
-  pyRFC3339 = callPackage ../development/python-modules/pyrfc3339 { };
+  pyrfc3339 = callPackage ../development/python-modules/pyrfc3339 { };
 
   pyrmvtransport = callPackage ../development/python-modules/pyrmvtransport { };
 
@@ -11863,7 +11919,7 @@ self: super: with self; {
 
   python-openstackclient = callPackage ../development/python-modules/python-openstackclient { };
 
-  python_openzwave = callPackage ../development/python-modules/python_openzwave { };
+  python-openzwave = callPackage ../development/python-modules/python-openzwave { };
 
   python-osc = callPackage ../development/python-modules/python-osc { };
 
@@ -12424,7 +12480,7 @@ self: super: with self; {
 
   readme = callPackage ../development/python-modules/readme { };
 
-  readme_renderer = callPackage ../development/python-modules/readme_renderer { };
+  readme-renderer = callPackage ../development/python-modules/readme-renderer { };
 
   readthedocs-sphinx-ext = callPackage ../development/python-modules/readthedocs-sphinx-ext { };
 
@@ -12442,10 +12498,14 @@ self: super: with self; {
 
   recommonmark = callPackage ../development/python-modules/recommonmark { };
 
+  reconplogger = callPackage ../development/python-modules/reconplogger { };
+
   recordlinkage = callPackage ../development/python-modules/recordlinkage { };
 
   recurring-ical-events = callPackage ../development/python-modules/recurring-ical-events { };
 
+  recursive-pth-loader = toPythonModule (callPackage ../development/python-modules/recursive-pth-loader { });
+
   redbaron = callPackage ../development/python-modules/redbaron { };
 
   redis = callPackage ../development/python-modules/redis { };
@@ -12530,7 +12590,7 @@ self: super: with self; {
 
   requests = callPackage ../development/python-modules/requests { };
 
-  requests_download = callPackage ../development/python-modules/requests_download { };
+  requests-download = callPackage ../development/python-modules/requests-download { };
 
   requestsexceptions = callPackage ../development/python-modules/requestsexceptions { };
 
@@ -12544,7 +12604,7 @@ self: super: with self; {
 
   requests-mock = callPackage ../development/python-modules/requests-mock { };
 
-  requests_ntlm = callPackage ../development/python-modules/requests_ntlm { };
+  requests-ntlm = callPackage ../development/python-modules/requests-ntlm { };
 
   requests-oauthlib = callPackage ../development/python-modules/requests-oauthlib { };
 
@@ -12666,6 +12726,8 @@ self: super: with self; {
 
   rmrl = callPackage ../development/python-modules/rmrl { };
 
+  rmscene = callPackage ../development/python-modules/rmscene { };
+
   rmsd = callPackage ../development/python-modules/rmsd { };
 
   rnc2rng = callPackage ../development/python-modules/rnc2rng { };
@@ -12682,6 +12744,8 @@ self: super: with self; {
 
   robotframework-databaselibrary = callPackage ../development/python-modules/robotframework-databaselibrary { };
 
+  robotframework-excellib = callPackage ../development/python-modules/robotframework-excellib { };
+
   robotframework-pythonlibcore = callPackage ../development/python-modules/robotframework-pythonlibcore { };
 
   robotframework-requests = callPackage ../development/python-modules/robotframework-requests { };
@@ -12758,6 +12822,8 @@ self: super: with self; {
 
   rpyc = callPackage ../development/python-modules/rpyc { };
 
+  rpyc4 = callPackage ../development/python-modules/rpyc4 { };
+
   rq = callPackage ../development/python-modules/rq { };
 
   rsa = callPackage ../development/python-modules/rsa { };
@@ -13140,6 +13206,8 @@ self: super: with self; {
 
   sharkiq = callPackage ../development/python-modules/sharkiq { };
 
+  sharp-aquos-rc = callPackage ../development/python-modules/sharp-aquos-rc { };
+
   shazamio = callPackage ../development/python-modules/shazamio { };
 
   sh = callPackage ../development/python-modules/sh { };
@@ -13230,6 +13298,10 @@ self: super: with self; {
 
   simplesat = callPackage ../development/python-modules/simplesat { };
 
+  simple-dftd3 = callPackage ../development/libraries/science/chemistry/simple-dftd3/python.nix {
+    inherit (pkgs) simple-dftd3;
+  };
+
   simple-di = callPackage ../development/python-modules/simple-di { };
 
   simple-rest-client = callPackage ../development/python-modules/simple-rest-client { };
@@ -13690,6 +13762,8 @@ self: super: with self; {
 
   spyse-python = callPackage ../development/python-modules/spyse-python { };
 
+  spython = callPackage ../development/python-modules/spython { };
+
   sqids = callPackage ../development/python-modules/sqids { };
 
   sqlalchemy = callPackage ../development/python-modules/sqlalchemy { };
@@ -13882,6 +13956,8 @@ self: super: with self; {
 
   stumpy = callPackage ../development/python-modules/stumpy { };
 
+  stupidartnet = callPackage ../development/python-modules/stupidartnet { };
+
   stups-cli-support = callPackage ../development/python-modules/stups-cli-support { };
 
   stups-fullstop = callPackage ../development/python-modules/stups-fullstop { };
@@ -13954,8 +14030,12 @@ self: super: with self; {
 
   svg-path = callPackage ../development/python-modules/svg-path { };
 
+  svg-py = callPackage ../development/python-modules/svg-py { };
+
   svgelements = callPackage ../development/python-modules/svgelements { };
 
+  svgutils = callPackage ../development/python-modules/svgutils { };
+
   svgwrite = callPackage ../development/python-modules/svgwrite { };
 
   sv-ttk = callPackage ../development/python-modules/sv-ttk { };
@@ -13964,6 +14044,8 @@ self: super: with self; {
 
   swagger-ui-bundle = callPackage ../development/python-modules/swagger-ui-bundle { };
 
+  switchbot-api = callPackage ../development/python-modules/switchbot-api { };
+
   swift = callPackage ../development/python-modules/swift { };
 
   swisshydrodata = callPackage ../development/python-modules/swisshydrodata { };
@@ -14054,8 +14136,7 @@ self: super: with self; {
   tblib = callPackage ../development/python-modules/tblib { };
 
   tblite = callPackage ../development/libraries/science/chemistry/tblite/python.nix {
-    tblite = pkgs.tblite;
-    meson = pkgs.meson;
+    inherit (pkgs) tblite meson simple-dftd3;
   };
 
   tbm-utils = callPackage ../development/python-modules/tbm-utils { };
@@ -14094,6 +14175,8 @@ self: super: with self; {
 
   tempita = callPackage ../development/python-modules/tempita { };
 
+  templateflow = callPackage ../development/python-modules/templateflow { };
+
   tempora = callPackage ../development/python-modules/tempora { };
 
   tenacity = callPackage ../development/python-modules/tenacity { };
@@ -14108,6 +14191,8 @@ self: super: with self; {
 
   tensorboardx = callPackage ../development/python-modules/tensorboardx { };
 
+  tensordict = callPackage ../development/python-modules/tensordict { };
+
   tensorflow-bin = callPackage ../development/python-modules/tensorflow/bin.nix {
     inherit (pkgs.config) cudaSupport;
   };
@@ -14218,6 +14303,8 @@ self: super: with self; {
 
   tern = callPackage ../development/python-modules/tern { };
 
+  tesla-fleet-api = callPackage ../development/python-modules/tesla-fleet-api { };
+
   tesla-powerwall = callPackage ../development/python-modules/tesla-powerwall { };
 
   tesla-wall-connector = callPackage ../development/python-modules/tesla-wall-connector { };
@@ -14512,6 +14599,8 @@ self: super: with self; {
 
   torchlibrosa = callPackage ../development/python-modules/torchlibrosa { };
 
+  torchrl = callPackage ../development/python-modules/torchrl { };
+
   torchsde = callPackage ../development/python-modules/torchsde { };
 
   torchvision = callPackage ../development/python-modules/torchvision { };
@@ -15532,6 +15621,8 @@ self: super: with self; {
 
   typesentry = callPackage ../development/python-modules/typesentry { };
 
+  typeshed-client = callPackage ../development/python-modules/typeshed-client { };
+
   typesystem = callPackage ../development/python-modules/typesystem { };
 
   typical = callPackage ../development/python-modules/typical { };
@@ -15914,6 +16005,8 @@ self: super: with self; {
 
   vt-py = callPackage ../development/python-modules/vt-py { };
 
+  vtjp = callPackage ../development/python-modules/vtjp { };
+
   vtk = toPythonModule (pkgs.vtk_9.override {
     inherit python;
     enablePython = true;
@@ -16227,9 +16320,7 @@ self: super: with self; {
     inherit (pkgs) graphviz;
   };
 
-  xformers = callPackage ../development/python-modules/xformers {
-    openai-triton = self.openai-triton-cuda;
-  };
+  xformers = callPackage ../development/python-modules/xformers { };
 
   xgboost = callPackage ../development/python-modules/xgboost {
     inherit (pkgs) xgboost;
diff --git a/pkgs/top-level/qt6-packages.nix b/pkgs/top-level/qt6-packages.nix
index 940a5e154562..571a12ef50d6 100644
--- a/pkgs/top-level/qt6-packages.nix
+++ b/pkgs/top-level/qt6-packages.nix
@@ -70,6 +70,10 @@ makeScopeWithSplicing' {
 
   qscintilla = callPackage ../development/libraries/qscintilla { };
 
+  qwlroots = callPackage ../development/libraries/qwlroots {
+    wlroots = pkgs.wlroots_0_17;
+  };
+
   qxlsx = callPackage ../development/libraries/qxlsx { };
 
   qzxing = callPackage ../development/libraries/qzxing { };
@@ -84,6 +88,8 @@ makeScopeWithSplicing' {
   # is, to allow users to choose the right build if needed.
   sddm = callPackage ../applications/display-managers/sddm {};
 
+  waylib = callPackage ../development/libraries/waylib { };
+
   } // lib.optionalAttrs pkgs.config.allowAliases {
     # Convert to a throw on 01-01-2023.
     # Warnings show up in various cli tool outputs, throws do not.
diff --git a/pkgs/top-level/release-haskell.nix b/pkgs/top-level/release-haskell.nix
index afaa94a23a32..435e17da15e0 100644
--- a/pkgs/top-level/release-haskell.nix
+++ b/pkgs/top-level/release-haskell.nix
@@ -49,8 +49,7 @@ let
   # ```
   # {
   #   ghc810 = "ghc810";
-  #   ghc8102Binary = "ghc8102Binary";
-  #   ghc8102BinaryMinimal = "ghc8102BinaryMinimal";
+  #   ghc8107Binary = "ghc8107Binary";
   #   ghc8107 = "ghc8107";
   #   ghc924 = "ghc924";
   #   ...
@@ -71,6 +70,7 @@ let
     ghc947
     ghc948
     ghc963
+    ghc964
     ghc981
   ];
 
@@ -384,7 +384,6 @@ let
         {
           # remove musl ghc865Binary since it is known to be broken and
           # causes an evaluation error on darwin.
-          # TODO: remove ghc865Binary altogether and use ghc8102Binary
           ghc865Binary = {};
 
           ghcjs = {};
@@ -646,7 +645,6 @@ let
           ];
         };
         constituents = accumulateDerivations [
-          jobs.pkgsMusl.haskell.compiler.ghc8102Binary
           jobs.pkgsMusl.haskell.compiler.ghc8107Binary
           jobs.pkgsMusl.haskell.compiler.ghc8107
           jobs.pkgsMusl.haskell.compiler.ghc902
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index b257f2411c7d..a8f1e69b361f 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -220,7 +220,7 @@ let
                 };
               };
             in {
-              inherit (bootstrap) dist test;
+              inherit (bootstrap) build dist test;
             }
           else if hasSuffix "-darwin" config then
             let
@@ -229,7 +229,7 @@ let
               };
             in {
               # Lightweight distribution and test
-              inherit (bootstrap) dist test;
+              inherit (bootstrap) build dist test;
               # Test a full stdenv bootstrap from the bootstrap tools definition
               # TODO: Re-enable once the new bootstrap-tools are in place.
               #inherit (bootstrap.test-pkgs) stdenv;
diff --git a/pkgs/top-level/unixtools.nix b/pkgs/top-level/unixtools.nix
index 40faa7642129..bcbbd6799d88 100644
--- a/pkgs/top-level/unixtools.nix
+++ b/pkgs/top-level/unixtools.nix
@@ -174,8 +174,8 @@ let
       darwin = pkgs.darwin.basic_cmds;
     };
     xxd = {
-      linux = pkgs.vim;
-      darwin = pkgs.vim;
+      linux = pkgs.vim.xxd;
+      darwin = pkgs.vim.xxd;
     };
   };